Hiver 2017 Techniques d'apprentissage IFT603 Plan de cours Par Pierre-Marc Jodoin Présentation • • • • • Professeur : Pierre-Marc Jodoin Courriel : [email protected] Page web : http://info.usherbrooke.ca/pmjodoin/ Local : D4-1016-1, pavillon des sciences Période de disponibilités : Jeudi de 9h30 à 17h00 • Présentations magistrales – Lundi de 16h30 à 17h20 – Mercredi de 10h30 à 12h20. 2 Évaluation IFT603 • 4 travaux pratiques – – – – 40% Tp1 10 % Tp2 10 % Tp3 10% Tp4 10% • Examen intra • Examen final 20% 40% 3 Évaluation (suite) • Les examens se font seul. • L’examen final portera sur toute la matière vue en classe – Date des examens : • intra à déterminer, • final à déterminer. • Vous avez droit à des feuilles manuscrites non photocopiées pour toute documentation. • Votre présence aux séances magistrales est fortement recommandée. 4 Évaluation (suite) • Les travaux pratiques se font PAR ÉQUIPE DE DEUX. – Sinon PÉNALITÉS • La remise du code et des exercices théoriques (lorsqu’il y en a) se fait par le système turninWeb (http://opus.dinf.usherbrooke.ca/) • Si vous avez des réponses manuscrites, vous devez les scanner. 5 Évaluation (suite) • Les travaux pratiques se font en python. • Correcteur et soutient technique – Clément Zotti : [email protected] 6 Préalables • • • • Connaissances de base en programmation orientée objet. Bonnes connaissances en algèbre linéaire. Bonnes connaissances en probabilités. Il est fortement recommandé de se procurer le livre Christopher M. Bishop. Pattern Recognition and Machine Learning. Springer, 2007. 7 Recommandations • • • • N’attendez pas à la dernière minute pour faire les TP Faites 100% des TP et non 50%-50%. Jamais une bonne idée de plagier Feedbacks en temps réel. 8 Classe inversée • Les présentations magistrales sont basées sur l’hypothèse que vous avez vus les vidéos d’Hugo Larochelle Voir : http://info.usherbrooke.ca/pmjodoin/cours/ift603/index.html • Le visionnement des vidéos de H.Larochelle est OBLIGATOIRE (environ 1 heure de vidéo par semaine) • En classe – – – – nous reverrons les parties « difficiles » des notes de cours; je répondrai à vos questions; Nous verrons des illustrations de la théorie; Nous ferons certains exercices. 9 Introduction au cours 10 Motivation • • But de l’apprentissage automatique (machine learning) • donner à la machine la capacité d’apprendre à résoudre des problèmes par elle-même (souvent à partir d’exemples) • découvrir les fondements théoriques de l’apprentissage C’est une sous-discipline de l’intelligence artificielle en forte croissance 11 Fondements • L’apprentissage automatique est multi-disciplinaire – Informatique – Mathématiques (stats, algèbre linéaires, probabilité, optimisation) – Neurosciences • Un bel exemple de mathématiques appliquées 12 Applications • Vision par ordinateur – Reconnaissance de caractères – Localisation de visages – Reconnaissance de silhouettes humaines (Kinect) • Traitement automatique du langage – – – – système de questions-réponses (IBM Watson) reconnaissance de la voix (Siri), classification de documents (pourriels), traduction automatique. • Robotique – Conduite automatisée (Google car) • Et bien d’autres – Prédiction financière, recommandation d’achat (amazon), etc. 13 Objectifs du cours • 2 grands objectifs – Apprendre les fondements théoriques – Savoir les mettre en pratique. • Plus particulièrement (mais pas exclusivement…) – Régression – Classification – Approches supervisées VS approches non-supervisées … le tout dans un cadre probabiliste 14 Classification supervisée Entraînement À partir de données provenant de 2 classes et (ici des “features” en 2D) Le but est de trouver une function y() tel que y( ) = classe 1 y( ) = classe 2 Classification supervisée Entraînement de plus de deux classes Soit des données provenant de 3 classes (ici des features en 2D) , et Trouver une function y() tel que y( ) = classe 1 y( ) = classe 2 y( ) = classe 3 Classification supervisée Une fois l’entraînement terminé, nous disposons d’un function y( ) pouvant convertir n’importequel point 2D en une étiquette de classe. La phase de test a pour but de prédire l’étiquette de classe de nouvelles données Xi n’ayant jamais été observées X1 X3 X2 X4 X5 X6 y(X1) => class y(X2) => class y(X3) => class y(X4) => class y(X5) => class y(X6) => class Classification supervisée (examples) Inria person dataset Positifs Négatifs Classification supervisée (examples) Inria person dataset • 2 classes • 20,252 images, => 14,596 entrainement => 5,656 test • Chaque image sont en RGB => 64x128x3 Si on linéarise ces images, on peut les représenter à l’aide d’un vecteur de 64x128x3 = 9,984 dimensions. Classification supervisée (examples) Exemples, mnist Classification supervisée (examples) Exemples, mnist • 10 classes • 70,000 images => 60,000 entrainement => 10,000 test • Chaque image est en niveaux de gris => 28x28 Ici aussi, les images MNIST peuvent être vectorisées et représentées à l’aide d’un vecteur à 28x28 = 784 dimensions. Classification supervisée (examples) Partant de données étiquettées, (ici des images pour lesquelles on connaît l’etiquette de classe), l’apprentissage supervisée appliqué à la classification a pour objectif ultime de trouver une function de classification qui devrait permettre de bien classes de nouveaux exemples. Inria Person mnist y( ) = Person y( ) = ‘6’ y( ) = NotPerson y( ) = ‘2’ Classification supervisée Prédiction de nouvelles données. Espace à D-dimensions Bird xi Decision boundary Dog Training data Testing data Mathématiquement… Ensemble d’entraînement: n données D ( x1 , t1 ), ( x2 , t2 ),..., ( xn , t n ) xi d vecteur de caractéristiques ième exemple d’entraînement ti c1 , c2 ,..., cn étiquette de classe du ième exemple d’entraînement Functions: Soit D, on vise à apprendre une function de classification y : d c1 , c2 ,..., cn y x j spécifie à quelle classe un vecteur de caractéristique x j appartient. Régression supervisée (examples) Ensemble d’entraînement: n données xi d ti D ( x1 , t1 ), ( x2 , t2 ),..., ( xn , t n ) vecteur de caractéristiques ième exemple d’entraînement prédiction du ième exemple d’entraînement Functions: Soit D, on vise à apprendre une function de classification y : d y x j spécifie à quelle “prediction” un vecteur de caractéristique x j appartient. Régression supervisée (examples) Étant donné un ensemble d’entraînement, le but n’est pas de séparer les données de plusieurs classes mais de retrouver le modèle ayant servit à générer les données. 26 Régression supervisée (examples) y (x) Une fois y(x) connu, on peut estimer la valeur d’une maison étant donné une taille en pi2 jamais observée. 27 Régression supervisée (examples) Prédiction à la bourse ? Exemple, étant donné l’historique à la bourse d’une compagnie, quelle sera la valeur de son titre dans 1 semaine? 28 Régression supervisée (examples) Analyse de traffic routier En entrée on a des images et en sortie la densité du trafic Données d’entraînement t=0.17 t=0.59 t=0.05 t=0.37 Données de test t=0.07 t=0.85 t=0.97 Apprentissage Supervisé Étant donné un ensemble de données étiquettées, trouver un critère permettant de séparer chaque classes (- exemples) (+ exemples) Espace des Caractéristiques (N-dimensions) Frontière de décision 30 Apprentissage Non-supervisé Étant donné un ensemble de données non-étiquettées, grouper celles dont les caractéristiques sont similaires Espace des Caractéristiques (N-dimensions) Classe 1 Classe 2 31 Apprentissage Non-supervisé Étant donné un ensemble de données non-étiquettées, grouper celles dont les caractéristiques sont similaires On appelle également cette tâche “clustering” 32 Liens avec d’autres cours • IFT 615 - Intelligence artificielle – traite de plusieurs sous-discipline de l’intelligence artificielle, pas seulement l’apprentissage automatique • IFT 501 - Recherche d’information et forage de données – traite d’algorithmes d’apprentissage différents (arbre de décision, k plus proches voisins) – met une plus grande emphase sur l’application (données du web, recommandation) – Beaucoup d’analyse de données non étiquettées (clustering). 33 Liens avec d’autres cours • IFT 607 - Traitement automatique des langues naturelles – traite d’algorithmes d’apprentissage dans le contexte de données textuelles (analyse syntaxique et sémantique, traduction automatique) • IMN601- Reconnaissance de formes et analyse d'images avancée – traite d’algorithmes d’apprentissage dans le contexte de l’analyse d’images (classification de caractères, reconnaissance de visages, segmentation d’images, etc.) 34 À partir de maintenant • Formez vos équipes • Révision (ou apprentissage) de python (voir tutoriel sur le site du cours) • Révision des bases en math (voir vidéos en ligne) • Visionnement du matériel de la première semaine (concepts fondamentaux) 35