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

【论文阅读】Feature Inference Attack on Shapley Values

摘要

研究背景

近年来,解释性机器学习逐渐成为一个热门的研究领域。解释性机器学习可以帮助我们理解机器学习模型是如何进行预测的,它可以提高模型的可信度和可解释性。Shapley值是一种解释机器学习模型预测结果的方法,它可以计算每个特征对预测结果的贡献程度,从而帮助我们理解模型的预测过程。Shapley值已经在许多领域得到了广泛的应用,比如金融、医疗、自然语言处理等。

研究动机

然而,随着机器学习模型的广泛应用,模型的隐私和安全问题也变得越来越重要。模型的隐私泄露可能会导致个人隐私信息的泄露,从而对个人造成不可挽回的损失。在Shapley值方法中,攻击者可以通过对Shapley值进行反推来推断出模型中使用的特征,从而了解模型的训练数据和训练过程。这种攻击方式可能会导致模型隐私泄露,从而损害模型的安全性和信任度。

论文贡献

为了解决这个问题,研究人员在本文中提出了一种新的隐私保护技术,称为Shapley值加噪技术。该技术可以在一定程度上保护Shapley值的隐私,同时保持解释性能力。研究人员还提出了一种新的攻击方式,称为特征推理攻击,可以通过对Shapley值进行反推来推断出模型中使用的特征。研究人员在多个数据集和模型上进行了实验验证,结果表明论文中提出的特征推理攻击是有效的,并且所提出的Shapley值加噪技术能够有效地防止这种攻击。本文的主要贡献在于提出了一种新的隐私保护技术,可以保护Shapley值的隐私,同时保持解释性能力。

前置知识

机器学习模型基本原理

机器学习是一种使用算法和统计模型来分析和解决复杂问题的方法。机器学习模型通过学习数据集中的模式和规律来进行预测和分类。机器学习模型通常包括一个训练阶段和一个预测阶段。在训练阶段,模型使用标记好的数据集来学习规律和模式;在预测阶段,模型使用学习到的规律和模式来对新的数据进行预测。

Shapley值及其应用

Shapley值是一种用于解释机器学习模型预测结果的方法。Shapley值可以计算每个特征对预测结果的贡献程度,从而帮助我们理解模型的预测过程。Shapley值方法基于合作博弈论中的Shapley值概念,将每个特征视为一个“玩家”,将预测结果视为“支付函数”,并使用Shapley值来分配支付函数中的支付给每个“玩家”。

Shapley Value的计算方式需要考虑所有特征子集的贡献,因此需要使用组合数学中的排列组合方法来进行计算。下面是Shapley Value的计算公式:

对于特征i,它在所有特征子集S中所对应的贡献为:

\phi_i=\sum_{S \subseteq F \setminus {i}} \frac{|S|!(|F|-|S|-1)!}{|F|!} [f(S \cup {i}) - f(S)]

其中,F 是所有特征的集合,​ 是特征子集 S 的大小,​ 是使用特征子集 S 训练出的模型在测试集上的性能指标,​ 是加入特征 i 后训练出的模型在测试集上的性能指标。

上述公式表示了特征i在所有可能的特征子集中的平均边际贡献,即特征 i 对于所有特征子集的增益平均值。在实际计算中,需要对所有特征进行遍历来计算每个特征的Shapley值。

在实际应用中,Shapley值已经被广泛应用于解释性机器学习,比如特征重要性评估、模型诊断和模型优化等方面。Shapley值还可以用于探索特征之间的相互作用,从而帮助我们理解模型的决策过程和行为。虽然Shapley值已经在很多领域得到了广泛的应用,但其隐私和安全问题也逐渐变得越来越重要。

特征推理攻击

敌手出于恶意目的,将数据去匿名化或者锁定记录的拥有者。

在数据被发布之前,通过删除用户的个人可识别信息(也称为敏感特征)来实现匿名化,是用户保护隐私的一种常用方法。

基于解释报告的攻击框架

①攻击者向ML平台发送虚假查询,并接收带有解释的决策

②攻击者根据模型的输入和解释,设计特征推断算法

③攻击者可能获得目标客户的解释报告

④根据这些解释,攻击者可以通过攻击算法重构相应的私有特征

符号解释

最后是一些符号术语的解释,帮助我们理解论文:

​是运行在ML平台上的黑盒模型;

​是想要重构出的目标特征样本;

​是​所包含的特征数量;

​是黑盒模型的输出;

输出的class数用字母​来表示;

​就是样本的Shapley值;

​右上标表示第几个样本,右下标表示这个样本的第几个特征。

攻击原理

下面可以步入正题了,也就是论文提出的基于Shapley值的特征推理攻击算法。

具体分为两种类型,一种是使用辅助数据集的特征推理攻击,另一种是具有数据独立性的特征推理攻击。

使用辅助数据集的特征推理攻击

第一种攻击方式,使用辅助数据集的特征推理攻击。

下面就是这种攻击算法的伪代码,相对比较简单,所做的事情简单来说就是基于一个辅助数据集,学习一个具有经验风险最小化的回归模型,然后将解释向量𝒔映射到私有数据中。经过最小化,然后将解释向量𝒔映射到私有特征空间,并相应地获得估计值。

整个攻击的过程和机器学习如出一辙,同样是先训练一个回归模型,再使用这个回归模型进行预测。

整个算法的核心原理就是右边这张双射图:

图中灰色的​函数是指特征值作为输入,Shapley值作为输出;橙色的​函数则是反过来,Shapley值作为输入,特征值作为输出。

左侧的函数是ML平台所做的,右边的函数是攻击者所做的,通过重新训练一个相反的模型达成特征推理攻击的目的。

因为攻击者拥有了一个辅助数据集,所以这种方式会相对简单一些,成本也会低很多。

具有数据独立性的特征推理攻击

第二种攻击方式,具有数据独立性的特征推理攻击。

顾名思义,这种攻击需要的条件没有刚才讲到的使用辅助数据集的攻击那么严苛,但是攻击成功困难性也会提升,甚至能否攻击成功是一个运气事件。

假设对手没有辅助数据集,对手将不可能学习到刚才的攻击模型,因为目标私有特征的分布是未知的。从𝒔(也就是Shapley值)恢复𝒙(私有样本特征值)的方法是,攻击者生成一个随机数据集,将该数据集中的样本分别发送到ML平台并获得对应的解释。假设随机数据集的大小足够大,则会有你猜测的Shapley值属于目标数据集的Shapley值集合,这样就可以使用与之关联的Xrand作为依据估计𝒙。

想法很好,具体操作中会存在两个问题:

第一,为了提高估计的精度,对手需要随机从可能的特征空间中抽取大量样本,并将其发送到ML平台。对于按查询付费的服务来说,成本可能很高,并且会增加被服务提供者发现和阻止的风险。

第二,双射关系只在x和s之间成立,而不是在你选择的Xrand和Srand之间成立。

基于这些问题,如下图所示,研究人员继续研究了如何才能更准确地从随机数据集中找到符合条件的样本,使用的方法就是结合特征值的相关系数来进行分析,使得误差小于一定的阈值。

 

具体攻击算法如下图所示:

在算法的第9-12行中,对于目标特征𝑥𝑖,首先,我们计算它的Shapley值𝒔𝑖和随机样本中第i个特征的Shapley值之间的距离distance;

随后在第13行,根据Shapley值距离对随机特征进行排序;

之后的这个for循环也就是相应地选择Shapley值距离小于阈值𝜉的𝑥𝑖的候选估计;

最后在第19行,我们选择只重建那些候选估计值范围小于阈值𝜏的私有特征。

最终算法时间复杂度是O(nmlogm),其中𝑛表示目标特征的数量,𝑚表示随机数据集的大小,在后续实验中,表明随机数据集的大小𝑚=100足以从复杂模型(如神经网络)中重建30%以上的高精度特征。

实验探究

实验环境

实验平台

为了验证所提出的攻击在现实世界应用中的有效性,研究人员在三个领先的ML平台上进行了实验,分别是谷歌云AI平台、微软云AI平台和IBM可信AI平台。

实验数据集

实验使用了多种多样的数据集,涵盖了商业、银行、信用卡、医学等多个领域。

样本的数量在3W到10W不等,其特征的数量也多种多样,保证了实验具有普适性和说服力。

黑盒模型

实验中使用了四种类型的模型:

①神经网络(NN)

②随机森林(RF)

③梯度提升的决策树(GBDT)

④使用径向基函数(RBF)核的支持向量机(SVM)

衡量标准

我们用平均绝对误差(MAE,即​损失)来衡量重建的输入𝒙ˆ与真实输入𝒙之间的偏差:

\ell_{1}(\hat{x}, x)=\frac{1}{m n} \sum_{j=1}^{m} \sum_{i=1}^{n}\left|\hat{x}_{i}^{j}-x_{i}^{j}\right|

其中,𝑚是验证数据集​中的样本数量,𝑛是特征的数量。

此外,我们用成功率(SR)来评估通过攻击2可以成功重建的特征的百分比:

\mathrm{SR}=\frac{\left|\hat{X}_{v a l} \neq \perp\right|}{m n}

其中,​代表在​中成功恢复的特征总数。

基线(baseline)

基线(baseline)被用为对比模型表现参考点的简单模型,帮助模型开发者量化模型在特定问题上的预期表现。

对于使用辅助数据集的特征推理攻击,由于攻击者拥有一个辅助数据集,该数据集与私人输入​的基础分布相同,我们使用基于经验分布的随机猜测基线(称为RG-E),该基线通过随机抽样一个向量𝒙˜ ∼ ​来估计𝒙值。

对于具有数据独立性的特征推理攻击,由于攻击者不知道私人输入的分布,我们使用两个随机猜测基线来估计𝒙的值:均匀分布𝑼(0, 1)(称为RG-U)和高斯分布𝑵(0.5, 0.252)(称为RG-N)。

探究不同查询数量的攻击性能

因为在之前提到的两种攻击中,对手都是以按查询付费的模式向ML平台发送查询。如果需要的查询数量很大,就会导致攻击成本过大,所以需要探究探究不同查询数量的攻击性能。

在我们的设想中,查询数量越多,攻击的成功率就越高,loss值就会越低。

如图所示,实际情况和我们设想的差不多loss值会随着查询数量的增长呈现减少趋势,除了个别数据集例如Credit数据集中出现山谷点的现象。

下图研究的是成功率随不同查询数量的变化:

左边是不同的数据集,分别对应不同黑盒模型,随查询数量从左到右不断增加的成功率变化。

我们可以发现,虽然理论上成功率会随查询数量增加不断提高,但是实际上这种趋势会在查询数量达到一定规模后放缓,例如像Credit数据集中的RF模型。

当然也有像Insurance数据集的GBDT模型,在查询数量很少时就进入了增速缓慢的状态。

探究不同MLaaS平台的攻击性能

我们控制查询数量均为1000,探究不同ML平台的攻击性能,发现在IBM平台和微软平台的攻击性能在不同模型和不同数据集上都是不相上下的,其实原因也很简单,这两个平台使用相同的回归方法计算Shapley值。

Google平台则不同,它使用的是抽样方法计算的Shapley值,所以在大多数数据集和模型上和另外两个平台的攻击性能表现不同。

而且Google平台的攻击成功率在大部分数据集和模型中都比IBM平台和微软平台都要高一些,如下图所示:

探究不同特征重要性的攻击性能

接下来是探究不同特征重要性的攻击性能。

如果一个特征更重要,其值的变化可以对模型输出造成更大的影响,从而对模型解释产生更大的值。

但相应的,它的Shapley值将包含更多的该特征的信息,能够以更大的概率重构。

在实验中,研究人员通过对比相关系数印证了这一点:

探究不同Shapley采样误差下的攻击性能

为了评估论文中所提出的攻击算法的鲁棒性,我们还需要探究不同Shapley采样误差下的攻击性能。

从上图可以看出,随着采样误差的降低,两种攻击所重构出的特征值精度略有提高,这比较容易理解,随机噪声减少意味着Shapley值包含的私有特征信息会增加,这有利于重构特征,然而这种改进幅度并不大,表明所提出的两种攻击即使在较大的采样误差下也具有鲁棒性和高效性。

相关工作

模型的可解释性

在复杂的黑盒模型中,缺乏跟踪数据流的理论技术促进了大量关于模型可解释性的研究,这些研究旨在解释这些模型如何产生预测。模型可解释性度量方法可分为两类:用于计算不同特征的整体重要性的全局可解释性,以及用于估计目标样本中特征重要性的局部可解释性。在本文中,我们主要研究局部方法,它可以进一步分为Shapley基于值的方法和启发式方法。启发式方法旨在线性化目标样本附近的模型决策边界,并使用不同特征的线性权重作为其重要值,例如LIME和基于梯度的方法。尽管启发式方法在计算上是有效的,但很少有理论分析来证明它们的鲁棒性和误差界限。另一方面,Shapley基于值的方法理论上可以为ML解释提供理想的属性,因此被领先的MLaaS平台用于解释表格数据。

机器学习的攻击算法

许多研究揭示了机器学习模型所面临的隐私风险,如隶属度推理、属性推理、模型提取和特征推理。隶属度推断的目的是确定特定样本是否在训练数据集中,属性推断的目的是恢复训练数据集的统计数据。由于这两种类型的攻击都是监督任务,因此需要一个辅助数据集来完成攻击模型的训练。模型提取的目的是根据黑盒模型的预测重建其参数。然而,很少有研究考虑模型可解释性方法的隐私风险。虽然一些最新的研究集中在基于启发式解释性方法产生的局部解释的隶属度推理或神经网络提取上,但它们的设置和任务与我们的完全不同。本文主要研究了基于Shapley值的特征推断攻击,该攻击对实际应用更具有实用性和影响力。据我们所知,这也是第一篇在Shapley价值观中考虑隐私风险的论文。

针对当前攻击的防御机制

由于当前攻击的效率依赖于ML模型的记忆特性,大多数防御机制都侧重于通过噪声注入防止模型记忆敏感数据。例如,使用较低粒度的模型输出可以减少其中包含的私有特征信息,从而降低隶属度推断和模型提取的准确性。神经网络中的dropout和集成学习等正则化方法可以减少模型记忆的训练数据集的信息。差异隐私是目前最流行的防御机制之一,因为它为保护私有模型输入提供了严格的理论保证。然而,这些防御不能应用于提议的攻击,因为我们专注于在预测阶段重构从未被模型看到并因此被模型记住的私人输入。通过减少明文输出和私有数据之间的互信息,提出了一种防御机制,这在精神上与我们的分析相似。但是,在我们的设置中不能直接使用中的方法。首先,在模型训练过程中通过互信息改变学习目标,而模型在Shapley值的计算中被训练和固定。其次,隐私保护中的互信息与主要任务的关系松散,因此可以最小化,而在我们的例子中,最小化Shapley值和特征之间的互信息会损害解释的效用。尽管如此,仍然提供了一些减少拟议攻击的见解。

结论

这篇论文重点研究了Shapley基于价值的模型解释方法所遭受的隐私风险,首先从信息理论的角度分析了私有模型输入与Shapley值之间的关系,并据此提出了两种不同设置下的特征推断攻击,在三个主要的MLaaS平台上进行的大量实验证明了所提出的攻击的有效性和鲁棒性,强调了在未来的研究中开发隐私保护模型可解释性方法的必要性。

相关文章:

【论文阅读】Feature Inference Attack on Shapley Values

摘要 研究背景 近年来,解释性机器学习逐渐成为一个热门的研究领域。解释性机器学习可以帮助我们理解机器学习模型是如何进行预测的,它可以提高模型的可信度和可解释性。Shapley值是一种解释机器学习模型预测结果的方法,它可以计算每个特征对…...

TDesign 中后台系统搭建

目录 1 模板安装2 启动项目3 添加页面总结 一般如果希望开发小程序,是要给使用的用户提供一套中后台系统来管理数据的。现在中后台系统开源项目也比较多,本篇我们介绍一个腾讯开源的TDesign模板。 1 模板安装 先要在电脑里安装好nodejs,搜索…...

Android 实现阅读用户协议的文字控件效果

开发中&#xff0c;经常要用到一些阅读隐私协议的场景&#xff0c;原生的textview控件很难做到在一个控件里有两个点击事件&#xff0c;那现在就来安利一个强大的组件——SpannableStringBuilder。 先看看效果&#xff1a; 直接上代码&#xff0c;布局文件&#xff1a; <Li…...

19.主题时钟

主题时钟 html部分 <div class"btn">黑色</div><div class"clock-container"><div class"time">21</div><div class"date">21</div><div class"clock"><div class&qu…...

ChatGPT在智能电子设备中的应用如何?

ChatGPT在智能电子设备中有着广泛的应用潜力&#xff0c;可以为电子设备提供更智能、更个性化的用户体验&#xff0c;并为用户提供更多便利和高效的功能和服务。智能电子设备是指通过集成计算机、传感器、网络和人工智能等技术&#xff0c;实现智能化的功能和交互的设备。ChatG…...

MGRE之OSPF实验

目录 题目&#xff1a; 步骤二&#xff1a;拓扑设计与地址规划​编辑 步骤三&#xff1a;IP地址配置 步骤四&#xff1a;缺省路由配置 步骤五&#xff1a;NAT的配置 步骤六&#xff1a;MGRE配置 中心站点R1配置 分支站点配置 中心站点R5 R1配置 分支站点配置 检测&…...

【Selenium+Pytest+allure报告生成自动化测试框架】附带项目源码和项目部署文档

目录 前言 【文章末尾给大家留下了大量的福利】 测试框架简介 首先管理时间 添加配置文件 conf.py config.ini 读取配置文件 记录操作日志 简单理解POM模型 简单学习元素定位 管理页面元素 封装Selenium基类 创建页面对象 简单了解Pytest pytest.ini 编写测试…...

如何负载均衡中的日志统一管理

详细部署步骤&#xff1a;将负载均衡中的日志统一管理 调研和规划 确定日志管理的需求和目标。调研可用的日志收集工具和中心化存储系统。 选择合适的日志收集工具 根据需求选择适合负载均衡环境的日志收集工具&#xff0c;如Logstash、Fluentd或Filebeat。 在负载均衡服务器…...

Java_26_Stream流

Stream 什么是Stream流&#xff1f; 在Java 8中&#xff0c;得益于Lambda所带来的函数式编程&#xff0c; 引入了一个全新的Stream流概念 &#xff0c;用于解决已有集合/数组类库有的弊端。 Stream流能解决什么问题? 可以解决已有集合类库或者数组API的弊端。 Stream认为集合…...

周四见 | 物流人的一周资讯

京东支付年活跃用户数超1.9亿 7月27日消息&#xff0c;京东科技发布2022年环境、社会及公司治理报告。报告显示&#xff0c;在推动社会公平方面&#xff0c;2022年京东科技帮助超207万家中小微企业实现数智化转型&#xff0c;为42万中小微企业提供贷款&#xff0c;节省融资成本…...

uniapp 即时通讯开发流程详解

今天我将为您详细介绍UniApp开发中的即时通讯流程。本文将向您展示如何在UniApp中实现即时通讯功能&#xff0c;为您的应用程序增添交互性和实时性。 1. 准备工作 在开始开发之前&#xff0c;确保您已完成以下准备工作&#xff1a; 确保您已经安装好UniApp开发环境&#xff…...

【Terraform学习】Terraform-docker部署快速入门(快速入门)

Terraform-docker部署快速入门 实验步骤 创建 EC2 IAM 角色 导航到IAM 在左侧菜单中&#xff0c;单击角色 。单击创建角色该按钮以创建新的 IAM 角色。 在创建角色部分&#xff0c;为角色选择可信实体类型&#xff1a; AWS 服务 使用案例:EC2 单击下一步 添加权限&#x…...

C# 全局响应Ctrl+Alt+鼠标右键

一、简述 某些应用&#xff0c;我们希望全局自定义热键。按键少了会和别的应用程序冲突&#xff0c;按键多了可定用户操作不变。因此我计划左手用CtrlAlt&#xff0c;右手用鼠标右键呼出我自定义的菜单。 我使用键盘和鼠标事件进行简单测试&#xff08;Ctrl鼠标右键&#xff…...

【Leetcode】54.螺旋矩阵

一、题目 1、题目描述 给你一个 m m m 行 n n n 列的矩阵 matrix,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例1: 输入:matrix =...

怎样计算一个算法的复杂度?

分析一个算法主要看这个算法的执行需要多少机器资源。在各种机器资源中&#xff0c;时间和空间是两个最主要的方面。因此&#xff0c;在进行算法分析时&#xff0c;人们最关心的就是运行算法所要花费的时间和算法中使用的各种数据所占用的空间资源。算法所花费的时间通常称为时…...

【问题记录】Ubuntu 22.04 环境下,打开 VS Code 老是访问密钥环该怎么解决?

目录 环境 问题情况 解决方法 环境 VMware Workstation 16 Pro &#xff08;版本&#xff1a;16.1.2 build-17966106&#xff09;ubuntu-22.04.2-desktop-amd64 问题情况 在Ubuntu下&#xff0c;每次运行 VS Code时&#xff0c;老是提示要输入密钥密码来解锁保存在密钥环&am…...

format格式化输出语法详解

hello&#xff0c;这里是Token_w的文章&#xff0c;主要讲解python的基础学习&#xff0c;希望对大家有所帮助 整理不易&#xff0c;感觉还不错的可以点赞收藏评论支持&#xff0c;感谢&#xff01; 使用 % 操作符对各种类型的数据进行格式化输出&#xff0c;这是早期 Python提…...

RocketMQ教程-(5)-功能特性-事务消息

事务消息为 Apache RocketMQ 中的高级特性消息&#xff0c;本文为您介绍事务消息的应用场景、功能原理、使用限制、使用方法和使用建议。 事务消息为 Apache RocketMQ 中的高级特性消息&#xff0c;本文为您介绍事务消息的应用场景、功能原理、使用限制、使用方法和使用建议。…...

HANA学习笔记

1、安装 准备安装介质&#xff0c;我这儿用的是HANA2.00.059.00&#xff0c;注意会用到三个lib包和saptune&#xff0c;提前准备好。 执行./hdblcm开启数据库安装&#xff0c;过程中会涉及到需要用户设置一些参数&#xff0c;按照自己需求设置即可。 安装完成会生成一个安装日…...

VMware虚拟机无法上网的解决办法

&#xff08;1&#xff09;1、在虚拟机右下角的网络适配器上面观察该图标是否是有绿色的灯在闪烁&#xff0c;如果网络适配器是灰色的证明虚拟机的网络没有打开&#xff0c;而是被禁用了&#xff0c;在适配器上点击鼠标右键&#xff0c;打开【设置】&#xff0c;在【已连接】、…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...