Introduction au Deep Learning

Je vous pro­pose de dis­cuter un peu autour d’une vidéo de David Louapre (chaine youtube Sci­enceE­ton­nante) sur le deep learn­ing. C’est telle­ment bien présen­té et amené et que je préfère l’utiliser comme base de réflex­ion ici.

Nous avons déjà dis­cuté du deep learn­ing sur ce blog avec l’article sur la course de voitures Rob­o­race, avec l’utilisation de Nvidia Dri­ve PX2, une carte opti­misée pour le deep learn­ing. C’est un domaine de l’intelligence arti­fi­cielle qui prof­ite aujourd’hui de la puis­sance phénomé­nale des archi­tec­tures dis­tribuées actuelles (que l’on par­le de GPU sur nos cartes graphiques, comme le cloud pour une archi­tec­ture hétérogène dis­tribuée). Nous devri­ons la voir sur­gir de plus en plus dans les jeux vidéo, mais égale­ment dans notre quo­ti­di­en, sans for­cé­ment en avoir con­science.

Cela me rap­pelle que dans le sous-marins, il y a une fonc­tion forte utile qui était jadis rem­plie par un homme qu’on appelle “Oreille d’or”.  Son tra­vail était d’identifier, à l’oreille, les dif­férents objets via leur sig­na­ture acous­tique (qu’il s’agisse de leur bruit même, ou de l’écho du radar/sonar). Plusieurs pro­grammes infor­ma­tiques ont été créé pour cela, mais dès que l’on essayait de pro­gram­mer cette analyse, on se cas­sait les dents. Au final, c’est un réseau de neu­rones qui a pris le relais. Il a appris par l’expérience: on ne con­nait pas vrai­ment son “algo­rithme d’analyse” qui serait trop dif­fi­cile à extraire de son réseau neu­ronal, mais il est désor­mais bien plus per­for­mant que les meilleures oreilles d’or. En bref, nous avons conçu un pro­gramme qui en a pro­gram­mé un autre, et qui l’a fait bien mieux que nous ne sauri­ons le faire. C’est assez grossier comme descrip­tion, mais c’est aus­si assez proche de la réal­ité.

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

Vous pou­vez com­pléter cette vidéo à par­tir du bil­let réal­isé sur son site (que je vous con­seille forte­ment de suiv­re).

Donc pour résumer, le deep learn­ing, c’est une approche de l’intelligence arti­fi­cielle con­sis­tant à faire de l’apprentissage automa­tique (machine learn­ing), tout en lais­sant le pro­gramme se débrouiller rel­a­tive­ment seul. Au final, on obtient un sys­tème “pré­dic­tif” capa­ble de résoudre des prob­lèmes qu’on aurait pas for­cé­ment su résoudre au tra­vers d’un algo­rithme “clas­sique”.

main-qimg-591214aefebe015188cd29b5ba4fc9a6

Après une longue tra­ver­sée du désert, « l’apprentissage pro­fond » est désor­mais la méth­ode phare de l’intelligence arti­fi­cielle: toutes les grandes entre­pris­es tech­nologiques s’y met­tent : Google, IBM, Microsoft, Ama­zon  ou Adobe y investis­sent des for­tunes. Face­book égale­ment, qui, sig­nal fort, a placé Yann LeCun à la tête de son nou­veau lab­o­ra­toire d’intelligence arti­fi­cielle instal­lé à Paris.

Dans la vidéo, pour l’analyse d’images il par­le des “car­ac­téris­tiques inter­mé­di­aires de l’image”. Pour ma part, dans l’analyse des flux bour­siers, j’utilisais dif­férentes moulinettes comme l’analyse tech­nique (plus de 100 for­mules dif­férentes) qui vont des moyennes mobiles aux bollingers en pas­sant par les chan­de­liers japon­ais. Si vous ne con­nais­sez pas ces méth­odes, retenez sim­ple­ment que c’est une sorte de cal­cul math­é­ma­tique plus ou moins basé sur l’observation de ten­dances 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 sou­vent que telle analyse tech­nique a été per­for­mante pour telle action sur telle péri­ode. C’est sur l’utilisation intel­li­gente de ces for­mules que mon tra­vail por­tait essen­tielle­ment. Ne con­nais­sant pas quels étaient les approches opti­males par action, j’entrainais des algo­rithmes géné­tiques sur le passé de l’action. Hé bien ça, c’est l’ancienne méth­ode qui a atteint ses lim­ites.  Aujourd’hui, si je devais réé­tudi­er la ques­tion je me pencherais sur le deep learn­ing. Pourquoi utilis­er l’analyse tech­nique alors que l’ordinateur est capa­ble de trou­ver ses pro­pres algo­rithmes d’analyse (aux­quels je ne com­prendrai prob­a­ble­ment rien — ni per­son­ne d’ailleurs).

Alors, si aujourd’hui je devais me lancer dans le domaine, qu’est-ce que je pour­rais utilis­er ? Oui, c’est étrange de raison­ner ain­si non ? Dans tout domaine, il y a ceux qui font avancer le domaine, qui ont besoin d’en con­naitre chaque détail, chaque for­mule math­é­ma­tique… et ceux qui préfèrent utilis­er la tech­nique et qui sont aus­si sou­vent capa­bles de la faire évoluer (approche hack­er). Pour ma part, en ce qui con­cerne l’IA, je suis plus un util­isa­teur (jadis aver­ti, mais qui a besoin d’une grosse update). Alors, je vais chercher à me servir du Deep Learn­ing, sans vouloir réin­ven­ter la tech­nique.

Tout d’abord, je pense qu’il serait intéres­sant d’iden­ti­fi­er les archi­tec­tures de réseaux de neu­rones pro­fonds qui fonc­tion­nent bien aujourd’hui et pour quel domaine ou appli­ca­tion.  Ensuite, il y a l’architecture de Nvidia sur le DL qui per­met d’offrir une solu­tion matérielle et des API logi­cielles pour utilis­er le deep learn­ing. Enfin, il serait peut-être intéres­sant aus­si de faire le tour des dif­férentes solu­tions open source exis­tant aujourd’hui: cette liste me parait un bon point de départ.

Après cela, j’aimerais bien me fix­er dans une archi­tec­ture matérielle/logicielle et tester la recon­nais­sance d’objets en util­isant la base d’images Ima­geNet dont par­le la vidéo (je viens de deman­der 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 appli­ca­tions pos­si­bles dans le jeu vidéo ? Je vous pro­pose qu’on en dis­cute dans les com­men­taires de cet arti­cle. Et bien enten­du, je vous tiens au courant de mes recherch­es sur le sujet dans de prochains posts.

Je vous laisse avec cette vidéo de présen­ta­tion de Yann LeCun à l’USI:

Ain­si que celle-ci au col­lège de France:

2 commentaires sur “Introduction au Deep Learning

Ajouter un commentaire

  1. J’aimerais en faire plusieurs appli­ca­tions pour un Minecraft-like, notam­ment des généra­tions opti­misées de ter­rain (dont la déco­ra­tion avec l’emplacement de la végé­ta­tion, des routes, habi­ta­tions, mines, ruines, etc), de végé­ta­tion (tel que le bran­chage d’un arbre) ou d’écosystème.
    Enfin dévelop­per des IA pour les créa­tures (PNJ, ani­maux, mon­stres).

    Il faudrait s’inspirer du réel en imposant des con­traintes esthé­tiques pour obtenir un décor styl­isé mais cohérent.
    Et avoir des PNJ qui exploitent leur envi­ron­nement ou qui soient capa­ble de réa­gir aux actes des joueurs, des ani­maux et plantes qui inter­agis­sent, etc, serait très intéres­sant.

    1. Généra­tion procé­du­rale d’environnement en se bas­ant sur l’étude de biotopes par une série de pho­tos, d’analyse d’objets dans ces pho­tos… nom­bre, dis­per­sion, prox­im­ité… le tout en deep learn­ing — oui, cela sem­ble pos­si­ble. Cela per­me­t­trait d’établir des règles au tra­vers d’un réseau de neu­rones. Une fois ce dernier entrainé, il devrait être pos­si­ble de l’exporter dans le jeu pour génér­er le paysage.
      Pour l’IA des PNJ… un peu plus com­plexe. Mais il faut y réfléchir en effet 😉

Laisser un commentaire

Fièrement propulsé par WordPress | Thème : Baskerville 2 par Anders Noren.

Retour en haut ↑

%d blogueurs aiment cette page :