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

  统计/机器学习 深度学习 人工神经网络    浏览次数: 1214
8

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

 

MeganC   2017-05-12 13:05



   2个回答 
14

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


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


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

高代兄   2017-06-23 10:46

4

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

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

可以参考keras里的介绍


sasa   2017-11-18 14:17



  相关主题

激活函数ReLU和Sigmoid的优劣对比   4回答

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

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

LeakyReLu是什么意思?   1回答

elu激活函数是什么?   1回答

keras中怎么增加Leaky relu的激活层   1回答

deep learning中的pooling是什么意思?   3回答

训练神经网络中经常提到的epoch是什么意思   2回答

前馈神经网络如何选择隐藏层的数量   2回答

深度学习和人工神经网络是一回事吗?   1回答

神经网络中的gradient check是什么意思?   2回答

神经网络中的dense和sparse是什么意思?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!