线性回归之梯度下降学习法

MSE公式

由上一篇数值预测得到的MSE公式为:
在这里插入图片描述

对于wx+b-y,其中wx+b为预测直线,y为样本数据的y值,用yi表示。由于yi对于wx+b预测直线,x值是相同的,因此可以将x=xi,xi、yi为样本数据的值。而b值是一个常量。这时候可以看成求w的值,使得MES最小。(此时x、b、y都是固定值,w是变量)

MSE对于W的曲线如下图所示:
在这里插入图片描述

对MSE公式求导:
在这里插入图片描述
设求导公式A = mse/w
若A > 0, 则w需要变小,w - A 可以使得w变小
若A < 0,则w需要变大,w - A可以使得w变大
若A = 0,w取得最合适的值,此时MSE最小

因此我们可以给w一个值,取得 A的大小,然后w - A求的一个新的w值,即 w(i+1) = w(i) - A。这个不停找最合适的W的过程,称之为梯度下降学习法。

最终得到求w的公式:w(i+1) = w(i) - αA,其中α为学习因子,影响w的变化率,一般的,α根据经验和计算可以得到。

那么训练集应该取多少合适呢?
当训练集越小的时候,训练出来的结果在测试集得到的误差也越大。
当训练集越大的时候,往往需要巨大的算力,很难得到训练结果。
因此训练集不应该太大,也不应该太小。

思考
MSE越小越好吗?
不是的!MSE太小,可能会有过拟合的问题。即训练集取得太少或者不合理,使得在测试集表现反而变差。这样训练出来的数据不具备普遍性。

在训练集上,MSE随着t训练时间增加而变小,测试集使用训练集的结果,随着时间t增加时,开始时呈下降趋势,直到临界点t1时,测试集反而会随着训练时间t变大。因此t1为合理的训练时间。

思考
假设有n个数据取m个数据做训练,在实际中,如果m取值小,和实际mse偏差大 。如果 m取值太大,和实际mse就偏差小。这时候需要考虑运算量和振幅。振幅d可以表示为d = 1/√m,当m越大,震荡幅度越小。当m增加100倍时,运算量增加100倍,震荡幅度为1/10。当运算量增大10000倍,运算量增加10000倍,偏差d震荡幅度为1/100。因此,增大运算量带来的性价比不高。在实际中会取m=2^n,m取值128、256这种小值,多算几次,性价比会更高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值