Batch normalization
一.知识储备
1.1机器学习希望样本空间独立同分布:
就是样本的各个维度特征之间分布相同,且相互独立。
如果数据不服从独立同分布会造成什么?
- 首先讲 独立:各个特征相关性比较多,容易造成冗余,比如一个特征描述耳朵,另一个特征也是描述耳朵的,就相当于特征重复了,而我们希望只取其中一个特征就好,所以就造成了冗余,冗余比较严重的时候就会造成过拟合。
- 其次讲 同分布:为什么要同分布呢?假如各个维度的特征不同分布,也就会造成各个维度的特征尺度不一,即量纲不同,不同的量纲会造成训练速度减慢,局部最优等问题,具体原因看我这篇文章: 机器学习---之为什么要对数据进行归一化
-
解决办法:其实独立同分布是一个假设,一个设想,所以为了尽量的去靠近这个设想,就有了后来的PCA降维,PCA就可以可以尽可能的消除各个维度特征之间的相关性。关于PCA降维是什么看我这篇文章, 机器学习---之PCA降维
1.2源域和目标域同分布:
- 与上一个的独立同分布需要区分开来,独立同分布讲的是样本空间中的各个维度的特征独立同分布,而这里的源域指的是训练的样本空间,目标域是你想要去预测的样本空间,如果源域与目标域的概率分布都不同,你还预测什么嘛,通俗的话讲用一个都是猫的训练集来训练的模型,去预测狗,概率分布明显不同嘛,怎么预测的对?至于概率分布在图像预测以及分类过程中到底代表什么?看我这篇文章概率分布,独立同分布在图像分类与检测中到底代表什么?
1.3什是internal incovariate shift:
- 首先你要懂 incovariate shift:,看这篇文章 convariate shift 理解了这篇文章之后,interna incovariate shift 就是代表神经网络中内部的 incovariate shift。
二.Deep learing常见问题
1.如容易造成过拟合。
2.需要谨慎的调参数,包括学习率,以及权重的初始化等等。
3.训练速度慢,造成internal incovariate shift。
等等问题
三.BN的作用
1.你可以加大训练的学习率,加快训练速度而不会导致收敛问题,解决 internal incovariate shift
2.一定程度防止过拟合,可以减少drop ou