论文阅读笔记-Covariate Shift: A Review and Analysis on Classifiers
前言
标题:Covariate Shift: A Review and Analysis on Classifiers
原文链接:Link\
我们都知道在机器学习模型中,训练数据和测试数据是不同的阶段,并且,通常是是假定训练数据和测试数据点遵循相同的分布。但是实际上,模型的输入和输出的联合分布在训练数据和测试数据之间是不同的,这称为dataset shift。dataset shift的一种简单情况就是covariate shift,covariate shift仅输入分布发生变化,而在给定输入的输出条件分布保持不变。本文主要概述了现有covariate shift检测和自适应方法及其应用,同时基于包含合成数据和真实数据的四种数据集,提供了各种covariate shift自适应技术在分类算法上的实验效果分析。实验结果标明,使用Importance Reweighting(重要性重加权)方法和feature-dropping方法能够让机器学习模型在covariate shift问题的表现上有明显提高。
介绍
熟悉机器学习的小伙伴应该都知道,Supervised learning中涉及的步骤包括从真实来源收集数据,数据整合,数据转换,对已知数据进行训练和验证算法,最后将其应用于未知测试数据。所以为了提高这些Supervised learning算法的性能,数据质量起着重要作用。 可以基于各种角度来分析数据质量,例如数据复杂性,缺失值,噪声,数据不平衡,离群值,缩放值等。而在决定机器学习模型的性能中,起着重要作用的一种数据质量度量是dataset shift。它是下面提到的三种shifts的总称:
- Covariate Shift:Change in the independent variables
- Prior probability shift: Change in the target variable
- Concept Shift: Change in the relationship between the independent and the target variable
在假设测试和训练数据中存在的点或实例属于相同的特征空间和相同的分布的假设下,常用的机器学习模型可以很好地工作,但是,当分布发生变化时,需要使用新的训练数据从头开始重建基础统计模型。
Covariate Shift一词描述为学习阶段和泛化阶段之间(训练数据和测试数据)输入变量“ X”的分布变化。虽然Covariate Shift是dataset shifts中研究最多的shifts类型,但没有很合适的确切定义。比如在机器学习的角度来看,这种预测性建模通常称为transfer learning,也有一些相似的名称,但是概念上的差异很小,例如population drift,concept drift, dataset shift。以下是文献中存在的几种Covariate Shift定义:
- 令 x x x 为解释变量或协变量, q 1 ( x ) q_1(x) q1(x)是评估预测时的概率密度, q 0 ( x ) q_0(x) q0(x) 表示观察数据中的概率密度,则 q 0 ( x ) ≠ q 1 ( x ) q_0(x)\neq q_1(x) q0(x)=q1(x) 的情况称为分布的Covariate Shift。
- 产生特征向量 x x x 及其相关类别标签 y y y 的数据分布由于潜在变量 t t t 而变化,因此当 P ( y ∣ x , t 1 ) ≠ P ( y ∣ x , t 2 ) P(y|x,t_1)\neq P(y|x,t_2) P(y∣x,t1)=P(y∣x,t2) 时,可以说发生了Covariate Shift。
Covariate Shift检测和自适应算法
可以通过使用以下公式给出的重要性权重来消除因Covariate Shift而导致的预测误差:
W ( X ) = p t e s t ( X ) p t r a i n ( X ) (1) W(X)=\frac{p_{test}(X)}{p_{train}(X)} \tag{1} W(X)=ptrain(X)ptest(X)(1)
其中 p t e s t ( X ) p_{test}(X) ptest(X) 和 p t r a i n ( X ) p_{train}(X) ptrain(X) 分别是在测试和训练数据集中找到输入 X X X 的概率。公式(1)来自这样的直觉,即如果特定训练实例出现在测试集中的概率很高,则它必须获得更高的权重。 W ( X ) W(X) W(X) 给出每个训练输入点的重要性值,将其与这些点相乘将得出更准确的预测。但是,此值是先验未知的,因此需要从数据样本中估算其值,因此,接下来分别列出一些在该领域中引入的最重要的重要性估计方法。
Kernel Density Estimation (KDE)
KDE是一种非参数方法,用于获得随机变量的概率密度函数的近似值,公式(2)是高斯核方程,公式(3)是KDE的方程
K ( x , x ′ ) = e x p ( − ∣ ∣ x − x ′ ∣ ∣ 2 2 σ 2 ) (2) K(x,x^{'})=exp(\frac{-||x-x^{'}||^2}{2\sigma^2})\tag{2} K(x,x′)=exp(2σ2−∣∣x−x′∣∣2)(2) p ^ ( x ) = 1 n ( 2 π σ 2 ) d 2 ∑ i = 1 n K σ ( x − x i ) (3) \hat{p}(x)=\frac{1}{n(2\pi \sigma^2)^{\frac{d}{2}}}\sum_{i=1}^nK_{\sigma}(x-x_i)\tag{3} p^(x)=n(2πσ2)2d1i=1∑nKσ(x−xi)(3)
其中, x x x 和 x ′ x^{'} x′ 是两个内核样本, σ \sigma σ 是内核宽度。KDE给出的近似值的精度完全由上式中选定的 σ \sigma σ 值确定。 σ \sigma σ 的最佳值可以通过交叉验证获得,因此,训练和测试数据点可用于通过等式(2)分别获得 p ^ t e s t ( X ) \hat{p}_{test}(X) p^test(X) 和 p ^ t r a i n ( X ) \hat{p}_{train}(X) p^train(X) ,并且重要性可以估计为:
W ( X ) = p ^ t e s t ( X ) p ^ t r a i n ( X ) W(X)=\frac{\hat{p}_{test}(X)}{\hat{p}_{train}(X)} W(X)=p^train(X)p^test(X)
但是,上面讨论的方法受到维数的限制,而且支持可靠逼近所需的数据量通常随维数呈指数增长,这在数据样本数量有限的情况下非常复杂。因此,KDE无法用于高维数据,一种解决方法是直接找到 W ( X ) W(X) W(X) 而无需计算 p t e s t ( X ) p_{test}(X) ptest(X) 和 p t r a i n ( X ) p_{train}(X) ptrain(X) 。
Discriminative Learning
概率分类器也可以用来直接估计重要性,从训练集中提取的样本标记为 μ = 0 \mu = 0 μ=0,从测试集中提取的样本标记为 μ = 1 \mu = 1 μ=1。则概率密度可以表示为如下:
p t r ( X ) = p ( X ∣ μ = 0 ) a n d p t e ( X ) = p ( X ∣ μ = 1 ) p_{tr}(X)=p(X|\mu=0) \ and \ p_{te}(X)=p(X|\mu=1) ptr(X)=p(X∣μ=0) and pte(X)=p(X∣μ=1)
使用贝叶斯定理,重要性权重 W ( X ) W(X) W(X) 可写为:
W ( X ) = p t r p t e = p ( μ = 0 ) p ( μ = 1 ∣ X ) p ( μ = 1 ) p ( μ = 0 ∣ X ) W(X)=\frac{p_{tr}}{p_{te}}=\frac{p(\mu=0)p(\mu=1|X) }{p(\mu=1)p(\mu=0|X) } W(X)=pteptr=p(μ=1)p(μ=0∣X)p(μ=0)p(μ=1∣X)
其中 p ( μ = 0 ) p ( μ = 1 ) ≈ n t r n t e \frac{p(\mu=0)}{p(\mu=1)}\approx \frac{n_{tr}}{n_{te}} p(μ=1)p(μ=0)≈ntentr 可以容易得到。可以通过使用Logistic回归,随机森林,SVM等分类器区分 { x i } i = 1 n t r \{x_i\}_{i=1}^{n_{tr}} {xi}i=1ntr 和 { x j } j = 1 n t e \{x_j\}_{j=1}^{n_{te}} {xj}j=1nte 来近似估计概率 p ( μ ∣ X ) p(\mu|X) p(μ∣X)。在此还需要注意的是,可以将训练样本与测试样本分离的概率用作检测数据集中是否存在Covariate Shift的度量,在本文中称为判别测试。但是,训练这些模型有时会很耗时,因此,已经引入了有效的概率分类方法,例如LSPC (最小二乘概率分类器)和IWLSPC(结合了重要性加权LSPC和重要性重加权LSPC)。
Kernel Mean Matching
KMM直接能获得 W ( X ) W(X) W(X) 而无需计算 p t e s t ( X ) p_{test}(X) ptest(X) 和 p t r a i n ( X ) p_{train}(X) ptrain(X) ,KMM的基本思想是找到ܹ W ( X ) W(X) W(X) ,从而使再现核Hilbert(RKHS)空间中的训练点和测试点的方法接近。等式(2)中的高斯核是计算通用RKHS核的示例,并且已证明下式给出的优化问题的解给得出真实的重要性值:
m i n w i [ 1 2 ∑ i , i ′ = 1 n t r w i w i ′ K σ ( x i t r , x i ′ t r ) − s u m i = 1 n t r w i K i ] (4) min_{w_i}[\frac{1}{2}\sum_{i,i^{'}=1}^{n_{tr}}w_iw_{i^{'}}K_{\sigma(x_i^{tr},x_{i^{'}}^{tr})}-sum_{i=1}^{n_{tr}}w_iK_i]\tag{4} minwi[21i,i′=1∑ntrwiwi′Kσ(xitr,xi′tr)−sumi=1ntrwiKi](4)
其中, ( 1 n t r ) ∣ ∑ i = 1 n t r w i − n t r ≤ ϵ ∣ a n d 0 ≤ w 1 , w 2 , w 3 , . . . , w n t r ≤ B (\frac{1}{n_{tr}})|\sum_{i=1}^{n_{tr}}w_i-n_{tr}\leq \epsilon| \ and\ 0\leq w_1,w_2,w_3,...,w_{n_{tr}}\leq B (ntr1)∣∑i=1ntrwi−ntr≤ϵ∣ and 0≤w1,w2,w3,...,wntr≤B,且 K i = n t r n t e ∑ j = 1 n t e K σ ( x i t r , x j t e ) K_i=\frac{n_{tr}}{n_{te}}\sum_{j=1}^{n_{te}}K_\sigma(x_i^{tr},x_j^{te}) Ki=ntentr∑j=1nteKσ(xitr,xjte)
KMM的性能完全取决于调整参数 B B B, ϵ \epsilon ϵ 和 σ \sigma σ 的值,因此,诸如交叉验证之类的常规模型选择方法无法找到最佳值。KMM的一种变体解决方案是, σ \sigma σ 选择一个样本间的中值距离。实验证明KMM优于natural plug-in估算器
Kullback Leblier Importance Estimation Procedure(KLIEP)
通过交叉验证完成的算法(例如KMM)可能会因Covariate Shift下的偏差导致模型选择失败,因此在CV上使用了重要性加权版本IWCV(重要性加权交叉验证)。但是,在IWCV中,模型选择需要通过重要性估计步骤内的无监督学习来完成,这是一个主要缺点。KLEIP找到重要性估计 w ^ ( x ) \hat{w}(x) w^(x),以使以使真实测试输入密度 p t e ( x ) p_{te}(x) pte(x) 和 p ^ t e ( x ) \hat{p}_{te(x)} p^te(x) 之间的Kullback-Leibler方差最小,其中 p ^ t e ( x ) = w ^ ( x ) p t r ( x ) \hat{p}_{te(x)}=\hat{w}(x)p_{tr}(x) p^te(x)=w^(x)ptr(x),这样无需显式建模 p t e ( x ) p_{te}(x) pte(x) 和 p t r ( x ) p_{tr}(x) ptr(x) 即可完成此操作。
Least Squares Importance Fitting (LSIF), Unconstrained Least Squares Importance Fitting (uLSIF)
KLIEP使用Kullback-Leibler散度找出两个函数之间的密度差异,LSIF使用平方损失代替 w ^ ( x ) \hat{w}(x) w^(x)建模为KLIEP。交叉验证用于查找诸如正则化参数和内核宽度 σ \sigma σ 之类的调整参数的最佳值。但是,由于数字误差的累积,LSIF有时会给出错误的结果,为了解决这个问题,已经提出了一种近似形式的LSIF,称为uLSIF,它可以通过简单地求解线性方程组来进行解的计算,因此,uLSIF在数值上是稳定的。
Covariate Shift自适应实际应用
- 半监督speaker识别:与会话有关的变化,录音场景中的变化以及身体情感变化等
- 人脸识别判断年龄:由于环境中光照条件的变化,训练和测试数据倾向于具有不同的分布。
- 基于脑电图的脑机接口:脑信号的非平稳性质
- …
实验结果:分类算法的性能分析
实验中使用的数据集是一个数据集来自Kaggle仓库包含三个合成数据集,实验的分类算法如下:
- 线性判别分析
- K邻近算法
- 决策树分类器
- 朴素贝叶斯分类器
训练和测试数据为不同分布
- 处理技术:Discriminative Learning
实验用数据集(称为数据集-I)具有1000个训练样本和1000个测试样本,其中训练样本的分布是正态的,而测试样本的分布是二项式的,训练样本包含特征变量 X X X, Y Y Y。训练集是通过选择1000个遵循均匀分布且方差= 1和均值= 25(在下面的等式中表示为“data”)的随机样本而形成的:
X = 11 × d a t a − 6 (5a) X=11\times data-6\tag{5a} X=11×data−6(5a) Y = X 2 + 10 × X − 5 (5b) Y=X^2+10\times X -5\tag{5b} Y=X2+10×X−5(5b)
类似地,测试集由遵循二项式分布的1000个随机数组成,被选择的概率为 p = 0.8 p = 0.8 p=0.8,值的范围为1到20。特征 X X X, Y Y Y使用上式计算。 p ^ t e s t ( X ) \hat{p}_{test}(X) p^test(X) 和 p ^ t r a i n ( X ) \hat{p}_{train}(X) p^train(X) 的分布如下:
实验中,LDA,KNN和决策树分类器的准确性得分有所提高,而朴素贝叶斯分类器的准确性得分下降。
训练和测试数据不同的均指和方差
- 处理技术:KDE
第二个实验数据集(称为数据集-II)具有相同分布但均值和方差不同,训练和测试集分别有1000个样本,且训练和测试样本的分布都均匀。训练集包含两个特征 X X X, Y Y Y。将生成1000个均值为25和方差为1的随机值。类似地,创建具有正态分布的测试数据,并由 X X X, Y Y Y两列组成。选择了均值为80,方差为1的1000个随机数。 p ^ t e s t ( X ) \hat{p}_{test}(X) p^test(X) 和 p ^ t r a i n ( X ) \hat{p}_{train}(X) p^train(X) 的分布如下:
下表实验结果显示,所有分类算法的性能都有提高:
训练和测试数据具有相同的分布,且属性数量增加
- 处理技术:KLIEP
对于第三个实验,生成了两个具有正态分布的数据集。训练和测试集大约有500个样本和3个属性 X X X, Y Y Y和 Z Z Z,其中 X X X, Y Y Y是输入属性, Z Z Z是预测标签, Z Z Z的计算公式如下:
Z = s i n ( Y × π ) + X (6) Z=sin(Y\times \pi)+X\tag{6} Z=sin(Y×π)+X(6)
实验中,决策树分类器的性能提高约30%,其他三个分类器减少近20%。
真实数据
此实验的数据集是从Kaggle仓库中提取的“俄罗斯住房市场”数据集(Dataset-IV)进行的。
总结
机器学习算法的性能是将其用于现实世界场景中要考虑的重要因素, 它在很大程度上取决于数据集和数据的分布。当将诸如决策树或神经网络之类的机器学习模型在一个场景下训练并利用其来提高另一种场景下的泛化时,则发生的域自适应称为转移学习。但是在监督学习算法中,要确保模型在训练和测试场景中都能正常工作,重要的是要确保训练样本和测试样本的分布相同。
相关文章:

论文阅读笔记-Covariate Shift: A Review and Analysis on Classifiers
前言 标题:Covariate Shift: A Review and Analysis on Classifiers 原文链接:Link\ 我们都知道在机器学习模型中,训练数据和测试数据是不同的阶段,并且,通常是是假定训练数据和测试数据点遵循相同的分布。但是实际上&…...

基于SSM+VUE守护萌宠宠物网站JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解
源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储:…...

【在Linux世界中追寻伟大的One Piece】Socket编程TCP
目录 1 -> TCP socket API 2 -> V1 -Echo Server 2.1 -> 测试多个连接的情况 1 -> TCP socket API socket(): socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符。应用程序可以像读写文件一样用r…...
进入半导体行业需要具备哪些能力?
要进入半导体公司,尤其是从事工艺流程设计和制程优化的岗位,需要具备一定的跨学科背景。 以某公司招聘要求为例: **公司 招聘岗位:工艺工程师 该公司是一家从事半导体设备、工艺与材料研发、生产和销售的公司,面向…...

Nature重磅:AI化学家再升级!大幅提升实验效率,推动化学合成进入“智能化”新阶段
人工智能(AI)驱动的机器人,正在我们的生活中扮演着越来越重要的角色,而在化学合成实验室内,它们也在悄然改变着传统实验方式。 如今,科学家们在智能化学领域取得了新突破—— 来自英国利物浦大学的研究团…...

源代码泄漏怎么办?SDC沙盒成为破局利器
在数字化时代,源代码安全已成为企业关注的焦点。源代码的泄露不仅可能导致知识产权的损失,还可能被竞争对手利用,给企业带来巨大的经济损失和法律风险。因此,采取有效的源代码防泄漏措施至关重要。深信达的SDC沙盒防泄密软件&…...

【论文复现】基于图卷积网络的轻量化推荐模型
本文所涉及所有资源均在这里可获取。 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐、摄影的一位博主。 📗本文收录于论文复现系列,大家有兴趣的可以看一看…...

使用ssh-key免密登录服务器或免密连接git代码仓库网站
ssh登录服务器场景 假设有两台机器,分别是: 源机器:主机A(hostA),ip:198.168.0.1 目标机器:主机B(hostB),ip:192.168.0.2 ssh-key免…...

自由学习记录(19)
unity核心也算是看完了吧,但觉得的确是少了点东西,之后再看mvc框架,和网络开发,,感觉有必要想想主次顺序了,毕竟在明年的3月之前尽量让自己更有贴合需求的能力 先了解一些相关概念,不用看懂&am…...

Elasticsearch中时间字段格式用法详解
Elasticsearch中时间字段格式用法详解 攻城狮Jozz关注IP属地: 北京 2024.03.18 16:27:51字数 758阅读 2,571 Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。它提供了全文搜索、结构化搜索以及分析等功能,广泛…...

蓝桥杯-网络安全比赛题目-遗漏的压缩包
小蓝同学给你发来了他自己开发的网站链接, 他说他故意留下了一个压缩包文件,里面有网站的源代码, 他想考验一下你的网络安全技能。 (点击“下发赛题”后,你将得到一个http链接。如果该链接自动跳转到https,…...

ES海量数据插入如何优化性能?
2024年10月NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。百度文心快码总经理臧志分享了《AI原生研发新范式的实践与思考》,探讨了大模型赋能下的研发变革及如何在公司和行业中落地,AI原生研发新范式的内涵和推动经验。 …...

遥控救生圈,水上应急救援的新革命_鼎跃安全
水上事故发生后,时间就是生命。每一秒钟的延误,都可能增加溺水者失去生命的风险。传统的救援方式往往依赖人工迅速反应,但在大规模的紧急事件中,人工救援速度难以满足需求。而遥控救生圈的出现改变了这一切,它的作用在…...

【flask开启进程,前端内容图片化并转pdf-会议签到补充】
flask开启进程,前端内容图片化并转pdf-会议签到补充 flask及flask-socketio开启threading页面内容转图片转pdf流程前端主js代码内容转图片-browser端browser端的同步编程flask的主要功能route,def 总结 用到了pdf,来回数据转发和合成,担心flask卡顿,响应差,于是刚好看到threadi…...

Docker在CentOS上的安装与配置
前言 随着云计算和微服务架构的兴起,Docker作为一种轻量级的容器技术,已经成为现代软件开发和运维中的重要工具。本文旨在为初学者提供一份详尽的指南,帮助他们在CentOS系统上安装和配置Docker及相关组件,如Docker Compose和私有…...

【笔记】开关电源变压器设计 - 工作磁通的选择原则
变压器设计中有一个重要的输入参数,是选定电路工作的磁路参数。涉及到磁场的上下震荡最高幅度。如上图所示。磁场的方向有正负,所以如果电流在越过零点震荡,只考虑半周来和Bs或者Bmax比对即可。Bs,Bmax与特定材料有关。材料给出的最大Bmax,或…...

【VScode】如何在VSCode中配置Python开发环境:从零开始的完整指南
文章目录 前言软件准备软件安装1. 安装Python2. 检查Python是否安装成功3. 安装第三方包4. 安装VSCode 配置VSCode1. 安装Python插件2. 创建项目,配置工作区域3. 编写Python文件4. 配置Python编译设置5. 使用代码格式化工具yapf 更多文章结尾 前言 在当今的编程世界…...
Copy From 勇哥的机器视觉实验项目
形成一种有规划的学习模式,节省时间提升效率。 (一) 单相机标定 (1)halcon的标定助手 这个助手是常用工具,要注意的主要问题是 "品质问题","标定的精度"。 使用的标定板有两种类型,多种材质。选择时要配合灯光来选择材质。 例如玻璃标定板只适合背…...

在IDEA中使用Git
一、准备工作 这里我们使用 Gitee 做例子,使用 SSH 协议。看这个文章前最好看一下《》这个文章,了解一下 SSH。 1、生成秘钥对 首先要到 ~/.ssh 目录下进行操作,因为生成的公钥和私钥一般放在这个目录下,Windows 就是在用户目…...
分布式锁(防止同时操作同一条数据)实现分析
1. deleteLocked 方法: public R deleteLocked(String id, String username) {String examReportUserKey "examReportId_" id "_" username;stringRedisTemplate.delete(examReportUserKey);return R.ok(); } 功能:删除指定用户…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...