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.
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,
Él también dice
Este libro dice
fuente
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í:
¿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).
fuente
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.
fuente