Jaringan Saraf Tiruan: Untuk Klasifikasi Biner gunakan 1 atau 2 neuron keluaran?

26

Asumsikan saya ingin melakukan klasifikasi biner (sesuatu milik kelas A atau kelas B). Ada beberapa kemungkinan untuk melakukan ini di lapisan output dari jaringan saraf:

  • Gunakan 1 simpul output. Output 0 (<0,5) dianggap kelas A dan 1 (> = 0,5) dianggap kelas B (dalam kasus sigmoid)

  • Gunakan 2 node output. Input milik kelas node dengan nilai / probabilitas tertinggi (argmax).

Apakah ada makalah yang ditulis yang (juga) membahas hal ini? Apa kata kunci spesifik untuk dicari?

Pertanyaan ini sudah ditanyakan sebelumnya di situs ini misalnya melihat tautan ini tanpa jawaban nyata. Saya perlu membuat pilihan (Master Thesis), jadi saya ingin mendapatkan wawasan dalam pro / kontra / keterbatasan setiap solusi.

robert
sumber
Saya pikir OP dari pertanyaan terkait memiliki poin yang bagus, satu-satunya perbedaan adalah pilihan 2 memiliki jumlah parameter yang lebih besar, lebih fleksibel tetapi lebih cenderung terlalu pas.
dontloo
1
Dalam Udacity ML Nanodegree saya belajar bahwa lebih baik menggunakan satu simpul keluaran jika hasilnya saling eksklusif hanya karena jaringan memiliki lebih sedikit kesalahan yang dapat dibuatnya. Saya pikir tidak ada pro dalam menggunakan 2 node output dalam kasus itu, tetapi saya tidak punya bukti ilmiah untuk itu
CodingYourLife

Jawaban:

25

Dalam kasus kedua Anda mungkin menulis tentang fungsi aktivasi softmax. Jika itu benar, maka sigmoid hanyalah kasus khusus dari fungsi softmax. Itu mudah ditunjukkan.

y=11+ex=11+1ex=1ex+1ex=ex1+ex=exe0+ex

Seperti yang Anda lihat, sigmoid sama dengan softmax. Anda dapat berpikir bahwa Anda memiliki dua output, tetapi salah satunya memiliki semua bobot sama dengan nol dan karenanya outputnya akan selalu sama dengan nol.

Jadi pilihan yang lebih baik untuk klasifikasi biner adalah menggunakan satu unit output dengan sigmoid daripada softmax dengan dua unit output, karena akan memperbarui lebih cepat.

itdxer
sumber
Ketika Anda mengatakan salah satu dari mereka memiliki semua bobot nol, apakah maksud Anda model itu bahkan tidak mempertimbangkan salah satu kelas selama pelatihan? Dalam praktiknya, dapatkah kita benar-benar melatih penggolong biner ini hanya dengan satu kelas data pelatihan?
deadcode
Ini lebih seperti ambang batas (terikat) diperbaiki selama pelatihan dan kelas. Sehingga Anda tahu bahwa jika dari kelas positif dan jika x < 0x>0x<0 dari kelas negatif. Dengan softmax Anda dapat mempelajari ambang yang berbeda dan memiliki batas yang berbeda. Bobot RE dengan semua nol, maksud saya sigmoid itu sama dengan softmax dengan 2 output untuk kasus ketika Anda memiliki dua neutron output dan satu output dan yang lainnya selalu 0 tidak peduli apa pun inputnya. Bisa jadi hanya ketika untuk output kedua kita memiliki semua bobot sama dengan nol. Saya harap ini membantu. x0
itdxer
1
Perhatikan ada solusi degenerasi bentuk exp(x+alpha) / (exp(alpha) + exp(x+alpha))- sebenarnya jumlah tak terbatas dari mereka - semua menghasilkan hasil klasifikasi yang sama seperti yang dicatat dengan bobot semua 0. Bobot kemungkinan tidak akan melatih menjadi nol, tetapi akan melatih sebaliknya menjadi merosot dengan solusi yang memiliki bobot semua 0. Hindari solusi degenerasi (tidak berguna dan boros) dengan menggunakan hanya satu neuron output, tampaknya.
Dan Nissenbaum
2

Algoritma pembelajaran mesin seperti pengklasifikasi secara statistik memodelkan data input, di sini, dengan menentukan probabilitas input milik kategori yang berbeda. Untuk jumlah kelas yang berubah-ubah, biasanya lapisan softmax ditambahkan ke model sehingga output akan memiliki sifat probabilistik dengan desain:

y=softmax(Sebuah)1sayae-Sebuahsaya×[e-Sebuah1,e-Sebuah2,...,e-Sebuahn]

y 1 + y 2

0ysaya1 untuk semua saya
y1+y2+...+yn=1

Sebuah

Ini benar-benar berlaku untuk dua kelas, namun, satu juga dapat menggunakan satu neuron (bukan dua) mengingat outputnya memuaskan:

0y1 for all inputs.
ay

sigmoid(a)σ(a)11+eSebuah

sifat matematika yang berguna (diferensiasi, dibatasi antara 0 dan 1, dll.), efisiensi komputasi, dan memiliki kemiringan yang tepat sehingga memperbarui bobot jaringan akan memiliki perubahan kecil tetapi terukur dalam output untuk keperluan optimasi.

Kesimpulan

Saya tidak yakin apakah alasan @ itdxer yang menunjukkan softmax dan sigmoid setara jika valid, tetapi ia benar tentang memilih 1 neuron berbeda dengan 2 neuron untuk pengklasifikasi biner karena lebih sedikit parameter dan perhitungan yang diperlukan. Saya juga telah dikritik karena menggunakan dua neuron untuk pengklasifikasi biner karena "itu berlebihan".

Miladiouss
sumber