部分空间约束的最小二乘学习法的解,一般是通过将最小二乘学习的设计矩阵
置换为
的方式求得的。
线性模型的最小二乘学习法的运用实例(噪声很多的例子)。使用了三角多项式作为基函数。部分空间约束的最小二乘学习法中添加了约束条件,将参数限制在了
的部分空间内。
下面是这个例子的MATLAB程序源代码:
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.2*randn(n,1);
p(:,1)=ones(n,1);
P(:,1)=ones(N,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
t1=p\y;
F1=P*t1
t2=(p*diag([ones(1,11) zeros(1,20)]))\y;
F2=P*t2;
figure(1)
clf;hold on;axis([-2.8 2.8 -0.8 1.2]);
plot(X,F1,'g-');
plot(X,F2,'r--');
plot(x,y,'bo');
legend('LS','Subspace-Constrainted LS');
程序运行的结果如下: