[PYTHON] Déplaçons word2vec avec Chainer et voyons la progression de l'apprentissage

Cette fois, jetons un coup d'œil au processus d'apprentissage de word2vec à l'aide de Chainer, un framework qui peut déplacer l'apprentissage automatique et l'apprentissage profond.

Tout d'abord, dans word2vec dans les exemples par défaut, lorsque l'époque (quantité de test étudiée) atteint 10 fois, arrêtez d'apprendre et recherchez vous-même à partir des données et obtenez 5 mots proches comme quantité vectorielle. Il est prêt à venir.

À ce rythme, je ne vois pas du tout les progrès de word2vec enseigné, donc je vais le réécrire un peu en amateur qui a étudié le python à cette fin.

  1. Classez avec search.py-> my_search.py
  2. Renommé train_word2vec.py-> my_train_word2vec.py
  3. Réécrivez import my_search en tant que S au début de my_train_word2vec.py 4.Faites du mécanisme de stockage une méthode
def save_to_model(model, index2word, word2index): 
  model.to_cpu() 
  with open(‘model.pickle’, ‘wb’) as f: 
  obj = (model, index2word, word2index) 
  pickle.dump(obj, f) 
  return
  1. Dans la boucle de l'époque

save_to_model (model, index2word, word2index) print (S.MySearch.search (“Silicon Valley”)) # Appelé par la méthode de classe

Aussi, cette fois, en tant que corpus, j'ai emprunté 15 articles à Shinfu Silicon Valley (Nikkei Sangyo Shimbun) pour des expériences. J'abandonne.

Tout d'abord, les résultats expérimentaux

10 premières rotations:

Le mot le plus proche dans la Silicon Valley était "D". La cause est inconnue, mais D était le top du début à la fin. Les quantités vectorielles sont toutes comprises entre 0,4 et 0,2 (je suppose que c'est parce que k vaut 0,333). Il est inévitable qu'il y ait peu de mouvement car la quantité d'apprentissage est faible et le corpus est petit. .. Dans epoch9, il devient "D", "hardship", "IT", "run", "do", et __silicon valley se sentant __ sent un peu.

==========
epoch: 0
accumulates loss: 1112031.500000
query:Silicon Valley
D: 0.385320752859
Se détacher: 0.316111475229
Épreuves: 0.311353355646
IT: 0.308985322714
peut être: 0.293527036905
None

==========
epoch: 1
accumulates loss: 982020.395020
query:Silicon Valley
D: 0.380901038647
Se détacher: 0.319994270802
IT: 0.315405249596
Épreuves: 0.310255050659
peut être: 0.294104635715
None

==========
epoch: 2
accumulates loss: 902829.900146
query:Silicon Valley
D: 0.376115381718
Se détacher: 0.320046186447
IT: 0.31905066967
Épreuves: 0.311782300472
peut être: 0.296858221292
None

==========
epoch: 3
accumulates loss: 820047.656860
query:Silicon Valley
D: 0.371634662151
IT: 0.320495575666
Se détacher: 0.318237453699
Épreuves: 0.313952356577
peut être: 0.302201360464
None

==========
epoch: 4
accumulates loss: 681908.571655
query:Silicon Valley
D: 0.368631154299
IT: 0.320828229189
Se détacher: 0.316797375679
Épreuves: 0.316728383303
peut être: 0.306283533573
None

==========
epoch: 5
accumulates loss: 641440.961914
query:Silicon Valley
D: 0.365578979254
IT: 0.320439100266
Épreuves: 0.3194886446
Se détacher: 0.315234780312
Courir: 0.309817075729
None

==========
epoch: 6
accumulates loss: 586475.438599
query:Silicon Valley
D: 0.363178402185
Épreuves: 0.321959197521
IT: 0.319732785225
Courir: 0.315447598696
Se détacher: 0.313367664814
None

==========
epoch: 7
accumulates loss: 556348.893921
query:Silicon Valley
D: 0.361127972603
Épreuves: 0.324909359217
IT: 0.319623440504
Courir: 0.31960016489
Faire: 0.318533718586
None

==========
epoch: 8
100000 words, 77.92 sec, 1283.30 words/sec
accumulates loss: 517327.874512
query:Silicon Valley
D: 0.359653770924
Épreuves: 0.327609688044
Faire: 0.326554596424
Courir: 0.321017146111
IT: 0.318472921848
None

==========
epoch: 9
accumulates loss: 551470.435913
query:Silicon Valley
D: 0.358295291662
Faire: 0.334549129009
Épreuves: 0.328947871923
Courir: 0.324358165264
IT: 0.31878477335
None

2ème et 3ème fois:

La deuxième fois, c'est finalement "bénéfice mince et ventes élevées", "site", "penser", "su", "divers", la troisième fois je n'écris pas de données, mais "confinement", "i", "DECODED", "re" En raison de "," discrimination ". La deuxième fois, j'essaye de te dire quelque chose, mais ...

==========
epoch: 0
accumulates loss: 1155921.383301
query:Silicon Valley
site: 0.34277588129
Bénéfice faible et ventes élevées: 0.338559865952
outil: 0.291590571404
divers: 0.288147270679
En pensant: 0.280256956816
None

==========
epoch: 1
accumulates loss: 921329.687744
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.344960749149
site: 0.34360229969
divers: 0.292381823063
outil: 0.289981007576
En pensant: 0.287175774574
None

==========
epoch: 2
accumulates loss: 891724.701904
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.349293321371
site: 0.343631505966
divers: 0.295914918184
En pensant: 0.291843622923
outil: 0.288331329823
None

==========
epoch: 3
accumulates loss: 757185.654785
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.352725356817
site: 0.344897687435
divers: 0.297841370106
En pensant: 0.295309871435
outil: 0.286360681057
None

==========
epoch: 4
accumulates loss: 678935.693481
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.355262964964
site: 0.347212970257
En pensant: 0.299321830273
divers: 0.298689037561
Su: 0.285281300545
None

==========
epoch: 5
accumulates loss: 610247.023926
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.35762360692
site: 0.348474025726
En pensant: 0.300522983074
divers: 0.300092220306
Su: 0.289157003164
None

==========
epoch: 6
accumulates loss: 600056.776855
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.360702127218
site: 0.350107192993
En pensant: 0.303010463715
divers: 0.300860673189
Su: 0.292713105679
None

==========
epoch: 7
accumulates loss: 589747.635376
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.364328920841
site: 0.351830333471
En pensant: 0.304481714964
divers: 0.299699604511
Su: 0.295893192291
None

==========
epoch: 8
100000 words, 77.42 sec, 1291.68 words/sec
accumulates loss: 523010.348755
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.367006063461
site: 0.353862285614
En pensant: 0.305754393339
Su: 0.299977868795
divers: 0.298767507076
None

==========
epoch: 9
accumulates loss: 508688.538574
query:Silicon Valley
Bénéfice faible et ventes élevées: 0.370497822762
site: 0.355607360601
En pensant: 0.306706368923
Su: 0.303147226572
divers: 0.297139495611
None

Conclusion et considération

Cette fois, j'ai essayé de faire pivoter les mêmes données 3 fois, mais 2

1. Les mots que vous avez appris en premier et que vous pensiez proches sont les mots qui sont proches du début à la fin

Les données qui ont frappé de epoch0 sont restées les mêmes du début à la fin. En parlant d'êtres humains, ce que vous avez appris une fois vous donnera certainement un stéréotype, alors est-ce le même sentiment?

2. Atteindre des conclusions complètement différentes trois fois

Bien que tous les contenus entraînés soient les mêmes données, les données finalement sorties sous forme de mots proches étaient complètement différentes. En parlant d'êtres humains, même s'ils apprennent (acquièrent) la même chose, ils ont des manières de penser différentes.

Depuis le milieu du processus, j'ai trouvé que la valeur perdue était encore trop grande et que dans word2vec, les mots proches sont susceptibles d'être placés à 0,2–0,4.

C'est comme un apprentissage en profondeur que des résultats différents sont obtenus à chaque fois. C'est la même chose que l'apprentissage humain et il n'y a pas de réponse, alors j'aimerais que vous étudiez davantage avec des machines et deveniez plus intelligent.

Recommended Posts

Déplaçons word2vec avec Chainer et voyons la progression de l'apprentissage
"Apprentissage de word2vec" et "Visualisation avec Tensorboard" sur Colaboratory
Transposons la matrice et multiplions les matrices par numpy.
Maintenant, essayons la reconnaissance faciale avec Chainer (phase d'apprentissage)
Découvrez la puissance de l'accélération avec NumPy / SciPy
Reconnaissez votre patron avec Deep Learning et masquez l'écran
Comment est le progrès? Continuons le boom ?? en Python
Déplaçons Cython et Numba facilement
HTTPS avec Django et Let's Encrypt
[Chainer] Apprentissage de XOR avec perceptron multicouche
Explorez le labyrinthe avec l'apprentissage augmenté
Essayez l'apprentissage de la représentation commune avec le chainer
Validez le modèle d'entraînement avec Pylearn2
[Introduction à l'apprentissage automatique] Jusqu'à ce que vous exécutiez l'exemple de code avec chainer
J'ai vectorisé l'accord de la chanson avec word2vec et je l'ai visualisé avec t-SNE
J'ai essayé d'apprendre l'angle du péché et du cos avec le chainer
Créez DNN-CRF avec Chainer et reconnaissez la progression des accords de la musique
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir du 4e Google Colaboratory - Fonctionnalités interactives
Apprenez facilement 100 traitements linguistiques Knock 2020 avec "Google Colaboratory"
Un mémo lors de l'exécution de l'exemple de code de Deep Learning créé à partir de zéro avec Google Colaboratory
Déplaçons word2vec avec Chainer et voyons la progression de l'apprentissage
Voir à travers la conversion de pétrissage de tarte avec Chainer
Affinons les hyper paramètres du modèle avec scikit-learn!
Résolvons le portefeuille avec une optimisation continue
Essayez avec Chainer Deep Q Learning - Lancement
Essayons gRPC avec Go et Docker
Lisons le fichier RINEX avec Python ①
Jouons avec Python Receive et enregistrez / affichez le texte du formulaire de saisie
Imprimons un PDF avec python en utilisant foxit reader et spécifions l'imprimante en silence!
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3
Visualisons la relation entre le salaire moyen et l'industrie avec des données XBRL et seaborn! (7/10)
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitres 11 et 12 Introduction à Pandas Matplotlib