CNN - 卷积神经网络输入层

 

数据输入层:Input Layer

1、数据预处理

进行预处理的主要原因是:

  1. 输入数据单位不一样,可能会导致神经网络收敛速度慢,训练时间长
  2. 数据范围大的输入在模式分类中的作用可能偏大,而数据范围小的作用就有可能偏小
  3. 由于神经网络中存在的激活函数是有值域限制的,因此需要将网络训练的目标数据映射到激活函数的值域
  4. S形激活函数在(0,1)区间以外区域很平缓,区分度太小。例如S形函数f(X),f(100)与f(5)只相差0.0067

2、常见数据预处理方式

数据标准化(normalization):

将数据按比例缩放,使之落入一个小的特定区间。

https://pic2.zhimg.com/80/v2-453ddffc76ce39adaade8275823e8f6d_hd.jpg

https://pic1.zhimg.com/80/v2-d4ecf772efc43776b09bdcac9f603830_hd.jpg

https://pic1.zhimg.com/80/v2-b9dd790eb81a6011eca1c31d1962dd28_hd.jpg

https://pic1.zhimg.com/80/v2-1783097977379c0d47ac7006010431dc_hd.jpg

标准化常用的是Z-Score, 记住,这是要减去自己数据的均值和除以自己的标准差(不是方差)

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

 

  1. 归一化

每个像素:新数据 = [(原数据-均值)/ 标准差 ] + 偏执

  1. 去均值

将输入数据的各个维度中心化到0

数据中心化:是指变量减去它的均值

  1. PCA/白化

用PCA降维

白化是对数据的每个特征抽上的幅度归一化

数据增强:

即增加训练数据,则能够提升算法的准确率,因为这样可以避免过拟合,而避免了过拟合你就可以增大你的网络结构了。当训练数据有限的时候,可以通过一些变换来从已有的训练数据集中生成一些新的数据,来扩大训练数据。数据增强的方法有https://github.com/aleju/imgaug

水平翻转:

随机裁剪:

     如原始图像大小为256*256,随机裁剪出一些图像224*224的图像。如下图,红色方框内为随机裁剪出的224*224的图片。 AlexNet 训练时,对左上、右上、左下、右下、中间做了5次裁剪,然后翻转,得到10张裁剪的图片。防止大网络过拟合(under ubstantial overfitting)

其他如:

平移变换;

旋转/仿射变换;

高斯噪声、模糊处理

对颜色的数据增强:图像亮度、饱和度、对比度变化。

  • 12
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值