图片分类和图片识别,目标检测,图片风格迁移
特征向量的维度
卷积神经网络一般应用于计算机视觉领域,由于有的时候图片的像素点很多,导致神经网络输入特征值的维数很多。
弄清一张照片中的物体,利用电脑进行去识别,垂直边缘检测,水平边缘检测。
如下图所示,原图是一个661的矩阵,卷积核是一个331的矩阵,经过卷积后得到一个441的矩阵。(为了检测图像中的垂直边缘,可以构造一个3*3的矩阵,在共用习惯中,在卷积神经网络的术语中,它被称为过滤器。在论文中,有时候会被称为核)
计算过程如下:(各方格一一对应,相乘然后进行相加)
| 3 | 0 | 1 |… … … …| 1 | 0 | -1 |
| 1 | 5 | 8 |…*… . … .| 1 | 0 | -1 | =3+1+2-1-8-2=-5
| 2 | 7 | 2 |… … … …| 1 | 0 | -1 |
此例子与上面相同(垂直边缘的原理)
卷积运算提供了一个比较方便的算法来发现图像中的垂直边缘。
垂直边缘检测不仅可以检测垂直方向的边缘,还可以区分该边是从亮到暗(正边)还是从暗到亮(负边)。
除了之前卷积核中数字组合外还有很多,在做边缘检测的过程中最好将卷积核中的数字作为参数进行学习,这样得到的神经网络效果最好。
滤波器的不同,会有不一样的特性
通过反向传播,Sobel滤波器和Scharr滤波器以及其他滤波器,对于数据的捕捉能力甚至胜过任何手写的滤波器,可以检测出45度、60度或73度,甚至是任何角度的边缘。
如果有n*n个方格,乘以f*f的滤波器,那么将会得到一个(n-f+1)*(n-f+1)的输出,这样的卷积方式,其存在两个缺陷:
一是当一个6*6的图像经过3*3的卷积核卷积后会变成一个4*4的图像,这使图像经过卷积后变小了;
二是原矩阵边缘处只被运算一次,而中心处会被运算多次,导致边缘处大部分信息被丢失了。
不过可以在输出边缘都填充一圈像素点。
下图是两种卷积方式:
Valid卷积是令padding为0,意味着不填充
Same卷积是通过添加padding使卷积前和卷积后图像的大小相同(p=(f-1)/2)。
引入padding后维数的公式为n+2p-f+1。
推荐使用奇数的过滤器,其中n为n*n的图像,p为填充的像素点(可以自定义),f为过滤器(f*f的过滤器),由此出现一个(n+2p-f+1)*(n+2p-f+1)的输出。
当步长为2时,每进行一次运算后都要向左或者下移动两个像素点,如下图。
有步长的情况下维数的计算公式:
n×n * f×f =(n+2p-f)/s+1 × (n+2p-f)/s+1
镜像操作(mirroring operation):
| 3 | 0 | 1 | | 2 | 8 | 1 |
| 1 | 5 | 8 | ========> | 7 | 5 | 0 |
| 2 | 7 | 2 | | 2 | 1 | 3 |
沿着对角线进行对称交换数值。
一般不进行此类操作
在B站看了吴恩达深度学习课程第四课——卷积神经网络的视频,想做个笔记,让这个寒假过得充实一点,嘻嘻,有感兴趣的同学一起来玩呀!
B站视频来源:【中英字幕】吴恩达深度学习课程第四课 — 卷积神经网络_哔哩哔哩_bilibili