Apa itu jaringan saraf generatif berlawanan (GAN)?

Jaringan saraf generatif berlawanan (GAN) adalah jenis arsitektur deep learning yang menggunakan dua jaringan neural yang bersaing untuk menghasilkan data baru. Kedua jaringan ini, generator dan diskriminator, saling melatih satu sama lain, sehingga membantu menghasilkan output yang lebih akurat. GAN dapat berguna di berbagai bidang, termasuk computer vision, robotika, pembuatan gambar, sintesis video, dan natural language processing.

Bagaimana cara kerja GAN?

Cara terbaik untuk memahami cara kerja GAN adalah melalui analogi: kompetisi antara pemalsu seni (generator) dan kritikus seni (diskriminator).

  • Pemalsu (generator): Tujuan pemalsu adalah membuat lukisan yang tidak dapat dibedakan dari mahakarya asli. Awalnya, upaya ini masih kasar dan jelas palsu. Prosesnya dimulai dengan membuat gambar acak (seperti melemparkan cat ke kanvas).
  • Kritikus (diskriminator): Tugas kritikus adalah membedakan lukisan asli dari lukisan palsu. Awalnya, ini mudah. Kritikus melihat karya seni asli dan karya pemalsu, lalu memberikan masukan, yang pada dasarnya mengatakan kepada pemalsu, "Ini palsu."
  • Feedback loop: Pemalsu menggunakan masukan ini untuk menjadi lebih baik. AI ini mempelajari apa yang membuat lukisan terlihat nyata dan menyesuaikan tekniknya. Kritikus juga menjadi lebih baik, belajar mengenali ketidaksempurnaan yang lebih halus seiring peningkatan kualitas pemalsuan.

"Permainan" berlawanan ini terus berlanjut, dengan kedua jaringan menjadi semakin cerdas. Pada akhirnya, pemalsu menjadi sangat terampil sehingga kritikus tidak lagi dapat membedakannya dengan andal. Pada tahap ini, GAN telah dilatih dan dapat menghasilkan data baru yang sangat realistis.

CNN versus GAN

Jaringan neural konvolusional (CNN) dan jaringan saraf generatif berlawanan (GAN) adalah arsitektur deep learning, tetapi keduanya memiliki keunggulan dan aplikasi yang berbeda. CNN sering digunakan untuk tugas klasifikasi gambar dan deteksi objek, sedangkan GAN umumnya dirancang untuk menghasilkan instance data baru.

Fitur

CNN

GAN

Penggunaan data

Set data yang sebagian besar berlabel

Set data berlabel atau tidak berlabel

Output

Klasifikasi, ekstraksi fitur

Instance data baru yang beragam

Jenis model

Model

Peringkas

Tugas utama

Klasifikasi gambar, pengenalan objek

Pembuatan gambar, pengayaan data, pembuatan data sintetis

Fitur

CNN

GAN

Penggunaan data

Set data yang sebagian besar berlabel

Set data berlabel atau tidak berlabel

Output

Klasifikasi, ekstraksi fitur

Instance data baru yang beragam

Jenis model

Model

Peringkas

Tugas utama

Klasifikasi gambar, pengenalan objek

Pembuatan gambar, pengayaan data, pembuatan data sintetis

Penting untuk diperhatikan bahwa CNN sering kali digunakan dalam arsitektur GAN, yang paling umum berfungsi sebagai jaringan diskriminator. Tugas diskriminator untuk membedakan gambar asli dari gambar palsu adalah masalah klasifikasi gambar, yang biasanya cocok untuk CNN dengan kemampuan ekstraksi fitur yang kuat.

Jenis GAN yang umum

Meskipun semua GAN memiliki struktur generator-diskriminator yang sama, berbagai variasi telah dikembangkan untuk memecahkan masalah tertentu. Berikut beberapa jenis yang paling penting:

  • Conditional GAN (cGAN): Bagaimana jika Anda ingin mengontrol apa yang dibuat oleh GAN? cGAN memungkinkan Anda menambahkan kondisi. Daripada hanya membuat "wajah acak", Anda dapat memerintahkannya untuk membuat "perempuan berambut pirang yang tersenyum". Hal ini penting untuk aplikasi text-to-image.
  • CycleGAN: Bagaimana jika Anda ingin menerjemahkan gambar dari satu gaya ke gaya lain tanpa memiliki pasangan gambar yang cocok untuk pelatihan (misalnya, mengubah foto kuda menjadi zebra)? CycleGAN dirancang untuk "terjemahan gambar ke gambar yang tidak berpasangan" ini, sehingga membuatnya terkenal untuk transfer gaya dan transfigurasi objek.
  • StyleGAN: Jenis GAN ini berfokus pada pembuatan gambar realistis berkualitas sangat tinggi (terutama wajah) dan memberi pengguna kontrol terperinci atas "gaya" gambar, seperti usia, rambut, atau ekspresi.
  • Super-resolution GAN (SRGAN): GAN ini mengkhususkan diri dalam mengambil gambar buram beresolusi rendah dan meningkatkan resolusinya menjadi versi yang tajam dan beresolusi tinggi dengan menghadirkan detail realistis.

Meskipun konsep dasar penggunaan dua jaringan berlawanan tetap konsisten di seluruh variasi jaringan saraf generatif berlawanan, para peneliti telah mengeksplorasi berbagai modifikasi arsitektur dan pelatihan untuk mengatasi keterbatasan dan meningkatkan performa untuk aplikasi tertentu.

Untuk apa GAN digunakan?

GAN telah membuka berbagai kemungkinan baru di banyak industri. Penerapannya umumnya termasuk dalam area utama berikut:

Pembuatan dan manipulasi konten

Ini adalah penerapan GAN yang paling terkenal. Fitur ini mencakup pembuatan gambar realistis tentang orang, tempat, dan objek; pembuatan seni digital dan musik; serta pengaktifan alat pengeditan gambar yang canggih seperti transfer gaya (membuat foto terlihat seperti lukisan), resolusi super (mempertajam gambar buram), dan sintesis text-to-image.

Pengayaan dan privasi data

Data berkualitas tinggi adalah bahan bakar machine learning, tetapi data tersebut bisa langka, mahal, atau bersifat pribadi. GAN membantu menyelesaikan masalah ini dengan membuat data sintetis. Dalam layanan kesehatan, GAN dapat membuat pemindaian medis yang realistis tetapi anonim untuk melatih model diagnostik tanpa melanggar privasi pasien. Di bidang keuangan, LLM dapat menghasilkan data transaksi sintetis untuk melatih sistem deteksi penipuan yang lebih baik. Hal ini membantu mengatasi kelangkaan data dan menyeimbangkan set data.

Simulasi dan prediksi

GAN dapat mempelajari pola dalam sistem yang kompleks untuk membuat simulasi yang realistis. Hal ini digunakan untuk menghasilkan beragam skenario untuk melatih mobil otonom, memprediksi frame berikutnya dalam video, atau bahkan menemukan struktur molekuler potensial dalam penemuan obat.

Deteksi anomali dan ancaman

Dengan melatih GAN pada data "normal", GAN menjadi sangat baik dalam menemukan apa pun yang tidak sesuai dengan pola. Teknik ini digunakan untuk mendeteksi aktivitas keuangan yang menipu, mengidentifikasi penyusupan jaringan dalam pengamanan cyber, dan menemukan cacat dalam manufaktur.

Membangun dengan GAN di Google Cloud

Pengembangan dan deployment GAN memerlukan daya komputasi yang signifikan dan platform MLOps yang tangguh. Google Cloud menawarkan alat untuk mendukung seluruh alur kerja:

  • Untuk membangun dan mengelola model: Vertex AI adalah platform machine learning terkelola yang menyederhanakan proses membangun, melatih, dan men-deploy model kompleks seperti GAN. Vertex AI menyediakan lingkungan terpadu untuk mengelola data dan eksperimen Anda.
  • Untuk pelatihan berperforma tinggi: Pelatihan GAN memerlukan komputasi intensif. Cloud TPU adalah akselerator hardware kustom Google yang dirancang untuk mempercepat pelatihan deep learning secara signifikan, sehingga Anda dapat melakukan iterasi pada arsitektur GAN yang kompleks dengan jauh lebih cepat.
  • Untuk deployment yang skalabel: Setelah model Anda dilatih, Google Kubernetes Engine (GKE) menyediakan lingkungan yang canggih dan skalabel untuk men-deploy GAN dalam container sebagai bagian dari aplikasi yang lebih besar.

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.