SoftMax回归详解

Contents

1 关键词

2 引言

3 代价函数

4 softmax回归模型参数化的特点

5 权重衰减

6 softmax与logistics回归的关系

1. 关键词

Softmax回归 Softmax Regression

有监督学习 supervised learning

无监督学习 unsupervised learning

深度学习 deep learning

logistic回归 logistic regression

截距项 intercept term

二元分类 binary classification

类型标记 class labels

估值函数/估计值 hypothesis

代价函数 cost function

多元分类 multi-class classification

权重衰减 weight decay

2. 引言

本篇文章,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 y 可以取两个以上的值。 Softmax回归模型对于诸如MNIST(MNIST 是一个手写数字识别库,由NYU 的Yann LeCun 等人维护。http://yann.lecun.com/exdb/mnist/)手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字。Softmax回归是有监督的,不郭在将来的文章中也会介绍它与深度学习/无监督学习方法的结合。

首先回归一下之前的logistics回归,在logistics回归中,训练数据集由 m 个已标记的样本构成,即:{(x[^1], y[^1]),(x[^2], y[^2]),...,(x[^m], y[^m])},其中输入特征 x[^i]----->R[^(n+1)]。由于logistics针对的是二分类问题,因此标签y[^i]的取值只有{0, 1}。假设函数如下所示:

为了求取权值参数,我们需要优化如下的代价损失函数:

在 softmax回归中,我们解决的是多分类问题,类标 y 可以取 k 个不同的值(而不是 2 个)。因此,对于训练集{(x[^1], y[^1]),(x[^2], y[^2]),...,(x[^m], y[^m])},类别标签y[^i]取值为{1,2,3,....,k} 。例如,在 MNIST 数字识别任务中,我们有 k=10 个不同的类别。

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

为了方便起见,我们同样使用符号 θ 来表示全部的模型参数。在实现Softmax回归时,将 θ 用一个 k *(n+1) 的矩阵来表示,该矩阵是将θ1, θ2,....,θk 按行排列,如下所示:

3. 代价函数

现在我们来看看softmax回归算法(在下面的公式中:1{.}表示示性函数)。定义代广义价函数如下:

logistics回归代价函数为:

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

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

有了上面的偏导数公式以后,我们就可以将它代入到梯度下降法等算法中,来最小化 J(θ) 。

4. softmax回归模型参数化的特点

Softmax 回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于解释,假设从参数向量θ[j] 中减去了向量 φ ,这时,每一个 θ[j] 都变成了 θ[j]- φ (j = 1,2,3....,k)。此时的假设函数如下所示:

换句话说,从 θ[j] 中减去 φ 完全不影响假设函数的预测结果!这表明前面的 softmax 回归模型中存在冗余的参数。更正式一点来说, Softmax 模型被过度参数化了。对于任意一个用于拟合数据的假设函数,可以求出多组参数值,这些参数得到的是完全相同的假设函数 h[θ]。进一步而言,如果参数 (θ[1], θ[2],...,θ[k])是代价函数 J(θ) 的极小值点,那么(θ[1]-φ ,θ[2]-φ ,...,θ[k]-φ ) 同样也是它的极小值点,其中 φ 可以为任意向量(由于 J(θ) 仍然是一个凸函数,因此梯度下降时不会遇到局部最优解的问题。但是 Hessian 矩阵是奇异的/不可逆的,这会直接导致采用牛顿法优化就遇到数值计算的问题)。

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

5. 权重衰减

通过添加一个权值衰减项来惩罚过大的参数值,其代价函数如下所示:

有了这个权重衰减项以后 ( λ>0 ),代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解。 此时的 Hessian矩阵变为可逆矩阵,并且因为是凸函数,梯度下降法和 LBFGS等算法可以保证收敛到全局最优解。为了使用优化算法,我们需要求得这个新函数 J(θ) 的导数,如下:

6. softmax回归与logistics回归的关系

当类别数 k=2 时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic回归的一般形式。具体地说,当 k=2 时,softmax 回归的假设函数为:

利用softmax回归参数冗余的特点,我们令 θ[1] = φ ,并且从两个参数向量中都减去向量 θ[1],得

到:

有了这个权重衰减项以后 ( λ>0 ),代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解。 此时的 Hessian矩阵变为可逆矩阵,并且因为是凸函数,梯度下降法和 LBFGS等算法可以保证收敛到全局最优解。为了使用优化算法,我们需要求得这个新函数 J(θ) 的导数,如下:

参考文献:http://cs229.stanford.edu

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2017-01-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

资源 |​ 史上最全机器学习笔记

本文由LCatro整理 机器学习 机器学习算法原理 https://github.com/wepe/MachineLearning 机器学习实战原书内容与批注 ...

43310
来自专栏机器之心

从90年代的SRNN开始,纵览循环神经网络27年的研究进展

27512
来自专栏AI研习社

SSD(单次多盒检测)用于实时物体检测

卷积神经网络在检测图像中的物体时优于其他神经网络结构。很快,研究人员改进了 CNN 来进行对象定位与检测,并称这种结构为 R-CNN(Region-CNN)。R...

1022
来自专栏大数据挖掘DT机器学习

该怎么检测异常值?

原文作者: Jacob Joseph 原文链接:https://blog.clevertap.com/how-to-detect-outliers-u...

4739
来自专栏AI研习社

Github 项目推荐 | 用 Python 实现的基础机器学习算法

本库包含了用 Python (3.6 版本及以上)实现的基本的机器学习算法,所有的算法都是从头开始写并且没有用到其他的机器学习库。该库旨在让开发者对这些基本的机...

38611
来自专栏机器之心

深度 | 从DensNet到CliqueNet,解读北大在卷积架构上的探索

2104
来自专栏WD学习记录

机器学习深度学习 笔试面试题目整理(2)

(1) 思想    改变全连接为局部连接,这是由于图片的特殊性造成的(图像的一部分的统计特性与其他部分是一样的),通过局部连接和参数共享大范围的减少参数值。可...

2412
来自专栏AI科技大本营的专栏

一文概览主要语义分割网络:FCN,SegNet,U-Net...

图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。虽然自 2007 年以来,语义分割/场景解析一直是计算机视觉社区的一部分,但与计...

3752
来自专栏机器之心

从Inception v1到Inception-ResNet,一文概览Inception家族的「奋斗史」

2216
来自专栏企鹅号快讯

卷积神经网络CNN原理详解(一)——基本原理

作者:Charlotte77数学系的数据挖掘民工 博客专栏:http://www.cnblogs.com/charlotte77/ 个人公众号:Charlott...

3705

扫码关注云+社区