IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 李宏毅机器学习笔记05-网络设计技巧 -> 正文阅读

[人工智能]李宏毅机器学习笔记05-网络设计技巧

网络设计技巧

类神经网络训练不起来怎么办(一)局部最小值与鞍点

如何分辨到底是卡在local minima 还是 saddle point?
在这里插入图片描述
L (θ) loss function 在 θ’ 附近的泰勒展开式,

其中 gradient是一个向量,弥补 θ和θ’ 之间的差距;

hessian是一个矩阵,会补足加上gradient后与真正的L (θ) 之间的差距。

在这里插入图片描述
如果走到了一个critical point,意味着gradient为0,即绿色这一项为0 ,只剩下红色这一项。

在这里插入图片描述
为了方便,将(θ - θ’)设为 v
只需要看H的 eigenvalue(特征值)的正负即可。

H的特征值全为正的时候 ,我们认为是 local minima
H的特征值全为负的时候 ,我们认为是 local maxima
H的特征值有正有负时候 ,我们认为是 saddle point

在这里插入图片描述
如果训练停下来是因为saddle point ,我们可以继续看hessian 进而看出 update 的方向。

找出负的特征值(saddle point 特征值有正有负)顺着 u 的方向更新,就可以让loss变小。
在这里插入图片描述
注:在实际的 implementation 里面,你几乎不会真的把hessian算出来,运算量非常非常的大。

后续会谈到其他的逃离saddle point的方法 他们的运算量都要比算H小的多,之所以讲这个方法,

是因为如果卡在saddle point 也许没那么可怕,至少我们还有这一招。

saddle point 跟local minima 哪个更常见?

先给出答案 saddle point更常见,local minima 很少很少

解释:在一维的空间好像到处都是local minima ,但是 会不会在二维空间来看他就是一个saddle point,当前维度空间看是一个local minima 但在更高维的空间中有可能就是一个saddle point。

今天我们训练一个network时候,参数往往动辄百万千万以上,我们的参数有多少就代表我们的error surface的维度有多少,既然维度这么高,会不会其实根本就有非常多的路可以走?既然有非常多的路可以走,会不会其实local minima根本就很少呢!如果你做一些实验,结果也是支持这一假设!

在这里插入图片描述

类神经网络训练不起来怎么办(二)批次与动量

批次(batch)与动量(momentum)
两个有可能可以对抗 saddle point 或local minima 的技术。

Batch

拿一个batch的资料拿出来算loss,所有的batch 看过一遍叫一个epoch

shuffle(洗牌) 有很多不同的做法,常见的做法是在每一次epoch开始之前会分一次batch,每一个epoch的batch都不一样。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类神经网络训练不起来怎么办(三)自动调整学习率

自动调整学习速率:Adaptive Learning Rate

critical point 不一定是我们训练过程中最大的阻碍。

往往在训练一个network时,我们会把它的loss记录下来,通常随着参数update的次数增加loss会减小,最后就卡住了,多数时候,大家就会猜说是不是走到了critical point,因为gradient = 0 ,没法更新参数。但你真的确认过,当loss无法在下降的时候,gradient 真的很小吗?

比如下面这个例子,当训练终止的时候,loss几乎已经不动了,gradient 却在反复振荡。
可能是现在的gradient在error surface 山谷的的两个谷壁间反复振荡,这时loss不会再下降,但gradient却不是最小。(步幅太大,没法掉下去)
在这里插入图片描述
如果gradient descend 所有的参数都设同样的learning rate 会出现下面的情况:步幅过大,无法得到较小的loss,步幅过小无法逼近local minima的点。
在这里插入图片描述
当我们遇到更复杂的error surface ,真的要training一个 deep network 的时候,gradient descend 或许是你唯一可以依赖的工具。

但这么简单的问题(上图) gradient descend 都做不好,更难的问题它又怎么可能做好呢?

所以我们需要更好的gradient descend 的版本 – learning rate 为每一个参数定制化。

一个大的原则是:如果某一方向上坡度很大,我们其实希望learning rate 可以小一点;

? 如果某一方向上坡度很小,我们可以让learning rate 大一点。

改进方案:修改学习率

在这里插入图片描述
在这里插入图片描述
坡度缓的时候,gradient 比较小,而 σ 是gradient的平方和取平均再开根号。

所以 gradient 小 算出来的 σ 就小, σ 小 learning rate 就大。(下图右上角)

坡度陡峭的时候,正好相反,gradient 比较大,σ 就比较大,learning rate 就比较小。(下图右下角)

在这里插入图片描述
RMSProp
在这里插入图片描述
新增的参数 α 是一个hyper parameter,需要自己调它。

以第二步𝜽 i2 ← 𝜽 i1为例:
如果 α 趋于0,就代表说我觉得gi1相较于之前算出的gradient 比较重要;

如果 α 趋于1 ,就代表说我觉得现在算出来的 gi1比较不重要,之前的算出来的gradient比较重要。

由 α 决定 gi1在整个σi1里面占多大的影响力。用 RMSProp 就可以动态调整 σ 这一项。

如下:当滚到下坡的时候(第三个点位)gradient 变大,如果用 RMSProp 然后 α 设小一点,就是让刚看到的gradient影响比较大的话,就可以很快的让你的 σ 值变大,也就可以很快的让你的步伐变小(踩一个刹车,避免飞出去)。
在这里插入图片描述
Adam:RMSProp + Momentum
在这里插入图片描述
在一开始这个简单的 error surface 我们 train不起来,那加上 Adaptive Learning Rate 以后呢?

如下图右下角所示,快走到终点的时候发什么一些神奇的事情,因为它是把所有的 gradient 累计,初始的地方很大,后来很小,累计到一定程度后,step(左下红框部分)就变得很大,然后就暴走喷出去了。

喷出去以后没关系,有办法修正回来,因为喷出去以后就走到了gradient比较大的地方, σ 又慢慢变大,步伐就慢慢变小(左右振荡力度变小)又回到中间的峡谷。
在这里插入图片描述
解决的暴走的方法:Learning Rate Scheduling

Learning Rate Scheduling:让 η 与时间有关。随着时间增加 让 η 越来越小,因为越更新离终点越近。

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:10:48  更:2021-07-22 14:13:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 9:45:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码