指数分布族

我们称一类分布属于指数分布族(exponential family distribution),如果它的分布函数可以写成以下的形式:
\[
\begin{equation}
p(y;\eta) = b(y) \exp(\eta^{T}T(y) - a(\eta)) \tag{*}
\end{equation}
\]
其中,\(\eta\)被称为自然参数(natural parameter),\(T(y)\)被称为充分统计量(sufficient statistic),\(a(\eta)\)被称为对数分割函数(log partition function),一组特定的\(T\),\(b\),\(a\)可以确定一类分布,它们以\(\eta\)为参数。

下面介绍两个例子:伯努利分布与正态分布。

伯努利分布

伯努利分布的概率分布函数是:
\[
\begin{align*}
p(y;\phi) &= \phi ^{y} (1 - \phi)^{1-y}\\
&= \exp(y \log \phi + (1-y) \log (1 - \phi))\\
&= \exp(y \log \frac{\phi}{1-\phi} + \log (1-\phi ))\\
\end{align*}
\]
我们发现,伯努利分布的概率分布函数符合式\((*)\)的形式,其中\(\eta = \log \frac{\phi}{1 - \phi} \Rightarrow \phi = \frac{1}{1+e ^{-\eta}}\),进一步可以得到:
\[
\begin{align*}
b(y) &= 1\\
T(y) &= y\\
a(\eta) &= \log (1 + e^{\eta})\\
\end{align*}
\]

高斯分布

接下来考虑高斯分布,这里令\(\sigma ^{2} = 1\),则:
\[
\begin{align*}
p(y;\mu) &= \frac{1}{\sqrt{2\pi}}\exp(-\frac{(y-\mu)^2}{2}) \\
&= \frac{1}{\sqrt{2\pi}}\exp(-\frac{y^{2}}{2})\exp(\mu y - \frac{\mu ^{2}}{2})
\end{align*}
\]
可以看出,高斯分布同样属于指数分布族:
\[
\begin{align*}
b(y) &= \frac{1}{\sqrt{2\pi}} \exp(-\frac{y^{2}}{2}) \\
\eta &= \mu \\
T(y) &= y \\
a(\eta) &= \frac{\mu ^2}{2} = \frac{\eta ^2}{2}
\end{align*}
\]
除了这两个分布,还有很多分布属于指数分布族,如多项式分布、泊松分布、指数分布、伽玛分布、\(\beta\)分布等。

构造广义线性模型(GLM)

考虑一个分类问题或回归问题,我们希望把随机变量\(y\)当作\(x\)的函数,并以此对其进行预测。我们首先需要做出以下假设:

  1. \(y|x;\theta \sim ExponentialFamily(\eta)\),也就是说,以\(\theta\)为参数,给定\(x\),\(y\)的条件分布属于指数分布族
  2. 给定\(x\),我们输出的结果\(h_{\theta}(x)\)是\(T(y)\)的均值,一般情况下,\(T(y) = y\),所以\(h_{\theta}(x) = E[y|x]\)
  3. \(\eta\)和\(x\)满足线性关系,即\(\eta = \theta ^T x\)(如果\(\eta\)是向量,则\(\eta_{i} = \theta_{i}^{T}x\))

对于第3个假设,我们可以说它是一种假设,也可以说它是一种设计选择,正是由于我们选择了这样的关系,所以我们称这一类模型为广义线性模型。

接下来给出三个例子。

线性回归

假设\(y|x; \theta \sim \mathcal{N}(\mu, \sigma)\),利用上文的三个假设,我们可以推导出:
\[
\begin{align*}
h_{\theta}(x) &= E[y|x;\theta] \tag{1}\\
&= \mu \tag{2} \\
&= \eta \tag{3}\\
&= \theta ^{T} x \tag{4}\\
\end{align*}
\]
其中\((1)\)由假设2得到,\((2)\)由正态分布的性质得到,\((3)\)由正态分布对应的广义线性模型参数得到,\((4)\)由假设3得到。

逻辑回归

假设\(y|x; \theta \sim Bernoulli(\phi)\),则:
\[
\begin{align*}
h_{\theta}(x) &= E[y|x;\theta] \tag{1} \\
&= \phi \tag{2} \\
&= \frac{1}{1 + e^{-\eta}} \tag{3} \\
&= \frac{1}{1 + e^{-\theta^{T}x}} \tag{4}\\
\end{align*}
\]
同样地,\((1)\)由假设2得到,\((2)\)由伯努利分布的性质得到,\((3)\)由伯努利分布对应的广义线性模型参数得到,\((4)\)由假设3得到。

softmax回归

我们介绍一种新的算法:softmax回归(softmax regression)。softmax回归解决的是多分类问题,假设在一个给定的问题中,标签可以分为\(k\)类,即\(y \in \left\{1, 2, \dots, k\right\}\),此时用多项式分布(multinomial distribution)建模看上去是一个比较自然的想法。对于有\(k\)种可能输出的多项式分布,参数有\(k - 1\)个:\(\phi_{1}, \phi_{2}, \dots, \phi_{k-1}\),其中\(\phi_{i} = p(y=i;\phi)\),同时引入记号\(\phi_{k} = p(y=k;\phi)= 1 - \sum_{i=1}^{k-1}\phi_{i}\),注意,这里的\(\phi_k\)并非参数,只是为了推导公式方便引入的符号。

引入示性函数\(1\left\{\cdot\right\}\),函数的参数是一个表达式,若表达式为真,则函数值为1,若表达式为假,则函数值为0,即\(1\left\{\text{True}\right\} = 1, 1\left\{\text{False}\right\} = 0\),则:
\[
\begin{align*}
p(y;\phi) &= \phi_{1}^{1\left\{y=1\right\}}\phi_{2}^{1\left\{y=2\right\}}\cdots\phi_{k}^{1\left\{y=k\right\}}\\
&= \phi_{1}^{1\left\{y=1\right\}}\phi_{2}^{1\left\{y=2\right\}}\cdots\phi_{k}^{1-\sum_{i=1}^{k-1}1\left\{y=i\right\}}\\
\end{align*}
\]
定义函数\(T(y) \in \mathbb{R}^{k-1}\):
\[
T(1) = \begin{bmatrix}
1\\0\\0\\ \vdots\\ 0\\
\end{bmatrix},
T(2) = \begin{bmatrix}
0\\1\\0\\ \vdots\\ 0\\
\end{bmatrix},
T(3) = \begin{bmatrix}
0\\0\\1\\ \vdots\\ 0\\
\end{bmatrix},
\cdots,
T(k-1) = \begin{bmatrix}
0\\0\\0\\ \vdots\\ 1\\
\end{bmatrix},
T(k) = \begin{bmatrix}
0\\0\\0\\ \vdots\\ 0\\
\end{bmatrix}
\]
则:
\[
\begin{align*}
p(y;\phi) &= \phi_{1}^{1\left\{y=1\right\}}\phi_{2}^{1\left\{y=2\right\}}\cdots\phi_{k}^{1-\sum_{i=1}^{k-1}1\left\{y=i\right\}}\\
&= \phi_{1}^{T(y)_{1}}\phi_{2}^{T(y)_{2}}\cdots\phi_{k}^{1-\sum_{i=1}^{k-1}T(y)_{i}}\\
&= \exp(T(y)_{1}\log \phi_{1} + T(y)_{2}\log \phi_{2} + \dots + T(y)_{k-1}\log \phi_{k-1} + (1-\sum_{i=1}^{k-1}T(y)_{i})\log \phi_{k})\\
&= \exp(T(y)_{1}\log \frac{\phi_{1}}{\phi_{k}} + T(y)_{2}\log \frac{\phi_{2}}{\phi_{k}} + \dots + T(y)_{k-1}\log \frac{\phi_{k-1}}{\phi_{k}} + \log \phi_{k})\\
\end{align*}
\]
上式满足指数分布族的概率分布函数形式,其中:
\[
\begin{align*}
\eta &= \begin{bmatrix}
\log \frac{\phi_1}{\phi_k}\\
\log \frac{\phi_2}{\phi_k}\\
\vdots\\
\log \frac{\phi_{k-1}}{\phi_k}\\
\end{bmatrix}\\
a(\eta) &= -\log \phi_{k}\\
b(y) &= 1 \\
\end{align*}
\]
所以,我们的假设函数为:
\[
\begin{align*}
h_{\theta}(x) &= E[T(y)|x;\theta]\\
&= p(y=1|x;\theta)T(1) + p(y=2|x;\theta)T(2) + \dots + p(y=k|x;\theta)T(k)\\
&= \phi_{1}T(1) + \phi_{2}T(2) + \dots + \phi_{k}T(k)\\
&= \begin{bmatrix}
\phi_{1}\\
\phi_{2}\\
\vdots\\
\phi_{k-1}
\end{bmatrix}
\end{align*}
\]
另外,由\(\eta\)的值可知:
\[
\begin{align*}
\eta_{i} &= \log \frac{\phi_i}{\phi_k}\\
\phi_{k} e^{\eta_i} &= \phi_i\\
\phi_{k} \sum_{i=1}^{k-1} e^{\eta_i} &= \sum_{i=1}^{k-1} \phi_i = 1 - \phi_k\\
\end{align*}
\]
所以,\(\phi_k = \frac{1}{1 + \sum_{i=1}^{k-1} e^{\eta_i}}\),不妨再引入记号\(\eta_k = 0\),则\(\phi_{k} = \frac{1}{\sum_{i=1}^{k} e^{\eta_i}}\),从而我们得到:
\[
\phi_i = \frac{e^{\eta_i}}{\sum_{j=1}^{k} e^{\eta_j}} \quad i = 1,2,\dots, k-1
\]
我们把这个从\(\eta\)映射到\(\phi\)的函数称为softmax函数,引入记号\(\theta_{k} = 0\),利用假设3,我们可以将上式写成:
\[
\phi_{i} = \frac{e^{\theta_{i}^T x}}{\sum_{j=1}^{k} e^{\theta_{j}^Tx}}\quad i=1,2,\dots,k-1
\]
至此,我们就得到了\(k\)分类问题的假设函数:
\[
h_{\theta}(x) = \begin{bmatrix}
\frac{e^{\theta_{1}^T x}}{\sum_{j=1}^{k} e^{\theta_{j}^Tx}}\\
\frac{e^{\theta_{2}^T x}}{\sum_{j=1}^{k} e^{\theta_{j}^Tx}}\\
\vdots\\
\frac{e^{\theta_{k-1}^T x}}{\sum_{j=1}^{k} e^{\theta_{j}^Tx}}\\
\end{bmatrix}
\]
假设函数输出的是\(y=1, 2, \dots, k-1\)的概率,同时,我们也不难得到\(y=k\)的概率;此外,我们发现,当\(k=2\)时,上式就是逻辑回归的假设函数。

我们用\(\theta\)来表示完整的模型参数,\(\theta \in \mathbb{R}^{(k-1) \times (n+1)}\):
\[
\theta = \begin{bmatrix}
\theta_{1}^{T}\\
\theta_{2}^{T}\\
\vdots\\
\theta_{k-1}^{T}\\
\end{bmatrix}
\]
可以得到其对数似然:
\[
\begin{align*}
l(\theta) &= \log \prod_{i=1}^{m}\prod_{j=1}^{k}(\frac{e^{\theta_j^{T}x^{(i)}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}})^{1\left\{y^{(i)}=j\right\}} \\
&= \sum_{i=1}^{m}\sum_{j=1}^{k}{1\left\{y^{(i)}=j\right\}}\log \frac{e^{\theta_j^{T}x^{(i)}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}}
\end{align*}
\]

现在,我们尝试求\(l(\theta)\)对\(\theta_s (s \in \left\{1, 2, \dots, k-1\right\})\)的梯度:
\[
\begin{align*}
\nabla_{\theta_{s}}l(\theta)
&= \sum_{i=1}^{m}\left[\sum_{j=1,j\neq s}^{k}1\left\{y^{(i)}=j\right\}\frac{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}}{e^{\theta_j^{T}x^{(i)}}}\cdot \frac{-e^{\theta_s^{T}x^{(i)}}\cdot e^{\theta_{j}^{T}x^{(i)}}}{(\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}})^2}\cdot x^{(i)} + 1\left\{y^{(i)}=s\right\}\frac{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}}{e^{\theta_s^{T}x^{(i)}}}\cdot \frac{e^{\theta_s^Tx^{(i)}}\cdot(\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}) - e^{\theta_s^Tx^{(i)}}\cdot e^{\theta_s^Tx^{(i)}}}{(\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}})^2}\cdot x^{(i)}\right]\\
&= \sum_{i=1}^{m}\left[\sum_{j=1,j\neq s}^{k}1\left\{y^{(i)}=j\right\}\frac{-e^{\theta_s^{T}x^{(i)}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}}\cdot x^{(i)} + 1\left\{y^{(i)}=s\right\}\frac{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}} - e^{\theta_s^Tx^{(i)}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}}\cdot x^{(i)}\right]\\
&= \sum_{i=1}^{m}\left[\left(1\left\{y^{(i)}=s\right\}-\sum_{j=1}^{k}1\left\{y^{(i)}=j\right\}\frac{e^{\theta_s^Tx^{(i)}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}}\right)x^{(i)}\right]\\
&= \sum_{i=1}^{m}\left[\left(1\left\{y^{(i)}=s\right\}-\frac{e^{\theta_s^Tx^{(i)}}}{\sum_{l=1}^{k}e^{\theta_{l}^{T}x^{(i)}}}\right)x^{(i)}\right]\\
&= \sum_{i=1}^{m}\left[\left(1\left\{y^{(i)}=s\right\}-h_{\theta}(x^{(i)})_{s}\right)x^{(i)}\right]\\
\end{align*}
\]
在每一次迭代中,我们进行如下更新:
\[
\theta_s := \theta_s + \alpha \nabla_{\theta_s} l(\theta)\quad s = 1,2,\dots,k-1
\]
当\(k=2\)时,上述的更新方式恰好就是逻辑回归中的更新方式。

CS299笔记:广义线性模型的更多相关文章

  1. Machine Learning 学习笔记 (4) —— 广义线性模型

    本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 指数分布族简介 之前的文章分 ...

  2. 广义线性模型 - Andrew Ng机器学习公开课笔记1.6

    在分类问题中我们如果: 他们都是广义线性模型中的一个样例,在理解广义线性模型之前须要先理解指数分布族. 指数分布族(The Exponential Family) 假设一个分布能够用例如以下公式表达, ...

  3. 斯坦福CS229机器学习课程笔记 part3:广义线性模型 Greneralized Linear Models (GLMs)

    指数分布族 The exponential family 因为广义线性模型是围绕指数分布族的.大多数常用分布都属于指数分布族,服从指数分布族的条件是概率分布可以写成如下形式:η 被称作自然参数(nat ...

  4. [读书笔记] R语言实战 (十三) 广义线性模型

    广义线性模型扩展了线性模型的框架,它包含了非正态的因变量分析 广义线性模型拟合形式: $$g(\mu_\lambda) = \beta_0 + \sum_{j=1}^m\beta_jX_j$$ $g( ...

  5. 广义线性模型(Generalized Linear Models)

    前面的文章已经介绍了一个回归和一个分类的例子.在逻辑回归模型中我们假设: 在分类问题中我们假设: 他们都是广义线性模型中的一个例子,在理解广义线性模型之前需要先理解指数分布族. 指数分布族(The E ...

  6. SPSS数据分析—广义线性模型

    我们前面介绍的一般线性模型.Logistic回归模型.对数线性模型.Poisson回归模型等,实际上均属于广义线性模型的范畴,广义 线性模型包含的范围非常广泛,原因在于其对于因变量.因变量的概率分布等 ...

  7. Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型

    (一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...

  8. 广义线性模型 GLM

    Logistic Regression 同 Liner Regression 均属于广义线性模型,Liner Regression 假设 $y|x ; \theta$ 服从 Gaussian 分布,而 ...

  9. 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型

    本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...

随机推荐

  1. 留言板0.4_model中的数据库(1)

    1.先在数据库中加入一天测试数据先 2.在model的"views"中载入数据库和model的类 import pymysql from .models import UserMe ...

  2. 在 Azure 中的 Windows 虚拟机上使用 SSL 证书保护 IIS Web 服务器

    若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Windows ...

  3. tali -f 和 tail -F 之间的区别

    tail -f      等同于--follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止 tail -F     等同于--follow=name  --retry ...

  4. python 3.6 的 venv 模块

    今天,在在使用 pycharm 的使用,进行创建 python的时候,发现使用默认的创建的选项使用的python 3环境 .而我系统默认的python环境是 python 2.7 环境:这就引起了我的 ...

  5. ip 命令的使用

    网上相似的资源很多,可以参考如下资料: man ip ip help 博客链接: https://linoxide.com/linux-command/use-ip-command-linux/ ht ...

  6. MySQL安装及初步配置.md

    MySQL 安装脚本 #!/bin/bash MYSQL_BASEDIR=/usr/local/mysql MySQL_DATADIR=/data/mysql SERVER_ID=`hostname ...

  7. apache不能启动LoadModule php5_module modules/ph

    apache不能启动LoadModule php5_module modules/php5apache2.dll的问题 主要是版本问题!!有点不爽!! apache不能启动 加入下面两行,apache ...

  8. ORACLE 11GR2常用命令

    一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...

  9. centos7之Java开发环境构建

    CensOS7环境 我个人的博客环境如下: 希望这个教程可以帮助到linux新手朋友们或者其他在安装软件时遇到问题的朋友们 当然了,百度上也有很多类似这样的教程,我个人贴出来,一来为分享,二来以后自己 ...

  10. CentOS7下安装NVIDIA独立显卡驱动出现X service error问题解决方法

    问题症状: 最近在CentOS7下安装NVIDIA独立显卡驱动的过程中出现X service error问题,如下图所示: 解决方法: 0.到NVIDIA 官网上下载驱动文件(.run 格式) : N ...