note:
过拟合不是坏事,过拟合说明你的模型对当前数据集表达能力够强,我们可以通过其他方式防止过拟合。
- 正则项,丢弃法,限制参数变化范围
- 用1*1的卷积替代全连接层(NiN),减少参数量
随着层数的增加,由于反向求导的链式法则,容易造成
梯度爆炸
梯度消失
在求梯度时,我们会发现,参数梯度是权重矩阵W和激活函数导数的连乘。
梯度爆炸往往是中间层某些输出值太大。
sigmoid函数容易造成梯度消失,是充分不必要关系。
权重初始化太复杂,不用看了,还是用高斯分布初始化就好。
至于激活函数的调整,我们可以用泰勒进行展开,将激活函数在原点范围内的函数图像,近似y=x
sigmoid(x)可以改为4*sigmoid(x)-2
inf一般由于权重初始,或者lr太大引起的
nan not a number,一般是除于0了。
qa:
将层的输出强制为均值为0,方差为1,是不是会降低模型的表达能力?
不会,我只是将值变化的区间进行了缩小平移,使数值在一个合理的区间进行表达。数与数之间相对并没有发生变化。
