Künstliches neuronales Netz

Ein neuronales Netz (auch ANN oder künstliches neuronales Netz genannt) ist eine Art Computersoftware, die von biologischen Neuronen inspiriert ist. Biologische Gehirne sind in der Lage, schwierige Probleme zu lösen, aber jedes Neuron ist nur für die Lösung eines sehr kleinen Teils des Problems verantwortlich. In ähnlicher Weise besteht ein neuronales Netzwerk aus Zellen, die zusammen arbeiten, um ein gewünschtes Ergebnis zu erzielen, obwohl jede einzelne Zelle nur für die Lösung eines kleinen Teils des Problems verantwortlich ist. Dies ist eine Methode zur Schaffung künstlich intelligenter Programme.

Neuronale Netze sind ein Beispiel für maschinelles Lernen, bei dem sich ein Programm ändern kann, wenn es lernt, ein Problem zu lösen. Ein neuronales Netz kann mit jedem Beispiel trainiert und verbessert werden, aber je größer das neuronale Netz ist, desto mehr Beispiele braucht es, um eine gute Leistung zu erbringen - im Falle des Tiefenlernens werden oft Millionen oder Milliarden von Beispielen benötigt.

Übersicht

Es gibt zwei Möglichkeiten, sich ein neuronales Netzwerk vorzustellen. Die erste ist wie ein menschliches Gehirn. Die zweite ist wie eine mathematische Gleichung.

Ein Netzwerk beginnt mit einem Input, so etwas wie ein Sinnesorgan. Die Information fließt dann durch Schichten von Neuronen, wobei jedes Neuron mit vielen anderen Neuronen verbunden ist. Wenn ein bestimmtes Neuron genügend Reize erhält, sendet es eine Nachricht an jedes andere Neuron, mit dem es über sein Axon verbunden ist. In ähnlicher Weise hat ein künstliches neuronales Netzwerk eine Eingabeschicht von Daten, eine oder mehrere verborgene Schichten von Klassifizierern und eine Ausgabeschicht. Jeder Knoten in jeder verborgenen Schicht ist mit einem Knoten in der nächsten Schicht verbunden. Wenn ein Knoten Informationen empfängt, sendet er eine gewisse Menge davon an die Knoten, mit denen er verbunden ist. Die Menge wird durch eine mathematische Funktion bestimmt, die als Aktivierungsfunktion bezeichnet wird, z. B. sigmoid oder tanh.

Wenn man sich ein neuronales Netz wie eine mathematische Gleichung vorstellt, ist ein neuronales Netz einfach eine Liste von mathematischen Operationen, die auf eine Eingabe anzuwenden sind. Der Eingang und der Ausgang jeder Operation ist ein Tensor (oder genauer gesagt ein Vektor oder eine Matrix). Jedes Schichtenpaar ist durch eine Liste von Gewichten verbunden. In jeder Schicht sind mehrere Tensoren gespeichert. Ein einzelner Tensor in einer Schicht wird als Knoten bezeichnet. Jeder Knoten ist durch eine Gewichtung mit einigen oder allen Knoten in der nächsten Schicht verbunden. Jeder Knoten hat auch eine Liste von Werten, die als Bias bezeichnet werden. Der Wert jeder Schicht ergibt sich dann aus der Aktivierungsfunktion der Werte der aktuellen Schicht (X genannt) multipliziert mit den Gewichten.

A k t i v a t i o n ( W ( e i g h t s ) X + b ( i a s ) ) {\Anzeige-Stil Aktivierung(W(eights)*X+b(ias))} {\displaystyle Activation(W(eights)*X+b(ias))}

Für das Netzwerk wird eine Kostenfunktion definiert. Die Verlustfunktion versucht abzuschätzen, wie gut das neuronale Netz die ihm zugewiesene Aufgabe erfüllt. Schließlich wird eine Optimierungstechnik angewendet, um die Ausgabe der Kostenfunktion durch Ãnderung der Gewichte und Vorspannungen des Netzes zu minimieren. Dieser Prozess wird als Training bezeichnet. Das Training wird in einem kleinen Schritt nach dem anderen durchgeführt. Nach Tausenden von Schritten ist das Netz in der Regel in der Lage, die ihm zugewiesene Aufgabe ziemlich gut zu erfüllen.

Beispiel

Erwägen Sie ein Programm, das prüft, ob eine Person am Leben ist. Wenn eine Person entweder einen Puls hat oder atmet, gibt das Programm "lebendig" aus, andernfalls "tot". In einem Programm, das mit der Zeit nicht lernt, würde dies als "tot" geschrieben werden:

Funktion istAlive(Impuls, Atmung) { if(Impuls ||| Atmung) { wahr;      } sonst { falsch;      } }

Ein sehr einfaches neuronales Netz aus nur einem Neuron, das dasselbe Problem löst, wird so aussehen:

Single neuron which takes the values of pulse (true/false) and breathing (true/false), and outputs value of alive (true/false).

Die Werte von Puls, Atmung und Lebend sind entweder 0 oder 1, was falsch und wahr darstellt. Wenn diesem Neuron also die Werte (0,1), (1,0) oder (1,1) gegeben werden, sollte es 1 ausgeben, und wenn es (0,0) gegeben wird, sollte es 0 ausgeben. Das Neuron tut dies, indem es eine einfache mathematische Operation auf die Eingabe anwendet - es addiert alle Werte, die ihm gegeben wurden, zusammen und fügt dann seinen eigenen verborgenen Wert hinzu, der als "Verzerrung" bezeichnet wird. Zunächst ist dieser verborgene Wert zufällig, und wir passen ihn im Laufe der Zeit an, wenn das Neuron uns nicht die gewünschte Ausgabe liefert.

Wenn wir Werte wie (1,1) zusammenzählen, könnten wir am Ende Zahlen größer als 1 erhalten, aber wir wollen, dass unser Ergebnis zwischen 0 und 1 liegt! Um dies zu lösen, können wir eine Funktion anwenden, die unsere tatsächliche Ausgabe auf 0 oder 1 begrenzt, selbst wenn das Ergebnis der Neuronenmathematik nicht innerhalb des Bereichs lag. In komplizierteren neuronalen Netzen wenden wir eine Funktion (z.B. sigmoid) auf das Neuron an, so dass sein Wert zwischen 0 und 1 liegt (z.B. 0,66), und dann geben wir diesen Wert an das nächste Neuron weiter, bis wir unsere Ausgabe benötigen.

Lernmethoden

Es gibt drei Möglichkeiten, wie ein neuronales Netzwerk lernen kann: überwachtes Lernen, unbeaufsichtigtes Lernen und Verstärkungslernen. Alle diese Methoden funktionieren entweder durch Minimierung oder Maximierung einer Kostenfunktion, aber jede dieser Methoden ist bei bestimmten Aufgaben besser.

Kürzlich nutzte ein Forschungsteam der University of Hertfordshire, Großbritannien, das Reinforcement Learning, um einen humanoiden iCub-Roboter dazu zu bringen, einfache Wörter durch Gebrabbel zu lernen.

Fragen und Antworten

F: Was ist ein neuronales Netzwerk?


A: Ein neuronales Netzwerk (auch ANN oder künstliches neuronales Netzwerk genannt) ist eine Art von Computersoftware, die von biologischen Neuronen inspiriert ist. Es besteht aus Zellen, die zusammenarbeiten, um ein gewünschtes Ergebnis zu erzielen, obwohl jede einzelne Zelle nur für die Lösung eines kleinen Teils des Problems verantwortlich ist.

F: Was ist der Unterschied zwischen einem neuronalen Netzwerk und einem biologischen Gehirn?


A: Biologische Gehirne sind in der Lage, schwierige Probleme zu lösen, aber jedes Neuron ist nur für die Lösung eines sehr kleinen Teils des Problems verantwortlich. In ähnlicher Weise besteht ein neuronales Netzwerk aus Zellen, die zusammenarbeiten, um ein gewünschtes Ergebnis zu erzielen, obwohl jede einzelne Zelle nur für die Lösung eines kleinen Teils des Problems verantwortlich ist.

F: Welche Art von Programm kann künstlich intelligente Programme erstellen?


A: Neuronale Netzwerke sind ein Beispiel für maschinelles Lernen, bei dem sich ein Programm verändern kann, während es lernt, ein Problem zu lösen.

F: Wie können Sie trainieren und sich mit jedem Beispiel verbessern, um Deep Learning zu nutzen?


A: Ein neuronales Netzwerk kann mit jedem Beispiel trainiert und verbessert werden, aber je größer das neuronale Netzwerk ist, desto mehr Beispiele braucht es, um gut zu funktionieren - im Falle von Deep Learning sind oft Millionen oder Milliarden von Beispielen erforderlich.

F: Was brauchen Sie, damit Deep Learning erfolgreich ist?


A: Damit Deep Learning erfolgreich sein kann, benötigen Sie Millionen oder Milliarden von Beispielen, je nachdem, wie groß Ihr neuronales Netzwerk ist.

F: Was hat maschinelles Lernen mit der Entwicklung künstlich intelligenter Programme zu tun?



A: Maschinelles Lernen hat mit der Entwicklung künstlich intelligenter Programme zu tun, weil es Programmen erlaubt, sich zu verändern, während sie lernen, wie sie Probleme lösen.

AlegsaOnline.com - 2020 / 2023 - License CC3