52 votos

¿Puede una red neuronal profunda aproximar la función de multiplicación sin normalización?

Digamos que queremos hacer una regresión para un simple f = x * y utilizando una red neuronal profunda estándar.

Recuerdo que hay estudios que dicen que la NN con una capa oculta puede aproximar cualquier función, pero lo he intentado y sin normalización la NN fue incapaz de aproximar incluso esta simple multiplicación. Sólo la normalización logarítmica de los datos ayudó m = x*y => ln(m) = ln(x) + ln(y). Pero eso parece una trampa. ¿Puede NN hacer esto sin la normalización logarítmica? La respuesta es obviamente (como para mí) - sí, así que la pregunta es más lo que debería ser el tipo / configuración / diseño de tales NN?

22voto

Mark Raymond Puntos 172

La NN con función de activación relu puede aproximar la multiplicación cuando el rango de entradas es limitado. Recordemos que relu(x) = max(x, 0) .

Basta con que NN se aproxime a una función cuadrada g(z) = z^2 porque x*y = ((x-y)^2 - x^2 - y^2)/(-2) . El lado derecho sólo tiene combinaciones lineales y cuadrados.

NN puede aproximar z^2 con una función lineal a trozos. Por ejemplo, en el rango [0, 2] una combinación de x y relu(2(x-1)) no es tan malo. La siguiente figura lo visualiza. Ni idea de si esto es útil más allá de la teoría :-) enter image description here

20voto

Fred Puntos 21

Un gradiente grande de la función de multiplicación obliga a la red probablemente casi inmediatamente a un estado horrible en el que todos sus nodos ocultos tienen un gradiente cero (debido a los detalles y limitaciones de la implementación de la red neuronal). Podemos utilizar dos enfoques:

  1. Dividir por una constante. Solo estamos dividiendo todo antes del aprendizaje y multiplicando después.

  2. Utiliza la normalización logarítmica. Convierte la multiplicación en suma:

    \begin{align} m &= x \cdot y\\ &\Rightarrow \\ \ln(m) &= \ln(x) + \ln(y) \end{align}

18voto

Dave B. Puntos 61

No puedo comentar debido a que soy un nuevo usuario activo en StackExchange. Pero creo que es una pregunta importante porque es muy simple de entender y a la vez difícil de explicar. Con todo respeto, no creo que la respuesta aceptada sea suficiente. Si se piensa en las operaciones básicas de una NN feed-forward estándar, con activaciones de la forma s(W*x+b) para alguna función de activación no lineal s En realidad, no es obvio cómo "obtener" la multiplicación a partir de esto, incluso en una red compuesta (de varias capas). El escalado (el primer punto de la respuesta aceptada) no parece abordar la cuestión en absoluto... ¿escalar por qué? Las entradas x y y son presumiblemente diferentes para cada muestra. Y tomar el registro está bien siempre y cuando conozca eso es lo que tienes que hacer, y ocuparte del tema del signo en el preprocesamiento (ya que obviamente log no está definido para entradas negativas). Pero esto fundamentalmente no encaja con la noción de que las redes neuronales pueden simplemente "aprender" (se siente como una trampa como dijo el OP). No creo que la pregunta deba considerarse respondida hasta que realmente lo sea, por alguien más inteligente que yo.

14voto

SteveD Puntos 3805

Hoy me ha surgido una pregunta similar y me ha sorprendido no encontrar una respuesta rápida. Mi pregunta era que, dado que las NN sólo tienen funciones de suma, cómo podrían modelar funciones multiplicativas.

Este la contestó, aunque fue una larga explicación. Mi resumen sería que las NN modelan la superficie de la función más que la función en sí. Lo cual es obvio, en retrospectiva

7voto

Iacks Puntos 1220

La red neuronal tradicional consta de mapas lineales y función de activación de Lipschitiz. Como composición de funciones continuas de Lischitz, la red neuronal también es continua de Lipschitz, pero la multiplicación no es continua de Lipschitz. Esto significa que la red neuronal no puede aproximar la multiplicación cuando una de las x o y es demasiado grande.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X