Kurz gesagt, Neuronales Netzwerk ist eine Funktion: Eingabedaten, Ausgabeergebnis.
Nehmen wir als Beispiel MNIST handschriftliche Ziffernbilderkennung, um die entsprechende Funktionsform zu definieren:
Dies ist eine Einstiegsanwendung des neuronalen Netzes. Die Eingabe ist ein Graustufenbild mit niedriger Auflösung (28 x 28), das einer Funktion mit 784 Eingabevariablen entspricht. Wenn es sich um ein Megapixel-Farbbild handelt, erreichen die entsprechenden Eingabevariablen 3 Millionen.
Es ist ersichtlich, dass das neuronale Netz zur Lösung einiger komplexer Probleme verwendet wird und die entsprechenden Funktionen ebenfalls komplex sind. Die Realisierung des Algorithmus besteht darin, die entsprechende Funktion zu konstruieren.
Wie konstruiere ich eine so komplizierte Funktion? Wir können mit einfachen Funktionen beginnen. Das einfachste und erfolgreichste Beispiel sind digitale Schaltungen.
Digitale Schaltkreise sind die Eckpfeiler von Computern und haben unsere riesige digitale Welt aufgebaut. Aber sein Kern besteht aus UND-, ODER- und NICHT-Logikgattern.
Was ist ein Logikgatter? Es ist eigentlich eine Funktion. Und das sind die einfachsten Funktionen.
Logikgatter | Ausdruck | Funktionsform |
---|---|---|
AND-Gatter | ||
OR-Tor | ||
NOT Tor |
NOT Gate-Image (verwenden Sie 0 für und 1 für )
AND-Gatter-Bild
OR-Gatter-Bild
Kombinieren Sie einfache Logikgatter, um leistungsfähigere Funktionen zu erhalten.
Konstruieren Sie eine neue Binärfunktion:
Konstruieren Sie eine multivariate Funktion:
Durch Kombinieren einfacher Logikgatterfunktionen können neue Logikfunktionen konstruiert werden. Einschließlich Operationen wie Addition, Subtraktion, Multiplikation und Division von 32-Bit-Ganzzahlen und Operationen von 32-Bit-Gleitkommatypen mit einfacher Genauigkeit usw.
Schauen wir uns noch einmal die Programmiersprachen an. Nehmen Sie Python als Beispiel, schauen Sie sich die Elemente in Python an.
Name | Symbol | Funktion |
---|---|---|
Logische Operatoren | and or not | Binäre und unäre Logikfunktionen |
Arithmetische Operatoren | +, -, *, /, %, **, // | Binäre Funktionen |
Vergleichsoperatoren | ==, !=, >, <, >=, <= | Binäre Funktionen |
... |
Am Beispiel des Gleitkomma-Additionsoperators (+) sieht das Funktionsbild wie folgt aus:
Sie können Ihre eigenen Funktionen in Python definieren:
def f(x, y): return max(0, 2*x + 3*y - 3)
Hier wird eine neue Funktion definiert. Es verwendet "+, -, *, max" und andere Funktionen, um die neue Funktion zu konstruieren. Die Konstruktionsmethode ist auch durch die Zusammensetzung von Funktionen.
Funktionen sind überall in Programmiersprachen. Durch Kombinieren von Grundfunktionen können neue Funktionen konstruiert und neue Algorithmen erhalten werden.
Neuronales Netz ist auch Funktion. Wie digitale Schaltungen und Programmiersprachen besteht auch sie aus einfachen Funktionen. Die Grundeinheiten digitaler Schaltungen sind logische Funktionen wie UND, ODER und NICHT. Die Grundeinheiten in Programmiersprachen sind Funktionen wie verschiedene Operatoren, während die Grundeinheit neuronaler Netze Neuronen sind.
Was ist also ein Neuron? Ein biologisches Neuron ist eine Zelle mit Eingangsdendriten und Ausgangsaxonen. Und das Neuron im neuronalen Netz ist ein künstliches Neuron, es ist auch eine Funktion, genauer gesagt eine Art Funktion.
Die Anzahl der Eingänge von Neuronen kann verändert werden, d.h. es handelt sich um eine -Elementfunktion , und kann unterschiedlich sein Neuronen.
Neuronen verbinden sich zu einem neuronalen Netz. Wie nachfolgend dargestellt:
Das neuronale Netzwerk enthält drei Neuronen (zählen Sie keine Eingabeneuronen):
Die durch das neuronale Netz repräsentierte Funktion ist:
Es reicht nicht aus, nur zu wissen, dass es sich um eine -Elementfunktion handelt. Die Grundeinheiten UND-, ODER- und NICHT-Gatter in digitalen Schaltungen listen alle die Wahrheitstabelle auf und zeichnen die Figur, aber was ist mit dem Neuron?