Was sind neuronale Netze?
Neuronale Netze versuchen, das menschliche Gehirn nachzuahmen, und kombinieren Informatik und Statistik, um gängige Probleme im Bereich der KI zu lösen
Schwarzer und blauer Hintergrund
Was ist ein neuronales Netz?

Neuronale Netze, die auch als künstliche neuronale Netze (KNN) oder simulierte neuronale Netze (SNN) bezeichnet werden, sind ein Teilbereich der Disziplin des maschinellen Lernens (ML) und stellen das Herzstück von Deep-Learning-Algorithmen dar. Ihr Name und ihre Struktur sind dem menschlichen Gehirn nachempfunden und sie ahmen die Art und Weise nach, in der biologische Neuronen einander Signale senden.

Künstliche neuronale Netze (KNN) bestehen aus einer Knotenschicht, die eine Eingabeschicht, eine oder mehrere verborgene Schichten und eine Ausgabeschicht enthält. Jeder Knoten bzw. jedes künstliche Neuron ist mit einem anderen verbunden und verfügt über eine ihm zugeordnete Gewichtung und einen Schwellenwert. Wenn die Ausgabe eines beliebigen einzelnen Knotens über dem für ihn festgelegten Schwellenwert liegt, wird dieser Knoten aktiviert und sendet Daten an die nächste Schicht im Netz. Andernfalls werden keine Daten an die nächste Schicht des Netzes weitergegeben.

Neuronale Netze nutzen Trainingsdaten, um zu lernen und ihre Genauigkeit im Laufe der Zeit zu verbessern. Sind diese Lernalgorithmen jedoch erst einmal auf Genauigkeit abgestimmt, stellen sie leistungsfähige Tools in der Computerwissenschaft und der künstlichen Intelligenz dar, mit denen sich Daten mit hoher Geschwindigkeit klassifizieren und zu Gruppen (Clustern) zusammenfassen lassen. Tasks in der Sprach- oder Bilderkennung nehmen im Vergleich zur manuellen Erkennung durch menschliche Experten oft nur noch Minuten statt Stunden in Anspruch. Eines der bekanntesten neuronalen Netze ist der Suchalgorithmus von Google.

Wie funktionieren neuronale Netze?

Stellen Sie sich jeden einzelnen Knoten als ein eigenes Modell einer linearen Regression vor, das sich aus Eingabedaten, Gewichtungen, einer Verzerrung bzw. Bias (oder einem Schwellenwert) und einer Ausgabe zusammensetzt. Die Formel sähe etwa wie folgt aus:

∑wixi + bias = w1x1 + w2x2 + w3x3 + bias

output = f(x) = 1 if ∑w1x1 + b>= 0; 0 if ∑w1x1 + b < 0

Sobald eine Eingabeschicht festgelegt ist, werden Gewichtungen zugewiesen. Mithilfe dieser Gewichtungen kann die Bedeutung einer gegebenen Variablen bestimmt werden, wobei größere Gewichtungen beträchtlich mehr zur Ausgabe beisteuern als andere Eingaben. Alle Eingaben werden dann mit ihren jeweiligen Gewichtungen multipliziert und anschließend summiert. Anschließend wird die Ausgabe durch eine Aktivierungsfunktion geschleust, die die Ausgabe bestimmt. Wenn die Ausgabe einen vorgegebenen Schwellenwert überschreitet, „feuert“ der Knoten, d. h. er wird aktiviert und die Daten werden an die nächste Schicht des Netzes übergeben. Dies führt dazu, dass die Ausgabe eines Knotens als Eingabe für den nächsten Knoten verwendet wird. Dieser Prozess der Weiterleitung von Daten von einer Schicht zur nächsten definiert dieses neuronale Netz als Feedforward-Netz, d. h. als Netz mit Feedforward-Logik.

Lassen Sie uns aufschlüsseln, wie ein einzelner Knoten bei Verwendung von Binärwerten aussehen könnte. Wir können dieses Konzept auf ein konkreteres Beispiel anwenden, z. B. auf die Frage, ob Sie surfen gehen sollten (Ja: 1, Nein: 0). Die Entscheidung, ob Sie surfen gehen sollten oder nicht, ist das vorhergesagte Ergebnis oder ŷ (y mit Zirkumflex, engl. ‚y-hat‘). Nehmen wir an, die folgenden drei Faktoren beeinflussen Ihre Entscheidungsfindung:

  1. Sind die Wellen gut? (Ja: 1, Nein: 0)
  2. Befinden sich viele Surfer vorort? (Ja: 1, Nein: 0)
  3. Gab es vor kurzem einen Haiangriff? (Ja: 0, Nein: 1)

Gehen wir also von den folgenden Annahmen aus, wodurch sich die nachfolgend genannten Eingaben ergeben:

  • X1 = 1, da die Wellen nur so hereinrollen
  • X2 = 0, da sich viele Surfer im Wasser befinden
  • X3 = 1, da es in letzter Zeit keinen Haiangriff gegeben hat

Jetzt müssen wir einige Gewichtungen zuweisen, um den Stellenwert festzulegen. Größere Gewichtungen bedeuten, dass bestimmte Variablen durch ihren Stellenwert eine stärkere Einflussnahme auf die Entscheidung oder das Ergebnis haben.

  • W1 = 5, da die Wellen nur selten hoch sind
  • W2 = 2, da Sie an Menschenmassen gewöhnt sind
  • W3 = 4, da Sie Angst vor Haien haben

Nehmen wir zum Abschluss noch einen Schwellenwert von 3 an, was einem Verzerrungswert (Bias) von −3 entspräche. Da jetzt eine Reihe von unterschiedlichen Eingaben vorliegt, können wir damit beginnen, Werte in die Formel einzufügen, um die gewünschte Ausgabe zu erhalten.

Y-hat = (1*5) + (0*2) + (1*4) – 3 = 6

Wenn wir die Aktivierungsfunktion vom Anfang des vorliegenden Abschnitts verwenden, können wir feststellen, dass die Ausgabe dieses Knotens 1 wäre, da 6 größer als 0 ist. In diesem Fall würden Sie also surfen gehen. Wenn wir jedoch die Gewichtungen oder den Schwellenwert anpassen, können wir andere Ergebnisse mit dem Modell erzielen. Wenn wir eine Entscheidung wie im obigen Beispiel genauer ins Auge fassen, ist durchaus zu erkennen, wie ein neuronales Netz zunehmend komplexere Entscheidungen treffen könnte, die jeweils von der Ausgabe vorheriger Entscheidungen oder Schichten abhängen.

Im obigen Beispiel haben wir Perzeptrone verwendet, um einige der hier beteiligten mathematischen Zusammenhänge zu veranschaulichen, aber neuronale Netze nutzen Sigmoidneuronen, die sich dadurch auszeichnen, dass sie Werte zwischen 0 und 1 haben. Da sich neuronale Netze ähnlich verhalten wie Entscheidungsstrukturen, indem sie Daten von einem Knoten zu einem anderen weiterreichen, verringert die Anzahl von x Werten zwischen 0 und 1 die Auswirkung einer bestimmten Änderung einer einzelnen Variablen auf die Ausgabe eines bestimmten Knotens und damit auch auf die Ausgabe des neuronalen Netzes.

Wenn wir anfangen, über praktischer ausgerichtete Anwendungsfälle für neuronale Netze nachzudenken, wie etwa die Bilderkennung oder die Klassifizierung, ist es sinnvoll, überwachtes Lernen oder markierte Datasets zu nutzen, um den Algorithmus zu trainieren. Während wir das Modell trainieren, sollten wir seine Genauigkeit mithilfe einer Kostenfunktion (oder Verlustfunktion) bewerten. Dies wird allgemein auch als mittlerer quadratischer Fehler (Mean Squared Error, MSE) bezeichnet. In der nachstehenden Gleichung gilt Folgendes:

  • i steht für den Index der Stichprobe,
  • y-hat ist das vorhergesagte Ergebnis,
  • y ist der tatsächliche Wert und
  • m ist die Anzahl der Stichproben.

= =1/2 ∑129_(=1)^▒( ̂^(() )−^(() ) )^2

Letztendlich besteht das Ziel darin, die Kostenfunktion zu minimieren, um ihre korrekte Eignung (Tauglichkeit) für jede beliebige Beobachtung sicherzustellen. Während das Modell seine Gewichtungen und seine Verzerrung anpasst, verwendet es die Kostenfunktion und bestärkendes Lernen (Reinforcement Learning), um den Konvergenzpunkt oder das lokale Minimum zu erreichen. Der Prozess, in dem der Algorithmus seine Gewichtungen anpasst, erfolgt durch Gradientenabstieg, sodass das Modell die Richtung bestimmen kann, die es einschlagen muss, um Fehler zu reduzieren (oder die Kostenfunktion zu minimieren). Mit jedem Trainingsbeispiel werden die Parameter des Modells angepasst, um allmählich am Minimum zu konvergieren.  

Lesen Sie diesen IBM Developer-Artikel, um eine eingehendere Erläuterung der an neuronalen Netzen beteiligten quantitativen Konzepte zu erhalten.

Die meisten tiefen neuronalen Netze (d. h. Netze mit mehreren verdeckten Zwischenschichten) verwenden die Feedforward-Logik, bei der der Informationsfluss in einer einzigen Richtung von der Eingabeschicht über die Zwischenschicht(en) bis hin zur Ausgabeschicht erfolgt, nämlich vorwärts („Forward“). Sie können Ihr Modell jedoch auch durch Rückwärtspropagierung trainieren, d. h. in umgekehrter Richtung von der Ausgabe zur Eingabe. Die Rückwärtspropagierung erlaubt die Berechnung des mit jedem Neuron verbundenen Fehlers und seine Zuordnung, wodurch sich die Möglichkeit ergibt, die Parameter des Modells bzw. der Modelle entsprechend anzupassen und einzupassen.

Typen neuronaler Netze

Neuronale Netze können in verschiedene Typen eingeteilt werden, die jeweils für unterschiedliche Zwecke verwendet werden. Die nachfolgende Liste ist zwar keine umfassende Zusammenstellung aller Typen, aber die unten aufgeführten sind repräsentativ für die gängigsten Typen neuronaler Netze, denen Sie im Kontext allgemeiner Anwendungsfälle begegnen werden:

Das im Jahr 1958 von Frank Rosenblatt erstellte Perzeptron ist das älteste neuronale Netz.

Der vorliegende Beitrag konzentriert sich in erster Linie auf neuronale Feedforward-Netze oder Mehrschicht-Perzeptrone (Multi-Layer Perceptrons, MLP). Sie bestehen aus einer Eingabeschicht, einer oder mehreren verdeckten Schichten und einer Ausgabeschicht. Diese neuronalen Netze werden zwar auch als Mehrschicht-Perzeptrone bzw. MLPs bezeichnet, aber es ist wichtig zu beachten, dass sie eigentlich aus Sigmoidneuronen und nicht aus Perzeptronen bestehen, da die meisten realen Probleme nicht linearer Art sind. Diese Modelle werden trainiert, in dem sie mit Daten gespeist werden, und sie bilden die Grundlage für Computer Vision, die Verarbeitung natürlicher Sprache und andere neuronale Netze.

Faltende Neuronale Netze (Convolutional Neural Networks, CNN) ähneln den Feedforward-Netzen, werden aber in der Regel für Bilderkennung, Mustererkennung und/oder Computer Vision eingesetzt. Diese Netze nutzen Prinzipien aus der linearen Algebra, insbesondere der Matrixmultiplikation, um Muster innerhalb eines Bildes zu erkennen.

Rekurrente neuronale Netze (RNN) oder rückgekoppelte neuronale Netze sind an ihren Rückkopplungsschleifen zu erkennen Diese Lernalgorithmen werden in erster Linie bei der Verwendung von Zeitreihendaten eingesetzt, um Vorhersagen für künftige Ergebnisse zu treffen, wie z. B. Börsenprognosen oder Absatzprognosen.

 

Neuronale Netze versus Deep Learning

Deep Learning und neuronale Netze werden im Gespräch häufig synonym verwendet, was Verwirrung stiften kann. Daher ist es erwähnenswert, dass sich das „Deep“ (tief) in Deep Learning lediglich auf die Tiefe der Schichten in einem neuronalen Netz bezieht. Ein neuronales Netz, das aus mehr als drei Schichten besteht – und zwar einschließlich der Eingabe- und der Ausgabeschicht – kann als Deep-Learning-Algorithmus betrachtet werden. Ein neuronales Netz, das lediglich aus zwei oder drei Schichten besteht, ist nur ein einfaches neuronales Netz.

Wenn Sie mehr über die Unterschiede zwischen neuronalen Netzen und anderen Formen künstlicher Intelligenz,  wie maschinellem Lernen, erfahren möchten, lesen Sie den englischsprachigen Blogbeitrag „AI vs. Machine Learning vs. Deep Learning vs. Neural Networks: What's the Difference?“.

Geschichte der neuronalen Netze

Die Geschichte neuronaler Netze reicht weiter zurück als die meisten Menschen glauben. Die Vorstellung einer „Maschine, die denkt“ kann zwar bis zu den Griechen der Antike zurückverfolgt werden, aber wir wollen uns auf die Schlüsselereignisse konzentrieren, die zur Entwicklung des Denkens rund um neuronale Netze geführt haben, dessen Beliebtheit im Laufe der Jahre immer wieder schwankte:

1943: Warren S. McCulloch und Walter Pitts veröffentlichten „A logical calculus of the ideas immanent in nervous activity“ (PDF, 1 MB) (Link außerhalb von ibm.com). Diese Forschungsarbeit ging der Frage nach, wie das menschliche Gehirn durch verbundene Gehirnzellen oder Neuronen komplexe Muster erzeugen kann. Eine der wichtigsten Ideen, die aus dieser Arbeit hervorgingen, war der Vergleich von Neuronen mit einem binären Schwellenwert zu Boolescher Logik (d. h. Anweisungen vom Typ 0/1 oder Wahr/Falsch bzw. True/False).   

1958: Frank Rosenblatt wird die Entwicklung des Perzeptrons zugeschrieben, dessen Konzept er in seiner Forschungsarbeit „The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain“ vorstellte und dokumentierte (Link außerhalb von ibm.com). Er führt die Arbeit von McCulloch und Pitt noch einen Schritt weiter, indem er Gewichtungen in die Gleichung einbaut. Unter Nutzung eines IBM 704 konnte Rosenblatt einen Computer dazu bringen, zu lernen, wie er links markierte Karten von rechts markierten unterscheidet.

1974: Zahlreiche Forscher leisteten zwar einen Beitrag zur Idee der Rückwärtspropagierung, aber Paul Werbos war der erste Mensch in den USA, der ihre Anwendung innerhalb von neuronalen Netzen in seiner Doktorarbeit (PDF, 8,1 MB) (Link außerhalb von ibm.com) erwähnte.

1989: Yann LeCun veröffentlichte eine Arbeit (PDF, 5,7 MB) (Link außerhalb von ibm.com), die veranschaulichte, wie die Verwendung von Einschränkungen bei der Rückwärtspropagierung und ihre Integration in die Architektur neuronaler Netze zum Trainieren von Algorithmen genutzt werden kann. Im Rahmen dieser Forschungsarbeit wurde ein neuronales Netz erfolgreich eingesetzt, um vom US-Postdienst bereitgestellte handgeschriebene Postleitzahlen zu erkennen.

Zugehörige Lösungen
IBM Watson Studio

Erstellen und skalieren Sie vertrauenswürdige KI in jeder Cloud. Automatisieren Sie den KI-Lebenszyklus für ModelOps.

IBM Watson Studio erkunden
IBM Cloud-Lösungen

Hybrid. Offen. Resilient. Ihre Plattform und Ihr Partner für die digitale Transformation.

Cloud-Lösungen erkunden
Ressourcen KI im Unternehmen, 2021: Durch Daten neue Chancen schaffen

Registrieren Sie sich für unser E-Book, um Einblicke in die Möglichkeiten, Herausforderungen und gesammelten Erfahrungen bei der Einführung von KI in Unternehmen zu erhalten.

Machen Sie den nächsten Schritt

IBM ist mittlerweile seit Jahrzehnten ein Pionier in der Entwicklung von KI-Technologien und neuronalen Netzen, was insbesondere durch die Entwicklung und Weiterentwicklung von IBM Watson unterstrichen wird. Watson ist inzwischen eine vertrauenswürdige Lösung für Unternehmen, die fortschrittliche Techniken für die Verarbeitung natürlicher Sprache und für Deep Learning auf ihre Systeme anwenden möchten und dabei einen bewährten mehrstufigen Ansatz für die Einführung und Implementierung von KI verfolgen wollen.

Deep Learning mit IBM® Watson Studio erkunden