神经网络深入(连载1)神经网络的拓扑

翻译 2017年01月24日 09:48:40


游戏编程中的人工智能技术



连载1:演化神经网络的拓扑

(Evolving Neural Network Topology)

            看来,我们已经到达了计算机技术可能到达的那种极限了,虽然说这样话需要小心一些,但在这5年中它们确实已经变得相当笨拙了

-         John Von Neumann 1949   

        前面我们已经看到,神经网络的体系结构(architecture)或者说拓扑(topology)对网络的有效性起着十分重要的作用。但我们同时也看到,如何为网络体系结构选择各种参数更多地是一种艺术而不是一门科学。这样通常就会使程序蕴藏许多麻烦。你虽然可以为此开发一种“感觉”,但由此设计出来的网络拿去演化寻找最优拓扑能够很理想吗?要让一个网络去学习你想要它学习的东西并不难,但要它在学习过程种能合理地进行归纳、不失去推广能力,就不是那么简单的了。

        当使用演化算法开发神经网络的拓扑时,我们可以设想有一幅可以用来代表适应性大小的、起伏不平的场景图(landscape),在这一场景图中,每一个点代表网络结构的一种类型。所谓演化型人工神经网络EANN  (Evolutionary ArtificialNeural Network)的目的,就是要在这一块场地上尽可能广泛地进行游历,直到找到它的全局性最优解。

 

 注释:
   曾经有人利用某些非进化型的方法处理了这一问题。研究者们在试图创造网络时,有时用建设性的方法,有时则用破坏性的方法。破坏性方法是在超过要求的一个大网络上开始进行的,它有许多神经细胞、细胞层、和连接(links)。破坏性方法就是通过训练过程,有系统地进行剪枝来压缩这个网络结构。而建设性的过程则是用相反的方式来得到所要求的结果,它从一个最小的网络开始,通过训练,不断加入神经细胞和细胞间的链接。但这些方法都已发现了有相同的问题,即所得到的网络会收敛到局部最优。并且,更有甚者,在网络结构上也有相当大的局限。也就是说,在所有可能的网络拓扑结构谱中,通常只有其中的一小部分能够利用这些技术来产生。

   已有不同领域的众多研究人员把大量大量的时间和精力化在这个问题上了。我将利用本章的第一部分来描述许多可用技术之中的某一些,而在本章的第二部分则要介绍我认为是比较好的一种简单实现方法。

       如同处理其他所有利用演化算法来处理的问题一样,任何可行的解决方案都必须指出网络的编码方法、适应性分数的计算方法、以及为执行基因组的突变操作与/或杂交操作的有效方法。我说‘或杂交’操作,是因为有些方法完全放弃了这种有潜在麻烦的操作,而宁可全部依靠突变操作在搜索空间进行搜索。因此在我介绍一些流行的EANNs以前,让我先来向你说明为什么这里进行的杂交操作会遇到麻烦问题。

 

11.1竞争约定问题(competingconvention problem)

       为候选网络进行编码的主要困难之一是所谓的竞争约定问题(competingconvention problem),有时称为结构-功能映射问题(structural-functional mapping problem)。简单地说就是,一个编码系统,有可能为呈现完全相同功能的网络而提供若干个不同形式的编码。例如,以图11.1所示的一对简单网络作为例子,一种简单的编码方式可能会把其隐藏层中神经细胞出现的先后次序作为网络的编码。


图11.1  一种简单编码方式

      如果使用这样的简单编码,则网络1应编码为:

A B C D

而网络2则编码成:

D C B A

       但如果你仔细地考察一下这两个网络的图形结构就会发现,尽管神经细胞的排列顺序不同,因而它们的基因组也不相同,但两个网络实质上完全相同。这两个网络将呈现完全精确一致的行为。这就是问题的所在,因为,如果你把一种杂交操作用于这两个网络,比如,在基因组的中间点断裂,进行单点杂交,则产生的子孙将是:

A B B A   或   D C C D

而这显然是一个不希望有的结果:两个子代一方面都从父母继承了双份的神经细胞,而另一方面都又失去了父母的50%的功能(functionaliry),这显然不大可能象是一种性能的改进。(即使它们中的一个真又产生了像19世纪70年代Super Trooper(超级骑兵)和DancingQueen(舞蹈皇后)那样的典故。<一笑>)。

       显然,网络的结构愈大,这样的问题也会遇到的更频繁。而这种结果在基因组群体上会产生更大的负面效应。因此,这是研究人员们在设计编码方案时要尽最大努力去避免的一个问题。 

 注释:
      对竞争约定问题还有一派人持有不同看法。这些研究人员相信,为避免这个问题而采取的任何措施实际上可能产生更多的问题。他们认为,不如简单地忽略这个问题、允许演化过程处置这样的“残废”网络,或者完全抛弃杂交操作并完全依赖突变操作来遍历搜索空间。

神经网络深入(连载4)拓扑扩张

游戏编程中的人工智能技术 连载4:拓扑扩张
  • zzwu
  • zzwu
  • 2017-01-25 13:16:17
  • 688

机器学习BP神经网络,任意拓扑结构 (C++)

这次的版本更优秀了的样子! 按照老板说的,每个节点是单独的导出节点(会导致sigmod训练变慢,原因sigmod层数多了,梯度会下降很快导致爆炸。) 换个激活函数就行了。 net表示网咯...
  • baidu_23081367
  • baidu_23081367
  • 2017-10-06 20:26:20
  • 176

神经网络,流形和拓扑

神经网络,流形和拓扑 这当然不是我写的,这是我翻译的,原文地址是:https://colah.github.io/posts/2014-03-NN-Manifolds-Topology    ...
  • u011196300
  • u011196300
  • 2016-04-24 13:39:00
  • 1919

一个神经网络模式识别的例子------螃蟹识别

本文来自神经网络之家 www.nnetinfo.com 作者:梁小h   日期:2015-09-22 11:11:33.0 模式识别主要解决分类问题,由于分类问题的输出是离散的,而曲线拟合...
  • dbat2015
  • dbat2015
  • 2015-10-21 09:38:48
  • 4958

BP神经网络概述

BP神经网络概述 BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号的向前传递,误差反向传播。在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。每一层的神经网络状态只影响下一层的神...
  • u014271114
  • u014271114
  • 2016-12-03 00:08:24
  • 2807

神经网络学习 之 BP神经网络

上一次我们讲了M-P模型,它实际上就是对单个神经元的一种建模,还不足以模拟人脑神经系统的功能。由这些人工神经元构建出来的网络,才能够具有学习、联想、记忆和模式识别的能力。BP网络就是一种简单的人工神经...
  • u013007900
  • u013007900
  • 2015-11-30 21:17:56
  • 33808

一种人工智能学习--兼谈基于微分几何与拓扑的神经网络

一种人工智能学习–兼谈基于微分几何与拓扑的神经网络标签(空格分隔): 人工智能 神经网络 拓扑 微分几何 深度学习版权声明:本文为作者原创文章,未经作者允许不得转载。前言提到人工智能,相信对机器学习、...
  • hjwang1
  • hjwang1
  • 2016-08-12 19:43:19
  • 1490

神经网络深入(连载1)神经网络的拓扑

游戏编程中的人工智能技术      (连载之十三)
  • zzwu
  • zzwu
  • 2017-01-24 09:48:40
  • 1061

一种优化<em>神经网络拓扑结构</em>的主从式遗传算法

通过对标准遗传算法进行改进,给出了一种主从式遗传算法,该算法能够对多层前馈<em>神经网络的拓扑结构</em>进行有效优化,选择权重的初始化范围,隐含层的节点数以及输入层节点等...
  • 2018年04月08日 00:00

神经网络入门(连载1-6)

神经网络入门> .  (连载之一) 用平常语言介绍神经网络 (Neural Networks in Plain English) ...
  • Leytton
  • Leytton
  • 2014-08-14 14:46:50
  • 3899
收藏助手
不良信息举报
您举报文章:神经网络深入(连载1)神经网络的拓扑
举报原因:
原因补充:

(最多只允许输入30个字)