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

前言

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

深度学习是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.mzph.cn/bicheng/69814.shtml

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

相关文章

string类(详解)

为什么学习string类? 1.1 C语言中的字符串 C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想&#xf…

【Redis】set 和 zset 类型的介绍和常用命令

1. set 1.1 介绍 set 类型和 list 不同的是,存储的元素是无序的,并且元素不允许重复,Redis 除了支持集合内的增删查改操作,还支持多个集合取交集,并集,差集 1.2 常用命令 命令 介绍 时间复杂度 sadd …

一些计算机零碎知识随写(25年2月)

今天复习 MySQL 的时候,我突然冒出一个想法:能不能远程连接 MySQL 呢?虽说心里清楚理论上可行,但一直没实际操作过。 于是,起床后我立马打开服务器,准备启动 MySQL。结果,这一启动就发现问题了&…

ESP32-c3实现获取土壤湿度(ADC模拟量)

1硬件实物图 2引脚定义 3使用说明 4实例代码 // 定义土壤湿度传感器连接的模拟输入引脚 const int soilMoisturePin 2; // 假设连接到GPIO2void setup() {// 初始化串口通信Serial.begin(115200); }void loop() {// 读取土壤湿度传感器的模拟值int sensorValue analogRead…

Java 大视界 -- Java 大数据在量子通信安全中的应用探索(69)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

86.(2)攻防世界 WEB PHP2

之前做过&#xff0c;回顾一遍&#xff0c;详解见下面这篇博客 29.攻防世界PHP2-CSDN博客 既然是代码审计题目&#xff0c;打开后又不显示代码&#xff0c;肯定在文件里 <?php // 首先检查通过 GET 请求传递的名为 "id" 的参数值是否严格等于字符串 "admi…

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

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

【数据结构】初识链表

顺序表的优缺点 缺点&#xff1a; 中间/头部的插入删除&#xff0c;时间复杂度效率较低&#xff0c;为O(N) 空间不够的时候需要扩容。 如果是异地扩容&#xff0c;增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间&#xff0c;会有不小的消耗。 扩容可能会存在…

增删改查(CRUD)操作

文章目录 MySQL系列&#xff1a;1.CRUD简介2.Create(创建)2.1单行数据全列插入2.2 单行数据指定插入2.3 多⾏数据指定列插⼊ 3.Retrieve(读取)3.1 Select查询3.1.1 全列查询3.1.2 指定列查询3.1.3 查询字段为表达式&#xff08;都是临时表不会对原有表数据产生影响&#xff09;…

使用Pygame制作“贪吃蛇”游戏

贪吃蛇 是一款经典的休闲小游戏&#xff1a;玩家通过操控一条会不断变长的“蛇”在屏幕中移动&#xff0c;去吃随机出现的食物&#xff0c;同时要避免撞到墙壁或自己身体的其他部分。由于其逻辑相对简单&#xff0c;但可玩性和扩展性都不错&#xff0c;非常适合作为新手练习游戏…

JavaScript闭包深入剖析:性能剖析与优化技巧

一、引言 在 JavaScript 的奇妙世界里&#xff0c;闭包无疑是一个既强大又迷人的特性。它就像是一把万能钥匙&#xff0c;为开发者打开了实现各种高级功能的大门。从数据封装与保护&#xff0c;到函数的记忆化&#xff0c;再到模块化开发&#xff0c;闭包都发挥着举足轻重的作…

蓝桥杯嵌入式赛道备考1 —— 基础GPIO实战

1. 点亮一个LED 蓝桥杯的板子资料的URL&#xff0c;笔者是从GitHub - JoyRiderJie/LanQiaoBei-QianRuShi拉去下来的。这个是Github仓库地址。 从应用层去玩一个开发板子&#xff0c;首先需要的是去尝试是点亮一个LED。让我们切换到手册《CT117E——产品手册》的第11页&#x…

浅析DNS污染及防范

DNS污染&#xff08;DNS Cache Poisoning&#xff09;是一种网络攻击手段&#xff0c;通过篡改DNS服务器的缓存数据&#xff0c;将域名解析结果指向错误的IP地址&#xff0c;从而误导用户访问恶意网站或无法访问目标网站。这种攻击利用了DNS协议的特性&#xff0c;例如“只认第…

AI编程:如何编写提示词

这是小卷对AI编程工具学习的第2篇文章&#xff0c;今天讲讲如何编写AI编程的提示词&#xff0c;并结合实际功能需求案例来进行开发 1.编写提示词的技巧 好的提示词应该是&#xff1a;目标清晰明确&#xff0c;具有针对性&#xff0c;能引导模型理解问题 下面是两条提示词的对…

linux asio网络编程理论及实现

最近在B站看了恋恋风辰大佬的asio网络编程&#xff0c;质量非常高。在本章中将对ASIO异步网络编程的整体及一些实现细节进行完整的梳理&#xff0c;用于复习与分享。大佬的博客&#xff1a;恋恋风辰官方博客 Preactor/Reactor模式 在网络编程中&#xff0c;通常根据事件处理的触…

【思维导图】并发编程

学习计划&#xff1a;将目前已经学的知识点串成一个思维导图。在往后的学习过程中&#xff0c;不断往思维导图里补充&#xff0c;形成自己整个知识体系。对于思维导图里的每个技术知识&#xff0c;自己用简洁的话概括出来&#xff0c; 训练自己的表达能力。 并发和并行的区别 并…

【B站保姆级视频教程:Jetson配置YOLOv11环境(四)cuda cudnn tensorrt配置】

Jetson配置YOLOv11环境&#xff08;4&#xff09;cuda cudnn tensorrt配置 文章目录 0. 简介1. cuda配置&#xff1a;添加cuda环境变量2. cudnn配置3. TensorRT Python环境配置3.1 系统自带Python环境中的TensorRT配置3.2 Conda 虚拟Python环境中的TensorRT配置 0. 简介 官方镜…

【深度分析】DeepSeek 遭暴力破解,攻击 IP 均来自美国,造成影响有多大?有哪些好的防御措施?

技术铁幕下的暗战&#xff1a;当算力博弈演变为代码战争 一场针对中国AI独角兽的全球首例国家级密码爆破&#xff0c;揭开了数字时代技术博弈的残酷真相。DeepSeek服务器日志中持续跳动的美国IP地址&#xff0c;不仅是网络攻击的地理坐标&#xff0c;更是技术霸权对新兴挑战者的…

如何在数据湖中有效治理和管理“数据沼泽”问题,提高数据的可发现性和利用率?

在数据湖中有效治理和管理“数据沼泽”问题&#xff0c;提高数据的可发现性和利用率&#xff0c;需要从多个方面入手&#xff0c;包括数据治理、元数据管理、数据质量控制、安全性保障以及生命周期管理等。以下是具体的策略和方法&#xff1a; 1. 构建强大的数据治理框架 数据…

【4Day创客实践入门教程】Day3 实战演练——桌面迷你番茄钟

Day3 实战演练——桌面迷你番茄钟 目录 Day3 实战演练——桌面迷你番茄钟1. 选择、准备元件、收集资料2. 硬件搭建3.编写代码 Day0 创想启程——课程与项目预览Day1 工具箱构建——开发环境的构建Day2 探秘微控制器——单片机与MicroPython初步Day3 实战演练——桌面迷你番茄钟…