Pers ulasan teknologi AI Leifeng.com, penulis artikel ini adalah Saya suka roti kukus, aslinya diterbitkan di Zhihu.
Dalam proses belajar GAN beberapa waktu lalu, saya menemukan bahwa sebagian besar artikel review GAN saat ini adalah artikel Ian Goodfellow atau Wang Feiyue dari Institute of Automation pada tahun 2016. Namun di bidang deep learning dan GAN, progresnya dihitung dalam hitungan bulan, dan saya rasa kedua review itu agak lama. Baru-baru ini saya menemukan makalah tentang review GAN, lebih dari 40 halaman, memperkenalkan semua aspek GAN, jadi saya mempelajari dan mengatur catatan sebagai berikut. Sebagian besar konten dalam artikel diringkas berdasarkan apa yang telah Anda pelajari, dan poin apa pun yang tidak pantas dipersilakan untuk ditunjukkan. Selain itu, artikel ini mengacu pada banyak materi blog, dan tautan referensi telah diberikan. Jika ada pelanggaran, harap hapus melalui pesan pribadi. Katalog artikel adalah sebagai berikut:
1. Pengenalan dasar GAN
Sebagai model generatif yang sangat baik, Generative Adversarial Networks (GAN) telah meledakkan banyak aplikasi pembuatan gambar yang menarik. Dibandingkan dengan model generatif lainnya, GAN memiliki dua karakteristik utama:
-
Jangan mengandalkan asumsi sebelumnya. Banyak metode tradisional berasumsi bahwa data mengikuti distribusi tertentu, dan kemudian menggunakan kemungkinan maksimum untuk memperkirakan distribusi data.
-
Cara menghasilkan sampel seperti nyata sangat sederhana. Cara GAN menghasilkan sampel seperti nyata adalah melalui propagasi maju generator, sedangkan metode pengambilan sampel tradisional sangat rumit. Siswa yang tertarik dapat merujuk ke berbagai metode pengambilan sampel di buku "Machine Learning" oleh Zhou Zhihua selanjutnya Pengantar.
Di bawah ini, kami akan memperkenalkan dua poin di atas.
1.1 Konsep dasar GAN
GAN (Generative Adversarial Networks) dapat dilihat dari namanya, adalah sejenis jaringan generatif dan adversarial. Untuk lebih spesifik, itu adalah mempelajari model generatif distribusi data melalui konfrontasi. Yang disebut konfrontasi mengacu pada konfrontasi antara jaringan generasi dan jaringan diskriminasi. Jaringan penghasil menghasilkan sampel realistis sebanyak mungkin, dan jaringan pembeda mencoba menentukan apakah sampel tersebut adalah sampel nyata atau sampel palsu yang dibuat. Diagram skematiknya adalah sebagai berikut:
Variabel tersembunyi z (biasanya gangguan acak yang mengikuti distribusi Gaussian) menghasilkan Xfake melalui Generator, dan diskriminator bertanggung jawab untuk menentukan apakah data masukan adalah sampel Xfake yang dihasilkan atau sampel nyata Xreal. Fungsi tujuan yang dioptimalkan adalah sebagai berikut:
Untuk diskriminator D, ini adalah masalah dua klasifikasi, dan V (D, G) adalah kerugian cross-entropy yang umum dalam masalah dua klasifikasi. Untuk generator G, untuk menipu D sebanyak mungkin, perlu untuk memaksimalkan probabilitas diskriminatif D (G (z)) dari sampel yang dihasilkan, yaitu meminimalkan
(Catatan:
Satu item tidak ada hubungannya dengan generator G, jadi bisa diabaikan. )
Dalam pelatihan aktual, generator dan diskriminator mengadopsi pelatihan alternatif, yaitu melatih D terlebih dahulu, kemudian melatih G, dan melakukan reciprocating terus menerus. Perlu dicatat bahwa untuk generator, ini meminimalkan
, Yang meminimalkan nilai maksimum V (D, G). Untuk memastikan bahwa V (D, G) mencapai nilai maksimum, kami biasanya melatih diskriminator untuk iterasi k, dan kemudian mengiterasi generator 1 kali (tetapi dalam praktiknya, ditemukan bahwa k biasanya membutuhkan 1). Ketika generator G ditetapkan, kita dapat menurunkan V (D, G) untuk menemukan diskriminator optimal D * (x):
Mengganti diskriminator optimal ke dalam fungsi obyektif di atas, selanjutnya dapat ditemukan bahwa di bawah diskriminator optimal, fungsi objektif generator setara dengan mengoptimalkan divergensi JS pdata (x) dan pg (x) (JSD, Jenson Shannon Divergence) .
Dapat dibuktikan bahwa ketika kapasitas G dan D mencukupi, maka model tersebut akan konvergen dan keduanya akan mencapai kesetimbangan Nash. Saat ini, pdata (x) = pg (x), apakah diskriminator untuk sampel yang diambil sampelnya dalam pdata (x) atau pg (x), probabilitas prediksinya adalah 0,5, yaitu sampel yang dihasilkan tidak dapat dibedakan dari sampel sebenarnya Titik.
1.2 Fungsi tujuan
Kami telah menyebutkan sebelumnya bahwa fungsi tujuan GAN adalah meminimalkan divergensi JS dari dua distribusi. Faktanya, ada banyak cara untuk mengukur jarak antara dua distribusi, dan divergensi JS hanyalah salah satunya. Jika kita mendefinisikan metode pengukuran jarak yang berbeda, kita bisa mendapatkan fungsi tujuan yang berbeda. Banyak peningkatan pada stabilitas pelatihan GAN, seperti EBGAN, LSGAN, dll., Menentukan ukuran jarak yang berbeda antar distribusi.
1.2.1 divergensi f
f-divergence menggunakan rumus berikut untuk menentukan jarak antara dua distribusi:
Dalam rumus di atas, f adalah fungsi cembung, dan f (1) = 0. Dengan menggunakan fungsi f (Generator) yang berbeda, Anda bisa mendapatkan sasaran pengoptimalan yang berbeda. detailnya sebagai berikut:
Perlu dicatat bahwa metode pengukuran divergensi tidak memiliki kesimetrian yaitu
dengan
Tidak sama (Tegasnya, metode pengukuran jarak harus memiliki simetri, jadi divergensi bukanlah metode pengukuran jarak, tetapi di sini kita tidak sengaja memperhatikan poin ini, langsung menggunakan divergensi sebagai metode pengukuran jarak, dan hal yang sama berlaku di bawah ini ).
LSGAN
Seperti disebutkan di atas, LSGAN berada dalam f-divergence
Keadaan khusus pada saat itu. Secara spesifik Kerugian LSGAN adalah sebagai berikut:
Dalam karya aslinya, a = c = 1, dan b = 0. LSGAN memiliki dua keunggulan utama:
-
Pelatihan stabil: memecahkan masalah saturasi gradien dalam proses pelatihan GAN tradisional
-
Meningkatkan kualitas pembuatan: dengan menghukum sampel yang dihasilkan yang jauh dari batas keputusan diskriminator
Untuk poin pertama, pelatihan stabil, Anda dapat melihat gambar:
Sisi kiri gambar di atas adalah diagram perbandingan input dan output ketika GAN tradisional menggunakan entropi silang sigmoid sebagai kerugian. Sisi kanan gambar di atas adalah diagram perbandingan input dan output ketika LSGAN menggunakan kerugian kuadrat terkecil. Terlihat pada gambar kiri, ketika input relatif besar, gradiennya 0, artinya input kehilangan entropi silang rentan terhadap saturasi gradien. Kerugian kuadrat terkecil di sebelah kanan tidak terjadi.
Untuk poin kedua, tingkatkan kualitas produksi. Ini juga dijelaskan secara rinci dalam teks aslinya. Khususnya: Untuk beberapa sampel yang diklasifikasikan dengan benar oleh diskriminator, itu tidak berkontribusi pada gradien. Tetapi haruskah sampel yang diklasifikasikan dengan benar oleh diskriminator menjadi sampel yang sangat dekat dengan distribusi data yang sebenarnya? Jelas belum tentu.
Pertimbangkan situasi ideal berikut, GAN yang terlatih, pdata distribusi data nyata dan distribusi data yang dihasilkan pg benar-benar bertepatan, permukaan keputusan diskriminator melewati titik data nyata, jadi, pada gilirannya, kami menggunakan titik sampel untuk mengukur generasi jarak dari permukaan keputusan Kualitas sampel, semakin dekat sampel ke permukaan pengambilan keputusan, semakin baik pelatihan GAN.
Pada Gambar b di atas, beberapa titik yang jauh dari bidang keputusan diklasifikasikan dengan benar, tetapi ini bukan sampel yang dihasilkan dengan baik. GAN tradisional biasanya mengabaikannya. Untuk LSGAN, karena kerugian kuadrat terkecil digunakan untuk menghitung jarak dari permukaan keputusan ke titik sampel, seperti yang ditunjukkan pada Gambar c, titik yang lebih jauh dari permukaan keputusan dapat "ditarik" kembali, yaitu, titik yang lebih jauh dari data sebenarnya "ditarik" "kembali.
1.2.2 Metrik probalitas integral (IPM)
PHT mendefinisikan keluarga fungsi evaluasi f, yang digunakan untuk mengukur jarak antara dua distribusi. Di ruang yang padat
, Tentukan p (x) sebagai ukuran probabilitas pada x. Kemudian PHT antara dua distribusi pdata dan pg dapat didefinisikan sebagai rumus berikut:
Mirip dengan f-divergence, fungsi f yang berbeda juga dapat menentukan rangkaian tujuan pengoptimalan yang berbeda. Contoh tipikal adalah WGAN, Fisher GAN dan sebagainya. Mari perkenalkan WGAN secara singkat.
WGAN
WGAN mengusulkan metode pengukuran jarak baru-jarak penggerak bumi (EM, jarak penggerak bumi), juga disebut jarak Wasserstein. Untuk pengenalan jarak Wasserstein, silakan merujuk ke:
Saya suka roti kukus: jarak Wassertein vernakular
Jarak Wasserstein secara spesifik didefinisikan sebagai berikut:
Merepresentasikan sekumpulan distribusi gabungan. Distribusi marginal dari setiap distribusi r dalam kumpulan distribusi gabungan ini adalah pdata (x) dan pg (x).
Secara intuitif, fungsi distribusi probabilitas (PDF) dapat dipahami sebagai kualitas variabel acak di setiap titik, jadi W (pdata, pg) mewakili jumlah minimum pekerjaan yang diperlukan untuk memindahkan distribusi probabilitas pdata (x) ke pg (x).
WGAN juga dapat dijelaskan dengan teori transmisi optimal Generator WGAN setara dengan menyelesaikan pemetaan transmisi optimal, dan diskriminator setara dengan menghitung jarak Wasserstein, yang merupakan total biaya transmisi optimal. Derivasi teoritis dan penjelasan WGAN lebih rumit, tetapi implementasi kodenya sangat sederhana. Secara khusus:
-
Hapus sigmoid di lapisan terakhir diskriminator
-
Hilangnya generator dan diskriminator tidak mengambil log
-
Setiap kali parameter diskriminator diperbarui, nilai absolutnya dipotong tidak lebih dari konstanta tetap c
Poin ketiga yang disebutkan di atas, dalam karya WGAN selanjutnya, WGAN-GP, menggantikan pemotongan gradien dengan penalti gradien.
1.2.3 Perbandingan f-divergence dan IPM
Ada dua masalah dengan f-divergence: yang pertama adalah ketika dimensi ruang data meningkat
, F-divergence akan sangat sulit dihitung. Yang kedua adalah bahwa set dukungan dari dua distribusi biasanya tidak selaras, yang akan menyebabkan nilai divergensi mendekati tak terhingga.
IPM tidak dipengaruhi oleh dimensi data, dan secara seragam menyatu dengan jarak antara dua distribusi pdata dan pg. Dan bahkan jika dua set dukungan terdistribusi tidak tumpang tindih, keduanya tidak akan menyimpang.
1.2.4 Fungsi tujuan tambahan
Dalam banyak aplikasi GAN, Kerugian tambahan akan digunakan untuk pelatihan yang stabil atau untuk tujuan lain. Misalnya, pada terjemahan gambar, restorasi gambar, dan resolusi super, generator akan menambahkan gambar target sebagai informasi pengawasan. EBGAN menganggap diskriminator GAN sebagai fungsi energi, dan menambah kesalahan rekonstruksi pada diskriminator. CGAN menggunakan informasi label kategori sebagai informasi pengawasan.
1.3 Model generatif umum lainnya
1.3.1 Model autoregressive: pixelRNN dan pixelCNN
Model autoregresif secara eksplisit memodelkan distribusi probabilitas p_ {data} (x) dari data gambar, dan mengoptimalkan model menggunakan estimasi kemungkinan maksimum. detailnya sebagai berikut:
Rumus di atas mudah dimengerti, diberikan
Dalam kondisi tersebut, probabilitas semua p (xi) dikalikan dengan distribusi data citra. Jika Anda menggunakan RNN untuk memodelkan hubungan yang disebutkan di atas, itu adalah pixelRNN. Jika menggunakan CNN, itu adalah pixelCNN. detailnya sebagai berikut:
pixelRNN
pixelCNN
Tentunya, apakah itu pixelCNN atau pixelRNN, karena nilai piksel dihasilkan satu per satu, kecepatannya akan sangat lambat. WaveNet, yang populer di bidang pidato, adalah model autoregresif yang khas.
1.3.2 VAE
PixelCNN / RNN mendefinisikan fungsi kepadatan yang mudah ditangani, kita dapat langsung mengoptimalkan kemungkinan data pelatihan; untuk autoencoder variasional, kita akan menentukan fungsi kepadatan yang tidak mudah ditangani, dan memodelkan fungsi kepadatan melalui variabel laten tambahan z . Diagram skema VAE adalah sebagai berikut:
Dalam VAE, sampel nyata X menghitung varians rata-rata melalui jaringan saraf (dengan asumsi variabel laten mematuhi distribusi normal), dan kemudian variabel pengambilan sampel Z diperoleh melalui pengambilan sampel dan direkonstruksi. Baik VAE dan GAN mempelajari pemetaan variabel laten z ke distribusi data nyata. Namun perbedaan dari GAN adalah:
-
Ide GAN relatif kasar, menggunakan diskriminator untuk mengukur jarak antara modul konversi distribusi (yaitu generator) yang dihasilkan distribusi dan distribusi data nyata.
-
VAE tidak begitu intuitif. VAE menyadari pemetaan transformasi distribusi dengan membatasi variabel laten untuk mematuhi distribusi normal standar dan merekonstruksi data.
Perbandingan model generatif
-
Model autoregresif menghasilkan data dengan memodelkan distribusi probabilitas secara eksplisit
-
Baik VAE dan GAN adalah: Asumsikan bahwa variabel tersembunyi z mematuhi distribusi tertentu, dan pelajari pemetaan X = G (z) untuk merealisasikan konversi antara distribusi variabel tersembunyi z dan distribusi data nyata pdata (x).
-
GAN menggunakan diskriminator untuk mengukur pro dan kontra dari pemetaan X = G (z), sedangkan VAE menggunakan divergensi KL dan kesalahan rekonstruksi variabel tersembunyi z dan distribusi normal standar untuk mengukur.
1.4 Struktur model umum GAN
1.4.1 DCGAN
DCGAN mengusulkan untuk menggunakan struktur CNN untuk menstabilkan pelatihan GAN, dan menggunakan trik berikut:
-
Normalisasi Batch
-
Upsampling menggunakan konvusi Transpose
-
Gunakan Leaky ReLu sebagai fungsi aktivasi
Trik di atas berguna untuk menstabilkan pelatihan GAN, dan Anda juga dapat menggunakannya sebagaimana mestinya saat mendesain jaringan GAN Anda sendiri.
1.4.2 Struktur hirarki
GAN selalu memiliki banyak masalah untuk pembuatan gambar beresolusi tinggi. Struktur hierarki GAN dihasilkan lapis demi lapis dan secara bertahap, langkah demi langkah untuk meningkatkan resolusi gambar. Model umum yang menggunakan beberapa pasang GAN termasuk StackGAN dan GoGAN. Menggunakan GAN tunggal, ProgressiveGAN dibuat secara bertahap. Struktur StackGAN dan ProgressiveGAN adalah sebagai berikut:
1.4.3 Struktur pengkodean sendiri
Dalam struktur GAN klasik, jaringan diskriminan biasanya digunakan sebagai model probabilistik untuk membedakan sampel nyata / yang dihasilkan. Dalam struktur autoencoder, pembeda (menggunakan AE sebagai pembeda) biasanya dianggap sebagai fungsi energi. Untuk sampel yang mendekati ruang berjenis data, energinya lebih kecil, begitu juga sebaliknya. Dengan metode pengukuran jarak ini, wajar untuk menggunakan diskriminator untuk memandu pembelajaran generator.
Sebagai diskriminator, mengapa AE dapat digunakan sebagai fungsi energi untuk mengukur jarak sampel yang dihasilkan dari ruang berjenis data? Pertama, mari kita lihat hilangnya AE:
Hilangnya AE adalah kesalahan rekonstruksi. Saat menggunakan AE sebagai diskriminator, jika sampel nyata dimasukkan, kesalahan rekonstruksi akan kecil. Jika sampel yang dihasilkan adalah input, kesalahan rekonstruksi akan menjadi besar. Karena untuk sampel yang dihasilkan, sulit bagi AE untuk mempelajari representasi terkompresi dari suatu gambar (yaitu, sampel yang dihasilkan berada jauh dari ruang bentuk data). Oleh karena itu, kesalahan rekonstruksi VAE adalah wajar sebagai ukuran jarak antara pdata dan pg. GAN tipikal dengan struktur autoencoder meliputi: BEGAN, EBGAN, MAGAN, dll.
1.5 Hambatan pelatihan GAN (Hambatan)
1.5.1 Masalah dalam teori
Diskriminator GAN klasik memiliki dua macam kerugian, yaitu:
-
Saat menggunakan rumus pertama di atas sebagai kerugian: ketika diskriminator mencapai optimal, itu setara dengan meminimalkan divergensi JS antara distribusi yang dihasilkan dan distribusi nyata, karena distribusi yang dihasilkan secara acak sulit untuk memiliki tumpang tindih yang tidak dapat diabaikan dengan distribusi nyata Dan perubahan tiba-tiba dari divergensi JS membuat generator menghadapi masalah gradien menghilang
-
Saat menggunakan rumus kedua di atas sebagai kerugian: Di bawah diskriminator optimal, ini setara dengan tidak hanya meminimalkan divergensi KL antara distribusi yang dihasilkan dan distribusi sebenarnya, tetapi juga memaksimalkan divergensi JS, yang saling bertentangan, menghasilkan gradien Stabil, dan asimetri divergensi KL membuat generator kehilangan keragaman daripada keakuratannya, yang mengarah ke fenomena mode runtuh.
1.5.2 Masalah dalam praktik
GAN memiliki dua masalah dalam praktiknya:
Pertama, Ian Goodfellow, penganjur GAN, telah membuktikan secara teori bahwa GAN dapat mencapai ekuilibrium Nash. Namun, dalam implementasi aktual kami, kami mengoptimalkan dalam ruang parameter, bukan ruang fungsi, yang mengarah ke jaminan teoretis yang tidak valid dalam praktiknya.
Kedua, tujuan optimasi GAN adalah masalah minmax, yaitu
Dengan kata lain, saat mengoptimalkan genset, yang diminimalkan adalah
. Namun, kami optimasi secara iteratif, untuk memastikan bahwa V (G, D) dimaksimalkan, dibutuhkan banyak iterasi yang menghasilkan waktu pelatihan yang lama. Jika kita hanya mengulang diskriminator satu kali, lalu mengiterasi generator satu kali, terus menerus melakukan iterasi. Dengan cara ini, masalah minimax asli dapat dengan mudah menjadi masalah maksmin, tetapi keduanya berbeda, yaitu:
Jika perubahannya adalah masalah minimax, maka iterasinya seperti ini, Generator pertama kali menghasilkan beberapa sampel, kemudian diskriminator memberikan hasil diskriminasi yang salah dan menghukum generator, sehingga generator menyesuaikan distribusi probabilitas yang dihasilkan. Namun, hal ini sering menyebabkan generator menjadi "malas" dan hanya menghasilkan beberapa sampel sederhana dan berulang, yaitu kurangnya keragaman, juga disebut mode collapse.
1.5.3 Teknik untuk menstabilkan pelatihan GAN
Seperti disebutkan di atas, GAN memiliki tiga masalah utama dalam teori dan praktik, yang menyebabkan proses pelatihan yang sangat tidak stabil dan masalah mode collapse. Untuk memperbaiki situasi di atas, Anda dapat menggunakan teknik berikut untuk menstabilkan pelatihan:
-
Pencocokan fitur: Metode ini sangat sederhana, menggunakan fitur dari lapisan diskriminator tertentu untuk menggantikan keluaran dalam GAN Loss asli. Yaitu meminimalkan: jarak antara ciri gambar yang dihasilkan melalui diskriminator dan ciri gambar nyata melalui diskriminator.
-
Penghalusan label: Label dalam pelatihan GAN bukan 0 atau 1, yang membuat keyakinan yang diprediksi oleh diskriminator cenderung lebih tinggi. Menggunakan penghalusan label dapat mengatasi masalah ini. Secara khusus, ganti label 1 dengan nomor acak antara 0.8 dan 1.0.
-
Normalisasi spektral: WGAN dan Tingkatkan WGAN membatasi proses pengoptimalan dengan memberlakukan kondisi Lipschitz Normalisasi spektral memberlakukan batasan Lipschitz pada setiap lapisan diskriminator, tetapi normalisasi spektral lebih efisien daripada Tingkatkan WGAN. beberapa.
-
PatchGAN: Tepatnya, PatchGAN tidak digunakan untuk pelatihan yang stabil, tetapi teknologi ini banyak digunakan dalam penerjemahan gambar. PatchGAN setara dengan membedakan setiap patch kecil dari gambar, yang dapat membuat generator menghasilkan tepi yang lebih tajam dan lebih jelas. Pendekatan spesifiknya adalah sebagai berikut: Misalkan gambar 256x256 dimasukkan ke diskriminator, dan outputnya adalah peta kepercayaan 4x4. Setiap nilai piksel dalam peta kepercayaan mewakili keyakinan bahwa patch saat ini adalah gambar nyata, yaitu PatchGAN. Ukuran patch gambar saat ini adalah ukuran kolom reseptif, dan akhirnya hilangnya semua patch dirata-rata sebagai kerugian akhir.
1.6 Solusi runtuhnya mode GAN
1.6.1 Metode yang ditingkatkan untuk fungsi tujuan
Untuk menghindari masalah mode yang berpindah-pindah karena optimasi maxmin, UnrolledGAN menggunakan generator loss yang dimodifikasi untuk mengatasinya. Secara khusus, UnrolledGAN memperbarui generator k kali saat memperbarui generator, dan Kerugian referensi bukanlah hilangnya waktu tertentu, tetapi hilangnya k iterasi setelah diskriminator. Perhatikan bahwa diskriminator tidak memperbarui parameternya sendiri setelah k iterasi, hanya menghitung kerugian untuk memperbarui generator. Dengan cara ini, generator memperhitungkan perubahan diskriminator untuk k kali berikutnya, dan menghindari mode runtuh yang disebabkan oleh peralihan antara mode yang berbeda. Ini harus dibedakan dari generator berulang k kali, dan kemudian diskriminator melakukan iterasi sekali. DRAGAN memperkenalkan algoritma tanpa penyesalan dalam teori game dan mengubah kerugiannya untuk menyelesaikan masalah mode collapse. EBGAN yang disebutkan di atas adalah untuk menambahkan kesalahan rekonstruksi VAE untuk menyelesaikan mode collapse.
1.6.2 Metode perbaikan untuk struktur jaringan
GAN multi-agen (MAD-GAN) menggunakan banyak generator dan satu diskriminator untuk memastikan keragaman pembuatan sampel. Struktur spesifiknya adalah sebagai berikut:
Dibandingkan dengan GAN biasa, ada beberapa generator lagi, dan istilah reguler ditambahkan saat mendesain kerugian. Istilah reguler menggunakan jarak cosinus untuk menghukum konsistensi sampel yang dihasilkan oleh tiga generator.
MRGAN menambahkan diskriminator untuk menghukum masalah mode collapse dari sampel yang dihasilkan. Struktur spesifiknya adalah sebagai berikut:
Sampel masukan x dikodekan menjadi variabel tersembunyi E (x) oleh Encoder, dan kemudian variabel tersembunyi direkonstruksi oleh Generator. Selama pelatihan, ada tiga Kerugian. DM dan R (kesalahan rekonstruksi) digunakan untuk memandu pembuatan sampel seperti nyata. DD menilai sampel yang dihasilkan oleh E (x) dan z. Jelas, kedua sampel yang dihasilkan adalah sampel palsu, sehingga diskriminator ini terutama digunakan untuk menilai apakah sampel yang dihasilkan beragam, yaitu apakah ada mode collapse.
1.6.3 Diskriminasi Batch-mini
Diskriminasi tumpukan-mini menetapkan lapisan tumpukan-mini di lapisan tengah diskriminator untuk menghitung statistik sampel berdasarkan jarak L1, dan menetapkan statistik ini untuk menentukan seberapa dekat suatu sampel dengan sampel lain dalam satu kelompok. Informasi ini dapat digunakan oleh diskriminator untuk mengidentifikasi sampel yang kurang keragaman. Untuk generator, coba buat sampel yang beragam.
2. Memahami ruang tersembunyi GAN
Ruang tersembunyi adalah ruang representasi data yang dikompresi. Secara umum, tidaklah realistis bagi kami untuk memodifikasi gambar secara langsung di ruang data, karena atribut gambar terletak di manifold di ruang dimensi tinggi. Namun di ruang tersembunyi, karena setiap variabel tersembunyi mewakili atribut tertentu, hal ini dapat dilakukan.
Pada bagian ini kita akan membahas bagaimana GAN menangani hidden space dan atributnya, selain itu kita akan membahas bagaimana metode variasional dapat diintegrasikan ke dalam framework GAN.
2.1 Dekomposisi ruang tersembunyi
Variabel tersembunyi masukan z dari GAN tidak terstruktur, dan kita tidak tahu atribut apa yang dimiliki setiap digit dalam kontrol variabel tersembunyi. Oleh karena itu, beberapa ahli mengusulkan untuk menguraikan variabel tersembunyi menjadi variabel kondisi c dan variabel tersembunyi masukan standar z. Secara khusus, termasuk metode yang diawasi dan metode tanpa pengawasan.
2.1.1 Metode yang diawasi
Metode umum yang diawasi adalah CGAN dan ACGAN.
CGAN mengambil noise acak z dan label kategori c sebagai input ke generator, dan diskriminator mengambil sampel / sampel nyata dan label kategori yang dihasilkan sebagai input. Gunakan ini untuk mempelajari korelasi antara tag dan gambar.
ACGAN mengambil derau acak dan label kategori sebagai masukan dari generator, dan pembeda memasukkan sampel yang dihasilkan / sampel nyata, dan mengembalikan label kategori dari gambar. Gunakan ini untuk mempelajari korelasi antara tag dan gambar. Kedua struktur tersebut adalah sebagai berikut (CGAN di kiri dan ACGAN di kanan):
2.1.2 Metode tidak diawasi
Dibandingkan dengan metode yang diawasi, metode tanpa pengawasan tidak menggunakan informasi label apa pun. Oleh karena itu, metode tanpa pengawasan perlu memisahkan ruang tersembunyi untuk mendapatkan representasi fitur yang bermakna.
InfoGAN menguraikan suara masukan menjadi variabel tersembunyi z dan variabel bersyarat c (selama pelatihan, variabel bersyarat c diambil sampelnya dari distribusi seragam.), Dan keduanya dikirim ke generator bersama-sama. Dalam proses pelatihan, informasi timbal balik I (c, G (z, c)) antara c dan G (z, c) dimaksimalkan untuk mencapai variabel decoupling (
Informasi timbal balik dari c menunjukkan seberapa banyak informasi tentang G (z, c) yang ada di c. Jika informasi timbal balik tersebut dimaksimalkan
, Yaitu memaksimalkan korelasi antara hasil yang dihasilkan dengan variabel kondisi c). Struktur model pada dasarnya sama dengan CGAN, hanya saja Loss memiliki informasi mutual maksimum tambahan. detailnya sebagai berikut:
Dari analisis di atas terlihat bahwa InfoGAN hanya merealisasikan decoupling informasi, sedangkan makna spesifik dari setiap nilai variabel kondisi c tidak dapat kita kendalikan. Maka muncul ss-InfoGAN, ss-InfoGAN mengadopsi metode pembelajaran semi-supervised untuk membagi variabel kondisi c menjadi dua bagian.
, Css menggunakan tag untuk belajar seperti CGAN, dan belajar seperti InfoGAN.
2.2 Kombinasi GAN dan VAE
Dibandingkan dengan VAE, GAN dapat menghasilkan gambar yang jelas, tetapi rentan terhadap masalah mode collapse. VAE mendorong rekonstruksi semua sampel, sehingga tidak ada masalah mode collapse.
Pekerjaan tipikal yang menggabungkan keduanya adalah VAEGAN, strukturnya sangat mirip dengan MRGAN yang disebutkan di atas, dan detailnya adalah sebagai berikut:
Kerugian model di atas mencakup tiga bagian, yaitu kesalahan rekonstruksi lapisan diskriminator tertentu, Kehilangan VAE, dan Kerugian GAN.
2.3 Ringkasan model GAN
Dua bagian sebelumnya memperkenalkan berbagai model GAN. Model ini sebagian besar dirancang di sekitar dua masalah umum GAN: model collapse dan training collapse. Tabel berikut merangkum model-model tersebut, pembaca dapat mereview dan membandingkan sesuai tabel berikut:
3. Penerapan GAN
Karena GAN dapat menghasilkan sampel seperti nyata tanpa secara eksplisit memodelkan distribusi data apa pun dalam proses menghasilkan sampel, GAN memiliki berbagai aplikasi di banyak bidang seperti gambar, teks, dan ucapan. Tabel berikut merangkum aplikasi GAN dalam berbagai aspek, dan algoritme ini akan diperkenalkan pada teks berikut.
3.1 Gambar
3.1.1 Terjemahan Gambar
Terjemahan gambar yang disebut mengacu pada konversi dari satu gambar (domain sumber) ke gambar lain (domain target). Ini dapat dibandingkan dengan terjemahan mesin, satu bahasa diubah ke bahasa lain. Selama proses penerjemahan, konten gambar domain sumber tidak akan berubah, tetapi gaya atau beberapa atribut lainnya akan menjadi domain target.
Memasangkan dua data domain
Contoh umum terjemahan gambar berpasangan adalah pix2pix. Pix2pix menggunakan data berpasangan untuk melatih GAN bersyarat. Kerugian termasuk kerugian GAN dan kerugian perbedaan piksel demi piksel. Namun, PAN menggunakan perbedaan piksel demi piksel pada peta fitur sebagai kerugian persepsi untuk menggantikan perbedaan piksel demi piksel dalam gambar untuk menghasilkan gambar yang lebih dekat ke domain sumber dalam hal persepsi manusia.
Dua data domain tidak dipasangkan
Untuk masalah terjemahan gambar tanpa data pelatihan berpasangan, contoh tipikal adalah CycleGAN. CycleGAN menggunakan dua pasang GAN untuk mengonversi data domain sumber ke domain target melalui jaringan GAN, dan kemudian menggunakan jaringan GAN lain untuk mengonversi data domain target kembali ke domain sumber. Data yang dikonversi dan data domain sumber sama persis. Pantau informasi.
3.1.2 Resolusi Super
Dalam SRGAN, GAN dan perceptual loss digunakan untuk menghasilkan gambar yang detail. Kehilangan persepsi berfokus pada kesalahan lapisan fitur tengah, daripada kesalahan piksel demi piksel dari hasil keluaran. Masalah kurangnya informasi detail tekstur pada gambar resolusi tinggi yang dihasilkan dapat dihindari.
3.1.3 Deteksi target
Berkat penerapan GAN dalam resolusi super, untuk masalah deteksi target kecil, GAN dapat digunakan untuk menghasilkan gambar resolusi tinggi dari target kecil untuk meningkatkan akurasi deteksi target
3.1.4 Gambar pembelajaran yang didistribusikan bersama
Sebagian besar GAN mempelajari distribusi data dari satu domain, sementara CoupledGAN mengusulkan jaringan berbagi bobot parsial yang menggunakan metode tanpa pengawasan untuk mempelajari distribusi gabungan gambar di beberapa domain. Struktur spesifiknya adalah sebagai berikut:
Seperti yang ditunjukkan pada gambar di atas, CoupledGAN menggunakan dua jaringan GAN. Paruh pertama generator berbagi bobot untuk tujuan penyandian informasi tingkat tinggi dari dua domain, dan paruh kedua tidak dibagikan untuk menyandikan data dari domain masing-masing. Paruh pertama diskriminator tidak dibagikan, dan paruh kedua digunakan untuk mengekstrak fitur tingkat tinggi dan berbagi bobot dari keduanya. Untuk jaringan yang terlatih, masukan gangguan acak dan keluaran dua gambar di domain yang berbeda.
Perlu dicatat bahwa model di atas mempelajari distribusi gabungan P (x, y). Jika dua GAN terpisah digunakan untuk pelatihan secara terpisah, maka distribusi marginal P (x) dan P (y) dipelajari. biasanya,
.
3.1.5 Pembuatan video
Secara umum, video terdiri dari latar belakang yang relatif statis dan latar depan yang bergerak. VideoGAN menggunakan generator dua tahap, generator 3D CNN menghasilkan latar depan bergerak, dan generator CNN 2D menghasilkan latar belakang statis. Pose GAN menggunakan VAE dan GAN untuk menghasilkan video. Pertama, VAE menggabungkan pose frame saat ini dan fitur pose masa lalu untuk memprediksi informasi gerakan frame berikutnya, kemudian 3D CNN menggunakan informasi gerakan untuk menghasilkan frame video berikutnya. Gerakan dan Konten GAN (MoCoGAN) mengusulkan untuk memisahkan bagian gerakan dan bagian konten di ruang tersembunyi, dan menggunakan RNN untuk memodelkan bagian gerakan.
3.2 Pembuatan urutan
Dibandingkan dengan penerapan GAN di bidang gambar, penerapan GAN di bidang teks dan ucapan jauh lebih sedikit. Ada dua alasan utama:
-
GAN menggunakan algoritme BP saat mengoptimalkan. Untuk data diskrit seperti teks dan ucapan, GAN tidak dapat melompat langsung ke nilai target, tetapi hanya dapat mendekati langkah demi langkah sesuai dengan gradien.
-
Untuk masalah pembuatan urutan, setiap kali sebuah kata dihasilkan, kita perlu menilai apakah urutan tersebut masuk akal, tetapi diskriminator di GAN tidak dapat melakukannya. Kecuali kita menetapkan pembeda untuk setiap langkah, ini jelas tidak masuk akal.
Untuk mengatasi masalah di atas, kebijakan penurunan gradien dalam pembelajaran penguatan diperkenalkan ke dalam masalah generasi urutan di GAN.
3.2.1 Pembuatan musik
RNN-GAN menggunakan LSTM sebagai generator dan diskriminator untuk secara langsung menghasilkan seluruh urutan audio. Namun, seperti yang telah disebutkan di atas, musik termasuk lirik dan not, terdapat banyak masalah dalam penggunaan GAN secara langsung untuk masalah pembuatan data diskrit semacam ini, terutama kurangnya konsistensi lokal dalam data yang dihasilkan.
Sebaliknya, SeqGAN menganggap output generator sebagai strategi agen, dan output diskriminator sebagai penghargaan, dan menggunakan strategi penurunan gradien untuk melatih model. ORGAN menetapkan fungsi tujuan khusus untuk tujuan tertentu berdasarkan SeqGAN.
3.2.2 Bahasa dan suara
VAW-GAN (Variational autoencoding Wasserstein GAN) menggabungkan VAE dan WGAN untuk mengimplementasikan sistem konversi suara. Encoder mengkodekan konten sinyal ucapan, dan decoder digunakan untuk merekonstruksi nada. Karena VAE cenderung menyebabkan hasil yang dihasilkan terlalu mulus, WGAN digunakan di sini untuk menghasilkan sinyal ucapan yang lebih jelas.
3.3 Pembelajaran semi-supervisi
Mendapatkan label data gambar membutuhkan banyak penjelasan manual, yang memakan waktu dan melelahkan.
3.3.1 Menggunakan diskriminator untuk pembelajaran semi-supervisi
Metode pembelajaran semi-supervised berbasis GAN mengusulkan metode menggunakan data tak berlabel. Metode implementasi pada dasarnya sama dengan GAN asli, kerangka kerja spesifiknya adalah sebagai berikut:
Dibandingkan dengan GAN asli, perbedaan utamanya adalah bahwa diskriminator mengeluarkan informasi kategori K + 1 (sampel yang dihasilkan adalah kategori K + 1). Untuk diskriminator, Kerugiannya terdiri dari dua bagian, satu adalah kerugian pembelajaran yang diawasi (Anda hanya perlu menentukan benar dan salah dari sampel), dan yang lainnya adalah kerugian belajar tanpa pengawasan (untuk menentukan kategori sampel). Generator hanya perlu membuat sampel senyata mungkin. Setelah pelatihan selesai, diskriminator dapat digunakan sebagai model klasifikasi untuk melakukan klasifikasi.
Dari sudut pandang intuitif, sampel yang dihasilkan terutama untuk membantu pengklasifikasi belajar membedakan di mana ruang data sebenarnya.
3.2.2 Pembelajaran semi-supervisi menggunakan pengklasifikasi tambahan
Ada masalah dengan model pembelajaran semi-supervised menggunakan diskriminator yang disebutkan di atas. Diskriminator tidak hanya belajar membedakan antara sampel positif dan negatif, tetapi juga belajar memprediksi label. Sasaran keduanya tidak konsisten, dan mudah menyebabkan keduanya tidak mencapai optimal. Ide intuitif adalah memisahkan label prediksi dari membedakan sampel positif dan negatif. Inilah yang dilakukan Triple-GAN:
Masing-masing mewakili data yang dihasilkan, data berlabel, dan data tak berlabel. CE adalah singkatan dari cross entropy loss.
3.4 Adaptasi domain
Adaptasi domain adalah konsep dalam pembelajaran transfer. Sederhananya, kami mendefinisikan distribusi domain data sumber sebagai Ds (x, y), dan distribusi domain data target sebagai DT (x, y). Untuk data domain sumber, kami memiliki banyak tag, tetapi untuk data domain target, tidak ada tag. Kami berharap dapat mempelajari model dari data berlabel domain sumber dan data tak berlabel domain target, dan itu akan tergeneralisasi dengan baik di domain target. Kata "migrasi" dalam pembelajaran transfer mengacu pada transfer distribusi data di domain sumber ke distribusi data di domain target.
Ketika GAN digunakan untuk pembelajaran transfer, ide intinya adalah menggunakan generator untuk mengubah fitur data domain sumber menjadi fitur data domain target, sementara diskriminator mencoba membedakan antara data nyata dan fitur data yang dihasilkan. Di bawah ini adalah dua contoh penerapan GAN untuk pembelajaran transfer, DANN dan ARDA:
Ambil DANN pada sisi kiri gambar di atas sebagai contoh, Is dan It merepresentasikan data domain sumber dan data domain target, dan ys merepresentasikan label dari data domain sumber. Fs, Ft mewakili karakteristik domain sumber dan domain target. Dalam DANN, generator digunakan untuk mengekstrak fitur, dan mempersulit pembeda untuk membedakan fitur yang diekstrak dari fitur data domain sumber atau fitur data domain target.
Di bidang pengenalan pejalan kaki, terdapat banyak aplikasi pembelajaran transfer berbasis CycleGAN untuk augmentasi data. Salah satu kesulitan dalam mengidentifikasi ulang pejalan kaki adalah bahwa sudut orang yang ditangkap di bawah kamera yang berbeda sangat berbeda, sehingga menghasilkan celah domain yang besar. Oleh karena itu, Anda dapat mempertimbangkan menggunakan GAN untuk menghasilkan data di bawah kamera yang berbeda untuk augmentasi data. Metode cycleGAN untuk augmentasi data diusulkan di. Struktur model spesifiknya adalah sebagai berikut:
Untuk setiap pasang kamera, cycleGAN dilatih, sehingga data di bawah satu kamera dapat diubah menjadi data di bawah kamera lain, tetapi konten (orang) tetap tidak berubah.
3.5 Aplikasi lainnya
Varian GAN sangat banyak, dan aplikasinya sangat luas.Ada juga aplikasi di bidang non-machine learning. Berikut beberapa contohnya.
3.5.1 Segmentasi citra medis
Struktur pengkritik segmentor diusulkan untuk mensegmentasi citra medis. Segmentor mirip dengan generator di GAN yang digunakan untuk menghasilkan gambar tersegmentasi, sedangkan kritikus memaksimalkan jarak antara gambar tersegmentasi yang dihasilkan dan kebenaran dasar. Selain itu, DI2IN menggunakan GAN untuk menyegmentasikan gambar 3D CT, dan SCAN menggunakan GAN untuk membagi gambar sinar-X.
3.5.2 Steganografi gambar
Steganografi mengacu pada menyembunyikan informasi rahasia di wadah non-rahasia, seperti gambar. Steganalyzer digunakan untuk menentukan apakah wadah berisi informasi rahasia. Beberapa penelitian mencoba menggunakan generator GAN untuk menghasilkan gambar dengan informasi steganografi, dan terdapat dua pembeda, satu digunakan untuk menentukan apakah gambar itu gambar nyata, dan yang lainnya untuk menentukan apakah gambar tersebut memiliki informasi rahasia.
3.6.3 Pembelajaran berkelanjutan
Tujuan dari pembelajaran berkelanjutan adalah untuk menyelesaikan banyak tugas dan mengumpulkan pengetahuan baru dalam proses pembelajaran. Masalah yang menonjol dalam pembelajaran berkelanjutan adalah "melupakan pengetahuan". Generator GAN digunakan sebagai model cendekiawan, generator secara terus menerus menggunakan pengetahuan sebelumnya untuk pelatihan, dan pemecah memberikan jawaban untuk menghindari masalah "pengetahuan lupa".
4. Diskusi
Bagian pertama dan kedua membahas GAN dan variannya, dan bagian ketiga membahas penerapan GAN. Tabel berikut merangkum struktur model dari beberapa GAN yang lebih terkenal dan batasan tambahan yang dikenakan oleh mereka.
Sebelumnya adalah pembahasan tingkat mikro GAN. Selanjutnya kita akan membahas GAN dari perspektif makro.
4.1 Evaluasi GAN
Ada berbagai macam metode evaluasi GAN. Metode berbasis contoh yang ada (seperti namanya, evaluasi didasarkan pada level sampel) metode untuk mengekstrak fitur dari sampel yang dihasilkan dan sampel nyata, lalu mengukur jarak di ruang fitur. Kerangka spesifiknya adalah sebagai berikut:
Hubungan perbandingan simbol pada bagian ini adalah sebagai berikut:
Hal: Menghasilkan distribusi data
Pr: Mewakili distribusi data yang sebenarnya
E: Harapan matematis
x: sampel masukan
: Menunjukkan bahwa x adalah sampel dari sampel yang dihasilkan
: Menunjukkan bahwa x adalah sampling dari sampel nyata.
y: label sampel
M: jaringan klasifikasi, biasanya pilih jaringan Inception
Berikut ini memperkenalkan indikator evaluasi umum satu per satu:
4.1.1 Skor Awal
Untuk GAN yang terlatih dengan baik di ImageNet, ketika sampel yang dihasilkan dilempar ke jaringan Inception untuk pengujian, probabilitas diskriminatif yang diperoleh harus memiliki karakteristik berikut:
-
Untuk gambar dengan kategori yang sama, distribusi probabilitas keluaran harus cenderung pada distribusi impuls. Keakuratan sampel yang dihasilkan dapat dijamin.
-
Untuk semua kategori, distribusi probabilitas outputnya harus cenderung pada distribusi yang seragam, sehingga mode runtuh dll tidak akan muncul, dan keragaman sampel yang dihasilkan dapat dijamin.
Oleh karena itu, indikator-indikator berikut dapat dirancang:
Menurut analisis sebelumnya, jika itu adalah GAN yang terlatih,
Mendekati distribusi denyut nadi,
Cenderung merata. Perbedaan KL antara keduanya akan menjadi besar. Skor Awal secara alami tinggi. Eksperimen yang sebenarnya menunjukkan bahwa Skor Awal cenderung konsisten dengan penilaian subjektif manusia. Perhitungan IS tidak menggunakan data riil, dan nilai spesifik bergantung pada pilihan model M.
Fitur: Dapat mengukur keragaman dan akurasi sampel yang dihasilkan hingga batas tertentu, tetapi tidak dapat mendeteksi overfitting. Hal yang sama berlaku untuk Skor Mode. ImageNet
4.1.2 Mode Score
Mode Score Inception Score
4.1.3 Kernel MMD (Maximum Mean Discrepancy)
Dihitung sebagai berikut:
Kernel MMD k (Reproducing Kernel Hilbert Space, RKHS)RKHS
MMD
4.1.4 Wasserstein distance
Wasserstein distance WGAN Rumusnya adalah sebagai berikut:
Wasserstein distance
O(n^3)
4.1.5 Fréchet Inception Distance (FID)
FID Inception
4.1.61-Nearest Neighbor classifier
1-NN 50% 0% GAN
-
xr 1-NN R xg xr
-
xg 1-NN mode xg xr
4.1.7
AISKDE GAN model agnostic metrics
4.1.8
MMD 1-NN two-sample test , mode collapsing
GAN GAN
4.2 GAN
s a(action) Q(s,a) s a Q(s,a) Q(s,a) GAN
GAN Q(s,a) InverseRLGAIL
4.3 GAN
4.3.1
GAN
-
GAN PixelCNNPixelRNN GAN GAN Generator
-
GAN VAE VAE VAE
-
GAN VAE
4.3.2
GAN
-
WGANLSGAN
-
4.4
-
GAN
-
Deep learning GAN
PDF PDF github
Morde-kaiser/LearningNotesgithub.com
: Hong, Yongjun, et al. "How Generative Adversarial Networks and its variants Work: An Overview of GAN."
https://blog.csdn.net/victoriaw/article/details/60755698
https://zhuanlan.zhihu.com/p/25071913
https://mp.weixin.qq.com/s/gv-cpK161oyXinUyh05KXA
https://blog.csdn.net/poulang5786/article/details/80766498
https://spaces.ac.cn/archives/5253
https://www.jianshu.com/p/42c42e13d09b
https://medium.com/@jonathan_hui/gan-unrolled-gan-how-to-reduce-mode-collapse-af5f2f7b51cd
https://medium.com/@jonathan_hui/gan-dragan-5ba50eafcdf2
https://medium.com/@jonathan_hui/gan-cgan-infogan-using-labels-to-improve-gan-8ba4de5f9c3d
https://blog.csdn.net/carrierlxksuper/article/details/60479883
: Salimans, Tim, et al. "Improved techniques for training gans." Advances in neural information processing systems. 2016.
https://blog.csdn.net/qq_25737169/article/details/78532719
https://medium.com/@hitoshinakanishi/reading-note-triple-generative-adversarial-nets-fc3775e52b1e1
: Zheng Z , Zheng L , Yang Y . Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in VitroC// 2017 IEEE International Conference on Computer Vision (ICCV). IEEE Computer Society, 2017.
: Yuan Xue, Tao Xu, Han Zhang, Rodney Long, and Xiaolei Huang. Segan: Adversar- ial network with multi-scale l_1 loss for medical image segmentation. arXiv preprint arXiv:1706.01805, 2017.
: Denis Volkhonskiy, Ivan Nazarov, Boris Borisenko, and Evgeny Burnaev. Steganographicgenerative adversarial networks. arXiv preprint arXiv:1703.05502, 2017.
: Shin, Hanul, et al. "Continual learning with deep generative replay." Advances in Neural Information Processing Systems. 2017.
- Menjadi bagian dari keindahan drama Jin Yong gaya Hong Kong, mereka mengejutkan seluruh arena dalam satu abad terakhir
- Pratinjau CNCC 2018 akan dibuka Kamis ini, dan 15 laporan yang diundang akan diumumkan (dengan agenda lengkap konferensi disertakan)
- Perbarui kontrak TVB untuk cinta dalam hidup saya Saya merindukan Chen Hao, Liu Bier yang tidak beruntung
- Di balik pendapatan 11,2 miliar pada 2016, ada reorganisasi internal dan refleksi dari Bioskop Wanda
- Profesor Qiu Xipeng dari Universitas Fudan merilis buku teks "Neural Networks and Deep Learning", dilengkapi dengan kode dan latihan bab
- Orang-orang Chongqing suka membeli perawatan jompo dan rumah liburan, dan proyek perawatan kesehatan berkualitas tinggi di Panzhihua juga datang ke pasar cabang Chongqing