Üretici Yapay Zeka (Generative AI) nedir?

Melike Nur Yeğin
novaresearchlab
Published in
6 min readAug 16, 2020

Yapay zeka araştırmacıları yıllar önce insan zekasını taklit eden modeller geliştirmeye başladılar. Peki sizce şu an yapay zeka insan zekasının neresinde? Kedi ile köpeğin, sanat ve spor haberlerinin, rock ve caz müziğin ayırt edici özelliklerini yapay öğrenme teknikleri ile başarılı bir şekilde çıkartıp hangi türden olduğu bilinmeyen bir hayvanın, haberin, müziğin türünü tespit edebiliyoruz. Bunların hepsi aslında kendi içinde oldukça basit problemler. Bunun bir tık üstünde bu alanlardan biri ile ilgilenen birinin kısa bir süre sonra yapabileceği bir iş var. Üretmek…

4 yaşındaki bir çocuk birçok şeyi tanırken aynı zamanda çizmeye de başlar. Ev çiz diyince ev, araba diyince araba çizebilir. Hatta ‘evin önünde duran büyük bir araba çiz’ diyince bunu bile anlayıp çizer. Peki yapay zeka bunu yapabilir mi? Onlarca farklı tür içinde istediğimiz bir örneği hem de özellikleri de belli olarak üretebilir mi? İşte tam olarak bu aşamada üretici modeller karşımıza çıkar. Temel olarak önceki bilgilerini kullanarak yeni bir şeyler üretmesini beklediğimiz yapay öğrenme algoritmalarına üretici modeller diyoruz. Diğer yöntemler yani ayırt edici (discriminative) modeller verilen bir müziğin hangi türde olduğunu bilebilirken üretici (generative) modeller istediğimiz bir türde müzik üretebilir.

Ref: https://www.youtube.com/watch?v=FZBFV7xfGaY

Üretici ve ayırt edici modellerin farkını daha iyi anlamak için bir örnek verelim: Görevimiz bir konuşmanın hangi dilde olduğunu tespit etmek olsun. 2 farklı yöntem uygulayabiliriz.

1. Tüm dilleri öğrenip edindiğimiz bilgiyi kullanarak konuşmanın dilini bulmak.

2. Dilleri öğrenmeden sadece birbirlerinden farklarını, ayırt edici özelliklerini tespit edip konuşmanın hangi dilde olduğunu çıkartmak.

Eğer 1. seçenekteki yolu izlersek üretici bir yaklaşım yapmış oluruz, 2. seçenek ise ayırt edici yaklaşımla çözüm yöntemidir. 1. yaklaşım sayesinde detaylarını ayrıntılı bir şekilde öğrendiğimiz bir sınıftan örnek üretmemiz (o dili konuşabilmemiz, yazabilmemiz…) de mümkündür.

Üretici modellerin problemleri çözmek için her ihtimali en baştan öğrenip ona göre karar verdiğini söyledik. Peki nasıl? Ayırt edici modeller sınıflar arasındaki ayırıcı sınırı bulmaya çalışırken üretici modeller verinin altında yatan gizli yapıyı öğrenip verilen eğitim örnekleri ile aynı dağılımdan yeni örnekler üretmeye çalışır. Bu dağılım açık bir şekilde tanımlanabiliyor ve çözülebiliyorsa explicit density model, dağılımın nasıl olduğunu açıklayamıyor ancak içinden yeni örnek üretebiliyorsak implicit density model denir.

Ref: Google Görseller

İşin biraz daha matematiğine inersek… Ayırt edici ve üretici modeller arasındaki temel fark bu modellerin olasılık bulma yöntemleridir. Ayırt edici modeller şartlı olasılık üzerinden x verildiğinde y olma olasılığını hesaplar. Üretici modeller ise x ve y’nin birlikte gelme olasılığı ile ilgilenir. Basit bir hesaplama ile açıklayalım:

Ayırt edici modeller şartlı olasılığı hesaplar

Ayırt edici modellerin ilgilendiği problem x verildiğinde y’nin olasılığıdır. Örnekte elimizdeki verilere göre x=1 verildiğinde y’nin 0 olma olasılığı 1, y’nin 1 olma olasılığı 0’dır. x=2 verildiğinde y’nin 0 olma olasılığı da ½ , 1 olma olasılığı da ½’dir. Çünkü elimizdeki verilerde x=2 için eşit sayıda (1’er tane) y=0 ve y=1 örneği bulunmaktadır.

Üretici modeller birlikte gelme olasılıklarını hesaplar

Üretici modellerin ilgilendiği problem ise x ve y’nin birlikte gelme olasılığıdır. Örnekte elimizdeki verilere göre x=1 ve y=0 ‘ın birlikte gelme olasılığı ½ , yani tüm verilerin yarısında x=1 ve y=0 birlikte bulunuyor. x=1 ve y=1 ‘in olasılığı 0 çünkü elimizde x ve y’nin her ikisinin de 1 olduğu bir veri yok. Benzer şekilde x=2 ve y=0 ‘ın birlikte gelme olasılığı ¼ ve x=2 ve y=1’in birlikte gelme olasılığı da ¼ olarak bulunur.

Bu iki tablodan ilkinde her satırın toplamının 1 olduğu görülmektedir. Yani ayırt edici modeller bir x niteliği verildiğinde o örneğin sadece hangi sınıfa ne kadar yüzdelikle ait olduğunu bulur. İkinci tabloda ise tablodaki tüm değerlerin toplamının 1 olduğu görülmektedir. Yani üretici modeller veri kümesinin tümünde nitelik-sınıf ikililerinin birlikte gelme yüzdelerini hesaplamaktadır.

Ayırt edici modeller doğrudan hedefe odaklandığından sınıflandırma problemleri için daha pratik olduğu düşünülebilir. Sınıflandırma problemlerinde girdi (x) her zaman verildiği için modellenmesi ile uğraşmaya gerek yoktur ancak üretici modellerde x’i modellemek için p(x|y)’yi de hesaplamak gerekir. P(y|x)’i hesaplamak için hem p(x) hem de p(x|y)’yi hesaplayan üretici modellerin p(y|x)’i doğrudan hesaplayan ayırt edici modellere göre bağımsızlık derecesi (degree of freedom) daha düşüktür. Bu nedenle üretici modeller daha dirençli (robust) aşırı eğitilmeye karşı (overfitting) daha az eğilimlidir.

Ref: Google Görseller

Daha basit bir dille ağ yapısından yola çıkarak açıklayalım: Sabit sayıda nöron/katman/ağırlığa sahip bir sinir ağı için üretici modeller sadece doğru bir şekilde sınıflandırma yapmakla kalmayıp, aynı zamanda verilerin olasılığını da modellediğinden ağın ağırlıklarını daha fazla kısıtlar. Yani olası tüm ağırlıkların bulunduğu uzayda üretim görevini düzgün bir şekilde yerine getirebilecek daha az ağırlık kombinasyonu vardır — bu nedenle serbestlik derecesi daha azdır. Ayrıca ağırlıkların daha sıkı kısıtlanması genellemeye (aşırı öğrenmeden kaçınmaya) yardımcı olacaktır ve daha dirençli bir model elde etmeyi sağlayacaktır.

Ayırt edici modeller doğrudan sınıf olasılıklarını hesapladığı için bol miktarda etiketli veriye ihtiyaç duyarlar ve etiketli veri olmadığında çalışmazlar, ancak üretici modeller elimizde bulunan az miktarda etiketli verinin yanında etiketsiz veriyi de kullanarak iyi sonuçlar elde edebilir. Ayrıca ayırt edici modeller eksik veriyi(yarısı görünen bir resim..) kullanmakta da başarılı değildir.

En temel yapay öğrenme algoritmalarından biri olan Naive Bayes’in aslında üretici bir model olduğunu biliyor muydunuz? Örneğimizle görelim:

Üretici model örneği — Naive Bayes

Naive Bayes algoritması makine öğrenmesinin en temel yöntemlerinden biridir. Mantığını kısaca açıklayacak olursak: Veri kümemizin yine { (x,y) } ikilileri şeklinde verildiğini varsayalım. Naive Bayes gibi üretici modeller x ve y’nin birlikte gelme olasılığının dağılımını açık ve belirgin bir şekilde (explicit) modeller ve sonrasında Bayes kuralını kullanarak her sınıfın şartlı olasılığını hesaplar.

x=hava sıcak/ılık/soğuk şartları altında y=oyun oynamak/oynamamak? sınıfları için öncelikle elimizdeki örneklerin {(sıcak,oynama), (ılık,oyna), (sıcak,oyna), (sıcak,oynama), …} özellik-sınıf ikililerinin birlikte gelme olasılıkları hesaplanır. Ardından bu bilgiyi kullanarak verilen test örneğinin olasılık değerleri hesaplanır ve olasılığı yüksek olan sınıf seçilir.

Elimizde yukarıdaki gibi bir veri kümemizin olduğunu düşünelim. Bu veriye dayanarak hava ılıksa oyun oynama ihtimalimizi hesaplayalım:

Benzer şekilde p(hayır|ılık) da Bayes teoremi ile 2/6 bulunur ve sonuçta ‘evet’ cevabına karar verilir. Görüldüğü gibi Naive Bayes algoritması her sınıfın dağılımını çıkartıp elimizdeki örneğin hangi sınıfın dağılımına daha çok uyduğunu bularak sınıflandırma yapmaktadır. Bu da bahsettiğimiz üretici model tanımı ile uyuşmaktadır.

Üretici modellerin explicit density modeller ve implicit density modeller olarak ikiye ayrıldığından bahsetmiştik. Popüler derin öğrenme algoritmalarından Variational Autoencoder yani VAE’ler explicit density, Generative Adversarial Network yani GAN’lar ise implicit density modeller kapsamına girer. Bunların detaylı karşılaştırmalarına da sonraki bir yazımızda değineceğiz. Sağlıcakla kalın :)

Kaynaklar:

https://chrisalbon.com/machine_learning/naive_bayes/naive_bayes_classifier_from_scratch/

https://www.youtube.com/watch?v=FZBFV7xfGaY

https://papers.nips.cc/paper/2020-on-discriminative-vs-generative-classifiers-a-comparison-of-logistic-regression-and-naive-bayes.pdf

https://stackoverflow.com/questions/879432/what-is-the-difference-between-a-generative-and-a-discriminative-algorithm

https://stats.stackexchange.com/questions/399526/do-generative-models-have-less-degrees-of-freedom-than-discriminant-models

https://towardsdatascience.com/generative-deep-learning-lets-seek-how-ai-extending-not-replacing-creative-process-fded15b0561b

--

--