Policy network

"?two branches  for Deep Reinforcement Learning: based on Value or Policy.

based on Value: DQN(Deep Q Network, google)  = NN + Q learning

Q learning : (State , action ) -->Q value, for each state choose the action which lead to the largest Q;是一种策略时间差分方法,核心是异策略,时间差分。

异策略:行动策略(产生数据的策略)和要评估改进的策略是分开的,行动策略是5行的thegma-贪婪,评估和改进的是6行的贪婪(选择对每个状态来说,取值最大的动作)

时间差分:更新行为值函数时是依据时间差分目标。时间差分目标如下


1
Policy network_第1张图片
2


Policy network_第2张图片
3
Policy network_第3张图片
4

DQN benefits from: CNN, Experience replay and Fixed Q-targets

Experience replay makes DQN a off-policy "offline learning" which is able to learn from the experience and others' experience。经验回放对强化学习的学习过程进行训练。Why,因为RL负责收集数据,但上下文数据的关联性很强 V.S. 神经网络训练时要求数据是独立同分布的。所以用经验回放来打破数据的关联性。

解释二:DeepMind创始人Hassabis是伦敦大学神经科学博士:人在睡觉时,海马体会把一天的记忆重放给大脑皮层。

Policy network_第4张图片
5

如上图,强化学习时,会把数据存到一个DB,then均匀随机采样抽取数据,来训练神经网络。2013NIPS就指出了。

2015nature提出目标网络来进一步减小数据间的关联性。DQN用目标网络Q-targets来单独处理时间差分算法中的TD偏差。

Fixed Q-targets makes DQN owns 2 networks with same structures but different parameters: one for predicting Q real with experience parameters and the other predict Q estimate with the latest parameters.

与表格型传统Qlearning不同,用NN进行值函数逼进时,每一步更新的是网络权值参数,而不是图2第6行的Q值了,换成了梯度下降更新:


6

7是TD目标,用网络参数theta来计算8。

7
8


Policy network_第5张图片
9动作值函数逼近网络

以往神经网络逼近值函数时,【计算TD目标的动作值函数】用的是网络参数theta,与梯度计算【要逼近的动作值函数】,所用的网络参数一样,这样就容易导致数据关联性,训练不稳定,事实上,这两个操作的更新频率等是不完全一样的。所以单独弄一个TD目标网络来【计算TD目标】,theta-;【逼近值函数】的网络用theta;【计算TD目标的动作函数】每个固定的步数更新一次,【用于逼近的动作值函数网络】每一步都更新。所以值函数的更新变成:

10

DQN伪代码:

Policy network_第6张图片
11

第[1]行,初始化回放记忆D,可容纳的数据条数为N

第[2]行,利用随机权值theta来初始化动作行为值函数Q

第[3]行,令theta- = theta来计算TD目标的动作行为值Q

第[4]行,循环每次事件

第[5]行,初始化每次事件的第一个状态s1 ,预处理得到状态对应的特征输入

第[6]行,循环每个事件的每一步

第[7]行,利用概率thegma选一个随机动作at

第[8]行,若小概率事件没发生,则用贪婪策略选择当前值函数最大的那个动作,注意,这里选最大动作时用到的值函数网络与逼近值函数所用的网络是一个网络,都对应着theta。

注意:第[7]行和第[8]行是行动策略,即thegma-greedy策略。

第[9]行,在仿真器中执行动作at,观测回报rt与图像xt+1

第[10]行,设置st+1 = st, at, xt+1, 预处理

第[11]行,将转换(,,,)储存在回放记忆D中

第[12]行,从回放记忆D中均匀随机采样一个转换样本数据

第[13]行,判断是否是一个事件的终止状态,若是终止状态则TD目标为rj,否则利用TD目标网络theata- 来计算TD目标

第[14]行,执行一次梯度下降算法

第[15]行,更新动作值函数逼近的网络参数theta

第[16]行,每隔C步更新一次TD目标网络权值即令theta-  = theta

第[17]行,结束每次事件内循环

第[18]行,结束事件间的循环

我们可以看到,在第[12]行,利用了经验回放;在[13]行利用了独立的目标网络theta-。第[15]行,更新动作值函数逼近网络参数;第[17]行更新目标网络参数.

你可能感兴趣的:(Policy network)