Intuisi Di Balik Mesin Boltzmann Terbatas (RBM)


15

Saya mengikuti kursus Neoff Networks Geoff Hinton di Coursera dan juga melalui pengenalan mesin boltzmann terbatas , masih saya tidak mengerti intuisi di balik RBM.

Mengapa kita perlu menghitung energi di mesin ini? Dan apa gunanya probabilitas di mesin ini? Saya juga melihat video ini . Dalam video tersebut, ia hanya menulis persamaan probabilitas dan energi sebelum langkah perhitungan dan tampaknya tidak menggunakannya di mana pun.

Menambah di atas, saya tidak yakin untuk apa fungsi kemungkinan?


Saya sudah mencoba merapikan pertanyaan, tetapi saya pikir itu perlu lebih banyak pekerjaan. Anda perlu menjelaskan apa yang Anda lakukan mengerti, dan lebih khusus di mana Anda terjebak, jika pertanyaannya terlalu luas.
Neil Slater

Satu-satunya hal yang masuk ke kepala adalah ada tiga langkah, pertama fase positif, kemudian fase negatif yang diikuti oleh rekonstruksi bobot. Tapi, bagaimana dengan fungsi energi dan probabilitas? apa gunanya di sini? dan berapa kali kita harus melakukan proses ini (fase positif -> fase negatif> rekonstruksi bobot)?
Born2Code

Jawaban:


5

RBM adalah binatang yang menarik. Untuk menjawab pertanyaan Anda, dan menyiarkan ingatan saya pada mereka, saya akan menurunkan RBM dan berbicara melalui derivasi. Anda menyebutkan bahwa Anda bingung tentang kemungkinannya, jadi derivasi saya akan dari perspektif mencoba memaksimalkan kemungkinan. Jadi mari kita mulai.

RBM mengandung dua set neuron yang berbeda, terlihat dan tersembunyi, saya akan menunjukkan masing-masing dan h . Diberikan konfigurasi spesifik v dan h , kami memetakannya ruang probabilitas.vhvh

p(v,h)=eE(v,h)Z

Ada beberapa hal yang lebih untuk didefinisikan. Fungsi pengganti yang kita gunakan untuk memetakan dari konfigurasi spesifik ke ruang probabilitas disebut fungsi energi . The Z konstan adalah faktor normalisasi untuk memastikan bahwa kita benar-benar memetakan ke ruang probabilitas. Sekarang mari kita menuju apa yang sebenarnya kita cari; probabilitas satu set neuron yang terlihat, dengan kata lain, probabilitas data kami. Z = v V h H e - E ( v , h ) p ( v )E(v,h)Z

Z=vVhHeE(v,h)
p(v)=hHp(v,h)=hHeE(v,h)vVhHeE(v,h)

Meskipun ada banyak istilah dalam persamaan ini, itu hanya datang untuk menuliskan persamaan probabilitas yang benar. Mudah-mudahan, sejauh ini, ini telah membantu Anda menyadari mengapa kita perlu fungsi energi untuk menghitung probabilitas, atau apa yang dilakukan lebih biasanya unnormalized probabilitas . Probabilitas yang tidak dinormalkan digunakan karena fungsi partisi Z sangat mahal untuk dihitung.p(v)ZZ

Sekarang mari kita ke fase pembelajaran RBM yang sebenarnya. Untuk memaksimalkan kemungkinan, untuk setiap titik data, kita harus mengambil langkah gradien untuk membuat . Untuk mendapatkan ekspresi gradien diperlukan beberapa akrobat matematika. Hal pertama yang kita lakukan adalah mengambil log p ( v ) . Kami akan beroperasi di ruang probabilitas log mulai sekarang untuk membuat matematika layak.p(v)=1p(v)

Mari kita mengambil gradien sehubungan dengan parameter di p ( v )

log(p(v))=log[hHeE(v,h)]log[vVhHeE(v,h)]
p(v)

log(p(v))θ=1hHeE(v,h)hHeE(v,h)E(v,h)θ+1vVhHeE(v,h)vVhHeE(v,h)E(v,h)θ

Sekarang saya melakukan ini di atas kertas dan menulis persamaan semifinal agar tidak membuang banyak ruang di situs ini. Saya sarankan Anda menurunkan sendiri persamaan ini. Sekarang saya akan menulis beberapa persamaan yang akan membantu melanjutkan derivasi kami. Perhatikan bahwa: , p ( v ) = Σ h H p ( v , h ) dan p ( h | v ) =Zp(v,h)=eE(v,h)p(v)=hHp(v,h)p(h|v)=p(v,h)p(h)

log(p(v))θ=1p(v)hHp(v,h)E(v,h)θ+vVhHp(v,h)E(v,h)θlog(p(v))θ=hHp(h|v)E(v,h)θ+vVhHp(v,h)E(v,h)θ

Dan begitulah, kami memperoleh estimasi kemungkinan maksimum untuk RBM, jika Anda mau, Anda bisa menulis dua istilah terakhir melalui ekspektasi istilah masing-masing (kondisional, dan probabilitas gabungan).

Catatan tentang fungsi energi dan stokastik neuron.

Seperti yang Anda lihat di atas dalam derivasi saya, saya meninggalkan definisi fungsi energi agak kabur. Dan alasan untuk melakukan itu adalah bahwa banyak versi RBM yang berbeda mengimplementasikan berbagai fungsi energi. Salah satu yang dijelaskan Hinton dalam kuliah yang ditautkan di atas, dan ditunjukkan oleh @ Laurens-Meeus adalah:

E(v,h)=aTvbThvTWh.

Mungkin lebih mudah untuk beralasan tentang istilah gradien di atas melalui formulir harapan.

log(p(v))θ=Ep(h|v)E(v,h)θ+Ep(v,h)E(v,h)θ

Harapan dari istilah pertama sebenarnya sangat mudah untuk dihitung, dan itu adalah kejeniusan di balik RBM. Dengan membatasi koneksi harapan bersyarat hanya menjadi propagasi ke depan dari RBM dengan unit yang terlihat dijepit. Ini adalah fase bangun dalam mesin Boltzmann. Sekarang menghitung istilah kedua jauh lebih sulit dan biasanya metode Monte Carlo digunakan untuk melakukannya. Menulis gradien melalui rata-rata berjalan Monte Carlo:

log(p(v))θE(v,h)θp(h|v)+E(v,h)θp(v,h)

Menghitung term pertama tidak sulit, seperti yang disebutkan di atas, oleh karena itu Monte-Carlo dilakukan selama term kedua. Metode Monte Carlo menggunakan sampling acak berurutan dari distribusi, untuk menghitung harapan (jumlah atau integral). Sekarang pengambilan sampel acak dalam RBM klasik ini didefinisikan sebagai pengaturan suatu unit menjadi 0 atau 1 berdasarkan probabilitasnya secara stokastik, dengan kata lain, dapatkan angka seragam acak, jika kurang dari probabilitas neuron set ke 1, jika itu lebih besar dari set ke 0.


Bagaimana kita membuat layer biner juga tersembunyi? Bcoz setelah operasi fungsi aktivasi, kita akan mendapatkan nilai dalam kisaran antara 0 dan 1.
Born2Code

Ini biasanya dilakukan dengan mengatur aktivasi. Apa pun di atas 0,5, akan menjadi 1, apa pun di bawah ini akan menjadi nol.
Armen Aghajanyan

Tetapi dalam tautan ini , di bagian 3.1: Hinton telah menyatakan "unit tersembunyi menyala jika probabilitas ini lebih besar dari angka acak yang terdistribusi secara seragam antara 0 dan 1". Apa arti sebenarnya? Dan juga di tautan ini , mereka berkata, "Kemudian unit j aktif jika memilih nomor acak terdistribusi seragam antara 0 dan 1 kita menemukan bahwa nilainya kurang dari sig [j]. Kalau tidak mati." Saya tidak mendapatkan ini.
Born2Code

????? Bagaimana mengatakan apakah unit tertentu dihidupkan atau dimatikan?
Born2Code

Saya telah menambahkan hasil edit. Saya sarankan membaca tentang metode Monte Carlo karena stokastik dari algoritma ini berasal dari sana.
Armen Aghajanyan

5

Selain jawaban yang ada, saya ingin berbicara tentang fungsi energi ini, dan intuisi di balik itu sedikit. Maaf jika ini agak panjang dan fisik.

Fungsi energi menggambarkan model Ising , yang merupakan model feromagnetisme dalam hal mekanika statistik / mekanika kuantum. Dalam mekanika statistik, kami menggunakan operator Hamiltonian untuk menggambarkan energi sistem mekanika kuantum. Dan suatu sistem selalu berusaha berada dalam keadaan dengan energi terendah.

σkhijJij

H^=i,jJijσiσjμjhjσj
H^σ1=+1,σ2=1,...TpiiEi
pi=exp(Ei/kT)iexp(Ei/kt)

Apa hubungan RBM dengan model feromagnetisme kuantum-mekanis ini?

Kita perlu menggunakan kuantitas fisik akhir: entropi. Seperti yang kita ketahui dari termodinamika, sebuah sistem akan menetap di negara dengan energi minimal, yang juga sesuai dengan keadaan dengan entropi maksimal.

HXX

H(X)=-sayaP(xsaya)catatanP(xsaya)
XH

Akhirnya , ini adalah di mana kita kembali ke RBMs: Pada dasarnya, kami ingin RBM ini untuk encode sebagai banyak informasi sebanyak mungkin. Jadi, karena kita harus memaksimalkan entropi (informasi-teoretis) dalam Sistem-RBM kita. Seperti yang diusulkan oleh Hopfield pada tahun 1982, kita dapat memaksimalkan entropi informasi-teoretis persis seperti entropi fisik: dengan memodelkan RBM seperti model Ising di atas, dan menggunakan metode yang sama untuk meminimalkan energi. Dan itulah mengapa kita membutuhkan fungsi energi aneh ini dalam RBM!

Derivasi matematika yang bagus dalam jawaban Armen Aghajanyan menunjukkan semua yang perlu kita lakukan, untuk meminimalkan energi, sehingga memaksimalkan entropi dan menyimpan / menyimpan informasi sebanyak mungkin dalam RBM kami.

PS: Tolong, fisikawan yang terkasih, maafkan segala ketidakakuratan dalam derivasi insinyur ini. Jangan ragu untuk mengomentari atau memperbaiki ketidakakuratan (atau bahkan kesalahan).


Saya melihat video ini , Tonton saja videonya sejak saat itu. bagaimana Anda mendapatkan nomor sampel itu? apakah kita baru saja menjalankan rand () di matlab dan mendapatkannya? dan kemudian akan berbeda untuk setiap h (i). Oh tidak! Saya tidak berpikir mesin akan belajar dengan benar.
Born2Code

@ Born2Code ini adalah pertanyaan lain. Bisakah Anda mempostingnya sebagai pertanyaan baru ke situs ini? Coba tambahkan persamaan yang Anda bicarakan ke pertanyaan baru, dan jelaskan bagian apa yang tidak Anda mengerti.
hbaderts


0

Jawaban @Armen telah memberi saya banyak wawasan. Namun satu pertanyaan belum dijawab.

vvh

E(v,h)=-SebuahTv-bTh-vTWh

SebuahbW


Bagaimana kita membuat layer biner juga tersembunyi? Bcoz setelah operasi fungsi aktivasi, kita akan mendapatkan nilai dalam kisaran antara 0 dan 1.
Born2Code

hvh_bin = (rand() < h_val) ? 1 : 0

@ NeilSlater: tapi mengapa angka acak? Juga, apakah acak harus dihasilkan untuk setiap iterasi atau angka yang sama harus digunakan untuk semua iterasi? satu lagi keraguan yang serius, berapa banyak iterasi yang harus dilakukan? Saya memiliki set pelatihan V, yang hanya memiliki satu vektor, yaitu v1. Dengan v1, berapa kali saya harus mengulang?
Born2Code

@ NeilSlater: Satu lagi keraguan adalah, apakah nomor acak yang sama harus dibandingkan dengan semua nilai lapisan tersembunyi? Saya tahu ini adalah pertanyaan yang bodoh tapi tetap saja
Born2Code

1
Ini adalah angka acak karena itulah cara Anda menyelesaikan probabilitas untuk nilai-nilai biner. Ini adalah angka yang berbeda untuk setiap neuron di dalam hatau v- Anda mengambil sampel vektor nilai biner untuk hatau v, untuk menghasilkan contoh bahwa jaringan "percaya" ada - yaitu contoh yang memiliki peluang statistik tinggi untuk menjadi wakil dari perlengkapan latihan. Selama pelatihan, Anda menentukan seberapa cocok dengan contoh pelatihan yang ada dan menyesuaikan bobot sesuai.
Neil Slater
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.