From 0f25c0ac859e4996dd4132e4c06f943e890886e7 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Wed, 1 May 2024 21:54:10 +0200 Subject: [PATCH] update --- doc/pub/week15/html/week15-bs.html | 211 ++++++- doc/pub/week15/html/week15-reveal.html | 211 ++++++- doc/pub/week15/html/week15-solarized.html | 206 +++++- doc/pub/week15/html/week15.html | 206 +++++- doc/pub/week15/ipynb/ipynb-week15-src.tar.gz | Bin 4281721 -> 4281721 bytes doc/pub/week15/ipynb/week15.ipynb | 626 ++++++++++++++----- doc/pub/week15/pdf/week15.pdf | Bin 5600458 -> 5620908 bytes doc/src/week15/week15.do.txt | 589 ++++------------- 8 files changed, 1425 insertions(+), 624 deletions(-) diff --git a/doc/pub/week15/html/week15-bs.html b/doc/pub/week15/html/week15-bs.html index 1d750038..0b8a907b 100644 --- a/doc/pub/week15/html/week15-bs.html +++ b/doc/pub/week15/html/week15-bs.html @@ -77,6 +77,14 @@ None, 'explicit-expression-for-the-derivative'), ('Final expression', 2, None, 'final-expression'), + ('Kullback-Leibler divergence', + 2, + None, + 'kullback-leibler-divergence'), + ('Jensen-Shannon divergence', + 2, + None, + 'jensen-shannon-divergence'), ('Generative model, basic overview (Borrowed from Rashcka et ' 'al)', 2, @@ -136,6 +144,15 @@ 2, None, 'steps-in-building-a-gan-borrowed-from-rashcka-et-al'), + ('Generative Adversarial Networks', + 2, + None, + 'generative-adversarial-networks'), + ('Optimal value for $D$', 2, None, 'optimal-value-for-d'), + ('What does the Loss Function Represent?', + 2, + None, + 'what-does-the-loss-function-represent'), ('More references', 2, None, 'more-references'), ('Writing Our First Generative Adversarial Network', 2, @@ -218,6 +235,8 @@
  • The derivative of the partition function
  • Explicit expression for the derivative
  • Final expression
  • +
  • Kullback-Leibler divergence
  • +
  • Jensen-Shannon divergence
  • Generative model, basic overview (Borrowed from Rashcka et al)
  • Reminder on VAEs
  • Evidence Lower Bound
  • @@ -249,6 +268,9 @@
  • Deafault choice
  • Design of GANs
  • Steps in building a GAN (Borrowed from Rashcka et al)
  • +
  • Generative Adversarial Networks
  • +
  • Optimal value for \( D \)
  • +
  • What does the Loss Function Represent?
  • More references
  • Writing Our First Generative Adversarial Network
  • Implementing the networks (Borrowed from Rashcka et al)
  • @@ -310,7 +332,7 @@

    Plans for the
    1. Summary of Variational Autoencoders
    2. Generative Adversarial Networks (GANs), see https://lilianweng.github.io/posts/2017-08-20-gan/ for nice overview
    3. -
    4. Start discussion of diffusion models
    5. +
    6. Start discussion of diffusion models, motivation
    7. Video of lecture
    8. Whiteboard notes
    @@ -535,6 +557,48 @@

    Final expression

    sampling as the standard sampling rule.

    + +

    Kullback-Leibler divergence

    + +

    Before we continue, we need to remind ourselves about the +Kullback-Leibler divergence introduced earlier. This will also allow +us to introduce another measure used in connection with the training +of Generative Adversarial Networks, the so-called Jensen-Shannon divergence.. +These metrics are useful for quantifying the similarity between two probability distributions. +

    + +

    The Kullback–Leibler (KL) divergence, labeled \( D_{KL} \), measures how one probability distribution \( p \) diverges from a second expected probability distribution \( q \), +that is +

    +$$ +D_{KL}(p \| q) = \int_x p(x) \log \frac{p(x)}{q(x)} dx. +$$ + +

    The KL-divegrnece \( D_{KL} \) achieves the minimum zero when \( p(x) == q(x) \) everywhere.

    + +

    Note that the KL divergence is asymmetric. In cases where \( p(x) \) is +close to zero, but \( q(x) \) is significantly non-zero, the \( q \)'s effect +is disregarded. It could cause buggy results when we just want to +measure the similarity between two equally important distributions. +

    + + +

    Jensen-Shannon divergence

    + +

    The Jensen–Shannon (JS) divergence is another measure of similarity between +two probability distributions, bounded by \( [0, 1] \). The JS-divergence is +symmetric and more smooth than the KL-divergence. +It is defined as +

    +$$ +D_{JS}(p \| q) = \frac{1}{2} D_{KL}(p \| \frac{p + q}{2}) + \frac{1}{2} D_{KL}(q \| \frac{p + q}{2}) +$$ + +

    Many practitioners believe that one reason behind GANs' big success is +switching the loss function from asymmetric KL-divergence in +traditional maximum-likelihood approach to symmetric JS-divergence. +

    +

    Generative model, basic overview (Borrowed from Rashcka et al)

    @@ -627,14 +691,14 @@

    The derivation from last w $$ \begin{align*} -\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dz && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ - & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dz && \text{(Bring evidence into integral)}\\ +\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dh && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ + & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dh && \text{(Bring evidence into integral)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p(\boldsymbol{x})\right] && \text{(Definition of Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{p(\boldsymbol{h}|\boldsymbol{x})}\right]&& \\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]&& \text{(Multiply by $1 = \frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}$)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(Split the Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ + D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ & \geq \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(KL Divergence always $\geq 0$)} \end{align*} $$ @@ -675,7 +739,7 @@

    Dissecting the equations

    {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Chain Rule of Probability)}}\\ &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Split the Expectation)}}\\ -&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} +&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} \end{align*} $$ @@ -724,7 +788,7 @@

    Analytical evaluation

    Then, the KL divergence term of the ELBO can be computed analytically, and the reconstruction term can be approximated using a Monte Carlo estimate. Our objective can then be rewritten as:

    $$ \begin{align*} - \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) + \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \end{align*} $$ @@ -982,6 +1046,140 @@

    Step

    + +

    Generative Adversarial Networks

    +

    Generative adversarial networks (GANs) have shown great results in +many generative tasks to replicate the real-world rich content such as +images, human language, and music. It is inspired by game theory: two +models, a generator and a discriminator, are competing with each other while +making each other stronger at the same time. However, it is rather +challenging to train a GANs model, +training instability or failure to converge. +

    + +

    Generative adversarial networks consist of two models (in their simplest form as two opposing feed forward neural networks)

    +
      +
    1. A discriminator \( D \) estimates the probability of a given sample coming from the real dataset. It works as a critic and is optimized to tell the fake samples from the realo ones
    2. +
    3. A generator \( G \) outputs synthetic samples given a noise variable input \( z \) (\( z \) brings in potential output diversity). It is trained to capture the real data distribution in order to generate samples that can be as real as possible, or in other words, can trick the discriminator to offer a high probability.
    4. +
    +

    At the end of the training, the generator can be used to generate for +example new images. In this sense we have trained a model which can +produce new samples. We say that we have implicitely defined a +probability. +

    + +

    These two models compete against each other during the training +process: the generator \( G \) is trying hard to trick the discriminator, +while the critic model \( D \) is trying hard not to be cheated. This +interesting zero-sum game between two models motivates both to improve +their functionalities. +

    + + + + + + + +

    On one hand, we want to make sure the discriminator \( D \)'s decisions +over real data are accurate by maximizing \( \mathbb{E}_{x \sim +p_{r}(x)} [\log D(x)] \). Meanwhile, given a fake sample \( G(z), z \sim +p_z(z) \), the discriminator is expected to output a probability, +\( D(G(z)) \), close to zero by maximizing \( \mathbb{E}_{z \sim p_{z}(z)} +[\log (1 - D(G(z)))] \). +

    + +

    On the other hand, the generator is trained to increase the chances of +\( D \) producing a high probability for a fake example, thus to minimize +\( \mathbb{E}_{z \sim p_{z}(z)} [\log (1 - D(G(z)))] \). +

    + +

    When combining both aspects together, \( D \) and \( G \) are playing a \textit{minimax game} in which we should optimize the following loss function:

    + +$$ +\begin{aligned} +\min_G \max_D L(D, G) +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{z \sim p_z(z)} [\log(1 - D(G(z)))] \\ +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{x \sim p_g(x)} [\log(1 - D(x)] +\end{aligned} +$$ + +

    where \( \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] \) has no impact on \( G \) during gradient descent updates.

    + + +

    Optimal value for \( D \)

    + +

    Now we have a well-defined loss function. Let's first examine what is the best value for \( D \).

    + +$$ +L(G, D) = \int_x \bigg( p_{r}(x) \log(D(x)) + p_g (x) \log(1 - D(x)) \bigg) dx +$$ + +

    Since we are interested in what is the best value of \( D(x) \) to maximize \( L(G, D) \), let us label

    + +$$ +\tilde{x} = D(x), +A=p_{r}(x), +B=p_g(x) +$$ + +

    And then what is inside the integral (we can safely ignore the integral because \( x \) is sampled over all the possible values) is:

    + +$$ +\begin{align*} +f(\tilde{x}) +& = A log\tilde{x} + B log(1-\tilde{x}) \\ +\frac{d f(\tilde{x})}{d \tilde{x}} +& = A \frac{1}{ln10} \frac{1}{\tilde{x}} - B \frac{1}{ln10} \frac{1}{1 - \tilde{x}} \\ +& = \frac{1}{ln10} (\frac{A}{\tilde{x}} - \frac{B}{1-\tilde{x}}) \\ +& = \frac{1}{ln10} \frac{A - (A + B)\tilde{x}}{\tilde{x} (1 - \tilde{x})} \\ +\end{align*} +$$ + +

    Thus, set \( \frac{d f(\tilde{x})}{d \tilde{x}} = 0 \), we get the best value of the discriminator: \( D^*(x) = \tilde{x}^* = \frac{A}{A + B} = \frac{p_{r}(x)}{p_{r}(x) + p_g(x)} \in [0, 1] \). +Once the generator is trained to its optimal, \( p_g \) gets very close to \( p_{r} \). When \( p_g = p_{r} \), \( D^*(x) \) becomes \( 1/2 \). +

    + +

    When both \( G \) and \( D \) are at their optimal values, we have \( p_g = p_{r} \) and \( D^*(x) = 1/2 \) and the loss function becomes:

    + +$$ +\begin{align*} +L(G, D^*) +&= \int_x \bigg( p_{r}(x) \log(D^*(x)) + p_g (x) \log(1 - D^*(x)) \bigg) dx \\ +&= \log \frac{1}{2} \int_x p_{r}(x) dx + \log \frac{1}{2} \int_x p_g(x) dx \\ +&= -2\log2 +\end{align*} +$$ + + + +

    What does the Loss Function Represent?

    + +

    The JS divergence between \( p_{r} \) and \( p_g \) can be computed as:

    + +$$ +\begin{align*} +D_{JS}(p_{r} \| p_g) +=& \frac{1}{2} D_{KL}(p_{r} || \frac{p_{r} + p_g}{2}) + \frac{1}{2} D_{KL}(p_{g} || \frac{p_{r} + p_g}{2}) \\ +=& \frac{1}{2} \bigg( \log2 + \int_x p_{r}(x) \log \frac{p_{r}(x)}{p_{r} + p_g(x)} dx \bigg) + \\& \frac{1}{2} \bigg( \log2 + \int_x p_g(x) \log \frac{p_g(x)}{p_{r} + p_g(x)} dx \bigg) \\ +=& \frac{1}{2} \bigg( \log4 + L(G, D^*) \bigg) +\end{align*} +$$ + +

    Thus,

    + +$$ +L(G, D^*) = 2D_{JS}(p_{r} \| p_g) - 2\log2 +$$ + +

    Essentially the loss function of GAN quantifies the similarity between +the generative data distribution \( p_g \) and the real sample +distribution \( p_{r} \) by JS divergence when the discriminator is +optimal. The best \( G^* \) that replicates the real data distribution +leads to the minimum \( L(G^*, D^*) = -2\log2 \) which is aligned with +equations above. +

    +

    More references

    @@ -1697,6 +1895,7 @@

    Diffusion learning

    smooth target distribution, this method can capture data distributions of arbitrary form.

    + diff --git a/doc/pub/week15/html/week15-reveal.html b/doc/pub/week15/html/week15-reveal.html index c496b5a9..fdaad2bb 100644 --- a/doc/pub/week15/html/week15-reveal.html +++ b/doc/pub/week15/html/week15-reveal.html @@ -203,7 +203,7 @@

    Plans for the week of April 2

    1. Summary of Variational Autoencoders
    2. Generative Adversarial Networks (GANs), see https://lilianweng.github.io/posts/2017-08-20-gan/ for nice overview
    3. -

    4. Start discussion of diffusion models
    5. +

    6. Start discussion of diffusion models, motivation
    7. Video of lecture
    8. Whiteboard notes
    @@ -477,6 +477,54 @@

    Final expression

    +
    +

    Kullback-Leibler divergence

    + +

    Before we continue, we need to remind ourselves about the +Kullback-Leibler divergence introduced earlier. This will also allow +us to introduce another measure used in connection with the training +of Generative Adversarial Networks, the so-called Jensen-Shannon divergence.. +These metrics are useful for quantifying the similarity between two probability distributions. +

    + +

    The Kullback–Leibler (KL) divergence, labeled \( D_{KL} \), measures how one probability distribution \( p \) diverges from a second expected probability distribution \( q \), +that is +

    +

     
    +$$ +D_{KL}(p \| q) = \int_x p(x) \log \frac{p(x)}{q(x)} dx. +$$ +

     
    + +

    The KL-divegrnece \( D_{KL} \) achieves the minimum zero when \( p(x) == q(x) \) everywhere.

    + +

    Note that the KL divergence is asymmetric. In cases where \( p(x) \) is +close to zero, but \( q(x) \) is significantly non-zero, the \( q \)'s effect +is disregarded. It could cause buggy results when we just want to +measure the similarity between two equally important distributions. +

    +
    + +
    +

    Jensen-Shannon divergence

    + +

    The Jensen–Shannon (JS) divergence is another measure of similarity between +two probability distributions, bounded by \( [0, 1] \). The JS-divergence is +symmetric and more smooth than the KL-divergence. +It is defined as +

    +

     
    +$$ +D_{JS}(p \| q) = \frac{1}{2} D_{KL}(p \| \frac{p + q}{2}) + \frac{1}{2} D_{KL}(q \| \frac{p + q}{2}) +$$ +

     
    + +

    Many practitioners believe that one reason behind GANs' big success is +switching the loss function from asymmetric KL-divergence in +traditional maximum-likelihood approach to symmetric JS-divergence. +

    +
    +

    Generative model, basic overview (Borrowed from Rashcka et al)

    @@ -581,14 +629,14 @@

    The derivation from last week

    $$ \begin{align*} -\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dz && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ - & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dz && \text{(Bring evidence into integral)}\\ +\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dh && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ + & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dh && \text{(Bring evidence into integral)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p(\boldsymbol{x})\right] && \text{(Definition of Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{p(\boldsymbol{h}|\boldsymbol{x})}\right]&& \\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]&& \text{(Multiply by $1 = \frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}$)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(Split the Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ + D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ & \geq \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(KL Divergence always $\geq 0$)} \end{align*} $$ @@ -632,7 +680,7 @@

    Dissecting the equations

    {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Chain Rule of Probability)}}\\ &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Split the Expectation)}}\\ -&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} +&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} \end{align*} $$

     
    @@ -687,7 +735,7 @@

    Analytical evaluation

     
    $$ \begin{align*} - \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) + \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \end{align*} $$

     
    @@ -980,6 +1028,157 @@

    Steps in building a

    +
    +

    Generative Adversarial Networks

    +

    Generative adversarial networks (GANs) have shown great results in +many generative tasks to replicate the real-world rich content such as +images, human language, and music. It is inspired by game theory: two +models, a generator and a discriminator, are competing with each other while +making each other stronger at the same time. However, it is rather +challenging to train a GANs model, +training instability or failure to converge. +

    + +

    Generative adversarial networks consist of two models (in their simplest form as two opposing feed forward neural networks)

    +
      +

    1. A discriminator \( D \) estimates the probability of a given sample coming from the real dataset. It works as a critic and is optimized to tell the fake samples from the realo ones
    2. +

    3. A generator \( G \) outputs synthetic samples given a noise variable input \( z \) (\( z \) brings in potential output diversity). It is trained to capture the real data distribution in order to generate samples that can be as real as possible, or in other words, can trick the discriminator to offer a high probability.
    4. +
    +

    +

    At the end of the training, the generator can be used to generate for +example new images. In this sense we have trained a model which can +produce new samples. We say that we have implicitely defined a +probability. +

    + +

    These two models compete against each other during the training +process: the generator \( G \) is trying hard to trick the discriminator, +while the critic model \( D \) is trying hard not to be cheated. This +interesting zero-sum game between two models motivates both to improve +their functionalities. +

    + + + + + + + +

    On one hand, we want to make sure the discriminator \( D \)'s decisions +over real data are accurate by maximizing \( \mathbb{E}_{x \sim +p_{r}(x)} [\log D(x)] \). Meanwhile, given a fake sample \( G(z), z \sim +p_z(z) \), the discriminator is expected to output a probability, +\( D(G(z)) \), close to zero by maximizing \( \mathbb{E}_{z \sim p_{z}(z)} +[\log (1 - D(G(z)))] \). +

    + +

    On the other hand, the generator is trained to increase the chances of +\( D \) producing a high probability for a fake example, thus to minimize +\( \mathbb{E}_{z \sim p_{z}(z)} [\log (1 - D(G(z)))] \). +

    + +

    When combining both aspects together, \( D \) and \( G \) are playing a \textit{minimax game} in which we should optimize the following loss function:

    + +

     
    +$$ +\begin{aligned} +\min_G \max_D L(D, G) +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{z \sim p_z(z)} [\log(1 - D(G(z)))] \\ +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{x \sim p_g(x)} [\log(1 - D(x)] +\end{aligned} +$$ +

     
    + +

    where \( \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] \) has no impact on \( G \) during gradient descent updates.

    +
    + +
    +

    Optimal value for \( D \)

    + +

    Now we have a well-defined loss function. Let's first examine what is the best value for \( D \).

    + +

     
    +$$ +L(G, D) = \int_x \bigg( p_{r}(x) \log(D(x)) + p_g (x) \log(1 - D(x)) \bigg) dx +$$ +

     
    + +

    Since we are interested in what is the best value of \( D(x) \) to maximize \( L(G, D) \), let us label

    + +

     
    +$$ +\tilde{x} = D(x), +A=p_{r}(x), +B=p_g(x) +$$ +

     
    + +

    And then what is inside the integral (we can safely ignore the integral because \( x \) is sampled over all the possible values) is:

    + +

     
    +$$ +\begin{align*} +f(\tilde{x}) +& = A log\tilde{x} + B log(1-\tilde{x}) \\ +\frac{d f(\tilde{x})}{d \tilde{x}} +& = A \frac{1}{ln10} \frac{1}{\tilde{x}} - B \frac{1}{ln10} \frac{1}{1 - \tilde{x}} \\ +& = \frac{1}{ln10} (\frac{A}{\tilde{x}} - \frac{B}{1-\tilde{x}}) \\ +& = \frac{1}{ln10} \frac{A - (A + B)\tilde{x}}{\tilde{x} (1 - \tilde{x})} \\ +\end{align*} +$$ +

     
    + +

    Thus, set \( \frac{d f(\tilde{x})}{d \tilde{x}} = 0 \), we get the best value of the discriminator: \( D^*(x) = \tilde{x}^* = \frac{A}{A + B} = \frac{p_{r}(x)}{p_{r}(x) + p_g(x)} \in [0, 1] \). +Once the generator is trained to its optimal, \( p_g \) gets very close to \( p_{r} \). When \( p_g = p_{r} \), \( D^*(x) \) becomes \( 1/2 \). +

    + +

    When both \( G \) and \( D \) are at their optimal values, we have \( p_g = p_{r} \) and \( D^*(x) = 1/2 \) and the loss function becomes:

    + +

     
    +$$ +\begin{align*} +L(G, D^*) +&= \int_x \bigg( p_{r}(x) \log(D^*(x)) + p_g (x) \log(1 - D^*(x)) \bigg) dx \\ +&= \log \frac{1}{2} \int_x p_{r}(x) dx + \log \frac{1}{2} \int_x p_g(x) dx \\ +&= -2\log2 +\end{align*} +$$ +

     
    +

    + +
    +

    What does the Loss Function Represent?

    + +

    The JS divergence between \( p_{r} \) and \( p_g \) can be computed as:

    + +

     
    +$$ +\begin{align*} +D_{JS}(p_{r} \| p_g) +=& \frac{1}{2} D_{KL}(p_{r} || \frac{p_{r} + p_g}{2}) + \frac{1}{2} D_{KL}(p_{g} || \frac{p_{r} + p_g}{2}) \\ +=& \frac{1}{2} \bigg( \log2 + \int_x p_{r}(x) \log \frac{p_{r}(x)}{p_{r} + p_g(x)} dx \bigg) + \\& \frac{1}{2} \bigg( \log2 + \int_x p_g(x) \log \frac{p_g(x)}{p_{r} + p_g(x)} dx \bigg) \\ +=& \frac{1}{2} \bigg( \log4 + L(G, D^*) \bigg) +\end{align*} +$$ +

     
    + +

    Thus,

    + +

     
    +$$ +L(G, D^*) = 2D_{JS}(p_{r} \| p_g) - 2\log2 +$$ +

     
    + +

    Essentially the loss function of GAN quantifies the similarity between +the generative data distribution \( p_g \) and the real sample +distribution \( p_{r} \) by JS divergence when the discriminator is +optimal. The best \( G^* \) that replicates the real data distribution +leads to the minimum \( L(G^*, D^*) = -2\log2 \) which is aligned with +equations above. +

    +
    +

    More references

    diff --git a/doc/pub/week15/html/week15-solarized.html b/doc/pub/week15/html/week15-solarized.html index 8c5fd574..37e3193f 100644 --- a/doc/pub/week15/html/week15-solarized.html +++ b/doc/pub/week15/html/week15-solarized.html @@ -104,6 +104,14 @@ None, 'explicit-expression-for-the-derivative'), ('Final expression', 2, None, 'final-expression'), + ('Kullback-Leibler divergence', + 2, + None, + 'kullback-leibler-divergence'), + ('Jensen-Shannon divergence', + 2, + None, + 'jensen-shannon-divergence'), ('Generative model, basic overview (Borrowed from Rashcka et ' 'al)', 2, @@ -163,6 +171,15 @@ 2, None, 'steps-in-building-a-gan-borrowed-from-rashcka-et-al'), + ('Generative Adversarial Networks', + 2, + None, + 'generative-adversarial-networks'), + ('Optimal value for $D$', 2, None, 'optimal-value-for-d'), + ('What does the Loss Function Represent?', + 2, + None, + 'what-does-the-loss-function-represent'), ('More references', 2, None, 'more-references'), ('Writing Our First Generative Adversarial Network', 2, @@ -245,7 +262,7 @@

    Plans for the week of April 2
    1. Summary of Variational Autoencoders
    2. Generative Adversarial Networks (GANs), see https://lilianweng.github.io/posts/2017-08-20-gan/ for nice overview
    3. -
    4. Start discussion of diffusion models
    5. +
    6. Start discussion of diffusion models, motivation
    7. Video of lecture
    8. Whiteboard notes
    @@ -468,6 +485,48 @@

    Final expression

    sampling as the standard sampling rule.

    +









    +

    Kullback-Leibler divergence

    + +

    Before we continue, we need to remind ourselves about the +Kullback-Leibler divergence introduced earlier. This will also allow +us to introduce another measure used in connection with the training +of Generative Adversarial Networks, the so-called Jensen-Shannon divergence.. +These metrics are useful for quantifying the similarity between two probability distributions. +

    + +

    The Kullback–Leibler (KL) divergence, labeled \( D_{KL} \), measures how one probability distribution \( p \) diverges from a second expected probability distribution \( q \), +that is +

    +$$ +D_{KL}(p \| q) = \int_x p(x) \log \frac{p(x)}{q(x)} dx. +$$ + +

    The KL-divegrnece \( D_{KL} \) achieves the minimum zero when \( p(x) == q(x) \) everywhere.

    + +

    Note that the KL divergence is asymmetric. In cases where \( p(x) \) is +close to zero, but \( q(x) \) is significantly non-zero, the \( q \)'s effect +is disregarded. It could cause buggy results when we just want to +measure the similarity between two equally important distributions. +

    + +









    +

    Jensen-Shannon divergence

    + +

    The Jensen–Shannon (JS) divergence is another measure of similarity between +two probability distributions, bounded by \( [0, 1] \). The JS-divergence is +symmetric and more smooth than the KL-divergence. +It is defined as +

    +$$ +D_{JS}(p \| q) = \frac{1}{2} D_{KL}(p \| \frac{p + q}{2}) + \frac{1}{2} D_{KL}(q \| \frac{p + q}{2}) +$$ + +

    Many practitioners believe that one reason behind GANs' big success is +switching the loss function from asymmetric KL-divergence in +traditional maximum-likelihood approach to symmetric JS-divergence. +

    +









    Generative model, basic overview (Borrowed from Rashcka et al)

    @@ -560,14 +619,14 @@

    The derivation from last week

    $$ \begin{align*} -\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dz && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ - & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dz && \text{(Bring evidence into integral)}\\ +\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dh && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ + & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dh && \text{(Bring evidence into integral)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p(\boldsymbol{x})\right] && \text{(Definition of Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{p(\boldsymbol{h}|\boldsymbol{x})}\right]&& \\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]&& \text{(Multiply by $1 = \frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}$)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(Split the Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ + D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ & \geq \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(KL Divergence always $\geq 0$)} \end{align*} $$ @@ -608,7 +667,7 @@

    Dissecting the equations

    {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Chain Rule of Probability)}}\\ &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Split the Expectation)}}\\ -&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} +&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} \end{align*} $$ @@ -657,7 +716,7 @@

    Analytical evaluation

    Then, the KL divergence term of the ELBO can be computed analytically, and the reconstruction term can be approximated using a Monte Carlo estimate. Our objective can then be rewritten as:

    $$ \begin{align*} - \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) + \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \end{align*} $$ @@ -915,6 +974,140 @@

    Steps in building a

    +









    +

    Generative Adversarial Networks

    +

    Generative adversarial networks (GANs) have shown great results in +many generative tasks to replicate the real-world rich content such as +images, human language, and music. It is inspired by game theory: two +models, a generator and a discriminator, are competing with each other while +making each other stronger at the same time. However, it is rather +challenging to train a GANs model, +training instability or failure to converge. +

    + +

    Generative adversarial networks consist of two models (in their simplest form as two opposing feed forward neural networks)

    +
      +
    1. A discriminator \( D \) estimates the probability of a given sample coming from the real dataset. It works as a critic and is optimized to tell the fake samples from the realo ones
    2. +
    3. A generator \( G \) outputs synthetic samples given a noise variable input \( z \) (\( z \) brings in potential output diversity). It is trained to capture the real data distribution in order to generate samples that can be as real as possible, or in other words, can trick the discriminator to offer a high probability.
    4. +
    +

    At the end of the training, the generator can be used to generate for +example new images. In this sense we have trained a model which can +produce new samples. We say that we have implicitely defined a +probability. +

    + +

    These two models compete against each other during the training +process: the generator \( G \) is trying hard to trick the discriminator, +while the critic model \( D \) is trying hard not to be cheated. This +interesting zero-sum game between two models motivates both to improve +their functionalities. +

    + + + + + + + +

    On one hand, we want to make sure the discriminator \( D \)'s decisions +over real data are accurate by maximizing \( \mathbb{E}_{x \sim +p_{r}(x)} [\log D(x)] \). Meanwhile, given a fake sample \( G(z), z \sim +p_z(z) \), the discriminator is expected to output a probability, +\( D(G(z)) \), close to zero by maximizing \( \mathbb{E}_{z \sim p_{z}(z)} +[\log (1 - D(G(z)))] \). +

    + +

    On the other hand, the generator is trained to increase the chances of +\( D \) producing a high probability for a fake example, thus to minimize +\( \mathbb{E}_{z \sim p_{z}(z)} [\log (1 - D(G(z)))] \). +

    + +

    When combining both aspects together, \( D \) and \( G \) are playing a \textit{minimax game} in which we should optimize the following loss function:

    + +$$ +\begin{aligned} +\min_G \max_D L(D, G) +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{z \sim p_z(z)} [\log(1 - D(G(z)))] \\ +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{x \sim p_g(x)} [\log(1 - D(x)] +\end{aligned} +$$ + +

    where \( \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] \) has no impact on \( G \) during gradient descent updates.

    + +









    +

    Optimal value for \( D \)

    + +

    Now we have a well-defined loss function. Let's first examine what is the best value for \( D \).

    + +$$ +L(G, D) = \int_x \bigg( p_{r}(x) \log(D(x)) + p_g (x) \log(1 - D(x)) \bigg) dx +$$ + +

    Since we are interested in what is the best value of \( D(x) \) to maximize \( L(G, D) \), let us label

    + +$$ +\tilde{x} = D(x), +A=p_{r}(x), +B=p_g(x) +$$ + +

    And then what is inside the integral (we can safely ignore the integral because \( x \) is sampled over all the possible values) is:

    + +$$ +\begin{align*} +f(\tilde{x}) +& = A log\tilde{x} + B log(1-\tilde{x}) \\ +\frac{d f(\tilde{x})}{d \tilde{x}} +& = A \frac{1}{ln10} \frac{1}{\tilde{x}} - B \frac{1}{ln10} \frac{1}{1 - \tilde{x}} \\ +& = \frac{1}{ln10} (\frac{A}{\tilde{x}} - \frac{B}{1-\tilde{x}}) \\ +& = \frac{1}{ln10} \frac{A - (A + B)\tilde{x}}{\tilde{x} (1 - \tilde{x})} \\ +\end{align*} +$$ + +

    Thus, set \( \frac{d f(\tilde{x})}{d \tilde{x}} = 0 \), we get the best value of the discriminator: \( D^*(x) = \tilde{x}^* = \frac{A}{A + B} = \frac{p_{r}(x)}{p_{r}(x) + p_g(x)} \in [0, 1] \). +Once the generator is trained to its optimal, \( p_g \) gets very close to \( p_{r} \). When \( p_g = p_{r} \), \( D^*(x) \) becomes \( 1/2 \). +

    + +

    When both \( G \) and \( D \) are at their optimal values, we have \( p_g = p_{r} \) and \( D^*(x) = 1/2 \) and the loss function becomes:

    + +$$ +\begin{align*} +L(G, D^*) +&= \int_x \bigg( p_{r}(x) \log(D^*(x)) + p_g (x) \log(1 - D^*(x)) \bigg) dx \\ +&= \log \frac{1}{2} \int_x p_{r}(x) dx + \log \frac{1}{2} \int_x p_g(x) dx \\ +&= -2\log2 +\end{align*} +$$ + + +









    +

    What does the Loss Function Represent?

    + +

    The JS divergence between \( p_{r} \) and \( p_g \) can be computed as:

    + +$$ +\begin{align*} +D_{JS}(p_{r} \| p_g) +=& \frac{1}{2} D_{KL}(p_{r} || \frac{p_{r} + p_g}{2}) + \frac{1}{2} D_{KL}(p_{g} || \frac{p_{r} + p_g}{2}) \\ +=& \frac{1}{2} \bigg( \log2 + \int_x p_{r}(x) \log \frac{p_{r}(x)}{p_{r} + p_g(x)} dx \bigg) + \\& \frac{1}{2} \bigg( \log2 + \int_x p_g(x) \log \frac{p_g(x)}{p_{r} + p_g(x)} dx \bigg) \\ +=& \frac{1}{2} \bigg( \log4 + L(G, D^*) \bigg) +\end{align*} +$$ + +

    Thus,

    + +$$ +L(G, D^*) = 2D_{JS}(p_{r} \| p_g) - 2\log2 +$$ + +

    Essentially the loss function of GAN quantifies the similarity between +the generative data distribution \( p_g \) and the real sample +distribution \( p_{r} \) by JS divergence when the discriminator is +optimal. The best \( G^* \) that replicates the real data distribution +leads to the minimum \( L(G^*, D^*) = -2\log2 \) which is aligned with +equations above. +

    +









    More references

    @@ -1630,6 +1823,7 @@

    Diffusion learning

    smooth target distribution, this method can capture data distributions of arbitrary form.

    +
    © 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license diff --git a/doc/pub/week15/html/week15.html b/doc/pub/week15/html/week15.html index 9bb01f5f..39303bd7 100644 --- a/doc/pub/week15/html/week15.html +++ b/doc/pub/week15/html/week15.html @@ -181,6 +181,14 @@ None, 'explicit-expression-for-the-derivative'), ('Final expression', 2, None, 'final-expression'), + ('Kullback-Leibler divergence', + 2, + None, + 'kullback-leibler-divergence'), + ('Jensen-Shannon divergence', + 2, + None, + 'jensen-shannon-divergence'), ('Generative model, basic overview (Borrowed from Rashcka et ' 'al)', 2, @@ -240,6 +248,15 @@ 2, None, 'steps-in-building-a-gan-borrowed-from-rashcka-et-al'), + ('Generative Adversarial Networks', + 2, + None, + 'generative-adversarial-networks'), + ('Optimal value for $D$', 2, None, 'optimal-value-for-d'), + ('What does the Loss Function Represent?', + 2, + None, + 'what-does-the-loss-function-represent'), ('More references', 2, None, 'more-references'), ('Writing Our First Generative Adversarial Network', 2, @@ -322,7 +339,7 @@

    Plans for the week of April 2
    1. Summary of Variational Autoencoders
    2. Generative Adversarial Networks (GANs), see https://lilianweng.github.io/posts/2017-08-20-gan/ for nice overview
    3. -
    4. Start discussion of diffusion models
    5. +
    6. Start discussion of diffusion models, motivation
    7. Video of lecture
    8. Whiteboard notes
    @@ -545,6 +562,48 @@

    Final expression

    sampling as the standard sampling rule.

    +









    +

    Kullback-Leibler divergence

    + +

    Before we continue, we need to remind ourselves about the +Kullback-Leibler divergence introduced earlier. This will also allow +us to introduce another measure used in connection with the training +of Generative Adversarial Networks, the so-called Jensen-Shannon divergence.. +These metrics are useful for quantifying the similarity between two probability distributions. +

    + +

    The Kullback–Leibler (KL) divergence, labeled \( D_{KL} \), measures how one probability distribution \( p \) diverges from a second expected probability distribution \( q \), +that is +

    +$$ +D_{KL}(p \| q) = \int_x p(x) \log \frac{p(x)}{q(x)} dx. +$$ + +

    The KL-divegrnece \( D_{KL} \) achieves the minimum zero when \( p(x) == q(x) \) everywhere.

    + +

    Note that the KL divergence is asymmetric. In cases where \( p(x) \) is +close to zero, but \( q(x) \) is significantly non-zero, the \( q \)'s effect +is disregarded. It could cause buggy results when we just want to +measure the similarity between two equally important distributions. +

    + +









    +

    Jensen-Shannon divergence

    + +

    The Jensen–Shannon (JS) divergence is another measure of similarity between +two probability distributions, bounded by \( [0, 1] \). The JS-divergence is +symmetric and more smooth than the KL-divergence. +It is defined as +

    +$$ +D_{JS}(p \| q) = \frac{1}{2} D_{KL}(p \| \frac{p + q}{2}) + \frac{1}{2} D_{KL}(q \| \frac{p + q}{2}) +$$ + +

    Many practitioners believe that one reason behind GANs' big success is +switching the loss function from asymmetric KL-divergence in +traditional maximum-likelihood approach to symmetric JS-divergence. +

    +









    Generative model, basic overview (Borrowed from Rashcka et al)

    @@ -637,14 +696,14 @@

    The derivation from last week

    $$ \begin{align*} -\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dz && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ - & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dz && \text{(Bring evidence into integral)}\\ +\log p(\boldsymbol{x}) & = \log p(\boldsymbol{x}) \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})dh && \text{(Multiply by $1 = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})d\boldsymbol{h}$)}\\ + & = \int q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})(\log p(\boldsymbol{x}))dh && \text{(Bring evidence into integral)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p(\boldsymbol{x})\right] && \text{(Definition of Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{p(\boldsymbol{h}|\boldsymbol{x})}\right]&& \\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]&& \text{(Multiply by $1 = \frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}$)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}{p(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(Split the Expectation)}\\ & = \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] + - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ + D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h}|\boldsymbol{x})) && \text{(Definition of KL Divergence)}\\ & \geq \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right] && \text{(KL Divergence always $\geq 0$)} \end{align*} $$ @@ -685,7 +744,7 @@

    Dissecting the equations

    {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{x}, \boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Chain Rule of Probability)}}\\ &= {\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] + \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log\frac{p(\boldsymbol{h})}{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\right]} && {\text{(Split the Expectation)}}\\ -&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} +&= \underbrace{{\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right]}}_\text{reconstruction term} - \underbrace{{D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\vert\vert{p(\boldsymbol{h}))}}_\text{prior matching term} && {\text{(Definition of KL Divergence)}} \end{align*} $$ @@ -734,7 +793,7 @@

    Analytical evaluation

    Then, the KL divergence term of the ELBO can be computed analytically, and the reconstruction term can be approximated using a Monte Carlo estimate. Our objective can then be rewritten as:

    $$ \begin{align*} - \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - KL(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) + \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h})\right] - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \approx \mathrm{argmax}_{\boldsymbol{\phi}, \boldsymbol{\theta}} \sum_{l=1}^{L}\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{h}^{(l)}) - D_{KL}(q_{\boldsymbol{\phi}}(\boldsymbol{h}|\boldsymbol{x})\vert\vert p(\boldsymbol{h})) \end{align*} $$ @@ -992,6 +1051,140 @@

    Steps in building a



    +









    +

    Generative Adversarial Networks

    +

    Generative adversarial networks (GANs) have shown great results in +many generative tasks to replicate the real-world rich content such as +images, human language, and music. It is inspired by game theory: two +models, a generator and a discriminator, are competing with each other while +making each other stronger at the same time. However, it is rather +challenging to train a GANs model, +training instability or failure to converge. +

    + +

    Generative adversarial networks consist of two models (in their simplest form as two opposing feed forward neural networks)

    +
      +
    1. A discriminator \( D \) estimates the probability of a given sample coming from the real dataset. It works as a critic and is optimized to tell the fake samples from the realo ones
    2. +
    3. A generator \( G \) outputs synthetic samples given a noise variable input \( z \) (\( z \) brings in potential output diversity). It is trained to capture the real data distribution in order to generate samples that can be as real as possible, or in other words, can trick the discriminator to offer a high probability.
    4. +
    +

    At the end of the training, the generator can be used to generate for +example new images. In this sense we have trained a model which can +produce new samples. We say that we have implicitely defined a +probability. +

    + +

    These two models compete against each other during the training +process: the generator \( G \) is trying hard to trick the discriminator, +while the critic model \( D \) is trying hard not to be cheated. This +interesting zero-sum game between two models motivates both to improve +their functionalities. +

    + + + + + + + +

    On one hand, we want to make sure the discriminator \( D \)'s decisions +over real data are accurate by maximizing \( \mathbb{E}_{x \sim +p_{r}(x)} [\log D(x)] \). Meanwhile, given a fake sample \( G(z), z \sim +p_z(z) \), the discriminator is expected to output a probability, +\( D(G(z)) \), close to zero by maximizing \( \mathbb{E}_{z \sim p_{z}(z)} +[\log (1 - D(G(z)))] \). +

    + +

    On the other hand, the generator is trained to increase the chances of +\( D \) producing a high probability for a fake example, thus to minimize +\( \mathbb{E}_{z \sim p_{z}(z)} [\log (1 - D(G(z)))] \). +

    + +

    When combining both aspects together, \( D \) and \( G \) are playing a \textit{minimax game} in which we should optimize the following loss function:

    + +$$ +\begin{aligned} +\min_G \max_D L(D, G) +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{z \sim p_z(z)} [\log(1 - D(G(z)))] \\ +& = \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] + \mathbb{E}_{x \sim p_g(x)} [\log(1 - D(x)] +\end{aligned} +$$ + +

    where \( \mathbb{E}_{x \sim p_{r}(x)} [\log D(x)] \) has no impact on \( G \) during gradient descent updates.

    + +









    +

    Optimal value for \( D \)

    + +

    Now we have a well-defined loss function. Let's first examine what is the best value for \( D \).

    + +$$ +L(G, D) = \int_x \bigg( p_{r}(x) \log(D(x)) + p_g (x) \log(1 - D(x)) \bigg) dx +$$ + +

    Since we are interested in what is the best value of \( D(x) \) to maximize \( L(G, D) \), let us label

    + +$$ +\tilde{x} = D(x), +A=p_{r}(x), +B=p_g(x) +$$ + +

    And then what is inside the integral (we can safely ignore the integral because \( x \) is sampled over all the possible values) is:

    + +$$ +\begin{align*} +f(\tilde{x}) +& = A log\tilde{x} + B log(1-\tilde{x}) \\ +\frac{d f(\tilde{x})}{d \tilde{x}} +& = A \frac{1}{ln10} \frac{1}{\tilde{x}} - B \frac{1}{ln10} \frac{1}{1 - \tilde{x}} \\ +& = \frac{1}{ln10} (\frac{A}{\tilde{x}} - \frac{B}{1-\tilde{x}}) \\ +& = \frac{1}{ln10} \frac{A - (A + B)\tilde{x}}{\tilde{x} (1 - \tilde{x})} \\ +\end{align*} +$$ + +

    Thus, set \( \frac{d f(\tilde{x})}{d \tilde{x}} = 0 \), we get the best value of the discriminator: \( D^*(x) = \tilde{x}^* = \frac{A}{A + B} = \frac{p_{r}(x)}{p_{r}(x) + p_g(x)} \in [0, 1] \). +Once the generator is trained to its optimal, \( p_g \) gets very close to \( p_{r} \). When \( p_g = p_{r} \), \( D^*(x) \) becomes \( 1/2 \). +

    + +

    When both \( G \) and \( D \) are at their optimal values, we have \( p_g = p_{r} \) and \( D^*(x) = 1/2 \) and the loss function becomes:

    + +$$ +\begin{align*} +L(G, D^*) +&= \int_x \bigg( p_{r}(x) \log(D^*(x)) + p_g (x) \log(1 - D^*(x)) \bigg) dx \\ +&= \log \frac{1}{2} \int_x p_{r}(x) dx + \log \frac{1}{2} \int_x p_g(x) dx \\ +&= -2\log2 +\end{align*} +$$ + + +









    +

    What does the Loss Function Represent?

    + +

    The JS divergence between \( p_{r} \) and \( p_g \) can be computed as:

    + +$$ +\begin{align*} +D_{JS}(p_{r} \| p_g) +=& \frac{1}{2} D_{KL}(p_{r} || \frac{p_{r} + p_g}{2}) + \frac{1}{2} D_{KL}(p_{g} || \frac{p_{r} + p_g}{2}) \\ +=& \frac{1}{2} \bigg( \log2 + \int_x p_{r}(x) \log \frac{p_{r}(x)}{p_{r} + p_g(x)} dx \bigg) + \\& \frac{1}{2} \bigg( \log2 + \int_x p_g(x) \log \frac{p_g(x)}{p_{r} + p_g(x)} dx \bigg) \\ +=& \frac{1}{2} \bigg( \log4 + L(G, D^*) \bigg) +\end{align*} +$$ + +

    Thus,

    + +$$ +L(G, D^*) = 2D_{JS}(p_{r} \| p_g) - 2\log2 +$$ + +

    Essentially the loss function of GAN quantifies the similarity between +the generative data distribution \( p_g \) and the real sample +distribution \( p_{r} \) by JS divergence when the discriminator is +optimal. The best \( G^* \) that replicates the real data distribution +leads to the minimum \( L(G^*, D^*) = -2\log2 \) which is aligned with +equations above. +

    +









    More references

    @@ -1707,6 +1900,7 @@

    Diffusion learning

    smooth target distribution, this method can capture data distributions of arbitrary form.

    +
    © 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license diff --git a/doc/pub/week15/ipynb/ipynb-week15-src.tar.gz b/doc/pub/week15/ipynb/ipynb-week15-src.tar.gz index 831ba04f66c975a0871cad853a484246e98f7d7c..77b6090aaecb816883e3580c0587585fcc1d163d 100644 GIT binary patch delta 215 zcmWN_OF}^b06@`teeRP`Ns+(ui=u~$A}ykgv;%`XvW7O$+(InJ%p07^+5H>rVpP}R z!S*j&A%_ykksQm3oJyRbB;-tzaxN)JOGYl_Qm!N`*OHSPxs|*W^4UxPisL>L&Is)(H}2s4}j diff --git a/doc/pub/week15/ipynb/week15.ipynb b/doc/pub/week15/ipynb/week15.ipynb index 46204ccc..b91d3d41 100644 --- a/doc/pub/week15/ipynb/week15.ipynb +++ b/doc/pub/week15/ipynb/week15.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "bbc251d3", + "id": "c7cf0fce", "metadata": { "editable": true }, @@ -14,7 +14,7 @@ }, { "cell_type": "markdown", - "id": "8154bff2", + "id": "e66f7980", "metadata": { "editable": true }, @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "30bdfd80", + "id": "b25a54f4", "metadata": { "editable": true }, @@ -40,7 +40,7 @@ "\n", "2. Generative Adversarial Networks (GANs), see for nice overview\n", "\n", - "3. Start discussion of diffusion models\n", + "3. Start discussion of diffusion models, motivation\n", "\n", "4. [Video of lecture](https://youtu.be/Cg8n9aWwHuU)\n", "\n", @@ -49,7 +49,7 @@ }, { "cell_type": "markdown", - "id": "b0ea3794", + "id": "7304c3a4", "metadata": { "editable": true }, @@ -65,7 +65,7 @@ }, { "cell_type": "markdown", - "id": "32939787", + "id": "1f29a278", "metadata": { "editable": true }, @@ -81,7 +81,7 @@ }, { "cell_type": "markdown", - "id": "89bf1911", + "id": "ad62142e", "metadata": { "editable": true }, @@ -91,7 +91,7 @@ }, { "cell_type": "markdown", - "id": "f04c1132", + "id": "3c906e0c", "metadata": { "editable": true }, @@ -103,7 +103,7 @@ }, { "cell_type": "markdown", - "id": "306c3a9e", + "id": "9e92737f", "metadata": { "editable": true }, @@ -115,7 +115,7 @@ }, { "cell_type": "markdown", - "id": "38d85424", + "id": "ea1bf8fd", "metadata": { "editable": true }, @@ -125,7 +125,7 @@ }, { "cell_type": "markdown", - "id": "72d0e5a4", + "id": "1d00646e", "metadata": { "editable": true }, @@ -137,7 +137,7 @@ }, { "cell_type": "markdown", - "id": "edc35f6e", + "id": "a3f6475d", "metadata": { "editable": true }, @@ -149,7 +149,7 @@ }, { "cell_type": "markdown", - "id": "eab97d57", + "id": "8f95be62", "metadata": { "editable": true }, @@ -163,7 +163,7 @@ }, { "cell_type": "markdown", - "id": "e36868b7", + "id": "184db513", "metadata": { "editable": true }, @@ -175,7 +175,7 @@ }, { "cell_type": "markdown", - "id": "05ccd2ab", + "id": "a9270d8e", "metadata": { "editable": true }, @@ -187,7 +187,7 @@ }, { "cell_type": "markdown", - "id": "e5f7b578", + "id": "e58357fd", "metadata": { "editable": true }, @@ -199,7 +199,7 @@ }, { "cell_type": "markdown", - "id": "fdc48043", + "id": "6b570b28", "metadata": { "editable": true }, @@ -209,7 +209,7 @@ }, { "cell_type": "markdown", - "id": "32dd3ff0", + "id": "c938f39d", "metadata": { "editable": true }, @@ -221,7 +221,7 @@ }, { "cell_type": "markdown", - "id": "5e333dc2", + "id": "13461367", "metadata": { "editable": true }, @@ -236,7 +236,7 @@ }, { "cell_type": "markdown", - "id": "9d4996e0", + "id": "1050da2f", "metadata": { "editable": true }, @@ -248,7 +248,7 @@ }, { "cell_type": "markdown", - "id": "bfbcdfd5", + "id": "094c2485", "metadata": { "editable": true }, @@ -258,7 +258,7 @@ }, { "cell_type": "markdown", - "id": "2bac65fd", + "id": "7a888b05", "metadata": { "editable": true }, @@ -270,7 +270,7 @@ }, { "cell_type": "markdown", - "id": "f513d787", + "id": "27b7e939", "metadata": { "editable": true }, @@ -283,7 +283,7 @@ }, { "cell_type": "markdown", - "id": "7344a35e", + "id": "0a367b8d", "metadata": { "editable": true }, @@ -295,7 +295,7 @@ }, { "cell_type": "markdown", - "id": "135b8bb8", + "id": "67e2aac1", "metadata": { "editable": true }, @@ -307,7 +307,7 @@ }, { "cell_type": "markdown", - "id": "aea87bfd", + "id": "552dd312", "metadata": { "editable": true }, @@ -317,7 +317,7 @@ }, { "cell_type": "markdown", - "id": "cce8712d", + "id": "3bc3b94c", "metadata": { "editable": true }, @@ -329,7 +329,7 @@ }, { "cell_type": "markdown", - "id": "5bcfef5b", + "id": "008ec2d0", "metadata": { "editable": true }, @@ -341,7 +341,7 @@ }, { "cell_type": "markdown", - "id": "665445d0", + "id": "90a0b8a3", "metadata": { "editable": true }, @@ -353,7 +353,7 @@ }, { "cell_type": "markdown", - "id": "bdc994e9", + "id": "fce8a947", "metadata": { "editable": true }, @@ -364,7 +364,7 @@ }, { "cell_type": "markdown", - "id": "97db2763", + "id": "aed7c7b0", "metadata": { "editable": true }, @@ -376,7 +376,7 @@ }, { "cell_type": "markdown", - "id": "6274f6f9", + "id": "f59709c5", "metadata": { "editable": true }, @@ -390,7 +390,7 @@ }, { "cell_type": "markdown", - "id": "a8c268f3", + "id": "b6a46f04", "metadata": { "editable": true }, @@ -402,7 +402,7 @@ }, { "cell_type": "markdown", - "id": "5fb324c3", + "id": "d309349e", "metadata": { "editable": true }, @@ -412,7 +412,7 @@ }, { "cell_type": "markdown", - "id": "3ab2b400", + "id": "a29d8581", "metadata": { "editable": true }, @@ -424,7 +424,7 @@ }, { "cell_type": "markdown", - "id": "ad53bab5", + "id": "d844c4dd", "metadata": { "editable": true }, @@ -436,7 +436,7 @@ }, { "cell_type": "markdown", - "id": "80022c49", + "id": "684424fc", "metadata": { "editable": true }, @@ -448,7 +448,7 @@ }, { "cell_type": "markdown", - "id": "ab06bb70", + "id": "540c038b", "metadata": { "editable": true }, @@ -459,7 +459,7 @@ }, { "cell_type": "markdown", - "id": "7f086749", + "id": "1dd6f171", "metadata": { "editable": true }, @@ -474,7 +474,7 @@ }, { "cell_type": "markdown", - "id": "65f4974d", + "id": "99fdc241", "metadata": { "editable": true }, @@ -486,7 +486,7 @@ }, { "cell_type": "markdown", - "id": "01b6074d", + "id": "0366d1a3", "metadata": { "editable": true }, @@ -498,7 +498,7 @@ }, { "cell_type": "markdown", - "id": "abc68191", + "id": "0ad245f3", "metadata": { "editable": true }, @@ -508,7 +508,7 @@ }, { "cell_type": "markdown", - "id": "42d55ede", + "id": "62a879d0", "metadata": { "editable": true }, @@ -519,7 +519,7 @@ }, { "cell_type": "markdown", - "id": "2713bc10", + "id": "2dd7dc01", "metadata": { "editable": true }, @@ -531,7 +531,7 @@ }, { "cell_type": "markdown", - "id": "bcbc944d", + "id": "afd4999e", "metadata": { "editable": true }, @@ -541,7 +541,7 @@ }, { "cell_type": "markdown", - "id": "f470f0b7", + "id": "610cb88e", "metadata": { "editable": true }, @@ -553,7 +553,7 @@ }, { "cell_type": "markdown", - "id": "6cc4dc33", + "id": "3093f6b2", "metadata": { "editable": true }, @@ -565,7 +565,7 @@ }, { "cell_type": "markdown", - "id": "b8d79f98", + "id": "ffac2f38", "metadata": { "editable": true }, @@ -577,7 +577,7 @@ }, { "cell_type": "markdown", - "id": "133d8b3f", + "id": "c3d13ab4", "metadata": { "editable": true }, @@ -589,7 +589,7 @@ }, { "cell_type": "markdown", - "id": "9fc2ebb7", + "id": "28f81e5e", "metadata": { "editable": true }, @@ -601,7 +601,7 @@ }, { "cell_type": "markdown", - "id": "431a67c4", + "id": "62fc9e76", "metadata": { "editable": true }, @@ -611,7 +611,7 @@ }, { "cell_type": "markdown", - "id": "3df67560", + "id": "f4c94f15", "metadata": { "editable": true }, @@ -623,7 +623,7 @@ }, { "cell_type": "markdown", - "id": "0838e65c", + "id": "8d9acf3f", "metadata": { "editable": true }, @@ -633,7 +633,7 @@ }, { "cell_type": "markdown", - "id": "822bf5ac", + "id": "b15612ff", "metadata": { "editable": true }, @@ -645,7 +645,7 @@ }, { "cell_type": "markdown", - "id": "a93722a2", + "id": "e1390374", "metadata": { "editable": true }, @@ -656,7 +656,92 @@ }, { "cell_type": "markdown", - "id": "d6d8c42e", + "id": "f391425b", + "metadata": { + "editable": true + }, + "source": [ + "## Kullback-Leibler divergence\n", + "\n", + "Before we continue, we need to remind ourselves about the\n", + "Kullback-Leibler divergence introduced earlier. This will also allow\n", + "us to introduce another measure used in connection with the training\n", + "of Generative Adversarial Networks, the so-called Jensen-Shannon divergence..\n", + "These metrics are useful for quantifying the similarity between two probability distributions.\n", + "\n", + "The Kullback–Leibler (KL) divergence, labeled $D_{KL}$, measures how one probability distribution $p$ diverges from a second expected probability distribution $q$,\n", + "that is" + ] + }, + { + "cell_type": "markdown", + "id": "71586dc3", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "D_{KL}(p \\| q) = \\int_x p(x) \\log \\frac{p(x)}{q(x)} dx.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "6042b046", + "metadata": { + "editable": true + }, + "source": [ + "The KL-divegrnece $D_{KL}$ achieves the minimum zero when $p(x) == q(x)$ everywhere.\n", + "\n", + "Note that the KL divergence is asymmetric. In cases where $p(x)$ is\n", + "close to zero, but $q(x)$ is significantly non-zero, the $q$'s effect\n", + "is disregarded. It could cause buggy results when we just want to\n", + "measure the similarity between two equally important distributions." + ] + }, + { + "cell_type": "markdown", + "id": "d20cf644", + "metadata": { + "editable": true + }, + "source": [ + "## Jensen-Shannon divergence\n", + "\n", + "The Jensen–Shannon (JS) divergence is another measure of similarity between\n", + "two probability distributions, bounded by $[0, 1]$. The JS-divergence is\n", + "symmetric and more smooth than the KL-divergence.\n", + "It is defined as" + ] + }, + { + "cell_type": "markdown", + "id": "1d9ded24", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "D_{JS}(p \\| q) = \\frac{1}{2} D_{KL}(p \\| \\frac{p + q}{2}) + \\frac{1}{2} D_{KL}(q \\| \\frac{p + q}{2})\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "e42178b6", + "metadata": { + "editable": true + }, + "source": [ + "Many practitioners believe that one reason behind GANs' big success is\n", + "switching the loss function from asymmetric KL-divergence in\n", + "traditional maximum-likelihood approach to symmetric JS-divergence." + ] + }, + { + "cell_type": "markdown", + "id": "09f95d9a", "metadata": { "editable": true }, @@ -672,7 +757,7 @@ }, { "cell_type": "markdown", - "id": "f17356a3", + "id": "18a2b94d", "metadata": { "editable": true }, @@ -691,7 +776,7 @@ }, { "cell_type": "markdown", - "id": "27fb099f", + "id": "19583482", "metadata": { "editable": true }, @@ -703,7 +788,7 @@ }, { "cell_type": "markdown", - "id": "17548236", + "id": "0836982d", "metadata": { "editable": true }, @@ -713,7 +798,7 @@ }, { "cell_type": "markdown", - "id": "3f05b416", + "id": "ae4be538", "metadata": { "editable": true }, @@ -725,7 +810,7 @@ }, { "cell_type": "markdown", - "id": "2cf43c02", + "id": "7ffb8c95", "metadata": { "editable": true }, @@ -735,7 +820,7 @@ }, { "cell_type": "markdown", - "id": "4c9b8c03", + "id": "62aa7b51", "metadata": { "editable": true }, @@ -757,7 +842,7 @@ }, { "cell_type": "markdown", - "id": "587e829b", + "id": "f8b3736f", "metadata": { "editable": true }, @@ -768,7 +853,7 @@ }, { "cell_type": "markdown", - "id": "6cec0936", + "id": "780e9d0f", "metadata": { "editable": true }, @@ -780,7 +865,7 @@ }, { "cell_type": "markdown", - "id": "008b0d93", + "id": "216c8f3a", "metadata": { "editable": true }, @@ -790,7 +875,7 @@ }, { "cell_type": "markdown", - "id": "03ec09b6", + "id": "05117498", "metadata": { "editable": true }, @@ -802,7 +887,7 @@ }, { "cell_type": "markdown", - "id": "ee878746", + "id": "e095ece6", "metadata": { "editable": true }, @@ -823,7 +908,7 @@ }, { "cell_type": "markdown", - "id": "be988b7e", + "id": "447b2be9", "metadata": { "editable": true }, @@ -835,21 +920,21 @@ }, { "cell_type": "markdown", - "id": "d06829bb", + "id": "709128f2", "metadata": { "editable": true }, "source": [ "$$\n", "\\begin{align*}\n", - "\\log p(\\boldsymbol{x}) & = \\log p(\\boldsymbol{x}) \\int q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})dz && \\text{(Multiply by $1 = \\int q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})d\\boldsymbol{h}$)}\\\\\n", - " & = \\int q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})(\\log p(\\boldsymbol{x}))dz && \\text{(Bring evidence into integral)}\\\\\n", + "\\log p(\\boldsymbol{x}) & = \\log p(\\boldsymbol{x}) \\int q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})dh && \\text{(Multiply by $1 = \\int q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})d\\boldsymbol{h}$)}\\\\\n", + " & = \\int q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})(\\log p(\\boldsymbol{x}))dh && \\text{(Bring evidence into integral)}\\\\\n", " & = \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log p(\\boldsymbol{x})\\right] && \\text{(Definition of Expectation)}\\\\\n", " & = \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p(\\boldsymbol{x}, \\boldsymbol{h})}{p(\\boldsymbol{h}|\\boldsymbol{x})}\\right]&& \\\\\n", " & = \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p(\\boldsymbol{x}, \\boldsymbol{h})q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}{p(\\boldsymbol{h}|\\boldsymbol{x})q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\right]&& \\text{(Multiply by $1 = \\frac{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}$)}\\\\\n", " & = \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p(\\boldsymbol{x}, \\boldsymbol{h})}{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\right] + \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}{p(\\boldsymbol{h}|\\boldsymbol{x})}\\right] && \\text{(Split the Expectation)}\\\\\n", " & = \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p(\\boldsymbol{x}, \\boldsymbol{h})}{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\right] +\n", - "\t KL(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})\\vert\\vert p(\\boldsymbol{h}|\\boldsymbol{x})) && \\text{(Definition of KL Divergence)}\\\\\n", + "\t D_{KL}(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})\\vert\\vert p(\\boldsymbol{h}|\\boldsymbol{x})) && \\text{(Definition of KL Divergence)}\\\\\n", " & \\geq \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p(\\boldsymbol{x}, \\boldsymbol{h})}{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\right] && \\text{(KL Divergence always $\\geq 0$)}\n", "\\end{align*}\n", "$$" @@ -857,7 +942,7 @@ }, { "cell_type": "markdown", - "id": "f165c01c", + "id": "2840182f", "metadata": { "editable": true }, @@ -875,7 +960,7 @@ }, { "cell_type": "markdown", - "id": "a5a5ba44", + "id": "a19f85d0", "metadata": { "editable": true }, @@ -893,7 +978,7 @@ }, { "cell_type": "markdown", - "id": "5a0edb20", + "id": "8dd0ce7b", "metadata": { "editable": true }, @@ -905,7 +990,7 @@ }, { "cell_type": "markdown", - "id": "066fb151", + "id": "0e1892c3", "metadata": { "editable": true }, @@ -915,14 +1000,14 @@ "{\\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p(\\boldsymbol{x}, \\boldsymbol{h})}{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\right]}\n", "&= {\\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h})p(\\boldsymbol{h})}{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\right]} && {\\text{(Chain Rule of Probability)}}\\\\\n", "&= {\\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h})\\right] + \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log\\frac{p(\\boldsymbol{h})}{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\right]} && {\\text{(Split the Expectation)}}\\\\\n", - "&= \\underbrace{{\\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h})\\right]}}_\\text{reconstruction term} - \\underbrace{{KL(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\vert\\vert{p(\\boldsymbol{h}))}}_\\text{prior matching term} && {\\text{(Definition of KL Divergence)}}\n", + "&= \\underbrace{{\\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h})\\right]}}_\\text{reconstruction term} - \\underbrace{{D_{KL}(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\vert\\vert{p(\\boldsymbol{h}))}}_\\text{prior matching term} && {\\text{(Definition of KL Divergence)}}\n", "\\end{align*}\n", "$$" ] }, { "cell_type": "markdown", - "id": "b1c188ac", + "id": "c87201d3", "metadata": { "editable": true }, @@ -940,7 +1025,7 @@ }, { "cell_type": "markdown", - "id": "61b1725e", + "id": "bfab7537", "metadata": { "editable": true }, @@ -960,7 +1045,7 @@ }, { "cell_type": "markdown", - "id": "d134dd70", + "id": "a3919404", "metadata": { "editable": true }, @@ -972,7 +1057,7 @@ }, { "cell_type": "markdown", - "id": "c914ac07", + "id": "4c967472", "metadata": { "editable": true }, @@ -987,7 +1072,7 @@ }, { "cell_type": "markdown", - "id": "182be149", + "id": "52a6f5da", "metadata": { "editable": true }, @@ -999,21 +1084,21 @@ }, { "cell_type": "markdown", - "id": "d26c7329", + "id": "d57e59e7", "metadata": { "editable": true }, "source": [ "$$\n", "\\begin{align*}\n", - " \\mathrm{argmax}_{\\boldsymbol{\\phi}, \\boldsymbol{\\theta}} \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h})\\right] - KL(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})\\vert\\vert p(\\boldsymbol{h})) \\approx \\mathrm{argmax}_{\\boldsymbol{\\phi}, \\boldsymbol{\\theta}} \\sum_{l=1}^{L}\\log p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h}^{(l)}) - KL(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})\\vert\\vert p(\\boldsymbol{h}))\n", + " \\mathrm{argmax}_{\\boldsymbol{\\phi}, \\boldsymbol{\\theta}} \\mathbb{E}_{q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})}\\left[\\log p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h})\\right] - D_{KL}(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})\\vert\\vert p(\\boldsymbol{h})) \\approx \\mathrm{argmax}_{\\boldsymbol{\\phi}, \\boldsymbol{\\theta}} \\sum_{l=1}^{L}\\log p_{\\boldsymbol{\\theta}}(\\boldsymbol{x}|\\boldsymbol{h}^{(l)}) - D_{KL}(q_{\\boldsymbol{\\phi}}(\\boldsymbol{h}|\\boldsymbol{x})\\vert\\vert p(\\boldsymbol{h}))\n", "\\end{align*}\n", "$$" ] }, { "cell_type": "markdown", - "id": "2a89d0f3", + "id": "921da238", "metadata": { "editable": true }, @@ -1023,7 +1108,7 @@ }, { "cell_type": "markdown", - "id": "7666826e", + "id": "00966db8", "metadata": { "editable": true }, @@ -1040,7 +1125,7 @@ }, { "cell_type": "markdown", - "id": "a6ff50b2", + "id": "3b9fb44a", "metadata": { "editable": true }, @@ -1057,7 +1142,7 @@ }, { "cell_type": "markdown", - "id": "1300c538", + "id": "93627bb2", "metadata": { "editable": true }, @@ -1071,7 +1156,7 @@ }, { "cell_type": "markdown", - "id": "ebd27757", + "id": "82348034", "metadata": { "editable": true }, @@ -1089,7 +1174,7 @@ }, { "cell_type": "markdown", - "id": "624b1963", + "id": "29eb0946", "metadata": { "editable": true }, @@ -1101,7 +1186,7 @@ }, { "cell_type": "markdown", - "id": "eaf66572", + "id": "c96afc97", "metadata": { "editable": true }, @@ -1115,7 +1200,7 @@ }, { "cell_type": "markdown", - "id": "f4d09b90", + "id": "9a77743c", "metadata": { "editable": true }, @@ -1131,7 +1216,7 @@ }, { "cell_type": "markdown", - "id": "df030b4e", + "id": "8059d00f", "metadata": { "editable": true }, @@ -1150,7 +1235,7 @@ }, { "cell_type": "markdown", - "id": "179d5913", + "id": "68e50592", "metadata": { "editable": true }, @@ -1168,7 +1253,7 @@ }, { "cell_type": "markdown", - "id": "e954e4d0", + "id": "9fe155ca", "metadata": { "editable": true }, @@ -1189,7 +1274,7 @@ }, { "cell_type": "markdown", - "id": "9912338d", + "id": "834bb255", "metadata": { "editable": true }, @@ -1201,7 +1286,7 @@ }, { "cell_type": "markdown", - "id": "9fadae1d", + "id": "4f134c60", "metadata": { "editable": true }, @@ -1226,7 +1311,7 @@ }, { "cell_type": "markdown", - "id": "d205f4c0", + "id": "db32ac68", "metadata": { "editable": true }, @@ -1242,7 +1327,7 @@ }, { "cell_type": "markdown", - "id": "8afeef95", + "id": "ba47c9c1", "metadata": { "editable": true }, @@ -1260,7 +1345,7 @@ }, { "cell_type": "markdown", - "id": "6e728830", + "id": "fb895c87", "metadata": { "editable": true }, @@ -1272,7 +1357,7 @@ }, { "cell_type": "markdown", - "id": "5318fb35", + "id": "444ccf63", "metadata": { "editable": true }, @@ -1288,7 +1373,7 @@ }, { "cell_type": "markdown", - "id": "70ed2bca", + "id": "1a3f4662", "metadata": { "editable": true }, @@ -1300,7 +1385,7 @@ }, { "cell_type": "markdown", - "id": "b2f662ca", + "id": "7ddadfca", "metadata": { "editable": true }, @@ -1311,7 +1396,7 @@ }, { "cell_type": "markdown", - "id": "ca69c67d", + "id": "a244b68b", "metadata": { "editable": true }, @@ -1325,7 +1410,7 @@ }, { "cell_type": "markdown", - "id": "4d8a5c1f", + "id": "0dcc133a", "metadata": { "editable": true }, @@ -1337,7 +1422,7 @@ }, { "cell_type": "markdown", - "id": "eaeafa28", + "id": "1fb4338d", "metadata": { "editable": true }, @@ -1348,7 +1433,7 @@ }, { "cell_type": "markdown", - "id": "f35d0439", + "id": "c41ac754", "metadata": { "editable": true }, @@ -1360,7 +1445,7 @@ }, { "cell_type": "markdown", - "id": "e9df164f", + "id": "8f6aa934", "metadata": { "editable": true }, @@ -1383,7 +1468,7 @@ }, { "cell_type": "markdown", - "id": "ac025bad", + "id": "ab5ce09f", "metadata": { "editable": true }, @@ -1400,7 +1485,7 @@ }, { "cell_type": "markdown", - "id": "1548d332", + "id": "30d20331", "metadata": { "editable": true }, @@ -1413,7 +1498,7 @@ }, { "cell_type": "markdown", - "id": "415e7020", + "id": "a4aed469", "metadata": { "editable": true }, @@ -1424,7 +1509,7 @@ }, { "cell_type": "markdown", - "id": "afa15d31", + "id": "7dc442ca", "metadata": { "editable": true }, @@ -1438,7 +1523,7 @@ }, { "cell_type": "markdown", - "id": "db584443", + "id": "00bbdf9f", "metadata": { "editable": true }, @@ -1451,7 +1536,7 @@ }, { "cell_type": "markdown", - "id": "65ecceb4", + "id": "f328f999", "metadata": { "editable": true }, @@ -1463,7 +1548,7 @@ }, { "cell_type": "markdown", - "id": "93110eb4", + "id": "6a2e4da3", "metadata": { "editable": true }, @@ -1478,7 +1563,7 @@ }, { "cell_type": "markdown", - "id": "f5789340", + "id": "bcca6687", "metadata": { "editable": true }, @@ -1494,7 +1579,258 @@ }, { "cell_type": "markdown", - "id": "4bbe2c2b", + "id": "98cb8499", + "metadata": { + "editable": true + }, + "source": [ + "## Generative Adversarial Networks\n", + "Generative adversarial networks (GANs) have shown great results in\n", + "many generative tasks to replicate the real-world rich content such as\n", + "images, human language, and music. It is inspired by game theory: two\n", + "models, a generator and a discriminator, are competing with each other while\n", + "making each other stronger at the same time. However, it is rather\n", + "challenging to train a GANs model, \n", + "training instability or failure to converge.\n", + "\n", + "Generative adversarial networks consist of two models (in their simplest form as two opposing feed forward neural networks)\n", + "1. A discriminator $D$ estimates the probability of a given sample coming from the real dataset. It works as a critic and is optimized to tell the fake samples from the realo ones\n", + "\n", + "2. A generator $G$ outputs synthetic samples given a noise variable input $z$ ($z$ brings in potential output diversity). It is trained to capture the real data distribution in order to generate samples that can be as real as possible, or in other words, can trick the discriminator to offer a high probability.\n", + "\n", + "At the end of the training, the generator can be used to generate for\n", + "example new images. In this sense we have trained a model which can\n", + "produce new samples. We say that we have implicitely defined a\n", + "probability.\n", + "\n", + "These two models compete against each other during the training\n", + "process: the generator $G$ is trying hard to trick the discriminator,\n", + "while the critic model $D$ is trying hard not to be cheated. This\n", + "interesting zero-sum game between two models motivates both to improve\n", + "their functionalities.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "On one hand, we want to make sure the discriminator $D$'s decisions\n", + "over real data are accurate by maximizing $\\mathbb{E}_{x \\sim\n", + "p_{r}(x)} [\\log D(x)]$. Meanwhile, given a fake sample $G(z), z \\sim\n", + "p_z(z)$, the discriminator is expected to output a probability,\n", + "$D(G(z))$, close to zero by maximizing $\\mathbb{E}_{z \\sim p_{z}(z)}\n", + "[\\log (1 - D(G(z)))]$.\n", + "\n", + "On the other hand, the generator is trained to increase the chances of\n", + "$D$ producing a high probability for a fake example, thus to minimize\n", + "$\\mathbb{E}_{z \\sim p_{z}(z)} [\\log (1 - D(G(z)))]$.\n", + "\n", + "When combining both aspects together, $D$ and $G$ are playing a \\textit{minimax game} in which we should optimize the following loss function:" + ] + }, + { + "cell_type": "markdown", + "id": "e6af787f", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "\\min_G \\max_D L(D, G) \n", + "& = \\mathbb{E}_{x \\sim p_{r}(x)} [\\log D(x)] + \\mathbb{E}_{z \\sim p_z(z)} [\\log(1 - D(G(z)))] \\\\\n", + "& = \\mathbb{E}_{x \\sim p_{r}(x)} [\\log D(x)] + \\mathbb{E}_{x \\sim p_g(x)} [\\log(1 - D(x)]\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "d9a15e9a", + "metadata": { + "editable": true + }, + "source": [ + "where $\\mathbb{E}_{x \\sim p_{r}(x)} [\\log D(x)]$ has no impact on $G$ during gradient descent updates." + ] + }, + { + "cell_type": "markdown", + "id": "ee24c8ff", + "metadata": { + "editable": true + }, + "source": [ + "## Optimal value for $D$\n", + "\n", + "Now we have a well-defined loss function. Let's first examine what is the best value for $D$." + ] + }, + { + "cell_type": "markdown", + "id": "f811ecdf", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "L(G, D) = \\int_x \\bigg( p_{r}(x) \\log(D(x)) + p_g (x) \\log(1 - D(x)) \\bigg) dx\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "27776912", + "metadata": { + "editable": true + }, + "source": [ + "Since we are interested in what is the best value of $D(x)$ to maximize $L(G, D)$, let us label" + ] + }, + { + "cell_type": "markdown", + "id": "6d3b9d73", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\tilde{x} = D(x), \n", + "A=p_{r}(x), \n", + "B=p_g(x)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "b4911af2", + "metadata": { + "editable": true + }, + "source": [ + "And then what is inside the integral (we can safely ignore the integral because $x$ is sampled over all the possible values) is:" + ] + }, + { + "cell_type": "markdown", + "id": "5162efda", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\begin{align*}\n", + "f(\\tilde{x}) \n", + "& = A log\\tilde{x} + B log(1-\\tilde{x}) \\\\\n", + "\\frac{d f(\\tilde{x})}{d \\tilde{x}}\n", + "& = A \\frac{1}{ln10} \\frac{1}{\\tilde{x}} - B \\frac{1}{ln10} \\frac{1}{1 - \\tilde{x}} \\\\\n", + "& = \\frac{1}{ln10} (\\frac{A}{\\tilde{x}} - \\frac{B}{1-\\tilde{x}}) \\\\\n", + "& = \\frac{1}{ln10} \\frac{A - (A + B)\\tilde{x}}{\\tilde{x} (1 - \\tilde{x})} \\\\\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "bee57995", + "metadata": { + "editable": true + }, + "source": [ + "Thus, set $\\frac{d f(\\tilde{x})}{d \\tilde{x}} = 0$, we get the best value of the discriminator: $D^*(x) = \\tilde{x}^* = \\frac{A}{A + B} = \\frac{p_{r}(x)}{p_{r}(x) + p_g(x)} \\in [0, 1]$.\n", + "Once the generator is trained to its optimal, $p_g$ gets very close to $p_{r}$. When $p_g = p_{r}$, $D^*(x)$ becomes $1/2$.\n", + "\n", + "When both $G$ and $D$ are at their optimal values, we have $p_g = p_{r}$ and $D^*(x) = 1/2$ and the loss function becomes:" + ] + }, + { + "cell_type": "markdown", + "id": "27ffb307", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\begin{align*}\n", + "L(G, D^*) \n", + "&= \\int_x \\bigg( p_{r}(x) \\log(D^*(x)) + p_g (x) \\log(1 - D^*(x)) \\bigg) dx \\\\\n", + "&= \\log \\frac{1}{2} \\int_x p_{r}(x) dx + \\log \\frac{1}{2} \\int_x p_g(x) dx \\\\\n", + "&= -2\\log2\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "97400366", + "metadata": { + "editable": true + }, + "source": [ + "## What does the Loss Function Represent?\n", + "\n", + "The JS divergence between $p_{r}$ and $p_g$ can be computed as:" + ] + }, + { + "cell_type": "markdown", + "id": "f12302f0", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\begin{align*}\n", + "D_{JS}(p_{r} \\| p_g) \n", + "=& \\frac{1}{2} D_{KL}(p_{r} || \\frac{p_{r} + p_g}{2}) + \\frac{1}{2} D_{KL}(p_{g} || \\frac{p_{r} + p_g}{2}) \\\\\n", + "=& \\frac{1}{2} \\bigg( \\log2 + \\int_x p_{r}(x) \\log \\frac{p_{r}(x)}{p_{r} + p_g(x)} dx \\bigg) + \\\\& \\frac{1}{2} \\bigg( \\log2 + \\int_x p_g(x) \\log \\frac{p_g(x)}{p_{r} + p_g(x)} dx \\bigg) \\\\\n", + "=& \\frac{1}{2} \\bigg( \\log4 + L(G, D^*) \\bigg)\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "b636eff3", + "metadata": { + "editable": true + }, + "source": [ + "Thus," + ] + }, + { + "cell_type": "markdown", + "id": "c20b731a", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "L(G, D^*) = 2D_{JS}(p_{r} \\| p_g) - 2\\log2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "ba5eb4c6", + "metadata": { + "editable": true + }, + "source": [ + "Essentially the loss function of GAN quantifies the similarity between\n", + "the generative data distribution $p_g$ and the real sample\n", + "distribution $p_{r}$ by JS divergence when the discriminator is\n", + "optimal. The best $G^*$ that replicates the real data distribution\n", + "leads to the minimum $L(G^*, D^*) = -2\\log2$ which is aligned with\n", + "equations above." + ] + }, + { + "cell_type": "markdown", + "id": "6ccd7370", "metadata": { "editable": true }, @@ -1513,7 +1849,7 @@ }, { "cell_type": "markdown", - "id": "c0522fb3", + "id": "7bf93525", "metadata": { "editable": true }, @@ -1527,7 +1863,7 @@ }, { "cell_type": "markdown", - "id": "fc2b9ad9", + "id": "e1d7f1d1", "metadata": { "editable": true }, @@ -1543,7 +1879,7 @@ }, { "cell_type": "markdown", - "id": "45c07637", + "id": "1c26f00a", "metadata": { "editable": true }, @@ -1554,7 +1890,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "b4dc82a1", + "id": "3f9bdab9", "metadata": { "collapsed": false, "editable": true @@ -1579,7 +1915,7 @@ }, { "cell_type": "markdown", - "id": "f87b63c1", + "id": "280dbb97", "metadata": { "editable": true }, @@ -1590,7 +1926,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "139f0467", + "id": "7e0df89a", "metadata": { "collapsed": false, "editable": true @@ -1639,7 +1975,7 @@ }, { "cell_type": "markdown", - "id": "2c1f7b6f", + "id": "3ec46b09", "metadata": { "editable": true }, @@ -1650,7 +1986,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "ad486a71", + "id": "309e2e3a", "metadata": { "collapsed": false, "editable": true @@ -1679,7 +2015,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "632212e4", + "id": "646796ec", "metadata": { "collapsed": false, "editable": true @@ -1696,7 +2032,7 @@ }, { "cell_type": "markdown", - "id": "e204ed36", + "id": "7a0473da", "metadata": { "editable": true }, @@ -1707,7 +2043,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "0ca2ac08", + "id": "b1f5b069", "metadata": { "collapsed": false, "editable": true @@ -1735,7 +2071,7 @@ }, { "cell_type": "markdown", - "id": "1791b464", + "id": "332100d5", "metadata": { "editable": true }, @@ -1746,7 +2082,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "386b381a", + "id": "4d6be600", "metadata": { "collapsed": false, "editable": true @@ -1787,7 +2123,7 @@ }, { "cell_type": "markdown", - "id": "f28eaf09", + "id": "2f8ab669", "metadata": { "editable": true }, @@ -1798,7 +2134,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "352db36d", + "id": "c858d332", "metadata": { "collapsed": false, "editable": true @@ -1823,7 +2159,7 @@ }, { "cell_type": "markdown", - "id": "d02e0c9a", + "id": "6cb82728", "metadata": { "editable": true }, @@ -1834,7 +2170,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "3c157e73", + "id": "ec774a9e", "metadata": { "collapsed": false, "editable": true @@ -1916,7 +2252,7 @@ { "cell_type": "code", "execution_count": 9, - "id": "639686f4", + "id": "67c4d3de", "metadata": { "collapsed": false, "editable": true @@ -1964,7 +2300,7 @@ }, { "cell_type": "markdown", - "id": "4a7df60c", + "id": "9156f147", "metadata": { "editable": true }, @@ -1975,7 +2311,7 @@ { "cell_type": "code", "execution_count": 10, - "id": "c575fd26", + "id": "42fef552", "metadata": { "collapsed": false, "editable": true @@ -2012,7 +2348,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "15299086", + "id": "4514f6ff", "metadata": { "collapsed": false, "editable": true @@ -2043,7 +2379,7 @@ }, { "cell_type": "markdown", - "id": "f4b675b8", + "id": "3f004fd2", "metadata": { "editable": true }, @@ -2054,7 +2390,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "4f8dd76d", + "id": "3dcb337e", "metadata": { "collapsed": false, "editable": true @@ -2109,7 +2445,7 @@ }, { "cell_type": "markdown", - "id": "604b1a6b", + "id": "57bbb2c1", "metadata": { "editable": true }, @@ -2126,7 +2462,7 @@ }, { "cell_type": "markdown", - "id": "69adfd20", + "id": "5dc8db83", "metadata": { "editable": true }, @@ -2151,7 +2487,7 @@ }, { "cell_type": "markdown", - "id": "db15b3f4", + "id": "61f738e9", "metadata": { "editable": true }, @@ -2169,7 +2505,7 @@ }, { "cell_type": "markdown", - "id": "8feb45ca", + "id": "58d4283f", "metadata": { "editable": true }, @@ -2190,7 +2526,7 @@ }, { "cell_type": "markdown", - "id": "72d44bc3", + "id": "b39700a0", "metadata": { "editable": true }, diff --git a/doc/pub/week15/pdf/week15.pdf b/doc/pub/week15/pdf/week15.pdf index 4aa890517520f5de411fec363a7f72346f5baded..15302978e13a47e17a89743a34bfad3b96b330e0 100644 GIT binary patch delta 130214 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
    inhj^}?1GkvuK(ENQgO6diEW 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 delta 110762 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≥j6Nya_Qd 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�Cg(au^|LVvJul2i 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 Pv-zhj(> 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 z $(P_1, Q_1)$ match up. - \item Then move 2 shovelfuls from $P_2$ to $P_3$ => $(P_2, Q_2)$ match up. - \item Finally move 1 shovelfuls from $Q_3$ to $Q_4$ => $(P_3, Q_3)$ and $(P_4, Q_4)$ match up. -\end{itemize} - -\begin{figure}[!htb] - \centering - \includegraphics[width=\linewidth]{EM_distance_discrete.png} - \caption{Step-by-step plan of moving dirt between piles in $P$ and $Q$ to make them match.} - \label{fig:fig7} -\end{figure} - -If we label the cost to pay to make $P_i$ and $Q_i$ match as $\delta_i$, we would have $\delta_{i+1} = \delta_i + P_i - Q_i$ and in the example: - -\begin{align*} -\delta_0 &= 0\\ -\delta_1 &= 0 + 3 - 1 = 2\\ -\delta_2 &= 2 + 2 - 2 = 2\\ -\delta_3 &= 2 + 1 - 4 = -1\\ -\delta_4 &= -1 + 4 - 3 = 0 -\end{align*} - -Finally the Earth Mover's distance is $W = \sum \vert \delta_i \vert = 5$. - - -When dealing with the continuous probability domain, the distance formula becomes: - -\[ -W(p_r, p_g) = \inf_{\gamma \sim \Pi(p_r, p_g)} \mathbb{E}_{(x, y) \sim \gamma}[\| x-y \|] -\] - - -In the formula above, $\Pi(p_r, p_g)$ is the set of all possible joint probability distributions between $p_r$ and $p_g$. One joint distribution $\gamma \in \Pi(p_r, p_g)$ describes one dirt transport plan, same as the discrete example above, but in the continuous probability space. Precisely $\gamma(x, y)$ states the percentage of dirt should be transported from point $x$ to $y$ so as to make $x$ follows the same probability distribution of $y$. That's why the marginal distribution over $x$ adds up to $p_g$, $\sum_{x} \gamma(x, y) = p_g(y)$ (Once we finish moving the planned amount of dirt from every possible $x$ to the target $y$, we end up with exactly what $y$ has according to $p_g$.) and vice versa $\sum_{y} \gamma(x, y) = p_r(x)$. - -When treating $x$ as the starting point and $y$ as the destination, the total amount of dirt moved is $\gamma(x, y)$ and the traveling distance is $\| x-y \|$ and thus the cost is $\gamma(x, y) \cdot \| x-y \|$. The expected cost averaged across all the $(x,y)$ pairs can be easily computed as: - -\[ -\sum_{x, y} \gamma(x, y) \| x-y \| -= \mathbb{E}_{x, y \sim \gamma} \| x-y \| -\] - -Finally, we take the minimum one among the costs of all dirt moving solutions as the EM distance. In the definition of Wasserstein distance, the $\inf$ (infimum, also known as *greatest lower bound*) indicates that we are only interested in the smallest cost. - - -\subsection{Why Wasserstein is better than JS or KL Divergence?} - -Even when two distributions are located in lower dimensional manifolds without overlaps, Wasserstein distance can still provide a meaningful and smooth representation of the distance in-between. - -The WGAN paper exemplified the idea with a simple example. - -Suppose we have two probability distributions, $P$ and $Q$: - -\[ -\forall (x, y) \in P, x = 0 \text{ and } y \sim U(0, 1)\\ -\forall (x, y) \in Q, x = \theta, 0 \leq \theta \leq 1 \text{ and } y \sim U(0, 1)\\ -\] - - -\begin{figure}[!htb] - \centering - \includegraphics[width=0.7\linewidth]{wasserstein_simple_example.png} - \caption{There is no overlap between $P$ and $Q$ when $\theta \neq 0$.} - \label{fig:fig8} -\end{figure} - -When $\theta \neq 0$: - - -\begin{align*} -D_{KL}(P \| Q) &= \sum_{x=0, y \sim U(0, 1)} 1 \cdot \log\frac{1}{0} = +\infty \\ -D_{KL}(Q \| P) &= \sum_{x=\theta, y \sim U(0, 1)} 1 \cdot \log\frac{1}{0} = +\infty \\ -D_{JS}(P, Q) &= \frac{1}{2}(\sum_{x=0, y \sim U(0, 1)} 1 \cdot \log\frac{1}{1/2} + \sum_{x=0, y \sim U(0, 1)} 1 \cdot \log\frac{1}{1/2}) = \log 2\\ -W(P, Q) &= |\theta| -\end{align*} - -But when $\theta = 0$, two distributions are fully overlapped: - -\begin{align*} -D_{KL}(P \| Q) &= D_{KL}(Q \| P) = D_{JS}(P, Q) = 0\\ -W(P, Q) &= 0 = \lvert \theta \rvert -\end{align*} - - -$D_{KL}$ gives us infinity when two distributions are disjoint. The value of $D_{JS}$ has sudden jump, not differentiable at $\theta = 0$. Only Wasserstein metric provides a smooth measure, which is super helpful for a stable learning process using gradient descents. - - -\subsection{Use Wasserstein Distance as GAN Loss Function} - -It is intractable to exhaust all the possible joint distributions in $\Pi(p_r, p_g)$ to compute $\inf_{\gamma \sim \Pi(p_r, p_g)}$. Thus the authors proposed a smart transformation of the formula based on the Kantorovich-Rubinstein duality to: - -\[ -W(p_r, p_g) = \frac{1}{K} \sup_{\| f \|_L \leq K} \mathbb{E}_{x \sim p_r}[f(x)] - \mathbb{E}_{x \sim p_g}[f(x)] -\] - -where $\sup$ (supremum) is the opposite of $inf$ (infimum); we want to measure the least upper bound or, in even simpler words, the maximum value. - - -\subsubsection{Lipschitz Continuity} - -The function $f$ in the new form of Wasserstein metric is demanded to satisfy $\| f \|_L \leq K$, meaning it should be \textit{K-Lipschitz continuous}. - -A real-valued function $f: \mathbb{R} \rightarrow \mathbb{R}$ is called $K$-Lipschitz continuous if there exists a real constant $K \geq 0$ such that, for all $x_1, x_2 \in \mathbb{R}$, - -\[ -\lvert f(x_1) - f(x_2) \rvert \leq K \lvert x_1 - x_2 \rvert -\] - -Here $K$ is known as a Lipschitz constant for function $f(.)$. Functions that are everywhere continuously differentiable is Lipschitz continuous, because the derivative, estimated as $\frac{\lvert f(x_1) - f(x_2) \rvert}{\lvert x_1 - x_2 \rvert}$, has bounds. However, a Lipschitz continuous function may not be everywhere differentiable, such as $f(x) = \lvert x \rvert$. - -Explaining how the transformation happens on the Wasserstein distance formula is worthy of a long post by itself, so I skip the details here. If you are interested in how to compute Wasserstein metric using linear programming, or how to transfer Wasserstein metric into its dual form according to the Kantorovich-Rubinstein Duality, read this awesome \href{https://vincentherrmann.github.io/blog/wasserstein/}{post}. - - -\subsubsection{Wasserstein Loss Function} - -Suppose this function $f$ comes from a family of K-Lipschitz continuous functions, $\{ f_w \}_{w \in W}$, parameterized by $w$. In the modified Wasserstein-GAN, the "discriminator" model is used to learn $w$ to find a good $f_w$ and the loss function is configured as measuring the Wasserstein distance between $p_r$ and $p_g$. - -\[ -L(p_r, p_g) = W(p_r, p_g) = \max_{w \in W} \mathbb{E}_{x \sim p_r}[f_w(x)] - \mathbb{E}_{z \sim p_r(z)}[f_w(g_\theta(z))] -\] -Thus the "discriminator" is not a direct critic of telling the fake samples apart from the real ones anymore. Instead, it is trained to learn a $K$-Lipschitz continuous function to help compute Wasserstein distance. As the loss function decreases in the training, the Wasserstein distance gets smaller and the generator model's output grows closer to the real data distribution. - -One big problem is to maintain the $K$-Lipschitz continuity of $f_w$ during the training in order to make everything work out. The paper presents a simple but very practical trick: After every gradient update, clamp the weights $w$ to a small window, such as $[-0.01, 0.01]$, resulting in a compact parameter space $W$ and thus $f_w$ obtains its lower and upper bounds to preserve the Lipschitz continuity. - - -\begin{figure}[!htb] - \centering - \includegraphics[width=0.85\linewidth]{WGAN_algorithm.png} - \caption{Algorithm of Wasserstein generative adversarial network. (Image source:~\cite{wgan2017})} - \label{fig:fig9} -\end{figure} - - -Compared to the original GAN algorithm, the WGAN undertakes the following changes: -\begin{itemize} - \item After every gradient update on the critic function, clamp the weights to a small fixed range, $[-c, c]$. - \item Use a new loss function derived from the Wasserstein distance, no logarithm anymore. The "discriminator" model does not play as a direct critic but a helper for estimating the Wasserstein metric between real and generated data distribution. - \item Empirically the authors recommended RMSProp optimizer on the critic, rather than a momentum based optimizer such as Adam which could cause instability in the model training. I haven't seen clear theoretical explanation on this point through. -\end{itemize} - -Sadly, Wasserstein GAN is not perfect. Even the authors of the original WGAN paper mentioned that \textit{"Weight clipping is a clearly terrible way to enforce a Lipschitz constraint"}. WGAN still suffers from unstable training, slow convergence after weight clipping (when clipping window is too large), and vanishing gradients (when clipping window is too small). - -Some improvement, precisely replacing weight clipping with \textit{gradient penalty}, has been discussed in~\cite{wgan2017improve}. - - -\bibliographystyle{plain} -%\bibliography{../references} - -\begin{thebibliography}{1} - - \bibitem{gan2014} - Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, - Sherjil Ozair, Aaron Courville, and Yoshua Bengio. - \newblock Generative adversarial nets. - \newblock In {\em NIPS}, pages 2672--2680. 2014. - - \bibitem{gan2015train} - Ferenc Huszár. - \newblock How (not) to train your generative model: Scheduled sampling, - likelihood, adversary? - \newblock {\em arXiv:1511.05101}, 2015. - - \bibitem{salimans2016nips} - Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, and - Xi~Chen. - \newblock Improved techniques for training gans. - \newblock {\em NIPS}, 2016. - - \bibitem{arjovsky2017} - Martin Arjovsky and Léon Bottou. - \newblock Towards principled methods for training generative adversarial - networks. - \newblock {\em ICML}, 2017. - - \bibitem{wgan2017} - Martin Arjovsky, Soumith Chintala, and Léon Bottou. - \newblock Wasserstein gan. - \newblock {\em arXiv:1701.07875}, 2017. - - \bibitem{wgan2017improve} - Ishaan Gulrajani, Faruk Ahmed, Martin Arjovsky, Vincent Dumoulin, and Aaron - Courville. - \newblock Improved training of wasserstein gans. - \newblock {\em arXiv:1704.00028}, 2017. - -\end{thebibliography} - - -\end{document}