【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
仅供学习使用,如有侵权,联系删除

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

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

相关文章

STM32单片机入门学习——第22节: [7-2] AD单通道AD多通道

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.07 STM32开发板学习——第22节: [7-2] AD单通道&AD多通道 前言开发板说明引用解…

Python高阶函数-filter

1. 基本概念 filter() 是Python内置的高阶函数&#xff0c;用于过滤序列中的元素。它接收一个函数和一个可迭代对象作为参数&#xff0c;返回一个迭代器&#xff0c;包含使函数返回True的所有元素。 filter(function, iterable)2. 工作原理 惰性计算&#xff1a;filter对象是…

密码学基础——分组密码的运行模式

前面的文章中文我们已经知道了分组密码是一种对称密钥密码体制&#xff0c;其工作原理可以概括为将明文消息分割成固定长度的分组&#xff0c;然后对每个分组分别进行加密处理。 下面介绍分组密码的运行模式 1.电码本模式&#xff08;ECB&#xff09; 2.密码分组链接模式&…

Redlinux(2025.3.29)

1、将你的虚拟机的网卡模式设置为nat模式&#xff0c;给虚拟机网卡配置三个主机位分别为100、200、168的ip地址。(以nmtui命令为例) 2、测试你的虚拟机是否能够ping通网关和dns&#xff0c;如果不能请修改网关和dns的地址。 首先打开虚拟网络编辑器查看NAT设置里的网关IP&…

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

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

Redisson分布式锁:原理、使用

1. Redisson简介 Redisson是一个基于Redis的Java客户端库&#xff0c;提供了丰富的分布式对象和服务&#xff08;如分布式锁、信号量、Map等&#xff09;。其核心优势在于​​简化分布式锁的实现​​&#xff0c;并解决了原生Redis分布式锁的常见问题&#xff08;如死锁、误删…

Java大厂面试题 -- JVM 优化进阶之路:从原理到实战的深度剖析(2)

最近佳作推荐&#xff1a; Java大厂面试题 – 深度揭秘 JVM 优化&#xff1a;六道面试题与行业巨头实战解析&#xff08;1&#xff09;&#xff08;New&#xff09; 开源架构与人工智能的融合&#xff1a;开启技术新纪元&#xff08;New&#xff09; 开源架构的自动化测试策略优…

MySQL学习笔记(四)——DML和DQL

目录 1. DML 1.1 添加数据 1.1.1 给指定字段添加数据 1.1.2 给全部字段添加数据 1.1.3 批量添加数据 1.2 修改数据 1.3 删除数据 2. DQL 2.1 基本语法 2.2 基础查询 2.2.1 查询多个字段 2.2.2 字段设置别名 2.2.3 去除重复记录 2.3 条件查询 2.4 聚合函数 2.5 …

DeepSeek-MLA

MLA 结构 需要缓存 KV 向量共用的压缩隐特征K 向量多头共享的带位置编码的向量 为什么带有位置信息的 Q 向量来自于隐特征向量&#xff0c;而带有位置的 K 向量来自于 H 向量且共享呢&#xff1f; 最好的方法肯定是从H向量直接计算并且不共享&#xff0c;但是会大大增加显存使…

检索增强技术RAG和向量数据库技术的优势和劣势,应用范围和价值

RAG 和向量数据库在技术栈中处于不同层级&#xff0c;前者侧重生成任务的准确性与动态性&#xff0c;后者专注检索效率与扩展性。在实际应用中&#xff0c;二者常协同工作&#xff0c;但也可独立服务于不同场景。企业需根据需求选择&#xff1a;若需生成内容&#xff0c;RAG 是…

Python爬虫教程013:使用CrawlSpider爬取读书网数据并保存到mysql数据库

文章目录 3.8 CrawlSpider介绍3.9 CrawlSpider爬取读书网案例3.9.1 创建项目3.9.2 定义要爬取的数据结构3.9.3 获取数据3.9.4 保存数据到本地3.9.5 保存数据到mysql数据库3.9.6 完整项目下载3.8 CrawlSpider介绍 CrawlSpider 是 Scrapy 框架中 最常用的高级爬虫类之一,用于构…

Three.js 系列专题 5:加载外部模型

内容概述 Three.js 支持加载多种 3D 文件格式(如 GLTF、OBJ、FBX),这让开发者可以直接使用专业建模软件(如 Blender、Maya)创建的复杂模型。本专题将重点介绍 GLTF 格式的加载,并调整模型的位置和材质。 学习目标 理解常见 3D 文件格式及其特点。掌握使用 GLTFLoader 加…

P1006 [NOIP 2008 提高组] 传纸条 题解

题目传送门 前言 每次准备摸鱼时都在这道题的界面。 今天有空做做&#xff0c;顺便写一波题解&#xff0c;毕竟估值蹭蹭往下跳。 双倍经验&#xff1a;P1004 [NOIP 2000 提高组] 方格取数&#xff0c;P1006 [NOIP 2008 提高组] 传纸条。 题意简述 现有一个 m m m 行 n …

LLM架构解析:长短期记忆网络(LSTM)(第三部分)—— 从基础原理到实践应用的深度探索

本专栏深入探究从循环神经网络&#xff08;RNN&#xff09;到Transformer等自然语言处理&#xff08;NLP&#xff09;模型的架构&#xff0c;以及基于这些模型构建的应用程序。 本系列文章内容&#xff1a; NLP自然语言处理基础词嵌入&#xff08;Word Embeddings&#xff09…

ffmpeg提取字幕

使用ffmpeg -i test.mkv 获取视频文件的字幕流信息如下 Stream #0:4(chi): Subtitle: subrip (srt) (default) Metadata: title : chs Stream #0:5(chi): Subtitle: subrip (srt) Metadata: title : cht Stream #0:6(jpn)…

Python设计模式:构建模式

1. 什么是构建模式 构建模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它允许使用多个简单的对象一步步构建一个复杂的对象。构建模式通过将构建过程与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。换句话说&#xff0c;构建模…

使用 VIM 编辑器对文件进行编辑

一、VIM 的两种状态 VIM&#xff08;vimsual&#xff09;是 Linux/UNIX 系列 OS 中通用的全屏编辑器。vim 分为两种状态&#xff0c;即命令状态和编辑状态&#xff0c;在命令状态下&#xff0c;所键入的字符系统均作命令来处理&#xff1b;而编辑状态则是用来编辑文本资料&…

GaussDB回调机制深度实践:从事件驱动到系统集成

GaussDB回调机制深度实践&#xff1a;从事件驱动到系统集成 一、回调机制核心概念 回调类型矩阵 二、核心实现技术栈 触发器回调开发 sql -- 创建审计触发器回调 CREATE OR REPLACE FUNCTION audit_trigger() RETURNS TRIGGER AS $$ BEGININSERT INTO audit_log (operati…

AI小白:AI算法中常用的数学函数

文章目录 一、激活函数1. Sigmoid2. ReLU&#xff08;Rectified Linear Unit&#xff09;3. Tanh&#xff08;双曲正切&#xff09;4. Softmax示例代码&#xff1a;激活函数的实现 二、损失函数1. 均方误差&#xff08;MSE&#xff09;2. 交叉熵损失&#xff08;Cross-Entropy&…

idea 打不开terminal

IDEA更新到2024.3后Terminal终端打不开的问题_idea terminal打不开-CSDN博客