Dans le calcul 101, nous avons appris comment optimiser une fonction en utilisant la "méthode analytique": il nous suffit d'obtenir la dérivée de la fonction de coût et de définir la dérivée sur 0, puis de résoudre l'équation. C'est vraiment un problème de jouet et ne se produira presque jamais dans le monde réel.
Dans le monde réel, de nombreuses fonctions de coût n'ont pas de dérivée partout (en outre, la fonction de coût peut être discrète et ne pas avoir de dérivée du tout). De plus, même si vous pouvez calculer la dérivée, vous ne pouvez pas simplement résoudre l'équation analytiquement (par exemple, pensez à résoudre analytiquement? Je peux vous dire que la réponse numérique est , mais je ne connais pas la solution analytique). Il faut utiliser quelques méthodes numériques (vérifier pourquoi ici sur les cas polynomiaux du théorème d'Abel Ruffin ).x7+x3−52+ex+log(x+x2)+1/x=0x=1.4786
Les méthodes itératives sont agréables à utiliser et très intuitives à comprendre. Supposons que vous vouliez optimiser une fonction, au lieu de résoudre une équation et d'obtenir la réponse, vous essayez d'améliorer votre réponse en nombre d'itérations / étapes après une itération suffisante, vous obtiendrez une réponse proche de la "vraie réponse". Supposons que si vous utilisez le calcul pour minimiser , vous obtenez directement , mais en utilisant des méthodes numériques, vous pouvez obtenir .f(x)=x2x=0x=1.1234×10−20
Maintenant, il est important de comprendre comment fonctionnent ces méthodes itératives. Le concept clé est de savoir comment mettre à jour vos paramètres d'entrée pour obtenir une meilleure solution. Supposons que vous souhaitiez minimiser(notez que cette fonction de coût n'est pas différenciable partout, mais qu'elle est différenciable dans "la plupart des endroits", cela nous suffit, car nous savons comment mettre à jour dans "la plupart des endroits".), vous êtes actuellement à , et le coût est de , maintenant vous voulez mettre à jour pour rendre la fonction objectif plus petite. Comment feriez-vous cela? Vous pouvez dire que je veux diminuer les deux , mais pourquoi? En fait, vous utilisez implicitementf(x1,x2)=x21+x22+|x1+x2|(1,1)4.0(x1,x2)x1 x2le concept de gradient "changer une petite quantité de , ce qui se passera sur ". xy. Dans , la dérivée est , donc le gradient négatif multiplié par un taux d'apprentissage, disons , est , nous avons donc mis à jour notre solution de à qui ont un meilleur coût.(1,1)(3,3)α=0.0011 , 1 ( 0,997 , 0,997 )(−0.003,−0.003)1,1(0.997,0.997)