广义线性模型(Generalized Linear Models)-cs229 lecture4

学习cs229时看到了广义线性模型,所谓广义,应该就是使用这个模型可以将大多数的概率分布模型统一化,可以使用这个模型推导出像sigmoid,softmax之类的函数形式。在这里记录一下学到的相关内容,便于以后回顾。

指数族

概率统计中的很多分布都可以表示为指数族的形式,指数族的通用表示如下:

p(y;\eta)=b(y)exp(\eta^{T}T(y) - a(\eta))    (1)

其中\eta是这个分布的natural parameter或者叫做cononical parameter。

T(y)是sufficient statistic,一般情况下T(y)=y

a(\eta)是log partition function

T,a,b固定后就决定了一种分布集,\eta是这个分布集的参数。比如伯努利分布,p(y=1;\phi ) = \phi,其中\phi就是伯努利分布中的可变参数,代表着伯努利分布中的不同分布形态。而固定某组T,a,b可以将指数族变为伯努利形式。并且\phi\eta是相关的。

结构GLMs

我们的目的是通过给定的x来估计出y,为此我们有三个假设,或者叫做我们模型的设计:

  1. y|x;\theta服从指数族分布
  2. 给定x,我们希望预测T(y),因为大多数情况下T(y)=y,这就意味着我们希望假设函数h(x) = E(y|x)
  3. 指定\eta=\theta^{T}x

使用指数族的表示形式和这三条假定来推导三种模型

普通最小二乘法

最小二乘法是用来解决y是连续值的情况,我们可以假定y是服从高斯分布\mathbb{N}(\mu,\sigma^{2}),而高斯分布是指数族的一种,推导公式如下:

p(y;\mu)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y-\mu)^{2}}{2\sigma^{2}}}

\sigma对于这个式子而言是缩放因子,为了简化推导可以假设其为1,如果不使用这个假设结果没有差别,只是需要加上\sigma作为一个因子。

p(y;\mu)=\frac{1}{\sqrt{2\pi}}e^{-\frac{(y-\mu)^{2}}{2}}=\frac{1}{\sqrt{2\pi}}e^{-\frac{1}{2}y^{2}}e^{(\mu y-\frac{1}{2}\mu^{2})}

对比公式1,其实可以看出如果b(y) = \frac{1}{\sqrt{2\pi}}e^{-\frac{1}{2}y^{2}}T(y)=y\eta=\mu(因为\mu是实数,所以转置是一样的效果),a(\eta) = \frac{1}{2}\mu^{2} = \frac{1}{2}\eta^{2}那么高斯分布就是指数族中的一种。

h(x) = E(y|x)=\mu=\eta=\theta^{T}x

这样就推导除了最小二乘法时的假设函数就是h(x)=\theta^{T}x

逻辑回归

逻辑回归的y取值只能是0或者1,很自然我们可以把y的分布假设为伯努利分布。

p(y;\phi) = \phi^{y}(1-\phi)^{(1-y)}

= e^{log(\phi^{y}(1-\phi)^{(1-y)})}= e^{ylog\phi + (1-y)log(1-\phi)}= exp(ylog\phi+(1-y)log(1-\phi))

= exp(ylog(\frac{\phi}{1-\phi})+log(1-\phi))

对比公式1,可以看出如果b(y) = 1T(y)=y\eta=log(\frac{\phi}{1-\phi})a(\eta) = -log(1-\phi)

通过\eta=log(\frac{\phi}{1-\phi})可以推导出\phi=\frac{1}{1+e^{-\eta}}

h(x) = E(y|x)=\phi=\frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^{T}x}}

与我们逻辑回归中设计的sigmoid是一至的形式。

softmax回归

softmax回归是相对逻辑回归的扩展,逻辑回归中y只能取值0或者1,而softmax回归中y可以取值1,2,...,k,一种有k种可能性,这种需求在实际中应用也是非常的光。

y对每一种可能性的概率为\phi_i,i取值从1到k,并且有\sum_{i=1}^{k}\phi_i=1,所以我们只需要\phi_1,\phi_2,...,\phi_{k-1}个变量就可以表达所有概率

p(y=1;\phi) = \phi_1

p(y=2;\phi)=\phi_2

...

p(y=k-1;\phi)=\phi_{k-1}

p(y=k;\phi)=1-\sum_{i=1}^{k-1}\phi_i

为了能够表达为指数族的形式,我们定义T(y)\in \mathbb{R}^{k-1}

T(1)=\begin{bmatrix} 1\\ 0\\ 0\\ ...\\ 0 \end{bmatrix}T(2)=\begin{bmatrix} 0\\ 1\\ 0\\ ...\\ 0 \end{bmatrix}T(3)=\begin{bmatrix} 0\\ 0\\ 1\\ ...\\ 0 \end{bmatrix},...,广义线性模型(Generalized Linear Models)-cs229 lecture4_第1张图片T(k)=\begin{bmatrix} 0\\ 0\\ 0\\ ...\\ 0 \end{bmatrix}

T(y)_i表示T(y)向量的第i个元素。引进一个符号1\left \{ . \right \},括号内如果为True,那么这个值为1,括号内如果为False,那么这个值为0

1\left \{ True \right \}=11\left \{ False \right \}=0

那么T(y)_i=1\left \{ y=i \right \},因为当y为i时,T(y)的第i项为1,当y不等于i的时候T(y)的第i项肯定为0

E[T(y)_i] = p(y=i)=\phi_i

p(y;\phi)=\phi_1^{1\left \{ y=1 \right \}}\phi_2^{1\left \{ y=2 \right \}}...\phi_{k-1}^{1\left \{ y=k-1 \right \}}\phi_k^{1\left \{ y=k \right \}}因为y的取值会是1到k之间,如果y为1,那么其他项\phi_2^{1\left \{ y=2 \right \}}...\phi_{k-1}^{1\left \{ y=k-1 \right \}}\phi_k^{1\left \{ y=k \right \}}都会是1

\sum_{i=1}^{k}1\left \{ y=i\right \}=1因为y只会取其中一个值,所以求和的所有式子中只有一个为1,其他为0,将这个式子代入上面的式子可以得到

p(y;\phi)=\phi_1^{1\left \{ y=1 \right \}}\phi_2^{1\left \{ y=2 \right \}}...\phi_{k-1}^{1\left \{ y=k-1 \right \}}\phi_k^{1-\sum_{i=1}^{k-1}1\left \{ y=i \right \}}

=\phi_1^{T(y)_1}\phi_2^{T(y)_2}...\phi_{k-1}^{T(y)_{k-1}}\phi_k^{1-\sum_{i=1}^{k-1}T(y)_i}

=exp[T(y)_1log\phi_1+T(y)_2log\phi_2+...+T(y)_{k-1}log\phi_{k-1}+(1-\sum_{i=1}^{k-1}T(y)_i)log\phi_k]合并式子

=exp[T(y)_1log(\phi_1/\phi_k)+T(y)_2log(\phi_2/\phi_k) + ...+T(y)_{k-1}log(\phi_{k-1}/\phi_k)+log\phi_k]

跟指数族的公式比较,可以得到

b(y)=1

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

a(\eta) = -log\phi_k

所以\eta_i=log(\phi_i/\phi_k),因此\phi_i=e^{\eta_i}\phi_k

\sum_{j=1}^{k}\phi_j=1,所以\phi_k\sum_{j=1}^{k}e^{\eta_j}=1,因此\phi_k=\frac{1}{\sum_{j=1}^{k}e^{\eta_j}}代入上一行的式子可以得到

\phi_i=\frac{e^{\eta_i}}{\sum_{j=1}^{k}e^{\eta_j}}

p(y=i|x;\theta)=\phi_i=\frac{e^{\eta_i}}{\sum_{j=1}^{k}e^{\eta_j}}=\frac{e^{\theta_i^{T}x}}{\sum_{j=1}^{k}e^{\theta_j^{T}x}}

下面开始推导h(\theta)

h(\theta)=E[T(y)|x;\theta]

广义线性模型(Generalized Linear Models)-cs229 lecture4_第2张图片

这就是softmax函数的形式,可以预测多分类问题。

其实广义线性模型还可以用来分析很多其他的分布,因为并不常用,这里就不推导了。之前看了很久的sigmoid,softmax,在这里总算找到出处,也算是收货满满。

 

你可能感兴趣的:(机器学习算法)