文章目录
- 前言
- 什么是 Agent?
- 定义
- Agent的组成部分
- Agent的目标
- 什么是 End-to-End Approach?
- 定义
- 特点
- 优势与挑战
- 示例
- Fuzzy Bayesian Reinforcement Learning (RB-RL)
- 系统组成部分
- 系统工作原理
- 贝叶斯方法
- 基础_条件概率
- 定义
- 贝叶斯定理
- 示例
- 敏感性
- Q-learning强化学习算法
- Q-learning的基本概念
- Q-learning算法核心步骤
- ε-greedy 策略
- 基本概念
- 策略流程
- 数学表示
- 优缺点
- 改进方法
- 应用场景
- Policy Gradient强化学习算法
- 基本概念
- ==策略的优化目标==
- 梯度的计算
- ==常见的 Policy Gradient 算法==
- 优缺点
- 应用场景
- Softmax 函数
- 总结
前言
论文笔记——An analysis of Reinforcement Learning applied to Coach task in IEEE Very Small Size Soccer
published in IEEE
什么是 Agent?
定义
定义:在强化学习中,代理是一个可以采取行动并从环境中接收反馈的实体。它通过与环境的交互来学习如何实现目标。
Agent的组成部分
- 状态(State):代理所处的环境的描述。
- 动作(Action):代理可以选择执行的操作。
- 策略(Policy):代理决定采取哪个动作的规则或模型,可以是确定性的或随机的。
- 奖励(Reward):代理在某个状态下采取某个动作后收到的反馈,用于评估该动作的好坏。
- 价值函数(Value Function):代理对未来奖励的预期,为了衡量在某个状态下采取某个动作的好坏。
Agent的目标
最大化累积奖励:代理的主要目标是通过学习最优策略来最大化获得的奖励。
什么是 End-to-End Approach?
“End-to-end
approach”在强化学习和其他机器学习领域中是一种常见的方法。它指的是一个系统或模型能够直接从输入到输出进行处理,而不需要手动设计的中间步骤或特征工程。
定义
定义:在这种方法中,原始数据(例如图像、声音或状态信息)作为输入,经过一个复杂的模型(如深度神经网络),最终输出决策或预测。这个过程是连续的,没有人为干预。
特点
自动化:减少了对手动特征提取的依赖,允许模型自主学习最相关的特征。
简化流程:从输入到输出的流程更加直观,可以使用单个模型替代多个模块。
高效性:通过优化整个模型,可以提高性能,尤其是在大规模数据集上。
优势与挑战
优势:
灵活性:适用于多种类型的数据和任务。
通用性:可扩展到更复杂的任务,如视频游戏、机器人控制等。
挑战:
数据需求:通常需要大量的数据和计算资源来训练。
不稳定性:训练过程可能不稳定,难以收敛。
示例
自动驾驶:车辆通过摄像头获取环境信息,使用深度学习模型直接输出控制命令(例如转向、加速)。
AlphaGo:该系统将棋盘状态作为输入,经过深度神经网络后输出最佳走法。
Fuzzy Bayesian Reinforcement Learning (RB-RL)
Fuzzy Bayesian Reinforcement Learning (RB-RL)
是一种结合了模糊逻辑、贝叶斯方法和强化学习的系统,旨在处理不确定性并提高决策过程的灵活性和可靠性。
系统组成部分
- a. 强化学习 (RL)
基本概念:通过与环境的交互来学习一个策略,以最大化累积奖励。
代理:在 RL 框架中,代理根据当前状态选择动作,并基于环境反馈(奖励)更新其策略。 - b. 模糊逻辑
目的:处理不确定性和模糊性,使得系统能够在不完全信息下进行推理。
模糊集合:使用模糊集合来表示状态和动作,允许更为柔性的判断,而非传统的二元划分(如“真”或“假”)。 - c. 贝叶斯方法
不确定性处理:利用贝叶斯推断来量化和更新对环境模型的信任度。通过先验知识和观察数据逐步调整对状态和动作的理解。
系统工作原理
- 状态感知:代理通过传感器获取环境状态,并将这些状态转换为模糊输入。
- 模糊推理:使用模糊规则库对模糊状态进行推理,以生成可能的动作输出。
- 贝叶斯更新:在接收到环境反馈后,使用贝叶斯更新来调整对环境模型的信任度,从而优化未来的决策。
- 强化学习更新:结合奖励信号,通过强化学习算法(如Q-learning或Policy Gradient方法)更新策略,以改善代理的表现。
贝叶斯方法
基础_条件概率
条件概率是指在已知某个事件发生的情况下,另一个事件发生的概率。
定义
如果有两个事件 A A A 和 B B B,则事件 A A A在事件 B B B发生的条件下的条件概率,记作 P ( A ∣ B ) P(A | B) P(A∣B),其定义为:
P ( A ∣ B ) = P ( A ∩ B ) P ( B ) ( P ( B ) > 0 ) P(A | B) = \frac{P(A \cap B)}{P(B)} \quad (P(B) > 0) P(A∣B)=P(B)P(A∩B)(P(B)>0)
其中:
- P ( A ∣ B ) P(A | B) P(A∣B):在事件 B B B 发生的情况下,事件 A A A 发生的概率。
- P ( A ∩ B ) P(A \cap B) P(A∩B):事件 A A A和事件 B B B同时发生的概率,即它们的交集。
- P ( B ) P(B) P(B):事件 B B B 发生的概率,且必须大于零。
贝叶斯定理
贝叶斯定理是贝叶斯方法的核心,它描述了如何通过新证据更新先验概率。定理的数学表达为:
P ( H ∣ E ) = P ( E ∣ H ) ⋅ P ( H ) P ( E ) P(H | E) = \frac{P(E | H) \cdot P(H)}{P(E)} P(H∣E)=P(E)P(E∣H)⋅P(H)
其中:
P ( H ∣ E ) P(H | E) P(H∣E):后验概率,即在观察到证据 ( E ) 后,假设 ( H ) 为真的概率。
- H H H是我们感兴趣的假设或事件。
- E E E 是我们观察到的证据或数据。
P ( E ∣ H ) P(E | H) P(E∣H):似然函数,即假设 ( H ) 为真时,观察到证据 ( E ) 的概率。
P ( H ) P(H) P(H):先验概率,即在未观察到证据之前,假设 ( H ) 为真的初始概率。
P ( E ) P(E) P(E):边际概率,即观察到证据 ( E ) 的总体概率,可以通过所有可能的假设计算得出:
P ( E ) = ∑ H i P ( E ∣ H i ) ⋅ P ( H i ) P(E) = \sum_{H_i} P(E | H_i) \cdot P(H_i) P(E)=Hi∑P(E∣Hi)⋅P(Hi)
示例
- 医疗诊断
假设我们要确定患者是否患有流感 H H H,并且我们得到了一个检测结果 E E E。
- 先验概率: P ( H ) = 0.05 P(H) = 0.05 P(H)=0.05(即 5% 的人群中有流感)
- 似然性:如果患者真的有流感,测试阳性的概率为 P ( E ∣ H ) = 0.9 P(E|H) = 0.9 P(E∣H)=0.9(90% 的敏感性)。
如果患者没有流感,测试阴性的概率 P ( E ∣ H ˉ ) = 0.1 P(E|\bar H) = 0.1 P(E∣Hˉ)=0.1(10% 的假阳性率)。 - 边际似然 P ( E ) P(E) P(E)可以计算如下:
P ( E ) = P ( E ∣ H ) ⋅ P ( H ) + P ( E ∣ H ˉ ) ⋅ P ( H ˉ ) P(E) = P(E|H) \cdot P(H) + P(E|\bar H) \cdot P(\bar H) P(E)=P(E∣H)⋅P(H)+P(E∣Hˉ)⋅P(Hˉ)
将具体值代入:
P ( E ) = 0.9 × 0.05 + 0.1 × 0.95 = 0.045 + 0.095 = 0.14 P(E) = 0.9 \times 0.05 + 0.1 \times 0.95 = 0.045 + 0.095 = 0.14 P(E)=0.9×0.05+0.1×0.95=0.045+0.095=0.14
然后应用贝叶斯定理计算后验概率:
P ( H ∣ E ) = P ( E ∣ H ) ⋅ P ( H ) P ( E ) = 0.9 × 0.05 0.14 ≈ 0.3214 P(H|E) = \frac{P(E|H) \cdot P(H)}{P(E)} = \frac{0.9 \times 0.05}{0.14} \approx 0.3214 P(H∣E)=P(E)P(E∣H)⋅P(H)=0.140.9×0.05≈0.3214
这意味着,在测试为阳性的情况下,患者实际患有流感的概率约为 32.14%。
敏感性
在医疗测试中,敏感性(sensitivity) 是指测试正确识别患病个体的能力。具体来说,敏感性表示的是当患者确实患有某种疾病时,测试结果阳性的概率。对于流感检测,其含义可以解释为:
定义:如果一个患者真的有流感(假设 H H H 为“患者有流感”),那么测试结果为阳性的概率称为敏感性。
公式:用数学公式表示为:
敏感性 = P ( E ∣ H ) \text{敏感性} = P(E|H) 敏感性=P(E∣H)
其中:
- E E E表示测试结果为阳性。
- H H H表示患者确实患有流感。
例子:
假设有100个流感患者进行测试。如果其中90个患者的测试结果为阳性,那么这个测试的敏感性就是90%。即:
P ( E ∣ H ) = 测试阳性且有流感的患者数 总的有流感患者数 = 90 100 = 0.9 P(E|H) = \frac{\text{测试阳性且有流感的患者数}}{\text{总的有流感患者数}} = \frac{90}{100} = 0.9 P(E∣H)=总的有流感患者数测试阳性且有流感的患者数=10090=0.9
Q-learning强化学习算法
Q-learning是一种强化学习算法,用于使智能体(agent)在环境中通过与环境的互动来学习最优策略。它属于无模型的强化学习方法,不需要环境的具体模型,只依赖于智能体从环境中获得的奖励和状态信息。
Q-learning的基本概念
- 状态(State, S):智能体在环境中的一个特定情况或配置。
- 动作(Action, A):智能体可以在给定状态下采取的操作。
- 奖励(Reward, R):智能体执行某个动作后,环境反馈给智能体的分数或价值,用以指导学习。
- 策略(Policy, π):智能体选择动作的规则,可以是确定性(总是选择同一动作)或随机性(根据概率选择动作)。
- Q值(Q-value):表示在某一状态下执行某个动作所期望的累积奖励。Q值函数 Q ( s , a ) Q(s, a) Q(s,a)表示在状态 s s s 下执行动作 a a a 的预期回报。
Q-learning算法核心步骤
-
初始化
初始化Q值表 Q ( s , a ) Q(s, a) Q(s,a),通常将所有Q值设为零或小的随机值。 -
选择动作
智能体在某一状态 s s s 下选择一个动作 a a a。可以使用 ε-greedy 策略:
以概率 1 − ϵ 1 - \epsilon 1−ϵ选择当前Q值最高的动作(利用),即 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)。
以概率 ϵ \epsilon ϵ 随机选择一个动作(探索)。 -
执行动作
智能体在状态 s s s下执行动作 a a a,然后转移到新状态 s ′ s' s′,并接收到奖励 r r r。 -
更新Q值
使用贝尔曼方程更新Q值:
Q ( s , a ) ← Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma \max_{a'} Q(s', a') - Q(s, a)] Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]
其中:
- α \alpha α:学习率 0 < α ≤ 1 0 < α ≤ 1 0<α≤1,决定了新信息对当前 Q 值的影响程度。较大的 α \alpha α 值使得新的经验更快地影响旧的 Q 值,而较小的 α \alpha α 值则意味着学习过程更为平滑和稳定。
- r r r:从状态 s s s采取动作 a a a 后获得的即时奖励。。
- γ \gamma γ:折扣因子 0 ≤ γ < 1 0 ≤ γ < 1 0≤γ<1,用于权衡当前奖励与未来奖励的重要性。 γ \gamma γ越接近 1,代理越重视未来的奖励;相反,如果 γ \gamma γ较小,则代理更关注短期奖励。
- max a ′ Q ( s ′ , a ′ ) \max_{a'} Q(s', a') maxa′Q(s′,a′): 在新状态 s ′ s' s′ 中,所有可能动作 a ′ a' a′ 的最大 Q 值。这一项反映了智能体在新状态下的最佳未来预期回报。
-
状态转移
将状态更新为新状态 s ′ s' s′。 -
重复
重复步骤 2 至 5,直到达到终止条件(如收敛、达到固定的迭代次数等)。
分析
Q ( s , a ) ← Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma \max_{a'} Q(s', a') - Q(s, a)] Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]
计算目标:
( r + γ max a ′ Q ( s ′ , a ′ ) ) ( r + \gamma \max_{a'} Q(s', a') ) (r+γmaxa′Q(s′,a′)): 这一部分代表了在当前状态 s s s下采取动作 a a a 所得到的目标值。它由即时奖励 r r r加上从状态 s ′ s' s′ 开始采取最佳动作后的期望回报构成。
计算误差:
( r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ) ( r + \gamma \max_{a'} Q(s', a') - Q(s, a) ) (r+γmaxa′Q(s′,a′)−Q(s,a)): 这一部分称为 时序差分误差 T D e r r o r TD error TDerror,用于衡量当前 Q 值与目标值之间的差距。这个误差表明当前的 Q 值 Q ( s , a ) Q(s, a) Q(s,a)低估了未来的潜在回报。
更新 Q 值:
-
应用学习率 α \alpha α 来调整当前的 Q 值,使其向目标值靠拢。更新后的 Q 值更好地反映了在状态 s s s 下采取动作 a a a的真实价值。
-
当 α \alpha α较大时,Q 值会迅速向目标值移动,但可能会引发不稳定;而当 α \alpha α较小时,更新会缓慢,能够更好地保留历史知识,但可能会导致收敛速度变慢。
表达式解析 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)
表达式 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)是强化学习中的一个重要概念,涉及到行为选择(action selection)和价值函数(value function)的计算。
符号解释
a a a:这是我们要选择的动作。
s s s:表示当前的状态。
Q ( s , a ) Q(s, a) Q(s,a):是一个称为“行动价值函数”(Action-Value Function)的函数,它表示在状态 s s s下采取动作 a a a所期望获得的累积奖励(即在该状态下执行该动作以及之后的最佳策略所得到的预期总回报)。
arg max a \arg\max_a argmaxa:这个符号表示“使得(maximize)某个函数的变量”的取值。在这里,它表示对于所有可能的动作 a a a,找出那个可以最大化 Q ( s , a ) Q(s, a) Q(s,a)的动作。
整体含义
整合以上内容,表达式 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)的意思是:
在给定状态 s s s的情况下,选择那个能够使得行动价值函数 Q ( s , a ) Q(s, a) Q(s,a)最大化的动作 a a a。
应用场景
这种选择方式通常用于强化学习中的贪婪策略 ( g r e e d y p o l i c y ) (greedy policy) (greedypolicy)或ε-贪婪策略 ( e p s i l o n − g r e e d y p o l i c y ) (epsilon-greedy policy) (epsilon−greedypolicy),其中智能体会倾向于选择当前认为最优的动作:
- 贪婪策略:始终选择能够最大化 Q ( s , a ) Q(s, a) Q(s,a) 的动作。
- ε-贪婪策略:大多数时间选择 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a),但有小概率随机选择其他动作,以探索新的可能动作。
例子
假设在一个特定的状态 s s s下,Q值如下:
Q ( s , a 1 ) = 10 Q(s, a_1) = 10 Q(s,a1)=10
Q ( s , a 2 ) = 15 Q(s, a_2) = 15 Q(s,a2)=15
Q ( s , a 3 ) = 8 Q(s, a_3) = 8 Q(s,a3)=8
在这种情况下,表达式 a = arg max a Q ( s , a ) a = \arg\max_a Q(s, a) a=argmaxaQ(s,a)将返回 a 2 a_2 a2,因为它对应的 Q 值最大 15 15 15。
ε-greedy 策略
ε-greedy 策略是一种广泛应用于强化学习和多臂老虎机(multi-armed bandit)问题中的探索与利用平衡策略。它的核心思想是在决策过程中,既要利用已经知道的信息(即选择当前看来最优的动作),又要进行一定程度的探索,以发现可能更优的动作。
基本概念
在 ε-greedy 策略中,算法在每个决策时会以 ε 的概率进行随机选择(探索),而以 (1 - ε) 的概率选择当前已知的最佳动作(利用)。具体来说:
- ε:一个介于 0 和 1 之间的值,表示探索的概率。
- 利用:选择当前估计收益最高的动作。
- 探索:随机选择一个动作,不考虑其估计收益。
策略流程
- 初始化:为每个动作初始化一个价值估计(通常为0),并设置 ε 值。
- 每一步决策:
- 生成一个随机数(例如从均匀分布中取样)。
- 如果这个随机数小于 ε,则执行探索,随机选择一个动作。
- 否则,选择当前最优动作,即估计收益最高的动作。
- 更新:执行所选的动作后,根据获得的奖励更新对应行为的估计值。
数学表示
假设有 K K K 个动作,每个动作的真实期望奖励为 Q ∗ ( a ) Q^*(a) Q∗(a),其中 a a a是动作的索引。
选择动作: a = { argmax a Q ( a ) with probability 1 − ϵ random action with probability ϵ a = \begin{cases} \text{argmax}_a Q(a) & \text{with probability } 1 - \epsilon \\ \text{random action} & \text{with probability } \epsilon \end{cases} a={argmaxaQ(a)random actionwith probability 1−ϵwith probability ϵ
优缺点
优点
- 简单易实现:ε-greedy 策略非常直观,容易理解和编码。
- 有效的探索与利用平衡:通过调整 ε 的大小,可以控制探索的频率,适应不同场景的需求。
缺点 - 固定探索概率:当 ε 固定时,可能导致在学习阶段过早地陷入局部最优解。在某些情况下,可能需要动态调整 ε 值。
- 探索效率低:在一些复杂问题中,完全随机地选择动作可能不会有效地探索状态空间。
改进方法
为了克服固定 ε 值带来的不足,研究人员提出了一些改进版本的 ε-greedy 策略,例如:
-
自适应 ε − g r e e d y ε-greedy ε−greedy:根据学习过程动态调整 ε 值。例如,随着时间推移逐渐减小 ε,以增加对当前最优动作的利用。
-
D e c a y ε Decay ε Decayε:在训练期间,随着迭代次数的增多逐渐减少 ε 值,这样初期可以更多地探索,后期更集中于利用。
-
Upper Confidence Bound (UCB):使用基于置信区间的方法来平衡探索与利用。
应用场景
ε-greedy 策略被广泛应用于以下场景:
- 在线广告推荐:决定展示哪些广告以最大化点击率。
- 游戏智能体:训练自动玩游戏的智能体,通过探索新策略提升表现。
- 机器人控制:在不确定环境中进行决策。
Policy Gradient强化学习算法
Policy Gradient 方法是一类强化学习算法,直接优化策略(policy),以最大化某个性能指标(通常是累积奖励)。与基于值的方法(如 Q-learning)不同,Policy Gradient 方法不需要首先估计状态或动作的价值,而是通过对策略本身进行优化来学习。以下是对 Policy Gradient 方法的详细介绍。
基本概念
在强化学习中,策略(policy)是智能体决定在给定状态下采取何种动作的方法。Policy Gradient 方法通过参数化策略并优化这些参数来直接改进策略。一般来说,策略可以用以下形式表示:
- 确定性策略:给定状态 s s s,输出一个特定的动作 a a a,即 a = π ( s ; θ ) a = \pi(s; \theta) a=π(s;θ)。
- 随机策略:给定状态 s s s,输出一个概率分布 P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ),代表在状态 s s s下选择每个动作 a a a 的概率。
表达式 a = π ( s ; θ ) a = \pi(s; \theta) a=π(s;θ)分析
符号解释L:
a a a:代表智能体将要选择的动作(action)。
s s s:代表当前的环境状态(state)。
π \pi π:表示策略(policy),它定义了智能体在给定状态下应采取的行动。策略可以是确定性的(deterministic)或随机的(stochastic)。
θ \theta θ:代表策略的参数(parameters)。这些参数通常是由某种模型(如神经网络)学习得到的,用于调整策略以提高智能体的表现。
这个表达式的意思是:在当前状态 s s s 下,使用策略 π \pi π和其参数 θ \theta θ来决定智能体的动作 a a a。具体来说,这表明智能体的决策依赖于状态和策略参数。
例子
假设你有一个强化学习的任务,其中一个简单的策略可以用一个线性函数表示:
π ( s ; θ ) = softmax ( W ⋅ s + b ) \pi(s; \theta) = \text{softmax}(W \cdot s + b) π(s;θ)=softmax(W⋅s+b)
这里, W W W和 b b b是策略的参数, s o f t m a x softmax softmax 函数用于将输出转换为概率分布。给定状态 s s s,你可以通过上面的公式计算出各个可用动作的概率,进而选择相应的动作 a a a。
表达式 P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ)分析
符号解释
P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ):表示在给定状态 s s s和参数 θ \theta θ 的情况下,选择动作 a a a 的概率。
a a a:智能体可能采取的动作(action)。
s s s:当前的环境状态(state)。
θ \theta θ:策略的参数(parameters),通常由学习过程得到,用于调整策略以优化决策。
该表达式的意思是:在特定状态 s s s下,基于策略参数 θ \theta θ选择动作 a a a的概率。这种概率分布通常用于描述智能体在不同状态下如何选择动作。
策略的类型
根据策略类型的不同, P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ)可以有不同的表现形式:
随机策略:在这种策略下,动作的选择是随机的。例如,你可以使用 S o f t m a x Softmax Softmax函数来定义概率分布:
P ( a ∣ s ; θ ) = e Q ( s , a ; θ ) ∑ a ′ e Q ( s , a ′ ; θ ) P(a|s; \theta) = \frac{e^{Q(s, a; \theta)}}{\sum_{a'} e^{Q(s, a'; \theta)}} P(a∣s;θ)=∑a′eQ(s,a′;θ)eQ(s,a;θ)
这里, Q ( s , a ; θ ) Q(s, a; \theta) Q(s,a;θ) 表示在状态 s s s 下采取动作 a a a 的估计价值。
确定性策略:在某些情况下,策略可能是确定性的,即在给定状态下总是选择同一动作。在这种情况下,可以将 P ( a ∣ s ; θ ) P(a|s; \theta) P(a∣s;θ)表示为 Dirac 函数:
P ( a ∣ s ; θ ) = { 1 if a = π ( s ; θ ) 0 otherwise P(a|s; \theta) = \begin{cases} 1 & \text{if } a = \pi(s; \theta) \\ 0 & \text{otherwise} \end{cases} P(a∣s;θ)={10if a=π(s;θ)otherwise
策略的优化目标
在 Policy Gradient 方法中,我们的目标是最大化预期奖励,通常定义为:
J ( θ ) = E τ ∼ π θ [ ∑ t = 0 T r t ] J(\theta) = \mathbb{E}{\tau \sim \pi{\theta}} \left[ \sum_{t=0}^{T} r_t \right] J(θ)=Eτ∼πθ[t=0∑Trt]
其中:
- θ \theta θ是策略的参数。
- τ \tau τ 是从策略 π \pi π中生成的轨迹(即一系列状态、动作和奖励的序列)。
- r t r_t rt是在时间步 t t t 收到的奖励。
梯度的计算
为了优化 J ( θ ) J(\theta) J(θ),我们使用梯度上升法。根据链式法则,策略梯度可以通过以下公式计算:
∇ J ( θ ) = E τ ∼ π θ [ ∑ t = 0 T ∇ log π θ ( a t ∣ s t ) R ( τ ) ] \nabla J(\theta) = \mathbb{E}{\tau \sim \pi{\theta}} \left[ \sum_{t=0}^{T} \nabla \log \pi_{\theta}(a_t|s_t) R(\tau) \right] ∇J(θ)=Eτ∼πθ[t=0∑T∇logπθ(at∣st)R(τ)]
其中:
- R ( τ ) R(\tau) R(τ) 是整个轨迹的回报,可以是从时间步 t t t开始的累计奖励。
- ∇ log π θ ( a t ∣ s t ) \nabla \log \pi_{\theta}(a_t|s_t) ∇logπθ(at∣st)是对数似然的梯度,用于更新策略。
这种方法利用了“强化学习中的策略梯度定理”,表明通过乘以回报 R ( τ ) R(\tau) R(τ),我们可以将高奖励的动作增强,而低奖励的动作减弱。
常见的 Policy Gradient 算法
REINFORCE:
最基本的 Policy Gradient 算法。
在每次完成一次完整的轨迹后,利用轨迹的总回报更新策略。
Actor-Critic:
结合了值函数和策略的优点。
Actor(策略)负责选择动作,Critic(价值函数)评估动作的价值。
使用 TD 方法来估计价值,从而减少方差,提高学习效率。
Proximal Policy Optimization (PPO):
一种现代的、强大的 Policy Gradient 方法。
通过限制每次更新的幅度来提高稳定性,使用剪切损失函数来避免过大的参数更新。
Trust Region Policy Optimization (TRPO):
通过确保每次更新都在信任区域内,以达到更稳定的学习效果。
优缺点
优点
- 直接优化策略:与基于值的方法相比,更加自然且能处理连续动作空间。
- 适应性:可以灵活应用于多种问题,包括部分可观测环境。
缺点 - 高方差:梯度估计的方差可能很大,导致学习过程不稳定。
- 收敛速度慢:由于直接优化的性质,可能比较慢,尤其是在复杂任务中。
应用场景
Policy Gradient 方法被广泛应用于以下领域:
- 机器人控制:训练机器人在复杂环境中执行任务。
- 游戏 AI:在视频游戏中训练智能体。
- 推荐系统:个性化推荐内容时,通过考虑用户反馈进行优化。
总之,Policy Gradient 方法是强化学习中的重要类别,适合解决各种决策问题,其灵活性和强大能力使其成为研究和实际应用中的热门选择。
Softmax 函数
Softmax 函数是一个常用的数学函数,特别在机器学习和深度学习中,它用于将一组实数值转换为一个概率分布。Softmax 函数通常用于多类分类任务中,将模型的输出(例如神经网络的 logits)转化为每个类别的预测概率。
定义
给定一个实数向量 z = [ z 1 , z 2 , … , z K ] \mathbf{z} = [z_1, z_2, \ldots, z_K] z=[z1,z2,…,zK],Softmax 函数定义为:
σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , 2 , … , K \sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} \quad \text{for } i = 1, 2, \ldots, K σ(z)i=∑j=1Kezjezifor i=1,2,…,K
其中:
- σ ( z ) i \sigma(\mathbf{z})_i σ(z)i是第 i i i个类别的概率。
- K K K 是类别的总数。
- e e e是自然对数的底。
表达式 σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , 2 , … , K \sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} \quad \text{for } i = 1, 2, \ldots, K σ(z)i=∑j=1Kezjezifor i=1,2,…,K各部分解释
-
e z i e^{z_i} ezi:
这个部分表示对 z i z_i zi 应用指数函数。对于输入向量中的每个元素 z i z_i zi,我们计算其指数值。这是因为指数函数可以将输入值放大,使得较大的 z i z_i zi 值在最终结果中占据更大的权重。 -
∑ j = 1 K e z j \sum_{j=1}^{K} e^{z_j} ∑j=1Kezj:
这个部分是对所有输入 z z z元素的指数值求和,从 j = 1 j = 1 j=1到 K K K(即所有类别的数量)。这个总和提供了一个归一化的基准,使得Softmax输出的概率能够被转换到一个有效的概率分布(所有概率值之和为1)。 -
整体的意思:
整个表达式 e z i ∑ j = 1 K e z j \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} ∑j=1Kezjezi是说,对于特定的类别 i i i的概率 P ( i ) P(i) P(i),它等于该类别的指数值 e z i e^{z_i} ezi 与所有类别指数值总和 ∑ j = 1 K e z j \sum_{j=1}^{K} e^{z_j} ∑j=1Kezj 的比值。这意味着我们关注的是类别 i i i 的“相对重要性”或“相对大小”,以及它与其他类别的关系。
概率解释
通过这种方式,Softmax 函数确保了输出的概率能够反映模型对每个类别的信心:
如果某个 z i z_i zi很大, e z i e^{z_i} ezi 也会很大,相应的概率 P ( i ) P(i) P(i)也会高。
如果其他 z j z_j zj较小,那么它们的指数值就相对较小,导致 ∑ j = 1 K e z j \sum_{j=1}^{K} e^{z_j} ∑j=1Kezj 不会显著增加,从而使得概率 P ( i ) P(i) P(i)更高。
例子
假设有三个类别的 l o g i t s logits logits 为 z = [ 2.0 , 1.0 , 0.1 ] z = [2.0, 1.0, 0.1] z=[2.0,1.0,0.1]:
计算各类的指数值:
e 2.0 ≈ 7.39 e^{2.0} \approx 7.39 e2.0≈7.39
e 1.0 ≈ 2.72 e^{1.0} \approx 2.72 e1.0≈2.72
e 0.1 ≈ 1.11 e^{0.1} \approx 1.11 e0.1≈1.11
计算总和:
∑ j = 1 3 e z j = 7.39 + 2.72 + 1.11 ≈ 11.22 \sum_{j=1}^{3} e^{z_j} = 7.39 + 2.72 + 1.11 \approx 11.22 ∑j=13ezj=7.39+2.72+1.11≈11.22
计算各类的概率:
对于第一类: σ ( z 1 ) = e 2.0 11.22 ≈ 0.66 \sigma(z_1) = \frac{e^{2.0}}{11.22} \approx 0.66 σ(z1)=11.22e2.0≈0.66
对于第二类: σ ( z 2 ) = e 1.0 11.22 ≈ 0.24 \sigma(z_2) = \frac{e^{1.0}}{11.22} \approx 0.24 σ(z2)=11.22e1.0≈0.24
对于第三类: σ ( z 3 ) = e 0.1 11.22 ≈ 0.10 \sigma(z_3) = \frac{e^{0.1}}{11.22} \approx 0.10 σ(z3)=11.22e0.1≈0.10
通过这种方法,Softmax 将 logits 转换为概率分布,使得每个类别的输出可用于做出决策。
为什么Softmax 函数中使用指数化
在机器学习中,
logit
通常指的是未经过激活函数(如 Sigmoid 或 Softmax)处理的原始预测值。
原因:
- 放大差异性
增强分类效果:指数函数能够放大输入值之间的差异。对于 logits(模型的输出),较大的值会导致其对应的概率值显著高于其他类别。例如,如果某个类别的 logit 值非常大,而其他类别的 logit 值相对较小,指数化后,这个类别的概率会远远高于其他类别,使得分类器更加自信。这种放大效果有助于模型在区分不同类别时表现得更加明确。 - 确保正值
输出正数:通过应用指数函数,所有的输出值都会是正数 ( e x > 0 e^x > 0 ex>0对于任何实数 x x x)。这是处理概率分布时所必需的,因为概率本身必须是非负的。 - 归一化
简化计算:Softmax 的形式就是为了将 logits 转换为一个有效的概率分布,其总和为 1。通过在分母中使用所有类别的指数和,可以保证每个类别的概率是相对于其他类别的,这种归一化方式使得我们可以直接比较各个类别的概率。 - 平滑决策
避免过度自信:如果不使用指数化,类别间的微小差异可能不会显著影响最终的概率结果,从而导致模型在做决策时变得不够敏感。而使用指数化后,即使是微弱的差异也能被放大,这有利于模型做出更细致的判断。 - 数学性质
导数的便利性:在优化算法(如梯度下降)中,使用指数函数的连续性和可导性可以简化反向传播过程中的计算,使得更新权重时更加高效。