Introduction autour du deep learning et son application aux IoT - Partie 2

Comment le deep learning nous aide à résoudre un problème ?

Globalement, l’objectif du deep learning est de résoudre des problèmes « intuitifs » c’est-à-dire qu’ils se caractérisent par une forte dimensionnalité et aucune règle. Le mécanisme expliqué plus tôt montre un algorithme supervisé basé sur une modélisation limitée de neurones.

Le deep learning permet aux ordinateurs de résoudre des problèmes intuitifs, car :

  • Avec le deep learning, les ordinateurs peuvent apprendre par expérience, mais peuvent aussi comprendre le « monde » en matière de hiérarchisation de concepts – où chaque concept complexe est défini en termes de concepts simples.
  • Cette hiérarchie de concepts est construite en « bottom up » sans règle prédéfinie en abordant le problème de la représentation.

Ceci est similaire à la façon dont un enfant apprend « ce qu’est un chien » c’est-à-dire la compréhension des sous-composantes d’un concept, par exemple le comportement (aboiement), la forme de la tête, la queue, etc. puis rassembler ces concepts en un seul, soit le chien lui-même.

Le problème de la représentation (des connaissances) est un thème récurrent dans l’informatique.

La représentation des connaissances intègre les théories provenant de la psychologie cherchant à comprendre comment les humais résolvent un problème. L’idée est : si, comme les humains, les ordinateurs sont capables de rassembler des connaissances, alors cela évite à un humain de devoir spécifier formellement toutes les connaissances dont l’ordinateur a besoin pour résoudre un problème.

Pour un ordinateur, le choix de la représentation a un impact énorme sur les performances de la machine et dans la conception de l’algorithme d’apprentissage. Par exemple, sur la base d’un son, il est possible de savoir si le locuteur est un homme, femme ou enfant. Cependant, pour de nombreuses applications, il est difficile de savoir quel ensemble de caractéristiques peut représenter précisément l’information. Par exemple, pour détecter une voiture sur une photo, une roue peut être de forme circulaire – mais dans la réalité les roues peuvent avoir plusieurs variantes (rayons, pièces métalliques, etc.). Donc, l’idée est de trouver à la fois une cartographie et une représentation.

Si nous parvenons à trouver des représentations et leur correspondance automatiquement (c’est à dire sans intervention humaine), nous avons une conception flexible pour résoudre les problèmes. Nous pouvons nous adapter à de nouvelles tâches et même en déduire de nouvelles idées sans observation (modèle émergent). Par exemple, sur la base d’un son, nous pouvons en déduire un accent et donc une nationalité. Ce mécanisme est appelé auto apprentissage. L’utilisation du deep learning est la plus adaptée pour les situations impliquant de grandes quantités de données et des relations complexes entre les différents paramètres. L’entraînement d’un réseau de neurones consiste à lui montrer de manière répétée que « Compte tenu de l’entrée, la sortie est la bonne ». Si cela est fait suffisamment de fois, un réseau va imiter la fonction que l’on désire simuler. Il saura également ignorer les entrées qui ne sont pas pertinentes avec la solution. À l’inverse, il ne parviendra pas à converger vers une solution s’il ne reçoit pas les entrées critiques. Ce modèle peut être appliqué à de nombreux cas comme on va le voir ci-dessous dans un exemple simplifié.

 

Un exemple d’apprentissage à travers les couches

Le deep learning consiste à apprendre à travers des couches, ceci permettant à un ordinateur de construire une hiérarchie de concepts complexes à partir de concepts plus simples. Cette approche fonctionne pour les problèmes subjectifs et intuitifs qui sont difficiles à articuler.

Considérons une image. Les ordinateurs ne peuvent pas comprendre le sens d’une collection de pixels. Le mappage d’une collection de pixels vers un objet est compliqué.

Avec le deep learning, le problème se décompose en une série de correspondances hiérarchiques – chaque mappage est décrit par une couche spécifique.

L’entrée (représentant les variables que nous avons réellement pu observer) est présentée à la couche visible. Ensuite, une série de couches dites cachées extrait les caractéristiques de plus en plus abstraites. Toutefois, il faut noter que ce processus n’est pas pré défini, c’est-à-dire que nous ne spécifions que ce les couches sélectionnent.

Par exemple : à partir de pixels, la première couche cachée identifie les bords.

À partir des bords, la seconde couche identifie les coins et les contours.

À partir des coins et des contours, la troisième couche identifie des parties d’objets.

Enfin, à partir des parties d’objet, la quatrième couche identifie des objets entiers.

deep learning identifier les objets

 

Les implications pour les IoT

Récapitulons :

– Le deep learning s’applique à de nombreux domaines

– Le deep learning est maintenant possible à mettre en œuvre pour trois raisons : la puissance élevée des CPU/GPU, des algorithmes performants et l’existence des sets de données. Au cours des prochaines années, ces facteurs vont conduire à d’autres applications

– Ils sont les mieux adaptés pour les situations qui impliquent de grandes quantités de données et de de relations complexes entre les différents paramètres.

– Résoudre un problème intuitif : former un réseau de neurones exige de démontrer de manière répétée que : « Compte tenu de l’entrée, ceci est la sortie correcte ». Si cela est fait suffisamment de fois, un réseau va imiter la fonction que l’on veut simuler.

En outre, nous avons des limitations technologiques. Par exemple, nous avons un long chemin à parcourir avant d’avoir un système capable de comprendre que vous êtes triste parce que votre chat est mort (mais il semblerait que le Cognitoys basé sur IBM Watson se dirige dans cette direction).

L’objectif actuel se situe avant tout sur l’identification des photos, comme deviner l’âge à partir de photos (basé sur le projet Microsoft Oxford API).

Aujourd’hui, nous restons limités sur le plan technologique. En effet le réseau de neurones de Google qui a identifié les chats avait 16 000 nœuds, alors qu’un cerveau humain a environ 100 milliards de neurones !

 

Il y a plusieurs scénarios où les réseaux de neurones en back propagation sont adaptés

– Une grande quantité de données entrée/sortie est disponible, mais vous n’êtes pas sûr de savoir comment relier la sortie. Ainsi, nous avons un plus grand nombre de « Etant donné une entrée, la sortie est la bonne » qui peuvent être utilisé pour entrainement le réseau, rendant facile de créer un certain nombre de comportements corrects.

– Le problème semble avoir une complexité trop élevée. La complexité provient d’une base faible en règle et d’une haute dimensionnalité qu’il est difficile de représenter. Cependant, on est sûr qu’il existe une solution.

– La solution au problème peut changer au fil du temps (par exemple, aujourd’hui 2+2=4, mais dans un avenir incertain nous pourrions constater que 2+2=3.8) et les sorties sont « floues », ou non numériques.

– Le domaine d’expertise n’est pas strictement nécessaire, car la sortie peut être purement dérivée des entrées. Pourtant, prenons l’exemple de la prévision du marché boursier. En théorie, étant donné le nombre suffisant de cas d’entrées et de sorties pour une valeur de stock nous pouvons créer un modèle qui prédira les scénarios inconnus si le réseau a reçu l’entrainement adéquat en utilisant les techniques du deep learning.

– Inférence : nous devons en conclure de nouvelles idées sans observation.

 

La suite de l’article dans une 3e partie

 

Mickael Faust

Référent technique mobilité/IOT, SQLI Lyon

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Inscription newsletter

Ne manquez plus nos derniers articles !