25.06.2013 Views

Algorithme du gradient déterministe (steepest descent)

Algorithme du gradient déterministe (steepest descent)

Algorithme du gradient déterministe (steepest descent)

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!