Pelajari AI dengan Python · Pelajaran

GAN Bersyarat dan Pemindahan Gaya

cGAN dengan pengkondisian kelas, konsep CycleGAN, pemindahan gaya neural dengan VGG.

Pelajaran 4 daripada 413 langkah

GAN Bersyarat dan Pemindahan Gaya ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Mengawal Kandungan yang Dijana oleh GAN

GAN biasa menghasilkan sampel rawak dan anda tidak boleh meminta kelas tertentu. Pelajaran ini merangkumi penjanaan bersyarat (cGANs), terjemahan tanpa pasangan (CycleGAN) dan pemindahan gaya saraf.

GAN Bersyarat (cGAN)

cGAN menambahkan syarat, seperti label kelas, kepada penjana dan penilai. Kini anda boleh meminta "hasilkan nombor 7" dengan memberikan label bersama-sama hingar.

Menetapkan Syarat pada Penjana

Penjana menggabungkan label (satu panas atau terbenam) dengan vektor hingar. Masukan gabungan itu membolehkannya menghasilkan sampel daripada 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)

Menetapkan Syarat pada Penilai

Penilai juga menerima label, jadi ia bukan sekadar menilai "adakah ini nyata?" tetapi "adakah ini contoh nyata bagi kelas ini?". Ini memaksa penjana mematuhi syarat tersebut.

d_input = torch.cat([image, label_emb], dim=1)
score = discriminator(d_input)

Terjemahan Imej Tanpa Pasangan

Sering kali kita tidak mempunyai pasangan yang sepadan, contohnya kuda yang sama sebagai zebra. CycleGAN menterjemah antara dua domain menggunakan imej tanpa pasangan, dengan mempelajari pemetaan kuda kepada zebra dan kembali tanpa contoh yang sejajar.

Dua Penjana, Dua Domain

CycleGAN menggunakan dua penjana: G: A to B dan F: B to A, setiap satunya dengan penilainya sendiri. Bersama-sama, kedua-duanya menterjemah dalam kedua-dua arah antara domain.

# G: photo -> painting
# F: painting -> photo

Kerugian Konsistensi Kitaran

Idea utamanya ialah: menterjemah A kepada B dan kembali kepada A sepatutnya menghasilkan semula yang asal. Kerugian konsistensi kitaran menguatkuasakan F(G(a)) == a, yang mengehadkan pemetaan tanpa data berpasangan.

cycle_loss = (
    l1(F(G(a)), a) +
    l1(G(F(b)), b)
)

Pemindahan Gaya Saraf

Pemindahan gaya saraf menggabungkan kandungan satu imej dengan gaya imej lain, contohnya foto yang dilukis seperti karya Van Gogh. Ia mengoptimumkan imej keluaran secara langsung menggunakan ciri daripada CNN yang telah dilatih terlebih dahulu.

Kerugian Kandungan

Kerugian kandungan mengekalkan struktur aras tinggi keluaran agar hampir dengan imej kandungan dengan memadankan peta ciri CNN yang mendalam. Ia mengekalkan apa yang terdapat dalam imej.

content_loss = mse(features_out, features_content)

Kerugian Gaya dan Matriks Gram

Gaya ditangkap oleh matriks Gram, iaitu korelasi antara saluran ciri. Memadankan matriks Gram memindahkan tekstur dan warna. Kerugian gaya membandingkan matriks Gram keluaran dengan matriks Gram imej 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 Kerugian

Jumlah kerugian ialah jumlah berwajaran: alpha * content_loss + beta * style_loss. Melaraskan pemberat mengimbangi sejauh mana hasil mengekalkan kandungan berbanding sejauh mana hasil menerima gaya tersebut.

total = alpha * content_loss + beta * style_loss
total.backward()  # gradients update the output IMAGE

Semakan Pantas

Uji pengetahuan anda tentang penjanaan bersyarat.

Imbas Kembali: GAN Bersyarat dan Pemindahan Gaya

Anda telah mempelajari bahawa cGANs menggabungkan label kelas dengan masukan penjana (dan penilai) untuk penjanaan terkawal, CycleGAN menggunakan kerugian konsistensi kitaran untuk terjemahan tanpa pasangan, dan pemindahan gaya saraf menggabungkan kerugian kandungan dengan kerugian gaya matriks Gram untuk melukis semula imej.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
225

Soalan Lazim

Adakah pelajaran “GAN Bersyarat dan Pemindahan Gaya” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “GAN Bersyarat dan Pemindahan Gaya”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “GAN Bersyarat dan Pemindahan Gaya”?

cGAN dengan pengkondisian kelas, konsep CycleGAN, pemindahan gaya neural dengan VGG. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “GAN Bersyarat dan Pemindahan Gaya” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?

Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Autoenkoder untuk Pembelajaran Perwakilan
  2. Autoenkoder Variasi (VAE)
  3. GAN: Penjana dan Pembezanya
  4. GAN Bersyarat dan Pemindahan Gaya
← Kembali ke Pelajari AI dengan Python