(Review cs231n) CNN in Practice
Make the most of your data
Data augmentation

加载图像后,对图像做一些变化,这些变换不改变图像的标签。
通过各种变换人为的增大数据集,可以避免过拟合提高模型的性能,最简单的数据增强就是横向翻转。
1. horizontal flips

2. random crops and scales
对图像进行随机的尺度和位置上选择图像截图;缩放到CNN需要的图像大小最为新的数据集。

使用随机裁剪和缩放来训练模型的时候,用整幅图像来测试算法并不合理,因此在测试阶段,要准备一些
固定的截图,并用这些数据来测试算法,非常常见的作法是选取图像的10个截图(左上角、右上角、下面两个角和中间部分的截图,并把这五个图进行翻转)。

Resnet在测试阶段进行多尺度的变换

3.color jitter
一种简单的方法就是改变对比度

复杂的方法就是:对训练集所有像素做主成分分析(PCA),每个像素是一个长度为3的向量(RGB),当我们遍历所有像素后,得到主要颜色有哪些,然后PCA给出颜色空间中3个主要的颜色方向,表明数据集中颜色在哪个方向上变换最为剧烈,做数据增强,根据这些颜色的主成分来决定新产生的颜色。
4.add extra noise
增加随机噪声扰乱网络,包括BN、Minibatch,dropout弱化了噪声的影响,在BN中保留了均值。
在前向传播时随机增加噪声,在测试的时候弱化噪声影响。
Transfer learning
对于数据量较小,只能把手头的网络当作一个特征提取器,imagenet最后一层是softmax,用一个满足自己需求的线性分类器来代替这个softmax, 其他层不变,只训练这个顶层,类似于只训练一个线性分类器。
类似于:你只要把训练集产生的所有特征存在硬盘上。

数据量较多的话:可以训练更复杂的网络,在最后几层去训练,得到feature map,最后的几层重新初始化,前面的freeze部分不变初始化。

微调finetuning的建议:
第一种是学习率为0的固定层。
第二种是从头开始初始化的层,一般学习率高一些,1/10吧。
第三种是预训练网络中的中间层,要在优化和finetuning中学习,这些中间层的学习率很小,1/100.
微调的muti-stages 建议:
第一步是把网络固定,只训练最后几层,当最后几层快要收敛后,再对这些(包括要训练的中间层进行fineturing)。
由于刚刚初始化,所以梯度会很大,可以先开始固定中间层,等着最后层收敛;或者两个阶段使用不同的学习率。
微调这种迁移学习,当原来网络是类似类型的数据训练出来的时候,微调效果高。
迁移学习的建议

对于MRI数据集,高阶特征可能是针对某种图像的分类,低阶特征是边缘一类的特征,这些低阶特征很容易迁移到非图像数据上面去,
All about convolutions

堆叠两个3*3的卷积,得到一个神经元等于一个5*5的卷积;
堆叠三个3*3的卷积,得到一个神经元等于一个7*7的卷积;
一个7*7的卷积和堆叠三个3*3的卷积在参数规模上的区别:

3*3的三个卷积更好。

3*3的三个卷积比大卷积更少的计算。

比较神奇的结构,1*1的卷积减小了深度上的体积,在空间上有相同的尺寸,要做一个3*3的降维卷积
再做一个1*1的卷积回到原来的深度。
作用:
1*1的卷积减小深度上的维度叫做“bottleneck”,就像将一个多层的全连接层遍历每个数据通道

使用这种结构,可以获得更小的参数规模,参数的个数和计算量直接相关,多层瓶颈结构计算起来快得多,并且有更好的非线性。
卷积的计算


How to arrange them
How to compute them fast
Implementation details
(Review cs231n) CNN in Practice的更多相关文章
- (Review cs231n) Object Detection
目标:我们有几个类别,然后我们要在这张图中找到这些类的所有实例 解决思路:是否可以按照回归的思路进行求解呢? 但是受限制于确定的种类输出问题. 方法:分类和回归是解决问题的两个套路,我们现在对于目标的 ...
- (Review cs231n) ConvNet
概念 神经网络的深度和数据据体的深度(图像的通道数channels)要主要区分. 输入 1.得到一些数据,作为网络的输入. 2.在CNN中有filter,the size of filter is s ...
- (Review cs231n) BN and Activation Function
CNN网络的迁移学习(transfer learning) 1.在ImageNet上进行网络的预训练 2.将最上方的层,即分类器移除,然后将整个神经网络看成是固定特征提取器来训练,将这个特征提取器置于 ...
- (Review cs231n) Spatial Localization and Detection(classification and localization)
重在图像的定位和检测的内容. 一张图片中只有一种给定类别标签的对象,定位则是图像中有对象框:再这些类中,每一个训练目标都有一个类和许多的图像内部对应类的位置选框. 猜想的仅是类标签,不如说它们是位置 ...
- (Review cs231n) Training of Neural Network2
FFDNet---matlab 调用并批处理 format compact; global sigmas; % input noise level or input noise level map a ...
- (Review cs231n) Optimized Methods
Mini-batch SGD的步骤: 1.Sample a batch of data 2.Forward prop it through the graph,get loss 3.backprop ...
- (Review cs231n) The Gradient Calculation of Neural Network
前言:牵扯到较多的数学问题 原始的评分函数: 两层神经网络,经过一个激活函数: 如图所示,中间隐藏层的个数的各数为超参数: 和SVM,一个单独的线性分类器需要处理不同朝向的汽车,但是它并不能处理不同颜 ...
- (Review cs231n) Gradient Vectorized
注意: 1.每次更新,都要进行一次完整的forward和backward,想要进行更新,需要梯度,所以你需要前馈样本,马上反向求导,得到梯度,然后根据求得的梯度进行权值微调,完成权值更新. 2.前馈得 ...
- (Review cs231n) Gradient Calculation and Backward
---恢复内容开始--- 昨日之补充web. 求解下图的梯度的流动,反向更新参数的过程,表示为 输入与损失梯度的关系,借助链式法则,当前输入与损失之间的梯度关系为局部梯度乘以后一层的梯度. ---恢复 ...
随机推荐
- IOS开发中发布的时候取消日志打印
在PCH文件中定义如下宏 #if DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #define debugMethod() NSLog(@"%s&q ...
- 一次Spring Bean初始化顺序问题排查记录
最近在使用Springboot的时候需要通过静态的方法获取到Spring容器托管的bean对象,参照一些博文里写的,新建了个类,并实现ApplicationContextAware接口.代码大致如下: ...
- 正则RegExp序2
1.var reg=/./ var reg=/\./ 前者代表任意一个字符而后面代表这个字符串中得有一个. 2.?的使用 如果单独的一个字符后面带? var reg=/\d?/ /n?/ 代表 ...
- laravel整合workerman做消息推送系统
官方建议分离 workerman和mvc框架的结合,我去,这不是有点脑缺氧吗? 大量的业务逻辑,去独立增加方法和类库在写一次,实际业务中是不现实和不实际的 gateway增加一些这方面的工作,但是我看 ...
- 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- [05-01]Linux如何重启系统
/* 私人笔记 */ 1.在linux相关路径下J2EE上传代码,指令:svn update : 2. 若项目名在linux中的目录为Scorpius ,跟新代码目录地址为 cd /home/xagd ...
- git分支与主干合并操作
git分支与主干合并操作1.主干合并分支在主干上合并分支 branch (master)git merge branch --squash 提交合并后的代码 (master)git commit -m ...
- [Day21]异常
1.异常-Java代码在运行时期发生的问题,在Java中,把异常信息封装成了一个类.当出现了问题时,就会创建异常类对象并抛出异常相关的信息 1.1 异常的继承体系 Throwable:它是所有错误与异 ...
- 2018-2019-2 网络对抗技术 20165225 Exp6 信息搜集与漏洞扫描
2018-2019-2 网络对抗技术 20165225 Exp6 信息搜集与漏洞扫描 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.O ...
- L1-039. 古风排版
L1-039. 古风排版 中国的古人写文字,是从右向左竖向排版的.本题就请你编写程序,把一段文字按古风排版. 输入格式: 输入在第一行给出一个正整数N(<100),是每一列的字符数.第二行给出一 ...