Boltzmann-Maschine
Eine Boltzmann-Maschine ist ein stochastisches künstliches neuronales Netz, das von Geoffrey Hinton und Terrence J. Sejnowski 1985 entwickelt wurde.[1] Benannt sind diese Netze nach der Boltzmann-Verteilung. Boltzmann-Maschinen ohne Beschränkung der Verbindungen lassen sich nur sehr schwer trainieren. Beschränkt man die Verbindungen zwischen den Neuronen jedoch, lässt sich der Lernvorgang stark vereinfachen, wodurch Beschränkte Boltzmann-Maschinen sich zur Lösung praktischer Probleme einsetzen lassen.
Aufbau
Eine Boltzmann-Maschine ist wie ein Hopfield-Netz ein Netzwerk von Neuronen, in dem ein Energieniveau definiert ist. Wie bei Hopfield-Netzen nehmen die Neuronen nur binäre Werte (0 oder 1) an, verhalten sich im Gegensatz jedoch stochastisch. Das Energieniveau einer Boltzmann-Maschine ist so definiert wie bei einem Hopfield-Netz:
wobei gilt:
- ist das Gewicht der Verbindung zwischen Neuron und .
- ist der Zustand des Neurons .
- ist der Schwellwert eines Neurons . ( ist der Wert ab dem ein Neuron aktiviert wird.)
Die Verbindungen einer Boltzmann-Maschine haben zwei Beschränkungen:
- . (Kein Neuron hat eine Verbindung mit sich selbst.)
- . (Alle Verbindungen sind symmetrisch.)
Die Gewichtungen lassen sich in Form einer symmetrischen Matrix darstellen, deren Hauptdiagonale aus Nullen besteht.
Genau wie beim Hopfield-Netz tendiert die Boltzmann-Maschine dazu, den Wert der so definierten Energie bei aufeinanderfolgenden Aktualisierungen zu verringern, letztendlich also zu minimieren, bis ein stabiler Zustand erreicht ist.
Restricted Boltzmann Maschine
Eine sog. Restricted Boltzmann Maschine (RBM) besteht aus sichtbaren Einheiten (engl. visible units) und versteckten Einheiten (hidden units). An die unsichtbaren Einheiten wird der Feature-Vektor angelegt.
Das "restricted" (englisch für "beschränkt") kommt durch die Tatsache, dass die sichtbaren Einheiten nicht untereinander und die versteckten Einheiten auch nicht untereinander verbunden sind. Allerdings sind die sichtbaren Einheiten mit den versteckten Einheiten vollständig verbunden. Sie bilden also einen bipartiten, ungerichteten Graphen. Dies ist im Folgenden dargestellt:
Die zu lernenden Parameter sind die Gewichte der Kanten zwischen sichtbaren und versteckten Einheiten sowie die Bias-Vektoren der versteckten und der sichtbaren Einheiten. Diese werden über den Contrastive Divergence Algorithmus gelernt.[2]
Restricted Boltzmann Machines wurden zum kollaborativen Filtern auf Netflix eingesetzt.[3]
Weblinks
Einzelnachweise
- David H. Ackley, Geoffrey E. Hinton, Terrence J. Sejnowski: A Learning Algorithm for Boltzmann Machines. In: Cognitive Science, Band 9, Ausgabe 1, Januar 1985, S. 147–169. Auf Wiley.com (PDF, englisch), abgerufen am 13. Februar 2021, doi:10.1207/s15516709cog0901_7.
- Geoffrey Hinton: A practical guide to training restricted Boltzmann machines. 2010.
- Ruslan Salakhutdinov, Andriy Mnih, Geoffrey Hinton: Restricted Boltzmann machines for collaborative filtering. In: Proceedings of the 24th international conference on Machine learning. 2007, S. 791–798.