Projetrseauxdeneurones V3
Projetrseauxdeneurones V3
Projetrseauxdeneurones V3
net/publication/317267407
CITATIONS READS
0 4,804
1 author:
Pascal Scalart
Université de Rennes 1
153 PUBLICATIONS 2,204 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Digital signal processing for high-speed coherent optical communications View project
All content following this page was uploaded by Pascal Scalart on 31 July 2017.
Devoir Maison
____________________________________________________________
-1-
-2-
-3-
-4-
Introduction
aux réseaux de neurones
__________________________________________________________
1. Modélisation d’un neurone
2. Le perceptron et sa version multicouche
2.1 – Le perceptron : fonctions de transition classiques
2.2 – Le perceptron : rôle de l’unité de biais
2.3 – L’erreur du perceptron : une fonction multidimensionelle
2.4 – Le perceptron multi-couches
3. L’apprentissage supervisé
3.1 – Choix de la base d’apprentissage
3.2 – Choix des attributs/descripteurs de la base d’apprentissage
O Nécessité de maîtriser la dimensionnalité
O Comment réduire la dimensionnalité ?
O Notre application
-5-
Propos Introductif
Le réseau profond de neurones comportant entre 2 à 10 milliards de neurones artificiels
(comparés aux 100 milliards de neurones du cerveau humain) s’impose de jour en jour dans le
traitement massif de données : (i) chez Google pour identifier les numéros de rues apparaissant
sur les images captées par les voitures Street View; (2) dans le projet PlaNet pour construire un
système automatique capable reconnaitre le lieu où une photo a été prise (sans aucune
information sur sa géolocalisation) qu'il s'agisse d'un paysage, d'une rue ou d'un monument;
(3) pour battre l’intelligence humaine avec la victoire en janvier 2016 d’AlphaGo sur le
champion du monde du jeu de go (l'un des jeux de stratégie les plus anciens et compliqués du
monde) ; (4) pour reconnaître et catégoriser les images (visages, objets, etc.) à la volée au sein
de flux vidéos.
Par ailleurs, durant ces dix dernières années, l’apprentissage automatique est à l’origine des
véhicules sans pilote, du gain d’efficacité de la recherche sur Internet et des percées
considérables dans notre compréhension du génome humain. Dans le cadre de ce projet, nous
allons étudier les principes à la base de ces techniques.
__________________________________________________________
1. Modélisation d’un neurone : une inspiration biologique
Dans les réseaux de neurones, l’élément de base est un neurone artificiel qui correspond à un
modèle issu des observations faites sur les neurones biologiques.
-6-
La valeur numérique du poids associé à une connexion entre deux unités reflète la force de la
relation existant entre ces 2 unités. Si cette valeur est positive, la connexion est dite excitatrice
et, si elle est négative, elle est dite exhibitrice.
Il existe différents modèles de neurones suivant les choix effectués pour les fonctions
, 〈 , 〉 ∑ ,
d’activation et de transition. On distingue :
• le neurone « produit scalaire » :
Les réseaux de neurones ainsi obtenus sont nommés : MLP ( Muti-Layer Perceptron)
• le neurone « distance » : , ‖ ‖ ∑ ,
Les réseaux de neurones ainsi obtenus sont nommés : RBF (Radial-Based Function).
Contrairement aux MLP, les réseaux RBF possèdent deux types de paramètres : (i) la
position et la dispersion radiale des fonctions de base et (ii) les poids qui permettent de
connecter ces fonctions de base aux unités de sortie.
. avec ∈"
#$%& '(
-7-
• la fonction ReLU (Rectified Linear Units)
utilisée de préférence dans les couches
cachées :
max 0,
• la fonction softmax (Rectified Linear Units) qui est une généralisation de la fonction
sigmoïde, et qui est utilisée sur la couche de sortie dans les problèmes de classification
multi-classes. Elle permet également de convertir les valeurs d’entrée en probabilités
d’actions dans le cadre de l’apprentissage par renforcement :
$%& '(
∑.
, 1 1, … , 3
-/0 $%& '-
Nous avons vu que le neurone n°j sera actif ssi sa sortie est positive. Ainsi, le seuil
d’activation (ou de non-activation) du neurone n°j sera déterminé par la condition :
0⇒ , : ,5 5
5
Nous pouvons donc conclure que l’unité de biais , permet de fixer le seuil d’activité du
neurone n°j.
-8-
Note : dans l’espace " , l’équation ∑5 ,5 5 0 définit un hyperplan de dimension 7
1, dont un vecteur normal est défini par <=> , , , ,…, ,
0 entre l’activation et la non-activation du neurone j. Ainsi la
, il s’agit de l’hyperplan de
séparation lorsque ,
relation :
, : ,5 5
5
, : ,5 5 ⇔0 : ,5 5 ,5 ⇔0 : ,5 ?5
5 5 5
avec , ∑5 ,5 ,5 et ?5 5 ,5 .
G ∶ " #
STTTTTTTTTTTTTU "
1
,
V W ⋮ Y⟼G V [C P: ,5 5 Q\
2 5
,
Note : on remarquera que la fonction de coût précédente est une fonction de coût convexe
ce qui est un grand avantage afin d’éviter les problèmes liés à la présence de minima locaux
lors de la phase d’apprentissage des poids du réseau.
-9-
Figure – Minima locaux présents dans une fonction de coût J Θ , Θ non-convexe (cas bi-dimensionnel)
2.4. Le perceptron multi-couches
Un réseau de neurones (ou réseau connexionniste) est un groupe orienté, constitué d’un
ensemble d’unités simples (des neurones formels), réalisant des calculs élémentaires,
structurées en couches successives capables d’échanger de l’information au moyen de
connexions qui les relient. Il se caractérise par :
• son architecture,
• les fonctions (activation, transition) de ses éléments.
C
FORMALISATION DE LA PROBLEMATIQUE
Le vecteur représentant les sorties du réseau _ `C a est obtenu, à partir d’un vecteur de 7
la relation :
_ Ψ V, b d le modèle
où le bruit de modélisation d est supposé centré et indépendant du signal d’entrée b à valeurs
dans l’ensemble h.
-10-
On distingue 3 phases nécessaires à la « vie » du réseau :
• la phase d’apprentissage visant à « apprendre » la relation Ψ . liant les vecteurs _ à
valeurs dans i et le vecteur b, à valeurs dans j, contenant les variables explicatives,
• la phase de validation visant à vérifier si la relation Ψ . apprise à l’étape précédente
est pertinente (donc on connait la valeur des sorties escomptées),
• la phase de test visant à appliquer le réseau de neurones à de nouvelles entrées
n’ayant jamais participé aux 2 étapes précédentes d’apprentissage et de validation.
l’estimation de la fonction Ψ . :
Deux approches majeures sont envisagées afin de réaliser l’apprentissage c’est-à-dire
• l’apprentissage dit supervisé où l’on dispose d’un oracle qui, pour chaque entrée b,
attribue une étiquette _ grâce à une fonction inconnue de l’apprenant. L’apprenant
reçoit alors un ensemble d’exemples b, _ et la phase d’apprentissage vise alors à
expliciter la variable _, décrite par < individus 4_ k Ψ V, b k d k 9l∈A ,mB , à
partir de la connaissance de 7 variables explicatives synthétisées dans le vecteur b
… n
b ,_
. On dispose alors d’un échantillon c’est-à-dire d’un ensemble fini
o om
d’exemples .
l’apprentissage dit non-supervisé où l’on ne dispose pas des C constituant la variable _
…
•
à expliciter. Seules les 7 variables explicatives du vecteur b n
(ou
base d’apprentissage) sont disponibles. Le problème est alors de rechercher une
taxinomie (c’est-à-dire des caractéristiques communes) aux observations.
On suppose ici qu’un choix a été fait quant à la topologie du réseau c’est-à-dire que les 2
premiers éléments ci-dessus (nombre d’entrées, nombre de sorties, nombre de neurones sur
les couches cachées, et nombre de couches cachées) sont déjà spécifiés. Nous ne travaillerons
qu’avec un type bien particulier de réseau de neurones, le perceptron multi-couche (PMC) ou
Multi-Layer Perceptron (MLP), dont les caractéristiques sont les suivantes :
• le réseau est organisé en plusieurs couches,
• une couche = un groupe de neurones uniformes sans connexion les uns avec les autres,
• il comporte au moins 2 couches (une couche dite “cachée” et une couche de sortie),
•
les dimensions d’entrée p q et de sortie prsl peuvent être différentes,
une couche au moins n’est pas linéaire (souvent la couche cachée),
•
• une couche ne peut utiliser que les sorties des couches précédentes (structure
feedforward).
-11-
Théorème de Cybenko (1989): Pour toute fonction F continue définie et bornée sur un
ensemble borné, et pour tout ε, il existe un réseau à 2 couches (informations en entrée ->
couche cachée -> couche de sortie) où chaque neurone de la couche cachée possède une
fonction d’activation de type sigmoïde et où chaque neurone de la couche de sortie possède
une fonction linéaire comme fonction d’activation, qui approxime F à ε près.
En fait, il a été démontré par la suite par Hornik que la propriété précédente n’était pas due à
l’utilisation de fonctions d’activation de type sigmoïde sur la couche cachée, mais que cette
propriété provient de la structure multicouche feedforward du réseau.
Théorème de Hornik (1991): Toute fonction bornée suffisamment régulière peut être
approchée uniformément, avec une précision arbitraire, dans un domaine fini de l’espace de
ses variables, par un réseau de neurones comportant une couche de neurones cachés en
nombre fini, possédant tous la même fonction d’activation, et un neurone de sortie linéaire.
Cette propriété, qui n’est qu’un théorème d’existence, ne donne pas de méthode pour trouver
les paramètres du réseau !
3. L’apprentissage supervisé
Une fois sélectionnée la topologie du réseau, il ne nous reste donc qu’à décrire le type
d’apprentissage à réaliser : supervisé ou non supervisé. Dans l’apprentissage supervisé, on
être à même de déterminer la valeur que doivent prendre les sorties _ du réseau de neurones
suppose que l’on dispose d’un ‘oracle, ou d’un ‘expert’ ou bien encore d’un ‘superviseur’ qui va
objectifs majeurs :
• (i) que les poids donnent de bons résultats lors de l’apprentissage à partir de K exemples
4_ k t Ψ V, b k 9l∈A ,mB
connus :
• (ii) que les poids ainsi appris possèdent de bonnes capacités de généralisation _
Ψ V, b lorsque l’on présente de nouveaux signaux b en entrées n’ayant pas
appartenu à la base d’apprentissage.
l’objectif (i) serait parfaitement atteint, mais les poids V ainsi appris seraient trop spécifiques
Il s’agit alors d’éviter les situations de sur-apprentissage c’est-à-dire les cas particuliers où
-12-
verrons ultérieurement quelles sont les procédures à notre disposition afin d’éviter cette
situation.
(b) sélectionner > Fichier > Nouveau puis appuyer sur le bouton enregistrement (le
‘rouge’) pour procéder à l’enregistrement d’un des 3 chiffres ‘1’,’2’ ou ‘3’
(d) Réutiliser plusieurs fois la commande Suppr en début/fin de signal pour ne sélectionner
qu’uniquement les 150 ms de signal utile les plus représentatives. Vous pourrez utiliser
Ctrl+E pour zoomer sur la partie sélectionnée par la souris.
(e) une fois que subsiste environ 150 ms de signal utile , normaliser en amplitude le signal
à partir de l’onglet > Effets > Normaliser… et sélectionner Normaliser l’amplitude
maximale à : -1dB.
(f) Ecouter une dernière fois votre signal pour vérifier que le son est « intègre » et que vous
n’avez pas trop supprimé de signal. Enregistrer le fichier à l’aide de l’onglet > Fichier >
Exporter la sélection… en utilisant le format WAV signé 16 bits PCM et en précisant
votre répertoire de travail.
(g) recommencer les étapes (b) à (f) pour effectuer un autre enregistrement.
Note : Vous allez créer successivement un fichier représentant un ‘1’, puis un fichier
représentant un ‘2’, puis un fichier représentant un ‘3’, etc….et vous répéterez cette
-13-
opération 20 fois ce qui fera au total 3 y 20 60 fichiers dans la base d’apprentissage.
Vous appelez ces fichiers BDD_1_1.wav, BDD_2_1.wav, BDD_3_1.wav, …, BDD_1_20.wav,
BDD_2_20.wav, BDD_3_20.wav. Le premier chiffre désigne le type de chiffre prononcé et
le second chiffre, le numéro du fichier. De cette manière, si vous souhaitez ultérieurement
ajouter un autre chiffre à votre base de données, il sera aisé de le faire sans apporter de
gros changements dans vos programmes.
Par ailleurs, la théorie de l’apprentissage repose sur l’hypothèse que les données sont
indépendantes et identiquement distribuées (i.i.d.), tant au cours de l’apprentissage, qu’après,
en phase de test et de décision. C’est pourquoi, dans notre base d’apprentissage, nous
intégrons exactement le même nombre de fichiers de ‘1’, de ‘2’ et de ‘3’.
Ainsi, les descripteurs (ou attributs), donc les variables, peuvent être très nombreuses, et en
présence d’un nombre important de variables disponibles, nous devrions y trouver
l’information utile. Cependant dans ce contexte, où il n’y pas de tri, des variables bruitées ou
bien encore des variables « nuisibles » ou redondantes peuvent s’ajouter aux données. Or, des
analyses théoriques et des études expérimentales ont montré la faiblesse de nombreux
algorithmes en présence de variables non pertinentes ou redondantes1. Dans ce contexte, au-
delà des aspects de complexité de calcul et de capacité de stockage, la réduction de la
dimensionnalité peut permettre également d’améliorer les performances de classification. On
parle volontiers de l’expression « malédiction de la dimensionnalité » (curse of dimensionality)
ce qui indique que le nombre de dimensions de l’espace de description tend à nuire à la
recherche de régularités dans les données. Un cas extrême est celui dans lequel les descripteurs
sont bien plus nombreux que les exemples. On retrouve ce cas dans l’analyse du génome, les
textes ou images sur Internet.
La diminution de l’influence de ces difficultés peut être obtenue par une réduction de la
dimensionnalité de l’ensemble de données; en d’autres termes, des variables caractérisant le
problème sont éliminées. Cette réduction ne peut se faire au hasard, elle doit évidemment se
concentrer sur des variables inutiles et non pertinentes. Si nous intégrons des entrées qui n'ont
pas véritablement de lien avec la variable cible, nous pouvons par exemple détériorer sans nous
en rendre compte la performance du réseau de neurones. À l'inverse, un fichier de données
comportant un nombre insuffisant d'entrées pourra ne jamais être modélisé de façon précise
par un réseau de neurones. Cette tâche apparaît dans le schéma global d’un processus de
classification comme la phase de « sélection/extraction de variables ». Il s’agit d’une phase
importante et incontournable, car elle conditionne le processus de classification. Deux
approches, illustrées à la figure suivante, sont principalement utilisées pour réduire la
dimension :
• l’extraction de caractéristiques, qui vise à réduire la dimensionnalité de l’espace
d’entrée en appliquant une transformation (linéaire ou non linéaire) sur les variables
initiales, afin d’obtenir une nouvelle représentation plus synthétique;
• la sélection de variables parmi les variables d’entrée, afin de retenir les plus pertinentes
de manière à former un sous-ensemble de variables préservant l’information utile.
Parmi les méthodes les plus utilisées pour la combinaison des variables, on trouve
naturellement l’analyse en composantes principales (ACP) qui réalise une projection
orthogonale des observations dans un espace de plus faible dimension telle que la variance,
des observations projetées, est maximisée. Les caractéristiques de la nouvelle représentation
ne sont donc pas corrélées et permettent d’apporter une réponse aux problèmes des variables
1
des variables redondantes conduisent à obtenir la matrice de covariance de l’ensemble de données singulières,
la rendant non inversible.
-15-
redondantes. Cette solution est fournie par l’algorithme SVD (Singular Value
Decomposition) ou la décompositions spectrale de la matrice de covariance empirique sur un
échantillon centré. Des extensions de la méthode ACP connues sous le nom de l’ACP à noyau
(méthode proche des SVM) ont été proposées pour des transformations non-linéaires, où, les
observations de l’espace d’origine sont projetées par une transformation non linéaire dans
l’espace des représentations. La méthode kernel-PCA réalise une ACP dans cet espace.
NOTRE APPLICATION
numérisée à la fréquence 44.1kHz soit p ≅ 6615 échantillons qui constituent l’espace initial
Dans notre projet, chaque fichier de la base de données représente environ 150 ms de parole
D < , < 0, … , < k 1F à l’aide d’une DFT réalisée sur < k 8192 points.
o transformation fréquentielle du signal temporel ainsi fenêtré
1
la DFT.
•€•• |ƒ | , 0,1,2, … , < k 1
< k
• Conservation des 1 < k⁄2 premières composantes de la DSP •€••
composantes se déduisent par symétrie hermitienne car le signal < est à valeurs
(car les autres
dans ").
(a) Réaliser une double boucle for…end qui lit séquentiellement les 60 fichiers de la base
d’apprentissage
>> for numfich = 1:20
>> for typeson = 1:3
>> name=['BDD_’,num2str(typeson),‘_’,num2str(numfich),‘.wav'];
-16-
>> [data,fs,Nbits] = wavread(name);% lecture fichier wav
>> ...
>> end
>> end
(b) sur chaque fichier, effectuer les différentes opérations mentionnées ci-dessus
(estimation de la DSP, puis stockage des premières composantes). Stocker ces
(c) sauvegarder les paramètres nfft et Attributs dans un fichier de données au format
®matlab en utilisant l’instruction « save »
Dans le cas du signal de parole, il est fréquent de réduire l’espace de description en utilisant
une description du signal de parole selon des considérations psycho-acoustiques à l’aide des
MFCC (Mel Frequency Cepstrum Coefficients). Les opérations nécessaires pour obtenir une
š∈›
-17-
Une telle fonction Ψr–l est appelée l’oracle, la fonction cible car elle produit un risque minimal
irréductible ‹œ q min ‹•é‘’ Ψ ‹•é‘’ Ψr–l . Malheureusement, en général, la loi de
š∈›
probabilité de _ est inconnue si bien que le risque ‹ Ψ est incalculable et donc l’approche
optimale n’est donc pas réalisable. On considère alors un modèle (ou fonction) Ψ V, b pour
lequel le risque conditionnel :
‹ Ψ Œ6‖_ Ψ V, b ‖ |b8
demeure proche de celui de l’oracle. Comme la fonction de perte est quadratique (donc
l’hypersurface d’erreur est convexe), ce risque conditionnel est minimisé parle prédicteur de
Bayes obtenu selon :
” ‹ Ψ, ”
0⇒ Œ6‖_‖ |b8 ‖Ψ b ‖ 2Ψn b Œ6C|b8 0 ⇒ Ψr–l b Œ6_|b8
”Ψ ”Ψ
L’idée est alors d’estimer ce risque à l’aide d’une connaissance limitée du signal d’entrée b
donnée par un échantillon d’apprentissage u 4 b , _ … b m ,_ m 9, supposé
représentatif. La densité de probabilité jointe w , C est alors remplacée par la distribution
empirique wu 1⁄3 ∑m • b , _ ce qui conduit au risque empirique suivant :
‹€u Ψ Œ6‖_ Ψ V, b ‖ž |b ∈ u8
Œu 6‖_ Ψ V, b ‖ž 8
Attention, ceci est le risque réel sachant que x appartient à un sous-espace contraint par
des hypothèses
L’utilisation d’un échantillon d’apprentissage u est équivalent à travailler dans un sous-espace
d’hypothèses • ⊂ •, ce qui conduit à la définition d’une fonction cible dans • selon :
Ψ argmin ‹ Ψ
r–l
š∈¡
Par ailleurs, l’application d’une règle d’apprentissage sur l’échantillon u permet d’obtenir une
fonction prédite qui sera notée Ψ ¢ . La relation entre ces différentes notions s’exprime selon la
décomposition :
¢ ¤¤¥¤¤
‹£¤¤
Ψ ‹ Ψ¤¤¦
r–l ¢
‹£¤¤¤¤¥¤¤¤¤¦
Ψ ‹ Ψr–l ‹£¤
Ψ¤r–l
¤¤¤¥¤‹¤¤
Ψ¤r–l
¤¦
$%§è¨ ©$ ª«¨¬-$ $ªª$-ª ©M$¨®«¯°®«±² $ªª$-ª ©M°&&ª±%«¯°®«±²
Ψr–l dans ℋ. Le second terme, appelé erreur d’approximation, correspond au biais introduit
par le choix d’un espace d’hypothèses ℋ.
L’étude de l’erreur de prédiction obtenue à partir de l’échantillon d’apprentissage u conduit à
la relation suivante
‹ V Œ6‖_ Œ _|b
£¤¤¤¤¤¥¤ ‖ 8
¤¤¤¤¦ Œ u ¸¹Ψ V, b Ψr–l b ¹ º
£¤¤¤¤¤¤¤¤¥¤¤¤¤¤¤¤¤¦ Œ u ¸¹Ψ V, b Œu Ψ V, b ¹ º
£¤¤¤¤¤¤¤¤¤¥¤¤¤¤¤¤¤¤¤¦
Œ ‖´‖µ » ¼ ½ ¼s ¾¼••é '¼• ¼q¾‘
¶ª-«® ©$ ¯±©é·«¨°®«±²
• Var ` € a Œ € Œ` € a
hypothèses suffisantes les plus simples sont les plus vraisemblables. Par ailleurs, coller de trop
bruitées. Un modèle Ψ ¢ . pourra ainsi se révéler très performant sur la base d’apprentissage
près aux données d’apprentissage est une mauvaise idée car elles sont inévitablement
(le biais sera faible), mais lors de la phase de test, ce modèle se révèlera peu pertinent lorsqu’on
b ,_
sera en capacité d’apprendre sur la base d’apprentissage la relation existant entre les données
∈A ,m B
(donc réduire le biais suffisamment), mais qui conservera suffisamment de
-19-
l’algorithme ? Suffit-il de faire confiance au principe de minimisation du risque et de se fonder
sur la performance mesurée sur la base d’apprentissage? Il convient d’éviter le phénomène de
surapprentissage, (schématisé ci-dessous) qui correspond au cas où le risque empirique défini
par :
1 m
‹€u Ψ
ž
: ¹_ Â Ψ V, b  ¹ à HÄ b  , _  ∈Å
3
diminue au fur et à mesure que le système prend en compte davantage d’informations (soit par
d’apprentissage, cf. ci-dessous) tandis que le risque réel (évalué sur la base Æ de validation),
un accroissement du nombre d’exemples présentés, soit par une répétition des exemples
1
‹€Ç Ψ
¢ : ¹_  ¢ V, b  ¹ž à HÄ b  , _ Â
Ψ ∈Æ
p
d’abord décroissant, se met à augmenter après un certain stade.
Figure – Risque empirique mesuré sur les bases d’apprentissage et de test en fonction du nombre
de cycles d’apprentissage
1 Ð 2ÈÌ
∀Ì Í 0, ℙ PÏP : É Q Œ É Ï Ñ ÌQ Ò 2 exp Ô Õ.
È 1 Ð
∑ Ê Ã
È
Cette borne décroit très rapidement avec la valeur de È. En l’appliquant au risque empirique
‹€u Ψ et au risque réel et en supposant que la fonction de perte Ö . est à valeurs dans
l’intervalle 6Ã, Ê8, on a :
-20-
2ÈÌ
∀Ì Í 0, ℙ ׋€u Ψ ‹•é‘’ Ψ × Ñ Ì Ò 2 exp Ø Ù.
Ê Ã
On constate que cette borne décroît en fonction du nombre d’exemples È contenus dans la
base d’apprentissage. Quelle que soit la valeur de Ì, la différence entre risque empirique et
Vous allez créer successivement trois fichiers : l’un représentant un ‘1’, puis un fichier
représentant un ‘2’, puis un fichier représentant un ‘3’, etc….et vous répéterez cette
opération 5 fois pour constituer l’ensemble des fichiers de la base de test. Vous appelez
ces fichiers TEST_1_1.wav, TEST_2_1.wav, TEST_3_1.wav et ceci jusqu’aux derniers
fichiers TEST_1_5.wav, TEST_2_5.wav, TEST_3_5.wav.
Un problème fréquent est lié au fait que le nombre d’exemples disponibles pour constituer la
base d’apprentissage est souvent limité pour ne pas dire réduit. Plusieurs stratégies peuvent
alors être envisagées :
• utiliser toutes données d’apprentissage à la fois pour l’apprentissage et pour
l’estimation de la performance (i.e. le test). C’est la méthode de resubstitution qui
conduit souvent à du surapprentissage et qui est en général optimiste (i.e. conduit à
une valeur estimée de la performance qui sera plus faible que la valeur réelle). On dit
qu’il y a un biais.
-21-
• Pour éviter ce biais, on opère une distinction entre les données utilisées pour
de la valeur de ‹€Æ Ψ
¢ .
estimation ne dépend alors que du nombre d’exemples de l’échantillon de validation et
Cependant, il est fréquent que le nombre total de données (card Å card Æ ) disponibles
pour constituer les échantillons d’apprentissage et de test soit trop faible pour envisager une
card Å ≫ card Æ , mais ne pas pouvoir l’évaluer avec une confiance suffisante à l’aide de
telle approche si bien qu’il faut choisir entre (i) apprendre suffisamment le modèle, lorsque
‹€u Ψ
¢ soit suffisamment faible car card Å ≪ card Æ . Une solution est alors d’utiliser une
l’échantillon de validation, ou (ii) ne pas être capable d’apprendre un modèle dont le risque
taille égale (à 7/ . On utilise alors l’un de ces plis (disons le ième) pour effectuer l’étape de
On divise alors l’ensemble des données disponibles suivant k plis (ou sous-échantillons) de
Après avoir répété cette opération k-fois, le risque moyen est alors obtenu selon :
1 5
¢
‹€Ç Ψ : ‹€Ç `Ψ
¢ a
-22-
Cette méthode fournit une estimation non biaisée du risque réel. En pratique, on choisit 80%
Une question importante demeure: quelle hypothèse apprise (i.e. quel modèle Ψ ¢ , E ∈ A1, B)
doit-on finalement utiliser ? Le modèle final est alors obtenu en apprenant un nouveau modèle
en utilisant la totalité des informations disponibles soit donc la totalité des k-plis.
donc utilisé pour effectuer la validation sur chaque pli, et cette validation est donc répétée 7
d’apprentissage-validation est égal au nombre de ses éléments N. Ainsi, un seul exemple est
1
l’estimateur naturel :
q
àä : â ƒ .
<
La méthode jackknife consiste à travailler avec l’estimateur suivant àäq q
∑å â ƒ
auquel l’observation < 1 a été enlevée. On calcule les pseudo-valeurs correspondant à la
r
-23-
différence entre les 2 estimateurs précédents àä∗ <àä < 1 àäq . L’estimateur
jackknife de à est alors donné par moyenne empirique des estimations partielles (i.e. pseudo
valeurs) donnée par àä∗ ∑q àä∗ .
q
METHODE DU BOOTSTRAP
Nous venons de voir que l’estimation de l’erreur de généralisation peut être obtenue par la
technique « leave-one-out ». Le bootstrap permet également une estimation de cette erreur.
Le principe est le même : comme le jackknife, il s’agit d’une méthode dite de ré-échantillonnage
qui procède par simulation d’échantillons et qui ne nécessite aucune hypothèse a priori sur la
loi de probabilité sous-jacente, d’où sa généralité et sa puissance. Appliquée à la régression, le
bootstrap permet d’estimer les caractéristiques statiques de l’écart entre l’erreur
d’apprentissage et l’erreur de généralisation. L’approche est particulièrement adaptée aux
problèmes pour lesquels les échantillons d’exemples sont de petite taille.
1
2- calcul de la statistique (ici la moyenne empirique) à partir de l'échantillon bootstrap :
5
àä∗ Ê : â∗ ƒ
Estimer ensuite la valeur moyenne et l’écart-type obtenus sur les <è k-échantillons simulés :
-24-
1 qê 1 qê
àä∗ : àä∗ Ê et ìí∗ : àä∗ Ê àä ∗
<è » <è 1 »
L’intérêt du bootstrap pour les réseaux de neurones réside dans la capacité à automatiser la
l’écart entre l’erreur moyenne d’apprentissage calculée sur la base bootstrapée et l’erreur
généralisation ‹€ò Ψ¢ .
Désignons par Ì»,∗ l’erreur moyenne d’apprentissage Œèó,∗ 6â ∗ b 8 du réseau entraîné sur la
Ê èœ‘ base bootstrapée é»,∗ et par Ì l’erreur moyenne du même réseau Œè 6â b 8 calculée sur
la totalité de la base é. On étudie alors la statistique de l’erreur •»,∗ Ì»,∗ Ì qui peut alors
être considérée comme une variable aléatoire représentative du phénomène de sur-
apprentissage. Cet écart peut être considéré comme le biais apparaissant sur l’estimation de
l’erreur de généralisation par l’erreur d’apprentissage. La connaissance des statistiques (biais
et variance) de cet écart peut donc servir à stopper la phase d’apprentissage fin d’éviter le
1 qê 1 qê
•̅ : •»,∗ et ìíõö : •»,∗ •̅
<è » <è 1 »
d’entrée b k dont on connaît la valeur attendue en sortie du réseau _ k . Par exemple, dans
le cas d’une problématique de classification de plusieurs unités vocales élémentaires (« un »,
« deux », « trois »,..), on présentera en entrée du réseau les attributs relatifs aux unités vocales
-25-
élémentaires et l’on voudra que les sorties à valeurs binaires (0 ou 1) soient activées à 1 lorsque
l’unité vocale présente en entrée correspond à une classe donnée (et soient inactives dans le
cas contraire). Si l’on souhaite ainsi discriminer les 9 unités vocales « un », « deux »,…, « neuf »
et bien on choisira 9 sorties sur la couche de sortie.
En supposant que la couche de sortie est de dimension prsl , nous considèrerons une fonction
de coût donnée par le risque empirique suivant :
1 1
G k : ¹H k ¹ avec l′erreur Hœ k Cœ k Cíœ k
ùúû
prsl œ 2 œ
où les DCíœ k , ∈ A0, prsl 1BF correspondent aux sorties du réseau de neurones lorsque le
vecteur k (décrivant les attributs su signal) est présenté à l’entrée du réseau, et les
DCœ k , ý ∈ A0, prsl 1BF sont les valeurs désirées en sortie. Dans le cas où l’on a prsl 2
neurones sur la couche de sortie, l’ensemble du système d’apprentissage peut être
schématisé suivant :
Cas du perceptron simple : Comment trouver les poids du réseau pour bien
approcher les données ?
Comme vu précédemment au paragraphe 2.3, la fonction de coût associée au perceptron (une
seule sortie, pas de couche cachée) est une fonction multidimensionnelle des N poids des
connexions :
G ∶ " STTTTTTTTTTTTTTU "
,
1
V W ⋮ Y⟼G V [C P: ,5 5 Q\
2 5
,
Dans la phase d’apprentissage, les poids des connexions vont également varier dans le temps,
on a donc :
G ∶ " STTTTTTTTTTTTTTU "
k
, 1
V k Ô ⋮ Õ ⟼ G V ,k [C k P: k k Q\
k 2 5
,5 5
,
-26-
chaque itération k les poids 4 ,5 k , ∈ A0, 7 1B9 du neurone n°j selon :
On souhaite trouver les poids optimaux de manière adaptative c’est-à-dire en incrémentant à
, k 1 , k ∆ ,
Ô ⋮ Õ Ô ⋮ Õ Ô ⋮ Õ
, k 1 , k ∆ , pour k 0,1,2, …
⇔ V k 1 V k ∆V
lim ∆V , 0 et 〈 , 〉 ∑5
¹∆V ¹→
On cherche à minimiser la fonction coût G soit, entre les instants t et t+1, à faire en sorte que
la différence
G `V k 1 a G `V k a 〈∆V , G `V k a〉 ∆V ,5
lim G `V k 1 a G `V k a 〈∆V , G `V k a〉
¹∆ , ¹→
-27-
Cette différence peut encore s’exprimer en fonction du produit scalaire entre les 2 vecteurs
〈∆V , G `V k a〉 et l’on sait que le produit scalaire sera minimisé lorsque les 2 vecteurs seront
colinéaires et en opposition soit :
∆V G `V k a avec ∈ "#∗
Il faut donc que l’incrément soit un vecteur opposé au gradient de la fonction de coût.
L’algorithme d’adaptation s’obtient à l’aide des 2 formules précédemment encadrées :
V k 1 V k G `V k a pour k 0,1,2, …
Cet algorithme est appelé algorithme du gradient, ou bien encore algorithme de descente
maximale (en raison de la décroissance maximale de la fonction de côut). La constante positive
est appelée le pas de l’algorithme, ou bien encore le taux d’apprentissage. Dans le contexte
des réseaux de neurones, cet algorithme est encore appelé algorithme de rétropropagation
des erreurs (ou backpropagation) et son fonctionnement est décrit au sein de l’Annexe B. Il est
basé sur 2 étapes majeures : (i) l’inférence où l’on calcule la sortie correspondant à chaque
exemple, et (ii) la retro-propagation où l’on calcule l’erreur entre sortie désirée et sortie
calculée, puis l’on propage cette erreur pour calculer le gradient des poids du réseau.
-28-
(b) calcul de de l’erreur (d) retro-propagation de l’erreur (couche sortie)
En utilisant directement un vecteur x_input, les calculs seront plus efficaces. Le vérifier
avec les instructions ®matlab « tic » et « toc »
>> tic
>> calcul = ... % on fait le calcul n°1 indiqué au sein de la formule (2)
>>
>> for neurone = 1 : Lcachee
>> PoidsCaches( :,neurone)= ...*gprime(neurone)*x_input(:)
>> end
>> toc
Avant de vous lancer dans la programmation, jetez un petit coup d’œil à la page de Brian
Dolhansky (http://briandolhansky.com) de l’équipe Applied Machine Learning (AML) chez
Facebook. Consultez notamment sur son blog, la page Artificial Neural Networks: Matrix
Form (Part 5) afin de vous convaincre de travailler avec les produits matriciels. En effet, en
introduisant les vecteurs/matrices suivantes (cf. notations de l’annexe B) :
l
k Ä , "
b W ⋮ Y, k Ô ⋮ Õ, W ⋮
Y, W ⋮ Y,! W ⋮ Y
£¤¤¥¤
¤¦ l
£¤¤¤¤¥¤ k £¤Ä¤¥¤¤¦ £¤¤¤¥¤
餤¦ "
£¤¤¤¥¤é¤
¤¦
é ¤¤¤¦ ,
y y y é y é y
é
Vl k ,œ & Cí C
# k Ô ⋮ Õ , V$ W ⋮ Y,% W ⋮ '
Y,_ Ô ⋮ Õ,_ W ⋮ Y
V l
£¤¤¤¥¤¤¤¦k £¤¤¤¤¥¤
é ¤¤¤¦
,œ £¤&¤¥¤
ùúû ¤¦ Cí¤¥¤
£¤ ùúû ¤¦
C¤¥¤
£¤ ùúû ¤¦
ùúû
-29-
PMP avec adaptation avec l’algo. du gradient stochastique
En utilisant les notations vecteurs/matrices suivantes, les opérations effectuées au sein
d’un perceptron multicouches (PMP) possèdant une seule couche cachée s’écrivent de
manière compacte suivant :
• Propagation « avant/forward » couche cachée:
k b
! (
• Propagation « avant/forward » couche sortie:
% # k !
' ) %
_
* _ _ '
• Propagation « arrière/backward » couche sortie:
+ * ⨀)′ %
•
# k # k + !. "¤ " ¤é¤¤¦
-
1 + !. Ô ⋮ Õ £¤…¤¤¥¤
•
avec
£¤¥¤¦
ùúû
ùúû y é
ùúû y
•
+ # k + ⨀(′
Propagation « arrière/backward » couche cachée:
¾¼¾/é‘
-
k 1 k + ¾¼¾/é‘ b.
ùúû
Réaliser une boucle qui lit séquentiellement l’ensemble des attributs de la base
dimension 60 y 4097). Pour chaque exemple (= chaque fichier « son »), un total de 1
d’apprentissage (stockés préalablement dans le tableau bidimensionnel Attributs de
7 k⁄2 attributs seront présentés en entrée du réseau. Chaque exemple sera numéroté par
un paramètre k :
(1) Ecrire l’algorithme de backpropagation décrit par les équations (1) et (2) vues
(3) Pour chaque exemple n°k de la BDD d’apprentissage présenté en entrée du réseau, vous
devrez calculer les valeurs `Cíœ k a
œ , ,
sur la couche de sortie du réseau, puis ensuite
(4) Une fois que tous les exemples de la base d’apprentissage ont été présentés à l’entrée de
(5) continuer l’apprentissage du réseau jusqu’à ce que le critère d’arrêt 1‰È < Ì soit atteint
(on choisira Ì de l’ordre de 10 3). On devra alors alors voir l’affichage de l’EQM diminuer
à chaque fois que l’on aura présenté l’ensemble des exemples de la BDD d’apprentissage.
(6) L’objectif de cette exercice n°4 est simplement de faire converger l’algorithme de mise
à jour des pondérations du réseau de neurones, c’est-à-dire d’observer que la valeur
affichée de l’ 1‰È diminue au fur et à mesure de la présentation des exemples de la base
d’apprentissage.
o Assuming that (i) the training set has been normalized and (ii) the symmetric
sigmoid has been used then…
zero and standard deviation ì 1⁄√ý where ý is the fan-in (the number of
o …. weights should be randomly drawn from a uniform distribution with mean
Algorithme AdaGrad
L’algorithme AdaGrad (Adaptive Gradient) proposé en 2011 a montré une certaine
efficacité dans plusieurs applications de classification par réseaux de neurones. AdaGrad
de coût obtenu à l’instant k, alors le pas d’apprentissage est variable au cours du temps et,
et il est donné pour chaque poids par :
l
5
pour 1, … , p
1 9l
5
9l représente l’accumulation des carrés des gradients estimés par le passé pour :
avec la valeur initiale du pas d’apprentissage (commun à tous les poids du réseau) et
5
1,2, … , k
k
9l 5 : ¸ V
5
G `V : , b ; _ aº
: 1
V k 1 ⟵ V k 9l 5
5
l
Ω Ψ
L’approche par régularisation consiste à introduire un terme de pénalité sur une norme
au sein de la fonction de coût à optimiser. On obtient ainsi une nouvelle fonction
objectif définie par :
-33-
‹′ Ψ ‹ Ψ • Ω Ψ
Le paramètre • ∈ " ∗#
est un hyperparamètre qui pondère la contribution relative du terme
de pénalité.
Remarque importante : cette pénalité n’est appliquée dans les réseaux de neurones
qu’uniquement pour les poids du réseau de neurones qui participent à la représentation affine,
régularisation. Il est également envisageable de définir un paramètre spécifique > pour chaque
c’est-à-dire que les poids des biais ne sont pas pénalisés à l’aide de cette approche de
couche du réseau, mais ceci peut complexifier la recherche des valeurs optimales des
hyperparamètres.
L’une des pénalités les plus utilisées considère une régularisation sur la norme Ö pour laquelle
Régularisation de Tikhonov (encore nommée « Ridge regression » ou « Weight decay ») :
1 • V k V G `V k a
?
linéaire avec un critère d’erreur quadratique moyenne minimale), ainsi on a :
@ V1 V1
wk ò
‹ Ψ ‹ Ψr–l V1 V1
wk
ž
avec @ représentant la matrice hessienne, définie positive, de ‹ relativement aux poids V du
•
neurone n°j. Si maintenant on ajoute le terme de pénalisation, on obtient
‹′ Ψ ‹ Ψ ¹V 1 ¹
2
@ V1 V1 @ • A 1 @ V1
Et donc la solution optimale est obtenue pour la nullité du gradient soit :
• V1 0 ⇒ V1
wk wk
La matrice hessienne étant définie positive, elle peut être décomposée suivant @ BCBò , et
donc on peut re-écrire l’expression précédente selon :
V
M r–l
B £¤
C ¤¤¤¥¤ C Bò Vr–l
• A¤¤¤¦
œ¼l• ¾‘ D ¼Erq¼’‘
Lorsque • ⟶ 0, alors VM r–l ⟶ Vr–l et l’on retrouve la convergence vers la solution optimale
minimisant ‹ Ψ . Dans le cas contraire, la présence de l’hyperparamètre • permet d’éviter des
problèmes de singularité de la matrice C. De plus, les vecteurs propres de @ contenus dans la
matrice B sont pondérés par un facteur > ⁄ > • . Ainsi, seules les directions pour lesquelles
la valeur de l’hyperparamètre • ≪ > sont conservées dans le choix de la direction de descente
de l’algorithme du gradient, les autres directions pour lesquelles • ≫ > étant
automatiquement supprimées car elles ne contribuent pas significativement à la diminution de
-34-
conduit à un modèle Ψ parcimonieux.
la fonction de coût. Certains coefficients seront donc automatiquement forcés à zéro ce qui
Ω Ψ
régularisation. On trouve
F
notamment des
¹V1 ¹F où la norme ÖF est définie
õ
F
⁄F
par ÖF ∑q E F ce qui
conduit au problème suivant :
•
G min ‹′ Ψ
q
min P‹ Ψ : E FQ
š š H
A l’aide des multiplicateurs de Lagrange, on montre que cette dernière formulation est
équivalente à :
min ‹ Ψ
G I
š
. Ä. H. :
q
F
E Ò
fonction de la valeur du paramètre H. Dans le cas d’une pénalisation de la norme Ö (i.e. H 1),
Dans le cas bidimensionnel, on obtient les différentes hypersurfaces d’erreurs suivantes en
l’algorithme ainsi obtenu est dénommé algorithme lasso (Least Absolute Shrinkage and
Selection Operator).
paramètres du modèle Ψ . conduisant à une plus faible erreur sur la base de validation (et
données de validation se met à augmenter. Il est donc possible de trouver un jeu des
-35-
donc, sans doute, sur la base de test) en revenant au réglage de paramètres assurant une valeur
minimale de l’erreur sur la base de validation. Cette procédure est spécifiée ci-dessous :
Algorithme Early-Stopping
Soit < le nombre d’itérations entre 2 phases d’évaluations successives.
Soit w le paramètre correspondant au nombre de phases de validation où l’erreur se
J⟵J
E⟵0
1⟵0
⟵ ∞
Jr–l ⟵ J
E∗ ⟵ E
Tant que 1 < w faire
Mettre à jour J en effectuant < itérations de l’algorithme d’apprentissage
E⟵E <
M
⟵ 1""H " ÈH "éH " éà H LÃÖE”ÃkE < J
Si M < alors
1⟵0
Jr–l ⟵ J
E∗ ⟵ E
⟵ ′
1⟵1 1
Sinon
Fin Si
est E ∗
Algorithme momentum
1
⟵
œ
P : G `V k , b ; _ aQ
ý V
⟵ <
V k 1 ⟵ V k
Le paramètre 0 < < Ò 1 est fixé à des valeurs de l’ordre de 0.9 ou 0.99. La première expression
de l’algorithme correspond à une moyenne temporelle du vecteur gradient au cours du temps.
1⁄ 1 < & . En début de phase d’apprentissage la valeur est fixée à sa plus faible valeur de
proche de 0.9 ou au-delà. Le paramètre < doit être analysé en fonction de 1⁄ 1 < . Pour <
0.5 jusqu’à ce que la convergence initiale soit stabilisée et ensuite cette valeur est augmentée
0.99 , la vitesse de l’algorithme est alors multipliée par un facteur 1⁄ 1 < 10 par rapport
à l’algorithme du gradient stochastique standard.
• Hinton, G. E., Osindero, S. and Teh, Y., A fast learning algorithm for deep belief
nets Neural Computation 18:1527-1554, 2006
• Yoshua Bengio, Pascal Lamblin, Dan Popovici and Hugo Larochelle, Greedy Layer-Wise
Training of Deep Networks, in J. Platt et al. (Eds), Advances in Neural Information
Processing Systems 19 (NIPS 2006), pp. 153-160, MIT Press, 2007
• Marc’Aurelio Ranzato, Christopher Poultney, Sumit Chopra and Yann LeCun Efficient
Learning of Sparse Representations with an Energy-Based Model, in J. Platt et al.
(Eds), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press, 2007
Les principes-clés sur lesquels reposent ces techniques sont les suivants . Une introduction à ces
techniques est donnée dans les annexes ci-après (auto-encodeurs, réseaux convolutionnels) :
-37-
• Un apprentissage non supervisé de représentations est utilisé pour pré-entraîner
chaque couche.
• L’apprentissage non supervisé se fait une couche à la fois, chaque couche entraînée
après la couche du dessous. La représentation apprise par une couche est utilisée
comme entrée par la couche suivante (du dessus).
• L’apprentissage supervisé est utilisé pour raffiner toutes les couches pré-entraînées
(ainsi que la couche de sortie, et éventuellement d’autres couches supplémentaires).
• Les réseaux actuels…Deep-Neural Networks (DNN)
Pour poursuivre :
-38-
Annexe A
Paramétrisation
des données d’entrée
__________________________________________________________
La parole apparait comme une variation de la pression de l’air dans l’appareil phonatoire
humain. Les différents traits acoustiques du signal de parole sont notamment : sa fréquence
fondamentale, son énergie, son spectre. . . Chacun de ces éléments étant lui-même
intimement lié à une grandeur perceptible : pitch, intensité, timbre. . .
L’objectif d’un système de paramétrisation « perceptuel » consiste à extraire les informations
caractéristiques du signal de parole en essayant de procéder de la même façon que fonctionne
l’oreille humaine (i.e. de « mimiquer »). Un tel système utilise en entrée un signal à temps
discret et produit en sortie un vecteur de paramètres (appelé indifféremment vecteur
acoustique ou encore vecteur d’observations).
-39-
Les vecteurs de paramètres doivent être pertinents (précis, de taille restreinte et sans
redondance), discriminants (pour faciliter la reconnaissance) et robustes (aux différents bruits
et/ou locuteurs).
Il existe un certain nombre d’approches pour la paramétrisation dont les plus couramment
utilisées dans la littérature sont :
• paramétrisation basée sur un modèle de production de la parole ;
• paramétrisation basée sur une analyse dans le domaine cepstral.
O 5Ɣ qn
ƒ ∆• : < N‘ H
q
fréquence est « discrétisée » aux fréquences D ∆•, ∈ A0, 7 1BF. Ainsi l’analyse
Cette dernière expression représente la Transformée de Fourier Discrète (TFD) car l’analyse en
composante fréquentielle d’analyse possède la même largeur de bande de ∆• aussi bien pour
spectrale ainsi obtenue correspond à une analyse sur une échelle linéaire car chaque
Note : en pratique, on utilise la version « rapide » de la TFD c’est à dire la TFR (pour
-40-
qPPl 5 q
O
ƒ ∆• : < N‘ H qPPl
q
Echelle logarithmique
-41-
Figure 3 – Représentation d’un banc de filtres mél
Ceci est à l’origine de la notion de largeur de bande critique. La largeur de bande critique
désigne pour une fréquence centrale donnée, la largeur de la bande passante du filtre auditif
correspondant selon la terminologie introduite par Zwicker. Les concepts de bandes critiques
et de filtres auditifs sont de plus en plus utilisés dans de nombreux champs du traitement du
signal audio notamment au sein des codeurs audio perceptifs employés dans les récents
formats de compression MPEG, tels que le format MPEG1-layer 3 (pour MP3), ou bien le format
MPEG2-AAC (pour AAC). Sur la figure suivante, on observe que la représentation mel permet
d’obtenir une meilleure représentation des basses fréquences par rapport aux hautes
fréquences.
Figure 4 – Représentation fréquentielle du même signal de parole suivant une échelle logarithmique
(en ordonnée) et, en abscisse, suivant une échelle linéaire (gauche) ou une échelle mel (droite)
Intuitivement, l’utilisation de l’échelle mel revient à utiliser une échelle linéaire en basse
fréquence, puis logarithmique en haute fréquence. La relation existant entre ces 2 échelles est :
ý È 1127 Ö 1 ⁄700 ⇔ È ý 700 H w ý⁄1127 1
Les filtres triangulaires utilisés dans le domaine mel sont donnés par :
L’utilisation d’une échelle logarithmique sur les abscisses (c’est-à-dire sur les fréquences)
-42-
1 Q 1
1 0 1 ý cos W
- R
ý ÄÄ < : ý P< QY < 0,1, . . , 7œ‘’ 1
2 œ 7œ‘’ 2
où l’ensemble des D1 ý , ý ∈ A0, 7œ‘’ 1BF représente l’énergie des signaux disponibles en
sortie de chaque filtre mél. Les traitements nécessaires afin d’obtenir les coefficients MFCC
sont bien décrits sur la page Web suivante : « MFCC tutorial ».
On peut observer sur la figure 5 que les différentes unités vocales peuvent être aisément
caractérisées à partir de l’évolution temporelle des premiers (ici 3) coefficients mel.
Figure 5- (gauche) signal temporel et (droit) évolution temporelle des 3 coefficients mfcc
judicieux d’utiliser la Transformée inverse en Cosinus Discret (DCT pour Discrete Cosine
Transform). Elle permet de bien « compresser » l’information et d’obtenir des
coefficients (appelés MFCC) décorrélés entre eux.
-43-
IDCT( )
Figure 6- Etapes nécessaires pour l’obtention des coefficients mel (ou cepstraux)
-44-
Annexe B
Le perceptron multicouche :
calcul du vecteur gradient
__________________________________________________________
sortie et la couche cachée. Ces fonctions sont supposées différentiables indéfiniment (cf.
paragraphe 2.1).
Afin de clarifier les notations considérons les connexions entre les valeurs en entrée, le
neurone n°j sur la couche cachée ainsi que le neurone n°m sur la couche de sortie. On a donc
les éléments suivants :
-45-
Figure : Schéma de base pour le calcul de la mise à jour des poids de sortie et ceux de la couche
cachée
T ,œ T ,œ prsl œ 2 œ
1 1 T
: H
ùúû
prsl œ 2 T ,œ œ
1 T Hœ
: Hœ
ùúû
prsl œ T ,œ
1 T Cœ Cíœ
: Hœ
ùúû
prsl œ T ,œ
1 T Cíœ
: Hœ
ùúû
prsl œ T ,œ
1 T &œ
: Hœ
ùúû
prsl œ T ,œ
1 T &œ
: Hœ &œ
ùúû
M
prsl œ T ,œ
-46-
1
Hœ M
&œ "
prsl
U-
Car on a : `∑ é
,œ " a •œ,œ "
( ,- ( ,-
T G 1
⇒ Hœ M
&œ "
T ,œ prsl
et donc l’équation de mise à jour des poids de la couche de sortie est donnée par :
on obtient l′ équation ∶ 1
∀1 1,0, … , p¾¼¾/é‘ 1
k 1 k •œ "
rsl
,œ ,œ
prsl ∀ý 0,1, … , prsl 1
T G T 1 1
P : H Q
ùúû
prsl œ 2 TÄ5 , œ
1 T Hœ
: Hœ
ùúû
prsl œ TÄ5 ,
1 T Cœ Cíœ
: Hœ
ùúû
prsl œ TÄ5 ,
T G 1 T Cíœ
⇒ : Hœ
ùúû
Or on peut écrire (en suivant bien attentivement les différentes étapes sur la figure
-47-
T
M
&œ ,œ
TÄ5
T
,
M
&œ ,œ
M
TÄ5 ,
T Cíœ
⇒ M
&œ ,œ
M
TÄ5 , 5
'(
∑5
Car on a : ¾7 ,( ¾7 ,(
Ä5, 5 • , 5
et donc l’équation de mise à jour des poids de la couche cachée est donnée par :
En notant ∶ • P: •œrsl ,œ Q
ùúû
¾¼¾/é‘ M
£¤¤¤¤¤¤¥¤¤¤¤¤¤¦
œ
¾¼¾’s’ q° à ¾¼’¾s’‘• à –¼•l
on obtient l équation ∶
′ 2
∀1 0,1, … , p¾¼¾/é‘ 1
Ä5, k 1 Ä5, k 5 •
¾¼¾/é‘
prsl ∀ 1,0, … , p q 1
numérotées de 2,3, … , 7 (alors qu’ici nous n’avons qu’une unique couche cachée), l’algorithme
Note : pour un réseau de neurones plus important comportant plusieurs couches cachées
de mise des poids de chaque couche cachée <°Ö à partir des couches <° Ö 1 , Ö 2 , … , 7
est donné par les relations récursives suivantes :
En notant ∶ •
ùú R[0
¾rs¾/‘ ’ M
Ø: •œ ,œ Ù
¾rs¾/‘ ’#
£¤¤¤¤¤¤¤¤¤¤¤¥¤¤¤¤¤¤¤¤¤¤¤¦
œ
¾¼¾’s’ q° à ¾¼’¾s’‘• à –¼•l
on obtient l équation ∶
′
∀1 0,1, … , p ¾rs¾/‘ ’ 1
Ä5, k 1 Ä5, k \5 •
¾rs¾/‘ ’
prsl ∀ 1,0, … , p ¾rs¾/‘ ’ 1
où \5 5∈] , ùú R 0 ^
représente les données n entrée de la couche cachée <°Ö soit donc celles
en sortie de la couche cachée <° Ö 1 .
-48-
Annexe C
Evaluation de la précision
de l’estimation
Supposons que l’échantillon de test _ D b , _ ∈ j y i, E ∈ A0, <n 1BF comporte <n
__________________________________________________________
classification. Supposons que le nombre réel d’erreur (i.e. le risque réel) soit w, alors, <‘ suit
une loi Binomiale de paramètres w, <n soit :
ℙ X
qa !
<‘ w q 1 w qa q
Œ ƒ w<n , var ƒ w 1 w <n
–! qa – !
et on a
Asymptotiquement lorsque le nombre <n tend vers l’infini, la loi Binomiale tend vers une loi de
Poisson. Cependant, convenablement normalisée, la loi c
ã qa –
dqa – –
tend
asymptotiquement vers une loi normale centrée réduite (théorème de Moivre-Laplace). Donc :
#h
ƒ <n w 1 ç
C f Ò çÙ g
sµ
lim ℙ Øf H
” erf P Q
qa ⟶#ð d<n w 1 w √2Q √2
h
ç
C
Soit encore :
lim ℙ `ƒ ∈ ¸Œ ƒ çd<n w 1 w ,Œ ƒ çd<n w 1 w ºa erf P Q
qa ⟶#ð √2
On a ainsi pour ç 1.96 on obtient alors C 0.95.
ADAPTATION DU RAISONNEMENT
Supposons que l’on soit maintenant intéressé, non pas par le nombre <‘ d’erreurs de
classification, mais par le taux d’erreur k‘ <‘ ⁄<n alors la variable aléatoire j ƒ⁄<n va
également suivre une loi Binomiale de valeur moyenne Œ ƒ w et de variance var j
k –
w 1 w ⁄<n . Asymptotiquement, la variable aléatoire normalisée
⁄ d– – qa
tend vers une loi
normale et on a :
w 1 w w 1 w ç
C lim ℙ Ôj ∈ lŒ j çm ,Œ j çm nÕ erf P Q
qa ⟶#ð <n <n √2
risque réel :
q <‘ <
`1 < ‘ a <
<‘
`1 < ‘ au
<
p <‘ n t
çr çr
< <
\ p< , t
n n ‘ n
<n <n <n
p n t
o s
-49-
Annexe D
La fonction d’erreur
__________________________________________________________
La fonction d'erreur de la somme des carrés s'utilise essentiellement dans les problématiques
de régression mais elle peut également s'utiliser pour des tâches de classification. Toutefois,
pour réaliser une véritable classification par les réseaux de neurones, il est préférable d’utiliser
ensemble d’exemples j Db , E ∈ A0, < 1BF tirés indépendamment d’une densité de
une approche basée sur le principe du maximum de vraisemblance. On considère alors un
JÐ argmax wœrD‘’ b; J
maximum de vraisemblance :
wœrD‘’ b ; J
q
argmax v
J
Après application de l’opérateur log . , nous obtenons :
JÐ wœrD‘’ b; J
q
argmax :
J
Soit encore après application d’un facteur d’échelle 1⁄<, nous pouvons exprimer le critère
comme l’espérance évaluée sur la loi empirique ŵD¼l¼ définie par les données d’apprentissage :
JÐ argmax Œ•,x~–íy û log wœrD‘’ b; J
J
Ou encore :
JÐ argmin Œ•,x~–íy û log wœrD‘’ b; J
J
Ce critère est souvent nommé maximisation de l’entropie croisée entre la loi empirique ŵD¼l¼
définie par les données d’apprentissage et la loi définissant le modèle wœrD‘’ .
LIEN AVEC LA MINIMISATION DE L’EQM
Cette fonction de coût dépend du modèle utilisé. Par exemple, pour C'est grâce à cette
fonction d'erreur combinée à la fonction d'activation des sorties softmax que nous pouvons
interpréter les sorties d'un réseau de neurones sous la forme de probabilités d'appartenance
des individus à une classe.
La fonction d'erreur d'entropie croisée est donnée par la formule suivante :
1 Cíœ k
G k : Cœ k ln Ø Ù
ùúû
prsl œ Cœ k
-50-
Annexe E
Deep-learning & Auto-encodeurs
__________________________________________________________
Avant 2006, on ne savait pas comment entraîner une architecture profonde: l’optimisation
itérative convergeait vers des minimums locaux de piètre qualité. Les réseaux de neurones à
plus de deux couches cachées initialisés aléatoirement donnent donc des résultats pires que
les réseaux peu profonds. En 2006, (Hinton, Osindero, & Teh, 2006 (téléchargement ici)) ont
proposé un algorithme (Deep Belief Networks) qui fonctionne bien, suivi la même année de
(Bengio, Lamblin, Popovici, & Larochelle, 2007 (téléchargement ici)) et (Ranzato, Poultney,
Chopra, & LeCun, 2007 (téléchargement ici)) : la clé de ces nouveaux algorithmes reposent sur
la notion d’auto-encodeurs.
Un auto-encodeur (encore nommé auto-associateur) est un réseau de neurones dont les
paramètres ont été entraînés afin que les sorties reproduisent l’entrée. Le principe général est
le suivant : les neurones de la couche cachée et de la couche de sortie peuvent utiliser des
utilisées sont l’erreur quadratique moyenne (EQM) z b, b ' Œ ‖b b '‖ (pour des données
fonctions d’activation de type sigmoïde ou linéaires. Les fonctions de pertes couramment
en entreés quelconques réelles) ou l’entropie croisée (pour des données en entrées binaires).
mêmes exemples j Db , E ∈ A0, < 1BF sont présentés à la fois en entrée et en sortie du
Les poids d’un tel réseau sont appris à l’aide d’un algorithme de retro-propagation auquel les
réseau. Le réseau intègre également des neurones de biais sur les couches cachées et la couche
de sortie.
sur la couche cachée un code | b sigm ÊP }b qui est souvent utilisé pour obtenir
reconstruire les données d’origine à partir d’une seconde fonction : { → j telle que |
des représentations latentes capables de capturer suffisamment d’informations pour
-51-
fonction identité, des contraintes additionnelles sont imposée sur la couche cachée. On
distingue :
• Les représentations sous-déterminées : elles sont obtenues en limitant le nombre de
neurones sur la couche cachée. Ainsi, l’auto-encodeur va apprendre une représentation
compressée des données en exploitant les corrélations entre les données. Dans le cas d’un
réseau linéaire utilisant l’EQM comme fonction de coût, la transformation réalisée par
l’encodeur réalise alors une transformation similaire à l’analyse par composantes
principales (ACP) c’est-à-dire une projection sur un s.e.v. maximisant la variance de la
représentation (à ceci près que pour un auto-encodeur, la propriété d’orthogonalité est
perdue).
• Les représentations sur-déterminées (ou over-complete): Plus récemment, ont été
proposées des représentations pour lesquelles la couche cachée comporte un nombre bien
plus important de neurones que le nombre d’entrées du réseau.
A ce stade, il faut retenir qu’un auto-encodeur correspond à une famille particulière de réseaux
de neurones à apprentissage non supervisé qui permet de déterminer les caractéristiques
discriminantes du signal d’entrée. Il s’agit donc d’un outil particulièrement intéressant !
contraintes ont été proposées à la fonction • ou sur les unités de la couche cachée telles que :
beaucoup d’attention. Afin de déterminer ces représentations sur-déterminées, différentes
de rechercher une fonction • qui soit robuste aux légères variations des valeurs
d'entrées.
INITIALISATION DES COUCHES CACHEES DES RESEAUX DE NEURONE S PROFONDS
Les réseaux de neurones sont connus pour être sensibles au choix des paramètres
d’apprentissage comme le pas d’apprentissage (“learning rate”) mais aussi à l’initialisation des
poids du réseau qui est en général effectuée de manière aléatoire. Dans ce cas l’algorithme de
propagation arrière utilisé pour l’estimation des poids du réseau de neurones peut converger
vers un minimum local (car non-convexité) se trouvant dans un bassin d’attraction peut
intéressante du point de vue de la généralisation du modèle. Ce problème est lié entre autres
au phénomène d’affaiblissement/diffusion du gradient à travers les couches qui conduit à un
déséquilibre de la vitesse d’apprentissage entre les premières et dernières couches , ce qui rend
-52-
l’adaptation des poids des couches d’entrée difficile et ce qui conduit le réseau à apprendre à
reconstruire la moyenne de toutes les données d’apprentissage.
Pour résoudre ce problème, dans la stratégie d’apprentissage des architectures profondes
proposée ces dernières années, l’initialisation des poids se fait via un auto-encodeur
comportant deux modules : un encodeur et un décodeur comme illustré sur la figure suivante.
L’encodeur sert à projeter les données de manière non-linéaire dans un espace de même
représentation ℎ des données susceptible de préserver les informations utiles pour la tâche
dimension que le nombre d’unités de la couche cachée. Cette projection génère une nouvelle
d’apprentissage supervisé.
Plusieurs études ont montré que l’utilisation d’auto-encodeurs non-linéaires comportant
davantage d’unités sur la couche cachée que d’entrées peut donner lieu à de bonnes
représentations du signal d’entrée. De telles représentations peuvent être utilisées comme
entrées d’un second réseau qui effectuera la tâche de classification avec une erreur de
classification plus faible. Une fois qu’un auto-associateur est appris, son module décodeur est
retiré de l’architecture et la sortie de l’encodeur sert de données d’entrée pour l’étage suivant.
Figure – Pré-apprentissage non supervisé du réseau (3) à l’aide d’un autoencodeur (1) et de son PMC associé (2)
-53-
Figure – Pré-apprentissage non supervisé d’un réseau profond : cas multicouches
Méthodologie : L’apprentissage d’un réseau de neurones profond est ainsi effectué en deux
temps. Dans une première phase, appelée phase de pre-apprentissage (ou « pre-training »),
l’apprentissage des couches dites basses est réalisé en mode non-supervisé à l’aide d’auto-
encodeurs comme précisé ci-avant. Puis, dans un second temps (appelé « fine-tuning »), tous
les encodeurs appris lors de la phase précédente sont déverrouillés et l’apprentissage des
dernières couches, dites de décision, est effectué en mode supervisé à l’aide d’un algorithme
de propagation arrière (« backpropagation ») appliqué à l’ensemble du réseau. Les poids du
réseau sont ainsi initialisés à des valeurs plus proches de la solution optimale (qu’une approche
aléatoire), la descente de gradient a donc plus de chances de converger vers un minimum local
intéressant du fait de l’apport d’informations a priori important par le processus
d’apprentissage non supervisé.
-54-
Figure – Codes 2D produits par (gauche) l’algorithme LSA-2D et (droite) un auto-
encodeur empilé de dimensions 2000, 500-250-125-2
-55-
Annexe F
Traitement des Images & Deep-
learning : Réseaux convolutionnels
__________________________________________________________
Les réseaux de neurones convolutionnels (ou ConvNets, pour Convolutional Neural Networks)
correspondent à une architecture spécifique de réseaux de neurones particulièrement adaptée
au traitement des signaux 2D. Il s’agit en fait d’une structure de réseau intégrant un mécanisme
de poids partagés afin d’exploiter des propriétés locales (à court-terme et/ou spatiales). L’idée
principale consiste à modifier la structure d’un réseau pleinement connecté afin d’exploiter des
connexions locales : ceci conduit également à réduire le nombre de paramètres (i.e. de poids)
du réseau.
Les premiers ConvNets datent des années 1980 avec les travaux sur le Necognitron de K.
Fukushima, mais c’est dans les années 1990 que ces réseaux seront popularisés avec les travaux
de Y. Le Cun et al. sur la reconnaissance de caractères. Les auteurs ont proposé une série de
réseaux ConvNets, baptisés LeNet (de 1 à 5), qui se basent sur trois idées architecturales clé :
• Des champs récepteurs locaux (i.e. connectivité parcimonieuse) associés à des
convolutions qui permettent de détecter des caractéristiques élémentaires sur l’image,
formant ainsi une carte de caractéristiques,
• Un principe de partage des poids (i.e. représentation parcimonieuse) qui consiste à
apprendre les mêmes paramètres (ou poids) d’une convolution (et par conséquence
extraire les mêmes caractéristiques) pour toutes les positions sur l’image. C’est l’idée
clé des ConvNets permettant de réduire considérablement la complexité en diminuant
le nombre de paramètres à apprendre, et d’avoir ainsi des architectures multi-couches
qui opèrent sur des entrées de grande dimension tout en étant de taille réaliste (ce qui
n’était pas réalisable avec les MLPs). De plus, le partage des poids permet d’améliorer
la capacité de généralisation du réseau, et d’être cohérent avec les études faites sur le
cortex visuel,
• Des opérations de sous-échantillonnage qui permettent de réduire la sensibilité aux
translations, ainsi que de réduire le coût du traitement.
Figure – Réseau convolutionnel LeNet-5. Le nombre de couches, celui des cartes ainsi que leurs dimensions sont
des paramètres architecturaux qui varient d’une problématique à une autre.
La succession de ces deux types de couches (la partie C1, S1, C2 et S2) sert à extraire les
informations pertinentes de l’image d’entrée, et à les encoder dans un vecteur de 120
dimensions au niveau de la couche C5. Les 3 dernières couches sont un MLP classique qui sert
quant à lui à classer les donnéesencodées soit donc à prédire la classe à partir des filtres appris
(i.e. des descripteurs générés automatiquement). L’objectif est de construire
automatiquement, à partir de l’image brute en entrée, une représentation de plus en plus haut-
niveau de couche en couche.
L’idée principale concernant les opérations effectuées au sein d’un réseau de neurones
convolutionnel est la suivante :
• Transformer les signaux d’entrée à l’aide d’une fonction non-linéaire (rectification
mon, sigmoïde) afin d’obtenir une nouvelle description dans un espace de grande
dimension afin que les éléments qui n’étaient pas séparables dans l’espace initial, le
soient maintenant dans ce nouvel espace,
• Dans ce nouvel espace, mettre en commun (pooling) les régions qui sont
sémantiquement similaires.
-57-
Figure – Principe général des réseaux de neurones convolutionnels
‚ E, 1 • E, 1 ∗ € E, 1 : : € w, H • E w, 1 H
– œF œ
‚ E, 1 € E, 1 ∗ • E, 1 : : • w, H € E w, 1 H , E, 1 ý 1, … , < 1
– F
Nous pouvons remarquer que, dans cette seconde formulation, le noyau a été échangé avec
l’entrée si bien que les indices du noyau sont maintenant croissants lorsque l’index de l’entrée
décroît. Cette propriété est nécessaire afin d’assurer la propriété de commutativité de la
convolution mais ceci ne constitue pas une propriété recherchée des réseaux de neurones si
bien qu’en général cette opération de convolution 2D est implémentée sous la forme d’une
inter-corrélation sous la forme :
œ œ
‚ E, 1 € E, 1 ∗ • E, 1 : : • w, H € E w, 1 H , , E, 1 0, … , < ý
– F
Mais cette opération est souvent appelée (à tort) « convolution » dans le monde du machine
learning. Les seuls degrés de liberté concernant la mise en œuvre de cette opérateur
-58-
Dans l’opération de convolution 2D, l’ensemble des < ý 1 y < ý 1 pixels de
sharing) décrivant un filtre • . , . donné si bien que cette opération de convolution possède
chaque carte de caractéristiques vont être obtenus à partir des mêmes poids (parameter
£¤€¤¤E,¤1¤¥¤•
∗¤¤¤E,
¤¦ 1 £¤€¤¤ ∗•
E,¤1¤¥¤ E,¤¦
¤¤¤ 1 ‚ E, 1
¾rq'r’sl rq D„ sq‘ œ¼E‘ l•¼q½’¼lé‘ l•¼q½’¼l rq D‘ ’„ œ¼E‘ ¾rq'r’é‘
Par contre, la convolution n’est pas équivariante par d’autres transformations (comme le
changement d’échelle, ou encore la rotation d’une image) et donc il sera nécessaire de mettre
ne place d’autres mécanismes pour obtenir un réseau de neurones insensible à ces
transformations.
Figure – Principe général d’une couche d’un réseau convolutionnel suivant trois étapes majeures : la
convolution/intercorrélation + la non-linéarité + le pooling. (Bas) Détails des différentes opérations.
…5 E, 1 5 ‚5 E, 1 ∀E, 1
souvent préférée à la fonction tanh . dans les réseaux de neurones profonds convolutionnels
Le choix se porte souvent sur la fonction d’activation non-linéaire rectifiée ReLU qui est
L’un des avantages de la fonction ReLU est qu’elle ne nécessite aucune normalisation des
données en entrée car cette fonction est non-bornée. Malheureusement, cette propriété peut
cependant poser des problèmes de contrastes entre les cartes de caractéristiques. Il est alors
nécessaire de normaliser les différentes valeurs d’activation. Ceci est généralement effectué
-59-
suivant l’une des 3 techniques présentées ci-après qui réalisent une sorte d’ « inhibition
latérale » de façon similaire à la vision humaine en normalisant localement les régions
d’entrée. On distingue les techniques :
• local Response normalization Layer (inter-cartes de caractéristiques): Cette opération,
décrite dans l’article (A. Krizhevsky, I. Sutskever and G. E. Hinton, ImageNet
Classification with Deep Convolutional Neural Networks, in Advances in Neural
localement les valeurs d’activations entre < cartes de caractéristiques adjacentes mais
Information Processing Systems, 25, 2012 (téléchargement ici)), consiste à pondérer
pondération locale des valeurs d’activations est effectuée sur la carte courante • de
normalisation est très similaire à l’opération précédente à ceci près que l’opération de
…• E, 1
‡• E, 1 ˆ
.
`> < ∑– 3,F 3 …œ w, H a
#3,F #3
(1) les auteurs utilisent une fonction non-linéaire de type tan . ou |tan . |, (2) une
2 techniques précédentes de normalisation (inter-carte et intra-carte) à ceci près que
est calculée sur un voisinage spatial (de 9 y 9 pixels ici) autour du point E, 1 selon
valeur de l’activité moyenne est soustraite en sortie, et (3) la valeur de normalisation
•#q⁄
…′• E, 1 …• E, 1 w, H …œ w, H
#3,F #3
: :
– 3,F 3
œ • q⁄
…′• E, 1
‡• E, 1 ˆ
`> < ∑œ
•#q
∑–#3,F3,F#3 3 …′œ w, H a
⁄
• q⁄
-60-
utilisent également la norme p ou la norme p , ou bien encore l’opérateur max . (on parle
dimensions données (on parle alors d’average-pooling). Des variantes de cetet technique
alors de max-pooling) aux pixels contenus dans cette fenêtre. Cette opération peut ensuite
être réitérée en décalant la fenêtre d’agrégation (de paramètre sizeX car elle souvent carrée)
d’un seul ou de plusieurs pixels (paramètre stride size). Dans ce dernier cas, on réalise ainsi une
opération de sous-échantillonnage stride size :1 sur les dimensions spatiales (i.e. width &
height) ce qui réduit la complexité globale du réseau de neurones. Pour un choix de
paramétrage (stride size= sizeX), on parle alors de non-overlapping pools.
Suite à l’étape d’agrégation, la représentation de l’image originale est alors
approximativement invariante aux translations modérées au sein de l’image originale d’entrée
car, si de faibles translations locales sont appliquées au niveau de l’image originale, alors les
valeurs des sorties de l’étape d’agrégation resteront inchangées.
LA FONCTION DE COUT
Les réseaux convolutionnels sont adaptés à l’aide d’un ensemble de < images étiquetées b, _
où les étiquettes D_Â , E ∈ A0, < 1BF correspondent à une variable aléatoire indiquant la classe
'Â .
critère de perte basé sur l’entropie croisée entre _Â et _
exacte. Dans ce cas, il est préférable d’utiliser, dans le cas de la classification des images, un
DROP-OUT
-61-