¿Por qué las redes neuronales se vuelven más profundas, pero no más anchas?


73

En los últimos años, las redes neuronales convolucionales (o quizás redes neuronales profundas en general) se han vuelto cada vez más profundas, con redes de vanguardia que van de 7 capas ( AlexNet ) a 1000 capas ( Redes residuales) en el espacio de 4 años. La razón detrás del aumento en el rendimiento de una red más profunda, es que se puede aprender una función no lineal más compleja. Con suficientes datos de entrenamiento, esto permite que las redes discriminen más fácilmente entre diferentes clases.

Sin embargo, la tendencia parece no haber seguido con el número de parámetros en cada capa. Por ejemplo, el número de mapas de características en las capas convolucionales, o el número de nodos en las capas completamente conectadas, se ha mantenido más o menos igual y sigue siendo de magnitud relativamente pequeña, a pesar del gran aumento en el número de capas. Sin embargo, desde mi intuición, parecería que aumentar el número de parámetros por capa le daría a cada capa una fuente más rica de datos para aprender su función no lineal; pero esta idea parece haberse pasado por alto a favor de simplemente agregar más capas, cada una con un pequeño número de parámetros.

Entonces, aunque las redes se han vuelto "más profundas", no se han vuelto "más amplias". ¿Por qué es esto?


1
+1, pero para ser justos, no es que estas redes de más de 1000 capas sean "estado del arte" en el sentido de superar a las demás. El documento arxiv que vinculó a informes de red residual con 152 capas como el ganador actual en ImageNet.
ameba dice Reinstate Monica

3
¿Ha leído redes residuales anchas arxiv.org/abs/1605.07146 ... quizás no hay razón ... optimizar una función no convexa con descenso de gradiente no tiene fundamento teórico ... solo hay prueba y muchos errores :-)
seanv507

@ seanv507 Muy interesante, gracias por este enlace. Por cierto, aquí hay un hilo muy relacionado: stats.stackexchange.com/questions/214360 y hay un enlace a este hilo de reddit allí.
ameba dice Reinstate Monica


Respuestas:


87

Como descargo de responsabilidad, trabajo en redes neuronales en mi investigación, pero generalmente uso redes neuronales superficiales relativamente pequeñas en lugar de las redes realmente profundas en la vanguardia de la investigación que usted cita en su pregunta. No soy un experto en las peculiaridades y peculiaridades de las redes muy profundas y me referiré a alguien que lo sea.

Primero, en principio, no hay ninguna razón por la que necesite redes neuronales profundas. Una red neuronal suficientemente amplia con una sola capa oculta puede aproximarse a cualquier función (razonable) dados suficientes datos de entrenamiento. Sin embargo, existen algunas dificultades con el uso de una red extremadamente amplia y poco profunda. El problema principal es que estas redes muy amplias y poco profundas son muy buenas para memorizar, pero no tan buenas para generalizar . Por lo tanto, si entrena la red con todos los valores de entrada posibles, una red súper amplia podría eventualmente memorizar el valor de salida correspondiente que desee. Pero eso no es útil porque para cualquier aplicación práctica no tendrá todos los valores de entrada posibles para entrenar.

La ventaja de múltiples capas es que pueden aprender características en varios niveles de abstracción . Por ejemplo, si entrena una red neuronal convolucional profunda para clasificar imágenes, encontrará que la primera capa se entrenará para reconocer cosas muy básicas como los bordes, la siguiente capa se entrenará para reconocer colecciones de bordes como formas, la siguiente la capa se entrenará para reconocer colecciones de formas como ojos o narices, y la siguiente capa aprenderá características de orden superior como caras. Las capas múltiples son mucho mejores para generalizar porque aprenden todas las características intermedias entre los datos sin procesar y la clasificación de alto nivel.

Eso explica por qué podría usar una red profunda en lugar de una red muy amplia pero poco profunda. Pero, ¿por qué no una red muy profunda y muy amplia? Creo que la respuesta es que desea que su red sea lo más pequeña posible para producir buenos resultados. A medida que aumenta el tamaño de la red, en realidad solo está introduciendo más parámetros que su red necesita aprender y, por lo tanto, aumenta las posibilidades de sobreajuste. Si construye una red muy amplia y muy profunda, corre el riesgo de que cada capa simplemente memorice lo que desea que sea la salida, y termina con una red neuronal que no se puede generalizar a nuevos datos.

Además del espectro del sobreajuste, cuanto más amplia sea su red, más tiempo le llevará entrenar . Las redes profundas ya pueden ser muy caras desde el punto de vista computacional, por lo que existe un fuerte incentivo para que sean lo suficientemente anchas como para que funcionen bien, pero no más anchas.


+1. ¿Algún comentario sobre arxiv.org/abs/1605.07146 ?
ameba dice Reinstate Monica

2
Solo lo hojeé, así que no puedo decir nada autoritario, pero parece que los autores descubrieron que, al menos en el caso de redes residuales, una red ancha (¡pero aún de 16 capas de profundidad!) Supera a una estrecha, extremadamente profunda (1000 capas ) red. No sé mucho sobre las redes residuales, pero según la introducción, parece que una dificultad para entrenarlas es que puede haber una tendencia para que las capas no aprendan nada y, por lo tanto, no contribuyan mucho al resultado. Parece que tener menos capas, pero más poderosas, evita esto. No sé si esto se aplica a otros tipos de NN.
J. O'Brien Antognini

Respuesta clara y concisa, bien hecho. @J
ctwardy

21

No creo que haya una respuesta definitiva a sus preguntas. Pero creo que la sabiduría convencional es la siguiente:

Básicamente, a medida que crece el espacio de hipótesis de un algoritmo de aprendizaje, el algoritmo puede aprender estructuras cada vez más ricas. Pero al mismo tiempo, el algoritmo se vuelve más propenso al sobreajuste y es probable que aumente su error de generalización.

Por lo tanto, en última instancia, para cualquier conjunto de datos dado, es recomendable trabajar con el modelo mínimo que tenga la capacidad suficiente para aprender la estructura real de los datos. Pero este es un consejo muy sencillo, ya que generalmente se desconoce la "estructura real de los datos" y, a menudo, incluso las capacidades de los modelos candidatos solo se entienden vagamente.

Cuando se trata de redes neuronales, el tamaño del espacio de hipótesis está controlado por el número de parámetros. Y parece que para un número fijo de parámetros (o un orden de magnitud fijo), profundizar permite que los modelos capturen estructuras más ricas (por ejemplo, este documento ).

Esto puede explicar parcialmente el éxito de los modelos más profundos con menos parámetros: VGGNet (desde 2014) tiene 16 capas con ~ 140M parámetros, mientras que ResNet (desde 2015) lo supera con 152 capas pero solo ~ 2M parámetros

(como un lado, los modelos más pequeños pueden ser computacionalmente más fáciles de entrenar, pero no creo que sea un factor importante en sí mismo, ya que la profundidad realmente complica el entrenamiento)

Tenga en cuenta que esta tendencia (más profundidad, menos parámetros) está principalmente presente en tareas relacionadas con la visión y redes convolucionales, y esto requiere una explicación específica del dominio. Así que aquí hay otra perspectiva:

Cada "neurona" en una capa convolucional tiene un "campo receptivo", que es el tamaño y la forma de las entradas que afectan a cada salida. Intuitivamente, cada núcleo captura algún tipo de relación entre las entradas cercanas. Y los núcleos pequeños (que son comunes y preferibles) tienen un pequeño campo receptivo, por lo que solo pueden proporcionar información sobre las relaciones locales.

Pero a medida que profundiza, el campo receptivo de cada neurona con respecto a una capa anterior se hace más grande. Por lo tanto, las capas profundas pueden proporcionar características con significado semántico global y detalles abstractos (relaciones de relaciones ... de relaciones de objetos), a la vez que usan solo núcleos pequeños (que regularizan las relaciones que aprende la red y la ayudan a converger y generalizar).

Por lo tanto, la utilidad de las redes convolucionales profundas en la visión por computadora puede explicarse parcialmente por la estructura espacial de imágenes y videos. Es posible que el tiempo diga que para diferentes tipos de problemas, o para arquitecturas no convolucionales, la profundidad en realidad no funciona bien.


La parte de la máquina de Boltzmann restringida de las redes profundas es un gran multiplicador en el tiempo de convergencia. (afaict)
EngrStudent

44
Las GBR no son inherentes al aprendizaje profundo. Muchas (¿hoy en día, la mayoría?) De redes profundas exitosas no usan RBM.
Borbei

3
Gracias por vincularme a ese documento, no lo había visto antes y parece muy relevante.
J. O'Brien Antognini

@ Borbei: ¿cómo aseguran la separación de las funciones sin RBM?
EngrStudent

1
+1. ¿Algún comentario sobre arxiv.org/abs/1605.07146 ?
ameba dice Reinstate Monica

10

Agregar más funciones ayuda, pero el beneficio se vuelve marginal rápidamente después de que se agregaron muchas funciones. Esa es una razón por la cual las herramientas como PCA funcionan: algunos componentes capturan la mayoría de las variaciones en las características. Por lo tanto, agregar más funciones después de algún punto es casi inútil.

Por otro lado, encontrar la funcionalidad adecuada para ma de la función siempre es una buena idea. Sin embargo, si no tienes una buena teoría, es difícil encontrar una función correcta, por supuesto. Por lo tanto, agregar capas es útil como forma de enfoque de fuerza bruta.

fCρAv2/2
Aρv

fiβixi

Sin embargo, profundizar la red fácilmente lo llevaría a la ecuación anterior con solo dos capas. Las funciones más complicadas necesitarían más capas, por eso profundizar el número de capas podría ser un camino a seguir en muchos problemas.


55
Asume funciones de transferencia lineal. Pero hay muchas otras opciones (comunes), y de acuerdo con el teorema de aproximación universal de ANN , incluso una sola capa oculta no lineal (si es lo suficientemente amplia) puede aproximar cualquier función agradable. Por lo tanto, la representabilidad no puede explicar realmente el éxito de las redes profundas.
Borbei

2
Mi ejemplo fue lineal pero se aplica a un conjunto más amplio de casos. Asumiste la función "agradable", pero muchas no lo son tanto. Por ejemplo, cuando selecciono un automóvil para comprar, ¿por qué mi algoritmo de decisión sería una buena función?
Aksakal

2

dwO(dw2)

¿Por qué podrías estar tratando de limitar el número de parámetros? Un numero de rasones:

  • Estás tratando de evitar el sobreajuste. (Aunque limitar el número de parámetros es un instrumento muy contundente para lograr esto).
  • Su investigación es más impresionante si puede superar el modelo de otra persona utilizando el mismo número de parámetros.
  • Entrenar a su modelo es mucho más fácil si el modelo (más parámetros de momento si está usando Adam) puede caber dentro de la memoria de una sola GPU.
  • En aplicaciones de la vida real, la RAM a menudo es costosa cuando se sirven modelos. Esto es especialmente cierto para ejecutar modelos en, por ejemplo, un teléfono celular, pero a veces puede aplicarse incluso para servir modelos desde la nube.

O(dw2)w1,w2w1×w2(d2)w

(d2)w2+w(input layer width)+w(output layer width)=O(dw2).
1/wO(dw)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.