问题一:Batch-norm作用和参数
batch norm的作用
- batch norm对于输入数据做了零均值化和方差归一化过程,方便了下一层网络的训练过程,从而加速了网络的学习。不同batch的数据,由于加入了batch
norm,中间层的表现会更加稳定,输出值不会偏移太多。各层之间受之前层的影响降低,各层之间比较独立,有助于加速网络的学习。梯度爆炸和梯度消失现象也得到了一些缓解(我自己加上去的)。 - batch norm利用的是mini-batch上的均值和方差来做的缩放,但是不同的mini-batch上面的数据是有波动的,相当于给整个模型引入了一些噪音,从而相当于有了一些正则化的效果,从而提升表现。
测试时的batch norm在训练过程中,y,b参数和w相似,直接利用梯度值乘以学习率,更新值就好了。需要注意的是,batch norm中的z的均值和方差都是通过每一个mini-batch上的训练数据得到的。在测试过程中,不能通过单独样本的数据计算均值和方差,我们可以通过让训练过程中的每一个mini-batch的均值和方差数据,计算指数加权平均,从而得到完整样本的均值和方差的一个估计。在测试过程中,使用该值作为均值和方差,从而完成计算。
问题二:L1/L2的区别和作用
L1/L2的区别
- L1是模型各个参数的绝对值之和。
- L2是模型各个参数的平方和的开方值。
L1会趋向于产生少量的特征,而其他的特征都是0。