广义线性模型

广义线性模型

在学广义线性模型的时候我想到的一个类似的例子是爱因斯坦提出的统一场论,只用一个理论或者是一个公式描述基本相互作用的共同本质和内在联系.

广义线性模型和统一场轮比较相似,只用一条公式就可以描述线性回归、逻辑回归及其他线性模型.

当数据分布属于指数分布族时,则模型可以写为广义线性模型:

p(y;η)=b(η)exp(η^TT(y)−a(η))

其中 y 为分布的自然参数, T(y) 为充分统计量.

我们只需要确定a,b和T,那么这个公式就定义了一个概率分布模型.

伯努利分布的广义线性模型形式

伯努利分布属于指数分布族,因为伯努利分布最为简单,所以先来看看伯努利分布的广义线性模型形式.

假设y服从参数为ϕ伯努利分布,即:

P(y=1|x;\theta)=h_{\theta}(x)

P(y=0|x;\theta)=1-h_{\theta}(x)

我们可以将上面两个公式合并成一个公式:
P(y|x;\theta)={(h_{\theta}(x))^y} *{(1-h_{\theta}(x))^{1-y}}

随后我们转换为广义线性模型的形式:

\begin{equation} \begin{split} p(y)&=ϕ^y(1−ϕ)^1−y \\ &=exp(log(ϕ^y(1−ϕ)^1−y)) \\ &=exp(ylog(ϕ)+(1−y)log(1−ϕ)) \\ &=exp(ylog(\frac{ϕ}{1−ϕ})+log(1−ϕ)) \end{split} \end{equation}

与广义线性模型相对照得:
b(η)=1
a(η)=−log(1−ϕ)
T(y)=y

其中 η
η=log(\frac{ϕ}{1−ϕ})⇒ϕ=\frac{1}{1+e^{−η}}

这与逻辑回归中的定义是一致的.

高斯分布的广义线性模型

高斯分布属于指数分布族,所以高斯分布也可以转化为广义线性模型形式.

\begin{equation} \begin{split} p(y)&=\frac{1}{\sqrt{2\pi}}exp(-frac{1}{2}(y-\mu)^2) \\ &=... \\ &=\frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}y^2)exp(uy-\frac{1}{2}\mu^2)) \end{split} \end{equation}

对照广义线性模型可以得到:
b(η)=\frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}y^2)
a(η)=-\frac{1}{2}\mu^2
T(y)=y
η=\mu

GLM

广义线性模型被简写为GLM.

下面我们来看一下广义线性模型成立的条件或者说是设计原则:

  1. y属于指数分布族.
  2. 模型的输出为 E[y] .与线性回归中的 h(x) 相当即 h(x) = E[y]
  3. η=θ^Tx 即η与输入特征之间是线性关系.

广义线性模型的强大之处在于,当我们在做一个新的决策的时候,只需要选择y的分布,后面的部分都是前人做好的推导工作.一个新任务唯一需要作出的判断就是选择一个合理的分布,要不要这么爽.

Softmax回归

我们来看一下多项式分布的广义线性模型.

多项式分布与伯努利分布比较类似,只不过伯努利分布的取值范围为 y\in {1,2} ,只能去两个值,而伯努利分布取值范围为 y\in {1,2,...,k}

于是:
P(y=i) = \phi_i

由于总概率为1,所以有:
\phi_k = 1-(\phi_1+\phi_2+.....+\phi_{k-1})

我们用onehot encoding的形式将y表示出来是这样的:

T ( 1 ) = \left[ \begin{array} { c } { 1 } \\ { 0 } \\ { 0 } \\ { \vdots } \\ { 0 } \end{array} \right] , T ( 2 ) = \left[ \begin{array} { c } { 0 } \\ { 1 } \\ { 0 } \\ { \vdots } \\ { 0 } \end{array} \right] , T ( 3 ) = \left[ \begin{array} { c } { 0 } \\ { 0 } \\ { 1 } \\ { \vdots } \\ { 0 } \end{array} \right] , \cdots , T ( k - 1 ) = \left[ \begin{array} { c } { 0 } \\ { 0 } \\ { 0 } \\ { \vdots } \\ { 1 } \end{array} \right] , T ( k ) = \left[ \begin{array} { c } { 0 } \\ { 0 } \\ { 0 } \\ { \vdots } \\ { 0 } \end{array} \right]

可以简写成:
T(y) = I\{y=i\}

这里的I是指示函数,当花括号里为真时输出1,否则输出0.

\begin{equation} \begin{split} p(y; \phi) &= \phi^{I\{y=1\}}_1 \phi^{I\{y=2\}}_2...\phi^{I\{y=k\}}_k \\ &= \phi^{(T(y))_1}_1 \phi^{(T(y))_2}_2... \phi^{1-\sum^{k-1}_{i=1}(T(y))_i} \\ &= ... \\ &=b(η)exp(η^TT(y)−a(η)) \end{split} \end{equation}

其中:

η = \begin{bmatrix} log(\phi_1/\phi_k) \\ log(\phi_2/\phi_k)\\ ...\\ log(\phi_{k-1}/\phi_k) \end{bmatrix}

a(η) = -log(\phi_k)
b(y) = 1

还可以推导出:
\phi_i = \dfrac{e^{η_i}}{\sum_{j=i}^{k}e^{η_i}} = \dfrac{e^{\theta^T_ix}}{\sum_{j=i}^{k}e^{\theta^T_jx}}

这个算法叫做softmax回归,可以认为是逻辑回归的推广,逻辑回归只能进行二分类,而softmax回归可以进行多分类.

posted @ 2018-07-15 21:00:35
评论加载中...
发表评论