神经元——Swish 函数&&Maxout 单元
本部分介绍Swish函数和Maxout单元
- Swish 函数
Swish函数是一种自门控(Self-Gated)激活函数,定义为
\operatorname{swish}(x)=x \sigma(\beta x)
其中
σ(·)
为Logistic函数,
β
为可学习的参数或一个固定超参数。
σ(·) ∈ (0, 1)
可以看作是一种软性的门控机制。当
σ(βx)
接近于1时,门处于“开”状态,激活函数的输出近似于
x
本身;当
σ(βx)
接近于0时,门的状态为“关”,激活函数的输出近似于0。
上图给出了 Swish 函数的示例。当
β = 0
时,Swish 函数变成线性函数
x/2
。当
β = 1
时,Swish函数在
x > 0
时近似线性,在
x < 0
时近似饱和,同时具有一定的非单调性。当
β → +∞
时,
σ(βx)
趋向于离散的
0-1
函数,Swish函数近似为ReLU函数。因此,Swish函数可以看作是线性函数和ReLU函数之间的非线性插值函数,其程度由参数
β
控制。
- Maxout 单元
Maxout单元也是一种分段线性函数。Sigmoid型函数、ReLU等激活函数的输入是神经元的净输入
z
,是一个标量而 maxout 单元的输入是上一层神经元的全部原始输入,是一个向量
x = [x_1; x_2; · · · , x_d]
。
每个maxout单元有
K
个权重向量
w_k ∈ R ^d
和偏置
b_k (1 ≤ k ≤ K)
。对 于输入
x
,可以得到
K
个净输入
z_k, 1 ≤ k ≤ K
。
z_{k}=\mathbf{w}_{k}^{\mathrm{T}} \mathbf{x}+b_{k}
其中
\mathbf{w}_{k}=\left[w_{k, 1}, \cdots, w_{k, d}\right]^{\mathrm{T}}
为第
k
个权重向量。
Maxout单元的非线性函数定义为
\operatorname{maxout}(\mathbf{x})=\max _{k \in[1, K]}\left(z_{k}\right)
Maxout 单元不单是净输入到输出之间的非线性映射,而是整体学习输入到输出之间的非线性映射关系。Maxout 激活函数可以看作任意凸函数的分段线性近似,并且在有限的点上是不可微的。