【发布时间】:2018-03-28 01:05:19
【问题描述】:
我有一个矩阵 R,我想使用梯度下降法来估计它。该代码适用于小尺寸矩阵(例如 100x1),但当我增加尺寸(例如 10x3)时它会给出 NaN 值。请帮忙!
R =[196,242,3;186,302,3;22,377,1;244,51,2;166,346,1;298,474,4;115,265,2;253,465,5;305,451,3;6,86,3];
N = length(R);
M = size(R,2);
K = 3;
P = rand(N,K);
Q = rand(M,K);
alpha = 0.002;
beta = 0.02;
for iter = 1 : 5000
e = R - P*Q';
P_new = P + 2*alpha*(e*Q-beta*P);
Q_new= Q + 2*alpha*(e'*P-beta*Q);
mse2(iter) = norm(R - P*Q')/norm(R);
P=P_new;
Q=Q_new;
end
R_est = P*Q';
【问题讨论】:
标签: matlab matrix gradient-descent