机器学习SVM——实验报告

这篇具有很好参考价值的文章主要介绍了机器学习SVM——实验报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


〇、实验报告pdf可在该网址下载

机器学习实验四:SVM
这个需要积分下载(因为实验报告后台查重,不建议直接白嫖)。
建议看博客,博客里面会有很多实验报告小说明会用【…】加粗注释。

一、实验目的与要求

实验目的

  1. 掌握SVM的原理,熟悉SVM(包括软间隔和核技巧)的优化问题,并掌握其公式推导过程。
  2. 能使用SVM解决实际问题,如:人脸识别等。
  3. 能大概了解SVM的优化方向核现阶段基于经典SVM的优化算法,并有自己的理解。在此基础上,力求给出自己的创新点。

实验要求

  1. 分别给出经典的/软间隔/核-SVM的优化问题并推导其求解优化过程,实现经典的SVM算法进行图像识别;在二维平面对二类问题给出support vector的一个示例。
  2. 用PCA、LDA算法提取前 10,20,30,…,160维的图像特征,然后再用SVM进行识别,并比较识别率。
  3. 另起一节同时设计一个创新的SVM算法,内容简要写在实验报告中,并与经典SVM比较。(详细内容可另写成一篇论文提交到“论文提交处”。)

二、实验内容与方法

2.1 SVM的基础概念

机器学习SVM——实验报告
机器学习SVM——实验报告

2.2 经典SVM的优化问题及其推导

求解思路:
采用对偶问题来求解SVM基本型的优化问题。

求解步骤:
机器学习SVM——实验报告
机器学习SVM——实验报告

2.3 核技巧SVM的优化问题及其推导

机器学习SVM——实验报告
机器学习SVM——实验报告

机器学习SVM——实验报告

2.4 软间隔SVM的优化问题及其推导

机器学习SVM——实验报告
机器学习SVM——实验报告
机器学习SVM——实验报告

2.5 MATLAB函数求解上述优化问题

机器学习SVM——实验报告

2.6 例子:经典SVM对二维平面对二类问题进行分类

机器学习SVM——实验报告

三、实验步骤与过程

3.1 比较现有分类算法在人脸识别中的性能

3.1.1 实验数据集与训练集、测试集的划分

  1. ORL56_46人脸数据集
    该数据集共有40个人,每个人10张图片。每张图片像素大小为56×46。本次实验该数据集每个类划分为5张训练集,5张测试集,使用40个类。

  2. AR人脸数据集
    该数据库由3个以上的数据库组成;126名受试者面部正面图像的200幅彩色图像。每个主题有26张不同的图片。对于每个受试者,这些图像被记录在两个不同的时段,间隔两周,每个时段由13张图像组成。所有图像均由同一台摄像机在严格控制的照明和视点条件下拍摄。数据库中的每个图像都是768×576像素大小,每个像素由24位RGB颜色值表示。本次实验该数据集每个类划分为13张训练集,13张测试集,使用前16类。

  3. FERET人脸数据集
    该数据集一共200人,每人7张,已分类,灰度图,80x80像素。第1幅为标准无变化图像,第2,5幅为大幅度姿态变化图像,第3,4幅为小幅度姿态变化图像。第7幅为光照变化图像。本次实验该数据集每个类划分为4张训练集,3张测试集,使用200类。

3.1.2 SVM多分类器

因为在人脸识别的时候,不可能只识别两个人。理论上SVM解决的是二分类的问题,所以对于人脸识别这种多分类问题来说,就需要考虑多分类SVM方法。
根据阅读有关资料:目前,构造SVM多分类器的方法主要有两种:
(1) 直接法:直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”多分类。但是计算复杂度较高。
(2) 间接法:主要是通过多个二分类器来实现多分类器的构造,常见方法也有两种。
这里对于SVM多分类器的构造就不过多赘述。
因为人脸识别往往类别数会非常多,所以我采用了以下相对计算量较小的“一对多法”:
机器学习SVM——实验报告

3.1.3 实验步骤

1. PCA/LDA算法+SVM分类器进行人脸识别

机器学习SVM——实验报告

2. PCA/LDA算法+核方法SVM进行人脸识别

机器学习SVM——实验报告

3. PCA/LDA算法+软间隔SVM进行人脸识别

机器学习SVM——实验报告

3.1.4 实验结果

注意到:LDA算法只能降维至[1,类别数-1]这个区间内。所以目标维数不能过高。且先进行PCA降维至中间维数(重构阈值为90%)所对应的维数。所以LDA最终维数要低于PCA的中间维数。

1. ORL数据集的识别率和效率

机器学习SVM——实验报告

2. AR数据集的识别率和效率(中间维度:33)

机器学习SVM——实验报告

3. FERET数据集的识别率和效率(中间维度:75)

机器学习SVM——实验报告

3.1.5 结果分析

整理上述实验结果,汇总记录一下最优情况,并与没有进行任何降维直接采用SVM算法进行比较(此处的SVM为经典SVM算法)。
机器学习SVM——实验报告
上表可见:数据降维对于SVM分类器而言是非常必要的。对SVM分类器而言,运算的时间复杂度取决于输入数据的维数n,不同的解法有不同的时间复杂度,常见的解法都在O(n)- O(n^3)之间。如果直接将局部特征提取的结果作为输入,那么SVM的训练时间会非常巨大。在本实验中,经过测试将400张112*92的图像输入到SVM分类器中进行训练,单次迭代的训练时间超过2小时,通过这种暴力训练的方式是非常不合理。因此,需要对图像进行降维。
在实验过程中可以发现:识别率会随着维度的升高达到高值,然后又会随着维度的升高有所降低,然后趋于稳定。这个原因可能是高维数据存在一些噪声,这会对SVM分类器的训练产生一定的影响,进而导致识别率的下降。当然,这也证明了SVM分类器不是越高维的数据分类越准确,要训练出效果很好的SVM分类器,还需要重点考量一下目标维数的问题。
通过每个数据集的识别率横向比较:对于高维数据,软间隔SVM比硬间隔SVM更具有优势,识别率更高。

3.2 对比已学人脸识别方法

3.2.1 实验说明

采用PCA、LDA、LRC、PCA+SVM、LDA+SVM五种目前学习的人脸识别方法的对比(识别率)。为了避免重复工作,下表是参考以前实验报告中的数据。
PCA:目标维度为重构阈值90%所对应的维度;
LDA:中间维度为PCA重构阈值90%所对应的维度,最终维度采用枚举法得到识别率最高的维度;
LRC:线性回归在人脸识别中的应用;
PCA+SVM:识别率为维度范围10~160中最高的识别率;
LDA+SVM:识别率为维度范围10~(class-1)中最高的识别率。

3.2.2 实验结果

机器学习SVM——实验报告

3.2.3 实验结果分析

从上表可以看出,识别率最高的人脸识别方法是PCA+SVM。我们通常认为LDA在分类问题上会优于PCA,但是在与SVM配合的过程中,由于LDA降维的有限性,目标维数只能在[1,(class-1)]之间,这会导致类别数比较少的样本会在降维的时候损失掉大量的信息,对于SVM而言无疑是一个极大的负面影响。

四、实验结论或体会

4.1遇到的问题以及解决方法:

LDA除法模型+SVM的时候,需要先PCA降维,再进行LDA降维。但是当LDA最终维数过高的时候,PCA中间维数也会相对变得更大,这会导致PCA降维并不充分,导致除法模型Sb/Sw矩阵趋于奇异,进一步造成了函数quadprog报错。
在我实验的过程中出现了以下的问题:
机器学习SVM——实验报告
解决方法就是可以LDA减法模型,减法模型中没有求逆的操作,所以不会报错。

4.2感受:

本次实验的代码感觉跑起来非常慢,尤其是FERET数据集,一共200个类,非常难跑,很容易卡机。然后本次实验报告个人感觉内容十分充实,不仅在于大量的公式推导上,而且实验的代码特别容易出错,尤其在编写SVM的优化问题的时候。因为SVM是一个有约束的优化问题,一般没有显示解,所以这就需要在实现的过程中非常的细心。
SVM不亏是传统机器学习领域独当一面的有效分类算法,这个算法的思想也非常优美,当然。在我汇报的论文中,作者提出目前的SVM求解方法有两种,课堂上更多的是第一种:利用对偶问题求解;还有一种是基于几何解释的求解。SVM的领域还是非常宽泛的,应用场景也非常广泛,在此,对科研工作表达敬意!
机器学习SVM——实验报告文章来源地址https://www.toymoban.com/news/detail-431572.html

到了这里,关于机器学习SVM——实验报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习-支持向量机SVM

    在本练习中,我们将使用支持向量机(SVM)来构建垃圾邮件分类器。 我们将从一些简单的2D数据集开始使用SVM来查看它们的工作原理。 然后,我们将对一组原始电子邮件进行一些预处理工作,并使用SVM在处理的电子邮件上构建分类器,以确定它们是否为垃圾邮件。 我们要做

    2024年02月12日
    浏览(54)
  • SVM(支持向量机)-机器学习

    支持向量机(Support Vector Machine,SVM) 是一种用于分类和回归分析的监督学习算法 。它属于机器学习中的一类强大而灵活的模型,广泛应用于模式识别、图像分类、自然语言处理等领域。 基本原理: SVM的基本原理是通过找到能够有效分隔不同类别的超平面来进行分类。在二维

    2024年02月03日
    浏览(52)
  • 【Python机器学习】SVM——调参

    下面是支持向量机一个二维二分类数据集的训练结果:  决策边界用黑线表示,支持向量是尺寸比较大的点: 在这个例子里,SVM给出了非常平滑且线性的边界。 在上面的例子里,gamma参数用于控制高斯核的宽度,它决定了点与点之间“靠近”是指多大的距离,C参数是正则化

    2024年02月01日
    浏览(37)
  • 机器学习——支持向量机SVM

    支持向量机(SVM)是一种二类分类模型,其基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大,间隔最大使它有别于感知机,支持向量机也可通过核技巧使它成为非线性分类器。支持向量机的学习策略是间隔最大化,可将其转化为一个求解凸二次

    2024年01月17日
    浏览(56)
  • 机器学习算法:支持向量机(SVM)

    Solem《python计算机视觉编程》、李航《统计学习方法》、周志华《机器学习》 要理解好支持向量机需要较好的数学功底,且能不被公式以及文字绕晕,这里我们就理清楚支持向量机的大体过程。具体的数学计算推导其实已经封装好了,那么理解算法的原理也对我们将来的学习

    2024年02月03日
    浏览(50)
  • 【机器学习】SVM支持向量机模型

     本站原创文章,转载请说明来自 《老饼讲解-机器学习》 ml.bbbdata.com 目录 一. SVM的目标和思想    1.1 SVM硬间隔模型的原始目的 1.2 SVM的直接目标 1.3 什么是支持向量  二. SVM的支持平面的表示方式 2.1 支持面表示方式的初步思路 2.2 初步思路的缺陷与改进 2.3 支持面的最终表示

    2023年04月23日
    浏览(204)
  • 机器学习(六)支持向量机(SVM)

    目录 1.间隔与支持向量 1.1线性可分 1.2支持向量 1.3 最大间隔超平面 2.对偶问题 2.1拉格朗日乘子法 2.2 SMO算法 2.3SMO算法代码实现 3.核函数 4. SVM实例(手写体数字识别) 5.实验总结 支持向量机(SVM) 是有监督学习中最有影响力的机器学习算法之一,一般用于解决二分类问题(

    2024年02月09日
    浏览(56)
  • 【机器学习】支持向量机SVM入门

    相较于之前学习的线性回归和神经网络,支持向量机(Supprot Vector Machine,简称SVM)在拟合复杂的非线性方程的时候拥有更出色的能力,该算法也是十分经典的算法之一。接下来我们需要学习这种算法 首先我们回顾逻辑回归中的经典假设函数,如下图: 对于任意一个实例 (

    2024年02月15日
    浏览(56)
  • 机器学习实战-SVM模型实现人脸识别

    首先进行导包 我们加载sklearn已经帮我们收集好的人脸数据 查看结果: 我们取出其中的数据进行查看: 运行结果: 我们随机选取一个人的图片并通过索引获取名字: 结果展示: 由于原来的数据很大,而且数据量多,我们首先对原始数据进行PCA降维 结果展示: 然后对降维后

    2024年02月04日
    浏览(43)
  • 【机器学习】HOG+SVM实现行人检测

    任务:利用INRIA Person数据集,提取HOG特征并采用SVM方法实现图像中的行人检测。 本文将给出详细的操作步骤,以及可能会出现的坑点。 INRIA数据集含有直立或行走的人的图像,被Navneet Dalal用于训练发表在CVPR 2005的人类检测器。 坑点1 :官网http://pascal.inrialpes.fr/data/human/打开后

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包