Beginn des Studiums: Samstag, 7. Dezember
Unterrichtsmaterialien usw.: ・ Miyuki Oshige "Details! Python3 Introductory Note ”(Sotech, 2017): 12/7 (Sa) -12/19 (Do) gelesen ・ Progate Python-Kurs (insgesamt 5 Kurse): Ende 12/19 (Donnerstag) -12/21 (Samstag) ・ Andreas C. Müller, Sarah Guido "(japanischer Titel) Maschinelles Lernen ab Python" (O'Reilly Japan, 2017): 21.12. (Sa) - 23. Dezember (Sa) ・ Kaggle: Real or Not? NLP mit Katastrophen-Tweets: Veröffentlicht am Samstag, 28. Dezember, bis Freitag, 3. Januar Einstellung ・ Wes Mckinney "(japanischer Titel) Einführung in die Datenanalyse von Python" (O'Reilly Japan, 2018): 1/4 (Mittwoch) bis 1/13 (Montag) gelesen ・ ** Yasuki Saito "Tiefes Lernen von Null" (O'Reilly Japan, 2016): 1/15 (Mi) ~ **
Ich habe gestern angefangen zu lesen, weil ich das neuronale Netz und das tiefe Lernen besser verstehen wollte, was ein Durchbruch in der KI-Forschung war. S.122 Kapitel 4 Lesen Sie das neuronale Netz vollständig durch.
・ Grundsätzlich eine Überprüfung meiner bisherigen Aktivitäten (Python-Übersicht, Umgebungskonstruktion, arithmetischer Durchschnitt usw.) Ein Kapitel, das das Wissen beschreibt, das erforderlich ist, um dieses Buch weiterzulesen Nur der Teil, den ich nicht wenig verstanden habe, wird beschrieben
・ Bool: Ein Typ, der entweder True oder False annimmt Operatoren wie und oder oder nicht können verwendet werden.
Klassendefinition
Klasse Klassenname:
def __init__(self,Streit, …): #Konstrukteur
...
def Methodenname 1(self,Streit, …): #Methode 1
...
def Methodenname 2(self,Streit, …): #Methode 2
...
#Der Konstruktor wird auch als Initialisierungsmethode bezeichnet.
・ Perceptron ist ein Algorithmus, den es seit 60 Jahren gibt (erfunden 1957). Es ist der Ursprung des neuronalen Netzwerks (Deep Learning).
-Das Perceptron empfängt mehrere Signale als Ein- und Ausgänge eines Signals. Das Perceptron-Signal ist ein Binärwert von "Flow or Not Flow" (1 oder 0). Jedes der mehreren Eingangssignale hat ein eindeutiges Gewicht, und je größer das Gewicht ist, desto wichtiger ist das entsprechende Signal. Ein Wert, der die Wichtigkeit des Eingangssignals steuert.
Zusätzlich zu "Eingabe", "Gewicht" und "Ausgabe" gibt es ein Element namens "Bias". Bias ist ein Parameter, der den Grad einstellt, in dem das Ausgangssignal 1 ausgibt (Neuron Firing).
Da Perceptron linear ist, kann eine Klassifizierung wie die exklusive logische Summe (XOR) nicht realisiert werden. (Einschränkung von Perceptron) Da Perceptron jedoch "schichten" kann, ist es möglich, Nichtlinearität durch Stapeln auszudrücken. (Um genau zu sein, die Grenzen von "einschichtigem" Perceptron)
Obwohl Perceptron das Potenzial hat, theoretisch von einem Computer ausgedrückt zu werden, muss die Arbeit zur Bestimmung des geeigneten Gewichts zur Erfüllung der erwarteten Eingabe und Ausgabe manuell erfolgen. Das neuronale Netzwerk ist jedoch eines der Mittel zur Lösung dieses Problems und hat die Eigenschaft, automatisch geeignete Gewichtsparameter aus den Daten lernen zu können.
Im neuronalen Netzwerk (Perceptron) wird der Eingang gewichtet und vorgespannt, und die Summe dieser Eingangssignale wird durch ** Aktivierungsfunktion ** und Ausgang umgewandelt.
-Die Aktivierungsfunktion ist eine Funktion, die den Ausgang an der Grenze des Schwellenwerts schaltet und als Schrittfunktion oder Schrittfunktion bezeichnet wird. Perceptron verwendet eine Schrittfunktion.
Im neuronalen Netzwerk wird die ** Sigmoidfunktion ** als Aktivierungsfunktion verwendet. Die Sigmoidfunktion ist im Vergleich zur Schrittfunktion eine glatte Kurve, und der Ausgang ändert sich kontinuierlich in Bezug auf den Eingang. Diese Glätte ist die Grundlage für das Erlernen des neuronalen Netzwerks. Das gemeinsame Merkmal ist, dass der Ausgang zwischen 0 und 1 verschoben werden kann, wenn es wichtig ist, ein großer Wert, wenn er nicht wichtig ist, und egal wie groß der Wert ist.
In letzter Zeit wird zusätzlich zur Sigmoidfunktion häufig ** ReLU (Rectified Linear Unit) ** verwendet.
-Die in der letzten Ausgabeebene verwendete Aktivierungsfunktion muss je nach Aufgabe ordnungsgemäß verwendet werden. Im Allgemeinen wird die Softmax-Funktion für Klassifizierungsprobleme verwendet (Erraten, zu welcher Klasse sie gehören), und die Äquivalenzfunktion wird für Regressionsprobleme verwendet (Erraten von Zahlen).
・ Die Konstantenfunktion sendet den Wert so wie er ist. Die Softmax-Funktion zeichnet sich dadurch aus, dass sie ** wahrscheinlich (statistisch) auf das Problem reagieren kann und die Gesamtleistung 1 beträgt. ** (Das heißt, wenn a = 0,2, b = 0,5, c = 0,3 ist, beträgt die Wahrscheinlichkeit von a 20%, die Wahrscheinlichkeit von b 50% und die Wahrscheinlichkeit von c 30%.)
-Kohäsive Eingabedaten werden als Stapel bezeichnet. Es bedeutet ein Haufen. Die Berechnung kann beschleunigt werden, indem die Inferenzverarbeitung stapelweise durchgeführt wird.
-Neurales Netzwerk (Deep Learning) lernt einfach gegebene Daten und versucht, Muster zu entdecken. Unabhängig vom Zielproblem können die Daten "End-to-End" als Rohdaten gelernt werden.
** mittlerer quadratischer Fehler **: Die bekannteste Verlustfunktion. Berechnen Sie das Quadrat der Differenz zwischen jedem Element der Ausgabe und den richtigen Lehrerdaten und berechnen Sie die Summe.
** Kreuzentropiefehler **: Die zweithäufigste Verlustfunktion nach den oben genannten. Berechnen Sie die Summe der Ausgabe multipliziert mit der richtigen Bezeichnung. Da das richtige Antwortetikett jedoch durch einen One-Hot-Ausdruck (0 oder 1) dargestellt wird, muss praktisch nur der natürliche Logarithmus der Ausgabe berechnet werden, der dem korrekten Antwortetikett von 1 entspricht.
Da es einige Zeit dauert, um die Verlustfunktion für alle Daten zu erhalten, ist es einfach, einen kleinen Block, der als Mini-Batch bezeichnet wird, herauszunehmen und für jeden Mini-Batch ein Training durchzuführen. (Ich glaube, ich habe beim Studium der Statistik eine ähnliche Geschichte gesehen.)
-Der Zweck des Lernens besteht darin, zu berechnen, wie sich die Verlustfunktion ändert, wenn der Gewichtsparameter ein wenig geändert wird, und einen Ort zu finden, an dem der Verlust geringer ist. Hier kommt die Idee der ** Differenzierung (Gradient) **. Es ist eine wichtige Eigenschaft bei diesem Lernen, dass die Differenzierung der Sigmoidfunktion an keiner Stelle 0 wird.
・ Differenzierung ist das Ausmaß der Änderung zu einem bestimmten Zeitpunkt. Das Finden der Differenzierung durch einen kleinen Unterschied wird als ** numerische Differenzierung ** bezeichnet und wird hauptsächlich verwendet. Es wird gesagt, dass 1e-4 (10 bis 4. Potenz, 0,0001) gut für die winzige Differenz h ist. Auf der anderen Seite wird das Finden durch mathematische Erweiterung als analytische Differenzierung bezeichnet.
Diejenige, die die teilweise Differenzierung aller Variablen als Vektor zusammenfasst, heißt ** Gradient **. Die durch diesen Gradienten angegebene Richtung ist die Richtung, in der der Wert der Funktion an jeder Stelle am stärksten verringert wird, und die Methode zum Ermitteln des Minimalwerts der Funktion unter guter Verwendung dieser Methode wird als Gradientenmethode bezeichnet.
Wenn Sie die Gradientenmethode mit einer mathematischen Formel ausdrücken, bestimmen Sie den Betrag η, wie viel in einem Lernen gelernt werden soll und wie viel die Parameter aktualisiert werden müssen. Dies wird als ** Lernrate ** bezeichnet.
・ Parameter wie die Lernrate werden als Hyperparameter bezeichnet. Dies unterscheidet sich von den Gewichten und Vorurteilen, die das neuronale Netzwerk selbst lernen kann, und muss manuell eingestellt werden.
・ 4 Schritte zum Erlernen des neuronalen Netzes
1 Wählen Sie eine Mini-Charge aus und erhalten Sie eine Verlustfunktion. 2 Finden Sie den Gradienten und einen Weg, um die Verlustfunktion zu reduzieren. 3 Aktualisieren Sie den Gewichtsparameter in Verlaufsrichtung. 4 Wiederholen Sie die Schritte 1 bis 3.
Das Obige wird als ** stochastischer Gradientenabstieg (SVD) ** bezeichnet.
・ ** Epoche **: 1 Epoche ist eine Einheit und entspricht der Häufigkeit, mit der alle Daten aufgebraucht sind. Wenn Sie mit 100 Mini-Batch für 10.000 Daten trainieren, werden nach 100-maliger Wiederholung alle Trainingsdaten angezeigt. Mit anderen Worten, 100 mal = 1 Epoche.
Recommended Posts