Mesin Boltzmann yang Sangat Kecil
(eoinmurray.info)- 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
Teringat masa pada 1990 ketika membuat “neuron” dengan array pointer void di C murni untuk membangun mesin Boltzmann dan perceptron
Saat itu, hal-hal yang dilakukan sebagai “AI” hanya sebatas menebak nada berikutnya dari melodi MIDI, atau mengenali bentuk not penuh, not setengah, not seperempat, dan not seperdelapan pada kisi titik 5×9; akurasi 85% sudah dianggap “cukup bagus”
Membaca not dari partitur bergaris terdengar seperti proyek yang menarik. Apalagi kalau dibuat sendiri dari awal seperti contoh jaringan saraf angka dari 3Blue1Brown[1]
Jika dipadukan dengan sesuatu seperti Chuck[2], dengan teknologi sekarang kita bahkan bisa membuat aplikasi yang sepenuhnya berjalan di sisi klien saja
[1] - https://www.3blue1brown.com/lessons/neural-networks
[2] - https://chuck.stanford.edu/
Penasaran apakah keluarannya terdengar seperti musik
Sejauh yang saya pahami, Harmonium (Smolensky) adalah restricted Boltzmann machine pertama, tetapi alih-alih meminimalkan “energi”, ia memaksimalkan “harmoni”
Ketika Smolensky, Hinton, dan Rummelhart berkolaborasi, sepertinya mereka menyebutnya “goodness of fit”. Makalah Harmonium[1] sangat enak dibaca, Hinton tentu saja menjadi superstar, dan Smolensky menulis buku-buku panjang tentang linguistik. Saya penasaran apakah ada yang tahu lebih banyak tentang sejarah ini
[1] https://stanford.edu/~jlmcc/papers/PDP/Volume%201/Chap6_PDP8...
Tulisan menarik tentang David Ackley: https://news.unm.edu/news/24-nobel-prize-in-physics-cited-gr...
T2 Tile Project juga wajib dilihat
Nilai mahasiswa pascasarjana sering diremehkan, padahal sebenarnya kontribusinya sangat besar dan kemudian mereka mengembangkan riset itu lebih jauh. Riset telah mendorong begitu banyak hal ke depan; saya tidak mengerti mengapa AS memandang riset seolah-olah pemborosan
Saya salah membaca judulnya sebagai “A Tiny Boltzmann Brain”[0]
Pikiran alami saya langsung memecahkan teka-tekinya. Saya mengira ini kasus ketika bobot yang dibuat secara acak dimasukkan ke model yang sangat kecil, lalu diuji apakah benar-benar melakukan sesuatu yang berguna. Lagi pula, makin kecil modelnya, makin besar peluang generasi acak murni menghasilkan sesuatu yang menarik relatif terhadap ukurannya
Saya menerima koreksinya, tapi tidak patah semangat. Saya mengusulkan kelas model baru bernama “Unbiased-Architecture Instant Boltzmann Model” (UA-IBM). Suatu hari, jika ada komputer kuantum yang cukup besar, kita bisa menetapkan seluruh dataset sebagai batasan klasik bagi model yang didefinisikan oleh N nilai terserialisasi yang merepresentasikan semua parameter dan pengaturan struktur. Lalu sistem kuantum dengan N qubit menempatkan semua kemungkinan parameter dan struktur dalam keadaan superposisi kuantum, menjalankan satu langkah inferensi atas seluruh sampel klasik, kemudian meruntuhkan hasilnya untuk mengembalikan parameter dan struktur model terbaik atau hampir terbaik dalam bentuk klasik
Saya penasaran apakah ada yang punya beberapa qubit cadangan untuk mencoba ini. Ironis juga: semuanya kuantum, tetapi terlalu licin sehingga sejauh ini hampir belum bisa kita manfaatkan
Sebagai latar fiksi ilmiah, bisa dibayangkan spesies alien yang berevolusi memiliki sensor kuantum sekali pakai, yang kemudian berkembang menjadi seluruh sistem indra dan saraf kuantum, lalu sejak awal berevolusi menjadi kecerdasan kuantum sepenuhnya. Seperti apa masyarakat dan lintasan teknologinya? Semoga mereka berada di orbit dekat lubang hitam, supaya kemajuan eksplosifnya belum mengancam kita. Lalu suatu hari mereka lolos dari sumur gravitasi…
[0] https://en.wikipedia.org/wiki/Boltzmann_brain
Penjelasannya bagus. Sebagai catatan, entah kenapa scroll mouse terlalu sensitif
Saya menduga swipe di mobile baik-baik saja, tapi belum saya cek. Setiap kali mencoba menggulir, tampilannya melompat dari “halaman” pertama ke “halaman” terakhir, lalu kembali lagi. Untungnya input keyboard berfungsi, jadi saya bisa membaca seluruh tulisan
Kalau saya memahaminya dengan benar, alih-alih memakai forward propagation dan backpropagation berbasis gradien seperti jaringan saraf yang akrab sekarang, tampaknya perhitungan pembaruan bobot membutuhkan Gibbs sampling
Saya penasaran apakah ada yang mengerti alasannya
Nilai ini diperlukan untuk menghitung gradien log-likelihood, tetapi mengintegralkan distribusinya sulit ditangani. Mirip seperti penggunaan MCMC untuk mengambil sampel representatif di VAE. Pada jaringan saraf ala deep learning, kita mengestimasi gradien atas batch dataset, bukan atas distribusi probabilitas yang dimodelkan secara eksplisit
Biasanya Gibbs dipakai ketika gradien langsung tidak sederhana, atau ketika kita ingin mereproduksi distribusinya sendiri, bukan sekadar estimasi titik. Sebaliknya, ia berguna ketika ada likelihood marginal/kondisional yang mudah disampling. Karena setiap node tampak bergantung pada setiap node tersembunyi dan setiap node tersembunyi memengaruhi semua node tampak, gradiennya menjadi sangat berantakan; karena itu Gibbs sampling yang menyesuaikan berdasarkan likelihood marginal menjadi jauh lebih sederhana
Jadi kita tidak bisa membangun graf komputasi dengan cara yang sama seperti jaringan saraf feed-forward
Penjelasan yang rapi dan bagus. Banyak kenangan lama muncul kembali
Promosi yang agak memalukan, tapi beberapa tahun lalu saya pernah membuat visualisasi pelatihan RBM: https://www.youtube.com/watch?v=lKAy_NONg3g
Demonya keren. Lima belas tahun lalu di universitas saya mengikuti kuliah jaringan saraf Geoff Hinton, dan ia menjelaskan mesin Boltzmann selama beberapa kuliah
Kalimat “restricted Boltzmann machine adalah kasus khusus ketika neuron tampak dan neuron tersembunyi tidak saling terhubung” itu salah. Ungkapan ini terdengar seolah neuron tampak tidak terhubung dengan neuron tersembunyi
Formulasi yang benar adalah “neuron tampak tidak saling terhubung satu sama lain, dan neuron tersembunyi juga tidak saling terhubung satu sama lain”. Atau bisa juga, “neuron tampak dan neuron tersembunyi masing-masing tidak memiliki koneksi di dalam tipe mereka sendiri”
Sunting: sudahlah. Saya tidak sadar harus menggulir ke atas untuk melihat ringkasan pengantar
Seperti komentar 0xTJ yang [flagged][dead], memang tepat bahwa upaya membajak atau menciptakan ulang scrolling bukanlah hal yang baik