卷积神经网络(CNN)介绍02-数据预处理

数据预处理

输入网络之前通常会对图片进行一些预处理操作,例如:滤波去噪(均值滤波、中值滤波、高斯滤波等),去均值,归一化,白化等操作。

标准化

需要消除样本不同属性具有不同量级时的影响:

1) 数量级的差异将导致量级较大的属性占据主导地位;

2) 数量级的差异将导致迭代收敛速度减慢;

3) 依赖于样本距离的算法对于数据的数量级非常敏感。

min-max标准化(归一化)

归一化为了让不同维度的数据具有相同的分布。对于每个属性,设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x’,其公式为:新数据 = (原数据 - 最小值) / (最大值 - 最小值)。

z-score标准化(规范化)

基于原始数据的均值(mean)和标准差(standarddeviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。新数据 = (原数据 - 均值) / 标准差

去均值也叫中心化

新数据= 原数据 - 均值。 数据有过大的均值,可能导致参数的梯度过大。去均值并没有消除像素之间的相对差异。(人们对于图像信息的摄取通常来自于像素间的相对色差,而不是像素值的高低。)

标准化/归一化的原因:

  1. 归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数
  2. 在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度
  3. 无量纲化。
  4. 避免数值问题: 太大的数会引发数值问题。避免异常值和极端值的影响(噪音)。

神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都要做一个归一化预处理的原因。

对于深度网络的训练是一个复杂的过程,只要网络的前面几层发生微小的改变,那么后面几层就会被累积放大下去。一旦网络某一层的输入数据的分布发生改变,那么这一层网络就需要去适应学习这个新的数据分布,所以如果训练过程中,训练数据的分布一直在发生变化,那么将会影响网络的训练速度。

白化

白化,又称漂白或者球化;是对原始数据x实现一种变换,变换成x_Whitened;使x_Whitened的协方差矩阵的为单位阵。

一般情况下,所获得的数据都具有相关性,所以通常都要求对数据进行初步的白化或球化处理,因为白化处理可去除各观测信号之间的相关性,从而简化了后续独立分量的提取过程,而且,通常情况下,数据进行白化处理与不对数据进行白化处理相比,算法的收敛性较好。

由于原始图像相邻像素值具有高度相关性,所以图像数据信息冗余,对于白化的作用的描述主要有两个方面:

  1. 减少特征之间的相关性;
  2. 特征具有相同的方差(协方差阵为1)

白化分为PCA白化ZCA白化,实现原理见网页

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值