Python map遍历 SCI validation networking History.js jquery触发点击事件 安卓虚拟机运行windows bootstrap居中对齐 python for循环 python手册 python中文 python自学教材 python代码 python的lambda函数 java的正则表达式 java开发学习 java获取当前年 java时间戳转换日期格式 java入门课程 linuxshell编程 linux操作系统原理 音频录制软件 影视后期软件 sql行转列 keytool下载 spoonwep mssql 催眠魔蛙 steam怎么卸载 汽车配件查询软件 字符串分割成数组 淘宝图片下载 js验证码 udp测试工具 软件龙头股 ios12录屏 相册制作工具 c语言图书管理系统 igfxtray
当前位置: 首页 > 学习教程  > 编程语言

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

2021/2/13 16:34:34 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

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

一、RGB三维图像的卷积

在这里插入图片描述
计算方法和二维卷积类似,从三维图像中划分出 3 × 3 × 3 3\times3\times3 3×3×3的方块(称为卷积立方体),对这27个像素点进行卷积,即逐个元素与过滤器相乘求和,得到输出二维矩阵中的一个值。
在这里插入图片描述
三维图像和过滤器可以有不同的高和宽,但是必须有相同的通道数。在RGB这个例子中,就是有R G B三个颜色通道(组成图像中的任意颜色)

二、叠加过滤器

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

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

来看看老师的示意图:
在这里插入图片描述

三、维度总结

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

四、单层卷积网络

在这里插入图片描述
计算单层网络中参数的个数
单层中图像是 3 × 3 × 3 3\times3\times3 3×3×3,过滤器数量为10,问该层有多少个参数?

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

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

五、符号说明

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

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

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

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

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

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

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

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

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

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

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

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

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

第一次卷积:
在这里插入图片描述
第二次卷积:
在这里插入图片描述
第三次卷积:
在这里插入图片描述
对最后一次卷积结果展开成一列向量,logistic/softmax回归得到预测结果。
在这里插入图片描述

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

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

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


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


本文链接: http://www.dtmao.cc/news_show_700058.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?