Je n'ai pas trouvé de réponse satisfaisante à cela de Google .
Bien sûr, si les données dont je dispose sont de l'ordre de millions, l'apprentissage en profondeur est la solution.
Et j'ai lu que lorsque je n'ai pas de données volumineuses, il est peut-être préférable d'utiliser d'autres méthodes d'apprentissage automatique. La raison invoquée est trop appropriée. Apprentissage automatique: c'est-à-dire regarder des données, extraire des fonctionnalités, créer de nouvelles fonctionnalités à partir de ce qui est collecté, etc. des choses telles que la suppression de variables fortement corrélées, etc. tout l'apprentissage automatique à 9 mètres.
Et je me suis demandé: pourquoi les réseaux de neurones avec une couche cachée ne sont-ils pas la panacée aux problèmes d'apprentissage automatique? Ce sont des estimateurs universels, le surajustement peut être géré avec abandon, régularisation l2, régularisation l1, normalisation par lots. La vitesse d'entraînement n'est généralement pas un problème si nous n'avons que 50 000 exemples d'entraînement. Ils sont meilleurs au moment des tests que, disons, les forêts aléatoires.
Alors pourquoi ne pas - nettoyer les données, imputer les valeurs manquantes comme vous le feriez généralement, centrer les données, standardiser les données, les jeter dans un ensemble de réseaux de neurones avec une couche cachée et appliquer la régularisation jusqu'à ce que vous ne voyiez pas de sur-ajustement, puis former les à la fin. Aucun problème avec l'explosion ou la disparition du gradient car il s'agit simplement d'un réseau à 2 couches. Si des couches profondes étaient nécessaires, cela signifie que les fonctionnalités hiérarchiques doivent être apprises et que d'autres algorithmes d'apprentissage automatique ne sont pas bons non plus. Par exemple, SVM est un réseau neuronal avec perte de charnière uniquement.
Un exemple où un autre algorithme d'apprentissage automatique surperformerait un réseau neuronal soigneusement régularisé à 2 couches (peut-être 3?) Serait apprécié. Vous pouvez me donner le lien vers le problème et je formerais le meilleur réseau de neurones possible et nous pouvons voir si 2 réseaux de neurones en couches ou 3 couches ne répondent à aucun autre algorithme d'apprentissage automatique de référence.
la source
Réponses:
Chaque algorithme d'apprentissage automatique a un biais inductif différent, il n'est donc pas toujours approprié d'utiliser des réseaux de neurones. Une tendance linéaire sera toujours mieux apprise par une simple régression linéaire plutôt que par un ensemble de réseaux non linéaires.
Si vous jetez un coup d'œil aux gagnants des compétitions Kaggle passées , à l'exception des problèmes liés aux données d'image / vidéo, vous constaterez rapidement que les réseaux de neurones ne sont pas la solution à tout. Quelques solutions passées ici.
Il n'y a aucune garantie que vous pouvez appliquer une régularisation suffisante pour éviter le surapprentissage sans détruire complètement la capacité du réseau à apprendre quoi que ce soit. Dans la vraie vie, il est rarement possible d'éliminer l'écart entre les tests de train et c'est pourquoi les articles signalent toujours les performances de train et de test.
Cela n'est vrai que dans la limite d'un nombre illimité d'unités, ce qui n'est pas réaliste.
Un exemple de problème que je m'attends à ce qu'un réseau de neurones ne puisse jamais résoudre: étant donné un entier, classer comme premier ou non premier.
Je crois que cela pourrait être résolu parfaitement avec un algorithme simple qui itère sur tous les programmes valides en longueur croissante et trouve le programme le plus court qui identifie correctement les nombres premiers. En effet, cette chaîne d'expression régulière de 13 caractères peut correspondre à des nombres premiers, ce qui ne serait pas difficile à calculer pour la recherche.
Oui, il y a un point idéal, mais c'est généralement bien avant d'arrêter le sur-ajustement. Voir cette figure:
Si vous inversez l'axe horizontal et le renommez "quantité de régularisation", c'est assez précis - si vous régularisez jusqu'à ce qu'il n'y ait pas de sur-ajustement du tout, votre erreur sera énorme. Le "sweet spot" se produit lorsqu'il y a un peu de sur-ajustement, mais pas trop.
Oui. Voici un chiffre laid mais, espérons-le, efficace pour illustrer mon propos.
La question n'est pas «peut-il», mais «le fera-t-il», et si vous vous entraînez à la rétropropagation, la réponse n'est probablement pas.
Sans autre qualification, cette affirmation est tout simplement fausse.
la source
J'ajouterais qu'il n'y a pas de panacée d'apprentissage automatique:
Par le théorème du déjeuner gratuit :
la source