模式识别系列(六)多分类策略

1.多分类问题引入

  在此篇之前,如果大家还有印象,我们会发现 处理的都是二分类问题,也就是标签y的取值只能是0,1或者-1,1。不论是我们的pla,线性回归,logistic回归,还是svm,最后都是找到一个由权重构成的分类面,它自身的限制导致了这些所有的算法只能处理二分类问题。但是我们在实际运用中,往往处理的不仅仅是“是或不是”的问题,很多时候是“是什么”的问题,那么这就是多分类问题,比如:
在这里插入图片描述这是一个四类的分类,我们用肉眼很容易看出来它们之间的区别,但是如何让算法区分出这四类不同的点呢?在这一篇,我们来看几种策略,分别是1vN,1v1,softmax。

2.1vN策略

  1vN策略的目的是把多分类问题转化为一系列二分类问题,从而推广到多分类问题。这句话怎么理解呢?看下面这张图就明白了。
在这里插入图片描述每一类和其他类都能化成两类问题,因此,对于每一类,可以获得一个分类面,因此就把样本化为了不同的区域。当输入一个特征向量,只需要分别用每一个分类面对特征向量进行判别,取其中得分最高的区域,就可以得出最后的分类结果。但是,这个方法不好的地方我们可以看到,将分类面叠加起来后,是有盲区的,按照分类面来说,这些区域不属于任何一类。
因此,1vN策略的过程就可以描述如下:

  1. 对于任意的k属于Nclass
  2. 将属于k类的样本点作为正样本,将其他的点作为负样本,由此得出Nclass个分类面
  3. 将未知的样本特征向量分别计算 w k T x w_k^Tx wkTx,取值最大的第i类作为最后的分类结果

3.1v1策略

  1V1是另外一种策略,不同于1vN,1v1有点像打积分赛,每次挑两类上来比较,那么位次怎么出来呢?就是看最后的胜负场。比如说我有三类样本,分别为1,2,3,那么就能生成三个分类面:12,13,23,假如此时有一个样本,12觉得它是1,13觉得它是1,23觉得它是2,那么这个样本就被分为了1类。1v1遵从的是投票的策略。

4.Softmax

4.1概念与方法

  此节才是真正的重点,大家有了解过深度学习的或多或少都听过softmax这个概念。实际上,softmax在深度学习中运用极其广泛,像pytorch里头的cross-entropy loss这一多分类损失函数直接集成了softmax层在里头,因此,了解什么是softmax,为什么要用softmax是理解深度网络反向传播等算法的关键。
  关于softmax,下面这张图很好的说明了它的过程:
在这里插入图片描述其中 x x x是最后的特征向量,而 S i S_i Si是特征向量关于每一类的一个线性变换,随后通过一个函数映射:
y ^ i = e S i ∑ i = 1 N e S i \hat{y}_i = \frac{e^{S_i}}{\sum_{i=1}^Ne^{S_i}} y^i=i=1NeSieSi
得到分属各个类别的概率。需要强调的是,softmax实质上是一种函数映射,它本身是没有参数的。至于为什么使用指数函数,可能是因为指数函数有良好的求导性质,且正样本的影响力会更大。最后在分类的时候,取预测概率最大的一类即可。

4.2softmax梯度传播

softmax的学习方法也就是梯度下降法,因此如何求导是一个关键的问题。首先,我们采用的loss函数自然是交叉熵损失:
E = − ∑ j = 1 N y j l n y j ^ E = -\sum_{j=1}^N y_j ln\hat{y_j} E=j=1Nyjlnyj^
而我们的 y y y是一个除了目标维度是1,其他维度都是0的这么一个标签向量,假设这个样本属于类别k,那么损失函数就变为了:
E = − l n y k ^ E = -ln\hat{y_k} E=lnyk^
因为只有y_k为1,其他的都为0。于是乎,我们得到了:
s j = w j T x , ; y j ^ = e s j ∑ i = 1 N e s i ; E = − l n y k ^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值