1. 概述
强化学习是智能体(Agent)与环境(Environment)不断交互, 不断提高自己的决策能力的过程.
-
面向智能体的学习——通过与环境进行交互
-
所学习的「样本」来自于「与环境的交互」。而非像传统机器学习的样本是现有的。
-
-
通过「试错和优化」进行学习——用试错后的奖励(或惩罚) 来学习
「总体过程」:环境(Environment)会给智能体(Agent)一个观测值(Observation)(全观测时,状态 state 和 observation 等价), 智能体接收到环境给的观测值之后会做出一个动作(Action), 这个动作给予一个奖励(Reward), 以及给出一个新的观测值. 智能体根据环境给予的奖励值去更新自己的策略(Policy)。
强化学习的「目的」 就是为了得到最优的策略。
2. 强化学习的组成
整体结构:环境和智能体
环境和智能体
每个时刻 :
-
智能体(Agent)
-
智能体执行动作 ,并在环境中得到观测 和奖励
-
-
环境(Environment)
-
环境会对智能体的动作 的做出反应,然后发送新的观测 和奖励
-
智能体是我们能控制的部分,环境是我们无法控制的部分。 在不同的问题中,智能体和环境所指代的对象不同。
2.1 奖励 Reward
奖励 是强化学习的「核心」,强化学习的目标就是「最大化期望累积奖励」
- 「特点」
-
是「标量」,能够比较大小
-
表明这个智能体在时刻 做得有多好
-
奖励不一定需要正负都有,全正或全负都可以,只要满足「相对大小」即可
-
如果一个问题不满足奖励假设,就不能用强化学习解决!
-
「奖励值」 和 「回报值(Return)」 的比较
回报值 又称「累积折扣奖励」(cumulative discounted reward)。step 时的 return 为
其中表示折扣因子,公式中重视每一步 reward 的程度随着时间衰减,是一个可调的超参数。
-
越大,表示我们越关注长期奖励
-
越小,表示我们越关注短期奖励
智能体的任务就是去最大化累积奖励,即最大化整个过程的奖励.
因此,智能体的任务可以转化成「最大化累积奖励的期望」。
-
2.2 状态 State
历史(history)
-
「历史」 是一个观测、动作和奖励的序列。是智能体在时间 以前的所有的交互变量。
根据历史:
-
智能体选择动作
-
环境产生新的观测 和奖励
本质上,状态是历史的一个函数:
状态可以是「全部历史」或者「部分历史」
下棋时,棋盘当前的布局可以看做状态
打砖块游戏中,前几帧的观测可以看做状态
环境状态
环境状态
-
所有能够影响环境产生观测/奖励的数据都被认为是环境状态的一部分
-
环境状态一般是智能体观察不到的
-
即使环境状态 可见的,一般也包含了不相关的信息
「智能体状态」
智能体状态
-
所有能够影响智能体做出下一个动作的数据都被认为是智能体状态的一部分
-
「强化学习中使用的状态」
-
可能是历史的任何函数
对于智能体来说,「环境状态是未知的,智能体状态是已知的」 智能体通过智能体的状态来做出相应的动作 没有特殊说明的情况下,我们所说的状态均指智能体状态
全观测和部分观测
全观测:
-
智能体能够「观测到整个环境」,即「智能体状态等价于环境状态」
-
强化学习主要研究问题——马尔科夫决策过程
部分观测:
-
智能体「不能完全观测」到整个环境
-
建模为部分观测下的马尔科夫决策过程
2.3 动作 Action
-
动作是智能体与环境交互的媒介
-
动作必须对环境起到「一定的控制作用」
-
「动作必须和奖励匹配」
3. 智能体的组成
智能体的组成主要包括:
-
策略
-
值函数
-
模型
3.1 策略 Policy()
Policy 是从状态到动作的映射, 用表示, 它告诉智能体如何挑选下一步的 action.
强化学习中有两类 policy:
-
Deterministic policy (确定性策略)
在确定性策略中,输入一个状态,输出的是某一个「确定的 action」.
-
Stochastic policy (随机性策略)
在随机性策略中,输入一个状态,输出的是「每个 action 的概率分布」.
3.2 值函数
-
值函数是「回报值的期望」
-
值函数主要用于评价不同状态的好坏,指导动作的选择
3.3 模型
指智能体对环境的预测模型,分为两部分
-
- 预测下一个状态是什么
-
- 预测下一个奖励是什么
4. 强化学习的分类
按环境:
-
全观测环境下的
-
部分观测环境下的
按智能体成分:
-
基于值函数:学习值函数
-
基于策略:学习策略
-
Actor Critic:同时学习值函数和策略
按有无模型:
-
无模型强化学习
-
基于模型的强化学习
按使用的手段:
-
传统强化学习
-
深度强化学习
5. 学习(learning)和规划(planning)
解决「序列决策问题」有两个基本方法:
强化学习:
-
「环境未知」
-
智能体与环境进行交互,不断改善策略
规划:
-
「环境已知」
-
可以根据模型直接计算,不用交互
环境模型不精确时,既利用环境进行规划,又与环境交互进行强化学习 --> 「基于模型的强化学习」 当环境模型很精确时,可以直接用规划的方式求解
6. 探索(Exploration)和利用(Exploitation)
-
探索:「发现环境中更多的信息」;
-
利用:「充分挖掘当前已知信息」,来最大化回报值;
两者 trade-off,同等重要。
7. 评价和优化
-
评价:给定一个策略,评价该策略的好坏 求值函数
-
优化:改善策略 找到最优策略
本文使用 mdnice 排版