Selon Wikipedia, la dérivation automatique est algorithmique!

En mathématique et en calcul formel, la dérivation automatique (DA), également appelé dérivation algorithmique, dérivation formelle1,2, ou auto-dérivation est un ensemble de techniques d’évaluation de la dérivée d’une fonction par un programme informatique.

https://fr.wikipedia.org/wiki/Dérivation_automatique

Relevons d’abord une faute par rapport à l’anglais qui parle de la dérivée d’une fonction spécifiée par un programme informatique. Le mot “spécifiée” étant absent de la version française, le programme informatique s’entend comme l’outil contenant les techniques d’évaluation de la dérivée. La différence est de taille, mais dans les deux versions l’incohérence règne.

S’il s’agit de calcul formel au sens usuel, la fonction est donnée non sous la forme d’un programme impératif mais d’une expression formelle et on parle de dérivation symbolique. Sinon, il s’agit de la dérivation d’un programme, c’est-à-dire de dérivation algorithmique. Cependant, un programme peut être vu comme une expression particulière de type procédure, prenant comme entrées les paramètres et le corps de la fonction; et réciproquement, une expression peut être transformée en procédure selon un mécanisme d’évaluation (cf. l’article Computer_algebra de Wikipedia, section Expressions, paragraphe 2).

Pour résumer:

  • la dérivation algorithmique est une dérivation formelle opérant sur les expressions que constituent les éléments d’un programme.
  • la dérivation symbolique est une dérivation formelle opérant sur les expressions mathématiques classiques.

… et synonyme de dérivation formelle !!!

L’article se restreint aux mathématiques et au calcul formel. Ne sachant pas ce qu’est une dérivation automatique en mathématiques, on arrive au calcul formel et dans ce cadre, certes, la dérivation automatique est formelle! La boucle est-elle bouclée? Non, on y adjoint le terme auto-dérivation. L’auto-dérision serait-elle une dérision automatique? Décidément, ce premier paragraphe est à revoir. Hélas, le deuxième le conforte en une auto-satisfaction automatique.

…mais différente de la dérivation symbolique et de la dérivation numérique

La dérivation automatique est distincte de la dérivation symbolique et de la dérivation numérique (méthode des différences finies).

La dérivation symbolique est une dérivation automatique: sinon, je ne sais pas de quoi on parle, si ce n’est du lycéen sur ses exercices.

La dérivation numérique n’est pas automatiquement automatique mais sans doute la méthode la plus facilement automatisable. Et même elle devient, en abusant quelque peu, une dérivation algorithmique au grain le plus grossier…

Ces deux méthodes ne sont définies que par leurs défauts

La dérivation symbolique peut conduire à un code inefficace et se heurte à la difficulté de convertir un programme informatique en une seule expression, tandis que la dérivation numérique peut introduire des erreurs d’arrondi lors de la discrétisation et de l’annulation. Ces deux méthodes classiques ont par ailleurs des problèmes lors du calcul de dérivées d’ordre plus élevées, car la complexité et/ou les erreurs augmentent. Enfin, ces deux méthodes sont lentes pour calculer les dérivées partielles d’une fonction lorsque cette dernière dépend de nombreuses variables, comme cela est nécessaire pour les algorithmes d’optimisation par descente de gradient.

Idem

En quoi ces défauts empêchent-ils une méthode d’être automatique? Conduire à un code inefficace, c’est déjà arriver à un code!

Les idées présentées mériteraient d’être développées.

… et la dérivation automatique résout tous ces problèmes (sic)

Tout est dit dans ce titre, qui est la conclusion du deuxième paragraphe!

Ma conclusion: une entrée Wikipedia pour la dérivation algorithmique

Il faut redonner au terme automatique son sens usuel: automatique ne signifie pas algorithmique, sauf abusivement dans un contexte spécial. La dérivation algorithmique est une dérivation automatique de code. Il faut présenter les autres dérivations automatiques et montrer en quoi elles se distinguent, notamment leurs avantages et leurs inconvénients, et renvoyer à un article spécial pour la dérivation algorithmique, en évitant donc ce double biais: une équivalence usurpée avec une méthode et la relégation des méthodes concurrentes.

L’article n’est pas seul en cause: rechercher “algorithmic differentiation” ou “computational differentiation” sur Wikipedia donne “Automatic_differentiation”. C’est équivalent, vous dit-on.

On doit s’appuyer sur le schéma pertinent faisant intervenir la dérivation symbolique et la dérivation algorithmique et le détailler. Cf. bouton ci-dessous.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *