Generatif vs diskriminatif


154

Saya tahu bahwa generatif berarti "berdasarkan " dan diskriminatif berarti "berdasarkan ," tetapi saya bingung pada beberapa poin:P(x,y)P(y|x)

  • Wikipedia (+ banyak hit lainnya di web) mengklasifikasikan hal-hal seperti SVM dan pohon keputusan sebagai diskriminatif. Tetapi ini bahkan tidak memiliki interpretasi probabilistik. Apa arti diskriminasi di sini? Apakah diskriminatif baru saja berarti sesuatu yang tidak generatif?

  • Naive Bayes (NB) generatif karena menangkap dan , dan dengan demikian Anda memiliki (dan juga ). Bukankah sepele untuk membuat, katakanlah, regresi logistik (anak laki-laki model diskriminatif) "generatif" dengan hanya menghitung dengan cara yang sama (asumsi independensi yang sama dengan NB, sehingga , di mana MLE untuk hanya frekuensi)?P(x|y)P(y)P(x,y)P(y|x)P(x)P(x)=P(x0)P(x1)...P(xd)P(xi)

  • Saya tahu bahwa model diskriminatif cenderung mengungguli model generatif. Apa kegunaan praktis bekerja dengan model generatif? Dapat menghasilkan / mensimulasikan data dikutip, tetapi kapan ini muncul? Saya pribadi hanya punya pengalaman dengan regresi, klasifikasi, collab. memfilter data terstruktur, jadi apakah kegunaannya tidak relevan bagi saya di sini? Argumen "data hilang" ( karena tidak ada ) tampaknya hanya memberi Anda keunggulan dengan data pelatihan (ketika Anda benar-benar tahu dan tidak perlu dipinggirkan daripada untuk mendapatkan yang relatif bodoh yang bisa Anda perkirakan secara langsung pula), dan bahkan imputasi jauh lebih fleksibel (dapat diprediksi berdasarkan tidak hanya padax i y P ( y ) P ( x i ) yP(xi|y)xiyP(y)P(xi)ytapi lain juga).xi

  • Ada apa dengan kutipan yang sepenuhnya bertentangan dari Wikipedia? "model generatif biasanya lebih fleksibel daripada model diskriminatif dalam mengekspresikan dependensi dalam tugas pembelajaran yang kompleks" vs. "model diskriminatif umumnya dapat mengekspresikan hubungan yang lebih kompleks antara variabel yang diamati dan target"

Pertanyaan terkait yang membuat saya berpikir tentang ini.


5
(+1) Saya pikir terminologi ini membingungkan, dan saya menganggap model sebagai generatif untuk distribusi bersyarat berbeda dengan SVM, katakanlah, bahwa hanya model aspek distribusi kondisional ini untuk murni diskriminatif tujuan. Seperti yang ditunjukkan oleh poin kedua Anda, model dapat ditambah menjadi model yang sepenuhnya generatif. Perbedaan ini relevan dari sudut pandang pembelajaran karena kita dapat memodelkan dan menghitung atau kita dapat memodelkan . P ( y | x ) P ( x , y ) P ( y | x ) P ( y | x )P(y|x)P(y|x)P(x,y)P(y|x)P(y|x)
NRH

2
Saya tidak berpikir bahwa pernyataan Anda tentang SVM benar: "Tetapi ini bahkan tidak memiliki interpretasi probabilistik." Apa pun dengan fungsi kerugian dapat dengan jelas ditafsirkan dalam arti probabilistik dengan menemukan konfigurasi MAP dari PDF yang sesuai.
gmatt

Jawaban:


135

Perbedaan mendasar antara model diskriminatif dan model generatif adalah:

  • Model diskriminatif belajar (keras atau lembut) batas antara kelas
  • Model generatif memodelkan distribusi kelas individu

Untuk menjawab pertanyaan langsung Anda:

  • SVM dan pohon keputusan bersifat diskriminatif karena mereka mempelajari batas-batas eksplisit antar kelas. SVM adalah classifier margin maksimal, yang berarti ia mempelajari batas keputusan yang memaksimalkan jarak antara sampel dari dua kelas, diberikan kernel. Jarak antara sampel dan batas keputusan yang dipelajari dapat digunakan untuk membuat SVM sebagai "soft" classifier. DT mempelajari batas keputusan dengan membagi ruang secara rekursif dengan cara yang memaksimalkan perolehan informasi (atau kriteria lain).

  • Dimungkinkan untuk membuat bentuk generatif dari regresi logistik dengan cara ini. Perhatikan bahwa Anda tidak menggunakan model generatif penuh untuk membuat keputusan klasifikasi.

  • Ada sejumlah keunggulan yang dapat ditawarkan model generatif, tergantung pada aplikasinya. Katakanlah Anda berurusan dengan distribusi non-stasioner, di mana data tes online dapat dihasilkan oleh distribusi dasar yang berbeda dari data pelatihan. Biasanya lebih mudah untuk mendeteksi perubahan distribusi dan memperbarui model generatif yang sesuai daripada melakukan ini untuk batas keputusan dalam SVM, terutama jika pembaruan online perlu tanpa pengawasan. Model diskriminatif juga umumnya tidak berfungsi untuk deteksi outlier, meskipun model generatif umumnya berfungsi. Apa yang terbaik untuk aplikasi tertentu harus, tentu saja, dievaluasi berdasarkan aplikasi tersebut.

  • (Kutipan ini berbelit-belit, tetapi inilah yang saya pikir sedang coba katakan) Model generatif biasanya dispesifikasikan sebagai model grafis probabilistik, yang menawarkan representasi kaya dari hubungan independensi dalam dataset. Model diskriminatif tidak menawarkan representasi yang jelas tentang hubungan antara fitur dan kelas dalam dataset. Alih-alih menggunakan sumber daya untuk sepenuhnya memodelkan setiap kelas, mereka berfokus pada pemodelan kaya batas antara kelas. Dengan jumlah kapasitas yang sama (misalnya, bit dalam program komputer yang mengeksekusi model), model diskriminatif dengan demikian dapat menghasilkan representasi yang lebih kompleks dari batas ini daripada model generatif.


Komentar sepele: batas antara cluster semakin sulit untuk merencanakan / memahami / mengukur dengan meningkatnya . Jadi misalnya k-clustering, dipandang sebagai model diskriminatif, mendapat ribut dan ad hoc. (Contoh: bandingkan politik dalam sistem 2 partai vs 5 partai di Jerman). (k2)kk
denis

63

(Jawaban hamner sangat bagus, jadi cukup posting silang jawaban saya dari MetaOptimize untuk kelengkapan.)

Saya pikir algoritma generatif sebagai menyediakan model bagaimana data sebenarnya dihasilkan (saya pikir mereka memberikan Anda model dan , daripada , meskipun saya kira itu setara), dan algoritma diskriminatif hanya menyediakan pemisahan klasifikasi (dan belum tentu secara probabilistik).P(X|Y)P(Y)P(X,Y)

Bandingkan, misalnya, model campuran Gaussian dan pengelompokan k-mean. Dalam yang pertama, kami memiliki model probabilistik yang bagus untuk bagaimana poin dihasilkan (pilih komponen dengan beberapa probabilitas, dan kemudian memancarkan titik dengan pengambilan sampel dari distribusi Gaussian komponen), tetapi tidak ada yang dapat kami katakan tentang yang terakhir.

Perhatikan bahwa algoritma generatif memiliki sifat diskriminatif, karena Anda bisa mendapatkan setelah Anda memiliki dan (oleh Bayes 'Theorem), meskipun algoritma diskriminatif tidak benar-benar memiliki sifat generatif.P(Y|X)P(X|Y)P(Y)

1: Algoritma diskriminatif memungkinkan Anda untuk mengklasifikasikan poin, tanpa memberikan model bagaimana poin sebenarnya dihasilkan. Jadi ini bisa berupa:

  • algoritma probabilistik mencoba mempelajari (mis., regresi logistik);P(Y|X)
  • atau algoritma non-probabilistik yang mencoba mempelajari pemetaan langsung dari titik ke kelas (misalnya, perceptron dan SVM hanya memberi Anda hyperplane pemisah, tetapi tidak ada model untuk menghasilkan poin baru).

Jadi ya, pengklasifikasi diskriminatif adalah pengklasifikasi yang tidak generatif.

Cara lain untuk berpikir tentang ini adalah bahwa algoritma generatif membuat semacam asumsi struktur pada model Anda , tetapi algoritma diskriminatif membuat lebih sedikit asumsi. Misalnya, Naive Bayes mengasumsikan independensi bersyarat dari fitur Anda, sedangkan regresi logistik ("mitra" diskriminatif dari Naive Bayes) tidak.

2: Ya, Naif Bayes adalah generatif karena menangkap dan . Misalnya, jika kita tahu bahwa dan , bersama dengan probabilitas kata Inggris dan Perancis, maka kita sekarang dapat menghasilkan dokumen baru dengan terlebih dahulu memilih bahasa dokumen ( Bahasa Inggris dengan probabilitas 0,7, Prancis dengan probabilitas 0,3), dan kemudian menghasilkan kata-kata sesuai dengan probabilitas kata bahasa yang dipilih.P(X|Y)P(Y)P(Y=English)=0.7P(Y=French)=0.3

Ya, saya kira Anda bisa membuat regresi logistik generatif dengan cara itu, tetapi itu hanya karena Anda menambahkan sesuatu ke regresi logistik yang belum ada di sana. Yaitu, ketika Anda melakukan klasifikasi Naive Bayes, Anda secara langsung menghitung (ketentuan di sebelah kanan, dan , adalah apa yang memungkinkan Anda untuk menghasilkan dokumen baru); tetapi ketika Anda menghitung dalam regresi logistik, Anda tidak menghitung kedua hal ini, Anda hanya menerapkan fungsi logistik ke produk titik.P(Y|X)P(X|Y)P(Y)P(X|Y)P(Y)P(Y|X)

3: Model generatif sering kali mengungguli model diskriminatif pada set data yang lebih kecil karena asumsi generatifnya menempatkan beberapa struktur pada model Anda yang mencegah overfitting . Sebagai contoh, mari kita pertimbangkan Naif Bayes vs Regresi Logistik. Asumsi Naive Bayes tentu saja jarang dipenuhi, jadi regresi logistik akan cenderung mengungguli Naive Bayes ketika dataset Anda tumbuh (karena ia dapat menangkap dependensi yang tidak bisa dilakukan oleh Naive Bayes). Tetapi ketika Anda hanya memiliki satu set data kecil, regresi logistik mungkin mengambil pola palsu yang tidak benar-benar ada, sehingga Naive Bayes bertindak sebagai semacam pengatur pada model Anda yang mencegah overfitting. Ada sebuah makalah oleh Andrew Ng dan Michael Jordan tentang pengklasifikasi diskriminatif vs generatif yang membicarakan hal ini lebih lanjut.

4: Saya pikir maksudnya adalah bahwa model generatif dapat benar-benar mempelajari struktur data yang mendasarinya jika Anda menentukan model Anda dengan benar dan model tersebut benar-benar berlaku, tetapi model diskriminatif dapat mengungguli jika asumsi generatif Anda tidak dipenuhi (karena algoritma diskriminatif adalah kurang terikat pada struktur tertentu, dan dunia nyata berantakan dan asumsi jarang terpuaskan dengan sempurna). (Saya mungkin akan mengabaikan kutipan ini jika mereka membingungkan.)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.