浅入深出之大话SoftMax

先来张超喜欢的硬图~~~让近来忙的团团转的自己开心一哈看到这图莫名的充满了力量,还不禁嘴角上扬(已然忘记了图的出处,若你知道图片来源请告知俺)

言归正传,前段时间分享了一些文本分类和文本特征的文章,其中有一篇关于Word2Vec的文本分类特征提取之Word2Vec,里面上来就提到了SoftMax,后台有小伙伴反馈,SoftMax是怎么回事?有没有这方便的笔记分享?


正好近来小编也在学习,倒是搜集了一些资料。未必透彻,但可以带你认识Softmax。

关键词


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

介绍

本篇文章,我们介绍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 按行排列,如下所示:


 

代价函数


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


logistics回归代价函数为:

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


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


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


 

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 回归的参数冗余所带来的数值问题。


 

权重衰减


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


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


 

softmax回归与logistics回归的关系


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

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


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


文献: 

http://cs229.stanford.edu

机器学习与Python学习

 近期热文

从最大方差来看主成分分析PCA

常见文本相似度量方法总结

文本特征工程之N-Gram

文本分类特征提取之Word2Vec

干货|免费文本语料训练数据集

机器学习之决策树模型组合理解

机器学习之理解支持向量机SVM

机器学习之朴素贝叶斯分类器

机器学习之决策树分类和预测算法原理

... ...

一次痛苦的经历抵得上千百次告诫~~


更多干货内容请关注微信公众号“AI 深入浅出”

长按二维码关注

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值