广义线性模型

 指数分布族

前面学习了线性回归和logistic回归。我们知道对于P(y|x;θ)

y属于实数,满足高斯分布,得到基于最小二乘法的线性回归,y{0,1},满足伯努利分布,得到Logistic回归。

这两个算法,其实都是广义线性模型的特例。

1) 伯努利分布

http://www.cnblogs.com/mikewolf2002/p/7667944.html

2) 高斯分布

http://www.cnblogs.com/mikewolf2002/p/7669977.html

指数分布族的定义:

     若一类概率分布可以写成如下形式,那么它就属于指数分布族:

P(y;η)=b(y)exp(ηTT(y)a(η))

     η称作分布的自然参数,通常是一个实数。T(y)称作充分统计量,通常T(y)=y,实际上是一个概率分布的充分统计量(统计学知识)。对于给定的abT三个函数,上式定义了一个以η为参数的概率分布集合,即改变η可以得到不同的概率分布。

https://en.wikipedia.org/w/index.php?title=Exponential_family&oldid=648989632

证明伯努利分布是指数分布族:

伯努利分布式对0,1问题进行建模,它的分布律如下:

Ber(ϕ),p(y=1;φ)=φ;p(y=0;φ)=1φ

伯努利分布是对0,1问题进行建模的,对于Bernoulliφ,y{0,1}p(y=1;φ)=φ;p(y=0;φ)=1φ,下面将其推导成指数分布族形式:

L(θ)=P(y;φ)=φy(1φ)1y=exp(log(φy(1φ)1y))=exp(ylog(φ)+(1y)log(1φ))=exp(ylog(φ1φ)+log(1φ))

    将其与指数族分布形式对比,可以看出:

b(y)=1

T(y)=y

η=logϕ1ϕ=>ϕ=11+eη

a(η)=log(1ϕ)=log(1+eη)


    表明伯努利分布也是指数分布族的一种。从上述式子可以看到,η的形式与logistic函数(sigmoid)一致,这是因为 logistic模型对问题的前置概率估计其实就是伯努利分布。

高斯分布

    下面对高斯分布进行推导,推导公式如下(为了方便计算,我们将方差σ2设置为1):

N(μ,1)=12πexp12(yμ)2=12πexp12y2+yμ12μ2=12πexp12y2expyμ12μ2

将上式与指数族分布形式比对,可知:

b(y)=12πexp12y2

T(y)=y

η=μ

a(η)=μ22

两个典型的指数分布族,伯努利和高斯分布。其实大多数概率分布都可以表示成指数分布族形式,如下所示:

  • 伯努利分布(Bernoulli):对 0、1 问题进行建模;
  • 多项式分布(Multinomial):对 K 个离散结果的事件建模;
  • 泊松分布(Poisson):对计数过程进行建模,比如网站访问量的计数问题,放射性衰变的数目,商店顾客数量等问题;
  • 伽马分布(gamma)与指数分布(exponential):对有间隔的正数进行建模,比如公交车的到站时间问题;
  • β 分布:对小数建模;
  • Dirichlet 分布:对概率分布进建模;
  • Wishart 分布:协方差矩阵的分布;

广义线性模型GLM

选定了一个指数分布族后,怎样来推导出一个GLM呢?

假设:

(1)y|x;θ ExponentialFamilyη,即假设试图预测的变量y在给定x,以θ作为参数的条件概率,属于以η作为自然参数的指数分布族,例:若要统计网站点击量y,用泊松分布建模。

(2) 给定x,目标是求出以x为条件的T(y)的期望E[T(y)|x],即让学习算法输出h(x)=E[T(y)|x]

(3)η=θTx,即自然参数和输入特征x之间线性相关,关系由θ决定。仅当η是实数时才有意义,若η是一个向量,则ηi=θTix

推导伯努利分布的GLM

y|x;θ ExponentialFamilyη,伯努利分布属于指数分布族,对给定的x,θ,学习算法进行一次预测的输出:

hθ(x)=E[y|x;θ]=ϕ=11+eη=1(1+eθTx)

得到logistic回归算法。

正则响应函数g(η)=E[y;η],将自然参数ηy的期望联系起来

正则关联函数:g1

推导多项式分布的GLM

多项式分布是在k个可能取值上的分布,即y1,..,k,如将收到的邮件分成k类,诊断某病人为k种病中的一种等问题。

(1)将多项式分布写成指数分布族的形式:

设多项式分布的参数:ϕ1,ϕ2,,ϕk ,且ki=1ϕi=1ϕi表示第i个取值的概率分布,最后一个参数可以由前k1个推导出,所以只将前k1ϕ1,ϕ2,,ϕk1视为参数。

多项式分布是少数几个T(y)!=y的分布,T(1)T(k)都定义成一个k1维的列向量,表示为:

T(1)=[1000]T(2)=[0100]T(3)=[0010]T(k1)=[0001]T(k)=[0000]

这样定义T(y)是为了将多项式分布写成指数分布族形式。

*定义符号:指示函数,1{.}

1{True} = 1, 1{False} = 0,即大括号内命题为真,值为1,否则为0。

例:1{2=3} = 0, 1{1+1=2} = 1

T(y)i表示T(y)的第i个元素,则T(y)i=1{y=i}

根据参数ϕ的意义(ϕi表示第i个取值的概率分布),可推出:

p(y;ϕ)=ϕ1{y=1}1ϕ1{y=2}2...ϕ1{y=k}k=ϕ1{y=1}1ϕ1{y=2}2...ϕ1k1i=11{y=i}k=ϕ(T(y))11ϕ(T(y))22...ϕ1k1i=1(T(y))ik=>exp(T(y))1log(ϕ1)+exp(T(y))2log(ϕ2)+...+(1k1i=1(T(y))i)log(ϕk)=exp(T(y))1log(ϕ1/ϕk)+exp(T(y))2log(ϕ2/ϕk)+...+exp(T(y))k1log(ϕk1/ϕk)+log(ϕk))=b(y)exp(ηTT(y)a(η))

可得:

η=[log(ϕ1/ϕk)log(ϕ2/ϕk)log(ϕk1/ϕk)]

a(η)=log(ϕk)

b(y)=1

证明多项式分布是指数分布族。

再用η表示ϕ

ηi=logϕiϕkeηi=ϕiϕkϕkeηi=ϕiϕkki=1eηi=ki=1ϕi=1ϕi=eηikj=1eηj

(2)根据上述假设(3)中自然参数和输入x的线性关系,可求得:

p(y=i|x;θ)=ϕi=eηikj=1eηj=eθTixkj=1eθTjx

(3)根据上述假设(2)中的输出h(x)=E[T(y)|x],可求得:

hθ(x)=E[T(y)|x;θ]=[1{y=1}|x;θ1{y=2}|x;θ1{y=k1}|x;θ]=[ϕ1ϕ2ϕk1]=[eθT1xkj=1eθTjxeθT2xkj=1eθTjxeθTk1xkj=1eθTjx]

称这种回归算法为softmax回归,是logistic回归的推广。

Softmax回归的训练方法和logistic相似,通过极大似然估计找到参数θ,其对数似然性为:

l(θ)=mi=1logp(y(i)|x(i);θ);=mi=1logkl=1(eθTlx(i)kj=1eθTjx(i))1{y(i)=l}=mi=1(kl=1(1{y(i)=l}log(eθTlx(i)kj=1eθTjx(i))))

其中θ是一个k×(n+1)的矩阵,代表这k个类的所有训练参数,每个类的参数是一个n+1维的向量。

跟Logistic回归一样,softmax也可以用梯度下降法或者牛顿迭代法求解,但在softmax回归中直接用上述对数似然函数求导是不能更新参数的,因为它存在冗余的参数,通常用牛顿方法中的Hessian矩阵也不可逆,是一个非凸函数,那么可以通过添加一个权重衰减项来修改代价函数,使得代价函数是凸函数,并且得到的Hessian矩阵可逆

再通过梯度上升或牛顿方法找对数似然性的最大值,即可求出参数θ

详细的公式推导见:http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

posted on   迈克老狼2012  阅读(454)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
历史上的今天:
2013-10-14 Kmeans算法原理极其opencv实现(转帖)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示