人工神经网络有哪些常用的激活函数?

  统计/机器学习 深度学习 人工神经网络    浏览次数:10966        分享
10

人工神经网络有哪些常用的激活函数?

 

MeganC   2017-05-12 13:05



   4个回答 
26

激活函数一般有两种情况。


第一种情况是,激活函数作用在前一层各个节点输出值的线性组合上。这个线性组合的结果是一个数值,而不是向量。这种情况下的常用激活函数有:


1. 恒等函数 identity function

$$f(x)=x$$




2. 分段线性函数 piece-wise linear function

$$f(x)=\begin{cases}0, \text{ if }x\leq u \\ ax+b, \text{ if } u < x < v \\ 1, \text{ if } x\geq v \end{cases}$$

$u,v,a,b$是参数。



3. 阶梯函数 step function

$$f(x)=\begin{cases}0, \text{ if }x\leq 0\\ 1, \text{ if }x>0\end{cases}$$




4. 双曲正切函数 tanh function

$$f(x)=\tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}$$




5. 修正线性函数 reLU function

$$f(x)=reLU(x)=\begin{cases}0, \text{ if }x<0 \\ x, \text{ if }x\geq 0\end{cases}$$



6. S形函数 Sigmoid function

$$f(x)=\frac{1}{1+e^{-x}}$$




7. 反正切函数 ArcTan function

$$f(x)=\text{arctan}(x)$$




8. 高斯函数 Gaussian

$$f(x)=e^{-x^2}$$




第二种情况是,激活函数直接作用在前一层输出值上。也就是说$x$此时是一个向量。这种情况下的常用激活函数有:


9. Softmax function

$$f(x_1,x_2,\cdots, x_m)_i=\frac{e^{x_i}}{\sum_{j=1}^me^{x_j}}$$


10. Maxout function

$$f(x_1,x_2,\cdots,x_m)=\max (x_1,x_2,\cdots, x_m)$$



参考wiki

SofaSofa数据科学社区DS面试题库 DS面经

高代兄   2017-06-23 10:46

10

除了上面那位同学提到的那些基本的激活函数,还有一些改进的激活函数。

比如LeakyReLU,PReLU,ELU,ThresholdedReLU等等。

可以参考keras里的介绍


SofaSofa数据科学社区DS面试题库 DS面经

sasa   2017-11-18 14:17

谢谢介绍 - 董咚咚   2020-07-26 20:49
8

看图


SofaSofa数据科学社区DS面试题库 DS面经

飞翔钉子   2018-07-20 11:37

3

加一个Mish activation function.

SofaSofa数据科学社区DS面试题库 DS面经

anlijuncn   2020-07-27 11:36



  相关讨论

神经网络里每层的激活函数必须是一样的吗?

多项式网络(polynomial networks)的结构和激活函数?

swish激活函数的公式是什么?

如果y的范围是-1到1之间,网络输出层的激活函数应该是tanh还是linear?

sigmoid, tanh, arctan这几个激活函数为什么长这么像?

激活函数RELU在0点的导数是多少?

怎么理解所谓的dying relu?

怎么理解神经网络中的激活函数hard sigmoid?

激活函数leakyRELU和pRELU的区别是什么?

purelin激活函数是什么?

  随便看看

关于方差膨胀因子(VIF)的问题

怎么对2维的numpy array取整?

线性回归是机器学习算法吗?

为什么LASSO可以做特征选择,而Ridge却不行?

为什么机器学习中的优化问题很少用到牛顿法?