线性回归 Linear Regression

线性回归的预设

  • 线性

    只能通过每个样本各维的线性组合获得预测结果,这使得函数很简单,但拟合能力较弱。

  • 同方差性

    每个样本的方差不变。方差不同会使得拟合函数对某些数据敏感性有差异。

  • 独立性

    每个样本独立于其他样本

  • 固定特征

    特征数是固定的

  • 非多重共线性

    特征直接不能存在线性关系

y=iw(i)ϕi(xx)+ϵ=wwTϕϕ(xx)+ϵJ(ww;xixi,yi)=i(yiy^i)2=i(yijw(j)ϕj(xixi))2

xx 经过 j 个基函数(basis function) ϕj 转为新的 j 维样本,同样是线性回归方程。经过变化后的方程对 ϕ(xx) 是线性回归,但对 xx 来说不是了,可以更好地拟合非线性函数。

常用基函数

  • ϕ(x)=xp
  • ϕ(x;μ,σ)=exp((xμ)22σ2)
  • ϕ(x;s)=11+exp(sx)
  • ϕ(x)=ln(x+1)
  • ϕ(x)=11X(x)={1,xX0,xX
  • ϕ(x)={sinnπxcosnπx

比如对 xx={x(1),x(2)} 使用多项式转换,并令最大次数为 2,得 ϕϕ(xx)={ϕ1(xx),,ϕj(xx)}={1,x(1),x(2),x(1)x(2),[x(1)]2,[x(2)]2}

随着多项式最大次数的提高,通过基函数转换而来的新向量的维数呈几何式增长。

最小二乘估计和最小二乘反演

依照 ΦΦ 左逆和右逆的存在情况。

ΦΦ=(ϕ0(x1x1)ϕ1(x1x1)ϕj(x1x1)ϕ0(x2x2)ϕ1(x2x2)ϕj(x2x2)ϕ0(xixi)ϕ1(xixi)ϕj(xixi))yy^=ΦΦwwletwwJ(ww;X,yy)=ww||yyyy^||2=2ΦΦT(ΦΦwwyy)=0thenww=(ΦΦTΦΦ)1ΦΦTyy

yy=ΦΦww(ΦΦΦΦT)(ΦΦΦΦT)1yy=ΦΦwwΦΦΦΦT(ΦΦΦΦT)1yy=ΦΦwwwwmn=ΦΦT(ΦΦΦΦT)1yylet ww0 be another the solution toyy=ΦΦwwthenΦΦ(ww0wwmn)=0and(ww0wwmn)Twwmn=(ww0wwmn)TΦΦT(ΦΦΦΦT)1yy=0i.e.(ww0wwmn)  wwmnso||ww0||2=||wwmn+ww0wwmn||2=||wwmn||2+||ww0wwmn||2||wwmn||2therefore||wwmn||2 has minimum norm

ww={(ΦΦTΦΦ)1ΦΦTyyleft inverseΦΦT(ΦΦΦΦT)1yyright inverse

值得注意的是,在左逆中 yy^=ΦΦww,而在右逆中 yy=ΦΦww;左逆中使用 wwJ,而右逆中使用 yy=ΦΦww

这是因为左逆中样本数量通常远大于特征数量,我们希望 ΦΦ 变换能够完成从低维空间向量 ww 到高维空间向量 yy 的变换,但这种变换因为维数差异不一定能完成,所以 ww 只能变换为 yy^,而衡量 yy,yy^ 之间的差异的就是损失函数。令损失函数最小化则是让变换的差异尽可能缩小。

而右逆中则是特征数量大于样本数量, ΦΦ 变换是从高维空间向量 ww 到低维空间向量 yy 的变换,这个变换必定有解,而且可能不止一个。wwmn=ΦΦT(ΦΦΦΦT)1yy 这个相等其实是在 ΦΦ 变换下的具有最小范数的向量。取得这个最小范数的关键在于 wwmn 处于 ΦΦT 的线性空间中,即 存在 wwmn=ΦΦTbb,bb=(ΦΦΦΦT)1yy。从图形上看,wwmn 映射到 yy 是直接投影,ww0wwmn 则是与 ΦΦT 正交的向量,总是投影到零空间,因此与 wwmn 相加不改变投影结果,但会增加范数。

A.shape=(m,n)rank(AA)=m, i.e., AA is of full row-rankrank(AA)=n, i.e., AA is of full column-rankrank(AA)=mrank(AAAAT)=mrank(AA)=nrank(AATAA)=n

梯度下降法

使用 Mean-Squared-Error (MSE) 作为损失函数,损失为 ϵ

ϵi=12(y(i)[ϕϕ(i)]Tww)2=12([y(i)]22y(i)[ϕϕ(i)]Tww+wwTϕϕ(i)[ϕϕ(i)]Tww)ϵ=E[ϵi]=12E[[y(i)]2]E[y(i)[ϕϕ(i)]T]+12wwTE[ϕϕ(i)[ϕϕ(i)]T]ww

E 为求样品平均的函数,比如 E[[y(i)]2]1Ni=1N[y(i)]2

let C=E[[y(i)]2],PT=E[y(i)[ϕϕ(i)]T],R=E[ϕϕ(i)[ϕϕ(i)]T]ϵ=E[ϵi]=12CPTww+12wwTRww

对每个样本损失 ϵ,求其关于 ww 的梯度 wwϵ=P+12(R+RT)ww=R P+Rww

wwwwηwwϵ,其中 η 为超参数学习率,则完成一步梯度下降。

也可使用 ww=R1P 直接得出结果,但实际情况中不一定能得出 R,P(数据集不完全 / 数据集太大放不进内存),而且这也只是损失函数为 MSE 的情况。(后面使用递归最小二乘可以使用这个方法)

xxxxTaa=xxaaTxx=aa

xxxxTAAxx=(AA+AAT)xx=A 为对称矩阵2AAxx

由所使用的训练集的大小,可以区分出三种梯度下降法:BGDSGDMini Batch GD

  • BGD 需要提前获得所有训练集,但是对于某些模型,需要边训练边使用,在使用的过程中收集数据,而且一般数据集也是比较大的;
  • SGD 是边训练边使用的模式,随着训练集的增加慢慢学习,因为不能获得所有数据所以无法计算 R,P
  • Mini Batch GD 接近 SGD,但是使用每次训练时更大的数据集。

如果在 SGD 或 Mini Batch GD 尝试用不完全的训练集来计算 R,P 直接获得 ww=argminww(ϵ)=R1P,那么只能达到这些不完全的训练集最小 ww,而不是整个训练集的 ww

递归最小二乘法

YYi=(y(0)y(1)y(i)),HHi=(hh0Thh1ThhiT),VVi=(v(0)v(1)v(i)),YYi=HHiXXi+VViXX^i=(HHiTHHi)1HHiTYYi=MMi=(HHiTHHi)1MMiHHiTYYi,notice that HHiTHHi=HHi1THHi1+hhihhiT,therefore, MMi=(MMi11+hhihhiT)1=MMi1MMi1hhihhiTMMi1IIi+hhiTMMi1hhiXX^i=MMiHHiTYYi=(MMi1MMi1hhihhiTMMi1IIi1+hhiTMMi1hhi)(HHi1TYYi1+hhiy(i))=XX^i1+MMi1hhiIIi1+hhiTMMi1hhi(y(i)hhiTXX^i1)

使用递归最小二乘则可以使用 ww=R1P 求解。

PNT=E[y(i)[ϕϕ(i)]T]=1Ni=1Ny(i)[ϕϕ(i)]T=1NYNTΦN=1N[(N1)PN1T+ϕϕNy(N)]RN=E[ϕϕ(i)[ϕϕ(i)]T]=1Ni=1Nϕϕ(i)[ϕϕ(i)]T=1NΦNTΦN=1N[(N1)RN1+ϕϕNϕϕNT]

AA=BB1+CCDD1CCTAA1=BBBBCC(DD+CCTBBCC)1CC1BB

(AA+BBCCDD)1=AA1AA1BB(CC1+DDAA1BB)1DDAA1

posted @   Violeshnv  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示