我无法弄清楚基因编程的人工智能如何确定最终方程中何时应该有一个常数。如果我采用公式 F(m) = ma; F(m) = m9.8,AI 怎么知道实数 9.8 实际上是什么?我知道,您实际上可以放置一个描述常数的符号,然后以某种方式计算或猜测它的值,而不是将最终数字放入二叉树中。
谢谢
我无法弄清楚基因编程的人工智能如何确定最终方程中何时应该有一个常数。如果我采用公式 F(m) = ma; F(m) = m9.8,AI 怎么知道实数 9.8 实际上是什么?我知道,您实际上可以放置一个描述常数的符号,然后以某种方式计算或猜测它的值,而不是将最终数字放入二叉树中。
谢谢
给定一组预定义的常量(终端集的一部分),它们将被组合成新的常量(使用树表示,任何只有数字常量作为叶子的子树本身都可以被认为是一个新的数字常量) .
即使使用单个常量 ( c
),系统也会创建:
c / c
);1.0 + 1.0
即c / c + c / c
);1.0 / 2.0
即c / c / (c / c + c / c)
);9.8
)。有时会使用名为“临时随机常数”(Koza)的特殊终端。对于初始种群中的每个短暂的,都会生成一个指定范围内的随机数。然后这些随机常数被移动和组合。
无论如何,即使使用临时随机常数,GP 也很难生成正确的常数(Koza 说“数字常数的发现是 GP 壁橱中的骨架”)。
所以其他技术可以在进化过程中/之后使用,例如数字突变、爬山……
这些混合系统通常在成功率方面有显着提高(至少对于回归问题)。