卷积神经网络基础

卷积神经网络基础

  • 卷积神经网络出现的意义
  • 卷积运算
  • 卷积神经网络

卷积神经网络出现的意义

计算机视觉问题中,输入的图片往往像素都很高。例如,一张普通的图片像素为1000 * 1000,那么输入x的维数就是1000 * 1000 * 3,W[1]就是一个3,000,000列的矩阵。
在神经网络中参数如此多的情况下,找到足够多的数据来保证不发生overfitting是很难的。
卷积神经网络就是为了处理大图像输入问题而诞生的。

卷积运算

e.g.在一张图中找出垂直的边缘线
关于怎么找,先上图:
卷积神经网络基础_第1张图片
上面的3个方格从左到右为:

  • 左边:输入图片的像素矩阵
  • 中间:用于卷积计算的矩阵,称为过滤器(filter)。
  • 右边:输出图片的像素矩阵

过滤器的“过滤方法”:
卷积神经网络基础_第2张图片
可见:
1、直观地,输出图片像素=输入图片中某个区域左边缘像素之和-右边缘像素之和。
2、输出图片的边长=输出图片的边长 - filter的边长(默认为3)+1
因此,当输入图片像素>>3,可以认为输入和输出图片一样大。

可以认为边界的宽度就是filter的大小,即3个像素。一般而言,不论输入/出图片多大,filter长宽都是3个像素。换言之,当输入/出图片远远大于3个像素的宽度,那么输出图片中通过filter得到的一些颜色相近的点的集合确实近似于一条细线


输出图片不仅能反映边缘,还能反映是从亮的一侧进入暗的一侧还是相反。
卷积神经网络基础_第3张图片
如图,因为0>-30,所以是从亮入暗;反之同理。


卷积运算也有缺陷:
1、每卷积一次,输出图片的尺寸会缩小2.
2、边缘上的像素点被用到的次数远小于中间像素点。
e.g.4个角上的像素点只会被用到1次,但中间的像素点会被用到9次。
解决方法:padding(填充)
上图:
卷积神经网络基础_第4张图片
操作:将输入图片四周围上一圈宽度为p,值为0的像素点。
作用:
1、扩大了输入图片,输出图片的大小和原始输入图片相同。
显然,p=(f-1)/2,f为过滤器的边长。(这就是大部分过滤器都是奇数边长的原因)
2、原始图片左上角的像素点被使用了4次,而非原本的1次。


其他:
步幅卷积(strided convolution):过滤器每次移动的步长>1
上图:
卷积神经网络基础_第5张图片
上图输出图片中的100,是输入图片中
7 4 6 9 8 7 8 3 8 \begin{matrix} 7&4&6 \\9&8&7\\8&3&8 \end{matrix} 798483678和过滤器的卷积。
至于这样做有什么用……可以简化输出?

卷积神经网络

卷积神经网络的作用:通过神经网络训练filter中9个参数。
注:filter不一定是像上面看到的这样中间全0,因为还要检测斜的边界。

你可能感兴趣的:(深度学习)