Septiono Raka Wahyu Sasongko
Dalam proyek ini, saya membangun sebuah Generative Adversarial Network (GAN) untuk menghasilkan gambar tulisan tangan menggunakan dataset MNIST. GAN adalah model deep learning yang terdiri dari dua jaringan neural: Generator yang mencoba menghasilkan gambar palsu yang realistis, dan Discriminator yang bertugas membedakan gambar asli dan palsu. Proyek ini bertujuan untuk memahami arsitektur GAN dan mengembangkan teknik untuk menstabilkan pelatihan GAN.
Pertama, saya mengimpor dataset MNIST yang berisi gambar tulisan tangan angka dari 0 hingga 9. Dataset ini diambil dari TensorFlow dan dinormalisasi agar setiap nilai piksel berada dalam rentang [0, 1].
Generator adalah bagian dari GAN yang menerima input berupa noise (vektor acak) dan mencoba menghasilkan gambar yang mirip dengan gambar dari dataset MNIST.
Discriminator adalah jaringan neural yang bertugas untuk membedakan apakah gambar yang diberikan adalah gambar asli dari dataset atau gambar palsu yang dihasilkan oleh generator.
Setelah membangun generator dan discriminator, kedua model ini digabungkan dalam model GAN. Pada saat melatih GAN, kita hanya melatih generator untuk menghasilkan gambar yang dapat menipu discriminator.
Pada bagian ini, saya melatih GAN. Proses pelatihan melibatkan dua langkah:
Selama pelatihan GAN, masalah seperti mode collapse dapat terjadi, di mana generator hanya menghasilkan gambar yang sama berulang-ulang. Untuk menstabilkan pelatihan GAN, beberapa teknik dapat diterapkan seperti label smoothing atau Wasserstein GAN (WGAN).
Pada proyek ini, saya mengimplementasikan teknik dasar stabilisasi, namun jika ingin mengembangkan lebih lanjut, WGAN dapat digunakan dengan mengganti fungsi loss dan menambahkan penalti gradien.
Setelah pelatihan, generator dapat menghasilkan gambar tulisan tangan angka yang realistis. Hasil ini dapat ditampilkan dalam bentuk gambar yang dihasilkan oleh model setelah setiap beberapa epoch.
Proyek ini berhasil menunjukkan kemampuan GAN dalam menghasilkan gambar yang realistis dari data MNIST. Selain itu, teknik-teknik yang digunakan untuk menstabilkan pelatihan seperti label smoothing dan penambahan batch normalization terbukti efektif dalam mencegah masalah yang sering muncul dalam pelatihan GAN. Dalam pengembangan lebih lanjut, penerapan WGAN atau Progressive GAN dapat meningkatkan kualitas gambar yang dihasilkan dan menstabilkan pelatihan lebih jauh.