bonjour et bienvenue dans le deuxième épisode de cette série sur le dip learning aujourd'hui nous allons parler du percepteur le modèle qu'on retrouve à la base des réseaux d'euros nous allons voir ces formules mathématiques la fonction cours logos ainsi que l'algorithme de la descente de gradient le percepteur on est l'unité de base des réseaux de neurones il s'agit d'un modèle de classification binaire capable de séparer linéairement deux classes de points prenons un exemple imaginer que l'on ait deux types de plantes des plantes toxiques que l'on note y égal 1 et d'autres non toxique que l'on
note y égal à zéro un jour on décide de mesurer certains attributs de ces plantes telles que la longueur et la largeur de leurs feuilles que l'on note x1 et x2 représentant les résultats dans un graphique on observe que les deux classes de plantes sont linéairement séparables on peut donc développé un modèle capable de prédire à quelle classe appartient une future plantes en se basant sur cette droite qu'on appelle la frontière de décision si une plante se trouve à gauche elle sera considérée comme toxique appartenant à la classe y égal 1 et sinon elle sera
considérée comme non toxique appartenant à la classe y égal zéro pour développer ce modèle il va donc nous falloir trouver qu'elle est l'équation de cette droite pour ça on va développer ce qu'on appelle un modèle linéaire en fournissant aux variables x1 et x2 à un neurone et en multipliant au passage chaque entrée du neurone par un poids w dans ce neurones on va également faire passer un coefficient complémentaires qu'on appelle le billet ce qui nous donne une fonction z de x1 x2 égal w 1 x en plus w 2 x 2 plus b de retour
sur notre graphique on peut colorer les régions où cette fonction de retourner une valeur positive et celle où elle nous retourne une valeur négative on constate alors que la frontière de décision correspond aux valeurs de x1 et x2 pour lesquels z est égal à zéro et voilà on a donc l'équation de notre frontière de décision du coup pour prédire à quelle classe appartient une future plantes il va falloir régler les paramètres wb de façon à séparer du mieux possible nos deux classes après quoi on pourra dire si une plante et dans la classe 0 1
en regardant simplement le signe de z 6è des négatifs alors la plante sera dans la classe zéro et six aides est positif elle sera dans la classe 1 voilà c'est ainsi que fonctionne le percepteur le premier neurones de l'histoire du diplôme ni maintenant pour améliorer ce modèle une bonne chose à faire ça serait d'accompagner chaque prédiction d'une probabilité plus une plante sera éloignée de la frontière de décision plus il sera évident c'est à dire probable qu'elles appartiennent bien à sa classe pour ça on pourrait utiliser une fonction d'activation nous retournant une sortie qui s'approchent de
zéro ou un au fur et à mesure que l'on s'éloigne de la frontière de décision là où z est égal à zéro cette fonction qui nous permet de faire ça c'est la fonction sigmoïde également appelé fonctions logistiques dont l'expression est à 2 aide égale 1 / 1 plus exponentielle 2 - z cette fonction permet de convertir la sortie z en une probabilité à deux aides celle qu une plante appartiennent à la classe 1 par exemple si nous avons une plante dont la valeur z est égale à 1,4 alors cela donne une probabilité à 2 aide
égale à 0,8 ce qui signifie que d'après notre modèle cette plante à 80% de chance d'appartenir à la classe 1 c'est une probabilité relativement élevé ce qui est logique vu que cette plante se situe à droite de la frontière de décision là où nous sommes censés obtenir des plantes toxiques al'inverse si nous avons une plante dont la valeur de z est égal à moins 2,1 alors cela donne une probabilité à 2 aide égale à 0,1 ce qui signifie que d'après notre modèle cette plante à seulement 10% de chance d'appartenir à la classe 1 c'est une
probabilité bien plus faible que tout à l'heure mais encore une fois ça reste tout à fait logique vu que cette plante se situe à gauche de la frontière de décision là où nous ne sommes pas censés obtenir de plantes toxiques mais uniquement des plantes appartenant à la classe zéro du coup on pourra dire à la place que cette plante aura 90 % de chances d'être non toxiques soit la probabilité complémentaires à celles que nous avons calculé cela nous amène à un des points très importants pour la suite de cette vidéo ces probabilités suivent en fait
une loi de bernoulli c'est à dire que la probabilité qu'une plante appartiennent à la classe a est donné par à deux aides et la probabilité qu'une plante appartiennent à la classe zéro est donnée par un moins à deux aides le tout peut être résumée en une seule formule elle peut sembler un petit peu intimidante vu comme ça je vous la corde mais en fait elle est très simple à comprendre il suffit de décomposer les deux cas celui où y est égal à 1 et celui où y est égal à zéro et alors on voit qu'on
retombe tout simplement sur les deux expressions de tout à l'heure donc pour résumer tout ce qu'on vient de voir ce qu'on trouve à l'intérieur des neurones c'est une fonction linéaire z égal w 1 x 1 plus w 2 x 2 plus b suivie d'une fonction d'activation la plus simple étant la fonction sigmoïde qui nous retourne une probabilité suivant une loi de bernoulli maintenant notre but ça va être de régler les paramètres wbb de façon à obtenir le meilleur modèle possible c'est à dire le modèle qui fait les plus petites erreurs entre les sorties à deux
aides et les vraies données y est pour ça on va commencer par définir une fonction coup qui va permettre de mesurer ses erreurs en machine learning une fonction coup ou l'osce fonctionnent en anglais c'est une fonction qui permet de quantifier les erreurs effectuées par un modèle dans notre cas c'est donc une fonction qui permet de mesurer les distances que l'on voit ici en rouge entre les sorties à deux add et les données y dont nous disposons pour ça la fonction coup que l'on va utiliser c'est la fonction de log l'os certains d'entre vous la connaissent
peut être déjà mais ce que j'ai envie de faire dans cette vidéo ainsi que toutes les autres vidéos de cette série c'est de vous expliquer l'origine mathématiques de cette fonction et vous allez voir c'est à la fois très simple et très satisfaisant à comprendre revenons donc quelques pas en arrière une façon d'évaluer la performance de notre modèle c'est de calculer sa vraisemblance en statistiques la vraisemblance ça nous indique la plausibilité de notre modèle vis-à-vis de données que l'on considère comme vrai un peu comme quand on dit qu'une histoire est vraisemblable vis-à-vis de fait qui se
sont vraiment déroulé par exemple si sherlock holmes a interrogé un suspect qui prétend avoir été à l'opéra le soir du crime alors qu'en réalité le spectacle d'opéra n'a pas eu lieu et bien alors son histoire n'est pas vraisemblable vis-à-vis des fêtes que l'on connaît et bien ici c'est la même chose nous connaissons certaines plantes comme étant toxiques et d'autres comme étant non toxique et on va voir si les prédictions du modèle sont en accord avec ces données par exemple si une plante est toxique et que le modèle nous retourne une probabilité toxiques égal à 80%
alors il est lui même vraisemblable à 80% donc vous l'aurez compris pour calculer la vraisemblance de notre modèle on va tout simplement faire le produit de toutes ces probabilités en utilisant la loi de bernoulli qu'on a vu tout à l'heure cela nous donne la formule suivante elle pour likelihood en anglais c'est à dire vraisemblance est égal au produit de toutes les données allant de 1 à m2 nos probabilités retourner pour ces données si le résultat de ce calcul est proche de 100% ça signifiera que notre modèle est vraisemblable à 100% puisqu'il est en accord parfait
avec les données que l'on considère comme vrai al'inverse si le résultat est proche de zéro pour cent ça signifiera que notre modèle est fortement invraisemblable il aura une chance d'exister mais si c'est le cas ça signifierait alors que toutes les données dont nous disposons serait en réalité fausse ce qui serait pour le coup très improbable donc c'est parti je vous propose de calculer la vraisemblance du modèle que l'on a ici alors là pour le coup notre modèle colle plutôt bien aux données donc on s'attend à avoir un bon score une vraisemblance proche de 100% la
plupart des probabilités est en elle-même proche de 100% sauf qu'en effectuant notre calcul on se rend compte que non on tombe sur un résultat proche de zéro alors comment ça se fait et bien c'est le petit problème avec la vraisemblance comme en effectue un produit de probabilité c'est à dire un produit de nombre qui sont tous compris entre 0 et 1 cela fait que plus on a de nombreux plus le résultat tend vers zéro et brillant si vous faites 0,25 fois 0,25 ça vous donne 0,25 un résultat qui devient de plus en plus petits alors
dans cette situation ça ne cause pas vraiment de problème mais dans la pratique lorsqu'on voudra calculer la vraisemblance sur des milliers voire des dizaines de milliers de points ça risque de nous donner un résultat tellement proches de zéro que la mémoire de notre ordinateur n'arrivera même plus à stocker ce nombre est là ça devient un très gros problème donc ce qu'on va devoir faire c'est de trouver une astuce pour calculer cette vraisemblance sans pour autant converger vers zéro et cette astuce c'est d'utiliser une fonction logarithme car rappelez-vous le logarithme d'un produit ça nous donne la
somme des logarithme donc si on applique un logarithme à notre fonction vraisemblance alors on arrête de calculer le produit de nombre qui sont tous inférieurs à 1 et à la place on fait des additions c'est quand même bien plus pratique et vous voyez que le résultat est un nombre plus lisible cependant vous allez peut-être vous dire que le fait d'utiliser ce logarithme déforme tout à notre calcul et que celui ci ne veut plus rien dire et bien rassurez vous ça n'est pas le cas car comme la fonction logarithme est une fonction monotone croissante elle conserve
l'ordre de nos termes ça signifie que lorsqu on cherchera le maximum de notre vraisemblance il nous suffira de chercher le maximum du loch de la vraisemblance et comme vous le voyez sur ce graphique ça nous retournera le même résultat donc il n'ya pas de problème on peut utiliser le log de la vraisemblance pour poursuivre nos calculs alors c'est parti on va voir ce que ça nous donne si on développe tout ça donc on va écrire l aile pour l'ogre likelihood qui est égale au logarithme du produit pour toutes les données allant de 1 à m
des probabilités qu'ils sont retournés par ces données alors cette formule on peut la simplifier car je vous le rappelle le logarithme d'un produit à b ça nous donne la somme des logarithme l'oc ii a plus l'oc ii b or ici donc on a un logarithme avec un produit de tout plein de probabilités et on peut donc le transformer en écrivant que c'est égal à la somme des logarithme de toutes nos probabilités pour les données allant de 1 à m encore une fois là on peut effectuer une simplification puisqu'on voit que dans ce logo rythme on
retrouve un produit le produit de la puissance y par un moins à puissance 1 - y donc encore une fois locke de ab est égal à loeb 2e à plus longue de b ce qui nous donne la somme pour toutes les données allant de 1 à m du logarithme de à puissance y plus le logarithme 2-1 - à puissance 1 - y ait cette expression on peut encore une fois la simplifier en utilisant une dernière propriété des logarithme sel comme quoi le log de à puissance y c'est égal à y fois le loch de a
donc on va pouvoir faire sortir tous les exposants de nos logarithme ce qui va nous donner l elle est égale à la somme des y l'oc ii à + 1 - y l'oc ii 1 - a alors maintenant je me tourne vers vous est ce que cette expression vous fait penser à quelque chose genre quelque chose qu'on a vu au début de ce chapitre et bien si vous répondez la fonction logos vous avez raison cette fonction ressemble en effet de très près à notre fonction coup celle qu'on cherche à avoir la seule différence c'est qu'il
manque le petit facteur moins un sur m au début mais ça c'est tout à fait normal je vous explique pourquoi ce qu'on a fait là jusqu'à présent c'était de calculer le log de la vraisemblance et je vous le rappelle une vraisemblance on cherche à la maximiser pour avoir le meilleur modèle possible le modèle le plus vraisemblable or en mathématiques les algorithmes de maximisation ça n'existe pas vraiment à la place on utilise en général des algorithmes 2 minimisation mais ça n'est pas un problème car maximiser une fonction f de x ça revient à minimiser la fonction
- f2 x c'est pourquoi pour maximiser la vraisemblance de notre modèle on va en fait cherché à minimiser sa fonction négative d'où la présence d'un facteur moins un au début de cette expression maintenant concernant le facteur 1 sur m que l'on retrouve au début de la fonction logos ça eh bien c'est juste un petit facteur pour normaliser notre résultat rien de plus et voilà vous savez désormais d'où vient la fonction coup de log l'os elle vient d'un raisonnement mathématique très simple celui de vouloir maximiser la vraisemblance de notre modèle maintenant qu'on dispose notre fonction coup
on va pouvoir s'en servir pour minimiser les erreurs de notre modèle et pour ça on va utiliser l'algorithme de la descente de gradient la descente de gradient l un des algorithmes d'apprentissage les plus utilisés en machine learning et andy planning il consiste à ajuster les paramètres wbb de façon à minimiser les erreurs du modèle c'est à dire à minimiser la fonction que pour ça il faut déterminer comment à ce que cette fonction varie en fonction des différents paramètres est-ce que la fonction diminue lorsque à des paramètres w l'augmenter houle inverse et bien pour répondre à
cette question on doit calculer ce qu'on appelle un gradient ou une dérive et si vous préférez la dérive et de notre fonction coup car je vous le rappelle en mathématiques la dérive et d'une fonction ça nous indique comment est-ce que cette fonction varie si la dérive et est négative ça nous indique que la fonction diminue quand w augmente et qu'il va donc falloir augmenter w si l'on veut réduire nos erreurs al'inverse si la dérive et est positive cela indique que la fonction coûts augmentent quand w augmente et qu'il faudra donc diminuer w si l'on veut
réduire nos erreurs pour faire cela on va utiliser la formule suivante w est égal à w - un petit pas positif alpha x le gradient de la fonction coup ou si vous préférez la dérive et partielle de la fonction coûts par rapport aux paramètres w en question de cette manière si le gradient est négatif alors w va augmenter grâce à notre formule on voit bien qu'on a w égale w plus quelque chose de positif donc w augmente al'inverse si le gradient est positif alors notre formule va faire diminuer la valeur de w puisqu'on aura w
égale w moi quelque chose donc w va diminuer en répétant cette formule en boucle on dit ainsi capable d'atteindre le minimum de la fonction coup en descendant progressivement sa courbe d'où le terme de descente de gradient tout ce qu'il faut pour que ça marche c'est que notre fonction soit convexe c'est à dire qu'elles ne présentent pas de minimum local sur lequel l'algorithme pourrait rester bloqués heureusement pour nous la fonction logos est justement une fonction complexe comme vous pouvez le voir à l'écran on peut donc utiliser l'algorithme de la descente de gradient pour entraîner notre neurones
et c'est ce qu'on fera dans les prochaines vidéos en écrivant un code qui implémente les différentes fonctions que l'on a vu aujourd'hui la fonction linéaire la fonction sigmoïde la fonction coup et pour finir l'algorithme de la descente de gradient seulement pour implémenter tout ça il va nous falloir connaître l'expression de ces fameux gradient ceux qui interviennent dans la descente de gradient et à ce titre ça va être votre exercice de trouver les formules des différents gradient pour la prochaine vidéo quand je voulais déjà dit le plus important pour progresser c'est de faire des exercices alors
ne vous en faites pas je vais vous donner quelques indices pour vous aider dans cet exercice le premier indice c'est que pour calculer la dérivées partielles des ronds elle sur des ronds w il va falloir calculer une chaîne de dérivés la dérive et des ailes des as puis des à des aides et pour finir dzd w ensuite deuxième indice pour calculer la dérivées partielles des à des aides il va falloir considérer votre fonction sigmoïde comme une fonction composé h égale gérons f ou g est une fonction qui a x associe un sur x et f
est une fonction qui a x associe un plus exponentielle de moins x et pour finir troisième indice je vous rappelle que la dérive et d'une fonction composé gérons avec prime c'est égal à g prime de f x f prime voilà j'espère que ces trois indices vont vous aider voici les réponses que vous êtes censé obtenir à la fin de cet exercice mais surtout ne vous en faites pas si vous ne trouvez pas la réponse ou si vous avez du mal dans cet exercice parce qu'en effet cet exercice est très dur en tout cas si vous
êtes un débutant c'est peut-être même un des exercices les plus durs qu'on fera dans cette série de vidéos mais je pense qu'il est très important de le faire d'autant plus que c'est très rare qu'on demande aux gens de faire cet exercice dans les formations en ligne aussi si vous n'y arrivez pas merci de ne pas vous décourager de rester motivé dites vous bien que tout le monde a été débutant un jour même mois et même les meilleurs d'entre nous alors continuez à suivre cette formation regardez le corriger qui sera disponible dans la prochaine vidéo essayer
de refaire cet exercice à l'avenir lorsque vous maîtriserez un petit peu plus le diplôme ning voilà je vous donne donc rendez vous dimanche prochain pour la correction de cet exercice que je ferai en live sur la tablette si vous ne voulez pas louper cette prochaine vidéo je vous invite donc à vous abonner et activer la petite cloche de notification pour finir j'aimerais conclure cette vidéo en remerciant du fond du coeur tous les gens qui m'ont soutenue sur tipi au cours du dernier mois leur nom s'affiche en ce moment à l'écran d'ailleurs à ce propos ce
mois-ci vous trouverez une vidéo bonus dans laquelle je vais donner des détails supplémentaires à propos de ce qu'on a vu dans cette vidéo on verra des choses comme par exemple la démonstration qui prouve que la fonction log l'os est en fait une fonction complexe donc ça c'est pour vous les types heures pour vous remercier de votre soutien allez j'en profite également pour remercier sincèrement tous les gens qui ont partagé la dernière vidéo si elle a fait d'excellents de vue c'est vraiment grâce à vous donc merci beaucoup et merci aussi à tous ceux qui partageront cette
vidéo qui laisseront à la haye qu un commentaire etc voilà portez vous bien faites attention à vous et moi je vous dis à très bientôt pour la prochaine vidéo [Musique]