范叶亮写智能体、模型和数据系统时,习惯先把定义和边界钉死。把「生成对抗网络简介」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。

Generative Adversarial Networks (GAN)

生成对抗网络 ( Generative Adversarial Network, GAN ) 是由 Goodfellow 1 于 2014 年提出的一种对抗网络。这个网络框架包含两个部分,一个生成模型 (generative model) 和一个判别模型 (discriminative model)。其中,生成模型可以理解为一个伪造者,试图通过构造假的数据骗过判别模型的甄别;判别模型可以理解为一个警察,尽可能甄别数据是来自于真实样本还是伪造者构造的假数据。两个模型都通过不断的学习提高自己的能力,即生成模型希望生成更真的假数据骗过判别模型,而判别模型希望能学习如何更准确的识别生成模型的假数据。

GAN 由两部分构成,一个 生成器 ( Generator ) 和一个 判别器 ( Discriminator )。对于生成器,我们需要学习关于数据 $\boldsymbol{x}$ 的一个分布 $p_g$ ,首先定义一个输入数据的先验分布 $p_{\boldsymbol{z}} \left(\boldsymbol{z}\right)$ ,其次定义一个映射 $G \left(\boldsymbol{z}; \theta_g\right): \boldsymbol{z} \to \boldsymbol{x}$ 。对于判别器,我们则需要定义一个映射 $D \left(\boldsymbol{x}; \theta_d\right)$ 用于表示数据 $\boldsymbol{x}$ 是来自于真实数据,还是来自于 $p_g$ 。GAN 的网络框架如下图所示 2 :

网络框架

$$ \min_{G} \max_{D} V\left(D, G\right) = \mathbb{E}_{\boldsymbol{x} \sim p_{data}{\left(\boldsymbol{x}\right)}}{\left[\log D\left(\boldsymbol{x}\right)\right]} + \mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}\left(\boldsymbol{z}\right)}{\left[\log \left(1 – D\left(G\left(\boldsymbol{z}\right)\right)\right)\right]} $$

上式中,在给定的 $G$ 的情况下, $\max_{D} V\left(G, D\right)$ 衡量的是 $p_{data}$ 和 $p_g$ 之间的“区别”,因此我们最终的优化目标就是找到最优的 $G^*$ 使得 $p_{data}$ 和 $p_g$ 之间的“区别”最小。

模型训练

首先,在给定 $G$ 的时候,我们可以通过最大化 $V \left(G, D\right)$ 得到最优 $D^*$

$$ \begin{equation} \begin{split} V \left(G, D\right) &= \mathbb{E}_{\boldsymbol{x} \sim p_{data}{\left(\boldsymbol{x}\right)}}{\left[\log D\left(\boldsymbol{x}\right)\right]} + \mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}\left(\boldsymbol{z}\right)}{\left[\log \left(1 – D\left(G\left(\boldsymbol{z}\right)\right)\right)\right]} \\ &= \int_{\boldsymbol{x}}{p_{data}\left(\boldsymbol{x}\right) \log D\left(\boldsymbol{x}\right) dx} + \int_{\boldsymbol{z}

存在的问题

对于给定的任意 $a, b \in \mathbb{R}^2 \setminus \{0, 0\}$ , $a \log\left(x\right) + b \log\left(1 – x\right)$ 在 $x = \dfrac{a}{a+b}$ 处取得最大值, $D$ 的最优值为

$$ D_{G}^{*} = \dfrac{p_{data} \left(\boldsymbol{x}\right)}{p_{data} \left(\boldsymbol{x}\right) + p_g \left(\boldsymbol{x}\right)} $$

MNIST 示例

$$ \begin{equation} \begin{split} &C\left(G\right) \\ =& \max_{D} V \left(G, D\right) = V \left(G, D^*\right) \\ =& \mathbb{E}_{\boldsymbol{x} \sim p_{data}{\left(\boldsymbol{x}\right)}}{\left[\log D_{G}^{*}\left(\boldsymbol{x}\right)\right]} + \mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}\left(\boldsymbol{z}\right)}{\left[\log \left(1 – D_{G}^{*}\left(G\left(\boldsymbol{z}\right)\right)\right)\right]} \\ =& \mathbb{E}_{\boldsymbol{x} \sim p_{data}{\l

其中 $KL$ 表示 KL 散度 3 , $JS$ 表示 JS 散度 4 ,因此在全局最优情况下 $p_g = p_{data}$ 。

Deep Convolutional GAN

\begin{algorithm} \caption{Minibatch SGD for GAN 算法} \begin{algorithmic} \REQUIRE $iter, k, m$ \ENSURE $\theta_d, \theta_g$ \FOR{$i = 1, 2, …, iter$} \FOR{$j = 1, 2, …, k$} \STATE Sample minibatch of $m$ noise samples $\{z^{\left(1\right)}, …, z^{\left(m\right)}\}$ from $p_g \left(\boldsymbol{z}\right)$ \STATE Sample minibatch of $m$ examples $\{x^{\left(1\right)}, …, x^{\left(m\right)}\}$ from $p_{data} \left(\boldsymbol{z}\right)$ \STATE $\theta_

针对 GAN,包括 Goodfellow 自己在内也提出了其中包含的很多问题 2 ,因此后人也提出了大量的改进,衍生出了大量的 GAN 变种。本章节仅对原始的 GAN 中存在的问题进行简略介绍,相关的改进请参见后续的具体改进算法。

值得单独记下的点

  • 基于 Unrolled Optimization 的优化 10
  • 在网络中不使用 pooling 层,而是使用多步长的卷积层 (判别器) 和多步长的反卷积层 (生成器)。
  • 在生成器中使用 ReLU 激活函数,最后一层使用 Tanh 激活函数。
  • 在判别器中使用 LeakyReLU 激活函数。
  • Goodfellow, Ian, et al. “Generative adversarial nets.” Advances in neural information processing systems . 2014. ↩︎
  • Goodfellow, Ian. “NIPS 2016 tutorial: Generative adversarial networks.” arXiv preprint arXiv:1701.00160 (2016). ↩︎ ↩︎
  • https://en.wikipedia.org/wiki/Kullback –Leibler_divergence ↩︎
  • https://en.wikipedia.org/wiki/Jensen –Shannon_divergence ↩︎

落地时建议先做的 5 件事

  1. 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。
  2. 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。
  3. 多智能体只在单智能体触到上下文或专业边界时再拆。
  4. Token、微调和压缩都要有对照数字,避免口号式优化。
  5. 结论写成可检查清单:接口、超时、评测集、回滚版本。

和智能体产品怎么接

龙虾PRO做 OpenClaw 落地时,最该拿走的是「单智能体先做好工具和提示,再谈编排」。数字员工、技能市场和网关应共用同一套评测与权限,而不是各写一套角色人设。

本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源

常见问题 FAQ

什么是AI智能系统?

「AI智能系统」可概括为:生成对抗网络 ( Generative Adversarial Network, GAN ) 是由 Goodfellow 1 于 2014 年提出的一种对抗网络。这个网络框架包含两个部分,一个生成模型 (generative model) 和一个判别模型 (discriminative model)。其中,生成模型可以理解为一个伪造者,试图通过构造假的数据骗 本文从定义、方法与实践要点展开说明。

为什么要关注AI智能系统?

关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:生成对抗网络 ( Generative Adversarial Network, GAN ) 是由 Goodfellow 1 于 2014 年提出的一种对抗网络。这个网络框架包含两个部分,一个生成模型 (generative model) 和一个判别模型 (discriminative model)。其中,生成模型可以理解为一个伪造者,试图通过构造假的数据骗过判别模型的甄别;判别模型可以理解为一个警察,尽可能甄别数据是来自于真实样本还是伪造者构造的假数据。两个模型都通过不断的学习提高自己…

如何落地AI智能系统?有哪些关键步骤?

建议按以下路径推进AI智能系统:1) 基于 Unrolled Optimization 的优化 10;2) 在网络中不使用 pooling 层,而是使用多步长的卷积层 (判别器) 和多步长的反卷积层 (生成器)。;3) 在生成器中使用 ReLU 激活函数,最后一层使用 Tanh 激活函数。;4) 在判别器中使用 LeakyReLU 激活函数。;5) Goodfellow, Ian, et al. “Generative adversarial nets.” Advances in neural infor…。细节见正文对应章节。

AI智能系统适合哪些人或团队?

AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。

关于「Generative Adversarial Networks (GAN)」,本文给出了什么结论?

在「Generative Adversarial Networks (GAN)」部分,要点是:伪造者,试图通过构造假的数据骗过判别模型的甄别;判别模型可以理解为一个警察,尽可能甄别数据是来自于真实样本还是伪造者构造的假数据。两个模型都通过不断的学习提高自己的能力,即生成模型希望生成更真的假数据骗过判别模型,而判别模型希望能学习如何更准确的识别生成模型的假数据。 GAN 由两部分构成,一个 生成器 ( Generator ) 和一个 判别器 ( Discriminator )。对于生成器,我们需要学习关于数据 $\boldsymb

关于「网络框架」,本文给出了什么结论?

在「网络框架」部分,要点是:据。 GAN 由两部分构成,一个 生成器 ( Generator ) 和一个 判别器 ( Discriminator )。对于生成器,我们需要学习关于数据 $\boldsymbol{x}$ 的一个分布 $p_g$ ,首先定义一个输入数据的先验分布 $p_{\boldsymbol{z}} \left(\boldsymbol{z}\right)$ ,其次定义一个映射 $G \left(\boldsymbol{z}; \theta_g\rig