Hyperbolic Representation Learning: Revisiting and Advancing 论文阅读

news2024/12/12 19:07:43

Hyperbolic Representation Learning: Revisiting and Advancing

  • 论文地址和代码地址
  • 1 介绍
  • 2 背景知识
    • 2.1 黎曼几何与双曲空间(RiemannianGeometry and Hyperbolic Space)
    • 2.2 双曲浅层模型
    • 2.3 双曲神经网络(HNNs)
    • 2.4 双曲图卷积神经网络(HGCNs)
  • 3 当前存在问题
    • 3.1 Hyperbolic Distance to Origin (HDO)
    • 3.2 存在的问题
  • 4 HIE模型
    • 4.1 算法 双曲信息嵌入 (HIE)
    • 4.2 双曲空间HIE
      • 4.2.1 双曲嵌入中心(HC)
      • 4.2.2 层次伸缩方法
      • 4.2.3 切空间HIE
  • 5 附录

论文地址和代码地址

论文地址:https://arxiv.org/pdf/2306.09118
代码地址:https://github.com/marlin-codes/HIE

1 介绍

在利用双曲空间时,目标是提取数据中固有的层次信息。如下图所示,预期的学习目标包括优化父节点与其各自后代节点的关系,即将根节点推向双曲空间原点,同时将叶节点放置在离双曲空间原点更远的位置。
在这里插入图片描述
本文的贡献:

  • 我们提出了一种位置跟踪策略,揭示了双曲学习过程与传统理解之间的显著差异,为双曲表示学习过程提供了新的视角。

  • 引入了一种新颖的方法,用于从双曲嵌入中推断隐式的层次结构。它直接从嵌入中提取层次信息,省去了额外输入或注释的需求。

  • 提出了一种简单而有效的方法,利用推断出的层次结构推进双曲表示学习。我们的方法与现有的双曲模型无缝集成,并且不会引入额外的模型参数,具有实际应用价值并易于实现。

  • 我们在多种双曲模型上进行了广泛的实验,证明了我们提出的方法的有效性。

2 背景知识

2.1 黎曼几何与双曲空间(RiemannianGeometry and Hyperbolic Space)

黎曼几何
一个具有 d d d维的黎曼流形 M \mathcal{M} M是一个具有度量张量 g g g的拓扑空间,记作 ( M , g ) (\mathcal{M},g) (M,g)。一些重要的概念有:

  • 在流形 M \mathcal{M} M中的任意点 x x x处,流形可以通过一个局部线性空间来局部逼近,该空间称为切空间 T x M \mathcal{T}_\mathbf{x}\mathcal{M} TxM,它与 R d \mathbb{R}^d Rd等距的。
  • 流形上两点之间的最短路径称为测地线,其长度被称为诱导距离 d M d_{\mathcal{M}} dM
  • 在超曲面空间 (HDO) 中,节点到原点的距离可以理解为其对应的诱导超曲面范数。
  • 为了将切向量投影到流形上,使用指数映射 exp ⁡ x \exp_{\mathbf{x}} expx,而其逆函数被称为对数映射 log ⁡ x \log_{\mathbf{x}} logx
  • 平行运输 P x → y P_{\mathbf{x}\to\mathbf{y}} Pxy,它允许将几何数据沿着唯一的测地线从 x x x 运输到 y y y ,同时保持度量张量不变。

双曲空间

双曲空间指的是具有常负曲率的黎曼流形,其坐标可以通过不同的等距模型来表示。在机器学习和深度学习领域,Poincaré 球模型和洛伦兹模型是广泛研究的模型。

一个 d d d 维的 Poincaré 球模型,其具有常负曲率 κ ( κ < 0 ) \kappa(\kappa<0) κ(κ<0),定义为黎曼流形
( B κ d , g B κ ) \left( \mathcal{B}_\kappa^d, g_\mathcal{B}^\kappa \right) (Bκd,gBκ)

  • B κ d = { x ∈ R d ∣ ∥ x ∥ 2 < − 1 / κ } \mathcal{B}_\kappa^{d} = \{ \mathbf{x} \in \mathbb{R}^d \mid \|\mathbf{x}\|^2 < -1/\kappa \} Bκd={xRdx2<1/κ}
  • 度量张量为 g B κ = ( λ x κ ) 2 I d g_\mathcal{B}^\kappa = (\lambda_\mathbf{x}^\kappa)^2 {\mathbf{I}}_d gBκ=(λxκ)2Id,其中 I d \mathbf{I}_d Id d d d 维的单位矩阵。
  • B κ d \mathcal{B}_\kappa^d Bκd 是半径为 ( − κ ) − 1 2 (-\kappa)^{-\frac12} (κ)21 d d d 维开球,而 λ x κ = 2 ( 1 + κ ∥ x ∥ 2 2 ) − 1 \lambda_\mathbf{x}^\kappa = 2(1 + \kappa \|\mathbf{x}\|_2^2)^{-1} λxκ=2(1+κx22)1 是共形因子。

洛伦兹模型

洛伦兹模型是另一个流行的双曲空间模型。在这个模型中,空间被看作是 ( d + 1 ) (d+1) (d+1) 维闵可夫斯基空间中双叶双曲面的其中一片。

一个具有常负曲率 κ ( κ < 0 ) \kappa(\kappa<0) κ(κ<0) d d d 维洛伦兹模型(也称为双曲面模型)定义为黎曼流形 ( L κ d , g L κ ) (\mathcal{L}_\kappa^d, g_\mathcal{L}^\kappa) (Lκd,gLκ)

  • 其中 L κ d = { x ∈ R d + 1 ∣ ⟨ x , x ⟩ L = 1 / κ } \mathcal{L}_\kappa^d = \{ \mathbf{x} \in \mathbb{R}^{d+1} \mid \langle \mathbf{x}, \mathbf{x} \rangle_{\mathcal{L}} = 1/\kappa \} Lκd={xRd+1x,xL=1/κ}
  • 度量张量为 g L κ = diag ( [ − 1 , 1 , ⋯   , 1 ] ) g_{\mathcal{L}}^\kappa = \text{diag}([-1, 1, \cdots, 1]) gLκ=diag([1,1,,1])

需要注意的是,研究适用于 Poincaré 球模型和洛伦兹模型,为了简化,统一使用符号 H \mathcal{H} H。有关双曲公式,例如:指数映射 exp ⁡ x κ \exp_{\mathbf{x}}^\kappa expxκ、对数映射 log ⁡ x κ \log_{\mathbf{x}}^{\kappa} logxκ、双曲距离 d H d_{\mathcal{H}} dH 和平行运输 P o → x κ P_{\mathbf{o}\to\mathbf{x}}^{\kappa} Poxκ 等。

2.2 双曲浅层模型

双曲浅层模型将实体编码到双曲空间中,并利用相对距离或相似性作为推断它们排序的手段。例如,、将数据嵌入到 Poincaré 球模型和洛伦兹模型中,通过优化以下目标来学习嵌入:

max ⁡ x ∈ H d ∑ ( i , j ) ∈ E log ⁡ exp ⁡ ( − d H ( x i , x j ) ) ∑ j ′ ∈ N e g ( i ) exp ⁡ ( − d H ( x i , x j ′ ) ) , ( 1 ) \max_{\mathbf{x} \in \mathcal{H}^d}\sum_{(i,j)\in E}\log\frac{\exp\left(-d_\mathcal{H}(\mathbf{x}_i,\mathbf{x}_j)\right)}{\sum_{j' \in Neg(i)}\exp\left(-d_\mathcal{H}(\mathbf{x}_i,\mathbf{x}_{j'})\right)}, (1) xHdmax(i,j)ElogjNeg(i)exp(dH(xi,xj))exp(dH(xi,xj)),1

  • E E E 是由链接或相关对象对组成的集合
  • N e g ( i ) = { j ∣ ( i , j ) ∉ E } ∪ { i } Neg(i) = \{j | (i,j) \notin E\} \cup \{i\} Neg(i)={j(i,j)/E}{i} i i i 的负例集合
  • x ∈ H d \mathbf{x} \in \mathcal{H}^d xHd 是可训练的节点嵌入( x i \mathbf{x}_i xi 表示特定的对象 i i i
  • d H d_{\mathcal{H}} dH 是双曲距离。
  • 优化目标鼓励原始数据中相连或相关的对象对具有较小的双曲距离。

2.3 双曲神经网络(HNNs)

HNN 的基本架构包括几个组件:

  • 多项式逻辑回归(MLR)
  • 全连接(FC)层
  • 递归神经网络(RNNs)。

为了简洁起见,本研究主要集中在核心模块——即 FC 层。相应的双曲 FC 由线性变换和非线性激活组成。双曲线性变换首先进行矩阵乘法,然后是偏置平移。通常,这一过程可以在原点的切空间中实现。

给定一个双曲点 x ∈ H d \mathbf{x} \in \mathcal{H}^d xHd,首先通过对数映射将其投影到原点的切空间 T o H d \mathcal{T}_{\mathrm{o}}\mathcal{H}^{d} ToHd,然后与权重矩阵 W ∈ R d ′ × d \mathbf{W} \in \mathbb{R}^{d^{\prime} \times d} WRd×d 相乘。双曲矩阵乘法定义为: W ⊗ κ x : = exp ⁡ o κ ( W log ⁡ o κ ( x ) ) \mathbf{W}\otimes^\kappa\mathbf{x} := \exp_{\mathbf{o}}^\kappa(\mathbf{W}\log_{\mathbf{o}}^\kappa(\mathbf{x})) Wκx:=expoκ(Wlogoκ(x))

  • log ⁡ o κ ( x ) ) \log_{\mathbf{o}}^\kappa(\mathbf{x})) logoκ(x))将特征从双曲空间转到切向量空间
  • exp ⁡ o κ \exp_{\mathbf{o}}^\kappa expoκ将特征从切向量空间空间转到双曲空间

对于偏置的加法,我们使用一个位于 T o H d \mathcal{T}_\mathrm{o}\mathcal{H}^d ToHd 的偏置 b \mathbf{b} b,并将其通过平行传输到感兴趣的双曲点,然后映射到流形上,定义为: x ⊕ κ b : = exp ⁡ x κ ( P o → x κ ( b ) ) \mathbf{x} \oplus^\kappa \mathbf{b} := \exp_{\mathbf{x}}^\kappa(P_{\mathbf{o} \to \mathbf{x}}^\kappa(\mathbf{b})) xκb:=expxκ(Poxκ(b))

非线性激活也在切空间中实现,为简便起见,我们使用双曲原点,其定义为: σ H κ 1 , κ 2 ( x ) : = exp ⁡ o κ 1 ( σ ( log ⁡ o κ 2 ( x ) ) ) \sigma_{\mathcal{H}}^{\kappa_1, \kappa_2}(\mathbf{x}) := \exp_{\mathbf{o}}^{\kappa_1} \left( \sigma(\log_{\mathbf{o}}^{\kappa_2}(\mathbf{x})) \right) σHκ1,κ2(x):=expoκ1(σ(logoκ2(x)))

最后,给定 x ∈ H d \mathbf{x} \in \mathcal{H}^d xHd,第 ℓ \ell 层双曲神经网络的公式为:
x ℓ = σ H κ ℓ , κ ℓ − 1 ( W ⊗ κ ℓ − 1 x ℓ − 1 ) ⊕ κ ℓ − 1 b , ( 2 ) \mathbf{x}^{\ell} = \sigma_{\mathcal{H}}^{\kappa_{\ell}, \kappa_{\ell-1}} (\mathbf{W} \otimes^{\kappa_{\ell-1}} \mathbf{x}^{\ell-1}) \oplus^{\kappa_{\ell-1}} \mathbf{b},(2) x=σHκ,κ1(Wκ1x1)κ1b,2

  • κ ℓ \kappa_{\ell} κ κ ℓ − 1 \kappa_{\ell-1} κ1 分别是第 ℓ \ell 层和第 ℓ − 1 \ell-1 1 层的曲率。

2.4 双曲图卷积神经网络(HGCNs)

双曲图卷积神经网络(HGCNs)的核心是执行双曲空间内的图卷积。HGNNs 使用消息传递机制,包括线性变换、邻居聚合和非线性激活。

与方程(2)中给出的HNNs相比,HGCN 层多了一个邻居聚合步骤。设 j ∈ N ( i ) j \in \mathcal{N}(i) jN(i) 为节点 i i i 的邻居(包括自环),双曲邻居聚合定义为:

A G G κ ( x i ) : = exp ⁡ x r κ ( ∑ j ∈ N ( i ) a ~ i j log ⁡ x r κ ( x j ) ) \mathrm{AGG}^{\kappa}(\mathbf{x}_{i}):=\exp_{\mathbf{x}_{r}}^{\kappa}\left(\sum_{j\in\mathcal{N}(i)}\tilde{a}_{ij}\log_{\mathbf{x}_{r}}^{\kappa}(\mathbf{x}_{j})\right) AGGκ(xi):=expxrκ jN(i)a~ijlogxrκ(xj)

其中 x r \mathbf{x}_r xr 是双曲空间中的参考点,本研究中为简便起见将其设置为原点, a ~ i j \tilde{a}_{ij} a~ij 是归一化的边权,计算方法可以通过基于注意力的方法:

a ~ i j = Softmax j ∈ N ( i ) ( MLP ( log ⁡ o κ ( x i ) ∥ log ⁡ o κ ( x j ) ) ) \tilde{a}_{ij} = \text{Softmax}_{j \in \mathcal{N}(i)}(\text{MLP}(\log_{\mathbf{o}}^{\kappa}(\mathbf{x}_i) \| \log_{\mathbf{o}}^{\kappa}(\mathbf{x}_j))) a~ij=SoftmaxjN(i)(MLP(logoκ(xi)logoκ(xj)))

或者通过对称归一化拉普拉斯矩阵:

a ~ i j = 1 d ~ i d ~ j , \tilde{a}_{ij} = \frac{1}{\sqrt{\tilde{d}_i \tilde{d}_j}}, a~ij=d~id~j 1,

  • 其中 d v d_v dv 表示节点 v v v 的度数(包括自环)。

然后,单个 HGNN 层的公式为:
x i ℓ = σ H κ ℓ − 1 , κ ℓ ( h ~ i ℓ ) , h ~ i ℓ = A G G κ ℓ − 1 ( h i ℓ ) , ( 3 ) h i ℓ = ( W ℓ ⊗ κ ℓ − 1 x i ℓ − 1 ) ⊕ κ ℓ − 1 b ℓ . \begin{aligned} & \mathbf{x}_{i}^{\ell}=\sigma_{\mathcal{H}}^{\kappa_{\ell-1},\kappa_{\ell}}(\tilde{\mathbf{h}}_{i}^{\ell}), \\ & \tilde{\mathbf{h}}_{i}^{\ell}=\mathrm{AGG}^{\kappa_{\ell-1}}(\mathbf{h}_{i}^{\ell}), & \mathrm{(3)} \\ & \mathbf{h}_i^\ell=(\mathbf{W}^\ell\otimes^{\kappa_{\ell-1}}\mathbf{x}_i^{\ell-1})\oplus^{\kappa_{\ell-1}}\mathbf{b}^\ell. \end{aligned} xi=σHκ1,κ(h~i),h~i=AGGκ1(hi),hi=(Wκ1xi1)κ1b.(3)

3 当前存在问题

3.1 Hyperbolic Distance to Origin (HDO)

从点 x \mathbf{x} x 到原点 o \mathbf{o} o 的双曲距离(HDO),也称为诱导的双曲范数, d H ( x , o ) d_{\mathcal{H}}(\mathbf{x}, \mathbf{o}) dH(x,o)

目前已在多个领域中得到了广泛应用,特别是在阐明嵌入层级结构的复杂性方面。

  • 在 WordNet 4 ^4 4 嵌入中,通过嵌入范数的差异来定义一个得分函数,用于评估 Poincaré 嵌入在表示语义关系方面的有效性。
  • 在图像嵌入中,将 HDO 作为不确定性量化指标,并发现难以分类的图像被嵌入到双曲空间的原点附近,而易于分类的图像则被放置在 Poincaré 边界附近。难以分类的图像通常包含来自不同类别的模式,这些模式与层级中的高级位置相关。而易于分类的图像则表现出特定的模式,这些模式与层级中的低级位置相关。
  • 利用 HDO 分析了双曲用户-物品嵌入与流行度的对齐情况。分析结果表明,较小的 HDO 值表示较高的流行度水平。一个物品的流行度越高,意味着该物品被大量用户偏好,最受欢迎的物品通常作为网络的中心或树的根节点。

在一个 k k k-正则树中,层级 r r r 上的节点数量呈指数增长,为 ( k + 1 ) k r − 1 (k+1)k^{r-1} (k+1)kr1,且层级小于或等于 r r r 的节点数量也呈类似的趋势,为 ( k + 1 ) k r − 2 k − 1 \frac{(k+1)k^r - 2}{k-1} k1(k+1)kr2。这意味着节点的数量随着距离树根的增加而增加。

  • 在双曲空间中,圆盘的面积也随着距离双曲原点的增加而呈指数扩展。因此,战略性地将树的第 r r r 层节点放置在距离双曲原点的距离 R R R (其中 R R R r r r 成正比)上,可以得到一个捕捉树状结构的层次化嵌入。

3.2 存在的问题

由于图数据集缺乏重要的几何信息,如根节点标签、层级信息和叶节点,因此合成了两个纯树形数据集。

两个纯树形数据集具有不同同质性(homophily)程度的树形结构:TREE-H(同质性率为0.998)和TREE-L(同质性率为0.018)。

我们对HGCN在节点分类和链路预测任务中的表现进行了实验评估,并展示了最终嵌入层中节点状态的HDO分布,如图2所示。

  • 合成的TREE-L/H结构示意图(第一列)
  • HGCN在链路预测(LP)任务(第二列)中对应的HDO分布。
  • HGCN在节点分类(NC)任务(第三列)中对应的HDO分布。
    在这里插入图片描述
    从实验结果中可以观察到:
  • 在这两种情况下,根节点与最小HDO值(参见MIN和ROOT值)之间存在较大差异。例如,在链路预测任务中,TREE-L和TREE-H的根节点ROOT值分别为3.1和3.3,而最小值MIN分别为2.0和2.1。
  • HDO的分布呈现出更加正态的模式。
  • 在树形结构中,叶节点占据了大多数,并且预计会位于离原点更远的地方,遵循幂律分布。
  • 节点并未完全扩展,这可以从分布的形状以及最小、均值和最大HDO之间的差距推断出来。

双曲空间呈指数扩展,远离原点的区域显著更广阔,更能容纳更多节点。但上述的实验表明:

  1. 根节点没有被优化为位于或接近最高层级,这可能导致层次结构不准确。(HDO值太大)
  2. 学习到的嵌入的HDO呈正态分布,这不足以捕捉树状结构。(正态分布没有层次性)
  3. 整体嵌入没有最大程度地散开,表明模型未能充分利用双曲空间的扩展特性。

4 HIE模型

4.1 算法 双曲信息嵌入 (HIE)

双曲信息嵌入 (HIE)

  1. 输入:

    • (i) 输入数据 X \mathcal{X} X,可以是 n n n 个一般的输入样本 X = { x 1 , ⋯   , x n } \mathcal{X}=\{\mathbf{x}_1, \cdots, \mathbf{x}_n\} X={x1,,xn},或者是包含邻接矩阵的图中 n n n 个节点,即 X = { x 1 , ⋯   , x n , A } \mathcal{X}=\{\mathbf{x}_1, \cdots, \mathbf{x}_n, \mathbf{A}\} X={x1,,xn,A} x i \mathbf{x}_i xi 可以是随机采样的且可训练的,或者是预定义的。
    • (ii) 学习模型 F \mathcal{F} F,可选择地由 W \mathbf{W} W 参数化。
    • (iii) 超参数 λ > 0 \lambda > 0 λ>0
  2. 输出: n n n 个对象的嵌入和最优的 W \mathbf{W} W

  3. 初始化F的输入数据 χ \chi χ和可学习权重 W \mathbf{W} W(可选)。

  4. 计算嵌入 Z ← F ( [ W ] , X ) \mathbf{Z} \leftarrow \mathcal{F}([\mathbf{W}], \mathcal{X}) ZF([W],X)

  5. 如果是部分根对齐:

    • 计算特定任务的损失: L t a s k L_\mathrm{task} Ltask
    • 计算根对齐的嵌入 Z ˉ \bar{\mathbf{Z}} Zˉ
    • 计算到原点的双曲距离损失: L h y p L_\mathrm{hyp} Lhyp
    • 使用总体损失函数进行优化: L t a s k + λ L h y p L_\mathrm{task} + \lambda L_\mathrm{hyp} Ltask+λLhyp
    • 返回 Z , W \mathbf{Z}, \mathbf{W} Z,W
  6. end if

  7. 如果是全部根对齐:

    • 计算根对齐嵌入 Z ˉ \bar{\mathbf{Z}} Zˉ
    • 计算到原点的双曲距离损失: L h y p L_\mathrm{hyp} Lhyp
    • 计算特定任务的损失: L t a s k L_\mathrm{task} Ltask
    • 使用总体损失函数进行优化: L t a s k + λ L h y p L_{\mathrm{task}} + \lambda L_{\mathrm{hyp}} Ltask+λLhyp
    • 返回 Z ˉ , W \bar{\mathbf{Z}}, \mathbf{W} Zˉ,W
  8. end if

所提出的方法可以通过两种方式实现:

  • 一种是硬操作,替换所有原始嵌入。对所有节点的嵌入都进行根对齐。即,将图中的所有节点的嵌入朝着双曲空间的原点对齐。
  • 另一种方法是通过在 L h y p L_\mathrm{hyp} Lhyp损失函数中部分实现它来生成所需的更新梯度。即根对齐操作仅应用于那些特定节点的嵌入,通常是与任务相关的节点或部分嵌入。

4.2 双曲空间HIE

为了解决上述问题,提出了HIE算法。

如下图所示,HIE的基本思想示意图,可以分解为两个关键步骤:

  1. 根对齐。即根节点并将其对齐到双曲空间的原点
  2. 层次感知,拉伸。即根据每个节点的层次信息,将其优化到远离原点的位置。
    在这里插入图片描述
    但是实现上述目标存在挑战:
  • 定义和定位根节点:许多指标,如中心性,可以描述节点在图中的作用。然而,这些方法仅依赖于图的拓扑结构,忽略了节点的特征。此外,当处理大规模图时,一些指标的计算开销较大。而且,树状数据集通常包含多个子树或根节点。
  • 高效获取层次信息并引导层次学习:在现实世界的场景中,这种层次信息很少现成可得,并且在大规模数据集上标注这些信息是人工完成的。

4.2.1 双曲嵌入中心(HC)

首先解决第一个挑战,解决方案是:利用双曲嵌入中心(HC)作为根节点,并将其与双曲空间的原点进行对齐

HC的定理如下:

定理1. 给定图 G = ( V , E ) G = (V, E) G=(V,E)中的节点嵌入 z ∈ H d z ∈ H^d zHd。双曲嵌入中心 z c ∈ H d z_c ∈ H^d zcHd是和所有节点的加权双曲距离平方和的最小化问题的解,表达式如下: z c = min ⁡ z a ∈ H d , κ ∑ i ∈ V v i d H 2 ( z i , z a ) , \mathbf{z}_c=\min_{\mathbf{z}_a\in\mathcal{H}^{d,\kappa}}\sum_{i\in V}v_id_\mathcal{H}^2(\mathbf{z}_i,\mathbf{z}_a), zc=zaHd,κminiVvidH2(zi,za),

  • z a z_a za 是流形中的任意一点,嵌入中心包括 Poincaré 球模型中的莫比乌斯圆心和洛伦兹模型中的加权质心。

HC是通过特定流形的方法计算的,并作为最优解来最小化与所有节点的平方距离和。这符合规则树中根结点的特性,即是与其他结点的距离总和最小的结点。

HC的优势如下:

  • 计算 HC 相对简单,计算成本为 O ( ∣ V ∣ ) O(|V|) O(V),或者在利用 GPU 进行并行计算时为 O ( 1 ) O(1) O(1)
  • HC 来源于双曲嵌入,能够编码结构和特征信息。它有效处理多个根节点的情况,因为 HC 总是代表一个独特的点,可以看作是连接所有子树的超节点。
  • HC 可以根据下游任务在学习过程中自适应调整。

Z \mathbf{Z} Z 为最终层嵌入矩阵,其中包含 n n n 个双曲节点向量 ( z 1 , ⋯   , z i , ⋯   , z n ) (\mathbf{z}_1, \cdots, \mathbf{z}_i, \cdots, \mathbf{z}_n) (z1,,zi,,zn),其中 z i ∈ H κ d \mathbf{z}_i \in \mathcal{H}_\kappa^d ziHκd,并令 v i v_i vi 表示分配给 z i \mathbf{z}_i zi 的权重。函数 f c f_c fc 用于计算加权中心, z c \mathbf{z}_c zc 表示该中心,则计算公式为: z c = f c ( { z i , v i ∣ i ∈ V } ) \mathbf{z}_c = f_c(\{\mathbf{z}_i, v_i | i \in V\}) zc=fc({zi,viiV})

  • f c f_c fc 可在附录查看

接下来,我们采用根对齐策略,公式如下:
z ˉ = z ⊕ κ ( − z c ) , (root alignment)(4) \bar{\mathbf{z}}=\mathbf{z}\oplus_\kappa(-\mathbf{z}_c),\quad\text{(root alignment)(4)} zˉ=zκ(zc),(root alignment)(4)

  • ⊕ κ \oplus_\kappa κ 表示双曲加法操作,具体操作可在附录查看

4.2.2 层次伸缩方法

为了解决第二个挑战,利用HDO对节点进行层次扩展。即,将双曲嵌入中心(即根节点)与双曲空间的原点对齐,之后HDO可以更准确地反映节点相对于根节点的相对距离,从而指示其层次级别,公式如下:
z h d o = 1 ∣ V ∣ ∑ i ∈ V w i d H ( z ˉ i , o ) , (HDO computation)(5) z_{\mathrm{hdo}}=\frac{1}{|V|}\sum_{i\in V}w_id_{\mathcal{H}}(\bar{\mathbf{z}}_i,\mathbf{o}),\quad\text{(HDO computation)(5)} zhdo=V1iVwidH(zˉi,o),(HDO computation)(5)

  • w i w_i wi 表示双曲空间中的节点级别,它是通过 HDO 得到的 ( w i : = f ( d H ( z ˉ i , o ) ) ) (w_i := f(d_{\mathcal{H}}(\bar{\mathbf{z}}_i, \mathbf{o}))) (wi:=f(dH(zˉi,o))),其中 f f f 是单调递增函数,如线性函数、tanh、sigmoid 等。
  • 越靠近原点, w i w_i wi 越小

它被整合到损失函数中,如下:
L h y p = σ ( − z h d o ) , ( stretching ) ( 6 ) L_{\mathrm{hyp}}=\sigma(-z_{\mathrm{hdo}}),\quad(\text{stretching})\quad(6) Lhyp=σ(zhdo),(stretching)(6)

  • 通过最小化 L h y p L_\mathrm{hyp} Lhyp 来实现拉伸,其中使用了单调递增函数 σ \sigma σ(线性函数、tanh、exp 等)。
  • z h d o z_{\mathrm{hdo}} zhdo越大,说明有很多节点已经远离双曲中心,此时。损失函数就越小

通过最小化上述损失函数,可以使:

  • 靠近原点的高级节点将被赋予较小的权重,从而避免它们被推开。
  • 远离原点的低级节点将被赋予较大的权重,以便它们能够到达正确的位置。

4.2.3 切空间HIE

在双曲学习领域,一种常见的方法是在双曲空间的原点的切空间中建模数据。因此,引入了对 HIE 模型的扩展,称为切空间版本 HIE 7 ^7 7。假设我们有切向嵌入 z T z^{T} zT,就得到了方程 (7) (8) (9)。
z ˉ T = z T − z c T (root alignment)  (7) z h d o T : = 1 ∣ V ∣ ∑ i ∈ V w i d ( z ˉ i T , o T ) (HDO computation)   (8) L h y p = σ ( − z h d o T ) (stretching)    (9) \bar{\mathbf{z}}^T=\mathbf{z}^T-\mathbf{z}_c^T\quad\text{(root alignment)~~(7)} \\ z_{\mathrm{hdo}}^{\mathcal{T}}:=\frac{1}{|V|}\sum_{i\in V}w_{i}d(\bar{\mathbf{z}}_{i}^{\mathcal{T}},\mathbf{o}^{\mathcal{T}})\quad\text{(HDO computation) ~~(8)} \\ L_{\mathrm{hyp}}=\sigma(-z_{\mathrm{hdo}}^{\mathcal{T}})\quad\text{(stretching) ~~ (9)} zˉT=zTzcT(root alignment)  (7)zhdoT:=V1iVwid(zˉiT,oT)(HDO computation)   (8)Lhyp=σ(zhdoT)(stretching)    (9)

  • z c T : = 1 ∣ V ∣ ∑ i ∈ V z i T \mathbf{z}_c^T := \frac{1}{|V|}\sum_{i \in V} \mathbf{z}_i^T zcT:=V1iVziT 表示切向嵌入的中心。
  • w i w_i wi 来源于 d ( z ˉ i , o ) d(\bar{\mathbf{z}}_i, \mathbf{o}) d(zˉi,o),为了简化,我们使用恒等函数,这表示欧几里得距离。符号 σ \sigma σ 表示单调递增函数,如线性函数、tanh、sigmoid 等。

双曲切向嵌入中心的计算方式如下:

定理 2. 给定图 G = { V , E } G = \{ V, E\} G={V,E} 的节点嵌入 z ∈ H d z \in \mathcal{H}^d zHd,双曲切向嵌入中心 z c T ∈ T o H d \mathbf{z}_c^{T} \in \mathcal{T}_{\mathbf{o}} \mathcal{H}^d zcTToHd 是加权平方距离和最小化问题的解:所有节点在切空间 T o H d T_{\mathbf{o}} \mathcal{H}^d ToHd 中的距离之和,表示为:
z c T = min ⁡ z a T ∈ T o H d , κ ∑ i ∈ V v i d 2 ( z i T , z a T ) \mathbf{z}_c^{\mathcal{T}} = \min_{\mathbf{z}_a^{\mathcal{T}} \in \mathcal{T}_{\mathbf{o}} \mathcal{H}^{d, \kappa}} \sum_{i \in V} v_i d^2(\mathbf{z}_i^{\mathcal{T}}, \mathbf{z}_a^{\mathcal{T}}) zcT=zaTToHd,κminiVvid2(ziT,zaT)

  • 其中 z a T z_a^T zaT 是流形切空间中的任意一点。

5 附录

A.黎曼几何

在本节中,将介绍文中提到的概念的详细内容,即黎曼几何 ( M , g ) (\mathcal{M}, g) (M,g) 中的测地线、距离函数、映射和平行运输,并总结研究中使用的双曲空间公式。

测地线和距离函数

对于一条曲线 γ : [ α , β ] → M \gamma:[\alpha, \beta] \to \mathcal{M} γ:[α,β]M,称其为测地线(geodesic),其长度定义为 L ( γ ) = ∫ α β ∥ γ ′ ( t ) ∥ g d t L(\gamma) = \int_{\alpha}^{\beta} \| \gamma'(t) \|_g dt L(γ)=αβγ(t)gdt

u , v ∈ M \mathbf{u}, \mathbf{v} \in \mathcal{M} u,vM 之间的距离由该公式给出: d M ( u , v ) = inf ⁡ L ( γ ) d_\mathcal{M}(\mathbf{u}, \mathbf{v}) = \inf L(\gamma) dM(u,v)=infL(γ),其中 γ \gamma γ 是一条满足 γ ( α ) = u \gamma(\alpha) = \mathbf{u} γ(α)=u γ ( β ) = v \gamma(\beta) = \mathbf{v} γ(β)=v 的曲线。

映射和平行运输

假设流形是光滑的,即映射是微分同胚的,映射定义了流形与切空间之间的投影。

对于一个点 x ∈ M \mathbf{x} \in \mathcal{M} xM 和一个向量 v ∈ T x M \mathbf{v} \in \mathcal{T}_{\mathbf{x}} \mathcal{M} vTxM,存在一条唯一的测地线 γ : [ 0 , 1 ] → M \gamma:[0, 1] \to \mathcal{M} γ:[0,1]M,其中 γ ( 0 ) = x \gamma(0) = \mathbf{x} γ(0)=x γ ′ ( 0 ) = v \gamma'(0) = \mathbf{v} γ(0)=v

指数映射 exp ⁡ x : T x M → M \exp_{\mathbf{x}} : \mathcal{T}_{\mathbf{x}} \mathcal{M} \to \mathcal{M} expx:TxMM 定义为 exp ⁡ x ( v ) = γ ( 1 ) \exp_\mathbf{x}(\mathbf{v}) = \gamma(1) expx(v)=γ(1),而对数映射 log ⁡ x : M → T x M \log_\mathbf{x} : \mathcal{M} \to \mathcal{T_\mathbf{x}} \mathcal{M} logx:MTxM exp ⁡ x \exp_\mathbf{x} expx 的逆映射。

平行运输 P T x → y : T x M → T y M PT_{\mathbf{x} \to \mathbf{y}} : \mathcal{T_{\mathbf{x}}} \mathcal{M} \to \mathcal{T_{\mathbf{y}}} \mathcal{M} PTxy:TxMTyM 实现了从点 x \mathbf{x} x 到点 y \mathbf{y} y 的运输,并沿着唯一的测地线保持度量张量不变。

双曲模型

具有不同曲率的黎曼流形定义了不同的几何类型:

  1. 椭圆几何(正曲率)
  2. 欧几里得几何(零曲率)
  3. 双曲几何(负曲率)。

双曲几何是具有常数负截面曲率的黎曼流形。我们主要考虑两种广泛研究的双曲模型:庞加莱球模型和洛伦兹模型。

Möbius 加法与减法

∥ . ∥ \|.\| ∥.∥ 为欧几里得范数, ⟨ . , . ⟩ L \langle.,.\rangle_\mathcal{L} .,.L 表示闵可夫斯基内积。其中 ⊕ κ \oplus_\kappa κ 和 gyr [ . , . ] v [.,.]v [.,.]v 分别是 Möbius 加法和旋转算子(Ungar et al., 2007),其定义如下:

Möbius 加法:对于 x , y ∈ B κ n \mathbf{x}, \mathbf{y} \in \mathcal{B}_\kappa^n x,yBκn,Möbius 加法定义为:

x ⊕ κ y = ( 1 − 2 κ ⟨ x , y ⟩ 2 − κ ∥ y ∥ 2 2 ) x + ( 1 + κ ∥ x ∥ 2 2 ) y 1 − 2 κ ⟨ x , y ⟩ 2 + κ 2 ∥ x ∥ 2 2 ∥ y ∥ 2 2 . \mathbf{x}\oplus_\kappa\mathbf{y}=\frac{\left(1-2\kappa\langle\mathbf{x},\mathbf{y}\rangle_2-\kappa\|\mathbf{y}\|_2^2\right)\mathbf{x}+\left(1+\kappa\|\mathbf{x}\|_2^2\right)\mathbf{y}}{1-2\kappa\langle\mathbf{x},\mathbf{y}\rangle_2+\kappa^2\|\mathbf{x}\|_2^2\|\mathbf{y}\|_2^2}. xκy=12κx,y2+κ2x22y22(12κx,y2κy22)x+(1+κx22)y.

  • 诱导的 Möbius 减法 ⊖ κ \ominus_\kappa κ 定义为 x ⊖ κ y = x ⊕ κ ( − y ) \mathbf{x}\ominus_\kappa\mathbf{y} = \mathbf{x}\oplus_\kappa(-\mathbf{y}) xκy=xκ(y)

旋转算子的概念定义为:

gyr [ x , y ] v = ⊖ κ ( x ⊕ κ y ) ⊕ κ ( x ⊕ κ ( y ⊕ κ v ) ) . \text{gyr}[\mathbf{x}, \mathbf{y}]\mathbf{v} = \ominus_{\kappa}\left(\mathbf{x}\oplus_{\kappa}\mathbf{y}\right)\oplus_{\kappa}\left(\mathbf{x}\oplus_{\kappa}\left(\mathbf{y}\oplus_{\kappa}\mathbf{v}\right)\right). gyr[x,y]v=κ(xκy)κ(xκ(yκv)).

如下表所示,庞加莱球模型和洛伦兹模型中的运算总结( κ < 0 \kappa < 0 κ<0
在这里插入图片描述

B. 关于 TREE-L 和 TREE-H 的数据集构建

一个真实世界数据集的几何信息通常没有明确给出,而且该数据集通常也不是一个纯树结构,因此我们合成了两个树数据集,TREE-L 和 TREE-H,用于跟踪节点嵌入在双曲空间中的位置。

  • 结构:TREE-L 和 TREE-H 都有相同的树结构,包含 8 层、1092 条边和 1093 个节点。除了叶子节点,每个节点都有 3 个子节点。

  • 同质性差异

    • TREE-H:具有高同质性。每个最大子树(共三个最大子树)中的节点有相同的标签。根节点为一个单独的类别,其余的节点分为 3 个类别。每个类别的节点特征是从高斯分布中生成的 32 维向量,均值和方差分别为:

      • 类别 1(根节点):(0.0, 1.0)
      • 类别 2: (1.0, 1.0)
      • 类别 3: (2.0, 1.0)
      • 类别 4: (3.0, 1.0)
    • TREE-L:具有较低的同质性。每一层的节点具有相同的标签。前四层节点被设置为同一类别,保证总共有四个类别。类别的特征生成方法和均值、方差与 TREE-H 相同。

如下图所示:

  • 注意:使用相同的颜色来表示这两个树中的相同类。
    在这里插入图片描述

一种度量图的同质性率 H m H_m Hm 的方法,定义为:

H m ( G ) = 1 ∣ V ∣ ∑ v ∈ V # Label ( v ′ s neighbors ) = = Label of  v # v ′ s neighbors . H_m(G)=\frac{1}{|V|}\sum_{v\in V}\frac{\#\text{Label}(v'\text{s neighbors})==\text{Label of }v}{\#v'\text{s neighbors}}. Hm(G)=V1vV#vs neighbors#Label(vs neighbors)==Label of v.

然后,计算得到的 TREE-H 和 TREE-L 的同质性率 H m H_m Hm 分别为 0.998 和 0.018。

C. 双曲中点计算与对齐( f c f_c fc ⊕ κ \oplus_\kappa κ

Z Z Z 为最终层的嵌入矩阵,包含 n n n 个双曲节点向量 ( z 1 , ⋯   , z i , ⋯   , z n ) (\mathbf{z}_1, \cdots, \mathbf{z}_i, \cdots, \mathbf{z}_n) (z1,,zi,,zn),其中 z i ∈ H κ d \mathbf{z}_i \in \mathcal{H}_\kappa^d ziHκd,并且设 v i ∈ R ( v i ≥ 0 v_i \in \mathbb{R} \left( v_i \geq 0 \right. viR(vi0 ∑ i v i > 0 ) \sum_i v_i > 0) ivi>0) z i z_i zi 的权重,在本研究中将其设为 1。以下给出了双曲中心 z c z_c zc 的计算及对齐的详细信息。

庞加莱球模型

庞加莱球模型中,中心,即莫比乌斯旋转中点,是在gyrovector space中计算的,计算公式为:

z c : = 1 2 ⊕ κ ( ∑ i = 1 n v i λ z i κ z i ∑ i = 1 n v i ( λ z i κ − 1 ) ) , \mathbf{z}_c := \frac{1}{2} \oplus_\kappa \left( \frac{\sum_{i=1}^n v_i \lambda_{\mathbf{z}_i}^\kappa \mathbf{z}_i}{\sum_{i=1}^n v_i \left( \lambda_{\mathbf{z}_i}^\kappa - 1 \right)} \right), zc:=21κ(i=1nvi(λziκ1)i=1nviλziκzi),

  • 其中 λ z i κ = 2 1 + κ ∥ z i ∥ 2 2 \lambda_{\mathbf{z}_i}^\kappa = \frac{2}{1 + \kappa \|\mathbf{z}_i\|_2^2} λziκ=1+κzi222

根对齐操作与Poincare球模型中的加法有关,由附录A公式计算得出。

洛伦兹模型
在洛伦兹模型中,中心(也称为洛伦兹质心)通过以下公式计算:

z c : = 1 ∣ κ ∣ ∑ i = 1 n v i z i ∣ ∥ ∑ i = 1 n v i z i ∥ L ∣ , \mathbf{z}_c := \frac{1}{\sqrt{|\kappa|}}\frac{\sum_{i=1}^n v_i \mathbf{z}_i}{|\left\|\sum_{i=1}^n v_i \mathbf{z}_i \right\|_{\mathcal{L}}|}, zc:=κ 1i=1nviziLi=1nvizi,

根对齐操作公式为:

z i ⊕ κ ( z c ) : = exp ⁡ z ˉ κ ( P T o → z ˉ ( log ⁡ o κ ( z i ) ) ) . \mathbf{z}_i \oplus_\kappa (\mathbf{z}_c) := \exp_{\mathbf{\bar{z}}}^\kappa(PT_{\mathbf{o} \to \mathbf{\bar{z}}}(\log_\mathbf{o}^\kappa(\mathbf{z}_i))). ziκ(zc):=expzˉκ(PTozˉ(logoκ(zi))).

切空间
在切空间中,首先将嵌入 Z \mathbf{Z} Z 投影到原点的切空间上,即 Z T = log ⁡ o κ ( Z T ) \mathbf{Z}^T = \log_{\mathbf{o}}^\kappa(\mathbf{Z}^T) ZT=logoκ(ZT)。然后,中心通过以下加权方式定义:

z c T : = ∑ i = 1 n v i z i T ∑ i = 1 n v i , \mathbf{z}_c^T := \frac{\sum_{i=1}^n v_i \mathbf{z}_i^\mathcal{T}}{\sum_{i=1}^n v_i}, zcT:=i=1nvii=1nviziT,

根对齐如下:

z i T ⊕ κ ( z c ) : = z i T − z c T . \mathbf{z}_i^{\mathcal{T}} \oplus_\kappa (\mathbf{z}_c) := \mathbf{z}_i^{\mathcal{T}} - \mathbf{z}_c^{\mathcal{T}}. ziTκ(zc):=ziTzcT.

D. Graph Centrality

在图论和网络分析中,中心性指标反映它们在网络中的相对重要性和显著性。在这一部分,我们将介绍一些图中常见的中心性指标供参考。除非另有说明,这里提到的图假设为无向图。

Degree centrality

度中心性:通过计算与节点相连的边的数量来量化节点的中心性,这个数量通常被称为该节点的度数:
C D ( v ) = deg ⁡ ( v ) . C_D(v) = \deg(v). CD(v)=deg(v).

  • 度越高的结点在网络中的中心性越强,因此我们选择度越高的结点作为比较的根结点。

Betweenness centrality

一个节点的介数中心性是基于通过它的最短路径的数量。公式如下:

C B ( v ) = ∑ s ≠ v ≠ t ∈ V δ s t ( v ) δ s t , C_B(v) = \sum_{s \neq v \neq t \in V} \frac{\delta_{st}(v)}{\delta_{st}}, CB(v)=s=v=tVδstδst(v),

  • δ s t \delta_{st} δst 表示从节点 s s s 到节点 t t t 的最短路径总数
  • δ s t ( v ) \delta_{st}(v) δst(v) 表示经过节点 v v v 的最短路径数量。

closeness centrality

接近度中心性量化了节点与网络中所有其他节点之间的连接紧密程度。接近度中心性的核心概念是,如果一个节点到达另一个节点所需的平均链接数较少,那么该节点就是中心节点。它通过取节点与图中其他所有节点之间的最短路径距离之和的倒数来计算,公式为:

C C ( v ) = n − 1 ∑ u = 1 n − 1 d ( v , u ) , C_C(v) = \frac{n-1}{\sum_{u=1}^{n-1} d(v,u)}, CC(v)=u=1n1d(v,u)n1,

  • d ( v , u ) d(v,u) d(v,u) 是节点 v v v 和节点 u u u 之间的最短路径距离, n − 1 n-1 n1 是从节点 v v v 可达的节点数量。

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

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

相关文章

Ansible自动化运维(三)playbook剧本详解

Ansible自动化运维这部分我将会分为五个部分来为大家讲解 &#xff08;一&#xff09;介绍、无密钥登录、安装部署、设置主机清单 &#xff08;二&#xff09;Ansible 中的 ad-hoc 模式 模块详解&#xff08;15&#xff09;个 &#xff08;三&#xff09;Playbook 模式详解 …

【机器学习】手写数字识别的最优解:CNN+Softmax、Sigmoid与SVM的对比实战

一、基于CNNSoftmax函数进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分析 二、 基于CNNsigmoid函数进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分析 三、 基于CNNSVM进行分类 1数据集准备 2模型设计 3模型训练 4模型评估 5结果分…

196-基于CPCI Express架构的6u 主控板

一、板卡概述 该板卡是基于 CPCI Express架构的3U主控板&#xff0c;CPU采用Intel Pentium M 2.0GHz CPU&#xff0c;2M L2 cache&#xff0c;533M前端总线&#xff0c;支持512MB / 1GB表贴DDRII 400/533 MHz内存。 二、功能和技术指标 Intel Pentium M 2.0GHz CPU&#xff0c…

机器学习01-发展历史

机器学习01-发展历史 文章目录 机器学习01-发展历史1-传统机器学习的发展进展1. 初始阶段&#xff1a;统计学习和模式识别2. 集成方法和核方法的兴起3. 特征工程和模型优化4. 大规模数据和分布式计算5. 自动化机器学习和特征选择总结 2-隐马尔科夫链为什么不能解决较长上下文问…

HTA8998 实时音频跟踪的高效内置升压2x10W免电感立体声ABID类音频功放

1、特征 输出功率(fIN1kHz,RL4Ω&#xff0c;BTL) VBAT 4V, 2x10.6W(VOUT9V,THDN10%) VBAT 4V, 2x8.6W (VOUT9V,THDN1%) 内置升压电路模式可选择:自适应实时音频跟踪 升压(可提升播放时间50%以上)、强制升压 最大升压值可选择&#xff0c;升压限流值可设置 ACF防破音功能 D类…

Modern Effective C++ 条款三十八:关注不同线程句柄的析构行为

之前内容的总结&#xff1a; item37中说明了可结合的std::thread对应于执行的系统线程。未延迟&#xff08;non-deferred&#xff09;任务的future&#xff08;参见item36&#xff09;与系统线程有相似的关系。 因此&#xff0c;可以将std::thread对象和future对象都视作系统…

【Spring】IoC和DI,控制反转,Bean对象的获取方式

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;什么是IoC 1&#xff1a;什么是容器 2&#xff1a;什么是IoC 二&#xff1a;IoC应用…

【网络协议栈】TCP/IP协议栈中重要协议和技术(DNS、ICMP、NAT、代理服务器、以及内网穿透)

每日激励&#xff1a;“请给自己一个鼓励说&#xff1a;Jack我很棒&#xff01;—Jack” 绪论​&#xff1a; 本章是TCP/IP网络协议层的完结篇&#xff0c;本章将主要去补充一些重要的协议和了解一些网络中常见的名词&#xff0c;具体如&#xff1a;DNS、ICMP、NAT、代理服务器…

离屏渲染概述

我们知道&#xff0c;图像的处理基本都是在GPU中进行&#xff0c;然后GPU将渲染的结果放入当前渲染屏幕的帧缓冲区中&#xff0c;视频控制器取出里面的内容&#xff0c;在屏幕上进行显示。那么有没有什么情况&#xff0c;会因为某些限制&#xff0c;GPU无法将全部的渲染结果直接…

探索 Python 应用的分层依赖:解决 Linux 环境中的 libvirt-python 安装问题

探索 Python 应用的分层依赖&#xff1a;解决 Linux 环境中的 libvirt-python 安装问题 背景Python 版本升级 问题描述原因分析与解决方案 Python 应用的分层依赖&#xff1a;安装与部署的视角libvirt-python的分层依赖尝试的解决方案 使用编译好的 .whl 文件"嫁接"整…

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

声明 因为这份文档我是边做边写的&#xff0c;遇到问题重新装了好几次所以IP会很乱 ESXI主机为192.168.20.10 VCSA为192.168.20.7&#xff0c;后台为192.168.20.7:5480 后期请自行对应&#xff0c;后面的192.168.20.57请对应192.168.20.7&#xff0c;或根据自己的来 第一阶段…

Unity3D下采集camera场景并推送RTMP服务实现毫秒级延迟直播

技术背景 好多开发者&#xff0c;希望我们能够分享下如何实现Unity下的camera场景采集并推送rtmp服务&#xff0c;然后低延迟播放出来。简单来说&#xff0c;在Unity 中实现采集 Camera 场景并推送RTMP的话&#xff0c;先是获取 Camera 场景数据&#xff0c;通过创建 RenderTex…

指令周期流程图

例题一 例题二 例题三

使用C#通过ColorMatrix对象为图像重新着色

此示例产生了一些令人印象深刻的结果&#xff0c;但实际上非常简单。 它使用其他几个示例演示的 ImageAttribute 技术来快速操作图像的颜色。 下面的AdjustColor方法启动图像着色的过程。 // Adjust the images colors. private Image AdjustColor(Image image) {// Make the …

SQL 在线格式化 - 加菲工具

SQL 在线格式化 打开网站 加菲工具 选择“SQL 在线格式化” 或者直接访问 https://www.orcc.online/tools/sql 输入sql&#xff0c;点击上方的格式化按钮即可 输入框得到格式化后的sql结果

AI作图效率高,亲测ToDesk、顺网云、青椒云多款云电脑AIGC实践创作

一、引言 随着人工智能生成内容&#xff08;AIGC&#xff09;的兴起&#xff0c;越来越多的创作者开始探索高效的文字处理和AI绘图方式&#xff0c;而云电脑也正成为AIGC创作中的重要工具。相比于传统的本地硬件&#xff0c;云电脑在AIGC场景中展现出了显著的优势&#xff0c;…

【密码学】SM4算法

一、 SM4算法简介 SM4算法是中国国家密码管理局于2012发布的一种分组密码算法&#xff0c;其官方名称为SMS4&#xff08;SMS4.0&#xff09;&#xff0c;相关标准为GM/T 0002-2012《SM4分组密码算法》。SM4算法的分组长度和密钥长度均为128比特,采用非平衡Feistel结构。采用32…

Proteus(8.15)仿真下载安装过程(附详细安装过程图)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Proteus是什么&#xff1f; 二、下载链接 三、下安装步骤 1.解压&#xff0c;有键管理员运行 2.点击Next&#xff0c;进行下一步 3.勾选I accept…&#…

【工业机器视觉】基于深度学习的水表盘读数识别(4-训练与预测)

【工业机器视觉】基于深度学习的仪表盘识读(读数识别)&#xff08;3&#xff09;-CSDN博客 训练与预测 Ultralytics YOLO指的是由Ultralytics公司开发的一系列基于YOLO&#xff08;You Only Look Once&#xff09;架构的目标检测算法。YOLO是一种实时目标检测系统&#xff0c;它…

AlphaPose、yolov8Pose、RTMPose进行对比

一、Alphapose 参考&#xff1a; https://blog.csdn.net/m0_45850873/article/details/123939849