【挑战全网最易懂】深度强化学习 --- 零基础指南

深度强化学习介绍、概念

    • 强化学习介绍
      • 离散场景,使用行为价值方法
      • 连续场景,使用概率分布方法
      • 实时反馈连续场景:使用概率分布 + 行为价值方法
    • 强化学习六要素
      • 设计奖励函数
      • 设计评论家
      • 策略学习与优化
    • 算法路径
      • 深度 Q 网络 DQN
      • 演员-评论家算法:多智能体强化学习核心框架
      • PPO 近端策略优化算法

强化学习介绍

机器学习是把带标签的数据训练模型,使得预测值尽可能接近真实值。

强化学习是通过和环境交互,奖励来训练模型,使得最后获取的奖励最大期望值。

在强化学习中,机器基于环境做出行为,正确的行为能够获得奖励。

以获得更多奖励为目标,实现机器与环境的最优互动。

如教狗子握手的时候,如果狗子正确握手,就能得到骨头奖励,不握手就没有。

如果咬了主人一口,还会受到惩罚。

长此以往,狗子为了得到更多骨头,就能学会握手这个技能。

强化学习和机器学习最大不同在于,环境未知。

因为环境未知,所以我们不能通过大量数据得到决策。

只能通过和环境的交互中,不断改进策略。

强化学习的发展历史:

  • 动态规划:学过数据结构与算法的人,都了解,是传统算法策略中最难的,千变万化。
  • 表格方法:时序差分、Q-Learning 、SARSA
  • 函数逼近:线性函数逼近、多项式函数逼近、基函数逼近
  • 深度强化学习:DQN、DDPG、AlphaStar、A2C、A3C、PPO

强化学习可分为离散、连续场景。

离散场景,使用行为价值方法

离散场景:机器行为的有限的,如动作类游戏。只有向上、向下、向左、向右这 4 个动作,移动也只能一格一格地走。

可以把每个状态下的所有行为列举出来,用评论家为每个行为打分,通过选择最高分的行为实现最优互动。

因为需要评估每个行为的价值,所以这种学习方法被称为基于行为价值的方法。

基于值的方法需要根据每个行为的价值进行打分,选出价值最高的行为。

由于要穷举出所有行为,因此它只适用于离散场景(动作类游戏),无法应对连续场景。

Q-Learning 和 DQN 算法,都属于基于值的强化学习方法。

优势在于,基于行为价值的方法能实时反馈。

可以根据每个行为的价值进行打分,这个分数就相当于每个行为的实时反馈。

连续场景,使用概率分布方法

连续场景:机器的行为是连贯的,如赛车的方向盘转动角度可以在一定区间内任意取值,角度之间可以无限分割。

还有基于行为概率的方法,无需根据每个行为的价值来打分,可以很好地胜任连续场景。

基于行为概率策略的方法并不需要考虑行为的价值,而是反应调整。

机器会在训练过程中随机抽取一些行为,与环境互动。如果行为获得了奖励,就会提高选择它的概率。以后遇到同样的状态时,有更高的概率再次做出这个行为。

相反,如果未获得奖励,或者受到了惩罚,就保持或者降低该行为的概率。

经过大量训练,最终会得出连续行为的概率分布。

基于这样的原理,一个行为能获得越多奖励,被选择的概率就越大,从而实现机器和环境的最优化互动。

PPO、演员-评论家 就是能处理连续场景的算法。

优势在于,基于策略的方法能应用连续场景上。但不能实时反馈。

实时反馈连续场景:使用概率分布 + 行为价值方法

机器在与环境互动时,难以得到实时反馈,往往要在整个回合结束后才能获得奖励。

如赢一盘棋是正向奖励,输一盘棋是负面奖励,但棋局中某一颗棋子的价值很难即时评估。

想要提高学习效率,就必须想办法提供实时反馈。

有没有办法可以在应对连续场景上的优点,和离散场景在实时反馈上的优点结合呢?

比如演员-评论家算法。

这个算法分成两半,一半是演员,另一半是评论家。

  • 演员:这一半基于概率分布,策略梯度算法。它有一个神经网络,可以根据行为的概率,选出行为。

  • 评论家:这一半基于行为价值,DQN 算法。它有一个神经网络,可以根据行为的价值进行打分。

将概率分布和行为价值的方法相结合:

  • 由基于概率分布的策略网络在连续场景中选出行为
  • 由基于行为价值的价值网络给行为提供实时反馈

概率分布网络就像写作业的学生,行为价值网络就像批改作业的老师。

二者结合,反复地写作业、改作业,对比方法,找出最好的方法。

 


强化学习六要素

强化学习六要素:环境、策略、状态、行为、奖励、评论家。

如在对弈的环境中,策略根据棋盘上的状态,做出落子行为,每盘棋的胜负获得奖励

模拟足够多棋局后,评论家就可以通过计算预测出每步棋对整盘棋的价值,为其打分。

在强化学习中,容易混淆的概念有:状态奖励函数、状态价值函数、动作奖励函数、动作价值函数。

设计奖励函数

奖励函数直接与环境相连,为算法提供即时的反馈。

奖励函数有两种类型:

  • 状态奖励函数:为智能体到达或处于特定状态时提供的即时奖励。如走迷宫,到达出口可能立即给予正奖励。

  • 动作奖励函数:为执行特定动作而提供的即时奖励。如下棋,吃掉对方的重要棋子可能立即获得奖励。

设计评论家

评论家(或价值函数)在强化学习中用于评估和指导策略的长期效益,基于累积奖励的概念。

  • 状态价值函数(V):评估处于某一特定状态的长期价值。这涉及对从该状态开始,未来可能获得的所有奖励的估计。
  • 动作价值函数(Q):评估在特定状态下执行特定动作的长期价值。这不仅包括即时奖励,还包括因该动作产生的后续状态和未来可能的奖励。

状态奖励函数、状态价值函数关注到达某状态的价值 - 前者是当下回报、后者是长期回报。

动作奖励函数、动作价值函数关注执行某动作的价值 - 前者是当下回报、后者是长期回报。

奖励函数提供即时反馈,价值函数预估长期收益。

策略学习与优化

通过与环境的交互,不断更新策略和价值函数来改进决策。

  • 学习:根据奖励和评论家的反馈,调整策略和价值函数。
  • 探索与利用:平衡 是尝试新动作(探索更好的动作)还是 利用已知的好动作(利用已知最好)。

算法路径

深度 Q 网络 DQN

记录于 — 【OpenAI Q* 超越人类的自主系统】DQN :Q-Learning + 深度神经网络

演员-评论家算法:多智能体强化学习核心框架

记录于 — 演员-评论家算法:多智能体强化学习核心框架

PPO 近端策略优化算法

记录于 —【ChatGPT 默认强化学习策略】PPO 近端策略优化算法

 


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

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

相关文章

echarts常见的一些大屏示意图及配置项【好看】

双立体柱状图 示意图: 配置: initData() {let sideData [220, 182, 191, 234, 290, 330]let sideData1 [100, 110, 120, 134, 190, 230]let nameList [结算能力数, 结算金额]let yAxisData [(金额/亿元), (能力数/个)]let xData [1, 2, 3, 4, 5…

Anolis安装Jdk保姆级教学

前言 欢迎来到本博客,我们将带领你完成在Anolis操作系统上安装Java Development Kit(JDK)的详细过程。Anolis操作系统是一款基于Linux的轻量级操作系统,专为容器和云原生应用而设计。在Anolis上安装JDK将为你提供一个稳定、高效的…

1万亿元国债支持水利、应急行业,钡铼智能终端积极助力提升防灾抗洪建设需求

10月24日,十四届全国人大常委会第六次会议审议通过了国务院关于增加发行国债支持灾后恢复重建和提升防灾减灾救灾能力的议案。为贯彻落实中共中央政治局常委会会议精神,以强有力的资金保障有关工作落实,中央财政将在今年四季度增发2023年国债…

证明:切线垂直于半径

证明: 切线垂直于过切点的半径。 下面是网上最简单的证明方法。 证明: 利用反证法。 如下图所示,直线AB和圆O切于点A,假设OA 不垂直于 AB,而 O B ⊥ A B OB \perp AB OB⊥AB,则 ∠ O B A 90 \angle OB…

十、方法调用的底层实现

一、方法调用分析(main方法是JVM指令执行的起点) 我们写的代码,经过编译、经过类加载的各种阶段,进入了 JVM 的运行时数据区。但作为程序员真正关心是代码的执行,代码的执行其实本质上是方法的执行,站在 JV…

6、LLaVA

简介 LLaVA官网 LLaVA使用Vicuna(LLaMA-2)作为LLM f ϕ ( ⋅ ) f_\phi() fϕ​(⋅),使用预训练的CLIP图像编码器 ViT-L/14 g ( X v ) g(X_v) g(Xv​)。 输入图像 X v X_v Xv​,首先获取feature Z v g ( X v ) Z_vg(X_v) Zv​g(Xv​)。考虑到最后一…

WPF+Halcon 培训项目实战(8):WPF+Halcon初次开发

前言 为了更好地去学习WPFHalcon,我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享,想要源码或者教学视频可以和他联系一下。 相关链接 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSD…

MAC运行Windows专用软件 CrossOver v23.7.1中文版 macOS

CrossOver v23.7.1中文版是一款系统兼容软件,让您可以在 Mac 和 Linux 系统上运行 Windows 应用,不必购买 Windows 授权,不必重启系统,不必使用虚拟机。通过 CrossOver, 您可以从 dock 直接启动 Windows 应用&#xff…

Android笔记(二十三):Paging3分页加载库结合Compose的实现分层数据源访问

在Android笔记(二十二):Paging3分页加载库结合Compose的实现网络单一数据源访问一文中,实现了单一数据源的访问。在实际运行中,往往希望不是单纯地访问网络数据,更希望将访问的网络数据保存到移动终端的SQL…

pytest pytest-emoji通过表情包展示执行状态

pytest-emoji 是一个用于在 Pytest 测试运行期间显示 emoji 表情的插件。它可以为测试结果添加一些有趣的表情符号,以增加测试报告的可读性和趣味性。 使用 pytest-emoji 插件非常简单,只需按照以下步骤进行操作: 首先,确保已经安…

【数据结构】快速排序(4种方式实现)

前言:前面我们学习了几种相对比较简单的排序,今天我们要一起学习的是快速排序,我们将通过四种方式来模拟实现快排。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 👈 &#x1f4a…

K-means 聚类算法分析

算法简述 K-means 算法原理 我们假定给定数据样本 X ,包含了 n 个对象 ,其中每一个对象都具有 m 个维度的属性。而 K-means 算法的目标就是将 n 个对象依据对象间的相似性聚集到指定的 k 个类簇中,每个对象属于且仅属于一个其到类簇中心距离…