Matlab实现基于梯度优化的线性最小二乘

为了更直观的说明,拿一道例题来检验。
Matlab实现基于梯度优化的线性最小二乘_第1张图片
算法伪代码:
Matlab实现基于梯度优化的线性最小二乘_第2张图片

A=[0 1;1 1;2 1;3 1;4 1]; %常数项乘以的系数为1
b=[0;log(2);log(4);log(9);log(12)]; %ln y
eps=1e-6;
x=ones(2,1); %初始化
while(norm(A'*A*x-A'*b)>eps)
    x=x-0.05*(A'*A*x-A'*b); %过大的学习率不会收敛
end
x

需要注意的是,x向量上面的值是b,下面的值是 ln ⁡ a \ln a lna

你可能感兴趣的:(干货,matlab,机器学习,线性代数)