ML(二)

线性模型

线性模型是最简单的模型之一,它描述了一个(或多个)自变量对另一个因变量的影响是呈简单的比例,线性关系

输入(x)输出(y)
0.55.0
0.65.5
0.86.0
1.16.8
1.46.8

根据一组输入和输出(这叫做样本),寻找一个线性模型,这个线性模型能最优化的去拟合这些样本的数值分布。
在这里插入图片描述
线性模型在二维空间内表现为一条直线,再三维空间内表现为一个平面,更高维度下的线性模型是很难用几何图形来表示的(称为超平面),这个主要是有线性模型中的自变量的个数所影响。

设给定一组属性 x , x = ( x 1 ; x 2 ; . . . ; x n ) x, x=(x_1;x_2;...;x_n) x,x=(x1;x2;...;xn),线性方程的一般表达形式为:
y = w 1 x 1 + w 2 x 2 + w 3 x 3 + . . . + w n x n + b y = w_1x_1 + w_2x_2 + w_3x_3 + ... + w_nx_n + b y=w1x1+w2x2+w3x3+...+wnxn+b
写成向量形式为:
y = w T x + b y = w^Tx + b y=wTx+b
其中, w = ( w 1 ; w 2 ; . . . ; w n ) , x = ( x 1 ; x 2 ; . . . ; x n ) w=(w_1;w_2;...;w_n), x=(x_1;x_2;...;x_n) w=(w1;w2;...;wn),x=(x1;x2;...;xn),w和b经过学习后,模型就可以确定. 当自变量数量为1时,上述线性模型即为平面下的直线方程:
y = w x + b y = wx + b y=wx+b

线性模型的训练

在这里插入图片描述
从图中我们可以看出,二维平面中,当我们的样本点过多的时候,我们训练的线性模型并没有拟合到100%(当然,这几乎也是不可能的),我们只能找到一条与这些样本点几乎接近,或者说,模型与样本点的距离足够小的直线。

样本到直线的距离我们称为欧氏距离

  • 那么问题来了,我们怎样要使样本与直线的距离最近呢?我们可以用损失函数来进行度量

损失函数:真实值(由样本中给出)和预测值(由模型算出)之间的差异.损失函数值越小,表明模型预测值和真实值之间差异越小,模型性能越好;损失函数值越大,模型预测值和真实值之间差异越大,模型性能越差.
在回归问题中,均方差是常用的损失函数,这里的前面乘以2/1,也可以乘以4/1,除以N,都没有错,只影响损失函数的大小,不会影响这个值所代表的性质,平方是避免存在复数,不采用绝对值
E = 1 2 ∑ i = 1 n ( y − y ′ ) 2 E = \frac{1}{2}\sum_{i=1}^{n}{(y - y')^2} E=21i=1n(yy)2

y为模型预测值,y’为真实值
( w ∗ , b ∗ ) = a r g m i n 1 2 ∑ i = 1 n ( y − y ′ ) 2 = a r g m i n 1 2 ∑ i = 1 n ( y ′ − w x i − b ) 2 (w^*, b^*) = arg min \frac{1}{2}\sum_{i=1}^{n}{(y - y')^2} \\ = arg min \frac{1}{2}\sum_{i=1}^{n}{(y' - wx_i - b)^2} (w,b)=argmin21i=1n(yy)2=argmin21i=1n(ywxib)2

  • 基于均方误差最小化来进行模型求解的方法称为“最小二乘法”. 线性回归中,最小二乘法就是试图找到一条直线,是所有样本到直线的欧式距离之和最小. 可以将损失函数对w和b分别求导,得到损失函数的导函数,并令导函数为0即可得到w和b的最优解

这里我们得到的损失函数是关于w,b
y‘已知,只有w和b是未知,所以,我们想要 a r g m i n 1 2 ∑ i = 1 n ( y ′ − w x i − b ) 2 arg min \frac{1}{2}\sum_{i=1}^{n}{(y' - wx_i - b)^2} argmin21i=1n(ywxib)2这个值最小,我们只需要求出w和b的min就行,这个情况下,就要用到梯度下降法来训练出最优的w和b

梯度下降法

梯度(gradient)是一个向量(矢量,有方向),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大.损失函数沿梯度相反方向收敛最快(即能最快找到极值点).当梯度向量为零(或接近于零),说明到达一个极值点,这也是梯度下降算法迭代计算的终止条件.

  • 最初的w或者b参数可能是最不准确的,那时的斜率很大,收敛速度比较快,当向负方向进行收敛的是时候,当快要接近极值的时候,它会收敛的越来越慢,梯度越来越小。(数学上的意义,参数更新法则)

这种按照负梯度不停地调整函数权值的过程就叫作“梯度下降法”.通过这样的方法,改变权重让损失函数的值下降得更快,进而将值收敛到损失函数的某个极小值.

参数更新法则

在直线方程中,有两个参数需要学习, w 0 w_0 w0 w 1 w_1 w1,梯度下降过程中,分别对这两个参数单独进行调整,调整法则如下:
Δ w 0 \Delta w_0 Δw0就是梯度,要收敛的量, w 0 w_0 w0,就是原始的参数 w 0 w_0 w0

w 0 = w 0 + Δ w 0 w 1 = w 1 + Δ w 1 w_0 = w_0 + \Delta w_0\\ w_1 = w_1 + \Delta w_1 w0=w0+Δw0w1=w1+Δw1
Δ w 0 \Delta w_0 Δw0 Δ w 1 \Delta w_1 Δw1可表示为:
− η Δ l o s s Δ w 0 -\eta \frac{\Delta loss}{\Delta w_0} ηΔw0Δloss − η Δ l o s s Δ w 1 -\eta \frac{\Delta loss}{\Delta w_1} ηΔw1Δloss可以理解为 Δ w 0 \Delta w_0 Δw0 Δ w 1 \Delta w_1 Δw1对损失函数的影响。也就是一个对 Δ w 0 \Delta w_0 Δw0求偏导,一个对 Δ w 1 \Delta w_1 Δw1求偏导,前面的负号是控制收敛的方向的,向负梯度的方向
在这里插入图片描述

  • 梯度越大,调整越大,梯度越小,调整的越微弱

Δ w 0 = − η Δ l o s s Δ w 0 Δ w 1 = − η Δ l o s s Δ w 1 \Delta w_0 = -\eta \frac{\Delta loss}{\Delta w_0}\\ \Delta w_1 = -\eta \frac{\Delta loss}{\Delta w_1}\\ Δw0=ηΔw0ΔlossΔw1=ηΔw1Δloss
其中, η \eta η称为学习率(控制在0-1之间), Δ l o s s Δ w i \frac{\Delta loss}{\Delta w_i} ΔwiΔloss为梯度(即损失函数关于参数 w i w_i wi的偏导数). 损失函数表达式为:
l o s s = 1 2 ∑ ( y − y ′ ) 2 = 1 2 ∑ ( ( y − ( w 0 + w 1 x ) ) 2 ) loss =\frac{1}{2}\sum(y - y')^2 = \frac{1}{2}\sum((y-(w_0+w_1x))^2) loss=21(yy)2=21((y(w0+w1x))2)
对损失函数求导(求导过程见补充知识),可得 w 0 , w 1 w_0, w_1 w0,w1的偏导数为:
Δ l o s s Δ w 0 = ∑ ( ( y − y ′ ) ( − 1 ) ) = − ∑ ( y − y ′ ) Δ l o s s Δ w 1 = ∑ ( ( y − y ′ ) ( − x ) ) = − ∑ ( x ( y − y ′ ) ) \frac{\Delta loss}{\Delta w_0} = \sum((y - y')(-1)) = -\sum(y - y')\\ \frac{\Delta loss}{\Delta w_1} = \sum((y - y')(-x)) = -\sum(x(y - y')) Δw0Δloss=((yy)(1))=(yy)Δw1Δloss=((yy)(x))=(x(yy))

理解线性模型和梯度下降建议从数学意义上去理解,从根的角度去理解更好

  • 下面是对损失函数的求导过程

y ′ = w 0 + w 0 x 1 y' = w_0 + w_0 x_1 y=w0+w0x1
采用均方差损失函数:
l o s s = 1 2 ( y − y ′ ) 2 loss = \frac{1}{2} (y - y')^2 loss=21(yy)2
其中,y为真实值,来自样本;y’为预测值,即线性方程表达式,带入损失函数得:
l o s s = 1 2 ( y − ( w 0 + w 1 x 1 ) ) 2 loss = \frac{1}{2} (y - (w_0 + w_1 x_1))^2 loss=21(y(w0+w1x1))2
将该式子展开:
l o s s = 1 2 ( y 2 − 2 y ( w 0 + w 1 x 1 ) + ( w 0 + w 1 x 1 ) 2 ) 1 2 ( y 2 − 2 y ∗ w 0 − 2 y ∗ w 1 x 1 + w 0 2 + 2 w 0 ∗ w 1 x 1 + w 1 2 x 1 2 ) loss = \frac{1}{2} (y^2 - 2y(w_0 + w_1 x_1) + (w_0 + w_1 x_1)^2) \\ \frac{1}{2} (y^2 - 2y*w_0 - 2y*w_1x_1 + w_0^2 + 2w_0*w_1 x_1 + w_1^2x_1^2) \\ loss=21(y22y(w0+w1x1)+(w0+w1x1)2)21(y22yw02yw1x1+w02+2w0w1x1+w12x12)
w 0 w_0 w0求导:
∂ l o s s ∂ w 0 = 1 2 ( 0 − 2 y − 0 + 2 w 0 + 2 w 1 x 1 + 0 ) = 1 2 ( − 2 y + 2 w 0 + 2 w 1 x 1 ) = 1 2 ∗ 2 ( − y + ( w 0 + w 1 x 1 ) ) = ( − y + y ′ ) = − ( y − y ′ ) \frac{\partial loss}{\partial w_0} = \frac{1}{2}(0-2y-0+2w_0 + 2w_1 x_1 +0) \\ =\frac{1}{2}(-2y + 2 w_0 + 2w_1 x_1) \\ = \frac{1}{2} * 2(-y + (w_0 + w_1 x_1)) \\ =(-y + y') = -(y - y') w0loss=21(02y0+2w0+2w1x1+0)=21(2y+2w0+2w1x1)=212(y+(w0+w1x1))=(y+y)=(yy)
w 1 w_1 w1求导:
∂ l o s s ∂ w 1 = 1 2 ( 0 − 0 − 2 y ∗ x 1 + 0 + 2 w 0 x 1 + 2 w 1 x 1 2 ) = 1 2 ( − 2 y x 1 + 2 w 0 x 1 + 2 w 1 x 1 2 ) = 1 2 ∗ 2 x 1 ( − y + w 0 + w 1 x 1 ) = x 1 ( − y + y ′ ) = − x 1 ( y − y ′ ) \frac{\partial loss}{\partial w_1} = \frac{1}{2}(0-0-2y*x_1+0+2 w_0 x_1 + 2 w_1 x_1^2) \\ = \frac{1}{2} (-2y x_1 + 2 w_0 x_1 + 2w_1 x_1^2) \\ = \frac{1}{2} * 2 x_1(-y + w_0 + w_1 x_1) \\ = x_1(-y + y') = - x_1(y - y') w1loss=21(002yx1+0+2w0x1+2w1x12)=21(2yx1+2w0x1+2w1x12)=212x1(y+w0+w1x1)=x1(y+y)=x1(yy)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rebirth-LSS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值