Lütfen, yeni başlayan olduğumu göz önünde bulundurarak, üretken ve ayrımcı bir algoritma arasındaki farkı anlamama yardımcı olun .
Lütfen, yeni başlayan olduğumu göz önünde bulundurarak, üretken ve ayrımcı bir algoritma arasındaki farkı anlamama yardımcı olun .
Yanıtlar:
Diyelim ki girdi verileriniz var x
ve verileri etiketler halinde sınıflandırmak istiyorsunuz y
. Bir üretken modeli öğrenir ortak olasılık dağılımını p(x,y)
ve ayrımcılık modeli öğrenir koşullu olasılık dağılımını p(y|x)
- Sen olarak okumalısınız hangi "olasılığı y
verilen x
" .
İşte gerçekten basit bir örnek. Formda aşağıdaki verilerin bulunduğunu varsayalım (x,y)
:
(1,0), (1,0), (2,0), (2, 1)
p(x,y)
dır-dir
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
p(y|x)
dır-dir
y=0 y=1
-----------
x=1 | 1 0
x=2 | 1/2 1/2
Bu iki matrise bakmak için birkaç dakikanızı ayırırsanız, iki olasılık dağılımı arasındaki farkı anlayacaksınız.
Dağıtım p(y|x)
, belirli bir örneği x
bir sınıfa sınıflandırmak için doğal dağıtımdır y
, bu yüzden bunu doğrudan modelleyen algoritmalara ayrımcı algoritmalar denir. Bayes kuralı uygulanarak p(x,y)
dönüştürülebilen p(y|x)
ve daha sonra sınıflandırma için kullanılabilen üretken algoritmalar modeli . Bununla birlikte, dağıtım p(x,y)
başka amaçlar için de kullanılabilir. Örneğin, kullanabilirsiniz p(x,y)
etmek üretmek muhtemel (x,y)
çiftleri.
Yukarıdaki açıklamadan, üretken modellerin daha genel olarak yararlı ve bu nedenle daha iyi olduğunu düşünüyor olabilirsiniz, ancak bu kadar basit değil. Bu makale , ayrımcı ve üretken sınıflandırıcılar konusunda çok popüler bir referanstır, ancak oldukça ağırdır. Genel öz, ayrımcı modellerin genellikle sınıflandırma görevlerindeki üretken modellerden daha iyi performans göstermesidir.
p(y|x)
onu modelleyen algoritmalara "ayrımcı modeller" adını verdiğinden emin değilim .
Bir üretici algoritma modeller, veri sinyal kategorize etmek amacıyla nasıl oluşturulduğuna. Şu soruyu sorar: benim nesil varsayımlarıma dayanarak, hangi kategorinin bu sinyali üretme olasılığı daha yüksektir?
Bir ayrımcılık algoritma veri oluşturulduğu nasıl umursamıyor, sadece belirli bir sinyal sınıflandırır.
Görevinizin bir konuşmayı bir dile sınıflandırmak olduğunu hayal edin.
Aşağıdakilerden birini yaparak yapabilirsiniz:
veya
Birincisi üretken yaklaşım ve ikincisi ayrımcı yaklaşımdır.
Daha fazla ayrıntı için bu referansı kontrol edin: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .
Uygulamada, modeller aşağıdaki gibi kullanılır.
Gelen ayrımcılık modelleri , etiket tahmin etmek y
antrenman örnekten x
, değerlendirmek gerekir:
hangi sadece büyük olasılıkla sınıf ne olduğunu seçer y
dikkate x
. Sanki sınıflar arasındaki karar sınırını modellemeye çalışıyorduk . Bu davranış, hesaplanan ağırlıkların uzayda bir sınıfın elemanlarını izole eden karmaşık şekilli bir eğri olarak görülebildiği sinir ağlarında çok açıktır.
Şimdi, Bayes kuralını kullanarak , denklemdeki ile değiştirelim . Sadece arg max ile ilgilendiğiniz için , paydayı silebilirsiniz, bu herkes için aynı olacaktır y
. Böylece,
bu da üretken modellerde kullandığınız denklemdir .
İlk durumda iken koşullu olasılık dağılımını p(y|x)
sınıflar arasındaki sınırı modellenmiş, ikinci yaşadığınız ortak olasılık dağılımını p(x, y)
beri p(x | y) p(y) = p(x, y)
, hangi açıkça modelleri her sınıfın gerçek dağılımını .
Birleşme olasılığı dağılım fonksiyonu ile, a verildiğinde, karşılık gelenini y
hesaplayabilir ("oluştur") x
. Bu nedenle bunlara "üretken" modeller denir.
İşte en önemli kısım ders notları konu ile ilgili (Andrew Ng) CS299 ait gerçekten beni arasındaki farkı anlamamıza yardımcı olur ayrımcı ve üretken öğrenme algoritmaları.
Fil ( y = 1
) ve köpek ( y = 0
) olmak üzere iki sınıf hayvanımız olduğunu varsayalım . Ve x , hayvanların özellik vektörüdür.
Bir eğitim seti göz önüne alındığında, lojistik regresyon veya algılayıcı algoritma (temelde) gibi bir algoritma, filler ve köpekleri ayıran düz bir çizgi, yani bir karar sınırı bulmaya çalışır. Daha sonra, yeni bir hayvanı bir fil veya köpek olarak sınıflandırmak için, karar sınırının hangi tarafında düştüğünü kontrol eder ve tahminini buna göre yapar. Bu ayrımcı öğrenme algoritması diyoruz .
İşte farklı bir yaklaşım. İlk olarak, fillere bakarak, fillerin neye benzediğine dair bir model oluşturabiliriz. Sonra, köpeklere bakarak, köpeklerin nasıl göründüğünden ayrı bir model oluşturabiliriz. Son olarak, yeni bir hayvanı sınıflandırmak için yeni hayvanı fil modeliyle eşleştirebilir ve köpek modeliyle eşleştirebiliriz. . Bu üretken öğrenme algoritması diyoruz .
Genel olarak, makine öğrenimi topluluğunda istemediğiniz bir şeyi öğrenmemeye yönelik bir uygulama vardır. Örneğin, hedefinin belirli bir x girişine y etiketi atamak olduğu bir sınıflandırma problemini düşünün. Üretken model kullanırsak
p(x,y)=p(y|x).p(x)
eldeki görevle alakasız olan p (x) modelini modellemeliyiz. Veri seyrekliği gibi pratik sınırlamalar bizi p(x)
bazı zayıf bağımsızlık varsayımlarıyla modellenmeye zorlayacaktır . Bu nedenle, sınıflandırma için sezgisel olarak ayrımcı modeller kullanıyoruz.
Yukarıdaki StompChicken'ın yanıtı ile uyumlu bir bilgilendirme noktası.
Temel farklılık arasında ayırt edici bir model ve üretimsel model olduğu:
Ayrımcı modeller sınıflar arasındaki (sert veya yumuşak) sınırı öğrenir
Üretken modeller bireysel sınıfların dağılımını modellemektedir
Düzenle:
Üretken model, veri üretebilen modeldir . Hem özellikleri hem de sınıfı (yani tüm verileri) modeller.
Modellersek P(x,y)
: Bu olasılık dağılımını veri noktaları oluşturmak için kullanabilirim - ve dolayısıyla tüm algoritmalar modellemesi P(x,y)
üretkendir.
Örneğin. üretken modellerin
Naif Bayes modelleri P(c)
ve P(d|c)
- nerede c
sınıf ve d
özellik vektörü.
Ayrıca, P(c,d) = P(c) * P(d|c)
Bu nedenle, bazı form modellerinde Naive Bayes, P(c,d)
Bayes Net
Markov Ağları
Ayrımcı bir model, yalnızca veri noktalarını ayırt etmek / sınıflandırmak için kullanılabilen modeldir . Sadece P(y|x)
bu gibi durumlarda modelleme yapmanız gerekir (yani özellik vektörü verilen sınıf olasılığı).
Örneğin. ayrımcı modeller:
lojistik regresyon
Nöral ağlar
Koşullu rastgele alanlar
Genel olarak, üretken modellerin ayrımcı modellerden çok daha fazla modellemesi gerekir ve bu nedenle bazen o kadar etkili değildir. Nitekim, kümeleme vb. Gibi denetimsiz öğrenme algoritmalarının çoğu (hepsinden emin değilim) üretken olarak adlandırılabilir, çünkü bunlar modellenmiştir P(d)
(ve sınıf yoktur: P)
Not: Cevabın bir kısmı kaynaktan alınır
Buradaki cevapların çoğu yaygın olarak kullanılan matematiksel tanıma dayanmaktadır [1]:
- Ayrımcı modeller şartlı tahmine dayalı dağıtımı doğrudan öğrenir
p(y|x)
.- Generatif modeller eklem dağılımını
p(x,y)
(veya daha doğrusup(x|y)
vep(y)
) öğrenir .
- Öngörülü dağılım
p(y|x)
Bayes kuralı ile elde edilebilir.
Çok kullanışlı olmasına rağmen, bu dar tanım denetimli ayarı varsayar ve denetimsiz veya yarı denetimli yöntemleri incelerken daha az kullanışlıdır. Derin üretken modelleme için birçok çağdaş yaklaşım için de geçerli değildir . Örneğin, şimdi, örnekleme tabanlı olan ve olasılık yoğunluğunu açıkça modellemeyen örtülü üretken modellerimiz var, örneğin, Generatif Düşman Ağları (GAN p(x)
). Ama biz onlara "üretken modeller" diyoruz, çünkü bunlar (yüksek boyutlu [10]) örnekler üretmek için kullanılıyor.
Daha geniş ve daha temel bir tanım [2] bu genel soru için aynı derecede uygun görünmektedir:
- Ayrımcı modeller sınıflar arasındaki sınırı öğrenir.
- Böylece onlar yapabilir farklı veri örnekleri arasında ayrım yapabilirler.
- Üretken modeller verilerin dağılımını öğrenir.
- Böylece yeni veri örnekleri oluşturabilirler .
Yine de, bu soru bir şekilde yanlış bir ikilik anlamına gelmektedir [3]. Üretken ayrımcı "ikilik" aslında bir spektrumdur , hatta arasında düzgün bir şekilde enterpolasyon yapabilirsiniz [4].
Sonuç olarak, bu ayrım, özellikle birçok popüler model düzgün bir şekilde bir diğerine düşmediğinde veya gerçekte melez modellerde (klasik "ayrımcı" ve "üretken" modellerin kombinasyonları) keyfi ve kafa karıştırıcı hale gelir. .
Bununla birlikte, hala yapılması son derece yararlı ve ortak bir ayrımdır. Kanonik ve yakın zamandaki üretken ve ayrımcı modellerin bazı net örneklerini listeleyebiliriz:
Ayrıca, üretken-ayrımcı bölünmeyi [7] ve spektrumu [4,8] derinlemesine inceleyen ve hatta ayrımcı modelleri üretken modellere [9] dönüştüren çok ilginç çalışmalar da vardır.
Sonunda, özellikle bu hızla büyüyen alanda tanımlar sürekli gelişiyor :) Onları bir tutam tuzla almak ve hatta belki kendiniz ve diğerleri için yeniden tanımlamak en iyisidir.
Önceki tüm cevaplar harika ve bir puan daha eklemek istiyorum.
Üretken algoritma modellerinden herhangi bir dağıtım türetebiliriz; koşullu dağılımı P (Y | X) sadece ayrımcı algoritma modellerinden elde edebiliriz (ya da sadece Y etiketini ayırt etmek için yararlı olduklarını söyleyebiliriz) ve bu yüzden buna ayrımcı model denir. Ayrımcı model, Y ($ X_i \ perp X _ {- i} | Y $) göz önüne alındığında X'lerin bağımsız olduğunu varsaymaz ve bu nedenle bu koşullu dağılımı hesaplamak için genellikle daha güçlüdür.
İki sentim: Ayrımcı yaklaşımlar farklılıkları vurgular Üretken yaklaşımlar farklılıklara odaklanmaz; sınıfı temsil eden bir model oluşturmaya çalışırlar. İkisi arasında bir çakışma var. İdeal olarak her iki yaklaşım da kullanılmalıdır: biri benzerliklerin bulunması, diğeri de benzerliklerin bulunmaması için faydalı olacaktır.
Üretken bir algoritma modeli, eğitim verilerinden tamamen öğrenecek ve yanıtı öngörecektir.
Ayrımcı bir algoritma işi sadece 2 sonucu sınıflandırmak veya ayırt etmektir.
Bu makale konsepti anlamamda bana çok yardımcı oldu.
Özetle,
Bazı iyi okuma materyalleri: koşullu olasılık , Ortak PDF