我对神经网络有些兴趣,并考虑将python中的一个用于轻型项目,该项目在时域(最快)中比较各种最小化技术。

然后我意识到我什至不知道NN是否适合最小化。你觉得呢?

有帮助吗?

解决方案

神经网络是分类器。它们将两类数据元素分开。他们通常通过预分类的数据元素来学习这种分离。因此,我说:不,除非您不做任何重大的突破。

其他提示

在我看来,这是一个比神经网络更适合遗传算法的问题。神经网络往往需要解决一个有界的问题,需要对已知数据进行训练,等等。而遗传算法则是通过找到一个问题的越来越好的近似解决方案而无需训练的。

反向传播通过最小化错误来工作。但是,您实际上可以最小化所需的内容。因此,您可以使用类似反向支持的更新规则来查找可将输出最小化的人工神经网络输入。

这是一个大问题,对不起,我的回答很短。我还应该补充一点,与更成熟的方法相比,我建议的方法听起来效率低下,只会找到局部最小值。

反向传播神经网络的训练过程通过最小化最佳结果中的误差来工作。但是让训练有素的神经网络找到未知函数的最小值将非常困难。

如果将问题限制在特定的函数类中,则它可能会起作用,而且速度也很快。神经网络擅长查找模式(如果有)。

对于它们的目的而言,它们是很糟糕的。神经网络的一大问题是它们陷入局部极小值。您可能需要研究支持向量机。

实际上,您可以使用NN来找到一个函数最小值,但与 Erik 提到的遗传算法结合使用,它可以达到最佳效果。

基本上可以使用NN帐篷找到与函数局部最小值或最大值相对应的解决方案,但这样做非常精确(对 Tetha 回答说NN是分类器,可以说是否输入的数据是最小的?

相反,遗传算法往往会在可能的所有输入范围内找到更通用的解决方案,但随后会为您提供近似的结果。

解决方案是结合两个世界

  1. 从遗传算法获得近似结果
  2. 使用该结果通过NN查找更精确的答案

您可以教导NN近似函数。如果一个函数是可微的,或者您的NN有多个隐藏层,则可以教它给出一个函数的导数。

示例: 通用标签

达到零输出时,您知道输入值是函数的最小值。

训练所需的时间更少,清零所需的时间很长。

尽管对于这个问题的作者来说来得太晚了。 也许有人在阅读本文时想测试一些优化算法...

如果您正在机器学习中进行回归(NN,SVM,多元线性回归,K最近邻),并且想要最小化(最大化)回归函数,那么实际上这是可能的,但是这种算法的效率取决于平滑度(步长等)。

为了构建这样的“机器学习回归”,您可以使用 scikit-Learn 。您必须训练并验证您的MLR 支持向量回归 。 (“适合”方法) 通用标签

然后,您必须定义一个函数,该函数返回数组“ x”的回归预测。 通用标签

您可以使用 scipiy.optimize.minimize 优化。请参阅文档链接后的示例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top