前言
最近一直弄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值作为目标值。有了目标值,又有当前值,那么偏差就能通过均方差来进行计算。