美文网首页
机器学习 - 逻辑回归

机器学习 - 逻辑回归

作者: nlpming | 来源:发表于2021-06-12 00:13 被阅读0次

LR简介

  • 逻辑回归(Logistic Regression)是机器学习经典算法之一。虽然名为回归,但是其实一个分类算法,常用于解决二分类问题。在线性回归中,我们通过线性函数 h(x) = w^Tx 来预测第 i 个样本y_i的值。虽然不能直接应用于二分类问题中(y_i \in \{0,1\})。为了预测二分类问题结果的概率,逻辑回归在线性回归的基础上引入了sigmoid函数。

  • sigmoid函数表达式如下,它是一个连续单调递增的S型函数,可以将任意值映射为0 ~ 1之间的一个新值。在机器学习中,经常使用该函数将预测值映射为概率值。


    sigmoid函数.png
  • 此时,二分类的条件概率可以表示为:
    p(Y=1|x ) = h(x) = \frac{1}{1 + e^{-w^Tx}} \\ p(Y=0|x) = 1 - p(Y=1|x) = 1 - h(x)

  • 上式中,p(Y=1|x)表示在特征x的条件下类别为1的概率,p(Y=0|x) 表示类别为0的概率。

  • h_w(x)(sigmoid函数)对 w_j 偏导数求解如下:
    h_w(x) = \frac{1}{1 + e^{-w^Tx}} \\

\begin{align} \frac{\partial h_w(x)}{\partial w_j} &= \frac{1}{(1+e^{-w^Tx})^2} e^{-w^Tx} x_j \\ &= \frac{1}{(1+e^{-w^Tx})} \frac{e^{-w^Tx}}{(1+e^{-w^Tx})} x_j \\ &= h_w(x)(1-h_w(x))x_j \tag{公式1} \end{align}

逻辑回归损失函数

  • 逻辑回归输出的是样本属于每个类别的概率,采用的参数估计方法是最大似然估计。 假设有一组相互独立的训练样本 \{ (x^{(i)}, y^{(i)}); i = 1,2,...,m) \},样本的类别y^{(i)} \in \{0,1\}首先将二分类条件概率的两个公式结合起来,可以写为
    p(y^{(i)}|x^{(i)}; w) = (h_w(x^{(i)}))^{y^{(i)}} (1-h_w(x^{(i)}))^{1 - y^{(i)}}

  • 则样本的似然函数为:
    L(w) = \prod_{i=1}^{m} (h_w(x^{(i)}))^{y^{(i)}} (1-h_w(x^{(i)}))^{1 - y^{(i)}}

  • 对上述公式取对数,得到对数似然函数
    l(w) = logL(w) = \sum_{i=1}^{m} (y^{(i)}logh_w(x^{(i)}) + (1-y^{(i)})log(1-h_w(x^{(i)})))

  • 类似线性回归损失函数,逻辑回归损失函数是在l(w)的基础上乘以- \frac{1}{m}得到: ,下述损失函数也称为 交叉熵损失函数,或负对数似然损失;
    J(w) = - \frac{1}{m} \sum_{i=1}^{m} (y^{(i)}logh_w(x^{(i)}) + (1-y^{(i)})log(1-h_w(x^{(i)})))

权重w_j的更新公式

  • 使用梯度下降法求解逻辑回归模型的参数。根据梯度下降法,参数w_j更新公式为:
    w_j = w_j - \alpha \frac{\partial J(w)}{\partial w_j}, (j=1,2,...,n)
    \begin{align} \frac{\partial J(w)}{\partial w_j} &= -\frac{1}{m} \sum_{i=1}^{m} y^{(i)} \frac{1}{h_w(x^{(i)})} \frac{\partial h_w(x^{(i)})}{\partial w_j} - (1-y^{(i)}) \frac{1}{1-h_w(x^{(i)})} \frac{\partial h_w(x^{(i)})}{\partial w_j} \\ &= -\frac{1}{m} \sum_{i=1}^{m} y^{(i)} (1-h_w(x^{(i)}))x_j - (1-y^{(i)}) h_w(x^{(i)})x_j \\ &= \frac{1}{m} \sum_{i=1}^{m} (h_w(x^{(i)}) - y^{(i)})x_j \end{align}

  • 最终,逻辑回归参数 w_j更新公式如下:
    w_j = w_j - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_w(x^{(i)}) - y^{(i)})x_j, (j=1,2,...,n)

softmax回归

  • 逻辑回归可以很好地解决二分类问题。那么对于多分类问题如何处理呢?此时需要用到softmax回归模型。可以将softmax回归理解为逻辑回归模型在多分类问题的推广,不同的是分类标签由2个变成了多个。最有名的多分类问题就是MNIST手写数组识别任务,其类别标签有10个。
  • 首先来看softmax函数形式,假设给定输入特征x,函数给定每一个类别j的预测概率为p(y=j|x),总共有k个类别,则softmax函数形式为如下:softmax将一个向量变成了一个概率分布,使得所有概率之和为1;
    P(Y=j|x; w) = \frac{e^{w_j^Tx}}{\sum_{l=1}^{k} e^{w_l^Tx}}
  • softmax损失函数定义如下:当类别数k为2时,softmax回归退化为逻辑回归; 下式中I(.)为指示函数;
    J(w) = -\frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k} I\{y^{(i)} = j\} log P(y^{(i)} = j|x^{(i)}; w) \right]

注意:
(1)逻辑回归可以很好地解决二分类问题,经过适当应用也能解决多分类问题。对于多分类问题,为每个类别分别建立一个二分类器,如果有k个类别,则建立k个二分类器;
(2)通过softmax回归和多个二分类器都可以解决多分类问题,那么该如何选择呢?这取决于多分类问题中,类别之间是否互斥,即样本能否同时属于多个类别。如果类别之间是互斥的,样本不可能同时属于多个类别,则选择softmax回归。如果样本之间不是互斥的,则选择多个二分类器更为合适。

参考资料

  • 《深入理解XGBoost:高效机器学习算法与进阶》 - 何龙

相关文章

网友评论

      本文标题:机器学习 - 逻辑回归

      本文链接:https://www.haomeiwen.com/subject/huxmeltx.html