SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Machine learning
Introduction
Concepts & Algorithmes
Présentation
Quentin Ambard
Ingénieur
Dev
Phd
machine learning
Agenda
Introduction
Régression linéaire
Classification : Régression logistique/svm/tree
Cluster
Réseau neurone
Deep learning
Machine learning ?
“ Field of study that gives computers the
ability to learn without being explicitly
programmed ”
Arthur Samuel
1901-1990
Machine learning ?
Quelques exemples :
• Reconnaissance de texte (OCR)
• Finance/Trading
• Google AlphaGo
• Reconnaissance d'objets sur une image
• Détection de spam
• Publicité (enchères)
• Marketing/Vente (segmentation, prediction)
• Médecine (aide à la décision, analyse de radios)
• Traduction vocale
• ...
Quand l'utiliser ?
• Incapacité à expliquer notre expertise (reconnaissance vocale)
• Solutions changeantes au cours du temps (analyse de traffic)
• Solutions pour lesquelles les règles peuvent différer pour chaque
individu (biométrie)
• Expertise inexistante (détection automatique de fraude)
• Volume de données rendant une analyse/exploration/prediction
humaine impossible
Les grandes familles
 Reinforcement Learning
 Semi supervised ...
Supervised learning Unsupervised Learning
Regression
Predict housing pricing
Classification
Spam detection
Clustering:
Discover market segmentation
Anomaly detection
Discover outlier
Agenda
Introduction
Régression linéaire
Classification : Régression logistique/svm/tree
Cluster
Réseau neurone
Deep learning
Explorons les données
X1 = m2 X2 = Nb salle d’eau X3 = étages … Prix
50 1 1 … 490 000 €
65 1 1 … 540 000 €
34 1 1 … 340 000 €
128 2 2 … 1 100 000 €
… … … … …
90 2 1 … 800 000 €
54 1 1 … ???
k Features
Feature vector
Prix des appartements dans Paris
Prediction
m samples
Trouver 𝑾 =
𝒘 𝟎
𝒘1
…
𝒘 𝑘
tel que 𝒘0 + 𝒘1 ∗ 𝑚2 + 𝒘2 ∗ 𝑛𝑏𝑆𝑎𝑙𝑙𝑒𝐸𝑎𝑢 + … = 𝑝𝑟𝑖𝑥
Par exemple 𝟏𝟎𝟎𝟎 + 𝟖𝟓𝟎 ∗ 𝑚2 + 𝟏𝟎𝟎𝟎 ∗ 𝑛𝑏𝑆𝑎𝑙𝑙𝑒𝐸𝑎𝑢 + … = 𝑝𝑟𝑖𝑥
Régression linéaire
Fonction d’objectif : 𝑚𝑖𝑛
𝒘 𝟎
,𝒘 𝟏
𝑖=1
𝑚
(𝐡 𝒘 𝐱𝐢 − y𝐢)2
Trouver la droite 𝐡 𝒘 𝐱 = 𝒘 𝟎 + 𝒙 ∗ 𝒘 𝟏 = 𝒑𝒓𝒆𝒅𝒊𝒄𝒕𝒊𝒐𝒏𝑷𝒓𝒊𝒙 ayant la plus petite erreur
Erreur : distance entre la prévision et la valeur : (𝐡 𝒘 𝐱 - y)2
A la recherche du minimum
Résoudre l’équation normale
Soit X la matrice représentant notre dataset (features), y le résultat (prix)
𝑾 = 𝑋 𝑇 𝑋 −1 𝑋 𝑇 𝑦
Problème
Inversion : Opération complexe : O(n3)
Gradient descent
𝒘 𝟏
𝒘 𝟏
𝑬𝒓𝒓𝒐𝒓
𝒘 𝟏𝒘 𝟏𝒘 𝟏 𝒘 𝟏
On cherche 𝑝𝑟𝑖𝑥 = 𝑦 = 𝒘 𝟎 + 𝒘 𝟏 ∗ 𝒎𝟐
𝐽(𝑤) =
𝑖=1
𝑚
(𝐡 𝒘 𝐱𝐢 − y𝐢)2
𝑤1 trop faible 𝑤1 trop grand𝑚𝑒𝑖𝑙𝑙𝑒𝑢𝑟𝑒 𝑒𝑠𝑡𝑖𝑚𝑎𝑡𝑖𝑜𝑛
Pente de la droite
Et quand ce n’est pas linéaire ?
Et quand ce n’est pas linéaire ?
Solution : ajouter en entrée des paramètres polynomiaux
Exemple : x1, x2, … => x1, x2, x1
2, x1*x2, x2
2, x1
3 …
mètre2, salle d’eau => mètre2, salle d’eau, (mètre2)2, (salle d’eau)2,(mètre2 * salle d’eau)…
Mais quel ordre polynomial choisir ? ^2, ^3, ^15 ?
Choisir ses paramètres : l’overfitting
L’algorithme sur-apprend le modèle et devient aberrant
Comment détecter ce sur-apprentissage
La crossvalidation
X1 = m2 X2 = Nb salle d’eau X3 = étages … Prix
50 1 1 … 490 000 €
65 1 1 … 540 000 €
…. …. …. …. ….
34 1 1 … 340 000 €
128 2 2 … 110 000 €
… … … … …
90 2 1 … 800 000 €
54 1 1 … ???
Séparer son jeu de données : 80% entrainement, 20% de validation
80% Données
d’entrainement
20% Données
de validation pour
évaluer le modèle
La crossvalidation
Modèle simple
High bias
Modèle complexe
High variance
Meilleure solution
Erreur du jeu d’apprentissage (80%)
Erreur du jeu de validation/test (20%)
Meilleur model
Pour résumer
• Régression linéaire : prédire une valeur sur la base d’un jeu de données
• Définir une fonction d’objectif et trouver son min
• Resoudre l’équation normale ou estimation avec le “gradient descent”
• Modèles non linéaires : ajout de paramètres polynomiaux en entrée
• Tuning des paramètres de machine-learning : crossvalidation
Un exemple avec Scikit-Learn
#Get the data formatted
data = get_formatted_data()
#extract features and prices
features = data [[‘m2’, ‘salle-de-bain’, ’etage’]]
price = data[‘price’ ]
#Split with train and test dataset
features_train, features_test, price_train, price_test =
sklearn.cross_validation.train_test_split( features, price)
#Build and train the model with the train dataset
regression = linear_model.LinearRegression()
regression.fit(features_train, price_train)
#Get the residual sum of squares from the test dataset
RSS = np.sum((regression.predict(features_test) - price_test) ** 2))
X1 = m2 X2 = Nb salle
d’eau
X3 = étages … Prix
50 1 1 … 490 000 €
65 1 1 … 540 000 €
…. …. …. …. ….
34 1 1 … 340 000 €
128 2 2 … 110 000 €
… … … … …
90 2 1 … 800 000 €
54 1 1 … ???
Agenda
Introduction
Regression linéaire
Classification : Régression logistique/svm/tree
Cluster
Réseau neurone
Deep learning
Classification
Majuscules/
Caractères
« Viagra »
apparait
« casino » apparait … classe
0,01 0 0 … NON-SPAM
0,03 0 1 … NON-SPAM
0,5 4 0 … SPAM
0,01 0 0 … NON-SPAM
… … … … …
0,01 0 2 … SPAM
0,01 1 1 … ???
Classifie les données en N classes
Régression : prédire une valeur continue
Classification : prédire l’appartenance à une ou plusieurs classes
Prédire si un message est un SPAM ou NON-SPAM
Visuellement
% Majuscule
%Ponctuations
Spam
Non spam
+
•
Trouver la ligne qui sépare le mieux les deux classes
(decision boundary)
Régression logistique
Régression linéaire :
𝑝𝑟𝑒𝑣𝑖𝑠𝑖𝑜𝑛 = 𝒘 𝟎 + 𝒙 𝟏 ∗ 𝒘 𝟏 + … 𝒙 𝒏 ∗ 𝒘 𝒏 = 𝑾 𝑻 𝑿
Régression logistique :
𝑝𝑟𝑒𝑣𝑖𝑠𝑖𝑜𝑛 =
1
1 + 𝑒−𝒘 𝟎
+𝒙∗𝒘 𝟏
+ …
=
1
1 + 𝑒
−𝑊 𝑇
𝑥
On défini
1
1+𝑒−𝑊 𝑇
𝑥 = ℎ 𝑤 𝑥
Représente la « probabilité »
d’appartenir à la classe « SPAM »
SVM : Support vector machine
Construit un hyperplan ayant la plus grande distance avec tous les points
• Relativement complexe : O(n_samples2 * n_features)
• Faible sur-apprentissage
• Résout des problèmes non linéaires
Support vector machine
Pour des problèmes non-linéaire, utilise des kernels pour construire ces
hyperplans dans des dimensions élevées voir infinies
Arbres de décision
revenus Endettement Durée y
haut faible 3ans OK
bas moyen 5ans Risque
haut moyen 3ans OK
haut important 5ans Risque
bas important 3ans Risque
bas faible 5ans OK
Root
Endettement
Faible moyen important
0 1 1 0 1 0
3 3
Revenus
bas haut
2 1 1 2
Erreur = (1+1)/6
Durée
…
Random forest
Mieux vaut se baser sur plusieurs solutions simples qu’une complexe
revenus Endetteme
nt
Durée … y
haut moyen 3ans … OK
… … … … …
bas important 3ans … OK
bas faible 5ans … Risque
… … … … …
haut important 5ans … Risque
… … … … Risque
haut moyen 3ans … OK
… … … … …
Subset 1
Subset 2
Subset n
Subset 1 Subset nSubset 2
Sélectionne la classe la plus présente
parmi les n résultats
Classification
Régression logistique
Support vecteur machine
Arbre de décision
…
Comment savoir quel modèle fonctionne le mieux ?
Evaluer le modèle
Précision : Parmi les messages classifiés SPAM, quelle fraction est vrai-SPAM ?
Precision =
𝑛𝑏 𝑆𝑃𝐴𝑀 𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑒𝑚𝑒𝑛𝑡 𝑐𝑙𝑎𝑠𝑠é 𝑆𝑃𝐴𝑀
𝑛𝑏 𝑑𝑒 𝑐𝑙𝑎𝑠𝑠é 𝑆𝑃𝐴𝑀
=
𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓
𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 + 𝐹𝑎𝑢𝑥 𝑝𝑜𝑠𝑖𝑡𝑖𝑓
=
1
1+0
= 1
Exemple : 1000 messages dont 10 sont SPAM
Classifier : Détecte 1 seul SPAM parmi les 10
vrai-SPAM
10
vrai-NON-SPAM
990
classé SPAM
1
Vrai positif
1
Faux positif
0
classé NON-
SPAM 999
Faux négatif
9
Vrai négatif
990
Véritable classe
Prédiction
Rappel : Parmi les vrai-SPAM, quelle fraction a été classée en SPAM ?
Recall =
𝑛𝑏 𝑆𝑃𝐴𝑀 𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑒𝑚𝑒𝑛𝑡 𝑐𝑙𝑎𝑠𝑠é𝑠 𝑆𝑃𝐴𝑀
𝑛𝑏 𝑑𝑒 𝑣𝑟𝑎𝑖 𝑆𝑃𝐴𝑀
=
𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓
𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 + 𝐹𝑎𝑢𝑥 𝑛é𝑔𝑎𝑡𝑖𝑓
=
1
1+9
= 0.1
Accuracy: Quel pourcentage de message a été bien classé ?
Accuracy =
𝑛𝑏 𝑚𝑒𝑠𝑠𝑎𝑔𝑒 𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑒𝑚𝑒𝑛𝑡 𝑐𝑙𝑎𝑠𝑠é
𝑛𝑏 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑚𝑒𝑠𝑠𝑎𝑔𝑒
=
𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓+𝑉𝑟𝑎𝑖 𝑛é𝑔𝑎𝑡𝑖𝑓
𝑇𝑜𝑡𝑎𝑙 𝑝𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛
=
1+990
1000
= 0.991
Matrice de confusion
Precision vs Rappel, un seul survivra
Score F1 =
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙
On peut faire varier le seuil à partir duquel le message sera classé en spam
Pessimiste :
Tout est NON-
SPAM
Optimiste :
Tout est SPAM
Algorithme parfait
Agenda
Introduction
Regression linéaire
Classification : Régression logistique/svm/tree
Cluster
Réseau neurone
Deep learning
Données non libellées
• Liste des clients d’une marque (age, sexe, adresse…)
• Liste d’articles vendus (prix, taille, couleur, matière…)
• Ensemble des mots trouvés sur un site internet
• Poissons (taille, nombre d’épines dorsales, écailles)
Exploration/Structuration de données en grande dimension
Cluster
Entités « similaires » au sein d’un cluster et « différentes »
d’un autre cluster
Prix Prix
Taille Taille
K-means
Sélection manuelle du nombre de cluster K
J(C) = 𝑘=1
𝐾
𝑖 ∈ 𝐶𝑘 𝑥𝑖 − 𝜇 𝑘
2
K-means
• Nécessite de connaître le nombre de cluster K
• Fonctionne bien pour des clusters hypersphériques
• Initialisation aléatoire (résultats variables)
• Idéal pour de gros volumes de données, O(n)
Agenda
Introduction
Regression linéaire
Classification : Régression logistique/svm/tree
Cluster
Réseau neurone
Deep learning
Classifier des fruits
Rondeur Rouge Jaune … classe
0,8 0 0.9 … POMME
0,2 0 1 … BANANE
1 0.9 0.3 … POMME
0,01 0.1 0.8 … BANANE
… … … … …
0,6 0.8 0.3 … POMME
0,01 0.3 1 … BANANE
Les neurones
Perceptron / classifier binaire
Fonction d’activation sigmoïde
ℎ 𝑥 =
1
1+𝑒−𝑤𝑇𝑥
Même modélisation qu’une régression logistique
1 -> Banane
0 -> Pomme
Rondeur
Rouge
Jaune
Réseau de neurones artificiel
Rond
Rouge
Jaune
Probabilité « Pomme »
Probabilité « Banane »
… Poire, Kiwi, fraise
Topologie à définir : nombre de couches, nombre de neurones…
Réseau de neurones artificiel
Rond
Rouge
Jaune
Poids (w14, w24, w34 etc.) initialisé aléatoirement
𝑦4 𝑛 =
1
1 + 𝑒−𝑤14
∗𝑅𝑜𝑛𝑑+𝑤24
∗𝑅𝑜𝑢𝑔𝑒+𝑤34
∗𝐽𝑎𝑢𝑛𝑒
w14
w24 w34
Réseau de neurones artificiel
Rond
Rouge
Jaune
𝑦8 𝑛 =
1
1 + 𝑒−𝑤48
∗𝑦4
+𝑤58
∗𝑦5
+𝑤68
∗𝑦6
+𝑤78
∗𝑦7
w48
w58
W78
w68
Backpropagation
Rondeur
Rouge
Jaune
Probabilité Pomme 𝑦8 1 = 0.4
Variation du poids :
∆𝑤𝑖𝑗 𝑛 = 𝜂 𝛿𝑗 𝑛 𝑦𝑖(𝑛)
4
5
6
7
8
9
Calcul du nouveau poids :
𝒘 𝟒𝟖 𝒏 + 𝟏 = 𝒘 𝟒𝟖 𝒏 + 𝜂 ∗ 1 − 0.4 ∗ 𝑦4(1)
𝒘 𝟒𝟖
Les poids sont ajustés en fonction de l’erreur, propagée de la sortie vers l’entrée
1
2
3
Erreur : 𝛿8 1 = 1 − 0.4 = 0.6
Historiquement
• Algorithmes « anciens » (80’ pour le multilayer perceptron MLP)
• CNN et MLP utilisés avec succès dans les années 90 pour de la
reconnaissance de caractères (Cf vidéo de Yann Lecun)
• Algorithmes très couteux
• Les premières couches apprennent lentement
• Nécessite énormément de données pour obtenir des résultats
satisfaisants
• Laissé à l’abandon par l’industrie au profit d’autres modèles comme
le SVM
• De nouveau à la mode depuis 2012 avec le deep learning …
Agenda
Introduction
Regression linéaire
Classification : Régression logistique/svm/tree
Cluster
Réseau neurone
Deep learning
Deep learning
Un réseau de neurone profond
Typiquement dizaines de couches et centaines de milliers d’entrées
(1 par pixel)
Deep learning aujourd’hui
• Natural Language Processing (NLP) : Bots
• OCR : reconnaître du texte (google maps numéro de rue)
• Reconnaissance vocale: Siri, cortana…
• Voiture sans pilote
• IA jeux « go »
• …
2012 : la révolution imageNet
Concours Imagenet : libeller des images
Ce qui a changé
• Base de données de millions d’images libellées
• Amélioration des algorithmes, utilisation du GPU
• Amélioration du matériel : DGX-1, 170 TeraFlops pour 100kE
Computer vision “traditionnelle”
Algorithmes intermédiaires pour extraire les caractéristiques
principales de l’image
Rame
Œil
Eau
Bateau
Classifier
Batard
John Snow
sur un bateau
Computer vision “deep learning”
Apprentissage/découverte automatique des caractéristiques
principales
Jeu de go
Problématiques
• Arbre de possibilités immense : 10170 vs 1050 pour un jeu d’echec
• Pas de critère « numérique » pour évaluer une position
Approche
• Apprentissage de parties humaines et auto-apprentissage (joue
contre lui-même)
2 principaux réseaux de neurones
• Détecte les « meilleures » branches de l’arbre à analyser dans un
Monte-Carlo Tree Search
• Evaluation des positions : tente de scorer les positions
Bilan
Futur proche
• Voitures autonomes
• Assistants
• Médecine (prothèse intelligente etc.)
Fausse quête
• Machine intelligente sans conscience propre
• Pas de souhait ou de désir, résout le problème présenté
Skynet n’est pas pour demain !
Les grands frameworks
• Python
Scikit-learn
Torch
Tensorflow
Dato/Turi ?
• Java/Scala
Spark ML
Deeplearning4j
• R
• Mathlab
• C …
• Cloud
Amazon
Google
Microsoft
IBM Watson
BigML
Agenda
Introduction
Regression linéaire
Classification : Régression logistique/svm/tree
Cluster
Réseau neurone
Deep learning
Timeseries
Questions ?
Pour discuter
• Système de recommandation
• Compression, réduction de dimension (PCA, T-Sne)
• Détection d’anomalie
• Recherche de voisin / similarité
• Calculs de distances
• Réseaux de Neurones Convolutionnels, encodeurs
• ….
• Autant d’algorithme que de publication de Thèse :)
Crédits
• http://www.rsipvision.com/exploring-deep-learning/
• http://yyue.blogspot.fr/2015/01/a-brief-overview-of-deep-
learning.html
• http://neuralnetworksanddeeplearning.com/chap6.html#p
roblem_219050

Weitere ähnliche Inhalte

Was ist angesagt?

Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data Warehouse
Abderrahmane Filali
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
hanamettali
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
Mansouri Khalifa
 

Was ist angesagt? (20)

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
Deep learning
Deep learningDeep learning
Deep learning
 
BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Conception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data WarehouseConception et Réalisation d'un Data Warehouse
Conception et Réalisation d'un Data Warehouse
 
Règles d’association
Règles d’associationRègles d’association
Règles d’association
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
Introduction: Intelligence Artificielle, Machine Learning et Deep Learning
Introduction: Intelligence Artificielle, Machine Learning et Deep LearningIntroduction: Intelligence Artificielle, Machine Learning et Deep Learning
Introduction: Intelligence Artificielle, Machine Learning et Deep Learning
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Data mining - Classification - arbres de décision
Data mining - Classification - arbres de décisionData mining - Classification - arbres de décision
Data mining - Classification - arbres de décision
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learning
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehouse
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Td dw1
Td dw1Td dw1
Td dw1
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
 

Ähnlich wie Introduction to Machine learning

Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
ENSET, Université Hassan II Casablanca
 
Ch6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfCh6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdf
nesrinetaamallah
 
TP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdfTP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdf
SafaeElOmari
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
Chahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
Saddem Chikh
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
Chahrawoods Dmz
 
Data Mining (Partie 3).pdf
Data Mining (Partie 3).pdfData Mining (Partie 3).pdf
Data Mining (Partie 3).pdf
OuailChoukhairi
 
FLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caretFLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caret
jfeudeline
 
Forêts uniformément aléatoires - Saïp CISS
Forêts uniformément aléatoires - Saïp CISSForêts uniformément aléatoires - Saïp CISS
Forêts uniformément aléatoires - Saïp CISS
Kezhan SHI
 

Ähnlich wie Introduction to Machine learning (20)

Marketing et Big Data
Marketing et Big DataMarketing et Big Data
Marketing et Big Data
 
logistic_regression_ml.pdf
logistic_regression_ml.pdflogistic_regression_ml.pdf
logistic_regression_ml.pdf
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Comparaison
ComparaisonComparaison
Comparaison
 
Ch6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdfCh6 Introduction à la Science de Données.pdf
Ch6 Introduction à la Science de Données.pdf
 
TP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdfTP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdf
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
regression_multiple_pour_le_classement.pdf
regression_multiple_pour_le_classement.pdfregression_multiple_pour_le_classement.pdf
regression_multiple_pour_le_classement.pdf
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Scikit learn: apprentissage statistique en Python
Scikit learn: apprentissage statistique en PythonScikit learn: apprentissage statistique en Python
Scikit learn: apprentissage statistique en Python
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
 
Data Mining (Partie 3).pdf
Data Mining (Partie 3).pdfData Mining (Partie 3).pdf
Data Mining (Partie 3).pdf
 
Machine Learning Support Vector Machines.pdf
Machine Learning Support Vector Machines.pdfMachine Learning Support Vector Machines.pdf
Machine Learning Support Vector Machines.pdf
 
test
testtest
test
 
FLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caretFLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caret
 
Neural Network -How it works, an implementation with python-.pdf
Neural Network -How it works, an implementation with python-.pdfNeural Network -How it works, an implementation with python-.pdf
Neural Network -How it works, an implementation with python-.pdf
 
Support Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptxSupport Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptx
 
Forêts uniformément aléatoires - Saïp CISS
Forêts uniformément aléatoires - Saïp CISSForêts uniformément aléatoires - Saïp CISS
Forêts uniformément aléatoires - Saïp CISS
 

Introduction to Machine learning

  • 3. Agenda Introduction Régression linéaire Classification : Régression logistique/svm/tree Cluster Réseau neurone Deep learning
  • 4. Machine learning ? “ Field of study that gives computers the ability to learn without being explicitly programmed ” Arthur Samuel 1901-1990
  • 5. Machine learning ? Quelques exemples : • Reconnaissance de texte (OCR) • Finance/Trading • Google AlphaGo • Reconnaissance d'objets sur une image • Détection de spam • Publicité (enchères) • Marketing/Vente (segmentation, prediction) • Médecine (aide à la décision, analyse de radios) • Traduction vocale • ...
  • 6. Quand l'utiliser ? • Incapacité à expliquer notre expertise (reconnaissance vocale) • Solutions changeantes au cours du temps (analyse de traffic) • Solutions pour lesquelles les règles peuvent différer pour chaque individu (biométrie) • Expertise inexistante (détection automatique de fraude) • Volume de données rendant une analyse/exploration/prediction humaine impossible
  • 7. Les grandes familles  Reinforcement Learning  Semi supervised ... Supervised learning Unsupervised Learning Regression Predict housing pricing Classification Spam detection Clustering: Discover market segmentation Anomaly detection Discover outlier
  • 8. Agenda Introduction Régression linéaire Classification : Régression logistique/svm/tree Cluster Réseau neurone Deep learning
  • 9. Explorons les données X1 = m2 X2 = Nb salle d’eau X3 = étages … Prix 50 1 1 … 490 000 € 65 1 1 … 540 000 € 34 1 1 … 340 000 € 128 2 2 … 1 100 000 € … … … … … 90 2 1 … 800 000 € 54 1 1 … ??? k Features Feature vector Prix des appartements dans Paris Prediction m samples Trouver 𝑾 = 𝒘 𝟎 𝒘1 … 𝒘 𝑘 tel que 𝒘0 + 𝒘1 ∗ 𝑚2 + 𝒘2 ∗ 𝑛𝑏𝑆𝑎𝑙𝑙𝑒𝐸𝑎𝑢 + … = 𝑝𝑟𝑖𝑥 Par exemple 𝟏𝟎𝟎𝟎 + 𝟖𝟓𝟎 ∗ 𝑚2 + 𝟏𝟎𝟎𝟎 ∗ 𝑛𝑏𝑆𝑎𝑙𝑙𝑒𝐸𝑎𝑢 + … = 𝑝𝑟𝑖𝑥
  • 10. Régression linéaire Fonction d’objectif : 𝑚𝑖𝑛 𝒘 𝟎 ,𝒘 𝟏 𝑖=1 𝑚 (𝐡 𝒘 𝐱𝐢 − y𝐢)2 Trouver la droite 𝐡 𝒘 𝐱 = 𝒘 𝟎 + 𝒙 ∗ 𝒘 𝟏 = 𝒑𝒓𝒆𝒅𝒊𝒄𝒕𝒊𝒐𝒏𝑷𝒓𝒊𝒙 ayant la plus petite erreur Erreur : distance entre la prévision et la valeur : (𝐡 𝒘 𝐱 - y)2
  • 11. A la recherche du minimum Résoudre l’équation normale Soit X la matrice représentant notre dataset (features), y le résultat (prix) 𝑾 = 𝑋 𝑇 𝑋 −1 𝑋 𝑇 𝑦 Problème Inversion : Opération complexe : O(n3)
  • 12. Gradient descent 𝒘 𝟏 𝒘 𝟏 𝑬𝒓𝒓𝒐𝒓 𝒘 𝟏𝒘 𝟏𝒘 𝟏 𝒘 𝟏 On cherche 𝑝𝑟𝑖𝑥 = 𝑦 = 𝒘 𝟎 + 𝒘 𝟏 ∗ 𝒎𝟐 𝐽(𝑤) = 𝑖=1 𝑚 (𝐡 𝒘 𝐱𝐢 − y𝐢)2 𝑤1 trop faible 𝑤1 trop grand𝑚𝑒𝑖𝑙𝑙𝑒𝑢𝑟𝑒 𝑒𝑠𝑡𝑖𝑚𝑎𝑡𝑖𝑜𝑛 Pente de la droite
  • 13. Et quand ce n’est pas linéaire ?
  • 14. Et quand ce n’est pas linéaire ? Solution : ajouter en entrée des paramètres polynomiaux Exemple : x1, x2, … => x1, x2, x1 2, x1*x2, x2 2, x1 3 … mètre2, salle d’eau => mètre2, salle d’eau, (mètre2)2, (salle d’eau)2,(mètre2 * salle d’eau)… Mais quel ordre polynomial choisir ? ^2, ^3, ^15 ?
  • 15. Choisir ses paramètres : l’overfitting L’algorithme sur-apprend le modèle et devient aberrant Comment détecter ce sur-apprentissage
  • 16. La crossvalidation X1 = m2 X2 = Nb salle d’eau X3 = étages … Prix 50 1 1 … 490 000 € 65 1 1 … 540 000 € …. …. …. …. …. 34 1 1 … 340 000 € 128 2 2 … 110 000 € … … … … … 90 2 1 … 800 000 € 54 1 1 … ??? Séparer son jeu de données : 80% entrainement, 20% de validation 80% Données d’entrainement 20% Données de validation pour évaluer le modèle
  • 17. La crossvalidation Modèle simple High bias Modèle complexe High variance Meilleure solution Erreur du jeu d’apprentissage (80%) Erreur du jeu de validation/test (20%) Meilleur model
  • 18. Pour résumer • Régression linéaire : prédire une valeur sur la base d’un jeu de données • Définir une fonction d’objectif et trouver son min • Resoudre l’équation normale ou estimation avec le “gradient descent” • Modèles non linéaires : ajout de paramètres polynomiaux en entrée • Tuning des paramètres de machine-learning : crossvalidation
  • 19. Un exemple avec Scikit-Learn #Get the data formatted data = get_formatted_data() #extract features and prices features = data [[‘m2’, ‘salle-de-bain’, ’etage’]] price = data[‘price’ ] #Split with train and test dataset features_train, features_test, price_train, price_test = sklearn.cross_validation.train_test_split( features, price) #Build and train the model with the train dataset regression = linear_model.LinearRegression() regression.fit(features_train, price_train) #Get the residual sum of squares from the test dataset RSS = np.sum((regression.predict(features_test) - price_test) ** 2)) X1 = m2 X2 = Nb salle d’eau X3 = étages … Prix 50 1 1 … 490 000 € 65 1 1 … 540 000 € …. …. …. …. …. 34 1 1 … 340 000 € 128 2 2 … 110 000 € … … … … … 90 2 1 … 800 000 € 54 1 1 … ???
  • 20. Agenda Introduction Regression linéaire Classification : Régression logistique/svm/tree Cluster Réseau neurone Deep learning
  • 21. Classification Majuscules/ Caractères « Viagra » apparait « casino » apparait … classe 0,01 0 0 … NON-SPAM 0,03 0 1 … NON-SPAM 0,5 4 0 … SPAM 0,01 0 0 … NON-SPAM … … … … … 0,01 0 2 … SPAM 0,01 1 1 … ??? Classifie les données en N classes Régression : prédire une valeur continue Classification : prédire l’appartenance à une ou plusieurs classes Prédire si un message est un SPAM ou NON-SPAM
  • 22. Visuellement % Majuscule %Ponctuations Spam Non spam + • Trouver la ligne qui sépare le mieux les deux classes (decision boundary)
  • 23. Régression logistique Régression linéaire : 𝑝𝑟𝑒𝑣𝑖𝑠𝑖𝑜𝑛 = 𝒘 𝟎 + 𝒙 𝟏 ∗ 𝒘 𝟏 + … 𝒙 𝒏 ∗ 𝒘 𝒏 = 𝑾 𝑻 𝑿 Régression logistique : 𝑝𝑟𝑒𝑣𝑖𝑠𝑖𝑜𝑛 = 1 1 + 𝑒−𝒘 𝟎 +𝒙∗𝒘 𝟏 + … = 1 1 + 𝑒 −𝑊 𝑇 𝑥 On défini 1 1+𝑒−𝑊 𝑇 𝑥 = ℎ 𝑤 𝑥 Représente la « probabilité » d’appartenir à la classe « SPAM »
  • 24. SVM : Support vector machine Construit un hyperplan ayant la plus grande distance avec tous les points • Relativement complexe : O(n_samples2 * n_features) • Faible sur-apprentissage • Résout des problèmes non linéaires
  • 25. Support vector machine Pour des problèmes non-linéaire, utilise des kernels pour construire ces hyperplans dans des dimensions élevées voir infinies
  • 26. Arbres de décision revenus Endettement Durée y haut faible 3ans OK bas moyen 5ans Risque haut moyen 3ans OK haut important 5ans Risque bas important 3ans Risque bas faible 5ans OK Root Endettement Faible moyen important 0 1 1 0 1 0 3 3 Revenus bas haut 2 1 1 2 Erreur = (1+1)/6 Durée …
  • 27. Random forest Mieux vaut se baser sur plusieurs solutions simples qu’une complexe revenus Endetteme nt Durée … y haut moyen 3ans … OK … … … … … bas important 3ans … OK bas faible 5ans … Risque … … … … … haut important 5ans … Risque … … … … Risque haut moyen 3ans … OK … … … … … Subset 1 Subset 2 Subset n Subset 1 Subset nSubset 2 Sélectionne la classe la plus présente parmi les n résultats
  • 28. Classification Régression logistique Support vecteur machine Arbre de décision … Comment savoir quel modèle fonctionne le mieux ?
  • 29. Evaluer le modèle Précision : Parmi les messages classifiés SPAM, quelle fraction est vrai-SPAM ? Precision = 𝑛𝑏 𝑆𝑃𝐴𝑀 𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑒𝑚𝑒𝑛𝑡 𝑐𝑙𝑎𝑠𝑠é 𝑆𝑃𝐴𝑀 𝑛𝑏 𝑑𝑒 𝑐𝑙𝑎𝑠𝑠é 𝑆𝑃𝐴𝑀 = 𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 + 𝐹𝑎𝑢𝑥 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 = 1 1+0 = 1 Exemple : 1000 messages dont 10 sont SPAM Classifier : Détecte 1 seul SPAM parmi les 10 vrai-SPAM 10 vrai-NON-SPAM 990 classé SPAM 1 Vrai positif 1 Faux positif 0 classé NON- SPAM 999 Faux négatif 9 Vrai négatif 990 Véritable classe Prédiction Rappel : Parmi les vrai-SPAM, quelle fraction a été classée en SPAM ? Recall = 𝑛𝑏 𝑆𝑃𝐴𝑀 𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑒𝑚𝑒𝑛𝑡 𝑐𝑙𝑎𝑠𝑠é𝑠 𝑆𝑃𝐴𝑀 𝑛𝑏 𝑑𝑒 𝑣𝑟𝑎𝑖 𝑆𝑃𝐴𝑀 = 𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓 + 𝐹𝑎𝑢𝑥 𝑛é𝑔𝑎𝑡𝑖𝑓 = 1 1+9 = 0.1 Accuracy: Quel pourcentage de message a été bien classé ? Accuracy = 𝑛𝑏 𝑚𝑒𝑠𝑠𝑎𝑔𝑒 𝑐𝑜𝑟𝑟𝑒𝑐𝑡𝑒𝑚𝑒𝑛𝑡 𝑐𝑙𝑎𝑠𝑠é 𝑛𝑏 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑚𝑒𝑠𝑠𝑎𝑔𝑒 = 𝑉𝑟𝑎𝑖 𝑝𝑜𝑠𝑖𝑡𝑖𝑓+𝑉𝑟𝑎𝑖 𝑛é𝑔𝑎𝑡𝑖𝑓 𝑇𝑜𝑡𝑎𝑙 𝑝𝑜𝑝𝑢𝑙𝑎𝑡𝑖𝑜𝑛 = 1+990 1000 = 0.991 Matrice de confusion
  • 30. Precision vs Rappel, un seul survivra Score F1 = 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗𝑅𝑒𝑐𝑎𝑙𝑙 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙 On peut faire varier le seuil à partir duquel le message sera classé en spam Pessimiste : Tout est NON- SPAM Optimiste : Tout est SPAM Algorithme parfait
  • 31. Agenda Introduction Regression linéaire Classification : Régression logistique/svm/tree Cluster Réseau neurone Deep learning
  • 32. Données non libellées • Liste des clients d’une marque (age, sexe, adresse…) • Liste d’articles vendus (prix, taille, couleur, matière…) • Ensemble des mots trouvés sur un site internet • Poissons (taille, nombre d’épines dorsales, écailles) Exploration/Structuration de données en grande dimension
  • 33. Cluster Entités « similaires » au sein d’un cluster et « différentes » d’un autre cluster Prix Prix Taille Taille
  • 34. K-means Sélection manuelle du nombre de cluster K J(C) = 𝑘=1 𝐾 𝑖 ∈ 𝐶𝑘 𝑥𝑖 − 𝜇 𝑘 2
  • 35. K-means • Nécessite de connaître le nombre de cluster K • Fonctionne bien pour des clusters hypersphériques • Initialisation aléatoire (résultats variables) • Idéal pour de gros volumes de données, O(n)
  • 36. Agenda Introduction Regression linéaire Classification : Régression logistique/svm/tree Cluster Réseau neurone Deep learning
  • 37. Classifier des fruits Rondeur Rouge Jaune … classe 0,8 0 0.9 … POMME 0,2 0 1 … BANANE 1 0.9 0.3 … POMME 0,01 0.1 0.8 … BANANE … … … … … 0,6 0.8 0.3 … POMME 0,01 0.3 1 … BANANE
  • 39. Perceptron / classifier binaire Fonction d’activation sigmoïde ℎ 𝑥 = 1 1+𝑒−𝑤𝑇𝑥 Même modélisation qu’une régression logistique 1 -> Banane 0 -> Pomme Rondeur Rouge Jaune
  • 40. Réseau de neurones artificiel Rond Rouge Jaune Probabilité « Pomme » Probabilité « Banane » … Poire, Kiwi, fraise Topologie à définir : nombre de couches, nombre de neurones…
  • 41. Réseau de neurones artificiel Rond Rouge Jaune Poids (w14, w24, w34 etc.) initialisé aléatoirement 𝑦4 𝑛 = 1 1 + 𝑒−𝑤14 ∗𝑅𝑜𝑛𝑑+𝑤24 ∗𝑅𝑜𝑢𝑔𝑒+𝑤34 ∗𝐽𝑎𝑢𝑛𝑒 w14 w24 w34
  • 42. Réseau de neurones artificiel Rond Rouge Jaune 𝑦8 𝑛 = 1 1 + 𝑒−𝑤48 ∗𝑦4 +𝑤58 ∗𝑦5 +𝑤68 ∗𝑦6 +𝑤78 ∗𝑦7 w48 w58 W78 w68
  • 43. Backpropagation Rondeur Rouge Jaune Probabilité Pomme 𝑦8 1 = 0.4 Variation du poids : ∆𝑤𝑖𝑗 𝑛 = 𝜂 𝛿𝑗 𝑛 𝑦𝑖(𝑛) 4 5 6 7 8 9 Calcul du nouveau poids : 𝒘 𝟒𝟖 𝒏 + 𝟏 = 𝒘 𝟒𝟖 𝒏 + 𝜂 ∗ 1 − 0.4 ∗ 𝑦4(1) 𝒘 𝟒𝟖 Les poids sont ajustés en fonction de l’erreur, propagée de la sortie vers l’entrée 1 2 3 Erreur : 𝛿8 1 = 1 − 0.4 = 0.6
  • 44. Historiquement • Algorithmes « anciens » (80’ pour le multilayer perceptron MLP) • CNN et MLP utilisés avec succès dans les années 90 pour de la reconnaissance de caractères (Cf vidéo de Yann Lecun) • Algorithmes très couteux • Les premières couches apprennent lentement • Nécessite énormément de données pour obtenir des résultats satisfaisants • Laissé à l’abandon par l’industrie au profit d’autres modèles comme le SVM • De nouveau à la mode depuis 2012 avec le deep learning …
  • 45. Agenda Introduction Regression linéaire Classification : Régression logistique/svm/tree Cluster Réseau neurone Deep learning
  • 46. Deep learning Un réseau de neurone profond Typiquement dizaines de couches et centaines de milliers d’entrées (1 par pixel)
  • 47. Deep learning aujourd’hui • Natural Language Processing (NLP) : Bots • OCR : reconnaître du texte (google maps numéro de rue) • Reconnaissance vocale: Siri, cortana… • Voiture sans pilote • IA jeux « go » • …
  • 48. 2012 : la révolution imageNet Concours Imagenet : libeller des images
  • 49. Ce qui a changé • Base de données de millions d’images libellées • Amélioration des algorithmes, utilisation du GPU • Amélioration du matériel : DGX-1, 170 TeraFlops pour 100kE
  • 50. Computer vision “traditionnelle” Algorithmes intermédiaires pour extraire les caractéristiques principales de l’image Rame Œil Eau Bateau Classifier Batard John Snow sur un bateau
  • 51. Computer vision “deep learning” Apprentissage/découverte automatique des caractéristiques principales
  • 52. Jeu de go Problématiques • Arbre de possibilités immense : 10170 vs 1050 pour un jeu d’echec • Pas de critère « numérique » pour évaluer une position Approche • Apprentissage de parties humaines et auto-apprentissage (joue contre lui-même) 2 principaux réseaux de neurones • Détecte les « meilleures » branches de l’arbre à analyser dans un Monte-Carlo Tree Search • Evaluation des positions : tente de scorer les positions
  • 53. Bilan Futur proche • Voitures autonomes • Assistants • Médecine (prothèse intelligente etc.) Fausse quête • Machine intelligente sans conscience propre • Pas de souhait ou de désir, résout le problème présenté Skynet n’est pas pour demain !
  • 54. Les grands frameworks • Python Scikit-learn Torch Tensorflow Dato/Turi ? • Java/Scala Spark ML Deeplearning4j • R • Mathlab • C … • Cloud Amazon Google Microsoft IBM Watson BigML
  • 55. Agenda Introduction Regression linéaire Classification : Régression logistique/svm/tree Cluster Réseau neurone Deep learning Timeseries
  • 57. Pour discuter • Système de recommandation • Compression, réduction de dimension (PCA, T-Sne) • Détection d’anomalie • Recherche de voisin / similarité • Calculs de distances • Réseaux de Neurones Convolutionnels, encodeurs • …. • Autant d’algorithme que de publication de Thèse :)