deep-learning - 激活函数的导数是否必须在 [0,1] 范围内?
问题描述
我发现常见激活函数的导数范围在[0,1]。 https://ml-cheatsheet.readthedocs.io/en/latest/activation_functions.html
这是RNN中梯度消失的原因。
当激活函数首次引入深度学习时,导数保留在 [0,1] 中的原因是什么?如果我们使用 Relu 的变体,例如 f(x) = max(0, 2x) 导数在 [0,2] 范围内,MLP 会发生什么
解决方案
与消失梯度相反的是爆炸梯度,导致梯度达到非常高的值。就像消失的梯度在梯度下降过程中会造成很大的麻烦一样,爆炸梯度也会造成很大的麻烦,在优化过程中会采取特别大的步骤。
这种现象在 RNN 中非常重要,因为在反向传播过程中,连续时间步长的梯度会有效地相互相乘。因此,将梯度值增加到 [0, 2] 会导致 的梯度增加2^n
,从而增加梯度下降的可能性。
推荐阅读
- javascript - 文档对象在反应形式中未定义
- twitter-bootstrap - 手动更改用于打印的介质宽度
- css - HTML 没有正确显示?(laravel-dompdf 包)
- android - Android ImageView 左右有空格
- vba - Excel 宏/文档打印乱序
- php - 试图在 laravel 5.6 中获取非对象的属性“id”
- sap - xsjs $.hdb.getConnection 未定义
- r - 使用 ggplot2 将组平均线添加到条形图
- amazon-web-services - 带有默认 Docker 容器的 Elastic Beanstalk
- java - 如何使用 Java 启动 Windows `runas` 进程?