第四部分 卷积神经网络 - 1 笔记

1.1 计算机视觉
Computer vision
计算机视觉例子
  • 图像分类(Image classification)
  • 目标检测(object detection)
  • 风格转移(neural style transfer)
深度学习应用到大图像上时:

第四部分 卷积神经网络 - 1 笔记

若每个像素作为一个输入的特征,那么当图像很大时,影像上像素个数会很多。对应的,网路输入特征的维度将非常大,那么网络的权重将会有海量的参数,既容易产生过拟合,也会对内存及硬件性能会有很高要求。利用深度学习处理图像数据,需要引入卷积的手段。

1.2 边缘检测示例
Edge detection example
第四部分 卷积神经网络 - 1 笔记

数字图像处理中,通过卷积检测边缘。
例子 垂直边缘检测
第四部分 卷积神经网络 - 1 笔记

原始图像大小为6x6x1,垂直边缘检测算子,又称为核或滤波器(kernel/filter),大小为3x3x1,经过卷积(*)(相乘再相加)后得到4x4x1的影像,即为边缘检测后的影像。卷积后影像尺寸为:6-3+1 = 4。
不同库中卷积对应的函数:TensorFlow——tf.nn.conv2d; keras——Conv2D。

1.3 更多边缘检测内容
More edge detection
例子1 垂直边缘检测
第四部分 卷积神经网络 - 1 笔记

例子2 水平边缘检测
第四部分 卷积神经网络 - 1 笔记

例子3 其他算子以及参数学习
第四部分 卷积神经网络 - 1 笔记

研究者已经设计好的算子可以用来检测诸如边缘、角点等特征,若想检测出图像上更加复杂抽象的特征,可以从ML/DL的角度来看,利用反向传播算法来学习这些特征提取算子。将过滤器中每个数字当做卷积算子的参数,通过卷积前向传播,通过反向传播来学习这些参数,这就是深度学习在计算机视觉领域非常优秀的体现。

1.4 Padding
Padding
卷积的一个重要操作就是padding。
1.2节提到,6x6x1的影像经过3x3x1的卷积后,影像的大小为4x4x1。这样的操作有两个缺点:
  1. 经过卷积影像会缩小,经过多次卷积影像甚至会缩小至1x1。
  2. 角落边缘的像素值,相比于影像中间区域的像素,利用率较低,卷积次数较少,存在丢失边缘信息的风险。
第四部分 卷积神经网络 - 1 笔记

Padding
为了有效的利用边缘信息,并顾及影像尺寸,可以沿影像边缘进行数据填充,习惯上,为了不影响边缘信息,用0进行填充。假设元素图像大小为n,卷积核大小为f,padding大小为p,则经过卷积后的影像大小为:n+2p-f+1。上图例子中,卷积后图像尺寸为:6+2x1-3+1 = 6。
Padding的两种方式:
  • Valid:不填充,卷积后影像尺寸为 — n-f+1
  • Same:等大填充,即经过填充后卷积后影像尺寸与原始尺寸一样,即有n+2p-f+1 = n ——> p = (f-1)/2
卷积核的大小f通常为奇数,原因:1、若f为偶数,same为不对称填充;2、奇数卷积核有一个中心点,便于指出卷积的位置。

1.5 卷积步长
Strided convolutions
卷积另一个重要操作就是stride。
stride即为卷积核在影像上卷积计算滑动的步幅。上述章节中默认stride大小均为1,假设元素图像大小为n,卷积核大小为f,padding大小为p,步长stride为s,则经过卷积后影像大小为: (n+2p-f)/s + 1,若计算后大小不为整数,向下取整即可。
第四部分 卷积神经网络 - 1 笔记

1.6 三维卷积
Convolutions over volumes

卷积不仅可以作用在单波段二维影像上,也可以作用在三维影像上,甚至更多波段的影像。随着影像波段的增加,相应的卷积核的维度也应该增加,并且可以有多个卷积核来抽取不同的特征。

第四部分 卷积神经网络 - 1 笔记

原始影像尺寸: n x n x c 卷积核尺寸: f x f x c x m 取步长stride为1,padding为0,则经过卷积后的影像尺寸为: (n-f+1) x (n-f+1) x m
m为卷积核个数,上图中m为2。