使用随机梯度算法对高斯核模型进行最小二乘法的MATLAB程序

n=50; s=1000; x=linspace(-3,3,n)';

pix=pi*x; y=sin(pix)+o.1*x+0.05*randn(n,1);

hh=2*0.3^2;t0=randn(n,1);e=0.1;

for o=1:n*1000

 i=ceil(rand*n);
ki=exp(-(x-x(i)).^2/hh);t=t0-e*ki*(ki'*t0-y(i));
if=norm(t-t0)<0.000001,break,
end

K=exp(-(repmat(X.^2,N,1)-2*X*x')/hh;

F=K*t;

figure(1); c1f; hold on ;axis([-2.8  2.8  -0.5  1.2]);
plot(X, F, '-g');  plot(x, y, 'bo

梯度法的收敛速度强烈依赖与梯度下降的步幅以及收敛结果的判断方法,nrom(t-t0<0.000001)如果合理调整这个值,收敛速度会一定程度内提高,这个一般比较困难,需要从大到小逐步优化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值