Generate fake image menggunakan Conditional GAN

Eki Virgiana

Sosial Media


0 orang menyukai ini
Suka

Summary

Conditional GAN (CGAN) adalah varian dari arsitektur Generative Adversarial Network (GAN) yang memungkinkan kontrol dan manipulasi data generatif dengan menggunakan label kondisional sebagai input. Dalam CGAN, generator dan discriminator tidak hanya beroperasi pada data gambar tetapi juga menerima input berupa label kondisional yang berkaitan dengan gambar yang ingin dihasilkan. Generator menghasilkan gambar palsu yang dikendalikan oleh label kondisional tersebut, sementara discriminator berusaha membedakan antara gambar palsu dengan label kondisional dan gambar asli dengan label yang sama

Description

Conditional GAN (CGAN) adalah varian dari arsitektur Generative Adversarial Network (GAN) yang memungkinkan kontrol dan manipulasi data generatif dengan menggunakan label kondisional sebagai input. Dalam CGAN, generator dan discriminator tidak hanya beroperasi pada data gambar tetapi juga menerima input berupa label kondisional yang berkaitan dengan gambar yang ingin dihasilkan. Generator menghasilkan gambar palsu yang dikendalikan oleh label kondisional tersebut, sementara discriminator berusaha membedakan antara gambar palsu dengan label kondisional dan gambar asli dengan label yang sama.

Dengan adanya label kondisional, CGAN mampu menghasilkan gambar-gambar yang lebih spesifik dan dapat dikontrol secara lebih tepat. Contohnya, dalam tugas penghasilan gambar wajah, label kondisional dapat digunakan untuk menghasilkan gambar wajah dengan atribut tertentu seperti usia, jenis kelamin, atau emosi. CGAN telah digunakan dalam berbagai aplikasi seperti sintesis gambar, modifikasi gambar, transfer gaya, dan sebagainya. Dengan memanfaatkan label kondisional, CGAN memberikan fleksibilitas yang lebih besar dalam menghasilkan data generatif yang disesuaikan dengan kebutuhan atau kriteria tertentu.

berikut ini adalah langkah langkah pembuatan model CGAN :

1. Data preparation

Langkah awal dalam membuat model CGAN adalah menyiapkan dataset yang akan ditraining ke dalam model arsitektur generator dan diskriminator. dataset akan di download melalui link google drive dengan id seperti gambar dibawah dan akan di unzip ke dalam directory google colab


 


 

2. Dataset dan Dataloader

Langkah kedua dalam membuat model dcgan adalah membuat dataset dan dataloader. Dataset adalah kumpulan data yang digunakan dalam pembelajaran mesin. Ini dapat berupa kumpulan gambar, teks, suara, atau jenis data lainnya. Dataset biasanya terdiri dari contoh-contoh data yang direpresentasikan dalam format yang dapat diakses oleh model pembelajaran mesin.

Dataloader adalah komponen dalam framework seperti PyTorch yang membantu memuat dan mempersiapkan data dari dataset untuk digunakan dalam pelatihan model. Dataloader mengatur bagaimana data dibagi menjadi batch-batch yang lebih kecil, melakukan pengocokan (shuffle) data untuk memperoleh variasi, dan mengatur penggunaan sumber daya seperti penggunaan beberapa worker untuk mempercepat pembacaan data. Secara singkat, dataset berisi data yang digunakan untuk melatih atau menguji model, sementara dataloader adalah alat yang membantu dalam memuat dan mengelola data tersebut agar dapat digunakan secara efisien dalam proses pelatihan atau pengujian model.


 

 

3.  Arsitektur Generator dan diskriminator

Langkah ketiga dalam membuat model dcgan adalah membuat arsitektur generator dan diskriminator. Dalam arsitektur Conditional Generative Adversarial Network (CGAN), terdapat dua komponen utama: generator dan discriminator.

1. Generator:
Generator bertanggung jawab untuk menghasilkan data palsu yang menyerupai data asli berdasarkan input kondisional. Arsitektur generator pada CGAN umumnya terdiri dari lapisan-lapisan neural network, seperti lapisan linier (fully connected layer) dan lapisan konvolusi transposisi (transpose convolution layer). Input generator terdiri dari vektor acak (misalnya, vektor latensi) dan label kondisional yang mewakili atribut yang diinginkan untuk menghasilkan gambar yang spesifik. Generator bekerja untuk menghasilkan data palsu yang semakin mendekati data asli seiring berjalannya waktu dan pelatihan.

2. Discriminator:
Discriminator bertugas membedakan antara data asli dengan data palsu yang dihasilkan oleh generator. Arsitektur discriminator pada CGAN mirip dengan discriminator dalam GAN biasa. Ini biasanya terdiri dari lapisan-lapisan neural network seperti lapisan konvolusi, lapisan linier, dan fungsi aktivasi seperti ReLU atau LeakyReLU. Input discriminator adalah gambar (atau data lainnya) bersama dengan label kondisional yang sesuai. Discriminator berperan dalam mempelajari perbedaan antara data asli dengan data palsu dan memberikan probabilitas diskriminasi, yaitu probabilitas bahwa data tersebut berasal dari data asli.

Dalam pelatihan CGAN, generator dan discriminator saling berinteraksi dan bersaing satu sama lain. Generator berusaha menghasilkan data palsu yang semakin meyakinkan dan mirip dengan data asli berdasarkan label kondisional, sementara discriminator berusaha membedakan antara data asli dan palsu dengan label yang sama. Proses ini terus berlanjut dan generator serta discriminator belajar dari kesalahan mereka melalui optimisasi berbasis gradien untuk meningkatkan kinerja mereka seiring berjalannya waktu.


 


 

4.  Persiapan Training

Langkah keempat dalam membuat model dcgan adalah persiapan training, persiapan training meliputi membuat configurasi untuk menyimpan z_dim, menyiapkan criterion, menyiapkan optimizer dan menyiapkan folder untuk menyimpan model dan output DCGAN. dibawah ini adalah contoh gambar persiapan training DCGAN


 


 


 

5.  Training DCGAN

Pelatihan CGAN (Conditional Generative Adversarial Network) adalah proses di mana arsitektur model CGAN dilatih menggunakan data pelatihan untuk menghasilkan data generatif yang sesuai dengan label kondisional.

 

Proses pelatihan CGAN melibatkan langkah-langkah berikut:

1. Data pelatihan terdiri dari pasangan data asli dan label kondisional yang sesuai. Misalnya, jika dataset berisi gambar wajah, pasangan tersebut bisa berupa gambar wajah asli dan label yang menunjukkan atribut seperti usia atau jenis kelamin.

2. Generator menerima input berupa vektor acak (misalnya, vektor latensi) dan label kondisional. Generator menghasilkan data palsu yang mencoba meniru data asli yang sesuai dengan label kondisional tersebut.

3. Data asli (yang sesuai dengan label kondisional) dan data palsu (yang dihasilkan oleh generator dengan label kondisional yang sama) diberikan ke discriminator.

4. Discriminator bertugas membedakan antara data asli dan data palsu. Ini mengeluarkan probabilitas diskriminasi, yaitu probabilitas bahwa data tersebut berasal dari data asli.

5. Kesalahan (loss) dihitung untuk generator dan discriminator berdasarkan probabilitas diskriminasi. Tujuannya adalah meminimalkan kesalahan generator dan memaksimalkan kesalahan discriminator secara bergantian.

6. Bobot (weights) dalam generator dan discriminator diperbarui menggunakan metode optimisasi seperti backpropagation dan gradient descent.

7. Langkah-langkah 2-6 diulang untuk beberapa epoch atau iterasi, dengan generator dan discriminator terus berinteraksi dan belajar dari kesalahan mereka.

Melalui proses ini, generator belajar untuk menghasilkan data palsu yang semakin meyakinkan dan sesuai dengan label kondisional yang diberikan, sementara discriminator belajar menjadi semakin cermat dalam membedakan antara data asli dan palsu dengan label yang sama. Seiring berjalannya waktu dan pelatihan, CGAN dapat menghasilkan data generatif yang memiliki korelasi yang lebih baik dengan label kondisional yang diinginkan.


 


 

6. Hasil Training DCGAN

Setelah mentraining model CGAN, kita ingin memastikan bahwa model CGAN bekerja dengan baik, untuk memastikan model CGAN bekerja dengan baik kita bisa mencoba mengenerate image menggunakan model CGAN. Dibawah ini adalah contoh generate fake face image menggunakan model CGAN dengan kondisinya adalah variable labels


 

 

Informasi Course Terkait
  Kategori: Artificial Intelligence
  Course: Pengembangan GAN