【深度学习】深度学习和强化学习算法——深度 Q 网络DQN

深度 Q 网络(Deep Q-Network, DQN) 详解

  • 什么是DQN
    • DQN 的背景
    • DQN 训练流程
  • 2 DQN 的核心思想
    • 2.1 经验回放(Experience Replay)
    • 2.2 目标网络(Target Network)
    • 2.3 ε-贪心策略(ε-Greedy Policy)
    • 2.4 误差裁剪(Clipping the Loss)
  • 总结
  • 参考

深度 Q 网络(DQN)是一种结合 深度学习 和 强化学习 的算法,主要用于解决高维状态空间的强化学习问题。DQN 由 Google DeepMind 在 2015 年提出,并成功应用于 Atari 游戏,使 AI 能够超越人类玩家。

什么是DQN

Q-learning是一种经典的强化学习算法,而DQN(Deep Q-Network),即深度Q网络,是一种基于深度学习的Q-Learing算法和强化学习算法,它是首个成功将深度学习应用于解决强化学习任务的算法之一。
在这里插入图片描述

DQN基于值迭代(Value Iteration)的思想,通过估计每个状态动作对的价值函数Q值来指导智能体在每个状态下选择最佳的动作。简单来说,就是通过深度学习训练,得到一个函数Q(s,a)可以根据输入状态s,得到最佳动作a。
在这里插入图片描述

DQN 的背景

在 Q-learning 传统强化学习算法中,我们使用 Q 表(Q-table) 存储每个状态-动作对的 Q 值。然而,当状态空间变得巨大甚至是连续的时,Q 表的方法变得不可行,因为:

  • 状态数量过多,导致 Q 表存储需求爆炸。
  • 许多状态可能没有被访问过,导致学习效率低。

为了解决 高维状态空间 问题,DQN 使用 深度神经网络(Deep Neural Network, DNN) 来逼近 Q 值函数。这使得 DQN 能够处理复杂的环境,如图像输入(Atari 游戏)或高维控制任务。

DQN 训练流程

在这里插入图片描述

2 DQN 的核心思想

DQN 主要基于 Q-learning,但引入了深度神经网络来逼近 Q 值函数 Q(s,a),并使用了以下关键技术:

  • 经验回放(Experience Replay)
  • 目标网络(Target Network)
  • ε-贪心策略(ε-Greedy Policy)
  • 误差裁剪(Clipping the Loss)

2.1 经验回放(Experience Replay)

在标准 Q-learning 中,每次状态转移后立即更新 Q 值,这可能导致:

  • 数据相关性高(连续状态高度相关),影响神经网络训练。
  • 训练数据利用率低。

在这里插入图片描述

DQN 通过引入 经验回放缓冲区(Replay Memory) 来存储过去的经验 (s,a,r,s′ ),并在训练时 随机采样 进行学习,从而:

  • 去相关性(Decorrelation),避免连续样本影响学习。
  • 提高数据利用率,减少样本浪费。

经验回放示意图:
1、代理与环境交互,生成经验 (s,a,r,s′ )。
2、将经验存入回放缓冲区(FIFO 队列)。
3、随机采样一批经验训练神经网络。

2.2 目标网络(Target Network)

在这里插入图片描述

2.3 ε-贪心策略(ε-Greedy Policy)

为了平衡 探索(Exploration) 和 利用(Exploitation),DQN 使用 ε-贪心策略:

  • 以概率 ϵ 选择随机动作(探索)
  • 以概率 1−ϵ 选择 Q 值最大的动作(利用)
  • ε 会随着训练逐渐减少,初始探索较多,后期更倾向于利用已有经验。

2.4 误差裁剪(Clipping the Loss)

在这里插入图片描述
这样可以减少异常值对梯度的影响,提高训练稳定性。

总结

DQN 通过使用 深度神经网络 逼近 Q 值,解决了高维状态空间问题,并通过 经验回放 和 目标网络 提高训练稳定性。它是强化学习领域的里程碑,为后续如 Double DQN, Dueling DQN, Rainbow DQN 等方法奠定了基础。

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19491.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS flex布局 列表单个元素点击 本行下插入详情独占一行

技术栈:Vue2 javaScript 简介 在实际开发过程中有遇到一个场景:一个list,每行个数固定,点击单个元素后,在当前行与下一行之间插入一行元素详情,便于更直观的查看到对应的数据详情。 这种情形&#xff0c…

Deepseek本地部署

一,Deepseek本地部署方式 有UI且简单:LM Studio、Text Generation WebUI。 高效率但无UI:Ollama、LLama.cpp、Tabby。 二,通过Ollama本地部署Deepseek 1,什么是Ollama Ollama是一个开源的 LLM(大型语言…

Django 创建表时 “__str__ ”方法的使用

在 Django 模型中,__str__ 方法是一个 Python 特殊方法(也称为“魔术方法”),用于定义对象的字符串表示形式。它的作用是控制当对象被转换为字符串时,应该返回什么样的内容。 示例: 我在初学ModelForm时尝…

最新智能优化算法: 中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法求解23个经典函数测试集,MATLAB代码

中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法由GUO Zhiqing 等人提出,该算法的灵感来自中华穿山甲独特的狩猎行为,包括引诱和捕食行为。 算法流程如下: 1. 开始 设置算法参数和最大迭代次数&a…

【云安全】云原生- K8S etcd 未授权访问

什么是etcd? etcd 是一个开源的分布式键值存储系统,主要用于存储和管理配置信息、状态数据以及服务发现信息。它采用 Raft 共识算法,确保数据的一致性和高可用性,能够在多个节点上运行,保证在部分节点故障时仍能继续提…

解锁建造者模式:Java 编程中的对象构建秘籍

系列文章目录 后续补充~~~~ 文章目录 一、引言二、建造者模式原理剖析2.1 定义与概念2.2 模式结构与角色2.2.1 产品(Product)2.2.2 建造者(Builder)2.2.3 具体建造者(ConcreteBuilder)2.2.4 指挥者&#xf…

ChatGPT行业热门应用提示词案例-AI绘画类

AI 绘画指令是一段用于指导 AI 绘画工具(如 DALLE、Midjourney 等)生成特定图像的文本描述。它通常包含场景、主体、风格、色彩、氛围等关键信息,帮助 AI 理解创作者的意图,从而生成符合要求的绘画作品。 ChatGPT 拥有海量的知识…

JUC并发—4.wait和notify以及Atomic原理

大纲 1.wait()与notify()实现一个简易的内存队列 2.wait()与notify()的底层原理 3.分布式存储系统NameNode机制介绍 4.分布式存储系统的edits log机制介绍 5.分布式存储系统的NameNode实现 6.分布式存储系统的创建目录功能的实现 7.edits log的全局txid机制和双缓冲机制…

ubuntu20.04声音设置

step1:打开pavucontrol,设置Configuration和Output Devices, 注意需要有HDMI / DisplayPort (plugged in)这个图标。如果没有,就先选择Configuration -> Digital Stereo (HDMI 7) Output (unplugged) (unvailable),…

【网络安全 | 漏洞挖掘】价值3133美元的Google IDOR

未经许可,不得转载。 文章目录 正文正文 目标URL:REDACTED.google.com。 为了深入了解其功能,我查阅了 developer.google.com 上的相关文档,并开始进行测试。 在测试过程中,我发现了一个 XSS 漏洞,但它触发的域名是经过正确沙盒化的 *.googleusercontent.com,这符合 …

企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析

解决方案链接:https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_contentg_1000401616 何为DeepSeek R1 DeepSeek R1模型有诸多技术优势。高效架构设计使其能更高效提取特征,减少冗余计算,提升数据处理速度、…

qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene

qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene code review! 文章目录 qt-C++笔记之QGraphicsScene和 QGraphicsView中setScene、通过scene得到view、通过view得scene1.`setScene` 方法2.通过 `scene` 获取它的视图 (`views()`)…

深度学习(1)-简单神经网络示例

我们来看一个神经网络的具体实例:使用Python的Keras库来学习手写数字分类。在这个例子中,我们要解决的问题是,将手写数字的灰度图像(28像素28像素)划分到10个类别中(从0到9)​。我们将使用MNIST…

【AI】Docker中快速部署Ollama并安装DeepSeek-R1模型: 一步步指南

【AI】Docker中快速部署Ollama并安装DeepSeek-R1模型: 一步步指南 一、前言 为了确保在 Docker 环境中顺利安装并高效运行 Ollama 以及 DeepSeek 离线模型,本文将详细介绍整个过程,涵盖从基础安装到优化配置等各个方面。通过对关键参数和配置的深入理解…

将OpenWrt部署在x86服务器上

正文共:1234 字 40 图,预估阅读时间:2 分钟 如果你问ChatGPT有哪些开源的SD-WAN方案,他会这样答复你: 我们看到,OpenWrt也属于比较知名的开源SD-WAN解决方案。当然,在很久之前,我就发…

【区块链】零知识证明基础概念详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 零知识证明基础概念详解引言1. 零知识证明的定义与特性1.1 基本定义1.2 三个核心…

Elasticsearch:将 Ollama 与推理 API 结合使用

作者:来自 Elastic Jeffrey Rengifo Ollama API 与 OpenAI API 兼容,因此将 Ollama 与 Elasticsearch 集成非常容易。 在本文中,我们将学习如何使用 Ollama 将本地模型连接到 Elasticsearch 推理模型,然后使用 Playground 向文档提…

基于Ubuntu+vLLM+NVIDIA T4高效部署DeepSeek大模型实战指南

一、 前言:拥抱vLLM与T4显卡的强强联合 在探索人工智能的道路上,如何高效地部署和运行大型语言模型(LLMs)一直是一个核心挑战。尤其是当我们面对资源有限的环境时,这个问题变得更加突出。原始的DeepSeek-R1-32B模型虽…

新数据结构(9)——Java异常体系

异常的种类 程序本身通常无法主动捕获并处理错误(Error),因为这些错误通常表示系统级的严重问题,但程序可以捕获并处理异常(Excrption),而Error则被视为一种程序无法或不应尝试恢复的异常类型。…

深度学习笔记——循环神经网络之LSTM

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍面试过程中可能遇到的循环神经网络LSTM知识点。 文章目录 文本特征提取的方法1. 基础方法1.1 词袋模型(Bag of Words, BOW)工作…