===========第2周 优化算法================

===2.1 Mini-batch 梯度下降===

epoch: 完整地遍历了一遍整个训练集

===2.2 理解Mini-batch 梯度下降===

Mini-batch=N,Batch GD。训练集小(<=2000),选Bath;

Mini-batch=1,Stochastic GD。不会收敛,而是一直在最小值附近“波动”。噪声可以通过减小学习率在一定程度上得到减缓,但每次只处理一个样本,失去了向量化带来的好处

考虑到计算机存储方式,通常选择mini-batch为2的指数,使得代码运行更快,最常见的是64,128,512。 In practice,mini-bacth的大小也是一个超参,做一个快速check,看哪一个可以最有效地降低代价函数值

注意使你的Bath大小与你的CPU/GPU内存相符

===2.3 指数加权平均===

Exponentially weighted averages: Vt = beta * Vt-1 + (1-beta) Zt,  比如 beta=0.9

可以review video中Andrew对beta取下面三个不同值时,温度曲线的不同

===2.4 理解指数加权平均===

【维基百科】https://en.wikipedia.org/wiki/Moving_average

===2.5 指数加权平均的偏差估计===

在机器学习中,在实现指数加权平均的时候,大家不在乎执行偏差修正,因为大部分人would rather just 熬过初始。但如果你关心初始时期的偏差,那么你在刚计算的时候就要使用偏差修正。

===2.6 动量梯度下降===

Momentum:对梯度做指数加权平均。Momentum总是好于简单的梯度下降。

我们总是希望在梯度较缓的地方走长一点,在梯度很陡的地方走慢一点。

通常取beta=0.9是一个很鲁棒的值,当然也可以调参。实践中人们通常不进行偏差修正,因为10次之后基本就不会有明显偏差了。

===2.7 RMSprop===

Root Mean Square prop

跟Mmomentum类似,RMSprop也可以消除梯度下降中的摆动,并允许你使用一个更大的学习率。

===2.8 Adam===

Adaptive Moment Estimation

通常学习率alpha需要调参,而默认beta_1=0.9, beta_2=0.99,

===2.9 学习率衰减===

learning rate decay, 有好几个可选的形式

比如随着epco衰减 1/(1+decay_rate*epoch_num),decay_rate是超参,其他的还有 指数衰减 decay_rate^epoch_num, k / sqrt(epoch_num) ,离散下降等等

when training only a small number of models,有些人也会手动调整学习率

For me, I would say that learning rate decay usually lower down on the list of things I try,Setting alpha, just a fixed value of alpha, and getting that to be well tuned, has a huge impact. Learning rate decay does help. Sometimes it can really help speed up training, but it is a little bit lower down my list in terms of the things I would try.(但这并不会是我率先尝试的内容)

===2.10 局部最优的问题===

想象一幅我们关于有多个局部最优值的三维直觉图,第三维是代价函数值,事实证明,当维数低的时候(权重是2维),很容易出现这样的图。

但这样的直觉对高维来说并不是正确的,我们发现most梯度为零的点通常是“鞍点”,而不是我们所想象的局部极小值。可以很容易理解,比如一个有20,000权重的模型,画出代价函数关于权重的图,局部极小值意味着,关于20,000每个权重的方向,该点都是碗状的,这样的点其实非常少。

在深度学习的历史中,我们学到的一课时我们对低维空间的大部分直觉并不能应用到高维空间中。

Problem of plateaus. It turns out that 平稳段 can really slow down the learning。And and a plateau is a region where the derivative is close to zero for a long time.

Momentum,RMSprop,Adam这些优化算法对处理Plateanus有一定的好处

Andrew Ng - 深度学习工程师 - Part 2. 改善深层神经网络:超参数调试、正则化以及优化(Week 2. 优化算法)的更多相关文章

  1. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 1. 深度学习概论)

     =================第1周 循环序列模型=============== ===1.1 欢迎来到深度学习工程师微专业=== 我希望可以培养成千上万的人使用人工智能,去解决真实世界的实际问 ...

  2. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 4. 深层神经网络)

     =================第2周 神经网络基础=============== ===4.1  深层神经网络=== Although for any given problem it migh ...

  3. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 3. 浅层神经网络)

     =================第3周 浅层神经网络=============== ===3..1  神经网络概览=== ===3.2  神经网络表示=== ===3.3  计算神经网络的输出== ...

  4. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 2. 神经网络基础)

     =================第2周 神经网络基础=============== ===2.1  二分分类=== ===2.2  logistic 回归=== It turns out, whe ...

  5. 《Andrew Ng深度学习》笔记1

    深度学习概论 1.什么是神经网络? 2.用神经网络来监督学习 3.为什么神经网络会火起来? 1.什么是神经网络? 深度学习指的是训练神经网络.通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映 ...

  6. 《Andrew Ng深度学习》笔记4

    浅层神经网络 1.激活函数 在神经网络中,激活函数有很多种,常用的有sigmoid()函数,tanh()函数,ReLu函数(修正单元函数),泄露ReLu(泄露修正单元函数).它们的图形如下: sigm ...

  7. Coursera Deep Learning笔记 改善深层神经网络:超参数调试 正则化以及梯度相关

    笔记:Andrew Ng's Deeping Learning视频 参考:https://xienaoban.github.io/posts/41302.html 参考:https://blog.cs ...

  8. 《Andrew Ng深度学习》笔记2

    神经网络基础 1.图计算 计算时有两种方法:正向传播和反向传播.正向传播是从底层到顶层的计算过程,逐步推出所求公式.反向传播是从顶层到底层,从已知的式子求出因变量的影响关系. 在这里用到的反向传播算法 ...

  9. 《Andrew Ng深度学习》笔记5

    深层神经网络 深层神经网络的组成如图,这里主要是深层神经网络符号的定义. 为什么要用深层神经网络,有什么好处?这里主要是分层的思想.在软件工程中,如果问题遇到困难,一般是通过“加多”一层的方法来解决, ...

随机推荐

  1. net core获取appsetting.json的另外一种思路(全局,实时变化无需重启项目)

    最近在写net core的项目,在非controller和service里面需要用到appsetting.json文件里面的一些配置,查资料大概有几种思路: 注入,然后config.GetSectio ...

  2. KEA128+SHT30+CRC校验

    最近更新产品功能的时候使用到Sensirion的SHT30(温湿度传感器),虽说官网上有例程(STM32F100RB),但用的是软件模拟I2C时序控制SHT30进行温湿度读取,我用的是S9KEA128 ...

  3. dsPIC33EP单片机的PPS(外设引脚选择)

    利用dsPIC33EP单片机进行can通信的时候用到引脚复用 引脚复用通过查询数据手册: C1RX的寄存器为RPINR26.C1RXR=(设置为需要用到的引脚) 引脚设置为输入(C1RX),TRIS= ...

  4. Java中的集合(六)继承Collection的Set接口

    Java中的集合(六)继承Collection的Set接口 一.Set接口的简介 Set接口和List接口都是继承自Collection接口,它与Collection接口中功能基本一致,并没有对Col ...

  5. 点击label时text输入框被选中

    当点击label标签时,能够选中与其对应的输入框,有2种方式,采用第一种时会产生太多的id,推荐第二种. <form action="03.php"> <labe ...

  6. Java实现 洛谷 P1049 装箱问题

    题目描述 有一个箱子容量为V(正整数0≤V≤20000),同时有n个物品(0<n≤30,每个物品有一个体积(正整数). 要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入输出格 ...

  7. Java实现 LeetCode 587 安装栅栏(图算法转换成数学问题)

    587. 安装栅栏 在一个二维的花园中,有一些用 (x, y) 坐标表示的树.由于安装费用十分昂贵,你的任务是先用最短的绳子围起所有的树.只有当所有的树都被绳子包围时,花园才能围好栅栏.你需要找到正好 ...

  8. Java实现 LeetCode 391 完美矩形

    391. 完美矩形 我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, 判断它们是否能精确地覆盖一个矩形区域. 每个矩形用左下角的点和右上角的点的坐标来表示.例如, 一个单位正方形可以表示为 ...

  9. 第五届蓝桥杯JavaA组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.海盗分金币 有5个海盗,相约进行一次帆船比赛. 比赛中天气发生突变,他们被冲散了. 恰巧,他们都先后经过途中的一个无名的荒岛,并且每个 ...

  10. 第三届蓝桥杯JavaB组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.数量周期 [结果填空](满分9分) 复杂现象背后的推动力,可能是极其简单的原理.科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则 ...