[PYTHON] Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4

Einführung

Ich fing plötzlich an zu studieren "Deep Learning von Grund auf neu - Verarbeitung natürlicher Sprache". Beachten Sie, dass ich in Kapitel 4 gestolpert bin ist.

Die Ausführungsumgebung ist macOS Catalina + Anaconda 2019.10 und die Python-Version ist 3.7.4. Weitere Informationen finden Sie in Kapitel 1 dieses Memos.

Kapitel 4 Word2vec beschleunigen

Dieses Kapitel ist eine Beschleunigung des in Kapitel 3 erstellten CBOW-Modells word2vec.

4.1 Verbesserung von word2vec ①

Erstens ist die Beschleunigung von der Eingabeebene zur Zwischenebene. Dieser Teil spielt die Rolle der Einbettung, um Wörter in verteilte Ausdrücke umzuwandeln. Da die MatMul-Ebene jedoch verschwenderisch ist, ersetzen Sie sie durch die Einbettungsebene.

Die Einbettungsebene ist einfach, aber der Teil, der $ dW $ hinzufügt, wenn idx in der Backpropagation-Implementierung dupliziert wird, kann etwas verwirrend sein. In dem Buch wird es in Abbildung 4-5 aufgegriffen, und die Erklärung wird weggelassen als "Lassen Sie uns darüber nachdenken, warum wir hinzufügen".

Also habe ich darüber nachgedacht, indem ich es mit der Backpropagation-Berechnung für die MatMul-Ebene verglichen habe. Dies liegt daran, dass die Einbettungsebene das gleiche Ergebnis wie die MatMul-Ebene haben muss.

Ändern Sie zunächst $ idx $ in Abbildung 4-5 wieder in $ x $ in der MatMul-Ebene.

\begin{align}
idx &= 
\begin{pmatrix}
0\\
2\\
0\\
4\\
\end{pmatrix}\\
\\
x &=
\begin{pmatrix}
1 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 1 & 0 & 0 & 0 & 0\\
1 & 0 & 0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 1 & 0 & 0\\
\end{pmatrix}
\end{align}

Die Backpropagation-Formel für die MatMul-Ebene lautet $ \ frac {\ partielles L} {\ partielles W} = x ^ T \ frac {\ partielles L} {\ partielles y} $ (siehe Seite 33), siehe Abbildung 4-5 Wenn Sie es durch die Notation von ersetzen, wird es zu $ dw = x ^ Tdh $. Wenn Sie hier $ x $ und $ dh $ in Abbildung 4-5 anwenden, um $ dW $ zu berechnen, erhalten Sie: Eigentlich wollte ich $ dh $ machen, wie in Abb. 4-5 gezeigt, aber ich kann den Farbton von ● nicht wie ein Buch ausdrücken, also drücke ich ihn hier mit $ ●, ◆, a, b $ aus.

\begin{align}
dW &= x^Tdh\\
\\
\begin{pmatrix}
? & ? & ? \\
○ & ○ & ○ \\
●_1 & ●_2 & ●_3 \\
○ & ○ & ○ \\
◆_1 & ◆_2 & ◆_3 \\
○ & ○ & ○ \\
○ & ○ & ○ \\
\end{pmatrix}
&=
\begin{pmatrix}
1 & 0 & 1 & 0\\
0 & 0 & 0 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
\end{pmatrix}
\begin{pmatrix}
a_1 & a_2 & a_3 \\
●_1 & ●_2 & ●_3 \\
b_1 & b_2 & b_3 \\
◆_1 & ◆_2 & ◆_3 \\
\end{pmatrix}\\
\end{align}

Wie Sie der Berechnung entnehmen können, sind die zweite Zeile ($ ● _1 ● _2 ● _3 ) und die vierte Zeile ( ◆ _1 ◆ _2 ◆ _3 $) von $ dh $ so, wie sie in Abbildung 4-5 dargestellt sind. Es wird die 3. und 5. Zeile von sein. Und das $? $ In der ersten Zeile des fraglichen $ dW $ sieht folgendermaßen aus:

\begin{align}
\begin{pmatrix}
a_1 + b_1 & a_2 + b_2 & a_3 + b_3 \\
○ & ○ & ○ \\
●_1 & ●_2 & ●_3 \\
○ & ○ & ○ \\
◆_1 & ◆_2 & ◆_3 \\
○ & ○ & ○ \\
○ & ○ & ○ \\
\end{pmatrix}
&=
\begin{pmatrix}
1 & 0 & 1 & 0\\
0 & 0 & 0 & 0\\
0 & 1 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 1\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
\end{pmatrix}
\begin{pmatrix}
a_1 & a_2 & a_3 \\
●_1 & ●_2 & ●_3 \\
b_1 & b_2 & b_3 \\
◆_1 & ◆_2 & ◆_3 \\
\end{pmatrix}
\end{align}

Mit anderen Worten, Sie können sehen, dass wir die erste und dritte Zeile von $ dh $ hinzufügen. Das Gleiche wie die Berechnung dieser MatMul-Ebene muss in der Einbettungsschicht implementiert werden, daher muss sie hinzugefügt werden.

4.2 Verbesserung von word2vec②

Als nächstes folgt die Verbesserung von der Zwischenschicht zur Ausgangsschicht. Interessant ist die Idee der negativen Stichprobe, um das Lernen mit negativen Beispielen drastisch zu reduzieren.

Es gab keinen großen Stolperstein, aber in dem Buch wird die Erklärung der Rückausbreitung der Embedding Dot-Ebene weggelassen, da es "kein schwieriges Problem ist, also lassen Sie uns selbst darüber nachdenken", daher werde ich hier ein wenig zusammenfassen. schauen.

Wenn Sie in Abbildung 4-12 nur den Teil der Ebene "Einbettungspunkt" ausschneiden, ist dies wie folgt.

図1.png

Der Punktknoten multipliziert jedes Element und addiert die Ergebnisse. Berücksichtigen Sie daher die Rückausbreitung, indem Sie sie in einen Multiplikationsknoten (siehe "1.3.4.1 Multiplikationsknoten" in Kapitel 1) und einen Summenknoten (siehe "1.3.4.4 Summenknoten" in Kapitel 1) zerlegen. Dann hat es die folgende Form. Blaue Buchstaben sind Rückausbreitung.

図2.png

Wenn Sie dies zum vorherigen Punktknotendiagramm zurückgeben, sieht es folgendermaßen aus:

図3.png

Es ist in Ordnung, wenn es wie in dieser Abbildung gezeigt implementiert ist, aber da die Form von "dout" nicht mit "h" und "target_W" übereinstimmt, kann das Produkt jedes Elements nicht mit "*" von NumPy berechnet werden. Ordnen Sie daher zuerst die Formen "dout.reshape (dout.shape [0], 1)" zu und berechnen Sie dann das Produkt. Wenn Sie es auf diese Weise implementieren, können Sie sehen, dass es der Code von "EmbeddingDot.backwad ()" im Buch wird.

4.3 Verbessertes Lernen von word2vec

Die Umsetzung des Lernens ist nicht besonders stolpernd. Ich benutze das PTB-Korpus in dem Buch, aber ich mag Japanisch, also habe ich versucht, mit Aozora Bunkos vorab geschriebenem Text wie in Kapitel 2 zu lernen. Es war.

Um den Korpus zu erhalten, verwenden Sie die modifizierte Version von "Dataset / aozorabunko.py" anstelle von "Dataset / ptb.py". Weitere Informationen zu dieser Quelle und diesem Mechanismus finden Sie in [Kapitel 2, Memo "Verbesserung der zählbasierten Methode"](https://qiita.com/segavvy/items/52feabbf7867020e117d#24-Verbesserung der zählbasierten Methode). Ich habe es geschrieben, bitte beziehen Sie sich darauf.

ch04 / train.py wurde ebenfalls geändert, um den Korpus von Aozora Bunko wie folgt zu verwenden. Die Änderungen sind diejenigen mit "★" in den Kommentaren.

ch04/train.py


# coding: utf-8
import sys
sys.path.append('..')
from common import config
#Wenn Sie mit einer GPU arbeiten, löschen Sie den folgenden Kommentar (Cupy erforderlich).
# ===============================================
# config.GPU = True
# ===============================================
from common.np import *
import pickle
from common.trainer import Trainer
from common.optimizer import Adam
from cbow import CBOW
from skip_gram import SkipGram
from common.util import create_contexts_target, to_cpu, to_gpu
from dataset import aozorabunko  #★ Geändert, um das Korpus von Aozora Bunko zu verwenden

#Hyper-Parametereinstellungen
window_size = 5
hidden_size = 100
batch_size = 100
max_epoch = 10

#Daten lesen
corpus, word_to_id, id_to_word = aozorabunko.load_data('train')  #★ Korpus wechseln
vocab_size = len(word_to_id)

contexts, target = create_contexts_target(corpus, window_size)
if config.GPU:
    contexts, target = to_gpu(contexts), to_gpu(target)

#Generierung von Modellen etc.
model = CBOW(vocab_size, hidden_size, window_size, corpus)
# model = SkipGram(vocab_size, hidden_size, window_size, corpus)
optimizer = Adam()
trainer = Trainer(model, optimizer)

#Fang an zu lernen
trainer.fit(contexts, target, max_epoch, batch_size)
trainer.plot()

#Speichern Sie die Daten, die Sie zur späteren Verwendung benötigen
word_vecs = model.word_vecs
if config.GPU:
    word_vecs = to_cpu(word_vecs)
params = {}
params['word_vecs'] = word_vecs.astype(np.float16)
params['word_to_id'] = word_to_id
params['id_to_word'] = id_to_word
pkl_file = 'cbow_params.pkl'  # or 'skipgram_params.pkl'
with open(pkl_file, 'wb') as f:
    pickle.dump(params, f, -1)

Darüber hinaus dauerte das Lernen in der jeweiligen Umgebung ca. 8 Stunden. result.png Als nächstes folgt die Bestätigung des Ergebnisses. Ich habe ch04 / eval.py ein wenig geändert, damit ich verschiedene Wörter aus der Standardeingabe ausprobieren kann. ist der geänderte Teil.

ch04/eval.py


# coding: utf-8
import sys
sys.path.append('..')
from common.util import most_similar, analogy
import pickle


pkl_file = 'cbow_params.pkl'
# pkl_file = 'skipgram_params.pkl'

with open(pkl_file, 'rb') as f:
    params = pickle.load(f)
    word_vecs = params['word_vecs']
    word_to_id = params['word_to_id']
    id_to_word = params['id_to_word']

#ähnlichste Aufgabe ★ Die Abfrage wurde in die Standardeingabe geändert
while True:
    query = input('\n[similar] query? ')
    if not query:
        break
    most_similar(query, word_to_id, id_to_word, word_vecs, top=5)


#Analogie-Aufgabe ★ Die Abfrage wurde in die Standardeingabe geändert
print('-'*50)
while True:
    query = input('\n[analogy] query? (3 words) ')
    if not query:
        break
    a, b, c = query.split()
    analogy(a, b, c,  word_to_id, id_to_word, word_vecs)

Nachfolgend sind die Ergebnisse verschiedener Versuche aufgeführt.

Suchen Sie zunächst nach ähnlichen Wörtern. Zum Vergleich habe ich auch die zählbasierte aufgelistet, die ich in Kapitel 2 ausprobiert habe. Außerdem war die Fenstergröße von CBOW im Code des Buches 5, aber ich habe auch 2 ausprobiert, was der Zählbasis entspricht.

Ähnliche Wörter Kapitel 2 Zählbasis
(Fenstergröße: 2)
CBOW
(Fenstergröße: 5)
CBOW
(Fenstergröße: 2)
Sie Ehefrau: 0.6728986501693726
Ehefrau: 0.6299399137496948
K: 0.6205178499221802
Vater: 0.5986840128898621
ich: 0.5941839814186096
Sie: 0.7080078125
Ehefrau: 0.6748046875
Ehefrau: 0.64990234375
Junge Dame: 0.63330078125
ich: 0.62646484375
Ehefrau: 0.7373046875
Sie: 0.7236328125
Ehefrau: 0.68505859375
Die Person: 0.677734375
Lehrer: 0.666015625
Jahr Anti: 0.8162745237350464
hundert: 0.8051895499229431
Protokoll: 0.7906433939933777
Acht: 0.7857747077941895
Kreis: 0.7682645320892334
Kreis: 0.78515625
Protokoll: 0.7744140625
Jahr: 0.720703125
Jahrhundert: 0.70751953125
30:30: 0.70361328125
Tsubo: 0.71923828125
Meter: 0.70947265625
Protokoll: 0.7080078125
Protokollの: 0.7060546875
Sekunden: 0.69091796875
Wagen Tür: 0.6294019222259521
Tür: 0.6016885638237
Wagen: 0.5859153270721436
Tor: 0.5726617574691772
Vorhang: 0.5608214139938354
Oberkörper: 0.74658203125
Warenhaus: 0.744140625
Gebäude im westlichen Stil: 0.7353515625
Treppe: 0.7216796875
Tür: 0.71484375
Treppe: 0.72216796875
Wagen: 0.7216796875
Höhle: 0.716796875
unter Tage: 0.7138671875
Tür: 0.71142578125
Toyota Toyotais not found Toyotais not found Toyotais not found
Morgen Nacht-: 0.7267987132072449
Um: 0.660172164440155
Mittag: 0.6085118055343628
Abend: 0.6021789908409119
Nächstes Mal: 0.6002975106239319
Abend: 0.65576171875
Kunimoto: 0.65576171875
Der Erste: 0.65087890625
Tenchobushi: 0.6494140625
Nächster: 0.64501953125
Abend: 0.68115234375
Mittag: 0.66796875
Letzter Nacht: 0.6640625
Nacht-: 0.64453125
Im Tor: 0.61376953125
Schule Tokio: 0.6504884958267212
Höher: 0.6290650367736816
Junior High School: 0.5801640748977661
Universität: 0.5742003917694092
Einsteigen: 0.5358142852783203
Universität: 0.81201171875
Einsteigen: 0.732421875
Sumita: 0.7275390625
Schüler: 0.68212890625
Junior High School: 0.6767578125
Junior High School: 0.69677734375
Universität: 0.68701171875
vor kurzem: 0.6611328125
Tokio: 0.65869140625
Hier: 0.65771484375
Zashiki Studie: 0.6603355407714844
Sou Seite: 0.6362787485122681
Zimmer: 0.6142982244491577
Zimmer: 0.6024710536003113
Küche: 0.6014574766159058
Fußboden: 0.77685546875
Schreibtisch: 0.76513671875
Schwelle: 0.76513671875
Haupthalle: 0.744140625
Eingang: 0.73681640625
Schreibtisch: 0.69970703125
Fußboden: 0.68603515625
椽: 0.6796875
Studie: 0.6748046875
Zojigaya: 0.6708984375
Kimono Schädel: 0.5216895937919617
schwarz: 0.5200990438461304
Kleider: 0.5096032619476318
洋Kleider: 0.48781922459602356
Hut: 0.4869200587272644
Vermeiden: 0.68896484375
kalter Schweiß: 0.6875
Wecken: 0.67138671875
Unterwäsche: 0.6708984375
Was bedeutet: 0.662109375
Kostüm: 0.68359375
Besichtigung: 0.68212890625
Baumwolle: 0.6787109375
abspielen: 0.66259765625
硯: 0.65966796875
ich Meister: 0.6372452974319458
Extra: 0.5826579332351685
Kaneda: 0.4684762954711914
Sie: 0.4676626920700073
Labyrinth: 0.4615904688835144
Meister: 0.7861328125
Sie: 0.7490234375
Extra: 0.71923828125
Katze: 0.71728515625
Unvermeidlich: 0.69287109375
Meister: 0.80517578125
Sie: 0.6982421875
Katze: 0.6962890625
Ehefrau: 0.6923828125
Lessing: 0.6611328125
Verbrecher Phantom: 0.6609077453613281
Diebe: 0.6374931931495667
Mitglied: 0.6308270692825317
diese Person: 0.6046633720397949
Tauchen: 0.5931873917579651
Nächstes Mal: 0.7841796875
Boss: 0.75439453125
diese Person: 0.74462890625
Schmuck: 0.74169921875
ich: 0.73779296875
Fischangeln: 0.77392578125
diese Person: 0.74072265625
Kommt bald: 0.7392578125
Leichter Ballon: 0.7021484375
Intraktable Krankheit: 0.70166015625
bestellen Geschichte: 0.6200630068778992
Beratung: 0.5290789604187012
Beschäftigt: 0.5178924202919006
Freundlichkeit: 0.5033778548240662
Vorlesung: 0.4894390106201172
Erinnerung: 0.6279296875
Bewertung: 0.61279296875
Absolvent: 0.611328125
Hauptversammlung: 0.6103515625
Luxus: 0.607421875
Beratung: 0.65087890625
Rat: 0.63330078125
Bewertung: 0.62451171875
Rücktritt: 0.61474609375
Vorschlag: 0.61474609375
Waffenlose Waffe Obsolet: 0.7266454696655273
Altmodisch: 0.6771457195281982
sah: 0.6735808849334717
Nasenatem: 0.6516652703285217
Ignoranz: 0.650424063205719
Glauben: 0.7353515625
Top Sortierung: 0.7294921875
Protagonist: 0.693359375
Geboren: 0.68603515625
Zu verkaufen: 0.68603515625
Position: 0.724609375
Verfügbar: 0.71630859375
Straße weiter: 0.71142578125
Gesicht: 0.70458984375
Gegenstand: 0.69921875
Katze Amen: 0.6659030318260193
Nobujo: 0.5759447813034058
Sumi: 0.5374482870101929
Status: 0.5352671146392822
gewöhnlich: 0.5205280780792236
Weisheit: 0.728515625
ich: 0.71728515625
Bild: 0.70751953125
Dyspepsie: 0.67431640625
Völlerei: 0.66796875
ich: 0.6962890625
Junior High School: 0.6513671875
Liebe: 0.64306640625
Sie: 0.63818359375
Schwein: 0.6357421875
Alkohol Buch: 0.5834404230117798
Tee: 0.469807893037796
Sich ausruhen: 0.4605821967124939
Essen: 0.44864168763160706
Stange: 0.4349029064178467
Trinken: 0.6728515625
Streit: 0.6689453125
Lebensmittel: 0.66259765625
Yamakoshi: 0.646484375
Soba: 0.64599609375
Violine: 0.63232421875
Monatliches Gehalt: 0.630859375
Medizin: 0.59521484375
Handgranate: 0.59521484375
Kira: 0.5947265625
Küche Strang: 0.5380040407180786
Zeichen: 0.5214874744415283
Original: 0.5175281763076782
Recht: 0.5082278847694397
Geschäft: 0.5001937747001648
Halle: 0.68896484375
Geschichte: 0.615234375
Roman: 0.59912109375
Literarische Kunst: 0.5947265625
nehmen: 0.59033203125
Zeitschrift: 0.666015625
Stand: 0.65625
Schmied: 0.61376953125
Musik: 0.6123046875
Kimono: 0.6083984375

Es ist ziemlich verwirrend wie in Kapitel 2. Es kann keine Überlegenheit oder Unterlegenheit gegeben werden. Der Bereich, in dem "Katzen" in "mir" erscheinen, zeigt die Tendenz des Korpus. Es scheint, dass der Grund dafür ist, dass die Größe des Korpus zu klein ist, da nur die Werke von Soseki Natsume, Kenji Miyazawa und Ranpo Edogawa verwendet werden.

Als nächstes kommt das Analogieproblem.

Analog Problem CBOW (Fenstergröße: 5) CBOW (Fenstergröße: 2)
Mann:König=Frau:? Nu: 5.25390625
Abwesend: 4.2890625
Zu: 4.21875
Ruru: 3.98828125
Scheisse: 3.845703125
Großer Vogel: 3.4375
Jeder Moment: 3.052734375
Hintertor: 2.9140625
Kage: 2.912109375
Bodensäule: 2.873046875
Körper:Gesicht=Wagen:? Polizist: 6.5
Tür: 5.83984375
Zwei Menschen: 5.5625
Polizei: 5.53515625
Chef: 5.4765625
Tür: 3.85546875
Loch: 3.646484375
Elektrisches Licht: 3.640625
Polizei: 3.638671875
Schulter: 3.6328125
gehen:Kommen Sie=sprechen:? Erzählen: 4.6640625
elf: 4.546875
Dreizehn: 4.51171875
Hör mal zu: 4.25
Fragen: 4.16796875
Hör mal zu: 4.3359375
Bedauerlich: 4.14453125
Miya: 4.11328125
Sagen: 3.671875
elf: 3.55078125
Lebensmittel:Essen=Buch:? Haben: 4.3671875
Fragen: 4.19140625
Popularität: 4.1328125
Bergstraße: 4.06640625
erhalten: 3.857421875
Prompt: 3.51171875
Gehen: 3.357421875
Sagen: 3.2265625
Hör mal zu: 3.2265625
Fangen Sie an, schleimig zu werden: 3.17578125
Sommer-:heiß=Winter:? Akkumulieren: 5.23828125
Teru: 4.171875
Kommen Sie: 4.10546875
Überall: 4.05859375
Gehen: 3.978515625
elf: 4.29296875
Fertig: 3.853515625
Dreizehn: 3.771484375
Werden: 3.66015625
Schlecht: 3.66015625

Plötzlich ist das erste Problem eine Mischung aus niedrigen Punktzahlen, aber belastenden Ergebnissen. Unzureichende Trainingsdaten können beängstigende Dinge verursachen. Ich habe das Gefühl, einen Blick auf den Hintergrund der jüngsten Nachfrage nach "erklärbarer KI" zu werfen.

Andere Ergebnisse sind ebenfalls zerfetzt, aber kaum die richtigen Antworten wurden in "body: face = car :?" Und "go: come = speak :?" Gemischt. Das Auftreten von "Polizisten" und "Polizisten" in "Automobilen" ist wahrscheinlich auf Ranpo Edogawa zurückzuführen.

Immerhin hätte ich die japanische Version von Wikipedia gehorsam verwenden sollen, aber es ist eine teuflische Sache: Schweiß: Es gibt viele Leute, die Wikipedia ausprobieren. Wenn Sie also interessiert sind, "Wikipedia Japanese Corpus" Bitte versuchen Sie es mit Google mit.

4.4 Verbleibende Themen für word2vec

Die negative / positive Beurteilung von E-Mails wird als Beispiel für das Transferlernen erläutert. Mit dem Wissen bis zu diesem Kapitel können Sätze wie E-Mails jedoch nicht in Vektoren fester Länge konvertiert werden, selbst wenn Wörter in Vektoren fester Länge konvertiert werden können. .. Daher können wir eine solche Aufgabe noch nicht anfechten.

Auch in Bezug auf die Qualität verteilter Ausdrücke scheint im Fall von Japanisch die Qualität des Schreibens vor der Trennung einen großen Effekt zu haben. Einige japanische Modelle für verteilte Ausdrücke wurden veröffentlicht, aber wenn ich überlege, sie zu übertragen, denke ich, dass es eine Voraussetzung ist, denselben abteilungsweisen Schreibmechanismus (Logik, Wörterbuchinhalte, Parameter usw.) zu verwenden. .. Bedeutet dies in diesem Fall, dass Transferlernen nicht einfach mit Aufgaben durchgeführt werden kann, die sich beispielsweise mit branchenspezifischen Fachbegriffen oder einzelnen Unternehmen befassen? Japanisch ist viel Arbeit.

4.5 Zusammenfassung

Die erste Hälfte dieses Buches ist endlich vorbei, aber wenn man bedenkt, dass Kapitel 1 eine Rezension des ersten Bandes war, kann es immer noch ungefähr 1/3 sein. Das Ziel scheint lang zu sein ...

Das ist alles für dieses Kapitel. Wenn Sie Fehler haben, wäre ich Ihnen dankbar, wenn Sie darauf hinweisen könnten.

Recommended Posts

Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 2
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 3
Ein Amateur stolperte in Deep Learning von Grund auf neu. Hinweis: Kapitel 7
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 2
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 7]
Deep Learning / Deep Learning von Grund auf neu Kapitel 6 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 5]
[Lernnotiz] Deep Learning von Grund auf neu gemacht [Kapitel 6]
Deep Learning / Deep Learning von Grund auf neu Kapitel 7 Memo
[Lernnotiz] Deep Learning von Grund auf neu gemacht [~ Kapitel 4]
Deep Learning von Grund auf neu
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
Deep Learning von Grund auf neu Kapitel 2 Perceptron (Memo lesen)
Deep Learning von Grund auf 1-3 Kapitel
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 3 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 5 Memo
Erstellen Sie mit Docker eine Umgebung für "Deep Learning von Grund auf neu"
Tiefes Lernen von Grund auf neu (Kostenberechnung)
Deep Learning / Deep Learning von Null 2 Kapitel 7 Memo
Deep Learning / Deep Learning von Null 2 Kapitel 8 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 5 Memo
Deep Learning / Deep Learning von Grund auf neu Kapitel 4 Memo
Deep Learning / Deep Learning von Grund auf neu 2 Kapitel 3 Memo
Deep Learning Memo von Grund auf neu gemacht
Deep Learning / Deep Learning von Null 2 Kapitel 6 Memo
Schreiben Sie Ihre Eindrücke von der Deep Learning 3 Framework Edition, die von Grund auf neu erstellt wurde
Tiefes Lernen von Grund auf neu (Vorwärtsausbreitung)
Tiefes Lernen / Tiefes Lernen von Grund auf 2-Versuchen Sie, GRU zu bewegen
"Deep Learning von Grund auf neu" mit Haskell (unvollendet)
[Windows 10] Aufbau einer "Deep Learning from Scratch" -Umgebung
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
[Deep Learning von Grund auf neu] Über die Optimierung von Hyperparametern
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 2 Logikschaltung von Perceptron
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 4 Implementierung der Verlustfunktion
Selbststudien-Memo "Deep Learning from Grund" (unlesbares Glossar)
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 9) MultiLayerNet-Klasse
Ein Amateur versuchte Deep Learning mit Caffe (Einführung)
GitHub des guten Buches "Deep Learning von Grund auf neu"
Ein Amateur versuchte Deep Learning mit Caffe (Übung)
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
Ein Amateur hat Deep Learning mit Caffe ausprobiert (Übersicht)
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
"Deep Learning from Grund" Memo zum Selbststudium (10) MultiLayerNet-Klasse
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 11) CNN
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 3 Implementierung eines dreischichtigen neuronalen Netzwerks
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Lua-Version Deep Learning von Grund auf neu Teil 5.5 [Bereitstellung von pkl-Dateien in Lua Torch]
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
"Deep Learning from Grund" Memo zum Selbststudium (Nr. 19) Datenerweiterung
Anwendung von Deep Learning 2 von Grund auf neu Spam-Filter
Ich habe versucht, Dropout zu erklären