神经元:(Neuron)是构成神经网络的基本单元,其主要是模拟生物神经元的结构和特性,接收一组输入信号并产生输出.典型神经元结构如下。
净输入:
其中x是输入向量,z是加权加偏置后的净输入
激活函数:净输入 z 在经过一个非线性函数 f(⋅) 后,得到神经元的活性值 a,其中非线性函数 f(⋅) 称为激活函数。激活函数在神经元非常重要,可以增强网络的表示能力和学习能力。要求其:①连续可导、②尽可能简单、③值域区间合理,否则影响训练的效率和稳定性。下面几种常见激活函数:
Sigmoid 型激活函数:Logistic 函数和Tanh 函数,后来将其0附近位置泰勒展开简化得到Hard-Logistic 函数和 Hard-Tanh函数
Logistic 函数:值域(0,1),输入越小,越接近于 0;输入越大,越接近于 1
Tanh 函数:值域(-1,1),可以看作
函数图像如下:
ReLU 函数:左饱和函数(其导数 f′(x) → 0,则称其为左饱和),只需要进行加、乘和比较的操作,计算上更加高效;且在 x > 0 时导数为 1,在一定程度上缓解了神经网络的梯度消失问题,加速梯度 下降的收敛速度;但ReLU 函数的输出是非零中心化的,给后一层的神经网络引入偏置偏移;也会产生死亡 ReLU 问题。后来发展出了带泄露的 ReLU(Leaky ReLU)、带参数的 ReLU(PReLU)、ELU 函数、Softplus 函数等
Swish 函数:当 σ(βx) 接近于 1 时,门处于“开”状态,激活函数 的输出近似于 x 本身;当 σ(βx) 接近于 0 时,门的状态为“关”,激活函数的输出近 似于 0.
高斯误差线性单元(GELU):与 Swish 函数类似,也是一种通过门控机制来调整其输出值的激活函数。下式 P(X ≤ x) 是高斯分布 N(μ, σ2) 的累积分布函数,其中 μ, σ 为超参数,一般设 μ = 0, σ = 1 即可。其同为 S 型函数,因此 GELU 可以用 Tanh 函数或 Logistic 函数来近似
Maxout 单元:他的输入不是净输入z而是原始输入x,每个 Maxout 单元有 K 个权重向量 wk 和偏置 bk (1 ≤ k ≤ K). 对于输 入 x,可以得到 K 个净输入 zk