Je veux comprendre le grad_ys
paramètre dans tf.gradients
. J'ai vu qu'il était utilisé comme un multiplicateur du vrai gradient, mais il ne figure pas dans la définition. Mathématiquement, à quoi ressemblerait l'expression complète ?
Réponse
Trop de publicités?Edit : une meilleure clarification de la notation est aquí
ys
sont additionnés pour former un seul scalaire y
et ensuite tf.gradients
calcule dy/dx
où x
représente les variables de xs
grad_ys
représentent la valeur de rétropropulsion "de départ". Ils sont à 1 par défaut, mais une valeur différente peut être utilisée lorsque l'on veut enchaîner plusieurs tf.gradients
ensemble -- vous pouvez passer dans la sortie de précédents tf.gradients
l'appel en grad_ys
pour continuer le flux backprop.
Pour une définition formelle, regardez l'expression chaînée dans l'accumulation inversée ici : https://en.wikipedia.org/wiki/Automatic_differentiation#Reverse_accumulation
Le terme correspondant à dy/dw3 * dw3/dw2
dans TensorFlow est un vecteur de 1 (pensez-y comme si TensorFlow enveloppait le coût avec un op d'identité fictif). Lorsque vous spécifiez grad_ys
ce terme est remplacé par grad_ys
au lieu du vecteur de 1
s