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\)的函数,并以此对其进行预测。我们首先需要做出以下假设:

  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\)时,上述的更新方式恰好就是逻辑回归中的更新方式。

猜你喜欢

转载自www.cnblogs.com/hitgxz/p/10735053.html