使用SVM分类器进行图像多分类

ResNet backbone + SVM分类器

对于样本较为均衡小型数据集,SVM作为分类器的效果与MLP的效果相近。
从经验上看,对于样本不均衡的大型数据集,MLP的效果强于SVM。
本博客在自己的小型数据集上进行实验,本来使用MLP已经达到很好的效果,但导师让试一下SVM分类器,可能会对样本量较小的数据集表现稍好。虽然在心里觉得SVM这种方法不太可能有提高,但趁此机会学习一下SVM还是有好处的。

SVM相关知识:

这里仅作简单陈述,详细地可百度或B站,特别多资源
基本理念:最初的SVM是用来作二分类的,目标是在特征空间中找到一个超平面,让任意样本的点到平面的距离大于等于1。
如果样本线性不可分,则需要使用核函数来进行非线性分类,也就是得到非线性超平面。

核函数

SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一。一些线性不可分的问题可能是非线性可分的,即特征空间存在超曲面(hypersurface)将正类和负类分开。使用非线性函数可以将非线性可分问题从原始的特征空间映射至更高维的希尔伯特空间(Hilbert space)H ,从而转化为线性可分问题。
引用自https://www.bilibili.com/video/BV1mP4y137U4?p=2
常见的核函数有:多项式核(阶为1时称为线性核)、径向基函数核(又称RBF核、高斯核)、拉普拉斯核、Sigmoid核。
常用线性核和高斯核。
参考自b站:https://www.bilibili.com/video/BV1mP4y137U4?p=2

线性核函数

解决问题从简单的出发,先试一下线性核函数的效果!
公式注意是内积
适用于:特征已经比较丰富了,样本数据量大,即十万、百万这数量级。

多项式核函数(了解即可,不常用):
给定3个参数,Q控制高次项,越高次对应越复杂的边界,计算量也相应越大,具体视任务情况而定
侵删
γ和Q就是要调的超参,得在炼丹过程中调整。

高斯核函数——最常用的

公式如下:
在这里插入图片描述
高斯核函数能把低维特征映射为无穷维的特征,比如有m个数据,每个数据是10维,那么根据公式可得到每个数据Xi和任意数据Xk的“距离”Dx,有m个数据,就计算m次,得到m个Xi与Xk的“距离”,然后将Xi里的第k个元素更换为Xi和Xk的“距离”,也就是变成m维了,因此可用于扩充特征维度,让模型对数据点有更好的认识和区分

σ越小,越陡,特征越鲜明,可能对分类效果略好,但是风险越大,可以看第二张图。
在这里插入图片描述
在这里插入图片描述

SVM多分类

SVM如何做多分类呢?有直接法和间接法,但直接法不常用,间接法中常用的时一对一(ovo)和一对多(ovr)策略
具体可以来看这篇文章

总结

一对一就是训练 m(m-1)/2 个分类器(m为类别总数),也就是每两个类别之间训练一个分类器,然后用投票法,将预测的变量输入到所有分类器中,预测为label k,则k的得票+1,统计所有的分类器的输出结果,得票最多的类别就是最终预测结果。
优劣:当类别很多时,model的个数是m(m-1)/2,代价很大哦

一对多就是对于第k个类别,将label k的样本设为正类,而其他类别的样本都设为负类,最后训练 m个分类器(m为类别总数)。

  • 5
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值