参考知乎回答:https://www.zhihu.com/question/264163033
含义:
non-saturating neurons = 没有被挤压(到一个特定的区间)处理过的值
saturating neurons = 被挤压(到一个特定的区间)过的值
输出saturating neurons的activation:
sigmoid: input neurons的值会被挤压到[0,1]的区间
tanh:input neurons的值会被挤压到[-1,1]的区间
输出non-saturating neurons 的activation:
relu:input neurons的值,要么变0, 要么保持原值(无挤压,无最大最小值限制)
leaky_relu:input neurons的值, 要么按照某比例缩小,要么保持原值(无挤压,无最大最小值限制)
为什么要用relu这样的能生成non-saturating neurons的non-linear activations, 而不用生成saturating neurons的sigmoid或tanh?
规避vanishing, exploding of gradients 带来的gradient值过大过小,导致训练效率低下
什么是saturation? 为什么要叫saturating, non-saturating?
因为有一个数学计算叫做saturation arithmetic
这个算法就是要求将input的值全部变成在某个最大值和最小值之间的值