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

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

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

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

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

五、深度强化学习

5.1 深度 Q 网络

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

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

DQN的网络结构

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

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

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

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

DQN概述1

DQN概述2

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

DQN的改进算法

5.2 策略梯度算法

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

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

目标函数的构造方法

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

策略梯度定理的证明

REINFORCE 算法流程

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

参考网址:

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

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

相关推荐
咚咚王者9 小时前
人工智能之数据分析 numpy:第八章 数组广播
人工智能·数据分析·numpy
工业机器视觉设计和实现9 小时前
我的第一个cudnn(cuda)人工智能程序(lenet)
人工智能
我叫侯小科9 小时前
PyTorch 实战:手写数字识别(MNIST)从入门到精通
人工智能·pytorch·python
Sirius Wu9 小时前
开源训练框架:MS-SWIFT详解
开发语言·人工智能·语言模型·开源·aigc·swift
Baihai_IDP9 小时前
当前的“LLM 智能”,是来自模型突破,还是工程堆砌?
人工智能·llm·aigc
IT_陈寒9 小时前
Redis 性能提升30%的7个关键优化策略,90%开发者都忽略了第3点!
前端·人工智能·后端
慕云紫英9 小时前
投票理论(voting theory)(social choice theory)
人工智能·aigc
杜子不疼.10 小时前
【Linux】进程状态全解析:从 R/S/D/T 到僵尸 / 孤儿进程
linux·人工智能·ai
草莓熊Lotso11 小时前
C++ STL map 系列全方位解析:从基础使用到实战进阶
java·开发语言·c++·人工智能·经验分享·网络协议·everything
zyplayer-doc11 小时前
升级表格编辑器,AI客服应用支持转人工客服,AI问答风格与性能优化,zyplayer-doc 2.5.6 发布啦!
人工智能·编辑器·飞书·开源软件·创业创新·有道云笔记