Fungsi biaya lintas-entropi dalam jaringan saraf

10

Saya melihat fungsi biaya lintas-entropi yang ditemukan dalam tutorial ini :

C=1nx[ylna+(1y)ln(1a)]

Apa sebenarnya yang kita simpulkan? Ini tentu saja lebih dari , tetapi dan tidak berubah dengan . Semua adalah input ke dalam . bahkan didefinisikan dalam paragraf di atas persamaan sebagai fungsi dari jumlah semua dan . xyaxxaawx

Juga, didefinisikan sebagai jumlah input ke neuron khusus ini, benar? Itu disebut sebagai "jumlah item data pelatihan" .n


Edit:

Apakah saya benar dalam memikirkan itu

C=1nx[ylna+(1y)ln(1a)]

akan menjadi fungsi biaya untuk seluruh jaringan, sedangkan

C=[ylna+(1y)ln(1a)]

akan menjadi biaya untuk neuron individu? Bukankah seharusnya jumlahnya melebihi setiap neuron keluaran?

Adam12344
sumber

Jawaban:

14

Inilah cara saya akan menyatakan kehilangan lintas-entropi :

L(X,Y)=1ni=1ny(i)lna(x(i))+(1y(i))ln(1a(x(i)))

Di sini, adalah sekumpulan contoh input dalam dataset pelatihan, dan adalah set label yang sesuai untuk contoh input tersebut. The merupakan output dari jaringan saraf yang diberikan masukan .X={x(1),,x(n)}Y={y(1),,y(n)}a(x)x

Setiap adalah 0 atau 1, dan aktivasi output biasanya dibatasi pada interval terbuka (0, 1) dengan menggunakan sigmoid logistik . Misalnya, untuk jaringan satu lapis (yang setara dengan regresi logistik), aktivasi akan diberikan oleh mana adalah matriks bobot dan adalah vektor bias. Untuk beberapa lapisan, Anda dapat memperluas fungsi aktivasi ke sesuatu seperti mana dan adalah matriks bobot dan bias untuk lapisan pertama, dany(i)a(x)

a(x)=11+eWxb
Wb
a(x)=11+eWz(x)bz(x)=11+eVxc
Vcz(x) adalah aktivasi lapisan tersembunyi di jaringan.

Saya telah menggunakan (i) superskrip untuk menunjukkan contoh karena saya menemukan itu cukup efektif dalam kursus pembelajaran mesin Andrew Ng; kadang-kadang orang mengekspresikan contoh sebagai kolom atau baris dalam matriks, tetapi idenya tetap sama.

lmjohns3
sumber
Terima kasih! Jadi ini akan memberi kami satu nomor untuk kesalahan kami untuk seluruh jaringan, atas semua sampel kami. Untuk propagasi balik saya perlu mencari turunan parsial dari fungsi ini wrt matriks berat pada lapisan akhir. Bagaimana saya melakukannya?
Adam12344
Melakukan backprop adalah sekaleng cacing yang terpisah! Halaman yang Anda tautkan memiliki deskripsi turunan komputasi dll. Dan ada banyak pertanyaan tentang backprop di stackoverflow dan situs ini. Cobalah melihat-lihat sedikit dan kemudian posting pertanyaan terpisah khusus tentang backprop.
lmjohns3
Ini mungkin berguna bagi Anda dalam memahami backprop melalui prop belakang dengan jaringan saraf empat lapis dengan kehilangan entropi silang dalam detail gory :) cookedsashimi.wordpress.com/2017/05/06/…
YellowPillow
5

Apa sebenarnya yang kita simpulkan?

Tutorialnya sebenarnya cukup eksplisit:

... adalah jumlah total item data pelatihan, jumlahnya melebihi semua input pelatihan ...n

Fungsi biaya neuron tunggal asli yang diberikan dalam tutorial (Persamaan. 57) juga memiliki subskrip di bawah yang seharusnya mengisyaratkan hal ini. Untuk kasus neuron tunggal tidak ada yang lain untuk jumlah lebih selain contoh pelatihan, karena kita sudah menyimpulkan atas semua bobot masukan ketika menghitung :xΣa

a=jwjxj.

Kemudian dalam tutorial yang sama, Nielsen memberikan ekspresi untuk fungsi biaya untuk jaringan multi-layer, multi-neuron (Persamaan. 63):

C=1nxj[yjlnajL+(1yj)ln(1ajL)].

Dalam hal ini jumlah berjalan lebih dari contoh pelatihan ( 's) dan neuron individu di lapisan output ( ' s).xj

ali_m
sumber
Terima kasih atas wawasannya, satu pertanyaan: yang terakhir yang Anda tetapkan bukan entropi lintas kategoris, bukan?
Tommaso Guerrini
Dia juga mengatakan dalam tutorialnya bahwa "y kadang-kadang dapat mengambil nilai antara antara 0 dan 1" tetapi fungsi yang dia berikan adalah semua pada y dan tidak ada input aktivasi. Bagaimana kita bisa mengimplementasikan nilai antara dalam fungsi st?
Feras
Dalam tutorial Nielsen, yang menunjukkan sebuah perceptron single-layer, a = \ sigma (\ sum_ {j} w_j x_j) karena Anda memiliki fungsi aktivasi sigmoid untuk lapisan output, bukan = \ sum_ {j} w_j x_j
ARAT