Einmal stieß ich auf ein Buch mit dem Titel
"Create Your Neural Network" , das von
Tarik Rashid verfasst wurde. Im Gegensatz zu vielen anderen Büchern über neuronale Netze wurde hier alles in einfacher Sprache mit einer ausreichenden Anzahl von Beispielen und Tipps präsentiert
Inspiriert von diesem Buch möchte ich es Schritt für Schritt durchgehen - nämlich seinen praktischen Teil - das
Schreiben von Code für das einfachste neuronale Netzwerk .
Dieser Artikel richtet sich an diejenigen, die neuronale Netze und maschinelles Lernen betreiben möchten, aber bisher Schwierigkeiten haben, diesen erstaunlichen Bereich der Wissenschaft zu verstehen. Das einfachste
Gerüst des Codes eines neuronalen Netzwerks wird nachstehend beschrieben, so dass viele das einfachste Prinzip der Konstruktion und Interaktion von allem verstehen, woraus dieses neuronale Netzwerk besteht.

Theorien zum maschinellen Lernen und zu neuronalen Netzen am Habré reichen aus. Aber wenn jemand es braucht, werde ich am Ende des Artikels einige Links hinterlassen. Und jetzt beginnen wir direkt mit dem Schreiben von Code und schreiben in
Python . Ich empfehle die Verwendung von
Jupyter-Notebook beim Schreiben von Code
Schritt 1. Netzwerkinitialisierung
Zunächst müssen wir natürlich alle aktiven Komponenten unseres Netzwerks initialisieren
Sigmoid
Diese Funktion gehört zur Klasse der stetigen Funktionen, nimmt am Eingang eine
beliebige reelle Zahl (d. H. Nicht unbedingt eine ganze Zahl) und gibt am Ausgang eine reelle Zahl im Bereich von 0 bis 1 an .
Insbesondere werden große (Modulo)
negative Zahlen zu Null und große positive Zahlen zu Eins .
Seine Ausgabe wird gut
als Grad der Neuronenaktivierung interpretiert: von der
Abwesenheit der Aktivierung (0) bis zur vollständig
gesättigten Aktivierung (1).
Das Sigmoid wird durch die Formel ausgedrückt:

Das Diagramm der Sigmoidfunktion gemäß der folgenden Abbildung:

Die Sigmoidfunktion ist:
- kontinuierlich
- monoton ansteigend;
- differenzierbar.
In diesem Code ist das Sigmoid, wie Sie sehen können, unter dem Namen
expit (x) vorhanden.Ein bisschen darüber, wie ein Knoten in einem neuronalen Netzwerk aussieht

Das Bild zeigt am meisten diesen Knoten, nur wird er normalerweise in Form eines Kreises und nicht eines Rechtecks dargestellt. Wie wir sehen, gibt es innerhalb eines Rechtecks (Brunnen oder eines Kreises) - das ist alles abstrakt - zwei Funktionen:
Die 1. Funktion beschäftigt sich mit der Tatsache, dass sie alle Eingaben unter Berücksichtigung der Gewichte, Daten und manchmal sogar unter Berücksichtigung des Verschiebungsneurons empfängt (ein spezielles Neuron, das es den Graphen einfach ermöglicht, sich zu bewegen und sich nicht zu einem hässlichen Haufen zu vermischen, das ist alles).
Die 2. Funktion nimmt als Parameter denselben Wert an, den die erste Funktion summiert hat, und diese zweite Funktion wird als Aktivierungsfunktion bezeichnet. In unserem Fall ein
SigmoidWir fahren fort :
Teil 2. Neuronales Netzwerktraining
def train(self, inputs_list, targets_list):
Und jetzt nähern wir uns dem EndeTeil 3. Abfrage eines neuronalen Netzes
Wir bringen es zum Ende
PS
Oben wurde ein rechnerisch einfachstes Modell eines neuronalen Netzwerks vorgestellt. Es wurde jedoch keine spezifische Anwendung gezeigt.
Wenn Sie möchten, können Sie noch weiter gehen, indem Sie die Fähigkeit hinzufügen, handgeschriebenen Text im
MNIST- Code zu erkennen. Dazu können Sie mit dieser
Jupyter-Datei vollständig herausfinden (und einfach Spaß haben). Meine Aufgabe war es, den Code zu demonstrieren und, wenn möglich, im Netzwerk und für zu kauen welche Antworten
PPS
Nachfolgend finden Sie nützliche Links:
1. Link zu Github Tarik
->2. Sein Buch
->3.Maschinelle Lerntheorie
->4.Maschinelle Lerntheorie
->5.Maschinelle Lerntheorie
->