对应 “西瓜书” 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)。
伪代码算法描述
输入:
训练集 , ,学习率。
过程:
1: 由对数似然得到代价函数 $\ell(\boldsymbol \beta)$
(采用梯度下降等算法对代价函数进行多轮迭代)
2: 初始化 $\boldsymbol w$ 和 $\boldsymbol \beta$(例如初始化为全1矩阵)
3: repeat:
4: for random do
5: 数值优化(牛顿法)
6: util: 迭代次数完成或下降幅度小于阈值
输出:
$\boldsymbol \beta$ 的有限次迭代下的最优解,同时也得到了 $\boldsymbol w$ 和 $\boldsymbol \beta$ 的最优解。
贴个接下去学习的链接