Bonjour à toutes bonjour à toutes et à tous bienvenue pour cette troisième séquence fidèle qui sera dédiée aux réseaux convulsif sur un cas pratique c'est un cas pratique toujours dans les locaux de l'IDRIS avec Janzé avec nous donc alors on va commencer cette alors ça va être un cas pratique aujourd'hui on va reprendre un petit peu ce qu'on a vu précédemment on va utiliser ce qu'on a Vu précédemment mais voilà très souvent on a des formations sur lesquelles on se focalise sur la substantifique moi etc etc aujourd'hui on va s'intéresser sur comment mettre son musique
comment utiliser ça toutes ces outils là toutes ces techniques dans un vrai cas avec des vrais données et là ça change ça change beaucoup de choses quand on est dans le vrai monde dans le on va se permettre de vous rafraîchir un peu la mémoire sur la précédente séquence mais très rapidement Vous pouvez voir le cas pratique voilà puis vous pouvez retrouver donc ça c'est le petit les profs habituels vous pouvez retrouver tous les supports l'environnement pratique toutes les corrections et les vidéos sur la fidèle point scénariste.fr vous pouvez participer vous inscrire donc à la
liste d'informations les paramètres et puis vous pouvez vous abonner aussi aux listes des vlogs et calculs donc qui Sont des listes académiques mais voilà si vous faites partie de mon académie plus vous inscrire sur ces listes qui sont d'excellents espaces de discussion par exemple vous pouvez poser vos questions voilà j'ai un mac M1 je n'arrive pas à le que installer docker ou l'environnement un environnement python dessus vous pouvez poser ces questions là sur l'une ou l'autre de ces listes également c'est des règles de communautaire donc là tout le monde peut Écrire tout le monde peut
répondre les fidèles la liste info elle c'est une liste Type newsletter donc vous ne pouvez pas écrire dessus voici limiter le nombre de mails qui sont envoyés dessus mais par contre des vlogs et calculs sont des vrais listes de d'échanges et de discussions donc si vous allez la réponse à la question comment on fait sur un Mac M1 on est premier voilà n'hésitez pas non plus envoyer cette information On a vu sur la première séquence ce qui était une réflexion et une classification sur la deuxième séquence on a vu ce qui était une combustion ce
qui était assez réseau qu'on voulutif qui permettait de traiter par exemple des images mais pas que et donc aujourd'hui hop pardon aujourd'hui on va regarder sur cette troisième séquence donc toujours sur les autres objectifs comment utiliser ces outils là utiliser ces outils là en Essayant de voir un peu ce qui se passe aussi donc ouais première séquence on avait l'historique les fondamentales les régressions les classifications on avait vu effectivement ces réseaux de neurones classiques donc on appelle ici DNN donc réseau neurones denses ou qu'on peut appeler aussi MLP multilayer perceptrons pardon donc là c'était les
on avait fait un cas d'études sur sur des images mistes donc Les chiffres c'est en deuxième séquence donc sur les réseaux CNN on avait fait le même cas d'étude la la dernière sur ces images qui représentaient des chiffres manuscrits on voyait que c'était bien meilleur avec les CNL donc effectivement les CNN c'est convulsionnel donc pour traiter convolution 2D pour traiter de l'image de dés composition 3T pour prêter de l'image 3D qu'on veut sur un D pour traiter typiquement une séquence de voix Et puis si vous regardez le le programme qui va plus loin après on
voit comment on traite des de la séquence un peu plus compliqué et des graphes des graphes etc donc voilà on en est au début mais on en est là on en est exactement là donc la deuxième séquence sur les réseaux convolutifs qui sont parfaits pour les images de dés et si on prend une image 3D on comprend en fait c'est des tenseurs mais tout le Temps avec des dons nous avons un objet un numérique qui représente un volume alors ça peut être une image avec des plantes couleurs mais ça pourrait tout à fait autre chose
aussi ça peut être des ça peut être un gradient sur une constante physique quelle qu'elle soit vous intéressez à tout objet oui est-ce qu'on pourrait avoir un petit retour des questions qui ont été précédemment posées dans la semaine ou la dernière séquence Oui bonjour [Musique] ceci l'équipe qui s'occupe de gérer les questions sur sur le forum on vous invite à y participer activement notamment à une vote les réponses qui qui vous satisfait et les questions que vous trouvez intéressantes ça permet de faire remonter les éléments intéressants qui des questions qui sont posées J'ai retenu quelques
questions qu'on va pouvoir revoir ensemble sur la session d'avant on va commencer par le sur-apprentissage et pas mal de questions sur notamment si on peut voir le sur-apprentissage sans faire de testing alors là la réponse évidente c'est non c'est le sur-apprentissage on l'observe réellement c'est quand on fait un test avec des données sur lequel on n'a pas encore travaillé dessus donc que L'apprentissage n'a jamais vu c'est le seul moyen d'être sûr de la capacité de notre modèle à généraliser et à donner des bonnes réponses oui parce que la définition du Sahara apprentissage c'est que on
est trop collé ou donner d'apprentissage donc pour vérifier si on réussit si on réussit le modèle réussi à généraliser et à ne pas trop se focaliser sur des features Biaisées qui est lié au datacès d'apprentissage le seul moyen c'est d'aller regarder sur des données qui ne sont pas dans cette d'apprentissage et puis c'est l'objectif l'objectif c'est d'être capable de faire d'avoir de bons résultats dans le vrai monde donc si on reste dans notre bac à sable on reste dans un monde qui n'est pas vraiment de quoi d'où l'important effectivement donc là c'est la base du
machine learning de définir un datacet d'apprentissage et en Data c'est de validation ou les données sont donc il y a pas de il y a pas les données se recoupent pas entre validation validation test ou apprentissage si je peux me permettre de compléter un peu ça en effet déjà cette séparation des datacelles ça peut aider à identifier parce que si on a mon constatant l'écart de performance ça nous indique un bien sûr apprentissage Mais l'inverse la réciproque n'est pas forcément vrai c'est à dire que si le datacent dans son ensemble est biaisé par rapport à
la réalité on peut avoir des scores qui sont corrects en entraînement puis en évaluation et ensuite passer en production et utiliser le modèle et être surpris de la qualité des résultats c'est en particulier ça se c'est une situation qui arrive comme assez fréquemment notamment quand le contexte d'acquisition du datacet est Très rigide mais qu'ensuite le contexte d'usage du modèle et lui beaucoup plus souple on va dire fondamental extrêmement importante qui est la qualité des données alors la qualité des données c'est à la fois parce qu'elles sont broutées est-ce qu'elles sont est-ce qu'il y a des
valeurs aberrantes dedans mais surtout comme tu parles de biais est-ce que ces données sont représentatives du vrai monde est-ce qu'il y a pas des pièges Dans ces dans ces données et qui vont induire des effets de bord un comportement peu éthique peu efficace peu satisfaisant du modèle et ça c'est un énorme énorme problème que là tu soulèves un problème central sur lequel on reviendra on reviendra constamment sur cet aspect là parce que c'est sur l'apprentissages enfin l'intelligence artificielle par apprentissage si tu as une mauvaise donnée tu as un Mauvais résultat et des fois ça se
voit pas voilà comme tu nous le dis on aura une séquence sur les aspects un peu sur les biais et sur les aspects éthiques 15 ou 14 je crois qu'on a nommé donc [Musique] et là ça fera partie d'un petit peu un des grands sujets central de cette de cette séquence merci autre question qui a suscité de l'intérêt sous différentes formes et Différentes formulations au niveau des masques de convolution il faut bien que les personnes comprennent que c'est pas des choses qui sont choisies mais des choses qui sont appris par notre modèle voilà c'est que
dans le traitement d'image classique d'autrefois d'entendre historique canal historique canaliste on prend une matrice de convolution on l'applique sur une image vous pouvez Faire ça avec Photoshop pour faire ce truc là mais c'est c'est très très classique dans le traitement d'image pour faire ressortir des lycées une image des bruits et une image et et là effectivement on choisit des carnets avec des valeurs qu'on le connaît donner un résultat donné là en fait on utilise le même principe sauf que c'est le réseau qui va prendre à mettre des bonnes valeurs c'est le réseau qui va trouver
lui-même ces fameux carnets qui Vont donner un résultat correct ça c'est quelque chose dont on parlera encore dans la prochaine séquence particulièrement des mystification de mathématiques voilà tout à fait j'ai un exemple d'ailleurs pour pour ceux qui veulent aller regarder un peu à quoi qu'est-ce qu'on peut définir à la main comme comme masque prenez par exemple le ce qu'on appelle le filtre de Sobel c'est un masque relativement simple qui permet de détecter des Caractéristiques qui sont les contours d'une image donc là pour les contours on a une idée intuitive de comment représenter un contour et
on peut à la main définir les poids de ces les valeurs de ces de ce masque mais quand on veut des caractéristiques plus complexes que juste les contours des caractéristiques qui qui vont par exemple déterminer trouver les zones où il y a un œil pour un chien ou des choses dans le genre là on va vouloir Des masques qui sont de plus en plus complexes qu'on peut pas deviner à la main et c'est là qu'on veut les définir automatiquement voilà pour pour compléter et illustrer ce que tu nous dis voilà vous voyez sur Wikipédia le
masque de Sobel appliqué sur la meringue de Montmartre que l'on voit ici voilà on pourrait répondre à une question qui a dans le chat effectivement on verra encore ensuite mais oui alors qu'on parle de tout ça C'est pareil on parlait de masque qu'on va utiliser de carnet le kernel c'est la même chose le le neurone qu'on veut utiliser c'est la même chose reparler de filtre aussi ça c'est la même chose sauf que c'est des références un peu différentes il y a un peu une fois en computer chaque monde chaque domaine un petit peu son vocable
concernant les données ou des choses comme ça En deep learning on parle d'observation et de Caractéristiques voilà et ben c'est pareil un petit peu pour les carnets le masque de convolution [Musique] donc on va retrouver de manière un petit peu différente et qu'il est le même objet derrière seul caractéristique c'est que c'est le modèle durant l'apprentissage qui va choisir les poids enfin qui va forger progressivement le carnet ou le filtre de pollution alors windication est-ce que c'est la même Chose un filtre Paso et un filtre passe-bas alors un filtre pinceau un filtre à bas effectivement
c'est un filtre mais c'est un filtre très particulier donc le filtre du Deep learning du CNL convolutif ça va être un filtre qui peut-être peut-être Paso passe bas même mot souvent il est pas passé au pas de balle il est plutôt pas ce bande quelque chose comme donc ça c'est le monde c'est le monde du traitement du signal mais C'est à peu près la même idée d'autres points qui ont été abordés nous on a fait un bon tour du coup je vais finir par un petit rappel n'hésitez pas à poser vos questions sur le forum
ça permet du coup à l'équipe qui s'en occupe de répondre en détail à vos questions avec avec des sources ou des liens des pointeurs va être d'autres sources et ça pourra être réutilisé par par d'autres plus tard quand il se poseront la même question que vous qui Peuvent s'ils ont la réponse ils peuvent même répondre n'hésitez pas si vous avez la réponse vous pouvez aussi participer ces communautaires c'est un travail collaboratif donc donc il y a pas de problème voilà je viens de renvoyer le lien de la boîte à questions n'hésitez pas si vous n'avez
pas à retrouver la boîte à question et réfléchir sur le sur la page de fiddle.cinaris.fr OK et continue alors oui aujourd'hui Comme on disait c'est une séquence pardon c'est une séquence très pratique très pratique mais on va d'abord revoir ce qu'on avait vu la semaine dernière et donc je vais le faire comme je vais dire ce que j'ai compris de dernière séquence donc la semaine dernière effectivement ce qui fallait donc ce qu'il faut garder en tête de la semaine dernière ce sont ces notions effectivement de neurones convolutif donc équivalent au kernel au filtre tout ce
que vous voulez Et est-ce qu'on verra d'autres d'autres neurones d'ailleurs parce qu'on a vu deux neurones différents on avait les neurones complètement connectés là ce sont des neurones qu'on voulutifs mais est-ce qu'il y a d'autres sortes de neurones mais on verra donc dans les prochaines séquences effectivement [Musique] à bonne question alors du coup peut-être il y a un piège effectivement il y a d'autres donc d'autres formes D'architecture effectivement oui qu'on peut appeler effectivement en euros on a donc avec cette idée effectivement que on va s'adapter avec un réseau DNN classique mais en fonction de la
donnée ce qu'on avait vu la semaine dernière une image effectivement le problème c'est si on l'attaque en réseau classique on a une telle proportion de possibilités de un environnement tellement complexe que cette nation vient difficile donc Finalement toutes ces articles futures CNL ensuite on verra RNN les transports les GNN etc c'est c'est du réseau neurones qui s'adapte à la structure de la donnée donc ça donc effectivement on verra d'optique de neurones qui s'adaptent à chaque fois une un certain type de données chaque type de données en fait nécessite d'avoir un outil pour les traités qui
soit à peu près enfin qui se démonte adapté et on a vu que les réseaux complètement connectés Effectivement on n'était pas capable de traiter les images efficacement de peine de leur taille et en fonction des structures de données on se rappeler avoir d'autres formes de neurones voilà c'était une grande communauté cette fois ensuite bon les réseaux convolutionnaires donc c'est notre modèle notre réseau de neurone dans son entièreté convolutionnaire pour le coup donc il traite les séquences conventionnelles Dont typiquement les images les images 3D les séquences de voix images 3D tient peut-être à noter attention il
y en a pas beaucoup des images pour des parce que là ce qu'on voit des nuages de points c'est pas une image 3D c'est c'est dans un environnement 3D mais c'est la surface que l'on teste ou alors des tout ce qui est morphing mais tout ça c'est de la surface le seul exemple c'est utilisé à ma connaissance et les images IRM donc Médical où là effectivement l'information de ce qu'il y a à l'intérieur du port et primordial là on est vraiment sur de la trois dimensions pure évolution 3D pure mais ça entraîne effectivement beaucoup de
problèmes on a vu déjà récurrents 2D c'est assez gros en 3D complètement énorme voilà ensuite on a vu tout ce qui était donc on vient d'en parler juste avant l'apprentissage et différencier effectivement l'apprentissage et la validation donc on A deux sets de données deux ensembles de données bien distinctes pour pouvoir mesurer effectivement ces problématiques de surapentissage ou de sous-apprentissage et puis de mesurer la qualité des skis capable de faire un réseau alors ça c'est aussi un problème qu'on verra dans 15 jours donc la prochaine séquence elle sera sur les maths et dans 15 jours sera
une séquence on s'intéressera à une autre forme de représentation de données D'utilisation de données qui est donnée textuelle mais on verra aussi l'art et la manière de pouvoir évaluer la qualité d'un modèle et de son apprentissage ensuite le drop out alors on l'a vu assez succinctement la dernière fois le droit de tahout alors il faut le ranger alors il y a peut-être on en parle pas énormément mais justement pour traiter ces petits problèmes de sur apprentissage on a un certain nombre de techniques qu'on va qualifier Effectivement de technique dit de régularisation et donc dans la
régularisation on va ranger effectivement le drop août la data augmentation qu'on va voir plus tard bon et après il y a les histoires la normalisation des entrées mais aussi tout ce qui est normalisation des paramètres ou avec des quais on verra plus tard on verra plus tard mais toute cette famille de cette famille de régularisation en fait C'est toutes les petites astuces qui permettent effectivement de corriger un peu le modèle à la marge on verra plus tard que le plus important c'est travailler sur les datacites mais à la marge on a des sept techniques de
régularisation donc le drop out en fait partie donc si vous vous rappelez en fait c'était à chaque itération d'apprentissage ont une certaine proportion de neurones on Éteint une certaine proportion de neurones pour que des neurones qui ne sont pas trop utilisés normalement on en étant en éteignant certains ils vont être plus sollicités donc c'est pendant pendant l'apprentissage et bien sûr pendant le l'inférence utilisation du modèle là tous les tous les neurones sont utilisés en fait si je résume ce que tu nous dis c'est que si on a des données pas bonnes on a un résultat
pas bon ça c'est à peu près assuré mais si On a des données qui sont bonnes l'apprentissage peut être plus ou moins efficace voire diverger même mais il sera plus ou moins rapide plus ou moins efficients frugal en fonction de ces petites techniques de régularisation qui sont finalement vachement importantes qui sont finalement c'est d'ingénierie d'abord donner des bonnes données ensuite le pulling alors le pulling on verra plus tard mais on le pulling c'est La réduction de l'image dans notre convolution on le voit juste en suite on revoit juste en suite les époques et les badges
ont déjà pas mal par mêlé donc une époque c'est lorsqu'on déroule l'entièreté du Data 7 d'apprentissage hop lorsqu'on a fini on revient dans une autre époque parce qu'on a besoin de continuer pour l'apprentissage c'est une descente de gradient c'est pas à pas donc on est généralement on fait plusieurs époques Donc c'est à dire plusieurs plusieurs lectures du de toutes les données pour l'apprentissage et les batchs donc c'est à l'intérieur de ces de ces époques on a vu c'est ce qui détermine nos étapes d'itération d'apprentissage nos itération ou là nos itérations nos étapes d'apprentissage donc à
chaque étape d'apprentissage pour chaque badge on a donc une mise à jour des poids donc le badge peut être plus ou moins grand on peut imaginer un badge de 1 Problématique un badge aussi grand que le Data 7 mais ça marche moins ça marche moins bien donc le meilleur badge c'est quelque chose entre les deux après il y a toute la science du badge on le verra plus tard voilà ça c'est le choix des hyper paramètres et encore encore de quoi faire quelque chose que séquences importantes regardez pourquoi on parle d'époque d'ailleurs qui a eu
l'idée d'utiliser ce Terme d'époque mais ça j'avoue que je sais pas je crois qu'on garde mais c'est le terme qu'on utilise époque épisode ça pourrait être une époque effectivement alors après les métrique les métriques alors les métriques c'est ce qui nous permet effectivement de mesurer comme son nom l'indique de mesurer donc de mesurer la performance du [Musique] comment notre apprentissage Alors dans les métriques effectivement on a plusieurs métriques mais il faut on a cette histoire de fonction de paires donc pour qu'il apprenne il faut lui définir une certaine métrique comme fonction de perte pour mesurer
effectivement les erreurs où il en est par rapport à l'optimisation ce que tu veux dire c'est que la métrique c'est pour nous les humains quelque part et puis la fonction perte c'est pour l'algorithme D'apprentissage oui d'accord quand c'est un outil de mesure donc pour nous et puis aussi pour le modèle spécifique pour le modèle et puis pour nous on a plein et la corrélation matrice la matrice de corrélation donc la matrice de corrélation alors ça va être pour visualiser nos données et nos résultats donc les relations entre nos données La distribution parce que justement voilà
on a un apprentissage on fait une classification et il y a des erreurs évidemment sinon c'est pas drôle quand même donc il y aura toujours des erreurs et après essayer de comprendre où sont les erreurs avoir quand une erreur de classification c'est qu'on prend des choses pour d'autres un panneau pour un autre dans notre cas aujourd'hui et essayer de comprendre quel panneau et Confondu avec quel panneau avec quelques principes c'est intéressant pour essayer de faire notre petit pas vers la voiture autonome avec le coronavirus on est l'état de PCR on est on est sensible une
vraie positif ou positif et donc c'est tous ces histoires positif donc c'est même pas notre outil donc ça va être notre outil principal et en fait la plus importante c'est cette histoire de shape donc on raisonne en vecteurs en Matrice en tenseur avec un certain nombre de dimensions et dimension et on va avoir en fait le nombre mais la dimension de nos tableaux leurs dimensions de priores donc c'est le D E raid des tableaux de indimension et avec cet outil de chef donc il faut vraiment avoir ça en tête donc même piece c'était c'est l'outil
de base alors sachant que danserflow dans pytorch on a ce qu'on appelle les tenseurs directement Effectivement on a on a cette histoire de shape ou de size mais c'est la même bête mathématique derrière il faut vraiment avoir ça en tête on manipule du temps toutes les architectures qu'on voit derrière au niveau calcul c'est c'est des tenseurs c'est du c'est du tableau c'est c'est de la matrice et du vecteur voilà puis on a très rapidement on l'a vu et on le reverra encore là la des tableaux a plein de dimensions on a une dimension Parce que
on a une image donc première dimension qui est le nombre d'image on a deux axes dans nos images on a deux dimensions de plus oui et puis après on a des couleurs oui et puis et voilà et puis alors si on va travailler sur des structures de données complexes plus on va empiler des dimensions et c'est vrai que au bout d'un moment quand on a des objets qui font 4 5 6 dimensions c'est voilà faut commencer à réfléchir un petit peu comment ça se passe quoi oui Voilà donc ne pas essayer un outil absolument assez
agréable à utiliser mais bon voilà il y a des petites subtilités voilà ça fait partie voilà on est c'est un mal nécessaire voir un bonheur utile voilà je vois une question est-il possible de d'aller on la prend est-il possible de visualiser le résultat de l'application de l'application des différentes couches de convolution sur les images donc oui il y a tout un il y a toute une recherche Là-dessus effectivement c'est un domaine compliqué donc on l'expliquabilité des réseaux de neurones mais là pour le coup effectivement de sortir en fait la visualisation de chaque couche sur de
la croûte convolutive c'est quelque chose effectivement qui se fait qui se fait depuis longtemps et là et là c'est encore un petit peu ce qui se passe un petit peu notre notre couche qu'on utilise Donc en entrée effectivement on a on a donc m layer qui se dessine comme donc si on imagine que c'est la première couche effectivement là c'est comme c'est représenté on va avoir une image disons aux couleurs donc effectivement le N va faire trois comme c'est représenté ensuite on aura un autre kernel ou notre fil convolutif donc là c'est notre neurone convolutif
d'une certaine dimension donc là cet exemple là trois Par trois ce qui représente souvent la réalité classique bon sachant qu'on avait comme on avait dit trois trois ça peut être 5 5 7 7 1 1 11 11 souvent du plutôt de l'impair ici un nombre impair histoire d'avoir un centre voilà et donc on fait une convolution donc cette fois-ci sur une image donc ça c'est une convolution 2D donc alors oui une différence quand on parle de convolution indé convolution 2D convolution 3D c'est bien la convolution qui est en pollution Indé ça circule sur une dimension
qu'on est sur 2D circule sur deux dimensions commission 3D ça c'est circule sur 3 dimensions mais c'est pas les dimensions du carnet effectivement la gomme on voit puisqu'on a un layer en entrée notre kernel effectivement il est en 3D mais c'est bien une convolution 2D et j'étais clair ou alors tout mélangé peut-être donc mais en sortie alors pour en sortir on va parler effectivement d'un neurone convolutif parce que Effectivement en sortie pour un calcul de kernel hop on obtient parce qu'on voit derrière la petite boîte orange effectivement en output effectivement on va obtenir donc un
petit carré puis le carnet se déplace à droite à droite à droite puis en bas on va droite à droite à droite et donc en sortir on obtient cette image dans la représentation 4 sur 3 4 sur 3 pourquoi 4 sur 3 c'est parce que effectivement là Si on est en mode ou le kernel ne va pas plus loin que ces bornes extérieures et à l'intérieur donc la 3 3 on voit que il part donc en haut à gauche il est capable de faire encore s'il fait un stripe de 1 et il est capable de
faire encore quatre pas plus [Musique] [Musique] 8 ça veut dire que notre kiernelle la couche suivante sera épaisse de 8 ça ce qu'on a ici là ça peut être une Image d'entrée mais en plus imaginer qu'on a du rouge du vert du bleu cinéma mais ça pourrait très bien être un tiers d'un réseau et au-delà on a trois plans qu'on peut titifs du même type que celui-ci qui ont été générés donc par trois neurones qu'on a voulu TIF donc on prend ces trois plans qu'on le Tif et puis on a fabriqué à nouveau on en
fabrique 12 nouveaux si on prend 12 neurones ici et en fait on peut en mettre autant sachant que ça peut se Réduire voilà oui très bien aussi ça voilà et puis des heures de grandeur sur des réseaux classiques oui 64 128 256 en profondeur mais comme ça oui un réseau de type je sais pas combien de couches à peu près ça augmente le petit à petit mais on est dans des valeurs oui 32 64 128 256 arrivent à avoir des profondeurs enfin qui arrivent empiler des centaines de Plans qu'on voulutif comme ça quoi oui exactement
alors après vous comprenez bien qu'il y a un problème de computation c'est pas trop monter mais ça des avantages effectivement des des réseaux bien larges comme cela en fait certains avantages qu'on verra peut-être plus tard bon ça c'est notre réseau global donc ça c'est ce qu'on a ici c'est une cellule pardon un neurone qu'on voulutif pour faire un plan convolutif et on voit ici Que ben on va empiler nos plans qu'on voulutifs progressivement de manière à aller sur des caractéristiques de plus en plus profondes de notre image finalement et au fur et à mesure que
on met des plans qu'on cultif comme ça on les réduit c'est ça et on gagne en profondeur oui alors c'est ce qu'on appelle le pulling exactement on avait vu que le pulling classique c'est le max pulling c'est à dire qu'on va apprendre la somme max sur un stride 2 donc en Fait c'est à dire que alors le Strike c'est le pas c'est ça le sac en parcours c'est le pas donc il faut imaginer allez on a une boîte 2 sur 2 hop on prend la valeur max de ce 2/2 et on se déplace à droite
de deux petits pixels donc ce qui fait que ici c'est à dire que notre petite fenêtre ici comprend on va la décaler sur notre image et si on a un travail de 1 bah c'est qu'on décale de 1 à chaque fois si on a un strike de 2 c'est qu'on on va faire des pâtes de C'est ça d'accord et donc et donc on obtient on obtient effectivement une réduction par deux donc de nos dimensions hauteur largeur la espèce de d'image avec plein de Chanel donc ici si on fait on prend un strike de 2 de
2 on a plus besoin de faire du pulling et on avait vu alors à quoi ça sert tout ça à quoi ça sert mais on avait vu la dernière fois déjà de mon premier principe ça Permet d'un point de vue calcul nombre de paramètres ça réduit drastiquement les choses qui est intéressant et après il y avait cette notion effectivement que un CNL un CNN était capable donc grâce à la convolution de traiter des objets qui sont n'importe où dans l'image au milieu à droite à gauche etc et grâce au pudding effectivement d'avoir une accusée variante
sur la dimension de l'objet petit objet un Petit chien grand chien petit choix chien loin c'est que quand on avait un réseau complètement connecté comme cette fin de réseau ici si on a une image comme ça on va avoir des neurones qui vont se spécialiser dans ce qui est en haut à gauche on se spécialiser dans ce qu'il y a à droite et puis ce sport enfin il se causent pas directement entre eux c'est pas là alors que si on a un autre système qu'on voulaitif oui le même Carnet va être appliqué à l'ensemble de
l'image et donc il est capable comme ça d'apprendre des caractéristiques oui sur une image qui sont quel que soit l'endroit ce sera dans l'image et voilà et donc là pourquoi ça marche mieux alors pourquoi ça marche mais si on n'avait pas ce système de convolution effectivement on serait obligé de faire d'avoir des Data cet énorme on a tous les exemples possibles de de chien à droite ou on pourrait le prêter avec de La date à augmenter chiant peut-être on verra plus tard mais bon ça marchera moyen là on a cet avantage effectivement ça réduit le
nombre de paramètres ça réduit donc ça profite justement de la structure des images pour voilà ça fait tout c'est tout bien et si on fait l'extrapolation avec une courbe par exemple dire que si on a un réseau quand vous l'utilise qui prend un des pour le coup qu'il n'y a pas de prendre une courbe qui apprend à reconnaître des Petits pics mais il sera capable de reconnaître le même la même forme de petit pique que ce soit en début de courbe en fin de courbe etc on n'a pas besoin comme ça d'avoir une quantité de
neurones pour être capable de reconnaître tous les petits recoins et qu'ils apprennent chacun la même chose de leur côté oui ok alors oui ce qui délimite chaque couche c'est il nous faut une fonction de d'activation donc Souvent effectivement de base c'est des relues des fonctions relus on les avait vu la semaine dernière il y a des limites certaines couches me semble-t-il que les pullings et Max pulling peuvent faire office de fonction d'activation c'est une fonction non linéaire c'est un max donc en fait entre lorsqu'on a un pudding on est peut-être pas obligé de mettre une
revue je crois et après peut-être ma question c'est le drop out on le voit pas l'heure Le drop-out on le met on l'avait vu sur les TP si on veut mettre du drop donc c'est petite technique là de régularisation on va le mettre juste derrière une une convolution un layer convolution et la fonction d'activation on la met ensuite me semble-t-il ou inversement voilà mais bon c'est une structure effectivement donc notre couche convolutive c'est ça l'important derrière effectivement il faut on peut y Mettre un drop à août norme donc tout ça c'est de la régularisation et
il y a pas de vraiment d'apprentissage dessus mais quand vous l'utiliser et notre et enfin notre fonction d'activation ou notre pulling et le drop out pour reprendre l'image simple c'est comme dans une classe il y en a toujours des personnes qui sont meilleures que d'autres quoi et on va dire de temps en temps à l'un ou à l'autre dire NON STOP là c'est Aujourd'hui c'est pas toi qui répond c'est toi c'est pas toi qui participe c'est qui partent voilà c'est les autres qui vont participer mais tu vois cette fois là tu tu participes pas ce
qui permet comme ça que l'apprentissage puisse se faire pour tout le monde quoi exactement et donc pareil pour les neurones on dit des neurones qui sont trop bons on leur dit de se taire pour que les autres apprennent un peu voilà chacun son tour et qui n'est pas qu'il Soit plus vider voilà voilà maintenant donc on avait vu un premier exemple avec la classe 7 Nice oui alors on a vu très propre qui est très propre alors ce qu'on avait vu on l'avait vu donc pendant on l'avait utilisé pendant la première fois on l'avait utilisé
avec un réseau complètement connecté on est on avait obtenu à peu près 80% de d'accueil ici donc c'est à dire 80% de bonnes réponses sur notre test sur notre validation Et après ensuite donc dans la semaine dernière on avait on avait fait ça avec un réseau convolutif et on était sur du 98 98 donc ça a bien montré le gain de performance que l'on avait avec avec un réseau qu'on voulait dire oui alors assez simple ce réseau convulsif il y avait deux couches il y avait du drop out ouais on avait mis un petit peu
dedans mais c'était un réseau qui était très simple Finalement et puis surtout sur des données qui étaient super propres parce que c'est super propre image très pratique toute propre tout une taille impeccablement lisible bon parfois donc c'est une écriture manuscrite parfois il y a les boucles qui sont pas fermés les images elles-mêmes étaient noir et blanc et en noir et blanc donc du coup on a qu'une entrée on a que oui pas de bruit 60 [Musique] 000 images exemple pour 10 classes en fait donc oui oui on avait je rebondis sur une remarque de Katia
on a été pessimiste sur le cnen avec le DNN le premier réseau qu'on a complètement connecté on était peut-être dans les 90% quelque chose comme ça mais avec le CNET non mais c'est ce que on est on était voilà on avait passé les Carolines 16% on était même monté je Crois 98% quelque chose comme ça d'accord les images 2D un D si on prend une courbe ou des choses comme ça quand ça s'intéresse à la forme un petit peu on a des résultats qui sont qui sont très rapidement bluffants donc c'était avec le BN donc
le réseau classique sans convolution et DNN danse ne ralent network on peut Appeler il y a plusieurs noms multilayer perceptrons en gros c'est peu de la couche classique voilà quand on a des neurones qui sont connectés à tous les autres neurones en couche voilà donc on a des coûts de neurones entièrement connectés maintenant on va passer sur un autre exemple et mets un exemple allez on va dire un petit peu dans le vrai monde on va s'intéresser allez on va faire un Petit pas vers la voiture connectée mais alors ce sera un peu dit pas
mais on va quand même aller dans cette direction là c'est de reconnaître les panneaux de signalisation les panneaux routiers quoi je voudrais faire remarquer sur les ministres on était sur l'image 208 x 28 images aussi mais on va voir qu'elles sont un peu plus gros c'est un peu plus gros ça commence à ressembler à des voilà un des vrais voilà des vraies Images prises dans la rue comme ça et avec des résolutions de plusieurs centaines de pixels c'est ce qu'on peut est-ce qu'on prend des questions est-ce qu'il y a des questions de votre côté n'hésitez
pas à nous interrompre c'est des questions c'est une remarque on vous fait une petite liste on est en plein en réponse de questions on fait une petite liste là on s'en va vers du la convolution un petit peu plus complexe donc on va voir Les problématiques du monde réel de la voiture d'ailleurs c'est pour ça qu'on a une petite Bale parce que on a un petit piment parce que ça va être un tout petit peu plus compliqué que ce qu'on a vu précédemment parce que là on va s'intéresser voilà un cas pratique quand on est
sur quelque chose de on verra que une grosse grosse partie du travail c'est la préparation des données voilà et ça alors là c'est quelque soit le domaine de l'apprentissage machine le Diable se cachant dans les données les données du vrai monde elles sont pas simples voilà ça alors je sais pas moi c'est ce que ça dit rien d'autre que ce que je viens de dire c'est juste pour la petite histoire on vient de s'apercevoir que nos données étaient gâtés alors donc il y a plusieurs comportements qu'on peut avoir les Comportements va se dire ah bah
plutôt vertueux qui dire là on est pas sûr des conclusions qu'on peut tirer les données qui sont pas bonnes on n'est pas sûr de ce qu'on peut en tirer quoi c'est un truc logique la deuxième approche c'est dire on va faire tout plein de maths et puis on finalement tout va bien quoi laisse je gère avec on va gérer donc ça c'est pas terrible parce qu'on va pas changer la réalité des données qui sont pas bonnes Et puis alors il y a encore une approche assez pauvre l'Empire ben on va apprendre on va utiliser une
intelligence artificielle pour produire de bonnes données bon ça c'est vraiment le plaisir allez alors on va s'intéresser donc à cette qui s'appelle GTS RP qui vient data cette allemand juste avant que vous commenciez du coup on en profite pour vous poser les questions intéressantes qui sont remontées oui Est-ce que vous pouvez expliquer rapidement le pulling le en quoi ça consiste et surtout comment ça fonctionne dans le reste du réseau alors le pulling bien sûr je peux peut-être essayer de retrouver le schéma si je te laisse commencer à expliquer oui alors le policier si vous pouvez
aussi expliciter deux trois techniques de pudding ça peut être intéressant oui d'accord bon ben oui ok alors on a parlé un peu un peu plus long dans la Semaine dernière mais le pulling effectivement ça permet donc c'est en fait donc ce pulling effectivement c'est ce qui va concentrer et donc le nombre de l'objectif c'est de diviser la taille de l'image par deux l'objectif c'est de diviser la taille de l'image donc on est bon on est sur des mécanismes un peu comprimés la semaine dernière on justifiait en premier lieu comme effectivement un gain en termes de
Voilà on voulait diminuer la résolution spatiale en or parce qu'on rajoutait des plans évolutifs mais on veut diminuer la résolution spatiale parce qu'on dit que on va s'intéresser à des données de plus en plus synthétiques donc on va diminue la résolution spatiale et en parallèle on va augmenter la profondeur en rajoutant des plans qu'on vous kiffe il y a plusieurs manières de faire du pulling Le max pulling et le max pulling c'est en tout cas en CNL les premiers CNN là c'est vrai ce qu'on voit c'est un peu l'histoire du CNL et Max Pauline c'est
quasiment 95 pourquoi ils vont habituel c'est celui qu'on prend il existe effectivement d'autres techniques de pulling on va parler d'haverage pulling qui va notamment servir ce qui va être très pratique c'est la vérité en fait en fin de réseau juste avant Juste avant d'attaquer en fait le côté dense ce qui va permettre effectivement de moduler la taille des images d'entrée en fait la convolution quelle que soit la convolution grâce à un average pulling on va voir une sortie avec une taille fixe ce qui fait que du coup on va obtenir un réseau de donc un
réseau qui va être capable d'apprendre avec une certaine taille d'image et d'être utilisé avec une autre taille d'image ou d'apprendre avec différentes pays D'images ou d'apprendre des avec des images avec des proportions donc plus ou moins larges etc on garde les proportions ça va nous permettre ce genre de choses là où donc sans le laveur exposé le classique qu'on nous avait montré là c'est que du coup notre modèle est adapté à la taille on lui définit sa taille d'image d'entrée parce qu'on va voir après c'est finalement c'est ça définit donc la liste de 28 pour
les pour les panneaux ça va être on Va voir plus tard justement et après le pulling à quoi ça sert après donc bon il y a déjà il y a cet aspect là effectivement cet aspect de quel que soit la taille de l'objet il va donc on va avoir une espèce de cuit-variance du modèle sur la taille de l'objet et après on rentre dans des considérations un peu plus complexes on verra peut-être plus tard mais sur la Notion de encodage de de transformation sur un espace latent effectivement ça simplifie l'espace latent on verra ça mais
effectivement tout à fait ça va rien laisser comme ça tout simplement comme le 10 juin Eric on peut utiliser la vergepring pour s'affranchir de pixels chauds en Nestor en astronomie oui effectivement alors concrètement ce que ça va faire c'est que si on moyenne alors si on moyenne ou si on prend les max etc on va finir par Faire disparaître le petit détail et s'intéresser à des choses de plus en plus synthétiques de plus en plus agrégées voilà c'est un petit peu l'histoire c'est plus on va descendre à l'intérieur du réseau puis on va essayer de
s'intéresser à des choses on oublie les petits détails on prend de la hauteur même si on est en profondeur et on va essayer de regarder les grandes tendances de nos images et de voilà regardez on peut regarder les petits Détails la convolution n'est pas réversible je comprends la question alors et après avoir tout ce qui est génération d'images unes etc donc si on peut avoir une espèce de on peut avoir une réserversive [Musique] merci merci alors effectivement alors ça ça fera bon là on va pas en parler aujourd'hui mais ça fera partie des des séquences
très intéressante on en parlait tout à L'heure des séquences autour de tout ce qui est autour encodeur et tout ce qui est variation c'est tout à fait passionnant ça va reprendre ces outils de convolutif et alors pour faire très simple c'est qu'on va faire des convulsions dans un sens et on va faire exactement l'opposé d'une convolution c'est pas des composition inverse l'évolution transposée pour à partir effectivement d'une petite image essayer de refabriquer une grande image Alors c'est notamment c'est un peu difficile mais en fait on voit moi il faut imaginer comme si on était un
peintre on va poser nos pixels comme ça puis on va passer notre filtre voilà allez on va reprendre hop on va fermer ce support là de l'autre fois sur le pulling on peut nommer aussi il y a du boy il y en a d'autres des blurre pulling mais bon voilà mais bon les max pulling c'est c'est vraiment ce qui est utilisé On passe à notre à notre data 7 GTS RB oui alors peut-être en parler là on voit on a des exemples mais ce qu'il faut peut-être remarquer oui ce qui est intéressant c'est que c'est
datacet 50000 alors que le ministre on était à 60 000 pour 40 places donc on a moins de données on a moins de données plus de classe c'est des données plus compliquées on voit dans les exemples qu'il y a des photos un peu difficiles elles sont etc donc il Va falloir va falloir gérer tous ces problèmes on quitte notre bac à sable qui marchait si bien la dernière fois et les photos voilà alors là l'histoire est plus compliquée donc on n'a pas un seul notre boucle en avoir au moins 7 comme ça après le découpage
en arbitraire mais en tout cas tous les cas de figure on va avoir plusieurs étapes la première étape ça va être de regarder un petit peu à quoi ressemble Votre data 7 et puis et puis d'en faire quelque chose que d'utilisable parce que là on a un Data 7 on a un tas d'image dans un coin mais peux pas les utiliser directement on verra pourquoi donc le premier objectif ça va être d'essayer d'en faire un datacet utilisable techniquement matériellement à tout point de vue c'est ce qu'on voit on peut pas foncer tête baissée il faut
même si c'est en datacès et on verra donc une fois qu'on aura Fait un Data 7 utilisable enfin une première conviction possible un petit peu ce que ça donne voilà on s'est exploiter nos données et puis on verra que bon ça marche mais ça marche pas parfaitement et on va se poser la question de savoir ok ça marche pas parfaitement mais pourquoi ça marche pas parfaitement qu'est-ce qui va qu'est-ce qui va pas qu'est-ce qu'on peut essayer d'améliorer etc et on s'apercevra que en fait on voit pas grand-chose on notre Apprentissage on a quelques métriques mais
ça va pas au-delà donc dans notre troisième étape on va regarder un petit peu comment monitorer notre apprentissage parce que là en plus on a des données qui sont documents à grosses donc si on prend la totalité du Data 7 et qu'on le fait tourner à l'échelle 1 sur notre portable une machine normale on a pour 20 minutes une demi-heure de calcul c'est assez long ce qui est rien du tout Par rapport à de l'apprentissage mais si on transpose sur un problème encore plus gros quand on lance un traitement qui prend pas deux heures trois
heures 10 heures sur un autre Janzé c'est comme un peu embêtant datant des 10 heures pour savoir ce que ça a donné donc le but du jeu ça va être de voir un petit peu ce qui se passe pendant l'apprentissage et d'essayer de comme celle de pouvoir superviser notre enfin superviser c'est pas le bon terme mais de pouvoir Surveiller notre apprentissage pendant qu'il s'exécute et on verra et puis être capable de l'arrêter de le relancer enfin voilà c'est un truc très bête mais des fois c'est bien de pouvoir arrêter quelque chose et puis de relancer
plus tard parce que ça prend trop de temps donc ça sera notre troisième étape la quatrième donc là on pourra voir un petit peu ce qui se passe et puis la quatrième étape ça va être ok on comprend un peu ce qui se passe on Voit qu'il y a des trucs qui sont bien des trucs qui sont moins bien et on va essayer d'améliorer ça comment on peut essayer d'améliorer notre apprentissage par exemple en rajoutant des données voilà l'étape 5 ça va être de dire bah ok on a un modèle qui nous donne un résultat
mais il y a peut-être d'autres modèles qui seraient intéressant que comment on peut essayer de comparer différents modèles comparer différentes versions de Data 7 pour essayer de Trouver ce qui va le mettre alors ça c'est là ça sera juste une illustration de la démarche on peut ça peut s'implanter de plein de manières mais la démarche par contre incontournable j'ai trop dates à 7 parce que j'ai fait 6 j'ai fait 6 j'ai fait ça mais lequel est mieux quoi finalement c'est pas évident voilà l'étape 6 alors ce sera plus un exemple de montrer comment quand on
commence à Avoir des traitements qui prennent du temps et en étant c'est je sais pas 20 minutes une heure deux heures trois heures alors quelque chose qui met une heure sur Janzé ça met 24 heures on va dire sur un portable c'est à peu près ça le ratio voilà dans le meilleur des cas cet ordre là avec un vaisseau pas avec un donc gros problème donc en gros soit vous transformez votre bureau en radiateur enfin en sauna en faisant tourner votre Machine nuitée jour dedans soit vous lancez ça sur des grosses machines de calcul alors
là en passant batch et on verra un petit peu comment dire d'un autre bout voir soumettre nous notre boucle en badge oui voilà parce que on a le droit d'utiliser des notes book c'est très pratique mais après voilà comment c'est quand même un peu par essence interactif comment on peut utiliser ça dans un autre contexte voilà puis là l'étape 7 sera simplement de regarder le Résultat un petit peu de notre de tous les essais qu'on a pu voir pour essayer de tirer des conclusions ou pas de différentes stratégies qu'on a pu essayer [Musique] [Musique] pour
une raison très simple c'est que si on prend 100% du detacette et que ça met 20 minutes ça veut dire que quand on fait un essai en étant 20 minutes et si on prend 0 1% Résultat il sera pas très bon mais au moins on aura tout de suite c'est ça permet comme ça de valider les codes ça c'est un paramètre que l'on a développé nous hein [Musique] c'est comme ça qu'on a fait là un deuxième paramètre qu'on va utiliser notamment dans le premier data 7 le premier notebook pardon c'est un paramètre de sortie parce
que première étape ça consiste à fabriquer on a une Pile d'image on va récupérer ces images on va essayer de remettre ça un petit peu en forme avec un peu d'ordre pour fabriquer un beau data 7 à peu près carré enfin en tout cas au moins de la forme en termes de forme et on va ranger ce datacet améliorer et on va ranger quelque part le quelque part c'est ce paramètre hotpot qui permet de préciser à quel endroit on va aller on va les ranger ça voilà on va faire en fait on a un datac
brute et on Va en faire un Data 7 utilisable donc ce travail de Processing important qui se voilà c'est sur un vrai projet de recherche c'est un travail qui prend allez 60 70 % du temps des fois complètement voilà c'est en fonction du domaine mais quand on est dans des domaines expérimentaux récupérer et mettre en forme les données et comprendre quelque chose bah ça représente ça peut représenter les deux tiers du temps sur sur un projet voilà Ça c'est vraiment quelque chose un des messages quand on veut faire passer voilà le dernier paramètre c'est l'endroit
où on va ranger notre petit résultat nos images nos modèles quand on a les sauvegarder tout c'est un paramètre qui s'appelle le run dire qui pointe quelque chose comme ça un endroit où on va ranger de petites affaires et on verra que là on va fabriquer un datacès intermédiaire on va Faire tourner notre modèle mais on va l'enregistrer au fur et à mesure pour être capable de le reprendre et puis de le faire redémarrer l'utiliser après on va pouvoir enregistrer des logs on va pouvoir analyser ensuite bref on va avoir tout un tas de choses
que de donner intermédiaires et la gestion de ces données intermédiaires c'est un point important sur une machine de calcul on les laisse pas traîner partout j'imagine non Mais oui oui c'est le point on revient sur des métrique en fait c'est toutes nos mesures intermédiaires effectivement on a besoin de pour payer sachant que les apprentis sages donc le mot là il reste un peu court mais sur des apprentissages longs vous imaginez bien que vous lancez pas un truc complètement en aveugle pendant plusieurs heures plusieurs jours plusieurs semaines si on regardait ce qui se passe pendant l'apprentissage
ouais un gros modèle ça C'est des jours et des jours et alors on en reparlera mais par exemple jean-z cette année on est très fier de d'avoir entraîné Bloom [Musique] le modèle de langage de génération de langage donc il faut savoir qu'effectivement l'apprentissage juste l'apprentissage en lui-même effectivement la version grosse était trois mois d'apprentissage ça a tourné en continu sur trois mois à peu près on Continue sur trois mois sur Janzé et qui veut dire que quand on a un apprentissage de trois mois on le fait pas démarrer au départ et on regarde à l'arrivée
ce que ça donne on va peut-être regarder un petit peu sur le chemin ce que ça donne oui et puis des gens en tout cas qui demandent effectivement voilà alors les paramètres qu'on va utiliser nous sur Janzé on va avoir un petit peu de ressources donc on va prendre un sky À 1 de notre côté mais vous de votre côté si vous êtes sur une machine qui n'a pas un gros GPU une machine normale je vous conseille de prendre un sket les gars à 0,1 ou 0,2 un 10 ou 20% du Data 7 et pas
plus pour la suite et de prendre l'endroit où sauvegarder les données le point sage data à l'endroit où sont enregistrés les données et où on va les réutiliser ensuite de prendre un point sage data juste à côté voilà si vous prenez un scale à 1 le datacia Intermédiaire que l'on va générer va être assez gros quand même commencé à faire quelques giga et puis surtout ça va ça va permettre je sais pas 10 minutes à fabriquer voilà voilà pourquoi on a ces paramètres là et quand on fait du développement on est obligé de travailler sur
des sous-ensembles pour éviter de gaspiller les ressources et voilà je sais pas si ma voix va tenir jusqu'au bout La première étape ça va être toute initialisé comme d'habitude c'est pas nouveau [Musique] scale qui va mettre à 20 donc vous conseille de mettre à 20 % on comprend que 20% des données et l'endroit où vous allez mettre les données le point data pour se fabrique d'accord on va les lire le Data cette brute d'origine on va le charger en mémoire on va regarder un petit peu à Quoi on fait tourner d'abord sur le CPU voilà
voilà parce que c'est voilà ça prend du temps de fabriquer des données même sur Janzé ça prend du temps c'est que si on fait la toute petite à 7 nous on va prendre aussi que 20% parce que si on fait la totalité du Data 7 il y a 10 minutes de traitement de fichier un manquablement alors on va regarder à quoi ça ressemble et on va voir que c'est après être simple et puis on va Regarder ce qu'on aimerait avoir mon idéal la réalité de nos images et on va ensuite faire un peu de cuisine
pour essayer d'améliorer nos images et fabriquer nos différents datacées voilà donc ça c'est notre notre première étape vera plus tard mais par exemple où il y avait les images fouetter on va aller voir un petit peu ce qu'il en est je sais pas où ma semaine va Tomber ici je vais donc là on est sur on n'est pas censé voir ça je suis désolé je vais me faire gronder diffusion monsieur j'insiste faire gronder pour de vrai voilà je me connecte dessus [Musique] ça c'est la procédure cette procédure pour accéder à Janzé on la redéa ça
fera vraiment l'objet de une vraie présentation bonne et due forme et vous allez retenir ça c'est Exactement ce qu'on a quand on est en local sur sur notre poste l'idée Jean-Luc on n'a pas le même retour d'image entre zoom et YouTube alors est-ce que le partage sera tombé oui c'est vrai alors je vais relancer le partage non en fait c'est bon c'est juste du retard d'accord ok ah oui oui pardon oui il y a 30 secondes d'écart entre YouTube et zoom voilà du coup bonjour YouTube dans 30 secondes après vous allez trouver sur Youtube et
un petit décalage de temps voilà donc on va en tenir compte notamment dans la gestion voilà donc là on est sur on est donc normal on partage de bien fonctionner donc on est sur dans notre environnement Jupiter on est dans un environnement un petit peu privilégié vous voyez on a un peu plus d'options de kernel et de choses comme ça sur Jean Zay mais c'est exactement la même chose Et si on prend nos notes on va retrouver comme ça la différence on va aller voir celui qui nous intéresse c'est le GTA B1 voilà l'analyse des
données aujourd'hui on est sur Jean Zay pour pouvoir utiliser le GPU ensuite mais sachant s'il y a la maison j'ai un GPU je peux y aller directement sur cet exemple il marchera et pas besoin d'avoir 3000 GPU pour le faire tourner voilà allez on est dessus on va exécuter initialiser tout ça donc Là ça va prendre un petit peu de temps je préfère un petit peu comme ça je [Musique] voilà voilà [Musique] mauvaise pub mais si sur Google coup là collab aussi ça va ça va passer alors l'initialisation sur Janzé un petit peu plus long
parce que la machine est ultra performante mais quand on accède à myriade de petit fichier c'est pas ce qu'elle aime le mieux voilà donc Là c'est bon on a nos deux paramètres ici donc là on va faire comme vous on va fabriquer moi je vais même prendre mais on va rester à 0,2 % on va fabriquer comme ça notre nos données à échelle on rencontre que 20% et mettre dans le point sur la tasse comme conseil de faire si vous n'avez pas mais même si vous avez un GPU toute façon là ça va être de
l'accès donc ça va être un petit peu coûteux mais si vous avez le temps après tranquillement Vous pourrez passer l'échelle 1 voilà donc ça on va lancer ça comme ça ça c'est les paramètres de d'overyd pour quand on est en intégration continue pour faire les correctifs on va lire notre data statistique alors voilà alors en fait le Data 7 il est composé on explique ici c'est que il y a une table d'index qui est le fichier CSV donc là c'est la carte d'index pour la partie test alors data 7 un peu particulier c'est un Datacet
Allemand vous trouvez toutes les références où les données d'apprentissage et de tests sont séparés volontairement de manière à ce que on puisse avoir un petit peu de sois plus facile de faire des comparaisons et puis surtout il y a une chose particulière c'est que la densité de panneaux dans la dans les deux sets d'apprentissage et de tests sont représentatif du monde réel dans le monde réel il y a des panneaux qu'on voit très rarement ils Apparaissent très rarement dans le test dans le datacet d'apprentissage voilà c'est pour ça que en fait là on a dès
le départ séparés sont séparés les deux et là je vois qu'il y a des tailles dans des largeurs et des hauteurs différents ça va être le problème et les rois c'est donc c'est région de La Fontaine d'informations en fait c'est à dire que c'est un datac il peut y avoir plein de Choses et la localisation des panneaux parce que un jeu peut être d'essayer de retrouver où sont les panneaux aujourd'hui on va pas utiliser n'importe quoi on prend la photo entière ce qui nous intéresse c'est l'image et puis la classe du ok le reste nous
intéresse pas on n'a pas besoin voilà donc ça c'est une petite fonction pour lire les Data 7 on lit un fichier CSV et on va lire nos données voilà donc là alors ça c'est un commentaire et ça Il est en train donc en chronomètre un petit peu donc on va lire le l'ensemble de d'apprentissages l'ensemble de tests alors le méta c'est juste un ensemble de références avec les panneaux jolis tout propre ok allez c'est où est-ce qu'il en est là il est en train de gratter donc oui ça gratte parce que là encore une fois
on a un dossier c'est le mauvais scénario c'est le pire scénario qu'on a Un dossier dans lequel on a 50 mille images dans 50 000 fichiers voilà donc lire 50 000 fichiers c'est quelque chose qui n'est pas très pas très confortable on veut que ça prend un petit peu de temps donc voilà ce que Jean-Éric qui nous dit qu'il a lancé sur un K80 depuis un certain temps le numéro 1 et c'est voilà c'est ça oui ça prend du temps c'est voilà sur un Mac M1 alors les finissent Par fonctionner c'est une très bonne nouvelle
ça prend ça prend quelques minutes c'est normal là c'est de l'accès fichier donc là c'est vrai que c'est un petit peu long il doit être occupé je vérifie que voilà ça c'est d'initialiser j'espère que ça va plus vite de votre côté ou alors comme disait Jean-Luc Effectivement c'est le format est vraiment pas terrible pour le coup on est sur un carrière c'est le scénario catastrophique donc vous imaginez bien vous voyez que sur des datas 7 plus gros où on peut pas le traiter comme ça il faut forcément faire utiliser des formats de données un peu
plus un peu plus construit voilà parce que là on a que 50 images ce qui rien du tout mais imaginez sur je sais pas pourquoi c'est long Si on a 100 000 ou 200 000 images c'est des millions d'images qui est facilement le cas ça va être vraiment catastrophique ça me semble [Musique] et qu'il n'y a pas de problème est-ce que là on lit le fichier [Musique] il affiche pas la barre de progression et on a que c'est un petit peu long on va faire plan B j'ai lancé ça sur ma Machine en parallèle n'est
pas normal que ce soit si l'on il y a des jours comme ça c'est terrible oui [Musique] alors que se passe-t-il [Musique] à l'eau support [Musique] on n'est pas seul à avoir des difficultés [Musique] On va aller voir on va aller voir votre tricher on va aller voir que le corriger en fait directement sur [Musique] oui là on est vraiment sur des Aillons là je pourrais répondre à Thibault c'est la restriction énergie oui c'est bien possible là on est sur un problème d'ailleurs en fait les fichiers on va lire tous les fichiers les chargés etc
les mélanger donc on est sur un Problématique dayo mais normalement cette vraie un petit peu plus vite que ça donc on va aller voir comme ça sur la partie corrigée voilà tac ça on va pas perdre de temps qu'est-ce que tu me fais voilà en grand écran d'ailleurs là ça a tourné sur Janzé c'est tous les corrigés que vous pouvez trouver sur sur le site donc les corrigés ou les trouver si je reprends le site fidèle à droite dans le menu à droite un seul menu vous avez ici Une notebook corrigée vous avez tous les
notes book qui en faut qui ont tourné en fait sur directement sur sur Janzé voilà donc là on est initialisation donc bon c'est une version un petit peu différente parce que c'est un tourné il y a quelques temps on est avec les mêmes paramètres 20% de données avec une sauvegarde le point slash data voilà et normalement ce qu'on aurait dû voir c'est quelque chose comme ça donc c'est ce que l'on a vu cette partie Là on est donc ça c'était la lecture et puis voilà c'est ce que on n'arrive pas à voir et on va
avoir une dernière fois si c'est arrivé très très mauvaise langue écran voilà donc là ça finit par charger notre nos dates à 7 et bon voilà on a 5000 images qu'on a chargé dans avec 50 000 fichiers donc ça fait plus de 50 ans c'est vraiment pas bon du tout voilà ça a mis 120 secondes finalement par des très impatient parce que c'est à peu Près ce que ce que vous avez eu de votre côté voilà 52 secondes sur un Dell Latitude c'est le modèle latitude qui a gagné voilà c'est le Mac M1 c'est fait
avoir et vous nous avez sans doute doublé largement doublé par rapport à ce qu'on avait vendu voilà donc ok donc là bas ça a continué les étapes d'après c'est d'afficher quelques courbes et là par exemple le premier Graphique que l'on a c'est le ratio largeur hauteur la taille des fichiers pardon donc on a des tailles de en nombre de pixels très variables ça veut dire qu'on a des images des petites et des grandes ça c'est pas bon du tout parce que quand on va donner un tenseur à un réseau faut qu'il ait exactement la même
taille toutes les images et la même taille si on regarde le ratio largeur hauteur mais on s'aperçoit qu'on a des images qui sont horizontales d'autres Qui sont plus verticales en mode portrait en mode paysage ça c'est pas bon du tout du tout du tout alors pourquoi c'est pas bon parce que oui on doit avoir ça rentre dans des tenseurs donc chaque image doit avoir le même si on peut pas faire de bonnes voilà sinon ça passe pas voilà donc là c'est la largeur on voit que on a des largeurs qui vont donner des images qui
font de pixels et puis d'autres qui font 150 pixels ça C'est pas bon du tout sur la hauteur on a des images qui font qu'on pixel du haut et d'autres qui en font 150 donc elle en a vraiment des images dans tous les sens et bon ben ça c'est des données brutes et puis un truc pas sympa non plus c'est que on a pas exactement et c'est l'objectif puisqu'il y a des panneaux qu'on voit plus souvent d'autres etc il y a des panneaux rares voilà ce panneaux là par exemple on voit pas souvent c'est mais
on va pas souvent Voilà donc ça c'est pas bon ça c'est les panneaux tels qu'on aimerait les voir dans un monde idéal tout propre etc et puis quand on regarde ici voilà à quoi ça ressemble [Musique] en l'occurrence j'ai dit une grosse bêtise parce que ça c'est le corriger c'est pour ça qu'il a marché l'autre fenêtre j'ai retiré si j'en faisais a fini un petit souci on va rester sur le corriger voilà Ici ben voilà les images telles qu'on les a réellement quoi donc on a qui sont vraiment pas visibles d'autres qui sont très visibles
c'est normal il y en a qui sont flous là on n'en voit pas il y en a qui ont des autocollants qui sont contre jour mal cadrés voilà non c'est pour ça que ils sont sur comment dire surexposer donc il y a vraiment un petit peu de tout des choses plus ou moins conventionnelles parce que entre ce Panneau là et espanola on va créer un truc en plus donc on est vraiment dans quelque chose on avait parlé de panneaux vont réaliser donc des panneaux tordus tout ça espèce de couleur en plus peut-être que voilà c'est
quelque chose voilà donc c'est pas qui n'est pas propre donc objectif essayer d'en faire quelque chose de bien On va essayer de travailler dessus voilà donc si on va essayer de faire c'est que on va essayer de réflexe dans le domaine du traitement d'image donc déjà remettre les images tout à la même taille alors là ce qu'on va faire c'est qu'on va les faire une homothétie dessus pour les reformater à la bonne taille c'est pas très grave parce que si on n'allonge un petit peu sur un côté c'est comme si on la voit un petit
peu de côté par exemple ce sens Interdit là très clairement il est vu un peu de travers on n'a pas un rond donc si on remet ça au carré bah peut-être qu'il va redevenir pour le coup peut-être que voilà mais c'est pas très gênant parce que de toute façon les panneaux finalement ils ont pas des panneaux ovale la forme voilà le fait que c'est ovale ou rond n'est pas un critère donc on va remettre ça au carré que ce soit sur un format carré et puis On va redimensionner quand il faut redimensionner pour que ce
soit tout le temps la même taille et puis on va faire différents traitements on va réaliser les les histogrammes de Providence ou de couleur on va en faire un jour noir et blanc et Jean-Claude parce que finalement est-ce que ça a besoin d'être en couleur c'est pas évident ça c'est pas évident alors on les panneaux en général il est quand même une information de couleur mais ce Qui est nécessaire effectivement oui [Musique] attention voilà mais bon voilà donc on va faire ces différents traitements donc là c'est un petit peu le code que vous avez ici
donc là c'est pareil c'est la démarche qui est importante c'est pas l'implémentation ici qui est super importante mais voilà donc on va faire ces différents traitements alors je sais pas si nous on dirait un mot parce qu'il est Davantage de spécialiste de ces traitements là mais franchement c'est classique je peux rajouter un point en effet c'est que là dans cette dans le contexte de cet exercice on a décidé voilà de redimensionner toutes les images en format donné mais si on prend un peu de distance par rapport à l'exercice qu'on essaie de s'imaginer un contexte d'utilisation
ou la classification et l'appliquer sur dans une voiture autonome etc peut-être Qu'entraîner le modèle en redimensionnant tout le temps les images au même format c'est pas forcément la bonne approche parce qu'on aura peut-être pas un contexte aussi rigide on va avoir des si on remet des contrastes égaux sur toutes les images qui sont bien découpées bon bah pour la classification pour notre entraînement ça va marcher mais peut-être que quand on va l'ex pour vouloir l'exploiter dans un contexte du siècle et ben justement On n'aura pas la qualité ses qualités là on aura justement des contrastes
qui seront mauvais potentiellement je vais donner un exemple imaginons qu'on est sur la route et deux panneaux qui suivent un très lumineux l'autre très sombre parce que il y a un spot lumineux sur l'un des deux où il y a notre parc qui se réfléchit dans le premier pas dans le suivant si on refait la même la même les mêmes transformations sur l'ensemble d'image on va peut-être Dégrader la qualité de celui qui en font et c'est pas forcément la proche qu'on veut de même là on a remis tout au format carré on pourrait prendre l'exemple
on pourrait même se dire là pour cet exercice on aurait pu se dire non mais il suffit de prendre tout je connais la liste des panneaux qui existent j'ai des images PNG de tous les panneaux qui existent pourquoi ne pas utiliser ça en jeu de données bah c'est la même question qu'ici peut-être parce Que c'est des données qui sont trop propres et qui ne rendent pas le modèle robuste à toutes les considérations qu'il peut y avoir dans la vraie vie un panneau un peu tourner sur le côté parce que quelqu'un s'est amusé à parce qu'il
y a eu le vent qui a tapé et qui et qui a fait bouger un peu le panneau c'est d'autant plus important que les il faut avoir confiance des faiblesses de chaque type de réseau de neurones en particulier ne sont pas robustes à la Rotation donc ça sera un sujet sur les invariants tout à fait tout à fait alors oui alors elles sont après sont déjà un petit peu sales quand même les photos ah oui il y a pas mal d'exemples un peu alors il y a la réalité et après il y a ne pas
rajouter et effectivement les traitements qu'on pourra effectuer appliquer sur nos données vont dépendre du type de données vont dépendre du type De réseau que l'on va utiliser derrière donc là à chaque fois il va falloir adapter là c'est une illustration tout à fait tu as raison de le souligner c'est à dire que le traitement qu'on fait ici est valable dans ce contexte particulier et c'est ça la difficulté c'est que chaque contexte va être un contexte particulier en fait en fonction du type de données qui vont être plus ou moins sensibles à tel ou tel transformation
et après peut-être faut avoir en tête je Sais pas si c'est très important mais dans pour les voitures autonomes l'idée c'est qu'il y a déjà un modèle qui détecte où est le ou s'il y a un panneau dans sa visualisation il va découper donc en fait le le réseau de neurones qui va traiter l'information de quel type de panneau c'est il a il a à peu près cette image en entrée c'est-à-dire un découpage assez proche du panneau une image effectivement une vision tu Aurais trois panneaux on va voir trois images de chaque panneau groupé à
ses proches du panneau voilà donc là ce qu'on va faire c'est que donc on va faire une série de traitement voilà donc on va prendre en faire en fait plusieurs datations avec les images en RGB donc en couleur un Data 7 avec une un traitement sur les histogrammes un Data 7 on va basculer en noir et blanc un intercepte avec un traitement sur Histogramme un autre type de traitement sur les histogrammes et puis encore un autre type de traitement sur les histogrammes locales et puis l'autre le cas et je me souviens plus voilà c'est le
contraste limitée d'être active histogramme et égoïsation et donc ça sert à enlever les images non contrastées c'est voilà donc on a nos images originales et nos différentes images améliorées transformer donc là on a nos images RGB Donc là c'est la différence c'est qu'elles ont été remises au carré c'est à dire que là elles ont et on en fait de résolutions on va faire on va en faire c'est ce qu'on voit dans le dans le code ici si on regarde le code pardon ah oui la taille des images effectivement c'est on va donc ça c'est pour
voir un petit peu à quoi ça ressemble et on va en faire une résolution De niveau de résolution parce que des fois ça sert à rien d'avoir des images avec une trop haute résolution et on va faire différentes tailles différentes solutions on était un peu on est un peu au dessus de nos 28 28 nos 28 28 de toute façon donc ça c'est les traitements donc on va avoir un jeu RVB RGB pardon avec un traitement sur les histogrammes donc là on voit que ce qui était moins visible devient plus facilement visible au moins pour
nous Voilà en niveau de gris avec les histogrammes sur le niveau de bruit et on voit qu'on peut avoir des traitements qui permettent de faire ressortir certains certaines informations on voit par exemple ici notre panneau 50 là il est très peu visible là il devient davantage visible en fonction des traitements que l'on va faire effectivement ils me sont là c'est un peu l'état de l'art pour pour lever voilà c'est des traitements Très classiques en images vraiment le truc classique et on va appliquer ça surtout notre data 7 donc ça c'est la suite du traitement donc
on n'est pas là pour faire du Biton on va regarder le résultat donc là on va le faire si on regarde ici la boucle on va le faire avec des images pour avoir une résolution de 24 pixels par 24 pixels sans même un petit peu en dessous de notre 48 pixels par 48 pixels et puis avec nos RGP RGB h e etc donc on en fait 4 variantes de résolutions différentes et on va faire notre notre transformation voilà on fait notre traitement comme ça on va regarder ici le résultat un exemple de ce que l'on
obtient voilà et donc ça c'est la première étape c'est de préparer nos données et surtout de mettre tout ça dans un seul fichier dans un fichier de format H5 un format normalisé et qui va contenir toutes les toutes à cette image donc on va réfléchi H5 avec le train 7 et 5 avec le test 7 de tout à l'heure et on va aller voir un petit peu à quoi ça ressemble juste une petite fille dans le métier peut-être qu'on peut revenir ici dans j'apprends avec celui-là la réponse le Data cette méthode correspond à quoi à
l'époque une formation dans le méta dans le alors le pardon le méta c'est Les panneaux de super propre qu'on avait aperçu tout à l'heure le méta il est juste là pour en illustration c'est si on reprend ici c'est ça le méta c'est les panneaux du code de la route que voilà qui qui sont qui sont qui sont super propres voilà alors je vais dans le dossier qui va bien je n'arrive plus à cacher l'onglet donc je vais faire comme ça C'est pas possible je suis désolé on va faire comme ça voilà bon tant pis on
a nos différents exemples ici d'accord donc on voit comme ça que en fonction évidemment de la résolution va avoir des fichiers qui font différentes tailles ça voilà donc on voit par exemple que notre data 7 qui fait 48 pixels par 48 pixels en RGB donc en couleur notre fichier H5 alors Le fichier H5 il contient les 50 000 images lui c'est l'intérêt c'est que là on a plus 50 000 accès fichiers pour récupérer le datacet on en a plus qu'un et notre fichier fait 139 Mo donc on voit comme ça que si on travaille en
basse résolution et en monochrome on a des images qui sont toutes petites qui font 12 data 7 il fait 12 méga 12 Mo et si on prend par contre une résolution Plus élevée en couleur on a quelque chose qui est beaucoup plus gros et là en plus là sur cet exemple là on a choisi un format de données avec des flottes 32 alors que si on regarde dans notre exemple implémenté ici donc là vous regarderez le code mais le format de données donc codage des entiers aussi très importants si on revient ici c'est un petit
peu vite tout à l'heure donc ici Là dans l'exemple qu'on dit à tourner on fait on encode nos pixels avec des flottes 64 donc on aurait quelque chose qui est deux fois plus grand deux fois plus que l'on a juste ici donc on aura le même résultat à l'arrivée donc des choses très importantes pour résumer c'est ne pas multiplier les accès fichiers donc essayer de regrouper et donner dans une structure monolithique donc un fichier S5 par exemple ça c'est très bien Choisir une préparation des données pour te donner un format homogène donc tout a même
résolution toute la le même format avec éventuellement des prêts traitements pour débruiter pour rééquilibrer les images des choses comme ça la troisième chose c'est bien choisir le format d'encodage des entiers donc là sur un faux de 64 on a on aurait une taille de fichier forcément ici on prend un flot 32 on a des dés de des données qui sont deux fois plus petites donc si On fait le calcul entre une résolution plus basse que du noir et blanc et un encodage sur 32 bits par rapport à une résolution plus grande plus de canaux couleurs
et un encodage 64 bits on arrive à avoir un facteur extrêmement important qui va de ici 12 Mo à 250 jours on va voir tout à l'heure s'il y a un intérêt de d'avoir une résolution plus importante dans 48 la question se pose pour la pour la Précision est-ce qu'il y a un intérêt oui donc il y a un peu répondu à avoir une donc une précision cette fois-ci un flot 64 par rapport à un flott 32 ou par rapport à un flot de 16 bah c'est assez donc on verra plus tard la norme c'est
flot de 32 normalement sauf qu'à très très particulier avec des Transformers fourriers tout ça ou on l'a peut-être la danse avec d'utiliser de toute façon quatre mais Bon là il faut se rappeler que la norme la norme réseau de neurones c'est d'utiliser le format flot ou deux finalement le format flotte parce que ça change flotte double ses flottes 64 c'est half c'est le 16 et flott 16 flott 16 bah on verra avec Jean Zay etc donc dans l'optimisation effectivement de la vitesse d'apprentissage c'est quelque chose qui s'utilise notamment reçu notamment sur tout ce qui est
GPU moderne et tout ça ça fait Partie des leviers optimiser la vitesse d'apprentissage donc si je comprends bien en fait c'est que quand on fait du calcul numérique on va facilement travailler en faute 64 parce qu'on veut pas perdre des morceaux mais par contre quand on fait du Deep learning on va fouiller effectivement une précision haute ben c'est on a des chiffres plus précis mais en fait on se pose la question est-ce que en raison de neurones pour Apprendre un réseau de neurones est-ce qu'on en a besoin d'une précision cette précision avec ces histoires de
descente de granions on n'a pas besoin on n'a pas besoin d'une d'une telle précision que le foot 64 donc du coup on peut réduire les précisions alors par contre après il y a le ratio effectivement leur flotte 16 qu'est-ce qu'on pourrait faire des choses on perd un petit peu de choses mais dans la réalité ça marche très bien la plupart Du temps donc en fait donc du coup voilà à retenir dans cette phase de préparation il est unique chaque problème va mais bon les grandes questions à se poser sont tout le temps à peu près
les mêmes limiter le nombre d'accès fichiers évidemment si on va pas passer comme on vient de le faire trop de temps et c'est à dire nos fichiers choisir le bon format d'encodage tireur typiquement du planning on n'a pas besoin d'avoir une Double précision on fait du calcul et ça c'est déjà bien parce que ça va réduire la taille de nos données avoir des données homogènes incontournables il faut qu'il y ait donné soit homogène par rapport au modèle voilà que tout est la même la même le même la même taille et puis avoir un travail préparatoire
alors ça c'est un sujet sur lequel on pourra revenir mais les données aberrantes se payent très très cher Même si les réseaux neurones sont très très robuste à la variabilité des données un moment donné les données doivent être on n'a pas parlé on est là on n'est pas rentré dans les dans des vrais billets que l'on aurait en plus sur des vrais données qui sont abordées encore voilà donc ça c'est vraiment les les points centraux préparer un datacet propre et utilisable ça sur un vrai projet c'est 45% du temps du projet pour essayer D'avoir des
données qui sont propres quelque chose là vous comprenez effectivement que du coup data scientist ingénieur il y a ingénieur réseau neurones ah comme les données ont vraiment l'importance c'est vraiment un métier c'est difficile d'être spécialiste en tout donc en gros c'est finalement c'est difficile d'être spécialiste dans tout ce qui se fait quoi en gros il faut avoir un bagage une expérience sur la donnée et Cumuler une expérience sur l'apprentissage voilà donc c'est une équipe le goût qui est dans un chercheur effectivement c'est c'est ouvert à tout le monde et ensemble on va gagner voilà c'est
la complémentarité là-dessus et c'est pas les mêmes ok ben maintenant on va aller voir on va faire un premier récit pour voir un petit peu ce que ça donne là on va passer très rapidement parce Que là c'est vraiment ce qu'on a fait la fois précédente on va une phase initialisation donc là donc on a fabriqué un Data 7 qui contient 10 ou 20% du Data cette original donc on va travailler donc avec 100% de ce data 7 amélioré on va travailler plus quelques dates à cette améliorer donc c'est pour ça qu'on a acheté la
1 parce que on prend 100% de notre data 7 mais qui a été fabriqué avec 10% des données au départ ou 20% des données au départ on Va le charger alors là poum ça va charger tout seul parce que on cherche plus qu'un seul fichier il y a plus qu'un essai alors là à charger un fichier qui fait quelques gigas sur une machine un machin ou sur Janzé là c'est on a pu deux minutes trois minutes de chargement une fraction de seconde on va regarder à quoi ça ressemble ça toujours pour être sûr de pas
se tromper de Data 7 on va le charger on va le regarder on va créer un modèle on va le faire L'apprentissage et on va regarder le résultat voilà donc là c'est là on va faire simple c'est qu'on va prendre on va prendre le corriger aussi voilà prendre ici temps passe on va essayer de gagner un petit peu de temps mais là surtout c'est pas très très original donc notre phase initialisation se fait ici donc on prend nos données dans notre espace dans notre data ou dans la sauvegardé donc là on va prendre bah Voilà
on va prendre des Data 7 en noir et blanc avec nos images 24 par 24 voilà parce qu'on peut après il suffit de modifier ça qu'on le sait de tirer 48 48- RGB par exemple si on veut prendre un grand un backside de 64 5 époques on prend la totalité de ce data 7 mais encore une fois qui qui est petit ou complet suivant la manière dont vous l'avez fabriqué et puis après c'est tout exactement la même histoire j'ai passé très vite On a des paramètres de alors là par exemple l'over ride il y a
quelque chose de sous parce que comme ça a été exécuté en match on a forcé on a forcé les paramètres ça c'est un détail donc on lit notre data 7 donc là on lit un fichier H5 et on récupère ce qui est dans le fichier H5 donc ça vous regarderez le code c'est très simple fichier H5 c'est à peu près incontournable parce que c'est un format Normalisé et en fait ce qu'on fait dans un fichage 5 et sauvegarde un dictionnaire donc dans ce dictionnaire dans un seul fichier H5 on va sauvegarder le train sec le
test 7 avec le X et le y et le meta on met tout ce qu'on veut et on récupère tout d'un seul coup en 4 lignes de code donc ça c'est vraiment très pratique dictionnaire on peut y mettre tout ce qu'on veut donc là ben on va le ok on va récupérer notre nous donner c'est ce qu'on a fait Ici voilà donc là on a récupéré même pas été capable de mesurer le temps que ça a pris pour le lire ça a été voilà on est passé de 120 secondes à une trace donc là voilà
ça c'est vraiment comment on va faire plein d'apprentissage là vraiment il y a un bénéfice direct de préparer nos données on regarde à quoi ça sert donc à quoi ça ressemble pardon donc là c'est une autre date à 7 avec nos images 24 par 24 et au niveau de gris donc on connaît vaguement Nos panneaux ça va être un petit peu compliqué pour certains mais bon globalement ça ressemble quand même à quelque chose on va fabriquer un modèle donc là c'est en fait non on a même trois modèles on a trois méthodes qui nous fabriquent
un modèle donc vous verrez il y a trois modèles différents mais qui ont vraiment beaucoup d'air de famille on peut juste regarder le nombre de couches par rapport très rapidement c'est-à-dire que on a Une couche non volive enfin on prend pardon 96 couches on va générer 96 plans qu'on voulutif avec un carnet trois par trois là on fait un coup de Max Pauline de 2 un petit peu de droite et puis on recommence donc là on a nos 96 plans qu'on voulutif en entrée on en fabrique 192 en sortie on commence à monter un peu
dans les tours avec un carnet le 3 par 3 un coup de bowling un coup de Burn Out et puis là cette fois on a des images qui sont assez petites et parce Que je vous rappelle qu'on est des images qui font [Musique] et puis on a nos 43 classes en sortie voilà et donc activation et on voit qu'on a une relue après chaque chaque évolution et à la fin on a un soft snack pour la classification donc là c'est très classique si on regarde les autres exemples de modèles donc vous pouvez jouer avec et
en rajouter voilà là on a un niveau plus Alors quand on prend les images 24 24 par 24 on pourra prendre que celui-là sans doute mais si on prend des images 48 pixels par 48 pixels on peut rajouter une couche de convolution parce que comme on a un peu plus de résolution d'un petit peu plus bas voilà donc vous regarderez c'est exactement la même architecture que tout à l'heure et puis on va déclencher notre apprentissage mais voilà c'est vraiment le même Algorithmique que l'autre fois et puis on regarde notre résultat ici issu de notre apprentissage
et quand on regarde le résultat voilà on a une précision inexactitude pardon de 94 c'est pas mal quand même voilà c'est pas mal voilà c'est pas mal mais on sait rien quoi c'est pas bien ce qui s'est passé quand même donc ça c'est ce qu'on a fait la dernière fois on a un résultat qui est pas mauvais sur des images basses résolution monochrome Un traitement qui a été assez rapide mon ami 12 secondes donc avec ce sous-ensemble la petite romain c'est pas mal pour une assistance à la conduite parce que mais pour une voiture complètement
autonome c'est peut-être alors si on rate 6% des panneaux on est bien d'accord 94% peut être content et 6% d'erreurs sur des panneaux on va pas garder beaucoup de points longtemps voilà donc ça ben ok c'est Un résultat et la question que l'on va se poser maintenant c'est d'essayer de comprendre un petit peu ce que un peu mieux ce qui se passe et là on va faire exactement la même chose mais avec des trucs en plus donc on récupère notre data 7 on le charge on jette un coup d'œil dessus c'est même comme ça ça
va changer on se fait des modèles le modèle qu'on va utiliser ça ça a pas changé non plus exactement le même code que la fois précédente il n'y a pas une grosse Grosse différence et par contre on va faire on va utiliser une fonctionnalité en plus on va utiliser du call back donc on va on va préparer on va rajouter une fonction qui va être des fonctions additionnelles qui ont été exécutées à chaque à chaque époque tout au long de l'apprentissage et qui vont nous permettre de enregistrer le modèle on va voir d'enregistrer le modèle
de mettre des lobes de côté et ensuite quand on va faire notre apprentissage ici on va Pouvoir utiliser quelque chose qui s'appelle ton sorboard et qui va permettre de voir en temps réel l'évolution de cet apprentissage donc au fur et à mesure de on va pouvoir voir au fil du temps la manière dont se fait ce qu'on appelle un outil de visualisation et puis comme ça on pourra regarder on pourra regarder la courbe d'apprentissage on va pouvoir regarder notre matrice de corrélation mais avec Un peu plus d'informations finalement on va pouvoir récupérer un modèle donc
le modèle il est enregistré au fur et à chaque époque on enregistre un modèle on reprendra le modèle qui marche le mieux et puis on va pouvoir le réutiliser ensuite voilà donc on n'est pas obligé ça permettra comme cette sauvegarder notre modèle et puis je sais pas de jour après une semaine après 10 jours après de reprendre le modèle et de l'utiliser voilà Donc là sur 10 époques selon on est sur quelque chose qui met une minute et demi à peu près si on est sur CPU on a forcément un facteur 20 donc là on
commence à voilà comment savoir un peu plus de traitement allez on va aller voir ça je prends donc ici et on va le regarder voilà donc bon là c'est la même là on commente les notes mais vous pouvez les faire Tourner chez vous donc là c'est le début c'est exactement la même histoire donc on prend la voilà le 24 24 tel mais vous pouvez prendre le notebook que vous souhaitez alors pourquoi travailler sur une petite base résolution comme ça ça va vite en fait donc quand on est en train de mettre en place de développer
de valider les algos etc c'est bien finalement de travailler sur des sous-ensembles de datacès sur des résolutions peut-être plus basses ok C'est pas le résultat optimal c'est ça donnera pas de très bons résultats mais une fois que l'algorithmie marche que le code marche après on peut passer des histoires de résolution effectivement faut voir cette histoire de Data c'est donc d'être plus on met une résolution donc plus le problème le problème devient complexe donc en face plus on doit avoir un réseau de neurones complexe donc tu avais des couches plus larges ou plus Profondes mais on
a vu que ça se reboucle si on a un réseau de neurones plus complexe on va devoir l'entraîner plus longtemps et avec plus de Data donc voilà parce que il faut s'adapter effectivement la complexité du problème que l'on a voilà ça c'est un peu l'histoire de aujourd'hui c'est qu'on est dans le domaine du compromis où il faut être à cette méta je saute comme ça data cette méta c'est des panneaux super propres idéaux comme ceux qu'on a dans Un bouquin c'est juste pour illustrer la question c'est une question voilà désolé désolé désolé c'était on l'avait
expliqué la dernière fois c'était c'est pour regarder la taille des images dans une à la sortie d'une couche de convolution c'est pour que le plan congolutif généré par le neurone compulsif et la même taille que le plan convulsif voilà donc là toute la partie ici exactement la même ça je passe très très Vite dessus voilà alors pourquoi afficher les données c'est pour être sûr de construire pas de Data 7 c'est tout bête mais ça c'est vraiment tellement classique voilà donc alors voilà ça c'est la partie spécifique donc là on va jeter un petit coup d'œil
chaque un framework à ce type de fonctionnalité d'une manière ou d'une autre ça simplement là c'est la manière de le faire avec qui race donc par exemple si On prend on va prendre voilà on va prendre ce callback là donc c'est un callback qui s'appelle une instanciation de d'un objet qui s'appelle TF1 donc on s'en fout.kérase modèle le checkpoint et on va lui dire il va nous permettre de sauvegarder le meilleur modèle à chaque fois donc il va regarder sur une sur une métrique donc le métrique ça va être l'exactitude et donc il va faire
un test donc ok on Vient de finir une époque il prend le modèle il prend le jeu de test il regarde ce que ça donne et si jamais c'était meilleur que l'époque d'avant il va sauvegarder le modèle et donc ce qui fait comme ça il va sauvegarder le modèle le meilleur modèle qui voit passer sous le coude vachement pratique parce que finalement il nous enregistre le modèle qui le meilleur modèle qui aura vu passer sous son nez Voilà après il y a d'autres variantes voilà par exemple ce call back là donc c'est le même avec
d'autres paramètres il va enregistrer à toutes les époques qui n'enregistre le modèle c'est le meilleur c'est pas le modèle c'est pas c'est pas grave il enregis voilà donc à chaque on fait 10 époques on aura 10 modèles enregistrés voilà un modèle enregistré c'est les poids c'est les poids du poids du monnaie C'est les points du Moyen et donc on a un modèle pour enregistrer un callback pour enregistrer le meilleur modèle qui est ici un modèle un callback pour enregistrer le modèle à chaque banque et puis on a un code-back ici pour enregistrer les logs donc
les métriques et les valeurs des fonctions de perte un chaque époque dans un fichier de log qui va pouvoir être utilisé par un outil à côté voilà donc on rajoute juste ces fonctions on fabrique donc cette Collection de callback et puis on va donner ça on va donner ça au moment de notre apprentissage un autre boucle d'apprentissage donc là on a on récupère notre modèle ici comme le pressé comme dans le cas précédent on le compilation comme comme à chaque fois on mélange nos données voilà ça c'est ça c'est classique et puis on fait notre
feat ici voilà alors ça c'est exactement comme la fois précédente et le truc c'est que par rapport à la fois Précédente on rajoute un paramètre callback et on donne trois cols enregistrement de notre manière modèle et un callback pour sauvegarder le modèle à chaque itération et puis à la fin on sauvegarde notre modèle oui c'est très simple quand on fait notre apprentissage on récupère l'historique enfin ces modèles points fit et puis quand on veut sauvegarder notre modèle Ces modèles.c à la fin donc on sauvegarde tout le modèle à la fin mais peut-être que notre meilleur
modèle sera pas le modèle de la fin puisque en fait si on a un petit peu sur apprentissage et il peut régresser un petit peu sur le chemin voilà voilà puis bon bah là on a notre notre boucle d'apprentissage qui se fait ici voilà donc ça prenne un tout petit peu plus de temps d'ailleurs mais bon c'est pas très significatif Et on a un résultat ici vous voyez comme à peu près tout à l'heure on est dans les 94 % un petit peu plus parce que ça peut varier un petit peu mais voilà et on
a donc si on regarde l'historique on voit comme ça notre courbe de validation progression peut-être un petit peu plus loin sur notre fonction perte pour l'inverse mais c'est à peu près la même conclusion que l'on va avoir on aurait pu aller peut-être un petit peu plus loin voilà Tout simplement donc là on fait une prédiction pour on reprend nos trucs nos données on les passe dans le modèle on a notre un résultat exactement comme on avait fait les autres fois mais là voilà on a une part historique on a les locks on aurait pu exploiter
donc ça [Musique] alors si vous utilisez juste une petite parenthèse si vous utilisez docker on a un petit bug dans l'image docker Actuelle qui est que l'exposition le port qui permet le numéro de port qui permet d'accéder à ton sorboard ne fonctionne pas et est fermé donc vous pouvez récupérer une nouvelle image donc vous refaites la récupération de l'image en disant un documentation et l'image qui là aujourd'hui en ligne permet comme ça d'accéder à ce la documentation était mise à jour et voilà c'était Et après on a notre matrice de confusion donc exactement comme l'autre
fois alors là elle est un petit peu plus significative si je diminue ça ici voilà [Musique] alors on voit que on n'a pas une super diagonale avec toutes les bonnes valeurs on voit par exemple ici que voilà il y a de si on garde ici on voit qu'on a des petites peaux d'erreurs qui sont assez importantes donc on voit qu'on a des Confusions on va aller voir ce qui est le panneau 22 avec le 16 par exemple c'est le panneau donc alors attention les populations étant pas homogène là on a les chiffres absolus on a
que deux erreurs par exemple ici là on a 18 erreurs mais ça met en relation avec le nombre la population de ce panneau voilà sinon le pourcentage d'erreur la tension manier les chiffres mais ça ça nous permet de savoir quel panneau a été Confondu avec eux voilà alors l'intérêt de ton sorboard que le temps passe mais en gros ce que va permettre de faire ton sorboard donc là vous prenez l'exemple et puis vous verrez ça marche assez bien plus on le fera le marché la prochaine fois c'est que ça va nous permettre de voir des
courbes en temps réel temps réel donc on en apprentissage long c'est c'est intéressant ça nous dessine cette courbe au fur et à mesure donc ça fait une Époque comme ça alors là en plus on aurait pas pu le faire marcher parce que 14 secondes quels on aurait pas eu le temps de lancer ton sorte qu'on serait arrivé quoi et quand vous avez un apprentissage qui met je sais pas deux heures trois heures quatre heures et ben ok c'est en train de mouliner et vous lancez votre temps sur board et puis vous avez le début de
votre courbe voilà vous avez autre point ici et puis vous revenez Vers 15 minutes après vous regardez vous avez et donc vous avez comme ça la progression c'est vraiment la progression de de des cours d'apprentissage enfin des métriques que vous avez choisi en temps réel quoi vraiment au fur et à mesure l'apprentissage et si vous voyez par exemple que vous avez un effondrement que ce stagne et que vous sauvegardez comme on le fait ici votre modèle vous pouvez arrêter le processus C'est pas grave toute façon le modèle est déjà sauvegardé et puis comme ça vous
savez ça permet comme ça d'éviter de laisser tourner quelque chose qui sert à rien il y a des méthodes earlingstopping ou tout à fait donc qui s'arrête juste détecte il détecte effectivement oui c'est ça tout à fait raison c'est que il y a des colbacks qui permettent aussi d'arrêter l'apprentissage quand on lorsque la validation [Musique] descendent donc il y a des autos des arrêts automatiques qui peuvent être programmées comme ça extrêmement facilement que ce soit pasteur parce que ce soit avec terrasse qui avait plusieurs questions effectivement alors à quoi ça sert de sauvegarder tous les
modèles pour revenir un peu en arrière mais après oui bien sûr on pourrait si on avait besoin d'économiser de la donnée Mais là on est sur des petits modèles c'est pas très grave on enregistre quelques kilos octets quelques Mo de de modèle voilà et alors effectivement c'est très gros modèle par contre déjà le meilleur modèle est pas forcément le dernier modèle le meilleur modèle alors si on sauvegarde le meilleur modèle à chaque fois bah c'est très bien mais des fois ça peut être intéressant de pouvoir parce que on peut recharger notre modèle D'ailleurs je ne
sais plus si dans ce menu là oui voilà c'est ce qu'on voit ici on va le prendre ici voilà donc quand on regarde ici les modèles qu'on a enregistré voilà on a un dossier modèle dans lequel on a le dernier modèle qu'on a sauvegardé à la fin on a les modèles à chaque itération chaque époque donc l'époque 1 l'époque 2 l'époque 3 les 5 et puis on a notre best modèle voilà là on a tous sauvegardé on s'est pas posé de Questions systématiquement dans des carrières voilà donc là tout ce qui à partir d'ici on
pourrait l'exécuter spécifiquement c'est-à-dire que ok on redémarre on initialise nos variables environnement etc on charge notre modèle là comme ici on fait une évaluation et puis on garde le résultat on fait une prédiction comme on fait ici d'accord donc tout ce que vous Avez à partir du point de l'étape 9 ici ça peut se faire en toute autonomie indépendamment de l'apprentissage voilà donc on récupère le modèle et on l'utilise tout simplement voilà ça c'est vraiment le truc super classique que l'on fait voilà et après bon bah là c'est un exemple d'implémentation donc on récupère notre
modèle on fait une prédiction et on regarde un petit peu ce que ça donne donc là vous pourrez le faire tourner on Passe un petit peu on va passer vite mais ça tourne tout seul c'est-à-dire qu'on récupère une prédiction on prend un panneau on pioche un panneau au hasard il fait une prédiction pour essayer de faire une classification puis on regarde le résultat donc là dans le petit exemple que vous avez sur le corrigé et alors là on récupère on récupère la sortie directement le vecteur de sortie du classifieur où on a nos Probabilités parce
que si on prend la plus grosse probabilité pour faire la classification c'est intéressant mais de savoir si il le croit à 90% ou si le poids à 25%, c'est quand même intéressant logique à la somme fait un peu plus dedans mais bon ok donc c'est pas tout à fait un pourcentage excusez-moi donc la somme égale sont du coup tu as raison c'est pas la sortie du logis ça c'est en fait est-ce que cette Immobilier par 100 pour l'affichage et on voit ici que donc là il nous propose une classification il est sûr à 97% que
c'est cette classe là 0 une deux trois quatre cinq etc et sur à 97% que c'est la classe 5 je t'a pris l'affichage du pic ici et voilà donc il a dit et puisque c'était d'accord voilà donc là la classe métal c'est pour afficher les résultats parce que visible mais c'est ça qui est au départ et là il S'est pas trompé voilà pas trompé voilà et donc là oui c'est certainement la suite là on est sur nos panneaux en niveau gris 24/24 alors la question la question la question en fait c'est ok on a des
petits on sait fabriquer des petits datasectes Ruth enfin des petits data 7 pas brut mais avec une égalisation localisée des niveaux de grille etc puis à l'opposé on a des gros data 7 avec des en couleur à haute résolution etc alors Bien si on a plein de couleurs plein de pixels etc les traitements sont forcément déjà on a plus de données à manipuler sur nos disques après frugal parce que on a vu qu'on avait un écart qui allait de 500 mégas à opté à 12 mo il faut avoir des écarts de taille qui sont très
très considérables entre les formats de données les tailles de résolution etc mais est-ce que c'est est-ce qu'on gagne quelque chose il y a toujours un espèce plus les images sont Grosses plus on a des temps de traitement qui sont importants là on est sur quelques minutes mais quand sur des jours et des jours et des jours voilà ça sert à rien de faire brûler de faire brûler de fin de cracher du CO2 pour rien donc il y a une espèce de voilà la vraie question c'est ok on aura ce problème là tout le temps quel
est le mot mobile voilà entre la durée de calcul la qualité des résultats et la quantité de données que l'on va alors et Ça cette question là il y a pas de réponse absolue on est bien d'accord si la seule réponse absolue qu'on peut dire disait tout à l'heure c'est qu'entre du flot de 32 du code 64 en fonction cela ça change rien au niveau de l'architecture du réseau ça change rien nulle part et ça marche aussi bien voilà donc voilà mais pour le reste c'est on a on a une vraie question qui qui n'est
pas qui n'est pas évident voilà ça c'est ce qu'on voit sur l'étape Alors oui je saute une étape désolé excusez-moi on a plein de questions qui se posent c'est quelle est la meilleure stratégie en termes de taille d'image de format de données de Data 7 et de choses comme ça et puis aussi la question que j'ai zappé c'est qu'est-ce que l'on peut faire pour essayer d'améliorer le résultat par rapport à nos données et on a vu on a vu qu'avec une autre matrice de convolution on a la possibilité de d'identifier les Panneaux pour lesquels on
a des difficultés donc l'idée c'est de rajouter des données par exemple si on a des erreurs qui sont faites sur le panneaux 80 imaginons que ce panneau 80 qui soit vraiment il fait une fixette dessus il a du mal à reconnaître ce panneau là parce que le confond avec le panneau 90 par exemple limitation à 90 bah on va rajouter des panneaux limitation à 80 d'accord des fois c'est OK des fois c'est pas dur de Reproduire des données ou d'en récupérer et des fois c'est très dure c'est très coûteux voilà là l'exemple que l'on a
sur non le GTS RD4 c'est ce qu'on appelle de l'augmentation de données donc on va rajouter des données mais des données artificielles c'est-à-dire qu'on va très simplement donc l'implémentation elle est un vrai code elle est vraiment c'est 5 lignes de code à rajouter finalement c'est très simple mais la philosophie est très intéressantes c'est Que on va prendre des images qui existent ok donc je prends des panneaux 80 km/h et puis on va les gondoler légèrement on va les distordre un petit peu on va les tourner un petit peu en faire une petite rotation on va
les on va transformer légèrement cette idée au panneaux tordus exactement voilà et voilà comme son nom l'indique data augmentation artificiellement les données parce que notre problème c'est toujours qu'on a Pas data 7 universel total voilà artificiellement ok voilà c'est on va essayer comme ça d'augmenter nos données à partir de données que l'on a déjà existantes parce que s'il faut aller sur la lune pour récupérer des données c'est très cher très coûteux mais voilà quand on a des données existantes et ben on peut voilà on peut essayer d'en fabriquer artificielle alors que ce soit dans pector
je suis donc eras vous avez des outils qui permettent de donner la Datasecte et puis lui automatiquement il va faire des petites transformations sur les images pour les donner à manger au réseau de façon aléatoire de façon aléatoire donc il va tourner les images donc flipper les images la commande et ça ça marche très très bien alors ça coûte un peu cher en termes de CPU parce que il y a un petit peu de travail à faire en plus on peut faire ça de manière manuelle donc vous prenez votre Datation donc là comme on a
fait un Data 7 améliorer ben vous faites un Data 7 encore plus amélioré dans lequel vous vous fabriquez de nouvelles données à la main de manière plus astucieux par exemple si vous avez un panneau tourner à droite vous faites une symétrie ça vous fait un panneau tourner à gauche donc on peut le faire à la main comme ça on pourrait poser la question on n'a pas beaucoup le temps pour rigoler mais on va poser la question nous-mêmes est-ce Qu'on pourrait faire la data augmentation en louchant peut-être effectivement c'est apprendre à conduire aux champs peut-être voilà
on peut faire des tas de choses comme ça ou alors de manière très bestiale c'est l'exemple qui est proposé c'est que c'est fait en temps réel au fur et à mesure de l'apprentissage il fabrique des données un petit peu aléatoirement sur le genou voilà et ça ça ignore beaucoup les choses et je vous Propose qu'on termine juste sur justement ce résultat donc là vous regarderez dans le code il y a une combinatoire qui était opérée pour pour faire ça voilà donc ça c'est le GTS RB7 je vais mettre un écran comme ça et on va
alors juste de récupérer des résultats pour afficher les résultats pour avoir un exemple un petit peu de ce que de ce que ça peut donner donc là on avait trois modèles donc ça d'une Manière ou d'une autre vous allez retrouver implémenter des choses comme ça parce que vous allez avoir plusieurs modèles plusieurs familles de Data 7 et puis on va vouloir essayer de comparer ces choses là donc nous on compare sur deux critères l'exactitude évidemment et puis aussi le temps le temps de le temps de traitement parce que il y a des modèles qui vont
coûter 10 fois plus cher voilà donc plus les Data 7 sont gros et les modèles sont Complexes plus ça va prendre du temps et donc par exemple vous voyez celui-là il met 107 secondes et puis à l'opposé vous voyez on a un petit data 7 et un modèle qui est déjà pris pour la taille on va passer à 40 secondes donc vous pouvez vraiment avoir des des différences de temps qui peuvent être très importants la question qui nous intéresse c'est alors couleur 24 48 48 parce que le mieux ben voilà on regarde sur sur un
a on s'aperçoit Que le 48 48 en niveau de gris échantillonner on a on a de meilleurs résultats avec les trois modèles quoi et avec des écarts qui sont importants on est sur du 97 98 et on peut avoir deux points d'écart comparer la couleur ou dans aucun cas la couleur nous a pas bonne information sur cet exemple ah oui sur les petits si la couleur est un peu mieux non c'est alors après faut faire statistiquement un bon nombre de fois mais là sur Quelques Rennes comme ça et donc là on est à 98% pour
faire grosses mailles on monte à 98% là sur un autre run on est à peu près à 98% alors là c'est le 48 ans donc ok la résolution apporté quelque chose mais finalement la formation de couleurs n'est pas très importante sur ce qui finalement voilà donc entre le noir et blanc on affecte reprend au niveau de la taille quand même donc voilà sur un troisième voilà sur Ces deux runes là bon ça permet c'est pas très significatif parce que c'est pas les deux fois les mêmes modèles ou les mêmes choses qui ont gagné on voit
quand même que notre modèle numéro 2 et voilà il est quand même un petit peu meilleur mais on est à 98 voilà c'est quand même dans les deux cas ici si notre modèle numéro 2 qui a donné le bon résultat avec une résolution 48 48 mais par contre entre le monochrome et le couleur C'est pas gagné c'est pas gagné donc la question de savoir si c'est mieux en couleur on noir et blanc est très très pertinent parce que il va falloir vraiment creuser pour être savoir décider donc s'il y a un doute faire des économies
de taille il y a pas de doute quand est-ce qu'on va faire et pour l'augmentation de données donc là c'est l'exemple ici donc là on a repris justement les deux modèles qui marchaient bien un 48 48 monochrome et à 48 48 RGB avec de l'augmentation de données et là on voit que on a gagné on a gagné on a gagné donc faut regarder par rapport au tableau précédent on a quand même gagné un petit peu on est autour on se rapproche des 99% on gagne en gros un bon point un bon pour son alors et
voilà et 1 % encore une fois 1 % d'exactitude en plus c'est une erreur de 50 % en moins parce qu'on est quand on est à 98% qu'on passe à 99% on divise par deux les Erreurs une question on utilise toujours que 20% de la data cette tournée on avait fait avec la totalité voilà donc voilà un exemple de workflow donc c'est un exemple d'implémentation donc c'est un exemple qui peut être perfectible encore une fois c'est un cas particulier enfin c'est des vrais données donc un vrai workflow sur des vrais données avec les vraies difficultés
que l'on a le format des Données la résolution des données les prêts traitements que l'on peut appliquer dessus les stratégies d'augmentation de données les stratégies de suivi de l'apprentissage d'analyse de l'apprentissage etc donc ça de récupération du modèle d'enregistrement du modèle tout ça c'est vous retrouverez on va le retrouver dans tous les apprentissages dans toutes les problématiques que l'on aura l'implémentation proprement dite sur cet Exemple elle est propre à cet exemple bien évidemment mais par contre la démarche elle est vraiment quelque chose de de très classique voilà fini un peu rapidement on a déjà lentement
avec quelques bons mais on est du coup oui on a un peu moins abordé le côté jonzés mais on le reverra bien plus tard on le reverra complètement GPU donc c'est une accélération par rapport au CPU complètement ce qui nous a permis d'utiliser 100% du datac voilà Tout à fait et alors là bon voilà ça c'est le résultat qu'on a là vous regarderez vous ne pouvez le retrouver comme ça en corrigé ici si vous avez des questions n'hésitez pas à utiliser une forme de question puis on pourra revenir dessus de toute façon je vais bien
rajouter alors le fait que je fais la vidéo au début de l'histoire de la régularisation donc là on a vu avec la date augmentation ça nous permet de gagner un petit peu de Points et mais bon c'est pas ça qui fait tout le truc il me faut bien encore une fois c'est la donnée c'est la donnée à tout est dans la donnée [Musique] on n'a pas détaillé comment exécuter un autre book en batch mais ça c'est très très bien documenté vous retrouverez donc dans le GTS RB8 des exemples il y a deux manières de faire
très simplement soit vous convertissez enfin vous exécutez directement le notebook L'exécuter en mode ligne de commande et ça marche très bien soit vous prenez votre notebook et vous le transformer en script de Python à titre personnel moi je trouve que de exécuter en ligne de commande notebook est quelque chose de très intéressant parce que vous récupérez un résultat qui a un autre book avec des graphiques exactement comme si vous l'aviez exécuté en interactif donc ça ça c'est très bien et c'est une seule ligne de commande c'est La commande Jupiter NBA Converter qui marche à la
fois sur Janzé que sur votre machine votre poste de travail voilà il y a rien d'autre à dire sur cet aspect là c'est très bien documenté ça marche tout seul voilà le rapport s'en a vu c'était voilà on a terminé on reviendra sur voilà on va arrêter là on reviendra sur tous ces que vous ayez encore un petit peu de temps pour des questions potentiellement on a dépassé le temps donc Il y aura des couples sur l'enregistrement [Musique] on reviendra sur sur un résumé sur une séquence supérieure la semaine prochaine et ça c'est important très
important la séquence mathématique de de Laurent donc là ça sera autour des mathématiques vu mathématiques montrera effectivement comment se fait cette fameuse rétropropagation ce qu'on peut trouver à l'intérieur des réseaux comment boire un Petit peu ce qui est à l'intérieur de nos réseaux etc donc là ce sera des maths mais donc là ça c'est fait c'est du dessin pour faire peur c'est des fausses équations et ça sera très très accessible ça ne sera pas bon voilà quelque chose de très très didactique des mathématiques que l'on aurait aimé les avoir tout le temps voilà ça sera
très très facile d'avoir on reviendra après on passera quelque chose d'autre mais on reviendra sur nos réseaux Convolutifs et de manière très importante et on reverra tout ce que l'on a vu ici quand on parlera des autos encodeurs et des variations codeurs donc ça c'est dans deux trois séquences et ces auto encodeurs et ces variables auto c'est des réseaux qu'on voulutif et on va retrouver tous ces aspects là dedans et donc avec les encodeurs et après on va voir on est sur le côté général on va générer des images Et toujours avec une brique de
base qui sont nos réseaux politiques voilà désolé pour les fouillages pour le code n'est pas voulu tourner tout à l'heure mais bon c'est pas très grave ça c'est ça fait partie du jeu un petit peu du direct vous avez des questions oui alors il y aura effectivement le calendrier affiché calendrier le calendrier sur le site effectivement il y a des pauses pendant les fêtes Maintenant en plein écran ici donc voilà les donc la prochaine séquence ça sera la démystification des outils mathématiques on passera ensuite sur les stratégies d'évaluation des modèles alors on a vu qu'on
pouvait utiliser des métriques mais les dates il y en a pas les dates on les a juste de sous aussi donc démystifier les mathématiques on dit un petit peu ça c'est bien la semaine prochaine jeudi 8 décembre la semaine prochaine on a le 15 décembre Les les tout ce qui est en betting donc les stratégies d'évaluation des modèles et puis comment traiter des données textuelles donc ça c'est quelque chose un petit peu particulier et puis après alors les stratégies d'évaluation des modèles ça c'est universel ça c'est vraiment assez une problématique générale quelle que soit le
type d'apprentissage de type de modèle etc l'embelline ça c'est un petit peu plus propre aux données textuelles mais c'est Aussi quelque chose qu'on peut utiliser qu'on retrouve finalement dans beaucoup de choses dans beaucoup de choses et puis ensuite on passera en janvier le 5 janvier ça sera on passera sur des neurones encore alors un nouveau type de neurones une nouvelle petite brique élémentaire qui sont les réseaux récurrents les neurones récurrents voilà qui ont été un petit peu allez mis au placard grâce aux Transformers mais qui ont quand même voilà qui sont quand même Très intéressants
dans un certain nombre de cas encore aujourd'hui voilà et puis bon après il y a encore plein d'autres choses avec avec My Torch et puis les fameux Transformers etc etc voilà petite question j'ai vu passer une question dans le chat là sur la taille des données entree learning machine learning et des possibilités sur la taille des données c'est quelque chose que si apparu sur le forum de Savoir l'importance que la taille du Data 7 en termes de volume pour l'apprentissage et du coup ça donne performance et après obligatoire pour avoir de bonnes performances que à
l'inverse un petit Dada 7 ne sera pas suffisant etc est-ce que vous pouvez expliciter alors oui alors on a rarement trop de données ici on a trois données on les utilise pas toutes Ça va très bien se passer donc en général la difficulté que l'on va avoir c'est plutôt il y a deux difficultés très importantes qui vont se peser avec un problème de fond c'est est-ce que les données que l'on a sont représentatives de notre champ des possibles notre de notre de notre espace de la réalité donc moins on va avoir de données et et
en moins on a de chance c'est d'avoir quelque chose qui va m'appeler la totalité de l'espace avec la même Résolution ça c'est vraiment à l'opposé si vous avez beaucoup beaucoup de données mais qui ne couvrent que si on reprend nos panneau on a on a pas 50 images mais on a 500 mille images mais par exemple avec que des sens interdits on se doute bien que ça va pas être très utile non plus donc il y a vraiment le voilà il faut avoir suffisamment donné pour avoir la diversité des cas de figures et puis suffisamment
de données pour ouvrir Enfin des données suffisamment diversifiées pour couvrir tout le champ des possibles voilà ça c'est vraiment le alors qu'est-ce que c'est avoir suffisamment de données ça va dépendre de la complexité de l'espace que l'on explore voilà si intuitivement si on s'intéresse qu'à deux types de panneaux s'intéresse qu'au sens interdit et aux panneau 80 pas besoin d'avoir des 50 000 images de ces deux panneaux là par contre si on a On avait non pas 40 panneaux mais je sais pas 350 types de panneaux différents en compte un petit peu tous les cas de
figure donc ça c'est vraiment pour une problème ça c'est vraiment un gros problème potentiel oui j'avais envie de rajouter parce que j'ai vu passer effectivement la différence entre algo classiques de ma machine learning et deep learning que oui Un algo classique effectivement on a cette histoire là de fléau de la dimensionnalité donc qui va se passer c'est quand on a donc classique on est plutôt sur la donnée tabulaire et lorsqu'on va avoir trop de dimensionnalités on va chercher à faire la réduction de paramètres avec les techniques de réduction de paramètres on dit learning effectivement mais
grâce aux deep learning à ce qu'on avait vu ces types de de couches type CNN et tout Qui profitent de la structure de la donnée donc ce que certains appellent géométriques des leplearning eux ils vont être capable effectivement de traiter des des données à haute dimensionnalités donc plus avoir ces problèmes de de haute dimensionnalités sauf que effectivement pour traiter ces problématiques de haut dimensionnalité on est sur de la plus complexité haute donc il faut forcément Des Data 7 gros des gros data 7 complet ce qui fait c'est pour ça que effectivement le Deep learning finalement
bon bah ça marche bien on a vu sur les images sur le langage sur de plus sur de plus en plus de choses mais en fait la limite c'est les Data 7 qu'on arrive à récupérer effectivement des tout à fait constitués sur des images et ça existe depuis longtemps sur le du texte existe depuis longtemps là pour que ça pénètre Effectivement toutes les domaines scientifiques c'est qu'il faut il faut du Data 7 scientifique assez important pour pouvoir faire tourner les réseaux de neurones juste pour compléter et c'est ce qu'on verra dans 15 jours c'est que
ok vous avez un date on a un Data 7 qui représente un espace un champ des possibles qu'on va explorer mais il est pas très très grand donc ce qui fait que si il est pas très grand alors pas très Grand c'est par rapport à la complexité chaque valeur va avoir une incidence importante par ailleurs un Data 7 il peut être pollué il peut y avoir des valeurs aberrantes des valeurs avec des données expérimentales il y a toujours une erreur une erreur liée à l'échantillon qu'une erreur liée à la mesure et donc ce qu'on va
faire ce qu'on va mettre en oeuvre c'est des outils justement de combinatoire pour que on va essayer plusieurs fois notre Apprentissage et faire en sorte que les données qui servent au test et l'apprentissage dans les mêmes et donc on va faire une combinatoire comme ça ce qu'on appelle une approche de type kafold et puis on va pouvoir faire ça n fois en plus de manière itérative donc c'est ce qu'on verra dans 15 jours justement dans les stratégie d'évaluation parce que le nombre de fois on voit des publications on voit des chiffres sans avoir les fenêtres
D'erreurs sans avoir la dispersion des résultats voilà on a vu on fait tourner deux fois le code et on a des résultats qui peuvent être très différents et donc c'est pas du tout rigoureux si on n'a pas une approche un petit peu statistique quand le résultat donc ça c'est à mettre en rapport avec justement la taille des datacés aussi c'est en fonction la taille d'une datacès vers une stratégie d'évaluation qui soit adaptée Des images 3D donc filtre convolutif 3D ça marche pour le ça ne l'intérêt pour les images titre types IRM ou à l'intérieur en
fait de l'image il y a des informations quand c'est des informations de surface type nuage de points donc le prix par des ou lorsque c'est de la morphologie des histoires de représentation 3D pour je sais pas quoi du jeu vidéo l'imagerie 3D ou là c'est juste la surface des choses qui nous Intéresse donc là on utilise des techniques un peu particulières pour les nuages de points effectivement il y a des c'est pas très connu mais il y a effectivement des des réseaux neurones adaptés pour les nuages de ponts choisi donc on va continuer à parcourir
de toute façon les différentes types de données que l'on va rencontrer mais effectivement après c'est après on est dans le domaine de la recherche aussi on peut regarder les publications essayer De trouver les stratégies qui ont pu être trouvées par rapport à tel ou tel structure ou type de données voilà je pense qu'on va peut-être arrêter tranquillement merci à tous d'avoir d'être encore présent d'avoir eu autant de patience avec les petites merci bon ben oui ce sera apprécié avec les petites difficultés que l'on a pu rencontrer aujourd'hui et puis bah rendez-vous la semaine prochaine avec
donc Laurent Laurent à l'antenne pour nous faire une Paris de bac et les maths que mon aimerait les avoir il est très sympa puis dans 15 jours quelque chose de complètement différent avec ni problématiques de textes et d'évaluation le modèle