背景
线性模型表达能力有限,需要通过激活函数引入非线性因素,增强线性模型的表达能力。神经网络的数据基础是处处可微,所以激活函数需要保证输入与输出也是可微的
激活函数
sigmoid
值域压缩在0~1之间,缺点是可能产生梯度消失,因为x绝对值较大(饱和态)时变化率非常小,x在(-3, 3)时函数有较好的效果,极限范围大概为(-6, 6)。在特征相差负责缺没有明显区别,或特征相差不是特别大时,效果更好一点
f(x) = 1 / (1 + exp(-x))
Tanh
Tanh是Sigmoid函数值域的升级版,值域范围为(-1, 1)。在特征相差明显时。会不断扩大特征效果并显示出来
tanh(x) = 2sigmoid(2x) - 1
Relu
Relu函数使用更为广泛,对正向信号重视,湖绿负向信号,且运算简单。经处理后的数据具有更好的稀疏性,除了最大值,其他均为0,最大保留数据特征,生成大量元素为0的稀疏矩阵,应用最广
f(x) = max(0, x)
softmax ——多分类
用于多分类时各个类别的概率
f(x) = exp(x) / reduce_sum(exp(x))
其他激活函数
swish、leaky relu、Elu等不多做介绍,是基于上述激活函数的优化
损失函数
损失函数用于描述模型预测值和真实值的差距,一般有两种常见的算法:均值平方差和交叉熵。均值平方差一般用于回归,预测值是连续值;交叉熵用于分类问题,预测值是标签