博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CNN- 数据预处理
阅读量:5214 次
发布时间:2019-06-14

本文共 1359 字,大约阅读时间需要 4 分钟。

  对于CNN输入的数据,常见的有三种处理方式:

     1.Mean subtraction.  将数据的每一维特征都减去平均值。在numpy 中 X -= np.mean(X, axis = 0)

     2.Normalization  归一化数据,使数据在相同尺度。 在numpy 中 X /= np.std(X, axis = 0)

 

     

     3. PCA and Whitening.  首先均值化数据,然后求协方差矩阵。

      X -= np.mean(X, axis = 0) //求均值  

      cov = np.dot( X.T, X) / X.shape[0] // 求协方差矩阵

      U,S,V = np.linalg.svd(cov) //奇异值分解,其中 U 为特征向量,S为奇异值分解向量为特征向量的平方

      Xrot = np.dot(X, U) //去除数据相关性

      Xrot_reduced = np.dot(X, U[:,:100]) 降维到 100 维

     Xwhite = Xrot / np. sqrt(s + 1e-5) //白化数据 1e-5 为防止除0

     可视化数据:例子为CIFAR-10  images

   左边第一张图片为CIFAR-10 中的49张图片(每张图片有3072个特征),第二张图片为3072特征向量中的前144个特征,第三张图片为通过PCA降维降到144维,使用的是图二中的前144维,第四张图片为白化后的图片。

   常见的数据处理是 Mean substraction 和 Normalization.

  权重的设置

  陷阱:全零初始化  如果参数是全零,导致输出的结果相同,那么通过反向传播计算梯度也相同,那么参数也不会更新。

  用较小的数随机化: W = 0.01*  np.random.randn(D,H) randn 返回的样本满足标准正态分布.

  标准化变量 1/sqrt(n)  W = np.random.randn(n) / sqrt(n)  或者 W = np.random.randn(n) / sqrt(2.0/n)

  初始化偏置项

   很常见的是将偏置项设置为0,ReLu 激活函数有些人会设置为 0.01, 在实际中通常设置为 W =  np. random.randn(n) * sqrt(2.0/n)

  Batch Normalization 

  发现一个讲解Batch Normalization 的博客 详见http://blog.csdn.net/hjimce/article/details/50866313

 正则化

 有多种方法来防止神经网络的过拟合。

  L2 范式 w = w + 1/2 λw2  

  L1 范式 w = w + λ|w|  向量各元素绝对值之和

  L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0

  Dropout 

     Dropout是指在模型训练时随机让网络某些隐含层节点的权重不工作,不工作的那些节点可以暂时认为不是网络结构的一部分,但是它的权重得保留下来(只是暂时不更新而已),因为下次样本输入时它可能又得工作了。如下图所示

 

   主要参考CS231n 课程。

 

   

转载于:https://www.cnblogs.com/luxiao/p/5534393.html

你可能感兴趣的文章
bzoj3944:Sum
查看>>
UVA 10859 - Placing Lampposts 树形DP、取双优值
查看>>
03 线程池
查看>>
201771010125王瑜《面向对象程序设计(Java)》第十三周学习总结
查看>>
java中内部类的讲解
查看>>
mini2440加载NFS出错解决方法
查看>>
Asp.netMVC中Ajax.BeginForm上传文件
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
查看系统事件日志
查看>>
VK Cup 2016 - Qualification Round 2 B. Making Genome in Berland
查看>>
Eclipse 一直提示 loading descriptor for 的解决方法
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
为块级元素添加链接
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
:hover 鼠标同时触发两个元素变化
查看>>
go语言学习十三 - 相等性
查看>>
Idea 提交代码到码云(提交到github也大同小异)
查看>>
c#连接excel2007未安装ISAM解决
查看>>
Mono 异步加载数据更新主线程
查看>>