Вы находитесь на странице: 1из 36

Perceptron simple

Perceptron multi-couches
Nicolas P. Rougier

Master 2 - Sciences Cognitives


Universit de Bordeaux
Le cerveau humain

Nombre de neurones dans le


cerveau humain : 100 milliards
Nombre moyen de connexions par
neurone : 10 000
1mm3 de cortex contient un 1
milliard de connexions
Le neurone biologique

Un neurone est une cellule capable


de transmettre des informations
dautres neurones au travers de ses
direntes connexions (synapses).
Il existe plusieurs types de
neurones (pyramide, panier,
Purkinje, etc.) avec des Dendrites

fonctionnements dirents
(sensoriel, moteur, inter-neurones, Noyau

etc.) Corps cellulaire

Noeud de Ranvier
Les neurone sont inter-connects
Cellules de Schwann
et forment des rseaux Gaine de myline

Axone

Terminaisons de l'axone
Etudier le cerveau

Magntoencphalographie
lectro-encphalographie Imagerie par rsonance
(MEG)
magntique fonctionnelle
(IRMf)

Enregistrement cellulaire Anatomie Anomalies/Lsions/Accidents


Modliser le cerveau
Pourquoi ?
Pour sen inspirer
Pour le comprendre
Pour le soigner

A quel niveau ?
Molculaire ? (neuro-transmetteurs)
Organitique ? (axones, dendrites, synapses)
Cellulaire? (neurones, cellules gliales)
Tissulaire ? (structures, aires fonctionnelles)
Organique? (cerveau)

Comment ?
Modliser un neurone
Mettre plusieurs neurones en rseau
Faire apprendre les neurones
Apprendre
Quoi ?
Gnraliser
Gnraliser une fonction partir de points dj connus
Classier
Prdire si une donne appartient telle ou telle classe
Mmoriser
Identier une information bruite ou partielle celles dj connues
Regrouper
Regrouper des donns en fonctions de leur similarit

Comment ?
Supervis
Si la rponse est fausse, on corrige le modle en donnant la bonne rponse
Par renforcement
Si la rponse est fausse, on communique au modle que sa rponse est fausse
mais sans lui donner la bonne rponse
Non supervis
On ne dit rien au modle
Gnraliser une fonction

On donne un ensemble de points (x,y) au modle et on souhaite que celui-ci


puisse prdise la valeur de y pour nimporte quel x donn.
Exemple 1

Exemple 2
Exemples

Srie 1 Srie 2
(0.1, 0.5) 1 (0.4, 0.9) 0
(0.2, 0.9) 1 (0.0, 0.2) 1
(0.6, 0.5) 0 (0.3, 0.6) 0
(0.7, 0.9) 0 (0.1, 0.4) 1
(0.3, 0.7) 1 (0.2, 0.0) 1
(0.6, 0.5) valeur ? (0.2, 0.7) valeur ?
Exemples

Srie 3
(0.134, 0.395) 1
(0.272, 0.989) 1
(0.698, 0.325) 0
(0.701, 0.229) 0
(0.322, 0.773) 1
(0.676, 0.543) valeur ?
Exemples

Srie 3
(0.134, 0.395) 1
(0.272, 0.989) 1
(0.698, 0.325) 0
(0.701, 0.229) 0
(0.322, 0.773) 1
(0.676, 0.543) valeur ?
Limites de la mthode
Perceptron simple

Un neurone possde des entres X1 W1


Chaque entre possde un poids
La sortie est une fonction du poids Y
et des entres
Y = f(W1 X1 + W2 X2 ) X2 W2

Heaviside Linaire Sigmode


Perceptron simple
Fonctions d'activation (ou fonction de transfert)

Heaviside
Heaviside (seuil )
Si x < alors f(x) = 0
Si x alors f(x) = 1

Linaire
Linaire (seuil 1 , 2 )
Si x < 1 alors f(x) = 0
Si x > 2 alors f(x) = 1
Si 1 x 2 alors f(x) = x

Sigmode
Sigmode / Tangente hyperbolique
1
f(x) = 1+exp(x)
exp(x)exp(x)
f(x) = exp(x)+exp(x)
Perceptron simple
Apprentissage supervis

Calcul de lerreur
Soit un ensemble de n exemples. On considre la rponse yk du rseau et la
rponse correcte sk associe lexemple k. Lerreur lie lexemple k est donc
donne par:

Ek = (yk sk )

Cette erreur peut tre positive (yk > sk ) ou ngative (yk < sk )

Descente du gradient
Descendre le gradient signie que lon cherche rduire lerreur dans la
direction de lerreur, en descendant le long du gradient. Si lon considre les
entres xi du rseau associs respectivement aux poids wi , alors:

wi wi + (yk sk )xi

est le taux dapprentissage


Perceptron simple
Exercice 1

Soit la fonction logique suivante:


X1 W1
f(x1 =0,x2 =0) = 0
f(x1 =1,x2 =0) = 1 Y
f(x1 =0,x2 =1) = 1
f(x1 =1,x2 =1) = 1 X2 W2

1. De quelle fonction sagit-il ?


2. A laide du rseau donn, trouver les poids w1 et w2 . On prendra la
fonction de Heaviside comme fonction de transfert (seuil=0).
Perceptron simple
Exercice 2

Soit la fonction logique suivante:


X1 W1
f(x1 =0,x2 =0) = 0
f(x1 =0,x2 =1) = 0 Y
f(x1 =1,x2 =0) = 0
f(x1 =1,x2 =1) = 1 X2 W2

1. De quelle fonction sagit-il ?


2. A laide du rseau donn, trouver les poids w1 et w2 . On prendra la
fonction de Heaviside comme fonction de transfert (seuil=0).
Perceptron simple
Exercice 2

Soit la fonction logique suivante:


X1 W1
f(x1 =0,x2 =0) = 0
f(x1 =0,x2 =1) = 0 Y
f(x1 =1,x2 =0) = 0
f(x1 =1,x2 =1) = 1 X2 W2

1. De quelle fonction sagit-il ?


2. A laide du rseau donn, trouver les poids w1 et w2 . On prendra la
fonction de Heaviside comme fonction de transfert (seuil=0).
3. Pourquoi cela ne marche pas ?
Perceptron simple
Exercice 2

Soit la fonction logique suivante: 1


f(x1 =0,x2 =0) = 0
W0
f(x1 =0,x2 =1) = 0
W1
X1 Y
f(x1 =1,x2 =0) = 0
f(x1 =1,x2 =1) = 1 W2
X2

1. De quelle fonction sagit-il ?


2. A laide du rseau donn, trouver les poids w1 et w2 . On prendra la
fonction de Heaviside comme fonction de transfert (seuil=0).
3. Pourquoi cela ne marche pas ?
4. Ressayer avec la nouvelle architecture
Perceptron simple
Exercice 3

Soit la fonction logique suivante: 1


f(x1 =0,x2 =0) = 0
W0
f(x1 =0,x2 =1) = 1
W1
X1 Y
f(x1 =1,x2 =0) = 1
f(x1 =1,x2 =1) = 0 W2
X2

1. De quelle fonction sagit-il ?


2. A laide du rseau donn, trouver les poids w1 et w2 . On prendra la
fonction de Heaviside comme fonction de transfert (seuil=0).
Perceptron simple
Limites

Le perceptron simple ne peut rsoudre que des problmes linairement


sparables. Pour aller plus loin, il est ncessaire dajouter des couches.

Et l on a un problme...
Perceptron simple
Exercice 4

Parit

Proposer un codage binaire de chaque chire


Trouver les poids permettant de dcider si le chire est pair ou non

Reconnaissance
Proposer une architecture permettant de reconnaitre le chire
Trouver les poids correspondants
Perceptron simple
Exercice 4

Parit

Proposer un codage binaire de chaque chire


Trouver les poids permettant de dcider si le chire est pair ou non

Reconnaissance
Proposer une architecture permettant de reconnaitre le chire
Trouver les poids correspondants
Perceptron simple
Exercice 4

Parit

Proposer un codage binaire de chaque chire


Trouver les poids permettant de dcider si le chire est pair ou non

Reconnaissance
Proposer une architecture permettant de reconnaitre le chire
Trouver les poids correspondants
Historique
Sixties

Le neurone formel (McCulloch & Pitts, 1943)


Automates boolens
Connexions xes

Perceptron (Rosenblatt, 1958)


Modle linaire seuil
Connexions modiables

Adaline (Widrow, 1960)


Modle linaire
Une seule couche
Connexions modiables
Historique
Seventies

Champs de neurone (Amari, 1967)


Continuum neural
Motifs dactivation

Stabilit/Plasticit (Grossberg, 1968)


Paramtre de vigilance
R-entrance

Perceptrons (Minsky & Papert, 1969)


Problme du OU EXCLUSIF
Arrt brutal des recherches
Historique
Eigthies

Auto-organisation (Kohonen, 1970)


Apprentissage non supervis
Topologie dans le rseau

Mmoires auto-associatives (Hopeld, 1982)


Physique statistique
Apprentissage par coeur

Perceptrons multi-couches
Rtro-propagation du gradient
Parker 1982, Le Cun 1985, Rumelhart & McClelland 1986
Perceptron multicouche
Exercice 1

X1 W'0
W'1

Ou exclusif () W'3
On peut remarquer que X2 W'2
A B = (A B) (A B). Y
X1 W1
En combinant les deux rseaux (OU et W3
ET), raliser la fonction ou exclusif

X2 W2
W0
1
Perceptron multicouche
Approximateur universel de fonctions

Pouvoir sparateur

Laugmentation du nombre de couches et du nombre de neurones accroit le


pouvoir de sparation
Perceptron multicouche
Apprentissage

Rtropropagation du gradient
Le problme de lapprentissage dans les perceptrons multi-couches est de
connaitre la contribution de chaque poids dans lerreur globale du rseau.
Lalgorothme de rtro-propagation de lerreur permet de faire cela.
1. Propagation de lentre jusqu la sortie
2. Calcul de lerreur en sortie
3. Rtro-propagation de lerreur jusquaux entres

Conditions
Il faut une fonction dactivation drivable car on a besoin de la driv pour
rtro-propager lerreur.

Dtails
Voir Les rseaux de neurones articiels, Claude Touzet.
Perceptron multicouche
Algorithme

1. Initialisation
2. Prsentation exemple
3. Calcul erreur globale
4. Calcul erreur individuelle
5. Ajustement des poids
(couche cache)
6. Ajustement des poids
(couche entre)
7. Recommencer
Corpus de donnes

Corpus de donnes
Lensemble des donnes connues et disponibles

Corpus dapprentissage
Un sous-ensemble du corpus de donnes qui va servir lapprentissage

Corpus de test
Un sous-ensemble du corpus de donnes qui va servir vrier lapprentissage

Corpus de validation
Un sous-ensemble du corpus de donnes qui va servir modier lapprentissage
Apprentissage

Trop rapide
Un taux dapprentissage trop rapide peut amener des eets dsinatabilits dans
le rseau.

Trop lent
Un taux dapprentissage trop lent peut amener le rseau tre bloqu dans un
mimumum local.

Inertie (momentum)
On conserve les informations relatifs au dernier apprentissage pour en tenir
compte dans lapprentissage courant. On vite les eets doscillations ou bien
de rester coinc dans un minimum local.
Mesure de l'erreur

Erreur apparente
Lerreur apparente se mesure sur le corpus dapprentissage.

Erreur relle
Lerreur relle se mesure sur le corpus entier.

Si lerreur apparente est trs faible alors que lerreur relle est trs forte, le
corpus dapprentissage est trs certainement mal chantillon.
Bibliographie

Livres
Les rseaux de neurones : Introduction connexionnisme
Claude Touzet, 1992
Pattern Recognition And Machine Learning
Christopher M. Bishop, Springer, 2006
Apprentissage statistique
Grard Dreyfus, Jean-Marc Martinez, Mannuel Samuelides
Mirta Gordon, Fouad Badran, Sylvie Thiria, Eyrolles, 2008

Concepts
Pruning techniques
Deep learning network
Mixture of models
Perceptron multi-couche
Exercice 2

Ncessite
Python (www.python.org)
Numpy (www.numpy.org)
Matplotlib (matplotlib.org)

Perceptron simple
Tester lapprentissage du ou exclusif avec un perceptron:
www.loria.fr/~rougier/downloads/perceptron.py

Perceptron multi-couches
Tester lapprentissage du ou exclusif avec un perceptron:
www.loria.fr/~rougier/downloads/mlp.py
Perceptron multi-couche
Exercice 3

Raliser un perceptron multi-couche permettant de dtecter si un point (x,y) se


trouve lintrieur ou lextrieur dun triangle quilatral centr en (0,0) et
inscrit dans le cercle unit.

Choisir dabord larchitecture du rseau (nombre dunit, connections, fonctions


de transfert, etc) puis gnrer des exemples positifs (points lintrieur) et
ngatifs (points lextrieur) Le plus rapide est dcrire un programme pour
gnrer autant dexemple que lon veut.

Vous pourrez utiliser le logiciel ginnet.gforge.inria.fr pour faire apprendre


votre perceptron.

Вам также может понравиться