飞桨深度学习课程第三周

卷积神经网络基础

计算机视觉作为一门让机器学会如何去“看”的科学学科,具体的说,就是让机器去识别摄像机拍摄的图片或视频中的物体,检测出物体所在的位置,并对目标物体进行跟踪,从而理解并描述出图片或视频里的场景和故事,以此来模拟人脑视觉系统。因此,计算机视觉也通常被叫做机器视觉,其目的是建立能够从图像或者视频中“感知”信息的人工系统。

计算机视觉技术经过几十年的发展,已经在交通(车牌识别、道路违章抓拍)、安防(人脸闸机、小区监控)、金融(刷脸支付、柜台的自动票据识别)、医疗(医疗影像诊断)、工业生产(产品缺陷自动检测)等多个领域应用,影响或正在改变人们的日常生活和工业生产方式。未来,随着技术的不断演进,必将涌现出更多的产品应用,为我们的生活创造更大的便利和更广阔的机会。

本篇介绍计算机视觉的经典模型(卷积神经网络)

卷积神经网络:卷积神经网络(Convolutional Neural Networks, CNN)是计算机视觉技术最经典的模型结构。本教程主要介绍卷积神经网络的常用模块,包括:卷积、池化、**函数、批归一化、Dropout等。

卷积神经网络是目前计算机视觉中使用最普遍的模型结构,它的基础模块包括:

  • 卷积(Convolution)
  • 池化(Pooling)
  • ReLU**函数
  • 批归一化(Batch Normalization)
  • 丢弃法(Dropout)

 

飞桨深度学习课程第三周

                                                                       图1:卷积神经网络经典结构

 

图1是一个典型的卷积神经网络结构,多层卷积和池化层组合作用在输入图片上,在网络的最后通常会加入一系列全连接层,ReLU**函数一般加在卷积或者全连接层的输出上,网络中通常还会加入Dropout来防止过拟合。

 

说明:

在卷积神经网络中,计算范围是在像素点的空间邻域内进行的,卷积核参数的数目也远小于全连接层。卷积核本身与输入图片大小无关,它代表了对空间邻域内某种特征模式的提取。比如,有些卷积核提取物体边缘特征,有些卷积核提取物体拐角处的特征,图像上不同区域共享同一个卷积核。当输入图片大小不一样时,仍然可以使用同一个卷积核进行操作。

卷积是数学分析中的一种积分变换的方法,在图像处理中采用的是卷积的离散形式。这里需要说明的是,在卷积神经网络中,卷积层的实现方式实际上是数学中定义的互相关 (cross-correlation)运算,与数学分析中的卷积定义有所不同,这里跟其他框架和卷积神经网络的教程保持一致,都使用互相关运算作为卷积的定义,具体过程如下:

飞桨深度学习课程第三周

                                                         图2:卷积计算过程

 

卷积核(kernel)也被叫做滤波器(filter),假设卷积核的高和宽分别为khk_hkh​和kwk_wkw​,则将称为kh×kwk_h\times k_wkh​×kw​卷积,比如3×53\times53×5卷积,就是指卷积核的高为3, 宽为5,

  • 如图2(a)所示:左边的图大小是3×33\times33×3,表示输入数据是一个维度为3×33\times33×3的二维数组;中间的图大小是2×22\times22×2,表示一个维度为2×22\times22×2的二维数组,我们将这个二维数组称为卷积核。先将卷积核的左上角与输入数据的左上角(即:输入数据的(0, 0)位置)对齐,把卷积核的每个元素跟其位置对应的输入数据中的元素相乘,再把所有乘积相加,得到卷积输出的第一个结果  :

    0×1+1×2+2×4+3×5=25       (a)

  • 如图2(b)所示:将卷积核向右滑动,让卷积核左上角与输入数据中的(0,1)位置对齐,同样将卷积核的每个元素跟其位置对应的输入数据中的元素相乘,再把这4个乘积相加,得到卷积输出的第二个结果  : 0×2+1×3+2×5+3×6=31       (b)

以此类推,可以知道C、D

 

卷积核的计算过程可以用下面的数学公式表示,其中 a 代表输入图片, b 代表输出特征图,w是卷积核参数,它们都是二维数组,∑u,v 表示对卷积核参数进行遍历并求和。

飞桨深度学习课程第三周

 

 

 

没力气写了,先写这么多,后面再补充。