从Softmax回归到Logistic回归
Softmax回归是Logistic回归在多分类问题上的推广,是有监督的。
回归的假设函数(hypothesis function)为
,我们将训练模型参数
,使其能够最小化代价函数:

在Softmax回归中,我们解决的是多分类问题,类标y可以取k个不同的值。对于给定的测试输入x,我们想用假设函数针对每一个类别j估算出概率值
。也就是说,我们想估计x的每一种分类结果的概率。因此,我们的假设函数将要输出一个k维的向量(向量元素的和为1)来表示这k个估计的概率值。具体地说,我们的假设函数
形式如下:

其中
,
,···,
是模型参数。
这一项对概率分布进行归一化,使得所有的概率之和为1。
为了方便起见,我们同样使用符号
来表示全部的模型参数。在实现softmax回归时,将
用一个
的矩阵来表示会很方便,该矩阵是将
,
,···,
按行罗列起来得到的,如下表示:

代价函数
现在介绍softmax回归算法的代价函数。在下面的公式中,
是示性函数,其取值规则为:1{值为真的表达式}=1,1{值为假的表达式}=0。代价函数为:

上述公式是logistic回归代价函数的推广。可以看到,softmax代价函数与logistic代价函数在形式上非常类似,只是在softmax代价函数中对类标记的k个可能值进行了累加。注意在softmax回归中将x分类为类别j的概率为:

对于
的最小化问题,目前还没有闭式解决。因此,我们使用迭代的优化算法(例如梯度下降法,或L-BFGS)。经过求导,我们得到梯度公式如下:

有了上述偏导数公式后,我们就可以将它带入到梯度下降法等算法中,来最小化
。在实现softmax回归算法时,我们通常会使用上述代价函数的一个改进版本。具体来说,就是和权重衰减(weight decay)一起使用。我们接下来介绍使用它的动机和细节。
softmax回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于阐述这一特点,假设我们从参数向量
中减去了向量
,这时,每一个
都变成了
。此时假设函数变成了



也就是说,从
中减去
完全不影响假设函数的预测结果。这表明前面的softmax回归模型中存在冗余的参数。更正式一点来说,softmax模型被过度参数化了。对于任意一个用于拟合数据的假设函数 ,可以求出多组参数值,这些参数得到的是完全相同的假设函数
。
进一步而言,如果参数
是代价函数
的极小值点,那么
同样也是它的极小值点,其中
可以为任意向量。因此使
最小化的解不是唯一的。(有趣的是,由于
仍然是一个凸函数,因此梯度下降时不会遇到局部最优解的问题。但是Hessian矩阵是奇异的/不可逆的,这会导致采用牛顿法优化就遇到数值计算的问题。)
注意,当
时,我们总是可以将
替换为
(即替换为全零向量),并且这种变换不会影响假设函数。因此我们可以去掉参数向量
(或者其他
中的任意一个)而不影响假设函数的表达能力。实际上,与其优化全部的
个参数
(其中
),我们可以令
,只优化剩余的
个参数,这样算法依然能够正常工作。
在实际应用中,为了使算法实现更简单清楚,往往保留所有参数
,而不任意地将某一参数设置为0。但此时我们需要对代价函数做一个改动:加入权重衰减。权重衰减可以解决softmax回归的参数冗余所带来的数值问题。
权重衰减
我们通过添加一个权重衰减项

来修改代价函数,这个衰减项会惩罚过大的参数值,现在我们的代价函数变为:

有了这个权重衰减项以后
,代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解了。此时的Hessian矩阵变为可逆矩阵,并且因为
是凸函数,梯度下降法和L-BFGS等算法可以保证收敛到全局最优解。
通过最小化
,我们就能实现一个可用的softmax回归模型。
Softmax回归和Logistic回归的关系
当类别数
时,softmax回归退化为logistic回归,这表明softmax回归是logistic回归的一般形式。具体地说,当
时,softmax回归的假设函数为

利用softmax回归参数冗余的特点,我们令
,并且从两个参数向量都减去向量
,得到



因此,用
来表示
,我们会发现softmax回归器预测其中一个类别的概率为
,另一个类别的概率为
,这与logistic回归是一致的。
Softmax回归 vs. k个二元分类器
如果你在开发一个音乐分类的应用,需要对k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k 个独立的二元分类器呢?
这一选择取决于你的类别之间是否互斥,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 的softmax回归。(如果在你的数据集中,有的歌曲不属于以上四类的其中任何一类,那么你可以添加一个“其他类”,并将类别数 k 设为5。)
如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。
现在我们来看一个计算视觉领域的例子,你的任务是将图像分到三个不同类别中。(i) 假设这三个类别分别是:室内场景、户外城区场景、户外荒野场景。你会使用sofmax回归还是 3个logistic 回归分类器呢? (ii) 现在假设这三个类别分别是室内场景、黑白图片、包含人物的图片,你又会选择 softmax 回归还是多个 logistic 回归分类器呢?
在第一个例子中,三个类别是互斥的,因此更适于选择softmax回归分类器 。而在第二个例子中,建立三个独立的 logistic回归分类器更加合适。
参考资料
http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial
从Softmax回归到Logistic回归的更多相关文章
- Softmax回归 softMax回归与logistic回归的关系
简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分 ...
- 第三集 欠拟合与过拟合的概念、局部加权回归、logistic回归、感知器算法
课程大纲 欠拟合的概念(非正式):数据中某些非常明显的模式没有成功的被拟合出来.如图所示,更适合这组数据的应该是而不是一条直线. 过拟合的概念(非正式):算法拟合出的结果仅仅反映了所给的特定数据的特质 ...
- SPSS—回归—二元Logistic回归案例分析
数据分析真不是一门省油的灯,搞的人晕头转向,而且涉及到很多复杂的计算,还是书读少了,小学毕业的我,真是死了不少脑细胞, 学习二元Logistic回归有一段时间了,今天跟大家分享一下学习心得,希望多指教 ...
- 机器学习之逻辑回归(logistic回归)
前言 以下内容是个人学习之后的感悟,转载请注明出处~ 逻辑回归 一.为什么使用logistic回归 一般来说,回归不用在分类问题上,因为回归是连续型模型,而且受噪声影响比较大 ...
- 机器学习之线性回归---logistic回归---softmax回归
在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...
- 《转》Logistic回归 多分类问题的推广算法--Softmax回归
转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...
- 线性回归、Logistic回归、Softmax回归
线性回归(Linear Regression) 什么是回归? 给定一些数据,{(x1,y1),(x2,y2)…(xn,yn) },x的值来预测y的值,通常地,y的值是连续的就是回归问题,y的值是离散的 ...
- logistic回归和softmax回归
logistic回归 在 logistic 回归中,我们的训练集由 个已标记的样本构成:.由于 logistic 回归是针对二分类问题的,因此类标记 . 假设函数(hypothesis functi ...
- 1.线性回归、Logistic回归、Softmax回归
本次回归章节的思维导图版总结已经总结完毕,但自我感觉不甚理想.不知道是模型太简单还是由于自己本身的原因,总结出来的东西感觉很少,好像知识点都覆盖上了,但乍一看,好像又什么都没有.不管怎样,算是一次尝试 ...
随机推荐
- PL/SQL添加Oracle对象
1.首先用system的身份进入数据库 2.找到user文件夹 3.右击新建用户 在“创建用户”窗口中,输入新用户的名称.口令,默认表空间.临时表空间等 4.赋予新用户权限,赋予其角色权限:conne ...
- WinFrom开发小案例
C# 开发环境: VisualStudio2015 数据库: SQLserver2008 程序主界面: 注释: lbl标签: 程序中的lbl标签:编号.人数.姓名.性别.请输入要查询的信息,这里他们只 ...
- Zabbix——设置阈值和报警
前提条件: Zabbix 服务器可以正常监控其他设备 Zbbix 已经配置完成了邮件报警 Zabbix server版本为4.0 配置ICMP监测,1分钟如果ping不通,将会发送邮件 找到Templ ...
- 使用 PlantUML 高效画图
PlantUML 是一种程序员看了就会爱上的画图方式:自然,高效. 支持快速绘制: 时序图 类图 用例图 活动图 状态图 等等 安装教程 Intellij IDEA中安装 & 使用PlantU ...
- linux 操作系统下简单的命令行操作
一: 配置linux 操作系统虚拟主机 首先安装一个虚拟机(百度上面有很多哦) , 我主要使用的是VMware workstation 然后 下载一个centos镜像6..5到7都可以; 然后用VMw ...
- 安装cronsun管理定时脚本
1. cronsun 是一个分布式任务系统,单个结点和 *nix 机器上的 crontab 近似.支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的 ...
- apache上.htaccess转向nginx上配置.htaccess伪静态规则
nginx上配置.htaccess伪静态规则 在apache上.htaccess转向,只要apache编译的时候指明支持rewrite模块即可. 但是换到nginx上方法会有不同,有人说把.htacc ...
- 计算阶乘的和v2.0(4分)
题目内容: 假设有这样一个三位数m,其百位.十位和个位数字分别是a.b.c,如果m= a!+b!+c!,则这个三位数就称为三位阶乘和数(约定0!=1).请编程计算并输出所有的三位阶乘和数. 函数原型: ...
- 数据结构之链表及其Java实现
数据的存储一般分线性存储结构和链式存储结构两种.前者是一种顺序的存储方式,在内存中用一块连续的内存空间存储数据,即逻辑上相连的物理位置相邻,比较常见的就是数组:后者是一种链式存储方式,不保证顺序性,逻 ...
- 分布式存储系统Kudu与HBase的简要分析与对比
本文来自网易云社区 作者:闽涛 背景 Cloudera在2016年发布了新型的分布式存储系统——kudu,kudu目前也是apache下面的开源项目.Hadoop生态圈中的技术繁多,HDFS作为底层数 ...