【论文阅读笔记】VLP: A Survey on Vision-language Pre-training

目录

  • 前言
  • 2 特征提取(Feature extraction)
    • 2.1.1 图象特征提取
      • OD-based Region feature / RoI
      • Freeze the pre-trained object detectors
      • Grid features(网格特征)
      • CNN-GFs
      • End-to-End Training(端到端训练)
      • ViT-PFs
    • 2.1.2 视频特征提取
      • ResNet (残差神经网络)
      • I3D(Inflated 3D ConvNets)
      • fully-connected (FC) layer (全连接层)
    • 2.1.3 文本特征提取
    • 2.2 特征表示
      • uni-model (单模态)
      • the standard transformer encoder (标准transformer编码器)
      • Self-Attention Mechanism(自注意力机制)
      • Feedforward Neural Network(前馈神经网络)
  • 3 模型结构
    • 3.1 Single-stream versus Dual-stream
      • single-stream architecture(单流结构)
      • Dual-stream (双流结构)
    • 3.2 Encoder-only versus Encoder-decoder
      • Encoder (编码器)
      • Decoder (解码器)
  • 4 训练目标
    • 4.1 Masked language modeling (MLM 掩码语言模型)
    • 4.2 Prefix language modeling (PrefixLM 前缀语言建模)
      • sequence-to-sequence framework (seq2seq)
      • PrefixLM
    • 4.3 Masked vision modeling (MVM 掩码视觉模型)
      • Masked features regression (掩码特征回归)
      • Masked feature classification(掩码特征分类)
        • hard label (硬标签)
        • soft label (软标签)
          • Kullback-Leibler 散度
        • Faster R-CNN
    • 4.4 Vision-language matching(视觉语言匹配 VLM)
      • single-stream && dual-stream(单流架构和双流架构)
      • 正负样本对
    • 4.5 Vision-language contrastive learning(视觉语言对比学习 VLC)
    • 4.6 Word-region alignment (单词-区域对齐 WRA)
      • WRA基本原理
      • 最优传输 (Optimal Transport, OT)
        • 边缘分布
        • 传输成本
        • 最优传输距离
        • 计算方法
      • IPOT算法
    • 4.7 Frame order modeling (框架顺序建模 FOM)
    • 4.8 Particular pre-training objects (特定的预训练对象)

前言

  最近也是加入了学长学姐的课题组,没时间慢慢学CNN了,所以:
  让我们看论文~

  这个专栏主要用于记录一个新手看论文过程中遇到的不懂的名词。
  由于不确定能不能直接把原文贴出来,这里就不放原文链接了。

2 特征提取(Feature extraction)

2.1.1 图象特征提取

OD-based Region feature / RoI

在这里插入图片描述
  已有的模型会提取图象中的特征框,并算出特征向量,而VLP会将特征框的位置信息(左下角和右上角)嵌入到特征向量中,得到OD-RFs。这个过程被称为视觉几何嵌入(visual geometry embedding)。

Freeze the pre-trained object detectors

  这一操作是冻结预训练的目标检测器,即在预训练过程中保持目标检测器的参数不变,而去改变其他模块的参数。
  这样做可以减少提取区域特征的耗时,但限制了VLP模型的能力(不确定capacity应该翻译为容量还是能力)。

Grid features(网格特征)

在这里插入图片描述

CNN-GFs

在这里插入图片描述

End-to-End Training(端到端训练)

在这里插入图片描述

ViT-PFs

在这里插入图片描述

2.1.2 视频特征提取

ResNet (残差神经网络)

在这里插入图片描述

I3D(Inflated 3D ConvNets)

在这里插入图片描述

fully-connected (FC) layer (全连接层)

  就是最普通的计算 y = w x + b y=wx+b y=wx+b的层,最小化损失函数。

2.1.3 文本特征提取

  VLP借鉴了BERT、RoBERTa、AlBERT和XLNet的方法,具体步骤如下:
  (1)分词:输入的句子首先被分割成一系列子词(subwords)。这些子词可以是单词的一部分,也可以是完整的单词。分词的目的是处理词汇表中未出现的单词(OOV问题)。
  (2)添加特殊标记:在生成的子词序列的开头和结尾分别插入一个开始标记(start-of-sequence token,通常表示为[CLS])和一个结束标记(end-of-sequence token,通常表示为[SEP])。
  (3)生成输入表示:每个子词会被转换为一个嵌入向量,这个嵌入向量是通过以下三种嵌入的和来计算的:
    (i)词嵌入(Word Embedding):表示子词的语义信息。
    (ii)位置嵌入(Position Embedding):表示子词在序列中的位置信息。位置嵌入可以是固定的(如正弦/余弦函数)或学习的。
    (iii)类型嵌入(Type Embedding):表示子词所属的模态(例如,文本或视觉)。在多模态任务中,类型嵌入用于区分不同模态的输入。

2.2 特征表示

uni-model (单模态)

  只处理一种类型的数据的模型。

the standard transformer encoder (标准transformer编码器)

  标准的Transformer编码器(standard transformer encoder)是指在Transformer模型中用于处理输入数据的编码部分。它由多个编码器层组成,每个编码器层包含自注意力(self-attention)机制和前馈神经网络(feed-forward neural network)。自注意力机制允许模型在处理每个输入元素时,考虑输入序列中的所有其他元素,从而捕捉输入序列中的依赖关系。前馈神经网络则用于对每个输入元素进行非线性变换。

Self-Attention Mechanism(自注意力机制)

  自注意力机制(Self-Attention Mechanism)是Transformer模型中的一个核心组件,用于处理输入序列中的每个元素时,能够考虑输入序列中的所有其他元素。具体来说,自注意力机制通过计算输入序列中每个元素与其他所有元素之间的相关性(或相似性),生成一个加权表示,这些权重反映了每个元素对当前元素的重要性。

  在自注意力机制中,每个输入元素首先被转换为三个向量:查询向量(Query Vector)、键向量(Key Vector)和值向量(Value Vector)。这些向量通过线性变换从输入向量得到。然后,通过计算查询向量和键向量之间的点积,得到一个注意力分数,这些分数经过归一化(通常使用softmax函数)后,作为权重应用于值向量,生成最终的加权表示

  自注意力机制的主要优点是它能够捕捉输入序列中的长距离依赖关系,而不需要像RNN那样逐个处理序列元素。这使得Transformer模型在处理长序列时更加高效和有效。

Feedforward Neural Network(前馈神经网络)

  就是最简单的神经网络结构,信息从输入层经过隐藏层(如果有的话)流向输出层,而不会从输出层反馈到任何前面的层。

3 模型结构

3.1 Single-stream versus Dual-stream

single-stream architecture(单流结构)

  将多个模态的数据连接在一起,然后输入到单一的变换器块中。单流结构利用合并注意力(merged attention)来融合多模态输入。这种架构更加参数高效,因为同一组参数被用于处理两种模态的数据。

Dual-stream (双流结构)

  是指在多模态融合视角下,文本和视觉特征不被拼接在一起,而是分别输入到两个独立的变换器块中。这两个变换器块不共享参数。为了实现更高的性能,双流架构使用交叉注意力(cross-attention)机制来实现跨模态的交互。

在这里插入图片描述

3.2 Encoder-only versus Encoder-decoder

Encoder (编码器)

  编码器(Encoder)是Transformer模型中的一个核心组件,主要用于将输入数据(如文本或图像特征)转换为高维特征表示。在视觉-语言预训练(VLP)模型中,编码器通常用于处理单模态数据,例如纯文本或纯视觉特征。
   encoder-only结构:通常更加高效,计算开销较低,适合资源有限的环境。推理速度更快,适用于对实时性要求较高的任务。

Decoder (解码器)

  用来转化出最终的输出。
  这一层不是必须的,没有decoder的结构称为encoder-only结构;反之为encoder-decoder结构。
  encoder-decoder结构:虽然计算开销较高,但能够处理更复杂的生成任务,适用于需要高质量生成输出的场景。

4 训练目标

4.1 Masked language modeling (MLM 掩码语言模型)

  在 VLP 模型中,MLM 的目标是通过掩码部分文本 token 并根据剩余的文本 token 和视觉 token 来预测这些被掩码的 token。
在这里插入图片描述
在这里插入图片描述
  损失函数定义为:
在这里插入图片描述
在这里插入图片描述

4.2 Prefix language modeling (PrefixLM 前缀语言建模)

sequence-to-sequence framework (seq2seq)

  即将一个序列转化为另一个序列的深度学习架构,一般由编码器(encoder)、解码器(decoder)和注意力机制(Attention Mechanism)组成。

PrefixLM

  前缀语言模型(Prefix Language Model, PrefixLM)是一种特殊的语言模型,它不仅预测下一个词,还可以在给定前缀的情况下生成后续的文本。PrefixLM通常用于生成任务,如文本生成、对话系统等。
  
  损失函数定义是:
在这里插入图片描述

4.3 Masked vision modeling (MVM 掩码视觉模型)

   类似MLM的思路,MVM的主要目的是通过遮掩部分视觉特征,然后根据未被遮掩的视觉特征和文本特征来重建这些被遮掩的视觉特征。
  针对视觉特征是连续且高维的问题,VLP提出MVM的两种变体(回归与分类):

Masked features regression (掩码特征回归)

  它将模型输出的被遮掩特征转换为与原始视觉特征相同维度的向量,然后应用L2回归,解决了高维连续特征的处理问题。
在这里插入图片描述
在这里插入图片描述
  其中, h ( v m i ) h(v_{m}^{i}) h(vmi)表示模型预测的视觉特征, O ( v m i ) O(v_{m}^{i}) O(vmi)表示原本的视觉特征。

Masked feature classification(掩码特征分类)

  VLP模型首先将被屏蔽特征的输出输入FC层(全连接层),预测对象类的分数,再通过softmax函数转换为预测归一化分布。
  与一般的分类任务不同,这里没有ground-truth label,即训练模型时使用的真实标签,解决的方法有两个方向:

hard label (硬标签)

  VLP 模型从对象检测模型(例如Faster R-CNN)中获取最可能的对象类别,并将其作为硬标签(概率为 0 或 1)。这意味着模型假设对象检测模型检测到的对象类别就是被遮掩特征的真实标签。
  模型使用交叉熵损失(cross-entropy loss)来最小化预测结果和伪类(pseudo-class)之间的差距。这里的伪类是指对象检测模型预测的类别,而不是真正的标签。
  简单来说,这种方法通过将对象检测模型的输出作为监督信号,来训练 VLP 模型对被遮掩特征进行分类。交叉熵损失用于衡量模型预测的类别分布与对象检测模型提供的类别分布之间的差异,并通过最小化这个差异来优化模型。

soft label (软标签)

  检测器生成每个对象类别的概率分布
  VLP采用最小化预测分布和检测器生成的分布之间的Kullback-Leibler (KL)散度来训练模型。

Kullback-Leibler 散度

  Kullback-Leibler 散度是一种衡量两个概率分布之间差异的统计量,也称为相对熵
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Faster R-CNN

  VLP用Faster R-CNN 检测目标输出,并将检测到的目标类别作为被屏蔽区域的标签。
在这里插入图片描述
  其中 g 1 ( v m i ) g_{1}(v_{m}^{i}) g1(vmi)是检测到的对象类别,即模型预测的被遮掩的视觉特征; c ( v m i ) c(v_{m}^{i}) c(vmi)是原始的视觉特征; K K K是视觉区域的数量。
   C E CE CE指的是交叉熵损失。

  原文中

We avoid this assumption by using a soft label as a
supervision signal

  提到的assumption指的是在硬标签中,假设检测到的对象类别就是掩码特征的地面真实标签,具体的:
在这里插入图片描述
  这种方法假设检测模型的输出是完全准确的,但实际上检测模型可能会有误检或漏检的情况。因此,使用硬标签可能会引入噪声和错误,影响模型的训练效果。

  为了避免这个假设,文中提出使用软标签(soft label)作为监督信号,即使用检测模型输出的原始概率分布:
在这里插入图片描述

  相应的,使用软标签后,损失函数写为:
在这里插入图片描述
在这里插入图片描述

4.4 Vision-language matching(视觉语言匹配 VLM)

  VLM的目的是将视觉和语言投射到同一空间。

single-stream && dual-stream(单流架构和双流架构)

  在单流架构中,先将视觉特征和文本特征拼接在一起,再输入到一个单一的 Transformer 模型中进行联合编码。它将特殊标记 [ C L S ] [CLS] [CLS]插入输入序列的开头,用于表示整个输入序列的综合语义信息,捕获全局特征。
   [ C L S ] [CLS] [CLS] 的初始嵌入通常是随机初始化的,但随着模型的训练,它会逐渐学习到如何捕捉输入序列的全局信息。例如,通过自注意力机制,它允许每个 token 在编码过程中与其他 token 进行交互。CLS token 也不例外,它会与输入序列中的每个 token 进行交互,从而捕捉到全局信息。

  双流模型中,文本和视觉序列分别插入特殊标记 [ C L S T ] [CLS_{T}] [CLST] [ C L S V ] [CLS_{V}] [CLSV]。然后将两个模态融合起来(拼接、交叉注意力机制等),得到原文中的fused representation,再送入FC层,通过Sigmoid函数获得一个分数。

正负样本对

  正样本对:指的是视觉和文本匹配的样本对,例如一张图片和描述该图片的正确文本。
  负样本对:指的是视觉和文本不匹配的样本对,例如一张图片和描述另一张图片的文本。负样本对是通过将配对样本中的视觉部分或文本部分替换为从其他样本中随机选择的部分来创建的。

4.5 Vision-language contrastive learning(视觉语言对比学习 VLC)

  VLC也旨在使视觉和语言保持一致,它通过计算softmax标准化视觉(图像或视频)到文本的相似性和文本到视觉的相似性,并利用视觉到文本和文本到视觉相似性的交叉熵损失来更新自己。
  相似性通常用点积来实现,用以下损失函数来量化:

L V L C = 1 2 E ( I , T ) ∼ D [ C E ( y v 2 t , p v 2 t ( I ) ) + C E ( y t 2 v , p t 2 v ( T ) ) ] L_{VLC}=\frac{1}{2}E_{(I,T)\sim D}[CE(y^{v2t},p^{v2t}(I))+CE(y^{t2v},p^{t2v}(T))] LVLC=21E(I,T)D[CE(yv2t,pv2t(I))+CE(yt2v,pt2v(T))]

I I I 是图像的表示
T T T 表示文本的表示
E ( I , T ) ∼ D E_{(I,T)\sim D} E(I,T)D 表示从数据分布 D 中采样的图像-文本对。
y v 2 t y^{v2t} yv2t 表示图像到文本检索的标签(即图像和文本是否匹配的标签)
y t 2 v y^{t2v} yt2v 表示文本到图像检索的标签(即文本和图像是否匹配的标签)
p v 2 t ( I ) p^{v2t}(I) pv2t(I) 表示模型预测的图像到文本匹配的概率分布
p t 2 v ( T ) p^{t2v}(T) pt2v(T) 表示模型预测的文本到图像匹配的概率分布。
C E CE CE 表示交叉熵损失函数

p m v 2 t ( I ) = e x p ( s ( I , T m ) / τ ) ∑ m = 1 M e x p ( s ( I , T m ) / τ ) p^{v2t}_{m}(I)=\frac{exp(s(I,T_{m})/\tau )}{\sum _{m=1}^{M}exp(s(I,T_{m})/\tau)} pmv2t(I)=m=1Mexp(s(I,Tm)/τ)exp(s(I,Tm)/τ)

p m t 2 v ( T ) = e x p ( s ( T , I m ) / τ ) ∑ m = 1 M e x p ( s ( T , I m ) / τ ) p^{t2v}_{m}(T)=\frac{exp(s(T,I_{m})/\tau )}{\sum _{m=1}^{M}exp(s(T,I_{m})/\tau)} pmt2v(T)=m=1Mexp(s(T,Im)/τ)exp(s(T,Im)/τ)

以上面的式子为例:
p m v 2 t ( I ) p^{v2t}_{m}(I) pmv2t(I)表示图象 I I I与第 m m m个文本 T m T_{m} Tm的匹配概率
s ( I , T m ) s(I,T_{m}) s(I,Tm)表示图象 I I I与文本 T m T_{m} Tm之间的相似度函数,通常用点积实现
τ \tau τ是温度系数,用于控制相似度分数的分布
M M M表示在一批数据中,与图象 I I I匹配的文本总数
  
整个公式的作用是通过 softmax 函数将相似度分数归一化为概率分布,从而得到图像 I I I与每个文本 T m T_{m} Tm之间的匹配概率。

4.6 Word-region alignment (单词-区域对齐 WRA)

  Word-region alignment (WRA) 是一种无监督的预训练目标,旨在对齐视觉区域(视觉块)和单词。视觉语言预训练模型(VLP 模型)利用最优传输(optimal transport)来学习视觉和语言之间的对齐。由于精确的最小化计算上不可行,VLP 模型通常使用 IPOT 算法来近似最优传输距离。
  求解最小化问题后,最优传输距离作为 WRA 损失来训练 VLP 模型。

WRA基本原理

  (1)输入数据:WRA 通常使用图像-文本对作为输入,其中文本描述了图像的内容。
  (2)区域提取:对于图像,使用区域提议网络(Region Proposal Network, RPN)或其他方法来提取图像中的多个视觉区域。
  (3)单词分割:对于文本,将其分割成单词或短语。
  (4)对齐学习:通过某种机制(如注意力机制、最优传输等)学习每个视觉区域与文本中的单词之间的对齐关系

最优传输 (Optimal Transport, OT)

  最优传输(Optimal Transport, OT)是一种数学理论,广泛应用于概率分布之间的比较和转换。最优传输问题的核心是将一个概率分布 μ \mu μ转换为另一个概率分布 ν \nu ν,同时最小化传输成本。
  具体来说,假设我们有两个概率分布 μ \mu μ ν \nu ν,定义在同一个空间 X X X上。我们希望找到一个传输计划(transport plan) π \pi π,它是一个定义在 X × X X\times X X×X上的联合概率分布,使得 π \pi π 的边缘分布分别是 μ \mu μ ν \nu ν
  在 VLP 模型中,使用最优传输理论来学习视觉和语言之间的对齐。

边缘分布

  边缘分布(Marginal Distribution)是概率论和统计学中的一个重要概念,它描述了多维随机变量中某个特定变量的分布,而不考虑其他变量的影响。边缘分布可以看作是从联合分布中“边缘化”(即积分或求和)掉其他变量后得到的分布。

传输成本

  传输成本通常由一个成本函数 c : X × X → R c:X×X→R c:X×XR 定义,表示将一个单位质量从点 x x x传输到点 y y y的成本。

min ⁡ π ∈ ∏ ( μ , ν ) ∫ X × X c ( x , y ) d π ( x , y ) \min _{\pi \in {\textstyle \prod(\mu,\nu)}} \int_{X \times X}^{} c(x,y)d\pi(x,y) minπ(μ,ν)X×Xc(x,y)dπ(x,y)

其中 ∏ ( μ , ν ) \textstyle \prod(\mu,\nu) (μ,ν)是所有边缘分布分别为 μ \mu μ ν \nu ν的联合概率分布的集合

最优传输距离

  最优传输问题的解通常被称为最优传输距离(Optimal Transport Distance),也称为 Wasserstein 距离。对于 p − W a s s e r s t e i n p-Wasserstein pWasserstein距离,定义为:

W p ( μ , ν ) = min ⁡ π ∈ ∏ ( μ , ν ) ( ∫ X × X c ( x , y ) p d π ( x , y ) ) 1 / p W_{p}(\mu,\nu)=\min _{\pi \in {\textstyle \prod(\mu,\nu)}} (\int_{X \times X}^{} c(x,y)^{p}d\pi(x,y))^{1/p} Wp(μ,ν)=minπ(μ,ν)(X×Xc(x,y)pdπ(x,y))1/p

  当 p = 1 p=1 p=1时,称为Earth Mover’s Distance (EMD)。

计算方法

  只是了解了一下,没有细看。
在这里插入图片描述

IPOT算法

  IPOT(Iterative Proportional Fitting Procedure)算法,也称为 Iterative Bregman Projections (IBP) 算法,是一种用于求解最优传输(Optimal Transport, OT)问题的有效方法。IPOT 算法通过迭代地调整传输计划,使其逐渐逼近最优解。这个算法特别适合处理带有熵正则化的最优传输问题,可以显著提高计算效率

  
  综上内容,使用原文的符号表示,VLP的损失函数定义为:

L W R A = min ⁡ T ∈ ∏ ( a , b ) ∑ i = 1 T ∑ j = 1 K T i j ⋅ c ( ω i , ν j ) L_{WRA}=\min _{T \in \prod (a,b)} \sum_{i=1}^{T}\sum_{j=1}^{K}T_{ij} \cdot c(\omega _{i},\nu_{j}) LWRA=minT(a,b)i=1Tj=1KTijc(ωi,νj)

T i j T_{ij} Tij是传输矩阵 T T T的元素,表示第 i i i个单词 ω i \omega_{i} ωi和第 j j j个视觉区域 ν j \nu_{j} νj的对齐程度
c ( ω i , ν j ) c(\omega_{i},\nu_{j}) c(ωi,νj)是成本函数,用于评估第 i i i个单词和第 j j j个视觉区域的距离或不匹配度,可以是任何度量,如欧氏距离、余弦相似度等。
∏ ( a , b ) \prod (a,b) (a,b)是传输矩阵 T T T的取值集合(或约束集合),通常约束包括:
  行和约束:每个视觉区域的总对齐权重等于某个常数 a a a
  列和约束:每个单词的总对齐权重等于某个常数 b b b

4.7 Frame order modeling (框架顺序建模 FOM)

  Frame order modeling (FOM) 是一种用于更好地建模视频时间信息的技术。在视觉-语言预训练模型(VLP 模型)中,FOM 通过随机打乱输入帧的顺序,然后预测每个帧的实际位置来实现。具体来说,FOM 被建模为一个分类任务。

  FOM 有助于模型学习和理解视频中的时序信息

4.8 Particular pre-training objects (特定的预训练对象)

  为了让VLP模型更好地适应下游任务,通常会使用一些下游任务的目标当做预训练目标,包括:
  (1)视觉问答(Visual Question Answering, VQA):VLP 模型通过回答与图像相关的问题来学习视觉和语言之间的关系。
  (2)视觉描述(Visual Captioning, VC):VLP 模型通过生成描述图像的句子来学习如何将视觉信息转化为语言描述。

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

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

相关文章

Swarm-LIO: Decentralized Swarm LiDAR-inertial Odometry论文翻译

文章目录 前言一、介绍二、相关工作三、方法A. 问题表述B. 框架概述C. 群体系统的初始化D. 去中心化激光雷达-惯性状态估计 四. 实验A. 室内飞行B. 退化环境飞行C. 去中心化部署 五. 结论和未来工作 前言 原文:原文 准确的自我状态和相对状态估计是完成群体任务的关…

Apache Hive分布式容错数据仓库系统

Apache Hive™是一个分布式的、容错的数据仓库系统,它支持大规模的分析,并使用SQL方便地读取、写入和管理驻留在分布式存储中的pb级数据。 Apache Hive Apache Hive是什么 Apache Hive是一个分布式的、容错的数据仓库系统,支持大规模的分析…

Vue CLI: 安装、项目创建及基本概念指南,vue生命周期

只有经历地狱般的磨砺,才能练就创造出天堂的力量;只有流过血的手指,才能弹奏出世间绝唱 文章目录 vue-cli介绍安装创建项目入口文件修改文件夹名称的步骤ES6模块化单文件组件 vue生命周期vue动画 vue-cli 介绍 vue-lic是一个开发vue项目的脚…

Geotrust SSL证书

在数字化浪潮席卷全球的今天,互联网已成为信息交流与商业活动不可或缺的平台。然而,随着网络应用的深入,数据泄露、身份盗用、网络诈骗等安全问题也日益凸显,严重威胁着用户的隐私与财产安全。在这样的背景下,数字证书…

css实现边框双色凹凸半圆

整体效果如下图&#xff1a; 结构代码&#xff1a; <div classline-outside-wrap><div classwrap><img src../img/avatar2x.png/><div classcontent-wrap></div></div></div> 内凹框实现&#xff1a; .content-wrap{width:100%;he…

HarmonyOS:自定义组件冻结功能

一、简介 自定义组件冻结功能专为优化复杂UI页面的性能而设计&#xff0c;尤其适用于包含多个页面栈、长列表或宫格布局的场景。在这些情况下&#xff0c;当状态变量绑定了多个UI组件&#xff0c;其变化可能触发大量UI组件的刷新&#xff0c;进而导致界面卡顿和响应延迟。为了提…

Kafka相关API开发

(一)引入依赖 用API直接去操作kafka(读写数据)在实际开发中用的并不多&#xff0c;学习它主要还是为了加深对Kafka功能的理解。kafka的读写操作&#xff0c;实际开发中&#xff0c;是通过各类更上层的组件去实现。而这些组件在读写kafka数据时&#xff0c;用的当然是kafka的jav…

警务辅助人员管理系统小程序ssm+论文源码调试讲解

2系统关键技术 2.1 微信小程序 微信小程序&#xff0c;简称小程序&#xff0c;英文名Mini Program&#xff0c;是一种全新的连接用户与服务的方式&#xff0c;可以快速访问、快速传播&#xff0c;并具有良好的使用体验。 小程序的主要开发语言是JavaScript&#xff0c;它与普…

微服务设计模式 - 断路器模式 (Circuit Breaker Pattern)

微服务设计模式 - 断路器模式 (Circuit Breaker Pattern) 定义 断路器模式&#xff08;Circuit Breaker Pattern&#xff09;是云计算和微服务架构中的一种保护性设计模式&#xff0c;其目的是避免系统中的调用链出现故障时&#xff0c;导致系统瘫痪。通过断路器模式&#xff…

Yelp 数据集进行用户画像, 使用聚类做推荐

使用 Yelp 数据集进行用户画像&#xff08;User Profiling&#xff09;是一项有趣的任务&#xff0c;可以理解用户的偏好、行为和特征。以下是总结的一个基本的步骤&#xff0c;帮助构建用户画像 pandas 加载数据&#xff1a; import pandas as pd# 加载数据 users pd.read_…

DDRPHY数字IC后端设计实现系列专题之后端设计导入,IO Ring设计

本章详细分析和论述了 LPDDR3 物理层接口模块的布图和布局规划的设计和实 现过程&#xff0c;包括设计环境的建立&#xff0c;布图规划包括模块尺寸的确定&#xff0c;IO 单元、宏单元以及 特殊单元的摆放。由于布图规划中的电源规划环节较为重要&#xff0c; 影响芯片的布线资…

前端路由如何从0开始配置?vue-router 的使用

在 Web 开发中&#xff0c;路由是指根据 URL 的不同部分将请求分发到不同的处理函数或页面的过程。路由是单页应用&#xff08;SPA, Single Page Application&#xff09;和服务器端渲染&#xff08;SSR, Server-Side Rendering&#xff09;应用中的一个重要概念。 在开发中如何…

强化学习的数学原理-06随即近似理论和随机梯度下降

文章目录 Robbins-Monro algorithmStochastic gradient descentBGD、MBGD、 and SGDSummary Robbins-Monro algorithm 迭代式求平均数的算法 S t o c h a s t i c a p p r o x i m a t i o n ( S A ) Stochastic \; approximation \;(SA) Stochasticapproximation(SA)&#xf…

Apache Hive 通过Docker快速入门

QuickStarted 介绍 在伪分布式模式下在 docker 容器内运行 Apache Hive&#xff0c;以便为 Hive 提供以下快速启动/调试/准备测试环境 快速入门 步骤 1&#xff1a;拉取镜像 从 DockerHub 拉取镜像&#xff1a;https://hub.docker.com/r/apache/hive/tags。以下是最新的镜像…

【K8S系列】Kubernetes 中 NodePort 类型的 Service 无法访问的问题【已解决】

在 Kubernetes 中&#xff0c;NodePort 类型的 Service 允许用户通过每个节点的 IP 地址和指定的端口访问应用程序。如果 NodePort 类型的 Service 无法通过节点的 IP 地址和指定端口进行访问&#xff0c;可能会导致用户无法访问应用。本文将详细分析该问题的常见原因及其解决方…

逻辑卷动态扩容与缩容-----

一、创建逻辑卷 需求&#xff1a;创建一个2.5G大小的逻辑卷 思路&#xff1a; 1. 物理的设备 2. 将物理设备做成物理卷 pv 3. 创建卷组并将物理卷加入其中 vg 4. 创建逻辑卷 lv 5. 格式化逻辑卷 mkfs.ext4 6. 挂载使用 mount 步骤&#xff1a; 1. 物理设备【如何来分区】…

开关灯问题(c语言)

样例&#xff1a;10 10 &#xff0c;输出&#xff1a;1&#xff0c;4&#xff0c;9 5 5 &#xff0c;输出&#xff1a;1&#xff0c;4 代码如下 #include<stdio.h> //引入bool值的概念 #include<stdbool.h> int main() {int n 0;//n为灯的数量int m 0;…

扫雷游戏(C语言详解)

扫雷游戏&#xff08;C语言详解&#xff09; 放在最前面的1、前言&#xff08;扫雷游戏的简介&#xff09;2、扫雷游戏的规则&#xff08;简易版&#xff09;3、代码实现&#xff08;3.1&#xff09;提醒一下&#xff1a;( i ) 提醒1&#xff1a;( ii ) 提醒2&#xff1a; &…

在面试了些外包以后,我有了些自己的思考

大家好&#xff0c;我是洋子&#xff0c;最近公司在降本增效&#xff0c;需要把外包从北京迁移到陕西的某新一线城市&#xff0c;其实就是变相裁员&#xff0c;减少外包的成本&#xff0c;裁掉现有的员工&#xff0c;重新招聘新人 在整个测试行业&#xff0c;外包测试的比重是…

论文 | Ignore Previous Prompt: Attack Techniques For Language Models

这篇论文探讨了针对大型语言模型&#xff08;LLM&#xff09;的“提示注入”攻击&#xff0c;并提出了一种名为 PROMPTINJECT 的框架来研究这类攻击。 论文的主要内容包括&#xff1a;1. 提示注入攻击&#xff1a; 论文定义了“提示注入”的概念&#xff0c;即通过在用…