Blog Zenika

#CodeTheWorld

Événements

L’intelligence artificielle @Devoxx France 2017

L’intelligence artificielle est partout. Enfin, au moins on en parle partout, et Devoxx France n’est pas une exception. En 2017, la conférence annuelle des développeurs a mis à l’honneur l’intelligence artificielle, les robots et le machine learning.

Dans les keynotes, on a parlé des aspects sociétaux, des lois et de l’éthique que les changements apportés par “les machines” impliquent. Deux tracks ont regroupé les talks dédiés, Big Data, Machine Learning, IA & Analytics et Future & Robotics. Quelques robots ont fait leur apparition timidement sur scène et sur les stands. Les grands fournisseurs de services d’IA ont concentré leur participation sur ces sujets.
devox_1  devoxx_2 devoxx_3
 
 
 
 
Les talks intelligence artificielle
De la responsabilité des ingénieurs – Eric Sadin
Le message principal d’Eric Sadin est que l’intelligence artificielle participe à la marchandisation de la vie et que la responsabilité des individus n’est pas partagée de manière égale.
Cette « marchandisation » de la vie, c’est la récupération d’informations à travers les objets connectés, leur traitement pour les adapter à des algorithmes et l’interprétation des humains par des systèmes, pour ensuite créer une société, et surtout des entreprises, organisées de manière algorithmique. C’est dans ce contexte que la classe des ingénieurs a une responsabilité accrue, car le ratio entre leurs décisions et l’incidence de leurs décisions peut-être très élevé. Pour conclure, Eric Sadin attire l’attention sur le fait que le système éducatif, dont la mission principale est de développer l’esprit critique, est en péril.
Video games: The quest for smart dumbness – Laurent Victorino
A la différence des autres domaines, dans lesquels les créateurs d’une intelligence artificielle poursuivent sa perfection, les jeux vidéos doivent éviter cette réussite. Laurent Victorino commence son talk en nous montrant un tableau simili-Rembrandt, « The Next Rembrandt », peint par une AI après avoir étudié les œuvres de l’artiste. Il l’appelle la « copie d’un Rembrandt qu’il n’a jamais peint ». Ensuite, il nous montre ce que cela signifie une IA parfaite dans un jeu vidéo : dans un FPS (first-person shooter), le joueur serait tué dès le début de sa mission et n’aurait aucune chance. Alors, il faut appliquer « le paradoxe de la débilité maline » : créer l’IA parfaite et ensuite la rendre plus débile, pour que les joueurs puissent gagner contre elle. Laurent Victorino nous conseille gladiabots et event[0], des jeux pour tester des IA.
La disruption des langues a commencé – Philippe Anel
Chez MediaWan, ils proposent des services de sous-titrage des films automatisés. D’après Philippe Anel, ce qui fait la différence de nos jours, c’est le deep learning et la quantité immense de données existante maintenant, sans laquelle l’IA ne fonctionnerait pas. Durant son talk, il passe en revue les techniques, il fait un petit historique et il présente les difficultés encore à surpasser de chaque brique qu’ils utilisent : la reconnaissance vocale, la synthèse vocale et la traduction automatique.
J’ai particulièrement apprécié sa conclusion : pour communiquer entre nous, le chemin qu’on avait pris, celui qui implique le remplacement de notre propre langue par une langue globale, n’était pas le bon. Il nous faut des outils qui nous permettent de garder notre propre langue.
Démocratisation de l’IA Microsoft : de la recherche aux technologies et outils à votre disposition ! Xavier Dupré
Il y a trois niveaux dans le travail sur l’intelligence artificielle : au premier niveau, les chercheurs font l’extraction des informations et ils créent l’IA. Au deuxième niveau, c’est l’utilisation du machine learning avec des modifications, et au troisième niveau se situe l’assemblage produit (voir ci-contre).
Devoxx_4
Xavier Dupré donne l’exemple de Connected Cows – de la prédiction avec des capteurs plantés dans des vaches, ou de Uber – la validation de l’identité des chauffeurs avec la reconnaissance de visage.
Du fait de son fonctionnement, basé sur la statistique, l’IA est adapté aux problèmes à grande échelle, avec beaucoup de variables et de données. La recherche dans l’IA concerne les cinq sens humains et à encore à évoluer au niveaux des coûts, des capacités de calcul, de la consommation des composants et de la convergence des algorithmes.
Pour travailler sur l’intelligence artificielle, chez Microsoft ils utilisent des environnements virtuels pour tester comme Malmo par exemple. Dans les images ci-contre, Xavier Dupré cite des produits open source pour le deep learning, le machine learning et la programmation. D’ailleurs, maintenant il existe une version Visual Studio avec des librairies de machine learning.
devoxx_5
Un bot pour gérer l’agenda de ta conférence – Guillaume Laforge
Dans le passé, on avait les chatbots de l’IRC. Aujourd’hui, les chatbots gagnent en intelligence et se veulent des assistants virtuels. Api.ai, récemment racheté par Google, est une plate-forme pour créer des bots et utiliser des services de machine learning, de traitement de texte et de voix. Guillaume Laforce nous fais la démo de son bot avec le boîtier Google Home. Pour rendre disponible une application sur Google Home, il faut passer par une sorte de « botstore ». Il conseille les ressources créés par Google concernant le design des bots : Design Checklist et Actions Design. Parmi les conseils, Guillaume Laforce retient : créer une voix différente pour l’identifier (« earcon », icône pour l’oreille), définir les attributs d’une personnalité ou bien lui donner plusieurs phrases pour les réponses courantes, pour éviter le sentiment de parler à un robot.
Rendez vos applications plus humaines avec Cognitive Services – Jean-Sébastien Dupuy
L’objectif recherché dans ce talk est de nous familiariser avec les services d’IA de Microsoft, comme Cortana Intelligence, Cognitive Services, Bot Framework, Cortana Devices SDK, Cognitive Toolkit. Jean-Sébastien Dupuy nous fait la démo d’un bot utilisant ces services et nous fait remarquer deux en particulier : le QnA maker, pour faire des scénarios (pas de machine learning), et le text recognition par NLP. Les services se retrouvent ici.
Soyez Holographique ! – Michel Rousseau
Les technologies de virtualisation de la réalité se divisent en trois types, en fonction du niveau auquel s’applique la distinction entre réalité physique et réalité virtuelle : la réalité virtuelle, qui ferme l’utilisateur dans un calque du monde existant (comme le Oculus ou le Vive), la réalité augmentée, qui crée un calque de ce que voit la caméra avec une nouvelle couche d’information (type Pokemon Go), et la réalité mixte, qui utilise l’environnement existant pour y poser des éléments.
Michel Rousseau présente le HoloLens comme « le premier ordinateur holographique autonome », dont l’objectif est d’améliorer le réel. Les avantages de HoloLens sont l’autonomie (pas de câbles, pas besoin de connexion PC, ni de caméra externe), pas de sensation de vertige, des interactions naturelles, une stack complète et des services mis à disposition pour créer de nouveaux produits. Les utilisations actuelles ou envisagées sont : le showrooming, les visites virtuelles, l’architecture, faire des interventions techniques, assistance à distance, la formation. Son gros désavantage : le prix, autour de 3000 euros pour l’édition développeur et 5000 pour la version commerciale.
devoxx_6
Microsoft est en collaboration avec d’autres producteurs (HP, Lenovo, Dell, Asus, Acer) pour fournir ses technologies afin qu’ils puissent proposer d’autres casques de réalité mixte (avec des caractéristiques inférieures, mais à des prix plus bas).
Pour conclure, Michel Rousseau nous a fait un peu rêver en nous montrant les vidéos mettant en pratique la « holoportation » grâce à l’utilisation de HoloLens et des Kinect. En étant chacun dans une pièce remplie de Kinect, un père pouvait jouer aux Legos avec sa fille et ensemble ils pouvaient bouger les mêmes objets dans un espace virtualisé. Des conditions difficile à reproduire, mais cela invite à imaginer un futur pour le moins intéressant.
Machine learning et séries temporelles : Comment prédire les ventes de votre site ecommerce avec Spark – Quentin Ambard
La petite tranche est un site de vente en ligne de charcuterie dont les ventes varient en fonction des périodes annuelles et des événements marketing. Une série temporelle est une suite de valeurs représentant une quantité qui varie au fil du temps. Pour gérer les stocks de saucissons en fonction des ventes, Quentin Ambard a testé un algorithme de machine learning. Dans son talk, il montre les différentes étapes qu’il a parcouru, en commençant par des algorithmes classiques (random forest et régression linéaire), auxquels il ajoute des « features » pour les événements non-prédictibles (marketing). Néanmoins, il reste des variables difficilement modélisables. La stack utilisée est basée sur Apache Zeppelin et la plate-forme Datastax.
Démocratiser le machine learning avec TensorFlow – Loan Tricot
Je suis allée à cette conférence en pensant à une présentation de l’outil de Google, mais j’ai eu une belle surprise. Loan Tricot descend dans les entrailles de TensorFlow pour démontrer son mode de fonctionnement. Il prend le use case suivant : distinguer les chats des chiens dans les images, en utilisant deep neural network. Mathématiquement, cela se traduit par : pour un y = f(x), il faut trouver f. TensorFlow crée un graphe avec trois types d’objets pour former un arbre. Les objets manipulés sont les placeholders (les entrées), les variables (les paramètres) et les opérations (les nœuds). La difficulté est dans le choix des paramètres.
Le processus commence par la création de convolutions, leur réduction avec des pool (la profondeur est ignorée), les matrices sont écrasées dans des vecteurs, les matrices résultées sont multipliées et ensuite un simple for suffit pour trouver la descente du gradient. Trouver la taille des steps reste une questions d’essais successifs.
Une conférence qui mérite d’être vue pour comprendre cette dernière phrase.
Ethical AI – Francesca Rossi
Avec l’arrivée des flux d’actualité, des voitures autonomes, des robots compagnons, il faut s’intéresser aux questions d’éthique. Francesca Rossi nous parle des approches pour intégrer l’éthique dans les système d’IA et comment définir les principes et les intégrer. Ces règles ont besoin de vérification et de validation, et un système de mesure et d’alerte doit être mis en place.
Elle nous transmet un message qu’il fait bon retenir : la prise de décision humaine n’est pas parfaite, elle est toujours biaisée, et les machines peuvent l’améliorer. « Machines for better humans ».
Plusieurs initiatives existent déjà pour donner des principes dans la recherche et l’application de l’IA, tel l’Institut Future of Life, l’IEEE, Partnership on AI (GAFA et autres) et IBM de manière indépendante.
Quel droit pour les robots – Alain Bensoussan
A travers quelques exemples de use case, Alain Bensoussan nous parle de la responsabilité des codeurs dans un monde des robots. Est-ce que les « codeurs » ne sont pas responsables du résultat de leur travail car on leur a juste demandé de coder ? Il rappelle les cas emblématiques des réseaux de socialisation qui sont capables de manipuler les émotions des utilisateurs grâce à l’algorithme qui gère le flux des messages reçus, de la manipulation des informations concernant la pollution des moteurs diesel ou bien le cas de la poupée connectée qui parle avec les enfants et, pour ce faire, elle transmet des informations sur l’enfant.
Dans le cas d’un accident qui implique une voiture autonome qui doit choisir entre tuer une personne, quatre personnes ou le conducteur, qui est responsable ? La personne qui a envoyé la voiture, le propriétaire, le constructeur, le codeur ?
Un autre exemple donné est celui d’un patient atteint de cancer qui a le choix entre voir un médecin humain ou un robot. Le patient choisit l’humain, alors que le ratio d’erreur est de 1/10 pour le robot contre 1/2 pour l’humain. Le robot n’a pas droit à l’erreur.
Alain Bensoussan propose une charte universelle du code dont le principe est de refuser le code qui viole les droits de l’Homme.
Révolution cyberindustrielle en France – Laurent Bloch
L’histoire récente nous a fait part de trois révolutions industrielles : fin 18ème siècle, avec la sidérurgie, fin 19ème, avec l’électricité et la combustion interne, 20ème, avec le microprocesseur et internet. Les impacts d’une révolution industrielle sont d’ordre politique, juridique, économique, éducationnel. Au niveau de l’Union européenne et de la France, il y a une faible préoccupation pour le domaine informatique (parmi les seules initiatives, le rapport de la sénatrice Catherine Morin-Desailly pour adapter le système éducatif et le fonctionnement de l’économie et des institutions).
Laurent Bloch nous parle des cyber-puissances et des aspects économiques qu’il faut regarder. L’indépendance dans le cyber-espace passe par l’infrastructure, le réseau, la capacité de fabrication, une stratégie internationale, la sûreté des citoyens, les logiciels, la présence dans les organismes tels IETF ou ICANN et un effort au niveau de l’éducation et de la recherche. On ne peut pas être une cyber-puissance sans industrie informatique.
Si on regarde les branches qui apportent la plus importante valeur ajoutée (image ci-contre), comme la microélectronique et les systèmes d’exploitation, l’Europe n’est pas très bien située. Il n’y a que deux usines de microprocesseurs en Europe (dont une à côté de Grenoble).
devoxx_7
C’est aussi un domaine dans lequel la propriété intellectuelle a une très grande importance, il y a des entreprises qui ne produisent rien, mais qui vont très bien grâce aux brevets.
De nos jours, les cyber-puissances sont les États-Unis, la Chine (qui met 140 milliards dans la recherche), Corée du Sud, Taïwan, Singapour, Israël, Estonie (ces derniers n’ont pas de ressources naturelles, alors ils ont investi dans leur ressource humaine à travers l’éducation et la recherche). Les « déserteurs » sont l’Union européenne et le Japon. L’Inde est un « acteur sec » et le grand absent est la Russie.
Human / Machine Improvised Theatre – Piotr Mirowski
Le robot A.L.Ex (Artificial Language Experiment) est rejoint sur scène par Albert, son partenaire de théâtre, pour une scène d’improvisation. Piotr Mirowski est doctorant en deep learning et passionné de théâtre. A.L.Ex est la convergence des deux. A.L.Ex est un réseau de neurones récurrents qui a été entraîné pendant 1 mois sur des sous-titres de films, 880 millions de mots, plus un filtre ajouté pour éviter les questions politiques discutables. Il comprend des AI de reconnaissance de la parole, de synthèse vocale, une interface graphique et un contrôle à distance. La stack technique est basée sur Lua Torch, Python, C# et js.
Bluemix – Classification et ranking grace à Watson – Xavier Mary et Michel Caussanel
L’histoire de Watson est longue et son fonctionnement complexe. Il a été précédé par Deep Blue, dont l’objectif était de battre le champion d’échecs dans les années 90. Ensuite, il est devenu célèbre avec sa participation au jeu « Jeopardy ». Depuis 2011, le travail porte sur le langage humain et la contextualisation temporelle, géographique et par activité. Un grand défi c’est la précision, car si dans un jeu la prise de risque est acceptée, dans le domaine médical il faut pouvoir revenir aux sources et démontrer le raisonnement poursuivi.
L’image 1 ci-contre montre l’approche que Watson emploie pour donner une réponse.
devoxx_8
Dans l’image 2 sont présentées les différentes niveaux de raisonnement et techniques qui forment Watson. Sur l’ensemble, un talk intéressant si on a la patience de suivre.
devoxx_9
Probabilistic Programming : Tuer un piéton ou sacrifier les passagers ? – Didier Girard
En suivant le théorème de Bayes, nous partons de données pour construire un modèle et ensuite faire des prédictions. Dans la réalité, plusieurs modèles doivent être rassemblés pour avoir une prédiction. Pour démontrer le fonctionnement de la programmation probabiliste, Didier Girard prend l’exemple de la reconnaissance d’image : analyser une photo pour déterminer le sexe d’une personne se trouvant de dos et ayant les cheveux long (il est difficile à dire même pour un humain). Un premier algorithme identifie la personne comme étant une femme à 83 %. Le deuxième algorithme prend en compte le cadre : la personne se trouve dans une queue pour accéder aux toilettes des hommes. Alors il prédit que la personne est un homme à 99 %. Un troisième algorithme identifie une affiche sur laquelle il est indiqué que les toilettes des femmes sont fermés, alors il prédit que la personne est une femme à 80 %. Le travail des développeurs est de composer ces algorithmes de machine learning.
Un autre point que Didier Girard fait est que le deep learning fonctionne quand il y a beaucoup d’informations. Quand il y a un seul échantillon, il faut combiner la programmation probabiliste avec le machine learning. Il prend l’exemple de l’identification d’un symbole pour lequel on a un seul modèle. Didier Girard nous laisse avec un message pour le travail qui suit : il faut créer « des programmes fiables sur la base de données incertaines ».  
Devenir un expert en Data Extraction (webscraping) – Fabien Vauchelles
Pour entraîner les modèles de machine learning quand on n’a pas d’API à disposition, on peut être amené(e)s à faire appel au webscraping. Le but du webscraping est de transformer les données produites par les humains en données lisibles pour les machines.
Fabien Vauchelles nous fait part des six erreurs à éviter :

  1. Ignorer la loi : Attention à la traçabilité des données et aux termes d’utilisation des sites, qui peuvent avoir des clauses spéciales concernant le webscraping.
  2. Réinventer la roue : Éviter de faire un script propre et limiter les requêtes concurrentes et les DDoS. Penser à programmer la récupération des données.
  3. Utiliser la première source de données : Il faut éviter de se faire bloquer, alors il vaut mieux chercher un bouton exporter ou d’autres sources de données.
  4. Garder le user agent par défaut : Il faut s’identifier comme un navigateur.
  5. Utiliser son point DSL : Pour éviter de se faire blacklister, le premier pas doit être le démarrage des proxies. Avec scrapoxy, on peut lancer plusieurs proxies et les distribuer.

Les différentes techniques pour éviter le webscraping sur son site sont : renvoyer un 503 au lieu de 200, rediriger vers la page de login, CAPCHA, rallonger le temps de réponse avec chaque requête.

  1. Parsing simple : Utiliser des parseurs. L’extraction des données peut se faire par position ou par feature. Pour empêcher la récupération des données, les sites peuvent, par exemple, changer de balises tout le temps.

Le contenu de cet atelier se retrouve sur git.
Pourquoi j’ai essayé de faire une API de détection de trolls – Jonathan Michaux
Un troll est une personne qui vise à provoquer des polémiques et dont les actions mènent à des discussions non constructives. La loi de Godwin dit que plus une discussion en ligne dure longtemps, plus les chances d’arriver aux nazis approche le un.
devoxx_10
Le problème des sites en ligne est que la modération des commentaires ne scale pas, il n’y a pas assez de ressources. Alors Jonathan Michaux essaie d’utiliser l’informatique pour combattre les trolls. Il utilise le machine learning, en apprentissage supervisé. Le dataset a été pris des discussions sur Wikipédia, où il y a 100 000 de commentaires annotés troll ou pas par des humains. Les attributs (features) qu’il a identifié sont : le contenu du message, les modérations, la communauté (réaction des autres), l’activité (la fréquence des commentaires), le contexte – le sujet d’origine. Les étapes parcourues sont : le parsing (en utilisant la librairie scikit-learn, l’entraînement du modèle, la sauvegarde du modèle et le reload.
Pour tester l’application.
L’image ci-contre récapitule les technologies utilisées pour cette application.
devoxx_11
Les grandes limitations de ce programme sont la bêtise (la loi de Poe, simplifiée : « not sure if troll or just very stupid ») et le sarcasme. Pour avancer, l’application devra prendre en compte les features listées ci-dessus.
Google a aussi lancé une application similaire : Google perspective API.
De bronze à légendaire, comment réussir vos IA de bot – Grégory Ribéron
Coding Game est une plate-forme qui offre des défis aux développeurs sur différents sujets. Les participants sont ensuite classés en fonction de leurs résultats. Grégory Ribéron se classe régulièrement dans les 100 premiers aux défis d’IA et il parle des stratégies qu’il emploie dans son jeu.
Les règles sont : il y a 10 jours pour coder un défi, le code s’exécute contre ceux des autres, tout se trouve dans un seul fichier, il n’y a pas de librairie et il y a une condition de performance. En termes de progression attendue, il faut compter 10 minutes pour un premier essai, ensuite passer 10h pour passer niveau bronze et 20h pour un défi.
Pour réussir un défi d’IA, Grégory Ribéron conseille de bien gérer son temps, en concevant d’abord une stratégie de base, ensuite se mettre à coder, vers la fin regarder le jeu des bots entre eux (possibilité de récupérer des idées) et surtout ne pas tout changer pendant les dernières heures. Il faut bien choisir sa stratégie en fonction du gain versus le temps passé pour la développer.
devoxx_2017
Grégory Ribéron parle ensuite des différents types de jeu : arbre de décision, stratégie et simulation, et il détaille les algorithmes les plus adaptés d’après son expérience.
Dans les défis d’IA, le langage le plus utilisé est C++. Le profil des participants varie de l’ingénieur en IA au professeur de musique qui a décidé de changer de voie.

Voir plus d’informations sur git.
Zenika @Devoxx 2017
devoxx_17e
Cette année, Zenika a eu 10 speakers à Devoxx, sur des sujets allant du web, aux langages fonctionnels, du machine learning au cloud, des conférences aux labs. N’hésitez pas à les chercher sur la chaîne YouTube de Devoxx France :

GRAPHQL VS FALCOR
APRÈS ANGULAR ET REACT, VOICI … VUEJS
DÉVELOPPER UNE APPLICATION DE PARI EN LIGNE AVEC LA BLOCKCHAIN ETHEREUM
DÉVELOPPEZ DES APPLICATIONS WEB DESKTOP AVEC ELECTRON DE GITHUB
SCALA CLASS, BIEN DÉMARRER AVEC SCALA
ORGANISEZ LA LOGIQUE DE VOTRE APPLICATION WEB AVEC REDUX
A LA DÉCOUVERTE DES ALGORITHMES GÉNÉTIQUES
A LA DÉCOUVERTE DE RKT

Comme tous les ans, Devoxx prend autant d’énergie qu’on peut lui accorder, avec ses talks et ses ateliers, ses stands et ses démos, ses goodies et ses jeux, ses grandes entreprises et ses start-ups, ses sujets classiques et ses sujets à la mode.
Restés inspiré(e)s jusqu’à l’année prochaine !
Auteur de l’article :
Andreea Dumitrascu
@eigidi

 

Auteur/Autrice

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.