CNN学习笔记:激活函数
CNN学习笔记:激活函数
激活函数
激活函数又称非线性映射,顾名思义,激活函数的引入是为了增加整个网络的表达能力(即非线性)。若干线性操作层的堆叠仍然只能起到线性映射的作用,无法形成复杂的函数。常用的函数有sigmoid、双曲正切、线性修正单元函数等等。 使用一个神经网络时,需要决定使用哪种激活函数用隐藏层上,哪种用在输出节点上。
比如,在神经网路的前向传播中,
这两步会使用到sigmoid函数。sigmoid函数在这里被称为激活函数。
sigmoid函数
之前在线性回归中,我们用过这个函数,使我们的输出值平滑地处于0~1之间。

观察图形我们发现,当大于5或者小于-5的值无论多大或多小都会被压缩到1或0。如此便带来一个严重问题,即梯度的“饱和效应”。大于5或者小于-5部分的梯度接近0,这回导致在误差反向传播过程中导数处于该区域的误差就很难甚至根本无法传递至前层,进而导致整个网络无法训练(导数为0将无法跟新网络参数)。
此外,在参数初始化的时候还需要特别注意,要避免初始化参数直接将输出值带入这一区域,比如初始化参数过大,将直接引发梯度饱和效应而无法训练。
说明:除非输出层是一个二分类问题否则基本不会用它。
双曲正切函数
tanh函数是sigmoid的向下平移和伸缩后的结果。对它进行了变形后,穿过了原点,并且值域介于+1和-1之间。

结果表明,如果在隐藏层上使用函数tanh效果总是优于sigmoid函数。因为函数值域在-1和+1的激活函数,其均值是更接近零均值的。在训练一个算法模型时,如果使用tanh函数代替sigmoid函数中心化数据,使得数据的平均值更接近0而不是0.5.
说明:tanh是非常优秀的,几乎适合所有场合
修正线性单元的函数(ReLu)
sigmoid函数与双曲正切函数都有一个共同的问题,在Z特别大或者特别小的情况下,导致梯度或者函数的斜率变得特别小,最后就会接近于0,导致降低梯度下降的速度。
线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元, 是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。

Relu作为神经元的激活函数,定义了该神经元在线性变换 之后的非线性输出结果。换言之,对于进入神经元的来自上一层神经网络的输入向量
,使用线性整流激活函数的神经元会输出
至下一层神经元或作为整个神经网络的输出(取决现神经元在网络结构中所处位置)。
只要是WTX+b正值的情况下,导数恒等于1,当WTX+b是负值的时候,导数恒等于0。从实际上来说,当使用的导数时,WTX+b=0的导数是没有定义的。
选择激活函数的经验法则:
如果输出是0、1值(二分类问题),则输出层选择sigmoid函数,然后其它的所有单元都选择Relu函数。
最常用的默认函数,,如果不确定用哪个激活函数,就使用ReLu或者Leaky ReLu
带泄露线性整流函数(Leaky ReLU)
在输入值 为负的时候,带泄露线性整流函数(Leaky ReLU)的梯度为一个常数 ,而不是0。在输入值为正的时候,带泄露线性整流函数和普通斜坡函数保持一致。

在深度学习中,如果设定 为一个可通过反向传播算法(Backpropagation)学习的变量,那么带泄露线性整流又被称为参数线性整流(Parametric ReLU)
CNN学习笔记:激活函数的更多相关文章
- CNN学习笔记:卷积神经网络
CNN学习笔记:卷积神经网络 卷积神经网络 基本结构 卷积神经网络是一种层次模型,其输入是原始数据,如RGB图像.音频等.卷积神经网络通过卷积(convolution)操作.汇合(pooling)操作 ...
- CNN学习笔记:全连接层
CNN学习笔记:全连接层 全连接层 全连接层在整个网络卷积神经网络中起到“分类器”的作用.如果说卷积层.池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样 ...
- CNN学习笔记:神经网络表示
CNN学习笔记:神经网络表示 双层神经网络模型 在一个神经网络中,当你使用监督学习训练它的时候,训练集包含了输入x还有目标输出y.隐藏层的含义是,在训练集中,这些中间节点的真正数值,我们是不知道的,即 ...
- 卷积神经网络(CNN)学习笔记1:基础入门
卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Vie ...
- CNN学习笔记:批标准化
CNN学习笔记:批标准化 Batch Normalization Batch Normalization, 批标准化, 是将分散的数据统一的一种做法, 也是优化神经网络的一种方法. 在神经网络的训练过 ...
- CNN学习笔记:目标函数
CNN学习笔记:目标函数 分类任务中的目标函数 目标函数,亦称损失函数或代价函数,是整个网络模型的指挥棒,通过样本的预测结果与真实标记产生的误差来反向传播指导网络参数学习和表示学习. 假设某分类任务共 ...
- CNN学习笔记:池化层
CNN学习笔记:池化层 池化 池化(Pooling)是卷积神经网络中另一个重要的概念,它实际上是一种形式的降采样.有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见 ...
- CNN学习笔记:卷积运算
CNN学习笔记:卷积运算 边缘检测 卷积 卷积是一种有效提取图片特征的方法.一般用一个正方形卷积核,遍历图片上的每一个像素点.图片与卷积核重合区域内相对应的每一个像素值乘卷积核 .内相对应点的权重,然 ...
- CNN学习笔记:梯度下降法
CNN学习笔记:梯度下降法 梯度下降法 梯度下降法用于找到使损失函数尽可能小的w和b,如下图所示,J(w,b)损失函数是一个在水平轴w和b上面的曲面,曲面的高度表示了损失函数在某一个点的值
随机推荐
- JavaScript越来越简单啦啦啦
我正在对需要从远程API提取并对页面的各个部分进行更改的页面进行更改.听起来像是抽出jQuery和Ajax的时候了,不是吗?相反,我只是使用了老式的JavaScript.实际上,我使用了新的JavaS ...
- 亿级日PV的魅族云同步的核心协议与架构实践
声明:本文根据msup和魅族联合举办的<第三期魅族技术开放日-架构设计与优化>录音整理原创首发,转载或节选内容前需获授权. 嘉宾:沈辉煌,魅族高级架构师,魅族云同步负责人.2010年加入魅 ...
- Python之Seaborn
install: pip install seaborn official examples: https://seaborn.pydata.org/examples/index.html 在mac上 ...
- php form 图片上传至服务器上
本文章也是写给自己看的,因为写的很简洁,连判断都没有,只是直接实现了能上传的功能. 前台: <form action="upload.php" method="PO ...
- HDU 5326(2015多校3)-Work(dfs)
题目地址:pid=5326">HDU 5326 题意:给一张有向图n个点.n - 1(....输入n-1)条边. A指向B代表A管理B.然后能够间接管理,比方A管理B,B管理C.则A管 ...
- db2 sequence
我的上两个专栏中已经介绍到了与版本 8 功能相关的主题.我们可能需要在今天设计的数据库和应用程序中考虑这些功能.我们已经谈论了新的数据分区的辅助索引和附加的索引修改.在上一期中,我们了解了 DSSIZ ...
- JavaScript修改IE注册表
http://www.cnblogs.com/zmc/p/3373812.html <script type="text/javascript"> var obj = ...
- web.config配置文件中的configSource属性
每个网站里都会有一个web.config文件.修改Web.config文件会导致IIS重启,就是随意的回车一下也会导致重启.微软建议,不要将需要修改的配置内容保存在web.config中.而是单独放在 ...
- @RequestParam 注解
@RequestParam 注解org.springframework.web.bind.annotation.RequestParam注解类型用于将指定的请求参数赋给方法中的形参.使用@Reques ...
- libevent(1)
很多时候,除了响应事件之外,应用还希望做一定的数据缓冲.比如说,写入数据的时候,通常的运行模式是: l 决定要向连接写入一些数据,把数据放入到缓冲区中 l 等待连接可以写入 l 写入尽量多的数据 l ...