首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在神经进化中进化神经网络的权重?

如何在神经进化中进化神经网络的权重?
EN

Stack Overflow用户
提问于 2015-07-29 18:32:49
回答 2查看 11.2K关注 0票数 20

我对人工神经网络和NeuroEvolution算法都很陌生。我正在尝试实现名为NEAT (增广拓扑的NeuroEvolution)的算法,但是原版公文中的描述忽略了如何进化网络权重的方法。

连接权在任何NE系统中都会发生变异,每一次连接都会受到干扰或不受影响。

我已经做了一些关于如何在NE系统中变异权重的搜索,但不幸的是,我找不到任何详细的描述。

我知道,在训练神经网络时,通常使用反向传播算法来校正权值,但只有在经过世代固定的拓扑(结构)并且知道问题的答案时,它才能起作用。在NeuroEvolution中,您不知道答案,您只有适应度函数,所以这里不可能使用反向传播。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-30 19:17:05

我有使用遗传算法训练固定拓扑神经网络的经验(本文称之为“传统的NE方法”)。我们使用了几种不同的突变和复制算子,我们随机选择了这些操作。

在父母两人的情况下,我们的复制操作人员(也可以称为这些交叉操作)包括:

  • 将单个权重或所有权重替换为网络中的给定神经元。例如,如果选择两个父母进行繁殖,要么在网络中选择一个特定的体重,然后交换这个值(对于我们的掉期,我们生产了两个后代,然后选择了一个最适合在下一代人口中生存的后代),或者在网络中选择一个特定的神经元,用所有的权重交换这个神经元来产生两个后代。
  • 交换整个层的重量。因此,给定父母A和B,选择一个特定的层(两者都是同一层),并交换他们之间的所有权重,以产生两个效果。这是一个很大的移动,所以我们设置它,以便比其他操作更少地选择这个操作。此外,如果您的网络只有几个层,这可能是没有意义的。

我们的变异操作人员在一个网络上运行,并选择一个随机权重,或者:

  • 用一个新的随机值完全替换它
  • 按一定的百分比改变重量。(将权重乘以0到2之间的一些随机数--实际上,我们倾向于限制它,并将它乘以0.5到1.5之间的随机数。这有缩小重量的效果,这样它就不会有如此剧烈的变化。你也可以通过缩放特定神经元的所有权重来完成这种操作。
  • 从权重中添加或减去0到1之间的随机数。
  • 改变体重的标志。
  • 在单个神经元上交换权重。

你当然可以通过变异操作符获得创造性,你可能会发现一些更适合你特定问题的东西。

IIRC在随机比例选择的基础上,从种群中选择双亲,然后对每个父本进行突变操作,再通过繁殖操作运行这些变异的父本,通过适应度函数对两个后代进行运行,选择最合适的一个进入下一代种群。

当然,在您的情况下,因为您也在进化拓扑,所以上面的一些复制操作没有什么意义,因为两个选定的父母可能有完全不同的拓扑结构。在整洁的网络中(据我理解),你可以在网络的非连续层之间建立联系,例如,你可以在第四层有一个第一层神经元,而不是直接喂给第二层。这使得涉及一个神经元所有权重的交换操作变得更加困难--你可以尝试在网络中选择两个重量相同的神经元,或者坚持在网络中交换单个权重。

我知道,在训练NE时,通常使用反向传播算法来校正权重。

实际上,在NE中没有用过。正是遗传算法所做的突变训练了网络,使其成为后备的替代方案。在我们的例子中,由于网络中的一些“非正统”的添加,我不想再深入,所以后备支持是有问题的。然而,如果支持是可能的话,我也会同意的。用遗传学的方法训练NNs,似乎比后盾可能要慢得多。此外,当使用进化方法调整网络的权重时,您需要调整GA的各种参数,如交叉和变异率。

票数 15
EN

Stack Overflow用户

发布于 2015-07-30 07:37:46

整整齐齐地说,一切都是通过基因操作者来完成的。正如您已经知道的,拓扑是通过交叉和变异事件来进化的。

权重是通过突变事件来进化的。就像在任何进化算法中一样,存在着随机改变权重的可能性(您可以生成一个全新的数字,也可以向原始权重添加一个正态分布的随机数)。

实现整洁似乎是一项简单的任务,但是有很多小的细节使得它最终变得相当复杂。您可能希望查看现有的实现并使用其中之一,或者至少受到它们的启发。所有重要的东西都可以在整洁的用户页面找到。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31708478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档