SlideShare une entreprise Scribd logo
Fondements du
machine learning
À propos du conférencier
● Architecte Applicatif / Évangéliste AI chez Nexio
● 17 ans d’expérience en développement
● En fin de Maîtrise en Génie Logiciel à l’École de
Technologie Supérieure
● Projet de Maîtrise en Intelligence Artificielle :
Framework de personnalité artificielles avec des agents
BDI
● Pour me rejoindre: /SIMARDF FredSimardAI
Sujets abordés
● Qu’est -ce que le perceptron?
● Fonctions d’activation
● Réseaux neuronaux
● Rétro-propagation
● Hyper paramètres
● Les types de réseaux neuronaux
● Microsoft Azure Machine Learning
Qu’est-ce que le perceptron?
Le perceptron est un
algorithme inventé en 1958
par Frank Rosenblatt de
Cornell Aeronautical
Laboratory.
Il prend des entrées
multiples, multiplie
chacunes par un poids et
fait la somme de tout. On
applique ensuite une
fonction d’activation à
cette somme.
Exemple simple d’un perceptron
Vous habitez entre deux stations de métro, mais plus près de la station B que
de la station A. Comment déterminez-vous à laquelle vous allez débarquer?
Les facteurs que vous utilisez pour décider:
1. Est-ce que le métro est achalandé?
2. Est-ce qu’il fait beau?
3. Avez-vous besoin d’exercice?
Certains facteurs ont plus d’importance que d’autres, alors on leur donne un
poids différent.
Exemple d’un perceptron - suite
Si vous n’aimez pas les foules, vous pouvez donner plus de poids à ce facteur.
On peut avoir la situation suivante:
1. Foule : poids = 0.45
2. Température : poids = 0.2
3. Exercice : poids = 0.3
On attribue 1 quand c’est oui et 0 quand c’est non.
Donc, par une belle journée non achalandée nous obtenons:
Il ne manque plus qu’un “seuil” ou une fonction d’activation.
(0 x 0.45) + (1 * 0.2) + (1 * 0.3) = 0.5
Fonction d’activation linéaire
Sortie = 1
Sortie = 0
Limite du perceptron
Ça fonctionne pour des valeurs séparables par une fonction
linéaire, mais le perceptron ne fonctionne pas avec des valeurs
qui ne sont pas linéairement séparables.
Réseau neuronal
Lorsqu’on connecte ces perceptrons ensemble, on obtient un
réseau neuronal.
Importance du biais
En plus des valeurs et des poids, dans un réseau neuronal on veut ajouter un
une entrée à nos neurones qu’on appelle un Biais (bias). Ce biais a un effet sur
la fonction d'activation et est critique pour réussir l’apprentissage.
Pas
de
Biais
No
Bias
Avec
Biais
With
Bias
La fonction d’activation
La fonction d’activation décide si une neurone sera activé. Elle est extrêmement
importante puisque ceci détermine si l’information d’une neurone est pertinente, et
sans celle-ci les poids et biais ne font qu’une transformation linéaire. Notre réseau
devient alors une régression linéaire.
Les fonctions les plus utilisées sont:
● Sigmoïde
● Hypertan
● ReLU (rectifier linear unit)
La fonction d’activation - Sigmoïde
Équation : f(x) = 1 / (1+e^-x)
C’est la fonction d’activation par défaut d’un perceptron, une
fonction non-linéaire qui a l’air d’un S, et des valeurs entre 0 et
1.
C’est surtout utile pour des tâches de classification. Le
deuxième diagramme illustre le gradient qui en résulte.
On voit que passé 4 ou -4, les valeurs sont très proches de 0.
La fonction d’activation - Tanh
Équation : tanh(x) = 2/(1+e^(-2x)) -1
Comme le sigmoïde, c’est une fonction non-linéaire qui a
l’air d’un S, et des valeurs entre -1 et 1.
Elle est aussi utile pour des tâches de classification, mais
elle couvre des valeurs négatives (0 à -1) . Le deuxième
diagramme illustre le gradient qui en résulte.
On voit que passé 3 ou -3, les valeurs sont très proches de
0, aussi.
La fonction d’activation - ReLU
Équation : f(x)=max(0,x)
ReLU veut dire rectifier linear unit. C’est la fonction
d'activation la plus populaire de nos jours.
Elle est non-linéaire, et son avantage principal est qu’elle
n’active pas toutes les neurones en même temps.
La conséquence: si l’entrée est négative, la valeur tombe à
0. La neurone est inactive, et souvent il n’y a que quelques
neurones qui sont activées à la fois et ça rend le réseau très
efficace et léger en calculs.
Mais le ReLU est aussi connu pour ses problèmes de
disparition des poids.
Récapitulation
Parallèle avec une neurone
Et qu’est-ce que ça donne?
On passe de ça:
À...
Un aperçu des maths
Rétro-propagation (backpropagation)
Le rétro-propagation est
l’ensemble des calculs et des
ajustements mathématiques
qui sont faits sur les poids et
les biais dans un réseau
neuronal.
Le gradient est la mesure de
la variation à la sortie de
notre fonction quand on
modifie les entrées d’un petit
peu.
“A gradient measures how much the
output of a function changes if you change
the inputs a little bit.”—Lex Fridman (MIT)
Les maths de la rétro-propagation
Les hyper paramètres (hyper parameters)
● Ratio d’apprentissage (learning rate) : C’est la valeur que notre réseau
va utiliser pour ajuster les poids avec chaque itération d’apprentissage.
Plus la valeur est basse, plus l’apprentissage est long.
Hyper paramètres - suite
● Le momentum : une valeur entre 0 et 1 qui est ajouté à notre fonction
objective pour adresser un problème de “minimum locaux”.
Cette valeur va augmenter la taille du “pas”
qui est pris pour atteindre le minimum global.
Si la valeur est trop basse il ne sera pas
capable d’éviter ces minimums locaux et
l'entraînement sera ralenti.
Si le momentum est élevé, notre ratio d’apprentissage devrait être bas.
Limites et problèmes
● L’algorithme ne peut classifier que
des données linéairement
séparables;
● Le réseau est aussi ajusté avec des
valeurs pour la vitesse
d’apprentissage. De valeurs trop
élevées peuvent mener à des
problèmes de sur-apprentissage;
● Des valeurs trop basses, quant à
elles, peuvent mener à du sous-
apprentissage.
À quoi ça sert à la fin?
On utilise les réseaux neuronaux, entre autres, pour faire des tâches de
classification et de prédiction. Pour ce faire:
● On recueille un ensemble de données. Pour une tâche de classification,
on indique avec un libellé à quelle classe nos données appartiennent.
● Généralement, on utilise 80% des données pour l'entraînement, 20% pour
la validation.
● On entraîne le modèle via rétro-propagation jusqu’à ce que l’on ait un
modèle satisfaisant
Démo de RN avec rétro-propagation
Je vais vous faire un démo de rétro-propagation avec C#
sepal length, sepal width, petal length, petal width
(Lien dans les références)
Azure Machine Learning - un démo
Conclusion
Ceci conclut votre introduction à l’apprentissage machine. Vous avez un
aperçu de ce que les chercheurs font, et la raison pour laquelle ils passent des
années à faire des recherches, essayant de trouver le modèle qui fait le
meilleur travail.
Postes chez
Permanent centre de solutions NEXIO:
● Analyste programmeur .NET C#, Javascript, full stack Senior (7 ans et +)
● Analyste programmeur .NET C#, Javascript, full stack Intermédiaire (5 ans et +)
● Analyste programmeur .NET C#, pour apprendre et obtenir la certification Episerver
● Analyste programmeur .NET C#, Javascript, visual basic, sitecore (atout)
● Analyste programmeur .NET C#, Angular HTML, full stack (exp entre 3 et 5 années full stack)
● Analyste programmeur JAVA senior
● Analyste programmeur BI SSIS, SSRS, SSAS (microsoft )
● Administrateur VMWARE, Office 365, Windows, 5 années d'expérience (Rive-sud)
Permanent chez notre client, excellent avantage sociaux
● Analyste programmeur WEB .NET C#, javascript, HTML, junior 2-3 années
● Chef de projet applicatif et infrastructure senior 8 années +, SAP ou ERP (Rive-sud) ou LAVAL
Références
1. The deep learning book :
http://www.deeplearningbook.org/contents/intro.html
2. Démo de rétro-propagation:
https://visualstudiomagazine.com/articles/2013/09/01/neural-network-
training-using-back-propagation.aspx
3. Perceptron: https://en.wikipedia.org/wiki/Perceptron
4. Perceptrons, le livre de Marvin Minsky:
https://en.wikipedia.org/wiki/Perceptrons_(book)
5. https://towardsdatascience.com/understanding-learning-rates-and-how-
it-improves-performance-in-deep-learning-d0d4059c1c10

Contenu connexe

Similaire à Fondements du machine learning

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
 
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
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNN
SALMARACHIDI1
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
ENSET, Université Hassan II Casablanca
 

Similaire à Fondements du machine learning (20)

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
 
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
 
Présentation pfe
Présentation pfePrésentation pfe
Présentation pfe
 
Présentation_IA.pptx
Présentation_IA.pptxPrésentation_IA.pptx
Présentation_IA.pptx
 
Algorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningAlgorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep 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
 
PERCEPTRON.pptx
PERCEPTRON.pptxPERCEPTRON.pptx
PERCEPTRON.pptx
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docx
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
le NLP à l'ére de l'IA
le NLP à l'ére de l'IAle NLP à l'ére de l'IA
le NLP à l'ére de l'IA
 
Patrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnellePatrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnelle
 
Computer Vision - Classification automatique des races de chien à partir de p...
Computer Vision - Classification automatique des races de chien à partir de p...Computer Vision - Classification automatique des races de chien à partir de p...
Computer Vision - Classification automatique des races de chien à partir de p...
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Intelligence artificielle etroite introduction
Intelligence artificielle etroite introductionIntelligence artificielle etroite introduction
Intelligence artificielle etroite introduction
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNN
 
Algorithme knn
Algorithme knnAlgorithme knn
Algorithme knn
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Introduction à la Data Science l data business
Introduction à la Data Science l data businessIntroduction à la Data Science l data business
Introduction à la Data Science l data business
 
Apprentissage du java
Apprentissage du javaApprentissage du java
Apprentissage du java
 
Aide scratch
Aide scratchAide scratch
Aide scratch
 

Fondements du machine learning

  • 2. À propos du conférencier ● Architecte Applicatif / Évangéliste AI chez Nexio ● 17 ans d’expérience en développement ● En fin de Maîtrise en Génie Logiciel à l’École de Technologie Supérieure ● Projet de Maîtrise en Intelligence Artificielle : Framework de personnalité artificielles avec des agents BDI ● Pour me rejoindre: /SIMARDF FredSimardAI
  • 3. Sujets abordés ● Qu’est -ce que le perceptron? ● Fonctions d’activation ● Réseaux neuronaux ● Rétro-propagation ● Hyper paramètres ● Les types de réseaux neuronaux ● Microsoft Azure Machine Learning
  • 4. Qu’est-ce que le perceptron? Le perceptron est un algorithme inventé en 1958 par Frank Rosenblatt de Cornell Aeronautical Laboratory. Il prend des entrées multiples, multiplie chacunes par un poids et fait la somme de tout. On applique ensuite une fonction d’activation à cette somme.
  • 5. Exemple simple d’un perceptron Vous habitez entre deux stations de métro, mais plus près de la station B que de la station A. Comment déterminez-vous à laquelle vous allez débarquer? Les facteurs que vous utilisez pour décider: 1. Est-ce que le métro est achalandé? 2. Est-ce qu’il fait beau? 3. Avez-vous besoin d’exercice? Certains facteurs ont plus d’importance que d’autres, alors on leur donne un poids différent.
  • 6. Exemple d’un perceptron - suite Si vous n’aimez pas les foules, vous pouvez donner plus de poids à ce facteur. On peut avoir la situation suivante: 1. Foule : poids = 0.45 2. Température : poids = 0.2 3. Exercice : poids = 0.3 On attribue 1 quand c’est oui et 0 quand c’est non. Donc, par une belle journée non achalandée nous obtenons: Il ne manque plus qu’un “seuil” ou une fonction d’activation. (0 x 0.45) + (1 * 0.2) + (1 * 0.3) = 0.5
  • 8. Limite du perceptron Ça fonctionne pour des valeurs séparables par une fonction linéaire, mais le perceptron ne fonctionne pas avec des valeurs qui ne sont pas linéairement séparables.
  • 9. Réseau neuronal Lorsqu’on connecte ces perceptrons ensemble, on obtient un réseau neuronal.
  • 10. Importance du biais En plus des valeurs et des poids, dans un réseau neuronal on veut ajouter un une entrée à nos neurones qu’on appelle un Biais (bias). Ce biais a un effet sur la fonction d'activation et est critique pour réussir l’apprentissage. Pas de Biais No Bias Avec Biais With Bias
  • 11. La fonction d’activation La fonction d’activation décide si une neurone sera activé. Elle est extrêmement importante puisque ceci détermine si l’information d’une neurone est pertinente, et sans celle-ci les poids et biais ne font qu’une transformation linéaire. Notre réseau devient alors une régression linéaire. Les fonctions les plus utilisées sont: ● Sigmoïde ● Hypertan ● ReLU (rectifier linear unit)
  • 12. La fonction d’activation - Sigmoïde Équation : f(x) = 1 / (1+e^-x) C’est la fonction d’activation par défaut d’un perceptron, une fonction non-linéaire qui a l’air d’un S, et des valeurs entre 0 et 1. C’est surtout utile pour des tâches de classification. Le deuxième diagramme illustre le gradient qui en résulte. On voit que passé 4 ou -4, les valeurs sont très proches de 0.
  • 13. La fonction d’activation - Tanh Équation : tanh(x) = 2/(1+e^(-2x)) -1 Comme le sigmoïde, c’est une fonction non-linéaire qui a l’air d’un S, et des valeurs entre -1 et 1. Elle est aussi utile pour des tâches de classification, mais elle couvre des valeurs négatives (0 à -1) . Le deuxième diagramme illustre le gradient qui en résulte. On voit que passé 3 ou -3, les valeurs sont très proches de 0, aussi.
  • 14. La fonction d’activation - ReLU Équation : f(x)=max(0,x) ReLU veut dire rectifier linear unit. C’est la fonction d'activation la plus populaire de nos jours. Elle est non-linéaire, et son avantage principal est qu’elle n’active pas toutes les neurones en même temps. La conséquence: si l’entrée est négative, la valeur tombe à 0. La neurone est inactive, et souvent il n’y a que quelques neurones qui sont activées à la fois et ça rend le réseau très efficace et léger en calculs. Mais le ReLU est aussi connu pour ses problèmes de disparition des poids.
  • 17. Et qu’est-ce que ça donne? On passe de ça: À...
  • 18. Un aperçu des maths
  • 19. Rétro-propagation (backpropagation) Le rétro-propagation est l’ensemble des calculs et des ajustements mathématiques qui sont faits sur les poids et les biais dans un réseau neuronal. Le gradient est la mesure de la variation à la sortie de notre fonction quand on modifie les entrées d’un petit peu. “A gradient measures how much the output of a function changes if you change the inputs a little bit.”—Lex Fridman (MIT)
  • 20. Les maths de la rétro-propagation
  • 21. Les hyper paramètres (hyper parameters) ● Ratio d’apprentissage (learning rate) : C’est la valeur que notre réseau va utiliser pour ajuster les poids avec chaque itération d’apprentissage. Plus la valeur est basse, plus l’apprentissage est long.
  • 22. Hyper paramètres - suite ● Le momentum : une valeur entre 0 et 1 qui est ajouté à notre fonction objective pour adresser un problème de “minimum locaux”. Cette valeur va augmenter la taille du “pas” qui est pris pour atteindre le minimum global. Si la valeur est trop basse il ne sera pas capable d’éviter ces minimums locaux et l'entraînement sera ralenti. Si le momentum est élevé, notre ratio d’apprentissage devrait être bas.
  • 23. Limites et problèmes ● L’algorithme ne peut classifier que des données linéairement séparables; ● Le réseau est aussi ajusté avec des valeurs pour la vitesse d’apprentissage. De valeurs trop élevées peuvent mener à des problèmes de sur-apprentissage; ● Des valeurs trop basses, quant à elles, peuvent mener à du sous- apprentissage.
  • 24. À quoi ça sert à la fin? On utilise les réseaux neuronaux, entre autres, pour faire des tâches de classification et de prédiction. Pour ce faire: ● On recueille un ensemble de données. Pour une tâche de classification, on indique avec un libellé à quelle classe nos données appartiennent. ● Généralement, on utilise 80% des données pour l'entraînement, 20% pour la validation. ● On entraîne le modèle via rétro-propagation jusqu’à ce que l’on ait un modèle satisfaisant
  • 25.
  • 26. Démo de RN avec rétro-propagation Je vais vous faire un démo de rétro-propagation avec C# sepal length, sepal width, petal length, petal width (Lien dans les références)
  • 28. Conclusion Ceci conclut votre introduction à l’apprentissage machine. Vous avez un aperçu de ce que les chercheurs font, et la raison pour laquelle ils passent des années à faire des recherches, essayant de trouver le modèle qui fait le meilleur travail.
  • 29. Postes chez Permanent centre de solutions NEXIO: ● Analyste programmeur .NET C#, Javascript, full stack Senior (7 ans et +) ● Analyste programmeur .NET C#, Javascript, full stack Intermédiaire (5 ans et +) ● Analyste programmeur .NET C#, pour apprendre et obtenir la certification Episerver ● Analyste programmeur .NET C#, Javascript, visual basic, sitecore (atout) ● Analyste programmeur .NET C#, Angular HTML, full stack (exp entre 3 et 5 années full stack) ● Analyste programmeur JAVA senior ● Analyste programmeur BI SSIS, SSRS, SSAS (microsoft ) ● Administrateur VMWARE, Office 365, Windows, 5 années d'expérience (Rive-sud) Permanent chez notre client, excellent avantage sociaux ● Analyste programmeur WEB .NET C#, javascript, HTML, junior 2-3 années ● Chef de projet applicatif et infrastructure senior 8 années +, SAP ou ERP (Rive-sud) ou LAVAL
  • 30. Références 1. The deep learning book : http://www.deeplearningbook.org/contents/intro.html 2. Démo de rétro-propagation: https://visualstudiomagazine.com/articles/2013/09/01/neural-network- training-using-back-propagation.aspx 3. Perceptron: https://en.wikipedia.org/wiki/Perceptron 4. Perceptrons, le livre de Marvin Minsky: https://en.wikipedia.org/wiki/Perceptrons_(book) 5. https://towardsdatascience.com/understanding-learning-rates-and-how- it-improves-performance-in-deep-learning-d0d4059c1c10