• 一、线性模型


    1.线性回归

    对包含$d$个属性描述的数据${f{x}} = { {x_1},{x_2},...,{x_d}}$,建立一个加权线性模型,$f({f{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}$。如何衡量这两个之间的差别呢?均方误差是回归任务中最常用的性能度量,因此我们可以试图让均方误差最小化,

    [egin{array}{*{c}}
    {({omega ^*},{b^*}) = mathop {arg min }limits_{omega ,b} sumlimits_{i = 1}^m {{{left( {f({x_i}) - {y_i}} ight)}^2}} }\
    { = mathop {arg min }limits_{omega ,b} sumlimits_{i = 1}^m {{{left( {{omega ^T}{x_i} + b - {y_i}} ight)}^2}} }
    end{array}]

    均方误差有非常好的几何意义,对应了欧氏距离。基于均方误差最小化来进行求解的方法成为“最小二乘法”。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。

     

    求解$omega$和$b$使$E(omega ,b) = sumlimits_{i = 1}^m {{{left( {{omega }{x_i} + b - {y_i}} ight)}^2}} $最小化的过程,称之为线性回归模型的最小二乘“参数估计”。由于$E(omega ,b) $是凸函数,令$omega$和$b$的偏导为零,可以求其最优解的闭式解。 

    [egin{array}{l}
    frac{{partial E(omega ,b)}}{{partial omega }} = 2sumlimits_{i = 1}^m {left( {omega {x_i} + b - {y_i}} ight){x_i} = 0} \
    frac{{partial E(omega ,b)}}{{partial b}} = 2sumlimits_{i = 1}^m {left( {omega {x_i} + b - {y_i}} ight)} = 0
    end{array}]

    [egin{array}{l}
    omega sumlimits_i^m {x_i^2} + bsumlimits_i^m {{x_i}} - sumlimits_i^m {{y_i}{x_i}} = 0\
    omega sumlimits_i^m {{x_i}} + mb - sumlimits_i^m {{y_i}} = 0
    end{array}]

    [egin{array}{l}
    omega = frac{{sumlimits_i^m {{y_i}} ({x_i} - frac{1}{m}sumlimits_i^m {{x_i}} )}}{{sumlimits_i^m {x_i^2} - frac{1}{m}{{(sumlimits_i^m {{x_i}} )}^2}}}\
    b = frac{1}{m}sumlimits_i^m {({y_i} - omega {x_i})}
    end{array}]

    更一般的情况,针对数据集$D = { ({{f{x}}_1},{y_1}),({{f{x}}_2},{y_2}),...,({{f{x}}_m},{y_m})} $,其中${{f{x}}_i} = { {x_{i1}},{x_{i2}},...,{x_{id}}} $,包含d维特征。试图学得$f({{f{x}}_i}) = {{f{omega }}^T}{{f{x}}_i} + b$,使得$f({f{x}_i}) simeq {y_i}$,这称之为“多元线性回归”。

    类似用最小二乘法求得${f{hat omega }} = ({f{omega }};b)$最优解的闭式解,相应的数据集表示为,

    [{f{X}} = left( {egin{array}{*{20}{c}}
    {{f{x}}_{f{1}}^{f{T}}}&1\
    {{f{x}}_{f{2}}^{f{T}}}&1\
    {...}&1\
    {{f{x}}_{f{m}}^{f{T}}}&1
    end{array}} ight)]

    [{f{y}} = ({y_1};{y_2};...{y_m})]

    令优化目标值${E_{{f{hat omega }}}} = {({f{y}} - {f{Xhat omega }})^T}({f{y}} - {f{Xhat omega }})$,求偏导为0,得$f{hat omega }$最优解的闭式解,

    [{{{f{hat omega }}}^*} = mathop {arg min }limits_{{f{hat omega }}} {({f{y}} - {f{Xhat omega }})^T}({f{y}} - {f{Xhat omega }})]

    [frac{{partial {E_{{f{hat omega }}}}}}{{{f{hat omega }}}} = frac{{partial {{({f{y}} - {f{Xhat omega }})}^T}}}{{{f{hat omega }}}}({f{y}} - {f{Xhat omega }}) + {({f{y}} - {f{Xhat omega }})^T}frac{{partial ({f{y}} - {f{Xhat omega }})}}{{{f{hat omega }}}}]

    [ =  - {{f{X}}^{f{T}}}({f{y}} - {f{Xhat omega }}) - {({f{y}} - {f{Xhat omega }})^T}{f{X}}]

    (标量的转置等于其本身)

    [ = 2{{f{X}}^{f{T}}}({f{Xhat omega }} - {f{y}})]

    但涉及矩阵逆计算,要复杂很多,下面做一个简单的讨论。当${{f{X}}^{f{T}}}{f{X}}$为满秩矩阵或正定矩阵时,可求其逆矩阵,

    [{f{hat omega }} = {({{f{X}}^{f{T}}}{f{X}})^{ - 1}}{{f{X}}^{f{T}}}{f{y}}]

    多元线性回归模型为,

     [f({{{f{hat x}}}_i}) = {f{hat x}}_i^T{({{f{X}}^{f{T}}}{f{X}})^{ - 1}}{{f{X}}^{f{T}}}{f{y}}]

    然而,现实任务中然而,现实任务中 xTx 往往不是满秩矩.例如在许多任务中我们会遇到大量的变量,其数目甚至超过样例数,导致 X 的列数多于行, xTx 显然不秩。此时可解出多个解它们都能使均方误差小化。选择哪个解作为输出 ,将由学习算法的归纳偏好决定, 常见的做法是引入正则化 (regularization)项.

    线性回归模型的一般形式为:

    [y = {{f{omega }}^T}{f{x}} + b]

    如果我们的数据是成指数变化的,那么可以把线性回归模型扩展为:

    [ln y = {{f{omega }}^T}{f{x}} + b]

    更一般的,考虑单调可微函数$g(ullet)$,将线性回归模型的预测值与真实标记联系起来,那么线性回归模型扩展为

    [y = {g^{ - 1}}({{f{omega }}^T}{f{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}} = {{f{omega }}^T}{f{x}} + b]

     [ln frac{{p(y = 1|x)}}{{p(y = 0|x)}} = {{f{omega }}^T}{f{x}} + b]

    该模型是在用线性回归模型的预测值去逼近真实标记的对数($ln$)几率($frac{y}{1 - y}$),其对应的模型成为“logistic回归”。

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

    [y = p(y = 1|x) = frac{1}{{1 + {e^{ - {{f{omega }}^T}{f{x}} - b}}}}]

    [y = p(y = 1|x) = frac{1}{{1 + {e^{  {{f{omega }}^T}{f{x}} + b}}}}]

    极大似然估计的思想为:对于所有的抽样样本,使它们联合概率${p({y_i}|{{f{x}}_i};{f{w}},b)}$达到最大的系数便是统计模型最优的系数。

    给定数据集D,因为对数函数ln(x)是单调增函数,且可以把乘除转换成加减,利于数学计算,所以logistic回归模型最大化“对数似然”,

    [l({f{w}},b) = sumlimits_{i = 1}^m {ln p({y_i}|{{f{x}}_i};{f{w}},b)} ]

    为了便于讨论,令$f{eta}= ({f{w}};b)$,$widehat{f{x}}= (f{x};1)$,对数似然等价为最小化

    [l({f{eta }}) = sumlimits_{i = 1}^m {( - {y_i}{{f{eta }}^T}{{widehat {f{x}}}_i} + ln (1 + {e^{{{f{eta }}^T}{{widehat {f{x}}}_i}}}))} ]

    可根据经典数值优化算法如梯度下降法等求得其$f{eta }$的最优解,

    [{{f{eta }}^*} = mathop {arg min }limits_{f{eta }} l({f{eta }})]


    logistic回归算法

    输入:训练集$D = { ({{f{x}}_1},{y_1}),({{f{x}}_2},{y_2}),...,({{f{x}}_m},{y_m})} $;

               学习率$alpha$;

       终止条件$varepsilon$.

    过程:

    1:令$f{eta}= ({f{w}};b)$,$widehat{f{x}}= (f{x};1)$

    2:针对$l({f{eta }}) = sumlimits_{i = 1}^m {( - {y_i}{{f{eta }}^T}{{widehat {f{x}}}_i} + ln (1 + {e^{{{f{eta }}^T}{{widehat {f{x}}}_i}}}))} $

          利用随机梯度下降法求最优解${{f{eta }}^*} = mathop {arg min }limits_{f{eta }} l({f{eta }})$

    3:初始化$f{eta}_0$

    4:repeat

    5:从训练集D中随机挑选一个数据${f{x}_i}, y_i$

    6:以学习率$alpha$的速度朝梯度下降的方向更新参数$f{eta}$

    7:end for

    8:until $Delta {f{eta }} le varepsilon $

    输出:logistic回归模型参数$f{w},b$


    参考:

    机器学习西瓜书 周志华

  • 相关阅读:
    初入水:vector
    Sort Colors
    Palindrome Partitioning II
    Search for a Range
    Container With Most Water
    Palindrome Partitioning
    Longest Consecutive Sequence
    简单写了一个堆排序
    Best Time to Buy and Sell Stock III
    4-7
  • 原文地址:https://www.cnblogs.com/yijuncheng/p/9928045.html
Copyright © 2020-2023  润新知