上QQ阅读APP看书,第一时间看更新
1.2 对种群计分
能够对种群成员进行计分是非常有价值的,种群成员的分数决定了该种群成员所代表的潜在解的适用性。大多数演化算法可以使分数最小化或最大化,你需要确定是低分好还是高分好。一些人类运动,例如高尔夫球,追求的是最低分或低分,足球等运动则追求最高分或高分。
在将成员添加到种群时,要对该成员进行计分。潜在解的分数通常与解存储在同一对象上。这个存储位置可以让程序不需要持续重新计算分数。最初,你需要为随机种群的每个成员计分。如果种群成员发生变化,那么它的分数还需要重新计算,如果添加了新的种群成员,那么需要确定它的分数。
对个体进行计分的确切方法,取决于所解决问题的类型。适应度函数用于评估可能的解并指定分数。例如,简单的适应度函数可以轻松地将模型的预期输出与从模型中获得的实际输出进行比较。此外,你可以创建更复杂的适应度函数,这些函数使用自定义的程序代码来评估潜在的解。使用适应度函数的唯一要求是,它必须提供一个数字分数,以便与其他潜在解进行比较,从而评估某个潜在解。适应度函数有时称为损失函数(loss function)或目标函数(objective function)。
计分通常是演化算法的性能瓶颈。你常常需要针对加入种群的每个新的潜在解运行一个冗长的数据集,来自此类数据集的分数通常是训练集中每个元素的实际输出与预期输出之间的平均差。