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 :