第四门课-卷积神经网络 第一周(重点总结)


注:图片来自网络

1.1 计算机视觉(Computer vision)

深度学习的优势: ①计算机视觉的高速发展标志着新型应用产生的可能;②由此衍生出新的神经网络结构与算法,启发人们去创造出计算机视觉与其他领域的交叉成果。
应用:图片分类,目标检测,图片风格迁移
数据的输入量:
1.当图片大小为64×64,颜色通道数为3时,特征向量维度为64×64×3=12288
2.当图片大小为1000×1000,颜色通道数为3时,特征向量维度为1000×1000×3=3百万(3m)假设第一个隐藏层中有1000个隐藏单元,则矩阵W[1]的维度为(1000,3m),也就是30亿个参数。
为此需要进行卷积运算

1.2 边缘检测示例(Edge detection example)

为了检测图像中的垂直边缘,你可以构造一个3×3矩阵(卷积核
在这里插入图片描述
卷积操作
在这里插入图片描述
在这里插入图片描述

1.3 更多边缘检测内容(More edge detection)

如何区分正边和负边(上图为正边,下图为负边)
在这里插入图片描述
检测水平边缘
在这里插入图片描述
在这里插入图片描述
其他算子:在这里插入图片描述
当你真正想去检测出复杂图像的边缘,不一定要去使用那些研究者们所选择的这九个数字。你可以将矩阵的所有数字都设置为参数,通过数据反馈,让神经网络自动去学习它们。

1.4 Padding

如果有一个 n × n 的图像,用 f × f 的卷积核进行卷积,得到图像的大小为(n-f+1)×(n-f+1)
缺点:每次做卷积,图像会缩小;丢掉了图像边缘位置的许多信息
解决方法: 在每次卷积操作之前填充图像
Valid卷积:不填充
Same卷积:填充p个像素点,原图由 n × n 变为(n+2p)×(n+2p),卷积后的图像大小为(n+2p-f+1)×(n+2p-f+1),如果想要图像大小在卷积前后保持一致,那么 p =(f-1)/ 2
f一般为奇数:①有一个中心点②便于对称填充

1.5 卷积步长(Strided convolutions)

当卷积步长为2时(上节默认步长为1):
在这里插入图片描述
输出图片大小变为:
在这里插入图片描述
向下取整: 只在蓝框完全包括在图像或填充完的图像内部时,才对它进行运算
在这里插入图片描述
注:卷积核不作翻转(实际上是互相关)

1.6 三维卷积(Convolutions over volumes)

灰度图大小为 6×6 的图像,卷积核为 3×3
对应的RGB彩色图像大小为 6×6×3 ,卷积核为 3×3×3

在这里插入图片描述
画成立方图:输出通道数为1
在这里插入图片描述
使用不同的卷积核:输出的通道数会等于你要检测的特征数
在这里插入图片描述

1.7 单层卷积网络(One layer of a convolutional network

在这里插入图片描述
在这里插入图片描述
设有10个过滤器,神经网络的一层是3×3×3,因此每个过滤器有27个参数,然后加上一个偏差,参数增加到28个。10个过滤器加在一起是28×10=280个参数。参数始终是280个(即使图片很大),这就是卷积神经网络的一个特征,叫作“避免过拟合”

在这里插入图片描述
在这里插入图片描述

1.8 简单卷积网络示例(A simple convolution network example)

在这里插入图片描述
例如,输入图像大小为39×39,通道数为3;
第一个卷积层:输入39×39×3,卷积核大小3×3×3,步长1,填充0,卷积核10个,输出37×37×10;
第二个卷积层:输入37×37×10,卷积核大小5×5×10,步长2,填充0,卷积核20个,输出17×17×20;
第三个卷积层:输入17×17×20,卷积核大小5×5×20,步长2,填充0,卷积核40个,输出7×7×40;

一共提取到7×7×40=1960个特征把它们展开成一个很长的向量。为了预测最终的输出结果,我们把这个长向量填充到softmax回归函数中。
在这里插入图片描述
一个典型的卷积神经网络通常有三层:卷积层CONV,池化层POOL,全连接层FC

1.9 池化层(Pooling layers)

池化层优点:缩减模型的大小,提高计算速度,提高所提取特征的鲁棒性。
池化层是计算神经网络某一层的静态属性,池化过程中没有需要学习的参数。执行反向传播时,反向传播没有参数适用于最大池化。只有这些设置过的超参数,可能是手动设置的,也可能是通过交叉验证设置的。
超级参数: 滤器大小 f 和步幅 s
其它超级参数: padding
池化层分类: 最大池化和平均池化

最大池化(max pooling):
当 f = 2,s = 1 时
在这里插入图片描述
当 f = 3,s = 1 时
在这里插入图片描述
nc个通道中每个通道都单独执行最大池化计算
最大化运算的实际作用就是,如果在过滤器中提取到某个特征,那么保留其最大值

平均池化(Average pooling):
在这里插入图片描述
最大池化比平均池化更常用

输入数据:
在这里插入图片描述
输出数据:
在这里插入图片描述
对每个通道都做了池化
池化前后通道数nc不变

1.10 卷积神经网络示例(Convolutional neural network example)

在这里插入图片描述
输入: 32×32×3
Layer1:CONV1+POOL1
CONV1:卷积核6个,大小5×5×3,步长1,输出28×28×6;
POOL1:卷积核大小2×2,步长2,输出14×14×6;
Layer2:CONV2+POOL2
CONV2:卷积核16个,大小5×5×6,6步长1,输出10×10×16;
POOL2:卷积核大小2×2,步长2,输出5×5×16;

全连接层:
在这里插入图片描述
FC3:将POOL2平整化为一个大小为 5×5×16 = 400 的一维向量,然后利用这400个单元构建下一层。下一层含有120个单元,这就是我们第一个全连接层,它的权重矩阵为W[3],维度为120×400。
FC4:对这个120个单元再添加一个全连接层,含有84个单元,它的权重矩阵为W[4],维度为84×120
最后,用这84个单元填充一个softmax单元。如果我们想通过手写数字识别来识别手写0-9这10个数字,这个softmax就会有10个输出.

在神经网络中,另一种常见模式就是一个或多个卷积后面跟随一个池化层,然后一个或多个卷积层后面再跟一个池化层,然后是几个全连接层,最后是一个softmax
随着层数增加,高度和宽度都会减小,而通道数量会增加,然后得到一个全连接层。
全连接层: 每一个结点都与上一层的所有结点相连
在这里插入图片描述
不同层激活值维度,激活值大小和参数数量:
在这里插入图片描述
池化层没有参数;
卷积层的参数逐渐减少,许多参数都存在于神经网络的全连接层

1.11 为什么使用卷积?(Why convolutions?)

和只用全连接层相比,卷积层的两个主要优势在于参数共享稀疏连接
在这里插入图片描述
参数共享: 整张图片共享特征检测器,提取效果也很好
稀疏连接: 下一层中的每个激活只依赖于前一层的少量激活,输出单元(元素0)仅与36个输入特征中9个相连接,而且其它像素值都不会对输出产生任影响。

神经网络可以通过这两种机制减少参数,以便我们用更小的训练集来训练它,从而预防过度拟合。卷积神经网络善于捕捉平移不变,因为神经网络的卷积结构使得即使移动几个像素,这张图片依然具有非常相似的特征,应该属于同样的输出标记。

发布了1 篇原创文章 · 获赞 0 · 访问量 286

猜你喜欢

转载自blog.csdn.net/qq_35024702/article/details/104896373