La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IFT 615 – Intelligence artificielle Apprentissage supervisé

Présentations similaires


Présentation au sujet: "IFT 615 – Intelligence artificielle Apprentissage supervisé"— Transcription de la présentation:

1 IFT 615 – Intelligence artificielle Apprentissage supervisé
Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift615 Largement basé sur du matériel d’Hugo Larochelle

2 Sujets couverts Introduction
Classification linéaire avec le Perceptron et la régression logistique Réseau de neurones artificiel IFT615 Froduald Kabanza

3 Section 8.1 du livre Introduction IFT615 Froduald Kabanza

4 Apprentissage supervisé
Un problème d’apprentissage supervisé est formulé comme suit: « Étant donné un ensemble d’entraînement de N exemples: où chaque a été généré par une fonction inconnue , découvrir une nouvelle fonction (modèle ou hypothèse) qui sera une bonne approximation de (c’est à dire ) » Note : chacun des x_i, y_i peut être un vecteur. Dans ce cas, on notera x_i,j le j eme élément du vecteur. Idem pour y_i,j. f n’est pas généralement connu. On en connait une partie permettant de produire les exemples d’apprentissage et les exemples de test. Lorsque l’ensemble des valeurs des sorties est un ensemble fini, on parle de problème de classification. Par exemple: chaud, froid, tiède. Lorsque y est un nombre réel (l’ensemble des valeurs de sortie est infini, par exemple: température), on parle de régression. On dit qu’une hypothèse généralise bien si elle prédit correctement la valeur de y pour des exemples inédits. On dit qu’une hypothèse est cohérente si elle prédit correctement la valeur de y pour les exemples d’entraînement. Espace d’hypothèse H f(x) hopt(x)  H Error IFT615 Froduald Kabanza

5 Apprentissage supervisé
Données : ensemble d’entraînement de N exemples: Problème : trouver h(x) tel que Un algorithme d’apprentissage peut donc être vu comme étant une fonction à laquelle on donne un ensemble d’entraînement et qui donne en retour la fonction h avec IFT615 Froduald Kabanza

6 Apprentissage supervisé
Données : ensemble d’entraînement de N exemples: Problème : trouver h(x) tel que L’apprentissage est un problème de recherche de l’hypothèse h dans un espace d’hypothèses H, tel que h minimise la distancée espérée à f(x) Le problème d’apprentissage est réalisable si f(x) ϵ H avec L’apprentissage est une recherche dans un espace d’hypothèses possibles pour trouver l’hypothèse qui se comporte bien même sur des exemples n’appartenant pas à l’ensemble d’entraînement. Ici, on cherche à minimiser l’erreur généralisée (c.à-d., incluant les données à venir, pas juste les données d’entrainement). Espace d’hypothèse f(x) hopt(x)  H Error H IFT615 Froduald Kabanza

7 Apprentissage supervisé
Étant donné un ensemble de données d’entrainement, l’apprentissage est un problème de recherche de l’hypothèse h dans un espace d’hypothèses H, tel que h minimise la distancée espérée à f(x) Les données sont souvent bruités et disponibles en quantité limitée. Il y a donc une variation dans les données et dans les modèles (représentations). L’erreur dépend de la qualité des données d’entrainements et de la méthode utilisée pour sélectionner/chercher la bonne hypothèse Espace d’hypothèse f(x) hopt(x)  H Error H IFT615 Froduald Kabanza

8 Modèles et approche pour chercher la fonction h
Dépendamment des approches d’apprentissage, la fonction h peut être représenté de différente manière: Règle de production (if-then) avec la logique du premier ordre Arbre de décision Fonction linéaires , polynomiales Réseau de neurones artificiel Programmes Java Etc. Dans cette leçon, nous voyons la régression linéaire et le réseau de neurones artificiel Le livre couvre différentes autres approches IFT615 Froduald Kabanza

9 Mesure de la performance d’un algorithme d’apprentissage
Comment évaluer le succès d’un algorithme d’apprentissage? on pourrait regarder l’erreur moyenne commise sur les exemples d’entraînement, mais cette erreur sera nécessairement optimiste a déjà vu la bonne réponse pour ces exemples! on mesurerait donc seulement la capacité de l’algorithme à mémoriser Ce qui nous intéresse vraiment, c’est la capacité de l’algorithme à généraliser sur de nouveaux exemples ça reflète mieux le contexte dans lequel on va utiliser h Pour mesurer la généralisation, on met de côté des exemples étiquetés, qui seront utilisés seulement à la toute fin, pour calculer l’erreur on l’appel l’ensemble de test Wikipedia: Le surapprentissage ou sur-ajustement (en anglais « overfitting ») est un problème fréquent avec les algorithmes d’apprentissage. Il est en général provoqué par un mauvais dimensionnement de la structure ou la représentation utilisée utilisée pour l’espace des hypothèse. Par exemple, dans le cas des réseaux de neurones comme on le verra plus tard, il est lié au choix de la structure du réseau de neurones. De par sa trop grande capacité à stocker des informations, une structure dans une situation de surapprentissage aura de la peine à généraliser les caractéristiques des données. Elle se comporte alors comme une table contenant tous les échantillons utilisés lors de l'apprentissage et perd ses pouvoirs de prédiction sur de nouveaux échantillons. Pour limiter ce genre de problèmes dans le cas des réseaux de neurones, on doit veiller à utiliser un nombre adéquat de neurones et de couches cachées. Cependant, ces paramètres sont difficiles à déterminer à l'avance. Pour détecter un surapprentissage, on sépare les données en deux sous-ensembles : l'ensemble d'apprentissage et l'ensemble de validation. L'ensemble d'apprentissage comme son nom l'indique permet de faire évoluer les poids du réseau de neurones avec par exemple une rétropropagation. L'ensemble de validation n'est pas utilisé pour l'apprentissage mais permet de vérifier la pertinence du réseau avec des échantillons qu'il ne connait pas. On peut vraisemblablement parler de surapprentissage si l'erreur de prédiction du réseau sur l'ensemble d'apprentissage diminue alors que l'erreur sur la validation augmente de manière significative. Cela signifie que le réseau continue à améliorer ses performances sur les échantillons d'apprentissage mais perd son pouvoir de prédiction sur ceux provenant de la validation. Pour avoir un réseau qui généralise bien, on arrête l'apprentissage dès que l'on observe cette divergence entre les deux courbes. On peut aussi diminuer la taille du réseau et recommencer l'apprentissage. Les méthodes de régularisation comme le weight decay permettent également de limiter la spécialisation. IFT615 Froduald Kabanza

10 Exemple familier Étant donnés un ensemble de points dans R2, approcher cet ensemble par une fonction f d’une seule variable. Données d’entraînement : paires (x, f(x)) Hypothèse: équation d’une fonction h(x) qui approxime f(x) Espace d’hypothèses : ensemble de polynômes de degrés k. Comme il s’agit de R^2, il s’agit donc ici d’une régression. IFT615 Froduald Kabanza

11 Exemples d’espaces d’hypothèses
f(x) = x + x2 + 6x3 H2 H3 Comme il s’agit de R^2, il s’agit donc ici d’une régression. H1  H2  H3 H1={a+bx}; H2={a+bx+cx2}; H3={a+bx+cx2+dx3}; Linéaire; Quadratique; Cubique; IFT615 Froduald Kabanza

12 Comment choisir parmi plusieurs hypothèses consistants?
fonction linéaire Hypothèse : Polynôme de degré 7 Données : polynôme degré 6 Hypothèse : fonction linéaire Hypothèse: fonction sinusoïdale Wikipédia: Le rasoir d'Ockham ou rasoir d'Occam est un principe de raisonnement philosophique entrant dans les concepts de rationalisme.  Son nom vient du philosophe franciscain Guillaume d'Ockham (xive siècle), bien qu'il fût connu avant lui. On le trouve également appelé principe de simplicité En gros, il dit que  « les hypothèses suffisantes les plus simples sont les plus vraisemblables ». C'est un des principes heuristiques utilisé souvent en IA, sans pour autant qu’il soit formellement prouvé. Donc, dans le cas où deux hypothèses ont la même vraisemblance (ou poids d'évidence), on favorisera l'hypothèse la plus simple. Il s'agit en fait d'une application directe du théorème de Bayes, où l'hypothèse la plus simple a reçu la probabilité a priori la plus forte. Voir livre, Section 18.2. Utiliser le principe du rasoir d’Ockham: maximiser une combinaison/compromis entre consistence et simplicité IFT615 Froduald Kabanza

13 Compromis entre expressivité et complexité
Nous avons vu qu’un problème d’apprentissage est réalisable si l’espace d’hypothèses correspondant contient la vraie fonction. Dans ce cas, pourquoi ne pas choisir simplement l’espace d’hypothèse le plus large possible (exemple: programmes Java ou machine de Turing)? Parce qu’il existe en général un compromis entre l’expressivité de l’espace d’hypothèse la complexité de la recherche d’une bonne hypothèse dans cet espace On a en plus un compromis entre l’efficacité en temps de calcul de h(x) et sa simplicité de représentation Par exemple, approcher des données par une ligne droite est un calcul aisé (par la méthode des moindres carrés). L’approche par un polynôme de degré plus élevé est un calcul bien plus complexe. Et le faire par des machines de Turing est en général un problème indécidable. En plus, on veut pouvoir utiliser h(x) une fois que l’on l’a découvert. On veut donc que h(x) calcule rapidement sa sortie. La représentation de l’espace d’hypothèse peut être un facteur à la fois pour la rapidité de calcul de h(x) et sa représentation simple. Par exemple, si h(x) est représenté par une fonction linéaire, il est rapide à calcul. Par contre, s’il est approximé par une machine de Turing, on n’a pas de garanti sur sa complexité asymptotique. IFT615 Froduald Kabanza

14 Regression linéaire IFT615 Froduald Kabanza
C’est un rappel de ce que vous avez vu au secondaire ou au CÉGEP avec une perspective différente pour introduire le Perceptron et les réseaux de neurones. Regression linéaire IFT615 Froduald Kabanza

15 Régression linéaire à une variable
Données : Un ensemble de points y = f(x) Trouver la fonction hw(x) = y = w1 x + w0 qui minimise la distance (erreur) à f(x) Cela revient à trouver les valeurs des poids w=[w0,w1] qui rende la perte empirique minimale. On utilise une fonction de perte quadratique Loss(hw ) = 𝑗=1 𝑛 (yj – hw(xj))2 = 𝑗=1 𝑛 (yj – (w1xj+w0))2 y = w1 x + w0 est une fonction linéaire d’une seule variable x. C’est l’équation d’une ligne droite. W1 et w0 sont les coefficients à découvrir. Nous anticipons la suite du cours et nous appelons ces coefficients des poids (weight). IFT615 Froduald Kabanza

16 Exemple de régression linéaire
IFT615 Froduald Kabanza

17 Régression linéaire à une variable
On cherche w*=argminw Loss(hw), avec Loss(hw ) = 𝑗=1 𝑛 (yj – hw(xj))2 = 𝑗=1 𝑛 (yj – (w1xj+w0))2 La somme 𝑗=1 𝑛 (yj – (w1xj+w0))2 atteint un minimum lorsque les dérivée partielles par rapport à w0 et w1 valent zéro. Cela donne la solution unique: IFT615 Froduald Kabanza

18 Régression par la descente du gradient
Pour les modèles non linéaires, les équations définissant la perte minimale n’on souvent pas de formule fermée. On utilise la descente du gradient w = any point loop until convergence do: for each wi in w do: wi = wi – α ∂ Loss(w) ∂ wi Beaucoup de problèmes d’apprentissages consistent à ajuster les poids pour minimiser la perte. Il est donc utile d’avoir une image mentale de ce qui se passe dans l’espace des poids. Pour une régression linéaire à une variable, l’espace des poids définis par w0 et w1 est un graphe à 3 dimensions. On constate que la fonction des pertes est convexe. Il n’y a donc pas de minimum locaux. Pour aller au-delà des modèles non linéaires, on utilise la descente du gradient Intuitivement, le pas d’apprentissage détermine la grandeur des « pas » entre deux poids successives dans l’apprentissage: wi= wi- alpha+ajustement. Plus le pas est petit, plus l’apprentissage va être précise, mais ça va prendre plus de temps. Par contre, plus le pas est grand, plus l’apprentissage est rapide, mais on risque de manquer le minimum et on risque d’osciller au tour des minimum locaux. On trouve la valeur optimale de c par des ajustements expérimentaux. Le pas d’apprentissage peut être fixe. Il peut aussi diminuer au fur et à mesure du processus d’apprentissage. α : pas d’apprentissage IFT615 Froduald Kabanza

19 Régression par la descente du gradient
Pour simplifier, supposons que l’on a un seul exemple d’apprentissage (x,y). La la règle de mise à jour donne wi = wi – α ∂ Loss(w) ∂ wi w0 ← w0 + α(y-hw(x)) w1 ← w1 + α(y-hw(x))*x IFT615 Froduald Kabanza

20 Régression par la descente du gradient
Si on a N exemples d’entraînement on veut rendre minimal la perte pour chaque exemple. Cela donne: w0 ← w0 + α 𝑗=1 𝑛 (yj – hw(xj)) w1 ← w1 + α 𝑗=1 𝑛 (yj – hw(xj)) * xj C’est la règle d’apprentissage de la descente du gradient en batch. La descente du gradient stochastique examine un point d’apprentissage à la foi, choisie au hasard, en appliquant la règle pour un exemple unique vu précédemment. Cela se généralise facilement à la régression linéaire à plusieurs variables, c.à.d., cas xi sont des vecteurs. Voir le livre, section IFT615 Froduald Kabanza

21 Régression linéaire à seuil dure
Classifieurs linéaires Régression linéaire à seuil dure IFT615 Froduald Kabanza

22 Classificateur linéaire à seuil dur
Outre la régression, les fonctions linéaires peuvent être utilisées pour la classification Étant donné un ensemble d’entraînement (x1, y1), …, (xn, yN) apprendre à séparer les données en deux classes. (x1,x2) 0 ou 1 hw(x) retourne 0 ou 1 w0 + w1x1 w2x2 peut se réécrire w0x0 + w1x1 w2x2 , avec x0=1, c.a.d. w.x On a donc hw(x)= 1 si w.x ≥ 0 et 0 sinon C.à.d., hw(x)=Threshold(w.x) Règle d’apprentissage wi ← wi + α(y-hw(x))*xi C’est la règle d’apprentissage du perceptron à seuil dur. Threshold=Seuil Exemple d’apprendre à distinguer des tremblement de terres des explosions nucléaires. Chaque point (x1,x2) donne l’amplitude du signal mesuré sous terre (x1) et le signal mesuré au sol (s2). Le but est d’apprendre à distinguer si une paire (x1,x2) correspond à une explosion nucléaire (valeur/classe 1). Sinon, c’est un tremblement de terre (valeur/classe 0). Les explosions nucléaires sont les cercles noires (en bas de la courbe). Les tremblements de terre sont les cercles blancs. Les explosions nucléaires correspondent donc à des valeurs plus élevées de x1 et des valeurs moins élevées de x2. Cette fois-ci on veut une hypothèse qui classifie les données en 1 (explosions) ou en 0 (tremblements de terre). Donc hw(x) doit retourne 1 ou 0. Cela veut dire que pour les données d’entrainement, chacun des di est une paire (x1,x2) et chacun des Yi est 0 ou 1! L’hypothèse est toujours une ligne droite mais qui sépare les données cette fois-ci. En effet, une fois l’apprentissage terminée, de w0 + w1x1 w2x2 (se rappeler que x0=1) nous tirons l’équation de la ligne de séparation: X2 = -w0/w2 – (w1/w2)x1 Il s’avère que la même règle d’apprentissage de la régression linéaire est la bonne règle pour apprendre les poids de hw(x)! Ça s’explique: Se rappeler que y=hw(x) maintenant retourne 0 ou 1. Si la sortie est correcte, c.à.d., si y=hw(x), les poids sont inchangées. Si y vaut 1 mais si hw(x) vaut 0, alors wi est augmenté lorsque l’entrée xi correspondante est positive et diminué lorsque l’entrée correspondante xi est négative. Cela se comprend intuitivement, parce que l’on veut que w.x croisse pour faire en sorte que hw(x) retourne 1. Si y vaut 0 mais si hw(x) vaut 1, alors wi est diminué lorsque l’entrée xi correspondante est positive et augmenté lorsque l’entrée correspondante xi est négative. Cela se comprend intuitivement, parce que l’on veut que w.x décroisse pour faire en sorte que hw(x) retourne 1. On applique la règle d’apprentissage aux exemples un à un, en les choisissant au hasard (comme dans la descente du gradient stochastique). Nous le verrons plus loin, w0 joue en fait le rôle du billet. Il indique le seuil auquel hw(x) bascule entre 0 et 1. Pour un neurone, ce sera le seuil d’activation. Équation de la ligne X2 = -w0/w2 – (w1/w2)x1 IFT615 Froduald Kabanza

23 Perceptron (Rosenblatt, 1957)
Un des plus vieux algorithmes de classification Idée: modéliser la décision à l’aide d’une fonction linéaire, suivi d’un seuil: où si , sinon Le vecteur de poids correspond aux paramètres du modèle On ajoute également un biais w0 , qui équivaut à ajouter une entrée fictive x0 . . . Threshold w0 1 IFT615 Froduald Kabanza

24 Perceptron (Rosenblatt, 1957)
L’algorithme d’apprentissage doit adapter la valeur des paramètres (c’est-à-dire les poids et le biais) de façon à ce que soit la bonne réponse sur les données d’entraînement Algorithme du Perceptron: pour chaque paire calculer si (mise à jour des poids et biais) retourner à 1 jusqu’à l’atteinte d’un critère d’arrêt (nb. maximal d’itérations atteint ou nb. d’erreurs est 0) La mise à jour des poids est appelée la règle d’apprentissage du Perceptron. La multiplicateur est appelé le taux d’apprentissage si y = 1 et h(x) = 0, on va augmenter w_i si x_ti est positif, sinon on va le diminuer. C’est logique, puisque pour que h(x) soit égal à 1, on doit augmenter w * x si y = 0 et h(x) = 1, on va diminuer w_i si x_ti est positif, sinon on va l’augmenter. C’est logique, puisque pour que h(x) soit égal à 0, on doit diminuer w * x IFT615 Froduald Kabanza

25 Perceptron (Rosenblatt, 1957)
L’algorithme d’apprentissage doit adapter la valeur des paramètres (c’est-à-dire les poids et le biais) de façon à ce que soit la bonne réponse sur les données d’entraînement Algorithme du Perceptron: pour chaque paire calculer si (mise à jour des poids et biais) retourner à 1 jusqu’à l’atteinte d’un critère d’arrêt (nb. maximal d’itérations atteint ou nb. d’erreurs est 0) La mise à jour des poids est appelée la règle d’apprentissage du Perceptron. La multiplicateur est appelé le taux d’apprentissage forme vectorielle IFT615 Froduald Kabanza

26 ensemble entraînement
Exemple 1 D ensemble entraînement Simulation avec biais, α = 0.1 Initialisation : w ⟵ [0.5, 0, 0] Paire (x1,y1) : h(x1) = Threshold( w . x1) = Threshold(0.5) = 1 puisque h(x1) = y1, on ne fait pas de mise à jour de w xt yt [1,2,0] 1 [1,0,3] [1,3,0] [1,1,1] X0=1 et le biais w0=0.5 IFT615 Froduald Kabanza

27 ensemble entraînement
Exemple 1 D ensemble entraînement Simulation avec biais, α = 0.1 Valeur courante : w ⟵ [0.5, 0, 0] Paire (x2,y2) : h(x2) = Threshold( w . x2) = Threshold(0.5) = 1 puisque h(x2) ≠ y2, on met à jour w w ⟵ w + α ( y2 - h(x2) ) x2 = [0.5,0, 0] * (0 – 1) [1, 0, 3] = [0.4, 0, -0.3] xt yt [1,2,0] 1 [1,0,3] [1,3,0] [1,1,1] IFT615 Froduald Kabanza

28 ensemble entraînement
Exemple 1 D ensemble entraînement Simulation avec biais, α = 0.1 Valeur courante : w ⟵ [0.4, 0, -0.3] Paire (x3,y3) : h(x3) = Threshold( w . x3 + b) = Threshold(0.4) = 1 puisque h(x3) ≠ y3, on met à jour w et b w ⟵ w + α ( y3 - h(x3) ) x3 = [0.4, 0, -0.3] * (0 – 1) [1, 3, 0] = [0.3, -0.3, -0.3] xt yt [1,2,0] 1 [1,0,3] [1,3,0] [1,1,1] IFT615 Froduald Kabanza

29 ensemble entraînement
Exemple 1 D ensemble entraînement Simulation avec biais, α = 0.1 Valeur courante : w ⟵ [0.3, -0.3, -0.3] Paire (x4,y4) : h(x4) = Threshold( w . x4 + b) = Threshold(-0.3) = 0 puisque h(x4) ≠ y4, on met à jour w et b w ⟵ w + α ( y4 - h(x4) ) x4 = [0.3, -0.3, -0.3] * (1 – 0) [1, 1, 1] = [0.4, -0.2, -0.2] Et ainsi de suite, jusqu’à l’atteinte d’un critère d’arrêt... xt yt [1,2,0] 1 [1,0,3] [1,3,0] [1,1,1] IFT615 Froduald Kabanza

30 Exemple 2 [Luger, 2005] Artificial Intelligence w.x = Σ wixi 1 i=1 n
wi = α (d-h(xi))xi xt yt 1.0 1 9.4 6.4 2.5 2.1 8.0 7.7 0.5 2.2 7.9 8.4 7.0 2.8 0.8 1.2 3.0 7.8 6.1 w0 y= ℎ 𝑤 (x)=Threshold(w.x) 1. Initialisation : w = [w0 ,w1, w2] = [-.6,.75, .5] 2. y= Threshold(-.6×1+.75×1+.5×1)=Threshold(.65)=1; w = 0.2(1-1)X= 0; donc w est inchangé. 3. y= Threshold(-.6×1+.75×9.4+.5×6.4)=Threshold(9.65)=1; w = -.4X; donc w = -.4 *[1,9.4, 6.4] = [-3.01, -2.06, -1] w = [ , -1.1]. Équation de la ligne séparant les données : -1.3x x = 0. [Luger, 2005] Artificial Intelligence – Structures and Stratgeies for Complex Problem Solving. Adisson Wesley. Ces données sont un peu analogues à l’exemple du tremblement de terre Ces données pourraient provenir par un exemple d’un microphone, représentant les valeurs sonores d’une voix d’une personne. On essaie alors de reconnaitre les sons représentant effectivement la voie de la personne (+1) de celle d’une autre (-1). Ou ce pourrait par exemple être les données digitalisées provenant d’un défibrillateur cardiaque. On essaie alors de classifier les données en deux pathologies différentes. Les données pourraient aussi être pour le contrôle du régime moteur d’un véhicule: x1 = régime (vitesse) d’un moteur à propulsion. x2 = température du moteur. Données calibrées sur l’intervalle [0,10]. Quand la température et la vitesse sont excessivement élevée, on veut donner une alerte : dangereux (-1) ou sécuritaire (+1). Pour les classifier, on essaie de trouver une fonction qui minimise la distance entre les données. On peut montrer que si les données sont linéairement séparable, alors une telle fonction existe. Le perceptron montré ici permet d’apprendre la fonction. IFT615 Froduald Kabanza

31 Exemple 2 Après dix itérations x1 x2 d 1.0 1 9.4 6.4 -1 2.5 2.1 8.0
7.7 0.5 2.2 7.9 8.4 7.0 2.8 0.8 1.2 3.0 7.8 6.1 Après dix itérations IFT615 Froduald Kabanza

32 Surface de séparation Le Perceptron cherche donc un séparateur linéaire entre les deux classes La surface de décision d’un classifieur est la surface (dans le cas du perceptron en 2D, une droite) qui sépare les deux régions classifiées dans les deux classes différentes surface de décision le vecteur de poids détermine l’orientation de la surface le biais détermine sa position IFT615 Froduald Kabanza

33 Convergence et séparabilité
Si les exemples d’entraînement sont linéairement séparables (gauche), l’algorithme est garanti de converger à une solution avec une erreur nulle sur l’ensemble d’entraînement, quel que soit le choix de Si non-séparable linéairement (droite), pour garantir la convergence à une solution avec la plus petite erreur possible en entraînement, on doit décroître le taux d’apprentissage, par ex. selon k est le nombre de mises à jours jusqu’à maintenant trouver le classifieur linéaire avec avec erreur minimale est NP complet, donc la convergence peut prendre du temps... IFT615 Froduald Kabanza

34 Courbe d’apprentissage
Pour visualiser la progression de l’apprentissage, on peut regarder la courbe d’apprentissage, c’est-à-dire la courbe du taux d’erreur (ou de succès) en fonction du nombre de mises à jour des paramètres linéairement séparable pas linéairement séparable pas linéairement séparable, avec taux d’app. décroissant IFT615 Froduald Kabanza

35 Régression Logistique
Classifieurs linéaires Régression Logistique IFT615 Froduald Kabanza

36 Régression logistique
Idée: plutôt que de prédire une classe, prédire une probabilité d’appartenir à la classe 1 (ou la classe 0, ça marche aussi) Pour choisir une classe, prendre la plus probable selon le modèle si choisir la classe 1 sinon, choisir la classe 0 Parfois, on peut interpréter h_w(x) comme étant P(h_w(x)|x), c-à-d., la probabilité d’avoir la sortie étant donné l’entrée. . . . Logistic IFT615 Froduald Kabanza

37 Dérivation de la règle d’apprentissage
Pour obtenir une règle d’apprentissage, on définit d’abord une perte si , on souhaite maximiser la probabilité On dérive la règle d’apprentissage comme une descente de gradient ce qui donne La règle est donc la même que pour le Perceptron, mais la définition de est différente - Note: j’utilise la définition la plus commune de la régression logistique, avec la log-loss, contrairement au livre qui utilise la quadratic-loss (différence des carrés) comme coût - La règle d’apprentissage n’est jamais 0, i.e. on met toujours à jour les poids IFT615 Froduald Kabanza

38 Limitations des classifieurs linéaires
IFT615 Froduald Kabanza

39 Limitation des classifieurs linéaires
Cependant, la majorité des problèmes de classification ne sont pas linéaires En fait, un classifieur linéaire ne peut même pas apprendre XOR! AND OR XOR 1 1 1 ? Une autre façon de voir que le perceptron ne peut pas apprendre le OU-Exclusif est d’observer ceci. Considérons un perceptron avec deux entrées x1, x2 et deux poids correspondants, w1 et w2, et le seuil t. Pour apprendre la fonction Ou-Exclusif, l’apprentissage du réseau de neurones doit trouver/aboutir/converger vers des poids satisfaisant les équations suivantes: 0 + 0 < t (c.à-d., t doit être positif) W1* >= t 0 + w2*1 >= t w1*1 + w2*1 <=t Ce système d’équations n’a pas de solution. Le perceptron ne peut donc pas apprendre le Xor. On verra qu’un réseau multi-couches lui peut faire l’apprentissage. Ce qui rend le XOR impossible à apprendre avec le perceptron est le fait que les deux classes à distinguer (données en noir et données en vert) sont linéairement non séparables. Le problème d’apprendre une classification binaire d’un ensemble de données revient à les séparer en deux groupe. Dans l’espace à deux dimensions, chaque donné correspond à un point dans l’espace 2D et il s’agit de trouver une ligne droite les séparant. Dans l’espace à 3 dimensions, il s’agit de trouver un plan. Ainsi de suite, dans l’espace à n dimensions, un ensemble de données est linéairement séparable s’ils peuvent être séparés par un hyperplan de dimension n-1. IFT615 Froduald Kabanza

40 Exemples de neurones xi wi xi wi x y x+y-2 x+y-1  1 -1 -2  IFT615
-1 -2 Pour avoir une idée des opérations d’’un neurone, on peut le comparer à une porte ET, OU logique. En fait, une des motivations de la conceptions des neurones par McCulloch et Pitts étaient justement leur habilité à modéliser des fonctions binaires de base. Ceci est fondamental, puisque cela veut dire qu’on peut utiliser un réseau de neurone pour implémenter n’importe quelle fonction booléenne. Notez encore l’utilisation du paramètre d’entrée 1! Nous l’avons déjà vu, un tel paramètre est souvent appelé un biais. Il sert en fait à établir le seuil d’activation pour la combinaison linéaire. Ainsi, dans le premier cas, le neurone s’active lorsque la combinaison linéaire de x et y est plus grande ou égale 2. Note: Dans la logique booléenne, normalement on aura 0 et 1. Ici on a -1 et +1. IFT615 Froduald Kabanza

41 Limitation des classifieurs linéaires
Par contre, on pourrait transformer l’entrée de façon à rendre le problème linéairement séparable sous cette nouvelle représentation Dans le cas de XOR, on pourrait remplacer par AND( , ) et par OR( , ) XOR OR( , ) XOR 1 1 ? AND( , ) IFT615 Froduald Kabanza

42 Réseau de neurones artificiels
IFT615 Froduald Kabanza

43 Neurone artificiel aj =g(inj)=Threshold(w.x) x1 xn x0 w1 wn w0 aj
Logistic x1 xn x0 w1 wn w0 aj . . . NEURONE BIOLOGIQUE Un neurone est une cellule du cerveau dont la principale fonction est la collecte, le traitement et la dissémination de signaux nerveux (électriques). La capacité de traitement de l’information du cerveau émane essentiellement de réseaux de tels neurones. Chaque neurone est constitué d’un corps (soma) contenant le noyau de la cellule. De la cellule émanent plusieurs fibres appelés dendrites et une seule longue fibre appelée axon. L’axon s’étale sur une très longue distance bien plus que suggéré par le dessin. Il peut facilement varier de 1 cm à 1m. Un neurone fait des connexions avec autres neurones à des jonctions appelées snapes. NEURONE ARTIFICIEL Modèle d’un neurone ‘j’ ayant comme input in_j (i.e., x0, …, xn). C’est un perceptron comme on vient de le voir. Entrée: 0 (inhibition) ou 1 (excitation) Sortie: 0 ou 1 Threshold: >= 0 Calcul de l’activation: Reçoit n entrées Multiplie chaque entrée par un poids Applique la fonction d’activation sur la some des entrées multipliées par leurs poids respectifs pour obtenir la sortie La fonction d’activation peut être dure (fonction seuil) ou dure (fonction sigmoïde). Le neurone « s’active » lorsque la combinaison linéaire de ses entrées dépasse zéro. Un lien d’un neurone i vers le neurone j sert à propager l’activation xi du neurone i vers le neurone j. Chaque lien a un poids wi qui sert à déterminer la force de la sortie associée dans la combinaison linéaire avec les autres signaux. La fonction d’activation g est conçue pour remplir deux rôles: On veut que le neurone soit actif (≥ 0) lorsqu’une entrée correcte est donnée, inactif (<= 0) lorsqu’une entrée erronée est donnée Souvent la fonction d’activation sigmoide est préférée à la fonction signe puisqu’elle est dérivable. Elle permet une activation douce (contrairement à une activation dure avec la fonction en escalier). Nous l’avons vu, la dérivabilité est une propriété requise pour certains algorithmes d’apprentissage: elle permet d’utiliser la descente du gradiant pour déterminer la modification des poids des connections d’une itération à la suivante durant le processus d’apprentissage. Neurone Biologique Neurone artificiel (Perceptron) cellule (soma) neurone dendrites entrées synapses poids axon sortie IFT615 Froduald Kabanza

44 Réseau de neurones Un modèle de calcul inspiré du cerveau humain.
10 milliards de neurones 60 milliards de connexions (synapses) RNA : Un nombre fini de neurones en couches successives. Réseau feedfoward : pas de boucles. Réseau récurrents: les sorties peuvent être connectées aux entrées. Peut mémoriser. RÉSEAU DE NEURONNES BIOLOGIQUE Un neurone peut avoir de 10 à connexions avec d’autres neurones. Les signaux sont propagés d’un neurone à un autre par des réactions électrochimiques très complexes. Les signaux contrôlent l’activité du cerveau dans le court terme et aussi permettent des changements long-termes dans l’état des neurones et leurs connectivités. On pensent que ces mécanismes constituent la base de l’apprentissage dans le cerveau. La plus part des traitement se déroulent dans le cortex cérébral (partie la plus extérieure du cerveau). RÉSEAU DE NEURONNES ARTIFICIEL Un réseau de neurones artificiel est constitué de neurones connectés par des liens directes. Un lien d’un neurone i vers le neurone j sert à propager l’activation du neurone i vers le neurone j. Chaque lien a un poids qui sert à déterminer la force de la sortie associée dans la combinaison linéaire avec les autres signaux. Les réseaux de neurones sont aussi connus comme des approches connexionnistes de l’intelligence artificielle ou des approches de traitement distribué. En effet, le calcul dans chaque neurone se fait en parallèle avec les autres. Conceptuellement, le caractère distribué rend les réseaux de neurones plus robustes aux fautes. Contrairement aux approches symboliques, un réseau de neurone ne se programme pas comme tel – une fois l’architecture défini, il apprend. Les réseaux de neurones sont surtout pratiques pour des problèmes n’ayant pas une syntaxe bien définie pour s’apprêter à la programmation explicite: par exemple, des problèmes de reconnaissance de formes. Un réseau de neurone est généralement déterminé par: Sa topologie L’algorithme d’apprentissage Le codage des données (interprétation des entrées sorties) On veut que h_w ne soit pas linéaire, autrement on n’a pas besoin d’un réseau de neurones, une fonction linéaire simple ferait l’affaire. IFT615 Froduald Kabanza

45 Dérivation de la règle d’apprentissage
La dérivation de la règle d’apprentissage se fait encore avec les gradients Par l’application de la dérivée en chaîne, on peut décomposer cette règle d’apprentissage comme suit: Donc la règle de mise à jour peut être écrite comme suite: x0 . . . Logistic w0 gradient du coût p/r au neurone gradient du neurone p/r à la somme des entrées gradient de la somme p/r au poids pour la chaîne rule, donner une intuition à partir du signe de chaque dérivée partielle (si -1 et -1, alors le résultat intuitivement devrait être +1) IFT615 Froduald Kabanza

46 Dérivation de la règle d’apprentissage
Par contre, un calcul naïf de tous ces gradients serait très inefficace Pour un calcul efficace, on utilise la procédure de rétropropagation des gradients (ou erreurs) x0 . . . Logistic w0 gradient du coût p/r au neurone gradient du neurone p/r à la somme des entrées gradient de la somme p/r au poids pour la chaîne rule, donner une intuition à partir du signe de chaque dérivée partielle (si -1 et -1, alors le résultat intuitivement devrait être +1) IFT615 Froduald Kabanza

47 Rétropropagation des gradients
Utiliser le fait que la dérivée pour un neurone à la couche l peut être calculée à partir de la dérivée des neurones connectés à la couche l où et itère sur les neurones cachés de la couche l+1 (pour simplifier notation) IFT615 Froduald Kabanza

48 Visualisation de la rétropropagation
L’algorithme d’apprentissage commence par une propagation avant x1 = w1,3 w3,5 1 3 5 w5,7 w1,4 w3,6 7 w2,3 w4,5 w6,7 x2 = 2 4 6 w2,4 w4,6 IFT615 Froduald Kabanza

49 Visualisation de la rétropropagation
Ensuite, le gradient sur la sortie est calculé, et le gradient rétropropagé x1 = w1,3 w3,5 1 3 5 w5,7 w1,4 w3,6 7 w2,3 w4,5 w6,7 x2 = 2 4 6 w2,4 w4,6 IFT615 Froduald Kabanza

50 Visualisation de la rétropropagation
Peut propager aussi (décomposition équivalente du livre) x1 = w1,3 w3,5 1 3 5 w5,7 w1,4 w3,6 7 w2,3 w4,5 w6,7 x2 = 2 4 6 w2,4 w4,6 - Je préfère parler de gradient sur les neurones et le séparer du gradient à travers la fonction d’activation Dans la livre, ils combinent les deux ensemble À la fin, ça donne une règle de mise à jour dont la formule est similaire au perceptron et à la régression logistique IFT615 Froduald Kabanza

51 (pour simplifier notation)
Traite le cas avec plusieurs sorties Bug dans la la notation: dans y_i et dans a_j, j ne veut pas dire la même chose! (pour simplifier notation) IFT615 Froduald Kabanza

52 Exemple Exemple: , 0.5 1 2 1 -1 -1 1.5 3 -3 -1 -2 -4 propagation avant
IFT615 Froduald Kabanza

53 Exemple Exemple: , 0.5 1 2 0.378 1 -1 -1 1.5 3 -3 -1 -2 -4
propagation avant Logistic(0.5 * * -1) = Logistic(-0.5) = 0.378 IFT615 Froduald Kabanza

54 Exemple Exemple: , 0.5 1 2 0.378 1 -1 -1 1.5 3 -3 -1 0.5 -2 -4
propagation avant Logistic(-1 * * -1) = Logistic(0) = 0.5 IFT615 Froduald Kabanza

55 Exemple Exemple: , 0.5 1 2 0.378 0.867 1 -1 -1 1.5 3 -3 -1 0.5 -2 -4
propagation avant Logistic(1 * * 0.5) = Logistic(1.878) = 0.867 IFT615 Froduald Kabanza

56 Exemple Exemple: , 0.5 1 2 0.378 0.867 1 -1 -1 1.5 3 -3 -1 0.5 0.085 -2 -4 propagation avant Logistic(-1 * * 0.5) = Logistic(-2.378) = 0.085 IFT615 Froduald Kabanza

57 Exemple Exemple: , 0.5 1 2 0.378 0.867 1 -1 -1 0.648 1.5 3 -3 -1 0.5 0.085 -2 -4 propagation avant Logistic(1 * * 0.085) = Logistic(0.612) = 0.648 IFT615 Froduald Kabanza

58 Exemple Exemple: , 0.5 1 2 0.378 0.867 1 -1 -1 Δ = y - a 0.648 1.5 3 -3 -1 0.5 0.085 -2 -4 rétropropagation IFT615 Froduald Kabanza

59 Exemple Exemple: , 0.5 1 2 0.378 0.867 1 -1 -1 Δ = 0.648 1.5 3 -3 -1 0.5 0.085 -2 -4 rétropropagation IFT615 Froduald Kabanza

60 Exemple Exemple: , 0.5 1 2 0.378 0.867 1 -1 -1 Δ = 0.352 0.648 1.5 3 -3 -1 0.5 0.085 -2 -4 rétropropagation IFT615 Froduald Kabanza

61 Exemple Exemple: , Δ = 0.041 0.5 1 2 0.378 0.867 1 -1 -1 Δ = 0.352 0.648 1.5 3 -3 -1 0.5 0.085 -2 -4 rétropropagation Δ = * ( ) * 1 * = 0.041 IFT615 Froduald Kabanza

62 Exemple Exemple: , Δ = 0.041 0.5 1 2 0.378 0.867 1 -1 -1 Δ = 0.352 0.648 Δ = 1.5 3 -3 -1 0.5 0.085 -2 -4 rétropropagation Δ = * ( ) * -3 * = IFT615 Froduald Kabanza

63 Exemple Exemple: , Δ = 0.029 Δ = 0.041 0.5 1 2 0.378 0.867 1 -1 -1 Δ = 0.352 0.648 Δ = 1.5 3 -3 -1 0.5 0.085 -2 -4 rétropropagation Δ = * ( ) * (1 * * ) = 0.029 IFT615 Froduald Kabanza

64 Exemple Exemple: , Δ = 0.029 Δ = 0.041 0.5 1 2 0.378 0.867 1 -1 -1 Δ = 0.352 0.648 Δ = 0.113 Δ = 1.5 3 -3 -1 0.5 0.085 -2 -4 rétropropagation Δ = 0.5 * (1-0.5) * (3 * * ) = 0.113 IFT615 Froduald Kabanza

65 Exemple Exemple: , Δ = 0.029 Δ = 0.041 0.5 1 2 0.378 0.867 1 -1 -1 Δ = 0.352 0.648 Δ = 0.113 Δ = 1.5 3 -3 -1 0.5 0.085 -2 -4 mise à jour (α=0.1) w1,3  * 2 * = 0.506 w3,5  * * = 1.002 w1,4  * 2 * = w3,6  * * = w5,7  * * = 1.031 w2,3  * -1 * = 1.497 w4,5  * 0.5 * = 3.002 w6,7  * * = w2,4  * -1 * = w4,6  * 0.5 * = IFT615 Froduald Kabanza

66 Retour sur la notion de généralisation
Comment choisir le nombre de neurones cachés? Erreur Nb. de neurones cachés IFT615 Froduald Kabanza

67 Retour sur la notion de généralisation
Comment choisir le nombre de neurones cachés? Erreur Nb. d’itérations IFT615 Froduald Kabanza

68 Retour sur la notion de généralisation
Comment choisir le nombre de neurones cachés? Erreur On veut trouver ce point, sans sous-apprentissage ni surapprentissage Capacité de mémoriser l’ensemble d’entraînement IFT615 Froduald Kabanza

69 Hyper-paramètres Dans tous les algorithmes d’apprentissage qu’on a vu jusqu’à maintenant, il y avait des « options » à déterminer Perceptron et régression logistique: le taux d’apprentissage , nb. itérations N réseau de neurones: taux d’apprentissage, nb. d’itérations, nombre de neurones cachés, fonction d’activation g(.) On appelle ces « options » des hyper-paramètres choisir la valeur qui marche le mieux sur l’ensemble d’entraînement est en général une mauvaise idée (mène à du surapprentissage) on ne peut pas utiliser l’ensemble de test non plus, ça serait tricher! en pratique, on garde un autre ensemble de côté, l’ensemble de validation, pour choisir la valeur de ce paramètre Sélectionner les valeurs d’hyper-paramètres est une forme d’apprentissage IFT615 Froduald Kabanza

70 Autres définitions Capacité d’un modèle : habilité d’un modèle à réduire son erreur d’entraînement, à mémoriser ces données Modèle paramétrique: modèle dont la capacité n’augmente pas avec le nombre de données (Perceptron, régression logistique, réseau de neurones avec un nombre de neurones fixe) Modèle non-paramétrique: l’inverse de paramétrique, la capacité augmente avec la taille de l’ensemble d’entraînement (réseau de neurones avec un nombre de neurones adapté aux données d’entraînement) Époque: une itération complète sur tous les exemples d’entraînement Fonction d’activation: fonction non-linéaire g(.) des neurones cachés IFT615 Froduald Kabanza

71 Applications Problèmes de classification (visages, textes, sons, …)
Jeux Contrôle - Par exemple, contrôler une voiture de course, un avion Évaluation de la menace – Entrée: configuration du jeu. Sortie: niveau de menace, unités menacés. Cadre bien avec le concept de « influence map » Bien d’autres … Il existe plusieurs packages implémentant les algorithmes d’apprentissage sur Internet IFT615 Froduald Kabanza

72 Exemple 2 NEAT Coevolution Robots IFT615 Froduald Kabanza
Utilise winner-take-all comme structure de réseaux de neurones. Utilise la programmation génétique pour faire évoluer la structure du réseau. NEAT%20Robot%20Evolution%20Demo.htm IFT615 Froduald Kabanza

73 Objectifs du cours Algorithmes et concepts recherche locale
apprentissage automatique peut servir dans plusieurs contextes satisfaction de contraintes processus de décision markovien apprentissage de modèles probabilistes agents intelligents raisonnement probabiliste apprentissage automatique - les slides devraient être mises en ligne le mercredi de chaque semaine recherche à deux adversaires recherche heuristique apprentissage d’heuristique IFT615 Froduald Kabanza

74 Apprentissage automatique : pour quel type d’agent?
Simple reflex Model-based reflex Goal-based Utiliy-based IFT615 Froduald Kabanza

75 Vous devriez être capable de...
Simuler les algorithmes vus Perceptron régression logistique réseau de neurones Comprendre les notions de sous-apprentissage et surapprentissage Savoir ce qu’est un hyper-paramètre IFT615 Froduald Kabanza

76 Extra Dérivées partielles, descente du gradient IFT615
Froduald Kabanza

77 Recherche locale pour la minimisation d’une perte
j’utilise une notation différente du livre, qui utilise Loss(w) ? ? IFT615 Froduald Kabanza

78 Dérivées On peut obtenir la direction de descente via la dérivée
Le signe de la dérivée est la direction d’augmentation de signe positif indique que augmente lorsque augmente signe négatif indique que diminue lorsque augmente La valeur absolue de la dérivée est le taux d’augmentation de Plutôt que , je vais utiliser le symbole IFT615 Froduald Kabanza

79 Dérivées Les dérivées usuelles les plus importantes sont les suivantes: et sont des constantes IFT615 Froduald Kabanza

80 Dérivées On peut obtenir des dérivées de composition de fonctions
et sont des constantes IFT615 Froduald Kabanza

81 Dérivées Exemple 1: IFT615 Froduald Kabanza

82 Dérivées Exemple 2: IFT615 Froduald Kabanza

83 Dérivées Pour des combinaisons plus complexes: IFT615 Froduald Kabanza

84 Dérivées Exemple 3: IFT615 Froduald Kabanza

85 Dérivées Exemple 4: IFT615 Froduald Kabanza

86 Dérivées Exemple 4: dérivation alternative! IFT615 Froduald Kabanza

87 Algorithme de descente de gradient
IFT615 Froduald Kabanza

88 Dérivée partielle et gradient
Dans notre cas, la fonction à optimiser dépend de plus d’une variable elle dépend de tout le vecteur Dans ce cas, on va considérer les dérivées partielles, c.-à-d. la dérivée par rapport à chacune des variables en supposant que les autres sont constantes: IFT615 Froduald Kabanza

89 Dérivée partielle et gradient
Exemple de fonction à deux variables: Dérivées partielles: traite comme une constante traite comme une constante IFT615 Froduald Kabanza

90 Dérivée partielle et gradient
Un deuxième exemple: Dérivée partielle : équivaut à faire la dérivée de où et on a des constantes et IFT615 Froduald Kabanza

91 Dérivée partielle et gradient
Un deuxième exemple: IFT615 Froduald Kabanza

92 Dérivée partielle et gradient
Un deuxième exemple: où , , On remplace: IFT615 Froduald Kabanza

93 Dérivée partielle et gradient
Un troisième exemple: Dérivée partielle : équivaut à faire la dérivée de où et on a une constante IFT615 Froduald Kabanza

94 Dérivée partielle et gradient
Un troisième exemple: IFT615 Froduald Kabanza

95 Dérivée partielle et gradient
Un troisième exemple: où , On remplace: IFT615 Froduald Kabanza

96 Dérivée partielle et gradient
On va appeler gradient d’une fonction le vecteur contenant les dérivées partielles de par rapport à toutes les variables Dans l’exemple avec la fonction : IFT615 Froduald Kabanza

97 Descente de gradient Le gradient donne la direction (vecteur) ayant le taux d’accroissement de la fonction le plus élevé IFT615 Froduald Kabanza

98 Descente de gradient La direction opposée au gradient nous donne la direction à suivre IFT615 Froduald Kabanza

99 Descente de gradient La direction opposée au gradient nous donne la direction à suivre IFT615 Froduald Kabanza

100 Apprentissage vue comme la minimisation d’une perte
En apprentissage automatique, on souhaite optimiser: Le gradient par rapport à la perte moyenne contient les dérivées partielles: Devrait calculer la moyenne des dérivées sur tous les exemples d’entraînement avant de faire une mise à jour des paramètres! j’utilise une notation différente du livre, qui utilise Loss(w) IFT615 Froduald Kabanza

101 Descente de gradient stochastique
Descente de gradient stochastique: mettre à jour les paramètres à partir du (c.-à-d. des dérivées partielles) d’un seul exemple, choisi aléatoirement: Cette procédure est beaucoup plus efficace lorsque l’ensemble d’entraînement est grand on fait mises à jour des paramètres après chaque parcours de l’ensemble d’entraînement, plutôt qu’une seule mise à jour avec la descente de gradient normale - Initialiser aléatoirement - Pour T itérations - Pour chaque exemple d’entraînement - j’utilise une notation différente du livre, qui utilise Loss(w) IFT615 Froduald Kabanza


Télécharger ppt "IFT 615 – Intelligence artificielle Apprentissage supervisé"

Présentations similaires


Annonces Google