前言 最近一直弄RL,看了一下DeepMind的文章和代码。记录一下个人对算法的理解。 文章地址 http://outlace.com/Reinforcement-Learning-Part-3/ dqn-in-the-caffe 解析 直接上图 1,初始化replay memory D 容量为N 2,用一个深度神经网络作为Q值网络,初始化参数weight 3,设定游戏片段总数M 4,初始化网络输入,大小为84*84*4,并且计算网络输出 5,随机选择action或者通过网络输出的Q(max)值选择action–>a 6,得到执行a后的下一个网络输入和操作a的reward–>r 7,计算下一时刻网络的输出 8,将四个参数作为此刻的状态一起存入到D中(D中存放着N个时刻的状态) 9,随机从D中取出minibatch个状态 10,计算每一个状态的目标值(通过执行a后的reward来更新Q值作为目标值) 11,通过SGD更新weight 注释:在Q值中使用均方差mean-square error 来定义目标函数objective function也就是loss function。可以看到,这里就是使用了Q-Learning更新的Q值作为目标值。有了目标值,又有当前值,那么偏差就能通过均方差来进行计算。