强化初学笔记

it2023-10-27  68

​ 强化学习和监督学习不同,强化学习讨论的问题是一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励,它可能会在状态间随机变换以获得最优奖励(reward)。它由两部分组成:agent 和environment。

​ 在强化学习过程中,agent 跟environment 一直在交互。Agent 在环境里面获取到状态,agent 会利用这个状态输出一个 action,一个决策。然后这个决策会放到环境之中去,环境会通过这个 agent 采取的决策,输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。

对于一个强化学习 agent,它有如下组成成分:

首先 agent 有一个 policy function ,agent 会用这个函数来选取下一步的动作。然后它也可能生成一个 价值函数(value function) 。我们用价值函数来对当前状态进行估价,它就是说你进入现在这个状态,可以对你后面的收益带来多大的 影响。当这个价值函数大的时候,说明你进入这个状态越有利。另外一个组成成分是 模型(model) 。模型表示了 agent 对这个环境的状态进行了理解,它决定了这个世界是如何进行的。

Policy 决定了这个 agent 的行为,它其实是一个函数,把输入的状态变成行为。这里有两种 policy:

一种是 stochastic policy(随机性策略)。当你输入一个状态 的时候,输出是一个概率。这个概率就是你所有行为的一个概率,然后你可以进一步对这个概率分布进行采样,得到真实的你采取的行为。比如说这个概率可能是有 70% 的概率往左,30% 的概率往右,那么你通过采样就可以得到一个 action。一种是 deterministic policy(确定性策略) ,就是说你这里有可能只是采取它的极大化,采取最有可能的动作。你现在这个概率就是事先决定好的。

​ Value Function价值函数是一个折扣的未来奖励的加和,就是你通过进行某一种行为,然后你未来得到多大的奖励。

​ 第三个组成部分是模型Model,模型决定了下一个状态会是什么样的,就是说下一步的状态取决于你当前的状态以及你当前采取的行为。它由两个部分组成,一个是probability,它这个转移状态之间是怎么转移的。另外是这个奖励函数,当你在当前状态采取了某一个行为,可以得到多大的奖励。

根据强化学习 agent 的不同,我们可以把 agent 进行归类。

基于价值函数的 agent。这一类 agent 显式地学习的是价值函数,隐式地学习了它的策略。因为这个策略是从我们学到的价值函数里面推算出来的。基于策略的 agent,它直接去学习 policy,就是说你直接给它一个 state,它就会输出这个动作的概率。在这个 policy-based agent 里面并没有去学习它的价值函数。另外还有一种 agent 是把这两者结合,把 value-based 和 policy-based 结合起来就有了 Actor-Critic agent 。这一类 agent 就把它的策略函数和价值函数都学习 了,然后通过两者的交互得到一个最佳的行为。

另外,我们是可以通过 agent 到底有没有学习这个环境模型来分类。

第一种是 model-based(有模型) RL agent,它通过学习这个状态的转移来采取措施。另外一种是 model-free(免模型) RL agent,它没有去直接估计这个状态的转移,也没有得到环境的具体转移变量。它通过学习 value function 和 policy function 进行决策。这种 model-free 的模型里面没有一个环境转移的一个模型。

在强化学习里面, Exploration 和 Exploitation 是两个很核心的问题。

Exploration 是说我们怎么去探索这个环境,通过尝试不同的行为来得到一个最佳的策略,得到最大奖励的策略。Exploitation 是说我们不去尝试新的东西,就采取已知的可以得到很大奖励的行为。
最新回复(0)