【阅读记录】《联邦学习》杨强

news2024/11/16 21:29:36

第2章 隐私、安全及机器学习

2.3 威胁与安全模型

2.3.1 隐私威胁模型

对机器学习系统的攻击可能在任何阶段发生,包括数据发布、模型训练和模型推理。

  • 模型训练阶段:重构攻击(避免使用寻存储显式特征值的模型,SVM KNN等)
  • 模型推理阶段:模型反演攻击(敌人有白盒或黑盒访问权限)、成员推理攻击(敌人至少拥有黑盒访问权限)
  • 数据发布阶段:特征推理攻击(对数据去匿名化或锁定记录的拥有者)

2.3.2 攻击者和安全模型

现有工作面向两种敌手:

  • 半诚实的(Semi-honest)敌手:在半诚实(抑或诚实但好奇的(honest-butcurious)、被动的)敌手模型中,敌手诚实地遵守协议,但也会试图从接收到的信息中学习更多除输出以外的信息。
  • 恶意的(Malicious)敌手:在恶意的(抑或主动的)敌手模型中,敌手不遵守协议,可以执行任意的攻击行为。

2.4 隐私保护技术

  • 安全多方计算
  • 同态加密
  • 差分隐私

第3章 分布式机器学习

3.1 分布式机器学习介绍

在这里插入图片描述

3.2 面向扩展性的DML

3.2.2 面向扩展性的DML方法

数据并行、模型并行、图并行、任务并行、混合并行和交叉并行

3.3 面向隐私保护的DML

3.3.2 隐私保护方法

隐私处理or密码学方法

第4章 横向联邦学习

4.0(补充) 横向联邦 v.s. 纵向联邦

横向联邦学习

在这里插入图片描述

多个参与者具有相同的数据特征。横向联邦使训练样本的总数量增加。横向联邦学习也称为特征对齐的联邦学习(Feature-Aligned Federated Learning),即横向联邦学习的参与者的数据特征是对齐的。

纵向联邦学习

适用于参与者训练邦本ID重叠较多,而数据特征重叠较少的情况。联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训练数据是纵向划分的,称为纵向联邦学习。纵向联邦学习需要先做样本对齐,即找出参与者拥有的共同的样本,也就叫“数据库撞库(entity resolution, a.k.a. entity alignment)”。只有联合多个参与者的共同样本的不同特征进行纵向联邦学习,才有意义。纵向联邦使训练样本的特征维度增多。纵向联邦学习也称为样本对齐的联邦学习(Sample-Aligned Federated Learning),即纵向联邦学习的参与者的训练样本是对齐的。
在这里插入图片描述

小结

  • 横向联邦学习的名称来源于训练数据的“横向划分”,也就是数据矩阵或者表格的按行(横向)划分。不同行的数据有相同的数据特征,即数据特征是对齐的。
  • 纵向联邦学习的名称来源于训练数据的“纵向划分”,也就是数据矩阵或者表格的按列(纵向)划分。不同列的数据有相同的样本ID,即训练样本是对齐的。

4.1 横向联邦学习的定义

横向联邦学习也称为“按样本划分的联邦学习” ( SamplePartitioned Federated Learning 或 Example-Partitioned Federated Learning)。可以应用于联邦学习的各个参与方的数据集有相同的 特征空间和不同的样本空间的场景,类似于在表格视图中对数据进行水平划分的情况。

关于横向联邦学习系统的安全性的定义,我们通常假设一个横向联邦学习系统的参与方都是诚实的,需要防范的对象是一个诚实但好奇(honest-but-curious)的聚合服务器[35,115]。即通常假设只有服务器才能使得数据参与方的隐私安全受到威胁。

4.2 横向联邦学习架构

  • C-S架构
  • P2P架构

4.2.1 客户-服务器架构

典型的横向联邦学习系统的客户-服务器架构示例如图4-1所示,也被称为主-从(master-worker)架构或者轮辐式(hub-and-spoke)架构。在这种系统中,具有同样数据结构的K个参与方(也叫作客户或用户)在服务器(也叫作参数服务器或者聚合服务器)的帮助下,协作地训练一个机器学习模型。横向联邦学习系统的训练过程通常由如下四步组成:
在这里插入图片描述
在这里插入图片描述

上述步骤将会持续迭代进行,直到损失函数收敛或者达到允许的迭代次数的上限或允许的训练时间,这种架构独立于特定的机器学习算法(如逻辑回归和深度神经网络),并且所有参与方将会共享最终的模型参数。
对于模型聚合,可以采用 梯度平均模型平均 的方式。梯度平均是服务器将接收到的梯度信息进行聚合(加权平均等),再将聚合的梯度信息发送给各参与方。模型平均则是发送模型参数至服务器,服务器将接受的信息聚合后发回给各客户端。
在这里插入图片描述

4.2.2 对等网络架构

每个客户端称为训练方,训练方们使用安全链路)(channels)相互之间传输模型参数信息。为保证通信安全,需要使用例如基于公共密钥的加密方法等安全措施。
传输方式:循环传输,随机传输(Gossip学习)。

4.2.3 全局模型评估

本地模型性能表示某一参与方在本地测试数据集上检验得出的横向联邦学习模型的性能,全局模型性能表示所有参与方在测试数据集上对横向联邦学习模型进行测试得出的模型性能。模型性能可以表现为精确度(precision)、准确度(accuracy)和召回率(recall)等。
C-S结构可以通过回传给中央服务器来聚合,P2P结构则可以选取一个临时协调方等方式。

4.3 联邦平均算法介绍

local SGD/FedAvg

4.3.1 联邦优化

联邦学习中的优化问题称为联邦优化。联邦学习面临的挑战:

  1. 数据集的非独立同分布(Non-IID, Non-independent and Identically Distributed)
  2. 数据量不平衡
  3. 参与方数量大
  4. 通信连接不稳定
    为了应对联邦优化中面临的挑战,谷歌的H.Brendan McMahan等人提出使用联邦平均算法来求解联邦优化问题。联邦平均算法可以用于深度神经网络训练中遇到的非凸损失函数(即损失函数是神经网络模型参数的非凸函数,常见于深度神经网络模型).
    在分布式机器学习中,数据中心或集群中并行训练时,通信开销较小,计算开销占主导。但在联邦学习场景中,通信需要依靠互联网,甚至是无线网络,通信代价占主导地位。因此联邦学习中可能需要使用额外的计算以减少训练模型所需通信轮次。有两种主要方法:增加并行度(增加参与方),增加每一个参与方中的计算(在两个通信轮次间进行更复杂的计算)。

4.3.2 联邦平均算法

具体查看 Google的文章:

MCMAHAN H B,MOORE E,RAMAGE D,et al.Federated learning of deep networks using model averaging[A/OL].arXiv.org(2017-02-28).https://arxiv.org/abs/1602.05629v3.

在这里插入图片描述

4.3.3 安全的联邦平均算法

算法4-1中描述的联邦平均算法会暴露中间结果的明文内容,例如从SGD或DNN模型参数等优化算法中产生的梯度信息。它没有提供任何安全保护,如果数据结构也被泄露,模型梯度或者模型参数的泄露可能会导致重要数据和模型信息的泄露。

  • 加法同态加密(AHE):Paillier算法、基于带错误学习(Learning With Errors,LWE)的加密方法

特别地,通过比较算法4-1和算法4-2可以观察到,诸如AHE这类方法,可以很容易地加入原始的联邦平均算法中,以提供安全的联邦学习。文献[35]指出,在特定条件下,算法4-2展示的安全的联邦平均算法将不会给诚实但好奇的协调方泄露任何参与方的信息,并且其中的同态加密方法能够抵御选择明文攻击(Chosen-Plaintext Attack,CPA)。换言之,算法4-2抵御了诚实但好奇的某一方的攻击,确保了联邦学习系统的安全性。
在AHE方法中,数据和模型本身并不会以明文形式被传输,因此几乎不可能发生原始数据层面的泄露。然而,加密操作和解密操作将会提高计算的复杂度,并且密文的传输也会增加额外的通信开销。AHE的另一个缺点是,为了评估非线性函数,需要使用多项式近似(例如,使用泰勒级数展开来近似计算损失函数和模型梯度)。所以,在精度与隐私性之间需要进行权衡。用于保护联邦平均算法的安全技术仍需进一步研究。

在这里插入图片描述

4.4 联邦平均算法的改进

4.4.1 通信效率提升

  1. 压缩的数据参数更新(Sketched updates)。正常计算更新模型,本地压缩(无偏估计值)。
    • 压缩梯度(DGC)、压缩参数
  2. 结构化的模型参数更新(Structured updates)。模型参数更新被限制为允许有效压缩操作的形式。
  3. 避免将不相关的模型更新上传到服务器,降低通信开销。

4.4.2 参与方选择

判断资源与训练任务相关性,判断计算时间,综合考虑参与方。

第5章 纵向联邦学习

我们把在数据集上具有相同的样本空间、不同的特征空间的参与方所组成的联邦学习归类为纵向联邦学习(Vertical FederatedLearning,VFL),也可以理解为 按特征划分的联邦学习 。“纵向”一词来自“纵向划分”(vertical partition),该词广泛用于数据库表格视图的语境中,如表格中的列被纵向划分为不同的组,且每列表示所有样本的一个特征。本章将介绍VFL,包括其定义、架构、算法和面临的研究挑战。

5.1 纵向联邦学习的定义

出于不同的商业目的,不同组织的数据集通常具有不同的特征空间,但这些组织可能共享一个巨大的用户群体。纵向联邦学习的目的是,通过利用由参与方收集的所有特征,协作地建立起一个共享的机器学习模型。

5.2 纵向联邦学习的架构

在这里插入图片描述

  1. 加密实体对齐。通过加密方式对其共同用户。
  2. 加密模型训练。
    1. 步骤1 协调者C创建密钥对,并将公共密钥发送给A方和B方。
    2. 步骤2 A方和B方对中间结果进行加密和交换。中间结果用来帮助计算梯度和损失值。
    3. 步骤3 A方和B方计算加密梯度并分别加入附加掩码(additional mask)。B方还会计算加密损失。A方和B方将加密的结果发送给C方。
    4. 步骤4 C方对梯度和损失信息进行解密,并将结果发送回A方和B方。A方和B方解除梯度信息上的掩码,并根据这些梯度信息来更新模型参数。

5.3 纵向联邦学习算法

5.3.1 安全联邦线性回归

同态加密,联邦线性回归模型。

  • 协同训练。AB方协同训练发送值给C方,C方综合二者结果解密并更新,
  • 协同预测。AB方各自预测一个值,发送给C,C将值加总计算预测结果。

5.3.2 安全联邦提升树

Secure federated tree-boosting,SecureBoost
SecureBoost:结合XGBoost,使用决策树预测输出

第6章 联邦迁移学习

向联邦学习要求所有参与方的样本具有相同的特征空间,而纵向联邦学习需要各参与方具有相同的样本空间和不同的特征空间。然而在实践中,我们经常会面临的情况是,各参与方间并没有足够的共同特征或样本。在这种情况下,通过迁移学习(TransferLearning,TL)技术,我们仍然可以建立一个拥有良好性能的联邦学习模型。我们将这种结合称为联邦迁移学习(Federated Transfer Learning,FTL)。

6.1 异构联邦学习

数据集差异

  • 参与方的数据集之间可能只有少量的重叠样本和特征。
  • 这些数据集的分布情况可能差别很大。
  • 这些数据集的规模可能差异巨大。
  • 某些参与方可能只有数据,没有或只有很少的标注数据。

6.2 联邦迁移学习的分类与定义

迁移学习的本质是发现资源丰富的源域(source domain)和资源稀缺的目标域(target domain)之间的不变性(或相似性),并利用该不变性在两个领域之间传输知识。

  • 基于实例的联邦迁移学习
    横向:挑选或加权训练样本,较小分布差异;纵向:挑选特征,避免负迁移
  • 基于特征的联邦迁移学习
    参与方协同学习一个共同的表征空间,该空间可以缓解从不同数据转换来的表征之间的分布和语义差异。横向:最小化参与方样本间的最大平均差异;纵向:最小化对齐样本中属于不同参与方的表征距离。
  • 基于模型的联邦迁移学习
    协同学习共享模型。横向本身就是一个基于模型的联邦迁移学习。

6.3 联邦迁移学习框架

在这里插入图片描述

第7章 联邦学习激励机制

如何建立激励机制使得参与方持续参与到数据联邦中是一项重要的挑战。实现这一目标的关键是制定一种奖励方法,公平公正地与参与方们分享联邦产生的利润。
本章介绍联邦学习激励方法(Federated Learning Incentivizer,FLI)的各种激励分配方法。它的任务目标为最大化联邦的可持续性经营,同时最小化参与方间的不公平性,动态地将给定的预算分配给联邦中的各个参与方,还可以扩展为一种能够帮助联邦抵御恶意的参与方的调节机制。

7.1 贡献的收益

如何通过情景感知等方式量化每个参与方为联邦带来的收益,从而实现联邦长期的可持续经营。
在这里插入图片描述

7.1.1 收益分享博弈

  • 平等(Egalitarian):平均分配。
  • 边际收益(Marginal gain):收益为加入团队时产生的效用。个体收益分享(Individual profit-sharing)方法、Shapley博弈收益分享方法(The Shapley game profit-sharing)。
  • 边际损失(Marginal loss):收益为离开团队时产生的效用。工会博弈收益分享方法(The Labour Union game profit-sharing)、公平价值博弈方法(The Fair-value game)。

联邦学习激励方法(FLI)

7.1.2 反向拍卖

  • 用于传感器数据的反向拍卖方法:该方法的目的是在提供有质量的数据前提下,寻求最低廉的传感器组合方式。这类方法基于一种假设,即中央实体清楚自己需要何种数据(例如地理分布)。然而,这类方法通常假设数据质量与成本或代价无关(因为反向拍卖需要相同的物品)。一种不好的结果是,参与方可能仅仅为了获取回报,而提交不具有信息的数据来套利。
    另一种获取指定质量的数据的方法是发布奖励,是一种只能接受或放弃的方法。(三种奖励设计方案:通过输出协议,通过信息理论分析,通过模型改良)

7.2 注重公平的收益分享框架

介绍一种FLI方案。

7.2.1 建模贡献

我们假设数据联邦使用联邦学习惯用的模型训练同步模式[64],其中参与方以轮次为单位共享模型参数。在轮次t中,一个参与方i可以把在数据集上训练的本地模型贡献给联邦。联邦可以根据FLI基本方案对参与方i的数据贡献进行评估。

在这里插入图片描述

为此,联邦可以进行沙盒(sandbox)模拟,以估计参与方的贡献对模型性能的影响。评估的结果由一个变量qi(t)≥0记录,表示联邦模型从参与方i的最新贡献中可以获得的期望边际收益。所提出的激励方案与贡献分数产生的方式完全无关。因此,我们不关注qi(t)生成的确切机制,并假设该数值可用来作为FLI的输入。

7.2.2 建模代价

设ci(t)表示参与方i将di(t)贡献给联邦所需要的代价,有许多种方式可以计算。尽管基于市场调研建立计算模型是可行的,但更实用的解决方案仍然是基于竞拍的自述方法。

7.2.3 建模期望损失

对于每一位参与方i,随着时间的推移,联邦会持续追踪从贡献给联邦的数据中得到的收益回报。因为这个值代表了参与方目前已经收到的和其应该收到的收益之间的差别,我们将其定义为期望损失(regret)。

7.2.4 建模时间期望损失

在一些情况下,由于联邦中预算的限制,一次性付清ui(t)需要的花费代价可能会过高。对于这种情况,联邦需要计算分期支付,以多个轮次向参与方支付收益回报。参与方在当前支付预算中所占的份额B(t),取决于他们的期望损失以及他们等待报酬完全被支付所消耗的时间。

7.2.5 策略协调

公平标准:

  • 贡献公平性(Contribution Fairness)。参与方i的回报应该与其对联邦qi(t)的贡献明确相关。
  • 期望损失分配公平性(Regret Distribution Fairness)参与方间的期望损失和时间期望损失应该尽可能的小。
  • 期望公平性(Expectation Fairness)。参与方的期望损失和时间期望损失随时间推移而产生的变化应该尽可能的小。
    为了满足全部公平性标准,随着时间的推移,联邦应该最大化“价值减期望损失偏移(value-minus-regret drift)”目标函数。

7.2.6 计算收益评估比重

第8章 联邦学习与计算机视觉、自然语言处理及推荐系统

8.1 联邦学习与计算机视觉

8.1.1 联邦计算机视觉

虽然计算机视觉近年来取得了空前的进步,并引领着人工智能时代的变革,但这一非凡的成就很大程度是建立在巨大数量的图像数据的可获得性基础上的。市面上最为成功的计算机视觉应用,通常都是由具有大量资源或庞大用户基础的组织研发的,因为他们可以收集到大量且高质量的数据。
这种以资源为中心的深度学习开发模式,一方面确实促进了AI的研究和发展,但另一方面也阻碍了大量小公司对AI技术的使用。因为这些小公司通常只有有限的数据资源。一种可能的获取数据的方式是通过数据共享。然而,由于数据隐私、监管风险、缺乏激励等原因,许多企业并不愿与其他企业直接共享数据。
如:大公司有足够的资源以训练模型,但小公司虽持有良好的数据,但样本数不够,训练效果不好。使用联邦学习可以在保证安全性 下共享检测模型。

8.2 联邦学习与自然语言处理

RNN,LSTM,GRU

8.2.1 联邦自然语言处理

联邦学习在NLP中的一个典型应用是基于移动设备用户频繁键入的单词来学习词库外(Out-of-Vocabulary,OOV)单词[62]。词库外单词是指不包含在用户移动设备的词库表中的词汇。词库表中缺少的单词无法通过键盘提示、自动更正或手势输入来预测。从单个用户的移动设备学习OOV单词来生成模型是不切实际的,因为每个用户的设备通常只会存储有限大小的词库表。收集所有用户的数据来训练OOV单词生成模型也是不可行的,因为OOV单词通常包含用户的敏感内容。在这种场景中,联邦学习显得特别实用,因为它可以根据所有移动用户的数据,训练一个共享的OOV生成模型,并且不需要将敏感内容传输到中心服务器或云服务器上。
任何序列化模型,例如LSTM、GRU和WaveNet,都能用来学习OOV单词。联邦OOV模型训练流程类似于图8-2。该流程迭代地执行以下步骤来训练共享OOV生成模型,直到模型收敛为止。

在这里插入图片描述
在这里插入图片描述

在联邦学习期间,位于每一台移动设备的OOV生成模型将不断得到更新,而训练数据将留在设备中,所以每台移动设备最终都能得到一个更强大的OOV生成模型。如图8-3所示,基于所有移动用户数据而训练得到的OOV模型,能够为每个移动端用户提供丰富多样的查询建议。需要注意的是,用户可以完全决定自己加入或离开联邦学习。所以,服务器应该设立一种分析机制,以监测设备的相关统计数据,例如每轮训练中有多少台设备加入或离开联邦学习过程。

8.2.2 业界研究进展

唤醒词检测(hey,siri):高召回率,低误报率,对背景噪声强鲁棒性,由于一直运行,也要求有限的资源运算。

8.3 联邦学习与推荐系统

推荐系统:

  • 克服信息过载
  • 提供定制化推荐
  • 合理利用资源

8.3.1 推荐模型

  1. 协同过滤(Collaborative Filtering,CF)。用户-商品矩阵,稀疏矩阵。(低秩因子分解方法(Low-
    rank factorization),也称为矩阵因子分解)
  2. 基于内容的推荐系统(Content-based Recommendation System)。商品描述与用户画像的匹配度,关键词对齐。
  3. 基于模型的推荐系统(Model-based Recommendation System)。用户-商品关系建模。
  4. 混合推荐系统(Hybrid Recommendation System)。协同过滤+内容过滤。

8.3.2 联邦推荐系统

通常,一个协同过滤模型可以表示为,由多个用户因子向量(每个向量表示一个用户)组成的用户因子矩阵(user factor matrix)、由多个商品因子向量(每个向量表示一件商品)组成的商品因子矩阵(item factor matrix)的组合。联邦协同过滤由所有用户共同地学习这两个矩阵得到,如图8-4所示。包含以下五个步骤:
在这里插入图片描述

在这里插入图片描述

上述过程是联邦协同过滤的一般情况。我们可以利用更强大的模型来代替协同过滤模型,如深度因子分解机(Factorziation Machine,FM)模型[301]以进一步提高性能。除了定制化的推荐任务,联邦推荐系统还可以利用来自不同参与方的不同特征提高推荐的精确度。

文献[65]

第9章 联邦强化学习

9.1 强化学习介绍

在这里插入图片描述

强化学习(Reinforcement Learning,RL)是机器学习的一个分支,主要 研究序列决策问题 。强化学习系统通常由一个动态环境和与环境进行交互的一个或多个智能体(agent)组成。智能体根据当前环境条件选择动作决策,环境在智能体决策的影响下发生相应改变,智能体可以根据自身的决策、环境的改变过程得出奖励。智能体必须处理顺序决策问题,从而获得最大化价值函数的结果(即期望的折扣奖励总和或期望奖励)。传统的强化学习过程可以表示为马尔可夫决策过程(Markov DecisionProcess,MDP)。
如图9-1所示,智能体首先将观察环境的状态(State),然后基于这个状态选择动作(Action)。智能体期望根据所选的动作,从环境中得到奖励(Reward)。智能体的奖励与其上一步的状态、下一步状态和所做出的决策等因素有关。智能体在状态-动作-奖励-状态周期(SARS)中循环移动。
除了智能体和环境,强化学习系统还包括四个关键子元素:策略(Policy)、奖励信号(Reward)、价值函数(Value function)及可选的环境模型。

9.1.1 策略

决策方法

9.1.2 奖励

奖励方法

9.1.3 价值函数

回报奖励的方法

9.1.4 环境模型

模拟环境动作的虚拟模型

9.1.5 强化学习应用举例

热点:自适应控制、最优控制、离散和连续时间动态系统的反馈控制。
在这里插入图片描述

9.2 强化学习算法

分类方式:

  1. 基于模型与无模型
  2. 基于价值与基于策略
  3. 蒙特卡洛更新与时间差分更新
  4. 在策略与离策略

在这里插入图片描述

9.3 分布式强化学习

当智能体需要探索一个巨大的状态-决策空间,可能会非常耗时或需要大量的算力。

9.3.1 异步分布式强化学习

多个智能体分别探索它们自己的环境,并异步地更新一组全局参数。这允许大量的参与方来协作地学习。由于存在延迟可能会遇到陈旧梯度问题。

  • 异步优势动作评价算法(Asynchronous Advantage Actor-Critic,A3C)
  • 通用强化学习架构(Gorila)

9.3.2 同步分布式强化学习

  • Sync-Opt同步随机优化
  • 优势动作评价算法(Advantage Actor-Critic,A2C)

9.4 联邦强化学习

相较于分布式强化学习更加安全

9.4.1 联邦强化学习背景

9.4.2 横向联邦强化学习 HFRL

并行强化学习(Parallel Reinforcement Learning),多个智能体被假设执行同一任务(与状态和动作相关的奖励相同)。智能体们可能在不同环境中进行学习。需要注意的是,大多数并行强化学习的设置采用的是迁移智能体经验或梯度的操作。显然,由于隐私保护问题,这类方法是行不通的,因此,人们采用HFRL方法来应对隐私保护问题。HFRL应用并行强化学习应用的基础设置,并将隐私保护任务作为一项额外约束(同时对于联邦服务器和智能体)。
在这里插入图片描述

9.4.3 纵向联邦强化学习 VFRL

联邦DQN

第10章 应用前景

金融、医疗、教育、城市计算和智慧城市、边缘计算和物联网、区块链、第五代移动网路

参考文献
[35]PHONG L T,AONO Y,HAYASHI T,et al.Privacy-preservingdeep learning via additively homomorphic encryption[J].IEEETransactions on Information Forensics andSecurity,2018,13(5):1333-1345.

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

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

相关文章

Java之面向对象《ATM自动取款机》

一、前言: 关于上次我写的博客文章中"Java之《ATM自动取款机》(面向对象)",里面还不够完善,因为在各个服务功能相互跳转时,会出现混乱问题。这次我对其进行了修改和改进,若还有其它在大家测试时出现的bug请及…

Java根据指定端口关闭进程(端口占用 Web server failed to start. Port 6061 was already in use.)

查询指定端口的pid netstat -ano | findstr 6063杀掉进程 taskkill /f /pid 36804

vue跨域请求

vue.config.js devServer:{proxy:"http://localhost:8081"}main.js中定义 import axios from "axios"; axios&#xff0c; App.vue中引用 <template><Article/> </template><script> import Article from "/components/Ar…

事件机制?

事件流&#xff1a; 描述的页面接收事件的顺序。先进行事件捕获 到达目标元素 在进行事件冒泡 分为事件捕获和事件冒泡 事件冒泡&#xff1a;从具体元素从内向外依次触发事件 从下面这个小案例可以清楚了解什么是事件冒泡 <!DOCTYPE html> <html lang"en"…

BUUCTF 我吃三明治 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;解压得到一张.jpg图片。 解题思路&#xff1a; 1、使用010 Editor打开.jpg文件&#xff0c;在.jpg文件尾的位置发现了第二张图片&#x…

陪诊系统|沈阳陪诊系统定制|陪诊软件保障患者安全与便利

陪诊系统是一种以专业医疗服务为核心的综合性陪同体系。它涵盖了医院前线咨询、专业陪诊、医后关怀等多个环节&#xff0c;提供全方位的医疗咨询服务和专业的医疗陪同服务。通过陪诊系统&#xff0c;患者可以获得更加便捷、高效、安全的医疗服务体验。陪诊系统的出现&#xff0…

pyenv local x.xx.x不生效

我本地原来有个python&#xff0c;之后用pip安装了pyenv&#xff0c;使用pyenv新安装了一个python&#xff0c;设置某个local的时候发现不生效。 这种情况需要检查3个地方。 1.有没有生成这个文件 2.需要重新开一个cmd 3.需要保证pyenv的path环境变量比之前本地的python优先…

【每日一题】子数组的最小值之和

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;贡献法单调栈 写在最后 Tag 【贡献法】【单调栈】【数组】【2023-11-27】 题目来源 907. 子数组的最小值之和 题目解读 计算整数数组的连续子数组中最小值的和。 解题思路 本题朴素的解决思想是求出所有的连续子数组…

美团小游戏rpk包对接流程小记

美团小游戏rpk包对接流程小记 美团小游戏开发时&#xff0c;其实很简单&#xff0c;和各大厂差不多。 一、先贴个文档&#xff1a; 美团游戏开放平台文档地址&#xff1a; https://game.meituan.com/#/docs二、接入前准备&#xff1a; 与微信抖音小游戏的流程差不多&#xf…

A preview error may have occurred. Switch to the Log tab to view details.

我们在学习鸿蒙应用开发的UIAbility内页面间的跳转内容的时候会遇到页面无法跳转的问题。并伴随标题的error报错 Entry Component struct Index {build() {Column({ space: CommonConstants.COLUMN_SPACE }) {//UIAbility内页面间的跳转Button(Next).onClick(() > {router.…

Matplotlib散点图的创建_Python数据分析与可视化

Matplotlib散点图的创建 plot绘制散点图scatter画散点图plot与scatter效率对比 plot绘制散点图 散点图也是在数据科学中常用图之一&#xff0c;前面的文章我们学习了使用plt.plot/ax.plot画线形图的方法。同样的&#xff0c;现在用这些函数来画散点图&#xff1a; x np.lins…

★数据库建表优化

1、冷热分离&#xff1a; 一个表里最好不要存在即有常修改的数据又有不常修改的数据&#xff0c;一个好的做法是&#xff0c;把常修改更新的字段当做热表单独建表&#xff0c;同理不经常修改更新的字段当做冷表单独建表。 2、控制B树的高度&#xff1a; 也就是控制一个表存储的…

四、Lua循环

文章目录 一、while(循环条件)二、for&#xff08;一&#xff09;数值for&#xff08;二&#xff09;泛型for&#xff08;三&#xff09;repeat util 既然同为编程语言&#xff0c;那么控制逻辑里的循环就不能缺少&#xff0c;它可以帮助我们实现有规律的重复操作&#xff0c;而…

GoLong的学习之路,进阶,RabbitMQ (消息队列)

快有一周没有写博客了。前面几天正在做项目。正好&#xff0c;项目中需要MQ&#xff08;消息队列&#xff09;&#xff0c;这里我就补充一下我对mq的理解。其实在学习java中的时候&#xff0c;自己也仿照RabbitMQ自己实现了一个单机的mq&#xff0c;但是mq其中一个特点也就是&a…

单片机薪资翻倍的学习方向

今天以一个案例&#xff0c;给大家分析下做单片机开发&#xff0c;薪资翻倍的底层逻辑和方法论&#xff0c;尽量做到有理有据。 我是2011年开始做单片机开发的&#xff0c;那几年&#xff0c;单片机的工资&#xff0c;可以说是惨不忍睹。 相关贴吧也是一片哀嚎&#xff0c;有些…

伦敦金新手和有经验的投资者 他们有什么不同?

按照笼统的分类&#xff0c;伦敦金市场中的投资者可以分为新手和有经验的&#xff0c;当然其中并没有明确的界限&#xff0c;不是说投资者做伦敦金交易满2年就一定会成为有经验的投资者。但是从下面我们的对比中&#xff0c;我们或许可以看出新手和有经验投资者的一些差别。 先…

「琥珀黄」农产品销售运营大屏助力农产品销售改革

农业作为国家经济的重要支柱产业&#xff0c;农产品销售一直备受关注。农产品销售一直是农业行业关注的焦点之一。随着科技进步和市场竞争的加剧&#xff0c;传统的销售方式面临着新的挑战。为了让农产品销售实现腾飞&#xff0c;我们需要打破传统&#xff0c;采用新的销售策略…

自然资源科普交互大屏助力自然资源的保护

在当代社会&#xff0c;自然资源的科学管理和可持续利用变得愈发重要。为了提高公众对于自然资源的认知和理解&#xff0c;科普交互大屏成为一个新兴的工具。它通过生动的图像和实时数据展示&#xff0c;以及与观众的互动方式&#xff0c;让人们更深入地了解自然资源和环境保护…

【Leetcode】907. 子数组的最小值之和

给定一个整数数组 arr&#xff0c;找到 min(b) 的总和&#xff0c;其中 b 的范围为 arr 的每个&#xff08;连续&#xff09;子数组。 由于答案可能很大&#xff0c;因此 返回答案模 10^9 7 。 示例 1&#xff1a; 输入&#xff1a;arr [3,1,2,4] 输出&#xff1a;17 解释&…

Spine深入学习———— 渲染

数据有了之后&#xff0c;就开始渲染 渲染相关 绘制顺序 骨架的绘制顺序就是一个插槽列表&#xff0c;在插槽列表中上方的附件在下方之上绘制&#xff0c;绘制顺序可以在层级树中的骨架下查看。 基础流程 渲染实现 以下按照cocos2dx的实现来 &#xff08;cocos2dx 3.7 spin…