深度学习–回归(李宏毅)

**

一、深度学习–回归(李宏毅)
**
一、偏差和方差
1、偏差和方差
对于下面图中的数据,我们希望寻找一个函数来拟合这些数据,也就是回归任务:
回归
我们尝试使用一次、二次直至五次的函数集来拟合一个简单的回归问题,在实验过程中发现对于低阶的函数效果不是太好,增加函数的复杂度后效果有了好转,但当函数过于复杂时,效果又会变差:
效果
事实上模型的损失主要来自两个方面:偏差(bias)和方差(variance)。以打靶作比喻,假设我们要求解的那个函数处于靶心位置,而我们采用的模型代表的函数集如果偏离靶心太远,就相当于有大的偏差,而如果这个使用这个函数集多次实验求解的函数不稳定,就相当于有大的方差:
偏差和方差
2、方差
下图展示了分别使用一次、三次、五次函数来拟合数据100次的实验结果:

多次实验
可以明显看出低阶函数显然更加地集中,也就是说具有较小的方差,而高阶函数不够稳定,具有较大的方差:
方差
3、偏差
我们永远也不可能知道数据所服从的真正的函数,因此这里我们假设真实的分布如下图这样,然后再来感受偏差的概念:
真实函数
下图分别展示了从低阶到高阶的函数集多次实验后的平均效果,其中黑色曲线代表我们假设的真实分布,蓝色曲线代表多次实验平均的分布:
偏差
可以看到虽然高阶函数的方差比较大,但是平均以后更加地接近真实分布,可以直观理解为高阶函数集较于低阶函数集包括更多的可选函数,因此更容易接近真实函数,下图中靶子上面蓝色的圆圈表示函数集覆盖的范围:
偏差

4、总结
总结来说对于低阶函数来说,损失主要来自偏差,而高阶函数的损失主要来自偏差。低阶函数的拟合能力有限,因此带来的问题称为欠拟合(underfitting),而高阶函数由于过于地powerful,从而容易带来过拟合(overfitting)的问题:
偏差vs方差
应对大的偏差的方法:
①增加更多特征作为输入
②使用更复杂的模型

应对大的方差的方法:
①更多数据
②正则化

二、梯度下降

1、Adagrad
二次微分大的点梯度虽然大但是可能会比梯度小的点离极值点更近,因此学习率需要考虑二次微分的影响,除以所有梯度的均方根是为了近似表示二次微分。
Adagrad
2、RMSProp
类比Adagrad的一种优化方法,与Adagrad不同的是学习率所除的分母。Adagrad学习率所除的分母会无限累加,导致后期参数更新幅度很小,RMSProp避免了这个问题。然而RMSProp无法解决卡在鞍点的问题。
RMSProp
3、SGD(随机梯度下降)

a、Batch gradient descent(批量梯度下降)
  在整个数据集上每更新一次权重,要遍历所有的样本,由于样本集过大,无法保存在内存中,无法线上更新模型。对于损失函数的凸曲面,可以收敛到全局最小值,对于非凸曲面,收敛到局部最小值。
  随机梯度下降(SGD)和批量梯度下降(BGD)的区别。SGD 从数据集中拿出一个样本,并计算相关的误差梯度,而批量梯度下降使用所有样本的整体误差:「关键是,在更新中没有随机或扩散性的行为。」
b、stochastic gradient descent(SGD,随机梯度下降)
  可以在线学习,收敛的更快,可以收敛到更精确的最小值。但是梯度更新太快,而且会产生梯度震荡,使收敛不稳定。
c、Mini-batch gradient descent(MBGD,小批量梯度下降)
  批量梯度下降算法和随机梯度下降算法的结合体。两方面好处:一是减少更新的次数,使得收敛更稳定;二是利用矩阵优化方法更有效。
  以一个极端情况为例,若训练集前一半和后一半梯度相同。那么如果前一半作为一个batch,后一半作为另一个batch,那么在一次遍历训练集时,batch的方法向最优解前进两个step,而整体的方法只前进一个step。
  批量梯度下降法BGD:批量梯度下降法(Batch Gradient Descent,简称BGD)是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新。
  随机梯度下降法SGD:
  小批量梯度下降法MBGD:有上述的两种梯度下降法,其各自均有优缺点,那么能不能在两种方法的性能之间取得一个折衷呢?即,算法的训练过程比较快,而且也要保证最终参数训练的准确率,而这正是小批量梯度下降法(Mini-batch Gradient Descent,简称MBGD)的初衷。
M <N时(就是用了所有的样本), 就是所谓的batch GD
M =1时 (就是用了其中的一个样本), 就是所谓的SGD
M <1, 小于 N时, 就是 mini-batch GD.

4、SGDM
为梯度下降加入一个冲量,每次迭代移动的方向为梯度的反方向向量加上上次移动的方向向量,向量前面可能会有系数。
SGDM
5、Adam
结合RMSProp和SGDM两种算法优点的一种优化算法。m和v需要除上1-β是为了前期的纠偏。分母加上一个ε是为了防止分母下溢到0导致学习率是未定义的。
Adam
总结-Adam vs SGDM
Adam:训练速度快但是泛化误差大、不稳定。
SGDM:稳定、泛化误差小、更好的收敛性。
训练函数和测试函数
改善Adam

(1)、AMSGrad
在这里插入图片描述
(2)、AdaBound
AdaBound
改善SGD

(1)、Cyclical LR
在这里插入图片描述

(2)、SGDR
在这里插入图片描述
(3)、One-cycle LR
在这里插入图片描述

*特征缩放
在这里插入图片描述

来源:简书 https://www.jianshu.com/p/b23832463758

本文转载用于学习资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值