Apa yang menentukan pilihan fungsi (Softmax vs Sigmoid) dalam pengklasifikasi Logistik?
Misalkan ada 4 kelas output. Masing-masing fungsi di atas memberikan probabilitas masing-masing kelas menjadi hasil yang benar. Jadi mana yang harus diambil untuk classifier?
Jawaban:
Fungsi sigmoid digunakan untuk regresi logistik dua kelas, sedangkan fungsi softmax digunakan untuk regresi logistik multiklass (alias MaxEnt, regresi logistik multinomial, Regresi softmax, Maximum Entropy Classifier).
Dalam regresi logistik dua kelas, probabilitas yang diprediksi adalah sebagai berikut, menggunakan fungsi sigmoid:
Dalam regresi logistik multiklass, dengan kelas , probabilitas yang diprediksi adalah sebagai berikut, menggunakan fungsi softmax:K
Seseorang dapat mengamati bahwa fungsi softmax adalah perpanjangan dari fungsi sigmoid ke kasing multiclass, seperti yang dijelaskan di bawah ini. Mari kita lihat regresi logistik multikelas, dengan kelas:K=2
dengan . Kami melihat bahwa kami memperoleh probabilitas yang sama seperti dalam regresi logistik dua kelas menggunakan fungsi sigmoid. Wikipedia mengembangkan sedikit lebih banyak tentang itu.β=−(β0−β1)
sumber
Mereka, pada kenyataannya, setara, dalam arti bahwa satu dapat diubah menjadi yang lain.
Misalkan data Anda diwakili oleh vektor , dari dimensi arbitrer, dan Anda membuat classifier biner untuk itu, menggunakan transformasi affine diikuti oleh softmax:x
Mari kita ubah menjadi classifier biner setara yang menggunakan sigmoid, bukan softmax. Pertama-tama, kita harus memutuskan probabilitas mana yang kita inginkan dari sigmoid untuk output (yang bisa untuk kelas atau ). Pilihan ini benar-benar arbitrer dan jadi saya memilih kelas . Kemudian, classifier saya akan berbentuk:C0 C1 C0
Pengklasifikasi sama jika probabilitasnya sama, jadi kita harus memaksakan:
Mengganti , dan dengan ekspresi mereka dalam bentuk dan dan melakukan beberapa hal langsung manipulasi aljabar, Anda dapat memverifikasi bahwa kesetaraan di atas berlaku jika dan hanya jika dan diberikan oleh:z0 z1 z′ w0,w1,w′,b0,b1,b′ x w′ b′
sumber
Saya perhatikan orang sering diarahkan ke pertanyaan ini ketika mencari apakah akan menggunakan sigmoid vs softmax di jaringan saraf. Jika Anda salah satu dari orang-orang yang membangun pengklasifikasi jaringan saraf, berikut adalah cara memutuskan apakah akan menerapkan sigmoid atau softmax ke nilai output mentah dari jaringan Anda:
Referensi: untuk penjelasan lebih rinci tentang kapan menggunakan sigmoid vs softmax dalam desain jaringan saraf, termasuk contoh perhitungan, silakan lihat artikel ini: "Klasifikasi: Sigmoid vs. Softmax."
sumber
Menambah semua jawaban sebelumnya - Saya ingin menyebutkan fakta bahwa masalah klasifikasi multi-kelas dapat direduksi menjadi beberapa masalah klasifikasi biner menggunakan metode "satu-vs-semua", yaitu memiliki C sigmoids (ketika C adalah jumlah dari kelas) dan menafsirkan setiap sigmoid menjadi probabilitas berada di kelas tertentu atau tidak, dan mengambil probabilitas maks.
Jadi misalnya, dalam contoh digit MNIST, Anda bisa menggunakan softmax, atau sepuluh sigmoids. Sebenarnya inilah yang dilakukan Andrew Ng dalam kursus Coursera ML-nya. Anda dapat memeriksa di sini bagaimana Andrew Ng digunakan 10 sigmoids untuk klasifikasi multiclass (diadaptasi dari Matlab untuk python oleh saya), dan di sini adalah adaptasi Softmax saya di python.
Juga, perlu dicatat bahwa sementara fungsinya setara (untuk tujuan klasifikasi multikelas) mereka sedikit berbeda dalam implementasinya (terutama yang berkaitan dengan turunannya , dan bagaimana cara mewakili y).
Keuntungan besar menggunakan beberapa klasifikasi biner (yaitu Sigmoids) di atas klasifikasi multikelas tunggal (yaitu Softmax) - adalah bahwa jika softmax Anda terlalu besar (misalnya jika Anda menggunakan satu kata panas yang disematkan dengan ukuran kamus 10K atau lebih ) - bisa jadi tidak efisien untuk melatihnya. Yang bisa Anda lakukan adalah mengambil sebagian kecil dari set latihan Anda dan menggunakannya untuk melatih hanya sebagian kecil dari sigmoids Anda. Ini adalah ide utama di balik Sampling Negatif .
sumber