Editar: como señaló correctamente @Toke Faurby, la implementación predeterminada en tensorflow en realidad usa un abandono por elementos. Lo que describí anteriormente se aplica a una variante específica de deserción en CNN, llamada deserción espacial :
En una CNN, cada neurona produce un mapa de características. Dado que el abandono espacial de abandono funciona por neurona, eliminar una neurona significa que el mapa de características correspondiente se elimina, por ejemplo, cada posición tiene el mismo valor (generalmente 0). Por lo tanto, cada mapa de características se descarta por completo o no se descarta en absoluto.
La agrupación generalmente opera por separado en cada mapa de características, por lo que no debería haber ninguna diferencia si aplica el abandono antes o después de la agrupación. Al menos este es el caso de las operaciones de agrupación como maxpooling o promediación.
Editar: Sin embargo, si realmente usa el abandono por elementos (que parece estar configurado como predeterminado para el flujo de tensor), en realidad hace una diferencia si aplica el abandono antes o después de la agrupación. Sin embargo, no necesariamente hay una forma incorrecta de hacerlo. Considere la operación de agrupación promedio: si aplica el abandono antes de la agrupación, escale efectivamente las activaciones de neuronas resultantes 1.0 - dropout_probability
, pero la mayoría de las neuronas serán distintas de cero (en general). Si aplica el abandono después de la agrupación promedio, generalmente termina con una fracción de (1.0 - dropout_probability)
activaciones de neuronas "sin escala" distintas de cero y una fracción de dropout_probability
neuronas cero. Ambos me parecen viables, ninguno de los dos está completamente equivocado.
Este tutorial utiliza la agrupación antes del abandono y obtiene buenos resultados.
Eso no significa necesariamente que el otro orden no funcione, por supuesto. Mi experiencia es limitada, solo los he usado en capas densas sin agrupar.
fuente
Ejemplo de un convnet similar a VGG de Keras (abandono utilizado después de la agrupación):
fuente