Quelle est la différence entre un réseau de neurones et un réseau de neurones profonds, et pourquoi les plus profonds fonctionnent-ils mieux?
On décembre 22, 2020 by adminJe n « ai pas vu la question énoncée précisément dans ces termes, et c » est pourquoi je pose une nouvelle question.
Ce qui mintéresse ce nest pas la définition dun réseau neuronal, mais la compréhension de la différence réelle avec un réseau neuronal profond.
Pour plus de contexte: je sais ce quest un réseau de neurones et comment fonctionne la rétropropagation. Je sais quun DNN doit avoir plusieurs couches cachées. Cependant, il y a 10 ans en classe jai appris quavoir plusieurs couches ou une couche (pas comptant les couches dentrée et de sortie) était équivalent en termes de fonctions quun réseau de neurones est capable de représenter (voir Cybenko « s Théorème dapproximation universelle ), et celui ayant plus de couches rendaient lanalyse plus complexe sans gain de performance. Evidemment, ce n’est plus le cas.
Je suppose, peut-être à tort, que les différences sont en termes d’algorithme d’entraînement et de propriétés plutôt que de structure, et donc Japprécierais vraiment que la réponse puisse souligner les raisons qui ont rendu possible le passage au DNN (par exemple, une preuve mathématique ou jouer au hasard avec des réseaux?) et souhaitable (par exemple, vitesse de convergence?)
Commentaires
- FYI: Dans quelle mesure cette diapositive sur lapprentissage en profondeur est-elle vraie?
- Si la fonction que vous souhaitez approximer est une fonction de composition (courante dans le traitement dimages et domaines naturels dus à la loi de la physique). Il peut être prouvé que les réseaux profonds peuvent exploiter cette compositionnalité et atteindre le même niveau derreur dapproximation avec un nombre exponentiellement inférieur de neurones (par rapport à un réseau à une seule couche cachée). Réf: Poggio, Tomaso et al. » Pourquoi et quand les réseaux profonds mais pas superficiels peuvent-ils éviter la malédiction de la dimensionnalité: un examen. » International Journal of Automation and Computing (2017)
- Vous pouvez jeter un œil à cet article
- Voir 6.4 sur arxiv.org/pdf/2004.06093.pdf
Réponse
Commençons par une trivialité: le réseau de neurones profonds est simplement un réseau à réaction avec de nombreuses couches cachées.
Cest plus ou moins tout ce quil y a à dire sur la définition. Les réseaux de neurones peuvent être récurrents ou anticipés; les réseaux anticipés nont pas de boucle dans leur graphe et peuvent être organisés en couches. Sil y a « plusieurs » couches , alors nous disons que le réseau est profond .
Combien de de couches un réseau doit-il avoir pour être qualifié de profond? réponse définitive à cette question (cest « sa un peu comme demander combien de grains font un tas ), mais généralement avoir deux couches cachées ou plus compte comme profond. En revanche, un réseau avec une seule couche cachée est classiquement appelé « peu profond ». Je soupçonne quil y aura une certaine inflation ici, et dans dix ans, les gens pourraient penser que tout ce qui contient moins de, disons, dix couches est superficiel et ne convient quaux exercices de la maternelle. De manière informelle, « deep » suggère que le réseau est difficile à gérer.
Voici une illustration, adaptée à partir dici :
Mais la vraie question que vous vous posez est, bien sûr, pourquoi avoir plusieurs couches serait bénéfique?
Je pense que le la réponse quelque peu étonnante est que personne ne le sait vraiment. Il y a quelques explications courantes que je passerai brièvement en revue ci-dessous, mais aucune delles na été démontrée de manière convaincante, et on ne peut même pas être sûr quavoir de nombreuses couches est vraiment bénéfique.
Je dis que cest étonnant, car le deep learning est massivement populaire, bat tous les records (de la reconnaissance dimage, à la lecture de Go, à la traduction automatique, etc.) chaque année, est utilisé par lindustrie, etc. etc. . Et nous ne savons toujours pas tout pourquoi cela fonctionne si bien.
Je base ma discussion sur Deep Learning livre de Goodfellow, Bengio et Courville, sorti en 2017 et largement considéré comme le livre sur lapprentissage profond. (Elle est disponible gratuitement en ligne.) La section pertinente est 6.4.1 Propriétés d’approximation universelle et profondeur .
Vous avez écrit que
Il y a 10 ans en classe, jai appris quavoir plusieurs couches ou une couche (sans compter les couches dentrée et de sortie) était équivalente en termes de fonctions quun réseau de neurones est capable de représenter […]
Vous devez faire référence au soi-disant Théorème d’approximation universelle , prouvé par Cybenko en 1989 et généralisé par diverses personnes dans les années 1990. Il dit essentiellement quun réseau de neurones peu profond (avec 1 couche cachée) peut se rapprocher de nimporte quelle fonction, cest-à-dire quil peut en principe apprendre nimporte quoi . Ceci est vrai pour diverses fonctions dactivation non linéaires, y compris les unités linéaires rectifiées que la plupart des réseaux de neurones utilisent aujourdhui (le manuel fait référence à Leshno et al. 1993 pour ce résultat).
Si oui, alors pourquoi tout le monde utilise-t-il des réseaux profonds?
Eh bien, une réponse naïve est que parce quils fonctionnent mieux. Voici une figure du livre Deep Learning montrant quil est utile davoir plus de couches dans une tâche particulière, mais le même phénomène est souvent observé dans diverses tâches et domaines:
Nous savons quun réseau peu profond pourrait fonctionnent aussi bien que les plus profonds. Mais ce nest pas le cas; et ils ne le font généralement pas. La question est: pourquoi? Réponses possibles:
- Peut-être quun réseau peu profond aurait besoin de plus de neurones que le réseau profond?
- Peut-être quun réseau peu profond est plus difficile à entraîner avec nos algorithmes actuels (par exemple, il a des minima locaux plus désagréables, ou le taux de convergence est plus lent, ou autre)?
- Peut-être quune architecture superficielle ne correspond pas au type de problèmes que nous essayons habituellement de résoudre (par exemple, la reconnaissance dobjets est une quintessence « , processus hiérarchique)?
- Quelque chose dautre?
Le livre Deep Learning plaide pour les puces n ° 1 et n ° 3. Premièrement, il soutient que le nombre dunités dans un réseau peu profond croît de façon exponentielle avec la complexité des tâches. Donc, pour être utile, un réseau peu profond peut avoir besoin dêtre très grand; peut-être beaucoup plus grand quun réseau profond. Ceci est basé sur un certain nombre darticles prouvant que les réseaux peu profonds auraient dans certains cas besoin de nombreux neurones de manière exponentielle; mais si par ex. La classification MNIST ou Go jouer sont de tels cas nest pas vraiment clair. Deuxièmement, le livre dit ceci:
Le choix dun modèle profond encode une croyance très générale que la fonction que nous voulons apprendre devrait impliquer la composition de plusieurs fonctions plus simples. Cela peut être interprété du point de vue de lapprentissage des représentations comme indiquant que nous pensons que le problème dapprentissage consiste à découvrir un ensemble de facteurs de variation sous-jacents qui peuvent à leur tour être décrits en termes dautres facteurs de variation sous-jacents plus simples.
Je pense que le « consensus » actuel est quil « sagit dune combinaison des puces n ° 1 et n ° 3: pour les tâches du monde réel, larchitecture profonde est souvent une architecture peu profonde et bénéfique serait inefficace et nécessiterait beaucoup plus de neurones pour les mêmes performances.
Mais cest loin dêtre prouvé. Considérez par exemple Zagoruyko et Komodakis, 2016, Wide Residual Networks . Des réseaux résiduels comportant plus de 150 couches sont apparus en 2015 et ont remporté divers concours de reconnaissance dimages. Ce fut un grand succès et ressemblait à un argument convaincant en faveur de la profondeur; voici une figure tirée de une présentation du premier auteur sur le papier résiduel du réseau (notez que le temps va de manière confuse vers la gauche ici):
Mais larticle lié ci-dessus montre quun « large «réseau résiduel avec« seulement »16 couches peut surpasser les« profonds »avec plus de 150 couches. Si cela est vrai, alors le point entier de la figure ci-dessus se décompose.
Ou considérez Ba et Caruana, 2014, Do Deep Nets Really Need to be Deep? :
Dans cet article, nous fournissons des preuves empiriques que les filets peu profonds sont capables dapprendre la même fonction que les filets profonds, et dans certains cas avec le même nombre de paramètres que les filets profonds. Pour ce faire, nous formons dabord un modèle profond de pointe, puis nous entraînons un modèle peu profond pour imiter le modèle profond. Le modèle synoptique est formé à laide du schéma de compression de modèle décrit dans la section suivante. Remarquablement, avec la compression du modèle, nous sommes en mesure de former les filets peu profonds pour quils soient aussi précis que certains modèles profonds, même si nous ne sommes pas en mesure de former ces filets peu profonds pour quils soient aussi précis que les filets profonds lorsque les filets peu profonds sont entraînés directement sur loriginal. des données dentraînement étiquetées. Si un réseau peu profond avec le même nombre de paramètres quun réseau profond peut apprendre à imiter un réseau profond avec une haute fidélité, alors il est clair que la fonction apprise par ce réseau profond na pas vraiment besoin dêtre profonde.
Si cest vrai, cela voudrait dire que lexplication correcte est plutôt ma puce # 2, et non # 1 ou # 3.
Comme je lai dit – – personne ne le sait vraiment encore.
Remarques finales
Le montant des progrès réalisés dans le lapprentissage en profondeur au cours des ~ 10 dernières années est vraiment incroyable, mais la plupart de ces progrès ont été réalisés par essais et erreurs, et nous manquons encore de connaissances très élémentaires sur ce qui exactement fait fonctionner si bien les réseaux profonds. Même la liste des choses que les gens considèrent comme cruciales pour mettre en place un réseau profond efficace semble changer tous les deux ans.
La renaissance du deep learning a commencé en 2006 lorsque Geoffrey Hinton (qui travaillait sur neural réseaux depuis plus de 20 ans sans grand intérêt de qui que ce soit) a publié quelques articles révolutionnaires offrant un moyen efficace de former des réseaux profonds ( Science paper , Papier de calcul neuronal ). Lastuce consistait à utiliser un pré-entraînement non supervisé avant de commencer la descente de gradient. Ces articles ont révolutionné le domaine et, pendant quelques années, les gens ont pensé quune pré-formation non supervisée était la clé.
Ensuite, en 2010, Martens a montré que les réseaux de neurones profonds peuvent être entraînés avec des méthodes du second ordre (appelées méthodes sans Hesse) et peuvent surpasser les réseaux entraînés avec pré-formation: Apprentissage en profondeur via une optimisation sans Hesse . Puis en 2013, Sutskever et al. a montré que la descente de gradient stochastique avec quelques astuces très intelligentes peut surpasser les méthodes sans Hesse: Sur limportance de linitialisation et de lélan dans lapprentissage en profondeur . En outre, vers 2010, les gens ont réalisé que lutilisation dunités linéaires rectifiées au lieu dunités sigmoïdes fait une énorme différence pour la descente de gradient. Le décrochage est apparu en 2014. Les réseaux résiduels sont apparus en 2015. Les gens continuent à trouver des moyens de plus en plus efficaces pour former des réseaux profonds et ce qui semblait être un élément clé il y a 10 ans est souvent considéré une nuisance aujourdhui. Tout cela est largement motivé par des essais et des erreurs et on ne comprend guère ce qui fait que certaines choses fonctionnent si bien et dautres choses ne pas. Former des réseaux profonds est comme un gros sac dastuces. Les astuces réussies sont généralement rationalisées après coup.
Nous ne savons même pas pourquoi les réseaux profonds atteignent un plateau de performance; à peine 10 ans, les gens avaient lhabitude de blâmer les minima locaux, mais la pensée actuelle est que ce nest pas le point (lorsque les performances atteignent un plateau, les gradients ont tendance à rester importants). Cest une question tellement fondamentale sur les réseaux profonds, et nous ne savons même pas cela .
Mise à jour: Cest plus ou moins le sujet de la conférence NIPS 2017 dAli Rahimi sur lapprentissage automatique en tant qualchimie: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Cette réponse a été entièrement réécrite en avril 2017, donc certains des commentaires ci-dessous ne sappliquent plus.]
Commentaires
- Bonne réponse! 1) Comme également mentionné par @Nicolas, il se trouve quil existe un théorème ( en.wikipedia.org/wiki/Universal_approximation_theorem ) qui prétend quun neuronal à feed-forward n et travailler avec une seule couche cachée et un nombre fini de neurones peut approximer nimporte quelle fonction continue (y compris un DNN) sur lhypercube unitaire. Ce résultat est prétendu indépendant du choix de la fonction dactivation. 2) Je ne sais pas si votre dernière remarque (cest-à-dire que Hinton a rejoint Google) est pertinente pour le récent succès des DNN; Hinton a rejoint Google bien après que les DNN soient devenus épidémiques!
- Peut-être que nous ‘ utilisons la terminologie différemment. Les Perceptrons nont pas ‘ t ont une couche cachée – leur entrée est des données, leur sortie est la classification. Un réseau multicouche se compose dun groupe de perceptrons câblés ensemble de sorte que la sortie de la couche $ n-1 $ forme lentrée de la couche $ n $. Un réseau avec une seule couche cachée comporte donc trois couches (entrée, cachée, sortie). Cette couche cachée est la clé de lapproximation universelle: les perceptrons, qui en manquent, peuvent ‘ t calculer des choses comme XOR, mais les réseaux multicouches le peuvent.
- La linéarité la chose semble être une combinaison de deux problèmes. Les Perceptrons ne peuvent calculer que des frontières de décision linéaires – il ne peut tracer que des lignes droites pour diviser deux classes. Les réseaux multicouches peuvent » dessiner » des frontières plus compliquées. Mais ni les perceptrons ni les réseaux multicouches nutilisent de fonctions dactivation linéaires, sauf dans la couche de sortie dun réseau multicouche. La fonction dactivation du perceptron est un heaviside (1 si x > 0, 0 sinon); Les réseaux multicouches utilisent souvent des sigmoids, mais les contraintes pour les env. sont assez doux: non constants, limités et en augmentation monotone.
- @amoeba super réponse, la photo du début ma en quelque sorte découragée de lire le reste, mais cétait pour le mieux. Le perceptron est le pendant de la régression linéaire pour la classification, cest pourquoi lorsque les gens utilisent la solution de forme fermée (pseudoinverse) pour résoudre le problème au lieu des méthodes en ligne (sgd), il ‘ s appelée régression logistique, à cause de la logistique (fonction sigmoïde) = perceptron. Une régression perceptron / logistique ne peut que ‘ tracer ‘ des frontières de décision linéaires et que ‘ s pourquoi il ‘ est appelé linéaire.
- Cependant, le perceptron multicouche (ce que vous avez dessiné dans votre première image à gauche) peut combiner plusieurs décisions linéaires de ce type frontières et peut donc partitionner lespace pour résoudre le problème XOR (non linéaire) comme @Matt mentionné. Ainsi, de nombreuses limites de décision linéaires combinées peuvent former un cercle, par exemple si vous plissez les yeux. Cela dépend de la façon dont vous y pensez – la décision est toujours linéaire dans un espace supérieur, si vous êtes familier avec les noyaux, cest un peu la même chose ‘.
Réponse
Bonne réponse jusquà présent, bien quil y ait quelques choses que personne ici na mentionnées, voici mon 0,02 $
Je répondrai simplement sous la forme dune histoire, je devrais rendre les choses plus amusantes et plus claires. Pas de tldr ici. Dans le processus, vous devriez être en mesure de comprendre quelle est la différence.
Il y a plusieurs raisons pour lesquelles les DNN se sont déclenchés quand ils lont fait (les étoiles devaient saligner, comme toutes choses similaires, cest juste une question de droit lieu, bon moment, etc.).
Une des raisons est la disponibilité des données, beaucoup de données (données étiquetées). Si vous voulez être en mesure de généraliser et dapprendre quelque chose comme « a priori générique » ou « a priori universel « (cest-à-dire les éléments de base qui peuvent être réutilisés entre les tâches / applications), alors vous avez besoin de beaucoup de données. Et des données sauvages, pourrais-je ajouter, pas densembles de données stériles soigneusement enregistrés dans le laboratoire avec un éclairage contrôlé et tout. Mécanique Turk a rendu cela (létiquetage) possible.
Deuxièmement, la possibilité de former des réseaux plus grands plus rapidement à laide de GPU a rendu lexpérimentation plus rapide. Les unités ReLU ont également accéléré les calculs et fourni leur régularisation car vous deviez utiliser plus dunités dans une couche pour pouvoir compresser les mêmes informations puisque les couches étaient désormais plus de longerons e, donc ça sest aussi bien passé avec le décrochage. En outre, ils ont aidé à résoudre un problème important qui se produit lorsque vous empilez plusieurs couches. Plus à ce sujet plus tard. Diverses astuces multiples qui améliorent les performances. Comme utiliser des mini-lots (ce qui est en fait préjudiciable à lerreur finale) ou des convolutions (qui ne captent pas autant de variance que les champs réceptifs locaux) mais qui sont plus rapides en calcul.
En attendant, les gens débattaient sils les aimaient plus maigres ou plus potelés, plus petits ou plus grands, avec ou sans taches de rousseur, etc. tous ont réalisé quil ny avait pas de déjeuner gratuit. Les réseaux rotaient.
Ce qui a ralenti les choses, cétait le problème du gradient de fuite . Les gens ont dit: whoa, cest loin, mec! En un mot, cela signifie quil était difficile dajuster lerreur sur les couches plus proches des entrées. Au fur et à mesure que vous ajoutez des couches sur le gâteau, cela devient trop bancal. Vous ne pouviez pas. t rétro-propager une erreur significative aux premières couches. Plus il y avait de couches, pire cétait. Bummer.
Certaines personnes ont compris que lutilisation de lentropie croisée comme fonction de perte (enfin, encore une fois, la classification et la reconnaissance dimage) fournit une sorte de régularisation et aide à éviter que le réseau ne soit saturé et à son tour le gradient na pas été en mesure de bien cacher cela.
Ce qui a également rendu les choses possibles était la pré-formation par couche utilisant des méthodes non supervisées. En gros, vous prenez un tas dauto-encodeurs et apprenez de moins en moins de représentations abstraites. vous augmentez le taux de compression. Les poids de ces réseaux ont été utilisés pour initialiser la version supervisée. Cela a résolu le problème du gradient de fuite dune autre manière: vous commencez déjà lentraînement supervisé à partir dune bien meilleure position de départ. Alors tous les autres réseaux se sont levés et ont commencé à se révolter. Mais les réseaux avaient de toute façon besoin de supervision, sinon il était impossible de garder le big data immobile.
Maintenant, pour la dernière partie qui mène finalement à votre réponse qui est trop complexe pour être résumée: pourquoi plus de couches et pas seulement une. Parce que nous pouvons! et parce que le contexte et les descripteurs de caractéristiques invariantes. et les pools.
Voici un exemple: vous avez un ensemble de données dimages, comment allez-vous former un plan NN en utilisant ces données? Eh bien, naïvement, vous prenez, disons chaque ligne et vous le concaténez en un seul vecteur long et cest votre entrée. Quapprenez-vous?Eh bien, certaines fonctions non-sens floues qui pourraient ne ressembler à rien, en raison des nombreux types de variances que les objets de limage contiennent et vous ne pouvez pas faire la distinction entre les choses pertinentes et non pertinentes. Et à un moment donné, le réseau doit oublier pour pouvoir réapprendre de nouvelles choses. Il y a donc le problème de la capacité. Il sagit davantage de dynamiques non linéaires, mais lintuition est que vous devez augmenter le nombre de neurones pour pouvoir inclure plus dinformations dans votre réseau.
Donc le point est que si vous saisissez simplement limage en une seule pièce, lajout de couches supplémentaires ne fait pas trop pour vous puisque vous ne pouvez pas apprendre les abstractions , ce qui est très important. Faire les choses de manière holistique ne fonctionne donc pas très bien, à moins que vous ne fassiez des choses plus simples avec le réseau, comme vous concentrer sur un type dobjet spécifique, vous vous limitez donc à une classe et vous choisissez certaines propriétés globales comme objectif de classification.
Alors, quy a-t-il à faire? Regardez le bord de votre écran et essayez de lire ce texte. Problème? Aussi stupide que cela puisse paraître, vous devez regarder ce que vous lisez. Sinon, cest trop flou / il ny a pas assez de résolution / granularité. Appelons la zone de mise au point le champ récepteur. Les réseaux doivent également pouvoir se concentrer. Fondamentalement, au lieu dutiliser limage entière comme entrée, vous déplacez une fenêtre glissante le long de limage, puis vous lutilisez comme entrée sur le réseau (un peu moins stochastique que ce que font les humains). Maintenant, vous avez également la possibilité de capturer les corrélations entre les pixels et donc les objets et vous pouvez également faire la distinction entre un chat endormi assis sur un canapé et un saut à lélastique de chat à lenvers. Neat, la foi en lhumanité rétablie. Le réseau peut apprendre des abstractions locales dans une image à plusieurs niveaux. Le réseau apprend des filtres, dabord simples, puis sappuie sur ceux-ci pour apprendre des filtres plus complexes.
Donc, pour résumer les choses: champs / convolutions réceptifs, initialisation non supervisée, unités linéaires rectifiées, abandon ou autre régularisation méthodes. Si vous êtes très sérieux à ce sujet, je vous recommande de jeter un œil à l Deep Learning in Neural Networks: An Overview de Schmidhuber, voici lurl de la pré-impression http://arxiv.org/abs/1404.7828
Et noubliez pas: grand apprentissage, données approfondies. Word.
Commentaires
- Bonjour Florin, merci pour la gentille réponse! Jaime le style décriture. Quand vous parlez de fenêtres coulissantes, faites-vous référence à la façon dont les couches convolutives de NN convolutives observent différentes parties dune image et dun projet leurs activations sur un espace de dimension inférieure?
- à peu près oui, les convolutions ne sont pas nécessaires, mais elles ‘ sont plus rapides en calcul, puisque les poids sont contraints. check cet article où ils ‘ nutilisent pas de convolutions et utilisent des champs réceptifs locaux. les mots-clés importants sont locaux / hiérarchiques: arxiv.org /pdf/1112.6209.pdf
- Je pense aussi que le plus proche la réponse systématique est sobi ‘ s. il ‘ a obtenu mon vote favorable. je viens dajouter quelques autres choses ici et là avec un peu de sel et de poivre.
Réponse
In En termes simples, la principale différence avec les réseaux de neurones classiques est quils ont beaucoup plus de couches cachées.
Lidée est dajouter des étiquettes aux couches pour créer plusieurs couches dabstraction:
Par exemple, un réseau de neurones profonds pour la reconnaissance dobjets :
- Couche 1: pixels simples
- Couche 2: Bords
- Couche 3: Formes (cercles, carrés)
- Couche n: Objet entier
Vous pouvez trouver une bonne explication à cette question dans Quora .
Et, si vous êtes intéressé par ce sujet, je vous recommanderais de jeter un œil à ceci livre .
Commentaires
- Merci David, mais je nai pas ‘ t vraiment voir comment ajouter simplement des étiquettes pour le rendre différent. Je me souviens aussi que cétait un problème difficile de comprendre et de décomposer comment une fonction était codée par le réseau neuronal. Il doit y avoir autre chose que simplement avoir plus de couches. Comme pour lexemple que vous avez donné, je crois que vous pouvez entraîner individuellement des réseaux de neurones (old school) pour faire chacune des tâches.
- La puissance vient lorsque vous lutilisez comme un pipeline, donc les entrées et les sorties à partir des piles de couches à chaque couche.
- Jai lu votre premier lien, qui est une bonne ressource, et dautres questions connexes sur quora et se, mais lexemple que vous avez donné ne semble pas exact avec ce que je lire. Je ‘ vais essayer de répondre à ma propre question, en résumant ces lectures.
- Bien que la ressource pointée soit intéressante, la réponse actuelle ne répond pas à la question.
- Pouvez-vous indiquer un exemple où les couches sont étiquetées (autrement que de manière purement descriptive)?Il est certainement vrai que les couches cachées apparaissent successivement comme des entités plus complexes dans chaque couche cachée, mais » lajout détiquettes » semble impliquer quelles ‘ est spécialement formé pour cela.
Réponse
NN:
- un calque caché suffit mais peut néanmoins avoir plusieurs calques, ordre de gauche à droite (modèle: feed forward NN)
- entraîné uniquement de manière supervisée (rétropropagation )
- lorsque plusieurs couches sont utilisées, entraîner toutes les couches en même temps (même algorithme: rétropropagation), plus de couches rend son utilisation difficile car les erreurs deviennent trop petites
- difficile à comprendre ce qui est appris à chaque couche
DNN:
- plusieurs couches sont nécessaires, arêtes non dirigées (modèle: machine boltzman restreinte)
- dabord formés de manière non supervisée, où les réseaux apprennent les fonctionnalités pertinentes en apprenant à reproduire ses entrées , puis formés de manière supervisée qui affine les fonctionnalités afin de classer
- former les couches une par une de la couche dentrée à la couche de sortie (algorithme: divergence contrastive)
- chaque couche clairement contient des fonctionnalités dabstraction croissante
Le passage à DNN est dû à trois percées indépendantes qui ont eu lieu en 2006.
Concernant les théorèmes sur NN, celui auquel la question fait allusion est :
- théorème dapproximation universelle ou théorème de Cybenko: un réseau de neurones à réaction avec une seule couche cachée peut approximer nimporte quelle fonction continue. Cependant, en pratique, cela peut nécessiter beaucoup plus de neurones si une seule couche cachée est utilisée.
Commentaires
- -1? Ah bon? Jai lu tout cela dans la littérature et jai fait une comparaison point par point des deux approches! Veuillez au moins indiquer ce qui nest pas correct …
- Je nai pas voté contre (peut-être quun vote négatif na pas aimé que vous répondiez à votre propre question? Mais cest bien sûr parfaitement bien ici), mais en voici un chose qui nest pas entièrement correcte. Ce que vous indiquez comme propriétés de DNN: que les arêtes ne sont pas dirigées, quelles ‘ sont dabord entraînées de manière non supervisée, que les couches sont entraînées une par une – tout cela ne fait que référence aux réseaux de croyances profondes suggérées par Hinton en 2006. Ce nest pas nécessairement vrai pour les réseaux de neurones profonds en général et en fait il existe maintenant de nombreuses façons de former un réseau profond sans tout cela. Voir ma réponse.
Réponse
Jai également été un peu confus au début par la différence entre réseaux de neurones (NN) et réseaux de neurones profonds (DNN), mais la « profondeur » se réfère uniquement au nombre de couches de paramètres &, malheureusement. Vous pouvez le prendre comme une sorte de re -branding sous la soi-disant «mafia canadienne».
Il y a plusieurs années, javais également des réseaux de neurones dans le cadre dune classe et nous avons fait la reconnaissance de chiffres, lapproximation des ondes et des applications similaires en utilisant NN, qui avait plusieurs couches et sorties cachées et tout ce jazz que les DNN ont. Cependant, ce que nous n’avions pas à l’époque, c’était la puissance de calcul.
La raison qui a rendu possible et souhaitable le passage au DNN sont les progrès du développement matériel. En termes simples, nous pouvons maintenant calculer plus, plus vite et plus parallélisé (DNN sur GPU « s), alors quavant, le temps était le goulot détranglement pour les NN » s.
Comme indiqué sur la page Wikipedia pour Deep Apprendre , la partie « profonde » se réfère principalement au fait davoir des entités interagissant de manière non linéaire sur plusieurs couches, effectuant ainsi lextraction et la transformation dentités. Cela a également été fait dans les NN « standard, mais à une échelle plus petite.
Sur la même page, ici vous avez la définition « Un réseau neuronal profond (DNN) est un réseau neuronal artificiel (ANN) avec plusieurs couches dunités cachées entre les couches dentrée et de sortie. »
Commentaires
- Bonjour Mttk, merci pour votre réponse, cela jette plus de lumière sur cette question. En ce qui concerne votre dernier point, oui la structure est très facile à expliquer la différence (1 vs plusieurs couches), mais la différence la façon dont ces multiples couches sont utilisées semble être ce qui compte et cest beaucoup moins clair. Cest pourquoi jai centré la question non sur la structure.
- Honnêtement, je ne ‘ t daccord avec la dernière définition que jai référencée – puisque ANN / NN avec une couche cachée ne sont pas vraiment efficaces, et vous aviez besoin de multiples pour toute sorte de prédiction plus complexe (I ‘ m disant cela parce que je pense que DNN était un mot à la mode inutile ajouté à un terme déjà bon, NN). Je pense que vous pouvez utiliser NN et DNN de manière interchangeable (car de nos jours, personne nutilise une couche cachée NN ‘ s), tandis que lutilisation des couches diffère entre les types de DNN ‘ s (CNN, RBM, RNN, LSTM, CW-RNN, …) et non lidée de DNN elle-même.
Réponse
Pour autant que je sache, ce que lon appelle le Deep Neural Network (DNN) aujourdhui na rien de fondamentalement ou philosophiquement différent de lancien réseau neuronal standard (NN). Bien que, en théorie, on puisse approcher un NN arbitraire en utilisant un NN peu profond avec une seule couche cachée, cependant, cela ne signifie que les deux réseaux fonctionneront de la même manière lorsquils sont entraînés à laide du même algorithme et des mêmes données dapprentissage. En fait, il existe un intérêt croissant pour la formation de réseaux peu profonds qui fonctionnent de la même manière que les réseaux profonds. La façon dont cela est fait, cependant, consiste à former dabord un réseau profond, puis à former le réseau peu profond pour imiter la sortie finale (cest-à-dire la sortie de lavant-dernière couche) du réseau profond. Vous voyez, ce qui rend les architectures profondes favorables, cest que les techniques de formation actuelles (rétro-propagation) fonctionnent mieux lorsque les neurones sont disposés dans une structure hiérarchique.
Une autre question qui peut être posée est: pourquoi Neural Les réseaux (les DNN en particulier) sont devenus si populaires soudainement. À ma connaissance, les ingrédients magiques qui ont rendu les DNN si populaires récemment sont les suivants:
A. Amélioration des ensembles de données et des capacités de traitement des données
1. Des ensembles de données à grande échelle contenant des millions dimages diverses sont devenus disponibles
2. La mise en œuvre rapide du GPU a été rendue accessible au public
B. Amélioration des algorithmes de formation et des architectures réseau
1. Unités linéaires rectifiées (ReLU) au lieu de sigmoïde ou tanh
2. Les architectures de réseaux profonds ont évolué au fil des ans
A-1) Jusquà très récemment, au moins en vision par ordinateur, nous navons pas pu former des modèles sur des millions dimages étiquetées; simplement parce que les ensembles de données étiquetés de cette taille nexistaient pas. Il savère que, outre le nombre dimages, la granularité de lensemble détiquettes est également un facteur très crucial dans le succès des DNN (voir Figure 8 dans cet article , par Azizpour et al.).
A-2) Beaucoup defforts dingénierie ont a permis de former des DNN qui fonctionnent bien dans la pratique, notamment lavènement des implémentations GPU. Lune des premières implémentations GPU réussies de DNN, fonctionne sur deux GPU parallèles; Pourtant, il faut environ une semaine pour former un DNN sur 1,2 million dimages de 1000 catégories à laide de GPU haut de gamme (voir cet article, par Krizhevsky et al.) .
B-1) Lutilisation dunités linéaires rectifiées simples (ReLU) au lieu de sigmoïde et tanh functions est probablement le plus gros élément de base pour rendre possible la formation des DNN. Notez que les fonctions sigmoïde et tanh ont presque un gradient nul presque partout, selon la vitesse à laquelle elles transitent du niveau dactivation bas au niveau élevé; dans le cas extrême, lorsque la transition est soudaine, nous obtenons une fonction de pas qui a une pente zéro partout sauf à un point où la transition se produit.
B-2) Lhistoire de la façon dont les architectures de réseaux neuronaux se sont développées au fil des ans me rappelle comment lévolution modifie la structure dun organisme dans la nature. Partage de paramètres ( par exemple dans les couches convolutives), la régularisation de labandon, linitialisation, le calendrier des taux dapprentissage, la mise en commun spatiale, le sous-échantillonnage dans les couches plus profondes et de nombreuses autres astuces qui sont maintenant considérées comme standard dans la formation Des DNN ont été développés, évolués fin adaptée au fil des ans pour rendre possible la formation des réseaux profonds comme cest le cas aujourdhui.
Commentaires
- +1. La première réponse dans ce fil qui fournit une réponse adéquate aux questions de lOP ‘. Beaucoup de bons points ici. Mon seul commentaire majeur serait quen plus de vos A et B, e Il y a aussi C: Augmentation massive de la taille des jeux de données dentraînement disponibles. Cela semble être au moins aussi important que A et B.
- Je ne ‘ Je pense que relu est si important: larticle dAlex Krizhevsky prétend que cela a fait nn apprendre à 6 fois plus rapide. La plupart des autres changements de structure de réseau que vous mentionnez concernent les nns convolutifs, qui copient simplement les pipelines de traitement dimage standard (bonne chose, mais pas de nouvelles informations)
- @amoeba: la taille de lensemble de données est sous A. I a mis à jour le texte pour le mettre en évidence.
- @ seanv507: en effet, javais en tête les réseaux convolutifs (ConvNets) lors de la rédaction de la réponse. Sil y a dautres facteurs importants (sans rapport avec ConvNets) que jai manqués, japprécierais que vous les mentionniez. Je serais heureux de mettre à jour ma réponse en conséquence.En ce qui concerne les ReLU, lentraînement des nns avec tanh et sigmoïde est considérablement plus difficile quavec les ReLU en raison du problème de disparition des gradients: les unités se saturent facilement et, une fois que cela se produit, il leur faut du temps pour redevenir insaturé (les est saturé)
Réponse
La différence entre un NN « Deep » et un NN standard est purement qualitative: il ny a pas de définition de ce que signifie ce «profond». «Deep» peut signifier nimporte quoi, depuis les architectures extrêmement sophistiquées utilisées par Google, Facebook et autres qui ont 50 à 80 couches ou même plus, jusquaux architectures à 2 couches cachées (4 couches au total). Je ne serais pas surpris si vous pouviez même trouver des articles prétendant faire du deep learning avec une seule couche cachée, car « deep » ne signifie pas grand-chose.
« Neural network » est aussi un mot qui ne veut pas dire grand-chose. « t ont une signification très précise. Il couvre un très grand ensemble de modèles, des machines boltzman aléatoires (qui sont des graphes non dirigés) aux architectures feedforward avec diverses fonctions dactivation. La plupart des NN seront entraînés à laide de backprop, mais ce nest pas nécessaire être le cas donc même les algorithmes de formation ne sont pas très homogènes.
Dans lensemble, lapprentissage en profondeur, les NN et les NN profonds sont tous devenus des mots fourre-tout qui capturent une multitude dapproches.
Pour de bonnes références introductives à « ce qui a changé »: Deep Learning of Representations: Looking Forward , Bengio, 2013 est une bonne revue + perspective pour lavenir. Voir aussi Les filets profonds ont-ils vraiment besoin dêtre profonds? Ba & Caruana, 2013 qui illustrent tha Être profond pourrait ne pas être utile pour la représentation mais pour l’apprentissage.
Commentaires
- Les références que vous donnez sont très utiles , mais le reste de la réponse dans la forme actuelle (qui se lit comme suit: » NN ne veut rien dire, DNN ne veut rien dire, NN et DNN peuvent faire beaucoup de choses « ) pas grand-chose, envisageriez-vous de le réviser?
Réponse
Pour développer la réponse de David Gasquez, lune des principales différences entre les réseaux de neurones profonds et les réseaux de neurones traditionnels est que nous nutilisons pas seulement la rétropropagation pour les réseaux de neurones profonds.
Pourquoi? Parce que la rétropropagation entraîne les couches ultérieures plus efficacement quelle entraîne les couches précédentes – à mesure que vous avancez de plus en plus tôt dans le réseau, les erreurs deviennent plus petites et plus diffuses. Ainsi, un réseau à dix couches comprendra essentiellement sept couches de pondérations aléatoires suivies de trois couches de pondérations ajustées, et fera tout aussi bien quun réseau à trois couches. Pour en savoir plus, consultez .
La percée conceptuelle consiste donc à traiter les problèmes séparés (les couches étiquetées) comme des problèmes séparés – si nous commençons par essayez de résoudre le problème de la construction dune première couche génériquement bonne, puis essayez de résoudre le problème de la construction dune deuxième couche génériquement bonne, finalement nous aurons un espace de fonctionnalités profond que nous pouvons nourrir à notre problème réel.
Réponse
Je ne dirais pas quil y a une grande différence philosophique entre NN et DNN (en fait, je dirais que DNN est juste un marketing terme pour distinguer de «échoué» NN). Ce qui a changé, cest la taille des ensembles de données. Essentiellement, les réseaux de neurones sont actuellement les meilleurs estimateurs statistiques $ O (n) $, fonctionnant bien pour les grands ensembles de données de grande dimension (par exemple imagenet).
Je pense que vous devriez prendre du recul et voir que cela a créé une résurgence dans IA peu profonde – par exemple Le sac de mots pour lanalyse des sentiments et dautres applications linguistiques et le sac visuel de mots était la principale approche de la reconnaissance dimage avant DNN. Personne ne dit que le sac de mots est un véritable modèle de langage, mais cest une solution dingénierie efficace. Je dirais donc que DNN est un meilleur « sac visuel de mots » – voir par exemple Szegedy et coll. 2013 Propriétés intrigantes des réseaux de neurones et Nguyen et al. Les réseaux de neurones profonds sont facilement trompés: des prédictions à haut niveau de confiance pour les images non reconnaissables où il est clair quaucune structure dordre supérieur, etc. DNN).
Commentaires
- @amoeba cet autre papier est presque un papier daccompagnement du premier (encore avec beaucoup dimages!)
Réponse
Pour répondre à cette dernière question, regardez ce document de Telgarsky qui dit que pour un certain problème de classification « tous les réseaux peu profonds avec moins de nœuds exponentiellement (en k) présentent une erreur dau moins 1/6, alors quun réseau profond avec 2 nœuds dans chacune des 2k couches atteint zéro erreur. »
Le problème de classification en question est le problème à n points alternés dans lequel on considère lintervalle $ [0,1-2 ^ {- k}] $ afin que les entrées $ x_i $ soient les $ 2 ^ k $ points uniformément distribués dans cet intervalle et le $ y_i $ correspondant sont donnés par $ y_i = 1 $ si $ i $ est impair, et $ y_i = 0 $ si $ i $ est pair. Nous nous demandons ensuite dans quelle mesure les réseaux peu profonds sans largeurs exponentielles peuvent-ils capturer cette relation par rapport aux réseaux profonds avec seulement deux nœuds dans chaque couche? Essentiellement, nous pouvons mieux approcher les données (exactement même) avec un linéaire ( dans $ k $ ) nombre de couches avec seulement deux nœuds dans chaque couche, alors que nous en aurions besoin exponentiellement (dans $ k $ ) pour obtenir le même résultat dans un réseau peu profond.
La preuve de la citation consiste à remarquer que la composition des activations non linéaires appliquées aux transformations affines (cest-à-dire avec un plus grand nombre de couches) parvient à capturer plus de variabilité dans les données que la somme de ces mêmes fonctions (comme lorsque nous ajoutons des nœuds aux couches).
Réponse
Le Deep Learning est un ensemble dalgorithmes dapprentissage automatique qui tenter de modéliser des abstractions de haut niveau dans les données en utilisant des architectures composées de plusieurs transformations non linéaires .
Source: Bougie Arno
Laisser un commentaire