Apa perbedaan antara algoritma generatif dan diskriminatif?

587

Tolong, bantu saya memahami perbedaan antara algoritma generatif dan diskriminatif , mengingat bahwa saya hanya pemula.

unj2
sumber
4
Dokumen ini (juga ditunjukkan oleh anguyen8 di bawah) adalah dokumen yang bagus: cs229.stanford.edu/notes/cs229-notes2.pdf
GuSuku
5
Lihat juga pertanyaan yang sama pada stats.SE: Generatif vs Diskriminatif
Lenar Hoyt
Untuk jawaban sederhana dan visual, klik di sini stackoverflow.com/a/52412379/7160346
Ravi G

Jawaban:

840

Katakanlah Anda memiliki data input xdan Anda ingin mengklasifikasikan data menjadi label y. Model generatif mempelajari distribusi probabilitas gabunganp(x,y) dan model diskriminatif mempelajari distribusi probabilitas bersyaratp(y|x) - yang harus Anda baca sebagai "probabilitas ydiberikan x" .

Ini contoh yang sangat sederhana. Misalkan Anda memiliki data berikut dalam formulir (x,y):

(1,0), (1,0), (2,0), (2, 1)

p(x,y) adalah

      y=0   y=1
     -----------
x=1 | 1/2   0
x=2 | 1/4   1/4

p(y|x) adalah

      y=0   y=1
     -----------
x=1 | 1     0
x=2 | 1/2   1/2

Jika Anda membutuhkan waktu beberapa menit untuk menatap kedua matriks tersebut, Anda akan memahami perbedaan antara kedua distribusi probabilitas.

Distribusi p(y|x)adalah distribusi alami untuk mengklasifikasikan contoh yang diberikan xke dalam kelas y, itulah sebabnya mengapa algoritma yang memodelkan ini secara langsung disebut algoritma diskriminatif. Model algoritma generatif p(x,y), yang dapat diubah menjadi p(y|x)dengan menerapkan aturan Bayes dan kemudian digunakan untuk klasifikasi. Namun, distribusinya p(x,y)juga dapat digunakan untuk keperluan lain. Misalnya, Anda bisa menggunakan p(x,y)untuk menghasilkan(x,y) pasangan yang mungkin .

Dari uraian di atas, Anda mungkin berpikir bahwa model generatif lebih bermanfaat dan karenanya lebih baik, tetapi tidak sesederhana itu. Makalah ini adalah referensi yang sangat populer pada subjek pengklasifikasi diskriminatif vs generatif, tetapi cukup berat. Inti keseluruhannya adalah bahwa model diskriminatif umumnya mengungguli model generatif dalam tugas klasifikasi.

Stompchicken
sumber
48
Terima kasih untuk kertasnya. Penulis sekarang adalah profesor di Stanford dan memiliki sumber daya yang luar biasa di stanford.edu/class/cs229/materials.html
unj2
26
Penjelasan yang bagus juga oleh Andrew Ng di sini
clyfe
39
Ketika menatap matriks, perhatikan bahwa di yang pertama, semua entri berjumlah hingga 1.0, sedangkan di yang kedua setiap baris berjumlah satu. Ini akan mempercepat pencerahan (dan mengurangi kebingungan)
Maxim Khesin
5
Catatan oleh Andrew Ng di sini juga sangat berguna: cs229.stanford.edu/notes/cs229-notes2.pdf
anh_ng8
1
"itulah sebabnya mengapa algoritma yang memodelkan ini secara langsung disebut algoritma diskriminatif", masih belum yakin mengapa p(y|x)menyiratkan bahwa algoritma yang memodelkannya disebut "model diskriminatif".
Berlangsung
291

Sebuah algoritma generatif model bagaimana data itu dihasilkan dalam rangka untuk mengkategorikan sinyal. Ia mengajukan pertanyaan: berdasarkan asumsi generasi saya, kategori mana yang paling mungkin menghasilkan sinyal ini?

Sebuah algoritma diskriminatif tidak peduli bagaimana data yang dihasilkan, itu hanya mengkategorikan sinyal yang diberikan.

Carlos Rendon
sumber
6
Jawaban ini membingungkan saya. Kedua kelas algoritme termasuk dalam kelas algoritma pembelajaran terawasi, yang mempelajari model data pelatihan berlabel untuk memperoleh fungsi yang memprediksi data lain. Algoritma diskrimitif ketika Anda menggambarkannya terdengar seolah-olah itu tidak membuat model, apakah itu benar? Saya akan senang jika Anda dapat meningkatkan jawaban Anda dalam hal itu.
Lenar Hoyt
42
@ mcb Suatu algoritma generatif memodelkan bagaimana data "dihasilkan", jadi Anda bertanya "apa kemungkinan kelas ini atau itu menghasilkan instance ini?" dan pilih satu dengan probabilitas yang lebih baik. Algoritma diskriminatif menggunakan data untuk membuat batas keputusan, jadi Anda bertanya "di sisi mana batas keputusan ini berada?" Jadi itu tidak membuat model bagaimana data dihasilkan, itu membuat model apa yang menurutnya seperti batas antara kelas.
Anthony
1
Jadi model generatif seperti Naif Bayes, tidak memiliki batas keputusan?
sheetal_158
4
Jadi model generatif sepertinya lebih baik untuk ditafsirkan?
Candic3
157

Bayangkan tugas Anda adalah untuk mengklasifikasikan pidato ke bahasa.

Anda dapat melakukannya dengan:

  1. mempelajari setiap bahasa, dan kemudian mengklasifikasikannya menggunakan pengetahuan yang baru saja Anda peroleh

atau

  1. menentukan perbedaan dalam model linguistik tanpa mempelajari bahasa, dan kemudian mengklasifikasikan pidato.

Yang pertama adalah pendekatan generatif dan yang kedua adalah pendekatan diskriminatif .

Lihat referensi ini untuk lebih jelasnya: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf .

madCode
sumber
2
Bukankah sebaliknya? Mempertimbangkan bahwa Anda mempelajari bahasa tersebut, Anda beroperasi dengan distribusi bersyarat dan karenanya harus merupakan pendekatan yang diskriminatif?
Pria London
Saya pikir itu sebaliknya juga setelah membaca jawaban di bawah ini - Contoh dari catatan kuliah CS299 oleh Ghrua
Mitali Cyrus
132

Dalam praktiknya, model-model tersebut digunakan sebagai berikut.

Dalam model diskriminatif , untuk memprediksi label ydari contoh pelatihan x, Anda harus mengevaluasi:

masukkan deskripsi gambar di sini

yang hanya memilih kelas yang paling mungkin ydipertimbangkan x. Sepertinya kami mencoba memodelkan batas keputusan antar kelas . Perilaku ini sangat jelas dalam jaringan saraf, di mana bobot yang dikomputasi dapat dilihat sebagai kurva yang rumit yang mengisolasi elemen-elemen kelas dalam ruang.

Sekarang, menggunakan aturan Bayes, mari kita ganti masukkan deskripsi gambar di sinidengan persamaan masukkan deskripsi gambar di sini. Karena Anda hanya tertarik dengan arg max , Anda dapat menghapus penyebutnya, yang akan sama untuk setiap y. Jadi, Anda yang tersisa

masukkan deskripsi gambar di sini

yang merupakan persamaan yang Anda gunakan dalam model generatif .

Sementara dalam kasus pertama Anda memiliki distribusi probabilitas bersyarat p(y|x) , yang memodelkan batas antara kelas, di kedua Anda memiliki distribusi probabilitas gabungan p(x, y) , karena p(x | y) p(y) = p(x, y), yang secara eksplisit memodelkan distribusi aktual dari setiap kelas .

Dengan fungsi distribusi probabilitas gabungan, diberikan a y, Anda dapat menghitung ("menghasilkan") masing-masing x. Untuk alasan ini, mereka disebut model "generatif".

Saul Berardo
sumber
3
Dengan alasan ini, bukankah model generatif dan diskriminatif sama ketika diterapkan pada distribusi yang sama? Mengapa ada perbedaan perilaku klasifikasi? Atau apakah mereka sama dalam konteks kemungkinan maksimum ini?
Sebastian Graf
Untuk mengetahui apakah mereka "setara" atau tidak, pertama-tama kita perlu mendefinisikan apa yang kita maksudkan dengan itu. Ada banyak hal yang sama, tetapi perbedaan terkuat adalah strategi yang digunakan: model distribusi (generatif) vs prediksi kelas, terlepas dari distribusi (diskriminatif) - pikirkan KNN sejenak untuk contoh.
Saul Berardo
90

Inilah bagian paling penting dari catatan kuliah CS299 (oleh Andrew Ng) yang berkaitan dengan topik, yang benar-benar membantu saya memahami perbedaan antara diskriminatif dan generatif algoritma pembelajaran .

Misalkan kita memiliki dua kelas hewan, gajah ( y = 1) dan anjing ( y = 0). Dan x adalah vektor fitur hewan.

Diberikan set pelatihan, suatu algoritma seperti regresi logistik atau algoritma perceptron (pada dasarnya) mencoba untuk menemukan garis lurus - yaitu, batas keputusan - yang memisahkan gajah dan anjing. Kemudian, untuk mengklasifikasikan hewan baru sebagai gajah atau anjing, ia memeriksa sisi batas keputusan mana yang dijatuhkan, dan membuat prediksinya sesuai. Kami menyebutnya algoritma pembelajaran diskriminatif ini .

Ini pendekatan yang berbeda. Pertama, melihat gajah, kita bisa membuat model seperti apa gajah itu. Kemudian, melihat anjing, kita dapat membuat model terpisah tentang seperti apa anjing itu. Akhirnya, untuk mengklasifikasikan hewan baru, kita dapat mencocokkan hewan baru dengan model gajah, dan mencocokkannya dengan model anjing, untuk melihat apakah hewan baru itu lebih mirip gajah atau lebih seperti anjing yang kita lihat di set pelatihan . Kami menyebutnya algoritma pembelajaran generatif ini .

Ghrua
sumber
33

Secara umum, ada praktik dalam komunitas pembelajaran mesin untuk tidak mempelajari sesuatu yang tidak Anda inginkan. Misalnya, pertimbangkan masalah klasifikasi di mana tujuan seseorang adalah menetapkan label y untuk input x yang diberikan. Jika kita menggunakan model generatif

p(x,y)=p(y|x).p(x)

kita harus memodelkan p (x) yang tidak relevan dengan tugas yang ada. Keterbatasan praktis seperti kelangkaan data akan memaksa kita untuk membuat model p(x)dengan beberapa asumsi independensi yang lemah. Oleh karena itu, kami secara intuitif menggunakan model diskriminatif untuk klasifikasi.

Sriwantha Attanayake
sumber
30

Model yang berbeda diringkas dalam tabel di bawah ini: masukkan deskripsi gambar di sini

Ravi G
sumber
2
Bisakah Anda menambahkan sumber ke gambar ini? Saya pikir itu salah satu jawaban yang lebih baik di sini
Alex L
4
Gambar diambil dari sini: stanford.edu/~shervine/teaching/cs-229/…
Ali Abbas Jaffri
22

Poin informatif tambahan yang cocok dengan jawaban StompChicken di atas.

Perbedaan mendasar antara model diskriminatif dan model generatif adalah:

Model-model diskriminatif mempelajari batas (keras atau lunak) antar kelas

Model generatif memodelkan distribusi kelas individu

Edit:

Model Generatif adalah model yang dapat menghasilkan data . Ini memodelkan fitur dan kelas (yaitu data lengkap).

Jika kita memodelkan P(x,y): Saya dapat menggunakan distribusi probabilitas ini untuk menghasilkan titik data - dan karenanya semua pemodelan algoritma P(x,y)bersifat generatif.

Misalnya. model generatif

  • Model Naif Bayes P(c)danP(d|c) - di mana ckelasnya dan dmerupakan vektor fitur.

    Juga, P(c,d) = P(c) * P(d|c)

    Oleh karena itu, Naif Bayes dalam beberapa model bentuk, P(c,d)

  • Bayes Net

  • Markov Nets

Model diskriminatif adalah model yang hanya dapat digunakan untuk membedakan / mengklasifikasikan poin data . Anda hanya perlu memodelkan P(y|x)dalam kasus tersebut, (yaitu probabilitas kelas diberi vektor fitur).

Misalnya. model diskriminatif:

  • regresi logistik

  • Jaringan Saraf Tiruan

  • Bidang acak bersyarat

Secara umum, model generatif perlu lebih banyak memodelkan daripada model diskriminatif dan karenanya terkadang tidak seefektif itu. Sebenarnya, sebagian besar (tidak yakin jika semua) algoritma pembelajaran tanpa pengawasan seperti clustering dll dapat disebut generatif, karena mereka memodelkanP(d) (dan tidak ada kelas: P)

PS: Sebagian jawabannya diambil dari sumber

Prakhar Agrawal
sumber
8

Jawaban singkatnya

Banyak jawaban di sini bergantung pada definisi matematika yang banyak digunakan [1]:

  • Model diskriminatif secara langsung mempelajari distribusi prediktif bersyarat p(y|x).
  • Model generatif mempelajari distribusi bersama p(x,y)(atau lebih tepatnya, p(x|y)danp(y) ).
    • Distribusi prediktif p(y|x)dapat diperoleh dengan aturan Bayes.

Meskipun sangat berguna, definisi sempit ini mengasumsikan pengaturan yang diawasi, dan kurang berguna ketika memeriksa metode yang tidak diawasi atau semi-diawasi. Ini juga tidak berlaku untuk banyak pendekatan kontemporer untuk pemodelan generatif mendalam . Sebagai contoh, sekarang kami memiliki model generatif implisit, misalnya Generative Adversarial Networks (GANs), yang berbasis pengambilan sampel dan bahkan tidak secara eksplisit memodelkan kepadatan probabilitas p(x)(alih-alih mempelajari ukuran divergensi melalui jaringan diskriminator). Tetapi kami menyebutnya "model generatif" karena digunakan untuk menghasilkan sampel (dimensi tinggi).

Definisi yang lebih luas dan lebih mendasar [2] sepertinya cocok untuk pertanyaan umum ini:

  • Model diskriminatif mempelajari batas antar kelas.
    • Sehingga mereka dapat membedakan berbagai jenis instance data.
  • Model generatif mempelajari distribusi data.
    • Sehingga mereka dapat menghasilkan instance data baru.

Dari http://primo.ai/index.php?title=Discriminative_vs._Generative Sumber gambar


Pandangan yang lebih dekat

Meski begitu, pertanyaan ini sedikit menyiratkan dikotomi yang salah [3]. "Dikotomi" generatif-diskriminatif sebenarnya adalah sebuah spektrum yang bahkan dapat Anda sisipkan dengan lancar di antara [4].

Akibatnya, perbedaan ini menjadi sewenang-wenang dan membingungkan, terutama ketika banyak model populer tidak jatuh ke satu atau yang lain [5,6], atau pada kenyataannya model hybrid (kombinasi model klasik "diskriminatif" dan "generatif") .

Namun demikian itu masih merupakan perbedaan yang sangat berguna dan umum untuk dibuat. Kita dapat membuat daftar beberapa contoh model generatif dan diskriminatif yang jelas, baik kanonik maupun terkini:

  • Generatif: Naif Bayes, Alokasi Dirichlet laten (LDA), Generative Adversarial Networks (GAN), Variational Autoencoder (VAE), arus normalisasi.
  • Diskriminatif: Dukungan mesin vektor (SVM), regresi logistik, jaringan saraf paling dalam.

Ada juga banyak pekerjaan menarik yang meneliti secara mendalam kesenjangan generatif-diskriminatif [7] dan spektrum [4,8], dan bahkan mengubah model diskriminatif menjadi model generatif [9].

Pada akhirnya, definisi terus berkembang, terutama di bidang yang berkembang pesat ini. Yang terbaik adalah mengambilnya dengan sedikit garam, dan mungkin bahkan mendefinisikannya kembali untuk diri sendiri dan orang lain.


Sumber

  1. Mungkin berasal dari "Pembelajaran Mesin - Diskriminatif dan Generatif" (Tony Jebara, 2004).
  2. Kursus Crash dalam Pembelajaran Mesin oleh Google
  3. Kekeliruan Generatif-Diskriminatif
  4. "Hibrida Utama Model Generatif dan Diskriminatif" (Lasserre et al., 2006)
  5. @ pertanyaan shimao
  6. Jawaban Binu Jasim
  7. Membandingkan regresi logistik dan Bayes naif:
  8. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/04/DengJaitly2015-ch1-2.pdf
  9. "Klasifikasi Anda diam-diam adalah model berbasis energi" (Grathwohl et al., 2019)
  10. Stanford CS236 mencatat : Secara teknis, model diskriminatif probabilistik juga merupakan model generatif dari label yang dikondisikan pada data. Namun, model generatif istilah biasanya dicadangkan untuk data dimensi tinggi.
Christabella Irwanto
sumber
1
Ini seharusnya memiliki lebih banyak upvotes. Anda adalah satu-satunya jawaban yang menyentuh ide "dikotomi palsu" yang saya temukan. Pertanyaan saya mirip dengan yang ini: stats.stackexchange.com/questions/408421/…
Antonio Luis Sombra
1

Semua jawaban sebelumnya sangat bagus, dan saya ingin memasukkan satu poin lagi.

Dari model algoritma generatif, kita dapat memperoleh distribusi apa pun; sementara kita hanya dapat memperoleh distribusi bersyarat P (Y | X) dari model algoritma diskriminatif (atau kita dapat mengatakan mereka hanya berguna untuk membedakan label Y), dan itulah mengapa itu disebut model diskriminatif. Model diskriminatif tidak berasumsi bahwa X adalah independen mengingat Y ($ X_i \ perp X _ {- i} | Y $) dan karenanya biasanya lebih kuat untuk menghitung distribusi bersyarat itu.

Lerner Zhang
sumber
0

Dua sen saya: Pendekatan diskriminatif menyoroti perbedaan. Pendekatan generatif tidak berfokus pada perbedaan; mereka mencoba membangun model yang mewakili kelas. Ada tumpang tindih antara keduanya. Idealnya kedua pendekatan harus digunakan: yang satu akan berguna untuk menemukan kesamaan dan yang lainnya akan berguna untuk menemukan kesamaan.

Arun
sumber
0

Model algoritma generatif akan belajar sepenuhnya dari data pelatihan dan akan memprediksi responsnya.

Pekerjaan algoritma diskriminatif hanya untuk mengklasifikasikan atau membedakan antara 2 hasil.

Nages
sumber
Apa yang saya dapatkan adalah model generatif adalah pembelajaran yang diawasi, sedangkan model yang membedakan didasarkan pada pembelajaran yang tidak diawasi. Apakah saya benar?
Waseem Ahmad Naeem
@WaseemAhmadNaeem Jenis, tapi agak tidak. y selalu menjadi target, dan dibutuhkan sebagai bagian dari input data, sehingga keduanya diawasi. Generatif tampaknya tidak diawasi karena langkah pertama adalah mendapatkan distribusi lengkap (di semua vars, tidak menganggap y sebagai spesial). Jika Anda berhenti di sana dan tidak memperlakukan Anda sebagai istimewa maka bagian itu dengan sendirinya tidak diawasi.
Mitch
@Mitch, bisakah saya meminta Anda untuk membagikan beberapa kertas / catatan / tautan tentang perbedaan keduanya? sebenarnya saya agak bingung dengan konsep ini. Terima kasih sebelumnya
Waseem Ahmad Naeem
@WaseemAhmadNaeem Cari di Cross Validated.SE (situs statistik / ML SE) khususnya Generatif vs Diskriminatif atau Generatif vs model diskriminatif dalam konteks Bayesian . Contoh-contoh dasar Naif Bayes bersifat generatif, Regresi Logistik bersifat diskriminatif. Lebih banyak contoh dari keduanya .
Mitch
0

Artikel ini banyak membantu saya dalam memahami konsep.

Singkatnya,

  • Keduanya adalah model probabilistik, yang berarti mereka berdua menggunakan probabilitas ( probabilitas kondisional, tepatnya ) untuk menghitung kelas untuk data yang tidak diketahui.
  • The Classative Classifiers menerapkan Joint PDF & Bayes Theorem pada kumpulan data dan menghitung probabilitas bersyarat menggunakan nilai-nilai dari mereka.
  • Classifier Diskriminatif secara langsung menemukan kemungkinan bersyarat pada set data

Beberapa bahan bacaan yang bagus: probabilitas bersyarat , Joint PDF

ansh sachdeva
sumber