RL_足球教练

文章目录


前言

论文笔记——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-learningPolicy Gradient方法)更新策略,以改善代理的表现。

贝叶斯方法

基础_条件概率

条件概率是指在已知某个事件发生的情况下,另一个事件发生的概率。

定义

如果有两个事件 A A A B B B,则事件 A A A在事件 B B B发生的条件下的条件概率,记作 P ( A ∣ B ) P(A | B) P(AB),其定义为:

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(AB)=P(B)P(AB)(P(B)>0)
其中:

  • P ( A ∣ B ) P(A | B) P(AB):在事件 B B B 发生的情况下,事件 A A A 发生的概率。
  • P ( A ∩ B ) P(A \cap B) P(AB):事件 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(HE)=P(E)P(EH)P(H)

其中:

P ( H ∣ E ) P(H | E) P(HE):后验概率,即在观察到证据 ( E ) 后,假设 ( H ) 为真的概率。

  • H H H是我们感兴趣的假设或事件。
  • E E E 是我们观察到的证据或数据。

P ( E ∣ H ) P(E | H) P(EH):似然函数,即假设 ( 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)=HiP(EHi)P(Hi)

示例

  1. 医疗诊断

假设我们要确定患者是否患有流感 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(EH)=0.9(90% 的敏感性)。
    如果患者没有流感,测试阴性的概率 P ( E ∣ H ˉ ) = 0.1 P(E|\bar H) = 0.1 P(EHˉ)=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(EH)P(H)+P(EHˉ)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(HE)=P(E)P(EH)P(H)=0.140.9×0.050.3214

这意味着,在测试为阳性的情况下,患者实际患有流感的概率约为 32.14%。

敏感性

在医疗测试中,敏感性(sensitivity) 是指测试正确识别患病个体的能力。具体来说,敏感性表示的是当患者确实患有某种疾病时,测试结果阳性的概率。对于流感检测,其含义可以解释为:

定义:如果一个患者真的有流感(假设 H H H 为“患者有流感”),那么测试结果为阳性的概率称为敏感性。
公式:用数学公式表示为:
敏感性 = P ( E ∣ H ) \text{敏感性} = P(E|H) 敏感性=P(EH)

其中:

  • 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(EH)=总的有流感患者数测试阳性且有流感的患者数=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算法核心步骤

在这里插入图片描述

  1. 初始化
    初始化Q值表 Q ( s , a ) Q(s, a) Q(s,a),通常将所有Q值设为零或小的随机值。

  2. 选择动作
    智能体在某一状态 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 ϵ 随机选择一个动作(探索)。

  3. 执行动作
    智能体在状态 s s s下执行动作 a a a,然后转移到新状态 s ′ s' s,并接收到奖励 r r r

  4. 更新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+γamaxQ(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') maxaQ(s,a): 在新状态 s ′ s' s 中,所有可能动作 a ′ a' a 的最大 Q 值。这一项反映了智能体在新状态下的最佳未来预期回报。
  1. 状态转移
    将状态更新为新状态 s ′ s' s

  2. 重复
    重复步骤 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+γamaxQ(s,a)Q(s,a)]

计算目标:
( r + γ max ⁡ a ′ Q ( s ′ , a ′ ) ) ( r + \gamma \max_{a'} Q(s', a') ) (r+γmaxaQ(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+γmaxaQ(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) epsilongreedypolicy,其中智能体会倾向于选择当前认为最优的动作:

  • 贪婪策略:始终选择能够最大化 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 之间的值,表示探索的概率。
  • 利用:选择当前估计收益最高的动作。
  • 探索:随机选择一个动作,不考虑其估计收益。

策略流程

  1. 初始化:为每个动作初始化一个价值估计(通常为0),并设置 ε 值。
  2. 每一步决策:
  • 生成一个随机数(例如从均匀分布中取样)。
  • 如果这个随机数小于 ε,则执行探索,随机选择一个动作。
  • 否则,选择当前最优动作,即估计收益最高的动作。
  1. 更新:执行所选的动作后,根据获得的奖励更新对应行为的估计值。

数学表示

假设有 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(as;θ),代表在状态 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(Ws+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(as;θ)分析

符号解释
P ( a ∣ s ; θ ) P(a|s; \theta) P(as;θ):表示在给定状态 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(as;θ)可以有不同的表现形式:
随机策略:在这种策略下,动作的选择是随机的。例如,你可以使用 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(as;θ)=aeQ(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(as;θ)表示为 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(as;θ)={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=0Trt]
其中:

  • θ \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=0Tlogπθ(atst)R(τ)]

其中:

  • R ( τ ) R(\tau) R(τ) 是整个轨迹的回报,可以是从时间步 t t t开始的累计奖励。
  • ∇ log ⁡ π θ ( a t ∣ s t ) \nabla \log \pi_{\theta}(a_t|s_t) logπθ(atst)是对数似然的梯度,用于更新策略。

这种方法利用了“强化学习中的策略梯度定理”,表明通过乘以回报 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.07.39
e 1.0 ≈ 2.72 e^{1.0} \approx 2.72 e1.02.72
e 0.1 ≈ 1.11 e^{0.1} \approx 1.11 e0.11.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.1111.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.00.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.00.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.10.10
通过这种方法,Softmax 将 logits 转换为概率分布,使得每个类别的输出可用于做出决策。

为什么Softmax 函数中使用指数化

在机器学习中,logit 通常指的是未经过激活函数(如 Sigmoid 或 Softmax)处理的原始预测值

原因:

  1. 放大差异性
    增强分类效果:指数函数能够放大输入值之间的差异。对于 logits(模型的输出),较大的值会导致其对应的概率值显著高于其他类别。例如,如果某个类别的 logit 值非常大,而其他类别的 logit 值相对较小,指数化后,这个类别的概率会远远高于其他类别,使得分类器更加自信。这种放大效果有助于模型在区分不同类别时表现得更加明确。
  2. 确保正值
    输出正数:通过应用指数函数,所有的输出值都会是正数 ( e x > 0 e^x > 0 ex>0对于任何实数 x x x)。这是处理概率分布时所必需的,因为概率本身必须是非负的。
  3. 归一化
    简化计算:Softmax 的形式就是为了将 logits 转换为一个有效的概率分布,其总和为 1。通过在分母中使用所有类别的指数和,可以保证每个类别的概率是相对于其他类别的,这种归一化方式使得我们可以直接比较各个类别的概率。
  4. 平滑决策
    避免过度自信:如果不使用指数化,类别间的微小差异可能不会显著影响最终的概率结果,从而导致模型在做决策时变得不够敏感。而使用指数化后,即使是微弱的差异也能被放大,这有利于模型做出更细致的判断
  5. 数学性质
    导数的便利性:在优化算法(如梯度下降)中,使用指数函数的连续性和可导性可以简化反向传播过程中的计算,使得更新权重时更加高效。

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/440941.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pandas -----------------------基础知识(八)

Pandas内置Matplotlib 加载数据 import pandas as pdanscombe pd.read_csv(/root/pandas_code_ling/data/e_anscombe.csv) anscombe dataset_1 anscombe[anscombe[dataset]I] dataset_1dataset_1.describe() 提供数据 dataset_1 anscombe[anscombe[dataset]I] dataset_2 an…

【SQL】DDL语句

文章目录 1.SQL通用语法2.SQL的分类3.DDL3.1数据库操作3.2 表操作3.2.1 表操作--数据类型3.2.2 表操作--修改3.2.3 表操作--删除 SQL 全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库统一标准 。…

C++模板编程:深入理解分离编译的挑战与解决方案

文章目录 前言&#x1f34e;一、非类型模板参数1.1 基本概念1.2 非类型模板参数的语法1.3 非类型模板参数的限制1.4 非类型模板参数的应用1.5 typename关键字 &#x1f34e;二、类模板特化2.1 类模板特化的基本概念2.2 类模板特化的限制和规则2.3 类模板特化的应用 &#x1f34…

输电线路缺陷图像检测数据集,导线散股,塔材锈蚀两类,分别为581张和1407张,标注为xml和txt格式 1988张

输电线路缺陷图像检测数据集&#xff0c;分为导线散股&#xff0c;塔材锈蚀两类&#xff0c;分别为581张和1407张&#xff0c;标注为xml和txt格式 数据集名称 输电线路缺陷图像检测数据集 (Transmission Line Defect Detection Dataset) 数据集概述 该数据集是一个专门用于训…

查看 git log的过程中看到 :说明日志输出可能超出屏幕大小,系统进入了分页模式

在命令行提示符中&#xff0c;通常 : 表示系统等待进一步的输入。如果你在查看 git log 的过程中看到 :&#xff0c;说明日志输出可能超出屏幕大小&#xff0c;系统进入了分页模式&#xff0c;默认使用 less 命令查看内容。 此时你可以&#xff1a; 按 q 退出日志查看。按 En…

【图像处理】多幅不同焦距的同一个物体的平面图象,合成一幅具有立体效果的单幅图像原理(一)

合成一幅具有立体效果的单幅图像&#xff0c;通常是利用多个不同焦距的同一物体的平面图像&#xff0c;通过图像处理技术实现的。以下是该过程的基本原理&#xff1a; 1. 立体视觉原理 人眼的立体视觉是通过双眼观察物体的不同视角而获得的。两只眼睛的位置不同&#xff0c;使…

SSH -L 代理与反向代理转发详解

简介&#xff1a;SSH -L 选项用于设置本地端口转发&#xff0c;而反向代理转发则允许远程主机访问本地服务。本文将介绍如何使用 SSH -L 实现本地端口转发和反向代理转发&#xff0c;并提供示例以帮助您理解和应用这些技术。 历史攻略&#xff1a; Centos&#xff1a;设置代理…

百度文心智能体平台开发萌猫科研加油喵

百度文心智能体平台开发萌猫科研加油喵 在科研的道路上&#xff0c;研究生们常常面临着巨大的压力和挑战。为了给这个充满挑战的群体带来一些鼓励和温暖&#xff0c;我借助百度文心智能体平台开发了一个独特的智能体 《萌猫科研加油喵》。 一、百度文心智能体平台介绍 百度文…

设计模式之适配器模式(通俗易懂--代码辅助理解【Java版】)

文章目录 设计模式概述1、适配器模式2、适配器模式的使用场景3、优点4、缺点5、主要角色6、代码示例1&#xff09;UML图2&#xff09;源代码&#xff08;1&#xff09;定义一部手机&#xff0c;它有个typec口。&#xff08;2&#xff09;定义一个vga接口。&#xff08;3&#x…

如何用python抓取豆瓣电影TOP250

1.如何获取网站信息&#xff1f; &#xff08;1&#xff09;调用requests库、bs4库 #检查库是否下载好的方法&#xff1a;打开终端界面&#xff08;terminal&#xff09;输入pip install bs4, 如果返回的信息里有Successfully installed bs4 说明安装成功&#xff08;request…

操作系统 | 学习笔记 | 王道 | 3.1 内存管理概念

3 内存管理 3.1 内存管理概念 3.1.1 内存管理的基本原理和要求 内存可以存放数据&#xff0c;程序执行前需要先放到内存中才能被CPU处理—缓和cpu和磁盘之间的速度矛盾 内存管理的概念 虽然计算机技术飞速发展&#xff0c;内存容量也在不断扩大&#xff0c;但仍然不可能将所有…

Python面向对象基础

文章目录 1. 什么是面向对象1.1 常见的编程思想1.2 面向过程是什么1.3 什么是面向对象1.4 封装1.5 继承1.6 多态 2. 面向对象的概念2.1 两个重要概念&#xff1a;类和对象2.2 类2.3 对象2.4 self关键字 3. 对象属性3.1 什么是属性3.2 类外面访问属性3.3 类内部获取属性 1. 什么…

分治算法(4)_快速选择_库存管理III_面试题

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 分治算法(4)_快速选择_库存管理III_面试题 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f…

esp8266 at指令链接wifi时一直connect disconnest

那是你的连接wifi的名字密码有误或者热点有问题&#xff0c;看看热点是不是把设备拉入黑名单或者设置为5G或者连了校园网或者设置了最多链接设备

sqli-labs靶场第三关less-3

sqli-labs靶场第三关less-3 1、确定注入点 http://192.168.128.3/sq/Less-3/?id1 http://192.168.128.3/sq/Less-3/?id2 有不同回显&#xff0c;判断可能存在注入&#xff0c; 2、判断注入类型 输入 http://192.168.128.3/sq/Less-3/?id1 and 11 http://192.168.128.3/sq/L…

【js逆向学习】极志愿 javascript+python+rpc

JSRPC使用方式 逆向目标逆向过程逆向分析1、什么是 websocket2、websocket的原理3、总体过程3.1 环境说明3.2 python服务端代码3.3 python客户端代码 4、Sekiro-RPC4.1 执行方式4.2 客户端环境4.3 参数说明4.4 SK API4.5 python代码调试4.6 代码注入流程 逆向总结 逆向目标 网…

大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

基于SpringBoot健身房管理系统【附源码】

效果如下&#xff1a; 系统首页界面 系统注册详细页面 健身课程详细页面 后台登录界面 管理员主页面 员工界面 健身教练界面 员工主页面 健身教练主页面 研究背景 随着生活水平的提高和健康意识的增强&#xff0c;现代人越来越注重健身。健身房作为一种专业的健身场所&#x…

28 基于51单片机的两路电压检测(ADC0808)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;通过ADC0808获取两路电压&#xff0c;通过LCD1602显示 二、硬件资源 基于KEIL5编写C代码&#xff0c;PROTEUS8.15进行仿真&#xff0c;全部资源在页尾&#xff0c;提供…

No.6 笔记 | Linux操作系统基础:全面概览与核心要点

1. 简介与历史 1.1 起源 创始人&#xff1a;Linus Torvalds&#xff08;芬兰赫尔辛基大学学生&#xff09;初衷&#xff1a;设计一个替代Minix的全功能Unix操作系统首次发布&#xff1a;1991年10月5日&#xff0c;Linux v0.01版本 2. Linux特点 多用户多任务&#xff1a;用…