Apa itu Generative Adversarial Network (GAN)?

Penulis

Jobit Varughese

Technical Content Writer

IBM

Apa yang dimaksud dengan GAN?

Jaringan adversarial generatif (generative adversarial network), atau GAN, adalah model machine learning yang dirancang untuk menghasilkan data realistis dengan mempelajari pola dari kumpulan data yang ada. Model ini beroperasi dalam kerangka kerja pembelajaran tanpa pengawasan dengan menggunakan teknik pembelajaran mendalam, di mana dua jaringan neural bekerja secara berlawanan—satu jaringan menghasilkan data, sementara yang lain mengevaluasi apakah data itu nyata atau buatan.

Meskipun pembelajaran mendalam telah unggul dalam tugas-tugas seperti klasifikasi gambar dan pengenalan suara, menghasilkan data baru, termasuk gambar atau teks yang realistis, menjadi lebih sulit karena kompleksitas komputasi dalam model generatif.

GAN, yang diperkenalkan oleh Ian Goodfellow dalam makalahnya di tahun 2014, Generative Adversarial Nets, menawarkan solusi terobosan untuk tantangan ini.1 Kerangka kerja inovatif ini telah mengubah pemodelan generatif, sehingga memudahkan pengembangan model dan algoritma yang mampu menciptakan data berkualitas tinggi dan realistis.

Bagaimana cara kerja GAN?

Arsitektur GAN terdiri dari dua jaringan neural: jaringan generator dan jaringan diskriminator. Proses pelatihan GAN melibatkan generator yang dimulai dengan input acak (noise) dan membuat data sintetis seperti gambar, teks, atau suara yang meniru data nyata dari set pelatihan yang diberikan. Diskriminator mengevaluasi sampel yang dihasilkan dan data dari set pelatihan dan memutuskan apakah sampel tersebut asli atau palsu. Diskriminator memberikan skor antara 0 dan 1: skor 1 berarti bahwa data terlihat nyata, dan skor 0 berarti data itu palsu. Propagasi balik kemudian digunakan untuk mengoptimalkan kedua jaringan. Artinya, gradien fungsi kerugian dihitung sesuai dengan parameter jaringan, dan parameter ini disesuaikan untuk meminimalkan kerugian. Generator kemudian menggunakan masukan dari diskriminator untuk meningkatkan kemampuan, mencoba membuat data yang lebih realistis.

Struktur GAN

Pelatihan arsitektur GAN melibatkan proses manipulasi input. Model generator mencoba mengelabui model diskriminatif agar mengklasifikasikan data palsu sebagai data asli, sementara diskriminator terus meningkatkan kemampuannya untuk membedakan data asli dan palsu. Proses ini dipandu oleh fungsi kerugian yang mengukur kinerja setiap jaringan. Kerugian generator mengukur seberapa baik generator dapat menipu diskriminator agar percaya datanya nyata. Kerugian generator yang rendah berarti generator berhasil membuat data yang realistis. Kerugian diskriminator mengukur seberapa baik diskriminator dapat membedakan antara data palsu dan data nyata. Kerugian diskriminator yang rendah menunjukkan diskriminator berhasil mengidentifikasi data palsu.  

Sebagai contoh, dalam GAN yang dilatih untuk menghasilkan gambar anjing, generator mengubah noise acak menjadi gambar yang menyerupai anjing, sementara diskriminator mengevaluasi gambar-gambar ini berdasarkan foto anjing yang sebenarnya dari set pelatihan.

Seiring waktu, proses manipulasi input ini mendorong kedua jaringan untuk meningkatkan kemampuan. Hal ini memungkinkan generator untuk membuat data yang meyakinkan dan realistis yang sangat mirip dengan kumpulan data pelatihan asli, sementara diskriminator mempertajam kemampuannya untuk mengidentifikasi perbedaan kecil antara data asli dan palsu. 

Jenis GAN

Vanilla GANs

Vanilla GAN adalah bentuk dasar dari jaringan manipulasi input generatif yang mencakup generator, dan diskriminator yang terlibat dalam insiden serangan yang umum. Generator membuat sampel palsu, dan diskriminator berusaha untuk membedakan antara sampel data asli dan palsu. Vanilla GAN menggunakan perceptron multilayer sederhana (MLP) atau lapisan neuron untuk generator dan diskriminator, sehingga mudah diimplementasikan. MLP ini memproses data dan mengklasifikasikan input untuk membedakan objek yang diketahui dalam kumpulan data. Namun demikian, Vanilla GAN dikenal tidak stabil selama latihan dan sering kali memerlukan penyetelan hyperparameter yang cermat untuk mendapatkan hasil yang bagus.

Conditional GAN (cGAN)

cGAN adalah jenis jaringan manipulasi input generatif yang menyertakan informasi tambahan, yang disebut "label" atau "kondisi," untuk generator dan diskriminator. 2 Label-label ini memberikan konteks, memungkinkan generator untuk menghasilkan data dengan karakteristik tertentu berdasarkan input yang diberikan, daripada hanya mengandalkan noise acak seperti pada vanilla GAN. Produksi terkontrol ini membuat cGAN berguna untuk tugas-tugas yang membutuhkan kontrol yang tepat atas output. cGAN banyak digunakan untuk menghasilkan gambar, teks, dan data sintetis yang disesuaikan dengan objek, topik, atau gaya tertentu. Sebagai contoh, cGAN dapat mengonversi gambar hitam-putih menjadi gambar berwarna dengan mengondisikan generator untuk mengubah warna abu-abu ke dalam model warna merah, hijau, biru (RGB). Demikian pula, cGAN dapat menghasilkan gambar dari input teks, seperti "buat gambar kucing berbulu putih", untuk menghasilkan output yang selaras dengan deskripsi yang disediakan.

Deep convolutional GAN (DCGAN)

GAN konvolusional mendalam (DCGAN) menggunakan neural networks konvolusional (CNN) untuk proses pembuat dan evaluator. Pembuat mengambil data tidak akurat acak sebagai input dan mengubahnya menjadi data terstruktur, seperti gambar. Fungsi ini menggunakan konvolusi yang ditukar (atau dekonvolusi) untuk meningkatkan ketidakakuratan input menjadi output lebih terperinci yang lebih besar, dengan "memperbesar" data tidak akurat untuk membuat gambar yang bermakna. Evaluator menggunakan lapisan konvolusional standar untuk menganalisis data input. Semua lapisan ini membantu evaluator "memperkecil" dan melihat keseluruhan struktur serta detail data untuk membuat keputusan. Pendekatan ini membuat DCGAN efektif untuk menghasilkan gambar berkualitas tinggi dan data terstruktur lainnya. 

StyleGAN

Style GAN adalah jenis jaringan adversarial generatif yang menghasilkan gambar beresolusi tinggi, bahkan hingga resolusi 1024 x 1024. StyleGans dilatih dengan menggunakan kumpulan data gambar dari objek yang sama. Jaringan generator terdiri atas beberapa lapisan, masing-masing bertanggung jawab untuk menambahkan tingkat detail yang berbeda-beda ke gambar, dari fitur dasar hingga tekstur yang rumit. Jaringan diskriminator juga memiliki beberapa lapisan, mengevaluasi tingkat detail dan menilai kualitas keseluruhan.

CycleGAN

Dalam CycleGAN, generator dan diskriminator dilatih secara siklik. Model ini dirancang untuk terjemahan gambar-ke-gambar dengan menggunakan kumpulan data yang tidak berpasangan. Model ini bekerja dengan menerjemahkan gambar ke dalam gaya lain seperti lukisan dengan menggunakan generator dan kemudian menerjemahkannya kembali ke gaya asli dengan menggunakan generator balik. Metode ini membantu memastikan bahwa gambar yang direkonstruksi sangat mirip dengan aslinya melalui proses yang disebut konsistensi siklus. Hasil ini secara khusus berguna untuk tugas-tugas seperti transfer gaya gambar dan peningkatan gambar. 

Laplacian pyramid GAN (LAPGAN)

Laplacian pyramid GAN (LAPGAN) dirancang untuk menghasilkan gambar berkualitas tinggi dengan menyempurnakannya pada berbagai skala. Proses ini dimulai dengan menghasilkan gambar beresolusi rendah dan kemudian secara progresif menambahkan lebih banyak detail dengan resolusi yang lebih tinggi menggunakan serangkaian GAN. Pendekatan multiskala yang dikenal sebagai piramida Laplacian ini, memungkinkan LAPGAN untuk menangani kompleksitas dalam menghasilkan gambar beresolusi tinggi secara lebih efektif.

DiscoGAN

DiscoGAN digunakan untuk mempelajari hubungan lintas domain tanpa memerlukan data pelatihan berpasangan. Sistem ini menggunakan dua generator dan dua diskriminator untuk menerjemahkan gambar dari satu domain ke domain lainnya dan sebaliknya, membantu memastikan bahwa gambar yang direkonstruksi sangat mirip dengan aslinya melalui konsistensi siklus. Hal ini membuat DiscoGAN efektif untuk tugas-tugas seperti penerjemahan gambar-ke-gambar, transfer gaya, dan penyempurnaan gambar, bahkan dengan kumpulan data yang tidak berpasangan. 

Tren AI terbaru, dipersembahkan oleh para pakar

Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan dikirimkan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Pengaplikasian GAN

GAN dapat digunakan untuk berbagai pengaplikasian dalam visi komputer, pembuatan gambar, deteksi objek, terjemahan gambar-ke-gambar, pembuatan teks ke gambar, prediksi frame berikutnya dalam video, dan banyak lagi.

Pembuatan gambar

GAN digunakan untuk menghasilkan gambar fotorealistik dari sampel yang belum pernah ada dan untuk menciptakan representasi visual dari deskripsi tekstual, memungkinkan penciptaan gambar berdasarkan atribut atau pemandangan tertentu. BigGAN, yang dilatih menggunakan kumpulan data besar, menghasilkan data berdasarkan kelas atau kondisi tertentu dan mencapai hasil yang canggih dalam pembuatan gambar.3 Model ini digunakan untuk berbagai aplikasi, termasuk sintesis gambar, pewarnaan, dan rekonstruksi. Sebagai contoh, GAN-BVRM, metode rekonstruksi visual Bayesian berbasis GAN yang baru, menggunakan pengklasifikasi untuk mengonversi kode data pencitraan resonansi magnetik fungsional (fMRI). Generator BigGAN yang telah dilatih sebelumnya menghasilkan gambar spesifik untuk setiap kategori dan model pengodean memilih gambar yang selaras dengan aktivitas otak, mencapai peningkatan kealamian dan keakuratan dalam merekonstruksi rangsangan gambar. GAN membuat langkah signifikan dalam perawatan kesehatan dengan menghasilkan data medis yang realistis, seperti MRI, pemindaian CT, dan sinar-X, untuk pelatihan dan analisis, dan dengan menciptakan struktur molekul baru untuk penemuan obat. 

Gambar resolusi super

GAN dapat menyempurnakan gambar beresolusi rendah dengan menghasilkan variasi beresolusi tinggi, sehingga meningkatkan kualitas dan detail gambar. Sebagai contoh, StyleGAN2 dari NVIDIA menghasilkan gambar beresolusi tinggi dan sangat realistis dengan kontrol yang sangat mendetail pada berbagai atribut termasuk konten, identitas, ekspresi, dan pose, sehingga pengguna dapat membuat dan memanipulasi gambar untuk aplikasi artistik dan praktis.4

Penerjemahan gambar ke gambar

GAN menyelesaikan transfer gaya dan penyuntingan gambar dengan mengubah gambar dari satu domain ke domain lainnya, misalnya mengubah sketsa menjadi versi yang dilukis. Contohnya, CycleGAN digunakan untuk mengubah foto menjadi lukisan. Proses ini melibatkan satu generator yang mengonversi gambar dari domain sumber (foto) ke domain target (lukisan) dan sebaliknya melalui batasan siklik, membantu memastikan pemetaan mempertahankan koherensi semantik. 

Penargetan ulang video 

GAN digunakan untuk penargetan ulang video tanpa pengawasan, mengadaptasi konten video agar sesuai dengan rasio aspek dan format yang berbeda sekaligus mempertahankan informasi visual yang penting. Recycle-GAN memanfaatkan strategi siklus serupa yang umumnya ditemukan pada CycleGAN, menerapkannya secara khusus pada data video. Sebagai contoh, Recycle-GAN dapat mengonversi video layar lebar ke format persegi untuk platform media sosial, membantu memastikan bahwa elemen kunci dan gerakan dalam video tetap utuh.5

Manipulasi atribut wajah 

GAN memungkinkan perubahan fitur wajah dalam gambar, seperti mengubah ekspresi atau efek penuaan, menampilkan potensi mereka dalam aplikasi hiburan dan media sosial. StyleGAN beroperasi dengan menerapkan modifikasi di setiap lapisan pada sampel yang dihasilkan berdasarkan 'gaya' yang diekstrak dari ruang laten. Proses ini memungkinkan kontrol intuitif atas berbagai atribut, termasuk warna rambut dan ekspresi wajah, sehingga pengguna dapat memanipulasi wajah menurut fitur tertentu tanpa perlu penyesuaian manual. Sebagai contoh, StyleGAN dapat digunakan untuk mengubah warna rambut seseorang dari cokelat menjadi pirang atau untuk menambahkan senyuman pada ekspresi wajah yang netral. 

Deteksi objek 

GAN digunakan dalam deteksi untuk meningkatkan kualitas dan keberagaman data pelatihan, yang secara signifikan dapat meningkatkan kinerja deteksi model. Dengan menghasilkan gambar sintetis yang sangat mirip dengan data asli, GAN menambah kumpulan data pelatihan, membantu model menggeneralisasi dengan lebih baik dan berkinerja lebih akurat. Sebagai contoh, penelitian telah menunjukkan bahwa kinerja model pembelajaran mendalam untuk deteksi objek secara signifikan memburuk ketika diterapkan pada gambar dengan kualitas yang berkurang, seperti gambar yang terpengaruh oleh noise, blur, atau distorsi lainnya.6 Makalah ini menyajikan kerangka kerja GAN-DO, yang menggunakan GAN untuk meningkatkan ketahanan model deteksi objek terhadap berbagai kualitas gambar tanpa menambahkan kompleksitas pada arsitektur model atau kecepatan inferensi. Hasil eksperimen menunjukkan bahwa GAN-DO lebih unggul dari metode fine tuning tradisional, sehingga menghasilkan peningkatan akurasi dalam deteksi objek.

Mixture of Experts | 12 Desember, episode 85

Decoding AI: Rangkuman Berita Mingguan

Bergabunglah dengan panel insinyur, peneliti, pemimpin produk, dan sosok kelas dunia lainnya selagi mereka mengupas tuntas tentang AI untuk menghadirkan berita dan insight terbaru seputar AI.

Model generatif lainnya untuk menghasilkan data sintetis

Selain GAN, variational autoencoders (VAE) adalah model pembelajaran mendalam lainnya yang dapat membuat sampel data baru yang meniru data dunia nyata. VAE adalah model probabilistik, yang berarti model ini merepresentasikan data dalam bentuk distribusi probabilitas, yang menggambarkan kemungkinan hasil atau nilai yang berbeda yang terdapat dalam data. Model-model ini dirancang untuk mempelajari pola dari kumpulan data pelatihan dan membuat data baru yang merupakan variasi dari kumpulan data asli, dan bukan replika yang sama persis. Variational autoencoder (VAE) berisi dua komponen. Enkoder (model pengenalan) memampatkan data input yang kompleks seperti gambar menjadi data dimensi rendah yang lebih sederhana, dan dekoder (model generatif) menciptakan kembali input asli dari representasi terkompresi. VAE juga dapat menghasilkan sampel data yang benar-benar baru yang dipelajari dari pola kumpulan data pelatihan. VAE biasanya menghasilkan output yang lebih kabur dan kurang tajam tetapi lebih stabil untuk dilatih, sedangkan GAN menghasilkan output yang lebih tajam dan lebih realistis tetapi lebih sulit untuk dilatih karena ketidakstabilan.

Pada akhirnya, pilihan antara VAE dan GAN tergantung pada persyaratan spesifik tugas, seperti kualitas output yang diinginkan, stabilitas pelatihan, dan kebutuhan akan representasi laten yang dapat ditafsirkan, sehingga setiap model berharga secara unik dalam pengaplikasian yang berbeda.

Manfaat dan tantangan GAN

Generative adversarial networks (GAN) dapat menghasilkan data yang sangat realistis dan beragam, seperti gambar, teks, dan audio. Jaringan ini digunakan dalam berbagai pengaplikasian termasuk pemrosesan bahasa alami (NLP) untuk menghasilkan data teks dan meningkatkan kualitas model bahasa, dan dalam pembuatan musik untuk membuat komposisi baru dan suara instrumen yang realistis. Simulasi dan game menggunakan GAN untuk menghasilkan lingkungan dan karakter yang realistis serta deteksi anomali dengan mengidentifikasi pola yang menyimpang dari kondisi yang wajar. GAN juga membantu penelitian ilmiah dengan menyimulasikan data yang kompleks untuk eksperimen yang mahal atau tidak praktis untuk dilakukan. Jaringan ini meningkatkan kemampuan proses machine learning (ML) melalui augmentasi data, meningkatkan kuantitas dan keberagaman set pelatihan untuk mengatasi tantangan big data yang terbatas. GAN diharapkan dapat berintegrasi lebih lanjut dengan teknologi seperti pembelajaran penguatan, robotika, dan NLP untuk memajukan sistem kecerdasan buatan (AI). 

Terlepas dari maraknya transformer, GAN tetap relevan karena arsitekturnya yang ringan dan efisiensi komputasi, menjadikannya ideal untuk penerapan edge. Dengan parameter yang lebih sedikit dibandingkan dengan transformer, GAN menawarkan pembuatan terkontrol untuk manipulasi fitur yang mendetail (misalnya, atribut wajah), yang menyederhanakan penyempurnaan untuk tugas tertentu. GAN memberikan inferensi yang lebih cepat karena membutuhkan satu pass maju (atau aliran input satu kali melalui jaringan neural untuk menghasilkan output). Hal ini menjadikannya ideal untuk aplikasi real-time pada perangkat edge yang memiliki sumber daya terbatas seperti ponsel dan sistem IoT. Keunggulan ini membuat GAN menjadi pilihan praktis untuk tugas-tugas seperti penerjemahan gambar, sintesis video resolusi super dan real-time di lingkungan edge. 

Namun, GAN menghadapi tantangan yang signifikan. Salah satu masalah utama adalah ketidakstabilan pelatihan, di mana generator dan diskriminator mungkin tidak menyatu dengan benar, yang menyebabkan output berkualitas buruk. Mode collapse adalah tantangan lain di mana generator menghasilkan variasi yang terbatas, sehingga tidak dapat menangkap keberagaman penuh dari data pelatihan. GAN juga membutuhkan data dalam jumlah besar dan sumber daya komputasi yang besar, yang dapat menjadi penghalang untuk penggunaannya secara luas. Mengevaluasi kualitas output yang dihasilkan GaN merupakan tantangan, karena metrik tradisional mungkin tidak sepenuhnya menangkap nuansa data yang dihasilkan. Membantu memastikan penggunaan sampel yang dihasilkan secara etis adalah masalah yang makin meningkat, karena GAN dapat digunakan untuk membuat deep fake dan konten yang berpotensi berbahaya lainnya.

Cara menerapkan model GAN

GAN dapat diimplementasikan dengan menggunakan Tensorflow dan Keras. Implementasi ini membutuhkan kumpulan data pelatihan, skrip generator, dan skrip diskriminator untuk membuat model GAN di Python. Berikut ini adalah panduan langkah demi langkah untuk membantu Anda memulai:

Langkah 1: Impor pustaka yang diperlukan, termasuk TensorFlow dan pustaka penting lainnya seperti numpy dan matplotlib untuk membangun dan melatih model GAN. 

Langkah 2: Muat dan lakukan pemrosesan awal kumpulan data, untuk membantu memastikan kumpulan data tersebut mewakili distribusi data target (misalnya, gambar, teks, dan lainnya).  

Langkah 3: Bangun model generator dengan menggunakan lapisan TensorFlow atau Keras yang mengambil noise acak dan menghasilkan sampel data yang sesuai dengan distribusi target.

Langkah 4: Bangun model diskriminator untuk mengklasifikasikan sampel data nyata vs. sampel data palsu yang dihasilkan oleh generator. 

Langkah 5: Gunakan pengoptimal yang sesuai untuk generator dan diskriminator dan tentukan fungsi kerugian.

Langkah 6: Gabungkan generator dan diskriminator ke dalam satu model GAN untuk melatih generator agar dapat menipu diskriminator. 

Langkah 7: Terapkan loop untuk bergantian antara melatih diskriminator dan generator dengan data nyata dan palsu.

Langkah 8: Analisis output generator dan akurasi diskriminator selama siklus untuk membantu memastikan konvergensi.

Langkah 9: Gunakan generator terlatih untuk menghasilkan sampel baru yang meniru distribusi data target.

Langkah 10: Buat plot atau analisis data yang dihasilkan untuk memvalidasi seberapa baik GAN telah mempelajari distribusi target. 

Dengan mengikuti langkah-langkah ini, model GAN dasar dapat diimplementasikan dengan menggunakan TensorFlow.  

Masa depan GAN menjanjikan, dengan kemajuan yang diharapkan dalam hal realisme, stabilitas, efisiensi, dan pertimbangan etika. Ketika GAN menjadi lebih terintegrasi dengan teknologi lain dan menemukan aplikasi baru, GAN akan terus mengubah berbagai industri dan bidang.

Solusi terkait
IBM watsonx.ai

Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.

Jelajahi solusi AI
Konsultasi dan layanan AI

Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Dapatkan akses satu atap ke kemampuan yang mencakup siklus hidup pengembangan AI. Hasilkan solusi AI yang kuat dengan antarmuka ramah pengguna, alur kerja yang efisien, serta akses ke API dan SDK berstandar industri.

Jelajahi watsonx.ai Pesan demo langsung
Catatan kaki

1 Goodfellow, I. J., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., ... & Bengio, Y. (2014). Generative adversarial nets. Advances in neural information processing systems27.

2 Alqahtani, Hamed & Kavakli, Manolya & Kumar, Gulshan. (2019). Aplikasi Jaringan Adversarial Generatif (GAN): Ulasan yang Diperbarui. Arsip Metode Komputasi dalam Teknik. 28. 10.1007/s11831-019-09388-y.

3 Qiao, K., Chen, J., Wang, L., Zhang, C., Tong, L., & Yan, B. (2020). BigGAN-based Bayesian reconstruction of natural images from human brain activity. Neuroscience, 444, 92–105. https://doi.org/10.1016/j.neuroscience.2020.07.040.

4 Alarcon, N. (2020). Synthesizing High-Resolution Images with StyleGAN2. Blog Teknis NVIDIA. https://developer.nvidia.com/blog/synthesizing-high-resolution-images-with-stylegan2.

5 Bansal, A., Ma, S., Ramanan, D., & Sheikh, Y. (2018). Recycle-GAN: Unsupervised Video Retargeting. arXiv. https://doi.org/10.48550/arXiv.1808.05174.

6 Prakash, CD, Shrivastava, A., & Torresani, L. (2019). It GAN DO Better: GAN-based Detection of Objects on Images with Varying Quality. arXiv. https://arxiv.org/abs/1912.01707.