प्रतिबंधित बोल्ट्जमान मशीन (RBM) के पीछे अंतर्ज्ञान


15

मैं कौरसेरा पर ज्योफ हिंट्स न्यूरल नेटवर्क्स पाठ्यक्रम के माध्यम से गया और प्रतिबंधित बोल्ट्जमन मशीनों के परिचय के माध्यम से , फिर भी मैं आरबीएम के पीछे के अंतर्ज्ञान को नहीं समझ पाया।

हमें इस मशीन में ऊर्जा की गणना करने की आवश्यकता क्यों है? और इस मशीन में प्रायिकता का क्या उपयोग है? मैंने भी यह वीडियो देखा । वीडियो में, उन्होंने सिर्फ संगणना चरणों से पहले संभाव्यता और ऊर्जा समीकरण लिखे और कहीं भी इसका उपयोग नहीं किया।

उपरोक्त जोड़कर, मुझे यकीन नहीं है कि संभावना क्या है?


मैंने प्रश्न को स्पष्ट करने की कोशिश की है, लेकिन मुझे लगता है कि इसे और अधिक काम करने की आवश्यकता है। आपको यह समझने की ज़रूरत है कि आप क्या समझते हैं, और अधिक विशेष रूप से जहां आप फंस गए हैं, अन्यथा सवाल बहुत व्यापक है।
नील स्लेटर

केवल एक चीज जो सिर में मिली, तीन चरण हैं, पहला सकारात्मक चरण, फिर ऋणात्मक चरण जो वजन के पुनर्निर्माण के बाद है। लेकिन, ऊर्जा और संभावना समारोह के बारे में क्या? यहाँ पर क्या उपयोग है? और कितनी बार हमें यह प्रक्रिया (सकारात्मक चरण -> नकारात्मक चरण> वजन का पुनर्निर्माण) करना है?
बोर्न्यूकोड 17

जवाबों:


5

आरबीएम एक दिलचस्प जानवर हैं। आपके प्रश्न का उत्तर देने के लिए, और उन पर अपनी स्मृति जॉग करने के लिए, मैं आरबीएम प्राप्त करूँगा और व्युत्पत्ति के माध्यम से बात करूँगा। आपने उल्लेख किया कि आप संभावना पर भ्रमित हैं, इसलिए मेरी व्युत्पत्ति संभावना को अधिकतम करने के प्रयास के दृष्टिकोण से होगी। तो चलिए शुरू करते हैं।

RBM में दो अलग-अलग सेट होते हैं, जो दृश्यमान और छिपे हुए होते हैं, मैं क्रमशः और h को सूचित करता हूँ । V और h के एक विशिष्ट विन्यास को देखते हुए , हम इसे प्रायिकता स्थान पर मैप करते हैं।vhvh

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

परिभाषित करने के लिए कुछ और चीजें हैं। सरोगेट फ़ंक्शन जिसे हम एक विशिष्ट कॉन्फ़िगरेशन से प्रायिकता स्थान पर मैप करने के लिए उपयोग करते हैं, उसे ऊर्जा फ़ंक्शन कहा जाता है । जेड लगातार एक सामान्य कारक सुनिश्चित करना है कि हम वास्तव में संभावना अंतरिक्ष करने के लिए नक्शे है। अब हम उस चीज़ को प्राप्त करते हैं जो हम वास्तव में खोज रहे हैं; दृश्यमान न्यूरॉन्स के एक सेट की संभावना, दूसरे शब्दों में, हमारे डेटा की संभावना। जेड = Σ वी वी Σ एच- ( v , ) पी ( v =E(v,h)Z

Z=vVhHeE(v,h)
p(v)=hHp(v,h)=hHeE(v,h)ΣvवीΣएच-(v,)

हालांकि इस समीकरण में बहुत सारी शर्तें हैं, यह सही संभावना समीकरण लिखने के लिए नीचे आता है। उम्मीद है, अब तक, इस आपको पता कारण है कि हम ऊर्जा समारोह की जरूरत प्रायिकता की गणना करना, या क्या अधिक आम तौर पर unnormalized संभावना से किया जाता है में मदद मिली है । विभाजन फ़ंक्शन Z के कारण अप्राकृतिक संभावना का उपयोग किया जाता हैपी(v)*जेडजेड गणना करने के लिए बहुत महंगा है।

अब आइए आरबीएम के वास्तविक शिक्षण चरण के बारे में जानें। संभावना को अधिकतम करने के लिए, प्रत्येक डेटा बिंदु के लिए, हमें बनाने के लिए एक ढाल कदम उठाना होगा । धीरे-धीरे अभिव्यक्ति पाने के लिए यह कुछ गणितीय कलाबाजी करता है। पहली चीज जो हम करते हैं वह है पी ( v ) का लॉग । गणित को संभव बनाने के लिए हम अभी से लॉग प्रोबेबिलिटी स्पेस में काम कर रहे हैं।पी(v)=1पी(v)

आइए के संबंध में ढाल लेना p में paremeters ( v )

लॉग(पी(v))=लॉग[Σएच-(v,)]-लॉग[ΣvवीΣएच-(v,)]
पी(v)

लॉग(पी(v))θ=-1Σ'एच-(v,')Σ'एच-(v,')(v,')θ+1Σv'वीΣ'एच-(v',')Σv'वीΣ'एच-(v',')(v,)θ

अब मैंने यह कागज़ पर किया और सेमी-फ़ाइनल समीकरण को नीचे लिखा, क्योंकि इस साइट पर बहुत अधिक जगह बर्बाद नहीं हुई थी। मैं आपको इन समीकरणों को स्वयं प्राप्त करने की सलाह देता हूं। अब मैं नीचे कुछ समीकरण लिखूंगा जो हमारी व्युत्पत्ति को जारी रखने में मदद करेगा। ध्यान दें कि: , पी ( v ) = Σ एच पी ( v , ) और कहा कि पी ( एच | v ) =जेडपी(v,)=-(v,')पी(v)=Σएचपी(v,)पी(|v)=पी(v,)पी()

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)θ

And there we go, we derived maximum likelihood estimation for RBM's, if you want you can write the last two terms via expectation of their respective terms (conditional, and joint probability).

Notes on energy function and stochasticity of neurons.

As you can see above in my derivation, I left the definition of the energy function rather vague. And the reason for doing that is that many different versions of RBM implement various energy functions. The one that Hinton describes in the lecture linked above, and shown by @Laurens-Meeus is:

E(v,h)=aTvbThvTWh.

It might be easier to reason about the gradient terms above via the expectation form.

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

The expectation of the first term is actually really easy to calculate, and that was the genius behind RBMs. By restricting the connection the conditional expectation simply becomes a forward propagation of the RBM with the visible units clamped. This is the so called wake phase in Boltzmann machines. Now calculating the second term is much harder and usually Monte Carlo methods are utilized to do so. Writing the gradient via average of Monte Carlo runs:

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

Calculating the first term is not hard, as stated above, therefore Monte-Carlo is done over the second term. Monte Carlo methods use random successive sampling of the distribution, to calculate the expectation (sum or integral). Now this random sampling in classical RBM's is defined as setting a unit to be either 0 or 1 based on its probability stochasticly, in other words, get a random uniform number, if it is less than the neurons probability set it to 1, if it is greater than set it to 0.


हम छिपी हुई परत को बाइनरी भी कैसे बनाते हैं? सक्रियण कार्य संचालन के बाद Bcoz, हम 0 और 1 के बीच की सीमा में मान प्राप्त कर रहे हैं।
बोर्नमूकोड

This is usually done by thresholding the activation. Anything above 0.5, would become 1, anything below would be zero.
Armen Aghajanyan

But in this link , in section 3.1: Hinton has stated "the hidden unit turns on if this probability is greater than a random number uniformly distributed between 0 and 1". What does this actually mean? And also in this link, they say "Then the jth unit is on if upon choosing s uniformly distributed random number between 0 and 1 we find that its value is less than sig[j]. Otherwise it is off." I didn't get this.
Born2Code

????? How to say whether that particular unit is turned on or off?
Born2Code

I've added an edit. I suggest reading up on Monte Carlo methods because the stochasticity of this algorithm is derived from there.
Armen Aghajanyan

5

In addition to the existing answers, I would like to talk about this energy function, and the intuition behind that a bit. Sorry if this is a bit long and physical.

The energy function describes a so-called Ising model, which is a model of ferromagnetism in terms of statistical mechanics / quantum mechanics. In statistical mechanics, we use a so-called Hamiltonian operator to describe the energy of a quantum-mechanical system. And a system always tries to be in the state with the lowest energy.

Now, the Ising model basically describes the interaction between electrons with a spin σk of either +1 or -1, in presence of an external magnetic field h. The interaction between two electrons i and j is described by a coefficient Jij. This Hamiltonian (or energy function) is

H^=i,jJijσiσjμjhjσj
where H^ denotes the Hamiltonian. A standard procedure to get from an energy function to the probability, that a system is in a given state (i.e. here: a configuration of spins, e.g. σ1=+1,σ2=1,...) is to use the Boltzmann distribution, which says that at a temperature T, the probability pi of the system to be in a state i with energy Ei is given by
pi=exp(Ei/kT)iexp(Ei/kt)
At this point, you should recognize that these two equations are the exact same equations as in the videos by Hinton and the answer by Armen Aghajanyan. This leads us to the question:

What does the RBM have to do with this quantum-mechanical model of ferromagnetism?

We need to use a final physical quantity: the entropy. As we know from thermodynamics, a system will settle in the state with the minimal energy, which also corresponds to the state with the maximal entropy.

As introduced by Shanon in 1946, in information theory, the entropy H can also be seen as a measure of the information content in X, given by the following sum over all possible states of X:

H(X)=iP(xi)logP(xi)
Now, the most efficient way to encode the information content in X, is to use a way that maximizes the entropy H.

Finally, this is where we get back to RBMs: Basically, we want this RBM to encode as much information as possible. So, as we have to maximize the (information-theoretical) entropy in our RBM-System. As proposed by Hopfield in 1982, we can maximize the information-theoretical entropy exactly like the physical entropy: by modelling the RBM like the Ising model above, and use the same methods to minimize the energy. And that is why we need this strange energy function for in an RBM!

The nice mathematical derivation in Armen Aghajanyan's answer shows everything we need to do, to minimize the energy, thus maximizing entropy and storing / saving as much information as possible in our RBM.

PS: Please, dear physicists, forgive any inaccuracies in this engineer's derivation. Feel free to comment on or fix inaccuracies (or even mistakes).


I saw this video, Just watch the video from that point. how do you get that sampled number? whether we have just run rand() in matlab and obtain it? and then it would be different for each h(i) . Oh nooo! I don't think machine will learn properly.
Born2Code

@Born2Code this is another question. Can you post it as a new question to this site? Please try to add the equations you are talking about to the new question, and explain what parts you don't understand.
hbaderts


0

The answer of @Armen has gave myself a lot of insights. One question hasn't been answered however.

The goal is to maximize the probability (or likelihood) of the v. This is correlated to minimizing the energy function related to v and h:

E(v,h)=aTvbThvTWh

Our variables are a, b and W, which have to be trained. I'm quite sure this training will be the ultimate goal of the RBM.


How do we make hidden layer binary too? Bcoz after the activation function operation, we would be getting values in the range between 0 and 1.
Born2Code

@Born2Code: The activation function gives you the probability that a neuron has value 1. Therefore to "make it binary", you sample from the probabilities calculated for either h or v - in other words you literally do something like h_bin = (rand() < h_val) ? 1 : 0 - this has to be done for each neuron, and each time you want a sample.
Neil Slater

@NeilSlater: but why a random number? Also, whether the random should be generated for each iteration or the same number should be used for all the iterations? one more serious doubt, how many iterations have to be done? I have a training set V, which has only one vector, i.e. v1. With v1, how many times should I have to iterate?
Born2Code

@NeilSlater: One more doubt is, whether the same random number is to be compared with all the values of hidden layer? I know this is such an idiotic question but still
Born2Code

1
It's a random number because that is how you resolve probabilities to binary values. It is a dIfferent number for each neuron inside h or v - you are sampling a vector of binary values for h or v, in order to generate an example that the network "believes" exists - i.e. an example that has a high statistical chance of being representative of the training set. During training, you determine how well it matches an existing training example and adjust weights accordingly.
Neil Slater
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.