逻辑回归简介(Logistic Regression)

Logistic Regression

逻辑回归(Logistic Regression,简称 LR)虽然名为 “回归”,但实际上是一个分类问题。它主要用于二分类,通过逻辑函数 ——Sigmoid 函数来实现。显然,Sigmoid 函数的值域在 (0, 1) 之间。通常,以 0.5 作为阈值,当函数值低于 0.5 时,将观察到的输入集分类为 “0” 类,反之则为 “1” 类。Sigmoid 函数呈现出典型的 S 形曲线。
在这里插入图片描述
逻辑回归分类器旨在从输入训练数据的特征中学习一个二分类模型。该模型将输入特征的线性组合作为变量,即 θ 0 + θ 1 x 1 + , … , + θ n x n = ∑ i = 1 n θ i x i \theta_0+\theta_1x_1+,\ldots,+\theta_nx_n= \sum_{i=1}^n \theta_ix_i θ0+θ1x1+,,+θnxn=i=1nθixi,其中 x 0 x_0 x0 始终为 1。我们也可以将其表示为 θ T x \theta^Tx θTx。将其代入 Sigmoid 函数,得到如下预测模型:
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+eθTx1

逻辑回归最终将组合变量映射到 (0, 1) 区间,以确定输入特征所属的类别。
为了训练这样一个逻辑模型,我们需要构建一个合理的损失函数。但在此之前,我们首先定义类别(0 或 1)的概率如下:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 1 ∣ 0 ; θ ) = 1 − h θ ( x ) \begin{equation} \begin{aligned}&P(y=1\mid x;\theta)=h_\theta(x)\\&P(y=1\mid 0;\theta)=1-h_\theta(x)\end{aligned}\end{equation} P(y=1x;θ)=hθ(x)P(y=10;θ)=1hθ(x)

这意味着对于一组表示为 x i x_i xi 的输入特征及其相应的标签 ,在 x i x_i xi 条件下 y i = 1 y_i = 1 yi=1 的概率为 p i p_i pi ,因此 y i = 0 y_i = 0 yi=0 的概率为 1 − p i 1-p_i 1pi。 因此,我们可以将这两种情况结合起来,得到一个统一的概率函数:
P ( y ) ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y)\mid x;\theta)=(h_\theta(x))^y(1-h_\theta(x))^{1-y} P(y)x;θ)=(hθ(x))y(1hθ(x))1y

此外,对于 m 个输入特征 x 1 , x 2 , . . . . . . , x m x_1, x_2, ...... , x_m x1,x2,......,xm,联合概率就是在每个 x i x_i xi 条件下 y i y_i yi 的概率的乘积,如下所示:
L ( θ ) = ∏ i = 1 m P = ( y i ∣ x i ; θ ) = ∏ i = 1 m ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i L(\theta)=\prod_{i=1}^{m}{P=(y_i\mid x_i;\theta)}=\prod_{i=1}^{m}(h_\theta(x_i))^{y_i}(1-h_\theta(x_i))^{1-y_i} L(θ)=i=1mP=(yixi;θ)=i=1m(hθ(xi))yi(1hθ(xi))1yi

逻辑回归(LR)的目的是获得一组最优的参数集 θ \theta θ ,使得 L ( θ ) L(\theta) L(θ)达到最大值。其取对数形式,得到 l ( θ ) l(\theta) l(θ) 如下:
l ( θ ) = log ⁡ L ( θ ) = ∑ i = 1 m ( y i log ⁡ h θ ( x i ) + ( 1 − y i ) log ⁡ ( 1 − h θ ( x i ) ) ) l(\theta)=\log{L(\theta)}=\sum_{i=1}^m \Big(y_i\log h_\theta(x_i)+(1-y_i)\log \big(1-h_\theta(x_i)\big)\Big) l(θ)=logL(θ)=i=1m(yiloghθ(xi)+(1yi)log(1hθ(xi)))

如果我们将 l ( θ ) l(\theta) l(θ) 视为损失函数,训练逻辑回归问题应该使用梯度上升的方式,因为 l ( θ ) l(\theta) l(θ) 越大越好。如果我们想要最小化损失函数(以符合主流的机器学习训练方法),可以简单地使用其负数,即 J ( θ ) = − 1 m ∗ l ( θ ) J(\theta)=-\frac{1}{m}*l(\theta) J(θ)=m1l(θ),并且可以使用梯度下降来进行参数优化: θ j : = θ j − α δ δ θ j J ( θ ) \theta_j:=\theta_j-\alpha\frac{\delta}{\delta_{\theta_j}}J(\theta) θj:=θjαδθjδJ(θ)
其中:
δ δ θ j J ( θ ) = − 1 m ∑ i = 1 m ( y i 1 h θ ( x i ) δ δ θ j h θ ( x i ) − ( 1 − y i ) 1 1 − h θ ( x i ) δ δ θ j h θ ( x i ) ) = − 1 m ∑ i = 1 m ( y i 1 g ( θ T x i ) ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) δ δ θ j g ( θ T x i ) = − 1 m ∑ i = 1 m ( y i 1 g ( θ T x i ) ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) g ( θ T x i ) ( 1 − g ( θ T x i ) ) δ δ θ j θ T x i = − 1 m ∑ i = 1 m ( y i ( 1 − g ( θ T x i ) ) − ( 1 − y i ) g ( θ T x i ) ) x i j = − 1 m ∑ i = 1 m ( y i − g ( θ T x i ) ) x i j = − 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) ) x i j \begin{aligned}&\frac{\delta}{\delta_{\theta_j}}J(\theta)=-\frac{1}{m}\sum_{i=1}^m \Big(y_i\frac{1}{h_\theta(x_i)}\frac{\delta} {\delta_{\theta_j}}h_\theta(x_i)-(1-y_i)\frac{1}{1-h_\theta(x_i)}\frac{\delta}{\delta_{\theta_j}}h_\theta(x_i)\Big)\\&=-\frac{1}{m}\sum_{i=1}^m \Big(y_i\frac{1}{g(\theta^Tx_i)})-(1-y_i)\frac{1}{1-g(\theta^Tx_i)}\Big) \frac{\delta}{\delta_{\theta_j}}g(\theta^Tx_i)\\&=-\frac{1}{m}\sum_{i=1}^m \Big(y_i\frac{1}{g(\theta^Tx_i)})-(1-y_i)\frac{1}{1-g(\theta^Tx_i)}\Big) g(\theta^Tx_i)\big(1-g(\theta^Tx_i)\big)\frac{\delta}{\delta_{\theta_j}}\theta^Tx_i\\ &=-\frac{1}{m}\sum_{i=1}^m \Big(y_i\big(1-g(\theta^Tx_i)\big)-(1-y_i)g(\theta^Tx_i)\Big)x_i^j\\&=-\frac{1}{m}\sum_{i=1}^m\Big(y_i-g(\theta^Tx_i)\Big)x_i^j\\&=-\frac{1}{m}\sum_{i=1}^m\Big(h_\theta(x_i)-y_i)\Big)x_i^j \end{aligned} δθjδJ(θ)=m1i=1m(yihθ(xi)1δθjδhθ(xi)(1yi)1hθ(xi)1δθjδhθ(xi))=m1i=1m(yig(θTxi)1)(1yi)1g(θTxi)1)δθjδg(θTxi)=m1i=1m(yig(θTxi)1)(1yi)1g(θTxi)1)g(θTxi)(1g(θTxi))δθjδθTxi=m1i=1m(yi(1g(θTxi))(1yi)g(θTxi))xij=m1i=1m(yig(θTxi))xij=m1i=1m(hθ(xi)yi))xij

Vectorization

参数优化过程可以进行向量化,这在全同态加密(FHE)中非常重要。我们可以使用以下过程进行向量化:
首先,我们将 m 个输入向量 重新构造成针对每个观测特征的更细粒度的特征矩阵,输出类别 y y y 和参数集 θ \theta θ 也类似处理:
在这里插入图片描述每个特征 x i x_i xi 和参数集 θ \theta θ 的线性组合可以表示为矩阵 - 向量乘法。得到的矩阵 A A A 作为 Sigmoid 函数 g g g 的输入:
在这里插入图片描述
E E E 是观测标签 y y y (0 或 1)与通过 Sigmoid 函数根据 x x x 得到的预测概率之间的误差(或损失)。因此,最终的优化过程如下所示:
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) ) x i j = θ j − α 1 m ∑ i = 1 m e i x i j = θ j − α 1 m x j T E \theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m\big(h_\theta(x_i)-y_i)\big)x_i^j=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^me_ix_i^j=\theta_j-\alpha\frac{1}{m}x^{jT}E θj:=θjαm1i=1m(hθ(xi)yi))xij=θjαm1i=1meixij=θjαm1xjTE

Implementation

后续会介绍,使用Poseidon同态加密库实现 Logistic Regression。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值