深度Q网络——DQN
算法流程:
(1) 初始化网络参数
(2) 初始化网络参数
(3) 初始化经验回放池R
(4) 进入循环迭代训练:
for 序列do
获取初始状态
for 时间步do
根据以
贪婪策略选择动作
,获得
,
存入经验回放池R
若R中数据充足,从R中采样N各数据
目标网络计算
最小化目标损失,更新当前网络
更新目标网络
end for
end for
注:网络更新比
网络快得多
基于策略的算法
- 策略梯度
通过线性模型或神经网络模型为策略函数建模。目标是寻找一个最优策略并最大化该策略在环境中的期望回报。定义策略学习的目标函数:
可采用梯度上升法最大化该目标函数从而得到最优策略。 - REINFORCE算法
策略梯度:
其中,T是和环境交互的最大步数。
具体流程:
(1) 初始化策略参数
(2) 进入循环迭代训练:
for 序列do
利用当前策略采样轨迹
计算当前轨迹每个时刻t往后的回报
end for Actor-Critic算法:
Actor:与环境交互,并在Critic价值函数指导下用策略梯度学习更优策略——策略梯度更新
Critic:学习价值函数,用以判断当前状态动作优劣——时序差分残差更新
定义价值函数的损失函数:
其梯度为:
具体流程:
(1)初始化Actor网络参数,Critic网络参数
(2)进入循环迭代训练:
for 序列do
利用当前策略采样轨迹
为每一步数据计算
更新价值参数
更新策略参数
end for- DDPG算法——深度确定性策略梯度
确定性策略梯度定理:用策略找到使
值最大的动作a。此时Q为Critic,
为Actor
DDPG中共有4个神经网络:Actor网络及其目标网络,Critic网络及其目标网络
其中,目标Q网络的更新为软更新,即让目标Q网络缓慢更新接近Q网络:
具体流程:
(1) 以表示随机噪声,初始化Actor网络
参数
,Critic网络
参数
(2)初始化目标网络和
,
(3)初始化经验回放池R
(4)进入循环迭代训练:
for 序列do
初始化用于动作探索
获取初始状态
for 时间步do
根据当前策略和噪声选择动作
执行,获得
,
存入经验回放池R
若R中数据充足,从R中采样N个元组
对每个元组用目标网络计算
最小化目标损失,更新当前网络
计算采样的策略梯度,以此更新Actor网络
更新目标网络
end for - SAC算法
熵:表示对一个随机变量的随机程度的度量。对随机变量X,概率密度函数为p,其熵为:
可用表示策略
在状态s下的随机程度
最大熵强化学习:最大化累积奖励的同时使策略更随机。在强化学习中加入熵正则项:
注:若随机变量为正态分布,则方差越大,熵值越大
Soft策略迭代:
Soft贝尔曼方程:
状态价值函数:
Soft策略提升公式:
注:该方法只适用于表格型设置的情况。在连续空间下,需通过参数化函数Q和策略来近似该迭代。
Soft Actor Critic:
为两个动作价值函数Q(参数为) 和一个策略函数
建模。
Q损失函数:
策略的损失函数由KL散度得到,利用重参数化技巧,改写策略损数得:
为自动调整熵正则项,可将强化学习目标改写为一个带约束的优化问题:
得到损失函数为:
具体流程:
(1)初始化Actor网络参数
,Critic网络
参数
(2)初始化目标网络和,
(3)初始化经验回放池R
(4)进入循环迭代训练:
for 序列do
获取初始状态
for 时间步do
根据当前策略和噪声选择动作
执行,获得
,
存入经验回放池R
for 训练轮数do
从R中采样N个元组
对每个元组用目标网络计算
对两个Critic网络进行更新,最小化损失函数
重参数化采样动作,并更新Actor网络:
更新熵正则项系数
更新目标网络:
end for
end for
end for