(Logistic 回归实际上是处理分类问题的方法)

  • 动机

    在处理标签为二值的数据,即二分类任务时,如果使用基本的线性回归模型是无法准确预测的,应当以 “0”, “1”来作为模型的输出,从而判断数据的类别。所以 h(x)h(x) 的值域应当在 [0,1][0,1] 内,但是线性回归模型 h(x)=θXT+bh(x)=θX^T+b 不满足此种情形。

    我们需要对函数进行变换。

  • Logistic 回归

    为了根据 h(x)h(x) 函数输出值进行类别判断,我们可以使用阶跃函数,例如:

    g(h(x))={0,h(x)<0.51,h(x)0.5g(h(x))=\begin{cases} 0,h(x)<0.5\\ 1,h(x)\geq0.5 \end{cases}

    使用 g(h(x))g(h(x)) 作为模型的输出值作为预测结果。

    但是阶跃函数不满足单调可导性质,而后期优化需要求导,所以我们使用近似阶跃函数的替代函数,Sigmoid 函数:

    Sigmoid(z)=11+ezz=h(x)=θXT+bSigmoid(z)=\frac{1}{1+e^{-z}},其中 z=h(x)=θX^T+b

    此时令 h(x)=11+e(θXT+b)h(x) = \frac{1}{1+e^{-(θX^T+b)}}

    则此时的 h(x)h(x) 为模型的判别函数。

  • 优化

    在优化模型,即最小化损失函数时,因为 h(x)h(x) 值域为 [0,1][0,1] ,所以我们可以把其函数值视为分类时的概率 θθ

    y 0 1
    p 1-θ θ

    p(y=1x;θ)=θ=h(x)p(y=1|x;θ) = θ=h(x)
    p(y=0x;θ)=1θ=1h(x)p(y=0|x;θ) = 1-θ=1-h(x)

    p(yx;θ)=[h(x)]y[1h(x)]1yp(y|x;θ)=[h(x)]^y[1-h(x)]^{1-y} ,并以此作为损失函数。


    优化过程

    1. 写出似然函数
      假设全独立,

      l(θ)=i=1np(yixi;θ)=i=1n[h(x)]y[1h(x)]1yl(θ)=\prod_{i=1}^{n}p(y_i|x_i;θ)=\prod_{i=1}^{n}[h(x)]^y[1-h(x)]^{1-y}

    2. 取对数似然

      l(θ)=i=1nylog(h(x))+(1y)log(1h(x))l(θ)=\sum_{i=1}^{n} ylog(h(x))+(1-y)log(1-h(x))

    3. θθ 求偏导

      已知 h(x)=Sigmoid(x)h(x)=Sigmoid(x),对函数中各 θθ 求偏导:

      L(θ)θj=i=1n[yih(xi)]xij\frac{\partial L(θ)}{\partial θ_j}=\sum_{i=1}^{n}[y_i-h(x_i)]x_i^j

    4. 梯度下降算法更新 θθ

      θj:=θj+αL(θ)θj=αi=1n[yih(xi)]xijθ_j:=θ_j+α\frac{\partial L(θ)}{\partial θ_j}=α\sum_{i=1}^{n}[y_i-h(x_i)]x_i^j

  • 线性表示的角度(Logistic 分布、概率)来看

    z=θXTz=θX^T

    p(Y=1X)=ez1+ezp(Y=1|X)=\frac{e^z}{1+e^z}
    p(Y=0X)=11+ezp(Y=0|X)=\frac{1}{1+e^z}

    \bullet 一个事件的几率:opps=p1popps=\frac{p}{1-p},对数几率:logp1plog\frac{p}{1-p}

    \bullet 对于 Logistic 回归而言,logp(Y=1X)1p(Y=1X)=z=θXTlog\frac{p(Y=1|X)}{1-p(Y=1|X)}=z=θX^T

    即输出 Y=1Y=1 的对数几率是关于输入 X 的线性函数。
    z 越大,概率越接近 1;
    z 越小,概率越接近 0.

  • 凸优化的角度来看

    若用平方损失代入 Sigmoid 函数,会发现是非凸的。所以可以使用概率角度的极大似然估计进行计算。

    1. 写出似然函数,取对数似然 → 凸函数;
    2. 加“负号”,变为代价函数,转为求最小;
    3. 使用梯度下降。
  • 多分类

    假设有 3 个类别。

    1. one vs. one

      两两一组进行二分类,每两类得一条分类决策边界,共得到 6 个概率,取最大。
      机器学习 - Logistic 回归

      C1 为区分 蓝色三角 与 红色矩形 的决策边界,可获得某样本所属类别的两个概率 P(C1)P(蓝色三角 | C1)P(C1)P(红色矩形 | C1) ;

      C2 为区分 蓝色三角 与 绿色圆圈 的决策边界,可获得某样本所属类别的两个概率 P(C2)P(蓝色三角|C2)P(绿C2)P(绿色圆圈|C2)

      C3 为区分 红色矩形 与 绿色圆圈 的决策边界,可获得某样本所属类别的两个概率 P(C3)P(红色矩形|C3)P(绿C3)P(绿色圆圈|C3)

      从以上以上 6 个概率中选出最大值,即可判定此样本所属类别。

    2. one vs. all / rest

      将其中一类视为新的类别 A,其他两类视为新类别 B,每一类得到一条属于自己得决策边界,可计算出属于 类别 A 得概率,而 1-P(A) 为属于类别 B 得概率,最终相当于得到 3 个概率,取最大。

      机器学习 - Logistic 回归

      C1 为区分 蓝色三角 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P(C1)P(蓝色三角|C1)
      P(C1)=1P(C1)P(其他形状|C1) = 1 - P(蓝色三角|C1) );

      C2 为区分 绿色圆圈 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P(绿C2)P(绿色圆圈|C2)
      P(C2)=1P(绿C2)P(其他形状|C2) = 1 - P(绿色圆圈|C2) );

      C3 为区分 红色矩形 与 其他形状 的决策边界,可获得某样本所属类别的两个概率 P(C3)P(红色矩形|C3)
      P(C3)=1P(C3)P(其他形状|C3) = 1 - P(红色矩形|C3) );

      从以上 3 个概率P(C1)P(蓝色三角|C1)P(绿C2)P(绿色圆圈|C2)P(C3)P(红色矩形|C3)中选出最大值,即可判定此样本所属类别。

相关文章:

  • 2019-01-10
  • 2021-12-16
  • 2021-11-07
  • 2021-05-21
  • 2021-09-17
  • 2021-05-23
  • 2021-06-25
猜你喜欢
  • 2021-09-07
  • 2018-04-20
  • 2022-01-07
  • 2021-11-22
  • 2021-12-28
  • 2021-06-20
相关资源
相似解决方案