用有趣的文字,教你强化学习入门知识(下)
接着上周强化学习入门知识(上),今天我们将剩下的部分讲完。大家久等了~
蒙特卡洛学习方法VS时序差分学习方法
我们的学习方法一般有以下两种:
1)蒙特卡洛学习方法(Monte Carlo Approach):在一个episode结束的时候搜集所有奖励,并计算出未来预期的最大奖励值。
2)时序差分学习方法(Temporal Difference Learning):预估每一个step所获得奖励。
蒙特卡洛学习方法
当一个episode结束的时候(也就是当Agent达到terminal state时),Agent会通过查看累积奖励值来了解自己做的有多好。在蒙特卡洛学习方法中,我们只有在游戏结束时才可以计算奖励值。
那么接下来,我们根据已有知识开始新的游戏。Agent通过每一次的迭代,会做出更好的决策。
举个例子:
在这样的迷宫环境里:
l 我们总是从同一个起点出发。
l 如果猫咪吃掉了小老鼠或者小老鼠移动超过20步,这一局就结束了。
l 在本局游戏结束时,我们会得到一系列的State, Actions, Rewards, 和New States。
l Agent会计算总的奖励值Gt(以了解自己做的有多好)。
l 然后Agent会根据上述公式更新V(st)值
l 接着,在此基础上开始新一轮游戏。
通过多轮游戏的练习,Agent会玩得越来越好。
时序差分学习方法:在每一个step中学习
同蒙特卡洛学习方法不同,时序差分学习可不会等到游戏结束时才计算未来预期的最大奖励值,相反,它会在游戏未终止的状态下,更新每个step的预估值V。
该方法简称为TD(0),也称为one step TD(在每个step结束时更新价值函数)。
时序差分学习方法只有在等到下一个step开始时才会更新预估值。当时间为t+1时,时序差分学习方法则会利用获得的奖励 Rt+1 和当前预估值V(St+1)来即刻确定自己的TD目标。
TD目标是一个估算值。实际上,在更新了one-step目标时就已经更新了之前估算值 V(St)。
Exploration & Exploitation 问题
在了解强化学习问题解决方案的不同策略之前,我们必须先接触一个更重要的概念:Exploration & Exploitation问题。
l Exploration:获取更多关于环境(environment)的信息。
l Exploitation: 利用已知信息最大化奖励。
请记住,在强化学习中,Agent的目标是将预期累积奖励值最大化。但是,我们总是容易掉进一个常见的陷阱里。
在这场游戏中,小老鼠可以吃到的小奶酪的数量是无限的(每吃一个加1分)。但是在迷宫的顶部格子里有一堆奶酪(吃完可以获得1000分奖励)。
如果我们的重点只在奖励上,我们的Agent便不会去吃那一堆奶酪。相反,它会只关注离它最近的奶酪,即使这个奶酪带来的奖励会比较少(exploitation)。
相反,如果我们的Agent有一点冒险精神,它就会找到那个最大的奖励。
这就是我们所说的exploration & exploitation问题。为了处理这个问题,我们必须定一个规则。之后我会写些文章来具体讲讲处理这种问题的几个方法。
强化学习的三种方法
在了解了强化学习的主要内容之后,我们接着来聊聊解决强化学习问题的三个方法,它们分别是:基于价值的强化学习、基于策略的强化学习和基于模型的强化学习。
基于价值的强化学习(Value Based)
基于价值的强化学习中,我们的目标是将价值函数V(s)最大化。
通过价值函数,我们可以知道Agent在每个状态下可能获得的未来预期的最大奖励值。
每个状态下的价值指的是,Agent从该状态开始时,可以在未来获得到的奖励的总额。
利用上述这个价值函数,Agent可以决定每个step需要选择的状态(state)。Agent会选择具有最大价值的state。
在迷宫这个案例中,我们在每一个step选择的都是最大价值,先是-7,然后是-6,再然后是-5,以此类推下去,实现目标。
基于策略的强化学习(Policy Based RL)
在基于策略的强化学习中,我们希望在不使用价值函数的情况下直接优化策略函数π(s)。
该策略定义了Agent在特定时间的行为。
学习策略函数有助于我们使每一个state匹配到最佳行为。
策略类型一般有以下两种:
l 确定性:在特定状态下的策略总是会返回相同的行为。
l 随机性:输出分布概率而非行为。
正如我们在这里所看到的,策略直接表明每一步应该采取的最佳动作。
基于模型的强化学习(Model Based RL)
在基于模型的强化学习中,我们对环境进行建模。这也就意味着,我们创造了一个特定环境下的行为模型。
但问题是每个环境都需要不同的模型表示,因此我们在以后的文章中不会提及该种类型的强化学习。
深度强化学习介绍
深度强化学习(Deep Reinforcement Learning)引入了深度神经网络来解决强化学习问题,因此将其命名为深度强化学习。
那么,在之后的文章中,我们就来谈谈Q-learning和深度Q-learning的学习。
学完之后你就会发现,在Q-learning中,我们是利用传统算法创建一个Q table,帮助我们寻找在每一步应该实施的行为。
而在深度Q-learning中,我们利用的是神经网络来帮助我们达成目标。
那么我们,下周见吧~
大家好,我是AI搬运工
致力于将国外的AI好文,翻译成大家都懂的中国话!
本文属于AI搬运工自行翻译,如有错误,欢迎指正!
原文来源:An introduction to Reinforcement Learning
近期文章回顾: