Les algorithmes du luxe

Charles Ollion, Chief Science Officer & Cofondateur d’Heuritech

B : Charles, comment es-tu arrivé à l’informatique ?
CO : quand j’étais ado, j’aimais programmer des jeux vidéo. J’ai fait Télécom Paris, puis une thèse en informatique sur l’apprentissage profond, à l’Institut des Systèmes Intelligents et de Robotique de l’Université Pierre et Marie Curie. Ensuite, j’ai cofondé Heuritech en 2013 avec Tony Pinville (le PDG actuel) et d’autres copains de thèse. Au début, nous faisions surtout du conseil en apprentissage automatique (machine learning) sur l’analyse du langage et de l’image. Cela nous a appris à connaître un peu le monde des entreprises.

Faster R-CNN – Ren 2015

B : comment en êtes-vous arrivés à la mode et au luxe ?
CO : nous cherchions un marché. Notre techno, c’était au départ surtout de l’analyse d’images, et dans la mode, les images sont justement essentielles. Et puis, la mode est un marché important en France. Enfin, aucun acteur spécialisé ne dominait le secteur. La demande des géants du secteur, et une pointe de hasard, ont fait le reste. Nous avons été invités à participer au jury d’un hackathon* organisé par Louis Vuitton. On a hésité à y aller, c’était un dimanche matin ! Finalement, un mois plus tard, Vuitton nous rappelait et nous gagnions notre premier gros client du secteur. Nous avions trouvé notre spécialité : le luxe et la mode.

B : vous analysez des images, pour quoi faire ?
CO : A partir d’images du web, de réseaux sociaux, en particulier d’Instagram, nous analysons les choix des consommateurs sur les produits qu’ils portent, qu’ils viennent de nos clients ou de leurs concurrents. Cela nous permet de mesurer les performances de ces produits, les évolutions selon les modèles, les couleurs, les pays… Nous cherchons à comprendre comment différents types de clients s’approprient ces produits, comment ils les portent, dans quel contexte… Si un produit est porté différemment que ce qui était prévu par les designers par exemple, cela intéresse nos clients. Enfin, nous détectons les nouvelles tendances.

Dernièrement, nous avons pu ainsi étudier un engouement pour les sacs en osier. Notre client avait déjà pu observer le phénomène. Ce que nous apportons, c’est quantifier ce qui est en train de se passer pour savoir si c’est significatif et probablement parti pour durer, ou juste une mode passagère.

Les résultats que nous obtenons sur les comportements de consommateurs, dans la mode et le luxe, sont utilisés par nos clients sur différents enjeux. Leurs équipes produit peuvent mieux adapter les collections, les équipes de logistique ajuster les prévisions, les équipes marketing mieux orienter les campagnes de pub.

B : qui sont vos concurrents ?
CO : Il y a quelques startups similaires à nous en IA pour la mode. Mais on entend surtout parler de grands de l’IA comme Google qui proposent des solutions généralistes, pour analyser tout type d’images. Nos algorithmes sont toutefois plus spécialisés et obtiennent donc des résultats plus précis. Pour apporter de la valeur, il ne suffit pas d’avoir de super techniciens d’apprentissage automatique, il faut aussi des experts du domaine, la mode dans notre cas.

B : vous apprenez à des logiciels à analyser les tendances de la mode. Tu peux nous raconter un peu comment fonctionne votre chaine d’apprentissage ?
CO : nous partons d’un principe bien connu en Deep Learning : un entraînement à partir d’une base d’images annotées à la main, par exemple des photos de mode et les différents types d’habits présents sur ces photos. L’algorithme apprend sur cette base d’images, et si celle-ci est assez large et diversifiée, il est capable de généraliser et prédire les annotations sur de nouvelles images. Nous utilisons également d’autres techniques plus avancées développées en interne qui nous permettent de réduire le nombre d’exemples annotés à la main.

Nous faisons passer dans ce réseau de neurones un volume énorme de photos. C’est ce qui nous fournit les analyses du marché, les tendances dont nos clients ont besoin. Pour le travail qu’il fait, le réseau n’a pas besoin d’avoir une précision parfaite, pas besoin de procurer la même qualité qu’un expert. Parce que pour repérer des tendances, donc faire des analyses à un niveau très agrégé, avoir raison dans 90 à 95% des cas suffit. Par contre, il serait impensable de faire traiter de tels volumes de données par des humains. Nous récupérons environ 10 millions d’images par jour, en crawlant le web. Nous avons besoin de logiciels, et même de logiciels très performants.

Pour développer nos algorithmes, nous nous basons sur des modèles libres de réseaux convolutifs, et des frameworks comme TensorFlow et Keras.

Localisation d’un objet dans une image, le chien
Segmentation d’un objet dans une image, le chien

B : continuez-vous à améliorer vos algorithmes ?
CO : bien sûr. Par exemple, nous utilisons des techniques récentes pour faire de la « segmentation ». Prenez un sac à main dans une image. Nous commençons par le localiser avec un premier réseau relativement classique de neurones qui produit des coordonnées pour délimiter un rectangle autour du sac. Puis, nous utilisons un autre réseau, profond celui-là, pour trouver son contour exact à l’intérieur de ce rectangle. C’est à dire que nous l’extrayons du reste de l’image. C’est une tâche que le cerveau d’un humain réalise simplement, mais qui est compliquée pour un ordinateur. Cette approche nous procure de bien meilleurs modèles de sac, ce qui fera que nous aurons besoin de beaucoup moins d’images à l’avenir pour entrainer notre modèle à reconnaître ces sacs. Pour cela, nous utilisons des résultats de recherche très récents.

B : au sein d’Heuritech, combien êtes-vous aujourd’hui dans la technique, et combien d’experts en mode ?
CO : nous avons une quinzaine d’informaticiens, pour moitié avec des doctorats, et une dizaine de personnes pour la gestion de projet, au contact des clients. Il y a des croisements entre les compétences des uns et des autres : d’un côté nos informaticiens se familiarisent avec la mode, de l’autre nous formons les gestionnaires de projet aux bases de l’apprentissage automatique. Ce n’est pas simple de trouver des spécialistes en IA sur le marché, mais nous y arrivons parce qu’ils trouvent chez nous des défis techniques, une vraie R&D.

B : quels sont vos prochains chantiers ?
CO : nous voulons industrialiser les processus d’apprentissage. Pour satisfaire de nouveaux clients sans que cela ne devienne trop coûteux, il faut que nous automatisions encore plus l’introduction de nouvelles classes de produits, de nouvelles images d’entrainement. C’est indispensable aussi pour pouvoir nous installer sur de nouveaux marchés comme le mobilier ou le vin. Et puis nous allons devoir nous améliorer sur d’autres techniques, en particulier sur l’analyse de texte. L’apprentissage automatique fonctionne assez bien sur certaines tâches de traitement de texte comme la traduction, mais moins bien pour d’autres comme comprendre une phrase dans un contexte particulier. Il faut que nous puissions extraire des connaissances des textes pour encore mieux comprendre le contenu des images qu’ils accompagnent.

Serge Abiteboul, Inria et ENS Paris, Tom Morisse, Fabernovel

(*) Un hackathon est une réunion de développeurs pour collaborer à un logiciel, le plus souvent pendant plusieurs jours.

Voir aussi les diapos du cours « Deep Learning », Master Data science, Université Paris Saclay, par Olivier Grisel, Inria, et Charles Ollion, Heuritech

Darwin, bit à bit …

La biologie évolutive vise à comprendre les scénarios et les mécanismes de l’évolution des espèces. En étudiant l’évolution des systèmes biologiques, on peut remonter le temps, essayer de comprendre les biologies du passé (voir l’article avec Allessandra Carbone). La simulation numérique joue un rôle essentiel dans ce domaine.  Quand les impacts sur notre planète de la vie humaine (l’ère de l’anthropocène) sont considérables, catastrophiques, voire suicidaires, il devient essentiel de savoir prédire les évolutions de systèmes biologiques. La biologie évolutive nous aide à imaginer les futurs possibles.  Guillaume Beslon et Dominique Schneider traitent de ce sujet vital. Serge Abiteboul et Thierry Viéville.

La biologie évolutive prend ses racines dans le passé, soit pour disposer de données lui permettant d’identifier les mécanismes de l’évolution soit pour retrouver, à partir d’espèces contemporaines, les événements évolutifs ayant conduit à leur apparition. Pourtant l’évolution est bien une science du présent … et du futur. En effet, nombre de phénomènes contemporains et de menaces futures pour la planète et les organismes vivants – ce qui inclus évidemment l’homme – sont directement liés à l’évolution. À l’ère de l’anthropocène, il devient donc vital pour l’écologie, l’agriculture, la médecine, l’économie, … d’être capable de prédire l’évolution pour être capable d’avoir au moins « un coup d’avance » sur elle : en effet, nous avons besoin d’anticiper l’évolution afin de mieux gérer la biodiversité, l’innovation technologique et biotechnologique, les traitements antibactériens ou anticancéreux, ou la politique agricole.

Pour ce qui est de la santé humaine, évoquons la résistance aux antibactériens qui, en quelques décennies d’usage des antibiotiques (le « présent » à l’échelle de la planète), a conduit à l’émergence de souches bactériennes multi-résistantes1 ou les tumeurs cancéreuses qui, au cours de leur prolifération, s’adaptent à leurs conditions environnementales et « apprennent » ainsi à résister aux traitements anticancéreux. À une échelle plus globale, de nombreuses espèces (plantes, animaux, virus) sont confrontées à des variations rapides de leur environnement et s’adaptent – ou pas – ce qui entraine des bouleversement majeurs des écosystèmes2.

Pour permettre de prévoir le futur des espèces, la biologie évolutive doit se doter d’outils théoriques lui permettant de se tourner vers le futur, exactement comme la météorologie s’est dotée, au fil des décennies, de puissants simulateurs lui permettant de prévoir, certes avec une marge d’erreur et un horizon temporel limité, l’évolution des masses d’air. Or, qui dit prédiction dit généralement simulation numérique … La biologie évolutive, qui utilise depuis près de cinquante ans les sciences du numérique pour inférer le passé des espèces (via la « bioinformatique »), doit donc ouvrir un nouveau front de collaboration avec les sciences du numérique pour développer des simulateurs capables de prédire le futur des espèces et des écosystèmes.

C’est le développement de tels simulateurs, ainsi que leur validation, qui occupe l’équipe Beagle3(Inria/INSA-Lyon) depuis plus de 10 ans et qui fait l’objet d’une collaboration soutenue avec l’équipe GEM4 (CNRS/Université Grenoble-Alpes). C’est cette combinaison d’outils théoriques et expérimentaux pour appréhender l’évolution qui permet de développer des modèles prédictifs de plus en plus précis et fiables. Avant d’entrer plus avant dans le détail de ces travaux, revenons rapidement sur les deux concepts centraux que sont, d’une part, l’évolution, et d’autre part, la prédiction.

Qu’est-ce que l’évolution ?

Si le principe de l’évolution des espèces s’est progressivement imposé dans les sciences du vivant au cours des 17ème et 18ème siècles, c’est Charles Darwin qui, en 1859, en a énoncé les mécanismes fondamentaux, la « descendance avec variation » et la « sélection naturelle », dans son livre « l’Origine des Espèces ». Ensuite, au cours des 20ème et 21ème siècles, ces mécanismes fondamentaux ont été associés à des mécanismes moléculaires et génomiques pour aboutir à la « synthèse néo-darwinienne » ou « théorie synthétique de l’évolution ». En quelques mots, et pour simplifier la rigueur d’une définition scientifique, l’évolution peut être assimilée à un phénomène qui, au sein d’une population d’individus, conjugue des variations aléatoires du génome (les « mutations ») et une sélection des individus les plus à même de produire une descendance et donc de transmettre leur patrimoine génétique (les plus « adaptés »). Les variations individuelles, initialement aléatoires (bien que dépendantes des conditions de l’environnement), sont filtrées à l’échelle de la population. Les individus porteurs de variations très négatives (« délétères ») ont une forte probabilité d’être éliminés par la sélection tandis que les individus porteurs de variations favorables peuvent se multiplier en fonction de l’avantage conféré par ces variations, de la taille de la population ou d’interactions avec d’autres variations favorables ou défavorables. Les variations neutres ou quasi-neutres, quant à elles, se répandent aléatoirement, c’est le phénomène de dérive génétique. In fine, c’est la combinaison de ces mécanismes qui permet l’évolution et l’adaptation des individus et espèces à leur environnement.

Qu’est-ce que la prédiction ?

Issu du latin praedicere, prédire signifie « annoncer à l’avance ». Mais annoncer quoi ? Il y a en fait plusieurs formes de prédiction, quantitatives ou qualitatives, plus ou moins certaines, plus ou moins précises. Là encore, sans entrer dans des détails mathématiques, nous considèrerons ici que prédire c’est disposer aujourd’hui d’une information utile pour prendre une décision opérationnelle en tenant compte des conséquences futures probables de cette décision. Pour prendre un exemple relevant du sens commun, sommes-nous capables de prédire ce qui va se passer si une voiture entre dans un virage en épingle à 150 km/h ? Dans les détails (quelle va être la trajectoire exacte de la voiture ?), la réponse est clairement non. Mais nous pouvons tout de même prédire une sortie de route et cette prédiction est suffisante pour décider d’une limitation de vitesse sur cette portion de route. Cette prédiction peut également être validée par des simulations expérimentales réalisées au laboratoire. Elle sera d’autant plus fiable qu’elle pourra être testée par une combinaison d’approches théoriques et expérimentales. La politique actuelle face aux bactéries résistantes aux antibiotiques n’est pas différente : nous ne savons ni où, ni quand, ni comment les bactéries vont acquérir une résistance. Mais nous savons qu’elles vont y parvenir et cela nous suffit pour énoncer des règles d’usage limitant le risque de « sortie de route ».

Si ces deux définitions sont prises conjointement, elles peuvent nous faire douter que l’évolution soit prédictible puisqu’elle repose sur une série d’événements aléatoires, les mutations. De fait, mis à part les prédictions très macroscopiques (du type « entre deux individus, celui ayant le plus grand succès reproducteur va à terme coloniser l’ensemble de la population5 »), nous ne sommes pas capables de prédire grand chose, au grand dam des biologistes eux-mêmes ! Ainsi, même des expériences d’évolution expérimentale – au cours desquelles des micro-organismes sont cultivés dans des milieux simples et constants pendant quelques jours ou quelques semaines – sont capables de nous surprendre. C’est là que la vision numérique est susceptible d’apporter un éclairage nouveau sur le phénomène évolutif en changeant notre angle de vue. En effet …

L’évolution est un algorithme !

Qu’est-ce qu’un algorithme ? C’est une suite d’opérations permettant de résoudre un problème. Et justement qu’est-ce que l’évolution si ce n’est une suite d’opérations (variations individuelles, sélection) répétées indéfiniment au fil des générations ? Nous pouvons donc considérer l’évolution d’un point de vue algorithmique pour répondre à des questions comme : « Est-ce que cet algorithme converge ? En combien de temps ? Quel est l’avantage conféré par tel ou tel type de variation ? … ». Plusieurs chercheurs en informatique tels que Leslie Valiant à Harvard ou Christos Papadimitriou à Berkeley ont ainsi abordé l’évolution d’un point de vue algorithmique, ce qui leur a permis de travailler par exemple sur les limites de l’évolution ou l’avantage de la reproduction sexuée : du point de vue algorithmique, la reproduction sexuée est une variante de l’algorithme évolutif « simple ». Nous pouvons donc raisonner théoriquement sur cette variante pour identifier les conditions sous lesquelles elle est avantageuse. Pourtant ces travaux ne sont pas d’une grande utilité lorsqu’il s’agit de prédire l’évolution. En effet, pour pouvoir raisonner théoriquement sur un algorithme, il faut qu’il reste relativement simple, ce qui est le cas de la théorie Darwinienne mais pas de la synthèse néo-Darwinienne telle que nous l’avons rapidement décrite ci-dessus. Vue algorithmiquement, la synthèse néo-Darwinienne reprend les grandes structures de l’algorithme « évolution », mais les processus de variation et de sélection sont éminemment plus complexes puisqu’il faut désormais tenir compte de notions telles que les « gènes », « les réarrangements chromosomiques », le « développement de l’organisme », etc. Il en résulte une forme algorithmique inaccessible à l’analyse théorique mais qui, malgré tout, peut être étudiée au moyen d’une approche alternative : l’algorithmique expérimentale. Dans cette approche, l’algorithme est implémenté sous la forme d’un programme et c’est l’étude de nombreuses exécutions du programme qui permet de déduire les caractéristiques de l’algorithme. En d’autres termes, nous allons programmer et exécuter l’algorithme de l’évolution sur un ordinateur et, ainsi, en étudier les propriétés.


A gauche, l’algorithme de l’évolution tel qu’il est classiquement implémenté (une population d’individus évolue par mutation et sélection. Comme les mutations se produisent sur le génome alors que la sélection a lieu sur les individus ces deux étapes sont séparées par une étape relativement simple de décodage des génomes). A droite, la structure de l’algorithme est similaire mais trois processus supplémentaires ont été ajoutés pour tenir compte (a) de la complexité des génomes réels et des mutations, (b) de la complexité du décodage du genome qui passe par de nombreuses étapes (ADN, ARN, gènes, protéines, …) et (c) de la complexité des conditions environnementales et de leur influence sur la sélection. Lors d’une évolution expérimentale in silico, tout ou partie de ces trois processus est intégré à la simulation de façon à étudier leurs effets sur le processus évolutif.

 

L’évolution expérimentale in silico

Appliquée à la synthèse néo-Darwinienne, l’algorithmique expérimentale ressemble d’assez près à ce que les biologistes appellent « l’évolution expérimentale in vivo » : des organismes sont propagés et évoluent dans un milieu contrôlé pendant plusieurs centaines, milliers, voire dizaines de milliers de générations (pour la plus longue en cours), et les trajectoires suivies sont analysées à l’échelle des génomes, des individus ou des populations. La différence est cependant de taille : lors d’une évolution expérimentale in silico, ce ne sont pas des organismes vivants qui évoluent mais des structures de données définies pour avoir des propriétés similaires aux organismes réels sur le plan de l’organisation de l’information génétique, de son décodage ou des différents types de variation qui peuvent altérer cette information. Autre différence, les ordres de grandeurs accessibles en termes de durée ou de répétition des expériences. Ainsi, quand les organismes naturels les plus rapides (bactéries et virus) se reproduisent à raison d’une génération toutes les vingt à soixante minutes environ, l’évolution expérimentale in silico parvient à simuler plusieurs générations par seconde et quand il est difficile in vivo de maintenir un grand nombre de cultures en parallèle pendant de longues périodes, il n’y a pratiquement pas de limite au nombre de répétitions pour les expériences in silico. Ainsi, à titre de comparaison, l’expérience d’évolution expérimentale la plus longue à ce jour, la LTEE (Long-Term Evolution Experiment), a été initiée par Richard Lenski en 1988 à Michigan State University et n’a jamais été interrompue depuis, ce qui fait qu’elle atteint aujourd’hui plus de 65 000 générations pour 12 populations indépendantes de bactéries issues du même « ancêtre » en 1988. Simuler 12 populations sur 65 000 générations grâce à l’évolution expérimentale in silico ne prendrait aujourd’hui que quelques jours (au lieu de 30 ans pour la Biologie), certes avec des structures de données bien plus simples que les bactéries Escherichia coli cultivées au cours de la LTEE !


L’évolution expérimentale in vivo consiste à cultiver des organismes (généralement des micro-organismes en raison de leur rapidité de division) dans un milieu contrôlé pendant un temps suffisant pour pouvoir observer leur évolution. Des organismes sont régulièrement prélevés dans la population et congelés pour reconstruire a postériori l’histoire évolutive. L’évolution expérimentale in silico procède exactement de la même manière mais les organismes étudiés sont des structures de données qui sont soumises, dans l’ordinateur, à « l’algorithme de l’évolution » (variation-sélection, voir la première figure). En conséquence, ces structures de données évoluent et l’influence de différents paramètres sur leur histoire évolutive peut être étudiée. Pour cela, tous les événements qui se sont produits au cours de la simulation sont stockés dans des fichiers de façon à disposer de « fossiles numériques » parfaits.

Revenons, à la prédiction de l’évolution : en quoi l’évolution expérimentale in silico permet-elle de prédire quoi que ce soit puisqu’on y fait évoluer des structures de données qui n’ont donc qu’un lointain rapport avec les organismes vivants ? Pour le comprendre, il faut revenir à l’exemple de l’automobile lancée à 150 km/h dans une épingle. Finalement, peu importe qu’il s’agisse d’une automobile : il nous suffit de savoir qu’il s’agit d’un « mobile » et de connaître les forces en jeu pour prédire le risque de sortie de route ! Or, les forces en jeu dépendent de certaines caractéristiques du mobile mais pas de tous ses détails ! L’évolution expérimentale in silico, en raisonnant sur l’algorithme néo-Darwinien procède exactement de la même manière : l’organisme est certes simplifié mais en veillant à conserver les caractéristiques clés qui influencent son évolution. Des expériences virtuelles peuvent alors être réalisées en simulation, et peuvent être répétées autant que nécessaire, les conditions peuvent changer à volonté et même des expériences impossibles en pratique (pour des raisons techniques ou éthiques) sont réalisables ! Il est alors possible d’identifier et de distinguer ce qui va se répéter à l’identique de ce qui va différer (si je teste dix voitures, est-ce qu’elles sortent toutes de la route ?), ce qui dépend des conditions environnementales de ce qui n’en dépend pas (si le virage est moins serré, combien de voitures feront une sortie de route ?), ou ce qui dépend de caractéristiques propres aux organismes eux-mêmes (que ce passera-t-il si mes voitures ont de meilleurs freins ?) … Autant d’expériences susceptibles de nous renseigner sur la prédictibilité de l’évolution, même si elles ne nous permettent pas – pas encore ? – de prédire l’évolution d’organismes particuliers puisque nous ne sommes pas – pas encore ? – capables de simuler des organismes réels. Mais disposer d’informations sur la prédictibilité, c’est tout de même devenir capable de prédire puisque les forces identifiées in silico s’appliquent à tout organisme soumis aux mêmes contraintes, de même que les forces centrifuges s’appliquent à tout.e (auto)mobile soumis.e à un mouvement de rotation !

Un exemple : prédire l’évolution des virus

Pour illustrer cet aspect, prenons l’exemple d’une expérience en cours sur l’évolution des virus (expérience réalisée en collaboration avec Santiago Elena de l’Université de Valence en Espagne). Nous avons simulé l’évolution de 30 génomes viraux à l’aide du logiciel d’évolution expérimentale in silico « aevol », développé par l’équipe Beagle. Ces virus virtuels ont évolué in silico pendant 200 000 générations à la suite desquelles nous les avons clonés 30 fois chacun et nous avons laissé évoluer les 900 simulations ainsi générées pendant 25 000 générations supplémentaires. A la suite de ces simulations – qui n’ont demandé que quelques semaines de calcul sur un ordinateur de bureau – nous avons pu observer que, si la grande majorité des virus n’avaient pas subi de changements majeurs au cours de ces 25 000 générations, environ un quart d’entre eux étaient passés par une courte période au cours de laquelle ils avaient subi une succession de mutations favorables, entrainant une nette amélioration de leur succès reproductif. En d’autres termes, un quart de nos virus virtuels avaient innové ! Or, l’avantage de la simulation est que l’on connaît parfaitement les conditions. Ici, nous savons que ces virus « innovants » ne sont pas différents des non-innovants, du moins au départ et que les mutations se produisent a priori de façon totalement aléatoire ! Comment donc se fait-il que, chez certains virus, les « innovants », les mutations observées a posteriori ne soient, elles, pas du tout aléatoires ? En observant plus précisément les épisodes d’innovation, nous nous sommes rendus compte que ces épisodes ne débutaient pas par n’importe quel événement mutationnel mais par certains événements précis, souvent des duplications de petits segments du génome viral ou des ajouts de petites séquences aléatoires. Les mutations « classiques », les substitutions (remplaçant une « lettre » de l’ADN par une autre), apparaissaient, elles, fréquemment au cours de l’épisode d’innovation mais seulement après ces événements initiateurs. De plus, les événements initiateurs n’étaient pas toujours très favorables alors que les mutations suivantes, elles, l’étaient ! Ces observations nous ont permis de comprendre la dynamique à l’œuvre dans nos simulations et, qui plus est, c’est la notion d’information qui permet de comprendre le mécanisme sous-jacent (mais cette fois via la combinatoire, la science du dénombrement) : les virus ayant des génomes très courts et des populations très grandes, il ne faut pas beaucoup de générations pour qu’une population virale explore aléatoirement toutes les substitutions possibles puisque le nombre de combinaisons est proportionnel à la taille du génome. En revanche, le nombre de duplications, lui, augmente comme la taille du génome au cube ! Autrement dit, quand un virus de 10 000 paires de bases (grossièrement le virus de la grippe) peut explorer un espace d’environ 30 000 génomes différents lorsqu’il subit une substitution, l’espace accessible via une unique duplication est de l’ordre de mille milliards (1012) génomes différents. Nous obtenons alors une vision très différente de l’évolution où la dynamique des virus est gouvernée par la combinatoire : en quelques milliers de générations, un virus s’adapte à son environnement grâce aux événements à combinatoire « faible » : les substitutions. Mais une fois cette période d’évolution « faste » épuisée, il lui faut attendre, parfois très longtemps, qu’un événement à combinatoire « forte » (duplication, insertion aléatoire, transfert, …) favorable se produise (notons que ces événements ne sont pas « rares » : dans nos simulations ils sont aussi fréquents que les substitutions. Simplement, leurs effets et leur combinatoire sont telles qu’il est nécessaire d’en tester beaucoup pour en trouver un qui soit favorable. Cet événement ouvre alors un chemin évolutif au cours duquel de nouvelles substitutions vont pouvoir avoir lieu (nouvelle période « faste »), mais celles-ci vont rapidement épuiser leur potentiel et il faudra attendre à nouveau qu’un événement vienne relancer la flamme évolutive … Ceci explique pourquoi les mutations ne sont pas aléatoires chez les virus innovants, mais aussi pourquoi la majorité des virus n’ont pas innové : ceux-là n’ont tout simplement pas eu la chance de subir une mutation « à forte combinatoire » favorable au cours des 25 000 générations de l’expérience …

Conclusion

Que peut-on en conclure ? Avons-nous, au moyen de cette expérience, augmenté la prédictibilité de l’évolution des virus ? Oui, à condition de garder à l’esprit que nous ne parlons « que » d’une simulation : nous pouvons proposer l’hypothèse selon laquelle certains types de mutations (celles à combinatoire « forte ») augmentent le potentiel évolutif des virus mais il reste aux virologues de confronter cette hypothèse à leur corpus ou à l’expérience. Nous pourrons alors suggérer de surveiller tout particulièrement les virus ayant récemment subi une telle mutation puisqu’ils sont susceptibles de rapidement s’adapter au cours des générations suivantes. Nous pouvons aussi étendre cette approche à d’autres organismes ou à d’autres questions telles que la résistance aux antibiotiques ou aux traitements anticancéreux. Est-il possible de prédire les conditions d’émergence de résistances ? Et, si oui, est-il possible de proposer des stratégies de traitement qui minimisent les risques d’émergence de résistances (des traitements dits « évolutivement-sûrs ») ? Il faudra peut-être passer par plusieurs étapes d’amélioration des modèles pour en arriver là, mais nous sommes convaincus que l’évolution expérimentale in silico ouvre un nouveau champ de collaboration entre les sciences du vivant et les sciences du numérique. L’évolution expérimentale in silico apporte des outils nouveaux pour l’étude de l’évolution mais, comme dans toute collaboration interdisciplinaire, elle permet surtout de confronter plusieurs regards, formés à différentes disciplines scientifiques, sur un même objet d’étude. Ainsi, dans le cas de nos virus virtuels, c’est la juxtaposition d’une vision moléculaire et d’une vision combinatoire qui a permis de comprendre la dynamique à l’œuvre. Et s’il nous est permis de terminer cet article par une doléance, nous avons tous deux la chance de travailler dans des contextes interdisciplinaires, mais nous ne pouvons que constater la difficulté qu’il y a à conduire ce type de recherches dans un contexte universitaire fortement structuré par les disciplines « historiques ». Il devient urgent que la France se dote d’outils structurels et de financements dédiés afin de faciliter les échanges interdisciplinaires.

Guillaume Beslon, Professeur au Département Informatique de l’Institut National des Sciences Appliquées de Lyon au sein de l’Université de Lyon et  Dominique Schneider, Professeur en biologie (biodiversité, écologie, évolution) de l’Université Grenoble – Alpes.

1 Lecteur, songe que depuis ta naissance, ce sont plusieurs dizaines de milliers de générations de bactéries qui se sont reproduites dans ton estomac : tu es un écosystème en évolution et ton mode de vie, tes habitudes alimentaires, ton usage plus ou moins fréquent et plus ou moins rationnel des antibiotiques, ont laissé des traces quasi-indélébiles dans l’ADN de ces bactéries.

2 Jusqu’à une période récente, l’évolution était à la fois cause et effet de la plupart des changements globaux. La période contemporaine a ceci de particulier que l’homme provoque des changements beaucoup plus rapides que l’évolution, ce qui entraine des bouleversements écologiques auxquels les espèces peuvent difficilement s’adapter. On parle par exemple de « piège évolutif » lorsqu’un comportement, acquis au cours de millénaires d’évolution et alors favorable à l’espèce, devient subitement négatif du fait d’une modification de l’environnement. Le caractère très rapide de cette modification, par exemple la dispersion de particules de plastique dans l’océan, ne permet pas à aux espèces, ici les poissons qui confondent ces particules de plastique avec de la nourriture, d’évoluer pour s’adapter suffisamment rapidement aux nouvelles conditions.

3 L’équipe Beagle est une équipe-projet Inria/INSA-Lyon. Elle regroupe des chercheurs et enseignants-chercheurs de l’INRIA et de l’INSA-Lyon issus de trois laboratoires : le Laboratoire d’Informatique en Image et Systèmes d’Information (LIRIS, UMR CNRS 5205), le Laboratoire de Biométrie et Biologie Evolutive (LBBE, UMR CNRS 5558) et le laboratoire cardiovasculaire, métabolisme, diabétologie et Nutrition (CarMeN, UMR INSERM U1060). L’équipe conduit des recherches en biologie computationnelle et en évolution artificielle.

4 L’équipe GEM est une équipe CNRS/Université Grenoble Alpes (UGA). Elle regroupe des chercheurs et enseignants-chercheurs du CNRS et de l’UGA. Elle a créé un laboratoire international avec l’équipe Beagle et l’équipe du Professeur Richard Lenski (Michigan State University, USA) pour étudier l’évolution avec des organismes bactériens et numériques. L’équipe conduit des recherches visant à comprendre les mécanismes moléculaires, génomiques et écologiques de l’évolution.

5 Notons qu’une telle prédiction est déjà très utile, par exemple pour choisir les souches les plus susceptibles de déclencher la prochaine épidémie de grippe et donc produire en avance un vaccin ayant le plus de chance d’être efficace.

Assister à la naissance du Web

L’histoire de Tim Berners-Lee ou presque… Par isabelle Christment 6’24

Mais qui a inventé le Web ? C’est une belle histoire, quand on sait que Tim Berners-Lee a inventé le Web pour partager des documents au sein d’une structure très fermée – le CERN – avec ses collègues qui provenaient du monde entier. Son invention a permis à l’humanité de faire de la connaissance un bien commun et de la liberté d’expression et d’information un enjeu planétaire…

En savoir plus :

Class´Code est une formation complète pour initier les jeunes à la pensée informatique.  Mais, vous voulez peut-être juste avoir un aperçu de cette formation ? Simplement  connaître l’histoire de cette histoire ? Installer vous confortablement. En quelques minutes, ces vidéos vont vous donner quelques grains de culture scientifique et technique sur ces sujets.

Note: les vidéos des cours d’OpenClassrooms comme toutes les ressources de Class´Code sont librement accessibles, sous licence Creative-Commons, comme on le voit ici.

Algorithmes

Claire Mathieu est Directrice de Recherche au Centre National de la Recherche Scientifique. Elle travaille au Département d’Informatique de L’École Normale Supérieure et à l’Irif, Université Paris-Diderot. Elle est la toute nouvelle titulaire de la Chaire « Informatique et sciences numériques » du Collège de France où elle présente un cours intitulé « Algorithmes » (leçon inaugurale le 16 novembre 2017). Les algorithmes fascinent, peuvent inquiéter, prennent une place considérable dans nos vies. Il nous faut mieux les comprendre pour qu’ils fassent ce que nous voulons. Entrons avec Claire Mathieu, parmi les meilleurs spécialistes mondiaux du domaine, dans leur monde merveilleux .  Serge Abiteboul. Cet article est publié en collaboration avec The Conversation.

Claire est également une éditrice invitée fidèle de Binaire.

Claire Mathieu

Les algorithmes, quand ils sont bien conçus car bien compris, contribuent au bien social et sont un outil de transformation de la société. Ils y prennent une place grandissante, que ce soit pour des applications informatiques telles que gérer efficacement des données, pour les transmettre rapidement et de façon fiable, pour faire des calculs, pour optimiser l’allocation de tâches, ou de plus en plus pour des usages en société comme le calcul d’itinéraire, les recommandations de lectures ou de films, l’affectation des étudiants avec APB, etc.

Très souvent, ces algorithmes sont opaques, mystérieux, voire effrayants. Comment marchent-ils ? Quelles sont les étapes du calcul ou de la prise de décision ? Pourquoi marchent-ils ? Quelles sont les propriétés mathématiques qui expliquent leurs performances ? Le “comment” et le “pourquoi” sont les deux facettes de l’étude des algorithmes : la conception (comment ça marche) et l’analyse (pourquoi ça marche).

En général, l’analyse d’algorithmes sert d’abord à montrer qu’un algorithme résout correctement un problème, puis qu’il le fait en un temps raisonnable, de façon fiable et en restant économe en ressources.

Un sous-domaine fondamental largement développé depuis une vingtaine d’années concerne les algorithmes d’approximation. Un tel algorithme, plutôt que de rechercher une solution exacte et précise, se contente d’une solution approchée. On les utilise pour résoudre les problèmes trop difficiles pour être résolus complètement en un temps raisonnable. On s’autorise alors à accepter des solutions dont la valeur serait, disons, à 5% de la valeur optimale. Par exemple, prenons le problème de la livraison de marchandises. Comment optimiser les trajets d’un camion qui doit livrer des marchandises, connaissant le lieu de l’entrepôt, les lieux et volumes des commandes des clients, ainsi que la capacité du camion ? C’est un problème difficile lorsque le nombre de clients est élevé et on ne sait le résoudre que dans des cas particuliers qui ne correspondent pas toujours aux applications réelles rencontrées : aujourd’hui, même dans les cas les plus simples, calculer une solution approchée à 1% prend un temps déraisonnable. L’un de nos axes de recherche est donc de continuer à développer et d’améliorer ces algorithmes d’approximation.

Claire et Le point de vue algorithmique, #tembelone

Modélisation mathématique et évolutions technologiques

Pour les chercheurs qui comme moi travaillent en informatique théorique, l’élément non-négociable est la recherche du théorème. Les problèmes sont variés, les méthodes de résolution aussi, mais à la fin, ce qui est produit, ce qui apparaît dans le paragraphe intitulé “nos résultats” dans nos introductions, est toujours un théorème. La rigueur mathématique prime. C’est un principe de base.

Cependant, avec les évolutions technologiques, de nouvelles problématiques surgissent et se traduisent de façon naturelle par des évolutions des questions mathématiques étudiées. Ainsi, les modèles de calcul évoluent, avec par exemple de plus en plus de modèles de calcul ou de communication qui limitent l’accès aux données (par exemple, dans le modèle du flux de données, l’utilisateur voit toute une suite d’informations défiler devant lui, par exemple des paquets transitant sur un réseau. Bien qu’il n’ait pas suffisamment de place en mémoire pour garder toutes les informations vues, il souhaite cependant calculer des informations statistiques sur ce flux), ou dont les données évoluent de façon dynamique, ou encore avec une incertitude sur les données (par exemple, les avis lus sur internet sur la qualité d’un restaurant, d’un hôtel ou d’un médecin sont notoirement peu fiables, et contiennent pourtant des informations précieuses.)

Il nous faut donc non seulement travailler sur des problèmes reconnus du domaine, mais également proposer des problèmes algorithmiques nouveaux. Il s’agit de définir une question algorithmique de façon formelle, qui soit suffisamment simple dans sa structure pour que l’on puisse l’étudier avec un espoir de démontrer des résultats rigoureux. C’est ainsi qu’on peut rigoureusement démontrer l’effet de « petit monde » dans les réseaux sociaux (soit le nombre limité de degrés de séparation entre tous ses membres) : bien que leur taille aille grandissant, il demeure toujours possible à un membre du réseau social de prendre contact avec presque n’importe quel autre membre grâce à une courte chaîne de connaissances. Ici, la démonstration mathématique se fait sur un modèle simplifié, inspiré du modèle dit “de feu de forêt”. C’est en passant par ce type de modèles simplifiés que l’on peut espérer arriver à des intuitions pour une meilleure compréhension du monde.

Claire jongle avec problèmes algorithmiques et techniques mathématiques, #tembelone

“Pourquoi” et “Dans quel but” : des questions d’éthique

Par ailleurs, comme les algorithmes agissent de plus en plus non seulement sur de simples octets mais également sur les personnes, les questions d’éthique comme l’équité ou la transparence deviennent prégnantes.

Une constante du domaine est qu’un algorithme est développé dans un but précis et analysé en relation avec la façon dont il atteint son but. Mais ces années dernières ont vu apparaître des algorithmes qui résolvent un problème imprécis, et qui ne “marchent” que dans un sens très flou — le choix d’informations à présenter au lecteur en ligne ou les recommandations de produits à acheter, par exemple. Qu’est-ce qui fait qu’une sélection donnée est le meilleur choix ? Un résultat donné est-il, ou non, satisfaisant ? Quel est le but recherché ? Ces questions sont à la périphérie de l’algorithmique classique et en même temps centrales pour l’évolution du domaine dans la décennie à venir.

Un des nouveaux enjeux de l’algorithmique est donc comprendre le “pourquoi” et le “dans quel but” des algorithmes de la famille des méthodes d’ « apprentissage profond », qui se retrouvent appliqués un peu partout avant qu’on ait vraiment compris leurs aspects fondamentaux. Ici, la théorie a pris du retard sur la pratique, et ce retard de compréhension induit des risques de manipulation sans contrôle.

Il ne faut pas avoir peur des algorithmes, mais il faut apprendre à les connaître pour les apprivoiser : c’est la mission de l’algorithmique.

Dans le cadre de la chaire annuelle “Informatique et sciences numériques”, leçon inaugurale au Collège de France le jeudi 16 novembre 2017 à 18h, cours les mardis à 10h à partir du 24 novembre.

Claire Mathieu, CNRS, Paris

L’apprentissage profond avant tout

Un nouvel « Entretien autour de l’informatique ». Yann LeCun  est un informaticien, chercheur en intelligence artificielle, et plus particulièrement en « apprentissage automatique » (machine learning). Il est internationalement reconnu notamment pour ses résultats sur la reconnaissance de caractères et la vision par ordinateur en s’appuyant sur les réseaux de neurones convolutifs (son invention). Il est professeur à l’Université de New York et directeur du laboratoire d’Intelligence Artificielle de Facebook. Il a été titulaire de la Chaire « Informatique et sciences numériques » au Collège de France (2015-2016). Cet article est publié en collaboration avec TheConversation.

Yann LeCun (@ylecun sur Twitter)

B : Pourrais-tu nous parler de l’ « apprentissage machine » ?
YL : On écrit un programme informatique pour réaliser une tâche particulière comme faire une recherche dans une base de données. Mais parfois la tâche est trop compliquée. On ne sait pas expliquer à l’ordinateur comment la réaliser. On utilise alors un programme d’apprentissage, un programme simple mais avec de nombreux paramètres. A partir de données qu’on lui fournit en entrée (par exemple une image), le programme calcule des valeurs de sortie (c’est un chien, un chat, etc.) et le résultat dépend fortement des paramètres qu’on ne sait pas a priori fixer. On fournit beaucoup d’images de chats et de chiens avec des annotations qui précisent de quel animal il s’agit. On va ensuite faire des tas de calculs pour déterminer les paramètres du programme, ceux qui donnent les résultats les plus proches des valeurs des annotations. Et on arrive ce cette façon à un programme qui distingue très bien les images de chats de celles de chiens.

Le programme d’apprentissage qui les distingue est relativement simple (quelques pages de code). Il utilise des maths du 18ème siècle, et de l’informatique du siècle dernier. Ce qui a véritablement fait marcher tout cela, ce sont des puissances de calcul considérable, la disponibilité de grands corpus de données numériques, et le développement de nouveaux algorithmes dans les années 80 : les réseaux neuronaux artificiels multicouche et la rétropropagation du gradient de l’erreur.

B : est-ce que tu peux nous expliquer un peu comment ils fonctionnent ?
YL : ce sont des algorithmes inspirés (mais de loin) du fonctionnement des neurones biologiques. Imaginez des couches de petits calculateurs très simples commandés par des paramètres ; chaque calculateur décide de ses sorties à partir de ses entrées… et de ses paramètres. On fournit des entrées au réseau global (une image) et il propose une sortie (c’est un chat, c’est un chien). Si le système ne donne pas le résultat que nous espérons obtenir sur un exemple particulier, on calcule une « différence » entre ce qu’on obtient et ce qu’on voudrait obtenir et on propage cette différence pour modifier les paramètres de tous les petits calculateurs. La difficulté est d’arriver à régler efficacement les paramètres pour minimiser l’erreur que le réseau fait sur l’ensemble des exemples annotés.

B : c’est en réalité bien plus compliqué que ce que tu dis. De nombreux algorithmes ont été proposés. Il a fallu pas mal de temps avant d’obtenir de bons résultats.
YL : oui. L’idée est simple mais sa mise au point a pris du temps.

B : et il existe d’autres types d’apprentissage…
YL : ce que je viens de décrire c’est de l’apprentissage supervisé. Dans ce cadre, j’ai par exemple proposé des algorithmes de réseaux convolutifs qui donnent d’excellents résultats et qui sont très utilisés.

Et puis, on peut aussi considérer l’apprentissage par renforcement. Pour battre le champion du monde de Go, DeepMind  s’est appuyé sur un grand nombre de techniques. Leur programme a, de manière classique, appris d’une énorme quantité de parties de Go jouées par des grands maîtres, c’est de l’apprentissage supervisé. Mais il a aussi joué des millions de parties contre lui même. Une des versions du programme-joueur essaie de faire varier un paramètre dans un sens ou dans un autre. Si cette version gagne plus souvent que l’autre, cela renforce la conviction que c’était une bonne idée de faire varier ainsi le paramètre. C’est ce qu’on appelle l’apprentissage par renforcement.

Enfin, d’autres chercheurs travaillent sur l’apprentissage non supervisé. Un programme observe ce qui se passe autour de lui, et construit à partir de cette observation un modèle du monde. C’est essentiellement de cette façon que les oiseaux, les mammifères, que nous mêmes fonctionnons. Ce n’est pas si simple ; les algorithmes que nous concevons aujourd’hui attendent des prédictions du monde qui soient exactes, déterministes. Mais si vous laissez tomber un stylo (voir photo), vous ne pouvez pas prédire de quel côté il va tomber. Nos programmes d’apprentissage retiennent qu’il est tombé, par exemple, à gauche puis devant. Il faudrait apprendre qu’il peut tomber n’importe où aléatoirement. Il y a des travaux passionnants dans cette direction. Cela ouvre des portes pour de l’intelligence artificielle, au-delà de l’analyse de contenu.

B : je t’ai entendu dire que certaines fonctions du cerveau comme le langage ou la mémoire étaient relativement simples, que la vraie difficulté résidait dans l’apprentissage.
YL : au delà de l’inné qui est bien présent, l’apprentissage est essentiel. Une procédure d’apprentissage est présente dans le cortex d’animaux, identique dans plusieurs zones du cerveau. Si pour une raison quelconque, une de ces zones est abîmée, la fonction qu’elle abrite va se reconstruire ailleurs. Le même programme va recevoir dans une autre zone des entrées et va se spécialiser dans la tâche qui aurait dû être réalisée par la zone abîmée.

On peut proposer la thèse que de nombreuses parties du cerveau abritent le même principe d’apprentissage. On pourrait s’inspirer de cette idée en intelligence artificielle pour utiliser le même algorithme d’apprentissage pour de nombreuses fonctions. Les évolutions récentes confortent ce point de vue. Dans des domaines de l’informatique très séparés, comme la traduction, la reconnaissance de formes, la conduite de voiture, les mêmes principes des réseaux convolutifs, de l’apprentissage supervisé, donnent de très bons résultats, et sont aujourd’hui utilisés couramment.

B : une inquiétude avec ces méthodes est que nous risquons de construire des systèmes informatiques que nous comprenons finalement assez mal, que nous maîtrisons mal.
YL : oui. Le programme d’apprentissage automatique est simple et la difficulté réside souvent dans le choix des données qui sont fournies pour l’entraîner. On ne sait pas où on peut arriver et cela dépend des données d’apprentissage. Par exemple, ce n’est pas simple de complètement fiabiliser le comportement d’une voiture autonome. La masse de données est considérable, les risques le sont également. C’est compliqué mais on y arrive quand même. C’est surtout possible parce que les systèmes peuvent s’autocorriger. Un accident ou même un presque-accident apportent de l’expérience au système, l’améliorent. Si on ne peut pas promettre de construire un programme parfait du premier coup, on peut surveiller ce qui se passe, entraîner le programme pour le perfectionner continuellement.

B : comme ces systèmes prennent une importance considérable dans notre société, ne doit-on pas attendre d’eux qu’ils aient des responsabilités, qu’ils obéissent à des règles éthiques ?
YL : évidemment. Ce sujet est de plus en plus important. Les humains présentent des biais parfois conscients, souvent inconscients. Mal entraînée, une machine peut reproduire ces même biais. Google a par exemple proposé un système de reconnaissance des visages qui classifiait parfois des visages noirs comme des visages de gorille. Le logiciel n’était pas raciste. C’est qu’il avait été mal entraîné, avec trop peu de visages noirs.

Avec Facebook et des partenaires industriels, l’UNESCO et des ONG comme l’ACLU (Union américaine pour les libertés civiles), nous avons monté le « Partnership on AI »  pour mettre cette technologie au service des gens et de la société.

B : saura-t-on bientôt construire des machines avec l’intelligence générale d’un humain ?
YL : un jour. Mais ça va prendre du temps. Les chercheurs dans les tranchées savent combien le problème est difficile.

Il est d’ailleurs passionnant de voir comment les programmes et les machines transforment la valeur des choses. Un lecteur Blue Ray super sophistiqué, bourré d’électronique et d’algorithmes coûte moins de 50 euros quand un saladier en céramique, utilisant des technologies très anciennes, peut en valoir des milliers. La valeur tient bien dans la réalisation par un humain. Les machines participent à la création de valeur, à l’augmentation de la productivité. Cela pose le problème du partage de toute cette valeur générée.

Serge Abiteboul, Inria et École Normale Supérieure, Paris

Du site web personnel de Yann LeCun

 

Au sujet de l’école 42 et de la publicité dont elle bénéficie

L’école 42 forme des développeurs en informatique, ce qui répond à un besoin de notre économie. Un article de Binaire avait souligné des aspects intéressants de ses méthodes éducatives, d’autres plus discutables. Il soulignait que 42 n’adressait pas des problèmes pressants comme de toucher les publics défavorisés (voir par exemple Simplon), ou les femmes (voir par exemple un article de Valérie Schafer), pas plus que la formation des maitres (voir par exemple Class Code). Le marketing agressif de 42 s’est spécialisé dans le trashing de l’enseignement supérieur français en informatique. Dans ce sens, une dernière chronique sur France Inter a atteint des sommets. Nous reprenons une réponse du blog de David Monniaux. Serge Abiteboul

Dominique Seux, chroniqueur aux Échos, a le lundi 6 novembre choisi d’évoquer la fameuse école 42 de Xavier Niel sur l’antenne de France Inter. Il a notamment déclaré :

« Alors, évidemment, si on était caustique, on s’étonnerait que les milliers d’enseignants-chercheurs de nos grandes universités scientifiques n’aient pas eu l’idée de lancer des formations en développement informatique. »

Si on était caustique à l’égard M. Seux, on relèverait que, justement, les enseignants-chercheurs des universités scientifiques ont lancé de telles formations depuis des décennies. Pour prendre des exemples locaux, l’École nationale supérieure d’informatique et de mathématiques appliquées de Grenoble (ENSIMAG) fut fondée en… 1960, le département informatique de l’institut universitaire de technologie (IUT) de Grenoble en 1966 ; les MIAGE (formations aux Méthodes informatiques appliquées à la gestion des entreprises) existent depuis 1969. Bref, rien de nouveau sous le soleil.

Puisque M. Seux évoque les « milliers d’enseignants-chercheurs de nos grandes universités scientifiques », rappelons qu’il y a de l’ordre de 3400 enseignants-chercheurs de statut universitaire en informatique. Je ne sais pas ce que M. Seux s’imagine qu’ils enseignent, peut-être de la théorie de haute volée ou de l’histoire de l’informatique ? Ce n’est pas le cas ! (Ou du moins, c’est très rarement le cas, évidemment à Normale Sup on peut se permettre de faire de la théorie de haute volée…) La grande majorité des enseignements portent sur ce que les étudiants doivent savoir pour occuper, plus tard, des emplois de développeur, administrateur système, etc.

Revenons sur 42, M. Seux indique (j’ignore si ces chiffres sont exacts) que cette école reçoit 50000 candidatures par an et n’en accepte que 900. C’est donc une école extrêmement sélective à l’entrée. Ensuite, si l’on en croit les informations diffusées par les médias, il y a une très forte pression de sélection interne (les étudiants qui n’arrivent pas à se débrouiller sont exclus). En résumé, il s’agit d’un enseignement (ou d’une absence d’enseignement) qui s’adresse à une très petite minorité.

Les universités, quant à elles, ont une mission d’enseignement très générale — on a beaucoup rappelé récemment qu’elles sont censées accepter tout bachelier (il existe également des voies d’accès sans baccalauréat). Il n’est pas clair que les méthodes « sans enseignants » qui conviennent à une infime minorité conviendraient au public de l’enseignement de masse. J’en doute même fortement. Je sais bien qu’il est tentant (on sent bien ce sous-entendu derrière le discours sur les milliers de fonctionnaires dont on se demande bien ce qu’ils font) de penser que l’on pourrait largement se passer de la masse salariale d’enseignants, mais tout ce qui est tentant n’est pas forcément possible.

Prenons un parallèle. Personne ne suggère que l’on supprime l’enseignement des mathématiques et qu’on le remplace par la mise à disposition de manuels et dispositifs informatiques. Pourtant, le grand mathématicien Srinivasa Ramanujan, lorsqu’il était adolescent, a en grande partie appris les mathématiques seul en s’aidant d’un ouvrage de synthèse. Imaginez les économies que l’on pourrait faire en se défaisant des professeurs de mathématiques de lycée !

Si j’évoque cette chronique, c’est parce que celle-ci s’inscrit dans tout un discours médiatique à l’égard de l’enseignement de l’informatique en France, où l’on oppose la modernité de l’école 42 aux pratiques supposées archaïques des universités, et où l’on vante l’enseignement privé. Pour ma part, j’ai un raisonnement simple : enseigner à une infime minorité sélectionnée est facile. La question difficile est celle de l’enseignement de masse, surtout si celui-ci doit déboucher sur des emplois (il me semble d’ailleurs que les diplômés d’informatique des universités n’ont en général aucun problème pour trouver un emploi). Pourquoi faut-il encore et encore rappeler pareilles évidences ?

David Monniaux, CNRS, Université de Grenoble
le mercredi, novembre 8 2017, 10:43 – EnseignementLien permanent

 

La naissance des robots

L’histoire du premier Robot, ou presque… Par Didier Roy, 3’38

Savez-vous d’où viennent les robots et ce qu’il a fallu pour en arriver là ? En bref, vous êtes vous déjà demandé quel fut le tout premier robot ? Par qui et quand a-t-il été inventé ? Pourquoi faire ? Pour le savoir, remontons un peu dans le temps…

En savoir plus :

Class´Code est une formation complète pour initier les jeunes à la pensée informatique.  Mais, vous voulez peut-être juste avoir un aperçu de cette formation ? Simplement  connaître l’histoire de cette histoire ? Installer vous confortablement. En quelques minutes, ces vidéos vont vous donner quelques grains de culture scientifique et technique sur ces sujets.

Note: les vidéos des cours d’OpenClassrooms comme toutes les ressources de Class´Code sont librement accessibles, sous licence Creative-Commons, comme on le voit ici.

Vision artificielle, Saison 2 : reconnaître un objet spécifique

On reconnait automatiquement nos visages sur le Web, on comprend sans intervention humaine le contenu d’une image, on reconstruit une partie occultée d’une scène, on … Mais qui « on » ? Des algorithmes de vision artificielle. Et comment ça marche ? Nous avons posé la question à  Jean Ponce, chercheur chez Inria et au Département d’informatique de l’ENS, et spécialiste de la reconnaissance de formes dans des photos et des vidéos.  Il nous emmène à la découverte de ce demi-siècle d’histoire de la vision artificielle. Voici le 2ème épisode où l’on apprend à identifier automatiquement des objets spécifiques. Thierry Viéville, Serge Abiteboul.

Commencer par le premier épisode en cliquant ici.

Jean Ponce, responsable de l’équipe de recherche WILLOW (Modèles de la reconnaissance visuelle d’objets et de scènes).

Ma montre (ou celle de James Bond si vous préférez, mais une montre précise, pas n’importe laquelle) est-elle présente dans la photo du premier épisode ?  Qu’en est-il de mon chat Nietzsche ? Il s’agit ici de reconnaître un objet spécifique, bien particulier, unique ; c’est a priori la version la plus simple du problème de la reconnaissance visuelle, puisqu’on peut faire abstraction de la variabilité liée aux divers marques et modèles de montres et de leurs usure, ainsi que de l’apparence changeante des chats (couleur, embonpoint, pelage, taille, yeux, etc.). Le problème reste très difficile, avec des facteurs « de nuisance » liés à la position et l’orientation des objets observés et aux changements d’illumination. Attention cher lecteur, aujourd’hui nous plongeons un peu dans la technique…

Utiliser la géométrie. Le niveau de gris (pour des images en noir et blanc, ou plus généralement la couleur) associé à chaque pixel d’une image numérique dépend de manière complexe des propriétés physiques du capteur, de la scène, et de l’illumination. Ceci suggère d’accorder plus de confiance aux caractéristiques géométriques d’une scène qu’à son apparence. En particulier, supposons qu’on observe une pièce mécanique plate reposant dans un plan depuis un point de vue fixe (cf. image ci-dessous).

Source : « Hyper : a new approach for the recognition and positionning of 2D objects », N. Ayache, O. Faugeras, IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986.

Les seules variables dans ce cas sont la position  et l’orientation de cette pièce dans le plan. Supposons de surcroît qu’on connaisse a priori la forme de la pièce, approximée par un ensemble de segments de droites, et qu’on soit capable d’extraire automatiquement une description similaire des contours des objets présents dans une photo. Trouver la pièce dans une image revient alors à apparier les deux familles de segments de droite correspondants, sous la contrainte qu’il existe une transformation rigide (rotation + translation) unique permettant de passer de l’une à l’autre.  Bien que le coût (temps de calcul) du meilleur appariement global semble a priori prohibitif (techniquement, exponentiel dans le nombre de segments), il n’en est rien car la contrainte de rigidité permet de calculer la transformation entre les deux formes dès que deux segments ont été appariés, pour un coût (essentiellement) quadratique, tout à fait raisonnable pour des pièces telles que celles montrées ci-dessus.

Cette technique a été développée en 1982 chez Inria dans l’équipe d’Olivier Faugeras, un des pionniers de la vision artificielle moderne, par son doctorant Nicholas Ayache. Elle a été ensuite étendue au cas plus difficile de pièces tridimensionnelles par Martial Hebert, un autre doctorant de Faugeras. Cette approche, dont les racines remontent à la thèse de Roberts évoquée dans le premier épisode, a dominé les années 80, avec des travaux menés en parallèle par des chercheurs tels que David Lowe au laboratoire de robotique de Stanford, ou Eric Grimson et Dan Huttenlocher au laboratoire d’intelligence artificielle du MIT. Il s’est malheureusement révélé difficile de la généraliser à des formes tridimensionnelles complexes et surtout à des images contenant du fouillis, c’est-à-dire plusieurs objets ou des textures complexes agissant comme distracteurs.

Invariants et apparence globale. Au lieu de calculer la position et l’orientation des objets à reconnaître, des chercheurs,  tels qu’Isaac Weiss de l’Université du Maryland, ont songé, au début des années 90, à modéliser leur forme par des caractéristiques indépendantes de ces paramètres, appelées des invariants : ainsi, l’aire d’une région plane est invariantes aux translations et aux rotations ; le rapport de l’aire au carré du périmètre est de plus indépendant des changements d’échelle, etc. On peut ainsi reconnaître un objet en comparant ces caractéristiques à celles de prototypes déjà observés. La vogue des invariants a été de courte durée, en partie parce que, en dehors du fait qu’ils ne résolvaient pas le problème du fouillis, on a rapidement démontré qu’une forme réellement tridimensionnelle n’admettait aucun invariant au déplacement de l’appareil photo qui l’observe. Les travaux sur les invariants menés par exemple à Oxford, par Andrew Zisserman et ses collègues, ou chez Inria, notamment dans les équipes d’Olivier Faugeras et de Roger Mohr, un autre pionnier français de la vision artificielle disparu trop tôt, voici quelques mois, ont en revanche eu le mérite de contribuer à l’adoption de concepts issus de la géométrie projective, qui ont eu un impact profond sur la reconstruction de scènes tridimensionnelles à partir de plusieurs photographies, avec de nombreuses applications à des domaines aussi variés que l’archéologie, les effets spéciaux, ou la réalité augmentée.

Il est devenu clair dès le milieu des années 90 que la géométrie seule n’était pas suffisante à la mise au point de méthodes de reconnaissance visuelle robustes. Fallait-il donc en revenir au signal lui-même, aux niveaux de gris ? Matthew Turk et Sandy Pentland au MIT ont popularisé cette idée en l’appliquant à la reconnaissance de visages. Chaque image est vue comme un tableau de nombres (les niveaux de gris à chaque pixel), ou de manière équivalente, comme un point dans un espace de très grande dimension, les niveaux de gris des pixels successifs donnant les coordonnées du point. On se dote donc d’une collection de photos de personnes de référence. Toute nouvelle photo est ensuite appariée à la photo de référence la plus proche (dans le sens de la distance euclidienne entre les points associés aux deux images ou leurs projections dans des espaces de dimension plus petite), la personne correspondante étant déclarée reconnue. Ceci suppose bien entendu que les images soient cadrées sur le visage, qu’il soit vu de face, etc. Ces travaux ont été par la suite généralisés à des contextes plus difficiles, en particulier par Hiroshi Murase et Shree Nayar à l’Université de Columbia, qui ont démontré la reconnaissance en temps réel d’objets tridimensionnels de tous les jours (fruits, voitures jouets) observés dans des positions et orientations arbitraires. Mais ces modèles globaux (dans le sens où c’est l’image entière, ou une imagette détourée par seuillage sur un fond noir, qui est représentée) ne permettent pas de résoudre le problème du fouillis, des occultations partielles, ou des ombres par exemple.

Apparence locale. En 1996, la thèse de Cordelia Schmid au sein de l’équipe Inria de Roger Mohr a été (enfin !) l’occasion d’une percée significative : l’idée est (a posteriori) simple : représenter l’apparence locale et non plus globale, c’est-à-dire modéliser un objet par une série d’imagettes de taille réduite (quelques pixels) centrées, soit en chaque point de l’image, soit en des points jugés « intéressants » selon un critère approprié.  On cherche alors à apparier les imagettes trouvées dans deux images sous des contraintes géométriques similaires à celle utilisées plus haut, tout en exploitant cette fois la similarité des motifs de couleur (ou de niveaux de gris) correspondants. Pour cela on remplace l’imagette brute par un « descripteur » qui doit permettre de distinguer des différences subtiles entre des motifs différents tout en étant peu sensible aux facteurs de nuisance liés aux variations de pose et d’illumination. Le descripteur « SIFT » de David Lowe (arrivé entretemps à l’Université de Colombie Brittanique)  a rapidement supplanté les « jets » moins robustes d’abord utilisés par Cordelia Schmid et Roger Mohr, qui étaient inspirés des travaux de Jan Koenderink à l’Université d’Utrecht. Tous deux utilisent le gradient des imagettes, peu sensible aux changement d’illumination, et des invariants locaux, qui contrairement aux invariants globaux évoqués plus haut, existent pour toute forme bornée par une surface lisse. La paire d’images ci-dessous illustre le processus.

Source : Inconnue alors que cette image est utilisee depuis des années dans divers cours de vision autour du globe … merci de nous signaler sa source si vous la connaissez. !

On se donne donc une image « requête » (à gauche), et on cherche à trouver dans une base de données l’image contenant le même objet parmi des milliers d’autres où il ne figure pas.  L’image « retrouvée » par le système est affichée à droite. Notez les différences importantes  entre l’illumination et la configuration géométrique du jouet entre les deux photos. Le processus de recherche examine les images candidates de la base l’une après l’autre, et cherche à apparier chaque candidate a la requête. On commence par trouver les points « intéressants » (en rouge) présents dans les deux images. On construit ensuite des hypothèses raisonnables d’appariement entre ces points (les flèches vertes)1 en comparant leurs descripteurs. Certaines d’entre elles, parfois une majorité, sont bien sûr incorrectes. Pour en éliminer une partie, on impose alors des contraintes géométriques locales (les traits rouges, symbolisant le fait que des appariements entre points voisins devraient être disposés de manière similaire dans les deux images). Enfin on compte le nombre d’appariements restants et l’image retrouvée est celle qui réunit le plus de votes.

Cette approche a en grande partie contribué à sortir la vision artificielle de sa tour d’ivoire. Nous verrons dans le prochain épisode comment aborder la reconnaissance de catégorie d’objets, avec des méthodes pas si différentes en fait, avant d’examiner les contributions incontestables de l’apprentissage statistique moderne à notre domaine, qui ont ensuite permis l’explosion industrielle de la vision artificielle.

 Jean Ponce, Inria et École normale supérieure, CNRS, PSL Research University

1 Cet exemple « jouet » ne montre qu’un petit nombre d’appariements potentiels, l’auteur les ayant dessiné a la main, il n’a pas eu l’énergie d’en représenter d’avantage. J’espère que vous ne lui en voudrez pas. Dans la réalité il y aurait des milliers de flèches vertes, dont un grand nombre seraient incorrectes.