当前位置: 首页 > article >正文

【论文阅读笔记】HiDDeN:Hiding Data With Deep Networks

【论文阅读笔记】HiDDeN:Hiding Data With Deep Networks

  • 论文信息
  • 个人理解
    • 动机
    • 对抗性样本(Adversarial examples)与对抗性攻击(Adversarial attack)
      • 对抗性样本
      • 对抗性攻击
    • 隐写(Steganography)和水印(Watermarking)异同
      • 相同点
      • 不同点
    • 网络架构
      • 编码器(Encoder)
      • 噪声层(Noise Layer)
      • 解码器(Decoder)
      • 对抗者(Adversary)

论文信息

题目HiDDeN: Hiding Data With Deep Networks
作者Jiren Zhu, Russell Kaplan, Justin Johnson, Li Fei-Fei
发表2018 ECCV
翻译资源【论文翻译】HiDDeN: Hiding Data With Deep Networks
理解资源【论文阅读】 HiDDeN网络架构

个人理解

动机

if a network can be fooled with small perturbations into making incorrect class predictions, it should be possible to extract meaningful information from similar perturbations。
如果一个网络可以被小的扰动愚弄而做出不正确的类预测,那么它应该可以从类似的扰动中提取有意义的信息。

对抗性样本(Adversarial examples)与对抗性攻击(Adversarial attack)

对抗性样本

对抗性样本是指对原始输入样本数据添加微小的扰动而产生的样本,这些样本会使得机器学习模型(尤其是深度神经网络)产生错误的输出。

They are typically computed by adding a small perturbation to each pixel in the direction that maximizes one output neuron.
它们通常是通过在最大化一个输出神经元的方向上向每个像素添加小的扰动来计算的。
具体解释
1、神经网络的输出神经元
在分类任务中,神经网络的最后一层通常是一个全连接层,其输出神经元数量等于类别的数量。每个输出神经元的值(即激活值)表示输入图像属于对应类别的“得分”或“概率”。
2、最大化某个输出神经元
生成对抗性样本的目标是让神经网络对输入图像产生错误的分类。攻击者希望让网络将输入图像错误地分类为某个目标类别。为了实现这一点,攻击者会调整输入图像的像素值,使得目标类别对应的输出神经元的值最大化。换句话说,攻击者通过修改图像,使得网络对目标类别的“信心”增加,而对真实类别的“信心”降低。
3、“方向”的含义
这里的“方向”指的是梯度方向。在深度学习中,梯度是一个向量,表示函数值增长最快的方向。对于神经网络来说,梯度可以通过反向传播计算得到。攻击者会计算目标类别输出神经元相对于输入图像的梯度。这个梯度表示:如果对输入图像的像素值进行微小调整,目标类别输出神经元的值会如何变化。梯度的方向就是让目标类别输出神经元值增长最快的方向。
4、如何通过梯度调整像素
攻击者会根据梯度的方向,对输入图像的像素值进行微小调整。具体步骤如下:
①计算梯度:通过反向传播,计算目标类别输出神经元相对于输入图像的梯度。
②确定扰动方向:梯度的方向就是让目标类别输出神经元值增长最快的方向。
③添加扰动:沿着梯度的方向,对输入图像的像素值添加一个微小的扰动。这个扰动通常很小,人眼难以察觉,但足以显著改变网络的输出。
——以上解释由DeepSeek给出

对抗性样本的一个重要特性是它们的可转移性,即一个模型生成的对抗性样本往往能够欺骗其他模型,这表明对抗性样本利用了不同模型之间的通用弱点。

对抗性攻击

对抗性攻击是指利用对抗性样本来欺骗或破坏机器学习模型的行为,对抗性攻击可以分为以下几类:

  • 白盒攻击(White-box Attack):攻击者完全了解目标模型的结构和参数,能够直接计算对抗性样本。这种攻击通常通过梯度下降等优化方法来实现。
  • 黑盒攻击(Black-box Attack):攻击者不了解目标模型的内部细节,只能通过输入输出对来推断模型的行为。黑盒攻击通常依赖于对抗性样本的可转移性,即使用一个替代模型生成的对抗性样本来攻击目标模型。
  • 物理攻击(Physical Attack):对抗性样本不仅在数字领域有效,还可以在物理世界中发挥作用。例如,Kurakin等人展示了对抗性样本在打印和拍照后仍然能够欺骗模型,这表明对抗性攻击可以在现实世界中实施。

隐写(Steganography)和水印(Watermarking)异同

相同点

二者都是通过各种方法在信息载体 C o v e r Cover Cover(如图像/音频等介质)中编码额外的信息 M e s s a g e Message Message ,同时保持 C o v e r Cover Cover相较于编码额外的 M e s s a g e Message Message 前几乎不变(即在对 M e s s a g e Message Message编码后, C o v e r Cover Cover只引入了一些微小扰动)。

不同点

  • 隐写更侧重对于 M e s s a g e Message Message隐藏性能(Secrecy),目标是使得编码后的 C o v e r Cover Cover尽可能无法被检测工具检测出额外信息(如 C o v e r Cover Cover是否被隐写、隐写的 M e s s a g e Message Message是什么)。
  • 水印更强调 M e s s a g e Message Message C o v e r Cover Cover中的鲁棒性能(Robustness),目标是使得编码后的 C o v e r Cover Cover在一定程度上失真(如引入噪声、裁剪、旋转等)后,仍然能保持 M e s s a g e Message Message内容不改变。

网络架构

The encoder first applies convolutions to input I c o I_{co} Ico to form some intermediate representation. Next, we aim to incorporate the message input (of length L L L) in such a way that the encoder can easily learn to embed parts of it at any spatial location of the output. For this reason, we replicate the message spatially, and concatenate this “message volume” to the encoder’s intermediary representation. This ensures that each convolutional filter in the next layer has access to the entire message as it convolves across each spatial location. After more convolutional layers, the encoder produces I e n I_{en} Ien, the encoded image. The noise layer, given I c o I_{co} Ico, I e n I_{en} Ien, applies noise and produces I n o I_{no} Ino. We do not require I n o I_{no} Ino to have the same dimension as I e n I_{en} Ien, so that we can model dimension-altering noise like cropping. The decoder first applies several convolutional layers to produce L L L feature channels in the intermediate representation. It then applies global spatial average pooling to produce a vector L L L of the same size of the message – the average pooling ensures that it can handle inputs of different spatial dimensions. It then applies a single linear layer to produce the predicted message. The adversary has a structure similar to the decoder, but it outputs a binary classification instead.
编码器首先将卷积应用于输入 I c o I_{co} Ico以形成一些中间表示。接下来,我们的目标是将消息输入(长度为 L L L)结合在一起,以使编码器可以轻松学习在输出的任何空间位置嵌入其中的一部分。因此,我们在空间上复制消息,并将此“消息卷”连接到编码器的中介表示。这样可以确保下一层中的每个卷积过滤器都可以访问整个消息,因为它在每个空间位置都在卷积。经过更多的卷积层后,编码器会产生编码图像 I e n I_{en} Ien。给定 I c o I_{co} Ico I e n I_{en} Ien噪声层应用噪声并产生 I n o I_{no} Ino。我们不需要 I n o I_{no} Ino具有与 I e n I_{en} Ien相同的维度,因此我们可以建模改变尺寸的噪声(例如裁剪)。解码器首先应用了几个卷积层以在中间表示中产生 L L L特征通道。然后,它应用了全局空间平均池以产生与消息的相同大小的向量——平均池确保它可以处理不同空间维度的输入。然后,它应用一个线性层来产生预测的消息。对抗者的结构与解码器类似,但它会输出二进制分类。

以上内容详细描述了HiDDeN框架中的网络架构,特别是编码器噪声层解码器对抗者的设计和工作流程,以下是对这段话的理解:

编码器(Encoder)

编码器接收两个输入:

  • 封面图像 I c o I_{co} Ico:这是原始的、未修改的图像。
  • 消息 M M M:一个长度为 L L L的二进制消息(例如,一个比特串)。

编码器的工作流程:

  1. 对封面图像 I c o I_{co} Ico进行卷积操作,生成一些中间特征表示。这些特征表示捕捉了图像的局部结构和纹理信息。
  2. 将消息 M M M嵌入到图像中。
    ① 为了实现这一点,消息 M M M空间复制,形成一个“消息卷”(message volume)。具体来说,消息 M M M被复制到与图像的空间维度(高度和宽度)相匹配的形状,形成一个三维的张量。
    ② 将“消息卷”连接到编码器的中间特征表示上。这样,每个空间位置(即图像的每个像素区域)都可以访问完整的消息 M M M。由于消息 M M M被复制并连接到中间特征表示,后续的卷积滤波器在卷积操作时,可以在每个空间位置上访问完整的消息。这使得编码器能够灵活地将消息的不同部分嵌入到图像的不同区域。
  3. 在将消息 M M M合并后,通过更多的卷积层进一步处理特征,最终生成编码图像 I e n I_{en} Ien。这个编码图像看起来与原始封面图像 I c o I_{co} Ico非常相似,但包含了隐藏的消息。

噪声层(Noise Layer)

噪声层接收两个输入:

  • 封面图像 I c o I_{co} Ico
  • 编码图像 I e n I_{en} Ien

噪声层对编码图像 I e n I_{en} Ien应用各种图像失真操作(如裁剪、模糊、JPEG压缩等),生成噪声图像 I n o I_{no} Ino。这些失真操作模拟了现实世界中图像在传输过程中可能经历的干扰。

噪声层不要求噪声图像 I n o I_{no} Ino与编码图像 I e n I_{en} Ien具有相同的维度。例如,裁剪操作会改变图像的大小,噪声层可以处理这种维度变化。

解码器(Decoder)

解码器接收噪声图像 I n o I_{no} Ino作为输入。

解码器的工作流程:

  1. 对噪声图像 I n o I_{no} Ino进行卷积操作,生成中间特征表示。这些特征表示被设计为具有 L L L个通道,与消息的长度 L L L相匹配。

  2. 使用全局空间平均池化(global spatial average pooling)将中间特征表示压缩为一个与原始消息 M M M的大小相同的向量(即长度为 L L L),以便处理不同大小的输入图像(全局平均池化的好处是,无论输入图像的尺寸如何变化,它都能生成固定长度的输出,从而确保解码器能够处理不同大小的噪声图像)。

  3. 通过一个线性层(全连接层)将池化后的特征向量映射为预测的消息 M o u t M_{out} Mout。这个预测消息应该与原始消息 M M M尽可能接近。

对抗者(Adversary)

对抗者,更准确地说是对抗网络,它的结构与解码器类似,但它输出的不是消息,而是一个二进制分类结果,即判断输入图像是封面图像还是编码图像

对抗网络的目的是通过区分封面图像和编码图像,迫使编码器生成更难以检测的编码图像,从而提高消息的隐秘性。


http://www.kler.cn/a/539438.html

相关文章:

  • Qt通过FFmpeg打开RTSP并截图一帧作为背景
  • 使用PyCharm进行Django项目开发环境搭建
  • Centos挂载镜像制作本地yum源,并补装图形界面
  • 『Apisix进阶篇』结合Consul作服务发现实战演练
  • 【kafka系列】Topic 与 Partition
  • 数巅科技中标科学城数科集团AI辅助企业数字化转型评估诊断
  • vue3中使用print-js组件实现打印操作
  • 蓝桥杯51单片机练习(国信长天比赛用)
  • c/c++蓝桥杯经典编程题100道(18)括号匹配
  • Win10+Ollama+AnythingLLM+DeepSeek构建本地多人访问知识库
  • 大数据示例:改变业务的 6 种方式
  • 【虚幻引擎UE】AOI算法介绍与实现案例
  • 【C++八股】std::atomic —— 原子操作
  • ASP.NET Core 如何使用 C# 向端点发出 POST 请求
  • openAI官方prompt技巧(二)
  • 基于springboot+vue的文物管理系统的设计与实现
  • android手机安装deepseek-r1:1.5b
  • DeepSeek开源多模态大模型Janus-Pro部署
  • 在 Linux 系统下,解压 `.tar.gz`
  • 14vue3实战-----获取用户信息和用户的菜单树信息
  • 解决Redisson在Kubernetes中连接旧Redis主节点的问题
  • Vue3 进阶-自定义事件用法全解析 ✨
  • 大语言模型需要的可观测性数据的关联方式
  • LeetCode热题100-最大子数组和【JavaScript讲解】
  • webpack配置之---output.filename
  • 【DeepSeek】私有化本地部署图文(Win+Mac)