
magicplan-AI, un voyage dans le monde merveilleux de l'apprentissage profond (Partie 2/3)
Partager
Dans la première partie, nous avons vu comment les outils de Deep Learning d'aujourd'hui et les écosystèmes de données facilitent la création d'un prototype précoce pour évaluer la faisabilité d'une tâche courante de Deep Learning. Cela dit, il est d'une part possible d'avoir un prototype fonctionnel montrant le potentiel de l'approche, d'autre part il est nécessaire d'atteindre un niveau de détection suffisamment fiable pour permettre à la fonctionnalité d'être mise entre les mains de millions d'utilisateurs.
Itérer sur les données et le modèle pour atteindre des performances acceptables
Présentation des indicateurs de performance pertinents
Améliorer / augmenter l'ensemble de données d'entraînement
Jouer avec la fonction de perte
Entraîner correctement un modèle en Deep Learning dépend autant du bon ensemble de données que de la bonne correction lorsqu'une erreur est trouvée pendant l'entraînement.
Heureusement pour nous, une vaste littérature est disponible sur l'identification de la bonne fonction de perte à utiliser. Encore mieux, dans le cas particulier de la détection d'objets, le projet Facebook Detectron a identifié des améliorations clés dans la manière d'appliquer la bonne fonction de perte, appelée Focus Loss, qui étaient très faciles à implémenter pour nous.
En conséquence, en combinant l'amélioration de la qualité de la base de données d'entraînement avec l'introduction d'une fonction de perte mieux adaptée, nous avons pu améliorer significativement le score F1 comme l'illustre ci-dessous.

Évolution du score F1 en fonction des corrections de l'ensemble d'entraînement
Explorer différentes architectures
La recherche académique a été assez active dans le domaine de la Détection d'Objets et plusieurs architectures sont disponibles pour l'Apprentissage Profond de la Détection d'Objets. Elles peuvent être regroupées selon deux axes :
A — le type d'extracteur de caractéristiques qui traite l'image d'entrée :
Plusieurs architectures allant de légères (MobileNet) à lourdes (Inception, VGG, ResNet)…
plus l'extracteur de caractéristiques est grand en termes de paramètres, meilleurs sont les descripteurs mais plus cela prend de mémoire et de temps pour effectuer
B — le nombre d'étapes pour effectuer la détection complète :
approche directe en avant (YOLO, SSD) où un seul réseau détectera les boîtes englobantes et les classera en même temps,
approche en deux étapes (Faster RCNN, R-FCN) où un premier réseau détecte les candidats aux boîtes englobantes rugueuses tandis que le second effectue la classification et le réglage fin des boîtes englobantes.
Comme prévu, plus l'architecture est complexe, meilleure est la performance (voir graphique ci-dessous).

Architectures de Détection d'Objets et performances (ensemble de données COCO) — Source
Cependant, ce que nous avons découvert assez tôt, c'est que même pour la tâche d'inférence (la tâche de faire fonctionner le modèle pour effectuer la détection d'objets sur une image — pas la tâche d'entraînement qui nécessite beaucoup plus de ressources), toutes les architectures ne s'adaptent pas aux contraintes de fonctionnement sur un appareil mobile.
Deux raisons à cela :
contrairement aux cartes GPU modernes avec plus de 10 Go de RAM, même le dernier iPhone X n'a que 3 Go de RAM,
la contrainte en temps réel signifie que nous ne pouvons pas nous permettre qu'une reconnaissance d'objet dure plus de 1,0 seconde sans créer un décalage vraiment ennuyeux dans l'expérience utilisateur.
Certaines architectures ne tiennent pas en mémoire sur l'appareil. D'autres le font MAIS cela prend plusieurs secondes pour traiter une détection d'objet, ce qui n'est pas acceptable dans le scénario de capture en temps réel de magicplan.

Évaluation de plusieurs architectures
Leçons apprises
Contrairement à la première étape « rapide et facile », pouvoir jouer avec toutes les options des modèles « prêts à l’emploi » nécessite plusieurs conditions :
une bonne méthodologie pour mesurer objectivement le progrès,
une bonne compréhension de ce qui rend une convergence d’entraînement réussie et ce qui peut la rompre,
une bonne compréhension de l'architecture et des nœuds sous-jacents des réseaux neuronaux,
Dans notre cas, cela n’aurait pas pu se produire sans la présence de deux doctorants à plein temps en intelligence artificielle / apprentissage profond dans l'équipe qui maîtrisent ces défis.
À venir prochainement
À ce stade, nous avons un modèle de pointe qui fait un bon travail en détection d'objets mais qui est trop grand pour fonctionner sur un smartphone moderne. Dans la dernière partie, nous décrirons plus en détail le travail nécessaire pour passer d'une solution basée sur PC à une solution intégrée dans un smartphone.
Sam Miller
Responsable RevOps
À l'intérieur de magicplan
5 minutes de lecture
Articles connexes
Restauration
Comment bien réaliser le mapping d'humidité (travaux de dégâts des eaux)
3 minutes de lecture
Régleur de sinistres
Xactimate®, Cotality™, QuickBooks, T&M : Quand et comment les utiliser efficacement
5 minutes de lecture
Restauration
Gérer efficacement : Comment des équipes de restauration de 2 personnes peuvent fonctionner comme des professionnels
5 minutes de lecture










