强化学习
什么是强化学习?
强化学习是一种机器学习方法,其中一个 agent(软件实体)通过执行动作并监控结果来训练以理解环境。对于每个好的动作,agent 会获得正反馈;对于每个坏的动作,agent 会获得负反馈。它受动物从经验中学习的方式启发,根据动作的后果做出决策。
下图展示了一个典型的强化学习模型 −
在上图中,agent 处于特定的 state 中。agent 在 environment 中执行 action 以完成特定任务。作为执行任务的结果,agent 会收到 reward 或惩罚作为反馈。
强化学习是如何工作的?
在强化学习中,我们有一个 agent,希望通过一段时间的训练,使其能够与特定环境交互。agent 将遵循一套策略与环境交互,然后在观察环境后,根据环境的当前状态采取行动。agent 通过根据其动作接收奖励或惩罚来学习如何做出决策。
强化学习的工作原理可以通过一位国际象棋大师的方法来理解。
- Exploration(探索) − 就像象棋选手考虑各种可能的走法及其结果一样,agent 也会探索不同的动作以了解其效果,并学习哪种动作能带来更好的结果。
- Exploitation(利用) − 象棋选手也会基于过去的经验使用直觉做出正确的决策。同样,agent 使用从先前经验中获得的知识做出最佳选择。
强化学习的关键元素
除了 agent 和环境之外,强化学习系统还可以识别出四个主要子元素 −
- Policy(策略) − 它定义了学习 agent 在给定时间的行为方式。策略是将环境感知状态映射到处于这些状态时要采取的动作。
- Reward Signal(奖励信号) − 它定义了强化学习问题的目标。它是环境提供给 agent 的数值分数。这个奖励信号定义了 agent 的好事件和坏事件。
- Value function(价值函数) − 它指定了长远来看什么是好的。价值是 agent 从该状态开始,在未来可以期望累积的总奖励量。
- Model(模型) − 模型用于规划,即在实际经历之前考虑可能的未来情况来决定行动方案。
Markov Decision Processes (MDP) 提供了一个数学框架,用于建模具有状态、动作、奖励和概率的环境中的决策制定。强化学习使用 MDP 来理解 agent 应如何行动以最大化奖励,并找到决策的最佳策略。
马尔可夫决策过程 (MDP)
强化学习使用马尔可夫决策过程 (MDP) 的数学框架来定义学习 agent 与环境之间的交互。MDP 的重要概念和组件包括 −
- States (S)(状态) − 表示 agent 可能处于的所有情况。
- Action (A)(动作) − agent 在给定状态下可用的选择。
- Transition Probabilities (P)(转移概率) − 由于特定动作而从一个状态转移到另一个状态的可能性。
- Rewards (R)(奖励) − 由于动作导致转移到新状态后收到的反馈,表示结果的可取性。
- Policy (π)(策略) − 定义在每个状态下采取行动以获得奖励的策略。
强化学习过程的步骤
以下是强化学习方法涉及的主要步骤 −
步骤 1 − 首先,我们需要准备一个具有初始策略集的 agent。
步骤 2 − 然后观察环境及其当前状态。
步骤 3 − 接下来,根据环境当前状态选择最优 policy,并执行重要 action。
步骤 4 − 现在,agent 可以根据前一步所采取的 action 获得相应的 reward 或 penalty。
步骤 5 − 现在,如果需要,我们可以更新策略。
步骤 6 − 最后,重复步骤 2-5,直到 agent 学会并采用最优 policy。
强化学习的类型
强化学习有两种类型:
- Positive Reinforcement − 当 agent 执行一个理想的或导致良好结果的 action 时,它会收到 reward,从而增加该 action 被重复的可能性。
- Negative Reinforcement − 当 agent 执行一个 action 以避免负面结果时,会移除负面刺激。例如,如果一个机器人被编程为避开障碍物并成功避开它,则与该 action 相关的威胁会被移除。机器人未来更可能避免该 action。
强化学习算法的类型
强化学习中有多种算法,如 Q-learning、policy gradient methods、Monte Carlo method 等。所有这些算法可以分为两大类 −
- Model-free Reinforcement Learning − 这是一类强化学习算法,通过直接与环境交互来学习决策,而不创建环境动态的 model。agent 执行不同 action 多次以学习结果,并创建一个优化 reward points 的策略 (policy)。这适用于变化的、大型或复杂的环境。
- Model-based Reinforcement Learning − 这类强化学习算法涉及创建环境动态的 model 来做出决策并提升性能。此 model 适用于静态且定义明确的環境,在现实世界环境测试困难时特别理想。
强化学习的优势
强化学习的一些优势包括 −
- 强化学习不需要预定义指令和人为干预。
- 强化学习 model 可以适应广泛的环境,包括静态和动态环境。
- 强化学习可用于解决广泛的问题,包括决策、预测和优化。
- 强化学习 model 会随着经验积累和微调而变得更好。
强化学习的劣势
强化学习的一些劣势包括 −
- 强化学习依赖于 reward function 的质量,如果设计不当,model 的性能将无法提升。
- 强化学习的設計和调优可能复杂,需要专业知识。
强化学习的應用
强化学习在各个领域有广泛的应用。一些主要应用包括 −
1. 机器人学
强化学习通常关注在不可预测环境中的决策。这是特别用于复杂任务的最常用方法,例如复制人类行为、操纵、导航和运动。此方法还允许机器人通过试错适应新环境。
2. 自然语言处理 (NLP)
在自然语言处理 (NLP) 中,强化学习用于提升聊天机器人的性能,通过管理复杂对话并改善用户交互。此外,这种学习方法还用于训练 summarizations 等任务的 model。
强化学习 Vs. 监督学习
监督学习和强化学习是机器学习中的两种不同的方法。在监督学习中,模型在包含输入及其对应输出的数据集上进行训练,用于预测分析。而强化学习中,一个 agent 与环境交互,通过接收奖励或惩罚形式的反馈来学习决策,旨在最大化累积奖励。这两种方法之间的另一个区别是它们适用的任务。虽然监督学习用于通常具有明确、结构化输出的任务,但强化学习用于具有最优策略的复杂决策任务。