建立自己的拓扑的现代神经网络


21

标准神经网络算法(例如反向传播算法)的局限性在于,您必须对所需的隐藏层数和每层神经元数进行设计决策。通常,学习率和概括对这些选择高度敏感。这就是为什么像级联相关之类的神经网络算法引起人们关注的原因。它以最小的拓扑(仅输入和输出单元)开始,并随着学习的进展而招募新的隐藏单元。

CC-NN算法是1990年由Fahlman提出的,而其递归版本是1991年引入的。最近(1992年后)有哪些以最小拓扑开始的神经网络算法是什么?


相关问题

CogSci.SE:具有生物学上似乎合理的神经发生作用的神经网络


可以尝试使用基于随机投影的神经网络。博客条目 代码(github)
肖恩·奥康纳

Answers:


10

这里的隐式问题是如何确定神经网络或机器学习模型的拓扑/结构,以使模型“具有适当的大小”,而不是过拟合/欠拟合。

自从1990年进行级联相关以来,现在已经有了很多方法,其中许多方法具有更好的统计或计算属性:

  • 促进:一次培训一个弱学习者,每个弱学习者都经过重新加权训练,以学习以前的学习者没有学过的东西。
  • 稀疏性导致套索化(例如套索或自动相关性确定):从大型模型/网络开始,并使用可鼓励不需要的单元“关闭”的正则化器,使有用的单元保持活动状态。
  • 贝叶斯非参数:忘记尝试找到“正确的”模型大小。只需使用一个大模型,并小心正则化/成为贝叶斯模型,这样就不会过拟合。例如,可以将具有无限数量的单位和高斯先验的神经网络推导为高斯过程,这证明训练起来要简单得多。
  • 深度学习:如另一个答案所述,一次训练一个深度网络一层。这实际上并不能解决确定每层单元数的问题-通常还是通过手动或交叉验证来设置。


4

据我了解,当今最先进的技术是“无监督特征学习和深度学习”。简而言之:正在以无监督的方式对网络进行训练,每次训练一次:


它以最少数量的神经元(仅输入和输出)开始吗?
Artem Kaznatcheev

深度学习包含用于具有多个隐藏层的神经网络的多种方法。我对确定神经元数量的方法并不熟悉,但也许谷歌学者知道更多...
2012年

Afaik在所有有竞争力的现行方法中,数量都是预先确定的。这有点问题,因为这意味着有很多超参数。为了解决这个问题,詹姆斯·伯格斯特拉(James Bergstra)最近提议使用高斯过程来找到最佳的超参数设置9。但这是一种“外循环”,它以一种聪明的方式尝试了许多不同的设置。
Andreas Mueller

4

已经提到了NEAT(具有增强拓扑的神经进化)。在此方面有一些改进,包括规范化和HyperNEAT。HyperNEAT使用“元”网络来优化完全连接表型的权重。这提供了网络“空间意识”,这在图像识别和棋盘游戏类型问题中具有不可估量的价值。您也不限于2D。我正在1D中使用它进行信号分析,并且可以向上进行2D,但是在处理要求上变得繁重。寻找肯·斯坦利(Ken Stanley)发表的论文,然后在Yahoo上找到一个小组。如果您的网络存在问题,那么NEAT和/或HyperNEAT可能很适用。


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.