¿Qué significa ser modelo pre-entrenado en CNN? ¿Ya están entrenados en esas clases particulares?

Hola ismail

De hecho, pre-entrenado en sí mismo significa un modelo que ya ha sido entrenado en algún tipo de conjunto de datos con diferente número de clases. En el aprendizaje profundo hay un término llamado “aprendizaje de transferencia”, ¿qué significa? Bueno, este concepto dice que los modelos CNN tienen esta capacidad de aprender algún tipo de información de otros conjuntos de datos. En la práctica, muy pocas personas entrenan a toda una Red Convolucional desde cero (con inicialización aleatoria), porque es relativamente raro tener un conjunto de datos de tamaño suficiente. En cambio, es común entrenar previamente un modelo CNN en un conjunto de datos muy grande (por ejemplo, ImageNet, que contiene 1,2 millones de imágenes con 1000 categorías), y luego usar esto como inicialización o como extractor de características fijas para la tarea de interés. . El enfoque principal de Transfer Learning es

  • Afinando el modelo . . Es posible ajustar todas las capas de ConvNet, o es posible mantener algunas de las capas anteriores fijas (debido a problemas de sobreajuste) y solo ajustar una parte de la red de nivel superior. Esto está motivado por la observación de que las características anteriores de una ConvNet contienen características más genéricas (p. Ej., Detectores de bordes o detectores de manchas de color) que deberían ser útiles para muchas tareas, pero las capas posteriores de la ConvNet se vuelven progresivamente más específicas a los detalles de las clases. contenido en el conjunto de datos original. En el caso de ImageNet, por ejemplo, que contiene muchas razas de perros, una parte significativa del poder de representación de ConvNet se puede dedicar a características que son específicas para diferenciar entre razas de perros.

Para obtener más detalles, lea el tutorial para aprendizaje profundo de Stanford:

CS231n Redes neuronales convolucionales para reconocimiento visual

Una CNN que ha sido entrenada en un problema relacionado a gran escala como ImageNet puede usarse en otras tareas de reconocimiento visual sin la necesidad de entrenar las primeras capas. Esas capas fijas son detectores de características fijas.

Las capas superiores se pueden ajustar para que coincida con el problema actual en cuestión, esto se denomina aprendizaje de transferencia porque el sistema está utilizando una CNN que se entrenó en un problema diferente pero correlacionado. Esto normalmente se hace para acelerar el aprendizaje y reducir la necesidad de conjuntos de datos de entrenamiento muy grandes.

Mientras transfiera el aprendizaje en senarios relacionados, la CNN se adaptará muy bien. Esto se debe a que en el reconocimiento visual u otros estímulos naturales las señales son compositivas, es decir, están formadas por señales primitivas o básicas. Las primeras capas de cualquier convNet aprenderán casi las mismas características “básicas” como las características de borde, color o degradado para las tareas de reconocimiento visual.

Solo las características de nivel superior tienden a ser específicas de la clase, es por eso que al usar una red pre-entrenada es importante volver a entrenar algunas de las capas superiores o, en algunos casos, toda la CNN puede repararse y, por lo tanto, puede actuar como un detector de características para cualquier clasificador que se agregue al backend.

Espero que esto ayude.