> For the complete documentation index, see [llms.txt](https://ruyuanzhang.gitbook.io/compmodcogpsy/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ruyuanzhang.gitbook.io/compmodcogpsy/di-ba-zhang-qiang-hua-xue-xi/8.1-ji-qi-xue-xi-qiang-hua-xue-xi-ji-chu/8.1.4-ji-yu-mo-xing-he-wu-mo-xing-qiang-hua-xue-xi.md).

# 8.1.4 基于模型和无模型强化学习

Edited by 程练

前面的几个章节，我们分别介绍了强化学习的基本概念，以及动态规划和时间差分学习的算法。基于前面的学习，我们这里总结一下人工智能强化学习里面一对非常重要的概念: 基于模型(model-based)和无模型(model-free)的强化学习。这里的模型指的是关于环境的知识，即状态转移概率(有时候还包括奖励函数）。有模型和无模型的关键区别对环境知识是否已知。

基于模型的强化学习的代表算法就是动态规划，动态规划是一种系统化的优化方法。在强化学习的背景下，动态规划被用来通过递推的方式计算状态的价值函数或策略。动态规划需要一个已知的环境模型，包括状态转移概率和奖励函数。这意味着我们必须事先知道所有可能的状态转移及其对应的奖励。

{% hint style="info" %}
这里的环境模型和人工智能领域近几年大火的世界模型有类似的含义。前者强调，学习的agent需要理解游戏设计者给出的环境运行物理规律，而后者强调一个agent需要在不知道的情况下对我们这个客观物理世界的运行规律进行建模。
{% endhint %}

无模型的强化学习的代表算法就是时间差分学习。时间差分学习是一种通过经验来估计价值函数的算法，适用于无模型情况。TD 学习融合了蒙特卡罗方法（依赖样本进行估计）和动态规划（利用贝尔曼方程的递归性质）的方法。与动态规划不同，时间差分学习可以在智能体与环境交互时实时更新价值估计，而不需要等待完整轨迹或知道完整的环境模型。TD 学习只需通过与环境的交互采样部分状态转移，即可更新价值函数，而无需完全了解环境模型。

强化学习模型的分类可以有很多种，如果我们按照有模型和无模型来分的话，各种算法在是否基于模型的强化学习分类中如下:

<figure><img src="https://1379976374-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu8x1pCBjIDBIizdIV9Wv%2Fuploads%2F7BWLqtwUYUsVktIUQFcr%2Fimage.png?alt=media&amp;token=50e9c134-eda7-46d6-b61c-8a244abae99d" alt=""><figcaption></figcaption></figure>

在本书中，只是重点介绍了基于模型学习的动态规划，还有无模型学习的TD-learning和Q-learning。

依据上图，本书没有提及的还有强化学习的其他内容

* 搜索(searching)是基于模型的学习，主要针对状态空间过大难以穷尽的学习。例如围棋虽然规则很清楚，但是其状态是个天文数字。AlphaGo正是很巧妙了使用了蒙特卡洛树搜索算法解决了围棋问题。
* Sarsa和Q-learning一样，是TD-learning的一个具体算法例子，这个我们在后面二阶段任务中会提及。
* Google DeepMind赖以成名的DQN，就是为了解决连续状态的无模型学习任务。前面的冰湖任务一共64个离散状态，但是很多时候生活中的状态是连续而不是离散的，例如自动驾驶中的行车速度。
* 除了基于价值的学习(value-based learning)即显式的计算状态的价值函数，当前人工智能里面的强化学习模型很多时候并不需要显式的计算价值，也可以通过神经网络强大的拟合能力直接逼近策略。那么学习过程就变成了从状态输入到动作输出的端到端策略学习过程。
