基于SVM的思想做CIFAR-10图像分类

本文介绍了如何基于SVM思想对CIFAR-10图像数据集进行分类。通过线性SVM实现图像的线性分类,并详细探讨了损失函数的设计,确保正确分类的得分超过其他类别一定的阈值。文章还提供了代码实现,包括数据读取、格式调整、损失函数计算以及模型训练过程,最终展示了loss曲线和权重可视化结果。
摘要由CSDN通过智能技术生成

SVM

回顾一下之前的SVM,找到一个间隔最大的函数,使得正负样本离该函数是最远的,是否最远不是看哪个点离函数最远,而是找到一个离函数最近的点看他是不是和该分割函数离的最近的。

10624272-fd7972ac6d206428.png

使用large margin来regularization。
之前讲SVM的算法:https://www.jianshu.com/p/8fd28df734a0

线性分类

线性SVM就是一种线性分类的方法。输入,输出,每一个样本的权重是,偏置项bias是。得分函数
算出这么多个类别,哪一个类别的分数高,那就是哪个类别。比如要做的图像识别有三个类别,假设这张图片有4个像素,拉伸成单列:

10624272-d6289cfdcca74afe.png
得到的结果很明显是dog分数最大,cat的分数最低,但是图片很明显是猫,什么分类器是错误的。
一般来说习惯会把w和b合并了,x加上一个全为1的列,于是有
10624272-ee33e47ce8794d19.png

损失函数

之前的SVM是把正负样本离分割函数有足够的空间,虽然正确的是猫,但是猫的得分是最低的,常规方法是将猫的分数提高,这样才可以提高猫的正确率。但是SVM里面是要求一个间隔最大化,提到这里来说,其实就是cat score不仅仅是要大于其他的分数,而且是要有一个最低阈值,cat score不能低于这个分数。
所以正确的分类score应该是要大于其他的分类score一个阈值:
就是正确分类的分数,就是其他分类的分数。所以,这个损失函数就是:只有正确的分数比其他的都大于一个阈值才为0,否则都是有损失的。

10624272-60ac322efb5b39b1.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值