©2018 deepomatic | | … · une ia à labelliser différents symptômes de patients tels que: un...

44
1 ©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Upload: others

Post on 14-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

1©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Page 2: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

SOMMAIRE

ÉTAPE 1 5

CONCEVEZ VOTRE PROJET

ÉTAPE 2 15

COLLECTEZ VOS DONNÉES

ÉTAPE 3 20

CONSTRUISEZ UN JEU DE DONNÉES

PROPRE

ÉTAPE 4 26

ENTRAÎNEZ VOTRE MODÈLE

ÉTAPE 5 36

TESTEZ ET MESUREZ VOTRE

PERFORMANCE

ÉTAPE 6 41

DÉPLOYEZ VOTRE MODÈLE EN

PRODUCTION

Page 3: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

3©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

L’intelligence artifi cielle (IA), le deep learning (apprentissage profond), la reconnaissance d’image: à moins que vous viviez sur une île déserte, il y a

fort à parier que vous en ayez déjà entendu parler. L’intelligence artifi cielle, et notamment la reconnaissance d’image aura bientôt une place prépondérante dans nos vies quotidiennes. Elle alimentera tout ce qui nous entoure, de nos maisons et voitures aux hôpitaux, parkings ou même nos autoroutes. De ce fait, la promesse de l’intelligence artifi cielle pour les entreprises est considérable, car elle va améliorer les services existants et en créer de nouveaux, impulser de nouvelles opportunités économiques et redéfi nir les standards de nos industries.

Autant de raisons qui nous ont convaincus d’écrire ce guide. Celui-ci vous accompagnera dans les 6 différentes étapes pour concevoir, entraîner et assurer la gestion d’un système de reconnaissance d’image. Même si vous n’êtes pas encore familier avec le machine learning et la reconnaissance d’image, à la fi n de votre lecture, j’espère que vous aurez une bonne compréhension à la fois de ses défi s et de ses opportunités mais aussi de comment tirer profi t de la reconnaissance d’image au sein de votre entreprise.

Aloïs Brunel, CPO @deepomatic

Parmi les différentes technologies de l’IA, l’une d’entre elles est prête à connaître son heure de gloire: la reconnaissance d’image. Cette dernière est déjà en train de rendre nos appareils photos plus intelligents, d’améliorer le contrôle de qualité sur les lignes de production et d’aider les médecins à détecter des cellules cancéreuses. Des applications concrètes de cette technologie sont en cours de développement en ce moment même. Lorsque nous échangeons avec des clients et prospects souhaitant développer une solution de reconnaissance d’image, nous constatons un schéma récurrent:

“Tout comme l’électricité a pratiquement tout transformé il y a 100 ans, il est pour moi diffi cile aujourd’hui de penser à une industrie que l’IA ne transformera pas dans les prochaines années.” (traduit de l’anglais)Andrew Ng, Ancien directeur de Google Brain

INTRODUCTION

Ils ont besoin de construire des systèmes de reconnaissance d’image sur-mesure.Ils ont des diffi cultés à évaluer ce qui est réalisable, et notamment comment procéder.

1.

2.

Page 4: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses
Page 5: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

5©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Imaginez tous les problèmes qui pourraient être résolus grâce à des IAs sur-mesure.

Votre entreprise pourrait révolutionner les infrastructures en créant un système de reconnaissance d’image capable d’effectuer de la maintenance prédictive et détecter automatiquement des irrégularités sur les voies ferrées, assurant ainsi des lignes de chemin de fer plus sécurisées. Vous pourriez construire un système de paiement automatisé pour les péages d’autoroutes et ainsi réduire les embouteillages. Vous pourriez même accélérer les processus de diagnostic du cancer en entraînant une IA à reconnaître des cellules cancéreuses de manière automatique.

Mais quelle est la réalité de cette technologie? Que faut-il pour réellement construire une IA spécifi que aux besoins de votre entreprise?

ÉTAPE 1:

CONCEVEZ VOTRE PROJET

Page 6: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

6©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Pour élaborer vous même un système de reconnaissance d’image personnalisé, il vous faudra probablement une équipe de data scientists, ainsi qu’une infrastructure spécifi que, beaucoup de lignes de code, des milliers d’exemples de données par concepts, et des semaines de développement.

Avant de commencer votre projet, il est primordial de prendre le temps de comprendre quel problème vous souhaitez résoudre en utilisant la reconnaissance d’image. Cela sera la première tâche à réaliser afi n de défi nir le périmètre de votre projet.

Après cela, il faudra que vous fournissiez des informations plus détaillées afi n “d’apprendre” à une intelligence artifi cielle à reconnaître des concepts parmi des images ou des vidéos. Pensez à défi nir quel type de données vous utiliserez pour entraîner votre modèle d’IA.

Les systèmes modernes de vision par ordinateur permettent d’extraire des informations à partir d’images. Afi n de fonctionner correctement, nous devons “apprendre” à ces systèmes à reconnaître des concepts spécifi ques.

Cela s’appelle également “entraînement” mais nous y reviendrons plus tard.

Voilà le genre de questions que vous devez passer en revue avant d’entamer votre projet.

COMMENCEZ PAR DÉFINIR PRÉCISÉMENT LES TÂCHES QUI CORRESPONDENT À VOS BESOINS

DESIGN YOUR PROJECT

Quel type d’images utiliserez-vous en entrée?Quelle tâche souhaitez-vous que votre IA réalise?Combien de concepts souhaitez-vous identifi er?Devez-vous localiser des objets?Les suivre?Quel type de résultat souhaitez-vous obtenir?

Page 7: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

7©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

DESIGN YOUR PROJECT

Vous devez identifi er le type d’information que vous souhaitez extraire ainsi que le degré de précision qu’il vous faut afi n de résoudre votre problème de reconnaissance d’image. Vous formerez votre IA a exécuter certaines “tâches” selon l’information que vous souhaitez obtenir des images.

Devez-vous vérifi er la présence d’un objet particulier dans votre image?Le localiser dans l’image ? Avec quel degré de précision?

Nous allons vous guider à travers les différentes technologies de reconnaissance d’image qui sont disponibles aujourd’hui, ainsi que le type d’information que vous pouvez extraire de vos images et de vos vidéos en utilisant ces technologies.

Nous allons nous pencher sur quatre types de tâches différentes, du niveau de précision le plus bas au plus élevé, en termes d’information obtenue en sortie (output).

neige

hiver

ville

Apprenez à une IA à reconnaître des concepts tels que la neige, l’hiver, la ville.

Page 8: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

8©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

DESIGN YOUR PROJECT

Par exemple, si vous avez une marketplace pour pièces automobiles, vous pouvez entraîner votre IA à distinguer automatiquement des rétroviseurs gauches de rétroviseurs droits. Vous pourrez alors savoir de manière instantanée à l’utilisateur qui ajoute une photo sur votre plateforme si celle-ci correspond à la description qu’il a indiquée. Cette attention particulière aux détails vous permettra de gagner la confi ance des utilisateurs de votre plateforme, d’augmenter l’effi cacité de votre marketplace et d’impacter directement vos ventes.

RÉTROVISEUR GAUCHE

RÉTROVISEUR DROIT

ENTRÉE

SORTIE

La première et la plus basique des tâches qu’un système de vision par ordinateur puisse réaliser consiste à extraire l’information d’une image afi n de déterminer à quelle catégorie elle appartient. En d’autres termes, la classifi cation vous aidera à labelliser une image dans la catégorie appropriée, également appelée “classe”.

En machine learning et en statistiques, la classifi cation consiste à identifi er à quelle catégorie (sous-population) une nouvelle observation appartient, ou en d’autres termes, à déterminer à quelle classe prédéfi nie une donnée appartient. Cela vous permettra de déterminer si le fruit dans votre image est une banane ou une pomme. Toutes vos images auront obligatoirement une seule classe.

CLASSIFICATION

Page 9: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

9©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

DESIGN YOUR PROJECT

cuisine

cheminée

salle à manger

Real estate tagging AI automatically recognizing interior characteristics

Par exemple, un docteur devant identifi er des pathologies rénales entraînera une IA à labelliser différents symptômes de patients tels que:

Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses offres de manière automatique. Une IA sur-mesure pourrait être conçue pour identifi er les caractéristiques de chaque nouvelle maison ou appartement disponible, comme par exemple:

PiscineTerrasse

CheminéeChambre Double

Des lésions douteusesUn simple kyste

Une jonction cortico-médullaire

TAGGINGAfi n de déterminer si le tagging est adapté à votre projet, demandez-vous si vous avez besoin de reconnaître de multiples objets ou concepts au sein d’une même image? Une tâche de tagging est une tâche de classifi cation dans laquelle aucun, un, ou plusieurs labels peuvent être assignés à une image donnée. Le résultat sera alors soit: Un label ou plusieurs labels OU Aucun label

Page 10: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

10©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Si vous avez besoin de localiser un objet au sein d’une image, la tâche que vous cherchez à automatiser s’appelle la détection. La détection fait apparaître un rectangle sur l’image (appelé bounding box en anglais - littéralement une “boîte englobante”) où l’objet se situe.

Par exemple, une IA peut identifi er la position de tous les piétons dans une image ou compter le nombre de personnes dans une foule. Avec de telles informations, vous pourriez par exemple, estimer le nombre de passagers dans le métro ou dans un wagon de train.

Gardez à l’esprit que les tâches de détection ne sont pas seulement utiles pour localiser des objets mais également afi n de déterminer la présence d’un concept au sein d’une image ou encore le nombre de fois qu’un même concept apparaît dans une image.

DESIGN YOUR PROJECT

DÉTECTION

Détection et dénombrement d’une foule

Il serait intéressant, par exemple, de contrôler une caméra de vidéo surveillance. Vous pourriez ainsi entraîner une IA à vous alerter lorsqu’une personne entre dans une pièce, ou à compter combien de personnes s’y trouvent à un instant précis.

Page 11: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

11©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

DESIGN YOUR PROJECT

Si vous avez besoin d’un niveau de précision au pixel près, la tâche qu’il vous faut n’est pas la détection mais la segmentation. La segmentation cartographie de manière très précise chaque objet au sein d’une image. C’est une des raisons pour lesquelles les cas d’utilisation de la segmentation dans le monde médical deviennent de plus en plus répandues, et ce en particulier pour la détection de cancers.

Que ce soit pour la détection de cellules cancéreuses ou bien l’identifi cation du marquage au sol, certains types de détection d’objets ne peuvent pas se permettre d’être approximatifs. Les tâches de segmentation permettent une analyse minutieuse de chaque composant d’une image pour des projets à la fois complexes et délicats. Vous vous demandez peut-être pourquoi la segmentation n’est pas toujours utilisée plutôt que la détection, puisqu’elle permet une analyse plus précise. Nous reviendrons sur ce point plus en détail par la suite, mais retenez que plus l’analyse de votre votre image est précise, plus il sera long et coûteux pour vous de construire votre système. De ce fait, la segmentation ne devrait être utilisée que dans les cas où elle est absolument nécessaire. C’est pour cela qu’il est important de connaître les différentes options mises à votre disposition afi n de parvenir à vos objectifs et sélectionner la solution la plus appropriée.

SEGMENTATION

Un autre exemple concerne les voitures autonomes: la segmentation permet de détecter de manière précise le marquage au sol et les panneaux de signalisation pour permettre à une voiture de rester dans la bonne voie.

image segmentée d’une scène urbaine pour voitures autonomes

Page 12: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

12©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Les tâches que nous venons de mentionner permettent l’extraction d’information à partir d’images fi xes. Elles peuvent également être utilisées directement sur des vidéos, en effectuant une analyse “image-par-image”. Il existe deux autres tâches qui peuvent être réalisées pour l’analyse de vidéos, qui se basent sur des informations temporelles: le tracking (suivi) et la

reconnaissance d’actions.

Les tâches de tracking réaliseront à la fois de la classifi cation et de la détection en utilisant une analyse image-par-image de la vidéo (traitée comme un ensemble d’images) ou en analysant des séquences de la vidéo. Une fois un objet détecté, le tracking vous permet de le suivre, ce qui peut être utile si vous souhaitez avoir une meilleure compréhension de la trajectoire d’un objet en mouvement. Le tracking peut également être très utile pour réguler le trafi c sur l’autoroute et éviter les problèmes de congestion.

VIDEOS

DESIGN YOUR PROJECT

Les tâches de tracking sont très complexes, mais désormais les algorithmes de pointe deviennent progressivement capables de surmonter de nombreuses contraintes techniques afi n de construire des systèmes de tracking fi ables. Par exemple, le tracking d’un individu au sein d’une foule est une tâche très compliquée car les gens se croisent, ce qui masque l’individu à certains moments, pouvant ainsi tromper le système.

Tracking à partir d’une caméra de surveillance

Page 13: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

13©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

DESIGN YOUR PROJECT

La reconnaissance d’actions vous permet d’identifi er des actions particulières. Une des applications du monde réel est d’assister au contrôle des caméras de vidéosurveillance afi n d’empêcher des attaques criminelles ou terroristes. Cela peut également être utile pour détecter une personne qui vient de faire un malaise par exemple.

UCLA - Estimation de Pose Articulée par un Modèle Graphique

CONSEIL #2Gardez en tête que la défi nition des concepts que vous souhaitez identifi er est extrêmement importante. C’est ce qu’on appelle l’ontologie. Si jamais vous deviez distinguer les entrées des plats principaux dans un restaurant, dans quelle catégorie mettriez-vous l’assiette de fromages? Devriez-vous créer une troisième classe ou simplement mettre les fromages dans la section desserts?

CONSEIL #1Il est parfois nécessaire de combiner différentes tâches afi n d’extraire les informations dont vous avez besoin. Un exemple très simple pourrait être de détecter un type précis de col sur un vêtement. Une tâche de détection commencerait par localiser un haut, puis une tâche de classifi cation serait appliquée à la bounding box afi n de défi nir le type de col.

Page 14: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses
Page 15: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

15©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Maintenant que vous avez choisi la tâche la plus appropriée à votre projet, vous devez défi nir le type d’images dont vous avez besoin afi n de

construire votre système de reconnaissance d’image. Cette étape concerne la collecte des “données d’entraînement”. Les données d’entraînement sont un ensemble d’images qui sont utilisées pour entraîner votre modèle à identifi er un concept. Nous reviendrons sur ce processus d’entraînement à l’étape 4.

De quel type de données avez-vous besoin?

Tout d’abord, quel type de données devez-vous collecter ? La réponse à cette question dépend entièrement de la nature de votre projet. Néanmoins, voici les quatre facteurs qu’il faut garder en tête pendant que vous collectez vos données: Quantité | Précision | Diversité | Qualité.

ÉTAPE 2:

COLLECTEZ VOS DONNÉES

ASTUCE:

Pensez au caractère potentiellement sensible de vos données avant de les utiliser! Certains types de données contiennent des éléments permettant d’identifi er des individus tels que des visages ou des numéros de plaques d’immatriculation, ce qui en font des données personnelles. Une régulation spécifi que encadre ce type de données afi n de protéger les individus concernés. Si vous traitez des données personnelles, veillez à les anonymiser ou bien à obtenir le consentement des personnes identifi ables dans vos images. Vous trouverez plus d’informations sur la régulation des données personnelles sur le site de la CNIL

Page 16: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

Le principal défi est de collecter des images qui sont similaires à celles que votre système aura à analyser dans le futur. Une erreur récurrente est d’entraîner votre IA à partir d’images que vous avez trouvées sur internet mais qui diffèrent trop de celles que vous demanderez à votre système d’analyser. Par exemple, imaginez que vous souhaitiez que votre système identifi e, à partir d’une photo prise avec un téléphone, un vêtement porté par une personne, mais que vous avez construit votre modèle à partir d’un ensemble d’images récoltées sur un site d’e-commerce. Les données d’entraînement choisies auparavant auront sûrement un fond blanc, l’objet en question occupera les deux tiers de l’image et la qualité de l’image sera très bonne. Maintenant imaginez qu’une personne prenne une photo à taille réelle d’un(e) ami(e) et souhaite identifi er un vêtement en particulier. L’objet à détecter sera bien plus petit, l’arrière-plan sera composé de détails contextuels et la qualité de l’image pourrait être mauvaise. Dans ce cas-là, il y a fort à parier que la perfor-mance de votre système ne sera pas optimale.

Précision

Le nombre d’images requises pour construire votre modèle dépend de nombreux facteurs tels que la complexité des tâches, la variété des exemples etc. Selon la tâche, ce chiffre peut aller de quelques milliers à des millions d’images, mais avant toute chose, il dépend du niveau de performance que vous souhaitez atteindre. En général, plus vous avez de données, plus votre modèle sera performant. La plupart du temps, vous pouvez effectuer un premier test avec quelques centaines d’images. Sachez qu’il sera toujours possible d’ajouter des images à votre projet ultérieurement.

Quantité

Une fois que vous vous êtes assurés que les données que vous collectez sont fi dèles à votre projet, essayez également de récolter des données qui mettent en scène votre concept dans dans des situations diverses, ou au moins dans autant de situations qu’il rencontrera par la suite. (ex: arrière-plan, taille du concept et couleur etc). Par exemple, afi n de reconnaître un certain type de voiture, assurez-vous que vous avez des images de cette voiture dans différents contextes, sur différentes routes, de couleurs différentes, de jour comme de nuit etc.

Diversité

Il n’y a pas de prérequis spécifi ques concernant la qualité que vos données doivent avoir mais focalisez-vous sur des images dans lesquelles votre concept est facilement identifi able. Une bonne règle pour déterminer si la qualité de vos images est suffi sante, est de voir si un humain est capable d’identifi er le concept à l’oeil nu. Au niveau du format des images, les algorithmes de vision par ordinateur acceptent les formats standards en entrée tels que JPEG ou PNG. Si vos images ont un format peu commun, il est toujours possible de les convertir dans un format plus standard pour le deep learning.

Qualité

16©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

COLLECT YOUR DATA

Page 17: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

17©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

COLLECT YOUR DATA

Il y existe différentes méthodes de collecte de données qui, encore une fois, dépendent non seulement de votre projet mais également des données de votre entreprise. Vous trouverez ci-dessous un schéma présentant les différentes méthodes et laquelle choisir en fonction de votre situation:

Vous connaissez désormais le type de données dont vous avez besoin et en quelle quantité, mais il reste une question: comment les collecter?

Si vous comptez prendre vos photos vous-même avec un appareil photo, sachez qu’il y a de nombreuses options. Qu’il s’agisse du type d’appareil photo ou de la qualité de l’image, réfl échissez bien à ce qu’il vous faut et ce qui serait le plus effi cace pour votre projet. N’hésitez pas également à prendre contact avec un expert si vous n’êtes pas sur.

Choisissez soigneusement le bon matériel pour recueillir vos données

La reconnaissance d’image fonctionne en analysant les pixels d’une image, ce qui veut dire qu’elle analyse l’information fournie par une image de la même manière que l’oeil humain.

Gardez donc à l’esprit que si vous n’arrivez pas à identifi er le concept que vous cherchez dans vos images, il y a peu de chance que l’algorithme n’y arrive non plus.

De ce fait, il est souvent nécessaire de prétraiter vos images. C’est le cas par exemple lors d’analyse d’imagerie médicale: si vous souhaitez détecter une cellule cancéreuse, il vous faudra un bon microscope car elle n’est pas visible à l’oeil nu. Il sera alors nécessaire de prétraiter les images en de plus petites unités dans lesquelles la cellule devient identifi able par les algorithmes. Les tâches de pré-traitement vont du redimensionnement d’une image à l’optimisation des couleurs.

BONNES PRATIQUES

Page 18: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

18©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Est-ce que votre entreprise collecte déjà les données dont vous

avez besoin?

Vos images sont-elles

disponibles en ligne?

OUI

OUI OUI

NON

NON

Bonne nouvelle! Vous pouvez récolter des images en ligne si elles sont libres de droits. Les enregistrer une à une serait un travail fastidieux donc pensez à utiliser un outil d’extraction de données en ligne, pour récupérer les images d’un site ou d’un moteur de recherche.

Si votre système informatique n’est pas labyrinthique, vous serez prêt en quelques minutes! Con-nectez-vous à votre base de données pour récupérer vos don-nées et mettez-les dans un fi chier unique que vous utiliserez dans les étapes suivantes.

Implémentez votre propre système de collecte de données en utilisant des caméras pour prendre des images ou des vidéos. Commencez par installer une ou plusieurs caméras, puis testez la qualité et la précision de vos données avant d’investir dans plus d’appareils.

Ne vous inquiétez pas, commencez à enregistrer vos images et vous aurez ce dont vous avez besoin rapidement. Vous pouvez facilement installer un système qui mettra toutes vos images dans un fi chier unique.

Les sauvegardez-

vous?

COLLECT YOUR DATA

NON

Page 19: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses
Page 20: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

20©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Une fois que votre jeu de données est prêt, il est temps de l’annoter. Afi n que votre IA puisse apprendre à reconnaître vos concepts, il faut lui indiquer ce

qu’il y a et ce qu’il n’y a pas dans une image. Pour cela, chaque image du jeu de données doit être accompagnée d’un label.

Il y a différentes formes d’annotations selon la tâche que vous avez choisie (cf Étape 1). Chaque tâche est associée à un type de label spécifi que. Pour les tâches de classifi cation et de tagging, les labels sont appelés des tags (ils représentent un concept particulier, par exemple: “fl ou” ou “chat”). Pour la détection, on utilise les bounding boxes; et pour la segmentation, des lignes et polygones. Regardons de plus près le processus d’annotation pour la tâche de segmentation en utilisant notre exemple de l’étape 1: les voitures autonomes.

Vous souhaitez que votre voiture soit capable de distinguer un piéton d’une voiture ou d’un panneau de signalisation, non pas approximativement (en utilisant des bounding boxes par exemple), mais de manière très précise, au pixel près. Il vous faudra alors délimiter minutieusement ces différents éléments dans l’image avec des lignes et des polygones. Les formes fi nales seront alors assignées à l’un des trois concepts: voitures, panneaux de signalisation, piétons.

ÉTAPE 3:

CONSTRUISEZ UN BON JEU DE DONNÉES

Page 21: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

BUILD A CLEAN DATA SET

21©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Segmentation d’une image de scène urbaine

Une astuce qui pourrait vous être utile est celle du principe de réduction d’information. Ce terme signifi e que si vous avez un jeu de données de segmentation, il est possible d’en déduire des jeux de données de détection et de tagging. Avec une forme segmentée, il est possible de créer une bounding box, qui entoure la forme segmentée. Cette box a un tag. On peut ainsi tagger l’image avec ce tag si l’on souhaite obtenir un dataset de tagging.

Pourquoi est-ce important? Car cela vous permettra d’utiliser le même jeu de données pour différents projets, ou bien de réaliser d’autres tâches si les spécifi cations initiales de votre projet viennent à changer.

Place à l’action. À ce moment précis, vous vous demandez peut-être comment il est possible d’annoter de manière effi cace des jeux d’images contenant des milliers d’images.

Il y a diverses options à votre disposition pour annoter vos données mais ne vous attendez pas à un miracle. La plupart de ces méthodes sont extrêmement longues à réaliser. Si votre tâche nécessite une expertise spécifi que, vous devrez garder le processus d’annotation en interne. Si non, vous pouvez l’externaliser.

Le seul moyen pour vous d’éviter cette tâche fastidieuse est d’utiliser un jeu de données pré-labellisées disponible dans le domaine public.

Page 22: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

BUILD A CLEAN DATA SET

22©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Que votre processus d’annotation soit alloué à une personne de votre équipe ou bien à un expert externe comme un médecin, il vous faudra une interface pour faciliter leur travail d’annotation.

Il existe des interfaces d’annotations manuelles disponibles en ligne telles que LabelMe et VGG Image Annotator. Créé par le prestigieux MIT, LabelME

est un des outils d’annotations les plus populaires dans lequel les utilisateurs peuvent annoter des données qui seront ensuite mise à disposition des communautés en ligne.

Lorsque vous choisissez votre interface d’annotation, essayez une fois de plus de trouver le meilleur ajustement entre votre projet et les fonctionnalités de l’interface. Prenez en compte les facteurs suivants: le temps et l’effort de confi guration; la précision et la rapidité d’annotation. Finalement, en dernier recours, si vous ne trouvez pas d’outil optimal, vous pouvez toujours demander à une équipe d’ingénieurs de développer une interface adaptée à vos besoins.

INTERNALISER L’ANNOTATION

Annotation de détection grâce à Annotorious, licence d’interface du MIT

Page 23: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

BUILD A CLEAN DATA SET

23©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Si vous préférez externaliser vos annotations, vous pouvez sous-traiter cette étape. Faites cependant attention, bien que cela semble être l’option la plus facile, elle comporte de nombreux défi s.

EXTERNALISER L’ANNOTATION

Les personnes en charge d’annoter doivent avoir une bonne compréhension de la tâche requise.Vous devez être capables d’expliquer précisément la tâche d’annotation à réaliser, en fournissant entre autres des images pré-labellisées.La qualité des annotations peut varier. Il vous sera donc nécessaire de réaliser des tests initiaux pour défi nir un standard de qualité.L’exécution et la qualité des annotations doivent être surveillées tout au long du projet afi n d’obtenir un bon résultat.

Il y a différentes manières d’externaliser le processus d’annotation. Vous pouvez passer par une entreprise spécialisée dans l’annotation manuelle ou bien utiliser un outil d’annotation participative tel que Crowdfl ower. Il est également possible, si vous avez votre propre plateforme d’annotation, d’utiliser les services de Amazon Mechanical Turk, qui est une marketplace de crowdsourcing vous permettant de coordonner des travailleurs indépendants pour réaliser des tâches telles que l’annotation.

Équipe d’annotateurs externalisée

Page 24: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

24©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Cela se traduit par la vérifi cation assidue qu’il n’y ait pas d’annotations erronées ou des images de mauvaise qualité/inappropriées dans votre jeu de données, ce qui pourrait induire en erreur votre réseau de neurones lors de la phase d’entraînement. Corriger les erreurs et enlever les images de mauvaise qualité de votre jeu de données est de ce fait une étape très importante qu’il ne faut pas négliger.

Comme précédemment mentionné dans l’étape 1, c’est à ce moment là que vos compétences d’ontologie seront mises à contribution. Si vos concepts ont été mal défi nis, vous serez peut-être obligés de créer une nouvelle classe, et de réorganiser complètement votre jeu de données.

Par exemple, si vous avez entraîné un modèle à faire la distinction entre des adultes et des enfants, lorsque vous nettoierez votre jeu, vous hésiterez: à quelle classe appartient un adolescent? Vous devrez peut-être alors défi nir une troisième classe et ré-entraîner votre modèle afi n d’assurer une meilleure performance.

Que signifi e nettoyer son jeu de données?

BUILD A CLEAN DATA SET

Il ne faut jamais sous-estimer l’impact d’un bon jeu de données sur la performance d’un modèle. Beaucoup de personnes développent des librairies (frameworks) de pointe afi n de construire des modèles robustes.

Cependant chez deepomatic, nous avons découvert que nettoyer soigneusement son jeu de données pour être en mesure d’avoir un jeu d’entraînement parfait est le facteur qui infl uence le plus la performance d’un modèle.

DE L’IMPORTANCE DE NETTOYER SON JEU DE DONNÉES

Page 25: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses
Page 26: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

26©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

ÉTAPE 4:

ENTRAÎNEZ VOTRE MODÈLE

Afi n de vous assurer que votre modèle apprenne correctement à réaliser la tâche qu’il vous faut, vous allez lui apprendre en lui donnant votre jeu de données labellisées en entrée qui fera fi gure d’exemple. A l’issu de ce processus, vous obtiendrez en sortie votre modèle personnalisé.

Il est temps d’apprendre à un ordinateur à reconnaître votre ou vos concepts en appliquant des méthodes “d’apprentissage par l’exemple”.

Par exemple, si vous souhaitez entraîner un modèle à distinguer une voiture d’un train, vous utiliserez le plus d’images possible de voitures et de trains comme données d’entrée.

Que signifi e “entraînez votre modèle”?

En étant exposé à tant d’exemples d’images de véhicules, l’algorithme apprendra à reconnaître les caractéristiques d’une voiture et d’un train et votre modèle sera alors en mesure de les distinguer.

Toute l’information (les images et leurs annotations) passe à travers ce qu’on appelle un réseau de neurones. Nous n’irons pas en détail dans la défi nition d’un réseau de neurones, mais imaginez que tout comme le cerveau humain, il s’agit d’un réseau de neurones interconnectés les uns avec les autres et organisé en couches.

Comment ça marche?

Page 27: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

27©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Au fur et à mesure que le réseau de neurones est exposé à de plus en plus d’exemples d’images labellisées, il ajuste comment ses neurones sont interconnectés afi n d’apprendre à réaliser la tâche pour lequel il a été programmé. Il fait cela en comprenant les éléments communs d’un ensemble d’images (ex: il commence à comprendre ce qui différencie un chat d’un chien).

Lorsqu’un modèle a été exposé à l’ensemble du jeu de données, on dit qu’il est “entraîné”.

voitu

retr

ain

données d’entraînement entraînement modelentraîné

Le modèle peut alors effectuer la tâche de reconnaissance d’image pour laquelle il a été entraîné. Il prend une image en entrée et en ressort une prédiction. Une prédiction est l’élément d’information dont nous avons discuté dans l’étape 1 (un label, une bounding box, un polygone, etc.). Elle est accompagnée d’un ratio de confi ance, qui est un score (entre 0 et 1) qui indique le degré de confi ance du modèle quant à l’exactitude de sa prédiction.

“TRAIN”

donnée model entraîné prédiction

Dans le domaine de l’intelligence artifi cielle, à la fois le hardware et la solution logicielle (software) présentent de fortes spécifi cités à maîtriser pour d’obtenir de bonnes performances.

Que vous faut-il pour construire le meilleur modèle possible?

Page 28: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

28©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Comme expliqué auparavant, entraîner une IA requiert beaucoup de puissance de calcul à cause du nombre colossal d’opérations à réaliser. Selon la complexité du réseau de neurones, des milliards d’opérations par image sont nécessaires durant l’entraînement.

Afi n de traiter ces opérations, une unité de calcul, aussi appelé processeur, est nécessaire. Nous connaissons déjà les processeurs qui font tourner nos ordinateurs personnels - aussi appelés computer processing unit (CPU).

Mais avec les progrès technologiques, Il existe désormais un nombre considérable de différentes processeurs capables d’effectuer toujours plus d’opérations en un temps réduit.

Les graphic processing units (GPUs), aussi appelées cartes graphiques, sont en train de devenir la norme pour entraîner des réseaux de neurones. A l’origine, les GPUs étaient utilisés pour les jeux vidéo, mais ils se sont avérés particulièrement effi caces pour effectuer les calculs mathématiques derrière la construction de réseaux de neurones.

Nous pouvons également constater les récentes avancées en puces informatiques dédiées au deep learning. Par exemple, Google a introduit en 2016 les Tensor Processing Unit (TPU) qui sont capables d’effectuer des centaines de milliers de milliards d’opérations par seconde. Ces derniers sont en revanche uniquement disponibles sur la plateforme Google cloud.

Pour résumer, il faudra sûrement vous équipez d’un GPU. Vous pouvez soit directement en acheter auprès d’Nvidia ou bien en louer dans le cloud. La plupart des acteurs principaux de l’IA (Amazon, Google, Microsoft ou OVH) fournissent déjà des solutions d’entraînement d’IA dans le cloud pour les entreprises.

HARDWARE

Il y existe deux façons différentes de procéder: soit en ayant recours à une équipe d’experts qui programmera et optimisera le processus d’apprentissage, soit en utilisant une plateforme d’apprentissage. Si vous optez pour la première option, poursuivez votre lecture! Sinon, reportez vous à notre aparté “Astuce” page 32.

Page 29: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

29©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Maintenant que vous savez quel hardware il vous faut, nous allons vous aider à comprendre les concepts clés en termes de programmation informatique derrière la création et l’entraînement de modèles de deep learning.

SOFTWARE

Pour simplifi er, un framework, aussi appelé une bibliothèque en français, est une boîte à outils destinée à vos développeurs afi n qu’ils puissent entraîner des réseaux de neurones. Il vous faut choisir celui que utiliserez au cours de votre projet. Vous trouverez ci-dessous les principaux frameworks disponibles:

1. CHOISISSEZ UN FRAMEWORK

Beaucoup de ressources sont disponibles pour évaluer chaque framework et votre choix fi nal devra être guidé en fonction de ce que vous cherchez à accomplir.

Caffe: développée à l’origine à UC Berkeley, ce framework est largement utilisée dans le milieu de la recherche. Elle se focalise notamment sur le traitement d’images et la reconnaissance d’objets. En avril 2017, Facebook a sorti Caffe2 qui est une version plus légère, modulable et extensible que l’originale.

Deeplearning4j: est une librairie de programmation indépendante de deep learning conçue pour Java. Il s’agit également d’une librairie adaptée aux algorithmes de deep learning.

Tensorfl ow: créée par l’équipe de GoogleBrain en novembre 2015, Tensorfl ow jouit d’un soutien important de la part de la communauté Google et ses capacité sont assez générales. Ce framework a connu une croissance très importante et est désormais la bibliothèque la plus populaire auprès des scientifi ques spécialistes du deep learning pour l’expérimentation et la production de réseaux de neurones.

CNTK and MXNet: développées respectivement par Microsoft et Amazon, ces deux librairies sont entièrement intégrées avec leur clouds respectifs.

Page 30: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

30©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Une architecture est un modèle spécifi que de réseau de neurones. Plusieurs options d’architectures sont à votre disposition. Nous n’irons pas trop en détails mais retenez qu’il existe de nombreux types d’architectures qui déterminent le nombre de couches ainsi que le nombre de neurones par couches et que cela peut infl uencer la performance fi nale.

Le mieux est d’adopter une approche expérimentale, d’effectuer des tests avec différentes architectures et de sélectionner celle qui convient le mieux à votre projet..

Certaines architectures open-source telles que GoogleNet, ResNet ou AlexNet sont régulièrement utilisées et sont reconnues pour leurs bonnes performances.

2. CHOISISSEZ VOTRE ARCHITECTURE

Une fois que vous avez choisi une architecture et un framework, vous pouvez entraîner votre réseau de neurones en utilisant les paramètres et algorithmes qui sont défi nis par défaut.

Le premier modèle entraîné aura une certaine performance que vous apprendrez à évaluer dans le prochain chapitre. Il existe une variété de techniques afi n d’améliorer la performance de vos modèles, notamment lors de la phase d’entraînement. Nous allons vous initiez à certaines d’entre elles:

3. ENTRAÎNEZ ET PERFECTIONNEZ VOTRE MODÈLE

l’apprentissage par transfert

l’ajustement des hyper-paramètres

l’augmentation de données.

Page 31: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

31©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

L’APPRENTISSAGE PAR TRANSFERT

Il s’agit sûrement de la technique la plus répandue pour améliorer la performance d’un modèle. Lorsque vous entraînez un modèle “à partir de rien”, vous avez besoin d’un nombre considérable d’images, parfois des millions, pour obtenir une bonne performance. Cela s’explique par le fait qu’au début de l’entraînement, les images que vous présentez à votre modèle lui sont totalement inconnues.

L’apprentissage par transfert est une technique qui consiste à réutiliser un modèle qui a été entraîné pour une autre tâche et de le spécialiser à la vôtre. On peut trouver des modèles de ce type en ligne, comme par exemple un modèle entraîné sur ImageNet pour tout ce qui est tâche de classifi cation. Comment ça marche ? Ces modèles ont souvent été confronté à beaucoup de caractéristiques différentes sur de larges jeux de données, ce qui les rend particulièrement adapté à résoudre des tâches plus spécialisées.

Par exemple, si vous souhaitez détecter des défauts sur du cuir dans l’optique d’améliorer votre contrôle qualité, vous pouvez réutiliser un des modèles pré-entraîné pour le spécialiser sur la détection d’anomalies sur du cuir qui est votre tâche spécifi que (défaut versus pas de défaut).

Gardez en tête qu’un modèle est constitué de plusieurs couches, qui deviennent de plus en plus abstraites plus on se rapproche de la fi n. L’apprentissage par transfert implique que vous ne ré-entraînez que les dernières couches de votre modèle et réutilisez la plupart des premières couches telles qu’elles sont.

Cela permet:

Un gain de temps lors de l’entraînementD’entraîner un modèle performant sans avoir besoin de millions d’images. En utilisant cette technique, il se peut que vous obteniez un modèle aux performances satisfaisantes à partir de quelques centaines d’images.

Page 32: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

32©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Lorsque vous entraînez un modèle, il y a des dizaines de paramètres que vous pouvez changer qui impacteront comment l’entraînement est réalisé. En général, les débutants ont tendance à utiliser les paramètres par défauts mais une personne plus expérimentée aura tendance à ajuster ces hyper paramètres, afi n d’améliorer la performance. Vous trouverez ci-dessous deux exemples d’hyper paramètres:

Number of epochs: Nombre d’époques: une époque correspond à un cycle d’entraînement sur l’ensemble des données. Cela signifi e qu’à la fi n de chaque époque, le réseau de neurones aura “vu” chaque image de votre jeu d’entraînement une fois. Lorsque vous entraînez votre modèle, vous pouvez choisir le nombre de d’époques dans lesquels votre modèle s’entraînera.

AJUSTEMENT DES HYPER PARAMÈTRES

ASTUCE:

Vous pourriez être tenté d’utiliser un grand nombre d’époques afi n que votre réseau voit les images à plusieurs reprises, se perfectionnant ainsi dans sa tâche. Cependant, en faisant cela, un phénomène de “surapprentissage” (overfi tting) peut se produire. Votre modèle devient alors expert en prédictions pour votre jeu d’entraînement, mais bien moins performant sur des images qu’il n’a pas vu lors de l’entraînement. Votre réseau a en fait mémorisé votre jeu de données plutôt que d’apprendre à résoudre une tâche. Le surapprentissage est facilement détectable et se résout en ajoutant des images supplémentaires à votre jeu d’entraînement.

Rythme d’apprentissage: Il contrôle à quelle vitesse votre réseau apprend une tâche. Certaines architectures sont très sensibles à ce paramètre. De ce fait, il vous faudra peut-être une certaine expertise sur une architecture donnée afi n de l’ajuster convenablement.

Il y a plusieurs autres hyper paramètres, mais ces derniers sont souvent automatiquement ajustables grâce à certaines techniques - comme le “grid search”, les méthodes d’optimisation bayésiennes ou encore le “Learning to Learn” (apprendre à apprendre).

Page 33: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

33©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Une technique très utile lorsque vous entraînez vos modèles est l’augmenta-tion de données. Il s’agit d’une des méthodes les plus effi caces pour amélior-er la performance de vos modèles.

Cela consiste à reprendre vos images et d’en créer de nouvelles en les trans-formant. Par exemple, prenez l’image d’un avion, et ajoutez-y un fi ltre gris: il s’agit toujours d’un avion. Vous avez alors obtenu gratuitement un nouvel ex-emple d’entraînement que vous pouvez ajouter à votre jeu de données!

AUGMENTATION DE DONNÉES

Augmenter votre jeu de données en ajoutant des copies en noir et blanc de vos images

En transformant aléatoirement les images de votre jeu de données, vous agrandirez facilement ce dernier. Par exemple, vous pouvez doubler votre jeu de données en faisant pivoter toutes vos images.Différentes transformations peuvent être appliquer à condition qu’elles ne changent pas le label des images. Ces transformations augmentent votre jeu de données de manière artifi cielle, ce qui conduit en général à une amélioration de la performance.

Page 34: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TRAIN YOUR MODEL

34©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Prenez garde à n’utiliser que des transformations qui n’affectent pas vos labels! Par exemple, si vous souhaitez déterminer la couleur d’un objet, ne changez pas leur couleur car cela rendrait votre modèle inutile.

Rotation: prenez une image et faites la pivoter de quelques degrés au sein d’une fourchette (allant de -10 degrés à +10 degrés par exemple).

Pivot: prenez une image et faites la pivoter horizontalement ou verticalement. Sachez cependant que cela ne peut pas être appliqué à tous les concepts. Par exemple, si vous souhaitez classifi er des panneaux de signalisations, tels que des panneaux “tourner à droite” et “tourner à gauche”, il est préférable d’éviter de faire pivoter vos exemples car cela produira des annotations erronées.

Luminosité et contraste: vous pouvez modifi er le contraste et la luminosité de vos images, ce qui en général n’affecte pas leurs annotations. Cela permet à votre modèle d’être plus résistant à différentes conditions de contraste et luminosité.

Changement de couleur: vous pouvez changer la couleur de vos images en modifi ant légèrement les teintes ou passer en noir et blanc.

TIP:Si vous n’êtes pas développeurs/ses et que vous cherchez une option moins technique pour entraîner vos modèles, des logiciels vous permettent de simplifi er ces étapes et d’entraîner votre réseau de neurones en enlevant la complexité de l’entraînement. Après avoir importé vos images, ces logiciels vous permettent en un simple clic d’entraîner un modèle qui vous sera ensuite accessible sous la forme d’une API.

Voici quelques exemples de plateformes spécialisées dans les phases d’entraînement simplifi ées: IBM Watson, Clarifai, Cloud vision API. Cependant, avec ces plateformes vous ne pourrez pas optimiser votre modèle et ses performances. Ces options sont plus adéquates pour des projets relativement simples, pour lesquels vous paierez en fonction du volume d’images utilisées en entrée. Notez également que la plupart du temps, vous ne serez pas propriétaire de votre modèle et qu’il vous sera diffi cile de le déployer localement afi n de l’utiliser.

Page 35: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses
Page 36: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

36©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

ÉTAPE 5:

MESUREZ VOTRE PERFORMANCE

Après avoir entraîné votre modèle, vous aurez un réseau de neurones spécialisé dans la tâche que vous souhaitez automatiser. Mais comment connaître son effi cacité et comment en améliorer la performance? Une fois encore, les différentes solutions sur le cloud citées auparavant ne vous permettront pas d’évaluer vos performances effi cacement. De quoi avez-vous besoin pour tester votre modèle? Préparez cette étape avant d’entraîner votre modèle car il vous faudra séparer votre jeu de données initial en trois jeux d’images distincts:

Un jeu d’entraînement (que vous connaissez déjà) : ce jeu d’images est utilisé pour entraîner votre modèle, tel que nous l’avons expliqué auparavant.

Un jeu de validation : après chaque essai d’entraînement, utilisez les prédictions réalisées sur ce jeu de validation indépendant afi n d’ajuster vos paramètres.

Un jeu test : une fois votre modèle prêt pour sa mise en production, ce jeu vous permet de tester votre modèle avec des images qui n’ont jamais été utilisées pour créer ou optimiser votre modèle. Cela vous permet d’avoir une évaluation indépendante de votre système.

1.

2.

3.

Il est primordial d’assurer une certaine diversité dans chaque jeu d’images sinon votre évaluation risque d’être biaisée. En effet, si par accident, vos jeux d’entraînement et de test contiennent des images très similaires, vous aurez de très bonnes mesures de performance mais qui seront surestimées par rapport à la performance de votre modèle dans un environnement réel. Enfi n, si vous souhaitez comparer les performances de deux modèles différents, testez-les toujours avec le même jeu test.

BONNES PRATIQUES

Page 37: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TEST AND MEASURE

ASTUCELorsque vous utilisez cet indicateur, prenez en compte le fait qu’il est dépendent de la distribution de votre jeu test. Si vous avez 90% de vos images dans une même classe et que votre modèle prédit chaque image de votre jeu test dans cette classe, vous obtiendrez un ratio de 90%. Cependant, votre modèle n’a pas du tout appris à classifi er vos concepts.

Il existe une variété d’indicateurs de performance selon la nature de votre tâche. Vous trouverez ci-dessous une introduction aux quatre indicateurs principaux pour évaluer votre modèle.

1. RATIO DE PRÉCISION

Le ratio de précision est le premier indicateur à regarder pour les tâches de classifi cation. Il correspond au ratio d’images bien classées par rapport à votre jeu test entier.

2. MATRICE DE CONFUSION

La matrice de confusion est également un outil consacré aux tâches de classifi cation et de tagging. Il s’agit d’un aperçu plus précis des résultats de votre ratio de précision. Les rangées de la matrice correspondent aux classes prédites tandis que les colonnes correspondent aux classes réelles.

Dans l’exemple ci-dessus, notre modèle obtient un ratio de précision de 0.85 (La somme de la diagonale (les prédictions correctes) divisée par le nombre total d’images). Nous voyons que les classes B et C sont plus compliquées à interpréter pour notre modèle que la classe A. Grâce à cette information, vous pouvez soit redéfi nir vos catégories, soit alimenter votre modèle avec plus d’exemples pour les classes B et C.

INDICATEURS DE PERFORMANCE

Classe A Classe B Classe C

Classe A 178 2 5

Classe B 0 245 48

Classe C 18 35 190

réelprédit

Page 38: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TEST & MEASURE

3. PRÉCISION-RAPPEL

Le Précision-Rappel est une représentation du compromis entre précision et rappel pour différents seuils.

Ces mesures se basent sur la distribution de vos résultats entre vrais positifs, faux positifs, vrais négatifs et faux négatifs. Par exemple, lors d’une tâche de classifi cation, un faux positif de classe A est une image qui a été prédite comme appartenant à la classe A (un positif de classe A) mais qui en réalité est un objet de la classe B (un faux positif de la classe A). Un vrai négatif de classe A est un objet qui a été correctement prédit comme n’appartenant pas à la classe A etc.

A partir de cette distribution, nous obtenons :

Un système avec un rappel élevé mais une faible précision renvoie de nombreux résultats, mais la plupart des labels prédits sont incorrects.

Un système avec une haute précision mais un faible rappel, à l’opposé, renvoie très peu de résultats. Un système idéal, avec à la fois une haute précision est un haut rappel, renverrait beaucoup de résultats correctement labellisés..

Les seuils de précision-rappel varient beaucoup selon la nature de votre cas d’usage. Par exemple, si vous utilisez la reconnaissance d’image pour assister les médecins dans leurs diagnostics, votre seuil aura le niveau de rappel maximal, sans prendre en compte la précision : vous souhaiterez réduire le nombre d’images médicales que le médecin aura à analyser avant d’établir son diagnostic, mais il est primordial de ne manquer aucun indice de pathologie.

Précision = vrais positifs

vrais positifs + faux positifs

Rappel = vrais positifs

vrais positifs + faux négatifs

true positives

false negatives true negatives

false positivesvrais positifs

faux négatifs vrais négatifs

faux positifs

Page 39: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

TEST AND MEASURE

4. L’INDICE DE JACCARD

L’indice de Jaccard, également connu sous le nom d’Intersection-sur-Union, est un indicateur spécifi que aux tâches de localisation : la détection et la segmentation.

Pour chaque image, un indice Jaccard est calculé en comparant les bounding boxes prédites de celles annotées manuellement afi n d’obtenir une réalité terrain. L’index de Jaccard correspond à la zone d’intersection entre ces deux bounding boxes et leur zone d’union.

Afi n d’obtenir le ratio de performance de l’intégralité de votre jeu de données, divisez le nombre d’images ayant un indice de Jaccard supérieur à 0.5 par le nombre total d’images.

IoU = Aire d’intersection

Aire d’union

Toutes ces indicateurs ont été mis en place afi n de vous donner un meilleur aperçu de la performance globale de votre modèle et où trouver de potentielles marges de progression. Cependant, ne sous-estimez pas l’importance d’analyser également les résultats image par image car cela vous permettra de comprendre le type d’images sur lesquelles votre modèle commet des erreurs et pourquoi.

Souvenez-vous que ces indicateurs refl ètent uniquement la performance de votre modèle sur un jeu de données spécifi que. Si certaines conditions changent au cours de la durée de vie de votre modèle, les résultats peuvent se détériorer. Vous devrez alors réaliser de nouveaux tests avec des images qui illustrent ces nouvelles conditions afi n d’évaluer la performance de votre modèle dans son environnement réel.

Page 40: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses
Page 41: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

41©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

ÉTAPE 6:

DÉPLOYEZ VOTRE MODÈLE

Ça y est, votre modèle est enfi n prêt et vous pouvez désormais le mettre en production. Dans ce chapitre, nous allons expliquer comment choisir le hardware sur lequel votre modèle fonctionnera. Cet hardware sera dédié à l’inférence de vos images.

Ce qu’on appelle inférence est le processus qui fait passer une image à travers un modèle entraîné afi n d’obtenir une prédiction. La quantité de puissance de calcul nécessaire pour réaliser des inférences est bien moindre que celle requise au cours de la période d’entraînement. Cependant, en fonction de vos besoins, par exemple si la tâche de reconnaissance est réalisée en temps réel ou non, le hardware requis est complètement différent.

Les GPUs sont préférables aux CPUs car ils sont plus rapides et ont une meilleure performance en termes de temps d’inférence. Par contre, ils sont plus chers à l’achat et consomment plus d’énergie. Si la performance et la rapidité ne sont pas des éléments cruciaux pour votre projet, un CPU pourra probablement suffi re. .

GPU OR CPU?

Maintenant que vous avez choisi votre hardware nous allons passer en revue vos options pour le déploiement de votre modèle. Que signifi e déployer son modèle? Le déploiement englobe l’ensemble des étapes nécessaires à la bonne exploitation de votre modèle entraîné, tant d’un point de vue hardware que software: l’installation, la confi guration, la mise en production, les tests et les ajustements nécessaires.

Page 42: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

DEPLOY YOUR MODEL

42©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

IL EXISTE DIFFÉRENTES OPTIONS DE DÉPLOIEMENT:

Vous pouvez déployer votre réseau de neurones sur vos propres serveurs s’ils sont équipés du hardware nécessaire pour vos applications. Il faudra alors surveiller votre infrastructure de près mais il pourrait s’agir de la meilleure solution lorsque vous avez un volume de données très important à analyser ou encore si vous ne souhaitez pas que ces données quittent vos locaux pour des raisons de sécurité ou de confi dentialité. .

1. EN LOCAL

Le cloud est une des alternatives les plus simples si vous ne souhaitez pas vous préoccuper de l’achat et de la maintenance du hardware. Il existe de nombreux fournisseurs (AWS, Google Cloud, Microsoft Azure, OVH etc.) qui offrent des capacités de traitement dans le cloud. En général, ces derniers pratiquent un tarif à la consommation, ce qui peut s’avérer pratique pour vos applications car vous louerez uniquement la puissance informatique dont vous avez besoin.

2. CLOUD

Pour les applications mobiles, on peut faire fonctionner les réseaux de neurones soit directement sur l’appareil mobile, soit en effectuant des requêtes sur Internet, via une API web. Les fabricants de téléphones portables sont constamment en train d’ajouter de la puissance de calcul à leurs appareils. C’est pourquoi réaliser des inférences sur un portable est aujourd’hui une alternative que vous devriez considérer. Comme toujours, l’option à privilégier entre l’utilisation d’un serveur ou d’un portable pour effectuer des inférences dépendra de certains compromis entre rapidité, connexion internet, dépendances, contraintes et autres.

3. MOBILE

Il est possible d’intégrer des composants hardware qui ont des capacités de calcul dédiées à l’IA directement dans votre système d’acquisition de données. Cette option est souvent nécessaire dans les cas où il n’y a pas de connexion Internet, ou lorsqu’il y a tellement de données qu’il est préférable de les traiter localement. Ces composants se développent rapidement (Nvidia Jetson, Intel’s Movidius compute stick) et leurs performances ne font que s’améliorer.

4. EMBARQUÉ

En résumé, il n’y a pas de solution parfaite. Nous vous recommandons donc de concevoir une solution qui réponde le mieux à vos enjeux techniques.

Page 43: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

43©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

L’intelligence artifi cielle va transformer le monde tel qu’on le connaît; la reconnaissance d’image sera en fi gure de proue pour fournir des applications

réelles et impactantes.

Nous vous avons présenté les 6 étapes à suivre pour faire aboutir un tel projet. Construire un système de reconnaissance d’image effi cace nécessite de la détermination, de l’expertise et de la patience. Assurer la gestion d’un tel système dans la vie réelle est encore plus exigeant. L’équilibre entre performance et rapidité doit être minutieusement étudié, et l’ingénierie présente derrière le déploiement de réseaux de neurones sur des GPUs ou intégrés dans des téléphones mobiles n’est pas une tâche facile.

Suivre ces 6 étapes est un bon début mais afi n d’avoir un véritable impact ces étapes doivent faire partie d’un processus agile qu’à deepomatic nous appelons l’AI Management Loop (boucle de management des IAs).

CONCLUSION

Annotez un jeu de données et construisez votre premier système.

Déployez-le là où l’action se passe (localement ou dans le cloud).

En production: votre système analyse des images et des vidéos.

Lorsque votre système identifi e une irrégularité, il renvoie cette image ou séquence vidéo à votre système d’information.

Les humains agissent ou corrigent la prédiction faite par le système.

Ces actions et corrections sont utilisées pour améliorer votre jeu de données afi n d’entraîner un système de reconnaissance d’image meilleur et plus effi cace.

Ce tout nouveau système est redéployé en production.

Page 44: ©2018 deepomatic | | … · une IA à labelliser différents symptômes de patients tels que: Un autre exemple serait celui d’une agence immobilière qui doit catégoriser ses

44©2018 deepomatic | www.deepomatic.com | [email protected] | @deepomatic

Cette AI Management Loop vous permettra de réaliser les promesses de l’intelligence artifi cielle et d’exploiter l’intégralité du potentiel de vos images et caméras. Elle permet permet à vos systèmes de vivre: ils évoluent et s’adaptent à de nouvelles situations, s’améliorent avec le temps, bénéfi cient de l’expertise humaine de votre entreprise afi n d’atteindre un niveau supérieur de valeur économique.

C’est parce que nous sommes conscients de l’importance de ce processus que nous avons construit une plateforme qui implémente l’intégralité de la boucle de gestion des IAs, et qui permet aux entreprises de focaliser leur énergie dans la résolution de problèmes réels. De l’annotation de jeu de données au déploiement d’intelligences artifi cielles là où se déroule l’action, en passant par la transmission de retours à votre système d’information, notre plateforme permet aux entreprises de construire la société de demain augmentée par l’IA. Pour en savoir plus sur l’exploitation du potentiel de vos images et de vos vidéos, contactez nous:

[email protected]

Deepomatic met à disposition des entreprises un logiciel d’intelligence artifcielle qui leur permet de construire et d’exploiter sur le terrain des systèmes de reconnaissance d’image. Nous accompagnons les entreprises dans la transition vers une société augmentée par l’IA, tout en les aidant à créer de nouvelles expériences pour leurs utilisateurs et à améliorer leurs processus, en tirant toute la valeur provenant de leurs images et caméras.

Notre plateforme d’entraînement centralisée permet aux entreprises de facilement concevoir, entraîner et évaluer des systèmes de reconnaissance d’image. Lorsque votre IA est prête pour la mise en production, déployez-la où l’action se déroule: localement ou intégrée dans des appareils. Améliorez et gérez votre IA en fonction des conditions réelles et à distance grâce à notre système d’AI Management Loop.

Les entreprises du Global 500 utilisent Deepomatic pour automatiser leurs systèmes de sécurité et de sureté, rendre leurs infrastructures plus intelligentes ou encore optimiser leurs processus.

Pour en savoir plus sur la solution deepomatic, visitez notre site web:

À PROPOS DE DEEPOMATIC

www.deepomatic.com