[PYTHON] Hinweise zu neuronalen Netzen

Beachten Sie, was ich aus "Deep Learning von Grund auf neu" gelernt habe.

Verlustfunktion

Indikator für schlechte Leistung des neuronalen Netzes Beim Lernen des neuronalen Netzwerks werden die Parameter unter Verwendung des Gradienten als Hinweis aktualisiert.

Summe der Fehlerquadrate (mittlerer quadratischer Fehler)

$ y_k $ ist die Anzahl der Ausgänge des neuronalen Netzwerks, $ t_k $ sind die Lehrerdaten, $ k $ ist die Anzahl der Dimensionen der Daten Die Ausgabe des neuronalen Netzwerks kann als Wahrscheinlichkeit interpretiert werden. $ (0 \ leq y_k \ leq1) $ Außerdem ist $ t_k $ ein One-Hot-Ausdruck.

E = \frac{1}{2}\sum_{k}(y_k-t_k)^2

Kreuzentropiefehler

$ \ Log $ hat eine Basis von $ e $. $ y_k $ und $ t_k $ entsprechen der Summe der Fehlerquadrate. Je näher die Ausgabe $ y_k $ an 1 liegt, desto kleiner ist die Fehlerentropie.

E = -\sum_{k}t_k\log y_k

Mini-Batch-Lernen

Eine bestimmte Anzahl von Chunks, ausgewählt aus Trainingsdaten = Mini-Batch Das Lernen wird für jede Mini-Charge durchgeführt.

Gradientenmethode

Finden Sie den Minimalwert der Verlustfunktion mithilfe des Gradienten. Verringern Sie den Wert der Funktion, indem Sie den Vorgang des Zurücklegens einer bestimmten Strecke in Gradientenrichtung vom aktuellen Standort wiederholen. Um genau zu sein, wird es als Gradientenabstiegsmethode bezeichnet.

x = x - \eta \frac{\partial f}{\partial x_0}

$ \ eta $ ist die Anzahl der Aktualisierungen und wird als Lernrate bezeichnet. Solche von Menschenhand eingestellten Parameter werden als Hyperparameter bezeichnet.

Stochastischer Gradientenabstieg

Gradientenabstiegsmethode für zufällig ausgewählte Daten als Mini-Batch.

Lernverfahren

0. Annahme

Es gibt anpassbare Gewichte und Vorurteile. Das Anwenden dieses Gewichts und dieser Tendenz auf Trainingsdaten ist "Lernen"

1. Mini-Charge

Ein Teil der Daten wird zufällig aus den Trainingsdaten extrahiert. Verringern Sie den Wert der Verlustfunktion der Mini-Charge.

2. Gradientenberechnung

Um die Verlustfunktion der Mini-Charge zu ermitteln, ermitteln Sie den Gradienten jedes Gewichtsparameters.

3. Parameteraktualisierung

Aktualisieren Sie den Gewichtsparameter in Verlaufsrichtung.

4. Wiederholen

Wiederholen Sie die Schritte 1 bis 3.

Nächstes Mal werden wir ein zweischichtiges neuronales Netz implementieren.

Recommended Posts

Hinweise zu neuronalen Netzen
Hinweise zur Flasche
Sellerie-Notizen zu Django
Hinweise zur Installation von PycURL
[PyTorch Tutorial ③] NEURALE NETZWERKE
Hinweise zur Verwendung von Alembic
Hinweise zu Funktionen der SciPy.linalg-Familie
Hinweise zur Funktion und Rückverfolgung
Hinweise zur Installation von dlib auf einem Mac
Hinweise zum SQLite3-Modul von Python
Anmerkungen zu * args und ** kargs
Hinweise zum Definieren von PySide-Steckplätzen (2)
[Django] Hinweise zur Verwendung der Django-Debug-Symbolleiste
Anmerkungen zu Pyenv und Atom
Vorsichtsmaßnahmen beim Definieren von Slots für PySide
[Python] Hinweise zur Datenanalyse
Hinweise zur Optimierung mit Pytorch
Hinweise zur Installation von Python auf Ihrem Mac
Hinweise zur Installation von pipenv auf Ihrem Mac
Hinweise zur Installation von Anaconda 3 unter Windows
Hinweise zu imshow () von OpenCV
Hinweise zur Installation von Python unter CentOS
Hinweise zu Python- und Wörterbuchtypen
Hinweise zur Paketverwaltung mit conda
Hinweise zur Verwendung von MeCab aus Python
Hinweise zur Verwendung von Pywinauto
Hinweise zur Verwendung von Post-Receive und Post-Merge
Hinweise zur Verwendung von featuretools
Hinweise zur Installation von Python mit PyEnv
Hinweise zur Verwendung von rstrip mit Python.
Hinweise zum Zugriff auf dashDB über Python
Hinweise zur Verwendung von matplotlib auf dem Server
Hinweise zum Schreiben von require.txt
Hinweise zur Installation von Ubuntu 18.04 auf XPS 15 7590
(Anfänger) Hinweise zur Verwendung von pyenv auf dem Mac
Auswirkungen von Bildrotation, -vergrößerung, -farbe usw. auf das Faltungsnetzwerk (CNN)
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Hinweise zum Ausführen von M5Stick V mit uPyLoader
Anmerkung von nfc.ContactlessFrontend () von nfcpy von Python
Hinweise zur Installation von Sublime Text unter Ubuntu
Hinweise zum Erstellen statischer Dateien mit Django
Hinweise zur Standardeingabe / -ausgabe von Go
Hinweise zum lokalen Ausführen von Azure Machine Learning
Hinweise zur japanischen OCR mit Python
Bildgebung eines neuronalen Netzwerks, das MNIST erkennt
Hinweise zum Erstellen von Python und Pyenv auf dem Mac
Hinweise zur Implementierung von APNs-Tests mit Pytest
Rekursives neuronales Netzwerk: Eine Einführung in RNN
Anmerkungen zur KL-Divergenz zwischen Poisson-Verteilungen
Hinweise zum Einrichten von pydicom unter macOS
Implementiert in Python PRML Kapitel 5 Neuronales Netzwerk
[PyTorch] Tutorial (japanische Version) ③ ~ NEURAL NETWORKS (Neuronales Netzwerk) ~
Träumt das neuronale Netz von einer elektrischen Maus?