如何利用遗传算法优化神经网络?

时间:2010-01-19 17:08:41

标签: neural-network mathematical-optimization genetic-algorithm

我对这个话题很新,所以任何帮助都会很棒。我需要的是使用GA在MATLAB中优化神经网络。我的网络有[2x98]输入和[1x98]目标,我已经尝试过咨询MATLAB帮助,但我仍然对于该做什么一无所知:(所以,任何帮助都会受到赞赏。提前致谢。

编辑:我想我没有说出丹在第一个答案中所说的优化内容。我猜最重要的是隐藏神经元的数量。也许隐藏层数和训练参数的数量,如时代数量等。很抱歉没有提供足够的信息,我还在了解这一点。

6 个答案:

答案 0 :(得分:1)

如果这是家庭作业,请做你在课堂上教的任何内容。

否则,完全抛弃MLP。支持向量回归(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)可以在更广泛的问题中更加可靠地训练,并且几乎从未陷入常常受到反向传播训练的MLP攻击的局部最小问题,这会迫使你解决网络地形优化问题只是为了找到一个实际训练的网络。

答案 1 :(得分:0)

嗯,您需要更具体地了解您要优化的内容。它是隐藏层的大小吗?你有隐藏层吗?是参数优化(学习率,内核参数)吗?

答案 2 :(得分:0)

我假设你有一组参数(隐藏层数,每层神经元数量......)需要调整,而不是蛮力搜索所有组合来挑选一个好的,GA可以帮助你从这个组合“跳”到另一个组合。因此,您可以“探索”潜在候选人的搜索空间。

GA可以帮助您选择“有用”的功能。某些功能可能看起来多余,您想要修剪它们。但是,数据具有太多功能,无法通过某些方法(如前向选择)搜索最佳功能集。同样,GA可以从这个候选集中“跳”到另一个候选者。

您需要找到对GA输入的数据(输入参数,功能......)进行编码。为了找到一组输入序列或一组好的特性,我认为二进制编码应该有效。此外,选择GA运算符来重现后代也很重要。然而,GA也需要进行调整(早期停止,也可以应用于ANN)。

这里只是一些想法。您可能想要搜索有关GA,特征选择,ANN修剪......的更多信息。

答案 3 :(得分:0)

由于您已经在使用MATLAB,我建议您查看Genetic Algorithms solver(称为GATool,Global Optimization Toolbox的一部分)和Neural Network Toolbox。在这两者之间你应该能够节省相当多的时间。

您基本上必须完成两项主要任务:

  1. 为您的候选解决方案提供表示(或编码)
  2. 编码您的适应度函数(基本上测试候选解决方案)并将其作为参数传递给GA求解器。
  3. 如果您在提出健身功能或候选解决方案编码方面需要帮助,那么您必须更加具体。

    希望它有所帮助。

答案 4 :(得分:0)

Matlab对此问题here有一个简单但很好的解释。它解释了ANN和GA部分。

有关在命令行中使用ANN的更多信息,请参阅this

如果你谷歌它,还有很多关于这个问题的文章。然而,它与MATLAB无关,只与结果和方法有关。

答案 5 :(得分:-1)

在Google学术搜索中查找Matthew Settles。在过去的5 - 6年里,他在爱达荷大学的这个领域做过一些工作。他应该引用与你的工作相关的引文。