强化学习task01基础

it2024-11-20  2

强化学习基础

强化学习讨论的问题是一个 智能体(agent)可以理解为是一个ai,把他放到一个复杂的环境(environment)里面去,规定一个目标,他自己想办法尝试去极大化它能获得的奖励。

在强化学习过程中,agent 跟 environment 一直在交互,类比为人类与环境无时无刻不在交互。 Agent 在环境会得到一个初始的状态,agent 会利用这个状态通过一个决策policy来输出一个 action到环境中,环境会通过这个action来计算应该得到的奖励,然后开始循环。Agent 的目的就是为了尽可能多地从环境中获取奖励,极大化奖励。

强化学习的特征:

具有trial-and-error exploration特征,即通过不断探索环境来获得对环境的理解。强化学习 agent 获得的奖励具有延迟性,不一定每一个行为都能立马产生结果。在训练过程中,时间非常重要,因为得到的数据都是有这个时间关联的,可能完成一次训练会花费大量时间。agent 的行为会影响它随后得到的数据,如果在训练过程中agent的模型很快死掉了,那会使我们采集到的数据是非常糟糕的。所以如何让 agent 的行为一直稳定地提升是重要的问题强化学习的一些例子:棋类游戏、预测股票、玩游戏、机器人等

序列决策过程

在强化学习环境里,agent 的目的是选取一系列动作的组合来使奖励最大,所以这些动作必然存在长期的影响。但在这个过程里面,它的奖励其实是被延迟了,意思是可能存在做出了很多动作后,才会获得奖励,或者是做了很多动作之后才知道到底会有什么影响。 强化学习里一个重要的课题就是近期奖励和远期奖励的协调( trade-off)。怎么让 agent 取得更多的长期奖励是强化学习的问题。ps:对系统或人类而言,其实更喜欢即时的奖励。

在跟环境的交互过程中,agent 会获得很多观测。在每一个观测会采取一个动作,它也会得到一个奖励。所以历史H是观测O、行为A、奖励R三种行为的序列集合:

Agent 在采取当前动作的时候会依赖于它之前得到的这个历史H,所以你可以把整个游戏的状态S看成关于这个历史H的函数:

状态(state) 是对世界的完整描述,不会隐藏世界的信息。 观测(observation) 是对状态的部分描述,可能会遗漏一些信息。 在 deep RL 中,我们几乎总是用一个实值的向量、矩阵或者更高阶的张量来表示状态和观测。举个例子,我们可以用 RGB 像素值的矩阵来表示一个视觉的观测,我们可以用机器人关节的角度和速度来表示一个机器人的状态。

在 agent 的内部也有一个函数来更新这个状态。根据 agent 的状态跟环境的状态是否相同,可以将环境分为两类: 1.full observability:agent 的状态跟环境的状态等价的时候,就是全部可以观测。 2.partially observed: agent 得到的观测只能得到一部分信息,而并不能包含所有环境运作的状态。在这种情况下面,强化学习通常被建模成一个部分可观测马尔可夫决策过程 (POMDP) 的问题。

部分可观测马尔可夫决策过程:是一个马尔可夫决策过程的泛化。POMDP 依然具有马尔可夫性质,但是假设智能体无法感知环境的状态 ,只能知道部分观测值 。比如在自动驾驶中,智能体只能感知传感器采集的有限的环境信息。POMDP 可以用一个 7 元组描述。

Agent的主要组成部分

决策(policy) agent 会用决策函数来选取下一步的动作,它其实是一个函数,把输入的状态变成行为。这里有两种 policy: stochastic policy(随机性策略):就是一个π函数,当输入一个状态的时候,输出是一个概率。这个概率就是所有行为的一个概率,然后可以进一步对这个概率分布进行采样,得到真实的你采取的行为。比如说这个概率可能是有 70% 的概率往左,30% 的概率往右,那么通过采样就可以得到一个 action。 deterministic policy(确定性策略):就是说这里有可能只是采取它的极大化,采取最有可能的动作。你现在这个概率就是事先决定好的。从 Atari 游戏来看的话,policy function 的输入就是游戏的一帧,它的输出决定你是往左走或者是往右走。 通常情况下,强化学习一般使用 随机性策略 。随机性策略有很多优点: 1.在学习时可以通过引入一定随机性来更好地探索环境; 2.随机性策略的动作具有多样性,这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对手预测

价值函数(value function) 用价值函数来对当前状态进行估价,也就是说进入现在这个状态,可以对后面的收益带来多大的影响。当这个价值函数大的时候,说明你进入这个状态越有利。 下图为价值函数,里面有一个 discount factor。我们希望尽可能在短的时间里面得到尽可能多的奖励。所以通过把 discount factor 放到价值函数的定义里面,后面得到的奖励价值函数的定义其实是一个期望。 Gt为折扣因子和奖励的乘积。 Eπ是期望,有个小角标是π函数,就是已知某个 policy function到底可以得到多少的奖励。 在这里插入图片描述 对于奖励函数,另外还有一个 Q 函数。Q 函数里面包含两个变量:状态S和动作A。所以未来可以获得多少的奖励,它的期望取决于当前的状态和当前的行为。Q 函数是强化学习算法在学习的一个函数。因为当得到这个 Q 函数过后,进入某一种状态,它最优的行为其实就可以通过这个 Q 函数来得到。

模型(model) 模型决定了下一个状态会是什么样的,也就是说下一步的状态取决于你当前的状态以及你当前采取的行为。它由两个部分组成, 一个是probability,它这个转移状态之间是怎么转移的。

另一个是奖励函数,当你在当前状态采取了某一个行为,可以得到多大的奖励。

我们有了决策、价值函数、模型这三个成分过后,就形成了一个 马尔可夫决策过程(Markov Decision Process)。这个决策过程可视化了状态之间的转移以及采取的行为。

最新回复(0)