Transcript for:
Modèle de Régression Linéaire Simplifié

Dans cette vidéo, vous allez apprendre à développer votre premier modèle de machine learning. Et ce modèle, ça va être un modèle de régression linéaire. Alors, les gens se disent parfois, enfin, la régression linéaire, c'est juste caser une droite au milieu d'un nuage de points. Moi, je croyais que le machine learning, c'était, bon, la reconnaissance vocale, la vision par ordinateur. Certes. Mais vous allez voir que les process qu'on met en place pour caser cette droite au milieu de ce nuage de points, sont exactement les mêmes qu'on va utiliser plus tard pour développer un modèle de reconnaissance vocale. Et la régression linéaire, c'est le modèle le plus simple pour débuter en machine learning. C'est parti ! Rappelez-vous, dans la dernière vidéo, on a vu les 4 étapes indispensables pour résoudre un problème d'apprentissage supervisé. La première étape c'est importer un dataset qui contient des features et une target. La deuxième étape c'est développer un modèle avec ces paramètres et la machine va apprendre les paramètres. La troisième étape c'est développer fonction coût associée à ce modèle et la quatrième étape c'est développer un algorithme de minimisation de la fonction coût. Le conseil que j'ai à vous donner c'est quel que soit le problème d'apprentissage supervisé que vous cherchiez à résoudre écrivez toujours sur une feuille ces quatre étapes en notant quelles sont les dimensions de votre dataset, combien il y a de lignes, combien il y a de features, quel est le modèle que vous cherchez à développer, quelle est la fonction coût. Et dans cette vidéo, on va faire exactement ça pour la régulation linéaire. C'est parti ! Dans cet exemple de régression linéaire, on va utiliser un dataset dans lequel on a six exemples, comme vous pouvez le voir, 1, 2, 3, 4, 5, 6, avec lequel on aura une seule variable x, donc une seule feature. Donc, comme on l'a vu dans la dernière vidéo, on peut écrire que m égale 6 et n est égal à 1. Et pour désigner certains exemples en particulier, comme on l'a vu dans la dernière vidéo, on écrira x superscript entre parenthèses i pour désigner le ième exemple. Alors, dans le cadre d'une régression linéaire, le modèle qu'on veut développer, c'est un modèle linéaire. Alors, ce modèle, on ne connaît pas les paramètres. Par contre, on peut imposer à la machine un modèle. C'est ce qu'on va faire. Donc on va développer un modèle f de x qui est égal à ax plus b. Ouais, c'est une fonction affine. Où les paramètres a et b, donc les coefficients de notre fonction affine, on ne les connaît pas. Ça va être... le rôle de la machine de les trouver. Et vu qu'on ne les connaît pas, pour l'instant on ne peut pas tracer notre droite, on ne peut pas la placer. Mais on sait qu'on aimerait avoir une droite qui ressemble à ça. Voilà, une droite qui rentre plutôt bien dans le nuage de points. Sauf que quand on ne connaît pas ces paramètres, eh bien on va d'abord en donner des paramètres aléatoires, random. Donc ça pourrait nous donner une droite qui ressemble à ça au début. Là, la machine va mesurer les erreurs, elle va calculer la fonction coût entre le modèle qu'elle est en train de développer, avec des paramètres A et B qu'on a choisis aléatoirement, et les erreurs qu'elle va faire. et les vraies valeurs de Y qu'il y a dans le dataset. Donc elle va mesurer les erreurs entre le modèle et nos différents points. Donc là, imaginez, on a un dataset dans lequel Y, c'est le prix d'un appartement, et là, on avait un... x i qui nous donnait un prix y i de 300 000 euros. Voilà, 300 000. Et nous, avec notre modèle f de x i, donc la réponse que notre modèle nous donne pour cette valeur de x, on va dire que c'est 200 000 euros. Vous vous diriez, on a fait une erreur de 300 000 moins 200 000, donc 100 000. Donc on pourrait se dire que pour mesurer... nos erreurs, il suffit d'écrire f de x i moins y i, ou l'inverse, y i moins f de x i. Mais du coup, si jamais on a des inverses, alors on peut se retrouver avec des erreurs de moins 100 000 au lieu de 100 000. Ce n'est pas très pratique, on aimerait bien avoir des... absolue. Alors on pourrait se dire, on pourrait mettre une valeur absolue. C'est une possibilité. Mais la possibilité qu'on va d'abord explorer pour les fonctions coups, c'est d'utiliser le carré de ces erreurs. Et ça, en mathématiques, c'est ce qu'on appelle la distance euclidienne ou la norme euclidienne. C'est la distance directe entre deux points, ce point-là et ce point-là, dans la géométrie euclidienne. Et la fonction coût, rappelez-vous, c'est l'ensemble de toutes nos erreurs. Donc ce n'est pas seulement cette erreur-là, mais c'est aussi cette erreur, cette erreur, cette erreur, cette erreur et cette erreur. Alors on a deux possibilités. Soit on écrit autant d'équations qu'on a de points dans notre dataset, ce qui est beaucoup, parce que là on n'en a que 6, mais imaginez qu'on a un dataset avec 10 000 points. Ça nous donnerait 10 000 erreurs, c'est beaucoup trop. Donc on choisit de rassembler toutes nos erreurs dans cette fonction coût, qu'on va appeler j. par convention et cette fonction coût elle ne dépend que des paramètres de notre modèle donc ici on a deux paramètres a et b pourquoi elle dépend que des paramètres parce que notre dataset c'est la réalité on peut pas le changer notre dataset alors que les paramètres vont influencer directement sur l'erreur si on a un modèle bleu comme celui qui est dessiné là on va avoir des erreurs assez grandes alors que si on change les paramètres de notre modèle et qui devient comme ça, les erreurs vont être beaucoup plus petites. Je pense que vous avez compris l'idée. Et donc, on choisit de prendre la moyenne de toutes nos erreurs. Donc, 7 erreurs, plus 7 erreurs, plus 7 erreurs, etc. Divisé par le nombre d'erreurs, c'est-à-dire le nombre de points qu'on a. Donc, on va diviser par M, multiplié par la somme. de i allant de 1 à m de toutes les erreurs, donc de tout le carré des différences. Et en réalité, on rajoute un petit coefficient 1,5 juste pour rendre les maths un petit peu plus pratiques par la suite. suite vous verrez pourquoi dans la prochaine vidéo et ça eh bien ça définit notre fonction coup et c'est extrêmement important en machine learning au passage cette fonction coup elle porte un nom en français on appelle l'erreur quadratique moyenne et en anglais on appelle ça min squared error Donc vous avez vu en seulement quelques minutes on a déjà fait trois notions sur les quatre ça va vraiment très vite c'est cool Donc à ce stade on a un modèle on a une fonction coût rappelez vous la quatrième notion maintenant c'est de trouver un algorithme de minimisation de cette fonction coût alors cette fonction coût si on l'observe par exemple par rapport au paramètre A. La fonction coût étant ici une somme de carrés, elle a la même allure qu'une fonction carrée elle-même. Et une fonction carrée, ça a une allure parabolique, donc quelque chose qui ressemble à ça. Et sur cette fonction, on cherche donc le minimum, le minimum de j par rapport à a. Le minimum, c'est clair, il se situe quelque part ici. Et quand on l'atteint, on a alors la valeur de a idéale, celle qui va nous donner un modèle qui rentre vraiment bien dans notre nuage de points, et avec lequel, je me permets d'effacer tout ça, avec lequel... dans lequel on va vraiment avoir de toutes petites erreurs, en tout cas les erreurs les plus faibles possibles, ou en tout cas la somme des erreurs la plus faible possible. Alors pour atteindre ce point A, il y a plusieurs possibilités, il y a plusieurs stratégies possibles. Une d'entre elles, c'est d'utiliser la méthode des moindres carrés. Vous la connaissez très bien. La méthode des moindres carrés, elle énonce qu'on va chercher le point A. A pour lequel la tangente en J va être horizontale. Donc on va avoir une tangente horizontale. Et rappelez-vous, une tangente horizontale ça veut dire une pente nulle. Et une pente nulle, ça nous donne une dérivée de la fonction qui s'annule. Donc on va chercher le point A pour lequel la dérivée va s'annuler. Ça c'est la méthode des mondes carrés. Maintenant il existe d'autres méthodes. La plus populaire. en machine learning, c'est la méthode de la descente de gradient. Gradient descent. Donc, on prend un point A au hasard, comme je vous ai dit, on se perd quelque part sur cette courbe J, et on va choisir de mesurer la dérivée, donc des ronds J par rapport à des ronds A, et on va aller dans la direction de la pente qui descend. Et on va faire un petit pas, puis on va recommencer, on va recalculer la dérivée, on va refaire un petit pas, on va recalculer la dérivée, on va refaire un petit pas, etc. Donc au final, on va converger vers la valeur de A optimale, j'ai envie de dire. Alors vous pourriez vous demander pourquoi j'utiliserais la méthode de la descente de gradient, qui ne fait que converger, alors que je peux utiliser la méthode des moindres carrés qui me donne directement la bonne réponse. Eh bien, je vous expliquerai tout ça plus en... On en détaille dans une prochaine vidéo, mais pour faire simple, la méthode des moindres carrés, qui est donc la méthode des équations normales, implique de faire des inversions de matrices. Faire une inversion de matrices sur notre dataset qui fait 6 lignes et une seule colonne, c'est très facile. Par contre, dans la pratique, lorsqu'on va avoir un dataset avec des millions d'exemples, même à un ordinateur, ça peut prendre des millions d'années. C'est loin. Donc, pour les problèmes extrêmement complexes en machine learning, on préfère utiliser la méthode de la descente de gradient, et on verra ça dans la prochaine vidéo. Voilà, donc c'est tout pour cette vidéo, dans laquelle on a vu comment développer un modèle linéaire, et... comment trouver la fonction coût associée à ce modèle linéaire. Le conseil que vous pouvez retenir, c'est qu'à chaque fois que vous travaillez sur un problème d'apprentissage supervisé, donc dans lequel on a un dataset avec des X et des Y, eh bien, prenez une feuille... stylo et écrivez ces quatre étapes écrivez les dimensions de votre data set votre modèle votre fonction coût et vous verrez qu'ainsi vous éliminerez 80% des bugs que vous pourriez avoir au moment d'écrire votre programme voilà en complément vous êtes libre de recevoir une copie de mon livre apprendre le machine learning en une semaine si cette vidéo vous a plu merci de vous abonner et merci de me laisser un commentaire je vous dis à très vite pour la prochaine vidéo