Generalized Linear Models
5 本节展示的内容受以下两份作品的启发:Michael I. Jordan, Learning in graphical models (unpublished book draft), 以及 McCullagh and Nelder, Generalized Linear Models (2nd ed.)。
到目前为止,我们看过了回归的案例,也看了一个分类案例。在回归的案例中,我们得到的函数是 #card=math&code=y%7Cx%3B%20%5Ctheta%20%E2%88%BC%20N%20%28%5Cmu%2C%20%5Csigma%5E2%29&height=18&width=99);而分类的案例中,函数是
#card=math&code=y%7Cx%3B%20%5Ctheta%20%E2%88%BC%20Bernoulli%28%5Cphi%29&height=16&width=125),这里面的
和
分别是
和
的某种函数。在本节,我们会发现这两种方法都是一个更广泛使用的模型的特例,这种更广泛使用的模型就叫做广义线性模型。我们还会讲一下广义线性模型中的其他模型是如何推出的,以及如何应用到其他的分类和回归问题上。
3.1 指数族 (The exponential family)
在学习 GLMs 之前,我们要先定义一下指数组分布(exponential family distributions)。如果一个分布能用下面的方式来写出来,我们就说这类分布属于指数族:
%20%3Db(y)exp(%5Ceta%5ETT(y)-a(%5Ceta))%20%5Cqquad%20%5Ctext%7B(6)%7D%0A#card=math&code=p%28y%3B%5Ceta%29%20%3Db%28y%29exp%28%5Ceta%5ETT%28y%29-a%28%5Ceta%29%29%20%5Cqquad%20%5Ctext%7B%286%29%7D%0A&height=18&width=237)
上面的式子中, 叫做此分布的自然参数 (natural parameter,也叫典范参数 canonical parameter) ;
#card=math&code=T%28y%29&height=16&width=26) 叫做充分统计量(sufficient statistic) ,我们目前用的这些分布中通常
%20%3D%20y#card=math&code=T%20%28y%29%20%3D%20y&height=16&width=51);而
#card=math&code=a%28%5Ceta%29&height=16&width=24) 是一个对数分割函数(log partition function)。
%7D#card=math&code=e%5E%7B%E2%88%92a%28%5Ceta%29%7D&height=16&width=32) 这个量本质上扮演了归一化常数(normalization constant)的角色,也就是确保
#card=math&code=p%28y%3B%20%5Ceta%29&height=16&width=37) 的总和或者积分等于
。
当给定 ,
和
时,就定义了一个用
进行参数化的分布族(family,或者叫集 set);通过改变
,我们就能得到这个分布族中的不同分布。
现在咱们看到的伯努利(Bernoulli)分布和高斯(Gaussian)分布就都属于指数分布族。伯努利分布的均值是,也写作
#card=math&code=Bernoulli%28%5Cphi%29&height=16&width=76),确定的分布是
,因此有
%20%3D%20%5Cphi#card=math&code=p%28y%20%3D%201%3B%20%5Cphi%29%20%3D%20%5Cphi&height=16&width=90);
%20%3D%201%E2%88%92%5Cphi#card=math&code=p%28y%20%3D%200%3B%5Cphi%29%20%3D%201%E2%88%92%5Cphi&height=16&width=113)。这时候只要修改
,就能得到一系列不同均值的伯努利分布了。现在我们展示的通过修改
,而得到的这种伯努利分布,就属于指数分布族;也就是说,只要给定一组
,
和
,就可以用上面的等式
#card=math&code=%286%29&height=16&width=17)来确定一组特定的伯努利分布了。
我们这样来写伯努利分布:
%20%26%20%3D%20%5Cphi%20%5Ey(1-%5Cphi)%5E%7B1-y%7D%5C%5C%0A%26%20%3D%20exp(y%20%5Clog%20%5Cphi%20%2B%20(1-y)%5Clog(1-%5Cphi))%5C%5C%0A%26%20%3D%20exp(%20(log%20(%5Cfrac%20%7B%5Cphi%7D%7B1-%5Cphi%7D))y%2B%5Clog%20(1-%5Cphi)%20)%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ap%28y%3B%5Cphi%29%20%26%20%3D%20%5Cphi%20%5Ey%281-%5Cphi%29%5E%7B1-y%7D%5C%5C%0A%26%20%3D%20exp%28y%20%5Clog%20%5Cphi%20%2B%20%281-y%29%5Clog%281-%5Cphi%29%29%5C%5C%0A%26%20%3D%20exp%28%20%28log%20%28%5Cfrac%20%7B%5Cphi%7D%7B1-%5Cphi%7D%29%29y%2B%5Clog%20%281-%5Cphi%29%20%29%5C%5C%0A%5Cend%7Baligned%7D%0A&height=73&width=249)
因此,自然参数(natural parameter)就给出了,即 #card=math&code=%5Ceta%20%3D%20log%20%28%5Cfrac%20%20%20%5Cphi%20%7B1%20%E2%88%92%20%5Cphi%7D%29&height=33&width=88)。 很有趣的是,如果我们翻转这个定义,用
来解
就会得到
#card=math&code=%5Cphi%20%3D%201%2F%20%281%20%2B%20e%5E%7B%E2%88%92%5Ceta%7D%20%29&height=17&width=93)。这正好就是之前我们刚刚见到过的 S型函数(sigmoid function)!在我们把逻辑回归作为一种广义线性模型(GLM)的时候还会得到:
%20%26%3D%20y%20%5C%5C%0Aa(%20%5Ceta)%20%26%20%3D%20-%20%5Clog%20(1-%20%5Cphi)%20%5C%5C%0A%26%20%3D%20%5Clog%20%7B(1%2B%20e%5E%20%5Ceta)%7D%5C%5C%0Ab(y)%26%3D1%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0AT%28y%29%20%26%3D%20y%20%5C%5C%0Aa%28%20%5Ceta%29%20%26%20%3D%20-%20%5Clog%20%281-%20%5Cphi%29%20%5C%5C%0A%26%20%3D%20%5Clog%20%7B%281%2B%20e%5E%20%5Ceta%29%7D%5C%5C%0Ab%28y%29%26%3D1%0A%5Cend%7Baligned%7D%0A&height=73&width=121)
上面这组式子就表明了伯努利分布可以写成等式#card=math&code=%286%29&height=16&width=17)的形式,使用一组合适的
,
和
。
接下来就看看高斯分布吧。还记得吧,在推导线性回归的时候, 的值对我们最终选择的
和
#card=math&code=h_%5Ctheta%28x%29&height=16&width=32) 都没有影响。所以我们可以给
取一个任意值。为了简化推导过程,就令
。
然后就有了下面的等式:
%20%26%3D%20%5Cfrac%201%7B%5Csqrt%7B2%5Cpi%7D%7D%20exp%20(-%20%5Cfrac%20%2012%20(y-%5Cmu)%5E2)%20%5C%5C%0A%26%20%3D%20%20%5Cfrac%201%7B%5Csqrt%7B2%5Cpi%7D%7D%20exp%20(-%20%5Cfrac%20%2012%20y%5E2)%20%5Ccdot%20exp%20(%5Cmu%20y%20-%5Cfrac%20%2012%20%5Cmu%5E2)%20%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ap%28y%3B%5Cmu%29%20%26%3D%20%5Cfrac%201%7B%5Csqrt%7B2%5Cpi%7D%7D%20exp%20%28-%20%5Cfrac%20%2012%20%28y-%5Cmu%29%5E2%29%20%5C%5C%0A%26%20%3D%20%20%5Cfrac%201%7B%5Csqrt%7B2%5Cpi%7D%7D%20exp%20%28-%20%5Cfrac%20%2012%20y%5E2%29%20%5Ccdot%20exp%20%28%5Cmu%20y%20-%5Cfrac%20%2012%20%5Cmu%5E2%29%20%5C%5C%0A%5Cend%7Baligned%7D%0A&height=73&width=256)
6 如果我们把
留作一个变量,高斯分布就也可以表达成指数分布的形式,其中
就是一个二维向量,同时依赖
和
。然而,对于广义线性模型GLMs方面的用途,
参数也可以看成是对指数分布族的更泛化的定义:
%20%3D%20b(a%2C%20%5Ctau%20)%20exp((%5Ceta%5ET%20T%20(y)%20%E2%88%92%20a(%5Ceta))%2Fc(%5Ctau))#card=math&code=p%28y%3B%20%5Ceta%2C%20%5Ctau%20%29%20%3D%20b%28a%2C%20%5Ctau%20%29%20exp%28%28%5Ceta%5ET%20T%20%28y%29%20%E2%88%92%20a%28%5Ceta%29%29%2Fc%28%5Ctau%29%29&height=18&width=260)。这里面的
叫做分散度参数(dispersion parameter),对于高斯分布,
%20%3D%20%5Csigma%5E2#card=math&code=c%28%5Ctau%29%20%3D%20%5Csigma%5E2&height=18&width=55) ;不过上文中我们已经进行了简化,所以针对我们要考虑的各种案例,就不需要再进行更加泛化的定义了。
这样,我们就可以看出来高斯分布是属于指数分布族的,可以写成下面这样:
%20%26%20%3D%20y%20%5C%5C%0Aa(%5Ceta)%20%26%20%3D%20%5Cmu%20%5E2%20%2F2%5C%5C%0A%26%20%3D%20%5Ceta%20%5E2%20%2F2%5C%5C%0Ab(y)%20%26%20%3D%20(1%2F%20%5Csqrt%20%7B2%5Cpi%20%7D)exp(-y%5E2%2F2)%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0A%5Ceta%20%26%20%3D%20%5Cmu%20%5C%5C%0AT%28y%29%20%26%20%3D%20y%20%5C%5C%0Aa%28%5Ceta%29%20%26%20%3D%20%5Cmu%20%5E2%20%2F2%5C%5C%0A%26%20%3D%20%5Ceta%20%5E2%20%2F2%5C%5C%0Ab%28y%29%20%26%20%3D%20%281%2F%20%5Csqrt%20%7B2%5Cpi%20%7D%29exp%28-y%5E2%2F2%29%0A%5Cend%7Baligned%7D%0A&height=93&width=167)
指数分布族里面还有很多其他的分布:
- 例如多项式分布(multinomial),这个稍后我们会看到;
- 泊松分布(Poisson),用于对计数类数据进行建模,后面再问题集里面也会看到;
- 伽马和指数分布(the gamma and the exponential),这个用于对连续的、非负的随机变量进行建模,例如时间间隔;
- 贝塔和狄利克雷分布(the beta and the Dirichlet),这个是用于概率的分布;
- 还有很多,这里就不一一列举了。
在下一节里面,我们就来讲一讲对于建模的一个更通用的“方案”,其中的 (给定
和
)可以是上面这些分布中的任意一种。
3.2 构建广义线性模型(Constructing GLMs)
设想你要构建一个模型,来估计在给定的某个小时内来到你商店的顾客人数(或者是你的网站的页面访问次数),基于某些确定的特征 ,例如商店的促销、最近的广告、天气、今天周几啊等等。我们已经知道泊松分布(Poisson distribution)通常能适合用来对访客数目进行建模。知道了这个之后,怎么来建立一个模型来解决咱们这个具体问题呢?非常幸运的是,泊松分布是属于指数分布族的一个分布,所以我们可以对该问题使用广义线性模型(Generalized Linear Model,缩写为 GLM)。在本节,我们讲一种对刚刚这类问题构建广义线性模型的方法。
进一步泛化,设想一个分类或者回归问题,要预测一些随机变量 的值,作为
的一个函数。要导出适用于这个问题的广义线性模型,就要对我们的模型、给定
下
的条件分布来做出以下三个假设:
#card=math&code=y%20%7C%20x%3B%20%5Ctheta%20%E2%88%BC%20Exponential%20Family%28%5Ceta%29&height=16&width=185),即给定
和
的分布属于指数分布族,是一个参数为
的指数分布。——假设1
- 给定
,目的是要预测对应这个给定
的
#card=math&code=T%28y%29&height=16&width=26) 的期望值。咱们的例子中绝大部分情况都是
%20%3D%20y#card=math&code=T%28y%29%20%3D%20y&height=16&width=51),这也就意味着我们的学习假设
输出的预测值
#card=math&code=h%28x%29&height=16&width=25) 要满足
%20%3D%20E%5By%7Cx%5D#card=math&code=h%28x%29%20%3D%20E%5By%7Cx%5D&height=16&width=80)。 (注意,这个假设通过对
#card=math&code=h%5Ctheta%28x%29&height=16&width=32) 的选择而满足,在逻辑回归和线性回归中都是如此。例如在逻辑回归中, %20%3D%20%5Bp%20(y%20%3D%201%7Cx%3B%20%5Ctheta)%5D%20%3D%5B%200%20%5Ccdot%20p%20(y%20%3D%200%7Cx%3B%20%5Ctheta)%2B1%5Ccdot%20p(y%20%3D%201%7Cx%3B%5Ctheta)%5D%20%3D%20E%5By%7Cx%3B%5Ctheta%5D#card=math&code=h_%5Ctheta%20%28x%29%20%3D%20%5Bp%20%28y%20%3D%201%7Cx%3B%20%5Ctheta%29%5D%20%3D%5B%200%20%5Ccdot%20p%20%28y%20%3D%200%7Cx%3B%20%5Ctheta%29%2B1%5Ccdot%20p%28y%20%3D%201%7Cx%3B%5Ctheta%29%5D%20%3D%20E%5By%7Cx%3B%5Ctheta%5D&height=16&width=418)。译者注:这里的
]应该就是对给定
时的
值的期望的意思。)——假设2
- 自然参数
和输入值
是线性相关的,
,或者如果
是有值的向量,则有
。——假设3
上面的几个假设中,第三个可能看上去证明得最差,所以也更适合把这第三个假设看作是一个我们在设计广义线性模型时候的一种 “设计选择 design choice”,而不是一个假设。那么这三个假设/设计,就可以用来推导出一个非常合适的学习算法类别,也就是广义线性模型 GLMs,这个模型有很多特别友好又理想的性质,比如很容易学习。此外,这类模型对一些关于 的分布的不同类型建模来说通常效率都很高;例如,我们下面就将要简单介绍一些逻辑回归以及普通最小二乘法这两者如何作为广义线性模型来推出。
9.1 普通最小二乘法(Ordinary Least Squares)
我们这一节要讲的是普通最小二乘法实际上是广义线性模型中的一种特例,设想如下的背景设置:目标变量 (在广义线性模型的术语也叫做响应变量response variable)是连续的,然后我们将给定
的
的分布以高斯分布
#card=math&code=N%28%5Cmu%2C%20%5Csigma%5E2%29&height=18&width=50) 来建模,其中
可以是依赖
的一个函数。这样,我们就让上面的
#card=math&code=ExponentialFamily%28%5Ceta%29&height=16&width=136)分布成为了一个高斯分布。在前面内容中我们提到过,在把高斯分布写成指数分布族的分布的时候,有
。所以就能得到下面的等式:
%26%20%3D%20E%5By%7Cx%3B%5Ctheta%5D%20%5C%5C%0A%26%20%3D%20%5Cmu%20%5C%5C%0A%26%20%3D%20%5Ceta%20%5C%5C%0A%26%20%3D%20%5Ctheta%5ETx%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ah_%5Ctheta%28x%29%26%20%3D%20E%5By%7Cx%3B%5Ctheta%5D%20%5C%5C%0A%26%20%3D%20%5Cmu%20%5C%5C%0A%26%20%3D%20%5Ceta%20%5C%5C%0A%26%20%3D%20%5Ctheta%5ETx%5C%5C%0A%5Cend%7Baligned%7D%0A&height=70&width=102)
第一行的等式是基于假设2;第二个等式是基于定理当 #card=math&code=y%7Cx%3B%20%5Ctheta%20%E2%88%BC%20N%20%28%5Cmu%2C%20%5Csigma%20%5E2%29&height=18&width=99),则
的期望就是
;第三个等式是基于假设1,以及之前我们此前将高斯分布写成指数族分布的时候推导出来的性质
;最后一个等式就是基于假设3。
9.2 逻辑回归(Logistic Regression)
接下来咱们再来看看逻辑回归。这里咱们还是看看二值化分类问题,也就是 。给定了
是一个二选一的值,那么很自然就选择伯努利分布(Bernoulli distribution)来对给定
的
的分布进行建模了。在我们把伯努利分布写成一种指数族分布的时候,有
#card=math&code=%5Cphi%20%3D%201%2F%20%281%20%2B%20e%5E%7B%E2%88%92%5Ceta%7D%29&height=17&width=93)。另外还要注意的是,如果有
#card=math&code=y%7Cx%3B%20%5Ctheta%20%E2%88%BC%20Bernoulli%28%5Cphi%29&height=16&width=125),那么
。所以就跟刚刚推导普通最小二乘法的过程类似,有以下等式:
%26%20%3D%20E%5By%7Cx%3B%5Ctheta%5D%20%5C%5C%0A%26%20%3D%20%5Cphi%20%5C%5C%0A%26%20%3D%201%2F(1%2B%20e%5E%7B-%5Ceta%7D)%20%5C%5C%0A%26%20%3D%201%2F(1%2B%20e%5E%7B-%5Ctheta%5ETx%7D)%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ah_%5Ctheta%28x%29%26%20%3D%20E%5By%7Cx%3B%5Ctheta%5D%20%5C%5C%0A%26%20%3D%20%5Cphi%20%5C%5C%0A%26%20%3D%201%2F%281%2B%20e%5E%7B-%5Ceta%7D%29%20%5C%5C%0A%26%20%3D%201%2F%281%2B%20e%5E%7B-%5Ctheta%5ETx%7D%29%5C%5C%0A%5Cend%7Baligned%7D%0A&height=74&width=133)
所以,上面的等式就给了给了假设函数的形式:%20%3D%201%2F%20(1%20%2B%20e%5E%7B%E2%88%92%5Ctheta%5ET%20x%7D)#card=math&code=h_%5Ctheta%28x%29%20%3D%201%2F%20%281%20%2B%20e%5E%7B%E2%88%92%5Ctheta%5ET%20x%7D%29&height=21&width=128)。如果你之前好奇咱们是怎么想出来逻辑回归的函数为
#card=math&code=1%2F%20%281%20%2B%20e%5E%7B%E2%88%92z%7D%20%29&height=17&width=66),这个就是一种解答:一旦我们假设以
为条件的
的分布是伯努利分布,那么根据广义线性模型和指数分布族的定义,就会得出这个式子。
再解释一点术语,这里给出分布均值的函数 是一个关于自然参数的函数,
%20%3D%20E%5BT(y)%3B%20%5Ceta%5D#card=math&code=g%28%5Ceta%29%20%3D%20E%5BT%28y%29%3B%20%5Ceta%5D&height=16&width=99),这个函数也叫做规范响应函数(canonical response function), 它的反函数
叫做规范链接函数(canonical link function)。 因此,对于高斯分布来说,它的规范响应函数正好就是识别函数(identify function);而对于伯努利分布来说,它的规范响应函数则是逻辑函数(logistic function)。
7 很多教科书用
表示链接函数,而用反函数
来表示响应函数;但是咱们这里用的是反过来的,这是继承了早期的机器学习中的用法,我们这样使用和后续的其他课程能够更好地衔接起来。
9.3 Softmax 回归
咱们再来看一个广义线性模型的例子吧。设想有这样的一个分类问题,其中响应变量 的取值可以是
个值当中的任意一个,也就是
。例如,我们这次要进行的分类就比把邮件分成垃圾邮件和正常邮件两类这种二值化分类要更加复杂一些,比如可能是要分成三类,例如垃圾邮件、个人邮件、工作相关邮件。这样响应变量依然还是离散的,但取值就不只有两个了。因此咱们就用多项式分布(multinomial distribution)来进行建模。
下面咱们就通过这种多项式分布来推出一个广义线性模型。要实现这一目的,首先还是要把多项式分布也用指数族分布来进行描述。
要对一个可能有 个不同输出值的多项式进行参数化,就可以用
个参数
来对应各自输出值的概率。不过这么多参数可能太多了,形式上也太麻烦,他们也未必都是互相独立的(比如对于任意一个
中的值来说,只要知道其他的
个值,就能知道这最后一个了,因为总和等于
,也就是
)。所以咱们就去掉一个参数,只用
个:
来对多项式进行参数化,其中
%EF%BC%8Cp%20(y%20%3D%20k%3B%20%5Cphi)%20%3D%201%20%E2%88%92%5Csum%20%5E%7Bk%E2%88%921%7D%7Bi%3D1%7D%5Cphi%20i#card=math&code=%5Cphii%20%3D%20p%20%28y%20%3D%20i%3B%20%5Cphi%29%EF%BC%8Cp%20%28y%20%3D%20k%3B%20%5Cphi%29%20%3D%201%20%E2%88%92%5Csum%20%5E%7Bk%E2%88%921%7D%7Bi%3D1%7D%5Cphi%20i&height=42&width=243)。为了表述起来方便,我们还要设 ,但一定要注意,这个并不是一个参数,而是完全由其他的
个参数来确定的。
要把一个多项式表达成为指数组分布,还要按照下面的方式定义一个 %20%5Cin%20R%5E%7Bk%E2%88%921%7D#card=math&code=T%20%28y%29%20%5Cin%20R%5E%7Bk%E2%88%921%7D&height=18&width=72):
%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%201%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT(2)%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%201%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT(3)%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%201%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT(k-1)%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%201%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT(k)%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0A#card=math&code=T%281%29%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%201%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT%282%29%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%201%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT%283%29%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%201%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT%28k-1%29%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%201%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0AT%28k%29%3D%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%200%5C%5C%0A%20%20%20%20%20%200%5C%5C%0A%09%20%200%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%200%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%0A&height=98&width=434)
这次和之前的样例都不一样了,就是不再有 %20%3D%20y#card=math&code=T%28y%29%20%3D%20y&height=16&width=51);然后,
#card=math&code=T%28y%29&height=16&width=26) 现在是一个
维的向量,而不是一个实数了。向量
#card=math&code=T%28y%29&height=16&width=26) 中的第
个元素写成
)_i#card=math&code=%28T%28y%29%29_i&height=16&width=41) 。
现在介绍一种非常有用的记号。指示函数(indicator function),如果参数为真,则等于
;反之则等于
(
)。例如
, 而
。所以我们可以把
#card=math&code=T%28y%29&height=16&width=26) 和
的关系写成
)_i%20%3D%201%5C%7By%20%3D%20i%5C%7D#card=math&code=%28T%28y%29%29_i%20%3D%201%5C%7By%20%3D%20i%5C%7D&height=16&width=110)。(往下继续阅读之前,一定要确保你理解了这里的表达式为真!)在此基础上,就有了
)_i%5D%20%3D%20P%20(y%20%3D%20i)%20%3D%20%5Cphi_i#card=math&code=E%5B%28T%28y%29%29_i%5D%20%3D%20P%20%28y%20%3D%20i%29%20%3D%20%5Cphi_i&height=16&width=159)。
现在一切就绪,可以把多项式写成指数族分布了。写出来如下所示:
%20%26%3D%5Cphi1%5E%7B1%5C%7By%3D1%5C%7D%7D%5Cphi_2%5E%7B1%5C%7By%3D2%5C%7D%7D%5Cdots%20%5Cphi_k%5E%7B1%5C%7By%3Dk%5C%7D%7D%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3D%5Cphi_1%5E%7B1%5C%7By%3D1%5C%7D%7D%5Cphi_2%5E%7B1%5C%7By%3D2%5C%7D%7D%5Cdots%20%5Cphi_k%5E%7B1-%5Csum%7Bi%3D1%7D%5E%7Bk-1%7D1%5C%7By%3Di%5C%7D%7D%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3D%5Cphi1%5E%7B(T(y))_1%7D%5Cphi_2%5E%7B(T(y))_2%7D%5Cdots%20%5Cphi_k%5E%7B1-%5Csum%7Bi%3D1%7D%5E%7Bk-1%7D(T(y))i%20%7D%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3Dexp((T(y))_1%20log(%5Cphi_1)%2B(T(y))_2%20log(%5Cphi_2)%2B%5Cdots%2B(1-%5Csum%7Bi%3D1%7D%5E%7Bk-1%7D(T(y))i)log(%5Cphi_k))%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3D%20exp((T(y))_1%20log(%5Cfrac%7B%5Cphi_1%7D%7B%5Cphi_k%7D)%2B(T(y))_2%20log(%5Cfrac%7B%5Cphi_2%7D%7B%5Cphi_k%7D)%2B%5Cdots%2B(T(y))%7Bk-1%7Dlog(%5Cfrac%7B%5Cphi%7Bk-1%7D%7D%7B%5Cphi_k%7D)%2Blog(%5Cphi_k))%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3Db(y)exp(%5Ceta%5ET%20T(y)-a(%5Ceta))%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ap%28y%3B%5Cphi%29%20%26%3D%5Cphi_1%5E%7B1%5C%7By%3D1%5C%7D%7D%5Cphi_2%5E%7B1%5C%7By%3D2%5C%7D%7D%5Cdots%20%5Cphi_k%5E%7B1%5C%7By%3Dk%5C%7D%7D%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3D%5Cphi_1%5E%7B1%5C%7By%3D1%5C%7D%7D%5Cphi_2%5E%7B1%5C%7By%3D2%5C%7D%7D%5Cdots%20%5Cphi_k%5E%7B1-%5Csum%7Bi%3D1%7D%5E%7Bk-1%7D1%5C%7By%3Di%5C%7D%7D%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3D%5Cphi1%5E%7B%28T%28y%29%29_1%7D%5Cphi_2%5E%7B%28T%28y%29%29_2%7D%5Cdots%20%5Cphi_k%5E%7B1-%5Csum%7Bi%3D1%7D%5E%7Bk-1%7D%28T%28y%29%29i%20%7D%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3Dexp%28%28T%28y%29%29_1%20log%28%5Cphi_1%29%2B%28T%28y%29%29_2%20log%28%5Cphi_2%29%2B%5Cdots%2B%281-%5Csum%7Bi%3D1%7D%5E%7Bk-1%7D%28T%28y%29%29i%29log%28%5Cphi_k%29%29%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3D%20exp%28%28T%28y%29%29_1%20log%28%5Cfrac%7B%5Cphi_1%7D%7B%5Cphi_k%7D%29%2B%28T%28y%29%29_2%20log%28%5Cfrac%7B%5Cphi_2%7D%7B%5Cphi_k%7D%29%2B%5Cdots%2B%28T%28y%29%29%7Bk-1%7Dlog%28%5Cfrac%7B%5Cphi_%7Bk-1%7D%7D%7B%5Cphi_k%7D%29%2Blog%28%5Cphi_k%29%29%20%5C%5C%0A%20%20%20%20%20%20%20%20%20%20%26%3Db%28y%29exp%28%5Ceta%5ET%20T%28y%29-a%28%5Ceta%29%29%0A%5Cend%7Baligned%7D%0A&height=173&width=512)
其中:
%5C%5C%0A%20%20%20%20%20%20%5Clog%20(%5Cphi%202%2F%5Cphi%20_k)%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%20%5Clog%20(%5Cphi%20%7Bk-1%7D%2F%5Cphi%20k)%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%20%5C%5C%0Aa(%5Ceta)%20%26%3D%20-%5Clog%20(%5Cphi%20_k)%5C%5C%0Ab(y)%20%26%3D%201%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0A%5Ceta%20%26%3D%20%0A%20%20%20%20%5Cbegin%7Bbmatrix%7D%0A%20%20%20%20%20%20%5Clog%20%28%5Cphi%20_1%2F%5Cphi%20_k%29%5C%5C%0A%20%20%20%20%20%20%5Clog%20%28%5Cphi%20_2%2F%5Cphi%20_k%29%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%20%5Clog%20%28%5Cphi%20%7Bk-1%7D%2F%5Cphi%20_k%29%5C%5C%0A%20%20%20%20%5Cend%7Bbmatrix%7D%2C%20%5C%5C%0Aa%28%5Ceta%29%20%26%3D%20-%5Clog%20%28%5Cphi%20_k%29%5C%5C%0Ab%28y%29%20%26%3D%201%5C%5C%0A%5Cend%7Baligned%7D%0A&height=119&width=151)
这样咱们就把多项式方程作为一个指数族分布来写了出来。
与 #card=math&code=i%20%28for%5Cquad%20i%20%3D%201%2C%20…%2C%20k%29&height=16&width=115)对应的链接函数为:
为了方便起见,我们再定义 %20%3D%200#card=math&code=%5Ceta_k%20%3D%20%5Clog%20%28%5Cphi_k%2F%5Cphi_k%29%20%3D%200&height=16&width=119)。对链接函数取反函数然后推导出响应函数,就得到了下面的等式:
%7D%5C%5C%0A%5Cphik%20%20%5Csum%5Ek%7Bi%3D1%7D%20e%5E%7B%5Cetai%7D%26%3D%20%5Csum%5Ek%7Bi%3D1%7D%5Cphii%3D%201%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ae%5E%7B%5Ceta_i%7D%20%26%3D%20%5Cfrac%20%7B%5Cphi_i%7D%7B%5Cphi_k%7D%5C%5C%0A%5Cphi_k%20e%5E%7B%5Ceta_i%7D%20%26%3D%20%5Cphi_i%20%20%5Cqquad%5Ctext%7B%287%29%7D%5C%5C%0A%5Cphi_k%20%20%5Csum%5Ek%7Bi%3D1%7D%20e%5E%7B%5Cetai%7D%26%3D%20%5Csum%5Ek%7Bi%3D1%7D%5Cphi_i%3D%201%5C%5C%0A%5Cend%7Baligned%7D%0A&height=96&width=136)
这就说明了,然后可以把这个关系代入回到等式
#card=math&code=%287%29&height=16&width=17),这样就得到了响应函数:
上面这个函数从 映射到了
,称为 Softmax 函数。
要完成我们的建模,还要用到前文提到的假设3,也就是 是一个
的线性函数。所以就有了
#card=math&code=%5Cetai%3D%20%5Ctheta_i%5ETx%20%28for%5Cquad%20i%20%3D%201%2C%20…%2C%20k%20%E2%88%92%201%29&height=18&width=185),其中的  就是我们建模的参数。为了表述方便,我们这里还是定义
,这样就有
,跟前文提到的相符。因此,我们的模型假设了给定
的
的条件分布为:
%20%26%3D%20%20%5Cphii%20%5C%5C%0A%26%3D%20%5Cfrac%20%7Be%5E%7B%5Ceta_i%7D%7D%7B%5Csum%5Ek%7Bj%3D1%7De%5E%7B%5Cetaj%7D%7D%5C%5C%0A%26%3D%5Cfrac%20%7Be%5E%7B%5Ctheta_i%5ETx%7D%7D%7B%5Csum%5Ek%7Bj%3D1%7De%5E%7B%5Cthetaj%5ETx%7D%7D%5Cqquad%5Ctext%7B(8)%7D%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ap%28y%3Di%7Cx%3B%5Ctheta%29%20%26%3D%20%20%5Cphi_i%20%5C%5C%0A%26%3D%20%5Cfrac%20%7Be%5E%7B%5Ceta_i%7D%7D%7B%5Csum%5Ek%7Bj%3D1%7De%5E%7B%5Cetaj%7D%7D%5C%5C%0A%26%3D%5Cfrac%20%7Be%5E%7B%5Ctheta_i%5ETx%7D%7D%7B%5Csum%5Ek%7Bj%3D1%7De%5E%7B%5Ctheta_j%5ETx%7D%7D%5Cqquad%5Ctext%7B%288%29%7D%5C%5C%0A%5Cend%7Baligned%7D%0A&height=107&width=201)
这个适用于解决 的分类问题的模型,就叫做 Softmax 回归。 这种回归是对逻辑回归的一种扩展泛化。
假设(hypothesis) 则如下所示:
%20%26%3D%20E%5BT(y)%7Cx%3B%5Ctheta%5D%5C%5C%0A%26%3D%20E%20%5Cleft%5B%0A%20%20%20%20%5Cbegin%7Barray%7D%7Bcc%7Cc%7D%0A%20%20%20%20%20%201(y%3D1)%5C%5C%0A%20%20%20%20%20%201(y%3D2)%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%201(y%3Dk-1)%5C%5C%0A%20%20%20%20%5Cend%7Barray%7Dx%3B%5Ctheta%0A%5Cright%5D%5C%5C%0A%26%3D%20E%20%5Cleft%5B%0A%20%20%20%20%5Cbegin%7Barray%7D%7Bc%7D%0A%20%20%20%20%20%20%5Cphi1%5C%5C%0A%20%20%20%20%20%20%5Cphi_2%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%20%5Cphi%7Bk-1%7D%5C%5C%0A%20%20%20%20%5Cend%7Barray%7D%0A%5Cright%5D%5C%5C%0A%26%3D%20E%20%5Cleft%5B%0A%20%20%20%20%5Cbegin%7Barray%7D%7Bccc%7D%0A%20%20%20%20%20%20%5Cfrac%20%7Bexp(%5Ctheta1%5ETx)%7D%7B%5Csum%5Ek%7Bj%3D1%7Dexp(%5Cthetaj%5ETx)%7D%20%5C%5C%0A%20%20%20%20%20%20%5Cfrac%20%7Bexp(%5Ctheta_2%5ETx)%7D%7B%5Csum%5Ek%7Bj%3D1%7Dexp(%5Cthetaj%5ETx)%7D%20%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%20%5Cfrac%20%7Bexp(%5Ctheta%7Bk-1%7D%5ETx)%7D%7B%5Csum%5Ek%7Bj%3D1%7Dexp(%5Ctheta_j%5ETx)%7D%20%5C%5C%0A%20%20%20%20%5Cend%7Barray%7D%0A%5Cright%5D%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Ah%5Ctheta%20%28x%29%20%26%3D%20E%5BT%28y%29%7Cx%3B%5Ctheta%5D%5C%5C%0A%26%3D%20E%20%5Cleft%5B%0A%20%20%20%20%5Cbegin%7Barray%7D%7Bcc%7Cc%7D%0A%20%20%20%20%20%201%28y%3D1%29%5C%5C%0A%20%20%20%20%20%201%28y%3D2%29%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%201%28y%3Dk-1%29%5C%5C%0A%20%20%20%20%5Cend%7Barray%7Dx%3B%5Ctheta%0A%5Cright%5D%5C%5C%0A%26%3D%20E%20%5Cleft%5B%0A%20%20%20%20%5Cbegin%7Barray%7D%7Bc%7D%0A%20%20%20%20%20%20%5Cphi1%5C%5C%0A%20%20%20%20%20%20%5Cphi_2%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%20%5Cphi%7Bk-1%7D%5C%5C%0A%20%20%20%20%5Cend%7Barray%7D%0A%5Cright%5D%5C%5C%0A%26%3D%20E%20%5Cleft%5B%0A%20%20%20%20%5Cbegin%7Barray%7D%7Bccc%7D%0A%20%20%20%20%20%20%5Cfrac%20%7Bexp%28%5Ctheta1%5ETx%29%7D%7B%5Csum%5Ek%7Bj%3D1%7Dexp%28%5Cthetaj%5ETx%29%7D%20%5C%5C%0A%20%20%20%20%20%20%5Cfrac%20%7Bexp%28%5Ctheta_2%5ETx%29%7D%7B%5Csum%5Ek%7Bj%3D1%7Dexp%28%5Cthetaj%5ETx%29%7D%20%5C%5C%0A%09%20%20%5Cvdots%20%5C%5C%0A%09%20%20%5Cfrac%20%7Bexp%28%5Ctheta%7Bk-1%7D%5ETx%29%7D%7B%5Csum%5Ek_%7Bj%3D1%7Dexp%28%5Ctheta_j%5ETx%29%7D%20%5C%5C%0A%20%20%20%20%5Cend%7Barray%7D%0A%5Cright%5D%5C%5C%0A%5Cend%7Baligned%7D%0A&height=325&width=193)
也就是说,我们的假设函数会对每一个 ,给出
#card=math&code=p%20%28y%20%3D%20i%7Cx%3B%20%5Ctheta%29&height=16&width=71) 概率的估计值。(虽然咱们在前面假设的这个
#card=math&code=h%5Ctheta%28x%29&height=16&width=32) 只有
维,但很明显
#card=math&code=p%20%28y%20%3D%20k%7Cx%3B%20%5Ctheta%29&height=16&width=74) 可以通过用
减去其他所有项目概率的和来得到,即。)
最后,咱们再来讲一下参数拟合。和我们之前对普通最小二乘线性回归和逻辑回归的原始推导类似,如果咱们有一个有 个训练样本的训练集
%7D%2C%20y%5E%7B(i)%7D)%3B%20i%20%3D%201%2C%20…%2C%20m%5C%7D#card=math&code=%5C%7B%28x%5E%7B%28i%29%7D%2C%20y%5E%7B%28i%29%7D%29%3B%20i%20%3D%201%2C%20…%2C%20m%5C%7D&height=19&width=146),然后要研究这个模型的参数
,我们可以先写出其似然函数的对数:
%26%20%3D%5Csum%5Em%7Bi%3D1%7D%20%5Clog%20p(y%5E%7B(i)%7D%7Cx%5E%7B(i)%7D%3B%5Ctheta)%5C%5C%0A%26%3D%20%5Csum%5Em%7Bi%3D1%7Dlog%5Cprod%20%5Ek%7Bl%3D1%7D(%5Cfrac%20%7Be%5E%7B%5Ctheta_l%5ETx%5E%7B(i)%7D%7D%7D%7B%5Csum%5Ek%7Bj%3D1%7D%20e%5E%7B%5Cthetaj%5ET%20x%5E%7B(i)%7D%7D%7D)%5E%7B1(y%5E%7B(i)%7D%3Dl)%7D%5C%5C%0A%5Cend%7Baligned%7D%0A#card=math&code=%5Cbegin%7Baligned%7D%0Al%28%5Ctheta%29%26%20%3D%5Csum%5Em%7Bi%3D1%7D%20%5Clog%20p%28y%5E%7B%28i%29%7D%7Cx%5E%7B%28i%29%7D%3B%5Ctheta%29%5C%5C%0A%26%3D%20%5Csum%5Em%7Bi%3D1%7Dlog%5Cprod%20%5Ek%7Bl%3D1%7D%28%5Cfrac%20%7Be%5E%7B%5Cthetal%5ETx%5E%7B%28i%29%7D%7D%7D%7B%5Csum%5Ek%7Bj%3D1%7D%20e%5E%7B%5Ctheta_j%5ET%20x%5E%7B%28i%29%7D%7D%7D%29%5E%7B1%28y%5E%7B%28i%29%7D%3Dl%29%7D%5C%5C%0A%5Cend%7Baligned%7D%0A&height=88&width=223)
要得到上面等式的第二行,要用到等式#card=math&code=%288%29&height=16&width=17)中的设定
#card=math&code=p%28y%7Cx%3B%20%5Ctheta%29&height=16&width=48)。现在就可以通过对
#card=math&code=l%28%5Ctheta%29&height=16&width=20) 取最大值得到的
而得到对参数的最大似然估计,使用的方法就可以用梯度上升法或者牛顿法了。