4 poin oleh GN⁺ 2024-05-27 | 1 komentar | Bagikan ke WhatsApp
  • Model difusi mempelajari cara menambahkan noise ke data secara bertahap lalu membalikkannya, sehingga digunakan bukan hanya untuk pembuatan gambar seperti Stable Diffusion, tetapi juga untuk pembuatan video, 3D, struktur protein, hingga lintasan robot
  • DDPM mengubah gambar bersih (x_0) menjadi noise yang mendekati (x_T) melalui beberapa timestep, lalu melatih model dengan loss L2 agar memprediksi arah noise pada tiap tahap
  • Proses balik dapat diperlakukan kira-kira sebagai distribusi Gaussian pada tahap noise kecil; Ho 2020 menstabilkan pelatihan dengan menetapkan varians secara tetap dan menyederhanakan prediksi mean menjadi prediksi noise
  • Kecepatan pembuatan dapat dikurangi dari sampling DDPM hingga 1000 tahap menjadi sekitar 10 tahap pada sampler berbasis ODE, bahkan hingga pembuatan satu tahap melalui progressive distillation dan adversarial distillation
  • Cakupan praktis model difusi telah meluas, tetapi penurunan kualitas akibat distillation berlebihan, keterbatasan kontrol bersyarat, serta masalah etika dan asal-usul dataset tetap menjadi kendala

Posisi Model Difusi dalam Pemodelan Generatif

  • Masalah dasar pemodelan generatif adalah, ketika ada sekumpulan sampel yang berasal dari distribusi tak diketahui (p(x)), menghasilkan sampel baru dari distribusi yang sama
  • GAN mendekatinya sebagai permainan antara generator dan discriminator, dan dapat menyintesis gambar yang mengesankan, tetapi sulit dilatih, tidak memodelkan (p(x)) secara eksplisit, serta dapat mengalami mode collapse
  • Normalizing flow mempelajari pemetaan deterministik dan invertibel antara sampel data dan Gaussian satuan
    • Glow dari OpenAI pada 2018 menghasilkan gambar wajah dengan latent space yang bermakna
    • Pada flow, setiap layer harus invertibel dan Jacobian determinant harus dapat dihitung cepat; perhitungan Jacobian determinant arbitrer berukuran (N \times N) adalah (O(N^3)), sehingga batasannya besar
  • Alih-alih pemetaan deterministik, model difusi melakukan pemetaan stokastik dalam banyak tahap dengan mencampurkan noise secara bertahap ke data, lalu melatih model untuk membalikkan proses tersebut

Ide Dasar Denoising Diffusion

  • Jika noise kecil dicampurkan berkali-kali ke titik data yang bersih, pada akhirnya kondisinya akan terlihat hampir seperti noise murni
  • Hanya dengan melihat titik data ber-noise pada satu waktu, kita dapat memperkirakan sampai tingkat tertentu dari arah mana titik itu berasal pada tahap sebelumnya
  • Jika noise yang dicampurkan cukup banyak, probabilitas bahwa satu titik (y) di target space berasal dari (x) di ruang asal dapat dibuat sedekat mungkin dengan (p(x))
  • Dengan mempelajari proses balik bertahap, kita dapat melakukan sampling dari (p(x))
  • Pelatihan dilakukan dengan menambahkan noise acak ke tiap titik data, membuat model memprediksi noise tersebut, lalu meminimalkan L2 loss antara noise prediksi dan arah noise sebenarnya menggunakan gradient descent
  • Sampling dasar mengikuti alur berikut
    • Mulai dari gambar noise murni
    • Prediksi noise di dalam gambar, lalu kurangi dengan rasio yang telah ditentukan
    • Ulangi 10–1000 kali, tergantung sampler, untuk memperoleh gambar tanpa noise

DDPM: Titik Awal Matematis Model Difusi

  • DDPM(Denoising Diffusion Probabilistic Models) adalah pendekatan yang kemudian menjadi bahasa dan fondasi matematis bagi perkembangan model difusi
  • Gambar input (x_0) berulang kali dicampur dengan noise acak kecil selama timestep (t=1,2,\dots,T), sehingga berpindah menjadi titik dari distribusi normal satuan
  • Forward diffusion step membuat (x_t) dengan mencampurkan noise (\epsilon \sim \mathcal{N}(0,I)) ke gambar sebelumnya (x_{t-1})
    • (\alpha_t) lebih kecil dari 1, tetapi dekat dengan 1
    • Diatur agar (\prod_{t=1}^T \alpha_t \approx 0)
    • Suku akar kuadrat membuat varians tetap terjaga setelah setiap tahap
  • Setiap tahap hanya bergantung pada timestep tepat sebelumnya, dan noise yang dicampurkan independen dari noise sebelumnya, sehingga (x_t) dapat diekspresikan langsung dengan (x_0) dan satu vektor noise Gaussian
  • Sifat ini digunakan untuk menurunkan proses balik dan tujuan pelatihan prediksi noise

Proses Balik dan Pelatihan Prediksi Noise

  • Jika noisy image (x_t) dan gambar asli (x_0) diketahui, distribusi versi sebelumnya yang lebih sedikit noise, (x_{t-1}), memiliki bentuk tertutup Gaussian
  • Pada saat generasi, karena (x_0) asli tidak diketahui, kita harus menggunakan (q(x_{t-1} \mid x_t)) secara langsung, tetapi seluruh dataset tidak dapat digunakan pada saat generasi
    • Dataset bisa berisi puluhan miliar gambar
    • Jika ini diikuti pada semua timestep, hasilnya bukan sampel baru, melainkan pemulihan sampel pelatihan
  • (q(x_{t-1} \mid x_t)) kira-kira Gaussian pada tahap noise yang sangat kecil, dan ini adalah hasil lama dari fisika statistik
  • Model mengestimasi parameter Gaussian (\mu_\theta, \Sigma_\theta), lalu mengurangi KL divergence terhadap distribusi yang diketahui (q(x_{t-1} \mid x_t, x_0)) dari tiap contoh pelatihan
  • Ho 2020 menetapkan (\Sigma_\theta) sama dengan (\Sigma(t))
    • Ketika varians dicoba untuk dipelajari, pelatihan menjadi terlalu tidak stabil
    • Dalam praktiknya, hanya mean (\mu_\theta) yang dipelajari
  • Masalah prediksi mean diubah menjadi masalah prediksi noise dengan memanfaatkan fakta bahwa (x_t) diekspresikan sebagai campuran (x_0) dan noise Gaussian (\epsilon)
  • Loss sederhana akhir (L_\text{simple}) meminimalkan galat kuadrat antara noise sebenarnya (\epsilon) dan prediksi model (\epsilon_\theta)
    • Mengabaikan weighting menghasilkan kualitas yang lebih baik
    • Ini dapat dilihat sebagai pemberian bobot rendah pada loss term untuk (t) rendah, sehingga jaringan berfokus pada masalah yang lebih sulit, yaitu melakukan denoise pada gambar dengan banyak noise

Sampling DDPM dan Contoh 2D

  • Jika ada model estimasi noise terlatih (\epsilon_\theta(x_t,t)), proses balik dapat disampling
    • Sampling gambar noise acak dengan (x_T \sim \mathcal{N}(0,I))
    • Jalankan timestep secara mundur dari (T) ke 1 sambil memprediksi noise
    • Sampling (x_{t-1}) dengan mean dan varians yang diprediksi
  • Alur DDPM adalah sebagai berikut
    • Berupaya mempelajari underlying distribution dari dataset gambar
    • Mengubah (x_0) secara bertahap menjadi (x_T) melalui forward noising process
    • Proses balik dapat diperlakukan kira-kira sebagai Gaussian ketika (T) besar
    • Jika (x_0) diasumsikan sebagai gambar tertentu dalam dataset, distribusi yang diketahui dapat dihitung secara tepat
    • Dilatih dengan KL divergence agar mendekati distribusi yang diketahui ini untuk semua gambar pelatihan
    • Proses ini mengoptimalkan lower bound yang memaksimalkan likelihood untuk membuat ulang dataset
  • Contoh dataset Datasaurus yang terdiri dari 142 titik menunjukkan pembelajaran distribusi 2D
    • MLP dengan 3 hidden layer, hidden size 64, dan ReLU memiliki lebih dari 12.000 parameter
    • Tanpa memberikan informasi timestep, distribusi berbentuk dinosaurus yang diinginkan tidak muncul
    • Hasil membaik ketika timestep (t=0,\dots,50) dinormalisasi ke rentang 0–1 dan dimasukkan sebagai input
    • Dengan Fourier encoding yang mengubah input ke ruang random frequency feature, model mempelajari distribusi yang lebih baik
  • Penyesuaian noising schedule juga penting bagi performa
    • Metode Ho 2020 menurunkan (\alpha_t) secara linear dan membuat (\bar\alpha_T \approx 0), sehingga cocok untuk gambar resolusi tinggi
    • Pada data berdimensi rendah, data sudah tampak seperti noise setelah melewati tingkat menengah saja, sehingga performa membaik jika schedule disesuaikan agar model berlatih dengan lebih banyak contoh high-signal
    • Schedule asli dalam contoh memiliki (\bar\alpha_T \approx 0.28) sehingga tidak sampai ke noise murni, sedangkan schedule baru berakhir pada 0.6, yaitu nilai tengah dari schedule lama

Perkembangan yang Mempercepat Generasi

  • Score matching dan sampler berbasis ODE

    • Kelemahan awal model difusi adalah kecepatan generasi yang lambat karena asumsi Gaussian pada distribusi balik DDPM
    • Arah noise yang diprediksi model dari noisy input (x_t), jika mengabaikan konstanta menurut timestep, sama dengan log-likelihood gradient dari forward process yang menghasilkan (x_t), yaitu score
    • Score dapat dilihat sebagai vector field yang menunjukkan arah untuk bergerak menuju mode distribusi
    • Noise-conditioning score network mempelajari score dari dataset yang secara bertahap diberi noise, lalu menghasilkan sampel baru dengan mengikuti score field
    • Forward diffusion process dapat dideskripsikan sebagai stochastic differential equation (SDE)
    • Ada juga ODE yang mendeskripsikan deterministic process dengan distribusi yang sama pada tiap timestep, dan ODE ini memiliki bentuk tertutup yang mencakup score function
    • Karena itu, sampling yang sepenuhnya deterministik dapat dilakukan bahkan pada diffusion model yang sudah dilatih sebelumnya, dan ODE solver umum dapat digunakan untuk sampling
    • DDPM bisa memerlukan hingga 1000 langkah untuk mendapatkan hasil berkualitas tinggi di Stable Diffusion
    • Sampler berbasis Euler method dapat menghasilkan hasil berkualitas tinggi hanya dengan sekitar 10 langkah
    • Karras 2022 membahas tradeoff sampler dan bahwa stochasticity pada stochastic sampler seperti DDPM dapat menjadi penting dalam beberapa kasus
  • Distillation

    • Progressive distillation menggunakan teacher yang sudah dilatih sebelumnya dan melakukan sampling dalam 1000 langkah, lalu melatih student agar memprediksi keluaran 2 langkah milik teacher dalam 1 langkah
    • Jika proses ini diulang dengan menjadikan student sebagai teacher baru, jumlah langkah dapat dikurangi setengahnya setiap kali
    • Progressive distillation memiliki loss, dan jika diterapkan terlalu banyak, sampel dapat menjadi buram atau tidak realistis
    • Adversarial distillation melatih discriminator bersama-sama untuk meningkatkan realisme student sample, tetapi seperti yang terlihat pada GAN, ada tradeoff dengan sample diversity
    • Stable Diffusion XL Turbo dilatih dengan cara ini sehingga dapat menghasilkan gambar berkualitas tinggi dalam satu langkah

Generasi Bersyarat dan Guidance

  • Model difusi bersyarat

    • Untuk hanya menghasilkan kucing dari model yang dilatih dengan gambar hewan, distribusi bersyarat (p(x \mid y)) perlu dimodelkan
    • Jika diffusion model (\epsilon_\theta(x_t,t,y)) dilatih dengan pasangan ((x_0,y)) dalam dataset, informasi kondisi seperti class label, text embedding, dan segmentation mask dapat digunakan
    • Ho 2021 melatih class-conditional diffusion model pada ImageNet
    • Jika sampel (p(x \mid y)) untuk (y) tertentu tidak cukup, label dapat berujung pada sampel yang tidak realistis atau memiliki keberagaman rendah
    • Karena itu, selama generasi diperlukan guidance untuk mengatur sejauh mana model mengikuti label
  • Classifier guidance

    • Jika classifier mengeluarkan (p_\phi(y \mid x_0)), gradient terhadap input dapat digunakan untuk mendorong gambar ke arah class (y) yang diinginkan
    • Dengan menambahkan classifier gradient ke estimated mean pada setiap langkah sampling, diffusion process dapat menempatkan gambar di area image space yang masuk akal
    • Classifier dilatih dengan noisy image agar dapat menangani noisy image (x_t)
    • Dalam contoh class “T-shirt” pada Fashion-MNIST, classifier-guided sample dapat dibuat bahkan dengan classifier yang akurasinya 40%
    • Parameter guidance cg menskalakan classifier gradient
    • Guidance yang lebih kuat mempertegas ciri class, tetapi realism dapat menurun
  • Classifier-free guidance

    • Classifier-free guidance melakukan guidance tanpa classifier terpisah
    • Jika menerapkan Bayes rule, class gradient berubah menjadi selisih antara score bersyarat dan score data keseluruhan
    • Karena denoising diffusion model mempelajari score dari data latih, satu diffusion model dilatih dengan dua cara pada sampel yang sama
    • Dilatih bersama class label (y)
    • Dilatih bersama null class label
    • Saat sampling, dilakukan baik pemanggilan dengan class label yang diinginkan maupun pemanggilan tanpa label, lalu selisihnya digunakan sebagai guidance vector

Kondisi dan kontrol gambar

  • Image-to-image dan SDEdit

    • Image-to-image dasar dapat dilakukan tanpa melatih ulang model
    • Noise ditambahkan ke gambar input sesuai conditioning strength yang diinginkan, lalu dilakukan denoise
    • Untuk membuat conditioning lebih kuat, tambahkan lebih sedikit noise
    • Untuk membuat conditioning lebih lemah, tambahkan lebih banyak noise
    • Metode ini adalah SDEdit, dan menghasilkan output dengan bentuk keseluruhan yang mirip dengan gambar input
    • Kekurangannya adalah tidak bisa menentukan secara rinci apa yang akan dikontrol oleh gambar input
    • Jika ada sketsa input, muncul tradeoff: hasil bisa terlihat seperti sketsa, atau tidak cukup mengikuti bentuk yang ditentukan
  • Sketch-Guided Diffusion dan ControlNet

    • Untuk mengondisikan pembuatan gambar dengan gambar sketsa (y), kita dapat melatih model yang memprediksi garis sketsa (\hat{y}=F(x_t)) dari noisy image (x_t), lalu memandu setiap langkah sampling dengan sketch loss gradient
    • Ini adalah gagasan dari Sketch-Guided Diffusion
    • Cara lain adalah mengubah architecture agar denoiser menerima conditioning image (y), lalu melakukan fine-tuning dengan pasangan ((x_0,y))
    • Fine-tuning sederhana dapat menimbulkan masalah overfitting dan catastrophic forgetting
    • ControlNet membuat salinan untuk mempertahankan weight model asli, lalu melatih control-net dan parameter 1x1 convolution sementara model asli di-freeze
    • Convolution awalnya diinisialisasi dengan zero sehingga secara bertahap mempelajari delta untuk denoising step
    • Dalam praktiknya, ControlNet diterapkan pada level per-block, bukan pada level seluruh denoising model
    • Berdasarkan human evaluation, performanya lebih baik daripada alternatif seperti Sketch-Guided Diffusion
    • Dengan menggabungkannya dengan LoRA, ControlNet dapat dilatih secara efisien di consumer GPU
  • Inpainting

    • Inpainting adalah tugas mengisi masked part pada gambar
    • Metode image-to-image sederhana yang menambahkan noise hanya pada masked part tidak berfungsi
    • Pada (t>0), denoising model tidak tahu bagaimana harus menangani non-noisy part
    • Cara yang berfungsi adalah menambahkan noise ke masked dan unmasked part, lalu memasukkannya sebagai (x_T)
    • Setelah itu, pada setiap sampling step (t), unmasked part dari gambar asli disalin, noise ditambahkan sesuai timestep (t), lalu diletakkan di atas (x_t) untuk digunakan sebagai input denoiser
  • Text-to-image

    • Text-to-image adalah conditional generation yang memakai text embedding label
    • Dall-E dari OpenAI melatih model encoding CLIP yang memproyeksikan gambar dan teks ke ruang yang sama
    • Multimodal embedding space tidak selalu diperlukan
    • Google Imagen mengodekan teks menjadi embedding dengan T5 large language model
    • Jika embedding merupakan representasi yang cukup kaya, ia dapat digunakan sebagai kondisi text-to-image

Data pelatihan dan etika

  • Dataset model pembuatan gambar bukan masalah yang khusus hanya pada model difusi, tetapi merupakan faktor penting dalam pembahasan model generatif
  • Contoh dataset adalah sebagai berikut
    • Dall-E 1 dilatih dengan 250 juta text-image pair, Dall-E 2 dilatih dengan 650 juta pair, dan dataset-nya bersifat closed source
    • Stable Diffusion 1 dilatih dengan 2 miliar pair LAION-2B-en, lalu di-fine-tuning dengan 170 juta pair dari LAION-5B
    • Setelah itu, checkpoint Stable Diffusion 1 di-fine-tuning pada subset LAION-5B yang dipilih berdasarkan kriteria “aesthetics”
    • LAION-400M dirilis pada Agustus 2021, dan merupakan upaya untuk mereplikasi proses yang digunakan OpenAI untuk melatih CLIP
    • LAION berasal dari Common Crawl; mereka mengumpulkan HTML image tag yang memiliki alt-text dan membuang item yang isinya tidak cocok menggunakan CLIP
  • Sebagian pengguna membuat artist list yang muncul di LAION, dan haveibeentrained.com memungkinkan pengguna memeriksa apakah gambar mereka ada di LAION atau dataset lain
  • Salah satu faktor besar dalam AI art backlash adalah masalah etika: dataset seperti LAION mengumpulkan karya seni tanpa persetujuan artist dan menggunakannya untuk melatih model pembuatan gambar
    • Hal ini juga dibahas bersama fakta bahwa model gambar dapat menjadi ancaman langsung bagi mata pencaharian artist
  • Ada juga upaya untuk melatih model pembuatan gambar yang kompetitif dengan cara yang lebih etis
    • Adobe Firefly disebut dilatih hanya dengan licensed content seperti Adobe Stock dan public domain content yang hak ciptanya telah kedaluwarsa
    • Baru-baru ini ada scandal bahwa Firefly dilatih dengan sebagian gambar Midjourney
    • Stable Diffusion 3 mengizinkan artist untuk opt-out dari penggunaan training, dan akibatnya lebih dari 80 juta gambar dihapus

Data poisoning

  • Nightshade adalah serangan data poisoning terhadap model pembuatan gambar yang mendapat perhatian dalam AI art backlash
  • Metode ini memanfaatkan fakta bahwa meski model dilatih dengan miliaran gambar, untuk concept tertentu jumlah gambarnya bisa hanya puluhan
  • Nightshade adalah pendekatan yang mencoba meracuni data pada basis concept-specific
  • Para penulis paper menunjukkan contoh menyerang Stable Diffusion XL dengan 50 gambar yang dimodifikasi, sehingga setiap kali “car” disebutkan dalam prompt, model menghasilkan cow
  • Modifikasi dirancang agar sebisa mungkin tidak terlihat oleh mata manusia dengan mengoptimalkan multi-objective function yang mencakup perceptual loss
  • Serangan awal memerlukan akses ke feature extractor model
  • Para penulis meneliti bagaimana serangan yang didasarkan pada salah satu dari 4 model bekerja pada model lain, dan menyatakan bahwa serangan tersebut dapat digeneralisasi ke model selain model awal

Pembuatan gambar resolusi tinggi

  • Cascaded Diffusion adalah pendekatan awal yang melakukan pembuatan awal pada resolusi rendah, lalu meng-upscale gambar dengan beberapa super-resolution diffusion model
  • Stable Diffusion menggunakan latent diffusion
    • Gambar dibuat dengan diffusion di latent space milik auto-encoder
    • Setelah itu latent di-decode untuk memperoleh gambar resolusi tinggi
  • Para penulis latent diffusion menilai bahwa pendekatan yang paling baik adalah terlebih dahulu melatih auto-encoder untuk mengompresi data gambar, lalu secara terpisah melatih diffusion model pada encoded latent, bukan melatih auto-encoder dan diffusion model secara bersamaan
  • Cascaded Diffusion dan latent diffusion menambahkan beberapa model lain ke backbone diffusion model untuk melakukan scale up pada gambar yang dihasilkan
  • Perkembangan resolusi single-model didasarkan pada berbagai training trick seperti multi-scale loss dan penggunaan backbone architecture seperti transformer

Aplikasi model difusi di luar gambar

  • Audio, video, 3D

    • Riffusion adalah model generasi musik awal yang melakukan fine-tuning Stable Diffusion agar menghasilkan spectrogram image, lalu membuat lagu berdurasi 12 detik
    • Sonauto adalah model terkontrol yang lebih baru berbasis diffusion transformer, dan dapat menghasilkan lagu berdurasi 1 menit 35 detik dengan coherent lyrics
    • OpenAI Sora dan Google Veo adalah diffusion transformer video generation model yang dapat menghasilkan video clip 1080p berdurasi 1 menit dari text prompt
    • Sora memecah video menjadi spacetime patch dan dilatih untuk melakukan denoise pada patch tersebut
    • Insight utama dari technical report Sora adalah bahwa diffusion transformer dapat melakukan scale pada video generation, dan performanya ikut scale seiring compute
    • OpenAI tidak menjelaskan secara jelas apakah compute di sini berarti dataset size, model size, atau training time
    • Kedua model mendukung masked editing, pembuatan loop video penuh, static image animation, serta memperluas video maju dan mundur secara waktu
    • Pekerjaan video diffusion sebelumnya mencakup Imagen Video, dan autoregressive model seperti VideoPoet juga menjadi alternatif
    • 2D diffusion model secara implisit mempelajari 3D feature seperti correspondence
    • DreamFusion menggunakan text-to-image diffusion model sebagai prior untuk memandu 3D reconstruction algorithm berbasis gradient descent
    • Stable Video 3D meningkatkan multi-view consistency dengan video diffusion
    • Model-model seperti ini masih bergantung pada 3D reconstruction algorithm seperti photogrammetry, 3D gaussian splatting, dan neural radiance field
    • Salah satu alasan yang memungkinkan adalah data 3D relatif jarang
  • Life sciences

    • Model difusi menemukan berbagai aplikasi dalam medicine dan biology
    • Partial CT dan MRI scan sangat mengurangi radiation exposure pasien dan meningkatkan comfort, tetapi sulit karena full scan harus direkonstruksi dari partial data
    • Model difusi memberikan performa dan generalization yang lebih baik daripada supervised method dalam medical image reconstruction, serta mendorong state-of-the-art maju
    • AlphaFold 3 dari DeepMind menggunakan diffusion-based architecture, dan menunjukkan peningkatan signifikan dibanding versi sebelumnya serta specialized tool
    • Dengan input berupa molecule list, AlphaFold 3 memulai dari atom cloud lalu melakukan refinement berulang untuk menghasilkan joint 3D structure
    • Ini menunjukkan bagaimana molecule-molecule saling terpasang
    • Aplikasi computational biology lainnya mencakup single-cell data analysis, drug and small molecule design, serta protein-ligand interaction
  • Robotics

    • Robot yang berinteraksi dengan dunia nyata harus melakukan physical behavior dalam rentang yang sangat luas
    • Pendekatan tradisional memprogram secara eksplisit banyak sekali edge case dan metode recovery untuk tugas seperti membuka pintu atau mengikat tali sepatu
    • Ini berfungsi dalam controlled setting seperti factory, tetapi tidak scale
    • Policy learning from demonstration adalah pendekatan yang lebih skalabel untuk mengajari robot melakukan task melalui human demonstration
    • Biasanya manusia memberikan demonstration dengan mengendalikan motor robot melalui teleoperation
    • Demonstration yang diperlukan bisa berkisar dari puluhan hingga ratusan
    • Setelah itu, robot belajar menghasilkan action dengan kondisi berupa sensor observation dan, dalam beberapa kasus, natural language prompt
    • Model difusi menjadi state-of-the-art dalam policy generation model, dengan substantial improvement dibanding teknik sebelumnya
    • Model ini secara alami menangani multimodal action distribution
    • Cocok untuk high-dimensional action space
    • Training stability-nya mengesankan

1 komentar

 
GN⁺ 2024-05-27
Opini Hacker News
  • Saya kira difusi berasal dari score matching, tetapi hari ini saya mengetahui bahwa difusi ternyata muncul lebih dulu daripada teori score matching
    Jadi bahkan saat OpenAI melatih model dengan 250 juta gambar, belum ada teori yang bagus untuk menjelaskan mengapa mereka memodelkan distribusi dasar; itu pilihan yang cukup berani
    • Makalah asli Dickstein 2015 [1] merumuskan difusi sebagai cara memaksimalkan batas bawah log-likelihood untuk pembangkitan distribusi, jadi bukan berarti tidak ada teori sama sekali
      Namun saya memahaminya bahwa terobosannya adalah hasil eksperimen Ho [2] dan Nichol [3]. Karena mereka menunjukkan bahwa difusi bukan hanya bisa menghasilkan sampel berkualitas tinggi, tetapi dalam beberapa kasus lebih baik daripada GAN

      [1] https://arxiv.org/abs/1503.03585
      [2] https://arxiv.org/abs/2006.11239
      [3] https://arxiv.org/abs/2105.05233

  • Untuk Diffusion Transformers, pustaka Python berlisensi Apache atau MIT mana yang paling bagus?
  • Dalam classifier-free guidance, cara “melatih satu model difusi dengan memasangkan setiap sampel latih x0x0 sekali dengan label kelas yy, dan sekali dengan label kelas null” bukankah melakukan hal yang persis sama dengan masalah yang disebut buruk di paragraf pertama bagian yang sama?
    Ini tampak seperti masalah yang sama dengan bagian “Jika untuk yy tertentu model belum melihat cukup banyak sampel p(x∣y)p(x∣y), label dapat menghasilkan sampel yang tidak realistis atau kurang beragam. Karena itu, saat generasi kita ingin mengatur seberapa jauh model ‘mengikuti’ label”
    • Tidak sepenuhnya sama. Sampling-nya tidak dirumuskan sebagai sekadar mengambil dari distribusi kondisional, melainkan mendorong sampel tanpa kondisi ke arah sampel kondisional dengan besaran yang bisa diatur, sehingga kita bisa mengontrol kompromi antara realisme dan kekuatan kelas
      Namun benar bahwa jika kekuatan guidance dibuat terlalu besar, masalah serupa berupa turunnya realisme bisa muncul
  • “Pada 2022 saya menghabiskan waktu untuk belajar menggambar, lalu kena kejutan oleh naiknya model seni AI seperti Stable Diffusion. Tiba-tiba komputer menjadi pelukis yang jauh lebih baik daripada apa pun yang bisa saya harapkan.”
    Meski begitu, saya berharap penulis tetap menggambar. Semakin AI merambah pekerjaan kreatif, semakin saya justru ingin meruntuhkan semuanya
    • Sebaliknya, setelah mengenal hal-hal seperti Stable Diffusion dan Midjourney, saya malah lebih termotivasi untuk menggambar dan mencoba seni digital
      Saya mencoba mengambil keluaran dari alat-alat seperti ini lalu mereproduksinya sendiri atau menirunya dengan menggambar
  • Berkat tulisan ini, saya jadi jauh lebih memahami bagaimana dan mengapa model difusi bekerja. Keacakan itu luar biasa kuat dengan cara yang aneh
    Sekarang saatnya mencoba mengodekannya sendiri dengan bahasa yang cukup tidak pantas. Tidak banyak yang bisa diringkas untuk orang yang hanya membaca komentar. Tulisan ini sendiri adalah versi ringkas dari Stable Diffusion
  • Bukankah loop pelatihannya salah? Dalam persamaan xts, x0s dan eps sama-sama tidak digunakan, sehingga terlihat seperti model hanya belajar memprediksi noise acak
    • Saya tidak tahu persamaan mana yang dimaksud, tetapi sejauh pemahaman saya, jaringan tidak pernah “melihat” gambar jawaban secara langsung. Sebaliknya, ia harus belajar menyimpulkan informasi secara tidak langsung melalui fungsi loss
      Fungsi loss berisi informasi tentang noise, dan karena jaringan melihat secara tepat gambar yang sudah tercampur noise, itu setara dengan belajar dari gambar sampel sebenarnya. Kita juga bisa merancang fungsi loss yang mengukur selisih antara keluaran dan gambar asli; jumlah informasinya setara, tetapi berkat sifat noise Gaussian, diketahui bahwa untuk estimasi gradien, pendekatan prediksi noise jauh lebih menguntungkan. Intinya, informasi gambar asli memang ada di dalam loop, tetapi masuk hanya melalui lensa berupa noise tertentu

    • Benar. Seharusnya sama dengan persamaan tepat sebelumnya

      xts = alpha_bar[t].sqrt() * x0s + (1.-alpha_bar[t]).sqrt() * eps

      Selain itu, kodenya juga tidak konsisten. Kode sampling memakai embedding waktu, tetapi kode pelatihan tidak

  • Tata letaknya benar-benar enak dibaca. Kenapa saya membuang begitu banyak waktu membuat tata letak yang sulit dibaca?
    Namun saat Reader View dinyalakan, ada sedikit yang disayangkan. Rasanya seperti ingin membuktikan “halaman ini sempurna secara semantik!!”, tetapi di lingkungan itu, tinggi baris daftar navigasi kurang dari 1 sehingga sangat bertumpuk. Tapi saya biarkan saja ;)