使用AI技术优化参数

时间:2015-07-13 18:43:34

标签: optimization parameters artificial-intelligence neural-network genetic-algorithm

我知道我的问题很普遍,但我是AI领域的新手。 我有一些参数(几乎6个参数)的实验。它们中的每一个都是独立的,我想找到最大或最小输出功能的最佳解决方案。但是,如果我想在传统的编程技术中使用它,则需要很长时间,因为我将使用六个嵌套循环。

我只想知道哪种AI技术可用于此问题?遗传算法?神经网络?机器学习?

更新

实际上,问题可能有多个评估功能。 它将有一个我们应该最小化它的功能(成本) 和我们想要最大化的另一个功能(容量) 也许可以添加其他功能。 例: 建造一个玻璃窗可以百万种方式完成。但是,我们想要最低成本的最强窗口。有许多参数会影响窗户的压力容量,例如玻璃的强度,高度和宽度,窗户的斜率。 显然,如果我们采取极端情况(最大强度玻璃,最小宽度和高度,零斜率),窗户将非常强大。但是,费用将非常高。

我想研究特定范围内参数之间的相互作用。

3 个答案:

答案 0 :(得分:1)

首先,如果您有多个竞争目标,问题就会混淆。

您必须找到要最大化的单个值...例如:

value = strength - k*cost

value = strength / (k1 + k2*cost)

对于固定强度而言,较低的成本获胜且固定成本获得较高的实力,但您有一个公式可以决定给定的解决方案是好还是坏。如果你不这样做,你怎么能决定一个解决方案是否比另一个更便宜但更弱的解决方案更好?

在某些情况下,正确定义的值需要更复杂的功能...例如,对于强度,值可能会增加到某个点(即,具有比规定量更强的结果是没有意义的)或者成本可能具有上限(因为高于一定数量的解决方案并不令人感兴趣,因为它会将最终价格排除在市场之外)。

一旦你找到标准,如果参数是独立的,根据我的经验,一个非常简单的方法是:

  1. 通过选择n随机值选择随机解决方案,每个参数对应允许的边界内的一个
  2. 计算此起点的目标值
  3. 选择一个随机数1 <= k <= n,并为从k随机选择的每个n参数计算一个随机签名的增量,并将参数更改为该数量。
  4. 从已翻译的解决方案中计算新目标值
  5. 如果新值更好,请保留新位置,否则恢复原来的位置。
  6. 从3开始重复,直到你没时间。
  7. 根据目标函数,有随机分布比其他分布更好,也可能是不同参数的最佳选择不同。

答案 1 :(得分:1)

在不了解具体问题的情况下,听起来像遗传算法是理想的。它们已被大量用于参数优化,并且通常给出了良好的结果。就个人而言,我使用它们来缩小边缘检测技术的参数范围,大约有15个变量,并且它们做得不错。

如果将此代码编码到遗传算法的适应度函数中,则具有多个评估函数不是问题。我用遗传算法查找多目标优化。

我从这里开始:Multi-Objective optimization using genetic algorithms: A tutorial

答案 2 :(得分:0)

前段时间我编写了一个用于使用遗传算法解决优化问题的C ++代码。这是:http://create-technology.blogspot.ro/2015/03/a-genetic-algorithm-for-solving.html

应该很容易理解。