Update 第二章_机器学习基础.md
This commit is contained in:
parent
d6af513c9e
commit
38e56855d2
|
|
@ -900,6 +900,69 @@ BGD、SGD、Mini-batch GD,前面均已讨论过,这里介绍一下Online GD
|
|||
|
||||
Online GD在互联网领域用的较多,比如搜索广告的点击率(CTR)预估模型,网民的点击行为会随着时间改变。用普通的BGD算法(每天更新一次)一方面耗时较长(需要对所有历史数据重新训练);另一方面,无法及时反馈用户的点击行为迁移。而Online GD算法可以实时的依据网民的点击行为进行迁移。
|
||||
|
||||
## 2.13 自然梯度法
|
||||
|
||||
**(贡献者:郜泉凯-华南理工大学)**
|
||||
|
||||
### 2.13.1 为什么我们需要自然梯度
|
||||
|
||||
传统的梯度下降方法是在欧氏空间进行、并与时序过程结合的优化方法,但这样的更新过程无法度量由于参数变化引起的概率属性的变化(这一点也可以认为是传统梯度下降方法的缺点)。在如强化学习等很多应用领域关注模型输出的概率分布,优化过程常常需要在一定概率属性的约束下完成,这就需要自然梯度。
|
||||
|
||||
### 2.12.2 如何定义自然梯度
|
||||
|
||||
若度量模型参数变化引起的概率分布变化,常用的“距离”度量是KL散度(Kullback-Leibler divergence)。设模型概率分布为$p(x;\theta)$,其与参数变动后的概率分布间的KL散度为:
|
||||
$$
|
||||
D_{KL}(p(x;\theta)||p(x;\theta+\delta\theta))=\int p(x;\theta)log\frac {p(x;\theta)}{p(x;\theta+\delta\theta)}dx
|
||||
$$
|
||||
我们令$f(\theta+\delta\theta)=log p(x;\theta+\delta\theta)$,做泰勒展开取二阶近似(忽略高阶余项)得到:
|
||||
$$
|
||||
f(\theta+\delta\theta)\approx f(\theta)+\delta\theta^T\frac{\partial f(\theta)}{\partial\theta}+\frac{1}{2}\delta\theta^T\frac{\partial f(\theta)}{\partial\theta}\frac{\partial f(\theta)^T}{\partial\theta}\delta\theta
|
||||
$$
|
||||
带入到$D_{KL}(p(x;\theta)||p(x;\theta+\delta\theta))$中可得到:
|
||||
$$
|
||||
\begin{eqnarray}
|
||||
D_{KL}(p(x;\theta)||p(x;\theta+\delta\theta))&=&\int p(x;\theta)(f(\theta)-f(\theta+\delta\theta))dx\\
|
||||
&=&-\int p(x;\theta)(\delta\theta^T\frac{\partial f(\theta)}{\partial\theta}+\frac{1}{2}\delta\theta^T\frac{\partial f(\theta)}{\partial\theta}\frac{\partial f(\theta)^T}{\partial\theta}\delta\theta)dx\\
|
||||
&=&-\delta\theta^T\int p(x;\theta)\frac{\partial logp(x;\theta)}{\partial\theta}dx\\
|
||||
&-&\frac{1}{2}\delta\theta^T\int p(x;\theta)\frac{\partial f(\theta)}{\partial\theta}\frac{\partial f(\theta)^T}{\partial\theta}dx\delta\theta\\
|
||||
&=&-\delta\theta^T\int p(x;\theta)\frac{\frac{\partial p(x;\theta)}{\partial\theta}}{p(x;\theta)}dx-\frac{1}{2}\delta\theta^TG\delta\theta\\
|
||||
&=&-\frac{1}{2}\delta\theta^TG\delta\theta
|
||||
\end{eqnarray}
|
||||
$$
|
||||
我们记在KL散度意义下的参数增量为$\delta\theta_G$,接下来我们寻求在$||\delta\theta_G||^2=\epsilon$约束下$\delta\theta_G$的方向,使得目标函数$J(\theta)$下降最快,即$J(\theta+\delta\theta)-J(\theta)$最大。应用拉格朗日乘子法:
|
||||
$$
|
||||
\max_{\delta\theta}J(\theta+\delta\theta)-J(\theta)-\lambda(||\delta\theta_G||^2-\epsilon)
|
||||
$$
|
||||
应用一阶泰勒展开等价于:
|
||||
$$
|
||||
\max_{\delta\theta}\nabla \delta\theta^T J(\theta)-\frac{1}{2}\lambda\delta\theta^TG\delta\theta
|
||||
$$
|
||||
对$\delta\theta$求导得$\nabla J(\theta)-\lambda G\delta\theta=0$,即$\delta\theta=\frac{1}{\lambda}G^{-1}\nabla J(\theta)$,其中$G^{-1}\nabla J(\theta)$称为自然梯度,相应的自然梯度下降公式为$\theta_{k+1}=\theta_k-\alpha_kG^{-1}(\theta_k)\nabla J(\theta_K)$。
|
||||
|
||||
### 2.12.3 Fisher信息矩阵的意义
|
||||
|
||||
首先我们对一个模型进行建模,成为以$\theta$为参数的概率分布$p(x;\theta)$。为求出一个合理的$\theta$我们需要一个评分函数(score function):$s(\theta)=\nabla_{\theta}logp(x;\theta)$,意为对数似然的梯度,当分数为0时(对数似然梯度为0),对数似然达到极值。对评分函数求关于$p(x;\theta)$数学期望$p_E$不难发现期望为0。接下来求估计误差的界,我们用评分函数的方差来确定,即$E_{p(x;\theta)}[(s(\theta)-p_E)(s(\theta-p_E)^T)]$。带入评分函数的数学表达形式则等价于Fisher信息矩阵$G(\theta)=\int p(x;\theta)\frac{\partial f(\theta)}{\partial\theta}\frac{\partial f(\theta)^T}{\partial\theta}dx$。特别地,Fisher信息矩阵与评分函数$\nabla_{\theta}logp(x;\theta)$的Hessian似然的负数等价。
|
||||
|
||||
证明:首先求出评分函数的Hessian矩阵,由梯度的Jacobian决定
|
||||
$$
|
||||
\begin{eqnarray}
|
||||
H_{logp(x;\theta)}&=&J(\frac{\nabla p(x;\theta)}{p(x;\theta)})\\
|
||||
&=&\frac{\frac{\partial\nabla p(x;\theta)}{\partial\theta}p(x;\theta)-\nabla p(x;\theta)\nabla p(x;\theta)^T}{p(x;\theta)p(x;\theta)}\\
|
||||
&=&\frac{H_{p(x;\theta)}p(x;\theta)}{p(x;\theta)p(x;\theta)}-\frac{\nabla p(x;\theta)\nabla p(x;\theta)^T}{p(x;\theta)p(x;\theta)}\\
|
||||
\end{eqnarray}
|
||||
$$
|
||||
等式两边同时求关于$p(x;\theta)$的数学期望:
|
||||
$$
|
||||
\begin{eqnarray}
|
||||
E_{p(x;\theta)}[H_{logp(x;\theta)}] &=& E_{p(x;\theta)}(\frac{H_{p(x;\theta)}p(x;\theta)}{p(x;\theta)p(x;\theta)})-G\\
|
||||
&=&\int\frac{H_{p(x;\theta)}}{p(x;\theta)}p(x;\theta)dx-G\\
|
||||
&=&\nabla^2\int p(x;\theta)dx-G\\
|
||||
&=&-G
|
||||
\end{eqnarray}
|
||||
$$
|
||||
而Hessian矩阵刻画着对数似然函数的曲率,所以本质上自然梯度下降法是在一个消除了不同概率分布的曲率后,在同一个“平坦”曲面上进行迭代更新,步长等于原概率分布空间的步长按照曲率折合到新的“平坦曲面”的大小。
|
||||
|
||||
值得注意的一点是,一般来说似然函数获取很难,在实际问题中,我们可以用采样的方法从数据集中采样数据,将Fisher信息矩阵原始表达式的积分变为求和来近似估计,这样的方式得到的Fisher信息矩阵称为经验Fisher。
|
||||
|
||||
## 2.14 线性判别分析(LDA)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue