Bagian generator GAN belajar membuat data palsu dengan menggabungkan masukan dari pembeda. Hal ini belajar untuk membuat discriminator mengklasifikasikan outputnya sebagai nyata.
Pelatihan generator memerlukan integrasi yang lebih erat antara generator dan discriminator daripada yang diperlukan untuk pelatihan diskriminator. Bagian GAN yang melatih generator meliputi:
- input acak
- jaringan generator, yang mengubah input acak menjadi instance data
- jaringan pembeda, yang mengklasifikasikan data yang dihasilkan
- output discriminator
- kerugian generator, yang mengganjar generator karena gagal menipu diskriminator
Gambar 1: Propagasi mundur dalam pelatihan generator.
Input Acak
Jaringan neural memerlukan beberapa bentuk input. Biasanya, kita memasukkan data yang ingin digunakan untuk melakukan sesuatu, seperti instance yang ingin kami klasifikasikan atau buat prediksinya. Namun, apa yang kita gunakan sebagai input untuk jaringan yang menghasilkan instance data yang benar-benar baru?
Dalam bentuknya yang paling dasar, GAN menggunakan derau acak sebagai inputnya. Generator kemudian mengubah derau ini menjadi output yang bermakna. Dengan menggunakan derau, kita dapat memperoleh GAN untuk menghasilkan berbagai macam data, dengan mengambil sampel dari berbagai tempat dalam distribusi target.
Eksperimen menunjukkan bahwa distribusi derau tidak terlalu penting, sehingga kita dapat memilih sesuatu yang mudah diambil sampelnya, seperti distribusi yang seragam. Untuk memudahkan, ruang tempat pengambilan sampel derau biasanya memiliki dimensi yang lebih kecil daripada dimensi ruang output.
Menggunakan Discriminator untuk Melatih Generator
Untuk melatih jaringan neural, kami mengubah bobot net untuk mengurangi error atau hilangnya output-nya. Namun, di GAN kami, generator tidak terhubung langsung ke kerugian yang ingin kami pengaruhi. Generator memasukkan feed bersih, dan discriminator menghasilkan output yang mencoba kita pengaruhi. Kerugian generator menghukum generator karena menghasilkan sampel yang diklasifikasikan oleh jaringan diskriminator sebagai palsu.
Bagian jaringan tambahan ini harus disertakan dalam propagasi mundur. Propagasi balik menyesuaikan setiap bobot ke arah yang tepat dengan menghitung dampak bobot pada output — bagaimana output akan berubah jika Anda mengubah bobot. Namun, dampak bobot generator bergantung pada dampak bobot diskriminator yang dimasukkan feed tersebut. Jadi, propagasi mundur dimulai dari output dan mengalir kembali melalui discriminator ke generator.
Pada saat yang sama, kami tidak ingin diskriminator berubah selama pelatihan generator. Mencoba mencapai target yang bergerak akan membuat masalah yang lebih sulit bagi generator.
Jadi, kita melatih generator dengan prosedur berikut:
- Contoh kebisingan acak.
- Menghasilkan output generator dari sampel derau acak.
- Klasifikasikan "Real" atau "Palsu" untuk output generator.
- Hitung kerugian dari klasifikasi pembeda.
- Melakukan propagasi mundur melalui discriminator dan generator untuk mendapatkan gradien.
- Menggunakan gradien untuk mengubah bobot generator saja.
Ini adalah salah satu iterasi pelatihan generator. Di bagian berikutnya, kita akan melihat cara menyusun latihan generator dan diskriminator.