多分类问题

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

多分类问题符合多项分布。有许多算法可用于解决多分类问题,像决策树、朴素贝叶斯等。这篇文章主要讲解多分类算法中的Softmax回归(Softmax Regression) 

推导思路为:首先证明多项分布属于指数分布族,这样就可以使用广义线性模型来拟合这个多项分布,由广义线性模型推导出的目标函数即为Softmax回归的分类模型。

证明多项分布属于指数分布族

多分类模型的输出结果为该样本属于k个类别的概率,从这k个概率中我们选择最优的概率对应的类别(通常选概率最大的类别),作为该样本的预测类别。这k个概率用k个变量…,表示。这个k变量和为1,即满足:

可以用前k-1个变量来表示,即:

使用广义线性模型拟合这个多分类问题,首先要验证这个多项分布是否符合一个指数分布族。定义T(y)为:

在这里,统计分量T(y)并没有像之前那样定义为T(y)=y,因为T(y)不是一个数值,而是一个k-1维的向量。使用符号表示向量T(y)的第i个元素。

在这里引入一个新符号:,如果括号内为true则这个符号取1,反之取0,即。所以,T(y)与y的关系就可以表示为

关系为:

即:

多项分布表达式转化为指数分布族表达式过程如下:

其中:

变换过程:

第一步:取值为…,中的一个,取决于y的取值。当y=i时,这一步可以理解为

第二步:消去

第三步:根据

第四、五步:转换为广义线性模型的表达格式。

多项分布表达式可以表示为指数分布族表达式的格式,所以它属于指数分布族,那么就可以用广义线性模型来拟合这个多项式分布模型。

Softmax函数(Softmax Function)

在使用广义线性模型拟合这个多项式分布模型之前,需要先推导一个函数,这个函数在广义线性模型的目标函数中会用到。这个函数称为Softmax函数(Softmax Function)

由η表达式可得:

这是关于的表达式,把它转化为关于的表达式过程为:

为了方便,令,那么

因为:

所以:

这个关于的的函数称为Softmax函数(Softmax Function)

使用广义线性构建模型

根据广义线性模型的假设3:

θ是模型中的参数,为了符号上的方便我们定义,所以

所以模型在给定x的条件下y的分布为:

上面的表达式求解的是在y=i时的概率。在Softmax回归这个广义线性模型中,目标函数是:

Softmax回归目标函数的输出是k个概率,即其中i=1,2,…,k(虽然输出的是k-1个值,但是第k个值可以由求出),求解了这个目标函数,我们就构造出了分类模型。

目标函数推导过程如下:

现在求解目标函数还差最后一步:参数拟合的问题。跟我们之前的参数拟合方法类似,我们有m个训练样本,θ的似然函数为:

最大化似然函数来求解最优的参数θ,可以使用梯度上升或者牛顿方法。

求解了最优的参数θ后,就可以使用目标函数进行分类。使用函数进行多分类的方式就叫Softmax回归(Softmax Regression)

Softmax回归(Softmax Regression的更多相关文章

  1. Softmax回归(Softmax Regression, K分类问题)

    Softmax回归:K分类问题, 2分类的logistic回归的推广.其概率表示为: 对于一般训练集:                     系统参数为:      Softmax回归与Logist ...

  2. Softmax回归 softMax回归与logistic回归的关系

    简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签  可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分 ...

  3. 【机器学习】Softmax 和Logistic Regression回归Sigmod

    二分类问题Sigmod 在 logistic 回归中,我们的训练集由  个已标记的样本构成: ,其中输入特征.(我们对符号的约定如下:特征向量  的维度为 ,其中  对应截距项 .) 由于 logis ...

  4. Machine Learning 学习笔记 (3) —— 泊松回归与Softmax回归

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 泊松回归 (Poisson ...

  5. 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型

    本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...

  6. 手写数字识别 ----Softmax回归模型官方案例注释(基于Tensorflow,Python)

    # 手写数字识别 ----Softmax回归模型 # regression import os import tensorflow as tf from tensorflow.examples.tut ...

  7. 《转》Logistic回归 多分类问题的推广算法--Softmax回归

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...

  8. 逻辑回归,多分类推广算法softmax回归中

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...

  9. 02-13 Softmax回归

    目录 Softmax回归 一.Softmax回归详解 1.1 让步比 1.2 不同类之间的概率分布 1.3 目标函数 1.4 目标函数最大化 二.Softmax回归优缺点 2.1 优点 2.2 缺点 ...

  10. 利用TensorFlow识别手写的数字---基于Softmax回归

    1 MNIST数据集 MNIST数据集主要由一些手写数字的图片和相应的标签组成,图片一共有10类,分别对应从0-9,共10个阿拉伯数字.原始的MNIST数据库一共包含下面4个文件,见下表. 训练图像一 ...

随机推荐

  1. 玩转Android---组件篇---Intent(意图)

    Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”. 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter&g ...

  2. 解决Win10中vmware运行特别慢问题

    1.关闭防火墙:win+S打开搜索框,输入防火墙,选择windowsDefender防火墙 ,如图: 2.启用或关闭防火墙,如图: 3.关闭防火墙,两个选项都关闭,如图: 4.打开VMware,如果速 ...

  3. python 3.7 生成数据库文档

    开发阶段数据库总是有变动,开发人员需要维护文档给相关人员使用,故编写一个脚本自动生成数据库文档 生成的excel如下 import cx_Oracle import os from openpyxl ...

  4. 洛谷P3195||bzoj1010 [HNOI2008]玩具装箱TOY

    洛谷P3195 bzoj1010 设s数组为C的前缀和 首先$ans_i=min_{j<i}\{ans_j+(i-j-1+s_i-s_j-L)^2\}$ (斜率优化dp)参考(复读)https: ...

  5. mybatis批量处理sql

    转载大神 https://www.cnblogs.com/xujingyang/p/8301130.html

  6. 配置了SSH后还是每次都要求输入密码

    保存凭证可以解决问题 git config --global credential.helper store

  7. 是时候搞清楚 Spring Boot 的配置文件 application.properties 了!

    在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml . 虽然 properties 文件比较常见,但是相对于 properties 而言,ya ...

  8. Cache 和 Buffer 区别是什么

    一 从常识来说,cache叫缓存,buffer叫缓冲. 二 尴尬的是缓存是什么?缓冲是什么? 缓冲,缓和冲击.也就是100次保存数据库,先把操作保存到本地,然后满10次才保存到数据库. 缓存,就是缓冲 ...

  9. 用mvc模式,整理前两次的代码并增加登陆注册

    简单的servlet连接mysql数据库 使用mvc的登录注册 commons-dbutils-1.6 mysql-connector-java-5.1.40-bin c3p0-0.9.5.2 mch ...

  10. <llinux下kvm虚拟化>

    原理就是本来可能要10台物理机完成的事现在只要5台,分别在每台物理机上虚拟一台,这5太虚拟机共享一个stronge,比如有一台物理机down掉后或是要做维护,我们可以把它上面的虚拟机牵走,从而减少损失 ...