[PYTHON] Einfache Implementierung eines neuronalen Netzwerks mit Chainer ~ Optimierungsalgorithmus einstellen ~

In Letztes Mal schreibe ich einen Artikel zum Aufbau eines neuronalen Netzwerks mit Chainer, einem Framework für Deep Learning. Diesmal

  1. Datenaufbereitung

  2. Modellbeschreibung

  3. Optimieren der Algorithmuseinstellungen

  4. Lernen

  5. Ergebnisausgabe Von

  6. Optimieren der Algorithmuseinstellungen Ich werde darüber schreiben.

Auch so wie es ist 4. Ich werde auch über das Lernen schreiben.

Berechnung der optimalen Parameter

Das Iris-Modell, das ich das letzte Mal geschrieben habe, war der folgende Code.

class IrisChain(Chain):
    def __init__():
        super(IrisChain, self).__init__(
             l1 = L.Linear(4, 6),
             l2 = L.Linear(6, 3),
    )

    def __call__(self, x, y):
        return F.mean_squared_error(self.fwd(x), y)

    def fwd(self, x):
        h1 = F.sigmoid(self.l1(x))
        h2 = self.l2(h1)
        return h2

Der Fluss dessen, was wir tun, ist

  1. Definition von linear im Konstruktor
  2. Bestimmen Sie mit fwd, ob von Knoten zu Knoten ausgelöst werden soll
  3. Fehler zwischen Ausgabe- und Lehrerdaten per Anruf

Irisニューラルネット_4.png

Von Eingabeebene in Zwischenebene konvertieren

v = w_1x + b_1 ...(1)

Von Zwischenebene zu Ausgabeebene konvertieren

y = w_2v + b_2 ...(2)

Es sind jedoch diese Parameter w und b, die wir endlich finden wollen.

Diesmal hier Verwendet den Optimierungsalgorithmus der stochastischen Gradientenabstiegsmethode (SGD).

Und lernen. Die Anzahl der Wiederholungen des Lernens beträgt diesmal 10.000.

>>> model = IrisChain()
>>> optimizer = optimizers.SGD()
>>> optimizer.setup(model)
>>> for i range(10000):
...     x = Variable(xtrain)
...     y = Variable(ytrain)
...     model = zerograds()
...     loss = model(x, y)
...     loss.backward()
...     optimizer.update()

Unter 4 Zeilen

model = zerograds()
loss = model(x, y)
loss.backward()
optimizer.update()

Ist hier Dies ist der Status der Fehlerausbreitung. Es ist fast ein versprochenes Muster. Jetzt haben Sie die entsprechenden Parameter w und b und Sie haben einen Klassifikator. Nächstes Mal werde ich diesen Klassifikator ausprobieren.

Referenz

Takayoshi Yamashita Deep Learning Kodansha, das in der Abbildung zu sehen ist Hiroyuki Shinno Praktisches Deep Learning mit Chainer-How zur Implementierung komplexer NN-Ohm

Recommended Posts

Einfache Implementierung eines neuronalen Netzwerks mit Chainer ~ Optimierungsalgorithmus einstellen ~
Einfache Implementierung eines neuronalen Netzwerks mit Chainer
Einfache Implementierung eines neuronalen Netzwerks mithilfe der Chainer-Datenaufbereitung
Einfache Implementierung eines neuronalen Netzwerks mithilfe der Beschreibung des Chainer-Modells
Einfache Theorie und Implementierung des neuronalen Netzes
Implementierung von "verschwommenen" neuronalen Netzen mit Chainer
Implementierung eines Faltungs-Neuronalen Netzwerks mit nur Numpy
Implementierung eines neuronalen Netzwerks in Python
Implementierung eines neuronalen Netzwerks (nur NumPy)
Rank Learning über ein neuronales Netzwerk (RankNet-Implementierung von Chainer)
Implementierung eines zweischichtigen neuronalen Netzwerks 2
PRML Kapitel 5 Python-Implementierung für neuronale Netze
Einfaches Klassifizierungsmodell mit neuronalem Netz
Überlebensvorhersage unter Verwendung des titanischen neuronalen Netzes von Kaggle [80,8%]
Implementierung eines 3-Schicht-Neuronalen Netzwerks (kein Lernen)
Versuchen Sie es mit TensorFlow-Part 2-Convolution Neural Network (MNIST).
Verstärkungslernen 10 Versuchen Sie es mit einem trainierten neuronalen Netz.
Eine andere Stilkonvertierungsmethode unter Verwendung des Convolutional Neural Network
Parametrisches neuronales Netzwerk
Autorenschätzung unter Verwendung von neuronalen Netzen und Doc2Vec (Aozora Bunko)
Modell unter Verwendung eines Faltungsnetzwerks in der Verarbeitung natürlicher Sprache
Bayesianische Optimierungsimplementierung von Hyperparametern des neuronalen Netzwerks (Chainer + GPyOpt)