专栏首页绿盟科技研究通讯洞见AI对抗,从频域视角看模型泛化能力

洞见AI对抗,从频域视角看模型泛化能力

在机器学习应用中,泛化能力是衡量机器学习模型性能的一个重要指标。其受到多种因素的影响,包括模型结构,参数,训练数据集,训练方法等。本文以全连接神经网络为例,通过实验的方法,分析输入数据中的不同频率分量对神经网络模型泛化能力的影响。

一.背景

近年来,随着海量数据的积累、计算能力的提高、机器学习方法与系统的持续创新与演进,人工智能技术取得了重大突破,在图像处理、自然语言处理、语音识别等多个领域得到了广泛的应用。

机器学习方法具有改变社会的巨大潜能,同时也存在巨大的安全风险。其中之一就是其容易受到对抗样本的影响。例如图 1中所示为对抗样本的一个经典的案例[1]。通过在原始图片中加入少量的高频噪声,就能够使分类器将熊猫识别为长臂猿。

图 1. 对抗样本

从本质上说,机器学习模型容易被对抗样本影响是由于模型的泛化能力不足所导致。泛化能力指的是学习到的模型对未知数据的预测能力。在实际应用中通常通过测试误差来评价机器学习模型的泛化能力。对于分类问题来说,如果一个机器学习模型在训练数据集上输出的准确度较高,而在测试数据集或者实际应用场景中的输出准确度较低,那么该模型的泛化能力就较弱。泛化能力弱的机器学习模型在实际场景中的输出结果会出现较大的误差。

机器学习模型的泛化能力受到多种因素的影响,其中之一为数据集(包括训练集和测试集)。例如图 1所示的案例中,尽管高频噪声的幅值较小,但机器学习模型仍然判断错误。也就是说,该模型对数据中的高频部分泛化能力不足,鲁棒性较差。该案例也说明了机器学习模型对输入数据中不同的频率分量的敏感度不同。

为了更直观的说明该问题,本文以全连接神经网络为例,通过实验的方法,分析输入数据中的不同频率分量对神经网络模型泛化能力的影响。

二、模型与数据

模型:深度全连接神经网络二分类模型;

输入数据维度:500;

隐藏层神经元数量:(1000, 800, 1500, 1200, 500);

激活函数:relu;

数据集:包含不同频率分量的一维向量;

训练样本数:正负样本各1000;

测试样本数:正负样本各10000。

三、高频噪声即使幅值较低,也会影响神经网络的分类结果

实验一:

实验的两类数据集如下:

f0=sin(x)+sin(3x)+sin(4x)+0.1sin(100x)

f1=sin(x)+sin(3x)+sin(4x)+0.1sin(101x)

其示例数据图像如图 2所示。图中左侧为f0,右侧为f1。

图 2

图 2中展示的两类数据分别包含了四种频率的分量。其中低频分量都相同,只有高频部分的频率有较小的差别(分别为100倍和101倍频率)。采用以上数据对神经网络模型进行训练,并采用相同函数生成的测试数据集进行测试,得到的结果如下:

TP

FN

FP

TN

5835

4165

4878

5122

通过以上实验看出,神经网络模型没有很好地对两类数据进行分类。也就是说,当高频噪声的幅值较小时,噪声信号的差别不足以影响神经网络的分类结果。

下面的实验中提高噪声的幅值,继续测试神经网络的分类性能。

实验二:

数据的生成函数如下:

f0=sin(x)+sin(3x)+sin(4x)+0.2sin(100x)

f1=sin(x)+sin(3x)+sin(4x)+0.2sin(101x)

将数据中噪声的幅值变为原来的2倍,其余参数不变。其示例数据的图像如图 3所示。

图 3

采用上述数据集得到的测试结果如下:

TP

FN

FP

TN

10000

0

0

10000

对于较大的噪声,神经网络模型可以学习到数据中的噪声信息。尽管噪声频率非常接近(100倍与101倍频率),神经网络仍然能够基于噪声的信息对数据进行分类。

虽然实验二中噪声的幅值更高,但相比于信号总幅值来说,其噪声占比仍然很小,约6.25%。通过以上两个实验可以看出,神经网络模型,尤其是过拟合的神经网络模型,可以学习到数据中占比较小的高频噪声的特征。因此,模型对噪声的变化较为敏感。对于待分类的数据,只要对数据中加入一些微小的高频噪声信号,就可能使得神经网路模型输出错误的结果。也就是说神经网络的泛化能力较弱,同时也容易受到对抗样本的影响。

四、神经网络对低频分量幅值的变化更敏感

上面分析了高频噪声幅值对神经网络模型泛化能力的影响。接下来通过实验来分析神经网络模型对数据中不同频率分量幅值的灵敏度。

实验三:

数据的生成函数如下:

f0=4.0sin(x)+3.0sin(5x)+2.5sin(10x)+2.0sin(15x)+2.5sin(100x)

f1=4.0sin(x)+2.5sin(5x)+3.5sin(10x)+0.5sin(15x)+3.0sin(100x)

其示例数据的图像如图 4所示

图 4

采用与训练数据相同的生成函数来生成测试数据,得到的测试结果如下:

TP

FN

FP

TN

10000

0

0

10000

神经网络模型可以完美的对测试数据进行分类。接下来测试模型对不同频率幅值的敏感性。

实验四:

在生成测试数据的过程中改变实验三中生成函数的中频分量(15倍频率)的幅值,如下所示:

f0=4.0sin(x)+3.0sin(5x)+2.5sin(10x)+3.0sin(15x)+2.5sin(100x)

f1=4.0sin(x)+2.5sin(5x)+3.5sin(10x)+1.0sin(15x)+3.0sin(100x)

采用以上数据生成测试数据集,并采用实验三中训练好的模型对测试数据集进行分类,所得到的结果如下:

TP

FN

FP

TN

8289

1711

0

10000

通过上述实验可以看出,通过修改测试集中15倍频率的幅值,模型分类输出的TP和FN发生了较大的变化。

实验五:

在生成测试数据的过程中改变实验三中的生成函数的高频分量(100倍频率)的幅值,如下所示:

f0=4.0sin(x)+3.0sin(5x)+2.5sin(10x)+2.0sin(15x)+4.5sin(100x)

f1=4.0sin(x)+2.5sin(5x)+3.5sin(10x)+0.5sin(15x)+6.0sin(100x)

采用以上数据生成测试数据集,并采用实验三中训练好的模型对测试数据集进行分类,所得到的结果如下:

TP

FN

FP

TN

9996

4

6

9994

通过以上实验可以看出,改变高频分量的幅值对分类结果的影响较小。

在实验四中,函数f1的15倍频率分量的幅值由0.5修改为1.0。在实验五中,函数f1的100倍频率的幅值由3.0修改为6.0,其修改幅度要大于实验四。从测试结果可以看出,尽管高频分量修改的幅度更大,但是其对分类结果的影响却更小。

五、结论

神经网络分类模型的泛化能力受到输入数据的频率分布的影响。总结来说,其影响主要有以下几点:

  1. 高频噪声即使幅值较低,也会影响神经网络的分类输出,尤其是过拟合的神经网络。
  2. 神经网络对输入数据的低频分量幅值的敏感度高于对高频分量幅值的敏感度。

在实际的数据中,例如图1所示的图像数据,熊猫的主要特征由图像的低频分量决定,而图像中的细节和噪声则由高频分量决定。对于低频分量相同或者相近,高频分量有差别的图像,深度学习模型往往通过学习其高频分量特征来将二者进行分类。这就使得深度学习模型的泛化能力变差,为对抗样本提供了条件。在输入图像中加入少量的高频噪声,图像的主要特征没有被改变,所以人眼仍然可以辨别图 1中对抗样本中的熊猫,但是深度学习模型却容易被高频噪声影响从而输出错误的结果。而如果图像的低频分量差异较大,即图像的主要特征差异较大,那么这时图像的高频分量,包括图像的细节部分和噪声,对深度学习模型的输出影响也较小。

参考文献:

[1] Ian J. Goodfellow, Jonathon Shlens, Christian Szegedy. Explaining and Harnessing Adversarial Examples.

关于天枢实验室

天枢实验室聚焦安全数据、AI攻防等方面研究,以期在“数据智能”领域获得突破。

内容编辑:天枢实验室 吴子建 责任编辑:肖晴

本文分享自微信公众号 - 绿盟科技研究通讯(nsfocus_research),作者:天枢实验室

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 容器网络的访问控制机制分析

    随着容器技术成熟和敏捷开发的推广,微服务技术在业界越来越得到普遍的应用,但业务微服务化后又引入了一些新的安全挑战,特别是在访问控制层面。例如:

    绿盟科技研究通讯
  • 恶意软件命名与描述规范研究

    近两年来,恶意软件大肆传播,其复杂度也越来越高,给网络安全造成了巨大威胁,所有行业更加重视恶意软件的预防、检测、取证、关联分析等工作,国家也颁布相关法律法规针对...

    绿盟科技研究通讯
  • RSA 创新沙盒盘点| Securiti.ai——解决隐私合规痛点的一站式自动化方案

    2020年2月24日-28日,网络安全行业盛会RSA Conference将在旧金山拉开帷幕。在RSAC官方宣布入选今年创新沙盒十强初创公司中,前面已经为大家介...

    绿盟科技研究通讯
  • 基础练习 Sine之舞

      最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶...

    刘开心_1266679
  • 广播通信

    广播:可以把数据发送给本地子网上的每个机器。 如果多个进程都发送广播数据,网络就会阻塞 对于UDP来说,存在一个特定的广播地址,255.255.255.255 ...

    用户1154259
  • Eclipse插件之FindBugs

    Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境。

    阿敏总司令
  • 聊聊flink的CsvTableSource

    flink-table_2.11-1.7.1-sources.jar!/org/apache/flink/table/sources/TableSource.s...

    codecraft
  • 推荐一款基于web的Unix系统管理工具webmin

        webmin不仅提供了基于web的系统管理方式,同时它还支持多机集群系统管理配置。

    党志强
  • Airbnb机器学习自动化尝试:提高数据科学家工作效率的变革

    大数据文摘
  • Java中正则表达式分类及使用方法,分门别类,总结的很好

    1、正则表达式是什么? 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 作用 : 比如注册邮箱 , ...

    用户1289394

扫码关注云+社区

领取腾讯云代金券