回归|深度学习(李宏毅)(一)

简介: 回归|深度学习(李宏毅)(一)

一、偏差和方差


  1. 偏差和方差


对于下面图中的数据,我们希望寻找一个函数来拟合这些数据,也就是回归任务:


                                QQ图片20220531173145.png


                                                           回归


我们尝试使用一次、二次直至五次的函数集来拟合一个简单的回归问题,在实验过程中发现对于低阶的函数效果不是太好,增加函数的复杂度后效果有了好转,但当函数过于复杂时,效果又会变差:


 QQ图片20220531173142.png


                                                              效果


事实上模型的损失主要来自两个方面:偏差(bias)和方差(variance)。以打靶作比喻,假设我们要求解的那个函数处于靶心位置,而我们采用的模型代表的函数集如果偏离靶心太远,就相当于有大的偏差,而如果这个使用这个函数集多次实验求解的函数不稳定,就相当于有大的方差:



QQ图片20220531173139.png


                                                          偏差和方差


  1. 方差


下图展示了分别使用一次、三次、五次函数来拟合数据100次的实验结果:


QQ图片20220531173137.png

                                                           多次实验

可以明显看出低阶函数显然更加地集中,也就是说具有较小的方差,而高阶函数不够稳定,具有较大的方差:

            QQ图片20220531173134.png

                                                                 方差


  1. 偏差


我们永远也不可能知道数据所服从的真正的函数QQ图片20220531173532.png,因此这里我们假设真实的分布如下图这样,然后再来感受偏差的概念:

QQ图片20220531173128.png


                                                     真实函数


下图分别展示了从低阶到高阶的函数集多次实验后的平均效果,其中黑色曲线代表我们假设的真实分布,蓝色曲线代表多次实验平均的分布:


QQ图片20220531173124.png


                                                               偏差


可以看到虽然高阶函数的方差比较大,但是平均以后更加地接近真实分布,可以直观理解为高阶函数集较于低阶函数集包括更多的可选函数,因此更容易接近真实函数,下图中靶子上面蓝色的圆圈表示函数集覆盖的范围:


QQ图片20220531173122.png

                                                            偏差


  1. 总结


总结来说对于低阶函数来说,损失主要来自偏差,而高阶函数的损失主要来自偏差。低阶函数的拟合能力有限,因此带来的问题称为欠拟合(underfitting),而高阶函数由于过于地powerful,从而容易带来过拟合(overfitting)的问题:


QQ图片20220531173119.png


                                                         偏差vs方差


应对大的偏差的方法:


①增加更多特征作为输入


②使用更复杂的模型


应对大的方差的方法:


①更多数据


②正则化


二、梯度下降


  • Adagrad


二次微分大的点梯度虽然大但是可能会比梯度小的点离极值点更近,因此学习率需要考虑二次微分的影响,除以所有梯度的均方根是为了近似表示二次微分。


QQ图片20220531173116.png


                                                  Adagrad


  • RMSProp


类比Adagrad的一种优化方法,与Adagrad不同的是学习率所除的分母。Adagrad学习率所除的分母会无限累加,导致后期参数更新幅度很小,RMSProp避免了这个问题。然而RMSProp无法解决卡在鞍点的问题。


QQ图片20220531173113.png


                                             RMSProp

  • SGD(随机梯度下降)


  • SGDM


为梯度下降加入一个冲量,每次迭代移动的方向为梯度的反方向向量加上上次移动的方向向量,向量前面可能会有系数。


QQ图片20220531173111.png


                                             SGDM


  • Adam


结合RMSProp和SGDM两种算法优点的一种优化算法。m和v需要除上1-β是为了前期的纠偏。分母加上一个ε是为了防止分母下溢到0导致学习率是未定义的。


QQ图片20220531173107.png


                                                            Adam


  • Adam vs SGDM


Adam:训练速度快但是泛化误差大、不稳定。


SGDM:稳定、泛化误差小、更好的收敛性。


QQ图片20220531173104.png



训练函数和测试函数


  • 改善Adam


   (1). AMSGrad

QQ图片20220531173102.png

                                                       AMSGrad


   (2). AdaBound


QQ图片20220531173059.png


                                                            AdaBound

  • 改善SGD


   (1). Cyclical LR

QQ图片20220531173054.png

                                                Cyclical LR


   (2). SGDR


QQ图片20220531173051.png


                                                          SGDR


   (3). One-cycle LR


QQ图片20220531173041.png


                                                      One-cycle LR


  • 特征缩放

QQ图片20220531173036.png


特征缩放


  • 泰勒级数解释梯度下降


将loss函数在当前θ处进行泰勒展开,当参数位于当前θ处附近时,泰勒级数的二阶及以上的项可以忽略不计,由此可以解释当将参数沿梯度反方向调整的时候可以使得loss减小。注意一定保证学习率足够小,否则泰勒展开的高阶项是不可以忽略的。


相关文章
|
机器学习/深度学习 运维 安全
异常检测|深度学习(李宏毅)(二十一)
异常检测|深度学习(李宏毅)(二十一)
1039 0
异常检测|深度学习(李宏毅)(二十一)
|
机器学习/深度学习 算法 语音技术
李宏毅2021春季机器学习课程视频笔记2:(选修)深度学习简介,反向传播
李宏毅2021春季机器学习课程视频笔记2:(选修)深度学习简介,反向传播
李宏毅2021春季机器学习课程视频笔记2:(选修)深度学习简介,反向传播
|
机器学习/深度学习
《深度学习》李宏毅 -- task7总结
进一步学习机器学习基础,希望以后有机会多多实践,为以后进入这个领域做准备。
124 0
《深度学习》李宏毅 -- task7总结
|
机器学习/深度学习
《深度学习》李宏毅 -- task6卷积神经网络
CNN常常被用在影像处理上,比如说你想要做影像的分类,就是training一个neural network,input一张图片,然后把这张图片表示成里面的像素(pixel),也就是很长很长的矢量(vector)。output就是(假如你有1000个类别,output就是1000个dimension)dimension。
139 0
《深度学习》李宏毅 -- task6卷积神经网络
|
机器学习/深度学习
《深度学习》李宏毅 -- task5网络技巧设计
局部最小值saddle point和鞍点local minima
115 0
《深度学习》李宏毅 -- task5网络技巧设计
|
机器学习/深度学习
《深度学习》李宏毅 -- task4深度学习介绍和反向传播机制
Step1:神经网络(Neural network) Step2:模型评估(Goodness of function) Step3:选择最优函数(Pick best function)
136 0
《深度学习》李宏毅 -- task4深度学习介绍和反向传播机制
|
机器学习/深度学习 传感器 资源调度
《深度学习》李宏毅 -- task2 回归
Regression 就是找到一个函数 function ,通过输入特征 x,输出一个数值 Scalar。
107 0
《深度学习》李宏毅 -- task2 回归
|
机器学习/深度学习 数据挖掘 Go
《深度学习》李宏毅 -- task1机器学习介绍
机器学习(Machine Learning),就是让机器自动找函数。如语音识别,就是让机器找一个函数,输入是声音信号,输出是对应的文字。如下棋,就是让机器找一个函数,输入是当前棋盘上黑子白子的位置,输出是下一步应该落子何处。
152 0
《深度学习》李宏毅 -- task1机器学习介绍
|
机器学习/深度学习 数据可视化 数据库
无监督学习-自编码器|深度学习(李宏毅)(十九)
无监督学习-自编码器|深度学习(李宏毅)(十九)
919 0
无监督学习-自编码器|深度学习(李宏毅)(十九)
|
机器学习/深度学习 TensorFlow 算法框架/工具
循环神经网络|深度学习(李宏毅)(五)
循环神经网络|深度学习(李宏毅)(五)
171 1
循环神经网络|深度学习(李宏毅)(五)
下一篇
无影云桌面