¿Cómo podemos enseñar a una red neuronal a realizar asociaciones de datos arbitrarias?

Aug 20 2020

Digamos que tengo pares de claves y valores de la forma $(x_1, y_1), \dots, (x_N, y_N)$. Luego le doy a una red neuronal una clave y un valor,$(x_i, y_i)$. Por ejemplo,$x_i$ podría ser $4$ y $y_i$ podría ser $3$, pero no tiene por qué ser así.

¿Hay alguna manera de enseñar a la red neuronal a generar $y_i$ variable cada vez que recibe el correspondiente $x_i$?

Por cierto, ¿cómo realiza nuestro cerebro esta función?

Respuestas

3 16Aghnar Aug 20 2020 at 15:11

En pocas palabras: Memorizar no es aprender

Entonces, primero recordemos el uso clásico de una red neuronal, en Aprendizaje supervisado :

  • Tienes un conjunto de $(x_{train}, y_{train}) \in X \times Y$ pares, y desea extraer una ley de mapeo general de $X$ a $Y$
  • Usas una función de red neuronal $f_{\theta} : x \rightarrow f_{\theta}(x)$, con $\theta$ los pesos (parámetros) de su red.
  • Tu optimizas $f_{\theta}$ minimizando el error de predicción, representado por la función de pérdida.

¿Puede esto resolver tu pregunta? Bueno, no lo creo. Con este esquema, su red neuronal aprenderá un mapeo apropiado del conjunto$X$ al set $Y$, pero este mapeo es apropiado de acuerdo a su función de pérdida, no a su $(x_{train}, y_{train})$ pares.

Imagine que una pequeña parte de los datos está mal etiquetada. Una red debidamente capacitada aprende a extraer características relevantes y, por lo tanto, predecirá correctamente la etiqueta, no como lo hizo usted. Entonces, la red no memoriza sus pares, infiere una ley general a partir de los datos, y esta ley puede no respetar a cada uno$(x_{train}, y_{train})$. Así que el aprendizaje profundo supervisado clásico no debería memorizar$(x_{train}, y_{train})$ pares.

Sin embargo, podría memorizar usando una red con demasiados parámetros: ¡es sobreajuste !

  • En este caso, configura la red con demasiados parámetros. Eso le da demasiados grados de libertad a su red, y la red utilizará estos DoF para adaptarse exactamente a cada uno$(x_{train}, y_{train})$ pareja que alimenta durante el entrenamiento.
  • Sin embargo, para una entrada $x$ que nunca vio durante el entrenamiento, $f_{\theta}(x)$no tendría sentido. Es por eso que decimos que una red con sobreajuste no aprendió, y muchos practicantes de DL temen el sobreajuste.

Pero siempre que solo desee memorizar, y no aprender, una red sobreajustada puede ser la solución. Otra solución para la memorización pueden ser los Sistemas Expertos , no los conozco lo suficiente como para explicarlos, pero puedes comprobarlo si quieres.

¿Y el cerebro?

El problema al responder a esta pregunta es que realmente no sabemos cómo funciona el cerebro. Recomiendo encarecidamente este artículo sobre las redes neuronales y el cerebro.

Algunos pensamientos para empezar:

  1. El cerebro tiene una cantidad increíble de parámetros y una gran plasticidad. En ese sentido, podríamos establecer un paralelo con las redes neuronales sobreajustadas: por lo que el cerebro también podría ser capaz de sobreajustarse y, por tanto, de memorizar por este medio.
  2. Nuestro cerebro no es una red de retroalimentación en absoluto, no podemos delimitar ninguna capa , solo algunas zonas aproximadas donde sabemos que se procesa alguna información específica. Esto dificulta cualquier paralelismo entre las redes neuronales y el cerebro.
  3. Todavía no está claro cómo se actualiza nuestro cerebro. No hay propagación hacia atrás, por ejemplo. Nuestras redes sobreajustadas también se derivan de los procesos de actualización (por ejemplo, agregar regularización a la pérdida ayuda a evitar el desajuste), pero no tenemos idea de cómo funciona esto en el cerebro, ¡así que ese es otro obstáculo para establecer paralelos!
  4. Un pensamiento más personal: el cerebro es capaz de aprender y memorizar ( el lema "La excepción que confirma la regla" demuestra que yo pienso), mientras que aprender y memorizar son antónimos de redes neuronales ...