J'ai dirigé le didacticiel TensorFlow Beginners MNIST For ML Beginners. Je suis diplômé en arts libéraux et ** Tensor Flow pour la première fois **, et au contraire ** Deep Learning pour la première fois **. De plus, ** j'ai à peine fait du machine learning **. Pour les connaissances mathématiques, veuillez vous référer à l'article Comment étudier les mathématiques pour les diplômés des arts libéraux pour comprendre les statistiques et l'apprentissage automatique. Il est expliqué du point de vue des débutants. Il y a de nombreuses parties qui manquent de précision, mais je donne la priorité à la clarté.
- Installer TensorFlow sur Windows Easy pour les débutants Python
- [Explication pour les débutants] Syntaxe et concept de base de TensorFlow
- Mémo API TensorFlow
- [Introduction à TensorBoard] Visualisez le traitement TensorFlow pour approfondir la compréhension
- TensorFlow Tutorial MNIST (pour les débutants) visualisé avec TensorBoard
- [Introduction à TensorBoard: image] TensorFlow Visualisez le traitement d'image pour approfondir la compréhension
- [Introduction à TensorBoard: Projecteur] Rendre le traitement TensorFlow cool
- [Explication pour les débutants] Tutoriel TensorFlow Deep MNIST
- Les traits du visage de Yuki Kashiwagi pour comprendre TensorFlow [Partie 1]
Le schéma de principe est le suivant.
La base de données MNIST (base de données modifiée du National Institute of Standards and Technology) est un ensemble d'images numériques manuscrites et de données correctes indiquant les valeurs numériques que chaque image indique. il y a. Lisez ces données et découvrez quel type d'image doit être renvoyé.
À la suite de "1. Apprendre à partir d'images et corriger les données de réponse", créez une formule modèle. En interne, nous allons créer un modèle avec cette image (0 est pris comme exemple).
Calculez dans quelle mesure le taux de réponse correct sera obtenu par le modèle généré.
L'environnement d'exécution est comme illustré dans la figure ci-dessous. Je cours depuis un notebook Jupyter.
Anaconda Navigator démarre à partir du menu Windows. Ensuite, lancez Jupyter Notebook à partir d'Anaconda Navigator.
Renommez le fichier dans Jupyter Notebook.
Tout ce que vous avez à faire est d'exécuter le didacticiel. Appuyez sur Maj + Entrée pour exécuter la commande (la touche Entrée seule est juste un saut de ligne). Le dernier "0,9178" est l'évaluation du résultat d'apprentissage, ce qui signifie que le taux de réponse correcte est d'environ 92%. 3.Computational Graph Lorsque vous sortez un graphe de calcul avec TensorBoard, cela ressemble à ceci. Pour plus de détails, reportez-vous à l'article «Tutoriel TensorFlow MNIST (pour les débutants) visualisé avec TensorBoard».
MNIST interprète les nombres manuscrits de 0 à 9 comme des données carrées de 28 points. Cependant, cela serait compliqué à expliquer dans cet article, nous allons donc remplacer les deux types de données manuscrites, barre verticale (|) et barre horizontale (-), par des données carrées à 5 points. Ensuite, cela ressemble à la figure ci-dessous.
Importation de données MINST. En définissant "one_hot = True", cela signifie que si les données existent déjà localement, elles ne seront pas importées.
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
import tensorflow as tf
Définissez trois variables et un modèle de régression. x: Variable pour mettre l'image de valeur numérique manuscrite W: Variable pour mettre la valeur de pondération b: Variable pour mettre la valeur du biais
Expliquer ce qui précède avec un modèle de barres verticales et horizontales carrées à 5 points ressemble à ceci (la valeur de biais de b est une variable d'ajustement et n'est pas incluse dans la figure). Le modèle est défini de manière à pouvoir être évalué par la valeur de $ x * W + b $. Pensez à "tf.nn.softmax" (fonction softmax) comme une conversion numérique pour l'évaluation.
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
Ici, définissez la variable de stockage des données de réponse correctes (l'image xx est la valeur numérique xx).
y_ = tf.placeholder(tf.float32, [None, 10])
Définition de l'entropie croisée (entropie croisée). L'entropie croisée est la différence entre les valeurs prévues et réelles.
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
Entraînez-vous à l'aide du "tf.train.GradientDescentOptimizer".
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
Répétez la formation 1000 fois en utilisant 100 données aléatoires.
for _ in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys})
Ici, la valeur prédite et la réponse correcte sont mises en correspondance. correct_prediction contient les données True / False. tf.argmax consiste à extraire la plus grande valeur des données (valeur numérique correcte). Utilisez tf.argmax pour afficher le nombre avec la probabilité la plus élevée (valeur d'évaluation y).
correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
Le taux de réponse correct est calculé en modifiant les données Vrai / Faux sur 1 ou 0 avec tf.cast.
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_:mnist.test.labels}))
Recommended Posts