BN,Batch Normalization, 属于Normalization中的一种归一化方式,所以在介绍BN之前,首先了解一下Normalization.
1. 为什么需要 Normalization
在机器学习领域中,通常假设数据具有“独立同分布”的特性,这样可以简化常规机器学习模型的训练、提升机器学习模型的预测能力。
具体为什么要求“独立同分布”,也附上相关解释:
关于独立同分布,西瓜书这样解释道:
输入空间中的所有样本服从一个隐含未知的分布,训练数据所有样本都是独立地从这个分布上采样而得。
**好了,那为啥非要有这个假设呢?
我们知道,机器学习就是利用当前获取到的信息(或数据)进行训练学习,用以对未来的数据进行预测、模拟。所以都是建立在历史数据之上,采用模型去拟合未来的数据。因此需要我们使用的历史数据具有总体的代表性。
** 为什么要有总体代表性?
我们要从已有的数据(经验) 中总结出规律来对未知数据做决策,如果获取训练数据是不具有总体代表性的,就是特例的情况,那规律就会总结得不好或是错误,因为这些规律是由个例推算的,不具有推广的效果。通过独立同分布的假设,就可以大大减小训练样本中个例的情形。
机器学习并不总是要求数据同分布。在不少问题中要求样本(数据)采样自同一个分布是因为希望用训练数据集训练得到的模型