Bonjour à toutes et à tous et bienvenue pour cette première séquence de fidèle pour cette nouvelle session 2022 2023 voilà qui va commencer aujourd'hui et qui se terminera en B et durant laquelle on va avoir l'occasion comme ça de découvrir un petit peu le Deep learning à travers une vingtaine de séquences voilà donc cette première séquence aujourd'hui sera dédiée à l'histoire le concept de base concept fondamentaux du Deep learning des réseaux neurones et on va voilà on va découvrir un petit peu ça tout au long de ces trois heures de cette de cette première séquence
alors tout d'abord je voudrais remercier toute l'équipe fidèle c'est moi que vous voyez aujourd'hui mais voilà on est nombreux on est une vingtaine à préparer travailler vous accompagner animer toute cette vingtaine de séquences à l'écran et puis un certain nombre D'entre nous sommes présents aujourd'hui pas tous cette présent à chaque fois mais qui répondront à vos questions et qui animeront les prochaines séquences tout au long de cette de cette de cette nouvelle saison voilà alors nos petites photos générées par une intelligence artificielle aurait pu résister au plaisir de jouer avec ces textes toutmage c'est nouveau
service qui sont apparus alors pour dresser des portraits D'ingénieurs en train de travailler devant un ordinateur ça marche assez bien alors c'est des ingénieurs en train de travailler devant un ordinateur et dessiner comme le l'aurait fait Léonard de Vinci et en couleur voilà c'est le typiquement la description textuelle qui est donnée à l'IA et qui nous a généré nos portraits comme ça après quand on lui demande de dessiner une baleine rouge à droite en bas ça se passe beaucoup moins bien quoi Voilà bon on verra un petit peu ce sera ça fera partie des choses
qu'on découvrira durant durant cette nouvelle saison voilà alors on n'est pas seul on est soutenu par par nos institutions c'est un projet important qui qui est porté donc par l'Institut d'intelligence artificielle de Grenoble le Miai et celui de Toulouse l'amitié aussi d'ailleurs dans le cadre de l'école française d'intelligence artificielle le projet efelia s'est porté également par Le CNRS par le biais de la mission positive transverse et interdisciplinaire la mythique du CNRS via les réseaux des vlogs les infos calculent assez mon laboratoire cimap et l'Université Grenoble voilà je pense avoir oublié personne oui et puis évidemment
bien évidemment le centre de calcul de du CNRS de citer le CNRS mais en particulier l'IDRIS dont une partie presque voilà l'essentiel je dirais même De cette équipe fidèle et qui nous soutient et qui nous accompagne et qui nous anime une grande grande partie de majorité de ces séquences d'aujourd'hui voilà merci encore collègue de l'IDRIS avant d'attaquer les choses sérieusement quelques petits quelques petits points alors on est on est en distanciel on aurait préféré être en présentiel mais c'est pas facile on est voilà on est nombreux et donc en mode distanciel qui permet comme ça
De d'être aussi nombreux et de pouvoir faire comme ça cette séquence au fil du temps alors c'est un long débat mais c'est l'occasion aussi c'est de pouvoir faire des séquences courtes danse très dense vous verrez mais relativement courte plutôt que de faire une semaine temps plein tout aussi dense voilà alors on fait de notre mieux c'est pas toujours évident donc excusez-nous s'il y a des petites imperfections aussi le Son des fois un peu coupé ou si on n'est pas très précis si tel ou tel point n'hésitez pas à nous faire à nous faire des retours
et on essaiera de de progresser de nous adapter et de faire au mieux et encore mieux voilà pour nos collègues doctorants et et puis tous ceux qui le souhaitent bien évidemment qui ne souhaitent besoin des attestations de présence seront disponibles on verra ça en cours de Séquence voilà on fera signer entre guillemets une petite feuille d'émargement numérique pour de manière à pouvoir récupérer vos attestations présentes alors que vous soyez sur Youtube ou que vous soyez sur la session zoom voilà donc ça c'est une nouvelle procédure qu'on a mis en place cette année qui on l'espère
ne marchera correctement voilà donc c'est un peu le baptême du feu encore une fois voilà on fera alors pas aujourd'hui mais On fera un petit sondage à un moment donné pour mieux vous connaître aussi et essayer comme ça d'adapter un petit peu nos contenus à vos attentes alors les objectifs de cette formation donc alors si vous avez assisté on va passer très rapidement dessus mais c'est important de revenir un petit peu dessus on a quatre objectifs importants donc on les a vu pendant la présentation de saison mais on peut revenir dessus parce que c'est assez
important c'est c'est Tout d'abord de vous proposer un panorama un premier contact avec le Deep learning donc l'apprentissage qui s'appuie sur les réseaux de neurones profond pour en comprendre les concepts les bases alors c'était au départ voilà faire un panorama un petit peu rapide de Deep learning et puis voilà au fil de des saisons à enrichi un petit peu les contenus et vous verrez ça va nous permettre d'aller dans des aspects assez pointus et de nous rapprocher on va dire De l'état de l'art nous rapprocher très près de l'état de la de ce qui se
fait le mieux dans le domaine du Deep learning voilà gradué un petit peu comme ça cette cette appréhension des réseaux de neurones profond l'objectif c'est aussi et tout aussi important de développer une première expérience sur ces sur ces outils autour de ces technologies alors que ce soit en termes de concept mais aussi en termes De quincaillerie en termes d'outils d'utilisation de librairies de pouvoir produire d'implémenter des solutions dans le monde réel voilà donc se développer une première expérience et sur des cas on va dire qu'il soit réellement significatif pas que des on va quitter un
petit peu on essaiera de quitter un petit peu les bac à sable pour nous coteaux côtoyer voilà nous confronter on va dire à des vrais problématiques avec des vraies données Un petit peu bruitées qui sont pas qui sont pas parfaites voilà c'est aussi l'occasion de pouvoir découvrir les ressources mutualisées les bonnes pratiques ça c'est très important on est sur des problématiques complexes des travaux pratiques que l'on va faire on va les faire avec des outils réels c'est les mêmes outils qu'on utilise que ce soit dans l'industrie ou dans nos laboratoires on est à l'échelle 1
il y a pas dessus les environnements que vous Avez utilisés vous avez installé pardon et que l'on va utiliser son pas simple à installer vous avez pu le voir mais ce sont les vrais environnements on n'est pas voilà c'est si on n'est pas on est dans le monde réel avec les vrais outils qu'on utilise partout dans les vrais centres de calcul et aussi voilà et donc des objectifs aussi ce sera découvrir un petit peu c'est d'une part ces outils mais aussi les environnements dans lesquels on peut faire du machine Learning dans lequel on peut mettre
en œuvre ces algorithmes c'est ces outils voilà maintenant en termes de ressources mutualisées de centre de calcul qui sont qui sont absolument pas réservés au monde académique c'est indisponible y compris pour les entreprises privées voilà c'est pour tout le monde voilà et puis dernier point et non des moindres c'est aussi l'occasion des objectifs aussi c'est de pouvoir échanger de pouvoir partager entre nous et que vous Puissiez partager entre vous toutes l'expérience les difficultés les solutions que vous trouvez dans vos différents projets que ce qui puisse y avoir aussi un petit peu d'un petit peu d'échange
donc on aura une séquence exprès de dédié on va dire à la présentation de de vos projets mais voilà il faut n'hésitez pas à utiliser des chats ou à nous contacter si voilà si vous avez envie de partager quelque chose on s'est retrouvé les Dispositifs qui vont bien et de manière à favoriser ces échanges voilà vous pouvez tout récupérer vous pouvez récupérer tous les contenus de cette de cette présentation enfin de ces présentations de toutes les séquences alors que soit les supports de cours en PDF que ce soit évidemment l'environnement de travaux pratiques alors de
travaux pratiques mais c'est un environnement de travail encore une fois un véritable Environnement de travail avec lequel on travaille tous qui travaillons dans ce domaine là vous travaillerez aussi alors que soit en sorte l'opéra ou pas torche mais c'est exactement le même environnement que l'on retrouve partout voilà donc ça vous pouvez tout retrouver commencer à installer tout ce que penser à installer vos environnements à partir des procédures qui ne vous proposons et puis vous pouvez retrouver évidemment alors Dans cet environnement vous récupérez les datacées vous récupérez une notebook et vous récupérez tout l'environnement Python et
puis vous pouvez les récupérer bien évidemment toutes les vidéos de cette de ces présentations de différentes séquences sur notre site sur notre chaîne YouTube voilà alors 3 pour finir 1 3 presque fini trois liens importants bon déjà le lien du site fidèle fidèle.snrs.fr sur lequel vous pouvez tout récupérer récupérer Toutes toutes les informations utiles pratiques les liens vers les datas enfin vers les environnements les dates et rendez-vous les paramètres zoom etc etc etc donc fidèles.fr et la liste d'informations laquelle vous pouvez vous abonner liste info enfin sur le fidèle point c'est l'info vous avez le
lien sur le site fiddle pour bien être sûr de récupérer toutes les informations pratiques voilà deux autres listes extrêmement utiles et importantes la Liste les listes des réseaux transverses technologique transverse des vlogs et du groupe calcul des vlogs regroupe tous les développeurs du monde académique alors développeurs que sont pour faire des sites web pour faire du calcul scientifique donc du monde académique vous avez l'URL de cette de cette liste thématique transverse technologique transverse pardon et puis vous avez le groupe calcul aussi qui regroupe toutes les ceux qui font du calcul du calcul Intensif du petit
gros calcul dans notre monde académique voilà vous pouvez vous abonner à ces à ces trois listes en fait mais notamment ces deux dernières listes de manière à pouvoir échanger librement alors la liste info donc ce type de newsletter on pouvait pas contribuer dedans par contre les listes des vlogs et la liste calculs sont des listes qui sont ouvertes c'est-à-dire qu'à partir du moment où vous êtes abonnés à cette liste vous Pouvez librement poser vos questions échanger et dialoguer avec tous les membres de la communauté donc du développement du côté de développe et du calcul du
côté de calcul voilà ces deux réseaux sont parmi nos sponsors nous accompagnons nous aident et on s'appuie entièrement dessus pour monter faire vivre cette formation voilà pour toutes vos questions nous vous proposons alors puisque en fait on est partagé entre zoom et puis et puis YouTube on est pratiquement aussi nombreux d'un côté comme de l'autre donc il y a une boîte à questions qui existent dans zoom et pas dans YouTube donc nous vous propose un outil voilà qui s'appelle le q2a qui permet de poser de gérer les questions donc voilà propose alors pour les discussions
utiliser les chats qui sont très bien tout à fait disponibles pour ça mais tout à fait adapté pour ça par contre pour pour les questions vous Propose voilà d'utiliser d'utiliser cette URL et ce service voilà quelqu'un merci Léo de remettre l'URL sur du côté de zoom si quelqu'un peut les remettre l'URL du côté de YouTube ce sera parfait voilà ok bon ça c'est une image animée mais dans un PDF ça s'anime pas donc imaginez ce qui peut se passer qu'avec les petites boîtes mais on va essayer de passer voilà quelque chose de plus Rigolo et
de notre contenu de notre sujet voilà alors je disais qu'il y avait une vingtaine de séquences qui sont prévus on va pas toutes les passer en vue on va s'intéresser à notre première notre première étape sur les concepts fondamentaux avec deux cas pratiques deux premières mises en œuvre fondamentales qui sont qui sont de la régression de régression classique prévoit prédire une valeur prédire un résultat et puis le cas de la Classification de chercher à casser en l'occurrence des petites images voilà donc vous pouvez retrouver la totalité de ce programme et de sa description sur sur
notre site fidèle-s.fr pour en avoir tous les détails voilà alors première séquence histoire et les concepts basiques et concepts fondamentaux pardon traduction en temps réel et pas toujours évidente de de notre histoire de notre deep learning alors la première question que l'on Pourrait se poser c'est quel est l'intérêt de l'intelligence artificielle alors que bon voilà l'intelligence alors l'intelligence entre guillemets avec un gros point d'interrogation vous la définir et quelque chose qui marche très bien dans le vivant alors l'ensemble du règne du vivant on peut parler d'intelligence végétale ou animale etc et dans le cas de
du vivant animal comment animal tel que nous le mammifères par exemple Comment fonctionne un aéros d'artificiel comment peut-on mettre en œuvre cette ces processus intelligents il processus cognitif et puis comment on a réussi comment se sont imposés finalement ces neurones artificiel voilà c'est ce qui va nous intéresser dans un dans cette première étape et on va s'intéresser à ça sous deux aspects donc on va on va regarder bon après une petite introduction rapide et on va regarder un petit peu comment on Est arrivé on artificiel par le biais par le chemin des mathématiques à travers
la régression linéaire notre bonne vie de régression linéaire comme on est arrivé au 1er neurone et puis on verra aussi sur un plan d'avantage historique alors je dirais pas philosophique mais en tout cas sur le plan davantage intellectuel que strictement mathématiques comment ces fameux neurones commencent cette approche d'apprentissage machine par des Réseaux de neurones a fini par s'imposer sur ces sur nos 50 60 dernières années voilà ça c'est ça c'est pas passé tout seul mais on verra comment ça s'est passé et puis donc voilà donc ça ce sera la première partie et puis la deuxième
partie enfin la première partie ou deux et et puis deuxième chose importante ce sera de mettre en pratique de faire fonctionner pour de vrai des raisons neurones et d'implémenter nos deux Premiers modèles nos deux premiers réseaux de neurones avec le cas d'une régression et puis le cas d'une spécification voilà notre plan de vol aujourd'hui que l'on va que l'on va avoir maintenant alors introduction on va dire basique dans l'histoire des sciences on a eu trois grandes étapes que l'on peut identifier trois grandes étapes donc ça Ça a été théorisé par Jim Grey en 2007 qui
a eu l'intelligence de décomposer un petit peu de cette manière là c'est l'évolution on va dire de la méthode scientifique la première phase ça a été un petit peu de faire de la science expérimentale donc là on essaie de construire quelque chose on faisait une expérience regardez comment ça se passait et puis si ça marchait ben on capitalisait ça marchait pas on a essayé une autre voix et essayer globalement ça Se passait très bien puisque c'est comme ça qu'on a réussi à construire les maisons des cathédrales donc des choses très complexes sur des périodes très
grandes et qui ont tenu si on prend une cathédrale qui tient debout depuis 800 ans on a quand même quelque chose qui marche bien une approche qui est quand même très efficace et qui a fait ses preuves voilà je suis pas sûr que toutes nos constructions en béton aujourd'hui avec Toute l'intelligence et toutes les ressources dont on dispose aujourd'hui il réussissent à durer 800 000 ans comme ça mais en tout cas cette première approche expérimentale a fait ses preuves mais à atteint aussi atteint aussi ses limites c'est-à-dire qu'à un moment donné on a on peut
pas se permettre d'essayer de construire quelque chose comme le Tour Eiffel et de voir si jamais si ça tient vraiment donc là c'est on a eu une deuxième phase qui Consiste à avoir une approche théorique c'est-à-dire qu'on a un modèle mathématique des équations alors on a une tonne on a toutes les boîtes de mécanique etc magnétisme et l'autre qui comme ça à partir d'une modélisation en mathématique permet d'imaginer ce que ça va faire ce que l'on va construire avant de de le construire alors réellement d'expliquer un petit peu ce qui se passe quand on a
une difficulté pour en trouver la manière de contourner le Problème auquel on est confronté voilà alors ça cette deuxième approche était très efficace à partir du moment où les mathématiques ou la physique ce sont développées mais ça nous a permis comme ça de construire effectivement des bâtiments beaucoup plus grands comme la Tour Eiffel que je citer ou des voitures des automobiles des avions et les choses comme ça voilà donc on avait une modélisation et puis ça permettait comme ça de comprendre un petit peu ce que Vous faisiez après avec l'émergence de développement de l'informatique développement
de la puissance de calcul dont on dispose enfin qui est apparu à partir des années 50 après guerre en utilisant la puissance de calcul d'un côté et puis ces modèles mathématiques on avait pu construire à partir des équations on a pu comme ça faire des calculs de plus en plus complexes modéliser des phénomènes de Plus en plus complexes de plus en plus importants d'une manière de plus en plus précise et aller encore plus loin plus haut plus vite et construire plus grand voilà donc ça c'est vraiment le monde dans lequel on est encore aujourd'hui cette
approche comme ça cherche la traduction en français de sciences computationnelles on va dire avec individuel anglicisme et quelque chose qui marche très bien mais ce que Jim Grey nous a proposé enfin nous a Montré nous a théorisé en fait c'est que ben voilà on rentre dans une nouvelle ère dans une nouvelle approche complémentaire qui est ce fameux quatrième paradigme qui qui l'a proposé en 2007 pour dire bon ok c'est très bien tout ça ok on peut faire de l'expérimental on peut faire de la modélisation des faits du calcul ça mais tout ça ça nous apporte
des données en fait et puis uniquement à partir de ces fameuses données en regardant simplement Les données on va pouvoir faire de la science on va pouvoir comprendre un petit peu comment fonctionne comment se passe les des choses dessous quoi voilà alors on va pas forcément comprendre le modèle physique mais par l'observation quelque part l'observation à partir des données on va pouvoir faire de la science et développer des comportements des modèles qui vont nous permettre de comprendre comment un phénomène se passe comment phénomène va se comporter etc Alors ces données on peut les prendre de
partout elles peuvent être expérimentales peuvent être du domaine d'observation pure mais elles peuvent être aussi fabriquées c'est-à-dire qu'on peut avoir un modèle physique classique avec des équations de l'informatique de la puissance de calcul du HPC pour nous fabriquer des données et puis ces données qui ont été fabriquées qui ont été calculés on va s'en servir pour faire de la science par les données et Comme ça essayer d'extraire la substantifique moelle de manière peut-être plus efficient en termes de puissance de calcul que par de la modélisation voilà donc c'est la voilà ce quatrième parking et celui
dans lequel on va se poser de tout au long de ce site autour du alors si on prend l'intelligence artificielle c'est quelque chose qui est très vaste il y a plein de manières de faire d'intelligence artificielle et une Manière qui est très efficace c'est par l'apprentissage donc [Musique] comme ce qu'on fait quotidiennement ce qu'on est précisément en train de faire tous en ce moment mais ce domaine de l'apprentissage de l'intelligence artificielle par l'apprentissage machine et quelque chose qui est extrêmement efficace et c'est aussi quelque chose qui est très vaste et à l'intérieur de cette apprentissage
machine de cet Apprentissage par la avec automatisé on a un sous domaine qui s'appelle le Deep learn voilà donc le Deep learning en fait et un sous-ensemble du machine learning c'est un sous-ensemble de l'intelligence artificielle donc quand on fait du Deep learning on fait de l'apprentissage machine à partir de réseau de neurones et c'est une voilà une partie de l'intelligence artificielle alors ça c'est pour bien positionner les mots Après en termes de concept de grande famille d'apprentissage machine toujours d'apprentissage ne s'est pas spécifique au réseau de neurones on va on va voilà on va parler
d'apprentissage supervisé de noms supervisés de renforcer l'apprentissage par renforcement d'apprentissage par transfert ça c'est un schéma qu'on retrouve très classiquement qui est important de voir parce que c'est voilà ça permet comme ça de resituer un petit Peu les approches et les problématiques et les grandes familles d'algorithmes quand on regarde l'apprentissage supervisé c'est que l'on va apprendre par des exemples connus à noter alors on va prendre un exemple si on prend par exemple une classification des bêtes des chats d'un côté des lapins de l'autre mais on va prendre un Data 7 un ensemble d'images des images
de chats on sait que bah ça c'est un chat ça c'est un chat ça c'est un chat des Images de lapin on sait que si l'image correspondent à des lapins donc on va faire notre apprentissage à partir de ces de ces données de ces informations supervisées donc à noter et puis quand on va présenter une photo une image d'une bête qui pour le coup de pas à noter qu'on n'a jamais vu et ben le système le modèle va essayer de déterminer s'il s'agit d'un chat ou s'il s'agit d'un chien voilà donc on parle de supervision
parce qu'on connaît on parle D'un Data 7 on parle d'une base d'exemple qui ont été un outil qui sont connus alors on peut faire la même chose sur nos régression là on va prendre par exemple des maisons avec un prix et puis des caractéristiques du quartier dans lequel c'est ces maisons sont situées donc le taux de criminalité la richesse le taux de pollution etc donc on a des informations contextuelles de ces maisons un prix donc on a des aiguilles d'une base de données connues Comme ça avec toutes ces informations là et on va faire notre
apprentissage avec ces informations connues donc typiquement le travail de l'expert immobilier qui connaît des quartiers qui connaît les maisons qui connaît des exemples connus avec toutes les caractéristiques dont le prix et puis ensuite quand on va donner une maison enfin les caractéristiques d'une maison en disant voilà on a une maison fait-elle surface présenter le quartier Il y a quelques criminalité etc etc ce sont la localisés précisément puisque ça on va essayer de déterminer le prix de cette mise voilà donc ça c'est ce qu'on appelle une prédiction une prédiction quantitative d'une information régression et ça ça
se fait comme ça avec des données supervisées puisque on connaît on a des données de départ des exemples de départ qui sont complètement connus voilà par en position à ça donc ça opposition de cette apprentissage Supervisé on a un apprentissage non dit non supervisé voilà alors l'apprentissage si je veux pas dans le bon sens ça va pas aller l'apprentissage non super idée c'est qu'on a pas d'informations concernant ces données alors si on prend l'exemple suivant qui est un exemple ce qu'on appelle le postering donc on va essayer comme ça on a des données de départ
on a des informations et on va essayer de trouver des informations on va essayer de tasser Ces informations sans avoir aucune autre information que l'information elle-même on n'a pas d'annotation donc on a des photos d'animaux et puis on va essayer de les regrouper par caractéristiques commun alors ces caractéristiques communes c'est notre intelligence artificielle qui va aller déterminer et elle va déterminer effectivement des caractéristiques communes entre certains groupes de constitués certains groupes comme ça de ces données en entrée voilà Alors des fois c'est très évident des fois le résultat est moins évident il y aura des
tas de caractéristiques communes mais on n'a pas forcément de garanti que ces caractéristiques communes nous parlent beaucoup voilà c'est donc là on a des photos d'animaux nos petits lapins et nos petits chats donc on pourrait imaginer des tas de caractéristiques communes qui permettent de les séparer mais notre intelligence artificielle va être capable de les Séparer sur des critères qui nous seront peut-être pas si évidents que ça voilà donc ça le clustering c'est quelque chose de très important c'est une fonction essentielle dans la mesure où on traitement beaucoup beaucoup de données mais à noter ces données
quelque chose qui peut être très coûteux donc pouvoir avoir extraire de l'intelligence un ensemble de données sans que l'on ait besoin des annoter manuellement et quelque chose qui peut Vraiment être enfin qui est essentiel alors à côté de ça on a tout ce qui apprentissage par renforcement donc là ça c'est l'apprentissage des comportements typiquement un petit robot un petit robot qui se promène dans son environnement qui va interagir avec son environnement et qui va essayer d'adapter son comportement sa stratégie de déplacement par exemple dans son environnement fait ça fait Partie tout ça de l'apprentissage par
renforcement alors c'est pas forcément que des petits rouleaux avec des roulettes mais c'est voilà c'est c'est tout ce qui est on va dire auto-adaptatif dans des environnements avec un système de de récompense donc ça ça c'est un échange aussi très très important et puis enfin évidemment tout en bas le transfert l'apprentissage par par transfert donc là tout simplement ça tout simplement entre guillemets ça Consiste à apprendre par exemple à reconnaître des lapins et des chats et puis ensuite donc on a un modèle on a une intelligence artificielle qui a pris à reconnaître des lapins et
des chats qui est d'une très bon pour reconnaître des lapins et des chats et on va essayer comme ça de par extension de lui proposer de lui apprendre par exemple complémentaire à reconnaître par exemple des éléphants voilà alors c'est beaucoup plus simple de partir de quelqu’un qui Sait reconnaître quelqu'un quelque chose qui sait reconnaître des lapins et des chats distinguer des lapins et des chats c'est voilà une intelligence qui est capable de faire cette distinction là pour apprendre très rapidement à distinguer des éléphants des girafes par exemple plutôt que de repartir de zéro donc ça
c'est un peu appelé l'apprentissage par transfert un complément d'une stratégie par complément d'apprentissage Voilà bon c'est un petit peu long mais ce panorama est important parce que ça permet de situer un petit peu les algorithmes et ces algorithmes il y en a plein plein alors là il y a pas que des raisons de neurones vous en avez une liste qui sont affichées ici vous avez une quantité énorme d'algorithmes qui sont disponibles qui fonctionnent tous très bien dans leur périmètre dans leur contexte donné dans leur cas d'usage dans le périnée dans le cas d'usage et L'intelligence
artificielle qui s'appuie sur l'apprentissage machine rayon réseau neurones profond donc le Deep learning dont on va vous parler tout au long de ce cycle va être présent à peu près dans tous ces domaines c'est-à-dire qu'avec les réseaux de profond on va pouvoir s'attaquer un petit peu à toutes ces toutes ces familles de problématiques ce qui ne veut pas dire que les autres ne marchent pas ne sont pas intéressantes c'est pas ça du tout que je veux dire Voilà mais voilà un petit peu la cartographie générale alors d'un point de vue quincaillerie d'un point de vue
quincaillerie on va s'intéresser à deux grands environnements le premier Queyras ton sort flow Orton sur flow c'est la couche basse qui est race et la couche haute que l'on utilisera que l'on utilise nous et que tout le monde utilise aujourd'hui que ce côté-ci c'est une librairie une Interface de de haut niveau très simple très synthétique très efficace donc kérast en sort Flo alors qu'il reste le slogan c'est deep learning for humans parce qu'effectivement ton surflo c'est c'est un truc voilà c'est un petit peu austère à utiliser je dis ça c'est vraiment de la langue de
bois donc aujourd'hui voilà on va utiliser keras qui librairie de haut niveau qui est assez assez user friendly à utiliser alors qui reste en sort flow sont très Utilisés notamment dans le monde de l'industrie très utilisé dès lors on a besoin de d'utiliser des de l'intelligence artificielle donc après il y a une deuxième famille d'un deuxième environnement extrêmement présent tout aussi présent qui s'appelle by torche qui est davantage utilisé dans les laboratoires de mathématiques impliquées dans la recherche en intelligence artificielle ou quand on va commencer à utiliser des modèles très Complexes la paille torche sera
sans doute plus adapté parce qu'il est un usage un petit peu plus bas niveau voilà c'est un petit peu ça gratte un petit peu plus que lorsque l'on va l'utiliser pour faire des choses simples et quand on va faire des choses compliquées bah on aura tendance à utiliser peut-être davantage voilà donc le premier est supporté développé proposé en open source librement etc par le monde de Google et puis le deuxième par le nom de Facebook évidemment ces deux environnements là qui restent en sorte s'appuie sur le sur le monde puisant enfin sont accessibles dans un
environnement python alors c'est en général un cocktail avec Python n'aime pas et des notes Jupiter il constitue les environnements que l'on va utiliser tout au long de ceci donc on aura des notes boucs et des exemples et des séquences qui s'appuieront sur ne pas être et puis les séquences qui S'appuyant sur le terrasse danseurs voilà ça correspond un petit peu au monde dans lequel on est aujourd'hui et vous verrez bon là c'est très très accessible aussi j'ai un petit peu mais voilà on s'en sort très bien et ça marche très bien aujourd'hui voilà alors on
est dans des environnements qui sont très complexes vous avez vu que installer ces environnements n'étaient pas forcément très très simples on est dans des on Utilise un très grand nombre de librairies c'est à dire que si on prend l'environnement que l'on vous propose alors on va trouver du panda du ce qui émet du temps sur terrasse n'aime pas et puis etc etc donc on a si voilà on est dans des environnements qui sont assez complexes si on veut monter dans les tours et puis faire pas mal de calcul on va avoir besoin de GPU de
beaucoup de GPU de beaucoup beaucoup de GPU très Rapidement et là c'est compliqué voilà là c'est compliqué d'installer ces machines là donc là il y a pas 36 solutions alors ben on va faire une petite question en passant comme ça est-ce que vous avez eu la curiosité de regarder le nombre de fichiers qui constituent l'environnement fidèle on l'environnement fidèle encore une fois c'est pas il a rien de spécifique finale il y a peut-être il y a trois modules spécifiques à fidèle Mais un environnement de type deep learning tels que celui que l'on va utiliser à
travers ce site donc en gros les terrasse ensorflop paye torche et puis tout est librairies dessous de ne pas y a autre est-ce que vous avez une idée du nombre de fichiers qui constitue cet environnement et on va regarder dans le chat qui est-ce qui peut mettre un chiffre comme ça grosse maille grosse maille voilà 35000 35000 fichiers voilà c'est ça on est sur plusieurs dizaines De milliers de fichiers et plus que ça en fait moi j'ai regardé je crois que je suis à 40 000 fichiers à peu près voilà on est dans les plusieurs
dizaines de milliers de fichiers alors hors data 7 voilà hors data 7 puisque si on compte les Data 7 là il y a une centaine de milliers d'images mais on est quelque chose de très très complexe on est dans des environnements très complexes voilà nous une complexité importante l'intérêt de pouvoir utiliser justement des Solutions de type dockers qui permet de packager comme ça tout l'environnement à travers un groupe container donc là merci à Soraya je sais pas si Soraya est là permet juste une petite regarder comme ça si parce que j'ai oublié de monter sur
scène non je sais pas si elle est là c'est pas en tout cas merci à Soraya de nous avoir développé construit et de nous maintenir ce container qui simplifie vraiment en grandement L'installation et la gestion de ces environnements et puis ensuite c'est pareil sur la partie voilà 80 000 fichiers vous avez compté une fois j'en avais peut-être deux voilà on s'en fiche le nombre exact mais du coup quand on va vouloir utiliser en production pour faire du calcul dans nos laboratoires dans nos entreprises ce genre de utiliser ce genre d'environnement on va avoir intérêt vraiment
un intérêt très important de partir sur du sur des Ressources mutualisées voilà donc là on a des centres de calcul régionaux on appelle des mésocentres et puis on a des centres nationaux tels que l'idriss ou le silice ou le celui du CEA et alors ces centres de calcul qui soit régionaux qui soit nationaux sont librement enfin librement accessibles sur le projet accessible que l'on soit du monde académique ou du monde privé donc voilà n'hésitez pas à vous rapprocher de ces de ces structures là si vous avez des Besoins des besoins en ressources de calcul important
n'essayez pas d'installer votre propre centre de calcul prendre une machine à remplir de carte GPU pour essayer d'avoir sa puissance de calcul sur son bureau d'un point de vue environnemental c'est un véritable désastre parce que vous allez fabriquer un radiateur électrique tout au plus et puis de toute façon serait rapidement limité aussi parce que encore une fois on peut pas concurrencer des Machines comme Janzé avec ces 3000 cartes GPU voilà ok tout ça c'est un petit peu des éléments de contexte alors c'est un peu voilà c'est un peu verbeux mais c'est important d'avoir un petit
peu tous ces repères et on reviendra dessus progressivement un petit peu tout le temps voilà intéressant alors je sais pas s'il y a quelques questions auxquelles on peut répondre en direct oralement je sais pas n'hésitez pas à Prendre la parole les collègues si il a besoin sinon on va aller s'intéresser à notre première approche des non-rés de neurones à travers la voix mathématique alors on va faire des mathématiques relativement simple la première question la première chose que l'on va voir c'est quand on a un phénomène voilà donc un phénomène avec qui qui se déroule avec
une réponse Et on voit qu'on a quelque chose qui est globalement à peu près linéaire on voit on a un nuage de points donc ça à chaque point c'est nous donner et on voit qu'on a une distribution qui est qui est globalement qui est globalement linéaire si on regarde comme ça on voit qu'on a quelque chose comme ça qui suit alors je suis pas tout à fait dedans mais voilà je suis pas tout à fait correctement on traitait pas très bon et on voit qu'on a comme ça si j'arrive C'est un truc qui marche plus
ça commence voilà si on se promène un petit peu comme ça voilà si on regarde un petit peu la distribution de notre nuage de points on voit qu'on a quelque chose qui est globalement linéaire avec du bruit autour et là on va on a une fonction question comment essayer de représenter de modéliser ça donc la manière de faire ça ça va être d'utiliser une courbe de type y = x + B et d'essayer de trouver Le positionnement de cette courbe la position idéale de cette coupe à travers d'autres nuages de points de manière à ce
que ça représente au mieux notre phénomène alors quand on dit représenter positionner au mieux notre courbe notre droite pardon était une courbe mais comment positionner au mieux notre droite à l'intérieur de ce village de points ça veut dire que on va calculer la distance entre notre droite et puis chacun de ces points donc c'est le Sigma De toutes les petites distances que l'on a en jaune pour chacun des points et puis on va essayer de minimiser comme ça de minimiser cette somme de cette distance la somme de ces distances la somme de la distance de
nos points à notre à notre droite alors pour faire ça on va prendre une fonction une fonction d'erreur qui on a par exemple l'erreur quadratique moyenne ou la version simple qui est la moyenne du Carré des erreurs Donc c'est ce que vous avez voilà les deux expressions que l'on a ici RMSE et on va essayer de minimiser comme ça à cette cette distance voilà alors notez bien qu'il existe une solution une solution directe la solution directe des calculs elle marche très bien c'est vous avez le détail le détachapeau ici qui peut donc ils sont les
paramètres A et B de notre droite Se détache à Pau peut être calculé donc là c'est l'expression matricielle de la solution directe qui marche très très bien il a en une fois en une fraction en un seul calcul vous avez comme ça les paramètres de on peut calculer les paramètres de notre droite simplement il y a un gros défaut c'est que c'est la complexité va en N au cube et donc quand on a quelques dizaines quelques centaines de points ça se passe très bien mais quand on a quelques millions De points quelques dizaines ou centaines
de millions de points évidemment ça se passe pas bien du tout voilà donc la solution directe on oublie puisque encore une fois dans le Big Data il y a quand même le mot big qui est important voilà donc sous Excel ça se passe bien mais quand on est dans le contexte bi de ça marche plus alors comment on va essayer de faire ça on va faire ça avec une manière assez astucieuse qui est ce qu'on appelle la Descente de granions c'est-à-dire que quand on reprend notre ici on a notre fonction de notre distance qui est
l'expression de la distance des points par rapport à notre droite et on va essayer de minimiser cette distance c'est-à-dire que on va prendre notre droite en rouge et puis on va essayer de la caler comme ça on va essayer de la bouger à l'intérieur de notre nuage de points et quand on va être très loin de la position idéale on va avoir des Distances la somme des distances qui m'est assez élevée donc on a ici comme ça notre fonction ce qu'on appelle une fonction LOSC qui nous transistance en fait la somme de nos distances donc
on a une valeur qui est assez élevée on a un paramètre d'État qui est optimal et puis quand on va essayer de se caler comme ça on va essayer de tourner un petit peu notre droite pour se rapprocher de la position idéale on va se rapprocher progressivement du Minimum possible de cette de cette de cette fonction de perte de cette de cette fonction là alors on est un minimum c'est à dire que quand on va retourner notre droite on va caler notre droite à un moment donné on l'a tourné la bouger un moment donné elle
va être à la distance minimale que l'on peut avoir à l'intérieur de notre nuage de points sera pas forcément 0 puisque les points sont alignés et puis quand on va continuer à essayer de la Décaler ben on pourra faire que moins bien voilà donc on va comme ça en essayant de caler notre notre droite on va descendre sur cette fonction de cette fonction de perte cette fonction de distance et puis on va essayer de trouver la position idéale le meilleur endroit possible voilà alors c'est cette fameuse fonction de perte encore une fois on prend plein
on prend l'usuellement effectivement l'erreur qu'on a pratiquement la moyenne des Carrés des erreurs voilà alors ça cette fameuse façon de caler il y a kakalé la droite aussi des valeurs au pif puis essayer de trouver la meilleure valeur mais on va essayer de faire ça de manière astucieuse et pour faire ça comme on a en fait notre fameuse fonction de perte de fonction de perte on a en fonction de nos paramètres état des paramètres de droite on a une fonction qui a une espèce de forme de Cloche inversée comme c'est une forme de cloche comme
ça avec un minimum et ben on va suivre le gradient on va essayer de suivre la pente de notre fonction de pair alors la pente c'est quoi c'est que c'est la variation de notre fonction de perte par rapport à la variation de nos paramètres d'état donc et puis un gradient donc ce fameux del Talos sur Delta donc une variation de la fonction de perte la variation de cette erreur par rapport à la variation Par la variation des paramètres de notre droite en fait c'est jamais que je rappelle une dérivée donc c'est quelque chose qu'on sait
calculer voilà donc on va se mettre à un endroit donné une position donnée on va calculer comme ça notre notre gradient par rapport à notre donc à notre variation perte par rapport à notre variation de de nos paramètres on a un gradient et puis on va suivre ce gradient c'est à dire qu'on va appliquer une portion de cette de cette de ce Gradient à nos paramètres d'état de manière à descendre à suivre la pente de notre fonction de perte voilà et donc de manière itérative comme ça on va descendre sur cette courbe pour essayer de
trouver le minimum le minimum qui correspond à la position idéale de notre droite à l'intérieur de notre nuage de points voilà donc ça c'est ce fameux principe de descente de gradients qui ont su dans la suivre la pente de l'erreur on suit la Pente de l'erreur de manière à minimiser cette erreur on peut dire ça exactement comme ça c'est quelque chose qui se fait très bien l'art et la manière de sur une pente dans une descente c'est comme en montagne on peut soit faire des grands pas donc on va de plus en plus vite et
puis on va arriver en bas le but du jeu c'est de s'arrêter en bas donc de pas si on fait des pas réguliers bah on va faire des pas comme ça et puis On risque de passer de l'autre côté puis de rebondir de chaque côté de notre minimum donc voilà il y a un petit peu d'astuce qui consiste à descendre et puis quand la pente va s'adoucir de ralentir de manière à pouvoir arriver tout doucement et proprement sur notre voilà donc ça c'est l'art et la manière comme ça de faire de gérer cette descente de
gradiance s'appelle l'optimisation la fonction d'optimisation la manière d'optimiser Comme ça la descente de notre gratin voilà alors c'est un petit peu conceptuel un petit peu mathématiques mais très très intuitif finalement c'est à dire que pour placer notre courbe pour résumer aussi notre cours à l'intérieur de notre nuage de points ce que l'on va faire c'est qu'on va calculer l'erreur l'erreur de positionnement de notre droite par rapport à notre nuage de points donc on a une fonction d'erreur Comme ça et puis ensuite on va essayer de minimiser cette erreur en suivant la pente de cette courbe
d'erreur de manière à trouver la position d'équilibre tout en bas voilà alors ça ça s'implémente très très bien la réalisation linéaire ça se fait très très bien et vous trouverez comme ça un des notes book donc c'est notre boucle grade 1 on verra tout à l'heure où on a comme ça ce Processus itératif qui s'enclarant donc on a une autre droite qui part à l'horizontale ici et puis on a une première itération tac un premier pas et puis un deuxième pas puis un troisième pas et on voit comme ça que notre cour progressivement va venir
se caler dans la bonne au bon endroit dans notre dans notre nuage de points en utilisant cette une fonction MSE donc la moyenne du Carré des erreurs voilà alors une chose très importante C'est que quand on a un phénomène comme ça avec un nuage de points un ensemble d'observations on va appeler ça maintenant les observations utilisées le bon vocabulaire du machine learning quand on a une un ensemble d'observations comme ça on va essayer comme ça d'avoir un modèle donc un modèle pas si vous fonction qui pour une valeur donnée nous renvoie un résultat qui mime
notre distribution de nos observations donc là on voit qu'on a un Nuage de points ici avec une un modèle ici qui nous renvoie un résultat qui nous propose une courbe un modèle une distribution qui relativement sympathique mais on peut avoir si on a quelque chose de trop simple c'est à dire que le modèle est pas suffisamment subtil voilà on a un modèle donc là c'est une fonction linéaire une fonction polinéaire voilà donc avec à zéro plus un X plus a2x2 etc donc là on a une régression polynomiale pardon donc là on A un degré de
cette un nombre de degrés qui est satisfaisant puisqu'on a quelque chose on voit ici que notre agression polynamienne donne un résultat qui est plus sympathique ici par contre on a pas suffisamment de degrés donc on a quelque chose on a une droite et pour représenter cette distribution ici on voit que c'est on a un résultat il y a pas de souci mais on a un résultat qui est intellectuellement pas satisfaisant parce que on voit vraiment on voit bien Que c'est pas terrible quoi ça file pas très bien et puis à l'opposé à droite donc là
toujours avec une régression polynomiale avec trop de degrés donc je sais pas on avait dû mettre une dizaine de degrés peut-être ben on a quelque chose qui va essayer de passer par tous les points la fonction de perte elle sera meilleure la fonction perte ici de cette de cette implémentation là et meilleure que ici donc sur les le papier on aura L'impression que ça ça marche mieux mais quand on regarde ce qui se passe c'est qu'on a quelque chose on a un modèle ici qui essaie de passer par tous les points donc il a un
meilleur il admire note il y a un meilleur résultat mais d'un point de vue intellectuel d'un point de vue physique ça veut pas dire grand c'est pas très satisfaisant voilà donc là on a deux cas de figure qui sont fondamentaux dans l'apprentissage machine on a le sous-apprentissage ici donc là on n'a Pas assez d'intelligence pour représenter le phénomène et puis ici le sur-apprentissage où là on a peut-être trop d'intelligence on essaie de passer par tous les points on cherche à midi à 14h on cherche on cherche trop de détails on a un modèle qui est
trop trop de degré de liberté au propre comme au figuré et avec un résultat qui meilleur sur le papier mais qui d'un point de vue intellectuel d'un point global d'un Point de vue absolu et nettement moins bon voilà donc ça c'est le sous-apprentissage de sur apprentissage ça c'est des choses avec lesquelles on va jouer en permanence Dieu durant durant les 20 séquences de cette de ce site voilà alors ça c'est la régression linéaire c'est le cas simple le cas un petit peu plus un petit peu plus complexe mais qui est très intéressant c'est la régression
Logistique donc là la régression logistique le l'objectif ça va être donc là dans cet exemple on a des données des observations pardon des observations donc ce sont des étudiants qui ont travaillé alors c'est totalement c'est totalement imaginaire bien sûr voilà toute ressemblance avec des personnes existantes clientes existaient ne serait que purement fortuite etc etc mais voilà imaginons qu'on a des un groupe de Personnes on va dire postigmatiser nos collègues étudiants un groupe de personnes qui vont travailler pour un examen et d'un côté on a le nombre d'heures de sommeil l'autre côté le nombre d'heures de
sommeil verticalement pardon le nombre d'heures de travail en abscisse et puis le résultat voilà donc le résultat ça c'est pas bien passé en rouge et puis le résultat ça s'est bien passé en vert donc sans surprise quand on n'a pas beaucoup dormi et pas Beaucoup travaillé ça se passe pas très bien puis quand on a beaucoup travaillé beaucoup dormi et ça se passe mieux voilà description entre les deux bah entre les deux c'est pas bien enfin entre les deux voilà OK et donc le but du jeu c'est qu'on a un certain nombre de d'observations et
puis on a donc pour les observations connues on est dans le cas d'un apprentissage supervisé donc on a un certain nombre de cas donc on connaît le résultat le Nombre de semaines de travail et puis le résultat et puis on va donc faire un apprentissage à partir de ces espaces de cette de ces de ces observations connues et puis on va essayer comme ça pour des données que l'on va avoir ensuite de deviner est-ce que en ayant dormi autant tendeur on est en travaillant est-ce que on a une chance que comment ça va se passer
est-ce que le ce sera un bon résultat bon ou pas bon à l'examen voilà donc si on a un point ici c'est facile Si on a un point ici c'est facile si on a un point par là mais c'est pas évident but du jeu c'est d'essayer de proposer quelque chose qui serait capable de faire ça voilà alors je sais pas ce qui se passe j'ai l'impression que ma caméra s'est figée est-ce que j'ai un petit problème j'ai l'impression que je n'ai plus l'image que vous ne me voyez plus je vais arrêter relancer Bon je ne
sais pas on va continuer comme ça vous voyez vous me voyez pas on te voit en fond vert bizarre c'est intéressant ça qu'est-ce qui se passe alors attendez juste on va tenter un essai on va quitter le truc couper la caméra ça c'est quand même terrible c'est on peut pas compter sur la technique il faut forcément que ça coince quelque part Je vais essayer de redémarrer la caméra je réapparaît mais je suis un peu brûlé excusez-moi est-ce que l'on entend vous m'entendez oui oui je profite de l'interruption pour rappeler donc pour les questions de préférence
utiliser le site qu'on qu'on a partagé si tu peux épingler le message sur Youtube nous on n'a pas le droit de le faire avec vous pouvez pas écrire dans le chat de YouTube si si on peut on peut y répondre mais c'est pour épingler le message avec Le lien de classe normalement oui j'ai un peu d'accord bon je et donc pour pour tout le monde si vous pensez que vos questions peuvent être réutilisées par tout le monde etc même de manière générale de préférence utilisée ce site là pour les questions oui tout à fait je
vous propose de poster dans le chat de YouTube parce que je sais pas comment on fait et j'avoue que j'ai pas le temps D'aller voir comment décrire dedans désolé merci j'ai l'impression que je suis revenu désolé voilà nouvelle caméra nouveau problème on te voit bien et voilà désolé ok voilà donc but du jeu c'est d'essayer de deviner comme ça pour une observation donnée ensuite donc comment la probabilité que ce soit long terme de réussite ou non de à l'examen [Musique] [Musique] [Musique] [Musique] voilà on a une fonction linéaire comme ça très simple qui nous sommes
pondérés que l'on passe dans une fonction ce qu'on appelait d'activation qui permet de transformer la sortie de cette simple pondérée en une probabilité qu'on va quelque chose qui m'a interpréter comme une probabilité et puis on va se baser sur cette valeur là pour pour notre apprentissage voilà si on prend la l'expression matricielle ici on a un y Chapeau la valeur prédite qui est le cinéma donc fonction d'activation du têtatée transposer x plus notre B voilà toute toute la subtilité de la régression logistique ça va être de trouver la valeur des poids de manière à ce
que notre régression logistique donne un résultat qui soit le meilleur possible alors pour déterminer ces poids ces fameux W1 et W2 points plus notre biais il faut pas l'oublier on va Utiliser cette fameuse approche par des centres de gradient c'est à dire que à forger progressivement de manière itérative nos deux poids pour obtenir nos deux poids et notre biais de manière à avoir un résultat qui soit aussi juste que possible voilà une régression logistique donc ça c'est quelque chose qui existe depuis longtemps et qui marche très très bien qui est absolument très très efficace simplement
très facilement qui est Disponible dans toutes les librairies de type aussi d'avoir un résultat très intéressant et là où c'est particulièrement intéressant c'est que cette petite machine qui fait cette somme pondérée avec cette fonction d'activation et qui nous renvoie un résultat bah ça s'appelle un réseau un réseau les neurones artificiels c'est notre premier réseau de neurones la régression logistique c'est jamais qu'un réseau de neurones artificiels de 1 euro Voilà régression logistique ça résonne neurones à 1 neurone et ça marche très bien encore une fois c'est quelque chose qui est massivement utilisé utilisable et qu'on continuera
d'utiliser parce que c'est très simple et ça donne de très très bons résultats dans des problématiques linéaires c'est-à-dire que si on a reprend notre exemple ici donc là c'est le résultat vous retrouverez le notebook aussi il s'appelle l'ogre dans les dans les Exemples et ben voilà quand on a comme ça notre résultat ici on reprend notre exemple de départ par rapport à un datacet de test notation des données qui n'ont jamais été vu on a une séparation donc qui est linéaire entre les deux mondes de ceux qui ont réussi et puis le monde de ceux
qui n'ont pas réussi on a un seul neurone avec une fonction linéaire de séparation donc on a une séparation qui est strictement ordinaire une droite Mais on a un résultat vous voyez qui est supérieur à 90 % dans notre exemple ce qui était pas du tout intuitif quand on voyait ce à quoi ça ressemblait au départ voilà donc ça marche très bien avec une très forte limitation d'un seul neurone et ben tu sais résoudre que des problèmes linéaires voilà or le monde n'est pas tout à fait linéaire on verra ça plus tard alors on peut
biaiser un petit peu ça c'est à dire que si donc ça c'est vraiment en 30 secondes ainsi on Reprend comme ça nos observations donc on avait nos observations avec deux composantes le nombre d'heures de travail nombre d'heures de sommeil mais on va rajouter des composantes on va rajouter le carré et le cube de chacune de nos composantes et on va refaire exactement la même chose sauf que on n'est plus avec des observations de dimensions mais à 5 6 dimensions et là on arrive comme ça à diminuer le taux d'erreur Voilà ok on va arrêter les
maths ici on va aller plus loin dans les maths sur cette partie là la chose importante c'est de voir que finalement notre neurones artificielle si jamais que une fonction linéaire si nous sommes pondérée qui passe dans une fonction d'activation et que avec cette simple petite fonction linéaire bien classique on arrive à faire aussi bien de la régression ou de la prédiction de valeur que de la classification comme on Vient de voir à l'instant il y avait que des résultats et encore une fois qui sont très bons si vous avez la problème linéaire ça sert à
rien de prendre une solution capable de gérer des points de Londinières ça marche très bien voilà alors ça c'est la l'approche un petit peu mathématique voilà on est arrivé à notre premier réseau de neurones mais on va essayer de voir un petit peu maintenant comment ça s'est passé dans la dans le comment ça s'est passé dans Le monde je dirais dire des humeurs quoi voilà alors la première question si on parle d'intelligence artificielle le premier mot clé c'est c'est l'intelligence c'est le principe de voilà qu'est-ce que que l'intelligence et l'intelligence on peut en trouver plusieurs
définitions une première définition donc celle qu'on trouve dans Wikipédia par exemple la définition alors chacun on verra que chacun va trouver sa définition De référence moi personnellement c'est je trouve celle-là particulièrement pertinente d'un point de vue évolutif en particulier c'est que l'intelligence c'est la capacité de percevoir ou d'insérer l'information ou d'un conserver comme une connaissance et l'appliquer dans des comportements adaptatifs donc en gros on perçoit notre environnement nous on regarde on voit on perçoit une information on va conserver une partie de cette information comme Une connaissance on se constitue une base de connaissances et on
va s'appuyer sur cette base de connaissance de manière à pouvoir adapter notre comportement voilà ça ça marche pour les humains ça marche pour le vivant la marche contre avec des neurones ça marche également pour pour des blobs où ça marche pour des du végétal ça marche de plein de manières et cette définition d'intelligence est très très une définition très Évolue enfin en terme d'évolution très pertinente puisque c'est un petit peu ce que l'on observe dans ce qu'on observe autour de nous dans le vivant voilà alors à côté de ça on a une deuxième définition qui
est tout aussi présente tout aussi prégnante qui est alors qu'on trouve par exemple c'est la définition dans le Petit Larousse ou l'intelligence est définie comme l'ensemble des fonctions mentales ayant pour objet la connaissance conceptuelle et rationnelle Alors là c'est voilà on est sur un autre niveau on est on rentre dans un monde un petit peu d'abstraction c'est à dire que c'est la capacité pour faire simple la capacité à itérer sur des concepts sur des sur des objets concepts voilà donc c'est on est sur quelque chose de plus de plus abstrait quelque part et de plus
haut niveau aussi c'est à dire que dans un premier cas on est sur des observations donc on est sur quelque chose qu'on Observe ces choses c'est froid c'est grand scepti c'est lourd c'est pas lourd etc là on commence là on s'intéresse en fait des abstractions à une approche beaucoup plus conceptuelle des choses et la capacité à manier ses concepts voilà alors c'est ces deux approches là évidemment sont assez antagonistes et très très tôt il y a eu deux courants de pensée fondamentalement différents qui se sont affrontés et qui qui ont qui ont suivi ces deux
voies c'est deux Conceptions un petit peu de de l'intelligence alors c'est un long débat on peut appréhender l'intelligence artificielle de plein de manières ça c'est cette approche là moi je la trouve très très intéressante parce que elle est voilà c'est un très bon éclairage de de l'histoire récente et puis bon voilà s'il y a quand même une approche un petit peu fondamentale derrière un article extrêmement intéressant que Je cite tout de suite Dominique Cardon Jean-Philippe pointé et d'Antoine Mazières qui est publié en 2018 la référence derrière ou avec votre moteur de recherche favori donc ils
ont repris un petit peu l'histoire de l'intelligence artificielle à travers cet éclairage là donc également des très bons articles anglo-saxons sur sur le sujet et voilà donc c'est vraiment l'article de référence que je vous conseille une Quinzaine de pages qui est absolument passionnant à lire et sur lequel je me suis largement appuyé pour pour constituer cette partie là voilà donc dans le premier cas dans la première définition donc l'approche connexionniste on va considérer que l'intelligence et le résultat d'un ensemble de petites fonctions élémentaires c'est-à-dire que l'informe le principe de l'intelligence c'est le résultat d'un traitement
du signal on Perçoit une information ils sont même comprendre très bien ce qu'il y a une fonction qui a pas forcément très grand sens et à partir de cette information on va la transformer on va l'intégrer etc à travers des petits mécanismes élémentaires absolument concept de faible taille très simple que sont nos neurones en fait nos fameux neurones nous neurones qu'on a vu tout à l'heure neurones artificiel ressemble une manière très étonnante à Un réseau à un neurone réel vous prenez un Renault un neurones réel ici vous avez des entrées de ce côté-là voilà donc
on prend une observation avec des composantes enfin voilà mais ça va être transformé à l'intérieur de notre neurone et puis ça va ressortir derrière pour être connecté vers d'autres nous voilà donc on a un vecteur montré quelque part un vecteur en sortie et puis et puis c'est transformé c'est Voilà on est vraiment dans le domaine du traitement du signal et c'est exactement la même chose que fait notre neurones artificielle nous sommes pondérés c'est transformé par notre fonction d'activation et on a une sortie et cette sortie ben voilà après interconnecter on peut imaginer que ça peut
être un terme puis cette interconnecté avec d'autres neurones artificielle voilà donc ça cette approche cette approche connectionniste elle est très Ancienne c'est on va essayer comme ça de modéliser de reproduire un petit peu le fonctionnement qu'on observe dans le livre et de l'autre côté on va avoir une approche de beaucoup plus haut niveau c'est-à-dire qu'on va travailler sur des symboles ce qu'on appelle la proche symbolique où on va essayer de forger une opinion prend l'exemple classique tout homme et mortel donc on a un concept homme on a un concept mortel Socrate est un homme On
retrouve le symbole etc donc moteur d'inférence est capable de nous dire donc Socrate est mortelle on a des concepts de haut niveau et avec un moteur d'inférence les deux fonctionnent très bien les deux sont imparables simplement c'est quand même deux approches conceptuellement très très différentes dans un cas on est sur une approche inductive donc on a une entrée une sortie donc une observation un résultat et à partir de l'observation De cette cause et puis de ce résultat on va essayer de trouver le modèle quelques chemins fabriqués le programme qui est capable d'aller de l'autre quoi
voilà c'est donc le programme est le résultat on va dire d'une entrée et d'une sortie de l'observe enfin d'une observation finalement voilà dans le cas de notre approche donnera proche symbolique on est sur une approche déductive donc là on est vraiment sur la l'informatique classique Que l'on connaît c'est-à-dire qu'on a une entrée on a un programme et ce programme nous générer une sortie voilà dans le premier cas on va s'appuyer sur des faits pour essayer d'identifier de déterminer de retrouver les règles et les lois sous-jacentes assez fait voilà on va essayer de modéliser comme ça
c'est la scientifiquement qui qui que l'on a dans nos observations et notre modèle voilà si jamais que une intégration de Ces lois et de ses règles qu'on a observé alors que dans l'approche symbolique ben on va fabriquer on va prendre un expert on va attraper un expert en expertise en cela un physicien ou autre et puis on va en extraire on lui demander de nous extraire les règles et les lois importantes la physique qui de de de de de savoir son savoir utiliser son savoir de manière à fabriquer ce fameux programme et ce fameux moteur
d'inférence qui va Nous permettre de produire un résultat voilà donc on a vraiment deux approches qui sont fondamentalement différentes évidemment ça pouvait pas très bien se passer puisque on a deux conceptions assez orthogonales c'est comme comme la lumière campusculaire etc c'est pas incompatible puisque la réalité est présente dans les deux cas c'est la même réalité pour deux approches différentes et ces deux approches de l'intelligence de très bons Résultats mais néanmoins voilà il y a quand même une forme de concurrence entre les deux et là ce graphique est extrêmement intéressant donc l'idée extrait de la fameuse
publication des dominicardon Antoine Mazières et Jean-Philippe pointé que je vous conseille vraiment d'aller lire on a ici le ratio de publication à travers le temps donc a commencé oui bien avant 1940 de ces deux approches enfin de ces deux Approches de l'intelligence de deux approches de manière d'appréhender on va dire l'intelligence donc en revanche vous avez les connexionnistes et puis en bleu les publications pro symboliques mais en tout cas qui s'approche qui s'applique qui s'appuie sur l'approche symbolique voilà oui donc je aperçois comme c'est une question pouvez-vous expliquer la référence dominicardon Jean-Philippe Pointer Antoine Mazières
c'est la publication un article qui a été publié par ces trois auteurs donc vous trouverez le lien en référence à la fin voilà merci beaucoup Jérémy de nous l'envoyer voilà donc article absolument passionnant encore une fois et donc au moment vous voyez que au départ au tout début on avait une approche une vision très connexiste des choses alors attention au début on est dans les années 40 donc là l'informatique c'est Quand même pas celle d'aujourd'hui on était assez loin votre smartphone on aurait fait rêver plus d'un on était sur une approche très très bonne informatique
d'ailleurs c'était pas des informaticiens c'était des logis des physiologistes des voilà c'était on avait tous les domaines de pensée qui s'étaient regroupés pour essayer de réfléchir notamment dans les conférences de Massy sur ce qui était l'intelligence et comment on pouvait essayer comme ça De comprendre l'intelligence pour produire l'intelligence pas d'intelligence artificielle à l'époque voilà donc ça c'était un premier courant de pensée donc ils sont appuyés sur le neuron artificiel on imaginez des neurones on regarde comment fonctionne un cerveau humain animal et puis on va essayer de reproduire la même chose et le premier résultat important
qui a été qui a été proposé c'était le Perceron en 1957 donc une machine Fabrique une vraie machine fabriquée par un Franck Rosenblatt qui était capable comme ça de faire de l'intelligence enfin artificiellement de l'intelligence et donc publication droite et là c'était un classifieur en fait un classifieur 1 neurone mais avec les mêmes principes c'est à dire que voilà on a un signal en entrée une fonction d'activation et un résultat et se classifier était capable de donner des résultats à remarquable pour L'époque puisqu'il était capable de classifier des choses faire l'extinction entre des ronds des
carrés des triangles des choses comme ça enfin c'était un classeur linéaire le capable de résoudre des problèmes comme celui que vous l'avez ici donc là c'est pareil c'est un des notes book qui qui est disponible donc sur un très vieux data 7 qui date des années 30 celui-là où on essaie de classifier des fleurs à partir de des caractéristiques de leur de leur de leur Pétales et donc voilà vous avez ici comme ça le résultat donc on voit qu'on est une séparation linéaire entre les deux c'est normal puisque encore une fois on a un seul
neurone et on a un classifieur à un groupe donc ça ça marchait très bien sauf que sauf que ça met des limites puisque en fait avec un seul neurone on sait traiter que des problèmes linéaires mais ça ça a été mis ça a été retenu et mis en exergue par les tenants de l'approche symbolique qui Ont commencé à apprendre la main partir du moment où on a commencé à avoir des ordinateurs efficaces à partir des années 50 comment ça a vraiment avoir de la puissance de calcul mais on commence à avoir de l'informatique utilisable et
puis donc évidemment tous les spécialistes autour et des résultats évidemment qui étaient très intéressants ce qui est encore une fois de l'informatique on fait des calculs mais on peut aussi faire des algorithmes Faire des systèmes de on va dire à base de règles et des choses très évoluées et donc ben ils ont pris la main cette communauté là a pris la main notamment au niveau des grandes universités de anaïti negan Stanford ils ont traité aussi tous des tous les financements de la DARPA et puis ils ont eu des résultats qui étaient très intéressants et vraiment
eu de très très bons résultats et ils ont inventé le terme d'intelligence Artificielle terme d'intelligence artificielle et on le doit à mccarti en 1956 et ils avaient des résultats qui étaient très positifs alors d'une part ils avaient de bons résultats ils avaient de rester tous les financements et puis ils ont bien mis vite identifié les limitations du Perceron avec sa contrainte linéaire mais en 1969 mini paper ont publié un ouvrage dans lequel il mettait son exergue ça a été la mort Du syndront la mort des connexionnistes et puis Fort de leurs résultats bah évidemment ils
ont promis bons et merveilles qu'on allait pouvoir faire des avions autonomes des voitures autonomes des chars aut [Musique] [Musique] [Musique] [Musique] notamment au Canada alors d'un côté on avait quand même des Gros progrès qui ont continué à se faire du côté de l'approche symbolique avec les systèmes experts on est dans les années 80 80 les années 80 on avait la grande époque des systèmes expert avec notamment qui marchait très bien et puis du côté de du côté de l'approche de connexion Nice il y a quand même quelques équipes qui ont continué à travailler et deux
choses vraiment fondamentales qui qui sont apparues c'est la rétropagation donc de rumail Art en 86 et puis les réseaux convolutifs avec Yann Lequin alors il y en a qu'un qui avait aussi travaillé sur les problématiques de rétropagation alors cette rétropagation c'est quoi on a quand on a un neurone ou tout seul comme ça on a vu qu'on était restreint à des résoudre des problèmes strictement linéaires l'idée ça va être de constituer de mettre tous ces petits réseaux tous ces petits neurones en réseau constituer un réseau complet Alors avec une couche d'entrée donc qui permet d'absorber
on va dire l'observation des composantes de l'observation en entrée un vecteur en entrée on a une première couche de réseau de neurones pardon qui prend capable de prendre chacune des composantes de l'observation en entrée chacun des caractéristiques pour prendre des bons mots ensuite on a un certain nombre de couches de réseau qui sont derrière qui sont cachés qui sont Interconnectés entre elles donc chaque neurone en entrée la sortie de tous les neurones de la touche d'avant et puis va propager son résultat vers tous les neurones de la couche d'après et puis à la fin on
a une raison couche de sortie avec des neurones de sortie qui vont permettre comme ça de produire chacune des composantes du vecteur de sortie voilà alors ça c'est avec une architecture comme ça une somme pondérée de Somme pondérés de Somme Pondéré tout ça interconnecté on a pu on n'est plus dans un cadre linéaire on arrive à casser la minéralité pour avoir quelque chose de complètement non linéaire d'appréhender des choses complètement dans l'univers et la grosse vue de Sam qui est exactement la même mais la grosse difficulté c'est voilà comment effectuer l'apprentissage de comment forger on
va dire le poids de tous ces neurones voilà et donc on va le faire de la manière suivante on va avoir Une donc on a une observation une première phase qui est la le feed forum donc l'apprentissage avant on va dire donc on a un ensemble d'observations un tata 7 donc ça c'est nos données d'apprentissage nos observations chacune de nos observations à des caractéristiques composantes ça c'est les vecteurs on va donner ça en entrée à notre à notre réseau on obtient une Sortie donc prédiction notre y chapeau cette prédiction on va la comparer la valeur
attendue ce qu'on espère avoir comme prédiction réelle à la réalité on est sur du supervisé donc pour chacune de nos observations ici pour chaque ici de notre datacet d'apprentissage on a un Yi qui est la prédiction que l'on attend voilà et on va comparer cette prédiction attendue à la prédiction ce qui sort de notre réseau notre Yi chapeau et on va comparer les deux on va comparer les Deux à travers une fonction de perte donc ça peut être une RMSE on fait une MSE en général comme celle que l'on a vu tout à l'heure ou
une fonction un peu plus élaborée qu'en cas de classification enfin en tout cas on a une fonction de perte qui va comparer ce que l'on attend à ce que l'on espère à partir de cette différence on va faire une descente de gradient et on va propager mettre à jour les poids de votre réseau de manière arrière cette Fois c'est à dire qu'on va partir des neurones de sortie et on va mettre à jour progressivement notre réseau en remontant à l'intérieur du réseau pas rentrer dans le détail là de cet algorithme de rétropropagation mais la philosophie
est là donc faire notre descente de gradient en mettant à jour les poids de notre réseau on verra durant la séquence après je sais plus le numéro de la séance 4 je Crois la séquence mathématique Laurent nous présentera plus en détail cette fameuse algorithme rétro propagation et c'est absolument passionnant et simple en fait voilà donc on met à jour notre réseau et puis on recommence donc chacun de ces sites on va appeler ça une époque la terminologie qui va bien et on va recommencer c'est-à-dire qu'on reprend nos données d'apprentissage on refait une boucle avant c'est
à dire que on Repasse nos données à travers notre notre réseau on retient on récupère des prédictions donc on va passer nos valeurs par paquet travailler par badge par contre je suis pas pardon on va prendre 128 valeurs on les donne au réseau on a 128 prédictions on compare ça ou 128 valeurs attendues on calcule notre fonction de perfe gradient notre fonction perte et on rétropropage on met à jour nos points et on recommence une nouvelle époque et On va faire ça des époques à certains nombre de fois de manière à affiner nos plans en
fait on fait la même chose au lieu de faire sur un seul neurone on le fait sur l'ensemble des neurones avec une voilà cette fameuse rétropagation qui permet de mettre à jour l'ensemble des poids de l'ensemble de nos neurones voilà alors là ça change la donne parce que là cette fois on peut commencer à s'attaquer à des problèmes qui sont non linéaires et avoir quelque chose comme Ça de très très efficace voilà la deuxième évolution majeure c'est les réseaux convolutifs donc ça c'est ce que l'on verra la prochaine séquence des réseaux qui sont capables de
manger capables de traiter des images alors des images ou des cours ou des espaces plus que de dimensions on verra c'est quelque chose qui est extraordinairement puissant et efficace voilà et donc là on a voilà deux choses vraiment de verrous qui saute et qui Permettent de vraiment aller beaucoup plus loin puis en plus on commence à avoir des machines qui sont capables de calculer donc là ça se présenter plutôt bien et en plus dans le camp d'en face du côté des symboliques les systèmes experts commencent à tirer la langue parce que bon bah ils étaient
voilà on sait que les systèmes experts sont très efficaces sur certains types de problématiques mais quand on veut casser des photos de petits lapins et de petits Chats ça marche pas bien quoi voilà c'est pas très efficace voilà plus des problèmes structurels il y a une disparition des machines ministres en tout cas ça se passait pas bien du côté symbolique et puis du côté du monde connexionniste on a enfin un Collard on a réussi à faire sauter environ donc ça se passait très bien sauf que mathématiques aussi ont progressé pendant ce temps là et les
toujours dans le monde connexionniste le Monde connexionniste il y avait pas que les réseaux de neurones et notamment avec 95 une autre approche et arrivent en concurrence SVN qui est qui a donné des super résultats qui nous mis des résultats de classification d'image qui était quand même très très bon à des comptes qui étaient relativement raisonnable en termes de puissance de calcul parce qu'on est quand même dans les années 80 90 on n'est pas là on n'a pas on n'est pas des puissances de Calcul monstrueuse et là ben là dans le monde connexionniste il y
a eu un petit règlement de compte on va dire ça comme ça mais en tout cas le monde des réseaux de neurones s'est retrouvé marginalisé à nouveau parce que les collègues matheux les collègues du monde mathématiques avec notamment SVM ont pris la main avec des résultats qui étaient très bon finalement avec avec raison et ont réussi comme ça à trust et un petit peu le panorama du monde de la Recherche et on parle à ce moment-là du deuxième hiver de l'intelligence artificielle alors qu'un hiver de l'intelligence artificielle du monde des réseaux de neurones alors c'était
pas ça aurait pu bien se passer mais ça c'est pas bien passé pour les tenants et les spécialistes du des réseaux neurones à cette époque là parce qu'en fait ils ont été un petit peu ostracisés voilà quand on écoute les témoignages des Tonnes etc c'était une période qui était un petit peu difficile parce qu'il était effectivement un petit peu je regardais de travers voilà mais l'histoire c'est pas arrêté là parce qu'il s'est passé quelque chose de très important c'est que là on regarde sur ces deux courbes à gauche vous avez l'augmentation des puissances de calcul
et on voit que entre les années 90 et les années 2020 transparent après on a un facteur 10 puissance 6 en termes de puissance de Calcul ça c'est sur le top 500 des machines de calcul mais c'est exactement la même croissance de puissance de calcul sur votre bureau ou dans votre smartphone smartphone des années 90 c'était pas terrible donc on a une puissance de calcul qui est disponible qui est complètement exposé on a l'arrivée d'Internet aussi enfin la banalisation d'Internet et donc des Data 7 des besoins tout aussi importants qui sont apparus et donc si
on regarde à Droite la courbe de croissance des tailles de Data 7 et encore là on peut continuer à on est sur des échelles logarithmique à chaque fois attention c'est pas linéaire mais on voit qu'on a une croissance absolument extrême des tailles de datacées voilà et là ce qui s'est passé c'est que ce qui était capable alors déjà on avait de la puissance de calcul donc pour les réseaux de neurones le facteurs limitants étaient quand même la Puissance de calcul donc là on a maintenant vraiment des de la puissance de calcul de disponible en face
de besoins qui sont venus beaucoup plus complexes c'est à dire qu'on est plus dans des petits dataces de laboratoire on est sur des datacées du monde réel quoi c'est-à-dire que ce soit des photos issues de Facebook de l'Internet etc on a des besoins qui sont devenus très très différents des besoins de laboratoire de du départ et ce qui s'est passé et la Chose suivante c'est que là on a à gauche des résultats des donc les publications à gauche et puis les résultats de la compétition imaginaire à droite et en 2012 donc c'est une compétition image
nette ça prend une grosse base un gros data cette image puis le but du jeu c'est l'image le mieux possible donc c'était ça s'est triper sévèrement à des petits pourcentages avec des approches de type SVM avec des résultats qui Étaient très satisfaisants puis un jour quelqu'un est arrivé un doctorant est arrivé avec un réseau de neurones et Alex net en 2012 et le réseau de neurones a divisé par 2 le taux d'erreur là ça tout le monde d'accord c'est ce que vous avez à droite ici voilà Alex net est arrivé et vous voyez par rapport
aux cadors les meilleurs laboratoires du monde ont été complètement scotchés par le résultat de ce réseau voilà alors c'est Arrivé parce que il est à 7 était devenu de plus en plus complexe de plus en plus difficile à appréhender par des méthodes de type SVM elle devait atteint ses limites cette approche avait atteint ses limites et puis surtout la puissance de calcul disponible était devenu suffisamment importante suffisamment d'offre était suffisamment disponible de manière à pouvoir avoir des réseaux de neurones complexes voilà et à partir de ce moment-là c'est à bascule d'abord à Gauche comme ça
donc ça c'est une courbe très simple j'ai faite à partir de webshire en recherchant par mots clés les publications de type SVM et de type réseau neurones et on voit qu'à partir des années 2010 2015 il y a une inversion qui s'est enfin une explosion on va dire des réseaux de neurones qui est apparu l'image net se situe à peu près à ce niveau là et on voit un petit peu la résolution l'inversion des publications voilà Un petit peu l'histoire et depuis évidemment les réseaux de neurones se sont un petit peu banalisés dans beaucoup beaucoup
de domaines parce que moi en cas d'actification d'image dans le traitement du langage naturel dans tous les problèmes de régression dans le génératif etc ouais le début de l'histoire voilà un petit peu Jean-Luc il y avait une question à propos de ça c'était juste dans l'approche symbolique aujourd'hui il y a des exemples de Modèles qui sont avec l'approche symbolique qui marche alors je pourrai pas en citer comme ça parce qu'ils sont pas forcément emblématiques mais l'approche symbolique elle est omniprésente l'informatique symbolique c'est toutes celles qu'on utilise au quotidien finalement on a une expertise l'expertise sert
à développer un programme et le programme sert à traiter des données le symbole d'approche Symbolique c'est quand même ça en grande partie après les systèmes experts fonctionnent très bien pour un certain nombre de problèmes il y a des tas de problèmes que les systèmes experts sont parfaitement à même de résoudre alors on les voit pas forcément comme ça autour de nous mais les automates et toutes ces choses là c'est une forme d'intelligence et c'est absolument efficace et incontournable voilà après ils sont c'est pas eux qui ont le micro et c'est Pas eux qui sont sur
des projecteurs voilà et après il y a pas eu d'explosion dans les dans les dans les dans de révolution dans ce domaine là sans doute peut-être aussi qui est après l'approche symbolique a une qualité gigantesque c'est que si vous prenez le programme vous comprenez ce qui se passe dans le cas de l'approche avec des réseaux neurones et on verra ça fera partie de longues discussions que l'on aura tous ensemble c'est que si vous prenez votre Modèle vous regardez votre modèle vous comprenez rien c'est une boîte noire voilà nous dans un certain nombre de domaines si
vous voulez faire fonctionner un avion ou une centrale nucléaire je pense que beaucoup préféreront utiliser l'approche symbolique pour essayer de comprendre un peu comment ça marche et avoir en tout cas une compréhension de ce qui pilote la chose voilà Dans notre réponse on avait parlé effectivement de la robotique bon si l'exemple des voitures autonomes par exemple bon bien sûr il se sert de un peu de raison de neurones pour détecter des choses etc mais oui c'est sûr c'est plus disons que c'est à 80% c'est du symbolisme et puis à 20% c'est des connectivité mon pourcentage
est complètement au pif mais je rajoute je rajoute très par rapport à ça aussi pour compléter ma réponse que J'ai donné sur le forum l'avantage de cette méthode là c'est pour de l'embarquer en termes de puissance de calcul nécessaire ça permet d'être beaucoup plus léger vu qu'on n'a pas un réseau neurones complexe à traverser c'est beaucoup plus rapide aussi au niveau des latences on peut avoir des résultats performants voilà tout à fait il y a des tas de un message très important que qu'on va tous essayer de porter c'est de dire que Le bon outil
pour résoudre un problème c'est celui qui marche donc on va vous vendre du réseau de neurones certes donc le réseau neurones est très efficace pour tout un tas de problèmes mais il y a de tas de problèmes où il y a pas besoin d'avoir un des millions de neurones ou quoi que ce soit de compliqué encore une fois de régression lunaire peut donner un résultat extrêmement performant extrêmement important extrêmement efficace ou des Systèmes à base de de moteur d'inférence de type système expert tout à fait et un des grands grands avantages effectivement c'est le coût
de manœuvre notamment sur des Haïti ou des choses qui sont pas très grandes tout à l'heure il y a pas un seul neurone dedans et pourtant et un comportement intelligent du blog voilà donc il y a plein d'autres manières d'appréhender et d'avancer voilà on va passer ok ça c'était la Causerie c'est très bien mais on va essayer d'appréhender maintenant des exemples concrets donc on a vu on va s'intéresser à un premier cas qui est celui de la régression de l'agression linéaire de question non linéaire pardon avec un réseau de faire une régression de faire une
prédiction de valeur donc le principe de ce type de réseau est très simple finalement c'est qu'on a des observations en entrée donc c'est son nom wixie on a un Ensemble de données en entrée avec une un réseau de neurone avec notre réseau neurone si je le prends comme ça ça va marcher notre réseau de neurones ici vous voyez bon attendez pas tac tac tac voilà comme ça attendez j'ai perdu mon feutre voilà mon feutre il est là voilà donc on a ici un autre couche en entrée notre couche en entrée elle est là pour récupérer
les composantes de notre Observation les caractéristiques de notre observation à nos observations si vous point ici donc là l'exemple que l'on va voir ça va être une classification de vin voilà donc on a changé on a bascu on est passé du du Bost de datacet de Boston on essaie de faire une prédiction du prix de maison à Boston dans les années 60 à quelque chose un petit peu plus contemporain peut-être un petit peu plus rigolo donc on va partir de composition de vin donc On a des vins on a eu une analyse chimique donc on
va passer ça dans des machines on a récupéré la composition chimique le pH etc ta tête caractéristiques chimiques de notre vin et et on a des classifications des notes de ces bains de 0 à 10 d'un très mauvais vin à un vin absolument excellent faites par des objectifs ça va être d'essayer de à partir de la de la composition de ces vins enfin l'observation de ces mains de prédire la Qualité œnologique des voilà donc en entrée ici sur cette couche en entrée on va prendre nos vins on va aller rentrer dans notre réseau avec des
couches cachées on va récupérer en sortie ici alors on aura un seul neurone en sortie puisqu'on va récupérer une note on va pas récupérer un ensemble de on a notre vecteur c'est un vecteur d'une seule composante c'est un scalaire qu'on récupère en sortie et on a notre notre couche de sortie qui est composée d'un Seul neurone et on récupère une valeur qui sera la valeur qui nous intéresse voilà je relance une dernière fois de l'autre côté en parallèle voilà alors l'apprentissage va se faire de la manière dont on a vu tout à l'heure c'est à
dire qu'on va avoir nos observations et donner au réseau à récupérer une prédiction à comparer cette prédiction à la valeur attendue donc à la note attendue on va calculer Le gradient de notre fonction de perte et à partir de ce gradient on va les mettre à jour les valeurs de notre de notre réseau de neurones voilà et puis on va étirer comme ça à travers un certain nombre de littérature chacune de ces itérations on appelle ça une époque voilà alors une chose très importante et ça c'est propre à nos réseaux de neurones mais c'est propre
à l'apprentissage machine en règle Générale et à l'apprentissage même dans l'absolu c'est à dire qu'on va dépendre on va séparer nos données en deux en deux groupes en deux 7 on va prendre un premier set on prend mon feutre voilà on a notre premier set qui est ici qui est on va prendre par exemple à peu près 80% de nos données 70 80% enfin une grosse partie de nos données et on va s'en servir pour faire l'apprent notre apprentissage comme on a vu tout à L'heure donc on s'en sert on fait une prédiction regarde la
différence entre la prédiction et ce que l'on attendait en calcul le gradient on le met à jour nos poids et on recommence comme ça et on va itérer comme ça de cette manière là à travers une époque un certain nombre de fois et on va regarder la courbe d'apprentissage de notre résultat d'apprentissage c'est la précision de nos notes ou en tout cas la qualité de la prédiction que l'on a une fonction Perte tout simplement voilà et on observe en général et on a une progression qui est de ce type là qui est une progression un
petit peu linéaire non linéaire pardon asymptotique de cette manière là en tout cas ça progresse ça progresse ça progresse ça progresse et ça progresse à peu près tout le temps d'ailleurs c'est pas vraiment un outil parce qu'on va avoir une progression tout le temps ça S'améliorer dans le permanence mais alors ça c'est l'apprentissage c'est comme quand on est à l'école si on travaille avec les exercices on s'évalue sur les exercices avec lesquels on apprend c'est beaucoup plus facile évidemment et on va pouvoir s'améliorer jusqu'à améliorer s'améliorer encore voilà et à côté de ça on a
notre reste de nos données si notre nos 20% de données restantes ici que l'on va Conserver pour un set d'évaluation voilà le test et ces données de test on va les utiliser de temps en temps comme ça alors on est s'en servira pour tester notre modèle n'est pas pour faire de l'apprentissage uniquement pour tester en gros c'est les exercices que le prof il a gardé pour l'exam enfin pour l'interro pour la colle voilà donc ces données de test ici on va les présenter au réseau on va récupérer comme ça un résultat et on va regarder
comme ça au Fil des époques comment progresse cette la qualité de notre apprentissage donc là on va avoir une courbe qui va plutôt être une courbe de ce type là c'est à dire qu'on va avoir une progression et puis un moment donné on va avoir un maximum et puis après on va faire rentrer dans le cycle dans un cycle sur apprentissage justement donc pour évaluer la qualité de notre apprentissage ce que l'on va regarder c'est vraiment Les données de notre ensemble ou de tests ici d'accord on fait l'apprentissage avec des données d'accord et puis on
évalue avec des données spécifiques c'est exactement comme dans le vrai monde c'est-à-dire que dans le vrai monde à l'école ou à l'université on est on apprend avec des exercices d'apprendre de t'aider etc et puis un jour on a l'examen on va sortir d'autres exercices qu'on a jamais vu et on fera l'évaluation uniquement sur ces Exercices-là et le but du jeu c'est de bien séparer la partie apprentissage la partie test c'est-à-dire que la règle absolue c'est que les données de test ne doivent en aucun cas servir à l'apprentissage sinon évidemment on a un billet un billet
totalement évident voilà je pense que ça c'est assez clair et puis on va devoir par exemple voilà donc le premier exemple que l'on va aller voir c'est notre exemple wine 1 On va comme ça essayer de prédire la qualité de nos bain alors je vais prendre alors attestation non le relance une toute dernière fois après il est possible que des mails mettent un certain temps pour être acheminé c'est caché de la poste qui fait foi donc si vous avez envoyé votre mail c'est bon il y a pas de problème même s'il arrive un petit peu
plus tard on vous l'enverra quand on recevra votre mail les mails peuvent mettre un peu de Temps arriver ça c'est pas un souci voilà donc là je vais prendre une fenêtre un chêne on va lancer notre environnement on dirait un petit peu ça alors deux approches pour faire marcher notre environnement donc soit avec docker soit avec en canal historique et directement avec avec pipe donc là on va essayer avec avec dockers allez hop donc je reprends mon docker start fidèle alors si vous utilisez Docker Dext stop je dois faire démarrer mon docteur Dext stop ou
le monter au moins une fois voilà non c'est pas ça c'est pas cette fenêtre là c'est pas celle qui condensée celle-là mais ce qui est dans le cas next stop il est ici alors il démarre il a démarré voilà donc vous avez ici dans le docker next stop des images les images qui sont Disponibles donc ça c'est une image qui vous avez téléchargé en suivant la documentation de Soraya et puis le container qui a été instancier ici qui est là voilà donc pour faire démarrer mon container je peux utiliser l'interface graphique avec le petit bouton
ici et puis aller voir le résultat ça c'est ainsi avec l'interface graphique sinon je fais exactement la même chose avec le dockerstart - fidèle comme ça voilà J'espère que la machine va pas exploser avec tout ce qui tourne en même temps voilà ça prend un petit peu j'ai grandi voilà donc vous avez quelque chose comme ça qui démarre c'est exactement la même chose quand vous lancez votre Jupiter Lab si vous avez installé votre environnement avec pipe et donc vous avez l'URL ici de démarrage de de Jupiter là donc je clique dessus et j'ai mon Jupiter
là qui démarre quelque part sur Ma machine et je vais aller le récupérer ce que j'ai deux écrans évidemment ça démarre toujours sur l'autre écran mais je l'ai voilà qui démarre ici et qui a réussi à démarrer voilà ok ça je vais envoyer ma fenêtre un petit peu ailleurs je n'ai plus besoin de celle-là je vais la miniaturiser pour pas la perdre et je continue voilà donc là quelque chose comme ça voilà je pense Que vous devez tout savoir cet écran de présentation comme ça ici ok voilà si on démarre avec urban pour tester des
vins j'ai peur d'avoir qu'il y a un billet c'est pas faux j'avais pas de Data 7 sur les skis bon voilà une petite remarque de je sais plus qui s'est passé trop vite j'ai pas eu le temps de lire de Laurent voilà ok donc voilà une fois que vous avez démarré Votre environnement Jupiter on est tous au même niveau que ce soit par le biais de l'environnement type ou par le biais de l'environnement docker honnêtement vous conseille docker parce que là c'est beaucoup plus simple pour manipuler et surtout si on fait une mise à jour
de l'environnement vous récupérez une nouvelle image ça va tout seul voilà bon après avec un porte environnement ce qui compte c'est l'ivresse du notebook voilà Je suis pas sûr que de tout le monde connaisse un petit peu sache un petit peu ce qu'est un notebook donc on a commencé tout de suite par regarder ce qu'est un noeud de manière très très simple alors on peut utiliser Jupiter Lab de cette manière là ça c'est la manière traditionnelle c'est à dire que à travers un gros œuvre on accepte comme ça cette interface aux Jupiter là donc en
gros vous avez des arborescence d'un côté Et puis on va pouvoir travailler sur cette arborescence seigneur je vais fermer ça mais pas besoin d'avoir ça là tout de suite voilà vous pouvez également utiliser développer et utiliser vos notesbook avec d'autres environnements comme par exemple visual code de studio qui permet donc là on est vraiment dans un environnement de développement de très haut niveau mais qui est capable aussi de gérer des notes Alors on va créer un premier notebook tout bête l'icône que l'on a ici créer un autre book Python 3 que l'on a ici voilà
donc je clique là dessus et puis j'ai un autre bouc qui a United qui est qui apparaît ici alors très vraiment à prendre 30 secondes juste pour voir un petit peu à quoi ça sert comment ça s'utilise le notebook est conseillé de cellules d'accord donc vous avez des cellules Comme ça et c'est là on a une cellule dans une zone de posséder chacune de ces cellules c'est une petite partie en fait peut être peut contenir du code informatique ou ce qu'on appelle du marc donne pour afficher du texte alors si je prends la première cellule
ici par exemple je vais afficher un titre je vais faire une cellule de type Marc donne et pas de type code vous voyez ici vous avez code si je regarde le petit triangle ici on peut avoir quelque chose En Martin donc je vais mettre en marque donne et là cette cellule va être du margone alors le marc John c'est quoi c'est du texte du texte par exemple [Musique] est-ce que vous arrivez à lire est-ce que alors si je peux cliquer ici ça va réduire à gauche comme ça c'est un peu plus agrandir un petit peu
voilà donc là j'écris une texte dedans et ce texte je vais l'intégrer ensuite je L'exécut enfin cette cellule je vais l'exécuter alors pour l'exécuter soit j'utilise le petit bouton qui est ici voilà ça a transformé ma cellule en son résultat donc c'est du texte si je double clic dessus je réédite ma cellule je peux aussi exécuter ma cellule en faisant un shifter je fais shift Ritter et ça exécute massive voilà alors le margone c'est quoi bah si du texte c'est du texte qui peut améliorer par exemple si je mets un dièse comme ça c'est un
Titre de niveau 1 ça c'est un titre de niveau 2 ça c'est un titre de niveau 3 allez on va faire un titre de niveau 1 et ceci est mon premier texte mais un titre et puis ça c'est bien du texte voilà et donc là dans ma cellule j'ai mis comme ça mon texte enrichit on appelle ça des marques Google et votre enfin votre moteur de recherche favori et votre ami vous Donnera permettra de trouver toutes les documentations de cette marque d'hommes en fait et ensuite j'ai exécute ma cellule donc soit avec le petit bouton
ici soit avec le shifterne mais ça me le transforme et c'est magique voilà donc là comme ça on peut avoir du texte enrichi de la documentation des commentaires à l'intérieur de notre document ça c'est des cellules de de présentation et puis vous avez des cils de code donc là cette cellule là par Contre c'est du code donc c'est une cellule de code je veux écrire du code Python voilà bonjour tout le monde et je vais y arriver voilà et là pareil j'exécute ma cellule avec le petit bouton ici ou avec un shifter mais ça exécute
le programme voyez donc là j'ai exécuté ma cellule et j'ai le résultat de la cellule qui s'affiche dessous c'est pas plus compliqué que ça alors après vous pouvez Mettre des paramètres ici créer une nouvelle cellule créer dans la deuxième cellule je vais y arriver je vais mettre un ici je crée une nouvelle cellule alors vous voyez la cellule ici a été exécutée il y a un petit chiffre à côté là c'est deux styles ont pas été exécutés voilà et puis je fais C = A + B et puis je fais print allez le résultat est
deux points Et deux points virgule C voilà et je vais exécuter ma cellule j'exécute ma cellule shifter ou un petit bouton ici j'ai donc j'ai instant Simon a instincti mon B et puis j'exécute ma cellule ici à et puis évidemment j'ai oublié le diamètre donc quand il y a des erreurs et ben on a le message d'erreur qui apparaît ainsi quand on corrige l'erreur je réexécute ma cellule et puis j'ai le résultat ici ok voilà et puis ce qui est intéressant C'est que vous pouvez modifier ici voilà j'ai exécute ici et je réexécute ma cellule
etc donc on n'est pas obligé d'exécuter le code dans un ordre linéaire donc attention ça peut être un petit peu casse gueule au bout d'un moment mais voilà le principe donc en gros vous avez des cellules de commentaires des cellules de code et puis vous pouvez exécuter vos cellules une par une voyez c'est extrêmement souple extrêmement simple à utiliser Extrêmement ludique voilà comment faisait-on avant voilà allez revenons à nos et donc dans notre distribution vous avez une quarantaine de comme ça qui sont proposés avec un rythmi ici qui est donc le panoramie.nd qui est du
pur marklone mais le ennemi IP ynb qui est le document Rémy avec la liste de tous les nobooks qui sont disponibles voilà donc il y a beaucoup de baratins évidemment et la partie qui Nous intéresse ça va être d'aller voir dans les basiques regulation using the end donc d'aller voir le notebook pardon qui s'appelle wine 1 voilà donc vous descendez dans la première dans la partie basique régression vous pouvez choisir le notebook wine 1 qui va démarrer et qui a démarré voilà et ce que je vous propose c'est qu'on va regarder un petit peu comment
fonctionne ce notebook dans le détail pour que vous Puissiez le réutiliser ensuite l'adapter avec d'autres data 7 sur des problématiques assez similaires alors on va passer un petit peu en détail chacune des cellules pour bien comprendre que vous puissiez bien comprendre comment ça fonctionne puis après être posé vous plongerez dedans vous verrez en fait c'est vraiment très simple très intuitif quoi voilà entre le principe d'une notebook qui est assez pratique et puis keras qui est très très synthétique vous Allez voir que c'est on est sur quelque chose d'assez ça je vais me mettre en plein
écran est-ce que je arrive à me mettre en plein écran pourquoi il veut pas me mettre en plein écran plein écran voilà je sais pas pourquoi le F1 il voulait pas me le prendre voilà gagner un petit peu de place comme ça ok donc l'objectif c'est de trouver de déterminer de prédire la qualité de notre vin à partir de son observation Donc on a data 7 ici donc c'est un Data cette que l'on doit Paulo Cortes de l'Université de Mineau à cette portugais de 20 portugais qui contient un millier d'analyses à peu près les paramètres
les informations qu'on a dans ce dans les observations les caractéristiques des observations que l'on a pour chacun de ces 20 sont ici donc on a la quantité d'acide citrique de chloride de pH le taux d'alcool etc etc et le paramètre que L'on va essayer de deviner dans le Data 7 c'est le dernier la dernière colonne de notre data 7 c'est la qualité de notre voilà alors ce que l'on va faire c'est ça déroulé de la manière suivante alors si je reviens ici on va voir que ces différentes étapes on va commencer par importer nos données
récupérer enfin porter pardon notre environnement Python et l'initialisé Parce que moi on va ensuite importer nos données chargées notre data 7 chargé en mémoire donc notre data 7 qui est sous la forme d'un fichier CSV donc un fichier de de colonne en fait et puis ensuite on va on va le préparer d'accord donc préparer ça va être de séparer la part des données d'apprentissage des données de test d'extraire la fameuse colonne que l'on souhaite prédire la colonne notre colonie grecque par rapport aux Observations donc ça on va découper un petit peu nos données pour les
préparer ensuite on va créer notre modèle on va créer notre réseau de neurones on va entraîner notre réseau neurones et puis on va regarder le résultat voilà ça c'est pas le bon data 7 qui redressement mais l'idée est la même exactement le même pourquoi il veut pas qu'est-ce que c'est que ce bazar excusez-moi je n'arrive pas à repasser sur voilà c'est bon alors donc on va Récupérer nos données etc etc donc la première étape que l'on a ici c'est donc l'étape 1 c'est donc l'importation d'une utilisation de notre environnement python donc là je fais un
petit case ici allez hop voilà donc là on voit qu'on a une petite étoile c'est le temps que tout se met en place donc là on est en train de charger toutes les librairies python il y a du monde derrière d'initialiser un petit peu le tout donc ça prend un petit peu de temps Ma machine un petit peu chargée alors moi j'ai pas de GPU je suis sur un portable donc voilà je suis dans le même je suis pas de situation privilégiée donc alors une chose une particularité des notes book fidèles c'est qu'on en a
un module fidèle donc c'est une nouveauté de l'année on a un vrai module fidèle ici que l'on initialise ici alors il fait pas de machine learning le module fidèle il est juste là pour faciliter un petit peu l'affichage des Images afficher faire quelques calculs qui sont pas du Deep learning en tant que tel pour alléger un petit peu les notes books donc vous avez l'initialisation ici qui se passera tout le temps à peu près pareil donc dans cette ligne là vous avez wine 1 qui est le nom du notebook l'identifiant d'une autre book on récupère
un certain nombre de paramètres dont un paramètre qui run dire qui est en fait un dossier de travail qui en Général et locale on reviendra qui est ici vous voyez c'est un point/run / 1 dans lequel d'éventuels images des choses comme ça peuvent être rangées voilà bon on reviendra dessus progressivement il y a pas de sorcellerie derrière et puis s'affiche ça affiche un petit peu les les paramètres des des versions les quelques petits trucs comme ça voilà bon une fois que c'est instancier il y a rien d'autre à faire de toute façon il y a
rien D'autre à faire que de juste exécuter la cellule on a quelques paramètres que l'on va positionner donc le fit nervosity c'est juste pour afficher les barres de progression ou pas donc si on met 0 il n'y a pas de barre de progression si on met un barre de progression si on met deux on a une barre de progression qui s'affiche d'un seul le seul intérêt de ça c'est quand on exécutebook en batch pour faire de L'intégration continue ça permet comme ça de pas polluer les traces voilà donc là on laisse à 1 on a
le nom du datacet donc en fait on a deux data 7 on a un Data 7 pour du vin rouge une date à 7 pour du vin blanc bah là on va prendre le Data 7 du vin voilà je l'ai je l'ai exécute la cellule peut-être agrandir un petit coup que ce soit un petit peu plus grand voilà ça c'est un petit peu de magie noire cette ligne là vous pouvez l'oublier C'est juste pour pouvoir reparamétrer ces deux paramètres là de manière extérieure quand on fait justement quand on teste les notes boucle en fait on
teste tous les notes bien sûr qui fonctionne bien donc ça vous pouvez l'exécuter mais vous pouvez l'oublier aucune importance ensuite on va s'attaquer à la deuxième partie qui est de récupérer les données alors la récupération des données là nos données Sont formatées d'une manière particulière très classique c'est un tableau un tableau de chiffres donc on est sur des données afin des formats de type CSV tout simplement donc chaque valeur est séparée par une virgule ou par un point virgule voilà piscine par ligne ensuite donc pour traiter ce type de format de données on va typiquement
utiliser panda c'est La librairie panda alors la librairie panda si vous ne la maîtrisez pas si malheureusement indiqué l'entrée un peu incontournable dès l'instant où on travaille avec des données de type tableau de chiffres c'est extrêmement puissant ça permet de faire sans grosses et mieux que Excel c'est du excellent mode lignes de commande c'est du XL sous Python voilà donc c'est un petit peu un petit ticket d'entrée au départ mais c'est tellement puissant qu'on peut Absolument pas s'en passer donc là ce qu'on va faire c'est que sur cette ligne là on va dire le notre
fichier CSV dont on a donné le nom au dessus on lui dit que l'en-tête avec les noms de colonnes sont c'est la première ligne et puis que le séparateur c'est un point virgule séparateur pour être une virgule par exemple autre chose voilà et puis on lit le fichier CSV et on récupère une ce qu'on appelle un Data frame c'est un objet panda un Data frame Qui s'appelle data et puis ensuite on va afficher ici les cinq premières lignes de ce datacet de le tableau avec ça c'est pas indispensable c'est juste pour formater les chiffres 1,flottants
de manière à ce qu'on est que deux chiffres après la virgule j'accepte enfin je reconnais qu'il y a un peu de magie noire sur cette petite partie là mais voilà le seul truc qui est important si vous faites un display de data point aide de 5 vous affichez Les 5 premières lignes de votre data frame et puis là on va afficher chose très importante quand on récupère un datacet on va essayer de récupérer le nombre d'ennemis qu'on risque d'avoir dedans donc là on va essayer d'afficher toutes les non-valleurs par ligne et par colonne et au
total enfin au total donc en seulement par ligne en ce moment par colonne de deux autres data 7 et on regardera ce qu'on appelle donc ça c'est une autre information très importante Qu'on utilise avec même paille et la structure le format de la structure de données de notre data voilà allez on va voir par exemple c'est plus simple donc là on a notre data 7 les 5 premières lignes de notre data 7 avec les différentes colonnes donc on retrouve les colonnes qu'on avait tout à l'heure l'acidité l'acide citrique les chlorides le pH avec la densité
etc et puis la qualité donc ça c'est ce que l'on Souhaite de prière la dernière colonne c'est la qualité voilà on s'aperçoit qu'il y a aucune donnée absente et que on a donc 1600 lignes à 1599 lignes de 12 colonnes donc 12 colonnes sont ici ok allez on va essayer de on va préparer nos données donc pour préparer nos données en fait c'est très simple on va pas rentrer dans le détail du code mais bien comprendre ce que ce que l'on fait si je reprends mon crayon Ici voilà il arrive je vais le prendre allez
en rouge donc là on a toutes nos données imaginons qu'on a nos 1600 ici etc la première chose c'est qu'on va séparer les observations de ce que l'on veut prédire donc on va couper ça comme ça de ce côté ici ça va être X et puis de ce côté-ci c'est le y que l'on souhaite prédire d'accord donc là on a nos observations sur la gauche et puis à droite on a la colonne que l'on souhaite prédire ensuite on va avoir un ensemble D'apprentissage et un ensemble de tests donc on va couper notre data 7 horizontalement
sans faire de son côté avec d'une part d'un côté la partie test ici et puis la partie train au dessus voilà d'accord la partie train ici on va en prendre 70% ou 80% on verra je sais plus comment c'est et puis donc si on en prend 80% ici on en a 30% . d'accord donc on va couper en quatre d'un côté on va avoir notre X-Train qui Sont les observations d'apprentissage le x-test qui sont les observations qu'on utilisera pour le test le y Tran qui sont les prédictions attendues sur la partie pour la partie apprentissage
et le y test qui sont les prédictions attendues pour les données de test voilà donc là c'est ce qu'on fait là dedans donc très simplement on mélange on en récupère 80% ici pour le traîne 20% donc c'est du 80 pour le test donc là on le fait par soustraction je vais pas vous Faire un cours de Panda je donne juste en gros ce que ça fait ensuite on va oui donc ça c'est pas c'est pas juste ça c'est pour c'est pas pour ce data cette classe c'est voilà [Musique] c'est un copier-coller malheureux excusez-moi donc là
on va récupérer donc la partie X de la partie y la partie y c'est la colonne quality le champ coïti Et puis donc là on fait notre découpage en 4 et puis on affiche le résultat ici allez on va regarder ce que ça donne voilà donc on a nos données originales à notre structure de donne notre data frame de base au départ qui fume 600 lignes 12 colonnes on a notre data 7 x 3 qui fait donc 1279 lignes et la partie test qui fait 320 lignes avec muscolone pour le X enfin pour la partie
observation et puis la partie Prédiction ce que l'on veut prédire donc côté train c'est donc 1279 lignes comme le X-Train évidemment de une valeur on est sur un scalaire alors particularité des formats avec d'un paille c'est que virgule comme ça c'est quand on a un scalaire avoir virgule si on avait virgule 1 ce sera un vecteur de une composante alors là c'est des scalaires petite subtilité de la notation mais voilà comprenons bien ça on a 11 que un vecteurs de 11 valeurs et on a une Structure de données par exemple pour le X test de
320 lignes de 11 vecteurs de 11 composantes de 320 vecteurs de 11 composants excusez-moi je vais y arriver 320 vecteurs de 11 coupes Nantes et puis 320 scalaires pour la partie y et puis 1279 vecteurs toujours de 11 composantes pour la partie strane et pour la partie extreme 1269 scalaire qui sont la qualité du vin que l'on veut prédire pour l'apprentissage j'ai réussi voilà une chose très importante Pour les données que l'on va donner à un réseau de neurones alors ça c'est valable pour tous les réseaux de neurones c'est le fait de devoir normaliser les
données des données ont besoin d'être normalisées ça c'est absolument indispensable sinon le réseau explose des explosions de de gradient donc normaliser c'est très simple c'est qu'on soustrait la moyenne et on divise par l'écart-type de manière à avoir une moyenne à zéro et un écart type de 1 Donc là c'est ce que l'on fait très simplement ici voilà donc là on a nos données l'implémentation je passe très très vite dessus on calcule la moyenne et l'écart type alors on calcule la moyenne et l'écart type à partir des données d'apprentissage les données de tests ne doivent servir
en aucun cas à l'apprentissage donc quand on va calculer cette moyenne et cet écart type on le fait sur les choses que l'on Connaît donc les données d'apprentissage les données de tests doivent servir en aucun cas un apprentissage sinon on a un billet donc c'est pourquoi on calcule la moyenne et l'écart type à partir uniquement du X-Train et du à partir du X-Train uniquement voilà donc vous voyez c'est très simple avec même pas il y a vous soustrayez la moyenne on fait la soustraction de la moyenne et on divise par l'écart type et cette moyenne
et cet écart type Déterminé à partir des données d'apprentissage on l'applique évidemment donner de test mais les données tests n'ont pas d'influence ici sur le sur le calcul de cette moyenne voilà donc quand on fait notre notre on a nos données avant ici on voit qu'on a une moyenne sur pardon si je remonte ici sur je sais pas si on prend le pH par exemple on avait un pH avec une moyenne de 3,31 pas mal ah oui c'est quand même donc pH moyen de 3,31 Sur sur nos vins et une fois qu'on a normalisé on
a une moyenne qui est tombée à 0 il y a un écart-type c'est le but de la normalisation ok ben maintenant on va s'intéresser enfin on va créer enfin notre premier réseau de neurones et on va fabriquer notre modèle d'accord donc là notre modèle dans le fait avec la syntaxe qui race qui est très très simple très synthétique donc on est en mode Séquentiel donc là c'est une méthode on a une fonction qui va nous renvoyer le modèle sur les écritures donc voilà donc l'agrandir un petit peu voilà comme ça donc là on a ici
la construction de notre modèle donc là il séquentiel c'est qu'on va fabriquer en couche on va faire on va empiler des couches donc on a une première couche d'entrée ici vous voyez la syntaxe extrêmement synthétique très clair donc On crée aucun modèle séquentiel et on met une première couche d'entrée un modèle point ad on ajoute une couche il accouche que l'on ajoute c'est ici notre notre couche d'entrée ok donc notre couche d'entrée on a vu tout à l'heure elle récupère simplement les valeurs et sa géométrie c'est la géométrie de nos données d'entrée c'est donc passons
paramètre ici sera un vecteur de 11 colonnes tout Simplement ensuite on va rajouter deux couches denses donc une couche dense vous voyez c'est un layer point dance et donc une première couche avec 64 neurones une fonction d'activation reluque donc on verra les fonctions d'activation mais en fonction d'activation on fait notre simple pondéré et on passe ça dans une fonction d'activation la fonction d'activation on les verra plus en détail après mais sans surprise est très classiquement on va Pour tout ce type de réseau pourra systématiquement une fonction d'activation de type relu on verra qu'elle est très
simple voilà donc on précise notre fonction d'activation qui doit être celle par défaut d'ailleurs si on a précisait pas et puis on donne le nom donc en gros tout ce qu'on donne c'est le nombre de neurones on fait une couche dense de 64 neurones entièrement connectés et puis on en met une deuxième dessous chacune de ces couches dans S'étant connecté entièrement la couche d'un et puis enfin on rajoute une dernière couche dense de 1 neurones donc un dernier neurone de sortie qui n'aura pas de fonction d'activation donc si on précise pas il y a pas
de fonction d'activation en fait j'ai presque une bêtise un dernier neurone de sortie donc il sera complètement connecté à la couche d'activation à l'accouche de danse du Dessous ou 64 neurones qui sont juste de l'autre enfin juste derrière juste avant et puis on a une ronde de sortie ici voilà donc ça c'est la géométrie de notre réseau on va le compiler en précisant l'optimiseur donc l'algorithme de descente de gradient donc là on utilise un algorithme RMS propre donc là vous avez des liens ici vers les vers la librairie Queyras vous avez la liste des fonctions
d'optimisation d'optimisation d'activation de perte et puis les Métriques que l'on va voir juste après donc alors vous avez plusieurs des algorithmes pour faire cette fameuse descente de gradient il y a plusieurs stratégies on peut prendre de la vitesse ou faire des petits pas ou des bavariables etc donc voilà quand on prend RMS propre mais il y en a un certain nombre pour ce type de problème ça paraît une grande incidence le choix de l'optimisme la manière dont on va optimiser notre Modèle va pas être très important la fonction perte on va prendre une MSE on
est sur un problème de régression donc on va prendre une MSE et puis les métriques alors les métriques c'est quoi c'est des indicateurs qui vont nous permettre de voir la progression de notre apprentissage donc là les métrique on va en utiliser deux on a une métrique qui noteraitse classique qui en fait la même chose ne fonctionne perte mais bon voilà c'est Une métrique un indicateur comme un autre qui a du sens et puis on va prendre une autre métrique alors là qui va être une MAE alors la MAE on va aller voir la DOP ici
alors je vais agrandir ça je vais agrandir ça comme ça oui nous les cookies il y a pas de problème on va retrouver notre MAE qui est qui est qui est voilà qui est ici donc il a mis absolutera donc c'est L'erreur absolument moyenne donc c'est en gros l'écart en valeur la moyenne de l'écart en valeur absolue entre ce que l'on va prédire et ce que l'on souhaite obtenir donc ça c'est quelque chose qui a quand même du sens puisque si vous essayez de prédire une valeur vous avez l'attendez donc une valeur et puis vous
avez une prédiction comment comparer les deux donc on peut comparer en pourcentage on peut comparer en valeur absolue on peut comparer de plusieurs Manières en pourcentage c'est assez intéressant si on est sur des grandes valeurs si on est sur des toutes petites valeurs proches de 0 le pourcentage va pas du tout être adapté voilà donc en termes de métrique mais un grand nombre de métriques qui sont qui sont disponibles et il faut ensuite essayer d'utiliser la métrique qui est la plus adaptée au problème qui nous intéresse là on cherche on cherche à trouver une note
Entre 0 et 10 donc si on prend la valeur absolue entre de la moyenne de la valeur absolue de Descartes que l'on a par rapport à la prédiction et ce que l'on souhaite avoir on a quelque chose qui est du sens d'un point de vue voilà je l'exécute ça et puis maintenant je récupère voilà donc là on a initialisé notre fonction qui fabrique nos modèles et puis là maintenant on va récupérer notre modèle en passant la géométrie de Des observations donc un vecteur de 11 valeurs voilà donc un petit warning ça faut pas s'en inquiéter
et on a ici on affiche le résumé pardon ici de notre de notre modèle et quand on regarde ça c'est le résumé c'est ce que l'on a ici si je descends comme ça voilà donc on n'a pas la couche d'entrée n'apparaît pas mais on a nos deux couches denses qui sont ici donc chacune de 64 neurones et puis le nombre de Paramètres qui sont associés à ces assez de couches voilà et puis notre couche de sortie avec un seul neurone et puis le nombre de paramètres que l'on a ici au nombre de paramètres c'est quoi
c'est des poids plus le biais si on prend ici Cassin peut notre dernier neurone notre dernier neurone est interconnecté à tous les neurones de la couche d'avant donc ce neurone là de notre dernière couche est connecté au 64 neurones d'avant donc on A 64 points plus le biais ce qui fait qu'on a bien nos 65 valeurs voilà si on prend ici notre première couche ici on a 64 neurones qui sont connectés au 64 neurones de la couche d'entrée 11 neurones pardon de la touche d'entrée donc on doit avoir 64 x 11 + 1 ils font
avec des parenthèses qui font nos 768 paramètres donc on peut retrouver assez facilement ce nombre de paramètres et les paramètres de notre réseau de Neurones en fait c'est jamais que les poids plus les billets tout simplement voilà ce qui fait que pour notre petit réseau ici qui fait 120 128 euros enfin 129 neurones si vous coûte la couche d'entrée on a quand même 5000 paramètres ce qui est pas beaucoup ça mille paramètres c'est pas grand-chose mais si on est sur des réseaux de plusieurs millions de neurones on a rapidement un nombre de paramètres qui est
très très important De la séquence de la semaine prochaine voilà ok ça c'est la géométrie de notre réseau en instancier donc voyez en termes de code le modèle c'est 5 lignes c'est vraiment que 5 lignes on a beaucoup plus de code dans la préparation des données que dans la construction du modèle à lui-même sur ce type de problème voilà ensuite on va rajouter un petit callback qui va nous permettre d'enregistrer nos paramètres donc ça on Reviendra sur sur cette sur cette partie là donc on fabrique tout simplement un dossier de sortie pour ranger nos modèles
puis on va sauvegarder notre de sauvegarder notre modèle durant durant notre apprentissage voilà donc ça c'est un peu de la cuisine qui rase checkpoint l'école back en fait c'est jamais que des des fonctionnalités que l'on va exécuter cycliquement durant l'apprentissage donc là ce que l'on va Faire mais ça va être juste de sauvegarder notre modèle régulièrement à chaque époque de manière à garder le modèle qui sera le qui sera le plus intéressant on lui dit à chaque fois de sauvegarder le modèle que s'il a été le meilleur que le l'époque d'avant voilà c'était encore une
fois par un phénomène sur apprentissage donc on peut avoir une progression d'apprentissage et puis ensuite les choses qui vont être l'évaluation se faisant avec les données De test voilà ici on a l'apprentissage proprement dit donc l'apprentissage proprement dit c'est un modèle point feat on a la méthode feet de notre modèle donc on donne de manière assez intuitive on donne les données d'apprentissage donc X-Train et le Yin donc nos observations et les valeurs que l'on souhaite avoir on définit le nombre d'époques donc on va faire 100 itération sans époque La taille des badges donc on va
travailler 10 valeurs par dix valeurs à chaque fois à chaque match donc on passe 10 valeurs dans le réseau on récupère 10 prédictions à partir de ça on fait notre descente de gradient et puis on reprend 10 valeurs supplémentaires et puis on parcours comme ça tout notre data 7 et on refait 100 fois voilà le vert Bose donc c'est la manière dont il va afficher la progression de l'apprentissage Validation data ça ce sont nos fameux données de tests qui vont permettre d'évaluer la qualité de notre apprentissage donc on va avoir une information sur la qualité
de l'apprentissage avec les données de validation les données d'apprentissage ça veut pas dire grand-chose enfin c'est un indicateur mais puis surtout on donne les valeurs de tests les données de tests de manière à pouvoir faire une évaluation avec des choses qui n'ont Jamais été vu pour l'apprentissage voilà puis on passe notre fameux callback qui va nous enregistrer notre modèle voilà allez c'est parti donc là ça on est sur un modèle qui est microscopique donc ça va ça va assez vite c'est vite à l'échelle de ma petite machine ça c'est bien mais voilà un petit peu
la taille de l'écran comme ça donc si vous avez des Mac M1 et vous avez eu la chance de réussir à installer L'environnement dessus ça doit aller beaucoup plus vite j'imagine mais voilà faire notre apprentissage comme ça tue un petit peu donc pas évident peut-être prendre quelques questions s'il y a des questions peut-être il y avait des questions sur tout ce qui était normalisation standardisation voilà la différence entre normalisation et standardisation Ou alors pourquoi est-ce qu'on normalisait ou on standardisé pendant les X et pas les y voilà ce genre de choses d'accord en fait c'est
les entrées du réseau qui ont une contrainte de de comment je dirais d'écart type pour pas faire éclater le réseau quoi j'imagine que vous avez mieux répondu que je ne saurais le faire d'ailleurs mais après la différence entre standardisation et normalisation c'est Un peu obscur je sais que sur les sur des tableaux parfois on dit constantardise une colonne et on va normaliser une ligne mais effectivement ben n'attends répondait avec la normalisation c'était plutôt ramené entre 0,1 et -1 et 1 la normalisation et entre -1 et 1 là où la standardisation c'était plutôt de une moyenne
centrée divisée par les quartiers etc effectivement après dans les pour oui Effectivement par exemple pour un CNL on le verra plus tard mais les valeurs c'est bien de les avoir entre 0 et 1 et puis après si on normalise en entrée par rapport aux datacées donc en divisant par l'écart-type ça marche un peu mieux mais sans le faire ça marche aussi comme on se ce genre de considération c'est un peu flou on amène les gens à chercher oui oui tout à fait il y a une part un petit peu d'empirisme aussi dans tout ça Effectivement
on parle de normalisation une manière classique mais il faudrait peut-être qu'on a fini effectivement le terme qu'on utilise notamment à ses clients dans les images on fait pas pareil oui puis après il y a les termes de les couches de normalisation de base donc il s'agit bien de normalisation et pas de standardisation [Musique] après sinon il y avait des des questions Sur le choix de la taille des couches et du ou du nombre de couches ah bah oui grande question effectivement pourquoi 64 neuron n'est pas 32 ou pas de 156 et puis pourquoi les puissances
de 2 alors déjà des puissances de 2 parce que parce qu'on utilise des puissances de 2 par défaut je pense que la cause ça permet comme ça de mieux matcher la géométrie des machines bon après la dimensionnement du nombre de réseaux du nombre de neurones du nombre de couches Là c'est un petit peu il y a une part un petit peu de Odo mouillée faut être honnête ça fait partie ce qu'on appelle justement et on le verra ce sera assez quelque chose qui reviendra très très nombreuses fois dans tout le long de cette formation c'est
ce qu'on appelle les hyper paramètres veut dire que on a tout un tas de hyper paramètres qui permettent qui définissent la géométrie des modèles Les paramètres certains paramètres d'optimisation d'apprentissage et de choses comme ça et la détermination de ces paramètres et un problème très complexe on sait que sur des problèmes simples on n'a pas besoin d'avoir beaucoup de neurones donc c'est pour ça qu'on sent pas des centaines de neurones sur une problématique comme ça parce qu'on n'est pas systématique très complexe on verra sur la partie traitement D'image que en fonction du type d'image on va
essayer d'avoir peut-être davantage de profondeur ou des couches qui sont plutôt larges ça c'est pareil aussi c'est il y a une part de d'empirisme et d'expérience là dedans parce que on sait que plus les couches vont être au fond d'un réseau plus elles vont être capable d'appréhender des des grandes tendances des informations de fond voilà alors que les couches qui sont davantage proche de la surface vont Être davantage capables d'appréhender les détails voilà ça c'est quelque chose on reviendra utile après je sais pas il y avait des plus vieilles questions je sais pas si tu
veux aller prendre maintenant ou enfin je voudrais compliquer sur l'histoire des puissances de 2 alors effectivement comme disait Jean-Luc c'est c'est clairement pour se baser sur hardware c'est le binaire utilisé par la mémoire On verra dans les prochaines séances que avec l'utilisation de GPU on est sur des puissances des multiples de 4 ou 8 mais là aussi c'est à cause d'une conséquence du hardware qui fait comme ça qui est en fait permet d'obtenir de meilleures performances calculatoires entemporel en mettant ses valeurs là voilà tout à fait on a l'impression dans le logiciel qu'on savent franchit
du matériel mais en fait non il est tout le temps là On disait qu'il y avait d'autres questions qui étaient plus anciennes qui sont intéressantes mais peut-être on est on y répondra à la fin de la séquence je sais pas oui je vais essayer de pas traîner voilà ok bah voilà on a fini notre apprentissage ici je vais grandir donc quand on voit dans les dans la progression de l'apprentissage ici quand on garde les lignes on a nos indicateurs qui apparaissent donc on a notre fameuse Fonction de pertes ici notre MAE ici notre MSE donc
ça c'est la métrique qu'on a demandé ça c'est la métrique MSE et puis notre fonction perte il se trouve que c'est une MSE aussi donc c'est logique qu'on est la même valeur ici et pour la Losse et pour la MSE et puis on a les mêmes indicateurs pour les données de validation d'accord donc on peut voir qu'on a sans doute si on regarde au début ici voilà si on regarde par exemple de ce Côté là on va voir une diminution de alors si on prend la fonction de pertissime on voit qu'on a une diminution de
notre fonction de perte une diminution de notre MAEC identiquement pour les à notre MSE de se donner de validation test et pour notre MAE voilà bon c'est pas très pas très parlant de regarder les chiffres comme ça mais ça permet comme ça d'avoir un suivi un petit peu de ce qui se passe OK on a fait notre apprentissage regardons Un petit peu maintenant ce qui se passe donc là je fais je calcule on a récupéré quand on fait l'apprentissage comme ça on récupère une structure de données avec toutes les données à toutes ces données chiffrées
sont récupérées pendant l'apprentissage on les visualisera après là on va faire une évaluation donc on prend notre modèle on lui donne le X test et le y test et puis on lui demande de passer ça dans le réseau et de nous Donner le score de résultat ce qu'on a ici voilà donc ici voilà donc le score de résultat bah c'est nommétrique donc on a par rapport à notre 7X test donc tu as des données qui n'ont absolument pas servi à l'apprentissage sinon ça n'a pas de sens donc là on a notre fonction de l'os ça
ne va pas nous parler beaucoup puisque ça par contre on a notre MAE donc là c'est encore une fois la moyenne de la valeur absolue des écarts entre la Prédiction et ce que l'on souhaite obtenir donc en gros ça veut dire que entre des prédictions de notre réseau et des valeurs que l'on attend on a un écart en moyenne de 0,5 entre au niveau de la note y compris entre 0 et 10 voilà ok on va regarder notre courbe d'apprentissage donc ça c'est à partir de des données qui sont voilà je l'affiche ici qui sont
qui ont été redonnés pendant le processus D'apprentissage si je remonte très rapidement jusque là vous voyez donc on a notre modèle point fixe qui renvoie une structure de données historique ici et c'est ça qui nous permet comme ça d'afficher nos courbes voilà l'affichage des courses c'est du matelotline c'est pas très intéressant à regarder donc c'est pour ça que ça ça fait typiquement partie du module fidèle mais si jamais qu'une batterie qui affiche les valeurs Voilà quand on regarde la courbe d'apprentissage sur la MSE par exemple on voit donc c'est sur l'apprentissage en bleu sur les
données de test en rose en orange on voit qu'on a une progression très rapide et que sur les données de apprentissage en bleu on voit qu'on a une progression qui se poursuit c'est à dire que entre l'itération 20 enfin l'époque 20 et puis l'époque 100 on voit que ça a diminué voilà sur la MAE on voit la même chose Comme ça et puis on voit voilà on voit vraiment l'écart entre l'apprentissage réel et puis l'apprentissage supposé voilà juste pour voir il est très simple de récupérer un modèle donc là on va recharger le meilleur modèle
que l'on est et pas forcément celui que on a eu à la fin on a justement le phénomène d'action apprentissage donc on a une méthode l'autre modèle qui permet de récupérer le modèle qui sauvegardé en Fichier H5 tout simplement voilà et puis on peut le réévaluer ici très ça marche pas très rapidement parce que c'est pas ça va pas changer grand chose donc on voit que notre meilleur modèle on a été à la fin on était à 0,5 là on est à 0,47 notre première modèle était manifestement pas le modèle complètement à la fin voilà
si on fait une prédiction ici voilà on affiche les résultats voilà donc là je prends des données de du 7 de Test voilà des bouteilles de vin de la cave de test et on regarde la prédiction en garde les valeurs réelles et on regarde l'écart et on voit voilà que des fois on a des gros écarts et puis des fois on a des tout petits écarts voilà donc après voilà après il y a toute la problématique de l'évaluation du résultat et de la pertinence du résultat sur laquelle on pourrait on pourrait discuter pendant très très
Longtemps et ça fera l'objet de discussion qu'on aura tout au long de ce site de voir un petit peu comment interpréter interpréter un résultat est-ce qu'il est bon est-ce qu'il est mauvais et il y a beaucoup de questions qui peuvent se poser et en premier lieu desquels ok on a une classification ici mais cette classification elle est faite par des humains donc on n'est pas sur une situation Totalement objective non plus en gros ce que notre modèle il fait c'est qu'il reproduit le comportement il reproduit on va dire il essaye de reproduire l'expertise de nos
œnologues voilà on essaie pas de répertoire de reproduire reproduire le comportement d'un modèle physique puisque encore une fois chaque monologue est souverain dans son évaluation il le fait pas à partir de critères objectifs voilà donc on est sur la sur une prédiction De de comportement humain d'une expertise humaine et voilà donc on arrivera probablement jamais à avoir quelque chose qui soit totalement parfait voilà après globalement on est un écart de 0,5 donc on peut imaginer donc ça ce serait pareil ce serait des tests complémentaires à faire qui n'est capable quand même d'identifier des vins qui
sont très bons ou très mauvais et que voilà qu'après que quand les bons Les vins sont à peu près bons on est dans une marge de où des expert de toute façon que style humain aura une certaine tolérance dans un sens ou dans l'autre qui lui est propre voilà sur l'exemple de notre mot de la fin ici une autre exemple en sortie voilà un premier exemple [Musique] bon je vais l'enlever comme ça on reviendra peut-être dessus si elle est Question tout à l'heure et on va revenir ici ça c'est l'exemple d'une régression alors des régressions
avec des quelques dizaines ou quelques centaines de neurones permettent de résoudre des tas de problèmes qui sont déjà très très complexes très efficacement parce que encore une fois on est capable avec des quelques couches de neurones comme ça d'après on est des problèmes absolument pas Linéaires du tout avec des très très grandes complexité et de manière très très efficace voilà l'autre exemple avec lequel on va terminer c'est celui de la classification même bataille même topo même histoire même workflow simplement il y a une différence c'est là on prédit on essayait de prédire une un scalaire
alors un scalaire ça fait un vecteur c'est à dire que au lieu d'avoir un seul neurone de sortie on avait je passe 5 Neurones de sortie et en sortie de notre zone neurones on avait on avait un vecteur c'est à dire que c'est une régression qui était capable capable de prédire un vecteur voilà là la classification on a un réseau qui est complètement connecté absolument identique qu'une couche d'entrée des couches cachées une couche de sortie et on va essayer de prédire une classe d'appartenance on va faire une classification alors l'exemple que l'on Va avoir après
et qu'on va avoir tout de suite ce sera la prédiction de chiffre manuscrits le petit chiffre manuscrit alors ok ce sont des images donc normalement on devrait utiliser un réseau dit qu'on voulutif etc on va faire simple on va pas se poser de questions on va essayer vraiment de rester dans cette philosophie connexionniste on a un signal d'entrée le signal d'entrée c'est une image ok mais enfin c'est voilà l'image si jamais Qu'une matrice avec des valeurs donc on va prendre ces valeurs sans se poser de questions on va passer ça dans notre plastifieur complètement connecté
et on va essayer de voir si on est capable sans se poser de questions complètement connecté comme ça de voir si on est capable de classifier nos images alors pour faire une classification on va avoir une architecture qui va être très légèrement différente sur la fin et ça va se passer De la manière suivante je reprends je reprends mon feutre pas marcher bon je vais faire autrement comme ça je ne sais pas pourquoi il m'embête je ne veux plus attendez décidément je ne sais pas pourquoi pourquoi il veut pas me le sortir je vais chercher
mon feu feutre décidément [Musique] [Musique] voilà donc en entrée on a 74 on aura 784 neurones dans notre couche d'entrée tout simplement c'est bestial et là il y a vraiment pas d'intelligence enfin c'est du traitement du signal brut donc on fait par ligne ou par colonne on empile notre image et on a comme ça avec un vecteur en entrée de 784 valeurs ensuite on va voir un certain nombre de couches complètement connecté derrière et une couche de sortie notre couche de sortie On va avoir 10 classes d'appartenance du chiffre de 0 à 9 10 classes
appartenance possibles on va mettre 10 neurones en sortie voilà donc comme ça notre couche de sortie c'est 10 neurones qui nous sortent un vecteur de 10 composantes c'est 10 composantes on va avoir des valeurs qui vont être construites entre enfin dans R entre 0 et entre moins l'infini et plus l'infini voilà donc on a des on a un vecteur de sortie comme ça brut et on va considérer que Chacune de ces composantes correspond à une classe d'appartenance mais que ce soit humainement à peu près compréhensible on va transformer ce vecteur de sortie en probabilité caractère
alors transformer ça en probabilité et c'est un jeu d'écriture la simple caractéristique d'une probabilité c'est que c'est des valeurs qui sont plus entre 0 et 1 et puis que la somme des probabilités fait 1 on a 10 classes la somme de nos 10 appartements Fait une probabilité de 1 et pour faire transformer comme ça notre vecteur de brut de sortie en vecteur de probabilité on utilise une fonction qui s'appelle Softmax alors c'est notre fonction logistique améliorée quoi c'est une version on va dire étendue de notre fonction logistique vous l'avez ici ça va pas rentrer dans
le détail mathématique de ça mais ça se comprend assez bien par rapport à la fonction logistique c'est assez astucieux Et en fait notre vecteur qui est ici les transformer en un vecteur dont la caractéristique est d'avoir des composantes comprise entre 0 et 1 et donc la somme fait 1 voilà c'est génial parce que c'est exactement ce qu'une probabilité et on va considérer ça comme une probabilité donc bah si on prend la composante ici qui valait une valeur lambda ici ici on a une valeur qui de 0748 on va dire bah ça correspond à une probabilité
de 74,8% voilà et donc la Case d'appartenance ça sera le numéro de la composante qui est la plus forte valeur voilà donc par exemple ici on a cette composante qui a une valeur de c0748 c'est là qu'il y a une valeur de 0,201 etc et on considère donc puisque c'est cette probabilité de cette composante là qui est la plus forte valeur on va considérer que la case d'appartenance qui correspond à cette composante donc c'est la 0 une deux trois quatre voilà donc ça appartiendra À la classe 4 voilà donc cette super fonction Softmax qui permet
comme ça de transformer notre vecteur lambda en vecteur de probabilité somme égal à 1 avec des valeurs comprises entre 0 et une entre 0 et 1 et puis on a une deuxième fonction qu'on va utiliser qui s'appelle la fonction arkmax alors que la qui est assez simple c'est qu'elle renvoie le numéro de la composante qui est la plus forte valeur donc là la plus forte composante c'était Celle-ci donc c'est la zéro une deux trois quatre et donc air max de ce vecteur là nous renvoie la valeur 4 voilà tout simplement voilà donc c'est exactement un
réseau un réseau exactement identique absolument pareil sauf que on a une fonction d'activation à la sortie ici on passe on rajoute une fonction soft max et pour récupérer un résultat définitif numéro de classe on utilisera cette fameuse fonction arnaque du Résultat voilà on va voir ça à travers donc cet exemple de classification de petits chiffres manuscrits donc c'est un Data 7 qui s'appelle la ministre quelle date à 7 de Yann Le bien dans le vieux datacet qui est absolument emblématique parce qu'on retrouve dans tout un tas d'exemples qui est vraiment parfaitement adapté à ce genre
à ce genre d'exercice le workflow va être exactement le même une phase D'initialisation d'importation des librairies modules python on charge datacet on prépare les données donc un parti test une partie train le green test et la case d'appartenance à l'image voilà on va créer notre modèle faire l'apprentissage et puis évaluer le résultat voilà je reviens ici j'ai un gros message d'erreur de le petit dessin le petit dessin c'est pas grave voilà heureusement que j'ai un deuxième Écran celui là donc je vais le garder ici parce qu'il par servir on va les récupérer le notebook mix
1 ici voilà puis je vais afficher ça en plein écran je sais pas pourquoi elle le défense veut pas marcher voilà donc je passais assez rapidement sur la partie initialisation c'est exactement la même tambouille que tout à l'heure tant que voilà il y a un seul paramètre qui est une Histoire de la verbosity ici donc avec une overijde je les passe aussi et là on va les récupérer les données alors là on va faire très simple sur cet exemple là c'est que le ministre c'est un datacet c'est un des pierres de Rosette du monde de
l'apprentissage machine et du Deep learning en particulier on va le retrouver partout il est disponible dans pipers je directement dans la distribution qui rase donc là on va aller le récupérer directement dans la Distribution terrasse sans se poser de questions et là vous voyez donc une seule ligne ici on va récupérer le X-Train y rain x test y test directement voilà donc là ça c'est super pratique des exemples comme ça voilà donc là on a la géométrie donc on voit que le X-Train il est composé de 60 000 images datacès considérable 60 000 images de
28 pixels par 28 pixels chaque pixel étant un niveau de gris donc on est en monochrome Donc on est voilà c'est un tenseur en fait notre X-Train c'est un tenseur de 60000 par 28 par 28 par 1 puisque là on est on est sur on est sur des au niveau de grille on n'a pas des vecteurs couleurs voilà le ytrain c'est 60 000 tasses d'appartenance et puis la partie test là on est sur 10000 images et 10 000 classes d'appartements correspondantes voilà là aussi on va alors normaliser standardiser nos données là Effectivement excellente remarque tout
à l'heure enfin qu'on creuse ça pour avoir pour être bien rigoureux dans notre dans nos propos là la normalisation ou standardisation des données se fait très simplement c'est que on va diviser par 256 enfin par la valeur maximale de nos images par 256 voilà on va regarder ça comme ça voilà donc la valeur maximum c'est 255 on divise par 2556 par 255 et on a ensuite des images qui ont une valeur non les pixels sont Compris entre 0 et 1 voilà on va regarder à quoi ça ressemble voilà tout simplement donc les petits chiffres manuscrits
on passe résolution donc là ça prend un petit peu de temps pour dessiner donc voilà c'est pareil ça c'est une fonction d'affichage qui est dans le module fidèle récupérer puis regarder à quoi ressemble l'implémentation mais il y a pas 30 lignes de maths clip c'est pas ce qu'il y a de plus passionnant à regarder voilà Quoi ce sont les images d'accord donc c'est des petits chiffres écrits à la main donc des fois c'est assez intuitif et puis des fois des fois ça ressemble un peu des gribouillis quand même enfin voilà c'est pas c'est pas c'est
pas toujours intuitif à regarder on va créer une autre modèle alors notre modèle voilà donc je le crée ici donc un petit warning mais ça c'est pas grave voilà notre modèle vous voyez donc on a deux couches cachées on a des hyper Paramètres ici qui vont donner le nombre de neurones des couches cachées donc deux couches cachées avec 100 € de chacun on n'est pas très loin du modèle de tout à l'heure donc on a notre couche d'entrée avec 28 x 28 neurones on aurait pu mettre 784 et tout mettre à plat d'ailleurs on met
tout à plat ici donc là on récupère la matrice directement sur l'entrée on met tout à plat donc ici on va passer à quelque chose de un vecteur de 784 valeurs composantes on a Nos deux couches cachées avec une fonction d'activation relu et puis à la sortie on a notre notre nous dînerons notre couche de sortie avec notre activation voilà l'optimiseur là on prend un Adam ou l'autre serait pas changer grand-chose la fonction paire bah là on n'est pas sur calcul la différence la distance entre notre prédiction et notre valeur attendue non pas sur un
scanner Ou sur un vecteur mais sur des probabilités d'accord donc on va utiliser une Spark qui était agricole 330 reviendra voir un petit peu plus mathématiquement à quoi ressemble cette bestiole là voilà c'est une fonction perte qui permet de mesurer une erreur au niveau d'une prédiction de classification et la métrique qu'on va utiliser la métrique on va utiliser la Précision tout simplement qui est désactivitude si vous me traduire en français correctement avec le récit l'exactitude du résultat voilà donc j'ai appelé instancier notre modèle et puis on va lancer l'apprentissage ici voilà donc le temps que
c'est parti donc là on prend un badge size de 512 data 7 qui est assez grande à 60 000 valeurs donc on prend un badge size de taille assez importante et puis on va prendre ses époques quelque chose qui converge Assez vite voilà et donc j'ai diminue un petit peu la taille ici je vais dans le bon sens voilà que ça tienne sur une ligne voilà comme tout à l'heure on a nos fonctions de perte et notre métrique qui apparaissent sur les données d'apprentissage et sur les données de validation et donc on voit ici que
on a notre Racing ici qui augmente progressivement sur les données de validation des tests donc ça c'est Important et puis bon si on regarde notre métrique ici alors là la métrique d'une c'est parce que humainement ça ne parle pas beaucoup je suis en pierre par contre l'exactitude oui exactitude là on est à 96% de prédiction valables correcte et là on est à 97 6 voilà on va évaluer notre résultat donc exactement comme tout à l'heure mais c'est la même cuisine en fait elle a Même architecture donc sur nos données de test donc encore une fois
la fonction perte moi elle me cause pas mais par contre la queue ici l'exactitude sur notre nos données tests on voit qu'on est à 97,6 de 97,6% de prédiction correct voilà on va regarder notre courbe de d'apprentissage ici voilà donc la précision qui augmente en l'occurrence que on augmente plus vite au niveau des données d'apprentissage c'est classique on voit Qu'on avait quand même une petite courbe de petite courbe d'amélioration sur les données de test ici voilà donc pareil l'inversion en forme inversée sur les données de la fonction de perte on voit qu'on continue à descendre
un petit peu on va peut-être plus continuer un petit peu on aurait peut-être gagné quelque chose un peu plus loin voilà si on regarde on fait une prédiction ici donc là on va relancer ça Donc là je calcule refuge prédiction on fait une prédiction deux étapes donciras c'est une mise à jour enfin une évolution des dernières versions on voit qu'ici on a la prédiction donc on récupère la table de probabilité et on passe ensuite par notre fonction arkbacks pour récupérer nos classes d'appartenance ici voilà donc là ce qui prend du temps qui continue à tricoter
c'est le dessin des images c'est pas le calcul mais C'est le modèle est l'apprentissage est long mais l'utilisation d'un modèle extrêmement performant par contre ce qui est très long ici c'est le dessin des normalement non je pense que ma machine est en train de ramer quelque chose assez terrible mais ça va finir par arriver voilà voilà donc là ben voilà c'est les chiffres avec les classes prédites dessous et puis en rouge en avoir une quelque part voilà ici par exemple pour lui ce Gribouilly là c'était un œuf en fait non c'était un deux alors évidemment
la question c'est ok pourquoi il a pris ça pour un deux pourquoi il a pris ça pour un œuf pardon plutôt que qu'un deux quoi parce que là c'est il y avait pas une différence fondamentale par rapport à cette image là et là il a bien dit que c'était un deux puis là il a cru que c'était un œuf alors là l'explicabilité du modèle une séquence à part entière aussi on est sur Quelque chose de très complexe et en fait l'explication ne peut se faire que par les données et c'est pas en regardant le modèle
le modèle si une boîte noire et ça en regardant les données là ça c'est vraiment quelque chose qu'on creusera et qu'on a pris en noir un petit peu tout le temps voilà donc là bon on a une erreur là-dessus ensuite commencer à comprendre un petit peu les erreurs et les problèmes qui sont posés ben on peut essayer D'afficher toutes les erreurs rencontrées voilà donc ça honnêtement prendre ça pour un 5 c'était pas voilà et puis ça va prendre ça pour un deux aussi enfin voilà là on peut encore discuter sur le sur ce chiffre là
on peut encore discuter mais voilà il est quand même des fois où il s'est où il s'est trompé de manière un petit peu surprenante quoi voilà là c'était pas évident parce qu'il manquait Plein de morceaux mais voilà donc là on a tout un problème qui va se dessiner qui ne comprend un petit peu le les limites de notre modèle ici alors les outils dont on dispose pour essayer de comprendre un petit peu ce qui se passe l'outil de référence c'est vraiment la matrice de confusion alors la matrice de confusion c'est quoi alors là je vais
diminuer dans l'autre sens ce sera mieux comme ça une maîtrise de confusion c'est Un tableau une matrice avec d'un côté en abscisse les prédictions en ordonnée ici des valeurs réelles et dans un monde idéal tout se passe bien on devrait avoir un dans la diagonale c'est-à-dire que il y a pas eu d'erreur entre les prédictions et les et la réalité en l'occurrence on a des erreurs donc si on regarde dans notre diagonale ici on voit par exemple ici on a 99 donc entre les 1 pour les 1 il y a pas vraiment de problème il
sait pas il se trompe pas Beaucoup sur les par contre sur les je sais pas si on prend 96 si on regarde entre les pour les 5 par exemple les 5 il y a beaucoup plus d'erreurs c'est il y a des erreurs plus importantes au niveau des 5 et après on analysant comme ça notre matrice de confusion on peut voir où se situe les confusions c'est à dire quels sont les problèmes voilà que quel chiffre a du mal à trouver ou quel chiffre il a tendance à confondre avec quel chiffre et alors après comment Améliorer
les choses alors on peut jouer sur plein de paramètres on peut essayer de jouer sur l'architecture de notre réseau on peut rajouter des neurones parties rajouter des couches de neurones j'ai travaillé sur tous les hyper paramètres le nombre de la taille des badges etc mais encore une fois là l'explication l'explicabilité d'un modèle se fait par les données on est dans une approche inductive c'est par les données on ne Parle observation donc si on a une confusion forte par exemple entre les cinq 2017 ça au hasard peut-être qu'il faudrait rajouter des 5 et 17 enfin c'est
pas peut-être c'est que la meilleure manière de faire ce serait de rajouter des données dans l'espace dans lequel il y a des confusions d'où l'importance de cette matrice de confusion qui permet comme ça d'identifier alors là avec deux chiffres après la virgule c'est pas terrible Parce que on est quand même un résultat on est à 97,6 sur du traitement du signal une fois nos images on va traiter vraiment comme une succession de de pixels le sens posé de questions et on est quand même à 97,6 avec une poignée de neurones donc on a un résultat
qui est quand même pas mauvais du tout voilà mais si on voulait améliorer ce résultat il faut regarder la matrice de confusion pour essayer de voir là où il y a des erreurs et puis de rajouter des données Dans les pour essayer de diminuer les espaces de confusion voilà voilà ce qui est très important là-dessus voilà alors après la balle est à vous pouvez reprendre ces deux exemples et puis essayer d'améliorer le résultat d'essayer de jouer avec pour essayer de voir comment améliorer les choses de jouer sur tous les hyper paramètres les tailles de badge
les architecture du Réseau rajouter des couches rajouter des neurones avoir des des formes de réseaux qui soient qui soit différente on peut en jouer un peu avec data 7 on pourrait peut-être un peu également donc vous pouvez très bien prendre une partie apprentissage une partie test et puis des données sous le coude et puis rajouter les données les données manquantes rajouter des cinq ou des sets par exemple par rapport aux données en stock derrière pour essayer d'améliorer Le résultat voilà il y a plein de choses que l'on peut faire à partir de ces deux exemples
et ces deux exemples sont fondamentaux parce qu'ils prouvent vraiment des briques élémentaires et c'est pas les seuls briques élémentaires mais c'est de vraiment deux briques élémentaires des réseaux de neurones la classification la régression et avec une architecture qui est une brique fondamental qui est ces réseaux complètement connectés voilà Voilà on va arrêter là on va passer à quelques questions très bonne idée il y a deux questions intéressantes très récentes qui remontent la première concerne le fait que nos étudiants ont des résultats différents à ceux qui nous montrent notamment à cause de l'alléatoire est-ce que tu
veux plus détailler ah bah tout à fait alors ça je vais je vais détailler et puis complèteas parce que c'est un sujet très très vaste oui c'est la magie De nos réseaux de neurones quand on parle de reproductibilité etc etc on est dans un monde complexe là parce que notre réseau quand on l'a initialisé il y a des poids au départ et tous ces pois sont positionnés avec des valeurs aléatoires voilà et en fait de l'aléatoire on en a partout on en a dans l'initialisation des modèles on en a dans la préparation des datacées parce
qu'à chaque fois qu'on a préparé nos data 7 on a mélangé les valeurs Entre les données d'apprentissage et données de test à l'intérieur de chacun de ces 7 là aussi donc on a des aléatoires partout partout et évidemment quand on va lancer deux fois notre résultat bah là par exemple on avait un résultat on était à 97 63 à 09609 97 façons trois voilà et si on le relance ben on aura peut-être 98 22 et puis si on relance encore une fois on aura peut-être 96 85 etc etc et donc la vraie question ok c'est
bien on est Content avec ça mais déjà est-ce qu'on est capable de reproduire le résultat et et quel est le résultat finalement et donc bah ça ça fera partie de d'une séance d'une séquence une partie une partie importante de cycle et puis on reviendra plein de fois dessus c'est-à-dire qu'on a plein d'aléatoire dans la construction de notre modèle et dans notre apprentissage et pour avoir un résultat statistiquement significatif mais il faut le relancer plusieurs fois Alors on pourrait répéter exactement retrouver exactement ce 0,9763 il suffit d'initialiser les générateurs de nombres aléatoires les graines correctement celle
de ne pas épicène de Python etc et on aura obtiendrait exactement le même résultat mais il veut rien dire finalement parce que si on relance avec des valeurs une instance une instanciation différente des générateurs de nombres aléatoire on aura un risque très différent donc il faut relancer Plusieurs fois par un résultat statistiquement significatif voilà ça c'est vraiment quelque chose de fondamental et la reproductibilité dans ce domaine là c'est quoi ces reproduire une expérience pour arriver à la même conclusion voilà donc en gros vous lancez 50 fois ce modèle là cet apprentissage on a un résultat
en forme de courbe de Gauss et en analysant la courbe de gauche de ce résultat on pourra déterminer la valeur Moyenne entre guillemets de notre modèle mais il y a un travail statistique à faire derrière voilà je te laisse compléter si j'ai souvent des choses à compléter non ça me paraissait clair pour moi autre question que tu es posée à plusieurs endroits quel est l'intérêt des batchs leur taille et ce qu'il faut choisir un petit badge un grand match c'est une excellente question et les sites à la Réponse ça m'intéresse parce que c'est un problème
pareil on est dans quelque chose de mis en pyrique si on a des badges qui sont des choses factuelles si on a des badges qui sont tout petits on a deux inconvénients c'est-à-dire que le premier c'est que c'est très long parce qu'on travaille sur vectorise avec des tout petits vecteurs donc évidemment on va faire plein plein d'itérations ça va pas avancer très vite et puis le deuxième problème c'est que chaque Valeur à l'intérieur de ce badge va avoir une influence très importante donc si on a des valeurs un petit peu aberrantes par exemple dans le
Data 7 on a eu tout à l'heure donc on a des mesures avec des grosses erreurs ou des choses comme ça ces observations je cherche le mot que je retrouve plus aberrante le monde anglais aberrante vont avoir une incidence très importante sur l'apprentissage et on va voir un Apprentissage qui peut y ajouter si à l'inverse on prend des badges qui sont très importants de très grande taille donc ça va très vite puisque là on est un grand truc ah c'est pas tout seul parce que c'est vectorisé à fond dans un GPU ou sur un CPU
par contre on va lisser énormément l'influence de chacune des valeurs et on va avoir d'autres effets de bord donc il faut réussir à trouver une taille de badge qui sont un compromis entre la Vitesse d'apprentissage la granularité de cet apprentissage et dans les deux sens voilà je sais pas si tu peux apporter davantage de précision là dessus c'est quelque chose qu'on va voir assez régulièrement mais c'est vraiment donc la nécessité d'un badge bon il y a des il y a des aspects effectivement de computationnel effectivement un petit badge avec plus rapide calculer qu'un gros match
etc mais un petit badge on va Explorer data 7 plus lentement donc il y a un petit badge l'extrême petit badge ça sera un badge de 1 donc là comme tu l'as dit les valeurs aberrantes et les outlayers sont problématiques et un gros bâche alors on pourrait imaginer pourquoi pas un badge égale tout le Data 7 ou ben là après on verra plus tard ben justement la séquence sur tout ce qui est parallélisation etc qui nous pousse à aller vers des gros badges on voit Qu'avec les gros badges effectivement on atteint des des minimum quoi
locaux des la différence entre minimum globaux et locaux donc on attend des minimum locaux au moins bien que minimum que le minimum global avec donc avec des grands matchs on attend des minimums qui sont moins bien que des des moins moins minimum du coup que des minimum avec des petits badges voilà donc la descente de gradient effectivement est moins Efficace avec des gros badges si je peux picoter deux trois choses donc toute cette question du choix de la valeur de badge elle est très liée à un problème qu'on a qui est celui de du compromis
billet variant en sélectionnant en entrant dans le modèle à chaque époque on sélectionne un très grand badge c'est qu'on risque d'avoir c'est d'avoir avoir un bien qui va être une variance qui est faible mais un billet qui va être très élevé par Rapport aux données et à l'inverse avec un petit badge on va avoir une variance élevée mais un billet une variance faible mais un biais non un biais faible mais une variante et dans les deux cas en fait dans les deux extrêmes ça impacte la qualité de nos performances et la réalité c'est que la
bonne taille de badge elle se trouve souvent elle n'est pas dans ses extrêmes là et pour répondre à deux trois questions qui a eu quel type qu'est-ce Que c'est une grande valeur ou une petite valeur tout ça ça dépend aussi du Data 7 du jeu de données et de la complexité de ces données c'est sûr que sur un jeu de données avec beaucoup d'images et avec la génération d'image par exemple et bien c'est une beaucoup plus complexe et en fait augmenter la taille de bâche bon bah c'est pas si dramatique que ça on a beaucoup
plus de marge que sur un jeu de données comme tabulaire comme Celui qu'on a utilisé pour l'exemple du jour avec les vents qu'il faut garder en tête cette taille de badge il faut l'adapter aussi par rapport au jeu de données en fait la problématique de découpage des données c'est quelque chose qu'on verra alors qu'on reverra plein de fois encore une fois c'est on verra de manière simple je dirais rapide le problématique du coupage de Sécurité de Data par réalisation alors là de manière un petit peu plus comment dirais complexe la gestion des données durant pour
la durée pour l'apprentissage et quelque chose qui est vraiment les centrale forcément et qu'on verra différentes manières mais peut-être c'est le moment la de poser la question qui me semble être la plus intéressante qui a été posée une Bonne heure sur le sur-apprentissage effectivement qui dit la question est écrite comme ceci c'est dans le vrai monde il n'y a pas de souci de sur apprentissage pourquoi ce problème avec les générations des réseaux neurones j'ajouterai que bon c'est une problématique liée aux machines learning c'est pas une problématique spécifique au réseau de neurones mais peut-être si je
comprends bien la question c'est avec nos réseaux de Neurones à nous notre cerveau pourquoi est-ce qu'on a pas de problème de se rapprentissage le croyez-vous bien sûr apprentissage sans aucun problème ça nous est tous arrivé de de bachoter comme des malades et puis au bout d'un moment depuis voilà de de s'inventer des faux problèmes comme on dit s'inventer des faux problèmes c'est typiquement une expression propre sur-apprentissage je pense que sur apprentissage alors je Sais pas on peut là on peut témoigner à plusieurs mais je pense que tout se confrontés toute mécanique apprenante et confrontée au
risque de sur-apprentissage je pense et moi j'avais envie de dire il y a donc il y a les deux aspects effectivement il y a l'aspect taille des données représentativité des données là effectivement si on avait un Data 7 qui est avec tous les exemples du monde toutes les possibilités du monde Peut-être que on n'aurait pas de problématique de sur-apprentissage puisqu'on aura on aura tous les exemples du monde et donc on serait pas focalisé sur des donc le phénomène de sur-apprentissage c'est effectivement trop se focaliser sur apprendre le Data 7 d'entrée qui n'est forcément pas représentatif
de l'universalité mais si on avait des Data 7 universelles mais ça existe pas encore mais après pour revenir dans ton oui Pour aller dans ton sens effectivement nous-mêmes effectivement on n'a pas toutes les données du monde donc ce qui fait ce qui crée des biais donc nos biais de surarentissage c'est effectivement parce que parce que oui on est concentré on bachotte trop un problème qui n'est pas universellement c'est qu'on n'a pas toutes les données du monde donc après on peut réfléchir ça nous amène à la réflexion sur ce qui est un esprit fermé obtus je
sais pas le Racisme etc c'est peut-être un une problématique de de surimponta ici de sur apprentissage et pour les gens qui n'ont pas une vision universelle du problème quelqu'un l'évoqué dans le chat c'est l'histoire des préjugés oui des préjugés un préjugés [Musique] [Musique] [Musique] des images à la classification d'image mais pas seulement c'est à dire qu'on Peut faire exactement la même chose sur les courbes avec des résultats tout aussi tout aussi passionnants tout aussi efficace on gardera une autre famille de neurones une autre famille de réseau sera une séquence qui sera plus courte de 2h
et qui se fera en direct de jeudi prochain voilà n'hésitez pas à utiliser la boîte à questions si vous avez à jouer avec des premiers notebook on pouvait jouer Également avec notre boucle de de régression linéaire de polynomiale etc en fait tous les notes boucles qu'on a survolé très rapidement mais qui sont disponibles sur sur la distribution et n'hésitez pas voilà poser les questions si notamment des questions de fond c'est très intéressant parce que encore une fois c'est à travers ces questions aussi que que l'on progresse et on n'est pas on n'est pas une science
sur le sujet on est loin du Sur-apprentissage sur le sujet voilà