卷积神经网络——卷积神经网络
一、计算机视觉
1.计算机视觉的具体应用:图像识别、目标检测、图片风格转换。在应用计算机视觉时要面临一个挑战:数据输入大。例如:一张画质为1000*1000*3的图片,其所构建的神经网络中输入特征将是300W,这将消耗巨大的内存,因此要处理这样庞大的神经网络,必须使用卷积技术来构建神经网络。
二、边缘检测
1卷积计算:卷积计算作为卷积神经网络的基础,其最基本的运用是在边缘检测中,我们来看看这个卷积过程是如何实现的。
假设左侧6X6的矩阵是图片A,中间的3X3矩阵是卷积计算中的一个重要概念称为过滤器(filter)也称“核”,经过卷积运算后图片A转化成右侧4X4矩阵假设其为图片B,这个过程中卷积计算的重要作用是将较大图片A转化为较小图片B。卷积计算的具体过程如图中绿色字体所示,将过滤器中的元素逐一和图片A最左上角的一个3X3矩阵运算得到图片B第一个值,依次类推。
2.为什么卷积计算可以进行垂直边界检测
我们知道图像是有RGB值组成,值得大小决定了颜色的深浅,因此,我们可以将上图中的三个矩阵转化成具有色彩的图片进行说明这个边界检测的实现过程,如下图。
三、边缘检测(续)
1.从上节可以使用过滤器(vertical)可以进行垂直边缘检测,那么我们可以推出使用过滤器(horizontal)可以进行水平边缘检测,两种过滤器(核)见下图
2.常见的过滤器(核)形式:sobel filter,scharr filter,如下图
当然我们可以将过滤器中的9个数字当做九个参数[w1,w2,...,w9],然后神经网络的反向传播来去学习得到这九个参数,这样一来就可以进行各种角度的边缘检测,这种思路已经成为计算机视觉领域的主流方法。
四、padding
1.padding:卷积的基本操作,卷积的缺点(1)每次卷积操作图像会缩小;(2)边角处的像素点或者边缘像素点会被较少使用,这意味着会丢失边缘信息。所以为了解决这两个问题,在卷积之前要进行填充(padding),比如一个6X6的图像在padding之后变成8X8的图像,经过3X3的卷积,得到了6X6的图像,这样图像大小没有缩小,边缘像素点也没有丢失。
通常padding的填充值为0,填充层数P=1.
2.填充像素的选择:valid 和same卷积
(1)valid 卷积:不需padding
(2)same卷积:使卷积后的输出与输入图像大小相同,此时通过选择过滤器的大小(即fxf的值)可以保证输出与输入大小相同:p = ( f - 1) / 2.在计算机视觉中f通常为奇数。
3.我们在确定p的取值时有三种方式:(1)给定p值;(2)使用valid卷积,则p=0;(3)使用same卷积,则p值为(f-1)/2
五、卷积步长(stride)
1.如果在卷积操作中设置步长s,则输出矩阵大小为 [(n +2*p -f)/ s ] +1,如果不能整除,则进行floor操作(向下取整)
2.在深度学习中的卷积操作其实和数学定义中的有所区别,应称互相关而非卷积,但由于习惯还是称之为卷积。数学定义中在做乘积前需要对过滤器进行翻窗,见下图。
六、立体空间的卷积操作
1.对RGB图像的卷积操作,图像的三个维度分别是(高,宽,通道数(深度)),此时图像和过滤器的通道数需要保持一致。
2.多过滤器的卷积操作