当前位置: 首页 > news >正文

【笔记】机器学习算法在异常网络流量监测中的应用

先从一些相对简单的综述类看起,顺便学学怎么写摘要相关工作的,边译边学

机器学习算法在异常网络流量监测中的应用

原文:Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms

Authors: Quôc Vo, Philippe Ea, Osman Salem, Ahmed Mehaoua

原文链接:Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms | IEEE Conference Publication | IEEE Xplore

Abstract

及早发现网络流量数据中的异常对于强大的网络安全至关重要。本研究调查了各种机器学习和深度学习模型在识别 NetFlow v9 流量中的异常模式方面的有效性。我们解决了数据预处理挑战,并探索了特征工程技术,以优化异常检测系统的性能。我们的研究根据准确性、曲线下面积 (AUC) 和计算效率等关键指标评估了几个模型的性能。结果突出了每种模型的优势和局限性,强调了平衡性能与实际部署可行性的重要性。随机森林成为最有效的模型,准确率为 93.8%,AUC 为 0.99。此外,它还展示了卓越的训练和测试时间,训练时间仅为 0.19 秒,每次预测仅需 0.23 微秒。相反,递归神经网络模型在训练效率和整体性能方面表现出局限性。通过对模型性能和计算考虑因素的细致分析,本研究有助于推进网络安全应用的异常检测技术。

关键词:异常检测、深度学习、逻辑回归、机器学习、朴素贝叶斯、网络流量、随机森林、递归神经网络。

Anomaly Detection, Deep Learning, Logistic Regression, Machine Learning, Naive Bayes, NetFlow Traffic, Random Forest, Recurrent Neural Network

关于AUC:模型评估指标 AUC 和 ROC,这是我看到的最透彻的讲解 (qq.com)

1 Introduce

网络流量异常检测的重要性balabala(略)

传统的异常检测方法是基于规则的,基于静态规则的系统比较死板,越来越难以满足不断变化的网络。机器学习 (ML) 技术已成为在 网络流量中自动检测异常或者恶意流量的强大工具,它利用数据中固有的模式和关系来区分正常和异常行为。

在本文中,介绍了使用多个 ML 模型对网络流量异常检测进行的全面研究。具体来说,我们旨在选择和比较三种广泛使用的传统 ML 算法:逻辑回归 (LR)朴素贝叶斯分类器 (NB)随机森林 (RF),以及深度学习 (DL) 算法递归神经网络 (RNN)。这些算法提供了多种异常检测方法,从概率模型到集成方法和深度学习架构。我们的研究旨在通过评估这些不同的 ML 模型在检测各种类型的网络异常(包括入侵尝试拒绝服务 (DoS) 攻击和内部威胁)方面的性能,为网络安全和异常检测领域做出贡献。通过广泛的实验和比较分析,我们试图确定每个模型在准确性、效率、可扩展性和可解释性方面的优势和劣势,从而为它们在不同网络环境中实际部署的适用性提供有价值的见解。通过利用广泛的数据集并采用相关的评估指标,包括准确率、精度、召回率、F1 分数和 AUC(曲线下面积),并考虑训练和测试持续时间,我们的目标是确定最有希望增强异常检测能力的算法。

本文的其余部分组织如下。第2部分回顾了异常检测和 ML 领域的相关工作。第3部分揭示了我们选择最有效异常检测算法的方法。在第4节中,我们介绍了我们的实验结果和分析,然后讨论了我们的发现。最后,第5节总结了本文的主要发现和未来研究的方向。

2 Related work

近年来,机器学习和深度学习技术在各个领域的使用激增。

这一部分主要概述了机器学习和深度学习在各个学科领域多样化的应用,并且重点关注了网络异常流量检测方面的应用。

Fosic 等人在Anomaly detection in netflow network traffic using supervised machine learning algorithms这篇文章中研究了不同的分类器在检测网络流量异常方面的有效性。通过在 UNSW-NB15 数据集上评估随机梯度下降 (SGD)、支持向量机(SVM)、K最近邻(KNN)、高斯朴素贝叶斯 (GNB)、决策树 (DT)、RF 和 AdaBoost (AB) 等算法,它确定了最佳参数和编码方法。鉴于数据集的分布不平衡,F1 分数和 AUC 等性能指标与标准指标一起使用。RF 分类器是最有效的,通过利用数据集的代表性子集,实现了 97.68% 的 F1 分数和 98.47% 的 AUC 分数。值得注意的是,这项研究比较了各种算法并选择了最适合 NetFlow 数据流的算法。此外,这篇文章还介绍了 ML 流程中的优化,探讨了数据比率、编码方法和特征缩减技术对 NetFlow 数据流的影响。

Pranto 等人在Performance of machine learning techniques in anomaly detection with basic feature selection strategy-a network intrusion detection system中提出了一种使用机器学习将来自网络入侵检测系统 (NIDS)的传入网络流量分类为正常或异常的方法。使用 NSL-KDD 数据集评估了几个分类器,包括 KNN、DT、NB、LR、RF 及其集成方法。为了简化计算复杂性和数据集维度,采用了一种基本的特征选择策略。达到的最高准确率为 99.5%,误报率为 0.6%。

Biswas 等人在 Anomaly detection using ensemble random forest in wireless sensor network中提出了一种用于无线传感器网络 (WSN) 异常检测的集合射频 (ERF)。该集成将 DT、 NB 和 KNN 作为基本学习器,并在 RF 构造采样期间采用 bootstrapping。为了评估 ERF 的有效性,使用了来自基于多传感器数据融合 (AReM) 数据集的活动识别的真实传感器数据。作者采用了各种性能指标,包括准确性、灵敏度、特异性、精度、召回率、F 度量和 G 平均值,以证明 ERF 优于其单个基本学习者。

Manimurugan 等人在Iot-fog-cloud model for anomaly detection using improved naïve bayes and principal component analysis中集成了云计算和雾计算的功能,用于强大的智慧城市基础设施。他们提出的方法利用了云和雾计算的优势:云存储用于海量数据,雾计算用于本地化、实时的服务交付。此外,还引入了改进的 NB (INB) 分类器,结合了主成分分析 (PCA) 用于特征提取。利用 UNSW-NB15 数据集,这种基于 PCA 的特征工程和 INB 分类实现了惊人的 92.4% 准确率和 95.35% 的检出率,显著增强了物联网网络的异常检测能力。

由于 IoT 设备和服务的激增,管理网络安全变得更具挑战性。深度学习技术在 NIDS 中广泛用于识别恶意流量,具有长短期记忆 (LSTM)、双向 LSTM (BiLSTM) 和门控循环单元 (GRU) 等 RNN 变体。Ullah 等人在Design and development of rnn anomaly detection model for iot networks中介绍了一种用于物联网网络异常检测的新型 DL 方法,该方法利用 LSTM、BiLSTM 和 GRU 变体以及混合 CNN-RNN 模型。使用包括 NSL-KDD、BoT IoT、IoT-NI、IoT-23、MQTT、MQTTset 和 IoT-DS2 恶魔在内的数据集进行评估,与现有实施相比,在准确性、精度、召回率和 F1 分数方面具有卓越的性能。

Hooshmand 等人在Network anomaly detection using deep learning techniques中提出了一种使用卷积神经网络 (CNN) 解决网络异常的新方法,CNN 是 ML 和计算机视觉中一种成熟的架构。具体来说,作者提出了一个为这项任务量身定制的一维 CNN 模型。最初,网络流量数据分为 TCP、UDP 和其他协议。随后,每个类别都经过独立处理。在模型训练之前使用卡方技术进行特征选择,然后进行过采样以解决类不平衡问题。使用公共数据集 UNSW-NB15 数据集的实验评估证明了所提出的方法的有效性,TCP、UDP 和其他类别的加权平均 F1 分数分别为 0.85、0.97 和 0.86。

Wong 等人在Real-time detection of network traffic anomalies in big data environments using deep learning models中研究了 DL 在大规模数据环境中自动检测异常谎言。使用在网络流数据上训练的 CNN 和 LSTM 模型,与传统方法相比,所提出的框架实现了卓越的异常检测性能。此外,这些 DL 模型以最小的延迟实时处理流数据。迁移学习和模型压缩等优化技术进一步提高了检测效率。此外,Altulaihan 等人在Anomaly detection ids for detecting dos attacks in iot networks based on machine learning algorithms中研究了一种基于 IDS 的防御机制,该机制采用异常检测和 ML 技术来监控网络流量的异常情况。使用数据集 IoTID20 的评估证明了该方法的有效性,使用 GA 选择的特征训练的 DT 和 RF 分类器显示出前景。这凸显了 ML 在增强 IoT 网络安全以应对 DoS 攻击方面的潜力,并为解决 IoT 环境中新出现的网络安全挑战提供了见解。

Chew 等人在A survey on vehicular traffic flow anomaly detection using machine learning中全面研究了 ML 在车辆交通流异常检测中的应用,以实现有效的交通管理、公共安全和转运优化。快速识别异常交通状况有助于及时响应和做出明智的决策,以缓解拥堵并提高交通效率。他们的调查探讨了利用 ML 检测流量异常的技术复杂性,研究了流量异常检测的各个方面,包括数据源、处理方法、机器学习算法和现场常用的评估指标。此外,它还探索了新兴的研究方向,提供了通过先进的 ML 技术改进异常检测的路线图。

检测和缓解网络攻击至关重要,但分析单个网络数据包的传统方法存在局限性,尤其是对于处理大量流量的路由器。Campazas 等人在Malicious traffic detection on sampled network flow data with novelty-detection based models中旨在使用以 1/1,000 数据包采样率收集的流数据来检测恶意流量。在合成上采用基于异常检测的模型和来自 RedCAYLE 的真实流数据,显示了基于新颖性检测的模型在实现高精度和最小误报方面的有效性。

这些研究展示了 ML 和 DL 技术在各个领域的多功能性和有效性。虽然一些例子揭示了 RF 等传统 ML 模型的优越性,但值得强调的是,根据每个应用程序的特定需求选择最合适的模型才是最重要的。

3 Methodology and experiment design

第三章主要介绍了使用ML算法进行异常流量检测的方法,具体包括预处理网络流量数据,选择适当的参数,训练多个ML模型,以及使用各种指标评估他们的性能,图1说明了本文的方法摘要:

整体思路就是先数据预处理,包括数据清洗、标签编码、归一化、特征选取、类平衡,然后交给不同算法训练,评估比较不同算法的结果。

A. Data Preprocessing

实验从数据预处理开始:

  • 删除缺失值确保数据集没有不完整的条目。

  • 采用异常值检测和删除来确保后续分析的数据完整性和可靠性。

  • 使用标签编码将分类变量(如协议)编码为数字表示。(这种方法涉及为变量中的每个类别分配一个唯一的数值,将分类数据转换为适合 ML 算法的格式。选择标签编码是因为它在保持分类特征中的序数关系方面简单而有效。)

  • 归一化:此外,这些数值特征将被归一化,以标准化它们在数据集中的比例。这种归一化是使用 Min-Max 缩放技术实现的,其中每个特征 X 都转换为 0 到 1 范围内的值。

    其中,Xmin 和 Xmax 分别表示特征 X 的最小值和最大值。

    归一化是预处理中的关键步骤,因为它确保所有数值特征对学习过程的贡献相同,从而防止具有较大尺度的特征在模型中占据主导地位。通过将特征缩放到 uni 形式范围,归一化有助于模型收敛,并在后续分析期间保留特征之间的内在关系。此外,归一化增强了 ML 算法的有效性,尤其是那些对特征尺度敏感的算法,例如基于梯度的优化方法。它可以通过减少异常值的影响并确保优化过程在所有特征上顺利运行来提高模型的稳定性和性能。这种标准化的特征缩放方法有助于提高异常检测系统的整体可靠性和可解释性。

B. Feature Engineering

在这些预处理步骤之后,我们将方法论扩展到特征工程,这是一个关键阶段,旨在选择相关特征来优化模型性能。特征工程涉及各种技术,例如基于重要性排名的特征选择。为了识别有影响力的特征并确定它们对异常检测影响的优先级,进行了特征重要性分析。该分析根据特征对模型性能的贡献对特征进行排名,突出了区分正常网络流量和异常网络流量的最具区分力的属性。图 2 说明了根据特征重要性的特征排名,提供了对驱动异常检测过程的关键因素的见解。

在我们的研究中,我们专注于根据从 RF 模型获得的重要性分数来选择前 10 个最相关的特征。值得注意的是,最相关的特征主要与字节数流持续时间以及与 TCP 窗口相关的一些特征相关。这些属性在捕获网络流量的特征和实现有效的异常检测方面发挥了重要作用。

特征工程在提高异常检测模型的有效性和效率方面起着关键作用。通过根据相关特征的相关性和相关性选择和转换相关特征,特征工程优化了模型性能和可解释性,从而有助于以更高的准确性和可靠性识别网络异常。

在特征工程之后,我们结合了数据重采样技术来解决数据集中的类不平衡问题,确保异常检测模型在平衡的数据集上进行训练。类不平衡是异常检测任务中的一个常见问题,其中少数类明显小于多数类,这可能导致模型性能有偏差。

C. SMOTE(合成少数类过采样技术)

Synthetic Minority Over-sampling Technique (SMOTE)意为合成少数类过采样技术。SMOTE具体功能是为少数类生成合成样本,以实现更均衡的类分布。SMOTE 的工作原理是根据现有少数类样本的特征空间相似性合成新的少数类实例。

SMOTE 算法包括以下步骤balabala(略)

通过应用SMOTE,我们用合成样本增强了少数类实例,有效地平衡了类分布,并使异常检测模型能够从更具代表性的数据集中学习。此预处理步骤对于提高异常检测模型的稳健性至关重要。

D. Models Used

在准备好进行分析的预处理和平衡数据集后,我们采用了一系列 ML 和 DL 模型。每个模型的选择都是根据其处理网络数据特征的适用性及其有效识别异常模式的潜力。下面,我们全面概述了我们研究中使用的 ML 模型,以及它们的优缺点。

首先,我们使用 LR,这是一种用于二元分类任务的基本统计方法。LR 模型使用 logistic 函数估计给定实例属于特定类的概率:

(其中 x 表示输入特征,w 表示模型权重,b 是偏差项。LR 的优势在于其简单性、可解释性以及处理特征和类之间的线性关系的效率。当充分理解特征重要性并且决策边界是线性的时,它特别有效。但是,LR 可能难以捕获数据中复杂的非线性关系,并且受到其线性假设的限制。)

我们的第二个模型 NB 是一个基于贝叶斯定理的概率分类器,特征之间具有很强的独立性假设。NB 高效、可扩展,并且在处理高维数据时表现良好。它对于文本分类任务和特征独立性成立的方案特别有效。然而,NB 的特征独立性假设在实践中可能并不总是成立,导致在相关特征的情况下性能不令人满意。与 RF 和神经网络等更灵活的模型相比,NB 捕获数据中复杂关系的能力也受到限制。

给定输入特征 x 的类 Ck的分类概率可以使用以下公式计算:

RF 是一种集成学习技术,它构建多个 DT 并结合这些树的预测,以改进分类并减少过拟合。随机森林的单个决策树 T 中的决策过程可以表示为:

(RF 的优势在于它能够处理复杂的非线性关系、特征交互和嘈杂的数据。RF 对过拟合很鲁棒,并且在最小的超参数调整下表现良好。然而,与 LR 等更简单的模型相比,RF 的计算成本可能很高,而且更难解释。)

最后,RNN 是一类神经网络,旨在捕获数据中的顺序依赖关系。RNN 适用于时间序列数据和自然语言处理任务,因为它能够保留先前输入的知识。简单的RNN细胞(一个神经单元)中的计算可以表示为:

尽管 RNN 具有捕获复杂模式的潜力,但它们可能需要大量的超参数调整和大量的数据才能有效地泛化。此外,它们可能会遇到梯度消失等挑战,由于梯度更新的乘法性质,长期依赖关系变得难以学习。但是,RNN 对于涉及顺序数据的任务非常有效,并且已经扩展为 LSTMGRU 等变体。

这些模型中的每一个在性能、可解释性和计算复杂性方面都提供了独特的优势和权衡。通过利用各种 ML 技术,我们旨在综合评估不同方法在 NetFlow 流量中异常检测的有效性,同时考虑到网络数据带来的具体特征和挑战。

4 Experimental results

我们实验中使用的网络数据集是使用 Mihailescu 在The proposition and evaluation of the roedunet-simargl2021 network intrusion detection dataset中详述的 NetFlow V9 收集的。该数据集包含网络流的各种属性,包括源地址和目标地址、源端口和目标端口、协议信息、流持续时间以及数据包和字节总数。网络中的异常流量(例如端口扫描、恶意软件活动和 DoS 攻击)被归类为异常,从而深入了解网络内的潜在恶意活动。

The Proposition and Evaluation of the RoEduNet-SIMARGL2021 Network Intrusion Detection Dataset (mdpi.com) RoEduNet-SIMARGL2021 网络入侵检测数据集的提出与评价

为了为异常检测任务准备数据集,我们通过采用重采样技术来平衡正常实例和异常实例的分布,解决了与类不平衡相关的问题。图 5 显示了最终分布。此外,删除了不必要的列,例如 IP 地址和流 ID,以专注于建模的相关特征。此外,对协议信息等分类变量进行编码,以促进 ML 和 DL 模型的训练。

A. Exploratory Data Analysis

在深入研究实验结果的分析之前,我们进行了探索性数据分析 (EDA),以深入了解数据集中特征的特征和分布。通过可视化,我们检查了几个数值特征的分布。

在图 3 中,我们可视化了源端口的分布,这些端口主要集中在超过 30,000 的值附近。相比之下,图 4 显示了目标端口的分布,这些端口更集中在较低的值附近。这一观察表明源端口和目标端口的行为存在潜在差异,其中源端口表现出更高的可变性,而目标端口则更集中。

图 6 说明了网络流量数据中使用的协议的分布。从图中可以明显看出,TCP 是异常样本中使用最常用的协议。这一观察揭示了我们的数据集中大约有 100,000 个实例正在使用 TCP,这表明 TCP 使用情况与异常网络活动之间存在显着关联。相反,正常流量表明 UDP 和 TCP 之间存在可比的使用模式,在这两个类别中观察到大约 40,000 个样本。

ICMP 总体上代表性较低。尽管 ICMP 的使用率较低,但仍在大约 5000 个实例中观察到使用 ICMP 的异常情况。

TCP 在异常中占主导地位,这引发了关于观察到的异常性质的有趣问题。TCP 是一种面向连接的协议,通常与各种基于网络的攻击有关,例如端口扫描、DoS 和恶意软件传播。TCP 在异常中的普遍使用可能表明网络内此类恶意活动的可能性增加。

我们还观察到数据集中与 UDP 使用情况相关的异常流量的缺失,相反,UDP 流量只存在于正常实例中。

B. Evaluation

接下来是进行评估

首先要确定这几个指标:ACC,Pre,Rec,F1,AUC

下边这个表展示了各个模型的性能指标:

图 7 显示了 RF 模型的优势,该模型在所有指标中表现最佳,表现出令人印象深刻的 0.938 准确率和 0.967 的 F1 分数。此外,RF 在区分正常实例和异常实例方面表现出稳健性,其 0.99 的高 AUC 证明了这一点,如图 8 所示。值得注意的是,RF 还具有最短的训练时间,仅需 0.19 秒即可完成训练阶段,并且测试时间最快,单次预测仅需 0.23 微秒。这些计算效率指标突出了 RF 在模型性能和计算速度方面的优势。

相比之下,虽然 RNN 等 DL 模型表现出出色的性能,但它们在对异常实例进行分类方面仍然难以与 RF 的有效性相媲美。RNN 尽管实现了 92.2% 的准确率,总体上展示了值得称道的指标,但未能达到 RF 卓越的整体性能。

此外,RNN 会产生大量的计算成本,训练持续时间为 443.98 秒,每次预测的测试时间为 124.75 微秒。RNN 和 RF 在训练和测试效率方面的鲜明对比从图 9 和图 10 中可以明显看出。这些延长的时间间隔极大地减轻了 RNN 在实际部署场景中的潜在可扩展性挑战,在这些场景中,快速检测和响应网络异常至关重要。

NB 和 LR 等模型表现出较低的时间复杂度,但在性能指标方面未能提供令人满意的结果。尽管它们的训练和测试时间相对较短,NB 训练时间为 0.39 秒,LR 训练时间为 4.06 秒,但这些模型难以在分类任务中实现有竞争力的性能。

C. Discussion

这些结果强调了网络流量中异常检测的复杂性,以及与选择平衡性能和计算效率的适当模型相关的挑战。虽然 RNN 等 DL 模型可能在捕获网络数据中的复杂模式方面提供理论优势,但它们的实际效用受到计算限制。相反,某些传统的 ML 算法(如 NB 和 LR)的计算效率很高,但缺乏有效区分正常实例和异常实例所需的复杂性。然而,RF 模型在所有指标中表现最佳,取得了令人印象深刻的分数,同时展示了卓越的计算效率。因此,要开发能够应对网络安全中不断变化的威胁的具有鲁棒性的异常检测系统,必须采用兼顾模型有效性和计算可行性的细致入微的方法。

在实际的网络安全应用中,对高性能和低复杂性的异常检测系统的需求至关重要。例如,在数千台设备互连的大型企业网络中,每秒都会产生大量的网络流量。在此类环境中,及时检测和响应异常活动对于维护网络完整性和防范潜在的安全漏洞非常重要。因此,部署高效的异常检测模型,能够以最少的计算资源准确识别和分类网络异常变得势在必行。

RNN 模型在我们更新的实验中的性能表明它在对异常实例进行分类方面的有效性。然而,它的计算效率仍然存在一个明显的缺点。RNN 擅长捕获顺序依赖关系,这对于某些异常检测任务是有利的。通过超参数调优和模型架构进行进一步优化可能会提高其性能,但是,这可能会加剧已经相当长的时间复杂性。DL 模型的延长训练和测试时间通常可归因于几个因素。这些模型通常需要通过多层神经元进行迭代计算,涉及矩阵运算和反向传播以进行训练。相反,RF 模型的卓越性能可以归因于它能够在数据中捕获相关船舶,同时需要更少的参数调整工作。RF 模型擅长处理高维数据,与 DL 模型相比,对超参数设置不太敏感。此外,RF 的集成方法减少了过拟合并增强了泛化性能,使其非常适合网络流量数据中的异常检测任务。在我们的研究中,高性能和最小参数调整工作的结合使 RF 成为更好的候选者。

5 Conclusion

总而言之,我们的研究强调了 NetFlow 流量数据中异常检测固有的复杂性和挑战。我们的研究结果强调了选择在性能和计算效率之间取得平衡的适当模型的重要性。虽然 DL 模型在捕获数据中的复杂模式方面很有希望,但它们的实际效用可能会受到计算约束和数据适应能力的限制。相反,传统的 ML 模型在性能和计算效率之间提供了平衡,但可能难以捕获数据中的复杂关系。

在我们的实验中,RF 模型的卓越性能体现了集成学习技术在异常检测任务中的有效性。RF 不仅表现出高准确度、精密度、召回率和 F1 分数值,而且只需最少的参数调整工作,使其非常适合计算资源和时间限制是关键考虑因素的实际部署场景。我们的研究表明,RF 模型为为网络安全应用开发强大且可扩展的异常检测系统提供了一条有前途的途径。

总之,我们的研究为网络流量中的异常检测提供了有价值的见解,并强调了采用细致入微的方法的重要性,该方法在为网络安全挑战开发有效的解决方案时要考虑模型的有效性和计算可行性。展望未来,未来的研究工作应侧重于探索融合 DL 和传统 ML 技术优势的混合方法。通过将 DL 模型的算法与传统 ML 算法的效率相结合,研究人员可以开发更强大且可扩展的异常检测系统,能够解决网络安全中不断变化的威胁。探索在线学习和动态模型适应自身相似的网络流量上下文也会很有趣。

相关文章:

【笔记】机器学习算法在异常网络流量监测中的应用

先从一些相对简单的综述类看起,顺便学学怎么写摘要相关工作的,边译边学 机器学习算法在异常网络流量监测中的应用 原文:Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms Authors: Quc Vo, Philippe Ea, Os…...

江协科技STM32学习- P15 TIM输出比较

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…...

使用python-pptx批量删除备注:清除PPT文档中的所有备注信息

哈喽,大家好,我是木头左! 在制作和分享PPT时,经常需要添加一些注释或备注来帮助观众更好地理解内容。然而,有时候需要将这些备注从PPT中移除,以保持演示的简洁性。幸运的是,可以使用python-pptx库来实现这一目标。本文将详细介绍如何使用python-pptx批量删除PPT中的备注…...

RTX NVIDIA 3090卡配置对应pytorch,CUDA版本,NVIDIA驱动过程及问题整理

买了两块3090卡闲置很长时间了,之前tf 1.12.0版本用习惯了不想转工具。这段时间闲下来转了之后有些环境不适配,在雷神帮助下安装完毕,虽然出了点怪东西,整体还好。 原环境CUDA为11.4 其他配置如下 之前conda install的pytorch实为…...

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21

根据状态转移表实现时序电路 描述 某同步时序电路转换表如下,请使用D触发器和必要的逻辑门实现此同步时序电路,用Verilog语言描述。 电路的接口如下图所示。 输入描述: input A , input clk , …...

【深度】为GPT-5而生的「草莓」模型!从快思考—慢思考到Self-play RL的强化学习框架

原创 超 超的闲思世界 2024年09月11日 19:17 北京 9月11日消息,据外媒The Information昨晚报道,OpenAI的新模型「草莓」(Strawberry),将在未来两周内作为ChatGPT服务的一部分发布。 「草莓」项目是OpenAI盛传已久的…...

【编程底层原理】Java常用读写锁的使用和原理

一、引言 在Java的并发世界中,合理地管理对共享资源的访问是至关重要的。读写锁(ReadWriteLock)正是一种能让多个线程同时读取共享资源,而写入资源时需要独占访问的同步工具。本文将带你了解读写锁的使用方法、原理以及它如何提高…...

自恢复保险丝SMD1206B005TF在电路中起什么作用

自恢复保险丝SMD1206B005TF在电路中起到过流保护的作用。 自恢复保险丝,也称为正温度系数(PTC)热敏电阻,是一种能够在电流超过预设值时自动断开电路,并在故障排除后自动恢复的元件。这种保险丝的核心材料是高分子聚合…...

2024年躺平,花大半年的时间,就弄了这一件事儿:《C++面试真题宝典》

今年,是我的第3个躺平年,躺得我四肢都快蜕化了... 为了让一切都变得舒服,我决定主动地去做些什。 在我生命的一个不起眼却意义非凡的角落,我与C结下了不解之缘。这份热爱,如同一位老友,陪伴我度过了无数个…...

PHP基础语法讲解

​ 大家好,我是程序员小羊! 前言: PHP(Hypertext Preprocessor)是一种常用于网页开发的服务器端脚本语言,易于学习并且与 HTML 紧密结合。以下是 PHP 的基础语法详细讲解。 1. PHP 基础结构 1.1 PHP 脚本结…...

【论文速看】DL最新进展20240923-长尾综述、人脸防伪、图像分割

目录 【长尾学习】【人脸防伪】【图像分割】 【长尾学习】 [2024综述] A Systematic Review on Long-Tailed Learning 论文链接:https://arxiv.org/pdf/2408.00483 长尾数据是一种特殊类型的多类不平衡数据,其中包含大量少数/尾部类别,这些类…...

device靶机详解

靶机下载地址 https://www.vulnhub.com/entry/unknowndevice64-1,293/ 靶机配置 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.159 nmap -sS -Pn -A -p- -n 192.168.229.159 这段代码使用nmap工具对目标主机进行了端口扫描和服务探测。 -sS:使用…...

十四、SOA(在企业中的应用场景)

在企业中,**SOA(面向服务架构)**被广泛应用于多个场景,帮助企业提高灵活性、效率和业务响应能力。SOA通过分解企业系统中的功能模块,以服务的形式进行封装和集成,支持跨平台、跨系统的协同工作。以下是SOA在…...

单片机与PIC的区别:多方面对比

单片机与PIC的区别:多方面对比 在现代电子产品的设计中,单片机和PIC都是不可或缺的控制器。尽管它们在功能上有许多相似之处,但在设计、应用、优势和劣势等方面却有显著区别。今天,我们就来详细对比一下单片机和PIC。 1. 定义与…...

python新手的五个练习题

代码 # 1. 定义一个变量my_Number,将其设置为你的学号,然后输出到终端。 my_Number "20240001" # 假设你的学号是20240001 print("学号:", my_Number) # 2. 计算并输出到终端:两个数(例如3和5)的和、差、乘积和商。 num1 3 num2 5 print(&…...

Go语言并发编程之sync包详解

在当今多核时代,如何高效地利用并发是每个Go语言开发者都需要掌握的技能。Go语言为我们提供了丰富的并发编程工具,其中最基础也是最重要的就是sync包。本文将深入探讨sync包的各种并发原语,包括WaitGroup、Mutex、RWMutex、Cond、Once和Pool,并通过丰富的代码示例和详尽的解…...

函数题 6-10 阶乘计算升级版【PAT】

文章目录 题目函数接口定义裁判测试程序样例输入样例输出样例 题解解题思路完整代码AC代码 编程练习题目集目录 题目 要求实现一个打印非负整数阶乘的函数。 函数接口定义 void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过 1000 1000 10…...

java项目之基于springboot的医院资源管理系统源码

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的医院资源管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…...

Docker命令全解析:掌握容器化技术的基石

在容器化技术日益普及的今天,Docker作为其中的佼佼者,凭借其轻量级、可移植和易于管理的特性,赢得了广泛的关注和应用。而掌握Docker命令,则是深入理解和高效利用Docker的关键。本文将带您走进Docker命令的世界,从基础…...

2024.9.19

[ABC266F] Well-defined Path Queries on a Namori 题面翻译 题目描述 给定一张有 N N N 个点、 N N N 条边的简单连通无向图和 Q Q Q 次询问,对于每次询问,给定 x i , y i x_i,y_i xi​,yi​,表示两点的编号,请你回答第 x i …...

“跨链桥“的危害

跨链桥(Cross-Chain Bridges)是连接不同区块链网络的工具,允许用户在不同的区块链之间转移资产和数据。尽管跨链桥为区块链生态系统带来了许多便利,但它们也存在一些潜在的危害和风险。以下是一些主要的危害: 1. 安全…...

GO CronGin

文章目录 Robfig Cron介绍1. **安装 robfig/cron**2. **基本用法**示例:创建一个简单的定时任务3. **Cron 表达式**常用的 Cron 表达式示例:4. **添加和管理任务**5. **上下文支持**6. **使用场景**7. **高级用法**总结 Cron 在Gin中实践使用1. **安装 r…...

手机在网状态查询接口如何用C#进行调用?

一、什么是手机在网状态查询接口? 手机在网状态查询接口是利用实时数据来对手机号码在运营商网络中的状态进行查询的工具,包括正常使用状态、停机状态、不在网状态、预销户状态等。 二、手机在网状态查询适用哪些场景? 例如:商…...

Java面向对象特性与泛型:深入理解与应用

Java作为一种广泛使用的面向对象编程语言,提供了丰富的特性来支持面向对象编程(OOP)和泛型编程。本文将深入探讨Java的面向对象特性和泛型,以及它们在实际开发中的应用。 1. 面向对象特性 面向对象编程是一种编程范式&#xff0…...

Qwen2.5 本地部署的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...

Oracle数据库pl/sql显式抛出异常

在Oracle PL/SQL中,显式地抛出异常(Raising Exceptions Explicitly)是一种控制程序流程和处理错误的重要机制。当你希望在某些特定条件下中断程序的执行,并通知调用者发生了错误或异常情况时,可以使用这种机制。下面是…...

Undet for sketchup 2023.3注册机 支持草图大师sketchup2021-2022-2023

1.Undet for sketchup 2023.3支持草图大师sketchup2021-2022-2023。支持机载雷达扫描、车载扫描还是地面扫描,对AEC行业用户来说,真正需要的是如何将这些数据快速处理为三维模型,这样才能将这些信息延展到BIM领域发挥效用。因此面对这些海量的…...

Java详细学习路线:从入门到精通的全方位指南

Java作为一种广泛使用的编程语言,以其跨平台性、强大的库支持和广泛的应用领域(如Web开发、Android开发、大数据处理等)而著称。对于初学者来说,制定一个清晰、系统的学习路线至关重要。以下是一个从Java基础到高级应用的详细学习…...

Spark 性能优化高频面试题及答案

目录 高频面试题及答案1. 如何通过调整内存管理来优化 Spark 性能?2. 如何通过数据持久化优化性能?3. 如何通过减少数据倾斜(Data Skew)问题来优化性能?4. 如何通过优化 Shuffle 操作提升性能?5. 如何通过广…...

【洛谷】AT_abc371_e [ABC371E] I Hate Sigma Problems 的题解

【洛谷】AT_abc371_e [ABC371E] I Hate Sigma Problems 的题解 洛谷传送门 AT传送门 题解 I Hate Sigma Problems!!! 意思很简单就是求序列中每一个子区间内含有不同数字的个数之和。 暴力的话时间复杂度是 O ( n 2 ) O(n ^ 2) O(n2),是肯定不行的&#xff0…...