CNN 入门讲解:什么是标准化?

此文章首发于

卷积神经网络(CNN)入门讲解zhuanlan.zhihu.com图标

内容如有修改,不在此处修改,请关注知乎:蒋竺波

----------------------------分割线------------------------------------------------------------

大家在看一些机器学习或者深度学习的文章时,在数据预处理的时候,会不会经常看到一个步骤:

(输入数据-数据均值)/数据标准差

初学者的你可能就直接略过了

因为你觉得它就是一个简单的线性变换,并没有多复杂

但是

就像爱因斯坦的相对论:

E = mc^2

大道至简

这个数据预处理的步骤在机器学习或者深度学习里面,都是重中之重

其实,它是标准化(Normalization)的一种


今天的内容:

当然,标准化的方法这是最常用的。

Z-score 怎么用python 代码实现:

实现时有2种不同的方式:
(1),使用sklearn.preprocessing.scale()函数,直接将数据进行标准化。
(2),使用sklearn.preprocessing.StandardScaler类,其优点可以保存训练数据中的参数(均值、方差),也可以直接使用其对象转换(transform)其测试集数据。

标准化的方法有很多,还有归一化,规范化等,具体都可以在 网上找到答案


其他参考资料:

【原】关于使用sklearn进行数据预处理 -- 归一化/标准化/正则化www.cnblogs.com图标数据标准化的方法与意义 - CSDN博客blog.csdn.net图标

----------------------------分割线------------------------------------------------------------

下面我们来看看,在CNN中,我们为什么要给图像做标准化

很多时候我们的训练图片会出现下面的情况:

大家看上面两只猪,对于人来说,它就是两只一样的猪,只是图片的灰度或者曝光度不一样罢了,于是我们都给它们都标注为社会人

咋一看,好像没毛病

但是,虽然我们人眼看没毛病,可是机器看的方式和我们不一样,他们看的是对应图片的像素值

由于曝光的,灰度等各种原因,他们像素值其实不一样,那么经过卷积层后,他们的特征很可能不一样

于是神经网络就尴尬了,特征都不一样,为啥标签都一样呢?

这样,迷惑的神经网络就不知道怎么对权值进行训练了



另一种情况:

当然,我上面就是举了两个例子,还有很多情况需要进行标准化才能解决,标准化常用的是Z-Score, 记住,这是要减去自己数据的均值和除以自己的标准差(不是方差)

大家在用Fine-tune pretrained model,比如Imagenet, 程序里面经常是减去的Imagenet的均值和方差,这样是不对的,大家在跑程序的时候要注意了。

在公众号里回复:标准化,可以获得全部高清PPT哦!!

关于标准化在机器学习方面的应用,可以参考下面资料:

nnetInfo文章浏览nnetinfo.com图标parkson:R--数据标准化、归一化、中心化处理zhuanlan.zhihu.com图标

网上有很多,大家可以自己找找。

希望大家多多点赞,谢谢啦。

有问题,欢迎提问。

阅读更多
上一篇CNN 入门讲解:图片在卷积神经网络中是怎么变化的(前向传播)
想对作者说点什么? 我来说一句

卷积神经网络

2018年06月20日 1.46MB 下载

STL 标准化模板库 的入门

2010年04月29日 194KB 下载

CNN卷积神经网络介绍

2015年05月31日 2.98MB 下载

ajax ppt 一些ajax的讲解

2010年08月13日 2.51MB 下载

什么是rnc,rnc讲解

2012年01月14日 21KB 下载

CNN入门介绍

2016年07月22日 3.11MB 下载

深度学习CNN代码

2014年04月09日 5KB 下载

CNN_tutorial

2017年12月07日 3.71MB 下载

没有更多推荐了,返回首页

关闭
关闭