Bagaimana cara menambahkan fitur non-gambar di sepanjang gambar samping sebagai input dari CNN

14

Saya melatih jaringan saraf convolutional untuk mengklasifikasikan gambar pada kondisi kabut (3 kelas). Namun, untuk masing-masing sekitar 150.000 gambar saya juga memiliki empat variabel meteorologis yang tersedia yang dapat membantu dalam memprediksi kelas-kelas gambar. Saya bertanya-tanya bagaimana saya bisa menambahkan variabel meteorologi (misalnya suhu, kecepatan angin) ke struktur CNN yang ada sehingga dapat membantu dalam klasifikasi.

Salah satu cara yang sudah bisa saya pikirkan adalah membuat jaring neural feedforward (kecil) yang lain di samping CNN dan kemudian menggabungkan output dari lapisan CNN dan lapisan tersembunyi dari jaring neural non-gambar satu sama lain di lapisan padat.

Cara kedua yang bisa saya pikirkan adalah hanya menghubungi fitur-fitur ini ke lapisan padat. Namun, dalam hal ini, variabel non-gambar akan (saya pikir) hanya dapat membuat prediksi linier.

Apakah ada cara lain (lebih baik) agar fitur-fitur non-gambar dapat dimasukkan dalam model? Dan apa yang akan menjadi metode yang disarankan mengingat jumlah data yang saya miliki?

Pertanyaan lain yang saya miliki adalah apakah saya harus mencairkan lapisan convolutional sambil berlatih dengan fitur-fitur non-gambar ini? Lapisan-lapisan Resnet-18 (yang diinisialisasi sebagai pra-dilatih di ImageNet) telah disesuaikan dengan menggunakan gambar. Dugaan saya adalah bahwa saya harus menjaga mereka tetap beku dan hanya mencairkan lapisan padat karena hanya di sini fitur non-gambar masuk ke 'kontak' dengan fitur-fitur gambar (tidak lebih awal di CNN). Jika saya salah dalam hal ini, katakan saja!

Tim
sumber
Anda dapat memodelkan distribusi gabungan antara additional_features dan gambar melalui beberapa model generatif seperti GAN, VAE. maka Anda bisa mendapatkan variabel laten dan menggunakannya dengan kriteria terawasi
Fadi Bakoura
Saya sendiri dalam situasi yang sama. Saya menggunakan tumpukan gambar langit selama 15 menit terakhir untuk mencoba dan memprediksi output panel surya yang dekat dengan kamera 15 menit ke depan. Baru-baru ini saya memutuskan untuk memainkan beberapa fitur cuaca (satu untuk setiap gambar seperti pada kasus Anda). Saran pertama Anda bekerja jauh lebih baik daripada saran kedua (untuk langsung menambahkan fitur non-grafis ke lapisan padat). Lebih tepatnya, saran kedua menyebabkan masalah dengan normalisasi. Saya menemukan bahwa untuk beberapa alasan saya belum bisa menjelaskan, lapisan Batchnorm tidak dapat menormalkan fitur grafis
Vignesh Venugopal
@ VigneshVenugopal tolong sebutkan saya di komentar kalau tidak saya tidak dapat diberitahu. Apa pertanyaanmu? :)
Media
Bagaimana saya bisa menggabungkan kecepatan & throttle & sudut kemudi ke jaringan saya? Bisakah Anda jelaskan tentang padat berapa banyak menambahkan padat? Apa yang tergantung padanya?
Nasrinzaghari

Jawaban:

10

Solusi saya adalah seperti rekomendasi pertama Anda, tetapi dengan sedikit perubahan.

  1. Bangun lapisan konvolusional Anda dan susun hingga lapisan rata. Jaringan ini harus diumpankan dengan data gambar.
  2. Rata peta aktivasi Anda
  3. Bangun jaringan yang terhubung sepenuhnya dengan jumlah neuron dan lapisan yang diinginkan.
  4. Menggabungkan output dari lapisan rata dari jaring konvolusional dan jaring yang terhubung penuh.
  5. tambahkan beberapa lapisan padat dan hubungkan ke lapisan terakhir yang mewakili kelas Anda.

Anda dapat menggunakan fungsi biaya adat untuk arsitektur ini.

Media
sumber
Dalam Keras, dapatkah Anda melakukannya dengan Concatenate()layer?
Leevo
Iya. Anda harus menyatukan mereka untuk menempatkan mereka berdampingan.
Media
Haruskah saya menggunakan Concatenate()atau concatenate()lapisan? Saya tidak tahu bedanya
Leevo
Itu tergantung pada cara Anda ingin membuat jaringan Anda. Omong-omong, Anda dapat melihat daftar argumen masing-masing. Mereka berbeda. Anda mungkin juga ingin melihatnya di sini .
Media