上次读了前沿论文,发现确实水平远远不足,因此更加努力的看视频和学数学,希望后续能有所改善!
本文主要总结关于神经网络训练不起来该怎么处理的问题进行论述,大家可以选择性观看!

目录

  • 偶遇Critical Point
    • Saddle Point
    • Local Minimum
    • 如何鉴别Critical Point
  • 批处理与动量
    • Batch批处理
    • 动量
  • 自动更新学习率
  • Batch Normalization(批正则化)
  • 总结

偶遇Critical Point

有些时候,当我们构建的模型随着训练集的输入,它的Loss将会越来越小。但有时候,当它收敛结束后,我们可能对它的结果依旧不满意,或者甚至它在最初根本就没有训练起来。那么,在以前就会有人说可能是遇到了Critical Point。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210410110239720
它一般分为两大类,一类是Local Minimum(局部最小值),另一类是Saddle Point(马鞍点)

Saddle Point

鞍点,词如其名,就是在某一方向或者某些方向上是最小的点,但在另一些方向上却仍可以继续优化。当我们遇到马鞍点,我们或许不需要特别惊慌,因为我们还有方向可以继续优化。

Local Minimum

局部最小值,不同于前者,其周围一般都是陡峭的悬崖,看上去我们已经找不到路可以走了。最初,它被认为是无法逃离的地方。

如何鉴别Critical Point

那么,我们可能会想知道,当我们遇到Critical Point时如何判别自己究竟是遇到了无法逃离的局部最小值还是有路可走的鞍点。
我们可以首先使用Taylor Series Approximation来估计θ附近的Loss:
L ( θ ) ≈ L ( θ ′ ) + ( θ + θ ′ ) T g + 1 2 ( θ + θ ′ ) T H ( θ + θ ′ ) L\left(\theta\right)\approx L\left(\theta'\right)+\left(\theta+\theta'\right)^Tg+\frac{1}{2}\left(\theta+\theta'\right)^TH\left(\theta+\theta'\right) L(θ)≈L(θ′)+(θ+θ′)Tg+21​(θ+θ′)TH(θ+θ′)
其中Gradient g是一个向量:
g = ∇ L ( θ ′ ) g i = ∂ L ( θ ′ ) ∂ θ i g=\nabla L\left(\theta'\right)\ \ \ \ g_i=\frac{\partial L\left(\theta'\right)}{\partial\theta_i} g=∇L(θ′)    gi​=∂θi​∂L(θ′)​
它代表着,你用现有的Function中每个参数对Loss求偏导的结果。
Hessian H是一个矩阵:
H i j = ∂ 2 ∂ θ i ∂ θ j L ( θ ′ ) H_{ij}=\frac{\partial^2}{\partial\theta_i\partial\theta_j}L\left(\theta'\right) Hij​=∂θi​∂θj​∂2​L(θ′)
它的第i行第j个元素是对Loss求第i个参数和第j个参数的二阶偏导。

那么这个公式有什么用呢?当我们遇到Critical Point时Gradient = 0上式就可以写作
L ( θ ) ≈ L ( θ ′ ) + 1 2 ( θ + θ ′ ) T H ( θ + θ ′ ) L\left(\theta\right)\approx L\left(\theta'\right)+\frac{1}{2}\left(\theta+\theta'\right)^TH\left(\theta+\theta'\right) L(θ)≈L(θ′)+21​(θ+θ′)TH(θ+θ′)
我们假设
v = ( θ − θ ′ ) v=\left(\theta-\theta'\right) v=(θ−θ′)
当对于所有的θ:
v T H v > 0 v^THv>0 vTHv>0
则L(θ)>L(θ’),该点为Local Minimum
同理,当:
v T H v < 0 v^THv<0 vTHv<0
则L(θ)<L(θ’),该点为Local Maximum
而当其有时候大于0有时小于0时,它为Saddle Point
也可以用Hessian的特征值判断
当H的Eigen Value全为Positive时则为Local Minimum
当H的Eigen Value全为Negative时则为Local Maximum
当H的Eigen Value有时为Positive,有时为Negative时则为Saddle Point

我们假设存在一种简单的神经网络,和一组简单有标注数据集:

它的函数集:
y = w 1 w 2 x y=w_1w_2x y=w1​w2​x
它的Error Surface:

可知,当w1=w2=0时,为马鞍点,当w1*w2=1时为local minima
我们选取其中w1=w2=0的一点

发现它g为零向量,H特征值一正一负,它为saddle point,沿着它特征值矩阵方向还能继续减少Loss。

幸运的是,当θ维度够大的时候,它一般总会有路可以走,也就是说遇到Local Minima的机会很少。

批处理与动量

Batch批处理

神经网络有很多违背直觉的东西,batch就是其中之一。我们需要确定一个批次大小,每训练过Batch个再更新一次参数向量。
结果是一般来说,更大的Batch(例如Full Batch)更节省时间,而更小的Batch(例如单个)在测试集上表现更好。
一般的解释是,小批次的噪音有助于训练,而GPU的并行训练节省了大Batch的时间。

动量

为了防止一遇到平坦地界就被卡住,我们设置了动量来助推它走过平坦或者狭窄坑道。如图

自动更新学习率

η在过去对我们来说,是一个常量,但当多个变量之间变化曲线有差距甚至差异极大时,它经常会导致许多问题。我们就考虑当当前梯度较大时使其学习率较小,当梯度较小时学习率增大。
η 1 = η 0 σ \eta^1=\frac{\eta^0}{\sigma} η1=ση0​
η 1 = η σ i t g i t σ i t = α ( σ i t − 1 ) 2 + ( 1 − α ) ( g i t ) 2 \eta^1=\frac{\eta}{\sigma_i^t}g_i^t\ \ \ \sigma_i^t=\sqrt{\alpha\left(\sigma_i^{t-1}\right)^2+\left(1-\alpha\right)\left(g_i^t\right)^2} η1=σit​η​git​   σit​=α(σit−1​)2+(1−α)(git​)2 ​

我们可以通过α来控制我们对于当前位置梯度的在乎程度。

Batch Normalization(批正则化)

在上文,我们发现,当参数梯度相差非常多的时候,普通的优化器已经无法应对了。因此我们也改进了我们的优化器为RMSProp,但现在我们改变我们的想法,是否可以通过改变数据的分布而使其梯度整体上趋于一致呢
但仅仅改变某一个数据会导致其失去整体特征变为噪音,因此我们选择Batch Normalization,对一批数据的某一行数据整体正则化。如图
让其拥有共同的平均值0以及方差1,特征更紧致。
现在也出现了许多可以让网络自调整其均值与方差值,让其分布更具备多样性。

总结

本文总结了笔者最近观看的网课,后续将开始涉及卷积神经网络,继续加油!

CV学习:李宏毅2021机器学习(2)相关推荐

  1. 【李宏毅2021机器学习深度学习】作业讲解 笔记收藏 课程主页

    作业仓库 15个作业仓库 作业参考 大佬代码参考 参考2–目前只有1-3作业? 笔记收藏 21 年 课程主页 sample code & slide 21 年笔记 20 年笔记 [<20 ...

  2. 【李宏毅2021机器学习深度学习——作业2 Classification】 Phoneme Classification 记录(双过strong baseline)

    文章目录 实验结果:(已过 strong baseline) 可视化实验记录:(稳定在0.75升不上去了,50个epoch可以收敛了) 修改记录: 改进想法: 做完这个实验应该有的收获: 参考资料: ...

  3. 李宏毅2021机器学习笔记——Regression

    Regression Machine Learning ​ 第一堂课 是要简单跟大家介绍一下machine learning还有deep learning的基本概念,等一下会讲一个跟宝可梦完全没有关係 ...

  4. 李宏毅2021机器学习笔记——GAN

    GAN_P1 Generation Network as Generator 接下来要进入一个,新的主题 我们要讲生成这件事情 到目前為止大家学到的network,都是一个function,你给他一个 ...

  5. 李宏毅2021机器学习笔记——General Guidance

    General Guidance : overfit Framework of ML ​ 我们已经看了作业一了,其实之后好几个作业,它看起来的样子,基本上都是大同小异 ​ 就是你会有一堆训练的资料,这 ...

  6. 李宏毅2021机器学习笔记——CNN

    CNN 我们开始探讨 Network 的架构设计,第一个Network 架构的变形是 Convolutional 的 Neural Network,它的缩写是 CNN,它是专门被用在影像上的,我希望透 ...

  7. (强推)李宏毅2021春机器学习课程-课件免费下载

    博主最近学习李宏毅2021春机器学习课程,课程给出的课件都是按章节的,阅读起来不是很方便,所以将课件按章节整理合并了一下,并给出学习视频和代码的链接,与各位分享~ b站视频链接:(强推)李宏毅2021 ...

  8. 1-2 李宏毅2021春季机器学习教程-第一节(下)-深度学习基本概念简介

    上篇文章1-1 李宏毅2021春季机器学习教程-第一节(上)-机器学习基本概念简介介绍了回归的一些知识,重点介绍了机器学习寻找函式的三个步骤.接着我们继续学习第一节Introduction的内容. 目 ...

  9. 李宏毅2021春季机器学习课程视频笔记1:Introduction, Colab PyTorch Tutorials, HW1

    诸神缄默不语-个人CSDN博文目录 李宏毅2021春季机器学习课程视频笔记集合 VX号"PolarisRisingWar"可直接搜索添加作者好友讨论. 更新日志: 2021.11. ...

最新文章

  1. lua 开发环境搭建(windows 平台)
  2. 多人开发时Git下冲突的产生和解决
  3. 网摘--2014年5月12日
  4. Android之解决Gigaset手机不能设置DeviceOwner权限提示already provisioned问题
  5. java se和java_Java:改进了Java SE 6和Java SE 7的客户端和桌面部分!
  6. 很高兴加入 英文_XR车载公司Holoride加入高通XR计划
  7. Pi network KYC的经验分享
  8. 关于阿拉伯数字转化成为大写汉字
  9. 年薪50万的程序员_985程序员年薪50万,看似风光,但当事人却想转行
  10. 移动硬盘加上密码_树莓派+Seafile+移动硬盘搭建私有云
  11. mysql redo/binlog 放在ssd盘或SAS盘性能差异测试
  12. 欧几里得算法(辗转相除法)
  13. FLUENT_V6.1.22 3CD (正式商业版)
  14. python会计实证研究_适合会计、金融实证研究的统计软件、编程语言搭配
  15. linux设置ipsan_linux挂载ipsan服务器
  16. 谁才是中国企业服务的教父?
  17. 51单片机SG90舵机控制原理
  18. springboot集成caffeine实现本地缓存
  19. 小牛电动IPO:四年跌宕起伏 一代天才少年李一男终圆梦
  20. File “C:\Users\hjl\AppData\Local\Programs\Python\Python38\lib\site-packages\pymysql\err.py“, line 1

热门文章

  1. 桥梁工程智慧工地管理系统,实现工程项目的精细化管理
  2. 韩寒现在这么受人关注的原因是什么?只是因为他敢发批评时政的文章吗?
  3. NBA球员生涯数据统计系统(中南大学C语言课设)
  4. 程序员如何缓解自己内心的焦虑与烦躁
  5. swagger文档增强工具knife4j使用详解
  6. 用java写的游戏you_关于用Java写的贪吃蛇游戏的一些感想
  7. 说说找工作这些事儿(未完)
  8. 生死看淡,不服就GAN(四)---- 用全连层GAN生成MNIST手写体
  9. How to Avoid Branching on the GPU 如何在GPU避免分支
  10. 平均获客成本_获客成本(线上,线下)如何计算?