Question:
Qu'est-ce qu'un exemple d'utilisation de la différenciation automatique telle que mise en œuvre dans Tensorflow et pourquoi est-ce important?
Greg
2016-08-21 19:53:23 UTC
view on stackexchange narkive permalink

J'ai une bonne compréhension des réseaux de neurones, de la propagation arrière et de la règle de la chaîne, mais j'ai du mal à comprendre la différenciation automatique.

Les éléments ci-dessous font référence à la différenciation automatique en dehors du contexte de la propagation arrière:

  • Comment la différenciation automatique calcule-t-elle le gradient à partir d'une matrice?
  • Quelles sont les conditions requises pour calculer un dégradé? Une fonction doit-elle être spécifiée?
  • Quels sont certains cas d'utilisation pour cela (autre que la rétro-propagation)?
  • Pourquoi est-ce important et quelles sont les alternatives?

Est-ce que je manque quelque chose?

La différenciation automatique, également appelée différenciation algorithmique, est un moyen automatisé de calculer numériquement les dérivés d'une ou de plusieurs fonctions spécifiées par un programme informatique, mais les fonctions peuvent être indirectement définies par le programme informatique.Il est utile pour le calcul des gradients, des jacobiens et des hessiens pour une utilisation dans l'optimisation numérique, entre autres.La rétropropagation est une implémentation du mode inverse de différenciation automatique pour calculer le gradient d'un problème d'optimisation de réseau de neurones Voir https://en.wikipedia.org/wiki/Automatic_differentiation.
Les alternatives sont la différenciation symbolique et les différences finies, qui sont généralement plus lentes, et les différences finies peuvent être moins précises.Des dérivés codés à la main peuvent être utilisés si l'humain peut comprendre le dérivé, mais sont sujets aux erreurs humaines dans de nombreux cas.
Où puis-je trouver des exemples simples pour voir comment il est mis en œuvre?Est-ce la méthode `tf.gradient` que je devrais examiner?
Voir la liste des logiciels et des outils de différenciation automatique sur le lien Wikipédia, ainsi que des liens qui incluent des exemples d'utilisation.Une autre alternative à la différenciation automatique est la différenciation par étapes complexe (dérivée) http://aero-comlab.stanford.edu/Papers/martins.aiaa.01-0921.pdf, qui finit par être presque la même chose que le mode avancé dedifférenciation.
Un répondre:
dontloo
2016-08-22 16:10:23 UTC
view on stackexchange narkive permalink

Dans les systèmes de différenciation automatique, un opérateur (par exemple, addition, soustraction) est défini avec sa différenciation.

Donc, après avoir écrit une fonction en empilant une série d'opérateurs, le système peut déterminer par lui-même comment les dérivées correspondantes doivent être calculées, généralement en utilisant des graphiques de calcul et la règle de la chaîne.

La différenciation automatique est bénéfique pour l'optimisation basée sur le gradient (par exemple, la formation d'un réseau de neurones en utilisant la descente de gradient), car elle nous évite de travailler sur les mathématiques, d'implémenter le code et de vérifier numériquement les dérivées au cas par cas.

Voici comment définir un opérateur (op) dans Theano et Tensorflow.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...