1.激活函数
ReLU¶
- Dying ReLU 问题:如果一部分神经元输入为负数,那么输出一直为0,输出为0则无法被反向传播(因为无法求得导),所以这部分神经元就死掉了。
ReLU 变种¶
Leaky ReLU¶
- 解决了Dying ReLU 问题。
PReLU¶
Leaky RelU的小于零部分的斜率可以学习。
ELU¶
- 输出均值接近0,且对噪音稳定。
- 但是计算比较慢,有超参数。
SELU¶
在特定条件下,实现自归一化。避免梯度消失/爆炸,可以训练非常深的网络。
SiLU¶
即x乘上一个sigmoid函数。
GELU¶
关键在于高斯分布的累积分布函数(CDF)。利用
Sigmoid¶
- 当使用Sigmoid激活函数时,反向传播过程中会出现"梯度消失"。Sigmoid函数在输入值较大或较小时,其导数接近于0。当我们计算误差从输出层向输入层传播时,每经过一层都要乘以该层激活函数的导数。如果网络层数很多,这些小于1的导数值会不断相乘,导致最终传递到前面层的梯度变得极小,几乎为零。这使得它们的权重几乎不会更新,网络前面的层几乎无法学习。
-
此外,函数不是以零为中心的,这会导致训练过程中的收敛速度较慢。由于上一层sigmoid出来都是正数,所以在反向传播时,权重只能同加同减。
假设当前权重是
(w1, w2) = (1, 1)
。而理想的最优权重是(w1_opt, w2_opt) = (3, -1)
。且梯度更新规则不允许在一个步骤中同时增大w1
和减小w2
,所以迭代次数需要很多次。
tanh¶
- 与Sigmoid相比,它是以零为中心,所以可以加快收敛速度。
- 能稍稍缓解梯度消失,但是消除不了。
Softmax¶
非线性,但是所有概率都在0,1之间,且总和为1。
- 多类别分类问题:作为神经网络的最后一层,将原始得分转换为各类别的概率分布
- 注意力机制:在注意力计算中,用于将相关性分数转换为权重
Softmin¶
距离或成本最小化:当需要基于距离或成本进行软选择时,Softmin 可以赋予较小值更高的权重
LogSoftmax¶
在反向传播时,往往更加稳定。