什么是Q-learning和值迭代之间的区别?

在强化学习中,Q-learning与值迭代有何不同?

我知道Q-learning是无模型的,训练样本是转换(s, a, s', r)。但由于我们知道Q-learning中的每次转换和对应的奖励,这不就和基于模型的学习一样吗?在基于模型的学习中,我们知道每个状态和动作对的奖励,以及从每个状态出发的每种动作的转换(无论是随机的还是确定的)?我不明白其中的区别。


回答:

你完全正确,如果我们知道Q-learning中每次转换的转换概率和奖励,那么我们为什么要使用它而不是基于模型的学习,或者它如何在根本上有所不同,这确实不太清楚。毕竟,转换概率和奖励是值迭代中使用的模型的两个组成部分——如果你拥有它们,你就拥有一个模型。

关键在于,在Q-learning中,智能体并不知道状态转换概率或奖励。智能体只有在执行某个动作从一个状态转移到另一个状态并获得奖励时,才会发现有奖励。同样,它只有在进入某个状态并查看其选项时,才会了解从该状态可用的转换。如果状态转换是随机的,它通过观察不同转换发生的频率来学习状态之间的转换概率。

这里可能造成混淆的一个原因是,作为程序员,你可能确切知道奖励和状态转换是如何设置的。事实上,当你首次设计一个系统时,很可能你确实知道这些,因为这对于调试和验证你的方法是否有效非常重要。但你从不告诉智能体这些信息——相反,你强迫它通过试错来自己学习。这很重要,如果你想创建一个能够进入你之前没有任何知识的新情况并弄清楚该做什么的智能体。或者,如果你不关心智能体自学的能力,如果状态空间太大而无法反复枚举,Q-learning也可能是必要的。让智能体在没有任何初始知识的情况下进行探索可能在计算上更可行。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注