-: Hallo und willkommen zurück zum Kurs über Deep Learning. Im heutigen Tutorium werden wir über die Restricted Boltzmann Machine sprechen und sehen, wie sie lernt und wie sie in der Praxis angewendet wird. Das wird ein sehr interessanter Lehrgang werden. Fangen wir an. Hier haben wir also die Standard-Boltzmann-Maschine oder die vollständige Boltzmann-Maschine, bei der wir, wie Sie sich erinnern, all diese Verbindungen haben. Jeder einzelne Knoten ist mit jedem einzelnen anderen Knoten verbunden. In der Theorie ist dies ein großartiges Modell, mit dem wir wahrscheinlich viele verschiedene Probleme lösen können, aber in der Praxis ist es sehr schwer umzusetzen. In der Tat stoßen wir irgendwann auf ein Hindernis, weil wir einfach keine vollständige Boltzmann-Maschine berechnen können. Der Grund dafür ist, dass die Anzahl der Verbindungen zwischen den Knoten exponentiell ansteigt, je größer die Anzahl der Knoten ist. Aus diesem Grund wurde eine andere Art von Architektur vorgeschlagen, die als Restricted Boltzmann Machine bezeichnet wird. Und so sieht es aus. Hier haben wir also genau das gleiche Konzept mit der einfachen Einschränkung, dass verborgene Knoten nicht miteinander verbunden werden können und sichtbare Knoten nicht miteinander verbunden werden können. Ansonsten ist alles beim Alten geblieben. Wir haben Verbindungen, die ungerichtet sind, d.h. sie verlaufen in beide Richtungen, sowohl von sichtbaren Knoten zu versteckten Knoten als auch von versteckten Knoten zu sichtbaren Knoten. Und das ist die Architektur der Restricted Boltzmann Machine. Und jetzt werden wir darüber sprechen, wie es funktioniert, wie es trainiert wird und wie es in der Praxis angewendet wird. Lassen Sie uns also gleich zur Sache kommen. Wir werden uns ein Beispiel mit Filmen ansehen, denn man kann eine Restricted Boltzmann Machine verwenden, um ein Empfehlungssystem zu erstellen, und genau das werden Sie in den praktischen Übungen tun. Und das wird uns helfen, ein intuitives Verständnis der Restricted Boltzmann Machine zu entwickeln. Und es wird Ihnen auch helfen, wenn Sie durch die praktischen Tutorials gehen. Nehmen wir also an, unsere Restricted Boltzmann Machine oder unser Empfehlungssystem arbeitet an sechs Filmen. Natürlich wird es in Wirklichkeit noch viele, viele weitere Filme geben, wie Sie in den praktischen Übungen sehen werden, es wird viele weitere Filme geben. Aber in unserem Beispiel werden wir der Einfachheit halber mit sechs arbeiten. Und die Art und Weise, wie es funktionieren wird, ist, dass wir, nun, lassen Sie uns ein wenig erinnern. Wie Sie sich erinnern, handelt es sich bei einer Boltzmann-Maschine um eine generative Art von Modell. Es erzeugt also ständig diese Zustände, diese verschiedenen Zustände unseres Systems, oder ist in der Lage, sie zu erzeugen. Und dann beim Training, indem wir sie mit Trainingsdaten füttern und durch einen Prozess, der kontrastive Ablenkungen genannt wird und den wir weiter unten in diesem Abschnitt besprechen werden, helfen wir der Boltzmann-Maschine, eine Repräsentation unseres spezifischen Systems zu werden, anstatt ein Empfehlungssystem für jede Art von möglichen unmöglichen Filmen oder jede Art von Empfehlungssystemen zu sein. Wir machen es mehr und mehr zu einem Empfehlungssystem, das mit unserem spezifischen Satz von Filmen, die wir in dieses System einspeisen, und mit unseren spezifischen Trainingsdaten verbunden ist. Durch diesen Prozess lernt die Restricted Boltzmann Machine also, wie sie ihre versteckten Knoten bestimmten Merkmalen zuordnen kann. Und dieser Prozess ähnelt sehr dem, was wir bei den faltigen neuronalen Netzen besprochen haben. So könnte die Restricted Boltzmann Machine beispielsweise durch den Trainingsprozess erkennen, dass Filmgenres wichtige Merkmale sind, zum Beispiel Genre A, B, C, D und E. Das Wichtigste dabei ist, dass es nicht weiß, dass es sich um Genres handelt. Es geht nur darum, bestimmte Merkmale zu erkennen. Darüber werden wir gleich noch sprechen. Um uns mit diesem Konzept vertraut zu machen, sollten wir zunächst einmal deutlich machen, dass es sich nicht um Genres handeln muss. Es könnte zum Beispiel feststellen, dass die Genres A und B für das Empfehlungssystem wichtig sind. Zu den weiteren wichtigen Merkmalen gehört aber auch ein Schauspieler, vielleicht Kevin Costner. Eine Auszeichnung, vielleicht einen Oscar. Ein Regisseur, Robert Zemeckis. Sie wird also feststellen, dass dies wichtige Merkmale sind. Und was bedeutet das nun? Die wichtigste Frage, die Sie sich wahrscheinlich gerade stellen, ist, was es überhaupt bedeutet, wenn eine Funktion als wichtig eingestuft wird. Nun, gehen wir das mal durch. Während des Trainingsprozesses füttern wir die Restricted Boltzmann Machine mit jeder Menge Zeilen. Diese Zeilen könnten zum Beispiel so aussehen, dass wir Filme als Spalten und dann die Benutzer als Zeilen haben. Und hier haben wir die Bewertungen oder das Feedback, das die einzelnen Nutzer für den Film hinterlassen haben, ob er ihnen gefallen hat, also eine Eins, oder ob er ihnen nicht gefallen hat, also eine Null. Und auch die MT-Zellen sind völlig in Ordnung, denn das bedeutet nur, dass die Person den Film nicht gesehen hat. Und während wir diese Daten in die Restricted Boltzmann Machine einspeisen, ist sie in der Lage, unser System besser zu verstehen und sich selbst besser anzupassen, um eine bessere Darstellung unseres Systems zu sein und alle Zusammenhänge, die hier vorhanden sein könnten, besser zu verstehen und wiederzugeben. Denn schließlich haben Menschen Vorurteile, Vorlieben und Geschmäcker, und das spiegelt sich auch in den Daten wider. Wenn jemandem Film zwei und drei gefallen haben, Film eins aber nicht, bedeutet das nur, dass das seine Vorlieben sind. Jemand anderes mochte vielleicht Film eins und mochte vielleicht Film zwei nicht, und mochte vielleicht Film drei. Im Grunde genommen geht es bei den Daten also um die Vorlieben der Menschen, um ihren Geschmack und darum, wie sie Filme am liebsten sehen oder wie sie zu verschiedenen Filmen stehen. Und das ist es, was die Restricted Boltzmann Machine zu erklären versucht. Und zum Beispiel kann sie es erklären oder auch nicht. Das ist es, was sie zu modellieren versucht. -: Und zum Beispiel könnte es von unserem Beispiel hier aufgreifen, dass die Filme drei, vier und sechs normalerweise ähnliche Bewertungen haben. Nicht immer, aber sehr oft, wenn jemandem Film drei, vier gefällt, wird er wahrscheinlich auch Film sechs mögen. Wenn jemandem der Film sechs und vier oder sechs und drei gefällt, wird er wahrscheinlich auch den Film vier mögen. Sechs und drei, sie werden Film vier mögen, oder wenn sie Film drei und vier nicht mögen, werden sie wahrscheinlich auch Film sechs nicht mögen. Nicht immer. Hier haben wir also ein Beispiel dafür, dass jemand Film drei nicht mochte, Film vier nicht mochte. Es kann Beispiele geben, bei denen diese Regel nicht eingehalten wird. Diese werden aber eher eine Ausnahme von der Regel als eine Regel sein. Und dies ist nur ein sehr vereinfachtes Beispiel. Die Restricted Boltzmann Machine würde dies beim Training erkennen und einen Knoten zuweisen, der nach diesem Merkmal Ausschau hält, ohne zu wissen, um welches Merkmal es sich handelt, denn wie Sie sehen können, sind alle Eingaben, die sie erhält, Einsen und Nullen. Es geht nicht um das Genre des Films, es geht nicht um die Liste der Schauspieler, es geht nicht um die Preise, die der Film gewonnen hat. Erstens: Es werden nur diese Einsen und Nullen empfangen. Aber selbst aus diesen Ähnlichkeiten lässt sich ableiten, dass es wahrscheinlich einige Gemeinsamkeiten zwischen diesen Filmen gibt, die dazu führen, dass die Menschen sie mögen. Die Leute, die diese Filme mögen, mögen also nicht nur den Film, sondern auch das Feature. Und deshalb wird jeder andere Film mit diesem Merkmal höchstwahrscheinlich von diesen Menschen genossen werden. Und in unserem Verständnis als Menschen könnte dieses Merkmal das Genre sein. Und das ist, wie gesagt, sehr ähnlich zu dem, was wir mit Faltungsneuronalen Netzen hatten. Wir haben vielleicht keinen beschreibenden Begriff für dieses Merkmal. Der Einfachheit halber sagen wir aber, dass es sich um das Genre A oder um den Schauspieler X handeln könnte. Auf diese Weise wird es für uns einfacher zu verstehen, was vor sich geht. Aber das ist es, was die Restricted Boltzmann Machine im Wesentlichen tut. Durch diese Eingabe und durch den Trainingsprozess versteht es immer besser, welche Merkmale diese Filme gemeinsam haben könnten, oder ob es Merkmale gibt, die diese Filme gemeinsam haben könnten, und es ordnet seine versteckten Knoten zu oder die Gewichte werden so zugeordnet, dass die versteckten Knoten diese spezifischen Merkmale widerspiegeln. Auf diese Weise erfolgt also die Ausbildung der RBM. Jetzt wollen wir uns etwas Lustigeres ansehen. Schauen wir uns einmal an, wie das in der Praxis ablaufen würde. Nachdem wir also unsere Maschine, die Restricted Boltzmann Machine, trainiert haben, wissen wir, dass sie in der Lage ist, diese bestimmten Merkmale herauszufiltern, und zwar auf der Grundlage dessen, was sie zuvor über Tausende unserer Nutzer und deren Bewertungen gesehen hat. Und nun werden wir uns die einzelnen Funktionen ansehen. Sagen wir, es wurde ausgewählt: Drama als Spielfilm, Action, DiCaprio. Und jetzt ist DiCaprio der Schauspieler in einem Film. Oscar, ob ein Film einen Oscar gewonnen hat oder nicht, und Quentin Tarantino, ob er der Regisseur des Films war oder nicht. Und auch diese sind nur zu unserem Vorteil. In Wirklichkeit hat die Restricted Boltzmann Machine keine Ahnung, ob der Name des Regisseurs Tarantino ist. Es geht nur darum, ein Merkmal herauszugreifen. Dies ist unsere Erklärung dieses Merkmals für intuitive Zwecke. Und jetzt werden wir uns ein paar Filme ansehen. Die Maschine wurde also mit vielen Zeilen trainiert, und jetzt werden wir eine neue Zeile in diese Restricted Boltzmann Machine in dieses Empfehlungssystem eingeben. Und wir werden sehen, wie sie uns vorhersagen wird, ob eine Person bestimmte Filme mögen wird oder nicht. Das ist der unterhaltsame Teil, das ist die eigentliche Anwendung des RBM. Fangen wir also an. Wir haben Filme wie "The Matrix", "Fight Club", "Forrest Gump", "Pulp Fiction", "Titanic" und "The Departed". "Und ich habe versucht, Filme auszuwählen, die recht häufig gesehen werden. Ich hoffe, Sie haben alle oder zumindest die meisten dieser Filme gesehen. Wenn nicht, ist das auch nicht so wichtig. Wir werden trotzdem dort durchfahren. Sie werden immer noch in der Lage sein, zusammen mit dem Beispiel ist völlig in Ordnung fallen. Der Oscar steht hier dafür, ob ein Film einen Oscar gewonnen hat oder nicht, damit es keine Fragen dazu gibt. Und der Oscar, über den wir hier sprechen, ist der Oscar für den besten Film. Ein Oscar ist also ein Academy Award, und es gibt viele verschiedene Academy Awards, zum Beispiel gibt es so etwas wie ein Synonym dafür. Es gibt viele verschiedene Arten von Oscars. Du könntest einen Oscar für den besten Schauspieler bekommen, du könntest einen Oscar für die besten Soundeffekte in deinem Film bekommen, oder für die besten visuellen Effekte. Nun, dieser spezielle Oscar, über den wir hier sprechen, ist der für den besten Film, und davon gibt es nur einen pro Jahr. Ja, das sind also die Filme, die wir uns ansehen. Und jetzt schauen wir uns die Person an, für die wir eine Empfehlung aussprechen wollen, was sie gesehen hat, was sie nicht gesehen hat, was sie bewertet hat und wie sie es bewertet hat. Sie haben also "The Matrix" gesehen, mochten "The Matrix" nicht und haben eine Null gesetzt. Eins bedeutet also mögen, Null bedeutet nicht mögen. "Fight Club", haben sie den "Fight Club" nicht gesehen. "Forrest Gump", sie haben "Forrest Gump" gesehen, und sie mögen den Film. "Pulp Fiction", sie haben "Pulp Fiction" gesehen, aber der Film hat ihnen nicht gefallen. "Titanic" haben sie gesehen und fanden ihn gut. Und "The Departed", den haben sie nicht gesehen. Und jetzt wollen wir eine Empfehlung für diese Person aussprechen, wird sie "Fight Club" mögen oder nicht? Wird ihnen "The Departed" gefallen oder nicht. Wie geht die Restricted Boltzmann Machine dabei vor? Jetzt kommen wir endlich zum Kern der Sache. Jetzt kommen wir endlich zur Anwendung. Das wird also interessant werden. Wir gehen also Schritt für Schritt vor und prüfen, welche dieser Knoten für diesen speziellen Benutzer aktiviert werden sollen. Die Boltzmann-Maschine ist also trainiert, sie kennt alle Merkmale und Ähnlichkeiten und wird nun versuchen zu beurteilen, welche dieser Merkmale aktiviert werden. Und es könnte nützlich sein, sich dies in Analogie zu einem neuronalen Faltungsnetzwerk vorzustellen. Dort würden wir ein Bild in unser neuronales Faltungsnetzwerk einspeisen, und bestimmte Merkmale würden hervorgehoben, bestimmte Merkmale würden aufleuchten, wenn sie in diesem Bild vorhanden sind. Hier ist es dasselbe. Wir geben eine Reihe in unsere Restricted Boltzmann Machine ein, und bestimmte Merkmale werden aufleuchten, wenn sie im Geschmack und in den Vorlieben und Neigungen dieses Nutzers vorhanden sind. Das ist die Art von sehr intuitivem Geschehen im Hintergrund. Das ist eine sehr intuitive Erklärung für das, was im Hintergrund passiert. Gehen wir das also mal durch. Wir fangen mit dem Drama an. Welche Filme hier sind also ein Drama? Wir wissen, dass "Matrix" kein Drama ist. "Fight Club" ist kein Drama. "Forrest Gump" ist ein Drama. Ich habe nachgeschaut, es ist eigentlich eine Komödie, und dann ist es ein Drama. Aber wir haben hier keine Comedy. Für unsere Zwecke ist es also ein Drama. "Pulp Fiction" ist kein Drama. Titanic ist ein Drama, und "The Departed" ist ein Drama. Aber wir haben keine Daten für "The Departed", richtig? Diese Boltzmann-Maschine kann also nur von diesen beiden lernen, richtig? Sie kann nur sagen: Na gut, diese Person mochte "Forrest Gump", und diese Person mochte "Titanic". "Und auf dieser Grundlage wird dieser Knoten aufleuchten, und zwar symbolisch in grün, was bedeutet, dass er aktiviert ist, und das bedeutet, dass diese Person Drama-Filme mag. Als Nächstes die Aktion. Und Sie sehen, dass die Actionfilme, die wir hier haben, "The Matrix", "Fight Club", "Pulp Fiction" und "Departed" sind. Wir haben vier Actionfilme. Von diesen haben wir aber nur Daten für "The Matrix" und "Pulp Fiction", und beide mochte diese Person nicht. Es wird also rot leuchten, DiCaprio. Von all diesen Filmen ist Leonardo DiCaprio also in "Titanic" und "The Departed" zu sehen. "Und aufgrund dieses einen, nur dieses einen Val-Films wird der DiCaprio-Knoten grün aufleuchten. Oscar, wir haben also drei Oscar-Filme. Wir haben nur Daten für "Forrest Gump" und "Titanic". "Und wenn diese Person beides mag, leuchtet der Knotenpunkt grün auf. Und schließlich: Tarantino. Der einzige Film, bei dem Tarantino Regie geführt hat, ist "Pulp Fiction" von allen. Und diese Person mochte Tarantino in diesem Film nicht und deshalb wird dieser Knoten rot aufleuchten. Das war's dann wohl. Das ist das erste Parsing. Alles, was von einem sichtbaren Knoten kommt, geht in einen versteckten Knoten, und unsere versteckten Knoten, jetzt wissen wir, welche aktiviert sind. Und nun erfolgt das Backward Parse. Nun wird die Boltzmann-Maschine versuchen, unsere Eingabe zu rekonstruieren. Das werde ich zeigen, indem ich sie blinken lasse. Das ist im Grunde genommen genau das, was in diesem Prozess passiert, egal ob man trainiert. Und wir haben das während der Ausbildung nicht erwähnt, aber das passiert auch während der Ausbildung. Während des Trainings, und das ist im Wesentlichen ein Test, nimmt die Boltzmann-Maschine Werte in die versteckten Knoten auf und versucht dann, die Eingaben auf der Grundlage dieser versteckten Knoten zu rekonstruieren. Und wenn während des Trainings die Rekonstruktion nicht korrekt ist, wird alles angepasst, die Gewichte werden angepasst und dann rekonstruieren wir wieder und wieder. Aber jetzt ist es ein Test, wir geben also eine bestimmte Zeile ein und wollen unsere Vorhersagen bekommen. Es wird also im Grunde keine Anpassung der Gewichte geben, sondern wir werden einfach sehen, wie die Boltzmann-Maschine diese Zeilen rekonstruiert. Und die Filme, für die wir bereits Einschaltquoten haben, werden uns nicht mehr interessieren. Dafür ist der Trainingsteil der Boltzmann-Maschine gedacht. Hier werden wir uns nur um die Filme kümmern, für die wir keine Bewertungen haben, und wir werden die Werte, die wir rekonstruieren, als Vorhersagen verwenden. Auch hier wird die Boltzmann-Maschine die Eingabewerte auf der Grundlage des Gelernten rekonstruieren. Also los geht's. Wie wird sie den "Fight Club" rekonstruieren? Nun, "Fight Club" wird sich alle Knoten ansehen und anhand der Erkenntnisse aus dem Training herausfinden, welche Knoten tatsächlich mit "Fight Club" verbunden sind. " Ist es ein Drama? Nein, das ist es nicht. Ist es ein Actionfilm? Ja, das ist sie. Der wird also aufleuchten. Kommt der DiCaprio darin vor? Nein, das tut es nicht. Hat dieser Film einen Oscar gewonnen? Das ist nicht der Fall. Und ist Tarantino der Regisseur dieses Films? Nein, das ist er nicht. Das wissen wir, weil wir diese Dinge wissen. Bei den Boltzmann-Maschinen wird das Verständnis so aussehen, dass dieser Knoten mit diesem Knoten verbunden ist, nein. Ist dieser Knoten mit diesem Knoten verbunden, ja. Ist dieser Knoten mit diesem Knoten verbunden, nein. Dieser Knoten zu diesem Knoten, dieser zu diesem Knoten. Es würde also diese Wörter nicht kennen, aber es würde diese Verbindungen kennen. Es würde diese Assoziationen auf der Grundlage der Gewichte kennen, die es während des Trainings ermittelt hatte. Und aufgrund dieser einen Verbindung wissen wir, dass diese Person rot leuchtet und deshalb "Fight Club" ein Film sein wird, der ihr nicht gefallen wird. Dann der nächste. Jetzt werden wir also über "The Departed" sprechen. "Die Empfehlung lautet also: Nein. Lassen Sie uns nun über "The Departed" sprechen. "Auch hier wird es seine Knoten durchgehen, es wird die Verbindungen nur durch die Gewichte erkennen. Das Formular, das er während der Ausbildung erstellt hatte, wird diese Verbindungen kennen. Und hier wird es wissen, dass "The Departed" mit diesem Knoten verbunden ist, mit diesem Knoten verbunden ist, mit diesem Knoten verbunden ist, mit diesem Knoten verbunden ist, nicht mit diesem Knoten verbunden ist. Das Gewicht ist hier gering oder sehr unbedeutend. Und warum ist das so, wie wir es in der menschlichen Sprache ausdrücken? Nun, da dieser Knotenpunkt für Drama-Filme zuständig ist, ist es ein Drama-Film. Dieser Knotenpunkt ist für Actionfilme zuständig, es ist ein Actionfilm. Dieser Knoten ist für DiCaprio-Filme zuständig, es kommt also DiCaprio darin vor. Dieser Knotenpunkt ist für Oscar-Filme verantwortlich, er hat einen Oscar gewonnen. Auf dieser Grundlage können wir sehen, dass dieser Knoten mit "Ja, ja, ja" stimmt. Dieser Knoten stimmt mit Nein. Vereinfacht ausgedrückt lautet die Antwort also: Ja, der Film wird Ihnen höchstwahrscheinlich gefallen, oder der Nutzer wird den Film genießen. Das war's dann wohl. So funktioniert die Restricted Boltzmann Machine. Ich hoffe, dass Ihnen diese Aufschlüsselung der Ausbildung und der Anwendung der RBM gefallen hat. Und ich kann es kaum erwarten, dich im nächsten Tutorial zu sehen. Bis dahin viel Spaß beim Deep Learning.