Was ist ein neuronales Netz?
Update: 2021-08-25
Description
Gesina Schwalbe
Johannes Rabold
Heute soll es im Detail um die Frage gehen, was ein neuronales Netz eigentlich ist, wie es aussieht und warum sie so beliebt geworden sind, um komplexe Probleme damit zu modellieren. Außerdem sprechen wir ein paar Nachteile an und wo man anfangen kann, wenn man mal selber ein neuronales Netz basteln möchte. Vorwissen wird keines nötig.
Hausmeisterei
- Vielen Dank an:
- Oli, unseren Podcastpapi: Vielen Dank für die technische Unterstützung!
Schaut doch mal bei seinem Podcast Coastercast auf coastercast.de vorbei. - Laura, Beepos Mami: Vielen Dank für die wunderschönen Illustrationen!
- Alle, die uns Feedback gegeben haben!
- Oli, unseren Podcastpapi: Vielen Dank für die technische Unterstützung!
- Gebt uns Feedback aller Art (Kontaktinfos findet ihr auf unserer Homeage)! Was hat euch gefallen? Was stört euch?
Zusammenfassung: Ganz kurz für Beepo
- Klassische neuronale Netze (NNs) haben wenig mit Gehirnen zu tun, sondern sind mathematische Funktionen die schon lange erforscht werden.
- Wie bei allen Funktionen: Eine passende Modellierung des Problems als „Zahlen-rein-Zahlen-raus“ ist Voraussetzung, um das Problem mit einem NN lösen zu können.
- NNs sind modular aufgebaut aus (vielen) kleinen, einfachen Funktionsbausteinen, den Neuronen, die miteinander verknüpft und häufig in Schichten angeordnet sind.
- Neuronale Netze sind sehr flexibel (können viele Problem lösen), parallelisierbar und gut optimierbar und damit gut geeignet für maschinelles Lernen in komplexen Problemstellungen.
- Natürlich haben NNs auch Nachteile: Aufgrund ihrere Größe sind ihre Entscheidungen oft schwer nachvollziehbar („black-box„) und NNs erlangen häufig nur Fähigkeiten der Mustererkennung aber kein echtes Verständnis von Randbedingungen eines Problems (z.B. physikalische Gesetzmäßigkeiten).
Ein paar Details
- Klassische künstliche neuronale Netze (NN) haben wenig mit Gehirnen zu tun außer die Modularität. Sie sind lediglich von natürlichen Neuronen inspiriert und wurden bereits in den 1950er von Frank Rosenblatt in Form des einfachen Perzeptrons vorgestellt.
(Das ist anders für sog. Spiking Neural Networks, die explizit echten biologischen Neuronen nachempfunden sind. Hier wird zusätzlich eine zeitliche Verzögerung beim „Feuern“ der Neuronen verwendet.) - Ein NN ist „nur“ eine sehr flexible Funktion, d.h. nimmt einen oder mehrere Zahlenwerte entgegen und gibt einen oder mehrere Zahlenwerte aus.
- Anwendungen: Um ein NN anwenden zu können, muss man sein Problem so formulieren (mathematisch modellieren), dass man eine Funktion sucht, die Zahlen entgegennimmt und Zahlen zurückgibt. Z.B.
- Eingaben: Bilder (jedes Pixel ist ein oder mehrere Zahlenwerte), Tabellarische Daten (jeder Spalteneintrag ist eine Zahl), Text (jedes Wort erhält eine eindeutige Zahlenrepräsentation), Audioaufnahmen (vgl. MP3-Format)
- Ausgaben: z.B. bei Klassifizierung in N verschiedene Klassen wird für jede Klasse eine Zahl ausgegeben und für eine Eingabe „gedie mit dem höchsten Wert „gewinnt“ jeweils
- Aufbau: Ähnlich wie ein Haus aus Legobausteinen ist ein NN modular aufgebaut aus einfachen kleinen Bausteinen, den Neuronen, und Verknüpfungen dazwischen.
- Ein Neuron ist auch eine Funktion, die Zahlenwerte entgegen nimmt und einen Zahlenwert zurückgibt. Dabei ist die Reihenfolge der Zahlenwerte bei der Eingabe zumeist egal, z.B. weil sie im Neuron zuerst aufsummiert werden. Ein Neuron ist meistens nicht-linear:
- Erst werden die Eingaben aufsummiert,
- dann wird eine Verschiebung (lernbarer Bias) addiert und
- zuletzt wird eine nicht-lineare Aktivierungsfunktion (z.B. Rectified Linear Unit oder Sigmoid)
- Eine Verknüpfung zwischen Neuronen leitet die Ausgabe eines Neurons als Eingabe an ein anderes Neuron weiter. Dabei wird die Ausgabe gewichtet, d.h. mit einem Faktor (dem Gewicht) multipliziert (Intuition: Wie viel soll Neuron A zu Neuron B beitragen?). Diese Gewichte sind auch ein Teil, der angepasst (gelernt) werden kann.
- Neuronen sind meist gruppiert in Schichten (Layer), wobei Neuronen innerhalb einer Schicht nicht miteinander verknüpft sind und daher parallel ausgewertet werden können. Schichten werden meist klassifiziert nach der Struktur der Verbindungen zur vorherigen Schicht, z.B.: Dense Layer, falls jedes Neuron als Eingabe alle Ausgaben der Vorschicht bekommt, oder Convolutional Layer, wenn jedes Neuron nur mit solchen aus demselben lokalen Bereich verknüpft sind .
- Eingaben werden über Eingabeneuronen und Ausgaben über Ausgabeneuronen modelliert. Die Eingabeneuronen nehmen einfach den Werte der Eingabe an und leiten diese weiter (ein Neuron pro Zahl) und Ausgabeneuronen nehmen am Ende den Wert der Endausgabe an.
- Ein Neuron ist auch eine Funktion, die Zahlenwerte entgegen nimmt und einen Zahlenwert zurückgibt. Dabei ist die Reihenfolge der Zahlenwerte bei der Eingabe zumeist egal, z.B. weil sie im Neuron zuerst aufsummiert werden. Ein Neuron ist meistens nicht-linear:
- Stellschrauben:
- Architektur: Typ & Anzahl & Verknüpfungen der Neuronen (u.a. auch Anzahl und Breite der Schichten)
- Parameter, die gelernt werden können: Gewichte & Bias, u.U. weitere Parameter der Aktivierungsfunktion
- Vorteilhafte Eigenschaften: NNs haben ein paar wirklich praktische Eigenschaften:
- Flexibilität: Neuronale Netze können bei geeigneter Wahl der Architektur sehr komplexe Probleme mit Zahlen als Ein- und Ausgabe lösen. Genauer: Es ist mathematisch erwiesen, dass unter bestimmten Voraussetzungen für jedes Problem und jede gewünschte Genauigkeit theoretisch ein NN existiert, das dieses Problem mit entsprechender Genauigkeit löst (also entsprechend nah an die zugrundeliegende wahre Funktion heran kommt). Der Sammelbegriff für diese Aussagen ist Unversaler Approximationssatz.
Aber Achtung: Das ein rein theoretisches Resultat, d.h. man weiß, dass es eine Architektur und Parameter gibt, die ein Problem lösen, aber leider nicht welche (und es können auch wirklich seeehr viele Neuronen nötig sein). - Parallelisierbarkeit: Alle Neuronen, die gegenseitig keine Eingabe voneinander bekommen, können parallel berechnet werden (meist in Schichten zusammengefasst).
Das lässt sich auf spezieller Hardware, wie z.B. Grafikkarten, sehr schnell ausführen, oder sogar auf mehrere Geräte verteilen. Das gilt sowohl für das Ausführen als auch für das Training des NNs (Stichwort Federated Learning). - Optimierbarkeit: Die Grundoperationen sind einfach und gut erforscht. Insb. ist die Ableitung bekannt. D.h. man weiß für ein gegebenes Beispiel, in welche Richtung man die Parameter ändern muss, um für dieses Beispiel ein Stückchen besser zu werden, also näher an eine gewünschte Ausgabe heranzukommen. Die meisten Lernverfahren nutzen dies um ein NN schrittweise zu optimieren.
- Flexibilität: Neuronale Netze können bei geeigneter Wahl der Architektur sehr komplexe Probleme mit Zahlen als Ein- und Ausgabe lösen. Genauer: Es ist mathematisch erwiesen, dass unter bestimmten Voraussetzungen für jedes Problem und jede gewünschte Genauigkeit theoretisch ein NN existiert, das dieses Problem mit entsprechender Genauigkeit löst (also entsprechend nah an die zugrundeliegende wahre Funktion heran kommt). Der Sammelbegriff für diese Aussagen ist Unversaler Approximationssatz.
- Nachteile:
- Black-box: Neuronale
Comments
In Channel

















