Estoy entrenando una red neuronal convolucional para clasificar imágenes en condiciones de niebla (3 clases). Sin embargo, para cada una de aproximadamente 150,000 imágenes también tengo cuatro variables meteorológicas disponibles que podrían ayudar a predecir las clases de las imágenes. Me preguntaba cómo podría agregar las variables meteorológicas (por ejemplo, temperatura, velocidad del viento) a la estructura CNN existente para que pueda ayudar en la clasificación.
Una forma en la que ya puedo pensar es crear otra red neuronal de alimentación directa (pequeña) junto con la CNN y luego concatenar las salidas de las capas de CNN y las capas ocultas de la red neuronal sin imagen entre sí en la capa densa.
La segunda forma en que se me ocurre es simplemente contactar estas características con la capa densa. Sin embargo, en este caso, las variables sin imagen (creo) solo podrán hacer predicciones lineales.
¿Hay alguna otra (mejor) forma en que las características que no son de imagen podrían incluirse en el modelo? ¿Y cuál sería el método aconsejable teniendo en cuenta la cantidad de datos que tengo?
Otra pregunta que tengo es si debo descongelar o no las capas convolucionales mientras entreno con estas características sin imagen. Estas capas de un Resnet-18 (que se inicializaron como pre-entrenadas en ImageNet) ya se han ajustado utilizando las imágenes. Supongo que debería mantenerlos congelados y solo descongelar la capa densa, ya que solo aquí las características que no son de imagen entran en contacto con las características de la imagen (no antes en la CNN). Si me equivoco en esto, ¡dilo!
Respuestas:
Mi solución es como tu primera recomendación, pero con ligeros cambios.
Puede usar funciones de costo habituales para esta arquitectura.
fuente
Concatenate()
capas?Concatenate()
oconcatenate()
capas? No puedo notar la diferencia