[PYTHON] Signifie mémo lorsque vous essayez de faire de l'apprentissage automatique avec 50 images

Aperçu

Je suis un super débutant en apprentissage automatique, j'ai donc créé une application Web qui utilise des images. "Si vous utilisez l'apprentissage en profondeur, vous pouvez faire quelque chose ~" J'ai pensé que cela ne fonctionnait pas et j'ai consulté un célèbre senior en apprentissage automatique de l'entreprise.

Ce que je veux faire cette fois

** Un site Web sur lequel vous pouvez répondre à la question "Quel est votre type d'animateur préféré?" Lors d'une soirée à boire **

UX requis

  1. Un utilisateur visite un site Web
  2. Des images d'environ 50 modèles apparaîtront, alors sélectionnez et entrez l'un des "Type", "Légèrement comme", "Normal", "Légèrement faible" et "Très faible" pour chacun.
  3. À partir du résultat, la photo du visage de l'artiste qui plaira à l'utilisateur et les mots "Vous aimerez ça" sont affichés.
  4. ** Lors de la soirée, vous pouvez répondre "On m'a dit que Maki Horikita était le type d'intelligence artificielle" **

Tu ne le veux pas vraiment? Cette question standard lors d'une soirée d'alcool a été assez gênante depuis que je suis devenu membre de la société, alors je veux vraiment que vous puissiez répondre comme une histoire comme celle-ci.

Pré-vérification

Pour le moment, j'avais des connaissances sur l'apprentissage profond, donc ce à quoi j'ai pensé pour répondre à cette exigence était

Par ça

――Vous pouvez prédire lequel des cinq niveaux sera évalué pour «l'image d'une célébrité».

C'était pour créer un modèle d'apprentissage comme celui-ci. Cependant, s'il existe des dizaines de milliers de feuilles de données d'entraînement, comme JINS BRAIN, la précision de la prédiction augmentera à nouveau, mais cette fois autour de 50 feuilles. Puisqu'il est appris de "l'image du modèle de", le nombre de feuilles était trop petit et la prédiction n'a pas pu être faite du tout.

Et

Lorsque j'ai commenté dans le rapport quotidien interne que "je souffre parce que la précision d'apprentissage ne s'améliore pas avec 50 feuilles", j'ai reçu des commentaires d'ingénieurs chevronnés qui connaissent l'IA dans l'entreprise et la synchronisation, j'ai donc associé le contenu à mes impressions Je voudrais le résumer. C'est juste un mémo, donc il n'y a rien de particulier, mais j'espère que des super débutants similaires en apprentissage automatique pourront le voir et réaliser la profondeur de ce monde.

Remplissage d'image

Tout d'abord, bien que ce ne soit pas une solution fondamentale à ce cas, la technique standard lorsque le nombre de feuilles est petit est de générer des images similaires de manière programmable et de les gonfler. http://qiita.com/bohemian916/items/9630661cd5292240f8c7 Vous pouvez apprendre en modifiant le contraste en vous référant à cet article. Cependant, trop compter sur le rembourrage peut facilement conduire à un surapprentissage et ne doit pas être trop confiant.

Ajout de fonctionnalités

J'ai également reçu un tel commentaire.

S'il est déterminé par une simple implémentation DNN, 50 feuilles ne sont pas possibles. Cependant, la précision peut être améliorée même avec une petite quantité de données en ajoutant non seulement des images, mais également des fonctionnalités qui peuvent être facilement insérées comme données d'entraînement. Par exemple, si vous souhaitez déterminer s'il s'agit d'un appartement, d'un appartement ou d'une maison individuelle à partir d'une photographie de l'extérieur du bâtiment, mais que seules 50 données d'image peuvent être collectées, les données d'image et le nombre d'étages et le montant d'argent du bâtiment peuvent être pris séparément. Ajoutez plus et vous obtiendrez plus de précision.

Je vois, dans cet exemple, le montant de la fonctionnalité est les cheveux noirs ou les grands yeux.

Je pense qu'il existe un moyen d'extraire des points caractéristiques d'une image et de la traiter (placez-la dans un classificateur tel que SVM).

Hmmm, il existe d'autres méthodes en plus du DNN pour la classification des images. Bien sûr, j'avais posé des questions sur le SVM, mais je pensais personnellement que c'était dans le développement de l'intelligence artificielle et que c'était devenu un héritage du passé.

Utiliser des techniques de classification d'images autres que l'apprentissage automatique

Par exemple, si c'est quelque chose comme "Si un certain logo est inclus, il sera unique", je pense que le montant de la fonction tamiser, surf peut être utilisé. Personnellement, je pense que "reconnaissance d'image = apprentissage automatique" a cessé de penser.

C'est vrai. On pense également que l'apprentissage automatique n'est pas nécessaire si vous pouvez expliquer avec des mots le type de caractéristiques d'un visage humain. Je n'avais jamais entendu parler des fonctionnalités sirf et surf. Référence: https://www.slideshare.net/lawmn/siftsurf

Filtrage coopératif

Étant donné que ce que nous essayons de faire cette fois-ci, c'est de produire des personnes qui l'aimeront à l'avenir sur la base des contributions passées, nous avons reçu l'opinion qu'il est sensuellement proche des recommandations. ▼ Référence http://qiita.com/ynakayama/items/59beb40b7c3829cc0bf2

Cependant, en ce qui concerne le co-filtrage, nous faisons des prédictions en référence aux informations d'entrée d'autres personnes, nous avons donc décidé qu'il ne répondait pas aux exigences du service cette fois-ci. Par exemple, dans une application musicale, un certain temps s'est écoulé depuis sa sortie, les utilisateurs qui aiment cette chanson devraient généralement aimer cette chanson également.

Analyse des composants principaux

En ce qui concerne ce domaine, je n'ai pas vraiment compris. Cependant, je vais faire une note pour le moment. http://blog.amedama.jp/entry/2017/04/02/130530 Je n'ai pas de tête, mais est-ce un mécanisme qui peut réduire la dimension des données multidimensionnelles et réduire au maximum la perte de sens? Si cela peut être fait, les caractéristiques de l'image peuvent être exprimées en deux dimensions ...?

Factorization Machines http://qiita.com/wwacky/items/b402a1f3770bee2dd13c ???? Il n'est plus clair s'il sera utilisé à quelque fin que ce soit. .. .. Je vais vous demander à nouveau. Je ne peux pas comprendre une seule fois. .. ..

Analyse de cluster (méthode des K-moyennes)

http://pythondatascience.plavox.info/scikit-learn/%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E5%88%86%E6%9E%90-k-means C'est ce qui m'est venu lorsque j'ai réfléchi aux spécifications du service cette fois. Il semble qu'il soit classé comme apprentissage non supervisé Il semble qu'il soit possible de classer les images du modèle et de savoir à l'avance de laquelle l'image de la célébrité est proche. En d'autres termes, vous pouvez penser à laquelle de chaque classe est la plus proche de votre goût dans l'image saisie par l'utilisateur et la sortir. Plutôt que de créer un modèle entraîné, cela ressemble à une classification vraiment simple.

C'est différent de l'image que je pensais à l'origine, mais si la technologie qui permet de classer les images peut être réalisée autrement que par l'apprentissage en profondeur, il ne semble pas nécessaire d'utiliser l'apprentissage en profondeur.

Le problème est de savoir comment classer cela, mais ... Est-ce comme utiliser la valeur en pixels de l'image comme valeur, ou évaluer la couleur de la peau, la couleur des cheveux, la taille des yeux, etc. et les quantifier pour les classer?

Renforcer l'apprentissage

http://qiita.com/PonDad/items/2410c55b2d21e7cad7bc Je pense que le renforcement de l'apprentissage est également une méthode relativement possible. Chargez l'image, et si elle est "type", donnez une récompense, et si elle n'est "pas bonne", donnez une punition. Cependant, j'estime que l'objectif est différent, alors j'ai conclu qu'il n'y avait aucune raison d'adopter cette analyse plutôt que l'analyse par grappes.

Classificateur Naive Bayes

http://qiita.com/ynakayama/items/ca3f5e9d762bbd50ad1f Il semble que les gens qui aiment ce modèle apprendront qu'il y a une forte probabilité qu'ils aimeront également ce modèle. Cependant, bien que cela puisse être utilisé lors de la croissance du service, j'estime qu'il ne peut pas être introduit dans la version initiale. C'était similaire au filtrage coopératif.

Classification des images

En tant qu'extension de l'idée de regroupement, même la similitude des images est calculée, et la similitude entre l'image du modèle pour l'échantillon et le visage de la célébrité est calculée à l'avance, et elle est la plus similaire à l'entrée de l'utilisateur. L'idée est venue de choisir une célébrité avec un degré total élevé. J'ai l'impression de pouvoir le faire après avoir lu les articles suivants.

――Je jugeons "régulier" de l'image du visage en utilisant l'IA! | Blog Future Tech - Future Architect https://future-architect.github.io/articles/20170526/ #future_architect @future_techblog

--Calculer la similitude d'image avec Python + OpenCV par @best_not_best sur @Qiita http://qiita.com/best_not_best/items/c9497ffb5240622ede01

En particulier, l'article qui classe les chiens Shiba avec Python + OpenCV semble être proche du cas d'utilisation consistant à trouver un artiste préféré à partir d'une photographie de visage humain.

Cela ressemble à une recherche rapide, et les articles ici sont susceptibles d'être utiles.

Conclusion

Je pensais qu'il n'y avait que du deep learning, mais quand j'ai entendu différents moyens, il me semble plus réaliste d'utiliser un algorithme qui trouve la similitude des images.

Impressions

J'ai été surpris qu'il y ait tant de façons de le faire parce que je n'avais pas assez de moyens. Bien que je connaissais le nom et les contours de certains d'entre eux, j'ai décidé qu'il s'agissait d'une technologie fossilisée en train de créer une IA, mais je garderai à l'esprit que c'est aussi la bonne personne au bon endroit. J'ai fait.

Recommended Posts

Signifie mémo lorsque vous essayez de faire de l'apprentissage automatique avec 50 images
Modèle de bonnes pratiques personnelles à utiliser lorsque vous souhaitez créer MVP avec Flask
Paramètres lorsque vous souhaitez exécuter python-mecab avec travis
Lorsque vous souhaitez filtrer avec le framework Django REST
La première étape de l'apprentissage automatique ~ Pour ceux qui veulent essayer l'implémentation avec python ~
[Django] Mémorandum lorsque vous souhaitez communiquer de manière asynchrone [Python3]
[AWS] Que faire lorsque vous souhaitez piper avec Lambda
Pour ceux qui souhaitent démarrer l'apprentissage automatique avec TensorFlow2
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
Lorsque vous souhaitez enregistrer les données initiales de Django avec des relations
Notez ce que vous voulez faire à l'avenir avec Razpai
Un site pour voir quand vous voulez lire un article de machine learning mais cela semble difficile
[Introduction au style GAN] Apprentissage unique de l'animation avec votre propre machine ♬
Lorsque vous souhaitez envoyer un objet avec des requêtes à l'aide de flask
Lorsque vous souhaitez ajuster l'intervalle de l'échelle de l'axe avec APLpy
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Introduction ~
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Implémentation ~
Mémorandum de migration avec GORM
[Introduction à l'apprentissage automatique] Jusqu'à ce que vous exécutiez l'exemple de code avec chainer
Lorsque vous souhaitez l'utiliser tel quel lorsque vous l'utilisez avec lambda memo
Un référentiel essentiel à utiliser lorsque vous souhaitez l'essayer avec ansible
Lorsque vous souhaitez remplacer une colonne par une valeur manquante (NaN) colonne par colonne
Remarque Python: lorsque vous souhaitez connaître les attributs d'un objet
Lorsque vous souhaitez modifier l'en-tête HTTP du client de test de Flask
Je souhaite résoudre le problème de fuite de mémoire lors de la sortie d'un grand nombre d'images avec Matplotlib
J'ai essayé de créer Othello AI avec tensorflow sans comprendre la théorie de l'apprentissage automatique ~ Battle Edition ~
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Classification des images de guitare par apprentissage automatique Partie 1
Un mémorandum pour faire WebDAV uniquement avec nginx
Apprentissage automatique à partir de Python Personal Memorandum Part2
Apprentissage automatique à partir de Python Personal Memorandum Part1
Je souhaite afficher plusieurs images avec matplotlib.
Je veux faire un jeu avec Python
Lorsque vous souhaitez mettre à jour le pilote Chrome.
[OpenCV] Lorsque vous voulez vérifier s'il est lu correctement avec imread
Un débutant en apprentissage automatique a essayé de créer un modèle de prédiction de courses de chevaux avec python
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Ce que vous voulez mémoriser avec la grammaire de base de "manipulation de chaînes" de python
Une doublure pour créer des images de Lena avec Scipy
Classification des images de guitare par apprentissage automatique, partie 2
Je suis un amateur le 14e jour de python, mais je veux essayer l'apprentissage automatique avec scicit-learn
Si vous voulez créer un bot discord avec python, utilisons un framework
Disposition des éléments auto-mentionnés liés à l'apprentissage automatique
Comment créer un ensemble de données d'image de visage utilisé dans l'apprentissage automatique (2: Analyse d'image de la vidéo pour obtenir des images candidates)
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
Créer un ensemble de données d'images à utiliser pour la formation
Points clés de «Machine learning avec Azure ML Studio»
Je veux détecter des images de chats d'Instagram
Je veux escalader une montagne avec l'apprentissage par renforcement
Essayez de prédire le taux de change (FX) avec un apprentissage automatique non approfondi
Liens pour faire ce que vous voulez avec Sublime Text
Prédire le sexe des utilisateurs de Twitter grâce à l'apprentissage automatique
Apprentissage automatique avec des images de catégorie Caffe -1 à l'aide du modèle de référence
Les débutants en apprentissage automatique essaient de créer un arbre de décision
Résumé du site pour apprendre l'apprentissage automatique avec une vidéo en anglais
Résumé du flux de base de l'apprentissage automatique avec Python
Bilan du premier défi du machine learning avec Keras