En quoi le gradient augmente-t-il comme la descente en gradient?

9

Je lis l'entrée utile de Wikipedia sur l'augmentation du gradient ( https://en.wikipedia.org/wiki/Gradient_boosting ), et j'essaie de comprendre comment / pourquoi nous pouvons approximer les résidus par l'étape de descente la plus raide (également appelée pseudo-gradient ). Quelqu'un peut-il me donner l'intuition sur la façon dont la descente la plus raide est liée / similaire aux résidus? Aide très appréciée!

entrez la description de l'image ici

Wouter
la source

Réponses:

11

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

12i(yif(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(yf)2

puis prendre le gradient par rapport à la prédiction

fL(f;y)=fy

Ensuite, la mise à jour du gradient, à partir d'une valeur initiale de esty0

y1=y0f(y0,y)=y0(y0y)=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

Startavec 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,f0y}

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.WFLWF(X)

Finally, utilisez à la place de dans la mise à jour du gradient de sur l'ensemble du domaine:FLf0

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.

Matthew Drury
la source
Yah, je pense que c'est bien. La seule chose à noter est que si, par exemple, vous souhaitez augmenter pour minimiser la perte binomiale alors le gradient que nous développons n'est plus liés aux résidus de manière naturelle.
iyilog(pi)+(1yi)log(1pi)
Matthew Drury
Merci Matthew. Une chose que j'essaie de comprendre. Dans la littérature, il est souvent indiqué que la mise à jour du modèle est F (m + 1) = F (m) + , où h (m) est l'apprenant faible. Si je pense à un modèle basé sur un arbre - cela signifie-t-il que pour la régression et la classification, nous mettons à jour pratiquement notre prédiction pour un point de données donné par simple addition des résultats des deux modèles? cela fonctionne-t-il également si nous essayons de classer binaire cela? ou le signe + ne doit-il pas être interprété de façon aussi littérale? αmh(m)
Wouter le
Le signe plus est assez littéral. Mais pour un apprenant faible basé sur un arbre, les prédictions du modèle doivent être interprétées comme la moyenne pondérée dans la feuille, même dans le cas où l'arbre est adapté aux données binomiales. Notez cependant qu'en boostant, nous ne nous adaptons généralement pas aux données binomiales, nous nous adaptons au gradient de la probabilité évalué aux prédictions de l'étape précédente, qui ne sera pas évalué à . 0,1
Matthew Drury
1
@MatthewDrury Je pense que dans de nombreux ouvrages, nous ne sommes pas une mise à jour directe avec , mais avec , où de 0 à 1 est un taux d'apprentissage. f1f0F(x)f0αF(x)α
Haitao Du
@ hxd1011 Oui, c'est tout à fait correct et crucial pour utiliser avec succès le renforcement du dégradé.
Matthew Drury