【问题标题】:neural network and genetic algorithm神经网络和遗传算法
【发布时间】:2019-04-15 23:18:24
【问题描述】:

我正在处理一个复杂系统,该系统有五个变量 - 根据这五个变量的值,系统的响应被测量。为了完全定义响应,需要测量七个输出变量。

我一直在使用人工神经网络来模拟五个变量和七个输出参数之间的关系。到目前为止,这已经成功了。人工神经网络可以很好地预测输出(我也在一组测试用例上测试了训练有素的网络)。我也使用了 python Keras/张量流。 顺便说一句,我也尝试将线性回归作为函数逼近器,但它会产生很大的错误。考虑到系统是高度非线性的并且可能并非处处连续,这些错误是可以预料的。

现在,我想从七个输出参数的向量(目标向量)中预测五个变量的值。尝试使用相同的遗传算法。在设计遗传算法方面付出了很多努力后,我仍然最终得到目标向量和遗传算法预测之间的巨大差异。我只是尝试最小化 ANN 预测(函数逼近器)和目标向量之间的均方误差。

这是使用 ANN 作为函数逼近器和 GA 进行设计空间探索的正确方法吗?

【问题讨论】:

  • 你的目标是什么? GA也不能做预测,它是用来优化的。也许你可以找到五个变量的最佳组合,这些变量可以使用 GA 在你的目标变量中给出最大值
  • " 也许你可以找到五个变量的最佳组合,使用 GA 可以在目标变量中给出最大值——" 我正在这样做,但方式略有不同。我想最小化目标变量和预测变量之间的误差。 ANN 用作函数逼近器。但是,这似乎不起作用。我现在开始考虑当目标函数是ANN时是否可以使用GA。
  • GA 不是函数占用者的方法。 “这不起作用”是什么意思。但是您之前提到“人工神经网络可以很好地预测输出”
  • 输入数据----> ANN ----> 输出数据:ANN 用于建立输入和输出之间的关系。如何找到一组可以产生特定输出“目标”的“输入变量”?我为此使用了 GA。目标 -----> GA -------> 输入变量 我在 GA 中优化什么?它是 ANN 输出和目标的均方误差。那么它是怎样工作的? GA 设置初始种群,将这些值发送到 ANN,ANN 预测输出 - GA 将 ANN 输出与目标进行比较 - 找到 mse - 重复直到达到最小 mse。因此,GA 被用作优化器而不是函数占用器。
  • 这是使用 ANN 作为函数逼近器和 GA 进行设计空间探索的正确方法吗? - 是的。我不明白,问题出在哪里!

标签: python neural-network genetic-algorithm


【解决方案1】:

是的,这是使用 GA 进行搜索空间探索的好方法。但设计交叉、变异、世代进化逻辑等在决定遗传算法的性能方面起着重要作用。

如果您的搜索空间有限,您可以使用精确方法(求解到最优)。

python-scipy 本身的实现很少

如果您更喜欢使用元启发式算法,

除了遗传算法,还有很多选择

模因算法 禁忌搜索 模拟退火 粒子群优化 蚁群优化

【讨论】:

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