前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SoftMax回归详解

SoftMax回归详解

作者头像
昱良
发布2018-04-08 14:52:09
1.5K0
发布2018-04-08 14:52:09
举报

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法与Python学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档