一、智能体强化学习——强化学习基础
1.1 强化学习与深度学习的基本概念
1.1.1 强化学习的核心思想
什么是强化学习?
-
强化学习(Reinforcement Learning, RL):指在与环境(Environment)的反复交互中,智能体(Agent)通过“试错”获取经验,并依据获得的奖励(Reward)学习出最优策略(Policy),以期在未来的决策中取得最大化的累积回报(Return)。
-
核心要素
- 智能体(Agent):在环境中执行动作的主体;
- 环境(Environment):Agent 与之交互的外部世界;
- 状态(State):环境在某一时刻的刻画,Agent 能观测到或部分观测到;
- 动作(Action):Agent 针对所处状态执行的操作;
- 奖励(Reward):环境对 Agent 所执行动作的反馈信号,用来衡量动作的好坏;
- 策略(Policy):Agent 在任意给定状态下选择动作的规则或函数 $ π ( a ∣ s ) \pi(a|s) π(a∣s));
- 目标:在整个交互过程中累积尽可能多的奖励(或最大化期望折扣累积奖励)。
强化学习与监督/无监督学习的区别
-
监督学习(Supervised Learning)
- 有“正确标签”作为监督信息;
- 训练目标是最小化预测与标签之间的损失(如分类错误率、回归均方差)。
-
无监督学习(Unsupervised Learning)
- 无任何标签信息,尝试从数据中发现分布结构或聚类模式;
- 常见应用:聚类、降维、异常检测等。
-
强化学习(Reinforcement Learning)
- 没有直接的“正确动作”标签,只有环境给出的奖励信号;
- 学习是通过“试错”来迭代地调整策略,以期获得最大累计回报;
- 当前动作会影响未来的状态和奖励,存在时间与序列上的依赖。
强化学习的基本流程
- Agent 根据某种策略 π \pi π 选择动作 a t a_t at;
- 环境执行该动作并返回下一状态 s t + 1 s_{t+1} st+1 与即时奖励 r t r_t rt;
- Agent 更新自己的策略或价值函数;
- 重复交互直到任务结束(或达到最大时间步数)。
这个反复交互与决策-反馈的过程是强化学习最突出的特点。不断从环境中“试错”并更新策略,以适应不确定或动态的外界。
1.1.2 深度学习基础回顾
为了将强化学习扩展到高维、复杂的状态空间(如图像、文本),往往需要借助 深度神经网络 来进行函数逼近。此时就进入了 深度强化学习(Deep Reinforcement Learning, DRL) 的范畴。以下是深度学习的几个关键概念:
-
神经网络结构
- 通常由多层线性或卷积、循环等结构堆叠,加上激活函数(ReLU、Sigmoid、Tanh 等)构成;
- 可以视为一个可微分的函数 f θ ( x ) f_\theta(x) fθ(x),其中 θ \theta θ 表示模型参数(权重和偏置)。
-
梯度下降与损失函数
- 损失函数(Loss Function):衡量预测与目标之间差异的函数,常见如均方误差、交叉熵;
- 梯度下降(Gradient Descent):利用目标函数相对于参数的梯度来迭代更新参数;
- 优化器(Optimizer):SGD、Adam、RMSProp 等都是常用的梯度下降算法变体,用于加速收敛、提升稳定性。
-
深度学习在强化学习中的角色
- 函数逼近器:将状态作为输入,输出价值(Q 值)或动作的概率分布;
- 特征提取:通过卷积网络或其他结构,从原始高维数据(如图像)中提取有用的特征。
结合深度学习后,强化学习能够应对高维连续状态、复杂的感知和控制任务,如 Atari 游戏、机器人操控、自动驾驶等场景。
1.2 马尔可夫决策过程(MDP)
1.2.1 MDP 基本定义
强化学习通常用 马尔可夫决策过程(Markov Decision Process, MDP) 来建模。MDP 是一个五元组 ⟨ S , A , P , R , γ ⟩ \langle \mathcal{S}, \mathcal{A}, P, R, \gamma \rangle ⟨S,A,P,R,γ⟩:
-
状态空间 S \mathcal{S} S
- 系统可能处于的所有状态的集合(离散或连续)。
-
动作空间 A \mathcal{A} A
- Agent 可执行的所有动作集合(离散或连续)。
-
转移概率 P ( s t + 1 ∣ s t , a t ) P(s_{t+1} | s_t, a_t) P(st+1∣st,at)
- 从状态 s t s_t st 执行动作 a t a_t at 后进入下一状态 s t + 1 s_{t+1} st+1 的概率分布。
- “马尔可夫性质”表示:下一状态只与当前状态和当前动作有关,与过去的历史无关。
-
奖励函数 R ( s t , a t , s t + 1 ) R(s_t, a_t, s_{t+1}) R(st,at,st+1)
- 执行动作后得到的奖励,可简化成 R ( s , a ) R(s,a) R(s,a) 或 R ( s ) R(s) R(s) 等形式。
-
折扣因子 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
- 用于平衡短期奖励和长期奖励的权重;
- 越接近 1,越重视长期效益;越接近 0,越重视眼前奖励。
累计奖励
- 目标:最大化期望折扣累计回报
E [ ∑ t = 0 ∞ γ t r t ] \LARGE \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^t r_t \right] E t=0∑∞γtrt
, 其中 r t r_t rt 是智能体在时间步 t t t 获得的即时奖励。
1.2.2 价值函数与 Q 函数
策略 π \pi π
- 策略 π \pi π 定义在每个状态 s s s 下,选择动作 a a a 的分布: π ( a ∣ s ) \pi(a|s) π(a∣s)。
- 确定性策略: π ( s ) = a \pi(s) = a π(s)=a,即在状态 s s s 下必然选择动作 a a a;
- 随机策略: π ( a ∣ s ) \pi(a|s) π(a∣s) 是一个概率分布,在状态 s s s 下选择动作 a a a 的概率。
状态价值函数 V π ( s ) V^\pi(s) Vπ(s)
- 在策略 π \pi π 下,从状态 s s s 出发所能获得的期望折扣累计奖励:
V π ( s ) = E π [ ∑ k = 0 ∞ γ k r t + k | s t = s ] \LARGE V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{k=0}^\infty \gamma^k r_{t+k} \,\middle|\, s_t = s \right] Vπ(s)=Eπ k=0∑∞γkrt+k st=s - 这表示如果我们始终遵循策略 π \pi π,在状态 s s s 时的预期收益。
动作价值函数 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)
- 在策略 π \pi π 下,从状态 s s s 执行动作 a a a 后,所能获得的期望折扣累计奖励:
Q π ( s , a ) = E π [ ∑ k = 0 ∞ γ k r t + k | s t = s , a t = a ] \LARGE Q^\pi(s,a) = \mathbb{E}_\pi \left[ \sum_{k=0}^\infty \gamma^k r_{t+k} \,\middle|\, s_t = s, a_t=a \right] Qπ(s,a)=Eπ k=0∑∞γkrt+k st=s,at=a - 也称作 Q 函数 或 动作价值函数。
价值函数与策略之间的关系
-
状态价值函数与 Q 函数
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) \LARGE V^\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s) \, Q^\pi(s,a) Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)- 状态价值是动作价值的加权期望,权重为策略在该状态下选择各动作的概率。
-
Bellman 期望方程:在策略 π \pi π 下,
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π ( s ′ ) \LARGE Q^\pi(s,a) = R(s,a) + \gamma \sum_{s'} P(s'|s,a) V^\pi(s') Qπ(s,a)=R(s,a)+γs′∑P(s′∣s,a)Vπ(s′)
也可写成
V π ( s ) = ∑ a π ( a ∣ s ) [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π ( s ′ ) ] \LARGE V^\pi(s) = \sum_{a} \pi(a|s) \big[R(s,a) + \gamma \sum_{s'}P(s'|s,a)V^\pi(s')\big] Vπ(s)=a∑π(a∣s)[R(s,a)+γs′∑P(s′∣s,a)Vπ(s′)]
最优价值函数
- 最优状态价值函数
V ∗ ( s ) = max π V π ( s ) \LARGE V^*(s) = \max_\pi V^\pi(s) V∗(s)=πmaxVπ(s)
即在状态 s s s 下能获得的最高期望回报。 - 最优 Q 函数
Q ∗ ( s , a ) = max π Q π ( s , a ) \LARGE Q^*(s,a) = \max_\pi Q^\pi(s,a) Q∗(s,a)=πmaxQπ(s,a)
即在状态 s s s 执行动作 a a a 后,所能获得的最高期望回报。 - 对于任何 MDP,都存在一个或多个最优策略 π ∗ \pi^* π∗,其满足
Q ∗ ( s , a ) = Q π ∗ ( s , a ) , V ∗ ( s ) = V π ∗ ( s ) \LARGE Q^*(s,a) = Q^{\pi^*}(s,a), \quad V^*(s) = V^{\pi^*}(s) Q∗(s,a)=Qπ∗(s,a),V∗(s)=Vπ∗(s)
1.3 经典强化学习方法
在传统强化学习领域(未结合深度学习之前),有一些基本且重要的方法,如动态规划、价值迭代、策略迭代,以及以 Q-Learning / SARSA 为代表的时序差分(TD)方法等。这些算法主要针对离散、规模相对较小的状态空间。
1.3.1 动态规划 (Dynamic Programming, DP)
动态规划方法通常要求我们可以完全访问环境的动态模型(即知道转移概率和奖励函数),来进行 规划(planning)。两种典型的 DP 算法为:
1.3.1.1 价值迭代(Value Iteration)
- Bellman 最优方程:对最优价值函数 V ∗ ( s ) V^*(s) V∗(s) 有
V ∗ ( s ) = max a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ] \LARGE V^*(s) = \max_a \Big[ R(s,a) + \gamma \sum_{s'} P(s'|s,a)\, V^*(s') \Big] V∗(s)=amax[R(s,a)+γs′∑P(s′∣s,a)V∗(s′)] - 价值迭代算法:从一个初始 V V V 开始,在每次迭代对所有状态执行:
V ( s ) ← max a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ( s ′ ) ] . \LARGE V(s) \leftarrow \max_a \Big[ R(s,a) + \gamma \sum_{s'} P(s'|s,a)\, V(s') \Big]. V(s)←amax[R(s,a)+γs′∑P(s′∣s,a)V(s′)]. - 当 V ( s ) V(s) V(s) 收敛后,即得到近似的最优价值函数 V ∗ V^* V∗。进而可推得最优策略:
π ∗ ( s ) = arg max a [ R ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ( s ′ ) ] \LARGE \pi^*(s) = \arg\max_a \Big[ R(s,a) + \gamma \sum_{s'} P(s'|s,a)\, V(s') \Big] π∗(s)=argamax[R(s,a)+γs′∑P(s′∣s,a)V(s′)]
1.3.1.2 策略迭代(Policy Iteration)
- 分为两个阶段的交替:
- 策略评估(Policy Evaluation):在当前策略 π \pi π 下,计算得到 V π V^\pi Vπ;
- 策略提升(Policy Improvement):基于 V π V^\pi Vπ 来更新得到新策略 π ′ \pi' π′,使得期望收益更高。
- 反复迭代,直到策略不再改变,得到最优策略 π ∗ \pi^* π∗。
动态规划主要缺点在于:它通常需要我们显式知道环境的转移概率 P P P,且状态空间不宜过大,否则枚举计算的开销很大。
1.3.2 Q-Learning 和 SARSA
当环境模型未知或者难以获得时,可以采用**时序差分(Temporal Difference, TD)**的学习方法,直接通过与环境交互的样本来更新价值函数。其中最经典的两个算法是 Q-Learning 和 SARSA。它们都更新 动作价值函数 Q ( s , a ) Q(s,a) Q(s,a),但有一些差异。
1.3.2.1 Q-Learning
- 目标:学得最优 Q 函数 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a),在任意状态下选择 max a Q ( s , a ) \max_a Q(s,a) maxaQ(s,a) 即可得到最优动作。
- 更新规则:
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + γ max a ′ Q ( s t + 1 , a ′ ) − Q ( s t , a t ) ] \LARGE Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha \Big[r_t + \gamma \max_{a'}Q(s_{t+1},a') - Q(s_t,a_t)\Big] Q(st,at)←Q(st,at)+α[rt+γa′maxQ(st+1,a′)−Q(st,at)]
其中 α \alpha α 为学习率。 - 离策略(Off-policy)
- 在实际执行中,Agent 会采用 ϵ \epsilon ϵ-贪心等探索策略选动作,但更新时使用的是 max a ′ Q \max_{a'}Q maxa′Q 的估计来逼近最优策略。
- 这种“行为策略”与“目标策略”分离的方式,称为 Off-policy。
1.3.2.2 SARSA
- 目标:学得“当前策略”本身的 Q 值,而不是最优策略;
- 更新规则:
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + γ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] \LARGE Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha \Big[r_t + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t,a_t)\Big] Q(st,at)←Q(st,at)+α[rt+γQ(st+1,at+1)−Q(st,at)]
与 Q-Learning 的区别在于,TD 目标中用的动作是实际执行的动作 a t + 1 a_{t+1} at+1,而非 max a ′ Q ( s t + 1 , a ′ ) \max_{a'} Q(s_{t+1},a') maxa′Q(st+1,a′)。 - 同策略(On-policy)
- SARSA 所学习的策略与行为策略一致,也就是说它估计的是“ ϵ \epsilon ϵ-贪心策略自己”的价值函数。
1.3.2.3 比较
- Q-Learning 更常用于学习最优策略(若能充分探索),但在某些噪声较大或者需要更保守策略的场景,SARSA 也有其价值,例如在 CliffWalking 环境中,SARSA 往往会学得更保守的路线。
1.3.3 策略梯度(Policy Gradient)概念(概述)
在上述 Q-Learning / SARSA / 动态规划 等方法中,核心思想是先估计价值函数(如 Q ( s , a ) Q(s,a) Q(s,a) 或 V ( s ) V(s) V(s)),然后再通过贪心方式派生或改进策略。
而 策略梯度 方法则是从直接对策略 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s) 本身进行参数化和梯度优化的角度出发:
- 参数化策略: π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s),其参数为 θ \theta θ(可用神经网络表示)。
- 目标:最大化期望回报 J ( θ ) = E π θ [ ∑ γ t r t ] J(\theta) = \mathbb{E}_{\pi_\theta}\left[\sum \gamma^t r_t\right] J(θ)=Eπθ[∑γtrt]。
- 思想:基于梯度上升,通过 ∇ θ J ( θ ) \nabla_\theta J(\theta) ∇θJ(θ) 的估计来更新 θ \theta θ。
这种方法适用于连续动作空间或高维动作空间等场景,并且在先进的算法(如 PPO、SAC)中广泛使用。我们在后续章节会深入展开 Policy Gradient 与 Actor-Critic 算法的完整推导和实现。
总结
在这一阶段,我们系统地介绍了强化学习的 概念基础、MDP 理论框架以及 经典强化学习方法(动态规划、Q-Learning、SARSA、策略梯度基础)。核心要点包括:
- 强化学习与监督/无监督学习的区别:无正确标签,通过试错最大化累积奖励;
- 深度学习在 RL 中的角色:使用神经网络对价值函数或策略函数进行逼近,提高模型对高维复杂数据的处理能力;
- MDP 基本要素:状态、动作、转移概率、奖励、折扣因子,重点理解马尔可夫性质;
- 价值函数与 Q 函数:状态价值和动作价值是衡量某个策略在不同状态/动作组合下的未来收益预估;
- 经典强化学习:
- 动态规划:价值迭代、策略迭代(要求已知环境模型);
- Q-Learning & SARSA:时序差分方法,通过与环境的交互样本在线学习;
- 策略梯度概念:直接对策略进行参数化、对期望回报进行梯度优化。
以上内容构成强化学习的“底层框架”,为后续的**深度强化学习(DQN、DDPG、PPO、SAC 等)**打下扎实基础。在后面的学习中,我们会进一步讨论如何利用神经网络来逼近 Q Q Q 函数或策略,并解决各种复杂场景下的控制与决策问题。
相关文章:
一、智能体强化学习——强化学习基础
1.1 强化学习与深度学习的基本概念 1.1.1 强化学习的核心思想 什么是强化学习? 强化学习(Reinforcement Learning, RL):指在与环境(Environment)的反复交互中,智能体(Agent&#x…...

【DES加密】
什么是DES DES(Data Encryption Standard) 是一种对称加密算法。它的设计目标是提供高度的数据安全性和性能。 DES的概念 DES使用56位的密钥和64位的明文块进行加密。DES算法的分组大小是64位,因此,如果需要加密的明文长度不足64位,需要进…...
.NET中的框架和运行环境
在.NET生态系统中,框架和运行环境是两个不同的概念,它们各自扮演着重要的角色。 下面我将分别介绍.NET中的框架和运行环境,并解释它们之间的区别。 .NET 框架(Frameworks) 框架提供了一套预定义的类库、工具和服务&…...
探索微软 M365 安全:全方位守护数字世界
在当今这个科技呈井喷式飞速发展,数字化浪潮以汹涌澎湃、锐不可当之势席卷全球的时代,企业与个人仿若置身于一片浩瀚无垠、信息奔涌的海洋之中,尽情畅享着技术革新所带来的无穷无尽便利。然而,恰如平静海面下潜藏着暗礁与汹涌暗流,网络安全问题恰似隐匿在暗处、随时可能给…...
深入探索AI核心模型:CNN、RNN、GAN与Transformer
在人工智能的飞速发展中,众多深度学习模型和算法不断涌现,推动了许多领域的进步。特别是在图像识别、自然语言处理、生成建模等方向,AI模型的应用越来越广泛。本文将介绍几种最常用的AI模型,包括卷积神经网络(CNN&…...

Java - Http 通讯
Java - Http 通讯 PS: 1. Http 协议 POST | GET 请求; 2. 支持 报头、报文、参数 自定义配置; 3. GET 返回支持 String | Stream; 4. 相关依赖: <dependency><groupId>org.apache.httpcomponents</groupId><…...

C++ Qt练习项目 QChar功能测试
个人学习笔记 代码仓库 GitCode - 全球开发者的开源社区,开源代码托管平台 新建项目 设计UI 1、拖入group box去掉名字 2、拖入2个LineEdit 3、拖入两个Label 4、拖入两个PushButton 5、点栅格布局 1、拖入GroupBox 2、拖入4个PushButton 3、点栅格布局 1、拖入GroupBo…...

android 官网刷机和线刷
nexus、pixel可使用google官网线上刷机的方法。网址:https://flash.android.com/ 本文使用google线上刷机,将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…...

二叉树层序遍历 Leetcode102.二叉树的层序遍历
二叉树的层序遍历相当于图论的广度优先搜索,用队列来实现 (二叉树的递归遍历相当于图论的深度优先搜索) 102.二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右…...

DELTA并联机械手视觉方案荣获2024年度机器人应用典型案例奖
直击现场 2025年1月9日晚,2024深圳市机器人年度评选颁奖典礼在深圳市南山区圣淘沙酒店正式拉开帷幕。本次颁奖活动由中国科学院深圳先进技术研究院指导,深圳市机器人协会与《机器人与智能系统》杂志组织承办。 正运动公司受邀参与此次典礼,…...

Netty 入门学习
前言 学习Spark源码绕不开通信,Spark通信是基于Netty实现的,所以先简单学习总结一下Netty。 Spark 通信历史 最开始: Akka Spark 1.3: 开始引入Netty,为了解决大块数据(如Shuffle)的传输问题 Spark 1.6&…...

Magentic-One、AutoGen、LangGraph、CrewAI 或 OpenAI Swarm:哪种多 AI 代理框架最好?
目录 一、说明 二、 AutoGen-自动生成(微软) 2.1 特征 2.2 局限性 三、 CrewAI 3.1 特征 3.2 限制: 四、LangGraph 4.1 特征: 4.2 限制: 五、OpenAI Swarm 5.1 特征 5.2 限制 六、Magentic-One 6.1 特征 6.2 限制 七、…...
openstack下如何生成centos9 centos10 和Ubuntu24 镜像
如何生成一个centos 10和centos 9 的镜像1. 下载 对应的版本 wget https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-GenericCloud-x86_64-10-latest.x86_64.qcow2 wget https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-Gener…...
Kivy App开发之UX控件Slider滑块
在app中可能会调节如音量,亮度等,可以使用Slider来实现,该控件调用方便,兼容性好,滑动平稳。在一些参数设置中,也可以用来调整数值。 支持水平和垂直方向,可以设置默认值,最小及最大值。 使用方法,需用引入Slider类,通过Slider类生成一个滑块并设置相关的样式后,再…...

CSS——22.静态伪类(伪类是选择不同元素状态)
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>静态伪类</title> </head><body><a href"#">我爱学习</a></body> </html>单击链接前的样式 左键单击(且…...

python学opencv|读取图像(三十)使用cv2.getAffineTransform()函数倾斜拉伸图像
【1】引言 前序已经学习了如何平移和旋转缩放图像,相关文章链接为: python学opencv|读取图像(二十七)使用cv2.warpAffine()函数平移图像-CSDN博客 python学opencv|读取图像(二十八࿰…...
Unity3D中基于ILRuntime的组件化开发详解
前言 在Unity3D开发中,组件化开发是一种高效且灵活的软件架构方式。通过将游戏功能拆分为独立的、可重用的组件,开发者可以更容易地管理、扩展和维护代码。而ILRuntime作为一款基于C#的热更新框架,为Unity3D开发者提供了一种高效的热更新和组…...

ELK的搭建
ELK elk:elasticsearch logstatsh kibana统一日志收集系统 elasticsearch:分布式的全文索引引擎点非关系型数据库,存储所有的日志信息,主和从,最少需要2台 logstatsh:动态的从各种指定的数据源,获取数据…...

国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)
替换介绍: 国能磐石服务器操作系统CEOS 对标 Linux 服务器操作系统(Ubuntu, CentOS) 东方通TongHttpServer 对标 Nginx 负载均衡Web服务器 第一步: 服务器安装CEOS映像文件,可直接安装,本文采用使用VMware …...

C#里使用libxl读取EXCEL文件里的图片并保存出来
有时候需要读取EXCEL里的图片文件, 因为很多用户喜欢使用图片保存在EXCEL里,比如用户保存一些现场整改的图片。 如果需要把这些图片抽取出来,再保存到系统里,就需要读取这些图片数据,生成合适的文件再保存。 在libxl里也提供了这样的方法, 如下: var picType = boo…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...

ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...

【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...

jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...