本篇博客主要讨论由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回归

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

  1. Logistic 回归与 Softmax 回归在解决二分类问题的区别

    Logistic 回归与 Softmax 回归在解决二分类问题的区别 在学习邱锡鹏老师的<神经网络与深度学习>的Softmax回归时,他在最后提出了此问题. 久经思考后,没想出来有什么区别 ...

  2. Yann LeCun新作:473种模型大对比,中日韩文本分类到底要用哪种编码?

    雷锋网 AI科技评论按:就在前几天,Yann LeCun(中文名:杨立昆,被称为卷积网络之父)与其学生 张翔在arXiv上发表了一篇新作<Which Encoding is the Best f ...

  3. Softmax回归——logistic回归模型在多分类问题上的推广

    Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...

  4. 【Pytorch神经网络基础理论篇】 08 Softmax 回归 + 损失函数 + 图片分类数据集

    3.4. softmax回归 回归可以用于预测多少的问题. 比如预测房屋被售出价格,或者棒球队可能获得的胜场数,又或者患者住院的天数. 事实上,我们也对分类问题感兴趣:不是问"多少" ...

  5. python机器学习案例系列教程——逻辑分类/逻辑回归LR/一般线性回归(softmax回归)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 线性函数.线性回归 参考:http://blog.csdn.net/luanpeng825485697/article/details ...

  6. 【机器学习笔记14】softmax多分类模型【下篇】从零开始自己实现softmax多分类器(含具体代码与示例数据集)

    文章目录 推荐阅读 前言 关于代码 第一部分 Softmax分类器相关公式与步骤 相关公式 梯度下降步骤 数据集获取 从零开始实现softmax多分类器 导入数据 初始框架 step1:将label向 ...

  7. 适合离散值分类的多分类模型——softmax回归

    适合离散值分类的多分类模型--softmax回归 一.什么是softmax回归? 简单来说softmax回归是用来做多分类任务的模型,是一个单层神经网络.与线性回归模型针对连续值的预测(预测房屋价格. ...

  8. 决策树剪枝的基本策略有预剪枝和后剪枝,请简述并分析两种剪枝策略

    1.决策树是一类常见的机器学习方法,是基于树结构进行决策的.一般的,一棵决策树包含两类结点:内部节点和叶结点,其中内部节点表示表示一个特征或属性,叶结点表示__决策结果____. 2.在决策树学习中, ...

  9. 信贷风控的三种模型策略体系

    互联网金融浩浩荡荡不过十载,时间上看虽然不长,但从影响上规模上不可不谓之巨变.这一点从名字上就可以看出来,广为人知的是互联网金融,而不是曾经许多专家学家们激烈争论的金融互联网.传统金融互联网化实在不足 ...

最新文章

  1. 红包规则_“科普闯关100%夺红包”游戏规则升级了!速速来看!
  2. 说说程序员、编译器、CPU之间的三角恋
  3. Linux驱动开发常用头文件
  4. SSH ALL-IN-ONE
  5. echart vue 图表大小_vue中echarts图表大小适应窗口大小且不需要刷新案例
  6. Python字符串splitlines()
  7. Android 声音采集回声与回声消除
  8. (附源码)spring boot小说网站系统 毕业设计 041446
  9. 高级语言c 与三菱plc通讯宝典,三菱PLCL系列串行通信模块用户手册基本篇中文高清版...
  10. uni-app常见的生命周期
  11. 浅谈aps计划排程在3C行业解决方案
  12. 获取HTML中文本框的值并进行比较两者的大小
  13. Todesk远程连接时一直显示密码错误
  14. 05-Python—列表、元祖、字典、集合操作大全:建议收藏
  15. 奔腾cpu可以安装黑苹果吗_【2020】macOS黑苹果硬件主板CPU和显卡的支持列表和选购指南...
  16. Unity XCode自动发布ipa
  17. 云顶之弈天选战神劫阵容攻略,天选战神劫如何玩?
  18. 各国制度、文化距离-原始数据+测算数据(2003-2018年)
  19. Doris系列之动态分区操作
  20. Erika企业版实时操作系统

热门文章

  1. [SHOI2008]小约翰的游戏John
  2. wpf中button的无边框实现
  3. OpenCV形态学操作
  4. Kaldi的英文缩写
  5. 2018.09.17 atcoder Digit Sum(数论)
  6. SSM框架下分页的实现(封装page.java和List?)
  7. 【ADO.NET基础】加密方法公共类
  8. 从零开始学习jQuery-------jQuery元素选择器(三)
  9. poj2031(prim)
  10. 15.01.29-MVC中用Areas分解项目