Tolong, bantu saya memahami perbedaan antara algoritma generatif dan diskriminatif , mengingat bahwa saya hanya pemula.
Tolong, bantu saya memahami perbedaan antara algoritma generatif dan diskriminatif , mengingat bahwa saya hanya pemula.
Jawaban:
Katakanlah Anda memiliki data input x
dan 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 y
diberikan 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 x
ke 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.
p(y|x)
menyiratkan bahwa algoritma yang memodelkannya disebut "model diskriminatif".
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.
Bayangkan tugas Anda adalah untuk mengklasifikasikan pidato ke bahasa.
Anda dapat melakukannya dengan:
atau
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 .
Dalam praktiknya, model-model tersebut digunakan sebagai berikut.
Dalam model diskriminatif , untuk memprediksi label y
dari contoh pelatihan x
, Anda harus mengevaluasi:
yang hanya memilih kelas yang paling mungkin y
dipertimbangkan 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 dengan persamaan . Karena Anda hanya tertarik dengan arg max , Anda dapat menghapus penyebutnya, yang akan sama untuk setiap y
. Jadi, Anda yang tersisa
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".
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 .
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.
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 c
kelasnya dan d
merupakan 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
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.
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:
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.
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.
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.
Model algoritma generatif akan belajar sepenuhnya dari data pelatihan dan akan memprediksi responsnya.
Pekerjaan algoritma diskriminatif hanya untuk mengklasifikasikan atau membedakan antara 2 hasil.
Artikel ini banyak membantu saya dalam memahami konsep.
Singkatnya,
Beberapa bahan bacaan yang bagus: probabilitas bersyarat , Joint PDF