【问题标题】:How to optimize neural network by using genetic algorithm?如何使用遗传算法优化神经网络?
【发布时间】:2011-01-06 21:50:32
【问题描述】:

我对这个主题很陌生,所以任何帮助都会很棒。我需要的是使用 GA 在 MATLAB 中优化神经网络。我的网络有 [2x98] 输入和 [1x98] 目标,我已经尝试咨询 MATLAB 帮助,但我仍然不知道该怎么做 :( 所以,任何帮助将不胜感激。提前致谢。

编辑:我想我没有像丹在第一个答案中所说的那样说要优化什么。我想最重要的是隐藏神经元的数量。可能还有隐藏层的数量和训练参数,比如 epoch 的数量。抱歉没有提供足够的信息,我还在学习。

【问题讨论】:

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


    【解决方案1】:

    如果这是家庭作业,请按照课堂上所教的内容去做。

    否则,完全放弃 MLP。支持向量回归 (http://www.csie.ntu.edu.tw/~cjlin/libsvm/) 在广泛的问题中可以更可靠地训练,并且几乎永远不会遇到被反向传播训练的 MLP 经常遇到的局部最小值问题,这迫使您解决一个网络拓扑优化问题,只是为了找到一个可以实际训练的网络。

    【讨论】:

      【解决方案2】:

      好吧,您需要更具体地说明您要优化的内容。是隐藏层的大小吗?你有隐藏层吗?是参数优化(学习率、内核参数)吗?

      【讨论】:

        【解决方案3】:

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

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

        您需要找到对输入 GA 的数据(输入参数、特征...)进行编码。为了找到一组输入参数或一组好的特征,我认为二进制编码应该有效。此外,为遗传算法选择算子来繁殖后代也很重要。然而 GA 也需要调整(提前停止也可以应用于 ANN)。

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

        【讨论】:

        • 感谢您的回答,但我需要更具体。就像,如果我在 matlab 中使用 GA 函数,X = GA(FITNESSFCN,NVARS) 函数应该是什么,输入以及最后如何处理 x。
        • 对不起,我从来没有接触过matlab的GA。我想你可以参考它的文档来了解 args 和返回值的含义。
        【解决方案4】:

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

        您基本上必须完成 2 个主要任务:

        1. 为您的候选解决方案提出一种表示(或编码)
        2. 编码您的适应度函数(主要测试候选解)并将其作为参数传递给 GA 求解器。

        如果您在提出适应度函数或候选解决方案编码方面需要帮助,那么您必须更加具体。

        希望对你有帮助。

        【讨论】:

          【解决方案5】:

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

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

          如果你用谷歌搜索的话,还有很多关于这个主题的文献。但它与MATLAB无关,而只是结果和方法。

          【讨论】:

            【解决方案6】:

            在 Google Scholar 上查找 Matthew Settles。在过去的 5-6 年里,他在爱达荷大学做了一些这方面的工作。他应该有与你的工作相关的引用。

            【讨论】:

              猜你喜欢
              • 2010-10-24
              • 2018-05-11
              • 2020-08-19
              • 2019-04-15
              • 2011-07-04
              • 2017-10-25
              • 2011-06-30
              • 1970-01-01
              • 2015-12-14
              相关资源
              最近更新 更多