1.线性回归
对包含$d$个属性描述的数据${\bf{x}} = \{ {x_1},{x_2},...,{x_d}\}$,建立一个加权线性模型,$f({\bf{x}}) = {\omega _1}{x_1} + {\omega _2}{x_2} + ... + {\omega _d}{x_d} + b$,尽可能预测地准确对应的标签值$y$,各权重$\omega$直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性。
我们先考虑最简单的情况,$d=1$。线性回归试图学得$f(x_i) = {\omega } {x_i}+ b$,使得$f(x_i) \simeq {y_i}$。如何衡量这两个之间的差别呢?均方误差是回归任务中最常用的性能度量,因此我们可以试图让均方误差最小化,
\[\begin{array}{*{c}}
{({\omega ^*},{b^*}) = \mathop {\arg \min }\limits_{\omega ,b} \sum\limits_{i = 1}^m { { {\left( {f({x_i}) - {y_i}} \right)}^2}} }\\{ = \mathop {\arg \min }\limits_{\omega ,b} \sum\limits_{i = 1}^m { { {\left( { {\omega ^T}{x_i} + b - {y_i}} \right)}^2}} }\end{array}\]均方误差有非常好的几何意义,对应了欧氏距离。基于均方误差最小化来进行求解的方法成为“最小二乘法”。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。
求解$\omega$和$b$使$E(\omega ,b) = \sum\limits_{i = 1}^m {
{ {\left( { {\omega }{x_i} + b - {y_i}} \right)}^2}} $最小化的过程,称之为线性回归模型的最小二乘“参数估计”。由于$E(\omega ,b) $是凸函数,令$\omega$和$b$的偏导为零,可以求其最优解的闭式解。\[\begin{array}{l}
\frac{ {\partial E(\omega ,b)}}{ {\partial \omega }} = 2\sum\limits_{i = 1}^m {\left( {\omega {x_i} + b - {y_i}} \right){x_i} = 0} \\\frac{ {\partial E(\omega ,b)}}{ {\partial b}} = 2\sum\limits_{i = 1}^m {\left( {\omega {x_i} + b - {y_i}} \right)} = 0\end{array}\]\[\begin{array}{l}
\omega \sum\limits_i^m {x_i^2} + b\sum\limits_i^m { {x_i}} - \sum\limits_i^m { {y_i}{x_i}} = 0\\\omega \sum\limits_i^m { {x_i}} + mb - \sum\limits_i^m { {y_i}} = 0\end{array}\]\[\begin{array}{l}
\omega = \frac{ {\sum\limits_i^m { {y_i}} ({x_i} - \frac{1}{m}\sum\limits_i^m { {x_i}} )}}{ {\sum\limits_i^m {x_i^2} - \frac{1}{m}{ {(\sum\limits_i^m { {x_i}} )}^2}}}\\b = \frac{1}{m}\sum\limits_i^m {({y_i} - \omega {x_i})} \end{array}\]
更一般的情况,针对数据集$D = \{ ({
{\bf{x}}_1},{y_1}),({ {\bf{x}}_2},{y_2}),...,({ {\bf{x}}_m},{y_m})\} $,其中${ {\bf{x}}_i} = \{ {x_{i1}},{x_{i2}},...,{x_{id}}\} $,包含d维特征。试图学得$f({ {\bf{x}}_i}) = { {\bf{\omega }}^T}{ {\bf{x}}_i} + b$,使得$f({\bf{x}_i}) \simeq {y_i}$,这称之为“多元线性回归”。类似用最小二乘法求得${\bf{\hat \omega }} = ({\bf{\omega }};b)$最优解的闭式解,相应的数据集表示为,
\[{\bf{X}} = \left( {\begin{array}{*{20}{c}}
{ {\bf{x}}_{\bf{1}}^{\bf{T}}}&1\\{ {\bf{x}}_{\bf{2}}^{\bf{T}}}&1\\{...}&1\\{ {\bf{x}}_{\bf{m}}^{\bf{T}}}&1\end{array}} \right)\]\[{\bf{y}} = ({y_1};{y_2};...{y_m})\]
令优化目标值${E_{
{\bf{\hat \omega }}}} = {({\bf{y}} - {\bf{X\hat \omega }})^T}({\bf{y}} - {\bf{X\hat \omega }})$,求偏导为0,得$\bf{\hat \omega }$最优解的闭式解,\[{
{ {\bf{\hat \omega }}}^*} = \mathop {\arg \min }\limits_{ {\bf{\hat \omega }}} {({\bf{y}} - {\bf{X\hat \omega }})^T}({\bf{y}} - {\bf{X\hat \omega }})\]\[\frac{
{\partial {E_{ {\bf{\hat \omega }}}}}}{ { {\bf{\hat \omega }}}} = \frac{ {\partial { {({\bf{y}} - {\bf{X\hat \omega }})}^T}}}{ { {\bf{\hat \omega }}}}({\bf{y}} - {\bf{X\hat \omega }}) + {({\bf{y}} - {\bf{X\hat \omega }})^T}\frac{ {\partial ({\bf{y}} - {\bf{X\hat \omega }})}}{ { {\bf{\hat \omega }}}}\]\[ = - {
{\bf{X}}^{\bf{T}}}({\bf{y}} - {\bf{X\hat \omega }}) - {({\bf{y}} - {\bf{X\hat \omega }})^T}{\bf{X}}\](标量的转置等于其本身)
\[ = 2{
{\bf{X}}^{\bf{T}}}({\bf{X\hat \omega }} - {\bf{y}})\]但涉及矩阵逆计算,要复杂很多,下面做一个简单的讨论。当${
{\bf{X}}^{\bf{T}}}{\bf{X}}$为满秩矩阵或正定矩阵时,可求其逆矩阵,\[{\bf{\hat \omega }} = {({
{\bf{X}}^{\bf{T}}}{\bf{X}})^{ - 1}}{ {\bf{X}}^{\bf{T}}}{\bf{y}}\]多元线性回归模型为,
\[f({
{ {\bf{\hat x}}}_i}) = {\bf{\hat x}}_i^T{({ {\bf{X}}^{\bf{T}}}{\bf{X}})^{ - 1}}{ {\bf{X}}^{\bf{T}}}{\bf{y}}\]然而,现实任务中然而,现实任务中 xTx 往往不是满秩矩阵.例如在许多任务中我们会遇到大量的变量,其数目甚至超过样例数,导致 X 的列数多于行数 , xTx 显然不满秩。此时可解出多个解, 它们都能使均方误差最小化。选择哪一个解作为输出 ,将由学习算法的归纳偏好决定, 常见的做法是引入正则化 (regularization)项.
线性回归模型的一般形式为:
\[y = {
{\bf{\omega }}^T}{\bf{x}} + b\]如果我们的数据是成指数变化的,那么可以把线性回归模型扩展为:
\[\ln y = {
{\bf{\omega }}^T}{\bf{x}} + b\]更一般的,考虑单调可微函数$g(\bullet)$,将线性回归模型的预测值与真实标记联系起来,那么线性回归模型扩展为:
\[y = {g^{ - 1}}({
{\bf{\omega }}^T}{\bf{x}} + b)\]2. logistic回归
那怎么把线性回归模型扩展到分类模型中呢,找一个单调可微函数,将线性回归模型的预测值与真实类别联系起来。
考虑二分类问题,单位阶跃函数是理想的分类函数,若预测值大于0则为{1}正类,小于0则为{0}负类,等于0则可任意判别。但是这样的阶跃函数不连续,不是可微的。因此我们利用对数几率函数(logistic function)来近似单位阶跃函数。
\[y = \frac{1}{
{1 + {e^{ - z}}}}\]
将z值转化成一个接近于0或1的y值。
\[\ln \frac{y}{
{1 - y}} = { {\bf{\omega }}^T}{\bf{x}} + b\]\[\ln \frac{
{p(y = 1|x)}}{ {p(y = 0|x)}} = { {\bf{\omega }}^T}{\bf{x}} + b\]该模型是在用线性回归模型的预测值去逼近真实标记的对数($\ln$)几率($\frac{y}{1 - y}$),其对应的模型成为“logistic回归”。
视y为类后验概率估计$p(y=1|x)$,有:
\[y = p(y = 1|x) = \frac{1}{
{1 + {e^{ - { {\bf{\omega }}^T}{\bf{x}} - b}}}}\]\[y = p(y = 1|x) = \frac{1}{
{1 + {e^{ { {\bf{\omega }}^T}{\bf{x}} + b}}}}\]
极大似然估计的思想为:对于所有的抽样样本,使它们联合概率${p({y_i}|{
{\bf{x}}_i};{\bf{w}},b)}$达到最大的系数便是统计模型最优的系数。给定数据集D,因为对数函数ln(x)是单调增函数,且可以把乘除转换成加减,利于数学计算,所以logistic回归模型最大化“对数似然”,
\[l({\bf{w}},b) = \sum\limits_{i = 1}^m {\ln p({y_i}|{
{\bf{x}}_i};{\bf{w}},b)} \]为了便于讨论,令$\bf{\beta}= ({\bf{w}};b)$,$\widehat{\bf{x}}= (\bf{x};1)$,对数似然等价为最小化
\[l({\bf{\beta }}) = \sum\limits_{i = 1}^m {( - {y_i}{
{\bf{\beta }}^T}{ {\widehat {\bf{x}}}_i} + \ln (1 + {e^{ { {\bf{\beta }}^T}{ {\widehat {\bf{x}}}_i}}}))} \]可根据经典数值优化算法如梯度下降法等求得其$\bf{\beta }$的最优解,
\[{
{\bf{\beta }}^*} = \mathop {\arg \min }\limits_{\bf{\beta }} l({\bf{\beta }})\]
logistic回归算法
输入:训练集$D = \{ ({
{\bf{x}}_1},{y_1}),({ {\bf{x}}_2},{y_2}),...,({ {\bf{x}}_m},{y_m})\} $;学习率$\alpha$;
终止条件$\varepsilon$.
过程:
1:令$\bf{\beta}= ({\bf{w}};b)$,$\widehat{\bf{x}}= (\bf{x};1)$
2:针对$l({\bf{\beta }}) = \sum\limits_{i = 1}^m {( - {y_i}{
{\bf{\beta }}^T}{ {\widehat {\bf{x}}}_i} + \ln (1 + {e^{ { {\bf{\beta }}^T}{ {\widehat {\bf{x}}}_i}}}))} $利用随机梯度下降法求最优解${
{\bf{\beta }}^*} = \mathop {\arg \min }\limits_{\bf{\beta }} l({\bf{\beta }})$3:初始化$\bf{\beta}_0$
4:repeat
5:从训练集D中随机挑选一个数据${\bf{x}_i}, y_i$
6:以学习率$\alpha$的速度朝梯度下降的方向更新参数$\bf{\beta}$
7:end for
8:until $\Delta {\bf{\beta }} \le \varepsilon $
输出:logistic回归模型参数$\bf{w},b$
参考:
机器学习西瓜书 周志华