代码
# 巧用or 当没有max_len(为None)时用后面一个,或者用max_len
max_len = max_len or max(map(len, names))
tf.stack
tf.transpose # 交换维度
from IPython.display import clear_output
Adversarial
对于对抗样本:
卷积网络对图像的识别的缺陷:下面三个有同样的L2损失。这就使一个熊猫的图片,对每一个像素点作肉眼几乎不可见的微调,会让系统认为其为长臂猿
我们需要将第二个和第三个作为对抗样本,让网络学习其为3
轻微更改样本的每一个像素点并尝试最大化损失函数,往往就很容易达到人肉眼觉得很相近,网络却给出其他标签的结果。
- 注意 对抗样本处在特定的空间,不是噪声!
如果随机在原样本上添加噪声,网络大概率仍旧识别正确
由于激活函数是分段线性的。网络在样本的特定领域空间可能会欠拟合,划分错误。
对于MNIST数据集,平均一个样本有25个维度会有这样的问题(总共32*32个维度)
对于自然环境下的照片,模型预测的不错。但是对于高斯噪音生成的有些照片,模型也会高确信度预测其为某一类照片
对于同样的训练集,用一个模型生成对抗样本让另一个模型来学习
或者采用非监督学习优化模型
不知道图片标签,但是让原图片与对抗生成图片预测结果一样(数值,MSE……)
两个出口,一个出口用于分类,另一个出口用于判断是否是训练数据(应该让其判断失误,才能保证模型没有过拟合)
image.png
网友评论