11

遗传算法是优化隐藏节点数量和人工神经网络训练量的最有效方法吗?

我正在使用 Matlab 中的 NNToolbox 对神经网络进行编码。我对优化技术的任何其他建议持开放态度,但我最熟悉 GA。

4

7 回答 7

11

实际上,您可以使用 GA 对 NN 进行优化。您可以优化结构(节点数、层数、激活函数等)。您也可以使用 GA 进行训练,这意味着设置权重。

遗传算法永远不会是最有效的,但它们通常在您不知道要使用什么数字时使用。

对于训练,您可以使用其他算法,包括反向传播、nelder-mead等。

您说您想优化隐藏节点的数量,为此,遗传算法可能就足够了,尽管远非“最佳”。您正在搜索的空间可能太小而无法使用遗传算法,但它们仍然可以工作并且 afaik,它们已经在 matlab 中实现,所以没什么大不了的。

优化完成的训练量是什么意思?如果您的意思是时期数,那很好,只要记住训练在某种程度上依赖于起始权重并且它们通常是随机的,因此用于 GA 的适应度函数实际上并不是一个函数。

于 2009-05-06T08:21:20.973 回答
5

神经网络和遗传编程的一个很好的例子是 NEAT 架构(增强拓扑的神经进化)。这是一种寻找最优拓扑的遗传算法。它还擅长减少隐藏节点的数量。

他们还用它制作了一款名为 Nero 的游戏。相当独特和非常惊人的有形结果。

斯坦利博士的主页:

http://www.cs.ucf.edu/~kstanley/

Here you'll find just about everything NEAT related as he is the one who invented it.

于 2009-07-03T02:45:41.323 回答
2

遗传算法可以有效地应用于优化神经网络,但你必须考虑一下你想要做什么。

大多数“经典”神经网络训练算法,例如反向传播,只优化神经元的权重。遗传算法可以优化权重,但这通常效率低下。但是,正如您所问的,它们可以优化网络的拓扑结构以及您的训练算法的参数。但是,您必须特别警惕创建“过度训练”的网络。

使用改进的遗传算法的另一种技术可用于克服反向传播的问题。反向传播通常会找到局部最小值,但它会准确快速地找到它们。将遗传算法与反向传播相结合,例如,在拉马克 GA 中,具有两者的优点。在GAUL 教程中简要介绍了此技术

于 2009-06-01T09:30:15.317 回答
1

It is sometimes useful to use a genetic algorithm to train a neural network when your objective function isn't continuous.

于 2011-09-05T00:04:22.573 回答
0

我不确定您是否应该为此使用遗传算法。

我想您的遗传算法的初始解决方案群体将包括您的神经网络的训练集(给定特定的训练方法)。通常,初始解决方案群体由您的问题的随机解决方案组成。然而,随机训练集并不能真正训练你的神经网络。

遗传算法的评估算法将是所需训练量、神经网络解决特定问题的质量和隐藏节点数量的加权平均值。

因此,如果您运行此程序,您将获得在神经网络质量(= 训练时间、隐藏节点数量、网络的问题解决能力)方面提供最佳结果的训练集。

还是您正在考虑采用完全不同的方法?

于 2009-05-06T08:07:28.730 回答
0

我不完全确定你正在处理什么样的问题,但 GA 在这里听起来有点矫枉过正。根据您使用的参数范围,详尽的(或其他不智能的)搜索可能会起作用。尝试绘制关于前几个值的隐藏节点数量的 NN 性能,从小处开始并以越来越大的增量跳跃。以我的经验,许多神经网络的性能出乎意料地早早地趋于稳定。您可能能够很好地了解隐藏节点编号的范围最有意义。

NN 的训练迭代通常也是如此。更多的训练在一定程度上有助于网络,但很快就不再有太大的影响。

在大多数情况下,这些 NN 参数不会以非常复杂的方式影响性能。通常,增加它们会在一段时间内提高性能,但随后会出现收益递减。在这种简单曲线上找到一个好的值并不是真正需要 GA ;如果隐藏节点(或训练迭代)的数量确实会导致性能以复杂的方式波动,那么像 GA 这样的元启发式算法可能是合适的。但在采取这条路线之前,请先尝试一下蛮力方法。

于 2009-05-06T08:30:14.867 回答
0

我倾向于说遗传算法是一个好主意,因为您可以从最小解决方案开始并增加神经元的数量。您想要为其找到最佳点的“质量函数”很可能是平滑的并且只有很少的颠簸。

如果您必须经常找到此最佳 NN,我建议您使用优化算法,并在您的情况下使用数值配方中描述的准牛顿,这对于函数评估成本高昂的问题是最佳的。

于 2009-05-06T09:42:20.857 回答