GAN Kondisional dan Transfer Gaya
cGAN dengan pengondisian kelas, konsep CycleGAN, transfer gaya neural dengan VGG.
GAN Kondisional dan Transfer Gaya adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Mengendalikan Hasil GAN
GAN biasa menghasilkan sampel acak; Anda tidak dapat meminta kelas tertentu. Pelajaran ini membahas pembangkitan bersyarat (cGANs), penerjemahan tanpa pasangan (CycleGAN), dan transfer gaya neural.
GAN Bersyarat (cGAN)
cGAN menambahkan suatu kondisi (seperti label kelas) kepada Generator dan Discriminator. Kini Anda dapat meminta "hasilkan angka 7" dengan memberikan label tersebut bersama derau.
Memberikan Kondisi kepada Generator
Generator menggabungkan label (one-hot atau tersemat) dengan vektor derau. Masukan gabungan ini memungkinkannya menghasilkan sampel dari kelas yang diminta.
label_emb = embedding(label) # e.g. dim 10
z = torch.randn(batch, 100)
gen_input = torch.cat([z, label_emb], dim=1)
fake = generator(gen_input)Memberikan Kondisi kepada Discriminator
Discriminator juga menerima label, sehingga ia tidak hanya menilai "apakah ini nyata?", tetapi juga "apakah ini contoh nyata dari kelas ini?". Hal ini memaksa Generator untuk mematuhi kondisi tersebut.
d_input = torch.cat([image, label_emb], dim=1)
score = discriminator(d_input)Penerjemahan Gambar Tanpa Pasangan
Sering kali kita tidak memiliki pasangan yang cocok (misalnya kuda yang sama sebagai zebra). CycleGAN menerjemahkan antara dua ranah menggunakan gambar tanpa pasangan, dengan mempelajari penerjemahan kuda menjadi zebra dan sebaliknya tanpa contoh yang selaras.
Dua Generator, Dua Ranah
CycleGAN menggunakan dua Generator: G: A to B dan F: B to A, masing-masing dengan Discriminator sendiri. Bersama-sama, keduanya menerjemahkan dalam dua arah di antara kedua ranah.
# G: photo -> painting
# F: painting -> photoFungsi Kerugian Konsistensi Siklus
Gagasan utamanya: menerjemahkan A ke B lalu kembali ke A seharusnya menghasilkan keluaran asli. Fungsi kerugian konsistensi siklus menegakkan F(G(a)) == a, yang membatasi pemetaan tanpa data berpasangan.
cycle_loss = (
l1(F(G(a)), a) +
l1(G(F(b)), b)
)Transfer Gaya Neural
Transfer gaya neural memadukan isi dari satu gambar dengan gaya gambar lain (misalnya foto yang dilukis seperti karya Van Gogh). Metode ini mengoptimalkan gambar keluaran secara langsung menggunakan fitur dari CNN yang telah dilatih sebelumnya.
Fungsi Kerugian Isi
Fungsi kerugian isi menjaga struktur tingkat tinggi keluaran tetap mendekati gambar isi dengan mencocokkan peta fitur CNN yang mendalam. Fungsi ini mempertahankan apa yang terdapat dalam gambar.
content_loss = mse(features_out, features_content)Fungsi Kerugian Gaya dan Matriks Gram
Gaya ditangkap oleh matriks Gram, yaitu korelasi antara kanal fitur. Mencocokkan matriks Gram akan memindahkan tekstur dan warna. Fungsi kerugian gaya membandingkan matriks Gram keluaran dengan matriks Gram gambar gaya.
def gram(f):
b, c, h, w = f.size()
f = f.view(c, h * w)
return f @ f.t()
style_loss = mse(gram(features_out), gram(features_style))Menggabungkan Fungsi Kerugian
Fungsi kerugian total adalah jumlah berbobot: alpha * content_loss + beta * style_loss. Menyetel bobot tersebut menyeimbangkan seberapa banyak hasil mempertahankan isi dan seberapa kuat hasil tersebut mengadopsi gaya.
total = alpha * content_loss + beta * style_loss
total.backward() # gradients update the output IMAGEUji Singkat
Uji pengetahuan Anda tentang pembangkitan bersyarat.
Ringkasan: GAN Bersyarat dan Transfer Gaya
Anda mempelajari bahwa cGANs menggabungkan label kelas ke masukan Generator (dan Discriminator) untuk pembangkitan yang terkendali, CycleGAN menggunakan fungsi kerugian konsistensi siklus untuk penerjemahan tanpa pasangan, dan transfer gaya neural menggabungkan fungsi kerugian isi dengan fungsi kerugian gaya berbasis matriks Gram untuk melukis ulang gambar.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “GAN Kondisional dan Transfer Gaya” gratis?
Ya — teks lengkap “GAN Kondisional dan Transfer Gaya” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “GAN Kondisional dan Transfer Gaya”?
cGAN dengan pengondisian kelas, konsep CycleGAN, transfer gaya neural dengan VGG. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “GAN Kondisional dan Transfer Gaya” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Autoencoder untuk Pembelajaran Representasi
- Variational Autoencoder (VAE)
- GAN: Generator dan Diskriminator
- GAN Kondisional dan Transfer Gaya