Paper Note: PathNet: Evolution Channels Gradient Descent in Super Neural Networks

PathNet: Evolution Channels Gradient Descent in Super Neural
Networks

Chrisantha Fernando, Dylan Banarse, Charles Blundell, Yori Zwols, David Ha, Andrei A. Rusu, Alexander Pritzel, Daan Wierstra

arXiv:1701.08734

[paper] [code_1] [code_2]

Main Idea

文章讨论了PathNet在监督学习和强化学习两个case 下的应用。 但是这篇blog重点只看了监督学习方面的内容。论文其实举了两个PathNet 的例子,在监督学习方面是举得持续学习的例子,在论文里叫串行实现(serial implementation),在强化学习方面举得是并行实现的例子(parallel implementation)。

从 Figure 1 说起:模型要学习的第一个任务是 Pong,第二个任务是 Alien。两个任务都分别训练 80M timesteps。Box 1中的紫色的线展现了在Pong训练开始时,在网络模型中64个随机初始化的路径。然后使用遗传算法中的锦标赛选择法来演进(evolve)路径。在进行 fitness 评估的时候,路径是使用强化学习算法来训练若干个episodes。因此演进(evolution)和学习(learning)是同时发生的,演进只是指明了应该改变哪里的weight 和 bias。Box 2 和 Box 3 展示了路径的收敛过程,直至 Box 4 第一个任务训练结束时,最终收敛至的“胜出”的 pathway。然后将对于 Pong 任务的最优路径固定住,也就是在那条 path 上的 modules 的 weights 和 biases 全部固定住,开始训练 task B。Box 5 用深红色的线表示被固定的path,用浅蓝色的线表示对于第二个任务所随机初始化的若干 path。过程像第一个任务时一样,对于 Alien 任务的最优路径也会被固定住,如 Box 9 中的深蓝色线条所示。

Figure 1.

Method

PathNet Architecture

PathNet 是一个模块化(modular)的深度神经网络,包括 LL 层,每一层有 MM 个 modules。每个 module 本身是一个神经网络,即卷积网络或全连接网络,后面接着 transfer function(这里用的是 ReLU)。对于每一层而言,该层 modules 的输出在传递给后面一层的 active modules 之前,首先进行求和。一个module如果存在于 the path genotype currently being evaluated,那就称其为 active 的。在一条路径(pathway)中每一层最多允许存在 NN 个不同的 modules(一般地,N=3 or 4N=3\ \rm{or}\ 4 )。网络的最后一层对于每个任务而言是不共享的且是独特的。对于监督学习的case而言,最后一层就是对应于不同任务的 linear layer。

Pathway Evolution: Serial and Parallel

P 个 genotypes(pathways)被随机初始化,每个 genotypes 是一个 N×LN\times L 的整数矩阵,该矩阵指示了在该 pathway 中每一层活跃的 modules。在序列监督任务中(serial supervised implementation),使用了一个 binary tournament selection algorithm。这里 Tournament Selection(锦标赛选择法) 是 Genetic Algorithm(遗传算法)的一种[参考1-Wikipedia] [参考2 - GeeksforGeeks]。

这个锦标赛选择法具体是怎么用的呢?如下:首先随机出一个 genotype(注意,前面说过genotype实际上就是一个 N×LN\times L 的矩阵),然后训练 TT 轮它的 pathway,它的 fitness 是训练过程中的 negative classi cation error。然后再随机出另一个 genotype,也是训练 TT 轮它的 pathway。然后用 winning pathway 的 genotype 去覆写 losing pathway 的 genotype,并在此基础上,对 genotype 的每一个元素都有:以 1/[N×L]1/[N\times L] 的概率加上一个范围在 [2,2][-2,2] 的整数。A local neighbourhood was used to promote spatial localization of network functionality.(这句没搞懂它在说什么……)

Transfer Learning Paradigm

一旦任务 A 被训练了一定的时长或者达到了某个 error 阈值,fit 得最好的 pathway 就会被固定住,也就是说它的参数不会再发生变化。不在该最佳路径当中的其它参数将会被重新初始化。(我们发现没有重新初始化的迁移的表现并不比 fine-tuning 的表现好。)然后就又会有新的随机的pathways被初始化,然后在 task B 上演进(evolved)/训练(trained)。

Conclusion

对于 PathNet 而言,网络的 weights 和 biases 是通过梯度下降学习得到的,而演进(evolution)决定了要去训练哪一部分参数。

PathNet 可以看作是“可演进的 dropout”的一种实现,在这种实现中 dropout 不再是随机地 drop 掉一些units和它们的连接,而是可以演进的。

论文最后的 Conclusion 还巴拉巴拉说了好多,粗扫了一眼,没有很感兴趣的。

2021年的第一篇 Blog,完成!

小舟从此逝,江海寄余生。