1. 理论基础
1.1卷积神经网络(CNN)
卷积神经网络(CNN)是典型的前馈神经网络,由输入层,隐藏层和输出层组成。隐藏层由卷积层,池化层和全连接层组成。卷积模拟单个神经元对视觉刺激的反应。它使用卷积层卷积输入数据,然后将结果传输到下一层。卷积层由一组卷积核组成。尽管这些内核具有较小的感知视野,但是内核延伸到输入数据的整个深度。卷积运算可以提取输入数据的深层特征。
1.1.1 卷积神经网络概述
卷积神经网络(CNN)是神经网络的一种,是深度学习的代表算法之一,卷积神经网络通过卷积、池化等操作可以实现特征的自动提取,再通过全连接层实现分类。
图 1 卷积神经网络结构图
1.1.2.卷积神经网络的结构
一般地,卷积神经网络由输入层、卷积层、RELU层、池化层和全连接层构成,通过梯度下降的方式训练网络模型的参数,从而实现分类。下面将对每类层进行介绍。
(1)卷积层
卷积神经网络的核心功能(特征提取)由卷积层完成。卷积层由许多可学习的卷积核(滤波器)构成,滤波器按照一定的步长对输入的张量进行遍历,当遇到某些类型的形状特征时就激活。
(2) 池化层
池化层又可称为下采样层,通过池化操作可以减少特征图的参数量,减少运算量。池化层对每个通道的特征图进行操作,不改变通道数,但减少每个通道的特征图的大小。常用的池化操作有均值池化和最大池化。
(3)全连接层
全连接层的主要作用是通过将特征向量映射到样本标记空间对经卷积、池化等操作后形成的特征向量进行分类。
1.2支持向量机(SVM)
支持向量机最早由Cortes和Vapnik等人于1995年基于统计学理论提出。
支持向量机进行多分类的算法原是通过某个核函数将输入样本投射到高维空间,然后在这个高维空间中求出最大边距超平面以使各类样本在高维空间线性可分。
假设n维空间中的样本集D={(xi,yi),i=1,2,3…l},xi为输入变量,yi为分类标记,样本对于超平面wx+b=0线性可分,w为权重向量,b为偏置变量,则分类间隔可表示为 ,为得到最优超平面,应使得超平面到两类样本的间隔尽可能远,因此需要求解如下凸二次规划问题:
其中, 为松弛变量,表示允许错误分类的程度, 为错误分类惩罚参数,通过调整其大小可实现在最大化分类间隔与最小化错误分类之间的权衡。采用拉格朗日乘子法求解,得到如下拉格朗日函数:
非线性SVM利用核函数的思想,寻求函数K,使向量P与Q满足K (P,Q)=(φ(P)⋅φ(Q)),从而无需知道φ的具体表达式,大大简化了算法难度。此时,特征空间的最优超平面决策函数y表示为
式中: 和 分别为支持向量xi对应的拉格朗日乘子和阈值。
1.3遗传算法
遗传算法(GA)是基于生物界规律和自然遗传机制[[i]]的一种群智能算法,遗传算法来源于自然界的自然选择过程,故可以从达尔文的生物进化理论对遗传算法有一个基本的理解。遗传算法可通过模拟生物个体染色体的选择、交叉、变异实现全局寻优[[ii]]。就是在模拟自然界自然选择的过程,对于一个优化问题,我们通过编码,将实际问题抽象为遗传算法可“识别”的基因串,用适应值表示解的优秀程度,同时适应值不仅表示这个解的优秀程度,也代表着这个个体对环境的适应能力,适应值越高(或低,根据具体问题而定)表示这个个体越容易存活下来并产生子代。通过模拟自然界的进化过程(选择、交叉、变异),相对不优秀的个体逐渐被淘汰,种群整体上向更高水平进化,最终进化出最适应环境的个体,即最优个体。
2.实验及分析
2.1数据集介绍
实验选用的CIFAR-10数据集包含60000张图片,其中有50000被划分为训练集,10000张划分为测试集,所有照片分属于10个类别,分别是飞机、电动车、鸟、猫、鹿、狗、青蛙、马、船、卡车。每张图片为32×32的三通道图像,像素点的数值范围为0-255。
图 2CIFAR数据集部分图片
由于算法耗时较长,为减少实验时间,实验中对数据集进行了缩小,只取了10000张图片作为训练集、1000张图片作为测试集。