DeepLearning之路(二)SoftMax回归

Softmax回归

1. softmax回归模型

  softmax回归模型是logistic回归模型在多分类问题上的扩展(logistic回归解决的是二分类问题)。

  对于训练集,有

  对于给定的测试输入,我们相拥假设函数针对每一个类别j估算出概率值。也就是说,我们估计得每一种分类结果出现的概率。因此我们的假设函数将要输入一个维的向量来表示这个估计得概率值。假设函数形式如下:

  其中是模型的参数。这一项对概率分布进行归一化,舍得所有概率之和为1.

  softmax回归的代价函数:

  上述公式是logistic回归代价函数的推广。logistic回归代价函数可以改为:

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

有了上面的偏导数公式以后,我们就可以将它代入到梯度下降法等算法中,来最小化 。 例如,在梯度下降法的标准实现中,每一次迭代需要进行如下更新: 

2. 权重衰减

在实际应用中,为了使算法实现更简单清楚,往往保留所有参数 ,而不任意地将某一参数设置为 0。但此时我们需要对代价函数做一个改动:加入权重衰减。权重衰减可以解决 softmax 回归的参数冗余所带来的数值问题。

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

有了这个权重衰减项以后 (),代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解了。 此时的 Hessian矩阵变为可逆矩阵,并且因为是凸函数,梯度 下降法和 L-BFGS 等算法可以保证收敛到全局最优解。

为了使用优化算法,我们需要求得这个新函数  的导数,如下:

通过最小化 ,我们就能实现一个可用的 softmax 回归模型。

3. 模型选择

如果你在开发一个音乐分类的应用,需要对k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k 个独立的二元分类器呢?

这一选择取决于你的类别之间是否互斥,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 的softmax回归。

如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。

现在我们来看一个计算视觉领域的例子,你的任务是将图像分到三个不同类别中。(i) 假设这三个类别分别是:室内场景、户外城区场景、户外荒野场景。你会使用sofmax回归还是 3个logistic 回归分类器呢? (ii) 现在假设这三个类别分别是室内场景、黑白图片、包含人物的图片,你又会选择 softmax 回归还是多个 logistic 回归分类器呢?

在第一个例子中,三个类别是互斥的,因此更适于选择softmax回归分类器 。而在第二个例子中,建立三个独立的 logistic回归分类器更加合适。

转自:http://www.cnblogs.com/Rosanna/p/3865212.html

参考:http://deeplearning.stanford.edu/wiki/index.php/Softmax回归

时间: 2024-08-10 03:08:11

DeepLearning之路(二)SoftMax回归的相关文章

DeepLearning tutorial(1)Softmax回归原理简介+代码详解

DeepLearning tutorial(1)Softmax回归原理简介+代码详解 @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43157801 本文介绍Softmax回归算法,特别是详细解读其代码实现,基于python theano,代码来自:Classifying MNIST digits using Logistic Regression,参考UFLDL. 一.Softmax回归简介 关于算法的详

DeepLearning (四) 基于自编码算法与softmax回归的手写数字识别

[原创]Liu_LongPo 转载请注明出处 [CSDN]http://blog.csdn.net/llp1992 softmax 回归模型,是logistic 回归模型在多分类问题上的推广.关于logistic回归算法的介绍,前面博客已经讲得很清楚,详情可以参考博客 机器学习实战ByMatlab(五)Logistic Regression 在logistic回归模型中,我们的激励函数sigmoid的输入为: z=θ0x0+θ1x1+θ2x2+...+θnxn 则可以得到假设函数为: hθ(x)

机器学习 —— 基础整理(五):线性回归;二项Logistic回归;Softmax回归;广义线性模型

本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 二项Logistic回归是我去年入门机器学习时学的第一个模型,我觉得这个模型很适合用来入门(但是必须注意这个模型有很多很多很多很多可以展开的地方).比较有意思的是那时候还不会矩阵微积分,推导梯度时还是把矩阵全都展开求的(牛顿法要用的二阶梯度也是)... 下面的文字中,"Logistic回归"都表示用于二分类的二项Logistic回归. 首先约定一下记号

DeepLearning之路(三)MLP

DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解 @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43221829 本文介绍多层感知机算法,特别是详细解读其代码实现,基于Python theano,代码来自:Multilayer Perceptron,如果你想详细了解多层感知机算法,可以参考:UFLDL教程,或者参考本文第一部分的算法简介. 经详细注释的代码:放在我的gith

ufldl学习笔记与编程作业:Softmax Regression(softmax回归)

ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl. 于是最近就开始搞这个了,教程加上matlab编程,就是完美啊. 新教程的地址是:http://ufldl.stanford.edu/tutorial/ 本节学习链接:http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/ softmax回归其实是逻

机器学习之线性回归---logistic回归---softmax回归

1 摘要 本报告是在学习斯坦福大学机器学习课程前四节加上配套的讲义后的总结与认识.前四节主要讲述了回归问题,回归属于有监督学习中的一种方法.该方法的核心思想是从连续型统计数据中得到数学模型,然后将该数学模型用于预测或者分类.该方法处理的数据可以是多维的. 讲义最初介绍了一个基本问题,然后引出了线性回归的解决方法,然后针对误差问题做了概率解释.之后介绍了logistic回归.最后上升到理论层次,提出了一般回归. 2 问题引入 这个例子来自http://www.cnblogs.com/LeftNot

Machine Learning 学习笔记 (3) —— 回归问题深入:泊松回归与Softmax回归

本系列文章允许转载,转载请保留全文! [总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 泊松回归 (Poisson Regression) 在生活中,经常会遇到一类问题需要对一段时间内某一小概率事件的发生次数建模,例如癌症.火灾等. 假设向量x表示引起这一事件发生的因素,向量θ表示因素的权重,则使用hθ(x)=exp(θTx)表示事件发生次数的期望.θTx位于指数位置,意味着其每增加1个单位,将导至事件发生次数的期望值翻倍. 此时,因变量

Softmax回归(Softmax Regression)

转自:http://www.cnblogs.com/BYRans/ 多分类问题 在一个多分类问题中,因变量y有k个取值,即.例如在邮件分类问题中,我们要把邮件分为垃圾邮件.个人邮件.工作邮件3类,目标值y是一个有3个取值的离散值.这是一个多分类问题,二分类模型在这里不太适用. 多分类问题符合多项分布.有许多算法可用于解决多分类问题,像决策树.朴素贝叶斯等.这篇文章主要讲解多分类算法中的Softmax回归(Softmax Regression) 推导思路为:首先证明多项分布属于指数分布族,这样就可

Haskell手撸Softmax回归实现MNIST手写识别

Haskell手撸Softmax回归实现MNIST手写识别 前言 初学Haskell,看的书是Learn You a Haskell for Great Good, 才刚看到Making Our Own Types and Typeclasses这一章. 为了加深对Haskell的理解,便动手写了个Softmax回归.纯粹造轮子,只用了base. 显示图片虽然用了OpenGL,但是本文不会提到关于OpenGL的内容.虽说是造轮子, 但是这轮子造得还是使我受益匪浅.Softmax回归方面的内容参考