捋一捋相关性运算,以及DTD和NLP中的应用
捋一捋相关性运算,以及DTD和NLP中的应用
- 相关性和相干性,有木有傻傻分不清
- 相关性
- 数字信号的相关运算
- 同维度信号的相关理解
- 相关--互相关--相干
- 回声消除过程如何套用这些知识
- 相关性/相干性检测在DT中的应用
- 参考
相关性和相干性,有木有傻傻分不清
这是容易混淆的两个概念,对应于英语分别是 correlation 和 coherence,原来英语也这么相似。翻阅了很多资料,给出的定义和描述也大同小异,但真的想一针见血的区分出来这两个概念,以至于看papers的时候不要脑子混浆浆的,那还要从频域的角度思考,相关性-correlation 应该理解为一种更为广泛的信号相似度评价指标,而相干性-coherence更加注重在某一个频率上两个信号相位的关系,即恒定相位差的两个同频信号(分量)具备相关(相干)性,所指的范围更加狭义了一些。也不知道这么理解靠谱不,严不严谨。具体到数字信号处理领域的话,我们评价时域信号的相似程度,往往用相关性来指示,有正相关,负相关或者不相关的说法,到了时域谱分析的时候,通常用相干性来评价某个子带频率是否相干。
相关性
Correlation in Psychology: Meaning, Types, Examples & coefficient这篇文章讲述了何为相关性,以及正相关、负相关和不相关的二维理解,引用它的图如下:
那具体到数字信号处理怎么来理解呢?你可以从x轴和y轴分别抽取一些点,这些点随着另外一些点有共性的正向或者反向生长。那么分别从两个值域中提取这些信号如果排列成一个队列,能否发现一些相关性的规律呢?这就提出了相关性检测的问题。
数字信号的相关运算
数字信号的相关性比较是一种计算两个序列相似性的数学方法。这里引申出来自相关和互相关,那么定义x和y两个(复数)序列的相关运算如下:
r x y ( L ) = ∑ n = − ∞ ∞ x ( n ) × y ∗ ( n + L ) r_{xy}(L)=\sum_{n=-\infty}^\infty x(n)\times y^*(n+L) rxy(L)=n=−∞∑∞x(n)×y∗(n+L)自相关 r x x ( L ) = ∑ n = − ∞ ∞ x ( n ) × x ∗ ( n + L ) r_{xx}(L)=\sum_{n=-\infty}^\infty x(n)\times x^*(n+L) rxx(L)=n=−∞∑∞x(n)×x∗(n+L)
自相关函数比较明显的看出当L=0时,会出现相关峰,而对于有限长序列这更加确认无疑,互相关的一种解释:两个(序列)函数如果具有相同周期分量的时候,它的极大值能体现这种周期性的分量(数(3)相关运算和卷积运算)。
同维度信号的相关理解
同维度信号可以理解为两组向量,在学习高维向量的相似度判定-距离产生了,美还在吗以及正交性,从內积开始到施密特正交化的时候我们可以用向量的办法来理解这种相关性计算,即这种相关是多维向量的内积,或者说一个向量到另一个向量的投影,如果内积为零,说明两个向量正交,即一点也不相关,如果内积越大说明两个向量有着千丝万缕的联系。这种联系就是高维空间的embedding,一般用夹角来表征:
s i m i l a r i t y c o s = c o s θ = a ⋅ b ∣ ∣ a ∣ ∣ ⋅ ∣ ∣ b ∣ ∣ = ∑ i = 1 n ( x i ∗ y i ) ∑ i = 1 n ( x i ) 2 ∗ ∑ i = 1 n ( y i ) 2 similarity_{cos}= cos\theta =\frac{a \cdot b}{||a|| \cdot ||b||}=\frac{\sum_{i=1}^n(x_i*y_i)}{\sqrt{\sum_{i=1}^n(x_i)^2}*\sqrt{\sum_{i=1}^n(y_i)^2}} similaritycos=cosθ=∣∣a∣∣⋅∣∣b∣∣a⋅b=∑i=1n(xi)2∗∑i=1n(yi)2∑i=1n(xi∗yi)这种归一化的相关性使得结果有了清晰的值域,+1为PositiveCorrelation,-1为NegativeCorrelation,0为NoCorrelation(待考证)。相关性运算结果能给出一个比较清晰的映射了。
相关–互相关–相干
实际应用中,自相关是理想主义者,用不到。互相关才是实用主义者,任何两片雪花都不会一模一样,任何一个源信息,经过传播后都会发生变化,令人无法再看出他们是不是兄弟姐妹,或者谁先谁后。相关性的判断能最大可能的告诉你这组序列的前世今生有何关联。而互相关从理论上很难得出相似度为1的结果,一个不大不小的值往往很令人迷惑,这时候就可以跑到频域去看看相干性的一些特性,进而对参与比较的信号有更深的认识。直观的理解可以先看下一个网站4.3.9 Coherence and Correlation,引用上面的定义
Coherence measures the degree of linear dependency of two signals by testing for similar frequency components. If two signals correspond to each other perfectly at a given frequency, the magnitude of coherence is 1. If they are totally unrelated coherence will be 0.Correlation is another measure of the relationship between two signals. A correlation coefficient is used to evaluate similarity. If two signals have a high degree of similarity, the magnitude of the computed correlation coefficient is large. If there is little or no linear relationship between two signals, the magnitude of the coefficient is small.
我觉得说的比较清晰。相关性计算可以理解为一种内积或者归一化的cos相似度判断,相干性的数学表达又是什么呢?我们跟随18. Cross-Spectra and Coherence的推导尝试了解 一下。一般通用的线性系统表达为: y m = ∑ − ∞ ∞ h k x m − k + n m y_m=\sum_{-\infty}^{\infty}h_k x_{m-k}+n_m ym=−∞∑∞hkxm−k+nm简化处理,我们只用傅里叶变换的方式把时域搬到频域来看看(卷积变相乘的性质), y ( ω ) = h ( ω ) x ( ω ) + n ( ω ) y(\omega)=h(\omega)x(\omega)+n(\omega) y(ω)=h(ω)x(ω)+n(ω)等式两测同时乘以 x ∗ ( ω ) x^*(\omega) x∗(ω),则有 y ( ω ) x ∗ ( ω ) = h ( ω ) x ( ω ) x ∗ ( ω ) + n ( ω ) x ∗ ( ω ) y(\omega)x^*(\omega)=h(\omega)x(\omega)x^*(\omega)+n(\omega)x^*(\omega) y(ω)x∗(ω)=h(ω)x(ω)x∗(ω)+n(ω)x∗(ω),定义 Φ y x ( ω ) = y ( ω ) x ∗ ( ω ) \Phi_{yx}(\omega)=y(\omega)x^*(\omega) Φyx(ω)=y(ω)x∗(ω), Φ x x ( ω ) = x ( ω ) x ∗ ( ω ) \Phi_{xx}(\omega)=x(\omega)x^*(\omega) Φxx(ω)=x(ω)x∗(ω),另外大胆假设噪声和输入信号的正交性,则可以忽略最后一项,则有: Φ y x ( ω ) = h ( ω ) Φ x x ( ω ) \Phi_{yx}(\omega)=h(\omega)\Phi_{xx}(\omega) Φyx(ω)=h(ω)Φxx(ω)这样我们得到频域响应函数的另外一种表达: h ( ω ) = Φ y x ( ω ) Φ x x ( ω ) h(\omega)=\frac{\Phi_{yx}(\omega)}{\Phi_{xx}(\omega)} h(ω)=Φxx(ω)Φyx(ω)如果此时定义 C y x ( ω ) = Φ y x ( ω ) Φ y y ( ω ) Φ x x ( ω ) C_{yx}(\omega)=\frac{\Phi_{yx}(\omega)}{\sqrt{\Phi_{yy}(\omega)\Phi_{xx}(\omega)}} Cyx(ω)=Φyy(ω)Φxx(ω)Φyx(ω)那么可以得到频响的另一种表达: h ( ω ) = C y x ( ω ) Φ y y ( ω ) Φ x x ( ω ) h(\omega)=C_{yx}(\omega)\sqrt{\frac{\Phi_{yy}(\omega)}{\Phi_{xx}(\omega)}} h(ω)=Cyx(ω)Φxx(ω)Φyy(ω)这个等式的开根号自功率谱是实数,所以频响的相位特征有 C y x C_{yx} Cyx所表达,我们定义这个 C y x C_{yx} Cyx为相干性指标。我们观察一下它的特性,令 y ( ω ) = h ( ω ) x ( ω ) + n ( ω ) y(\omega)=h(\omega)x(\omega)+n(\omega) y(ω)=h(ω)x(ω)+n(ω)等式两测同时乘以 y ∗ ( ω ) y^*(\omega) y∗(ω),可以推导出下面的式子: Φ y y ( ω ) = ∣ h ( ω ) ∣ 2 Φ x x ( ω ) + Φ n n ( ω ) \Phi_{yy}(\omega)=|h(\omega)|^2\Phi_{xx}(\omega)+\Phi_{nn}(\omega) Φyy(ω)=∣h(ω)∣2Φxx(ω)+Φnn(ω)替换 C y x C_{yx} Cyx,则有 Φ y y ( ω ) = ∣ C y x ( ω ) Φ y y ( ω ) Φ x x ( ω ) ∣ 2 Φ x x ( ω ) + Φ n n ( ω ) = ∣ C y x ∣ 2 Φ y y ( ω ) + Φ n n ( ω ) \Phi_{yy}(\omega)=|C_{yx}(\omega)\sqrt{\frac{\Phi_{yy}(\omega)}{\Phi_{xx}(\omega)}}|^2\Phi_{xx}(\omega)+\Phi_{nn}(\omega)=|C_{yx}|^2\Phi_{yy}(\omega)+\Phi_{nn}(\omega) Φyy(ω)=∣Cyx(ω)Φxx(ω)Φyy(ω)∣2Φxx(ω)+Φnn(ω)=∣Cyx∣2Φyy(ω)+Φnn(ω)换个写法: Φ y y ( ω ) ( 1 − ∣ C y x ∣ 2 ) = Φ n n ( ω ) \Phi_{yy}(\omega)(1-|C_{yx}|^2)=\Phi_{nn}(\omega) Φyy(ω)(1−∣Cyx∣2)=Φnn(ω), ( 1 − ∣ C y x ∣ 2 ) (1-|C_{yx}|^2) (1−∣Cyx∣2)定义为不相关功率,即如果 ∣ C y x ∣ = 1 |C_{yx}|=1 ∣Cyx∣=1, y n y_n yn可以有 x n x_n xn完美计算出来。即: Φ y y ( ω ) ( ∣ C y x ∣ 2 ) = ∣ h ( ω ) ∣ 2 Φ x x ( ω ) \Phi_{yy}(\omega)(|C_{yx}|^2)=|h(\omega)|^2\Phi_{xx}(\omega) Φyy(ω)(∣Cyx∣2)=∣h(ω)∣2Φxx(ω)以上是关于相干性的数学推导,需要提到的是这些参数大部分只是理想的计算,真正的系统都是测试观察获得的,所以带入到这些公式里,我们只能称作估计"estimation"。
回声消除过程如何套用这些知识
下图是一张典型的回声消除框架图
我们把它复制一份,通过DFT(STFT)过程变换到频域,那么左侧的内积,卷积,相关运算都可以理解为寻找相关性。右侧频域的谱估计过程可以理解为寻找相干性。不失一般性的胡说,且认为相关性是相干性的时域体验,相干性是相关性的频域分解吧。
相关性/相干性检测在DT中的应用
先回顾一下DoubleTalk算法,我找了一下百度通信中的自适应回波抵消以及相关技术及应用,觉得这段话写的很言简意赅,但这个网站有些…,只能截图发一下:
各种自适应滤波器总结 这个篇博客除了上述的两种方法,又总结了一种,即所谓的矢量夹角法,其实就是计算cos相似度, 这类有些频域相干性检测的意思了,可以对比着看看。国内的网文都比较经典(老旧),这段再找几个外部的文献看一看有什么花样能耍出来。由简入繁,先看一个比较简单的 A New Double-Talk Detection Algorithm Based on the Orthogonality Theorem,我看很多论文引用了它,而它的新奇思路是建立在滤波器收敛情况下,误差信号 e ( n ) e(n) e(n)和输入序列 X ⃗ ( n ) \vec{X}(n) X(n),即 E [ e ( n ) X ⃗ ( n ) ] = 0 E[e(n)\vec{X}(n)]=0 E[e(n)X(n)]=0同样双讲时,近端信号,包括噪声信号,同样应该和远端输入信号正交,则有: E [ ( e ′ ( n ) + v ( n ) + u ( n ) ) X ⃗ ( n ) ] = 0 E[(e^{'}(n)+v(n)+u(n))\vec{X}(n)]=0 E[(e′(n)+v(n)+u(n))X(n)]=0这里 e ′ ( n ) = y ( n ) − y ′ ( n ) e^{'}(n)=y(n)-y^{'}(n) e′(n)=y(n)−y′(n)基于这一系列假设,作者认为可以建立一种互相关运算,这种运算由于正交性的存在,不会对双讲敏感,而只对于回声路径的变化(有可能是双讲引入的?)敏感,所以这种检测不仅仅限于双讲检查,更加广义的涵盖了回声路径变化的鉴别,所以定义了这样一个相关检查过程:
P e 2 ( n ) = λ P e 2 ( n − 1 ) + ( 1 − λ ) e 2 ( n ) P i 2 ( n ) = λ P i 2 ( n − 1 ) + ( 1 − λ ) x 2 ( n − i ) P e , i ( n ) = λ P e , i ( n − 1 ) + ( 1 − λ ) e ( n ) x ( n − i ) C i ( n ) = P e , i ( n ) P e ( n ) P i ( n ) \begin{aligned} P_e^2(n)&=\lambda P_e^2(n-1)+(1-\lambda)e^2(n) \\ P_i^2(n)&=\lambda P_i^2(n-1)+(1-\lambda)x^2(n-i) \\ P_{e,i}(n)&=\lambda P_{e,i}(n-1)+(1-\lambda)e(n)x(n-i) \\ C_i(n) &= \frac{P_{e,i}(n)}{P_e(n)P_i(n)} \end{aligned} Pe2(n)Pi2(n)Pe,i(n)Ci(n)=λPe2(n−1)+(1−λ)e2(n)=λPi2(n−1)+(1−λ)x2(n−i)=λPe,i(n−1)+(1−λ)e(n)x(n−i)=Pe(n)Pi(n)Pe,i(n)
这最后一行的式子看着眼熟吧,有一个类似cos相似度的算法,不过它先平滑再计算确实有些不一样(虽然觉得怪)。上述四行是针对于一个采样点的,对一个block再取一个平均如下: A C C ( n ) = [ ∑ i = 0 N − 1 ∣ C i ( n ) ∣ ] N ACC(n)=\frac{\bigg [ \sum_{i=0}^{N-1}|C_i(n)|\bigg ]}{N} ACC(n)=N[∑i=0N−1∣Ci(n)∣]剩下的就是评估这个 A C C ACC ACC和设定门限和双讲来寻找规律了。这个是假设了时域的正交性来做的一个双讲判决,还有些新意。
再看一篇利用频域相干性的A Double-Talk Detector Based on Coherence,这篇在铺垫了一些预制条件后,提出了一种维纳滤波器的表达形式: F ( f ) = S y x 1 ( f ) S y y ( f ) = S x x ( f ) ∣ H ( f ) ∣ 2 S y y ( f ) F(f)=\frac{S_{yx_1}(f)}{S_{yy}(f)}=\frac{S_{xx}(f)|H(f)|^2}{S_{yy}(f)} F(f)=Syy(f)Syx1(f)=Syy(f)Sxx(f)∣H(f)∣2这里 S y x ( f ) = y ( f ) x ∗ ( f ) S_{yx}(f)=y(f)x^*(f) Syx(f)=y(f)x∗(f), S x x ( f ) = x ( f ) x ∗ ( f ) S_{xx}(f)=x(f)x^*(f) Sxx(f)=x(f)x∗(f),用于估计近端没有加入本地声音的远端传递函数 X 1 ( f ) = X ( f ) H ( f ) X_1(f)=X(f)H(f) X1(f)=X(f)H(f),而 y ( n ) = x 1 ( n ) + v ( n ) y(n)=x_1(n)+v(n) y(n)=x1(n)+v(n),当没有近端声音的时候,可以根据前面的推导认为 S y y ( f ) = S x x ( f ) ∣ H ( f ) ∣ 2 S_{yy}(f)=S_{xx}(f)|H(f)|^2 Syy(f)=Sxx(f)∣H(f)∣2,那么前式等于1了,意思没有双讲。接下来的推导有点懵,直接让 F ( f ) = ∣ S y x ( f ) ∣ 2 S x x ( f ) S y y ( f ) = γ y x ( f ) F(f)=\frac{|S_{yx}(f)|^2}{S_{xx}(f)S_{yy}(f)}=\gamma_{yx}(f) F(f)=Sxx(f)Syy(f)∣Syx(f)∣2=γyx(f)但结果我看懂了,这就是相干性的表达吗,然后设定一个 ξ \xi ξ作为判别式: ξ = 1 I + 1 ∑ i = 0 I γ y x ( f i ) \xi=\frac{1}{I+1}\sum_{i=0}^I\gamma_{yx}(f_i) ξ=I+11i=0∑Iγyx(fi)剩下的就是寻找一个门限 T T T,大于门限认为是单讲,小于门限认为是双讲(或者信道变化),为了提高频率频谱平滑度,还定义了所谓的多窗估计,升华了 S ^ y x ( f ) = 1 K ∑ k = 0 K − 1 c k y k ( f ) x k ∗ ( f ) \hat{S}_{yx}(f)=\frac{1}{K}\sum_{k=0}^{K-1}c_ky_k(f)x_k^*(f) S^yx(f)=K1k=0∑K−1ckyk(f)xk∗(f) S ^ x x ( f ) = 1 K ∑ k = 0 K − 1 c k ∣ x k ( f ) ∣ 2 \hat{S}_{xx}(f)=\frac{1}{K}\sum_{k=0}^{K-1}c_k|x_k(f)|^2 S^xx(f)=K1k=0∑K−1ck∣xk(f)∣2可得出多窗版本的估计: ξ ^ = 1 I + 1 ∑ i = 0 I γ ^ y x ( f i ) = 1 I + 1 ∑ i = 0 I ∣ S ^ y x ( f ) ∣ 2 S ^ x x ( f ) S ^ y y ( f ) \hat{\xi}=\frac{1}{I+1}\sum_{i=0}^I\hat\gamma_{yx}(f_i)=\frac{1}{I+1}\sum_{i=0}^I\frac{|\hat{S}_{yx}(f)|^2}{\hat{S}_{xx}(f)\hat{S}_{yy}(f)} ξ^=I+11i=0∑Iγ^yx(fi)=I+11i=0∑IS^xx(f)S^yy(f)∣S^yx(f)∣2后面还有分布统计和复杂的推导,没太看懂,从这个式子其实可以看出就是基于相干性的平滑估计,最终远端和近端在没有双讲的相干性能够明辨于双讲时刻的相干性,那么这个算法就算成功了。
参考
Intuitive explanation of coherence
18. Cross-Spectra and Coherence
Introduction to Time Series Analysis. Lecture 23.
相关文章:
捋一捋相关性运算,以及DTD和NLP中的应用
捋一捋相关性运算,以及DTD和NLP中的应用 相关性和相干性,有木有傻傻分不清相关性数字信号的相关运算同维度信号的相关理解 相关--互相关--相干 回声消除过程如何套用这些知识相关性/相干性检测在DT中的应用参考 相关性和相干性,有木有傻傻分不清 这是容易混淆的两个…...
Calcite Web 项目常见问题解决方案
Calcite Web 项目常见问题解决方案 calcite-web Authoritative front-end development resources for Calcite design initiative. Includes extendable base components and styles, as well as a modular and efficient framework for ArcGIS properties. [这里是图片001] 项…...
3090. 每个字符最多出现两次的最长子字符串
题目内容: 给你一个字符串 s ,请找出满足每个字符最多出现两次的最长子字符串,并返回该 子字符串 的 最大 长度。 示例 1: 输入: s "bcbbbcba" 输出: 4 解释: 以下子字符串长…...
基于微信小程序的短视频系统(SpringBoot)+文档
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...
Git的简介
文章目录 一.Git是什么二.核心概念三.工作流程四.Git的优势 下载Git 推荐官网下载 官网地址 一.Git是什么 Git是一个分布式版本控制系统,用于跟踪文件的变化并协调多人对同一项目的开发工作。它就像是一个时光机器,能够记录文件在不同时间点的状态&…...
【XR】ATW
异步时间扭曲(Asynchronous Timewarp,简称ATW)是一种在虚拟现实(VR)技术中使用的算法,它通过生成中间帧来减少因帧率不足导致的抖动和延迟,从而提高用户体验。ATW技术在两个线程中完成时间扭曲的…...
记Fastjson2的一个报ConcurrentModificationException的bug
错误背景:fastjson2的parseObject方法,在spring webflux项目中被调用,有时会报java.util.ConcurrentModificationException错误。报错处的代码如下图: 改了半天与并发安全相关的代码,还是会报此错误。后来改变思路搜…...
JAVAweb学习日记(二)JavaScript
一、概念 二、JavaScript引入方式 三、JavaScript书写语法 输出语句: 变量: 数据类型、运算符、流程控制语句: 数据类型: 运算符: 字符串如果是 数字字符构成,先把读到的数字转为数字类型,后续…...
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
文章目录 一、整个工程的流程二、基于Vivado的FPGA开发流程实践(二选一多路器)什么是二选一多路器用verilog语言,Vivado软件进行该电路实现1、设计输入:Design Sources中的代码2、分析和综合:分析设计输入中是否有错误…...
Linux的VIM基本操作
编辑模式转换 编辑指令 linux用vim编辑代码,再用gcc进行编译 编辑命令如下 gcc编译如下...
2024年12月英语六级CET6写作与翻译笔记
目录 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可行的目标 2 翻译 2.1 洋山港(Yangshan Port) 2.2 中国航天事业 2.3 北斗卫星导航系统 1 写作 1.1 大学为学生提供了探索各种可能性 1.2 自律在个人成长中的重要性 1.3 切实可…...
学习记录:electron主进程与渲染进程直接的通信示例【开箱即用】
electron主进程与渲染进程直接的通信示例 1. 背景: electronvue实现桌面应用开发 2.异步模式 2.1使用.send 和.on的方式 preload.js中代码示例: const { contextBridge, ipcRenderer} require(electron);// 暴露通信接口 contextBridge.exposeInMa…...
领域自适应
领域自适应(Domain Adaptation)是一种技术,用于将机器学习模型从一个数据分布(源域)迁移到另一个数据分布(目标域)。这在源数据和目标数据具有不同特征分布但任务相同的情况下特别有用。领域自适…...
Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)
KubeadmContainerd部署k8s(v1.28.2)集群(非高可用版) 文章目录 KubeadmContainerd部署k8s(v1.28.2)集群(非高可用版)一.环境准备1.服务器准备2.环境配置3.设置主机名4.修改国内镜像源地址5.配置时间同步6.配置内核转发及网桥过滤 …...
重温设计模式--职责链模式
文章目录 职责链模式的详细介绍C 代码示例C示例代码2 职责链模式的详细介绍 定义与概念 职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它旨在将请求的发送者和多个接收者解耦,让多个对象都有机会处理请求&a…...
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
一,简介 一般来说,公司有很多系统使用,为了实现统一的用户名管理和登录所有系统(如 GitLab、Harbor 等),并在员工离职时只需删除一个主账号即可实现权限清除,可以采用 单点登录 (SSO) 和 集中式…...
【Rust自学】5.1. 定义并实例化struct
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 5.1.1. 什么是struct struct的中文意思为结构体,它是一种自定义的数据类型,它允许程序为相关联的值命名和打包&am…...
vue-cli 5接入模块联邦 module federation
vue-cli 5接入模块联邦 module federation 模块联邦概念实现思路配置遇到的问题: 模块联邦概念 模块联邦由webpack 5最先推出的,让应用加载远程的代码模块来实现不同的Web应用共享代码片段.模块联邦分为两个角色,一个是生产者,一个是消费者.生产者暴露代码供消费者消费 (用一个…...
[前端]mac安装nvm(node.js)多版本管理
NVM功能简介 NVM(Node Version Manager)是一个用于管理多个Node.js版本的命令行工具,它允许开发者在同一台机器上安装、切换和卸载不同版本的Node.js,从而解决版本不兼容的问题。以下是NVM的一些主要功能和用途: 安装和…...
thinkphp8+layui分页
前端 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>demo</title><link href"//unpkg.com/layui2.9.20/dist/css/layui.css" rel"stylesheet"> </head> <…...
【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的?
【NLP高频面题 - Transformer篇】Transformer的位置编码是如何计算的? 重要性:★★★ NLP Github 项目: NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练、优化、部署和应用…...
VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
名人说:一点浩然气,千里快哉风。—— 苏轼《水调歌头》 创作者:Code_流苏(CSDN) 目录 一、Java开发环境搭建二、VScode下载及安装三、VSCode配置Java环境四、运行测试五、背景图设置 很高兴你打开了这篇博客,更多详细的安装教程&…...
计算机网络压缩版
计算机网络到现在零零散散也算过了三遍,一些协议大概了解,但总是模模糊糊的印象,现在把自己的整体认识总结一下,(本来想去起名叫《看这一篇就够了》,但是发现网上好的文章太多了,还是看这篇吧&a…...
大语言模型中的Agent;常见的Agent开发工具或框架
大语言模型中的Agent 大语言模型中的Agent是指以大语言模型为核心驱动,具有自主理解、感知、规划、记忆和使用工具等能力,能够自动化执行复杂任务的系统.以下是一些例子: AutoGPT:它相当于一个完整的工具包,可以为各种项目构建和运行自定义AI Agent。使用OpenAI的GPT-4和…...
设计模式-备忘录模式
背景 游戏角色恢复问题:角色有攻击力和防御力,在Boss站前保存攻击力和防御力,大战之后,攻击力和防御力下降,从备忘录恢复到大战前的状态。 传统思路: 一个游戏对象,对应一个保存状态对象。 …...
重温设计模式--状态模式
文章目录 状态模式(State Pattern)概述状态模式UML图作用:状态模式的结构环境(Context)类:抽象状态(State)类:具体状态(Concrete State)类&#x…...
道可云人工智能元宇宙每日资讯|2024(GIAC)智能视听大会在青岛举行
道可云元宇宙每日简报(2024年12月23日)讯,今日元宇宙新鲜事有: 2024(GIAC)智能视听大会在青岛举行 12月22日,2024(GIAC)智能视听大会在青岛举行。大会以“数字文化 智能…...
理解神经网络
神经网络是一种模拟人类大脑工作方式的计算模型,是深度学习和机器学习领域的基础。 基本原理 神经网络的基本原理是模拟人脑神经系统的功能,通过多个节点(也叫神经元)的连接和计算,实现非线性模型的组合和输出。每个…...
初学stm32 --- NVIC中断
目录 STM32 NVIC 中断优先级管理 NVIC_Type: ISER[8]: ICER[8]: ISPR[8]: ICPR[8]: IABR[8]: IP[240]: STM32 的中断分组: 中断优先级分组函数 NVIC_PriorityGroupConfig 中断初始化函…...
机器人角度参考方式
机器人的角度可以根据需求和系统设计来决定。通常情况下,机器人角度(如航向角或偏航角)有两种常见的参考方式: 参考开机时的 0:这是最常见的方式,机器人在开机时会将当前的方向作为 0(即参考方向…...
不同路径
不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径ÿ…...
WPS工具栏灰色怎么办
WPS离线不登录,开启工具栏等相关功能 当你在使用WPS的过程中,若因网络问题或其他特殊原因,导致无法登录使用WPS时,可根据以下步骤开启离线兼容模式,开启此模式后,可在未登录的状态下,激活并使用…...
js的节流与防抖方法封装
简介 节流(Throttling)和 防抖(Debouncing) 是防止频繁触发函数执行的两种技术,它们的目标都是减少函数的执行次数。 区别 防抖(Debouncing) :当用户停止触发事件后,经…...
深信服企业级数据备份与恢复系统(整机裸机恢复)
概述 深信服企业级数据备份与恢复系统可实现无需搭建目标环境,目标机可以是没有操作系统的物理主机或虚拟机,实现异构环境下的裸机恢复。 深信服企业级数据备份与恢复系统支持的多种连接恢复方式: 1. PXE连接恢复:PXE连接需要做…...
uniapp 微信小程序 页面部分截图实现
uniapp 微信小程序 页面部分截图实现 原理都是将页面元素画成canvas 然后将canvas转化为图片,问题是我页面里边本来就有一个canvas,ucharts图画的canvas我无法画出这块。 想了一晚上,既然canvas最后能转化为图片,那我直接…...
Sequelize ORM sql 语句工具
Sequelize ORM sql 语句工具 sequelize orm中文网 视频学习长乐未央 初始化配置 Sequelize orm 配置文章落日沉溺于海 在命令行中全局安装 npm i -g sequelize-clisequelize 执行需要匹配 mysql2 对应的依赖(安装 mysql2) npm i sequelize mysql2初始化…...
搭建Nacos注册中心
Nacos介绍 目前开源的注册中心框架有很多,国内比较常见的有: Eureka:Netflix公司出品,目前被集成在SpringCloud当中,一般用于Java应用 Nacos:Alibaba公司出品,目前被集成在SpringCloudAlibaba中…...
Linux 下SVN新手操作手册
下面来介绍Linux 下 SVN操作方法: 1、SVN的安装 Centos 7 安装Subversion sudo yum -y install subversion Ubuntu 安装Subversion sudo apt-get install subversion 自定义安装,官方地址:https://subversion.apache.org/ 2、SVN的使用…...
解释下什么是面向对象?面向对象和面向过程的区别?
看着很基础是吧,你还真不一定会 4-Java 中创建对象的几种方式? 1、使用new关键字,最常见的创建方式,通过调用类的构造方法(构造器)来创建对象。 2、使用反射,通过java的反射API可以动态的创建对…...
【CDN】快速了解CDN是什么?以及工作原理和应用场景
快速了解CDN是什么?以及工作原理和应用场景 一、什么是CDN?CDN相关的术语解释 二、CDN工作原理三、CDN与传统网站的区别四、CDN的作用和意义五、CDN的应用场景 一、什么是CDN? CDN英文全称Content Delivery Network,中文翻译即为内…...
【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
引言 在上一篇文章中,我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型,特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤,读…...
WPF+MVVM案例实战与特效(四十五)- 打造优雅交互:ListBox 的高级定制与行为触发(侧边菜单交互面板)
文章目录 1、引言2、案例效果3、案例实现1、依赖安装2、文件创建3、代码实现1、依赖引用与上下文2、个性化视觉效果:自定义 ItemContainerStyle3、页面样式与布局完整代码4、ViewModel 逻辑实现5、子界面代码:3、实现效果4、源代码获取5、总结1、引言 在WPF应用程序开发中,…...
Git进阶:本地或远程仓库如何回滚到之前的某个commit
在Git的使用过程中,我们经常会遇到需要回滚到之前某个commit的情况。无论是为了修复错误、撤销更改,还是为了重新组织代码,回滚到特定commit都是一个非常有用的技能。本文将介绍几种常用的回滚方法,帮助读者更好地掌握Git版本控制…...
Django 后端数据传给前端
Step 1 创建一个数据库 Step 2 在Django中点击数据库连接 Step 3 连接成功 Step 4 settings中找DATABASES Step 5 将数据库挂上面 将数据库引擎和数据库名改成自己的 Step 6 在_init_.py中加上数据库的支持语句 import pymysql pymysql.install_as_MySQLdb()Step7 简单创建两列…...
Docker 技术系列之安装多版本Mysql5.6和Mysql5.7
image 大家好,后面的就不是关于MAC专有的内容,基本是跟Java环境,基础技术方面有关。所以这个教程对于在linux系统还是macOS都是通用的,不用担心。 上一篇,我们安装好对应的Docker之后,感受到了它的便利。接…...
C# 范围判断函数
封装范围函数 public static class CommonUtil {/// <summary>/// 范围判断函数,检查给定的值是否在指定的最小值和最大值之间。/// 例如,可以用来判断当前日期是否在开始日期和结束日期之间。/// 该方法适用于任何实现了 IComparable 接口的类型…...
技术速递|使用 Dependabot 管理 .NET SDK 更新
作者:Jamie Magee - 高级软件工程师 排版:Alan Wang 保持 .NET SDK 版本的更新对于维护安全高效的应用程序至关重要。现在 Dependabot 可以在 global.json 中更新 .NET SDK 版本,这使您可以比以往更轻松地确保自己的应用程序始终运行最新的安…...
笔记本通过HDMI转VGA线连接戴尔显示器,wifi不可用或网速变慢
早上开开心心的来使用我的分屏显示器,结果winP开拓展,我的wifi就断掉了,琢磨了好一阵我以为是wifi的问题,发现不进行拓展,网络又好了,一上午就研究这个了,说是hdmi信号干扰了wifi信号啥的额&…...
Excel中match()函数
函数功能概述 MATCH 函数是 Excel 中用于在指定区域中查找特定值的位置的函数。它返回指定数值在指定数组区域中的位置。这个位置是相对于查找区域的相对位置,而不是绝对的单元格位置。语法结构 MATCH(lookup_value, lookup_array, match_type)lookup_value…...
ACl访问控制列表
ACL的原理 ACL也称为访问控制列表,主要有包过滤的功能,同时也是包过滤防火前的本质 其方式主要是定立规则,这些规则控制着数据包的允许或者通过 ACL的场景 如下图,在全网互通的情况下,控制特定的数据包走向 例如控…...