当前位置:网站首页>干货!基于GAN的稀有样本生成
干货!基于GAN的稀有样本生成
2022-07-04 03:47:00 【AITIME论道】
点击蓝字
关注我们
AI TIME欢迎每一位AI爱好者的加入!
在实际应用中,我们经常需要稀有类别的样本。例如,在安全领域,系统设计人员希望获得具有攻击功能的数据包来修补漏洞;在系统和网络领域,维护人员希望获得能使系统性能下降的数据包来测试系统;在机器学习领域,稀有类别的图像可以用于调试机器学习算法。
在本工作中,我们提出了RareGAN,一个基于生成对抗网络(Generative Adversarial Networks, GANs)的稀有样本生成算法。
实验表明,RareGAN具有很好的通用性:它能被广泛地用于上述安全、系统、网络、机器学习的应用中。
同时,RareGAN具有很好的效果:相比之前最先进的针对DNS放大攻击的漏洞挖掘算法,RareGAN在花费更少的DNS请求的情况下能达到更好的攻击样本覆盖度。
本期AI TIME PhD直播间,我们邀请到美国卡内基梅隆大学博士生——林梓楠,为我们带来报告分享《基于GAN的稀有样本生成》。
林梓楠:
美国卡内基梅隆大学博士生,本科毕业于清华大学(连续三年获得国家奖学金)。主要研究方向为生成模型的基础理论,及生成模型在网络、系统、安全、隐私上的应用。相关工作发表于NeurIPS(Spotlight奖),ICML,AISTATS,AAAI,IMC(最佳论文候选),SIGCOMM等。主页:http://zinanlin.me/
1
动机
近几年,生成模型在学术界是一个很火的领域,同时在工业界也得到了很多应用。
在生成模型领域,被广泛研究的一个方向是无条件生成:比如训练一个模型来生成很多的动物图片。另一个方向是有条件生成:不仅能生成动物图片,还能控制生成的图片是何种动物。
我们研究了一个不一样的问题。第一,我们只想生成稀有类别的样本。这里稀有类别指的是比例特别小的类别,比如说熊猫的图片;第二,初始的数据集是没有类别标记的。第三,我们在训练中可以请求某些样本的类别标签,不过请求的数量存在上限。
这个问题在系统、网络、安全领域有很多的应用。
例子1:DNS放大攻击
DNS是一个我们日常常用的网络协议。在DNS放大攻击中,黑客把给DNS服务器发送的请求中自己的IP地址替换成了其想要攻击的IP地址。
DNS服务器返回的数据包通常比DNS请求中的数据包大很多,所以攻击者用很少的网络带宽就能耗尽被攻击者的网络带宽。因为攻击者利用DNS服务器放大了请求中的数据包大小,因此这个网络攻击被称作DNS放大攻击。
作为DNS服务的运营商,我们希望知道哪些DNS请求数据包具有高放大率以便提前阻止DNS服务器被黑客利用。我们可以将该问题抽象为我们之前提到的问题。
1.我们希望生成高放大率的DNS请求数据包。这些数据包在所有合法的DNS请求中非常稀疏,因此可以被看做是稀有类。
2.初始情况下,这些样本是没有类别标记的,因为我们不知道哪些数据包具有高放大率。
3.我们可以在训练过程中将数据包发送到DNS服务器得到它们是否为高放大率的标签。但这个过程需要一定的时间。为了保证系统的效率,我们希望限制请求的标签的数量。
例子2:性能压力测试
在系统和网络领域中,性能压力测试是一个很常见的任务。给定一个系统,性能压力的目标是获得能使得系统资源使用率(如CPU、内存占用率)过高的数据包,并测试系统在这些数据包下的性能。获得能使得系统资源使用率过高的数据包的这个问题也可以被抽象为我们之前提到的问题。
1.资源使用率过高的数据包在所有数据包中非常稀疏,因此可以被视为稀有类。
2.初始情况下,这些样本是没有类别标记的,因为我们不知道哪些数据包具有高资源使用率。
3. 训练过程中我们可以测试数据包的资源占用以获得类别标签。由于测试过程可能非常耗时,我们需要对请求的标签数量设置一个上限。
之前工作中的问题
针对这些问题,网络、系统、安全领域的研究人员提出过许多的解决方案。然而大多数解决方案都需要设备、服务器的源代码。在现实场景中,由于设备的生产者和使用者常常来自于不同的机构,设备的使用者通常没有接触源代码的条件。因此,我们亟需一个不依赖系统源代码的解决方案。
这几年,生成模型尤其是GAN取得了特别大的进展。我们的想法是:我们能否训练一个GAN来生成这些稀有类别的数据包?
2
方法
难点
我们发现,简单地使用GAN或者Conditional GAN并不能达到很好的效果。我们以DNS放大攻击为例来解释。
GAN
GAN包含生成器和鉴别器。下图的下半部分展示了GAN的基本结构。
一个简单的利用GAN的方法是,我们从未标记的DNS请求数据包中随机挑选B个,其中B代表请求标签数量的上限。然后我们把这B个数据包发送给DNS服务器,获得他们的放大率。然后我们只保留高放大率的数据包(图中的红色圆圈),并用它们来训练一个GAN。
理想情况下,这个GAN能学习到高放大率数据包的特征,并且生成更多的高放大率的数据包。然而,由于高放大数据包非常稀有,通过这个过程我们只能得到很少的训练样本。这会导致 GAN 过拟合。
Conditional GAN
我们注意到上面方法中被丢弃的大量的低放大率的数据包(图中灰色圆圈)实际上对学习过程很有帮助,因为高放大率和低放大率数据包的特征是互补的。我们能否将低放大率的数据包也纳入到训练过程中呢?Conditional GAN就能做到这点。
Conditional GAN是一种特殊的GAN:不仅能够生成新的样本,还能够控制样本的类别。ACGAN是一种被广泛使用的Conditional GAN。下图中的下半部分展示了ACGAN的基本结构。相比原始的GAN,ACGAN多了一个分类器用于预测样本的类别。
一个简单的利用ACGAN的方法是,我们用上述过程中获得的高放大率和低放大率的数据包一起训练一个ACGAN。之后我们可以指定生成类别为稀有类,来让ACGAN生成更多稀有类别的数据包。然而,该方法效果还是不好。原因在于稀有类样本还是太少。
在本工作中我们提出了几个方法来改进ACGAN中鉴别器和分类器在少样本情况下的效果。
方法一:利用未标记样本提高鉴别器效果
我们注意到ACGAN中鉴别器的损失函数实际上并不需要标签,于是我们改变了ACGAN的训练方法,使用所有未标记的样本来训练鉴别器。这大大增加了鉴别器训练样本的数量。
方法二:利用主动学习提高分类器效果
为了提高ACGAN中分类器的效果,我们借鉴了主动学习的方法。在新方法中,我们将训练过程分为几轮。
第一轮中,我们只标注B0个样本来训练一个初始的ACGAN;之后将未标记的样本输入给ACGAN的分类器并保留分类器对结果最不确信的B1个样本输入到DNS服务器中获得它们真实的标签,并将它们加入到训练数据集中,以便分类器可以学习改进。我们将多次循环这个过程,直到花光所有B的标签预算。
3
结果
图片
尽管我们研究的问题源于网络、系统、安全领域,我们发现,我们提出的方法再图片数据集上也有很好的效果。
Red: generated image
Green: the nearest training image
Yellow: their overlap
上图展示了MNIST数据及上的效果,我们将数字0视为稀有类,其中删除了一些数字0使得其占比为1%。第一行来自真实数据集。第二行和第三行的结果证实了我们之前的猜测:由于稀有类占比过少,直接用GAN或者ACGAN无法取得特别好的效果。GAN发生了严重的过拟合;ACGAN生成的样本质量很差。
上图中最后一行是我们提出的RareGAN方法。我们可以看到RareGAN生成的样本具有很好的多样性和质量,而且RareGAN能从训练集中推广以生成训练集中不存在的样本。
下图展示了CIFAR10数据集上的效果。
For each method:
• First row: generated image
• Second row: the nearest training image
我们同样可以看到,相对于之前的方法而言,RareGAN生成的样本同样具有很好的多样性和质量。
网络、系统、安全中的应用
回到先前提到的性能压力测试。下图中X轴指的是生成数据包的质量,即生成数据包和目标的高资源占用率的数据包这两个分布之间的吻合程度,越小越好;Y轴是样本多样性,越大越好。我们看到,RareGAN同时具有很好的多样性和质量。
我们还对之前提到的DNS放大攻击做了相同的实验。同样,RareGAN生成的数据包同时具有很好的多样性和质量。
我们还与之前安全研究人员提出的专门为DNS放大攻击设计的方法AmpMAP(发表于2021年security顶会 USENIX Security)进行了对比。
我们可以看到,我们提出的 RareGAN 可以达到更好的样本质量和多样性,同时花费更小的标签预算。
4
总结
网络、系统和安全领域中的许多实际问题都可以抽象为从稀有类中生成更多的样本(比如数据包)。先前研究者在网络、系统、安全领域中提出的方法通常需要系统的源代码,但系统的维护人员很难拿到源代码。
在我们的这项工作中,我们将这个问题抽象为一个新的生成模型的问题。我们提出了一种基于 GAN 的方法RareGAN来解决这个问题。RareGAN特别的通用,并且比现有方法具有更好的样本质量和多样性。我们相信 RareGAN 在网络、系统和安全领域将会有很多的应用。
提
醒
论文题目:
RareGAN: Generating Samples for Rare Classes
论文链接:
https://arxiv.org/abs/2203.10674
点击“阅读原文”,即可观看本场回放
整理:林 则
作者:林梓楠
往期精彩文章推荐
记得关注我们呀!每天都有新知识!
关于AI TIME
AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。
迄今为止,AI TIME已经邀请了600多位海内外讲者,举办了逾300场活动,超210万人次观看。
我知道你
在看
哦
~
点击 阅读原文 查看回放!
边栏推荐
猜你喜欢
ctf-pikachu-CSRF
Wechat official account web page authorization
JSON string conversion in unity
三菱M70宏变量读取三菱M80公共变量采集三菱CNC变量读取采集三菱CNC远程刀补三菱机床在线刀补三菱数控在线测量
Pytest multi process / multi thread execution test case
Management and thesis of job management system based on SSM
Penetration practice - sqlserver empowerment
Getting started with the go language is simple: go implements the Caesar password
MySQL one master multiple slaves + linear replication
Want to do something in production? Then try these redis commands
随机推荐
Redis cluster view the slots of each node
JDBC 进阶
[PaddleSeg 源码阅读] PaddleSeg计算 mIoU
CesiumJS 2022^ 源码解读[0] - 文章目录与源码工程结构
Katalon框架测试web(二十六)自动发邮件
Msgraphmailbag - search only driveitems of file types
疫情来袭--远程办公之思考|社区征文
system information
Getting started with the go language is simple: go implements the Caesar password
What kind of experience is it when the Institute earns 20000 yuan a month!
[PaddleSeg 源码阅读] PaddleSeg 自定义数据类
【华为云IoT】读书笔记之《万物互联:物联网核心技术与安全》第3章(上)
Exercices de renforcement des déclarations SQL (MySQL 8.0 par exemple)
Activiti7 task service - process variables (setvariable and setvariablelocal)
智慧地铁| 云计算为城市地铁交通注入智慧
Objective C attribute keyword
Why is the probability of pod increasing after IPtable
[.NET + mqtt]. Mise en œuvre de la communication mqtt dans l'environnement net 6 et démonstration de code pour l'abonnement et la publication de messages bilatéraux du serveur et du client
[book club issue 13] packaging format of video files
支持首次触发的 Go Ticker