100% ont trouvé ce document utile (1 vote)
34 vues3 pages

Descente de Gradient Stochastique en MATLAB

Transféré par

junromjiatsa
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 ODT, PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
34 vues3 pages

Descente de Gradient Stochastique en MATLAB

Transféré par

junromjiatsa
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 ODT, PDF, TXT ou lisez en ligne sur Scribd

DESCENTE DE GRADIENT STOCHASTIQUE

I-DEFINITION

La descente de gradient Stochastique (SGD) est une méthode d optimisation utilisée pour
minimiser une fonction de coût, souvent représente sous forme matricielle. Dans le contexte des
matrices, SGD ajuste les elements d une matrice de poids W en se basant sur des exemples
individuel d une matrice de données A, a chaque itération , le gradient de la fonction de coût est
calcule pour un seul element A(i,j) , permettant une mise a jour rapide et fréquente de poids

W(i,j) = W(i,j)+alpha.(A(i,j)-W(i,j))
ou alpha est le taux d apprentissage

II- CODE MATLAB

m = 4;
n = 3;

A =rand(m,n) ;

W = rand(m, n);

alpha = 0.01;
max_iter = 1000;

error_history = zeros(max_iter, 1);

for iter = 1:max_iter


total_error = 0;

for i = 1:m
for j = 1:n
error = A(i, j) - W(i, j);
total_error = total_error + error^2;
W(i, j) = W(i, j) + alpha * error;
end
end
error_history(iter) = total_error;
end

disp(W);
plot(1:max_iter, error_history);
xlabel('Itérations');
ylabel('Erreur totale');
title('Convergence de la descente de gradient');

Explication du code

1- Dimensions de la Matrice

m : Nombres de lignes de la matrice


n: Nombre de colonnes de la matrices
2-Generation des Matrices

A =rand(m,n) ;

W = rand(m, n);

A : est une matrice aléatoire mxn qui sert de reference ou cible pourquoi aléatoire car nous utilisons
rand mais a ce niveau l utilisateur peut lui même entrer sa matrice

W: est une matrice de poids initialisée aléatoirement , qui sera ajustée par la descente gradient

3-Parametres de la Descente Gradient

alpha = 0.01;
max_iter = 1000;

alpha : Taux d apprentissage qui détermine la taille des mises a jour des poids pour notre cas nous l
avons initialiser a 0.01.

max_iter : le nombre maximal d itérations pour l algorithme.

4-Initialisation et Boucle Principale


error_history = zeros(max_iter, 1);

for iter = 1:max_iter


total_error = 0;

for i = 1:m
for j = 1:n
error = A(i, j) - W(i, j);
total_error = total_error + error^2;
W(i, j) = W(i, j) + alpha * error;
end
end
error_history(iter) = total_error;
end

Boucle Principale : Pour chaque itération , le code calcule l erreur entre les elements
correspondants des matrices A et W , puis met a jour les poids dans W en utilisant la règle de mise a
jour du gradient.

Erreur totale : l erreur quadratique totale est calculée et stockée pour chaque itération

5-Affichage et Trace des Résultats


disp(W);
plot(1:max_iter, error_history);
xlabel('Itérations');
ylabel('Erreur totale');
title('Convergence de la descente de gradient');

Affichage : la matrice W mise a jour est affiche dans la console

Trace : Un graphique est généré pour montrer comment l erreur totale évolue au cours des
itérations , ce qui permet d évaluer la convergence

ANNEXE

Courbe :

Matrice de descente :

Vous aimerez peut-être aussi