1 梯度消失

1.1 直观理解

以sigmoid激活函数为例,如果我们使用sigmoid作为激活函数的话,很大的一个input的变化,经过了sigmoid之后的output变化会小很多。

这样经过很多层sigmoid之后,最后的输出变化会很小很小。

那么进行反向传播的时候,最后的损失函数传递到约远离输出的地方,值越小,那这些远离输出地方的参数更新得也就越慢

1.2 从反向传播的式子理解

红框框住的是激活函数的导数,tanh和sigmoid的导数均小于1,这会导致训练深模型的时候出问题。

1.2.1 SVD分解

李宏毅线性代数笔记13:SVD分解_UQI-LIUWJ的博客-CSDN博客

令A表示激活函数,那么Ax就是经过激活函数之后的x

我们需要比较||Ax||和||x||

根据SVD,我们有: 其中U和V是正交矩阵,奇异值σ1>σ2>...>σn>0

在李宏毅线性代数11: 正交(Orthogonality)_UQI-LIUWJ的博客-CSDN博客 中,我们说过,正交矩阵是norm-preserving的,所以

我们令||x||=c,假设A是满秩的,我们有:

(正交基的线性组合)

而 

所以

而我们之前有了

所以,即

等号成立当且仅当,即

如果我们有很多个最大奇异值小于1的矩阵,那么最终的乘积会很小很小 ,这就导致了梯度消失

而tanh和sigmoid正满足这一特征,所以最终会导致梯度下降

1.3 RNN 中梯度消失带来的问题

很远处的梯度会很小(直至消失),因此模型的参数只会根据最近的一些因素而更新

——>我们就不知道远处的元素对当前权重没有影响,究竟是因为距离太远了还是真的没有关联

2 几种梯度消失的解决方法

  • 不同的激活函数,使得梯度=1
  • 使用类似于Adam这样的优化函数,自适应地放缩梯度
  • RNN中的LSTM等

比如下面这个例子,如果因为梯度消失的话,那么这个be动词就会受books的影响更大,导致最终会输出'are'而不是'is'

3 梯度爆炸

在前面,我们有:

所以从另一个角度讲,也有 

如果那么多个A相乘得到的结果将会很大很大,这就导致了梯度爆炸

——>会导致网络中出现Inf或者NaN

3.1 解决方法

使用gradient clipping (截取)

如果梯度过大,那么截取之

机器学习笔记:梯度消失相关推荐

  1. 【机器学习】梯度消失和梯度爆炸的原因分析、表现及解决方案

    目录 1 基本概念 2 原因分析 2.1 直接原因 2.2 根本原因 3 表现 4 解决方案 1 基本概念 (1)梯度不稳定 在深度神经网络中的梯度是不稳定的,在靠近输入层的隐藏层中或会消失,或会爆炸 ...

  2. 吴恩达机器学习笔记-梯度下降

    通过前面的文章我们现在已经有了假设函数$h_\theta(x)$并知道如何度量这个函数与数据的符合程度,即代价函数$J(\theta_0,\theta_1)$取得最小值.那么现在要做的,就是如何去预估 ...

  3. 吴恩达深度学习笔记(114)-RNN梯度消失问题详解

    https://www.toutiao.com/a6652968074712449550/ 2019-02-10 14:34:53 循环神经网络的梯度消失(Vanishing gradients wi ...

  4. 吴恩达机器学习笔记:(四)矩阵、多元梯度下降

    吴恩达机器学习笔记 矩阵基础知识 矩阵逆运算 矩阵的转置 实践乘法 多元梯度下降 特征缩放 学习率α 矩阵基础知识 矩阵逆运算 矩阵的转置 实践乘法 多元梯度下降 特征缩放 学习率α 学习率的选择:

  5. 【深度学习笔记】Batch Normalization 以及其如何解决梯度消失问题

    前言 Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性.目前几乎已经成为DL的标配了,任何有志于学习DL的同学们朋友们雷迪斯俺的詹特曼们都应该好好学一 ...

  6. 机器学习笔记之变分推断(四)随机梯度变分推断(SGVI)

    机器学习笔记之变分推断--随机梯度变分推断 引言 回顾:基于平均场假设的变分推断 经典变分推断的问题 随机梯度变分推断的求解过程 引言 上一节介绍了基于平均场假设的变分推断与广义EM算法的关系,本节将 ...

  7. 机器学习笔记之配分函数(一)对数似然梯度

    机器学习笔记之配分函数--对数似然梯度 引言 回顾:过去介绍配分函数的相关结点 配分函数介绍 配分函数在哪些情况下会"直面"到? 场景构建 包含配分函数的极大似然估计 引言 从本节 ...

  8. 机器学习笔记(10)——逻辑回归算法优化之随机梯度下降法

    在上一篇文章<机器学习笔记(9)--深入理解逻辑回归算法及其Python实现>中,详细学习了逻辑回归算法的分类原理和使用梯度下降法来最小化损失函数的数学推导过程,从而拟合出分类函数的参数θ ...

  9. ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》 第11章 项目训练深层神经网络(梯度消失与梯度爆炸,选择初始化,选择激活函数)

    原文:https://www.jishux.com/p/52b468ceb5722ca5 第11章 训练深层神经网络 来源:ApacheCN<Sklearn 与 TensorFlow 机器学习实 ...

最新文章

  1. android c聊天功能,Android实现简单C/S聊天室应用
  2. 考前多熟记的知识点(1)~(3)《系统集成项目管理工程师软考辅导》
  3. 中文语音情感识别python实现(一)
  4. win7php网页显示空白,win7系统ie11打开网页显示空白的解决方法
  5. 怎么用计算机计算出选手最后得分,WPS技巧:TRIMMEAN函数计算选手得分
  6. python存储序列_python序列类型及一些操作
  7. Linux Enterprise Cluster选译
  8. WIFI密码破解笔记
  9. 「解决方案」用户变电站配电监控解决方案
  10. 将图片或其他文档转化成PDF的软件
  11. 小米游戏本bios_年轻人的第一台游戏本?——小米游戏本2019评测
  12. “蔚小理”想挑战特斯拉?先干过比亚迪再说
  13. java——》解析简历
  14. RFC请求注解(Request for Comments)介绍|internet最重要的文献资源
  15. WebApp最佳实践用户体验篇:针对多种屏幕尺寸合理设计
  16. Redis协议spec(翻译)
  17. 浏览器输入url后发生的变化
  18. java往字符串数组追加新数据
  19. java中的char占几个字节
  20. GitHub统计代码量

热门文章

  1. 《github一天一道算法题》:插入排序
  2. 如何让一个类可以被foreach枚举?
  3. 移动负载均衡技术(MBL)
  4. 【Android开发经验】移动设备的“声波通信/验证”的实现——SinVoice开源项目介绍(一)
  5. 大话WiFi省电模式
  6. 吴恩达机器学习Week4神经网络表述
  7. 《公司理财》_16章_2.财务杠杆学习笔记
  8. apache camel 相关配置_小白在 linux 系统部署apache、mysql、Laravel 环境学习笔记!
  9. 每次执行java命令 都要source_跟着平台混了四年,现在要单飞了!
  10. 本周测试服务器角色转移系统仅开放转入,5月24日维护公告 角色转移系统全服放出...