最小二乘法深入

上次写了一个一次函数y=ax+b类型的最小二乘法,即可以看做是n维输入列向量对应的一个n维输出列向量,然后对已知结果进行学习,得到拟合公式。这里对m*n的矩阵进行最小二乘法分析。

设模型的输出为和训练集输出,它们之间的平方误差为:

  学习目标就是得到模型参数θ 使得平方误差最小,加个系数1/2是为了更好的微分。

 

平方误差是残差 的  l2  范数,因此最小二乘学习法有时候也称为 l2 损失最小化学习法。

 

如果使用线性模型

训练样本的平方差就能表示为下列形式

在这里,是训练输出的n维向量。Φ是下式定义的n*b阶矩阵,也称为设计矩阵

训练样本的平方差的参数向量θ的偏微分

将此偏微分设置为0,就得到了最小二乘解满足的关系式

可以得到方程式的解为:

这里+为剑标,对于只有方阵,非奇异矩阵才能定义逆矩阵,广义逆矩阵则是矩形矩阵或奇异矩阵都可以定义,是对逆矩阵的推广。

 

对基函数

进行最小二乘法学习。

 

%采用的方法是直接使原始输出y=系数*方程矩阵,求出系数,然后再乘以新的方程矩阵就得到结果了
clear
clc
n=50;
N=1000;
x=linspace(-3,3,n)';
X=linspace(-3,3,N)';
pix=pi*x;
y=sin(pix)./(pix)+0.1*x+0.05*randn(n,1);

p(:,1)=ones(n,1);%样本第一列为1
P(:,1)=ones(N,1);%待测样本第一列也为1
for j=1:15
    p(:,2*j)=sin(j/2*x);   p(:,2*j+1)=cos(j/2*x);
    P(:,2*j)=sin(j/2*X);   P(:,2*j+1)=cos(j/2*X);
end
t=p\y;
F=P*t;
figure(1);
clf;
hold on;
axis([-2.8 2.8 -0.5 1.2]); %设置x轴的区间和y轴的区间
plot(X,F,'g-');
plot(x,y,'bo');

结果图:

 


 

对顺序为i的训练样本的平方差通过权重wi≥0进行加权,然后再采用最小二乘法学习,称为加权最小二乘学习法。

加权最小二乘学习法与没有权重时相同。

W是以w1,....,wn为对角元素的对角矩阵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风翼冰舟

额~~~CSDN还能打赏了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值