本篇博客主要是参考吴恩达教授的Ufldl教程,教程链接如下:
http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92
OK!开启,本次的学习之旅吧!
1、Softmax回归解决什么问题呢?
通过前面的学习,我们知道线性回归解决的连续值的预测,逻辑回归解决的是离散值的预测,而且针对二分类问题。那么问题来了,如果是离散值预测,但是是多类别预测,也就是有多个类别标签,这种情况怎么办呢?Softmax回归针对的就是这种问题。
2、Softmax回归的假设函数
还记得逻辑回归中的假设函数吗?不记得也没关系,逻辑归回的假设函数如下:
逻辑回归的假设函数借用了sigmoid函数,而且逻辑回归中有一个假设上式代表取类别1的概率,而取类别0的概率我们用1-h(x)表示。
在 softmax回归中,我们解决的是多分类问题(相对于 logistic 回归解决的二分类问题),类标 可以取 个不同的值(而不是 2 个)。因此,对于训练集 ,我们有 。(注意此处的类别下标从 1 开始,而不是 0)。对于给定的测试输入 ,我们想用假设函数针对每一个类别j估算出概率值 。也就是说,我们想估计 的每一种分类结果出现的概率。因此,我们的假设函数将要输出一个 维的向量(向量元素的和为1)来表示这 个估计的概率值。 具体地说,我们的假设函数 形式如下:
其中 是模型的参数。请注意 这一项对概率分布进行归一化,使得所有概率之和为 1
3、代价函数
先给出Softmax的函数形式如下:
这个公式是怎么来的呢?我们可以从逻辑回归的代价函数推广而来。
逻辑回归的代价函数是根据极大似然估计推理得来,Softmax的代价函数也类似。其实两个代价函数本质上一样的。我们可以把中括号中的加法看成,类别标签 X log(类别对应的概率),再累加。 注意在Softmax回归中将 分类为类别 j 的概率为:
在逻辑回归中我们梯度下降法求解最优值,Softmax回归也是用梯度下降法求解最优值,梯度公式如下:
4、Softmax回归模型参数具有“冗余”性
冗余性指的是最优解不止一个,有多个。假设我们从参数向量 中减去了向量 ,这时,每一个 都变成了 ()。此时假设函数变成了以下的式子:
5、权重衰减
针对上述的冗余性,我们应该怎么办呢?权重衰减可以解决这个问题。
我们通过添加一个权重衰减项 来修改代价函数,这个衰减项会惩罚过大的参数值,现在我们的代价函数变为:
有了这个权重衰减项以后 ( ),代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解了。
为了使用优化算法,我们需要求得这个新函数 的导数,如下:
通过最小化 ,我们就能实现一个可用的 softmax 回归模型。
6、Softmax回归与Logistic回归的关系当类别数 时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当 时,softmax 回归的假设函数为:
利用softmax回归参数冗余的特点,我们令 ,并且从两个参数向量中都减去向量 ,得到:
因此,用 来表示,我们就会发现 softmax 回归器预测其中一个类别的概率为 ,另一个类别概率的为 ,这与 logistic回归是一致的。