Le réseau de neurones profond peut-il se rapprocher de la fonction de multiplication sans normalisation?

27

Disons que nous voulons faire une régression pour simple en f = x * yutilisant un réseau de neurones profond standard.

Je me souviens qu'il y a des reseraches qui disent que NN avec une couche cachée peut apoximer n'importe quelle fonction, mais j'ai essayé et sans normalisation NN n'a pas pu approximer même cette simple multiplication. Seule la normalisation du journal des données a aidé m = x*y => ln(m) = ln(x) + ln(y). Mais cela ressemble à une triche. NN peut-il le faire sans normalisation des journaux? La réponse est évidemment (comme pour moi) - oui, donc la question est plutôt de savoir quel devrait être le type / la configuration / la disposition d'un tel NN?

Brans Ds
la source

Réponses:

13

Un grand gradient de fonction de multiplication force le réseau probablement presque immédiatement dans un état horrible où tous ses nœuds cachés ont un gradient nul (en raison des détails et des limites de la mise en œuvre du réseau neuronal). Nous pouvons utiliser deux approches:

  1. Divisez par une constante. Nous divisons simplement tout avant l'apprentissage et nous multiplions après.
  2. Utilisez la normalisation des journaux. Il rend la multiplication en plus:

    m=Xyln(m)=ln(X)+ln(y)

Brans Ds
la source
5

Une question similaire m'a frappé plus tôt dans la journée et j'ai été surpris de ne pas trouver de réponse rapide. Ma question était que, étant donné que les NN n'ont que des fonctions de sommation, comment pourraient-ils modéliser les fonctions multiplicatives.

Ce genre de réponse, même si c'était une longue explication. Mon résumé serait que NN modélise la surface de la fonction plutôt que la fonction elle-même. Ce qui est évident, rétrospectivement…

Miss Palmer
la source
5

NN avec fonction d'activation de relu peut approximer la multiplication lorsque la plage des entrées est limitée. Rappelez-vous cela relu(x) = max(x, 0).

Il suffit que NN se rapproche d'une fonction carrée g(z) = z^2, car x*y = ((x-y)^2 - x^2 - y^2)/(-2). Le côté droit n'a que des combinaisons et des carrés linéaires.

NN peut approximer z^2avec une fonction linéaire par morceaux. Par exemple, à portée [0, 2]une combinaison de xet relu(2(x-1))n'est pas si mal. La figure ci-dessous illustre cela. Aucune idée si cela est utile au-delà de la théorie :-) entrez la description de l'image ici

Jussi Kujala
la source
0

"une couche cachée" ne limite pas le nombre de neurones et les types de fonctions d'activation utilisées, elle a toujours un grand espace de représentation. Une méthode simple pour valider l'existence de ce problème: Entraînez ce problème de régression avec un véritable réseau de neurones, enregistrez chaque poids et biais, utilisez ces paramètres pour tracer la courbe de prédiction, contrastez-la avec la courbe de fonction cible. Cet essai peut aider.

chongkai Lu
la source
0

Je ne parviens pas à commenter car je suis un nouvel utilisateur actif sur StackExchange. Mais je pense que c'est une question importante car elle est tellement simple à comprendre mais difficile à expliquer. Avec égards, je ne pense pas que la réponse acceptée soit suffisante. Si vous pensez aux opérations de base d'un NN à action directe standard, avec des activations du formulaire s(W*x+b)pour une fonction d'activation non linéaire s, il n'est en fait pas évident de savoir comment "obtenir" une multiplication à partir de cela même dans un réseau composé (multi-couches). La mise à l'échelle (la première puce de la réponse acceptée) ne semble pas du tout répondre à la question ... l'échelle par quoi? Les entrées xet ysont probablement différentes pour chaque échantillon. Et prendre le journal est bien aussi longtemps que vous le savezc'est ce que vous devez faire, et prenez soin du problème de signe dans le prétraitement (car évidemment le journal n'est pas défini pour les entrées négatives). Mais cela ne correspond pas fondamentalement à la notion que les réseaux de neurones peuvent simplement "apprendre" (cela ressemble à une triche comme l'OP l'a dit). Je ne pense pas que la question devrait être considérée comme résolue tant qu'elle ne l'est pas vraiment, par quelqu'un de plus intelligent que moi!

Dave B.
la source