2 poin oleh GN⁺ 2025-05-17 | 1 komentar | Bagikan ke WhatsApp
  • 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
    1. Fase positif: sampling lapisan tersembunyi h(0) dari P(h | v(0)=data)
    2. 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

 
GN⁺ 2025-05-17
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

    • Intinya, sangat banyak orang yang terlibat dalam perkembangan penting seperti ini. Mahasiswa pascasarjana memberi kontribusi sangat besar, dan riset yang mereka lakukan kemudian berkembang lebih lanjut. Saya tidak mengerti kenapa di AS riset dianggap pemborosan, padahal riset telah mendorong kemajuan besar dalam segala hal
  • 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

    • Perbaikan typo sudah selesai, dan sekarang jauh lebih nyaman dilihat di mobile
  • 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)

    • Kasihan makhluk kuantum. Mereka ditakdirkan selalu menunggu komputasi dalam waktu lama karena tidak bisa mengakses model komputasi yang lebih cepat daripada kecepatan berpikir mereka sendiri
    • Menunjukkan bahwa komputer kuantum tidak bekerja seperti itu
  • 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

    • Menurut saya, gibbs sampling digunakan untuk mendekati nilai ekspektasi terhadap distribusi model. Untuk menghitung gradient dari log likelihood, diperlukan integral atas distribusi tersebut, dan itu tidak bisa dihitung secara langsung. Mirip seperti mengambil sampel representatif dengan MCMC pada VAE. Dalam deep learning, gradient diperkirakan lewat batch dataset, tetapi pada RBM dibutuhkan nilai ekspektasi dari distribusi probabilitas yang dimodelkan secara eksplisit
    • Saya bukan ahli, tetapi pernah mendapat sedikit pendidikan formal di bidang Bayesian. Gibbs sering digunakan ketika gradient tidak jelas atau ketika kita ingin merekonstruksi distribusinya sendiri. Setiap node visible bergantung pada node hidden, dan node hidden juga memengaruhi node visible, sehingga gradient menjadi sangat rumit. Jadi jauh lebih sederhana menggunakan gibbs sampling berbasis marginal likelihood
    • Bisa jadi saya salah, tetapi saya rasa itu karena struktur RBM yang undirected. Tidak seperti feed-forward network, kita tidak bisa membangun computational graph
  • 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”

    • Lucu juga mengenali bentuk not dalam area titik 5x9. Rasanya seperti mengimplementasikan semuanya benar-benar dari nol, mirip contoh neural network dari 3Blue1Brown. Jika dipadukan dengan sesuatu seperti Chuck, sekarang program seperti itu pun bisa dibuat berjalan client-side di browser
    • Saya juga penasaran apakah hasil suaranya terdengar musikal
  • 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

    • Saat membaca “tidak ada koneksi internal antarneuron visible/hidden”, saya sempat bingung, lalu apa bedanya dengan MLP? Tapi kemudian saya terlambat sadar bahwa saya harus scroll ke atas ke bagian pendahuluan. Dan saya rasa benar juga bahwa membuat atau memperbaiki implementasi scroll sendiri bukanlah ide yang terlalu bagus