强化学习

一个模拟环境:https://gym.openai.com/

一套教程:https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/intro-q-learning/

来自 https://www.youtube.com/watch?v=2xATEwcRpy8https://www.youtube.com/watch?v=JgvyzIkgxF0

强化学习示意图

Agent会进行Environment的探索,agent可以感知environment的状态state(s),agent采取的行动action(a)会影响Environment,而这个行动会有一个reward(r)。

另一个图

https://zhuanlan.zhihu.com/p/27860483

主动对环境进行试探,并根据试探后,环境反馈回来的结果进行评价、总结,以改进和调整自身的行为,然后环境会根据新的行为作出新的反馈,持续调整的学习过程。

环境(Environment):环境会接收Agent执行的一系列的动作(Action),并且对这一系列的动作的好坏进行评价,并转换成一种可量化的(标量信号)Reward反馈给Agent,而不会告诉Agent应该如何去学习动作。Agent只能靠自己的历史(History)经历去学习。同时,环境还像Agent提供它所处的状态(State)信息。环境有完全可观测(Fully Observable)和部分可观测(Partial Observable)两种情况。

https://zhuanlan.zhihu.com/p/30315707

reward:

  • 我们定义了“奖励”,这是一个标量,他代表了一个反馈的信号,代表时刻的的action的表现如何
  • 我们的目标是得到累计的reward的最大值
  • reward hypothesis:reinforcement learning 在reward方面都是基于这个假设的,也就是说,我们认为我们的目标都能够被描述为reward的累计的最大值
  • 如果我们的任务是基于时间的目标问题,比如我们希望让任务在最小时间完成,这样,我们可以再每次执行完一个action之后,设定一个”-1”的反馈,这样的话,这样我们的优化目标就能够最小化任务执行的时间

Goal

  • 对于任何的任务,我们的统一目标是:得到reward的累计的最大值
  • 有时候我们的agent需要提前做思考,不能只看到当前的reward,要在当前状态就考虑如何使得我的未来得到的reward最大化
  • 基于上面的特点,这就意味着,我们可能需要放弃眼前的利益以获得累计的更大的奖励。
  • 比如说,我们在直升机游戏中,会选择停下来补充燃料,然后继续飞行,短期看降低了飞行的距离,但是长期看,他能够在坠前飞的更久

History 和 State 的关系

  • history是一个action、observation、reward的序列:$H_{t}=A_{1}, O_{1}, R_{1}, \ldots, A_{t}, O_{t}, R_{t}$
  • history能够决定action接下来采取什么行动;实际上,agent做的就是从history到action的映射
  • 对于环境而言,history和产生的action交给environment,从而得到对应的observation和reward
  • state是history的一个总结,用来决定下一步的action是什么,实际上,他是一个关于history的函数,我们可以这样表示:$S_{t}=f\left(H_{t}\right), A_{t}=h\left(S_{t}\right)$
  • State相对于hisory而言最大的好处在于他的信息量很少,实际上,我们也不需要得到所有的history来得到下一步的action(在之后的马尔科夫状态中会提到原因)。