西瓜书+南瓜书 第3章 对数几率回归

256 阅读2分钟

1. 基本概念

对数几率回归(Logistic Regression),尽管名字中包含“回归”,但它主要用于分类任务。它通过使用线性回归模型的输出逼近真实标记的对数几率。

2. 对数几率函数

对数几率函数(Logistic Function),也称为Sigmoid函数,是一种将线性回归模型的输出转换为概率的函数,其形式为:

p(y=1x;β)=11+e(wTx+b)p(y=1|\mathbf{x};\beta) = \frac{1}{1 + e^{-(\mathbf{w}^T\mathbf{x} + b)}}

其中,x\mathbf{x} 是特征向量,w\mathbf{w} 是权重向量,bb 是偏置项,β=(w;b)\beta = (\mathbf{w}; b)

3. 几率(Odds)

几率是正例与反例发生概率的比值,用

p(y=1x;β)1p(y=1x;β)\frac{p(y=1|\mathbf{x};\beta)}{1 - p(y=1|\mathbf{x};\beta)}

表示。

4. 对数几率(Log Odds)

对数几率是几率的自然对数,即

log(p(y=1x;β)1p(y=1x;β))\log\left(\frac{p(y=1|\mathbf{x};\beta)}{1 - p(y=1|\mathbf{x};\beta)}\right)

5. 模型优化

使用极大似然法来估计模型参数 w\mathbf{w}bb,即最大化对数似然函数:

(w,b)=i=1n[yilog(p(yi=1xi;β))+(1yi)log(1p(yi=1xi;β))]\ell(\mathbf{w}, b) = \sum_{i=1}^{n} [y_i \log(p(y_i=1|\mathbf{x}_i;\beta)) + (1 - y_i) \log(1 - p(y_i=1|\mathbf{x}_i;\beta))]

极大似然函数可以转换为最小化损失函数(二元交叉熵损失函数),通常使用数值优化算法求解,如梯度下降法或牛顿法。

  • 梯度下降法

梯度下降法通过迭代更新权重和偏置项来最小化损失函数。

  • 牛顿法

牛顿法是一种更高效的优化算法,它利用函数的二阶导数来加速收敛。其迭代更新公式为: βt+1=βt(2(β)ββT)1(β)β\beta^{t+1}=\beta^t-\left(\frac{\partial^2\ell(\beta)}{\partial\beta\:\partial\beta^\mathrm{T}}\right)^{-1}\frac{\partial\ell\left(\beta\right)}{\partial\beta}

6. 优点

  • 对数几率回归不依赖于数据分布的假设,避免了分布假设不准确带来的问题。
  • 它提供了概率预测,对于需要概率信息辅助决策的任务非常有用。
  • Sigmoid函数是可导的凸函数,具有良好的数学性质,使得优化算法易于实现。

补充

考虑二分类任务,其输出标记 y{0,1}y\in\{0,1\}而线性回归模型产生的预测值 z=wTx+bz=\boldsymbol{w}^\mathrm{T}x+b 是实值,于是,我们需将实值 zz 转换为 0/1 值。最理想的是“单位阶跃函数”(unit-step function)

y={0,z<0;0.5,z=0;1,z>0.y=\begin{cases}0, &z<0;\\ 0.5, &z=0;\\ 1, &z>0.\end{cases}

对数几率回归通过以下公式将线性回归的输出转换为对数几率:

lnp(y=1x)p(y=0x)=wTx+b.\ln\frac{p(y=1\mid\boldsymbol{x})}{p(y=0\mid\boldsymbol{x})}=\boldsymbol{w}^\mathrm{T}\boldsymbol{x}+b.

由此,我们可以得到概率预测公式:

p(y=1x)=ewTx+b1+ewTx+b,p(y=1\mid\boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}+b}},
p(y=0x)=11+ewTx+b.p(y=0\mid\boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}+b}}.

在牛顿法中,第 t+1t+1 轮迭代解的更新公式为:

βt+1=βt(2(β)ββT)1(β)β.\beta^{t+1}=\beta^t-\left(\frac{\partial^2\ell(\beta)}{\partial\beta\:\partial\beta^\mathrm{T}}\right)^{-1}\frac{\partial\ell\left(\beta\right)}{\partial\beta}.

关于β\beta 的一阶导数和二阶导数分别为:

(β)β=i=1mx^i(yip1(x^i;β)),\frac{\partial\ell\left(\boldsymbol{\beta}\right)}{\partial\boldsymbol{\beta}}=-\sum_{i=1}^m\hat{\boldsymbol{x}}_i(y_i-p_1(\hat{\boldsymbol{x}}_i;\boldsymbol{\beta})),
2(β)ββT=i=1mx^ix^iTp1(x^i;β)(1p1(x^i;β)).\frac{\partial^{2}\ell\left(\boldsymbol{\beta}\right)}{\partial\boldsymbol{\beta}\partial\boldsymbol{\beta}^{\mathrm{T}}}=\sum_{i=1}^{m}\hat{\boldsymbol{x}}_{i}\hat{\boldsymbol{x}}_{i}^{\mathrm{T}}p_{1}(\hat{\boldsymbol{x}}_{i};\boldsymbol{\beta})(1-p_{1}(\hat{\boldsymbol{x}}_{i};\boldsymbol{\beta})).

参考文献: