Quelle est la différence entre un réseau de neurones, un système d'apprentissage profond et un réseau de croyances profondes?


23

Quelle est la différence entre un réseau de neurones, un système d'apprentissage profond et un réseau de croyances profondes?

Si je me souviens bien, votre réseau de neurones de base est une sorte de truc à 3 couches, et j'ai décrit les systèmes de croyance profonde comme étant des réseaux de neurones empilés les uns sur les autres.

Je n'ai pas encore entendu parler d'un Deep Learning Systems, mais je soupçonne fortement qu'il s'agit d'un synonyme de Deep Belief System. Quelqu'un peut-il confirmer cela?



Deep Belief System, est le terme que j'ai rencontré, ils peuvent ou non être des synonymes (Une recherche sur Google lancera des articles pour Deep Belief System)
Lyndon White

Deep Belief Network est le nom canonique car il dérive du Deep Boltzmann Network (et il peut être déroutant avec un système de propagation de croyances qui est totalement différent car il s'agit de réseaux bayésiens et de la théorie probabiliste de la décision).
gaborous

@gaborous Deep Belief Network est le nom correct (le document que j'ai reçu il y a des années me présentant devait avoir une faute de frappe). mais quant à être dérivé de réseaux boltzman profonds, ce nom lui-même n'est pas canonique (AFAIK, heureux de voir une citation). Les DBN dérivent de Sigmoid Belief Networks et de RBM empilés. Je ne pense pas que le terme Deep Boltzmann Network soit utilisé. D'un autre côté, Deep Boltzmann Machine est un terme utilisé, mais Deep Boltzmann Machines a été créé après Deep Belief Networks
Lyndon White

@Oxinabox Vous avez raison, j'ai fait une faute de frappe, c'est Deep Boltzmann Machines, bien qu'il devrait vraiment s'appeler Deep Boltzmann Network (mais alors l'acronyme serait le même, c'est peut-être pour cela que c'est la raison). Je ne sais pas quelle architecture profonde a été inventée en premier, mais les machines Boltzmann sont antérieures au bm semi-restreint. DBN et DBM sont vraiment la même construction, sauf que le réseau de base utilisé comme couche répétitive est un SRBM vs BM.
gaborous

Réponses:


10

réseaux de neurones artificiels modèles de étaient généralement limités à seulement quelques couches, disons 3, pendant des décennies, pour diverses raisons, y compris une preuve mathématique nommée Kolmogorovs thm qui indiquait qu'ils pouvaient théoriquement approcher des fonctions arbitraires avec une faible erreur (mais seulement avec de nombreux neurones).

les réseaux multicouches au-delà de ce qui n'était pas faisable / efficace via des techniques d'apprentissage antérieures. une percée similaire a eu lieu en 2006 par 3 chercheurs différents Hinton, Le Cun, Bengio qui ont pu former beaucoup plus de couches. le problème majeur dans ce domaine était la reconnaissance de l'écriture manuscrite.

le terme «réseau de croyances profondes» semble provenir d'un article de Hinton de 2006 faisant référence aux réseaux bayésiens , qui ont des connexions / analogies conceptuelles / théoriques étroites avec les réseaux de neurones. "Un algorithme d'apprentissage rapide pour les réseaux de croyances profondes"

voir la diapositive 17 en particulier de cette présentation des réseaux de neurones profonds

le domaine de l' apprentissage en profondeur n'a donc qu'une demi-décennie et fait l'objet de recherches et de développements rapides. Google, Facebook, Yahoo ont tous annoncé des initiatives basées sur le deep learning et la R&D est en cours.


site web dédié au deep learning par les chercheurs du domaine
vzn

14

Les réseaux de neurones artificiels sont une classe d'algorithmes qui comprennent de nombreux types d'algorithmes différents basés sur des graphiques, donc je ne détaillerai pas ici au-delà de ce que vous avez demandé car il y a trop à dire, car il y a tellement de types d'ANN.

Le premier type de réseaux de neurones artificiels, les fameux neurones McCulloch-Pitts, étaient linéaires , ce qui signifie qu'ils ne pouvaient résoudre que des problèmes de décision linéaires (c'est-à-dire des ensembles de données qui pouvaient être linéairement séparables en traçant une ligne). Au fil du temps, ce modèle de réseau de neurones linéaire est devenu connu sous le nom de Perceptron ou Adaline (selon la façon dont vous calculez la mise à jour des poids).

Les réseaux de neurones linéaires sont simplement composés d'un graphe bipartite, où les nœuds du côté gauche sont les entrées et les nœuds du côté droit la sortie. Seuls les poids des bords entre ces nœuds sont appris (le seuil d'activation des nœuds peut également être ajusté mais cela est rarement fait).

Réseau de neurones de base comme Adaline ou Perceptron (pas de couche cachée) Limite de décision linéaire

Un grand pas a été franchi lorsque les réseaux neuronaux peu profonds ont été inventés: au lieu de n'avoir qu'un graphe biparti, nous utilisons un graphe tripartite: la "couche" d'entrée, la "couche" de sortie et une "couche cachée" entre elles. Grâce à la couche cachée, le réseau peut désormais prendre des décisions non linéaires et résoudre des problèmes tels que le XOR canonique.

Réseau de neurones Xor Exemples de voies d'activation du réseau neuronal Xor Limite de décision du réseau Xor

Notez que le terme "peu profond" a été inventé rétrospectivement lorsque le réseau neuronal profond (également appelé réseaux neuronaux à n couches ) a été inventé. Il s'agit de s'opposer aux réseaux de neurones avec une seule couche cachée, aux réseaux de neurones profonds avec n couches cachées . Comme vous pouvez le deviner, l'utilisation de couches plus cachées permet de décider de jeux de données plus complexes car il y a plus de couches pour moduler la décision (c'est-à-dire que vous augmentez la dimensionnalité de votre frontière de décision, ce qui peut conduire à un sur-ajustement).

Réseau neuronal de couche N Limite de décision non linéaire complexe utilisant un réseau de neurones profonds à couche n

Vous pouvez vous demander: pourquoi personne n'a-t-il essayé auparavant d'utiliser des réseaux de neurones multicouches (profonds)? En fait, ils l'ont fait, dès 1975 par Fukushima avec le Cognitron et le Neocognitron (qui est en fait un réseau neuronal convolutif, mais c'est une autre histoire). Cependant, le problème était que personne ne savait comment apprendre efficacement de tels réseaux, le gros problème étant la régularisation . Les AutoEncoders de Hinton ont ouvert la voie, et plus tard les unités linéaires rectifiées de LeCun ont définitivement réglé le problème.

Qu'en est-il des réseaux de croyances profondes (DBN)? Ce ne sont que des machines Boltzmann multicouches semi-restreintes. Ils sont donc une sorte de réseau neuronal profond, mais avec un modèle de réseau de base différent (c'est-à-dire: la couche, c'est le modèle qui se répète): les machines Boltzmann sont différentes des autres réseaux en ce qu'elles sont génératives , ce qui signifie qu'elles sont généralement sert à apprendre de vos données pour les reproduire ("les générer"), tandis que les réseaux de neurones profonds habituels sont utilisés pour séparer vos données (en traçant une "frontière de décision").

En d'autres termes, DNN est idéal pour classer / prédire une valeur à partir de votre ensemble de données, tandis que DBN est idéal pour "réparer" une donnée corrompue (quand je dis réparer, ce n'est pas seulement à partir de données corrompues, il peut aussi être sur une donnée parfaitement fine que vous voulez juste corriger un peu pour être plus stéréotypé que pour le reconnaître plus facilement avec un autre réseau de neurones, comme des chiffres manuscrits).

En fait, pour bien résumer, vous pouvez dire que les AutoEncoders sont une forme plus simple de Deep Belief Network. Voici un exemple d'un DBN formé pour reconnaître les visages mais PAS les nombres, les nombres sont automatiquement effacés (c'est l'effet "fixant" du DBN):

Exemple de Deep Belief Network sur la reconnaissance faciale

Donc au final, DBN et DNN ne sont pas opposés: ils sont complémentaires. Par exemple, vous pouvez imaginer un système pour reconnaître les caractères manuscrits qui alimenteront d'abord l'image d'un personnage vers un DBN pour le rendre plus stéréotypé, puis alimenteront l'image stéréotypée vers un DNN qui affichera ensuite le caractère que l'image représente.

Une dernière note: les réseaux Deep Belief sont très proches des machines Deep Boltzmann: les machines Deep Boltzmann utilisent des couches de machines Boltzmann (qui sont des réseaux neuronaux bidirectionnels, également appelés réseaux de neurones récurrents), tandis que les réseaux Deep Belief utilisent des machines Boltzmann semi-restreintes (semi restreint signifie qu'ils sont modifiés en unidirectionnel, ce qui permet d'utiliser la rétropropagation pour apprendre le réseau, ce qui est beaucoup plus efficace que l'apprentissage d'un réseau récent). Les deux réseaux sont utilisés dans le même but (régénération de l'ensemble de données), mais le coût de calcul est différent (les machines Deep Boltzmann sont beaucoup plus coûteuses à apprendre en raison de leur nature récurrente: il est plus difficile de "stabiliser" les poids).

Bonus: sur les réseaux de neurones convolutifs (CNN), vous trouverez de nombreuses affirmations contradictoires et déroutantes, et vous constaterez généralement qu'il ne s'agit que de réseaux de neurones profonds. Cependant, il semble que le consensus soit d'utiliser la définition originale du néocognitron de Fukushima: un CNN est un DNN qui est forcé d'extraire différentes caractéristiques à différents niveaux hiérarchiques en imposant une convolution avant l'activation (ce qu'un DNN peut naturellement faire, mais en le forçant à le faire). en définissant une fonction de convolution / activation différente sur différentes couches du réseau peut donner de meilleurs résultats, du moins c'est le pari de CNN):

Caractéristiques du réseau de neurones profonds Caractéristiques du réseau neuronal convolutif

Et enfin, pour une chronologie plus rigoureuse de l'intelligence artificielle, voir ici .


1
Très bonne réponse! Un aspect clé (peut-être l'aspect déterminant) des réseaux profonds convolutionnels est que chaque couche correspond à l'application d'une convolution puis à l'application d'une fonction d'activation: il y a un noyau, et tous les nœuds d'une couche appliquent le même noyau. Imaginez que l'entrée est une image. En règle générale, vous avez un nœud pour chaque pixel et il a des connexions provenant de pixels voisins. Un réseau ordinaire permettrait à chaque pixel d'avoir son propre modèle de poids sur les bords entrants. Un réseau convolutionnel impose l'exigence supplémentaire qu'il s'agit de la même séquence de poids à chaque pixel de l'image.
DW

Oui, en effet, vous avez raison, et c'est de là que vient le nom. Mais personnellement, je pense que cela est souvent utilisé comme un hack pour spécialiser un réseau de neurones profond que toute autre chose (lorsque la caractéristique déterminante d'un réseau de neurones profond doit être à usage général et agnostique pour l'ensemble de données). Par exemple, HMAX, une sorte de CNN, utilise la convolution pour calculer les cartes de saillance, ce qui est clairement un hack lorsque la carte de saillance dans un réseau de neurones biologiques n'est bien sûr pas calculée à l'aide de la programmation dynamique ...
gaborous

3

Les réseaux de neurones profonds sont des réseaux de neurones qui ont une profondeur relativement élevée. Ils sont une sous-classe des réseaux de neurones. L'idée remonte à des décennies et n'est pas nouvelle. Ce qui est nouveau, c'est que nous avons compris comment les former dans la pratique. La raison pour laquelle il est devenu très populaire récemment est que leur formation est devenue possible et que les gens les ont utilisés pour battre des algorithmes de pointe. DNN a besoin de beaucoup de données et de beaucoup de puissance de calcul qui n'étaient pas disponibles il y a des décennies. Geoff Hinton et ses étudiants et collègues ont découvert comment les former à la pratique au cours de la dernière décennie et les ont utilisés pour battre les algorithmes d'apprentissage automatique de pointe dans plusieurs domaines où la plupart des chercheurs rejetaient l'idée de les utiliser complètement à l'époque.

Les réseaux de croyances sont une classe de modèles graphiques probabilistes, ils modélisent un tas de variables aléatoires et leurs dépendances à l'aide d'un graphique (il existe différentes façons de le faire). Ces variables elles-mêmes peuvent provenir de distributions paramétrées et peuvent être modélisées par des réseaux de neurones (ou un autre modèle pour représenter des distributions paramétrées). Les réseaux de croyances profondes sont des réseaux de croyances qui ont une profondeur relativement élevée.

Les réseaux de croyances ont tendance à être génératifs, c'est-à-dire que nous pouvons utiliser un modèle entraîné pour générer des échantillons à partir de la distribution qu'il représente.

Les réseaux de neurones ont tendance à être discriminants, nous pouvons les utiliser pour calculer la probabilité d'une entrée donnée (est-ce une image d'un chat? Quelle est la probabilité qu'il s'agisse d'une image d'un chat?) Mais généralement pas pour l'échantillonnage (générer un photo d'un chat).


Je ne suis pas un expert en ML alors prenez ce que j'ai écrit avec un grain de sel.
Kaveh

-1

Les réseaux de neurones sont normalement mis en œuvre là où des couches cachées et des équations quadratiques sont nécessaires, tandis que des réseaux d'apprentissage profond et de croyance profonde sont utilisés lorsque plusieurs couches cachées sont nécessaires pour la manipulation de données, tout comme les réseaux Boltzmann profonds.


Donc, les deux nécessitent des couches cachées? Pourriez-vous faire plusieurs couches cachées dans NN normal? Ces réseaux Boltzmann, vouliez-vous dire les machines Boltzmann? Alors, quelle est la difference? Cela ne répond pas à la question (ou peut-être que oui, mais ce n'est pas trop clair).
Evil
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.