In Letztes Mal schreibe ich einen Artikel zum Aufbau eines neuronalen Netzwerks mit Chainer, einem Framework für Deep Learning. Diesmal
Datenaufbereitung
Modellbeschreibung
Optimieren der Algorithmuseinstellungen
Lernen
Ergebnisausgabe Von
Optimieren der Algorithmuseinstellungen Ich werde darüber schreiben.
Auch so wie es ist 4. Ich werde auch über das Lernen schreiben.
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
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.
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