深度强化学习中的知识点-DQN、DDPG、AC-贪心算法

深度强化学习中的知识点-DQN、DDPG、AC-贪心算法自定义目录标题

DRL学习时总结的一些知识点

最近在学习使用凸优化和DRL来解决通信领域中的资源分配问题。

#近期研究领域:

1.边缘计算;
2. MEC;
3. 数字孪生;
4. 任务卸载;
5. 凸优化、深度强化学习;
如果有人喜欢会继续进行分享,以及相关代码

1.Deep Q Network (DQN)

深度Q网络(DQN)算法(Mnih等人,2015年),该算法能够在许多使用未处理像素作为输入的雅达利电子游戏中达到人类水平。为此,使用深度神经网络函数逼近器来估计动作值函数。

Q学习的主要思想是在State和Action之间构造一个Q表来存储Q值,然后选择最大Q值对应的动作。每个状态-行动对都有一个值Q(s, a),可以视为长期奖励。在连续训练过程中,我们可以通过TD-error来更新Q值,直到Q表收敛。(如果问题的状态和动作空间非常大,用Q表记录所有的Q(s, a)是不现实的。因此,使用一个深度神经网络来估计Q(s,a),而不是为每个状态-动作对计算Q值,这也是深度Q网络(DQN)的基本思想。)

然而,DQN虽然解决了高维观测空间的问题,但它只能处理离散和低维的动作空间。许多有趣的任务,尤其是物理控制任务,具有连续(实值)和高维的操作空间。DQN不能直接应用于连续域,因为它依赖于找到使动作值函数最大化的动作,在连续值的情况下,每一步都需要迭代优化过程。

Deep Deterministic Policy Gradient (DDPG)

DDPG论文中使用Ornstein-Uhlenbeck噪声用于探索,为什么不用高斯噪声呢?

OU过程是时序相关的,所以在强化学习的前一步和后一步的动作选取过程中可以利用OU过程产生时序相关的探索,以提高在惯性系统(即环境)中的控制任务的探索效率。(注:高斯噪声是时序上不相关的,前一步和后一步选取动作的时候噪声都是独立的。前后两动作之间也只是通过状态使其独立。)
所以OU过程的适用场景有:相比于独立噪声,OU噪声适合于惯性系统,尤其是时间离散化粒度较小的情况。可以保护实际系统,如机械臂。

Actor-Critic

DDPG算法,会训练两个网络,一个策略网络(actor),另一个估值网络(critic)。策略网络的输入是状态state,输出是动作action。估值网络的输入是 成对的 state-action,输出是 成对的state-action 的Q值估计。可以把 critic看成是 actor 的损失函数loss function,只不过critic不是MSE那样固定不变的损失函数 ,而是一个可以被持续训练的神经网络。在对抗网络里,用来给生成器 generator 提供梯度的 判别器 discriminator 有时候也被成为 critic。

critic的优化目标是:最小化critic loss;而actor的优化目标是:最大化 critic网络给出的Q值估计(相当于最小化 critic网络给出的Q值估计的负值)。

Critic网络的优化目标 objective 是:根据损失函数 loss function(MSE)提供的梯度,更新critic网络的参数,最小化网络输出的Q值与标签的距离。也可以说成是:通过训练让 critic loss 接近于 0。

Actor网络的优化目标 objective 是:根据损失函数 loss function(critic网络)提供的梯度,更新actor网络的参数,最大化 critic网络给出的Q值估计值。也可以说成是:通过训练让critic 网络的Q值估计尽可能大。

e-贪心算法

ϵ-贪心算法基于一个概率来对探索和利用进行折中:
每次尝试时以ϵ的概率进行探索(试探,不一定从最优的选,所有样本随机选择),以1-ϵ的概率进行利用(开发,只从最大化收益的动作里面进行选择)。

算法流程

猜你喜欢

转载自blog.csdn.net/qq_45296693/article/details/130438756