INF4230 – Intelligence Artificielle Apprentissage automatique (Machine Learning) Hiver 2017 Sommaire • • • • Qu’est-ce que l’apprentissage automatique? Concepts. Algorithmes de bases. Réseaux de neurones artificiels. – Perceptron. – Architectures. – Algorithmes d’apprentissage. • Introduction aux réseaux de neurones convolutifs INF4230 - Intelligence artificielle 2 Qu’est-ce que l’apprentissage? • L’apprentissage est la capacité pour un agent intelligent de tirer profit son expérience passée et de ses observations dans l’environnement pour améliorer ses performances dans le futur. • Rappel : modèle PEAS – Performance measure, Environment, Actuators, Sensors. – On mesure l’«intelligence» d’un agent intelligent à l’aide d’une mesure de performance. • Rappel : le test de Turing requiert des capacités d’apprentissage. INF4230 - Intelligence artificielle 3 Learning agents INF4230 - Intelligence artificielle 4 Pourquoi un agent intelligent devrait-il pouvoir apprendre? 1. Impossible de prévoir toutes les situations possibles (ex: un robot qui navigue dans des labyrinthes doit apprendre la configuration de chaque labyrinthe). 2. Impossible d’anticiper les changements au fil du temps (ex: systèmes de détection de fraudes, de polluriels, prédiction du cours boursier, etc.). 3. Nous ne savons pas trop comment résoudre certains problèmes (ex: reconnaissance de visage). INF4230 - Intelligence artificielle 5 Utility-based agents Simple reflex agents Goal-based agents Que peut-on apprendre? 1. 2. 3. 4. 5. 6. Association état courant action. Extraction de caractéristiques des données sensorielles perçues. Résultats de nos actions. Désirabilité (fonction d’utilité) des états de monde. Désirabilité (fonction d’utilité) des actions. Buts représentant des classes d’états qui maximise notre utilité. INF4230 - Intelligence artificielle 6 Que peut-on apprendre? 1. Association : état courant action. 2. Extraction de caractéristiques des données sensorielles perçues. 3. Résultats de nos actions. 4. Désirabilité (fonction d’utilité) des états de monde. 5. Désirabilité (fonction d’utilité) des actions. 6. Buts représentant des classes d’états qui maximise notre utilité. INF4230 - Intelligence artificielle 7 Formes d’apprentissage • Apprentissage non supervisée : – Clustering (≈regroupements), classification. – Le système ne dispose que d’entrées. – Ne dispose pas d’informations explicites sur des sorties attachées aux entrées. – Applications : Regroupement automatique de … • Nouvelles par thème dans les médias électronique; • Tweets dans les médias sociaux; • Génomes, etc. INF4230 - Intelligence artificielle 8 Formes d’apprentissage • Apprentissage supervisée : – Jeu de données d’exemples entrées et sorties. – But : apprendre relation entre entrées et sorties. – Applications : • • • • • reconnaissance optique de caractères (OCR); reconnaissance vocale; vision par ordinateur; détection de polluriel (SPAM) etc. – Principal sujet de cette présentation. INF4230 - Intelligence artificielle 9 Formes d’apprentissage • Apprentissage par renforcement : – Reinforcement learning. – L’agent apprend en recevant un série de renforcements (feedbacks) • Exemples : récompenses ou pénalités. INF4230 - Intelligence artificielle 10 Représentation des entrées et sorties • L’entrée doit généralement être prétraitée et mise dans une représentation factorisé (standardisé, normalisé). • Par exemple, l’entrée peut être un vecteur X de n valeurs discrètes ou réelles. • La sortie y, parfois appelée cible, peut être : – une classe (problème de classification); • Ex: {ensoleillé, nuageux, pluie}. • Cas particulier : classification binaire. – une valeur réelle (problème de régression). INF4230 - Intelligence artificielle 11 Exemple: Reconnaissance de caractères (Optical Characters recognition, OCR) Étape 1 : découpage de l’image numérisée en plusieurs unités. On tente ensuite d’identifier quel est le caractère associée à chaque unité découpée. INF4230 - Intelligence artificielle 12 Exemple: Reconnaissance de caractères (Optical Characters recognition, OCR) Étape 2 : traitements sur un caractère. • Réduction de la résolution spatiale; • Réduction du nombre de bandes (RGB Niveaux gris) • Réduction de l’amplitude (ex: image binaire de 0 et 1) INF4230 - Intelligence artificielle 13 Exemple: Reconnaissance de caractères (Optical Characters recognition, OCR) Entrée : un vecteur de 12 x 16 = 192 valeurs (dans {0,1} ou [0,1]), chacune représentant un pixel en entrée. ( 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,1,1,1, 1,0,0,0,0,0, 0,0,0,1,1,0, 1,1,0,0,0,0, 0,0,0,1,0,0, 1,1,0,0,0,0, 0,0,1,1,0,0, 1,1,0,0,0,0, 0,0,1,1,0,0, 1,1,0,0,0,0, 0,0,1,1,0,0, 1,1,1,1,0,0, 0,0,0,1,1,1, 1,1,1,1,1,0, 0,0,0,0,1,1, 0,0,0,0,1,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0 ) Sortie: un caractère : {a, b, c, d, …, x, y, z, […], 0, 1, 2, … 8, 9}. INF4230 - Intelligence artificielle 14 Comment programmer la fonction f ? 1216 f : {0,1} {a, b, c, d ,..., y, z ,0,1,...,9} Coderiez-vous ceci ? char f(boolean[][] image){ if((image[7][7] && image[7][8] && … ) || (…) || (…) ) return ‘a’; if (…) return ‘b’; if (…) return ‘c’; … } Taille de la table d’entrées caractère : 2192 ≈ 6,277101735×10⁵⁷ INF4230 - Intelligence artificielle 15 Apprentissage supervisée • À partir d’un ensemble d’entraînement (training set) de N paires d’exemples entrée-sortie {(x1, y1), (x2, y2), …, (xN, yN)} où chaque yi a été générée par une fonction inconnue yi=f(xi), • on tente de construire une fonction h(x), appelée modèle ou hypothèse, qui est une bonne approximation de la fonction f(x), c’est-à-dire h(x)≈ f(x). • La fonction h(x) est construite à l’aide d’un algorithme d’apprentissage qui généralise les exemples de l’ensemble d’entraînement. INF4230 - Intelligence artificielle 16 Exemple d’ensemble d’entraînement 6 x 26 exemples. Chaque exemple est une paire (X, y), où X est un vecteur de 192 valeurs {0,1}, et où y=f(X) est donné. INF4230 - Intelligence artificielle 17 APPRENTISSAGE SUPERVISÉ / ALGORITHMES DE BASE INF4230 - Intelligence artificielle 18 Algorithme des k plus proches voisins • On dispose d’un ensemble d’entraînement E. • Lorsqu’on veut classifier un nouvel objet x, on cherche dans l’ensemble d’entraînement E les k exemples les plus proche de x. • On utilise une fonction de distance (euclidienne ou de Manhattan) qui détermine le niveau de similarité entre deux objets x1 et x2. • Extraction : – Prob de classification : La classe majoritaire l’emporte. – Prob de régression : moyenne ou médiane. • Structure de données pour organiser E : Arbre k-d (k-d tree). INF4230 - Intelligence artificielle 19 Exemple 1 : Prédiction solvabilité (1) # Revenu Valeur maison Résultat 1 35 k$ 130 k$ Faillite 2 50 k$ 115 k$ Remboursé 3 75 k$ 155 k$ Remboursé 4 100 k$ 120 k$ Remboursé 5 40 k$ 200 k$ Faillite 6 55 k$ 195 k$ Faillite 7 75 k$ 220 k$ Remboursé 8 100 k$ 240 k$ Remboursé 9 65 k$ 340 k$ Faillite 0 85 k$ 300 k$ Remboursé Entrée X=(Rev,VM) Valeur maison Ensemble d’entraînement : historique de clients passés 400 9 300 0 8 200 5 1 7 6 2 3 4 100 25 50 75 100 Revenu Sortie y INF4230 - Intelligence artificielle 20 Exemple 1 : Prédiction solvabilité (2) Requête : soit un nouveau client X=(45,200). Ce client fera-t-il faillite ou sera-t-il capable de rembourser son prêt ? Valeur maison 400 300 3 plus proches voisins : 9 200 x 5 100 1 25 2 3 50 7 9 0 8 Vote majoritaire = «Remboursé». 7 6 0 Donc, on prédit que le client va rembourser son prêt… 4 75 100 Revenu INF4230 - Intelligence artificielle 21 Exemple 2 : reconnaissance de caractères Image d’un caractère à reconnaître Recherche des k caractères les plus proches dans le jeu d’exemples (k=3) a Classe majoritaire Identifiée : a a a INF4230 - Intelligence artificielle 22 Propriétés de l’algorithme des k plus proches voisins • Requiert une fonction distance (métrique de similarité). • Plus le nombre d’exemple est élevé, plus la performance augmente (taux de d’erreur diminue). • Requiert de conserver en mémoire l’ensemble de tous les exemples. • Approche dérivée : – Raisonnement à base de cas (case based reasoning). INF4230 - Intelligence artificielle 23 Arbre de décisions Source : Figure 18.2 Russell et Norvig, AI. INF4230 - Intelligence artificielle 24 Arbre de décisions : Exemples d’entrée Source : Russell et Norvig, AI. INF4230 - Intelligence artificielle 25 Arbre de décisions INF4230 - Intelligence artificielle 26 Arbre de décisions INF4230 - Intelligence artificielle 27 Maximum de vraisemblance • Méthode supervisée. • Entrées : – Exemples : échantillons des classes. – Données à classer. • Méthode : – Estimation des paramètres statistiques (ex. : moyennes + matrice de covariance). – Pour chaque donnée à classer, on regarde quelle est la classe la plus vraisemblable. • Sortie : classification. INF4230 - Intelligence artificielle 28 Maximum de vraisemblance INF4230 - Intelligence artificielle 29 APPRENTISSAGE NON SUPERVISÉ / ALGORITHMES DE BASE INF4230 - Intelligence artificielle 30 Algorithme des k-moyennes (k-means) • Méthode non supervisée. • Entrée : – Données à classer; – Nombre de classes. • Sélection automatique des classes. • Méthode : – Initialisation arbitraire des paramètres statistiques. – Plusieurs itérations : • Classification (distance euclidienne avec moyennes) • Réestimation des paramètres. • Sortie : Classification. INF4230 - Intelligence artificielle 31 k-moyennes (k-means) Démo : https://www.youtube.com/watch?v=BVFG7fd1H30 INF4230 - Intelligence artificielle 32 K-Means (K-Moyennes) INF4230 - Intelligence artificielle 33 Références • G. F. Luger. Artificial Intelligence : Structures and Strategies for Complex Problem Solving. Fourth Edition. Addison-Wesley, 2002. / Chapitre 10. • Stuart Russel et Peter Norvig. Artificial Intelligence: A Modern Approach. Third Edition. Prentice Hall, 2009. / Chapitre 18. INF4230 - Intelligence artificielle 34 NetTalk • NET TALK : prononciation de textes Source : Fig. 10.12 Luger. Artificial Intelligence, 4th Ed., 2002 Entrée : 26 lettres + espace + 2 caractères de ponctuation Fenêtre de 7 lettres pour tenir compte du contexte Sorite : 26 ondes («sons») de prononciation. INF4230 - Intelligence artificielle 35 Démo : NEAT • NEAT Coevolution Robots : http://nn.cs.utexas.edu/pages/research/neatdemo.html INF4230 - Intelligence artificielle 36 Librairie Weka http://www.cs.waikato.ac.nz/ml/weka/ INF4230 - Intelligence artificielle 37 Apprentissage profond (Deep Learning) • Nouvelle tendance en IA en plein essor depuis 2006 (deep belief network). • C’est quoi ? RNA avec de nombreuse couches. • Intuition : cerveau humain = réseau profond. • Plusieurs niveaux d’abstraction entre les neurones d’entrée de sortie. – Exemple : pixels, feature (contours), primitive de visage, caractéristiques de haut niveau, identification d’une personne. • Exemple d’applications typiques et de succès : – Reconnaissances de visages et d’images. – AlphaGo de Google. • Plus d’infos : http://deeplearning.net/ INF4230 - Intelligence artificielle 38