July深度学习之一、线性分类器与损失函数

本文探讨了图像识别的困难,介绍了K最近邻法及其存在的问题,如K值选择和效率低下。接着转向线性分类器,解释了线性分类器的构造,特别是Wx+b得分函数,并提供了两种理解方式。最后,讨论了损失函数的重要性,包括hinge loss和互熵损失,指出在CNN和softmax分类器中常用互熵损失的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

July深度学习之线性分类器与损失函数

一、图像识别困难之处

1.  视角不同:每个事物旋转或者侧视最后的构图都完全不同
2.  尺寸大小不统一:相同内容的图片也可大可小
3.  变形:很多东西处于特殊的情形下,会有特殊的摆放和形状
4.  光影等干扰/幻象
5.  背景干扰
6.  同类内的差异(比如椅子有靠椅/吧椅/餐椅/躺椅...)

二、K最近邻法

找到训练集中最近的N个,以它们中最多的类别为结果

所以K近邻算法需要衡量样本之间的距离,那么距离如何衡量呢?
一般有以下三种方法:

image

这里有一个小问题就是K值的选取问题,如果你对KNN有了解的话,会知道K值的选取很关键。

那么在做图像识别时如何选取K值呢?我们可以通过做—N折交叉验证来选择K值。即把训练集分成n折,然后用n-1折训练,用第n折验证。如此反复,可以得到如下的图形,既可以选择合适的K值。

image

实际上,用K近邻算法做图像识别有很多问题:
- 首先,识别的准确率不高
- 其次,要记录全部的数据
- 速度慢

所以我们可以试试线性分类器。

三、线性分类器与损失函数

1、线性分类器

图片数据总可以转换成矩阵向量,假如这个图片像素是32 * 32的,那么可以用[ 32 * 32* 3]的向量来表示这个图片数据,其中最后的3表示RGB值。

我们可以尝试构造这样一个函数f(W,x)。其中x表示输入的数据向量,W表示参数或权重,这个函数就表示得分函数。

f(W,x) = Wx + b,其中的b叫做bias偏置。

image

那么线性分类器怎么理解呢?我们可以有如下两个理解方式:

  1. 我们可以把此分类器理解为线性空间的划分,最简单的,在二维空间上,通过直线的划分。
  2. 第二个理解可以理解为模板匹配,W的每一行可以看做是其中一个类别的模板。每类得分,实际上是像素点和模板匹配度。模板匹配的方式是内积计算。

2、损失函数

损失函数也叫代价函数(cost function),是用来衡量吻合度的,在训练的过程中,我们的目的就是要尽量最小化损失函数。

有两大类损失函数:
- hinge loss/支持向量机损失

对于训练集中的第i张图片数据xi

在W下会有一个得分结果向量f(xi,W)

第j类的得分为我们记作f(xi,W)j

则在该样本上的损失我们由下列公式计算得到

image

直观理解是delta可以理解为正确类别得分和错误类别得分的安全距离,我们只需要保证此安全距离大于delta即可。

当然,为了防止过拟合,我们也可以加上正则化项。

image

  • 互熵损失/cross-entropy

    对于训练集中的第i张图片数据xi

    在W下会有一个得分结果向量fyi

    则损失函数记作:

    image

    这里给出几点说明,CNN中一般用的就是互熵损失,在softmax分类器中,实际上做的是把每个类别的得分映射成概率。其中的分母求和的目的是归一化,使得最后每个类别的概率之和等于1。

    两个损失函数的比较:我们经常使用第二个损失函数,是因为其实第一个损伤函数如果找到了这样的W,使得正确类别的得分值和错误类别的得分值差距之间大于delta即可,这个条件比较容易满足。

    而第二个损失函数我们可以不断优化。

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值