深度强化学习(六)(改进价值学习)

news2024/11/18 4:19:13

深度强化学习(六)(改进价值学习)

一.经验回放

把智能体与环境交互的记录(即经验)储存到 一个数组里,事后反复利用这些经验训练智能体。这个数组被称为经验回放数组(replay buffer)。

具体来说, 把智能体的轨迹划分成 ( s t , a t , r t , s t + 1 ) \left(s_t, a_t, r_t, s_{t+1}\right) (st,at,rt,st+1) 这样的四元组, 存入一个数组。需要人为指定数组的大小 (记作 b b b )。数组中只保留最近 b b b 条数据; 当数组存满之后, 删除掉最旧的数据。数组的大小 b b b 是个需要调的超参数, 会影响训练的结果。通常设置 b b b 1 0 5 ∼ 1 0 6 10^5 \sim 10^6 105106

在实践中,要等回放数组中有足够多的四元组时,才开始做经验回放更新DQN。

  • 经验回放的一个好处在于打破序列的相关性。训练 DQN 的时候, 每次我们用一个四元组对 DQN 的参数做一次更新。我们希望相邻两次使用的四元组是独立的。然而当智能体收集经验的时候, 相邻两个四元组 ( s t , a t , r t , s t + 1 ) \left(s_t, a_t, r_t, s_{t+1}\right) (st,at,rt,st+1) ( s t + 1 , a t + 1 , r t + 1 , s t + 2 ) \left(s_{t+1}, a_{t+1}, r_{t+1}, s_{t+2}\right) (st+1,at+1,rt+1,st+2) 有很强的相关性。依次使用这些强关联的四元组训练 DQN, 效果往往会很差。经验回放每次从数组里随机抽取一个四元组, 用来对 DQN 参数做一次更新。这样随机抽到的四元组都是独立的, 消除了相关性。
  • 经验回放的另一个好处是重复利用收集到的经验, 而不是用一次就丢弃, 这样可以用更少的样本数量达到同样的表现。

需要注意, 并非所有的强化学习方法都允许重复使用过去的经验。经验回放数组里的数据全都是用行为策略 (behavior policy) 控制智能体收集到的。在收集经验同时, 我们也在不断地改进策略。策略的变化导致收集经验时用的行为策略是过时的策略, 不同于当前我们想要更新的策略——即目标策略(target policy)。也就是说,经验回放数组中的经验通常是过时的行为策略收集的, 而我们真正想要学的目标策略不同于过时的行为策略。

有些强化学习方法允许行为策略不同于目标策略。这样的强化学习方法叫做异策略 (off-policy)。比如 Q \mathrm{Q} Q 学习、确定策略梯度 (DPG) 都属于异策略。由于它们允许行为策略不同于目标策略, 过时的行为策略收集到的经验可以被重复利用。经验回放适用于异策略。

二.优先经验回放

优先经验回放给每个四元组一个权重, 然后根据权重做非均匀随机抽样。如果 DQN 对 ( s j , a j ) \left(s_j, a_j\right) (sj,aj) 的价值判断不准确, 即 Q ( s j , a j ; w ) Q\left(s_j, a_j ; \boldsymbol{w}\right) Q(sj,aj;w) Q ⋆ ( s j , a j ) Q_{\star}\left(s_j, a_j\right) Q(sj,aj) 较远,则四元组 ( s j , a j , r j , s j + 1 ) \left(s_j, a_j, r_j, s_{j+1}\right) (sj,aj,rj,sj+1) 应当有较高的权重。

因此, 要是 ∣ Q ( s j , a j ; w ) − Q ⋆ ( s j , a j ) ∣ \left|Q\left(s_j, a_j ; \boldsymbol{w}\right)-Q_{\star}\left(s_j, a_j\right)\right| Q(sj,aj;w)Q(sj,aj) 较大, 则应该给样本 ( s j , a j , r j , s j + 1 ) \left(s_j, a_j, r_j, s_{j+1}\right) (sj,aj,rj,sj+1) 较高的权重。然而实际上我们不知道 Q ⋆ Q_{\star} Q, 因此无从得知 ∣ Q ( s j , a j ; w ) − Q ⋆ ( s j , a j ) ∣ \left|Q\left(s_j, a_j ; \boldsymbol{w}\right)-Q_{\star}\left(s_j, a_j\right)\right| Q(sj,aj;w)Q(sj,aj) 。不妨把它替换成 TD 误差。回忆一下, TD 误差的定义是:
δ j ≜ Q ( s j , a j ; w now  ) − [ r t + γ ⋅ max ⁡ a ∈ A Q ( s j + 1 , a ; w now  ) ] ⏟ 即 TD 目标  . \delta_j \triangleq Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right)-\underbrace{\left[r_t+\gamma \cdot \max _{a \in \mathcal{A}} Q\left(s_{j+1}, a ; \boldsymbol{w}_{\text {now }}\right)\right]}_{\text {即 TD 目标 }} . δjQ(sj,aj;wnow ) TD 目标  [rt+γaAmaxQ(sj+1,a;wnow )].

如果 TD 误差的绝对值 ∣ δ j ∣ \left|\delta_j\right| δj 大, 说明 DQN 对 ( s j , a j ) \left(s_j, a_j\right) (sj,aj) 的真实价值的评估不准确, 那么应该给 ( s j , a j , r j , s j + 1 ) \left(s_j, a_j, r_j, s_{j+1}\right) (sj,aj,rj,sj+1) 设置较高的权重。

优先经验回放对数组里的样本做非均匀抽样。四元组 ( s j , a j , r j , s j + 1 ) \left(s_j, a_j, r_j, s_{j+1}\right) (sj,aj,rj,sj+1) 的权重是 TD 误差的绝对值 ∣ δ j ∣ \left|\delta_j\right| δj 。有两种方法设置抽样概率。一种抽样概率是:
p j ∝ ∣ δ j ∣ + ϵ . p_j \propto\left|\delta_j\right|+\epsilon . pjδj+ϵ.

此处的 ϵ \epsilon ϵ 是个很小的数, 防止抽样概率接近零, 用于保证所有样本都以非零的概率被抽到。另一种抽样方式先对 ∣ δ j ∣ \left|\delta_j\right| δj 做降序排列, 然后计算
p j ∝ 1 rank ⁡ ( j ) . p_j \propto \frac{1}{\operatorname{rank}(j)} . pjrank(j)1.

此处的 rank ⁡ ( j ) \operatorname{rank}(j) rank(j) ∣ δ j ∣ \left|\delta_j\right| δj 的序号。大的 ∣ δ j ∣ \left|\delta_j\right| δj 的序号小, 小的 ∣ δ j ∣ \left|\delta_j\right| δj 的序号大。两种方式的原理是一样的, ∣ δ j ∣ \left|\delta_j\right| δj 大的样本被抽样到的概率大。

优先经验回放做非均匀抽样, 四元组 ( s j , a j , r j , s j + 1 ) \left(s_j, a_j, r_j, s_{j+1}\right) (sj,aj,rj,sj+1) 被抽到的概率是 p j p_j pj 。对于那些更重要的样本,被抽中的次数更多,参数更新的次数越多,为使更新效果更好可以适当减小学习率,适当减小学习率可以使得更新方向更精准,同时也使样本的被抽中得概率 p j p_j pj不会剧烈下降,保证更新次数。可以这样设置学习率:
α j = α ( b ⋅ p j ) β , \alpha_j=\frac{\alpha}{\left(b \cdot p_j\right)^\beta}, αj=(bpj)βα,
$\text { 此处的 } b \text { 是经验回放数组中样本的总数, } \beta \in(0,1) \text { 是个需要调的超参数 } $

三.高估问题

x 1 , ⋯   , x d x_1, \cdots, x_d x1,,xd 为任意 d d d 个实数。往 x 1 x_1 x1, ⋯   , x d \cdots, x_d ,xd 中加入任意均值为零的随机噪声, 得到 Z 1 , ⋯   , Z d Z_1, \cdots, Z_d Z1,,Zd, 它们是随机变量, 随机性来源于随机噪声。我们有如下不等式
E [ max ⁡ ( Z 1 , ⋯   , Z d ) ] ≥ max ⁡ ( x 1 , ⋯   , x d ) \mathbb{E}\left[\max \left(Z_1, \cdots, Z_d\right)\right] \geq \max \left(x_1, \cdots, x_d\right) E[max(Z1,,Zd)]max(x1,,xd)
proof:利用琴生不等式,我们有 E [ f ( x ) ] ≥ f ( E [ x ] ) \Bbb E[f(x)]\geq f(\Bbb E[x]) E[f(x)]f(E[x]),如果 f ( x ) f(x) f(x)是一个凸函数。而 max ( x 1 , x 2 , … , x d ) \text{max}(x_1,x_2,\ldots,x_d) max(x1,x2,,xd)显然是凸的。

这个不等式意味着先加入均值为零的噪声,然后求最大值,会产生高估。

假设对于所有的动作 a ∈ A a \in \mathcal{A} aA 和状态 s ∈ S , D Q N s \in \mathcal{S}, \mathrm{DQN} sS,DQN 的输出是真实价值 Q ⋆ ( s , a ) Q_{\star}(s, a) Q(s,a) 加上均值为零的随机噪声 ϵ \epsilon ϵ :
Q ( s , a ; w ) = Q ⋆ ( s , a ) + ϵ . Q(s, a ; \boldsymbol{w})=Q_{\star}(s, a)+\epsilon . Q(s,a;w)=Q(s,a)+ϵ.

显然 Q ( s , a ; w ) Q(s, a ; \boldsymbol{w}) Q(s,a;w) 是对真实价值 Q ⋆ ( s , a ) Q_{\star}(s, a) Q(s,a) 的无偏估计。有这个不等式:
E ϵ [ max ⁡ a ∈ A Q ( s , a ; w ) ] ≥ max ⁡ a ∈ A Q ⋆ ( s , a ) . \mathbb{E}_\epsilon\left[\max _{a \in \mathcal{A}} Q(s, a ; \boldsymbol{w})\right] \geq \max _{a \in \mathcal{A}} Q_{\star}(s, a) . Eϵ[aAmaxQ(s,a;w)]aAmaxQ(s,a).

公式说明哪怕 DQN 是对真实价值的无偏估计, 但是如果求最大化, DQN 就会高估真实价值。复习一下, TD 目标是这样算出来的:
y ^ j = r j + γ ⋅ max ⁡ a ∈ A Q ( s j + 1 , a ; w ) ⏟ 高估  max ⁡ a ∈ A Q ⋆ ( s j + 1 , a ) . \widehat{y}_j=r_j+\gamma \cdot \underbrace{\max _{a \in \mathcal{A}} Q\left(s_{j+1}, a ; \boldsymbol{w}\right)}_{\text {高估 } \max _{a \in \mathcal{A}} Q_{\star}\left(s_{j+1}, a\right)} . y j=rj+γ高估 maxaAQ(sj+1,a) aAmaxQ(sj+1,a;w).

这说明 TD 目标 y ^ j \widehat{y}_j y j 通常是对真实价值 Q ⋆ ( s j , a j ) Q_{\star}\left(s_j, a_j\right) Q(sj,aj) 的高估。TD 算法鼓励 Q ( s j , a j ; w ) Q\left(s_j, a_j ; \boldsymbol{w}\right) Q(sj,aj;w) 接近 T D \mathrm{TD} TD 目标 y ^ j \widehat{y}_j y j, 这会导致 Q ( s j , a j ; w ) Q\left(s_j, a_j ; \boldsymbol{w}\right) Q(sj,aj;w) 高估真实价值 Q ⋆ ( s j , a j ) Q_{\star}\left(s_j, a_j\right) Q(sj,aj) 。高估再通过自举的方式传给下一项。

想要避免DQN的高估,要么切断自举,要么避免最大化造成高估

四.使用目标网络

想要切断自举,可以用另一个神经网络计算TD目标,而不是用DQN自己计算TD目标。另一个神经网络被称作目标网络(target network)。把目标网络记作:
Q ( s , a ; w − ) Q\left(s, a ; \boldsymbol{w}^{-}\right) Q(s,a;w)
设DQN和目标网络当前的参数分别为 w n o w w_{now} wnow w n o w − w^−_{now} wnow

执行下面的步骤对参数做一次更新:

  1. 对 DQN 做正向传播, 得到:
    q ^ j = Q ( s j , a j ; w now  ) . \widehat{q}_j=Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right) . q j=Q(sj,aj;wnow ).
  2. 对目标网络做正向传播, 得到
    q ^ j + 1 − = max ⁡ a ∈ A Q ( s j + 1 , a ; w now  − ) . \hat q_{j+1}^{-}=\max _{a \in \mathcal{A}} Q\left(s_{j+1}, a ; \boldsymbol{w}_{\text {now }}^{-}\right) . q^j+1=aAmaxQ(sj+1,a;wnow ).
  3. 计算 TD 目标和 TD 误差:
    y ^ j = r j + γ ⋅ q ^ j + 1 −  和  δ j = q ^ j − y ^ j . \hat y_j=r_j+\gamma \cdot \hat q_{j+1}^{-} \quad \text { 和 } \quad \delta_j=\widehat{q}_j-\widehat{y}_j . y^j=rj+γq^j+1  δj=q jy j.
  4. 对 DQN 做反向传播, 得到梯度 ∇ w Q ( s j , a j ; w now  ) \nabla_{\boldsymbol{w}} Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right) wQ(sj,aj;wnow )
  5. 做梯度下降更新 DQN 的参数:
    w new  ← w now  − α ⋅ δ j ⋅ ∇ w Q ( s j , a j ; w now  ) . \boldsymbol{w}_{\text {new }} \leftarrow \boldsymbol{w}_{\text {now }}-\alpha \cdot \delta_j \cdot \nabla_{\boldsymbol{w}} Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right) . wnew wnow αδjwQ(sj,aj;wnow ).
  6. τ ∈ ( 0 , 1 ) \tau \in(0,1) τ(0,1) 是需要手动调的超参数。做加权平均更新目标网络的参数:

w new  − ← τ ⋅ w new  + ( 1 − τ ) ⋅ w now  − . \boldsymbol{w}_{\text {new }}^{-} \leftarrow \tau \cdot \boldsymbol{w}_{\text {new }}+(1-\tau) \cdot \boldsymbol{w}_{\text {now }}^{-} . wnew τwnew +(1τ)wnow .

五.双Q学习

双Q学习总体上可以认为将选则与求值进行了解耦操作,缓解了高估问题

回顾一下 Q \mathrm{Q} Q 学习算法中的 TD 目标:
y ^ j = r j + γ ⋅ max ⁡ a ∈ A Q ( s j + 1 , a ; w ) . \widehat{y}_j=r_j+\gamma \cdot \max _{a \in \mathcal{A}} Q\left(s_{j+1}, a ; \boldsymbol{w}\right) . y j=rj+γaAmaxQ(sj+1,a;w).

不妨把最大化拆成两步:

  1. 选择一一即基于状态 s j + 1 s_{j+1} sj+1, 选出一个动作使得 DQN 的输出最大化:
    a ⋆ = argmax ⁡ a ∈ A Q ( s j + 1 , a ; w ) . a^{\star}=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{j+1}, a ; \boldsymbol{w}\right) . a=aAargmaxQ(sj+1,a;w).
  2. 求值一一即计算 ( s j + 1 , a ⋆ ) \left(s_{j+1}, a^{\star}\right) (sj+1,a) 的价值, 从而算出 TD 目标:
    y ^ j = r j + Q ( s j + 1 , a ⋆ ; w ) . \widehat{y}_j=r_j+Q\left(s_{j+1}, a^{\star} ; \boldsymbol{w}\right) . y j=rj+Q(sj+1,a;w).

以上是原始的 Q \mathrm{Q} Q 学习算法, 选择和求值都用 D Q N \mathrm{DQN} DQN 。上一节改进了 Q \mathrm{Q} Q 学习, 选择和求值都用目标网络:

  • 选择 : a − = argmax ⁡ a ∈ A Q ( s j + 1 , a ; w − ) \quad a^{-}=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{j+1}, a ; \boldsymbol{w}^{-}\right) a=aAargmaxQ(sj+1,a;w),
  • 求值: y ^ j − = r j + Q ( s j + 1 , a − ; w − ) \quad \widehat{y}_j^{-}=r_j+Q\left(s_{j+1}, a^{-} ; \boldsymbol{w}^{-}\right) y j=rj+Q(sj+1,a;w).

本节介绍双 Q \mathrm{Q} Q 学习, 第一步的选择用 DQN, 第二步的求值用目标网络:

  • 选择: a ⋆ = argmax ⁡ a ∈ A Q ( s j + 1 , a ; w ) \quad a^{\star}=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{j+1}, a ; \boldsymbol{w}\right) a=aAargmaxQ(sj+1,a;w),
  • 求值 : y ~ j = r j + Q ( s j + 1 , a ⋆ ; w − ) \quad \tilde{y}_j=r_j+Q\left(s_{j+1}, a^{\star} ; \boldsymbol{w}^{-}\right) y~j=rj+Q(sj+1,a;w).

不难证明出这个不等式:
Q ( s j + 1 , a ⋆ ; w − ) ⏟ 双  Q  学习  ≤ max ⁡ a ∈ A Q ( s j + 1 , a ; w − ) ⏟ 用目标网络的  Q  学习  . \underbrace{Q\left(s_{j+1}, a^{\star} ; \boldsymbol{w}^{-}\right)}_{\text {双 } \mathrm{Q} \text { 学习 }} \leq \underbrace{\max _{a \in \mathcal{A}} Q\left(s_{j+1}, a ; \boldsymbol{w}^{-}\right)}_{\text {用目标网络的 } \mathrm{Q} \text { 学习 }} .  Q 学习  Q(sj+1,a;w)用目标网络的 Q 学习  aAmaxQ(sj+1,a;w).

因此,
y ~ t ⏟ 双  Q  学习  ≤ y ~ t − ⏟ 用目标网络的  Q  学习  . \underbrace{\tilde{y}_t}_{\text {双 } \mathrm{Q} \text { 学习 }} \leq \underbrace{\widetilde{y}_t^{-}}_{\text {用目标网络的 } \mathrm{Q} \text { 学习 }} .  Q 学习  y~t用目标网络的 Q 学习  y t.

这个公式说明双 Q \mathrm{Q} Q 学习得到的 TD 目标更小。也就是说, 与用目标网络的 Q \mathrm{Q} Q 学习相比,双 Q 学习缓解了高估。

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

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

相关文章

C#,深度好文,精致好码,文本对比(Text Compare)算法与源代码

Vladimir I. Levenshtein 一、文本对比的列文斯坦距离(编辑距离)算法 在日常应用中,文本比较是一个比较常见的问题。文本比较算法也是一个老生常谈的话题。 文本比较的核心就是比较两个给定的文本(可以是字节流等)之间的差异。目前,主流的比较文本之间的差异主要有两大类…

力扣112、113、101--树

112. 路径总和 题目描述: 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。 判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 如果存在,返回 true ;否则&#xff0c…

海豚调度系列之:任务类型——SPARK节点

海豚调度系列之:任务类型——SPARK节点 一、SPARK节点二、创建任务三、任务参数四、任务样例1.spark submit2.spark sql 五、注意事项: 一、SPARK节点 Spark 任务类型用于执行 Spark 应用。对于 Spark 节点,worker 支持两个不同类型的 spark…

TinTin Web3 动态精选:以太坊坎昆升级利好 Layer2,比特币减半进入倒计时

TinTin 快讯由 TinTinLand 开发者技术社区打造,旨在为开发者提供最新的 Web3 新闻、市场时讯和技术更新。TinTin 快讯将以周为单位, 汇集当周内的行业热点并以快讯的形式排列成文。掌握一手的技术资讯和市场动态,将有助于 TinTinLand 社区的开…

【SpringBoot3】整合Druid数据源和Mybatis 项目打包和运行

文章目录 一、整合Druid数据源二、整合Mybatis2.1 MyBatis整合步骤2.1 Mybatis整合实践2.1 声明式事务整合配置2.1 AOP整合配置 三、项目打包和运行命令启动和参数说明 总结web 与 springboot 打包区别JDK8的编译环境 执行17高版本jar 一、整合Druid数据源 创建模块 &#xff1…

2024年【天津市安全员C证】考试资料及天津市安全员C证考试试题

题库来源:安全生产模拟考试一点通公众号小程序 天津市安全员C证考试资料根据新天津市安全员C证考试大纲要求,安全生产模拟考试一点通将天津市安全员C证模拟考试试题进行汇编,组成一套天津市安全员C证全真模拟考试试题,学员可通过…

微信小程序原生<map>地图实现标记多个位置以及map 组件 callout 自定义气泡

老规矩先上效果图: 1 、在pages文件夹下新建image文件夹用来存放标记的图片。 2、代码片段 也可以参考小程序文档:https://developers.weixin.qq.com/miniprogram/dev/component/map.html index.wxml代码 <mapid="map"style="width: 100%; height:100%;&…

2024批量导出公众号所有文章生成目录,这下方便找文章了

公众号历史文章太多&#xff0c;手机上翻起来太费劲&#xff0c;怎么快速找到某一天的文章呢&#xff1f;比如深圳卫健委这个号从2014到2024发布近万篇文章。 公众号历史文章太多&#xff0c;手机上翻起来太费劲&#xff0c;怎么快速找到某一天的文章&#xff1f; 如果要找2020…

【中等】保研/考研408机试-二叉树相关

目录 一、基本二叉树 1.1结构 1.2前序遍历&#xff08;注意三种遍历中Visit所在的位置&#xff09; 1.2中序遍历 1.3后序遍历 二、真题实战 2.1KY11 二叉树遍历&#xff08;清华大学复试上机题&#xff09;【较难】 2.2KY212 二叉树遍历二叉树遍历&#xff08;华中科技大…

印度交易所股票行情数据API接口

1. 历史日线 # Restful API https://tsanghi.com/api/fin/stock/XNSE/daily?token{token}&ticker{ticker}默认返回全部历史数据&#xff0c;也可以使用参数start_date和end_date选择特定时间段。 更新时间&#xff1a;收盘后3~4小时。 更新周期&#xff1a;每天。 请求方式…

基于SSM SpringBoot vue办公自动化计划管理系统

基于SSM SpringBoot vue办公自动化计划管理系统 系统功能 登录注册 个人中心 员工信息管理 部门信息管理 会议管理 计划管理 行程安排管理 行程进度管理 管理员管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: SSM(Spring SpringMVC Mybaits)或SpringBoot 前端…

数字万用表 (Digital Multimeter)

数字万用表 [Digital Multimeter] 1. Product parameters2. 交流频率测量3. 面板介绍4. 背光屏References 1. Product parameters 2. 交流频率测量 在交流 750V 档处按 HOLD 键切换到市电频率 3. 面板介绍 4. 背光屏 ​ References [1] Yongqiang Cheng, https://yongqiang…

【打工日常】使用Docker部署团队协作文档工具

一、ShowDoc介绍 ​ShowDoc是一个适合IT团队共同协作API文档、技术文档的工具。通过showdoc&#xff0c;可以方便地使用markdown语法来书写出API文档、数据字典文档、技术文档、在线excel文档等等。 响应式网页设计&#xff1a;可将项目文档分享到电脑或移动设备查看。同时也可…

easyExcel 导入、导出Excel 封装公共的方法

文档包含三部分功能 1、easyExcel 公共导出list<对象>方法&#xff0c;可以自定义excel中第一行和样式 2、easyExcel 导入逻辑&#xff0c;结合spring Validator 验证导入数据是否符合规范 3、easyExcel 自定义导出 list<map> 、 list<对象> &#xff08;可…

【论文阅读】IRNet:具有像素间关系的实例分割的弱监督学习

【论文阅读】IRNet:具有像素间关系的实例分割的弱监督学习 文章目录 【论文阅读】IRNet:具有像素间关系的实例分割的弱监督学习一、介绍二、联系工作三、方法四、实验结果 Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations 本文提出了一种以图…

2024043期传足14场胜负前瞻

2024043期售止时间为3月17日&#xff08;周日&#xff09;21点30分&#xff0c;敬请留意&#xff1a; 本期深盘多&#xff0c;1.5以下赔率1场&#xff0c;1.5-2.0赔率7场&#xff0c;其他场次是平半盘、平盘。本期14场整体难度中等偏上。以下为基础盘前瞻&#xff0c;大家可根据…

Java后端面试经验分享,~纯分享

本文将从面试、工作、学习三个方面分享最近面试的一些心得以及以后发展的一些规划&#xff0c;仅供参考&#xff0c;哈哈&#xff0c;毕竟本人也很菜&#xff0c;因为菜才要多学习。一会儿也会分享两本Java面试题库&#xff08;题库是b站大学找的&#xff0c;一会儿我也会分享出…

[Vue]组件间通讯

Vue组件间通讯 父子间通讯 非父子间通讯 父子间通讯 父组件通过 props 将数据传递给子组件父向子传值步骤 给子组件以添加属性的方式传值 子组件内部通过props接收 模板中直接使用 props接收 子组件利用 $emit 通知父组件修改更新 $emit触发事件&#xff0c;给父组件…

leetcode代码记录(组合

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [ […

python知识点总结(一)

这里写目录标题 一、什么是WSGI,uwsgi,uWSGI1、WSGI2、uWSGI3、uwsgi 二、python中为什么没有函数重载&#xff1f;三、Python中如何跨模块共享全局变量?四、内存泄露是什么?如何避免?五、谈谈lambda函数作用?六、写一个函数实现字符串反转&#xff0c;尽可能写出你知道的所…