1.深度模型的激活函数
2.激活函数导致的梯度消失
3.批量归一化
4.自归一化神经网络
1.激活函数:
多层感知机:目的是近似估计一个未知的函数f(x): x->y
f(x) = f1(f2(…fn(x)))
如果每一个简单的函数都线性函数,那么复合函数仍然是线性函数
所以需要有非线性项
2.激活函数导致的梯度消失
常见激活函数:
sigmoid
优点:
1.逻辑回归
2.导数好计算,光滑可微
缺点:
1.在数轴大部分区域导数为0;
2.函数只能取到正值;
双曲tanh
优点:
1.导数好计算,光滑可微
2.有正负对称
缺点:
1.在数轴大部分区域导数为0;
ReLU
rectify linear
max(x,0)
优点:
1.导数计算方便
2.在正数范围内导数为1(很大范围内)
缺点:
函数取正值;(无法沿最优方向走)
ELU
Exponential linear
优点:
1.导数计算方便;
2.正数范围内导数等于1
3.取值有正有负
没有平坦区,可能会梯度爆炸
3. 批量归一化:层输出对下一层的影响
小批量
4.自归一化:模型自己具备归一化能力
如果网络中隐藏层神经元总可以保持输入随机变量的均值和方差稳定不变,那么:
- 训练网络将不再会出现梯度消失或者梯度爆炸的情况;
- 每一层的输入也将会保持稳定的分布,从而达到批量归一化减小协变偏移的效果
ELU
左边缩小方差,
右边保持方差
方差整体上是缩小的
而均值不能得到保障
特制激活函数
SELU = lamba*((alpha)ELU)
适当选取参数lamba 和alpha
使得整体上保持方差和均值
证明:
1.中心极限定理,网络宽度够大,满足中心极限定理
2.banach不动点定理,随层数加深,可以实现自归一化
压缩映射