zoukankan      html  css  js  c++  java
  • 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型

         本文简单整理了以下内容:

    (一)线性回归

    (二)二分类:二项Logistic回归

    (三)多分类:Softmax回归

    (四)广义线性模型 

          闲话:二项Logistic回归是我去年入门机器学习时学的第一个模型(忘记了为什么看完《统计学习方法》第一章之后直接就跳去了第六章,好像是对“逻辑斯蒂”这个名字很感兴趣?。。。),对照《机器学习实战》写了几行代码敲了一个toy版本,当时觉得还是挺有意思的。我觉得这个模型很适合用来入门(但是必须注意这个模型有很多很多很多很多可以展开的地方)。更有意思的是那时候还不会矩阵微积分,推导梯度时还是把矩阵全都展开求然后再归纳成矩阵形式的(牛顿法要用的二阶梯度也是)。。。

          下面的文字中,“Logistic回归”都表示用于二分类的二项Logistic回归。

          首先约定一下记号。

          样本的特征矩阵 $X=( extbf x_1, extbf x_2,..., extbf x_N)=({ extbf x^{(1)}}^{ op};{ extbf x^{(2)}}^{ op};...;{ extbf x^{(d)}}^{ op})inmathbb R^{d imes N}$ ,$X_{ji}=x_i^{(j)}$;

          $N$ 是训练集的样本数,每个样本都表示成 $ extbf x_iinmathbb R^d$ 的列向量,真实标签为 $y_i$ ;如果出现了 $ extbf x$ 这样没有上下标的记号就泛指任一样本,相当于省略下标,真实标签为 $y$ ;特别地,对于二分类问题,$y$ 只可能取0、1两个值。

          $d$ 是特征的维数,每维特征都表示成 $ extbf x^{(j)}inmathbb R^N$ 的列向量;如果出现了 $x^{(j)}$ 这样的记号就泛指任一样本的第 $j$ 维特征,相当于省略下标;

          权重向量 $ extbf w=(w_1,w_2,...,w_d)^{ op}inmathbb R^d$ ,偏置 $binmathbb R$ 。

          $ extbf y$ 在本文可能表达两种含义:一种是表示全部训练样本的真实标签组成的列向量 $ extbf y=(y_1,y_2,...,y_N)^{ op}inmathbb R^N$ ;另一种含义则是表示样本 $ extbf x$ 的one-hot表示 $ extbf y=(0,0,...,0,1,0,...,0)^{ op}inmathbb R^C$(只有真实类别的那一维是1,其他维均是0),相当于 $ extbf y_i$ 省略了下标。

          可能看起来有点别扭,因为对于样本来说,下标是序号索引、上标是特征索引;而对于权重来说,下标是特征索引。

    (一)线性回归

        1. 概述

          线性回归(Linear regression)就是用一个超平面去拟合样本点的标签:

    $$f( extbf x)= extbf w^{ op} extbf x+b$$

          对于一维特征的情况,就是用一条直线去拟合样本点,如下图所示。为了方便起见,将偏置也记到权重向量中并保持记号不变,同时每个样本增加一维特征并保持记号不变:$ extbf w=(1,w_1,w_3,...,w_d)^{ op}$ ,$ extbf x=(1,x^{(1)},x^{(2)},...,x^{(d)})^{ op}$ ,$f( extbf x)= extbf w^{ op} extbf x$ 。

    图片来源:[1]

          2. 求解

          对于回归任务,最常使用的损失函数是平方损失函数 $L(y,f( extbf x))=(y-f( extbf x))^2$ ,对应的经验风险就是均方误差(Mean square error,MSE)

    $$mathcal R=frac1Nsum_{i=1}^N(y_i-f( extbf x_i))^2=frac1N|X^{ op} extbf w- extbf y|^2=frac1N(X^{ op} extbf w- extbf y)^{ op}(X^{ op} extbf w- extbf y)$$

    该式的 $ extbf y$ 表示全部训练样本的真实标签组成的列向量 $ extbf y=(y_1,y_2,...,y_N)^{ op}inmathbb R^N$ 。

          解一:正规方程组(Normal equations可以直接用 $R$ 的一阶导数等于0来求极值点(省略常系数):

    $$frac{partial mathcal R}{partial extbf w}=2X(X^{ op} extbf w- extbf y)=0Rightarrow extbf w=(XX^{ op})^{-1}X extbf y$$

          可以看出,这个不就是最小二乘法(Ordinary Least Squares,OLS解方程 $X^{ op} extbf w= extbf y$ 嘛。值得注意的是 $(XX^{ op})^{-1}X$ 其实就是 $X^{ op}$ 的伪逆,计算伪逆的复杂度很高。

          需要注意一个问题:$XX^{ op}$ 需要是可逆矩阵,也就是说每维特征之间线性无关,才可以求得唯一解。当其不可逆(特征个数比样本个数还要多)时,解不唯一,需要用梯度下降(Gradient descent)来迭代求解。另外,最小二乘法的结果总是低偏差高方差的。

        (注:部分求导法则,使用分母布局,维度为 $q$ 的列向量对维度为 $p$ 的列向量求导后得到的矩阵维数为 $p imes q$ 。关于矩阵求导,可以参考 [8] 。

    图片来源:[1]

    $$frac{partial A^{ op} extbf x}{partial extbf x}=frac{partial extbf x^{ op}A}{partial extbf x}=A$$

    $$frac{partial extbf y^{ op} extbf z}{partial extbf x}=frac{partial extbf y}{partial extbf x} extbf z+frac{partial extbf z}{partial extbf x} extbf y$$

    $$frac{partial extbf y^{ op}A extbf z}{partial extbf x}=frac{partial extbf y}{partial extbf x}A extbf z+frac{partial extbf z}{partial extbf x}A^{ op} extbf y$$

    $$frac{partial y extbf z}{partial extbf x}=frac{partial y}{partial extbf x} extbf z^{ op}+yfrac{partial extbf z}{partial extbf x}$$

    $$frac{partial ext{tr}AB}{partial A}=B^{ op}quadquadfrac{partial ext{tr}AB}{partial A^{ op}}=B$$

    $$frac{partial f(A)}{partial A^{ op}}=(frac{partial f(A)}{partial A})^{ op}$$

          解二:最小均方误差(least mean squares,LMS)规则,也叫Widrow-Hoff规则,用梯度下降法求解。梯度在上面已经求出来了:

    $$frac{partial mathcal R}{partial extbf w}=2X(X^{ op} extbf w- extbf y)=2X(hat{ extbf y}- extbf y)$$

    该式的 $hat{ extbf y}$ 表示模型对全部训练样本的输出标签组成的列向量 $hat{ extbf y}=(hat y_1,hat y_2,...,hat y_N)^{ op}inmathbb R^N$ 。

    这样的方式是每更新一次参数就要计算整个训练集上的梯度,是批梯度下降(batch GD);如果把这个过程拆成 $N$ 次,也就是每次只随机挑选一个样本计算梯度,就是随机梯度下降(Stochastic GD,SGD)。还有一种是mini-batch梯度下降,每次挑选一个小批量样本计算梯度。整个训练集计算完一次梯度称为“一轮”。

          3. 均方误差优化目标的概率解释

          重新考虑以下问题:设样本的特征和标签存在关系 $y_i= extbf w^{ op} extbf x_i+epsilon_i$ ,并假设每个 $epsilon_i$ 都是服从高斯分布的随机变量 $epsilonsim N(0,sigma^2)$ 的iid样本(之所以假设为高斯分布,是认为误差由多个独立的随机因素构成,根据多个独立随机变量之和趋于高斯分布,所以假设 $epsilon$ 服从高斯分布)。从而有

    $$p(epsilon_i)=frac1{sqrt{2pi}sigma}exp(-frac{epsilon_i^2}{2sigma^2})$$

    也就是说

    $$p(y_i| extbf x_i; extbf w)=frac1{sqrt{2pi}sigma}exp(-frac{(y_i- extbf w^{ op} extbf x_i)^2}{2sigma^2})$$

    用分号隔开是因为在频率学派的观点下 $ extbf w$ 不是随机变量。

          进一步用极大似然估计来求取参数 $ extbf w$ :对数似然函数为

    $$l( extbf w)=logprod_{i=1}^Np(y_i| extbf x_i; extbf w)=logprod_{i=1}^Nfrac1{sqrt{2pi}sigma}exp(-frac{(y_i- extbf w^{ op} extbf x_i)^2}{2sigma^2})$$

    再往后写一步就可以知道,极大似然估计和最小化均方误差是一致的。

          4. 局部加权回归(Locally weighted regression,LWR

          相比于普通的线性回归,LWR对于一个点来说使用其附近的点来做回归(而不是全部点)。

          相比于线性回归的优化目标 $sum_{i=1}^N(y_i- extbf w^{ op} extbf x_i)^2$ ,局部加权线性回归的优化目标为

    $$sum_{i=1}^Nomega_i(y_i- extbf w^{ op} extbf x_i)^2$$

    式中 $omega_i$ 就是非负值的权重,一个常用的选择为 $omega_i=exp(-frac{( extbf x_i- extbf x)^{ op}( extbf x_i- extbf x)}{2 au^2})$ ,$ au$ 是指定的带宽参数(bandwidth)。不难看出,LWR每预测一个点的值都要重新得到一个新的模型。

    (二)二项Logistic回归

        1. 概述

          对于分类任务,一个可行的思路是把基于样本 $ extbf x$ 计算出的连续值 $z$(比如,线性加权值 $z= extbf w^{ op} extbf x$ )和离散的类别标签值联系起来。

          二项Logistic回归(Binomial logistic regression)是工业界应用非常广泛的一个经典的二分类模型。一般就叫逻辑回归,这里无意争论到底应该怎么翻译,虽然古人云“名不正则言不顺”,但提起“逻辑回归”大家都知道这是哪个东西,我觉得这就够了。对Logistic回归的历史感兴趣的朋友们可以看一下 [7] 的介绍。首先使用logistic函数 $sigma(cdot)$ 将 $ z$ 从实数空间 $(-infty,+infty)$ 映射到概率空间 $(0,1)$ 上,可以将映射之后的值 $sigma(z)$ 解释为样本 $ extbf x$ 属于正类(记类别标记为1)的可能性,也就是后验概率的估计值:

    $$hat y=P(y=1| extbf x)=sigma(z)=frac{1}{1+exp(-z)}$$

          既然解释成后验概率,然后就可以给出分类规则(最大后验概率决策):当 $P(y=1| extbf x)>0.5$ ,认为样本 $ extbf x$ 属于正类;否则样本 $ extbf x$ 属于正类属于负类。

          下面两个图是一维特征、二分类的情况。大致说了线性回归为什么不可以用来分类。因为线性回归输出连续值,而类别标签只有0、1两个,所以需要人为设定一个阈值,将输出值与该值比较大小,从而来判断模型将样本分到哪一类,而这个阈值会受到离群点(outlier)的牵制,因为线性回归的拟合曲线会因为离群点而受到较大影响,所以不好确定;相比之下,logistic回归不会受到图示离群点的牵制。

    图片来源:[5]、[1]

          待补充:为什么使用logistic函数归到区间 $(0,1)$ 之后就可以解释成概率了。

          2. 决策边界

          下面说一下决策边界。当 $P(y=1| extbf x)=0.5$ 时,意味着 $z=0$ ,这就是决策边界的方程。换句话说,$z$ 的形式决定了逻辑回归的决策面是线性的还是非线性的。如果 $z= extbf w^{ op} extbf x$ ,那决策面当然是线性的;但是如果 $z$ 的形式并不是特征的线性组合,而是非线性的形式,当然也可以是非常复杂的决策面。

    图片来源:[1]

          下面我们只讨论线性决策面的情况。Logistic回归模型为:

    $$hat y=P(y=1| extbf x)=sigma( extbf w^{ op} extbf x)=frac{exp( extbf w^{ op} extbf x)}{1+exp( extbf w^{ op} extbf x)}$$

    $$P(y=0| extbf x)=1-sigma( extbf w^{ op} extbf x)=frac{1}{1+exp( extbf w^{ op} extbf x)}$$

          稍加变换就可以看出Logistic回归和线性回归的区别:

          线性回归是用 $ extbf w^{ op} extbf x$ 去拟合 $y$ ;二项Logistic回归则是去拟合 $ln dfrac{hat y}{1-hat y}$ ,换句话说就是在拟合对数几率(log-odds,几率是样本属于正类的可能性与属于负类的可能性的比值)。也就是说,二项Logistic回归在对对数几率做回归,进而转化为解决分类问题。

          3. 求解

          (1)经验风险最小化:极大似然估计

          logistic函数 $sigma(cdot)$ 的导函数为 $sigma'(cdot)=sigma(cdot)odot ( extbf 1-sigma(cdot))$ 。也就是说当自变量为向量时,函数对逐元素进行计算,输出同维度的向量。

          首先从经验风险最小化的角度推导参数的求解过程。使用交叉熵损失函数(单标签情况下就是对数损失函数),模型对一个样本 $( extbf x,y)$ 的对数损失为:

    $$egin{aligned}mathcal L&=-iggl(yln P(y=1| extbf x)+(1-y)ln P(y=0| extbf x)iggr)\&=-iggl(ylnfrac{exp( extbf w^{ op} extbf x)}{1+exp( extbf w^{ op} extbf x)}+(1-y)lnfrac{1}{1+exp( extbf w^{ op} extbf x)}iggr)\&=-iggl(y extbf w^{ op} extbf x-ln(1+exp( extbf w^{ op} extbf x))iggr)end{aligned}$$

          所以经验风险为:

    $$mathcal R=frac1Nsum_{i=1}^Nmathcal L_i=-frac1Nsum_{i=1}^Niggl(y_i extbf w^{ op} extbf x_i-ln(1+exp( extbf w^{ op} extbf x_i))iggr)$$

          如果不加正则的话,优化目标为上式最小化。前面的系数 $dfrac1N$ 也就是训练样本数的倒数,是定值,去掉后不影响优化目标。 

          从极大似然估计的角度也可以推出等价的优化目标:对数似然函数为

    $$egin{aligned}l( extbf w)&=ln[prod_{i=1}^NP(y_i| extbf x_i; extbf w)]\&=ln[prod_{i=1}^NP(y_i=1| extbf x_i)^{y_i}P(y_i=0| extbf x_i)^{1-y_i}]\&=sum_{i=1}^Niggl(y_iln P(y_i=1| extbf x_i)+(1-y_i)ln P(y_i=0| extbf x_i)iggr)end{aligned}$$

    该式最大化就等价于经验风险最小化。

          由于优化目标求不出解析解,但它是高阶连续可微的凸函数,所以可以用迭代的方法,如梯度下降法(GD)。

          因为SGD每次迭代是随机选择一个样本,所以这里先求取模型对一个样本的损失的梯度(经验风险的梯度无非就是加个求和号再除以训练样本数而已):

    $$frac{partial mathcal L}{partial extbf w}=-iggl(y extbf x- extbf xfrac{exp( extbf w^{ op} extbf x)}{1+exp( extbf w^{ op} extbf x)}iggr)$$

    可以发现其实它就是个特别简单的形式:

    $$frac{partial mathcal L}{partial extbf w}=-(y-hat y) extbf x$$

          经验风险的梯度可以写成矩阵的形式( $ extbf y$ 表示训练集样本的真实标签组成的列向量),省略系数 $dfrac1N$ :

    $$egin{aligned}frac{partial mathcal R}{partial extbf w}&=-sum_{i=1}^N (y_i-sigma( extbf w^{ op} extbf x_i)) extbf x_i\&= -X( extbf y-sigma(X^{ op} extbf w))\&= -X( extbf y-hat{ extbf y})end{aligned}$$

    可以很容易把这种批处理GD的形式改写成mini-batch SGD的形式。

          不难看出,这个梯度形式和线性回归是一样的。(后面会知道,Softmax回归的梯度形式和它们也是一样的。)

          这里顺便把二阶梯度也求一下,可以使用牛顿法或拟牛顿法来迭代求取参数:

    $$frac{partial mathcal L}{partial extbf w}=-(y-sigma( extbf w^{ op} extbf x)) extbf x=sigma( extbf w^{ op} extbf x) extbf x -y extbf x$$

    $$egin{aligned}frac{partial^2mathcal L}{partial extbf w^2}&=frac{partial(sigma( extbf w^{ op} extbf x) extbf x -y extbf x)}{partial extbf w}\&=frac{sigma( extbf w^{ op} extbf x)}{partial extbf w} extbf x^{ op}\&=sigma( extbf w^{ op} extbf x)(1-sigma( extbf w^{ op} extbf x)) extbf x extbf x^{ op}\&=hat y(1-hat y) extbf x extbf x^{ op}end{aligned}$$

    $$frac{partial^2mathcal R}{partial extbf w^2}=sum_{i=1}^Nhat y_i(1-hat y_i) extbf x_i extbf x_i^{ op}$$

          (2)结构风险最小化:最大后验概率估计

          如果将正则项加上,那就是用结构风险最小化的准则来学习参数,常用的有参数的 $L_1$ 范数(LASSO)和 $L_2$ 范数(Ridge):

    $$R_{ ext{srm}}=R+lambda| extbf w|_1$$

    $$R_{ ext{srm}}=R+lambda| extbf w|_2^2$$

    从梯度的形式来看,相比于不加正则的时候,变化量为

    $$frac{partial | extbf w|_1}{partial w_j}=frac{partial sum_{j=1}^d|w_j|}{partial w_j}=1 ext{ if }w_j>0 ext{ else if }w_j<0\,-1$$

    $$frac{partial | extbf w|_2^2}{partial w_j}=frac{partial sum_{j=1}^d|w_j|^2}{partial w_j}=2w_j$$

    如果 $w_j$ 为正,那么新迭代点相比之前会减去一个正数而变小;如果 $w_j$ 为负,那么新迭代点相比之前会减去一个负数而变大。也就是说避免了特别大或者特别小的权重值出现,可以使权重的绝对值变小,从而避免过于依赖某些特征的情况,减轻过拟合。

          加 $L_1$ 正则时会使某些维的参数变成0,这就是所谓的稀疏解,相当于进行了一个特征选择的过程;加 $L_2$ 正则时权重的绝对值会变小,起到平滑化的作用。更详细地可以参考[4]。

          4. 贝叶斯角度

          如果从贝叶斯估计的角度来说,正则项相当于加上了先验知识:加 $L_1$ 正则相当于是认为参数服从Laplace分布,加 $L_2$ 正则相当于是认为参数服从均值为0、协方差为 $frac{1}{lambda}$ 的高斯分布。此时,结构风险最小化等价于最大后验概率估计。具体可以参考[6][9]。

          5. 与其他模型的关系

          最显然的一个就是全连接的前馈神经网络就是多层Logistic回归模型(不知道为什么被叫成MLP,多层感知机)。其与朴素贝叶斯的联系可以看本系列博客第二篇。更详细地请参考 [7] ,后面有空的话会简单谈一点。

          6. 并行

          这里参考[7]。

          

    (三)Softmax回归

          Softmax回归可以用于多类分类问题,而不像Logistic回归等二分类模型那样需要借助One-vs-rest。设样本 $ extbf x_i$ 的真实类别标签 $y_iin{1,2,...,C}$ ,one-hot向量为 $ extbf y_i=(0,0,...,0,1,0,...,0)^{ op}inmathbb R^C$ (只有真实类别的那一维是1)。

          与Logistic回归类似,Softmax回归输出的是样本 $ extbf x_i$ 属于各个类别的后验概率的估计值 $P(y_i=c| extbf x_i),cin{1,2,...,C}$ :

    $$z_c= extbf w_c^{ op} extbf x_i$$

    $$egin{aligned}P(y_i=c| extbf x_i)&= ext{softmax}(z_c)\&=frac{exp(z_c)}{sum_{j=1}^Cexp(z_j)}\&=frac{exp( extbf w_c^{ op} extbf x_i)}{sum_{j=1}^Cexp( extbf w_j^{ op} extbf x_i)},quad cin{1,2,...,C}end{aligned}$$

          将模型对一个样本 $( extbf x_i, extbf y_i)$ 的后验概率估计组成列向量

    $$hat{ extbf y}_i=(P(y_i=1| extbf x),P(y_i=2| extbf x),...,P(y_i=C| extbf x))^{ op}inmathbb R^C$$

    并将各个类别的权重向量 $ extbf w_cinmathbb R^d$ 组成权重矩阵 $W=( extbf w_1, extbf w_2,..., extbf w_C)inmathbb R^{d imes C}$ ,可以写成如下形式:

    $$ extbf z_i=(z_1,z_2,...,z_C)^{ op}=W^{ op} extbf x_i$$

    $$egin{aligned}hat{ extbf y}_i&= ext{softmax}( extbf z_i)=frac{exp( extbf z_i)}{sum_{j=1}^Cexp(z_j)}\&=frac{exp(W^{ op} extbf x_i)}{sum_{j=1}^Cexp( extbf w_j^{ op} extbf x)}=frac{exp(W^{ op} extbf x_i)}{ extbf 1^{ op}exp(W^{ op} extbf x_i)}\&=frac{exp( extbf z_i)}{ extbf 1^{ op}exp( extbf z_i)}end{aligned}$$

          使用交叉熵损失函数,模型对一个样本 $( extbf x_i, extbf y_i)$ 的损失为:

    $$mathcal L_i=- extbf y_i^{ op}lnhat{ extbf y}_i=- extbf y_i^{ op}ln ext{softmax}( extbf z_i)=- extbf y_i^{ op}lnfrac{exp( extbf z_i)}{ extbf 1^{ op}exp( extbf z_i)}$$

    所以经验风险(省略系数 $dfrac1N$ )为

    $$mathcal R=sum_{i=1}^Nmathcal L_i=-sum_{i=1}^Niggl( extbf y_i^{ op}ln ext{softmax}(W^{ op} extbf x_i)iggr)$$

          下面求取对一个样本 $( extbf x_i, extbf y_i)$ 的损失的梯度。先上结论:

    $$frac{partial mathcal L_i}{partial extbf w_c}=-[ extbf y_i-hat{ extbf y}_i]_c extbf x_i,quad cin{1,2,...,C}$$

    $$frac{partial mathcal L_i}{partial W}=- extbf x_i( extbf y_i-hat{ extbf y}_i)^{ op}$$

    式中 $[ extbf y_i]_c$ 表示的是向量 $ extbf y_i$ 的第 $c$ 维元素的值。

          经验风险的梯度依旧可以写成矩阵的形式:

    $$frac{partial mathcal R}{partial W}=sum_{i=1}^Nfrac{partial mathcal L_i}{partial W}=-X(Y-hat Y)$$

    其中 $Yinmathbb R^{N imes C}$ 是one-hot标签构成的矩阵,每一行都是一个样本的one-hot标签;$hat Y$ 含义类似。

          Softmax回归的 $dfrac{partial mathcal L_i}{partial extbf w_c}$ 的形式和Logistic回归的 $dfrac{partial mathcal L_i}{partial extbf w}$ 是一样的。

          下面给出推导过程。

          $dfrac{partial mathcal L_i}{partial extbf w_c}$ 的求法有三种:

          (1)普通方法,一步步推,可以参考我很早之前写的一篇讲word2vec的博客,我觉得写的还挺清楚的;

          (2)[1] 中的方法,在第三章;

          (3)[3] 中的方法,而且用这个方法可以直接把 $dfrac{partial mathcal L_i}{partial W}$ 求出来。

          $dfrac{partial mathcal L_i}{partial W}$ 推导方式可以是用 $dfrac{partial mathcal L_i}{partial extbf w_c}$ “拼”成对矩阵 $W$ 的梯度。下面使用 [3] 里面介绍的技巧,直接求对矩阵 $W$ 的梯度。

          [3] 介绍的是这样形式的求导:已知矩阵 $X$ ,函数 $f(X)$ 的函数值为标量,求 $dfrac{partial f}{partial X}$ 。一种典型的例子就是求取损失对权重矩阵的导数。

          对于一元微积分,$ ext{d}f=f'(x) ext{d}x$ ;多元微积分,$ ext{d}f=sum_idfrac{partial f}{partial x_i} ext{d}x_i=(dfrac{partial f}{partial extbf x})^{ op} ext{d} extbf x$;由此建立矩阵导数和微分的联系:

    $$ ext{d}f=sum_{i,j}frac{partial f}{partial X_{ij}} ext{d}X_{ij}= ext{tr}((frac{partial f}{partial X})^{ op} ext{d}X)$$

          上式第二个等号成立是因为对于两个同阶方阵有 $ ext{tr}(A^{ op}B)=sum_{i,j}A_{ij}B_{ij}$ 。求解的流程就是,先求微分 $ ext{d}f$ 表达式,然后再套上迹(因为标量的迹等于标量本身),然后再把表达式 $ ext{tr}( ext{d}f)$ 和 $ ext{tr}((dfrac{partial f}{partial X})^{ op} ext{d}X)$ 进行比对,进而把 $dfrac{partial f}{partial X}$ 给“挖”出来。

          所以,问题就从求梯度转化成了求微分。求微分当然少不了很多法则和技巧,下面随着讲随着介绍。接下来就来求取Softmax回归中的 $dfrac{partial mathcal L}{partial W}$ (样本序号 $i$ 被省略)。

          首先求取 $ ext{d}mathcal L$ 。

    $$egin{aligned}mathcal L&=- extbf y^{ op}lnfrac{exp( extbf z)}{ extbf 1^{ op}exp( extbf z)}\&=- extbf y^{ op}( extbf z-lnegin{pmatrix} extbf 1^{ op}exp( extbf z) \ extbf 1^{ op}exp( extbf z) \ vdots \ extbf 1^{ op}exp( extbf z)end{pmatrix})quad extbf 1^{ op}exp( extbf z) ext{是标量}\&=ln( extbf 1^{ op}exp( extbf z))- extbf y^{ op} extbf zend{aligned}$$

          根据法则 $ ext{d}(g(X))=g'(X)odot ext{d}X$ 、$ ext{d}(XY)=( ext{d}X)Y+X( ext{d}Y)$,可得

    $$ ext{d}(ln( extbf 1^{ op}exp( extbf z)))=frac{1}{ extbf 1^{ op}exp( extbf z)}odot ext{d}( extbf 1^{ op}exp( extbf z))$$

    $$ ext{d}( extbf 1^{ op}exp( extbf z))= extbf 1^{ op} ext{d}(exp( extbf z))= extbf 1^{ op}(exp( extbf z)odot ext{d} extbf z)$$

          所以

    $$ ext{d}mathcal L=frac{ extbf 1^{ op}(exp( extbf z)odot ext{d} extbf z)}{ extbf 1^{ op}exp( extbf z)}- extbf y^{ op} ext{d} extbf z$$

          现在可以套上迹,根据恒等式 $ ext{tr}(A^{ op}(Bodot C))= ext{tr}((Aodot B)^{ op}C)=sum_{i,j}A_{ij}B_{ij}C_{ij}$ ,可得

    $$egin{aligned} ext{d}mathcal L&= ext{tr}(frac{( extbf 1odot exp( extbf z))^{ op} ext{d} extbf z}{ extbf 1^{ op}exp( extbf z)})- ext{tr}( extbf y^{ op} ext{d} extbf z)\&= ext{tr}(iggl(frac{(exp( extbf z))^{ op}}{ extbf 1^{ op}exp( extbf z)}- extbf y^{ op}iggr) ext{d} extbf z)\&= ext{tr}((hat{ extbf y}- extbf y)^{ op} ext{d} extbf z)\&= ext{tr}((frac{partial L}{partial extbf z})^{ op} ext{d} extbf z)end{aligned}$$

          现在已经成功了一半,因为已经有了 $dfrac{partial mathcal L}{partial extbf z}$ 。因为

    $$ ext{d} extbf z= ext{d}(W^{ op} extbf x)=( ext{d}W^{ op}) extbf x+W^{ op} ext{d} extbf x=( ext{d}W^{ op}) extbf x$$

    并且 $ ext{tr}(ABC)= ext{tr}(BCA)= ext{tr}(CAB)$ ,所以有

    $$egin{aligned} ext{d}mathcal L&= ext{tr}((frac{partial L}{partial extbf z})^{ op}( ext{d}W^{ op}) extbf x)\&= ext{tr}( extbf x(frac{partial L}{partial extbf z})^{ op} ext{d}W^{ op})\&= ext{tr}((frac{partial L}{partial W^{ op}})^{ op} ext{d}W^{ op})end{aligned}$$

    也就是说,$dfrac{partial mathcal L}{partial W^{ op}}=dfrac{partial mathcal L}{partial extbf z} extbf x^{ op}=(hat{ extbf y}- extbf y) extbf x^{ op}$,所以

    $$frac{partial mathcal L}{partial W}=- extbf x( extbf y-hat{ extbf y})^{ op}$$

    (四)广义线性模型

          其实上面介绍的三种模型,都属于广义线性模型(Generalized linear model,GLM)。

          1. 指数族分布

          说到GLM,就不得不说指数族分布。设有一随机变量 $Y$ ,观测值为 $y$ ,那么指数族分布(Exponential family distributions)的 PDF/PMF 为如下函数:

    $$p(y;oldsymboleta)=b(y)exp(oldsymboleta^{ op}T(y)-a(oldsymboleta))$$

          式中,$oldsymboleta$ 被称为nature parameter或canonical parameter,$T(y)$ 是充分统计量(通常设 $T(y)=y$ ),$a(oldsymboleta)$ 是log partition function,$exp(-a(oldsymboleta))$ 用来保证PDF的积分为1(或PMF的加和为1)。把随机变量服从指数族分布记为 $ Ysim ExponentialFamily(oldsymboleta)$ 。伯努利分布(两点分布)、高斯分布、多项式分布、泊松分布、指数分布、伽马分布、贝塔分布、狄利克雷分布、维希特分布……等等都属于指数族分布。

          通过选取不同的 $oldsymboleta$ ,可以得到不同的分布:

          例如,对于参数为 $phi$ 两点分布,其PMF为

    $$P(y;phi)=phi^y(1-phi)^{1-y}=exp(yln(frac{phi}{1-phi})+ln(1-phi))$$

    所以

    $$phi=frac{1}{1+exp(-eta)}$$

    这正是logistic函数。

          再比如参数为均值 $mu$ 、方差1的高斯分布,其PDF为

    $$p(y;mu)=frac{1}{sqrt{2pi}}exp(-frac12(y-mu)^2)=frac{1}{sqrt{2pi}}exp(-frac12y^2)exp(mu y-frac12mu^2)$$

    所以

    $$mu=eta$$

          2. 广义线性模型

          通过指数族分布,可以构建广义线性模型。设模型的参数为 $oldsymbol heta$ ,对于记 $X$ 、$Y$ 分别是代表特征和标签的随机变量,观测值为 $ extbf x$ 、$y$ 。首先假定如下三点:

          1. 条件分布服从指数族分布,即 $Y|X;oldsymbol hetasim ExponentialFamily(oldsymboleta)$ 。例如,

          2. 给定特征 $ extbf x$ ,目标是预测 $E[T(y)| extbf x]$ 。因为通常设  $T(y)=y$ ,所以目标就是预测 $E[y| extbf x]$ 。

             实际上,就相当于对模型输出值进行预测。用Logistic回归举例:模型输出值为 $P(y=1| extbf x)$ ,随机变量 $Y$ 服从两点分布(只可能取0、1两个值),所以 $E[y| extbf x;oldsymbol heta]=0 imes P(y=0| extbf x)+1 imes P(y=1| extbf x)=P(y=1| extbf x)$

          3. 指数族分布的参数 $oldsymboleta$ 和给定特征 $ extbf x$ 的关系为线性:$oldsymboleta=oldsymbol heta^{ op} extbf x$

          下面可以开始利用不同的 $oldsymboleta$ 来构建GLM。

          (1)线性回归

          对于第一个假设,设指数族分布是参数为 $mu$ 的高斯分布,即 $mu=eta$ ;那么对于第二个假设,可知模型输出值为 $mu$ ,结合第一个假设可知模型输出值为 $eta$ ;根据第三个假设 $oldsymboleta=oldsymbol heta^{ op} extbf x$ ,可知模型输出值为 $oldsymbol heta^{ op} extbf x$ 。这就推导出了线性回归模型。

          (2)Logistic回归

          对于第一个假设,设指数族分布是参数为 $phi$ 的伯努利分布,即 $phi=frac{1}{1+exp(-eta)}$ ;那么对于第二个假设,因为伯努利分布的期望为 $phi$ ,可知模型输出值为 $phi$ ;根据第三个假设 $oldsymboleta=oldsymbol heta^{ op} extbf x$ ,可知模型输出值为 $phi=frac{1}{1+exp(-oldsymbol heta^{ op} extbf x)}$ 。这就推导出了Logistic回归模型。

          (3)Softmax回归

          相应的指数族分布是多项式分布,代表标签的是一个随机向量 $oldsymbol Y$ 。详细的推导这里就不赘述了,可以参考 [5] 的最后一部分。

    参考资料:

    [1] 《神经网络与深度学习讲义》

    [2] 《统计学习方法》

    [3] 《矩阵求导术(上)》

    [4] 机器学习中的范数规则化之(一)L0、L1与L2范数

    [5] CS229 Lecture Notes1、Lecture6 slides

    [6] Regularized Regression: A Bayesian point of view

    [7] 浅析Logistic Regression   (写的比我这篇真的好太多了。。。)   

    [8] Matrix_calculus

    [9] https://www.evernote.com/shard/s146/sh/bf0d0a08-d5c5-4dc9-b70f-fa6374b9ceae/14e34bc9e8e518b1a5cc17fc585d75fc

     

  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/Determined22/p/6362951.html
Copyright © 2011-2022 走看看