多分类问题的另一种处理策略——softmax回归

本篇博客主要讨论由logistic回归的推广出的softmax回归来处理多分类问题的一种方法,以下为本人的个人理解,如有错误,欢迎指出。
同时对于参考的文章在最后有列出,对这些大佬们表示感谢。
本文的主要内容如下:
1.由logistic回归的不足引入softmax回归
2.softmax函数的引入
3.softmax回归的代价函数形式
4.分析代价函数形式的由来——交叉熵的引入
5.由交叉熵与代价函数的关系入手——softmax函数的适用情况
6.代价函数的优化问题——梯度下降法
7.softmax回归的优化——权重衰减

1.由logistic回归的不足引入softmax回归

我在之前的文章中谈到过logistic回归,logistic回归主要是针对二分类问题的处理策略,通过引入sigmoid函数来进行输出预测数据组为正类的概率值。当然,logistic回归也可以处理多分类问题(使用多个二分类器),选择其中概率最大者作为分得类别。

不过,有一点需要注意的是,所有二分类器的概率值之和不一定为1,这也是用多个二分类处理多分类问题的不足,对此,为了概率归一化,我们需要对logistic回归进行推广,为此引入了softmax回归作为多分类问题的另一种处理策略。

2.softmax函数的引入

在 softmax回归中,我们解决的是多分类问题(相对于 logistic 回归解决的二分类问题),类标 y可以取多个不同的值(而不是 2 个)。
softmax函数将多个神经元(x值)的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!

假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是
在这里插入图片描述
这里我们可以理解为局部所占整体的比例。
具体图示如下:
在这里插入图片描述
注:为什么这里要使用e来转换成指数形式,而不直接使用比例?
我认为可能是为了形成极端化。较大者通过e变为指数后会变得极大,被选取的概率当然也就变得极大,反之,较小者也就变得极小,被选的概率也就变得极小。

多分类问题中,对于给定的测试输入 x,我们想用假设函数针对每一个类别j估算出概率值 p(y=j | x)。也就是说,我们想估计 x 的每一种分类结果出现的概率。因此,我们的假设函数将要输出一个 k 维的向量(向量元素的和为1)来表示这 k 个估计的概率值。 在这里插入图片描述具体地说,我们的假设函数 h(x) 形式如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

softmax函数通常用在神经网络的最后一层作为分类器的输出,有7个节点就可以做7个不同类别的判别,有1000个节点就可以做1000个不同样本类别的判断。这也是softmax函数的一大优点。

3.softmax回归的代价函数形式

现在我们来介绍 softmax 回归算法的代价函数。
在下面的公式中,**1{.}**是示性函数,其取值规则为:
在这里插入图片描述
在这里插入图片描述
代价函数的形式如下:
在这里插入图片描述
值得注意的是,上述公式是logistic回归代价函数的推广。logistic回归代价函数可以改为:
在这里插入图片描述
可以看到,Softmax代价函数与logistic 代价函数在形式上非常类似,只是在Softmax损失函数中对类标记的 k 个可能值进行了累加。注意在Softmax回归中将 x 分类为类别 j 的概率为:
在这里插入图片描述

好了,回到softmax代价函数上来。我们对上面的代价函数换一种写法:
在这里插入图片描述
先对其中的式子进行简单分析:
在这里插入图片描述
那么,为什么要用这个式子呢?

4.分析代价函数形式的由来——交叉熵的引入

上面的cost函数其实就是交叉熵,关于交叉熵的介绍和理解请参照:
如何通俗的解释交叉熵与相对熵?

我们知道,交叉熵是衡量在给定的真实分布下,使用某种非真实分布(我们的预测概率分布)所指定的策略消除系统的不确定性所需付出的努力。
交叉熵的公式如下:
在这里插入图片描述
请原谅博主的字难看,这是我随手记下的笔记。。。
那么,对其优化又有什么意义呢?
在这里插入图片描述
交叉熵越小,说明我们的策略越好,我们所预测的非真实分布越接近真实分布。
(最低交叉熵就是使用真实分布所计算出来的信息熵,此时pk=qk,交叉熵=信息熵)

5.由交叉熵与代价函数的关系入手——softmax函数的适用情况

回到上面代价函数的分析上:
在这里插入图片描述
这里值得注意的是,我们此时的分类问题,其真实分布中只有一个1,其余的都是0,这也就意味着我们可以把上面的交叉熵公式的求和符号去掉,变成下面的形式:
在这里插入图片描述
这为我们之后的求导提供了便利。
由此我们便可进行以下的讨论:
Softmax 回归 vs. k 个二元分类器
如果你在开发一个音乐分类的应用,需要对k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k 个独立的二元分类器呢?
这一选择取决于你的类别之间是否互斥,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 的softmax回归。(如果在你的数据集中,有的歌曲不属于以上四类的其中任何一类,那么你可以添加一个“其他类”,并将类别数 k 设为5。)
如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。
现在我们来看一个计算视觉领域的例子,你的任务是将图像分到三个不同类别中。(i) 假设这三个类别分别是:室内场景、户外城区场景、户外荒野场景。你会使用sofmax回归还是 3个logistic 回归分类器呢? (ii) 现在假设这三个类别分别是室内场景、黑白图片、包含人物的图片,你又会选择 softmax 回归还是多个 logistic 回归分类器呢?
在第一个例子中,三个类别是互斥的,因此更适于选择softmax回归分类器 。而在第二个例子中,建立三个独立的 logistic回归分类器更加合适。
结论:
当多个类别互斥时,更适合用softmax回归分类器,因为此时可以去掉交叉熵里的求和符号;
当多个类别相互独立时,更适合用logistic回归设置多个二分类器。

6.代价函数的优化问题——梯度下降法

在这里插入图片描述
为了方便推导过程的阐述,我们进行替换:
在这里插入图片描述
于是公式简化如下:
在这里插入图片描述
具体的梯度推导公式如下:
在这里插入图片描述
需要注意的是:
参数θ是矩阵形式,训练集内的每组数据对参数矩阵中的每一个参数列向量都有更新作用。

最终的梯度更新形式如下:
在这里插入图片描述

7.softmax回归的优化——权重衰减

Softmax 回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于阐述这一特点,假设我们从参数向量θj中减去了向量 ψ,这时,每一个θj 都变成了θj-ψ(1,…,k)。此时假设函数变成了以下的式子:
在这里插入图片描述
换句话说,从θj 中减去ψ完全不影响假设函数的预测结果!
这表明前面的 softmax 回归模型中存在冗余的参数。更正式一点来说, Softmax 模型被过度参数化了。
这时我们可以用L2正则化来进行权重衰减。
在这里插入图片描述

Reference:

如何通俗的解释交叉熵与相对熵?
卷积神经网络系列之softmax,softmax loss和cross entropy的讲解
斯坦福大学深度学习公开课cs231n学习笔记(1)softmax函数理解与应用
Softmax vs. SoftmaxWithLoss 推导过程
为什么是SoftMax?
Softmax回归

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值