Peut réseaux de neurones approximative d'une fonction quelconque donné assez de neurones cachés?
Je comprends réseaux de neurones avec un nombre de couches cachées peut approximer les fonctions non linéaires, cependant, peut-il approximative:
f(x) = x^2
Je ne peux pas penser comment elle pourrait. Il semble très évident limitation de réseaux de neurones qui peuvent potentiellement limite de ce qu'il peut faire. Par exemple, en raison de cette limitation, les réseaux de neurones ne peuvent probablement pas correctement approximative de nombreuses fonctions utilisées dans les statistiques comme la Moyenne mobile Exponentielle, ou même variance.
Parlant de la moyenne mobile, peut réseaux de neurones récurrents correctement approximative qui? Je comprends comment une anticipation de réseau de neurones, ou même un seul neurone linéaire de sortie peut une moyenne mobile à l'aide de la fenêtre coulissante technique, mais comment pourrait-réseaux de neurones récurrents faire sans montant X de couches cachées (X étant la moyenne mobile de la taille)?
Aussi, nous supposons que nous ne connaissons pas la fonction d'origine f, qui arrive à obtenir la moyenne de la dernière 500 entrées, puis sortie à 1 si il est supérieur à 3, et 0 si elle ne l'est pas. Mais pendant une seconde, prétendre que nous ne le sais pas, c'est une boîte noire.
Comment un réseau de neurones récurrent approximative qui? Nous avons d'abord besoin de savoir combien d'échéances elle doit avoir, ce qui n'est pas. Peut-être un LSTM réseau, mais même alors, si ce n'est pas une simple moyenne mobile, c'est une moyenne mobile exponentielle? Je ne pense pas que même LSTM peut le faire.
Même pire encore, que faire si f(x,x1) que nous sommes en train d'apprendre est tout simplement
f(x,x1) = x * x1
Qui semble très simple et direct. Peut un réseau de neurones de l'apprendre? Je ne vois pas comment.
Ai-je raté quelque chose d'énorme là ou sont les algorithmes d'apprentissage automatique extrêmement limitée? Il existe d'autres techniques d'apprentissage en plus de réseaux de neurones qui peut réellement faire de tout cela?
- Cette question semble être hors-sujet parce que c'est à propos des mathématiques/statistiques. Essayez stats.stackexchange.com.
- Je parle de ce que je peux ou ne peux pas faire avec des réseaux de neurones. Je vois qu'il nécessite à l'évidence des connaissances dans certains des mathématiques/statistiques, mais la question n'est certainement pas hors sujet à mon avis.
- C'est une question de théorie. C'est aussi un opiniâtre question; si l'apprentissage de la machine est limitée dépend de ce que vous attendez à faire. L'ensemble du domaine est destiné à résoudre mal définie des problèmes du monde réel environ, pas bien définie mathématique des problèmes qui admettent des algorithmes simples.
- La moyenne mobile et la moyenne mobile exponentielle est largement utilisé dans les marchés financiers d'essayer de prédire le mouvement des prix à l'aide de l'analyse technique. Le marché financier de prédiction est très mal définie problèmes du monde réel. C'est la raison pour laquelle je suis à l'apprentissage des réseaux de neurones pour commencer.
- Marché de prédiction est mal définie. La moyenne mobile ne l'est pas.
- Une question parfaitement justifiée dans ce sous-domaine. Merci pour la poser; il m'a aidé aussi.
- Vous pouvez essayer de le Croix Validé ou AI StackExchange sites. Vérifier leurs pages pour quels types de questions qu'ils acceptent. Voir aussi Qui StackExchange site pour l'apprentissage de la machine des questions.
- Cette question est simple réponse théorique. Vous auriez besoin de 2 couches cachées, à 2 et 4 unités chacun, respectivement, pour se rapprocher de la fonction carré arbitrairement bien. Je ne peux pas expliquer le détail ici, car l'observation de la taille est trop petite, vous obtiendrez la réponse théorique SE site.
Vous devez vous connecter pour publier un commentaire.
Le point essentiel à comprendre est compact:
Réseaux de neurones (comme tout autre rapprochement structure comme celle-ci, les polynômes, les splines, ou Radial basis Functions) peut approximer toute fonction continue seulement à l'intérieur d'un ensemble compacte.
En d'autres termes, la théorie indique que, compte tenu de:
alors il existe un réseau de neurones qui se rapproche de f(x) avec une approximation de l'erreur inférieure à ε, partout dans [a,b].
Concernant votre exemple de f(x) = x2, oui, vous pouvez approximatif avec un réseau de neurones à l'intérieur de toute gamme finie: [-1,1], [0, 1000], etc. Pour visualiser cela, imaginez que vous approximatif f(x) dans [-1,1] avec un L'Étape De La Fonction. Vous pouvez le faire sur le papier? Notez que si vous faites les étapes assez étroit, vous pouvez atteindre n'importe quel niveau de précision désiré. La façon dont les réseaux de neurones approximative f(x) n'est pas très différente.
Mais encore une fois, il n'y a pas de réseau de neurones (ou tout autre approximation de la structure) avec un nombre fini de paramètres qui peuvent approximative f(x) = x2 pour tous x dans [-∞, +∞].
La question est très légitime et très malheureusement, nombreux sont les réponses montrent combien peu de praticiens semblent savoir à propos de la théorie des réseaux de neurones. La seule rigoureux théorème qui existe au sujet de la capacité des réseaux de neurones à rapprocher les différents types de fonctions est l'Universel Rapprochement Théorème.
L'UAT stipule que toute fonction continue sur un compact de domaine peut être approximée par un réseau de neurones avec une seule couche cachée fourni les fonctions d'activation utilisées sont DÉLIMITÉES, en continu et de plus en plus monotone. Maintenant, finis, en somme des délimitée fonctions est délimitée par définition.
Un polynôme est pas bornée, donc le mieux que nous puissions faire est de fournir un réseau de neurones rapprochement de ce polynôme sur un sous-ensemble compact de R^n. En dehors de ce sous-ensemble compact, le rapprochement va échouer lamentablement comme le polynôme va croître sans limite. En d'autres termes, le réseau de neurones de fonctionner sur l'ensemble de la formation, mais ne sera pas généraliser!
La question n'est ni hors-sujet et ne constitue que l'OP de l'opinion.
Je ne suis pas sûr de savoir pourquoi il ya une telle réaction viscérale, je pense que c'est une question légitime qui est difficile à trouver sur google, même si je pense que c'est largement apprécié et répété outloud. Je pense que dans ce cas, vous êtes à la recherche pour les citations montrant qu'un réseau neuronal peut approximer n'importe quelle fonction. Cette étude récente l'explique bien, à mon avis. Ils citent également le document original Barron à partir de 1993, qui s'est avéré moins un résultat général. La conclusion: une à deux couches de réseau de neurones peut représenter n'importe quel délimitée polynomiale de degré, sous certaines (apparemment non limitative) les conditions.
Juste au cas où le lien ne fonctionne pas, il est appelé "l'Apprentissage des Polynômes avec des Réseaux de Neurones" par Andoni et coll., 2014.
Le seul moyen pour moi de faire sens de cette question est que vous parlez de l'extrapolation. Si par exemple la formation d'échantillons dans la gamme
-1 < x < +1
peut un réseau de neurones apprendre les bonnes valeurs pourx > 100
? C'est ce que tu veux dire?Si vous avez eu connaissance au préalable, que les fonctions que vous êtes en essayant de rapprocher sont susceptibles d'être faible-de l'ordre des polynômes (ou tout autre ensemble de fonctions), alors vous pouvez certainement construire un réseau de neurones qui peuvent représenter ces fonctions, et d'extrapoler
x^2
partout.Si vous n'avez pas de connaissances préalables, les choses sont un peu plus difficile: Il existe une infinité de fonctions douces qui fit
x^2
dans la gamme-1..+1
parfaitement, et il n'y a aucune bonne raison pour laquelle nous nous attendons à cex^2
pour donner de meilleures prédictions que toute autre fonction. En d'autres termes: Si nous n'avions pas de connaissance a priori sur la fonction que nous essayons d'apprendre, pourquoi serions-nous voulez pour en savoirx -> x^2
? Dans le domaine de l'artificiel, de la formation définit,x^2
pourrait être une fonction probable, mais dans le monde réel, il n'est probablement pas.Pour donner un exemple: disons que la température, le lundi (t=0) est de 0°, le mardi c'est 1°, mercredi 4°. Nous n'avons aucune raison de croire que les températures se comportent comme de bas de polynômes, de sorte que nous n'aurions pas voulez à inférer à partir de ces données que la température de lundi prochain sera probablement environ 49°.
Je pense que c'est deux questions: d'Abord, un réseau de neurones représentent cette fonction? I. e. est-il un ensemble de poids qui donnerait exactement ce comportement? Cela dépend évidemment de l'architecture du réseau, mais je pense que nous pouvons arriver à des architectures qui peut représenter (ou au moins proche) ce genre de fonction.
Question deux: Peut-il apprendre cette fonction, la formation des échantillons? Eh bien, si votre algorithme d'apprentissage n'est pas coincé dans un minimum local, assurez-vous: Si vous avez assez de la formation des échantillons, tout un ensemble de poids qui n'est pas approximatif de votre fonction donne une formation d'erreur plus grande que 0, tandis que un ensemble de poids, qui correspondent à la fonction que vous essayez d'apprendre a une formation d'erreur=0. Donc, si vous trouvez un optimum global, le réseau doit s'adapter à la fonction.
Un réseau peut apprendre
x|->x * x
si il a un neurone qui calculex * x
. Ou plus généralement, un nœud calculex**p
et apprend p. Ce ne sont pas couramment utilisés, mais l'affirmation que "pas de réseau de neurones peut apprendre..." est trop fort.Un réseau avec ReLUs et un linéaire de la couche de sortie peut apprendre
x|->2*x
, même sur une surabondance de la gamme de valeurs de x. L'erreur est énorme, mais la proportionnelle de l'erreur d'être borné. Toute fonction appris par un tel réseau est linéaire par morceaux, et en particulier asymptotiquement linéaire.Cependant, il y a un risque avec ReLUs: une fois ReLU est désactivée pour tous les exemples d'apprentissage, il cesse d'apprentissage. Avec un grand domaine, il s'allume pendant quelques exemples de test, et de donner un résultat erroné. Donc ReLUs ne sont un bon choix si les cas de test sont susceptibles d'être à l'intérieur de l'enveloppe convexe de l'ensemble de la formation. C'est plus facile de garantie si la dimension est faible. Un travail autour de est à préférer LeakyReLU.
Une autre question: combien de neurones avez-vous besoin pour atteindre le rapprochement que vous voulez? Chaque ReLU ou LeakyReLU implémente un seul changement de gradient. Ainsi, le nombre dépend de la valeur absolue maximale de la deuxième différentielle de la fonction objectif, divisé par le maximum d'erreur toléré.
Il y a des limitations théoriques des Réseaux de Neurones. Pas de réseau de neurones peut jamais apprendre la fonction f(x) = x*x
Il ne peut apprendre un nombre infini d'autres fonctions, à moins que vous assumez l'impossible:
1 - un nombre infini d'exemples de formation
2 - un nombre infini d'unités
3 - une quantité infinie de temps à converger
NNs sont bonnes dans l'apprentissage de faible niveau de reconnaissance de formes problèmes (les signaux qu'à la fin, ont certains des modèles statistiques qui peuvent être représentés par certains "continue" de la fonction!), mais c'est tout!
Pas plus!
Voici un indice:
Essayez de construire un NN qui prend n+1 entrées de données (x0, x1, x2, ... xn) et il retourne vrai (ou 1) si (2 * x0) est dans le reste de la séquence. Et, bonne chance.
Infinie de fonctions, en particulier celles qui sont récursives ne peut pas être appris. Ils sont tout simplement!