机器学习:逻辑回归(Logistic Regression)
机器学习:逻辑回归(Logistic Regression)
Logistic Regression.
本文目录:
- 逻辑回归模型
- Logistic函数
- 交叉熵损失
- 梯度下降法
- 核逻辑回归
1. 逻辑回归模型
它是一种用于分类的核心算法。它基于一种映射方法将线性回归的结果转换为介于0和1之间的值。理想情况下使用Heaviside阶跃(unit-step) 函数进行映射;然而由于该 函数 不连续,在实际应用中我们采用Logistic(sigmoid) 函数 σ(⋅)来进行近似。
首先定义每个样本点x = (1, x_1, x_2, ..., x_d)^T属于实数空间\Bbb{R}^{d+1};接着设定权重参数w = (w_0, w_1, w_2, ..., w_d)^T同样位于\Bbb{R}^{d+1}空间中;最后说明这构成了逻辑回归模型的基础框架。
\hat{y} = σ(\sum_{j=0}^{d} {w_jx_j}) = σ(w^Tx)
2. Logistic函数
Logistic函数 又叫Sigmoid函数 ,其表达式、一阶导数和函数曲线如下:
\begin{aligned} σ(x)&= \frac{1}{1+e^{-x}} \\ σ'(x)&= σ(x)(1-σ(x)) \end{aligned}

注意到引入Logistic函数 后逻辑回归模型:
\hat{y} = σ(w^Tx) = \frac{1}{1+e^{-w^Tx}}
输出y=\frac{1}{1+e^{-w^Tx}}表示类别为1的概率,1-y=\frac{e^{-w^Tx}}{1+e^{-w^Tx}}表示类别为0的概率。
该表达式被称为概率比( odds )。它代表输入变量x属于类1的概率。**对数几率(log odds, logit)**可表示为:
\ln(\frac{y}{1-y}) = w^Tx
上式表明逻辑回归属于广义线性模型的一种,在实际应用中是通过将线性回归模型的预测结果进行变换来模拟真实标签的概率分布情况。这是因为其预测结果与真实标签之间的关系被建模为一个对数几率过程。因此,在统计学领域也常将其称为logit回归模型。
3. 交叉熵损失
逻辑回归采用的损失函数为交叉熵损失(cross-entropy loss) ,它源自于极大似然估计 的推导。
(1) 标签为0和1
把分类标签设置为y \in \{0,+1\}
Logistic函数 把输入压缩到0到1之间,可以看作对y预测的概率:
\begin{aligned} P(y=1 | x) &= σ(w^Tx) \\ P(y=0 | x) &= 1-σ(w^Tx) \end{aligned}
上式表示预测结果服从Bernoulli分布 ,可以表达为:
P(y | x) = {σ(w^Tx)}^{y}{(1-σ(w^Tx))}^{1-y}
若样本集X=\{x^{(1)},...,x^{(N)}\},标签集y=\{y^{(1)},...,y^{(N)}\},列出对数似然方程:
\begin{aligned} & \text{该表达式表示输入向量经过权重矩阵计算后经过sigmoid函数作用并与其对应标记值相乘后的自然对数值总和的变化过程。\quad 即:}\quad \\ & \text{首先对该连乘结果取自然对数得到一个总和形式。\quad 其次将每一项分别取自然对数后再进行求和。\quad 最后将其拆分为两部分之和即为所求的结果。\quad 具体来说:}\quad \\ & = \sum_{i=1}^N [ y_i \cdot ln(\sigma(\mathbf{w}^\top \mathbf{x}_i)) + (1 - y_i) \cdot ln(1 - σ(\mathbf{w}^\top \mathbf{x}_i)) ] \end{aligned}
极大化似然概率等价于极小化以下损失函数:
L(w) = \sum_{i=1}^{N} {-y^{(i)}\ln(σ(w^Tx^{(i)})) - (1-y^{(i)})\ln(1-σ(w^Tx^{(i)}))}
上式为具有熵的形式(-p\log p),因此称为交叉熵损失(cross-entropy loss) 。
若希望损失函数为零,则需:
\begin{cases} w^Tx → +∞, & y=1 \\ w^Tx → -∞, & y=0 \end{cases}
此时要求数据集是线性可分的。
(2) 标签为±1
一种方法是定义分类标签y的取值范围为\{-1,+1\}, 从而使得该表示与感知机、支持向量机等模型的一致
由Logistic函数 的性质:1-σ(x)=σ(-x);输出概率为:
\begin{aligned} P(y=1 | x) &= σ(w^Tx) \\ P(y=-1 | x) &= 1-σ(w^Tx) = σ(-w^Tx) \end{aligned}
或者统一写为:
P(y | x) = σ(yw^Tx)
若样本集X=\{x^{(1)},...,x^{(N)}\},标签集y=\{y^{(1)},...,y^{(N)}\},列出对数似然方程:
\ln(\prod_{i=1}^{N} {σ(y^{(i)}w^Tx^{(i)})} = \sum_{i=1}^{N} {\ln(σ(y^{(i)}w^Tx^{(i)}))}
似然概率极大化,等价于以下损失函数极小化:
\begin{aligned} L(w) &= \sum_{i=1}^{N} {-\ln(σ(y^{(i)}w^Tx^{(i)}))} \\ &= \sum_{i=1}^{N} {\ln(1+\exp(-y^{(i)}w^Tx^{(i)}))} \end{aligned}
上式也为交叉熵损失(cross-entropy loss) 。
(3) 损失函数的比较
当标签为±1时,比较感知机、线性回归和逻辑回归的损失函数:
- 感知机模型主要采用的是二元分类损失函数。
- 在线性回归中,模型的目标是最小化平方误差.
- 逻辑回归算法基于对数似然损失函数进行优化.
- 当采用自然对数时的交叉熵计算公式为\log_2(1+\exp(-ywx))=\frac{1}{\ln 2}\ln(1+\exp(-ywx))
经过换底后的交叉熵损失和平方损失都是0/1损失的上界:

可以看出,在0/1损失方面整体表现更好(数值上更低),但其优化难度较大(属于NP-hard问题);相比之下,在均方误差和交叉熵等指标上表现欠佳(数值上更高),不过这些问题可以通过将模型转换为凸优化问题来解决(即通过解析解或梯度下降法找到最优解)。
4. 梯度下降法
该逻辑回归模型采用交叉熵损失函数作为目标函数,并且该优化问题属于无约束型的问题,在这种情况下可以使用梯度下降算法进行求解
以标签为0和1的交叉熵损失为例:
L(w) = \sum_{i=1}^{N} {-y^{(i)}\ln(σ(w^Tx^{(i)})) - (1-y^{(i)})\ln(1-σ(w^Tx^{(i)}))}
求损失L(w)的梯度:
\begin{aligned} &\text{梯度}\nabla_w \text{损失函数}L(w) \text{被定义为} \\ &\nabla_w L(w) = \nabla_w\sum_{i=1}^{N} -y^{(i)}\ln(\sigma(w^T x^{(i)})) - (1-y^{(i)})\ln(1-\sigma(w^T x^{(i)})) \\ &\quad = \sum_{i=1}^{N} [-y^{(i)} \cdot \nabla_w \ln(\sigma(w^T x^{(i)})) - (1-y^{(i)}) \cdot \nabla_w \ln(1-\sigma(w^T x^{(i)}))] \\ &\quad = \sum_{i=1}^{N} [-y^{(i)} (1-\sigma(w^T x^{(i)}))x^{(i)} + (1-y^{(i)})\sigma(w^T x^{(i)})x^{(i)}] \\ &\quad = \sum_{i=1}^{N} [-(y^{(i)} - \sigma(w^T x^{(i)}))x^{(i)}] \\ &\quad = -X^T(Y - \sigma(w^T X)) \end{aligned}
因此参数w的更新过程为:
w^{(t+1)} \leftarrow w^{(t)} +\eta X^{T}(Y-σ(w^TX))
5. 核逻辑回归
通过应用核方法到逻辑回归中进行分析和建模工作,则能够获得更为灵活的分类边界,并最终导出一个基于Kernel-based Logistic Regression 的分类器。该分类器相对于传统的线性模型而言具有更强的学习能力以及更高的泛化性能。
使用L2正则化的逻辑回归的损失函数(标签为0和1)如下:
L(w) = \sum_{i=1}^{N} {-y^{(i)}\ln(σ(w^Tx^{(i)})) - (1-y^{(i)})\ln(1-σ(w^Tx^{(i)}))} + \frac{λ}{N}w^Tw
由表示定理,权重最优解可以表示为:
w^* = \sum_{n=1}^{N} {β_nx^{(n)}}
代入损失函数为:
L(β) = \sum_{i=1}^{N} {-y^{(i)}\ln(σ(\sum_{n=1}^{N} {β_n{x^{(n)}}^Tx^{(i)}})) - (1-y^{(i)})\ln(1-σ(\sum_{n=1}^{N} {β_n{x^{(n)}}^Tx^{(i)}}))} \\ + \frac{λ}{N}\sum_{i=1}^{N} {\sum_{j=1}^{N} {β_iβ_j{x^{(i)}}^Tx^{(j)}}}
通过引入核函数K(x,x')={φ(x)}^Tφ(x')来替代样本的特征转换与内积运算,则其对应的损失函数即为:
L(β) = \sum_{i=1}^{N} {-y^{(i)}\ln(σ(\sum_{n=1}^{N} {β_nK(x^{(n)},x^{(i)})})) - (1-y^{(i)})\ln(1-σ(\sum_{n=1}^{N} {β_nK(x^{(n)},x^{(i)})}))} \\ + \frac{λ}{N}\sum_{i=1}^{N} {\sum_{j=1}^{N} {β_iβ_jK(x^{(i)},x^{(j)})}}
这是一个无约束的优化问题,可以用梯度下降法求解。
