模块化神经网络在任何任务上都比大型单片网络更有效吗?

人工智能 神经网络 拓扑 建筑学 神经元 生物学
2021-10-27 20:12:18

模块化/多神经网络 (MNN) 围绕训练可以相互馈入或另一个更高网络的更小、独立的网络。

原则上,分层组织可以让我们理解更复杂的问题空间并达到更高的功能,但似乎很难找到过去对此进行的具体研究的例子。我找到了一些来源:

https://en.wikipedia.org/wiki/Modular_neural_network

https://www.teco.edu/~albrecht/neuro/html/node32.html

https://vtechworks.lib.vt.edu/bitstream/handle/10919/27998/etd.pdf?sequence=1&isAllowed=y

我有几个具体的问题:

  • 最近有没有关于使用 MNN 的研究?

  • 在任何任务中,MNN 表现出比大型单网络更好的性能吗?

  • MNN 是否可以用于多模态分类,即在完全不同类型的数据(文本与图像)上训练每个网络,并将其前馈到对所有输出进行操作的更高级别的中介?

  • 从软件工程的角度来看,这些不是更容错并且在分布式系统上更容易隔离吗?

  • 有没有使用像神经架构搜索这样的过程来动态调整子网拓扑的工作?

  • 一般来说,MNN 在任何方面都实用吗?

抱歉,如果这些问题看起来很幼稚,我刚刚从生物学/神经科学背景进入 ML 和更广泛的 CS,并被潜在的相互作用迷住了。

我非常感谢您抽出时间并提供您的见解!

2个回答

确实有关于这个话题的调查正在进行中。去年 3 月的第一份出版物指出,模块化已经完成,虽然不是明确的,但不知何故,培训一直是单一的。本文评估了有关该问题的一些主要问题,并比较了模块化和重度循环神经网络的训练时间和性能。看:

其他一些人非常关注模块化,但坚持使用单体培训(请参阅Jacob Andrea 的研究,特别是Learning to reason与您的第三个问题非常相关)。在 2019 年末到明年 3 月之间的某个时候,应该会有更多的结果(我碰巧知道)。

关于您的最后两个问题,我们现在开始看到模块化是泛化的主要关键。让我向你推荐一些论文(你可以在 arxiv 或 google 学者中找到它们):

  • 用于关键字发现的随机自适应神经架构搜索(用于平衡性能和资源使用的架构变体)。

  • 通过递归使神经编程架构泛化(它们进行任务子模块化,我相信这是第一次在神经网络领域内保证泛化)。

  • 用深度神经网络和树搜索掌握围棋游戏(网络拓扑实际上就是搜索树本身,如果你寻找图神经网络,你可以看到更多)。

由单独训练的网络相对于单个更深的网络组成的系统的基准比较不太可能揭示普遍适用的最佳选择。1我们可以在文献中看到,结合了多个人工网络以及其他类型的组件的大型系统的数量在增加。这是可以预料的。随着系统复杂性的增长以及对性能和能力的需求的增长,模块化与工业化一样古老。

我们的实验室与机器人控制、热力学仪器和数据分析合作,人工网络是这些更大系统环境中的组成部分。我们没有单独的 MLP 或 RNN 可以单独执行任何有用的功能。

与几十年前关于层次结构的猜想相反,在大多数情况下似乎运作良好的拓扑方法遵循在发电厂、自动化工厂、航空、企业信息架构和其他复杂工程创建中看到的更常见的系统模块关系。连接是流动的,如果设计得好,监督功能就会最小化。流程发生在涉及通信协议的模块之间,每个模块都很好地执行其功能,封装了较低级别的复杂性和功能细节。在实际实践中似乎最有效的不是一个网络监督另一个网络,而是平衡和共生。识别人脑中明确的主从设计似乎同样容易出错。

挑战不是找到构成系统信息拓扑的信息路径。在问题分析时,信息流通常是显而易见的。困难在于发现训练这些独立网络的最佳策略。训练依赖性很常见,而且通常很关键,而在动物中,训练发生在原地或根本不发生。我们正在发现在我们的系统中这种学习是实用的条件以及如何实现它。我们沿着这些方向进行的大部分研究旨在发现在研究时间方面实现更高可靠性和更低负担的方法。

更高的功能并不总是有益的。它通常会产生较低的可靠性并消耗额外的开发资源而回报很少。找到一种将更高级别的自动化、资源节约和可靠性结合到一个开发过程中的方法,您可能会在网络上赢得奖项和荣誉奖。

具有相同目标的并行系统是一个好主意,但不是一个新主意。在一个航空系统中,九个并行系统具有相同的目标,三个一组。每个组使用不同的计算方法。如果使用相同方法的两个系统提供相同的输出,而第三个不同,则使用匹配的输出,并将第三个中的差异报告为系统故障。如果两种不同的方法提供了相似的结果,而第三种方法有很大不同,则使用两种相似结果的合并,第三种方法作为用例报告,以进一步开发不同的方法。

改进的容错具有成本,另外八个系统和相关的计算资源和连接性以及尾部的比较器,但在关系到生死攸关的系统中,需要支付额外的成本并最大限度地提高可靠性。

动态拓扑适应与冗余系统和容错有关,但在某些方面是截然不同的。在这个发展领域,要遵循的技术是神经形态计算,它部分受到神经可塑性的启发。

最后一个要考虑的区别是进程拓扑、数据拓扑和硬件拓扑。如果以特定方式对齐,这三个几何框架可以共同产生更高的效率,从而在流动、表示和力学之间的关系之间产生更直接的映射。然而,它们是不同的拓扑。如果不深入研究这些概念以及针对特定产品或服务目标出现的细节,对齐的含义可能并不明显。

脚注

[1] 作为单个单元进行训练并且在不连接其他人工网络的情况下运行的深度网络不一定是单片的。大多数实际的深度网络在激活函数和细胞类型方面具有异构的层序列。