Lensa ML

Diffusion Model

Langkah 1 dari 6: Forward Diffusion

Tambahkan noise bertahap sampai sinyalnya hilang

Forward diffusion: x₀ → x_Tt=0 (bersih)t=T (noise)
Time step t0
Time step
0
σ(t)
0.00
Sinyal
1.00

Gambar asli yang masih bersih. Belum ada noise yang ditambahkan.

Geser t dari 0 sampai 20 dan lihat angka Sinyal turun saat σ(t) naik. Forward process tidak punya parameter yang dipelajari: ini resep tetap untuk mencampur gambar dengan Gaussian noise. Karena setiap langkah menambah Gaussian noise, kamu bisa langsung melompat ke langkah mana pun dengan satu hitungan, x_t = √ᾱ_t · x₀ + √(1 − ᾱ_t) · ε, tanpa perlu menjalankan t langkah berurutan. Training bergantung pada jalan pintas ini. Demo ini memakai 20 langkah, sedangkan paper DDPM memakai 1.000.

Langkah 2 dari 6: Noise Schedule

Bagaimana noise bertambah seiring waktu

Noise schedule: Linearβ(t)log11e-4ᾱ(t)10time step t →
Schedule0.00
Schedule
Linear
β(10)
0.0100
ᾱ(10)
0.946

Linear schedule: noise yang ditambahkan per langkah naik secara merata, dan sinyal cepat menurun sejak awal.

Ganti antara linear schedule dan cosine schedule, lalu bandingkan kurva ᾱ. ᾱ_t adalah porsi variance sinyal asli yang tersisa pada langkah t, dan schedule menentukan seberapa cepat nilainya turun. Nichol dan Dhariwal (2021) mengusulkan cosine schedule setelah menemukan bahwa, dengan linear schedule, bagian akhir forward process terus menambah noise ke gambar yang sudah hampir murni noise, sehingga langkah-langkah itu nyaris tidak mengajari model apa pun. Pada DDPM standar, schedule dipilih sebelum training, bukan dipelajari.

Langkah 3 dari 6: Reverse Process

Hapus noise selangkah demi selangkah untuk menghasilkan gambar

Reverse process: x_T → x₀noisebersih
Langkah denoise20
Langkah
20
Noise
1.00
Kejernihan
0%

Mulai dari noise murni. Model harus memprediksi dan menghapus noise selangkah demi selangkah.

Geser denoiser dari 20 turun ke 0. Model tidak pernah langsung melompat ke gambar bersih. Di setiap langkah, model memprediksi noise pada gambar saat ini, menghapus sebagian, dan pada DDPM menambahkan kembali sedikit noise acak baru. Noise tambahan itulah yang membuat titik awal yang sama bisa menghasilkan gambar yang berbeda. Struktur kasar, seperti tata letak dan bentuk besar, terbentuk di langkah-langkah awal reverse process, dan tekstur halus muncul paling akhir.

Langkah 4 dari 6: Tujuan Training

Belajar memprediksi noise

Training: prediksi noiseε_trueε_pred‖ε − ε̂‖²
Level noise0.50
Noise σ
0.50
L2 loss
0.0539
Kecocokan
0%

Noise sedang: tugas prediksinya lebih sulit. Model harus mempelajari pola yang bermakna untuk melakukan denoising.

Naikkan level noise dan lihat L2 loss bertambah. Training loop-nya pendek: ambil gambar sungguhan, pilih langkah t secara acak, tambahkan noise ε, dan latih network untuk memprediksi ε dari gambar ber-noise dan t. Loss-nya adalah selisih kuadrat antara noise sebenarnya dan noise prediksi. Ho et al. menemukan bahwa loss yang disederhanakan ini menghasilkan sampel yang lebih baik daripada variational bound lengkap. Network-nya biasanya U-Net, dan pada model yang lebih baru berupa Transformer, dengan langkah t sebagai input tambahan.

Langkah 5 dari 6: Langkah Sampling

Makin banyak langkah, makin baik kualitasnya

Kualitas sampling vs jumlah langkah5 langkah10 langkah20 langkah35 langkah50 langkah← langkah aktif yang dipakai →Kecepatan: Sedang · Kualitas: Baik
Jumlah langkah20
Langkah
20
Kualitas
40%
Kecepatan
60%

Jumlah langkah sedang: keseimbangan yang baik antara kecepatan dan kualitas untuk sebagian besar penerapan.

Ubah jumlah langkah, lalu bandingkan kualitas dan kecepatannya. Sampling lambat karena setiap langkah adalah satu lintasan penuh melalui network. DDIM (Song et al., 2020) menunjukkan bahwa model yang dilatih sebagai DDPM bisa melakukan sampling dengan langkah yang jauh lebih sedikit, misalnya 50, bukan 1.000, dengan mengikuti jalur deterministik. Solver dan metode distillation yang lebih baru menurunkannya sampai beberapa langkah saja. Latent diffusion, yang dipakai Stable Diffusion, menghemat lebih banyak waktu dengan menjalankan proses pada latent image yang terkompresi, bukan pada pixel beresolusi penuh.

Langkah 6 dari 6: Guidance Scale

Mengatur keragaman vs fidelity

Classifier-free guidanceSampel 1Sampel 2Sampel 3Sampel 4Sampel 5KeragamanFidelityw = 7.0ε = ε_uncond + w · (ε_cond − ε_uncond)
Guidance w7.00
Skala
7.0
Keragaman
57%
Fidelity
60%

Guidance sedang: keseimbangan yang baik antara kepatuhan pada prompt dan keragaman output. Ini rentang yang paling umum dipakai.

Naikkan guidance scale w dan lihat keragaman turun saat fidelity naik. Classifier-free guidance (Ho dan Salimans, 2022) menjalankan model dua kali per langkah, sekali dengan prompt dan sekali tanpa prompt, lalu mendorong prediksi menjauh dari versi tanpa prompt sebesar faktor w. Satu network mempelajari kedua mode ini karena prompt-nya dihapus secara acak saat training. Guidance menggandakan biaya tiap langkah, dan ini satu lagi alasan sampler cepat itu berguna.

Apa itu diffusion model?

Diffusion model adalah generative model yang belajar mengubah noise acak menjadi data yang realistis dengan membalik proses penambahan noise yang bertahap. Saat training, gambar sungguhan dirusak dengan Gaussian noise pada kekuatan acak, dan neural network belajar memprediksi noise itu. Untuk menghasilkan gambar, model mulai dari noise murni dan menghapus noise hasil prediksi sedikit demi sedikit sampai gambar muncul.

Pendekatan ini diperkenalkan oleh Sohl-Dickstein et al. pada 2015 dan menjadi praktis berkat Denoising Diffusion Probabilistic Models (DDPM, Ho et al., 2020). Diffusion model menggerakkan sistem text-to-image seperti Stable Diffusion, DALL·E 2, dan Imagen, dan juga dipakai untuk menghasilkan audio, video, dan molekul.

Ide utama

  • Forward process menambah Gaussian noise menurut schedule tetap, dan tidak ada yang dipelajari di dalamnya.
  • Network mempelajari satu tugas: memprediksi noise pada gambar ber-noise di langkah t.
  • Pembuatan gambar menjalankan prosesnya secara terbalik, dari noise murni ke gambar, satu langkah demi satu langkah.
  • Noise schedule mengatur seberapa cepat sinyal menghilang.
  • Langkah sampling yang lebih sedikit lebih cepat, dan metode seperti DDIM menjaga kualitas dengan langkah yang jauh lebih sedikit.
  • Classifier-free guidance menukar keragaman dengan kecocokan yang lebih dekat pada prompt.

Ulasan singkat tentang topik ini

Pertanyaan umum

Apa bedanya diffusion model dan GAN?

GAN menghasilkan gambar dalam satu lintasan dan dilatih dengan mengadu generator melawan discriminator, yang bisa tidak stabil dan bisa melewatkan sebagian data. Diffusion model dilatih dengan regression loss sederhana dan menghasilkan gambar lewat banyak langkah. Sampling-nya lebih lambat, tetapi training-nya lebih stabil dan biasanya lebih baik dalam mencakup variasi pada data.

Bagaimana text prompt mengendalikan gambar?

Prompt diubah menjadi vector oleh text encoder, misalnya milik CLIP atau T5. Denoising network membaca vector itu melalui cross-attention di setiap langkah, sehingga noise yang diprediksinya bergantung pada prompt.

Kenapa yang diprediksi noise, bukan gambar bersihnya?

Jika gambar ber-noise dan langkah t diketahui, keduanya bisa dihitung dari satu sama lain, jadi secara matematis pilihannya setara. Dalam praktiknya, memprediksi noise memberi hasil yang lebih baik pada DDPM. Sebagian model yang lebih baru memprediksi campuran keduanya, yang disebut v-prediction.

Apakah diffusion model hanya dipakai untuk gambar?

Tidak. Metode yang sama menghasilkan audio, video, bentuk 3D, serta struktur molekul dan protein. Apa pun yang bisa direpresentasikan sebagai angka dan diberi noise secara bertahap bisa dimodelkan dengan cara ini.

Penjelasan terkait

Referensi

  1. Sohl-Dickstein et al. (2015), "Deep Unsupervised Learning using Nonequilibrium Thermodynamics"
  2. Ho, Jain & Abbeel (2020), "Denoising Diffusion Probabilistic Models"
  3. Song, Meng & Ermon (2020), "Denoising Diffusion Implicit Models"
  4. Nichol & Dhariwal (2021), "Improved Denoising Diffusion Probabilistic Models"
  5. Rombach et al. (2022), "High-Resolution Image Synthesis with Latent Diffusion Models"
  6. Ho & Salimans (2022), "Classifier-Free Diffusion Guidance"

Terakhir diperbarui