中文
奔赴下一场山海

但远山长,云山乱,晓山青。


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

Linear Regression & Logistic Regression

时间: 2023-03-30   |   分类: CS   | 字数: 1186 字 | 阅读: 3分钟 | 阅读次数:

Linear Regression

一个一般的线性回归的问题为给出共$N$个样本$x^1,\cdots,x^N$,其中每个$x^j,,j=1,\cdots,N$有$m$个特征$x_1^j,\cdots,x_m^j$和这$N$个样本的观测数据$y^1,\cdots,y^N$,对每个$j$设有$n+1$个权重为$\omega_0^j,\omega_1^j,\cdots,\omega_n^j$。考虑$\omega_i^j$的线性组合: $$ \hat{y}(x^j)=\omega_0+\omega_1x_1^j+\cdots+\omega_mx_m^j $$ 定义一些符号:

  1. $x^j=[x_0^j=1,x_1^j,\cdots,x_m^j]^T,,j=1,\cdots,N$。
  2. $X=\left[(x^1)^T,\cdots,(x^N)^T\right]=\begin{bmatrix}1&x^1_1&\cdots &x^1_m\1&x^2_1&\cdots&x^2_m\\vdots&\vdots&\ddots&\vdots\1&x^N_1&\cdots&x^N_m\end{bmatrix}_{N\times(m+1)}$
  3. $\omega=\left[\omega_0,\omega_1,\cdots,\omega_m\right]^T$
  4. $y=\left[y^1,\cdots,y^N\right]^T$

我们要解决的问题是:希望通过$x^1,\cdots,x^N$这些在$\Bbb{R}^{m+1}$空间中的$N$个点去拟合一条直线$\hat{y}(x^j)$,其能最佳地逼近$y(x^j)$。

接下来通过极小化MSE损失函数得到最优的$\omega$,定义loss为: $$ \begin{align}loss&=\frac{1}{2}\sum_{j=1}^N[\hat{y}(x^j)-y^j]^2\ &=\frac{1}{2}\sum_{j=1}^N[\omega^Tx^j-y^j]^2\ &=\frac{1}{2}(X\omega-y)^T(X\omega-y) \end{align} $$ 则问题称为如下泛函极小问题: $$ \min_{\omega}\frac{1}{2}(X\omega-y)^T(X\omega-y) $$ 一般用数值代数的方法,可以直接令loss的梯度等于零得到最优解(极小值点)$x^$: $$ \begin{align}\nabla_{\omega} loss&=\nabla_{\omega}[\frac{1}{2}(\omega^TX^T-y^T)(X\omega-y)]\ &= \nabla_{\omega}[\frac{1}{2}(\omega^TX^TX\omega-\omega^TX^Ty-y^TX\omega+y^Ty)]\ &=\frac{1}{2}[2X^TX\omega-X^Ty-(y^TX)^T]\ &=X^TX\omega-X^Ty\ &=0\ \implies x^&=(X^TX)^{-1}X^Ty \end{align} $$ 而采用梯度下降法(Gredient descent)迭代过程为: $$ \begin{align}\omega^{k+1}&=\omega^k-\alpha^k\nabla_{\omega}loss\ &=\omega^k-\alpha^k\sum_{j=1}^N[\omega^Tx^j-y^j]x^j \end{align} $$

Logistic Regression

一个二分类问题为给出共$N$个样本$x^1,\cdots,x^N$,其中每个$x^j,,j=1,\cdots,N$有$m$个特征$x_1^j,\cdots,x_m^j$和标签值$y^j=0,or,1$,对每个$j$设有$n+1$个权重为$\omega_0^j,\omega_1^j,\cdots,\omega_n^j$。考虑$\omega^Tx$的激活函数: $$ \hat{y}(x^j)=\sigma(\omega^Tx^j)=\frac{1}{1+\exp(-\omega^Tx^j)} $$ 定义一些符号:

  1. $x^j=[x_0^j=1,x_1^j,\cdots,x_m^j]^T,,j=1,\cdots,N$。
  2. $X=\left[(x^1)^T,\cdots,(x^N)^T\right]=\begin{bmatrix}1&x^1_1&\cdots &x^1_m\1&x^2_1&\cdots&x^2_m\\vdots&\vdots&\ddots&\vdots\1&x^N_1&\cdots&x^N_m\end{bmatrix}_{N\times(m+1)}$
  3. $\omega=\left[\omega_0,\omega_1,\cdots,\omega_m\right]^T$
  4. $y=\left[y^1,\cdots,y^N\right]^T$

我们要解决的问题是:希望通过在$\Bbb{R}^{m+1}$空间中找到一条直线将$x^1,\cdots,x^N$这$N$个点分成两类。

如何定义损失函数呢?

假设$y^j$是独立的Bernoulli随机变量,则在参数$\omega$下,概率密度函数为: $$ \begin{align}p(y^j|x^j,\omega)&= \begin{cases} \hat{y}(x^j)\qquad \quad ,,,,,y^j=1\ 1-\hat{y}(x^j)\qquad y^j=0 \end{cases}\ &=\hat{y}(x^j)^{y^j}[1-\hat{y}(x^j)]^{1-y^j}\quad y^j\in{0,1} \end{align} $$ 则极大似然函数为: $$ L(\omega)=\prod_{j=1}^N{\hat{y}(x^j)^{y^j}[1-\hat{y}(x^j)]^{1-y^j}} $$ 去极大化似然函数$\max L(\omega)$,等价于$\max l(\omega)$,其中 $$ \begin{align}l(\omega)&=\sum_{j=1}^N{y^j\ln\hat{y}(x^j)+(1-y^j)\ln(1-\hat{y}(x^j))}\ &=\sum_{j=1}^N{y^j\ln\frac{1}{1+\exp(-\omega^Tx^j)}+(1-y^j)\ln(1-\frac{1}{1+\exp(-\omega^Tx^j)})}\ &=\sum_{j=1}^N{-y^j\ln[1+\exp(-\omega^Tx^j)]+(1-y^j)\ln\frac{\exp(-\omega^Tx^j)}{1+\exp(-\omega^Tx^j)}}\ &=\sum_{j=1}^N{-y^j\ln[1+\exp(-\omega^Tx^j)]+(1-y^j)\ln\exp(-\omega^Tx^j)-(1-y^j)\ln[1+\exp(-\omega^Tx^j)]\ &=\sum_{j=1}^N-(1-y^j)(\omega^Tx^j)-\ln[1+\exp(-\omega^Tx^j)] \end{align} $$ 于是$\max l(\omega)\iff\min\sum_{j=1}^N{-y^j\ln\hat{y}(x^j)-(1-y^j)\ln(1-\hat{y}(x^j))}=\min loss,crossentorpy$

这证明了极小化交叉熵损失函数和极大化似然估计等价,这也是为什么分类问题用交叉熵损失函数,而不用MSE损失函数的根本原因!

而 $$ \begin{align}\nabla_\omega loss&=\sum_{j=1}^N\frac{-\exp (-\omega^Tx^j)x^j}{1+\exp(-\omega^Tx^j)}+(1-y^j)x^j\ &=\sum_{j=1}^N\frac{x^j}{1+\exp(-\omega^Tx^j)}-y^jx^j\ &=\sum_{j=1}^N\sigma(\omega^Tx^j)x^j-y^jx^j \end{align} $$

$$ \begin{align}\nabla^2_\omega loss&=\sum_{j=1}^N\frac{\exp (-\omega^Tx^j)(x^j)^2}{1+\exp(-\omega^Tx^j)}\&=\sum_{j=1}^N\frac{(x^j)^2+\exp (-\omega^Tx^j)(x^j)^2-(x^j)^2}{1+\exp(-\omega^Tx^j)}\ &=\sum_{j=1}^N(x^j)^2\sigma(\omega^Tx^j)-(x^j)^2\sigma(\omega^Tx^j)^2\ &=\sum_{j=1}^N(x^j)^2\sigma(\omega^Tx^j)(1-\sigma(\omega^Tx^j))\ge0 \end{align} $$

因此loss函数是下凸函数,局部极小值就是全局最小值,因此

而采用梯度下降法(Gredient descent)迭代过程为: $$ \begin{align}\omega^{k+1}&=\omega^k-\alpha^k\nabla_{\omega}loss\ &=\omega^k-\alpha^k\sum_{j=1}^N[\sigma(\omega^Tx^j)-y^j]x^j \end{align} $$ 这与Linear Regression的迭代表达式高度相像!事实上,Linear Regression的激活函数$\sigma(x)=x$就是恒等映射而已。

#Math#
QQ扫一扫交流

声明:Linear Regression & Logistic Regression

链接:https://murphyhanxu.github.io/post/linearregressionlogisticregression/

作者:Murphy

声明: 本博客文章除特别声明外,均采用 CC BY-NC-SA 3.0许可协议,转载请注明出处!

创作实属不易,如有帮助,那就打赏博主些许茶钱吧 ^_^
WeChat Pay

微信打赏

Notes of Numerical Experiments
  • 文章目录
  • 站点概览
Murphy

Murphy

谁的脸谁的姓名

19 日志
1 分类
8 标签
GitHub
友情链接
  • 廖雪峰
  • Mickeylili
标签云
  • Machine learning
  • Github pages
  • Python
  • Hugo
  • Math
  • SQL
  • Didl
  • Mathematical modeling
© 2010 - 2023 奔赴下一场山海
0%