CS299笔记:广义线性模型
指数分布族
我们称一类分布属于指数分布族(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\)的函数,并以此对其进行预测。我们首先需要做出以下假设:
- \(y|x;\theta \sim ExponentialFamily(\eta)\),也就是说,以\(\theta\)为参数,给定\(x\),\(y\)的条件分布属于指数分布族
- 给定\(x\),我们输出的结果\(h_{\theta}(x)\)是\(T(y)\)的均值,一般情况下,\(T(y) = y\),所以\(h_{\theta}(x) = E[y|x]\)
- \(\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笔记:广义线性模型的更多相关文章
- Machine Learning 学习笔记 (4) —— 广义线性模型
本系列文章允许转载,转载请保留全文! [请先阅读][说明&总目录]http://www.cnblogs.com/tbcaaa8/p/4415055.html 1. 指数分布族简介 之前的文章分 ...
- 广义线性模型 - Andrew Ng机器学习公开课笔记1.6
在分类问题中我们如果: 他们都是广义线性模型中的一个样例,在理解广义线性模型之前须要先理解指数分布族. 指数分布族(The Exponential Family) 假设一个分布能够用例如以下公式表达, ...
- 斯坦福CS229机器学习课程笔记 part3:广义线性模型 Greneralized Linear Models (GLMs)
指数分布族 The exponential family 因为广义线性模型是围绕指数分布族的.大多数常用分布都属于指数分布族,服从指数分布族的条件是概率分布可以写成如下形式:η 被称作自然参数(nat ...
- [读书笔记] R语言实战 (十三) 广义线性模型
广义线性模型扩展了线性模型的框架,它包含了非正态的因变量分析 广义线性模型拟合形式: $$g(\mu_\lambda) = \beta_0 + \sum_{j=1}^m\beta_jX_j$$ $g( ...
- 广义线性模型(Generalized Linear Models)
前面的文章已经介绍了一个回归和一个分类的例子.在逻辑回归模型中我们假设: 在分类问题中我们假设: 他们都是广义线性模型中的一个例子,在理解广义线性模型之前需要先理解指数分布族. 指数分布族(The E ...
- SPSS数据分析—广义线性模型
我们前面介绍的一般线性模型.Logistic回归模型.对数线性模型.Poisson回归模型等,实际上均属于广义线性模型的范畴,广义 线性模型包含的范围非常广泛,原因在于其对于因变量.因变量的概率分布等 ...
- Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型
(一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...
- 广义线性模型 GLM
Logistic Regression 同 Liner Regression 均属于广义线性模型,Liner Regression 假设 $y|x ; \theta$ 服从 Gaussian 分布,而 ...
- 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型
本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...
随机推荐
- alpha阶段 代码结构及技术难点简介
我们的产品是安卓端app,所以目前主要就是用Android Studio来进行代码开发. Android Studio的项目的结构还是比较清晰的,如下图,主要就是java文件夹内的代码部分(.java ...
- 关于innodb mtr模块
mtr (mini-transaction)微事务 mtr作用 mtr模块主要保证物理操作的一致性和原子性 1 一致性:通过读写锁来保证 2 原子性:涉及到的物理更新,都记入redo日志 mtr何时使 ...
- sqlserver性能调优中的逻辑读,物理读,预读是什么意思
表 'T_EPZ_INOUT_ENTRY_DETAIL'.扫描计数 1,逻辑读 4825 次,物理读 6 次,预读 19672 次.SQL SERVER 数据库引擎当遇到一个查询语句时,SQL SER ...
- THE ELEMENTS OF C# STYLE
|前言 程序员其实艺术家,灵动的双手如行云流水般在键盘上创造着生命的奇迹,我认为代码是有灵魂的.同一个模块,在每个程序员手中所缔造出来的是不相同的. 最终,这个模块或者实现了最初的业务,但是回过头看看 ...
- Win7下设置护眼的电脑豆沙绿界面
控制面板\所有控制面板项\个性化\窗口颜色和外观 "色调"(Hue)设为85,"饱和度"(Sat)设为90,"亮度" (Lum)设为205. ...
- [日常] HEOI 2019 退役记
HEOI 2019 退役记 先开坑 坐等AFO 啥时候想起来就更一点(咕咕咕) Day 0 早上打了个LCT, 打完一遍过编译一遍AC...(看来不考这玩意了) 然后进行了一些精神文明建设活动奶了一口 ...
- Pre标签 自动换行
<pre> 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码 ...
- Lombok快速上手(安装、使用与注解参数)
目录 Lombok插件安装与使用说明 常见参数 lombok的依赖于安装 依赖管理 IDEA插件的安装 @Data小例子 扩展@ToString 构造器注解扩展 @Log及其他日志注解 资料链接 Lo ...
- [Python2]介绍关于Uiautomator的watcher使用场景及使用方法
[官方的介绍]: Watcher You can register watcher to perform some actions when a selector can not find a mat ...
- Spring之强制修改某个方法的行为(Arbitrary method replacement)
A less commonly useful form of method injection than Lookup Method Injection is the ability to rep ...