Introduction au Deep Learning

par | 19 Mai 2016

Je vous propose de discuter un peu autour d’une vidéo de David Louapre (chaine youtube ScienceEtonnante) sur le deep learning. C’est tellement bien présenté et amené et que je préfère l’utiliser comme base de réflexion ici.

Nous avons déjà discuté du deep learning sur ce blog avec l’article sur la course de voitures Roborace, avec l’utilisation de Nvidia Drive PX2, une carte optimisée pour le deep learning. C’est un domaine de l’intelligence artificielle qui profite aujourd’hui de la puissance phénoménale des architectures distribuées actuelles (que l’on parle de GPU sur nos cartes graphiques, comme le cloud pour une architecture hétérogène distribuée). Nous devrions la voir surgir de plus en plus dans les jeux vidéo, mais également dans notre quotidien, sans forcément en avoir conscience.

Cela me rappelle que dans le sous-marins, il y a une fonction forte utile qui était jadis remplie par un homme qu’on appelle « Oreille d’or« .  Son travail était d’identifier, à l’oreille, les différents objets via leur signature acoustique (qu’il s’agisse de leur bruit même, ou de l’écho du radar/sonar). Plusieurs programmes informatiques ont été créé pour cela, mais dès que l’on essayait de programmer cette analyse, on se cassait les dents. Au final, c’est un réseau de neurones qui a pris le relais. Il a appris par l’expérience: on ne connait pas vraiment son « algorithme d’analyse » qui serait trop difficile à extraire de son réseau neuronal, mais il est désormais bien plus performant que les meilleures oreilles d’or. En bref, nous avons conçu un programme qui en a programmé un autre, et qui l’a fait bien mieux que nous ne saurions le faire. C’est assez grossier comme description, mais c’est aussi assez proche de la réalité.

Bon, je vous laisse avec la vidéo et on en reparle juste après:

Vous pouvez compléter cette vidéo à partir du billet réalisé sur son site (que je vous conseille fortement de suivre).

Donc pour résumer, le deep learning, c’est une approche de l’intelligence artificielle consistant à faire de l’apprentissage automatique (machine learning), tout en laissant le programme se débrouiller relativement seul. Au final, on obtient un système « prédictif » capable de résoudre des problèmes qu’on aurait pas forcément su résoudre au travers d’un algorithme « classique ».

main-qimg-591214aefebe015188cd29b5ba4fc9a6

Après une longue traversée du désert, « l’apprentissage profond » est désormais la méthode phare de l’intelligence artificielle: toutes les grandes entreprises technologiques s’y mettent : Google, IBM, Microsoft, Amazon  ou Adobe y investissent des fortunes. Facebook également, qui, signal fort, a placé Yann LeCun à la tête de son nouveau laboratoire d’intelligence artificielle installé à Paris.

Dans la vidéo, pour l’analyse d’images il parle des « caractéristiques intermédiaires de l’image ». Pour ma part, dans l’analyse des flux boursiers, j’utilisais différentes moulinettes comme l’analyse technique (plus de 100 formules différentes) qui vont des moyennes mobiles aux bollingers en passant par les chandeliers japonais. Si vous ne connaissez pas ces méthodes, retenez simplement que c’est une sorte de calcul mathématique plus ou moins basé sur l’observation de tendances et qui ont, par le passé, fait plus ou moins leurs preuves pour prédire le cours de telle ou telle action. On dira plus souvent que telle analyse technique a été performante pour telle action sur telle période. C’est sur l’utilisation intelligente de ces formules que mon travail portait essentiellement. Ne connaissant pas quels étaient les approches optimales par action, j’entrainais des algorithmes génétiques sur le passé de l’action. Hé bien ça, c’est l’ancienne méthode qui a atteint ses limites.  Aujourd’hui, si je devais réétudier la question je me pencherais sur le deep learning. Pourquoi utiliser l’analyse technique alors que l’ordinateur est capable de trouver ses propres algorithmes d’analyse (auxquels je ne comprendrai probablement rien – ni personne d’ailleurs).

Alors, si aujourd’hui je devais me lancer dans le domaine, qu’est-ce que je pourrais utiliser ? Oui, c’est étrange de raisonner ainsi non ? Dans tout domaine, il y a ceux qui font avancer le domaine, qui ont besoin d’en connaitre chaque détail, chaque formule mathématique… et ceux qui préfèrent utiliser la technique et qui sont aussi souvent capables de la faire évoluer (approche hacker). Pour ma part, en ce qui concerne l’IA, je suis plus un utilisateur (jadis averti, mais qui a besoin d’une grosse update). Alors, je vais chercher à me servir du Deep Learning, sans vouloir réinventer la technique.

Tout d’abord, je pense qu’il serait intéressant d’identifier les architectures de réseaux de neurones profonds qui fonctionnent bien aujourd’hui et pour quel domaine ou application.  Ensuite, il y a l’architecture de Nvidia sur le DL qui permet d’offrir une solution matérielle et des API logicielles pour utiliser le deep learning. Enfin, il serait peut-être intéressant aussi de faire le tour des différentes solutions open source existant aujourd’hui: cette liste me parait un bon point de départ.

Après cela, j’aimerais bien me fixer dans une architecture matérielle/logicielle et tester la reconnaissance d’objets en utilisant la base d’images ImageNet dont parle la vidéo (je viens de demander l’accès sur leur site, j’espère qu’ils accepteront).

Voilà, et vous, vous avez déjà testé le sujet – est-ce que ce domaine vous intéresse ? Voyez-vous les applications possibles dans le jeu vidéo ? Je vous propose qu’on en discute dans les commentaires de cet article. Et bien entendu, je vous tiens au courant de mes recherches sur le sujet dans de prochains posts.

Je vous laisse avec cette vidéo de présentation de Yann LeCun à l’USI:


Ainsi que celle-ci au collège de France:
https://www.youtube.com/watch?v=z3hVyEmJcA8

Découvrez nos derniers numéros !

2 Commentaires

  1. MatFenric

    J’aimerais en faire plusieurs applications pour un Minecraft-like, notamment des générations optimisées de terrain (dont la décoration avec l’emplacement de la végétation, des routes, habitations, mines, ruines, etc), de végétation (tel que le branchage d’un arbre) ou d’écosystème.
    Enfin développer des IA pour les créatures (PNJ, animaux, monstres).
    Il faudrait s’inspirer du réel en imposant des contraintes esthétiques pour obtenir un décor stylisé mais cohérent.
    Et avoir des PNJ qui exploitent leur environnement ou qui soient capable de réagir aux actes des joueurs, des animaux et plantes qui interagissent, etc, serait très intéressant.

    Réponse
    • greg

      Génération procédurale d’environnement en se basant sur l’étude de biotopes par une série de photos, d’analyse d’objets dans ces photos… nombre, dispersion, proximité… le tout en deep learning – oui, cela semble possible. Cela permettrait d’établir des règles au travers d’un réseau de neurones. Une fois ce dernier entrainé, il devrait être possible de l’exporter dans le jeu pour générer le paysage.
      Pour l’IA des PNJ… un peu plus complexe. Mais il faut y réfléchir en effet 😉

      Réponse

Laisser un commentaire

Ces articles pourraient aussi vous intéresser …

Participez à partir de 1€ à notre campagne sur Ulule
pour obtenir le magazine sous forme papier

cliquez pour aller sur la campagne

Ceci fermera dans 21 secondes