zoukankan      html  css  js  c++  java
  • 类别不平衡问题和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} imes frac{m^-}{m^+} ]


    Softmax回归模型

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

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

    对于给定的测试输入(x),用假设函数针对每一个类别(j)估算出概率值(p(y=j|x)),即估计(x)的每一种分类结果出现的概率。因此,假设函数为:

    [h_ heta(x^{(i)})=egin{bmatrix} p(y^{(i)}=1|x^{(i)}; heta)\ p(y^{(i)}=2|x^{(i)}; heta)\ vdots \ p(y^{(i)}=k|x^{(i)}; heta) end{bmatrix}=frac{1}{sum_{j=1}^k}egin{bmatrix} e^{ heta_1^Tx^{(i)}}\ e^{ heta_2^Tx^{(i)}}\ vdots\ e^{ heta_k^Tx^{(i)}} end{bmatrix}]

    在Softmax回归中,将(x)分类为类别(j)的概率为:

    [p(y^{(i)}=j|x^{(i)}; heta)=frac{e^{ heta_j^Tx^{(i)}}}{sum_{l=1}^ke^{ heta_l^Tx^{(i)}}} ]

    其代价函数为:

    [J( heta)=-frac{1}{m}[sum_{i=1}^msum_{j=0}^kI{y^{(i)}=j}logfrac{e^{ heta_j^Tx^{(i)}}}{sum_{l=1}^ke^{ heta_l^Tx^{(i)}}}] ]

    其中,(I{cdot})是示性函数。

    对于(J( heta))的最小化问题,使用迭代的优化算法(梯度下降法、L-BFGS)。经求导,其梯度为:

    [ riangledown _{ heta_j}J( heta)=-frac{1}{m}sum_{i=1}^m[x^{(i)}(I{y^{(i)}=j}-p(y^{(i)}=j|x^{(i)}; heta))] ]

    其中,( riangledown _{ heta_j}J( heta))本身是一个向量,它的第(l)个元素(frac{partial J( heta)}{partial heta_{jl}})(J( heta))( heta_j)的第(l)个分量的偏导数。

    每一次迭代,需进行如下的更新:

    [ heta_j:= heta_j-alpha igtriangledown _{ heta_j}J( heta), j=1,cdots,k ]


    引入权重衰减(weight decay)项

    衰减项会惩罚过大的参数值,代价函数为:

    [J( heta)=-frac{1}{m}[sum_{i=1}^msum_{j=0}^kI{y^{(i)}=j}logfrac{e^{ heta_j^Tx^{(i)}}}{sum_{l=1}^ke^{ heta_l^Tx^{(i)}}}]+frac{lambda}{2}sum_{i=1}^ksum_{j=0}^n heta_{ij}^2 ]

    其中,(lambda>0),此时代价函数变成严格的凸函数。使用优化算法,得到新函数(J( heta))的导数:

    [ riangledown _{ heta_j}J( heta)=-frac{1}{m}sum_{i=1}^m[x^{(i)}(I{y^{(i)}=j}-p(y^{(i)}=j|x^{(i)}; heta))]+lambda heta_j ]

    通过最小化(J( heta)),就能实现一个可用Softmax回归模型。


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

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

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

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

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

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

  • 相关阅读:
    Java 线程池概念、原理、简单实现
    Java 中的等待唤醒机制透彻讲解
    Java 多线程安全问题简单切入详细解析
    理解 Java 多线程
    Java 异常的处理
    Android MediaPlayer的生命周期
    Node.js 撸第一个Web应用
    Android简易实战教程--第三十四话《 自定义SeekBar以及里面的一些小知识》
    使用Intent传递对象
    Android 异步查询框架AsyncQueryHandler的使用
  • 原文地址:https://www.cnblogs.com/wjq-Law/p/9779660.html
Copyright © 2011-2022 走看看