Dans cette courte présentation je vous introduit aux fondements du Machine Learning, tel que le percepton, les mathématiques de l'apprentissage machine et plus.
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.
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.
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)
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