类别不平衡(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. Linux vi常用命令

    vi常用命令[Ctrl] + [f] 屏幕『向前』移动一页(常用)[Ctrl] + [b] 屏幕『向后』移动一页(常用)0 这是数字『 0 』:移动到这一行的最前面字符处(常用)$ 移动到这一行的最后 ...

  2. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(1)- 环境搭建(Python2.7.14 + PyAudio0.2.11 + Matplotlib2.2.3 + SpeechRecognition3.8.1 + pyttsx3 2.7)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之环境搭建. 在写Jays-PySPEECH时需要先搭好开发环境,下表列出了开发过程中会用到的 ...

  3. .net mvc 导出excel表格

    使用using System.IO; /// /// 导出Excel文件,并自定义文件名 /// public static void DataTableExcel(System.Data.DataT ...

  4. php 的优化

    =>PHP函数禁用 disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshel ...

  5. 微信小程序解密得到unoinid和手机号 (开放数据的校验和解密 获取手机号)

    实际测试 两种方法都可以: 第一种方法: public static string DecodeUserInfo(string encryptedData, string iv, string cod ...

  6. paas saas iaas 区别

    最近在公司里面经常听到一些paas saas iaas云服务的名词,把我自己都听蒙圈啦,所以就各种找资料终于对这三个名词有了一定的了解 首先上一张图如下: IAAS(nfrastructure as ...

  7. PHP-MySQL基本操作

    PHP-MySQL基本操作 <?php // 1.防止页面中文乱码 header("content-type:text/html;charset=utf-8"); // 链接 ...

  8. centos7 + python 2.7 + pip + openvswitch 杂项问题

    问题1: virtual box 安装centos7 后,网口无ip, 解决方法是:配置网口上电后,默认状态为down,  修改“onboot=yes”, 修改后保存配置重启系统. 2. 安装pip的 ...

  9. C++ 重点关键字

    const 四种用法 1.修饰变量起到限定只读作用: void func(const int a, const string str) {...} const int* func(...) {...} ...

  10. Linux(DeepInOS) 下 mysql 的安装与基本配置

    索引: 目录索引 参看代码 GitHub: DeepIn(GNU/Linux) MySQL 一.安装 sudo apt-get install mysql-server 期间需要输入两次密码,root ...