Pytorch深度强化学习1-3:策略评估与贝尔曼期望方程详细推导

news2024/11/26 16:44:22

目录

  • 0 专栏介绍
  • 1 从一个例子出发
  • 2 回报与奖赏
  • 3 策略评估函数
  • 4 贝尔曼期望方程
  • 5 收敛性证明

0 专栏介绍

本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。

🚀详情:《Pytorch深度强化学习》


1 从一个例子出发

例1:如图所示的真空吸尘器世界只有两个地点:方格A和B。假设吸尘器Agent的传感器可以感知自身处于哪个方格中,以及方格中是否有灰尘;它具有且仅具有左移、右移、吸尘或什么也不做四种行为;假设吸尘器Agent采用的策略是若当前所在地点有灰尘则进行清洁,否则往另一个地点运动。请用马尔科夫决策过程表示吸尘器问题

在这里插入图片描述

如图所示即为例1的一种马尔科夫决策过程,其设计思路是:只要采取移动就会造成一定的损失,在有灰尘的方格中若智能体不采取吸尘则会造成严重的损失。朴素地,最优策略在当前方格有灰尘时选择“吸尘”直至清扫干净,在当前方格无灰尘时选择“移动”进行巡查或“什么也不做”节省能源

在这里插入图片描述

那么问题来了,智能体要如何决策才能使其长期运行下去得到的奖励最多呢? 这就是本文要讨论的策略评估问题

2 回报与奖赏

强化学习的目标是找到一个策略

π ( s , a ) = P ( a c t i o n = a ∣ s t a t e = s ) \pi \left( s,a \right) =P\left( \mathrm{action}=a|\mathrm{state}=s \right) π(s,a)=P(action=astate=s)

使智能体长期执行该策略后得到的回报(Return)最大化。自然地,需要定义回报与策略评估的计算方法。引入回报函数:

  • T T T步回报函数

R t = 1 T ∑ i = t + 1 T r i R_t=\frac{1}{T}\sum_{i=t+1}^T{r_i} Rt=T1i=t+1Tri

  • γ \gamma γ折扣回报函数

R t = ∑ i = t + 1 ∞ γ i − t r i R_t=\sum_{i=t+1}^{\infty}{\gamma ^{i-t}r_i} Rt=i=t+1γitri

其中 R t R_t Rt是从 t t t时刻状态 s t s_t st开始计算的回报,当执行某动作转移到下一个状态时产生第一个奖赏,因此从 t + 1 t+1 t+1时刻开始求和。 r i r_i ri是第 i i i步的单步奖赏,是一个随机变量。迭代因子 T ⩾ 1 T\geqslant 1 T1与折扣因子 γ < 1 \gamma <1 γ<1都对奖赏期望序列进行加权,在数学上使级数收敛。在物理意义上, T T T γ \gamma γ越大表示考虑决策的长期回报; T T T γ \gamma γ越小表示考虑决策的短期收益。特别地,当 T = 1 T=1 T=1 γ = 0 \gamma=0 γ=0表示单步强化学习任务。

3 策略评估函数

策略评估函数分为两种

  • 状态值函数 V π ( s ) V^{\pi}\left( s \right) Vπ(s)
    表示从 t t t时刻状态 s s s出发,采用策略 π \pi π带来的回报期望
    { V T π ( s ) = E [ R t ] ∣ s t = s = 1 T ∑ i = t + 1 T E [ r i ] ∣ s t = s V γ π ( s ) = E [ R t ] ∣ s t = s = ∑ i = t + 1 ∞ γ i − t E [ r i ] ∣ s t = s \begin{cases} V_{T}^{\pi}\left( s \right) =\mathbb{E} \left[ R_t \right] \mid_{s_t=s}^{}=\frac{1}{T}\sum_{i=t+1}^T{\mathbb{E} \left[ r_i \right] \mid_{s_t=s}^{}}\\ V_{\gamma}^{\pi}\left( s \right) =\mathbb{E} \left[ R_t \right] \mid_{s_t=s}^{}=\sum_{i=t+1}^{\infty}{\gamma ^{i-t}\mathbb{E} \left[ r_i \right] \mid_{s_t=s}^{}}\\\end{cases} {VTπ(s)=E[Rt]st=s=T1i=t+1TE[ri]st=sVγπ(s)=E[Rt]st=s=i=t+1γitE[ri]st=s
  • 状态动作值函数 Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a)
    表示从 t t t时刻状态 s s s出发,执行动作 a a a后再采用策略 π \pi π带来的回报期望
    { Q T π ( s , a ) = E [ R t ] ∣ s t = s , a t = a = 1 T ∑ i = t + 1 T E [ r i ] ∣ s t = s , a t = a Q γ π ( s , a ) = E [ R t ] ∣ s t = s , a t = a = ∑ i = t + 1 ∞ γ i − t E [ r i ] ∣ s t = s , a t = a \begin{cases} Q_{T}^{\pi}\left( s,a \right) =\mathbb{E} \left[ R_t \right] \mid_{s_t=s,a_t=a}^{}=\frac{1}{T}\sum_{i=t+1}^T{\mathbb{E} \left[ r_i \right] \mid_{s_t=s,a_t=a}^{}}\\ Q_{\gamma}^{\pi}\left( s,a \right) =\mathbb{E} \left[ R_t \right] \mid_{s_t=s,a_t=a}^{}=\sum_{i=t+1}^{\infty}{\gamma ^{i-t}\mathbb{E} \left[ r_i \right] \mid_{s_t=s,a_t=a}^{}}\\\end{cases} {QTπ(s,a)=E[Rt]st=s,at=a=T1i=t+1TE[ri]st=s,at=aQγπ(s,a)=E[Rt]st=s,at=a=i=t+1γitE[ri]st=s,at=a

其中 s t s_t st表示评估的初始状态, a t a_t at表示在初始状态上采取的第一个动作

下面研究 V π ( s ) V^{\pi}\left( s \right) Vπ(s) Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a)的关系。根据全概率公式,状态值函数 V π ( s ) V^{\pi}\left( s \right) Vπ(s)可用状态动作值函数 Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a)加权得到

V π ( s ) = ∑ a ∈ A P ( a ∣ s ) Q π ( s , a ) = ∑ a ∈ A π ( s , a ) Q π ( s , a ) V^{\pi}\left( s \right) =\sum_{a\in A}{P\left( a|s \right) Q^{\pi}\left( s,a \right)}={\sum_{a\in A}{\pi \left( s,a \right) Q^{\pi}\left( s,a \right)}} Vπ(s)=aAP(as)Qπ(s,a)=aAπ(s,a)Qπ(s,a)

T T T步回报函数为例说明 Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a)如何用 V π ( s ) V^{\pi}\left( s \right) Vπ(s)表示

Q T π ( s , a ) = 1 T ∑ i = t + 1 T E [ r i ] ∣ s t = s , a t = a = 1 T [ E [ r t + 1 ] ∣ s t = s , a t = a + ∑ i = t + 2 T E [ r i ] ∣ s t = s , a t = a ] = 1 T [ ∑ s ′ ∈ S P s → s ′ a R s → s ′ a + ∑ s ′ ∈ S P s → s ′ a ∑ i = t + 2 T E [ r i ] ∣ s t + 1 = s ′ ] = ∑ s ′ ∈ S P s → s ′ a [ 1 T R s → s ′ a + T − 1 T 1 T − 1 ∑ i = t + 1 T − 1 E [ r i ] ∣ s t = s ′ ] \begin{aligned}Q_{T}^{\pi}\left( s,a \right) &=\frac{1}{T}\sum_{i=t+1}^T{\mathbb{E} \left[ r_i \right]}\mid_{s_t=s,a_t=a}^{}\\&=\frac{1}{T}\left[ \mathbb{E} \left[ r_{t+1} \right] \mid_{s_t=s,a_t=a}^{}+\sum_{i=t+2}^T{\mathbb{E} \left[ r_i \right] \mid_{s_t=s,a_t=a}^{}} \right] \\&=\frac{1}{T}\left[ \sum_{s'\in S}{P_{s\rightarrow s'}^{a}}R_{s\rightarrow s'}^{a}+\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\sum_{i=t+2}^T{\mathbb{E} \left[ r_i \right] \mid_{s_{t+1}=s'}^{}} \right] \\&=\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ \frac{1}{T}R_{s\rightarrow s'}^{a}+\frac{T-1}{T}\frac{1}{T-1}\sum_{i=t+1}^{T-1}{\mathbb{E} \left[ r_i \right] \mid_{s_t=s'}^{}} \right]\end{aligned} QTπ(s,a)=T1i=t+1TE[ri]st=s,at=a=T1[E[rt+1]st=s,at=a+i=t+2TE[ri]st=s,at=a]=T1[sSPssaRssa+sSPssai=t+2TE[ri]st+1=s]=sSPssa[T1Rssa+TT1T11i=t+1T1E[ri]st=s]

Q T π ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ 1 T R s → s ′ a + T − 1 T V T − 1 π ( s ′ ) ] {Q_{T}^{\pi}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ \frac{1}{T}R_{s\rightarrow s'}^{a}+\frac{T-1}{T}V_{T-1}^{\pi}\left( s' \right) \right] } QTπ(s,a)=sSPssa[T1Rssa+TT1VT1π(s)]

同理有

Q γ π ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ π ( s ′ ) ] {Q_{\gamma}^{\pi}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{\pi}\left( s' \right) \right] } Qγπ(s,a)=sSPssa[Rssa+γVγπ(s)]

4 贝尔曼期望方程

策略评估是给定一个策略 π \pi π计算策略评估函数 V π ( s ) V^{\pi}\left( s \right) Vπ(s) Q π ( s , a ) Q^{\pi}\left( s,a \right) Qπ(s,a)的过程,用于衡量策略的好坏。策略评估通常采用迭代法而非第三节中的定义计算

根据强化学习任务的马尔科夫性,多步强化学习中的某一步仅与上一步的状态和动作有关,将第三节的式子

  • V π ( s ) = ∑ a ∈ A P ( a ∣ s ) Q π ( s , a ) = ∑ a ∈ A π ( s , a ) Q π ( s , a ) V^{\pi}\left( s \right) =\sum_{a\in A}{P\left( a|s \right) Q^{\pi}\left( s,a \right)}={\sum_{a\in A}{\pi \left( s,a \right) Q^{\pi}\left( s,a \right)}} Vπ(s)=aAP(as)Qπ(s,a)=aAπ(s,a)Qπ(s,a)

  • Q γ π ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ π ( s ′ ) ] {Q_{\gamma}^{\pi}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{\pi}\left( s' \right) \right] } Qγπ(s,a)=sSPssa[Rssa+γVγπ(s)]

互相代入,即可推导出强化学习的贝尔曼递推公式(Bellman Equation)或称贝尔曼期望方程,如下

{ V γ π ( s ) = ∑ a ∈ A π ( s , a ) ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ π ( s ′ ) ] Q γ π ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ ∑ a ′ ∈ A π ( s ′ , a ′ ) Q γ π ( s ′ , a ′ ) ] {\begin{cases} V_{\gamma}^{\pi}\left( s \right) =\sum_{a\in A}{\pi \left( s,a \right)}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{\pi}\left( s' \right) \right]\\ Q_{\gamma}^{\pi}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \sum_{a'\in A}{\pi \left( s',a' \right) Q_{\gamma}^{\pi}\left( s',a' \right)} \right]\\\end{cases}} {Vγπ(s)=aAπ(s,a)sSPssa[Rssa+γVγπ(s)]Qγπ(s,a)=sSPssa[Rssa+γaAπ(s,a)Qγπ(s,a)]

5 收敛性证明

上述迭代公式属于不动点方程。设贝尔曼期望算子为 B π \mathcal{B} ^{\pi} Bπ,则

∣ ( B π V 1 π ) ( s ) − ( B π V 2 π ) ( s ) ∣ = ∣ γ ∑ a ∈ A π ( s , a ) ∑ s ′ ∈ S P s → s ′ a [ V 1 π ( s ′ ) − V 2 π ( s ′ ) ] ∣ ⩽ γ ∑ a ∈ A π ( s , a ) ∑ s ′ ∈ S P s → s ′ a ∣ V 1 π ( s ′ ) − V 2 π ( s ′ ) ∣    绝对值不等式 ⩽ γ ∑ a ∈ A π ( s , a ) ∑ s ′ ∈ S P s → s ′ a [ max ⁡ s ′ ′ ∣ V 1 π ( s ′ ′ ) − V 2 π ( s ′ ′ ) ∣ ] = γ ∥ V 1 π ( s ) − V 2 π ( s ) ∥ ∞ \begin{aligned}\left| \left( \mathcal{B} ^{\pi}V_{1}^{\pi} \right) \left( s \right) -\left( \mathcal{B} ^{\pi}V_{2}^{\pi} \right) \left( s \right) \right|&=\left| \gamma \sum_{a\in A}{\pi \left( s,a \right)}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ V_{1}^{\pi}\left( s' \right) -V_{2}^{\pi}\left( s' \right) \right] \right|\\&\leqslant \gamma \sum_{a\in A}{\pi \left( s,a \right)}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left| V_{1}^{\pi}\left( s' \right) -V_{2}^{\pi}\left( s' \right) \right|\,\, {\text{绝对值不等式}}\\&\leqslant \gamma \sum_{a\in A}{\pi \left( s,a \right)}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ \underset{s''}{\max}\left| V_{1}^{\pi}\left( s'' \right) -V_{2}^{\pi}\left( s'' \right) \right| \right] \\&=\gamma \left\| V_{1}^{\pi}\left( s \right) -V_{2}^{\pi}\left( s \right) \right\| _{\infty}\end{aligned} (BπV1π)(s)(BπV2π)(s)= γaAπ(s,a)sSPssa[V1π(s)V2π(s)] γaAπ(s,a)sSPssaV1π(s)V2π(s)绝对值不等式γaAπ(s,a)sSPssa[s′′maxV1π(s′′)V2π(s′′)]=γV1π(s)V2π(s)

上述不等式对 ∀ s ∈ S \forall s\in S sS都成立,不妨取

s = a r g max ⁡ s ∣ ( B π V 1 π ) ( s ) − ( B π V 2 π ) ( s ) ∣ s=\mathrm{arg}\max _s\left| \left( \mathcal{B} ^{\pi}V_{1}^{\pi} \right) \left( s \right) -\left( \mathcal{B} ^{\pi}V_{2}^{\pi} \right) \left( s \right) \right| s=argsmax(BπV1π)(s)(BπV2π)(s)

∣ ( B π V 1 π ) ( s ) − ( B π V 2 π ) ( s ) ∣ ∞ ⩽ γ ∥ V 1 π ( s ) − V 2 π ( s ) ∥ ∞ \left| \left( \mathcal{B} ^{\pi}V_{1}^{\pi} \right) \left( s \right) -\left( \mathcal{B} ^{\pi}V_{2}^{\pi} \right) \left( s \right) \right|_{\infty}\leqslant \gamma \left\| V_{1}^{\pi}\left( s \right) -V_{2}^{\pi}\left( s \right) \right\| _{\infty} (BπV1π)(s)(BπV2π)(s)γV1π(s)V2π(s)

所以 B π \mathcal{B} ^{\pi} Bπ是一个压缩映射,根据巴拿赫不动点定理,映射 B π \mathcal{B} ^{\pi} Bπ存在唯一的不动点 。换言之,若需要求解状态值函数 V π ( s ) V^{\pi}\left( s \right) Vπ(s),可以任取一个值 V 0 π ( s ) V_{0}^{\pi}\left( s \right) V0π(s)进行迭代,最终收敛到正确的 V π ( s ) V^{\pi}\left( s \right) Vπ(s)

lim ⁡ k → ∞ ( B π ) k V 0 π = V π \lim _{k\rightarrow \infty}\left( \mathcal{B} ^{\pi} \right) ^kV_{0}^{\pi}=V^{\pi} klim(Bπ)kV0π=Vπ

这就是强化学习中策略评估的理论保证


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《Pytorch深度学习实战》
  • 《机器学习强基计划》
  • 《运动规划实战精讲》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇

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

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

相关文章

ZUH-ACDM-网络-网闸-根据论坛的案例进行分析

H3C技术论坛&#xff1a;https://zhiliao.h3c.com/Theme/details/64343 文章目录 需求&#xff1a;源地址&#xff1a;172.16.1.33访问目的地址&#xff1a;192.168.4.233确认确定是主机确认外端机连接地址172.16.1.254确认内端机到源地址172.16.1.33是通的确认流量走向/路由第…

基于matlab使用高斯混合模型检测和计数视频序列中的汽车(附源码)

一、前言 此示例演示如何使用基于高斯混合模型 &#xff08;GMM&#xff09; 的前景检测器检测和计数视频序列中的汽车。 检测和计数汽车可用于分析交通模式。检测也是执行更复杂的任务&#xff08;例如按类型跟踪或分类车辆&#xff09;之前的第一步。 此示例演示如何使用前…

prometheus描点原理

大家好&#xff0c;我是蓝胖子&#xff0c;关于prometheus的入门教程有很多&#xff0c;拿我之前学prometheus的经历来讲&#xff0c;看了很多教程&#xff0c;还是会对prometheus的描点以及背后的统计原理感到迷惑&#xff0c;所以今天我们就来分析下这部分&#xff0c;来揭开…

AIGC - Stable Diffusion 的 墨幽人造人 模型与 Tag 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131565068 Stable Diffusion的模型网站 LiblibAI&#xff1a;https://www.liblibai.com 墨幽人造人网址&#xff1a;https://www.liblibai.com/m…

BUU [vnctf2023]电子木鱼

BUU [vnctf2023]电子木鱼 先看看题目&#xff0c;点不了。 看看源码。Rust整数溢出。 在 Rust 中&#xff0c;整数类型默认是有符号整数类型&#xff0c;意味着这些整数类型可以表示正数和负数。对于有符号整数类型&#xff0c;最高位用来表示符号&#xff0c;0 表示正数&…

如何在Microsoft Excel中快速创建等比序列

Excel 中的填充句柄允许你通过拖动句柄自动填充行或列中的数据列表&#xff08;数字或文本&#xff09;。这可以在大型工作表中输入顺序数据时节省大量时间&#xff0c;并提高工作效率。 如果数据遵循某个模式或基于其他单元格中的数据&#xff0c;则可以使用“自动填充”功能…

TiDB(7):技术内幕之存储

1 引言 数据库、操作系统和编译器并称为三大系统&#xff0c;可以说是整个计算机软件的基石。其中数据库更靠近应用层&#xff0c;是很多业务的支撑。这一领域经过了几十年的发展&#xff0c;不断的有新的进展。 很多人用过数据库&#xff0c;但是很少有人实现过一个数据库&a…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习三)

设备节点功能模块设计 在本文节点功能设计中&#xff0c;拥有用于检测温度的温度传感器、监测湿度的湿度传感器以及 调节空调温度的IR红外发射器&#xff0c;另留有部分外接扩展串口&#xff0c;因此可能会在实际使用中扩展更多的设备模块与功能。 可见&#xff0c;如何高效地…

2023年03月份青少年软件编程Python等级考试试卷三级真题(含答案)

2023-03 Python三级真题 分数&#xff1a;100 题数&#xff1a;38 测试时长&#xff1a;60min 一、单选题(共25题&#xff0c;共50分) 1.十进制数111转换成二进制数是&#xff1f;&#xff08; &#xff09;&#xff08;2分&#xff09; A.111 B.1111011 C.101111 D…

青岛大学_王卓老师【数据结构与算法】Week04_10_线性表的应用3_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c;另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–…

Spring Boot中的度量指标及使用方法

Spring Boot中的度量指标及使用方法 简介 Spring Boot是目前流行的Java后端框架之一&#xff0c;它提供了许多有用的功能&#xff0c;其中包括度量指标。度量指标可以帮助我们监测应用程序的性能、稳定性和可靠性&#xff0c;以便及时发现并解决问题。本文将介绍Spring Boot中…

使用Jetpack Compose集成WebView

在Android开发中&#xff0c;WebView是一个非常重要的组件&#xff0c;它可以用来显示网页或加载在线内容。然而&#xff0c;在Jetpack Compose&#xff08;Google推出的新的UI工具包&#xff09;中&#xff0c;目前没有内置的WebView Composable。但不必担心&#xff0c;你可以…

【数据算法与结构】栈和队列课后习题

题目&#xff08;共两道&#xff09; 题目1 Qestion: 根据下面代码片段写出运行下列程序段的输出结果(元素类型为char) 题目代码片段 void main() {Stack S; char x,y; InitStack(S); // 初始化栈x ‘e ‘; y ‘c’; Push(S, ‘h‘); Push(S, ‘r‘); Push(S,y);Pop(S,x);…

了解Java可见性的本质

作者&#xff1a;早恒 前一段时间重温了伪共享&#xff08;false sharing&#xff09;问题&#xff0c;了解到深处有几个问题一直想不明白&#xff0c;加上开发过程中遇到volatile时总觉得理解不够透彻&#xff0c;借着这次脑子里这几个问题&#xff0c;探究下Java可见性的本质…

【C语言】深入学习函数(万字)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在回炉重造C语言&#xff08;2023暑假&#xff09; ✈️专栏&#xff1a;【C语言航路】 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你…

文件上传+文件包含组合式getshell

实验目的 通过本实验&#xff0c;了解文件包含的特点&#xff0c;掌握图片马的执行方法&#xff0c;文件上传文件包含组合式getshell。 实验环境 操作机&#xff1a;kali 靶机&#xff1a;Windows 2007 用户名/密码&#xff1a;college/360College 实验地址&#xff1a;http…

jenkins部署springboot项目

jenkins部署springboot项目 1、创建一个项目 上传到gitee 1、创建项目 2、上传到git 2、jenkins创建一个pipeline项目 Pipeline简介 1&#xff09;概念 Pipeline&#xff0c;简单来说&#xff0c;一套运行在 Jenkins 上的工作流框架&#xff0c;将原来独立运行于单个或者…

优化chatGPT提示词的Prompts

你扮演一个专业的chatGPT提示词工程师&#xff0c;我将为您提供我的提示词&#xff0c;它用三个反引号分隔&#xff0c;请根据openai发布的提示词标准和优化技巧&#xff0c;改进和优化我的提示词&#xff0c;让chatGPT能够更好的理解。 我的第一个提示词是&#xff1a;“”“……

【UI设计】新拟态风格

新拟态风格 1.有且只有一个光源照射 那作者在追波上按钮也好还是卡片处理也好&#xff0c;仔细观察不难发现&#xff0c;它定了一个光源&#xff0c;是从左上向右下照射的&#xff0c;所以&#xff0c;越靠近光源的部分&#xff0c;越亮&#xff0c;远离光源的越暗&#xff08;…

卡尔曼滤波实例分析(一)

1 现实问题 假设一个物体位于1000米处以自由落体运动&#xff0c;地面有一台具有特殊功能的雷达&#xff0c;对其进行观察&#xff0c;现需要对其下落的高度进行测量&#xff1b; &#xff08;1&#xff09;建模 速度&#xff1a;V gt 位置&#xff1a;Y -Vt Y0 &#xff0…