二分类问题Sigmod

  在 logistic 回归中,我们的训练集由  个已标记的样本构成: ,其中输入特征。(我们对符号的约定如下:特征向量  的维度为 ,其中  对应截距项 。) 由于 logistic 回归是针对二分类问题的,因此类标记 。假设函数(hypothesis function) 如下:

我们将训练模型参数 ,使其能够最小化代价函数 :

多分类问题

在一个多分类问题中,因变量y有k个取值,即。例如在邮件分类问题中,我们要把邮件分为垃圾邮件、个人邮件、工作邮件3类,目标值y是一个有3个取值的离散值。这是一个多分类问题,二分类模型在这里不太适用。

  主要应用就是多分类,sigmoid函数只能分两类,而softmax能分多类,softmax是sigmoid的扩展。

  Logistic函数只能被使用在二分类问题中,但是它的多项式回归,即softmax函数,可以解决多分类问题。

  在 softmax回归中,我们解决的是多分类问题(相对于 logistic 回归解决的二分类问题),类标  可以取  个不同的值(而不是 2 个)。因此,对于训练集 ,我们有 。(注意此处的类别下标从 1 开始,而不是 0) 

  对于给定的测试输入 ,我们想用假设函数针对每一个类别j估算出概率值 。也就是说,我们想估计  的每一种分类结果出现的概率。因此,我们的假设函数将要输出一个  维的向量(向量元素的和为1)来表示这  个估计的概率值。 具体地说,我们的假设函数  形式如下:

  其中  是模型的参数。请注意 这一项对概率分布进行归一化,使得所有概率之和为 1 。

  为了方便起见,我们同样使用符号  来表示全部的模型参数。在实现Softmax回归时,将  用一个  的矩阵来表示会很方便,该矩阵是将  按行罗列起来得到的,如下所示:

代价函数

 值为假的表达式 。举例来说,表达式  的值为1 ,的值为 0。我们的代价函数为:

值得注意的是,上述公式是logistic回归代价函数的推广。logistic回归代价函数可以改为:

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

.

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

让我们来回顾一下符号 "" 的含义。 本身是一个向量,它的第  个元素  是  的第  个分量的偏导数。

有了上面的偏导数公式以后,我们就可以将它代入到梯度下降法等算法中,来最小化 。 例如,在梯度下降法的标准实现中,每一次迭代需要进行如下更新: ()。

当实现 softmax 回归算法时, 我们通常会使用上述代价函数的一个改进版本。

Softmax回归与Logistic 回归的关系

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

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

因此,用 来表示,我们就会发现 softmax 回归器预测其中一个类别的概率为 ,另一个类别概率的为 ,这与 logistic回归是一致的。

广义线性模型

linear,Logistic,Softmax 都是一个东西推导出来的。
这些分布之所以长成这个样子,是因为我们对y进行了假设。
当y是两点分布-------->linear model
当y是正态分布-------->Logistic model
当y是多项式分布-------->Softmax

http://ufldl.stanford.edu/wiki/index.php/Softmax回归#Softmax.E5.9B.9E.E5.BD.92.E4.B8.8ELogistic_.E5.9B.9E.E5.BD.92.E7.9A.84.E5.85.B3.E7.B3.BB

【机器学习】Softmax 和Logistic Regression回归Sigmod的更多相关文章

  1. Andrew Ng机器学习编程作业:Logistic Regression

    编程作业文件: machine-learning-ex2 1. Logistic Regression (逻辑回归) 有之前学生的数据,建立逻辑回归模型预测,根据两次考试结果预测一个学生是否有资格被大 ...

  2. 【笔记】机器学习 - 李宏毅 - 6 - Logistic Regression

    Logistic Regression 逻辑回归 逻辑回归与线性回归有很多相似的地方.后面会做对比,先将逻辑回归函数可视化一下. 与其所对应的损失函数如下,并将求max转换为min,并转换为求指数形式 ...

  3. 机器学习实战python3 Logistic Regression

    代码及数据:https://github.com/zle1992/MachineLearningInAction logistic regression 优点:计算代价不高,易于理解实现,线性模型的一 ...

  4. Andrew Ng机器学习 二: Logistic Regression

    一:逻辑回归(Logistic Regression) 背景:假设你是一所大学招生办的领导,你依据学生的成绩,给与他入学的资格.现在有这样一组以前的数据集ex2data1.txt,第一列表示第一次测验 ...

  5. Stanford机器学习笔记-2.Logistic Regression

    Content: 2 Logistic Regression. 2.1 Classification. 2.2 Hypothesis representation. 2.2.1 Interpretin ...

  6. 机器学习方法(五):逻辑回归Logistic Regression,Softmax Regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面介绍过线性回归的基本知识, ...

  7. [机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等.主要学习资料来自Standford Andrew N ...

  8. 机器学习---逻辑回归(二)(Machine Learning Logistic Regression II)

    在<机器学习---逻辑回归(一)(Machine Learning Logistic Regression I)>一文中,我们讨论了如何用逻辑回归解决二分类问题以及逻辑回归算法的本质.现在 ...

  9. 机器学习二 逻辑回归作业、逻辑回归(Logistic Regression)

    机器学习二 逻辑回归作业   作业在这,http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/hw2.pdf 是区分spam的. 57 ...

随机推荐

  1. 【Spring】spring的7个模块

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架. Spring ...

  2. Intellij Idea免费激活方法

    填入下面的license server: http://intellij.mandroid.cn/http://idea.imsxm.com/http://idea.iteblog.com/key.p ...

  3. 纯css打造美丽的html表格

    花了点时间,自己做了个美丽的html表格,採用技术有css,html,其它的废话我也不多说了,直接上图.上代码. 界面图片: HTML代码: <%@ page language="ja ...

  4. 供CImage类显示的半透明PNG文件处理方法

    原文链接: http://blog.sina.com.cn/s/blog_4070692f010003gy.html   前补:没想到这个帖子好像挺多人看哪……看来大家都被这个png郁闷的够呛.显示p ...

  5. ADS错误the session file 'C:\user\username\default-1-2-0-0.ses' could not be loaded解决办法

    问题描述:用ADS1.2 + H-JTAG或者是H-Jlink,每次调试的时候都会出现“the session file could not be loaded”这个错误,寻求解决办法?问题解答:用户 ...

  6. Qt Creator中如何添加C++0x支持

    最近在学习多线程编程,本人平时习惯使用Qt Creator写程序,只是作为C++编辑器,很少使用Qt library中的类. Multi Threading作为C++11标准已经纳入C++标准库了,可 ...

  7. VS Code 中文注释显示乱码 解决方法

    将设置中的"files.autoGuessEncoding"项的值改为true即可. 1.文件 2.首选项 3.设置 4.搜索 "files.autoGuessEncod ...

  8. 启动supervisord 生成openvpn用于android的证书

     service supervisord start netstat -anp | grep 你的端口号 生成证书: 进入到openvpn的证书生成文件夹,通常在/etc/openvpn/easy-r ...

  9. mysql中and 和 or 联合使用

    以下是两张表,我只列出有用的字段. Table:student_score 学生成绩 sid(学生ID) cid(课程ID) score(分数) 5 1 50 5 2 110 5 3 64 5 4 n ...

  10. django -- 插入行的不同方式

    在django中行是Model的一个实例.也就是说一个Model的实例就对应着一行. 一.通过构造函数创建行: import django django.setup() from polls.mode ...