为什么要Batch Normalization?
这是由于Sigmoid的特性
由于在多层神经网络,后面的X会很容易很大,所以sigmoid会趋近与无穷,而sigmoid趋近与无穷时,梯度的下降会变得很小,我们很难训练神经网络
而Batch Normalization就是为了解决,把X的取值拉回到-5到-5这个区间,这样才有比较好的非线性性
Batch Normalization的好处?
加快了梯度下降
起到类似dropout一样的正则化能力,一定程度上防止过拟合。
比较好调参
不用sigmoid还用Normalization🐎?
前面说的是为了解决Sigmoid的饱和性,那么我们用Relu或者tanh呢?
也是有用的,当数据批量归一化的,数据会更有规律,机器更好去学习。