Engsel kehilangan dengan satu-vs-semua classifier

9

Saat ini saya sedang melihat bentuk primitif satu-vs-semua yang tidak dibatasi

i=1NIk=1,kyiNKL(1+wkxiwyixi)

dimana

NI adalah jumlah instance,
NK adalah jumlah kelas,
NF adalah jumlah fitur,
X adalah NK×NF matriks data,
y adalah vektor label kelas,
W adalah NK×NI matriks di mana masing-masing sesuai dengan bobot untuk hyperplane yang memisahkan satu kelas dari yang lain,
L adalah beberapa fungsi kerugian yang berubah-ubah.

Pemahaman saya adalah bahwa fungsional di atas mencoba untuk menemukan hyperplane untuk setiap kelas yang memaksimalkan jarak antara sampel dalam kelas terkait dengan semua sampel lainnya. Jika hyperplanes diposisikan dengan benar makawkxi harus selalu negatif, wyixi harus selalu positif dan fungsi kerugian kita harus kembali cukup rendah.

Saya mencoba menerapkan ini dengan menggunakan engsel yang saya percaya pada kasus ini akan berakhir

max(0,1+wkxiwyixi).

Namun, di atas tidak bisa kita berakhir dengan situasi di mana pesawat terbang mengklasifikasikan semua sampel sebagai milik setiap kelas. Sebagai contoh, jika kita melihat hyperplane yang memisahkan kelas 1 dari semua kelas lain, asalkan maka kerugian yang terjadi akan menjadi 0 meskipun \ mathbf {x_i} diklasifikasikan sebagai kelas yang salah.1+wkxi<wyixixi

Di mana saya salah? Atau apakah tidak masalah apakah negatif atau positif asalkan berakhir dengan skor yang lebih tinggi? Saya merasa bahwa penggunaan fungsi engsel seperti yang saya jelaskan di sini tidak benar, tetapi penggunaan Google hari ini hanya menimbulkan lebih banyak kebingungan.wkxiwyixi

Pada catatan terkait, mengapa ada 1 di fungsional di atas? Saya akan berpikir bahwa itu akan berdampak kecil.

brcs
sumber

Jawaban:

2

Kiriman Anda tampaknya sebagian besar benar.

Cara pengklasifikasi multiclass linear diatur adalah bahwa contoh, , diklasifikasikan oleh hyperplane yang memberikan skor tertinggi: . Tidak masalah jika skor ini positif atau negatif.xargmaxkwkx

Jika kehilangan engsel untuk contoh tertentu adalah nol, maka ini berarti bahwa contoh tersebut diklasifikasikan dengan benar. Untuk melihat ini, kehilangan engsel akan nol ketika . Ini adalah kondisi yang lebih kuat daripada , yang akan menunjukkan bahwa contoh diklasifikasikan dengan benar sebagai .1+wkxi<wyixikwkxi<wyixikiyi

Angka 1 dalam kerugian engsel terkait dengan "margin" dari classifier.

Kehilangan engsel mendorong skor dari kelas yang benar, tidak hanya lebih tinggi daripada skor dari semua kelas lain, , tetapi juga harus lebih tinggi dari skor ini dengan faktor tambahan.wyixiwkxi

Kita dapat menggunakan nilai 1 untuk margin karena jarak suatu titik dari hyperplane diskalakan oleh besarnya bobot linear: adalah jarak dari hyperplane dengan vektor normal . Karena bobotnya sama untuk semua titik dalam dataset, hanya penting bahwa faktor penskalaan — 1 — adalah sama untuk semua titik data.w|w|xxw

Selain itu, mungkin membuat hal-hal lebih mudah untuk dipahami jika Anda parameterisasi fungsi kerugian sebagai . Saat ini Anda memiliki fungsi kerugian sebagai fungsi dari margin linier, dan ini belum tentu demikian.L(x,y;w)

pengguna1149913
sumber
Selamat datang di situs ini. Anda dapat menggunakan sini. Untuk mendapatkannya agar ditampilkan dengan benar, hanya membungkusnya dengan tanda dolar tunggal untuk inline matematika (seperti dalam dokumen ) dan tanda dolar dua kali untuk tampilan matematika. Lihatlah riwayat revisi jika Anda membutuhkan bantuan lebih lanjut. LATEXLATEX
kardinal
Juga, aku kira kamu mungkin telah dimaksudkan untuk menggunakan \cdotbukan \dot. Jika demikian, silakan lanjutkan dan lakukan pengeditan tersebut. Bersulang. :)
kardinal
0

Anda kehilangan hasil / label biner (yang dapat mengambil nilai +1 dan -1 untuk kelas yang diberikan) dalam fungsi kerugian: maks (0, 1 - y * (w * x)) (lihat detail di bawah).

Secara keseluruhan, saya pikir spesifikasi di atas (baik notasi dan fungsi kerugian) terlalu rumit satu-vs-semua - alih-alih orang hanya bisa mengambil kelas tertentu, membangun + 1 / -1 hasil y serta matriks data yang sesuai X (dengan kolom Nf dan baris Ni) dan vektor parameter w untuk kelas itu, dan tulis fungsi kehilangan engsel terkait untuk classifier biner klasik untuk kelas itu: jumlah (maks (0, 1 - y * (w * x))) di mana jumlahnya lebih dari semua instance data, x adalah deretan X yang sesuai dengan instance tertentu. Orang memang membutuhkan "1" dalam fungsi kehilangan engsel (karena y * (w * x)> = 1 sesuai dengan prediksi model yang benar sejauh menyangkut fungsi kerugian).

Yevgeny
sumber