在任何任务上,模块化神经网络是否都比大型整体网络更有效?


16

模块化/多个神经网络(MNN)围绕训练较小的独立网络而形成,它们可以相互馈入或与另一个较高的网络交流。

原则上,分层组织可以使我们理解更复杂的问题空间并获得更高的功能,但是似乎很难找到过去就此进行的具体研究的示例。我找到了一些资料:

https://zh.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,并被潜在的相互作用所吸引。

非常感谢您抽出宝贵的时间为您提供见解!


我曾考虑过实施这样的模块化系统以提高性能,并过滤掉(肯定是)对输入的不必要依赖。认为这是一个尤里卡的时刻,但不知道那已经是一个固定的结构。
托比

Answers:


2

实际上,有关此主题的调查正在进行中。去年三月的第一份出版物指出,模块化虽然从很久以前就没有明确地做过,但是以某种方式,培训一直是整体的。本文评估了有关此问题的一些主要问题,并比较了模块化和大量递归神经网络的训练时间和性能。看到:

其他一些人非常关注模块化,但是坚持接受整体培训(请参阅Jacob Andrea的研究,特别是学习推理与您的第三个问题非常相关)。在2019年末和明年3月之间的某个地方,应该会有更多结果(我碰巧知道)。

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

  • 随机自适应神经体系结构搜索,以查找关键字(用于平衡性能和资源使用的体系结构变化)。

  • 通过递归使神经程序设计体系结构泛化(它们执行任务亚模块性,我相信这是第一次在神经网络领域保证泛化)。

  • 通过深度神经网络和树搜索来掌握Go的游戏(网络拓扑实际上是搜索树本身,如果您寻找图神经网络,则可以看到更多信息)。


1

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

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

与数十年前有关层次结构的推测相反,在大多数情况下似乎有效的拓扑方法遵循电厂,自动化工厂,航空,企业信息架构和其他复杂工程设计中常见的系统模块关系。连接是流程的连接,如果设计得当,则监督功能将降至最低。在涉及通信协议的模块之间发生流,每个模块都很好地执行其功能,从而封装了较低级别的复杂性和功能细节。在实际实践中似乎不是最有效的监督一个网络,而是平衡和共生。在人脑中识别清晰的主从设计似乎同样容易。

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

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

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

改进的容错能力会增加成本,增加八个系统以及相关的计算资源和连接性,以及尾部的比较器,但是在生死攸关的系统中,要付出额外的成本,并使可靠性最大化。

动态拓扑适应与冗余系统和容错能力有关,但在某些方面却截然不同。在这一发展领域,遵循的技术是神经形态计算,这在一定程度上受到了神经可塑性的启发。

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

脚注

[1]被训练为一个单元且无法与其他人工网络连接的深层网络不一定是整体的。就其激活功能以及通常其细胞类型而言,大多数实用的深度网络具有不同的层序列。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.