Activation Functions:激活函数

1. 激活函数:激活函数是指在人工神经网络的神经元中,将输入映射到输出端的非线性函数。激活函数通常是非线性的,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,可以应用到非线性模型中。

一般进行线性操作后,就将线性操作的结果放入激活函数中映射。在CNN中,运算顺序通常是卷积 - 池化 - 批量归一化 - 激活函数

常见的激活函数:sigmoid、tanh、ReLU、Maxout、Leaky ReLU、ELU

2. sigmoid:将元素压缩(映射)到0和1之间,当参数过大或过小时,容易造成梯度消失

公式:

图像:

问题:

①梯度消失

②指数函数e的计算过高

③函数不以0为中心

梯度消失:当参数过大或过小时,斜率趋向于0,局部梯度为0或者是一个很小很小的值,一直回溯逐步累乘起来,梯度就会趋于0,从而造成梯度消失

4. tanh:将元素映射到-1和1之间,以0为中心,但仍存在梯度消失的问题

公式:

图像:

5. Relu:将元素映射到0和正无穷之间,在大于0的区间上不存在梯度消失的问题。Relu不用计算指数函数,计算效率高、收敛速度快

公式:

图像:

6. Leaky Relu:将元素映射到负无穷到正无穷之间,设置α,选取αx和x中的最大值

公式:

图像:α=0.01

7.ELU:将元素映射到负无穷和正无穷之间, x>=0时,f(x)=x;x<0时,f(x)=α( e^x - 1)

公式:

图像:

8. Maxout:有两组不同的W1、b1;W2、b2分别和输入矩阵进行线性操作得到两个不同的结果,在两个结果中选取最大值

公式:

缺点:对于W和b,两倍内存,两倍计算

9. 实践中如何选择激活函数?

原文地址:https://www.cnblogs.com/shiliuxinya/p/12243353.html

时间: 2024-11-05 09:45:45

Activation Functions:激活函数的相关文章

[CS231n-CNN] Training Neural Networks Part 1 : activation functions, weight initialization, gradient flow, batch normalization | babysitting the learning process, hyperparameter optimization

课程主页:http://cs231n.stanford.edu/ ? Introduction to neural networks -Training Neural Network ______________________________________________________________________________________________________________________________________________________________

Deep Learning 论文笔记 (1): Making dropout invariant to transformations of activation functions and inputs

这是2014年nips workshop的一篇paper.这个paper号称他们提出了invariant dropout,可以对inputs和activation units的additive shift transform(我理解的其实就是加additive noise)具有不变性. 通常如果在每一个input unit和activation unit加了additive noise的话,下一层的activation  unit的input(也就是只进行了线性组合还没经过非线性)的varian

[转]神经网络-激活函数

神经网络之激活函数(Activation Function) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 更多相关博客请猛戳:http://blog.csdn.net/cyh_24 如需转载,请附上本文链接:http://blog.csdn.net/cyh_24/article/details/50593400 日常 coding 中,我们会很自然的使用一些激活函数,比如:sigmoid.ReLU等等.不过好像忘了问自己一(n)件事: 为什么需要激

激活函数()(转)

神经网络之激活函数(Activation Function) 转载::http://blog.csdn.net/cyh_24 :http://blog.csdn.net/cyh_24/article/details/50593400 日常 coding 中,我们会很自然的使用一些激活函数,比如:sigmoid.ReLU等等.不过好像忘了问自己一(n)件事: 为什么需要激活函数? 激活函数都有哪些?都长什么样?有哪些优缺点? 怎么选用激活函数? 本文正是基于这些问题展开的,欢迎批评指正! (此图并

《Noisy Activation Function》噪声激活函数(一)

本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51736830 Noisy Activation Functions是ICML 2016年新发表的一篇关于激活函数的论文,其中对以往的激活函数进行了深入的分析,并提出了训练过程中添加噪声的新方法,效果不错,觉得很有意义,目测会在今后的深度学习领域产生比较大的影响,因此将其原论文翻译,并略作注解(计划分两篇博客来写,本文涵盖从摘要到第三节的

神经网络激活函数及导数

ICML 2016 的文章[Noisy Activation Functions]中给出了激活函数的定义:激活函数是映射 h:R→R,且几乎处处可导. 神经网络中激活函数的主要作用是提供网络的非线性建模能力,如不特别说明,激活函数一般而言是非线性函数.假设一个示例神经网络中仅包含线性卷积和全连接运算,那么该网络仅能够表达线性映射,即便增加网络的深度也依旧还是线性映射,难以有效建模实际环境中非线性分布的数据.加入(非线性)激活函数之后,深度神经网络才具备了分层的非线性映射学习能力. 1.Sigmo

卷积神经网络卷积层后一定要跟激活函数吗?

The reason why neural network is more powerful than linear function is because neural network use the non-linear function to map the dataset which is difficult to separate to separable space. So we can say that every neural network(including CNN)'s n

神经网络激活函数

# Activation Functions #---------------------------------- # # This function introduces activation # functions in TensorFlow # Implementing Activation Functions import matplotlib.pyplot as plt import numpy as np import tensorflow as tf from tensorflo

激活函数总结

激活函数有什么用? 提到激活函数,最想问的一个问题肯定是它是干什么用的?激活函数的主要作用是提供网络的非线性表达建模能力,想象一下如果没有激活函数,那么神经网络只能表达线性映射,此刻即便是有再多的隐藏层,其整个网络和单层的神经网络都是等价的.因此正式由于激活函数的存在,深度神经网络才具有了强大的非线性学习能力.接下来我们就来盘点一下当前有哪些流行的激活函数吧. 1. Sigmoid激活函数 函数表达式: 函数图像: 导数: 优点:Sigmoid激活函数是应用范围最广的一类激活函数,具有指数形状,