我是靠谱客的博主 粗暴彩虹,最近开发中收集的这篇文章主要介绍自然语言处理(NLP)-模型常用技巧:Normalization【Batch Norm、Layer Norm】一、为什么对数据归一化二、数据进行归一化标准化常用的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、为什么对数据归一化
我们知道在神经网络训练开始前,需要对输入数据做归一化处理,那么具体为什么需要归一化呢?
- 一方面,神经网络学习过程本质就是为了学习数据特征以及数据的分布特征,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;
- 另外一方面,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都要做一个归一化预处理的原因。
同时也是在训练前为什么要把训练数据充分打乱的原因,充分打乱使得每个batch的样本包含各类别的数据,这样通过每个batch的样本训练时各个batch所包含的数据分布更接近,同时和整个训练集的数据分布更接近,更有利于训练出更泛化的模型,同时有利于模型的收敛。
试想不充分打乱数据,若每个batch只包含一个类别的数据,不同的batch数据进行训练时网络就要在每次迭代都去学习适应不同的分布,会使得网络收敛很慢。
二、数据进行归一化标准化常用的方法
归一化层,目前主要有这几个方法,Batch Normalization(2015年)、Layer Normalization(2016年)、Instance Normalization(2017年)、Group Normalization(2018年)、Switchable Normalization(2018年);
将输入的图像shape记为[N, C, H, W],这几个方法主要的区别就是在,
最后
以上就是粗暴彩虹为你收集整理的自然语言处理(NLP)-模型常用技巧:Normalization【Batch Norm、Layer Norm】一、为什么对数据归一化二、数据进行归一化标准化常用的方法的全部内容,希望文章能够帮你解决自然语言处理(NLP)-模型常用技巧:Normalization【Batch Norm、Layer Norm】一、为什么对数据归一化二、数据进行归一化标准化常用的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复