¿Cuál es una explicación intuitiva de las redes residuales profundas?

Se realizó un excelente estudio de Redes Residuales Profundas en el siguiente artículo:

[1605.06431] Las redes residuales son conjuntos exponenciales de redes relativamente poco profundas

Estos tipos básicamente muestran que Deep Resnets se puede interpretar como grandes conjuntos de redes mucho menos profundas. La Figura 1 en el documento es muy ilustrativa, y recomendaría echarle un vistazo rápido.

Por lo tanto, puede pensar en los Resnets profundos como muchas redes poco profundas cuyas salidas se agrupan a varias profundidades.

En apoyo de esta opinión, los autores realizan una serie de experimentos:

  1. En una red como VGG, si elimina una capa, ¡su red se irá al infierno! Eche un vistazo a la Figura 3 (izquierda, las curvas rojas). En comparación con la red completa donde el error de clasificación de ImageNet es ~ 5%, el error se convierte en ~ 90-99% si solo elimina una capa de VGG. Esto no sucede en los reinicios profundos, a excepción de las pocas capas iniciales (el reemplazo que le cuesta mucho, ~ 40% de error), la eliminación de una última capa causa un aumento de ~ 0–5% en el error solamente (Fig. 3, izquierda, azul curvas). Esto está en línea con tener uno o pocos predictores malos en un conjunto grande.

    De manera similar, si elimina varias capas en Deep ResNets, la degradación del rendimiento es gradual (Figura 5). De nuevo apuntando a un conjunto como el comportamiento.

  2. Un resultado aún más poderoso se ilustra en la Figura 6 (b). Los autores grafican la magnitud del flujo de gradiente (en backprop), y encuentran que el gradiente casi desaparece para rutas mayores de ~ 20 módulos. Por lo tanto, no es exactamente la profundidad de estas redes lo que hace la magia, sino el comportamiento de ensamblaje que está incrustado en la arquitectura.

Copiaré el párrafo más estúpido del documento, que refuta la “visión” más importante del documento de Deep ResNets:

En la iteración más reciente de redes residuales, He et al. [6] afirman: “Obtenemos estos resultados a través de un concepto simple pero esencial: profundizar. Estos resultados demuestran el potencial de empujar los límites de profundidad ”. Ahora sabemos que esto no es del todo correcto. Las redes residuales superan los límites de la multiplicidad de la red, no la profundidad de la red. Nuestra vista desvelada propuesta y el estudio de la lesión muestran que las redes residuales son un conjunto implícito de exponencialmente muchas redes. Además, los caminos a través de la red que contribuyen con el gradiente son más cortos de lo esperado, porque los caminos profundos no contribuyen con ningún gradiente durante el entrenamiento debido a los gradientes que desaparecen. Si la mayoría de las rutas que contribuyen con el gradiente son muy cortas en comparación con la profundidad total de la red, el aumento de la profundidad por sí solo no puede ser la característica clave de las redes residuales. Ahora creemos que la multiplicidad, la capacidad de expresión de la red en términos del número de rutas, juega un papel clave.

El primer concepto a entender es la noción de composición jerárquica en Deep Learning. Deep Learning logra una mayor expresibilidad a través de una jerarquía de capas. Por lo tanto, se supone que se crean abstracciones cada vez más altas por capa de la red. Entonces, por ejemplo, en una red neuronal de procesamiento de imágenes, en la parte inferior podemos tener una capa que reconoce líneas simples. Luego, en la siguiente capa reconocemos la composición de estas líneas y en las capas más altas comenzamos a reconocer características mucho más altas, como los ojos y la nariz.

El problema con la composición jerárquica estricta es que asumimos demasiado que cada capa solo necesita la información de la capa anterior o adyacente a ella. Sin embargo, quizás una capa necesita información no solo de la capa anterior, sino también de muchas otras capas sobre las que se apila. Para garantizar una pérdida mínima de información de cualquiera de las capas inferiores, agregamos enrutamiento de paso para que las capas reciban información más detallada en lugar de solo información abstracta.

Experimentalmente, varias capas de capas de red residuales parecen hacer el mismo tipo de reconocimiento de una sola capa de una capa más convencional. La intuición de por qué una red residual funciona mejor es que conserva la información a través de las capas. La intuición también es similar a la intuición de por qué ReLU funciona tan bien. En ReLU, a diferencia de las funciones de activación sigmoide y tanh, el régimen lineal conserva más información.

Aquí puede encontrar una comprensión más intuitiva del aprendizaje profundo: Patrones de diseño para la arquitectura de aprendizaje profundo.

La explicación simple e intuitiva de la red residual profunda son sus características de aprendizaje opcionales, que permitieron un conjunto exponencial de redes.

Red residual

La imagen ha sido tomada del documento original, página-2.

Las siguientes propiedades están disponibles en red residual:

  • La unidad básica de la red residual se muestra en la figura tomada del documento original.
  • Conexión directa de acceso directo de mapeo de identidad sin agregar ningún parámetro adicional o complejidad computacional. Por lo tanto, se puede entrenar mediante propagación hacia atrás de extremo a extremo.
  • Cuando el tamaño de la dimensión de las capas cambia, Residual Net utiliza una transformación lineal que se puede aprender en comparación con el mapeo de identidad. Para evitar la adición de parámetros adicionales durante el aumento de la dimensión, se utiliza el mapeo de identidad con relleno cero.
  • La hipótesis de la red residual es que es más fácil optimizar el mapeo residual que optimizar el mapeo original.
  • Es aplicable a capas totalmente conectadas y convolucionales, donde la adición por elementos puede realizarse en dos mapas de características, canal por canal.
  • Las normalizaciones por lotes se utilizan justo después de cada convolución y antes de la activación con una tasa de aprendizaje de 0.1 inicialmente.
  • SGD de tamaño mini-lote de 256 se utiliza para el entrenamiento con inicialización de peso desde cero.
  • La deserción no se utiliza.

Primero, veamos la definición de aprendizaje residual que usan.

Este diagrama ilustra que “+ x” es la principal modificación que hacen a las ideas tradicionales. No hay nada especial en tener dos capas de peso, de hecho, el documento menciona más adelante el uso de tres. Tenga en cuenta que F (x) yx deben tener la misma dimensionalidad para que “+” esté bien definido, y que los autores experimentan con operaciones de proyección o rellenando ceros cuando F (x) yx no son conformes. Eso podría suceder, por ejemplo, cuando x es de 1000 dimensiones, la capa de peso es una matriz de 500 x 1000 y F (x) es de 500 dimensiones.

El aprendizaje residual profundo para el reconocimiento de imágenes se refiere repetidamente al descubrimiento de que las redes más profundas con conexiones tradicionales (es decir, capa M conectadas exclusivamente a la capa (M-1) a través de conexiones convolucionales o totalmente conectadas) están sujetas no solo al problema familiar de sobreajuste debido para agregar más parámetros pero una pérdida de entrenamiento relativamente alta . Con esto en mente, aquí hay una pregunta que debe hacerse: “¿Qué pasaría si F (X) fuera siempre de valor cero”? Entonces, la red sería funcionalmente una capa menos profunda. Pero dado que F (X) no siempre se valora en cero en la práctica, la esperanza es que el término F (X) permita la abstracción y x permita sortear las dificultades para entrenar redes profundas (nota: estas son mis palabras, no las suyas). Según sus experimentos, parece que, al menos para el reconocimiento de objetos, vemos más un efecto de “lo mejor de ambos mundos” en lugar de “lo peor de ambos mundos” o “el término x no tiene efecto” o algo así. Capacitaron con éxito a una CNN de 152 capas para tener un error de 5.71 top-5, superando a GoogLeNet y otros modelos de última generación.

Su pregunta se refiere a la intuición de por qué esta es una idea notable, y como suele ser el caso con la nueva investigación de aprendizaje profundo, no está del todo claro. En este artículo, los autores demuestran que las conexiones residuales mejoran el rendimiento de la clasificación de objetos; no entran en mucha teoría y no informan resultados sobre una variedad de problemas donde las conexiones residuales ayudan y no ayudan. Para citar a los autores, “Presumimos que es más fácil optimizar el mapeo residual que optimizar el mapeo original sin referencia”, siendo la palabra clave “hipótesis”.

Básicamente permite entrenar redes profundas resolviendo problemas de gradiente de fuga usando funciones matemáticas simples.

He escrito una publicación de blog de la serie de dos partes sobre esto

  1. Comprender e implementar arquitecturas de ResNet
  2. Comprender e implementar arquitecturas de ResNeXt

En breve

Tome una red poco profunda (10 capas) y una variante más profunda (20 capas).

En el peor de los casos: las primeras capas del modelo más profundo pueden reemplazarse con una red poco profunda y las capas restantes pueden actuar como una función de identidad (entrada igual a salida).

Escenario de recompensa : en la red más profunda, las capas adicionales se aproximan mejor al mapeo que su contraparte menos profunda y reducen el error en un margen significativo.

Experimento: en el peor de los casos, tanto la red poco profunda como su variante más profunda deberían tener la misma precisión. En el caso de un escenario gratificante, el modelo más profundo debería dar una mejor precisión que su contraparte menos profunda. Pero los experimentos con nuestros solucionadores actuales revelan que los modelos más profundos no funcionan bien. Por lo tanto, el uso de redes más profundas está degradando el rendimiento del modelo.

solución: en lugar de aprender un mapeo directo de x -> y con una función H (x) (unas pocas capas no lineales apiladas). Definamos la función residual usando F (x) = H (x) – x, que puede reformularse en H (x) = F (x) + x, donde F (x) yx representa las capas no lineales apiladas y la función de identidad (entrada = salida) respectivamente.

Si el mapeo de identidad es óptimo, podemos empujar fácilmente los residuos a cero (F (x) = 0) que ajustar un mapeo de identidad (x, input = output) por una pila de capas no lineales. En un lenguaje simple, es muy fácil encontrar una solución como F (x) = 0 en lugar de F (x) = x usando una pila de capas cnn no lineales como función (piénselo). Entonces, esta función F (x) es lo que los autores llamaron Función residual.

El aprendizaje residual tiene la forma de H (x) = x + F (x). El mayor beneficio de este formulario es durante la propagación inversa. Durante la propagación hacia atrás, el gradiente de la capa superior puede pasar directamente a la capa inferior. En contraste, el gradiente de capa superior debe pasar a través de la capa de peso para llegar a la capa inferior, lo que puede causar un gradiente de fuga o un problema de gradiente explosivo.

Si desea obtener más información sobre la estructura residual, le recomiendo que consulte este documento de seguimiento, que ha probado muchas variaciones diferentes de la red residual. Mostraron que el mapeo de identidad da el mejor resultado.

Él, Kaiming, et al. “Mapeos de identidad en redes residuales profundas”. ArXiv preprint arXiv: 1603.05027 (2016).

Parece haber dos escuelas de pensamiento sobre ResNets:

  1. Están haciendo algo “especial” / “mayor” / más “pensamiento”. Básicamente, la idea con esto es que son algo así como un RNN o LSTM avanzado que piensa más.
  2. No están haciendo algo “especial” / “mayor” / más “pensamiento”. Son solo un conjunto exponencial.

Personalmente, creo en esta interpretación: [1612.07771] Las carreteras y las redes residuales aprenden la estimación iterativa desenrollada

Mi próximo artículo presentará evidencia experimental de esto.

Por supuesto, si solo quieres entender lo que son, es solo una adición.

Mi intuición simple es eso; mantenga la activación de la capa anterior igual con las conexiones residuales y aprenda una nueva representación con la nueva capa siempre que mejore las capacidades de clasificación en el conjunto de entrenamiento. Es casi seguro que aprenderá algo útil para cada capa, ya que de lo contrario se supone que la red solo mantendrá la conexión residual con la siguiente capa. La misma idea con dos oraciones diferentes 🙂

More Interesting

¿Cuál es la diferencia entre el filtrado basado en contenido y el filtrado colaborativo?

¿Cómo trata Google Translate u otra traducción en línea con palabras que no existen en el otro idioma?

¿Hay algún ejemplo de código de agrupación de documentos utilizando PCA o Autoencoder o algún otro algoritmo de agrupación?

Cómo aprender los conceptos básicos del aprendizaje automático dentro de una semana para una entrevista de trabajo

¿Es un doctorado en inteligencia artificial una cosa? ¿O el doctorado estaría realmente en aprendizaje automático / visión artificial, etc.?

¿Cómo puedo sobresalir en el aprendizaje automático con antecedentes estadísticos?

¿Cómo debe comenzar un principiante con la investigación en Machine Learning?

¿Dónde puedo obtener un conjunto de datos de notas de suicidio para fines de aprendizaje automático?

¿Cuál es una explicación intuitiva de las redes residuales profundas?

¿Qué pasaría si pocos puntos de datos son comunes en los conjuntos de capacitación y validación?

¿Por qué querríamos intentar aprender una base demasiado completa en codificación dispersa?

¿Cuántas imágenes se requieren para las redes adversas generativas (GAN)?

¿Cómo podría agrupar usuarios similares en el conjunto de datos MovieLens?

¿La mayoría de los algoritmos de aprendizaje automático se ejecutan en lotes, o se ejecutan cada vez que obtienen un nuevo bit de datos?

¿Cuáles son los mejores recursos en línea para mejorar los algoritmos de aprendizaje automático?