我正在使用遗传算法实现来尝试发现 CNN 的最佳模型结构。我正在使用带有 Tensorflow 后端的 Keras 来构建模型,并且我正在尝试优化两个值:验证损失和模型的大小。
我正在使用 model.fit 函数返回的历史记录中存储的最佳验证损失,为了获得模型相对大小的近似值,我使用了模型中可训练参数的数量。
但是,我需要将这些值放在一个可比较的范围内,这样一个组合的适应度值就不会大大超过另一个。此外,我需要保持较小的值更适合的约定。
在继续之前,我应该说,对于我的损失函数,当真实值被编码为单个值时,我使用 Keras 的二元交叉熵(在之前的密集层中使用 sigmoid 激活),并且我使用 Keras 的分类-当真值是单热编码时的交叉熵(使用 softmax 激活)。
对于可训练参数的数量,我目前使用的是1.0-(1.0/num_parameters)。老实说,这可能也不是最好的,如果有人有更好的扩展方法的建议,我会很高兴听到它。
对于验证损失,我原本打算使用原始值。但后来我发现验证损失可能大于 1,这会影响缩放的可比性。
我想知道将这些值转换为可比规模的最佳方法是什么。