当前位置: 首页 > news >正文

【Introduction to Reinforcement Learning】翻译解读2

2.2 马尔可夫决策过程(MDPs)

马尔可夫决策过程(MDP)为顺序决策提供了框架,其中动作不仅影响即时奖励,还会影响未来结果。与多臂老虎机问题不同,MDP中的即时奖励与延迟奖励相平衡。在多臂老虎机问题中,目标是确定在状态 s s s下执行动作 a a a的价值,或者在MDP中,目标是衡量在假定采取最佳动作的情况下,采取动作 a a a在状态 s s s下的价值。正确评估干预的长期效应需要估计这些状态特定的值。MDPs由状态、动作和奖励 ( S , A , R ) (S, A, R) (S,A,R)组成。离散概率分布被分配给基于前一个状态和动作的随机变量 R t R_t Rt S t S_t St,并推导出这些变量的方程。一个系统被认为是马尔可夫的,当一个动作的结果不依赖于过去的动作和状态,仅依赖于当前状态时。马尔可夫性质要求状态包含过去交互的所有重要细节,这些交互影响未来结果。这一点是MDPs在RL中使用的基础。为了描述MDP的动态,我们使用状态转移概率函数 p ( s ′ , r ∣ s , a ) p(s' , r | s, a) p(s,rs,a),其定义如下:

p ( s ′ , r ∣ s , a ) ≡ Pr ⁡ { S t = s ′ , R t = r ∣ S t − 1 = s , A t − 1 = a } (9) p(s', r | s, a) \equiv \Pr\{S_t = s', R_t = r | S_{t-1} = s, A_{t-1} = a\} \tag{9} p(s,rs,a)Pr{St=s,Rt=rSt1=s,At1=a}(9)

其中,函数 p p p定义了MDP的动态。以下状态转移概率、状态-动作-下一个状态三元组的期望奖励可以通过四参数动态函数 p p p推导出来。我们可以推导出状态转移概率,状态-动作对的期望奖励,以及状态-动作-下一个状态三元组的期望奖励,具体公式如下:

p ( s ′ ∣ s , a ) ≡ Pr ⁡ { S t = s ′ ∣ S t − 1 = s , A t − 1 = a } = ∑ r p ( s ′ , r ∣ s , a ) (10) p(s' | s, a) \equiv \Pr\{S_t = s' | S_{t-1} = s, A_{t-1} = a\} = \sum_r p(s', r | s, a) \tag{10} p(ss,a)Pr{St=sSt1=s,At1=a}=rp(s,rs,a)(10)

r ( s , a ) ≡ E { R t ∣ S t − 1 = s , A t − 1 = a } = ∑ r r ⋅ p ( s ′ , r ∣ s , a ) (11) r(s, a) \equiv \mathbb{E}\{R_t | S_{t-1} = s, A_{t-1} = a\} = \sum_r r \cdot p(s', r | s, a) \tag{11} r(s,a)E{RtSt1=s,At1=a}=rrp(s,rs,a)(11)

r ( s , a , s ′ ) ≡ E { R t ∣ S t − 1 = s , A t − 1 = a , S t = s ′ } = ∑ r ∈ R r ⋅ p ( s ′ , r ∣ s , a ) (12) r(s, a, s') \equiv \mathbb{E}\{R_t | S_{t-1} = s, A_{t-1} = a, S_t = s'\} = \sum_{r \in R} r \cdot p(s', r | s, a) \tag{12} r(s,a,s)E{RtSt1=s,At1=a,St=s}=rRrp(s,rs,a)(12)

动作的概念包括所有与学习相关的决策,状态的概念则涵盖了所有为做出这些决策而可用的信息。作为MDP框架的一部分,目标导向行为通过交互被抽象化。任何学习问题都可以简化为三个信号:智能体与环境之间的动作、状态和奖励。许多应用已经证明了该框架的有效性。我们现在能够正式定义和解决RL问题。我们已经定义了奖励、目标、概率分布、环境和智能体等概念。然而,这些概念在定义时并不完全是形式化的。根据我们的论述,智能体的目标是最大化未来的奖励,但这一点该如何在数学上表达呢?回报(return),记作 G t G_t Gt,是从时间步 t t t开始所收到的奖励的累积和。在阶段性任务或事件驱动任务中,回报定义为:

G t ≡ R t + 1 + R t + 2 + ⋯ + R T (13) G_t \equiv R_{t+1} + R_{t+2} + \dots + R_T \tag{13} GtRt+1+Rt+2++RT(13)

在这里, G t G_t Gt是奖励序列的一个特定函数。阶段性任务是指智能体与环境之间的交互自然地按顺序发生,称为一个回合(episode),而任务则称为阶段性任务。一个很好的例子是经典的“吊死鬼”游戏(hangman)。在每个标准回合结束时,都将恢复初始状态。术语“new games”是指从终结状态之后到达的下一个状态,即结束回合后进入的状态。对于持续任务(如使用具有长期使用寿命的机器人)来说,任务通常会涉及持续的交互,且没有终结状态( T = ∞ T = \infty T=)。因此,对于持续任务的回报应当有不同的定义。若智能体始终能获得奖励,则回报可能是无限的。对于持续任务,当没有终结状态时,回报 G t G_t Gt被定义为未来奖励的折扣总和:

G t ≡ R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 (14) G_t \equiv R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \tag{14} GtRt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1(14)

其中, γ \gamma γ是折扣因子( 0 ≤ γ ≤ 1 0 \leq \gamma \leq 1 0γ1)。折扣因子影响未来奖励的当前价值。当 γ < 1 \gamma < 1 γ<1时,无限和会收敛到有限值。当 γ = 0 \gamma = 0 γ=0时,智能体最大化即时奖励;当 γ → 1 \gamma \to 1 γ1时,未来奖励的影响变得更大。我们还可以递归地表示回报 G t G_t Gt

G t ≡ R t + 1 + γ G t + 1 (15) G_t \equiv R_{t+1} + \gamma G_{t+1} \tag{15} GtRt+1+γGt+1(15)

如果奖励是非零且常数的,且 γ < 1 \gamma < 1 γ<1,则回报是有限的。对于阶段性任务和持续任务,当 T = ∞ T = \infty T= γ = 1 \gamma = 1 γ=1时,方程(16)适用:

G t ≡ ∑ k = t + 1 T γ k − t − 1 R k (16) G_t \equiv \sum_{k=t+1}^{T} \gamma^{k-t-1} R_k \tag{16} Gtk=t+1Tγkt1Rk(16)

2.3 策略与价值函数

价值函数估计智能体处于某一状态(或执行某一动作时)的期望回报。根据选择的动作,这些因素会有所不同。价值函数和策略之间存在联系,策略决定了根据状态选择动作的概率。价值函数可以分为两大类:状态价值函数动作价值函数。一个状态 s s s在策略 π \pi π下的价值函数 v π ( s ) v_{\pi}(s) vπ(s)是从状态 s s s开始,按照策略 π \pi π执行后的期望回报。

v π ( s ) ≡ E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] (17) v_{\pi}(s) \equiv \mathbb{E}_{\pi} \left[ \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} | S_t = s \right] \tag{17} vπ(s)Eπ[k=0γkRt+k+1St=s](17)

另一方面,在状态 s s s下,采取动作 a a a并随后遵循策略 π \pi π的动作价值函数 q π ( s , a ) q_{\pi}(s, a) qπ(s,a)是从状态 s s s开始,执行动作 a a a后,按照策略 π \pi π继续执行的期望回报:

q π ( s , a ) ≡ E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] (18) q_{\pi}(s, a) \equiv \mathbb{E}_{\pi} \left[ \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} | S_t = s, A_t = a \right] \tag{18} qπ(s,a)Eπ[k=0γkRt+k+1St=s,At=a](18)

需要注意的是, v v v q q q之间的区别,即 q q q依赖于在每个状态下采取的动作。对于10个状态和每个状态8个动作的情况, q q q需要80个函数,而 v v v只需要10个函数。根据策略 π \pi π,如果智能体从每个状态获取回报并取平均值,则该平均值会收敛到 v π ( s ) v_{\pi}(s) vπ(s)。通过对每个状态的回报取平均,最终收敛到 q π ( s , a ) q_{\pi}(s, a) qπ(s,a)。因此, v π ( s ) v_{\pi}(s) vπ(s)可以递归地表示为:

v π ( s ) ≡ E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] = ∑ a π ( a ∣ s ) ∑ s ′ ∑ r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] (19) v_{\pi}(s) \equiv \mathbb{E}_{\pi}[G_t | S_t = s] = \mathbb{E}_{\pi}[R_{t+1} + \gamma G_{t+1} | S_t = s] = \sum_a \pi(a|s) \sum_{s'} \sum_r p(s', r | s, a)[r + \gamma v_{\pi}(s')] \tag{19} vπ(s)Eπ[GtSt=s]=Eπ[Rt+1+γGt+1St=s]=aπ(as)srp(s,rs,a)[r+γvπ(s)](19)

方程19是 v π v_{\pi} vπ的贝尔曼方程。贝尔曼方程将一个状态的价值与其潜在后继状态的价值联系起来。该图示例说明了从一个状态到它的后继状态的预期。初始状态的价值等于预期下一个状态的折扣价值加上预期的奖励。

v π ( s ) v_{\pi}(s) vπ(s) q π ( s , a ) q_{\pi}(s, a) qπ(s,a) 在强化学习(RL)中具有不同的用途。在评估确定性策略或需要理解智能体处于某一特定状态时的表现时,使用状态价值函数(state-value functions)。在策略评估和策略迭代方法中,策略已被明确地定义,并且评估在该策略下处于特定状态的表现是必要的,这些方法非常有用。使用状态价值函数的优势在于,当存在许多动作时,只需评估状态的值即可,而不需要评估每个动作的值。

另一方面,动作价值函数(action-value functions)用于评估和比较在同一状态下采取不同动作的潜力。它们对于选择动作至关重要,目的是确定每种情境下最合适的动作。由于动作价值函数考虑了从不同动作中获得的期望回报,因此它们在具有随机策略的环境中尤其有用。此外,当处理连续动作空间时,动作价值函数能够提供更为详细的关于动作影响的理解,有助于策略实施的微调。

示例: 考虑一个赌博场景,其中玩家有10美元并面临决定赌多少钱的选择。这个游戏说明了RL中的状态和动作价值函数。状态价值函数( v π ( s ) v_{\pi}(s) vπ(s))量化了某状态 s s s的期望累积未来奖励,给定策略 π \pi π。假设玩家有5美元:

  • 对于固定的1美元赌注, v π ( 5 ) = 0.5 v_{\pi}(5) = 0.5 vπ(5)=0.5 表示期望获利0.5美元。
  • 对于固定的2美元赌注, v π ( 5 ) = − 1 v_{\pi}(5) = -1 vπ(5)=1 表示期望损失1美元。

动作价值函数 q π ( s , a ) q_{\pi}(s, a) qπ(s,a))评估在状态 s s s下采取动作 a a a的期望累积未来奖励。例如:

  • q π ( 5 , 1 ) = 1 q_{\pi}(5, 1) = 1 qπ(5,1)=1 表示1美元赌注从5美元中获得1美元的累积奖励。
  • q π ( 5 , 2 ) = − 0.5 q_{\pi}(5, 2) = -0.5 qπ(5,2)=0.5 表示从5美元中下注2美元的期望损失为0.5美元。

这个赌博游戏场景突显了状态和动作价值函数在RL中的作用,指导在动态环境中的最优决策。

2.4 最优策略与最优价值函数

解决RL任务涉及确定一个能够最大化长期奖励的策略。价值函数在策略之间创建了部分排序,允许根据期望的累积奖励进行比较和排名。一个策略 π \pi π优于或等于 π 0 \pi_0 π0,当且仅当对于所有状态 s s s v π ( s ) ≥ v π 0 ( s ) v_{\pi}(s) \geq v_{\pi_0}(s) vπ(s)vπ0(s)。最优策略优于或等于所有其他策略,记作 π ∗ \pi^* π,共享相同的最优状态价值函数 v π ∗ v_{\pi^*} vπ,该函数被定义为所有可能策略的最大价值函数。

v π ∗ ( s ) ≡ max ⁡ π v π ( s ) ∀ s ∈ S (20) v_{\pi^*}(s) \equiv \max_{\pi} v_{\pi}(s) \quad \forall s \in S \tag{20} vπ(s)πmaxvπ(s)sS(20)

最优策略还共享所有可能策略的最优动作价值函数 q π ∗ q_{\pi^*} qπ,该函数被定义为所有可能策略的最大动作价值函数。

q π ∗ ( s , a ) ≡ max ⁡ π q π ( s , a ) ∀ s ∈ S (21) q_{\pi^*}(s, a) \equiv \max_{\pi} q_{\pi}(s, a) \quad \forall s \in S \tag{21} qπ(s,a)πmaxqπ(s,a)sS(21)

最优动作价值函数 q π ∗ ( s , a ) q_{\pi^*}(s, a) qπ(s,a)与最优状态价值函数 v π ∗ ( s ) v_{\pi^*}(s) vπ(s)之间的关系通过以下方程给出:通过拥有最优动作价值函数 q π ∗ ( s , a ) q_{\pi^*}(s, a) qπ(s,a),我们可以找到最优状态价值函数 v π ∗ ( s ) v_{\pi^*}(s) vπ(s),如方程22所示。

q π ∗ ( s , a ) = E [ R t + 1 + γ v π ∗ ( S t + 1 ) ∣ S t = s , A t = a ] (22) q_{\pi^*}(s, a) = \mathbb{E}[R_{t+1} + \gamma v_{\pi^*}(S_{t+1}) | S_t = s, A_t = a] \tag{22} qπ(s,a)=E[Rt+1+γvπ(St+1)St=s,At=a](22)

最优价值函数和策略表示RL中的理想状态。然而,由于实际挑战,真正的最优策略在计算密集的任务中很难找到,RL智能体通常通过近似最优策略来应对这些挑战。动态规划(DP)有助于识别最优值,假设环境的精确模型,这是在现实世界中很难获得的挑战。虽然从理论上讲DP方法是合理的,但它们在实际应用中并不总是采样高效的。DP和RL的基本思想是使用价值函数来组织搜索最优策略。

对于有限MDP,环境的动态由给定的概率 p ( s ′ , r ∣ s , a ) p(s', r | s, a) p(s,rs,a)描述。最优状态价值函数 v π ∗ ( s ) v_{\pi^*}(s) vπ(s)和最优动作价值函数 q π ∗ ( s , a ) q_{\pi^*}(s, a) qπ(s,a)的贝尔曼最优性方程分别为方程23和方程24:

v π ∗ ( s ) = max ⁡ a E [ R t + 1 + γ v π ∗ ( S t + 1 ) ∣ S t = s , A t = a ] = max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ∗ ( s ′ ) ] (23) v_{\pi^*}(s) = \max_a \mathbb{E}[R_{t+1} + \gamma v_{\pi^*}(S_{t+1}) | S_t = s, A_t = a] = \max_a \sum_{s', r} p(s', r | s, a)[r + \gamma v_{\pi^*}(s')] \tag{23} vπ(s)=amaxE[Rt+1+γvπ(St+1)St=s,At=a]=amaxs,rp(s,rs,a)[r+γvπ(s)](23)

q π ∗ ( s , a ) = E [ R t + 1 + max ⁡ a ′ q π ∗ ( S t + 1 , a ′ ) ∣ S t = s , A t = a ] = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ max ⁡ a ′ q π ∗ ( s ′ , a ′ ) ] (24) q_{\pi^*}(s, a) = \mathbb{E}[R_{t+1} + \max_{a'} q_{\pi^*}(S_{t+1}, a') | S_t = s, A_t = a] = \sum_{s', r} p(s', r | s, a)[r + \gamma \max_{a'} q_{\pi^*}(s', a')] \tag{24} qπ(s,a)=E[Rt+1+amaxqπ(St+1,a)St=s,At=a]=s,rp(s,rs,a)[r+γamaxqπ(s,a)](24)

DP算法通过将贝尔曼方程转化为更新规则来推导。

2.5 策略评估(预测)

策略评估(也称为预测)是指针对给定的策略 π \pi π,计算状态价值函数 v π v_{\pi} vπ的过程。它用于评估在任何状态下遵循策略 π \pi π时的期望回报。状态价值函数 v π ( s ) v_{\pi}(s) vπ(s)定义为从状态 s s s开始并随后遵循策略 π \pi π所得到的期望回报:

v π ( s ) = E π [ ∑ k = 0 ∞ γ k R t + k + 1 | S t = s ] v_{\pi}(s) = \mathbb{E}_{\pi} \left[ \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \,\middle|\, S_t = s \right] vπ(s)=Eπ[k=0γkRt+k+1 St=s]

可以将其递归表示为:

v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) | S t = s ] = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] v_{\pi}(s) = \mathbb{E}_{\pi} \left[ R_{t+1} + \gamma v_{\pi}(S_{t+1}) \,\middle|\, S_t = s \right] = \sum_{a} \pi(a \mid s) \sum_{s', r} p(s', r \mid s, a)\,\bigl[r + \gamma\,v_{\pi}(s')\bigr] vπ(s)=Eπ[Rt+1+γvπ(St+1)St=s]=aπ(as)s,rp(s,rs,a)[r+γvπ(s)]

在上述方程中, π ( a ∣ s ) \pi(a \mid s) π(as)表示在策略 π \pi π下,在状态 s s s时选择动作 a a a的概率。只要 γ < 1 \gamma < 1 γ<1,或者在策略 π \pi π下所有回合都能够最终结束, v π v_{\pi} vπ就能被保证存在且唯一。动态规划(DP)算法的更新通常被称为“期望更新”,因为它们会考虑所有可能的后续状态,而不仅仅是基于单个采样进行更新。

参考文献:https://arxiv.org/pdf/2408.07712
仅供学习使用,如有侵权,联系删除

相关文章:

【Introduction to Reinforcement Learning】翻译解读2

2.2 马尔可夫决策过程&#xff08;MDPs&#xff09; 马尔可夫决策过程&#xff08;MDP&#xff09;为顺序决策提供了框架&#xff0c;其中动作不仅影响即时奖励&#xff0c;还会影响未来结果。与多臂老虎机问题不同&#xff0c;MDP中的即时奖励与延迟奖励相平衡。在多臂老虎机…...

2016年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析

2016年-全国大学生数学建模竞赛(CUMCM)试题速浏、分类及浅析 全国大学生数学建模竞赛(China Undergraduate Mathematical Contest in Modeling)是国家教委高教司和中国工业与应用数学学会共同主办的面向全国大学生的群众性科技活动,目的在于激励学生学习数学的积极性,提高学…...

UI测试(2)

1、HTML 是用来描述网页的一种语言。 指的是超文本标记语言 (Hyper Text Markup Language) &#xff0c;HTML 不是一种编程语言&#xff0c;而是一种标记语言 (markup language) 负责定义页面呈现的内容&#xff1a;标签语言&#xff1a;<标签名>标签值<标签名>&am…...

Pr视频剪辑 Premiere Pro 2024 for Mac

Pr视频剪辑 Premiere Pro 2024 for Mac 文章目录 Pr视频剪辑 Premiere Pro 2024 for Mac一、介绍二、效果三、下载 一、介绍 Premiere Pro 2024 for Mac是一款专业的视频编辑软件&#xff0c;广泛应用于电影、电视、广告等领域。它为Mac用户提供了强大的剪辑、调色、音频处理等…...

电源测试系统自动化转型:Chroma 8000 与 NSAT-8000 核心功能对比解析

在全球制造业加速智能化升级的背景下&#xff0c;电源模块测试正从传统手动模式向自动化、智能化深度转型。作为企业降本增效与提升竞争力的关键&#xff0c;如何选择适配的测试系统成为行业焦点。本文聚焦市场主流的 Chroma 8000 与 NSAT-8000 两款系统&#xff0c;从功能设计…...

智能指针和STL库学习思维导图和练习

思维导图&#xff1a; #include <iostream> #include <vector> #include <string> using namespace std;// 用户结构体 struct User {string username;string password; };vector<User> users; // 存储所有注册用户// 使用迭代器查找用户名是否存在 ve…...

【JS】二分查找

题目 步骤 初始化指针&#xff1a;定义 left 和 right 两个指针&#xff0c;分别指向数组的起始位置和末尾位置&#xff0c;确定查找范围。进入循环&#xff1a;只要 left 小于等于 right&#xff0c;就继续执行循环&#xff0c;因为此时查找范围不为空。计算中间索引&#xff…...

Mamba模型

为什么要提出mamba模型&#xff1f; transformer特点&#xff1a;训练快&#xff0c;推理慢&#xff0c;计算成本O&#xff08;n*n&#xff09; Rnn的特点&#xff1a;训练慢&#xff0c;推理快&#xff0c;容易遗忘 其实很容易理解&#xff0c;因为RNN的输入只包含前一个隐…...

人工智能通识速览(Part4. 评估指标)

四、评估指标 1.回归模型 均方误差&#xff08;MSE&#xff09; 优点&#xff1a;数学性质良好&#xff0c;计算简单&#xff0c;对误差的惩罚力度较大&#xff0c;能很好地反映模型预测值与真实值之间的平均差异程度&#xff0c;便于比较不同模型的性能。缺点&#xff1a;由…...

IT运维服务方案

一、服务目标 IT 运维服务致力于构建稳固、高效且智能的信息系统生态&#xff0c;为客户的业务运营筑牢数字化根基。凭借前沿的主动式维护策略&#xff0c;运用大数据分析、智能监控等技术手段&#xff0c;提前洞察系统隐患&#xff0c;在萌芽阶段化解潜在故障。同时&#xff0…...

【简历全景认知2】电子化时代对简历形式的降维打击:从A4纸到ATS的生存游戏

一、当简历遇上数字洪流:传统形式的式微 在1990年代,一份排版精美的纸质简历还能让HR眼前一亮;但今天,超过75%的 Fortune 500 企业使用ATS(Applicant Tracking System)进行初筛,未优化的简历可能在5秒内就会沦为数字废土。这种变迁本质上符合「技术接纳生命周期」理论—…...

LLM面试题七

NLP算法工程师面试题8道|含解析 分类场景下bert和gptprompt的方式哪种会有更好效果&#xff0c;为什么&#xff1f; 在分类场景下&#xff0c;BERT比GPT更适合用于建模&#xff0c;因为BERT的结构中包含了双向的Transformer编码器&#xff0c;而GPT的结构中只包含单向的Transf…...

Semaphore

关于作者&#xff1a; CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP&#xff0c;带领团队单日营收超千万。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业化变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览…...

视频插帧EMAVFI:extracting motion and appearance via inter-frame attention for video

文章目录 EMAVFI:extracting motion and appearance via inter-frame attention for efficient video frame interpolation1.核心概述2.帧间注意力机制为什么可以表示运动信息3.网络架构4.dataset类5.demo推理和训练代码6.总结 EMAVFI:extracting motion and appearance via in…...

⑨数据中心-M-LAG技术配置

华三数据中心网络是指华三提供的专门设计用于数据中心环境的网络解决方案。这种网络通常具有高性能、可扩展性和可靠性&#xff0c;旨在支持大规模数据中心的需求。华三数据中心网络解决方案通常包括以下特点&#xff1a; 1. 高带宽&#xff1a;支持高密度数据中心环境中大量网…...

永磁同步电机无速度算法--基于HOPLL的滑模观测器

一、原理介绍 传统PLL算法为二阶系统&#xff0c;其实现是基于转速变化变化缓慢的假设&#xff0c;因此在转速频繁出现动态变化时会导致动态性能不佳。为改善系统动态性能&#xff0c;将转速微分量引入PLL中&#xff0c;作为附加状态变量&#xff0c;与电角速度及转速共同构成…...

【Linux网络】网络套接字socket

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12891150.html 目录 Socket 编程预备 理解源 IP 地址和目的 IP 地址 认识端口号 端口号范围划分…...

ubuntu wifi配置(命令行版本)

1、查询当前设备环境的wifi列表 nmcli dev wifi list2、连接wifi nmcli dev wifi connect "MiFi-SSID" password "Password" #其中MiFi-SSID是wifi的密码&#xff0c;Password是wifi的密码3、查看连接情况 nmcli dev status...

配环境的经验

pip install -e . 该命令用于以“编辑模式”&#xff08;也称为开发模式&#xff09;安装当前目录下的 Python 包&#xff0c;比如包含有 setup.py、setup.cfg 或 pyproject.toml 文件的项目-e 是 --editable 的简写。以编辑模式安装时&#xff0c;pip 会在你的 Python 环境中创…...

STM32cubmax配置STM32407VET6,实现网络通信

文章目录 一、开发准备1、硬件准备2、软件准备 二、STM32CubeMX工程配置步骤1、创建新工程 三、外设配置步骤1&#xff09;调试接口&#xff08;SWD&#xff09;配置2&#xff09;时钟配置3&#xff09;串口&#xff08;USART&#xff09;配置4&#xff09;IO口配置&#xff08…...

LeetCode 热题 100_完全平方数(84_279_中等_C++)(动态规划(完全背包))

LeetCode 热题 100_完全平方数&#xff08;84_279&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;动态规划&#xff08;完全背包&#xff09;&#xff09;&#xff1a; 代码实现代码实现&#xff08;思路一…...

【C++】vector的底层封装和实现

目录 目录前言基本框架迭代器容量第一个测试&#xff0c;野指针异常第二轮测试&#xff0c;浅拷贝的问题 元素访问修改操作push_backinsert迭代器失效问题 erase 默认成员函数构造函数双重构造引发调用歧义 拷贝构造赋值重载析构函数 源码end 目录 前言 废话不多说&#xff0…...

AI前端组件库Ant DesIgn X

Ant Design X AI&#xff1a;体验新秩序 Ant Design 团队精心打造 RICH 设计范式&#xff0c;为 AI 界面提供卓越解决方案&#xff0c;引领智能交互新体验。 设计语言与理论 官网&#xff1a; Ant Design X - 轻松打造 AI 驱动的界面。 AI 设计范式 —— RICH 是我们在蚂蚁…...

BGP路由协议之解决 IBGP 水平分割带来的问题

主要有以下 3 种方案&#xff1a; 全互联 &#xff1a;配置量大、耗费资源联邦&#xff1a; 配置量大、邻居会重建、中断时间较长RR 路由反射器&#xff1a;目前主流使用、简单、好用 联邦 IBGP 水平分割问题用与防止 AS 内部产生环路&#xff0c;在很大程度上杜绝了 IBGP 路…...

基于Java的人脸识别在线考试系统(jsp+springboot+mysql8.x)

基于Java的人脸识别在线考试系统(jspspringbootmysql8.x) 在线考试系统提供全面的考试管理和用户管理功能。登录界面支持管理员、教师和学生三种身份验证&#xff0c;确保不同用户访问相应的功能模块。系统自动组卷功能允许管理员根据不同科目和题型&#xff0c;如单选题、多选…...

如何对LLM大型语言模型进行评估与基准测试

基础概念 这几年&#xff0c;随着生成式 AI 和大型语言模型&#xff08;LLMs&#xff09;的兴起&#xff0c;AI 领域整体迎来了一波大爆发。 随着各种基于 LLM 的应用程序在企业里落地&#xff0c;人们开始需要评估不同推理部署方案的性价比。 LLM 应用的部署成本&#xff0c;…...

C语言内存函数和数据在内存的存储

一、内存操作函数深度解析 函数名原型核心特性典型应用场景注意事项memcpyvoid* memcpy(void* dest, const void* src, size_t num)内存块无重叠复制&#xff0c;性能高数组拷贝、结构体复制1. 必须确保目标空间足够 2. 不支持重叠内存&#xff08;用memmove替代&#xff09; …...

ChatGPT之智能驾驶问题讨论

ChatGPT之智能驾驶问题讨论 1. 源由2. 问题&#xff1a;2.1 智能驾驶级别定义&#x1f697; L2&#xff08;部分自动化&#xff0c;Partial Automation&#xff09;&#x1f916; L3&#xff08;有条件自动化&#xff0c;Conditional Automation&#xff09;&#x1f6f8; L4&a…...

【PalladiumZ2 使用专栏 1 -- 波形 trigger 抓取详细介绍】

文章目录 Palladium Z2 OverviewPalladium 波形抓取Palladium 波形存放文件创建Palladium Trigger 断点设置Palladium 加探针并 dumpPalladium 波形查看 Palladium Z2 Overview Cadence Palladium Z2 是 Cadence 推出的企业级硬件仿真加速平台&#xff0c;旨在应对复杂 SoC 设…...

elasticsearch 8设置验证登录查询

最近总是困扰于9200网络勒索,老是在捣乱,动不动给我清理了index,实在是费劲,今天研究了下config配置,设置ca验证。 以下是完整的步骤和配置,确保生成的证书文件与elasticsearch.yml的配置一致: 1. 生成CA证书 运行以下命令生成CA证书:让输入账号或密码请直接回车。 …...

为什么使用了CDN源服务器需要关闭防火墙?

在网站运营过程中&#xff0c;不少站长会遇到这样的困惑&#xff1a;当使用 CDN 源服务器时&#xff0c;好像就得关闭源服务器的防火墙&#xff0c;不然就状况百出。这背后究竟是什么原因呢&#xff1f; 当你在浏览网页时&#xff0c;要是看到 “502 - 服务暂时不可用” 的提…...

Android 学习之 Navigation导航

1. Navigation 介绍 Navigation 组件 是 Android Jetpack 的一部分&#xff0c;用于简化应用内导航逻辑&#xff0c;支持 Fragment、Activity 和 Compose 之间的跳转。核心优势&#xff1a; 单 Activity 架构&#xff1a;减少 Activity 冗余&#xff0c;通过 Fragment 或 Com…...

初识 Three.js:开启你的 Web 3D 世界 ✨

3D 技术已经不再是游戏引擎的专属&#xff0c;随着浏览器技术的发展&#xff0c;我们完全可以在网页上实现令人惊艳的 3D 效果。而 Three.js&#xff0c;作为 WebGL 的封装库&#xff0c;让 Web 3D 的大门向更多开发者敞开了。 这是我开启这个 Three.js 专栏的第一篇文章&…...

PyTorch 笔记

简介与安装 PyTorch 是一个开源的 Python 机器学习库&#xff0c;基于 Torch 库&#xff0c;底层由C实现&#xff0c;应用于人工智能领域&#xff0c;如计算机视觉和自然语言处理。 PyTorch 最初由 Meta Platforms 的人工智能研究团队开发&#xff0c;现在属 于Linux 基金会的…...

day24学习Pandas库

文章目录 三、Pandas库4.函数计算3遍历3.1.遍历Series对象3.2.遍历DataFrame对象 4排序4.1 sort_index4.2 sort_values 5.去重drop_duplicates6.先分组在计算6.1 groupby6.2 filter过滤 7.合并未完待续.. 三、Pandas库 4.函数计算 3遍历 3.1.遍历Series对象 在讲解Series部…...

AI日报 - 2025年4月8日

AI日报 - 2025年4月8日 &#x1f31f; 今日概览&#xff08;60秒速览&#xff09; ▎&#x1f916; 模型进展 | Llama 4发布引爆讨论 (性能、应用、部署、训练争议)&#xff0c;OpenAI保持高速迭代&#xff0c;香港大学推Dream 7B扩散模型。 Meta Llama 4 Scout & Maveric…...

Linux学习笔记(2) 命令基础:从概念到实践(期末,期中复习笔记全)

前言 一、认识命令行与命令 二、Linux 命令的基础格式 三、命令示例解析 &#xff08;1&#xff09;ls -l /home/itheima &#xff08;2&#xff09;cp -r test1 test2 四结语 前言 在 Linux 系统的世界里&#xff0c;命令行是与系统交互的重要方式。熟练掌握 Linux 命令…...

langgraph简单Demo4(checkpoint检查点)

在 langgraph 里&#xff0c;检查点&#xff08;checkpoint&#xff09;是一项重要的功能&#xff0c;它能够记录工作流在执行过程中的中间状态。当工作流因某些原因中断时&#xff0c;可以从检查点恢复继续执行&#xff0c;避免从头开始&#xff0c;提升效率。 示例&#xff…...

【题解】AtCoder AT_abc400_c 2^a b^2

题目大意 我们定义满足下面条件的整数 X X X 为“好整数”&#xff1a; 存在一个 正整数 对 ( a , b ) (a,b) (a,b) 使得 X 2 a ⋅ b 2 X2^a\cdot b^2 X2a⋅b2。 给定一个正整数 N N N&#xff08; 1 ≤ N ≤ 1 0 18 1\le N\le 10^{18} 1≤N≤1018&#xff09;&#xff…...

七种驱动器综合对比——《器件手册--驱动器》

目录 九、驱动器 概述 定义 功能 分类 1. 按负载类型分类 2. 按功能特性分类 工作原理 优势 应用领域 详尽阐述 1 隔离式栅极驱动器 定义 工作原理 应用场景 优势 2 变压器驱动器 定义 工作原理 应用场景 优势 设计注意事项 3 LED驱动 定义 功能与作用 应用场景 设计…...

GStreamer开发笔记(一):GStreamer介绍,在windows平台部署安装,打开usb摄像头对比测试

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/147049923 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、O…...

西湖大学团队开源SaProt等多款蛋白质语言模型,覆盖结构功能预测/跨模态信息搜索/氨基酸序列设计等

2025 年 3 月 22—23 日&#xff0c;上海交通大学「AI 蛋白质设计峰会」正式举行。 本次峰会汇聚了来自清华大学、北京大学、复旦大学、浙江大学、厦门大学等知名高校的 300 多位专家学者&#xff0c;以及 200 余位行业领军企业代表和技术研发人员&#xff0c;深入探讨了 AI 在…...

ansible+docker+docker-compose快速部署4节点高可用minio集群

目录 github项目地址 示例服务器列表 安装前 修改变量文件group_vars/all.yml 修改ansible主机清单 修改setup.sh安装脚本 用法演示 安装后验证 github项目地址 https://github.com/sulibao/ansible_minio_cluster.git 示例服务器列表 安装前 修改变量文件group_var…...

说话人分离中的聚类方法:深入解析Agglomerative聚类、KMeans聚类和Oracle聚类

说话人分离&#xff08;Speaker Diarization&#xff09;是将音频流根据说话人身份划分为同质片段的过程。这一过程中的关键步骤是聚类&#xff0c;即将说话人嵌入&#xff08;embeddings&#xff09;分组为不同的簇&#xff0c;每个簇代表一个独特的说话人。在pyannote.audio管…...

蓝桥杯真题——前缀总分、遗迹

蓝桥杯2024年第十五届省赛真题-前缀总分 题目描述 给定 n 个由小写英文字母组成的字符串 s1, s2, , sn &#xff0c;定义前缀总分为V ∑i<j P(si, sj) &#xff0c;其中 P(si, sj) 表示 si, sj 的最长公共前缀的长度。 小蓝可以选择其中一个字符串&#xff0c;并修改其…...

性能比拼: MySQL vs PostgreSQL

本内容是对知名性能评测博主 Anton Putra MySQL vs PostgreSQL Performance Benchmark (Latency - Throughput - Saturation) 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 MySQL vs PostgreSQL 数据库性能对比** 在本内容中&#xff0c;我们将对比 MySQL 和 Pos…...

TypeScript 中的 infer 关键字用途

infer 是 TypeScript 中的高级类型关键字&#xff0c;主要用于条件类型中推断类型。它允许我们在条件类型的 extends 子句中声明一个类型变量&#xff0c;然后在该条件类型的 true 分支中使用这个推断出的类型。 1. 基本语法 type SomeType<T> T extends infer U ? U…...

关于Spring MVC中@RequestParam注解的详细说明,用于在前后端参数名称不一致时实现参数映射。包含代码示例和总结表格

以下是关于Spring MVC中RequestParam注解的详细说明&#xff0c;用于在前后端参数名称不一致时实现参数映射。包含代码示例和总结表格&#xff1a; 1. 核心作用 RequestParam用于显式绑定HTTP请求参数到方法参数&#xff0c;支持以下场景&#xff1a; 参数名不一致&#xff1…...

Spring Boot中Spring MVC相关配置的详细描述及表格总结

以下是Spring Boot中Spring MVC相关配置的详细描述及表格总结&#xff1a; Spring MVC 配置项详解 1. 异步请求配置 spring.mvc.async.request-timeout 描述&#xff1a;设置异步请求的超时时间&#xff08;单位&#xff1a;毫秒&#xff09;。默认值&#xff1a;未设置&…...

Shell脚本编程之正则表达式

一、概念 在 Shell 脚本中&#xff0c;正则表达式是一种强大且常用的文本处理工具&#xff0c;它可以用来匹配、搜索、替换和截取字符串。 正则表达式是由一些字符去描述规则&#xff0c;在正则表达式中有两类字符 (1)元字符(Meta Character)&#xff1a;Shell 环境中具有特殊含…...