Post

VQ-VAE์™€ VQ-GAN

VQ-VAE์™€ VQ-GAN

๐Ÿ“„ ๊ด€๋ จ ๋…ผ๋ฌธ: [NeurIPS 2017] Neural Discrete Representation Learning

๐Ÿ“„ ๊ด€๋ จ ๋…ผ๋ฌธ: [CVPR 2021] Taming Transformers for High-Resolution Image Synthesis

VQ (Vector Quantization)๋Š” ์—ฐ์†์ ์ธ ๋ฒกํ„ฐ๋ฅผ ์ด์‚ฐ์ ์ธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

VQ-VAE

์ผ๋ฐ˜์ ์ธ VAE๋Š” Latent Space๋ฅผ ์—ฐ์†์ ์ธ ํ™•๋ฅ  ๋ถ„ํฌ๋กœ ๋ชจ๋ธ๋งํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ๋””์ฝ”๋”์˜ ํ‘œํ˜„๋ ฅ์ด ์ถฉ๋ถ„ํžˆ ๋†’์„ ๊ฒฝ์šฐ, ์‚ฌํ›„ ๋ถ•๊ดด (Posterior Collapse) ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

VQ-VAE๋Š” Latent Space๋ฅผ ์ด์‚ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋ฅผ ์™„ํ™”ํ•˜์˜€๋‹ค.

Posterior Collapse๋ž€?

์ผ๋ฐ˜์ ์ธ VAE๋Š” ๋‹ค์Œ์˜ ์†์‹ค ํ•จ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•œ๋‹ค.

\[L_{\text{VAE}}=L_{\text{recon}}+\text{KL}(q(z\mid x)โ€‰\parallelโ€‰p(z))\]

์—ฌ๊ธฐ์„œ KL ํ•ญ์€ ์ธ์ฝ”๋”์˜ ์‚ฌํ›„ ๋ถ„ํฌ $q(z\mid x)$๋ฅผ ์‚ฌ์ „ ๋ถ„ํฌ $p(z)$์— ๊ฐ€๊น๊ฒŒ ๋Œ์–ด๋‹น๊ธฐ๋Š” ์ •๊ทœํ™” ์—ญํ• ์„ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ๋””์ฝ”๋”๊ฐ€ ๋„ˆ๋ฌด ๊ฐ•๋ ฅํ•ด์„œ Latent Variable $z$ ์—†์ด๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๋ชจ๋ธ์€ KL ํ•ญ์„ ์ค„์ด๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ $q(z\mid x)\approx p(z)$๋ฅผ ๋งŒ๋“ค์–ด ๋ฒ„๋ฆฐ๋‹ค.
๊ฒฐ๊ณผ์ ์œผ๋กœ ์ธ์ฝ”๋”๋Š” ์ž…๋ ฅ์— ๋ฌด๊ด€ํ•œ Latent Variable์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๊ณ , $z$๋Š” $x$์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์ง€ ์•Š๋Š” ๋ฌด์˜๋ฏธํ•œ ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค.
์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ Posterior Collapse๋ผ ๋ถ€๋ฅธ๋‹ค.

๋ฐ˜๋ฉด, VQ-VAE์—์„œ๋Š” $q(z\mid x)$๊ฐ€ ๊ฐ€์šฐ์‹œ์•ˆ์ด ์•„๋‹ˆ๋ผ One-hot ๋ถ„ํฌ์ด๋‹ค.

\[q(z=k\mid x)=\begin{cases}1&k=\arg\min_j\lVert z_e(x)-e_j\rVert_2\\0&\text{otherwise}\end{cases}\]

๋˜ํ•œ ์‚ฌ์ „ ๋ถ„ํฌ $p(z)$๋ฅผ $K$๊ฐœ์˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ท ๋“ฑ ๋ถ„ํฌ๋กœ ๊ฐ€์ •ํ•œ๋‹ค.
์ด๋•Œ KL์„ ์ง์ ‘ ๊ณ„์‚ฐํ•˜๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์ˆ˜๊ฐ€ ๋œ๋‹ค.

\[\text{KL}(q(z\mid x)โ€‰\parallelโ€‰p(z))=1โ‹…\log\frac{1}{1/K}=\log K\]

์ฆ‰, ์ธ์ฝ”๋” ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•œ KL ํ•ญ์˜ ๋ฏธ๋ถ„๊ฐ’์ด 0์ด๋ฏ€๋กœ, KL ํ•ญ์ด ์‚ฌํ›„ ๋ถ„ํฌ๋ฅผ ์‚ฌ์ „ ๋ถ„ํฌ ์ชฝ์œผ๋กœ ๋Œ์–ด๋‹น๊ธฐ๋Š” ๊ทธ๋ž˜๋””์–ธํŠธ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.
์ด๋Ÿฌํ•œ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด VQ-VAE์—์„œ๋Š” Posterior Collapse ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ชจ๋ธ ๊ตฌ์กฐ

์ด๋Ÿฌํ•œ ์ด์‚ฐํ™”๋ฅผ ์œ„ํ•ด VQ-VAE๋Š” ์ฝ”๋“œ๋ถ(Codebook)์ด๋ผ๋Š” ํ•™์Šต ๊ฐ€๋Šฅํ•œ ๋ฒกํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ ${e_1, e_2, โ€ฆ, e_K}$๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
์ฝ”๋“œ๋ถ์€ ์ž ์žฌ ๊ณต๊ฐ„์„ ์ด์‚ฐํ™”ํ•˜๋Š” ์‚ฌ์ „ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ์€ ํ•ญ์ƒ ์ด ์ฝ”๋“œ๋ถ ์•ˆ์˜ ๋ฒกํ„ฐ ์ค‘ ํ•˜๋‚˜๋กœ ๋งคํ•‘๋œ๋‹ค.

fig1

์ „์ฒด ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ์ž…๋ ฅ ์ด๋ฏธ์ง€ $x$๊ฐ€ ์ธ์ฝ”๋”๋ฅผ ํ†ต๊ณผํ•˜์—ฌ ์—ฐ์†์ ์ธ ์ž ์žฌ ๋ฒกํ„ฐ $z_e(x)$๋กœ ๋ณ€ํ™˜๋œ๋‹ค.
  2. $z_e(x)$๋Š” ์ฝ”๋“œ๋ถ์˜ ๋ฒกํ„ฐ๋“ค ์ค‘ L2 ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฒกํ„ฐ $e_k$๋กœ ๋Œ€์ฒด๋œ๋‹ค. (Quantization)

    \[z_q(x) = e_k,\quad\text{where } k = \text{argmin}_j \lVert z_e(x) - e_j \rVert_2 \tag{1}\]
  3. ๋””์ฝ”๋”๋Š” ์–‘์žํ™”๋œ ๋ฒกํ„ฐ $z_q(x)$๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ์›๋ณธ ์ด๋ฏธ์ง€ $x$๋ฅผ ์žฌ๊ตฌ์„ฑํ•œ๋‹ค.

STE (Straight-Through Estimator)

์ด๋•Œ 2๋ฒˆ์˜ ์–‘์žํ™” ๋‹จ๊ณ„์—์„œ $\arg\min$ ์—ฐ์‚ฐ์€ ๋ฏธ๋ถ„์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์—ญ์ „ํŒŒ ๊ณผ์ •์—์„œ ๋””์ฝ”๋”๋กœ๋ถ€ํ„ฐ ์ธ์ฝ”๋”๋กœ ๊ธฐ์šธ๊ธฐ๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค.
์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด VQ-VAE๋Š” STE ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

STE๋Š” ๋””์ฝ”๋” ์ž…๋ ฅ $z_q(x)$์—์„œ ๊ณ„์‚ฐ๋œ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์—ฌ ์ธ์ฝ”๋” ์ถœ๋ ฅ $z_e(x)$๋กœ ์ง์ ‘ ์ „๋‹ฌํ•œ๋‹ค.
์ฆ‰, ์—ญ์ „ํŒŒ ์‹œ์— ์–‘์žํ™” ์—ฐ์‚ฐ์ด ๋งˆ์น˜ ํ•ญ๋“ฑ ํ•จ์ˆ˜์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ทจ๊ธ‰๋œ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์ธ์ฝ”๋”๋Š” ๊ทธ๋ž˜๋””์–ธํŠธ๋ฅผ ์ •์ƒ์ ์œผ๋กœ ๋ฐ›์•„ ํ•™์Šต๋  ์ˆ˜ ์žˆ๋‹ค.

Training Objective

VQ-VAE์˜ ์†์‹ค ํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 3๊ฐ€์ง€ ํ•ญ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

\[L = -\log p(x\mid z_q(x)) + \lVert \text{sg}[z_e(x)] - e \rVert_2^2 + \beta \lVert z_e(x) - \text{sg}[e] \rVert_2^2 \tag{2}\]

์œ„ ์ˆ˜์‹์—์„œ $\text{sg}$๋Š” Stop-Gradient ์—ฐ์‚ฐ์ž๋กœ, ์ˆœ์ „ํŒŒ์—์„œ๋Š” ์ž…๋ ฅ์„ ๊ทธ๋Œ€๋กœ ํ†ต๊ณผ์‹œํ‚ค์ง€๋งŒ ์—ญ์ „ํŒŒ ์‹œ ๊ทธ๋ž˜๋””์–ธํŠธ ํ๋ฆ„์„ ์ฐจ๋‹จํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ์†์‹ค ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ธ์ฝ”๋”์™€ ์ฝ”๋“œ๋ถ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • $-\log p(x\mid z_q(x))$ (Reconstruction Loss): ์›๋ณธ ์ด๋ฏธ์ง€์™€ ๋””์ฝ”๋”๊ฐ€ ๋ณต์›ํ•œ ์ด๋ฏธ์ง€ ๊ฐ„์˜ ์ฐจ์ด๋กœ, ์ผ๋ฐ˜์ ์ธ ๋ณต์› ์˜ค์ฐจ์— ํ•ด๋‹นํ•œ๋‹ค.
  • $\lVert \text{sg}[z_e(x)] - e \rVert_2^2$ (Codebook Loss): ์ธ์ฝ”๋” ์ถœ๋ ฅ์„ ๊ณ ์ •์‹œํ‚จ ์ฑ„, ์ฝ”๋“œ๋ถ ๋ฒกํ„ฐ $e$๊ฐ€ ์ธ์ฝ”๋” ์ถœ๋ ฅ์— ๊ฐ€๊นŒ์›Œ์ง€๋„๋ก ์—…๋ฐ์ดํŠธํ•œ๋‹ค. ์ฝ”๋“œ๋ถ์ด ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์— ์ ์‘ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ํ•ญ์ด๋‹ค.
  • $\beta \lVert z_e(x) - \text{sg}[e] \rVert_2^2$ (Commitment Loss): ์ฝ”๋“œ๋ถ์„ ๊ณ ์ •์‹œํ‚ค๊ณ , ์ธ์ฝ”๋” ์ถœ๋ ฅ์ด ์„ ํƒ๋œ ์ฝ”๋“œ๋ถ ๋ฒกํ„ฐ์—์„œ ๋„ˆ๋ฌด ๋ฉ€์–ด์ง€์ง€ ์•Š๋„๋ก ๊ฐ•์ œํ•œ๋‹ค. ์ธ์ฝ”๋”์˜ ์ถœ๋ ฅ์ด ์—ฌ๋Ÿฌ ์ฝ”๋“œ๋ถ ๋ฒกํ„ฐ๋“ค ์‚ฌ์ด์—์„œ ์ง„๋™ํ•˜์ง€ ์•Š๊ณ  ํŠน์ • ๋ฒกํ„ฐ์— Commitํ•˜๋„๋ก ์œ ๋„ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋””์ฝ”๋”์˜ ์ถœ๋ ฅ ๋ถ„ํฌ๋ฅผ ๊ฐ€์šฐ์‹œ์•ˆ $\mathcal{N}(\hat{x}, \sigma^2 I)$์œผ๋กœ ๊ฐ€์ •ํ•˜๋ฉด, Reconstruction Loss๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด L2 Loss๋กœ ์น˜ํ™˜๋  ์ˆ˜ ์žˆ๋‹ค.

\[โˆ’\log p(x\mid z_qโ€‹(x))=\frac{1}{2\sigma^2}\lVert xโˆ’\hat{x}\rVert_2^2โ€‹+\text{const} \tag{3}\]

VQ-GAN

VQ-VAE๋Š” ์ด์‚ฐ์ ์ธ Latent Representation์„ ํ•™์Šตํ•˜๋Š” ํ‹€์„ ์ œ๊ณตํ–ˆ์ง€๋งŒ, ๋ณต์›๋œ ์ด๋ฏธ์ง€๊ฐ€ ํ๋ฆฟํ•ด์ง„๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค.
Reconstruction Loss๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ”ฝ์…€ ๋‹จ์œ„์˜ L2 ์˜ค์ฐจ๊ฐ€ ๋””์ฝ”๋”๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ๋“ค์˜ ํ‰๊ท ์— ๊ฐ€๊นŒ์šด ๊ฐ’์„ ๋‚ด๋„๋ก ์œ ๋„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ฃผํŒŒ ๋””ํ…Œ์ผ์ด ์†Œ์‹ค๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๊ณ , ์••์ถ•๋ฅ  (๋‹ค์šด์ƒ˜ํ”Œ๋ง ๋น„์œจ)์„ ํ‚ค์šธ์ˆ˜๋ก ์ด ๋ฌธ์ œ๋Š” ๋” ์‹ฌํ•ด์ง„๋‹ค.

VQ-GAN์€ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด VQ-VAE์˜ Reconstruction Loss๋ฅผ Perceptual Loss + Adversarial Loss์˜ ์กฐํ•ฉ์œผ๋กœ ๋Œ€์ฒดํ•˜์˜€๊ณ , ์ด๋ฅผ ํ†ตํ•ด ๊ฐ•ํ•œ ์••์ถ•๋ฅ ์—์„œ๋„ ์‹œ๊ฐ์ ์œผ๋กœ ํ’๋ถ€ํ•œ ๋ณต์›์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

๋ชจ๋ธ ๊ตฌ์กฐ

VQ-GAN์˜ ์ธ์ฝ”๋”-์ฝ”๋“œ๋ถ-๋””์ฝ”๋” ๊ตฌ์กฐ๋Š” VQ-VAE์™€ ๋™์ผํ•˜๋ฉฐ, $\arg\min$ ์—ฐ์‚ฐ์˜ ๋ฏธ๋ถ„ ๋ถˆ๊ฐ€๋Šฅ ๋ฌธ์ œ ์—ญ์‹œ VQ-VAE์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ STE๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.

\[\hat{x}= G(z_\vq) = G (\vq(E(x))) \tag{4}\]

์œ„ ์ˆ˜์‹์—์„œ $E$๋Š” ์ธ์ฝ”๋”, $G$๋Š” ๋””์ฝ”๋”, $\vq$๋Š” ์–‘์žํ™” ์—ฐ์‚ฐ์„ ์˜๋ฏธํ•œ๋‹ค.

fig2

VQ-VAE์™€ ๋‹ค๋ฅธ์ ์€ ๋””์ฝ”๋”์˜ ์ถœ๋ ฅ $\hat{x}$๊ฐ€ ๋‹จ์ˆœํžˆ ํ”ฝ์…€ ์˜ค์ฐจ๋กœ ํ‰๊ฐ€๋˜์ง€ ์•Š๊ณ , Perceptual Network์™€ Patch-based Discriminator๋ฅผ ํ•จ๊ป˜ ๊ฑฐ์น˜๋ฉฐ ํ‰๊ฐ€๋œ๋‹ค.

Training Objective

VQ-GAN์˜ ์ „์ฒด ํ•™์Šต ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

\[\mathcal{Q}^* = \arg\min_{E, G, \mathcal{Z}} \max_{D} \mathbb{E}_{x \sim p(x)} \Big[ \mathcal{L}_{\text{VQ}}(E, G, \mathcal{Z}) + \lambda\, \mathcal{L}_{\text{GAN}}(\{E, G, \mathcal{Z}\}, D) \Big] \tag{5}\]

$E, G, \mathcal{Z}$๋Š” ์†์‹ค์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ, Discriminator $D$๋Š” ์ตœ๋Œ€ํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ ๋Œ€์ ์œผ๋กœ ํ•จ๊ป˜ ํ•™์Šต๋œ๋‹ค.

VQ Loss

$\mathcal{L}_{\text{VQ}}$๋Š” VQ-VAE๋กœ๋ถ€ํ„ฐ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜จ ํ•ญ์ด๋‹ค.

\[\mathcal{L}_{\text{VQ}}(E, G, \mathcal{Z}) = \lVert x - \hat{x} \rVert^2 + \lVert \text{sg}[E(x)] - z_{\vq} \rVert_2^2 + \lVert \text{sg}[z_{\vq}] - E(x) \rVert_2^2 \tag{6}\]

์ฒซ ํ•ญ $\mathcal{L}_{\text{rec}}$๋Š” VQ-VAE์—์„œ๋Š” ํ”ฝ์…€ L2 Loss $\lVert x - \hat{x} \rVert^2$์˜€์ง€๋งŒ, VQ-GAN์—์„œ๋Š” ์ด๋ฅผ Perceptual Loss๋กœ ๋Œ€์ฒดํ•œ๋‹ค. (๋…ผ๋ฌธ์—์„œ ๊ตฌ์ฒด์ ์ธ ์ˆ˜์‹ ํ˜•ํƒœ๋Š” ๋ช…์‹œํ•˜์ง€ ์•Š์Œ)

Adversarial Loss

Adversarial Loss๋Š” ํ‘œ์ค€ GAN์˜ ํ˜•ํƒœ๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

\[\mathcal{L}_{\text{GAN}}(\{E, G, \mathcal{Z}\}, D) = \left[ \log D(x) + \log(1 - D(\hat{x})) \right] \tag{7}\]

$D$๋Š” ์‹ค์ œ ์ด๋ฏธ์ง€ $x$์—๋Š” ๋†’์€ ์ ์ˆ˜๋ฅผ, ์žฌ๊ตฌ์„ฑ๋œ $\hat{x}$์—๋Š” ๋‚ฎ์€ ์ ์ˆ˜๋ฅผ ๋ถ€์—ฌํ•˜๋„๋ก ํ•™์Šต๋˜๊ณ , $E, G, \mathcal{Z}$๋Š” ๊ทธ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ํ•™์Šต๋œ๋‹ค.

Adaptive Weighting

Adversarial Loss๊ฐ€ ํ•™์Šต ์ดˆ๊ธฐ์— ์ง€๋‚˜์น˜๊ฒŒ ํฌ๋ฉด ๋ชจ๋ธ์ด ๋ฐœ์‚ฐํ•˜๊ณ , ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ๋‹ค์‹œ ํ”ฝ์…€ ํ‰๊ท ์— ๊ฐ€๊นŒ์šด ํ๋ฆฟํ•œ ์ถœ๋ ฅ์œผ๋กœ ํšŒ๊ท€ํ•œ๋‹ค.

VQ-GAN์€ Reconstruction Loss์™€ Adversarial Loss์˜ ๊ท ํ˜•์„ ๊ณ ์ • ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋‘์ง€ ์•Š๊ณ , ๊ฐ€์ค‘์น˜ $\lambda$๋ฅผ ๋™์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค.

\[\lambda = \frac{\nabla_{G_L}[L_{\text{rec}}]}{\nabla_{G_L}[L_{\text{adv}}] + \delta} \tag{8}\]