深度学习基础理论探索(一):激活函数、梯度消失
来源:互联网 发布:软考初级程序员真题 编辑:程序博客网 时间:2024/06/05 15:46
谈到深度学习,就会想到多层神经网络。最基本的结果便是 wx+b 再加非线性激励。
那么问题来了,为什么要加这个非线性激励,也就是激活函数呢?
1.增加非线性激励,可以使网络有更好的表达能力。可以拟合各种函数。
2.更重要的是:
多层神经网络如果没有这个激活函数就是 :第一层的矩阵(权重(w)矩阵乘输入,加偏置(b)矩阵) 乘 第二层的矩阵。。。一直乘到最后一层矩阵。多个矩阵相乘其实就等于一个矩阵,那么多层神经网络就只相当与一层神经网络,没有意义。
过去我们常用的激活函数是sigmoid函数:
当该网络的损失函数是传统的quadratic cost function时
即:
会出现梯度消失的情况。
那么到底发生了什么?
首先我们知道,训练网络的基本方法就是反向传递,选择合适的梯度下降,一遍遍的迭代,直到损失函数小到我们可以接受的程度。
那么,下降的速度主要取决于w,b即权重和偏置相对于损失函数的偏导数。偏导越大,梯度下降越快。
Ok,我们掏出一坨公式:
这两个求偏导的公式说明,他们下降的速度只与激活函数的导数有关。
而激活函数sigmoid函数的导数是
他是个二次函数,函数的最大值为0.25.也就是说每一层的变化率最高为0.25,多层之后,比如10层之后,第十层的变化率最高为0.25的10次方。这是一个非常小的数了,w和b很难变化了,所以根本训练不出来了。这就是梯度消失。
所以过去的教科书会说神经网络不会超过三层。
为了克服这个问题,我们从两个方向入手。
1.改激活函数(现在用rule多一些)
2.改损失函数,这样就有了我们后面要说的cross-entroy。
为什么选了cross-entroy我们下一篇说。
- 深度学习基础理论探索(一):激活函数、梯度消失
- 深度学习中的激活函数与梯度消失
- 深度学习:梯度消失和梯度爆炸
- 深度学习笔记---梯度消失、梯度激增
- 深度学习:梯度消失和梯度爆炸
- 深度学习基础理论探索(二): cross-entropy损失函数的前世今生
- 深度学习笔记---ReL解决梯度消失
- 深度学习 激活函数
- 【深度学习】深度学习中RNN梯度消失
- 深度学习(一):激活函数、反向传播和学习率
- 干货丨 一文概览深度学习中的激活函数
- 一文概览深度学习中的激活函数
- 入门 | 一文概览深度学习中的激活函数
- 入门 | 一文概览深度学习中的激活函数
- [Machine Learning] 深度学习中消失的梯度
- [Machine Learning] 深度学习中消失的梯度_0
- 【深度学习】RNN中梯度消失的解决方案(LSTM)
- 【深度学习】RNN的梯度消失/爆炸与正交初始化
- hdu1542 Atlantis(扫描线+矩形面积并)
- springmvc入门
- Servlet 常见的注解(@WebServlet,@WebListenert,@WebFilter)
- Java并发之AQS详解
- jersey实现文件上传
- 深度学习基础理论探索(一):激活函数、梯度消失
- 文章标题
- MySQL以时间查找的语句
- verilog实现38译码器
- SVG简介
- 判断一颗二叉树是否对称(记录自己没想到的)
- Ubuntu 16.04安装matlab 2016b
- 动态规划算法(后附常见动态规划例题及Java代码实现)
- 让ros机器人行走、建图、路径规划、定位和导航