七.线性回归原理

1.线性回归模型

m m m个样本,每个样本有 n n n维特征和一个标签 y y y,可以用数学表示如下:
( x 1 1 , x 2 1 , x 3 1 , . . . , x n 2 , y 2 ) , ( x 1 2 , x 2 2 , x 3 2 , . . . , x n 2 , y 2 ) , . . . , ( x 1 m , x 2 m , x 3 m , . . . , x n m , y m ) (x_{1}^{1},x_{2}^{1},x_{3}^{1},...,x_{n}^{2}, y^{2} ),(x_{1}^{2},x_{2}^{2},x_{3}^{2},...,x_{n}^{2}, y^{2} ),...,(x_{1}^{m},x_{2}^{m},x_{3}^{m},...,x_{n}^{m}, y^{m} ) (x11,x21,x31,...,xn2,y2),(x12,x22,x32,...,xn2,y2),...,(x1m,x2m,x3m,...,xnm,ym)
上式中,上角标代表第 i i i个样本,下角标代表第 i i i个样本的第 j j j个维度。
对于以上样本,可以假设一个多元一次方程来表示 y y y x x x之间的关系:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + . . . + θ n x n h_{\theta }(x) =\theta_{0}+\theta_{1}x_{1} +\theta_{2}x_{2}+\theta_{3}x_{3}+...+\theta_{n}x_{n} hθ(x)=θ0+θ1x1+θ2x2+θ3x3+...+θnxn
为了使表示更简洁,给每个样本添加一个 x 0 = 1 x_{0}=1 x0=1,模型可以表示为下:
h θ ( x ) = ∑ i = 1 n θ i x i h_{\theta }(x) =\sum_{i=1}^{n}\theta _{i} x_{i} hθ(x)=i=1nθixi
用矩阵写出上式为:
h θ ( X ) = X θ h_{\theta }(\mathbf{X} ) =\mathbf{X\theta } hθ(X)=Xθ
其 中 , X ∈ R m × n , θ ∈ R n × 1 , h θ ( X ) ∈ R m × 1 其中,\mathbf{X}\in R^{m\times n},\theta\in R^{n\times 1},h_{\theta }(\mathbf{X} )\in R^{m\times 1} XRm×n,θRn×1,hθ(X)Rm×1

2.损失函数

h θ ( x ) h_{\theta }(\mathbf{x} ) hθ(x)是假设模型,真实模型未知。因此,引出损失函数这个概念。即损失函数是衡量假设模型和真实模型之间的距离的函数。
线性回归的损失函数为均方误差:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) J(\theta )=\frac{1}{2m} \sum_{i=1}^{m}(h_{\theta }(x^{i})-y^{i}) J(θ)=2m1i=1m(hθ(xi)yi)
上式中, 1 2 \frac{1}{2} 21是为了简化计算添加的。
用矩阵表示线性回归的损失函数为:
J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y ) J(\mathbf{\theta } )=\frac{1}{2}(\mathbf{X\theta-Y} )^{T} (\mathbf{X\theta-Y} ) J(θ)=21(XθY)T(XθY)
其中, X ∈ R m × n , θ ∈ R n × 1 , Y ∈ R m × 1 , J ( θ ) ∈ R \mathbf{X} \in R^{m\times n},\mathbf{\theta }\in R^{n\times 1} , \mathbf{Y}\in R^{m\times 1} ,J(\theta )\in R XRm×n,θRn×1,YRm×1,J(θ)R

3.参数学习方法之最小二乘法和梯度下降法

损失函数越小,说明假设模型和真实模型越接近,即假设模型越好。
所以,对于线性回归,使 J ( θ ) J(\theta) J(θ)越小的 θ \theta θ,所表示的模型 h θ ( x ) h_{\theta }(x) hθ(x)效果越好。即参数学习的过程为极小化损失函数 J ( θ ) J(\theta) J(θ)。常用的解法有两种:

(1)最小二乘法

当样本容量较小,并且可以求出解析解的时候,一般用最小二乘法:
arg ⁡ min ⁡ θ J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y ) \arg\min _{\theta }J(\theta )=\frac{1}{2}(\mathbf{X\theta-Y} )^{T} (\mathbf{X\theta-Y} ) argθminJ(θ)=21(XθY)T(XθY)
要求 ∂ J ∂ θ \frac{\partial J}{\partial \theta } θJ,标量对向量求导,使用矩阵微分:
d J ( θ ) = t r ( d J ( θ ) ) = 1 2 t r [ d ( ( X θ − Y ) T ( X θ − Y ) ) ] , 标 量 的 迹 = 1 2 t r [ d ( X θ − Y ) T ( X θ − Y ) + ( X θ − Y ) T d ( X θ − Y ) ] , 矩 阵 乘 法 = 1 2 t r [ ( X d θ ) T ( X θ − Y ) ] + 1 2 t r [ ( X θ − Y ) T X d θ ] , 迹 的 转 置 = 1 2 t r [ ( X θ − Y ) T X d θ ] + 1 2 t r [ ( X θ − Y ) T X d θ ] , 迹 的 转 置 = t r [ ( X θ − Y ) T X d θ ] , 合 并 同 类 项 \begin{aligned} dJ(\theta )&=tr(dJ(\theta ))=\frac{1}{2}tr[d((\mathbf{X\theta-Y} )^{T} (\mathbf{X\theta-Y} ))],标量的迹\\ &=\frac{1}{2}tr[d(\mathbf{X\theta-Y} )^{T} (\mathbf{X\theta-Y} )+(\mathbf{X\theta-Y} )^{T} d(\mathbf{X\theta-Y} )],矩阵乘法\\ &=\frac{1}{2}tr[(\mathbf{X}d\theta )^{T} (\mathbf{X\theta-Y} )]+\frac{1}{2}tr[(\mathbf{X\theta-Y} )^{T}\mathbf{X}d\theta],迹的转置\\ &=\frac{1}{2}tr[(\mathbf{X\theta-Y} )^{T}\mathbf{X}d\theta]+\frac{1}{2}tr[(\mathbf{X\theta-Y} )^{T}\mathbf{X}d\theta],迹的转置\\ &=tr[(\mathbf{X\theta-Y} )^{T}\mathbf{X}d\theta],合并同类项 \end{aligned} dJ(θ)=tr(dJ(θ))=21tr[d((XθY)T(XθY))],=21tr[d(XθY)T(XθY)+(XθY)Td(XθY)],=21tr[(Xdθ)T(XθY)]+21tr[(XθY)TXdθ],=21tr[(XθY)TXdθ]+21tr[(XθY)TXdθ],=tr[(XθY)TXdθ],
根据矩阵微分和导数的关系,可得:
∂ J ( θ ) ∂ θ = ( ( X θ − Y ) T X ) T = X T ( X θ − Y ) = 0 \frac{\partial J(\theta )}{\partial \theta } =((\mathbf{X\theta-Y} )^{T}\mathbf{X})^{T}= \mathbf{X}^{T}(\mathbf{X\theta-Y} )=0 θJ(θ)=((XθY)TX)T=XT(XθY)=0
最终求得:
θ = ( X T X ) − 1 X T Y \theta =(\mathbf{X^{T} X} )^{-1} \mathbf{X^{T} Y} θ=(XTX)1XTY
也就是说,当 X T X \mathbf{X^{T} X} XTX的逆矩阵存在时,可以直接求出最终的参数 θ \theta θ

(2)梯度下降法

当样本量过大或逆矩阵不存在时,一般使用梯度下降法迭代求出参数值。
由(1)可知,第 k k k次迭代时, ∂ J k ∂ θ k \frac{\partial J_{k} }{\partial \theta _{k} } θkJk的梯度向量为:
∂ J k ∂ θ k = X T ( X θ k − Y ) \frac{\partial J^{k} }{\partial \theta ^{k} } =\mathbf{X}^{T}(\mathbf{X\theta ^{k} -Y} ) θkJk=XT(XθkY)
则第 k + 1 k+1 k+1次迭代值为:
θ k + 1 = θ k − λ X T ( X θ k − Y ) \theta ^{k+1}=\theta ^{k}-\lambda \mathbf{X}^{T}(\mathbf{X\theta ^{k} -Y} ) θk+1=θkλXT(XθkY)
其中,$\lambda $为步长,可以通过一维搜索确定。

4.线性回归流程(梯度下降法)

输入:样本集 X ∈ R m × n \mathbf{X} \in R^{m\times n} XRm×n,精度阈值 ϵ \epsilon ϵ,步长 λ \lambda λ,要预测的样本 x \mathbf{x} x
输出:预测结果 h ( x ) h(\mathbf{x}) h(x)
(1)初始化迭代轮数 k = 1 k=1 k=1,参数向量 θ 1 ∈ R n × 1 \theta ^{1} \in R^{n\times 1} θ1Rn×1
(2)求出第 k k k次迭代的梯度向量:
∂ J ( θ k ) ∂ θ k = X T ( X θ k − Y ) \frac{\partial J(\theta ^{k} )}{\partial \theta ^{k}} =\mathbf{X}^{T}(\mathbf{X\theta ^{k} -Y} ) θkJ(θk)=XT(XθkY)
(3)在第 k k k次迭代中,如果向量 ∂ J ( θ k ) ∂ θ k \frac{\partial J(\theta ^{k} )}{\partial \theta ^{k}} θkJ(θk)中的每个分量都小于 ϵ \epsilon ϵ,迭代停止,转(5);否则,令:
θ k + 1 = θ k − λ X T ( X θ k − Y ) , k = k + 1 \theta ^{k+1}=\theta ^{k}-\lambda \mathbf{X}^{T}(\mathbf{X\theta ^{k} -Y} ),k=k+1 θk+1=θkλXT(XθkY),k=k+1
(4)重复(2)、(3)直到迭代停止,得最终参数向量 θ ∗ \theta ^{*} θ
(5)将要预测的样本 x \mathbf{x} x带到假设函数中可得到最终预测结果:
h ( x ) = x θ ∗ h(\mathbf{x})=\mathbf{x}\theta ^{*} h(x)=xθ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值