←上一篇 ↓↑ 下一篇→
1.7 单层卷积网络 回到目录 1.9 池化层

简单卷积网络示例 (A Simple Convolution Network Example)

上节课,我们讲了如何为卷积网络构建一个卷积层。今天我们看一个深度卷积神经网络的具体示例,顺便练习一下我们上节课所学的标记法。

假设你有一张图片,你想做图片分类或图片识别,把这张图片输入定义为 xxx ,然后辨别图片中有没有猫,用0或1表示,这是一个分类问题,我们来构建适用于这项任务的卷积神经网络。针对这个示例,我用了一张比较小的图片,大小是39×39×3,这样设定可以使其中一些数字效果更好。所以 nH[0]=nW[0]n_H^{[0]}=n_W^{[0]}nH[0]​=nW[0]​ ,即高度和宽度都等于39, nc[0]=3n_c^{[0]}=3nc[0]​=3 ,即0层的通道数为3。


假设第一层我们用一个3×3的过滤器来提取特征,那么 f[1]=3f^{[1]}=3f[1]=3 ,因为过滤器时3×3的矩阵。 s[1]=1,p[1]=0s^{[1]}=1,p^{[1]}=0s[1]=1,p[1]=0 ,所以高度和宽度使用valid卷积。如果有10个过滤器,神经网络下一层的激活值为37×37×10,写10是因为我们用了10个过滤器,37是公式 n+2p−fs+1\frac{n+2p-f}{s}+1sn+2p−f​+1 的计算结果,也就是 39+0−31+1=37\frac{39+0-3}{1}+1=37139+0−3​+1=37 ,所以输出是37×37,它是一个vaild卷积,这是输出结果的大小。第一层标记为 nH[1]=nW[1]=37,nc[1]=10n_H^{[1]}=n_W^{[1]}=37,n_c^{[1]}=10nH[1]​=nW[1]​=37,nc[1]​=10 , nc[1]n_c^{[1]}nc[1]​ 等于第一层中过滤器的个数,这(37×37×10)是第一层激活值的维度。


假设还有另外一个卷积层,这次我们采用的过滤器是5×5的矩阵。在标记法中,神经网络下一层的 f=5f=5f=5 ,即步幅 f[2]=5f^{[2]}=5f[2]=5 为2,即 s[2]=2s^{[2]}=2s[2]=2 。padding为0,即 p[2]=0p^{[2]}=0p[2]=0 ,且有20个过滤器。所以其输出结果会是一张新图像,这次的输出结果为17×17×20,因为步幅是2,维度缩小得很快,大小从37×37减小到17×17,减小了一半还多,过滤器是20个,所以通道数也是20,17×17×20即激活值 a[2]a^{[2]}a[2] 的维度。因此 nH[2]=nW[2]=17,nc[2]=20n_H^{[2]}=n_W^{[2]}=17,n_c^{[2]}=20nH[2]​=nW[2]​=17,nc[2]​=20 。


我们来构建最后一个卷积层,假设过滤器还是5×5,步幅为2,即 f[2]=5,s[3]=2f^{[2]}=5,s^{[3]}=2f[2]=5,s[3]=2 ,计算过程我跳过了,最后输出为7×7×40,假设使用了40个过滤器。padding为0,40个过滤器,最后结果为7×7×40。


到此,这张39×39×3的输入图像就处理完毕了,为图片提取了7×7×40个特征,计算出来就是1960个特征。然后对该卷积进行处理,可以将其平滑或展开成1960个单元。平滑处理后可以输出一个向量,其填充内容是logistic回归单元还是softmax回归单元,完全取决于我们是想识图片上有没有猫,还是想识别 KKK 种不同对象中的一种,用 y^\hat{y}y^​ 表示最终神经网络的预测输出。明确一点,最后这一步是处理所有数字,即全部的1960个数字,把它们展开成一个很长的向量。为了预测最终的输出结果,我们把这个长向量填充到softmax回归函数中。

这是卷积神经网络的一个典型范例,设计卷积神经网络时,确定这些超参数比较费工夫。要决定过滤器的大小、步幅、padding以及使用多少个过滤器。这周和下周,我会针对选择参数的问题提供一些建议和指导。


而这节课你要掌握的一点是,随着神经网络计算深度不断加深,通常开始时的图像也要更大一些,初始值为39×39,高度和宽度会在一段时间内保持一致,然后随着网络深度的加深而逐渐减小,从39到37,再到17,最后到7。而通道数量在增加,从3到10,再到20,最后到40。在许多其它卷积神经网络中,你也可以看到这种趋势。关于如何确定这些参数,后面课上我会更详细讲解,这是我们讲的第一个卷积神经网络示例。

一个典型的卷积神经网络通常有三层,一个是卷积层,我们常常用Conv来标注。上一个例子,我用的就是CONV。还有两种常见类型的层,我们留在后两节课讲。一个是池化层,我们称之为POOL。最后一个是全连接层,用FC表示。虽然仅用卷积层也有可能构建出很好的神经网络,但大部分神经望楼架构师依然会添加池化层和全连接层。幸运的是,池化层和全连接层比卷积层更容易设计。后两节课我们会快速讲解这两个概念以便你更好的了解神经网络中最常用的这几种层,你就可以利用它们构建更强大的网络了。


再次恭喜你已经掌握了第一个卷积神经网络,本周后几节课,我们会学习如何训练这些卷积神经网络。不过在这之前,我还要简单介绍一下池化层和全连接层。然后再训练这些网络,到时我会用到大家熟悉的反向传播训练方法。那么下节课,我们就先来了解如何构建神经网络的池化层。

课程板书




←上一篇 ↓↑ 下一篇→
1.7 单层卷积网络 回到目录 1.9 池化层

1.8 简单卷积网络示例-深度学习第四课《卷积神经网络》-Stanford吴恩达教授相关推荐

  1. 2.19 总结-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.18 Logistic 损失函数的解释 回到目录 3.1 神经网络概览 文章目录 总结 习题 第 11 题 第 12 题 第 13 题 第 14 题 第 15 题 第 1 ...

  2. 1.7 单层卷积网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.6 三维卷积 回到目录 1.8 简单卷积网络示例 单层卷积网络 (One Layer of a Convolutional Network) 今天我们要讲的是如何构建卷积 ...

  3. 1.9 池化层-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.8 简单卷积网络示例 回到目录 1.10 卷积神经网络示例 池化层 (Pooling Layers) 除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度, ...

  4. 0.0 目录-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  5. 深度学习第四课——卷积神经网络(week 1)

    目录 一.前言 1.1 卷积 1.2 其他滤波器 1.3 Padding 1.3.1 解释 1.3.2 填充多少像素的选择 1.4 卷积步长 1.5 三维卷积 1.6 单层卷积网络 1.7 深度卷积神 ...

  6. 4.11 一维到三维推广-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.10 风格代价函数 回到目录 4.12 总结 一维到三维推广 (1D and 3D Generalizations of Models) 你已经学习了许多关于卷积神经网络 ...

  7. 4.7 CNN 特征可视化-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.6 什么是神经风格转换? 回到目录 4.8 代价函数 CNN 特征可视化 (What are deep ConvNets learning?) 深度卷积网络到底在学什么? ...

  8. 4.12 总结-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.11 一维到三维推广 回到目录 1.1 为什么选择序列模型(第五课) 总结 习题 第 131 题 面部验证只需要将新图片与1个人的面部进行比较,而面部识别则需要将新图片与 ...

  9. 4.6 什么是神经风格迁移-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.5 面部验证与二分类 回到目录 4.7 什么是深度卷积网络? 什么是神经风格迁移 (What is neural style transfer?) 最近,卷积神经网络最有 ...

最新文章

  1. Spring3.1新属性管理API:PropertySource、Environment、Profile
  2. 转帖:关于MongoDB你需要知道的几件事
  3. 【分布式】分布式事务解决方案概述
  4. 【孤偏盖全唐】Linux中find命令完整用法
  5. js中的children实时获取子元素
  6. 医学方面的创业计划书_医学生创业计划书
  7. Ubuntu 16.04下安装SVN可视化客户端--RabbitVCS
  8. 自定义SeekBar 带文字
  9. 五笔字根口诀(五笔86字根表)
  10. javascript书籍推荐
  11. vue 和 ssr+nuxt.js 配置环境变量以及pm2进行服务部署
  12. 小猫打螃蟹-第10届蓝桥杯Scratch省赛真题第2题
  13. canvas-变换-scale(缩放)
  14. GEM5教程: 使用 gem5 运行 PARSEC 基准测试
  15. 基于spring boot 的学生科研项目共享平台 毕业设计-附源码271611
  16. GIS数据与CAD数据间带属性字段互相转换还原工具,解决ArcGIS等软件进行GIS数据转CAD数据无法保留属性字段问题
  17. 企业网站源码搭建新站点后怎么让百度快照更新
  18. Java作业之数组排序篇
  19. 第五章 报警 SLO
  20. 书读百遍其义自见-------2017--05--27读书篇

热门文章

  1. dva.js在index。tsx中获取script标签引用的文件
  2. 数据库路由中间件MyCat - 源代码篇(7)
  3. codevs 3164 质因数分解
  4. Python: sklearn库——数据预处理
  5. PHP基础1--环境搭建
  6. yii2地址多级联动
  7. mysql 优化(一)
  8. Oracle- 数据库的备份
  9. Android 通过 XMPP 实现聊天功能,App Engine Assisted Group Chat (开源)
  10. javascript添加HTML事件处理程序的两种方式学习