Cómo agregar características que no son de imagen a lo largo de las imágenes laterales como entrada de CNN


14

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!


podría modelar la distribución de unión entre características adicionales e imágenes a través de algún modelo generativo como GAN, VAE. entonces podría obtener las variables latentes y usarlas con un criterio supervisado
Fadi Bakoura

Estoy en una situación similar yo mismo. Estoy usando una pila de imágenes del cielo durante los últimos 15 minutos para tratar de predecir la salida de paneles solares cerca de la cámara 15 minutos en el futuro. Recientemente decidí poner en juego varias características climáticas (una para cada imagen como en su caso). Su primera sugerencia funcionó mucho mejor que la segunda (de agregar directamente características no gráficas a la capa densa). Para ser precisos, la segunda sugerencia condujo a problemas con la normalización. Descubrí que por alguna razón aún no puedo explicarlo, la capa Batchnorm no pudo normalizar el fea gráfico
Vignesh Venugopal

@VigneshVenugopal por favor mencioneme en los comentarios, de lo contrario no puedo ser notificado ¿Cuál es tu pregunta? :)
Medios

¿Cómo puedo concatenar la velocidad, el acelerador y el ángulo de dirección a mis redes? ¿Podría explicar acerca de denso cuántos densa agregan? ¿De qué depende?
Nasrinzaghari

Respuestas:


10

Mi solución es como tu primera recomendación, pero con ligeros cambios.

  1. Construya sus capas convolucionales y apílelas hasta la capa plana. Esta red debe alimentarse con los datos de la imagen.
  2. Planifica tus mapas de activación
  3. Construya una red totalmente conectada con el número deseado de neuronas y capas.
  4. Concatene las salidas de la capa aplanada de la red convolucional y la red totalmente conectada.
  5. agregue algunas capas densas y conéctelas a la última capa que representa sus clases.

Puede usar funciones de costo habituales para esta arquitectura.


En Keras, ¿puedes hacerlo con Concatenate()capas?
Leevo

Si. Debes concatenarlos para ponerlos uno al lado del otro.
Media

¿Debo usar Concatenate()o concatenate()capas? No puedo notar la diferencia
Leevo

Depende de la forma en que desee crear su red. Por cierto, puedes ver la lista de argumentos de cada uno. Difieren. También puede echar un vistazo aquí .
Media
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.