基于CNN-SVM-GA的图像分类技术

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张图片作为测试集。

2.2算法介绍

2.2.1卷积神经网络(CNN)

  • 11
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
matlabcnn-svm图像分类是一种基于深度学习和支持向量机技术图像分类方法。该方法的实施流程可以分为三个主要步骤。 首先,需要使用MATLAB中的CNN(卷积神经网络)工具箱来构建和训练一个卷积神经网络。卷积神经网络是一种深度学习算法,通过多层卷积层、池化层和全连接层来学习图像的特征表示。在这个步骤中,我们可以使用MATLAB提供的各种预训练的卷积神经网络模型,也可以根据任务的需求自定义网络结构。通过在大规模图像数据集上进行训练,网络会学习到更高层次的图像特征。 第二步是使用训练好的卷积神经网络提取图像的特征向量。将每个图像输入到网络中,通过网络的前向传播,获取隐藏层的激活值。这些激活值可以被视为图像在卷积神经网络中经过多层变换得到的高级特征表示,可以明显区分不同类别的图像。 最后一步是将提取的特征向量输入到SVM支持向量机分类器中进行分类支持向量机是一种经典的监督学习算法,可以根据特征向量的分布性质来学习一个边界,将不同类别的特征向量区分开来。通过在训练集上学习支持向量机模型的参数,并使用该模型对测试集中的图像进行分类,可以得到图像的预测结果。 总结来说,matlabcnn-svm图像分类是一个结合了卷积神经网络和支持向量机图像分类方法。通过使用MATLAB中的CNN工具箱构建和训练卷积神经网络,提取图像特征向量,并将其输入到支持向量机分类器中,可以实现对图像的准确分类

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值