强化学习简介

强化学习是机器想里面非常重要的一个派别。智能体agent会不断执行一些操作,通过结果来学习,在不同的环境中分别应该采取怎样的行动。

一些常见的算法如:
Q学习,深度Q网络 (DQN) ,策略梯度 (Policy Gradients) ,演员-评论家 (Actor-Critic) ,以及近端策略优化 (PPO)等。

奖励假说为根基

问题来了,目标为什么是预期累积奖励最大化?

因为,强化学习原本就是建立在奖励假说的基础之上。想表现好,就要多拿奖励。

每一个时间步 (time step) 的累积奖励都可以表示为:

在这里插入图片描述

或者
强化学习简介_第1张图片
不过,我们没有办法把奖励直接相加。因为游戏里,越接近游戏开始处的奖励,就越容易获得;而随着游戏的进行,后面的奖励就没有那么容易拿到了。

把智能体想成一只小老鼠,对手是只猫。它的目标就是在被猫吃掉之前,吃到最多的奶酪。
强化学习简介_第2张图片

就像图中,离老鼠最近的奶酪很容易吃,而从猫眼皮底下顺奶酪就难了。离猫越近,就越危险。结果就是,从猫身旁获取的奖励会打折扣,吃到的可能性小,就算奶酪放得很密集也没用。那么,这个折扣要怎么算呢?我们用γ表示折扣率,在0和1之间。· γ越大,折扣越小。表示智能体越在意长期的奖励 (猫边上的奶酪) 。· γ越小,折扣越大。表示智能体越在意短期的奖励 (鼠边上的奶酪) 。这样,累积奖励表示出来就是:

强化学习简介_第3张图片

简单来说,离猫近一步,就乘上一个γ,表示奖励越难获得。

片段性任务还是连续性任务

强化学习里的任务分两种。

片段性任务 (Episodic Tasks)

这类任务,有个起点,有个终点。两者之间有一堆状态,一堆行动,一堆奖励,和一堆新的状态,它们共同构成了一“集”。

当一集结束,也就是到达终止状态的时候,智能体会看一下奖励累积了多少,以此评估自己的表现。

然后,它就带着之前的经验开始一局新游戏。这一次,智能体做决定的依据会充分一些。

强化学习简介_第4张图片

以猫鼠迷宫为例的一集:

· 永远从同一个起点开始

· 如果被猫吃掉或者走了超过20步,则游戏结束

· 结束时,得到一系列状态、行动、奖励和新状态

· 算出奖励的总和 (看看表现如何)

· 更有经验地开始新游戏

集数越多,智能体的表现会越好。

连续性任务 (Continuing Tasks)

永远不会有游戏结束的时候。智能体要学习如何选择最佳的行动,和环境进行实时交互。

这样的任务是通过时间差分学习 (Temporal Difference Learning) 来训练的。每一个时间步,都会有总结学习,等不到一集结束再分析结果。

探索和开发之间的权衡

在讨论强化学习的几种方法之前,必须讲到这件事。

· 探索 (Exploration) 是找到关于环境的更多信息。
· 开发 (Exploitation) 是利用已知信息来得到最多的奖励。

要记住,目标是将预期累积奖励最大化。正因如此,它有时候会陷入一种困境。

强化学习简介_第5张图片

小老鼠可以吃到无穷多块分散的奶酪 (每块+1) 。但在迷宫上方,有许多堆在起的奶酪(+1000) ,或者看成巨型奶酪。

如果我们只关心吃了多少,小老鼠就永远不会去找那些大奶酪。它只会在安全的地方一块一块地吃,这样奖励累积比较慢,但它不在乎。

如果它跑去远的地方,也许就会发现大奖的存在,但也有可能发生危险。

程序猿需要设定一种规则,让智能体能够把握二者之间的平衡。

强化学习的三种方法

前菜吃完了,我们终于要开始讲解决强化学习问题的方法了。三种方法分别是:基于价值(value-based)、基于策略(policy-based)以及基于模型(model-based)的方法。

基于价值 (Value-Based)

这种方法,目标是优化价值函数V(s)。

价值函数会告诉我们,智能体在每个状态里得出的未来奖励最大预期 (maximum expected future reward) 。

一个状态下的函数值,是智能体可以预期的未来奖励积累总值,从当前状态开始算。

强化学习简介_第6张图片

智能体要用这个价值函数来决定,每一步要选择哪个行动。它会采取函数值 (就是Q值) 最大的那个行动。

强化学习简介_第7张图片

在迷宫问题中,每一步我们都选取最大函数值:-7,-6,-5,以此类推,达到目标。

基于策略 (Policy-Based)

这种方式,会直接优化策略函数π(s),抛弃价值函数。

策略就是评判智能体在特定时间点的表现。

强化学习简介_第8张图片

把每一个状态和它所对应的最佳行动建立联系。

策略分为两种,

· 确定性策略:某一个特定状态下的策略,永远都会给出同样的行动。

· 随机性策略:策略给出的是多种行动的可能性分布。

强化学习简介_第9张图片
强化学习简介_第10张图片
从图中我们可以看到,策略直接指出了每一步的最佳行动。

基于模型 (Model-Based)

这种方法是对环境建模。这表示,我们要创建一个模型,来表示环境的行为。

问题是,每个环境都会需要一个不同的模型 (马里奥每走一步,都会有一个新环境) 。这也是这个方法在强化学习中并不太常用的原因。

深度强化学习

所谓深度强化学习,就是在强化学习里,加入深度神经网络。

如图,拿Q学习和深度Q网络 (DQN) 来举例。

强化学习简介_第11张图片

· Q学习,是利用一个传统算法创建Q-table,来帮助智能体找到下一步要采取的行动。

· DQN,是利用深度神经网络来近似Q值。

这里是本系列大纲的传送门:
https://simoninithomas.github.io/Deep_reinforcement_learning_Course/

你可能感兴趣的:(机器学习)