Ugrás a tartalomhoz

Boltzmann machine

A Wikiszótárból, a nyitott szótárból


Főnév

Boltzmann machine (tsz. Boltzmann machines)

  1. (informatika, mesterséges intelligencia) A Boltzmann Machine (magyarul: Boltzmann-gép) egy generatív mesterséges neurális hálózat, amelyet a valószínűségi modellezés és energiaminimalizálás elvei szerint működtetnek. Célja, hogy megtanulja az adatok eloszlását, és képes legyen új mintákat generálni, vagy hibás adatokat rekonstruálni.

Nevét Ludwig Boltzmann után kapta, akinek a statisztikus fizikában használt eloszlása alapján épül a működése.



🎯 Mire való?

  • Generatív modellezés (új adatok előállítása tanult eloszlás alapján)
  • Képi, szöveges, bináris adatok mintázatainak megtanulása
  • Hiányzó adatok becslése
  • Dimenziócsökkentés, tömörítés
  • Deep learning hálózatok (pl. Deep Belief Network) része



🧩 Alapfelépítés

A Boltzmann-gép kétféle bináris neuront tartalmaz:

  1. Látható egységek (visible units) – ezek képviselik az adatokat (pl. pixelek)
  2. Rejtett egységek (hidden units) – ezek segítenek modellezni a minták közti kapcsolatot

Minden neuron össze van kötve minden másikkal (teljesen kapcsolt gráf), kivéve önmagával.



⚙️ Működés alapelve

A hálózat energiát rendel minden állapothoz, és a tanulás célja, hogy:

  • minimális energiájú állapotokat preferálja
  • az adathoz illő állapotoknak legyen alacsony az energiája

Az energiafüggvény:

ahol:

  • a látható egységek értéke
  • a rejtett egységek értéke
  • a súlyok
  • a bias értékek

A hálózat célja: megtanulni a súlyokat úgy, hogy a tanulási adatokhoz tartozó állapotok valószínűsége maximális legyen.



🔁 Tanulási folyamat – sztochasztikus gradiens módszer

  1. A hálózat elkezd egy véletlenszerű állapotból.

  2. Egy Gibbs-sampling eljárással frissíti az egységek állapotát.

  3. Lépésenként közelíti azokat az állapotokat, amelyek alacsony energiájúak.

  4. A súlyokat a különbség alapján frissíti:

    ahol az első tag az adatokon, a második a modell által generált példákon mért korreláció.



⚡ Probléma: teljes Boltzmann-gép túl lassú

Mivel minden neuron össze van kötve mindennel, és az állapottér exponenciális méretű, a tanulás nagyon számításigényes.



✨ Megoldás: Restricted Boltzmann Machine (RBM)

A Restricted Boltzmann Machine (RBM) a Boltzmann-gép egy korlátozott változata, ahol:

  • csak a látható és rejtett réteg között vannak kapcsolatok
  • nincsenek kapcsolatok a látható egységek, vagy a rejtett egységek között

Ez jelentősen egyszerűsíti a számítást, és hatékonyabb tanítást tesz lehetővé.



🧠 RBM használata: képek, szövegek tömörítése, felismerése

Példák:

  • MNIST képek tömörítése és újragenerálása
  • Netflix ajánlórendszerének része
  • Deep Belief Networks építőelemeként



📐 Deep Belief Network (DBN)

A DBN több RBM egymásra építésével létrehozott többrétegű, hierarchikus hálózat:

  • Első RBM a bemeneti adatot tanulja meg
  • Második RBM az első rejtett rétegét veszi bemenetnek
  • És így tovább…

Ez egy mély tanulási architektúra, amely előtanítással (pretraining) tanul.



🔍 Előnyök

  • 🌟 Generatív: képes új adatpéldákat generálni
  • 🧠 Nemlineáris minták tanulása
  • 🔄 Hiányzó adatok kiegészítése
  • 🪜 Több RBM egymásra építésével deep learning-re bővíthető



⚠️ Hátrányok

  • Lassú tanulás teljes Boltzmann-gép esetén
  • 🧮 Komplex matematika (Gibbs-mintavételezés)
  • 🧱 Skálázás nehézségei nagy adathalmazokra
  • 🧑‍🔬 Finomhangolás szükséges (tanulási ráta, mintavétel-lépések száma)



📦 Kódvázlat (RBM például scikit-learn-nel – nem teljes implementáció)

from sklearn.neural_network import BernoulliRBM
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression

rbm = BernoulliRBM(n_components=64, learning_rate=0.01, n_iter=10)
logistic = LogisticRegression()

classifier = Pipeline(steps=[('rbm', rbm), ('logistic', logistic)])
classifier.fit(X_train, y_train)

📚 Kapcsolódó fogalmak

Fogalom Leírás
Gibbs sampling Sztochasztikus módszer az állapottér bejárására
Energy-based model Az adatokhoz energiát rendel, tanulás = energia minimalizálása
Autoencoder Alternatív tömörítési modell, determinisztikus
Variational Autoencoder Statisztikai alternatívája a generatív tanulásnak



🧾 Összefoglalás

Tulajdonság Részletek
Név Boltzmann Machine
Típus Generatív, energia-alapú, sztochasztikus
Egységek Látható (adat), rejtett (reprezentáció)
Tanulás módja Gibbs-sampling, energia-különbség
Alkalmazás Mintagenerálás, dimenziócsökkentés, Deep Belief Network
Specializáció RBM (könnyebb tanítás), DBN (mély tanulás)