机器学习(一)——线性回归和梯度下降

线性回归

定义

什么是线性回归(Linear Regression)?说的通俗易懂一点,就像高中数学在一个平面内给出了一堆点,让我们找到一个最符合的直线来描述。线性回归就是让我们找到一个最合适的线性函数来描述给出的数据。
在这里插入图片描述

模型

输入: X = { x i } i = 1 N , x i ∈ R m \mathcal{X}=\{x_i\}_{i=1}^N,x_i \in \mathbb{R}^m X={xi}i=1N,xiRm
其中N是数据个数, x i x_i xi包含m个特征属性。

输出: Y = { y i } i = 1 N , y i ∈ R \mathcal{Y}=\{y_i\}_{i=1}^N,y_i \in \mathbb{R} Y={yi}i=1N,yiR

对于loss我们有不同的计算方式,我们可以用 l ( y i ^ , y i ) = ∣ y i ^ − y i ∣ l(\hat{y_i},y_i)=|\hat{y_i}-y_i| l(yi^,yi)=yi^yi,也可以用 l ( y i ^ , y i ) = 1 2 ( y i ^ − y i ) 2 l(\hat{y_i},y_i)=\frac{1}{2}(\hat{y_i}-y_i)^2 l(yi^,yi)=21(yi^yi)2。这里我们使用的是第二种。
Loss function: L D ( W ) = ∑ i = 1 N l ( y i ^ , y i ) \mathcal{L}_D(W)=\sum_{i=1}^Nl(\hat{y_i},y_i) LD(W)=i=1Nl(yi^,yi)
L D \mathcal{L}_D LD的大小表示函数拟合的效果,其值越小说明函数拟合的越好,因此我们需要寻找 L D \mathcal{L}_D LD的最小解 f ∗ = a r g m i n f ∑ i = 1 N l ( y i ^ , y i ) f^*=\mathop{argmin}\limits_{f}\sum_{i=1}^Nl(\hat{y_i},y_i) f=fargmini=1Nl(yi^,yi)

因此我们需要通过学习得到模型函数:
f ( x ; w , b ) = w 1 x 1 + . . . w m x m + b = ∑ i = 1 m w i x i + b = w T + b f(x;w,b)=w_1x_1+...w_mx_m+b =\sum_{i=1}^mw_ix_i+b =w^T+b f(x;w,b)=w1x1+...wmxm+b=i=1mwixi+b=wT+b
也就是算出 w ∗ , b ∗ = a r g m i n w , b L D ( w , b ) w^*,b^*=\mathop{argmin}\limits_{w,b}\mathcal{L}_D(w,b) w,b=w,bargminLD(w,b)

闭式解

为了简化证明过程,我们引入了增广矩阵和增广向量。
X = ( x 1 , x 2 , . . . , x i , . . . , x n ) T X=(x_1,x_2,...,x_i,...,x_n)^T X=(x1,x2,...,xi,...,xn)T
x i = ( 1 , x i 1 , x i 2 , . . . , x i m ) x_i=(1,x_{i1},x_{i2},...,x_{im}) xi=(1,xi1,xi2,...,xim)
w = ( b , w 1 , w 2 , . . . , w n ) T w=(b,w_1,w_2,...,w_n)^T w=(b,w1,w2,...,wn)T
因此可以得到 L D ( w ) = 1 2 ∣ ∣ Y − X w ∣ ∣ 2 2 \mathcal{L}_D(w)=\frac{1}{2}||Y-Xw||_2^2 LD(w)=21YXw22,证明过程如下:
在这里插入图片描述
闭式解求解过程如下:
在这里插入图片描述
由于 L D ( w ) \mathcal{L}_D(w) LD(w)是凸函数,所以 ∂ L D ( w ) ∂ w = 0 \frac{\partial \mathcal{L}_D(w)}{\partial w}=0 wLD(w)=0时即为所需解。
在这里插入图片描述
因此可以得到闭式解 w ∗ = a r g m i n w L D ( w ) = ( X T X ) − 1 X T y w^*=\mathop{argmin}\limits_{w}\mathcal{L}_D(w)=(X^T X)^{-1}X^Ty w=wargminLD(w)=(XTX)1XTy

但是如果遇到矩阵不可逆的情况则该结论不适用,这里就不加以讨论了。

梯度下降

定义

所谓梯度下降,简单来说就是通过下降方向来调整参数以得到最佳解的过程。那么我们需要做的就是寻找梯度下降方向以及设置步长。
在这里插入图片描述
如何找到一个可行的搜索方向?如何设置一个合适的步长 η \eta η

Descent Direction

我们用 d = − ∂ L D ( w ) ∂ w d=-\frac{\partial \mathcal{L}_D(w)}{\partial w} d=wLD(w)来描述下降方向, L D ( w , ) = L D ( w + η d ) ≤ L D ( w ) \mathcal{L}_D(w^,)=\mathcal{L}_D(w+\eta d)\leq \mathcal{L}_D(w) LD(w,)=LD(w+ηd)LD(w) 结合高中数学知识应该很好理解。
在这里插入图片描述

Update Parameters

得到 d d d后我们可以更新参数 w w w的值
w , = w − η ∂ L D ( w ) ∂ w w^,=w-\eta \frac{\partial \mathcal{L}_D(w)}{\partial w} w,=wηwLD(w)
在这里插入图片描述

η \eta η的设置

如果 η \eta η值过大,则会导致震荡或者发散的情况;若太小,则导致收敛速率过慢。因此我们需要调整得到一个较佳的 η \eta η值。一种比较基础的方法是逐步减小 η \eta η η k + 1 = η k k + 1 \eta_{k+1}=\frac{\eta_k}{k+1} ηk+1=k+1ηk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值