逻辑回归模型

逻辑回归的概率模型与推导

一、二分类逻辑回归与二项分布

1. 模型假设\textbf{1. 模型假设}1. 模型假设
给定特征向量 x∈Rp\mathbf{x} \in \mathbb{R}^pxRp,二分类逻辑回归假设样本标签 y∈{0,1}y \in \{0, 1\}y{0,1}服从伯努利分布:
P(y=1∣x;θ)=hθ(x)=σ(θTx) P(y=1 \mid \mathbf{x}; \boldsymbol{\theta}) = h_{\boldsymbol{\theta}}(\mathbf{x}) = \sigma(\boldsymbol{\theta}^T \mathbf{x}) P(y=1x;θ)=hθ(x)=σ(θTx)
其中 σ(z)=11+e−z\sigma(z) = \frac{1}{1+e^{-z}}σ(z)=1+ez1 是Sigmoid函数,将线性得分 z=θTxz = \boldsymbol{\theta}^T \mathbf{x}z=θTx 映射到概率区间 [0,1][0,1][0,1]

2. 二项分布表示\textbf{2. 二项分布表示}2. 二项分布表示
单个样本的概率质量函数(PMF)可写为:
P(y∣x;θ)=[hθ(x)]y⋅[1−hθ(x)]1−y P(y \mid \mathbf{x}; \boldsymbol{\theta}) = [h_{\boldsymbol{\theta}}(\mathbf{x})]^y \cdot [1 - h_{\boldsymbol{\theta}}(\mathbf{x})]^{1-y} P(yx;θ)=[hθ(x)]y[1hθ(x)]1y
对于 nnn 个独立同分布样本,其联合概率(似然函数)为:
L(θ)=∏i=1nP(yi∣xi;θ)=∏i=1n[hθ(xi)]yi⋅[1−hθ(xi)]1−yi L(\boldsymbol{\theta}) = \prod_{i=1}^n P(y_i \mid \mathbf{x}_i; \boldsymbol{\theta}) = \prod_{i=1}^n [h_{\boldsymbol{\theta}}(\mathbf{x}_i)]^{y_i} \cdot [1 - h_{\boldsymbol{\theta}}(\mathbf{x}_i)]^{1-y_i} L(θ)=i=1nP(yixi;θ)=i=1n[hθ(xi)]yi[1hθ(xi)]1yi
3. 对数似然函数\textbf{3. 对数似然函数}3. 对数似然函数
取对数得到对数似然函数:
ℓ(θ)=log⁡L(θ)=∑i=1n[yilog⁡hθ(xi)+(1−yi)log⁡(1−hθ(xi))]\ell(\boldsymbol{\theta}) = \log L(\boldsymbol{\theta}) = \sum_{i=1}^n \left[ y_i \log h_{\boldsymbol{\theta}}(\mathbf{x}_i) + (1-y_i) \log (1 - h_{\boldsymbol{\theta}}(\mathbf{x}_i)) \right](θ)=logL(θ)=i=1n[yiloghθ(xi)+(1yi)log(1hθ(xi))]
4. 梯度计算\textbf{4. 梯度计算}4. 梯度计算
ℓ(θ)\ell(\boldsymbol{\theta})(θ) 求关于 θ\boldsymbol{\theta}θ 的梯度:
∂ℓ(θ)∂θj=∑i=1n[yi1hθ(xi)⋅∂hθ(xi)∂θj−(1−yi)11−hθ(xi)⋅∂hθ(xi)∂θj]\frac{\partial \ell(\boldsymbol{\theta})}{\partial \theta_j} = \sum_{i=1}^n \left[ y_i \frac{1}{h_{\boldsymbol{\theta}}(\mathbf{x}_i)} \cdot \frac{\partial h_{\boldsymbol{\theta}}(\mathbf{x}_i)}{\partial \theta_j} - (1-y_i) \frac{1}{1 - h_{\boldsymbol{\theta}}(\mathbf{x}_i)} \cdot \frac{\partial h_{\boldsymbol{\theta}}(\mathbf{x}_i)}{\partial \theta_j} \right]θj(θ)=i=1n[yihθ(xi)1θjhθ(xi)(1yi)1hθ(xi)1θjhθ(xi)]
其中,Sigmoid 函数的导数为:
∂σ(z)∂z=σ(z)(1−σ(z))\frac{\partial \sigma(z)}{\partial z} = \sigma(z)(1 - \sigma(z))zσ(z)=σ(z)(1σ(z))
代入得:
∂hθ(xi)∂θj=∂σ(θTxi)∂θj=xij⋅σ(θTxi)(1−σ(θTxi)) \frac{\partial h_{\boldsymbol{\theta}}(\mathbf{x}_i)}{\partial \theta_j} = \frac{\partial \sigma(\boldsymbol{\theta}^T \mathbf{x}_i)}{\partial \theta_j} = x_{ij} \cdot \sigma(\boldsymbol{\theta}^T \mathbf{x}_i)(1 - \sigma(\boldsymbol{\theta}^T \mathbf{x}_i)) θjhθ(xi)=θjσ(θTxi)=xijσ(θTxi)(1σ(θTxi))
因此梯度简化为:
∂ℓ(θ)∂θj=∑i=1nxij⋅(yi−σ(θTxi)) \frac{\partial \ell(\boldsymbol{\theta})}{\partial \theta_j} = \sum_{i=1}^n x_{ij} \cdot \left( y_i - \sigma(\boldsymbol{\theta}^T \mathbf{x}_i) \right) θj(θ)=i=1nxij(yiσ(θTxi))
写成向量形式:
∇θℓ(θ)=∑i=1nxi(yi−hθ(xi)) \nabla_{\boldsymbol{\theta}} \ell(\boldsymbol{\theta}) = \sum_{i=1}^n \mathbf{x}_i \left( y_i - h_{\boldsymbol{\theta}}(\mathbf{x}_i) \right) θ(θ)=i=1nxi(yihθ(xi))

逻辑回归的正则化

正则化是用来防止模型过拟合的过程,常用的有 L1 正则化和 L2 正则化。

  • L1 正则化
    损失函数为:−1m∑i=1n[yilog⁡hθ(xi)+(1−yi)log⁡(1−hθ(xi))]+λ∑j=1n∣θj∣-\frac{1}m\sum_{i=1}^n \left[ y_i \log h_{\boldsymbol{\theta}}(\mathbf{x}_i) + (1-y_i) \log (1 - h_{\boldsymbol{\theta}}(\mathbf{x}_i)) \right] +\lambda\sum_{j=1}^{n} |\theta_j|m1i=1n[yiloghθ(xi)+(1yi)log(1hθ(xi))]+λj=1nθj
    训练完毕之后,L1 正则化中可能会把部分参数 θk\theta_kθk 压缩为0,这是因为低阶无穷小接近0的速度更快,所以 L1 正则化适用于某些特征选择场景,减少模型复杂度
  • L2 正则化
    损失函数为:−1m∑i=1n[yilog⁡hθ(xi)+(1−yi)log⁡(1−hθ(xi))]+λ∑j=1nθj2-\frac{1}m\sum_{i=1}^n \left[ y_i \log h_{\boldsymbol{\theta}}(\mathbf{x}_i) + (1-y_i) \log (1 - h_{\boldsymbol{\theta}}(\mathbf{x}_i)) \right] +\lambda\sum_{j=1}^{n} \theta_j^2m1i=1n[yiloghθ(xi)+(1yi)log(1hθ(xi))]+λj=1nθj2
    训练完毕以后,会保留所有特征,只是会降低部分特征的影响

二、多分类逻辑回归与多项分布

1. 模型假设\textbf{1. 模型假设}1. 模型假设
对于 KKK 分类问题(y∈{1,2,…,K}y \in \{1, 2, \dots, K\}y{1,2,,K}),多项逻辑回归假设样本属于类别 kkk 的概率为:
P(y=k∣x;Θ)=eθkTx∑j=1KeθjTx,k=1,2,…,K P(y=k \mid \mathbf{x}; \boldsymbol{\Theta}) = \frac{e^{\boldsymbol{\theta}_k^T \mathbf{x}}}{\sum_{j=1}^K e^{\boldsymbol{\theta}_j^T \mathbf{x}}}, \quad k = 1, 2, \dots, K P(y=kx;Θ)=j=1KeθjTxeθkTx,k=1,2,,K其中 Θ=[θ1,θ2,…,θK]\boldsymbol{\Theta} = [\boldsymbol{\theta}_1, \boldsymbol{\theta}_2, \dots, \boldsymbol{\theta}_K]Θ=[θ1,θ2,,θK]是参数矩阵,上式称为 Softmax函数\textbf{Softmax函数}Softmax函数

2. 多项分布表示\textbf{2. 多项分布表示}2. 多项分布表示
用指示函数 I(yi=k)\mathbb{I}(y_i=k)I(yi=k) 表示第 iii 个样本是否属于类别 kkk,则多项分布的似然函数为:
L(Θ)=∏i=1n∏k=1K[eθkTxi∑j=1KeθjTxi]I(yi=k) L(\boldsymbol{\Theta}) = \prod_{i=1}^n \prod_{k=1}^K \left[ \frac{e^{\boldsymbol{\theta}_k^T \mathbf{x}_i}}{\sum_{j=1}^K e^{\boldsymbol{\theta}_j^T \mathbf{x}_i}} \right]^{\mathbb{I}(y_i=k)}L(Θ)=i=1nk=1K[j=1KeθjTxieθkTxi]I(yi=k)

3. 对数似然函数\textbf{3. 对数似然函数}3. 对数似然函数
ℓ(Θ)=∑i=1n∑k=1KI(yi=k)⋅[θkTxi−log⁡(∑j=1KeθjTxi)] \ell(\boldsymbol{\Theta}) = \sum_{i=1}^n \sum_{k=1}^K \mathbb{I}(y_i=k) \cdot \left[ \boldsymbol{\theta}_k^T \mathbf{x}_i - \log \left( \sum_{j=1}^K e^{\boldsymbol{\theta}_j^T \mathbf{x}_i} \right) \right] (Θ)=i=1nk=1KI(yi=k)[θkTxilog(j=1KeθjTxi)]

4. 梯度计算\textbf{4. 梯度计算}4. 梯度计算
对类别 kkk 的参数向量 θk\boldsymbol{\theta}_kθk 求梯度:
∂ℓ(Θ)∂θk=∑i=1nxi⋅[I(yi=k)−eθkTxi∑j=1KeθjTxi] \frac{\partial \ell(\boldsymbol{\Theta})}{\partial \boldsymbol{\theta}_k} = \sum_{i=1}^n \mathbf{x}_i \cdot \left[ \mathbb{I}(y_i=k) - \frac{e^{\boldsymbol{\theta}_k^T \mathbf{x}_i}}{\sum_{j=1}^K e^{\boldsymbol{\theta}_j^T \mathbf{x}_i}} \right] θk(Θ)=i=1nxi[I(yi=k)j=1KeθjTxieθkTxi]
即:
∂ℓ(Θ)∂θk=∑i=1nxi⋅(I(yi=k)−P(yi=k∣xi;Θ)) \frac{\partial \ell(\boldsymbol{\Theta})}{\partial \boldsymbol{\theta}_k} = \sum_{i=1}^n \mathbf{x}_i \cdot \left( \mathbb{I}(y_i=k) - P(y_i=k \mid \mathbf{x}_i; \boldsymbol{\Theta}) \right) θk(Θ)=i=1nxi(I(yi=k)P(yi=kxi;Θ))

三、Sigmoid与Softmax函数

1. Sigmoid函数\textbf{1. Sigmoid函数}1. Sigmoid函数
σ(z)=11+e−z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1

  • 值域\textbf{值域}值域(0,1)(0, 1)(0,1)
  • 导数性质\textbf{导数性质}导数性质σ′(z)=σ(z)(1−σ(z))\sigma'(z) = \sigma(z)(1 - \sigma(z))σ(z)=σ(z)(1σ(z))
  • 应用\textbf{应用}应用:二分类逻辑回归的概率映射函数。

2. Softmax函数\textbf{2. Softmax函数}2. Softmax函数
Softmax(zk)=ezk∑j=1Kezj,k=1,2,…,K \text{Softmax}(z_k) = \frac{e^{z_k}}{\sum_{j=1}^K e^{z_j}}, \quad k = 1, 2, \dots, K Softmax(zk)=j=1Kezjezk,k=1,2,,K

  • 值域\textbf{值域}值域:每个输出 Softmax(zk)∈(0,1)\text{Softmax}(z_k) \in (0, 1)Softmax(zk)(0,1),且 ∑k=1KSoftmax(zk)=1\sum_{k=1}^K \text{Softmax}(z_k) = 1k=1KSoftmax(zk)=1
  • 导数性质\textbf{导数性质}导数性质
    ∂Softmax(zi)∂zj=Softmax(zi)⋅(δij−Softmax(zj)) \frac{\partial \text{Softmax}(z_i)}{\partial z_j} = \text{Softmax}(z_i) \cdot (\delta_{ij} - \text{Softmax}(z_j)) zjSoftmax(zi)=Softmax(zi)(δijSoftmax(zj))
    其中 δij\delta_{ij}δij 是克罗内克符号 i=ji=ji=j 时为1,否则为0。
  • 应用\textbf{应用}应用:多分类逻辑回归的概率映射函数,将原始得分转化为类别概率分布。

四、优化目标

1. 二分类\textbf{1. 二分类}1. 二分类
最大化对数似然等价于最小化交叉熵损失:
J(θ)=−1nℓ(θ)=−1n∑i=1n[yilog⁡hθ(xi)+(1−yi)log⁡(1−hθ(xi))] J(\boldsymbol{\theta}) = -\frac{1}{n} \ell(\boldsymbol{\theta}) = -\frac{1}{n} \sum_{i=1}^n \left[ y_i \log h_{\boldsymbol{\theta}}(\mathbf{x}_i) + (1-y_i) \log (1 - h_{\boldsymbol{\theta}}(\mathbf{x}_i)) \right] J(θ)=n1(θ)=n1i=1n[yiloghθ(xi)+(1yi)log(1hθ(xi))]
2. 多分类\textbf{2. 多分类}2. 多分类
J(Θ)=−1nℓ(Θ)=−1n∑i=1n∑k=1KI(yi=k)⋅log⁡(eθkTxi∑j=1KeθjTxi) J(\boldsymbol{\Theta}) = -\frac{1}{n} \ell(\boldsymbol{\Theta}) = -\frac{1}{n} \sum_{i=1}^n \sum_{k=1}^K \mathbb{I}(y_i=k) \cdot \log \left( \frac{e^{\boldsymbol{\theta}_k^T \mathbf{x}_i}}{\sum_{j=1}^K e^{\boldsymbol{\theta}_j^T \mathbf{x}_i}} \right) J(Θ)=n1(Θ)=n1i=1nk=1KI(yi=k)log(j=1KeθjTxieθkTxi)

通常使用梯度上升(最大化对数似然)或梯度下降(最小化损失函数)求解参数。

逻辑回归的应用

\hspace{1.68em}逻辑回归作为经典机器学习算法,将线性回归的输出映射到概率空间,从而实现分类。与线性回归不同的是,如果其采用优化方法得到最优的参数,其损失函数只能借助最大似然函数得到,目标是最大化样本属于其真实分类的概率。下文将根据一个真实案例说明逻辑回归是如何样本进行分类任务的。

案例

\hspace{1.68em}我们使用鸢尾花的作为研究对象,根据网上公开的样本数据集,想要区分鸢尾花的种类,就可以使用逻辑回归模型,实际上使用二分类逻辑回归模型即可。
\hspace{1.68em}我们可以针对鸢尾花的每一个种类都构建一个二分类逻辑回归模型,并对这个模型进行训练,获得其中的参数,比如对于一个名为SETOSA的类别,通过构建一个模型,并通过最小化损失函数获得最优参数,获得的参数是 θ1\theta1θ1,对于一个名为VERSICOLOR的类别,经过同样的操作,训练出来的参数是 θ2\theta2θ2
\hspace{1.68em}那么怎么根据样本特征判断其最有可能的所属类别呢?也就是说,我们有一朵未知类别的鸢尾花,测量这朵花的萼片长度,萼片宽度,花瓣长度,花瓣宽度,怎么根据这些测量数据判断出其最有可能得类别呢?只需要将这些测量数据带入上面训练好的两个模型中,求出两个概率,带入第一个模型的概率大于第二个模型的概率,就说明我们认为这朵花是SETOSA类是合理的
\hspace{1.68em}逻辑回归在之后的机器学习发展中有着重要地位,比如sigmoid 和 ReLU 在神经网络中常常被用来作为激活函数

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐