SVM只选自己喜欢的男神,Softmax把所有备胎全部拉出来评分,最后还归一化一下
1.引入---为何种问题存在
2.Softmax回归的预设函数、代价函数
2.1Softmax函数
2.2Softmax回归的预设函数
2.3Softmax回归的代价函数
3.梯度下降法求解最优值
4.softmax regression模型参数的特点(参数冗余)
5.Softmax回归与Logistic 回归的关系
1.引入---为何种问题存在
线性回归解决的连续值的预测,逻辑回归解决的是离散值的预测,而且针对二分类问题。那么问题来了,如果是离散值预测,但是是多类别预测,也就是有多个类别标签,这种情况怎么办呢?Softmax回归针对的就是这种问题。
2.Softmax回归的预设函数、代价函数
2.1Softmax函数(wiki)
Softmax函数,或称归一化指数函数[1]:198,是逻辑函数的一种推广。它能将一个含任意实数的K维向量 “压缩”到另一个K维实向量
中,
使得每一个元素的范围都在之间,并且所有元素的和为1。
这个函数的作用就是使得P(i)在负无穷到0的区间趋向于0,在0到正无穷的区间趋向于1。同样,softmax函数加入了e的幂函数正是为了两极化:正样本的结果将趋近于1,而负样本的结果趋近于0。这样为多类别分类提供了方便(可以把P(i)看作是样本属于类别i的概率)
2.2Softmax回归的预设函数
softmax regression主要用于解决多元分类问题,假设对于样本,样本有K个类别,即
。例如对于手写体识别来说
。softmax回归主要是估算对于输入样本
属于每一类别的概率,所以softmax回归的假设函数如下:
其中 是模型的参数,乘以
的目的是为了使概率在[0,1]之间且概率之和为1。因此,softmax回归将样本
标记为类别
的概率为:
2.3 Softmax回归的代价函数
其中, 是示性函数,所谓示性函数即
,举例来说就是:
。
其他博客有一种说法:
但感觉解释并不合理,这种推理类似于倒推,由特殊情况推导一般情况。
我的推导过程,不知道对不对。
推导过程如下:(没搞懂)
极大似然估计法:
假设当前输入为x1,x2,⋯,xmx1,x2,⋯,xm,yiyi表示xixi的正确标签类别,似然函数可定义为:
使得似然函数最大化:

等价于:

使得似然函数最大化的参数就是极大似然估计希望得到的参数,因此可以定义以下损失函数, 然后用梯度下降逼近最优解

3.梯度下降法求解最优值
1.法一:
这里面几个容易踩得坑:1.对求偏导,这个 不要和 这里的 混淆了,还有就是除 项外其他项为0。2.红色框起来的地方结果为1,因为仅有一种类别满足条件是真,其他是0。
2.法二:如果上面的推导过程没看明白,可以看看下面这种推导方法,之所以要拆成两项,是因为分母中总含有 这一项,于是我们可以下列的方法拆成两项:
好吧,不得不承认编辑公式是一件费时费力的事情。。。
4.softmax regression模型参数的特点(参数冗余)
Softmax 回归有一个不寻常的特点:它有一个“冗余”的参数集。为了便于阐述这一特点,假设我们从参数向量 中减去了向量
这时,每一个
都变成了
。此时假设函数变成了以下的式子:
- 换句话说,从
中减去
完全不影响假设函数的预测结果!这表明前面的 softmax 回归模型中存在冗余的参数。更正式一点来说, Softmax 模型被过度参数化了。对于任意一个用于拟合数据的假设函数,可以求出多组参数值,这些参数得到的是完全相同的假设函数
。
- 进一步而言,如果参数
是代价函数
的极小值点,那么
同样也是它的极小值点,其中
可以为任意向量。
- 因此使
最小化的解不是唯一的。(有趣的是,由于
仍然是一个凸函数,因此梯度下降时不会遇到局部最优解的问题。但是 Hessian 矩阵是奇异的/不可逆的,这会直接导致采用牛顿法优化就遇到数值计算的问题)
- 注意,当
时,我们总是可以将
替换为
(即替换为全零向量),并且这种变换不会影响假设函数。因此我们可以去掉参数向量
(或其他
中的任意一个)而不影响假设函数的表达能力。
- 实际上,与其优化全部的
个参数
(其中
),我们可以令
,只优化剩余的
个参数,这样算法依然能够正常工作。
在实际应用中,为了使算法实现更简单清楚,往往保留所有参数,而不任意地将某一参数设置为 0。但此时我们需要对代价函数做一个改动:加入权重衰减。权重衰减可以解决 softmax 回归的参数冗余所带来的数值问题。
5.Softmax回归与Logistic 回归的关系




前面说过softmax回归的参数具有冗余性,从参数向量 中减去向量
,完全不影响结果。现在我们令
,并且两个参数向量都减去
,则有: