0% ont trouvé ce document utile (0 vote)
5 vues92 pages

Machine Learning

Le document présente une introduction au Machine Learning, abordant son histoire, ses principes fondamentaux, et les outils disponibles pour entraîner des modèles. Il décrit également les étapes clés du processus d'apprentissage, notamment la modélisation, l'auto-apprentissage, et la rétropropagation. Enfin, il souligne les applications pratiques du Machine Learning dans divers domaines, tout en discutant des limites et des avancées technologiques dans ce domaine.

Transféré par

faissal.zaw
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues92 pages

Machine Learning

Le document présente une introduction au Machine Learning, abordant son histoire, ses principes fondamentaux, et les outils disponibles pour entraîner des modèles. Il décrit également les étapes clés du processus d'apprentissage, notamment la modélisation, l'auto-apprentissage, et la rétropropagation. Enfin, il souligne les applications pratiques du Machine Learning dans divers domaines, tout en discutant des limites et des avancées technologiques dans ce domaine.

Transféré par

faissal.zaw
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Technologies Emergentes

Partie II : Machine Learning, de la théorie à la pratique


Objectifs

Histoire de l’IA

Comprendre les principes

Savoir entrainer un modèle

Outils à disposition

Intégration dans des


solutions informatiques
Ludovic Bertin
49 ans
Architecte Logiciel

Product Owner Application Fwk

Java, SpringBoot, Quarkus, JavaEE


Docker, Kubernetes, GitOps

Ultra trail, montagne, concerts


Nouvelles technologies
Quelques questions…

Qui utilise CHAT-GPT ?

Qui n’utilise pas CHAT-GPT ?

Quelle définition donneriez-vous au Machine


Learning?
Définition
The field of study

that gives computers


the ability to learn

without being
explicitly programmed

Arthur Samuel
Modélisation
Y

X
f(x) = ax + b
Domaines d’application

Reconnaissance de nombre dans une image

Estimation du prix d'un logement selon certain


critères

Classification automatique de documents

Reconnaissance de visages en temps réel

….
1943 : neurone artificiel
Ou comment mimiquer l’être humain
f(x) = wX + b
f(X) = w1.x1 + w2.x2 + … + [Link] + b
Threshold Logical Unit

ETAPES

Aggrégation : w1.x1 + w2.x2 + … + [Link] + b

Activation : y = f > seuil ? 1 : 0


Le début du rêve
Mais il manque encore quelque chose…
1957 : Invention du perceptron

Frank Rosenblatt

1er algorithme d’auto-


apprentissage du deep
learning
Auto-apprentissage
Y 0 1
X1
f Y
X2

f(x) = wx + b
X

W = W + a(Ytrue - Y)
Auto-apprentissage
X1
0 Y
f Y
Ytrue = 1
X2
1
1
W = W + a(Ytrue - Y)
W = W + a(1 - 0)
W = W + a X
W = W + a(1-1) = W
BREAKING NEWS

L’IA va nous remplacer dans des


tâches plus ou moins complexes !!!

Ou pas….
Limitations du modèle

Y 0 1 Y 0 1 0

X X
1986 : Le perceptron multicouches

Geoffrey Everest Hinton

Egalement créateur du
modèle de reconnaissance
d’image AlexNET
Principe de fonctionnement

X1 w1

f Y1 Y 0 1 0
W3 a1

f Y
W2
a2
f Y2
X2 W4
X
Réseau de neurones

X1
f
3 neurones

f Y 2 niveaux:
- 1 niveau d’entrée
f
- 1 niveau de sortie
X2
Back-propagation
X1
f f

f f f Y

f f
X2

δf1 δf 2 δf 3 δYfinal
δw δf1 δf 2 δf 3
Descente de gradient
δYfinal . δf 3 . δf 2 . δf1 δYfinal
=
δf 3 δf 2 δf1 δw δw
Erreur

δErreur
W=W−α
δW
W
Les 4 étapes
Forward
Propagation

X1

Descente Y Calcul de
de gradient l’erreur
X2
δf 1 δf 2 δf 3 δYfinal
δw δf 1 δf 2 δf 3

Backward
Propagation
Technologie qui a émergé
lentement
1943 : invention du neurone arificiel (Warren McCulloch et Walter Pitts)

1957 : Invention du Perceptron (Frank Rosenblatt)

1986 : Perceptron Multicouche (Geoffrey Everest Hinton)

2012 : Competition ImageNet

2013 : apparition de l'IA générative

2016 : victoire en GO

2020 : GPT-3

2021 : DALL-E

2022 : CHAT GPT


Le perceptron
Zoom
Rappel

X2 0 1
X1
f Y
X2

f(x) = wx + b
X1
Ex: tumeur du sein

X1 X2 X3 X4

Y = Tumeur begnine : 0 / Tumeur maligne : 1


Frontière de décision
X2 z<0 z>0

X1
Tumeur bénigne

Agrégation
n
z = ∑i=1 wnxn +b
X z< z>
Activation
{ Y = o si z < 0
Y = 1 si z ≥ 0
X
Fonction sigmoïde

1
a(z) =
1+e −z
Fonction sigmoïde
a(z)

z=-2.5
a(z)= 0.11 z=1.4
a(z)= 0.8
=> 11% de probabilité
=> 80% de probabilité

z
Loi de Bernouilli
a(z)

y 1−y
P(Y = y) = a(z) . (1 − a(z))

0 1−0
P(Y = 0) = a(z) . (1 − a(z)) = 1 − a(z)
z
1 1−1
P(Y = 1) = a(z) . (1 − a(z)) = a(z)
P(Y = 1) = a(z)
P(Y = 0) = 1 − a(z)
X2

Agrégation
n
z = ∑i=1 wnxn +b
X1
Activation a(z)
1
a(z) =
1+e −z

z
Fonction coût (Loss function)
a(z)

{
Données y=o
Données y=1
Sortie a(z)
Erreurs

z
m
1

L=− yi . log(ai) + (1 − yi) . log(1 − ai)
m i=1
Vraisemblance

y=0 y=0 y=1 y=1


P=0.8 P=0.9 P=0.9 P=0.3
m m
y 1−y
∏ ∏
L= P(Y = yi) = a(z) . (1 − a(z))
i=1 i=1

✅ L=1 ❌ L=0
Exemple

y=0 y=0 y=1 y=1


P=0.8 P=0.9 P=0.9 P=0.85

Bon ou mauvais modèle ?


m


L= P(Y = yi) = 0.8 * 0.9 * 0.9 * 0.85 = 0.55
i=1
Le logarithme
log(a . b) = log(a) + log(b)
m


log(L) = log( P(Y = yi))
i=1
m


log(L) = log( P(Y = yi))
i=1

log(L) = log(0.8) + log(0.9) + log(0.9) + log(0.85) = − 0.259


Le logarithme
Plausibilité
m


log(L) = log( P(Y = yi))
i=1
m
yi 1−yi

log(L) = log( a(z) . (1 − a(z)) )
i=1
m
yi 1−yi

log(L) = log( a(z) ) + log((1 − a(z)) )
i=1
m


log(L) = yi . log( a(z)) + (1 − yi) . log((1 − a(z))
i=1
CQFD


log(L) = yi . log( a(z)) + (1 − yi) . log((1 − a(z))
i=1

m
1
m∑
L=− yi . log(ai) + (1 − yi) . log(1 − ai)
i=1
Descente de gradient
Trouver les paramètres d’entrées W optimaux
Pour minimiser les erreurs (fonction coût)

δL
???
δW
Descente de gradient
L

δL
δW

W
δL
Wi+1 = Wi − α .
δWi
Calcul du gradient

δL δL δa δz
??? = . .
δW δa δz δw
m
1

log(L) = − . yi . log( a(z)) + (1 − yi) . log((1 − a(z)))
m i=1
δL m
1
δa log(L) = − .

m i=1
yi . log( a(z)) + (1 − yi) . log((1 − a(z)))

δL
=? RAPPEL : (log(x))′ =
1

δa
x

m
δL 1 1 −1

=− . yi . + (1 − yi) .
δa m i=1 a 1−a

δa 1
a(z) =
δz 1+e −z

Indice: décomposer la fonction d’activation


1 −z
a(z) = g O f(z) g(x) = f(z) = 1 + e
x

δa
RAPPEL : (g O f(x))′ = g′( f(x)) . f′(x) =?
δz



δa RAPPEL : (g O f(x))′ = g′( f(x)) . f′(x)
δz
1 −1 −1
g(x) = g′(x) = 2 g′(( f(z)) =
x x (1 + e −z)2

−z −z
f(z) = 1 + e f′(z) = − e

−z
δa −1 −z e
= . − e =
δz (1 + e )
−z 2 (1 + e )
−z 2






δa 1
a(z) =
δz 1+e −z

−z −z
δa e 1 e
= = .
δz (1 + e )
−z 2 1+e −z 1+e −z

−z −z
δa e e +1 1
= a. = a . ( − )
δz 1+e −z 1+e −z 1+e −z

δa
= a(1 − a)
δz
δz
n
δwi

z= wnxn + b
i=1

z = w1x1 + w2x2 + . . . + wnxn + b

δz
= xi
δwi
δL
δwi δL δa δz
δL
= . .
δwi δa δz δwi
m
δL 1 1 −1
m ∑
= − .( yi . + (1 − yi) . ) . a(1 − a) . xi
δwi i=1
a 1 − a
m
δL 1 a(1 − a) −a(1 − a)
m ∑
= − .( yi . + (1 − yi) . ) . xi
δwi i=1
a 1 − a
m
δL 1

= − .( yi . (1 − a) + (1 − yi) . (−a)) . xi
δwi m i=1
δL
δwi m
δL 1
m ∑
= − .( yi . (1 − ai) + (1 − yi) . (−ai)) . xi
δwi i=1

m
δL 1
m ∑
= − .( yi − ai yi − ai + ai yi)) . xi
δwi i=1

m
δL 1
δwi m ∑
= .( ai − yi) . xi
i=1
δL
δb
δL δL δa δz
= . .
δb δa δz δb

m
δL 1
m ∑
= .( ai − yi)
δb i=1
n


Agrégation z= wnxn + b
i=1
1
Activation a(z) =
1+e −z

m
1
m ∑
Coût L=− . yi . log( a(z)) + (1 − yi) . log((1 − a(z)))
i=1

m m
δL 1 δL 1
δwi m ∑ m ∑
Gradient = .( ai − yi) . xi = .( ai − yi)
i=1
δb i=1

Descente δL δL
Wi+1 = Wi − α . bi+1 = bi − α .
de gradient δWi δb
Vectorisation
Calcul Matriciel
Définition

Une matrice n × m est


un tableau de nombres
à n lignes et m colonnes

[4 5 6]
1 2 3 2
Matrice 2x3 Vecteur
3
4
Notation

a11 a12 . . . a1n


Amn = a21 a22 . . . a2n ∈ R mxn
... ... ... ...
am1 am2 . . . amn
Addition

Pour pouvoir additionner 2 matrices,


Il faut qu’elles aient les mêmes dimensions

[3 3 6] [4 5 6] [7 8 12]
4 2 1 1 2 3 5 4 4
+ =
Soustraction

Pour pouvoir soustraire une matrice à une autre,


Il faut qu’elles aient les mêmes dimensions

[3 3 6] [4 5 6] [−1 −2 0 ]
4 2 1 1 2 3 3 0 −2
− =
Multiplication
Cas simple : multiplication par un scalaire

[4 5 6] [8 10 12]
1 2 3 2 4 6
2* =
Multiplication
Cas simple : multiplication vecteur-ligne par un vecteur colonne

y1
n
[x1 x2 . . . xn] * y2

... = x1y1 + x2y2 + . . . + xnyn = xiyi
yn i=1
Multiplication
Cas complexe : multiplication de 2 matrices

[3 3 6] [4 5OR6] [12 15 36]


4 2 1 1 2 3 CT
4 4 3
X RE
=
IN C
Multiplication
Cas complexe : multiplication de 2 matrices

1 2
[3 3 6] [ ] [ ]
4 2 1 15 22
X 3 4 =
42 54
5 6

4 2 1 1 2 15 22
[3 3 6] [5 6]
3 1 0 X 3 4 = 6 10
42 54
Multiplication
Cas complexe : multiplication de 2 matrices

Anm . Bmp = Cnp


Cij = Aik Bkj i = 1..n j = 1..p
k=1
Transposée de matrice

1 4
[4 5 6]
1 2 3 T
A23 = A23 = 2 5
3 6
Exercice

(1 4) (2 5)
Soit: A = 2 3 1 0
B=

1. Calculez le produit C=AxB

2. Vérifiez si la multiplication est commutative


en calculant D=BxA.

3. Comparez les résultats des matrices C et D


Réponse

(1 4) (2 5) (9 20)
2 3 1 0 8 15
C=A×B= × =

(2 5) (1 4) (9 26)
1 0 2 3 2 3
D=B×A= × =

La multiplication de matrices n’est pas commutative


Exercice
Définir une matrice (6,4) ”Notes”
qui correspond aux résultats de 6 étudiants à 4 examens :

Etudiant 1 : 10 13 14 15
Etudiant 2 : 9 11 12 14
Etudiant 3 : 12 10 16 10
Etudiant 4 : 8 16 12 11
Etudiant 5 : 10 12 9 13
Etudiant 6 : 12 13 14 15

Les coefficients affectés à chaque examen sont respectivement


3, 1, 2 et 4. Définir une matrice ”Coefficients”.

Présenter en utilisant le calcul matriciel une matrice colonne


correspondant à la moyenne de chaque étudiant.
Réponse

10 13 14 15 13.1
9 11 12 14 3 11.8
12 10 16 10 1 N×C 11.8
N= C= M= =
8 16 12 11 2 10 10.8
10 12 9 13 4 11.2
12 13 14 15 13.7
Utilité des matrices dans
l’IA ?

Représentation des données

Opération sur les données

Calcul de gradient / descente de gradient


Opération sur les données
Résolution d’un système d’équation

{3x + 2y − 5z = 8
5x + y + 2z = 19
2x + 2y + 2z = 12
3 2 −5
5 1 2
2 2 2
.
x
[z]
y = [8 19 12]

−1
x 3 2 −5 3
[z] [1]
y = 5 1 2 . [8 19 12] = 2
2 2 2
Représentation des données
x11 x12
X2 0 1 x21 x22
X = ... ... ∈ R m×n

xm1 xm2
y11
X1
y21
Y = ... ∈ R m×1

m : nombre de données
n : nombre de variables ym1
Représentation des données
17.99 10.38 122.8 1001
20.57 17.77 132.9 1226
X = 19.69 21.25 130 1203
11.42 20.38 77.58 386.1
20.29 14.34 135.1 1297
1
1
Y= 1
1
1
Vectorisation des formules
Vectorisation de Z
(i) (i) (i)
z = w1.x1 + . . . + wn . xn + b

x11 x12 z11 w1.x11 + w2.x12 + b


X= x21 x22 Z= z21 = w1.x21 + w2.x22 + b
... ... ... ...
xm1 xm2 zm1 w1.xm1 + w2.xm2 + b

x11 + x12 b
[w2]
x + x w1 b
Z= 21
...
22 × + ... = X.W + b
xm1 + xm2 b
Fonction d’aggrégation

x11 x12 b

[ 2]
x21 x22 w1
X= W= w B= b
... ... ...
xm1 xm2 b

Z = X.W + B = X.W + b
Vectorisation de A
Fonction d’activation

(i) (i) 1
a(z) = σ(z) =
1+e −z

(1) (1)
a(z) σ(z) z(1)

a(z)(2)
σ(z)(2) (2) 1
A= = =σ z = σ(Z) =
... ... ... 1+e −Z
(n) (n) (n)
a(z) σ(z) z
Vectorisation de L
Fonction de coût (Log Loss)

m
1
m ∑
L=− . yi . log( a(z)) + (1 − yi) . log(1 − a(z))
i=1

m
1
m ∑
L=− . yi . log( A) + (1 − yi) . log(1 − A)
i=1
Vectorisation de la
descente de gradient

δL
Wi+1 = Wi − α .
δWi

δL
bi+1 = bi − α .
δb
Vectorisation de la
descente de gradient
δL 1 m (m)
δL δw1 m
. ( ∑i=1 ai − yi) . x1
= =
δWi δL 1 m
. ( ∑i=1 ai − (m)
yi) . x2
δw2 m

(1) (2) (m)


1 (a1 − y1) . x1 + (a2 − y2) . x1 + . . . + (am − ym) . x1
m [(a1 − (m)]
= (1) (2)
y1) . x2 + (a2 − y2) . x1 + . . . + (am − ym) . x2
Vectorisation de la
descente de gradient
(1) (2) (m)
1 (a1 − y1) . x1 + (a2 − y2) . x1 + . . . + (am − ym) . x1
δWi m [(a1 − (m)]
δL
= (1) (2)
y1) . x2 + (a2 − y2) . x1 + . . . + (am − ym) . x2

(1) (2) (m)


a1 y1
x1 + x1 + ... + x1
[x2 (m)]
δL 1 a2 y2
= . ... − ...
δWi m (1)
+ (2)
x2 + ... + x2 am ym
δL 1
= .X T . (A − y)
δWi m
Agrégation Z = X.W + b

1
Activation A=
1+e −Z
m
1

Coût L=− . yi . log( A) + (1 − yi) . log(1 − A)
m i=1
Gradient δL 1 T δL 1
= . X . (A − y) = . (A − y)
δW m δb m
Descente δL δL
W = W − α. b = b − α.
de gradient δW δb
Place à la pratique
1. Utilisation de python
Vérification des pré-requis

Python

Modules Python:

numpy : manipulation de tableaux multi dimensions

Panda : manipulation de données, de fichiers, nettoyage

matplotlib : création de graphiques

JupyterLAB : interface WEB de développement Python


Vérification des pré-requis
Python

Modules Python:

numpy

Panda

matplotlib

JupyterLAB

Linux / MAC Windows

[Link] [Link]
Exercice
Coder un neurone
Initialisation du jeu de données (X et y)

Initialisation des hyper-paramètres en fonction de X (W et b)

Itérer N fois

Execution du modèle en fonction de X, W et b

Calcul de l’erreur

Calcul du Gradient

Descente de Gradient => mise à jour de W et b


Coder un neurone
Initialisation des données

x11 x12
x21 x22
X = ... ... ∈ R m×n

def generateData(nbData, nbParams) xm1 xm2


… m n
y11
return X, y
y21
y = ... ∈ R m×1

ym1

Tip: [Link].make_blobs ()
Coder un neurone
Affichage des données

x11 x12
def showData(X, y) x21 x22
X = ... ... ∈ R m×n

xm1 xm2
[Link](…
[Link]() y11
y21
y = ... ∈ R m×1

ym1

Tip: utiliser l’aide contextuelle


Coder un neurone
Initialisation des hyper-paramètres (W,b) en fonction de X

[ 2]
def initParams(X) w1
… W= w
return W, b

Tip: [Link]()
Coder un neurone
Calcul de A : aggregation + activation

def model(X,W,b)
… A = [a1a2 . . . am]
return A

Tip: [Link] et [Link]


Coder un neurone
Calcul de l’erreur (LogLoss)

def logLoss(A)
… L = < scalaire >
return L

Tip: [Link]
Coder un neurone
Calcul des gradients

def gradients(X,A,y)
dW = Mn×m

db = < scalaire >
return dW,db

Tip: [Link], [Link]


Coder un neurone
Descente de gradients = mise à jour de W et b

[ 2]
def updateParams(W,b,dW,dB) w1
W= w

return W, b

Tip: [Link], [Link]


Coder un neurone
Boucle d’apprentissage

def train_model(X, W, b, y, nbLoops, learning_rate)


return W, b

Tip: for i in range(nbLoops)


Coder un neurone
Utiliser le modèle pour prédire ( P(y=1) )

def predict(W, b, X)


return p

Tip: utiliser la fonction d’activation

Vous aimerez peut-être aussi