Penterjemah |. Zhu Xianzhong
Pengulas |. New York Times, 90% tenaga di pusat data dibazirkan kerana kebanyakan data yang dikumpul oleh syarikat tidak pernah dianalisis atau digunakan dalam sebarang bentuk. Lebih khusus lagi, ini dipanggil "Data Gelap."
"Data gelap" merujuk kepada data yang diperoleh melalui pelbagai operasi rangkaian komputer tetapi tidak digunakan dalam sebarang cara untuk memperoleh cerapan atau membuat keputusan. Keupayaan organisasi untuk mengumpul data mungkin melebihi daya pemprosesannya untuk menganalisisnya. Dalam sesetengah kes, organisasi mungkin tidak mengetahui bahawa data sedang dikumpul. IBM menganggarkan bahawa kira-kira 90% daripada data yang dijana oleh penderia dan penukaran analog-ke-digital tidak pernah digunakan. — Takrifan “Data Gelap” daripada Wikipedia
Dari perspektif pembelajaran mesin, salah satu sebab utama data ini tidak berguna untuk melukis sebarang cerapan ialah kekurangan label. Ini menjadikan algoritma pembelajaran tanpa pengawasan sangat menarik untuk mengeksploitasi potensi data ini. Rangkaian Adversarial GeneratifPada 2014, Ian Goodfello et al mencadangkan kaedah baharu untuk menganggar model generatif melalui proses lawan. Ia melibatkan latihan dua model bebas secara serentak: model penjana yang cuba memodelkan pengedaran data, dan diskriminator yang cuba mengklasifikasikan input sebagai data latihan atau data palsu melalui penjana. Kertas kerja ini menetapkan pencapaian yang sangat penting dalam bidang pembelajaran mesin moden dan membuka cara baharu untuk pembelajaran tanpa pengawasan. Pada tahun 2015, makalah GAN konvolusi yang mendalam yang diterbitkan oleh Radford et al berjaya menghasilkan imej 2D dengan menggunakan prinsip rangkaian konvolusi, dengan itu terus membina idea ini dalam kertas itu. Melalui artikel ini, saya cuba menerangkan komponen utama yang dibincangkan dalam kertas di atas dan melaksanakannya menggunakan rangka kerja PyTorch. Apakah aspek GAN yang menarik? Untuk memahami kepentingan GAN atau DCGAN (Deep Convolutional Generative Adversarial Networks), mari kita fahami dahulu perkara yang menjadikannya begitu popular. 2. Penjana dan diskriminasi bertindak sebagai pengekstrak ciri yang sangat baik untuk kes penggunaan dengan data berlabel terhad, atau menjana data tambahan untuk meningkatkan latihan model kuadratik, kerana mereka boleh menjana sampel palsu sebaliknya Gunakan teknik penambahan. 3. GAN menyediakan alternatif kepada teknik kemungkinan maksimum. Proses pembelajaran lawan mereka dan fungsi kos bukan heuristik menjadikan mereka sangat menarik untuk pembelajaran pengukuhan. 4. Penyelidikan tentang GAN sangat menarik, dan hasilnya telah menyebabkan perdebatan meluas tentang kesan ML/DL. Sebagai contoh, Deepfake ialah aplikasi GAN yang menindih muka seseorang pada orang sasaran, yang sangat kontroversial kerana ia berpotensi digunakan untuk tujuan jahat. 5. Akhir sekali, bekerja dengan rangkaian seperti ini adalah hebat dan semua penyelidikan baharu dalam bidang ini sangat menarik. Seni Bina KeseluruhanSenibina Deep Convolutional GAN
Seperti yang kita bincangkan sebelum ini, kami akan berusaha melalui DCGAN, DCGAN Cuba untuk melaksanakan idea teras GAN, rangkaian konvolusi untuk menjana imej realistik.
Penjana
Rajah seni bina penjana
Penjana adalah bahagian yang paling kami minati kerana ia adalah yang menghasilkan imej palsu untuk cuba memperbodohkan si diskriminasi.
Antaranya, lapisan 2 hingga lapisan 5 membentuk blok penjana teras, yang boleh diulang N kali untuk mendapatkan bentuk imej output yang dikehendaki.
Berikut ialah kod utama cara kami melaksanakannya dalam PyTorch (untuk kod sumber lengkap, lihat alamat https://github.com/akash-agni/ReadThePaper/blob/main/DCGAN/dcgan .py).
Gunakan penjana rangka kerja PyTorch untuk melaksanakan kod utama
Rajah seni bina Diskriminator
Sekarang, mari kita lihat dengan lebih dekat seni bina diskriminasi.
Lapisan Concat: Lapisan ini menggabungkan imej palsu dan sebenar dalam satu kelompok untuk memberi suapan kepada diskriminator, tetapi ini juga boleh dilakukan secara berasingan, hanya untuk mendapatkan kehilangan penjana.Berikut ialah cara kami melaksanakannya dalam PyTorch (kod sumber lengkap boleh didapati di https://github.com/akash-agni/ReadThePaper/blob/main/DCGAN/dcgan.py).
Bahagian kod utama diskriminator yang dilaksanakan dengan PyTorch
Latihan lawan
Formula pengiraan fungsi kos lawan
Dalam persekitaran aplikasi praktikal, persamaan di atas mungkin tidak memberikan kecerunan yang mencukupi untuk G belajar dengan baik. Pada peringkat awal pembelajaran, apabila G lemah, D boleh menolak sampel dengan keyakinan yang tinggi kerana ia berbeza dengan ketara daripada data latihan. Dalam kes ini, fungsi log(1 − D(G(z))) mencapai ketepuan. Daripada melatih G untuk meminimumkan log(1 − D(G(z))), kami melatih G untuk memaksimumkan logD(G(z)). Fungsi objektif ini menjana mata tetap yang sama untuk G dan D dinamik, tetapi memberikan pengiraan kecerunan yang lebih kukuh pada awal pembelajaran. ——kertas arxiv
Ini boleh menjadi rumit kerana kami melatih dua model pada masa yang sama, dan GAN terkenal sukar untuk dilatih, seperti yang akan kita bincangkan kemudian. isu yang diketahui dipanggil mod runtuh.
Makalah mengesyorkan menggunakan pengoptimum Adam dengan kadar pembelajaran 0.0002 kadar pembelajaran yang rendah menunjukkan bahawa GAN cenderung untuk menyimpang dengan sangat cepat. Ia juga menggunakan momentum tertib pertama dan kedua dengan nilai 0.5 dan 0.999 untuk mempercepatkan lagi latihan. Model ini dimulakan kepada taburan wajaran biasa dengan min sifar dan sisihan piawai 0.02.
Berikut menunjukkan cara kami melaksanakan gelung latihan untuk ini (lihat https://github.com/akash-agni/ReadThePaper/blob/main/DCGAN/dcgan.py untuk kod sumber yang lengkap).
Gelung latihan DCGAN
Sebaik-baiknya, kami mahu penjana menghasilkan pelbagai output. Sebagai contoh, jika ia menjana muka, ia harus menjana wajah baharu untuk setiap input rawak. Walau bagaimanapun, jika penjana menghasilkan output munasabah yang cukup baik untuk memperdayakan diskriminator, ia mungkin menghasilkan output yang sama berulang kali.
Akhirnya, penjana akan mengoptimumkan diskriminator tunggal secara berlebihan dan berputar di antara satu set kecil output, situasi yang dipanggil "mod runtuh".
Kaedah berikut boleh digunakan untuk membetulkan keadaan.
Ringkasnya, kertas kerja mengenai GAN dan DCGAN yang dinyatakan di atas dalam artikel ini hanyalah kertas mercu tanda kerana ia mempelopori bidang pembelajaran tanpa pengawasan Cara baharu. Kaedah latihan adversarial yang dicadangkan di dalamnya menyediakan kaedah baharu untuk model latihan yang menyerupai proses pembelajaran dunia sebenar. Jadi ia akan menjadi sangat menarik untuk melihat bagaimana bidang ini berkembang.
Akhir sekali, anda boleh menemui kod sumber pelaksanaan lengkap projek sampel dalam artikel ini pada repositori kod sumber GitHub saya.
Pengenalan penterjemahZhu Xianzhong, editor komuniti 51CTO, guru komputer di sebuah universiti di Weifang dan seorang veteran dalam industri pengaturcaraan bebas.Tajuk asal: Melaksanakan Deep Convolutional GAN, pengarang: Akash Agnihotri
Atas ialah kandungan terperinci Rangkaian musuh generatif konvolusi yang mendalam dalam amalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!