Zum Inhalt springen

Neuronales Netzwerkwerk erklärt

aus AufEinWort, der freien Forschung

🎓 Neuronales Netzwerkwerk erklärt

📽️ 3 Was versteht man unter einem neuronalen Netzwerk (13:02)

In diesem Video klären wir, was ein neuronales Netz eigentlich ist. Im Grunde, wenn man es runterbricht, ist es relativ einfach, und ich muss dazu sagen, dass niemand auf der Welt so ganz wirklich versteht, wie einige dieser neuronalen Netze, gerade von Large Language Model’s, funktionieren. Man weiß es einfach noch nicht genau. Eventuell kommen wir irgendwann dahinter.

Neuronale Netze bestehen aus den sogenannten Neuronen. Wenn du neuronale Netze googelst, dann findest du haufenweise solcher Bilder, auf Google hier findest du wirklich sehr, sehr viele. Klickst du auf das – ich denke, das hier ist eines der besten Bilder, die ich so hier gerade sehe – und wir werden das ganz einfach mal im Paint sozusagen nachzeichnen, aber wir machen das Ganze viel, viel einfacher.

Sagen wir, wir zeichnen jetzt ein neuronales Netz auf, das drei verschiedene Dinge differenzieren kann. Einmal kann es einen Würfel unterscheiden von einem Kreis und von mir aus noch von einem Dreieck. Wir haben so ein neuronales Netzwerk, das diese drei Dinge voneinander unterscheiden kann.

Wir haben zuerst den Base-Layer, und der Base-Layer besteht aus ganz, ganz vielen verschiedenen Neuronen. Wir machen das ganz einfach mal als solche Kügelchen. Und diese Kügelchen bekommen dann Informationen und werden getriggert. Das heißt, erstmal der Base-Layer hier. Das heißt, wir haben hier erstmal den Input Layer. Dazwischen haben wir noch weitere Layer. Wir zeichnen auch diese einfach mal als Kügelchen.

Das heißt: Input Layer. Dazwischen haben wir noch ein oder zwei verschiedene Layer. Machen wir das einfach mal so, und ich denke, das reicht so aus. Das kann natürlich alles noch viel, viel größer sein. Das heißt, wir haben erstmal den Input Layer, also den hier. Nennen wir ihn „I“ für Input Layer. Ich rahme den mal ganz kurz ein, also Input Layer. Danach haben wir dazwischen Layer, die differenzieren. Eventuell könnten hier noch mehr Differenzierungslayer dranhängen. Und wir haben den Output Layer.

Um das noch etwas weiter zu zeichnen: Wir können das auch so machen, dass wir am Ende nur zwei Outputs haben. Dann könnten wir aber nur z. B. Quadrat von Kreis entscheiden und Kreis von Dreieck. Ich will noch mal zurückklicken. Also, wir haben hier, das da ist der Output Layer. Der Output Layer hat natürlich drei verschiedene Outputs, weil das neuronale Netzwerk, das aus Neuronen, aus diesen Kügelchen besteht, einfach diese Dinge unterscheiden will. Es will diese drei Dinge voneinander unterscheiden.

Ich entferne die Zeichnungen ganz kurz. Also noch mal: Input Layer, Output Layer, dazwischen auch noch haufenweise Neuronen. Um das einfach zu machen, habe ich hier nicht mehr als das da gezeichnet. Jetzt sagen wir einfach mal, wir wollen das Dreieck enttarnen, dementsprechend senden wir ein Dreieck raus.

Wie machen wir das? Wir packen ein Dreieck in einen solchen Kasten. Das ist hier ganz einfach nur ein Kasten, der 28 x 28 Pixel hat. Und in diesem Kasten drinnen ist dann sozusagen unser Dreieck. Unser Dreieck ist in einem Kasten bzw. als ein Bild mit 28 x 28 Pixel. Wenn man das zusammenrechnet, also 28 x 28, brauche ich tatsächlich aktuell einen Rechner. Sollte 700 irgendetwas sein. 28 x 28 = 784.

Das heißt, wir haben 784 Pixel. Das heißt, dieses Bildchen wird aufgeteilt in 784 klitzekleine Bildchen, und diese ganzen Pixel werden danach eingespeist in diese Neuronen, und zwar in alle einzelnen Neuronen. Das Bild, zerlegt in die Pixel, wird eingespeist in diese ganzen Neuronen. Diese Neuronen sind jetzt verbunden zu all den anderen Neuronen über solche Kanäle.

Das heißt, diese sind alle so oder so ähnlich verbunden. Das heißt ganz einfach, diese Neuronen und jene, die sind alle miteinander verbunden. Das kann auch ruhig so aussehen. Um ehrlich zu sein, weiß man auch das nicht ganz genau, wie die Dinge hier verbunden sind. Wir machen das einfach. Die erste Schicht ist verbunden mit den ganzen Zwischenschichten. Hier ist höchstwahrscheinlich nicht nur eine Zwischenschicht, sondern eigentlich mehrere Zwischenschichten. Jede dieser Verbindungen, also jede dieser Linien, die Verbindung vom einen Neuron zum anderen, die haben hier sogenannte verschiedene Gewichtungen.

Das heißt, die haben ganz einfach einen Zahlenwert, um das einfach zu machen, Vielleicht hat man schon mal etwas gehört von „weights“, gerade wenn man vom Training von Large Language Models spricht. Das hier sind sozusagen die „weights“. Das heißt sozusagen, wie stark die Gewichte, wie hoch die Zahlenwerte hier sind, mit denen die Neuronen voneinander verbunden sind.

Die Inputs von diesen Bildchen hier, von unserem Dreieck, die werden danach ganz einfach multipliziert mit unseren „weights“. Wir müssen nicht die Zahlen wissen. Wir müssen hier nichts wissen. Es ist nur wichtig zu verstehen: Diese ganzen Pixel von diesem Dreieck, die werden danach multipliziert mit dem Gewicht von dieser Verbindung vom neuronalen Netzwerk. Und am Ende des Tages, wenn man die komplexen Dinge einfach alle weglässt, wird ein solches Neuron danach erst aktiviert, wenn hier die richtige Summe rauskommt.

Dieses Neuron würde also nur aktiviert werden, wenn die richtige Summe rauskommt und sonst nicht. Sollte ein Neuron aktiviert werden, dann vermittelt es die Daten natürlich zum nächsten Neuron. Sagen wir, hier haben wir noch einen Zwischenlayer. Das Ding wurde aktiviert, und meinetwegen auch das Ding. Also werden wir ganz einfach hier die Daten weiterschicken zur nächsten Ebene, aber nur, wenn die Dinge eben auch aktiviert worden sind, und sonst nicht.

Wie gesagt, diesen Zwischenlayer haben wir jetzt der Einfachheit halber einfach mal ausgelassen. Einfach nur merken: Die Neuronen werden nur aktiviert, wenn Input multipliziert mit dem Gewicht eine Aktivation von einem Neuron triggert. Sollten diese Neuronen aktiviert werden, schicken sie das Signal weiter zu den nächsten Neuronen, zu den nächsten Neuronen und zu den nächsten Neuronen. Und irgendwann kommen natürlich diese aktivierten Neuronen am letzten Layer an. Meinetwegen dieser hier.

Hier inzwischenzeitlich können natürlich viele, viele verschiedene Aktivationen stattgefunden haben. Aber wie gesagt: Nur eben wenn Input mal das richtige Gewicht das richtige Neuron triggert. Diesen Prozess hier in der Mitte nennt man übrigens Forward Propagation. Müssen wir aber nicht wissen.

Und wir haben ja schon gesehen: Das hier sind die Output Layers. Das heißt, ein Output Layer wäre z. B. Quadrat, der andere Output Layer wäre Kreis, und der dritte Output Layer wäre danach ein Dreieck.

Und jetzt bekommen wir hier natürlich wieder multipliziert mit den Gewichten eine gewisse Zahl, eine gewisse Wahrscheinlichkeit. Sagen wir, wir haben zu 0,4 % hier z. B. das Gewicht Quadrat oder den Output Quadrat. Wir haben meinetwegen noch mal für 0,3 hier tatsächlich den Output Kreis und noch mal 0,3 den Output Dreieck.

Jetzt würdest du am ersten Blick natürlich sagen: Das ist der komplette Quatsch, denn wir haben ein Dreieck rausgeschickt, und der Output kommt hier laut Wahrscheinlichkeiten falsch raus. Der Output ist hier ja eigentlich ein Quadrat. Und du hast Recht, denn dieses neuronale Netz ist noch nicht trainiert worden.

Und wie trainiert man jetzt ein solches neuronales Netz? Man gibt ihm die Antwort. Man sagt ihm, sobald die Neuronen hier gefeuert haben: „Hey, das war falsch. In Wirklichkeit ist das hier das Dreieck.“ Wir geben ihm eventuell noch die richtigen Zahlen. Wir sagen einfach mal: Wir haben hier die richtigen Zahlen noch stehen.

Und danach wird ganz einfach dem neuronalen Netz aus … aufgezeigt, wie falsch es liegt, ob man eventuell die Gewichte vom neuronalen Netz erhöhen muss oder ob man die Gewichte vom neuronalen Netz senken muss. Dementsprechend würde man ganz einfach diese Gewichte, die hier dazwischen sind, für die Multiplikation verändern. Und das nennt man danach die Back Propagation.

Das heißt, die richtigen Ergebnisse werden zurückgesendet, zusammen mit der Information, ob die Gewichte erhöht oder gesenkt werden müssen, um die besseren Outputs zu bekommen. Und danach startet man wieder von vorne. Man startet von vorne, man schickt das Dreieck rein, man macht die Forward Propagation, das heißt, man rechnet das Ganze durch.

Man bekommt das Ergebnis raus, das heißt, wie zu welcher Wahrscheinlichkeit ist es diesmal ein Quadrat, ein Kreis oder ein Dreieck. Man gibt wieder das Ergebnis, sagt dem neuronalen Netz wieder: „Hey, das war richtig, das war falsch, mach mal noch mal.“ Und das macht man wieder und wieder und wieder und wieder und wieder.

Und so trainiert ein neuronales Netz. Und irgendwann können wir mit einer ganz, ganz hohen Wahrscheinlichkeit sagen: Boom, wenn wir das reinspeisen, dann ist das hier tatsächlich ein Dreieck.

Nun fragst du dich, wie lang so ein neuronales Netz trainiert werden muss. Und das hängt davon ab. Das hängt davon ab, wie komplex ein solches neuronales Netz ist. Will man z. B. ChatGPT5 oder ChatGPT6 trainieren, dann dauert ein solches Training – OpenAI sagt uns hier teilweise 6 Monate, ab und zu liest man 12 Monate.

Um ehrlich zu sein, man weiß es nicht genau. Aber das Training dieser Modelle dauert sehr, sehr, sehr lange und ist sehr, sehr, sehr teuer. Aber das Training lohnt sich, weil man damit eine Technologie erschaffen kann, die wahnsinnig gut ist. Eine Technologie, die in unserem Falle nicht Dreieck von Quadrat unterscheidet, sondern die ganz einfach errechnet, welches Wort welchem Wort-Token man am wahrscheinlichsten als Nächstes haben will.

Also noch mal ganz, ganz kurz: Wir haben hier ein neuronales Netz, das Quadrat vom Kreis und Dreieck unterscheiden kann. Man schickt hier z. B. jetzt ein Dreieck ins Rennen. Ich weiß, diese Skizze ist ein kleines Chaos. Dieses Dreieck wird danach in ein Bildchen sozusagen gemacht, 28 x 28 Pixel. Das sind 700 und irgendwas Pixel. Die Zahl sollte das da sein, 784 Pixel.

Und danach schickt man all diese Pixel in die ersten Neuronen. Tatsächlich, diese ersten Neuronen sind verknüpft mit diesen Zwischenneuronen, und sie leiten danach das Signal weiter. Und das Signal wird multipliziert mit dem Gewicht, kommt danach die richtige Zahl raus, sozusagen, um das so einfach wie möglich zu machen. Dann wird ein solches Neuron aktiviert. Kommt nicht die richtige Zahl raus, wird es nicht aktiviert. Sobald es aktiviert ist, feuert dieses Neuron weiter zum nächsten Neuron, zum nächsten, zum nächsten. Und irgendwann kommen wir hier bei diesen Endneuronen an.

Und wir bekommen eine Wahrscheinlichkeit. Das heißt, wie wahrscheinlich ist es, dass wir hier ein Quadrat haben, einen Kreis oder ein Dreieck. Und danach haben wir hier die Prozentwahrscheinlichkeiten. Wir füttern den richtigen Input: „Hey, das war ein Dreieck. Hey, hier ist die Rechnung dafür.“

Und wir schicken das Ganze noch mal zurück. Und wir machen das Ganze wieder und wieder und wieder und wieder und wieder und wieder. Und zwar so lange, bis das neuronale Netz gelernt hat, wie ein Dreieck aussieht, wie ein Kreis aussieht, wie ein Quadrat aussieht – und im Fall von ChatGPT höchstwahrscheinlich, welches Wortstückchen man am besten haben will.

Das Ding ist, dass hier einfach nur die Gewichte immer verändert werden. Das heißt, der Input ist natürlich immer der gleiche, der Output ist natürlich immer der gleiche. Diese neuronalen Netze, die feuern, wenn sie aktiviert werden.

Und das Spannende ist: Was in diesen neuronalen Netzen tatsächlich wirklich immer und überall passiert, das weiß man immer noch nicht so wirklich genau. Darüber streiten sich viele schlaue Köpfe. Man weiß nur, wenn man die Gewichte verändert, bekommt man ab und zu bessere Outputs.

Und sobald die Outputs gut sind, ist auch das neuronale Netz besser. Das heißt, gerade beim Wörter-Voraussagen weiß man nur, dass man besseren Output bekommt, wenn man z. B. die Gewichte verändert. Aber warum ganz genau der Output auf einmal so gut ist, das weiß man noch nicht mal.

Das ist hier eine interessante These, aber so ist das ganz einfach. Also jetzt wissen wir, wie ein neuronales Netz funktioniert: Neuronen werden getriggert, feuern, wenn die Gewichte richtig sind, wenn das richtige Ergebnis rauskommt. Das ist die sogenannte Forward Propagation. Am Ende sieht man sich an: „Hey, stimmt das? Ja, nein, vielleicht? Warum nicht?“

Man schickt das richtige Ergebnis zurück, nennt man Back Propagation. Und man macht das wieder und wieder, bis der Output korrekt ist.Achtung: Der Sortierungsschlüssel „Neuronales_Netzwerkwerk_erklärt“ überschreibt den vorher verwendeten Schlüssel „Neuronales Netzwerkwerk erklärt“.