强化学习笔记
机器学习的分支及对比
监督学习
-
定义:监督学习是一种通过输入数据及其对应的正确标签来训练算法的学习方法。目的是使算法能够预测未知数据的标签。
-
目标:学习一个映射函数,将输入映射到期望的输出。
-
数据训练:需要标注好的训练数据。特征(输入)和标签(输出)。数据通常是独立通分布(i.i.d data)
-
应用:分类、回归任务
-
训练过程:
- 使用标注好的数据集进行训练。
- 通过比较预测结果和真实标签来调整模型参数。
- 目标是最小化预测误差。
-
评估: 通常使用准确率、召回率、F1分数等指标来评估分类任务的性能;使用均方误差、决定系数等来评估回归任务的性能。
-
反馈形式:立即反馈。每一个输入样本推理结果直接和真实标签计算预测误差。
-
**探索与利用:**没有。直接通过训练好的模型来泛化推理新的数据。
无监督学习
-
定义:仅通过输入数据(无标签)来发现数据内在结构或模式的学习方法。
-
目标:发现数据中的隐藏结构、关联性或分布。
-
数据训练:只有特征,没有标签。
-
应用:聚类、降维、异常检测。
-
训练过程:
- 模型尝试理解数据的基础结构。
- 不涉及明确的正确输出,因此没有直接的错误信号。
- 目标是发现数据中的模式或最大化某些内在性质(如数据点的聚类内相似性和聚类间差异性)。
-
评估: 评估通常更主观,可能涉及聚类质量(如轮廓系数)、降维效果等。
-
反馈形式:立即反馈。每一个输入样本推理结果和主观评估方法间的差异。
-
**探索与利用:**没有。直接通过训练好的模型来泛化推理新的数据。
强化学习
-
定义:强化学习是一种通过与环境交互来学习达到目标的算法。它涉及到智能体在某个环境中采取行动,并根据行动结果(奖励或惩罚)来调整其行为。
-
目标:学习一种策略,使智能体在环境中采取行动时能够最大化累积奖励。
-
数据训练:没有固定的训练数据集,而是通过智能体的探索和利用来生成数据(具有时间相关性)。
-
应用:游戏、机器人控制
-
训练过程:
- 智能体在环境中采取行动,并接收到奖励信号。
- 通过试错来学习最佳策略,智能体根据某种策略选择并执行下一个动作。
- 环境根据智能体的动作转移到新的状态,并提供奖励(或惩罚)。
- 智能体接收到新的状态和奖励,并更新其策略以最大化未来的奖励。
-
评估: 评估通常基于智能体获得的累积奖励,或者智能体达到目标的成功率。
-
反馈形式:延迟反馈。智能体可能要在一系列动作后才能获得奖励,这种奖励反映了长期的行为结果,而不是单个动作的即时效果。
-
**探索与利用:**存在探索与利用的权衡问题。探索是指智能体尝试新的或者不经常采取的动作,以获取关于环境的新信息。通过探索,智能体可以了解不同动作可能导致的结果,从而更好地理解环境动态。利用是指智能体基于目前所了解的环境信息,选择当前认为最优的动作。利用是基于已有知识的,目的是最大化当前已知的奖励。
强化学习介绍
一种重要的机器学习范式。
图示分析
- 代理 (Agent): 学习者,通过与环境交互学习最佳策略。代理状态是代理自己对环境建模描述的状态。
- 环境 (Environment): 代理与之交互的对象,提供状态、奖励等信息。
- 状态 (State): 代理当前所处的环境状态。通常环境状态不能直接给代理看到。
- 动作 (Action): 代理在当前状态下可执行的操作。
- 奖励 (Reward): 代理执行动作后获得的即时回报。
简化过程图
四个核心要素
- 策略 (Policy): 定义了学习个体在不同状态下的行为方式,即如何选择行动。策略可以是简单的规则或复杂的计算过程。
随机策略 ( S t o c h a s t i c p o l i c y ) : π ( a ∣ s ) = P [ A t = a ∣ S t = s ] 随机策略(Stochastic policy): \pi (a|s) = P[A_{t}=a | S_{t} = s] 随机策略(Stochasticpolicy):π(a∣s)=P[At=a∣St=s]
直接固定的策略 ( D e t e r m i n i s t i c p o l i c y ) : a = π ( s ) 直接固定的策略(Deterministic policy): a = \pi(s) 直接固定的策略(Deterministicpolicy):a=π(s)
- 奖励信号 (Reward Signal): 指导学习个体目标,通过在每个时间步发送的数字来表示。个体目标是最大化长期奖励,奖励信号是其行为好坏的直接反馈。
- 价值函数 (Value Function): 评估长期收益,预测从特定状态开始可以预期累积的总奖励。价值函数比奖励信号更全面,它考虑了未来可能的状态和奖励。
V π ( s ) = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . ∣ S t = s ] V_{\pi}(s) = E_{\pi} [R_{t+1} + \gamma R_{t+2} + \gamma ^2R_{t+3} + ... | S_{t}=s] Vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+...∣St=s]
- 环境模型 (Model of the Environment) : 对环境的模拟或推断,可以预测状态和动作的结果。环境模型用于规划,即在行动前预测未来。
文件强调了价值函数在强化学习中的重要性,并区分了基于模型和不基于模型的方法。基于模型的方法使用环境模型进行规划,而不基于模型的方法则通过试错学习。
马尔科夫性
因为强化学习需要基于所有过往的状态的信息,通过决策来执行下一个动作,而大量的过往信息需要极大的空间来存储,这样做会增加大量的时间空间复杂度。所以最好将状态具有马尔科夫性,来减少时间空间复杂度。通常指的是马尔可夫决策过程(Markov Decision Process,MDP)。
即指的是当前状态包含了所有有关过去状态的信息,并且未来状态仅依赖于当前状态,而与过去的状态序列无关。这意味着一旦当前状态已知,过去的历史对于预测未来状态就不再重要。这种性质可以用以下数学表达:
P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , . . . , S t ] P[{S_{t+1}|S_{t}}] = P[S_{t+1} | S_{1}, ... , S_{t}] P[St+1∣St]=P[St+1∣S1,...,St]
其中,P表示概率,S_t表示在时间t的状态。如果上述等式成立,则说明过程具有马尔可夫性。
直接观测和部分观测的环境状态
直接观测
这就是意味着智能体(agent)能够直接观测环境状态,自己理解生成的状态直接为环境状态,即Sat = Set。(Markov decision process (MDP))
O t = S t a = S t e O_{t} = S^{a}{t} = S^{e}{t} Ot=Sta=Ste
非直接观测
这意味着智能体(agent)不能够直接观测环境状态,自己理解生成的状态与环境状态存在一定的差异。(partially observable Markov decision process (POMDP))
强化学习的类型
-
基于模型 (Model-based): 使用环境模型预测未来状态和奖励,进行规划。(环境模型比较难构建)
-
无模型 (Model-free): 不依赖环境模型,直接学习价值函数或策略。(常见)
实例对比
假设我们想要训练一个智能体来玩棋类游戏,比如国际象棋。
监督学习
在监督学习中,我们通常有一个数据集,包含了大量的棋局和对应的最佳走法(标签)。
- 数据准备 :
- 收集大量的棋局数据,每个棋局都标注了专家或高手的下一步棋。
- 数据集可能形如:
[(棋局状态1, 最佳走法1), (棋局状态2, 最佳走法2), ..., (棋局状态N, 最佳走法N)]
- 模型训练 :
- 使用这些数据来训练一个模型,比如一个深度神经网络。
- 模型学习将棋局状态映射到最佳走法。
- 训练过程 :
- 在训练过程中,模型尝试预测每个棋局的最佳走法,并通过与真实标签比较来调整权重。
- 目标是最小化预测误差,例如使用交叉熵损失函数。
- 应用 :
- 训练完成后,模型可以用来预测新的棋局的最佳走法。
- 局限性 :
- 监督学习模型依赖于高质量的标注数据。
- 模型可能无法很好地处理在训练数据中没有出现过的棋局。
强化学习
在强化学习中,智能体通过与环境(在这个例子中是棋局)的交互来学习策略。
-
环境交互:
- 智能体从初始棋局开始,采取行动(走棋),并根据行动的结果(赢、输或平局)来学习。
-
奖励机制:
- 如果智能体赢了游戏,它会得到正奖励;如果输了,则会得到负奖励;平局可能得到较小的正奖励或不奖励。
- 奖励是延迟的,可能在很多步之后才能得到。
-
训练过程:
- 智能体使用强化学习算法来学习。
- 它通过探索(尝试不同的走法)和利用(根据当前策略走棋)来不断更新其策略。
-
应用:
- 训练完成后,智能体可以根据当前棋局自主选择走法,而不是仅仅预测最佳走法。
-
优势:
强化学习与其他类型学习的区别在于它通过评估行动来进行学习,而不是通过指导正确的行动。强化学习需要积极的探索以寻找最佳行为,而评估反馈只表明所采取的行动有多好。
- 强化学习不依赖于预先标注的数据。
- 它可以学习在复杂、动态环境中的策略。
对比
- 数据依赖 :
- 监督学习需要大量的标注数据。
- 强化学习不需要预先的数据集,而是通过交互来学习。
- 反馈类型 :
- 监督学习提供即时、准确的标签。
- 强化学习提供延迟的奖励信号。
- 学习目标 :
- 监督学习目标是预测或分类。
- 强化学习目标是学习在给定环境中实现目标的策略。
- 泛化能力 :
- 监督学习模型可能在新环境中表现不佳,如果没有见过类似的情况。
- 强化学习智能体通常能更好地泛化到新的、未见过的环境。
多臂赌博机问题
多臂赌博机问题问题约等于多个单臂赌博机问题(随机且设定好的具有一定分布的问题)
动作-价值方法
一个动作 真正的价值 是选择该行动时的平均回报 : q = E (reward) 通过平均采样计算(中心极限定理+大数定律)
实际上,采样次数是有限 的:
Q t + 1 = s u m o f r e w a r d s p r i o r t o t + 1 n u m b e r o f s a m p l e t i m e s p r i o r t o t + 1 Q_{t+1} = \frac{sum\ of\ rewards\ prior\ to\ t+1}{number\ of\ sample\ times\ prior\ to\ t+1} Qt+1=number of sample times prior to t+1sum of rewards prior to t+1
平稳问题-非平稳问题
一定时间内环境模型分布是固定 的;环境模型分布是非固定的。
批量式:
Q t + 1 = 1 t ∑ i = 1 t R i = 1 t ( R t + ∑ i = 1 t − 1 R i ) = 1 t [ R t + ( t − 1 ) ∗ 1 t − 1 ∑ i = 1 t − 1 R i ] Q_{t+1} = \frac{1}{t} \sum^{t}{i=1} {Ri} = \frac{1}{t} ({R{t}} + \sum^{t-1}{i=1} {Ri}) = \frac{1}{t} [{R{t}} + (t-1)* \frac{1}{t-1} \sum^{t-1}_{i=1} {Ri}] Qt+1=t1i=1∑tRi=t1(Rt+i=1∑t−1Ri)=t1[Rt+(t−1)∗t−11i=1∑t−1Ri]
增量式:
Q t + 1 = Q t + 1 t ( R t − Q t ) Q_{t+1} = Q_{t} + \frac{1}{t}(R_{t}-Q_{t}) Qt+1=Qt+t1(Rt−Qt)
探索和利用
探索:通过尝试来收集更过信息。探索次数过少,很有可能陷入局部最优值,失去总体最大收益机会;探索次数过多,需要大量计算资源。
利用:通过已有的信息作出最佳的决定。
常见方法
Greedy和ε-Greedy(贪婪策略)
相当于软化标签策略的一种方法。随机选择一小部分时间步用来探索。
乐观的初始值方法
需要提前直到环境状态分布的情况,是一种讨巧的方法。设置一种比较好的初始值,让智能体平衡探索和利用。
UCB动作选择方法(Upper-Confidence-Bound action selection)
选择是确定性的,但通过在每一步微妙的偏向到目前位置获得较少样本的操作来实现探索。
A t 在 t 时间步所选择的动作 , Q t ( a ) 在 t 时间步动作 a 的价值, N t 在 t 时间步动作 a 累计被选择的次数, c 聚顶可信度水平控制探索深度 A_{t}在t时间步所选择的动作, Q_{t}(a) 在t时间步动作a的价值,N_{t}在t时间步动作a累计被选择的次数, c 聚顶可信度水平控制探索深度 At在t时间步所选择的动作,Qt(a)在t时间步动作a的价值,Nt在t时间步动作a累计被选择的次数,c聚顶可信度水平控制探索深度
A t = a r g m a x [ Q t ( a ) + c l n t N t ( a ) ] A_{t} = argmax[Q_{t}(a) + c\sqrt{ \frac{ln\ t}{N_{t}(a)} }] At=argmax[Qt(a)+cNt(a)ln t ]
**优点:**可以促进探索,与乐观初始值方法相比,受仍无自身影响少。
**缺点:**不适用非平稳问题,也不适用转台空间过大的问题。
梯度算法
UCB方法:利用绝对值 高的数据,比较偏激。
GB方法:利用相对趋势 ,比较平滑。
估计的是动作偏好而不是懂得的值。相当于softmax效用模型。
P { A t = a } 在 t 时间步选择动作 a 的概率; H t ( a ) 在 t 时间步前动作 a 的偏好,初始值为 0 ; π t 在 t 时间步的策略 p o l i c y ( 动作分布 ) ; b 是动作 a 前的所有动作 P\{A_{t}=a \}在t时间步选择动作a的概率;H_{t}(a)在t时间步前动作a的偏好,初始值为0;\pi_{t}在t时间步的策略policy(动作分布);b是动作a前的所有动作 P{At=a}在t时间步选择动作a的概率;Ht(a)在t时间步前动作a的偏好,初始值为0;πt在t时间步的策略policy(动作分布);b是动作a前的所有动作
P { A t = a } = e H t ( a ) ∑ b = 1 k e H t ( b ) = π t ( a ) P\{A_{t}=a \} = \frac{e^{H_{t}(a)}}{\sum^{k}{b=1}{e^{H{t}(b)}}} = \pi_{t}(a) P{At=a}=∑b=1keHt(b)eHt(a)=πt(a)