Algorithme du gradient déterministe (steepest descent)
Algorithme du gradient déterministe (steepest descent)
Algorithme du gradient déterministe (steepest descent)
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Algorithme</strong> <strong>du</strong> <strong>gradient</strong><br />
<strong>déterministe</strong> (<strong>steepest</strong> <strong>descent</strong>)<br />
L’algorithme <strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong> est une première<br />
approche pour résoudre l’équation de Wiener-Hopf<br />
de manière itérative, sans avoir besoin d’inverser une<br />
matrice.<br />
INRS-EMT J. Benesty
Plan<br />
• Principe de l’algorithme <strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong><br />
• Application de l’algorithme <strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong><br />
au filtrage de Wiener<br />
• Stabilité de l’algorithme <strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong><br />
• Exemple<br />
INRS-EMT J. Benesty 1
Principe de l’algorithme <strong>du</strong> <strong>gradient</strong><br />
<strong>déterministe</strong><br />
Soit une fonction coût J(h) continue et différentiable,<br />
dépendant d’un vecteur inconnu h. On désire trouver<br />
une solution optimale hopt qui satisfait:<br />
J(hopt) ≤ J(h), ∀h. (1)<br />
Le principe d’un algorithme itératif simple est le<br />
suivant: en commençant avec une condition initiale<br />
h(0), générer une séquence de vecteurs h(1), h(2), ···,<br />
de telle manière que la valeur de la fonction J(h)<br />
diminue à chaque itération:<br />
J [h(n + 1)]
Un algorithme classique est l’ algorithme <strong>du</strong> <strong>gradient</strong><br />
<strong>déterministe</strong>:<br />
h(n +1)=h(n) − 1<br />
µg(n), (3)<br />
2<br />
où n dénote l’itération, µ est une constante positive<br />
(pas d’adaptation), et<br />
g(n) =<br />
∂J [h(n)]<br />
∂h(n)<br />
(4)<br />
est le <strong>gradient</strong> de la fonction coût J [h(n)]. De<br />
l’itération n àl’itération n +1, le vecteur h est mis à<br />
jour comme suit:<br />
δh(n) = h(n +1)− h(n)<br />
= − 1<br />
µg(n). (5)<br />
2<br />
INRS-EMT J. Benesty 3
Pour montrer que l’algorithme <strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong><br />
satisfait J [h(n + 1)] < J [h(n)], on utilise un<br />
développement de Taylor au premier ordre autour de<br />
h(n):<br />
J [h(n + 1)] = J [h(n)+δh(n)]<br />
≈ J [h(n)] + g T (n)δh(n), (6)<br />
ce qui est justifié pourµ petit. On a donc:<br />
J [h(n + 1)] ≈ J [h(n)] − 1<br />
2 µg(n)2 , (7)<br />
ce qui montre que J [h(n + 1)] est plus petit que<br />
J [h(n)]. Ainsi, en augmentant n, la fonction J décroit<br />
progressivement, approchant sa valeur minimale Jmin<br />
quand n →∞.<br />
INRS-EMT J. Benesty 4
Application de l’algorithme <strong>du</strong> <strong>gradient</strong><br />
<strong>déterministe</strong> au filtrage de Wiener<br />
Dans le filtrage de Wiener, on minimise l’erreur<br />
quadratique moyenne (EQM):<br />
où<br />
J = E{e 2 (n)}, (8)<br />
e(n) =d(n) − x T (n)h (9)<br />
est le signal d’erreur, h est un filtre RIF de longueur L,<br />
x(n) est le signal d’entrée, et d(n) est le signal désiré.<br />
Le <strong>gradient</strong> de J est:<br />
g = ∂J(h)<br />
∂h<br />
= −2E{x(n)e(n)}<br />
= −2E{x(n)d(n) − x(n)x T (n)h}<br />
= −2p +2Rh.<br />
(10)<br />
INRS-EMT J. Benesty 5
On en dé<strong>du</strong>it l’algorithme <strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong><br />
pour le filtrage de Wiener:<br />
h(n +1) = h(n) − 1<br />
2 µg(n)<br />
= h(n)+µ[p − Rh(n)]. (11)<br />
Cet algorithme peut encore s’écrire en utilisant le signal<br />
d’erreur:<br />
e(n) = d(n) − x T (n)h(n) (12)<br />
h(n +1) = h(n)+µE{x(n)e(n)}. (13)<br />
Eventuellement, à l’infini, l’algorithme converge vers la<br />
solution optimale de Wiener-Hopf:<br />
h(∞) =hopt = R −1 p. (14)<br />
INRS-EMT J. Benesty 6
<strong>Algorithme</strong> <strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong><br />
<strong>Algorithme</strong> itératif pour trouver le filtre optimal de<br />
Wiener.<br />
Données<br />
• la matrice d’autocorrélation R<br />
• le vecteur d’intercorrélation p<br />
Initialisation avec un vecteur quelconque h(0)<br />
Itérer n =1, 2, ··· ,N<br />
h(n +1) = h(n)+µ[p − Rh(n)]<br />
Arrêter si p − Rh(n)
Stabilité de l’algorithme <strong>du</strong> <strong>gradient</strong><br />
<strong>déterministe</strong><br />
Comment choisir le pas d’adaptation µ pour que<br />
l’algorithme soit stable?<br />
Pour déterminer la condition de stabilité de<br />
l’algorithme, on examinera ces modes naturels, càd<br />
la représentation en valeurs propres de la matrice<br />
d’autocorrélation R.<br />
L’algorithme est:<br />
h(n +1)=h(n)+µ[p − Rh(n)], (15)<br />
en utilisant l’équation de Wiener-Hopf p = Rhopt, on<br />
obtient:<br />
h(n +1)=h(n)+µR[hopt − h(n)]. (16)<br />
Soit le vecteur misalignment suivant:<br />
c(n) =hopt − h(n), (17)<br />
l’équation (16) s’écrit maintenant:<br />
c(n +1)=(I − µR)c(n). (18)<br />
INRS-EMT J. Benesty 8
On se rappelle que la matrice d’autocorrélation R<br />
peut s’exprimer en fonction de ses valeurs et vecteurs<br />
propres:<br />
R = QΛQ T , (19)<br />
où QQ T = I et Λ = diag{λ0,λ1, ··· ,λL−1} est une<br />
matrice diagonale. En utilisant (19) dans l’équation<br />
d’adaptation, on a:<br />
c(n +1) = (I − µR)c(n)<br />
= (I − µQΛQ T )c(n). (20)<br />
En multipliant à gauche les deux côtés de l’équation<br />
précédente par Q T , on obtient:<br />
soit<br />
où<br />
Q T c(n +1) = (I − µΛ)Q T c(n), (21)<br />
v(n +1) = (I − µΛ)v(n), (22)<br />
v(n) = Q T c(n)<br />
= Q T [hopt − h(n)]. (23)<br />
INRS-EMT J. Benesty 9
Pour le lth mode naturel de l’algorithme <strong>du</strong> <strong>gradient</strong><br />
<strong>déterministe</strong>, on a ainsi:<br />
vl(n +1)=(1− µλl)vl(n), l =0, 1, ··· ,L− 1, (24)<br />
ou encore<br />
vl(n) =(1− µλl) n vl(0), l=0, 1, ··· ,L− 1. (25)<br />
L’algorithme converge si vl(n) → 0 quand n →∞<br />
(dans ce cas h(n) → hopt). Pour cela il faut que:<br />
soit<br />
ou encore<br />
−1 < 1 − µλl < 1, ∀l, (26)<br />
0
La constante de temps (time constant) pour le lth<br />
mode est définie comme suit:<br />
d’où<br />
|1 − µλl| =exp<br />
τl =<br />
<br />
− 1<br />
τl<br />
<br />
, (29)<br />
−1<br />
. (30)<br />
ln(|1 − µλl|)<br />
En fait, τl est le nombre d’itérations requis pour que<br />
l’amplitude <strong>du</strong> lth mode |vl(n)| décroisse de 1/e de sa<br />
valeur initiale |vl(0)|.<br />
De manière équivalente, on peut prendre pour le pas<br />
d’adaptation:<br />
où maintenant<br />
µ = α<br />
λmax<br />
, (31)<br />
0
Supposons que la valeur propre minimale soit λL−1 =<br />
λmin, dans ce cas:<br />
τL−1 =<br />
=<br />
−1<br />
ln(|1 − αλmin/λmax|)<br />
−1<br />
, (33)<br />
ln(|1 − α/χ(R)|)<br />
où χ(R) =λmax/λmin est le conditionnement de la<br />
matrice d’autocorrélation R. On voit bien que la<br />
vitesse de convergence <strong>du</strong> mode le plus lent dépend <strong>du</strong><br />
conditionnement de R.<br />
On peut exprimer la même chose en fonction <strong>du</strong> filtre<br />
adaptatif directement. En effet, on a:<br />
soit en multipliant par Q:<br />
v(n) = Q T [hopt − h(n)], (34)<br />
h(n) = hopt − Qv(n)<br />
= hopt −<br />
L−1 <br />
l=0<br />
q lvl(n). (35)<br />
En remplaçant vl(n) =(1−µλl) n vl(0) dans l’équation<br />
INRS-EMT J. Benesty 12
précédente, on obtient:<br />
h(n) = hopt −<br />
L−1 <br />
l=0<br />
q l(1 − µλl) n vl(0). (36)<br />
Cette équation montre que chacun des coefficients<br />
<strong>du</strong> filtre de l’algorithme est une somme de L<br />
exponentielles. La constante de temps globale (τ)<br />
n’est pas facile àdéterminer. On a par contre:<br />
−1<br />
ln(|1 − µλmax|)<br />
≤ τ ≤<br />
−1<br />
, (37)<br />
ln(|1 − µλmin|)<br />
la convergence est d’autant plus faible que le pas est<br />
faible.<br />
On se souvient de la forme canonique de l’erreur<br />
quadratique moyenne (EQM):<br />
J(n) =Jmin +<br />
L−1 <br />
l=0<br />
λlv 2 l (n), (38)<br />
où Jmin est l’EQM minimale. En utilisant vl(n) =<br />
(1 − µλl) n vl(0), nous pouvons écrire:<br />
J(n) =Jmin +<br />
L−1 <br />
l=0<br />
λl(1 − µλl) 2n v 2 l (0). (39)<br />
INRS-EMT J. Benesty 13
Lorsque l’algorithme est convergent, càd lorsque<br />
0 < µ < 2/λmax, limn→∞ J(n) =Jmin quelque<br />
soient les conditions initiales. La courbe obtenue en<br />
traçant J(n) en fonction <strong>du</strong> nombre d’itérations n est<br />
appelée courbe d’apprentissage (learning curve).<br />
D’après l’équation (39) cette courbe consiste en une<br />
somme d’exponentielles décroissantes, chacune d’elle<br />
correspondant à un mode propre de l’algorithme. La<br />
vitesse de convergence <strong>du</strong> mode l est liée à (1−µλl) 2n .<br />
De la même manière qu’on l’a fait pour les coefficients<br />
<strong>du</strong> filtre, on définit la constante de temps de l’EQM<br />
pour le lth mode:<br />
τeqm,l =<br />
≈<br />
−1<br />
2ln(|1 − µλl|)<br />
1<br />
, (40)<br />
2µλl<br />
pour µλl ≪ 1, ce qui est le cas en général.<br />
Le mode le plus lent est lié à la valeur propre la plus<br />
petite et le mode le plus rapide est lié à la valeur propre<br />
la plus grande.<br />
INRS-EMT J. Benesty 14
Exemple<br />
Reprenons l’exemple simple suivant:<br />
R =<br />
p =<br />
la solution optimale est:<br />
<br />
1.1 0.5<br />
0.5 1.1<br />
<br />
0.5272<br />
−0.4458<br />
hopt = R −1 p<br />
=<br />
0.8363<br />
−0.7854<br />
<br />
,<br />
<br />
,<br />
<br />
.<br />
On va essayer d’obtenir cette solution avec l’algorithme<br />
<strong>du</strong> <strong>gradient</strong> <strong>déterministe</strong> et voir l’effet <strong>du</strong> pas<br />
d’adaptation (µ) sur le comportement de l’algorithme.<br />
On va utiliser le misalignment normalisé endB:<br />
10 log 10<br />
h(n) − hopt 2<br />
hopt 2 . (41)<br />
INRS-EMT J. Benesty 15
Cette mesure est très utile en pratique et pour tous<br />
les algorithmes adaptatifs. Elle montre comment<br />
l’algorithme converge vers la solution optimale.<br />
Code en MATLAB<br />
R=[1.1 0.5;0.5 1.1];<br />
p=[0.5271;-0.4458];<br />
h=[-1;-1];<br />
mu=0.01;<br />
H=h;<br />
for n=1:1000<br />
h=h+mu*(p-R*h);<br />
H=[H h];<br />
end<br />
INRS-EMT J. Benesty 16
h1<br />
1<br />
0.5<br />
0<br />
−0.5<br />
−1<br />
(a)<br />
−1.5<br />
−1.5 −1 −0.5 0<br />
h0<br />
0.5 1 1.5<br />
Misalignment (dB)<br />
0<br />
−10<br />
−20<br />
−30<br />
−40<br />
−50<br />
−60<br />
(b)<br />
200 400 600 800 1000<br />
Iteration<br />
Figure 1: Pas d’adaptation µ =0.01. (a) Processus<br />
d’adaptation <strong>du</strong> filtre h(n) d’un point quelconque<br />
h(0) = [−1 − 1] T et convergence vers la solution de<br />
Wiener hopt =[0.8363 − 0.7854] T . (b) Convergence<br />
<strong>du</strong> misalignment normalisé.<br />
INRS-EMT J. Benesty 17
h1<br />
1<br />
0.5<br />
0<br />
−0.5<br />
−1<br />
(a)<br />
−1.5<br />
−1.5 −1 −0.5 0<br />
h0<br />
0.5 1 1.5<br />
Misalignment (dB)<br />
0<br />
−10<br />
−20<br />
−30<br />
−40<br />
−50<br />
−60<br />
(b)<br />
200 400 600 800 1000<br />
Iteration<br />
Figure 2: Pas d’adaptation µ =1. (a) Processus<br />
d’adaptation (oscillations stables) <strong>du</strong> filtre h(n) d’un<br />
point quelconque h(0) = [−1 −1] T et convergence vers<br />
la solution de Wiener hopt =[0.8363 − 0.7854] T .(b)<br />
Convergence très rapide <strong>du</strong> misalignment normalisé.<br />
INRS-EMT J. Benesty 18
h1<br />
1<br />
0.5<br />
0<br />
−0.5<br />
−1<br />
(a)<br />
−1.5<br />
−1.5 −1 −0.5 0<br />
h0<br />
0.5 1 1.5<br />
Misalignment (dB)<br />
0<br />
−10<br />
−20<br />
−30<br />
−40<br />
−50<br />
−60<br />
(b)<br />
200 400 600 800 1000<br />
Iteration<br />
Figure 3: Pas d’adaptation µ =4. (a) Processus<br />
d’adaptation (oscillations instables) <strong>du</strong> filtre h(n) d’un<br />
point quelconque h(0) = [−1 − 1] T et divergence de<br />
la solution de Wiener hopt =[0.8363 − 0.7854] T .(b)<br />
Divergence <strong>du</strong> misalignment normalisé.<br />
INRS-EMT J. Benesty 19
h1<br />
1<br />
0.5<br />
0<br />
−0.5<br />
−1<br />
(a)<br />
−1.5<br />
−1.5 −1 −0.5 0<br />
h0<br />
0.5 1 1.5<br />
Misalignment (dB)<br />
0<br />
−10<br />
−20<br />
−30<br />
−40<br />
−50<br />
−60<br />
(b)<br />
200 400 600 800 1000<br />
Iteration<br />
Figure 4: Pas d’adaptation µ =0.001. (a) Processus<br />
d’adaptation très lent <strong>du</strong> filtre h(n) d’un point<br />
quelconque h(0) = [−1 − 1] T et convergence vers<br />
la solution de Wiener hopt =[0.8363 − 0.7854] T .(b)<br />
Convergence très lente <strong>du</strong> misalignment normalisé.<br />
INRS-EMT J. Benesty 20