AI ML

线性回归和逻辑回归数学推导

Posted by LvKouKou on December 12, 2023

回归

线性回归(目标函数的推导):梯度下降法

线性回归:最小二乘法:即直接求导

多元线性回归(Multivariate linear regression)概述及数学推导

机器学习——四大线性回归模型详解(包含理论讲解+公式推导,非常适合初学者!)

已知数据集$ D= { (x_1,y_1),(x_2,y_2),\cdots ,(x_n,y_n) }$,其中$ x_i={(x_{i1},x_{i2},\cdots ,x_{id})}$(一个样本$x_i$里有多个属性$(x_{i1},x_{i2},\cdots ,x_{id})$),更多情况下,数据集并非单个属性,而是由多个属性构成如同,此时称为多元线性回归。对于多元线性回归我们试图学得参数$w$:

\[f(x_i)=\bold{w^Tx_i}+b,\space 使得预测值f(\bold{x_i})\approx 真实值y_i\]

其中 X 为$ (N\times d)$维向量(N为样本个数,d为属性个数)

\[X= \begin{pmatrix} x_{11} & ... & x_{1d}\\ x_{21} & ... & x_{2d}\\ ... & ... & ...\\ ... & ... &... \\ x_{n1} &... &x_{nd} \end{pmatrix}\]

为了方便运算,我们在X后增加一列,其值均为1,得到下式,该步骤的目的是为了将偏置$b$合并至$w$,便于后续的求解运算。也就是由于常数项的存在导致$w$维度为$(N+1)\times 1$

\[X= \begin{pmatrix} x_{11} & ... & x_{1d}&1\\ x_{21} & ... & x_{2d}&1\\ ... & ... & ...&...\\ ... & ... &... &...\\ x_{n1} &... &x_{nd}&1 \end{pmatrix} , w= \begin{pmatrix} w_0\\ w_1\\ ...\\ w_{n-1}\\ w_n \end{pmatrix}\]

与此同时,我们将标签$y$写成向量的形式$ y=(y_1;y_2;y_3;\dots;y_n)$,类似于式(13),

因此确定 $w$与$ b$是主要的问题,并且上式表明$f ( x_i ) $与 $y$之间的差别需要尽可能的小,在回归任务中常用均方误差作为性能度量,故我们可以尝试让均方误差最小:

\[(w^*,b^*)=arg\underset{(w,b)}{min} \sum_{i=1}^{m}(f(x_i) -y_i)^2 \\ =arg\underset{(w,b)}{min} \sum_{i=1}^{m}(y_i-wx_i-b)^2\]

:上式 $ arg\underset{(w,b)}{min} $的含义就是求得均方误差$\sum_{i=1}^{m}(f(x_i) -y_i)^2$最小值时所对应的 $ w$与 $b$的值。  这种基于均方误差最小化的模型称为 “最小二乘法” ,此处均方误差的公式恰好对应了欧式距离 ,该算法的目的就是试图找到一条直线,使得样本点欧式距离直线之和最小。

我们得到

\[\bold{\hat{w}}^*=\arg \underset{\hat{w}}{\min} (\bold{y-X\hat{w})^T(y-X\hat{w})}\]

令$ E(\hat{w})=\bold{(y-X\hat{w})^T(y-X\hat{w})}$对$\hat{w}$求偏导:

\[\frac{\partial E(w)}{\partial x} =2\bold{X^T(X\hat{w}-y)}\]

令上式=0,最终得到w的解为:

\[\bold{w=(X^TX)^{-1}X^Ty}\]

注意,该解只适用于满秩矩阵,但实际我们往往遇到的不是满秩矩阵,遇到的变量数目超过样本量,导致$X$的列数大于行数,此时就需要引入正则项


但显示中往往矩阵很大无法直接计算,这时就要用梯度下降法来迭代求解$w$了:

由PPT中的公式(化成减法的形式),使用均方误差:

\[\theta^{(\tau + 1)}=\theta^{(\tau )}-\rho(\tau) \nabla log\mathcal L(\theta^{(\tau )}|D)\\ =\theta^{(\tau )} + \rho(\tau) \frac{1}{n} \sum_{n}^{i=1} (y_{i} - \theta^{(\tau )T}x_{i})x_{i}\\ =\theta^{(\tau )} - \rho(\tau) \frac{1}{n} \sum_{n}^{i=1} ( \theta^{(\tau )T}x_{i}-y_{i})x_{i}\\\]

如果写成矩阵形式,也就是

\[\theta^{(\tau )} - \rho(\tau) \frac{1}{n}X^{T}(X\theta^{(\tau )}-Y)\]

也就是梯度算子为:

\[\nabla=\frac{1}{n}X^{T}(X\theta^{(\tau )}-Y)\]

其中n为样本个数。

然后让目标函数沿梯度算子方向下降即可:

\[\theta^{(\tau + 1)}=\theta^{(\tau )}-LearningRate* \nabla\]

==对比==:

线性回归梯度算子为:

\[\nabla=\frac{1}{n}X^{T}(X\theta^{(\tau )}-Y)\]

其中n为样本个数。

逻辑回归中梯度算子为:

\[\nabla=X^T(sigmoid(X\theta^{(\tau )})-Y)\]

逻辑回归中少了$\frac{1}{n}$但是多了个$sigmoid$

线性回归的优点和缺点:

优点:

  1. 简单易懂:线性回归是一种简单直观的模型,易于理解和解释。
  2. 计算效率高:线性回归的计算成本相对较低,适用于大规模数据集。
  3. 提供线性关系:适用于描述自变量和因变量之间的线性关系。

缺点:

  1. 对非线性关系拟合效果差:线性回归无法很好地拟合非线性关系的数据。
  2. 对异常值敏感:线性回归对异常值敏感,可能导致模型的不稳定性。
  3. 对特征的要求较高:线性回归要求特征之间的关系是线性的,对数据的要求较高。

逻辑回归(Logistic Regression)概述及数学推导

直观来说,用一条直线对一些现有的数据点进行拟合的过程,就叫做回归。Logistic分类的主要思想:根据现有数据对分类边界建立回归公式,并以此分类。建立拟合参数的过程中用到 最优化算法,这里用到的是常用的 梯度上升法。(Logistic回归是用于二分类问题的)

逻辑回归也称对数几率回归。

Logistic回归分类器,Sigmoid 函数

我们想要一个函数,接受所有输入并返回我们的预测值,sigmoid函数符合我们的要求。

\[g(z)=\frac{1}{1+e^{-z}}\]

可以在 z>0,即 g(z)>=0.5的时候,认为其是 A 类别,g(z)<0.5 时认为是 B 类别。因此logistic回归也可以视为概率估计。进一步的,g(x)的值就是它等于1的概率,即概率密度函数 对每个实例对象构造一个特征向量 x,对 x乘上一个回归系数 w,再求和,sum作为自变量代入 sigmoid函数,就得到一个 0-1范围内的数了。接下来确定 回归系数(weight)性质:

\[\frac{\partial g(z)}{\partial z}= \frac{e^{-z}}{(1+e^{-z})} =g(z)(1-g(z))\]

最优化理论确定回归系数(weight/θ)

回归系数即 weight/θ,我们初始化回归系数为1,再不停用梯度上升法迭代,优化这个系数,直到最大迭代次数或是 w达到误差范围内。

sigmoid的输入记为 z,那么 $ z=w_0x_0+w_1x_1+…+w_xx_n,$

即$ z = w^T x $, 常 用 θ 来 代 替 $w$ 所以 sigmoid也可以写为

\[g(\theta^Tx)=h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}\]

梯度上升法

先介绍梯度上升法。要找到某个函数的最大值,最好最快的方法就是沿着函数的梯度方向探寻。如果梯度记为▽(读作“Nabla”),那么函数f(x,y)的梯度由下式表示:

\[\nabla f(x,y)=\begin{bmatrix}\dfrac{\partial(x,y)}{\partial x}\\\dfrac{\partial(x,y)}{\partial y}\end{bmatrix}\]

定性来说,梯度上升求出函数最大值,沿x方向移动$\frac{\partial(x,y)}{\partial x}$,沿y方向移动$\frac{\partial(x,y)}{\partial y}$,这个点有意义且可微。 再有了方向之后,人为定一个一个“步长” $ \alpha$ 那么可以写成$ w:=w+\alpha \nabla_wf(w)$

数学推导$\nabla_wf(w)$

回到我们的讨论,为了求出这个$ \theta$,也就是$w$,为了找出最拟合的线,下面用到最大似然函数,让似然函数最大的$\theta$就是题目要求的$\theta$,求解最大的值的过程中,用的就是梯度上升法。 定义 y 为根据g(z)来判断类别的结果,为1或0。 首先 g(z) 就是它等于1的概率,即概率密度函数,那么根据上述定义: \(P(y=1|x;\theta)=h_{\theta}(x)\\ P(y=0|x;\theta)=1-h_{\theta}(x)\)

概率函数为(0-1分布)

\[P(y|x;\theta)=(h_{\theta}(x))^y * (1-h_{\theta}(x))^{(1-y)} \space\space\space, y=0,1\]

似然函数,联合概率密度函数:

\[L(\theta)=\prod_{i=1}^{m} P(y^{(i)}|x^{(i)};\theta)\]

即:

\[L(\theta)=\prod_{i=1}^{m} {(h_{\theta}(x^{(i)}))^{y^{(i)}}} *{(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}}\]

取对数似然函数(目标函数,梯度上升):

\[l(\theta)=log(L(\theta))=\sum_{i=1}^{m} {y^{(i)}}log{(h_{\theta}(x^{(i)}))} + ({1-y^{(i)}})log{(1-h_{\theta}(x^{(i)}))}\]

其梯度算子:

代入$h_\theta(x)$,求导:

\[\frac{\partial }{\partial \theta}l(\theta)=(y\frac{1}{g(\theta^Tx)}-(1-y)\frac{1}{1-g(\theta^Tx)})\frac{\partial}{\partial \theta}(g(\theta^Tx))\\ =(y−h_θ(x))x\]

所以:($\alpha$是学习率)

\[\theta:=\theta+\alpha \sum_{j=1}^{m} (y-h_\theta(x))x\]

$θ$即$w$

写成矩阵形式:

\[\theta:=\theta-\alpha* (sigmoid(X\theta^{(\tau )})-Y)X\]

逻辑回归的优点和缺点:

优点:

  1. 适用于分类问题:逻辑回归适用于解决二分类问题,能够输出分类概率。
  2. 计算效率高:逻辑回归的计算成本相对较低,适用于大规模数据集。
  3. 输出概率值:逻辑回归可以输出分类的概率值,便于进行阈值调整。

缺点:

  1. 对特征工程要求高:逻辑回归对特征的线性关系要求较高,需要进行特征工程处理。
  2. 容易欠拟合:当特征之间的关系复杂时,逻辑回归容易欠拟合。
  3. 处理多分类困难:逻辑回归通常只适用于二分类问题,对多分类问题的处理相对困难。