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 $$ 定义一些符号:
- $x^j=[x_0^j=1,x_1^j,\cdots,x_m^j]^T,,j=1,\cdots,N$。
- $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)}$
- $\omega=\left[\omega_0,\omega_1,\cdots,\omega_m\right]^T$
- $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)} $$ 定义一些符号:
- $x^j=[x_0^j=1,x_1^j,\cdots,x_m^j]^T,,j=1,\cdots,N$。
- $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)}$
- $\omega=\left[\omega_0,\omega_1,\cdots,\omega_m\right]^T$
- $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$就是恒等映射而已。