电子科技大学人工智能期末复习笔记(二):MDP与强化学习

2023-10-26

目录

前言

期望最大搜索(Expectimax Search)

⭐马尔科夫决策(MDP)——offline(超重点)

先来看一个例子

基本概念 

政策(Policy)

折扣(Discounting)

如何停止循环?

价值迭代(Value Iteration) 

例题 

固定策略(Fixed Policies)

策略提取(Policy Extraction)

策略迭代(Policy Iteration)

策略迭代和价值迭代的比较

强化学习(Reinforcement Learning, RL)——online

简介

基于模型的强化学习(Model-Based RL,MBRL)

无模型强化学习(Model-Free RL,MFRL)

直接评估(Direct Evaluation)

时间差分学习(Temporal Difference Learning)

主动强化学习(Active Reinforcement Learning)

Q-Learning 

探索与利用 


前言

本复习笔记基于李晶晶老师的课堂PPT与复习大纲,供自己期末复习与学弟学妹参考用。

上一节中,我们提到了Minimax是一种悲观算法,即考虑最坏的情况(Worst Case)从而使损失最小化。然而在实际操作过程中,对手并不是始终能做到最优决策,会有一定概率的失误,因此我们应当计算平均能得到的分数。

当不确定的结果会偶然出现时,也就是在不确定性搜索(Non-Deterministic Search)下,我们的算法就需要做出调整。


期望最大搜索(Expectimax Search)

在前言的条件下,对手不一定足够smart去得到最优解,因此,我们将对手节点视作chance nodes,它具有一定的概率去实行一定的策略,此时的策略是使得expected utility最大。值现在应该反映平均情况(预期)结果,而不是最坏情况(最小)结果。上一节提到的minimax实际上是expected max的一种概率为1或0的特例。

▪期望搜索:计算平均分数下最优玩法

▪最大节点和Minimax一致

▪机会节点类似Minimax的最小节点但结果不确定

▪计算他们的预期效用

▪即加权平均(期望)子节点

注意:在expectimax中最好不要进行剪枝操作,因为min层的计算需要依据下一层的每一个值(如果概率不是非0即1那种)

选择minimax策略的agent总是过于悲观,因此分数不会太高,但胜率会很高;而选择expectimax策略的agent过于乐观(比如万一有一种情况分数很高但概率相对不高,在计算的结果中,导致此算出来的期望值很高,agent会选择这种策略,但事实上,opponent很有可能选择其他路并且令agent分数减少)


⭐马尔科夫决策(MDP)——offline(超重点)

MDP是一个五元组<S,A,T,R,γ>——状态空间、行为、状态转移概率、奖励、折扣因子

先来看一个例子

只有一个主体,存在障碍,惩罚出口和奖励出口,主体可以任意移动但是有概率出现偏差移动,如果移动碰到墙体则呆在原地,每行动一步会有小的存活奖励(正/负/0都可).。

我们的目标是使主体得到的分数最大化。 

如下图,以前的决策是左边的情况,而现在要解决的是随机问题

基本概念 

这就要用到马尔科夫决策过程(MDP)

▪MDP定义为:

▪一组状态集S

▪一组动作集A

▪一个过渡函数T(s,a,s')

        ▪从状态s到状态s'的概率,例如,P(s'|s, a)

        ▪也称为模型或动态

▪奖励函数R(s,a,s')

        ▪有时只是R (s)或R (s')

▪一个起始状态

▪也许存在结束状态

▪马尔科夫决策过程,“马尔科夫”意味着行动结果只取决于当前状态

▪这就类似搜索,后继函数只能取决于当前状态(而非历史状态)

▪MDPs是非确定性搜索问题

▪解决它们的一种方法是期望最大搜索

政策(Policy)

在确定性单代理搜索问题,我们想要一个从起始节点到目标节点的最优计划,或序列的行动。

在MDP中,我们需要一个最优政策\pi ^{*}:S\rightarrow A,它在每一个状态下都给出一个动作,并且尝试在最后得到最大的效益,显式的策略定义了主体的反应倾向,如下图:

能观察到,在不同的生存奖励下,主体的行动倾向都有所不同。 

折扣(Discounting)

如上图,当生存奖励的负分偏小时,在更为危险的地块中agent会宁愿选择一直对墙试错从而让自己滑行到两侧而非冒险按正确的朝向走,这可能会与我们的实际预期不符,因为它走做了太多无用的动作。这时我们就要给奖励添加折扣,让agent尽可能快的拿到最大的奖励:

▪最大化奖励的总和是合理的

▪更喜欢马上获得的奖励而非以后的奖励也是合理的

▪一个解决方案:奖励的值呈指数衰减

例如,折扣为0.5时,U([1,2,3]) < U([3,2,1])。

U([1,2,3]) = 1*1 + 0.5*2 + 0.25*3 U([3,2,1]) = 1*3 + 0.5*2 + 0.25*1  

例如

在状态d时,γ为多少时往左或右的收益一致?

解: 10\cdot \gamma ^{3}= 1\cdot \gamma,解得γ=\frac{1}{\sqrt{10}} 。

如何停止循环?

如果一个游戏可以一直进行,怎么让它停下来并呈现出我们的分数?

1. 可以设置在进行n步之后必须结束游戏(life/生命周期

2. 可以设置动态变化的政策,例如随着可用步数的减少,政策随之变化

3. 可以设置折扣,到最后奖励值会趋于收敛,当分数变化小于某个临界时可以结束游戏 

4. 可以设置一个“吸收节点”,当进入这个节点时必须退出游戏,这个节点在前面的阶段不会进入,但到后面终将有可能进入这个状态。

价值迭代(Value Iteration) 

  • 起始价值和为0,因为还没有开始迭代
  • 给定某一向量的价值,开始向后迭代

  • 重复迭代直至收敛

 

值迭代缺点

  • 速度慢——每次迭代时间复杂度 O(S²A)
  • 每个状态的“最大值”很少改变
  • policy通常早在values之前收敛

 

举例:汽车运行问题

例题 


固定策略(Fixed Policies)

固定每一步的action由函数π(s)得到,那么V值计算如下,其实和价值迭代没太大区别


策略提取(Policy Extraction)

在知道每一步的最优价值V*(s)时,还需要进行一个arg max()操作来求得执行哪个action会得到此最优价值

 


策略迭代(Policy Iteration)

包括两部分:

 策略评估:对于固定策略π ,通过策略评估得到V值,迭代直至v值收敛

策略提升:对于固定策略的V值,使用策略提取获得更好的策略:

局限:在不知道T和R时无法更新V

idea:对结果 s'(通过做动作!)和平均值进行采样


策略迭代和价值迭代的比较

两者本质上都是计算最优value,都是用于解决MDP的动态程序

价值迭代:

  • 每次迭代都更新value和policy
  • 不跟踪policy,但在选择最大Q值时会隐式的重新计算他

策略迭代:

  • 使用固定策略进行了几次更新实用程序的传递(每次传递都很快,因为我们只考虑一个动作,而不是所有动作)
  • After the policy is evaluated, a new policy is chosen(慢如值迭代传递)
  • 新policy会更优

强化学习(Reinforcement Learning, RL)——online

简介

强化学习与MDP的区别就在于:我们不明确转化函数和奖励函数的具体内容,必须切实地去尝试以后才能得出结论!

所以说,强化学习是一种在线学习方式,只能靠自己试错来得出正确的决策。 

基于模型的强化学习(Model-Based RL,MBRL)

  • step1.通过training过程,计算状态转移矩阵T()和动作reward R(),通过学习得到经验MDP模型

  • step2. 使用价值迭代或策略迭代求解最优values

过程:

1. 选出所有状态

2. 用模型模拟转移函数

3. 模拟奖励函数并且得出价值

4. 用MDP完成剩余的价值迭代等工作

例题:

无模型强化学习(Model-Free RL,MFRL)

直接评估(Direct Evaluation)

计算当前政策下所有动作的价值, 将观察到的样本值作平均

  • 根据政策做出动作
  • 每次遇到一种情形, 都把(折扣)奖励加起来
  • 平均这些样本, 得到直接评估结果

例题:

计算过程:

A = [-10] / 1 =10

B = [(-1-1+10)+(-1-1+10)]/2 = +8

C = [(-1+10)+(-1+10)+(-1+10)+(-1-10)]/4 = +4

D = [10+10+10]/3 = +10

E = [(-1-1+10)+(-1-1-10)]/2 = -2

优点:简单易理解;不需要计算T、R;最终你那个计算出正确的平均value

缺点:浪费了状态连接的信息,每个状态必须单独学习,会花费较长时间学习

时间差分学习(Temporal Difference Learning)

从每段经验中学习 

  • 每次经过一个转移函数(动作)就更新V(s)
  • 以至于新的状态将会为更新策略作出更多贡献
  • 政策固定, 始终作评估
  • 将当前值提供给任何一个后继者并作平均

例题:

计算过程:

 

主动强化学习(Active Reinforcement Learning)

Q-Learning 

我们可以计算出下一个状态的价值并取最大值,但我们也可以计算Q-state(Q状态)的值, 在我理解, 它属于一个未决策的中间态(更关注当前状态和动作), 计算出它的值可以帮助我们决策, 并且更加有用。

如果知道转化函数和奖励函数:

如果不知道:

取一个实例,作为转化函数与奖励函数的值来迭代。

Q-Learning的属性

即使没有按最优方式迭代,Q-Learning也始终能够最终迭代为最优结果(非政策学习) 

  • 前提条件:
    • 你必须探索足够的次数
    • 你必须最终使学习率足够小
    • 但不要太快减少它
    • 不管你如何选择行动,要求基本上在限制下内 

探索与利用 

我们通常利用各种函数来帮助我们得出价值等数值帮助决策行为,但这样也不一定是最优解,需要偶尔去进行探索,但在什么条件下进行探索呢?

  • 有几种方案可以强迫探索
  • 最简单:随机行动(ε-贪婪)
    • 每次行动,随机一次(使ε为0到1之间的任意数,每次随机出一个0到1的数与它比较)
    • 比ε小,行动随机
    • 比ε大,行动按当前策略
  • 随机行动的问题?
    • 我们最终会探索其他可能性,但必须在学习完成后继续研究
    • 解决方案:随着时间的推移降低ε

总结

我们已经看到了人工智能方法如何解决以下问题:

▪搜索

▪约束满足问题

▪博弈

▪马尔可夫决策问题

▪强化学习 

下一节:一阶逻辑

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

电子科技大学人工智能期末复习笔记(二):MDP与强化学习 的相关文章

  • 利用CHAT写实验结论

    问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
  • 矩阵基本操作

    问题描述 已知一个n n的矩阵 方阵n lt 100 把矩阵主副对角线上的元素值加上x 然后输出这个新矩阵 输入格式 一行两个变量 用空格隔开 代表n和x 接下来的n行每行n列 表示矩阵的数值 用空格隔开 输出格式 输出新矩阵 每个数字5个
  • 用CHAT分析高校体育智慧教学体系构建与探索研究现状

    CHAT回复 现阶段 高校体育智慧教学体系的构建与探索研究还处于初级阶段 但全球数字化转型大潮的推动下 一些较为前沿的研究和实践已经开始出现 1 教学平台的建设 很多高校已经开始尝试使用在线教育平台进行体育教学 把传统的面对面授课模式转变为
  • ​LeetCode解法汇总82. 删除排序链表中的重复元素 II

    目录链接 力扣编程题 解法汇总 分享 记录 CSDN博客 GitHub同步刷题项目 https github com September26 java algorithms 原题链接 力扣 LeetCode 描述 给定一个已排序的链表的头
  • 【毕业设计选题】复杂背景下的无人机(UVA)夜间目标检测系统 python 人工智能 深度学习

    前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大家顺利通过和节省时间
  • 毕业设计:基于卷积神经网络的图像分类系统 python人工智能

    目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 2 1 卷积神经网络 2 2 SVM算法 三 检测的实现 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力
  • 性能大减80%,英伟达芯片在华“遇冷”,我方霸气回应:不强求

    中国这么大一块市场 谁看了不眼馋 在科技实力大于一切的今天 高端芯片的重要性不言而喻 作为半导体产业发展过程中不可或缺的一环 芯片技术也一直是我国技术发展的一大 心病 在美西方等国的联手压制下 我国芯片技术发展处处受阻 至今也未能在高端芯片
  • 2024 人工智能与大数据专业毕业设计(论文)选题指导

    目录 前言 毕设选题 选题迷茫 选题的重要性 更多选题指导 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生
  • 华为OD机试2024年最新题库(Java)

    我是一名软件开发培训机构老师 我的学生已经有上百人通过了华为OD机试 学生们每次考完试 会把题目拿出来一起交流分享 重要 2024年1月 5月 考的都是OD统一考试 C卷 题库已经整理好了 命中率95 以上 这个专栏使用 Java 解法 问
  • 如何用GPT进行论文润色与改写?

    详情点击链接 如何用GPT GPT4进行论文润色与改写 一OpenAI 1 最新大模型GPT 4 Turbo 2 最新发布的高级数据分析 AI画图 图像识别 文档API 3 GPT Store 4 从0到1创建自己的GPT应用 5 模型Ge
  • 不要再苦苦寻觅了!AI 大模型面试指南(含答案)的最全总结来了!

    AI 大模型技术经过2023年的狂飙 2024年必将迎来应用的落地 对 IT 同学来讲 这里蕴含着大量的技术机会 越来越多的企业开始招聘 AI 大模型岗位 本文梳理了 AI 大模型开发技术的面试之道 从 AI 大模型基础面 AI 大模型进阶
  • 人工智能 AI 如何让我们的生活更加便利

    每个人都可以从新技术中获益 一想到工作或生活更为便利 简捷且拥有更多空余时间 谁会不为之高兴呢 借助人工智能 每天能够多一些空余时间 或丰富自己的业余生活 为培养日常兴趣爱好增添一点便利 从电子阅读器到智能家居 再到植物识别应用和智能室内花
  • 「优选算法刷题」:快乐数

    一 题目 编写一个算法来判断一个数 n 是不是快乐数 快乐数 定义为 对于一个正整数 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 也可能是 无限循环 但始终变不到 1 如果这个过程 结果为 1 那么这个
  • 【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 有 无策略奖励 2 2 训练结果1
  • CorelDRAW2024官方中文版重磅发布更新

    35年专注于矢量设计始于1988年并不断推陈出新 致力为全球设计工作者提供更高效的设计工具 CorelDRAW 滋养并见证了一代设计师的成长 在最短的时间内交付作品 CorelDRAW的智能高效会让你一见钟情 CorelDRAW 全称 Co
  • 史上最全自动驾驶岗位介绍

    作者 自动驾驶转型者 编辑 汽车人 原文链接 https zhuanlan zhihu com p 353480028 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 求职交流 技术交流群 本
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 考虑光伏出力利用率的电动汽车充电站能量调度策略研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据
  • 深度学习(5)--Keras实战

    一 Keras基础概念 Keras是深度学习中的一个神经网络框架 是一个高级神经网络API 用Python编写 可以在TensorFlow CNTK或Theano之上运行 Keras优点 1 允许简单快速的原型设计 用户友好性 模块化和可扩
  • 实力认证!鼎捷软件荣膺“领军企业”和“创新产品”两大奖项

    近日 由中国科学院软件研究所 中科软科技股份有限公司联合主办的 2023中国软件技术大会 于北京成功举办 本届大会以 大模型驱动下的软件变革 为主题 数十位来自知名互联网公司和软件巨头企业的技术大咖 不同领域行业专家 畅销书作者等分享嘉宾

随机推荐

  • IO作业day5

    1 gt 使用两个线程完成两个文件的拷贝 主线程拷贝前一半内容 子线程拷贝后一半内容 并且主线程要阻塞回收子线程资源 2 gt 使用三个进程完成两个文件的拷贝 主线程拷贝前三分之一 子线程1拷贝中间三分之一 子线程2拷贝后三分之一 主线程要
  • 使用 Android 开发 MQTT 客户端

    MQTT 代表消息队列遥测传输 它是一种功能强大的消息传输协议 主要用于机器对机器 M2M 和物联网 IoT 通信上下文 MQTT 在这些情况下是首选 因为它易于实施 并且非常适合资源有限的设备 在本文中 我们将开发一个使用 MQTT 协议
  • c语言结构体简单试题,C语言6结构体练习题6

    第六章 结构体 1 下面对结构变量的叙述中错误的是 A 相同类型的结构变量间可以相互赋值 B 通过结构变量 可以任意引用它的成员 C 结构变量中某个成员与这个成员类型相同 的简单变量间可相互赋值 D 结构变量与简单变量间可以赋值 2 有枚举
  • 如何实现算法中的公平性

    机器学习的公平性问题近几年受到越来越多的关注 该领域出现了一些新的进展 机器学习训练在涉及到性别 种族等与人相关的敏感属性时 常常会由于统计性偏差 算法本身甚至是人为偏见而引入歧视性行为 由此 为消除差别影响 改进机器学习公平性 主要途径包
  • 在jsp中实现表格内设置滚动框

    当我们在页面中需要放置多条数据时 滚动框则将是一个十分不错的选择 在需要加入滚动框的表格内设置标签 table tbody style display block tbody table
  • 利用Python实现卷积神经网络的可视化

    对于深度学习这种端到端模型来说 如何说明和理解其中的训练过程是大多数研究者关注热点之一 这个问题对于那种高风险行业显得尤为重视 比如医疗 军事等 在深度学习中 这个问题被称作 黑匣子 Black Box 如果不能解释模型的工作过程 我们怎么
  • C#网络编程,多个客户端连接服务器端并发送消息

    最近学习进度到了C 网络编程 在学习这一章节的知识点 写了一些小demo 此次发表的为服务器监听端口 和多个客户端连接 获取多个客户端发来的消息 服务器端代码 using System Net using System Net Socket
  • SQL Server迭代求和

    drop table t geovindu create table t geovindu xid int IDENTITY 1 1 price money DebitCredit VARCHAR 2 adate datetime defa
  • Android学习之 Scroller的介绍与使用

    类概述 Android里Scroller类是为了实现View平滑滚动的一个Helper类 通常在自定义的View时使用 在View中定义一个私有成员mScroller new Scroller context 设置mScroller滚动的位
  • 微服务工程搭建过程中的注意点

    1 父工程pom xml文件 1 父工程的maven坐标 2 packaging使用pom 原因 在Spring Cloud微服务工程中 通常会采用多模块的方式进行开发 父工程的pom文件中的packaging标签设置为pom 是因为父工程
  • Spring Framework 入门(一)

    Spring Framework各模块作用介绍 可以参考spring framework的github项目 源码地址 https github com spring projects spring framework 下面我们分别了解下各个
  • SQL所有关键字及其作用:

    以下是MySQL的所有关键字及其作用 ADD 在表中添加新的列或索引 ALL 返回满足条件的所有行 包括重复行 ALTER 修改表的结构 如添加 修改或删除列 ANALYZE 分析并收集表的统计信息 用于优化查询 AND 用于多条件查询的逻
  • wedo2.0编程模块介绍_西门子S7-200 SMART硬件和编程软件简介

    前文给大家简单的讲介绍了一下PLC编程涉及的一些概念型知识 本文开始实践 今天带来的是SIMATIC S7 200 SMART硬件和编程软件简介 SIMATIC S7 200 SMART 是西门子公司经过大量市场调研 为中国客户量身定制的一
  • Java 多线程 --- 按序打印

    Java 多线程 按序打印 方法1 控制变量 使用volatile关键字优化 方法2 synchronized wait notifyAll 方法3 信号量 给你一个类 public class Foo public void first
  • 【深度学习】参数量、模型大小、显存

    对于一个深度学习神经网络来说 其通常包含很多卷积层 用于不断提取目标的特征 或对目标进行最终定位或者分类 1 数据存储精度与存储空间 在深度学习神经网络中 最常见的数据格式是float32 占4个字节 Byte 类似地 float16 占2
  • std::condition_variable

    std condition variable std condition variable 是C 11提供的条件变量 可用于同时阻塞一个线程或多个线程 一般的 生产者线程利用支持std mutex的std lock guard std un
  • 【React Hook】一文让你彻底明白何为State Hook?

    使用 State Hook 下面的例子介绍了 Hook import React useState from react function Example 声明一个叫 count 的 state 变量 const count setCoun
  • 如何解除计算机的启动项,UEFI安全启动怎么关闭 关闭UEFI启动项的方法图解

    大家都知道现在很多电脑都预装win8系统 其系统都开启了UEFI安全启动选项 然而 对于不习惯win8操作界面的朋友来说 可能就会把win8改为win7 但是我们得知道Win8改装Win7需要在BIOS下关闭UEFI选项 如果OS选项已经关
  • ctfshow-萌赛

    目录 web 签到 给她 假声赛 web 签到 很明显的命令执行漏洞 我们把前后闭合即可 payload 1 ls 1 1 cat flag 1 给她 根据题目提示很容易就想到是 git泄露 直接用gitHack扫描题目地址 git 发现存
  • 电子科技大学人工智能期末复习笔记(二):MDP与强化学习

    目录 前言 期望最大搜索 Expectimax Search 马尔科夫决策 MDP offline 超重点 先来看一个例子 基本概念 政策 Policy 折扣 Discounting 如何停止循环 价值迭代 Value Iteration