Bonne question: notez que dans le domaine de l'apprentissage profond, les choses ne sont pas toujours aussi bien coupées et clairement définies que dans l'apprentissage statistique (également parce qu'il y a beaucoup de battage médiatique), alors ne vous attendez pas à trouver des définitions aussi rigoureuses qu'en mathématiques. Quoi qu'il en soit, le perceptron multicouche est une architecture de réseau neuronal à action directe spécifique, où vous empilez plusieurs couches entièrement connectées (donc pas de couches de convolution du tout), où les fonctions d'activation des unités cachées sont souvent un sigmoïde ou un tanh. Les nœuds de la couche de sortie ont généralement des fonctions d'activation softmax (pour la classification) ou des fonctions d'activation linéaires (pour la régression). Les architectures MLP typiques ne sont pas "profondes", c'est-à-dire que nous n'avons pas beaucoup de couches cachées. Vous avez généralement, disons, 1 à 5 couches cachées. Ces réseaux de neurones étaient courants dans les années 80,
Maintenant, avec Deep Neural Network, nous entendons un réseau qui a de nombreuses couches (19, 22, 152, ... même > 1200 , bien que cela soit certes très extrême). Notez que
- nous n'avons pas spécifié l'architecture du réseau, cela peut donc être rétroactif, récurrent, etc.
- nous n'avons pas spécifié la nature des connexions, nous pourrions donc avoir des couches entièrement connectées, des couches convolutives, des récurrences, etc.
- "plusieurs" couches n'est certes pas une définition rigoureuse.
⇒ 32 × 32 + 32 × 10 = 1344⇒ 11584poids. Il s'agit d'un minuscule NN selon les normes d'aujourd'hui. Cependant, lorsque vous continuez à le former sur un ensemble de données suffisamment volumineux, vous constatez que le taux de convergence a considérablement ralenti. Cela n'est pas seulement dû au plus grand nombre de poids, mais au problème de gradient qui disparaît - la rétropropagation calcule le gradient de la fonction de perte en multipliant les erreurs sur chaque couche, et ces petits nombres deviennent exponentiellement plus petits à mesure que vous ajoutez de couches. Ainsi, les erreurs ne se propagent pas (ou se propagent très lentement) sur votre réseau, et il semble que l'erreur sur l'ensemble d'apprentissage cesse de diminuer avec les époques d'apprentissage.
Et c'était un petit réseau - les réseaux neuronaux convolutionnels profonds appelés AlexNet avaient 5 couches mais 60 millions de poids, et il est considéré comme petit par rapport aux normes d'aujourd'hui! Lorsque vous avez autant de poids, alors tout ensemble de données est "petit" - même ImageNet, un ensemble d'images utilisé pour la classification, n'a "que" environ 1 million d'images, donc le risque de sur-ajustement est beaucoup plus grand que pour un réseau peu profond.
Le Deep Learning peut ainsi être compris comme l'ensemble d'outils qui sont utilisés dans la pratique pour former des réseaux de neurones avec un grand nombre de couches et de poids, réalisant ainsi une faible erreur de généralisation. Cette tâche pose plus de défis que pour les petits réseaux. Vous pouvez certainement construire un Perceptron multicouche profond et le former - mais (à part le fait que ce n'est pas l'architecture optimale pour de nombreuses tâches où le Deep Learning est utilisé aujourd'hui), vous utiliserez probablement des outils différents de ceux utilisés lorsque les réseaux étaient autrefois "peu profond". Par exemple, vous pouvez préférer les unités d'activation ReLU à sigmoïde ou tanh, car elles adoucissent le problème de gradient de fuite.