导论
如果你想过这个问题:人类是怎么学习的?你可能会得出——“人类是通过与环境不断交互来学习的”这样一个答案。在心理学的行为主义理论中,在环境给予有机体奖励或惩罚的刺激下,有机体能逐渐预测不同刺激的结果,从而学会能获得最大利益的习惯性行为。
强化学习(Reinforcement Learning,简称RL)的基本思想正源于此,即希望智能体基于与环境的交互,学习到能够取得最大化预期利益的行为。强化学习近年来蓬勃发展,具有非常高的科研价值和广泛的应用前景。
OpenAI公司有做过的三个在不同场景下的强化学习算法应用,分别是2019年3月份在Dota游戏中战胜了世界冠军团队OG的OpenAI Five,可以玩魔方的机器臂和会捉迷藏的虚拟小人。
本文从强化学习的定义出发,首先介绍了强化学习的建模过程和一些基本概念,并介绍了在有限MDP下,最优策略的存在性等相关定理。接着,文章引入Q-learning算法,具体介绍该如何学习一个最优策略和证明了在确定性环境中Q-learning算法的收敛性。接着,本文给出了作者基于Open AI开源库gym中离散环境的Q-learning算法的Github项目链接。最后,作者分析了Q-learning的一些局限性。
强化学习简介
智能体和环境
强化学习讨论的问题是一个「智能体(agent)」 怎么在一个「环境(environment)」 里学习到一个「策略(policy)」,从而最大化它能获得的累计奖励(策略的严格的定义将在后文给出)。
如图一所示,在强化学习中,智能体通过观测环境的状态,依照某个策略,选择执行动作。而环境接收到智能体的动作后,状态将更新并且给予智能体一个奖励反馈。值得注意的是,智能体每一步从环境中接收到的奖励是即时奖励,但强化学习的目标是获得最大化的长期的累计收益,故在强化学习中除了要考虑当前的即时奖励,还要考虑未来可能获得的奖励。
在学习过程中,agent面临着是探索未知状态和行动以获得更多环境和奖励信息,还是利用已经收集到的信息来优化其策略的两难选择,这被称为强化学习的「探索与利用的权衡」。举个例子,在我们购物时,根据过往的经验我们知道哪些店的产品物美价廉,我们直接选择去这类店就是「利用」;但是有一些我们没有去过的店可能有更好的产品,去尝试新店的过程就是「探索」。
我们假定在离散的时间域 t∈{0, 1, 2, …} 上,智能体从一个初始状态 s0 出发,在每一个时间点 t = 0, 1, … 上,智能体观测到环境状态为 st∈S,采取动作 at∈A,得到即时奖励 rt = R (st, at),而下一个状态转移到 st+1(st+1 ∼ P (st, at))。我们将这个过程记录为
τ = (s0, a0, r0, s1, a1, r1, …)
并称为 “轨迹”。在 S, A, R 的元素都有限的情况下,我们称 MDP 为有限 MDP。在之后的讨论中,未特别说明,我们均认为 “是在有限 MDP 的设定下进行讨论”。
强化学习中的策略
在一个MDP过程中,智能体的目标是学习到一个「策略」,策略用以指导在每一个状态st下,采取动作。
强化学习的目的是学到一个可以尽可能提高累计奖励的策略。那么如何定义累计奖励呢?
事实上,强化学习的任务可以分为两类:分幕式任务和持续性任务。分幕式任务指的是那些存在终止时刻T (一般是随机变量)的任务,比如围棋游戏,走到最后总能分出胜负,达到游戏的终止状态。我们把分幕式任务中,从开始状态到达终止状态的过程称之为「一幕」。持续性任务指那些智能体和环境可以持续不断地发生交互的任务,比如说机器人的控制任务。
Q学习(Q-Learning)
Q学习是一种强化学习算法,用于解决智能体(agent)在与环境互动的过程中学习如何做出决策以获得最大的累积奖励。它属于无模型(model-free)强化学习方法的一种,这意味着Q学习不需要事先了解环境的具体模型,只需通过与环境的交互来学习。 Q学习的目标是学习一个Q值函数,通常简称为Q表(Q-table),其中包含了在每个状态下采取每个动作所获得的期望累积奖励。这个Q表使得智能体可以在每个状态下选择最佳的动作,从而最大化长期奖励。
Q学习的核心思想
Q学习的核心思想可以总结为以下几个关键概念:
1. 状态(State)
在Q学习中,智能体与环境互动的过程可以被划分为一系列离散的时间步(timesteps)。在每个时间步,智能体观察到环境的当前状态,这个状态可以是任何描述环境的信息。
2. 动作(Action)
智能体在每个时间步都必须选择一个动作,以影响环境并获取奖励。动作可以是有限的一组选择,取决于具体的问题。
3. 奖励(Reward)
在每个时间步,智能体执行一个动作后,环境会给予智能体一个奖励信号,表示这个动作的好坏。奖励可以是正数(表示好的行为)或负数(表示不好的行为),甚至是零。
4. Q值函数(Q-Value Function)
Q值函数是Q学习的核心,它表示在给定状态下采取特定动作所获得的期望累积奖励。Q值通常表示为Q(s, a),其中s表示状态,a表示动作。
5. 学习和探索
在Q学习中,智能体需要学习Q值函数,以确定在每个状态下应该采取哪个动作来最大化累积奖励。但同时,智能体也需要保持一定程度的探索,以发现新的动作策略。
Q学习的基本算法步骤
Q学习的基本算法步骤可以概括为以下几个阶段:
1. 初始化Q表
首先,我们需要初始化一个Q表,其中包含了所有状态和动作的Q值。通常,Q值可以初始化为零或其他适当的值。
2. 选择动作
在每个时间步,智能体根据当前状态和Q表中的Q值来选择一个动作。这通常涉及到探索和利用的权衡,以便在学习过程中不断探索新的动作策略。
3. 执行动作
智能体执行所选择的动作,并观察环境的响应。这包括获得奖励信号和新的状态。
4. 更新Q值
根据观察到的奖励信号和新的状态,智能体更新Q值。这通常涉及到使用Q学习的更新规则,如贝尔曼方程。
5. 重复迭代
智能体不断地执行上述步骤,与环境互动,学习和改进Q值函数,直到达到停止条件。
总结: Q学习(Q-Learning)是一种强大的强化学习算法,用于解决智能体与环境互动的问题。它的核心思想是通过学习Q值函数来指导决策,以获得最大的累积奖励。
标签:动作,奖励,环境,实践,学习,智能,learning,强化 From: https://blog.csdn.net/qq_45913945/article/details/144865282