TensorFlow 0.12 a été publié l'autre jour. L'une de ses fonctions est la visualisation d'expressions intégrées. Cela permet d'analyser de manière interactive des données de grande dimension.
Ce qui suit est une visualisation de MNIST. L'image ci-dessous est une image fixe, mais sur le Site Officiel, c'est un mouvement gluant en 3 dimensions. Vous pouvez voir où il se trouve.
Dans cet article, j'ai essayé d'utiliser la visualisation d'incorporation via la visualisation Word2vec. Tout d'abord, nous passerons de l'installation.
Tout d'abord, installez TensorFlow 0.12. Veuillez installer en vous référant à la page suivante.
Une fois l'installation terminée, nous étudierons la visualisation.
Commencez par cloner le référentiel, puis exécutez la commande suivante pour le déplacer:
$ git clone https://github.com/tensorflow/tensorflow.git
$ cd tensorflow/models/embedding
Exécutez la commande suivante pour télécharger les données d'entraînement et d'évaluation:
$ wget http://mattmahoney.net/dc/text8.zip -O text8.zip
$ unzip text8.zip
$ wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/word2vec/source-archive.zip
$ unzip -p source-archive.zip word2vec/trunk/questions-words.txt > questions-words.txt
$ rm source-archive.zip
Maintenant que nous avons les données, apprenons le mot vecteur. Exécutez la commande suivante:
$ python word2vec_optimized.py --train_data=text8 --eval_data=questions-words.txt --save_path=/tmp/
Veuillez attendre environ une heure pour apprendre.
Il s'affichera une fois l'apprentissage terminé. Tout d'abord, démarrez TensorBoard en exécutant la commande suivante:
$ tensorboard --logdir=/tmp/
Une fois démarré, il accédera à l'adresse spécifiée. Sélectionnez ensuite l'onglet Incorporation pour voir le vecteur visualisé.
Au fait, lorsque j'ai visualisé Word2vec, je ne comprenais pas pourquoi il y avait trop de vocabulaires.
Il semble que l'utilisation de Metadata vous permettra d'afficher le mot lui-même au lieu du mot ID.
Lorsque je sélectionne l'onglet Intégration, rien ne s'affiche dans le navigateur et l'erreur suivante peut apparaître sur la console. Ou plutôt il est sorti.
File "/Users/user_name/venv/lib/python3.4/site-packages/tensorflow/tensorboard/plugins/projector/plugin.py", line 139, in configs
run_path_pairs.append(('.', self.logdir))
AttributeError: 'dict_items' object has no attribute 'append'
Dans ce cas, changez la ligne 139 de ** tensorflow / tensorboard / plugins / projecteur / plugin.py ** du TensorFlow installé comme suit. Ensuite, relancez TensorBoard.
- run_path_pairs.append(('.', self.logdir))
+ run_path_pairs = [('.', self.logdir)]
Après avoir sélectionné un certain nœud (mot), lorsque j'ai sélectionné "isoler 101 points", ce qui suit était affiché.
Cela signifie que vous affichez 100 mots similaires au mot sélectionné. Pour mesurer la similitude ici, vous pouvez utiliser la similitude cosinus et la distance euclidienne. Vous pouvez également augmenter ou diminuer le nombre de mots affichés en spécifiant des voisins.
Vous pouvez également utiliser plusieurs algorithmes pour la visualisation.
La valeur par défaut est PCA, mais vous pouvez également utiliser T-SNE ou CUSTOM. L'image est affichée en 3D, mais elle peut également être affichée en 2D.
Ce serait encore plus intéressant si vous pouviez attribuer un mot comme étiquette. Cette fois, je vais me dépêcher et garder une introduction comme celle-ci.
Recommended Posts