类别不平衡问题和Softmax回归



类别不平衡(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回归分类更为合适。

posted @ 2018-10-12 17:59  pestle  阅读(1265)  评论(0编辑  收藏  举报