一.指数分布族
在前面的笔记四里面,线性回归的模型中,我们有
,而在logistic回归的模型里面,有
。事实上,这两个分布都是指数分布族中的两个特殊的模型。所以,接下来会仔细讨论一下指数分布族的一些特点,会证明上面两个分布为什么是指数分布族的特性情况以及怎么用到其他的模型上面去。
如果一类分布能够写成如下的形式,那么这个分布就能够被划归到指数分布族里面。
其中:
η 被称为这个分布的自然参数(natural parameter)或者canonical parameter
T (y) 被称为充分统计量(sufficient statistic) (在我们暂时用到的模型里面,你可以认为他就是 that T (y) = y)
a(η) 被称为log partition function.起到归一化常数的作用,确保这个分布累计起来为1。
当T , a,和b被选中固定之后,也就确定了一个分布的族,且以η为参数。如果我们改变η,我们就得到了不同的分布。
接下来我们看看怎么证明开始的那个伯努利分布和高斯分布是指数分布族里面的。
首先来看看伯努利分布:
伯努利分布可以写为一下的形式:
其中y的取值为0或者1,这个太简单了,就不多解释了。我们的目标就是选择a,b,T,使得
变为上面的伯努利分布的形式。下面直接给出推导。
首先伯努利分布可以写成:
看这个式子的形式,把
作为自然参数,然后a,b,T的选择如下。
可以发现,伯努利分布确实能够写为指数分布族的形式。
这里有个很重要的地方就是,因为自然参数是选择为
,那么返回来推可以得到
,你是不是看到了一丝丝sigmoid/logistic函数的样子?这个后面还会要用到。接下来就是高斯分布了。
要知道,在线性回归的例子里面,
对于参数(权重)的选择是没有影响的,所以这里为了方便起见,令
。
我们有:
从上面的式子里面已经可以看出高斯分布是处于指数分布族里面的了,其中
总结一下,其实除了这两个以外,还有很多的分布都是在指数分布族里面的。比如多项式分布,泊松分布,指数分布,gamma分布和beta分布等等一些。。。
二.构造广义线性模型(GLM)
对于一个回归或者分类的问题,我们希望通过x的函数预测随机变量y的值。首先我们需要作出如下几个假设:
1.
,这个假设的意思是对于给定的x和θ,y的分布要隶属于以η为参数的指数分布族。(不然上面讲那么多指数分布族干嘛?)2.对于给定的x,我们的目标是得到的输出满足
(以logistic回归为例子,有
)。3.自然参数η和输入x满足线性关系:
。(如果η是一个向量值,那么有
)
有了上面的3个假设之后,下面来看看线性回归,logistic 回归以及新的一种很常见的softmax回归是怎么从广义线性模型得到的。
Ⅰ.线性回归
由本节开头的结论(详细过程的看上一个笔记),线性回归中有
。
直接用上面的3个假设,有
第二行的等式是高斯分布性质
第三行等式在推导高斯分布属于指数分布族里面的结果。
最后一行等式是利用的上面的第3个假设。
你看这个h函数是不是和之前的线性函数是一样的。。。。
Ⅱ..logistic回归
最开始要说的就是,这里的推导要结合上面的那几个假设来看。
对于之前提到的logistic回归,我们知道他的结果是二值的,即y ∈ {0, 1},那么很自然的选择伯努利分布来为给定x下y的条件分布建模。
最开始我们就知道了,伯努利分布是是隶属于指数分布族的,所以我们这里就满足了上面的假设1。
如果:
,那么
(这是很简单的概率论知识啦),进而推出:
上面这个式子用到了假设2,假设3和
的性质。
然后你直接看这个函数,是不是就是logistic的函数?
这里给出一个概念:
the function g giving the distribution’s mean as a function of the natural parameter (g(η) = E[T (y); η]) is called the canonical response function(规范响应函数). Its inverse is called the canonical link function(规范连接函数).
暂时总结一下,高斯分布族的规范响应函数是恒等函数(identify function),伯努利分布族的规范响应函数是logistic函数。
Ⅲ.softmax回归
前面说过的分类问题都是处理那些分两类的问题。比如区分猫或者狗的问题,就是一类是或者否的问题。但是现实生活中还有更加多的多类问题。比如猫分类,有田园猫,布偶猫,暹罗猫各种猫,这里就不能够用两分类来做了。
这里先设问题需要区分k类,即y ∈{1 2, … , k}。如果是你,你会用什么分布来建模呢?无疑是多项式分布(multinomial distribution)。
为了通过k个可能的输出给多项分布确定参数,一个方法是可以使用k个参数
作为指定每一个输出的概率。但是因为
,所以其实使用k个参数是有冗余的。所以,一个好的方法是使用k-1个参数
,且有
和
。这里肯定并不难懂。
为了把多项分布表示为一个指数分布族,定义
,这是一个k-1维的向量。这里也和之前的T(y)=y有很大的不同了。需要注意。因为我们可以取到k个类。所哟T的具体写法如下:
后面,我们用
这个记号表示T(y)向量的第i个元素。
为了简便,这里引入一个指示函数(indicator function),他的定义是这样的。
1{·} takes on a value of 1 if its argument is true, and 0 otherwise(1{True} = 1, 1{False} = 0).
比如 1{2 = 3} = 0还有就是1{3 =5 - 2} = 1等等
那么就有
可能很多人都会有点蒙这里。举个栗子,
(这里可能需要花点时间理一理。其实本质是很简单的。)
更深一步可以得到:有了上面的准备之后,就能够直接推导初多项分布的指数分布族的形式了,如下:
其中:
这个就说明了,多项分布也是“隶属于”指数分布族的。
link function(i=1…k)有下面式子给定
很容易知道
接下来我们需要得到响应函数了,有:
那么最终得到
这个函数被称为softmax函数。