卷积神经网络概论(Convolutional Neural Network,CNN)
卷积神经网络基础
与普通神经网络相比,卷积神经网络有一些特殊的层,也有一些卷积神经网络中特有的专有名词,本文将会逐一介绍。
全连接层(Fully Connected Layer)
全连接层可以理解为神经网络基础中的“隐藏层”。(同样的,包含权重向量 W W W和激活(激励)函数)
对于全连接层的作用,举个例子:
-
有一张32 x 32 x 3的图片(宽和高为32px,有RGB三个通道,因此可以理解为32 x 32 x 3的矩阵)
-
先将其拉伸为3072 x 1的向量作为神经网络的输入,然后和权重向量 W W W做点乘,再通过激活函数(Sigmoid 或 Tanh)
-
输出结果,这个就是全连接层的最终结果
特征层(Feature map) & 特征向量
- 特征向量:
- 特征层:
- 当激活后的结果为二维向量时,我们称之为特征层(有时也叫激活层,activation map)
卷积层(Convolution Layer)
和全连接层不同,卷积层保留了图像的空间特征。(即图片不需要Like全连接层,不做图片的“拉伸”)
为了了解卷积层的过程,先来了解相关名词:
卷积核(Kernel)
卷积核,常常简称为**“卷积”,有时也称为滤波器**(filter)
卷积的大小通常是自定义的长和宽(常常设置为1 x 1,3 x 3,5 x 5等),但是高应该与输入图片的通道数目一致
步长(Stride)
步长是指卷积在输入图片上移动时,需要移动的像素(px)数。
- s t r i d e = 1 stride=1 stride=1,每次移动1px,则计算过程不会跳过任何像素
- s t r i d e = 2 stride=2 stride=2,每次移动2px……
感受野
卷积每次滑动所覆盖的范围,在图像处理中叫“感受野”。
下面来了解具体的卷积过程:
-
一维卷积:
例子1
-
条件: S t r i d e = 1 , K e r n e l = 1 ∗ 3 , I n p u t = 1 ∗ 7 Stride=1,Kernel=1*3,Input=1*7 Stride=1,Kernel=1∗3,Input=1∗7
-
过程:
-
卷积计算: A = ∑ i = 1 3 I n p u t i ∗ K e r n e l i = 5 ∗ 10 + 2 ∗ 5 + 6 ∗ 11 = 126 A=\sum_{i=1}^{3}{Input_i*Kernel_i}=5*10+2*5+6*11=126 A=∑i=13Inputi∗Kerneli=5∗10+2∗5+6∗11=126
B = . . . B=... B=...
以此类推
最终获得一个 1 ∗ 5 的 O u t p u t 1*5的Output 1∗5的Output
例子2
-
条件: S t r i d e = 2 , K e r n e l = 1 ∗ 3 , I n p u t = 1 ∗ 7 Stride=2,Kernel=1*3,Input=1*7 Stride=2,Kernel=1∗3,Input=1∗7
-
过程:
卷积计算同例子1
最终获得一个