Membangun fungsi kerugian spesifik masalah

8

Deskripsi Masalah

Saya memulai konstruksi jaringan untuk masalah yang menurut saya bisa memiliki fungsi kerugian yang jauh lebih mendalam daripada regresi MSE sederhana.

Masalah saya berkaitan dengan klasifikasi multi-kategori ( lihat pertanyaan saya di SO untuk apa yang saya maksudkan dengan ini), di mana ada jarak atau hubungan yang ditentukan antara kategori yang harus diperhitungkan.

Poin lain adalah bahwa kesalahan tidak boleh dipengaruhi oleh jumlah kategori tembak yang ada. Yaitu kesalahan untuk 5 kategori menembak masing-masing sebesar 0,1, harus sama dengan 1 kategori menembakkan sebesar 0,1. (dengan menembakkan maksud saya bahwa mereka tidak nol, atau di atas ambang batas tertentu)


Poin-poin penting

  • klasifikasi multi-kategori (multiple firing sekaligus)
  • hubungan antar kategori
  • hitungan kategori menembak tidak boleh menimbulkan kerugian:
    • masukkan deskripsi gambar di sini

Percobaan saya

Mean Squared Error sepertinya tempat yang baik untuk memulai:

masukkan deskripsi gambar di sini

Ini hanya mempertimbangkan kategori demi kategori, yang masih berharga dalam masalah saya tetapi melewatkan sebagian besar gambar.

masukkan deskripsi gambar di sini

Ini adalah usaha saya untuk memperbaiki ide jarak antar kategori. Selanjutnya saya ingin memperhitungkan jumlah kategori yang ditembakkan ( sebut saja: v )

masukkan deskripsi gambar di sini


Pertanyaan saya

Saya memiliki latar belakang statistik yang sangat lemah; akibatnya, saya tidak memiliki banyak alat di ikat pinggang saya untuk memulai masalah seperti ini. Topik utama dari apa yang saya tanyakan adalah "Ketika membentuk fungsi biaya, bagaimana cara mengkombinasikan beberapa ukuran biaya? Atau teknik apa yang dapat diterapkan untuk melakukannya?" . Saya juga akan menghargai jika ada kekurangan dalam proses pemikiran saya diekspos dan diperbaiki.

Saya menghargai diajarkan mengapa kesalahan saya adalah kesalahan, bukan karena seseorang hanya memperbaikinya tanpa penjelasan.

Jika ada pertanyaan yang kurang jelas atau tidak dapat diperbaiki, beri tahu saya.

Aidan Gomez
sumber
Aidan, senang melihat begitu banyak pemikiran yang ditujukan untuk membangun fungsi kerugian spesifik masalah. Saya akan cenderung melihat ini sebagai masalah matematika, bukan masalah statistik. Anda mencari fungsi kerugian yang mengambil matriks 2x5 ke bilangan real, dan Anda memiliki beberapa gagasan kuat tentang invarian tertentu yang harus dipenuhi fungsi ini, yang karenanya membebankan batasan pada bentuk fungsional. Jika Anda akan menjelaskan arti matriks Anda, saya mungkin bisa menawarkan beberapa panduan yang lebih spesifik untuk membangun fungsi kerugian Anda.
David C. Norris

Jawaban:

2

Anda dapat menggunakan kerugian engsel yang merupakan batas atas pada kerugian klasifikasi; yaitu, ia menghukum model jika label kategori penilaian tertinggi berbeda dari label kelas kebenaran-tanah.

Untuk detail lebih lanjut tentang hubungan antara kehilangan klasifikasi dan kehilangan engsel, Anda dapat membaca Bagian 2 dari makalah luar biasa ini dari CNJ Yu dan T. Joachims.

Singkatnya, ada kehilangan tugas , biasanya dilambangkan denganΔ(yi,y^(xi)), Yang mengukur penalti untuk memprediksi output y^(xi) untuk input xi ketika output (ground-truth) yang diharapkan adalah yi. Hilangnya tugas untuk klasifikasi multi-kelas biasanya didefinisikan sebagaiΔ(yi,y^(xi))=1{yiy^(xi)}. Namun, asalkanΔ hanya tergantung pada dua label y dan y^, Anda dapat mendefinisikannya sesuka Anda. Secara khusus, orang dapat melihatΔ sebagai sewenang-wenang K×K matriks dimana K adalah jumlah kategori dan Δ(a,b) menunjukkan penalti mengklasifikasikan input kategori a sebagai milik kategori b.

Sebagai contoh: input data:{(x1,y1),(x2,y2),(x3,y3)},xiRd,yiY={c1,c2,c3,c4}network predictions:y^(x1)=c2,y^(x2)=c1,y^(x3)=c3task loss matrix:[Δ(y1,y1)Δ(y1,y2)Δ(y1,y3)Δ(y1,y4)Δ(y2,y1)Δ(y2,y2)Δ(y2,y3)Δ(y2,y4)Δ(y3,y1)Δ(y3,y2)Δ(y3,y3)Δ(y3,y4)Δ(y4,y1)Δ(y4,y2)Δ(y4,y3)Δ(y4,y4)]=[0123101221013210]classification loss assuming y1=c4,y2=c1,y3=c4:Δ(y1,y^(x1))=Δ(c4,c2)=2Δ(y2,y^(x2))=Δ(c1,c1)=0Δ(y3,y^(x3))=Δ(c4,c3)=1

Sobi
sumber
1
terima kasih banyak atas tanggapannya. Saya telah menambahkan contoh untuk pertanyaan Anda (mungkin masih dalam peer-review ketika Anda melihat komentar ini). Bisakah Anda mengonfirmasi bahwa interpretasi saya benar?
Aidan Gomez
Saya mengerti, ini berharga dalam masalah klasifikasi-gaya, tetapi milik saya adalah regresi (dengan label multi-dimensi), di mana beberapa kategori mungkin "aktif" pada saat yang sama. Ini tampaknya mirip dengan argmax; untuk setiap input hanya mempertimbangkan kategori output terbesar. Dalam masalah saya orang mungkin memiliki label seperti {1,0,1,1} di mana kategori 0, 2, 3 semuanya ada dalam data tetapi kategori 1 tidak. Jika jaringan saya menebak {0.8, 0, 0.6, 0.3}, kerugian saya seharusnya tidak sama dengan dugaan seperti {0.8, 0, 0.7, 0.7}.
Aidan Gomez
Saya masih percaya jawaban saya menjawab pertanyaan Anda! Apa yang saya jelaskan disebut Struktural SVM di mana label ruangY(yaitu ruang yang ditempati label kebenaran-tanah) dapat memiliki struktur apa pun. Tampak bagi saya bahwa apa yang Anda inginkan dapat diperoleh sebagai berikut: pertimbangkan masalah klasifikasi denganKkategori; menetapkanY={0,1}K. Satu-satunya hal adalah ukuran AndaΔ matriks kemudian menjadi 2K×2K. Namun, Anda mungkin tidak perlu menentukan matriks. Jangan ragu untuk bertanya lebih detail jika ini terdengar untuk menjawab pertanyaan Anda.
Sobi
Ini terdengar seperti jalur yang benar, dapatkah Anda memberikan contoh mudah seperti yang kami lakukan untuk label case 1-dimensi? Mungkin untuk K = 2 atau 3
Aidan Gomez
Katakanlah untuk input x jawaban yang benar adalah y=(0,1,1) tetapi pengklasifikasi Anda memprediksi y^(x)=(0.1,0.9,0.8). Dalam hal ini saya mengasumsikanΔ:{0,1}3×[0,1]3R. Anda dapat menentukan fungsi kerugian menjadi, misalnya,Δ(y,y^)=maxk=1K|y[k]y^[k]|; ini melihat prediksi classifier untuk semua kelas dan mengembalikan nilai kerugian kelas yang paling jauh dari nilai ground-truth yang sesuai.
Sobi