美文网首页
Andrew Ng深度学习课程笔记阅读记录(4):卷积神经网络

Andrew Ng深度学习课程笔记阅读记录(4):卷积神经网络

作者: yumiii_ | 来源:发表于2019-01-14 16:40 被阅读0次

1.边缘检测
为什么可以用来做垂直检测?


image.png

如果有一个矩阵如上图所示,我们用不同的数字表示灰度,假设0代表的是灰色,那么上面那个矩阵就代表了中间有个竖直边缘的线,如果卷积上一个3*3的核,得到的一个矩阵中间的那个白色的部分就代表检测出的垂直边缘,虽然看上去它检测的很粗。明暗变化的区别:从0到30,表示从暗到亮。假设我们把要卷积的矩阵的灰白颠倒一下,卷积的结果会是下面这个样子:


image.png

0到-30,表示从灰色到更暗的颜色

2.filter


image.png

3.padding
如果一个n✖️n的矩阵和一个f✖️f的filter卷积,得到的矩阵维度为(n-f+1) ✖️(n-f+1).
这样做的话有两个缺点:
1⃣️每次做卷积操作,图像就会缩小
2⃣️边缘部分的像素可能很少会进行这个卷积的过程,但中间的像素点会参与多次的卷积,因此边缘部分保留的信息较少。
怎么解决这个问题?可以在进行卷积之间填充这个图像。要填充多少像素通常有两个选择,分别叫做Valid卷积和Same卷积。Valid卷积意味着不填充,也就是假设有个n✖️n的图像,用f✖️f的过滤器卷积,得到一个(n-f+1)✖️(n-f+1)的输出。Same卷积意味着填充后,输出大小和输入大小是一样的,也就有这个等式成立:n+2p-f+1=n,化简得到p=(f-1)/2,所以当f是个奇数的时候只要选择相应的填充尺寸就能确保输入和输出的尺寸相同,在CV中f通常是奇数,一因为如果是偶数就会出现一些不对称的填充,二是因为奇数维的过滤器会有一个中心点便于指出滤波器的位置。

4.Stride
如果用一个f✖️f的过滤器卷积一个n✖️n的图像,padding为p,步长为s,那么得到的输出维度是[(n+2p-f)/2+1]✖️[(n+2p-f)/2+1],如果算的这个商不是一个整数,那么就向下取整,向下取整的意思是过滤器必须完全处于图像中或者填充之后的图像区域才输出相应的结果。

p.s 在数学教材中,做卷积之前需要将过滤器沿水平和垂直轴反转,相当于做个镜像,但是在深度学习中,将不进行反转操作的叫做卷积,其实严格意义上这应该叫做互相关(cross-correlation)

5.三维卷积
假设想检测RGB彩色图像,它有三个通道,我们可以把图片想象成3个6✖️6图像的堆叠,现在不是和一个3✖️3的过滤器卷积了,而是和一个三维的过滤器3✖️3✖️3卷积,这个过滤器也有三个通道。卷积的过程见下图


image.png

当输入有特定的宽、高、通道数时,过滤器可以有不同的宽和高,但是必须和输入的通道数相同。
和多个过滤器进行卷积:


image.png
维度总结:n✖️n✖️n_c(通道数)的输入图像,卷积f✖️f✖️n_c的过滤器,输出的维度是(n-f+1)✖️(n-f+1)✖️nc‘,这里的nc’就是用的过滤器的个数(这里的stride为1且没有padding)

6.池化
超参数:过滤器的大小f和stride,但是这两个确定了之后就是一个固定的运算,不用BP再去学习。常用的参数值为f=2,stride=2,相当于高度和宽度缩减一半,也有使用f=3,s=2的情况。大部分情况下最大池化很少使用padding。
三维输入的池化,就是在每个通道都单独的执行池化运算。
最大池化比平均池化更常用。

相关文章

网友评论

      本文标题:Andrew Ng深度学习课程笔记阅读记录(4):卷积神经网络

      本文链接:https://www.haomeiwen.com/subject/wtrjdqtx.html