Si chaque neurone d'un réseau de neurones est fondamentalement une fonction de régression logistique, pourquoi le multicouche est-il préférable?

13

Je passe par le cours DeepAI de Cousera (semaine 1 vidéo 1 "Présentation des réseaux de neurones") et Andrew Ng explique comment chaque couche d'un réseau de neurones n'est qu'une autre régression logistique, mais il n'explique pas comment cela rend les choses plus précises.

Ainsi, dans un réseau à 2 couches, comment le calcul de plusieurs temps logistiques le rend-il plus précis?

mskw
la source
7
Souvent, pour s'adapter à un bon modèle de régression logistique unique, vous devez effectuer une importante génération de fonctionnalités. Les deux couches nn tentent de faire une partie de ce travail pour vous.
Matthew Drury
@msk, avez-vous déjà créé de nouvelles fonctionnalités basées sur vos fonctionnalités d'origine pour améliorer votre régression logistique? C'est ce que font les couches cachées.
Ricardo Cruz

Réponses:

10

Lors de l'utilisation des fonctions d'activation logistique, il est vrai que la fonction reliant les entrées de chaque unité à sa sortie est la même que pour la régression logistique. Mais ce n'est pas vraiment la même chose que chaque unité effectuant une régression logistique. La différence est que, dans la régression logistique, les poids et les biais sont choisis de telle sorte que la sortie correspond le mieux aux valeurs cibles données (en utilisant la perte log / entropie croisée). En revanche, les unités cachées d'un réseau neuronal envoient leurs sorties aux unités en aval. Il n'y a pas de sortie cible à faire correspondre pour les unités cachées individuelles. Les poids et les biais sont plutôt choisis pour minimiser une fonction objective qui dépend de la sortie finale du réseau.

Plutôt que d'effectuer une régression logistique, il pourrait être plus logique de penser à chaque unité cachée comme calculant une coordonnée dans un espace caractéristique. Dans cette perspective, le but d'un calque caché est de transformer son entrée - le vecteur d'entrée est mappé sur un vecteur d'activation de calque caché. Vous pouvez penser à cela comme mapper l'entrée dans un espace d'entité avec une dimension correspondant à chaque unité cachée.

La couche de sortie peut souvent être considérée comme un algorithme d'apprentissage standard qui fonctionne dans cet espace d'entités. Par exemple, dans une tâche de classification, l'utilisation d'une unité de sortie logistique avec perte d'entropie croisée équivaut à effectuer une régression logistique dans l'espace des caractéristiques (ou une régression logistique multinomiale si vous utilisez des sorties softmax). Dans une tâche de régression, l'utilisation d'une sortie linéaire avec une erreur quadratique équivaut à effectuer une régression linéaire des moindres carrés dans l'espace d'objet.

Former le réseau revient à apprendre la fonction de mappage et de classification / régression de l'espace des fonctionnalités (dans l'espace des fonctionnalités) qui, ensemble, donnent les meilleures performances. En supposant des unités cachées non linéaires, l'augmentation de la largeur de la couche cachée ou l'empilement de plusieurs couches cachées permet des mappages d'espace d'entités plus complexes, permettant ainsi l'ajustement de fonctions plus complexes.

user20160
la source
7

Une façon de voir la puissance de la non-linéarité est de noter le théorème d'approximation universel .

Bien qu'il ne soit pas très important dans la pratique (il s'agit des capacités des réseaux à couche unique), il vous indique que si vous utilisez des sommes de sigmoides (longues arbitraires), vous pouvez en principe approximer n'importe quelle fonction continue à n'importe quel niveau souhaité. Si vous connaissez la théorie de Fourier ou si vous vous souvenez du théorème d'approximation de Weierstrass, cela ne devrait pas être surprenant.

Jakub Bartczuk
la source
3
C'était la seule personne à avoir répondu correctement à la question, quoique un peu trop succinctement. Une couche cachée suffit pour créer de nouvelles fonctionnalités puissantes qui combinent les fonctionnalités originales. Le problème est que vous pourriez avoir besoin d'une couche cachée avec trop de nœuds, et le processus de convergence fonctionne mieux avec un réseau plus profond avec des couches cachées> 1.
Ricardo Cruz
5

Lorsqu'il existe des couches cachées dans le réseau neuronal, nous ajoutons des caractéristiques non linéaires. Veuillez vérifier ma réponse ici pour avoir un peu de sens.

Qu'est-ce qui fait des réseaux de neurones un modèle de classification non linéaire?

Plus précisément, une fonction sigmoïde imbriquée sera plus "puissante" qu'une transformation linéaire des caractéristiques originales et une fonction sigmoïde (régression logistique).


Voici un exemple numérique pour répondre aux commentaires d'OP.

X10×37W3×7X×W10×77

Haitao Du
la source
Je me demande simplement, alors comment l'un des nœuds de la première couche diffère-t-il en sortie, c'est-à-dire que le nœud 1 obtient X1, X2, X3, le nœud 2 obtient également X1, X2, X3, s'ils sont tous des régressions logistiques, comment leur sortie va être différente?
mskw
supposons que vous ayez 3 entités, et 10 unités cachées, alors la sortie de la couche cachée a 10 "entités machinées".
Haitao Du
Pourquoi appelez-vous cela des "fonctionnalités techniques", les fonctionnalités que vous mentionnez sont-elles également les X1, X2, X3?
mskw
Je vais modifier ma réponse pour répondre à vos commentaires.
Haitao Du
Merci d'avoir révisé, d'après votre explication, je ne sais pas si vous ne répondez pas à ma question, ou j'ai un manque de connaissances où je dois d'abord combler. Plus précisément, d'après votre réponse, Weight fait-il référence à chacune des fonctions de sortie du nœud? Si oui, en quoi sont-ils différents de chacun des autres nœuds de la même couche?
mskw
3

Dans la régression logistique standard, nous avons 1 sortie dans la couche finale. Cependant, avec un réseau neuronal à couche cachée unique, nous pouvons avoir plusieurs valeurs intermédiaires, chacune pouvant être considérée comme la sortie d'un modèle de régression logistique différent, c'est-à-dire que nous n'effectuons pas la même régression logistique encore et encore. Ce n'est donc pas un grand saut de penser qu'il est possible que la combinaison de ceux-ci ait de plus grandes capacités expressives que le modèle de régression logistique standard (et cela a également été démontré en pratique et en théorie ).

Nyj=f(i=1Nwjixi+bj)fwjixibjest un parti pris. Les poids sont choisis par un algorithme d'optimisation pour optimiser notre objectif, par exemple minimiser l'erreur de classification. L'initialisation est très importante pour les algorithmes de descente de gradient qui sont généralement utilisés pour optimiser les poids. Voir https://intoli.com/blog/neural-network-initialization/ où si tous les poids commencent à 0, le réseau ne peut pas apprendre.

Srijan Parmeshwar
la source