github.io 有点慢,font-awesome 有点大,
客官麻烦搬条板凳坐一下下,我马上就到!

多元线性回归基础

对应 “西瓜书” 3.1-3.3 内容。


从线性回归开始讲起

构造误差函数

线性回归优化目标:

$ f(x _ i) = w x _ i + b $,使得 $f(x _ i) \to y _ i $

用 $ w ^ { \star } $ , $ b ^ { \star } $ 表示 $ w $ 和 $ b $ 的解,有($ x $ 上的差值平方为固定项):

$\begin{aligned} \left( w ^ { \star } , b ^ { \star } \right) & = \underset { ( w , b ) } { \arg \min } \sum _ { i = 1 } ^ { m } \left( f \left( x _ { i } \right) - y _ { i } \right) ^ { 2 } \\ & = \underset { ( w , b ) } { \arg \min } \sum _ { i = 1 } ^ { m } \left( y _ { i } - w x _ { i } - b \right) ^ { 2 } \end{aligned}$

偏导求解

基于均方误差(欧氏距离 Euclidean distance)最小化来进行模型求解的方法称为“最小二乘法”(least square method),求解过程称为模型的最小二乘参数估计(parameter estimation)。

求解通过将待优化的目标函数对两参数分别求偏导得到:

$\begin{aligned} \frac { \partial E _ { ( w , b ) } } { \partial w } & = 2 \left( w \sum _ { i = 1 } ^ { m } x _ { i } ^ { 2 } - \sum _ { i = 1 } ^ { m } \left( y _ { i } - b \right) x _ { i } \right) \\ \frac { \partial E _ { ( w , b ) } } { \partial b } & = 2 \left( m b - \sum _ { i = 1 } ^ { m } \left( y _ { i } - w x _ { i } \right) \right) \end{aligned}$

令以上两式为 0,可得 $w$ 和 $b$ 的最优闭式(closed-form)解

$\begin{aligned} w & = \frac { \sum _ { i = 1 } ^ { m } y _ { i } \left( x _ { i } - \overline { x } \right) } { \sum _ { i = 1 } ^ { m } x _ { i } ^ { 2 } - \frac { 1 } { m } \left( \sum _ { i = 1 } ^ { m } x _ { i } \right) ^ { 2 } }, \\ b & = \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left( y _ { i } - w x _ { i } \right) \end{aligned}$

解析解:因变量由自变量所表示的函数解析式,它是一个解析式,换句话说就是用参数表示的解。

数值解:把各自的参数值自变量的值都带入到解析式中得到数值

闭式解:解析解为一封闭形式(closed-form)的函数,因此对任一独立变量,我们皆可将其带入解析函数求得正确的相依变量。因此,解析解也被称为闭式解(closed-form solution)。


推广:多元线性回归

同样的构造

多元线性回归(multivariate linear regression)的一般表达形式为:

$f \left( \boldsymbol { x } _ { i } \right) = \boldsymbol { w } ^ { \mathrm { T } } \boldsymbol { x } _ { i } + b$

类似地,用“最小二乘法”进行估计。

为便于讨论,我们把 $w$ 和 $b$ 吸收入向量形式 $\hat { \boldsymbol { w } } = ( \boldsymbol { w } ; b )$,相应的,把数据集 $D$ 表示为一个 m×(d+1)大小的矩阵 $\mathrm X$,其中每行对应于一个示例,该行前 d 个元素对应于示例的 d 个属性值,最后一个元素恒置为1,即:

$\mathbf { X } = \left( \begin{array} { c c c c c } { x _ { 11 } } & { x _ { 12 } } & { \dots } & { x _ { 1 d } } & { 1 } \\ { x _ { 21 } } & { x _ { 22 } } & { \dots } & { x _ { 2 d } } & { 1 } \\ { \vdots } & { \vdots } & { \ddots } & { \vdots } & { \vdots } \\ { x _ { m 1 } } & { x _ { m 2 } } & { \dots } & { x _ { m d } } & { 1 } \end{array} \right) = \left( \begin{array} { c c } { x _ { 1 } ^ { \mathrm { T } } } & { 1 } \\ { x _ { 2 } ^ { \mathrm { T } } } & { 1 } \\ { \vdots } & { \vdots } \\ { x _ { m } ^ { \mathrm { T } } } & { 1 } \end{array} \right)$

把标记也写成向量 $y = (y_1;y_2;…y_m)$ 的形式,于是有:

$\hat { \boldsymbol { w } } ^ { * } = \underset { \boldsymbol { \boldsymbol { w } } } { \arg \min } ( \boldsymbol { y } - \mathbf { X } \hat { \boldsymbol { w } } ) ^ { \mathrm { T } } ( \boldsymbol { y } - \mathbf { X } \hat { \boldsymbol { w } } )$

求导

一些矩阵求导相关资料:

令 $E _ { \hat { \boldsymbol { w } } } = ( \boldsymbol { y } - \mathbf { X } \hat { \boldsymbol { w } } ) ^ { \mathrm { T } } ( \boldsymbol { y } - \mathbf { X } \hat { \boldsymbol { w } } )$,

对 $\hat w$ 求导得到:

$\begin{aligned} \frac { \partial E _ { \hat { \boldsymbol { w } } } } { \partial \hat { \boldsymbol { w } } } = 2 \mathbf { X } ^ { \mathrm { T } } ( \mathbf { X } \hat { \boldsymbol { w } } - \boldsymbol { y } ) \end{aligned}$

令上式为零可得 $\hat w$ 的闭式最优解。

但是涉及矩阵逆的计算,需要讨论是否满秩的情形,讨论过程详见 “西瓜书” P56。

大量现实任务中矩阵 $X$ 是不满秩的(比如生物芯片数据,特征数远多于样本数),此时可以解出多个 $\hat w$,均能使均方误差最小化,输出值的选择将由算法确定。

常见的做法是引入正则(regularization)项


进一步推广:广义线性模型

我们还可以将原线性回归方程的值域映射到另一个值空间,也即更一般地,考虑单调可微函数 $g(·)$,令:

$y = g^{-1}(\mathbf { w}^ \mathrm { T } \mathbf { x}+b)$

这样得到的模型称为“广义线性模型”(generalized linear model),其中,函数 g 称为“联系函数”(link function)

对数几率函数

对于样例 $( \boldsymbol { x } , y ) , y \in \mathbb { R }$,

若将 $y$ 视为样本 $\boldsymbol x$ 作为正例的可能性,则 $1-y$ 是其范例概率,二者比值 $\frac {y} {1-y}$ 称为“几率”(odd),其对数值 $ln \frac{y}{1-y}$ 为“对数几率”(亦称 logit)。

极大似然估计

极大似然估计(Maximum likelihood estimation)[wikipedia]

若将 $y$ 视为类后验概率估计 $p(y=1|x)$,则有:

$\begin{aligned} ln \frac {p(y=1|x)}{p(y=0|x)} = \boldsymbol {w}^{ \mathrm T} \boldsymbol {x} + b \end{aligned} $

对于给定数据集 $\left\{ \left( \boldsymbol { x } _ { i } , y _ { i } \right) \right\} _ { i = 1 } ^ { m }$,有

似然函数:
$\ell ( \boldsymbol { w } , b ) = \sum _ { i = 1 } ^ { m } \ln p \left( y _ { i } | \boldsymbol { x } _ { i } ; \boldsymbol { w } , b \right)$

限制条件:
$p \left( y _ { i } | \boldsymbol { x } _ { i } ; \boldsymbol { w } , b \right) = y _ { i } p _ { 1 } \left( \hat { \boldsymbol { x } } _ { i } ; \boldsymbol { w } , b \right) + \left( 1 - y _ { i } \right) p _ { 0 } \left( \hat { \boldsymbol { x } } _ { i } ; \boldsymbol { w } , b \right)$

凸优化

令 $ \boldsymbol \beta = ( \boldsymbol w;b)$,

最大化原似然函数相当于最小化以下函数:

$\begin{aligned} \ell(\boldsymbol \beta) = \sum _ { i = 1 } ^ { m } (-y_i \boldsymbol \beta ^ {\mathrm T} \hat {\boldsymbol x} _ i + \ln (1+e^{\boldsymbol \beta ^ {\mathrm T} \hat {\boldsymbol x} _ i})) \end{aligned} $

上式是关于 $\boldsymbol \beta$ 的高阶可导连续凸函数,根据凸优化理论[Boyd and Vandenberghe,2004],经典的数值优化算法如梯度下降法(gradient descent method)、牛顿法(Newton method)等都可求得其最优解,于是就得到:

$\begin{aligned} \boldsymbol \beta ^ {\star} = \underset { \boldsymbol \beta } { \arg \min } \ell ( \boldsymbol \beta) \end{aligned}$

并可求其一阶和二阶导数(详见 “西瓜书” P60)。

伪代码算法描述

输入:

训练集 x_{i}=(x_{i1},x_{i2},...,x_{in}) ,学习率\alpha

过程:

1: 由对数似然得到代价函数 $\ell(\boldsymbol \beta)$

(采用梯度下降等算法对代价函数进行多轮迭代)

2: 初始化 $\boldsymbol w$ 和 $\boldsymbol \beta$(例如初始化为全1矩阵)
3: repeat:
4: for random (x_i,y_i)\in D do
5: 数值优化(牛顿法1544108400421
6: util: 迭代次数完成或下降幅度小于阈值

输出:

$\boldsymbol \beta$ 的有限次迭代下的最优解,同时也得到了 $\boldsymbol w$ 和 $\boldsymbol \beta$ 的最优解。

贴个接下去学习的链接

https://blog.csdn.net/Findingxu/article/details/83823211



————  EOF  ————