Quelqu'un peut-il m'orienter vers un algorithme en ligne (récursif) pour la régularisation de Tikhonov (moindres carrés régularisés)?
Dans un cadre hors ligne, je calculerais utilisant mon ensemble de données d'origine où est trouvé en utilisant la validation croisée n fois. Une nouvelle valeur peut être prédite pour un x donné en utilisant .
Dans un environnement en ligne, je dessine continuellement de nouveaux points de données. Comment puis-je mettre à jour lorsque je dessine de nouveaux échantillons de données supplémentaires sans faire un recalcul complet sur l'ensemble des données (original + nouveau)?
Réponses:
SoitM−1n=(XXT+λI)−1 , puis
Selon la formule de Woodbury , nous avons
Par conséquent,
La moyenne de Polyak indique que vous pouvez utiliser pour approximer avec plages de au . Vous pouvez essayer dans votre cas de sélectionner le meilleur pour votre récursivité.M - 1 nηn=n−α α0,51αM−1n1+xTnM−1nxn α 0.5 1 α
Je pense que cela fonctionne aussi si vous appliquez un algorithme de gradient par lots:
la source
Un point que personne n'a abordé jusqu'à présent est qu'il n'est généralement pas logique de maintenir le paramètre de régularisation constant lorsque des points de données sont ajoutés. La raison en est que augmentera généralement linéairement avec le nombre de points de données, tandis que le terme de régularisation ne le fera pas. ‖ X β - y ‖ 2 ‖ λ βλ ∥Xβ−y∥2 ∥λβ∥2
la source
Peut-être que quelque chose comme la descente du gradient stochastique pourrait fonctionner ici. Calculez utilisant votre équation ci-dessus sur le jeu de données initial, qui sera votre estimation de départ. Pour chaque nouveau point de données, vous pouvez effectuer une étape de descente de gradient pour mettre à jour votre estimation de paramètre.β^
la source
En régression linéaire, une possibilité consiste à mettre à jour directement la décomposition QR de , comme expliqué ici . Je suppose que, sauf si vous souhaitez réestimer après chaque nouveau point de données a été ajouté, quelque chose de très similaire peut être fait avec la régression de crête.λX λ
la source
Voici une approche alternative (et moins complexe) par rapport à l'utilisation de la formule de Woodbury. Notez que et peuvent être écrits comme des sommes . Puisque nous calculons des choses en ligne et que nous ne voulons pas que la somme explose, nous pouvons également utiliser des moyens ( et ).XTX XTy XTX/n XTy/n
Si vous écrivez et comme:X y
nous pouvons écrire les mises à jour en ligne à et (à la valeur calculée en de -ième rangée) comme:XTX/n XTy/n t
Votre estimation en ligne de devient alorsβ
Notez que cela aide également à l'interprétation de restant constant lorsque vous ajoutez des observations!λ
Cette procédure est la façon dont https://github.com/joshday/OnlineStats.jl calcule les estimations en ligne de la régression linéaire / crête.
la source