深度神经进化:训练Atari游戏智能体
1. 神经网络参数估计与简单遗传算法
1.1 计算突变函数
在神经网络参数估计中, compute_mutation 函数实现了单步估计。其代码如下:
def compute_mutation(self, noise, parent_theta, idx, mutation_power):
return parent_theta + mutation_power * noise.get(idx,
self.num_params)
此代码将父代的可训练参数向量与一个随机向量相加,该随机向量由确定性伪随机生成器使用特定种子索引生成。 mutation_power 参数用于缩放生成的随机向量,然后将其添加到父代参数向量中。更多实现细节可参考相关脚本。
1.2 简单遗传算法
在实验中使用的简单遗传算法会在多代进化中演化包含N个个体的种群。每个个体的基因组编码了可训练的神经网络参数向量。每一代中,会选择前T个个体作为下一代的父代。生成下一代的过程如下:
1. 选择父代 :从选择列表中均匀随机选择一个父代并移除。
2. 应用突变 :对所选父代的参数向量添加高斯噪声进行突变。
3. 添加新个体 :将
超级会员免费看
订阅专栏 解锁全文
1102

被折叠的 条评论
为什么被折叠?



