类别不平衡(class-imbalance)

当不同类别的训练样本数目差别很大,则会对学习过程造成困扰。如有998个反例,但正例只有2个。

从线性分类器的角度讨论,用\(y=w^Tx+b\)对新样本\(x\)进行分类时,事实上是在用预测出的\(y\)值与一个阈值进行比较。如通过在\(y>0.5\)时判别为正例,否则为反例。几率\(\frac{y}{1-y}\)则反映了正例可能性与反例可能性之比值。阈值设为0.5表明分类器认为真实正、反例可能性相同。即
\[if\ \frac{y}{1-y}>1\ then\ is\ position\]
当训练集中正、反例数目不同时,令\(m^{+}\)表示正例数目,\(m^-\)表示反例数目。假设训练集是真实样本总体的无偏采样,分类器决策规则为:
\[if\ \frac{y}{1-y}>\frac{m^+}{m^-}\ then\ is\ position\]
需对其预测值进行再缩放(rescaling):
\[\frac{y'}{1-y'}=\frac{y}{1-y}\times \frac{m^-}{m^+}\]
___

Softmax回归模型

是logistic回归模型在多分类问题伤的推广。

适用场景:MNIST手写数字分类。

对于给定的测试输入\(x\),用假设函数针对每一个类别\(j\)估算出概率值\(p(y=j|x)\),即估计\(x\)的每一种分类结果出现的概率。因此,假设函数为:
\[h_\theta(x^{(i)})=\begin{bmatrix}
p(y^{(i)}=1|x^{(i)};\theta)\\
p(y^{(i)}=2|x^{(i)};\theta)\\
\vdots \\
p(y^{(i)}=k|x^{(i)};\theta)
\end{bmatrix}=\frac{1}{\sum_{j=1}^k}\begin{bmatrix}
e^{\theta_1^Tx^{(i)}}\\
e^{\theta_2^Tx^{(i)}}\\
\vdots\\
e^{\theta_k^Tx^{(i)}}
\end{bmatrix}\]

在Softmax回归中,将\(x\)分类为类别\(j\)的概率为:
\[p(y^{(i)}=j|x^{(i)};\theta)=\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}\]

其代价函数为:
\[J(\theta)=-\frac{1}{m}[\sum_{i=1}^m\sum_{j=0}^kI\{y^{(i)}=j\}log\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}]\]
其中,\(I\{\cdot\}\)是示性函数。

对于\(J(\theta)\)的最小化问题,使用迭代的优化算法(梯度下降法、L-BFGS)。经求导,其梯度为:
\[\triangledown _{\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^m[x^{(i)}(I\{y^{(i)}=j\}-p(y^{(i)}=j|x^{(i)};\theta))]\]
其中,\(\triangledown _{\theta_j}J(\theta)\)本身是一个向量,它的第\(l\)个元素\(\frac{\partial J(\theta)}{\partial \theta_{jl}}\)是\(J(\theta)\)对\(\theta_j\)的第\(l\)个分量的偏导数。

每一次迭代,需进行如下的更新:
\[\theta_j:=\theta_j-\alpha \bigtriangledown _{\theta_j}J(\theta),\ \ \ j=1,\cdots,k\]
___

引入权重衰减(weight decay)项

衰减项会惩罚过大的参数值,代价函数为:
\[J(\theta)=-\frac{1}{m}[\sum_{i=1}^m\sum_{j=0}^kI\{y^{(i)}=j\}log\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}]+\frac{\lambda}{2}\sum_{i=1}^k\sum_{j=0}^n\theta_{ij}^2\]
其中,\(\lambda>0\),此时代价函数变成严格的凸函数。使用优化算法,得到新函数\(J(\theta)\)的导数:
\[\triangledown _{\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^m[x^{(i)}(I\{y^{(i)}=j\}-p(y^{(i)}=j|x^{(i)};\theta))]+\lambda \theta_j\]
通过最小化\(J(\theta)\),就能实现一个可用Softmax回归模型。


Softmax回归 VS. k个二元分类器

如开发一个音乐分类的应用,需对\(k\)种类型的音乐进行识别。根据类别之间是否互斥来进行选择。

  • 如四个类别的音乐分别为:古典音乐、乡村音乐、摇滚乐、爵士乐。

此时,每个训练样本只会被打上一个标签,应使用类别数\(k=4\)的Softmax回归。

  • 如四个类别的音乐分别为:人声音乐、舞曲、影视原声、流行歌曲。

此时,类别之间不是互斥的。使用4个二分类的logistic回归分类更为合适。

类别不平衡问题和Softmax回归的更多相关文章

  1. 机器学习之线性回归---logistic回归---softmax回归

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

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

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

  3. 从Softmax回归到Logistic回归

    Softmax回归是Logistic回归在多分类问题上的推广,是有监督的. 回归的假设函数(hypothesis function)为,我们将训练模型参数,使其能够最小化代价函数: 在Softmax回 ...

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

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

  5. Softmax回归——logistic回归模型在多分类问题上的推广

    Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...

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

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

  7. 机器学习——softmax回归

    softmax回归 前面介绍了线性回归模型适用于输出为连续值的情景.在另一类情景中,模型输出可以是一个像图像类别这样的离散值.对于这样的离散值预测问题,我们可以使用诸如 softmax 回归在内的分类 ...

  8. Logistic回归(逻辑回归)和softmax回归

    一.Logistic回归 Logistic回归(Logistic Regression,简称LR)是一种常用的处理二类分类问题的模型. 在二类分类问题中,把因变量y可能属于的两个类分别称为负类和正类, ...

  9. Softmax回归(Softmax Regression)

    转载请注明出处:http://www.cnblogs.com/BYRans/ 多分类问题 在一个多分类问题中,因变量y有k个取值,即.例如在邮件分类问题中,我们要把邮件分为垃圾邮件.个人邮件.工作邮件 ...

随机推荐

  1. 图数据库项目DGraph的前世今生

    本文由云+社区发表 作者:ManishRai Jain 作者:ManishRai Jain Dgraph Labs创始人 版权声明:本文由腾讯云数据库产品团队整理,页面原始内容来自于db weekly ...

  2. 滚动 docker 中的 nginx 日志

    Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者.一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务.本文笔者介绍如何滚 ...

  3. [十六]基础类型BigInteger简介

        BigInteger和BigDecimal都是Java针对大数提供的类 超出了java的表示范围   属性简介 借助于signum和mag 来实现数据的符号位和实际数据的保存 final in ...

  4. .Net语言 APP开发平台——Smobiler学习日志:SmoOne新增考勤功能

    大家好!SmoOne这次新增了考勤功能,大家打开SmoOne应用便可体验,无需重新下载更新.如果没有下载SmoOne客户端,可以在apps.smobiler.com进行下载安装. 另外,SmoOne开 ...

  5. FastDfs集群docker化部署

    初识分布式文件系统FastDFS- 1.分布式与集群的区别 区别:集群是个物理形态,分布式是个工作方式.只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道:一个程序或系统,只要运行 ...

  6. PHP基础:MYSQL数据库操作

    1.连接到数据库: · 面向对象的方法: $db = new mysqli('hostname', 'username', 'password', 'dbname'); · 面向过程的方法: $db ...

  7. 做了面向互联网部署的Dynamics 365 CE更改AD FS的登录页面

    摘要: 微软动态CRM专家罗勇 ,回复306或者20190307可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 默认情况下A ...

  8. Windchill基本业务对象-文档

    文档的类型: (1)WTDocumetManster :是文档的主要信息,一个文档只有一条记录:(2)WTDocument:是文档小版本记录,每一个文档小版本都有一条记录: 备注:(1)文档大版本记录 ...

  9. windows蓝屏代码

    原始链接 引用自  https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/bug-check-code-referenc ...

  10. mac /linux vi/vim永久显示行号开启高亮模式

    临时显示:进入vi编辑器,输入命令 :set number     //下次在进入vi 无法显示行号 :set nonumber  //本次vi关闭行号显示 vi 每次修改后推荐使用命令: sourc ...