多维高斯分布的信息熵和KL散度计算

  • 多维高斯分布是一种特殊的多维随机分布,应用非常广泛,很多现实问题的原始特征分布都可以看作多维高斯分布。本文以数据特征服从多维高斯分布的多分类任务这一理想场景为例,从理论层面分析数据特征和分类问题难度的关系
  • 注意,本文分析不涉及算法层面,仅仅是对数据特征的分析,实用意义不强,纯机器学习层面可能只对特征挖掘有点作用,工程层面可以指导探测器设计。本文主旨在于借助这个场景说明多维高斯分布的信息熵和KL散度计算方法
  • 关于信息熵和KL散度(相对熵)的详细说明参考:信息论概念详细梳理:信息量、信息熵、条件熵、互信息、交叉熵、KL散度、JS散度

文章目录

  • 0. 场景
  • 1. 多维高斯分布
  • 2. 多维高斯分布的信息熵
  • 3. 两个多维高斯分布之间的相对熵(KL散度)
  • 4 总结

0. 场景

  • 考虑一般的多分类机器学习场景:设目标识别算法的原始输入 x = ( x , y , I , λ , θ . . . ) \pmb{x}=(x,y,I,\lambda,\theta...) x=(x,y,I,λ,θ...),定义为 k k k 维随机向量 X = ( X 1 , X 2 , … , X k ) \pmb{X}=(X_1,X_2,\dots,X_k) X=(X1,X2,,Xk),设检测目标类别数为 n n n

  • 进一步假设 X \pmb{X} X 是多维高斯分布,这意味着原始观测中每个维度都服从高斯分布。当 n = 4 n=4 n=4 时,多维随机变量 X X X 沿维度 f 0 f_0 f0 f 0 − f 1 f_0-f_1 f0f1 的边缘分布示意图如下,使用不同颜色代表不同类别数据
    在这里插入图片描述

    绘图代码供参考:

    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.patches import Ellipse
    
    # 高斯分布参数,f0和f1两个维度
    means_2d = [(0, 0), (2, 3), (4, 2), (6, 5)]
    covariances = [
        np.array([[0.35, 0.05], 
                  [0.05, 0.35]]), 
        np.array([[0.75, 0.5], 
                  [0.5, 0.75]]), 
        np.array([[0.2, 0.1], 
                  [0.1, 0.2]]), 
        np.array([[1.25, -0.4], 
                  [-0.4, 1.25]])
    ]
    colors = ['blue', 'green', 'red', 'purple']
    fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(8, 8))
    
    # 绘制沿f0的的边缘分布
    means_1d = [m[0] for m in means_2d]
    std_devs = [c[0,0].item() for c in covariances]
    # 概率密度曲线
    x = np.linspace(-2, 10, 1000)
    for i, (mean, std_dev, color) in enumerate(zip(means_1d, std_devs, colors)):
        y = (1/(std_dev * np.sqrt(2 * np.pi))) * np.exp(-0.5 * ((x - mean) / std_dev)**2)
        ax1.plot(x, y, color=color, label=f'Class {i}')
    # 抽样样本用竖线表示
    for mean, std_dev, color in zip(means_1d, std_devs, colors):
        samples = np.random.normal(mean, std_dev, 20)
        ax1.vlines(samples, ymin=0, ymax=(1/(std_dev * np.sqrt(2 * np.pi))) * np.exp(-0.5 * ((samples - mean) / std_dev)**2), color=color, linestyle='-', alpha=0.2)
    # 图例和标题
    ax1.legend()
    ax1.set_title('Distribution of raw observation along feature $f_0$')
    ax1.set_xlabel('$f_0$')
    ax1.set_ylabel('Probability Density')
    
    
    # 绘制沿f0和f1的的二维边缘分布
    for mean, cov, color in zip(means_2d, covariances, colors):
        eigenvalues, eigenvectors = np.linalg.eigh(cov)
        order = eigenvalues.argsort()[::-1]
        eigenvalues, eigenvectors = eigenvalues[order], eigenvectors[:, order]
        angle = np.degrees(np.arctan2(*eigenvectors[:, 0][::-1]))
        width, height = 3 * np.sqrt(eigenvalues)
        ell = Ellipse(xy=mean, width=width, height=height, angle=angle, color=color, alpha=0.2)
        ax2.add_artist(ell)
    # 抽样样本用点表示
    for i, (mean, cov, color) in enumerate(zip(means_2d, covariances, colors)):
        samples = np.random.multivariate_normal(mean, cov, 100)
        ax2.scatter(samples[:, 0], samples[:, 1], color=color, s=4, label=f'Class {i}')
    # 添加图例和标题
    ax2.legend()
    ax2.set_title('Distribution of raw observation along feature $f_0$ & $f_1$')
    ax2.set_xlabel('$f_0$')
    ax2.set_ylabel('$f_1$')
    
    # 显示图形
    plt.tight_layout()
    plt.show()
    
  • 注意图示为原始输入数据 f f f 的样本分布情况,识别算法从中提取特征用于分类。注意到

    1. 数据 D i \mathcal{D}_i Di(分布 p i p_i pi )的集中程度描述了第 i i i 类目标的原始特征强度。分布越集中,说明探测系统对第 i i i 类目标的观测一致性越强,其受系统噪音和环境因素影响程度越小
    2. 不同数据 D i \mathcal{D}_i Di D j \mathcal{D}_j Dj(分布 p i p_i pi p j p_j pj )之间的距离刻画了分布间差异程度。两类数据距离越大则差异越强,越容易区分。反之,若两类数据的原始数据分布有重叠(如 p 1 , p 2 p_1,p_2 p1,p2),则理论上重叠部分的样本所属类别无法准确区分
  • 为最大化识别准确率,从两方面考虑(以下准则可以用来指导探测器设计)

    1. 增大类内特征强度(同类数据尽量集中),形式化表示为最小化每一类数据分布信息熵的总和
    2. 增大类间特征差异(不同类数据尽量远离),形式化表示为最大化每一组数据分布相对熵(KL散度)的总和。值得注意的是,由于KL散度不对称,无法直接作为度量,这里还需要一些trick

1. 多维高斯分布

  • 设原始输入为 x = ( x , y , I , λ , θ . . . ) \pmb{x}=(x,y,I,\lambda,\theta...) x=(x,y,I,λ,θ...),定义为 k k k 维随机向量 X = ( X 1 , X 2 , … , X k ) \pmb{X}=(X_1,X_2,\dots,X_k) X=(X1,X2,,Xk),设检测目标类别数为 n n n,第 i i i 类目标的原始观测输入服从多维高斯分布,即:
    p i ( x ) = p i ( x 1 , . . . , x k ) = 1 ( 2 π ) n / 2 det ⁡ ( Σ i ) 1 / 2 e − 1 2 ( x − μ i ) ⊤ Σ i − 1 ( x − μ i ) (1.1) p_i(\pmb{x}) = p_i(x_1,...,x_k) = \frac{1}{(2\pi)^{n/2}\operatorname{det}(\pmb{\Sigma}_i)^{1/2}}e^{-\frac{1}{2}(\mathbf{x}-\pmb{\mu}_i)^\top \mathbf{\Sigma}_i^{-1}(\mathbf{x}-\pmb{\mu}_i)} \tag{1.1} pi(x)=pi(x1,...,xk)=(2π)n/2det(Σi)1/21e21(xμi)Σi1(xμi)(1.1) 称随机向量 X \pmb{X} X 服从期望为 μ i \pmb{\mu}_i μi,协方差矩阵为 Σ i \pmb{\Sigma}_i Σi 的多维正态分布,记为 X ∼ N ( μ i , Σ i ) \pmb{X}\sim N(\pmb{\mu}_i,\pmb{\Sigma}_i) XN(μi,Σi)。其中 Σ i \pmb{\Sigma}_i Σi 为协方差矩阵:
    Σ i = [ D X 1 Cov ( X 1 , X 2 ) … Cov ( X 1 , X k ) Cov ( X 2 , X 1 ) D X 2 … Cov ( X 2 , X k ) ⋮ ⋮ ⋮ Cov ( X k , X 1 ) Cov ( X k , X 2 ) … D X k ]   = [ σ 1 2 ρ 12 σ 1 σ 2 … ρ 1 k σ 1 σ k ρ 21 σ 2 σ 1 σ 2 2 … ρ 2 k σ 2 σ k ⋮ ⋮ ⋮ ρ k , 1 σ k σ 1 ρ k , 2 σ k σ 2 … σ k 2 ] (1.2) \begin{aligned} \pmb{\Sigma}_i &= \begin{bmatrix} DX_1 &\text{Cov}(X_1,X_2) &\dots &\text{Cov}(X_1,X_k) \\ \text{Cov}(X_2,X_1) &DX_2 &\dots &\text{Cov}(X_2,X_k) \\ \vdots &\vdots &&\vdots\\ \text{Cov}(X_k,X_1) &\text{Cov}(X_k,X_2) &\dots &DX_k \end{bmatrix}\\ \space \\ & = \begin{bmatrix} \sigma_1^2 &\rho_{12}\sigma_1\sigma_2 &\dots &\rho_{1k}\sigma_1\sigma_k \\ \rho_{21}\sigma_2\sigma_1 &\sigma_2^2 &\dots &\rho_{2k}\sigma_2\sigma_k \\ \vdots &\vdots &&\vdots\\ \rho_{k,1}\sigma_k\sigma_1 &\rho_{k,2}\sigma_k\sigma_2 &\dots &\sigma_k^2 \end{bmatrix} \end{aligned} \tag{1.2} Σi = DX1Cov(X2,X1)Cov(Xk,X1)Cov(X1,X2)DX2Cov(Xk,X2)Cov(X1,Xk)Cov(X2,Xk)DXk = σ12ρ21σ2σ1ρk,1σkσ1ρ12σ1σ2σ22ρk,2σkσ2ρ1kσ1σkρ2kσ2σkσk2 (1.2)
  • 显然 Σ \pmb{\Sigma} Σ 是实对称矩阵,通常情况下是正定矩阵(只要 X i X_i Xi 不为常数,其任意阶顺序主子式 > 0)。这种矩阵有一些良好性质,列举一些以便后续计算
    1. Σ − 1 , Σ 1 + Σ 2 \pmb{\Sigma}^{-1}, \pmb{\Sigma}_1+\pmb{\Sigma}_2 Σ1,Σ1+Σ2 也是正定对称矩阵
    2. 奇异值分解(SVD分解)结果和特征值分解(谱分解)一致,即有
      Σ = U Λ U ⊤ (1.3) \pmb{\Sigma} = \pmb{U}\pmb{\Lambda}\pmb{U}^{\top} \tag{1.3} Σ=UΛU(1.3) 其中 U \pmb{U} U 是正交矩阵, Λ \pmb{\Lambda} Λ 是对角阵且对角线上的元素是正的(正定矩阵),这意味着 Σ \pmb{\Sigma} Σ 可以如下开方:
      Σ 1 2 = U Λ 1 2 U ⊤ (1.4) \pmb{\Sigma}^{\frac{1}{2}} = \pmb{U}\pmb{\Lambda}^{\frac{1}{2}}\pmb{U}^{\top} \tag{1.4} Σ21=UΛ21U(1.4) Σ 1 2 \pmb{\Sigma}^{\frac{1}{2}} Σ21 也是正定对称矩阵
  • 多维高斯分布有以下基本统计量(期望、方差、二阶矩)
    E x [ x ] = ∫ p ( x ) x d x = μ E x [ ( x − μ ) ( x − μ ) ⊤ ] = ∫ p ( x ) ( x − μ ) ( x − μ ) ⊤ d x = Σ E x [ x x ⊤ ] = μ μ ⊤ + E x [ ( x − μ ) ( x − μ ) ⊤ ] = μ μ ⊤ + Σ (1.5) \begin{aligned} \mathbb{E}_{\boldsymbol{x}}[\boldsymbol{x}] & =\int p(\boldsymbol{x}) \boldsymbol{x} d x=\boldsymbol{\mu} \\ \mathbb{E}_{\boldsymbol{x}}\left[(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\top}\right] & =\int p(\boldsymbol{x})(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\top} d x=\boldsymbol{\Sigma} \\ \mathbb{E}_{\boldsymbol{x}}\left[\boldsymbol{x} \boldsymbol{x}^{\top}\right]&=\boldsymbol{\mu} \boldsymbol{\mu}^{\top}+\mathbb{E}_{\boldsymbol{x}}\left[(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\top}\right]=\boldsymbol{\mu} \boldsymbol{\mu}^{\top}+\boldsymbol{\Sigma} \end{aligned} \tag{1.5} Ex[x]Ex[(xμ)(xμ)]Ex[xx]=p(x)xdx=μ=p(x)(xμ)(xμ)dx=Σ=μμ+Ex[(xμ)(xμ)]=μμ+Σ(1.5) 其中二阶矩就是普通随机变量常见结论 E ( X 2 ) = E ( X ) 2 + D ( X ) \mathbb{E}(X^2) = \mathbb{E}(X)^2 + D(X) E(X2)=E(X)2+D(X) 的多维扩展

2. 多维高斯分布的信息熵

  • 设第 i i i 类目标原始观测的分布 p i ( x ) = N ( μ i , Σ i ) p_i(\pmb{x})=\mathcal{N}(\pmb{\mu_i},\pmb{\Sigma_i}) pi(x)=N(μi,Σi),计算其信息熵
    H p i = E x ∼ p i ( x ) [ − log ⁡ p i ( x ) ] = E x ∼ p i ( x ) [ n 2 log ⁡ 2 π + 1 2 log ⁡ det ⁡ ( Σ i ) + 1 2 ( x − μ i ) ⊤ Σ i − 1 ( x − μ i ) ] = k 2 log ⁡ 2 π + 1 2 log ⁡ det ⁡ ( Σ i ) + 1 2 E x ∼ p i ( x ) [ ( x − μ i ) ⊤ Σ i − 1 ( x − μ i ) ] (2.1) \begin{aligned} \mathcal{H}_{p_i}&=\mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}[-\log p_i(\boldsymbol{x})] \\ &=\mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\frac{n}{2} \log 2 \pi+\frac{1}{2} \log \operatorname{det}\left(\pmb{\Sigma}_i\right)+\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\right] \\ & =\frac{k}{2} \log 2 \pi+\frac{1}{2} \log \operatorname{det}\left(\boldsymbol{\Sigma}_i\right)+\frac{1}{2} \mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\right] \end{aligned} \tag{2.1} Hpi=Expi(x)[logpi(x)]=Expi(x)[2nlog2π+21logdet(Σi)+21(xμi)Σi1(xμi)]=2klog2π+21logdet(Σi)+21Expi(x)[(xμi)Σi1(xμi)](2.1) 最后一项的展开需要借助马哈拉诺比斯变换:对于任意服从多维高斯分布的随机向量 X ∼ N ( μ , Σ ) \pmb{X}\sim\mathcal{N}(\pmb{\mu},\pmb{\Sigma}) XN(μ,Σ), 有随机向量 Y = Σ − 1 2 ( x − μ ) \pmb{Y} = \pmb{\Sigma}^{-\frac{1}{2}}(\pmb{x-\mu}) Y=Σ21(xμ) 是标准高斯分布,即 Y ∼ N ( 0 , I k ) \pmb{Y} \sim \mathcal{N}(0,\pmb{I}_k) YN(0,Ik),注意到
    x = Σ 1 2 y + μ (2.2) \pmb{x} = \pmb{\Sigma}^{\frac{1}{2}}\pmb{y}+\pmb{\mu} \tag{2.2} x=Σ21y+μ(2.2) 故有
    E x ∼ p i ( x ) [ ( x − μ i ) ⊤ Σ i − 1 ( x − μ i ) ] = E y ∼ p i ( y ) [ ( Σ i 1 2 y ) ⊤ Σ i − 1 ( Σ i 1 2 y ) ] = E y ∼ p i ( y ) [ y ⊤ y ] = ∑ i = 1 k E [ y i 2 ] = k (2.3) \begin{aligned} \mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_i^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\right] & =\mathbb{E}_{\boldsymbol{y} \sim p_i(\boldsymbol{y})}\left[\left(\pmb{\Sigma}_i^{\frac{1}{2}}\boldsymbol{y}\right)^{\top} \boldsymbol{\Sigma}_i^{-1}\left(\pmb{\Sigma}_i^{\frac{1}{2}}\boldsymbol{y}\right)\right] \\ &=\mathbb{E}_{\boldsymbol{y} \sim p_i(\boldsymbol{y})}\left[\pmb{y}^\top \pmb{y}\right] \\ &=\sum_{i=1}^k \mathbb{E}[y_i^2] \\ &=k \end{aligned} \tag{2.3} Expi(x)[(xμi)Σi1(xμi)]=Eypi(y)[(Σi21y)Σi1(Σi21y)]=Eypi(y)[yy]=i=1kE[yi2]=k(2.3)
  • 综上所述,有
    H p i = k 2 log ⁡ 2 π + 1 2 log ⁡ det ⁡ ( Σ i ) + 1 2 k = k 2 ( 1 + log ⁡ 2 π ) + 1 2 log ⁡ det ⁡ ( Σ i ) (2.4) \begin{aligned} \mathcal{H}_{p_i} &= \frac{k}{2} \log 2 \pi+\frac{1}{2} \log \operatorname{det}\left(\boldsymbol{\Sigma}_i\right)+\frac{1}{2} k \\ &= \frac{k}{2}(1+\log 2 \pi)+\frac{1}{2} \log \operatorname{det}(\boldsymbol{\Sigma_i}) \end{aligned} \tag{2.4} Hpi=2klog2π+21logdet(Σi)+21k=2k(1+log2π)+21logdet(Σi)(2.4)

3. 两个多维高斯分布之间的相对熵(KL散度)

  • 下面计算第 i i i 类和第 j j j 类目标原始观测的分布 p i ( x ) , p j ( x ) p_i(\pmb{x}),p_j(\pmb{x}) pi(x),pj(x) 之间的相对熵:
    D K L ( p i ∣ ∣ p j ) = E x ∼ p i ( x ) log ⁡ p i ( x ) p j ( x ) = E x ∼ p i ( x ) log ⁡ p i ( x ) + E x ∼ p i ( x ) [ − log ⁡ p j ( x ) ] = − H p i + E x ∼ p i ( x ) [ − log ⁡ p j ( x ) ] (3.1) \begin{aligned} D_{KL}(p_i||p_j) &= \mathbb{E}_{\pmb{x}\sim p_i(x)}\log\frac{p_i(\pmb{x})}{p_j(\pmb{x})} \\ &= \mathbb{E}_{\pmb{x}\sim p_i(x)}\log p_i(\pmb{x}) + {E}_{\pmb{x}\sim p_i(x)}[-\log p_j(\pmb{x})] \\ &= -\mathcal{H}_{p_i} + {E}_{\pmb{x}\sim p_i(x)}[-\log p_j(\pmb{x})]\\ \end{aligned} \tag{3.1} DKL(pi∣∣pj)=Expi(x)logpj(x)pi(x)=Expi(x)logpi(x)+Expi(x)[logpj(x)]=Hpi+Expi(x)[logpj(x)](3.1) 展开其中第二项:
    E x ∼ p i ( x ) [ − log ⁡ p j ( x ) ] = E x ∼ p i ( x ) [ n 2 log ⁡ 2 π + 1 2 log ⁡ det ⁡ ( Σ j ) + 1 2 ( x − μ j ) ⊤ Σ j − 1 ( x − μ j ) ] = k 2 log ⁡ 2 π + 1 2 log ⁡ det ⁡ ( Σ j ) + 1 2 E x ∼ p i ( x ) [ ( x − μ j ) ⊤ Σ j − 1 ( x − μ j ) ] (3.2) \begin{aligned} \mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}[-\log p_j(\boldsymbol{x})] & =\mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\frac{n}{2} \log 2 \pi+\frac{1}{2} \log \operatorname{det}\left(\Sigma_{j}\right)+\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)\right] \\ & =\frac{k}{2} \log 2 \pi+\frac{1}{2} \log \operatorname{det}\left(\boldsymbol{\Sigma}_{j}\right)+\frac{1}{2} \mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)\right] \end{aligned} \tag{3.2} Expi(x)[logpj(x)]=Expi(x)[2nlog2π+21logdet(Σj)+21(xμj)Σj1(xμj)]=2klog2π+21logdet(Σj)+21Expi(x)[(xμj)Σj1(xμj)](3.2)
    进一步展开其中最后一项:
    E x ∼ p ( x ) [ ( x − μ q ) ⊤ Σ q − 1 ( x − μ q ) ] = E x ∼ p i ( x ) [ Tr ⁡ ( ( x − μ j ) ⊤ Σ j − 1 ( x − μ j ) ) ] . = E x ∼ p i ( x ) [ Tr ⁡ ( Σ j − 1 ( x − μ j ) ( x − μ j ) ⊤ ) ] . = Tr ⁡ ( Σ j − 1 E x ∼ p i ( x ) [ ( x − μ j ) ( x − μ j ) ⊤ ] ) = Tr ⁡ ( Σ j − 1 E x ∼ p i ( x ) [ x x ⊤ − μ j x ⊤ − x μ j ⊤ + μ j μ j ⊤ ] ) = Tr ⁡ ( Σ j − 1 ( Σ i + μ i μ i ⊤ − μ j μ i ⊤ − μ i μ j ⊤ + μ j μ j ⊤ ) ) = Tr ⁡ ( Σ j − 1 Σ i + Σ j − 1 ( μ i − μ j ) ( μ i − μ j ) ⊤ ) = Tr ⁡ ( Σ j − 1 Σ i ) + Tr ⁡ ( Σ j − 1 ( μ i − μ j ) ( μ i − μ j ) ⊤ ) = Tr ⁡ ( Σ j − 1 Σ i ) + Tr ⁡ ( ( μ i − μ j ) ⊤ Σ j − 1 ( μ i − μ j ) ) = Tr ⁡ ( Σ j − 1 Σ i ) + ( μ i − μ j ) ⊤ Σ j − 1 ( μ i − μ j ) (3.3) \begin{aligned} \mathbb{E}_{\boldsymbol{x} \sim p(\boldsymbol{x})}\left[\left(\boldsymbol{x}-\boldsymbol{\mu}_{q}\right)^{\top} \boldsymbol{\Sigma}_{q}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{q}\right)\right] & =\mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\operatorname{Tr}\Big((\boldsymbol{x}-\boldsymbol{\mu}_{j})^{\top} \boldsymbol{\Sigma}_{j}^{-1} (\boldsymbol{x}-\boldsymbol{\mu}_{j})\Big) \right]. \\ & =\mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\operatorname{Tr}\Big(\boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)^{\top}\Big)\right]. \\ & =\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)^{\top}\right]\right) \\ &=\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\boldsymbol{x} \boldsymbol{x}^{\top}-\boldsymbol{\mu}_{j} \boldsymbol{x}^{\top}-\boldsymbol{x} \boldsymbol{\mu}_{j}^{\top}+\boldsymbol{\mu}_{j} \boldsymbol{\mu}_{j}^{\top}\right]\right) \\ &=\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{\Sigma}_{i}+\boldsymbol{\mu}_{i} \boldsymbol{\mu}_{i}^{\top}-\boldsymbol{\mu}_{j} \boldsymbol{\mu}_{i}^{\top}-\boldsymbol{\mu}_{i} \boldsymbol{\mu}_{j}^{\top}+\boldsymbol{\mu}_{j} \boldsymbol{\mu}_{j}^{\top}\right)\right) \\ &=\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \boldsymbol{\Sigma}_{i}+\boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)^{\top}\right) \\ &=\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \boldsymbol{\Sigma}_{i}\right)+ \operatorname{Tr} \left(\boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)^{\top}\right)\\ &=\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \boldsymbol{\Sigma}_{i}\right)+ \operatorname{Tr} \left(\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)\right) \\ &=\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \boldsymbol{\Sigma}_{i}\right)+ \left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right) \end{aligned} \tag{3.3} Exp(x)[(xμq)Σq1(xμq)]=Expi(x)[Tr((xμj)Σj1(xμj))].=Expi(x)[Tr(Σj1(xμj)(xμj))].=Tr(Σj1Expi(x)[(xμj)(xμj)])=Tr(Σj1Expi(x)[xxμjxxμj+μjμj])=Tr(Σj1(Σi+μiμiμjμiμiμj+μjμj))=Tr(Σj1Σi+Σj1(μiμj)(μiμj))=Tr(Σj1Σi)+Tr(Σj1(μiμj)(μiμj))=Tr(Σj1Σi)+Tr((μiμj)Σj1(μiμj))=Tr(Σj1Σi)+(μiμj)Σj1(μiμj)(3.3) 注意到 i = j i=j i=j 时上式等于 k k k,退化到式 (2.4)

  • 综上所述,有
    D K L ( p i ∥ p j ) = − H p i + E x ∼ p i ( x ) [ − log ⁡ p j ( x ) ] = − ( k 2 ( 1 + log ⁡ 2 π ) + 1 2 log ⁡ det ⁡ ( Σ i ) ) + ( k 2 log ⁡ 2 π + 1 2 log ⁡ det ⁡ ( Σ j ) + 1 2 E x ∼ p i ( x ) [ ( x − μ j ) ⊤ Σ j − 1 ( x − μ j ) ] ) = 1 2 E x ∼ p i ( x ) [ ( x − μ j ) ⊤ Σ j − 1 ( x − μ j ) ] + 1 2 [ log ⁡ det ⁡ ( Σ j ) − log ⁡ det ⁡ ( Σ i ) − k ] = 1 2 [ Tr ⁡ ( Σ j − 1 Σ i ) + ( μ i − μ j ) ⊤ Σ j − 1 ( μ i − μ j ) ] + 1 2 [ log ⁡ det ⁡ ( Σ j ) det ⁡ ( Σ i ) − k ] = 1 2 [ Tr ⁡ ( Σ j − 1 Σ i ) + ( μ i − μ j ) ⊤ Σ j − 1 ( μ i − μ j ) − log ⁡ det ⁡ ( Σ j − 1 Σ i ) − k ] (3.4) \begin{aligned} D_{KL}(p_i\| p_j) &= -\mathcal{H}_{p_i} + {E}_{\pmb{x}\sim p_i(x)}[-\log p_j(\pmb{x})]\\ &= -\left(\frac{k}{2}(1+\log 2 \pi)+\frac{1}{2} \log \operatorname{det}(\boldsymbol{\Sigma_i})\right) + \left(\frac{k}{2} \log 2 \pi+\frac{1}{2} \log \operatorname{det}\left(\boldsymbol{\Sigma}_{j}\right)+\frac{1}{2} \mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)\right]\right) \\ &= \frac{1}{2}\mathbb{E}_{\boldsymbol{x} \sim p_i(\boldsymbol{x})}\left[\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{j}\right)\right] + \frac{1}{2}\left[\log \operatorname{det}\left(\boldsymbol{\Sigma}_{j}\right) - \log \operatorname{det}\left(\boldsymbol{\Sigma}_{i}\right)-k\right]\\ &= \frac{1}{2}\left[\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \boldsymbol{\Sigma}_{i}\right)+ \left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)\right] + \frac{1}{2}\left[\log \frac{\operatorname{det}(\pmb{\Sigma}_j)}{\operatorname{det}(\pmb{\Sigma}_i)}-k\right]\\ &= \frac{1}{2}\left[\operatorname{Tr}\left(\boldsymbol{\Sigma}_{j}^{-1} \boldsymbol{\Sigma}_{i}\right)+\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)^{\top} \boldsymbol{\Sigma}_{j}^{-1}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}_{j}\right)-\log \operatorname{det}\left(\boldsymbol{\Sigma}_{j}^{-1} \boldsymbol{\Sigma}_{i}\right)-k\right] \end{aligned} \tag{3.4} DKL(pipj)=Hpi+Expi(x)[logpj(x)]=(2k(1+log2π)+21logdet(Σi))+(2klog2π+21logdet(Σj)+21Expi(x)[(xμj)Σj1(xμj)])=21Expi(x)[(xμj)Σj1(xμj)]+21[logdet(Σj)logdet(Σi)k]=21[Tr(Σj1Σi)+(μiμj)Σj1(μiμj)]+21[logdet(Σi)det(Σj)k]=21[Tr(Σj1Σi)+(μiμj)Σj1(μiμj)logdet(Σj1Σi)k](3.4)

  • 根据定义,KL 散度是非对称的,因此不能当作一个度量使用,为了使其称为有效度量,对于任意分布 p i , p j p_i,p_j pi,pj,交互顺序计算两次 KL 散度,求和作为二者距离的度量,即
    D s y m ( p i , p j ) = D K L ( p i ∥ p j ) + D K L ( p j ∥ p i ) = 1 2 [ Tr ⁡ ( Σ j − 1 Σ i ) + Tr ⁡ ( Σ i − 1 Σ j ) ] + 1 2 [ ( μ i − μ j ) ⊤ Σ j − 1 ( μ i − μ j ) + ( μ j − μ i ) ⊤ Σ i − 1 ( μ j − μ i ) ] − 1 2 [ logdet ⁡ ( Σ j − 1 Σ i ) + log ⁡ det ⁡ ( Σ i − 1 Σ j ) ] − k = 1 2 [ Tr ⁡ ( Σ j − 1 Σ i ) + Tr ⁡ ( Σ i − 1 Σ j ) ] + 1 2 ( μ i − μ j ) ⊤ ( Σ j − 1 + Σ i − 1 ) ( μ i − μ j ) − k (3.5) \begin{aligned} D_{sym}(p_i, p_j) &= D_{KL}(p_i\| p_j) + D_{KL}(p_j\| p_i) \\ &= \frac{1}{2}\left[\operatorname{Tr}\left(\Sigma_{j}^{-1} \Sigma_{i}\right)+\operatorname{Tr}\left(\Sigma_{i}^{-1} \Sigma_{j}\right)\right] \\ &\quad\quad\quad +\frac{1}{2}\left[\left(\mu_{i}-\mu_{j}\right)^{\top} \Sigma_{j}^{-1}\left(\mu_{i}-\mu_{j}\right)+\left(\mu_{j}-\mu_{i}\right)^{\top} \Sigma_{i}^{-1}\left(\mu_{j}-\mu_{i}\right)\right] \\ &\quad\quad\quad -\frac{1}{2}\left[\operatorname{logdet}\left(\Sigma_{j}^{-1} \Sigma_{i}\right)+\log \operatorname{det}\left(\Sigma_{i}^{-1} \Sigma_{j}\right)\right]-k \\ &=\frac{1}{2}\left[\operatorname{Tr}\left(\Sigma_{j}^{-1} \Sigma_{i}\right)+\operatorname{Tr}\left(\Sigma_{i}^{-1} \Sigma_{j}\right)\right] + \frac{1}{2}\left(\mu_{i}-\mu_{j}\right)^{\top}(\Sigma_{j}^{-1} + \Sigma_{i}^{-1}) \left(\mu_{i}-\mu_{j}\right) -k \end{aligned} \tag{3.5} Dsym(pi,pj)=DKL(pipj)+DKL(pjpi)=21[Tr(Σj1Σi)+Tr(Σi1Σj)]+21[(μiμj)Σj1(μiμj)+(μjμi)Σi1(μjμi)]21[logdet(Σj1Σi)+logdet(Σi1Σj)]k=21[Tr(Σj1Σi)+Tr(Σi1Σj)]+21(μiμj)(Σj1+Σi1)(μiμj)k(3.5)

4 总结

  • 最后,把结论式 (2.4) 和 (3.5) 回带第0节的优化目标中,引入优化协调系数 α ∈ [ 0 , 1 ] \alpha\in [0,1] α[0,1],我们要最大化
    max ⁡ J = max ⁡   ( 1 − α ) ∑ i = 1 n − H p i + α ∑ i ≠ j D s y m ( p i , p j ) = max ⁡   ( α − 1 ) ∑ i = 1 n H p i + α ∑ i ≠ j D s y m ( p i , p j ) = max ⁡   ( α − 1 ) ∑ i = 1 n ( k 2 ( 1 + log ⁡ 2 π ) + 1 2 log ⁡ det ⁡ ( Σ i ) ) + α ∑ i ≠ j ( 1 2 [ Tr ⁡ ( Σ j − 1 Σ i ) + Tr ⁡ ( Σ i − 1 Σ j ) ] + 1 2 ( μ i − μ j ) ⊤ ( Σ j − 1 + Σ i − 1 ) ( μ i − μ j ) − k ) = max ⁡   ( α − 1 ) ∑ i = 1 n log ⁡ det ⁡ ( Σ i ) + α ∑ i ≠ j ( [ Tr ⁡ ( Σ j − 1 Σ i ) + Tr ⁡ ( Σ i − 1 Σ j ) ] + ( μ i − μ j ) ⊤ ( Σ j − 1 + Σ i − 1 ) ( μ i − μ j ) ) (4.1) \begin{aligned} \max\mathcal{J} &= \max \space (1-\alpha) \sum_{i=1}^n -\mathcal{H}_{p_i} + \alpha \sum_{i\neq j} D_{sym}(p_i, p_j) \\ &= \max \space (\alpha-1) \sum_{i=1}^n \mathcal{H}_{p_i} + \alpha \sum_{i\neq j} D_{sym}(p_i, p_j) \\ &= \max \space (\alpha-1) \sum_{i=1}^n \left(\frac{k}{2}(1+\log 2 \pi)+\frac{1}{2} \log \operatorname{det}(\boldsymbol{\Sigma_i})\right) + \\ &\quad\quad\quad\quad\quad\quad \alpha \sum_{i\neq j} \left(\frac{1}{2}\left[\operatorname{Tr}\left(\Sigma_{j}^{-1} \Sigma_{i}\right)+\operatorname{Tr}\left(\Sigma_{i}^{-1} \Sigma_{j}\right)\right] + \frac{1}{2}\left(\mu_{i}-\mu_{j}\right)^{\top}(\Sigma_{j}^{-1} + \Sigma_{i}^{-1}) \left(\mu_{i}-\mu_{j}\right) -k\right) \\ &= \max \space (\alpha-1)\sum_{i=1}^n \log \operatorname{det}(\boldsymbol{\Sigma_i}) + \alpha \sum_{i\neq j} \left(\left[\operatorname{Tr}\left(\Sigma_{j}^{-1} \Sigma_{i}\right)+\operatorname{Tr}\left(\Sigma_{i}^{-1} \Sigma_{j}\right)\right] +\left(\mu_{i}-\mu_{j}\right)^{\top}(\Sigma_{j}^{-1} + \Sigma_{i}^{-1}) \left(\mu_{i}-\mu_{j}\right) \right) \end{aligned} \tag{4.1} maxJ=max (1α)i=1nHpi+αi=jDsym(pi,pj)=max (α1)i=1nHpi+αi=jDsym(pi,pj)=max (α1)i=1n(2k(1+log2π)+21logdet(Σi))+αi=j(21[Tr(Σj1Σi)+Tr(Σi1Σj)]+21(μiμj)(Σj1+Σi1)(μiμj)k)=max (α1)i=1nlogdet(Σi)+αi=j([Tr(Σj1Σi)+Tr(Σi1Σj)]+(μiμj)(Σj1+Σi1)(μiμj))(4.1)
    当任意第 i i i 类目标原始观测分布 p i p_i pi 为各项独立高斯分布时,有 Σ i \pmb{\Sigma}_i Σi 是对角矩阵,设为 Σ i = diag ( σ i 1 , σ i 2 , . . . , σ i k ) \pmb{\Sigma}_i = \text{diag} \left(\sigma_{i1}, \sigma_{i2},...,\sigma_{ik}\right) Σi=diag(σi1,σi2,...,σik),上式可表示为
    max ⁡ J = max ⁡   ( α − 1 ) ∑ i = 1 n ∑ d = 1 k log ⁡ σ i d + α ( ∑ i ≠ j ∑ d = 1 k ( σ i d σ j d + σ j d σ i d ) + ∑ i ≠ j ( μ i − μ j ) ⊤ ( Σ j − 1 + Σ i − 1 ) ( μ i − μ j ) ) (4.2) \begin{aligned} \max \mathcal{J} = \max \space &(\alpha-1) \sum_{i=1}^{n} \sum_{d=1}^{k} \log \sigma_{id}+\\ &\alpha\left(\sum_{i \neq j} \sum_{d=1}^{k}\left(\frac{\sigma_{i d}}{\sigma_{j d}}+\frac{\sigma_{j d}}{\sigma_{i d}}\right)+\sum_{i \neq j}\left(\mu_{i}-\mu_{j}\right)^{\top}\left(\Sigma_{j}^{-1}+\Sigma_{i}^{-1}\right)\left(\mu_{i}-\mu_{j}\right)\right) \end{aligned} \tag{4.2} maxJ=max (α1)i=1nd=1klogσid+α i=jd=1k(σjdσid+σidσjd)+i=j(μiμj)(Σj1+Σi1)(μiμj) (4.2)
  • 直观理解:
    1. ( α − 1 ) ∑ i = 1 n log ⁡ det ⁡ ( Σ i ) (\alpha-1) \sum_{i=1}^n \log \operatorname{det}(\boldsymbol{\Sigma_i}) (α1)i=1nlogdet(Σi):本项中 ( α − 1 ) < = 0 (\alpha-1)<=0 (α1)<=0,故此处希望每个分布 p i p_i pi 的协方差矩阵行列式尽量小。协方差矩阵行列式的值反映了数据分布的总体不确定性,行列式越小,表示数据在各个维度上的分布越集中
    2. α ∑ i ≠ j ( Tr ⁡ ( Σ j − 1 Σ i ) + Tr ⁡ ( Σ i − 1 Σ j ) ) \alpha\sum_{i\neq j} \left(\operatorname{Tr}\left(\Sigma_{j}^{-1} \Sigma_{i}\right)+\operatorname{Tr}\left(\Sigma_{i}^{-1} \Sigma_{j}\right)\right) αi=j(Tr(Σj1Σi)+Tr(Σi1Σj)) :矩阵的迹等于矩阵特征值之和,特征值代表线性变换对空间的拉伸程度,因此迹反映了线性变换对空间的拉伸和压缩的总量 Σ j − 1 Σ i \Sigma_{j}^{-1} \Sigma_{i} Σj1Σi 可以看作对空间连续施加两个线性变换, Σ j = Σ i \Sigma_{j}=\Sigma_{i} Σj=Σi 时对空间没有变换,此项取得最小,反之二者对空间每一维度拉伸和压缩程度差异越大(特征值比例越大)时,此项越大。故此项意味着不同分布的散布特性应尽量不同
    3. α ∑ i ≠ j ( ( μ i − μ j ) ⊤ ( Σ j − 1 + Σ i − 1 ) ( μ i − μ j ) ) \alpha\sum_{i\neq j} \left(\left(\mu_{i}-\mu_{j}\right)^{\top}(\Sigma_{j}^{-1} + \Sigma_{i}^{-1}) \left(\mu_{i}-\mu_{j}\right)\right) αi=j((μiμj)(Σj1+Σi1)(μiμj)):本项表示均值向量之间的差异,权重由协方差矩阵的逆矩阵决定。它衡量了均值向量之间的方差加权距离

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

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

相关文章

【ESP32CAM+Android+C#上位机】ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输

前言: 本项目实现ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输。本项目包含有ESP32源码(arduino)、Android手机APP源码以及C#上位机源码,本文对其工程项目的配置使用进行讲解。实战开发,亲测无误。 AP模式,就是ESP32发出一个WIFI/热点提供给电…

Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计

概述 Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计,探索 RISC-V Vector1.0 的前沿技术&#xff0c;选择嘉楠科技的 Canmv K230D Zero 开发板。这款创新的开发板是由嘉楠科技与香蕉派开源社区联合设计研发&#xff0c;搭载了先进的勘智 K230D 芯片。 K230…

RocketMQ: Producer与Consumer 最佳实践

Producer 1 &#xff09;发送消息注意事项 1.1 一个应用尽可能用一个 Topic&#xff0c;消息子类型用 tags 来标识&#xff0c;tags 可以由应用自由设置。只有发送消息设置了tags&#xff0c;消费方在订阅消息时&#xff0c;才可以利用 tags 在 broker 做消息过滤 message.setT…

MCGSMCGS昆仑通态触摸屏

MCGS昆仑通态触摸屏应用实例详解 1目录设置 本案例讲了两个窗口的互相调用 创建工程 首先创建一个新工程 打开软件 McgsPro组态软件 菜单栏&#xff1a;文件&#xff1a;新建工程 打开工程设置窗口 HMI配置中应该是对应的不同型号的触摸屏&#xff0c; 选择一个类型&#x…

低温存储开关机问题

问题&#xff1a; 某消费电子产品在进行可靠性实验室&#xff0c;在低温-30C存储两个小时后&#xff0c;上电不开机。在常温25C时&#xff0c;开关机正常。 分析&#xff1a; 1、接串口抓log信息&#xff0c;从打印信息可以看出uboot可以起来&#xff0c;在跑kernel时&#x…

【JavaEE进阶】 JavaScript

本节⽬标 了解什么是JavaScript, 学习JavaScript的常⻅操作, 以及使⽤JQuery完成简单的⻚⾯元素操作. 一. 初识 JavaScript 1.JavaScript 是什么 JavaScript (简称 JS), 是⼀个脚本语⾔, 解释型或即时编译型的编程语⾔. 虽然它是作为开发Web⻚⾯的脚本语⾔⽽出名&#xff0c;…

蓝桥杯每日真题 - 第23天

题目&#xff1a;&#xff08;直线&#xff09; 题目描述&#xff08;12届 C&C B组C题&#xff09; 解题思路&#xff1a; 题目理解: 在平面直角坐标系中&#xff0c;从给定的点集中确定唯一的直线。 两点确定一条直线&#xff0c;判断两条直线是否相同&#xff0c;可通过…

战略思维:破解复杂世界的系统性智慧

在当今快速演变且错综复杂的时代背景下&#xff0c;战略思维已然成为个人、组织乃至国家在应对挑战和实现目标过程中的核心能力。它不仅是一种思考模式&#xff0c;更是一套系统且富有智慧的工具&#xff0c;助力我们在混沌的环境中精准定位方向、敏锐捕捉机遇。 一、目…

html+js实现图片的放大缩小等比缩放翻转,自动播放切换,顺逆时针旋转

效果图&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>图片预览</title><sty…

postgresql|数据库开发|python的psycopg2库按指定顺序批量执行SQL文件(可离线化部署)

一、 psycopg2简介 psycopg2库是python的一个可直接操作postgresql数据库的类库&#xff0c;是一个用于Python编程语言的PostgreSQL数据库适配器。它允许开发人员使用Python语言与PostgreSQL数据库进行交互和操作&#xff0c;不同于java&#xff0c;需要专用的一个驱动&#…

基于Java Springboot个人健康管理网站

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

论文概览 |《Journal of Urban Technology》2024 Vol.31 Issue.2

本次给大家整理的是《Journal of Urban Technology》杂志2024年第31卷第2期的论文的题目和摘要&#xff0c;一共包括6篇SCI论文&#xff01; 论文1 Aerial Video Surveillance in a Megacity: A Case Study in Santiago, Chile 大城市中的空中视频监控&#xff1a;智利圣地亚哥…

模型 I/O 与 LangChain 实践

模型 I/O 与 LangChain 实践 本文是《LangChain 实战课》第 4 节——模型 I/O&#xff1a;输入提示、调用模型、解析输出的一些学习笔记与总结。这篇文章将围绕模型 I/O 的基本概念、LangChain 提供的最佳实践以及如何通过 LangChain 实现高效的结构化数据处理展开。 什么是模…

【编译原理】词法、语法、语义实验流程内容梳理

编译原理实验有点难&#xff0c;但是加上ai的辅助就会很简单&#xff0c;下面梳理一下代码流程。 全代码在github仓库中&#xff0c;链接&#xff1a;NeiFeiTiii/CompilerOriginTest at Version2.0&#xff0c;感谢star一下 一、项目结构 关键内容就是里面的那几个.c和.h文件。…

uni-app 认识条件编译,了解多端部署

一. 前言 在使用 uni-app 进行跨平台开发的过程中&#xff0c;经常会遇到需要针对不同平台或不同环境进行条件编译的情况。条件编译是一种在编译过程中根据指定条件选择不同代码路径的技术&#xff0c;可以帮助我们在不同平台或环境下编写不同的代码&#xff0c;以适应不同的平…

使用ChatGPT生成和优化电子商务用户需求规格说明书

在电子商务项目开发中&#xff0c;用户需求规格说明书&#xff08;User Requirement Specification, URS&#xff09;是团队沟通与项目成功的基石。然而&#xff0c;面对复杂多变的需求&#xff0c;如何快速生成清晰、完整且具备说服力的文档&#xff1f;这正是AI工具的用武之地…

微信小程序包之加农炮游戏

微信小程序 - 气球射击游戏 项目简介 这是一个简单有趣的微信小程序射击游戏。玩家通过控制屏幕底部的加农炮&#xff0c;射击从上方降落的蓝色气球。游戏考验玩家的反应能力和瞄准技巧。 游戏规则 点击屏幕任意位置发射炮弹大炮会自动对准点击位置击中气球获得10分如果气球触…

JavaWeb——案例——tlias教学辅助系统

7.1.1. Restful 7.1.2. 统一响应结果 7.1.3. 开发流程 7.2. 部门管理 7.2.1. 查询部门-思路 7.2.2. 日志技巧 Slf4j可以替换private static Logger log LoggerFactory.getLogger(DeptController.class); 7.2.3. 删除部门-思路 7.2.4. 新增部门-思路 7.2.5. Controller优化 …

OSI七层模型和TCP/IP五层模型详细介绍

这里写目录标题 一.OSI含义二.OSI七层模型1.应用层2.表示层3.会话层4.传输层5.网络层6.数据链路层7.物理层 TCP/IP五层协议1.应用层2.运输层运行在TCP上的协议运行在UDP上的协议 3.网络层IP协议配套使用的协议 4.数据链路层 四.网络协议分层的好处 一.OSI含义 OSI即是开放式通…

云原生之运维监控实践-使用Prometheus与Grafana实现对MinIO服务的监测

背景 如果你要为应用程序构建规范或用户故事&#xff0c;那么务必先把应用程序每个组件的监控指标考虑进来&#xff0c;千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章&#xff0c;当…