# Progressive  Neural Networks

> [Progressive Neural Networks](https://arxiv.org/pdf/1606.04671.pdf)

学习解决复杂的任务序列——同时利用转移和避免灾难性遗忘——仍然是实现人类智能的关键障碍。渐进式网络方法在这个方向上向前迈进了一步:它们不容易遗忘，且可以通过与之前学习过的特征之间的横向连接利用先验知识。我们在各种强化学习任务(雅达利和3D 迷宫)上对该架构进行了广泛的评估，并证明它优于基于预处理和微调的通用基准。利用一种新的灵敏度测量方法，我们证明了迁移发生在学习策略的低水平感觉层和高水平控制层。

## 方法

### Progressive Neural Networks

渐进网络以单列开始：一个 $$L$$ 层的深度神经网络且带有隐藏激活层 $$h\_{i}^{(1)} \in \mathbb{R}^{n\_{i}}$$ （ $$i \leq L$$ ），并且参数 $$\Theta(1)$$ 已经收敛。当切换到第二个任务时，参数$$\Theta(1)$$被“冻结”，并且参数$$\Theta(2)$$的新列被实例化（随机初始化），其中隐层 $$h\_{i}^{(2)}$$ 通过横向连接从 $$h\_{i-1}^{(2)}$$ 和$$h\_{i-1}^{(1)}$$接收输入，推广到第K个任务：

$$
h\_{i}^{(k)}=f\left(W\_{i}^{(k)} h\_{i-1}^{(k)}+\sum\_{j\<k} U\_{i}^{(k : j)} h\_{i-1}^{(j)}\right)
$$

下图是K=3时的网络结构

![](/files/-LaNIJr9YgtJ4swlAb9r)

这些建模方法是由我们的目的决定的: ( 1 )在训练结束时解决独立的任务；( 2 )尽可能通过迁移加速学习；( 3 )避免灾难性遗忘。

### Adapters

在实践中，我们使用非线性横向连接（我们称之为Adapter）来增强前面的渐进网络层，它们既可以改善初始条件，也可以降低维度。

$$
h\_{i}^{(k)}=\sigma\left(W\_{i}^{(k)} h\_{i-1}^{(k)}+U\_{i}^{(k : j)} \sigma\left(V\_{i}^{(k : j)} \alpha\_{i-1}^{(\<k)} h\_{i-1}^{(\<k)}\right)\right)
$$

其中 $$h\_{i-1}^{(\<k)}=\left\[h\_{i-1}^{(1)} \cdots h\_{i-1}^{(j)} \cdots h\_{i-1}^{(k-1)}\right]$$ ， $$\alpha\_{i-1}^{(\<k)}$$ 是可学习的权重系数，$$V\_{i}^{(k : j)} \in \mathbb{R}^{n\_{i-1} \times n\_{i-1}^{(\<k)}}$$ 是投影函数，在卷积神经网络中，用 $$1\*1$$ 的卷积实现降维。

## 分析方法

### Average Perturbation Sensitivity (APS)

为了评估每个列对目标任务的贡献程度，我们可以在架构中的孤立点注入高斯噪声(例如单个列的单层)，并测量这种扰动对性能的影响。性能的显著下降表明最终预测严重依赖于该层。我们发现这种方法产生的结果与下面提出的基于Fisher的快速方法相似。

### Average Fisher Sensitivity (AFS)

我们可以利用Fisher信息矩阵得到扰动敏感度的局部近似值。虽然Fisher矩阵通常是相对于模型参数计算的，我们对策略网络 $$\pi$$ 的每一层的标准化激活值 $$\hat{h}\_{i}^{(k)}$$ 计算修改的对角Fisher $$\hat{F}$$ ，$$\hat{F}$$ 可以解释为策略对表示中微小变化的敏感性。我们定义第i层（m个特征）的对角矩阵 $$\hat{F}$$ 如下

$$
\hat{F}*{i}^{(k)}=\mathbb{E}*{\rho(s, a)}\left\[\frac{\partial \log \pi}{\partial \hat{h}*{i}^{(k)}} \frac{\partial \log \pi^{T}}{\partial \hat{h}*{i}^{(k)}}\right] \quad \operatorname{AFS}(i, k, m) \quad=\frac{\hat{F}*{i}^{(k)}(m, m)}{\sum*{k} \hat{F}\_{i}^{(k)}(m, m)}
$$

## 实验

### Pong Soup

这里使用了雅达利游戏中的乒乓游戏的变体进行测试，包括：噪声(固定高斯噪声被加到输入端)；黑色(黑色背景)；白色(白色背景)；缩放(输入缩放75 %)；V型翻转、H型翻转和VH型翻转(输入水平和/或垂直翻转）

![](/files/-LaNIJrDYZCJlOMlt-Fi)

Baseline2 (单列，只微调输出层 )在大多数实验中无法学习目标任务，因此具有负迁移。这种方法在有监督的学习环境中非常标准，在这种环境中，ImageNet训练的网络的功能通常会重新用于新的领域。

正如预期的那样，我们观察到Baseline3 (单列，完全微调)的好的正迁移，这是一个公认的迁移范例。然而，Progress Networks在中值和平均得分方面都优于这一Baseline，后面的差异更为明显。

下图是扰动分析的结果

![](/files/-LaNIJrFH7uYNZiCeHoF)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hujian.gitbook.io/deep-reinforcement-learning/fang-fa/jie-ji-you-xi/progressive-neural-networks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
