图像识别与卷积神经网络 - SUSTC-XLAB/crops GitHub Wiki

前言

图像由成百上千个像素组成,每个像素可以理解为一个特征,因此传统的机器学习方法难以提取特征并识别。深度学习模型是一种表示学习 (representation learning),能够学到数据更高层次的抽象表示,能够自动从数据中提取特征。Yann Lecun等人在 1989年提出基于梯度学习的卷积神经网络算法,并成功地将其应用在手写数字字符识别,并在当时的技术和硬件条件就能取得低于1%的错误率。2012年,在计算机视觉“世界杯”之称的ImageNet图像分类竞赛四周年,Geoffery E.Hinton等人凭借卷积神经网络AlexNet以超过第二名近12%的准确率一举夺得该竞赛冠军,霎时间学界业界纷纷惊愕哗然。自此边揭开了卷积神经网络在计算机视觉领域逐渐称霸的序幕,此后每年的ImageNet竞赛的冠军非卷积神经网络莫属。直到2015年,卷积神经网络在ImageNet数据集上的性能(4.94%)第一次超过了人类预测错误率(5.1%)。

卷积神经网络的组成

图像分类的任务,就是对于一个给定的图像,预测它属于的那个分类标签(或者给出属于一系列不同标签的可能性)。图像是3维数组(彩色3维,黑白1维),数组元素是取值范围从0到255的整数。数组的尺寸是宽度x高度x3,其中这个3代表的是红、绿和蓝3个颜色通道。一个简单的卷积神经网络是由各种层按照顺序排列组成,网络中的每个层使用一个可微分的函数将激活数据从一个层传递到另一个层。卷积神经网络主要由三种类型的层构成:卷积层,池化层和全连接层(全连接层和常规神经网络中的一样)。通过将这些层叠加起来,就可以构建一个完整的卷积神经网络。如图 卷积神经网络组成

卷积层

卷积是一种线性的、平移不变性的运算,其由在输入信号上执行局部加权的组合构成。根据所选择的权重集合(即所选择的点扩散函数(point spread function))的不同,也将揭示出输入信号的不同性质。在频率域中,与点扩散函数关联的是调制函数——说明了输入的频率组分通过缩放和相移进行调制的方式。因此,选择合适的核(kernel)对获取输入信号中所包含的最显著和最重要的信息而言至关重要,这能让模型对该信号的内容做出更好的推断。卷积神经网络的计算过程如图 卷积层

池化层

通常,在连续的卷积层之间会周期性地插入一个池化层。它的作用是逐渐降低数据体的空间尺寸,这样的话就能减少网络中参数的数量,使得计算资源耗费变少,也能有效控制过拟合,如图5所示。池化层通常使用MAX操作,对输入数据体的每一个深度切片独立进行操作,改变它的空间尺寸。最常见的形式是使用尺寸2x2的滤波器,以步长为2来对每个深度切片进行降采样,将其中75%的激活信息都丢掉。每个MAX操作是从4个数字中取最大值(也就是在深度切片中某个2x2的区域)。注意在池化的过程中,数据体的深度保持不变。 池化层

全连接层

全链接层即是传统的神经网络,每一个神经单元都和上一层所有的神经单元密集连接。如今,全连接层由于其巨大的参数量易过拟合以及不符合人类对图像的感知原理,一般不参与图像的特征提取(已由卷积层替代),只用于最后的线性分类, 相当于在提取的高层特征向量上进行线性组合并且输出最后的预测结果。

Reference

李彦冬 郝宗波 雷航.卷积神经网络研究综述《计算机应用》2016年 第9期

卢宏涛 张秦川.深度卷积神经网络在计算机视觉中的应用研究综述 《数据采集与处理》 2016年 01期 (2016 / 05 / 25),P1-17

https://zhuanlan.zhihu.com/p/38681805

https://blog.csdn.net/taigw/article/details/50534376