Je comprends que les réseaux de neurones (NN) peuvent être considérés comme des approximateurs universels des deux fonctions et de leurs dérivés, sous certaines hypothèses (à la fois sur le réseau et sur la fonction à approximer). En fait, j'ai fait un certain nombre de tests sur des fonctions simples mais non triviales (par exemple, les polynômes), et il semble que je puisse en effet bien les approcher et leurs premières dérivées (un exemple est montré ci-dessous).
Ce qui n'est pas clair pour moi, cependant, est de savoir si les théorèmes qui conduisent à ce qui précède s'étendent (ou pourraient être étendus) aux fonctionnelles et à leurs dérivées fonctionnelles. Considérons, par exemple, la fonctionnelle:
avec la dérivée fonctionnelle:
où dépend entièrement et non trivialement de . Un NN peut-il apprendre la cartographie ci-dessus et sa dérivée fonctionnelle? Plus précisément, si l'on discrétise le domaine sur et fournit (aux points discrétisés) en entrée et
J'ai fait un certain nombre de tests, et il semble qu'un NN puisse en effet apprendre le mapping , dans une certaine mesure. Cependant, bien que la précision de ce mappage soit correcte, elle n'est pas excellente; et troublant est que la dérivée fonctionnelle calculée est une ordure complète (bien que ces deux éléments puissent être liés à des problèmes de formation, etc.). Un exemple est montré ci-dessous.
Si un NN n'est pas adapté à l'apprentissage d'une fonction et de sa dérivée fonctionnelle, existe-t-il une autre méthode d'apprentissage automatique?
Exemples:
(1) Voici un exemple d'approximation d'une fonction et de sa dérivée: Un NN a été formé pour apprendre la fonction sur la plage [-3,2]: à partir de laquelle une une approximation de est obtenue: Notez que, comme prévu, l'approximation NN de et sa dérivée première s'améliorent avec le nombre de points d'entraînement, l'architecture NN, car de meilleurs minima sont trouvés pendant l'entraînement, etc.d f ( x ) / d x f ( x )
(2) Voici un exemple d'approximation d'une fonctionnelle et de sa dérivée fonctionnelle: Un NN a été formé pour apprendre la fonctionnelle . Les données d'apprentissage ont été obtenues en utilisant des fonctions de la forme , où et ont été générés aléatoirement. Le graphique suivant illustre que le NN est en effet capable d'approcher assez bien : Les dérivés fonctionnels calculés, cependant, sont des ordures complètes; un exemple (pour un spécifique ) est montré ci-dessous: Comme une note intéressante, l'approximation NN à semble s'améliorer avec le nombre de points d'entraînement, etc. (comme dans l'exemple (1)), mais pas la dérivée fonctionnelle.
Réponses:
C'est une bonne question. Je pense que cela implique une preuve mathématique théorique. Je travaille avec le Deep Learning (essentiellement un réseau neuronal) depuis un certain temps (environ un an), et sur la base de mes connaissances de tous les articles que j'ai lus, je n'ai pas encore vu de preuve à ce sujet. Cependant, en terme de preuve expérimentale, je pense pouvoir apporter un retour d'expérience.
Prenons cet exemple ci-dessous:
Dans cet exemple, je crois que via un réseau neuronal multicouche, il devrait être capable d'apprendre à la fois f (x) et aussi F [f (x)] via la rétropropagation. Cependant, que cela s'applique à des fonctions plus complexes ou à toutes les fonctions de l'univers, cela nécessite plus de preuves. Cependant, lorsque nous considérons l'exemple de la concurrence Imagenet --- pour classer 1000 objets, un réseau neuronal très profond est souvent utilisé; le meilleur modèle peut atteindre un taux d'erreur incroyable à ~ 5%. Un tel NN profond contient plus de 10 couches non linéaires et c'est une preuve expérimentale qu'une relation compliquée peut être représentée par un réseau profond [basé sur le fait que nous savons qu'un NN avec 1 couche cachée peut séparer les données de manière non linéaire].
Mais pour savoir si TOUS les dérivés peuvent être appris, des recherches supplémentaires ont été nécessaires.
Je ne sais pas s'il existe des méthodes d'apprentissage automatique capables d'apprendre complètement la fonction et sa dérivée. Désolé pour ça.
la source
Les réseaux de neurones peuvent approximer les correspondances continues entre les espaces vectoriels euclidiens lorsque la couche cachée devient infinie. Cela dit, il est plus efficace d'ajouter de la profondeur que de la largeur. Une fonctionnelle est simplement une carte où la plage est c'est-à-dire . Donc, oui, les réseaux neuronaux peuvent apprendre les fonctions tant que l'entrée est un espace vectoriel de dimension finie et que la dérivée est facilement trouvée par différenciation en mode inverse, ou rétropropagation. De plus, la quantification de l'entrée est en effet un bon moyen d'étendre le réseau à des entrées à fonction continue.f:RM→RN R N=1
la source
Si la fonctionnelle est sous la forme alors peut être appris avec une régression linéaire avec suffisamment de fonctions d'apprentissage et valeurs cibles . Cela se fait en approximant l'intégrale par une règle trapézoïdale: c'est-à-dire oùF[f(x)]=∫abf(x)g(x)dx g(x) fi(x), i=0,…,M F[fi(x)] F[f(x)]=Δx[f0g02+f1g1+...+fN−1gN−1+fNgN2] F[f(x)]Δx=y=f0g02+f1g1+...+fN−1gN−1+fNgN2 f0=a, f1=f(x1), ..., fN−1=f(xN−1), fN=b,
a<x1<...<xN−1<b, Δx=xj+1−xj
Supposons que nous ayons fonctions de formation . Pour chaque nous avonsM fi(x), i=1,…,M i F[fi(x)]Δx=yi=fi0g02+fi1g1+...+fi,N−1gN−1+fiNgN2
Les valeurs sont alors trouvées comme solution d'un problème de régression linéaire avec une matrice de variables explicatives et la cible vecteur .g0,…,gN X=⎡⎣⎢⎢⎢⎢f00/2f10/2…fM0/2f01f11…fM1…………f0,N−1f1,N−1…fM,N−1f0N/2f1N/2…fMN/2⎤⎦⎥⎥⎥⎥ y=[y0,…,yM]
Testons-le pour un exemple simple. Supposons que soit gaussien.g(x)
Discrétisez le domainex∈[a,b]
Prenons les sinus et les cosinus de fréquences différentes comme fonctions d'entraînement. Calcul du vecteur cible:
Maintenant, la matrice du régresseur:
Régression linéaire:
La fonction gaussienne est apprise avec succès bien que les données soient quelque peu réparties autour de la vraie fonction. L'écart est plus grand lorsque est proche de zéro. Cette propagation peut être lissée avec un filtre Savitzky-Golayg(x)
En général, ne dépend pas linéairement de , c'est-à-dire Il est toujours possible de l'écrire en fonction de après discrétisation de ce qui est également vrai pour les fonctionnelles de la forme car peut être approximé par des différences finies de . Comme est une fonction non linéaire deF[f(x)] f(x) F[f(x)]=∫abL(f(x))dx f0,f1…,fN x F[f(x)]=∫abL(f(x),f′(x))dx f′ f0,f1…,fN L f0,f1…,fN , on peut tenter de l'apprendre avec une méthode non linéaire, par exemple les réseaux de neurones ou SVM, bien que ce ne sera probablement pas aussi facile que dans le cas linéaire.
la source