Modelo de Google Inception: ¿por qué hay múltiples softmax?

13

La topología del modelo de Google Inception se puede encontrar aquí: Google Inception Netowrk

Noté que hay 3 capas softmax en este modelo (# 154, # 152, # 145), y 2 de ellas son una especie de escape temprano de este modelo.

Por lo que sé, la capa softmax es para la salida final, entonces, ¿por qué hay tantas? ¿Cuál es el propósito de otras 2 capas?

skywalkerytx
fuente

Respuestas:

27

Respuesta corta: las arquitecturas profundas, y específicamente GoogLeNet (22 capas) están en peligro del problema de gradientes que desaparecen durante el entrenamiento (algoritmo de propagación inversa). Los ingenieros de GoogLeNet abordaron este problema agregando también clasificadores en las capas intermedias, de modo que la pérdida final es una combinación de la pérdida intermedia y la pérdida final. Es por eso que ve un total de tres capas de pérdida, a diferencia de la capa única habitual como la última capa de la red.

Respuesta más larga: en el aprendizaje automático clásico, generalmente hay una distinción entre ingeniería de características y clasificación. Las redes neuronales son más famosas por su capacidad para resolver problemas "de principio a fin", es decir, combinan las etapas de aprender una representación de los datos y entrenar a un clasificador. Por lo tanto, puede pensar que una red neuronal con una arquitectura estándar (por ejemplo, AlexNet) está compuesta por una fase de "aprendizaje de representación" (las capas hasta el anterior al último) y una fase de "clasificación", que como se esperaba, incluye Una función de pérdida.

Al crear redes más profundas, surge un problema acuñado como el problema de "gradientes de fuga". En realidad no es específico de las redes neuronales; en lugar de cualquier método de aprendizaje basado en gradiente. No es tan trivial y, por lo tanto, merece una explicación adecuada para sí mismo; Vea aquí para una buena referencia. Intuitivamente, puede pensar en los gradientes que transportan cada vez menos información a medida que profundizamos dentro de la red, lo que, por supuesto, es una preocupación importante, ya que ajustamos los parámetros (pesos) de la red basados ​​únicamente en los gradientes, utilizando el "back-prop "algoritmo.

¿Cómo manejaron los desarrolladores de GoogLeNet este problema? Reconocieron el hecho de que no son solo las características de las capas finales las que llevan toda la información discriminatoria: las características intermedias también son capaces de discriminar diferentes etiquetas; y, lo más importante, sus valores son más "confiables" ya que se extraen de capas anteriores en las que el gradiente lleva más información. Partiendo de esta intuición, agregaron "clasificadores auxiliares" en dos capas intermedias. Esta es la razón de las capas de pérdida de "escape temprano" en el medio de la red a las que hizo referencia en su pregunta.

La pérdida total es entonces una combinación de estas tres capas de pérdida. Cito del artículo original:

Estos clasificadores toman la forma de redes convolucionales más pequeñas puestas encima de la salida de los módulos Inception (4a) y (4d). Durante el entrenamiento, su pérdida se suma a la pérdida total de la red con un peso de descuento (las pérdidas de los clasificadores auxiliares se ponderaron en 0.3). En el momento de la inferencia, estas redes auxiliares se descartan.

Visualmente:

ingrese la descripción de la imagen aquí

galoosh33
fuente
1
"... capas anteriores en las que el gradiente lleva más información", ¿por qué?
max
2

Además de la respuesta de @ galoosh33: Me parece que los clasificadores auxiliares usan las mismas etiquetas que el clasificador de salida final. Fuente: diapositiva 34 en https://pdfs.semanticscholar.org/0b99/d677883883584d9a328f6f2d54738363997a.pdf

Anteriormente, me preguntaba si estos clasificadores auxiliares usaban otro tipo de etiquetas (por ejemplo, simplemente perro en lugar de husky siberiano).

gebbissimo
fuente