【论文快读】Intriguing properties of neural networks(2014)

作者:Christian Szegedy, Wojciech Zaremba等
链接:https://arxiv.org/abs/1312.6199
摘要:
这里写图片描述
本文是较早地提出攻击神经网络的文章,工作包括两个方面:

  1. 神经网络的一个high level units和随机若干个units的线性组合之间并没有本质上的区别。所以在高level中,发挥作用的是整个网络的空间结构,而不是单个神经元。
  2. 通过对同一input施加同一“小”的扰动,不同的神经网络都会产生相似的误分类。将这些对抗样本加入训练集,则能提高网络的泛化性能。
ϕ ( x ) \phi(x) ϕ(x)的性质

ϕ ( x ) \phi(x) ϕ(x)是某一确定神经网络的high level layer的激活级,则测试集 I \mathcal{I} I中,对于自然基 e i \mathcal{e}_i ei和随机向量 v v v arg ⁡ max ⁡ x ∈ I ⟨ ϕ ( x ) , e i ⟩ \arg\max\limits_{x\in\mathcal{I}}\langle\phi(x),\mathcal{e}_i\rangle argxImaxϕ(x),ei arg ⁡ max ⁡ x ∈ I ⟨ ϕ ( x ) , v ⟩ \arg\max\limits_{x\in\mathcal{I}}\langle\phi(x),v\rangle argxImaxϕ(x),v是semantically related。

NN的盲点

当考虑到网络表示的复杂结构的时候,unit-level的inspection已经无关紧要了,这就是神经网络的平滑性(smoothness),基于这一性质,通常认为小的扰动很难误导神经网络,然而本文很容易就生成了对抗样本。作者利用箱约束下的L-BGFS方法将该问题由
最 小 化 ∣ ∣ r ∣ ∣ 2   s . t . : 1.   f ( x + r ) = l 2.   x + r ∈ [ 0 , 1 ] m 最小化||r||_2\ s.t.:\\ 1.\ f(x+r)=l\\ 2.\ x+r\in[0,1]^m r2 s.t.:1. f(x+r)=l2. x+r[0,1]m
转化为
最 小 化 c ∣ r ∣ + l o s s f ( x + r , l )   s . t . x + r ∈ [ 0 , 1 ] m 最小化c|r|+loss_f(x+r,l)\ s.t.x+r\in[0,1]^m cr+lossf(x+r,l) s.t.x+r[0,1]m
然后基于权值矩阵的算子范数和Lipschitz条件,对网络的不稳定性进行度量,发现了跨超参数和跨训练集的对抗样本的存在,而且通过正则化降低Lipschitz上界有助于提升泛化性能。

Namespace(命名空间)是一种在编程中用来区分各种不同命名元素的机制。它可以将不同的程序元素(变量、函数、类等)进行分组,使得它们在同一个命名空间下能够互相区分。在不同的命名空间中,可以定义具有相同名称的元素,而不会产生冲突。 快读namespace可以理解为快速了解命名空间的意思。在当前广泛使用的编程语言中,命名空间是一种非常常见的概念,如C++中的命名空间、Python中的模块和包、Java中的包等。通过快速了解命名空间,我们可以更好地进行模块化的开发,避免命名冲突,提升代码的可读性、可维护性和可重用性。 了解命名空间的重要性在于,它可以分隔不同模块之间的代码,使得每个模块可以独立开发和测试。在大型项目中,各个模块的开发往往由不同的开发人员负责,通过使用命名空间,可以避免不同模块中的命名冲突,同时也方便了代码的组织和管理。 在编程中,通过使用命名空间,我们可以更好地控制程序的作用域,避免全局变量的滥用。命名空间可以使得变量和函数的作用范围被限制在一个特定的范围内,有利于代码的结构化和模块化。 总而言之,快读命名空间是指通过了解命名空间的概念和使用方法,可以更好地进行模块化开发,提升代码的可读性和可维护性。同时,对于从事软件开发的人来说,掌握命名空间的概念也是非常重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值