Yapay zekâ nasıl resim çizer?
Bir kutuya “ayda kayak yapan bir kedi” yazarsın. Birkaç saniye sonra ekranda böyle bir resim belirir. Daha önce hiç kimse bu resmi çizmedi. Peki makine onu nereden buldu?
Cevap şaşırtıcı: makine resmi bir yerden bulmuyor. Bir gürültü yığınından başlıyor ve onu adım adım temizliyor.
1. Önce bozmayı öğren
Eski bir televizyonun karıncalı ekranını hatırla. Rastgele noktalardan oluşan o görüntüye gürültü denir.
Şimdi bir kedi fotoğrafı al ve üzerine biraz gürültü serp. Kedi hâlâ belli. Biraz daha serp, biraz daha. Yüz adım sonra geriye sadece karıncalı bir ekran kalır. Kedi kaybolmuştur.
Bu bozma işi kolaydır, her bilgisayar yapabilir. Asıl ustalık tersini yapmaktır.
2. Sonra temizlemeyi öğren
Makineye milyonlarca kez aynı oyun oynatılır. Ona biraz bozulmuş bir resim gösterilir ve “Bunun üzerine hangi gürültü serpildi?” diye sorulur. Makine tahmin eder, doğru cevapla karşılaştırılır, içindeki ayarlar biraz düzeltilir. Bir makine nasıl öğrenir? sayfasındaki döngünün aynısı.
Yeterince oynadıktan sonra makine, karıncalı bir görüntüye bakıp “Burada biraz daha az gürültü olsaydı nasıl görünürdü?” sorusuna iyi cevap verir hâle gelir. Bu tekniğe difüzyon denir.
3. Gürültüden resme
Şimdi hile şu: Makineye hiçbir resimden gelmeyen, tamamen rastgele bir gürültü ver. Ondan bir adım temizlemesini iste. Sonra bir adım daha. Her adımda gürültünün içinden bir şekil biraz daha belirginleşir. Birkaç düzine adım sonra ortada temiz bir resim vardır.
Aşağıdaki levhada bunu küçük ölçekte görebilirsin. Önce 60 noktalık bir kalp şekli dağılıp gürültüye dönüşüyor. Sonra makine saf gürültüden başlayıp adım adım şekli geri kuruyor.
“Adım sayısı” kaydırıcısını en sola, 2’ye çek. Makine gürültüden şekle iki büyük adımda atlamaya çalışınca noktalar kalbe değil, ortada tek bir yığına toplanıyor. Temizlemek küçük, sabırlı adımlar istiyor.
4. Yazı resmi nasıl yönlendirir?
Buraya kadar makine herhangi bir resim üretir. “Kedi” yazdığında neden kedi çıkıyor?
Çünkü makine eğitilirken resimlerin yanında onların açıklamaları da vardı. İnternetten toplanmış milyarlarca resim ve altındaki yazılar. Makine her temizleme adımında yazına da bakar. Gürültünün içinde kediye benzeyen bir şey varsa onu öne çıkarır. Yazı, temizliğin hangi yöne gideceğini seçer.
Bu yüzden aynı yazıyla iki kez denediğinde iki farklı resim çıkar. Başlangıçtaki gürültü her seferinde başkadır. Yazı yönü verir, gürültü ayrıntıları belirler.
5. Neden bazen garip çizer?
Makine dünyayı bilmez. Sadece resimlerde neyin neyin yanında durduğunu bilir. Bir elin beş parmağı olduğunu “bilmez”. Parmakların çoğu fotoğrafta iç içe göründüğü için eski modeller sık sık altı ya da yedi parmaklı eller çizerdi. Yeni modeller daha çok ve daha iyi resim gördükleri için bu hatayı daha az yapıyor.
Bir de şunu bil: Bu modellerin eğitildiği resimlerin çoğu, sanatçıların ve fotoğrafçıların emeği. İzin ve telif konusu hâlâ mahkemelerde ve meclislerde tartışılıyor.
Akılda kalsın: Resim yapan yapay zekâ önce resimleri gürültüyle bozmayı, sonra o gürültüyü temizlemeyi öğrenir. Resim üretirken saf gürültüden başlar, yazına bakarak adım adım temizler.
Daha derine inmek istersen: Atlas’ta difüzyon modeli ve bu fikri ilk kez iyi çalıştıran Ho, Jain ve Abbeel’in 2020 tarihli makalesi (İngilizce).
Kaynaklar
- Sohl-Dickstein ve diğerleri (2015): Deep Unsupervised Learning using Nonequilibrium Thermodynamics ↗Gürültü ekleyip geri almak fikri
- Ho, Jain ve Abbeel (2020): Denoising Diffusion Probabilistic Models ↗Fikri iyi çalıştıran makale
- Radford ve diğerleri (2021): Learning Transferable Visual Models From Natural Language Supervision ↗Resimle yazıyı eşleştirmek
- Rombach ve diğerleri (2022): High-Resolution Image Synthesis with Latent Diffusion Models ↗Yazıdan resim üreten modeller
- Schuhmann ve diğerleri (2022): LAION-5B ↗Milyarlarca resim ve açıklamasından oluşan veri kümesi