artificial-intelligence - 线性遗传规划常数

标签 artificial-intelligence machine-learning genetic-algorithm genetic-programming

与最初用常量播种个体并通过遗传运算符改变它们相比,在内存寄存器中显式定义常量有哪些优点和缺点?

具体来说,是从我一本关于线性遗传编程的书中读到的:

在我们的实现中,所有寄存器都保存浮点值。在内部, 常量存储在写保护的寄存器中,即可能不会变成 目的地寄存器。因此,可能的常数集 保持固定。

我想知道的是,这是否比简单地最初随机生成常数并将它们集成到程序中,然后通过训练过程对其进行改进更好的方法。

谢谢

最佳答案

根据您对术语“内存寄存器”的使用,我假设您指的是内存增强遗传编程技术。

即使使用内存寄存器,使用常量也是不正常的。相反,像 Memory with memory in genetic programming 这样的技术可以让你慢慢地改变你的内存寄存器,而不是做出突然的改变,使内存变得无关紧要。尽管如此,引入随机初始化值是很常见的,这样您就可以随机重新启动以尝试逃避局部最优。

也许您正在考虑将所有内存寄存器设置为零或一些人类估计值?

编辑:

听起来他们有一些值(value)观希望不加修改地传承给后代。就我个人而言,假设您的 GA 所在的环境可以更好地体现这种值(value),假设它们在所有实例之间共享。

如果它们在实例之间共享,那么这可能反射(reflect)了在设置中使用一些随机值来为群体播种的意图,这些随机值不应该允许进化(至少,在给定的运行期间不允许进化) )。

如果您需要在复杂的背景下发展,并且希望在尝试获得良好的结果之前首先适应固定的环境,那么第一种类型的常量(环境常量)可能会很有用。适合更复杂的可变环境情况。

第二种常量(每个 DNA 实例)不是我使用过的东西,但我想如果分析师已经识别出一些“ volatile ”变量,这些变量太困惑而无法持续进化,那么“保护”可能会很有用它们作为运行的常量。

关于artificial-intelligence - 线性遗传规划常数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411859/

相关文章:

machine-learning - 神经网络激活函数的选择

c# - 在二维数组中实现 A* 寻路

image - 我们可以使用经过图像分类训练的模型来帮助 tensorflow 中的对象检测吗?

java - 遗传算法 - 部分映射交叉 - Java

encoding - 遗传算法中使用值编码方法时如何交叉 parent ?

python - PyBrain 的遗传算法示例/教程?

image-processing - 使用机器学习创建植物健康分类器

tensorflow - 使用 tensorflow 合并在 2 台不同计算机上训练的同一模型的权重

machine-learning - 对YOLO过程感到困惑

python - 有没有办法从图形图像中提取数据并将其存储在 Excel 工作表或 csv 文件中?