前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >蚂蚁集团联手上海财经大学:揭开AI大模型在金融领域的神秘面纱 读书笔记 - VI

蚂蚁集团联手上海财经大学:揭开AI大模型在金融领域的神秘面纱 读书笔记 - VI

作者头像
用户10675374
发布2024-11-08 10:21:36
发布2024-11-08 10:21:36
1210
举报
文章被收录于专栏:ShoelessCaiShoelessCai

这是第五篇关于蚂蚁金服和上海财经大学,大模型阐述的文章:蚂蚁集团联手上海财经大学:揭开AI大模型在金融领域的神秘面纱 读书笔记 - V。 接下来讨论 基于隐私泄露 的方法。 第一,自由文本推断攻击。 对抗攻击(adversarial attack)旨在利用对抗样本(adversarial example)来欺骗受害模型(victim model)。攻击模型(attack model)通过对原样本进行轻微的扰动来生成对抗样本,其真实的分类标签 与原样本保持一致,但是受害模型的判断却会出错。 对抗攻击被认为可以暴露受害模型的弱点,同时也有助于提高其鲁棒性和可解释性。 ShoelessCai 评注:之后我们也会看到,文章对于模型的可解释性,进行长篇大论的解释。我们可以认为是针对黑盒模型,一种测试性解释。换言之,如果全是线性模型,我可以按照输入模型的变量,去分析解释因素(factor),或者承载(load)。这时候我知道导致我输出变量的改变是什么。但是针对神经网络类型的模型,反向侦测可能就是一种思路。 在图像领域已有CleverHans、Foolbox、Adversarial Robustness Toolbox (ART)等多个对抗攻击工具包,这些工具包将图像领域的对抗攻击模型整合在一起,大大减少了模型复现的时间和难度,提高了对比评测的标准化程度,推动了图像领域对抗攻击的发展。 简要介绍一下这些算法。 CleverHans,该平台的攻防框架,将攻防算法模块化,全球研究者能在这一平台上,快速研发不同的对抗样本生成算法和防御算法。以 FGSM 和 PGD 为例,生成对抗样本,与干净样本对比正确率。因为是模块化平台,上述做法,可以通过调用函数实现。 以 FGSM 为例,如下述方式定义参数,使用 CleverHans 平台。 def fast_gradient_method( model_fn, x , eps, norm, clip_min=None , clip_max=None, y=None , targeted=False , sanity_checks=False, ) Foolbox,较为成熟度工具箱。 无目标攻击 raw, clipped, is_adv=attack( fmodel, data.to(device), target.to(device), epsilons=0.1 ) 有目标攻击 raw, clipped, is_adv=attack( fmodel, data.to(device), epsilons=0.15, criterion=criterion ) 可以发现 有无目标攻击 有一点不同就是是否含有 target。无目标攻击需要样本 target,告诉模型“只要最终判定的类别不为 target 即可”。有目标攻击,则是提供 criterion 参数,告诉了模型该如何定向分类。 两种攻击模式都存在 epsilons 参数,这是必要参数,设定了像素点最大变化大小(没怎么懂,先放着)。上述的 attack 实际返回了三个变量:第一,raw 就是正常攻击产生的对抗样本;第二,clipped 就是通过 epsilons 剪裁生成的对抗样本;第三,is_adv 包含每个样本的布尔值,指示 raw 中哪些样本它们既被错误分类,又在干净样本周围的小邻域内(半径为 epsilon)。 上述代码的解释比较直接,我们可以认为,FoolBox 就是用参数描述目标,让模型的分类能力变差,这才是所谓的攻击。这就是这类工具箱,免疫型操作的 Basic Idea。 从文章的描述看,调用工具箱,以及 PyTorch,还是比较容易提升模型的“免疫力”的。 Adversarial Robustness Toolbox (ART),专门用于机器学习稳健性的 Python 工具包,具有模型防御功能,接下来,我们来看看是如何起作用的。官方文件,“applications against the adversarial threats of Evasion, Poisoning, Extraction, and Inference. ”。 按照 ShoelessCai 的理解。ART 主要针对模型进行如下操作,污染样本、抽取重要信息,以及干预模型预测这类事件。这是 ART 这个工具箱的官方解释。注意,这个工具箱是持续地更新和迭代的。 回到正文。 文本领域鲜有类似的工具包,据我们所知目前仅有 TextAttack 这一个文本对抗攻击工具包。然而它所覆盖的攻击类型十分有限(仅支持gradient-/score-based类型的攻击以及字/词级别的扰动),其可扩展性也有待提高。相比之下我们的 OpenAttack 支持所有的攻击类型,且具有很高的可扩展性。 OpenAttack 内置了很多常用的分类模型(如 LSTM,BERT)以及经典的分类数据集(例如,SST,SNLI,AG’s News)。用户可以很方便地对这些内置的模型进行对抗攻击。下面的示例代码展示了如何使用 Genetic 这一基于遗传算法的对抗攻击模型对 BERT 在 SST 数据集上进行攻击。 针对分类模型再作简单的了解。

OpenAttack 提到的分类模型:LSTM

LSTM,长短时记忆网络(LSTM)是一种特殊类型的RNN,循环神经网络的一种,1997年提出的算法。它有几大特点:一是解决梯度消失的问题。这么描述的,“捕捉、理解长序列中的复杂依赖关系”,暂时这么理解吧。二是捕捉长期依赖性。允许网络捕捉和理解长序列中的复杂依赖关系。三是应用广泛,灵活,应用于语音识别、机器翻译、时间序列分析。 LSTM 最大特点是存在“记忆单元”,存在三个门,分别是输入门、输出门、遗忘门,这些门怎么判断呢?用 Sigmoid Diverge。注意,遗忘门是决定丢弃的信息的。换言之,LSTM 就是人为增加长期记忆单元,长期的重要的信息可以留下,短期的不重要的可以去除。工程师需要知道怎么部署好代码。

OpenAttack 提到的分类模型:BERT

BERT,Bidirectional Encoder Representations from Transformers 是谷歌在2018年10月推出的深度语言表示模型。据说这个模型一退出就受到热捧。该模型的背景知识,包括Word2Vec、LSTM、Transformer-Base、ELMo、GPT等。 首先,关于 BERT 主模型。BERT通过预训练(pre-training),预训练后就得到了主模型的参数(parameter,这里有针对预训练的预损失模块)。模型用到下游任务,也是用配套模块(换言之,这些任务可以独立拆装)。第一步,投喂主模型预训练的参数,下游任务模块随机初始化,然后微调(fine-tuning)。主模型分三部分:嵌入层、编码器、池化层。 输入这个步骤,有一个 Tokenization 的过程,译成“标记化”。还有一些标点、用词习惯要做标准化,OOV 含义,即字典之外的词。这一步涉及[CLS], [PAD] 等标签。 然后,需要一个固定输入序列(长则截断,短则填充),具体做法,即设定一个 seq_length,这个是超参数(hyperparameter),用于判断整个序列长度是否超出。如果超出,单句截掉最后超出的部分,双句则先删掉较长的那句话的末尾标记。长度相等,则轮流删掉两句话末尾的标记,直到总长度达到要求,换言之,等长的两句话删掉的标记数量尽量相等。如果序列长度过小则填充。 嵌入层,主要是将离散序列,表示成连续的分布。原因,连续分布可以计算相似度或者句里,更容易度量。具体参考 Word2VEC。组件,嵌入变换,层标准化,随机失活。

从示意图来看,这一步是不纠结输入向量内容指向,只是离散变量连续化。 嵌入变换,际上就是一个线性变换(linear transformation)。在NLP&DL领域,矩阵 V 一般是词汇表的大小。但是这种向量往往维数很高(词汇表比较大)而且很稀疏(每个向量只有一个维度为 1,其余全为 0),不好处理。所以可以通过一个线性变换将这个向量转换成 低维稠密的向量。工程实践中,用一个整数编码代替独热码向量,直接用查表的方式取出对应的词嵌入。评注:这段的含义,相较于 0-1 向量,直接记住一个位置,对应位置存取对应信息。这样的变换,我们就称为嵌入变换。因为可以通过矩阵乘法来完成,所以是线性的。Again,这些工作要部署成工程应该是很大的工作量。 层标准化,沿着词嵌入(通道)维进行标准化的。无需特别地计算均值和方差,可以做到以下步骤的操作一致,即训练(training)、评估(evaluation)、推断(inference)这些流程的步骤一致。基本思想,词向量的每一个维度,都可以评估出一组参数,这组参数,可以推断出对应维度的观测值的总体均值和方差,这个均值和方差是抽象的,需要估计的。 编码器,我们先理解“编码器”的组成,包含了隐藏层、线性变换、激活函数(例如,tanh、softmax、GELU)、多头注意力模型(Attention Model 是 Transformer 的一大特色)、跳跃连接。 编码器组成,隐藏层:就是我们所熟知的 Hidden Layer,这里贴一张示意图,便于大家理解。

编码器组成,线性变换:线性变换在CV&DL领域也叫全连接层(fully connected layer)。 y = x*W.T + b 编码器组成,激活函数:激活函数有很多,常见的包括sigmoid、tanh、softmax、ReLU、GELU、Swish、Mish等。 GELU(Gaussian Error Linear Units)是2016年6月提出的一个激活函数。 y = x * Prob{ X <= x } 其中, X服从 N(0,1)。

编码器组成,多头注意力模型: 注意力:是DL领域近年来最重要的创新之一!可以使模型以不同的方式对待不同的输入(即分配不同的权重),而无视空间(即输入向量排成线形、面形、树形、图形等拓扑结构)的形状、大小、距离。 自:是在普通的注意力基础上修改而来的,可以表示输入与自身的依赖关系。 多头:是对注意力中涉及的向量分别拆分计算,从而提高表示能力。

注意,向量 r 是最终输出。 编码器组成,跳跃连接:跳跃连接也是DL领域近年来最重要的创新之一!跳跃连接也叫残差连接(residual connection)。 跳跃连接,即某一层的输出跳过若干层,直接输入某个更深的层。BERT 每个隐藏层,通常有两个跳跃连接。 引入跳跃连接的目的,是为了解决不同架构中的不同问题。在 ResNets 的情况下,跳跃连接解决了我们之前解决的退化问题,而在 DenseNets 的情况下,它确保了特征的可重用性。 通过点在函数表面,搜索最优值时候的平滑程度,来判断“跳跃连接”的作用。这里注意,是残差比较大的时候,大于 epsilon 的时候,做跳跃,这样才能达到平滑搜索的效果。BTW,看图学习非常有效果。

这里贴出 BERT 的代码,点击 阅读原文。

池化层,取出[CLS]标记样本,进行变换。一般情况,Pooling 即用一个小矩阵降维,含义是 input matrix 维数变少。和这里的池化略有差异,本文的池化,含义是取出特定 cell,参加变换,参加被激活。 [CLS] - 每个序列的第一个标记(指的是传递给BERT的输入标记序列)始终是一个特殊的分类标记。 [SEP] - 句子对被打包成一个序列。我们可以通过这个特殊的标记区分句子。(另一种区分的方法是通过给每个标记添加一个学习嵌入,指示它是否属于句子A或句子B) 输出,用于针对每个标记的预测任务和针对整个序列的预测任务。 整个编辑器的代码,点击 阅读原文。

至此,BERT 算法介绍完毕。在复习一遍,BERT 算法是 OpenAttack 先导知识。

OpenAttack 分类数据集:SST

SST,Stanford Sentiment Treebank 是一个标准情感数据集,主要用于情感分类,其中每个句子分析树的节点均有细粒度的情感注解。 该数据集由斯坦福大学的 NLP 组发布,其中句子和短语共计 239232 条,相较于忽略单词顺序的大多数情绪预测系统,这套深度学习模型建立了基于句子结构的完整表示。它可根据单词组成的短语判断情绪。

OpenAttack 分类数据集:SNLT

SNLT。SNL-RPN 转换为 Siamese Natural Language Tracker (SNLT)。依据官方解释。笔者斗胆认为,这应该也是一个数据库,既然公开资料显示,算法更多,暂且当成算法学习!该算法 2018 - 2021 这段时间,受到建模者青睐。 Siamese Natural Language Tracker (SNLT), which brings the advancements in visual tracking to the tracking by natural language (NL) descriptions task. 换言之,就是用自然语言的方式,识别视觉物体。 作者提出的学习框架主要有两个阶段: 1.使用相同大小的图片区域进行孪生 CNN 网络的训练,来评估图片对的相似性。 2.捕捉上下文信息,即将捕获两个感兴趣的图像补丁区域的相对几何和位置的上下文等特征与 CNN 输出相结合, 以生成最终预测。 3.最后使用梯度提升算法,构建图将跨帧所有可用的检测值联系起来,并解决了多目标跟踪的标准线性规划(LP)问题。 与之前工作的差异: 1.使用 CNN 孪生网络, 以估计两个行人检测属于同一跟踪实体的可能性。在提出的 CNN 结构中, 将像素值和光流作为多模态输入进行了组合。 2.以准确的成本计算时, 与线性优化模型的数据关联比复杂模型的性能要好。 3.提出了一种新的跟踪思路(2016)。 上述结论,来自 CSDN ronales 的文章。 随着跟踪的进行,刚开始能够很好描述第一帧情况的语言描述,可能已经不再适用于后续的视频帧。所以,我们需要随着跟踪的进行,关注文本中不同的单词描述。 原文:Therefore, we develop an attention model in the language tracking network to selectively focus on parts of the lingual specification about the visual target. 评注:把前几帧的信息,通过某种方式,传递到之后的 Layer。

用更少的帧,获得更高准确率,是建模的目标。因此也能说明 WITH SNLT 效果。

OpenAttack 分类数据集:AG's News

AG's News:AG新闻(AG新闻语料库)是AG新闻文章语料库的一个子数据集,由AG语料库中4个最大类别(“世界”、“体育”、“商业”、“科学/技术”)的文章标题和描述字段组装而成。AG News每节课包含30000个培训和1900个测试样本。下载地址放在“参考文献”。 至此,关于 OpenAttack 提到的分类数据集也介绍完毕了,关于文本推断算法,以及如何利用这种算法,对模型进行反向干扰,都做了大致的介绍。 随着投喂数据量越来越大,一个直观的想法出现在科学家们的头脑中:“是能否利用生成模型来生成数据”? 有些学者实现privacy preserving data generation,即隐私保护的数据生成,具体来说就是结合了差分隐私(differential privacy)和生成对抗网络(GAN),其中差分隐私可以提供严格的隐私保障,而 GAN 可以用于拟合数据分布,特别是拟合高维数据的数据分布。 与传统的privacy preserving data generation方法需要对后续任务做假设相比,使用基于神经网络的生成模型可以避免对后续的任务做假设。鉴于传统方法往往只能处理简单的后续任务,使用GAN可以很好的避免这个局限。

文本推断攻击:privacy preserving data generation
文本推断攻击:differential privacy

隐私保护整体分成9个部分,包括隐私信息产生、隐私感知、隐私保护、隐私发布、私信息存储, 隐私交换, 隐私分析, 隐私销毁, 隐私接收者。主要研究方向在在 隐私保护, 隐私发布/存储/交换, 隐私分析 这 3 个部分。 隐私保护的方式主要分成以下三种包括,数据失真,数据加密,限制发布。 其中,数据失真,通过扰动原始数据来实现保护隐私,数据扰动的基本思想是 隐藏真实的原始数据,只呈现出数据的统计学特征。 目前的很多隐私保护技术往往结合了其中的多种技术。比如有k-匿名(K-Anonymous)、l-多样性(L-Diversity)、t-紧密性(T-Closeness)等等。 差分隐私保护是通过采用添加噪声的技术使敏感数据失真,是基于 数据失真 的隐私保护技术。而且所需加入的噪声量与数据集的大小无关,即大的数据集只需加入小的噪声量即有很高的安全性。 差分隐私主要是为了应对每个数据集差为 1 的情况下,对那个差为 1 的数据的保护。 例如,医院记录了所有人是否患有该疾病的记录,那么我们可以通过一下差分的方法来获取某个人的具体信息。 (1)先查询整个数据库内患有该病的人数 Num1; (2)查询除某个人以外患有该病的人数 Num2; (3)如果两者相差为1的话,再不考虑重名的情况下,极大可能知道某个人真实的患病情况; 结论,数据集差为 1 的话,这个人的信息极有可能被泄露。 目前,现存这样的函数, f(privacy budget) ,如何使用该测度。现有两个数据集,如果 f() 值较小,说明两个数据集上的概率分布相似,攻击者难以区分,两个数据集。如果 f() 值趋向于 0,此时攻击者完全无法区分。 还有敏感度这一概念,即删除某个样本,对结果的影响程度。 两类差分隐私:中心化差分隐私(CDP),本地化差分隐私(LDP)。 CDP 原理:认为第三方是可信的,因此主要保护的是数据收集分析后的结果发放过程,差分隐私保护机制运行在可信第三方上。 LDP 原理:认为第三方是不可信的,所以本地差分隐私保护的是用户上传数据到第三方的过程,差分隐私机制运行在各个用户的本地。 第二,对抗性交互攻击。 对抗性网络(Generative Adversarial Networks, GANs)自2014年由 Goodfellow 等人提出以来,已成为深度学习研究中最具影响力的创新之一。它们通过引入一个同时训练的生成器(Generator)和判别器(Discriminator)网络,使用对抗的过程来提高生成数据的质量和多样性。 生成器的目标是创建足够真实以至于判别器无法区分的假数据,而判别器的目标则是正确识别出真实数据和生成器产生的假数据。 GANs 的训练过程涉及多个步骤。 首先,随机噪声被送入生成器中,产生一组假数据。然后,这组假数据与一组真实数据一同被输入到判别器中。判别器的任务是对这些数据做出分类,即判断哪些是真实的,哪些是生成器制造的。生成器和判别器的损失函数通常是相互对立的,优化其中一个会减弱另一个的性能。因此,训练过程需要在两者之间找到平衡点。 GAN 的若干挑战。例如,模式崩溃问题,指的是生成器开始产生重复或有限的模式,而不是多样化的数据。为了解决这个问题,研究者提出了多种正则化技术和架构改进,如 Wasserstein GANs(WGANs)和 Spectral Normalization。另外,GANs 的训练不稳定性也是一大难题。 美国国家标准及技术研究所(NIST)于2024年1月发布对抗性机器学习(Adversarial Machine Learning, AML)攻击方法和术语的报告,从不同的机器学习技术类型、技术生命周期的不同阶段、不同的攻击阶段、攻击者目标和能力等维度,构建了对抗性机器学习攻击方法的层级化概念体系,给出了相应的应对和管理方法并明确了进一步的挑战。报告还根据对抗性机器学习文献定义了一个术语表。通过此报告,NIST 意图 推动对抗性机器学习领域形成共同语言和共识,并为AI系统安全测评、安全管理实践及标准化工作提供参考与指引。 评注,关于“文本推断”和“对抗性交互”这两种方式。这些文字是我摘抄的,基本上可以通过字面意思来理解。

参考文献

[1] TechLead(2023),长短时记忆网络(LSTM)完整实战:从理论到PyTorch实战演示,阿里云社区,2023 [2] 官方网站(2024),Foolbox 官网,2024 [3] 官方网站(2024),ART 官网,2024 [4] wangzb96(2020),超详细BERT介绍(一)BERT主模型的结构及其组件,博客园,2020 [5] Stanford(2023),Stanford Sentiment Treebank 标准情感数据集,超神经,2023 [6] wang15771397344(2023),Siamese Natural Language Tracker: Tracking by Natural Language Descriptions with Siamese Trackers,CSDN,2023 [7] AHU-WangXiao(2018),论文笔记:Tracking by Natural Language Specification,博客园,2018 [8] ronales(2019),多目标跟踪笔迹十三:Learning by tracking Siamese CNN for robust target association,CSDN,2019 [9] Qi Feng(2021),Siamese Natural Language Tracker: Tracking by Natural Language Descriptions with Siamese Trackers,Cornell University,2021 [10] AI算法与图像处理(2021),关于跳跃连接你需要知道的一切,腾讯云,2021 [11] paperwithcode(2021),AG News (AG’s News Corpus),paperwithcode,2021 [12] Am_TY(2021),Differential privacy——差分隐私,CSDN,2021

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ShoelessCai 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OpenAttack 提到的分类模型:LSTM
  • OpenAttack 提到的分类模型:BERT
  • OpenAttack 分类数据集:SST
  • OpenAttack 分类数据集:SNLT
  • OpenAttack 分类数据集:AG's News
  • 文本推断攻击:privacy preserving data generation
  • 文本推断攻击:differential privacy
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档