Estou treinando uma rede neural convolucional para classificar imagens em condições de neblina (3 aulas). No entanto, para cada uma das cerca de 150.000 imagens, também tenho quatro variáveis meteorológicas disponíveis que podem ajudar a prever as classes das imagens. Fiquei imaginando como poderia adicionar as variáveis meteorológicas (por exemplo, temperatura, velocidade do vento) à estrutura existente da CNN, para que ela pudesse ajudar na classificação.
Uma maneira em que eu já consigo pensar é em criar outra (pequena) rede neural de avanço ao lado da CNN e concatenar as saídas das camadas da CNN e as camadas ocultas da rede neural sem imagem entre si na camada densa.
A segunda maneira em que pude pensar é apenas entrar em contato com esses recursos na camada densa. No entanto, neste caso, as variáveis que não são de imagem (acho) só serão capazes de fazer previsões lineares.
Existem outras (melhores) maneiras pelas quais os recursos que não são de imagem podem ser incluídos no modelo? E qual seria o método aconselhável considerando a quantidade de dados que tenho?
Outra pergunta que tenho é se devo descongelar as camadas convolucionais enquanto estiver treinando com esses recursos que não são de imagem? Essas camadas de um Resnet-18 (que foram inicializadas como pré-treinadas no ImageNet) já foram ajustadas usando as imagens. Meu palpite é que eu devo mantê-los congelados e descongelar apenas a camada densa, pois é somente aqui que os recursos que não são de imagem entram em contato com os recursos de imagem (não antes na CNN). Se eu estiver errado, por favor, diga-o!
Respostas:
Minha solução é como sua primeira recomendação, mas com pequenas alterações.
Você pode usar as funções de custo habituais para essa arquitetura.
fonte
Concatenate()
camadas?Concatenate()
ouconcatenate()
camadas? Eu não posso dizer a diferença