Apa fungsi biaya umum yang digunakan dalam mengevaluasi kinerja jaringan saraf?
Detail
(jangan ragu untuk melewatkan sisa pertanyaan ini, maksud saya di sini adalah hanya untuk memberikan klarifikasi tentang notasi yang mungkin digunakan jawaban untuk membantu mereka lebih dimengerti oleh pembaca umum)
Saya pikir akan bermanfaat untuk memiliki daftar fungsi biaya umum, di samping beberapa cara yang telah mereka gunakan dalam praktik. Jadi, jika orang lain tertarik dengan ini, saya pikir komunitas wiki mungkin adalah pendekatan terbaik, atau kita bisa menghapusnya jika itu di luar topik.
Notasi
Jadi untuk memulai, saya ingin mendefinisikan notasi yang kita semua gunakan saat menjelaskan ini, jadi jawabannya cocok satu sama lain.
Notasi ini dari buku Neilsen .
Jaringan Neural Feedforward adalah banyak lapisan neuron yang terhubung bersama. Kemudian dibutuhkan input, input itu "menetes" melalui jaringan dan kemudian jaringan saraf mengembalikan vektor output.
Lebih formal lagi, sebut aktivasi (alias output) dari neuron di lapisan , di mana adalah elemen dalam vektor input.
Kemudian kita dapat menghubungkan input layer berikutnya dengan sebelumnya melalui relasi berikut:
dimana
adalah fungsi aktivasi,
adalah bobot dari neuron di lapisan ke neuron di lapisan ,
adalah bias dari neuron di lapisan , dan
mewakili nilai aktivasi neuron di lapisan - .
Terkadang kita menulis untuk mewakili , dengan kata lain, nilai aktivasi neuron sebelum menerapkan fungsi aktivasi .
Untuk notasi yang lebih ringkas kita bisa menulis
Untuk menggunakan rumus ini untuk menghitung output dari jaringan feedforward untuk beberapa input , atur , lalu hitung , , ..., , di mana m adalah jumlah lapisan.
pengantar
Fungsi biaya adalah ukuran "seberapa baik" jaringan saraf lakukan sehubungan dengan itu diberikan sampel pelatihan dan output yang diharapkan. Ini juga mungkin tergantung pada variabel seperti bobot dan bias.
Fungsi biaya adalah nilai tunggal, bukan vektor, karena ini menilai seberapa baik jaringan saraf lakukan secara keseluruhan.
Secara khusus, fungsi biaya dalam bentuk
di mana adalah bobot jaringan saraf kita, adalah bias jaringan saraf kita, adalah input dari sampel pelatihan tunggal, dan adalah output yang diinginkan dari sampel pelatihan itu. Catatan fungsi ini juga bisa berpotensi menjadi tergantung pada dan untuk setiap neuron pada lapisan , karena nilai-nilai tersebut tergantung pada , , dan .
Dalam backpropagation, fungsi biaya digunakan untuk menghitung kesalahan dari layer output kami, , melalui
Yang juga dapat ditulis sebagai vektor via
Kami akan memberikan gradien fungsi biaya dalam hal persamaan kedua, tetapi jika seseorang ingin membuktikan hasil ini sendiri, disarankan menggunakan persamaan pertama karena lebih mudah digunakan.
Persyaratan fungsi biaya
Untuk digunakan dalam backpropagation, fungsi biaya harus memenuhi dua properti:
1: Fungsi biaya harus dapat ditulis sebagai rata-rata
fungsi biaya untuk contoh pelatihan individual, .
Hal ini memungkinkan kita untuk menghitung gradien (sehubungan dengan bobot dan bias) untuk contoh pelatihan tunggal, dan menjalankan Gradient Descent.
2: Fungsi biaya tidak harus bergantung pada nilai-nilai aktivasi dari jaringan saraf selain output nilai .
Secara teknis fungsi biaya dapat bergantung pada atau . Kami hanya membuat batasan ini sehingga kami dapat melakukan backpropagte, karena persamaan untuk menemukan gradien dari lapisan terakhir adalah satu-satunya yang bergantung pada fungsi biaya (sisanya tergantung pada lapisan berikutnya). Jika fungsi biaya tergantung pada lapisan aktivasi lain selain yang satu output, backpropagation akan tidak valid karena gagasan "menetes ke belakang" tidak lagi berfungsi.
Juga, fungsi aktivasi diperlukan untuk memiliki output untuk semua . Jadi fungsi biaya ini hanya perlu didefinisikan dalam rentang itu (misalnya, valid karena kami dijamin ).
sumber
Jawaban:
Inilah yang saya mengerti sejauh ini. Sebagian besar ini bekerja paling baik ketika diberi nilai antara 0 dan 1.
Biaya kuadratik
Juga dikenal sebagai mean squared error , kemungkinan maksimum , dan jumlah squared error , ini didefinisikan sebagai:
Gradien dari fungsi biaya ini sehubungan dengan output dari jaringan saraf dan beberapa sampel adalah:r
Biaya lintas-entropi
Juga dikenal sebagai Bernoulli negative log-likelihood dan Binary Cross-Entropy
Gradien dari fungsi biaya ini sehubungan dengan output dari jaringan saraf dan beberapa sampel adalah:r
Biaya eksponensial
Ini mengharuskan Anda memilih beberapa parameter yang menurut Anda akan memberi Anda perilaku yang Anda inginkan. Biasanya Anda hanya perlu bermain dengan ini sampai semuanya berjalan baik.τ
di mana hanya singkatan untuk .exp(x) ex
Gradien dari fungsi biaya ini sehubungan dengan output dari jaringan saraf dan beberapa sampel adalah:r
Saya bisa menulis ulang , tapi itu sepertinya berlebihan. Titik adalah gradien yang menghitung vektor dan kemudian mengalikannya dengan .CEXP CEXP
Jarak Hellinger
Anda dapat menemukan lebih banyak tentang ini di sini . Ini perlu memiliki nilai positif, dan nilai idealnya antara dan . Hal yang sama berlaku untuk divergensi berikut.0 1
Gradien dari fungsi biaya ini sehubungan dengan output dari jaringan saraf dan beberapa sampel adalah:r
Divergensi Kullback – Leibler
Juga dikenal sebagai Divergensi Informasi , Penguatan Informasi , Entropi Relatif , KLIC , atau KL Divergence (Lihat di sini ).
Kullback – Leibler divergence biasanya dilambangkan ,
di mana adalah ukuran dari informasi hilang ketika digunakan untuk mendekati . Jadi kami ingin mengatur dan , karena kami ingin mengukur berapa banyak informasi yang hilang ketika kami menggunakan untuk memperkirakan . Ini memberi kitaDKL(P∥Q) Q P P=Ei Q=aL aij Eij
Divergensi lain di sini menggunakan ide ini sama menetapkan dan .P=Ei Q=aL
Gradien dari fungsi biaya ini sehubungan dengan output dari jaringan saraf dan beberapa sampel adalah:r
Divergensi umum Kullback – Leibler
Dari sini .
Gradien dari fungsi biaya ini sehubungan dengan output dari jaringan saraf dan beberapa sampel adalah:r
Itakura – jarak Saito
Juga dari sini .
Gradien dari fungsi biaya ini sehubungan dengan output dari jaringan saraf dan beberapa sampel adalah:r
Di mana . Dengan kata lain, hanya sama dengan mengkuadratkan setiap elemen .((aL)2)j=aLj⋅aLj (aL)2 aL
sumber
a*(1-a)
tidaka*(1+a)
Tidak memiliki reputasi untuk berkomentar, tetapi ada kesalahan tanda pada 3 gradien terakhir.
Dalam perbedaan KL, Ini kesalahan tanda yang sama muncul dalam divergensi KL Umum.
Dalam jarak Itakura-Saito,
sumber