Supposons que nous soyons dans la situation suivante. Nous avons des données , où chaque peut être un nombre ou un vecteur, et nous voudrions déterminer une fonction qui se rapproche de la relation , dans le sens où les moindres carrés Erreur:{xi,yi}xiff(xi)≈yi
12∑i(yi−f(xi))2
est petite.
Maintenant, la question se pose de ce que nous aimerions que le domaine de soit. Un choix dégénéré pour le domaine n'est que les points dans nos données de formation. Dans ce cas, nous pouvons simplement définir , couvrant tout le domaine souhaité, et en finir avec lui. Un moyen détourné pour arriver à cette réponse est de faire une descente en gradient avec cet espace discret comme domaine. Cela prend un peu de changement de point de vue. Voyons la perte en fonction du point vrai et de la prédiction (pour l'instant, n'est pas une fonction, mais juste la valeur de la prédiction)ff(xi)=yy ff
L(f;y)=12(y−f)2
puis prendre le gradient par rapport à la prédiction
∇fL(f;y)=f−y
Ensuite, la mise à jour du gradient, à partir d'une valeur initiale de esty0
y1=y0−∇f(y0,y)=y0−(y0−y)=y
Nous récupérons donc notre prédiction parfaite dans une étape de gradient avec cette configuration, ce qui est bien!
Le défaut ici est, bien sûr, que nous voulons que soit défini à bien plus que nos points de données d'entraînement. Pour ce faire, nous devons faire quelques concessions, car nous ne sommes pas en mesure d'évaluer la fonction de perte, ou son gradient, à d'autres points que notre ensemble de données d'entraînement. f
La grande idée est de faible environ . ∇L
Start
avec une estimation initiale de , presque toujours une simple fonction constante , elle est définie partout. Générez maintenant un nouvel ensemble de données de travail en évaluant le gradient de la fonction de perte au niveau des données d'apprentissage, en utilisant la supposition initiale pour :ff(x)=f0f
W={xi,f0−y}
Now approximate
∇L en ajustant apprenant faible pour . Disons que nous obtenons l'approximation . Nous avons gagné une extension des données sur l'ensemble du domaine sous la forme de , bien que nous ayons perdu la précision aux points de formation, car nous adaptons un petit apprenant.WF≈∇LWF(X)
Finally
, utilisez à la place de dans la mise à jour du gradient de sur l'ensemble du domaine:F∇Lf0
f1(x)=f0(x)−F(x)
On sort , une nouvelle approximation de , un peu meilleure que . Recommencez avec et répétez jusqu'à ce que vous soyez satisfait.f1ff0f1
Avec un peu de chance, vous voyez que ce qui est vraiment important est d’approcher le gradient de la perte. Dans le cas de la minimisation des moindres carrés, cela prend la forme de résidus bruts, mais pas dans les cas plus sophistiqués. Cependant, la machine s'applique toujours. Tant que l'on peut construire un algorithme pour calculer la perte et le gradient de perte au niveau des données d'entraînement, nous pouvons utiliser cet algorithme pour approximer une fonction minimisant cette perte.