
<a id="n24-title"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-title)


# pix2pix：配对告诉模型什么必须保持？

王德泉 · Coding with AI · Lecture 04


<a id="n24-863160a56cb5"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-863160a56cb5)

上一页只有低清观测时，墙面细节可能有多个合理来处。这里换成结构明确的输入：同一栋楼的边缘图给出了门、窗和楼体布局，目标照片则记录了这些位置的一种外观。两张图之所以构成配对，是因为它们描述同一内容、位置能够对应；随便找一张边缘图和一张建筑照片并排，并没有提供这项监督。


<a id="n24-2ff514a229c2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-2ff514a229c2)

配对首先告诉模型哪些关系不能随意改变。墙可以有不同材质，但输入中位于中央的门，不能为了让图片更漂亮就挪到左边。本例的错门候选砖块很逼真，仍然违反了结构条件。**可变化的是未被要求唯一规定的外观，必须保持的是输入已经给定的内容关系。** 配对照片只记录其中一个答案，并不意味着其他守住布局的材质必然错误。


[课程图解] 结构图已经规定门位；材质可以改变，门不能任意移动。；图中标签与关系：结构条件 配对观察 1 2 3 1 2 3 六窗，中央门 同场景、逐位置对应 待检候选 门位不符
结构图已经规定门位；材质可以改变，门不能任意移动。


<a id="n24-f1779c7b7c46"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-f1779c7b7c46)

pix2pix 的条件判别器同时看到输入与候选，因而有机会学习“这两张是否对应”，不只判断候选单独像不像照片；像素重建项进一步鼓励它贴近配对目标。生成器中的 U-Net 跳跃连接有利于把输入中的空间细节传到输出，PatchGAN 为局部区域提供对抗反馈。它们各有作用，但局部纹理成立不保证整栋楼的关系全部成立，架构名称也不能代替实际条件检查。


<a id="n24-50b26378b185"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-50b26378b185)

**“既然配对这么有用，为什么不总是收集配对？”** 一些任务容易自动构造，例如从照片提取边缘，原照片天然就是目标；另一些任务很难，例如要同一街景在不同季节、相同相机位置下准确对应。拍摄、对齐和筛选都要付出成本。配对也要核对是否错位、误配及覆盖所需条件，数量多不能替代对应可靠。配对昂贵的部分，正是把我们想保留的对应关系写入数据。


<a id="n24-18d87d950246"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-18d87d950246)

另一项边界是多解。若同一结构只有一张监督照片，重建目标可能鼓励固定输出；即使额外输入随机数，模型也可能忽略它。能作配对翻译，不等于已经充分表达了给定条件下的所有合理外观。我们会在 N27 单独追问这件事。


<a id="n24-5af791406a80"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-5af791406a80)

现在把逐图对应拿走：如果只有一袋夏景与另一袋冬景，没有哪一张应当配哪一张的记录，还能学到有用的转换吗？


<a id="n24-states"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-states)


## 画面怎样推进


<a id="n24-b0"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-b0)

同一内容的位置对应，使结构图与照片形成配对；任意并排不构成配对。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N24.html?step=b0)


<a id="n24-b1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-b1)

改变材质仍可保持门窗布局，单个监督答案没有穷尽所有合理外观。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N24.html?step=b1)


<a id="n24-b2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-b2)

门位置已经由条件给定，候选把门挪走就违约，砖块自然也不能抵消。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N24.html?step=b2)


<a id="n24-materials"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-materials)


## 继续阅读与实验


<a id="n24-learning-unit-001"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-learning-unit-001)


## 配对、U-Net和PatchGAN能互相代替吗？


<a id="n24-learning-unit-002"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-learning-unit-002)

设线稿A的门在中央，输出B的砖纹十分自然，门却移到左边。只看B的判别器可能接受它；同时看(A,B)的条件判别器，才有机会学习这项对应错误。配对照片还提供同一建筑、同一位置的目标，使逐像素L1可以直接批改偏差。


<a id="n24-learning-unit-003"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-learning-unit-003)

U-Net跳连负责把输入空间细节送到输出端，PatchGAN负责提供局部外观反馈；它们都不负责替数据建立正确配对。局部砖纹合格也未必表示全局门窗正确。判断系统时，应分别指出监督关系、信息通路和判别范围。


<a id="n24-learning-unit-004"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-learning-unit-004)

接着读：[pix2pix三项设计的分工](https://codingai-lec04.pages.dev/lecture.html#ch04-pix2pix-three-parts)与[条件对抗和配对目标](https://codingai-lec04.pages.dev/lecture.html#ch04-pix2pix-objective)。


<a id="n24-chapter-reading"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-chapter-reading)


### [CLS 04 · 对抗反馈与图像翻译](https://codingai-lec04.pages.dev/lecture.html#ch04)

按连续正文理解这条方法的训练信号、使用过程与算例；数学与实践在相关问题旁展开。

先看：第4章，从对象和问题开始


<a id="n24-lab08-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-lab08-practice)


### [LAB 08 · 生成器与判别器的真实反馈](https://codingai-lec04.pages.dev/course/notebooks/f16324b960a446e2aa03168c17e9fc0b.html)

固定生成起点比较训练前中后；改变 D:G 更新比，分别读近模式比例与模式覆盖。

先看：先看保存结果与读图解释


<a id="n24-lab03-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-lab03-practice)


### [LAB 03 · CycleGAN：可逆不等于语义正确](https://codingai-lec04.pages.dev/course/notebooks/caf19cffbd744fafb371912863a03e30.html)

先读本册保存结果，再按实现顺序核对一个算例；最后只改一个变量。

先看：先看保存结果与读图解释


<a id="n24-material-1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N24.html#n24-material-1)


### [Image-to-Image Translation with Conditional Adversarial Networks](https://openaccess.thecvf.com/content_cvpr_2017/papers/Isola_Image-To-Image_Translation_With_CVPR_2017_paper.pdf)

查看条件判别器、U-Net与PatchGAN的分工，区分空间对应监督和局部外观反馈。

先看：第3节与图2、图3

