Core ML : le cerveau pas si lent d'Apple

Mickaël Bazoge |

Parmi toutes les nouveautés présentées par Apple cette semaine, il en est trois destinées aux développeurs qui sortent particulièrement du lot : la réalité virtuelle avec des Mac puissants capables de développer des expériences VR, la réalité augmentée avec ARKit qui donne déjà des résultats épatants, et l’intelligence artificielle.

Core ML est un framework qu’Apple exploite dans bon nombre de ses services et applications (Siri, Appareil photo, le clavier QuickType…). Le constructeur l’ouvre maintenant aux développeurs tiers afin qu’ils mettent au point des applications plus intelligentes, et les premiers résultats sont plutôt encourageants même s’il reste du travail, bien sûr. L’apprentissage automatique est un concept qui parait un peu lointain, mais les outils mis à disposition par la Pomme le rendent plus abordable.

Cliquer pour agrandir

Mais il faut garder à l’esprit que Core ML n’est rien s’il ne s’appuie pas sur des modèles d’apprentissage automatique, comme des réseaux neuronaux, des modèles linéaires, des arbres de décision… Pour faire simple, ces modèles permettent à l’application intégrant Core ML de reconnaitre des objets en tout genre : animaux, paysages, arbres, véhicules, babioles, personnes… Apple oblige, tout est calculé dans l’iPhone ou l’iPad, rien n’est envoyé sur les serveurs mais il convient de « nourrir » Core ML. C’est pourquoi le constructeur propose de télécharger des modèles open source, ce qui permet de tester rapidement les capacités de la technologie.

Mais tout cela, c’est du blabla. Pour se rendre compte du potentiel de Core ML, nous avons tout simplement compilé deux applications embarquant des modèles conseillés par Apple. La première, simplement baptisée ML (Github), utilise le modèle ReNet50 qui reconnait des objets dans mille catégories. Le principal atout de cette app, c’est qu’elle affiche le nom de l’objet en direct : la reconnaissance est immédiate, mais les résultats sont souvent fantaisistes. Exemple en vidéo :

Paul Haddad, le développeur de Tapbots, a utilisé le modèle VGG16 avec plus de succès :

Certains résultats sont assez amusants, comme ce Mac Pro “alu” pris pour… un chauffage. Après tout, ce n’est pas complètement faux !

L’autre application testée, CoreML Vision (Github), offre un taux de déchet plus faible, mais les résultats sont moins rapides à obtenir. Il faut en effet prendre une photo puis patienter quelques secondes avant d’obtenir un résultat, mais celui-ci tape juste assez souvent… et parfois avec une précision diabolique ! Nous avons installé le modèle Inception V3, qui là aussi détecte des objets de mille catégories.

Cliquer pour agrandir
Cliquer pour agrandir

Le pourcentage donné par l’application correspond à la probabilité que l’objet reconnu soit celui pris en photo. Les résultats ne sont pas infaillibles évidemment, comme le montrent les deux exemples ci-dessous :

Cliquer pour agrandir

Si personne n’a appris au modèle à reconnaitre une paire de ciseaux ou une montre connectée, ces résultats ne sont pas étonnants. La qualité de la prise de vue peut aussi jouer.

Analyser et identifier des objets, c’est une première étape essentielle évidemment, mais il faut imaginer les utilisations qui en découleront. Il revient à Apple — qui en fait déjà usage — et surtout aux développeurs tiers d’imaginer les possibilités qui s’ouvrent grâce à Core ML.

avatar Mr Bob | 

Quelqu'un peut m'expliquer en quoi les modèles linéaires sont utiles pour l'apprentissage par l'intelligence artificielle ?

avatar Rigat0n | 

@Mr Bob

Perso quand je travaillais sur du deep learning les probabilités données par mes algos étaient calculées via une fonction linéaire, le but du jeu étant de trouver les "meilleurs" paramètres possible pour justement ce modèle linéaire
Pour des convnets t'utiliseras plutôt des filtres linéaires par exemple (où tu convolues tes datas avec un filtre)
Je sais pas si c'est clair

avatar bompi | 

Un "petit" laïus sur le sujet (PDF) : http://heather.cs.ucdavis.edu/draftregclass.pdf

Je n'ai pas tout lu mais il me semble que ça devrait répondre à ta question (comment on passe de méthodes statistiques à l'apprentissage de nos (très) chères machines).

avatar ovea | 

@Mr Bob

Au mieux, comme pour l'échelle sonore face à la puissance du bruit, il y a un rapport d'énergies (((une puissance, la valeur se multiplie par elle même)))
Un coup de logarithme et zooo, l'échelle devient linéaire … mais,
seul les valeurs pas trop fortes ou celles du bruit de fond en feront le miel ? .
L'information utile passe dans un tunnel entre zéro et un pour plus de simplicité.

Pour continuer, l'amortissement des pics et l'excitation(((ramène du bruit de fond))) des vallées à … l'oreille peut … faire une information augmentée par le cerveau de l'ingénieur du son qui rivalise d'astuces avec les meilleurs théories phycho-acoustiques (((qui se nourrissent de la simplicité de ces astuces)))

Voici venu le temps des rires et des champs de l'enfance de la cybernétique, des différences d'expérience et de leurs valorisations … par l'utilisateur, si le statut de développeur-utilisateur s'accorde encore et toujours avec la vision d'Apple.

avatar Mr Bob | 

Merci pour vos réponses ! :)

avatar NEWIPHONE76 | 

La ⌚️ quand même !!

avatar EBLIS | 

J'ai bien ri pour la montre Apple, l'algo a très certainement reconnu une flûte à cause de la fente supérieur et des trous ressemblant trait pour trait à l'instrument de musique.

avatar romainB84 | 

Et du coup
Est ce que le moteur de reconnaissance d'objet de l'appli photo est meilleur que sur ios10?

avatar ovea | 

@romainB84

Iphone 8 et son capteur optique,
avec une profondeur de champs plus riche en informations, permettra de gagner des points d'expérience pour n'utiliser ce raffinements qu'en cas de doute sur l'objet et déclencher un apprentissage plus complexe également … enfin, si un processus dédié ((trop évolué, à l'heure actuelle)) en boost les capacités

avatar romainB84 | 

Donc non en gros ?

avatar Mike Mac | 

J'aime bien l'appli ML et sa reconnaissance des choses.

J'imagine bien le gars qui pointera son iPhone sur la tête de ses potes et qu'apparaîtra sur l'appli :

"l'amant de ta femme 98%"

avatar outmen | 

"Apple oblige, tout est calculé dans l’iPhone ou l’iPad" ... c'est un gag ? On peut même pas dicter un SMS de 4 mots sans être en 4G plein pot !!

avatar Moumou92 | 

@outmen

Tout ce qui touche la reconnaissance d'image est fait en Locale pour la confidentialité...

avatar ElFitz | 

Deux choses... d'une je n'ai pas trouvé d'infos sur la possibilité d'entraîner des modèles en local (d'un autre côté, vu les technos, faudrait beaucoup de data)

De deux, si vous voulez de l'ultra-performant en temps réel sur de la vidéo, y'a toujours Yolo (https://pjreddie.com/darknet/yolo/). La démo est bluffante. Bon courage pour faire tourner la v2 standard sur un iPhone ? ;-)

avatar Zrat | 

Faire du ML en local c'est possible mais dans ce cas pas du Deep Learning. Le DL requiert comme tu le dis énormément de données pour fonctionner. De plus l'apprentissage consomme énormément de puissance de calcul. On essaie d'ailleurs de passer un max sur les GPUs pour ça.

Pour le Mobile pour le moment, on préfère se concentrer sur l'exécution sur des modèles déjà entraînés. Mais selon le modèle ça peut rester lent.

C'est pourquoi Apple et Google/Qualcomm essaient de construire des APIs dédiées pour décharger ces calculs sur des puces spécialisées. Par exemple TensorFlow light, le Framweork de DL de Google peut maintenant être accéléré par le DSP Hexagon du Snapdragon 835 et offre un gain de vitesse d'un facteur 10 par rapport à un CPU et facteur 3 par rapport au GPU.

avatar hledu | 

Maintenant on sait comment un Terminator fonctionne... ok je sors ?

avatar EBLIS | 

Terminator est sous Android, c'est bien connu!

CONNEXION UTILISATEUR