Üretken ve ayrımcı bir algoritma arasındaki fark nedir?


587

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 .


4
Bu belge (aşağıdaki anguyen8 tarafından da belirtilmiştir) iyi bir belgedir
GuSuku

5
Ayrıca bkz. İstatistikler ile ilgili soru. SE: Generative vs. Discriminative
Lenar Hoyt

Basit ve görsel bir cevap için buraya tıklayın stackoverflow.com/a/52412379/7160346
Ravi G

Yanıtlar:


840

Diyelim ki girdi verileriniz var xve 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ığı yverilen 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 xbir 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.


48
Kağıt için teşekkürler. Yazar şimdi Stanford'da profesördür ve stanford'da
Edu/class/cs229/materials.html

26
Andrew Ng tarafından da güzel bir açıklama burada
clyfe

39
Matrislere bakarken, ilk girişte tüm girişlerin 1.0'a kadar olduğunu, ikincisinde ise her satırın bire kadar olduğunu gözlemleyin. Bu aydınlanmayı hızlandıracak (ve karışıklığı azaltacaktır)
Maxim Khesin

5
Andrew Ng'in
anh_ng8

1
"bu yüzden bunu doğrudan modelleyen algoritmalara ayrımcı algoritmalar denir", yine de neden p(y|x)onu modelleyen algoritmalara "ayrımcı modeller" adını verdiğinden emin değilim .
nbro

291

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.


6
Bu cevap beni karıştırıyor. Her iki algoritma sınıfı, diğer verileri tahmin eden bir işlev türetmek için etiketli eğitim verilerinin bir modelini öğrenen denetimli öğrenme algoritmaları sınıfına girer. Tanımladığınız ayrımcı algoritma, bir model oluşturmuyormuş gibi geliyor, doğru mu? Bu konuda cevabınızı güçlendirirseniz çok sevinirim.
Lenar Hoyt

42
@mcb Üretken bir algoritma, verinin nasıl "üretildiğini" modeller, bu nedenle ona "bu sınıfın bu örneği yaratma olasılığı nedir?" ve daha iyi olasılıkla birini seç. Ayrımcı bir algoritma verileri bir karar sınırı oluşturmak için kullanır, bu yüzden ona "bu örnek karar sınırının hangi tarafındadır?" Bu nedenle, verilerin nasıl oluşturulduğuna dair bir model oluşturmaz, sınıflar arasındaki sınırın neye benzediğini düşündüğü bir model oluşturur.
Anthony

1
Yani Naive Bayes gibi üretken bir modelin karar sınırı yok mu?
sheetal_158

4
Yani üretken modeller yorumlanabilirlik açısından daha iyi gibi görünüyorlar mı?
Candic3

157

Görevinizin bir konuşmayı bir dile sınıflandırmak olduğunu hayal edin.

Aşağıdakilerden birini yaparak yapabilirsiniz:

  1. her bir dili öğrenmek ve daha sonra az önce edindiğiniz bilgileri kullanarak sınıflandırmak

veya

  1. dilleri öğrenmeden dilbilimsel modeller arasındaki farkın belirlenmesi ve konuşmanın sınıflandırılması.

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 .


2
Bu tam tersi değil mi? Dili öğrendiğiniz göz önüne alındığında, koşullu bir dağıtım üzerinde çalışıyorsunuz ve bu yüzden ayrımcı bir yaklaşım mı olmalı?
Londra adamı

Aşağıdaki cevapları okuduktan sonra da başka bir yol olduğunu düşünüyorum - Ghrua'nın CS299 ders notlarından örnek
Mitali Cyrus

132

Uygulamada, modeller aşağıdaki gibi kullanılır.

Gelen ayrımcılık modelleri , etiket tahmin etmek yantrenman örnekten x, değerlendirmek gerekir:

resim açıklamasını buraya girin

hangi sadece büyük olasılıkla sınıf ne olduğunu seçer ydikkate 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 resim açıklamasını buraya girin, denklemdeki ile değiştirelim resim açıklamasını buraya girin. Sadece arg max ile ilgilendiğiniz için , paydayı silebilirsiniz, bu herkes için aynı olacaktır y. Böylece,

resim açıklamasını buraya girin

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 yhesaplayabilir ("oluştur") x. Bu nedenle bunlara "üretken" modeller denir.


3
Bu nedenle, aynı dağılıma uygulandığında üretken ve ayrımcı model eşit değil midir? O halde sınıflandırma davranışında neden bir fark var? Yoksa sadece bu maksimum olabilirlik bağlamında eşit mi?
Sebastian Graf

"Eşit" olup olmadıklarını söylemek için önce bununla ne demek istediğimizi tanımlamamız gerekir. Ortak birçok şey vardır, ancak en güçlü fark kullanılan stratejidir: dağılımı (üretken) ve bir sınıfı öngörmek, dağılımdan bağımsız olarak (ayrımcı) - örnek için bir saniye KNN'yi düşünün.
Saul Berardo

90

İş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 .


33

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.



22

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 csı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


8

Kısa cevap

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ğrusu p(x|y)ve p(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 .

Http://primo.ai/index.php?title=Discriminative_vs._Jeneratif'ten Görüntü kaynağı


Yakın bakış

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:

  • Üretken: Naif Bayes, gizli Dirichlet tahsisi (LDA), Üretken Adversarial Ağlar (GAN), Varyasyonel Otomatik Enkoderler (VAE), normalleştirici akışlar.
  • Ayrımcı: Destek vektör makinesi (SVM), lojistik regresyon, en derin sinir ağları.

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.


Kaynaklar

  1. Muhtemelen "Makine Öğrenmesi - Ayrımcı ve Üretken" kaynaklı (Tony Jebara, 2004).
  2. Google'dan Makine Öğreniminde Çarpışma Kursu
  3. Jeneratör-Ayrımcı Yanlış
  4. "Üretken ve Ayrımcı Modellerin İlkeli Hibritleri" (Lasserre ve ark. 2006)
  5. @ shimao'nun sorusu
  6. Binu Jasim'in cevabı
  7. Lojistik regresyon ve naif Bayes karşılaştırması:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Sınıflandırıcınız gizlice enerji tabanlı bir modeldir" (Grathwohl ve ark., 2019)
  10. Stanford CS236 notları : Teknik olarak, olasılıklı bir ayrımcı model aynı zamanda veriler üzerinde koşullandırılmış etiketlerin üretken bir modelidir. Bununla birlikte, üretken modeller terimi tipik olarak yüksek boyutlu veriler için ayrılmıştır.

1
Bunun gerçekten daha fazla oyu olmalı. Bulduğum "yanlış ikilik" fikrine değinen tek cevap buydu. Benim soru buna benzer os: stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra

1

Ö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.


0

İ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.


0

Ü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.


Elde ettiğim şey, üretken modelin denetimli öğrenmeye dayalı olması, ayrımcı model ise denetimsiz öğrenmeye dayanıyor. Haklı mıyım?
Waseem Ahmad Naeem

@WaseemAhmadNaeem Bir çeşit, ama değil. y her zaman hedeftir ve girdi verilerinin bir parçası olarak gereklidir, bu nedenle her ikisi de denetlenir. Üretken denetimsiz gibi görünüyor çünkü ilk adım tam dağıtımı elde etmek (her çeşitte, y'yi özel olarak düşünmemek). Orada durduysanız ve y'ye özel muamele etmiyorsanız, o kısım tek başına denetimsizdir.
Mitch

@Mitch sizden ikisinin farkı hakkında bazı kağıt / not / bağlantı paylaşmanızı isteyebilir miyim? aslında bu kavram üzerinde biraz kafam karıştı. Şimdiden teşekkür ederim
Waseem Ahmad Naeem

@WaseemAhmadNaeem Cross Validated.SE'de (istatistikler / ML SE sitesi) özellikle Bayes bağlamında Generatif ve Ayrımcı veya Generatif ve ayrımcı modellerin karşılaştırılması . Temel örnekler Naive Bayes üretken, Lojistik Regresyon ayrımcıdır. Her ikisine de daha fazla örnek .
Mitch

0

Bu makale konsepti anlamamda bana çok yardımcı oldu.

Özetle,

  • Her ikisi de olasılıksal modellerdir, yani her ikisi de kesin olarak olasılık ( koşullu olasılık, de bilinmeyen veriler için sınıfları hesaplamak için ) kullanırlar.
  • Jeneratör Sınıflandırıcılar Ortak PDF ve Bayes Teoremini uygular , veri kümesine ve bunlardan alınan değerleri kullanarak koşullu olasılığı hesaplar.
  • Ayrımcı Sınıflandırıcılar, veri kümesinde Koşullu olasılıkları doğrudan bulur

Bazı iyi okuma materyalleri: koşullu olasılık , Ortak PDF

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.