最小二乘法深入
上次寫了一個一次函數(shù)y=ax+b類型的最小二乘法,即可以看做是n維輸入列向量對應(yīng)的一個n維輸出列向量,然后對已知結(jié)果進行學習,得到擬合公式。這里對m*n的矩陣進行最小二乘法分析。
設(shè)模型的輸出為和訓練集輸出,它們之間的平方誤差為:
? 學習目標就是得到模型參數(shù)θ 使得平方誤差最小,加個系數(shù)1/2是為了更好的微分。
?
平方誤差是殘差?的 ?l2 ?范數(shù),因此最小二乘學習法有時候也稱為 l2 損失最小化學習法。
?
如果使用線性模型
訓練樣本的平方差就能表示為下列形式
在這里,是訓練輸出的n維向量。Φ是下式定義的n*b階矩陣,也稱為設(shè)計矩陣
訓練樣本的平方差的參數(shù)向量θ的偏微分為
將此偏微分設(shè)置為0,就得到了最小二乘解滿足的關(guān)系式
可以得到方程式的解為:
這里+為劍標,對于只有方陣,非奇異矩陣才能定義逆矩陣,廣義逆矩陣則是矩形矩陣或奇異矩陣都可以定義,是對逆矩陣的推廣。
?
對基函數(shù)
進行最小二乘法學習。
?
%采用的方法是直接使原始輸出y=系數(shù)*方程矩陣,求出系數(shù),然后再乘以新的方程矩陣就得到結(jié)果了 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:15p(:,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]); %設(shè)置x軸的區(qū)間和y軸的區(qū)間 plot(X,F,'g-'); plot(x,y,'bo');結(jié)果圖:
?
?
對順序為i的訓練樣本的平方差通過權(quán)重wi≥0進行加權(quán),然后再采用最小二乘法學習,稱為加權(quán)最小二乘學習法。
加權(quán)最小二乘學習法與沒有權(quán)重時相同。
W是以w1,....,wn為對角元素的對角矩陣。
總結(jié)
- 上一篇: HMM前向算法,维比特算法,后向算法,前
- 下一篇: 典型关联分析CCA(canonical