深度强化学习(十)(TRPO)

深度强化学习(十)(TRPO与PPO)

一.信赖域方法

原问题:
maxmize J ( θ ) \text{maxmize} \qquad\qquad J(\theta) maxmizeJ(θ)
J J J是个很复杂的函数,我们甚至可能不知道 J J J 的解析表达式(比如 J J J 是某个函数的期望)

现在我们可对 J ( θ ) J(\theta) J(θ)进行近似成 L ( θ ) L(\theta) L(θ),使用 L ( θ ) L(\theta) L(θ)作为我们的目标函数(比如用均值代替期望),但这个近似仅在一定范围内成立,原问题可转化为以下问题。
maxmize L ( θ ) s.t ∣ ∣ θ − θ n o w ∣ ∣ 2 ≤ Δ ( 仅在 θ n o w 邻域内成立 ) \begin{aligned} \text{maxmize}&\qquad \qquad L(\theta)\\ \text{s.t}&\qquad \qquad ||\theta-\theta_{now}||^2\leq \Delta \qquad (\text{仅在}\theta_{now}邻域内成立) \end{aligned} maxmizes.tL(θ)∣∣θθnow2Δ(仅在θnow邻域内成立)
这样求得了新问题的解后,将新问题的解记作 θ n o w \theta_{now} θnow,继续在 θ n o w \theta_{now} θnow邻域内构造新的函数 L ′ ( θ ) L'(\theta) L(θ)使其近似于 J ( θ ) J(\theta) J(θ),继续迭代求解。

除此之外,置信域也有多种多样的选择, 既可以是二范数,也可以是两个概率分布的KL散度。

二.TRPO

Theorem:

目标函数 J ( θ ) J(\boldsymbol{\theta}) J(θ) 可以等价写成:
J ( θ ) = E S [ E A ∼ π ( ⋅ ∣ S ; θ now  ) [ π ( A ∣ S ; θ ) π ( A ∣ S ; θ now  ) ⋅ Q π ( S , A ) ] ] . J(\boldsymbol{\theta})=\mathbb{E}_S\left[\mathbb{E}_{A \sim \pi\left(\cdot \mid S ; \boldsymbol{\theta}_{\text {now }}\right)}\left[\frac{\pi(A \mid S ; \boldsymbol{\theta})}{\pi\left(A \mid S ; \boldsymbol{\theta}_{\text {now }}\right)} \cdot Q_\pi(S, A)\right]\right] . J(θ)=ES[EAπ(S;θnow )[π(AS;θnow )π(AS;θ)Qπ(S,A)]].

上面 Q π Q_\pi Qπ 中的 π \pi π 指的是 π ( A ∣ S ; θ ) \pi(A \mid S ; \boldsymbol{\theta}) π(AS;θ)

Proof:
J ( θ ) = E A , S [ Q π ( S , A ) ] = E S [ E A ∼ π ( A ∣ S ; θ ) [ Q π ( S , A ) ] ] = E S [ ∑ A Q π ( S , a ) ⋅ π ( a ∣ S ; θ ) ] = E S [ ∑ A Q π ( S , a ) ⋅ π ( A ∣ S ; θ ) π ( A ∣ S ; θ now  ) ⋅ π ( A ∣ S ; θ n o w ) ] = E S [ E A ∼ π ( ⋅ ∣ S ; θ now  ) [ π ( A ∣ S ; θ ) π ( A ∣ S ; θ now  ) ⋅ Q π ( S , A ) ] ] \begin{aligned} J(\boldsymbol \theta)&=\Bbb E_{A,S}[Q_{\pi}(S,A)]\\ &=\Bbb E_{S}[\Bbb E_{A\sim\pi(A\mid S;\boldsymbol \theta)}[Q_{\pi}(S,A)]]\\ &=\Bbb E_{S}[\sum_{A}Q_{\pi}(S,a)\cdot\pi(a\mid S;\boldsymbol \theta)]\\ &=\Bbb E_{S}[\sum_{A}Q_{\pi}(S,a)\cdot \frac{\pi(A \mid S ; \boldsymbol{\theta})}{\pi\left(A \mid S ; \boldsymbol{\theta}_{\text {now }}\right)}\cdot \pi(A\mid S;\boldsymbol \theta_{now})]\\ &=\mathbb{E}_S\left[\mathbb{E}_{A \sim \pi\left(\cdot \mid S ; \boldsymbol{\theta}_{\text {now }}\right)}\left[\frac{\pi(A \mid S ; \boldsymbol{\theta})}{\pi\left(A \mid S ; \boldsymbol{\theta}_{\text {now }}\right)} \cdot Q_\pi(S, A)\right]\right] \end{aligned} J(θ)=EA,S[Qπ(S,A)]=ES[EAπ(AS;θ)[Qπ(S,A)]]=ES[AQπ(S,a)π(aS;θ)]=ES[AQπ(S,a)π(AS;θnow )π(AS;θ)π(AS;θnow)]=ES[EAπ(S;θnow )[π(AS;θnow )π(AS;θ)Qπ(S,A)]]
有了以上的结论,我们可以对期望做蒙特卡洛近似,从而把函数 J J J近似成函数 L L L。用策略网络 π ( A ∣ S ; θ n o w ) \pi(A|S;\boldsymbol \theta_{now}) π(AS;θnow)控制智能体跟环境交互,从头到尾玩完一局游戏, 观测到一条轨迹:
s 1 , a 1 , r 1 , s 2 , a 2 , r 2 , ⋯   , s n , a n , r n s_1, a_1, r_1, s_2, a_2, r_2, \cdots, s_n, a_n, r_n s1,a1,r1,s2,a2,r2,,sn,an,rn
其中的状态 { s t } t = 1 n \left\{s_t\right\}_{t=1}^n {st}t=1n 都是从环境中观测到的, 其中的动作 { a t } t = 1 n \left\{a_t\right\}_{t=1}^n {at}t=1n 都是根据策略网络 π ( ⋅ ∣ s t ; θ now  ) \pi\left(\cdot \mid s_t ; \boldsymbol{\theta}_{\text {now }}\right) π(st;θnow ) 抽取的样本。所以,
π ( a t ∣ s t ; θ ) π ( a t ∣ s t ; θ now  ) ⋅ Q π ( s t , a t ) \frac{\pi\left(a_t \mid s_t ; \boldsymbol{\theta}\right)}{\pi\left(a_t \mid s_t ; \boldsymbol{\theta}_{\text {now }}\right)} \cdot Q_\pi\left(s_t, a_t\right) π(atst;θnow )π(atst;θ)Qπ(st,at)

是无偏估计。我们观测到了 n n n 组状态和动作, 于是应该求平均, 把得到均值记作:
L ( θ ∣ θ now  ) = 1 n ∑ t = 1 n π ( a t ∣ s t ; θ ) π ( a t ∣ s t ; θ now  ) ⋅ Q π ( s t , a t ) ⏟  期望的无偏估计  . L\left(\boldsymbol{\theta} \mid \boldsymbol{\theta}_{\text {now }}\right)=\frac{1}{n} \sum_{t=1}^n \underbrace{\frac{\pi\left(a_t \mid s_t ; \boldsymbol{\theta}\right)}{\pi\left(a_t \mid s_t ; \boldsymbol{\theta}_{\text {now }}\right)} \cdot Q_\pi\left(s_t, a_t\right)}_{\text { 期望的无偏估计 }} . L(θθnow )=n1t=1n 期望的无偏估计  π(atst;θnow )π(atst;θ)Qπ(st,at).

既然连加里每一项都是期望的无偏估计, 那么 n n n 项的均值 L L L 也是无偏估计。所以可以拿 L L L 作为目标函数 J J J 的蒙特卡洛近似。

L ( θ ∣ θ now  ) L\left(\boldsymbol{\theta} \mid \boldsymbol{\theta}_{\text {now }}\right) L(θθnow ) 是对目标函数 J ( θ ) J(\boldsymbol{\theta}) J(θ) 的近似。可惜我们还无法直接对 L L L 求最大化, 原因是我们不知道动作价值 Q π ( s t , a t ) Q_\pi\left(s_t, a_t\right) Qπ(st,at) 。解决方法是做两次近似:
Q π ( s t , a t ) ⟹ Q π old  ( s t , a t ) ⟹ u t . Q_\pi\left(s_t, a_t\right) \Longrightarrow Q_{\pi_{\text {old }}}\left(s_t, a_t\right) \Longrightarrow u_t . Qπ(st,at)Qπold (st,at)ut.

公式中 Q π Q_\pi Qπ 中的策略是 π ( a t ∣ s t ; θ ) \pi\left(a_t \mid s_t ; \boldsymbol{\theta}\right) π(atst;θ), 而 Q π old  Q_{\pi_{\text {old }}} Qπold  中的策略则是旧策略 π ( a t ∣ s t ; θ now  ) \pi\left(a_t \mid s_t ; \boldsymbol{\theta}_{\text {now }}\right) π(atst;θnow ) 。我们用旧策略 π ( a t ∣ s t ; θ now  ) \pi\left(a_t \mid s_t ; \boldsymbol{\theta}_{\text {now }}\right) π(atst;θnow ) 生成轨迹 { ( s j , a j , r j , s j + 1 ) } j = 1 n \left\{\left(s_j, a_j, r_j, s_{j+1}\right)\right\}_{j=1}^n {(sj,aj,rj,sj+1)}j=1n, 所以折扣回报
u t = r t + γ ⋅ r t + 1 + γ 2 ⋅ r t + 2 + ⋯ + γ n − t ⋅ r n u_t=r_t+\gamma \cdot r_{t+1}+\gamma^2 \cdot r_{t+2}+\cdots+\gamma^{n-t} \cdot r_n ut=rt+γrt+1+γ2rt+2++γntrn

是对 Q π o l d Q_{\pi_{\mathrm{old}}} Qπold 的近似, 而未必是对 Q π Q_\pi Qπ 的近似。仅当 θ \boldsymbol{\theta} θ 接近 θ now  \boldsymbol{\theta}_{\text {now }} θnow  的时候, u t u_t ut 才是 Q π Q_\pi Qπ 的有效近似。这就是为什么要强调置信域, 即 θ \boldsymbol{\theta} θ θ now  \boldsymbol{\theta}_{\text {now }} θnow  的邻域中。

三.PPO-惩罚

TRPO求解的原问题是
minmize − J ( θ ∣ θ n o w ) s.t KL ( θ ∣ θ n o w ) ≤ Δ \begin{aligned} \text{minmize}&\qquad-J(\boldsymbol \theta\mid \boldsymbol \theta_{now})\\ \text{s.t}& \qquad \text{KL}(\boldsymbol\theta\mid \boldsymbol \theta_{now})\leq\Delta \end{aligned} minmizes.tJ(θθnow)KL(θθnow)Δ
我们通过控制信赖域 Δ \Delta Δ来获得解。将其转化为等价优化问题,引入拉格朗日乘子 λ \lambda λ
maxmize θ maxmize λ J ( θ ∣ θ n o w ) − λ ( KL ( θ ∣ θ n o w ) − Δ ) s.t λ ≥ 0 \begin{aligned} \text{maxmize}_{\boldsymbol \theta}\quad\text{maxmize}_{\lambda}&\qquad J(\boldsymbol \theta\mid \boldsymbol \theta_{now})-\lambda(\text{KL}(\boldsymbol\theta\mid \boldsymbol \theta_{now})-\Delta)\\ \text{s.t}&\qquad \lambda\geq0 \end{aligned} maxmizeθmaxmizeλs.tJ(θθnow)λ(KL(θθnow)Δ)λ0
从上式可看出拉格朗日乘子 λ \lambda λ Δ \Delta Δ一一对应,所以我们可以通过调整 λ \lambda λ间接控制 Δ \Delta Δ。当给定某一 λ ≥ 0 \lambda\geq0 λ0时(例如 λ = 1 \lambda=1 λ=1),问题可写成
maxmize θ J ( θ ∣ θ n o w ) − λ KL ( θ ∣ θ n o w ) \text{maxmize}_{\theta}\qquad J(\boldsymbol \theta\mid \boldsymbol \theta_{now})-\lambda\text{KL}(\boldsymbol\theta\mid \boldsymbol \theta_{now}) maxmizeθJ(θθnow)λKL(θθnow)
这样我们成功的把有约束问题写成无约束形式,但如何选取 λ \lambda λ的值也是一个问题。我们可以分析一下 Δ \Delta Δ λ \lambda λ的关系。

如果信赖域 Δ \Delta Δ过小(K-L散度过大), KL ( θ ∣ θ n o w ) − Δ ≥ 0 \text{KL}(\boldsymbol\theta\mid \boldsymbol \theta_{now})-\Delta\geq0 KL(θθnow)Δ0,要最大化 J ( θ ∣ θ n o w ) − λ ( KL ( θ ∣ θ n o w ) − Δ ) J(\boldsymbol \theta\mid \boldsymbol \theta_{now})-\lambda(\text{KL}(\boldsymbol\theta\mid \boldsymbol \theta_{now})-\Delta) J(θθnow)λ(KL(θθnow)Δ) λ \lambda λ只能接近0

如果信赖域 Δ \Delta Δ过大(K-L散度过小), KL ( θ ∣ θ n o w ) − Δ ≤ 0 \text{KL}(\boldsymbol\theta\mid \boldsymbol \theta_{now})-\Delta\leq0 KL(θθnow)Δ0,要最大化 J ( θ ∣ θ n o w ) − λ ( KL ( θ ∣ θ n o w ) − Δ ) J(\boldsymbol \theta\mid \boldsymbol \theta_{now})-\lambda(\text{KL}(\boldsymbol\theta\mid \boldsymbol \theta_{now})-\Delta) J(θθnow)λ(KL(θθnow)Δ) λ \lambda λ只能接近 + ∞ +\infty +

所以我们有如下更新规则

d k = KL ( π θ k , π θ ) , λ d_k=\text{KL}\left(\pi_{\theta_k}, \pi_\theta\right) , \lambda dk=KL(πθk,πθ)λ 的更新规则如下:

  1. 如果 d k < δ / 1.5 d_k<\delta / 1.5 dk<δ/1.5 ,那么 λ k + 1 = λ k / 2 \lambda_{k+1}=\lambda_k / 2 λk+1=λk/2
  2. 如果 d k > δ × 1.5 d_k>\delta \times 1.5 dk>δ×1.5 ,那么 λ k + 1 = λ k × 2 \lambda_{k+1}=\lambda_k \times 2 λk+1=λk×2
  3. 否则 λ k + 1 = λ k \lambda_{k+1}=\lambda_k λk+1=λk

其中, δ \delta δ是事先设定的一个超参数,用于限制学习策略和之前一轮策略的差距。

四.PPO-截断

PPO 的另一种形式 PPO-截断(PPO-Clip)更加直接,它在目标函数中进行限制,以保证新的参数和旧的参数的差距不会太大,即:
arg ⁡ max ⁡ θ E S [ E A ∼ π θ n o w ( ⋅ ∣ S ) [ min ⁡ ( π θ ( A ∣ S ) π θ n o w ( A ∣ S ) A π θ n o w ( S , A ) , clip ⁡ ( π θ ( A ∣ S ) π θ n o w ( A ∣ S ) , 1 − ϵ , 1 + ϵ ) A π θ n o w ( S , A ) ) ] ] \underset{\theta}{\arg \max } \mathbb{E}_{S}\left[\mathbb{E}_{A \sim \pi_{\theta_{now}}(\cdot \mid S)}\left[\min \left(\frac{\pi_\theta(A \mid S)}{\pi_{\theta_{now}}(A \mid S)} A^{\pi_{\theta_{now}}}(S, A), \operatorname{clip}\left(\frac{\pi_\theta(A \mid S)}{\pi_{\theta_{now}}(A \mid S)}, 1-\epsilon, 1+\epsilon\right) A^{\pi_{\theta_{now}}}(S, A)\right)\right]\right] θargmaxES[EAπθnow(S)[min(πθnow(AS)πθ(AS)Aπθnow(S,A),clip(πθnow(AS)πθ(AS),1ϵ,1+ϵ)Aπθnow(S,A))]]
其中 A ( S , A ) A(S,A) A(S,A)是优势函数, clip ⁡ ( x , l , r ) : = max ⁡ ( min ⁡ ( x , r ) , l ) \operatorname{clip}(x, l, r):=\max (\min (x, r), l) clip(x,l,r):=max(min(x,r),l) ,即把 x x x 限制在 [ l , r ] [l, r] [l,r] 内。上式中 ϵ \epsilon ϵ 是一个超参数,表示进行截断 (clip) 的范围。如果 A ( s , a ) > 0 A(s, a)>0 A(s,a)>0 ,说明这个动作的价值高于平均,最大化这个式子会增大 π θ ( a ∣ s ) π θ n o w ( a ∣ s ) \frac{\pi_\theta(a \mid s)}{\pi_{\theta_{now}}(a \mid s)} πθnow(as)πθ(as) ,但不会让其超过 1 + ϵ ∘ 1+\epsilon_{\circ} 1+ϵ 反之,如果 A ( s , a ) < 0 A(s, a)<0 A(s,a)<0 ,说明这个动作的价值低于平均,最大化这个式子会减少 π θ ( a ∣ s ) π θ n o w ( a ∣ s ) \frac{\pi_\theta(a \mid s)}{\pi_{\theta_{now}}(a \mid s)} πθnow(as)πθ(as) ,但不会让其小于 1 − ϵ 1-\epsilon 1ϵ

)<0$ ,说明这个动作的价值低于平均,最大化这个式子会减少 π θ ( a ∣ s ) π θ n o w ( a ∣ s ) \frac{\pi_\theta(a \mid s)}{\pi_{\theta_{now}}(a \mid s)} πθnow(as)πθ(as) ,但不会让其小于 1 − ϵ 1-\epsilon 1ϵ

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Entity Framework】 EF三种开发模式

【Entity Framework】 EF三种开发模式 文章目录 【Entity Framework】 EF三种开发模式一、概述二、DataBase First2.1 DataBase First简介2.2 DataBase First应用步骤2.3 DataBase First总结 三、Model First3.1 Model First简介3.2 Model First实现步骤 四、Code First4.1 Cod…

YOLOv9有效改进专栏汇总|未来更新卷积、主干、检测头注意力机制、特征融合方式等创新![2024/3/23]

​ 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 专栏介绍 YOLOv9作为最新的YOLO系列模型&#xff0c;对于做目标检测的同学是必不可少的。本专栏将针对2024年最新推出的YOLOv9检测模型&#xff0…

一文看懂,如何精细化地进行跨域文件管控

随着企业规模的扩大和分支机构的增多&#xff0c;会出现不同地理位置、组织机构或网络安全域之间进行文件交换的场景。 像很多金融机构在全国或全球范围内会设立不同的分支机构和办事处&#xff0c;因此会存在不同组织机构之间的数据流转&#xff0c;即跨域文件传输。跨域文件传…

知识分享|视频号带货需要满足什么硬性条件?

视频号带货作为一种新兴的电商模式&#xff0c;已经逐渐受到越来越多人的关注。然而&#xff0c;想要在这一领域取得成功&#xff0c;并不是一件轻松的事情。除了需要具备一定的营销技巧和内容创作能力外&#xff0c;还有一些硬性条件必须得到满足。 首先&#xff0c;视频号带货…

GIMP - GNU 图像处理程序 - 中文版

GIMP - GNU 图像处理程序 - 中文版 1. Edit -> Preferences -> Interface2. Chinese [zh_CN]3. 重启 GIMP 即可References 1. Edit -> Preferences -> Interface 2. Chinese [zh_CN] 3. 重启 GIMP 即可 References [1] Yongqiang Cheng, https://yongqiang.blog.…

Xcode Launching “XXX“ is taking longer than expected

文章目录 1.问题2.如何进入iOS DeviceSupport目录3.解决方法4.参考博客 1.问题 LLDB is likely reading from device memory to resolve symbols 2.如何进入iOS DeviceSupport目录 3.解决方法 进入iOS DeviceSupport目录&#xff0c;删除该真机对应的架构文件&#xff08;比如…

谁再问你数据库三范式,这篇文章甩给他!!!

前几天有粉丝私信说面试被问到了数据库三范式&#xff08;面试问这种的不去也好&#xff09;&#xff0c;今天我们就来聊聊。在数据库设计的过程中&#xff0c;为了确保数据的准确性和完整性&#xff0c;我们通常遵循一定的规则和标准&#xff0c;其中最为人所熟知的便是“数据…

C++模版(基础)

目录 C泛型编程思想 C模版 模版介绍 模版使用 函数模版 函数模版基础语法 函数模版原理 函数模版实例化 模版参数匹配规则 类模版 类模版基础语法 C泛型编程思想 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。 模板是泛型编程…

优化选址问题 | 基于和声搜索算法求解基站选址问题含Matlab源码

目录 问题代码问题 和声搜索算法(Harmony Search, HS)是一种模拟音乐创作过程中乐师们凭借自己的记忆,通过反复调整各乐器的音调,直至达到最美和声状态为启发,通过反复调整解向量的各分量来寻求全局最优解的智能优化算法。 下面是一个基于和声搜索算法求解基站选址问题的…

大创项目推荐 基于图像识别的跌倒检测算法

前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于图像识别的跌倒检测算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/…

MySQL数据库的日志管理以及备份和恢复

目录 1、日志管理 2、查询日志 3、数据备份的重要性 4、数据库备份的分类 4.1物理备份 4.2逻辑备份&#xff1a; 4.3完全备份 5、常见的备份方法 6、MySQL完全备份 6.1MySQL完全备份优缺点 6.2数据库完全备份分类 6.2.1物理冷备份与恢复 6.2.2mysqldump备份…

什么是回归测试?

今天看看回归测试的基本概念。 什么是回归测试? 回归测试被定义为一种软件测试&#xff0c;以确认最近的程序或代码更改没有对现有功能产生不利影响。回归测试只是对已经执行的测试用例的全部或部分选择&#xff0c;重新执行这些用例以确保现有功能正常工作。 进行此测试是…

MYSQL高级语句(一)

目录 一、常用查询 1、order by 按关键字排序 1.升序排序 2.降序排序 3.结合where进行条件过滤再排序 4.多字段排序 2、区间判断及查询不重复记录 1. and / or 且与或的使用 2.嵌套、多条件使用 3.distinct 查询不重复记录 3、GROUP BY 对结果进行分组 4、Li…

就业班 第二阶段 2401--3.25 day5 mycat读写分离

[TOC] 启动并更改临时密码 [rootmysql1~]# systemctl start mysqld && passwdgrep password /var/log/mysqld.log | awk END{ print $NF} && mysqladmin -p"$passwd" password Qwer123..; MyCAT读写分离 Mycat 是一个开源的数据库系统&#xff0c;但…

【Node.js】WebSockets

概述 WebSockets是一种在浏览器和服务器之间建立持久连接的协议&#xff0c;它允许服务器主动推送数据给客户端&#xff0c;并且在客户端和服务器之间实现双向通信。 建立连接&#xff1a;客户端通过在JavaScript代码中使用WebSocket对象来建立WebSockets连接。例如&#xff1…

安达发|电子产品制造企业APS生产排程软件

在电子脉动的世界中&#xff0c;时间是芯片上的电流&#xff0c;效率是电路板上的速度。在这个时代&#xff0c;每一微秒都蕴藏着无限可能&#xff0c;每一决策都关乎着企业的生死存亡。APS生产排程软件&#xff0c;是您的电子制造帝国中的智慧大脑&#xff0c;以卓越的创造力&…

C++手撕AVL树

文章目录 AVL树概念 节点插入右单旋左右双旋 验证AVL树AVL树的性能 AVL树 之前我们讲了二叉搜索树的相关内容&#xff0c;但是也了解到二叉搜索树有其自身的缺陷&#xff0c;就是当插入的元素有序或者接近有序&#xff0c;退化成单支树的时候&#xff0c;他的时间复杂度就会退…

AIGC: 4 IT从业者如何构建自己的AI知识体系

图片是我使用dall.e模型生成的图片&#xff0c; 提示词&#xff1a; 程序员系统学习OpenAI开发者平台系统学习。 我按照SCQA模型&#xff0c;来开始今天的内容。 S 场景 今天是2024年3月23日&#xff0c;我在深圳&#xff0c;从事IT行业&#xff0c;每个人从事的行业各不相…

redis启动后无法被外部主机连接

目录 一、场景二、连接异常三、排查四、原因五、解决 一、场景 1、CentOS安装redis后&#xff0c;外部主机无法连接到redis 二、连接异常 1、RedisDesktopManager无法连接 2、使用telnet命令测试6379端口是否能正常访问 三、排查 1、redis服务是否启动 四、原因 从以下信息…

前端学习之JavaScript基础语法三种引入方式、三种输出方式、输入框、确认框、循环加强、arguments

目录 三种引入方式 三种输出方式 运行结果 变量 确认框、输入框 运行结果 循环加强 arguments 三种引入方式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><!-- 三…