1 介绍
年份:2017
期刊:arXiv preprint
Fernando C, Banarse D, Blundell C, et al. Pathnet: Evolution channels gradient descent in super neural networks[J]. arXiv preprint arXiv:1701.08734, 2017.
本文提出的PathNet算法是一种基于进化和学习的神经网络算法,其核心原理是利用嵌入在神经网络中的代理(agents),通过遗传算法(tournament selection genetic algorithm)来发现和进化网络中用于新任务的路径(pathways),实现参数的重用和更新,从而在多任务学习中避免灾难性遗忘,并加速新任务的学习过程。本文算法属于基于进化和学习相结合的算法,它结合了基于架构的进化策略和基于梯度的学习方法。
2 创新点
- 路径进化算法(Path Evolution Algorithm):
- PathNet通过在神经网络中嵌入代理来发现哪些网络部分可以被重用于新任务,这是对传统路径进化算法的扩展,将进化算法应用于深度学习领域。
- 多任务学习与参数重用:
- PathNet允许在多个任务之间重用参数,这有助于避免每次学习新任务时从头开始,从而提高了学习效率。
- 遗传算法与梯度下降的结合:
- 通过使用遗传算法来选择和进化网络中的路径,同时利用梯度下降来训练这些路径,PathNet将进化策略与基于梯度的学习相结合。
- 避免灾难性遗忘:
- PathNet通过设计防止了灾难性遗忘,即在学习新任务时不会遗忘旧任务的知识,这是通过在路径学习后固定参数来实现的。
- 连续学习和迁移学习:
- PathNet支持连续学习和迁移学习,通过在任务A上学习并固定路径,然后在任务B上重新进化路径,实现了从任务A到任务B的知识迁移。
- 并行异步强化学习算法(A3C)的改进:
- PathNet显著提高了A3C算法对超参数选择的鲁棒性,通过进化路径来减少超参数调整的需求。
- 通用性验证:
- PathNet在多种任务上进行了验证,包括监督学习分类任务(如MNIST、CIFAR和SVHN)和强化学习任务(如Atari和Labyrinth游戏),证明了其通用性。
- 模块复制机制:
- 在Labyrinth游戏中,PathNet引入了模块复制机制,允许模块权重在网络内部复制,增加了算法的灵活性和效率。
3 算法
3.1 算法原理
- 神经网络结构:
- PathNet是一个模块化的深度神经网络,包含多层(L层),每层由多个模块(M个)组成。每个模块本身是一个神经网络,可以是卷积或线性网络,后接一个激活函数。
- 路径(Pathway):
- 在PathNet中,路径是指通过神经网络的一条特定路线,这条路线决定了在前向传播和反向传播过程中使用和更新的参数子集。
- 代理和遗传算法:
- PathNet中的代理是指网络中的路径,它们通过遗传算法进行选择、复制和变异。这些代理(路径)在神经网络中并行工作,学习如何重用现有的参数。
- 路径选择和进化:
- 使用锦标赛选择遗传算法来选择表现最好的路径进行复制和变异。路径的适应度基于其在特定任务上的性能,即成本函数的评估结果。
- 迁移学习:
- 在任务A上学习并优化的路径被固定后,用于任务B的新路径会在这些固定的参数上重新进化,从而实现知识的迁移。
- 参数固定和重用:
- 一旦某个路径在特定任务上达到最佳性能,其参数将被固定,以确保在后续任务中不会丢失已有的功能。
- 并行异步更新:
- 在强化学习任务中,PathNet使用并行异步更新策略,多个工作节点同时更新网络的不同参数子集,而不是全部参数。
- 防止灾难性遗忘:
- PathNet的设计防止了灾难性遗忘,即在学习新任务时不会遗忘旧任务的知识,这是通过固定已学习的路径参数来实现的。
- 多任务学习:
- PathNet支持多任务学习,通过在不同任务之间共享和重用参数,提高了学习效率,并减少了对新任务从头开始学习的需求。
- 鲁棒性提升:
- PathNet还提高了并行异步强化学习算法(如A3C)对超参数选择的鲁棒性,减少了对精细调整超参数的需求。
3.2 算法步骤
- 初始化:构建一个包含LLL层,每层有MMM个模块的神经网络,每个模块是一个独立的神经网络单元,可以是卷积或线性网络,后接一个激活函数。
- 路径初始化:随机初始化一组路径(PPP),每个路径是一个N×LN \times LN×L的矩阵,描述了每层中活跃的模块。
- 路径训练与评估:
- 对于每个路径,使用梯度下降算法(如随机梯度下降)进行训练,评估路径的性能,即路径的适应度。
- 在前向传播过程中,只有路径中指定的模块被激活并参与计算。
- 在反向传播过程中,只有路径中使用的参数被更新。
- 路径选择与进化:
- 使用锦标赛选择遗传算法从当前路径种群中选择表现最好的路径。
- 将选中的路径复制并变异以产生新的路径,变异操作是随机选择路径中的元素并添加一个[−2,2][-2, 2][−2,2]范围内的整数。
- 路径收敛:
- 随着训练的进行,路径种群将逐渐收敛到性能最优的路径。
- 当性能达到一定标准或经过一定时间后,确定最优路径并将其参数固定,不再更新。
- 任务转换与迁移学习:
- 在任务AAA上学习完成后,固定最优路径的参数,并重新初始化路径种群。
- 在任务BBB上,利用固定的路径和新初始化的路径种群进行学习,实现从任务AAA到任务BBB的知识迁移。
- 参数固定与重用:
- 在新任务中,固定路径的参数保持不变,而其他参数可以被重新初始化和更新。
- 这允许新任务在旧任务学到的知识基础上进行学习,加速新任务的学习过程。
- 并行异步更新(针对强化学习任务):
- 在A3C等并行异步强化学习算法中,每个工作节点更新其特定路径的参数子集。
- 通过这种方式,PathNet可以同时处理多个任务,同时减少不同任务间参数更新的冲突。
- 结果评估:
- 在所有任务完成后,评估PathNet的性能,包括任务完成速度、准确度等指标。
- 比较PathNet与其他学习方法(如独立学习、微调)的性能差异,验证PathNet的有效性。

图1展示了PathNet算法在两个连续任务(任务A和任务B)上的学习过程,其中任务A是Pong游戏,任务B是Alien游戏。下面是对图中各个部分的解释:
- Box 1(紫色线条):表示在任务A开始时,神经网络中随机初始化的一组路径(紫色线条)。这些路径是网络中潜在的连接方式,它们将在学习过程中被评估和进化。
- 任务A的学习过程:随着Pong游戏的学习进行,这些路径通过遗传算法(锦标赛选择)不断进化。在这个过程中,性能较好的路径会被保留和复制,而性能较差的路径会被替换。
- Box 5(深红色线条):表示在任务A训练结束时,经过进化选择出的最优路径(深红色线条)。这条路径在任务A上表现最好,因此其参数被固定,不再在后续任务中更新。
- Box 5(浅蓝色线条):表示在任务B开始时,为Alien游戏生成的新一组随机路径(浅蓝色线条)。这些新路径将在固定了任务A最优路径的基础上进行进化和学习。
- 任务B的学习过程:新路径种群在任务B上进行训练和进化,最终会收敛到一个最优路径。
- Box 9(深蓝色线条):表示在任务B训练结束时,进化出的最优路径(深蓝色线条)。这条路径在任务B上表现最好,其参数在训练结束后被固定。
总结来说,图1展示了PathNet算法如何通过进化策略在多任务学习中重用和更新神经网络的路径。在每个任务结束后,最优路径被固定,为下一个任务提供了一个起点,从而实现了知识的迁移和加速新任务的学习。

图2详细描述了用于Atari和Labyrinth游戏学习的PathNet神经网络架构,该架构包含4层,每层有10个(或有时15个)模块。以下是对图中各个部分的解释:
- 网络层结构:
- 第1至第3层:这些层的模块由二维卷积核组成,每个模块包含8个卷积核(图中以绿色盒子表示)。卷积核的大小分别为8、4、3,步长(stride)分别为4、2、1。
- 第4层:最后一层由全连接的线性层组成,每个线性层包含50个神经元(图中以紫色盒子表示)。
- 激活函数:
- 在每个模块之后,使用修正线性单元(Rectified Linear Unit, ReLU)作为激活函数,以引入非线性并增强网络的表达能力。
- 特征图累加:
- 在层与层之间,特征图(feature maps)会被累加(图中以蓝色盒子表示)。这意味着每一层的输出会与下一层的输入相加,然后传递给下一层的模块。
- 路径选择:
- 通常,每层最多允许4个模块被包含在一条路径中(图中以红色盒子表示)。这一限制是为了防止进化过程中路径简单地扩展到包含整个网络,因为这样做会通过增加可学习的参数数量来提高适应度。
- 路径的生物学意义:
- 这种设计模拟了大脑中基底神经节的功能,基底神经节负责决定哪些大脑皮层的子集应该是活跃和可训练的,这取决于前额叶皮层的目标/子目标信号。
总结来说,图2展示了PathNet在处理Atari和Labyrinth游戏时使用的神经网络结构,强调了模块化设计、卷积和全连接层的组合,以及特征图的累加过程。这种结构旨在通过进化策略优化网络路径,以提高学习效率和性能。
6 思考
(1)本文的代理(Agents)是什么意思?
在本文中提到的PathNet算法的上下文中,“代理”(Agents)指的是嵌入在神经网络中的实体,它们的任务是发现和确定网络中哪些部分(参数)应该被用于新任务。这些代理通过进化算法来选择和优化网络中的路径(pathways),从而决定在前向和反向传播过程中哪些参数被激活和更新。具体来说,每个代理可以被视为网络中的一条路径(或视图),它定义了网络中参数的一个子集,这个子集在训练过程中会被使用和更新。这些代理在进化过程中相互竞争,通过遗传算法(如锦标赛选择和变异)来优化它们的性能,最终目的是找到能够高效处理特定任务的路径。简而言之,本文中的“代理”是指在PathNet算法中用于路径选择和优化的进化算法实体,它们通过竞争和进化来确定哪些网络参数应该被用于新任务,以此来实现任务之间的知识迁移和连续学习。
(2)相对于其他代表性的连续学习算法,本文算法的缺点
- 复杂性和计算成本:
- PathNet算法涉及到进化策略和遗传算法,这可能导致算法的复杂性增加,尤其是在需要评估和进化大量路径时。这可能会增加计算资源的需求,特别是在大规模神经网络中。
- 超参数调整:
- PathNet的性能可能对超参数选择非常敏感,如路径选择的锦标赛大小、变异率和评估时间等。找到最优的超参数组合可能需要大量的实验和调整。
- 固定路径的局限性:
- PathNet在任务完成后会固定最优路径的参数,这可能限制了网络对新任务的适应性,因为固定路径可能无法完全适应新任务的需求。
- 路径重叠和选择:
- PathNet需要决定在不同任务之间共享多少路径重叠,这可能需要复杂的机制来确定。如果重叠过多或过少,都可能影响迁移学习的效果。
- 泛化能力:
- 尽管PathNet在多个任务上展示了迁移学习的能力,但其泛化能力到更广泛的任务和领域还需要进一步的验证。
- 与任务相关的适应性:
- PathNet的路径进化策略可能需要根据不同的任务特性进行调整,这可能限制了算法的通用性和灵活性。
- 可解释性:
- PathNet算法的进化过程可能较难解释,尤其是在路径选择和参数更新方面,这可能对理解和信任模型的决策过程构成挑战。
- 内存和存储需求:
- 由于需要存储多个路径和相关参数,PathNet可能需要更多的内存和存储资源,尤其是在处理大型网络时。
- 实时学习的能力:
- PathNet算法可能不适用于需要实时或在线学习的场景,因为其进化和评估过程可能需要较长的时间。

1299

被折叠的 条评论
为什么被折叠?



