【机器学习】强化学习(五)深度强化学习理论

强化学习算法如Q学习的确有一些局限性,比如状态和动作空间过大或过复杂的问题。针对这些问题,有一些解决方案,比如:

  • 使用函数逼近来近似Q函数,而不是用表格存储。函数逼近可以是线性的,也可以是非线性的,比如神经网络。这样可以减少存储空间,也可以处理连续的状态和动作空间。

  • 使用分层强化学习来将复杂的任务分解为子任务,每个子任务有自己的状态和动作空间,以及奖励函数。这样可以降低问题的复杂度,也可以提高学习效率。

  • 使用深度强化学习来结合深度学习和强化学习,利用深度神经网络来表示策略或值函数,从高维的原始输入(比如图像)中提取特征,学习复杂的环境和任务。深度强化学习已经在许多领域取得了令人瞩目的成果,比如AlphaGo,Atari游戏,机器人控制等。

273a487cb3d412547d7f98c73ad40b80.png

4f815e00dc3fdabdc50060582cc1a75c.png

五、深度强化学习

b0d907592453df1d0b85acfdb65174ea.png

5.1 深度 Q 网络

d7a76b363e2c1cef0b3c9ee27a16b1db.png

7547d0a066c4c00ebc6a4d37e093408e.png

56f9604ab5985f0c7045fbd55d3593b5.png

图:深度 Q 学习中,使用神经网络来逼近 Q 值函数

(2个卷积层,2个全连接层)

DQN的网络结构

深度 Q 网络的网络结构是指用于近似 Q 函数的深度神经网络的结构。深度 Q 网络的网络结构可以根据不同的输入和输出的类型和维度来设计,但是一般都包括以下几个部分:

  • 输入层:输入层是用于接收环境的状态信息的,它可以是一个向量,一个矩阵,或者一个张量。例如,如果输入是图像,那么输入层可以是一个三维的张量,表示图像的高度,宽度和通道数。

  • 隐藏层:隐藏层是用于提取状态信息的特征的,它可以有多个,每个隐藏层都由若干个神经元组成。每个神经元都有一个激活函数,用于增加网络的非线性。隐藏层可以是全连接层,卷积层,循环层,或者其他类型的层。例如,如果输入是图像,那么隐藏层可以是若干个卷积层,用于提取图像的局部特征。

  • 输出层:输出层是用于输出每个动作的 Q 值的,它的神经元的个数等于动作空间的大小。输出层一般是一个全连接层,没有激活函数。输出层的每个神经元都对应一个动作,其输出的值就是该动作的 Q 值。例如,如果动作空间是离散的,有四个动作,那么输出层就有四个神经元,分别表示上,下,左,右的 Q 值。

c1f64a958a0517d2807d7bca593b5dbe.png

DQN概述1

77cd862e61b1eaaa1aab53af778eeb59.png

DQN概述2

6424eaab151d6c951820ac988f2bf128.png

01fc41c3a422c8dbd34ff1a178438342.png

算法: 具有经验回放的深度 Q 学习

0d61c470db11384645c227d58eba3c1d.png

eea9a4c8867204720026a3cd900e779a.png

55ddaf827dc20ae05247fb0abdc9f4cc.png

DQN的改进算法

8e375729d42a691752e39aae583dd180.png

5.2 策略梯度算法

12edfdeb94d55aef7aaf28c67971b55a.png

a9185e36db426564297f7a51745c5bc6.png

策略梯度算法处理离散动作和连续动作的区别

502fba0e942552851f39cb7f38141fc1.png

8dfedac594171d3242bf0329698a1803.png

策略梯度算法与深度Q网络算法的区别

43c20dfcc4d3c6645e58e2119ab9f0a5.png

0040324b74f06ff9d8264bd54e92707f.png

目标函数的构造方法

32d1912072d935ce506a11f930e819b5.png

7339c0123c70e062d95776174dcef569.png

e3291e12994e3d8abaf7717d3042e00d.png

目标函数对策略参数的梯度形式

1294de95057675344119aa58c5a37e1d.png

0fe171599c79ed579b5b314eb0772f6d.png

e4f1e78b11eaf584448f3a293d6c9c5f.png

策略梯度定理的证明

85cb489958d3dd2f44620d419fcdb45f.png

REINFORCE 算法流程

c7b9b452a454a2efff15175cfc280403.png

对于连续动作空间强化学习路径规划问题,有哪些求解方法

2d1accd1947bee70021e5ce5c951de8a.png

7f9fe68797b9cacbabdfd098294e6a4f.png

1ad833694a63be192451f91d12adb075.png

参考网址:

- [DQN论文](https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf)

- [DQN 的改进算法的综述](https://arxiv.org/abs/1710.02298)

- [DQN 的改进算法的论文解读](https://zhuanlan.zhihu.com/p/32817711)

- [DQN 的改进算法的代码实现](https://github.com/higgsfield/RL-Adventure-2)

相关推荐

  1. 机器学习强化学习算法比较

    2024-01-27 00:50:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-27 00:50:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-27 00:50:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-27 00:50:02       82 阅读
  4. Python语言-面向对象

    2024-01-27 00:50:02       91 阅读

热门阅读

  1. 2024-01-26 成长-复盘

    2024-01-27 00:50:02       59 阅读
  2. 什么是迁移学习

    2024-01-27 00:50:02       46 阅读
  3. Python技术栈 —— 一种超时LRU的实现方式

    2024-01-27 00:50:02       64 阅读
  4. ModuleNotFoundError: No module named ‘half_json‘

    2024-01-27 00:50:02       62 阅读
  5. 工厂方法模式-C#实现

    2024-01-27 00:50:02       65 阅读
  6. C++核心编程:类和对象 笔记

    2024-01-27 00:50:02       45 阅读