Ragil Saputri
Generative Adversarial Network (GAN) merupakan salah satu algoritma deep learning yang terdiri dari dua jaringan saraf tiruan (neural network) yang saling bersaing untuk mencapai tujuan berbeda. Jaringan pertama, yang disebut generator, bertugas menghasilkan data yang menyerupai data pelatihan. Sedangkan jaringan kedua, yang dikenal sebagai discriminator, bertugas membedakan antara data yang dihasilkan oleh generator dan data asli dari pelatihan.
Proses kerja GAN dimulai dengan generator menciptakan sampel data yang kemudian diberikan kepada discriminator. Discriminator akan mencoba menentukan apakah data tersebut palsu (hasil dari generator) atau asli (data pelatihan). Proses ini berlangsung secara iteratif hingga generator mampu menghasilkan data yang sangat mirip dengan data pelatihan, sehingga discriminator kesulitan untuk membedakannya.
Berikut langkah-langkah pengerjaanya:
# Dataset dan Dataloader
Untuk memuat dan mengelola data. Di PyTorch, dataset didefinisikan menggunakan class torch.utils.data.Dataset.
# Install Library
library penting: torch untuk operasi tensor dan pelatihan model, torch.nn untuk mendefinisikan arsitektur jaringan saraf, torch.optim untuk mengelola optimizer, torchvision.datasets dan transforms untuk memuat dataset standar dan menerapkan transformasi, serta matplotlib.pyplot untuk visualisasi data dan hasil model.
# Setup Dataset
# teknik baru : Wasserstein GAN (WGAN)
Menggunakan loss function yang berbeda (wasserstein loss) untuk stabilitas.
# Generator
Generator: Membuat data palsu (contoh gambar) yang menyerupai data asli.
# Discriminator
Discriminator: Membedakan antara data asli dan data palsu yang dibuat oleh Generator.
# Optimizers dan Loss Function
Optimizers: Mengatur pembaruan bobot model untuk meminimalkan loss selama pelatihan. Loss Function: Mengukur seberapa baik model memprediksi output yang diinginkan.
# Proses Training
Proses training melatih Generator untuk menghasilkan data realistis dan Discriminator untuk membedakan data palsu dari data asli, hingga keduanya mencapai keseimbangan.
# Visualisasi
Visualisasi digunakan untuk memantau perkembangan hasil yang dihasilkan oleh model, seperti gambar yang dibuat oleh Generator selama pelatihan.
Kesimpulan : pengerjaan ini bertujuan untuk memahami cara membuat Generative Adversarial Networks (GAN) menggunakan dataset MNIST untuk menghasilkan gambar digit tulisan tangan. Dalam tugas ini, kita belajar cara menstabilkan pelatihan GAN dengan teknik baru seperti Wasserstein GAN, yang membantu mencegah masalah dalam pelatihan. Selain itu terdapat cara membuat dan mengubah arsitektur model menggunakan custom class, sehingga bisa mengatur sendiri dengan berbagai lapisan dan fungsi untuk meningkatkan kualitas gambar yang dihasilkan.