Memahami fungsi kerugian GAN


17

Saya berjuang untuk memahami fungsi kehilangan GAN seperti yang disediakan dalam Understanding Generative Adversarial Networks (posting blog yang ditulis oleh Daniel Seita).

Dalam kehilangan lintas-entropi standar, kami memiliki output yang telah dijalankan melalui fungsi sigmoid dan klasifikasi biner yang dihasilkan.

Sieta menyatakan

Dengan demikian, Untuk [setiap] titik data dan labelnya, kami mendapatkan fungsi kerugian berikut ...x1

H((x1,y1),D)=-y1catatanD(x1)-(1-y1)catatan(1-D(x1))

Ini hanya log dari harapan, yang masuk akal, tetapi bagaimana bisa, dalam fungsi kehilangan GAN, kami memproses data dari distribusi yang benar dan data dari model generatif dalam iterasi yang sama?

Jawaban:


6

Fokus Pertanyaan Ini

"Bagaimana ... kami bisa memproses data dari distribusi yang benar dan data dari model generatif dalam iterasi yang sama?

Menganalisis Publikasi Yayasan

Di halaman yang direferensikan, Understanding Generative Adversarial Networks (2017) , kandidat doktoral Daniel Sieta dengan benar merujuk Generative Adversarial Networks, Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville, dan Bengio, Juni 2014 . Ini abstrak menyatakan, "Kami mengusulkan kerangka kerja baru untuk memperkirakan model generatif melalui proses permusuhan, di mana kami secara bersamaan melatih dua model ..." Makalah asli ini mendefinisikan dua model yang didefinisikan sebagai MLP (multilayer perceptrons).

  • Model generatif, G
  • Model diskriminatif, D

Kedua model ini dikendalikan dengan cara di mana satu memberikan bentuk umpan balik negatif terhadap yang lain, oleh karena itu istilah permusuhan.

  • G dilatih untuk menangkap distribusi data dari serangkaian contoh dengan cukup baik untuk menipu D.
  • D dilatih untuk menemukan apakah inputnya adalah tiruan G atau sekumpulan contoh untuk sistem GAN.

(Serangkaian contoh untuk sistem GAN kadang-kadang disebut sebagai sampel nyata, tetapi mereka mungkin tidak lebih nyata daripada yang dihasilkan. Keduanya adalah susunan numerik di komputer, satu set dengan asal internal dan yang lainnya dengan eksternal asal apakah eksternal dari kamera menunjuk beberapa adegan fisik tidak relevan dengan operasi GAN.)

Secara probabilistik, menipu D identik dengan memaksimalkan probabilitas bahwa D akan menghasilkan sebanyak positif palsu dan negatif palsu seperti halnya kategorisasi yang benar, masing-masing 50%. Dalam ilmu informasi, ini mengatakan bahwa batas informasi D memiliki G mendekati 0 ketika t mendekati tak terhingga. Ini adalah proses memaksimalkan entropi G dari perspektif D, dengan demikian istilah entropi silang.

Bagaimana Konvergensi Dicapai

Karena fungsi kerugian direproduksi dari tulisan Sieta 2017 dalam pertanyaannya adalah D, yang dirancang untuk meminimalkan entropi silang (atau korelasi) antara dua distribusi ketika diterapkan pada set poin penuh untuk keadaan pelatihan yang diberikan.

H((x1,y1),D)=1D(x1)

Ada fungsi kerugian terpisah untuk G, yang dirancang untuk memaksimalkan entropi silang. Perhatikan bahwa ada DUA tingkat granularitas pelatihan dalam sistem.

  • Itu gim bergerak dalam gim dua pemain
  • Itu dari sampel pelatihan

Ini menghasilkan iterasi bersarang dengan iterasi luar sebagai berikut.

  • Pelatihan hasil G menggunakan fungsi kerugian G.
  • Pola input tiruan dihasilkan dari G pada kondisi pelatihan saat ini.
  • Pelatihan hasil D menggunakan fungsi kerugian D.
  • Ulangi jika cross entropy belum dimaksimalkan secara memadai, D masih bisa melakukan diskriminasi.

Ketika D akhirnya kalah, kami telah mencapai tujuan kami.

  • G memulihkan distribusi data pelatihan
  • D telah dikurangi menjadi tidak efektif ("1/2 probabilitas di mana-mana")

Mengapa Pelatihan Serentak Diperlukan

Jika kedua model tidak dilatih secara bolak-balik untuk mensimulasikan konkurensi, konvergensi dalam bidang permusuhan (iterasi luar) tidak akan terjadi pada solusi unik yang diklaim dalam makalah 2014.

Informasi Lebih Lanjut

Di luar pertanyaan, item berikutnya yang menarik dalam makalah Sieta adalah bahwa, "Desain fungsi kehilangan generator yang buruk," dapat menyebabkan nilai gradien yang tidak memadai untuk memandu keturunan dan menghasilkan apa yang kadang-kadang disebut saturasi. Kejenuhan hanyalah reduksi dari sinyal umpan balik yang memandu penurunan propagasi balik ke kebisingan kacau yang timbul dari pembulatan titik mengambang. Istilah ini berasal dari teori sinyal.

Saya sarankan mempelajari makalah 2014 oleh Goodfellow et alia (peneliti berpengalaman) untuk belajar tentang teknologi GAN daripada halaman 2017.


3

Mari kita mulai dari awal. GAN adalah model yang dapat belajar membuat data yang mirip dengan data yang kami berikan kepada mereka.

Saat melatih model generatif selain GAN, fungsi kehilangan termudah untuk muncul mungkin adalah Mean Squared Error (MSE).

Mohon izinkan saya untuk memberi Anda sebuah contoh ( Trickot L 2017 ):

Sekarang anggaplah Anda ingin menghasilkan kucing; Anda dapat memberikan contoh model kucing tertentu di foto. Pilihan fungsi kehilangan Anda berarti bahwa model Anda harus mereproduksi setiap kucing dengan tepat untuk menghindari hukuman.

Tapi itu belum tentu yang kita inginkan! Anda hanya ingin model Anda menghasilkan kucing, kucing mana pun akan melakukannya asalkan kucing yang masuk akal. Jadi, Anda perlu mengubah fungsi kerugian Anda.

Namun fungsi mana yang bisa mengabaikan piksel konkret dan fokus mendeteksi kucing di foto?

Itu jaringan saraf. Ini adalah peran diskriminator dalam GAN. Tugas diskriminator adalah mengevaluasi seberapa masuk akal suatu gambar.

Makalah yang Anda kutip, Understanding Generative Adversarial Networks (Daniel S 2017) mencantumkan dua wawasan utama.

Wawasan Besar 1: fungsi kerugian pembeda adalah fungsi kehilangan lintas entropi.

Wawasan Besar 2: memahami bagaimana saturasi gradien dapat atau tidak memengaruhi pelatihan. Gradient saturation adalah masalah umum ketika gradien terlalu kecil (yaitu nol) untuk melakukan pembelajaran apa pun.

Untuk menjawab pertanyaan Anda, kami perlu menguraikan lebih jauh tentang wawasan besar kedua.

Dalam konteks GAN, saturasi gradien dapat terjadi karena desain fungsi kerugian generator yang buruk, jadi "wawasan utama" ini ... didasarkan pada pemahaman pertukaran timbal balik antara berbagai fungsi kerugian yang berbeda untuk generator.

Desain yang diimplementasikan dalam makalah ini menyelesaikan masalah fungsi kerugian dengan memiliki fungsi yang sangat spesifik (untuk membedakan antara dua kelas). Cara terbaik untuk melakukan ini adalah dengan menggunakan cross entropy (Insight 1). Seperti yang dikatakan oleh posting blog:

Cross-entropy adalah fungsi kerugian yang besar karena dirancang sebagian untuk mempercepat pembelajaran dan menghindari saturasi gradien hanya hingga ketika classifier benar.

Seperti diklarifikasi dalam komentar posting blog:

Harapan [dalam fungsi lintas entropi] berasal dari jumlah. Jika Anda melihat definisi ekspektasi untuk variabel acak diskrit, Anda akan melihat bahwa Anda perlu menjumlahkan nilai-nilai berbeda yang mungkin dari variabel acak, menimbang masing-masing dengan probabilitasnya. Di sini, probabilitasnya hanya 1/2 untuk masing-masing, dan kita bisa memperlakukannya sebagai berasal dari generator atau pembeda.


Pertanyaan itu tidak menanyakan apa yang paling mudah digunakan sebagai fungsi kerugian untuk JST. Spesifik matematika tidak jelas untuk @tryingtolearn dan mengutip mahasiswa pascasarjana tanpa memberikan klarifikasi apa pun tidak menjelaskan.
FauChristian

1

Anda dapat memperlakukan kombinasi zinput dan xinput sebagai sampel tunggal, dan Anda mengevaluasi seberapa baik diskriminator melakukan klasifikasi masing-masing.

Inilah sebabnya mengapa pos nanti memisahkan satu ymenjadi E(p~data)dan E(z)- pada dasarnya, Anda memiliki harapan yang berbeda yuntuk masing-masing input diskriminator dan Anda perlu mengukur keduanya pada saat yang sama untuk mengevaluasi seberapa baik kinerja diskriminator.

Itu sebabnya fungsi kerugian dipahami sebagai kombinasi dari klasifikasi positif dari input nyata dan klasifikasi negatif dari input negatif.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.