Multi layer back propagation Jaringan saraf untuk klasifikasi

8

Dapatkah seseorang menjelaskan kepada saya, bagaimana mengklasifikasikan data seperti MNIST dengan jaringan MLBP-Neural jika saya membuat lebih dari satu output (misalnya 8), maksud saya jika saya hanya menggunakan satu output saya dapat dengan mudah mengklasifikasikan data, tetapi jika saya menggunakan lebih dari satu satu, output mana yang harus saya pilih?

Aldy syahdeini
sumber
Silakan, tambahkan informasi / tautan referensi pada data MNIST itu , sehingga membuat posting Anda mandiri. Terima kasih.
Rubens

Jawaban:

5

Misalkan Anda perlu mengklasifikasikan sesuatu dalam kelas K, di mana K> 2. Dalam hal ini pengaturan yang paling sering saya gunakan adalah satu pengkodean panas. Anda akan memiliki kolom output K, dan dalam set pelatihan Anda akan menetapkan semua nilai ke 0, kecuali yang memiliki indeks kategori, yang bisa memiliki nilai 1. Dengan demikian, untuk setiap instance set data pelatihan Anda akan memiliki semua output dengan nilai 0 atau 1, semua output berjumlah 1 untuk setiap instance.

Ini terlihat seperti probabilitas, yang mengingatkan saya pada teknik yang sering digunakan untuk menghubungkan beberapa output yang dimodelkan sebagai probabilitas. Ini disebut fungsi softmax, lebih detail di Wikipedia . Ini akan memungkinkan Anda untuk menempatkan beberapa batasan pada nilai-nilai output (pada dasarnya ini adalah generalisasi fungsi logistik) sehingga nilai-nilai output akan dimodelkan sebagai probabilitas.

Akhirnya, dengan atau tanpa softmax Anda dapat menggunakan output sebagai fungsi diskriminan untuk memilih kategori yang tepat.

Pikiran terakhir lainnya adalah untuk menghindari mengkodekan variabel Anda dengan cara yang terhubung. Misalnya Anda dapat memiliki representasi biner dari indeks kategori. Ini akan menyebabkan pelajar koneksi buatan antara beberapa output yang sewenang-wenang. Satu pengkodean panas memiliki keuntungan yang netral terhadap bagaimana label diindeks.

rapaio
sumber
2

Algoritma yang digunakan dalam hal ini disebut classifier satu-vs-semua atau multiclass classifier.

Dalam kasus Anda, Anda harus mengambil satu kelas, misalnya nomor 1, tandai sebagai positif dan menggabungkan tujuh kelas sisanya dalam satu kelas negatif. Jaringan saraf akan menampilkan kemungkinan kasus ini menjadi kelas nomor 1 vs kelas-kelas lainnya.

Kata penutup, Anda harus menetapkan kelas lain sebagai positif, misalnya nomor 2, menetapkan semua kelas lain sebagai satu kelas negatif besar dan mendapatkan probabilitas yang diprediksi dari jaringan lagi.

Setelah mengulangi prosedur ini untuk semua delapan kelas, tetapkan setiap kasus ke kelas yang memiliki probabilitas maksimum dari semua kelas yang dikeluarkan dari jaringan saraf.

tomaskazemekas
sumber