一、RGB三维图像的卷积

首先复习以下二维卷积运算的过程:


然后让我们看看三维图像如何进行有效的卷积运算。

计算方法和二维卷积类似,从三维图像中划分出3×3×33\times3\times33×3×3的方块(称为卷积立方体),对这27个像素点进行卷积,即逐个元素与过滤器相乘求和,得到输出二维矩阵中的一个值。

三维图像和过滤器可以有不同的高和宽,但是必须有相同的通道数。在RGB这个例子中,就是有R G B三个颜色通道(组成图像中的任意颜色)

二、叠加过滤器

试想一个问题,用前面的方法可以实现垂直边缘检测和水平边缘检测,但是如果我们要检测的是更一般的边缘呢(换句话说:想检测更多的特征信息 )?比如43°。这个时候需要一种方法,叫做过滤叠加。

  • 使用垂直边缘检测过滤器,得到垂直边缘检测结果【二维】。
  • 使用水平边缘检测过滤器,得到水平边缘检测结果【二维】。
  • 将垂直和水平边缘检测矩阵叠加得到【三维】结果。
  • 该【三维】结果叠加了垂直和水平检测的效果。

来看看老师的示意图:

三、维度总结

三维图像:n×n×ncn\times n\times n_cn×n×nc​
过滤器:f×f×ncf\times f\times n_cf×f×nc​
卷积输出:n−f+1×n−f+1×nc′n-f+1\times n-f+1\times n_c'n−f+1×n−f+1×nc′​
其中,nc′=n_c'=nc′​= #filtersfiltersfilters
注意,这里用到的padding=valid,stride=1.
所以更一般的卷积输出如下:
n+2p−f+1s×n+2p−f+1s×nc′\frac{n+2p-f+1}{s}\times \frac{n+2p-f+1}{s}\times n_c'sn+2p−f+1​×sn+2p−f+1​×nc′​
输出的通道数nc′n_c'nc′​等于过滤器的数量,也等于检测的特征数(在上述RGB图像例子中,检测垂直和水平边缘两个特征)

四、单层卷积网络


计算单层网络中参数的个数
单层中图像是3×3×33\times3\times33×3×3,过滤器数量为10,问该层有多少个参数?

  • 每层27个位置,卷积运算后加上1个偏置值b,得到每个过滤器卷积时需要28个参数。
  • 一共10个过滤器,作10次上述过程,共计280个参数。

可以看到,不管图像有多大,参数并不多,取决于过滤器的数量和大小,这个在卷积神经网络中称为避免过拟合

五、符号说明

f[l]f^{[l]}f[l]:第lll层的过滤器大小

p[l]p^{[l]}p[l]:第lll层的padding数量

s[l]s^{[l]}s[l]:第lll层的stride步长

nc[l]n_c^{[l]}nc[l]​:第lll层的过滤器数量

f[l]×f[l]×nc[l−1]f^{[l]}\times f^{[l]}\times n_c^{[l-1]}f[l]×f[l]×nc[l−1]​:第lll层的过滤器维度

f[l]×f[l]×nc[l−1]×nc[l]f^{[l]}\times f^{[l]}\times n_c^{[l-1]}\times n_c^{[l]}f[l]×f[l]×nc[l−1]​×nc[l]​:第lll层的权重维度

nc[l]:1×1×1×nc[l]n_c^{[l]} :1\times1\times1\times n_c^{[l]}nc[l]​:1×1×1×nc[l]​:第lll层的偏置维度

nH[l−1]×nW[l−1]×nc[l−1]n_{H}^{[l-1]}\times n_{W}^{[l-1]}\times n_c^{[l-1]}nH[l−1]​×nW[l−1]​×nc[l−1]​:第lll层的输入维度

nH[l]×nW[l]×nc[l]n_{H}^{[l]}\times n_{W}^{[l]}\times n_c^{[l]}nH[l]​×nW[l]​×nc[l]​:第lll层的输出维度

m×nH[l]×nW[l]×nc[l]m\times n_{H}^{[l]}\times n_{W}^{[l]}\times n_c^{[l]}m×nH[l]​×nW[l]​×nc[l]​:第lll层【m个样本】的输出维度(深度学习中的向量化技术)

nH[l]=⌊nH[l−1]+2p[l]−f[l]s[l]+1⌋n_{H}^{[l]}=\lfloor{\frac{n_{H}^{[l-1]}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1}\rfloornH[l]​=⌊s[l]nH[l−1]​+2p[l]−f[l]​+1⌋

nW[l]=⌊nW[l−1]+2p[l]−f[l]s[l]+1⌋n_{W}^{[l]}=\lfloor{\frac{n_{W}^{[l-1]}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1}\rfloornW[l]​=⌊s[l]nW[l−1]​+2p[l]−f[l]​+1⌋

六、卷积神经网络作图像分类

第一次卷积:

第二次卷积:

第三次卷积:

对最后一次卷积结果展开成一列向量,logistic/softmax回归得到预测结果。

七、卷积神经网络中的典型层类型

  • 卷积层 Convolution(CONV)
  • 池化层 Pooling(POOL)
  • 全连接层 Fully Connected(FC)

虽然只搭建卷积层可以实现卷积神经网络,但是神经网络架构师通常会用上池化层和全连接层搭建神经网络,这两层网络比卷积层更容易搭建。将这三者结合起来,能搭建更为强大的神经网络。


祝大家2021新年快乐!祝自己2021年收获满满,能达到自己的预期!

深度学习笔记(三十一)三维卷积及卷积神经网络相关推荐

  1. 深度学习笔记(十一)—— 完整性检查[Sanity Checks]

      这是深度学习笔记第十一篇,完整的笔记目录可以点击这里查看.      在进行高运算量的网络优化之前,可以先考虑进行以下几个检验: 1. Look for correct loss at chanc ...

  2. 深度学习(三)转-可视化理解卷积神经网络 直接查看卷积神经网络的过程特征...

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9579461.html 参考博客:http://blog.csdn.net/hjimce/art ...

  3. 深度学习笔记三:反向传播(backpropagation)算法

    接上一篇的最后,我们要训练多层网络的时候,最后关键的部分就是求梯度啦.纯数学方法几乎是不可能的,那么反向传播算法就是用来求梯度的,用了一个很巧妙的方法. 反向传播算法应该是神经网络最基本最需要弄懂的方 ...

  4. 深度学习(三十一)基于深度矩阵分解的属性表征学习

    基于深度矩阵分解的属性表征学习 原文地址:http://blog.csdn.net/hjimce/article/details/50876956 作者:hjimce 一.相关概念 本篇博文主要讲解文 ...

  5. 深度学习笔记第一门课第二周:神经网络的编程基础(上)

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  6. 深度学习笔记第一门课第二周:神经网络的编程基础(下)

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  7. 深度学习(三十一)——Style Transfer

    Style Transfer 上图是Style Transfer问题的效果图:将图片B的风格迁移到另一张图片A上. 上图是图像风格迁移所涉及的科技树. 在继续讨论之前,我们有必要指出Style Tra ...

  8. 深度学习笔记7 Working with Large Images 卷积特征提取

    动机 在用稀疏自编码器对8*8 或28*28等小图像提取特征时是可行的,但是若对大图像学习整幅图像的特征,将会非常耗时.因此需要把这种"全连接"的设计改为"部分联通&qu ...

  9. 吴恩达深度学习笔记(十一)—— dropout正则化

    主要内容: 一.dropout正则化的思想 二.dropout算法流程 三.dropout的优缺点 一.dropout正则化的思想 在神经网络中,dropout是一种"玄学"的正则 ...

  10. 系统学习深度学习(三十一)--Nature DQN(NIPS 2015)

    转自:https://www.cnblogs.com/pinard/p/9756075.html 1. DQN(NIPS 2013)的问题 在上一篇我们已经讨论了DQN(NIPS 2013)的算法原理 ...

最新文章

  1. Ctrl+C提示是否终止shell脚本
  2. 赠票 | 第三届语言与智能高峰论坛
  3. 初探GNN-文本表示学习
  4. 告别花瓶:2015年智能电视路在何方?
  5. JavaScript对象、JSON对象、JSON字符串的区别
  6. Hotspot JVM的常用选项
  7. 只腐蚀毛刺 腐蚀算法_去毛刺更省时省力的方式方法大全!
  8. (37)FPGA面试题实现约翰逊计数器
  9. 【jQuery笔记Part1】11-jQuery选择器
  10. openstack windows下远程debug调试(komodo)
  11. Linux系统根据端口号查找项目路径
  12. 云计算平台能够提供计算服务器,云计算平台提供了什么服务器
  13. 根据IP查询城市(基于ipdb库)
  14. 秦九韶算法——计算方法
  15. 串口服务器远程距离,基于串口服务器的变频器远程控制系统.pdf
  16. 交换机路由器端口配置
  17. 基于python的李代数实现方法
  18. JavaWeb Day02(动力节点)
  19. java中提供的好用的生成随机数字的工具类(可用来当验证码)
  20. R语言实现灰色预测模型gm11

热门文章

  1. android 启动画面广告,浅谈APP启动界面广告
  2. 腐烂国度2巨霸版计算机学知识,腐烂国度2巨霸版玩法技巧汇总
  3. 基于微信小程序的面包店在线服务系统
  4. SpringBoot使用Netty实现远程调用
  5. ueditor 图片上传 java_Spring+Vue整合UEditor富文本实现图片附件上传的方法
  6. 未来技术 html5 app,未来web浏览技术提前体验:10个会让你惊叹不已的HTML5画布(canvas)技术应用演示...
  7. 正式成为 Apache Teaclave 子项目,百度安全 Rust TrustZone SDK 赋能多平台隐私安全计算开源生态
  8. 如何下载台湾的硕博论文--大陆的论文不给力呀
  9. div样式之margin
  10. 微软云的一些说明(整理)