4 puan yazan GN⁺ 2024-05-27 | 1 yorum | WhatsApp'ta paylaş
  • Difüzyon modelleri, veriye adım adım gürültü ekleyip sonra bunu geri almayı öğrenerek Stable Diffusion gibi görüntü üretiminin yanı sıra video, 3D, protein yapısı ve robot yörüngesi üretiminde de kullanılır
  • DDPM, temiz görüntüyü (x_0) birçok timestep boyunca (x_T)'ye yakın gürültüye dönüştürür ve modeli her adımdaki gürültü yönünü tahmin edecek şekilde L2 kaybıyla eğitir
  • Ters süreç, küçük gürültü adımlarında yaklaşık olarak Gauss dağılımı şeklinde ele alınabilir; Ho 2020, varyansı sabitleyerek eğitimi kararlı hale getirmiş ve ortalama tahminini gürültü tahminine indirgemiştir
  • Üretim hızı, DDPM'in en fazla 1000 adımlı örneklemesinden ODE tabanlı sampler'ların yaklaşık 10 adımına, progressive distillation ve adversarial distillation ile tek adımda üretime kadar düşürülebilir
  • Difüzyon modellerinin pratik kullanım alanı genişlemiş olsa da aşırı distillation'ın kaliteyi düşürmesi, koşullu kontrolün sınırları, veri kümesi etiği ve kaynak sorunları kısıt olarak kalmaya devam eder

Üretici modellemede difüzyon modellerinin yeri

  • Üretici modellemenin temel problemi, bilinmeyen bir dağılımdan (p(x)) gelen bir örnek kümesi olduğunda aynı dağılımdan yeni örnekler üretmektir
  • GAN, üretici ve ayırt edicinin oyunu olarak yaklaşır ve etkileyici görüntüler sentezleyebilir; ancak eğitimi zordur, (p(x))'i açıkça modellemez ve mode collapse oluşabilir
  • Normalizing flow, veri örnekleri ile birim Gauss arasında deterministik ve tersinir bir eşleme öğrenir
    • OpenAI'nin 2018 tarihli Glow modeli, anlamlı bir latent space'e sahip yüz görüntüleri üretmiştir
    • flow'da her katmanın tersinir olması ve Jacobian determinant'ın hızlı hesaplanması gerekir; rastgele bir (N \times N) Jacobian determinant hesabı (O(N^3)) olduğu için kısıtlar büyüktür
  • Difüzyon modelleri, deterministik eşleme yerine veriye azar azar rastgele gürültü karıştıran olasılıksal eşlemeyi birden çok adımda uygular ve bu süreci geri alan modeli öğrenir

Denoising Diffusion'ın temel fikri

  • Temiz bir veri noktasına birçok kez küçük gürültüler eklenirse sonunda neredeyse saf gürültü gibi görünen bir duruma gelir
  • Tek bir andaki gürültülü veri noktasına bakarak bile önceki adımda hangi yönden gelmiş olabileceği bir ölçüde tahmin edilebilir
  • Yeterince fazla gürültü eklendiğinde target space'teki bir (y) noktasının özgün uzaydaki (x)'ten gelme olasılığı (p(x))'e keyfi derecede yaklaşabilir
  • Çok adımlı ters süreç öğrenilirse (p(x))'ten örnekleme yapılabilir
  • Eğitimde her veri noktasına rastgele gürültü eklenir, modelin bu gürültüyü tahmin etmesi sağlanır ve tahmin edilen gürültü ile gerçek gürültü yönü arasındaki L2 loss gradient descent ile minimize edilir
  • Temel örnekleme şu akışı izler
    • Saf gürültü görüntüsünden başlanır
    • Görüntü içindeki gürültü tahmin edilir ve belirlenen oran kadar çıkarılır
    • sampler'a bağlı olarak 10 ila 1000 kez tekrarlanarak gürültüsüz görüntü elde edilir

DDPM: difüzyon modellerinin matematiksel çıkış noktası

  • DDPM (Denoising Diffusion Probabilistic Models), sonraki difüzyon modeli gelişimlerinin dili ve matematiksel temeli haline gelen yaklaşımdır
  • Girdi görüntüsü (x_0), (t=1,2,\dots,T) timestep boyunca küçük rastgele gürültüler tekrar tekrar eklenerek birim normal dağılımdaki bir noktaya taşınır
  • forward diffusion step, önceki görüntü (x_{t-1})'e gürültü (\epsilon \sim \mathcal{N}(0,I)) ekleyerek (x_t)'yi oluşturur
    • (\alpha_t), 1'den küçüktür ama 1'e yakındır
    • (\prod_{t=1}^T \alpha_t \approx 0) olacak şekilde ayarlanır
    • Karekök terimi, her adımdan sonra da varyansın korunmasını sağlar
  • Her adım yalnızca hemen önceki timestep'e bağlıdır ve karıştırılan gürültü önceki gürültülerden bağımsız olduğu için (x_t), (x_0) ve tek bir Gauss gürültü vektörüyle doğrudan ifade edilebilir
  • Bu özellik, ters süreci ve gürültü tahmini eğitim hedefini türetmek için kullanılır

Ters süreç ve gürültü tahmini eğitimi

  • noisy image (x_t) ve özgün görüntü (x_0) biliniyorsa, önceki daha az noisy sürüm (x_{t-1})'in dağılımı Gauss olarak kapalı forma sahiptir
  • Üretim anında özgün (x_0) bilinmediği için (q(x_{t-1} \mid x_t))'yi doğrudan kullanmak gerekir; ancak tüm veri kümesi üretim anında kullanılamaz
    • Veri kümesi milyarlarca görüntüden oluşabilir
    • Her timestep'te bunu izlemek yeni örnekler yerine eğitim örneklerini geri kazanma sonucunu doğurur
  • (q(x_{t-1} \mid x_t)), çok küçük gürültü adımlarında yaklaşık olarak Gauss'tur; bu istatistiksel fiziğin eski bir sonucudur
  • Model, Gauss'un parametreleri (\mu_\theta, \Sigma_\theta)'yı tahmin eder ve her eğitim örneği için bilinen dağılım (q(x_{t-1} \mid x_t, x_0)) ile arasındaki KL divergence'ı azaltır
  • Ho 2020, (\Sigma_\theta)'yı (\Sigma(t))'ye eşit olacak şekilde sabitlemiştir
    • Varyansı öğrenmeye çalışmak eğitimi fazla kararsız hale getirmiştir
    • Pratikte yalnızca ortalama (\mu_\theta) öğrenilir
  • Ortalama tahmini problemi, (x_t)'nin (x_0) ile Gauss gürültüsü (\epsilon)'un karışımı olarak ifade edilmesinden yararlanılarak gürültü tahmini problemine dönüştürülür
  • Nihai basit kayıp (L_\text{simple}), gerçek gürültü (\epsilon) ile model tahmini (\epsilon_\theta) arasındaki kare hatayı minimize eder
    • weighting göz ardı edildiğinde çıktı kalitesi iyileşir
    • Bu, düşük (t)'lerdeki loss term'leri daha düşük ağırlıklandırıp ağın çok gürültülü görüntüleri denoise etme gibi daha zor bir probleme odaklanmasını sağlamak olarak görülebilir

DDPM örneklemesi ve 2D örnek

  • Eğitilmiş gürültü tahmin modeli (\epsilon_\theta(x_t,t)) varsa ters süreç örneklenebilir
    • (x_T \sim \mathcal{N}(0,I)) ile rastgele bir gürültü görüntüsü örneklenir
    • Timestep'ler (T)'den 1'e doğru geriye sarılarak gürültü tahmin edilir
    • Tahmin edilen ortalama ve varyansla (x_{t-1}) örneklenir
  • DDPM'in akışı şöyledir
    • Görüntü veri kümesinin underlying distribution'ını öğrenmeye çalışır
    • forward noising process ile (x_0), kademeli olarak (x_T)'ye dönüştürülür
    • Ters süreç, (T) büyük olduğunda yaklaşık Gauss olarak ele alınabilir
    • (x_0)'ın veri kümesindeki belirli bir görüntü olduğu varsayılırsa bilinen dağılım tam olarak hesaplanabilir
    • KL divergence ile tüm eğitim görüntüleri için bu bilinen dağılıma yaklaşacak şekilde eğitilir
    • Bu süreç, veri kümesini yeniden üretme likelihood'unu maksimize eden lower bound'u optimize eder
  • 142 noktadan oluşan Datasaurus veri kümesi örneği, 2D dağılım öğrenimini gösterir
    • 3 hidden layer, hidden size 64 ve ReLU kullanan MLP, 12.000'den fazla parametreye sahiptir
    • Timestep bilgisi verilmezse istenen dinozor biçimli dağılım ortaya çıkmaz
    • Timestep (t=0,\dots,50)'yi 0 ile 1 arasına normalize ederek girdi olarak vermek sonucu iyileştirir
    • Fourier encoding ile girdiyi random frequency feature uzayına dönüştürmek daha iyi bir dağılım öğrenilmesini sağlar
  • noising schedule ayarı da performans için önemlidir
    • Ho 2020 yöntemi, (\alpha_t)'yi doğrusal olarak azaltır ve (\bar\alpha_T \approx 0) olacak şekilde ayarlayarak yüksek çözünürlüklü görüntülere iyi uyar
    • Düşük boyutlu veri, daha orta aşamalarda bile zaten gürültü gibi göründüğünden, daha fazla high-signal örnekle eğitilecek şekilde schedule ayarlanırsa performans iyileşir
    • Örneğin özgün schedule'ı (\bar\alpha_T \approx 0.28) ile saf gürültüye kadar gitmiyordu; yeni schedule, mevcut schedule'ın ara değeri olan 0.6'da biter

Üretim hızını artıran gelişmeler

  • Score matching ve ODE tabanlı sampler

    • Difüzyon modellerinin ilk dezavantajı, DDPM’in ters dağılım için Gauss varsayımı nedeniyle üretim hızının yavaş olmasıydı
    • Modelin noisy input (x_t) üzerinden tahmin ettiği gürültü yönü, timestep’e bağlı sabitler hariç tutulduğunda, forward process’in (x_t)’yi üretmesine ilişkin log-likelihood gradient’i, yani score ile aynıdır
    • Score, dağılımın mode’una doğru gidilmesi gereken yönü gösteren bir vector field olarak görülebilir
    • Noise-conditioning score network, kademeli olarak gürültü eklenmiş veri kümesinin score’unu öğrenir ve score field’ı izleyerek yeni örnekler üretir
    • Forward diffusion process, stochastic differential equation (SDE) ile tanımlanabilir
    • Aynı timestep dağılımlarına sahip deterministic process’i tanımlayan bir ODE de vardır; bu ODE, score function’ı içeren kapalı bir forma sahiptir
    • Bu sayede önceden eğitilmiş bir diffusion model’de bile tamamen deterministic sampling mümkün olur ve genel amaçlı ODE solver’lar sampling için kullanılabilir
    • DDPM, Stable Diffusion’da yüksek kaliteli sonuçlar elde etmek için 1000 adıma kadar ihtiyaç duyabilir
    • Euler method tabanlı sampler, yaklaşık 10 adımla bile yüksek kaliteli sonuçlar üretebilir
    • Karras 2022, sampler’ların tradeoff’larını ve DDPM gibi stochastic sampler’lardaki stochasticity’nin bazı durumlarda önemli olabileceğini ele alır
  • Distillation

    • Progressive distillation, 1000 adımda sampling yapan önceden eğitilmiş bir teacher kullanarak student’ın, teacher’ın 2 adımlık çıktısını 1 adımda tahmin etmesini öğretir
    • Bu süreç tekrarlanıp student yeni teacher olarak kullanıldığında, adım sayısı her seferinde yarıya indirilebilir
    • Progressive distillation kayıplıdır; fazla uygulanırsa örnekler bulanık veya gerçek dışı olabilir
    • Adversarial distillation, student sample’larının gerçekçiliğini artırmak için discriminator’ı birlikte eğitir; ancak GAN’lerde görüldüğü gibi sample diversity ile bir tradeoff vardır
    • Stable Diffusion XL Turbo bu yöntemle eğitilmiştir ve yüksek kaliteli görüntüleri tek adımda üretebilir

Koşullu üretim ve Guidance

  • Koşullu difüzyon modelleri

    • Hayvan görüntüleriyle eğitilmiş bir modelde yalnızca kedi üretmek için koşullu dağılımı (p(x \mid y)) modellemek gerekir
    • Diffusion model (\epsilon_\theta(x_t,t,y)), veri kümesindeki ((x_0,y)) çiftleriyle eğitilirse class label, text embedding, segmentation mask gibi koşul bilgileri kullanılabilir
    • Ho 2021, ImageNet üzerinde class-conditional diffusion model eğitti
    • Belirli bir (y) için yeterli (p(x \mid y)) örneği yoksa, label gerçek dışı veya çeşitliliği düşük örneklere yol açabilir
    • Bu nedenle üretim sırasında modelin label’a ne kadar uyacağını ayarlayan guidance gerekir
  • Classifier guidance

    • Classifier (p_\phi(y \mid x_0)) çıktısı veriyorsa, girdiye göre gradient kullanılarak görüntü istenen class (y) yönüne itilebilir
    • Sampling’in her adımında classifier gradient’i estimated mean’e eklenirse, diffusion process görüntüyü makul bir image space bölgesine yerleştirebilir
    • Classifier, noisy image (x_t)’yi işleyebilmesi için noisy image’larla eğitilir
    • Fashion-MNIST’teki “T-shirt” class örneğinde, doğruluğu %40 olan bir classifier ile bile classifier-guided sample oluşturulabilir
    • Guidance parameter cg, classifier gradient’ini ölçekler
    • Daha güçlü guidance, class özelliklerini güçlendirir ancak realism’i düşürebilir
  • Classifier-free guidance

    • Classifier-free guidance, ayrı bir classifier olmadan guidance uygular
    • Bayes rule uygulandığında class gradient, koşullu score ile tüm veri score’u arasındaki farka dönüşür
    • Denoising diffusion model, eğitim verisinin score’unu öğrendiğinden, tek bir diffusion model aynı örnek için iki şekilde eğitilir
    • Class label (y) ile birlikte eğitilir
    • Null class label ile birlikte eğitilir
    • Sampling sırasında istenen class label ile yapılan çağrı ve label’sız çağrı birlikte gerçekleştirilir; aralarındaki fark guidance vector olarak kullanılır

Görüntü koşullandırma ve kontrol

  • Image-to-image ve SDEdit

    • Temel image-to-image, modeli yeniden eğitmeden yapılabilir
    • Girdi görüntüsüne istenen conditioning strength’e göre gürültü eklenir, ardından denoise edilir
    • Conditioning’i güçlü yapmak için daha az gürültü eklenir
    • Conditioning’i zayıf yapmak için daha fazla gürültü eklenir
    • Bu yöntem SDEdit’tir ve girdi görüntüsüyle aynı genel biçime sahip sonuçlar üretir
    • Dezavantajı, girdi görüntüsünün neyi kontrol edeceğini ayrıntılı biçimde belirlemenin mümkün olmamasıdır
    • Bir girdi eskizi varsa, sonuç ya eskiz gibi görünür ya da belirtilen biçimi yeterince takip etmez; bu da bir tradeoff yaratır
  • Sketch-Guided Diffusion ve ControlNet

    • Bir eskiz görüntüsü (y) ile üretimi koşullandırmak için, noisy image (x_t) üzerinden eskiz çizgilerini (\hat{y}=F(x_t)) tahmin eden bir model eğitilebilir ve her örnekleme adımı sketch loss gradient ile guide edilebilir
    • Bu, Sketch-Guided Diffusion’ın fikridir
    • Başka bir yöntem, denoiser’ın conditioning image (y) alacak şekilde architecture’ını değiştirmek ve ((x_0,y)) çiftleriyle fine-tuning yapmaktır
    • Basit fine-tuning, overfitting ve catastrophic forgetting sorunlarına yol açabilir
    • ControlNet, orijinal modelin weight’lerini korumak için bir kopya oluşturur; orijinal modeli freeze halde tutarken control-net ve 1x1 convolution parametrelerini eğitir
    • Convolution başlangıçta zero ile initialize edilir ve denoising step için delta’yı kademeli olarak öğrenir
    • Gerçek ControlNet, tüm denoising model düzeyinde değil, per-block düzeyinde uygulanır
    • Human evaluation ölçütlerine göre Sketch-Guided Diffusion gibi alternatiflerden daha iyi performans gösterir
    • LoRA ile birleştirilerek consumer GPU’da ControlNet verimli biçimde eğitilebilir
  • Inpainting

    • Inpainting, görüntünün masked part’ını doldurma görevidir
    • Yalnızca masked part’a gürültü ekleyen basit image-to-image yöntemi çalışmaz
    • (t>0) iken denoising model, non-noisy part’ı nasıl işlemesi gerektiğini bilemez
    • Çalışan yöntem, hem masked hem unmasked part’lara gürültü ekleyip bunları (x_T) olarak vermektir
    • Sonrasında her sampling step (t) için orijinal görüntünün unmasked part’ı kopyalanır, timestep (t)’ye uygun gürültü eklenir ve denoiser girdisi olarak kullanılmak üzere (x_t) üzerine yerleştirilir
  • Text-to-image

    • Text-to-image, text embedding label kullanan conditional generation’dır
    • OpenAI’ın Dall-E’si, görüntüleri ve metinleri aynı uzaya projekte eden CLIP encoding modelini eğitti
    • Multimodal embedding space zorunlu değildir
    • Google Imagen, metni embedding olarak encode etmek için T5 large language model kullanır
    • Embedding yeterince zengin bir temsilse text-to-image koşulu olarak kullanılabilir

Eğitim verileri ve etik

  • Görüntü üretim modellerinin veri kümeleri yalnızca difüzyon modellerine özgü bir sorun değildir, ancak üretken model tartışmalarında önemli bir unsurdur
  • Veri kümesi örnekleri şöyledir
    • Dall-E 1, 250 milyon text-image pair ile; Dall-E 2 ise 650 milyon pair ile eğitildi ve dataset closed source’dur
    • Stable Diffusion 1, LAION-2B-en’in 2 milyar pair’iyle eğitildikten sonra LAION-5B’nin 170 milyon pair’iyle fine-tuning edildi
    • Daha sonra Stable Diffusion 1 checkpoint’leri, LAION-5B içinden “aesthetics” kriterine göre seçilen bir subset üzerinde fine-tuning edildi
    • LAION-400M Ağustos 2021’de yayımlandı ve OpenAI’ın CLIP eğitiminde kullandığı süreci yeniden üretme girişimiydi
    • LAION, Common Crawl’dan türetildi; alt-text içeren HTML image tag’lerini topladı ve CLIP ile içerikle uyuşmayan öğeleri eledi
  • Bazı kullanıcılar LAION’da görünen artist list’i oluşturdu; haveibeentrained.com ise kullanıcıların kendi görüntülerinin LAION’da veya başka dataset’lerde bulunup bulunmadığını kontrol etmesini sağlar
  • AI art backlash’in büyük bir unsuru, LAION gibi dataset’lerde artist’lerin rızası olmadan art toplanıp görüntü üretim modellerinin eğitiminde kullanılmasına ilişkin etik sorundur
    • Görüntü modellerinin artist’lerin geçim kaynakları için doğrudan tehdit olabileceği de ayrıca dile getirilir
  • Rekabetçi görüntü üretim modellerini daha etik yöntemlerle eğitmeye yönelik çabalar da vardır
    • Adobe Firefly, Adobe Stock gibi licensed content ve telif hakkı süresi dolmuş public domain content ile eğitiliyor olarak sunulmaktadır
    • Firefly’ın bazı Midjourney görüntüleriyle eğitildiğine dair yakın zamanda bir scandal yaşandı
    • Stable Diffusion 3, artist’lere training kullanımından opt-out hakkı tanıdı ve bunun sonucunda 80 milyondan fazla görüntü kaldırıldı

Data poisoning

  • Nightshade, AI art backlash içinde dikkat çeken, görüntü üretim modellerini hedefleyen bir data poisoning saldırısıdır
  • Model milyarlarca görüntüyle eğitilse de belirli bir concept için yalnızca onlarca görüntü bulunabileceği gerçeğinden yararlanır
  • Nightshade, concept-specific basis ile veriyi poison etmeye çalışan bir yöntemdir
  • Makalenin yazarları, 50 değiştirilmiş görüntüyle Stable Diffusion XL’a saldırıp prompt’ta “car” her geçtiğinde cow çıktısı üretmesini sağlayan bir örnek gösterir
  • Değişiklikler, perceptual loss içeren multi-objective function optimize edilerek insan gözüne mümkün olduğunca fark edilmez olacak şekilde tasarlanır
  • İlk saldırı, modelin feature extractor’ına erişim gerektirir
  • Yazarlar, dört modelden biri temel alınarak yapılan saldırının diğer modellerde nasıl çalıştığını inceledi ve saldırının başlangıç modeli dışındaki modellere de genelleştiğini belirtiyor

Yüksek çözünürlüklü görüntü üretimi

  • Cascaded Diffusion, ilk üretimi düşük çözünürlükte yapıp ardından görüntüyü birden fazla super-resolution diffusion model ile upscale eden erken dönem bir yaklaşımdır
  • Stable Diffusion latent diffusion kullanır
    • Auto-encoder’ın latent space’inde diffusion ile görüntü üretir
    • Daha sonra yüksek çözünürlüklü görüntüyü elde etmek için latent decode edilir
  • Latent diffusion yazarları, auto-encoder ile diffusion model’i birlikte eğitmek yerine önce auto-encoder’ı görüntü verilerini sıkıştıracak şekilde eğitip, ayrı olarak encoded latent üzerinde diffusion model eğitmenin en iyi çalıştığını düşünür
  • Cascaded Diffusion ve latent diffusion, backbone diffusion model’e çeşitli başka modeller ekleyerek üretilen görüntüyü scale up eder
  • Single-model resolution gelişimi, multi-scale loss ve transformer gibi backbone architecture kullanımı dahil olmak üzere çeşitli training trick’lerine dayanır

Görüntü dışındaki difüzyon modeli uygulamaları

  • Ses, video, 3D

    • Riffusion, Stable Diffusion’ı spectrogram image çıktısı için fine-tune ederek 12 saniyelik şarkılar üreten erken dönem bir müzik üretim modeliydi
    • Sonauto, diffusion transformer tabanlı daha yeni ve kontrol edilebilir bir modeldir; coherent lyrics içeren 1 dakika 35 saniyelik şarkılar üretebilir
    • OpenAI Sora ve Google Veo, text prompt’tan 1 dakikalık 1080p video clip üretebilen diffusion transformer video generation model’leridir
    • Sora, videoyu spacetime patch’lere ayırır ve patch’leri denoise etmeyi öğrenir
    • Sora technical report’unun temel insight’ı, diffusion transformer’ın video generation’a scale edebildiği ve performansın compute ile birlikte scale ettiği noktasıdır
    • OpenAI burada compute’un dataset size, model size veya training time’dan hangisi olduğunu netleştirmez
    • İki model de masked editing, tam loop video üretimi, static image animation ve videoyu zamanda ileri-geri genişletme gibi işleri destekler
    • Geçmiş video diffusion çalışmalarına Imagen Video örnek verilebilir; VideoPoet gibi autoregressive model’ler de alternatiftir
    • 2D diffusion model, correspondence gibi 3D feature’ları örtük olarak öğrenir
    • DreamFusion, text-to-image diffusion model’i prior olarak kullanıp gradient descent tabanlı 3D reconstruction algorithm’i guide eder
    • Stable Video 3D, video diffusion ile multi-view consistency’yi iyileştirir
    • Bu modeller hâlâ photogrammetry, 3D gaussian splatting ve neural radiance field gibi 3D reconstruction algorithm’lerine dayanır
    • Olası nedenlerden biri, 3D data’nın görece seyrek olmasıdır
  • Yaşam bilimleri

    • Difüzyon modelleri medicine ve biology alanlarında çeşitli uygulamalar buluyor
    • Partial CT ve MRI scan’leri hastanın radiation exposure’ını büyük ölçüde azaltır ve comfort’u artırır; ancak partial data’dan full scan reconstruction yapmak gerektiği için zordur
    • Difüzyon modelleri medical image reconstruction’da supervised method’lara göre daha iyi performans ve generalization sunar, state-of-the-art’ı ileri taşır
    • DeepMind’ın AlphaFold 3 modeli diffusion-based architecture kullanır ve önceki sürümlere ve specialized tool’lara kıyasla önemli iyileşme gösterir
    • Girdi olarak bir molecule list verildiğinde, AlphaFold 3 atom cloud’dan başlayıp tekrarlı biçimde refinement yaparak ortak 3D structure oluşturur
    • Bu, molecule’lerin birbirine nasıl oturduğunu gösterir
    • Diğer computational biology uygulamaları arasında single-cell data analysis, drug and small molecule design, protein-ligand interaction bulunur
  • Robotik

    • Gerçek dünyayla etkileşime giren robot’ların çok geniş bir physical behavior yelpazesini yerine getirmesi gerekir
    • Geleneksel yaklaşım, kapı açma veya ayakkabı bağlama gibi işler için çok sayıda edge case ve recovery yöntemini açıkça programlar
    • Factory gibi controlled setting’lerde çalışır, ancak scale etmez
    • Policy learning from demonstration, human demonstration ile robot’a task gerçekleştirmeyi öğretmeye yönelik daha ölçeklenebilir bir yaklaşımdır
    • Genellikle bir kişi teleoperation ile robot motor’larını kontrol ederek demonstration sağlar
    • Demonstration sayısı onlarcadan yüzlere kadar gerekebilir
    • Ardından robot, sensor observation ve bazı durumlarda natural language prompt koşuluyla action üretmeyi öğrenir
    • Difüzyon modelleri policy generation model’larında state-of-the-art’tır ve önceki tekniklere kıyasla substantial improvement gösterir
    • Multimodal action distribution’ı doğal biçimde işler
    • High-dimensional action space’lere uygundur
    • Training stability’si etkileyicidir

1 yorum

 
GN⁺ 2024-05-27
Hacker News yorumları
  • Diffusion’ın score matching’den çıktığını sanıyordum, ama bugün diffusion’ın score matching teorisinden daha önce ortaya çıktığını öğrendim
    OpenAI 250 milyon görselle eğitim yaparken bile neden taban dağılımını modellediklerini açıklayan güçlü bir teori yokmuş gibi görünüyor, yani bu epey cesur bir seçimmiş
    • Aslında Dickstein 2015 makalesi [1], diffusion’ı dağılım üretiminin log-olabilirlik alt sınırını maksimize etme biçiminde formüle etmişti; yani ortada hiç teori yok değildi
      Yine de asıl dönüm noktasının Ho [2] ve Nichol [3]’ün deneysel sonuçları olduğunu düşünüyorum. Çünkü diffusion’ın yalnızca yüksek kaliteli örnekler üretebildiğini değil, bazı durumlarda GAN’lerden daha iyi olduğunu da gösterdiler

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

  • Diffusion Transformers için Apache veya MIT lisanslı Python kütüphaneleri arasında en iyisi hangisi?
  • Classifier-free guidance’da “tüm eğitim örnekleri x0x0 için, bir kez sınıf etiketi yy ile ve bir kez de null sınıf etiketiyle eşleştirerek tek bir diffusion modeli eğitilir” denmesi, aynı bölümün ilk paragrafında kötü olduğu söylenen şeyle tam olarak aynı değil mi?
    “Belirli bir yy için yeterince p(x∣y)p(x∣y) örneği görülmediyse, etiket nedeniyle gerçekçi olmayan veya çeşitliliği düşük örnekler çıkabilir. Bu yüzden üretim sırasında modelin etikete ne kadar ‘uyacağını’ ayarlamak isteriz” denilen kısımla aynı problem gibi görünüyor
    • Tam olarak aynı değil. Çünkü örnekleme, koşullu dağılımdan doğrudan çekmek yerine, koşulsuz örneği koşullu örnek yönüne ayarlanabilir bir miktarda itmek şeklinde formüle ediliyor; bu da gerçekçilik ile sınıf gücü arasındaki ödünleşimi kontrol etmeyi sağlıyor
      Ama guidance gücü fazla artırılırsa gerçekçiliğin düşmesi gibi benzer bir sorunun yine ortaya çıkabildiği de doğru
  • “2022’de resim yapmayı öğrenmeye zaman ayırdım ve Stable Diffusion gibi AI art modellerinin yükselişi beni hazırlıksız yakaladı. Bir anda bilgisayar, benim olmayı umabileceğimden çok daha iyi bir ressam oldu.”
    Yine de yazarın çizmeye devam etmesini isterim. Yapay zekanın yaratıcı işlere girmesi arttıkça, insanın hepsini yerle bir etesi geliyor
    • Bende ise tam tersi oldu; Stable Diffusion ve Midjourney gibi şeylerle tanıştıktan sonra çizim yapma ve dijital sanat deneme motivasyonum arttı
      Bu araçların çıktısını alıp onu kendim yeniden üretmeye ya da taklit ederek çizmeye çalışıyorum
  • Bu yazı sayesinde diffusion modellerinin nasıl ve neden çalıştığını çok daha iyi anladım. Rastgelelik tuhaf derecede güçlü
    Artık uygun ölçüde uygunsuz bir dille bir tane kendim kodlamanın zamanı geldi. Sadece yorumlara göz atanlar için ayrıca özetlenecek pek bir şey yok. Bu yazının kendisi zaten Stable Diffusion’ın özeti gibi
  • Eğitim döngüsü hatalı değil mi? xts denkleminde hem x0s hem de eps kullanılmıyor gibi görünüyor; sanki sadece rastgele gürültü tahmini eğitiliyormuş gibi
    • Hangi denklemi kastettiğini bilmiyorum ama benim anladığım kadarıyla ağ, doğru görüntüyü doğrudan “görmüyor”. Bunun yerine, kayıp fonksiyonu üzerinden bilgiyi dolaylı olarak çıkarsamayı öğrenmesi gerekiyor
      Kayıp fonksiyonu gürültü hakkında bilgi içeriyor ve ağ gürültü karışmış görüntüyü tam olarak gördüğü için bu, fiilen gerçek örnek görüntülerden öğrenmeye eşdeğer. Çıktı ile gerçek görüntü arasındaki farkı ölçen bir kayıp fonksiyonu da tasarlanabilir ve bilgi miktarı eşdeğerdir; ancak Gaussian gürültüsünün özellikleri nedeniyle gradyan tahmini açısından gürültü tahmini yaklaşımının çok daha avantajlı olduğu biliniyor. Ana fikir, gerçek görüntü bilgisinin döngünün içinde bulunması ama yalnızca belirli bir gürültü merceğinden geçerek girmesi

    • Evet. Hemen önceki denklemle aynı olması gerekiyor

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

      Üstelik kod da kendi içinde tutarlı değil. Örnekleme kodunda zaman gömmesi kullanılıyor ama eğitim kodunda kullanılmıyor

  • Düzen gerçekten çok okunaklı. Ben neden okunması zor düzenler yapmak için bu kadar zaman harcıyorum ki?
    Yine de Reader View açıldığında biraz hayal kırıklığı yarattı. Sanki “bu sayfa anlamsal olarak kusursuz!!” demeye çalışıyormuş gibiydi, ama o ortamda gezinti listesinin satır yüksekliği 1’den küçük olduğu için fena halde sıkışıyor. Yine de görmezden gelebilirim ;)