Udemy

How Self-Organizing Maps (SOMs) Learn: Unsupervised Deep Learning Explained

Ein kostenloses Video-Tutorial von Kirill Eremenko
DS & AI Instructor
Bewertung: 4,5 von 5Dozentenbewertung
51 Kurse
3.415.578 Teilnehmer:innen
How Self-Organizing Maps (SOMs) Learn: Unsupervised Deep Learning Explained

Lektionsbeschreibung

If you are having questions like:


- What are Self-Organizing Maps (SOMs) and how do they learn?

- How does unsupervised deep learning work in SOMs?

- What are the key features and benefits of using SOMs?

- How do SOMs differ from other neural networks?

- Can SOMs reveal hidden patterns in complex datasets?

- What are the practical applications of Self-Organizing Maps?


Then this lecture is for you!


This lecture delves into the fascinating world of Self-Organizing Maps (SOMs), a powerful unsupervised deep learning technique. You'll discover how SOMs learn and adapt to input data without supervision, retaining the topology of the input set. The lecture explains the Kohonen Learning Algorithm, including the concept of Best Matching Units (BMUs) and the unique shrinking radius feature. You'll learn how SOMs can reveal correlations in high-dimensional data that are not easily identified through other methods. The tutorial covers key aspects of SOMs, such as their ability to classify data without supervision, their lack of backpropagation, and the absence of lateral connections between output nodes. By the end of this lecture, you'll have a solid understanding of how SOMs work, their advantages in machine learning, and their potential applications in data science and AI. The lecture also provides resources for further study, including an introduction to the mathematics behind SOMs and programming examples.

Steige mit dem kompletten Kurs tiefer ins Thema ein

Deep Learning A-Z [2026]: DL, AI in Python & AWS + LLM Prize

Learn to build and train Deep Learning models in Python from two Machine Learning & AI experts. Code templates included.

22:45:41 On-Demand-Video • Aktualisiert am Juni 2026

Learn and Practice Supervised Deep Learning for Regression, Classification, Computer Vision and Time Series Analysis
Learn and Practice Unsupervised Deep Learning for Fraud Detection, Anomaly Detection and Recommender Systems
Develop a strong intuition behind Artificial Neural Networks
Practice Artificial Neural Networks for Regression and Classification
Build Artificial Neural Networks with Python
Build Artificial Neural Networks with AWS
Develop a strong intuition behind Convolutional Neural Networks
Practice Convolutional Neural Networks for Computer Vision and Object Recognition
Build Convolutional Neural Networks with Python
Build Convolutional Neural Networks with AWS
Develop a strong intuition behind Recurrent Neural Networks
Practice Recurrent Neural Networks for Time Series Analysis
Build Recurrent Neural Networks with Python
Build Recurrent Neural Networks with AWS
Develop a strong intuition behind Self-Organizing Maps
Build Self-Organizing Maps with Python and Practice them for Fraud Detection
Develop a strong intuition behind Boltzmann Machines
Build Boltzmann Machines with PyTorch and Practice them for Recommender Systems that predict binary ratings "Like" or "Not Like"
Develop a strong intuition behind AutoEncoders
Build AutoEncoders with PyTorch and Practice them for Recommender Systems that predict ratings from 1 to 5
Build a Recommender System for E-Commerce with AWS
Build a Recommender System for Movie Recommendation with AWS
Deutsch [autom.]
-: Hallo und willkommen zurück zum Kurs über Deep Learning. In den vorangegangenen Tutorials haben wir gesehen, wie selbstorganisierende Karten funktionieren, und heute werden wir endlich herausfinden, wie sie lernen. Kommen wir also gleich zur Sache. Hier haben wir ein sehr einfaches Beispiel für eine selbstorganisierende Karte. Wir haben drei Merkmale in unseren Eingabevektoren und neun Knoten in der Ausgabe. Und wie bereits erwähnt, werden selbstorganisierende Karten verwendet, um die Dimensionalität Ihres Datensatzes zu reduzieren. Und hier fragen Sie sich vielleicht, wie das sein kann, wenn unsere Eingabe nur drei Merkmale hat und unsere Ausgabe mehr zu haben scheint? Nun, lassen Sie sich durch diese Darstellung nicht das Verständnis von selbstorganisierenden Karten verderben. Hier haben wir drei Merkmale oder drei Spalten in unserem Datensatz. Wir könnten also Tausende und Abertausende von Zeilen haben, von denen jede drei Spalten hat. Das bedeutet, dass unser Eingabedatensatz tatsächlich dreidimensional ist, während unser Ausgabedatensatz bei einer selbstorganisierenden Karte immer eine zweidimensionale Karte ist und wir daher die Dimensionalität von 3D auf 2D reduzieren. Jetzt werden wir diese selbstorganisierende Karte in eine Eingabe oder in eine Darstellung umwandeln, die uns von dem bekannt ist, was wir zuvor in diesem Kurs über künstliche neuronale Netze, neuronale Faltungsnetze und rekurrente neuronale Netze gelernt haben. Drehen wir es also um. So würde es aussehen. Das Wichtigste dabei ist, dass es sich um genau dasselbe Netz handelt, der einzige Unterschied besteht darin, wie wir die Knoten positioniert haben. Wir haben immer noch dieselbe Anzahl von Verbindungen, dieselbe Anzahl von Eingängen, dieselbe Anzahl von Ausgängen, nur die visuelle Darstellung hat sich geändert, einfach weil wir daran gewöhnt sind und es für uns einfacher ist, zu verstehen, was auf diese Weise vor sich geht, ein bisschen besser. Gleichzeitig wollte ich aber auch erwähnen, dass selbstorganisierende Karten anders sind. Sie unterscheiden sich stark von den neuronalen Netzen, die wir zuvor im Teil "Überwachtes Lernen" des Kurses besprochen haben. Und das hat zwei Seiten. Zunächst einmal sind selbstorganisierende Karten viel, viel einfacher. Sie werden also sehen, dass Sie selbstorganisierende Karten sehr schnell begreifen können und das ganze Konzept dahinter sehr einfach und unkompliziert ist. Gleichzeitig ist es wichtig zu beachten, dass die Konzepte, die die gleichen Namen haben, unterschiedliche Bedeutungen haben, weil selbstorganisierende Karten anders sind. Daher könnte Ihr Wissen über künstliche neuronale Netze und Faltungsneuronale Netze und rekurrente neuronale Netze aus dem, was wir zuvor besprochen haben, dazu führen, dass Sie die Bedeutungen dessen, was wir in selbstorganisierenden Karten besprechen werden, verwechseln. Behalten Sie das also im Hinterkopf, wenn wir dieses Lernprogramm durchgehen, und seien Sie vorsichtig, wenn wir über Dinge wie Gewichte und Zusammenfassungen und andere Dinge sprechen, die Ihnen begegnen könnten. Ich werde versuchen, Sie darauf hinzuweisen, und solange Sie sich dessen bewusst sind, sollte es uns gut gehen. Wenn wir uns also darüber einig sind, können wir anfangen. Als erstes schauen wir uns den obersten Knoten an, den obersten Knoten in unseren Ausgaben. Und wir werden uns speziell die drei Verbindungen oder drei Zusammenfassungen ansehen, die zu diesem Knotenpunkt führen. Lassen Sie uns den Rest der Synopse ausgrauen, damit wir wissen, dass wir uns auf diese spezielle Kombination oder diese speziellen drei konzentrieren. Und jedem von ihnen wird, wie zuvor, ein Gewicht zugewiesen. Hier haben wir also W 1,1, eins, zwei, und eins, drei. Der erste Index bedeutet, dass es sich um den ersten Knoten in unseren Ausgangsknoten handelt, und der zweite Index gibt an, von wo aus die Synapse eine Verbindung herstellt. Und es ist wichtig zu erwähnen, dass die Gewichte in selbstorganisierenden Karten anders sind, eine ganz andere Bedeutung haben als in künstlichen neuronalen Netzen. In künstlichen neuronalen Netzen wurden Gewichte zur Multiplikation verwendet. Wir haben also die Eingabe dieses Knotens oder was auch immer wir im Knoten haben, mit dem Gewicht multipliziert, sie addiert und dann eine Aktivierungsfunktion angewendet. Nun, bei selbstorganisierenden Karten gibt es keine Aktivierungsfunktion. Gewichte sind ein Merkmal des Knotens selbst, und das ist es, was wir hier darstellen, dass dieser Knoten tatsächlich diese Koordinaten hat. Stellen Sie sich das so vor, dass Sie einen dreidimensionalen Eingangsvektor haben. X1, X2 und X3 sind also seine Koordinaten im Eingaberaum. Wenn wir es uns also als dreidimensionales Diagramm vorstellen, ist dies ein Vektor irgendwo dort und dies sind seine Koordinaten. Nun, dieser Knoten ist nicht nur das Ergebnis einer Aktivierung oder das Ergebnis der Summe dieser gewichteten Werte, sondern die Gewichte haben eine ganz andere Bedeutung. Dieser Knoten versucht eigentlich auch, wie ein Geist zu sein, eine Art Geist in unserem Eingaberaum. Es versucht zu sehen, wo es in unseren Eingabebereich passt. Und genau das ist hier der Fall. Diese Gewichte sind also die Koordinaten dieses Knotens in unserem Eingaberaum. Hier haben Sie also einerseits für den Eingabedatensatz drei Knoten, die jeden Punkt darstellen. Oder Sie könnten 20 in dem Fall haben, wenn Sie einen 20-dimensionalen Eingaberaum haben, 20 Spalten in Ihren Eingaben. Hier haben Sie einen Knoten, der einen Punkt in Ihrem Eingaberaum darstellt. Und noch einmal, wenn Sie 20 Spalten in Ihren Eingaben hätten, wenn Sie hier 20 Spalten hätten, würde jeder Knoten 20 Gewichte haben. Es ist also wichtig, das zu verstehen. Stellen Sie sich also einfach diese roten Ausgangsknoten vor, jeder von ihnen ist ein Geist oder ein imaginärer Datenpunkt in unserem Eingaberaum, der dort nicht wirklich existiert, sondern versucht, sich einzublenden. Das ist also Knotenpunkt Nummer eins. Das Gleiche können wir für Knoten Nummer zwei tun, das Gleiche für Knoten Nummer drei, das Gleiche für Knoten Nummer vier und so weiter. Jeder der Knoten, in unserem Fall neun, es könnten aber auch viel mehr sein, hat also zu Beginn des Algorithmus seine eigenen Gewichte, da die Gewichte normalerweise zufällig auf Werte nahe Null, aber nicht auf Null gesetzt werden. Daher hat jeder dieser Knotenpunkte seinen eigenen imaginären Platz im Eingaberaum. Und warum ist das so wichtig? Wo führt uns das hin? Dies ist der Kern des Algorithmus der selbstorganisierenden Karte. Jetzt werden wir einen Wettbewerb veranstalten. Unter diesen Knoten werden wir jede unserer Zeilen unseres Datensatzes durchgehen und herausfinden, welcher dieser Knoten jeder unserer Zeilen in einem Datensatz am nächsten ist. Wir beginnen mit der ersten Zeile. Stellen wir uns also vor, dass wir die Zeile Nummer eins unseres Datensatzes in unsere Eingabeknoten eingegeben haben. Wir haben also in Spalte eins, Spalte zwei und Spalte drei die Werte der Zeile Nummer eins eingetragen. Und jetzt werden wir jeden einzelnen dieser Knoten durchgehen und herausfinden, welcher von ihnen im ursprünglichen Eingaberaum am nächsten liegt. Welcher dieser Knoten liegt am nächsten an unserer ersten Zeile? Und die Art und Weise, wie wir das berechnen, ist im Grunde so, dass wir für den Knoten Nummer eins den Abstand als euklidischen Abstand berechnen. Es wird also berechnet als X1 minus W 1,1 zum Quadrat, plus X2 minus W 1,2 zum Quadrat, plus X3 minus W 1,3 zum Quadrat und die Quadratwurzel aus all dem. Und nehmen wir an, wir erhalten einen Wert von 1. 2, und nebenbei bemerkt, sollten Sie hier Werte nahe bei eins erhalten, denn Sie sollten sicherstellen, dass Ihre Eingaben zwischen null und eins liegen, damit der gesamte Algorithmus richtig funktioniert. Wie wir bereits besprochen haben, müssen Sie diese Techniken anwenden, bevor Sie die Daten tatsächlich in die selbstorganisierende Karte eingeben. Das ist also der Abstand zwischen Knoten Nummer eins und Zeile Nummer eins in unserem Datensatz. Jetzt ändern wir die Zeile nicht, wir befinden uns immer noch in Zeile eins, aber wir berechnen den Abstand zum Knoten Nummer zwei in unserem Eingabebereich. Die Entfernung wird berechnet und beträgt zum Beispiel 0. 8, dann berechnen wir den Abstand zum Knoten Nummer drei, und dieses Mal ist der Abstand 0. 4. Sie sehen also, dass Zeile Nummer eins oder diese Eingaben, dieser Punkt in unseren Daten, den diese Zeile darstellt, dreimal näher am Knoten Nummer drei liegt als am Knoten Nummer eins in unserem ursprünglichen dreidimensionalen Raum. Und dann berechnen wir dasselbe für den Knoten Nummer vier, wir erhalten einen Wert von 1. 1, zum Beispiel, und so weiter. Wir berechnen also alle Abstände zwischen der ersten Zeile. Übrigens, wir sind immer noch in der ersten Reihe. Wir haben den Abstand zwischen Zeile Nummer eins oder dem Punkt, den Zeile Nummer eins in unserem Eingaberaum darstellt, und jedem dieser Knoten in unserer selbstorganisierenden Karte berechnet. Und wir haben herausgefunden, dass der nächstgelegene von allen der Knotenpunkt Nummer drei ist. Und wir werden den Knoten Nummer drei BMU oder die beste passende Einheit nennen. Das ist also der Kern des Algorithmus. Und jetzt wollen wir wissen, wie es weitergeht. Was mit all dem geschieht. Mit diesem Ergebnis wird als nächstes untersucht, was in den selbstorganisierenden Karten vor sich geht. Schauen wir uns also eine größere selbstorganisierende Karte an. Ich weiß, dass dies ein wenig kontraintuitiv ist. Normalerweise verkleinern wir Dinge, wenn wir sie besser verstehen wollen, aber in diesem Fall brauchen wir eine größere Karte, um dieses Konzept besser zu verstehen. Und nehmen wir an, wir haben auf dieser größeren Karte die beste passende Einheit für unsere eigene Nummer eins gefunden. Das ist es. Als Nächstes wird also die selbstorganisierende Karte die Gewichte aktualisieren. Und ich setze das Wort Gewichte hier in Anführungszeichen, denn sie heißen immer noch Gewichte, sie sind nur anders als die Gewichte, die wir gewohnt sind. Wie Sie soeben sehen konnten, werden die Gewichte nicht auf dieselbe Weise verwendet, sondern sie sind charakteristisch für den jeweiligen Knoten. Die Gewichte werden also für diese beste übereinstimmende Einheit aktualisiert, so dass sie sogar noch näher an unserer ersten Zeile in unserem Datensatz liegt. Und der Grund, warum wir die Gewichte aktualisieren, ist, dass wir einfach keine Kontrolle über unsere Eingaben haben, wir können unseren Datensatz nicht aktualisieren, also ist das Einzige, was wir in dieser Formel kontrollieren können, die Gewichte dieses Knotens, um ihn näher zu bringen. Und was das sein wird... Der Blitz bedeutet also, dass sie aktualisiert wurde. Einfach ausgedrückt bedeutet dies, dass sich die selbstorganisierende Karte diesem Datenpunkt annähert. Das ist also dieser Teil hier, das ist unsere selbstorganisierende Karte mit ihren Startgewichten, und jetzt dieser Punkt, der, wie Sie sogar in diesem Bild sehen können, das aus Wikipedia stammt, Sie können sehen, dass er eigentlich unserem aktuellen Punkt am nächsten ist, den wir in Zeile Nummer eins betrachten, und jetzt werden wir ihn näher ziehen. Wir werden sie näher an diesen Punkt heranführen. Am Ende steht ein Ergebnis, das wir uns so wünschen, aber wir wollen jetzt nicht zu weit vorgreifen. In diesem Stadium sind wir froh, wenn wir die am besten passende Einheit oder BMU in die aktuelle Zeile ziehen können. Wir ziehen es also ein bisschen näher heran, das ist genau das, was hier passiert, und deshalb nennt man es eine selbstorganisierende Karte. Es organisiert sich selbst auf Ihre Eingabedaten. Übrigens, wie Sie hier sehen können, wird nicht nur dieser eine Punkt näher herangezogen, sondern auch einige der nahe gelegenen Punkte werden näher zu diesem Punkt gezogen. Und genau das werden wir uns als Nächstes ansehen. Hier ist also unsere am besten passende Einheit auf der selbstorganisierenden Karte. Der nächste Schritt ist ein ganzer Radius um diese am besten passende Einheit. Und jeder einzelne Punkt, jeder einzelne Knoten unserer selbstorganisierenden Karte, der in diesen Radius fällt, wird seine Gewichte aktualisieren, um näher an die Zeile heranzukommen, mit der wir übereinstimmen. So, das war's, die Gewichte wurden alle aktualisiert. Und das funktioniert so: Je näher Sie dem BMU sind, desto schwerer werden Ihre Gewichte aktualisiert. Diese Gewichte werden also am meisten aktualisiert, diese Gewichte werden weniger aktualisiert, diese Gewichte werden noch weniger aktualisiert. Man kann sich das am besten so vorstellen, als ob sie sich gegenseitig ziehen würden. Wenn Sie also an diesem einen Element ziehen, wird die gesamte Kette oder die gesamte Struktur langsam in dieselbe Richtung gezogen. Je näher Sie also an dieser BMU sind, desto stärker werden Sie in Richtung der Reihe gezogen, mit der Sie sich zusammengetan haben, oder der BMU, mit der Sie sich zusammengetan haben. So funktioniert also das Radiuskonzept. Werfen wir nun einen Blick auf Zeile Nummer zwei. Nehmen wir an, die beste passende Einheit für Reihe Nummer zwei liegt woanders, zum Beispiel dort drüben, das ist die beste passende Einheit für Reihe Nummer zwei. Auch hier wird die BMU aktualisiert, so dass sie näher liegt, und sie hat einen eigenen Radius, so dass alles innerhalb dieses Radius ebenfalls aktualisiert wird, so dass es näher an der Zeile liegt, die wir abgeglichen haben. Die Frage ist also: Wie bekämpfen sie sich gegenseitig? Wie kämpfen sie gegeneinander? Nun, das ist ziemlich einfach, sehen wir uns also einen Punkt an. Wir streichen sie alle, bis auf dieses eine rote Exemplar. Und wie Sie sehen können, ist es ziemlich weit von der grünen BMU entfernt, es ist ziemlich nah an der blauen BMU. Es könnte sogar so weit vom grünen BMU entfernt sein, dass es nicht einmal in dessen Radius fällt. Was hier also passiert, ist, dass es mit dem blauen BMU viel stärker gezogen wird und daher dem blauen BMU ähnlicher wird, also näher kommt. Und wir färben es blau ein. Dann lassen Sie uns einen Blick auf dieses hier werfen. Das Gleiche hier, oh, nicht das Gleiche hier, das ist ein bisschen anders. Diese ist also noch weit von der grünen entfernt, aber auch ziemlich weit von der blauen. Sie ist sogar ein bisschen näher an der blauen als an der grünen, so dass sie aktualisiert wird, wenn wir daran ziehen. In diesem Fall färben wir sie also in einem grünlichen Blau. Wenn wir also an der grünen und dann an der blauen BMU ziehen, wird es ein wenig zu kämpfen geben, aber insgesamt wird es sich näher an die grüne als an die blaue BMU heranbewegen, aber beide werden eine Wirkung haben. Und schließlich noch eine weitere. Dieser Knoten liegt also noch näher an der grünen und ist ziemlich weit von der blauen BMU entfernt. Wenn Sie also an der grünen und der blauen BMU ziehen, haben natürlich beide eine Auswirkung, aber die grüne wird eine viel stärkere Auswirkung haben, weshalb wir sie grün einfärben werden. Das war's dann wohl. Das sind nur vier zufällige Knoten in unserer selbstorganisierenden Karte, die wir betrachten. Und das zeigt hoffentlich, wie sich diese Karte selbst auf Ihre Datenpunkte in der Eingabe ausrichtet. Und das ist ein guter Anfang für uns für heute. Im nächsten Lernprogramm werden wir weiter erforschen, was passiert, wenn Sie noch mehr BMUs haben und wie diese selbstorganisierende Karte aktualisiert wird. Und ich freue mich darauf, Sie dann zu sehen. Und bis zum nächsten Mal, viel Spaß beim Deep Learning.