我  相  信  这  么  优秀  的  你 
 已  经  置 顶  了  我
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学习

长按上方二维码,关注“公众号”


继续阅读
阅读原文