常见激活函数及其用途

· · 算法·理论

注:本专栏来源于之前的笔记,我对一部分作了归纳总结。

\text{Part I.} 激活函数的概念和用法

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。

在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。

激活函数主要用于人工神经元中,其工作原理数学可视化后如下:

x_1\to w_1 \\ x_2\to w_2\\ \cdots\\ x_n\to w_n \end{rcases}\to S=\small\sum w_ix_i+b\to f(x)=\begin{cases} 1&\text{if }S\ge0\\ 0&\text{if }S<0 \end{cases}\to\hat{y}

\text{Part II. } 常用的激活函数

\text{Part III. } 如何选择激活函数

通常选择一个激活函数并不容易,需要考虑很多因素,最好的做法还是一一实验所有的激活函数,但需要保证其他因素相同。

一些技巧:

如果输出是 0、1 值(二分类问题),则输出层选择 sigmoid 函数,然后其它的所有单元都选择 ReLU 函数。

如果在隐藏层上不确定使用哪个激活函数,那么通常会使用 Relu 激活函数。有时,也会使用 tanh 激活函数,但 ReLU 的一个优点是:当是负值的时候,导数等于 0。

Sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。

tanh 激活函数:tanh 是非常优秀的,几乎适合所有场合。

ReLU 激活函数:最常用的默认函数,如果不确定用哪个激活函数,就使用 ReLU 或者 Leaky ReLU,再去尝试其他的激活函数。

如果遇到了一些死的神经元,我们可以使用 Leaky ReLU 函数。