154 votos

¿Por qué son las redes neuronales cada vez más profunda, pero no más amplio?

En los últimos años, convolucional redes neuronales (o quizás profundo de redes neuronales en general) se han convertido en más y más profundo, con el estado de la técnica de redes que van desde 7 capas (AlexNet) a 1000 capas (Residual Redes) en el espacio de 4 años. La razón detrás del aumento en el rendimiento de un más profundo de la red, es más complejo, no lineal, función que puede ser aprendido. Dado suficientes datos de entrenamiento, esto permite que las redes de forma más fácil discriminar entre diferentes clases.

Sin embargo, la tendencia parece no haber seguido con el número de parámetros de cada capa. Por ejemplo, el número de los mapas de características en la convolucional capas, o el número de nodos en el totalmente conectado capas, se ha mantenido prácticamente el mismo y es todavía relativamente pequeño en magnitud, a pesar del gran aumento en el número de capas. Desde mi intuición, aunque, parece que el aumento del número de parámetros de capa por capa, le da a cada capa de una rica fuente de datos para conocer su función no lineal; pero esta idea parece haber sido pasado por alto en favor de simplemente añadiendo más capas, cada una con un pequeño número de parámetros.

Así, mientras las redes se han convertido en "más profundo", que no se han convertido en "más amplio". ¿Por qué es esto?

174voto

user75170 Puntos 71

Como una exención de responsabilidad, trabajo en redes neuronales en mi investigación, pero yo generalmente uso relativamente pequeña, de poca profundidad de redes neuronales en lugar de la realidad profunda de las redes en la vanguardia de la investigación que mencionas en tu pregunta. Yo no soy un experto en las peculiaridades y particularidades de la muy profunda redes y voy a aplazar a alguien que es.

En primer lugar, en principio, no hay ninguna razón que usted necesita profundo de las redes neuronales. Una suficientemente amplia red neuronal con una sola capa oculta puede aproximar cualquier (razonable) de la función dada la suficiente cantidad de datos de entrenamiento. Sin embargo, hay algunas dificultades con el uso de un muy ancho y profundo, de la red. El principal problema es que estas muy ancho y profundo, las redes son muy buenos en la memorización, pero no tan bueno en la generalización. Así, si se entrena la red con cada posible valor de entrada, super amplia red eventualmente podría memorizar el correspondiente valor de salida que desee. Pero eso no es útil, porque para cualquier aplicación en la práctica no tienen todo el valor posible de entrada a tren.

La ventaja de múltiples capas es que se puede aprender de las características en varios niveles de abstracción. Por ejemplo, si se entrena un profundo convolucional de la red neuronal para clasificar las imágenes, usted encontrará que la primera capa de tren de sí mismo para reconocer cosas muy básicas como los bordes, la siguiente capa será de tren de sí mismo para reconocer las colecciones de los bordes, tales como formas, la siguiente capa será de tren de sí mismo para reconocer las colecciones de formas geométricas, como los ojos o en la nariz, y la siguiente capa será de aprender, incluso de orden superior funciones como caras. Múltiples capas son mucho mejores para generalizar porque aprenden todas las características intermedias entre los datos crudos y la clasificación de alto nivel.

Por lo que explica por qué usted podría utilizar una profunda red, en lugar de un muy amplio pero poco profundo de la red. Pero, ¿por qué no es muy profundo, muy amplia red? Creo que la respuesta no es la que quiere que su red sea tan pequeño como sea posible para producir buenos resultados. Como aumentar el tamaño de la red, que en realidad son sólo la introducción de más parámetros que la red necesita para aprender, y por lo tanto aumentando las posibilidades de sobreajuste. Si usted construye un muy amplio, muy profundo de la red, ejecute la oportunidad de cada capa sólo la memorización de lo que usted desea que la salida, y usted termina con una red neuronal que se produce un error de generalizar a los nuevos datos.

Aparte de el fantasma de sobreajuste, la más amplia su red, más largo será el tiempo para entrenar. Profundo redes ya puede ser muy costosas computacionalmente para entrenar, así que hay un fuerte incentivo para hacerlos lo suficientemente ancho que trabajan bien, pero no mayor.

31voto

user2229592 Puntos 8

Creo que no hay una respuesta definitiva a sus preguntas. Pero creo que la sabiduría convencional va de la siguiente manera:

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

Así que en definitiva, para cualquier conjunto de datos, es recomendable trabajar con el modelo mínimo que tiene la capacidad suficiente para aprender la estructura real de los datos. Pero esta es una muy de la mano-ondulado asesoramiento, ya que normalmente el "real de la estructura de los datos" es desconocido, y a menudo incluso las capacidades de los modelos candidatos son sólo vagamente conocidos.

Cuando se trata de redes neuronales, el tamaño de la hipótesis de que el espacio es controlado por el número de parámetros. Y parece que para un número fijo de parámetros (o fijo de una orden de magnitud), de ir más profundo permite que los modelos para capturar más ricos estructuras (por ejemplo, este documento).

Esto puede explicar en parte el éxito de la más profunda modelos con menos parámetros: VGGNet (desde 2014) tiene 16 capas con ~140M parámetros, mientras que ResNet (a partir de 2015) batir con 152 capas, pero sólo ~2M parámetros

(como un lado, los modelos más pequeños pueden ser computacionalmente más fácil entrenar - pero yo no creo que sea un factor importante por sí mismo, debido a que la profundidad de hecho complica la formación)

Tenga en cuenta que esta tendencia (más de profundidad, menos parámetros) está presente sobre todo en la visión relacionados con las tareas y convolucional redes, y esto requiere de un dominio específico de la explicación. Así que aquí está otra perspectiva:

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

Pero cuanto más profundo, el campo receptivo de cada neurona con respecto a algunos de los primeros de la capa se vuelve más grande. Así las capas profundas, puede proporcionar características globales de significado semántico y el resumen de los detalles (las relaciones de las relaciones ... de las relaciones de los objetos), mientras que el uso de sólo los pequeños núcleos (que regularizar las relaciones de la red aprende, y ayuda a que convergen y generalizar).

Por lo que la utilidad de profunda convolucional redes en la visión por ordenador puede ser parcialmente explicada por la estructura espacial de las imágenes y los vídeos. Es posible que el tiempo dirá que para los diferentes tipos de problemas, o para no convolucional arquitecturas, la profundidad en realidad no funciona bien.

14voto

Aksakal Puntos 11351

La adición de más características de la ayuda, pero el beneficio rápidamente convertirse en marginal después de un montón de características que se han añadido. Esa es una razón por la que las herramientas como PCA trabajo: algunos de los componentes de la captura de la mayoría de la variación en las características. Por lo tanto, la adición de más características después de un cierto punto es casi inútil.

En el otro lado para encontrar el derecho funcional para la ma de la función es siempre una buena idea. Sin embargo, si usted no tiene una buena teoría es difícil llegar con un funcionamiento correcto, por supuesto. Así, la adición de capas es útil como forma de acercamiento de fuerza bruta.

Considere un caso simple: el arrastre de aire de un coche. Decir, no sabíamos de la ecuación: $$f\sim C\rho A v^2/2$$ donde $A$ - un crossectional área de un coche, $\rho$ - densidad del aire, y $v$ - velocidad de un coche. Podríamos figura que el coche mediciones son importantes y agregarlos como características, la velocidad de un automóvil que va a ir también. Así que mantenga la adición de características, y tal vez agregar la presión del aire, la temperatura, la longitud, la anchura del coche, número de asientos, etc.

Vamos a terminar con un modelo como $$f\sim \sum_i\beta_i x_i$$ Se puede ver cómo estas características no se va a montar en la "verdad" de la ecuación a menos que agregue todas las interacciones y polinomios. Sin embargo, si la verdadera ecuación no estaba muy bien polinomio, decir que hubo exponentes u otros extraño funciones trascendentes, entonces no tendríamos ninguna oportunidad de emular con la expansión conjunto de características o la ampliación de la red.

Sin embargo, haciendo la red más profundo podría fácilmente llegar a la ecuación anterior con sólo dos capas. Funciones más complicadas necesitaría más de capa, que es la razón por la profundización en el número de capas podría ser un camino a seguir en muchos problemas.

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