Réseaux de neurones vs tout le reste

15

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.

MiloMinderbinder
la source
14
Les réseaux de neurones SONT un algorithme d'apprentissage automatique ...
Matthew Drury
6
Il y a certainement certains domaines où l'apprentissage profond est roi, tels que la reconnaissance d'image, mais dans la plupart des autres domaines, ils ont tendance à être dominés par le renforcement du gradient, comme le montre clairement les résultats des compétitions Kaggle.
Jake Westfall
1
@MatthewDrury - Effectivement! des excuses pour être moche dans les terminologies. J'espère cependant que le message a été transmis. changer la question néanmoins, pour être plus robuste. Merci d'avoir signalé
MiloMinderbinder
1
En ce qui concerne la profondeur du réseau, certainement vérifier ceci: stats.stackexchange.com/questions/182734
jld

Réponses:

31

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.

appliquez la régularisation jusqu'à ce que vous ne voyiez pas de sur-ajustement, puis entraînez-les jusqu'à la fin

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.

ce sont des estimateurs universels

Cela n'est vrai que dans la limite d'un nombre illimité d'unités, ce qui n'est pas réaliste.

vous pouvez me donner le lien vers le problème et je formerais le meilleur réseau neuronal que je peux et nous pouvons voir si 2 réseaux neuronaux en couches ou 3 couches ne répondent à aucun autre algorithme d'apprentissage automatique de référence

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.


La régularisation peut-elle prendre un modèle de celui qui est trop adapté à celui qui a son pouvoir de représentation gravement entravé par la régularisation? N'y aura-t-il pas toujours cet endroit idéal entre les deux?

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:

http://gluon.mxnet.io/_images/regularization-overfitting.png

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.

Comment est un «algorithme simple qui parcourt tous les programmes valides en longueur croissante et trouve le programme le plus court qui identifie correctement les nombres premiers». un algorithme qui apprend?

θH(θ)θ


donc si je vous comprends bien, vous faites valoir que si les données ne sont pas substantielles, le réseau profond n'atteindra jamais la précision de validation du meilleur réseau peu profond étant donné les meilleurs hyperparamètres pour les deux?

Oui. Voici un chiffre laid mais, espérons-le, efficace pour illustrer mon propos. https://i.imgur.com/nM3aI2l.png

mais cela n'a pas de sens. un réseau profond peut simplement apprendre une cartographie 1-1 au-dessus de la faible profondeur

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.

Nous avons discuté du fait que les grands réseaux fonctionneront toujours mieux que les petits réseaux

Sans autre qualification, cette affirmation est tout simplement fausse.

shimao
la source
Merci pour la réponse! La régularisation peut-elle prendre un modèle de celui qui est trop adapté à celui qui a son pouvoir de représentation gravement entravé par la régularisation? N'y aura-t-il pas toujours cet endroit idéal entre les deux?
MiloMinderbinder
Concernant votre problème de jouet. Comment est un «algorithme simple qui parcourt tous les programmes valides en ordre croissant et trouve le programme le plus court qui identifie correctement les nombres premiers». un algorithme qui apprend?
MiloMinderbinder
Veuillez noter les notes de cours cs231n - `` Nous avons discuté du fait que les réseaux plus grands fonctionneront toujours mieux que les réseaux plus petits, mais leur capacité de modèle plus élevée doit être traitée de manière appropriée avec une régularisation plus forte (comme une décroissance de poids plus élevée), ou ils pourraient sur-équiper. Nous verrons plus de formes de régularisation (en particulier l'abandon) dans les sections ultérieures. cs231n.github.io/neural-networks-1
MiloMinderbinder
@ user46478 j'ai répondu aux questions ci-dessus en modifiant la réponse
shimao
"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." - Je suis désolé mais je ne comprends toujours pas cette déclaration. Je prends les données de formation, divise {train, val}, crée le plus grand réseau autorisé par ma machine, augmente la probabilité d'abandon jusqu'à ce que je vois l'erreur de validation minimisée parmi les erreurs de validation que j'obtiens à diverses probabilités d'abandon. Ce processus peut-il conduire à un modèle inutile sur-équipé sans passer par un bon modèle?
MiloMinderbinder
11

J'ajouterais qu'il n'y a pas de panacée d'apprentissage automatique:

Par le théorème du déjeuner gratuit :

Si un algorithme fonctionne bien sur une certaine classe de problèmes, il paie nécessairement pour cela avec des performances dégradées sur l'ensemble de tous les problèmes restants

user3684792
la source
C'est très déprimant (mais ne vous inquiétez pas, je ne discuterai pas des conséquences). Les réseaux de neurones ne peuvent donc être mis en balance qu'avec des estimateurs universels. 2. Cela ne parle pas de la vitesse de recherche dans l'espace de fonction. Peut-on dire qu'un réseau neuronal avec 2 couches cachées est nécessairement équivalent ou supérieur à un réseau neuronal avec une couche cachée sur chaque problème? je pense que l'hypothèse de continuité doit faire beaucoup ici
MiloMinderbinder
avec un hyperparamètre approprié, un réseau de neurones en couches caché passe à travers des fonctions qui ont des co-domaines similaires plus rapidement qu'un réseau de neurones en couches caché unique. vos entrées?
MiloMinderbinder
1
«Peut-on dire qu'un réseau neuronal avec 2 couches cachées est nécessairement équivalent ou supérieur à un réseau neuronal avec une couche cachée sur chaque problème». Non, malheureusement non. À titre de contre-exemple, imaginez une régression logistique (un nn avec zéro couche cachée) vs un réseau neuronal à 1 couche avec le nombre d'unités cachées égal au nombre de points de données pour un ensemble de données entièrement séparable. Il n'y a aucune information sur la limite de décision que le lr ne peut pas capturer, et la haute complexité nn est susceptible de sur-s'adapter
user3684792
3
Je suis d'accord avec la déclaration ici, mais je voulais ajouter la mise en garde standard à la NFL, également tirée de la page wikipedia: "notez que la NFL ne s'applique que si la fonction cible est choisie parmi une distribution uniforme de toutes les fonctions possibles".
mkt
1
@ user46478 Je suis d'accord avec la pertinence du théorème de la NFL en réponse à votre question "pourquoi les réseaux de neurones avec une couche cachée ne sont-ils pas la panacée aux problèmes d'apprentissage automatique?"
mkt