Comprendre les réseaux neuronaux sur mobile

Concevons un être cybernétique : petite analogie explicative.

Florent Morin
Morin Innovation
8 min readJan 21, 2018

--

Cette analogie avec le cerveau humain prend certaines libertés scientifiques. Son but est avant tout la vulgarisation.

Version 1 : un cerveau qui vit et réfléchit

Pour commencer, vous concevez juste un cerveau. Qui peut faire plein de calcul, qui peut aller très loin dans une réflexion poussée. C’est déjà une prouesse.

Ce cerveau isolé, c’est le CPU. Le processeur principal de tout ordinateur ou smartphone. Il peut faire de nombreux calculs poussés. Mais il ne connait rien du monde extérieur.

Il est constitué, comme tout cerveau, de neurones qui communiquent entre eux par le biais de synapses.

Des synapses qui envoient un signal avec une certaine lenteur. Et des neurones qui ne communiquent pas forcément de manière optimale entre eux. Mais qui trouvent des solutions à des problèmes complexes.

Certaines parties de ce cerveau sont optimisées pour des calculs mathématiques poussés utilisés fréquemment. Pour ces calculs, les neurones utilisés sont placés de manière optimale et communiquent très vite grâce à des synapses très vivaces. Ce sont les calculs arithmétiques des processeurs et quelques fonctions de chiffrement courantes.

Ce cerveau est très performant mais fonctionne sans lien avec l’extérieur.

Version 2 : un cerveau qui voit, entend, s’exprime

La première chose à faire pour que notre être comprenne son environnement extérieur est de relier ses yeux et ses oreilles à son cerveau.

Il entend et voit, sans réellement comprendre. Mais peut mémoriser une son ou une image pour les restituer.

Pour restituer une image, il va la dessiner. C’est l’écran de votre smartphone ou votre ordinateur.

Pour restituer un son, il va l’exprimer par la voix. C’est le haut parleur de votre smartphone, ordinateur ou enceinte connectée.

Le dessin est particulièrement lent à réaliser avec le cerveau tel qu’il est, le CPU. Vous allez donc ajouter une capacité spéciale à ce cerveau : la capacité de dessiner très vite des choses complexes avec des instructions simples. C’est aujourd’hui ce que l’on appelle le GPU, le processeur graphique.

Cette partie du cerveau ne peut pas opérer d’opérations complexes, mais peut aller très très vite pour effectuer une multitude de tâches. Ainsi, il peut calculer la position dans l’espace de millions de triangles pour ensuite représenter une image en 3D.

Un oeil, des oreilles, des bras pour dessiner

Vous souhaitez également avoir la possibilité de réveiller votre être cybernétique sans qu’il n’ait à écouter en permanence. L’écoute en permanence le fatigue et use ses batteries.

Vous allez créer une partie du cerveau qui met votre être en éveil uniquement quand on le sollicite. Cette partie du cerveau est en lien direct avec l’oreille et son fonctionnement permanent est suffisamment optimisé pour ne pas consommer d’énergie. C’est le rôle du co-processeur M9 qui est arrivé avec l’iPhone 6S et permet de réveiller l’iPhone par un simple “dis Siri”.

Votre cerveau voit, entend, communique, mais ne comprend pas les signaux de son environnement.

Version 3 : un cerveau qui apprend pour toujours

En prenant le temps, vous réussissez à améliorer la partie principale du cerveau, qui est la plus lente mais aussi la plus perfectionnée.

Sans soucis, votre être cybernétique sait reconnaître un son, une voix et le transformer en instruction compréhensible. Mais il lui faut un peu de temps. Heureusement, votre être cybernétique à une mémoire exceptionnelle et il apprend très vite les dialectes du monde entier. Une fois appris, il sait les interpréter déjà beaucoup plus vite.

Il apprend, tranquillement

Vu que vous êtes malin, vous avez conçu plusieurs êtres cybernétiques qui apprennent en même temps. Ce qui permet ensuite de partager très vite les connaissances en mettant tout ce savoir en commun.

Ce savoir mis en commun s’appelle un modèle.

Pour reconnaître une image, c’est plus complexe. Vous devez montrer des millions de photos de chiens et de hot-dogs sous plusieurs angles à votre être cybernétique pour qu’il sache les reconnaitre. Et encore, même si l’interprétation du modèle est bien plus rapide que l’apprentissage, c’est encore lent.

Le cerveau apprend pour toujours, mais reste trop lent.

Version 4 : réutilisons ce qui est sous-exploité

Vous avez remarqué que certaines parties très efficaces du cerveau principal (CPU) et du cerveau dédié à la représentation visuelle (GPU) étaient utilisés ponctuellement, très efficacement. Mais, la plupart du temps, ils sont en sommeil.

En utilisant ces parties du cerveau pour la reconnaissance d’image via les modèles vous permet d’améliorer significativement les performances.

Cette exploitation détournée des ressources non exploitées est illustrée côté Apple par les frameworks Accelerate (CPU) et Metal 2 (GPU).

Vous allez également améliorer les modèles d’apprentissage pour qu’il soit plus adapté à la structure du cerveau bionique. C’est le rôle de Core ML.

Il sait reconnaître son environnement

Votre être cybernétique était jusqu’alors borgne. Il pouvait voir uniquement en 2D. Pour ajouter un peu de profondeur à son champs de vision et pour exploiter au maximum ses nouvelles capacités, vous avez ajouté un deuxième oeil. Ce qui correspond à la double caméra de certains iPhone. Votre être cybernétique peut donc reconstituer la profondeur de champs par comparaison des images des caméras. Votre être cybernétique voit en 3D.

Vous disposez maintenant d’un cerveau exploité au maximum de ses capacités.

Mais, s’il va très vite pour des modèles d’apprentissage simple, la reconnaissance d’images et autres signaux externes lui donne du fil à retordre.

Version 5 : un cerveau qui interprète les signaux externes

Vous avez remarqué que certains modèles sont récurrents. Un modèle en particulier permet une exploitation des signaux externes : le réseau neuronal, un procédé d’apprentissage inspiré des réseaux de neurones humains.

Ce procédé est efficace, mais son exploitation est lente car l’algorithme pour l’exploiter est complexe et encore géré par le cerveau principal (CPU). Une partie des calculs ont été renvoyés vers le cerveau utilisé pour le dessin (GPU), ce qui a permis d’accélérer les choses. Et une partie du cerveau principal a également été optimisée pour cela.

L’interprétation des signaux externes est donc rapide, mais pas suffisamment pour que notre être cybernétique puisse réagir dans l’immédiateté. Par exemple, pour reconnaitre un visage.

Sa capacité de reconnaissance est exceptionnelle

Et c’est à ce moment-là que vous avez une idée géniale : concevoir une partie du cerveau spécialement optimisée pour les réseaux neuronaux, en lien direct avec toutes les autres parties du cerveau. Cela correspond au processeur A11 Bionic de l’iPhone X, de l’iPhone 8 et de l’iPhone 8 Plus : il est capable d’opérer 600 milliards d’opérations par seconde.

Non seulement, cette partie du cerveau est complètement optimisée pour les réseaux neuronaux. Mais en plus, elle est également optimisée pour les modèles d’apprentissage (Core ML) que vous lui apportez. Tout en fonctionnant en symbiose avec l’ensemble des autres parties du cerveau (Metal 2, Accelerate).

Ce nouveau cerveau est complètement en phase avec l’apprentissage par les réseaux de neurones : c’est pour lui une partie de plaisir.

Version 6 : dépasser la vision humaine

Votre cerveau en version 4 était déjà capable de “voir” en 3D. Grâce à ses deux caméras, il pouvait reconstituer une image en 3D.

Mais vous souhaitez exploiter pleinement le réseau neuronal de votre nouvel ami pour qu’il puisse immédiatement vous reconnaître.

Vous avez donc amélioré ses capacité visuelles en lui ajoutant plusieurs capteurs qui permettent, grâce à une technologie poussée, d’effectuer une reconnaissance de votre visage en 3D à partir de 30 000 points capturés en temps réel. Y compris dans le noir complet.

Reconnaissance faciale 3D en temps réel

À partir de cette capture précise de votre visage, votre être cybernétique est capable d’avoir une représentation réellement 3D de la forme de votre visage. Forme du visage qu’il a déjà apprise et qu’il est capable de reconnaitre instantanément grâce à son puissant réseau neuronal. Que vous ayez laissé pousser votre barbe, vos cheveux, que vous portiez ou non des lunettes, que vous soyez ou non maquillé.

Cela correspond à la caméra TrueDepth de l’iPhone X et son système de reconnaissance faciale Face ID.

Version 7 : il apprend tout seul ?

Pour conclure, j’imagine que vous rêvez déjà d’un cerveau qui peut construire lui-même ses propres modèles d’apprentissage.

La technologie et les connaissances actuelles ne le permettent pas encore. Mais, il y a moins de 10 ans, tout ceci n’était que de la science fiction.

L’intelligence humaine n’a pas fini de nous surprendre.

Et l’autonomie ?

Un être cybernétique, comme un être humain, a besoin d’énergie pour fonctionner. Sinon, ses batteries sont vite usées.

Étant donné que vous maîtrisez toute la conception de votre être cybernétique, du matériel au logiciel, vous en faîtes un usage optimal pour qu’il ne consomme pas inutilement de l’énergie. Ce serait un gaspillage pour une denrée si précieuse.

Par exemple, si vous utiliser 1.5 unité d’énergie pour activer un neurone, alors que vous n’avez besoin que de 1.2 unité, vous gaspillez de l’énergie.

Les appareils mobiles fonctionnement de la même manière. Si on conçoit le logiciel en maîtrisant le matériel, on évite ce gaspillage qui ne profite à personne. (hormis au constructeur qui aura fait des économies de conception avec des produits génériques)

Échanges et démos 🙂

Si vous souhaitez échanger sur le sujet et avoir quelques démos concrètes, je serai présent (en mon nom propre ou Morin Innovation) à plusieurs événements :

Un aperçu des démos que j’ai réalisé pour ces événéments

À bientôt !

--

--