Lors de l'événement créatif de PeerCast "Kyasuket", les participants ont été invités à dessiner un grand nombre d'images, et sur cette base, une IA d'identification a été créée.
Kyasuket est comme une bande dessinée en ligne, où les participants peuvent partager leur travail et apprécier le travail des autres. Les principaux contenus sont des images, des jeux et des outils. Il a lieu une fois tous les six mois.
Dans ce Kyasuket (automne 2016), nous leur avons demandé de dessiner des images de plusieurs types de Sutatsu-san (la figure ci-dessous, un exemple), et sur la base de ces données, nous avons identifié quel type de Sutatsu-san. Créé une IA à faire.
UI Nous avons préparé quatre pages: une page pour écrire des images qui seront des données, une page pour utiliser l'IA, une page pour des informations sur le nombre de messages publiés et une page pour écrire de brèves explications.
Page de publication Page AI Je l'ai fait comme ça.
Dessinez au hasard 9 types d'images et demandez-leur de les imiter. Au contraire, AI a décidé de répondre avec une probabilité de quelle image elle se rapprochait.
Je ne pense pas que je le verrais dans l'ancien IE d'une entreprise, alors je l'ai écrit dans ES2015 et l'ai placé sans compiler avec babel, haha.
Je l'ai poussé dans le niveau gratuit d'heroku. J'ai utilisé Flask avec Python3. Si la taille d'origine des données d'image est laissée telle quelle, la taille des données sera grande, j'ai donc créé l'image 32x32 et l'ai placée dans PostgreSQL de heroku avec des informations sur l'image.
J'ai choisi Python parce que j'utilisais TensorFlow pour l'apprentissage automatique, et je n'avais pas l'intention de le compliquer en tant qu'application Web, j'ai donc utilisé Flask. J'ai utilisé Flask-SQL Alchemy pour travailler avec la base de données.
Il serait très pénible de devoir dessiner une image et rafraîchir la page, j'ai donc pris la méthode de redresser le canevas après avoir envoyé les données avec Ajax. Par conséquent, la page elle-même est presque statique et le serveur est principalement exploité par l'API json.
AI Les défis de l'IA sont au même niveau que mnist, donc j'en ai fait un niveau qui peut être compris avec un peu de travail sur le tutoriel TensorFlow. La raison pour laquelle je l'ai fait en toute sécurité sans repousser mes limites est que je ferai des ajustements dans le délai imparti.
Le modèle utilisait la régression softmax, le perceptron multicouche et CNN, comme indiqué dans le didacticiel TensorFlow, afin que l'utilisateur puisse sélectionner le modèle et voir les résultats de chacun.
Actuellement, plus de 4 500 données sont collectées. (Dont, j'ai écrit environ 1000) Beaucoup de gens ont écrit avec moi pendant que je distribuais l'état d'écriture des données avec PeerCast, et la plupart des messages l'étaient à ce moment-là. .. Je pense que l'événement a été animé avec la réaction comme PeerCast, qui a une culture d'apprécier le travail répétitif comme ce type de formation. (Il aurait été douloureux de continuer à écrire le programme entier pendant trois jours, mais cela a été utile car je n'ai rassemblé suffisamment de données que le premier jour pour obtenir suffisamment de résultats d'apprentissage.) C'était facile d'écrire avec un stylet, mais il est compatible avec les smartphones. Cela n'a pas été fait, alors peut-être que certaines personnes l'ont écrit sur leurs smartphones.
Au contraire, comme prévu, il y avait un article d'histoire qui aurait dû gêner l'apprentissage. J'aimerais essayer de détecter les publications importantes, mais c'est une histoire à venir. Pour le moment, j'ai exposé des choses semblables à du matériel sur Twitter quand je l'ai vu de mes propres yeux. Dans l'image d'udon, il y a des gens qui écrivent du riz frit, des choses qui sont des filles par tous les moyens, des personnages différents, etc.
La précision de l'IA est d'environ 70% pour la régression softmax et le perceptron multicouche, et de 86% pour CNN. Comparé à mnist, le nombre total de données est petit pour la grande quantité de données, donc je pense que c'est à ce sujet. Contrairement au didacticiel, la précision n'est pas ressortie à moins que je ne falsifie moi-même les dimensions et les paramètres, et j'ai dû faire divers essais et erreurs. Je ne l'ai pas fait lors de la livraison parce que je me demandais si cela produirait des résultats après avoir appris à minuit, mais je regrette que certaines personnes s'y soient attendues. Cependant, il faut du temps pour apprendre CNN ...
Le traitement des données et du code source sera envisagé à l'avenir. Je suis fatigué de dessiner.
Je n'avais pas de fonction pour afficher l'image postée, mais après tout, il y avait des gens qui voulaient la voir. Je m'inquiétais de savoir comment le montrer, mais j'ai eu l'intention d'en afficher un lorsque je l'ai publié.
Certaines personnes voulaient l'essayer de l'extérieur avec un smartphone, mais que dois-je faire parce que je n'ai pas de smartphone?
Il y a aussi un commentaire selon lequel c'était un service où les humains apprenaient à écrire Sutatsu plutôt que l'IA. En fait, j'en ai écrit un en quelques secondes.
Que faire des données. Que faire avec le public. La prochaine fois, je travaillerai sur un autre problème à partir des mêmes données. Organisez-vous pour publier le code source.
Je pense que si je peux faire une pause et réinitialiser mon esprit.
Recommended Posts