使用人工智能技术优化参数

Optimizing Parameters using AI technique

我知道我的问题很笼统,但我是 AI 领域的新手。 我有一些参数(将近 6 个参数)的实验。它们中的每一个都是独立的,我想找到最大或最小输出函数的最优解。但是,如果我想用传统的编程技术来做,这将花费很多时间,因为我将使用六个嵌套循环。

我只想知道使用哪种人工智能技术来解决这个问题?遗传算法?神经网络?机器学习?

更新

其实,这个问题可以有不止一个评价函数。 它将具有一个我们应该最小化它的功能(成本) 和我们想要最大化它的另一个功能(容量) 也许可以添加其他功能。 例子: 构建玻璃 window 可以通过一百万种方式完成。但是,我们想要成本最低的最强 window。有许多参数会影响 window 的承压能力,例如玻璃的强度、高度和宽度、window 的坡度。 显然,如果我们采用极端情况(最大强度玻璃、最小宽度和高度以及零斜率),window 将非常坚固。不过这样做的成本会很高

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

首先,如果你有多个竞争目标,问题就会很混乱。

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

value = strength - k*cost

value = strength / (k1 + k2*cost)

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

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

如果参数是独立的,找到标准后,根据我的经验,一个非常简单的方法仍然不错:

  1. 通过选择 n 个随机值来选择一个随机解决方案,每个值对应允许范围内的每个参数
  2. 计算此起点的目标值
  3. 选择一个随机数 1 <= k <= n 并为从 n 中随机选择的每个 k 参数计算一个随机有符号增量并按该数量更改参数。
  4. 根据翻译后的解计算新的目标值
  5. 如果新值更好,则保留新位置,否则恢复到原来的位置。
  6. 从 3 开始重复,直到 运行 超时。

根据目标函数的不同,存在比其他随机分布效果更好的随机分布,也可能是对于不同的参数,最佳选择是不同的。

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

如果将其编码到遗传算法的适应度函数中,那么拥有多个评估函数并不是问题。我会使用遗传算法查找多重 objective 优化。

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

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

应该很容易理解。