Je l'ai inventé, alors j'ai essayé de classer les images chez moi. Au fait, j'étais curieux, je vais donc écrire un article comparant la précision du réglage fin avec Mobilenet v2.
・ J'ai essayé divers réglages fins avec Mobilenet v2. ・ C'est une tâche de 3 catégories: chien / chat / oiseau ・ J'ai collecté des images avec Flickr ・ Pas de réglage fin / 16,15,14,13,12,11,10,9,8,7,6,5,4,3,2, réapprendre la première couche et les suivantes / Comparer la précision en réapprenant tout je l'ai vu ・ Cette fois, la précision était bonne avec le même taux de réponse correcte (94,4%) pour l'apprentissage après la 14e couche et l'apprentissage après la 11e couche.
Il semble que tout peut être fait avec la classification binaire, donc je veux essayer la classification des animaux car il est bon d'obtenir des résultats d'une manière facile à comprendre, alors j'ai pensé que j'aimerais essayer la classification des animaux J'ai décidé d'essayer la classification ternaire avec "" ajouté.
Si c'est le cas, il s'agit d'une collection d'images. Je voulais le récupérer sur le Web, mais quand je regardais diverses choses, il me semblait bon de le récupérer sur flickr, alors j'ai décidé de le collecter avec flickr. J'ai fait référence à cet article. Comment extraire des données d'image de Flickr avec python
Vous pouvez télécharger jusqu'à 500 images de taille 115 * 115 à la fois. (Quand j'ai essayé avidement de télécharger 1000, je ne pouvais en obtenir que 500) Nous avons collecté 500 feuilles chacune avec "chien", "chat" et "oiseau" comme arguments. J'ai décidé de supprimer 450 images dont le sujet était trop petit et des images contenant des humains et d'autres animaux. Trente d'entre eux ont été affectés au test et à la validation, et les 390 autres ont été utilisés pour le train. L'image ressemble à ceci. Le PC est couvert de chiens mignons.
Triez les images dans des dossiers avec la structure suivante.
├── data │ ├── test │ │ ├── bird │ │ ├── cat │ │ └── dog │ ├── train │ │ ├── bird │ │ ├── cat │ │ └── dog │ └── val │ ├── bird │ ├── cat │ └── dog
Cliquez-ici pour le code https://github.com/kiii142/mobilenetv2_keras
Pour le réglage de la couche de FineTuning, je me suis référé à cette page à laquelle je me réfère toujours. Transfert d'apprentissage / réglage fin avec TensorFlow, Keras (exemple de classification d'image)
L'apprentissage sans fineTuning a commencé avec un taux d'apprentissage de 0,001 et a été formé à 50 époques. L'apprentissage affiné a commencé avec un taux d'apprentissage uniforme de 0,0001 et a été formé à 30 époques. La taille du lot est uniformément 8 et l'image est redimensionnée à 96 * 96 (car certains poids entraînés sont 96 * 96) Cette fois, Optimizer utilise RMSprop en suivant le papier. (J'ai utilisé SGD au début, mais RMSprop est plus précis que cela. Je ne l'ai pas fait en détail cette fois, mais il peut être intéressant de comparer ce domaine.)
Voici les résultats. La matrice de confusion de la courbe d'apprentissage et le résultat de l'image de test sont affichés. J'ai honte de dire que j'ai oublié d'écrire l'axe de la courbe d'apprentissage, mais l'axe vertical est la valeur de (taux de réponse correct et perte), et l'axe horizontal est le nombre d'époques.
Le poids de Mobilenet v2 est formé avec None. Je peux apprendre avec un bon feeling, mais le taux de réponse correct pour train et val est d'environ 60%. Je veux que tu obtiennes un peu plus de précision Le taux de réponse correct dans l'image de test est de 68,9%
Le poids de Mobilenet v2 est défini sur imagenet, et la 16e couche et les couches suivantes sont recyclées. Le taux de réponse correcte de val est très élevé. Le taux de réponse correct dans l'image de test est de 93,3%
Le poids de Mobilenet v2 est défini sur imagenet, et la 15e couche et les suivantes sont recyclées. Encore une fois, le taux de réponse correct pour val est extrêmement élevé. Le taux de réponse correct dans l'image de test est de 90,0%
Le poids de Mobilenet v2 est défini sur imagenet, et la 14e couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 94,4%. se sentir bien.
Le poids de Mobilenet v2 est réglé sur imagenet, et la 13e couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 86,7%. Est-ce que ça a un peu baissé?
Le poids de Mobilenet v2 est défini sur imagenet, et la 12ème couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 86,6%
Le poids de Mobilenet v2 est défini sur imagenet, et la 11e couche et les couches suivantes sont recyclées. Le taux de réponse correct pour l'image de test est de 94,4%. Je suis venu ici et je suis remonté
Le poids de Mobilenet v2 est défini sur imagenet, et la 10e couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 88,9%
Le poids de Mobilenet v2 est défini sur imagenet, et la 9ème couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 92,2%
Le poids de Mobilenet v2 est réglé sur imagenet, et la 8ème couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 92,2%
Le poids de Mobilenet v2 est défini sur imagenet, et la 7ème couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 85,6%
Le poids de Mobilenet v2 est défini sur imagenet, et la sixième couche et les couches suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 87,8%
Le poids de Mobilenet v2 est défini sur imagenet, et la 5ème couche et les suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 90,0%
Le poids de Mobilenet v2 est défini sur imagenet, et la 4ème couche et les suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 86,7%
Le poids de Mobilenet v2 est défini sur imagenet, et la troisième couche et les suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 88,9%
Le poids de Mobilenet v2 est défini sur imagenet, et la deuxième couche et les suivantes sont recyclées. Le taux de réponse correct dans l'image de test est de 83,3%
Le poids de Mobilenet v2 est défini sur imagenet, et la première couche et les suivantes sont réapprises. Le taux de réponse correct dans l'image de test est de 90,0%
C'est le résultat de l'apprentissage sans geler aucune couche en définissant le poids de Mobilenet v2 sur imagenet. Le taux de réponse correct dans l'image de test est de 91,1%
En ne regardant que le taux de réponse correct cette fois, le résultat était que le réapprentissage après la 14e couche et le réapprentissage après la 11e couche devraient être liés (94,4%). Fine Tuning est celui qui réapprend en quelque sorte seulement la dernière couche et la précision sort, et je pensais que si j'apprenais à nouveau à la couche précédente, la précision empirerait, mais ce n'était pas si mal. C'est une impression que ça l'est. En premier lieu, le simple fait d'apprendre en utilisant les poids d'imagenet améliorera considérablement la précision, donc je me demande s'il n'y a pas beaucoup de différence.
Pour être honnête, c'est vraiment ennuyeux de publier tous les résultats ... Cependant, d'une manière ou d'une autre, à partir de maintenant, j'ai un index que je devrais essayer Fine Tuning pour réapprendre à partir de la 14ème couche en premier. En ce sens, je suis content de l'avoir fait J'aimerais l'implémenter en tant qu'application pour smartphone si j'ai une certaine capacité de réserve pendant mes jours de congé, alors je continuerai à le faire.
Recommended Posts