程序员Tensorflow从入门到精通人工智能一百问

人工智能一百问-2深度学习里说的激活函数是什么意思?

2019-03-09  本文已影响14人  西瓜量化

很多刚刚接触深度学习的朋友,在看书籍、博文的时候,经常会看到一个名词:激活函数。那激活函数到底是干什么的呢?

实际上激活函数并不是真正用来“激活”什么的,而是用来对神经元计算出来的结果进行计算和处理的。目的是把特征保留下来,去除数据中的冗余,并且使得神经网络能够解决非线性问题。
简单来说,激活函数就是把计算结果再进行一次处理,加入一些非线性因素,使得神经网络可以更好地解决比较复杂的问题。

常用的激活函数有:

一、Sigmoid函数

Sigmoid函数函数是目前被了解最多的一种激活函数,在生物学中也是常见的S型函数,又被称为S型生长曲线,它长这个样子:


image

公式定义是这样的:

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

它具有单调递增、反函数单调递增、连续可导、输出值都大于0等性质,所以我们可以把变量通过这个函数映射到[0,1]之间。

它的优点:

它的缺点:

二、Tanh函数

Tanh函数也是一种比较常见的激活函数,它实际是Sigmoid的一种变型。它长这个样子:

image
它的公式是:
image

它的公式为:

f(x) = max(0,x)

因为在x>0的时候x可以保持梯度不衰减,从而可以缓解梯度消失的问题。

优点:

缺点:

四、Softplus函数

Softplus函数可以看做ReLU函数的平滑形式。并且如果对Softplus函数进行求导,得到的函数就是Sigmoid函数。它长这个样子:


image

上图是Softplus和ReLU的对比
Softplus的表达式为:

Softplus(x) = log(1+e^x)

Softplus优点:

缺点:
-1)反向传播时计算耗费较大

五、Softmax函数

Softmax函数是深度学习中常用的激活函数之一,经常作为神经网络最后一层,用来进行多分类。它并不是一个简单的运算,所以木有图,但这里可以给出在运用的时候的例子:

image image

前面计算的结果输入到Softmax层中,得到结果,结果是一组概率,概率之和为1,而概率最大的那个,就是我们倾向选择的结果

它的公式为:

f(x_i) = \frac {exp(x_i)} {\sum_{x=1}^nexp(x)}

Softmax和前面的函数都不同,主要表现在:Softmax函数主要针对的是多分类问题,而其他的主要是二分类问题

六、Swish 函数

Google Brain也提出了一个形似ReLu的激活函数, Swish。它长这个样子:


image

它的公式为:
f(x) = x {\sigma}({\beta}x)

它的优点是:

因此在google的论文中,他们宣称Swish函数普遍优于ReLu(及其变体),并且更适用于深层的网络结构。

七、我们应该如何选用合适的激活函数?

这里我们讨论的是隐藏层的激活函数选用,输出层激活函数的选择通常是基于其预测值类型

上一篇下一篇

猜你喜欢

热点阅读