Q Learning学习笔记

2023-11-06

Q Learning学习笔记

这两天跟着莫烦大神的视频将强化学习(Reinforcement Learning)中的Q Learning学了一遍,颇有收获,便记录于此,希望大家不吝赐教,欢迎补充纠错。

一、什么是强化学习?

​ 强化学习是一类算法,是让计算机实现从一开始完全随机的进行操作,通过不断地尝试,从错误中学习,最后找到规律,学会了达到目的的方法。这就是一个完整的强化学习过程。让计算机在不断的尝试中更新自己的行为,从而一步步学习如何操作,使自己的行为得到高分。

​ 它主要包含四个元素,Agent、环境状态、行动、奖励,强化学习的目标就是获得更多的累计奖励。


二、强化学习方法分类

  1. Model-free 和 Model-based

    如果不理解环境,环境给了什么就是什么,我们就把这种方法叫做 Model-free,这里的 Model 就是用模型来表示环境,理解环境就是学会了用一个模型来代表环境,所以这种就是 Model-based 方法。

  2. 基于概率和基于价值

    基于概率是强化学习中最直接的一种,根据概率采取行动,所以每种动作都有可能被选中,只是概率不同。而基于价值的方法输出则是所有动作的价值,根据最高价值来选择动作。

  3. 回合更新和单步更新

    假设强化学习就是在玩游戏,游戏回合有开始和结束。回合更新指的是游戏开始后,需要等待游戏结束再总结这一回合,再更新我们的行为准则。而单步更新则是在游戏进行中每一步都在更新,不用等待游戏的结束,这样边玩边学习。

  4. 在线学习和离线学习

    所谓在线学习,就是指必须本人在场,并且一定是本人一边行动边一学习。而离线学习是你可以选择自己行动,也可以选择看着别人行动,通过看别人行动来学习别人的行为准则,离线学习 同样是从过往的经验中学习,但是这些过往的经历没必要是自己的经历,任何人的经历都能被学习。

在以上分类中,Q Learning的特征可以用下面的一张图来表述:
在这里插入图片描述


三、Q Learning算法

Q Learning只是强化学习众多方法中的一种,并且是很有名的一类算法,这里主要讲Q Learning,强化学习中其他方法比如Sarsa、Deep Q Network、Policy Gradient等就不在这里赘述了。想要通过生活中的例子入门的可以去看莫大神写的小孩写作业、看电视的场景,帮助我们更好地理解Q Learning.

Q Learning整体算法

在这里插入图片描述

不想看密密麻麻的英文的可以看下面我做的几张PPT截图:
在这里插入图片描述
在这里插入图片描述

上面图片的解释:这只是一次迭代过程,经过众多次迭代、一步步去学习,就会训练得到一个表现良好的Q表,这个Q表会指导我们在每个状态选择最佳动作。
Epsilon Greedy 是用在选择动作上的一种策略,比如 epsilon = 0.9 时, 就说明有 90% 的情况我会按照 Q 表的最优值选择行为,10% 的时间使用随机选行为。如果不根据这些策略去选取动作,只是简单地根据选择此状态下Q值最大的,那么其他动作就没有机会得到执行,它们的Q值也就无法更新,也就达不到训练优化的目的,就极有可能陷入局部最优。这样做的目的是让其有机会跳出局部最优。
在这里插入图片描述

PS:alpha是学习率,来决定这次的误差有多少要被学习的,alpha是一个小于1 的数。gamma 是对未来 reward 的衰减值。


暂时写到这里,等我想到什么再补充上去。

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

Q Learning学习笔记 的相关文章

  • Daphne Django 文件上传大小限制

    我使用 Daphne 进行套接字和 http 连接 我正在运行 4 个工作容器 并且现在在 docker 容器中本地运行所有内容 如果我尝试上传 400MB 的文件 我的 daphne 服务器会失败 它适用于最大 15MB 的小文件 我的
  • 字符串中数字的连续相加

    我是一名正在学习 python 的新程序员 并且在如何完成此任务方面遇到了困难 所以本质上我有一个从文件导入的数字字符串需要读取 并且需要将第一个数字的总和添加到第二个数字并将其转换为正确的 ascii 字符 因此 例如 如果我正在读取字符
  • 如何将魔杖图像对象转换为 numpy 数组(不使用 OpenCV)?

    我正在使用将 pdf 文件转换为图像Wand http docs wand py org en 0 4 4 然后 我使用 ndimage 进行进一步的图像处理 我想直接将 Wand 图像转换为 ndarray 我已经看到答案here htt
  • python解释器自动重启而不返回答案

    调用递归函数时 python解释器会自动重新启动吗 我正在编写一个快速排序算法 并尝试对一个大的数字数组 顺序 10 4 进行排序 但是当我尝试对整个数组进行排序时 python 正在重新启动 即给我 重新启动 并且存储在内存中的所有值 函
  • 无法启动 Windows 快捷方式

    我正在尝试使用 python 启动 Windows 我已经尝试了 os system subprocess call os startfile 等多种方法 但总是收到错误消息 指出路径不存在 我知道路径是正确的 因为我尝试在 CMD EXE
  • [matplotlib]:理解“set_ydata”方法

    我试图了解如何使用 set ydata 方法 我在 matplotlib 网页上找到了很多示例 但我只找到了 set ydata 被 淹没 在大型且难以理解的代码中的代码 我想要一个简短且易于理解的代码来帮助我理解 set ydata 的工
  • 获取每行最后 150 行中所有正值的计数 - pandas

    我有以下数据集 其中有列Date and Values对于每一行 它两者都有 ve and ve价值观 我必须计算最后 150 行的所有正值 在每一行 因此前 150 行将具有空值 然后 以下行将具有最后 150 行的计数 ve行 类似地
  • 谷歌colab录音,如何实现更精确的方式告诉用户开始对着麦克风说话

    我正在尝试创建一个为机器学习项目录制音频的程序 我想使用 google colab 这样人们就不必在他们的系统上安装或运行任何东西 我在网上找到了这个录制和播放音频的示例 单元格 1 包含用于录制音频的 js 代码和用于将其转换为字节对象的
  • Django 模板:输出带有所有小数位的浮点数

    我如何在 django 模板中输出这个数字 小数位数是可变的 我事先不知道 x 0 000015 1 x 输出是 1 5e 05 2 x stringformat f 输出是 0 000015 这不是本地化的 应该有逗号 我需要对输出进行本
  • Python列表错误还是我错了?

    我构建了一个 3 级嵌套列表 run on Python 3 2 3 32 bit on Win 7 L2 list 0 for i in range 2 L3 list L2 for i in range 3 L4 list L3 for
  • setUp() 中的 if 条件忽略测试

    在unittest python库中 存在函数setUp and tearDown用于设置变量和其他测试前后的事情 如何运行或忽略 setUp 中条件的测试 您可以致电if cond self skipTest reason in setU
  • Spyder 内联绘图

    设置 Anaconda 2 0 0 Win 64 Spyder Anaconda 附带的 2 3 0rc 我配置图形 工具 gt 首选项 gt iPython 控制台 gt 图形 gt 图形后端 gt 内联 但无论我做什么 图形总是在单独的
  • 无法使用python和beautifulsoup抓取网页中的某些href

    我目前正在使用 Python 3 4 和 bs4 爬取网页 以收集塞尔维亚在里约 2016 年的比赛结果 所以网址here http rio2016 fivb com en volleyball women teams srb serbia
  • Django Admin Media 前缀 URL 问题

    我有以下文件夹结构 src BAT templates admin base html src BAT media base css src BAT media admin media base css 设置 py MEDIA ROOT o
  • 从值数组中计算 sympy 表达式

    我正在尝试 sympy 但遇到了一个无法解决的问题 使用 scipy 我可以编写一个表达式并计算 x 值数组 如下所示 import scipy xvals scipy arange 100 100 0 1 f lambda x x 2 f
  • 在Python中设置Windows命令行终端标题

    我在 Windows 计算机上运行某个 Python 脚本的多个实例 每个实例都来自不同的目录并使用单独的 shell 窗口 不幸的是 Windows 为每个 shell 窗口提供了相同的名称
  • 带有远程解释器的 Python 控制台无法在 PyCharm 中接受输入

    我是使用 PyCharm 进行远程开发的新手 我设置了一个远程环境 除了一个例外之外它工作正常 无法在控制台中接受用户输入 在控制台中运行以下语句时 控制台被阻塞 提示 上一个命令仍在运行 请等待或按控制台中的 Control C 来中断
  • 使用 Pandas 来“applymap”来访问索引/列?

    解决以下 pandas 问题的最有效方法是什么 这是一个简化的示例 其中包含数据框中的一些数据 import pandas as pd import numpy as np df pd DataFrame np random randint
  • 与仅调用依赖函数/类相比,在 FastAPI 中使用 Depends 有哪些优点?

    FastAPI 提供了way https fastapi tiangolo com tutorial dependencies 通过其自己的依赖关系解析机制来管理依赖关系 例如数据库连接 它类似于一个pytest夹具系统 简而言之 您在函数
  • pyodbc 无法正确处理 unicode 数据

    我确实使用 pyodbc 成功连接了 MySQL 数据库 并且它可以很好地处理 ascii 编码的数据 但是当我打印使用 unicode utf8 编码的数据时 它引发了错误 UnicodeEncodeError ascii codec c

随机推荐

  • Spring ApplicationContextAware 获取bean

    Spring 获取 bean spring最重要的功能是作为bean容器 方便的提供bean的初始化和存取服务 我们使用spring 也正是为了避免自己去创建或者管理对象 因此应该尽量从spring容器中去拿bean 而不是自己去new 如
  • OpenGL的Context(Profile)

    OpenGL在渲染的时候需要一个Context 这个Context记录了OpenGL渲染需要的所有信息 可以把它理解成一个大的结构体 它里面记录了当前绘制使用的颜色 是否有光照计算以及开启的光源等非常多我们使用OpenGL函数调用设置的状态
  • 命令行卸载java_卸载java

    有小伙伴经常会遇到Java没有卸载干净的情况 造成重新安装JDK能正常安装 接着安装JRE的时候总是报1603错误 虽然说JRE安装报错了没安装上 但是eclipse IntelliJ IDEA和AndroidStudio都能正常打开和使用
  • 实时音频编解码之二编码学数学知识

    本文谢绝任何形式转载 谢谢 1 3 编码数学算法 1 3 1 定点和浮点 编码的一些参数是经过定标和量化的 然后再将其送入区间编码器进一步压缩数据量 为了降低执行编解码的内存和算力要求 Opus编码器中很多地方使用了Q定标方式将浮点数转化为
  • DTMF通信系统设计—基于MATLAB和STM32

    文章目录 1 摘要 2 设计任务 3 课程设计主要解决的问题 4 设计内容 4 1 整体设计方案 4 2 详细设计内容 5 结果与分析 5 1 基于MATLAB 的DTMF 通信系统 5 2 双机通信模拟 5 2 基于单片机的DTMF 通信
  • C语言堆排序

    堆排序 Heapsort 是一种在时间复杂度上达到了最优的基于比较的排序算法 堆排序算法是指利用堆这种数据结构所设计的一种排序算法 堆积是一个近似完全二叉树的结构 并同时满足堆积的性质 即子节点的键值或索引总是小于 或者大于 它的父节点 堆
  • 为什么想来我们公司工作?- 面试常见问题解析

    在面试的过程中 你的面试官可能会问你这样一个问题 你为什么想在我们公司工作 这是面试最常见的问题之一 这个问题看似简单 但回答时一定要提前有所准备 一般来说 面试官在面试时提问这个问题是希望通过应聘者的回答来衡量应聘者对他们公司的感兴趣程度
  • 综述:运动目标跟踪算法

    运动目标跟踪算法总结 1 传统的目标跟踪算法 运动目标跟踪 首先对目标进行有效地表达 然后在接下来的视频序列的每一帧中找到相似度与目 标最大的区域 从而确定目标在当前帧中的位置 早期的生成式方法主要有两种思路 1 依赖于目标外观模型 通过对
  • 华为2018校园招聘(提前批) 笔试 输出ascii最小的最长连续字符串

    题目 给定一串字符 里面有些字符有连续出现的特点 请寻找这些连续字符串中最长的串 如果最长的串有多个 请输出ascii最小的个 思路 利用start和end来记录当前连续出现的子字符串的起始位置 如果当前字符串长度 gt 历史最大长度或者两
  • 【OpenCV学习笔记】【算法学习】一(模板匹配)

    include
  • OpenCV的常用函数

    OpenCV的常用函数 1 imread函数 2 namedWindow函数 3 imshow函数 4 输出图像到文件 imwrite函数 1 imread函数 首先 我们看imread函数 可以在OpenCV官方文档中查到其原型如下 Ma
  • 2023年交通与智慧城市国际会议ICoTSC 2023

    会议日期 2023 5 26 至 2023 5 28 会议简介 2023年交通与智慧城市国际会议 ICoTSC 2023 重要信息 会议网址 www icotsc org 会议时间 2023年7月28 30日 召开地点 长沙 截稿时间 20
  • Unity3D相关面试题

    Unity3D相关面试题 第一部分 1 请简述值类型与引用类型的区别 2 C 中所有引用类型的基类是什么 3 请简述ArrayList和List的主要区别 4 请简述GC 垃圾回收 产生的原因 并描述如何避免 5 请描述Interface与
  • 一个简洁的cublasSmatinvBatched应用示例

    可以简单地粘贴放入一个cuBLAS sample的文件中替代运行 一个简介的cublasSmatinvBatched 示例 Includes system include
  • Mindmanager如何可以取消自动首字母大写

    主页 字体 设置字体样式 格式字体 文本和大写 文本大写 无 参考网址 https tieba baidu com p 3752136361
  • SSM整合框架(spring+spring MVC)

    SSM整合框架 spring spring MVC 1 创建数据库配置文件database propreties driver com mysql jdbc Driver url jdbc mysql localhost 3306 数据库名
  • 编译安装webos

    一 安装手册 https www openwebosproject org docs build guide UwLO5mKSzlA 二 安装步骤 1 安装依赖库 sudo apt get update sudo apt get insta
  • raise NoReverseMatch("%s is not a registered namespace" % key)

    很蛋疼 第一次仿照写django项目也是出现这个问题 现在又跟着追梦人物的博客又写了一遍 昨晚因为这个问题搞到晚上一点多 出现的问题 raise NoReverseMatch s is not a registered namespace
  • MySQL主从复制(主:linux Redhat MySQL 5.1;从:win10,MySQL5.5)

    MySQL主从复制 主 linux Redhat MySQL 5 1 从 win10 MySQL5 5 主MySQL设置 从MySQL设置 查看主服务状态 show master status 注意事项 主MySQL设置 在linux中的
  • Q Learning学习笔记

    Q Learning学习笔记 这两天跟着莫烦大神的视频将强化学习 Reinforcement Learning 中的Q Learning学了一遍 颇有收获 便记录于此 希望大家不吝赐教 欢迎补充纠错 文章目录 Q Learning学习笔记