强化学习、深度学习、深度强化学习的区别是什么?

前言

深度强化学习就是 深度学习 和 强化学习 的结合体。它让计算机程序(也就是智能体)在特定环境中不断尝试,从错误中学习,最终找到最优的行动策略。

深度学习是AlphaGo从棋谱里学习,强化学些Alphazero 学习规则,自己下棋,左右互搏。

eg:计算机玩一个新游戏,一开始啥也不懂,但是通过不断尝试,你慢慢掌握了游戏规则,最后变成了高手。


一、前置知识

(一)强化学习(Reinforce Learning)

强化学习中智能体的学习过程基于奖励函数——环境给出反馈。在每一步的决策后,智能体从环境中收到反馈,可能是正奖励(表示决策正确)或负奖励(表示决策错误)。智能体通过反复试探环境并不断调整行为策略,以期获得最大化的累积奖励。

强化学习的核心是“试错学习”,智能体通过不断尝试不同的动作来探索最佳策略。

强化学习中往往存在“延迟奖励”,即智能体的某些行为的影响可能在未来才会体现,这增加了决策的复杂性。

强化学习是一种模仿生物学习机制的机器学习方法,它可以让智能体(agent)在没有明确指导的情况下,通过与环境的交互,根据奖励或惩罚来调整自己的行为,从而达到某个目标。

输入:清晰的规则

结果:具有决策能力的智能体(Agent)

特征:
  • 不断试错
  • 延迟奖励
  • policy函数
  • agent的action
  • 持续学习、自主学习

1. 马尔可夫属性

  • 定义:系统的未来状态仅取决于当前状态,而与过去的状态无关。

  • 公式描述:P(st+1∣st,st−1,...,s0)=P(st+1∣st)P(s_{t+1} | s_t, s_{t-1}, ..., s_0) = P(s_{t+1} | s_t)

  • 示例:自动驾驶汽车的决策只依赖当前传感器信息,而不依赖历史轨迹。

2. 马尔可夫链

  • 定义:基于马尔可夫属性的离散时间随机过程,状态转移遵循特定概率分布。

  • 状态转移矩阵(Transition Matrix)

    • 描述从一个状态转移到另一个状态的概率。

    • 例如,在机器人路径规划中,某个位置到下一个位置的概率矩阵。

3. 时间与状态空间的离散/连续

  • 时间离散 vs. 连续

    • 离散时间:回合制游戏,逐步决策。

    • 连续时间:自动驾驶,实时调整方向和速度。

  • 状态空间离散 vs. 连续
    • 离散状态:棋盘游戏,有限状态集合。
    • 连续状态:自动驾驶中的位置、速度等。

 

有监督学习:

在有标记的数据集上训练模型,目标是预测未知数据的结果。模型通过已知的标签调整参数,以便提高预测精度。强化学习中的数据并非来自静态的样本集合,而是通过智能体与动态环境的持续交互产生的。智能体根据环境反馈的奖励或惩罚(即奖惩机制)来调整其决策策略,最终目标是学会一套能最大化长期回报的策略。

无监督学习:

没有标签的数据,模型从数据的分布和结构中发现潜在模式,如聚类或降维。

应用领域:

游戏、自动驾驶、机器人学、金融交易系统等需要智能决策的领域

(二)深度学习

深度学习是一种利用多层神经网络来处理复杂数据的机器学习方法,它可以从图像、语音、文本等多维数据中提取有用的特征,实现识别、分类、生成等功能。

特征:

机器学习全自动;黑盒

从历史数据预测未来数据,不会适应新变化

瞬时学习

应用领域:

计算机视觉、自然语言处理、图像识别

二、深度强化学习(Deep Learning)

深度强化学习结合了深度学习的特征提取能力和强化学习的决策能力,可以直接根据输入的多维数据做出最优决策输出,是一种端对端(end-to-end)的决策控制系统。

深度强化学习通过与环境不断地进行实时交互,将环境信息作为输入来获取失败或成功的经验来更新决策网络的参数,从而学习到最优决策。

 

几个关键概念:

  • 智能体(agent):是一个决策系统,可以根据当前的状态(state)选择一个动作(action),并从环境中获得一个奖励(reward)。
  • 环境 :就是智能体所处的世界,可以根据智能体的动作改变自身的状态,并给出相应的奖励。可以是游戏、机器人控制系统,甚至是股票市场。
  • 策略(policy):是一个从状态到动作或者动作概率的映射函数,表示智能体如何选择动作的规则。
  • 状态 :描述环境在某一时刻的情况。比如在游戏中,状态可能包括玩家的位置、血量等信息。
  • 动作 :智能体可以采取的行为。比如在游戏中移动、攻击等。
  • 奖励 :环境给予智能体的反馈,表示环境对智能体动作好坏的反馈信号,通常是一个标量值,用来评价动作的好坏。
  • 策略(policy):是一个从状态到动作或者动作概率的映射函数,表示智能体如何选择动作的规则。
  • 价值函数(value function):是一个从状态或者状态-动作对到期望收益(expected return)的映射函数,表示智能体在某个状态或者状态-动作对下未来能够获得的平均收益。
  • 收益(return):是一个表示智能体从某个时刻开始未来所有奖励之和的量,通常会对未来奖励进行折扣(discount),以表示不同时刻奖励对当前时刻的贡献程度。


深度强化学习的基石:Q-learning

Q-learning 是强化学习中的一个经典算法,也是深度强化学习的基础。

核心思想是:通过不断尝试和学习,估算出在每个状态下采取不同动作的价值(Q值)。

    # Q-learning 更新公式Q(s,a)=Q(s,a)+α*(r+γ*max(Q(s', a'))-Q(s,a))
  • Q(s, a)

     是当前状态 s 下采取动作 a 的价值

  • α

     是学习率,决定了新知识的学习速度

  • r

     是即时奖励

  • γ

     是折扣因子,权衡了即时奖励和长期收益

  • max(Q(s', a'))

     是下一个状态的最大 Q 值

就是根据新的经验来更新我们对某个动作价值的估计。


传统的 Q-learning 在状态空间很大时就不太好使了。

深度神经网络就派上用场了,近似 Q 值函数,处理更复杂的问题。

经验回放是深度强化学习中的一个重要技巧。

简单来说,就是把智能体的经历(状态、动作、奖励、下一个状态)存储起来,然后随机抽取一些经验进行学习。

主要是为了打破经验之间的相关性,让学习更稳定。如果你只根据最近的经历来学习,很容易被短期的情况误导。但是如果你能回顾过去的各种经历,学到的东西就会更全面。

应用领域:

  • 在计算机视觉领域,深度强化学习可以用于图像分类、目标检测、图像语义分割等任务。

  • 在语音识别领域,深度强化学习可以用于语音识别、语音合成等任务。

  • 在自然语言处理领域,深度强化学习可以用于文本分类、命名实体识别、机器翻译、对话系统等任务。

  • 在推荐系统领域,深度强化学习可以用于个性化推荐、协同过滤等任务。

  • 在金融领域,深度强化学习可以用于风险评估、信用评分等任务。

  • 在医疗领域,深度强化学习可以用于医学图像分析、疾病诊断等任务。

  • 在机器人控制领域,深度强化学习可以用于实现对机器人的行为控制,如在2D和3D的模拟环境中让机器人走路、跑步、跳跃等。

  • 在视频游戏领域,深度强化学习可以用于让智能体在复杂的游戏环境中达到或超越人类水平,如在Atari 2600游戏中使用深度Q网络(DQN),在围棋游戏中使用AlphaGo和AlphaGo Zero,在StarCraft II游戏中使用AlphaStar,在Dota 2游戏中使用OpenAI Five等。

  • 在导航领域,深度强化学习可以用于让智能体在不同的地图和场景中实现自主导航,如在迷宫中寻找出口,在城市道路中规划最优路径,在室内环境中避开障碍物等。

  • 在多智能体协作领域,深度强化学习可以用于让多个智能体之间实现有效的协调和合作,如在足球游戏中让智能体组成一个团队,在交通信号控制中让智能体协同优化交通流量,在无人机编队中让智能体保持一致性等。

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

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

相关文章

99.20 金融难点通俗解释:中药配方比喻马科维茨资产组合模型(MPT)

目录 0. 承前1. 核心知识点拆解2. 中药搭配比喻方案分析2.1 比喻的合理性 3. 通俗易懂的解释3.1 以中药房为例3.2 配方原理 4. 实际应用举例4.1 基础配方示例4.2 效果说明 5. 注意事项5.1 个性化配置5.2 定期调整 6. 总结7. 代码实现 0. 承前 本文主旨: 本文通过中…

笔灵ai写作技术浅析(四):知识图谱

知识图谱(Knowledge Graph)是一种结构化的知识表示方式,通过将知识以图的形式进行组织,帮助AI系统更好地理解和利用信息。在笔灵AI写作中,知识图谱技术被广泛应用于结构化组织各种领域的知识,使AI能够根据写作主题快速获取相关的背景知识、概念关系等,从而为生成内容提供…

基于python的Kimi AI 聊天应用

因为这几天deepseek有点状况,导致apikey一直生成不了,用kimi练练手。这是一个基于 Moonshot AI 的 Kimi 接口开发的聊天应用程序,使用 Python Tkinter 构建图形界面。 项目结构 项目由三个主要Python文件组成: 1. main_kimi.py…

python算法和数据结构刷题[5]:动态规划

动态规划(Dynamic Programming, DP)是一种算法思想,用于解决具有最优子结构的问题。它通过将大问题分解为小问题,并找到这些小问题的最优解,从而得到整个问题的最优解。动态规划与分治法相似,但区别在于动态…

JavaFX - 3D 形状

在前面的章节中,我们已经了解了如何在 JavaFX 应用程序中的 XY 平面上绘制 2D 形状。除了这些 2D 形状之外,我们还可以使用 JavaFX 绘制其他几个 3D 形状。 通常,3D 形状是可以在 XYZ 平面上绘制的几何图形。它们由两个或多个维度定义&#…

wax到底是什么意思

在很久很久以前,人类还没有诞生文字之前,人类就产生了语言;在诞生文字之前,人类就已经使用了语言很久很久。 没有文字之前,人们的语言其实是相对比较简单的,因为人类的生产和生活水平非常低下,…

从理论到实践:Linux 进程替换与 exec 系列函数

个人主页:chian-ocean 文章专栏-Linux 前言: 在Linux中,进程替换(Process Substitution)是一个非常强大的特性,它允许将一个进程的输出直接当作一个文件来处理。这种技术通常用于Shell脚本和命令行操作中…

Python 中最大堆和最小堆的构建与应用:以寻找第 k 大元素为例

引言 在数据处理和算法设计中,堆(Heap)是一种非常重要的数据结构。它是一种特殊的完全二叉树,具有高效的插入和删除操作特性,时间复杂度为 O ( log ⁡ n ) O(\log n) O(logn)。堆主要分为最大堆和最小堆,…

使用Avalonia UI实现DataGrid

1.Avalonia中的DataGrid的使用 DataGrid 是客户端 UI 中一个非常重要的控件。在 Avalonia 中,DataGrid 是一个独立的包 Avalonia.Controls.DataGrid,因此需要单独通过 NuGet 安装。接下来,将介绍如何安装和使用 DataGrid 控件。 2.安装 Dat…

21款炫酷烟花代码

系列专栏 《Python趣味编程》《C/C趣味编程》《HTML趣味编程》《Java趣味编程》 写在前面 Python、C/C、HTML、Java等4种语言实现21款炫酷烟花的代码。 Python Python烟花① 完整代码:Python动漫烟花(完整代码) ​ Python烟花② 完整…

为什么LabVIEW适合软硬件结合的项目?

LabVIEW是一种基于图形化编程的开发平台,广泛应用于软硬件结合的项目中。其强大的硬件接口支持、实时数据采集能力、并行处理能力和直观的用户界面,使得它成为工业控制、仪器仪表、自动化测试等领域中软硬件系统集成的理想选择。LabVIEW的设计哲学强调模…

Cmake学习笔记

cmake的使用场景和功能:cmake 的诞生主要是为了解决直接使用 makeMakefile 这种方式无法实现跨平台的问题,所以 cmake 是可以实现跨平台的编译工具这是它最大的特点。cmake 仅仅只是根据不同平台生成对应的 Makefile,最终还是通过 make工具来…

计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

应用层概述: 功能: 常见协议 应用层与其他层的关系 网络应用模型 C/S模型: 优点 缺点 P2P模型: 优点 缺点 DNS系统: 基本功能 系统架构 域名空间: DNS 服务器 根服务器: 顶级域…

基于WiFi的智能照明控制系统的设计与实现(论文+源码)

1系统方案设计 本设计智能照明控制系统,结合STM32F103单片机、光照检测模块、显示模块、按键模块、太阳能板、LED灯模块、WIFI模块等器件构成整个系统,在功能上可以实现光照强度检测,并且在自动模式下可以自动调节照明亮度,在手动…

openRv1126 AI算法部署实战之——TensorFlow TFLite Pytorch ONNX等模型转换实战

Conda简介 查看当前系统的环境列表 conda env list base为基础环境 py3.6-rknn-1.7.3为模型转换环境,rknn-toolkit版本V1.7.3,python版本3.6 py3.6-tensorflow-2.5.0为tensorflow模型训练环境,tensorflow版本2.5.0,python版本…

【react+redux】 react使用redux相关内容

首先说一下,文章中所提及的内容都是我自己的个人理解,是我理逻辑的时候,自我说服的方式,如果有问题有补充欢迎在评论区指出。 一、场景描述 为什么在react里面要使用redux,我的理解是因为想要使组件之间的通信更便捷…

JAVA安全—反射机制攻击链类对象成员变量方法构造方法

前言 还是JAVA安全,哎,真的讲不完,太多啦。 今天主要是讲一下JAVA中的反射机制,因为反序列化的利用基本都是要用到这个反射机制,还有一些攻击链条的构造,也会用到,所以就讲一下。 什么是反射…

vim交换文件的作用

1.数据恢复:因为vim异常的退出,使用交换文件可以恢复之前的修改内容。 2.防止多人同时编辑:vim检测到交换文件的存在,会给出提示,以避免一个文件同时被多人编辑。 (vim交换文件的工作原理:vim交换文件的工作…

无用知识之:std::initializer_list的秘密

先说结论,用std::initializer_list初始化vector,内部逻辑是先生成了一个临时数组,进行了拷贝构造,然后用这个数组的起终指针初始化initializer_list。然后再用initializer_list对vector进行初始化,这个动作又触发了拷贝…

CoRAG 来自微软与人大的创新RAG框架技术

微软与人大合作开发的CoRAG(Chain-of-Retrieval Augmented Generation)是一种创新的检索增强生成(RAG)框架,旨在通过模拟人类思考方式来提升大语言模型(LLM)在复杂问题上的推理和回答能力。以下是对CoRAG的深度介绍: 1. CoRAG的核心理念 CoRAG的核心思想是通过动态调…