0% ont trouvé ce document utile (0 vote)
42 vues4 pages

Filtrage Non Inverse avec MLP en DSP

Transféré par

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

Filtrage Non Inverse avec MLP en DSP

Transféré par

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

TP6 en traitement numérique du signal et applications :

Implémentation d’un MLP pour du filtrage non inverse


Filière : RT4, INSAT
Responsable cours/TD/TP : R. Amara
1. Principe d’un réseau de neurônes adaptatif type MLP
Dans cette partie, on révise la structure d’un réseau de neurônes adapatatif de type MLP
(Multilayer perceptron) vue dans le dernier cours. On choisit dans ce TP d’implémenter
un MLP à une couche cachée à N neurônes et une couche de sortie à un seul noeud
comme expliqué sur la figure (dernière page de ce doc).La sortie du MLP est
XN
y(n) = f ( αi si (n)) = f (αT s(n))
i=1
où    
α1 s1 (n)
α =  ...  : poids de la couche de sortie et s(n) =  ... 
   

αN sN (n)
avec
s1 (n) = f (w11 x(n) + w12 x(n − 1)) + . . . w1P x(n − P + 1))
s2 (n) = f (w21 x(n) + w22 x(n − 1)) + . . . w2P x(n − P + 1))
. . . . . .
sN (n) = f (wN 1 x(n) + wN 2 x(n − 1)) + . . . wN P x(n − P + 1))

ainsi pour chaque neurone i on a la sorti


si (n) = f (wi1 x(n) + wi2 x(n − 1)) + . . . wiP x(n − P + 1)) = f (wTi x(n)))
où    
wi1 x(n)
wi =  ...  et x(n) =  ..
.  le régresseur
   

wiN x(n − P + 1))


ainsi, on peut concaténer les sorties de la couche cachée dans un même vecteur
   
s1 (n) f (wT1 x(n))
s(n) =  ...  =  ..
. T
 = f (W x(n))
   

sN (n) f (wTN x(n))


1
où W = [w1 w2 . . . wN ] est la matrice des poids (Weight matrix) reliant la couche d’entrée
à la première couche cachée.
Pb : Déterminer les paramètres de la structure W et α qui rapprochent la sortie y(n) du
signal de référence d(n) au sens de l’EQM, autrement trouver les poids qui minimisent
E{(d(n) − y(n))2 }. Le critère EQM étant non convexe dans ce cas, à cause de la sortie
non linéaire en fonction des paramètres de structure ; on pourra utiliser un algorithme de
descente de type de gradient afin de minimiser l’EQM (identifier l’inventeur de l’algo-
rithme de descente de type gradient).

Rappel : Alg. itératif d’un gradient pour minimiser une fonction à plusieurs pa-
ramètresf (x)

- initialiser la solution sous-optimale x̂0 (valeur nulle, valeur aléatoire,..)


- pour i = 1 jusqu’à convergence, faire x̂i+1 = x̂i − µ∇x f (x)|x̂i

où µ est désigné par le pas d’adaptation (valeur modulant l’amplitude de la descente).

l’EQM est en fait donnée par EQM = E{e2 (n)} = E{(d(n) − y(n))2 } Afin d’identifier
les valeurs optimales de wi pour i = 1, . . . , N et α minimisant l’EQM, on peut utiliser
donc un algo. de descente de type gradient
∂EQM
ŵi (n + 1) = ŵi (n) − µ |ŵi (n) i ∈ {1, . . . , N }
∂ ŵi

∂EQM
α̂(n + 1) = α̂(n) − µ |α̂(n)
∂ α̂
Il est clair que pour chaque vecteur de paramètres p ∈ {w1 , w2 , . . . , wN , α}, on peut écrire
l’équation de mise à jour de type gradient
∂EQM
p̂(n + 1) = p̂(n) − µ |p̂(n) (1)
∂p
∂y(n)
= p̂(n) − µE{−2.e(n). |p̂(n) } (2)
∂p
∂y(n)
= p̂(n) + 2µ E{e(n) |p̂(n) } (3)
|{z}

∂p

Il suffit de calculer les gradients de la sortie du MLP par rapport à chaque lot de pa-
ramètres, En effet, on pourra vérifier (prière de le refaire)

∂y(n)
|α̂(n) = s(n)f ′ (α̂T (n)s(n)) (g.1)
∂α
∂y(n)
|ŵi (n) = αi f ′ (ŵTi (n)x(n))f ′ (α̂T (n)s(n))x(n) (g.2)
∂wi
Comme expliqué dans le cours, la mise en oeuvre des équations de gradient faisant in-
tervenir l’espérance n’est pas pratique et ce qui est mené est une approximation de toute
espérance E{f (n)} par la valeur du processus f (n), comme si on a plutôt minimisé le
critère stochastique e2 (n) par une procédure de gradient, d’où son nom désigné par gra-
dient stochastique. Si on se permet de faire cette approximation c’est qu’à la suite en
général on étudie la convergence de l’estimée fournie par le GS vers une solution type
Wiener, minimisant l’EQM. Si on récapitule ainsi l’alogrithme GS pour la mise à jour de
ce MLP

paramètres : µ′ , P :ordre du régresseur , N : nombre de neurones dans la couche cachée


Initialisation : α̂(0) , Ŵ (0) = [ŵ1 (0) ŵ2 (0), . . . , ŵN (0] , x(0)
entrée : signal numérique x(n) pour = 1, . . . , 104

pour n = 1, 2, .... Ntrain : instant de fin d’apprentissage, faire

→ MAJ du buffer x(n)


→ Calcul de la sortie de la structure MLP (calcul progressif des sorties de
chaque couche : forward recursion)
→ s(n) = f (Ŵ T (n)x(n))
→ puis y(n) = f (α̂T (n)s(n))
→ erreur sur la sortie : e(n) = d(n) − y(n)
→ Calcul des gradients : (g.1) et (g.2)
→ MAJ des paramètres selon

∂y(n)
ŵi (n + 1) = ŵi (n) + µ′ e(n) |ŵ (n) i ∈ {1, . . . , N }
∂ ŵi i
∂y(n)
α̂(n + 1) = α̂(n) + µ′ e(n) |α̂(n)
3 ∂ α̂
fin pour

2. Implémentation
2.1 Pour l’implémentation, on va générer un signal x(n) à partir de d(n) = sin(nw0 + ϕ)
avec ϕ est une phase uniforme sur [0, 1.5] comme suit
x(n) = hT d(n) + (hT d(n))3 avec hT = [−1.5 0.5 0.2]
l’idée est d’implémenter un filtre non linéaire inverse à ce système par MLP restituant une
estimation de d(n) en traitant le signal x(n). Mener alors l’apprentissage d’un tel MLP
(à une seule couche cachée de dim. N = 5), pour P = 5, N train = 2000 en choisissant
une fct d’activation type f (x) = tanh(x) et un pas d’adaptation de µ′ = 0.1. On tracera
sur le même graphe x(n), d(n) et y(n). On tâchera aussi d’afficher l’EQM.
2.1 Etudier les performances de la structure de MLP adaptatif en fonction du Choix de µ′ ,
N , dimension du régresseur P , l’initialisation..

Vous aimerez peut-être aussi