¿Cuáles son los métodos actuales o estándar de combinación de datos estructurados y no estructurados en redes neuronales convolucionales?

Puede incrustar parámetros como canales adicionales ( concatenar ) O puede agregar las incrustaciones a sus mapas de características.

La primera opción es común cuando diseña GAN y la segunda se usó para condicionar WaveNet en la identidad del orador.

Deberá tener un vector de incrustación de tamaño N (en realidad 1x1xN para datos 2D) que se compartiría en todos los puntos espaciales para el acondicionamiento global. Entonces solo tienes que repetirlo y agregar / concatenar.

Entonces tendrás que descubrir:

  1. Donde deberías incrustarlo. Entre las primeras capas requeriría más memoria de GPU para almacenar tensores más grandes.
  2. Donde exactamente debe insertarlo: antes o después de la activación / agrupación / convolución.
  3. Incrustación de tamaño de vector. Debería ser comparable al número original de canales si construye GAN, o, obviamente, lo mismo si va con la adición.

El trabajo de vanguardia que he visto generalmente combina datos estructurados y no estructurados en las capas completamente conectadas. En Show Attend & Tell, los autores están haciendo la generación de subtítulos, por lo que generar la palabra t del subtítulo implica naturalmente la palabra (t-1) y la imagen que creo que aceptará son datos estructurados y no estructurados, respectivamente. Utilizan LSTM que generan la siguiente palabra de un subtítulo en función de una suma ponderada (según el modelo de atención espacial) de mapas de características de CNN espacialmente significativos y una codificación de 1 de k (k es el tamaño del vocabulario ) de la palabra actual en el título. Más específicamente, esta función es una función de activación aplicada a la suma de las incorporaciones de las características visuales, características textuales y estado oculto. Creo que estará de acuerdo cuenta como una capa totalmente conectada, a pesar de que no es parte de la CNN per se.

Según mi conocimiento y nivel de google-scholar-foo, no hay documentos cuya contribución principal sea presentar una forma más sofisticada de combinar datos estructurados y no estructurados. Otra idea semi obvia es usar un modelo de mezcla en el que si hay k valores distintos que el valor estructurado puede tomar, ya sea a través del significado intrínseco o de la agrupación, usted ajusta un modelo para cada uno y los combina de forma bayesiana. Esto no mejoraría el problema de recuento de parámetros que mencionó, porque ahora tiene k CNN, pero los modelos de mezcla tienen algunas buenas propiedades que podría obtener si tiene suficientes datos para cada modelo.

Te he estado siguiendo en quora últimamente, y tienes algunas respuestas interesantes sobre ml y matemáticas, por lo que tal vez seas la persona que popularice un buen enfoque para combinar datos estructurados y no estructurados.