Partie 1 : Télédétection 21
3.5 Troisième méthode proposée : NMF LQ Multiplicative
Une autre manière de s’affranchir des pas de descente dans l’algorithme LQ Grd (section
3.3.2) est de développer une version multiplicative de cet algorithme. L’algorithme multiplicatif
peut s’obtenir à partir de l’algorithme de gradient en choisissant d’exprimer le pas en fonction
des matrices produits [36], comme détaillé ci-dessous pour notre cas.
Nous nous contenterons dans cette partie du modèle bilinéaire, donc sans les termes au
carré.
La mise à jour deAest inchangée par rapport au cas linéaire, c’est donc la même que dans
l’algorithme Linéaire ext (section 3.2.2) :
A←A⊙((XS
T)⊘(ASS
T+ε)) (3.29)
On va donc procéder au calcul de la mise à jour multiplicative de la matrice S
a. Pour cela, on
part de la mise à jour de l’algorithme LQ Grd, d’après lequel on a, pour la source p (pour le
cas d’un modèle bilinéaire et donc sans le dernier terme dans l’expression du gradient (3.21)) :
S
pn←S
pn−φ
pn∂J
∂S
pn(3.30)
avec ∂J
∂S
pn=−[A
a T(X−AS)]
pn−P
M j=1,j6=p[S
a]
jn×[A
bT(X−AS)]
(jp)n79 3.5. TROISIÈME MÉTHODE PROPOSÉE : NMF LQ MULTIPLICATIVE
oùφ
pnest ici le pas du gradient, qui sera dépendant des indicespetn. A noter qu’on s’intéresse
ici aux mises à jour de la partie linéaire doncS
pn= [S
a]
pn.
Pour choisir l’expression du pasφ
pnnous suivons le raisonnement suivant. Ce pas φ
pndoit
être choisi de sorte à donner une mise à jour multiplicative et qui conserve la positivité. Le
premier point est vérifié si le pas contient le terme S
pnau numérateur (pour permettre une
factorisation dans l’expression (3.30)). Pour obtenir la deuxième condition, il faut faire en sorte
de se débarrasser, dans le terme de droite de (3.30), de tous les termes précédés par un signe
moins (pour aboutir à juste une somme de termes positifs). Une façon de faire est de placer ces
termes au dénominateur du pasφ
pn, ce qui permettra une simplification lors de la réduction au
même dénominateur dans (3.30).
Suivant ce raisonnement, nous choisissons de fixer les pas φ
pncomme suit :
φ
pn= S
pn[A
Ta
AS]
pn+P
Mj=1,j6=p
[S
a]
jn×[A
Tb
AS]
(jp)n(3.31)
Le calcul de la mise à jour de la sourcepse fait alors en remplaçant, dans l’équation (3.30),
le pas φ
pnpar son expression (3.31) :
S
pn← S
pn[A
T aAS]
pn+S
pn×P
M j=1,j6=p[S
a]
jn×[A
TbAS]
(jp)n[A
T aAS]
pn+P
M j=1,j6=p[S
a]
jn×[A
T bAS]
(jp)n+ S
pn[
A
aT(X−AS)]
pn+S
pnP
M j=1,j6=p[S
a]
jn×[A
bT(X−AS)]
(jp)n[A
T aAS]
pn+P
M j=1,j6=p[S
a]
jn×[A
T bAS]
(jp)n= S
pn[A
a TX]
pn+S
pnP
M j=1,j6=p[S
a]
jn×[A
bTX]
(jp)n[A
T aAS]
pn+P
M j=1,j6=p[S
a]
jn×[A
T bAS]
(jp)n(3.32)
On obtient donc finalement la mise à jour multiplicative suivante :
S
pn←S
pn× [A
a TX]
pn+P
M j=1,j6=p[S
a]
jn×[A
bTX]
(jp)n[A
T aAS]
pn+P
M j=1,j6=p[S
a]
jn×[A
T bAS]
(jp)n+ε (3.33)
où(jp)correspond, comme expliqué dans la section 3.3.2, à la position du vecteur s
j⊙s
pdans
la matrice S
b.
Comme pour le cas linéaire,ε(positif et très petit) est ajouté au dénominateur pour éviter
les éventuelles divisions par zéro.
Il est facile de vérifier sur la mise à jour (3.33) que si la convergence est atteinte, le quotient
est égale à 1 et la valeur à droite est alors égale à S
pn.
Cet algorithme permet donc, d’une part, de se libérer du pas de descente et de ses
incon-vénients. D’autre part, de par la construction de la mise à jour qui est de forme multiplicative
ne contenant que des sommes de termes positifs, la positivité est garantie à chaque itération,
dès lors que l’initialisation est positive. On peut donc se passer des étapes, présentes dans
l’algorithme LQ Grd et l’algorithme LQ Grd-Newt, qui consistaient à forcer la positivité des
solutions à chaque itération en les comparant à une valeur faible positive (équation (3.16)).
L’algorithme final s’écrit de la manière suivante :
Algorithme LQ mult
1. Mise à jour de la matriceS
a:
[S
a]
pn←[S
a]
pn× [A
a TX]
pn+P
M j=1,j6=p[S
a]
jn×[A
bTX]
(jp)n[A
T aAS]
pn+P
M j=1,j6=p[S
a]
jn×[A
T bAS]
(jp)n+ε
2. Mise à jour de la matriceS
bà partir deS
a:
[S
b]
(jp)n←[S
a]
jn[S
a]
pn3. A←A⊙((XS
T)⊘(ASS
T+ε))
4. [a
1(i)· · ·a
M(i)]←[a
1(i)· · ·a
M(i)]/P
Mj=1