输出saturating neurons的activation:
- sigmoid: input neurons的值会被挤压到[0,1]的区间
- tanh:input neurons的值会被挤压到[-1,1]的区间输出
non-saturating neurons 的activation:
- relu:input neurons的值,要么变0, 要么保持原值(无挤压,无最大最小值限制)l- eaky_relu:input neurons的值, 要么按照某比例缩小,要么保持原值(无挤压,无最大最小值限制)
为什么要用relu这样的能生成non-saturating neurons的non-linear activations, 而不用生成saturating neurons的sigmoid或tanh?
- 规避vanishing, exploding of gradients 带来的gradient值过大过小,导致训练效率低下
- 使用了RELU后,训练效率大幅提升
最后,回头问一句,什么是saturation? 为什么要叫saturating, non-saturating?
- 因为有一个数学计算叫做saturation arithmetic
- 这个算法就是要求将input的值全部变成在某个最大值和最小值之间的值。