IFT 615 – Intelligence artificielle Apprentissage supervisé

Slides:



Advertisements
Présentations similaires
La Méthode de Simplexe Standardisation
Advertisements

Plan Les réseaux de neurones Le réseau RBF RBF et Mushroom Historique
Thomas G. Dietterich Approximate Statistical Tests for Comparing
A. Cornuéjols IAA (basé sur Rob Schapires IJCAI99 talk) Combiner des apprenants: le boosting.
Algorithmes et structures de données avancés
Classification et prédiction
Classification et prédiction
Efficient Simplification of Point-Sampled Surfaces
RECONNAISSANCE DE FORMES
Les tests d’hypothèses (I)
LES RESEAUX DE NEURONES
Application de réseaux bayésiens à la détection de fumées polluantes
A Pyramid Approach to Subpixel Registration Based on Intensity
Chap 1 Grammaires et dérivations.
Modélisation des systèmes non linéaires par des SIFs
IFT 702 – Planification en Intelligence Artificielle Planification avec des processus de décision de Markov Froduald Kabanza Département d’informatique.
IFT 615 – Intelligence artificielle Recherche heuristique locale
IFT313 Introduction aux langages formels
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
L’échange naturel Le choix individuel de Robinson l’amène à déterminer les termes d’un contrat naturel d’échange, selon lequel, en échange des quantités.
Concepts avancés en mathématiques et informatique appliquées
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
Apprendre à partir des observations
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Un neurone élémentaire
IFT 615 – Intelligence artificielle Agents intelligents
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
Froduald Kabanza Département d’informatique Université de Sherbrooke
IFT451 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels
1.2 COMPOSANTES DES VECTEURS
Cours Corporate finance Eléments de théorie du portefeuille Le Medaf
Méthode des k plus proches voisins
RECONNAISSANCE DE FORMES
DEA Perception et Traitement de l’Information
Réseaux de neurones.
Méthodes de prévision (STT-3220)
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Révision de mi-session.
IFT313 Révision finale Département d’informatique
IFT313 Introduction aux langages formels
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Automates à pile LR Notion de poignée.
IFT 702 – Planification en intelligence artificielle Transformations Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift702.
Froduald Kabanza Département d’informatique Université de Sherbrooke
IFT 616 Intelligence Artificielle
Les réseaux de neurones
GPA-779 Perceptron multicouche
Représentation des systèmes dynamiques dans l’espace d’état
IFT Complexité et NP-complétude
Courbes de Bézier.
La corrélation et la régression multiple
Algorithmes d ’approximation
Optimisation-Identification et Cast3M
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Résoudre une équation du 1er degré à une inconnue
Rappel Modèle analyse-synthèse de la compilation
La régression multiple
Programmation linéaire en nombres entiers : les méthodes de troncature
ASI 3 Méthodes numériques pour l’ingénieur
Présentation du marché obligataire
Christelle Scharff IFI 2004
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Les réseaux de neurones à réservoir en traitement d’images
Intelligence Artificielle
Réseaux de neurones à base radiale
IFT 615 – Intelligence artificielle Consignes pour l’examen final
Recherche de motifs par projections aléatoires
Le chaos pourquoi ? Permet de modéliser un type de mouvement récent qui n’est ni uniforme, ni accéléré. Des dynamiques chaotiques ont été mises en évidence.
Méthode des moindres carrés (1)
GPA-779 Application des systèmes experts et des réseaux de neurones.
Résolution des équations différentielles
Transcription de la présentation:

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

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

Section 8.1 du livre Introduction IFT615 Froduald Kabanza

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

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

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

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

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

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

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

Exemples d’espaces d’hypothèses f(x) = 0.5 + 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

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

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

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

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

Exemple de régression linéaire IFT615 Froduald Kabanza

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

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

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

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 18.62. IFT615 Froduald Kabanza

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

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

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

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

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

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

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 * (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

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 * (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

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] + 0.1 * (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

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 = [+10.9 + -1.3, -1.1]. Équation de la ligne séparant les données : -1.3x1 + -1.1x2+10.9 = 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

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

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

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

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

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

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

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

Limitations des classifieurs linéaires IFT615 Froduald Kabanza

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* 1 + 0 >= 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

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

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

Réseau de neurones artificiels IFT615 Froduald Kabanza

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

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 à 10 000 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

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

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

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+1 où et itère sur les neurones cachés de la couche l+1 (pour simplifier notation) IFT615 Froduald Kabanza

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

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

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

(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

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

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

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

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.378 + 3 * 0.5) = Logistic(1.878) = 0.867 IFT615 Froduald Kabanza

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.378 + -4 * 0.5) = Logistic(-2.378) = 0.085 IFT615 Froduald Kabanza

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.867 + -3 * 0.085) = Logistic(0.612) = 0.648 IFT615 Froduald Kabanza

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

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

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

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 Δ = 0.867 * (1-0.867) * 1 * 0.352 = 0.041 IFT615 Froduald Kabanza

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

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

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

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

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

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

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

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

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

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 » http://www.onlamp.com/pub/a/onlamp/2004/09/30/AIforGameDev.html Bien d’autres … Il existe plusieurs packages implémentant les algorithmes d’apprentissage sur Internet IFT615 Froduald Kabanza http://www.onlamp.com/pub/a/onlamp/2004/09/30/AIforGameDev.html

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

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

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

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

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

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

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

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

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

Dérivées Exemple 1: IFT615 Froduald Kabanza

Dérivées Exemple 2: IFT615 Froduald Kabanza

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

Dérivées Exemple 3: IFT615 Froduald Kabanza

Dérivées Exemple 4: IFT615 Froduald Kabanza

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

Algorithme de descente de gradient IFT615 Froduald Kabanza

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

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

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

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

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

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

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

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

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

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

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

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

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

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