^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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