机器学习笔记之配分函数(三)对比散度

news2024/11/16 7:35:46

机器学习笔记之配分函数——对比散度

引言

上一节介绍了随机最大似然(Stochastic Maximum Likelihood)求解最优模型参数的过程。本节将介绍对比散度(Constractive Divergence,CD)。

回顾:随机最大似然求解模型参数的过程

针对极大似然估计,使用梯度上升算法使模型参数 θ \theta θ逼近最优参数 θ ^ \hat {\theta} θ^
θ ^ = arg ⁡ max ⁡ θ log ⁡ ∏ i = 1 N P ( x ( i ) ; θ ) θ ( t + 1 ) ⇐ θ ( t ) + η ∇ θ L ( θ ) \begin{aligned} \hat \theta = \mathop{\arg\max}\limits_{\theta} \log \prod_{i=1}^N \mathcal P(x^{(i)};\theta) \\ \theta^{(t+1)} \Leftarrow \theta^{(t)} + \eta\nabla_{\theta} \mathcal L(\theta) \end{aligned} θ^=θargmaxlogi=1NP(x(i);θ)θ(t+1)θ(t)+ηθL(θ)

关于目标函数梯度 ∇ θ L ( θ ) \nabla_{\theta}\mathcal L(\theta) θL(θ)表示如下:
∇ θ L ( θ ) = E P d a t a [ ∇ θ log ⁡ P ^ ( x ( i ) ; θ ) ] − E P m o d e l [ ∇ θ log ⁡ P ^ ( X ; θ ) ] \nabla_{\theta}\mathcal L(\theta) = \mathbb E_{\mathcal P_{data}} \left[\nabla_{\theta} \log \hat \mathcal P(x^{(i)};\theta)\right] - \mathbb E_{\mathcal P_{model}} \left[\nabla_{\theta} \log \hat \mathcal P(\mathcal X;\theta)\right] θL(θ)=EPdata[θlogP^(x(i);θ)]EPmodel[θlogP^(X;θ)]
其中:

  • P d a t a \mathcal P_{data} Pdata表示真实分布,该分布是客观存在的,可以将样本集合 X \mathcal X X看作是从 P d a t a \mathcal P_{data} Pdata采出的 N N N个样本

  • P m o d e l \mathcal P_{model} Pmodel表示模型分布,它实际上是基于样本特征或者概率图结构假设出来的分布

  • E P d a t a [ ∇ θ log ⁡ P ^ ( x ( i ) ; θ ) ] \mathbb E_{\mathcal P_{data}} \left[\nabla_{\theta} \log \hat \mathcal P(x^{(i)};\theta)\right] EPdata[θlogP^(x(i);θ)]表示正相(Positive Phase),它本质上是基于 P d a t a \mathcal P_{data} Pdata期望结果。由于样本集合 X \mathcal X X的特征均是可观测的,因而正相的期望求解更加简单。如:批梯度下降法(Batch Gradient Descent);mini-Batch 梯度下降法

  • E P m o d e l [ ∇ θ log ⁡ P ^ ( X ; θ ) ] \mathbb E_{\mathcal P_{model}} \left[\nabla_{\theta} \log \hat \mathcal P(\mathcal X;\theta)\right] EPmodel[θlogP^(X;θ)]表示负相(Negative Phase)。负相难求解的原因在于:它不像 P d a t a \mathcal P_{data} Pdata是恒定不变的,并拥有 X \mathcal X X提供采样;我们假定的 P m o d e l \mathcal P_{model} Pmodel要逼近 P d a t a \mathcal P_{data} Pdata,但随着 P m o d e l \mathcal P_{model} Pmodel分布的变化,我们对它中间过程的分布一无所知

    因此,采用马尔可夫链蒙特卡洛方法(Markov Chain Monte Carlo Method)在梯度上升算法过程中,每一次迭代过程都需要对 P m o d e l \mathcal P_{model} Pmodel进行采样,从而近似计算负相结果。

最终,通过正相、负相的计算结果,联合更新模型参数 θ \theta θ的梯度方向,最终近似求解最优模型参数 θ ^ \hat\theta θ^

随机最大似然的缺陷

对于负相难求解问题,通常使用马尔可夫链蒙特卡洛方法进行分布近似,如吉布斯采样。根据吉布斯采样的要求,并不是直接从分布中采样出 M \mathcal M M个样本,而是基于坐标上升思想将分布收敛成平稳分布(Stationary Distribution)后,从平稳分布中进行采样。
基于吉布斯采样初始分布到平稳分布的收敛过程表示如下:
MCMC-平稳分布收敛过程

假设从 Step-1 \text{Step-1} Step-1开始,收敛至 Step-k \text{Step-k} Step-k后达到平稳分布,从 q ( q > k ) \text{q}(q >k) q(q>k)次迭代中进行采样,直到采出 M \mathcal M M个样本为止。
从初始状态收敛至平稳分布的过程称作‘混合时间’(Mixing Time).

回顾吉布斯采样的迭代过程,每一个 Step \text{Step} Step的执行过程是复杂的:

  • 需要基于每一维度进行采样,并且在采样过程中需要将其他所有维度固定(遍历过的、没遍历过的)
  • 直至所有维度均遍历一遍,一次 Step \text{Step} Step才算完成。

这种迭代过程是十分消耗时间的,关于上述采样方法,容错率是极低的。因为如果没有收敛至平稳分布的话,那么一个样本都采不出来
从而衍生出一种 以空间换时间 的采样方法,一次性使用若干条马尔可夫链进行采样。换句话说:哪条马尔可夫链达到平稳分布了,就从那条链中抽一个样本。这样采样容错率就很高,并且尽量满足每个样本均从不同的平稳分布中采样出来,保证了样本之间 相互独立
基于多条链的采样思路
这种采样方式的弊端自然是消耗更多的存储资源

吉布斯采样的缺陷与对比散度思想

即便是以空间换时间,这种采样结果可能依然很低效。其核心原因是:在每次吉布斯采样的初始 Step \text{Step} Step中,需要给定一个初始分布;这个初始分布可以是任意分布,通常会设置为简单分布。如均匀分布、高斯分布等。但如果要近似的 P m o d e l \mathcal P_{model} Pmodel分布过于复杂,导致吉布斯采样在迭代过程中混合时间很长,甚至是极难收敛至平稳分布

如何处理这种难收敛的问题:对比散度(Constractive Divergence)这种方法从初始分布入手。初始分布本质上是从任意分布中采集的样本点,而对比散度的朴素思想是与其从任意分布中进行采样,干脆直接采样一些优秀的样本点

什么样的样本点是优秀的样本点?自然是这些样本点作为初始分布后,能够 更快地收敛至平稳分布。而这里的平稳分布指的自然是 P m o d e l \mathcal P_{model} Pmodel。什么样的初始分布和 P m o d e l \mathcal P_{model} Pmodel相似呢?对比散度的思路是:将正相中 P d a t a \mathcal P_{data} Pdata采样的 M \mathcal M M个样本点直接作为负相采样的初始分布
既然要求解的 P m o d e l \mathcal P_{model} Pmodel最终是要逼近 P d a t a \mathcal P_{data} Pdata的,直接用 P d a t a \mathcal P_{data} Pdata的样本,自然会加快 P m o d e l \mathcal P_{model} Pmodel的逼近速度。

这种方法被称为 CD-k \text{CD-k} CD-k,这里的 k k k自然表示吉布斯采样的步骤编号。这种方法的特点在于:我们并非一定要达到平稳分布后再执行采样,仅仅通过若干次迭代之后,即便没有达到平稳分布,也可以进行采样
CD-1 \text{CD-1} CD-1表示从第一次迭代结束后,直接进行采样。以此类推。

感性理解

  • 基于CD的朴素思想,初始分布的样本点 x ^ ( i ) ( i = 1 , 2 , ⋯   , M ) ∼ P d a t a \hat x^{(i)}(i=1,2,\cdots,\mathcal M) \sim \mathcal P_{data} x^(i)(i=1,2,,M)Pdata,在收敛至平稳分布的迭代过程中,它的本质就是将 P d a t a ⇒ P m o d e l \mathcal P_{data} \Rightarrow \mathcal P_{model} PdataPmodel方向上的过渡过程;在计算完梯度之后,最终还是要将 P m o d e l ⇒ P d a t a \mathcal P_{model} \Rightarrow \mathcal P_{data} PmodelPdata方向逼近。莫不如一开始采集出的样本与 P d a t a \mathcal P_{data} Pdata的关联度高,从而更快地将 P m o d e l \mathcal P_{model} Pmodel分布向 P d a t a \mathcal P_{data} Pdata分布方向‘牵引’。
  • 相反地,并不是一开始的 CD-0 \text{CD-0} CD-0就一定是最优的分布,即便是使用 P d a t a \mathcal P_{data} Pdata的采样结果作为初始分布,但依然需要‘在给定这些可见单元的隐藏单元条件分布上采样的马尔可夫链上进行[磨合]’(摘自《深度学习》(花书)373页).

对比散度名称的由来

K L \mathcal K\mathcal L KL散度的角度描述极大似然估计

回顾基于归一化后概率模型 P ( X ; θ ) \mathcal P(\mathcal X;\theta) P(X;θ)极大似然估计
加上一个系数 1 N \frac{1}{N} N1,并不影响最值的取值结果。
θ ^ = arg ⁡ max ⁡ θ log ⁡ ∏ i = 1 N P ( x ( i ) ; θ ) = arg ⁡ max ⁡ θ 1 N ∑ i = 1 N log ⁡ P ( x ( i ) ; θ ) \begin{aligned} \hat \theta & = \mathop{\arg\max}\limits_{\theta} \log \prod_{i=1}^N \mathcal P(x^{(i)};\theta) \\ & = \mathop{\arg\max}\limits_{\theta} \frac{1}{N}\sum_{i=1}^N \log \mathcal P(x^{(i)};\theta) \end{aligned} θ^=θargmaxlogi=1NP(x(i);θ)=θargmaxN1i=1NlogP(x(i);θ)
因而上述式子可写成期望形式

  • 再次强调,将 X = { x ( i ) } i = 1 N \mathcal X = \{x^{(i)}\}_{i=1}^N X={x(i)}i=1N视作真实分布 P d a t a \mathcal P_{data} Pdata中采集出的样本结果;而‘均值结果写作期望’在这里是蒙特卡洛方法的逆向表示。因为 P d a t a \mathcal P_{data} Pdata确实是‘无法精确得到的分布’。即便写成了期望形式,并不影响最优参数的求解。
  • P ( x ( i ) ; θ ) \mathcal P(x^{(i)};\theta) P(x(i);θ)实际上就是基于‘样本特征/概率图结构’假设的概率模型,因此将其写作 P m o d e l ( x ( i ) ; θ ) \mathcal P_{model}(x^{(i)};\theta) Pmodel(x(i);θ).
    1 N ∑ i = 1 N log ⁡ P ( x ( i ) ; θ ) ≈ E P d a t a [ log ⁡ P ( X ; θ ) ] θ ^ = arg ⁡ max ⁡ θ E P d a t a [ log ⁡ P m o d e l ( X ; θ ) ] \begin{aligned} \\ & \frac{1}{N}\sum_{i=1}^N \log \mathcal P(x^{(i)};\theta) \approx \mathbb E_{\mathcal P_{data}}[\log \mathcal P(\mathcal X;\theta)] \\ & \hat \theta = \mathop{\arg\max}\limits_{\theta} \mathbb E_{\mathcal P_{data}} \left[\log \mathcal P_{model}(\mathcal X;\theta)\right] \end{aligned} N1i=1NlogP(x(i);θ)EPdata[logP(X;θ)]θ^=θargmaxEPdata[logPmodel(X;θ)]

假设随机变量集合 X \mathcal X X连续型随机变量(观察方便起见),将上述式子描述为积分形式
P d a t a \mathcal P_{data} Pdata本身是客观存在的概率分布,和这里的模型参数 θ \theta θ无关。
θ ^ = arg ⁡ max ⁡ θ ∫ X P d a t a ( X ) log ⁡ P m o d e l ( X ; θ ) d X \hat \theta = \mathop{\arg\max}\limits_{\theta} \int_{\mathcal X} \mathcal P_{data}(\mathcal X) \log \mathcal P_{model}(\mathcal X;\theta) d\mathcal X θ^=θargmaxXPdata(X)logPmodel(X;θ)dX

将上述式子执行如下变换
在中括号中减去一个和 θ \theta θ无关的常量—— P d a t a ( X ) log ⁡ P d a t a ( X ) \mathcal P_{data}(\mathcal X) \log \mathcal P_{data}(\mathcal X) Pdata(X)logPdata(X),并不影响最优参数的求解
θ ^ = arg ⁡ max ⁡ θ ∫ X [ P d a t a ( X ) log ⁡ P m o d e l ( X ; θ ) − P d a t a ( X ) log ⁡ P d a t a ( X ) ] d X = arg ⁡ max ⁡ θ ∫ X P d a t a ( X ) ⋅ [ log ⁡ P m o d e l ( X ; θ ) − log ⁡ P d a t a ( X ) ] d X = arg ⁡ max ⁡ θ ∫ X P d a t a ( X ) ⋅ log ⁡ [ P m o d e l ( X ; θ ) P d a t a ( X ) ] d X \begin{aligned} \hat \theta & = \mathop{\arg\max}\limits_{\theta} \int_{\mathcal X} \left[P_{data}(\mathcal X) \log \mathcal P_{model}(\mathcal X;\theta) - \mathcal P_{data}(\mathcal X) \log \mathcal P_{data}(\mathcal X)\right] d\mathcal X \\ & = \mathop{\arg\max}\limits_{\theta} \int_{\mathcal X} \mathcal P_{data}(\mathcal X) \cdot \left[\log \mathcal P_{model}(\mathcal X;\theta) - \log \mathcal P_{data}(\mathcal X)\right] d\mathcal X \\ & = \mathop{\arg\max}\limits_{\theta} \int_{\mathcal X} \mathcal P_{data}(\mathcal X) \cdot \log \left[\frac{\mathcal P_{model}(\mathcal X;\theta)}{\mathcal P_{data}(\mathcal X)}\right] d\mathcal X \end{aligned} θ^=θargmaxX[Pdata(X)logPmodel(X;θ)Pdata(X)logPdata(X)]dX=θargmaxXPdata(X)[logPmodel(X;θ)logPdata(X)]dX=θargmaxXPdata(X)log[Pdata(X)Pmodel(X;θ)]dX
这明显是 K L \mathcal K\mathcal L KL散度的表示格式:
KL散度在EM算法,变分推断中最早提到过,本质上是描述两分布之间关联程度的一个量。其结果非负恒成立,当两分布相等时,KL散度等于0.
θ ^ = arg ⁡ max ⁡ θ { − K L [ P d a t a ( X ) ∣ ∣ P m o d e l ( X ; θ ) ] } = arg ⁡ min ⁡ θ { K L [ P d a t a ( X ) ∣ ∣ P m o d e l ( X ; θ ) ] } \begin{aligned} \hat \theta & = \mathop{\arg\max}\limits_{\theta} \left\{-\mathcal K \mathcal L \left[\mathcal P_{data}(\mathcal X) || \mathcal P_{model}(\mathcal X;\theta)\right]\right\} \\ & = \mathop{\arg\min}\limits_{\theta} \left\{\mathcal K \mathcal L \left[\mathcal P_{data}(\mathcal X) || \mathcal P_{model}(\mathcal X;\theta)\right]\right\} \end{aligned} θ^=θargmax{KL[Pdata(X)Pmodel(X;θ)]}=θargmin{KL[Pdata(X)Pmodel(X;θ)]}

这也是极大似然估计的另一角度逻辑:通过求解合适的模型参数 θ ^ \hat \theta θ^,使得真实分布 P d a t a ( X ) \mathcal P_{data}(\mathcal X) Pdata(X)与模型学习分布 P m o d e l ( X ; θ ) \mathcal P_{model}(\mathcal X;\theta) Pmodel(X;θ)之间的 K L \mathcal K\mathcal L KL散度达到最小
对原始基于概率模型 P ( X ; θ ) \mathcal P(\mathcal X;\theta) P(X;θ)的描述更加精进一步————对概率模型进行更精进的划分,并描述两种概率模型之间的逻辑关系。

对比散度的本质

上述关于 K L \mathcal K\mathcal L KL散度的描述适用于任意模型的极大似然估计。继续观察负相中的吉布斯采样过程描述方便,在粘一遍
对比散度思想的角度观察,初始化分布(Initialization)就是从 P d a t a \mathcal P_{data} Pdata中采集的样本,这里 记作 P 0 \mathcal P_0 P0(吉布斯采样第0步骤的分布结果);而经过相当多次的迭代后,其分布结果是平稳分布,即当前时刻的 P m o d e l \mathcal P_{model} Pmodel,这里 记作 P ∞ \mathcal P_{\infty} P(这里仅表示一个符号, ∞ \infty 表示相当多次的迭代后达到平稳分布)

关于极大似然估计,使用上述符号可表示为如下形式:
θ ^ = arg ⁡ min ⁡ θ { K L [ P d a t a ( X ) ∣ ∣ P m o d e l ( X ; θ ) ] } = arg ⁡ min ⁡ θ { K L [ P 0   ∣ ∣   P ∞ ] } \begin{aligned} \hat \theta & = \mathop{\arg\min}\limits_{\theta} \left\{\mathcal K \mathcal L \left[\mathcal P_{data}(\mathcal X) || \mathcal P_{model}(\mathcal X;\theta)\right]\right\} \\ & = \mathop{\arg\min}\limits_{\theta} \left\{\mathcal K\mathcal L [\mathcal P_0 \text{ }|| \text{ }\mathcal P_{\infty}]\right\} \end{aligned} θ^=θargmin{KL[Pdata(X)Pmodel(X;θ)]}=θargmin{KL[P0  P]}

同上,吉布斯采样的第1步,第2步,…,第 k k k步骤等等也可以表示为 P 1 , P 2 , ⋯   , P k , P k + 1 , ⋯ \mathcal P_1,\mathcal P_2,\cdots,\mathcal P_k,\mathcal P_{k+1},\cdots P1,P2,,Pk,Pk+1,

如果根据上述对比散度的思想:在吉布斯采样的第 k k k步进行采样,即便第 k k k步骤并不是平稳分布,这相当于 吉布斯采样只迭代了一部分,就直接进行采样使用了,此时的模型参数 θ \theta θ的优化问题表示如下:
θ ^ = arg ⁡ min ⁡ θ [ K L ( P 0   ∣ ∣   P ∞ ) − K L ( P k   ∣ ∣ P ∞ ) ] \hat \theta = \mathop{\arg\min}\limits_{\theta} \left[\mathcal K \mathcal L(\mathcal P_0 \text{ } || \text{ } \mathcal P_{\infty}) - \mathcal K\mathcal L (\mathcal P_k \text{ } || \mathcal P_{\infty})\right] θ^=θargmin[KL(P0  P)KL(Pk P)]

个人理解:

  • 可以将 K L ( P 0   ∣ ∣   P ∞ ) \mathcal K\mathcal L(\mathcal P_0 \text{ } || \text{ }\mathcal P_{\infty}) KL(P0  P)看作是 P d a t a , P m o d e l \mathcal P_{data},\mathcal P_{model} Pdata,Pmodel之间‘总差距’的一种量的表示;同理, K L ( P k   ∣ ∣   P ∞ ) \mathcal K\mathcal L(\mathcal P_{k} \text{ } || \text{ }\mathcal P_{\infty}) KL(Pk  P)表示吉布斯采样第k次迭代产生的分布 P k \mathcal P_k Pk P m o d e l \mathcal P_{model} Pmodel之间的差距。
  • 和原始的极大似然估计相比,这种‘对比散度’方式对差距的范围描述明显更小了————将 P k → P ∞ \mathcal P_{k} \to \mathcal P_{\infty} PkP的差距全部减掉了。
  • 而减掉的这一部分对于整个差距来说,比重是很小的。因为在吉布斯采样的迭代过程中,最开始的几步一定是‘更新较大的’————随着步骤的增加,最终‘磨合’成平稳分布 P m o d e l \mathcal P_{model} Pmodel。而更新较大的步骤能够带来较高的‘梯度’,从而使梯度上升过程中能够变化更快。

这里解释说明了《机器学习》(花书)P372页最下方的描述:“CD可以被理解为去掉了正确MCMC梯度更新中的最小项,这解释了偏差的由来。”

配分函数部分将介绍到这里,后续会将受限玻尔兹曼机的学习任务部分补上

相关参考:
3-What is Contrastive Divergence(对比散度)
4-Name of Contrastive Divergence(对比散度名字的由来)
深度学习(花书)——第18章 直面配分函数

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

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

相关文章

第十四届蓝桥杯集训——JavaC组第四篇——ASCII码表与Scanner扫描器

第十四届蓝桥杯集训——JavaC组第四篇——ASCII码表与Scanner扫描器 目录 第十四届蓝桥杯集训——JavaC组第四篇——ASCII码表与Scanner扫描器 ASCII码表 Scanner扫描器 1、Scanner含义 2、使用方法: next和nextLine的区别 next: nextLine&#…

微服务框架 SpringCloud微服务架构 23 搜索结果处理 23.2 分页

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构23 搜索结果处理23.2 分页23.2.1 分页23.2.2 深度分页问题23.2.3 深度分页…

Zookeeper常用命令大全之四字监控命令

文章目录四字监控命令0. 官方文档1. conf命令2. cons命令3. crst命令4. dump命令5. envi命令6. ruok命令7. stat命令8. srst命令9. wchs命令10. wchc命令(一般不用)11. wchp命令(一般不用)12. mntr命令四字监控命令 zookeeper支持某些特定的四字命令与其的交互。它们大多是查询…

自媒体短视频,如何起一个让人一看就记住的昵称?看一眼就知道你的定位

上一篇我们说了头像如何设置更吸引人,今天上午在我赢且力手小禾呈序里聊了一个好听好记的昵称应该是怎样的? 这是文字版,大家可以看一看。 昵称起名的方式无非几种: 职业加昵称,昵称加地点,昵称加领域&a…

全球数据集大全之mavenanalytics学习分析世界杯数据集

mavenanalytics数据集平台介绍 探索和下载由 Maven 讲师精心挑选的示例数据集。练习将您的数据分析和可视化技能应用于现实世界的数据,从航班延误和电影收视率到鲨鱼袭击和不明飞行物目击事件。 平台效果 是否支持下载 可以免费下载 https://www.mavenanalytics.io/data-p…

Java基于jsp大学生收支管理系统

随着计算机技术的飞速发展,计算机在系统管理中的应用越来越普及,利用计算机实现各个系统的管理显得越来越重要。随着人们消费水平的提高,消费量一直在加大 ,可是如何能够合理的管理和记录自己的消费方向是一个很大的问题&#xff…

深度学习炼丹-不平衡样本的处理

前言一,数据层面处理方法 1.1,数据扩充1.2,数据(重)采样 数据采样方法总结 1.3,类别平衡采样 二,算法(损失函数)层面处理方法 2.1,Focal Loss2.2,…

Akka 学习(三)Actor的基本使用

目录一 基本案例1.1 Java 版1.2 Scala版二 Actor的创建2.1 ActorRef2.2 Props2.3 ActorSelection三 Promise、Future和事件驱动的编程模型3.1 阻塞与事件驱动3.2 Future进行Actor响应3.2.1 Java版3.2.2 Scala 版3.2.3 总结3.3 成功处理3.4 失败处理3.5 恢复3.6 链式调用3.7 结果…

小程序开发工具怎么使用?

小程序开发工具怎么用? 小程序开发工具分两种: 一种是微信官方提供的微信开发者工具 这个需要从事代码行业,职业是程序员又或者对代码知识有一定程度的人,才能上手使用。 另一种是第三方小程序开发平台,提供的小程序开发工具 …

python环境、基础语法、几种常见的数据类型

文章目录前言一、基本知识介绍二、举例实操以及重要知识再现(列表、元组、集合、字典)前言 一、基本知识介绍 python基础 标准库与扩展库中的对象的导入与使用: import 模块名(as别名) import numpy as np from 模块名 import 对象名&#x…

程序人生:快来一起学习软件测试,一起月薪过万(测试理论基础学习)

测试基础 为什么要有测试呢?现在软件已经和人的生活息息相关了,所以保证软件的稳定很重要。但是所有开发出来的软件都是有缺陷的。包括代码错误,逻辑错误,设计不合理等。 测试的目的 测试的目的主要有四个点 1找到软件缺陷 2…

Flink SQL增量查询Hudi表

前言 前面总结了Spark SQL增量查询Hudi表和Hive增量查询Hudi表。最近项目上也有Flink SQL增量查询Hudi表的需求,正好学习总结一下。 官网文档 地址:https://hudi.apache.org/cn/docs/querying_data#incremental-query 参数 read.start-commit 增量查…

WWW2022 | 基于领域增强的图对比协同过滤方法+代码实践

嘿,记得给“机器学习与推荐算法”添加星标今天跟大家分享一篇将对比学习应用于图协同过滤方法的文章,该论文发表于WWW2022会议上。其主要思想是在图神经网络协同过滤方法上应用了两种领域类型的对比学习方法,分别是显式的结构领域和隐式的语义…

TGK-Planner-前后端路径规划(基于梯度的后端无约束优化)

高速移动无人机的在线路径规划一直是学界当前研究的难点,引起了大量机器人行业的研究人员与工程师的关注。然而无人机的计算资源有限,要在短时间内规划出一条安全可执行的路径,这就要求无人机的运动规划算法必须轻型而有效。本文将介绍一种无…

electron-vue中报错 Cannot use import statement outside a module解决方案(亲测有效!!!)

错误: Cannot use import statement outside a module(不能在模块之外使用导入语句)。 原因: 安装的某个依赖包里使用了import语法,因为我们打包输出的是commonjs规范,所以不识别import语法而导致报错。 可以从 .electron-vue/w…

PrimoBurnerSDK蓝光刻录工具开发工具包

PrimoBurnerSDK蓝光刻录工具开发工具包 PrimoBurnerSDK是一个CD、DVD和蓝光刻录工具开发工具包。它还提供了一个全面灵活的API,用于快速轻松地实现各种燃烧/翻录替代方案。 PrimoBurner SDK for.NET的强大功能: 自2003年以来一直在发展的广泛使用的老式发…

比机器人还智能的数字孪生地下停车场监管系统!

现在的停车场管理大多采用人工或智能收费系统,两种方式都有一个弊端就是无法直接知晓停车场内部信息。 车驶入停车场只能自行寻找停车位,工作人员也只有走进停车场才能知晓停车场内部情况,无可避免造成很多麻烦。 停车场智慧监管系统结合数…

期货开户交易操作技巧

期货交易的时候需要有一些操作技巧,以及要注意一些操作上常见的错误。 个人建议刚刚开始交易的投资者期货交易的投资者,一定要多看慢做,首先要摒弃做这个会一夜暴富的想法。抱着个想法来的往往都会折戟沉沙,一去不复返了。所以我…

基于springboot+mybatis+mysql+vue中学生成绩管理系统

基于springbootmybatismysqlvue中学生成绩管理系统一、系统介绍二、功能展示1.登陆2.用户管理(管理员)3.班主任信息管理(管理员)4.教师信息管理(管理员、班主任)5.学生信息管理(管理员)6.成绩信息管理(管理员、班主任、…

一个人,仅30天!开发一款3D竞技足球游戏!他究竟经历了些什么?

今天,晓衡向大家推荐一款Coco Store 优质 3D足球竞技游戏 资源《足球快斗》玩法介绍:游戏为 7V7 足球竞技类玩法。玩家控制本队的一个球员(脚下高亮圆圈显示的是玩家),其他球员和守门员为电脑AI控制,期间可…