Apprentissage automatique vs apprentissage profond

11

Je suis un peu confus par la différence entre les termes "Machine Learning" et "Deep Learning". Je l'ai googlé et lu de nombreux articles, mais ce n'est toujours pas très clair pour moi.

Une définition connue du Machine Learning par Tom Mitchell est:

Un programme informatique est dit apprendre de l' expérience E par rapport à une catégorie de tâches T et mesure de la performance P , si ses performances à des tâches en T , telle que mesurée par P , améliore avec l' expérience E .

Si je prends un problème de classification d'image de classer les chiens et les chats comme mes taks T , à partir de cette définition, je comprends que si je donnais à un algorithme ML un tas d'images de chiens et de chats (expérience E ), l'algorithme ML pourrait apprendre à distinguer une nouvelle image comme étant soit un chien soit un chat (à condition que la mesure de performance P soit bien définie).

Vient ensuite le Deep Learning. Je comprends que le Deep Learning fait partie du Machine Learning et que la définition ci-dessus est valable. La performance à la tâche T améliore avec l' expérience E . Tout va bien jusqu'à maintenant.

Ce blog indique qu'il existe une différence entre le Machine Learning et le Deep Learning. La différence selon Adil est que dans le Machine Learning (traditionnel), les fonctionnalités doivent être conçues à la main, tandis que dans le Deep Learning, les fonctionnalités sont apprises. Les chiffres suivants clarifient sa déclaration.

entrez la description de l'image ici

Je suis troublé par le fait que dans le Machine Learning (traditionnel), les fonctionnalités doivent être conçues à la main. De la définition ci - dessus par Tom Mitchell, je pense que ces caractéristiques seraient tirées de l' expérience E et de la performance P . Que pourrait-on apprendre autrement dans le Machine Learning?

Dans le Deep Learning, je comprends que par expérience, vous apprenez les fonctionnalités et comment elles sont liées les unes aux autres pour améliorer les performances. Puis-je conclure que dans le Machine Learning, les fonctionnalités doivent être fabriquées à la main et ce qui est appris est la combinaison de fonctionnalités? Ou est-ce que je manque autre chose?

user2835098
la source
2
Ceci est très bien couvert dans le livre Deep Learning de Goodfellow et al. dans le premier chapitre (Introduction).
hbaderts

Réponses:

4

En plus de ce que Himanshu Rai a dit, l'apprentissage profond est un sous-domaine qui implique l'utilisation de réseaux de neurones. Ces réseaux de neurones essaient d'apprendre la distribution sous-jacente en modifiant les poids entre les couches. Maintenant, considérons le cas de la reconnaissance d'image à l'aide de l'apprentissage en profondeur: un modèle de réseau neuronal est divisé entre les couches, ces couches sont connectées par des liens appelés poids, au début du processus de formation, ces couches ajustent les poids de sorte que chaque couche essaie de détecter une caractéristique et aider le calque suivant pour son traitement.Le point clé à noter est que nous ne disons pas explicitement au calque d'apprendre à détecter les bords, ou les yeux, le nez ou les visages.Le modèle apprend à le faire lui-même.Contrairement aux modèles classiques d'apprentissage automatique.

Avhirup
la source
8

En tant que domaine de recherche, le Deep Learning n'est vraiment qu'un sous-domaine du Machine Learning, car le Machine Learning est un sous-domaine de l'intelligence artificielle.

1) Apprentissage des fonctionnalités non supervisé

Sur le plan conceptuel, la première différence principale entre l' apprentissage automatique « traditionnel » (ou « superficiel ») et l'apprentissage profond est l'apprentissage des fonctionnalités non supervisé.

Comme vous le savez déjà, la formation réussie d'un modèle d'apprentissage machine " traditionnel " (ex: SVM, XGBoost ...) n'est possible qu'après un prétraitement approprié et une extraction judicieuse des fonctionnalités pour sélectionner des informations significatives à partir des données. C'est-à-dire que les bons vecteurs d'entités contiennent des entités distinctes entre les points de données avec des étiquettes différentes et cohérentes entre les points de données avec la même étiquette. L'ingénierie des fonctionnalités est donc le processus de sélection manuelle des fonctionnalités par des experts. C'est une tâche très importante mais fastidieuse à réaliser!

L'apprentissage des fonctionnalités non supervisé est un processus dans lequel le modèle lui-même sélectionne automatiquement les fonctionnalités par le biais de la formation. La topologie d'un réseau neuronal organisé en couches connectées les unes aux autres a la belle propriété de mapper une représentation de bas niveau des données à une représentation de plus haut niveau. Grâce à la formation, le réseau peut ainsi « décider » quelle partie des données est importante et quelle partie des données ne l'est pas. Ceci est particulièrement intéressant en vision par ordinateur ou en traitement du langage naturel où il est assez difficile de sélectionner ou de concevoir manuellement des fonctionnalités robustes.

Apprentissage de fonctionnalités non supervisé, crédits: Tony Beltramelli (crédits photo: Tony Beltramelli)

Par exemple, supposons que nous voulons classer les photos de chats. En utilisant un Deep Neural Net, nous pouvons alimenter les valeurs de pixels brutes qui seront mappées à un ensemble de poids par la première couche, puis ces poids seront mappés à d'autres poids par la deuxième couche, jusqu'à ce que la dernière couche permette à certains poids de être mappé à des nombres représentant votre problème. (ex: dans ce cas la probabilité que l'image contienne un chat)

Même si les réseaux de neurones profonds peuvent effectuer un apprentissage des fonctionnalités non supervisé, cela ne vous empêche pas de faire vous-même l'ingénierie des fonctionnalités pour mieux représenter votre problème. L'apprentissage des fonctionnalités, l'extraction des fonctionnalités et l'ingénierie des fonctionnalités non supervisées ne s'excluent pas mutuellement!

Sources:

2) Séparabilité linéaire

Les réseaux de neurones profonds peuvent résoudre certains problèmes non séparables linéairement en pliant l'espace des caractéristiques de telle sorte que les caractéristiques deviennent séparables linéairement. Encore une fois, cela est possible grâce à la topologie du réseau organisée en couches mappant les entrées aux nouvelles représentations des données.

La couche cachée apprend une représentation afin que les données soient linéairement séparables, crédits: Christopher Olah (crédits photo: Christopher Olah)

Sources: http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/

3) Invariance statistique

Enfin, les réseaux de neurones profonds surpassent les algorithmes traditionnels d'apprentissage automatique dans certains domaines, car certaines architectures présentent une invariance statistique (ex: invariance statistique spatiale avec réseaux de neurones convolutifs et invariance statistique temporelle avec réseaux de neurones récurrents)

Consultez cette vidéo Udacity pour plus de détails: https://www.youtube.com/watch?v=5PH2Vot-tD4

Tony
la source
4

Inspiré par Einstein, "" Si vous ne pouvez pas l'expliquer à un enfant de six ans, vous ne le comprenez pas vous-même. "

Toutes les réponses ci-dessus sont très bien expliquées, mais si l'on recherche une différence abstraite facile à retenir, voici la meilleure que je connaisse:

La principale différence est que le Machine Learning ne digère que les données, tandis que le Deep Learning peut générer et améliorer les données. Elle est non seulement prédictive mais aussi générative.

La source. Bien sûr, il y a beaucoup plus, mais pour les débutants, cela peut devenir beaucoup trop déroutant.

ZenVentzi
la source
-3

D'accord, pensez-y comme ça. Dans les algirithmes d'apprentissage automatique, tels que la régression linéaire ou la forêt aléatoire, vous donnez aux algorithmes un ensemble de fonctionnalités et la cible, puis il essaie de minimiser la fonction de coût, donc non, il n'apprend aucune nouvelle fonctionnalité, il apprend simplement les poids. Maintenant, quand vous venez à l'apprentissage en profondeur, vous avez au moins une, (presque toujours plus) couche cachée avec un nombre défini d'unités, ce sont les fonctionnalités dont on parle. Ainsi, un algorithme d'apprentissage en profondeur n'apprend pas seulement les ensembles de poids, dans ce processus, il apprend également les valeurs des unités cachées qui sont des caractéristiques complexes de haut niveau des données triviales que vous avez données. Par conséquent, tout en pratiquant l'apprentissage automatique de la vanille, beaucoup d'expertise réside dans votre capacité à concevoir des fonctionnalités parce que l'algorithme n'en apprend aucun par lui-même. J'espère avoir répondu à votre question.

Himanshu Rai
la source
Juste une autre question: dans les CNN par exemple, les caractéristiques (ou filtres) ne sont-elles pas la même chose que les poids?
user2835098
Non, ce sont les poids de la couche de convolution, mais le produit obtenu à partir de la convolution, c'est-à-dire les cartes d'entités, sont les entités.
Himanshu Rai
Je ne suis pas d'accord. Des variables cachées sont également présentes dans la forêt aléatoire et les algorithmes de boosting. Et vous continuez à concevoir des fonctionnalités d'apprentissage en profondeur. Comme la zone de recadrage dans l'un des meilleurs algorithmes de reconnaissance d'image en 2017
keiv.fly