Red neuronal con conexiones de capa de salto

26

Estoy interesado en la regresión con redes neuronales.

Las redes neuronales con cero nodos ocultos + conexiones de capa de salto son modelos lineales.

¿Qué pasa con las mismas redes neuronales pero con nodos ocultos? Me pregunto cuál sería el papel de las conexiones de salto de capa.

Intuitivamente, diría que si incluye las conexiones de la capa de salto, el modelo final será una suma de un modelo lineal + algunas partes no lineales.

¿Hay alguna ventaja o desventaja en agregar conexiones de capa de salto a las redes neuronales?

Souhaib Ben Taieb
fuente

Respuestas:

38

Llegué muy tarde al juego, pero quería publicar para reflejar algunos desarrollos actuales en redes neuronales convolucionales con respecto a omitir conexiones .

Un equipo de investigación de Microsoft ganó recientemente el concurso ImageNet 2015 y publicó un informe técnico de aprendizaje residual profundo para el reconocimiento de imágenes que describe algunas de sus ideas principales.

Una de sus principales contribuciones es este concepto de capas residuales profundas . Estas capas residuales profundas usan conexiones de salto . Utilizando estas capas residuales profundas, pudieron entrenar una red de convulsión de 152 capas para ImageNet 2015. Incluso entrenaron una red de convulsión de más de 1000 capas para el CIFAR-10.

El problema que los motivó es el siguiente:

Cuando las redes más profundas pueden comenzar a converger, se expone un problema de degradación : con el aumento de la profundidad de la red, la precisión se satura (lo que puede no ser sorprendente) y luego se degrada rápidamente. Inesperadamente, dicha degradación no es causada por el sobreajuste , y agregar más capas a un modelo adecuadamente profundo conduce a un mayor error de entrenamiento ...

La idea es que si tomas una red "superficial" y simplemente apilas en más capas para crear una red más profunda, el rendimiento de la red más profunda debería ser al menos tan bueno como la red poco profunda ya que la red más profunda podría aprender exactamente la poca profundidad red estableciendo las nuevas capas apiladas en capas de identidad (en realidad sabemos que es muy poco probable que esto suceda sin métodos arquitectónicos anteriores o métodos de optimización actuales). Observaron que este no era el caso y que el error de entrenamiento a veces empeoraba cuando apilaban más capas sobre un modelo menos profundo.

Por lo tanto, esto los motivó a usar conexiones de omisión y usar las llamadas capas residuales profundas para permitir que su red aprenda desviaciones de la capa de identidad, de ahí el término residual , residual aquí que se refiere a la diferencia de la identidad.

Implementan conexiones de omisión de la siguiente manera: ingrese la descripción de la imagen aquí

F(X): =H(X)-XF(X)+X=H(X)F(X)H(X)

De esta manera, el uso de capas residuales profundas a través de conexiones de omisión permite que sus redes profundas aprendan capas de identidad aproximadas, si eso es lo que es óptimo, u óptimo localmente. De hecho, afirman que sus capas residuales:

Mostramos mediante experimentos (Fig. 7) que las funciones residuales aprendidas en general tienen respuestas pequeñas

En cuanto a por qué exactamente esto funciona, no tienen una respuesta exacta. Es muy poco probable que las capas de identidad sean óptimas, pero creen que el uso de estas capas residuales ayuda a precondicionar el problema y que es más fácil aprender una nueva función dada una referencia / referencia de comparación con el mapeo de identidad que aprender una "desde cero" sin usar la línea base de identidad. Quién sabe. Pero pensé que sería una buena respuesta a tu pregunta.

Por cierto, en retrospectiva: la respuesta de sashkello es aún mejor, ¿no?

AI independiente
fuente
¿Qué quieres decir con precondición? (También su respuesta es mucho mejor que la de sashkello por mucho en mi humilde opinión). Además, ¿el problema es que agregar más capas sin las conexiones de omisión dificulta que la red más profunda encuentre el mapeo de identidad? (por alguna razón?)
Charlie Parker el
20

En teoría, las conexiones de la capa de salto no deberían mejorar el rendimiento de la red. Pero, dado que las redes complejas son difíciles de entrenar y fáciles de sobreajustar, puede ser muy útil agregar esto explícitamente como un término de regresión lineal, cuando sabe que sus datos tienen un fuerte componente lineal. Esto sugiere el modelo en la dirección correcta ... Además, esto es más interpretable ya que presenta su modelo como perturbaciones lineales +, desentrañando una estructura detrás de la red, que generalmente se ve simplemente como un recuadro negro.

sashkello
fuente
@sashkello, ¿puede elaborar sobre 'las conexiones de capa de salto no deberían mejorar el rendimiento de la red', de manera teórica. Eso sería genial de entender.
corazonada
@hunch Es porque puedes modelar esto sin la necesidad de saltar la capa. Saltar capa es solo un término lineal. La función sigmoide es ~ lineal alrededor de 0. Por lo tanto, una conexión de capa de salto se comportará como un nodo oculto con pesos de entrada muy pequeños.
sashkello
5

Mi vieja caja de herramientas de red neuronal (en la mayoría de los casos uso máquinas del núcleo en estos días) usaba la regularización L1 para eliminar pesos redundantes y unidades ocultas, y también tenía conexiones de capa de salto. Esto tiene la ventaja de que si el problema es esencialmente lineal, las unidades ocultas tienden a podarse y se queda con un modelo lineal, que claramente le dice que el problema es lineal.

Como sugiere sashkello (+1), los MLP son aproximadores universales, por lo que las conexiones de capa de salto no mejorarán los resultados en el límite de datos infinitos y un número infinito de unidades ocultas (pero ¿cuándo nos acercamos a ese límite?). La ventaja real es que facilita la estimación de buenos valores para los pesos si la arquitectura de la red está bien adaptada al problema, y ​​es posible que pueda utilizar una red más pequeña y obtener un mejor rendimiento de generalización.

Sin embargo, como ocurre con la mayoría de las preguntas sobre redes neuronales, generalmente la única forma de averiguar si será útil o perjudicial para un conjunto de datos en particular es probarlo y verlo (utilizando un procedimiento confiable de evaluación del desempeño).

Dikran Marsupial
fuente
3
"pruébalo y mira" - palabras de oro :)
sashkello
0

Basado en Bishop 5.1. Funciones de red de avance: Una forma de generalizar la arquitectura de la red es incluir conexiones de capa de salto, cada una de las cuales está asociada con un parámetro adaptativo correspondiente. Por ejemplo, en una red de dos capas (dos capas ocultas) estas irían directamente de entradas a salidas. En principio, una red con unidades ocultas sigmoidales siempre puede imitar las conexiones de la capa de salto (para valores de entrada acotados) mediante el uso de un peso de primera capa suficientemente pequeño que, sobre su rango operativo, la unidad oculta sea efectivamente lineal y luego compensar con un gran valor de peso desde la unidad oculta hasta la salida.

En la práctica, sin embargo, puede ser ventajoso incluir conexiones de salto de capa explícitamente.ingrese la descripción de la imagen aquí

payam jome yazdian
fuente