Embolsado vs abandono en redes neuronales profundas

17

El ensacado es la generación de múltiples predictores que funciona como un conjunto de predictores únicos. La deserción es una técnica que enseña a las redes neuronales a promediar todas las subredes posibles. Mirando las competencias más importantes de Kaggle parece que estas dos técnicas se usan juntas muy a menudo. No puedo ver ninguna diferencia teórica además de la implementación real. ¿Quién puede explicarme por qué deberíamos usar ambos en cualquier aplicación real? ¿Y por qué el rendimiento mejora cuando los usamos a ambos?

emanuele
fuente

Respuestas:

21

El embolsado y el abandono no logran exactamente lo mismo, aunque ambos son tipos de promedios de modelos.

El ensacado es una operación en todo su conjunto de datos que entrena modelos en un subconjunto de los datos de entrenamiento. Por lo tanto, algunos ejemplos de entrenamiento no se muestran a un modelo dado.

La deserción , por el contrario, se aplica a las características dentro de cada ejemplo de entrenamiento. Es cierto que el resultado es funcionalmente equivalente a entrenar exponencialmente muchas redes (¡con pesos compartidos!) Y luego ponderar igualmente sus resultados. Pero el abandono funciona en el espacio de funciones, lo que hace que ciertas funciones no estén disponibles para la red, no ejemplos completos. Debido a que cada neurona no puede confiar completamente en una entrada, las representaciones en estas redes tienden a estar más distribuidas y es menos probable que la red se sobreajuste.

jamesmf
fuente
+1 para una buena explicación. ¿Conoces algún enlace donde se realiza una implementación de Python? ¿Algún blog o tal vez Github?
Dawny33
Aquí hay uno decente: deeplearning.net/tutorial/lenet.html , aunque prefiero el estilo de este: neuralnetworksanddeeplearning.com/chap6.html . Para la implementación y excelentes demostraciones, me gusta keras (instalación bastante fácil de pip) keras.io
jamesmf
2

Encontré una comparación de los dos tipos de redes en Max Out Networks que dice:

El entrenamiento de abandono es similar al embolsado (Breiman, 1994), donde muchos modelos diferentes se entrenan en diferentes subconjuntos de datos. El entrenamiento de deserción escolar difiere del ensacado en que cada modelo está entrenado para un solo paso y todos los modelos comparten parámetros. Para que este procedimiento de entrenamiento (abandono) se comporte como si se tratara de entrenar un conjunto en lugar de un solo modelo, cada actualización debe tener un gran efecto, de modo que haga que el submodelo inducido por ese µ se ajuste bien a la entrada actual v.

Espero que sea útil.

emanuele
fuente
0

El abandono es una técnica de regularización que se usa para evitar el sobreajuste en redes neuronales grandes específicamente al excluir algunas de las neuronas en capas ocultas (de ahí el nombre de abandono de las neuronas excluidas) después del entrenamiento. Básicamente, si la red realmente aprendió algo durante el entrenamiento, abandonar algunas de las neuronas no debería afectar negativamente la precisión de las predicciones.

El ensacado también es una técnica de regularización efectiva, utilizada para reducir la variación de los datos de entrenamiento y mejorar la precisión de su modelo mediante el uso de múltiples copias de él entrenadas en diferentes subconjuntos de datos del conjunto de datos de entrenamiento inicial / más grande.

ver esta pregunta

ENLACE
fuente