参考《deeplearning.ai 卷积神经网络 Week 2 听课笔记》。

1. AlexNet(Krizhevsky et al. 2012),8层网络。

  学会计算每一层的输出的shape:对于卷积层,输出的边长 =(输入的边长 - filter的边长)/ 步长 + 1,输出的通道数等于filter的数量。每个filter的通道数等于输入的通道数。卷积层的参数 = filter的长 * filter的宽 * 输入的通道数 * filter的数量。池化层没有需要学习的参数。

  图中分成两个通道是为了在不同GPU上处理。

  2013年的ZFNet延续了AlexNet的架构(也是8层网络),优化了参数,取得了更好的效果(错误率从16.4%降到11.7%)。

2. VGGNet(Simonyan and Zisserman, 2014),16~19层网络。

  三个3*3的filter串联等价于一个7*7的filter,用更小的filter的好处是增加了网络的深度,增加了非线性程度,更少的参数。

3. GoogLeNet(Szegedy et al., 2014)

  Inception module是同时用不同的filter(1*1,3*3,5*5,Pooling),并把结果堆叠起来。这样做的缺点是计算量变大。解决的办法是先用1*1的卷积压缩通道数量(参考《deeplearning.ai 卷积神经网络 Week 2 听课笔记》)。

4. ResNet(He et al., 2015),152层网络。

  解决了很深的网络难优化的问题。

  对于深度的网络(ResNet-50+),类似GoogLeNet用1*1的卷积层去压缩通道数以提高效率。

5. 复杂度的比较

6. 其他一些网络

  Network in Network (NiN)(Lin et al., 2014):启发了GoogLeNet和ResNet的“bottleneck”层(1*1卷积层)。

  Identity Mappings in Deep Residual Networks (He et al., 2016):ResNet的改进。

  Wide Residual Networks (Zagoruyko et al., 2016):认为residuals是很重要的,而不是深度。增加宽度而不是深度,会计算更有效。50层的宽的ResNet比152层的原始的ResNet更好。

  ResNeXt (Xie et al., 2016):也是增加宽度,和Inception module很类似的想法。

  Deep Networks with Stochastic Depth (Huang et al., 2016):为了解决梯度消失的问题,随机地drop掉一些层。在测试阶段使用全部的网络,不drop任何层。

  FractalNet (Larsson et al., 2017):认为residual不是必须的,重要的是浅层到深层的有效传递(transitioning),训练阶段也是随机drop掉一些层,测试阶段不drop任何层。

  Densely Connected Convolutional Networks (Huang et al., 2017):为了解决梯度消失的问题,每一层与其他层更稠密的连接。

  SqueezeNet (Landola et al., 2017):更少的参数,更好的准确度。

7. 总结

  VGG、GoogLeNet、ResNet被广泛应用,现在已经是集成到各个现成框架。

  ResNet是当今最佳,默认选项。

  趋势是越来越深的网络。

  很多研究集中在设计层与层之间的连接方式,为了改善梯度的传播。

  最新的研究在争论深度和宽度,以及residual的必要性。

cs231n spring 2017 lecture9 CNN Architectures 听课笔记的更多相关文章

  1. cs231n spring 2017 lecture9 CNN Architectures

    参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的sh ...

  2. cs231n spring 2017 lecture13 Generative Models 听课笔记

    1. 非监督学习 监督学习有数据有标签,目的是学习数据和标签之间的映射关系.而无监督学习只有数据,没有标签,目的是学习数据额隐藏结构. 2. 生成模型(Generative Models) 已知训练数 ...

  3. cs231n spring 2017 lecture14 Reinforcement Learning 听课笔记

    (没太听明白,下次重新听) 1. 增强学习 有一个 Agent 和 Environment 交互.在 t 时刻,Agent 获知状态是 st,做出动作是 at:Environment 一方面给出 Re ...

  4. cs231n spring 2017 lecture2 Image Classification 听课笔记

    1. 相比于传统的人工提取特征(边.角等),深度学习是一种Data-Driven Approach.深度学习有统一的框架,喂不同的数据集,可以训练识别不同的物体.而人工提取特征的方式很脆弱,换一个物体 ...

  5. cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  6. cs231n spring 2017 lecture11 Detection and Segmentation 听课笔记

    1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"." ...

  7. cs231n spring 2017 lecture16 Adversarial Examples and Adversarial Training 听课笔记

    (没太听明白,以后再听) 1. 如何欺骗神经网络? 这部分研究最开始是想探究神经网络到底是如何工作的.结果人们意外的发现,可以只改变原图一点点,人眼根本看不出变化,但是神经网络会给出完全不同的答案.比 ...

  8. cs231n spring 2017 lecture15 Efficient Methods and Hardware for Deep Learning 听课笔记

    1. 深度学习面临的问题: 1)模型越来越大,很难在移动端部署,也很难网络更新. 2)训练时间越来越长,限制了研究人员的产量. 3)耗能太多,硬件成本昂贵. 解决的方法:联合设计算法和硬件. 计算硬件 ...

  9. cs231n spring 2017 lecture12 Visualizing and Understanding 听课笔记

    这一节课很零碎. 1. 神经网络到底在干嘛? 浅层的是具体的特征(比如边.角.色块等),高层的更抽象,最后的全连接层是把图片编码成一维向量然后和每一类标签作比较.如果直接把图片和标签做像素级的最近领域 ...

随机推荐

  1. django2.0+linux服务器 ,如何让自己电脑访问

    这几天一直在搞这个服务器端口开放问题,来让自己电脑可以访问服务器下的django网页,今天终于弄好了~~~~~离成功又进了一步~~~~~ 1.首先,我们来开放一个linux服务器的端口(我开放了828 ...

  2. IOC容器在web容器中初始化——(一)两种配置方式

    参考文章http://blog.csdn.net/liuganggao/article/details/44083817,http://blog.csdn.net/u013185616/article ...

  3. JAVA多线程统计日志计数时的线程安全及效率问题

    最近工作上遇到一个需求:需要根据nginx日志去统计每个域名的qps(Query Per Second,每秒查询率)数据. 解决了日志读取等问题之后,为了写一个尽可能高效的统计模块,我决定用多线程去计 ...

  4. Jstree 使用CheckBox插件 选中父节点时被禁用的子节点也会选中问题

    问题描述: 最近用jstree遇到一个问题,使用CheckBox插件时,当父节点选中时,被禁用的子节点也会选中如下 解决方案: 1.  将jstree升级到最新的版本,v3.3.4及以上就可以 2. ...

  5. php中static 静态关键字

    一直依赖对于php中static关键字比较模糊,只是在单例模式中用过几次.上网查了查,没有找到很全的介绍,自己总结一下. 根据使用位置分为两部分 1.函数体中的静态变量 2.类中的静态属性和方法 1 ...

  6. [置顶] xamarin android 布局尺寸了解

    为了使UI界面在不同大小的移动端显示器上能够正常显示,大家可能都知道使用sp作为字体大小的单位,dp作为其他元素长度的单位. 前几天看了一篇文章关于 App设计规范的,文章用心写的非常好,这里是链接  ...

  7. MySQL小抄

    以下是MySQL5.7中的一些tips&tricks(持续更新中): Use of an unqualified * with other items in the select list m ...

  8. [编织消息框架][网络IO模型]Netty Reactor

    严格来讲Netty Reactor是一种设计模式,一听模式两字就知道了吧,套路哈哈 Reactor中文译为“反应堆”. 看图netty处理流程 1.netty server 至少有两组reactor. ...

  9. JavaScript学习点滴 call、apply的区别

    对于apply和call两者在作用上是相同的,但两者在参数上有区别的.     1.call call 方法 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1 ...

  10. LindDotNetCore~Mock对实际应用中的意义

    回到目录 Mock在单元测试里的意义 Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以 便测试的测试方法.一个闹钟根据时间来进行提醒服务,如果过了下午5点 ...