Keberlanjutan GAN Learning (Menggali lebih dalam)

gambar

Pada artikel sebelumnya, menggunakan contoh model mainan, saya mencoba menganalisis mengapa, pada kenyataannya, kami dapat melatih GAN secara efektif. Sekarang kita akan mencoba merangkum beberapa hasil dan, yang paling penting, mencoba menganalisis bagaimana arsitektur jaringan saraf mempengaruhi stabilitas proses pembelajaran.

Pendahuluan


Anda dapat melihat proses pembelajaran GAN sebagai proses meminimalkan batas bawah divergensi atau sebagai sistem dinamis yang terdiri dari diskriminator dan generator. Pendekatan pertama dikembangkan dengan sangat baik, jika ada yang tertarik dapat menemukan banyak karya menarik tentang topik ini, saya hanya akan memberikan yang paling signifikan menurut saya: f-GAN , WGAN . Di sisi lain, The Numerics of GANs, Lars Mescheder et al, 2017 menunjukkan bahwa seseorang tidak dapat melihat GAN hanya dari posisi meminimalkan divergensi (meskipun ini adalah tujuan utama), tetapi masih perlu mempertimbangkan sifat-sifat sistem dinamis. Tujuan kami adalah untuk menggabungkan kedua pendekatan ini dan melihat sifat teoritis apa yang akan dimiliki oleh lintasan sistem dinamis tersebut.

Selanjutnya, kita akan mempertimbangkan bentuk yang cukup umum dari fungsional GAN ​​(tujuan GAN).

I( theta, phi)=  intpd(x)fD(D theta(x))dx +  intp( epsilon)fG(D theta(G phi( epsilon))d epsilon


dimana  theta - parameter diskriminator,  phi - parameter generator. Dan kami juga berasumsi bahwa generator dan diskriminator adalah dua kali fungsi yang dapat dibedakan.

Proses pembelajaran dapat dirumuskan secara matematis sebagai:

\ underset {\ phi} {min} \ {\ underset {\ theta} {max} I (\ theta, \ phi) \}

\ underset {\ phi} {min} \ {\ underset {\ theta} {max} I (\ theta, \ phi) \}



Tempat istirahat


Meskipun banyak pekerjaan di GAN, pertanyaan tentang keberadaan titik diam tetap terbuka. Sekarang kita akan mencoba menjawab pertanyaan ini.

Misalkan ( Asumsi 1 ) bahwa untuk generator apa pun ada pembeda memaksimalkan

I( theta, phi)


Yaitu fungsi

\ theta_ {opt} = \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}

\ theta_ {opt} = \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \}


didefinisikan untuk nilai apa pun  phi . Meskipun mungkin dan ambigu - yaitu, ada banyak diskriminator optimal yang berbeda. Kami akan memanggil seluruh rangkaian diskriminator optimal seperti "reparametrization," dan set \ {\ theta_ {opt} \}\ {\ theta_ {opt} \} set reparametrization diskriminator. Mari kita buat klarifikasi kecil - secara maksimum yang kami maksud bukan hanya maksimum global, tetapi maksimum lokal.

Secara matematis  thetaopt ditentukan oleh sistem persamaan:

 nabla thetaI( thetaopt, phi)=0


 nabla theta2I( theta, phi) preceq0


Meskipun jika generator dan pembeda adalah jaringan saraf, dan kami melatih generator gambar, asumsi ini tidak terpenuhi. Dalam artikel-artikel berikut saya akan menunjukkan bagaimana ini dapat dicapai dengan bantuan pembuat peraturan sederhana, tetapi untuk sekarang saya harus percaya.

Asumsi kedua ( Asumsi 2 ) adalah bahwa untuk setiap perubahan kecil yang tak terhingga dalam parameter generator, ada pembeda yang optimal sangat dekat dengan yang sekarang. Anda dapat mencoba mencari tahu kapan ini dilakukan untuk jaringan saraf, tetapi bagi saya tampaknya ini adalah persyaratan intuitif dan dengan probabilitas tinggi dipenuhi untuk jaringan yang cukup fleksibel.

Secara matematis, persyaratan ini dapat dirumuskan sebagai berikut: sistem persamaan

 nabla theta2I( thetaopt, phi)d theta= nabla theta phiI( thetaopt, phi)d phi ;(1)


punya keputusan d theta kapan saja d phi .
Kondisi ini mudah didapat dari dekomposisi  nabla thetaI( thetaopt, phi)=0 di deretan taylor.

Sekarang kami menunjukkan bahwa, dengan asumsi 2, gradien generator  nabla phiI( thetaopt, phi) tidak berubah jika kita mengikuti set reparametrization diskriminator. Bergerak sepanjang set reparametrization secara matematis berarti itu  delta theta milik inti  nabla theta2I( theta, phi) yaitu .:

 nabla thetaI( thetaopt, phi)= nabla thetaI( thetaopt+d thetaopt, phi)=0


Mari kita memperluas seri Taylor:

 nabla phiI( thetaopt+d thetaopt, phi)= nabla phiI( thetaopt, phi)+ nabla phi thetaI( theta, phi)d thetaopt


Dari mana, agar gradien tidak berubah, perlu itu d thetaopt milik inti  nabla phi thetaI( theta, phi) . Tetapi jika d thetaopt milik inti  nabla theta2I( theta, phi) dan (1) bertahan, lalu d thetaopt milik inti  nabla phi thetaI( theta, phi) . Ini mudah ditampilkan dengan mengalikan (1) dengan d thetaopt dan mempertimbangkan itu d phi bisa berupa:

d thetaTopt nabla theta2I( thetaopt, phi)d theta=d thetaTopt nabla theta phiI( thetaopt, phi)d phi=0


Kami baru saja membuktikan fakta indah bahwa gradien \ nabla_ \ phi \ underset {\ theta} {max} \ {I (\ theta, \ phi) \} tidak peduli yang mana yang dipilih  theta dari himpunan reparametrization dari diskriminator, yang berarti  underset thetamaxI( theta, phi) adalah fungsi terdiferensiasi dari  phi dan kita bisa menguranginya menggunakan metode optimasi gradien.

Apa yang bisa dikatakan tentang minimum fungsi ini? Sayangnya, sejauh ini tidak ada kesimpulan umum yang dapat ditarik. Kita harus membuat satu asumsi lagi ( Asumsi 3 ) tentang sifat-sifat diskriminator, yaitu  underset thetamaxI( theta, phi) geq0 . Dari analisis mat, kita tahu bahwa fungsi kontinu yang terikat di bawah ini mencapai nilai minimumnya, atau ada sekuens poin yang menurun secara monoton (yaitu, fungsi mencapai minimumnya pada tak terhingga).

Asumsi 3 menyatakan bahwa tidak peduli dari titik mana kami mulai melatih pembeda (menginisialisasi jaringan saraf), pembeda yang optimal selalu memberikan nilai yang lebih tinggi (atau sama) ke data daripada sampel dari generator dan pembeda yang melakukan hal sebaliknya tidak dapat optimal. Menurut pendapat saya, asumsi ini sangat logis secara internal dan jaringan saraf yang cukup fleksibel harus memuaskannya. Omong-omong, mudah untuk menunjukkan bahwa diskriminator linier memenuhi asumsi ini.

“Lintasan optimal”


Kami baru tahu bahwa jika pembeda memenuhi asumsi "lunak", maka titik istirahat itu ada atau terletak di tak terhingga dan kami dapat mendekatinya secara asimptotik.

Untuk melakukan ini, anggaplah itu  theta dan  phi parameter saat ini, dan pembeda dilatih untuk bertemu. Sekarang kita mengubah generator sedikit (  phik+1= phik+d phi ) jadi itu \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \} berkurang - misalnya, kita mengambil satu langkah gradient descent. Bagaimana seharusnya kita memperbarui diskriminator? Jawabannya diberikan dengan rumus (1):

d theta= nabla theta2I( theta, phi) dagger nabla theta phiI( theta, phi)d phi(2)


dimana  nabla theta2I( theta, phi) dagger Merupakan matriks pseudoinverse.
Agar akurat secara matematis, maka rumus (2) menentukan hyperplane tangen ke permukaan dalam ruang parameter di mana diskriminator optimal "hidup". Kami akan menyebut permukaan ini "optimal".

Tetapi apa yang akan terjadi jika kita mulai dari titik yang sangat dekat, tetapi tetap saja diskriminator di sana tidak optimal. Jelas, formula kami menggambarkan lintasan yang sama sekali tidak dapat diprediksi, karena itu diperoleh hanya untuk pembeda yang optimal. Mari kita coba untuk memperbaiki situasi ini. Dalam hal ini, akan logis untuk bergerak tidak hanya sejajar dengan permukaan "optimal", tetapi juga ke arah itu. Jelas, langkah ke arah yang ditunjukkan oleh metode Newton cukup cocok untuk ini. Formula akhir kami akan terlihat seperti ini:

d theta= nabla theta2I( theta, phi) dagger[ nabla thetaI( theta, phi)+ nabla theta phiI( theta, phi)d phi](3)


Apa yang baru saja kita lakukan? Pertama, perhatikan bahwa pada permukaan yang optimal  nabla thetaI( theta, phi)=0 , yaitu jika jika  theta adalah pembeda dilatih untuk konvergensi, maka kami tidak mengubah lintasan. Di sisi lain, jika kita memulai suatu tempat di dekat titik "optimal", maka istilah tambahan akan "menarik" kita ke lintasan "optimal". Artinya, kami membuat lintasan yang "optimal" tahan terhadap kebisingan.

Sayangnya, saya tidak bisa membuktikannya secara matematis. Tapi kami tidak membutuhkannya. Mari kita melihat lebih dekat pada rumus (3), ini dapat ditulis ulang dalam bentuk:

d theta= nabla theta2I( theta, phi) dagger nabla thetaI( theta, phi+d phi)


Tidak menyerupai apa pun? Itu hampir terlihat seperti metode Newton. Ini menunjukkan bahwa pembaruan bolak-balik (dalam literatur bahasa Inggris menggunakan bolak-balik) dari generator dan parameter diskriminator, di mana diskriminator diperbarui dengan metode Newton (pada kenyataannya, kita tidak harus mengambil langkah Newton penuh, tetapi kita dapat mengambil langkah kecil ke arah yang ditunjukkan oleh metode Newton), dan generator, secara umum, dapat mengambil langkah ke segala arah, yang utama adalah untuk mengurangi \ underset {\ theta} {argmax} \ {I (\ theta, \ phi) \} adalah perkiraan gerak yang baik di sepanjang lintasan optimal.

Ngomong-ngomong, mungkin di sinilah keberhasilan Adam dalam pelatihan GAN. Setelah semua, diketahui bahwa Adam mencoba untuk mendekati Hessian dan menggunakan informasi ini untuk langkah gradien (mendekati metode Newton).

Stabilitas lintasan


Untuk menganalisis stabilitas lintasan, kita akan menggunakan alat yang sama seperti yang digunakan orang-orang di Metode Pelatihan mana untuk GAN yang benar-benar bertemu? . Siapa pun yang punya waktu, saya sarankan Anda memahami pekerjaan ini dengan baik, itu sepadan.

Saya percaya bahwa kelemahan utama dari artikel ini adalah bahwa penulis menganalisis stabilitas sistem pada titik istirahat, yang sama sekali tidak ada untuk sebagian besar GAN nyata (untuk mainan 2D atau contoh 3D, tentu saja ini mungkin). Maksud saya, secara umum, tidak ada titik istirahat, dan titik di mana generator memiliki distribusi yang sama dengan data, dan diskriminator identik dengan 0. Oleh karena itu, kami tidak akan menganalisis stabilitas sistem pada titik istirahat, kami akan pergi dengan cara yang sedikit berbeda - kami akan mencoba menganalisis stabilitas lintasan sistem . Meskipun analisis ini dapat dengan mudah ditransfer ke titik istirahat, titik istirahat juga merupakan lintasan.

Sebagai lintasan yang dipelajari, kami memilih lintasan yang diperoleh selama pelatihan dengan gradient descent. Mengapa ini penting? Pertama, kami menemukan apa lintasan "optimal" itu dan menemukan bahwa lintasan itu dapat diperkirakan dengan baik oleh pembaruan diskriminator dalam arah yang ditunjukkan oleh metode Newton. Dan metode Newton adalah metode paling gradien yang menggunakan informasi dari turunan kedua untuk menyesuaikan arah. Tetapi alasan utama mengapa kita melakukan ini sangat sederhana - karena kita bisa. Setiap penyimpangan dari ini mengarah ke formula gila sehingga tidak mungkin untuk memahami apa pun di sana.

Cara standar untuk menganalisis stabilitas lintasan adalah dengan menganalisis model linier. Mirip dengan penulis Metode Pelatihan untuk GAN mana yang benar-benar bertemu? kita akan menjelajahi lintasan Jacobian:

A = \ begin {bmatrix} \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) \\ - \ nabla _ {\ theta \ phi} ^ 2 I (\ theta, \ phi) ^ T & - \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}


J=I+ etaA


dimana I Apakah matriks identitas.

Kami berasumsi bahwa diskriminator, meskipun tidak optimal, cukup dekat dengan yang optimal untuk dilakukan  nabla theta2I( theta, phi) preceq0 . Dan juga bahwa regularizer (saya sudah menyebutkan bahwa dalam GAN nyata pembeda tidak memiliki titik optimal dan bahwa kita harus membuat titik ini dengan bantuan regulator) tidak iri dengan generator. Saya akan berlari sedikit di depan - pembuat kebijakan terbaik yang kami temukan dalam praktik tergantung, tetapi untuk studi teoritis kami asumsi ini tidak membatasi kami terlalu banyak.

Untuk selanjutnya, kita membutuhkan satu fakta dasar tentang matriks: jika  nabla theta2I( theta, phi) preceq0 dan  nabla phi2I( theta, phi) succeq0 , lalu ada  eta>0 apa norma spektral dari matriks J akan kurang dari atau sama dengan 1.
Buktinya SD - kami menulis JTJ :

JTJ=[I+ etaA]T[I+ etaA]=I+ eta[A+AT+ eta(ATA)]


tapi:

A + A ^ T = \ begin {bmatrix} 2 \ nabla_ \ theta ^ 2 I (\ theta, \ phi) & 0 \\ 0 & -2 \ nabla_ \ phi ^ 2 I (\ theta, \ phi) \ end {bmatrix}


Oleh karena itu, karena kontinuitas nilai eigen, jelas bahwa seseorang dapat memilihnya  eta>0 nilai eigen itu JTJ akan kurang dari atau sama dengan 1. Dari sini kita perlu fakta bahwa  left |J benar | leqslant1 .

Kami tahu itu di lintasan kami  nabla theta2I( theta, phi) preceq0 dilakukan (karena lintasannya "optimal") dan jika ada  nabla phi2I( theta, phi) succeq0 maka lintasan apa pun (termasuk titik kesetimbangan) akan stabil - yaitu, dengan sedikit penyimpangan dari lintasan, sistem akan cenderung untuk kembali ke sana. Ini jelas karena setiap lintasan diskrit dapat direpresentasikan sebagai produk dari Jacobian, dan produk dari matriks dengan norma kurang dari atau sama dengan 1 tidak dapat memiliki norma lebih besar dari 1.

Tetapi banyak fakta mengatakan bahwa bagi GAN tidak selalu demikian. Contoh yang mencolok adalah mode runtuh, yang, apalagi, tidak selalu terjadi dan tidak untuk semua model. Saya berpendapat bahwa kompleksitas pelatihan GAN terkait dengan dua fakta: tidak ada pembeda yang optimal (diperlakukan oleh regulator) dan Jacobian dari generator bukanlah matriks pasti non-negatif. Sekarang kita akan mencoba memahami bagaimana, jika tidak sepenuhnya menghilangkan masalah kedua, maka setidaknya meminimalkan pengaruhnya terhadap keberlanjutan.

Untuk melakukan ini, kami menulis Jacobian dari generator. Ini akan terdiri dari tiga komponen:

J1= intp( epsilon)fG(D theta(G phi( epsilon)))[ nabla phiG phi( epsilon) nablaxD theta(G phi( epsilon))][ nabla phiG phi( epsilon) nablaxD theta(G phi( epsilon))]Td epsilon


J2= intp( epsilon)fG(D theta(G phi( epsilon))) nabla phi2G phi( epsilon) nablaxD theta(G phi( epsilon))d epsilon


J3= intp( epsilon)fG(D theta(G phi( epsilon)))) nabla phiG phi( epsilon)T nabla2xD theta(G phi( epsilon)) nabla phiG phi( epsilon)d epsilon


Karena ekspresi untuk Jacobian sangat kompleks dan tidak mungkin untuk melihat struktur apa pun, semua tindakan kami akan bertujuan untuk memastikan bahwa matriks ini mendekati 0 mungkin.

J1 dapat dilihat bahwa istilah ini sangat mudah diatur ulang - cukup pilih fungsinya fG sedemikian rupa fG(x)=0 atau sehingga "titik operasi" berada di wilayah di mana turunan kedua dekat dengan 0. Omong-omong, pilihan fungsi fG(x)=0 Sesuai dengan WGAN. Apakah WGAN dikenal dengan stabilitasnya?

Dua istilah lainnya hanya dapat dipengaruhi oleh arsitektur jaringan saraf. Sebagai contoh, mereka dibatalkan dalam kasus generator linier dan diskriminator (turunan kedua adalah nol). Omong-omong, aktivasi ReLU muncul dalam pikiran - sayangnya analisis ini tidak berlaku untuk jaringan seperti itu, karena asumsi diferensiabilitas dilanggar. Tetapi dari praktik diketahui bahwa memang GAN dengan jaringan saraf dengan aktivasi linier sedikit demi sedikit dilatih lebih stabil daripada, misalnya, dengan garis singgung hiperbolik. Apakah ini disebabkan oleh Jacobian atau ada alasan lain yang lebih penting masih harus ditebak, tetapi di masa depan saya berencana untuk menyelidiki sedikit masalah ini.

Kita juga dapat menyimpulkan bahwa GAN "lebih suka" jaringan luas. Memang, kita tahu bahwa GAN dengan jaringan dalam lebih sering runtuh.

Kesimpulan


Pada artikel ini, saya mencoba memberikan jawaban atas pertanyaan lama dalam teori GAN. Anda dan saya melihat bahwa agar tempat peristirahatan ada, cukup bahwa pembeda memiliki sifat yang cukup sederhana. Kami juga melihat bahwa interpretasi probabilistik (minimalisasi divergensi) GAN memiliki semua hak untuk hidup dan bahwa dengan algoritma yang cukup sederhana, kami dapat memperkirakan lintasan "optimal" dengan sangat baik. Dan juga bahwa algoritma Adam sudah melakukan ini dan secara teori harus menstabilkan pelatihan GAN, yang dengan cara telah dicatat dalam banyak karya.

Namun, yang cukup penting, kami melihat bahwa rekomendasi empiris untuk memilih arsitektur jaringan saraf dan fungsi kehilangan cukup konsisten dengan teori. Dan yang paling penting, semua masalah dalam belajar karena non-linearitas - model linier dilatih dengan sangat stabil.

Apa yang tertinggal dari artikel? Berlatih. Pada artikel berikutnya, saya akan menjelaskan pembuat peraturan yang saya gunakan untuk memberikan titik istirahat bagi pembeda dan banyak trik untuk meningkatkan stabilitas proses pembelajaran GAN (omong-omong, beberapa dari mereka termotivasi oleh analisis ini).

Dan sebagai contoh, jaringan yang dalam (50 lapisan generator dan 50 lapisan diskriminator) dilatih pada dataset kamar tidur LSUN (hanya 100 ribu iterasi dan kami tidak menggunakan generator rata-rata)

Source: https://habr.com/ru/post/id447494/


All Articles