Restricted Boltzmann Machines (RBMs): Structure, Working, and Applications | रिस्ट्रिक्टेड बोल्ट्ज़मैन मशीन (RBM): संरचना, कार्यविधि और अनुप्रयोग


रिस्ट्रिक्टेड बोल्ट्ज़मैन मशीन (RBM): संरचना, कार्यविधि और अनुप्रयोग

Restricted Boltzmann Machine (RBM) डीप लर्निंग में एक प्रमुख जेनरेटिव मॉडल है जो डेटा के वितरण (distribution) को सीखकर नए सैंपल उत्पन्न करने की क्षमता रखता है। RBM का उपयोग फीचर लर्निंग, डायमेंशनलिटी रिडक्शन, कोलैबोरेटिव फिल्टरिंग और डीप बिलीफ नेटवर्क (DBN) के निर्माण में किया जाता है।

📘 RBM क्या है?

Restricted Boltzmann Machine एक stochastic neural network है जो इनपुट डेटा को probabilistic तरीके से encode करता है। यह दो लेयरों से बना होता है:

  • Visible Layer (v): इनपुट डेटा को दर्शाती है।
  • Hidden Layer (h): डेटा की छिपी हुई विशेषताओं (features) को सीखती है।

इन दोनों लेयर्स के बीच पूर्णत: कनेक्शन होते हैं, लेकिन एक ही लेयर के भीतर कोई कनेक्शन नहीं होता — यही इसे “restricted” बनाता है।

⚙️ RBM की संरचना (Architecture):

Visible Units (v₁, v₂, ..., vₙ)
Hidden Units  (h₁, h₂, ..., hₘ)
Weights (W) connecting visible ↔ hidden units
Biases for visible (bᵥ) and hidden (bₕ)

🧮 गणितीय मॉडल:

RBM का उद्देश्य डेटा वितरण को इस प्रकार सीखना है कि यह Energy Function को न्यूनतम करे।

E(v, h) = - Σᵢ bᵢvᵢ - Σⱼ cⱼhⱼ - Σᵢⱼ vᵢWᵢⱼhⱼ

Probability Distribution:

P(v, h) = (1/Z) * exp(-E(v, h))

जहाँ Z = Partition Function, सभी संभव अवस्थाओं का योग।

🔁 प्रशिक्षण प्रक्रिया (Training RBM):

RBM को Contrastive Divergence (CD) एल्गोरिदम से ट्रेन किया जाता है, जो Gibbs Sampling का एक तेज़ अनुमानित रूप है।

प्रशिक्षण के चरण:

  1. इनपुट डेटा को Visible Layer में डालें।
  2. Hidden Layer को सक्रिय करें (using sigmoid activation)।
  3. Hidden activations से Visible लेयर को पुनर्निर्मित करें।
  4. वज़न अपडेट करें ताकि reconstruction error न्यूनतम हो।

📗 Python उदाहरण (RBM Implementation):

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

class RBM:
    def __init__(self, visible, hidden, lr=0.1):
        self.W = np.random.randn(visible, hidden) * 0.1
        self.vb = np.zeros(visible)
        self.hb = np.zeros(hidden)
        self.lr = lr

    def train(self, data, epochs=1000):
        for epoch in range(epochs):
            h_prob = sigmoid(np.dot(data, self.W) + self.hb)
            h_state = h_prob > np.random.rand(*h_prob.shape)
            v_recon = sigmoid(np.dot(h_state, self.W.T) + self.vb)
            h_recon = sigmoid(np.dot(v_recon, self.W) + self.hb)
            self.W += self.lr * ((np.dot(data.T, h_prob) - np.dot(v_recon.T, h_recon)) / data.shape[0])

🧠 RBM के अनुप्रयोग:

  • 🔹 Dimensionality Reduction: PCA के समान कार्य लेकिन nonlinear representation के साथ।
  • 🔹 Collaborative Filtering: Netflix Recommendation System में प्रयोग।
  • 🔹 Deep Belief Networks: DBNs में आधार लेयर के रूप में।
  • 🔹 Feature Extraction: अनसुपरवाइज्ड तरीके से फीचर्स सीखना।

⚖️ RBM बनाम Autoencoder:

पैरामीटरRBMAutoencoder
प्रकृतिStochasticDeterministic
लक्ष्यEnergy MinimizationReconstruction Error Minimization
TrainingContrastive DivergenceBackpropagation
OutputBinary / ProbabilisticContinuous

🚀 2025 में RBM की प्रासंगिकता:

  • Deep Belief Networks (DBNs) में Pre-training के लिए।
  • Generative AI में Probabilistic Modeling के लिए।
  • Quantum Machine Learning में Hybrid RBMs का उपयोग।
  • Sparse Data और Missing Values वाले सिस्टम में Robust Representation।

📙 निष्कर्ष:

Restricted Boltzmann Machine डीप जेनरेटिव मॉडल्स की नींव है। यह डेटा के hidden पैटर्न्स को समझने और नए डेटा सैंपल उत्पन्न करने में सक्षम है। RBMs ने डीप लर्निंग के विकास में वह प्रारंभिक क्रांति लाई जिसने आज GANs और VAEs जैसी आधुनिक तकनीकों को जन्म दिया।

Related Post