Saya sangat baru di RBM, mencoba menulis program RBM sekarang. Maaf jika ini pertanyaan konyol dan / atau sudah dijawab di sini.
Saya telah membaca beberapa artikel online, dan pertanyaan di sini, tetapi saya tidak dapat menemukan apa pun tentang cara memperbarui bias (atau bobot bias). Saya telah membaca tentang pengaturannya pada awalnya. Referensi sekilas yang harus diperbarui. Geoff Hinton menyebutkan bias, tentu saja, dan fitur itu ada dalam persamaannya, (Saya sudah membaca beberapa makalahnya, melihat beberapa presentasi video) tetapi saya tidak dapat menemukan penyebutan dalam makalahnya tentang bias yang diubah setelah disetel. , atau bagaimana / kapan / mengapa melakukannya. Saya pasti melewatkan sesuatu!
Makalah Edwin Chen direkomendasikan di sini: http://blog.echen.me/2011/07/18/introduction-to-restricted-boltzmann-machines/ Dia tidak menyebutkan cara memperbarui / 'mempelajari' bias; mereka diubah dalam programnya tetapi saya tidak mengerti kodenya. (Dia memiliki meja yang memberikan bobot yang diperbarui yang sepertinya tidak benar - anehnya memberikan bobot bias-bias, apa pun itu bisa berarti.)
Um, jadi saya tidak yakin mengapa ini sangat sulit untuk menemukan bahan !! Terima kasih atas bantuannya.
Jawaban:
TLDR
Untuk -langkah Contrastive Divergence, perbarui bias terlihat , berdasarkan vektor data menggunakan:n bj d
Perbarui bias tersembunyi menggunakan:hi
Di mana dan adalah bias setelah memperbarui nomor t, adalah tingkat pembelajaran, adalah komponen dari vektor data, dan di mana dan adalah probabilitas unit tersembunyi dan unit terlihat menjadi aktif setelah RBM telah terpapar ke data dan dijalankan untuk langkah . Ini mengasumsikan ukuran minibatch 1; untuk ukuran minibatch praktis , rata-rata pembaruan yang diperoleh dari vektor data .b(t)j c(t)i η dj j h^(n)j v^(n)j i j n k k
Penjelasan lengkap
Saya memiliki masalah yang sama. Cara yang baik untuk memikirkannya adalah bahwa bias itu sendiri hanyalah bobot. Seringkali dalam model jaringan saraf, bias suatu unit dimodelkan sebagai bobot tautan yang menghubungkan unit tersebut ke unit "selalu aktif", yaitu unit imajiner yang aktivasinya selalu 1.
Dalam kasus RBM, itu berarti bahwa Anda berpikir bahwa ada satu unit ekstra terlihat yang outputnya selalu 1. Unit terlihat ini menempel pada masing-masing unit tersembunyi (seperti halnya unit lain yang terlihat), dan bobot koneksi ini. adalah bias dari masing-masing unit tersembunyi. Demikian pula, bias dari unit terlihat dapat dimodelkan dengan membayangkan unit tersembunyi tambahan, yang nilainya selalu satu, dan yang menghubungkan ke masing-masing unit yang terlihat, dengan bobot koneksi ini menjadi bias yang terlihat.
Anda bahkan dapat mengimplementasikan RBM Anda dengan cara ini, tetapi saya tidak berpikir orang biasanya melakukan itu. Intinya adalah, dengan memikirkannya dengan cara ini, Anda dapat menggunakan (pada dasarnya) aturan pembaruan yang sama untuk bias seperti yang Anda lakukan untuk bobot, karena bias hanyalah bobot yang terhubung ke unit "selalu aktif".
Mari kita konkret. Saya akan menuliskan aturan pembaruan Contrastive Divergence -step yang biasa , mengabaikan regularisasi untuk kesederhanaan. Juga untuk kesederhanaan, aturan pembaruan ini adalah untuk "minibatch" dari 1 vektor data. Pembaruan untuk minibatch dengan vektor adalah pembaruan rata-rata di atas semua vektor . Aturan pembaruan adalah:n k k
(Beberapa orang menggunakan untuk mengindeks unit yang terlihat dan untuk mengindeks unit yang tersembunyi, tetapi masih menulis --- itu tidak masalah selama Anda mengalikan nilai yang benar bersama-sama.)i j Wi,j
Berhati-hatilah untuk membedakan "keadaan" suatu unit, yang dilambangkan dengan atau , dan "aktivasi" suatu unit, dilambangkan atau . The state unit adalah 0 atau 1, sedangkan aktivasi adalah setiap bilangan real antara 0 dan 1. Jika aktivasi adalah 0,8, maka negara akan cenderung 1, tetapi 20% dari waktu itu akan menjadi 0.h(n)i v(n)j h^(n)i v^(n)i
Dengan memperlakukan bias sebagai bobot untuk unit "selalu aktif", Anda akan menemukan bahwa persamaan di atas menyederhanakan persamaan yang diberikan untuk pembaruan bias di bawah " TLDR ". Namun, ada sedikit perbedaan dalam pembaruan untuk bias yang terlihat: di sini aktivasi yang terlihat digunakan sebagai ganti keadaan . Aktivasi memiliki nilai yang diharapkan sama, tetapi memiliki varians lebih rendah dari negara, jadi ini mengurangi noise dalam sinyal pembelajaran. Lihat panduan ini untuk diskusi singkat tentang kapan menggunakan aktivasi alih-alih keadaan diinginkan.§3
sumber