Natural Gradient Descent
为了了解什么是 natural gradient descent,首先需要知道一些基础知识,包括:
- Score function
- Fisher Information Matrix
- KL 散度及其泰勒展开形式
- 拉格朗日乘子法
Score function
首先假设我们有一个参数化的模型 。Score function 定义为 log 似然的梯度:
score function 具有一个性质,也就是其期望为0:
Fisher Information Matrix
Fisher Information Matrix 定义为 score function 的方差:
KL 散度
两个分布 与
之间的KL 散度的定义为:
KL 散度的二阶 Hessian 阵
为了求解自然策略梯度,我们有必要知道 的Hessian阵是什么,下面给出KL散度的二阶Hessian阵形式(后面给出具体推导):
然而,KL散度的二阶Hessian阵在处的取值其实就是 Hessian 阵,也就是说:
推导过程如下:
所以对
的导数在
处的取值为Fisher Information Matrix:
Natural Gradient Descent
基本思路
传统的策略梯度方法选择作为参数值
的更新方向,但是这种方法依赖于欧式空间。而 Natural Gradient Descent 是在分布空间而不是参数空间来更新参数的,其基本思路如下:
根据泰勒二阶
可以得到 的
在
处的展开式,令
,可以得到:
所以我们通过对(1)中约束进行泰勒展开,得到了下面的优化式子:
其中对进行一阶泰勒展开,得到
。于是(2)中的优化问题转换成
可以看出(3)中的优化问题是一个具有等式约束的优化问题,因此我们可以构造拉格朗日函数解上述限制优化问题,首先构造拉格朗日函数 为
为了求 的极小值,令其导数为0,可以得到:
因此,通过对目标函数进行泰勒一次展开,对KL约束进行二次泰勒展开,我们简化了函数的形式,最终得到方向 。因此参数的更新迭代过程为:
自然策略梯度法的算法如下 :
- Repeat
- 进行前向传播计算损失函数
- 计算
,计算Fisher信息矩阵
- 计算自然梯度
- 更新参数
- 进行前向传播计算损失函数
- Until Convergence
Quick Facts
总结一下我们提到过的一些结论:
- score function 定义为
- Fisher Information Matrix 为 score function 的方差
- KL 散度二阶泰勒展开的二次项可以通过 Fisher Information Matrix 来表达