auteur MXNet Li Mu: faire la classification des images, des tutoriels + code avec l'apprentissage en profondeur

MXNet scientifique auteur / réalisateur Li Mu Amazon

Auteur: MXNet scientifique auteur / réalisateur Li Mu Amazon

[New Ji-won EXAMEN étude approfondie promouvoir le développement rapide dans de nombreux domaines de la vision informatique, traitement du langage naturel. Dans AI chaud aujourd'hui et la pénurie de talents, de saisir la profondeur de l'apprentissage à entrer dans le domaine de la recherche et de l'application IA des compétences essentielles. Les scientifiques du problème classique du directeur Amazon Li Mu sera la vision par ordinateur - classification d'image, par exemple, la main et vous apprendre à la profondeur de construction 0-1 modèle de réseau de neurones. Pour de nombreuses questions que rencontrent les débutants, fournit une introduction complète et la démonstration du code des paramètres de l'environnement, le traitement des données, la formation du modèle, l'effet de l'accord, y compris le modèle de la méthode couramment utilisée pour obtenir rapidement de bons résultats - l'apprentissage de transfert. Alors que nous avons une vue panoramique et la compréhension de base.

étude approfondie des temps, la dépendance approfondissement du réseau de sorte que la taille de l'ensemble des données de formation que jamais. Academia plus de succès généralement des ensembles de données à grande échelle autour des problèmes cognitifs fondamentaux en général, il y a des scènes à partir d'applications quotidiennes ont somatosensoriel plus loin. Mode et la vie quotidienne des gens, mais l'industrie repose toujours sur la modification de grandes quantités de contenu manuel. En introduisant la technologie de l'intelligence artificielle pour améliorer l'efficacité, permettre à la machine à la conscience de la mode sera un des sujets intéressants et utiles.

Récemment, Alibaba l'image équipe américaine et le Département des textiles et de l'habillement, Hong Kong Polytechnic University ont organisé conjointement 2018FashionAI Défi mondial, et ouvert dans le jeu FashionAI ensembles de données, est la première nécessité à grande échelle de haute qualité de vie autour de la « vêtements » de ensemble de données. Cet ensemble de données contient huit données d'image de costumes différents, l'une des tâches des joueurs est de concevoir un algorithme pour attribuer l'image de vêtements pour faire des jugements précis. Par exemple, lorsque l'image de la jupe de classe, il est divisé en jupes invisibles, courtes, jupes, jupes sept, robes et jupes neuf points et sur un total de six types d'attributs. On peut classer comme une image classique du problème, et résolu par convolution réseau de neurones.

Les données d'image ensemble de données FashionAI utilisé, tous du fournisseur d'électricité la scène réelle, dépeint les défis du modèle dans les scénarios d'application réelle rencontrés. Sur les modèles formés ensemble de données FashoinAI, à la fois la valeur académique, mais aussi à l'avenir application pratique, l'aide de conception professionnelle pour identifier les éléments sur les vêtements. Pour les chercheurs en vision par ordinateur, est un bon choix.

Cet article utilisera MXNet Méthode d'expliquer. MXNet outil open source d'apprentissage en profondeur facile à installer et accessible, il fournit une interface python pour gluon, afin que chacun puisse rapidement mettre en place le réseau de neurones, et une formation efficace. Ensuite, nous réviserons la tâche jupe, par exemple, pour montrer comment utiliser gluon à partir de zéro pour concevoir un simple et bon convolution effet algorithme de réseau de neurones.

Configuration de l'environnement

Configuration du système

Pour la profondeur de l'apprentissage et de la formation, l'utilisation de la formation accélération GPU est très important. La quantité de données concours, mais pas grand, mais seulement le calcul du processeur peut encore faire un train de modèle pour passer quelques jours! Par conséquent, nous vous suggérons d'utiliser au moins un GPU pour le train. Non étudiants GPU peuvent se référer aux deux options suivantes:

  • Selon votre budget et vos besoins pour commencer un GPU (section jeunesse). Nous avons écrit un GPU à Acheter , pour faciliter l'achat.

  • Pour ce jeu loué serveur GPU nuage Amazon. Nous avons écrit un tutoriel AWS ROH , pour vous aider à configurer votre propre serveur cloud.

  • Après la configuration du matériel et des systèmes, il faut installer et CUDNN Nvidia CUDA fournit, de sorte que notre matériel GPU code réellement connecté. Cette partie de l'installation est plus facile, la référence peut guider cette section .

    Si vous choisissez d'utiliser le serveur cloud d'Amazon, nous vous recommandons de choisir AMI apprentissage en profondeur dans le choix de l'image du système, l'image associée à l'environnement de formation GPU (CUDA, CUDNN) ont été configurés, la nécessité de faire une configuration supplémentaire.

    Installation MXNet

    Une fois que vous avez configuré l'environnement, nous pouvons installer un MXNet. Il y a plusieurs façons que vous pouvez installer MXNet, si vous souhaitez installer la version GPU python sur un système Linux, il vous suffit d'effectuer:

    Là-dessus. Si le système est installé CUDA8.0, le code peut être modifié correspondant mxnet-CU80. Si certains étudiants veulent utiliser une autre interfaces linguistiques ou système d'exploitation, ou compiler votre propre à partir du code source, peut être installé dans la description officielle des étapes d'installation en fonction de leurs circonstances trouvé. Dans le prochain tutoriel, nous Utilisation MXNet les interfaces python gluon Nous avons commencé à mener la course.

    traitement des données

    acquisition de données

    Tout d'abord, nous créons un nouveau répertoire de données dans le dossier en cours, puis sur le site officiel réchauffera l'ensemble de données, l'ensemble de données de formation et un ensemble de données de test à télécharger et extraire les données. Les données de jeux peuvent être pris du jeu site officiel, mais les étudiants doivent se connecter et compte Tianchi enregistrer pour télécharger après la course. Il existe trois principaux ensembles de données:

  • fashionAI_attributes_train_20180222.tar est la principale des données de formation, qui contient la mission de formation tagged huit images. Ce tutoriel nous utilisons seulement l'une des tâches de jupes pour faire des présentations.

  • fashionAI_attributes_test_a_20180222.tar sont des données prévisionnelles, l'image qui contient huit untagged mission de formation, notre objectif est de former le modèle donné après la prédiction de la classe sur ces données.

  • warm_up_train_20180201.tar est une donnée d'échauffement, qui contient un ensemble de formation de non-répétition de l'image jupe jeu de formation, il est important de compléter les données de formation. Avant autre opération, assurez-vous que la structure de répertoire en cours est la suivante:

  • précautions:

    Décompressez les données téléchargées avant et après l'extraction occupera chacun environ 8G espace disque dur, nous copier les données dans une structure de répertoire plus pratique dans la prochaine collecte de données, donc s'il vous plaît laisser suffisamment d'espace sur le disque dur.

  • Étant donné que les ensembles de données d'image souvent très grande, gluon unique ne sera pas lu en mémoire toutes les images, mais a continué à lire le fichier image sur votre disque dur pendant l'entraînement. S'il vous plaît Les étudiants qualifiés seront présents sur les SSD images de disque dur, afin d'éviter la lecture de données devient un goulot d'étranglement, ce qui entraîne la vitesse de formation améliorée.

  • Tout d'abord, nous créons un nouveau train_valid répertoire des données, comme le catalogue de finition de toutes les données.

    L'une des raisons pour lesquelles nous avons choisi jupes données, qui est, les données d'échauffement et de formation sont données à condition que ses photos de formation, ce qui nous permet d'avoir plus de ressources de formation. Ci-dessous, nous marquons le fichier séparément des données à des données de formation d'échauffement:

  • Chaque image et lire le chemin d'étiquette

  • Cette image dans les données / répertoire train_valid dans la catégorie correspondant à son répertoire Mots clés

  • La partie supérieure de 90% des données d'apprentissage est utilisée, après 10% des données est utilisée pour vérifier

  • La première étape, lire chemin de l'image et de la formation des étiquettes.

    Vérifions les données lues. image_path doit correspondre au chemin d'accès et le mot-clé de l'image, où l'étiquette est une chaîne constituée d'une pluralité de n y a, position y des lettres apparaît est le type d'image correspondant.

    Comme on peut le voir sur cette figure est la jupe robe, ce qui correspond à la description officielle peut être trouvé avec le tag match. Ensuite, nous sommes prêts à cataloguer la formation et de test, et la catégorie six sous-répertoire correspondant robe.

    Après avoir exécuté la structure de répertoire comme suit:

    Pour faire face à d'autres types de vêtements, juste pour tâche assignée aux vêtements de nom de type variable correspondante sur la ligne. Enfin, nous allons copier les images correspondant à leur répertoire. Il convient de noter ici que nous avons surpris délibérément au hasard l'ordre de l'image, afin d'éviter que l'ensemble de la formation de la situation et jeu test de segmentation apparence inégale.

    l'apprentissage de transfert

    Les données prêts, alors nous pouvons commencer à concevoir l'algorithme.

    La reconnaissance de vêtements peut être considérée comme un problème classique dans la vision informatique: la classification de l'image. Un exemple typique est données IMAGEnet jeux et concours ILSVRC, dans lequel les joueurs devaient être des classes subalternes de 1000 plus de 14 millions de photos algorithme de conception, ils sont une classification précise. La concurrence dans la discrimination d'attribut de l'habillement, on peut considérer les différents attributs de vêtements appartenant à différentes catégories, remportant ainsi l'algorithme sera en mesure de se référer à IMAGEnet dans la compétition.

    Dans la phase préliminaire, les organisateurs donnent à chaque type de vêtements fournissent chacun environ un million d'images utilisées pour la formation, de sorte que la quantité de données ne suffit pas à nous faire une grande formation en profondeur du modèle d'apprentissage de zéro. Modèle afin que nous puissions emprunter l'idée de migrer à apprendre, à partir d'un modèle est formé sur le IMAGEnet ensemble de données, un peu pour le transformer en « mieux connaître les vêtements, » les. Comme on le voit ci-dessous, la gauche est le réseau formé sur le plateau de données IMAGEnet, nous allons à droite participe au réseau, à la fois compatible avec la structure principale du réseau, afin que nous puissions être les principaux poids du réseau sont copiés. Parce que les deux réseaux ne sont pas la même classification et le nombre de couche de sortie de sens, nous devons redéfinir la couche de sortie et l'initialisation aléatoire.

    Sur les ensembles de données IMAGEnet, nous utilisons principalement convolution réseau de neurones, et au cours des dernières années, il y a eu beaucoup de différentes architectures de réseau. gluon offres officielles beaucoup de différents convolution du modèle de réseau de neurones pré-formés, nous avons choisi un meilleur modèle de resnet50_v2 effet dans ce jeu comme point de départ la formation. A propos de la migration pour en savoir plus en détail peut se référer à gluon réglage fin tutoriel chinois: apprendre en affinant à Migrate a.

    Tout d'abord, nous devons être prêts à utiliser l'environnement.

    Maintenant, nous pouvons importer le modèle de resnet50_v2 prédécisionnel formé. Si cela est la première fois modèle importé, le code prendra un certain temps pour télécharger un modèle de pré-formation.

    Une formation sur la sortie de modèle 1000 est de dimension IMAGEnet, nous devons définir un nouveau réseau resnet50_v2,

  • Juste avant le poids de la couche de sortie sont pré-formés

  • La figure 6 est la dimension de la sortie, et la couche de sortie du poids initialisation aléatoire

  • Après cela, nous pouvons choisir en fonction de l'environnement de la machine spécifique sera enregistrée sur le CPU ou GPU réseau.

    La dernière ligne du code ci-dessus, nous hybrident appelons, qui est l'une des principales caractéristiques du gluon, le modèle peut imperatives construit la programmation dans la mise en uvre de la plupart du tour opérationnel dans une symbolique réalisée, afin d'une part d'améliorer l'efficacité du développement , mais aussi pour assurer la vitesse. A propos de hybrident plus en détail peut se référer au tutoriel gluon chinois Hybridation: plus rapide et une meilleure greffe a.

    Ensuite, nous définissons plusieurs fonctions auxiliaires, qui sont

  • Computing AveragePrecision, les résultats officiels des critères d'évaluation.

  • jeu de formation et de validation des set images augmentèrent fonctions.

  • Après chaque tour de la fonction de formation évaluée sur un ensemble de test

  • Les photos de détail augmentée peuvent se référer à l'image de tutoriel chinois Augmentée a.

    Définissons certains paramètres de formation. Notez que dans l'étude de la migration, nous pensons généralement des paramètres pour l'ensemble du réseau n'a pas besoin d'être change considérablement, très bien mise au point sur les données de formation, donc nous taux d'apprentissage est réglé sur une valeur relativement faible, telle que 0,001.

    Pour faciliter la présentation, nous avons seulement deux cycles de formation, montrant le processus.

    Ensuite, nous pouvons lire les données. Après avoir terminé avant que les données peuvent être lues à l'aide de l'interface gluon.data.DataLoader

    La fonction de perte suivante et algorithme d'optimisation, nous définissons le réseau. Le concours, nous utilisons la descente de gradient stochastique peut obtenir de meilleurs résultats. Classification généralement utilisé en fonction de la perte d'entropie croisée, en outre, nous sommes également préoccupés par les indicateurs, à l'exception de la précision mAP du modèle.

    Jusqu'à présent, tout est prêt, nous pouvons commencer la formation en place! Encore une fois, voici une démonstration rapide, nous ne faisons deux cycles, afin d'obtenir de meilleurs résultats de la formation, s'il vous plaît rappelez-vous le grand ton des époques.

    La formation est terminée, que diriez-vous de l'effet? Nous pouvons directement prendre quelques photos du test indiqué, comparer l'il humain pour voir le type de prédiction est exacte.

    On peut voir, bien que seulement deux formations, mais notre modèle sur le spectacle quelques images ont fait le bon pronostic.

    résumé

    Jusqu'à présent, nous avons montré que des exemples de code pour faire des prévisions de réduction des données. Vous pouvez commencer à partir d'ici, en améliorant constamment le code, à commencer vers de meilleurs résultats. FashoinAI suggère également que vous allez télécharger l'ensemble de données, l'utilisation directe de la pratique ici sont les compétences acquises. Ci-dessous, nous donnons quelques orientations possibles pour l'amélioration, vous pouvez commencer avec eux:

    1. régler les paramètres , Tels que le taux d'apprentissage, la taille des lots, le nombre de cycles de formation et ainsi de suite.

    • Il y a une influence mutuelle entre les paramètres, tels que le taux d'apprentissage plus petit pourrait signifier plusieurs cycles.

    • Il a recommandé que les résultats sur l'ensemble de validation des paramètres sélectionnés

    • paramètres optimaux de données différentes peuvent être différentes, il est recommandé de sélectionner les paramètres optimaux correspondants pour chaque tâche

    • 2. Sélectionnez un modèle .

      En plus du modèle ResNet, gluon offre également de nombreux autres modèles de réseau de neurones de convolution populaire peut être sélectionné en fonction de la documentation officielle de leur performance sur le IMAGEnet.

    • Dans le cas des ressources informatiques limitées, vous pouvez envisager d'utiliser beaucoup de mémoire est plus petit, plus rapide modèle de vitesse de calcul.

    • 3 Une image plus complète augmentée

      Vous pouvez envisager d'ajouter plus de manipulation d'images lors de la formation. Fonction image.CreateAugmenter Il y a beaucoup d'autres paramètres, respectivement, voudra peut-être essayer l'effet.

    • Lorsque la prédiction des images prédites faire différentes cultures / parage et étaient prévues pour durer une valeur prédictive moyenne de la dernière réponse, vous pouvez obtenir des résultats plus robustes.

    Les liens de référence:

    GPU Guide d'achat

    AWS pour exécuter le tutoriel

    CUDA monté

    MXNet monté

    Acquisition de données concordantes https://tianchi.aliyun.com/m.html#/competition/231649

    réglage fin tutoriel

    Hybridation: plus rapide et une meilleure greffe

    Photo augmentée

    [] Joignez-vous à la communauté

    Ji-won nouvelles technologies AI + industrie du recrutement communautaire, a accueilli les étudiants + industrie de la technologie AI a atterri intérêt, plus Little Helper Micro Signal: aiera2015_1 dans le groupe, si elle est approuvée seront invités dans le groupe, assurez-vous de modifier le groupe après avoir rejoint la communauté remarques (nom - société - emploi, groupe professionnel d'examen plus rigoureux, s'il vous plaît comprendre).

    compétences Dieu! Sha County collations chaque minute changement cuisine française
    Précédent
    Hardcore vrai! la police du Nord-Est « à propos de » cadre suspects arrêtés ......
    Prochain
    Le commerce illégal de cinq personnes XingJu Information sur les citoyens
    Police Coupe du Monde Double Tap: Temps dans le poste, garder votre chemin de retour!
    La grippe est venu à boire beaucoup d'eau? Sida peut être guéri? Ce sont toutes les rumeurs!
    Fleurs de cerisier ne vont pas à l'étranger! grande collection intérieure de cerise ornementale, voir le romantique voler!
    Juste, le premier « quatre cent » Science politique exceptionnelle Nouvelle liste des médias a annoncé! « Jingdezhen Nanhe sécurité publique » classé n ° 100 n ° 11 titres
    la troisième plus grande ville de Chine avéré être la nourriture de Macao? Il y a tellement de bon goût vous avez manqué!
    Ces neuf sont plus âgés que les rues vous, ont des enfants de charme!
    adjoint au maire, chef de la police, il visite Junwei condoléances Fête du Printemps leping Aider Nouveau villages ruraux construction et les ménages pauvres
    Turquie + Dubai romantique frappé!
    Peut-être connaissez rien au sujet du Jiangxi
    Millet Cui Baoqiu: prendre la technologie de la ligne principale de l'ABC, AI est une stratégie de base pour la prochaine décennie
    Mars recommander le meilleur Voyage Shu dans l'ensemble du printemps Fam Fun