机器学习----Softmax回归
2016-04-30 16:59
288 查看
本篇博客主要是参考吴恩达教授的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
个人注释:我们第一眼看到这个式子可能会感到很困惑,我觉得你的困惑很有可能是把Softmax函数的假设函数和sigmoid函数联系在一起了,觉得Softmax回归的假设函数和逻辑回归假设函数一样,借鉴了sigmoid函数。但是,这是错的,Softmax函数的假设函数并没有借鉴sigmoid函数,上面的假设函数的形式我们可以把它理解成一种普通的函数表达式就可以了。
3、代价函数
先给出Softmax的函数形式如下:
这个公式是怎么来的呢?我们可以从逻辑回归的代价函数推广而来。
逻辑回归的代价函数是根据极大似然估计推理得来,Softmax的代价函数也类似。其实两个代价函数本质上一样的。我们可以把中括号中的加法看成,类别标签 X log(类别对应的概率),再累加。注意在Softmax回归中将
分类为类别 j的概率为:
在逻辑回归中我们梯度下降法求解最优值,Softmax回归也是用梯度下降法求解最优值,梯度公式如下:
4、Softmax回归模型参数具有“冗余”性
冗余性指的是最优解不止一个,有多个。假设我们从参数向量
中减去了向量
,这时,每一个
都变成了
(
)。此时假设函数变成了以下的式子:
我们看到,从
中减去
完全不影响假设函数的预测结果!这就是Softmax回归的冗余性。
5、权重衰减
针对上述的冗余性,我们应该怎么办呢?权重衰减可以解决这个问题。
我们通过添加一个权重衰减项
来修改代价函数,这个衰减项会惩罚过大的参数值,现在我们的代价函数变为:
有了这个权重衰减项以后 (
),代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解了。
为了使用优化算法,我们需要求得这个新函数
的导数,如下:
通过最小化
,我们就能实现一个可用的 softmax 回归模型。
6、Softmax回归与Logistic回归的关系
当类别数
时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当
时,softmax 回归的假设函数为:
利用softmax回归参数冗余的特点,我们令
,并且从两个参数向量中都减去向量
,得到:
因此,用
来表示
,我们就会发现
softmax 回归器预测其中一个类别的概率为
,另一个类别概率的为
,这与 logistic回归是一致的。
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
个人注释:我们第一眼看到这个式子可能会感到很困惑,我觉得你的困惑很有可能是把Softmax函数的假设函数和sigmoid函数联系在一起了,觉得Softmax回归的假设函数和逻辑回归假设函数一样,借鉴了sigmoid函数。但是,这是错的,Softmax函数的假设函数并没有借鉴sigmoid函数,上面的假设函数的形式我们可以把它理解成一种普通的函数表达式就可以了。
3、代价函数
先给出Softmax的函数形式如下:
这个公式是怎么来的呢?我们可以从逻辑回归的代价函数推广而来。
逻辑回归的代价函数是根据极大似然估计推理得来,Softmax的代价函数也类似。其实两个代价函数本质上一样的。我们可以把中括号中的加法看成,类别标签 X log(类别对应的概率),再累加。注意在Softmax回归中将
分类为类别 j的概率为:
在逻辑回归中我们梯度下降法求解最优值,Softmax回归也是用梯度下降法求解最优值,梯度公式如下:
4、Softmax回归模型参数具有“冗余”性
冗余性指的是最优解不止一个,有多个。假设我们从参数向量
中减去了向量
,这时,每一个
都变成了
(
)。此时假设函数变成了以下的式子:
我们看到,从
中减去
完全不影响假设函数的预测结果!这就是Softmax回归的冗余性。
5、权重衰减
针对上述的冗余性,我们应该怎么办呢?权重衰减可以解决这个问题。
我们通过添加一个权重衰减项
来修改代价函数,这个衰减项会惩罚过大的参数值,现在我们的代价函数变为:
有了这个权重衰减项以后 (
),代价函数就变成了严格的凸函数,这样就可以保证得到唯一的解了。
为了使用优化算法,我们需要求得这个新函数
的导数,如下:
通过最小化
,我们就能实现一个可用的 softmax 回归模型。
6、Softmax回归与Logistic回归的关系
当类别数
时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当
时,softmax 回归的假设函数为:
利用softmax回归参数冗余的特点,我们令
,并且从两个参数向量中都减去向量
,得到:
因此,用
来表示
,我们就会发现
softmax 回归器预测其中一个类别的概率为
,另一个类别概率的为
,这与 logistic回归是一致的。
相关文章推荐
- hdu_2608_0 or 1_数论
- ListView和数据适配器SimpleAdapter例子
- hdu_2608_0 or 1_数论
- python使用zlib实现压缩与解压字符串
- CODEVS 3023 魔法禁书目录1:追捕大妈
- 正向代理与反向代理
- 《UNIX环境高级编程》(进程环境)
- error C4996: 'pcl::SAC_SAMPLE_SIZE': PCL1.8问题汇总
- Java循环练习:已知s=1×2×3×…×n,计算出s不大于5000时n的最大值
- 2.ubuntu 配置目录
- 【自考总结】 操作系统概论
- java学习-字符串2.
- 1026. 程序运行时间(15)
- 英语的五种基本句型
- poj1698二分图多重匹配
- Android 发布项目到 jcenter 遇到的坑
- 递归反转字符串
- HDU 1166
- 关于JAVA 封装性 以及高内聚,低耦合的理解
- 模式设计--适配器、桥接模式