zora睡觉不如读书

导航

广义线性函数

回顾回归和分类的例子,在回归例子中:

在分类例子中:

可以看出,μ 和 Φ 是作为 x 和 θ 的函数来定义的。

这两个模型其实都只是一个广大模型家族的特例,广义线性模型。我们也将演示广义线性模型家族的其它模型如何推导,并如何应用到分类和回归问题中的。

在讨论广义线性模型之前,我们先来定义指数分布簇。当一个分布能写成以下形式时,我们就说它属于指数分布簇。

η 是分布的自然参数;

T(y) 是充分统计量,通常 T(y)=y;

a(η) 被称为 log partition function;

e-a(η) 起着归一化常数的作用,保证分布 p(y;η) 积分从 y 到 1。

当参数 a、b、T 固定后,就定义了一个以 η 为参数的分布簇。改变 η,就得到这个分布簇的一个不同分布。

伯努利和高斯分布其实也是指数簇分布的特例。

伯努利分布均值为 Φ,y 只有 0 和 1 两个值。

改变 Φ,就得到不同均值的伯努利分布。

通过选择 T、a 和 b,指数分布簇通用公式能变成伯努利分布。先来把伯努利分布变成指数分布簇的形式。

跟指数分布簇公式相比对:

可得:

其中 η=log(Φ/(1-Φ)),那么 Φ=1/(1+e),这就是熟悉的 simoid 函数,这就是说我们把 Logistic 回归当做广义线性回归来推导的话也能推出 sigmoid 函数。

接下来看高斯分布,记得在线性回归的推导时,方差 σ2 的值对我们最后的 θ 和 hθ(x) 值没有任何影响。所以,我们给 σ2 随便选个值就行,方便起见,令 σ2=1,得:

 其中:

可见,高斯也属于指数分布簇。

还有其它的很多分布也属于指数分布簇,如多项式分布、泊松分布、伽马分布、指数分布、贝塔分布和 Dirichlet 分布等。

下面讲广义线性模型。

假定你想要建一个模型来估计在某个时刻到商店的顾客个数,或者估计你的网页的浏览量,基于一些特征,如促销活动、最近的广告、天气、星期几等。我们知道泊松分布通常是这种好模型。怎么才能针对我们的问题建模呢?泊松分布是个指数分布簇,所以我们可以使用广义线性模型。

考虑下分类和回归问题,把随机变量 y 作为 x 的函数,来预测 y 值。在这个问题上,我们要推导广义线性模型,关于 y 对 x 的条件分布,我们将做一下三种假设:

1、y|x;θ~ExponetialFamily(η)。即给定 x 和 θ,y 符合以 η 为参数的指数簇分布。(假设一讲的是广义线性模型的核心。广义线性模型广体现在y服从的是一个指数分布族。简单来说,就是对于所有的样本y服从的是同一个分布,只不过不同样本之间这个分布的参数不同。例如若所有样本的y都是伯努利分布,则不同的样本分别对应与x相关的ϕ(逻辑回归),若若所有样本的y都是正态分布,则不同的样本分别对应与x相关的μ(最小二乘)

2、给定 x,目标是要预测 T(y),我们学习到的主要是说GLM的输出。输出的 h(x) 满足 h(x)=E[y|x]。(Logistic 回归和线性回归中的 hθ(x) 是满足这个假设的,如 Logistic 回归中,hθ(x)=p(y=1|x;θ)=1·p(y=1|x;θ)+0·p(y=0|x;θ)=E[y|x;θ])

3、自然参数 η 和输入 x 成线性关系:η=θTx。

这三个假设使我们可以导出一个非常优雅的学习算法类,称作 GLMs,有很多属性如易学习。而且,模型对于建模关于 y 的不同分布是很有效的,如 Logistic 回归和最小二乘模型就可以由 GLMs 导出。

先来演示 GLM 簇模型的一个特例,最小二乘。目标变量 y 是连续的,我们把 y 对于 x 的条件分布建模为高斯分布 Ν(μ,σ2),这里 μ 依赖于 x。所以,我们让这里的 ExponetialFamily(η) 分布为高斯分布,高斯作为指数簇分布的形式中,μ=η。有

第一个等式符合上面的假设 2,第二个等式符合事实 y|x;θ~Ν(μ,σ2),所以期望值是 μ,第三个等式符合假设 1(我们早先的求导显示高斯分布作为指数分布簇 μ=η),最后一个等式符合假设 3。

再来看 Logistic 回归,y€{0,1},,y 是二值的,所以看起来选择伯努利分布来建模 y 对于 x 的条件分布是很自然的。伯努利分布属于指数分布簇,Φ=1/(1+e)。y|x;θ~Bernoulli(Φ),所以 E[y|x;θ]=Φ。

假设函数 hθ(x)=1/(1+e-θTx) ,之前我们想知道为什么使用 Logistic 函数 1/(1+e-z),这就是答案:一旦我们假定基于 x 的 y 的条件分布是伯努利,那么它就是GLMs 和指数分布簇的定义的结果。

多介绍一些术语,函数 g,作为自然参数的函数给定的分布均值,被称为正则响应函数(canonical response function),它的反函数 g 是正则关联函数(canonical link function)。所以,正则响应函数对于高斯家族只是 identity 函数,对于伯努利是 logistic 函数。

 

我们证实了 Logistic 回归和线性回归都属于广义线性模型,那么这个广义线性模型 GLM 有什么用呢?我们能通过 GLM 解决更多的问题吗?如何解决?下面就来举个例子。

考虑一个分类问题,响应变量 y 能取 k 个值,所以 y€{1,2,...,k}。例如,我们不仅想把邮件分为垃圾邮件和非垃圾邮件,可建成二分类问题,还想把邮件分为垃圾邮件、私人邮件和工作邮件。响应变量依然是离散的,但能取多个值。我们将把它建模成多项式分布。

为对这类多项式数据建模,我们先来推导 GLM。我们先把多项式表示为一个指数分布簇。

k 个参数 Φ12,...,Φk 指定了每个输出的概率。事实上,这些参数是有冗余的,因为 Φ12+...+Φk=1,所以,我们可以参数化多项式为 k-1 个参数 Φ12,...,Φk-1,其中 Φi=p(y=i;Φ),p(y=k;Φ)=1-(Φ12+...+Φk-1)。为表示方便,我们也可以让 Φk=1-(Φ12+...+Φk-1),但应知道这不是个参数。

将多项式表示成一个指数分布簇,我们定义 T(y)€Rk-1 如下:

跟之前的例子不一样,这里不是 T(y)=y, T(y)现在是一个 k-1 维的向量,而不是一个实数。我们用 (T(y))i 表示向量 T(y) 的第 i 个元素。

这里介绍一个有用的符号。指示函数 1{·},1{True}=1,1{False}=0。例如,1{2=3}=0,1{3=5-2}=1。所以,我们可以把 T(y) 和 y 的关系写成 (T(y))i=1{y=i}},更进一步,E[(T(y))i]=p(y=i)=Φi

现在我们将演示,多项式是指数分布簇:

其中:

这就完成了多项式作为指数分布簇的形式化。

关于 η 可以跟伯努利分布 η=log(Φ/(1-Φ)) 和高斯分布 η=µ 作个对比。

连接函数为:

方便起见,定义 ηk=log(Φkk)=0。 为转化连接函数,导出响应函数,我们有

这表示 Φk=1/(eη1+eη2+...+eηk),响应函数:

这个从 η 映射到 Φ 的函数称作 softmax 函数。

继续完善我们的模型,使用 GLM 的假设 3,ηi 跟 x 的线性相关。所以,ηi=θiTx(i=1,...,k-1),其中 θ1,...θk-1 €Rk+1 是我们模型的参数。方便表示起见,我们也定义 θk=0,所以 ηkkTx=0。所以,我们的模型假定给定 x 后 y 的条件分布为:

这种模型,应用到分类问题,y€{1,...,k},被称为 softmax 回归。这是 Logistic 回归的归纳。

我们的假设将有:

换句话说,我们的假设将输出 p(y=i|x;θ) 的概率估计,对于每个 i=1,...,k。

上面 hθ(x) 的公式可跟线性回归和 Logistic 回归的 hθ(x) 作对比:

            

最后讨论寻找最佳参数。跟最小二乘和 Logistic 回归的原始求导类似,如果我们有 m 个例子的训练集 {(x(i),y(i));i=1,...,m},想要学习这个模型的参数 θi,log 似然函数为:

现在我们可以通过最大化 l(θ) 的 θ 来最大化似然估计,使用梯度下降或者牛顿方法。

关于 l(θ) 依然可以跟线性回归和 Logistic 回归做对比。

 


前文从线性回归和 Logistic 回归引出广义线性回归的概念,很多人还是很困惑,不知道为什么突然来个广义线性回归,有什么用?只要知道连续值预测就用线性回归、离散值预测就用 Logistic 回归不就行了?还有一些概念之间的关系也没理清,例如线性回归和高斯分布、Logistic 回归和伯努利分布、连接函数和响应函数。

这种困惑是可以理解的,前文为了引导快速入门,从实战解题的角度推出了答案,但对其背后的概率假设解释不足,虽然线性回归专门开辟一节来介绍高斯分布假设,但很多人误以为这一节的目的只是为了证明最小均方误差的合理性,Logistic 回归的伯努利分布假设也需做解释。

线性回归是建立在高斯分布的假设上,Logistic 回归是建立在伯努利分布的假设上。如果不能从概率的角度理解线性回归和 Logistic 回归,就不能升一级去理解广义线性回归,而广义线性模型就是要将其它的分布也包纳进来,提取这些分布模型的共同点,成为一个模型,这样再遇到其它分布,如多项式分布、泊松分布、伽马分布、指数分布、贝塔分布和 Dirichlet 分布等,就可以按部就班地套模型进行计算了。

有些同学不明白的是,「当给定参数 θ 和 x 时,目标值 y 也服从正态分布」,这里 y 服从的是均值为 θTx 的正态分布,当我们训练得到参数 θ 后,那么对于不同的 x 值,y 服从的就是不同均值的正态分布。伯努利分布也一样。

要想掌握广义线性模型,得亲自动手做一个实例。

下面我们从概率的角度重新审视线性回归、Logistic 回归,来加深对广义线性模型的理解。

先说线性回归,假设是 y(i)|x(i);θ~N(θTx(i)2),因为 σ2 对 θ 值和 hθ(x) 值没有影响,所以我们不妨设 σ2=1,那么

把该高斯分布写成指数分布簇的形式:

 

可得:

根据广义线性模型的假设,得:

其中 hθ(x)=η 就是响应函数,其反函数就是连接函数。

如果我们有 m 个例子的训练集 {(x(i),y(i));i=1,...,m},想要学习这个模型的参数 θ,log 似然函数为:

然后最大化该函数即可得解。

再来看 Logistic 回归,假设是给定 x 和 θ 后的 y 服从伯努利分布。

p(y;Φ)=Φy(1-Φ)1-y

把该伯努利分布写成指数分布簇的形式:

可得:

根据广义线性模型的假设,得:

其中 hθ(x)=1/(1+e) 就是响应函数,其反函数就是连接函数。

如果我们有 m 个例子的训练集 {(x(i),y(i));i=1,...,m},想要学习这个模型的参数 θ,log 似然函数为:

然后同样最大化该函数即可得解。

 

由此,大致可得使用广义线性模型的步骤:

1、分析数据集,确定概率分布类型;

2、把概率写成指数分布簇的形式,并找到对应的 T(y)、η、E(y;x) 等 (看\theta的取值范围\Theta,找一个合适的link function f,将\Theta映射成整条实直线(即a+bx的取值范围),并规定f(\theta) = a+bx)。

3、写出 log 最大似然函数,不同的分布所使用的连接函数不一样,并找到使该似然函数最大化的参数值。

转载自http://www.cnblogs.com/NaughtyBaby/p/5300831.html

posted on 2018-02-01 11:44  zora睡觉不如读书  阅读(734)  评论(2)    收藏  举报