一、前置知识

1. 得分函数 score / informant

score / informant 定义为对数似然函数关于参数的梯度:

其中即为似然函数,可扩写为,其中为观测到的数据,从采样域中产生

在某一特定点的 函数指明了该点处对数似然函数的陡峭程度(steepness),或者是函数值对参数发生无穷小量变化的敏感性。

如果对数似然函数定义在连续实数值的参数空间中,那么它的函数值将在(局部)极大值与极小值点消失。这一性质通常用于极大似然估计中(maximum likelihood estimation, MLE),来寻找使得似然函数值极大的参数值。


注意中竖线前后的字母为随机变量,在这里则是一个定值,意为采样后的观测值,而则为自变量,意为参数模型中的参数

当(假设位于正确值时,我们可以通过推导,也就是 ,为一概率密度函数,意为当模型参数为时,采样到的概率

从两个角度得到了对同一事实的论证,因此可写作


首先,来分析的数学期望,这里讨论的问题是:当参数取值为时,的数学期望

从直观上分析,当参数位于真实最佳)参数点时,似然函数有其极大值(考虑极大似然估计的定义),因此为一极值点,所以该点梯度为,即

下面进行公式分析:

首先要明确,该期望是函数关于什么随机变量的期望。从上面的讨论中可以得到,该问题中唯一的随机变量是采样观测值,它的采样概率是

我们有

因此

因此得证:

2. Fisher信息矩阵

Fisher信息(Fisher information),或简称为信息(information)是一种衡量信息量的指标

假设我们想要建模一个随机变量 的分布,用于建模的参数是 ,那么Fisher信息测量了 携带的对于 的信息量

所以,当我们固定 值,以 为自变量,Fisher 信息应当指出这一 值可贡献给 多少信息量

比如说,某一 点附近的函数平面非常陡峭(有一极值峰值),那么我们不需要采样多少 即可做出比较好的估计,也就是采样点 的Fisher 信息量较高。反之,若某一 附近的函数平面连续且平缓,那么我们需要采样很多点才能做出比较好的估计,也就是 Fisher 信息量较低。

从这一直观定义出发,我们可以联想到随机变量的方差,因此对于一个(假设的)真实参数 函数的 Fisher 信息定义为 函数的方差

此外,如果 对于 二次可微,那么 Fisher 信息还可以写作

证明如下:

二、EWC

1. 数学推导

假设数据集被划分为两个任务,网络参数为

学习任务为最大化后验概率

其中定义为训练 loss

考虑任务训练顺序

其中后验概率 不易得到,因此使用拉普拉斯近似进行分析

在训练任务 之前,网络已经在任务 上收敛,设网络此时的参数为 ,为在任务 上拟合得到的参数,设函数

做泰勒展开:

代入:

观察形式可得:

其中协方差矩阵项正是第一部分讨论的Fisher信息矩阵,记做,则有

另外,EWC是以一个参数的视角出发的,因此Fisher信息矩阵只需要对角线元素,其余计算出来的结果可以置0,所以有:

所以,所有参数的EWC Loss可定义为:

将上述内容代入总优化目标:

定义超参数 进行稳定性-可塑性权衡

因此优化目标为:

2. 如何计算 Fisher 信息矩阵

将训练过程进行划分:

  1. 使用数据集 训练模型
  2. 保存此时的参数,即 ,并计算 Fisher 信息矩阵
  3. 使用数据集 训练模型
  4. 多任务同理

最后一个问题,如何使用 计算

考虑定义

可以通过计算梯度的平方来获得每一个参数的 Fisher 信息矩阵项:

具体来说,可以向模型逐个喂入样本,并计算损失函数,使用神经网络框架自动计算梯度。对于每个参数,累加所有的梯度,最后除以样本数量,即可得到对应参数的 Fisher 信息矩阵项

需要注意的是,当使用 nn.CrossEntrypyLossnn.NLLLoss时,由于其中对于 使用了相反数处理,使用该类损失函数得到的矩阵是真实 Fisher 信息矩阵的相反数,即,在计算 loss 时要记得将减号改成加号,即