LeNet生成对抗样本

LeNet生成对抗样本

实验中发现,用MNIST数据集训练得到的LeNet(测试精度达到98.5%)在进行对抗样本生成时,生成的对抗样本还是可以看得出修改的痕迹,只不过对于人而言修改后的图像并不妨碍识别

出现的问题

  1. 代码原因,应该是
grad = tf.gradients(logits[:,y_target],x)
dX = sess.run(grad,{x:...,y_target:...})[0]
I += lr * dX[0,:,:,:]

这里写图片描述
显然这里的原因是只加了dX一行的元素
2.
MNIST数据集很好训练,随便设计一个全连接网络或者卷积网络都能达到90%以上的测试精度,甚至连一个简单的2层全连接网络也可轻易达到97%的精度。既然如此,对于MNIST数据集而言,CNN的意义是什么?
3. 在loss项中加入梯度范数正则化,似乎有一定效果
L=E{log(f(x)y)+λ1Ci=1,...Cdf(x)idx} L = E { − l o g ( f ( x ) y ) + λ ⋅ 1 C ∑ i = 1 , . . . C ‖ d f ( x ) i d x ‖ }

lr = 1e-1,dX = grad
不加梯度正则项时,

0 validation accuracy: 0.969
1 validation accuracy: 0.971
2 validation accuracy: 0.975
3 validation accuracy: 0.9746
4 validation accuracy: 0.9658

生成的效果
这里写图片描述
加梯度正则项 λ=0.1 λ = 0.1 时,

0 validation accuracy: 0.9562
1 validation accuracy: 0.9682
2 validation accuracy: 0.9714
3 validation accuracy: 0.9726
4 validation accuracy: 0.9742

生成的效果

y_target: 4
prediction: 2
1 : 2
2 : 2
3 : 2
4 : 2
5 : 2
6 : 2
7 : 2
8 : 2
9 : 2
10 : 2
11 : 2
12 : 2
13 : 2
14 : 2
15 : 2
16 : 2
17 : 2
18 : 2
19 : 2
20 : 2
21 : 2
22 : 2
23 : 2
24 : 2
25 : 2
26 : 2
27 : 2
28 : 2
29 : 4

这里写图片描述
可以看到,生成对抗样本所需的迭代次数大大提升
4.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值