- Pengantar singkat tentang struktur dan tujuan Mesin Boltzmann
- Fungsi energi dan distribusi probabilitas didefinisikan dengan rumus
- Aturan pembaruan bobot dan bias diturunkan melalui diferensiasi
- Penjelasan metode pendekatan ekspektasi model melalui fase positif·negatif dan Gibbs sampling
- Pada akhirnya, algoritma Contrastive Divergence dirangkum secara keseluruhan
Konsep Mesin Boltzmann dan Contrastive Divergence
- Dalam Mesin Boltzmann, terdapat lapisan masukan (visible layer) dan lapisan tersembunyi (hidden layer), serta matriks bobot yang menghubungkan keduanya dan vektor bias untuk masing-masing lapisan
Fungsi energi dan distribusi probabilitas
-
Fungsi energi didefinisikan dalam bentuk matriks sebagai berikut
E(v, h) = -ΣiΣj wij vi hj - Σi bi vi - Σj cj hj
- v: vektor lapisan terlihat, h: vektor lapisan tersembunyi, w: bobot, b/c: bias masing-masing lapisan
-
Distribusi gabungan Mesin Boltzmann adalah
P(v, h) = (1/Z) * exp(-E(v, h))
- Z (fungsi partisi) berperan untuk menormalkan distribusi probabilitas
Log-likelihood dan diferensiasi
-
Pelatihan dilakukan dengan memaksimalkan likelihood data pelatihan
log(P(v)) = log(Σh exp(-E(v, h))) - log(Z)
-
Turunan parsial log-likelihood terhadap bobot wij adalah
∂(log P(v))/∂wij = <vi hj>data - <vi hj>model
- < · >data: ekspektasi terhadap data nyata
- < · >model: ekspektasi terhadap data yang dihasilkan model
Aturan pembelajaran bobot dan bias
- Bobot dan bias diperbarui sebagai berikut
- Δwij = η(<vi hj>data - <vi hj>model)
- Δbi = η(<vi>data - <vi>model)
- Δcj = η(<hj>data - <hj>model)
- η adalah learning rate
Algoritma Contrastive Divergence
- Karena ekspektasi model < · >model sulit dihitung secara langsung, digunakan Gibbs sampling
- Contrastive Divergence melakukan pendekatan dengan prosedur berikut
- Fase positif: sampling lapisan tersembunyi h(0) dari P(h | v(0)=data)
- Fase negatif: mengulangi Gibbs sampling sebanyak k kali
- Secara bergantian melakukan sampling v(t+1) ~ P(v | h(t)), h(t+1) ~ P(h | v(t))
- Pada saat pembaruan, digunakan selisih antara ekspektasi data dan ekspektasi model
- Δwij = η(<vi hj>data - <vi hj>model)
- Δbi = η(<vi>data - <vi>model)
- Δcj = η(<hj>data - <hj>model)
Ringkasan
- Inti pembelajaran Mesin Boltzmann sebagai model berbasis energi adalah mengurangi selisih ekspektasi antara data nyata dan distribusi yang dihasilkan model
- Contrastive Divergence adalah metode pelatihan inti yang memungkinkan pendekatan selisih ini dilakukan dengan cepat dan efisien
- Melalui Gibbs sampling, metode ini berperan menghubungkan distribusi model dengan data nyata, dan dengan mengulangi proses ini bobot serta bias diperbarui agar Mesin Boltzmann dapat merepresentasikan data dengan baik
1 komentar
Komentar Hacker News
Menurut pemahaman saya, Harmonium (Smolensky) adalah restricted Boltzmann machine pertama, dengan konsep memaksimalkan “harmony” alih-alih meminimalkan “energy”. Saat Smolensky, Hinton, dan Rummelhart berkolaborasi, mereka menyebutnya “goodness of fit”. Makalah Harmonium benar-benar bacaan yang mengesankan. Hinton menjadi superstar di dunia AI, dan Smolensky menulis buku tebal terkait linguistik. Saya penasaran apakah ada yang tahu lebih banyak tentang sejarah ini
Artikel menarik tentang David Ackley. T2 Tile Project juga layak dilihat
Saya penulisnya. Terima kasih atas banyak komentarnya, saya tidak menyangka ini akan sepopuler ini. Saya sedang memperbaiki typo, spasi, masalah scroll, dan lain-lain; terima kasih sudah melaporkannya
Saya sempat salah membaca judulnya sebagai "A Tiny Boltzmann Brain". Otak alami saya langsung menyelesaikan kebingungan ini. Saya menduga ini akan menjadi eksperimen untuk menguji apakah model yang sangat kecil bisa diberi bobot secara acak lalu melakukan sesuatu yang bermakna. Rasanya semakin kecil modelnya, semakin besar peluang muncul sesuatu yang menarik dari generasi acak. Dugaan saya ternyata salah, tetapi saya tetap tidak kehilangan semangat. Saya mengusulkan keluarga model baru bernama “Unbiased-Architecture Instant Boltzmann Model” (UA-IBM). Saya membayangkan suatu hari, saat ada komputer kuantum yang cukup besar, seluruh dataset bisa disuperposisikan bersama semua parameter dan arsitektur model ke dalam status kuantum sehingga inferensi bisa dilakukan sekaligus. Ada yang punya qubit nganggur untuk mencoba eksperimen seperti ini? (Ironisnya, semua hal memang bersifat kuantum, tetapi kenyataannya masih sulit dimanfaatkan dengan benar. Dan saya juga membayangkan jalur sosial dan teknologi seperti apa yang mungkin dimiliki peradaban alien jika mereka berkembang dari sensor kuantum tunggal menjadi makhluk dengan seluruh sistem saraf kuantum)
Penjelasannya sangat bagus. Sebagai catatan, scroll mouse terlalu sensitif (mungkin di mobile tidak masalah). Setiap kali scroll, tampilannya meloncat ke halaman pertama atau terakhir sehingga terasa merepotkan. Untungnya, dengan input keyboard saya tetap bisa membaca semuanya dengan normal
Jika pemahaman saya benar, tidak seperti jaringan saraf yang kita gunakan saat ini, pembaruan bobot di sini memerlukan gibbs sampling alih-alih forward/backward pass berbasis gradient. Saya penasaran kenapa begitu
Tulisan ini mengingatkan saya pada masa lalu. Pada 1990, saya membuat array node jaringan saraf dengan void pointer lalu mengimplementasikan Boltzmann machine dan perceptron dalam C. Saat itu penggunaan “AI” antara lain untuk memprediksi nada berikutnya dari melodi MIDI, atau mengenali bentuk not seperti minim, crotchet, dan quaver dalam area titik 5x9. Tingkat pengenalan 85% saat itu sudah dianggap cukup “baik”
Tulisan ini mudah dipahami dan jelas. Banyak kenangan lama yang muncul. Sedikit promosi memalukan, tapi saya pernah membuat video yang memvisualisasikan proses pelatihan RBM
Demo yang sangat rapi. Saya jadi teringat dulu mengikuti beberapa kuliah Geoff Hinton tentang Boltzmann machine di kelas jaringan saraf. Satu hal yang ingin saya tunjukkan: penjelasan seperti “restricted Boltzmann machine tidak memiliki koneksi antara neuron visible dan hidden” itu keliru. Itu bisa membuat orang mengira node visible dan hidden memang tidak saling terhubung. Yang benar, tidak ada koneksi di dalam tipe yang sama, yaitu antarsesama visible atau antarsesama hidden. Atau bisa juga dijelaskan bahwa node visible dan hidden tidak memiliki koneksi internal dalam tipenya masing-masing