一、概念引入
线性回归,就是能够用一个直线/一个平面···较为精确地描述数据之间的关系。常见的格式为:
通过计算数据的线性回归,可以得到各个变量X对于Y的权重,可以由已知的X推导出Y值。
例如:银行借贷额度由你的工资和年龄决定。
那么对于借贷额度而言,工资和年龄哪个比较重要?
已知你的工资和年龄,能否推断出银行为你开放借贷额度为多少?
线性回归就是假设借贷额度Y,工资和年龄成线性关系:
、表示工资和年龄对于借贷额度的重要性权重。
如果已知、、的值,就可以根据工资和年龄推断出银行为你开放借贷额度
二、成本函数
那么如何获得、、的值呢?
引入一个成本函数 ,有些地方也叫“损失函数”:
这个函数的输入对象为m*n的数据:
特征1 | 特征2 | ... | 特征n | Y |
---|---|---|---|---|
x11 | x12 | ... | x1n | y1 |
x21 | x22 | ... | x2n | y2 |
... | ... | ... | ... | ... |
xm1 | xm2 | ... | xmn | ym |
就是第个实际值和算法计算值之间的差距平方。
引入成本函数 用来描述算法的拟合效果, 越小说明拟合效果越好。
所以求算法最优的参数等价与计算最小时的值。
三、梯度下降
那么怎么才能求得最小的 呢?
假设 下图为的空间分布图,X轴、Y轴为、。随着、的变化,的值也在变化。
当然我们的目的是找到最小时的、的值。
是不是和我们上山下山有点像,一开始在点,朝着下坡的方向走一步到新的;然后朝着下坡的方向再走一步,···,走到局部最低点以后,朝着上坡的方向走一步,一步步走,直到最后知道全局的最低谷。
所谓上坡、下坡其实就是在各个上的偏度,例如计算在上的偏度:
偏导数可以穿透累加器
微分链接法则
经过偏度的计算,知道下一步的方向,但每个人迈一步的长度是有限制的,我们引入学习率,相当于迈一步的长度(先这么理解)。
以上通过偏导获得下一步的方向,通过设置学习率确定步伐的长度,因此下一个落脚点为:
例如,; 偏导数。
设置初始起点为(1,1),学习率
······慢慢达到谷底
如果初始起点为(1,1),学习率为0.2
······慢慢达到谷底
如果初始起点为(1,1),学习率为0.8
以上过程可以发现,学习率的大小和步伐的大小有关,学习率越大,步伐越大。
初始值的设置会影响到最终J(θ)的最小值,它可能是局部最小值,也可能是全局最小值。
学习速度的设置也会影响到梯度下降的性能和结果:
1)当设置过小时,由于沿着最陡峭方向每次迈进的步伐太小,而导致收敛时间过长;
2)当设置过大时,很有可能会直接越过最小值,而无法得到J(θ)的最小值。
通过梯度下降的方法,我们得到的最优参数,此时的拟合模型是最优的,和真实数据差距最小的。
至此,我们得到训练样本X和Y之间的关系和每个X对于Y的权重。
五、备注
(1)微积分基本法则
法则一:对 ,其针对 x 的偏导数为
法则二:偏导数可以穿透累加器,即
法则三:微分链接法则,比如 f(x) 是以 x 为自变量的函数,令 J(x)=g(f(x)) ,则 J(x) 的微分方程为
(2)参考资料
[1] 视频学习:https://www.bilibili.com/video/av39800693?from=search&seid=7055609900300366029
[2] 线性回归算法推导:http://blog.kamidox.com/gradient-descent.html
[3]单变量梯度下降案例:https://blog.csdn.net/weixin_42278173/article/details/81511646
网友评论