有借助遗传算法检测公式的方法吗?

时间:2013-04-07 21:35:44

标签: genetic-algorithm genetic-programming

我试图找到两个图像(让我们说“image1”和“image2”)如何相互匹配。 针对“image2”相对于“image1”的每个可能位置计算了若干参数。我有经验公式,根据这些参数给每个位置“得分”。

我试图在神经网络的帮助下匹配图像,但是失败了:经验公式的效果要好得多。由此我开始考虑在遗传算法的帮助下改进这个公式。

所以,问题是:我有一堆图像对,每对我知道“正确”的匹配位置。遗传算法可以用在这样的东西上吗?有什么例子吗?

建议和链接表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:2)

基本上,是的!分数函数的参数可以是GA将要发展的参数。如果您的参数在真实域中,您可能需要使用真实的编码遗传算法或进化策略(CMA-ES)。

交叉有几种可能的选择:

  • 平均/中级
  • Blend-Alpha(BLX-a)
  • Blend-Alpha-Beta(BLX-a-b)
  • 离散
  • 启发式
  • 本地
  • Random Convex
  • 模拟二进制(SBX)
  • 单点

还有一些变异算子:

  • 正态分布的N(0,sigma) - >例如随着时间的推移适应减少西格玛
  • 统一分布(在某些位置)
  • 多项式突变

另一种适用于实际编码问题的元启发式算法是粒子群优化(PSO)。

通过遗传编程,您将发展一个公式(例如树)。我不太清楚为什么你提到它,也许我仍然误解了一些东西。澄清你的问题,以防万一。

编辑:

好吧,似乎不是你想要优化的权重,而是整个公式。遗传算法也可用于此表示。我想提及HeuristicLab,因为它对遗传编程有很好的支持。

我假设您有一个更复杂的问题,因为您想要优化评分功能,并且还有另一种算法可根据评分函数优化展示位置。您可以尝试一种简单的方法,生成一个预定义了多个位置的数据集,并相应地计算出这些特征。然后,您可以制定分类问题并找到一个模型,使您能够识别最佳的定位。