问题标签 [adversarial-machines]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1123 浏览

python-3.x - 计算神经网络的梯度

我正在阅读有关对抗性图像和破坏神经网络的信息。我正在尝试逐步完成这篇文章,但由于我缺乏经验,我很难理解以下说明。

目前,我有一个MNIST数据集的逻辑回归模型。如果你给出一个图像,它会预测它最有可能是的数字......

现在,文章指出,为了打破这张图片,我们需要做的第一件事就是获取神经网络的梯度。换句话说,这将告诉我使图像看起来更像数字 2 或 3 所需的方向,即使它是 7。

文章指出,使用back propagation. 所以你可以定义一个函数......

...这基本上告诉我们当时神经网络正在寻找什么样的形状。

对于那些更有经验的人来说,这似乎很容易实现,但逻辑却让我回避了。

从函数的参数中compute_gradient,我可以看到您向它提供了一个图像和一个标签数组,其中预期标签的值设置为 1。

但我不明白这应该如何返回神经网络的形状。

无论如何,我想了解我应该如何实现这个back propagation算法来返回神经网络的梯度。如果答案不是很直截了当,我想要一些分步说明,了解如何让我back propagation按照文章建议的方式工作。

换句话说,我不需要有人给我一些我可以复制的代码,但我也想了解如何实现它。

0 投票
1 回答
468 浏览

python-3.x - TensorFlow 中的对抗性图像

我正在阅读一篇文章,该文章解释了如何欺骗神经网络来预测你想要的任何图像。我正在使用mnist数据集。

这篇文章提供了一个相对详细的演练,但是写这篇文章的人正在使用Caffe.

无论如何,我的第一步是使用在mnist数据集上训练的 TensorFlow 创建一个逻辑回归函数。因此,如果我restore使用逻辑回归模型,我可以使用它来预测任何图像。例如,我将数字 7提供给以下模型......

这会打印出[7]正确的数字。

现在文章解释说,为了破坏神经网络,我们需要计算神经网络的梯度。这是神经网络的导数。

文章指出,要计算梯度,我们首先需要选择一个预期的结果来移动,并将输出概率列表设置为处处为 0,为预期结果设置 1。反向传播是一种计算梯度的算法。

然后提供了Caffe关于如何计算梯度的代码......

现在,我的问题是,我很难理解这个函数是如何仅通过将图像和概率提供给函数来获得梯度的。因为我不完全理解这段代码,所以我很难将这个逻辑翻译成TensorFlow.

我想我对Caffe框架的工作原理感到困惑,因为我以前从未见过/使用过它。如果有人可以逐步解释这种逻辑是如何工作的,那就太好了。

我已经知道它的基础知识,Backpropagation所以你可能会认为我已经知道它是如何工作的。

这是文章本身的链接... https://codewords.recurse.com/issues/five/why-do-neural-networks-think-a-panda-is-a-vulture

0 投票
1 回答
338 浏览

python-3.x - 获取破坏图像所需的梯度值

我一直在尝试对抗性图像,并阅读了fast gradient sign method以下链接https://arxiv.org/pdf/1412.6572.pdf ...

在此处输入图像描述

说明解释说,可以使用backpropagation... 计算必要的梯度在此处输入图像描述

我已经成功地生成了对抗性图像,但我未能尝试提取创建对抗性图像所需的梯度。我将证明我的意思。

让我们假设我已经使用logistic regression. 我restore的模型和我提取我希望更改为对抗性图像的数字。在这种情况下,它是数字 2...

这是我的方法,而且效果很好。它采用了我的 2 号图像并仅对其进行了轻微更改,以便在我运行以下命令时...

它会将数字 2 预测为数字 6。

问题是,我需要提取诱使神经网络认为数字 2 是 6 所需的梯度。我需要使用这个梯度来创建nematode上面提到的。

我不确定如何提取梯度值。我尝试查看,tf.gradients但无法弄清楚如何使用此功能生成对抗性图像。我在fake_loss上面的变量之后实现了以下...

不幸的是,预测并没有按照我想要的方式改变,而且这种逻辑导致图像相当模糊。

我希望能解释一下我需要做什么来计算和提取会欺骗神经网络的梯度,这样如果我要采用这个梯度并将其作为 a 应用到我的图像中nematode,它将导致不同的结果预言。

0 投票
2 回答
908 浏览

keras - Keras 中的生成对抗网络 (GAN) - 创建组合模型

我正在尝试创建一个非常简单的 GANs 模型,但不确定如何结合生成器和鉴别器来训练生成器

现在我不确定如何将它们结合起来,因此鉴别器将接收生成器输出,然后将传递生成器反向传播数据

0 投票
2 回答
1413 浏览

tensorflow - 如何在 Tensorflow 中异步更新 GAN 生成器和判别器?

我想用 Tensorflow 开发一个 GAN,生成器是自动编码器,鉴别器是具有二进制输出的卷积神经网络。开发自动编码器和 CNN 没有问题,但我的想法是为每个组件(判别器和生成器)训练 1 个 epoch,并重复此循环 1000 个 epoch,保持上一个训练 epoch 的结果(权重)为下一个。我该如何操作呢?

0 投票
0 回答
48 浏览

python - 如何将原始音频作为生成对抗网络的输入?

我已经按照教程使用生成对抗网络生成图像,但我不知道如何将音频作为输入提供给网络。我需要对音频数据进行一些转换还是可以直接提供给网络。

0 投票
0 回答
40 浏览

deep-learning - 通用对抗性干扰查询/问题

我是 Shashank V,是印度 ECE 的最后一年学生,正在从事一个关于专门针对人脸的图像分类的对抗性攻击的副项目。我在 CVPR 2017 中发现了这篇令人惊叹的论文标题“Universal adversarial perturbations”,并想尝试一下作者在 GitHub ( https://github.com/LTS4/universal ) 上慷慨提供的代码。

由于他们已经在 ImageNet 和 VGG-face 中最标准的人脸数据集上训练了他们的模型,因此我必须为 VGG-face 数据集计算我自己的对抗模板。这样做时,我发现输出这个对抗模板的变量“v”的所有值都是 NaN。
此外,造成这种情况的主要原因是当我发现使用的 deepFool 代码中的函数时

输出一个零值,导致这个 NaN。
我尝试了不同的图像数据类型来尝试解决这个问题,也尝试了不同的参数但徒劳无功。
我想知道是否有人可以帮助我,因为我想我已经走到了死胡同,任何建议都将不胜感激。
谢谢!

0 投票
2 回答
105 浏览

computer-vision - 对抗性训练和测试

也许这更多是一个概念问题,但我希望你能给我你的意见。我确实理解对抗性训练意味着在训练过程中引入一些损坏的实例,以便在测试时混淆模型并产生错误的预测。但是,该模型是否适用于以下场景?假设创建了一个对抗性补丁来欺骗检测停车标志的分类器,因此正常的对象检测器将无法在存在此补丁的情况下区分真正的停车标志。但是,如果模型在有补丁和没有补丁的情况下训练两个实例呢?这对于对象分类器来说并不难执行,并且攻击失去了所有成功的机会,对吧?

0 投票
1 回答
104 浏览

machine-learning - 使用 Cleverhans 进行对抗性攻击后提取原始图像格式

假设我使用 Cleverhans 加载 MNIST 数据集并使用 FGM 攻击图像。我通过 Cleverhans MNIST 数据集加载的任何图像都已经将其像素值限制为 [0, 1],在我攻击图像后也是如此(假设我将图像剪辑为 [0, 1])。如果我想在这种情况下查看攻击,我只需将所有像素值乘以 255 并创建对抗图像。

在这种情况下,像素值在 [0, 255] 中的原始 MNIST 图像已改为通过将所有值除以 255 使其像素值在 [0, 1] 中。为了取回原始“图像属性”,我只需再次乘以 255。

当这个预处理步骤(在 MNIST 的情况下,除以 255)更复杂时,有没有办法(在 Cleverhans 中或一般而言)提取原始图像属性?例如,我正在考虑 VGG16,其中调整 ImageNet 图像的大小,同时保留其纵横比,将图像恢复到其原始大小的过程很复杂,并且对于每张图像都是独一无二的。

是否可以将此预处理步骤作为模型中的一个步骤添加,以直接获取原始图像上的噪声?我想这可能不是这种情况,因为并非所有预处理步骤都是可区分的?

这是否意味着如果预处理步骤太复杂,我无法查看应用于原始图像的噪声?

0 投票
0 回答
33 浏览

tensorflow - 我们可以用 tebnsorflow 训练张量的特定部分吗?

我正在尝试使用 tensorflow 为 inceptionV3 模型制作对抗性图像。为此,我在输入图像的像素上使用了特定的损失。这很好用

现在我想只训练某些像素以在某个正方形上而不是在所有输入图像上创建补丁。我曾尝试使用variable = tf.slice(model_input_layer, [0, 100, 100, 0], [-1, 100, 100, -1]),但它不起作用。有没有人已经这样做了?