逻辑回归

逻辑回归(Logistic Regression)可以说是机器学习领域最基础也是最常用的模型,逻辑回归的原理推导以及扩展应用几乎是算法工程师的必备技能。

医生病理诊断、银行个人信用评估、邮箱分类垃圾邮件等,无不体现逻辑回归精巧而广泛的应用。本小节将从模型与原理出发,涵盖扩展与应用,一探逻辑回归的真谛。

逻辑回归,线性回归,多标签分类,Softmax

逻辑回归相比于线性回归,有何异同?

逻辑回归,乍一听名字似乎和数学中的线性回归问题异派同源,但其本质却是大相径庭。

首先,逻辑回归处理的是分类问题,线性回归处理的是回归问题,这是两者的最本质的区别。是的。

逻辑回归中,因变量取值是一个二元分布,模型学习得出的是 \(y=\theta^Tx+\epsilon\) 的一个近似,其中 \(\epsilon\) 代表误差项,我们使用这个近似项来处理回归问题。

分类和回归是如今机器学习中两个不同的任务,而属于分类算法的逻辑回归,其命名有一定的历史原因。这个方法最早由统计学家David Cox在他1958年的论文《二元序列中的回归分析》(The regression analysis of binary sequences)中提出,当时人们对于回归与分类的定义与今天有一定区别,只是将“回归”这一名字沿用了。

实际上,将逻辑回归的公式进行整理,我们可以得到 \(\frac{p}{1-p}\),那么逻辑回归可以看作是对于“y=1|x”这一事件的对数几率的线性回归,于是“逻辑回归”这一称谓也就延续了下来。?这个地方什么意思?

在关于逻辑回归的讨论中,我们均认为\(y\)是因变量,而非 \(\frac{p}{1-p}\),这便引出逻辑回归与线性回归最大的区别,即逻辑回归中的因变量为离散的,而线性回归中的因变量是连续的。并且在自变量 \(x\) 与超参数\(\theta\)确定的情况下,逻辑回归可以看作广义线性模型(Generalized Linear Models)在因变量\(y\)服从二元分布时的一个特殊情况;而使用最小二乘法求解线性回归时,我们认为因变量 \(y\) 服从正态分布。嗯嗯,这个地方乍一看还有点奇怪,不过一想又的确是这样。很好。

当然逻辑回归和线性回归也不乏相同之处:这个地方再补充细一点。

  • 首先,我们可以认为二者都使用了极大似然估计来对训练样本进行建模:
  • 线性回归使用最小二乘法,实际上就是在自变量\(x\)与超参数\(θ\)确定,因变量\(y\)服从正态分布的假设下,使用极大似然估计的一个化简;
  • 而逻辑回归中通过对似然函数 \(L(\theta)=\prod_{i=1}^{N}P(y_i|x_i;\theta)=\prod_{i=1}^{N}(\pi(x_i))^{y_i}(1-\pi(x_i))^{1-y_i}\)的学习,得到最佳参数\(θ\)
  • 另外,二者在求解超参数的过程中,都可以使用梯度下降的方法,这也是监督学习中一个常见的相似之处。

当使用逻辑回归处理多标签的分类问题时,有哪些常见做法,分别应用于哪些场景,它们之间又有怎样的关系?

是呀,一直对逻辑回归处理多标签问题时有点不是很透彻。

再按照自己的思路写下。

使用哪一种办法来处理多分类的问题取决于具体问题的定义。

如果一个样本只对应于一个标签

首先,如果一个样本只对应于一个标签,我们可以假设每个样本属于不同标签的概率服从于几何分布,使用多项逻辑回归(Softmax Regression)来进行分类:

\[ h_{\theta}(x)=\left[ \begin{array}{c}{p(y=1 | x ; \theta)} \\ {p(y=2 | x ; \theta)} \\ {\vdots} \\ {p(y=k | x ; \theta)}\end{array}\right]=\frac{1}{\sum_{j=1}^{k} \mathrm{e}^{\theta_{j}^{\mathrm{T}} x}} \left[ \begin{array}{c}{\mathrm{e}^{\theta_{1}^{\mathrm{T}} x}} \\ {\mathrm{e}^{\theta_{2}^{\mathrm{T}} x}} \\ {\vdots} \\ {\mathrm{e}^{\theta_{k}^{\mathrm{T}} x}}\end{array}\right] \]

其中 \(\theta_1,\theta_2,...\theta_k\in \mathbb{R}^n\) 为模型的参数,而 \(\frac{1}{\sum_{j=1}^{k}e^{\theta_j^Tx}}\) 可以看作是对概率的归一化。为了方便起见,我们将这k个列向量按顺序排列形成 n×k 维矩阵,写作\(θ\),表示整个参数集。一般来说,多项逻辑回归具有参数冗余的特点,即将 \(\theta_1,\theta_2,...\theta_k\) 同时加减一个向量后预测结果不变。特别地,当类别数为2时:

\[ h_{\theta}(x)=\frac{1}{\mathrm{e}^{\theta_{1}^{\mathrm{T}} x}+\mathrm{e}^{\theta_{2}^{\mathrm{T}}} x} \left[ \begin{array}{c}{\mathrm{e}^{\theta_{1}^{\mathrm{T}} x}} \\ {\mathrm{e}^{\theta_{2}^{\mathrm{T}} x}}\end{array}\right]\tag{3.16} \]

利用参数冗余的特点,我们将所有参数减去 \(\theta_1\),式(3.16)变为:这个地方的公式重新整理下

\[ \begin{aligned} h_{\theta}(x)&=\frac{1}{\mathrm{e}^{0 \cdot x}+\mathrm{e}^{\left(\theta_{2}^{\mathrm{T}}-\theta_{1}^{\mathrm{T}}\right) x}} \left[ \begin{array}{c}{\mathrm{e}^{0 \cdot x}} \\ {\mathrm{e}^{\left(\theta_{2}^{\mathrm{T}}-\theta_{1}^{\mathrm{T}}\right) x} }\end{array}\right]\\&=\left[ \begin{array}{c}{\frac{1}{1+\mathrm{e}^{\theta^{\mathrm{T}} x}}} \\ {1-\frac{1}{1+\mathrm{e}^{\theta^{\mathrm{T}} x}}}\end{array}\right] \end{aligned}\tag{3.17} \]

其中 \(\theta=\theta_2-\theta_1\) 。而整理后的式子与逻辑回归一致。因此,多项逻辑回归实际上是二分类逻辑回归在多标签分类下的一种拓展。

当存在样本可能属于多个标签的情况时

当存在样本可能属于多个标签的情况时,我们可以训练 \(k\) 个二分类的逻辑回归分类器。第 \(i\) 个分类器用以区分每个样本是否可以归为第 \(i\) 类,训练该分类器时,需要把标签重新整理为 “第 \(i\) 类标签” 与 “非第 \(i\) 类标签” 两类。通过这样的办法,我们就解决了每个样本可能拥有多个标签的情况。是的,竟然写在这么不起眼的地方。。

原文及相关

  • 《百面机器学习》