强化学习(Q-learning)

article/2025/8/22 19:13:42

强化学习RF简介

强化学习是机器学习中的一种重要类型,一个其中特工通过 执行操作并查看查询查询结果来学习如何在环境中表现行为。
请添加图片描述
机器学习算法可以分为3种:有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning),如下图所示:
在这里插入图片描述有监督学习、无监督学习、强化学习具有不同的特点:

有监督学习是有一个label(标记)的,这个label告诉算法什么样的输入对应着什么样的输出,常见的算法是分类、回归等;
无监督学习则是没有label(标记),常见的算法是聚类;
强化学习强调如何基于环境而行动,以取得最大化的预期利益。

主要学习内容:
强化学习是什么,奖励思想。
强化学习的三种途径。
深度强化学习的“深”是什么意思

强化学习基础知识

①强化学习是做出最佳决策的科学。它可以帮助我们制定活的物种所表现出的奖励动机行为。比方说,你想让一个孩子坐下来学习考试。要做到这一点非常困难,但是如果每次完成一章/主题时都给他一块巧克力,他就会明白,如果他继续学习,他会得到更多的巧克力棒。所以他会有一些学习考试的动机。
②孩子代表着Agent代理 。奖励制度和考试代表了Environment环境。今天的题目是类似于强化学习的States状态。所以,孩子必须决定哪些话题更重要(即计算每种行为的价值)。这将是我们的工作的 Value-Function价值方程。所以,每次他从一个国家到另一个国家旅行时,他都会得到Reward奖励,他用来在时间内完成主题的方法就是我们的Policy决策。

与其他机器学习的不同

没有主管在场。所以,没有人会告诉你最好的行动。您只需为每个动作获得奖励。
时间的重要性。强化学习不同于其他您接收随机输入的范例时对顺序数据的关注。这里下一步的输入将始终取决于之前状态的输入。
延迟奖励的概念。您可能无法在每一步获得奖励。只有在完成整个任务后才能给予奖励。另外,假设你只是在一个步骤中获得奖励,才能发现你在未来的一步中犯了大错。
代理人行为影响其下一个输入。说,你可以选择向左或向右。在你采取行动之后,如果你选择了正确的而不是离开,下一步的输入将会不同。

简单实例请添加图片描述

与环境相互作用的学习来自我们的自然体验。想象一下,你是一个起居室里的孩子。你看到一个壁炉,然后你接近它。请添加图片描述
这是温暖的,这是积极的,你感觉很好(正面奖励+1)。你明白,火是一件好事。请添加图片描述
但是,然后你尝试触摸火灾。哎哟! 它烧你的手(负面奖励-1)。你刚刚明白,当你离开足够的距离时,火是正面的,因为它会产生温暖。但太接近它,你会被烧毁。
这就是人类通过互动学习的方式。强化学习只是一种从行动中学习的计算方法。

强化学习过程

请添加图片描述
agent从环境中收集机器人的初始状态S0;
基于S0状态,采取行动A0;
转换到新的环境,状态S1;
从环境中获取奖励R1,以此循环。
{S0,A0,R1,S1,A1,R2,S2,…}

这意味着Agent处于状态S0并且采取行动A0,从而导致其获得奖励R1并处于状态S1; 那么它执行了A1,收到奖励R2,最后进入状态S2; 那么它执行了A2,收到奖励R3,并最终进入状态S3、、、等等。我们把这种互动的历史看作是一系列经验的体验,其中经验是一个元组: ⟨S,A,R,S⟩。

相应的Q-LEARNING算法就是由一些列的【状态、动作、奖励】组成,Agent的最终目标是最大限度地提高总体的回报。

Q函数 状态动作函数请添加图片描述

在Q -值函数包含了两个可以操作的因素。

首先是一个学习率 learning rate(alpha),它定义了一个旧的Q值将从新的Q值哪里学到的新Q占自身的多少比重。值为0意味着代理不会学到任何东西(旧信息是重要的),值为1意味着新发现的信息是唯一重要的信息。

下一个因素被称为折扣因子discount factor(伽马),它定义了未来奖励的重要性。值为0意味着只考虑短期奖励,其中1的值更重视长期奖励。
请添加图片描述
在这里插入图片描述

主要算法

  1. Sarsa

Q 为动作效用函数(action-utility function),用于评价在特定状态下采取某个动作的优劣,可以将之理解为智能体(Agent)的大脑。
SARSA 利用马尔科夫性质,只利用了下一步信息, 让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新。
s 为当前状态,a 是当前采取的动作,s’ 为下一步状态,a’ 是下一个状态采取的动作,r 是系统获得的奖励, α 是学习率, γ 是衰减因子。

  1. Q learning

Q Learning 的算法框架和 SARSA 类似, 也是让系统按照策略指引进行探索,在探索每一步都进行状态价值的更新。关键在于 Q Learning 和 SARSA 的更新公式不一样。

  1. Policy Gradients

系统会从一个固定或者随机起始状态出发,策略梯度让系统探索环境,生成一个从起始状态到终止状态的状态-动作-奖励序列,s1,a1,r1,…,sT,aT,rT,在第 t 时刻,我们让 gt=rt+γrt+1+… 等于 q(st,a) ,从而求解策略梯度优化问题。

  1. Actor-Critic

算法分为两个部分:Actor 和 Critic。Actor 更新策略, Critic 更新价值。Critic 就可以用之前介绍的 SARSA 或者 Q Learning 算法。

  1. Monte-carlo learning

用当前策略探索产生一个完整的状态-动作-奖励序列:
s1,a1,r1,…,sk,ak,rk∼π
在序列第一次碰到或者每次碰到一个状态 s 时,计算其衰减奖励,最后更新状态价值。

  1. Deep-Q-Network

DQN 算法的主要做法是 Experience Replay,将系统探索环境得到的数据储存起来,然后随机采样样本更新深度神经网络的参数。它也是在每个 action 和 environment state 下达到最大回报,不同的是加了一些改进,加入了经验回放和决斗网络架构。

参考资料
强化学习简介【An introduction to Reinforcement Learning】

强化学习的基础知识【The very basics of Reinforcement Learning】

计算机如何学习使用Q学习来计算预期的未来回报?

培训一名软件代理人,以加强学习的合理行为【Train a software agent to behave rationally with reinforcement learning】
强化学习:Q-learning由浅入深:简介1 - wiliken的文章 - 知乎
https://zhuanlan.zhihu.com/p/35724704
强化学习:Q-learning由浅入深:入阶2 - wiliken的文章 - 知乎
https://zhuanlan.zhihu.com/p/35770507

人工智能学习笔记一之强化学习(Q-learning)


http://chatgpt.dhexx.cn/article/I3FCQjXC.shtml

相关文章

强化学习简介

强化学习简介 强化学习(Reinforcement Learning,RL)是机器学习中的一个领域,是学习做什么(即如何把当前的情景映射成动作)才能使得数值化的收益最大化,学习者不会被告知应该采取什么动作,而是必须自己通过尝试去发现哪…

强化学习(一):简介——什么是强化学习?

本文将介绍强化学习的基本含义,了解什么是强化学习、强化学习的概念与基本框架以及强化学习中常见的问题类型。 什么是强化学习? 强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习&#xff0c…

机器学习算法(三十):强化学习(Reinforcement Learning)

目录 1 简介 1.1 什么是强化学习 1.2 强化学习的主要特点 1.3 强化学习的组成部分 2 强化学习训练过程 3 强化学习算法归类 3.1 Value Based 3.2 Policy Based 3.3 Actor-Critic 3.4 其他分类 4 EE(Explore & Exploit)探索与利用 5 强化…

强化学习入门这一篇就够了!!!万字长文

强化学习 强化学习入门这一篇就够了万字长文带你明明白白学习强化学习... 强化学习入门这一篇就够了 强化学习前言一、概率统计知识回顾1.1 随机变量和观测值1.2 概率密度函数1.3 期望1.4 随机抽样 二、强化学习的专业术语2.1 State and action2.2 policy-策略2.3 reward2.4 状…

关于gensim的一些使用记录

NLP神器 Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。 支持包括TF-IDF,潜在语义分析(Latent Semantic Analysis,LSA),潜狄利克…

gensim官方文档实践笔记

中文文档比机翻还颠三倒四, 所以还是自己记录一下, 顺便加一些注解. 目录 文档document 语料库Corpus 语料库作用 语料库预处理 词汇编号 向量Vector 方法1: 特征向量(vector of features) 方法2: doc2bow 模型Model 语料库和向量空间 字符串转向量 语料库流Corpu…

gensim安装

输入以下命令即可: pip install gensim -i http://pypi.douban.com/simple --trusted-host pypi.douban.com以下是过程: 尝试1:直接在anaconda3上面搜索出来安装 速度太慢,失败 尝试2:更换pip源,如下所示…

Gensim:一款进行文本主题识别的 Python 工具库

从大量文本中自动提取人们谈论的主题(主题识别)是自然语言处理的基本应用之一。大型文本示例包括社交媒体订阅、消费者对酒店、电影和其他业务的评价、用户评论、新闻和客户发来的邮件。 在本中,将使用LDA 从 20Newsgroup 数据集 中提取主题的实战案例。欢迎深入探…

gensim 快速入门 Word2Vec

文章目录 gensim的核心概念Word2Vec简介Word2Vec初试探将单词可视化 训练自己的Word2Vec模型 gensim的核心概念 Document: 文档。可以是一个一句话,或者一段话Corpus: 文档的集合Vector: 文档向量。将文档通过数学向量表示。Model: 模型。将文档转换为向量的模型。…

vue获得焦点事件处理函数中控制其失去焦点,但是失去焦点后该获得焦点事件一直被触发

当input获取焦点的时候需要判断另一个操作是否已完成,否则需要引导用户先去执行另一个操作,是则允许输入。 另一个操作跟当前操作是在同一个页面上,无法通过“下一步”进行控制。 解决思路是: 当input获取焦点的时候&#xff0…

div失去焦点事件onblur()无效

初学js事件&#xff0c;想做一个点击时变红&#xff0c;取消聚焦时变白的div&#xff0c;于是我这样写代码&#xff1a; <div style"width: 100px;height: 50px;border: 1px solid;"></div> <script>let div document.getElementsByTagName(&quo…

input失去焦点事件和点击事件冲突的解决思路

首先说一下应用场景 el-input框为禁用状态时&#xff0c;点击取消禁用&#xff0c;并显示后方两个按钮&#xff0c; 点击绿色按钮保存input框当前值&#xff0c;失去焦点或点击红色框时恢复改变前的值 思路就是不在input上的失去焦点方法&#xff0c;而是手动调用失去焦点方法…

input中blur失去焦点事件与点击事件冲突

场景&#xff1a; 当在输入框里输入手机号的时候&#xff0c;输入框高亮&#xff0c;并且关闭按钮显示&#xff0c;input失焦时关闭按钮隐藏 现象&#xff1a; 遇到的问题是&#xff0c;当我们点击关闭按钮清空input框数据时&#xff0c;发现只是关闭按钮隐藏了&#xff0c…

div失去焦点事件onblur()不触发解决方法

需求&#xff1a; 做一个弹出框组件&#xff0c;文字点击时会在文字下方弹出一个框&#xff0c;在vue3中监听div元素的blur事件发现事件并不会在div失去焦点时触发 解决方法 bug原因&#xff1a;在vue中div默认不触发事件,除非将元素添加tabindex"-1"属性才会触发…

JavaScript学习(二十一)——表单相关事件(焦点事件)

表单事件实际上就是对元素获得或失去焦点的动作进行控制。可以利用表单事件来改变获得或失去焦点的元素样式&#xff0c;这里所指的元素可以是同一类型&#xff0c;也可以是多个不同类型的元素。 获取焦点与失去焦点事件 获得焦点事件(onfocus) 是当某个元素获得焦点时触发事件…

特征工程 - 数据分析 - 峰度 and 偏度

特征工程 - 数据分析 - 峰度 and 偏度 偏度峰度 偏度 偏度&#xff08;Skewness&#xff09;用来描述数据分布的对称性。 当偏度 <0 时&#xff0c;称为负偏&#xff0c;数据出现左侧长尾&#xff1b;当偏度>0时&#xff0c;称为正偏&#xff0c;数据出现右侧长尾。 正态…

python金融分析小知识(6)——偏度与峰度的计算

Hello 大家好&#xff0c;我是一名新来的金融领域打工人&#xff0c;日常分享一些python知识&#xff0c;都是自己在学习生活中遇到的一些问题&#xff0c;分享给大家&#xff0c;希望对大家有一定的帮助&#xff01; 相信大家在平时的统计分析中&#xff0c;一定会用到数组偏…

使用Excel计算峰度(Kurtosis)和偏度(Skewness)

峰度&#xff08;Kurtosis&#xff09;和偏度&#xff08;Skewness&#xff09; 峰度是描述总体中所有取值分布形态陡缓程度的统计量。计算公式是&#xff1a; 在Excel中的公式是&#xff1a;KURT 因为是与标准正态分布比较&#xff0c;而标准正态分布的四阶矩为3&#xff0c;…

Resnet解读

pytorch的resnet模块在torchvision的models中。 里面可以选择的resnet类型有&#xff1a; _all_列表的每一个resnet都提供了实现的函数&#xff1a; def resnet18(pretrainedFalse, progressTrue, **kwargs):"""Constructs a ResNet-18 model.Args:pretrained …

ResNet算法

Daily learning2 Q1&#xff1a;过拟合&#xff08;overfitting&#xff09;&#xff0c;欠拟合&#xff08;underfitting&#xff09;&#xff1f; A1:欠拟合&#xff1a;根本原因是特征维度过少&#xff0c;模型过于简单&#xff0c;导致拟合的函数无法满足训练集&#xff0c…