Pyparis, le vivarium de l’intelligence artificielle
Pyparis, la conférence consacrée au langage de programmation Python, a confirmé l’utilisation omniprésente de ce langage dans le domaine de l’intelligence artificielle.
Trois cents personnes, pas seulement françaises, le TGV mettant Paris à quelques heures des pays européens voisins, avaient fait le déplacement pour assister aux deux jours de conférence organisés à l’epita par Systematic autour du langage Python. Python, comme le prouvent les deux derniers articles parus dans L’informaticien, est actuellement l’un des langages qui connaît le plus de succès dans la galaxie mondiale des développeurs. À juste titre : ce langage est à la fois simple, puissant et concis, sa syntaxe est claire, il est donc facile à apprendre, et les multiples bibliothèques qui ont développées au long des années permettent de réaliser aisément des traitements complexes, en bénéficiant à la fois de la souplesse d’utilisation de l’interpréteur et de la rapidité des bibliothèques binaires, issues la plupart du temps de code C ou C++ compilé.
Ce n’est donc pas un hasard si ce langage s’est imposé largement dans la communauté scientifique, entre autres, où les chercheurs avaient besoin d’un langage généraliste permettant de réaliser les traitements d’ « enrobage » , types entrées/ sorties ou visualisation, autour du résultat des calculs réalisés par les noyaux C ou Fortran. On ne sera donc pas surpris d’apprendre que la mouture 2018 de Pyparis, la conférence française consacrée au langage, a fait la part belle au domaine de l’intelligence artificielle. C’est, à l’heure actuelle, un des domaines les plus foisonnants, voire des plus prometteurs, à condition cependant que l’on reste conscient des limites inhérentes à ces techniques. Également l’un des plus difficiles techniquement : les réseaux de neurones se fondent sur des calculs matriciels souvent volumineux, qui ne peuvent être conduits dans des temps raisonnables que par des ordinateurs équipés – ou communiquant avec – des car tes graphiques de dernière génération. Configurer son système pour que CPU et GPU travaillent de concert relève souvent du casse- tête. Les bibliothèques Python sont là pour simplifier la tâche du chercheur, qui n’a plus qu’à s’occuper de son modèle.
Google et Facebook
Il n’y a pas de mystère. Les plus grands consommateurs d’algorithmes d’intelligence artificielle sont ceux qui ont à manipuler des dizaines et des dizaines de téraoctets de données. Les principaux moteurs ont donc été écrits par les laboratoires Google ( Tensorflow) ou Facebook ( Pytorch). Dans les deux cas, il est très facile – pourvu que vous ayez le hardware adapté – d’installer ces logiciels et de faire tourner les modèles à partir de programmes Python simples. Le néophyte peut s’y essayer, mais les résultats sont parfois un peu surprenants, ou décevants. En règle générale, un moteur D’IA fonctionne en deux temps : on commence par l’alimenter avec des données d’apprentissage, qui permettent au réseau de calculer les coefficients qui produisent les réponses les plus adaptées. Dans un deuxième temps, on demande au réseau des réponses basées sur son apprentissage.
Certaines fois, ce processus fonctionne très bien. Par exemple, pour appliquer un style spécifique de dessin ( type bande dessinée) à des photographies. Mais parfois, les résultats sont décevants, voire comiques : apprenez à un réseau à associer des graphies à des chiffres, et glissez une image de poule parmi les graphies types, et le réseau vous soutiendra mordicus qu’une poule correspond au chiffre 5 : il ne sait pas rejeter les entrées aberrantes ; présentez lui une photo de panda, il vous dira que c’est un panda. Ajoutez- y un peu de bruit, quasiment invisible à l’oeil, et son opinion changera.
Alimentez- le avec une série de livres policiers pour enfants en espérant pouvoir générer automatiquement un nouveau volume : vous serez bien déçus par le charabia obtenu. Et n’espérez pas en tirer des paroles audibles si facilement que ça. Les « réseaux neuronaux » , en dépit de leur nom, n’ont rien de tel : ils ne fonctionnent pas comme notre cerveau.
Analyse d’images
Il y a cependant des tâches où ceux- ci s’en sortent plutôt bien. C’est le cas des analyses photographiques, par exemple. Une des applications les plus gourmandes en images ressortit du domaine de l’information géographique : il s’agit d’interpréter les images aériennes, ou satellites, pour déterminer ce qu’elles représentent ( habitations, routes, forêts…) et en dériver des cartes dites « vectorielles » où les objets du terrain sont représentés par des polygones. Ce travail, traditionnellement effectué manuellement par des « photo- interprètes » est extrêmement gourmand en ressources humaines et en temps. Plusieurs sociétés spécialisées ont donc développé des chaînes de traitement en
Python pour tenter d’automatiser ces traitements. Les résultats sont, disons, variables, notamment en raison des conditions d’éclairage souvent variables. De la même façon, il est illusoire de vouloir appliquer des règles déduites de l’analyse d’images africaines sur l’europe, par exemple, où l’habitat et la végétation sont entièrement différents. Dans d’autres contextes, les chaînes d’analyse d’images fondées sur des bibliothèques D’IA en Python peuvent donner des résultats acceptables : c’est le cas du classement d’images en fonction de critères esthétiques. Un site de tourisme allemand a ainsi demandé à un moteur D’IA de trier les photographies des chambres prises par les touristes selon des critères d’esthétisme. Lorsque le moteur est « instruit » par des séries d’images génériques que des humains ont notées, le moteur produit des choix discutables. Lorsque celui- ci est alimenté par des images de chambres d’hôtel pré- calibrées, il s’en sort beaucoup mieux, étant même capable de deviner raisonnablement bien quel partie de la chambre, ou de l’hôtel, a été photographiée. ❍