प्रतिबंधित बोल्ट्जमैन मशीन

एक प्रतिबंधित बोल्ट्ज़मैन मशीन (आरबीएम) एक जनरेटिव मॉडल स्टोकेस्टिक तंत्रिका नेटवर्क कृत्रिम तंत्रिका नेटवर्क है जो अपने इनपुट के सेट पर संभाव्यता वितरण सीख सकता है।

आरबीएम का प्रारंभ में 1986 में पॉल स्मोलेंस्की द्वारा हारमोनियम नाम के तहत आविष्कार किया गया था और जेफ्री हिंटन और सहयोगियों द्वारा 2000 के मध्य में उनके लिए तेजी से सीखने वाले एल्गोरिदम का आविष्कार करने के बाद प्रमुखता में वृद्धि हुई। आरबीएम ने आयाम में कमी वर्गीकरण सहयोगी फ़िल्टरिंग फीचर लर्निंग विषय मॉडलिंग और यहां तक ​​कि कई शरीर क्वांटम यांत्रिकी में आवेदन पाया है।  कार्य के आधार पर उन्हें पर्यवेक्षित या अप्रशिक्षित विधियों से प्रशिक्षित किया जा सकता है।

जैसा कि उनके नाम से पता चलता है आरबीएम बोल्ट्जमैन मशीनों का एक प्रकार है इस प्रतिबंध के साथ कि उनके न्यूरॉन्स को एक द्विदलीय ग्राफ बनाना चाहिए: इकाइयों के दो समूहों में से प्रत्येक से नोड्स की एक जोड़ी (सामान्यतः "दृश्यमान" और "छिपी हुई" के रूप में संदर्भित) इकाइयाँ क्रमशः) उनके बीच एक सममित संबंध हो सकता है और समूह के अंदर नोड्स के बीच कोई संबंध नहीं है। इसके विपरीत "अप्रतिबंधित" बोल्ट्जमैन मशीनों में छिपी हुई इकाइयों के बीच संबंध हो सकते हैं। यह प्रतिबंध बोल्ट्जमैन मशीनों के सामान्य वर्ग विशेष रूप से ग्रेडिएंट-आधारित विरोधाभासी विचलन एल्गोरिथम की तुलना में अधिक कुशल प्रशिक्षण एल्गोरिदम की अनुमति देता है।

प्रतिबंधित बोल्ट्जमैन मशीनों का उपयोग गहन शिक्षण नेटवर्क में भी किया जा सकता है। विशेष रूप से, गहन विश्वास नेटवर्क आरबीएम को संग्रह करके और वैकल्पिक रूप से परिणामी गहरे नेटवर्क को प्रवणता डिसेंट और बैकप्रोपैगेशन के साथ ठीक-ठीक करके बनाया जा सकता है।

संरचना
आरबीएम के मानक प्रकार में बाइनरी-वैल्यू (बूलियन बीजगणित) छिपी हुई और दृश्यमान इकाइयाँ होती हैं और इसमें आकार $$m\times n$$ के भार $$W$$ का एक आव्यूह होता है। आव्यूह का प्रत्येक वजन तत्व $$(w_{i,j})$$ दृश्य (इनपुट) इकाई $$v_i$$ और छिपी हुई इकाई $$h_j$$ के बीच संबंध से जुड़ा है। इसके अतिरिक्त $$v_i$$ के लिए पूर्वाग्रह भार (ऑफ़सेट) $$a_i$$ और $$h_j$$ के लिए $$b_j$$ हैं। भार और पक्षपात को देखते हुए विन्यास की ऊर्जा (बूलियन वैक्टर की जोड़ी) $(v,h)$ को इस रूप में परिभाषित किया गया है


 * $$E(v,h) = -\sum_i a_i v_i - \sum_j b_j h_j -\sum_i \sum_j v_i w_{i,j} h_j$$

या आव्यूह संकेतन में


 * $$E(v,h) = -a^{\mathrm{T}} v - b^{\mathrm{T}} h -v^{\mathrm{T}} W h.$$

यह ऊर्जा कार्य हॉपफील्ड नेटवर्क के अनुरूप है। सामान्य बोल्ट्जमैन मशीनों की तरह दृश्यमान और छिपे हुए वैक्टर के लिए संयुक्त संभाव्यता वितरण को ऊर्जा कार्य के संदर्भ में निम्नानुसार परिभाषित किया गया है,
 * $$P(v,h) = \frac{1}{Z} e^{-E(v,h)}$$

जहां $$Z$$ एक विभाजन कार्य है जिसे सभी संभावित विन्यास पर $$e^{-E(v,h)}$$ के योग के रूप में परिभाषित किया गया है जिसे यह सुनिश्चित करने के लिए सामान्यीकरण स्थिरांक के रूप में व्याख्या किया जा सकता है कि संभावनाएं 1 के समान हैं। दृश्यमान की सीमांत संभावना सदिश $$P(v,h)$$ सभी संभावित छिपे हुए परत विन्यासों का योग है


 * $$P(v) = \frac{1}{Z} \sum_{\{h\}} e^{-E(v,h)}$$,

और इसके विपरीत। चूंकि आरबीएम की अंतर्निहित ग्राफ संरचना द्विदलीय है (जिसका अर्थ है कि कोई इंट्रा-लेयर कनेक्शन नहीं है) छिपी हुई इकाई सक्रियता पारस्परिक रूप से स्वतंत्र होती है जिसे दृश्य इकाई सक्रियता दी जाती है। इसके विपरीत छिपी हुई इकाई सक्रियता को देखते हुए दृश्य इकाई सक्रियता पारस्परिक रूप से स्वतंत्र हैं। यही है m दृश्यमान इकाइयों और n छिपी इकाइयों के लिए, दृश्य इकाइयों $v$ की विन्यास की सशर्त संभावना, छिपी हुई इकाइयों $h$ की विन्यास दी गई है, है


 * $$P(v|h) = \prod_{i=1}^m P(v_i|h)$$.

इसके विपरीत $h$ दिए गए $v$ की सशर्त संभावना है


 * $$P(h|v) = \prod_{j=1}^n P(h_j|v)$$.

व्यक्तिगत सक्रियण संभावनाएँ द्वारा दी गई हैं


 * $$P(h_j=1|v) = \sigma \left(b_j + \sum_{i=1}^m w_{i,j} v_i \right)$$ और $$\,P(v_i=1|h) = \sigma \left(a_i + \sum_{j=1}^n w_{i,j} h_j \right)$$

जहाँ $$\sigma$$ लॉजिस्टिक सिग्मॉइड को दर्शाता है।

प्रतिबंधित बोल्ट्जमैन मशीन की दृश्य इकाइयाँ बहुराष्ट्रीय हो सकती हैं, हालाँकि छिपी हुई इकाइयाँ बर्नौली हैं। इस मामले में दृश्य इकाइयों के लिए लॉजिस्टिक कार्य को सॉफ्टमैक्स कार्य द्वारा प्रतिस्थापित किया जाता है


 * $$P(v_i^k = 1|h) = \frac{\exp(a_i^k + \Sigma_j W_{ij}^k h_j)} {\Sigma_{k'=1}^K \exp(a_i^{k'} + \Sigma_j W_{ij}^{k'} h_j)}$$

जहाँ K दृश्यमान मानों के असतत मानों की संख्या है। वे विषय मॉडलिंग और अनुशंसा प्रणाली में प्रयुक्त होते हैं।

अन्य मॉडलों से संबंध
प्रतिबंधित बोल्ट्जमैन मशीनें बोल्ट्जमैन मशीनों और मार्कोव यादृच्छिक क्षेत्र का एक विशेष स्थिति है। उनका ग्राफिकल मॉडल कारक विश्लेषण के अनुरूप है।

प्रशिक्षण एल्गोरिथ्म
प्रतिबंधित बोल्ट्जमैन मशीनों को कुछ प्रशिक्षण सेट $$V$$ (एक आव्यूह जिसकी प्रत्येक पंक्ति को एक दृश्य सदिश $$v$$ के रूप में माना जाता है) को सौंपी गई संभावनाओं के उत्पाद को अधिकतम करने के लिए प्रशिक्षित किया जाता है।


 * $$\arg\max_W \prod_{v \in V} P(v)$$

या समतुल्य रूप से, $$V$$ से यादृच्छिक रूप से चुने गए प्रशिक्षण नमूने $$v$$ की अपेक्षित लॉग संभावना को अधिकतम करने के लिए है ।

.
 * $$\arg\max_W \mathbb{E} \left[ \log P(v)\right]$$

एल्गोरिथम का उपयोग अधिकांशतः आरबीएम को प्रशिक्षित करने के लिए किया जाता है अर्थात वज़न आव्यूह को अनुकूलित करने के लिए $$W$$, जेफ्री हिंटन के कारण कंट्रास्टिव डायवर्जेंस (सीडी) एल्गोरिदम है जिसे मूल रूप से पीओई (विशेषज्ञों के उत्पाद) मॉडल को प्रशिक्षित करने के लिए विकसित किया गया था।

एल्गोरिदम गिब्स नमूनाकरण करता है और वजन अद्यतन की गणना करने के लिए ग्रेडियेंट वंश प्रक्रिया के अंदर प्रयोग किया जाता है (जिस तरह बैकप्रोपैगेशन का उपयोग ऐसी प्रक्रिया के अंदर किया जाता है जब फीडफॉरवर्ड न्यूरल नेट को प्रशिक्षित किया जाता है)।

एकल नमूने के लिए मूल एकल-चरण विपरीत विचलन (CD-1) प्रक्रिया को निम्नानुसार संक्षेपित किया जा सकता है:


 * 1) एक प्रशिक्षण नमूना लें $v$, छिपी हुई इकाइयों की संभावनाओं की गणना करें और इस संभाव्यता वितरण से एक छिपे हुए सक्रियण सदिश $h$ का नमूना लें ।
 * 2) $v$ और $h$ के बाहरी उत्पाद की गणना करें और इसे सकारात्मक प्रवणता कहते हैं।।
 * 3) $h$ से, दृश्य इकाइयों के एक पुनर्निर्माण $v'$ का नमूना लें फिर इससे छिपी हुई सक्रियता $h'$ का नमूना लें। (गिब्स नमूनाकरण कदम)
 * 4) $v'$ और $h'$ के बाहरी गुणनफल की गणना करें और इसे ऋणात्मक प्रवणता कहते हैं।
 * 5) वेट आव्यूह $$W$$ को अपडेट होने दें सकारात्मक प्रवणता घटा ऋणात्मक प्रवणता टाइम्स कुछ लर्निंग रेट: $$\Delta W = \epsilon (vh^\mathsf{T} - v'h'^\mathsf{T})$$
 * 6) पूर्वाग्रहों को अपडेट करें $a$ और $b$ समान रूप से: $$\Delta a = \epsilon (v - v')$$, $$\Delta b = \epsilon (h - h')$$.

हिंटन द्वारा लिखित प्रशिक्षण आरबीएम के लिए एक व्यावहारिक मार्गदर्शिका उनके होमपेज पर पाई जा सकती है।

स्टैक्ड प्रतिबंधित बोल्ट्जमैन मशीन

 * स्टैक्ड प्रतिबंधित बोल्ट्जमैन मशीनों और आरबीएम के बीच का अंतर यह है कि आरबीएम के पास एक परत के अंदर पार्श्व कनेक्शन हैं जो विश्लेषण को ट्रैक्टेबल बनाने के लिए निषिद्ध हैं। दूसरी ओर स्टैक्ड बोल्ट्ज़मैन में तीन वर्गों को पहचानने के लिए सममित भार और एक पर्यवेक्षित ठीक-ट्यून वाली शीर्ष परत के साथ एक असुरक्षित तीन-परत नेटवर्क का संयोजन होता है।
 * स्टैक्ड बोल्ट्जमैन का उपयोग प्राकृतिक भाषाओं को समझने दस्तावेजों को पुनः प्राप्त करने छवि निर्माण और वर्गीकरण के लिए है। इन कार्यों को अप्रशिक्षित पूर्व-प्रशिक्षण और/या पर्यवेक्षित फ़ाइन-ट्यूनिंग के साथ प्रशिक्षित किया जाता है। आरबीएम के कनेक्शन के लिए दो-तरफ़ा असममित परत के साथ अप्रत्यक्ष सममित शीर्ष परत के विपरीत प्रतिबंधित बोल्ट्जमैन का कनेक्शन असममित भार के साथ तीन-परत है और दो नेटवर्क एक में संयुक्त होते हैं।
 * स्टैक्ड बोल्ट्जमैन आरबीएम के साथ समानताएं साझा करता है स्टैक्ड बोल्ट्जमैन के लिए न्यूरॉन एक स्टोचैस्टिक बाइनरी हॉपफील्ड न्यूरॉन है जो प्रतिबंधित बोल्ट्जमैन मशीन के समान है। प्रतिबंधित बोल्ट्जमैन और आरबीएम दोनों से ऊर्जा गिब के संभाव्यता माप द्वारा दी गई है: $$E = -\frac12\sum_{i,j}{w_{ij}{s_i}{s_j}}+\sum_i{\theta_i}{s_i}$$. प्रतिबंधित बोल्ट्जमान की प्रशिक्षण प्रक्रिया आरबीएम के समान है। प्रतिबंधित बोल्ट्जमैन ट्रेन एक समय में एक परत और 3-सेगमेंट पास के साथ अनुमानित संतुलन स्थिति, वापस प्रचार नहीं कर रहा है। प्रतिबंधित बोल्ट्जमैन वर्गीकरण और मान्यता के लिए पूर्व-प्रशिक्षण के लिए अलग-अलग आरबीएम पर पर्यवेक्षित और गैर-पर्यवेक्षित दोनों का उपयोग करता है। प्रशिक्षण गिब्स नमूने के साथ विपरीत विचलन Δwij = e*(pij - p'ij) का उपयोग करता है
 * प्रतिबंधित बोल्ट्जमैन की ताकत यह है कि यह एक गैर-रैखिक परिवर्तन करता है इसलिए इसका विस्तार करना आसान है और यह सुविधाओं की एक श्रेणीबद्ध परत दे सकता है। कमी यह है कि इसमें पूर्णांक और वास्तविक-मूल्यवान न्यूरॉन्स की जटिल गणना होती है। यह किसी भी कार्य के प्रवणता का अनुसरण नहीं करता है इसलिए विपरीत विचलन को अधिकतम संभावना के सन्निकटन में सुधार किया गया है।

यह भी देखें

 * ऑटो ऑटोएन्कोडर
 * हेल्महोल्ट्ज़ मशीन

बाहरी संबंध

 * Introduction to Restricted Boltzmann Machines. Edwin Chen's blog, July 18, 2011.
 * . Deeplearning4j Documentation
 * . Deeplearning4j Documentation
 * Python implementation of Bernoulli RBM and tutorial
 * SimpleRBM is a very small RBM code (24kB) useful for you to learn about how RBMs learn and work.
 * Julia implementation of Restricted Boltzmann machines: https://github.com/cossio/RestrictedBoltzmannMachines.jl