Deep Learning — entre disruption et prudence !

Source: Deep Learning on Medium


Deep Learning — entre disruption et prudence !

Elle est sur toutes les lèvres, dans tous les esprits, l’Intelligence Artificielle est aujourd’hui l’un des domaines de recherche fondamentale les plus importants et les plus innovants. Il est question d’intelligence artificielle quand des systèmes informatiques simulent des capacités cognitives, particulièrement la capacité humaine à la prise de décision de façon autonome et non pré-programmée. In-fine, ces systèmes dits intelligents visent à la résolution de problèmes plus ou moins ambigus et à complexité variable.

Le Machine Learning est une des applications de l’Intelligence Artificielle qui s’intéresse essentiellement aux capacités d’apprentissage en se basant sur des exemples. Il s’agit, à partir d’un jeu de données prédéfini, d’apporter à un programme ou une machine, la capacité d’apprendre et de tirer des conclusions sur des données similaires.

Figure : Comparaison ML — DL

La figure ci-dessus illustre la différence entre les principes de fonctionnement du Machine Learning et du Deep Learning. Le premier nécessite une intervention humaine pour définir les caractéristiques clés du jeu de données. Ces propriétés sont à la base des capacités prédictives du Machine Learning. Dans le cas du Deep Learning, c’est le modèle conceptuel (le réseau de neurones) qui extrait automatiquement les propriétés qu’il juge pertinentes.

Dans un cas comme dans l’autre, on retrouve une mécanique commune pour la réalisation de systèmes prédictifs:

  1. L’extraction et la classification des caractéristiques clés.
  2. L’utilisation de la GPU pour traiter des données visuelles en parallèles et à des vitesses élevées.
  3. L’utilisation de l’algorithme ‘’back-propagation‘’ qui permet d’entrainer le réseau de neurone et en peaufiner la précision.
  4. Le recours à des bibliothèques open-source et qui permettent de capitaliser sur de bonnes pratiques: Keras, Pytorch, Tensorflow, Detectron.

Avant d’aller plus loin, faisons un zoom sur le Deep Learning !

A l’instar des approches d’IA dites classiques, le Deep Learning nécessite un volume de données très important avant de pouvoir en apprécier la valeur ajustée. Plus on pourra mettre d’informations à disposition du réseau de neurone sous-jacent, plus il sera en capacité de gagner en maturité et d’extraire les propriétés des catégories à reconnaitre. Toutefois, tout le monde ne dispose pas des bases de données de Google et encore moins du temps et forces de calcul nécessaires. Pour y remédier, il existe des solutions alternatives qui permettent de capitaliser sur des modèles existants. Le Transfer Learning ou encore l’amplification de données sont là des techniques qui veillent à réutiliser des modèles/informations existantes afin de résoudre des problèmes connexes. Voyons la chose de façon synthétique :

Transfer Learning (Fine Tuning)

  1. Prendre un réseau de neurone, tel que ConvNet, pré-entrainé avec des images provenant d’ImageNet
  2. Retirer la dernière couche du réseau (couche Softmax)
  3. Traiter le reste du ConvNet comme un extracteur de propriétés pour le nouveau jeu de données et ajuster les poids du réseau pré-entrainé via la rétro-propagation.
  4. Une fois qu’on extrait les propriétés pour toutes les images, nous obtenons à ce moment-là, un classificateur pour le nouveau jeu de données.

Amplification des données

  1. Prendre une banque de données existante (images pré-annotées)
  2. Appliquer des transformations multiples : rotation, cisaillement, recadrage aléatoire, retournement horizontal, étirement et correction d’objectif
  3. Ventiler les images obtenues sur les différents segments: Training Set, Dev Set, Cross-Validation Set

On a évoqué juste avant la notion de réseau type ConvNet. Il s’agit de réseaux de neurones utilisés en Deep Learning pour la classification des images. En voici les principales déclinaisons:

  1. Regional CNN (R-CNN): Décompose une image en plusieurs régions d’intérêt, environ 2000, qui sont ensuite passées en paramètre d’entrée. Le réseau de neurone sera sollicité pour identifier la région contenant la catégorie ciblée.
  2. Fast R-CNN: Reprend la même approche en éliminant la phase de décomposition. Cela permet d’accélérer les temps de traitement, vu qu’il n’y a plus matière à passer 2000 images à chaque itération.
  3. Faster R-CNN: Contrairement au RCNN et au Fast R-CNN, cette approche n’implémente pas le Selective Search, qui ralentit les performances du réseau. Il intègre un algorithme de détection d’objet qui permet au réseau d’apprendre par lui-même l’extraction des régions d’intérêt.
  4. Mask R-CNN: Voilà là une extension du R-CNN qui permet une identification plus précise de l’objet en suivant ses contours. Ce type d’algorithme est notamment implémenté dans le cadre de la solution open-source « Detectron ». En voici une illustration:
Figure : Mask RCNN avec Detectron

Les modèles de type Deep Learning sont principalement utilisés pour le traitement d’images:

  • Reconnaissance d’objets :

« Traffic light classifier » est une application qui permet de détecter les feux de circulation sur une image en s’appuyant sur l’API TensorFlow (un outil qui facilite la détection des objets dans une image). L’intérêt majeur de cette solution est d’avoir une gestion intelligente du traffic routier.

« High-precision bicycle detection»: Deux chercheurs taïwanais ont mené une étude sur la détection de bicyclettes avec une haute précision. L’objectif principal étant d’améliorer la fluidité du traffic routier et les conditions de circulation d’une catégorie d’usagers.

« Simulated+Unsupervised Learning » : Les chercheurs d’Apple ont lancé cette technique pour accroître le réalisme d’une image de synthèse (générée par des ordinateurs). Cette technique permet d’améliorer la reconnaissance des éléments composant une image de synthèse.

  • Design et développement :

Pix2Code est une technologie permettant de générer du code HTML à partir d’une maquette d’interface utilisateur. Ceci permet de faciliter la tâche au développeur « front-end » en lui faisant gagner beaucoup de temps.

Sketch2Code est une solution web développée par Microsoft. Son but est de transformer, en temps réel, une interface utilisateur dessinée à la main en code HTML.

Sketch2React est un Framework qui sert à convertir un fichier de design sketch vers du code React Native.

  • Business to Business :

Industrie: Une équipe suisse de l’EPFL a conçu un programme capable de générer des formes aérodynamiques grâce au Deep Learning. La solution a été utilisée, courant septembre 2018, pour choisir le design de l’engin qui fut utilisé par l’équipe de France lors d’un concours de vitesse.

E-commerce: Le Deep Learning est utilisé dans les recommandations des produits : assistant virtuel, commande par voix, réponse à des requêtes par email ou par téléphone et aussi dans les campagnes marketing dans le but d’améliorer l’expérience client. Cette utilisation permet d’augmenter la productivité des entreprises en déléguant une partie des activité à ce type d’algorithme.

Santé: Trois chercheurs de l’Université Stanford aux Etats-Unis ont développé des système basés sur du Deep Learning afin de prédire les risques d’interactions médicamenteuses.

Bien que le Deep Learning représente de nombreux intérêts, il n’en reste pas moins sujet à quelques faiblesses:

Maintenabilité et Evolutivité: il s’avère difficile d’expliquer, d’interpréter ou de maintenir un réseau de neurone à cause de son caractère opaque, dit ‘boîte noire’. Débugger les neurones d’un réseau en est d’autant plus compliqué, nous ne pouvons à ce jour prédire les propriétés remarquables pour un réseau. Les caractéristiques d’un objet donné qui font sens pour ce type de système n’en font pas forcement pour l’être humain. Au final, on ne peut se fier complètement à ce type de mécanisme.

La sécurité : Il est relativement facile d’apprendre à tromper un réseau de neurone si l’on a accès à l’ensemble de ses poids. Il devient possible de trouver des failles dans le réseau et de modifier très légèrement une image pour la faire passer pour autre chose. Un être humain ne verra pas la différence et en sera ainsi moins crédule, mais pour le réseau, il s’agit d’une toute autre image (exemple : attaque par patch).

Le futur de l’IA pourrait donc passer par des systèmes combinant du Deep Learning avec des moyens de raisonnement complexes. Toutefois, une grande part d’ombre reste à explorer avant de pouvoir en vanter la maîtrise…

Rédigé par: ADBIB Mohamed, IBNOU ALI Anass, ELLAITE Badiâ

En collaboration avec KOKAINA Sallah