¿Por qué agregar una capa de abandono mejora el rendimiento del aprendizaje profundo / automático, dado que el abandono suprime algunas neuronas del modelo?


13

Si eliminar algunas neuronas da como resultado un modelo de mejor rendimiento, ¿por qué no utilizar una red neuronal más simple con menos capas y menos neuronas en primer lugar? ¿Por qué construir un modelo más grande y complicado al principio y suprimir partes de él más tarde?

Respuestas:


30

La función de abandono es aumentar la robustez del modelo y también eliminar cualquier dependencia simple entre las neuronas.

Las neuronas solo se eliminan para un solo paso hacia adelante y hacia atrás a través de la red, lo que significa que sus pesos se establecen sintéticamente en cero para ese paso, por lo que sus errores también lo son, lo que significa que los pesos no se actualizan. La deserción también funciona como una forma de regularización , ya que está penalizando al modelo por su complejidad, de alguna manera.

Recomendaría leer la sección Deserción en el libro Deep Learning de Michael Nielsen (gratis y en línea), que da una buena intuición y también tiene diagramas / explicaciones muy útiles. Él explica que:

La deserción es una técnica radicalmente diferente para la regularización. A diferencia de la regularización L1 y L2, el abandono no depende de modificar la función de costo. En cambio, en el abandono modificamos la red en sí.

Aquí hay un buen artículo resumen . De ese artículo:

Algunas observaciones

  • El abandono obliga a una red neuronal a aprender características más robustas que son útiles junto con muchos subconjuntos aleatorios diferentes de las otras neuronas.
  • La deserción duplica aproximadamente el número de iteraciones necesarias para converger. Sin embargo, el tiempo de entrenamiento para cada época es menor.
  • Con H unidades ocultas, cada una de las cuales se puede soltar, tenemos 2 ^ H de modelos posibles. En la fase de prueba, se considera toda la red y cada activación se reduce en un factor p.

Ejemplo

Imagina que te pido que me prepares una taza de té; siempre puedes usar la mano derecha para verter el agua, el ojo izquierdo para medir el nivel del agua y luego la mano derecha nuevamente para remover el té con una cuchara. Esto significaría que su mano izquierda y ojo derecho tienen poco propósito. El uso de la deserción, por ejemplo, ataría la mano derecha detrás de la espalda, lo que le obligaría a usar la mano izquierda. Ahora, después de prepararme 20 tazas de té, con un ojo o una mano fuera de acción, estás mejor entrenado para usar todo lo que esté disponible. Tal vez más tarde te veas obligado a preparar té en una cocina pequeña, donde solo es posible usar la tetera con el brazo izquierdo ... ¡y después de usar la deserción, tienes experiencia en hacerlo! Te has vuelto más robusto para datos invisibles.


¿Cómo determinar el mejor valor de deserción para la clasificación de múltiples clases? y cómo determinar el mejor número de capas de abandono?
N.IT

2
@ N.IT: hasta donde yo sé, no hay un método bien definido que encuentre el mejor nivel de abandono o cuántas capas, aparte de probar muchas combinaciones. Al igual que con otros métodos de regularización y exploración de arquitectura, es probable que obtenga mejores resultados entrenando un modelo y comparando las curvas de pérdida de capacitación / validación. Echa un vistazo a esta explicación sobre el tema .
n1k31t4

Gran respuesta. Para ser más concreto con respecto a la analogía de su cocina, Dropout se usa solo durante el entrenamiento, no durante la inferencia. Por lo tanto, el modelo complejo no se utiliza parcialmente.
Vaibhav Garg

Estaba escribiendo esta respuesta con los ojos cerrados. gyes más entrenamiento neede. nwws moew seopour.
VHanded el

3

La deserción en realidad no elimina las neuronas, es solo que esas neuronas en particular no juegan ningún papel (no se activan) para el lote de datos dado.

Ejemplo: suponga que hay un camino de 8 carriles: cuando llegan los camiones, pasan por los carriles 1,2,4,6,7, cuando llegan los automóviles, pasan por los carriles 2,3,4,7,8 y cuando llegan las bicicletas , pasan por los carriles 1,2,5,8. Entonces, independientemente de cualquier vehículo, todos los carriles están allí, pero solo se usan algunos de ellos.

Del mismo modo, todas las neuronas se usan en todo el modelo, pero solo se activa un subconjunto de neuronas para un lote particular de datos. Y el modelo no se corta más tarde, la complejidad del modelo permanece como está.

¿Por qué usar la deserción escolar?

Como se da en el libro de aprendizaje profundo de Ian Goodfellow,

la deserción es más efectiva que otros regularizadores computacionalmente económicos, como la disminución de peso, las restricciones de las normas de filtro y la regularización de actividad dispersa.

Él también dice

Una ventaja del abandono es que es computacionalmente barato.

Otra ventaja significativa del abandono es que no limita significativamente el tipo de modelo o procedimiento de capacitación que se puede utilizar. Funciona bien con casi cualquier modelo que use una representación distribuida y se pueda entrenar con descenso de gradiente estocástico. Esto incluye redes neuronales de avance, modelos probabilísticos como máquinas de Boltzmann restringidas (Srivastava et al., 2014) y redes neuronales recurrentes (Bayer y Osendorfer, 2014; Pascanu et al., 2014a).

Este libro dice

La idea central es que la introducción de ruido en los valores de salida de una capa puede romper los patrones de sucesos que no son significativos, lo que la red comenzará a memorizar si no hay ruido presente.


He editado la pregunta para usar la palabra suprimir y no eliminar. La pregunta permanece. ¿Por qué construir tantos carriles cuando solo se usan algunos de ellos al final?
user781486

@ user781486 Para algunos de ellos, significa algunos de ellos para cada lote de datos, pero todos se utilizarán si considera datos completos. Como en mi ejemplo, todos los carriles 1-8 se usan si toma un conjunto combinado de números de carriles para cada vehículo.
Ankit Seth

3

Otra forma de ver lo que hace el abandono es que es como una losa y una espiga anteriores para el coeficiente de una covariable (es decir, un término de interacción complejo de las covariables originales con algunas transformaciones funcionales complicadas) en un modelo bayesiano. Esta es la interpretación propuesta por Yarin Gal en su tesis (ver su lista de publicaciones ).

Aquí hay un breve argumento para explicar por qué esto es así:

  • En esos lotes, donde se elimina una neurona, el coeficiente de característica / covariable (construido por la conexión en la red neuronal que entra en la neurona) es cero (pico en cero).
  • En esos lotes, donde está presente la neurona, el coeficiente no está restringido (plano anterior incorrecto = losa).
  • Promediado en todos los lotes, obtienes un pico y una losa antes.

¿Por qué querríamos una losa y una espiga antes? Induce un modelo bayesiano promediando entre una red neutral sin esa neurona y una con ella dentro. En otras palabras, nos permite expresar incertidumbre acerca de si la red neutral realmente necesita tener toda su complejidad posible y toma en cuenta esta incertidumbre de manera apropiada en el predicciones Esto aborda el problema principal de que las redes neutrales sean capaces de sobreajustarse a los datos (aunque, por supuesto, no es la única forma posible de lograrlo).


Buen punto. Se actualizará la respuesta.
Björn

2

La capa de abandono elimina indiscriminadamente una porción específica de neuronas, disminuyendo la capacidad de representación del modelo en cuestión. Esto evita que la red se ajuste a límites de decisión no lineales complejos (es decir, el "ruido" en el conjunto de datos), evitando así (o mejorando) el sobreajuste.

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.