Académique Documents
Professionnel Documents
Culture Documents
AUTOMATIQUE
Rseaux de neurones Support Vector Machines
Rseaux
de
neurones
Rseaux de neurones
Le neurone biologique
Le neurone biologique
Structure plus claire :
Fonctionnement du neurone
L influx nerveux est assimilable un signal
Fonctionnement du neurone
Les neurones communiquent entre eux en mettant des
signaux lectriques
Chaque neurone effectue une sommation (il s'agit en ralit d'une
Mise en correspondance
Modle biologique <-> Modle formel
Un neurone est un processeur lmentaire qui reoit un nombre
variable d entres des neurones en amont. A chacune de ces
entres est associ un poids reprsentatif de la force de la
connexion.
Un neurone est dot d une sortie unique qui se ramifie ensuite
pour alimenter un certain nombre de neurones en aval.
Le neurone formel
Dfinition: Un neurone est une fonction
w1
f
xn
wn
La fonction d activation f
f peut tre paramtre de faon
quelconque, mais deux types de paramtrage
sont frquemment utiliss:
La fonction
v = w0 + ! wi xi
i =1
Fonction d activation
La fonction donnant la valeur de la sortie du neurone
Tangente hyperbolique
Arc Tangente
La sortie du neurone
a pour quation
f ( x) =
1
1 + exp(! x)
n
!
"
y = th (v ) = th # w0 + ' wi xi $
i =1
%
&
d activation.
La fonction d activation est alors soit une fonction radiale
(ou RBF Radial Basis Function) ou bien un ondelette.
La sortie d un neurone RBF non-linarit gaussienne a
pour quation:
n
!
2"
$ ( (xi # wi ) %
%
y = exp $ # i =1
2
2 wn +1
$
%
$&
%'
Discrimination linaire
Le rseau le plus simple pour classer des donnes parmi deux classes
Discrimination linaire
n
!+ b = 0
w
x
" ii
i =1
b = ! w0
(rond rouge)
(croix verte)
Discrimination Linaire
La frontire de dcision est donne par l quation
de la droite de dcision :
wx + b = 0 ! wx = "b ! wx = w0
! x1 "
! w1 "
# ... $
# ... $
# $
# $
X % # x j $ , W % #wj $
# $
# $
# ... $
# ... $
#& xn $'
#& wn $'
le potentiel X W est un produit scalaire
Limitations du perceptron
Le perceptron procdant des sparations
-1
-1
-1
Le OU : linairement sparable
Discrimination linaire
Rgle de dcision linaire:
! n
"
D (x ) = # $ ( wi xi + b %
& i =1
'
O est la fonction signe (heaviside)
"# ! ( y ) = 1 si y > 0
$
#&! ( y ) = %1 si y < 0
! ! x1 "
! ! w1 "
Dans l espace 2D, on a w = #
$ , x=# $
% w2 &
% x2 &
On obtient l quation d une ligne droite avec une
pente de
w1 avec
!
w2
w1
b
x2 = !
x1 !
w2
w2
x1w1 + x2 w2 + b = 0
wx + b > 0
!
w
b
!
w2
b
d=
w
wx + b < 0
! ! x1 "
! ! w1 "
w=# $ , x=# $
% w2 &
% x2 &
D( x) = sign (wx + b )
dist (x, ! ) =
b
!
w1
w =
wx + b
2
w
! j
j =1
si x et y ! " # wx + b = 0 et wy + b = 0
w( x $ y ) = 0 # w est orthogonal la frontire de dcision "
hyperplan
XW>0
hyperplan
X W =0
X
XW<0
X
W
dist(X , )=0
X
W
dist(X , )>0
W
dist(X , )<0
wj x j + b = 0
Les points X qui satisfont !
se trouvent
j =1
sur un hyperplan normal au vecteur w dont la distance
l origine est d = b w
Apprentissage d un perceptron
Seule l orientation de l hyperplan dfini par le vecteur
!" !"
w w
X W > 0 !
X W < 0 !
y = +1
y = "1
Ajustement de W
L ajustement de W peut tre considr comme une
w2
Wi +1
!Wi
Wi
w1
Ajustement de W
On analyse les rsultats fournis par la sortie
du perceptron.
Cas 1 : bonne classification, on ne fait rien
Cas 2 : classification errone (sortie 1 au
lieu de 1) c-a-d qu on a X W < 0 au lieu
de X W > 0 . Pour corriger ceci il faut faire
tourner W dans la direction de X sans trop le
modifier afin d viter un bouleversement de
!
l apprentissage prcdent.
> 90
W
X
Ajustement de W
Pour cela il suffit de rajouter W(t) une
"W = ! X W(t)
W (t + 1) = W (t ) + "W = W (t ) + ! X
"W
fraction
W(t)
W(t+1)
W (t + 1)!
= W (t ) + "W
= W (t ) # ! X
avec 0<! < 1
W(t+1)
W(t)
<90
X
"W
W(t)
!
X
Rgle de Widrow-Hoff
Les deux quations prcdentes peuvent tre mises
Apprentissage du perceptron
Notations
L={xk,ck} dsigne l ensemble d apprentissage avec xk le
z =c wx
z >0
"! z
k
2.
Apprentissage
1.
2.
3.
Test
1.
2.
Proprits de l algorithme
Il itre les modifications des poids tant qu il reste des
Cercles
noirs :
classe +1
W(t=5)
Cercles
blancs :
classe 1
Exemple d apprentissage
On cherche dfinir la droite d quation b=a/2. Les couples de valeurs
tels que b>a/2 sont de classe +1 et ceux tels que ba/2 sont de classe -1.
On considre que x0=1, x1=a, x2=b et l on prend les couples de valeurs
suivants: {(1,0,2), (1,1,1), (1,1,2.5), (1,2,0), (1,3,0.5)} avec les classes
{+1,+1,+1,-1,-1).
w0
w1
w2
1 0
2 1
3 0
xk
ck
w0
w1
w2
(1,0,2)
+1
(1,2,0)
-1
-2
-2
(1,1,1)
+1
-1
4 1
-1
(1,3,0.5)
-1
-0.5
-1
-1
5 1
-1
(1,1,2.5)
+1
7.5
-1
Exemple d apprentissage
b=a/2
b = a/3 1/3
(( ) )
1
= XW ! C
2
Calcul du gradient
n
#E (W )
La mthode
$W = "!
revient
#W
dterminer
#E (W )
pour
= 0 & X % ( XW " C ) = 0
W qui
#W
minimise
"1
& W= ( X %X ) X %C
E(W).
par
Descente du gradient
"E (W )
" 1 p i
#
=
c # D (xi )
&
"wk
"wk 2 i =1
1
"
ci # D (xi )
&
2 i =1 "wk
1 p
"
i
i
= & 2 c # D (x )
ci # D (xi )
2 i =1
"wk
) (
i =1
p
"
ci # Wxi # b )
(
"wk
= & ci # D (xi )
p
p
"E (W )
$wk = #! %
= #! & ci # D (xi ) xki = ! & D (xi )# ci xki
"wk
i =1
i =1
Pour tout i, wi wi + wi
E (W ) =
1
D x i !ck
"
2 i =1
( )=
#E W
#W
( ( ) )
"(
i =1
! ( XW ) ! c
( (
1
! WX ! c k avec D x i = ! x i W + b
"
2 i =1
( ( )
#! XW
( ) ( (
) )
#W
) (
= " ! XW ! c k ! $ XW X = %W
i =1
Pour effectuer une descente de gradient, l erreur doit tre une fonction
continue des poids et drivable chaque point, on utilise donc une
fonction d activation continue et drivable telle qu une sigmode par
exemple.
L erreur n attendra jamais la valeur nulle, donc on utilise une mthode
itrative, les poids sont modifis la prsentation de chaque exemple en
minimisant un critre partiel pour le vecteur d entre xi avec 1ip:
!w k = ! Wx " c x
i
k
pour ! ( x ) = x
linaires ?
xi
n entres
Nc neurones cachs
Ns neurones de sortie
Le perceptron multi-couches
Le PMC est un rseau organis en couches
Qui ralise une transformation vectorielle :
Le PMC
Modle de calcul :
La premire couche reoit l entre du rseau et produit son
rsultat.
Notations
Un PMC l couches
n(i) : nombres de neurones dans la couche ni
Wi : matrice des poids de la couche ni
L : ensemble d apprentissage
X : vecteur des exemples
Reprsentation d un exemple :
(0)
!
"
xi = xi1 ,..., xi ( 0 ) l'exemple possde n attributs
n
#
$
Sortie du PMC :
Sorties dsires :
Notations
Biais :
0
0
n( )
n( )
!
"
!
"
(1)
y j = f # ' wij xi + b $ = f # ' wij xi $
# i =1
$
# i =0
$
%
&
%
&
(1)
x0=1
avec x0=1
x0 = 1
xi
yk
wij
i=1:n(0)
wjk
j=1: n(1)
k=1: n(2)
Propagation
Calcul des sorties du rseau en propageant les
0
n( )
wij
v (j1) = ! wij xi
i =0
wjk
xi
yk
n( )
vk(2) = ! w jk x (j1)
j =0
yk = f (vk(2) )
xj(1)
i=1:n(0)
j=1: n(1)
k=1: n(2)
Apprentissage
Un PMC calcule donc une fonction F
R n(0) " R m # R n(1)
De
l
(i )
(i !1)
m
=
n
1
+
n
"
m dsigne le nombre total de paramtres
i =1
Le but est de trouver un vecteur des poids W tel que
! x ! F ( x, w ) soit un bon modle des donnes
L erreur minimiser est : (d distance euclidienne)
E (w ) = ! d (F (xi , w ), yid )
i =1
F n tant pas linaire par rapport aux paramtres, son gradient non plus :
les moindres carrs ne fonctionnent pas.
Apprentissage
L erreur pour un exemple est
d
i
2
1
n( )
Ei = ! ei
2 i =0
E = ! Ei
i =1
Apprentissage
L apprentissage est un problme
d optimisation :
Apprentissage
Pourquoi l apprentissage pour ce type de rseaux est un
problme difficile?
Le principe des mthodes d adaptation de poids que l on
a vues jusqu maintenant est bas sur un apprentissage
supervis : on connat chaque fois la sortie dsire. Un
professeur qui connat parfaitement la classification
attendue guide le rseau en lui rappelant chaque tape le
bon rsultat.
Si l on introduit une couche supplmentaire de neurones
entre la couche d entre et la couche de sortie, comment
valuer l impact de la modification d un poids de la
premire couche sur la rponse finale?
Ou encore, que doit indiquer le professeur comme
sortie attendue au neurones de la couche cache?
Comment rpercuter sur chacune des connexions le signal
d erreur qui n a t mesur que sur la couche de sortie,
aprs avoir travers plusieurs tapes non linaires caches?
Solution
Algorithme de rtro-propagation du gradient
Minimiser l erreur quadratique (commise sur
Retro propagation
L ide est de raliser la descente du gradient
Retro propagation
Ide centrale de la rtro-propagation :
Les erreurs la sortie des units caches sont
"E
#w = $!
"w
!E
Problme : calcul de
et
!wij
!E
!w jk
Couche de sortie
Calcul de !E
!w jk
2
!E
!E !yk !vk( )
=
" (2) "
!w jk !yk !vk
!w jk
wjk
xj(1)
yk
n( )
2
n( )
(2 )
(1)
2
(2)
1
v
=
w
x
"
j !k j !
E = " (ykd' ! yk ' ) yk = f (vk ) k
j != 0
2 k '= 0
! (y ! yk )
d
k
f ! (vk(2) )
"E
! k $ (2) = % (ykd % yk ) f # vk(2)
"vk
( )
j=1: n(1)
x (j1)
k=1: n(2)
"E
(1)
= ! k .x j
"w jk
Couche cache
!E
Calcul de
pour un exemple fix
!wij
wij
(1)
(1)
!
y
!
v
!E
!E
= (1) " (j1) " j
!wij !y j !v j
!wij
2
n( )
xi
0
n( )
(2 )
!E
!E !vk
=
"
!y (j1) k =0 !vk(2) !y (j1)
(1)
y j = f (v
(1)
j
2
n( )
"E
= ! w
(1) # k jk
"y j
k =0
2
n( )
y (j1) = x (j1)
f ! (v (1)
j )
#
$E "
! j & (1) = ' + ! k w jk ( f % v(j1)
' k =0
(
$v j
)
*
( )
xi
i=1:n(0)
j=1: n(1)
"E
= ! j .xi
"wij
Rsum
Pour modifier les poids lors de l apprentissage
Exemple
x =
[0.5 1]
yd = [0.5 1]
W1=[0.5 0.5 ; 0.5 0.5] (pas de biais)
W2=[1 1 ; 1 1]
v(1)1 =0. 5*0.5+0.5*1
v(1)=[0.75 0.75]
y1 = 1.2703 x(1)=[0.6351 0.6351]
x1(1)
x1= 0.5
v(2)=[1.2703 1.2703]
y = [1.2703 1.2703]
x2= 1
y2 = 1.2703
x2(1)
n(0)=2
n(1)=2
n(2)=2
f ( x) = tanh (x )
f !( x) = 1 " tanh 2 (x )
f ( x) = x
Exemple
(0.7703*0.6351)
1k=-(0.5-1.2703)
2k=-(1-1.2703)
(0.7703*1+0.2703*1)*(1-tanh(0.75))
k = [0.7703 0.2703]
j = [0.6208
1 = 0.7703
x2= 1
2 = 0.2703
x2(1)
n(0)=2
n(1)=2
(0.6208*0.5)
x1(1)
x1= 0.5
0.6208]
n(2)=2
Exemple
w1 =[0.3448 0.3448 ; 0.1896 0.1896]
w2 =[0.7554 0.9142 ; 0.7554 0.9142]
MAJ de W1 et W2
Nouvelle propagation, etc...
y = [0.5242 0.6344]
x1(1)
x1= 0.5
y1 = 0.5242
x2= 1
y2 = 0.6344
x2(1)
n0=2
n1 =2
n2 =2
Evolution
On converge vers le rsultat yd =
[0.5 1]
propagation :
exemples
Calculs et stockages lourds si trop d exemples
chaque exemple
Prfrable de tirer l exemple au hasard
Algorithme
1.
2.
3.
4.
5.
6.
7.
Arrt de l apprentissage
Critres classiques :
Borne sur le temps de calcul (i.e nombre
d itrations)
Valeur atteindre (erreur en dessous d un seuil)
Vitesse de progression (on s arrte quand l erreur
ne diminue plus assez ou quand le vecteur de
paramtres ne change plus)
Utiliser un ensemble de validation : on s arrte
quand l erreur remonte trop sur cet ensemble
Notions lies la modlisation
valuer et slectionner un modle
Le pas d apprentissage
Problme de rglage
Trop petit :convergence lente vers la solution
Trop grand : risque d oscillations
a : est faible (tend vers 0)
b
a
b : est lev (tend vers 1)
c : est lev (avec momentum)
c
Heuristiques courantes :
Diminuer le pas d apprentissage au fur et mesure : la main ou en
Premier ordre
Moment d inertie (Rumelhart et al., 1986)
#! ij (t )u
%
! ij (t + 1) = &! ij (t )d
% ! (t )
' ij
on acclre
on freine
Premier Ordre
n
# min (! ij (t )u , ! max ) si (" j .xi )(t )(" j .xi )(t $ 1) > 0 on acclre
%
%
! ij (t + 1) = &max (! ij (t )d , ! min ) si (" j .xi )(t )(" j .xi )(t $ 1) < 0 on freine
%
! ij (t )
sin on
%'
n
Proprit fondamentale
Toute fonction borne suffisamment rgulire peut tre
approche uniformment, avec une prcision arbitraire,
dans un domaine fini de l espace de ses variables, par
un rseau de neurones comportant une couche de
neurones cachs en nombre fini, possdant tous la
mme fonction d activation non linaire. [Hornik 89]
Le nombre de paramtres crot exponentiellement avec la
Exemple
Exemple
Exemple
Exemple
Le nombre d exemples
Un ordre de grandeur du nombre d exemples ncessaires
Problme m classes
Les rseaux de neurones ralisent une estimation des probabilits
a posteriori.
Lorsque le problme de classification est plus de deux classes
plusieurs approches sont possibles
Utiliser un seul rseau de neurones pour estimer la probabilit
Premire approche
On cre un rseau de neurones m sorties (One-Versus-All)
Les sorties dsires sont codes de la faon suivante :
l vnement l xk appartient la classe ck on associe un
vecteur de sortie dont seule la composante ni est 1 et les autres
sont 1.
Pour la classification d un nouvel exemple aprs
Descripteurs
xi
m neurones fonction
d activation sigmode
Premire classe :
Descripteurs
xi
Classifieur
sparant deux
classes Ci et Cj
1 neurone fonction
d activation sigmode
Avantages
On ne prsente chaque rseau que les donnes des deux classes
qu il doit discriminer
On obtient des rseaux de neurones beaucoup plus petits dont
l apprentissage est court et la manipulation simple
On peut mettre en uvre pour chaque rseau des techniques afin de
trouver le nombre de neurones cachs
Les descripteurs ncessaires pour sparer les classes Ci et Cj ne sont
pas ncessairement les mmes que ceux qui sont utiles pour sparer
les classes Ci et Ck; on peut donc slectionner les entres et simplifier
les rseaux
Le neurone de sortie fournit une valeur y entre 1 et 1, pour
l interprter comme une probabilit, il suffit de faire un changement
de variable p=(y+1)/2
La simplicit des classification deux deux peut permettre d utiliser
des classifieurs linaires.
Notations
(xk,ck) dsigne un lment de la base avec ck
sa classe.
RCi ,C j
et R = m (m ! 1) / 2
k
Le sortie d un rseau est note y x , RCi ,C j
k
y
x
, RCi ,C j ! 0 " Ci
Si
(
)
y (x , R
)< 0 " C
Ci ,C j
((
) )
Slection directe
Les diffrentes mthodes
Vote majoritaire
Les mthodes de
Price
Hastie
Vote Majoritaire
C est la mthode la plus simple mais une des
plus efficaces
Pour chaque rseau
rseau Vk=Vk+1
C j = argmax [Vi ]
i
Exemple
On obtient les valeurs suivantes comme
Price
La probabilit que l lment xk appartienne
)=
1
m
1
" (m " 2 )
#
j =1, j ! i Prij
maximise
Exemple
On obtient les valeurs suivantes comme
1
!! 1
1 "
"
+
#
(3
#
2)
$ $ 0.9 0.4 %
%
'
&&
'
C1 est choisie
Pr (C1 | x ) = 0.3829
Pr (C2 | x ) = 0.0958
Pr (C3 | x ) = 0.25
Hastie
Prij = P (Ci | Ci ou C j )
On sait que
P (Ci | Ci ou C j )= pi / (pi + p j )
On ne peut pas trouver un ensemble de
probabilits pi=Pr(Ci|xk) qui soit compatible
avec tous les Prij
Exemple :
1 ! . 0.9 0.4 "
On a r12>0.5, r23>0.5
#
$
2 # 0.1 . 0.7 $
r31>0.5 ; or on ne peut choisir
# 0.6 0.3 . $
3
%
&
qu une classe parmi les trois !
On va chercher trouver la meilleure
approximation des probabilits
On considre que
Hastie
"
j !i
"
avec ij
Algorithme:
1.
= pi / (pi + p j )
et
2.
j !i
!p
Pr Ci | x k , RCi ,C j
"n r
"n
ij ij
pi = pi
j !i
ij
ij
j !i
C j = argmax [ pi ]
i
=1
Exemple
On obtient les valeurs suivantes comme
On va utiliser les
sorties des
classifieurs et non
les probabilits
d ( f (x ), M (k , !)) = # L (M (k , i ), fi (x ))
i =1
+1 -1 -1 -1 -1 +1
! +1 +1 +1 0 0 0 " D=3.5
#
$ D=4.5
# %1 0 0 +1 +1 0 $
# 0 %1 0 %1 0 +1$ D=1.5
#
$ D=2.5
& 0 0 %1 0 %1 %1'
C3
! +1 +1 +1 0 0 0 " D=7.1
#
$ D=8.4
%
1
0
0
+
1
+
1
0
#
$
# 0 %1 0 %1 0 +1$ D=4.8
#
$ D=6.6
0
0
%
1
0
%
1
%
1
&
'
C3
Connectivit parse
Les CNN reproduisent une reprsentation hirarchique en forant une
Poids partags
Dans les CNNs, chaque filtre est rpliqu sur tout le champ visuel.
Ces neurones rpliqus forment une feature map ou tous les paramtres sont
Max-Pooling
Max-Pooling dcoupe limage dentre en zones
pooling
Les couches les plus hautes sont compltement connectes et correspondent un
MLP classique
Reconnaissance de codes
postaux
Machines
Support de Vecteurs
La VC Dimension
La dimension de Vapnik-Chervonenkis est une mesure
La VC-Dimension
Partitionnement dun ensemble dexemples
Pour une classification binaire avec N exemples, il y a 2%
dichotomies possibles
Pour N=3 exemples, lensemble de toutes les dichotomies est
{(000),(001),(010),(011),(100),(101),(110),(111)}
Exemple
Soit un problme de classification dans )2 et &(() la famille des
Intrt de la VC-Dimension
Pourquoi la VC-dimension est intressante ?
La VC-Dimension fournit une borne suprieure sur le risque rel
comme une fonction du risque empirique et du nombre dexemples
disponibles
N>h
Plus le ratio N/h devient grand, plus la VC-confidence devient
petite et le risque empirique est proche du risque rel
Ces rsultats proviennent de la thorie de lapprentissage
statistique introduite par Vapnik et Chervonenkis et qui est
lorigine des machines support de vecteurs
La VC-Dimension en pratique
Disposer dune borne suprieure de la VC-dimension
linaires de sparation
dterminer un hyperplan de
sparation pour un ensemble de
donnes linairement sparables
{(#1,$1),(#2,$2)(#%,$%)}, #)-, ${1,+1}
Lequel des hyperplans choisir ?
Intuitivement un hyperplan qui passe trop
dimension
Si lhyperplan a une erreur empirique nulle (sparation
parfaite), maximiser la marge minimisera la borne
suprieure sur le risque rel
Conclusion : Lhyperplan de sparation de marge
maximum minimisera le risque structurel
La marge
La distance entre un point # et un plan (.,/) est
Puisquil y un nombre infini de plans de
Et la marge vaut
Maximiser la marge
Le problme de maximisation de la marge est donc
quivalent
Kuhn-Tucker Theorem
Etant donn un problme doptimisation
Lagrangien :
A loptimum z*, existent
tels que
(, 1
maximisant selon (
Equation Lagrangiennes
On drive le Lagrangien
Problme dual
En Dveloppant le Lagrangien,
on obtient
Problme dual
Comme
Vecteurs supports
Daprs les conditions KKT, la solution w
$,(.4#,+/1)=0
deux hyperplans
(puisque $,(.4#,+/1)=0)
et sont appels vecteurs de support
Vecteurs supports
Seuls les vecteurs supports ((,>0) dterminent la frontire
de sparation
class
Quand 0 5, 1, lexemple est
dans la marge mais bien class
Soft-Margin optimisation
On considre prsent le problme
s.t.
C (constante de rgularisation)
reprsente un compromis entre
maximiser la marge et
minimiser lerreur
s.t.
Si 0<(,<C : le vecteur support est sur la marge (5,=0)
Si 0<(,=C : le vecteur est dans la marge et soit mal class (5,>1) ou
bien class (0 5, 1)
Produits scalaires
Pour une marge dure ou lche, le problme doptimisation
et la fonction de dcision
SVM non-linaires
Thorme de Cover sur la sparabilit de patterns
A complex pattern-classification problem cast in a high-dimensional
Illustration
Principe
Une application nave de ce concept de projection vers une
Kernels et hyperplans
Partant dun vecteur # dans RD, on dfini une projection 8(#)
puisque
Kernel-based SVM
Si lon utilise un noyau 6(#,,#7), la classification est effectue par
s.t.
telle que
est symtrique et positif
est appel un noyau dfini positif
Mercer Condition: Pour tout noyau positif K dfini sur U,
il existe un espace de produit scalaire V et une fonction
(.):UV telle que
Lien entre distance dans U et similarit dans V
Exemples de noyaux
Noyau linaire
Noyau polynomial
Noyau Gaussien
Effet du noyau