Saya berurusan dengan masalah di mana saya tidak dapat menemukan dataset yang cukup (gambar) untuk dimasukkan ke dalam jaringan saraf saya untuk pelatihan.
Saya sangat terinspirasi oleh makalah Generative Adversarial Text to Image Synthesis yang diterbitkan oleh Scott Reed et al. pada Jaringan Adversarial Generatif.
Saya ingin tahu bahwa, dapatkah saya menggunakan dataset kecil yang tersedia sebagai input ke model GAN dan menghasilkan dataset yang jauh lebih besar untuk menangani model jaringan yang lebih dalam?
Apakah itu cukup baik?
deep-learning
gan
Alwyn Mathew
sumber
sumber
Jawaban:
Ini tidak mungkin menambah banyak di luar upaya pengumpulan data langsung Anda.
Kualitas keluaran GAN saat ini (per 2017) tidak akan cukup tinggi. Gambar yang dihasilkan oleh GAN biasanya kecil dan dapat memiliki detail yang tidak biasa / ambigu dan distorsi aneh. Dalam kertas Anda terhubung, gambar yang dihasilkan oleh sistem dari sebuah kalimat memiliki blok dipercaya warna diberikan materi pelajaran, tapi tanpa kalimat priming Anda apa yang diharapkan sebagian besar dari mereka tidak dikenali sebagai setiap subjek tertentu.
GAN dengan tujuan yang kurang ambisius daripada menghasilkan gambar dari kalimat (yang meskipun ada kritik di atas, IMO yang benar-benar luar biasa) harus menghasilkan gambar yang lebih dekat dengan foto yang realistis. Tetapi ruang lingkup mereka akan lebih sedikit dan mungkin tidak termasuk jenis gambar yang Anda inginkan. Juga, biasanya ukuran keluarannya kecil, misalnya 64x64 atau 128x128 *, dan masih ada cukup distorsi dan ambiguitas sehingga foto-foto ground ground asli akan jauh lebih disukai.
GAN sendiri dibatasi oleh perpustakaan pelatihan yang tersedia - GAN tidak akan berhasil jika Anda mencoba untuk menghasilkan gambar di luar ruang lingkup data pelatihannya. Hasil yang ditunjukkan dalam makalah penelitian tentu saja fokus pada domain yang disediakan oleh data pelatihan. Tetapi Anda tidak bisa hanya memasukkan kalimat apa pun ke dalam model ini dan mengharapkan hasil yang akan berguna di tempat lain.
Jika Anda menemukan GAN yang telah dilatih tentang kumpulan data yang sesuai untuk masalah Anda, maka kemungkinan besar Anda lebih baik mencoba untuk sumber data yang sama secara langsung untuk proyek Anda.
Jika Anda menghadapi masalah dengan data ground truth yang terbatas, maka mungkin pendekatan yang lebih baik untuk menggunakan GAN adalah dengan menggunakan classifier pra-terlatih seperti VGG-19 atau Inception v5, ganti beberapa layer terakhir yang terkoneksi penuh, dan fine tune di data Anda. Berikut adalah contoh melakukan hal itu menggunakan Keras library di Python - contoh lain dapat ditemukan dengan pencarian seperti "fine tune CNN image classifier".
* GAN canggih telah menjadi lebih baik sejak saya memposting jawaban ini. Sebuah tim peneliti di Nvidia telah sukses luar biasa dalam menciptakan gambar realistis-foto 1024x1024 . Namun, ini tidak mengubah poin lain dalam jawaban saya. GAN bukan sumber gambar yang dapat diandalkan untuk tugas klasifikasi gambar, kecuali mungkin untuk sub-tugas dari apa pun yang telah dilatih oleh GAN dan mampu menghasilkan secara kondisional (atau mungkin lebih sepele, untuk menyediakan data sumber untuk kategori "lainnya" di pengklasifikasi).
sumber
Saya memiliki masalah yang sama persis dengan DNN yang saat ini saya bangun. Mengambil set data saya dan mensintesis data baru dengan GAN sepertinya ide bagus. Tetapi GAN itu sendiri hanya akan belajar untuk menghasilkan gambar dengan varian gambar yang sama dan standar deviasi seperti yang dipelajari dalam set pelatihan. Jadi data yang baru Anda buat hanya akan mewakili lebih banyak permutasi dari distribusi sampel yang sama. Ini akan membantu NN Anda melatih dengan lebih baik pada distribusi yang sama, oleh karena itu dapat menyebabkan pelatihan yang lebih baik.
sumber
Dari sudut pandang teoretis semata, ini tidak mungkin.
Setiap dataset pelatihan yang diberikan mewakili sejumlah informasi tentang struktur ruang tertentu. Jika Anda melatih GAN pada dataset ini, itu hanya akan pernah belajar dari informasi yang diwakili oleh dataset itu. Data yang disintesis oleh GAN tidak pernah dapat berasal dari ruang yang lebih besar daripada data asli, karena alasan sederhana: Dari mana informasi ini seharusnya berasal? Jika itu tidak ada dalam dataset asli, maka itu juga tidak bisa dalam data yang disintesis dari GAN.
Jika Anda melatih jaringan saraf untuk konvergensi pada dataset, jaringan saraf itu akan mempelajari struktur apa pun yang terkandung dalam dataset. Setiap data pelatihan buatan yang disintesis oleh GAN tidak akan menambah informasi baru. Gagasan itu harus lurus ke depan.
sumber
Sebenarnya dimungkinkan, untuk menambah Dataset kecil dengan GAN untuk meningkatkannya dan juga akan meningkatkan Kinerja Jaringan Klasifikasi seperti yang Anda baca di sini https://arxiv.org/pdf/1803.01229.pdf . GAN mampu belajar misalnya bentuk menengah yang tidak terlibat dalam set tanggal asli tetapi masih valid. Jadi gambar sintetis memang dapat meningkatkan ukuran dataset dan meningkatkan akurasi klasifikasi CNN.
sumber