From a8288fa0df20e81facaf6a36079787ac2cffba9b Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Mon, 7 Oct 2024 13:19:45 +0200 Subject: [PATCH] added video --- doc/pub/week41/html/week41-bs.html | 8 +- doc/pub/week41/html/week41-reveal.html | 11 +- doc/pub/week41/html/week41-solarized.html | 8 +- doc/pub/week41/html/week41.html | 8 +- doc/pub/week41/ipynb/ipynb-week41-src.tar.gz | Bin 994410 -> 994410 bytes doc/pub/week41/ipynb/week41.ipynb | 660 +-- ...D5ABBBAD84E10F49A5F4278A7252110B6CA.pygtex | 52 - ...37CBBBAD84E10F49A5F4278A7252110B6CA.pygtex | 11 - ...BC1BBBAD84E10F49A5F4278A7252110B6CA.pygtex | 74 - ...FD7BBBAD84E10F49A5F4278A7252110B6CA.pygtex | 33 - ...DCDBBBAD84E10F49A5F4278A7252110B6CA.pygtex | 13 - ...052BBBAD84E10F49A5F4278A7252110B6CA.pygtex | 67 - ...21CBBBAD84E10F49A5F4278A7252110B6CA.pygtex | 11 - .../week41/_minted-week41/default.pygstyle | 101 - doc/src/week41/ipynb-week41-src.tar.gz | Bin 994410 -> 0 bytes doc/src/week41/reveal.js/.gitignore | 8 - doc/src/week41/reveal.js/.travis.yml | 5 - doc/src/week41/reveal.js/CONTRIBUTING.md | 23 - doc/src/week41/reveal.js/Gruntfile.js | 140 - doc/src/week41/reveal.js/LICENSE | 19 - doc/src/week41/reveal.js/README.md | 1052 ---- doc/src/week41/reveal.js/bower.json | 27 - .../reveal.js/css/images/cbc_footer.png | Bin 10008 -> 0 bytes .../reveal.js/css/images/cbc_symbol.png | Bin 2946 -> 0 bytes .../reveal.js/css/images/simula_footer.png | Bin 2513 -> 0 bytes .../reveal.js/css/images/simula_logo.png | Bin 2138 -> 0 bytes .../reveal.js/css/images/simula_symbol.png | Bin 2138 -> 0 bytes .../reveal.js/css/images/uio_footer.png | Bin 18189 -> 0 bytes .../reveal.js/css/images/uio_symbol.png | Bin 11352 -> 0 bytes doc/src/week41/reveal.js/css/print/paper.css | 202 - doc/src/week41/reveal.js/css/print/pdf.css | 157 - doc/src/week41/reveal.js/css/reveal.css | 1886 ------- doc/src/week41/reveal.js/css/reveal.scss | 1319 ----- doc/src/week41/reveal.js/css/theme/README.md | 23 - doc/src/week41/reveal.js/css/theme/beige.css | 154 - .../week41/reveal.js/css/theme/beigesmall.css | 155 - doc/src/week41/reveal.js/css/theme/black.css | 273 - doc/src/week41/reveal.js/css/theme/blood.css | 180 - doc/src/week41/reveal.js/css/theme/cbc.css | 144 - .../week41/reveal.js/css/theme/darkgray.css | 153 - .../week41/reveal.js/css/theme/default.css | 153 - doc/src/week41/reveal.js/css/theme/league.css | 279 - doc/src/week41/reveal.js/css/theme/moon.css | 153 - doc/src/week41/reveal.js/css/theme/night.css | 141 - doc/src/week41/reveal.js/css/theme/serif.css | 143 - doc/src/week41/reveal.js/css/theme/simple.css | 144 - doc/src/week41/reveal.js/css/theme/simula.css | 144 - doc/src/week41/reveal.js/css/theme/sky.css | 150 - .../week41/reveal.js/css/theme/solarized.css | 153 - .../reveal.js/css/theme/source/beige.scss | 50 - .../css/theme/source/beigesmall.scss | 51 - .../reveal.js/css/theme/source/black.scss | 49 - .../reveal.js/css/theme/source/blood.scss | 91 - .../reveal.js/css/theme/source/cbc.scss | 39 - .../reveal.js/css/theme/source/darkgray.scss | 42 - .../reveal.js/css/theme/source/default.scss | 42 - .../reveal.js/css/theme/source/league.scss | 34 - .../reveal.js/css/theme/source/moon.scss | 68 - .../reveal.js/css/theme/source/night.scss | 35 - .../reveal.js/css/theme/source/serif.scss | 35 - .../reveal.js/css/theme/source/simple.scss | 38 - .../reveal.js/css/theme/source/simula.scss | 39 - .../reveal.js/css/theme/source/sky.scss | 46 - .../reveal.js/css/theme/source/solarized.scss | 74 - .../reveal.js/css/theme/source/white.scss | 49 - doc/src/week41/reveal.js/css/theme/white.css | 273 - doc/src/week41/reveal.js/index.html | 411 -- doc/src/week41/reveal.js/js/reveal.js | 4508 ---------------- doc/src/week41/reveal.js/lib/css/zenburn.css | 117 - .../reveal.js/lib/font/league-gothic/LICENSE | 2 - .../lib/font/league-gothic/league-gothic.css | 10 - .../lib/font/league-gothic/league-gothic.eot | Bin 25696 -> 0 bytes .../lib/font/league-gothic/league-gothic.ttf | Bin 64256 -> 0 bytes .../lib/font/league-gothic/league-gothic.woff | Bin 30764 -> 0 bytes .../lib/font/source-sans-pro/LICENSE | 45 - .../source-sans-pro-italic.eot | Bin 75720 -> 0 bytes .../source-sans-pro-italic.ttf | Bin 238084 -> 0 bytes .../source-sans-pro-italic.woff | Bin 98556 -> 0 bytes .../source-sans-pro-regular.eot | Bin 88070 -> 0 bytes .../source-sans-pro-regular.ttf | Bin 288008 -> 0 bytes .../source-sans-pro-regular.woff | Bin 114324 -> 0 bytes .../source-sans-pro-semibold.eot | Bin 89897 -> 0 bytes .../source-sans-pro-semibold.ttf | Bin 284640 -> 0 bytes .../source-sans-pro-semibold.woff | Bin 115648 -> 0 bytes .../source-sans-pro-semibolditalic.eot | Bin 75706 -> 0 bytes .../source-sans-pro-semibolditalic.ttf | Bin 240944 -> 0 bytes .../source-sans-pro-semibolditalic.woff | Bin 98816 -> 0 bytes .../font/source-sans-pro/source-sans-pro.css | 39 - doc/src/week41/reveal.js/lib/js/classList.js | 2 - doc/src/week41/reveal.js/lib/js/head.min.js | 8 - doc/src/week41/reveal.js/lib/js/html5shiv.js | 7 - doc/src/week41/reveal.js/package.json | 45 - .../reveal.js/plugin/highlight/highlight.js | 30 - doc/src/week41/reveal.js/plugin/leap/leap.js | 159 - .../reveal.js/plugin/markdown/example.html | 129 - .../reveal.js/plugin/markdown/example.md | 31 - .../reveal.js/plugin/markdown/markdown.js | 393 -- .../reveal.js/plugin/markdown/marked.js | 6 - doc/src/week41/reveal.js/plugin/math/math.js | 64 - .../reveal.js/plugin/multiplex/client.js | 13 - .../reveal.js/plugin/multiplex/index.js | 56 - .../reveal.js/plugin/multiplex/master.js | 51 - .../reveal.js/plugin/notes-server/client.js | 60 - .../reveal.js/plugin/notes-server/index.js | 66 - .../reveal.js/plugin/notes-server/notes.html | 396 -- .../week41/reveal.js/plugin/notes/notes.html | 406 -- .../week41/reveal.js/plugin/notes/notes.js | 122 - .../reveal.js/plugin/print-pdf/print-pdf.js | 48 - .../reveal.js/plugin/remotes/remotes.js | 39 - .../week41/reveal.js/plugin/search/search.js | 196 - .../week41/reveal.js/plugin/zoom-js/zoom.js | 278 - .../reveal.js/test/examples/assets/image1.png | Bin 21991 -> 0 bytes .../reveal.js/test/examples/assets/image2.png | Bin 10237 -> 0 bytes .../reveal.js/test/examples/barebones.html | 41 - .../test/examples/embedded-media.html | 49 - .../week41/reveal.js/test/examples/math.html | 185 - .../test/examples/slide-backgrounds.html | 144 - .../test/examples/slide-transitions.html | 101 - .../week41/reveal.js/test/qunit-1.12.0.css | 244 - doc/src/week41/reveal.js/test/qunit-1.12.0.js | 2212 -------- .../test-markdown-element-attributes.html | 134 - .../test/test-markdown-element-attributes.js | 46 - .../test/test-markdown-slide-attributes.html | 128 - .../test/test-markdown-slide-attributes.js | 47 - .../week41/reveal.js/test/test-markdown.html | 52 - .../week41/reveal.js/test/test-markdown.js | 15 - doc/src/week41/reveal.js/test/test-pdf.html | 83 - doc/src/week41/reveal.js/test/test-pdf.js | 15 - doc/src/week41/reveal.js/test/test.html | 85 - doc/src/week41/reveal.js/test/test.js | 589 --- doc/src/week41/week41-bs.html | 2879 ---------- doc/src/week41/week41-reveal.html | 2989 ----------- doc/src/week41/week41-solarized.html | 2750 ---------- doc/src/week41/week41.do.txt | 4 +- doc/src/week41/week41.html | 2827 ---------- doc/src/week41/week41.ipynb | 4644 ----------------- doc/src/week41/week41.p.tex | 2612 --------- doc/src/week41/week41.pdf | Bin 1170678 -> 0 bytes doc/src/week41/week41.tex | 2494 --------- 139 files changed, 356 insertions(+), 42242 deletions(-) delete mode 100644 doc/src/week41/_minted-week41/8F742E4CFCF99BA69821AA2655DBFD5ABBBAD84E10F49A5F4278A7252110B6CA.pygtex delete mode 100644 doc/src/week41/_minted-week41/8FDA801D9EBD40558C744590672A037CBBBAD84E10F49A5F4278A7252110B6CA.pygtex delete mode 100644 doc/src/week41/_minted-week41/91DA298044DB0DCD8186DE2877A3BBC1BBBAD84E10F49A5F4278A7252110B6CA.pygtex delete mode 100644 doc/src/week41/_minted-week41/A94A396A1D27720ED5CDB1E3A9707FD7BBBAD84E10F49A5F4278A7252110B6CA.pygtex delete mode 100644 doc/src/week41/_minted-week41/FAB7E87618A8A8AABAD77C666F19DDCDBBBAD84E10F49A5F4278A7252110B6CA.pygtex delete mode 100644 doc/src/week41/_minted-week41/FD9F88E66D9E5A715D98B8D276C06052BBBAD84E10F49A5F4278A7252110B6CA.pygtex delete mode 100644 doc/src/week41/_minted-week41/FDA896CDD8BFB6D38F791E78B364721CBBBAD84E10F49A5F4278A7252110B6CA.pygtex delete mode 100644 doc/src/week41/_minted-week41/default.pygstyle delete mode 100644 doc/src/week41/ipynb-week41-src.tar.gz delete mode 100644 doc/src/week41/reveal.js/.gitignore delete mode 100644 doc/src/week41/reveal.js/.travis.yml delete mode 100644 doc/src/week41/reveal.js/CONTRIBUTING.md delete mode 100644 doc/src/week41/reveal.js/Gruntfile.js delete mode 100644 doc/src/week41/reveal.js/LICENSE delete mode 100644 doc/src/week41/reveal.js/README.md delete mode 100644 doc/src/week41/reveal.js/bower.json delete mode 100644 doc/src/week41/reveal.js/css/images/cbc_footer.png delete mode 100644 doc/src/week41/reveal.js/css/images/cbc_symbol.png delete mode 100644 doc/src/week41/reveal.js/css/images/simula_footer.png delete mode 100644 doc/src/week41/reveal.js/css/images/simula_logo.png delete mode 100644 doc/src/week41/reveal.js/css/images/simula_symbol.png delete mode 100644 doc/src/week41/reveal.js/css/images/uio_footer.png delete mode 100644 doc/src/week41/reveal.js/css/images/uio_symbol.png delete mode 100644 doc/src/week41/reveal.js/css/print/paper.css delete mode 100644 doc/src/week41/reveal.js/css/print/pdf.css delete mode 100644 doc/src/week41/reveal.js/css/reveal.css delete mode 100644 doc/src/week41/reveal.js/css/reveal.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/README.md delete mode 100644 doc/src/week41/reveal.js/css/theme/beige.css delete mode 100644 doc/src/week41/reveal.js/css/theme/beigesmall.css delete mode 100644 doc/src/week41/reveal.js/css/theme/black.css delete mode 100644 doc/src/week41/reveal.js/css/theme/blood.css delete mode 100644 doc/src/week41/reveal.js/css/theme/cbc.css delete mode 100644 doc/src/week41/reveal.js/css/theme/darkgray.css delete mode 100644 doc/src/week41/reveal.js/css/theme/default.css delete mode 100644 doc/src/week41/reveal.js/css/theme/league.css delete mode 100644 doc/src/week41/reveal.js/css/theme/moon.css delete mode 100644 doc/src/week41/reveal.js/css/theme/night.css delete mode 100644 doc/src/week41/reveal.js/css/theme/serif.css delete mode 100644 doc/src/week41/reveal.js/css/theme/simple.css delete mode 100644 doc/src/week41/reveal.js/css/theme/simula.css delete mode 100644 doc/src/week41/reveal.js/css/theme/sky.css delete mode 100644 doc/src/week41/reveal.js/css/theme/solarized.css delete mode 100644 doc/src/week41/reveal.js/css/theme/source/beige.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/beigesmall.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/black.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/blood.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/cbc.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/darkgray.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/default.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/league.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/moon.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/night.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/serif.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/simple.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/simula.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/sky.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/solarized.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/source/white.scss delete mode 100644 doc/src/week41/reveal.js/css/theme/white.css delete mode 100644 doc/src/week41/reveal.js/index.html delete mode 100644 doc/src/week41/reveal.js/js/reveal.js delete mode 100644 doc/src/week41/reveal.js/lib/css/zenburn.css delete mode 100644 doc/src/week41/reveal.js/lib/font/league-gothic/LICENSE delete mode 100644 doc/src/week41/reveal.js/lib/font/league-gothic/league-gothic.css delete mode 100644 doc/src/week41/reveal.js/lib/font/league-gothic/league-gothic.eot delete mode 100644 doc/src/week41/reveal.js/lib/font/league-gothic/league-gothic.ttf delete mode 100644 doc/src/week41/reveal.js/lib/font/league-gothic/league-gothic.woff delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/LICENSE delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.eot delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.ttf delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.woff delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.eot delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.ttf delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.woff delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.eot delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.ttf delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.woff delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff delete mode 100644 doc/src/week41/reveal.js/lib/font/source-sans-pro/source-sans-pro.css delete mode 100644 doc/src/week41/reveal.js/lib/js/classList.js delete mode 100644 doc/src/week41/reveal.js/lib/js/head.min.js delete mode 100644 doc/src/week41/reveal.js/lib/js/html5shiv.js delete mode 100644 doc/src/week41/reveal.js/package.json delete mode 100644 doc/src/week41/reveal.js/plugin/highlight/highlight.js delete mode 100644 doc/src/week41/reveal.js/plugin/leap/leap.js delete mode 100644 doc/src/week41/reveal.js/plugin/markdown/example.html delete mode 100644 doc/src/week41/reveal.js/plugin/markdown/example.md delete mode 100644 doc/src/week41/reveal.js/plugin/markdown/markdown.js delete mode 100644 doc/src/week41/reveal.js/plugin/markdown/marked.js delete mode 100644 doc/src/week41/reveal.js/plugin/math/math.js delete mode 100644 doc/src/week41/reveal.js/plugin/multiplex/client.js delete mode 100644 doc/src/week41/reveal.js/plugin/multiplex/index.js delete mode 100644 doc/src/week41/reveal.js/plugin/multiplex/master.js delete mode 100644 doc/src/week41/reveal.js/plugin/notes-server/client.js delete mode 100644 doc/src/week41/reveal.js/plugin/notes-server/index.js delete mode 100644 doc/src/week41/reveal.js/plugin/notes-server/notes.html delete mode 100644 doc/src/week41/reveal.js/plugin/notes/notes.html delete mode 100644 doc/src/week41/reveal.js/plugin/notes/notes.js delete mode 100644 doc/src/week41/reveal.js/plugin/print-pdf/print-pdf.js delete mode 100644 doc/src/week41/reveal.js/plugin/remotes/remotes.js delete mode 100644 doc/src/week41/reveal.js/plugin/search/search.js delete mode 100644 doc/src/week41/reveal.js/plugin/zoom-js/zoom.js delete mode 100644 doc/src/week41/reveal.js/test/examples/assets/image1.png delete mode 100644 doc/src/week41/reveal.js/test/examples/assets/image2.png delete mode 100644 doc/src/week41/reveal.js/test/examples/barebones.html delete mode 100644 doc/src/week41/reveal.js/test/examples/embedded-media.html delete mode 100644 doc/src/week41/reveal.js/test/examples/math.html delete mode 100644 doc/src/week41/reveal.js/test/examples/slide-backgrounds.html delete mode 100644 doc/src/week41/reveal.js/test/examples/slide-transitions.html delete mode 100644 doc/src/week41/reveal.js/test/qunit-1.12.0.css delete mode 100644 doc/src/week41/reveal.js/test/qunit-1.12.0.js delete mode 100644 doc/src/week41/reveal.js/test/test-markdown-element-attributes.html delete mode 100644 doc/src/week41/reveal.js/test/test-markdown-element-attributes.js delete mode 100644 doc/src/week41/reveal.js/test/test-markdown-slide-attributes.html delete mode 100644 doc/src/week41/reveal.js/test/test-markdown-slide-attributes.js delete mode 100644 doc/src/week41/reveal.js/test/test-markdown.html delete mode 100644 doc/src/week41/reveal.js/test/test-markdown.js delete mode 100644 doc/src/week41/reveal.js/test/test-pdf.html delete mode 100644 doc/src/week41/reveal.js/test/test-pdf.js delete mode 100644 doc/src/week41/reveal.js/test/test.html delete mode 100644 doc/src/week41/reveal.js/test/test.js delete mode 100644 doc/src/week41/week41-bs.html delete mode 100644 doc/src/week41/week41-reveal.html delete mode 100644 doc/src/week41/week41-solarized.html delete mode 100644 doc/src/week41/week41.html delete mode 100644 doc/src/week41/week41.ipynb delete mode 100644 doc/src/week41/week41.p.tex delete mode 100644 doc/src/week41/week41.pdf delete mode 100644 doc/src/week41/week41.tex diff --git a/doc/pub/week41/html/week41-bs.html b/doc/pub/week41/html/week41-bs.html index db266a362..0232fecde 100644 --- a/doc/pub/week41/html/week41-bs.html +++ b/doc/pub/week41/html/week41-bs.html @@ -547,9 +547,11 @@ MathJax.Hub.Config({

Material for the lecture on Monday October 7, 2024

  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -
  3. Building our own Feed-forward Neural Network - -
  4. +
  5. Building our own Feed-forward Neural Network
  6. +
diff --git a/doc/pub/week41/html/week41-reveal.html b/doc/pub/week41/html/week41-reveal.html index 34be85e14..6633308c2 100644 --- a/doc/pub/week41/html/week41-reveal.html +++ b/doc/pub/week41/html/week41-reveal.html @@ -199,9 +199,14 @@ MathJax.Hub.Config({

Material for the lecture on Monday October 7, 2024

  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -

  3. Building our own Feed-forward Neural Network - -
  4. +

  5. Building our own Feed-forward Neural Network
  6. + +

diff --git a/doc/pub/week41/html/week41-solarized.html b/doc/pub/week41/html/week41-solarized.html index c22ccca46..dc13a412e 100644 --- a/doc/pub/week41/html/week41-solarized.html +++ b/doc/pub/week41/html/week41-solarized.html @@ -434,9 +434,11 @@ MathJax.Hub.Config({

Material for the lecture on Monday October 7, 2024

  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -
  3. Building our own Feed-forward Neural Network - -
  4. +
  5. Building our own Feed-forward Neural Network
  6. +
Readings and Videos: diff --git a/doc/pub/week41/html/week41.html b/doc/pub/week41/html/week41.html index 36ac3704e..c320e3d98 100644 --- a/doc/pub/week41/html/week41.html +++ b/doc/pub/week41/html/week41.html @@ -511,9 +511,11 @@ MathJax.Hub.Config({

Material for the lecture on Monday October 7, 2024

  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -
  3. Building our own Feed-forward Neural Network - -
  4. +
  5. Building our own Feed-forward Neural Network
  6. +
Readings and Videos: diff --git a/doc/pub/week41/ipynb/ipynb-week41-src.tar.gz b/doc/pub/week41/ipynb/ipynb-week41-src.tar.gz index fd2fe62c311641604127592bdf06ee2322178635..9050fa53f81b2922775bbb5865e033270ed5157d 100644 GIT binary patch delta 62 zcmaEL!{*fu8#eiF4u<828`)af7+cwxTG^Oe*;rcHSX\n", - "\n", + "\n", + " * Video of lecture notes at \n", + "\n", + " * Whiteboard notes at \n", "\n", "**Readings and Videos:**\n", "\n", @@ -70,7 +72,7 @@ }, { "cell_type": "markdown", - "id": "d7c3f47c", + "id": "f1d45fb2", "metadata": { "editable": true }, @@ -87,7 +89,7 @@ }, { "cell_type": "markdown", - "id": "ee26bc0e", + "id": "d4e77966", "metadata": { "editable": true }, @@ -97,7 +99,7 @@ }, { "cell_type": "markdown", - "id": "604a7680", + "id": "e53c7266", "metadata": { "editable": true }, @@ -115,7 +117,7 @@ }, { "cell_type": "markdown", - "id": "df00fb0e", + "id": "bc8b8894", "metadata": { "editable": true }, @@ -139,7 +141,7 @@ }, { "cell_type": "markdown", - "id": "b60314ed", + "id": "7822604f", "metadata": { "editable": true }, @@ -157,7 +159,7 @@ }, { "cell_type": "markdown", - "id": "9d2e1d85", + "id": "e1b48997", "metadata": { "editable": true }, @@ -197,7 +199,7 @@ }, { "cell_type": "markdown", - "id": "c6af91e7", + "id": "17881d26", "metadata": { "editable": true }, @@ -226,7 +228,7 @@ }, { "cell_type": "markdown", - "id": "1b2b8e1c", + "id": "64134ea5", "metadata": { "editable": true }, @@ -247,7 +249,7 @@ }, { "cell_type": "markdown", - "id": "db4860d5", + "id": "d1b8101c", "metadata": { "editable": true }, @@ -276,7 +278,7 @@ }, { "cell_type": "markdown", - "id": "4c21c5ca", + "id": "ee76d630", "metadata": { "editable": true }, @@ -297,7 +299,7 @@ }, { "cell_type": "markdown", - "id": "4314d49c", + "id": "77292572", "metadata": { "editable": true }, @@ -318,7 +320,7 @@ }, { "cell_type": "markdown", - "id": "94acdaed", + "id": "31229c23", "metadata": { "editable": true }, @@ -335,7 +337,7 @@ }, { "cell_type": "markdown", - "id": "5c342880", + "id": "8ef64a1c", "metadata": { "editable": true }, @@ -356,7 +358,7 @@ }, { "cell_type": "markdown", - "id": "f8e04154", + "id": "8a05aae8", "metadata": { "editable": true }, @@ -372,7 +374,7 @@ }, { "cell_type": "markdown", - "id": "80e11a79", + "id": "53553bc4", "metadata": { "editable": true }, @@ -389,7 +391,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "60cf9550", + "id": "bd160078", "metadata": { "collapsed": false, "editable": true @@ -430,7 +432,7 @@ }, { "cell_type": "markdown", - "id": "72e221bf", + "id": "8dc03535", "metadata": { "editable": true }, @@ -440,7 +442,7 @@ }, { "cell_type": "markdown", - "id": "67d0709a", + "id": "0f612b2a", "metadata": { "editable": true }, @@ -451,7 +453,7 @@ { "cell_type": "code", "execution_count": 2, - "id": "4afcb37f", + "id": "b2c26240", "metadata": { "collapsed": false, "editable": true @@ -513,7 +515,7 @@ }, { "cell_type": "markdown", - "id": "ac931e42", + "id": "f5dc459e", "metadata": { "editable": true }, @@ -523,7 +525,7 @@ }, { "cell_type": "markdown", - "id": "e5455ad8", + "id": "b2ad997b", "metadata": { "editable": true }, @@ -534,7 +536,7 @@ { "cell_type": "code", "execution_count": 3, - "id": "cfbed3e7", + "id": "df5c9c62", "metadata": { "collapsed": false, "editable": true @@ -554,7 +556,7 @@ }, { "cell_type": "markdown", - "id": "a619dfb2", + "id": "40a0930e", "metadata": { "editable": true }, @@ -570,7 +572,7 @@ }, { "cell_type": "markdown", - "id": "2cc88c73", + "id": "decd7409", "metadata": { "editable": true }, @@ -581,7 +583,7 @@ }, { "cell_type": "markdown", - "id": "233d2972", + "id": "e2a4d61c", "metadata": { "editable": true }, @@ -595,7 +597,7 @@ }, { "cell_type": "markdown", - "id": "27cc80b0", + "id": "16723d55", "metadata": { "editable": true }, @@ -614,7 +616,7 @@ }, { "cell_type": "markdown", - "id": "ea3a3c02", + "id": "902a802b", "metadata": { "editable": true }, @@ -638,7 +640,7 @@ }, { "cell_type": "markdown", - "id": "502d4ad7", + "id": "fbd06338", "metadata": { "editable": true }, @@ -665,7 +667,7 @@ }, { "cell_type": "markdown", - "id": "9182519a", + "id": "0e9e449b", "metadata": { "editable": true }, @@ -682,7 +684,7 @@ }, { "cell_type": "markdown", - "id": "15b78cfd", + "id": "b06ad67d", "metadata": { "editable": true }, @@ -694,7 +696,7 @@ }, { "cell_type": "markdown", - "id": "093b77f1", + "id": "aa068f3c", "metadata": { "editable": true }, @@ -705,7 +707,7 @@ }, { "cell_type": "markdown", - "id": "b6c8a224", + "id": "2977103a", "metadata": { "editable": true }, @@ -723,7 +725,7 @@ }, { "cell_type": "markdown", - "id": "f30d7e81", + "id": "3cd55846", "metadata": { "editable": true }, @@ -752,7 +754,7 @@ }, { "cell_type": "markdown", - "id": "5089007e", + "id": "66def2af", "metadata": { "editable": true }, @@ -766,7 +768,7 @@ }, { "cell_type": "markdown", - "id": "3f9eedcb", + "id": "1dfc75e0", "metadata": { "editable": true }, @@ -782,7 +784,7 @@ }, { "cell_type": "markdown", - "id": "ac052134", + "id": "db4ec583", "metadata": { "editable": true }, @@ -794,7 +796,7 @@ }, { "cell_type": "markdown", - "id": "c0e639b1", + "id": "e6b6f0e5", "metadata": { "editable": true }, @@ -808,7 +810,7 @@ }, { "cell_type": "markdown", - "id": "6d2878d4", + "id": "82c4e644", "metadata": { "editable": true }, @@ -820,7 +822,7 @@ }, { "cell_type": "markdown", - "id": "dbb5133d", + "id": "4d8b622d", "metadata": { "editable": true }, @@ -836,7 +838,7 @@ }, { "cell_type": "markdown", - "id": "0da134a5", + "id": "8d93823d", "metadata": { "editable": true }, @@ -852,7 +854,7 @@ }, { "cell_type": "markdown", - "id": "5346e8a0", + "id": "087fd46d", "metadata": { "editable": true }, @@ -864,7 +866,7 @@ }, { "cell_type": "markdown", - "id": "36737d10", + "id": "7547efaa", "metadata": { "editable": true }, @@ -874,7 +876,7 @@ }, { "cell_type": "markdown", - "id": "d81b95ba", + "id": "65071f00", "metadata": { "editable": true }, @@ -886,7 +888,7 @@ }, { "cell_type": "markdown", - "id": "8432cac2", + "id": "7a8ecd20", "metadata": { "editable": true }, @@ -904,7 +906,7 @@ }, { "cell_type": "markdown", - "id": "04d4d751", + "id": "41ed53e6", "metadata": { "editable": true }, @@ -917,7 +919,7 @@ }, { "cell_type": "markdown", - "id": "df8f957e", + "id": "2b83edda", "metadata": { "editable": true }, @@ -934,7 +936,7 @@ }, { "cell_type": "markdown", - "id": "0fc51d93", + "id": "d27eb1c2", "metadata": { "editable": true }, @@ -946,7 +948,7 @@ }, { "cell_type": "markdown", - "id": "fc372df4", + "id": "f83f5909", "metadata": { "editable": true }, @@ -958,7 +960,7 @@ }, { "cell_type": "markdown", - "id": "e1cbafd1", + "id": "693f1f94", "metadata": { "editable": true }, @@ -974,7 +976,7 @@ }, { "cell_type": "markdown", - "id": "aadba1e0", + "id": "c4473918", "metadata": { "editable": true }, @@ -991,7 +993,7 @@ }, { "cell_type": "markdown", - "id": "4f0a354f", + "id": "80c49202", "metadata": { "editable": true }, @@ -1003,7 +1005,7 @@ }, { "cell_type": "markdown", - "id": "5b489754", + "id": "b95ea794", "metadata": { "editable": true }, @@ -1016,7 +1018,7 @@ }, { "cell_type": "markdown", - "id": "109a6626", + "id": "7468be96", "metadata": { "editable": true }, @@ -1028,7 +1030,7 @@ }, { "cell_type": "markdown", - "id": "d075c31b", + "id": "82d9ddc5", "metadata": { "editable": true }, @@ -1044,7 +1046,7 @@ }, { "cell_type": "markdown", - "id": "ea32a509", + "id": "611a8aaf", "metadata": { "editable": true }, @@ -1056,7 +1058,7 @@ }, { "cell_type": "markdown", - "id": "8ac36725", + "id": "adfdba0b", "metadata": { "editable": true }, @@ -1068,7 +1070,7 @@ }, { "cell_type": "markdown", - "id": "f3600e09", + "id": "6b23deb7", "metadata": { "editable": true }, @@ -1080,7 +1082,7 @@ }, { "cell_type": "markdown", - "id": "3e537038", + "id": "3dbf8b63", "metadata": { "editable": true }, @@ -1090,7 +1092,7 @@ }, { "cell_type": "markdown", - "id": "34b99ae7", + "id": "b3228dee", "metadata": { "editable": true }, @@ -1102,7 +1104,7 @@ }, { "cell_type": "markdown", - "id": "e4faa2f2", + "id": "52be372b", "metadata": { "editable": true }, @@ -1112,7 +1114,7 @@ }, { "cell_type": "markdown", - "id": "b4243031", + "id": "8e1cfc96", "metadata": { "editable": true }, @@ -1124,7 +1126,7 @@ }, { "cell_type": "markdown", - "id": "b528c44c", + "id": "79b3ab6b", "metadata": { "editable": true }, @@ -1138,7 +1140,7 @@ }, { "cell_type": "markdown", - "id": "602e81ab", + "id": "4541109b", "metadata": { "editable": true }, @@ -1150,7 +1152,7 @@ }, { "cell_type": "markdown", - "id": "4ac5e382", + "id": "ada15490", "metadata": { "editable": true }, @@ -1160,7 +1162,7 @@ }, { "cell_type": "markdown", - "id": "02edfab2", + "id": "ef1846b1", "metadata": { "editable": true }, @@ -1172,7 +1174,7 @@ }, { "cell_type": "markdown", - "id": "02fffe9d", + "id": "2bcae885", "metadata": { "editable": true }, @@ -1182,7 +1184,7 @@ }, { "cell_type": "markdown", - "id": "f4d679cc", + "id": "14438533", "metadata": { "editable": true }, @@ -1194,7 +1196,7 @@ }, { "cell_type": "markdown", - "id": "3638d432", + "id": "1ea04dc6", "metadata": { "editable": true }, @@ -1209,7 +1211,7 @@ }, { "cell_type": "markdown", - "id": "d3039347", + "id": "2c1d3d23", "metadata": { "editable": true }, @@ -1221,7 +1223,7 @@ }, { "cell_type": "markdown", - "id": "f48bfb76", + "id": "0a784486", "metadata": { "editable": true }, @@ -1233,7 +1235,7 @@ }, { "cell_type": "markdown", - "id": "63176c54", + "id": "91a6fac4", "metadata": { "editable": true }, @@ -1245,7 +1247,7 @@ }, { "cell_type": "markdown", - "id": "f966f6f1", + "id": "64245345", "metadata": { "editable": true }, @@ -1257,7 +1259,7 @@ }, { "cell_type": "markdown", - "id": "b0a5a64e", + "id": "8f42f6ef", "metadata": { "editable": true }, @@ -1267,7 +1269,7 @@ }, { "cell_type": "markdown", - "id": "fedfd000", + "id": "23f3f62a", "metadata": { "editable": true }, @@ -1279,7 +1281,7 @@ }, { "cell_type": "markdown", - "id": "49281876", + "id": "31db67ce", "metadata": { "editable": true }, @@ -1289,7 +1291,7 @@ }, { "cell_type": "markdown", - "id": "78dc9b72", + "id": "54f91226", "metadata": { "editable": true }, @@ -1301,7 +1303,7 @@ }, { "cell_type": "markdown", - "id": "bf854510", + "id": "551bf4e9", "metadata": { "editable": true }, @@ -1321,7 +1323,7 @@ }, { "cell_type": "markdown", - "id": "35771431", + "id": "1d4117b4", "metadata": { "editable": true }, @@ -1333,7 +1335,7 @@ }, { "cell_type": "markdown", - "id": "6570ba80", + "id": "402669ea", "metadata": { "editable": true }, @@ -1345,7 +1347,7 @@ }, { "cell_type": "markdown", - "id": "c30b4d72", + "id": "ec119701", "metadata": { "editable": true }, @@ -1355,7 +1357,7 @@ }, { "cell_type": "markdown", - "id": "183d5f0b", + "id": "bcb30e6f", "metadata": { "editable": true }, @@ -1367,7 +1369,7 @@ }, { "cell_type": "markdown", - "id": "b2363c0a", + "id": "2a7acb6e", "metadata": { "editable": true }, @@ -1378,7 +1380,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "0b51ea21", + "id": "044e79d9", "metadata": { "collapsed": false, "editable": true @@ -1397,7 +1399,7 @@ }, { "cell_type": "markdown", - "id": "07e24343", + "id": "1c3cb722", "metadata": { "editable": true }, @@ -1408,7 +1410,7 @@ }, { "cell_type": "markdown", - "id": "1337dd0f", + "id": "808a017a", "metadata": { "editable": true }, @@ -1420,7 +1422,7 @@ }, { "cell_type": "markdown", - "id": "a7589947", + "id": "2330f35c", "metadata": { "editable": true }, @@ -1430,7 +1432,7 @@ }, { "cell_type": "markdown", - "id": "3586c972", + "id": "c0b17b83", "metadata": { "editable": true }, @@ -1442,7 +1444,7 @@ }, { "cell_type": "markdown", - "id": "0ac52a19", + "id": "9129586e", "metadata": { "editable": true }, @@ -1455,7 +1457,7 @@ }, { "cell_type": "markdown", - "id": "18b67b7b", + "id": "83209806", "metadata": { "editable": true }, @@ -1467,7 +1469,7 @@ }, { "cell_type": "markdown", - "id": "75f72d6b", + "id": "1e04f023", "metadata": { "editable": true }, @@ -1479,7 +1481,7 @@ }, { "cell_type": "markdown", - "id": "ff72bef0", + "id": "4015de5c", "metadata": { "editable": true }, @@ -1496,7 +1498,7 @@ }, { "cell_type": "markdown", - "id": "ef55737f", + "id": "cfd489e0", "metadata": { "editable": true }, @@ -1508,7 +1510,7 @@ }, { "cell_type": "markdown", - "id": "35ab7175", + "id": "abcfa23a", "metadata": { "editable": true }, @@ -1520,7 +1522,7 @@ }, { "cell_type": "markdown", - "id": "edc79b33", + "id": "67bcaa0e", "metadata": { "editable": true }, @@ -1530,7 +1532,7 @@ }, { "cell_type": "markdown", - "id": "4dc12ed8", + "id": "d4e12796", "metadata": { "editable": true }, @@ -1542,7 +1544,7 @@ }, { "cell_type": "markdown", - "id": "bc945b59", + "id": "e74eed87", "metadata": { "editable": true }, @@ -1552,7 +1554,7 @@ }, { "cell_type": "markdown", - "id": "68eac5d0", + "id": "5b626985", "metadata": { "editable": true }, @@ -1564,7 +1566,7 @@ }, { "cell_type": "markdown", - "id": "6ea49d77", + "id": "4b91e7a2", "metadata": { "editable": true }, @@ -1574,7 +1576,7 @@ }, { "cell_type": "markdown", - "id": "4a65d6fd", + "id": "6da09721", "metadata": { "editable": true }, @@ -1586,7 +1588,7 @@ }, { "cell_type": "markdown", - "id": "c66da8ef", + "id": "1ed5c66b", "metadata": { "editable": true }, @@ -1596,7 +1598,7 @@ }, { "cell_type": "markdown", - "id": "b055e013", + "id": "6157ca77", "metadata": { "editable": true }, @@ -1608,7 +1610,7 @@ }, { "cell_type": "markdown", - "id": "006ef4f0", + "id": "d47f8037", "metadata": { "editable": true }, @@ -1620,7 +1622,7 @@ }, { "cell_type": "markdown", - "id": "99fd1e13", + "id": "7a7bbc5d", "metadata": { "editable": true }, @@ -1630,7 +1632,7 @@ }, { "cell_type": "markdown", - "id": "d711ba8b", + "id": "427cb024", "metadata": { "editable": true }, @@ -1642,7 +1644,7 @@ }, { "cell_type": "markdown", - "id": "394f38fd", + "id": "57a1aaa6", "metadata": { "editable": true }, @@ -1652,7 +1654,7 @@ }, { "cell_type": "markdown", - "id": "2f589cea", + "id": "a8faabb8", "metadata": { "editable": true }, @@ -1664,7 +1666,7 @@ }, { "cell_type": "markdown", - "id": "783c3588", + "id": "bb053125", "metadata": { "editable": true }, @@ -1682,7 +1684,7 @@ }, { "cell_type": "markdown", - "id": "d1627f43", + "id": "6d58682a", "metadata": { "editable": true }, @@ -1694,7 +1696,7 @@ }, { "cell_type": "markdown", - "id": "53035043", + "id": "e26f3e58", "metadata": { "editable": true }, @@ -1706,7 +1708,7 @@ }, { "cell_type": "markdown", - "id": "f3293e4c", + "id": "bd6d2ab5", "metadata": { "editable": true }, @@ -1716,7 +1718,7 @@ }, { "cell_type": "markdown", - "id": "b6087529", + "id": "4df7d922", "metadata": { "editable": true }, @@ -1728,7 +1730,7 @@ }, { "cell_type": "markdown", - "id": "9a91562c", + "id": "451135b1", "metadata": { "editable": true }, @@ -1739,7 +1741,7 @@ { "cell_type": "code", "execution_count": 5, - "id": "49153549", + "id": "a0c4f830", "metadata": { "collapsed": false, "editable": true @@ -1758,7 +1760,7 @@ }, { "cell_type": "markdown", - "id": "3f8e08c9", + "id": "dd8fb453", "metadata": { "editable": true }, @@ -1774,7 +1776,7 @@ }, { "cell_type": "markdown", - "id": "9479dadf", + "id": "4a4d0c85", "metadata": { "editable": true }, @@ -1787,7 +1789,7 @@ }, { "cell_type": "markdown", - "id": "9e5f867e", + "id": "6216f527", "metadata": { "editable": true }, @@ -1799,7 +1801,7 @@ }, { "cell_type": "markdown", - "id": "21ee2a8a", + "id": "36fa3364", "metadata": { "editable": true }, @@ -1809,7 +1811,7 @@ }, { "cell_type": "markdown", - "id": "e09cf187", + "id": "d7936338", "metadata": { "editable": true }, @@ -1821,7 +1823,7 @@ }, { "cell_type": "markdown", - "id": "c999c36b", + "id": "b3c1cf2e", "metadata": { "editable": true }, @@ -1831,7 +1833,7 @@ }, { "cell_type": "markdown", - "id": "8fbf66c6", + "id": "3045f2f3", "metadata": { "editable": true }, @@ -1843,7 +1845,7 @@ }, { "cell_type": "markdown", - "id": "dd11cc6a", + "id": "c62d9b4f", "metadata": { "editable": true }, @@ -1853,7 +1855,7 @@ }, { "cell_type": "markdown", - "id": "69e9e950", + "id": "cc00424b", "metadata": { "editable": true }, @@ -1865,7 +1867,7 @@ }, { "cell_type": "markdown", - "id": "970b6167", + "id": "2880b26d", "metadata": { "editable": true }, @@ -1877,7 +1879,7 @@ }, { "cell_type": "markdown", - "id": "5655fa59", + "id": "6995073b", "metadata": { "editable": true }, @@ -1889,7 +1891,7 @@ }, { "cell_type": "markdown", - "id": "1c8a1f68", + "id": "3025c95c", "metadata": { "editable": true }, @@ -1899,7 +1901,7 @@ }, { "cell_type": "markdown", - "id": "edaf4340", + "id": "eadbab8c", "metadata": { "editable": true }, @@ -1911,7 +1913,7 @@ }, { "cell_type": "markdown", - "id": "f39563ef", + "id": "3b92e291", "metadata": { "editable": true }, @@ -1921,7 +1923,7 @@ }, { "cell_type": "markdown", - "id": "c3fad1fe", + "id": "61abe762", "metadata": { "editable": true }, @@ -1933,7 +1935,7 @@ }, { "cell_type": "markdown", - "id": "2f26318c", + "id": "b9ed2e77", "metadata": { "editable": true }, @@ -1943,7 +1945,7 @@ }, { "cell_type": "markdown", - "id": "75e08a4f", + "id": "3dc26776", "metadata": { "editable": true }, @@ -1955,7 +1957,7 @@ }, { "cell_type": "markdown", - "id": "2729f6dc", + "id": "8092c5dc", "metadata": { "editable": true }, @@ -1965,7 +1967,7 @@ }, { "cell_type": "markdown", - "id": "7ccfc31a", + "id": "3408773c", "metadata": { "editable": true }, @@ -1977,7 +1979,7 @@ }, { "cell_type": "markdown", - "id": "1e39402f", + "id": "547d309c", "metadata": { "editable": true }, @@ -1987,7 +1989,7 @@ }, { "cell_type": "markdown", - "id": "a8313c23", + "id": "3885960f", "metadata": { "editable": true }, @@ -1999,7 +2001,7 @@ }, { "cell_type": "markdown", - "id": "64f5a96d", + "id": "094da560", "metadata": { "editable": true }, @@ -2010,7 +2012,7 @@ }, { "cell_type": "markdown", - "id": "e087f8b8", + "id": "5e7784ef", "metadata": { "editable": true }, @@ -2022,7 +2024,7 @@ }, { "cell_type": "markdown", - "id": "ab9adb45", + "id": "da55dc29", "metadata": { "editable": true }, @@ -2034,7 +2036,7 @@ }, { "cell_type": "markdown", - "id": "e7125560", + "id": "1521da52", "metadata": { "editable": true }, @@ -2047,7 +2049,7 @@ }, { "cell_type": "markdown", - "id": "6c4ad559", + "id": "c585cfc1", "metadata": { "editable": true }, @@ -2057,7 +2059,7 @@ }, { "cell_type": "markdown", - "id": "b42e32a4", + "id": "49baac68", "metadata": { "editable": true }, @@ -2069,7 +2071,7 @@ }, { "cell_type": "markdown", - "id": "40de97ba", + "id": "90c1b377", "metadata": { "editable": true }, @@ -2079,7 +2081,7 @@ }, { "cell_type": "markdown", - "id": "22d0d252", + "id": "dfd1e5f5", "metadata": { "editable": true }, @@ -2091,7 +2093,7 @@ }, { "cell_type": "markdown", - "id": "be68a064", + "id": "01027588", "metadata": { "editable": true }, @@ -2101,7 +2103,7 @@ }, { "cell_type": "markdown", - "id": "ed92fb3c", + "id": "faf9a7f4", "metadata": { "editable": true }, @@ -2117,7 +2119,7 @@ }, { "cell_type": "markdown", - "id": "b565b39a", + "id": "c8a60c3c", "metadata": { "editable": true }, @@ -2134,7 +2136,7 @@ }, { "cell_type": "markdown", - "id": "587ae22d", + "id": "bebf89c4", "metadata": { "editable": true }, @@ -2146,7 +2148,7 @@ }, { "cell_type": "markdown", - "id": "a54b74ca", + "id": "c8e55af0", "metadata": { "editable": true }, @@ -2159,7 +2161,7 @@ }, { "cell_type": "markdown", - "id": "bcfc076a", + "id": "4b69aacb", "metadata": { "editable": true }, @@ -2172,7 +2174,7 @@ }, { "cell_type": "markdown", - "id": "b4194098", + "id": "c0d54321", "metadata": { "editable": true }, @@ -2184,7 +2186,7 @@ }, { "cell_type": "markdown", - "id": "acc7030d", + "id": "8486d91e", "metadata": { "editable": true }, @@ -2194,7 +2196,7 @@ }, { "cell_type": "markdown", - "id": "02f92f41", + "id": "de5e8a70", "metadata": { "editable": true }, @@ -2206,7 +2208,7 @@ }, { "cell_type": "markdown", - "id": "5541dfd1", + "id": "42dc3f26", "metadata": { "editable": true }, @@ -2221,7 +2223,7 @@ }, { "cell_type": "markdown", - "id": "f73cf263", + "id": "133e16c7", "metadata": { "editable": true }, @@ -2236,7 +2238,7 @@ }, { "cell_type": "markdown", - "id": "4b8722cb", + "id": "1fd248a5", "metadata": { "editable": true }, @@ -2248,7 +2250,7 @@ }, { "cell_type": "markdown", - "id": "a604334f", + "id": "321220a1", "metadata": { "editable": true }, @@ -2262,7 +2264,7 @@ }, { "cell_type": "markdown", - "id": "0017f42e", + "id": "d4ef8cda", "metadata": { "editable": true }, @@ -2274,7 +2276,7 @@ }, { "cell_type": "markdown", - "id": "8c47d806", + "id": "c83257a3", "metadata": { "editable": true }, @@ -2290,7 +2292,7 @@ }, { "cell_type": "markdown", - "id": "df503def", + "id": "41976e3b", "metadata": { "editable": true }, @@ -2306,7 +2308,7 @@ }, { "cell_type": "markdown", - "id": "bdc97982", + "id": "daeda85f", "metadata": { "editable": true }, @@ -2318,7 +2320,7 @@ }, { "cell_type": "markdown", - "id": "42716985", + "id": "cfd25fda", "metadata": { "editable": true }, @@ -2328,7 +2330,7 @@ }, { "cell_type": "markdown", - "id": "6df9aa60", + "id": "8d695dcf", "metadata": { "editable": true }, @@ -2340,7 +2342,7 @@ }, { "cell_type": "markdown", - "id": "30f9e077", + "id": "dcc2f332", "metadata": { "editable": true }, @@ -2350,7 +2352,7 @@ }, { "cell_type": "markdown", - "id": "77e9d494", + "id": "cb53a1ce", "metadata": { "editable": true }, @@ -2362,7 +2364,7 @@ }, { "cell_type": "markdown", - "id": "1136c644", + "id": "b547af4b", "metadata": { "editable": true }, @@ -2372,7 +2374,7 @@ }, { "cell_type": "markdown", - "id": "b9f253ba", + "id": "e05ad1a5", "metadata": { "editable": true }, @@ -2384,7 +2386,7 @@ }, { "cell_type": "markdown", - "id": "14d41c44", + "id": "e841d792", "metadata": { "editable": true }, @@ -2400,7 +2402,7 @@ }, { "cell_type": "markdown", - "id": "d7c607f5", + "id": "7d0be7a7", "metadata": { "editable": true }, @@ -2412,7 +2414,7 @@ }, { "cell_type": "markdown", - "id": "609e28e0", + "id": "99d7e794", "metadata": { "editable": true }, @@ -2424,7 +2426,7 @@ }, { "cell_type": "markdown", - "id": "494580d5", + "id": "b5a9ccd1", "metadata": { "editable": true }, @@ -2434,7 +2436,7 @@ }, { "cell_type": "markdown", - "id": "03665a6f", + "id": "97e1f77a", "metadata": { "editable": true }, @@ -2446,7 +2448,7 @@ }, { "cell_type": "markdown", - "id": "911b5d2c", + "id": "129d6040", "metadata": { "editable": true }, @@ -2456,7 +2458,7 @@ }, { "cell_type": "markdown", - "id": "91e4f869", + "id": "cd905c05", "metadata": { "editable": true }, @@ -2472,7 +2474,7 @@ }, { "cell_type": "markdown", - "id": "43efdd27", + "id": "dc3ee985", "metadata": { "editable": true }, @@ -2484,7 +2486,7 @@ }, { "cell_type": "markdown", - "id": "25d99018", + "id": "6b21de52", "metadata": { "editable": true }, @@ -2496,7 +2498,7 @@ }, { "cell_type": "markdown", - "id": "6924f790", + "id": "04bef693", "metadata": { "editable": true }, @@ -2508,7 +2510,7 @@ }, { "cell_type": "markdown", - "id": "f457fe37", + "id": "6e9a9575", "metadata": { "editable": true }, @@ -2520,7 +2522,7 @@ }, { "cell_type": "markdown", - "id": "81e40678", + "id": "c65ff641", "metadata": { "editable": true }, @@ -2532,7 +2534,7 @@ }, { "cell_type": "markdown", - "id": "c954b1f9", + "id": "f67e1353", "metadata": { "editable": true }, @@ -2542,7 +2544,7 @@ }, { "cell_type": "markdown", - "id": "87d10fa3", + "id": "7476ad06", "metadata": { "editable": true }, @@ -2558,7 +2560,7 @@ }, { "cell_type": "markdown", - "id": "c20ef010", + "id": "520d8a90", "metadata": { "editable": true }, @@ -2570,7 +2572,7 @@ }, { "cell_type": "markdown", - "id": "e9de19ea", + "id": "d57d0f1d", "metadata": { "editable": true }, @@ -2582,7 +2584,7 @@ }, { "cell_type": "markdown", - "id": "3487e8b8", + "id": "97925a47", "metadata": { "editable": true }, @@ -2592,7 +2594,7 @@ }, { "cell_type": "markdown", - "id": "7baa62bc", + "id": "21bf2445", "metadata": { "editable": true }, @@ -2604,7 +2606,7 @@ }, { "cell_type": "markdown", - "id": "a3c1590a", + "id": "de7f0e7b", "metadata": { "editable": true }, @@ -2618,7 +2620,7 @@ }, { "cell_type": "markdown", - "id": "3c3dc625", + "id": "4060cfa4", "metadata": { "editable": true }, @@ -2636,7 +2638,7 @@ { "cell_type": "code", "execution_count": 6, - "id": "e9fb1fc9", + "id": "1248e89b", "metadata": { "collapsed": false, "editable": true @@ -2709,7 +2711,7 @@ }, { "cell_type": "markdown", - "id": "351debb8", + "id": "eabe6b42", "metadata": { "editable": true }, @@ -2719,7 +2721,7 @@ }, { "cell_type": "markdown", - "id": "c6579e36", + "id": "35974e2d", "metadata": { "editable": true }, @@ -2737,7 +2739,7 @@ }, { "cell_type": "markdown", - "id": "2c80a4b1", + "id": "eebf9d30", "metadata": { "editable": true }, @@ -2754,7 +2756,7 @@ }, { "cell_type": "markdown", - "id": "c834edc8", + "id": "2f079f0b", "metadata": { "editable": true }, @@ -2766,7 +2768,7 @@ }, { "cell_type": "markdown", - "id": "79bd199b", + "id": "50b799fe", "metadata": { "editable": true }, @@ -2776,7 +2778,7 @@ }, { "cell_type": "markdown", - "id": "0a856855", + "id": "9eeeddd7", "metadata": { "editable": true }, @@ -2788,7 +2790,7 @@ }, { "cell_type": "markdown", - "id": "54280198", + "id": "89d239c6", "metadata": { "editable": true }, @@ -2804,7 +2806,7 @@ }, { "cell_type": "markdown", - "id": "b2cee09c", + "id": "bdbf35b5", "metadata": { "editable": true }, @@ -2816,7 +2818,7 @@ }, { "cell_type": "markdown", - "id": "710131c9", + "id": "4e4ff5e9", "metadata": { "editable": true }, @@ -2828,7 +2830,7 @@ }, { "cell_type": "markdown", - "id": "cd8b54e5", + "id": "0d262c6f", "metadata": { "editable": true }, @@ -2839,7 +2841,7 @@ }, { "cell_type": "markdown", - "id": "8998ad11", + "id": "bc03ac5a", "metadata": { "editable": true }, @@ -2851,7 +2853,7 @@ }, { "cell_type": "markdown", - "id": "7d430cf7", + "id": "59f909e2", "metadata": { "editable": true }, @@ -2864,7 +2866,7 @@ }, { "cell_type": "markdown", - "id": "9b5a6c95", + "id": "7eb0a44d", "metadata": { "editable": true }, @@ -2876,7 +2878,7 @@ }, { "cell_type": "markdown", - "id": "31d044d8", + "id": "07d8d778", "metadata": { "editable": true }, @@ -2886,7 +2888,7 @@ }, { "cell_type": "markdown", - "id": "f5125cb7", + "id": "60368bf9", "metadata": { "editable": true }, @@ -2898,7 +2900,7 @@ }, { "cell_type": "markdown", - "id": "0eed1fab", + "id": "79853185", "metadata": { "editable": true }, @@ -2910,7 +2912,7 @@ }, { "cell_type": "markdown", - "id": "9a9811d2", + "id": "e84489fb", "metadata": { "editable": true }, @@ -2922,7 +2924,7 @@ }, { "cell_type": "markdown", - "id": "98bf5097", + "id": "10ac6ea6", "metadata": { "editable": true }, @@ -2932,7 +2934,7 @@ }, { "cell_type": "markdown", - "id": "e749c895", + "id": "4bb215d6", "metadata": { "editable": true }, @@ -2944,7 +2946,7 @@ }, { "cell_type": "markdown", - "id": "ea6692ce", + "id": "0389c02c", "metadata": { "editable": true }, @@ -2960,7 +2962,7 @@ }, { "cell_type": "markdown", - "id": "bf74eae4", + "id": "bd9a8665", "metadata": { "editable": true }, @@ -2972,7 +2974,7 @@ }, { "cell_type": "markdown", - "id": "d590dc50", + "id": "904eef6d", "metadata": { "editable": true }, @@ -2982,7 +2984,7 @@ }, { "cell_type": "markdown", - "id": "eb0b8e3c", + "id": "f422cd5d", "metadata": { "editable": true }, @@ -2994,7 +2996,7 @@ }, { "cell_type": "markdown", - "id": "7928cd11", + "id": "0827f570", "metadata": { "editable": true }, @@ -3004,7 +3006,7 @@ }, { "cell_type": "markdown", - "id": "8fc852e0", + "id": "0caae8eb", "metadata": { "editable": true }, @@ -3016,7 +3018,7 @@ }, { "cell_type": "markdown", - "id": "634713ba", + "id": "2f4011e7", "metadata": { "editable": true }, @@ -3028,7 +3030,7 @@ }, { "cell_type": "markdown", - "id": "0f6ca3e6", + "id": "4614eb63", "metadata": { "editable": true }, @@ -3041,7 +3043,7 @@ }, { "cell_type": "markdown", - "id": "3b54e63f", + "id": "954403b8", "metadata": { "editable": true }, @@ -3051,7 +3053,7 @@ }, { "cell_type": "markdown", - "id": "a69c61ff", + "id": "d0f5c05f", "metadata": { "editable": true }, @@ -3063,7 +3065,7 @@ }, { "cell_type": "markdown", - "id": "a73b8fe2", + "id": "ac8c2f66", "metadata": { "editable": true }, @@ -3073,7 +3075,7 @@ }, { "cell_type": "markdown", - "id": "093c845d", + "id": "9bcf7c0d", "metadata": { "editable": true }, @@ -3085,7 +3087,7 @@ }, { "cell_type": "markdown", - "id": "dcd12209", + "id": "4c2c5c00", "metadata": { "editable": true }, @@ -3096,7 +3098,7 @@ }, { "cell_type": "markdown", - "id": "5d5e8985", + "id": "eed00134", "metadata": { "editable": true }, @@ -3108,7 +3110,7 @@ }, { "cell_type": "markdown", - "id": "506f74bf", + "id": "21d53946", "metadata": { "editable": true }, @@ -3118,7 +3120,7 @@ }, { "cell_type": "markdown", - "id": "b474afaa", + "id": "4fbe8642", "metadata": { "editable": true }, @@ -3130,7 +3132,7 @@ }, { "cell_type": "markdown", - "id": "7d14d370", + "id": "2325e21d", "metadata": { "editable": true }, @@ -3140,7 +3142,7 @@ }, { "cell_type": "markdown", - "id": "ca679e05", + "id": "14edd073", "metadata": { "editable": true }, @@ -3152,7 +3154,7 @@ }, { "cell_type": "markdown", - "id": "251a03fd", + "id": "52bbf902", "metadata": { "editable": true }, @@ -3164,7 +3166,7 @@ }, { "cell_type": "markdown", - "id": "b7575ec0", + "id": "98a6ed3a", "metadata": { "editable": true }, @@ -3176,7 +3178,7 @@ }, { "cell_type": "markdown", - "id": "02453de3", + "id": "6ab03495", "metadata": { "editable": true }, @@ -3186,7 +3188,7 @@ }, { "cell_type": "markdown", - "id": "4e989854", + "id": "dcda9d7d", "metadata": { "editable": true }, @@ -3198,7 +3200,7 @@ }, { "cell_type": "markdown", - "id": "05a25565", + "id": "46ec3534", "metadata": { "editable": true }, @@ -3208,7 +3210,7 @@ }, { "cell_type": "markdown", - "id": "d9e571d7", + "id": "f10c20da", "metadata": { "editable": true }, @@ -3220,7 +3222,7 @@ }, { "cell_type": "markdown", - "id": "f96632e9", + "id": "c3c477be", "metadata": { "editable": true }, @@ -3232,7 +3234,7 @@ }, { "cell_type": "markdown", - "id": "e15002e0", + "id": "0c915c97", "metadata": { "editable": true }, @@ -3244,7 +3246,7 @@ }, { "cell_type": "markdown", - "id": "8c683755", + "id": "646d8351", "metadata": { "editable": true }, @@ -3254,7 +3256,7 @@ }, { "cell_type": "markdown", - "id": "da56a290", + "id": "4ce93a76", "metadata": { "editable": true }, @@ -3266,7 +3268,7 @@ }, { "cell_type": "markdown", - "id": "e42a9d6c", + "id": "ee7a38ed", "metadata": { "editable": true }, @@ -3276,7 +3278,7 @@ }, { "cell_type": "markdown", - "id": "21dd6563", + "id": "abdb541d", "metadata": { "editable": true }, @@ -3289,7 +3291,7 @@ }, { "cell_type": "markdown", - "id": "67fc0189", + "id": "410de8d4", "metadata": { "editable": true }, @@ -3301,7 +3303,7 @@ }, { "cell_type": "markdown", - "id": "daddd95e", + "id": "ca1d6736", "metadata": { "editable": true }, @@ -3311,7 +3313,7 @@ }, { "cell_type": "markdown", - "id": "5bf8af85", + "id": "d43c2266", "metadata": { "editable": true }, @@ -3323,7 +3325,7 @@ }, { "cell_type": "markdown", - "id": "5a72ea0a", + "id": "56457d52", "metadata": { "editable": true }, @@ -3333,7 +3335,7 @@ }, { "cell_type": "markdown", - "id": "edd32da2", + "id": "1ddc19f1", "metadata": { "editable": true }, @@ -3345,7 +3347,7 @@ }, { "cell_type": "markdown", - "id": "75c31af5", + "id": "de8c80cd", "metadata": { "editable": true }, @@ -3355,7 +3357,7 @@ }, { "cell_type": "markdown", - "id": "c037d92b", + "id": "db88453a", "metadata": { "editable": true }, @@ -3367,7 +3369,7 @@ }, { "cell_type": "markdown", - "id": "5937fd51", + "id": "f61958e4", "metadata": { "editable": true }, @@ -3377,7 +3379,7 @@ }, { "cell_type": "markdown", - "id": "3f0f6cd3", + "id": "7ef82615", "metadata": { "editable": true }, @@ -3389,7 +3391,7 @@ }, { "cell_type": "markdown", - "id": "057366c1", + "id": "f65323bf", "metadata": { "editable": true }, @@ -3401,7 +3403,7 @@ }, { "cell_type": "markdown", - "id": "293fa11b", + "id": "96734d00", "metadata": { "editable": true }, @@ -3411,7 +3413,7 @@ }, { "cell_type": "markdown", - "id": "d652c45d", + "id": "f776f53c", "metadata": { "editable": true }, @@ -3423,7 +3425,7 @@ }, { "cell_type": "markdown", - "id": "8ca9d167", + "id": "bbf2e007", "metadata": { "editable": true }, @@ -3436,7 +3438,7 @@ }, { "cell_type": "markdown", - "id": "8fed1e03", + "id": "9d6d0a32", "metadata": { "editable": true }, @@ -3450,7 +3452,7 @@ }, { "cell_type": "markdown", - "id": "6394a2a5", + "id": "6720dd98", "metadata": { "editable": true }, @@ -3462,7 +3464,7 @@ }, { "cell_type": "markdown", - "id": "c2e22893", + "id": "759eb99f", "metadata": { "editable": true }, @@ -3472,7 +3474,7 @@ }, { "cell_type": "markdown", - "id": "5e054d69", + "id": "294cc167", "metadata": { "editable": true }, @@ -3484,7 +3486,7 @@ }, { "cell_type": "markdown", - "id": "dd5f9a8d", + "id": "3311576a", "metadata": { "editable": true }, @@ -3494,7 +3496,7 @@ }, { "cell_type": "markdown", - "id": "ff6e8f86", + "id": "892ab641", "metadata": { "editable": true }, @@ -3506,7 +3508,7 @@ }, { "cell_type": "markdown", - "id": "6e186667", + "id": "e126a949", "metadata": { "editable": true }, @@ -3524,7 +3526,7 @@ }, { "cell_type": "markdown", - "id": "0e0a514f", + "id": "0640b440", "metadata": { "editable": true }, @@ -3542,7 +3544,7 @@ }, { "cell_type": "markdown", - "id": "e8259ee9", + "id": "780544e8", "metadata": { "editable": true }, @@ -3554,7 +3556,7 @@ }, { "cell_type": "markdown", - "id": "3c817881", + "id": "5ed8c781", "metadata": { "editable": true }, @@ -3564,7 +3566,7 @@ }, { "cell_type": "markdown", - "id": "0f3e5b1c", + "id": "9a9568a1", "metadata": { "editable": true }, @@ -3576,7 +3578,7 @@ }, { "cell_type": "markdown", - "id": "4e14ef60", + "id": "29ac7458", "metadata": { "editable": true }, @@ -3588,7 +3590,7 @@ }, { "cell_type": "markdown", - "id": "886fbebf", + "id": "693c53ac", "metadata": { "editable": true }, @@ -3600,7 +3602,7 @@ }, { "cell_type": "markdown", - "id": "16d62157", + "id": "650e4dea", "metadata": { "editable": true }, @@ -3610,7 +3612,7 @@ }, { "cell_type": "markdown", - "id": "4a81d6b5", + "id": "4fbf17cf", "metadata": { "editable": true }, @@ -3622,7 +3624,7 @@ }, { "cell_type": "markdown", - "id": "0bcee50c", + "id": "a7869a22", "metadata": { "editable": true }, @@ -3632,7 +3634,7 @@ }, { "cell_type": "markdown", - "id": "0ed7f7a0", + "id": "cfd6c9d7", "metadata": { "editable": true }, @@ -3644,7 +3646,7 @@ }, { "cell_type": "markdown", - "id": "a502b908", + "id": "73360f7e", "metadata": { "editable": true }, @@ -3662,7 +3664,7 @@ }, { "cell_type": "markdown", - "id": "fa4de05b", + "id": "2685bc86", "metadata": { "editable": true }, @@ -3672,7 +3674,7 @@ }, { "cell_type": "markdown", - "id": "cea42eaf", + "id": "ff174cf5", "metadata": { "editable": true }, @@ -3690,7 +3692,7 @@ }, { "cell_type": "markdown", - "id": "d04fa6e6", + "id": "1c97902a", "metadata": { "editable": true }, @@ -3700,7 +3702,7 @@ }, { "cell_type": "markdown", - "id": "8716ad2e", + "id": "d70e9292", "metadata": { "editable": true }, @@ -3718,7 +3720,7 @@ }, { "cell_type": "markdown", - "id": "f64753b2", + "id": "ffcecfbe", "metadata": { "editable": true }, @@ -3730,7 +3732,7 @@ }, { "cell_type": "markdown", - "id": "4ad6d6d3", + "id": "e49c2a4e", "metadata": { "editable": true }, @@ -3742,7 +3744,7 @@ }, { "cell_type": "markdown", - "id": "a8d42ee3", + "id": "4c706310", "metadata": { "editable": true }, @@ -3752,7 +3754,7 @@ }, { "cell_type": "markdown", - "id": "0628c4b8", + "id": "301cfb1f", "metadata": { "editable": true }, @@ -3764,7 +3766,7 @@ }, { "cell_type": "markdown", - "id": "0868f3d3", + "id": "5dc4f3ba", "metadata": { "editable": true }, @@ -3776,7 +3778,7 @@ }, { "cell_type": "markdown", - "id": "89190c24", + "id": "3dfdac72", "metadata": { "editable": true }, @@ -3786,7 +3788,7 @@ }, { "cell_type": "markdown", - "id": "96af414a", + "id": "c04afa91", "metadata": { "editable": true }, @@ -3798,7 +3800,7 @@ }, { "cell_type": "markdown", - "id": "fe790abf", + "id": "b7a22173", "metadata": { "editable": true }, @@ -3808,7 +3810,7 @@ }, { "cell_type": "markdown", - "id": "ece1f6fe", + "id": "fa9ff041", "metadata": { "editable": true }, @@ -3820,7 +3822,7 @@ }, { "cell_type": "markdown", - "id": "9cafdde6", + "id": "a1648ab9", "metadata": { "editable": true }, @@ -3832,7 +3834,7 @@ }, { "cell_type": "markdown", - "id": "0766f482", + "id": "24569ace", "metadata": { "editable": true }, @@ -3855,7 +3857,7 @@ }, { "cell_type": "markdown", - "id": "e29ae382", + "id": "478d8aec", "metadata": { "editable": true }, @@ -3867,7 +3869,7 @@ }, { "cell_type": "markdown", - "id": "518b6578", + "id": "a17614e1", "metadata": { "editable": true }, @@ -3879,7 +3881,7 @@ }, { "cell_type": "markdown", - "id": "4f804851", + "id": "2bc63b98", "metadata": { "editable": true }, @@ -3889,7 +3891,7 @@ }, { "cell_type": "markdown", - "id": "359aae81", + "id": "060a6a00", "metadata": { "editable": true }, @@ -3901,7 +3903,7 @@ }, { "cell_type": "markdown", - "id": "70123228", + "id": "f73677e1", "metadata": { "editable": true }, @@ -3915,7 +3917,7 @@ }, { "cell_type": "markdown", - "id": "2df5a3de", + "id": "b0faa8a5", "metadata": { "editable": true }, @@ -3927,7 +3929,7 @@ }, { "cell_type": "markdown", - "id": "8081e4e4", + "id": "4f0820e6", "metadata": { "editable": true }, @@ -3939,7 +3941,7 @@ }, { "cell_type": "markdown", - "id": "3c40603c", + "id": "72ac45e2", "metadata": { "editable": true }, @@ -3949,7 +3951,7 @@ }, { "cell_type": "markdown", - "id": "26de0b47", + "id": "53cbf551", "metadata": { "editable": true }, @@ -3961,7 +3963,7 @@ }, { "cell_type": "markdown", - "id": "a172a64a", + "id": "8a9433ea", "metadata": { "editable": true }, @@ -3973,7 +3975,7 @@ }, { "cell_type": "markdown", - "id": "dfd6fc88", + "id": "07c92792", "metadata": { "editable": true }, @@ -3983,7 +3985,7 @@ }, { "cell_type": "markdown", - "id": "a7df4398", + "id": "efa48fd7", "metadata": { "editable": true }, @@ -3995,7 +3997,7 @@ }, { "cell_type": "markdown", - "id": "cfd24fc1", + "id": "6c4db201", "metadata": { "editable": true }, @@ -4007,7 +4009,7 @@ }, { "cell_type": "markdown", - "id": "869c3364", + "id": "19ae4f4e", "metadata": { "editable": true }, @@ -4030,7 +4032,7 @@ }, { "cell_type": "markdown", - "id": "91102a3c", + "id": "c478ce3c", "metadata": { "editable": true }, @@ -4049,7 +4051,7 @@ }, { "cell_type": "markdown", - "id": "9609f422", + "id": "5142ca2b", "metadata": { "editable": true }, @@ -4061,7 +4063,7 @@ }, { "cell_type": "markdown", - "id": "cdd8d562", + "id": "9c4a44fb", "metadata": { "editable": true }, @@ -4071,7 +4073,7 @@ }, { "cell_type": "markdown", - "id": "118a47f2", + "id": "74fded03", "metadata": { "editable": true }, @@ -4083,7 +4085,7 @@ }, { "cell_type": "markdown", - "id": "5d6387b5", + "id": "fefab641", "metadata": { "editable": true }, @@ -4100,7 +4102,7 @@ { "cell_type": "code", "execution_count": 7, - "id": "33449cca", + "id": "56c89538", "metadata": { "collapsed": false, "editable": true @@ -4182,7 +4184,7 @@ }, { "cell_type": "markdown", - "id": "e8fafa8a", + "id": "21bdb71c", "metadata": { "editable": true }, @@ -4211,7 +4213,7 @@ }, { "cell_type": "markdown", - "id": "00965f5d", + "id": "82072ebe", "metadata": { "editable": true }, @@ -4237,7 +4239,7 @@ }, { "cell_type": "markdown", - "id": "d90316a8", + "id": "8bfa5b96", "metadata": { "editable": true }, @@ -4259,7 +4261,7 @@ }, { "cell_type": "markdown", - "id": "441fe8d9", + "id": "a52a67bd", "metadata": { "editable": true }, @@ -4277,7 +4279,7 @@ }, { "cell_type": "markdown", - "id": "ae55ad1c", + "id": "052308cd", "metadata": { "editable": true }, @@ -4300,7 +4302,7 @@ }, { "cell_type": "markdown", - "id": "96bbf798", + "id": "2c943852", "metadata": { "editable": true }, @@ -4319,7 +4321,7 @@ }, { "cell_type": "markdown", - "id": "4b03e108", + "id": "09e98546", "metadata": { "editable": true }, @@ -4347,7 +4349,7 @@ }, { "cell_type": "markdown", - "id": "2898691d", + "id": "89458b0d", "metadata": { "editable": true }, @@ -4367,7 +4369,7 @@ }, { "cell_type": "markdown", - "id": "4ac964f3", + "id": "bb787cf2", "metadata": { "editable": true }, @@ -4388,7 +4390,7 @@ }, { "cell_type": "markdown", - "id": "c18a90e1", + "id": "8d6d8c18", "metadata": { "editable": true }, @@ -4402,7 +4404,7 @@ }, { "cell_type": "markdown", - "id": "eed9db84", + "id": "52c4e6b6", "metadata": { "editable": true }, @@ -4414,7 +4416,7 @@ }, { "cell_type": "markdown", - "id": "b375c182", + "id": "d0dad2c7", "metadata": { "editable": true }, @@ -4436,7 +4438,7 @@ }, { "cell_type": "markdown", - "id": "edb42800", + "id": "31d1148a", "metadata": { "editable": true }, @@ -4458,7 +4460,7 @@ }, { "cell_type": "markdown", - "id": "1a8fafc0", + "id": "d6d621a7", "metadata": { "editable": true }, @@ -4484,7 +4486,7 @@ }, { "cell_type": "markdown", - "id": "feef1d4d", + "id": "379983d5", "metadata": { "editable": true }, @@ -4504,7 +4506,7 @@ }, { "cell_type": "markdown", - "id": "9428c225", + "id": "b769aa51", "metadata": { "editable": true }, @@ -4524,7 +4526,7 @@ }, { "cell_type": "markdown", - "id": "504b21ae", + "id": "abeef409", "metadata": { "editable": true }, @@ -4550,7 +4552,7 @@ }, { "cell_type": "markdown", - "id": "c51837a9", + "id": "75165741", "metadata": { "editable": true }, @@ -4579,7 +4581,7 @@ }, { "cell_type": "markdown", - "id": "a7357657", + "id": "14f22927", "metadata": { "editable": true }, @@ -4597,7 +4599,7 @@ }, { "cell_type": "markdown", - "id": "e92c8a84", + "id": "f5ad6d66", "metadata": { "editable": true }, @@ -4613,7 +4615,7 @@ }, { "cell_type": "markdown", - "id": "793aee7d", + "id": "82f3c1c1", "metadata": { "editable": true }, @@ -4625,7 +4627,7 @@ }, { "cell_type": "markdown", - "id": "739960d6", + "id": "01fba9a0", "metadata": { "editable": true }, diff --git a/doc/src/week41/_minted-week41/8F742E4CFCF99BA69821AA2655DBFD5ABBBAD84E10F49A5F4278A7252110B6CA.pygtex b/doc/src/week41/_minted-week41/8F742E4CFCF99BA69821AA2655DBFD5ABBBAD84E10F49A5F4278A7252110B6CA.pygtex deleted file mode 100644 index 091dde585..000000000 --- a/doc/src/week41/_minted-week41/8F742E4CFCF99BA69821AA2655DBFD5ABBBAD84E10F49A5F4278A7252110B6CA.pygtex +++ /dev/null @@ -1,52 +0,0 @@ -\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}} -\PYG{l+s+sd}{Simple code that tests XOR and OR gates with linear regression} -\PYG{l+s+sd}{and logistic regression} -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}} - -\PYG{k+kn}{import} \PYG{n+nn}{matplotlib.pyplot} \PYG{k}{as} \PYG{n+nn}{plt} -\PYG{k+kn}{from} \PYG{n+nn}{sklearn.linear\PYGZus{}model} \PYG{k+kn}{import} \PYG{n}{LogisticRegression} -\PYG{k+kn}{import} \PYG{n+nn}{numpy} \PYG{k}{as} \PYG{n+nn}{np} - -\PYG{c+c1}{\PYGZsh{} Design matrix} -\PYG{n}{X} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{([} \PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{],} \PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{],} \PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{],[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]],}\PYG{n}{dtype}\PYG{o}{=}\PYG{n}{np}\PYG{o}{.}\PYG{n}{float64}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The X.TX matrix:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{o}{.}\PYG{n}{T}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{X}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n}{Xinv} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{linalg}\PYG{o}{.}\PYG{n}{pinv}\PYG{p}{(}\PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{X}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The invers of X.TX matrix:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{Xinv}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - -\PYG{c+c1}{\PYGZsh{} The XOR gate} -\PYG{n}{yXOR} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(} \PYG{p}{[} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1} \PYG{p}{,}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{])} -\PYG{n}{ThetaXOR} \PYG{o}{=} \PYG{n}{Xinv} \PYG{o}{@} \PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{yXOR} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The values of theta for the XOR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{ThetaXOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The linear regression prediction for the XOR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{ThetaXOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - - -\PYG{c+c1}{\PYGZsh{} The OR gate} -\PYG{n}{yOR} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(} \PYG{p}{[} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1} \PYG{p}{,}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{])} -\PYG{n}{ThetaOR} \PYG{o}{=} \PYG{n}{Xinv} \PYG{o}{@} \PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{yOR} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The values of theta for the OR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{ThetaOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The linear regression prediction for the OR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{ThetaOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - - -\PYG{c+c1}{\PYGZsh{} The OR gate} -\PYG{n}{yAND} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(} \PYG{p}{[} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{0} \PYG{p}{,}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{])} -\PYG{n}{ThetaAND} \PYG{o}{=} \PYG{n}{Xinv} \PYG{o}{@} \PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{yAND} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The values of theta for the AND gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{ThetaAND}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The linear regression prediction for the AND gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{ThetaAND}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - -\PYG{c+c1}{\PYGZsh{} Now we change to logistic regression} - - -\PYG{c+c1}{\PYGZsh{} Logistic Regression} -\PYG{n}{logreg} \PYG{o}{=} \PYG{n}{LogisticRegression}\PYG{p}{()} -\PYG{n}{logreg}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,} \PYG{n}{yOR}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}Test set accuracy with Logistic Regression for OR gate: }\PYG{l+s+si}{\PYGZob{}:.2f\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{o}{.}\PYG{n}{format}\PYG{p}{(}\PYG{n}{logreg}\PYG{o}{.}\PYG{n}{score}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,}\PYG{n}{yOR}\PYG{p}{)))} - -\PYG{n}{logreg}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,} \PYG{n}{yXOR}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}Test set accuracy with Logistic Regression for XOR gate: }\PYG{l+s+si}{\PYGZob{}:.2f\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{o}{.}\PYG{n}{format}\PYG{p}{(}\PYG{n}{logreg}\PYG{o}{.}\PYG{n}{score}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,}\PYG{n}{yXOR}\PYG{p}{)))} - - -\PYG{n}{logreg}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,} \PYG{n}{yAND}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+s2}{\PYGZdq{}Test set accuracy with Logistic Regression for AND gate: }\PYG{l+s+si}{\PYGZob{}:.2f\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{o}{.}\PYG{n}{format}\PYG{p}{(}\PYG{n}{logreg}\PYG{o}{.}\PYG{n}{score}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,}\PYG{n}{yAND}\PYG{p}{)))} - -\end{Verbatim} diff --git a/doc/src/week41/_minted-week41/8FDA801D9EBD40558C744590672A037CBBBAD84E10F49A5F4278A7252110B6CA.pygtex b/doc/src/week41/_minted-week41/8FDA801D9EBD40558C744590672A037CBBBAD84E10F49A5F4278A7252110B6CA.pygtex deleted file mode 100644 index d913b9f53..000000000 --- a/doc/src/week41/_minted-week41/8FDA801D9EBD40558C744590672A037CBBBAD84E10F49A5F4278A7252110B6CA.pygtex +++ /dev/null @@ -1,11 +0,0 @@ -\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] -\PYG{k+kn}{from} \PYG{n+nn}{\PYGZus{}\PYGZus{}future\PYGZus{}\PYGZus{}} \PYG{k+kn}{import} \PYG{n}{division} -\PYG{k+kn}{from} \PYG{n+nn}{sympy} \PYG{k+kn}{import} \PYG{o}{*} -\PYG{n}{x} \PYG{o}{=} \PYG{n}{symbols}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}x\PYGZsq{}}\PYG{p}{)} -\PYG{n}{expr} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{exp}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{p}{))} -\PYG{n}{simplify}\PYG{p}{(}\PYG{n}{expr}\PYG{p}{)} -\PYG{n}{derivative} \PYG{o}{=} \PYG{n}{diff}\PYG{p}{(}\PYG{n}{expr}\PYG{p}{,}\PYG{n}{x}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{n}{python}\PYG{p}{(}\PYG{n}{expr}\PYG{p}{))} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{n}{python}\PYG{p}{(}\PYG{n}{derivative}\PYG{p}{))} - -\end{Verbatim} diff --git a/doc/src/week41/_minted-week41/91DA298044DB0DCD8186DE2877A3BBC1BBBAD84E10F49A5F4278A7252110B6CA.pygtex b/doc/src/week41/_minted-week41/91DA298044DB0DCD8186DE2877A3BBC1BBBAD84E10F49A5F4278A7252110B6CA.pygtex deleted file mode 100644 index 476d259fb..000000000 --- a/doc/src/week41/_minted-week41/91DA298044DB0DCD8186DE2877A3BBC1BBBAD84E10F49A5F4278A7252110B6CA.pygtex +++ /dev/null @@ -1,74 +0,0 @@ -\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}The sigmoid function (or the logistic curve) is a} -\PYG{l+s+sd}{function that takes any real number, z, and outputs a number (0,1).} -\PYG{l+s+sd}{It is useful in neural networks for assigning weights on a relative scale.} -\PYG{l+s+sd}{The value z is the weighted sum of parameters involved in the learning algorithm.\PYGZdq{}\PYGZdq{}\PYGZdq{}} - -\PYG{k+kn}{import} \PYG{n+nn}{numpy} -\PYG{k+kn}{import} \PYG{n+nn}{matplotlib.pyplot} \PYG{k}{as} \PYG{n+nn}{plt} -\PYG{k+kn}{import} \PYG{n+nn}{math} \PYG{k}{as} \PYG{n+nn}{mt} - -\PYG{n}{z} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{arange}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{5}\PYG{p}{,} \PYG{l+m+mi}{5}\PYG{p}{,} \PYG{l+m+mf}{.1}\PYG{p}{)} -\PYG{n}{sigma\PYGZus{}fn} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{vectorize}\PYG{p}{(}\PYG{k}{lambda} \PYG{n}{z}\PYG{p}{:} \PYG{l+m+mi}{1}\PYG{o}{/}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{+}\PYG{n}{numpy}\PYG{o}{.}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{n}{z}\PYG{p}{)))} -\PYG{n}{sigma} \PYG{o}{=} \PYG{n}{sigma\PYGZus{}fn}\PYG{p}{(}\PYG{n}{z}\PYG{p}{)} - -\PYG{n}{fig} \PYG{o}{=} \PYG{n}{plt}\PYG{o}{.}\PYG{n}{figure}\PYG{p}{()} -\PYG{n}{ax} \PYG{o}{=} \PYG{n}{fig}\PYG{o}{.}\PYG{n}{add\PYGZus{}subplot}\PYG{p}{(}\PYG{l+m+mi}{111}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{z}\PYG{p}{,} \PYG{n}{sigma}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}ylim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.1}\PYG{p}{,} \PYG{l+m+mf}{1.1}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{5}\PYG{p}{,}\PYG{l+m+mi}{5}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{grid}\PYG{p}{(}\PYG{k+kc}{True}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlabel}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}z\PYGZsq{}}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}title}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}sigmoid function\PYGZsq{}}\PYG{p}{)} - -\PYG{n}{plt}\PYG{o}{.}\PYG{n}{show}\PYG{p}{()} - -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}Step Function\PYGZdq{}\PYGZdq{}\PYGZdq{}} -\PYG{n}{z} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{arange}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{5}\PYG{p}{,} \PYG{l+m+mi}{5}\PYG{p}{,} \PYG{l+m+mf}{.02}\PYG{p}{)} -\PYG{n}{step\PYGZus{}fn} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{vectorize}\PYG{p}{(}\PYG{k}{lambda} \PYG{n}{z}\PYG{p}{:} \PYG{l+m+mf}{1.0} \PYG{k}{if} \PYG{n}{z} \PYG{o}{\PYGZgt{}=} \PYG{l+m+mf}{0.0} \PYG{k}{else} \PYG{l+m+mf}{0.0}\PYG{p}{)} -\PYG{n}{step} \PYG{o}{=} \PYG{n}{step\PYGZus{}fn}\PYG{p}{(}\PYG{n}{z}\PYG{p}{)} - -\PYG{n}{fig} \PYG{o}{=} \PYG{n}{plt}\PYG{o}{.}\PYG{n}{figure}\PYG{p}{()} -\PYG{n}{ax} \PYG{o}{=} \PYG{n}{fig}\PYG{o}{.}\PYG{n}{add\PYGZus{}subplot}\PYG{p}{(}\PYG{l+m+mi}{111}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{z}\PYG{p}{,} \PYG{n}{step}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}ylim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{p}{,} \PYG{l+m+mf}{1.5}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{5}\PYG{p}{,}\PYG{l+m+mi}{5}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{grid}\PYG{p}{(}\PYG{k+kc}{True}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlabel}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}z\PYGZsq{}}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}title}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}step function\PYGZsq{}}\PYG{p}{)} - -\PYG{n}{plt}\PYG{o}{.}\PYG{n}{show}\PYG{p}{()} - -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}Sine Function\PYGZdq{}\PYGZdq{}\PYGZdq{}} -\PYG{n}{z} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{arange}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{mt}\PYG{o}{.}\PYG{n}{pi}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{mt}\PYG{o}{.}\PYG{n}{pi}\PYG{p}{,} \PYG{l+m+mf}{0.1}\PYG{p}{)} -\PYG{n}{t} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{sin}\PYG{p}{(}\PYG{n}{z}\PYG{p}{)} - -\PYG{n}{fig} \PYG{o}{=} \PYG{n}{plt}\PYG{o}{.}\PYG{n}{figure}\PYG{p}{()} -\PYG{n}{ax} \PYG{o}{=} \PYG{n}{fig}\PYG{o}{.}\PYG{n}{add\PYGZus{}subplot}\PYG{p}{(}\PYG{l+m+mi}{111}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{z}\PYG{p}{,} \PYG{n}{t}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}ylim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{1.0}\PYG{p}{,} \PYG{l+m+mf}{1.0}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{mt}\PYG{o}{.}\PYG{n}{pi}\PYG{p}{,}\PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{mt}\PYG{o}{.}\PYG{n}{pi}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{grid}\PYG{p}{(}\PYG{k+kc}{True}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlabel}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}z\PYGZsq{}}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}title}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}sine function\PYGZsq{}}\PYG{p}{)} - -\PYG{n}{plt}\PYG{o}{.}\PYG{n}{show}\PYG{p}{()} - -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}Plots a graph of the squashing function used by a rectified linear} -\PYG{l+s+sd}{unit\PYGZdq{}\PYGZdq{}\PYGZdq{}} -\PYG{n}{z} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{arange}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{2}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{p}{,} \PYG{l+m+mf}{.1}\PYG{p}{)} -\PYG{n}{zero} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{zeros}\PYG{p}{(}\PYG{n+nb}{len}\PYG{p}{(}\PYG{n}{z}\PYG{p}{))} -\PYG{n}{y} \PYG{o}{=} \PYG{n}{numpy}\PYG{o}{.}\PYG{n}{max}\PYG{p}{([}\PYG{n}{zero}\PYG{p}{,} \PYG{n}{z}\PYG{p}{],} \PYG{n}{axis}\PYG{o}{=}\PYG{l+m+mi}{0}\PYG{p}{)} - -\PYG{n}{fig} \PYG{o}{=} \PYG{n}{plt}\PYG{o}{.}\PYG{n}{figure}\PYG{p}{()} -\PYG{n}{ax} \PYG{o}{=} \PYG{n}{fig}\PYG{o}{.}\PYG{n}{add\PYGZus{}subplot}\PYG{p}{(}\PYG{l+m+mi}{111}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{plot}\PYG{p}{(}\PYG{n}{z}\PYG{p}{,} \PYG{n}{y}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}ylim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{2.0}\PYG{p}{,} \PYG{l+m+mf}{2.0}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlim}\PYG{p}{([}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{2.0}\PYG{p}{,} \PYG{l+m+mf}{2.0}\PYG{p}{])} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{grid}\PYG{p}{(}\PYG{k+kc}{True}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}xlabel}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}z\PYGZsq{}}\PYG{p}{)} -\PYG{n}{ax}\PYG{o}{.}\PYG{n}{set\PYGZus{}title}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}Rectified linear unit\PYGZsq{}}\PYG{p}{)} - -\PYG{n}{plt}\PYG{o}{.}\PYG{n}{show}\PYG{p}{()} - -\end{Verbatim} diff --git a/doc/src/week41/_minted-week41/A94A396A1D27720ED5CDB1E3A9707FD7BBBAD84E10F49A5F4278A7252110B6CA.pygtex b/doc/src/week41/_minted-week41/A94A396A1D27720ED5CDB1E3A9707FD7BBBAD84E10F49A5F4278A7252110B6CA.pygtex deleted file mode 100644 index 7b771c08b..000000000 --- a/doc/src/week41/_minted-week41/A94A396A1D27720ED5CDB1E3A9707FD7BBBAD84E10F49A5F4278A7252110B6CA.pygtex +++ /dev/null @@ -1,33 +0,0 @@ -\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}} -\PYG{l+s+sd}{Simple code that tests XOR, OR and AND gates with linear regression} -\PYG{l+s+sd}{\PYGZdq{}\PYGZdq{}\PYGZdq{}} - -\PYG{k+kn}{import} \PYG{n+nn}{numpy} \PYG{k}{as} \PYG{n+nn}{np} -\PYG{c+c1}{\PYGZsh{} Design matrix} -\PYG{n}{X} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{([} \PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{],} \PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{],} \PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{],[}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{]],}\PYG{n}{dtype}\PYG{o}{=}\PYG{n}{np}\PYG{o}{.}\PYG{n}{float64}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The X.TX matrix:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{o}{.}\PYG{n}{T}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{X}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n}{Xinv} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{linalg}\PYG{o}{.}\PYG{n}{pinv}\PYG{p}{(}\PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{X}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The invers of X.TX matrix:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{Xinv}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - -\PYG{c+c1}{\PYGZsh{} The XOR gate} -\PYG{n}{yXOR} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(} \PYG{p}{[} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1} \PYG{p}{,}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{])} -\PYG{n}{ThetaXOR} \PYG{o}{=} \PYG{n}{Xinv} \PYG{o}{@} \PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{yXOR} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The values of theta for the XOR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{ThetaXOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The linear regression prediction for the XOR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{ThetaXOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - - -\PYG{c+c1}{\PYGZsh{} The OR gate} -\PYG{n}{yOR} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(} \PYG{p}{[} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1} \PYG{p}{,}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{])} -\PYG{n}{ThetaOR} \PYG{o}{=} \PYG{n}{Xinv} \PYG{o}{@} \PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{yOR} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The values of theta for the OR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{ThetaOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The linear regression prediction for the OR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{ThetaOR}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - - -\PYG{c+c1}{\PYGZsh{} The OR gate} -\PYG{n}{yAND} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{(} \PYG{p}{[} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{0} \PYG{p}{,}\PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{])} -\PYG{n}{ThetaAND} \PYG{o}{=} \PYG{n}{Xinv} \PYG{o}{@} \PYG{n}{X}\PYG{o}{.}\PYG{n}{T} \PYG{o}{@} \PYG{n}{yAND} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The values of theta for the AND gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{ThetaAND}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}The linear regression prediction for the AND gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{X}\PYG{+w}{ }\PYG{o}{@}\PYG{+w}{ }\PYG{n}{ThetaAND}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - -\end{Verbatim} diff --git a/doc/src/week41/_minted-week41/FAB7E87618A8A8AABAD77C666F19DDCDBBBAD84E10F49A5F4278A7252110B6CA.pygtex b/doc/src/week41/_minted-week41/FAB7E87618A8A8AABAD77C666F19DDCDBBBAD84E10F49A5F4278A7252110B6CA.pygtex deleted file mode 100644 index dad239c12..000000000 --- a/doc/src/week41/_minted-week41/FAB7E87618A8A8AABAD77C666F19DDCDBBBAD84E10F49A5F4278A7252110B6CA.pygtex +++ /dev/null @@ -1,13 +0,0 @@ -\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] - -\PYG{c+c1}{\PYGZsh{} and now neural networks with Scikit\PYGZhy{}Learn and the XOR} - -\PYG{k+kn}{from} \PYG{n+nn}{sklearn.neural\PYGZus{}network} \PYG{k+kn}{import} \PYG{n}{MLPClassifier} -\PYG{k+kn}{from} \PYG{n+nn}{sklearn.datasets} \PYG{k+kn}{import} \PYG{n}{make\PYGZus{}classification} -\PYG{n}{X}\PYG{p}{,} \PYG{n}{yXOR} \PYG{o}{=} \PYG{n}{make\PYGZus{}classification}\PYG{p}{(}\PYG{n}{n\PYGZus{}samples}\PYG{o}{=}\PYG{l+m+mi}{100}\PYG{p}{,} \PYG{n}{random\PYGZus{}state}\PYG{o}{=}\PYG{l+m+mi}{1}\PYG{p}{)} -\PYG{n}{FFNN} \PYG{o}{=} \PYG{n}{MLPClassifier}\PYG{p}{(}\PYG{n}{random\PYGZus{}state}\PYG{o}{=}\PYG{l+m+mi}{1}\PYG{p}{,} \PYG{n}{max\PYGZus{}iter}\PYG{o}{=}\PYG{l+m+mi}{300}\PYG{p}{)}\PYG{o}{.}\PYG{n}{fit}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,} \PYG{n}{yXOR}\PYG{p}{)} -\PYG{n}{FFNN}\PYG{o}{.}\PYG{n}{predict\PYGZus{}proba}\PYG{p}{(}\PYG{n}{X}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{l+s+sa}{f}\PYG{l+s+s2}{\PYGZdq{}Test set accuracy with Feed Forward Neural Network for XOR gate:}\PYG{l+s+si}{\PYGZob{}}\PYG{n}{FFNN}\PYG{o}{.}\PYG{n}{score}\PYG{p}{(}\PYG{n}{X}\PYG{p}{,}\PYG{+w}{ }\PYG{n}{yXOR}\PYG{p}{)}\PYG{l+s+si}{\PYGZcb{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)} - - -\end{Verbatim} diff --git a/doc/src/week41/_minted-week41/FD9F88E66D9E5A715D98B8D276C06052BBBAD84E10F49A5F4278A7252110B6CA.pygtex b/doc/src/week41/_minted-week41/FD9F88E66D9E5A715D98B8D276C06052BBBAD84E10F49A5F4278A7252110B6CA.pygtex deleted file mode 100644 index d6b07fb6b..000000000 --- a/doc/src/week41/_minted-week41/FD9F88E66D9E5A715D98B8D276C06052BBBAD84E10F49A5F4278A7252110B6CA.pygtex +++ /dev/null @@ -1,67 +0,0 @@ -\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] -\PYG{k+kn}{import} \PYG{n+nn}{numpy} \PYG{k}{as} \PYG{n+nn}{np} -\PYG{c+c1}{\PYGZsh{} We use the Sigmoid function as activation function} -\PYG{k}{def} \PYG{n+nf}{sigmoid}\PYG{p}{(}\PYG{n}{z}\PYG{p}{):} - \PYG{k}{return} \PYG{l+m+mf}{1.0}\PYG{o}{/}\PYG{p}{(}\PYG{l+m+mf}{1.0}\PYG{o}{+}\PYG{n}{np}\PYG{o}{.}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{n}{z}\PYG{p}{))} - -\PYG{k}{def} \PYG{n+nf}{forwardpropagation}\PYG{p}{(}\PYG{n}{x}\PYG{p}{):} - \PYG{c+c1}{\PYGZsh{} weighted sum of inputs to the hidden layer} - \PYG{n}{z\PYGZus{}1} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{matmul}\PYG{p}{(}\PYG{n}{x}\PYG{p}{,} \PYG{n}{w\PYGZus{}1}\PYG{p}{)} \PYG{o}{+} \PYG{n}{b\PYGZus{}1} - \PYG{c+c1}{\PYGZsh{} activation in the hidden layer} - \PYG{n}{a\PYGZus{}1} \PYG{o}{=} \PYG{n}{sigmoid}\PYG{p}{(}\PYG{n}{z\PYGZus{}1}\PYG{p}{)} - \PYG{c+c1}{\PYGZsh{} weighted sum of inputs to the output layer} - \PYG{n}{z\PYGZus{}2} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{matmul}\PYG{p}{(}\PYG{n}{a\PYGZus{}1}\PYG{p}{,} \PYG{n}{w\PYGZus{}2}\PYG{p}{)} \PYG{o}{+} \PYG{n}{b\PYGZus{}2} - \PYG{n}{a\PYGZus{}2} \PYG{o}{=} \PYG{n}{z\PYGZus{}2} - \PYG{k}{return} \PYG{n}{a\PYGZus{}1}\PYG{p}{,} \PYG{n}{a\PYGZus{}2} - -\PYG{k}{def} \PYG{n+nf}{backpropagation}\PYG{p}{(}\PYG{n}{x}\PYG{p}{,} \PYG{n}{y}\PYG{p}{):} - \PYG{n}{a\PYGZus{}1}\PYG{p}{,} \PYG{n}{a\PYGZus{}2} \PYG{o}{=} \PYG{n}{forwardpropagation}\PYG{p}{(}\PYG{n}{x}\PYG{p}{)} - \PYG{c+c1}{\PYGZsh{} parameter delta for the output layer, note that a\PYGZus{}2=z\PYGZus{}2 and its derivative wrt z\PYGZus{}2 is just 1} - \PYG{n}{delta\PYGZus{}2} \PYG{o}{=} \PYG{n}{a\PYGZus{}2} \PYG{o}{\PYGZhy{}} \PYG{n}{y} - \PYG{n+nb}{print}\PYG{p}{(}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{p}{((}\PYG{n}{a\PYGZus{}2}\PYG{o}{\PYGZhy{}}\PYG{n}{y}\PYG{p}{)}\PYG{o}{**}\PYG{l+m+mi}{2}\PYG{p}{))} - \PYG{c+c1}{\PYGZsh{} delta for the hidden layer} - \PYG{n}{delta\PYGZus{}1} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{matmul}\PYG{p}{(}\PYG{n}{delta\PYGZus{}2}\PYG{p}{,} \PYG{n}{w\PYGZus{}2}\PYG{o}{.}\PYG{n}{T}\PYG{p}{)} \PYG{o}{*} \PYG{n}{a\PYGZus{}1} \PYG{o}{*} \PYG{p}{(}\PYG{l+m+mi}{1} \PYG{o}{\PYGZhy{}} \PYG{n}{a\PYGZus{}1}\PYG{p}{)} - \PYG{c+c1}{\PYGZsh{} gradients for the output layer} - \PYG{n}{output\PYGZus{}weights\PYGZus{}gradient} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{matmul}\PYG{p}{(}\PYG{n}{a\PYGZus{}1}\PYG{o}{.}\PYG{n}{T}\PYG{p}{,} \PYG{n}{delta\PYGZus{}2}\PYG{p}{)} - \PYG{n}{output\PYGZus{}bias\PYGZus{}gradient} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{sum}\PYG{p}{(}\PYG{n}{delta\PYGZus{}2}\PYG{p}{,} \PYG{n}{axis}\PYG{o}{=}\PYG{l+m+mi}{0}\PYG{p}{)} - \PYG{c+c1}{\PYGZsh{} gradient for the hidden layer} - \PYG{n}{hidden\PYGZus{}weights\PYGZus{}gradient} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{matmul}\PYG{p}{(}\PYG{n}{x}\PYG{o}{.}\PYG{n}{T}\PYG{p}{,} \PYG{n}{delta\PYGZus{}1}\PYG{p}{)} - \PYG{n}{hidden\PYGZus{}bias\PYGZus{}gradient} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{sum}\PYG{p}{(}\PYG{n}{delta\PYGZus{}1}\PYG{p}{,} \PYG{n}{axis}\PYG{o}{=}\PYG{l+m+mi}{0}\PYG{p}{)} - \PYG{k}{return} \PYG{n}{output\PYGZus{}weights\PYGZus{}gradient}\PYG{p}{,} \PYG{n}{output\PYGZus{}bias\PYGZus{}gradient}\PYG{p}{,} \PYG{n}{hidden\PYGZus{}weights\PYGZus{}gradient}\PYG{p}{,} \PYG{n}{hidden\PYGZus{}bias\PYGZus{}gradient} - - -\PYG{c+c1}{\PYGZsh{} ensure the same random numbers appear every time} -\PYG{n}{np}\PYG{o}{.}\PYG{n}{random}\PYG{o}{.}\PYG{n}{seed}\PYG{p}{(}\PYG{l+m+mi}{0}\PYG{p}{)} -\PYG{c+c1}{\PYGZsh{} Input variable} -\PYG{n}{x} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{array}\PYG{p}{([}\PYG{l+m+mf}{4.0}\PYG{p}{],}\PYG{n}{dtype}\PYG{o}{=}\PYG{n}{np}\PYG{o}{.}\PYG{n}{float64}\PYG{p}{)} -\PYG{c+c1}{\PYGZsh{} Target values} -\PYG{n}{y} \PYG{o}{=} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{l+m+mf}{1.0} - -\PYG{c+c1}{\PYGZsh{} Defining the neural network, only scalars here} -\PYG{n}{n\PYGZus{}inputs} \PYG{o}{=} \PYG{n}{x}\PYG{o}{.}\PYG{n}{shape} -\PYG{n}{n\PYGZus{}features} \PYG{o}{=} \PYG{l+m+mi}{1} -\PYG{n}{n\PYGZus{}hidden\PYGZus{}neurons} \PYG{o}{=} \PYG{l+m+mi}{1} -\PYG{n}{n\PYGZus{}outputs} \PYG{o}{=} \PYG{l+m+mi}{1} - -\PYG{c+c1}{\PYGZsh{} Initialize the network} -\PYG{c+c1}{\PYGZsh{} weights and bias in the hidden layer} -\PYG{n}{w\PYGZus{}1} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{random}\PYG{o}{.}\PYG{n}{randn}\PYG{p}{(}\PYG{n}{n\PYGZus{}features}\PYG{p}{,} \PYG{n}{n\PYGZus{}hidden\PYGZus{}neurons}\PYG{p}{)} -\PYG{n}{b\PYGZus{}1} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{zeros}\PYG{p}{(}\PYG{n}{n\PYGZus{}hidden\PYGZus{}neurons}\PYG{p}{)} \PYG{o}{+} \PYG{l+m+mf}{0.01} - -\PYG{c+c1}{\PYGZsh{} weights and bias in the output layer} -\PYG{n}{w\PYGZus{}2} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{random}\PYG{o}{.}\PYG{n}{randn}\PYG{p}{(}\PYG{n}{n\PYGZus{}hidden\PYGZus{}neurons}\PYG{p}{,} \PYG{n}{n\PYGZus{}outputs}\PYG{p}{)} -\PYG{n}{b\PYGZus{}2} \PYG{o}{=} \PYG{n}{np}\PYG{o}{.}\PYG{n}{zeros}\PYG{p}{(}\PYG{n}{n\PYGZus{}outputs}\PYG{p}{)} \PYG{o}{+} \PYG{l+m+mf}{0.01} - -\PYG{n}{eta} \PYG{o}{=} \PYG{l+m+mf}{0.1} -\PYG{k}{for} \PYG{n}{i} \PYG{o+ow}{in} \PYG{n+nb}{range}\PYG{p}{(}\PYG{l+m+mi}{50}\PYG{p}{):} - \PYG{c+c1}{\PYGZsh{} calculate gradients} - \PYG{n}{derivW2}\PYG{p}{,} \PYG{n}{derivB2}\PYG{p}{,} \PYG{n}{derivW1}\PYG{p}{,} \PYG{n}{derivB1} \PYG{o}{=} \PYG{n}{backpropagation}\PYG{p}{(}\PYG{n}{x}\PYG{p}{,} \PYG{n}{y}\PYG{p}{)} - \PYG{c+c1}{\PYGZsh{} update weights and biases} - \PYG{n}{w\PYGZus{}2} \PYG{o}{\PYGZhy{}=} \PYG{n}{eta} \PYG{o}{*} \PYG{n}{derivW2} - \PYG{n}{b\PYGZus{}2} \PYG{o}{\PYGZhy{}=} \PYG{n}{eta} \PYG{o}{*} \PYG{n}{derivB2} - \PYG{n}{w\PYGZus{}1} \PYG{o}{\PYGZhy{}=} \PYG{n}{eta} \PYG{o}{*} \PYG{n}{derivW1} - \PYG{n}{b\PYGZus{}1} \PYG{o}{\PYGZhy{}=} \PYG{n}{eta} \PYG{o}{*} \PYG{n}{derivB1} - - - -\end{Verbatim} diff --git a/doc/src/week41/_minted-week41/FDA896CDD8BFB6D38F791E78B364721CBBBAD84E10F49A5F4278A7252110B6CA.pygtex b/doc/src/week41/_minted-week41/FDA896CDD8BFB6D38F791E78B364721CBBBAD84E10F49A5F4278A7252110B6CA.pygtex deleted file mode 100644 index e311a8a9b..000000000 --- a/doc/src/week41/_minted-week41/FDA896CDD8BFB6D38F791E78B364721CBBBAD84E10F49A5F4278A7252110B6CA.pygtex +++ /dev/null @@ -1,11 +0,0 @@ -\begin{Verbatim}[commandchars=\\\{\},codes={\catcode`\$=3\catcode`\^=7\catcode`\_=8\relax}] -\PYG{k+kn}{from} \PYG{n+nn}{\PYGZus{}\PYGZus{}future\PYGZus{}\PYGZus{}} \PYG{k+kn}{import} \PYG{n}{division} -\PYG{k+kn}{from} \PYG{n+nn}{sympy} \PYG{k+kn}{import} \PYG{o}{*} -\PYG{n}{x} \PYG{o}{=} \PYG{n}{symbols}\PYG{p}{(}\PYG{l+s+s1}{\PYGZsq{}x\PYGZsq{}}\PYG{p}{)} -\PYG{n}{expr} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)} -\PYG{n}{simplify}\PYG{p}{(}\PYG{n}{expr}\PYG{p}{)} -\PYG{n}{derivative} \PYG{o}{=} \PYG{n}{diff}\PYG{p}{(}\PYG{n}{expr}\PYG{p}{,}\PYG{n}{x}\PYG{p}{)} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{n}{python}\PYG{p}{(}\PYG{n}{expr}\PYG{p}{))} -\PYG{n+nb}{print}\PYG{p}{(}\PYG{n}{python}\PYG{p}{(}\PYG{n}{derivative}\PYG{p}{))} - -\end{Verbatim} diff --git a/doc/src/week41/_minted-week41/default.pygstyle b/doc/src/week41/_minted-week41/default.pygstyle deleted file mode 100644 index 211763d1d..000000000 --- a/doc/src/week41/_minted-week41/default.pygstyle +++ /dev/null @@ -1,101 +0,0 @@ - -\makeatletter -\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% - \let\PYG@ul=\relax \let\PYG@tc=\relax% - \let\PYG@bc=\relax \let\PYG@ff=\relax} -\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} -\def\PYG@toks#1+{\ifx\relax#1\empty\else% - \PYG@tok{#1}\expandafter\PYG@toks\fi} -\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% - \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} -\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} - -\@namedef{PYG@tok@w}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} -\@namedef{PYG@tok@c}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} -\@namedef{PYG@tok@cp}{\def\PYG@tc##1{\textcolor[rgb]{0.61,0.40,0.00}{##1}}} -\@namedef{PYG@tok@k}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@kp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@kt}{\def\PYG@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} -\@namedef{PYG@tok@o}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@ow}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} -\@namedef{PYG@tok@nb}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@nf}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} -\@namedef{PYG@tok@nc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} -\@namedef{PYG@tok@nn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} -\@namedef{PYG@tok@ne}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.80,0.25,0.22}{##1}}} -\@namedef{PYG@tok@nv}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} -\@namedef{PYG@tok@no}{\def\PYG@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} -\@namedef{PYG@tok@nl}{\def\PYG@tc##1{\textcolor[rgb]{0.46,0.46,0.00}{##1}}} -\@namedef{PYG@tok@ni}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}} -\@namedef{PYG@tok@na}{\def\PYG@tc##1{\textcolor[rgb]{0.41,0.47,0.13}{##1}}} -\@namedef{PYG@tok@nt}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@nd}{\def\PYG@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} -\@namedef{PYG@tok@s}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@sd}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@si}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}} -\@namedef{PYG@tok@se}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.67,0.36,0.12}{##1}}} -\@namedef{PYG@tok@sr}{\def\PYG@tc##1{\textcolor[rgb]{0.64,0.35,0.47}{##1}}} -\@namedef{PYG@tok@ss}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} -\@namedef{PYG@tok@sx}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@m}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@gh}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} -\@namedef{PYG@tok@gu}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} -\@namedef{PYG@tok@gd}{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} -\@namedef{PYG@tok@gi}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.52,0.00}{##1}}} -\@namedef{PYG@tok@gr}{\def\PYG@tc##1{\textcolor[rgb]{0.89,0.00,0.00}{##1}}} -\@namedef{PYG@tok@ge}{\let\PYG@it=\textit} -\@namedef{PYG@tok@gs}{\let\PYG@bf=\textbf} -\@namedef{PYG@tok@gp}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} -\@namedef{PYG@tok@go}{\def\PYG@tc##1{\textcolor[rgb]{0.44,0.44,0.44}{##1}}} -\@namedef{PYG@tok@gt}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} -\@namedef{PYG@tok@err}{\def\PYG@bc##1{{\setlength{\fboxsep}{\string -\fboxrule}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}} -\@namedef{PYG@tok@kc}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@kd}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@kn}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@kr}{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@bp}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} -\@namedef{PYG@tok@fm}{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} -\@namedef{PYG@tok@vc}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} -\@namedef{PYG@tok@vg}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} -\@namedef{PYG@tok@vi}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} -\@namedef{PYG@tok@vm}{\def\PYG@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} -\@namedef{PYG@tok@sa}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@sb}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@sc}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@dl}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@s2}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@sh}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@s1}{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} -\@namedef{PYG@tok@mb}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@mf}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@mh}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@mi}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@il}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@mo}{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\@namedef{PYG@tok@ch}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} -\@namedef{PYG@tok@cm}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} -\@namedef{PYG@tok@cpf}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} -\@namedef{PYG@tok@c1}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} -\@namedef{PYG@tok@cs}{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.24,0.48,0.48}{##1}}} - -\def\PYGZbs{\char`\\} -\def\PYGZus{\char`\_} -\def\PYGZob{\char`\{} -\def\PYGZcb{\char`\}} -\def\PYGZca{\char`\^} -\def\PYGZam{\char`\&} -\def\PYGZlt{\char`\<} -\def\PYGZgt{\char`\>} -\def\PYGZsh{\char`\#} -\def\PYGZpc{\char`\%} -\def\PYGZdl{\char`\$} -\def\PYGZhy{\char`\-} -\def\PYGZsq{\char`\'} -\def\PYGZdq{\char`\"} -\def\PYGZti{\char`\~} -% for compatibility with earlier versions -\def\PYGZat{@} -\def\PYGZlb{[} -\def\PYGZrb{]} -\makeatother - diff --git a/doc/src/week41/ipynb-week41-src.tar.gz b/doc/src/week41/ipynb-week41-src.tar.gz deleted file mode 100644 index fd2fe62c311641604127592bdf06ee2322178635..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 994410 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%0DgDznev~L~>i=G_5b_0BU%wvnaB9{*o)IYS`&C~ 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 M03USJ$^Zlr0KdFfZ2$lO diff --git a/doc/src/week41/reveal.js/.gitignore b/doc/src/week41/reveal.js/.gitignore deleted file mode 100644 index a5df3133d..000000000 --- a/doc/src/week41/reveal.js/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -.DS_Store -.svn -log/*.log -tmp/** -node_modules/ -.sass-cache -css/reveal.min.css -js/reveal.min.js diff --git a/doc/src/week41/reveal.js/.travis.yml b/doc/src/week41/reveal.js/.travis.yml deleted file mode 100644 index 165d9ae9f..000000000 --- a/doc/src/week41/reveal.js/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - 0.10 -before_script: - - npm install -g grunt-cli \ No newline at end of file diff --git a/doc/src/week41/reveal.js/CONTRIBUTING.md b/doc/src/week41/reveal.js/CONTRIBUTING.md deleted file mode 100644 index c2091e88f..000000000 --- a/doc/src/week41/reveal.js/CONTRIBUTING.md +++ /dev/null @@ -1,23 +0,0 @@ -## Contributing - -Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**. - - -### Personal Support -If you have personal support or setup questions the best place to ask those are [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js). - - -### Bug Reports -When reporting a bug make sure to include information about which browser and operating system you are on as well as the necessary steps to reproduce the issue. If possible please include a link to a sample presentation where the bug can be tested. - - -### Pull Requests -- Should follow the coding style of the file you work in, most importantly: - - Tabs to indent - - Single-quoted strings -- Should be made towards the **dev branch** -- Should be submitted from a feature/topic branch (not your master) - - -### Plugins -Please do not submit plugins as pull requests. They should be maintained in their own separate repository. More information here: https://github.com/hakimel/reveal.js/wiki/Plugin-Guidelines diff --git a/doc/src/week41/reveal.js/Gruntfile.js b/doc/src/week41/reveal.js/Gruntfile.js deleted file mode 100644 index b257e8f32..000000000 --- a/doc/src/week41/reveal.js/Gruntfile.js +++ /dev/null @@ -1,140 +0,0 @@ -/* global module:false */ -module.exports = function(grunt) { - var port = grunt.option('port') || 8000; - // Project configuration - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - meta: { - banner: - '/*!\n' + - ' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' + - ' * http://lab.hakim.se/reveal-js\n' + - ' * MIT licensed\n' + - ' *\n' + - ' * Copyright (C) 2014 Hakim El Hattab, http://hakim.se\n' + - ' */' - }, - - qunit: { - files: [ 'test/*.html' ] - }, - - uglify: { - options: { - banner: '<%= meta.banner %>\n' - }, - build: { - src: 'js/reveal.js', - dest: 'js/reveal.min.js' - } - }, - - cssmin: { - compress: { - files: { - 'css/reveal.min.css': [ 'css/reveal.css' ] - } - } - }, - - sass: { - main: { - files: { - 'css/theme/darkgray.css': 'css/theme/source/darkgray.scss', - 'css/theme/beigesmall.css': 'css/theme/source/beigesmall.scss', - 'css/theme/cbc.css': 'css/theme/source/cbc.scss', - 'css/theme/default.css': 'css/theme/source/default.scss', - 'css/theme/beige.css': 'css/theme/source/beige.scss', - 'css/theme/night.css': 'css/theme/source/night.scss', - 'css/theme/serif.css': 'css/theme/source/serif.scss', - 'css/theme/simple.css': 'css/theme/source/simple.scss', - 'css/theme/sky.css': 'css/theme/source/sky.scss', - 'css/theme/moon.css': 'css/theme/source/moon.scss', - 'css/theme/solarized.css': 'css/theme/source/solarized.scss', - 'css/theme/blood.css': 'css/theme/source/blood.scss' - } - } - }, - - jshint: { - options: { - curly: false, - eqeqeq: true, - immed: true, - latedef: true, - newcap: true, - noarg: true, - sub: true, - undef: true, - eqnull: true, - browser: true, - expr: true, - globals: { - head: false, - module: false, - console: false, - unescape: false - } - }, - files: [ 'Gruntfile.js', 'js/reveal.js' ] - }, - - connect: { - server: { - options: { - port: port, - base: '.' - } - } - }, - - zip: { - 'reveal-js-presentation.zip': [ - 'index.html', - 'css/**', - 'js/**', - 'lib/**', - 'images/**', - 'plugin/**' - ] - }, - - watch: { - main: { - files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ], - tasks: 'default' - }, - theme: { - files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ], - tasks: 'themes' - } - } - - }); - - // Dependencies - grunt.loadNpmTasks( 'grunt-contrib-qunit' ); - grunt.loadNpmTasks( 'grunt-contrib-jshint' ); - grunt.loadNpmTasks( 'grunt-contrib-cssmin' ); - grunt.loadNpmTasks( 'grunt-contrib-uglify' ); - grunt.loadNpmTasks( 'grunt-contrib-watch' ); - grunt.loadNpmTasks( 'grunt-contrib-sass' ); - grunt.loadNpmTasks( 'grunt-contrib-connect' ); - grunt.loadNpmTasks( 'grunt-zip' ); - - // Default task - grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] ); - - // Theme task - grunt.registerTask( 'themes', [ 'sass' ] ); - - // Package presentation to archive - grunt.registerTask( 'package', [ 'default', 'zip' ] ); - - // Serve presentation locally - grunt.registerTask( 'serve', [ 'connect', 'watch' ] ); - - // Run tests - grunt.registerTask( 'test', [ 'jshint', 'qunit' ] ); - -}; diff --git a/doc/src/week41/reveal.js/LICENSE b/doc/src/week41/reveal.js/LICENSE deleted file mode 100644 index 09623076f..000000000 --- a/doc/src/week41/reveal.js/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2015 Hakim El Hattab, http://hakim.se - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/doc/src/week41/reveal.js/README.md b/doc/src/week41/reveal.js/README.md deleted file mode 100644 index 573b19597..000000000 --- a/doc/src/week41/reveal.js/README.md +++ /dev/null @@ -1,1052 +0,0 @@ -# reveal.js [![Build Status](https://travis-ci.org/hakimel/reveal.js.svg?branch=master)](https://travis-ci.org/hakimel/reveal.js) - -A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://lab.hakim.se/reveal-js/). - -reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [Markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). It's best viewed in a modern browser but [fallbacks](https://github.com/hakimel/reveal.js/wiki/Browser-Support) are available to make sure your presentation can still be viewed elsewhere. - - -#### More reading: -- [Installation](#installation): Step-by-step instructions for getting reveal.js running on your computer. -- [Changelog](https://github.com/hakimel/reveal.js/releases): Up-to-date version history. -- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own! -- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Browser-Support): Explanation of browser support and fallbacks. -- [Plugins](https://github.com/hakimel/reveal.js/wiki/Plugins,-Tools-and-Hardware): A list of plugins that can be used to extend reveal.js. - -## Online Editor - -Presentations are written using HTML or Markdown but there's also an online editor for those of you who prefer a graphical interface. Give it a try at [http://slides.com](http://slides.com). - - -## Instructions - -### Markup - -Markup hierarchy needs to be ``

`` where the ``
`` represents one slide and can be repeated indefinitely. If you place multiple ``
``'s inside of another ``
`` they will be shown as vertical slides. The first of the vertical slides is the "root" of the others (at the top), and it will be included in the horizontal sequence. For example: - -```html -
-
-
Single Horizontal Slide
-
-
Vertical Slide 1
-
Vertical Slide 2
-
-
-
-``` - -### Markdown - -It's possible to write your slides using Markdown. To enable Markdown, add the ```data-markdown``` attribute to your ```
``` elements and wrap the contents in a ``` -
-``` - -#### External Markdown - -You can write your content as a separate file and have reveal.js load it at runtime. Note the separator arguments which determine how slides are delimited in the external file. The ```data-charset``` attribute is optional and specifies which charset to use when loading the external file. - -When used locally, this feature requires that reveal.js [runs from a local web server](#full-setup). - -```html -
-
-``` - -#### Element Attributes - -Special syntax (in html comment) is available for adding attributes to Markdown elements. This is useful for fragments, amongst other things. - -```html -
- -
-``` - -#### Slide Attributes - -Special syntax (in html comment) is available for adding attributes to the slide `
` elements generated by your Markdown. - -```html -
- -
-``` - - -### Configuration - -At the end of your page you need to initialize reveal by running the following code. Note that all config values are optional and will default as specified below. - -```javascript -Reveal.initialize({ - - // Display controls in the bottom right corner - controls: true, - - // Display a presentation progress bar - progress: true, - - // Display the page number of the current slide - slideNumber: false, - - // Push each slide change to the browser history - history: false, - - // Enable keyboard shortcuts for navigation - keyboard: true, - - // Enable the slide overview mode - overview: true, - - // Vertical centering of slides - center: true, - - // Enables touch navigation on devices with touch input - touch: true, - - // Loop the presentation - loop: false, - - // Change the presentation direction to be RTL - rtl: false, - - // Turns fragments on and off globally - fragments: true, - - // Flags if the presentation is running in an embedded mode, - // i.e. contained within a limited portion of the screen - embedded: false, - - // Flags if we should show a help overlay when the questionmark - // key is pressed - help: true, - - // Number of milliseconds between automatically proceeding to the - // next slide, disabled when set to 0, this value can be overwritten - // by using a data-autoslide attribute on your slides - autoSlide: 0, - - // Stop auto-sliding after user input - autoSlideStoppable: true, - - // Enable slide navigation via mouse wheel - mouseWheel: false, - - // Hides the address bar on mobile devices - hideAddressBar: true, - - // Opens links in an iframe preview overlay - previewLinks: false, - - // Transition style - transition: 'default', // none/fade/slide/convex/concave/zoom - - // Transition speed - transitionSpeed: 'default', // default/fast/slow - - // Transition style for full page slide backgrounds - backgroundTransition: 'default', // none/fade/slide/convex/concave/zoom - - // Number of slides away from the current that are visible - viewDistance: 3, - - // Parallax background image - parallaxBackgroundImage: '', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'" - - // Parallax background size - parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - - // Amount to move parallax background (horizontal and vertical) on slide change - // Number, e.g. 100 - parallaxBackgroundHorizontal: '', - parallaxBackgroundVertical: '' - -}); -``` - - -The configuration can be updated after initialization using the ```configure``` method: - -```javascript -// Turn autoSlide off -Reveal.configure({ autoSlide: 0 }); - -// Start auto-sliding every 5s -Reveal.configure({ autoSlide: 5000 }); -``` - - -### Dependencies - -Reveal.js doesn't _rely_ on any third party scripts to work but a few optional libraries are included by default. These libraries are loaded as dependencies in the order they appear, for example: - -```javascript -Reveal.initialize({ - dependencies: [ - // Cross-browser shim that fully implements classList - https://github.com/eligrey/classList.js/ - { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }, - - // Interpret Markdown in
elements - { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, - { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, - - // Syntax highlight for elements - { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }, - - // Zoom in and out with Alt+click - { src: 'plugin/zoom-js/zoom.js', async: true }, - - // Speaker notes - { src: 'plugin/notes/notes.js', async: true }, - - // Remote control your reveal.js presentation using a touch device - { src: 'plugin/remotes/remotes.js', async: true }, - - // MathJax - { src: 'plugin/math/math.js', async: true } - ] -}); -``` - -You can add your own extensions using the same syntax. The following properties are available for each dependency object: -- **src**: Path to the script to load -- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false -- **callback**: [optional] Function to execute when the script has loaded -- **condition**: [optional] Function which must return true for the script to be loaded - - -### Ready Event - -A 'ready' event is fired when reveal.js has loaded all non-async dependencies and is ready to start navigating. To check if reveal.js is already 'ready' you can call `Reveal.isReady()`. - -```javascript -Reveal.addEventListener( 'ready', function( event ) { - // event.currentSlide, event.indexh, event.indexv -} ); -``` - - -### Presentation Size - -All presentations have a normal size, that is the resolution at which they are authored. The framework will automatically scale presentations uniformly based on this size to ensure that everything fits on any given display or viewport. - -See below for a list of configuration options related to sizing, including default values: - -```javascript -Reveal.initialize({ - - ... - - // The "normal" size of the presentation, aspect ratio will be preserved - // when the presentation is scaled to fit different resolutions. Can be - // specified using percentage units. - width: 960, - height: 700, - - // Factor of the display size that should remain empty around the content - margin: 0.1, - - // Bounds for smallest/largest possible scale to apply to content - minScale: 0.2, - maxScale: 1.5 - -}); -``` - - -### Auto-sliding - -Presentations can be configured to progress through slides automatically, without any user input. To enable this you will need to tell the framework how many milliseconds it should wait between slides: - -```javascript -// Slide every five seconds -Reveal.configure({ - autoSlide: 5000 -}); -``` -When this is turned on a control element will appear that enables users to pause and resume auto-sliding. Alternatively, sliding can be paused or resumed by pressing »a« on the keyboard. Sliding is paused automatically as soon as the user starts navigating. You can disable these controls by specifying ```autoSlideStoppable: false``` in your reveal.js config. - -You can also override the slide duration for individual slides and fragments by using the ```data-autoslide``` attribute: - -```html -
-

After 2 seconds the first fragment will be shown.

-

After 10 seconds the next fragment will be shown.

-

Now, the fragment is displayed for 2 seconds before the next slide is shown.

-
-``` - -Whenever the auto-slide mode is resumed or paused the ```autoslideresumed``` and ```autoslidepaused``` events are fired. - - -### Keyboard Bindings - -If you're unhappy with any of the default keyboard bindings you can override them using the ```keyboard``` config option: - -```javascript -Reveal.configure({ - keyboard: { - 13: 'next', // go to the next slide when the ENTER key is pressed - 27: function() {}, // do something custom when ESC is pressed - 32: null // don't do anything when SPACE is pressed (i.e. disable a reveal.js default binding) - } -}); -``` - -### Lazy Loading - -When working on presentation with a lot of media or iframe content it's important to load lazily. Lazy loading means that reveal.js will only load content for the few slides nearest to the current slide. The number of slides that are preloaded is determined by the `viewDistance` configuration option. - -To enable lazy loading all you need to do is change your "src" attributes to "data-src" as shown below. This is supported for image, video, audio and iframe elements. Lazy loaded iframes will also unload when the containing slide is no longer visible. - -```html -
- - - -
-``` - - -### API - -The ``Reveal`` object exposes a JavaScript API for controlling navigation and reading state: - -```javascript -// Navigation -Reveal.slide( indexh, indexv, indexf ); -Reveal.left(); -Reveal.right(); -Reveal.up(); -Reveal.down(); -Reveal.prev(); -Reveal.next(); -Reveal.prevFragment(); -Reveal.nextFragment(); - -// Toggle presentation states, optionally pass true/false to force on/off -Reveal.toggleOverview(); -Reveal.togglePause(); -Reveal.toggleAutoSlide(); - -// Change a config value at runtime -Reveal.configure({ controls: true }); - -// Returns the present configuration options -Reveal.getConfig(); - -// Fetch the current scale of the presentation -Reveal.getScale(); - -// Retrieves the previous and current slide elements -Reveal.getPreviousSlide(); -Reveal.getCurrentSlide(); - -Reveal.getIndices(); // { h: 0, v: 0 } } -Reveal.getProgress(); // 0-1 -Reveal.getTotalSlides(); - -// State checks -Reveal.isFirstSlide(); -Reveal.isLastSlide(); -Reveal.isOverview(); -Reveal.isPaused(); -Reveal.isAutoSliding(); -``` - -### Slide Changed Event - -A 'slidechanged' event is fired each time the slide is changed (regardless of state). The event object holds the index values of the current slide as well as a reference to the previous and current slide HTML nodes. - -Some libraries, like MathJax (see [#226](https://github.com/hakimel/reveal.js/issues/226#issuecomment-10261609)), get confused by the transforms and display states of slides. Often times, this can be fixed by calling their update or render function from this callback. - -```javascript -Reveal.addEventListener( 'slidechanged', function( event ) { - // event.previousSlide, event.currentSlide, event.indexh, event.indexv -} ); -``` - -### Presentation State - -The presentation's current state can be fetched by using the `getState` method. A state object contains all of the information required to put the presentation back as it was when `getState` was first called. Sort of like a snapshot. It's a simple object that can easily be stringified and persisted or sent over the wire. - -```javascript -Reveal.slide( 1 ); -// we're on slide 1 - -var state = Reveal.getState(); - -Reveal.slide( 3 ); -// we're on slide 3 - -Reveal.setState( state ); -// we're back on slide 1 -``` - -### Slide States - -If you set ``data-state="somestate"`` on a slide ``
``, "somestate" will be applied as a class on the document element when that slide is opened. This allows you to apply broad style changes to the page based on the active slide. - -Furthermore you can also listen to these changes in state via JavaScript: - -```javascript -Reveal.addEventListener( 'somestate', function() { - // TODO: Sprinkle magic -}, false ); -``` - -### Slide Backgrounds - -Slides are contained within a limited portion of the screen by default to allow them to fit any display and scale uniformly. You can apply full page backgrounds outside of the slide area by adding a ```data-background``` attribute to your ```
``` elements. Four different types of backgrounds are supported: color, image, video and iframe. Below are a few examples. - -```html -
-

All CSS color formats are supported, like rgba() or hsl().

-
-
-

This slide will have a full-size background image.

-
-
-

This background image will be sized to 100px and repeated.

-
-
-

Video. Multiple sources can be defined using a comma separated list. Video will loop when the data-background-video-loop attribute is provided.

-
-
-

Embeds a web page as a background. Note that the page won't be interactive.

-
-``` - -Backgrounds transition using a fade animation by default. This can be changed to a linear sliding transition by passing ```backgroundTransition: 'slide'``` to the ```Reveal.initialize()``` call. Alternatively you can set ```data-background-transition``` on any section with a background to override that specific transition. - - -### Parallax Background - -If you want to use a parallax scrolling background, set the first two config properties below when initializing reveal.js (the other two are optional). - -```javascript -Reveal.initialize({ - - // Parallax background image - parallaxBackgroundImage: '', // e.g. "https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg" - - // Parallax background size - parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - currently only pixels are supported (don't use % or auto) - - // Amount of pixels to move the parallax background per slide step, - // a value of 0 disables movement along the given axis - // These are optional, if they aren't specified they'll be calculated automatically - parallaxBackgroundHorizontal: 200, - parallaxBackgroundVertical: 50 - -}); -``` - -Make sure that the background size is much bigger than screen size to allow for some scrolling. [View example](http://lab.hakim.se/reveal-js/?parallaxBackgroundImage=https%3A%2F%2Fs3.amazonaws.com%2Fhakim-static%2Freveal-js%2Freveal-parallax-1.jpg¶llaxBackgroundSize=2100px%20900px). - - - -### Slide Transitions -The global presentation transition is set using the ```transition``` config value. You can override the global transition for a specific slide by using the ```data-transition``` attribute: - -```html -
-

This slide will override the presentation transition and zoom!

-
- -
-

Choose from three transition speeds: default, fast or slow!

-
-``` - -You can also use different in and out transitions for the same slide: - -```html -
- The train goes on … -
-
- and on … -
-
- and stops. -
-
- (Passengers entering and leaving) -
-
- And it starts again. -
-``` - - -Note that this does not work with the page and cube transitions. - - -### Internal links - -It's easy to link between slides. The first example below targets the index of another slide whereas the second targets a slide with an ID attribute (```
```): - -```html -Link -Link -``` - -You can also add relative navigation links, similar to the built in reveal.js controls, by appending one of the following classes on any element. Note that each element is automatically given an ```enabled``` class when it's a valid navigation route based on the current slide. - -```html - - - - - - -``` - - -### Fragments -Fragments are used to highlight individual elements on a slide. Every element with the class ```fragment``` will be stepped through before moving on to the next slide. Here's an example: http://lab.hakim.se/reveal-js/#/fragments - -The default fragment style is to start out invisible and fade in. This style can be changed by appending a different class to the fragment: - -```html -
-

grow

-

shrink

-

fade-out

-

visible only once

-

blue only once

-

highlight-red

-

highlight-green

-

highlight-blue

-
-``` - -Multiple fragments can be applied to the same element sequentially by wrapping it, this will fade in the text on the first step and fade it back out on the second. - -```html -
- - I'll fade in, then out - -
-``` - -The display order of fragments can be controlled using the ```data-fragment-index``` attribute. - -```html -
-

Appears last

-

Appears first

-

Appears second

-
-``` - -### Fragment events - -When a slide fragment is either shown or hidden reveal.js will dispatch an event. - -Some libraries, like MathJax (see #505), get confused by the initially hidden fragment elements. Often times this can be fixed by calling their update or render function from this callback. - -```javascript -Reveal.addEventListener( 'fragmentshown', function( event ) { - // event.fragment = the fragment DOM element -} ); -Reveal.addEventListener( 'fragmenthidden', function( event ) { - // event.fragment = the fragment DOM element -} ); -``` - -### Code syntax highlighting - -By default, Reveal is configured with [highlight.js](http://softwaremaniacs.org/soft/highlight/en/) for code syntax highlighting. Below is an example with clojure code that will be syntax highlighted. When the `data-trim` attribute is present surrounding whitespace is automatically removed. - -```html -
-

-(def lazy-fib
-  (concat
-   [0 1]
-   ((fn rfib [a b]
-        (lazy-cons (+ a b) (rfib b (+ a b)))) 0 1)))
-	
-
-``` - -### Slide number -If you would like to display the page number of the current slide you can do so using the ```slideNumber``` configuration value. - -```javascript -// Shows the slide number using default formatting -Reveal.configure({ slideNumber: true }); - -// Slide number formatting can be configured using these variables: -// h: current slide's horizontal index -// v: current slide's vertical index -// c: current slide index (flattened) -// t: total number of slides (flattened) -Reveal.configure({ slideNumber: 'c / t' }); - -``` - - -### Overview mode - -Press "Esc" or "o" keys to toggle the overview mode on and off. While you're in this mode, you can still navigate between slides, -as if you were at 1,000 feet above your presentation. The overview mode comes with a few API hooks: - -```javascript -Reveal.addEventListener( 'overviewshown', function( event ) { /* ... */ } ); -Reveal.addEventListener( 'overviewhidden', function( event ) { /* ... */ } ); - -// Toggle the overview mode programmatically -Reveal.toggleOverview(); -``` - -### Fullscreen mode -Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode. - - -### Embedded media -Embedded HTML5 `
-
-

 

 

 

- -
-
-

Week 41 Neural networks and constructing a neural network code

-
- - -
-Morten Hjorth-Jensen -
- -
-Department of Physics, University of Oslo -
-
-
-

Week 41

-
-
- - -
- - -

Plan for week 41, October 7-11

- - -

Material for the lecture on Monday October 7, 2024

-
    -
  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -
  3. Building our own Feed-forward Neural Network - -
  4. -
-
-
- -
    -
  1. These lecture notes
  2. -
  3. Rashcka et al chapter 11
  4. -
  5. For neural networks we recommend Goodfellow et al chapter 6. -
      -
    1. Neural Networks demystified at https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs
    2. -
    -
  6. Building Neural Networks from scratch at https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex
  7. -
  8. Video on Neural Networks at https://www.youtube.com/watch?v=CqOfi41LfDw
  9. -
  10. Video on the back propagation algorithm at https://www.youtube.com/watch?v=Ilg3gGewQ5U
  11. -
-

We also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at http://neuralnetworksanddeeplearning.com/chap4.html.

-
-
- - - -

Material for the active learning sessions on Tuesday and Wednesday

-
    -
  • Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation
  • -
  • One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code
  • -
  • Discussion of project 2
  • -
  • Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent
  • -
- -

Lecture Monday October 7

- - -

Introduction to Neural networks

- -

Artificial neural networks are computational systems that can learn to -perform tasks by considering examples, generally without being -programmed with any task-specific rules. It is supposed to mimic a -biological system, wherein neurons interact by sending signals in the -form of mathematical functions between layers. All layers can contain -an arbitrary number of neurons, and each connection is represented by -a weight variable. -

- - -

Artificial neurons

- -

The field of artificial neural networks has a long history of -development, and is closely connected with the advancement of computer -science and computers in general. A model of artificial neurons was -first developed by McCulloch and Pitts in 1943 to study signal -processing in the brain and has later been refined by others. The -general idea is to mimic neural networks in the human brain, which is -composed of billions of neurons that communicate with each other by -sending electrical signals. Each neuron accumulates its incoming -signals, which must exceed an activation threshold to yield an -output. If the threshold is not overcome, the neuron remains inactive, -i.e. has zero output. -

- -

This behaviour has inspired a simple mathematical model for an artificial neuron.

- -$$ -\begin{equation} - y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) -\label{artificialNeuron} -\end{equation} -$$ - -

Here, the output \( y \) of the neuron is the value of its activation function, which have as input -a weighted sum of signals \( x_i, \dots ,x_n \) received by \( n \) other neurons. -

- -

Conceptually, it is helpful to divide neural networks into four -categories: -

-
    -
  1. general purpose neural networks for supervised learning,
  2. -
  3. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs),
  4. -
  5. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and
  6. -
  7. neural networks for unsupervised learning such as Deep Boltzmann Machines.
  8. -
-

In natural science, DNNs and CNNs have already found numerous -applications. In statistical physics, they have been applied to detect -phase transitions in 2D Ising and Potts models, lattice gauge -theories, and different phases of polymers, or solving the -Navier-Stokes equation in weather forecasting. Deep learning has also -found interesting applications in quantum physics. Various quantum -phase transitions can be detected and studied using DNNs and CNNs, -topological phases, and even non-equilibrium many-body -localization. Representing quantum states as DNNs quantum state -tomography are among some of the impressive achievements to reveal the -potential of DNNs to facilitate the study of quantum systems. -

- -

In quantum information theory, it has been shown that one can perform -gate decompositions with the help of neural. -

- -

The applications are not limited to the natural sciences. There is a -plethora of applications in essentially all disciplines, from the -humanities to life science and medicine. -

- - -

Neural network types

- -

An artificial neural network (ANN), is a computational model that -consists of layers of connected neurons, or nodes or units. We will -refer to these interchangeably as units or nodes, and sometimes as -neurons. -

- -

It is supposed to mimic a biological nervous system by letting each -neuron interact with other neurons by sending signals in the form of -mathematical functions between layers. A wide variety of different -ANNs have been developed, but most of them consist of an input layer, -an output layer and eventual layers in-between, called hidden -layers. All layers can contain an arbitrary number of nodes, and each -connection between two nodes is associated with a weight variable. -

- -

Neural networks (also called neural nets) are neural-inspired -nonlinear models for supervised learning. As we will see, neural nets -can be viewed as natural, more powerful extensions of supervised -learning methods such as linear and logistic regression and soft-max -methods we discussed earlier. -

- - -

Feed-forward neural networks

- -

The feed-forward neural network (FFNN) was the first and simplest type -of ANNs that were devised. In this network, the information moves in -only one direction: forward through the layers. -

- -

Nodes are represented by circles, while the arrows display the -connections between the nodes, including the direction of information -flow. Additionally, each arrow corresponds to a weight variable -(figure to come). We observe that each node in a layer is connected -to all nodes in the subsequent layer, making this a so-called -fully-connected FFNN. -

- - -

Convolutional Neural Network

- -

A different variant of FFNNs are convolutional neural networks -(CNNs), which have a connectivity pattern inspired by the animal -visual cortex. Individual neurons in the visual cortex only respond to -stimuli from small sub-regions of the visual field, called a receptive -field. This makes the neurons well-suited to exploit the strong -spatially local correlation present in natural images. The response of -each neuron can be approximated mathematically as a convolution -operation. (figure to come) -

- -

Convolutional neural networks emulate the behaviour of neurons in the -visual cortex by enforcing a local connectivity pattern between -nodes of adjacent layers: Each node in a convolutional layer is -connected only to a subset of the nodes in the previous layer, in -contrast to the fully-connected FFNN. Often, CNNs consist of several -convolutional layers that learn local features of the input, with a -fully-connected layer at the end, which gathers all the local data and -produces the outputs. They have wide applications in image and video -recognition. -

- - -

Recurrent neural networks

- -

So far we have only mentioned ANNs where information flows in one -direction: forward. Recurrent neural networks on the other hand, -have connections between nodes that form directed cycles. This -creates a form of internal memory which are able to capture -information on what has been calculated before; the output is -dependent on the previous computations. Recurrent NNs make use of -sequential information by performing the same task for every element -in a sequence, where each element depends on previous elements. An -example of such information is sentences, making recurrent NNs -especially well-suited for handwriting and speech recognition. -

- - -

Other types of networks

- -

There are many other kinds of ANNs that have been developed. One type -that is specifically designed for interpolation in multidimensional -space is the radial basis function (RBF) network. RBFs are typically -made up of three layers: an input layer, a hidden layer with -non-linear radial symmetric activation functions and a linear output -layer (''linear'' here means that each node in the output layer has a -linear activation function). The layers are normally fully-connected -and there are no cycles, thus RBFs can be viewed as a type of -fully-connected FFNN. They are however usually treated as a separate -type of NN due the unusual activation functions. -

- - -

Multilayer perceptrons

- -

One uses often so-called fully-connected feed-forward neural networks -with three or more layers (an input layer, one or more hidden layers -and an output layer) consisting of neurons that have non-linear -activation functions. -

- -

Such networks are often called multilayer perceptrons (MLPs).

- - -

Why multilayer perceptrons?

- -

According to the Universal approximation theorem, a feed-forward -neural network with just a single hidden layer containing a finite -number of neurons can approximate a continuous multidimensional -function to arbitrary accuracy, assuming the activation function for -the hidden layer is a non-constant, bounded and -monotonically-increasing continuous function. -

- -

Note that the requirements on the activation function only applies to -the hidden layer, the output nodes are always assumed to be linear, so -as to not restrict the range of output values. -

- - -

Illustration of a single perceptron model and a multi-perceptron model

- -
-
-
-

Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

-
-

-
- - -

Examples of XOR, OR and AND gates

- -

Let us first try to fit various gates using standard linear -regression. The gates we are thinking of are the classical XOR, OR and -AND gates, well-known elements in computer science. The tables here -show how we can set up the inputs \( x_1 \) and \( x_2 \) in order to yield a -specific target \( y_i \). -

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR, OR and AND gates with linear regression
-"""
-
-import numpy as np
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

What is happening here?

- - -

Does Logistic Regression do a better Job?

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR and OR gates with linear regression
-and logistic regression
-"""
-
-import matplotlib.pyplot as plt
-from sklearn.linear_model import LogisticRegression
-import numpy as np
-
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-# Now we change to logistic regression
-
-
-# Logistic Regression
-logreg = LogisticRegression()
-logreg.fit(X, yOR)
-print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR)))
-
-logreg.fit(X, yXOR)
-print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR)))
-
-
-logreg.fit(X, yAND)
-print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND)))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

Not exactly impressive, but somewhat better.

- - -

Adding Neural Networks

- - - -
-
-
-
-
-
# and now neural networks with Scikit-Learn and the XOR
-
-from sklearn.neural_network import MLPClassifier
-from sklearn.datasets import make_classification
-X, yXOR = make_classification(n_samples=100, random_state=1)
-FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR)
-FFNN.predict_proba(X)
-print(f"Test set accuracy with Feed Forward Neural Network  for XOR gate:{FFNN.score(X, yXOR)}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - -

Mathematics of deep learning

- - - - - -

Reminder on books with hands-on material and codes

- - - - -

Reading recommendations

- -
    -
  1. Rashkca et al., chapter 11, jupyter-notebook sent separately, from GitHub
  2. -
  3. Goodfellow et al, chapter 6 and 7 contain most of the neural network background.
  4. -
- -

Mathematics of deep learning and neural networks

- -

Neural networks, in its so-called feed-forward form, where each -iterations contains a feed-forward stage and a back-propgagation -stage, consist of series of affine matrix-matrix and matrix-vector -multiplications. The unknown parameters (the so-called biases and -weights which deternine the architecture of a neural network), are -uptaded iteratively using the so-called back-propagation algorithm. -This algorithm corresponds to the so-called reverse mode of -automatic differentation. -

- - -

Basics of an NN

- -

A neural network consists of a series of hidden layers, in addition to -the input and output layers. Each layer \( l \) has a set of parameters -\( \boldsymbol{\Theta}^{(l)}=(\boldsymbol{W}^{(l)},\boldsymbol{b}^{(l)}) \) which are related to the -parameters in other layers through a series of affine transformations, -for a standard NN these are matrix-matrix and matrix-vector -multiplications. For all layers we will simply use a collective variable \( \boldsymbol{\Theta} \). -

- -

It consist of two basic steps:

-
    -
  1. a feed forward stage which takes a given input and produces a final output which is compared with the target values through our cost/loss function.
  2. -
  3. a back-propagation state where the unknown parameters \( \boldsymbol{\Theta} \) are updated through the optimization of the their gradients. The expressions for the gradients are obtained via the chain rule, starting from the derivative of the cost/function.
  4. -
-

These two steps make up one iteration. This iterative process is continued till we reach an eventual stopping criterion.

- - -

Overarching view of a neural network

- -

The architecture of a neural network defines our model. This model -aims at describing some function \( f(\boldsymbol{x} \) which represents -some final result (outputs or tagrget values) given a specific inpput -\( \boldsymbol{x} \). Note that here \( \boldsymbol{y} \) and \( \boldsymbol{x} \) are not limited to be -vectors. -

- -

The architecture consists of

-
    -
  1. An input and an output layer where the input layer is defined by the inputs \( \boldsymbol{x} \). The output layer produces the model ouput \( \boldsymbol{\tilde{y}} \) which is compared with the target value \( \boldsymbol{y} \)
  2. -
  3. A given number of hidden layers and neurons/nodes/units for each layer (this may vary)
  4. -
  5. A given activation function \( \sigma(\boldsymbol{z}) \) with arguments \( \boldsymbol{z} \) to be defined below. The activation functions may differ from layer to layer.
  6. -
  7. The last layer, normally called output layer has normally an activation function tailored to the specific problem
  8. -
  9. Finally we define a so-called cost or loss function which is used to gauge the quality of our model.
  10. -
- -

The optimization problem

- -

The cost function is a function of the unknown parameters -\( \boldsymbol{\Theta} \) where the latter is a container for all possible -parameters needed to define a neural network -

- -

If we are dealing with a regression task a typical cost/loss function -is the mean squared error -

-$$ -C(\boldsymbol{\Theta})=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)\right\}. -$$ - -

This function represents one of many possible ways to define -the so-called cost function. Note that here we have assumed a linear dependence in terms of the paramters \( \boldsymbol{\Theta} \). This is in general not the case. -

- - -

Parameters of neural networks

-

For neural networks the parameters -\( \boldsymbol{\Theta} \) are given by the so-called weights and biases (to be -defined below). -

- -

The weights are given by matrix elements \( w_{ij}^{(l)} \) where the -superscript indicates the layer number. The biases are typically given -by vector elements representing each single node of a given layer, -that is \( b_j^{(l)} \). -

- - -

Other ingredients of a neural network

- -

Having defined the architecture of a neural network, the optimization -of the cost function with respect to the parameters \( \boldsymbol{\Theta} \), -involves the calculations of gradients and their optimization. The -gradients represent the derivatives of a multidimensional object and -are often approximated by various gradient methods, including -

-
    -
  1. various quasi-Newton methods,
  2. -
  3. plain gradient descent (GD) with a constant learning rate \( \eta \),
  4. -
  5. GD with momentum and other approximations to the learning rates such as
  6. -
      -
    • Adapative gradient (ADAgrad)
    • -
    • Root mean-square propagation (RMSprop)
    • -
    • Adaptive gradient with momentum (ADAM) and many other
    • -
    -
  7. Stochastic gradient descent and various families of learning rate approximations
  8. -
- -

Other parameters

- -

In addition to the above, there are often additional hyperparamaters -which are included in the setup of a neural network. These will be -discussed below. -

- - -

Universal approximation theorem

- -

The universal approximation theorem plays a central role in deep -learning. Cybenko (1989) showed -the following: -

- -
-
- -

Let \( \sigma \) be any continuous sigmoidal function such that

-$$ -\sigma(z) = \left\{\begin{array}{cc} 1 & z\rightarrow \infty\\ 0 & z \rightarrow -\infty \end{array}\right. -$$ - -

Given a continuous and deterministic function \( F(\boldsymbol{x}) \) on the unit -cube in \( d \)-dimensions \( F\in [0,1]^d \), \( x\in [0,1]^d \) and a parameter -\( \epsilon >0 \), there is a one-layer (hidden) neural network -\( f(\boldsymbol{x};\boldsymbol{\Theta}) \) with \( \boldsymbol{\Theta}=(\boldsymbol{W},\boldsymbol{b}) \) and \( \boldsymbol{W}\in -\mathbb{R}^{m\times n} \) and \( \boldsymbol{b}\in \mathbb{R}^{n} \), for which -

-$$ -\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert < \epsilon \hspace{0.1cm} \forall \boldsymbol{x}\in[0,1]^d. -$$ -
-
- - - -

Some parallels from real analysis

- -

For those of you familiar with for example the Stone-Weierstrass -theorem -for polynomial approximations or the convergence criterion for Fourier -series, there are similarities in the derivation of the proof for -neural networks. -

- - -

The approximation theorem in words

- -

Any continuous function \( y=F(\boldsymbol{x}) \) supported on the unit cube in -\( d \)-dimensions can be approximated by a one-layer sigmoidal network to -arbitrary accuracy. -

- -

Hornik (1991) extended the theorem by letting any non-constant, bounded activation function to be included using that the expectation value

-$$ -\mathbb{E}[\vert F(\boldsymbol{x})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \infty. -$$ - -

Then we have

-$$ -\mathbb{E}[\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \epsilon. -$$ - - - -

More on the general approximation theorem

- -

None of the proofs give any insight into the relation between the -number of of hidden layers and nodes and the approximation error -\( \epsilon \), nor the magnitudes of \( \boldsymbol{W} \) and \( \boldsymbol{b} \). -

- -

Neural networks (NNs) have what we may call a kind of universality no matter what function we want to compute.

- -
-
- -

It does not mean that an NN can be used to exactly compute any function. Rather, we get an approximation that is as good as we want.

-
-
- - - -

Class of functions we can approximate

- -
-
- -

The class of functions that can be approximated are the continuous ones. -If the function \( F(\boldsymbol{x}) \) is discontinuous, it won't in general be possible to approximate it. However, an NN may still give an approximation even if we fail in some points. -

-
-
- - - -

Setting up the equations for a neural network

- -

The questions we want to ask are how do changes in the biases and the -weights in our network change the cost function and how can we use the -final output to modify the weights and biases? -

- -

To derive these equations let us start with a plain regression problem -and define our cost function as -

- -$$ -{\cal C}(\boldsymbol{\Theta}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2, -$$ - -

where the $y_i$s are our \( n \) targets (the values we want to -reproduce), while the outputs of the network after having propagated -all inputs \( \boldsymbol{x} \) are given by \( \boldsymbol{\tilde{y}}_i \). -

- - -

Layout of a neural network with three hidden layers

- -

-
-

-
-

- - -

Definitions

- -

With our definition of the targets \( \boldsymbol{y} \), the outputs of the -network \( \boldsymbol{\tilde{y}} \) and the inputs \( \boldsymbol{x} \) we -define now the activation \( z_j^l \) of node/neuron/unit \( j \) of the -\( l \)-th layer as a function of the bias, the weights which add up from -the previous layer \( l-1 \) and the forward passes/outputs -\( \hat{a}^{l-1} \) from the previous layer as -

- -$$ -z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, -$$ - -

where \( b_k^l \) are the biases from layer \( l \). Here \( M_{l-1} \) -represents the total number of nodes/neurons/units of layer \( l-1 \). The -figure in the whiteboard notes illustrates this equation. We can rewrite this in a more -compact form as the matrix-vector products we discussed earlier, -

- -$$ -\hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. -$$ - - - -

Inputs to the activation function

- -

With the activation values \( \boldsymbol{z}^l \) we can in turn define the -output of layer \( l \) as \( \boldsymbol{a}^l = f(\boldsymbol{z}^l) \) where \( f \) is our -activation function. In the examples here we will use the sigmoid -function discussed in our logistic regression lectures. We will also use the same activation function \( f \) for all layers -and their nodes. It means we have -

- -$$ -a_j^l = \sigma(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. -$$ - - - -

Derivatives and the chain rule

- -

From the definition of the activation \( z_j^l \) we have

-$$ -\frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, -$$ - -

and

-$$ -\frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. -$$ - -

With our definition of the activation function we have that (note that this function depends only on \( z_j^l \))

-$$ -\frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=\sigma(z_j^l)(1-\sigma(z_j^l)). -$$ - - - -

Derivative of the cost function

- -

With these definitions we can now compute the derivative of the cost function in terms of the weights.

- -

Let us specialize to the output layer \( l=L \). Our cost function is

-$$ -{\cal C}(\boldsymbol{\Theta}^L) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - y_i\right)^2, -$$ - -

The derivative of this function with respect to the weights is

- -$$ -\frac{\partial{\cal C}(\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, -$$ - -

The last partial derivative can easily be computed and reads (by applying the chain rule)

-$$ -\frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}. -$$ - - - -

Simpler examples first, and automatic differentiation

- -

In order to understand the back propagation algorithm and its -derivation (an implementation of the chain rule), let us first digress -with some simple examples. These examples are also meant to motivate -the link with back propagation and automatic differentiation. -

- - -

Reminder on the chain rule and gradients

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t) \) and \( y=y(t) \) are functions of a variable \( t \), we have that the gradient of \( f \) with respect to \( t \) (without the explicit unit vector components)

-$$ -\frac{df}{dt} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial t} \end{bmatrix}=\frac{\partial f}{\partial x} \frac{\partial x}{\partial t} +\frac{\partial f}{\partial y} \frac{\partial y}{\partial t}. -$$ - - - -

Multivariable functions

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t,s) \) and \( y=y(t,s) \) are functions of the variables \( t \) and \( s \), we have that the partial derivatives

-$$ -\frac{\partial f}{\partial s}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial s}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial s}, -$$ - -

and

-$$ -\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}. -$$ - -

the gradient of \( f \) with respect to \( t \) and \( s \) (without the explicit unit vector components)

-$$ -\frac{df}{d(s,t)} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial s} &\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial s} & \frac{\partial y}{\partial t} \end{bmatrix}. -$$ - - - -

Automatic differentiation through examples

- -

A great introduction to automatic differentiation is given by Baydin et al., see https://arxiv.org/abs/1502.05767.

- -

Automatic differentiation is a represented by a repeated application -of the chain rule on well-known functions and allows for the -calculation of derivatives to numerical precision. It is not the same -as the calculation of symbolic derivatives via for example SymPy, nor -does it use approximative formulae based on Taylor-expansions of a -function around a given value. The latter are error prone due to -truncation errors and values of the step size \( \Delta \). -

- - -

Simple example

- -

Our first example is rather simple,

-$$ -f(x) =\exp{x^2}, -$$ - -

with derivative

-$$ -f'(x) =2x\exp{x^2}. -$$ - -

We can use SymPy to extract the pertinent lines of Python code through the following simple example

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = exp(x*x)
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - -

Smarter way of evaluating the above function

-

If we study this function, we note that we can reduce the number of operations by introducing an intermediate variable

-$$ -a = x^2, -$$ - -

leading to

-$$ -f(x) = f(a(x)) = b= \exp{a}. -$$ - -

We now assume that all operations can be counted in terms of equal -floating point operations. This means that in order to calculate -\( f(x) \) we need first to square \( x \) and then compute the exponential. We -have thus two floating point operations only. -

- - -

Reducing the number of operations

- -

With the introduction of a precalculated quantity \( a \) and thereby \( f(x) \) we have that the derivative can be written as

- -$$ -f'(x) = 2xb, -$$ - -

which reduces the number of operations from four in the orginal -expression to two. This means that if we need to compute \( f(x) \) and -its derivative (a common task in optimizations), we have reduced the -number of operations from six to four in total. -

- -

Note that the usage of a symbolic software like SymPy does not -include such simplifications and the calculations of the function and -the derivatives yield in general more floating point operations. -

- - -

Chain rule, forward and reverse modes

- -

In the above example we have introduced the variables \( a \) and \( b \), and our function is

-$$ -f(x) = f(a(x)) = b= \exp{a}, -$$ - -

with \( a=x^2 \). We can decompose the derivative of \( f \) with respect to \( x \) as

-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}. -$$ - -

We note that since \( b=f(x) \) that

-$$ -\frac{df}{db}=1, -$$ - -

leading to

-$$ -\frac{df}{dx}=\frac{db}{da}\frac{da}{dx}=2x\exp{x^2}, -$$ - -

as before.

- - -

Forward and reverse modes

- -

We have that

-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}, -$$ - -

which we can rewrite either as

-$$ -\frac{df}{dx}=\left[\frac{df}{db}\frac{db}{da}\right]\frac{da}{dx}, -$$ - -

or

-$$ -\frac{df}{dx}=\frac{df}{db}\left[\frac{db}{da}\frac{da}{dx}\right]. -$$ - -

The first expression is called reverse mode (or back propagation) -since we start by evaluating the derivatives at the end point and then -propagate backwards. This is the standard way of evaluating -derivatives (gradients) when optimizing the parameters of a neural -network. In the context of deep learning this is computationally -more efficient since the output of a neural network consists of either -one or some few other output variables. -

- -

The second equation defines the so-called forward mode.

- - -

More complicated function

- -

We increase our ambitions and introduce a slightly more complicated function

-$$ -f(x) =\sqrt{x^2+exp{x^2}}, -$$ - -

with derivative

-$$ -f'(x) =\frac{x(1+\exp{x^2})}{\sqrt{x^2+exp{x^2}}}. -$$ - -

The corresponding SymPy code reads

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = sqrt(x*x+exp(x*x))
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - -

Counting the number of floating point operations

- -

A simple count of operations shows that we need five operations for -the function itself and ten for the derivative. Fifteen operations in total if we wish to proceed with the above codes. -

- -

Can we reduce this to -say half the number of operations? -

- - -

Defining intermediate operations

- -

We can indeed reduce the number of operation to half of those listed in the brute force approach above. -We define the following quantities -

-$$ -a = x^2, -$$ - -

and

-$$ -b = \exp{x^2} = \exp{a}, -$$ - -

and

-$$ -c= a+b, -$$ - -

and

-$$ -d=f(x)=\sqrt{c}. -$$ - - - -

New expression for the derivative

- -

With these definitions we obtain the following partial derivatives

-$$ -\frac{\partial a}{\partial x} = 2x, -$$ - -

and

-$$ -\frac{\partial b}{\partial a} = \exp{a}, -$$ - -

and

-$$ -\frac{\partial c}{\partial a} = 1, -$$ - -

and

-$$ -\frac{\partial c}{\partial b} = 1, -$$ - -

and

-$$ -\frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ - -

and finally

-$$ -\frac{\partial f}{\partial d} = 1. -$$ - - - -

Final derivatives

-

Our final derivatives are thus

-$$ -\frac{\partial f}{\partial c} = \frac{\partial f}{\partial d} \frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ - -$$ -\frac{\partial f}{\partial b} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial b} = \frac{1}{2\sqrt{c}}, -$$ - -$$ -\frac{\partial f}{\partial a} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial a}+ -\frac{\partial f}{\partial b} \frac{\partial b}{\partial a} = \frac{1+\exp{a}}{2\sqrt{c}}, -$$ - -

and finally

-$$ -\frac{\partial f}{\partial x} = \frac{\partial f}{\partial a} \frac{\partial a}{\partial x} = \frac{x(1+\exp{a})}{\sqrt{c}}, -$$ - -

which is just

-$$ -\frac{\partial f}{\partial x} = \frac{x(1+b)}{d}, -$$ - -

and requires only three operations if we can reuse all intermediate variables.

- - -

In general not this simple

- -

In general, see the generalization below, unless we can obtain simple -analytical expressions which we can simplify further, the final -implementation of automatic differentiation involves repeated -calculations (and thereby operations) of derivatives of elementary -functions. -

- - -

Automatic differentiation

- -

We can make this example more formal. Automatic differentiation is a -formalization of the previous example (see graph). -

- -

We define \( \boldsymbol{x}\in x_1,\dots, x_l \) input variables to a given function \( f(\boldsymbol{x}) \) and \( x_{l+1},\dots, x_L \) intermediate variables.

- -

In the above example we have only one input variable, \( l=1 \) and four intermediate variables, that is

-$$ -\begin{bmatrix} x_1=x & x_2 = x^2=a & x_3 =\exp{a}= b & x_4=c=a+b & x_5 = \sqrt{c}=d \end{bmatrix}. -$$ - -

Furthemore, for \( i=l+1, \dots, L \) (here \( i=2,3,4,5 \) and \( f=x_L=d \)), we -define the elementary functions \( g_i(x_{Pa(x_i)}) \) where \( x_{Pa(x_i)} \) are the parent nodes of the variable \( x_i \). -

- -

In our case, we have for example for \( x_3=g_3(x_{Pa(x_i)})=\exp{a} \), that \( g_3=\exp{()} \) and \( x_{Pa(x_3)}=a \).

- - -

Chain rule

- -

We can now compute the gradients by back-propagating the derivatives using the chain rule. -We have defined -

-$$ -\frac{\partial f}{\partial x_L} = 1, -$$ - -

which allows us to find the derivatives of the various variables \( x_i \) as

-$$ -\frac{\partial f}{\partial x_i} = \sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial x_j}{\partial x_i}=\sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial g_j}{\partial x_i}. -$$ - -

Whenever we have a function which can be expressed as a computation -graph and the various functions can be expressed in terms of -elementary functions that are differentiable, then automatic -differentiation works. The functions may not need to be elementary -functions, they could also be computer programs, although not all -programs can be automatically differentiated. -

- - -

First network example, simple percepetron with one input

- -

As yet another example we define now a simple perceptron model with -all quantities given by scalars. We consider only one input variable -\( x \) and one target value \( y \). We define an activation function -\( \sigma_1 \) which takes as input -

- -$$ -z_1 = w_1x+b_1, -$$ - -

where \( w_1 \) is the weight and \( b_1 \) is the bias. These are the -parameters we want to optimize. The output is \( a_1=\sigma(z_1) \) (see -graph from whiteboard notes). This output is then fed into the -cost/loss function, which we here for the sake of simplicity just -define as the squared error -

- -$$ -C(x;w_1,b_1)=\frac{1}{2}(a_1-y)^2. -$$ - - - -

Layout of a simple neural network with no hidden layer

- -

-
-

-
-

- - -

Optimizing the parameters

- -

In setting up the feed forward and back propagation parts of the -algorithm, we need now the derivative of the various variables we want -to train. -

- -

We need

-$$ -\frac{\partial C}{\partial w_1} \hspace{0.1cm}\mathrm{and}\hspace{0.1cm}\frac{\partial C}{\partial b_1}. -$$ - -

Using the chain rule we find

-$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_1-y)\sigma_1'x, -$$ - -

and

-$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_1-y)\sigma_1', -$$ - -

which we later will just define as

-$$ -\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}=\delta_1. -$$ - - - -

Adding a hidden layer

- -

We change our simple model to (see graph) -a network with just one hidden layer but with scalar variables only. -

- -

Our output variable changes to \( a_2 \) and \( a_1 \) is now the output from the hidden node and \( a_0=x \). -We have then -

-$$ -z_1 = w_1a_0+b_1 \hspace{0.1cm} \wedge a_1 = \sigma_1(z_1), -$$ - -$$ -z_2 = w_2a_1+b_2 \hspace{0.1cm} \wedge a_2 = \sigma_2(z_2), -$$ - -

and the cost function

-$$ -C(x;\boldsymbol{\Theta})=\frac{1}{2}(a_2-y)^2, -$$ - -

with \( \boldsymbol{\Theta}=[w_1,w_2,b_1,b_2] \).

- - -

Layout of a simple neural network with one hidden layer

- -

-
-

-
-

- - -

The derivatives

- -

The derivatives are now, using the chain rule again

- -$$ -\frac{\partial C}{\partial w_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial w_2}=(a_2-y)\sigma_2'a_1=\delta_2a_1, -$$ - -$$ -\frac{\partial C}{\partial b_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial b_2}=(a_2-y)\sigma_2'=\delta_2, -$$ - -$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_2-y)\sigma_2'a_1\sigma_1'a_0, -$$ - -$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_2-y)\sigma_2'\sigma_1'=\delta_1. -$$ - -

Can you generalize this to more than one hidden layer?

- - -

Important observations

- -
-
- -

From the above equations we see that the derivatives of the activation -functions play a central role. If they vanish, the training may -stop. This is called the vanishing gradient problem, see discussions below. If they become -large, the parameters \( w_i \) and \( b_i \) may simply go to infinity. This -is referenced as the exploding gradient problem. -

-
-
- - - -

The training

- -

The training of the parameters is done through various gradient descent approximations with

- -$$ -w_{i}\leftarrow w_{i}- \eta \delta_i a_{i-1}, -$$ - -

and

-$$ -b_i \leftarrow b_i-\eta \delta_i, -$$ - -

with \( \eta \) is the learning rate.

- -

One iteration consists of one feed forward step and one back-propagation step. Each back-propagation step does one update of the parameters \( \boldsymbol{\Theta} \).

- -

For the first hidden layer \( a_{i-1}=a_0=x \) for this simple model.

- - -

Code example

- -

The code here implements the above model with one hidden layer and -scalar variables for the same function we studied in the previous -example. The code is however set up so that we can add multiple -inputs \( x \) and target values \( y \). Note also that we have the -possibility of defining a feature matrix \( \boldsymbol{X} \) with more than just -one column for the input values. This will turn useful in our next example. We have also defined matrices and vectors for all of our operations although it is not necessary here. -

- - - -
-
-
-
-
-
import numpy as np
-# We use the Sigmoid function as activation function
-def sigmoid(z):
-    return 1.0/(1.0+np.exp(-z))
-
-def forwardpropagation(x):
-    # weighted sum of inputs to the hidden layer
-    z_1 = np.matmul(x, w_1) + b_1
-    # activation in the hidden layer
-    a_1 = sigmoid(z_1)
-    # weighted sum of inputs to the output layer
-    z_2 = np.matmul(a_1, w_2) + b_2
-    a_2 = z_2
-    return a_1, a_2
-
-def backpropagation(x, y):
-    a_1, a_2 = forwardpropagation(x)
-    # parameter delta for the output layer, note that a_2=z_2 and its derivative wrt z_2 is just 1
-    delta_2 = a_2 - y
-    print(0.5*((a_2-y)**2))
-    # delta for  the hidden layer
-    delta_1 = np.matmul(delta_2, w_2.T) * a_1 * (1 - a_1)
-    # gradients for the output layer
-    output_weights_gradient = np.matmul(a_1.T, delta_2)
-    output_bias_gradient = np.sum(delta_2, axis=0)
-    # gradient for the hidden layer
-    hidden_weights_gradient = np.matmul(x.T, delta_1)
-    hidden_bias_gradient = np.sum(delta_1, axis=0)
-    return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient
-
-
-# ensure the same random numbers appear every time
-np.random.seed(0)
-# Input variable
-x = np.array([4.0],dtype=np.float64)
-# Target values
-y = 2*x+1.0 
-
-# Defining the neural network, only scalars here
-n_inputs = x.shape
-n_features = 1
-n_hidden_neurons = 1
-n_outputs = 1
-
-# Initialize the network
-# weights and bias in the hidden layer
-w_1 = np.random.randn(n_features, n_hidden_neurons)
-b_1 = np.zeros(n_hidden_neurons) + 0.01
-
-# weights and bias in the output layer
-w_2 = np.random.randn(n_hidden_neurons, n_outputs)
-b_2 = np.zeros(n_outputs) + 0.01
-
-eta = 0.1
-for i in range(50):
-    # calculate gradients
-    derivW2, derivB2, derivW1, derivB1 = backpropagation(x, y)
-    # update weights and biases
-    w_2 -= eta * derivW2
-    b_2 -= eta * derivB2
-    w_1 -= eta * derivW1
-    b_1 -= eta * derivB1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

We see that after some few iterations (the results do depend on the learning rate however), we get an error which is rather small.

- - - - -

Exercise 1: Including more data

- -

Try to increase the amount of input and -target/output data. Try also to perform calculations for more values -of the learning rates. Feel free to add either hyperparameters with an -\( l_1 \) norm or an \( l_2 \) norm and discuss your results. -Discuss your results as functions of the amount of training data and various learning rates. -

- -

Challenge: Try to change the activation functions and replace the hard-coded analytical expressions with automatic derivation via either autograd or JAX.

- - - - -

Simple neural network and the back propagation equations

- -

Let us now try to increase our level of ambition and attempt at setting -up the equations for a neural network with two input nodes, one hidden -layer with two hidden nodes and one output layer with one output node/neuron only (see graph).. -

- -

We need to define the following parameters and variables with the input layer (layer \( (0) \)) -where we label the nodes \( x_0 \) and \( x_1 \) -

-$$ -x_0 = a_0^{(0)} \wedge x_1 = a_1^{(0)}. -$$ - -

The hidden layer (layer \( (1) \)) has nodes which yield the outputs \( a_0^{(1)} \) and \( a_1^{(1)} \)) with weight \( \boldsymbol{w} \) and bias \( \boldsymbol{b} \) parameters

-$$ -w_{ij}^{(1)}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)}\right\} \wedge b^{(1)}=\left\{b_0^{(1)},b_1^{(1)}\right\}. -$$ - - - -

Layout of a simple neural network with two input nodes, one hidden layer and one output node

- -

-
-

-
-

- - -

The ouput layer

- -

Finally, we have the ouput layer given by layer label \( (2) \) with output \( a^{(2)} \) and weights and biases to be determined given by the variables

-$$ -w_{i}^{(2)}=\left\{w_{0}^{(2)},w_{1}^{(2)}\right\} \wedge b^{(2)}. -$$ - -

Our output is \( \tilde{y}=a^{(2)} \) and we define a generic cost function \( C(a^{(2)},y;\boldsymbol{\Theta}) \) where \( y \) is the target value (a scalar here). -The parameters we need to optimize are given by -

-$$ -\boldsymbol{\Theta}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)},w_{0}^{(2)},w_{1}^{(2)},b_0^{(1)},b_1^{(1)},b^{(2)}\right\}. -$$ - - - -

Compact expressions

- -

We can define the inputs to the activation functions for the various layers in terms of various matrix-vector multiplications and vector additions. -The inputs to the first hidden layer are -

-$$ -\begin{bmatrix}z_0^{(1)} \\ z_1^{(1)} \end{bmatrix}=\begin{bmatrix}w_{00}^{(1)} & w_{01}^{(1)}\\ w_{10}^{(1)} &w_{11}^{(1)} \end{bmatrix}\begin{bmatrix}a_0^{(0)} \\ a_1^{(0)} \end{bmatrix}+\begin{bmatrix}b_0^{(1)} \\ b_1^{(1)} \end{bmatrix}, -$$ - -

with outputs

-$$ -\begin{bmatrix}a_0^{(1)} \\ a_1^{(1)} \end{bmatrix}=\begin{bmatrix}\sigma^{(1)}(z_0^{(1)}) \\ \sigma^{(1)}(z_1^{(1)}) \end{bmatrix}. -$$ - - - -

Output layer

- -

For the final output layer we have the inputs to the final activation function

-$$ -z^{(2)} = w_{0}^{(2)}a_0^{(1)} +w_{1}^{(2)}a_1^{(1)}+b^{(2)}, -$$ - -

resulting in the output

-$$ -a^{(2)}=\sigma^{(2)}(z^{(2)}). -$$ - - - -

Explicit derivatives

- -

In total we have nine parameters which we need to train. Using the -chain rule (or just the back-propagation algorithm) we can find all -derivatives. Since we will use automatic differentiation in reverse -mode, we start with the derivatives of the cost function with respect -to the parameters of the output layer, namely -

- -$$ -\frac{\partial C}{\partial w_{i}^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial w_{i}^{(2)}}=\delta^{(2)}a_i^{(1)}, -$$ - -

with

-$$ -\delta^{(2)}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -$$ - -

and finally

-$$ -\frac{\partial C}{\partial b^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial b^{(2)}}=\delta^{(2)}. -$$ - - - -

Derivatives of the hidden layer

- -

Using the chain rule we have the following expressions for say one of the weight parameters (it is easy to generalize to the other weight parameters)

-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}= \delta^{(2)}\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}, -$$ - -

which, noting that

-$$ -z^{(2)} =w_0^{(2)}a_0^{(1)}+w_1^{(2)}a_1^{(1)}+b^{(2)}, -$$ - -

allows us to rewrite

-$$ -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}a_0^{(1)}. -$$ - - - -

Final expression

-

Defining

-$$ -\delta_0^{(1)}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}\delta^{(2)}, -$$ - -

we have

-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\delta_0^{(1)}a_0^{(1)}. -$$ - -

Similarly, we obtain

-$$ -\frac{\partial C}{\partial w_{01}^{(1)}}=\delta_0^{(1)}a_1^{(1)}. -$$ - - - -

Completing the list

- -

Similarly, we find

-$$ -\frac{\partial C}{\partial w_{10}^{(1)}}=\delta_1^{(1)}a_0^{(1)}, -$$ - -

and

-$$ -\frac{\partial C}{\partial w_{11}^{(1)}}=\delta_1^{(1)}a_1^{(1)}, -$$ - -

where we have defined

-$$ -\delta_1^{(1)}=w_1^{(2)}\frac{\partial a_1^{(1)}}{\partial z_1^{(1)}}\delta^{(2)}. -$$ - - - -

Final expressions for the biases of the hidden layer

- -

For the sake of completeness, we list the derivatives of the biases, which are

-$$ -\frac{\partial C}{\partial b_{0}^{(1)}}=\delta_0^{(1)}, -$$ - -

and

-$$ -\frac{\partial C}{\partial b_{1}^{(1)}}=\delta_1^{(1)}. -$$ - -

As we will see below, these expressions can be generalized in a more compact form.

- - -

Gradient expressions

- -

For this specific model, with just one output node and two hidden -nodes, the gradient descent equations take the following form for output layer -

-$$ -w_{i}^{(2)}\leftarrow w_{i}^{(2)}- \eta \delta^{(2)} a_{i}^{(1)}, -$$ - -

and

-$$ -b^{(2)} \leftarrow b^{(2)}-\eta \delta^{(2)}, -$$ - -

and

-$$ -w_{ij}^{(1)}\leftarrow w_{ij}^{(1)}- \eta \delta_{i}^{(1)} a_{j}^{(0)}, -$$ - -

and

-$$ -b_{i}^{(1)} \leftarrow b_{i}^{(1)}-\eta \delta_{i}^{(1)}, -$$ - -

where \( \eta \) is the learning rate.

- - - - -

Exercise 2: Extended program

- -

We extend our simple code to a function which depends on two variable \( x_0 \) and \( x_1 \), that is

-$$ -y=f(x_0,x_1)=x_0^2+3x_0x_1+x_1^2+5. -$$ - -

We feed our network with \( n=100 \) entries \( x_0 \) and \( x_1 \). We have thus two features represented by these variable and an input matrix/design matrix \( \boldsymbol{X}\in \mathbf{R}^{n\times 2} \)

-$$ -\boldsymbol{X}=\begin{bmatrix} x_{00} & x_{01} \\ x_{00} & x_{01} \\ x_{10} & x_{11} \\ x_{20} & x_{21} \\ \dots & \dots \\ \dots & \dots \\ x_{n-20} & x_{n-21} \\ x_{n-10} & x_{n-11} \end{bmatrix}. -$$ - -

Write a code, based on the previous code examples, which takes as input these data and fit the above function. -You can extend your code to include automatic differentiation. -

- -

With these examples, we are now ready to embark upon the writing of more a general code for neural networks.

- - - - -

Getting serious, the back propagation equations for a neural network

- -

Now it is time to move away from one node in each layer only. Our inputs are also represented either by several inputs.

- -

We have thus

-$$ -\frac{\partial{\cal C}((\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)a_j^L(1-a_j^L)a_k^{L-1}, -$$ - -

Defining

-$$ -\delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - y_j\right) = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -$$ - -

and using the Hadamard product of two vectors we can write this as

-$$ -\boldsymbol{\delta}^L = \sigma'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\boldsymbol{a}^L)}. -$$ - - - -

Analyzing the last results

- -

This is an important expression. The second term on the right handside -measures how fast the cost function is changing as a function of the $j$th -output activation. If, for example, the cost function doesn't depend -much on a particular output node \( j \), then \( \delta_j^L \) will be small, -which is what we would expect. The first term on the right, measures -how fast the activation function \( f \) is changing at a given activation -value \( z_j^L \). -

- - -

More considerations

- -

Notice that everything in the above equations is easily computed. In -particular, we compute \( z_j^L \) while computing the behaviour of the -network, and it is only a small additional overhead to compute -\( \sigma'(z^L_j) \). The exact form of the derivative with respect to the -output depends on the form of the cost function. -However, provided the cost function is known there should be little -trouble in calculating -

- -$$ -\frac{\partial {\cal C}}{\partial (a_j^L)} -$$ - -

With the definition of \( \delta_j^L \) we have a more compact definition of the derivative of the cost function in terms of the weights, namely

-$$ -\frac{\partial{\cal C}}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. -$$ - - - -

Derivatives in terms of \( z_j^L \)

- -

It is also easy to see that our previous equation can be written as

- -$$ -\delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, -$$ - -

which can also be interpreted as the partial derivative of the cost function with respect to the biases \( b_j^L \), namely

-$$ -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, -$$ - -

That is, the error \( \delta_j^L \) is exactly equal to the rate of change of the cost function as a function of the bias.

- - -

Bringing it together

- -

We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are

- -$$ -\begin{equation} -\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, -\label{_auto1} -\end{equation} -$$ - -

and

-$$ -\begin{equation} -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\label{_auto2} -\end{equation} -$$ - -

and

- -$$ -\begin{equation} -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, -\label{_auto3} -\end{equation} -$$ - - - -

Final back propagating equation

- -

We have that (replacing \( L \) with a general layer \( l \))

-$$ -\delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. -$$ - -

We want to express this in terms of the equations for layer \( l+1 \).

- - -

Using the chain rule and summing over all \( k \) entries

- -

We obtain

-$$ -\delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, -$$ - -

and recalling that

-$$ -z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, -$$ - -

with \( M_l \) being the number of nodes in layer \( l \), we obtain

-$$ -\delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l), -$$ - -

This is our final equation.

- -

We are now ready to set up the algorithm for back propagation and learning the weights and biases.

- - -

Setting up the back propagation algorithm

- -

The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.

- -

First, we set up the input data \( \hat{x} \) and the activations -\( \hat{z}_1 \) of the input layer and compute the activation function and -the pertinent outputs \( \hat{a}^1 \). -

- -

Secondly, we perform then the feed forward till we reach the output -layer and compute all \( \hat{z}_l \) of the input layer and compute the -activation function and the pertinent outputs \( \hat{a}^l \) for -\( l=1,2,3,\dots,L \). -

- -

Notation: The first hidden layer has \( l=1 \) as label and the final output layer has \( l=L \).

- - -

Setting up the back propagation algorithm, part 2

- -

Thereafter we compute the ouput error \( \hat{\delta}^L \) by computing all

-$$ -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. -$$ - -

Then we compute the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l). -$$ - - - -

Setting up the Back propagation algorithm, part 3

- -

Finally, we update the weights and the biases using gradient descent -for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases -according to the rules -

- -$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ - - -$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ - -

with \( \eta \) being the learning rate.

- - -

Updating the gradients

- -

With the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}sigma'(z_j^l), -$$ - -

we update the weights and the biases using gradient descent for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases according to the rules

-$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ - - -$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ - - - -

Activation functions

- -

A property that characterizes a neural network, other than its -connectivity, is the choice of activation function(s). As described -in, the following restrictions are imposed on an activation function -for a FFNN to fulfill the universal approximation theorem -

- -
    -
  • Non-constant
  • -
  • Bounded
  • -
  • Monotonically-increasing
  • -
  • Continuous
  • -
- -

Activation functions, Logistic and Hyperbolic ones

- -

The second requirement excludes all linear functions. Furthermore, in -a MLP with only linear activation functions, each layer simply -performs a linear transformation of its inputs. -

- -

Regardless of the number of layers, the output of the NN will be -nothing but a linear function of the inputs. Thus we need to introduce -some kind of non-linearity to the NN to be able to fit non-linear -functions Typical examples are the logistic Sigmoid -

- -$$ - f(x) = \frac{1}{1 + e^{-x}}, -$$ - -

and the hyperbolic tangent function

-$$ - f(x) = \tanh(x) -$$ - - - -

Relevance

- -

The sigmoid function are more biologically plausible because the -output of inactive neurons are zero. Such activation function are -called one-sided. However, it has been shown that the hyperbolic -tangent performs better than the sigmoid for training MLPs. has -become the most popular for deep neural networks -

- - - -
-
-
-
-
-
"""The sigmoid function (or the logistic curve) is a 
-function that takes any real number, z, and outputs a number (0,1).
-It is useful in neural networks for assigning weights on a relative scale.
-The value z is the weighted sum of parameters involved in the learning algorithm."""
-
-import numpy
-import matplotlib.pyplot as plt
-import math as mt
-
-z = numpy.arange(-5, 5, .1)
-sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z)))
-sigma = sigma_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, sigma)
-ax.set_ylim([-0.1, 1.1])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sigmoid function')
-
-plt.show()
-
-"""Step Function"""
-z = numpy.arange(-5, 5, .02)
-step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0)
-step = step_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, step)
-ax.set_ylim([-0.5, 1.5])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('step function')
-
-plt.show()
-
-"""Sine Function"""
-z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)
-t = numpy.sin(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, t)
-ax.set_ylim([-1.0, 1.0])
-ax.set_xlim([-2*mt.pi,2*mt.pi])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sine function')
-
-plt.show()
-
-"""Plots a graph of the squashing function used by a rectified linear
-unit"""
-z = numpy.arange(-2, 2, .1)
-zero = numpy.zeros(len(z))
-y = numpy.max([zero, z], axis=0)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, y)
-ax.set_ylim([-2.0, 2.0])
-ax.set_xlim([-2.0, 2.0])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('Rectified linear unit')
-
-plt.show()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - -

Fine-tuning neural network hyperparameters

- -

The flexibility of neural networks is also one of their main -drawbacks: there are many hyperparameters to tweak. Not only can you -use any imaginable network topology (how neurons/nodes are -interconnected), but even in a simple FFNN you can change the number -of layers, the number of neurons per layer, the type of activation -function to use in each layer, the weight initialization logic, the -stochastic gradient optmized and much more. How do you know what -combination of hyperparameters is the best for your task? -

- -
    -
  • You can use grid search with cross-validation to find the right hyperparameters.
  • -
-

However,since there are many hyperparameters to tune, and since -training a neural network on a large dataset takes a lot of time, you -will only be able to explore a tiny part of the hyperparameter space. -

- -
    -
  • You can use randomized search.
  • -
  • Or use tools like Oscar, which implements more complex algorithms to help you find a good set of hyperparameters quickly.
  • -
- -

Hidden layers

- -

For many problems you can start with just one or two hidden layers and -it will work just fine. For the MNIST data set you ca easily get a -high accuracy using just one hidden layer with a few hundred neurons. -You can reach for this data set above 98% accuracy using two hidden -layers with the same total amount of neurons, in roughly the same -amount of training time. -

- -

For more complex problems, you can gradually ramp up the number of -hidden layers, until you start overfitting the training set. Very -complex tasks, such as large image classification or speech -recognition, typically require networks with dozens of layers and they -need a huge amount of training data. However, you will rarely have to -train such networks from scratch: it is much more common to reuse -parts of a pretrained state-of-the-art network that performs a similar -task. -

- - -

Vanishing gradients

- -

The Back propagation algorithm we derived above works by going from -the output layer to the input layer, propagating the error gradient on -the way. Once the algorithm has computed the gradient of the cost -function with regards to each parameter in the network, it uses these -gradients to update each parameter with a Gradient Descent (GD) step. -

- -

Unfortunately for us, the gradients often get smaller and smaller as -the algorithm progresses down to the first hidden layers. As a result, -the GD update leaves the lower layer connection weights virtually -unchanged, and training never converges to a good solution. This is -known in the literature as the vanishing gradients problem. -

- - -

Exploding gradients

- -

In other cases, the opposite can happen, namely the the gradients can -grow bigger and bigger. The result is that many of the layers get -large updates of the weights the algorithm diverges. This is the -exploding gradients problem, which is mostly encountered in -recurrent neural networks. More generally, deep neural networks suffer -from unstable gradients, different layers may learn at widely -different speeds -

- - -

Is the Logistic activation function (Sigmoid) our choice?

- -

Although this unfortunate behavior has been empirically observed for -quite a while (it was one of the reasons why deep neural networks were -mostly abandoned for a long time), it is only around 2010 that -significant progress was made in understanding it. -

- -

A paper titled Understanding the Difficulty of Training Deep -Feedforward Neural Networks by Xavier Glorot and Yoshua Bengio found that -the problems with the popular logistic -sigmoid activation function and the weight initialization technique -that was most popular at the time, namely random initialization using -a normal distribution with a mean of 0 and a standard deviation of -1. -

- - -

Logistic function as the root of problems

- -

They showed that with this activation function and this -initialization scheme, the variance of the outputs of each layer is -much greater than the variance of its inputs. Going forward in the -network, the variance keeps increasing after each layer until the -activation function saturates at the top layers. This is actually made -worse by the fact that the logistic function has a mean of 0.5, not 0 -(the hyperbolic tangent function has a mean of 0 and behaves slightly -better than the logistic function in deep networks). -

- - -

The derivative of the Logistic funtion

- -

Looking at the logistic activation function, when inputs become large -(negative or positive), the function saturates at 0 or 1, with a -derivative extremely close to 0. Thus when backpropagation kicks in, -it has virtually no gradient to propagate back through the network, -and what little gradient exists keeps getting diluted as -backpropagation progresses down through the top layers, so there is -really nothing left for the lower layers. -

- -

In their paper, Glorot and Bengio propose a way to significantly -alleviate this problem. We need the signal to flow properly in both -directions: in the forward direction when making predictions, and in -the reverse direction when backpropagating gradients. We don’t want -the signal to die out, nor do we want it to explode and saturate. For -the signal to flow properly, the authors argue that we need the -variance of the outputs of each layer to be equal to the variance of -its inputs, and we also need the gradients to have equal variance -before and after flowing through a layer in the reverse direction. -

- - -

Insights from the paper by Glorot and Bengio

- -

One of the insights in the 2010 paper by Glorot and Bengio was that -the vanishing/exploding gradients problems were in part due to a poor -choice of activation function. Until then most people had assumed that -if Nature had chosen to use roughly sigmoid activation functions in -biological neurons, they must be an excellent choice. But it turns out -that other activation functions behave much better in deep neural -networks, in particular the ReLU activation function, mostly because -it does not saturate for positive values (and also because it is quite -fast to compute). -

- - -

The RELU function family

- -

The ReLU activation function suffers from a problem known as the dying -ReLUs: during training, some neurons effectively die, meaning they -stop outputting anything other than 0. -

- -

In some cases, you may find that half of your network’s neurons are -dead, especially if you used a large learning rate. During training, -if a neuron’s weights get updated such that the weighted sum of the -neuron’s inputs is negative, it will start outputting 0. When this -happen, the neuron is unlikely to come back to life since the gradient -of the ReLU function is 0 when its input is negative. -

- - -

ELU function

- -

To solve this problem, nowadays practitioners use a variant of the -ReLU function, such as the leaky ReLU discussed above or the so-called -exponential linear unit (ELU) function -

- -$$ -ELU(z) = \left\{\begin{array}{cc} \alpha\left( \exp{(z)}-1\right) & z < 0,\\ z & z \ge 0.\end{array}\right. -$$ - - - -

Which activation function should we use?

- -

In general it seems that the ELU activation function is better than -the leaky ReLU function (and its variants), which is better than -ReLU. ReLU performs better than \( \tanh \) which in turn performs better -than the logistic function. -

- -

If runtime performance is an issue, then you may opt for the leaky -ReLU function over the ELU function If you don’t want to tweak yet -another hyperparameter, you may just use the default \( \alpha \) of -\( 0.01 \) for the leaky ReLU, and \( 1 \) for ELU. If you have spare time and -computing power, you can use cross-validation or bootstrap to evaluate -other activation functions. -

- - -

More on activation functions, output layers

- -

In most cases you can use the ReLU activation function in the hidden -layers (or one of its variants). -

- -

It is a bit faster to compute than other activation functions, and the -gradient descent optimization does in general not get stuck. -

- -For the output layer: - -
    -
  • For classification the softmax activation function is generally a good choice for classification tasks (when the classes are mutually exclusive).
  • -
  • For regression tasks, you can simply use no activation function at all.
  • -
- -

Batch Normalization

- -

Batch Normalization aims to address the vanishing/exploding gradients -problems, and more generally the problem that the distribution of each -layer’s inputs changes during training, as the parameters of the -previous layers change. -

- -

The technique consists of adding an operation in the model just before -the activation function of each layer, simply zero-centering and -normalizing the inputs, then scaling and shifting the result using two -new parameters per layer (one for scaling, the other for shifting). In -other words, this operation lets the model learn the optimal scale and -mean of the inputs for each layer. In order to zero-center and -normalize the inputs, the algorithm needs to estimate the inputs’ mean -and standard deviation. It does so by evaluating the mean and standard -deviation of the inputs over the current mini-batch, from this the -name batch normalization. -

- - -

Dropout

- -

It is a fairly simple algorithm: at every training step, every neuron -(including the input neurons but excluding the output neurons) has a -probability \( p \) of being temporarily dropped out, meaning it will be -entirely ignored during this training step, but it may be active -during the next step. -

- -

The hyperparameter \( p \) is called the dropout rate, and it is typically -set to 50%. After training, the neurons are not dropped anymore. It -is viewed as one of the most popular regularization techniques. -

- - -

Gradient Clipping

- -

A popular technique to lessen the exploding gradients problem is to -simply clip the gradients during backpropagation so that they never -exceed some threshold (this is mostly useful for recurrent neural -networks). -

- -

This technique is called Gradient Clipping.

- -

In general however, Batch -Normalization is preferred. -

- - -

A top-down perspective on Neural networks

- -

The first thing we would like to do is divide the data into two or -three parts. A training set, a validation or dev (development) set, -and a test set. The test set is the data on which we want to make -predictions. The dev set is a subset of the training data we use to -check how well we are doing out-of-sample, after training the model on -the training dataset. We use the validation error as a proxy for the -test error in order to make tweaks to our model. It is crucial that we -do not use any of the test data to train the algorithm. This is a -cardinal sin in ML. Then: -

- -
    -
  1. Estimate optimal error rate
  2. -
  3. Minimize underfitting (bias) on training data set.
  4. -
  5. Make sure you are not overfitting.
  6. -
- -

More top-down perspectives

- -

If the validation and test sets are drawn from the same distributions, -then a good performance on the validation set should lead to similarly -good performance on the test set. -

- -

However, sometimes -the training data and test data differ in subtle ways because, for -example, they are collected using slightly different methods, or -because it is cheaper to collect data in one way versus another. In -this case, there can be a mismatch between the training and test -data. This can lead to the neural network overfitting these small -differences between the test and training sets, and a poor performance -on the test set despite having a good performance on the validation -set. To rectify this, Andrew Ng suggests making two validation or dev -sets, one constructed from the training data and one constructed from -the test data. The difference between the performance of the algorithm -on these two validation sets quantifies the train-test mismatch. This -can serve as another important diagnostic when using DNNs for -supervised learning. -

- - -

Limitations of supervised learning with deep networks

- -

Like all statistical methods, supervised learning using neural -networks has important limitations. This is especially important when -one seeks to apply these methods, especially to physics problems. Like -all tools, DNNs are not a universal solution. Often, the same or -better performance on a task can be achieved by using a few -hand-engineered features (or even a collection of random -features). -

- - -

Limitations of NNs

- -

Here we list some of the important limitations of supervised neural network based models.

- -
    -
  • Need labeled data. All supervised learning methods, DNNs for supervised learning require labeled data. Often, labeled data is harder to acquire than unlabeled data (e.g. one must pay for human experts to label images).
  • -
  • Supervised neural networks are extremely data intensive. DNNs are data hungry. They perform best when data is plentiful. This is doubly so for supervised methods where the data must also be labeled. The utility of DNNs is extremely limited if data is hard to acquire or the datasets are small (hundreds to a few thousand samples). In this case, the performance of other methods that utilize hand-engineered features can exceed that of DNNs.
  • -
- -

Homogeneous data

- -
    -
  • Homogeneous data. Almost all DNNs deal with homogeneous data of one type. It is very hard to design architectures that mix and match data types (i.e. some continuous variables, some discrete variables, some time series). In applications beyond images, video, and language, this is often what is required. In contrast, ensemble models like random forests or gradient-boosted trees have no difficulty handling mixed data types.
  • -
- -

More limitations

- -
    -
  • Many problems are not about prediction. In natural science we are often interested in learning something about the underlying distribution that generates the data. In this case, it is often difficult to cast these ideas in a supervised learning setting. While the problems are related, it is possible to make good predictions with a wrong model. The model might or might not be useful for understanding the underlying science.
  • -
-

Some of these remarks are particular to DNNs, others are shared by all supervised learning methods. This motivates the use of unsupervised methods which in part circumvent these problems.

- - -
- - - - -
- © 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
- - - diff --git a/doc/src/week41/week41-reveal.html b/doc/src/week41/week41-reveal.html deleted file mode 100644 index 34be85e14..000000000 --- a/doc/src/week41/week41-reveal.html +++ /dev/null @@ -1,2989 +0,0 @@ - - - - - - - - -Week 41 Neural networks and constructing a neural network code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - -
- -
-

Week 41 Neural networks and constructing a neural network code

-
- - -
-Morten Hjorth-Jensen -
- -
-Department of Physics, University of Oslo -
-
-
-

Week 41

-
-
- - -
- © 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
-
- -
-

Plan for week 41, October 7-11

-
- -
-

Material for the lecture on Monday October 7, 2024

-
    -

  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -

  3. Building our own Feed-forward Neural Network - -
  4. -
-

-

-Readings and Videos: -

-

    -

  1. These lecture notes
  2. -

  3. Rashcka et al chapter 11
  4. -

  5. For neural networks we recommend Goodfellow et al chapter 6. -
      -

    1. Neural Networks demystified at https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs
    2. -
    -

    -

  6. Building Neural Networks from scratch at https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex
  7. -

  8. Video on Neural Networks at https://www.youtube.com/watch?v=CqOfi41LfDw
  9. -

  10. Video on the back propagation algorithm at https://www.youtube.com/watch?v=Ilg3gGewQ5U
  11. -
-

-

We also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at http://neuralnetworksanddeeplearning.com/chap4.html.

-
-
- -
-

Material for the active learning sessions on Tuesday and Wednesday

-
    -

  • Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation
  • -

  • One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code
  • -

  • Discussion of project 2
  • -

  • Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent
  • -
-
- -
-

Lecture Monday October 7

-
- -
-

Introduction to Neural networks

- -

Artificial neural networks are computational systems that can learn to -perform tasks by considering examples, generally without being -programmed with any task-specific rules. It is supposed to mimic a -biological system, wherein neurons interact by sending signals in the -form of mathematical functions between layers. All layers can contain -an arbitrary number of neurons, and each connection is represented by -a weight variable. -

-
- -
-

Artificial neurons

- -

The field of artificial neural networks has a long history of -development, and is closely connected with the advancement of computer -science and computers in general. A model of artificial neurons was -first developed by McCulloch and Pitts in 1943 to study signal -processing in the brain and has later been refined by others. The -general idea is to mimic neural networks in the human brain, which is -composed of billions of neurons that communicate with each other by -sending electrical signals. Each neuron accumulates its incoming -signals, which must exceed an activation threshold to yield an -output. If the threshold is not overcome, the neuron remains inactive, -i.e. has zero output. -

- -

This behaviour has inspired a simple mathematical model for an artificial neuron.

- -

 
-$$ -\begin{equation} - y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) -\tag{1} -\end{equation} -$$ -

 
- -

Here, the output \( y \) of the neuron is the value of its activation function, which have as input -a weighted sum of signals \( x_i, \dots ,x_n \) received by \( n \) other neurons. -

- -

Conceptually, it is helpful to divide neural networks into four -categories: -

-
    -

  1. general purpose neural networks for supervised learning,
  2. -

  3. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs),
  4. -

  5. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and
  6. -

  7. neural networks for unsupervised learning such as Deep Boltzmann Machines.
  8. -
-

-

In natural science, DNNs and CNNs have already found numerous -applications. In statistical physics, they have been applied to detect -phase transitions in 2D Ising and Potts models, lattice gauge -theories, and different phases of polymers, or solving the -Navier-Stokes equation in weather forecasting. Deep learning has also -found interesting applications in quantum physics. Various quantum -phase transitions can be detected and studied using DNNs and CNNs, -topological phases, and even non-equilibrium many-body -localization. Representing quantum states as DNNs quantum state -tomography are among some of the impressive achievements to reveal the -potential of DNNs to facilitate the study of quantum systems. -

- -

In quantum information theory, it has been shown that one can perform -gate decompositions with the help of neural. -

- -

The applications are not limited to the natural sciences. There is a -plethora of applications in essentially all disciplines, from the -humanities to life science and medicine. -

-
- -
-

Neural network types

- -

An artificial neural network (ANN), is a computational model that -consists of layers of connected neurons, or nodes or units. We will -refer to these interchangeably as units or nodes, and sometimes as -neurons. -

- -

It is supposed to mimic a biological nervous system by letting each -neuron interact with other neurons by sending signals in the form of -mathematical functions between layers. A wide variety of different -ANNs have been developed, but most of them consist of an input layer, -an output layer and eventual layers in-between, called hidden -layers. All layers can contain an arbitrary number of nodes, and each -connection between two nodes is associated with a weight variable. -

- -

Neural networks (also called neural nets) are neural-inspired -nonlinear models for supervised learning. As we will see, neural nets -can be viewed as natural, more powerful extensions of supervised -learning methods such as linear and logistic regression and soft-max -methods we discussed earlier. -

-
- -
-

Feed-forward neural networks

- -

The feed-forward neural network (FFNN) was the first and simplest type -of ANNs that were devised. In this network, the information moves in -only one direction: forward through the layers. -

- -

Nodes are represented by circles, while the arrows display the -connections between the nodes, including the direction of information -flow. Additionally, each arrow corresponds to a weight variable -(figure to come). We observe that each node in a layer is connected -to all nodes in the subsequent layer, making this a so-called -fully-connected FFNN. -

-
- -
-

Convolutional Neural Network

- -

A different variant of FFNNs are convolutional neural networks -(CNNs), which have a connectivity pattern inspired by the animal -visual cortex. Individual neurons in the visual cortex only respond to -stimuli from small sub-regions of the visual field, called a receptive -field. This makes the neurons well-suited to exploit the strong -spatially local correlation present in natural images. The response of -each neuron can be approximated mathematically as a convolution -operation. (figure to come) -

- -

Convolutional neural networks emulate the behaviour of neurons in the -visual cortex by enforcing a local connectivity pattern between -nodes of adjacent layers: Each node in a convolutional layer is -connected only to a subset of the nodes in the previous layer, in -contrast to the fully-connected FFNN. Often, CNNs consist of several -convolutional layers that learn local features of the input, with a -fully-connected layer at the end, which gathers all the local data and -produces the outputs. They have wide applications in image and video -recognition. -

-
- -
-

Recurrent neural networks

- -

So far we have only mentioned ANNs where information flows in one -direction: forward. Recurrent neural networks on the other hand, -have connections between nodes that form directed cycles. This -creates a form of internal memory which are able to capture -information on what has been calculated before; the output is -dependent on the previous computations. Recurrent NNs make use of -sequential information by performing the same task for every element -in a sequence, where each element depends on previous elements. An -example of such information is sentences, making recurrent NNs -especially well-suited for handwriting and speech recognition. -

-
- -
-

Other types of networks

- -

There are many other kinds of ANNs that have been developed. One type -that is specifically designed for interpolation in multidimensional -space is the radial basis function (RBF) network. RBFs are typically -made up of three layers: an input layer, a hidden layer with -non-linear radial symmetric activation functions and a linear output -layer (''linear'' here means that each node in the output layer has a -linear activation function). The layers are normally fully-connected -and there are no cycles, thus RBFs can be viewed as a type of -fully-connected FFNN. They are however usually treated as a separate -type of NN due the unusual activation functions. -

-
- -
-

Multilayer perceptrons

- -

One uses often so-called fully-connected feed-forward neural networks -with three or more layers (an input layer, one or more hidden layers -and an output layer) consisting of neurons that have non-linear -activation functions. -

- -

Such networks are often called multilayer perceptrons (MLPs).

-
- -
-

Why multilayer perceptrons?

- -

According to the Universal approximation theorem, a feed-forward -neural network with just a single hidden layer containing a finite -number of neurons can approximate a continuous multidimensional -function to arbitrary accuracy, assuming the activation function for -the hidden layer is a non-constant, bounded and -monotonically-increasing continuous function. -

- -

Note that the requirements on the activation function only applies to -the hidden layer, the output nodes are always assumed to be linear, so -as to not restrict the range of output values. -

-
- -
-

Illustration of a single perceptron model and a multi-perceptron model

- -
-
-
-

Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

-
-

-
-
- -
-

Examples of XOR, OR and AND gates

- -

Let us first try to fit various gates using standard linear -regression. The gates we are thinking of are the classical XOR, OR and -AND gates, well-known elements in computer science. The tables here -show how we can set up the inputs \( x_1 \) and \( x_2 \) in order to yield a -specific target \( y_i \). -

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR, OR and AND gates with linear regression
-"""
-
-import numpy as np
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

What is happening here?

-
- -
-

Does Logistic Regression do a better Job?

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR and OR gates with linear regression
-and logistic regression
-"""
-
-import matplotlib.pyplot as plt
-from sklearn.linear_model import LogisticRegression
-import numpy as np
-
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-# Now we change to logistic regression
-
-
-# Logistic Regression
-logreg = LogisticRegression()
-logreg.fit(X, yOR)
-print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR)))
-
-logreg.fit(X, yXOR)
-print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR)))
-
-
-logreg.fit(X, yAND)
-print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND)))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

Not exactly impressive, but somewhat better.

-
- -
-

Adding Neural Networks

- - - -
-
-
-
-
-
# and now neural networks with Scikit-Learn and the XOR
-
-from sklearn.neural_network import MLPClassifier
-from sklearn.datasets import make_classification
-X, yXOR = make_classification(n_samples=100, random_state=1)
-FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR)
-FFNN.predict_proba(X)
-print(f"Test set accuracy with Feed Forward Neural Network  for XOR gate:{FFNN.score(X, yXOR)}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-

Mathematics of deep learning

- - -
- -
-

Reminder on books with hands-on material and codes

- -
- -
-

Reading recommendations

- -
    -

  1. Rashkca et al., chapter 11, jupyter-notebook sent separately, from GitHub
  2. -

  3. Goodfellow et al, chapter 6 and 7 contain most of the neural network background.
  4. -
-
- -
-

Mathematics of deep learning and neural networks

- -

Neural networks, in its so-called feed-forward form, where each -iterations contains a feed-forward stage and a back-propgagation -stage, consist of series of affine matrix-matrix and matrix-vector -multiplications. The unknown parameters (the so-called biases and -weights which deternine the architecture of a neural network), are -uptaded iteratively using the so-called back-propagation algorithm. -This algorithm corresponds to the so-called reverse mode of -automatic differentation. -

-
- -
-

Basics of an NN

- -

A neural network consists of a series of hidden layers, in addition to -the input and output layers. Each layer \( l \) has a set of parameters -\( \boldsymbol{\Theta}^{(l)}=(\boldsymbol{W}^{(l)},\boldsymbol{b}^{(l)}) \) which are related to the -parameters in other layers through a series of affine transformations, -for a standard NN these are matrix-matrix and matrix-vector -multiplications. For all layers we will simply use a collective variable \( \boldsymbol{\Theta} \). -

- -

It consist of two basic steps:

-
    -

  1. a feed forward stage which takes a given input and produces a final output which is compared with the target values through our cost/loss function.
  2. -

  3. a back-propagation state where the unknown parameters \( \boldsymbol{\Theta} \) are updated through the optimization of the their gradients. The expressions for the gradients are obtained via the chain rule, starting from the derivative of the cost/function.
  4. -
-

-

These two steps make up one iteration. This iterative process is continued till we reach an eventual stopping criterion.

-
- -
-

Overarching view of a neural network

- -

The architecture of a neural network defines our model. This model -aims at describing some function \( f(\boldsymbol{x} \) which represents -some final result (outputs or tagrget values) given a specific inpput -\( \boldsymbol{x} \). Note that here \( \boldsymbol{y} \) and \( \boldsymbol{x} \) are not limited to be -vectors. -

- -

The architecture consists of

-
    -

  1. An input and an output layer where the input layer is defined by the inputs \( \boldsymbol{x} \). The output layer produces the model ouput \( \boldsymbol{\tilde{y}} \) which is compared with the target value \( \boldsymbol{y} \)
  2. -

  3. A given number of hidden layers and neurons/nodes/units for each layer (this may vary)
  4. -

  5. A given activation function \( \sigma(\boldsymbol{z}) \) with arguments \( \boldsymbol{z} \) to be defined below. The activation functions may differ from layer to layer.
  6. -

  7. The last layer, normally called output layer has normally an activation function tailored to the specific problem
  8. -

  9. Finally we define a so-called cost or loss function which is used to gauge the quality of our model.
  10. -
-
- -
-

The optimization problem

- -

The cost function is a function of the unknown parameters -\( \boldsymbol{\Theta} \) where the latter is a container for all possible -parameters needed to define a neural network -

- -

If we are dealing with a regression task a typical cost/loss function -is the mean squared error -

-

 
-$$ -C(\boldsymbol{\Theta})=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)\right\}. -$$ -

 
- -

This function represents one of many possible ways to define -the so-called cost function. Note that here we have assumed a linear dependence in terms of the paramters \( \boldsymbol{\Theta} \). This is in general not the case. -

-
- -
-

Parameters of neural networks

-

For neural networks the parameters -\( \boldsymbol{\Theta} \) are given by the so-called weights and biases (to be -defined below). -

- -

The weights are given by matrix elements \( w_{ij}^{(l)} \) where the -superscript indicates the layer number. The biases are typically given -by vector elements representing each single node of a given layer, -that is \( b_j^{(l)} \). -

-
- -
-

Other ingredients of a neural network

- -

Having defined the architecture of a neural network, the optimization -of the cost function with respect to the parameters \( \boldsymbol{\Theta} \), -involves the calculations of gradients and their optimization. The -gradients represent the derivatives of a multidimensional object and -are often approximated by various gradient methods, including -

-
    -

  1. various quasi-Newton methods,
  2. -

  3. plain gradient descent (GD) with a constant learning rate \( \eta \),
  4. -

  5. GD with momentum and other approximations to the learning rates such as
  6. -
      - -

    • Adapative gradient (ADAgrad)
    • - -

    • Root mean-square propagation (RMSprop)
    • - -

    • Adaptive gradient with momentum (ADAM) and many other
    • -
    -

    -

  7. Stochastic gradient descent and various families of learning rate approximations
  8. -
-
- -
-

Other parameters

- -

In addition to the above, there are often additional hyperparamaters -which are included in the setup of a neural network. These will be -discussed below. -

-
- -
-

Universal approximation theorem

- -

The universal approximation theorem plays a central role in deep -learning. Cybenko (1989) showed -the following: -

- -
- -

-

Let \( \sigma \) be any continuous sigmoidal function such that

-

 
-$$ -\sigma(z) = \left\{\begin{array}{cc} 1 & z\rightarrow \infty\\ 0 & z \rightarrow -\infty \end{array}\right. -$$ -

 
- -

Given a continuous and deterministic function \( F(\boldsymbol{x}) \) on the unit -cube in \( d \)-dimensions \( F\in [0,1]^d \), \( x\in [0,1]^d \) and a parameter -\( \epsilon >0 \), there is a one-layer (hidden) neural network -\( f(\boldsymbol{x};\boldsymbol{\Theta}) \) with \( \boldsymbol{\Theta}=(\boldsymbol{W},\boldsymbol{b}) \) and \( \boldsymbol{W}\in -\mathbb{R}^{m\times n} \) and \( \boldsymbol{b}\in \mathbb{R}^{n} \), for which -

-

 
-$$ -\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert < \epsilon \hspace{0.1cm} \forall \boldsymbol{x}\in[0,1]^d. -$$ -

 
-

-
- -
-

Some parallels from real analysis

- -

For those of you familiar with for example the Stone-Weierstrass -theorem -for polynomial approximations or the convergence criterion for Fourier -series, there are similarities in the derivation of the proof for -neural networks. -

-
- -
-

The approximation theorem in words

- -

Any continuous function \( y=F(\boldsymbol{x}) \) supported on the unit cube in -\( d \)-dimensions can be approximated by a one-layer sigmoidal network to -arbitrary accuracy. -

- -

Hornik (1991) extended the theorem by letting any non-constant, bounded activation function to be included using that the expectation value

-

 
-$$ -\mathbb{E}[\vert F(\boldsymbol{x})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \infty. -$$ -

 
- -

Then we have

-

 
-$$ -\mathbb{E}[\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \epsilon. -$$ -

 
-

- -
-

More on the general approximation theorem

- -

None of the proofs give any insight into the relation between the -number of of hidden layers and nodes and the approximation error -\( \epsilon \), nor the magnitudes of \( \boldsymbol{W} \) and \( \boldsymbol{b} \). -

- -

Neural networks (NNs) have what we may call a kind of universality no matter what function we want to compute.

- -
- -

-

It does not mean that an NN can be used to exactly compute any function. Rather, we get an approximation that is as good as we want.

-
-
- -
-

Class of functions we can approximate

- -
- -

-

The class of functions that can be approximated are the continuous ones. -If the function \( F(\boldsymbol{x}) \) is discontinuous, it won't in general be possible to approximate it. However, an NN may still give an approximation even if we fail in some points. -

-
-
- -
-

Setting up the equations for a neural network

- -

The questions we want to ask are how do changes in the biases and the -weights in our network change the cost function and how can we use the -final output to modify the weights and biases? -

- -

To derive these equations let us start with a plain regression problem -and define our cost function as -

- -

 
-$$ -{\cal C}(\boldsymbol{\Theta}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2, -$$ -

 
- -

where the $y_i$s are our \( n \) targets (the values we want to -reproduce), while the outputs of the network after having propagated -all inputs \( \boldsymbol{x} \) are given by \( \boldsymbol{\tilde{y}}_i \). -

-
- -
-

Layout of a neural network with three hidden layers

- -

-
-

-
-

-
- -
-

Definitions

- -

With our definition of the targets \( \boldsymbol{y} \), the outputs of the -network \( \boldsymbol{\tilde{y}} \) and the inputs \( \boldsymbol{x} \) we -define now the activation \( z_j^l \) of node/neuron/unit \( j \) of the -\( l \)-th layer as a function of the bias, the weights which add up from -the previous layer \( l-1 \) and the forward passes/outputs -\( \hat{a}^{l-1} \) from the previous layer as -

- -

 
-$$ -z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, -$$ -

 
- -

where \( b_k^l \) are the biases from layer \( l \). Here \( M_{l-1} \) -represents the total number of nodes/neurons/units of layer \( l-1 \). The -figure in the whiteboard notes illustrates this equation. We can rewrite this in a more -compact form as the matrix-vector products we discussed earlier, -

- -

 
-$$ -\hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. -$$ -

 
-

- -
-

Inputs to the activation function

- -

With the activation values \( \boldsymbol{z}^l \) we can in turn define the -output of layer \( l \) as \( \boldsymbol{a}^l = f(\boldsymbol{z}^l) \) where \( f \) is our -activation function. In the examples here we will use the sigmoid -function discussed in our logistic regression lectures. We will also use the same activation function \( f \) for all layers -and their nodes. It means we have -

- -

 
-$$ -a_j^l = \sigma(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. -$$ -

 
-

- -
-

Derivatives and the chain rule

- -

From the definition of the activation \( z_j^l \) we have

-

 
-$$ -\frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. -$$ -

 
- -

With our definition of the activation function we have that (note that this function depends only on \( z_j^l \))

-

 
-$$ -\frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=\sigma(z_j^l)(1-\sigma(z_j^l)). -$$ -

 
-

- -
-

Derivative of the cost function

- -

With these definitions we can now compute the derivative of the cost function in terms of the weights.

- -

Let us specialize to the output layer \( l=L \). Our cost function is

-

 
-$$ -{\cal C}(\boldsymbol{\Theta}^L) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - y_i\right)^2, -$$ -

 
- -

The derivative of this function with respect to the weights is

- -

 
-$$ -\frac{\partial{\cal C}(\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, -$$ -

 
- -

The last partial derivative can easily be computed and reads (by applying the chain rule)

-

 
-$$ -\frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}. -$$ -

 
-

- -
-

Simpler examples first, and automatic differentiation

- -

In order to understand the back propagation algorithm and its -derivation (an implementation of the chain rule), let us first digress -with some simple examples. These examples are also meant to motivate -the link with back propagation and automatic differentiation. -

-
- -
-

Reminder on the chain rule and gradients

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t) \) and \( y=y(t) \) are functions of a variable \( t \), we have that the gradient of \( f \) with respect to \( t \) (without the explicit unit vector components)

-

 
-$$ -\frac{df}{dt} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial t} \end{bmatrix}=\frac{\partial f}{\partial x} \frac{\partial x}{\partial t} +\frac{\partial f}{\partial y} \frac{\partial y}{\partial t}. -$$ -

 
-

- -
-

Multivariable functions

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t,s) \) and \( y=y(t,s) \) are functions of the variables \( t \) and \( s \), we have that the partial derivatives

-

 
-$$ -\frac{\partial f}{\partial s}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial s}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial s}, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}. -$$ -

 
- -

the gradient of \( f \) with respect to \( t \) and \( s \) (without the explicit unit vector components)

-

 
-$$ -\frac{df}{d(s,t)} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial s} &\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial s} & \frac{\partial y}{\partial t} \end{bmatrix}. -$$ -

 
-

- -
-

Automatic differentiation through examples

- -

A great introduction to automatic differentiation is given by Baydin et al., see https://arxiv.org/abs/1502.05767.

- -

Automatic differentiation is a represented by a repeated application -of the chain rule on well-known functions and allows for the -calculation of derivatives to numerical precision. It is not the same -as the calculation of symbolic derivatives via for example SymPy, nor -does it use approximative formulae based on Taylor-expansions of a -function around a given value. The latter are error prone due to -truncation errors and values of the step size \( \Delta \). -

-
- -
-

Simple example

- -

Our first example is rather simple,

-

 
-$$ -f(x) =\exp{x^2}, -$$ -

 
- -

with derivative

-

 
-$$ -f'(x) =2x\exp{x^2}. -$$ -

 
- -

We can use SymPy to extract the pertinent lines of Python code through the following simple example

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = exp(x*x)
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-

Smarter way of evaluating the above function

-

If we study this function, we note that we can reduce the number of operations by introducing an intermediate variable

-

 
-$$ -a = x^2, -$$ -

 
- -

leading to

-

 
-$$ -f(x) = f(a(x)) = b= \exp{a}. -$$ -

 
- -

We now assume that all operations can be counted in terms of equal -floating point operations. This means that in order to calculate -\( f(x) \) we need first to square \( x \) and then compute the exponential. We -have thus two floating point operations only. -

-
- -
-

Reducing the number of operations

- -

With the introduction of a precalculated quantity \( a \) and thereby \( f(x) \) we have that the derivative can be written as

- -

 
-$$ -f'(x) = 2xb, -$$ -

 
- -

which reduces the number of operations from four in the orginal -expression to two. This means that if we need to compute \( f(x) \) and -its derivative (a common task in optimizations), we have reduced the -number of operations from six to four in total. -

- -

Note that the usage of a symbolic software like SymPy does not -include such simplifications and the calculations of the function and -the derivatives yield in general more floating point operations. -

-
- -
-

Chain rule, forward and reverse modes

- -

In the above example we have introduced the variables \( a \) and \( b \), and our function is

-

 
-$$ -f(x) = f(a(x)) = b= \exp{a}, -$$ -

 
- -

with \( a=x^2 \). We can decompose the derivative of \( f \) with respect to \( x \) as

-

 
-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}. -$$ -

 
- -

We note that since \( b=f(x) \) that

-

 
-$$ -\frac{df}{db}=1, -$$ -

 
- -

leading to

-

 
-$$ -\frac{df}{dx}=\frac{db}{da}\frac{da}{dx}=2x\exp{x^2}, -$$ -

 
- -

as before.

-
- -
-

Forward and reverse modes

- -

We have that

-

 
-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}, -$$ -

 
- -

which we can rewrite either as

-

 
-$$ -\frac{df}{dx}=\left[\frac{df}{db}\frac{db}{da}\right]\frac{da}{dx}, -$$ -

 
- -

or

-

 
-$$ -\frac{df}{dx}=\frac{df}{db}\left[\frac{db}{da}\frac{da}{dx}\right]. -$$ -

 
- -

The first expression is called reverse mode (or back propagation) -since we start by evaluating the derivatives at the end point and then -propagate backwards. This is the standard way of evaluating -derivatives (gradients) when optimizing the parameters of a neural -network. In the context of deep learning this is computationally -more efficient since the output of a neural network consists of either -one or some few other output variables. -

- -

The second equation defines the so-called forward mode.

-
- -
-

More complicated function

- -

We increase our ambitions and introduce a slightly more complicated function

-

 
-$$ -f(x) =\sqrt{x^2+exp{x^2}}, -$$ -

 
- -

with derivative

-

 
-$$ -f'(x) =\frac{x(1+\exp{x^2})}{\sqrt{x^2+exp{x^2}}}. -$$ -

 
- -

The corresponding SymPy code reads

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = sqrt(x*x+exp(x*x))
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-

Counting the number of floating point operations

- -

A simple count of operations shows that we need five operations for -the function itself and ten for the derivative. Fifteen operations in total if we wish to proceed with the above codes. -

- -

Can we reduce this to -say half the number of operations? -

-
- -
-

Defining intermediate operations

- -

We can indeed reduce the number of operation to half of those listed in the brute force approach above. -We define the following quantities -

-

 
-$$ -a = x^2, -$$ -

 
- -

and

-

 
-$$ -b = \exp{x^2} = \exp{a}, -$$ -

 
- -

and

-

 
-$$ -c= a+b, -$$ -

 
- -

and

-

 
-$$ -d=f(x)=\sqrt{c}. -$$ -

 
-

- -
-

New expression for the derivative

- -

With these definitions we obtain the following partial derivatives

-

 
-$$ -\frac{\partial a}{\partial x} = 2x, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial b}{\partial a} = \exp{a}, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial c}{\partial a} = 1, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial c}{\partial b} = 1, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ -

 
- -

and finally

-

 
-$$ -\frac{\partial f}{\partial d} = 1. -$$ -

 
-

- -
-

Final derivatives

-

Our final derivatives are thus

-

 
-$$ -\frac{\partial f}{\partial c} = \frac{\partial f}{\partial d} \frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ -

 
- -

 
-$$ -\frac{\partial f}{\partial b} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial b} = \frac{1}{2\sqrt{c}}, -$$ -

 
- -

 
-$$ -\frac{\partial f}{\partial a} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial a}+ -\frac{\partial f}{\partial b} \frac{\partial b}{\partial a} = \frac{1+\exp{a}}{2\sqrt{c}}, -$$ -

 
- -

and finally

-

 
-$$ -\frac{\partial f}{\partial x} = \frac{\partial f}{\partial a} \frac{\partial a}{\partial x} = \frac{x(1+\exp{a})}{\sqrt{c}}, -$$ -

 
- -

which is just

-

 
-$$ -\frac{\partial f}{\partial x} = \frac{x(1+b)}{d}, -$$ -

 
- -

and requires only three operations if we can reuse all intermediate variables.

-
- -
-

In general not this simple

- -

In general, see the generalization below, unless we can obtain simple -analytical expressions which we can simplify further, the final -implementation of automatic differentiation involves repeated -calculations (and thereby operations) of derivatives of elementary -functions. -

-
- -
-

Automatic differentiation

- -

We can make this example more formal. Automatic differentiation is a -formalization of the previous example (see graph). -

- -

We define \( \boldsymbol{x}\in x_1,\dots, x_l \) input variables to a given function \( f(\boldsymbol{x}) \) and \( x_{l+1},\dots, x_L \) intermediate variables.

- -

In the above example we have only one input variable, \( l=1 \) and four intermediate variables, that is

-

 
-$$ -\begin{bmatrix} x_1=x & x_2 = x^2=a & x_3 =\exp{a}= b & x_4=c=a+b & x_5 = \sqrt{c}=d \end{bmatrix}. -$$ -

 
- -

Furthemore, for \( i=l+1, \dots, L \) (here \( i=2,3,4,5 \) and \( f=x_L=d \)), we -define the elementary functions \( g_i(x_{Pa(x_i)}) \) where \( x_{Pa(x_i)} \) are the parent nodes of the variable \( x_i \). -

- -

In our case, we have for example for \( x_3=g_3(x_{Pa(x_i)})=\exp{a} \), that \( g_3=\exp{()} \) and \( x_{Pa(x_3)}=a \).

-
- -
-

Chain rule

- -

We can now compute the gradients by back-propagating the derivatives using the chain rule. -We have defined -

-

 
-$$ -\frac{\partial f}{\partial x_L} = 1, -$$ -

 
- -

which allows us to find the derivatives of the various variables \( x_i \) as

-

 
-$$ -\frac{\partial f}{\partial x_i} = \sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial x_j}{\partial x_i}=\sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial g_j}{\partial x_i}. -$$ -

 
- -

Whenever we have a function which can be expressed as a computation -graph and the various functions can be expressed in terms of -elementary functions that are differentiable, then automatic -differentiation works. The functions may not need to be elementary -functions, they could also be computer programs, although not all -programs can be automatically differentiated. -

-
- -
-

First network example, simple percepetron with one input

- -

As yet another example we define now a simple perceptron model with -all quantities given by scalars. We consider only one input variable -\( x \) and one target value \( y \). We define an activation function -\( \sigma_1 \) which takes as input -

- -

 
-$$ -z_1 = w_1x+b_1, -$$ -

 
- -

where \( w_1 \) is the weight and \( b_1 \) is the bias. These are the -parameters we want to optimize. The output is \( a_1=\sigma(z_1) \) (see -graph from whiteboard notes). This output is then fed into the -cost/loss function, which we here for the sake of simplicity just -define as the squared error -

- -

 
-$$ -C(x;w_1,b_1)=\frac{1}{2}(a_1-y)^2. -$$ -

 
-

- -
-

Layout of a simple neural network with no hidden layer

- -

-
-

-
-

-
- -
-

Optimizing the parameters

- -

In setting up the feed forward and back propagation parts of the -algorithm, we need now the derivative of the various variables we want -to train. -

- -

We need

-

 
-$$ -\frac{\partial C}{\partial w_1} \hspace{0.1cm}\mathrm{and}\hspace{0.1cm}\frac{\partial C}{\partial b_1}. -$$ -

 
- -

Using the chain rule we find

-

 
-$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_1-y)\sigma_1'x, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_1-y)\sigma_1', -$$ -

 
- -

which we later will just define as

-

 
-$$ -\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}=\delta_1. -$$ -

 
-

- -
-

Adding a hidden layer

- -

We change our simple model to (see graph) -a network with just one hidden layer but with scalar variables only. -

- -

Our output variable changes to \( a_2 \) and \( a_1 \) is now the output from the hidden node and \( a_0=x \). -We have then -

-

 
-$$ -z_1 = w_1a_0+b_1 \hspace{0.1cm} \wedge a_1 = \sigma_1(z_1), -$$ -

 
- -

 
-$$ -z_2 = w_2a_1+b_2 \hspace{0.1cm} \wedge a_2 = \sigma_2(z_2), -$$ -

 
- -

and the cost function

-

 
-$$ -C(x;\boldsymbol{\Theta})=\frac{1}{2}(a_2-y)^2, -$$ -

 
- -

with \( \boldsymbol{\Theta}=[w_1,w_2,b_1,b_2] \).

-
- -
-

Layout of a simple neural network with one hidden layer

- -

-
-

-
-

-
- -
-

The derivatives

- -

The derivatives are now, using the chain rule again

- -

 
-$$ -\frac{\partial C}{\partial w_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial w_2}=(a_2-y)\sigma_2'a_1=\delta_2a_1, -$$ -

 
- -

 
-$$ -\frac{\partial C}{\partial b_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial b_2}=(a_2-y)\sigma_2'=\delta_2, -$$ -

 
- -

 
-$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_2-y)\sigma_2'a_1\sigma_1'a_0, -$$ -

 
- -

 
-$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_2-y)\sigma_2'\sigma_1'=\delta_1. -$$ -

 
- -

Can you generalize this to more than one hidden layer?

-
- -
-

Important observations

- -
- -

-

From the above equations we see that the derivatives of the activation -functions play a central role. If they vanish, the training may -stop. This is called the vanishing gradient problem, see discussions below. If they become -large, the parameters \( w_i \) and \( b_i \) may simply go to infinity. This -is referenced as the exploding gradient problem. -

-
-
- -
-

The training

- -

The training of the parameters is done through various gradient descent approximations with

- -

 
-$$ -w_{i}\leftarrow w_{i}- \eta \delta_i a_{i-1}, -$$ -

 
- -

and

-

 
-$$ -b_i \leftarrow b_i-\eta \delta_i, -$$ -

 
- -

with \( \eta \) is the learning rate.

- -

One iteration consists of one feed forward step and one back-propagation step. Each back-propagation step does one update of the parameters \( \boldsymbol{\Theta} \).

- -

For the first hidden layer \( a_{i-1}=a_0=x \) for this simple model.

-
- -
-

Code example

- -

The code here implements the above model with one hidden layer and -scalar variables for the same function we studied in the previous -example. The code is however set up so that we can add multiple -inputs \( x \) and target values \( y \). Note also that we have the -possibility of defining a feature matrix \( \boldsymbol{X} \) with more than just -one column for the input values. This will turn useful in our next example. We have also defined matrices and vectors for all of our operations although it is not necessary here. -

- - - -
-
-
-
-
-
import numpy as np
-# We use the Sigmoid function as activation function
-def sigmoid(z):
-    return 1.0/(1.0+np.exp(-z))
-
-def forwardpropagation(x):
-    # weighted sum of inputs to the hidden layer
-    z_1 = np.matmul(x, w_1) + b_1
-    # activation in the hidden layer
-    a_1 = sigmoid(z_1)
-    # weighted sum of inputs to the output layer
-    z_2 = np.matmul(a_1, w_2) + b_2
-    a_2 = z_2
-    return a_1, a_2
-
-def backpropagation(x, y):
-    a_1, a_2 = forwardpropagation(x)
-    # parameter delta for the output layer, note that a_2=z_2 and its derivative wrt z_2 is just 1
-    delta_2 = a_2 - y
-    print(0.5*((a_2-y)**2))
-    # delta for  the hidden layer
-    delta_1 = np.matmul(delta_2, w_2.T) * a_1 * (1 - a_1)
-    # gradients for the output layer
-    output_weights_gradient = np.matmul(a_1.T, delta_2)
-    output_bias_gradient = np.sum(delta_2, axis=0)
-    # gradient for the hidden layer
-    hidden_weights_gradient = np.matmul(x.T, delta_1)
-    hidden_bias_gradient = np.sum(delta_1, axis=0)
-    return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient
-
-
-# ensure the same random numbers appear every time
-np.random.seed(0)
-# Input variable
-x = np.array([4.0],dtype=np.float64)
-# Target values
-y = 2*x+1.0 
-
-# Defining the neural network, only scalars here
-n_inputs = x.shape
-n_features = 1
-n_hidden_neurons = 1
-n_outputs = 1
-
-# Initialize the network
-# weights and bias in the hidden layer
-w_1 = np.random.randn(n_features, n_hidden_neurons)
-b_1 = np.zeros(n_hidden_neurons) + 0.01
-
-# weights and bias in the output layer
-w_2 = np.random.randn(n_hidden_neurons, n_outputs)
-b_2 = np.zeros(n_outputs) + 0.01
-
-eta = 0.1
-for i in range(50):
-    # calculate gradients
-    derivW2, derivB2, derivW1, derivB1 = backpropagation(x, y)
-    # update weights and biases
-    w_2 -= eta * derivW2
-    b_2 -= eta * derivB2
-    w_1 -= eta * derivW1
-    b_1 -= eta * derivB1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

We see that after some few iterations (the results do depend on the learning rate however), we get an error which is rather small.

-
- -
- - -

Exercise 1: Including more data

- -

Try to increase the amount of input and -target/output data. Try also to perform calculations for more values -of the learning rates. Feel free to add either hyperparameters with an -\( l_1 \) norm or an \( l_2 \) norm and discuss your results. -Discuss your results as functions of the amount of training data and various learning rates. -

- -

Challenge: Try to change the activation functions and replace the hard-coded analytical expressions with automatic derivation via either autograd or JAX.

- - -
- -
-

Simple neural network and the back propagation equations

- -

Let us now try to increase our level of ambition and attempt at setting -up the equations for a neural network with two input nodes, one hidden -layer with two hidden nodes and one output layer with one output node/neuron only (see graph).. -

- -

We need to define the following parameters and variables with the input layer (layer \( (0) \)) -where we label the nodes \( x_0 \) and \( x_1 \) -

-

 
-$$ -x_0 = a_0^{(0)} \wedge x_1 = a_1^{(0)}. -$$ -

 
- -

The hidden layer (layer \( (1) \)) has nodes which yield the outputs \( a_0^{(1)} \) and \( a_1^{(1)} \)) with weight \( \boldsymbol{w} \) and bias \( \boldsymbol{b} \) parameters

-

 
-$$ -w_{ij}^{(1)}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)}\right\} \wedge b^{(1)}=\left\{b_0^{(1)},b_1^{(1)}\right\}. -$$ -

 
-

- -
-

Layout of a simple neural network with two input nodes, one hidden layer and one output node

- -

-
-

-
-

-
- -
-

The ouput layer

- -

Finally, we have the ouput layer given by layer label \( (2) \) with output \( a^{(2)} \) and weights and biases to be determined given by the variables

-

 
-$$ -w_{i}^{(2)}=\left\{w_{0}^{(2)},w_{1}^{(2)}\right\} \wedge b^{(2)}. -$$ -

 
- -

Our output is \( \tilde{y}=a^{(2)} \) and we define a generic cost function \( C(a^{(2)},y;\boldsymbol{\Theta}) \) where \( y \) is the target value (a scalar here). -The parameters we need to optimize are given by -

-

 
-$$ -\boldsymbol{\Theta}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)},w_{0}^{(2)},w_{1}^{(2)},b_0^{(1)},b_1^{(1)},b^{(2)}\right\}. -$$ -

 
-

- -
-

Compact expressions

- -

We can define the inputs to the activation functions for the various layers in terms of various matrix-vector multiplications and vector additions. -The inputs to the first hidden layer are -

-

 
-$$ -\begin{bmatrix}z_0^{(1)} \\ z_1^{(1)} \end{bmatrix}=\begin{bmatrix}w_{00}^{(1)} & w_{01}^{(1)}\\ w_{10}^{(1)} &w_{11}^{(1)} \end{bmatrix}\begin{bmatrix}a_0^{(0)} \\ a_1^{(0)} \end{bmatrix}+\begin{bmatrix}b_0^{(1)} \\ b_1^{(1)} \end{bmatrix}, -$$ -

 
- -

with outputs

-

 
-$$ -\begin{bmatrix}a_0^{(1)} \\ a_1^{(1)} \end{bmatrix}=\begin{bmatrix}\sigma^{(1)}(z_0^{(1)}) \\ \sigma^{(1)}(z_1^{(1)}) \end{bmatrix}. -$$ -

 
-

- -
-

Output layer

- -

For the final output layer we have the inputs to the final activation function

-

 
-$$ -z^{(2)} = w_{0}^{(2)}a_0^{(1)} +w_{1}^{(2)}a_1^{(1)}+b^{(2)}, -$$ -

 
- -

resulting in the output

-

 
-$$ -a^{(2)}=\sigma^{(2)}(z^{(2)}). -$$ -

 
-

- -
-

Explicit derivatives

- -

In total we have nine parameters which we need to train. Using the -chain rule (or just the back-propagation algorithm) we can find all -derivatives. Since we will use automatic differentiation in reverse -mode, we start with the derivatives of the cost function with respect -to the parameters of the output layer, namely -

- -

 
-$$ -\frac{\partial C}{\partial w_{i}^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial w_{i}^{(2)}}=\delta^{(2)}a_i^{(1)}, -$$ -

 
- -

with

-

 
-$$ -\delta^{(2)}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -$$ -

 
- -

and finally

-

 
-$$ -\frac{\partial C}{\partial b^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial b^{(2)}}=\delta^{(2)}. -$$ -

 
-

- -
-

Derivatives of the hidden layer

- -

Using the chain rule we have the following expressions for say one of the weight parameters (it is easy to generalize to the other weight parameters)

-

 
-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}= \delta^{(2)}\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}, -$$ -

 
- -

which, noting that

-

 
-$$ -z^{(2)} =w_0^{(2)}a_0^{(1)}+w_1^{(2)}a_1^{(1)}+b^{(2)}, -$$ -

 
- -

allows us to rewrite

-

 
-$$ -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}a_0^{(1)}. -$$ -

 
-

- -
-

Final expression

-

Defining

-

 
-$$ -\delta_0^{(1)}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}\delta^{(2)}, -$$ -

 
- -

we have

-

 
-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\delta_0^{(1)}a_0^{(1)}. -$$ -

 
- -

Similarly, we obtain

-

 
-$$ -\frac{\partial C}{\partial w_{01}^{(1)}}=\delta_0^{(1)}a_1^{(1)}. -$$ -

 
-

- -
-

Completing the list

- -

Similarly, we find

-

 
-$$ -\frac{\partial C}{\partial w_{10}^{(1)}}=\delta_1^{(1)}a_0^{(1)}, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial C}{\partial w_{11}^{(1)}}=\delta_1^{(1)}a_1^{(1)}, -$$ -

 
- -

where we have defined

-

 
-$$ -\delta_1^{(1)}=w_1^{(2)}\frac{\partial a_1^{(1)}}{\partial z_1^{(1)}}\delta^{(2)}. -$$ -

 
-

- -
-

Final expressions for the biases of the hidden layer

- -

For the sake of completeness, we list the derivatives of the biases, which are

-

 
-$$ -\frac{\partial C}{\partial b_{0}^{(1)}}=\delta_0^{(1)}, -$$ -

 
- -

and

-

 
-$$ -\frac{\partial C}{\partial b_{1}^{(1)}}=\delta_1^{(1)}. -$$ -

 
- -

As we will see below, these expressions can be generalized in a more compact form.

-
- -
-

Gradient expressions

- -

For this specific model, with just one output node and two hidden -nodes, the gradient descent equations take the following form for output layer -

-

 
-$$ -w_{i}^{(2)}\leftarrow w_{i}^{(2)}- \eta \delta^{(2)} a_{i}^{(1)}, -$$ -

 
- -

and

-

 
-$$ -b^{(2)} \leftarrow b^{(2)}-\eta \delta^{(2)}, -$$ -

 
- -

and

-

 
-$$ -w_{ij}^{(1)}\leftarrow w_{ij}^{(1)}- \eta \delta_{i}^{(1)} a_{j}^{(0)}, -$$ -

 
- -

and

-

 
-$$ -b_{i}^{(1)} \leftarrow b_{i}^{(1)}-\eta \delta_{i}^{(1)}, -$$ -

 
- -

where \( \eta \) is the learning rate.

-
- -
- - -

Exercise 2: Extended program

- -

We extend our simple code to a function which depends on two variable \( x_0 \) and \( x_1 \), that is

-

 
-$$ -y=f(x_0,x_1)=x_0^2+3x_0x_1+x_1^2+5. -$$ -

 
- -

We feed our network with \( n=100 \) entries \( x_0 \) and \( x_1 \). We have thus two features represented by these variable and an input matrix/design matrix \( \boldsymbol{X}\in \mathbf{R}^{n\times 2} \)

-

 
-$$ -\boldsymbol{X}=\begin{bmatrix} x_{00} & x_{01} \\ x_{00} & x_{01} \\ x_{10} & x_{11} \\ x_{20} & x_{21} \\ \dots & \dots \\ \dots & \dots \\ x_{n-20} & x_{n-21} \\ x_{n-10} & x_{n-11} \end{bmatrix}. -$$ -

 
- -

Write a code, based on the previous code examples, which takes as input these data and fit the above function. -You can extend your code to include automatic differentiation. -

- -

With these examples, we are now ready to embark upon the writing of more a general code for neural networks.

- - -
- -
-

Getting serious, the back propagation equations for a neural network

- -

Now it is time to move away from one node in each layer only. Our inputs are also represented either by several inputs.

- -

We have thus

-

 
-$$ -\frac{\partial{\cal C}((\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)a_j^L(1-a_j^L)a_k^{L-1}, -$$ -

 
- -

Defining

-

 
-$$ -\delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - y_j\right) = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -$$ -

 
- -

and using the Hadamard product of two vectors we can write this as

-

 
-$$ -\boldsymbol{\delta}^L = \sigma'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\boldsymbol{a}^L)}. -$$ -

 
-

- -
-

Analyzing the last results

- -

This is an important expression. The second term on the right handside -measures how fast the cost function is changing as a function of the $j$th -output activation. If, for example, the cost function doesn't depend -much on a particular output node \( j \), then \( \delta_j^L \) will be small, -which is what we would expect. The first term on the right, measures -how fast the activation function \( f \) is changing at a given activation -value \( z_j^L \). -

-
- -
-

More considerations

- -

Notice that everything in the above equations is easily computed. In -particular, we compute \( z_j^L \) while computing the behaviour of the -network, and it is only a small additional overhead to compute -\( \sigma'(z^L_j) \). The exact form of the derivative with respect to the -output depends on the form of the cost function. -However, provided the cost function is known there should be little -trouble in calculating -

- -

 
-$$ -\frac{\partial {\cal C}}{\partial (a_j^L)} -$$ -

 
- -

With the definition of \( \delta_j^L \) we have a more compact definition of the derivative of the cost function in terms of the weights, namely

-

 
-$$ -\frac{\partial{\cal C}}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. -$$ -

 
-

- -
-

Derivatives in terms of \( z_j^L \)

- -

It is also easy to see that our previous equation can be written as

- -

 
-$$ -\delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, -$$ -

 
- -

which can also be interpreted as the partial derivative of the cost function with respect to the biases \( b_j^L \), namely

-

 
-$$ -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, -$$ -

 
- -

That is, the error \( \delta_j^L \) is exactly equal to the rate of change of the cost function as a function of the bias.

-
- -
-

Bringing it together

- -

We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are

- -

 
-$$ -\begin{equation} -\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, -\tag{2} -\end{equation} -$$ -

 
- -

and

-

 
-$$ -\begin{equation} -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\tag{3} -\end{equation} -$$ -

 
- -

and

- -

 
-$$ -\begin{equation} -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, -\tag{4} -\end{equation} -$$ -

 
-

- -
-

Final back propagating equation

- -

We have that (replacing \( L \) with a general layer \( l \))

-

 
-$$ -\delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. -$$ -

 
- -

We want to express this in terms of the equations for layer \( l+1 \).

-
- -
-

Using the chain rule and summing over all \( k \) entries

- -

We obtain

-

 
-$$ -\delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, -$$ -

 
- -

and recalling that

-

 
-$$ -z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, -$$ -

 
- -

with \( M_l \) being the number of nodes in layer \( l \), we obtain

-

 
-$$ -\delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l), -$$ -

 
- -

This is our final equation.

- -

We are now ready to set up the algorithm for back propagation and learning the weights and biases.

-
- -
-

Setting up the back propagation algorithm

- -

The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.

- -

First, we set up the input data \( \hat{x} \) and the activations -\( \hat{z}_1 \) of the input layer and compute the activation function and -the pertinent outputs \( \hat{a}^1 \). -

- -

Secondly, we perform then the feed forward till we reach the output -layer and compute all \( \hat{z}_l \) of the input layer and compute the -activation function and the pertinent outputs \( \hat{a}^l \) for -\( l=1,2,3,\dots,L \). -

- -

Notation: The first hidden layer has \( l=1 \) as label and the final output layer has \( l=L \).

-
- -
-

Setting up the back propagation algorithm, part 2

- -

Thereafter we compute the ouput error \( \hat{\delta}^L \) by computing all

-

 
-$$ -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. -$$ -

 
- -

Then we compute the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-

 
-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l). -$$ -

 
-

- -
-

Setting up the Back propagation algorithm, part 3

- -

Finally, we update the weights and the biases using gradient descent -for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases -according to the rules -

- -

 
-$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ -

 
- -

 
-$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ -

 
- -

with \( \eta \) being the learning rate.

-
- -
-

Updating the gradients

- -

With the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-

 
-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}sigma'(z_j^l), -$$ -

 
- -

we update the weights and the biases using gradient descent for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases according to the rules

-

 
-$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ -

 
- -

 
-$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ -

 
-

- -
-

Activation functions

- -

A property that characterizes a neural network, other than its -connectivity, is the choice of activation function(s). As described -in, the following restrictions are imposed on an activation function -for a FFNN to fulfill the universal approximation theorem -

- -
    - -

  • Non-constant
  • - -

  • Bounded
  • - -

  • Monotonically-increasing
  • - -

  • Continuous
  • -
-
- -
-

Activation functions, Logistic and Hyperbolic ones

- -

The second requirement excludes all linear functions. Furthermore, in -a MLP with only linear activation functions, each layer simply -performs a linear transformation of its inputs. -

- -

Regardless of the number of layers, the output of the NN will be -nothing but a linear function of the inputs. Thus we need to introduce -some kind of non-linearity to the NN to be able to fit non-linear -functions Typical examples are the logistic Sigmoid -

- -

 
-$$ - f(x) = \frac{1}{1 + e^{-x}}, -$$ -

 
- -

and the hyperbolic tangent function

-

 
-$$ - f(x) = \tanh(x) -$$ -

 
-

- -
-

Relevance

- -

The sigmoid function are more biologically plausible because the -output of inactive neurons are zero. Such activation function are -called one-sided. However, it has been shown that the hyperbolic -tangent performs better than the sigmoid for training MLPs. has -become the most popular for deep neural networks -

- - - -
-
-
-
-
-
"""The sigmoid function (or the logistic curve) is a 
-function that takes any real number, z, and outputs a number (0,1).
-It is useful in neural networks for assigning weights on a relative scale.
-The value z is the weighted sum of parameters involved in the learning algorithm."""
-
-import numpy
-import matplotlib.pyplot as plt
-import math as mt
-
-z = numpy.arange(-5, 5, .1)
-sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z)))
-sigma = sigma_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, sigma)
-ax.set_ylim([-0.1, 1.1])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sigmoid function')
-
-plt.show()
-
-"""Step Function"""
-z = numpy.arange(-5, 5, .02)
-step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0)
-step = step_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, step)
-ax.set_ylim([-0.5, 1.5])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('step function')
-
-plt.show()
-
-"""Sine Function"""
-z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)
-t = numpy.sin(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, t)
-ax.set_ylim([-1.0, 1.0])
-ax.set_xlim([-2*mt.pi,2*mt.pi])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sine function')
-
-plt.show()
-
-"""Plots a graph of the squashing function used by a rectified linear
-unit"""
-z = numpy.arange(-2, 2, .1)
-zero = numpy.zeros(len(z))
-y = numpy.max([zero, z], axis=0)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, y)
-ax.set_ylim([-2.0, 2.0])
-ax.set_xlim([-2.0, 2.0])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('Rectified linear unit')
-
-plt.show()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-

Fine-tuning neural network hyperparameters

- -

The flexibility of neural networks is also one of their main -drawbacks: there are many hyperparameters to tweak. Not only can you -use any imaginable network topology (how neurons/nodes are -interconnected), but even in a simple FFNN you can change the number -of layers, the number of neurons per layer, the type of activation -function to use in each layer, the weight initialization logic, the -stochastic gradient optmized and much more. How do you know what -combination of hyperparameters is the best for your task? -

- -
    -

  • You can use grid search with cross-validation to find the right hyperparameters.
  • -
-

-

However,since there are many hyperparameters to tune, and since -training a neural network on a large dataset takes a lot of time, you -will only be able to explore a tiny part of the hyperparameter space. -

- -
    -

  • You can use randomized search.
  • -

  • Or use tools like Oscar, which implements more complex algorithms to help you find a good set of hyperparameters quickly.
  • -
-
- -
-

Hidden layers

- -

For many problems you can start with just one or two hidden layers and -it will work just fine. For the MNIST data set you ca easily get a -high accuracy using just one hidden layer with a few hundred neurons. -You can reach for this data set above 98% accuracy using two hidden -layers with the same total amount of neurons, in roughly the same -amount of training time. -

- -

For more complex problems, you can gradually ramp up the number of -hidden layers, until you start overfitting the training set. Very -complex tasks, such as large image classification or speech -recognition, typically require networks with dozens of layers and they -need a huge amount of training data. However, you will rarely have to -train such networks from scratch: it is much more common to reuse -parts of a pretrained state-of-the-art network that performs a similar -task. -

-
- -
-

Vanishing gradients

- -

The Back propagation algorithm we derived above works by going from -the output layer to the input layer, propagating the error gradient on -the way. Once the algorithm has computed the gradient of the cost -function with regards to each parameter in the network, it uses these -gradients to update each parameter with a Gradient Descent (GD) step. -

- -

Unfortunately for us, the gradients often get smaller and smaller as -the algorithm progresses down to the first hidden layers. As a result, -the GD update leaves the lower layer connection weights virtually -unchanged, and training never converges to a good solution. This is -known in the literature as the vanishing gradients problem. -

-
- -
-

Exploding gradients

- -

In other cases, the opposite can happen, namely the the gradients can -grow bigger and bigger. The result is that many of the layers get -large updates of the weights the algorithm diverges. This is the -exploding gradients problem, which is mostly encountered in -recurrent neural networks. More generally, deep neural networks suffer -from unstable gradients, different layers may learn at widely -different speeds -

-
- -
-

Is the Logistic activation function (Sigmoid) our choice?

- -

Although this unfortunate behavior has been empirically observed for -quite a while (it was one of the reasons why deep neural networks were -mostly abandoned for a long time), it is only around 2010 that -significant progress was made in understanding it. -

- -

A paper titled Understanding the Difficulty of Training Deep -Feedforward Neural Networks by Xavier Glorot and Yoshua Bengio found that -the problems with the popular logistic -sigmoid activation function and the weight initialization technique -that was most popular at the time, namely random initialization using -a normal distribution with a mean of 0 and a standard deviation of -1. -

-
- -
-

Logistic function as the root of problems

- -

They showed that with this activation function and this -initialization scheme, the variance of the outputs of each layer is -much greater than the variance of its inputs. Going forward in the -network, the variance keeps increasing after each layer until the -activation function saturates at the top layers. This is actually made -worse by the fact that the logistic function has a mean of 0.5, not 0 -(the hyperbolic tangent function has a mean of 0 and behaves slightly -better than the logistic function in deep networks). -

-
- -
-

The derivative of the Logistic funtion

- -

Looking at the logistic activation function, when inputs become large -(negative or positive), the function saturates at 0 or 1, with a -derivative extremely close to 0. Thus when backpropagation kicks in, -it has virtually no gradient to propagate back through the network, -and what little gradient exists keeps getting diluted as -backpropagation progresses down through the top layers, so there is -really nothing left for the lower layers. -

- -

In their paper, Glorot and Bengio propose a way to significantly -alleviate this problem. We need the signal to flow properly in both -directions: in the forward direction when making predictions, and in -the reverse direction when backpropagating gradients. We don’t want -the signal to die out, nor do we want it to explode and saturate. For -the signal to flow properly, the authors argue that we need the -variance of the outputs of each layer to be equal to the variance of -its inputs, and we also need the gradients to have equal variance -before and after flowing through a layer in the reverse direction. -

-
- -
-

Insights from the paper by Glorot and Bengio

- -

One of the insights in the 2010 paper by Glorot and Bengio was that -the vanishing/exploding gradients problems were in part due to a poor -choice of activation function. Until then most people had assumed that -if Nature had chosen to use roughly sigmoid activation functions in -biological neurons, they must be an excellent choice. But it turns out -that other activation functions behave much better in deep neural -networks, in particular the ReLU activation function, mostly because -it does not saturate for positive values (and also because it is quite -fast to compute). -

-
- -
-

The RELU function family

- -

The ReLU activation function suffers from a problem known as the dying -ReLUs: during training, some neurons effectively die, meaning they -stop outputting anything other than 0. -

- -

In some cases, you may find that half of your network’s neurons are -dead, especially if you used a large learning rate. During training, -if a neuron’s weights get updated such that the weighted sum of the -neuron’s inputs is negative, it will start outputting 0. When this -happen, the neuron is unlikely to come back to life since the gradient -of the ReLU function is 0 when its input is negative. -

-
- -
-

ELU function

- -

To solve this problem, nowadays practitioners use a variant of the -ReLU function, such as the leaky ReLU discussed above or the so-called -exponential linear unit (ELU) function -

- -

 
-$$ -ELU(z) = \left\{\begin{array}{cc} \alpha\left( \exp{(z)}-1\right) & z < 0,\\ z & z \ge 0.\end{array}\right. -$$ -

 
-

- -
-

Which activation function should we use?

- -

In general it seems that the ELU activation function is better than -the leaky ReLU function (and its variants), which is better than -ReLU. ReLU performs better than \( \tanh \) which in turn performs better -than the logistic function. -

- -

If runtime performance is an issue, then you may opt for the leaky -ReLU function over the ELU function If you don’t want to tweak yet -another hyperparameter, you may just use the default \( \alpha \) of -\( 0.01 \) for the leaky ReLU, and \( 1 \) for ELU. If you have spare time and -computing power, you can use cross-validation or bootstrap to evaluate -other activation functions. -

-
- -
-

More on activation functions, output layers

- -

In most cases you can use the ReLU activation function in the hidden -layers (or one of its variants). -

- -

It is a bit faster to compute than other activation functions, and the -gradient descent optimization does in general not get stuck. -

- -For the output layer: - -
    -

  • For classification the softmax activation function is generally a good choice for classification tasks (when the classes are mutually exclusive).
  • -

  • For regression tasks, you can simply use no activation function at all.
  • -
-
- -
-

Batch Normalization

- -

Batch Normalization aims to address the vanishing/exploding gradients -problems, and more generally the problem that the distribution of each -layer’s inputs changes during training, as the parameters of the -previous layers change. -

- -

The technique consists of adding an operation in the model just before -the activation function of each layer, simply zero-centering and -normalizing the inputs, then scaling and shifting the result using two -new parameters per layer (one for scaling, the other for shifting). In -other words, this operation lets the model learn the optimal scale and -mean of the inputs for each layer. In order to zero-center and -normalize the inputs, the algorithm needs to estimate the inputs’ mean -and standard deviation. It does so by evaluating the mean and standard -deviation of the inputs over the current mini-batch, from this the -name batch normalization. -

-
- -
-

Dropout

- -

It is a fairly simple algorithm: at every training step, every neuron -(including the input neurons but excluding the output neurons) has a -probability \( p \) of being temporarily dropped out, meaning it will be -entirely ignored during this training step, but it may be active -during the next step. -

- -

The hyperparameter \( p \) is called the dropout rate, and it is typically -set to 50%. After training, the neurons are not dropped anymore. It -is viewed as one of the most popular regularization techniques. -

-
- -
-

Gradient Clipping

- -

A popular technique to lessen the exploding gradients problem is to -simply clip the gradients during backpropagation so that they never -exceed some threshold (this is mostly useful for recurrent neural -networks). -

- -

This technique is called Gradient Clipping.

- -

In general however, Batch -Normalization is preferred. -

-
- -
-

A top-down perspective on Neural networks

- -

The first thing we would like to do is divide the data into two or -three parts. A training set, a validation or dev (development) set, -and a test set. The test set is the data on which we want to make -predictions. The dev set is a subset of the training data we use to -check how well we are doing out-of-sample, after training the model on -the training dataset. We use the validation error as a proxy for the -test error in order to make tweaks to our model. It is crucial that we -do not use any of the test data to train the algorithm. This is a -cardinal sin in ML. Then: -

- -
    -

  1. Estimate optimal error rate
  2. -

  3. Minimize underfitting (bias) on training data set.
  4. -

  5. Make sure you are not overfitting.
  6. -
-
- -
-

More top-down perspectives

- -

If the validation and test sets are drawn from the same distributions, -then a good performance on the validation set should lead to similarly -good performance on the test set. -

- -

However, sometimes -the training data and test data differ in subtle ways because, for -example, they are collected using slightly different methods, or -because it is cheaper to collect data in one way versus another. In -this case, there can be a mismatch between the training and test -data. This can lead to the neural network overfitting these small -differences between the test and training sets, and a poor performance -on the test set despite having a good performance on the validation -set. To rectify this, Andrew Ng suggests making two validation or dev -sets, one constructed from the training data and one constructed from -the test data. The difference between the performance of the algorithm -on these two validation sets quantifies the train-test mismatch. This -can serve as another important diagnostic when using DNNs for -supervised learning. -

-
- -
-

Limitations of supervised learning with deep networks

- -

Like all statistical methods, supervised learning using neural -networks has important limitations. This is especially important when -one seeks to apply these methods, especially to physics problems. Like -all tools, DNNs are not a universal solution. Often, the same or -better performance on a task can be achieved by using a few -hand-engineered features (or even a collection of random -features). -

-
- -
-

Limitations of NNs

- -

Here we list some of the important limitations of supervised neural network based models.

- -
    -

  • Need labeled data. All supervised learning methods, DNNs for supervised learning require labeled data. Often, labeled data is harder to acquire than unlabeled data (e.g. one must pay for human experts to label images).
  • -

  • Supervised neural networks are extremely data intensive. DNNs are data hungry. They perform best when data is plentiful. This is doubly so for supervised methods where the data must also be labeled. The utility of DNNs is extremely limited if data is hard to acquire or the datasets are small (hundreds to a few thousand samples). In this case, the performance of other methods that utilize hand-engineered features can exceed that of DNNs.
  • -
-
- -
-

Homogeneous data

- -
    -

  • Homogeneous data. Almost all DNNs deal with homogeneous data of one type. It is very hard to design architectures that mix and match data types (i.e. some continuous variables, some discrete variables, some time series). In applications beyond images, video, and language, this is often what is required. In contrast, ensemble models like random forests or gradient-boosted trees have no difficulty handling mixed data types.
  • -
-
- -
-

More limitations

- -
    -

  • Many problems are not about prediction. In natural science we are often interested in learning something about the underlying distribution that generates the data. In this case, it is often difficult to cast these ideas in a supervised learning setting. While the problems are related, it is possible to make good predictions with a wrong model. The model might or might not be useful for understanding the underlying science.
  • -
-

-

Some of these remarks are particular to DNNs, others are shared by all supervised learning methods. This motivates the use of unsupervised methods which in part circumvent these problems.

-
- - - -
-
- - - - - - - - - - - - - diff --git a/doc/src/week41/week41-solarized.html b/doc/src/week41/week41-solarized.html deleted file mode 100644 index c22ccca46..000000000 --- a/doc/src/week41/week41-solarized.html +++ /dev/null @@ -1,2750 +0,0 @@ - - - - - - - -Week 41 Neural networks and constructing a neural network code - - - - - - - - - - - - - - - - - - -
-

Week 41 Neural networks and constructing a neural network code

-
- - -
-Morten Hjorth-Jensen -
- -
-Department of Physics, University of Oslo -
-
-
-

Week 41

-
-
- -









-

Plan for week 41, October 7-11

- -









-

Material for the lecture on Monday October 7, 2024

-
    -
  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -
  3. Building our own Feed-forward Neural Network - -
  4. -
-
-Readings and Videos: -

-

    -
  1. These lecture notes
  2. -
  3. Rashcka et al chapter 11
  4. -
  5. For neural networks we recommend Goodfellow et al chapter 6. -
      -
    1. Neural Networks demystified at https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs
    2. -
    -
  6. Building Neural Networks from scratch at https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex
  7. -
  8. Video on Neural Networks at https://www.youtube.com/watch?v=CqOfi41LfDw
  9. -
  10. Video on the back propagation algorithm at https://www.youtube.com/watch?v=Ilg3gGewQ5U
  11. -
-

We also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at http://neuralnetworksanddeeplearning.com/chap4.html.

-
- - -









-

Material for the active learning sessions on Tuesday and Wednesday

-
    -
  • Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation
  • -
  • One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code
  • -
  • Discussion of project 2
  • -
  • Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent
  • -
-









-

Lecture Monday October 7

- -









-

Introduction to Neural networks

- -

Artificial neural networks are computational systems that can learn to -perform tasks by considering examples, generally without being -programmed with any task-specific rules. It is supposed to mimic a -biological system, wherein neurons interact by sending signals in the -form of mathematical functions between layers. All layers can contain -an arbitrary number of neurons, and each connection is represented by -a weight variable. -

- -









-

Artificial neurons

- -

The field of artificial neural networks has a long history of -development, and is closely connected with the advancement of computer -science and computers in general. A model of artificial neurons was -first developed by McCulloch and Pitts in 1943 to study signal -processing in the brain and has later been refined by others. The -general idea is to mimic neural networks in the human brain, which is -composed of billions of neurons that communicate with each other by -sending electrical signals. Each neuron accumulates its incoming -signals, which must exceed an activation threshold to yield an -output. If the threshold is not overcome, the neuron remains inactive, -i.e. has zero output. -

- -

This behaviour has inspired a simple mathematical model for an artificial neuron.

- -$$ -\begin{equation} - y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) -\label{artificialNeuron} -\end{equation} -$$ - -

Here, the output \( y \) of the neuron is the value of its activation function, which have as input -a weighted sum of signals \( x_i, \dots ,x_n \) received by \( n \) other neurons. -

- -

Conceptually, it is helpful to divide neural networks into four -categories: -

-
    -
  1. general purpose neural networks for supervised learning,
  2. -
  3. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs),
  4. -
  5. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and
  6. -
  7. neural networks for unsupervised learning such as Deep Boltzmann Machines.
  8. -
-

In natural science, DNNs and CNNs have already found numerous -applications. In statistical physics, they have been applied to detect -phase transitions in 2D Ising and Potts models, lattice gauge -theories, and different phases of polymers, or solving the -Navier-Stokes equation in weather forecasting. Deep learning has also -found interesting applications in quantum physics. Various quantum -phase transitions can be detected and studied using DNNs and CNNs, -topological phases, and even non-equilibrium many-body -localization. Representing quantum states as DNNs quantum state -tomography are among some of the impressive achievements to reveal the -potential of DNNs to facilitate the study of quantum systems. -

- -

In quantum information theory, it has been shown that one can perform -gate decompositions with the help of neural. -

- -

The applications are not limited to the natural sciences. There is a -plethora of applications in essentially all disciplines, from the -humanities to life science and medicine. -

- -









-

Neural network types

- -

An artificial neural network (ANN), is a computational model that -consists of layers of connected neurons, or nodes or units. We will -refer to these interchangeably as units or nodes, and sometimes as -neurons. -

- -

It is supposed to mimic a biological nervous system by letting each -neuron interact with other neurons by sending signals in the form of -mathematical functions between layers. A wide variety of different -ANNs have been developed, but most of them consist of an input layer, -an output layer and eventual layers in-between, called hidden -layers. All layers can contain an arbitrary number of nodes, and each -connection between two nodes is associated with a weight variable. -

- -

Neural networks (also called neural nets) are neural-inspired -nonlinear models for supervised learning. As we will see, neural nets -can be viewed as natural, more powerful extensions of supervised -learning methods such as linear and logistic regression and soft-max -methods we discussed earlier. -

- -









-

Feed-forward neural networks

- -

The feed-forward neural network (FFNN) was the first and simplest type -of ANNs that were devised. In this network, the information moves in -only one direction: forward through the layers. -

- -

Nodes are represented by circles, while the arrows display the -connections between the nodes, including the direction of information -flow. Additionally, each arrow corresponds to a weight variable -(figure to come). We observe that each node in a layer is connected -to all nodes in the subsequent layer, making this a so-called -fully-connected FFNN. -

- -









-

Convolutional Neural Network

- -

A different variant of FFNNs are convolutional neural networks -(CNNs), which have a connectivity pattern inspired by the animal -visual cortex. Individual neurons in the visual cortex only respond to -stimuli from small sub-regions of the visual field, called a receptive -field. This makes the neurons well-suited to exploit the strong -spatially local correlation present in natural images. The response of -each neuron can be approximated mathematically as a convolution -operation. (figure to come) -

- -

Convolutional neural networks emulate the behaviour of neurons in the -visual cortex by enforcing a local connectivity pattern between -nodes of adjacent layers: Each node in a convolutional layer is -connected only to a subset of the nodes in the previous layer, in -contrast to the fully-connected FFNN. Often, CNNs consist of several -convolutional layers that learn local features of the input, with a -fully-connected layer at the end, which gathers all the local data and -produces the outputs. They have wide applications in image and video -recognition. -

- -









-

Recurrent neural networks

- -

So far we have only mentioned ANNs where information flows in one -direction: forward. Recurrent neural networks on the other hand, -have connections between nodes that form directed cycles. This -creates a form of internal memory which are able to capture -information on what has been calculated before; the output is -dependent on the previous computations. Recurrent NNs make use of -sequential information by performing the same task for every element -in a sequence, where each element depends on previous elements. An -example of such information is sentences, making recurrent NNs -especially well-suited for handwriting and speech recognition. -

- -









-

Other types of networks

- -

There are many other kinds of ANNs that have been developed. One type -that is specifically designed for interpolation in multidimensional -space is the radial basis function (RBF) network. RBFs are typically -made up of three layers: an input layer, a hidden layer with -non-linear radial symmetric activation functions and a linear output -layer (''linear'' here means that each node in the output layer has a -linear activation function). The layers are normally fully-connected -and there are no cycles, thus RBFs can be viewed as a type of -fully-connected FFNN. They are however usually treated as a separate -type of NN due the unusual activation functions. -

- -









-

Multilayer perceptrons

- -

One uses often so-called fully-connected feed-forward neural networks -with three or more layers (an input layer, one or more hidden layers -and an output layer) consisting of neurons that have non-linear -activation functions. -

- -

Such networks are often called multilayer perceptrons (MLPs).

- -









-

Why multilayer perceptrons?

- -

According to the Universal approximation theorem, a feed-forward -neural network with just a single hidden layer containing a finite -number of neurons can approximate a continuous multidimensional -function to arbitrary accuracy, assuming the activation function for -the hidden layer is a non-constant, bounded and -monotonically-increasing continuous function. -

- -

Note that the requirements on the activation function only applies to -the hidden layer, the output nodes are always assumed to be linear, so -as to not restrict the range of output values. -

- -









-

Illustration of a single perceptron model and a multi-perceptron model

- -
-
-
-

Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

-
-

-
- -









-

Examples of XOR, OR and AND gates

- -

Let us first try to fit various gates using standard linear -regression. The gates we are thinking of are the classical XOR, OR and -AND gates, well-known elements in computer science. The tables here -show how we can set up the inputs \( x_1 \) and \( x_2 \) in order to yield a -specific target \( y_i \). -

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR, OR and AND gates with linear regression
-"""
-
-import numpy as np
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

What is happening here?

- -









-

Does Logistic Regression do a better Job?

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR and OR gates with linear regression
-and logistic regression
-"""
-
-import matplotlib.pyplot as plt
-from sklearn.linear_model import LogisticRegression
-import numpy as np
-
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-# Now we change to logistic regression
-
-
-# Logistic Regression
-logreg = LogisticRegression()
-logreg.fit(X, yOR)
-print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR)))
-
-logreg.fit(X, yXOR)
-print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR)))
-
-
-logreg.fit(X, yAND)
-print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND)))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

Not exactly impressive, but somewhat better.

- -









-

Adding Neural Networks

- - - -
-
-
-
-
-
# and now neural networks with Scikit-Learn and the XOR
-
-from sklearn.neural_network import MLPClassifier
-from sklearn.datasets import make_classification
-X, yXOR = make_classification(n_samples=100, random_state=1)
-FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR)
-FFNN.predict_proba(X)
-print(f"Test set accuracy with Feed Forward Neural Network  for XOR gate:{FFNN.score(X, yXOR)}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Mathematics of deep learning

- - - - -









-

Reminder on books with hands-on material and codes

- - - -









-

Reading recommendations

- -
    -
  1. Rashkca et al., chapter 11, jupyter-notebook sent separately, from GitHub
  2. -
  3. Goodfellow et al, chapter 6 and 7 contain most of the neural network background.
  4. -
-









-

Mathematics of deep learning and neural networks

- -

Neural networks, in its so-called feed-forward form, where each -iterations contains a feed-forward stage and a back-propgagation -stage, consist of series of affine matrix-matrix and matrix-vector -multiplications. The unknown parameters (the so-called biases and -weights which deternine the architecture of a neural network), are -uptaded iteratively using the so-called back-propagation algorithm. -This algorithm corresponds to the so-called reverse mode of -automatic differentation. -

- -









-

Basics of an NN

- -

A neural network consists of a series of hidden layers, in addition to -the input and output layers. Each layer \( l \) has a set of parameters -\( \boldsymbol{\Theta}^{(l)}=(\boldsymbol{W}^{(l)},\boldsymbol{b}^{(l)}) \) which are related to the -parameters in other layers through a series of affine transformations, -for a standard NN these are matrix-matrix and matrix-vector -multiplications. For all layers we will simply use a collective variable \( \boldsymbol{\Theta} \). -

- -

It consist of two basic steps:

-
    -
  1. a feed forward stage which takes a given input and produces a final output which is compared with the target values through our cost/loss function.
  2. -
  3. a back-propagation state where the unknown parameters \( \boldsymbol{\Theta} \) are updated through the optimization of the their gradients. The expressions for the gradients are obtained via the chain rule, starting from the derivative of the cost/function.
  4. -
-

These two steps make up one iteration. This iterative process is continued till we reach an eventual stopping criterion.

- -









-

Overarching view of a neural network

- -

The architecture of a neural network defines our model. This model -aims at describing some function \( f(\boldsymbol{x} \) which represents -some final result (outputs or tagrget values) given a specific inpput -\( \boldsymbol{x} \). Note that here \( \boldsymbol{y} \) and \( \boldsymbol{x} \) are not limited to be -vectors. -

- -

The architecture consists of

-
    -
  1. An input and an output layer where the input layer is defined by the inputs \( \boldsymbol{x} \). The output layer produces the model ouput \( \boldsymbol{\tilde{y}} \) which is compared with the target value \( \boldsymbol{y} \)
  2. -
  3. A given number of hidden layers and neurons/nodes/units for each layer (this may vary)
  4. -
  5. A given activation function \( \sigma(\boldsymbol{z}) \) with arguments \( \boldsymbol{z} \) to be defined below. The activation functions may differ from layer to layer.
  6. -
  7. The last layer, normally called output layer has normally an activation function tailored to the specific problem
  8. -
  9. Finally we define a so-called cost or loss function which is used to gauge the quality of our model.
  10. -
-









-

The optimization problem

- -

The cost function is a function of the unknown parameters -\( \boldsymbol{\Theta} \) where the latter is a container for all possible -parameters needed to define a neural network -

- -

If we are dealing with a regression task a typical cost/loss function -is the mean squared error -

-$$ -C(\boldsymbol{\Theta})=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)\right\}. -$$ - -

This function represents one of many possible ways to define -the so-called cost function. Note that here we have assumed a linear dependence in terms of the paramters \( \boldsymbol{\Theta} \). This is in general not the case. -

- -









-

Parameters of neural networks

-

For neural networks the parameters -\( \boldsymbol{\Theta} \) are given by the so-called weights and biases (to be -defined below). -

- -

The weights are given by matrix elements \( w_{ij}^{(l)} \) where the -superscript indicates the layer number. The biases are typically given -by vector elements representing each single node of a given layer, -that is \( b_j^{(l)} \). -

- -









-

Other ingredients of a neural network

- -

Having defined the architecture of a neural network, the optimization -of the cost function with respect to the parameters \( \boldsymbol{\Theta} \), -involves the calculations of gradients and their optimization. The -gradients represent the derivatives of a multidimensional object and -are often approximated by various gradient methods, including -

-
    -
  1. various quasi-Newton methods,
  2. -
  3. plain gradient descent (GD) with a constant learning rate \( \eta \),
  4. -
  5. GD with momentum and other approximations to the learning rates such as
  6. -
      -
    • Adapative gradient (ADAgrad)
    • -
    • Root mean-square propagation (RMSprop)
    • -
    • Adaptive gradient with momentum (ADAM) and many other
    • -
    -
  7. Stochastic gradient descent and various families of learning rate approximations
  8. -
-









-

Other parameters

- -

In addition to the above, there are often additional hyperparamaters -which are included in the setup of a neural network. These will be -discussed below. -

- -









-

Universal approximation theorem

- -

The universal approximation theorem plays a central role in deep -learning. Cybenko (1989) showed -the following: -

- -
- -

-

Let \( \sigma \) be any continuous sigmoidal function such that

-$$ -\sigma(z) = \left\{\begin{array}{cc} 1 & z\rightarrow \infty\\ 0 & z \rightarrow -\infty \end{array}\right. -$$ - -

Given a continuous and deterministic function \( F(\boldsymbol{x}) \) on the unit -cube in \( d \)-dimensions \( F\in [0,1]^d \), \( x\in [0,1]^d \) and a parameter -\( \epsilon >0 \), there is a one-layer (hidden) neural network -\( f(\boldsymbol{x};\boldsymbol{\Theta}) \) with \( \boldsymbol{\Theta}=(\boldsymbol{W},\boldsymbol{b}) \) and \( \boldsymbol{W}\in -\mathbb{R}^{m\times n} \) and \( \boldsymbol{b}\in \mathbb{R}^{n} \), for which -

-$$ -\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert < \epsilon \hspace{0.1cm} \forall \boldsymbol{x}\in[0,1]^d. -$$ -
- - -









-

Some parallels from real analysis

- -

For those of you familiar with for example the Stone-Weierstrass -theorem -for polynomial approximations or the convergence criterion for Fourier -series, there are similarities in the derivation of the proof for -neural networks. -

- -









-

The approximation theorem in words

- -

Any continuous function \( y=F(\boldsymbol{x}) \) supported on the unit cube in -\( d \)-dimensions can be approximated by a one-layer sigmoidal network to -arbitrary accuracy. -

- -

Hornik (1991) extended the theorem by letting any non-constant, bounded activation function to be included using that the expectation value

-$$ -\mathbb{E}[\vert F(\boldsymbol{x})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \infty. -$$ - -

Then we have

-$$ -\mathbb{E}[\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \epsilon. -$$ - - -









-

More on the general approximation theorem

- -

None of the proofs give any insight into the relation between the -number of of hidden layers and nodes and the approximation error -\( \epsilon \), nor the magnitudes of \( \boldsymbol{W} \) and \( \boldsymbol{b} \). -

- -

Neural networks (NNs) have what we may call a kind of universality no matter what function we want to compute.

- -
- -

-

It does not mean that an NN can be used to exactly compute any function. Rather, we get an approximation that is as good as we want.

-
- - -









-

Class of functions we can approximate

- -
- -

-

The class of functions that can be approximated are the continuous ones. -If the function \( F(\boldsymbol{x}) \) is discontinuous, it won't in general be possible to approximate it. However, an NN may still give an approximation even if we fail in some points. -

-
- - -









-

Setting up the equations for a neural network

- -

The questions we want to ask are how do changes in the biases and the -weights in our network change the cost function and how can we use the -final output to modify the weights and biases? -

- -

To derive these equations let us start with a plain regression problem -and define our cost function as -

- -$$ -{\cal C}(\boldsymbol{\Theta}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2, -$$ - -

where the $y_i$s are our \( n \) targets (the values we want to -reproduce), while the outputs of the network after having propagated -all inputs \( \boldsymbol{x} \) are given by \( \boldsymbol{\tilde{y}}_i \). -

- -









-

Layout of a neural network with three hidden layers

- -

-
-

-
-

- -









-

Definitions

- -

With our definition of the targets \( \boldsymbol{y} \), the outputs of the -network \( \boldsymbol{\tilde{y}} \) and the inputs \( \boldsymbol{x} \) we -define now the activation \( z_j^l \) of node/neuron/unit \( j \) of the -\( l \)-th layer as a function of the bias, the weights which add up from -the previous layer \( l-1 \) and the forward passes/outputs -\( \hat{a}^{l-1} \) from the previous layer as -

- -$$ -z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, -$$ - -

where \( b_k^l \) are the biases from layer \( l \). Here \( M_{l-1} \) -represents the total number of nodes/neurons/units of layer \( l-1 \). The -figure in the whiteboard notes illustrates this equation. We can rewrite this in a more -compact form as the matrix-vector products we discussed earlier, -

- -$$ -\hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. -$$ - - -









-

Inputs to the activation function

- -

With the activation values \( \boldsymbol{z}^l \) we can in turn define the -output of layer \( l \) as \( \boldsymbol{a}^l = f(\boldsymbol{z}^l) \) where \( f \) is our -activation function. In the examples here we will use the sigmoid -function discussed in our logistic regression lectures. We will also use the same activation function \( f \) for all layers -and their nodes. It means we have -

- -$$ -a_j^l = \sigma(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. -$$ - - -









-

Derivatives and the chain rule

- -

From the definition of the activation \( z_j^l \) we have

-$$ -\frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, -$$ - -

and

-$$ -\frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. -$$ - -

With our definition of the activation function we have that (note that this function depends only on \( z_j^l \))

-$$ -\frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=\sigma(z_j^l)(1-\sigma(z_j^l)). -$$ - - -









-

Derivative of the cost function

- -

With these definitions we can now compute the derivative of the cost function in terms of the weights.

- -

Let us specialize to the output layer \( l=L \). Our cost function is

-$$ -{\cal C}(\boldsymbol{\Theta}^L) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - y_i\right)^2, -$$ - -

The derivative of this function with respect to the weights is

- -$$ -\frac{\partial{\cal C}(\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, -$$ - -

The last partial derivative can easily be computed and reads (by applying the chain rule)

-$$ -\frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}. -$$ - - -









-

Simpler examples first, and automatic differentiation

- -

In order to understand the back propagation algorithm and its -derivation (an implementation of the chain rule), let us first digress -with some simple examples. These examples are also meant to motivate -the link with back propagation and automatic differentiation. -

- -









-

Reminder on the chain rule and gradients

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t) \) and \( y=y(t) \) are functions of a variable \( t \), we have that the gradient of \( f \) with respect to \( t \) (without the explicit unit vector components)

-$$ -\frac{df}{dt} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial t} \end{bmatrix}=\frac{\partial f}{\partial x} \frac{\partial x}{\partial t} +\frac{\partial f}{\partial y} \frac{\partial y}{\partial t}. -$$ - - -









-

Multivariable functions

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t,s) \) and \( y=y(t,s) \) are functions of the variables \( t \) and \( s \), we have that the partial derivatives

-$$ -\frac{\partial f}{\partial s}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial s}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial s}, -$$ - -

and

-$$ -\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}. -$$ - -

the gradient of \( f \) with respect to \( t \) and \( s \) (without the explicit unit vector components)

-$$ -\frac{df}{d(s,t)} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial s} &\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial s} & \frac{\partial y}{\partial t} \end{bmatrix}. -$$ - - -









-

Automatic differentiation through examples

- -

A great introduction to automatic differentiation is given by Baydin et al., see https://arxiv.org/abs/1502.05767.

- -

Automatic differentiation is a represented by a repeated application -of the chain rule on well-known functions and allows for the -calculation of derivatives to numerical precision. It is not the same -as the calculation of symbolic derivatives via for example SymPy, nor -does it use approximative formulae based on Taylor-expansions of a -function around a given value. The latter are error prone due to -truncation errors and values of the step size \( \Delta \). -

- -









-

Simple example

- -

Our first example is rather simple,

-$$ -f(x) =\exp{x^2}, -$$ - -

with derivative

-$$ -f'(x) =2x\exp{x^2}. -$$ - -

We can use SymPy to extract the pertinent lines of Python code through the following simple example

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = exp(x*x)
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Smarter way of evaluating the above function

-

If we study this function, we note that we can reduce the number of operations by introducing an intermediate variable

-$$ -a = x^2, -$$ - -

leading to

-$$ -f(x) = f(a(x)) = b= \exp{a}. -$$ - -

We now assume that all operations can be counted in terms of equal -floating point operations. This means that in order to calculate -\( f(x) \) we need first to square \( x \) and then compute the exponential. We -have thus two floating point operations only. -

- -









-

Reducing the number of operations

- -

With the introduction of a precalculated quantity \( a \) and thereby \( f(x) \) we have that the derivative can be written as

- -$$ -f'(x) = 2xb, -$$ - -

which reduces the number of operations from four in the orginal -expression to two. This means that if we need to compute \( f(x) \) and -its derivative (a common task in optimizations), we have reduced the -number of operations from six to four in total. -

- -

Note that the usage of a symbolic software like SymPy does not -include such simplifications and the calculations of the function and -the derivatives yield in general more floating point operations. -

- -









-

Chain rule, forward and reverse modes

- -

In the above example we have introduced the variables \( a \) and \( b \), and our function is

-$$ -f(x) = f(a(x)) = b= \exp{a}, -$$ - -

with \( a=x^2 \). We can decompose the derivative of \( f \) with respect to \( x \) as

-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}. -$$ - -

We note that since \( b=f(x) \) that

-$$ -\frac{df}{db}=1, -$$ - -

leading to

-$$ -\frac{df}{dx}=\frac{db}{da}\frac{da}{dx}=2x\exp{x^2}, -$$ - -

as before.

- -









-

Forward and reverse modes

- -

We have that

-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}, -$$ - -

which we can rewrite either as

-$$ -\frac{df}{dx}=\left[\frac{df}{db}\frac{db}{da}\right]\frac{da}{dx}, -$$ - -

or

-$$ -\frac{df}{dx}=\frac{df}{db}\left[\frac{db}{da}\frac{da}{dx}\right]. -$$ - -

The first expression is called reverse mode (or back propagation) -since we start by evaluating the derivatives at the end point and then -propagate backwards. This is the standard way of evaluating -derivatives (gradients) when optimizing the parameters of a neural -network. In the context of deep learning this is computationally -more efficient since the output of a neural network consists of either -one or some few other output variables. -

- -

The second equation defines the so-called forward mode.

- -









-

More complicated function

- -

We increase our ambitions and introduce a slightly more complicated function

-$$ -f(x) =\sqrt{x^2+exp{x^2}}, -$$ - -

with derivative

-$$ -f'(x) =\frac{x(1+\exp{x^2})}{\sqrt{x^2+exp{x^2}}}. -$$ - -

The corresponding SymPy code reads

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = sqrt(x*x+exp(x*x))
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Counting the number of floating point operations

- -

A simple count of operations shows that we need five operations for -the function itself and ten for the derivative. Fifteen operations in total if we wish to proceed with the above codes. -

- -

Can we reduce this to -say half the number of operations? -

- -









-

Defining intermediate operations

- -

We can indeed reduce the number of operation to half of those listed in the brute force approach above. -We define the following quantities -

-$$ -a = x^2, -$$ - -

and

-$$ -b = \exp{x^2} = \exp{a}, -$$ - -

and

-$$ -c= a+b, -$$ - -

and

-$$ -d=f(x)=\sqrt{c}. -$$ - - -









-

New expression for the derivative

- -

With these definitions we obtain the following partial derivatives

-$$ -\frac{\partial a}{\partial x} = 2x, -$$ - -

and

-$$ -\frac{\partial b}{\partial a} = \exp{a}, -$$ - -

and

-$$ -\frac{\partial c}{\partial a} = 1, -$$ - -

and

-$$ -\frac{\partial c}{\partial b} = 1, -$$ - -

and

-$$ -\frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ - -

and finally

-$$ -\frac{\partial f}{\partial d} = 1. -$$ - - -









-

Final derivatives

-

Our final derivatives are thus

-$$ -\frac{\partial f}{\partial c} = \frac{\partial f}{\partial d} \frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ - -$$ -\frac{\partial f}{\partial b} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial b} = \frac{1}{2\sqrt{c}}, -$$ - -$$ -\frac{\partial f}{\partial a} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial a}+ -\frac{\partial f}{\partial b} \frac{\partial b}{\partial a} = \frac{1+\exp{a}}{2\sqrt{c}}, -$$ - -

and finally

-$$ -\frac{\partial f}{\partial x} = \frac{\partial f}{\partial a} \frac{\partial a}{\partial x} = \frac{x(1+\exp{a})}{\sqrt{c}}, -$$ - -

which is just

-$$ -\frac{\partial f}{\partial x} = \frac{x(1+b)}{d}, -$$ - -

and requires only three operations if we can reuse all intermediate variables.

- -









-

In general not this simple

- -

In general, see the generalization below, unless we can obtain simple -analytical expressions which we can simplify further, the final -implementation of automatic differentiation involves repeated -calculations (and thereby operations) of derivatives of elementary -functions. -

- -









-

Automatic differentiation

- -

We can make this example more formal. Automatic differentiation is a -formalization of the previous example (see graph). -

- -

We define \( \boldsymbol{x}\in x_1,\dots, x_l \) input variables to a given function \( f(\boldsymbol{x}) \) and \( x_{l+1},\dots, x_L \) intermediate variables.

- -

In the above example we have only one input variable, \( l=1 \) and four intermediate variables, that is

-$$ -\begin{bmatrix} x_1=x & x_2 = x^2=a & x_3 =\exp{a}= b & x_4=c=a+b & x_5 = \sqrt{c}=d \end{bmatrix}. -$$ - -

Furthemore, for \( i=l+1, \dots, L \) (here \( i=2,3,4,5 \) and \( f=x_L=d \)), we -define the elementary functions \( g_i(x_{Pa(x_i)}) \) where \( x_{Pa(x_i)} \) are the parent nodes of the variable \( x_i \). -

- -

In our case, we have for example for \( x_3=g_3(x_{Pa(x_i)})=\exp{a} \), that \( g_3=\exp{()} \) and \( x_{Pa(x_3)}=a \).

- -









-

Chain rule

- -

We can now compute the gradients by back-propagating the derivatives using the chain rule. -We have defined -

-$$ -\frac{\partial f}{\partial x_L} = 1, -$$ - -

which allows us to find the derivatives of the various variables \( x_i \) as

-$$ -\frac{\partial f}{\partial x_i} = \sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial x_j}{\partial x_i}=\sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial g_j}{\partial x_i}. -$$ - -

Whenever we have a function which can be expressed as a computation -graph and the various functions can be expressed in terms of -elementary functions that are differentiable, then automatic -differentiation works. The functions may not need to be elementary -functions, they could also be computer programs, although not all -programs can be automatically differentiated. -

- -









-

First network example, simple percepetron with one input

- -

As yet another example we define now a simple perceptron model with -all quantities given by scalars. We consider only one input variable -\( x \) and one target value \( y \). We define an activation function -\( \sigma_1 \) which takes as input -

- -$$ -z_1 = w_1x+b_1, -$$ - -

where \( w_1 \) is the weight and \( b_1 \) is the bias. These are the -parameters we want to optimize. The output is \( a_1=\sigma(z_1) \) (see -graph from whiteboard notes). This output is then fed into the -cost/loss function, which we here for the sake of simplicity just -define as the squared error -

- -$$ -C(x;w_1,b_1)=\frac{1}{2}(a_1-y)^2. -$$ - - -









-

Layout of a simple neural network with no hidden layer

- -

-
-

-
-

- -









-

Optimizing the parameters

- -

In setting up the feed forward and back propagation parts of the -algorithm, we need now the derivative of the various variables we want -to train. -

- -

We need

-$$ -\frac{\partial C}{\partial w_1} \hspace{0.1cm}\mathrm{and}\hspace{0.1cm}\frac{\partial C}{\partial b_1}. -$$ - -

Using the chain rule we find

-$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_1-y)\sigma_1'x, -$$ - -

and

-$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_1-y)\sigma_1', -$$ - -

which we later will just define as

-$$ -\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}=\delta_1. -$$ - - -









-

Adding a hidden layer

- -

We change our simple model to (see graph) -a network with just one hidden layer but with scalar variables only. -

- -

Our output variable changes to \( a_2 \) and \( a_1 \) is now the output from the hidden node and \( a_0=x \). -We have then -

-$$ -z_1 = w_1a_0+b_1 \hspace{0.1cm} \wedge a_1 = \sigma_1(z_1), -$$ - -$$ -z_2 = w_2a_1+b_2 \hspace{0.1cm} \wedge a_2 = \sigma_2(z_2), -$$ - -

and the cost function

-$$ -C(x;\boldsymbol{\Theta})=\frac{1}{2}(a_2-y)^2, -$$ - -

with \( \boldsymbol{\Theta}=[w_1,w_2,b_1,b_2] \).

- -









-

Layout of a simple neural network with one hidden layer

- -

-
-

-
-

- -









-

The derivatives

- -

The derivatives are now, using the chain rule again

- -$$ -\frac{\partial C}{\partial w_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial w_2}=(a_2-y)\sigma_2'a_1=\delta_2a_1, -$$ - -$$ -\frac{\partial C}{\partial b_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial b_2}=(a_2-y)\sigma_2'=\delta_2, -$$ - -$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_2-y)\sigma_2'a_1\sigma_1'a_0, -$$ - -$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_2-y)\sigma_2'\sigma_1'=\delta_1. -$$ - -

Can you generalize this to more than one hidden layer?

- -









-

Important observations

- -
- -

-

From the above equations we see that the derivatives of the activation -functions play a central role. If they vanish, the training may -stop. This is called the vanishing gradient problem, see discussions below. If they become -large, the parameters \( w_i \) and \( b_i \) may simply go to infinity. This -is referenced as the exploding gradient problem. -

-
- - -









-

The training

- -

The training of the parameters is done through various gradient descent approximations with

- -$$ -w_{i}\leftarrow w_{i}- \eta \delta_i a_{i-1}, -$$ - -

and

-$$ -b_i \leftarrow b_i-\eta \delta_i, -$$ - -

with \( \eta \) is the learning rate.

- -

One iteration consists of one feed forward step and one back-propagation step. Each back-propagation step does one update of the parameters \( \boldsymbol{\Theta} \).

- -

For the first hidden layer \( a_{i-1}=a_0=x \) for this simple model.

- -









-

Code example

- -

The code here implements the above model with one hidden layer and -scalar variables for the same function we studied in the previous -example. The code is however set up so that we can add multiple -inputs \( x \) and target values \( y \). Note also that we have the -possibility of defining a feature matrix \( \boldsymbol{X} \) with more than just -one column for the input values. This will turn useful in our next example. We have also defined matrices and vectors for all of our operations although it is not necessary here. -

- - - -
-
-
-
-
-
import numpy as np
-# We use the Sigmoid function as activation function
-def sigmoid(z):
-    return 1.0/(1.0+np.exp(-z))
-
-def forwardpropagation(x):
-    # weighted sum of inputs to the hidden layer
-    z_1 = np.matmul(x, w_1) + b_1
-    # activation in the hidden layer
-    a_1 = sigmoid(z_1)
-    # weighted sum of inputs to the output layer
-    z_2 = np.matmul(a_1, w_2) + b_2
-    a_2 = z_2
-    return a_1, a_2
-
-def backpropagation(x, y):
-    a_1, a_2 = forwardpropagation(x)
-    # parameter delta for the output layer, note that a_2=z_2 and its derivative wrt z_2 is just 1
-    delta_2 = a_2 - y
-    print(0.5*((a_2-y)**2))
-    # delta for  the hidden layer
-    delta_1 = np.matmul(delta_2, w_2.T) * a_1 * (1 - a_1)
-    # gradients for the output layer
-    output_weights_gradient = np.matmul(a_1.T, delta_2)
-    output_bias_gradient = np.sum(delta_2, axis=0)
-    # gradient for the hidden layer
-    hidden_weights_gradient = np.matmul(x.T, delta_1)
-    hidden_bias_gradient = np.sum(delta_1, axis=0)
-    return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient
-
-
-# ensure the same random numbers appear every time
-np.random.seed(0)
-# Input variable
-x = np.array([4.0],dtype=np.float64)
-# Target values
-y = 2*x+1.0 
-
-# Defining the neural network, only scalars here
-n_inputs = x.shape
-n_features = 1
-n_hidden_neurons = 1
-n_outputs = 1
-
-# Initialize the network
-# weights and bias in the hidden layer
-w_1 = np.random.randn(n_features, n_hidden_neurons)
-b_1 = np.zeros(n_hidden_neurons) + 0.01
-
-# weights and bias in the output layer
-w_2 = np.random.randn(n_hidden_neurons, n_outputs)
-b_2 = np.zeros(n_outputs) + 0.01
-
-eta = 0.1
-for i in range(50):
-    # calculate gradients
-    derivW2, derivB2, derivW1, derivB1 = backpropagation(x, y)
-    # update weights and biases
-    w_2 -= eta * derivW2
-    b_2 -= eta * derivB2
-    w_1 -= eta * derivW1
-    b_1 -= eta * derivB1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

We see that after some few iterations (the results do depend on the learning rate however), we get an error which is rather small.

- -









- - -

Exercise 1: Including more data

- -

Try to increase the amount of input and -target/output data. Try also to perform calculations for more values -of the learning rates. Feel free to add either hyperparameters with an -\( l_1 \) norm or an \( l_2 \) norm and discuss your results. -Discuss your results as functions of the amount of training data and various learning rates. -

- -

Challenge: Try to change the activation functions and replace the hard-coded analytical expressions with automatic derivation via either autograd or JAX.

- - - -









-

Simple neural network and the back propagation equations

- -

Let us now try to increase our level of ambition and attempt at setting -up the equations for a neural network with two input nodes, one hidden -layer with two hidden nodes and one output layer with one output node/neuron only (see graph).. -

- -

We need to define the following parameters and variables with the input layer (layer \( (0) \)) -where we label the nodes \( x_0 \) and \( x_1 \) -

-$$ -x_0 = a_0^{(0)} \wedge x_1 = a_1^{(0)}. -$$ - -

The hidden layer (layer \( (1) \)) has nodes which yield the outputs \( a_0^{(1)} \) and \( a_1^{(1)} \)) with weight \( \boldsymbol{w} \) and bias \( \boldsymbol{b} \) parameters

-$$ -w_{ij}^{(1)}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)}\right\} \wedge b^{(1)}=\left\{b_0^{(1)},b_1^{(1)}\right\}. -$$ - - -









-

Layout of a simple neural network with two input nodes, one hidden layer and one output node

- -

-
-

-
-

- -









-

The ouput layer

- -

Finally, we have the ouput layer given by layer label \( (2) \) with output \( a^{(2)} \) and weights and biases to be determined given by the variables

-$$ -w_{i}^{(2)}=\left\{w_{0}^{(2)},w_{1}^{(2)}\right\} \wedge b^{(2)}. -$$ - -

Our output is \( \tilde{y}=a^{(2)} \) and we define a generic cost function \( C(a^{(2)},y;\boldsymbol{\Theta}) \) where \( y \) is the target value (a scalar here). -The parameters we need to optimize are given by -

-$$ -\boldsymbol{\Theta}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)},w_{0}^{(2)},w_{1}^{(2)},b_0^{(1)},b_1^{(1)},b^{(2)}\right\}. -$$ - - -









-

Compact expressions

- -

We can define the inputs to the activation functions for the various layers in terms of various matrix-vector multiplications and vector additions. -The inputs to the first hidden layer are -

-$$ -\begin{bmatrix}z_0^{(1)} \\ z_1^{(1)} \end{bmatrix}=\begin{bmatrix}w_{00}^{(1)} & w_{01}^{(1)}\\ w_{10}^{(1)} &w_{11}^{(1)} \end{bmatrix}\begin{bmatrix}a_0^{(0)} \\ a_1^{(0)} \end{bmatrix}+\begin{bmatrix}b_0^{(1)} \\ b_1^{(1)} \end{bmatrix}, -$$ - -

with outputs

-$$ -\begin{bmatrix}a_0^{(1)} \\ a_1^{(1)} \end{bmatrix}=\begin{bmatrix}\sigma^{(1)}(z_0^{(1)}) \\ \sigma^{(1)}(z_1^{(1)}) \end{bmatrix}. -$$ - - -









-

Output layer

- -

For the final output layer we have the inputs to the final activation function

-$$ -z^{(2)} = w_{0}^{(2)}a_0^{(1)} +w_{1}^{(2)}a_1^{(1)}+b^{(2)}, -$$ - -

resulting in the output

-$$ -a^{(2)}=\sigma^{(2)}(z^{(2)}). -$$ - - -









-

Explicit derivatives

- -

In total we have nine parameters which we need to train. Using the -chain rule (or just the back-propagation algorithm) we can find all -derivatives. Since we will use automatic differentiation in reverse -mode, we start with the derivatives of the cost function with respect -to the parameters of the output layer, namely -

- -$$ -\frac{\partial C}{\partial w_{i}^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial w_{i}^{(2)}}=\delta^{(2)}a_i^{(1)}, -$$ - -

with

-$$ -\delta^{(2)}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -$$ - -

and finally

-$$ -\frac{\partial C}{\partial b^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial b^{(2)}}=\delta^{(2)}. -$$ - - -









-

Derivatives of the hidden layer

- -

Using the chain rule we have the following expressions for say one of the weight parameters (it is easy to generalize to the other weight parameters)

-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}= \delta^{(2)}\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}, -$$ - -

which, noting that

-$$ -z^{(2)} =w_0^{(2)}a_0^{(1)}+w_1^{(2)}a_1^{(1)}+b^{(2)}, -$$ - -

allows us to rewrite

-$$ -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}a_0^{(1)}. -$$ - - -









-

Final expression

-

Defining

-$$ -\delta_0^{(1)}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}\delta^{(2)}, -$$ - -

we have

-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\delta_0^{(1)}a_0^{(1)}. -$$ - -

Similarly, we obtain

-$$ -\frac{\partial C}{\partial w_{01}^{(1)}}=\delta_0^{(1)}a_1^{(1)}. -$$ - - -









-

Completing the list

- -

Similarly, we find

-$$ -\frac{\partial C}{\partial w_{10}^{(1)}}=\delta_1^{(1)}a_0^{(1)}, -$$ - -

and

-$$ -\frac{\partial C}{\partial w_{11}^{(1)}}=\delta_1^{(1)}a_1^{(1)}, -$$ - -

where we have defined

-$$ -\delta_1^{(1)}=w_1^{(2)}\frac{\partial a_1^{(1)}}{\partial z_1^{(1)}}\delta^{(2)}. -$$ - - -









-

Final expressions for the biases of the hidden layer

- -

For the sake of completeness, we list the derivatives of the biases, which are

-$$ -\frac{\partial C}{\partial b_{0}^{(1)}}=\delta_0^{(1)}, -$$ - -

and

-$$ -\frac{\partial C}{\partial b_{1}^{(1)}}=\delta_1^{(1)}. -$$ - -

As we will see below, these expressions can be generalized in a more compact form.

- -









-

Gradient expressions

- -

For this specific model, with just one output node and two hidden -nodes, the gradient descent equations take the following form for output layer -

-$$ -w_{i}^{(2)}\leftarrow w_{i}^{(2)}- \eta \delta^{(2)} a_{i}^{(1)}, -$$ - -

and

-$$ -b^{(2)} \leftarrow b^{(2)}-\eta \delta^{(2)}, -$$ - -

and

-$$ -w_{ij}^{(1)}\leftarrow w_{ij}^{(1)}- \eta \delta_{i}^{(1)} a_{j}^{(0)}, -$$ - -

and

-$$ -b_{i}^{(1)} \leftarrow b_{i}^{(1)}-\eta \delta_{i}^{(1)}, -$$ - -

where \( \eta \) is the learning rate.

- -









- - -

Exercise 2: Extended program

- -

We extend our simple code to a function which depends on two variable \( x_0 \) and \( x_1 \), that is

-$$ -y=f(x_0,x_1)=x_0^2+3x_0x_1+x_1^2+5. -$$ - -

We feed our network with \( n=100 \) entries \( x_0 \) and \( x_1 \). We have thus two features represented by these variable and an input matrix/design matrix \( \boldsymbol{X}\in \mathbf{R}^{n\times 2} \)

-$$ -\boldsymbol{X}=\begin{bmatrix} x_{00} & x_{01} \\ x_{00} & x_{01} \\ x_{10} & x_{11} \\ x_{20} & x_{21} \\ \dots & \dots \\ \dots & \dots \\ x_{n-20} & x_{n-21} \\ x_{n-10} & x_{n-11} \end{bmatrix}. -$$ - -

Write a code, based on the previous code examples, which takes as input these data and fit the above function. -You can extend your code to include automatic differentiation. -

- -

With these examples, we are now ready to embark upon the writing of more a general code for neural networks.

- - - -









-

Getting serious, the back propagation equations for a neural network

- -

Now it is time to move away from one node in each layer only. Our inputs are also represented either by several inputs.

- -

We have thus

-$$ -\frac{\partial{\cal C}((\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)a_j^L(1-a_j^L)a_k^{L-1}, -$$ - -

Defining

-$$ -\delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - y_j\right) = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -$$ - -

and using the Hadamard product of two vectors we can write this as

-$$ -\boldsymbol{\delta}^L = \sigma'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\boldsymbol{a}^L)}. -$$ - - -









-

Analyzing the last results

- -

This is an important expression. The second term on the right handside -measures how fast the cost function is changing as a function of the $j$th -output activation. If, for example, the cost function doesn't depend -much on a particular output node \( j \), then \( \delta_j^L \) will be small, -which is what we would expect. The first term on the right, measures -how fast the activation function \( f \) is changing at a given activation -value \( z_j^L \). -

- -









-

More considerations

- -

Notice that everything in the above equations is easily computed. In -particular, we compute \( z_j^L \) while computing the behaviour of the -network, and it is only a small additional overhead to compute -\( \sigma'(z^L_j) \). The exact form of the derivative with respect to the -output depends on the form of the cost function. -However, provided the cost function is known there should be little -trouble in calculating -

- -$$ -\frac{\partial {\cal C}}{\partial (a_j^L)} -$$ - -

With the definition of \( \delta_j^L \) we have a more compact definition of the derivative of the cost function in terms of the weights, namely

-$$ -\frac{\partial{\cal C}}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. -$$ - - -









-

Derivatives in terms of \( z_j^L \)

- -

It is also easy to see that our previous equation can be written as

- -$$ -\delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, -$$ - -

which can also be interpreted as the partial derivative of the cost function with respect to the biases \( b_j^L \), namely

-$$ -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, -$$ - -

That is, the error \( \delta_j^L \) is exactly equal to the rate of change of the cost function as a function of the bias.

- -









-

Bringing it together

- -

We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are

- -$$ -\begin{equation} -\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, -\label{_auto1} -\end{equation} -$$ - -

and

-$$ -\begin{equation} -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\label{_auto2} -\end{equation} -$$ - -

and

- -$$ -\begin{equation} -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, -\label{_auto3} -\end{equation} -$$ - - -









-

Final back propagating equation

- -

We have that (replacing \( L \) with a general layer \( l \))

-$$ -\delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. -$$ - -

We want to express this in terms of the equations for layer \( l+1 \).

- -









-

Using the chain rule and summing over all \( k \) entries

- -

We obtain

-$$ -\delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, -$$ - -

and recalling that

-$$ -z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, -$$ - -

with \( M_l \) being the number of nodes in layer \( l \), we obtain

-$$ -\delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l), -$$ - -

This is our final equation.

- -

We are now ready to set up the algorithm for back propagation and learning the weights and biases.

- -









-

Setting up the back propagation algorithm

- -

The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.

- -

First, we set up the input data \( \hat{x} \) and the activations -\( \hat{z}_1 \) of the input layer and compute the activation function and -the pertinent outputs \( \hat{a}^1 \). -

- -

Secondly, we perform then the feed forward till we reach the output -layer and compute all \( \hat{z}_l \) of the input layer and compute the -activation function and the pertinent outputs \( \hat{a}^l \) for -\( l=1,2,3,\dots,L \). -

- -

Notation: The first hidden layer has \( l=1 \) as label and the final output layer has \( l=L \).

- -









-

Setting up the back propagation algorithm, part 2

- -

Thereafter we compute the ouput error \( \hat{\delta}^L \) by computing all

-$$ -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. -$$ - -

Then we compute the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l). -$$ - - -









-

Setting up the Back propagation algorithm, part 3

- -

Finally, we update the weights and the biases using gradient descent -for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases -according to the rules -

- -$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ - - -$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ - -

with \( \eta \) being the learning rate.

- -









-

Updating the gradients

- -

With the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}sigma'(z_j^l), -$$ - -

we update the weights and the biases using gradient descent for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases according to the rules

-$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ - - -$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ - - -









-

Activation functions

- -

A property that characterizes a neural network, other than its -connectivity, is the choice of activation function(s). As described -in, the following restrictions are imposed on an activation function -for a FFNN to fulfill the universal approximation theorem -

- -
    -
  • Non-constant
  • -
  • Bounded
  • -
  • Monotonically-increasing
  • -
  • Continuous
  • -
-









-

Activation functions, Logistic and Hyperbolic ones

- -

The second requirement excludes all linear functions. Furthermore, in -a MLP with only linear activation functions, each layer simply -performs a linear transformation of its inputs. -

- -

Regardless of the number of layers, the output of the NN will be -nothing but a linear function of the inputs. Thus we need to introduce -some kind of non-linearity to the NN to be able to fit non-linear -functions Typical examples are the logistic Sigmoid -

- -$$ - f(x) = \frac{1}{1 + e^{-x}}, -$$ - -

and the hyperbolic tangent function

-$$ - f(x) = \tanh(x) -$$ - - -









-

Relevance

- -

The sigmoid function are more biologically plausible because the -output of inactive neurons are zero. Such activation function are -called one-sided. However, it has been shown that the hyperbolic -tangent performs better than the sigmoid for training MLPs. has -become the most popular for deep neural networks -

- - - -
-
-
-
-
-
"""The sigmoid function (or the logistic curve) is a 
-function that takes any real number, z, and outputs a number (0,1).
-It is useful in neural networks for assigning weights on a relative scale.
-The value z is the weighted sum of parameters involved in the learning algorithm."""
-
-import numpy
-import matplotlib.pyplot as plt
-import math as mt
-
-z = numpy.arange(-5, 5, .1)
-sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z)))
-sigma = sigma_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, sigma)
-ax.set_ylim([-0.1, 1.1])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sigmoid function')
-
-plt.show()
-
-"""Step Function"""
-z = numpy.arange(-5, 5, .02)
-step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0)
-step = step_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, step)
-ax.set_ylim([-0.5, 1.5])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('step function')
-
-plt.show()
-
-"""Sine Function"""
-z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)
-t = numpy.sin(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, t)
-ax.set_ylim([-1.0, 1.0])
-ax.set_xlim([-2*mt.pi,2*mt.pi])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sine function')
-
-plt.show()
-
-"""Plots a graph of the squashing function used by a rectified linear
-unit"""
-z = numpy.arange(-2, 2, .1)
-zero = numpy.zeros(len(z))
-y = numpy.max([zero, z], axis=0)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, y)
-ax.set_ylim([-2.0, 2.0])
-ax.set_xlim([-2.0, 2.0])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('Rectified linear unit')
-
-plt.show()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Fine-tuning neural network hyperparameters

- -

The flexibility of neural networks is also one of their main -drawbacks: there are many hyperparameters to tweak. Not only can you -use any imaginable network topology (how neurons/nodes are -interconnected), but even in a simple FFNN you can change the number -of layers, the number of neurons per layer, the type of activation -function to use in each layer, the weight initialization logic, the -stochastic gradient optmized and much more. How do you know what -combination of hyperparameters is the best for your task? -

- -
    -
  • You can use grid search with cross-validation to find the right hyperparameters.
  • -
-

However,since there are many hyperparameters to tune, and since -training a neural network on a large dataset takes a lot of time, you -will only be able to explore a tiny part of the hyperparameter space. -

- -
    -
  • You can use randomized search.
  • -
  • Or use tools like Oscar, which implements more complex algorithms to help you find a good set of hyperparameters quickly.
  • -
-









-

Hidden layers

- -

For many problems you can start with just one or two hidden layers and -it will work just fine. For the MNIST data set you ca easily get a -high accuracy using just one hidden layer with a few hundred neurons. -You can reach for this data set above 98% accuracy using two hidden -layers with the same total amount of neurons, in roughly the same -amount of training time. -

- -

For more complex problems, you can gradually ramp up the number of -hidden layers, until you start overfitting the training set. Very -complex tasks, such as large image classification or speech -recognition, typically require networks with dozens of layers and they -need a huge amount of training data. However, you will rarely have to -train such networks from scratch: it is much more common to reuse -parts of a pretrained state-of-the-art network that performs a similar -task. -

- - -

Vanishing gradients

- -

The Back propagation algorithm we derived above works by going from -the output layer to the input layer, propagating the error gradient on -the way. Once the algorithm has computed the gradient of the cost -function with regards to each parameter in the network, it uses these -gradients to update each parameter with a Gradient Descent (GD) step. -

- -

Unfortunately for us, the gradients often get smaller and smaller as -the algorithm progresses down to the first hidden layers. As a result, -the GD update leaves the lower layer connection weights virtually -unchanged, and training never converges to a good solution. This is -known in the literature as the vanishing gradients problem. -

- -









-

Exploding gradients

- -

In other cases, the opposite can happen, namely the the gradients can -grow bigger and bigger. The result is that many of the layers get -large updates of the weights the algorithm diverges. This is the -exploding gradients problem, which is mostly encountered in -recurrent neural networks. More generally, deep neural networks suffer -from unstable gradients, different layers may learn at widely -different speeds -

- - -

Is the Logistic activation function (Sigmoid) our choice?

- -

Although this unfortunate behavior has been empirically observed for -quite a while (it was one of the reasons why deep neural networks were -mostly abandoned for a long time), it is only around 2010 that -significant progress was made in understanding it. -

- -

A paper titled Understanding the Difficulty of Training Deep -Feedforward Neural Networks by Xavier Glorot and Yoshua Bengio found that -the problems with the popular logistic -sigmoid activation function and the weight initialization technique -that was most popular at the time, namely random initialization using -a normal distribution with a mean of 0 and a standard deviation of -1. -

- -









-

Logistic function as the root of problems

- -

They showed that with this activation function and this -initialization scheme, the variance of the outputs of each layer is -much greater than the variance of its inputs. Going forward in the -network, the variance keeps increasing after each layer until the -activation function saturates at the top layers. This is actually made -worse by the fact that the logistic function has a mean of 0.5, not 0 -(the hyperbolic tangent function has a mean of 0 and behaves slightly -better than the logistic function in deep networks). -

- -









-

The derivative of the Logistic funtion

- -

Looking at the logistic activation function, when inputs become large -(negative or positive), the function saturates at 0 or 1, with a -derivative extremely close to 0. Thus when backpropagation kicks in, -it has virtually no gradient to propagate back through the network, -and what little gradient exists keeps getting diluted as -backpropagation progresses down through the top layers, so there is -really nothing left for the lower layers. -

- -

In their paper, Glorot and Bengio propose a way to significantly -alleviate this problem. We need the signal to flow properly in both -directions: in the forward direction when making predictions, and in -the reverse direction when backpropagating gradients. We don’t want -the signal to die out, nor do we want it to explode and saturate. For -the signal to flow properly, the authors argue that we need the -variance of the outputs of each layer to be equal to the variance of -its inputs, and we also need the gradients to have equal variance -before and after flowing through a layer in the reverse direction. -

- -









-

Insights from the paper by Glorot and Bengio

- -

One of the insights in the 2010 paper by Glorot and Bengio was that -the vanishing/exploding gradients problems were in part due to a poor -choice of activation function. Until then most people had assumed that -if Nature had chosen to use roughly sigmoid activation functions in -biological neurons, they must be an excellent choice. But it turns out -that other activation functions behave much better in deep neural -networks, in particular the ReLU activation function, mostly because -it does not saturate for positive values (and also because it is quite -fast to compute). -

- -









-

The RELU function family

- -

The ReLU activation function suffers from a problem known as the dying -ReLUs: during training, some neurons effectively die, meaning they -stop outputting anything other than 0. -

- -

In some cases, you may find that half of your network’s neurons are -dead, especially if you used a large learning rate. During training, -if a neuron’s weights get updated such that the weighted sum of the -neuron’s inputs is negative, it will start outputting 0. When this -happen, the neuron is unlikely to come back to life since the gradient -of the ReLU function is 0 when its input is negative. -

- -









-

ELU function

- -

To solve this problem, nowadays practitioners use a variant of the -ReLU function, such as the leaky ReLU discussed above or the so-called -exponential linear unit (ELU) function -

- -$$ -ELU(z) = \left\{\begin{array}{cc} \alpha\left( \exp{(z)}-1\right) & z < 0,\\ z & z \ge 0.\end{array}\right. -$$ - - -









-

Which activation function should we use?

- -

In general it seems that the ELU activation function is better than -the leaky ReLU function (and its variants), which is better than -ReLU. ReLU performs better than \( \tanh \) which in turn performs better -than the logistic function. -

- -

If runtime performance is an issue, then you may opt for the leaky -ReLU function over the ELU function If you don’t want to tweak yet -another hyperparameter, you may just use the default \( \alpha \) of -\( 0.01 \) for the leaky ReLU, and \( 1 \) for ELU. If you have spare time and -computing power, you can use cross-validation or bootstrap to evaluate -other activation functions. -

- -









-

More on activation functions, output layers

- -

In most cases you can use the ReLU activation function in the hidden -layers (or one of its variants). -

- -

It is a bit faster to compute than other activation functions, and the -gradient descent optimization does in general not get stuck. -

- -For the output layer: - -
    -
  • For classification the softmax activation function is generally a good choice for classification tasks (when the classes are mutually exclusive).
  • -
  • For regression tasks, you can simply use no activation function at all.
  • -
-









-

Batch Normalization

- -

Batch Normalization aims to address the vanishing/exploding gradients -problems, and more generally the problem that the distribution of each -layer’s inputs changes during training, as the parameters of the -previous layers change. -

- -

The technique consists of adding an operation in the model just before -the activation function of each layer, simply zero-centering and -normalizing the inputs, then scaling and shifting the result using two -new parameters per layer (one for scaling, the other for shifting). In -other words, this operation lets the model learn the optimal scale and -mean of the inputs for each layer. In order to zero-center and -normalize the inputs, the algorithm needs to estimate the inputs’ mean -and standard deviation. It does so by evaluating the mean and standard -deviation of the inputs over the current mini-batch, from this the -name batch normalization. -

- -









-

Dropout

- -

It is a fairly simple algorithm: at every training step, every neuron -(including the input neurons but excluding the output neurons) has a -probability \( p \) of being temporarily dropped out, meaning it will be -entirely ignored during this training step, but it may be active -during the next step. -

- -

The hyperparameter \( p \) is called the dropout rate, and it is typically -set to 50%. After training, the neurons are not dropped anymore. It -is viewed as one of the most popular regularization techniques. -

- -









-

Gradient Clipping

- -

A popular technique to lessen the exploding gradients problem is to -simply clip the gradients during backpropagation so that they never -exceed some threshold (this is mostly useful for recurrent neural -networks). -

- -

This technique is called Gradient Clipping.

- -

In general however, Batch -Normalization is preferred. -

- - -

A top-down perspective on Neural networks

- -

The first thing we would like to do is divide the data into two or -three parts. A training set, a validation or dev (development) set, -and a test set. The test set is the data on which we want to make -predictions. The dev set is a subset of the training data we use to -check how well we are doing out-of-sample, after training the model on -the training dataset. We use the validation error as a proxy for the -test error in order to make tweaks to our model. It is crucial that we -do not use any of the test data to train the algorithm. This is a -cardinal sin in ML. Then: -

- -
    -
  1. Estimate optimal error rate
  2. -
  3. Minimize underfitting (bias) on training data set.
  4. -
  5. Make sure you are not overfitting.
  6. -
-









-

More top-down perspectives

- -

If the validation and test sets are drawn from the same distributions, -then a good performance on the validation set should lead to similarly -good performance on the test set. -

- -

However, sometimes -the training data and test data differ in subtle ways because, for -example, they are collected using slightly different methods, or -because it is cheaper to collect data in one way versus another. In -this case, there can be a mismatch between the training and test -data. This can lead to the neural network overfitting these small -differences between the test and training sets, and a poor performance -on the test set despite having a good performance on the validation -set. To rectify this, Andrew Ng suggests making two validation or dev -sets, one constructed from the training data and one constructed from -the test data. The difference between the performance of the algorithm -on these two validation sets quantifies the train-test mismatch. This -can serve as another important diagnostic when using DNNs for -supervised learning. -

- -









-

Limitations of supervised learning with deep networks

- -

Like all statistical methods, supervised learning using neural -networks has important limitations. This is especially important when -one seeks to apply these methods, especially to physics problems. Like -all tools, DNNs are not a universal solution. Often, the same or -better performance on a task can be achieved by using a few -hand-engineered features (or even a collection of random -features). -

- -









-

Limitations of NNs

- -

Here we list some of the important limitations of supervised neural network based models.

- -
    -
  • Need labeled data. All supervised learning methods, DNNs for supervised learning require labeled data. Often, labeled data is harder to acquire than unlabeled data (e.g. one must pay for human experts to label images).
  • -
  • Supervised neural networks are extremely data intensive. DNNs are data hungry. They perform best when data is plentiful. This is doubly so for supervised methods where the data must also be labeled. The utility of DNNs is extremely limited if data is hard to acquire or the datasets are small (hundreds to a few thousand samples). In this case, the performance of other methods that utilize hand-engineered features can exceed that of DNNs.
  • -
-









-

Homogeneous data

- -
    -
  • Homogeneous data. Almost all DNNs deal with homogeneous data of one type. It is very hard to design architectures that mix and match data types (i.e. some continuous variables, some discrete variables, some time series). In applications beyond images, video, and language, this is often what is required. In contrast, ensemble models like random forests or gradient-boosted trees have no difficulty handling mixed data types.
  • -
-









-

More limitations

- -
    -
  • Many problems are not about prediction. In natural science we are often interested in learning something about the underlying distribution that generates the data. In this case, it is often difficult to cast these ideas in a supervised learning setting. While the problems are related, it is possible to make good predictions with a wrong model. The model might or might not be useful for understanding the underlying science.
  • -
-

Some of these remarks are particular to DNNs, others are shared by all supervised learning methods. This motivates the use of unsupervised methods which in part circumvent these problems.

- - -
- © 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
- - - diff --git a/doc/src/week41/week41.do.txt b/doc/src/week41/week41.do.txt index d5d7d1d54..8ced9671d 100644 --- a/doc/src/week41/week41.do.txt +++ b/doc/src/week41/week41.do.txt @@ -10,8 +10,8 @@ DATE: Week 41 ===== Material for the lecture on Monday October 7, 2024 ===== o Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model. o Building our own Feed-forward Neural Network -# * "Video of lecture notes":"https://youtu.be/5-RRTO9uDvI" -# * "Whiteboard notes":"https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2024/NotesOctober7.pdf" + * Video of lecture notes at URL:"https://youtu.be/pMRUbf9E-gM" + * Whiteboard notes at URL:"https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2024/NotesOctober7.pdf" !bblock Readings and Videos: o These lecture notes o Rashcka et al chapter 11 diff --git a/doc/src/week41/week41.html b/doc/src/week41/week41.html deleted file mode 100644 index 36ac3704e..000000000 --- a/doc/src/week41/week41.html +++ /dev/null @@ -1,2827 +0,0 @@ - - - - - - - -Week 41 Neural networks and constructing a neural network code - - - - - - - - - - - - - - -
-

Week 41 Neural networks and constructing a neural network code

-
- - -
-Morten Hjorth-Jensen -
- -
-Department of Physics, University of Oslo -
-
-
-

Week 41

-
-
- -









-

Plan for week 41, October 7-11

- -









-

Material for the lecture on Monday October 7, 2024

-
    -
  1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.
  2. -
  3. Building our own Feed-forward Neural Network - -
  4. -
-
-Readings and Videos: -

-

    -
  1. These lecture notes
  2. -
  3. Rashcka et al chapter 11
  4. -
  5. For neural networks we recommend Goodfellow et al chapter 6. -
      -
    1. Neural Networks demystified at https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs
    2. -
    -
  6. Building Neural Networks from scratch at https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex
  7. -
  8. Video on Neural Networks at https://www.youtube.com/watch?v=CqOfi41LfDw
  9. -
  10. Video on the back propagation algorithm at https://www.youtube.com/watch?v=Ilg3gGewQ5U
  11. -
-

We also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at http://neuralnetworksanddeeplearning.com/chap4.html.

-
- - -









-

Material for the active learning sessions on Tuesday and Wednesday

-
    -
  • Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation
  • -
  • One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code
  • -
  • Discussion of project 2
  • -
  • Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent
  • -
-









-

Lecture Monday October 7

- -









-

Introduction to Neural networks

- -

Artificial neural networks are computational systems that can learn to -perform tasks by considering examples, generally without being -programmed with any task-specific rules. It is supposed to mimic a -biological system, wherein neurons interact by sending signals in the -form of mathematical functions between layers. All layers can contain -an arbitrary number of neurons, and each connection is represented by -a weight variable. -

- -









-

Artificial neurons

- -

The field of artificial neural networks has a long history of -development, and is closely connected with the advancement of computer -science and computers in general. A model of artificial neurons was -first developed by McCulloch and Pitts in 1943 to study signal -processing in the brain and has later been refined by others. The -general idea is to mimic neural networks in the human brain, which is -composed of billions of neurons that communicate with each other by -sending electrical signals. Each neuron accumulates its incoming -signals, which must exceed an activation threshold to yield an -output. If the threshold is not overcome, the neuron remains inactive, -i.e. has zero output. -

- -

This behaviour has inspired a simple mathematical model for an artificial neuron.

- -$$ -\begin{equation} - y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) -\label{artificialNeuron} -\end{equation} -$$ - -

Here, the output \( y \) of the neuron is the value of its activation function, which have as input -a weighted sum of signals \( x_i, \dots ,x_n \) received by \( n \) other neurons. -

- -

Conceptually, it is helpful to divide neural networks into four -categories: -

-
    -
  1. general purpose neural networks for supervised learning,
  2. -
  3. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs),
  4. -
  5. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and
  6. -
  7. neural networks for unsupervised learning such as Deep Boltzmann Machines.
  8. -
-

In natural science, DNNs and CNNs have already found numerous -applications. In statistical physics, they have been applied to detect -phase transitions in 2D Ising and Potts models, lattice gauge -theories, and different phases of polymers, or solving the -Navier-Stokes equation in weather forecasting. Deep learning has also -found interesting applications in quantum physics. Various quantum -phase transitions can be detected and studied using DNNs and CNNs, -topological phases, and even non-equilibrium many-body -localization. Representing quantum states as DNNs quantum state -tomography are among some of the impressive achievements to reveal the -potential of DNNs to facilitate the study of quantum systems. -

- -

In quantum information theory, it has been shown that one can perform -gate decompositions with the help of neural. -

- -

The applications are not limited to the natural sciences. There is a -plethora of applications in essentially all disciplines, from the -humanities to life science and medicine. -

- -









-

Neural network types

- -

An artificial neural network (ANN), is a computational model that -consists of layers of connected neurons, or nodes or units. We will -refer to these interchangeably as units or nodes, and sometimes as -neurons. -

- -

It is supposed to mimic a biological nervous system by letting each -neuron interact with other neurons by sending signals in the form of -mathematical functions between layers. A wide variety of different -ANNs have been developed, but most of them consist of an input layer, -an output layer and eventual layers in-between, called hidden -layers. All layers can contain an arbitrary number of nodes, and each -connection between two nodes is associated with a weight variable. -

- -

Neural networks (also called neural nets) are neural-inspired -nonlinear models for supervised learning. As we will see, neural nets -can be viewed as natural, more powerful extensions of supervised -learning methods such as linear and logistic regression and soft-max -methods we discussed earlier. -

- -









-

Feed-forward neural networks

- -

The feed-forward neural network (FFNN) was the first and simplest type -of ANNs that were devised. In this network, the information moves in -only one direction: forward through the layers. -

- -

Nodes are represented by circles, while the arrows display the -connections between the nodes, including the direction of information -flow. Additionally, each arrow corresponds to a weight variable -(figure to come). We observe that each node in a layer is connected -to all nodes in the subsequent layer, making this a so-called -fully-connected FFNN. -

- -









-

Convolutional Neural Network

- -

A different variant of FFNNs are convolutional neural networks -(CNNs), which have a connectivity pattern inspired by the animal -visual cortex. Individual neurons in the visual cortex only respond to -stimuli from small sub-regions of the visual field, called a receptive -field. This makes the neurons well-suited to exploit the strong -spatially local correlation present in natural images. The response of -each neuron can be approximated mathematically as a convolution -operation. (figure to come) -

- -

Convolutional neural networks emulate the behaviour of neurons in the -visual cortex by enforcing a local connectivity pattern between -nodes of adjacent layers: Each node in a convolutional layer is -connected only to a subset of the nodes in the previous layer, in -contrast to the fully-connected FFNN. Often, CNNs consist of several -convolutional layers that learn local features of the input, with a -fully-connected layer at the end, which gathers all the local data and -produces the outputs. They have wide applications in image and video -recognition. -

- -









-

Recurrent neural networks

- -

So far we have only mentioned ANNs where information flows in one -direction: forward. Recurrent neural networks on the other hand, -have connections between nodes that form directed cycles. This -creates a form of internal memory which are able to capture -information on what has been calculated before; the output is -dependent on the previous computations. Recurrent NNs make use of -sequential information by performing the same task for every element -in a sequence, where each element depends on previous elements. An -example of such information is sentences, making recurrent NNs -especially well-suited for handwriting and speech recognition. -

- -









-

Other types of networks

- -

There are many other kinds of ANNs that have been developed. One type -that is specifically designed for interpolation in multidimensional -space is the radial basis function (RBF) network. RBFs are typically -made up of three layers: an input layer, a hidden layer with -non-linear radial symmetric activation functions and a linear output -layer (''linear'' here means that each node in the output layer has a -linear activation function). The layers are normally fully-connected -and there are no cycles, thus RBFs can be viewed as a type of -fully-connected FFNN. They are however usually treated as a separate -type of NN due the unusual activation functions. -

- -









-

Multilayer perceptrons

- -

One uses often so-called fully-connected feed-forward neural networks -with three or more layers (an input layer, one or more hidden layers -and an output layer) consisting of neurons that have non-linear -activation functions. -

- -

Such networks are often called multilayer perceptrons (MLPs).

- -









-

Why multilayer perceptrons?

- -

According to the Universal approximation theorem, a feed-forward -neural network with just a single hidden layer containing a finite -number of neurons can approximate a continuous multidimensional -function to arbitrary accuracy, assuming the activation function for -the hidden layer is a non-constant, bounded and -monotonically-increasing continuous function. -

- -

Note that the requirements on the activation function only applies to -the hidden layer, the output nodes are always assumed to be linear, so -as to not restrict the range of output values. -

- -









-

Illustration of a single perceptron model and a multi-perceptron model

- -
-
-
-

Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

-
-

-
- -









-

Examples of XOR, OR and AND gates

- -

Let us first try to fit various gates using standard linear -regression. The gates we are thinking of are the classical XOR, OR and -AND gates, well-known elements in computer science. The tables here -show how we can set up the inputs \( x_1 \) and \( x_2 \) in order to yield a -specific target \( y_i \). -

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR, OR and AND gates with linear regression
-"""
-
-import numpy as np
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

What is happening here?

- -









-

Does Logistic Regression do a better Job?

- - - -
-
-
-
-
-
"""
-Simple code that tests XOR and OR gates with linear regression
-and logistic regression
-"""
-
-import matplotlib.pyplot as plt
-from sklearn.linear_model import LogisticRegression
-import numpy as np
-
-# Design matrix
-X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
-print(f"The X.TX  matrix:{X.T @ X}")
-Xinv = np.linalg.pinv(X.T @ X)
-print(f"The invers of X.TX  matrix:{Xinv}")
-
-# The XOR gate 
-yXOR = np.array( [ 0, 1 ,1, 0])
-ThetaXOR  = Xinv @ X.T @ yXOR
-print(f"The values of theta for the XOR gate:{ThetaXOR}")
-print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
-
-
-# The OR gate 
-yOR = np.array( [ 0, 1 ,1, 1])
-ThetaOR  = Xinv @ X.T @ yOR
-print(f"The values of theta for the OR gate:{ThetaOR}")
-print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
-
-
-# The OR gate 
-yAND = np.array( [ 0, 0 ,0, 1])
-ThetaAND  = Xinv @ X.T @ yAND
-print(f"The values of theta for the AND gate:{ThetaAND}")
-print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
-
-# Now we change to logistic regression
-
-
-# Logistic Regression
-logreg = LogisticRegression()
-logreg.fit(X, yOR)
-print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR)))
-
-logreg.fit(X, yXOR)
-print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR)))
-
-
-logreg.fit(X, yAND)
-print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND)))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

Not exactly impressive, but somewhat better.

- -









-

Adding Neural Networks

- - - -
-
-
-
-
-
# and now neural networks with Scikit-Learn and the XOR
-
-from sklearn.neural_network import MLPClassifier
-from sklearn.datasets import make_classification
-X, yXOR = make_classification(n_samples=100, random_state=1)
-FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR)
-FFNN.predict_proba(X)
-print(f"Test set accuracy with Feed Forward Neural Network  for XOR gate:{FFNN.score(X, yXOR)}")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Mathematics of deep learning

- - - - -









-

Reminder on books with hands-on material and codes

- - - -









-

Reading recommendations

- -
    -
  1. Rashkca et al., chapter 11, jupyter-notebook sent separately, from GitHub
  2. -
  3. Goodfellow et al, chapter 6 and 7 contain most of the neural network background.
  4. -
-









-

Mathematics of deep learning and neural networks

- -

Neural networks, in its so-called feed-forward form, where each -iterations contains a feed-forward stage and a back-propgagation -stage, consist of series of affine matrix-matrix and matrix-vector -multiplications. The unknown parameters (the so-called biases and -weights which deternine the architecture of a neural network), are -uptaded iteratively using the so-called back-propagation algorithm. -This algorithm corresponds to the so-called reverse mode of -automatic differentation. -

- -









-

Basics of an NN

- -

A neural network consists of a series of hidden layers, in addition to -the input and output layers. Each layer \( l \) has a set of parameters -\( \boldsymbol{\Theta}^{(l)}=(\boldsymbol{W}^{(l)},\boldsymbol{b}^{(l)}) \) which are related to the -parameters in other layers through a series of affine transformations, -for a standard NN these are matrix-matrix and matrix-vector -multiplications. For all layers we will simply use a collective variable \( \boldsymbol{\Theta} \). -

- -

It consist of two basic steps:

-
    -
  1. a feed forward stage which takes a given input and produces a final output which is compared with the target values through our cost/loss function.
  2. -
  3. a back-propagation state where the unknown parameters \( \boldsymbol{\Theta} \) are updated through the optimization of the their gradients. The expressions for the gradients are obtained via the chain rule, starting from the derivative of the cost/function.
  4. -
-

These two steps make up one iteration. This iterative process is continued till we reach an eventual stopping criterion.

- -









-

Overarching view of a neural network

- -

The architecture of a neural network defines our model. This model -aims at describing some function \( f(\boldsymbol{x} \) which represents -some final result (outputs or tagrget values) given a specific inpput -\( \boldsymbol{x} \). Note that here \( \boldsymbol{y} \) and \( \boldsymbol{x} \) are not limited to be -vectors. -

- -

The architecture consists of

-
    -
  1. An input and an output layer where the input layer is defined by the inputs \( \boldsymbol{x} \). The output layer produces the model ouput \( \boldsymbol{\tilde{y}} \) which is compared with the target value \( \boldsymbol{y} \)
  2. -
  3. A given number of hidden layers and neurons/nodes/units for each layer (this may vary)
  4. -
  5. A given activation function \( \sigma(\boldsymbol{z}) \) with arguments \( \boldsymbol{z} \) to be defined below. The activation functions may differ from layer to layer.
  6. -
  7. The last layer, normally called output layer has normally an activation function tailored to the specific problem
  8. -
  9. Finally we define a so-called cost or loss function which is used to gauge the quality of our model.
  10. -
-









-

The optimization problem

- -

The cost function is a function of the unknown parameters -\( \boldsymbol{\Theta} \) where the latter is a container for all possible -parameters needed to define a neural network -

- -

If we are dealing with a regression task a typical cost/loss function -is the mean squared error -

-$$ -C(\boldsymbol{\Theta})=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\theta}\right)\right\}. -$$ - -

This function represents one of many possible ways to define -the so-called cost function. Note that here we have assumed a linear dependence in terms of the paramters \( \boldsymbol{\Theta} \). This is in general not the case. -

- -









-

Parameters of neural networks

-

For neural networks the parameters -\( \boldsymbol{\Theta} \) are given by the so-called weights and biases (to be -defined below). -

- -

The weights are given by matrix elements \( w_{ij}^{(l)} \) where the -superscript indicates the layer number. The biases are typically given -by vector elements representing each single node of a given layer, -that is \( b_j^{(l)} \). -

- -









-

Other ingredients of a neural network

- -

Having defined the architecture of a neural network, the optimization -of the cost function with respect to the parameters \( \boldsymbol{\Theta} \), -involves the calculations of gradients and their optimization. The -gradients represent the derivatives of a multidimensional object and -are often approximated by various gradient methods, including -

-
    -
  1. various quasi-Newton methods,
  2. -
  3. plain gradient descent (GD) with a constant learning rate \( \eta \),
  4. -
  5. GD with momentum and other approximations to the learning rates such as
  6. -
      -
    • Adapative gradient (ADAgrad)
    • -
    • Root mean-square propagation (RMSprop)
    • -
    • Adaptive gradient with momentum (ADAM) and many other
    • -
    -
  7. Stochastic gradient descent and various families of learning rate approximations
  8. -
-









-

Other parameters

- -

In addition to the above, there are often additional hyperparamaters -which are included in the setup of a neural network. These will be -discussed below. -

- -









-

Universal approximation theorem

- -

The universal approximation theorem plays a central role in deep -learning. Cybenko (1989) showed -the following: -

- -
- -

-

Let \( \sigma \) be any continuous sigmoidal function such that

-$$ -\sigma(z) = \left\{\begin{array}{cc} 1 & z\rightarrow \infty\\ 0 & z \rightarrow -\infty \end{array}\right. -$$ - -

Given a continuous and deterministic function \( F(\boldsymbol{x}) \) on the unit -cube in \( d \)-dimensions \( F\in [0,1]^d \), \( x\in [0,1]^d \) and a parameter -\( \epsilon >0 \), there is a one-layer (hidden) neural network -\( f(\boldsymbol{x};\boldsymbol{\Theta}) \) with \( \boldsymbol{\Theta}=(\boldsymbol{W},\boldsymbol{b}) \) and \( \boldsymbol{W}\in -\mathbb{R}^{m\times n} \) and \( \boldsymbol{b}\in \mathbb{R}^{n} \), for which -

-$$ -\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert < \epsilon \hspace{0.1cm} \forall \boldsymbol{x}\in[0,1]^d. -$$ -
- - -









-

Some parallels from real analysis

- -

For those of you familiar with for example the Stone-Weierstrass -theorem -for polynomial approximations or the convergence criterion for Fourier -series, there are similarities in the derivation of the proof for -neural networks. -

- -









-

The approximation theorem in words

- -

Any continuous function \( y=F(\boldsymbol{x}) \) supported on the unit cube in -\( d \)-dimensions can be approximated by a one-layer sigmoidal network to -arbitrary accuracy. -

- -

Hornik (1991) extended the theorem by letting any non-constant, bounded activation function to be included using that the expectation value

-$$ -\mathbb{E}[\vert F(\boldsymbol{x})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \infty. -$$ - -

Then we have

-$$ -\mathbb{E}[\vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2] =\int_{\boldsymbol{x}\in D} \vert F(\boldsymbol{x})-f(\boldsymbol{x};\boldsymbol{\Theta})\vert^2p(\boldsymbol{x})d\boldsymbol{x} < \epsilon. -$$ - - -









-

More on the general approximation theorem

- -

None of the proofs give any insight into the relation between the -number of of hidden layers and nodes and the approximation error -\( \epsilon \), nor the magnitudes of \( \boldsymbol{W} \) and \( \boldsymbol{b} \). -

- -

Neural networks (NNs) have what we may call a kind of universality no matter what function we want to compute.

- -
- -

-

It does not mean that an NN can be used to exactly compute any function. Rather, we get an approximation that is as good as we want.

-
- - -









-

Class of functions we can approximate

- -
- -

-

The class of functions that can be approximated are the continuous ones. -If the function \( F(\boldsymbol{x}) \) is discontinuous, it won't in general be possible to approximate it. However, an NN may still give an approximation even if we fail in some points. -

-
- - -









-

Setting up the equations for a neural network

- -

The questions we want to ask are how do changes in the biases and the -weights in our network change the cost function and how can we use the -final output to modify the weights and biases? -

- -

To derive these equations let us start with a plain regression problem -and define our cost function as -

- -$$ -{\cal C}(\boldsymbol{\Theta}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2, -$$ - -

where the $y_i$s are our \( n \) targets (the values we want to -reproduce), while the outputs of the network after having propagated -all inputs \( \boldsymbol{x} \) are given by \( \boldsymbol{\tilde{y}}_i \). -

- -









-

Layout of a neural network with three hidden layers

- -

-
-

-
-

- -









-

Definitions

- -

With our definition of the targets \( \boldsymbol{y} \), the outputs of the -network \( \boldsymbol{\tilde{y}} \) and the inputs \( \boldsymbol{x} \) we -define now the activation \( z_j^l \) of node/neuron/unit \( j \) of the -\( l \)-th layer as a function of the bias, the weights which add up from -the previous layer \( l-1 \) and the forward passes/outputs -\( \hat{a}^{l-1} \) from the previous layer as -

- -$$ -z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, -$$ - -

where \( b_k^l \) are the biases from layer \( l \). Here \( M_{l-1} \) -represents the total number of nodes/neurons/units of layer \( l-1 \). The -figure in the whiteboard notes illustrates this equation. We can rewrite this in a more -compact form as the matrix-vector products we discussed earlier, -

- -$$ -\hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. -$$ - - -









-

Inputs to the activation function

- -

With the activation values \( \boldsymbol{z}^l \) we can in turn define the -output of layer \( l \) as \( \boldsymbol{a}^l = f(\boldsymbol{z}^l) \) where \( f \) is our -activation function. In the examples here we will use the sigmoid -function discussed in our logistic regression lectures. We will also use the same activation function \( f \) for all layers -and their nodes. It means we have -

- -$$ -a_j^l = \sigma(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. -$$ - - -









-

Derivatives and the chain rule

- -

From the definition of the activation \( z_j^l \) we have

-$$ -\frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, -$$ - -

and

-$$ -\frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. -$$ - -

With our definition of the activation function we have that (note that this function depends only on \( z_j^l \))

-$$ -\frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=\sigma(z_j^l)(1-\sigma(z_j^l)). -$$ - - -









-

Derivative of the cost function

- -

With these definitions we can now compute the derivative of the cost function in terms of the weights.

- -

Let us specialize to the output layer \( l=L \). Our cost function is

-$$ -{\cal C}(\boldsymbol{\Theta}^L) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - y_i\right)^2, -$$ - -

The derivative of this function with respect to the weights is

- -$$ -\frac{\partial{\cal C}(\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, -$$ - -

The last partial derivative can easily be computed and reads (by applying the chain rule)

-$$ -\frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}. -$$ - - -









-

Simpler examples first, and automatic differentiation

- -

In order to understand the back propagation algorithm and its -derivation (an implementation of the chain rule), let us first digress -with some simple examples. These examples are also meant to motivate -the link with back propagation and automatic differentiation. -

- -









-

Reminder on the chain rule and gradients

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t) \) and \( y=y(t) \) are functions of a variable \( t \), we have that the gradient of \( f \) with respect to \( t \) (without the explicit unit vector components)

-$$ -\frac{df}{dt} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial t} \end{bmatrix}=\frac{\partial f}{\partial x} \frac{\partial x}{\partial t} +\frac{\partial f}{\partial y} \frac{\partial y}{\partial t}. -$$ - - -









-

Multivariable functions

- -

If we have a multivariate function \( f(x,y) \) where \( x=x(t,s) \) and \( y=y(t,s) \) are functions of the variables \( t \) and \( s \), we have that the partial derivatives

-$$ -\frac{\partial f}{\partial s}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial s}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial s}, -$$ - -

and

-$$ -\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}. -$$ - -

the gradient of \( f \) with respect to \( t \) and \( s \) (without the explicit unit vector components)

-$$ -\frac{df}{d(s,t)} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial s} &\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial s} & \frac{\partial y}{\partial t} \end{bmatrix}. -$$ - - -









-

Automatic differentiation through examples

- -

A great introduction to automatic differentiation is given by Baydin et al., see https://arxiv.org/abs/1502.05767.

- -

Automatic differentiation is a represented by a repeated application -of the chain rule on well-known functions and allows for the -calculation of derivatives to numerical precision. It is not the same -as the calculation of symbolic derivatives via for example SymPy, nor -does it use approximative formulae based on Taylor-expansions of a -function around a given value. The latter are error prone due to -truncation errors and values of the step size \( \Delta \). -

- -









-

Simple example

- -

Our first example is rather simple,

-$$ -f(x) =\exp{x^2}, -$$ - -

with derivative

-$$ -f'(x) =2x\exp{x^2}. -$$ - -

We can use SymPy to extract the pertinent lines of Python code through the following simple example

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = exp(x*x)
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Smarter way of evaluating the above function

-

If we study this function, we note that we can reduce the number of operations by introducing an intermediate variable

-$$ -a = x^2, -$$ - -

leading to

-$$ -f(x) = f(a(x)) = b= \exp{a}. -$$ - -

We now assume that all operations can be counted in terms of equal -floating point operations. This means that in order to calculate -\( f(x) \) we need first to square \( x \) and then compute the exponential. We -have thus two floating point operations only. -

- -









-

Reducing the number of operations

- -

With the introduction of a precalculated quantity \( a \) and thereby \( f(x) \) we have that the derivative can be written as

- -$$ -f'(x) = 2xb, -$$ - -

which reduces the number of operations from four in the orginal -expression to two. This means that if we need to compute \( f(x) \) and -its derivative (a common task in optimizations), we have reduced the -number of operations from six to four in total. -

- -

Note that the usage of a symbolic software like SymPy does not -include such simplifications and the calculations of the function and -the derivatives yield in general more floating point operations. -

- -









-

Chain rule, forward and reverse modes

- -

In the above example we have introduced the variables \( a \) and \( b \), and our function is

-$$ -f(x) = f(a(x)) = b= \exp{a}, -$$ - -

with \( a=x^2 \). We can decompose the derivative of \( f \) with respect to \( x \) as

-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}. -$$ - -

We note that since \( b=f(x) \) that

-$$ -\frac{df}{db}=1, -$$ - -

leading to

-$$ -\frac{df}{dx}=\frac{db}{da}\frac{da}{dx}=2x\exp{x^2}, -$$ - -

as before.

- -









-

Forward and reverse modes

- -

We have that

-$$ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}, -$$ - -

which we can rewrite either as

-$$ -\frac{df}{dx}=\left[\frac{df}{db}\frac{db}{da}\right]\frac{da}{dx}, -$$ - -

or

-$$ -\frac{df}{dx}=\frac{df}{db}\left[\frac{db}{da}\frac{da}{dx}\right]. -$$ - -

The first expression is called reverse mode (or back propagation) -since we start by evaluating the derivatives at the end point and then -propagate backwards. This is the standard way of evaluating -derivatives (gradients) when optimizing the parameters of a neural -network. In the context of deep learning this is computationally -more efficient since the output of a neural network consists of either -one or some few other output variables. -

- -

The second equation defines the so-called forward mode.

- -









-

More complicated function

- -

We increase our ambitions and introduce a slightly more complicated function

-$$ -f(x) =\sqrt{x^2+exp{x^2}}, -$$ - -

with derivative

-$$ -f'(x) =\frac{x(1+\exp{x^2})}{\sqrt{x^2+exp{x^2}}}. -$$ - -

The corresponding SymPy code reads

- - -
-
-
-
-
-
from __future__ import division
-from sympy import *
-x = symbols('x')
-expr = sqrt(x*x+exp(x*x))
-simplify(expr)
-derivative = diff(expr,x)
-print(python(expr))
-print(python(derivative))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Counting the number of floating point operations

- -

A simple count of operations shows that we need five operations for -the function itself and ten for the derivative. Fifteen operations in total if we wish to proceed with the above codes. -

- -

Can we reduce this to -say half the number of operations? -

- -









-

Defining intermediate operations

- -

We can indeed reduce the number of operation to half of those listed in the brute force approach above. -We define the following quantities -

-$$ -a = x^2, -$$ - -

and

-$$ -b = \exp{x^2} = \exp{a}, -$$ - -

and

-$$ -c= a+b, -$$ - -

and

-$$ -d=f(x)=\sqrt{c}. -$$ - - -









-

New expression for the derivative

- -

With these definitions we obtain the following partial derivatives

-$$ -\frac{\partial a}{\partial x} = 2x, -$$ - -

and

-$$ -\frac{\partial b}{\partial a} = \exp{a}, -$$ - -

and

-$$ -\frac{\partial c}{\partial a} = 1, -$$ - -

and

-$$ -\frac{\partial c}{\partial b} = 1, -$$ - -

and

-$$ -\frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ - -

and finally

-$$ -\frac{\partial f}{\partial d} = 1. -$$ - - -









-

Final derivatives

-

Our final derivatives are thus

-$$ -\frac{\partial f}{\partial c} = \frac{\partial f}{\partial d} \frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -$$ - -$$ -\frac{\partial f}{\partial b} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial b} = \frac{1}{2\sqrt{c}}, -$$ - -$$ -\frac{\partial f}{\partial a} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial a}+ -\frac{\partial f}{\partial b} \frac{\partial b}{\partial a} = \frac{1+\exp{a}}{2\sqrt{c}}, -$$ - -

and finally

-$$ -\frac{\partial f}{\partial x} = \frac{\partial f}{\partial a} \frac{\partial a}{\partial x} = \frac{x(1+\exp{a})}{\sqrt{c}}, -$$ - -

which is just

-$$ -\frac{\partial f}{\partial x} = \frac{x(1+b)}{d}, -$$ - -

and requires only three operations if we can reuse all intermediate variables.

- -









-

In general not this simple

- -

In general, see the generalization below, unless we can obtain simple -analytical expressions which we can simplify further, the final -implementation of automatic differentiation involves repeated -calculations (and thereby operations) of derivatives of elementary -functions. -

- -









-

Automatic differentiation

- -

We can make this example more formal. Automatic differentiation is a -formalization of the previous example (see graph). -

- -

We define \( \boldsymbol{x}\in x_1,\dots, x_l \) input variables to a given function \( f(\boldsymbol{x}) \) and \( x_{l+1},\dots, x_L \) intermediate variables.

- -

In the above example we have only one input variable, \( l=1 \) and four intermediate variables, that is

-$$ -\begin{bmatrix} x_1=x & x_2 = x^2=a & x_3 =\exp{a}= b & x_4=c=a+b & x_5 = \sqrt{c}=d \end{bmatrix}. -$$ - -

Furthemore, for \( i=l+1, \dots, L \) (here \( i=2,3,4,5 \) and \( f=x_L=d \)), we -define the elementary functions \( g_i(x_{Pa(x_i)}) \) where \( x_{Pa(x_i)} \) are the parent nodes of the variable \( x_i \). -

- -

In our case, we have for example for \( x_3=g_3(x_{Pa(x_i)})=\exp{a} \), that \( g_3=\exp{()} \) and \( x_{Pa(x_3)}=a \).

- -









-

Chain rule

- -

We can now compute the gradients by back-propagating the derivatives using the chain rule. -We have defined -

-$$ -\frac{\partial f}{\partial x_L} = 1, -$$ - -

which allows us to find the derivatives of the various variables \( x_i \) as

-$$ -\frac{\partial f}{\partial x_i} = \sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial x_j}{\partial x_i}=\sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial g_j}{\partial x_i}. -$$ - -

Whenever we have a function which can be expressed as a computation -graph and the various functions can be expressed in terms of -elementary functions that are differentiable, then automatic -differentiation works. The functions may not need to be elementary -functions, they could also be computer programs, although not all -programs can be automatically differentiated. -

- -









-

First network example, simple percepetron with one input

- -

As yet another example we define now a simple perceptron model with -all quantities given by scalars. We consider only one input variable -\( x \) and one target value \( y \). We define an activation function -\( \sigma_1 \) which takes as input -

- -$$ -z_1 = w_1x+b_1, -$$ - -

where \( w_1 \) is the weight and \( b_1 \) is the bias. These are the -parameters we want to optimize. The output is \( a_1=\sigma(z_1) \) (see -graph from whiteboard notes). This output is then fed into the -cost/loss function, which we here for the sake of simplicity just -define as the squared error -

- -$$ -C(x;w_1,b_1)=\frac{1}{2}(a_1-y)^2. -$$ - - -









-

Layout of a simple neural network with no hidden layer

- -

-
-

-
-

- -









-

Optimizing the parameters

- -

In setting up the feed forward and back propagation parts of the -algorithm, we need now the derivative of the various variables we want -to train. -

- -

We need

-$$ -\frac{\partial C}{\partial w_1} \hspace{0.1cm}\mathrm{and}\hspace{0.1cm}\frac{\partial C}{\partial b_1}. -$$ - -

Using the chain rule we find

-$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_1-y)\sigma_1'x, -$$ - -

and

-$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_1-y)\sigma_1', -$$ - -

which we later will just define as

-$$ -\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}=\delta_1. -$$ - - -









-

Adding a hidden layer

- -

We change our simple model to (see graph) -a network with just one hidden layer but with scalar variables only. -

- -

Our output variable changes to \( a_2 \) and \( a_1 \) is now the output from the hidden node and \( a_0=x \). -We have then -

-$$ -z_1 = w_1a_0+b_1 \hspace{0.1cm} \wedge a_1 = \sigma_1(z_1), -$$ - -$$ -z_2 = w_2a_1+b_2 \hspace{0.1cm} \wedge a_2 = \sigma_2(z_2), -$$ - -

and the cost function

-$$ -C(x;\boldsymbol{\Theta})=\frac{1}{2}(a_2-y)^2, -$$ - -

with \( \boldsymbol{\Theta}=[w_1,w_2,b_1,b_2] \).

- -









-

Layout of a simple neural network with one hidden layer

- -

-
-

-
-

- -









-

The derivatives

- -

The derivatives are now, using the chain rule again

- -$$ -\frac{\partial C}{\partial w_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial w_2}=(a_2-y)\sigma_2'a_1=\delta_2a_1, -$$ - -$$ -\frac{\partial C}{\partial b_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial b_2}=(a_2-y)\sigma_2'=\delta_2, -$$ - -$$ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_2-y)\sigma_2'a_1\sigma_1'a_0, -$$ - -$$ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_2-y)\sigma_2'\sigma_1'=\delta_1. -$$ - -

Can you generalize this to more than one hidden layer?

- -









-

Important observations

- -
- -

-

From the above equations we see that the derivatives of the activation -functions play a central role. If they vanish, the training may -stop. This is called the vanishing gradient problem, see discussions below. If they become -large, the parameters \( w_i \) and \( b_i \) may simply go to infinity. This -is referenced as the exploding gradient problem. -

-
- - -









-

The training

- -

The training of the parameters is done through various gradient descent approximations with

- -$$ -w_{i}\leftarrow w_{i}- \eta \delta_i a_{i-1}, -$$ - -

and

-$$ -b_i \leftarrow b_i-\eta \delta_i, -$$ - -

with \( \eta \) is the learning rate.

- -

One iteration consists of one feed forward step and one back-propagation step. Each back-propagation step does one update of the parameters \( \boldsymbol{\Theta} \).

- -

For the first hidden layer \( a_{i-1}=a_0=x \) for this simple model.

- -









-

Code example

- -

The code here implements the above model with one hidden layer and -scalar variables for the same function we studied in the previous -example. The code is however set up so that we can add multiple -inputs \( x \) and target values \( y \). Note also that we have the -possibility of defining a feature matrix \( \boldsymbol{X} \) with more than just -one column for the input values. This will turn useful in our next example. We have also defined matrices and vectors for all of our operations although it is not necessary here. -

- - - -
-
-
-
-
-
import numpy as np
-# We use the Sigmoid function as activation function
-def sigmoid(z):
-    return 1.0/(1.0+np.exp(-z))
-
-def forwardpropagation(x):
-    # weighted sum of inputs to the hidden layer
-    z_1 = np.matmul(x, w_1) + b_1
-    # activation in the hidden layer
-    a_1 = sigmoid(z_1)
-    # weighted sum of inputs to the output layer
-    z_2 = np.matmul(a_1, w_2) + b_2
-    a_2 = z_2
-    return a_1, a_2
-
-def backpropagation(x, y):
-    a_1, a_2 = forwardpropagation(x)
-    # parameter delta for the output layer, note that a_2=z_2 and its derivative wrt z_2 is just 1
-    delta_2 = a_2 - y
-    print(0.5*((a_2-y)**2))
-    # delta for  the hidden layer
-    delta_1 = np.matmul(delta_2, w_2.T) * a_1 * (1 - a_1)
-    # gradients for the output layer
-    output_weights_gradient = np.matmul(a_1.T, delta_2)
-    output_bias_gradient = np.sum(delta_2, axis=0)
-    # gradient for the hidden layer
-    hidden_weights_gradient = np.matmul(x.T, delta_1)
-    hidden_bias_gradient = np.sum(delta_1, axis=0)
-    return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient
-
-
-# ensure the same random numbers appear every time
-np.random.seed(0)
-# Input variable
-x = np.array([4.0],dtype=np.float64)
-# Target values
-y = 2*x+1.0 
-
-# Defining the neural network, only scalars here
-n_inputs = x.shape
-n_features = 1
-n_hidden_neurons = 1
-n_outputs = 1
-
-# Initialize the network
-# weights and bias in the hidden layer
-w_1 = np.random.randn(n_features, n_hidden_neurons)
-b_1 = np.zeros(n_hidden_neurons) + 0.01
-
-# weights and bias in the output layer
-w_2 = np.random.randn(n_hidden_neurons, n_outputs)
-b_2 = np.zeros(n_outputs) + 0.01
-
-eta = 0.1
-for i in range(50):
-    # calculate gradients
-    derivW2, derivB2, derivW1, derivB1 = backpropagation(x, y)
-    # update weights and biases
-    w_2 -= eta * derivW2
-    b_2 -= eta * derivB2
-    w_1 -= eta * derivW1
-    b_1 -= eta * derivB1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -

We see that after some few iterations (the results do depend on the learning rate however), we get an error which is rather small.

- -









- - -

Exercise 1: Including more data

- -

Try to increase the amount of input and -target/output data. Try also to perform calculations for more values -of the learning rates. Feel free to add either hyperparameters with an -\( l_1 \) norm or an \( l_2 \) norm and discuss your results. -Discuss your results as functions of the amount of training data and various learning rates. -

- -

Challenge: Try to change the activation functions and replace the hard-coded analytical expressions with automatic derivation via either autograd or JAX.

- - - -









-

Simple neural network and the back propagation equations

- -

Let us now try to increase our level of ambition and attempt at setting -up the equations for a neural network with two input nodes, one hidden -layer with two hidden nodes and one output layer with one output node/neuron only (see graph).. -

- -

We need to define the following parameters and variables with the input layer (layer \( (0) \)) -where we label the nodes \( x_0 \) and \( x_1 \) -

-$$ -x_0 = a_0^{(0)} \wedge x_1 = a_1^{(0)}. -$$ - -

The hidden layer (layer \( (1) \)) has nodes which yield the outputs \( a_0^{(1)} \) and \( a_1^{(1)} \)) with weight \( \boldsymbol{w} \) and bias \( \boldsymbol{b} \) parameters

-$$ -w_{ij}^{(1)}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)}\right\} \wedge b^{(1)}=\left\{b_0^{(1)},b_1^{(1)}\right\}. -$$ - - -









-

Layout of a simple neural network with two input nodes, one hidden layer and one output node

- -

-
-

-
-

- -









-

The ouput layer

- -

Finally, we have the ouput layer given by layer label \( (2) \) with output \( a^{(2)} \) and weights and biases to be determined given by the variables

-$$ -w_{i}^{(2)}=\left\{w_{0}^{(2)},w_{1}^{(2)}\right\} \wedge b^{(2)}. -$$ - -

Our output is \( \tilde{y}=a^{(2)} \) and we define a generic cost function \( C(a^{(2)},y;\boldsymbol{\Theta}) \) where \( y \) is the target value (a scalar here). -The parameters we need to optimize are given by -

-$$ -\boldsymbol{\Theta}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)},w_{0}^{(2)},w_{1}^{(2)},b_0^{(1)},b_1^{(1)},b^{(2)}\right\}. -$$ - - -









-

Compact expressions

- -

We can define the inputs to the activation functions for the various layers in terms of various matrix-vector multiplications and vector additions. -The inputs to the first hidden layer are -

-$$ -\begin{bmatrix}z_0^{(1)} \\ z_1^{(1)} \end{bmatrix}=\begin{bmatrix}w_{00}^{(1)} & w_{01}^{(1)}\\ w_{10}^{(1)} &w_{11}^{(1)} \end{bmatrix}\begin{bmatrix}a_0^{(0)} \\ a_1^{(0)} \end{bmatrix}+\begin{bmatrix}b_0^{(1)} \\ b_1^{(1)} \end{bmatrix}, -$$ - -

with outputs

-$$ -\begin{bmatrix}a_0^{(1)} \\ a_1^{(1)} \end{bmatrix}=\begin{bmatrix}\sigma^{(1)}(z_0^{(1)}) \\ \sigma^{(1)}(z_1^{(1)}) \end{bmatrix}. -$$ - - -









-

Output layer

- -

For the final output layer we have the inputs to the final activation function

-$$ -z^{(2)} = w_{0}^{(2)}a_0^{(1)} +w_{1}^{(2)}a_1^{(1)}+b^{(2)}, -$$ - -

resulting in the output

-$$ -a^{(2)}=\sigma^{(2)}(z^{(2)}). -$$ - - -









-

Explicit derivatives

- -

In total we have nine parameters which we need to train. Using the -chain rule (or just the back-propagation algorithm) we can find all -derivatives. Since we will use automatic differentiation in reverse -mode, we start with the derivatives of the cost function with respect -to the parameters of the output layer, namely -

- -$$ -\frac{\partial C}{\partial w_{i}^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial w_{i}^{(2)}}=\delta^{(2)}a_i^{(1)}, -$$ - -

with

-$$ -\delta^{(2)}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -$$ - -

and finally

-$$ -\frac{\partial C}{\partial b^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial b^{(2)}}=\delta^{(2)}. -$$ - - -









-

Derivatives of the hidden layer

- -

Using the chain rule we have the following expressions for say one of the weight parameters (it is easy to generalize to the other weight parameters)

-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}= \delta^{(2)}\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}, -$$ - -

which, noting that

-$$ -z^{(2)} =w_0^{(2)}a_0^{(1)}+w_1^{(2)}a_1^{(1)}+b^{(2)}, -$$ - -

allows us to rewrite

-$$ -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}a_0^{(1)}. -$$ - - -









-

Final expression

-

Defining

-$$ -\delta_0^{(1)}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}\delta^{(2)}, -$$ - -

we have

-$$ -\frac{\partial C}{\partial w_{00}^{(1)}}=\delta_0^{(1)}a_0^{(1)}. -$$ - -

Similarly, we obtain

-$$ -\frac{\partial C}{\partial w_{01}^{(1)}}=\delta_0^{(1)}a_1^{(1)}. -$$ - - -









-

Completing the list

- -

Similarly, we find

-$$ -\frac{\partial C}{\partial w_{10}^{(1)}}=\delta_1^{(1)}a_0^{(1)}, -$$ - -

and

-$$ -\frac{\partial C}{\partial w_{11}^{(1)}}=\delta_1^{(1)}a_1^{(1)}, -$$ - -

where we have defined

-$$ -\delta_1^{(1)}=w_1^{(2)}\frac{\partial a_1^{(1)}}{\partial z_1^{(1)}}\delta^{(2)}. -$$ - - -









-

Final expressions for the biases of the hidden layer

- -

For the sake of completeness, we list the derivatives of the biases, which are

-$$ -\frac{\partial C}{\partial b_{0}^{(1)}}=\delta_0^{(1)}, -$$ - -

and

-$$ -\frac{\partial C}{\partial b_{1}^{(1)}}=\delta_1^{(1)}. -$$ - -

As we will see below, these expressions can be generalized in a more compact form.

- -









-

Gradient expressions

- -

For this specific model, with just one output node and two hidden -nodes, the gradient descent equations take the following form for output layer -

-$$ -w_{i}^{(2)}\leftarrow w_{i}^{(2)}- \eta \delta^{(2)} a_{i}^{(1)}, -$$ - -

and

-$$ -b^{(2)} \leftarrow b^{(2)}-\eta \delta^{(2)}, -$$ - -

and

-$$ -w_{ij}^{(1)}\leftarrow w_{ij}^{(1)}- \eta \delta_{i}^{(1)} a_{j}^{(0)}, -$$ - -

and

-$$ -b_{i}^{(1)} \leftarrow b_{i}^{(1)}-\eta \delta_{i}^{(1)}, -$$ - -

where \( \eta \) is the learning rate.

- -









- - -

Exercise 2: Extended program

- -

We extend our simple code to a function which depends on two variable \( x_0 \) and \( x_1 \), that is

-$$ -y=f(x_0,x_1)=x_0^2+3x_0x_1+x_1^2+5. -$$ - -

We feed our network with \( n=100 \) entries \( x_0 \) and \( x_1 \). We have thus two features represented by these variable and an input matrix/design matrix \( \boldsymbol{X}\in \mathbf{R}^{n\times 2} \)

-$$ -\boldsymbol{X}=\begin{bmatrix} x_{00} & x_{01} \\ x_{00} & x_{01} \\ x_{10} & x_{11} \\ x_{20} & x_{21} \\ \dots & \dots \\ \dots & \dots \\ x_{n-20} & x_{n-21} \\ x_{n-10} & x_{n-11} \end{bmatrix}. -$$ - -

Write a code, based on the previous code examples, which takes as input these data and fit the above function. -You can extend your code to include automatic differentiation. -

- -

With these examples, we are now ready to embark upon the writing of more a general code for neural networks.

- - - -









-

Getting serious, the back propagation equations for a neural network

- -

Now it is time to move away from one node in each layer only. Our inputs are also represented either by several inputs.

- -

We have thus

-$$ -\frac{\partial{\cal C}((\boldsymbol{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)a_j^L(1-a_j^L)a_k^{L-1}, -$$ - -

Defining

-$$ -\delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - y_j\right) = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -$$ - -

and using the Hadamard product of two vectors we can write this as

-$$ -\boldsymbol{\delta}^L = \sigma'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\boldsymbol{a}^L)}. -$$ - - -









-

Analyzing the last results

- -

This is an important expression. The second term on the right handside -measures how fast the cost function is changing as a function of the $j$th -output activation. If, for example, the cost function doesn't depend -much on a particular output node \( j \), then \( \delta_j^L \) will be small, -which is what we would expect. The first term on the right, measures -how fast the activation function \( f \) is changing at a given activation -value \( z_j^L \). -

- -









-

More considerations

- -

Notice that everything in the above equations is easily computed. In -particular, we compute \( z_j^L \) while computing the behaviour of the -network, and it is only a small additional overhead to compute -\( \sigma'(z^L_j) \). The exact form of the derivative with respect to the -output depends on the form of the cost function. -However, provided the cost function is known there should be little -trouble in calculating -

- -$$ -\frac{\partial {\cal C}}{\partial (a_j^L)} -$$ - -

With the definition of \( \delta_j^L \) we have a more compact definition of the derivative of the cost function in terms of the weights, namely

-$$ -\frac{\partial{\cal C}}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. -$$ - - -









-

Derivatives in terms of \( z_j^L \)

- -

It is also easy to see that our previous equation can be written as

- -$$ -\delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, -$$ - -

which can also be interpreted as the partial derivative of the cost function with respect to the biases \( b_j^L \), namely

-$$ -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, -$$ - -

That is, the error \( \delta_j^L \) is exactly equal to the rate of change of the cost function as a function of the bias.

- -









-

Bringing it together

- -

We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are

- -$$ -\begin{equation} -\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, -\label{_auto1} -\end{equation} -$$ - -

and

-$$ -\begin{equation} -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\label{_auto2} -\end{equation} -$$ - -

and

- -$$ -\begin{equation} -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, -\label{_auto3} -\end{equation} -$$ - - -









-

Final back propagating equation

- -

We have that (replacing \( L \) with a general layer \( l \))

-$$ -\delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. -$$ - -

We want to express this in terms of the equations for layer \( l+1 \).

- -









-

Using the chain rule and summing over all \( k \) entries

- -

We obtain

-$$ -\delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, -$$ - -

and recalling that

-$$ -z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, -$$ - -

with \( M_l \) being the number of nodes in layer \( l \), we obtain

-$$ -\delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l), -$$ - -

This is our final equation.

- -

We are now ready to set up the algorithm for back propagation and learning the weights and biases.

- -









-

Setting up the back propagation algorithm

- -

The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.

- -

First, we set up the input data \( \hat{x} \) and the activations -\( \hat{z}_1 \) of the input layer and compute the activation function and -the pertinent outputs \( \hat{a}^1 \). -

- -

Secondly, we perform then the feed forward till we reach the output -layer and compute all \( \hat{z}_l \) of the input layer and compute the -activation function and the pertinent outputs \( \hat{a}^l \) for -\( l=1,2,3,\dots,L \). -

- -

Notation: The first hidden layer has \( l=1 \) as label and the final output layer has \( l=L \).

- -









-

Setting up the back propagation algorithm, part 2

- -

Thereafter we compute the ouput error \( \hat{\delta}^L \) by computing all

-$$ -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. -$$ - -

Then we compute the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l). -$$ - - -









-

Setting up the Back propagation algorithm, part 3

- -

Finally, we update the weights and the biases using gradient descent -for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases -according to the rules -

- -$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ - - -$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ - -

with \( \eta \) being the learning rate.

- -









-

Updating the gradients

- -

With the back propagate error for each \( l=L-1,L-2,\dots,1 \) as

-$$ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}sigma'(z_j^l), -$$ - -

we update the weights and the biases using gradient descent for each \( l=L-1,L-2,\dots,1 \) and update the weights and biases according to the rules

-$$ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -$$ - - -$$ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -$$ - - -









-

Activation functions

- -

A property that characterizes a neural network, other than its -connectivity, is the choice of activation function(s). As described -in, the following restrictions are imposed on an activation function -for a FFNN to fulfill the universal approximation theorem -

- -
    -
  • Non-constant
  • -
  • Bounded
  • -
  • Monotonically-increasing
  • -
  • Continuous
  • -
-









-

Activation functions, Logistic and Hyperbolic ones

- -

The second requirement excludes all linear functions. Furthermore, in -a MLP with only linear activation functions, each layer simply -performs a linear transformation of its inputs. -

- -

Regardless of the number of layers, the output of the NN will be -nothing but a linear function of the inputs. Thus we need to introduce -some kind of non-linearity to the NN to be able to fit non-linear -functions Typical examples are the logistic Sigmoid -

- -$$ - f(x) = \frac{1}{1 + e^{-x}}, -$$ - -

and the hyperbolic tangent function

-$$ - f(x) = \tanh(x) -$$ - - -









-

Relevance

- -

The sigmoid function are more biologically plausible because the -output of inactive neurons are zero. Such activation function are -called one-sided. However, it has been shown that the hyperbolic -tangent performs better than the sigmoid for training MLPs. has -become the most popular for deep neural networks -

- - - -
-
-
-
-
-
"""The sigmoid function (or the logistic curve) is a 
-function that takes any real number, z, and outputs a number (0,1).
-It is useful in neural networks for assigning weights on a relative scale.
-The value z is the weighted sum of parameters involved in the learning algorithm."""
-
-import numpy
-import matplotlib.pyplot as plt
-import math as mt
-
-z = numpy.arange(-5, 5, .1)
-sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z)))
-sigma = sigma_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, sigma)
-ax.set_ylim([-0.1, 1.1])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sigmoid function')
-
-plt.show()
-
-"""Step Function"""
-z = numpy.arange(-5, 5, .02)
-step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0)
-step = step_fn(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, step)
-ax.set_ylim([-0.5, 1.5])
-ax.set_xlim([-5,5])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('step function')
-
-plt.show()
-
-"""Sine Function"""
-z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)
-t = numpy.sin(z)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, t)
-ax.set_ylim([-1.0, 1.0])
-ax.set_xlim([-2*mt.pi,2*mt.pi])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('sine function')
-
-plt.show()
-
-"""Plots a graph of the squashing function used by a rectified linear
-unit"""
-z = numpy.arange(-2, 2, .1)
-zero = numpy.zeros(len(z))
-y = numpy.max([zero, z], axis=0)
-
-fig = plt.figure()
-ax = fig.add_subplot(111)
-ax.plot(z, y)
-ax.set_ylim([-2.0, 2.0])
-ax.set_xlim([-2.0, 2.0])
-ax.grid(True)
-ax.set_xlabel('z')
-ax.set_title('Rectified linear unit')
-
-plt.show()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - -









-

Fine-tuning neural network hyperparameters

- -

The flexibility of neural networks is also one of their main -drawbacks: there are many hyperparameters to tweak. Not only can you -use any imaginable network topology (how neurons/nodes are -interconnected), but even in a simple FFNN you can change the number -of layers, the number of neurons per layer, the type of activation -function to use in each layer, the weight initialization logic, the -stochastic gradient optmized and much more. How do you know what -combination of hyperparameters is the best for your task? -

- -
    -
  • You can use grid search with cross-validation to find the right hyperparameters.
  • -
-

However,since there are many hyperparameters to tune, and since -training a neural network on a large dataset takes a lot of time, you -will only be able to explore a tiny part of the hyperparameter space. -

- -
    -
  • You can use randomized search.
  • -
  • Or use tools like Oscar, which implements more complex algorithms to help you find a good set of hyperparameters quickly.
  • -
-









-

Hidden layers

- -

For many problems you can start with just one or two hidden layers and -it will work just fine. For the MNIST data set you ca easily get a -high accuracy using just one hidden layer with a few hundred neurons. -You can reach for this data set above 98% accuracy using two hidden -layers with the same total amount of neurons, in roughly the same -amount of training time. -

- -

For more complex problems, you can gradually ramp up the number of -hidden layers, until you start overfitting the training set. Very -complex tasks, such as large image classification or speech -recognition, typically require networks with dozens of layers and they -need a huge amount of training data. However, you will rarely have to -train such networks from scratch: it is much more common to reuse -parts of a pretrained state-of-the-art network that performs a similar -task. -

- - -

Vanishing gradients

- -

The Back propagation algorithm we derived above works by going from -the output layer to the input layer, propagating the error gradient on -the way. Once the algorithm has computed the gradient of the cost -function with regards to each parameter in the network, it uses these -gradients to update each parameter with a Gradient Descent (GD) step. -

- -

Unfortunately for us, the gradients often get smaller and smaller as -the algorithm progresses down to the first hidden layers. As a result, -the GD update leaves the lower layer connection weights virtually -unchanged, and training never converges to a good solution. This is -known in the literature as the vanishing gradients problem. -

- -









-

Exploding gradients

- -

In other cases, the opposite can happen, namely the the gradients can -grow bigger and bigger. The result is that many of the layers get -large updates of the weights the algorithm diverges. This is the -exploding gradients problem, which is mostly encountered in -recurrent neural networks. More generally, deep neural networks suffer -from unstable gradients, different layers may learn at widely -different speeds -

- - -

Is the Logistic activation function (Sigmoid) our choice?

- -

Although this unfortunate behavior has been empirically observed for -quite a while (it was one of the reasons why deep neural networks were -mostly abandoned for a long time), it is only around 2010 that -significant progress was made in understanding it. -

- -

A paper titled Understanding the Difficulty of Training Deep -Feedforward Neural Networks by Xavier Glorot and Yoshua Bengio found that -the problems with the popular logistic -sigmoid activation function and the weight initialization technique -that was most popular at the time, namely random initialization using -a normal distribution with a mean of 0 and a standard deviation of -1. -

- -









-

Logistic function as the root of problems

- -

They showed that with this activation function and this -initialization scheme, the variance of the outputs of each layer is -much greater than the variance of its inputs. Going forward in the -network, the variance keeps increasing after each layer until the -activation function saturates at the top layers. This is actually made -worse by the fact that the logistic function has a mean of 0.5, not 0 -(the hyperbolic tangent function has a mean of 0 and behaves slightly -better than the logistic function in deep networks). -

- -









-

The derivative of the Logistic funtion

- -

Looking at the logistic activation function, when inputs become large -(negative or positive), the function saturates at 0 or 1, with a -derivative extremely close to 0. Thus when backpropagation kicks in, -it has virtually no gradient to propagate back through the network, -and what little gradient exists keeps getting diluted as -backpropagation progresses down through the top layers, so there is -really nothing left for the lower layers. -

- -

In their paper, Glorot and Bengio propose a way to significantly -alleviate this problem. We need the signal to flow properly in both -directions: in the forward direction when making predictions, and in -the reverse direction when backpropagating gradients. We don’t want -the signal to die out, nor do we want it to explode and saturate. For -the signal to flow properly, the authors argue that we need the -variance of the outputs of each layer to be equal to the variance of -its inputs, and we also need the gradients to have equal variance -before and after flowing through a layer in the reverse direction. -

- -









-

Insights from the paper by Glorot and Bengio

- -

One of the insights in the 2010 paper by Glorot and Bengio was that -the vanishing/exploding gradients problems were in part due to a poor -choice of activation function. Until then most people had assumed that -if Nature had chosen to use roughly sigmoid activation functions in -biological neurons, they must be an excellent choice. But it turns out -that other activation functions behave much better in deep neural -networks, in particular the ReLU activation function, mostly because -it does not saturate for positive values (and also because it is quite -fast to compute). -

- -









-

The RELU function family

- -

The ReLU activation function suffers from a problem known as the dying -ReLUs: during training, some neurons effectively die, meaning they -stop outputting anything other than 0. -

- -

In some cases, you may find that half of your network’s neurons are -dead, especially if you used a large learning rate. During training, -if a neuron’s weights get updated such that the weighted sum of the -neuron’s inputs is negative, it will start outputting 0. When this -happen, the neuron is unlikely to come back to life since the gradient -of the ReLU function is 0 when its input is negative. -

- -









-

ELU function

- -

To solve this problem, nowadays practitioners use a variant of the -ReLU function, such as the leaky ReLU discussed above or the so-called -exponential linear unit (ELU) function -

- -$$ -ELU(z) = \left\{\begin{array}{cc} \alpha\left( \exp{(z)}-1\right) & z < 0,\\ z & z \ge 0.\end{array}\right. -$$ - - -









-

Which activation function should we use?

- -

In general it seems that the ELU activation function is better than -the leaky ReLU function (and its variants), which is better than -ReLU. ReLU performs better than \( \tanh \) which in turn performs better -than the logistic function. -

- -

If runtime performance is an issue, then you may opt for the leaky -ReLU function over the ELU function If you don’t want to tweak yet -another hyperparameter, you may just use the default \( \alpha \) of -\( 0.01 \) for the leaky ReLU, and \( 1 \) for ELU. If you have spare time and -computing power, you can use cross-validation or bootstrap to evaluate -other activation functions. -

- -









-

More on activation functions, output layers

- -

In most cases you can use the ReLU activation function in the hidden -layers (or one of its variants). -

- -

It is a bit faster to compute than other activation functions, and the -gradient descent optimization does in general not get stuck. -

- -For the output layer: - -
    -
  • For classification the softmax activation function is generally a good choice for classification tasks (when the classes are mutually exclusive).
  • -
  • For regression tasks, you can simply use no activation function at all.
  • -
-









-

Batch Normalization

- -

Batch Normalization aims to address the vanishing/exploding gradients -problems, and more generally the problem that the distribution of each -layer’s inputs changes during training, as the parameters of the -previous layers change. -

- -

The technique consists of adding an operation in the model just before -the activation function of each layer, simply zero-centering and -normalizing the inputs, then scaling and shifting the result using two -new parameters per layer (one for scaling, the other for shifting). In -other words, this operation lets the model learn the optimal scale and -mean of the inputs for each layer. In order to zero-center and -normalize the inputs, the algorithm needs to estimate the inputs’ mean -and standard deviation. It does so by evaluating the mean and standard -deviation of the inputs over the current mini-batch, from this the -name batch normalization. -

- -









-

Dropout

- -

It is a fairly simple algorithm: at every training step, every neuron -(including the input neurons but excluding the output neurons) has a -probability \( p \) of being temporarily dropped out, meaning it will be -entirely ignored during this training step, but it may be active -during the next step. -

- -

The hyperparameter \( p \) is called the dropout rate, and it is typically -set to 50%. After training, the neurons are not dropped anymore. It -is viewed as one of the most popular regularization techniques. -

- -









-

Gradient Clipping

- -

A popular technique to lessen the exploding gradients problem is to -simply clip the gradients during backpropagation so that they never -exceed some threshold (this is mostly useful for recurrent neural -networks). -

- -

This technique is called Gradient Clipping.

- -

In general however, Batch -Normalization is preferred. -

- - -

A top-down perspective on Neural networks

- -

The first thing we would like to do is divide the data into two or -three parts. A training set, a validation or dev (development) set, -and a test set. The test set is the data on which we want to make -predictions. The dev set is a subset of the training data we use to -check how well we are doing out-of-sample, after training the model on -the training dataset. We use the validation error as a proxy for the -test error in order to make tweaks to our model. It is crucial that we -do not use any of the test data to train the algorithm. This is a -cardinal sin in ML. Then: -

- -
    -
  1. Estimate optimal error rate
  2. -
  3. Minimize underfitting (bias) on training data set.
  4. -
  5. Make sure you are not overfitting.
  6. -
-









-

More top-down perspectives

- -

If the validation and test sets are drawn from the same distributions, -then a good performance on the validation set should lead to similarly -good performance on the test set. -

- -

However, sometimes -the training data and test data differ in subtle ways because, for -example, they are collected using slightly different methods, or -because it is cheaper to collect data in one way versus another. In -this case, there can be a mismatch between the training and test -data. This can lead to the neural network overfitting these small -differences between the test and training sets, and a poor performance -on the test set despite having a good performance on the validation -set. To rectify this, Andrew Ng suggests making two validation or dev -sets, one constructed from the training data and one constructed from -the test data. The difference between the performance of the algorithm -on these two validation sets quantifies the train-test mismatch. This -can serve as another important diagnostic when using DNNs for -supervised learning. -

- -









-

Limitations of supervised learning with deep networks

- -

Like all statistical methods, supervised learning using neural -networks has important limitations. This is especially important when -one seeks to apply these methods, especially to physics problems. Like -all tools, DNNs are not a universal solution. Often, the same or -better performance on a task can be achieved by using a few -hand-engineered features (or even a collection of random -features). -

- -









-

Limitations of NNs

- -

Here we list some of the important limitations of supervised neural network based models.

- -
    -
  • Need labeled data. All supervised learning methods, DNNs for supervised learning require labeled data. Often, labeled data is harder to acquire than unlabeled data (e.g. one must pay for human experts to label images).
  • -
  • Supervised neural networks are extremely data intensive. DNNs are data hungry. They perform best when data is plentiful. This is doubly so for supervised methods where the data must also be labeled. The utility of DNNs is extremely limited if data is hard to acquire or the datasets are small (hundreds to a few thousand samples). In this case, the performance of other methods that utilize hand-engineered features can exceed that of DNNs.
  • -
-









-

Homogeneous data

- -
    -
  • Homogeneous data. Almost all DNNs deal with homogeneous data of one type. It is very hard to design architectures that mix and match data types (i.e. some continuous variables, some discrete variables, some time series). In applications beyond images, video, and language, this is often what is required. In contrast, ensemble models like random forests or gradient-boosted trees have no difficulty handling mixed data types.
  • -
-









-

More limitations

- -
    -
  • Many problems are not about prediction. In natural science we are often interested in learning something about the underlying distribution that generates the data. In this case, it is often difficult to cast these ideas in a supervised learning setting. While the problems are related, it is possible to make good predictions with a wrong model. The model might or might not be useful for understanding the underlying science.
  • -
-

Some of these remarks are particular to DNNs, others are shared by all supervised learning methods. This motivates the use of unsupervised methods which in part circumvent these problems.

- - -
- © 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license -
- - - diff --git a/doc/src/week41/week41.ipynb b/doc/src/week41/week41.ipynb deleted file mode 100644 index 5f563d4fd..000000000 --- a/doc/src/week41/week41.ipynb +++ /dev/null @@ -1,4644 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "4411828b", - "metadata": { - "editable": true - }, - "source": [ - "\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "c234e82d", - "metadata": { - "editable": true - }, - "source": [ - "# Week 41 Neural networks and constructing a neural network code\n", - "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo\n", - "\n", - "Date: **Week 41**" - ] - }, - { - "cell_type": "markdown", - "id": "e602572c", - "metadata": { - "editable": true - }, - "source": [ - "## Plan for week 41, October 7-11" - ] - }, - { - "cell_type": "markdown", - "id": "8c040a6e", - "metadata": { - "editable": true - }, - "source": [ - "## Material for the lecture on Monday October 7, 2024\n", - "1. Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.\n", - "\n", - "2. Building our own Feed-forward Neural Network\n", - "\n", - "\n", - "\n", - "**Readings and Videos:**\n", - "\n", - "1. These lecture notes\n", - "\n", - "2. Rashcka et al chapter 11 \n", - "\n", - "3. For neural networks we recommend Goodfellow et al chapter 6.\n", - "\n", - "a. Neural Networks demystified at \n", - "\n", - "2. Building Neural Networks from scratch at \n", - "\n", - "3. Video on Neural Networks at \n", - "\n", - "4. Video on the back propagation algorithm at \n", - "\n", - "We also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at ." - ] - }, - { - "cell_type": "markdown", - "id": "d7c3f47c", - "metadata": { - "editable": true - }, - "source": [ - "## Material for the active learning sessions on Tuesday and Wednesday\n", - "* Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation\n", - "\n", - "* One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code\n", - "\n", - "* Discussion of project 2\n", - "\n", - "* Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent" - ] - }, - { - "cell_type": "markdown", - "id": "ee26bc0e", - "metadata": { - "editable": true - }, - "source": [ - "## Lecture Monday October 7" - ] - }, - { - "cell_type": "markdown", - "id": "604a7680", - "metadata": { - "editable": true - }, - "source": [ - "## Introduction to Neural networks\n", - "\n", - "Artificial neural networks are computational systems that can learn to\n", - "perform tasks by considering examples, generally without being\n", - "programmed with any task-specific rules. It is supposed to mimic a\n", - "biological system, wherein neurons interact by sending signals in the\n", - "form of mathematical functions between layers. All layers can contain\n", - "an arbitrary number of neurons, and each connection is represented by\n", - "a weight variable." - ] - }, - { - "cell_type": "markdown", - "id": "df00fb0e", - "metadata": { - "editable": true - }, - "source": [ - "## Artificial neurons\n", - "\n", - "The field of artificial neural networks has a long history of\n", - "development, and is closely connected with the advancement of computer\n", - "science and computers in general. A model of artificial neurons was\n", - "first developed by McCulloch and Pitts in 1943 to study signal\n", - "processing in the brain and has later been refined by others. The\n", - "general idea is to mimic neural networks in the human brain, which is\n", - "composed of billions of neurons that communicate with each other by\n", - "sending electrical signals. Each neuron accumulates its incoming\n", - "signals, which must exceed an activation threshold to yield an\n", - "output. If the threshold is not overcome, the neuron remains inactive,\n", - "i.e. has zero output.\n", - "\n", - "This behaviour has inspired a simple mathematical model for an artificial neuron." - ] - }, - { - "cell_type": "markdown", - "id": "b60314ed", - "metadata": { - "editable": true - }, - "source": [ - "\n", - "
\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " y = f\\left(\\sum_{i=1}^n w_ix_i\\right) = f(u)\n", - "\\label{artificialNeuron} \\tag{1}\n", - "\\end{equation}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "9d2e1d85", - "metadata": { - "editable": true - }, - "source": [ - "Here, the output $y$ of the neuron is the value of its activation function, which have as input\n", - "a weighted sum of signals $x_i, \\dots ,x_n$ received by $n$ other neurons.\n", - "\n", - "Conceptually, it is helpful to divide neural networks into four\n", - "categories:\n", - "1. general purpose neural networks for supervised learning,\n", - "\n", - "2. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs),\n", - "\n", - "3. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and\n", - "\n", - "4. neural networks for unsupervised learning such as Deep Boltzmann Machines.\n", - "\n", - "In natural science, DNNs and CNNs have already found numerous\n", - "applications. In statistical physics, they have been applied to detect\n", - "phase transitions in 2D Ising and Potts models, lattice gauge\n", - "theories, and different phases of polymers, or solving the\n", - "Navier-Stokes equation in weather forecasting. Deep learning has also\n", - "found interesting applications in quantum physics. Various quantum\n", - "phase transitions can be detected and studied using DNNs and CNNs,\n", - "topological phases, and even non-equilibrium many-body\n", - "localization. Representing quantum states as DNNs quantum state\n", - "tomography are among some of the impressive achievements to reveal the\n", - "potential of DNNs to facilitate the study of quantum systems.\n", - "\n", - "In quantum information theory, it has been shown that one can perform\n", - "gate decompositions with the help of neural. \n", - "\n", - "The applications are not limited to the natural sciences. There is a\n", - "plethora of applications in essentially all disciplines, from the\n", - "humanities to life science and medicine." - ] - }, - { - "cell_type": "markdown", - "id": "c6af91e7", - "metadata": { - "editable": true - }, - "source": [ - "## Neural network types\n", - "\n", - "An artificial neural network (ANN), is a computational model that\n", - "consists of layers of connected neurons, or nodes or units. We will\n", - "refer to these interchangeably as units or nodes, and sometimes as\n", - "neurons.\n", - "\n", - "It is supposed to mimic a biological nervous system by letting each\n", - "neuron interact with other neurons by sending signals in the form of\n", - "mathematical functions between layers. A wide variety of different\n", - "ANNs have been developed, but most of them consist of an input layer,\n", - "an output layer and eventual layers in-between, called *hidden\n", - "layers*. All layers can contain an arbitrary number of nodes, and each\n", - "connection between two nodes is associated with a weight variable.\n", - "\n", - "Neural networks (also called neural nets) are neural-inspired\n", - "nonlinear models for supervised learning. As we will see, neural nets\n", - "can be viewed as natural, more powerful extensions of supervised\n", - "learning methods such as linear and logistic regression and soft-max\n", - "methods we discussed earlier." - ] - }, - { - "cell_type": "markdown", - "id": "1b2b8e1c", - "metadata": { - "editable": true - }, - "source": [ - "## Feed-forward neural networks\n", - "\n", - "The feed-forward neural network (FFNN) was the first and simplest type\n", - "of ANNs that were devised. In this network, the information moves in\n", - "only one direction: forward through the layers.\n", - "\n", - "Nodes are represented by circles, while the arrows display the\n", - "connections between the nodes, including the direction of information\n", - "flow. Additionally, each arrow corresponds to a weight variable\n", - "(figure to come). We observe that each node in a layer is connected\n", - "to *all* nodes in the subsequent layer, making this a so-called\n", - "*fully-connected* FFNN." - ] - }, - { - "cell_type": "markdown", - "id": "db4860d5", - "metadata": { - "editable": true - }, - "source": [ - "## Convolutional Neural Network\n", - "\n", - "A different variant of FFNNs are *convolutional neural networks*\n", - "(CNNs), which have a connectivity pattern inspired by the animal\n", - "visual cortex. Individual neurons in the visual cortex only respond to\n", - "stimuli from small sub-regions of the visual field, called a receptive\n", - "field. This makes the neurons well-suited to exploit the strong\n", - "spatially local correlation present in natural images. The response of\n", - "each neuron can be approximated mathematically as a convolution\n", - "operation. (figure to come)\n", - "\n", - "Convolutional neural networks emulate the behaviour of neurons in the\n", - "visual cortex by enforcing a *local* connectivity pattern between\n", - "nodes of adjacent layers: Each node in a convolutional layer is\n", - "connected only to a subset of the nodes in the previous layer, in\n", - "contrast to the fully-connected FFNN. Often, CNNs consist of several\n", - "convolutional layers that learn local features of the input, with a\n", - "fully-connected layer at the end, which gathers all the local data and\n", - "produces the outputs. They have wide applications in image and video\n", - "recognition." - ] - }, - { - "cell_type": "markdown", - "id": "4c21c5ca", - "metadata": { - "editable": true - }, - "source": [ - "## Recurrent neural networks\n", - "\n", - "So far we have only mentioned ANNs where information flows in one\n", - "direction: forward. *Recurrent neural networks* on the other hand,\n", - "have connections between nodes that form directed *cycles*. This\n", - "creates a form of internal memory which are able to capture\n", - "information on what has been calculated before; the output is\n", - "dependent on the previous computations. Recurrent NNs make use of\n", - "sequential information by performing the same task for every element\n", - "in a sequence, where each element depends on previous elements. An\n", - "example of such information is sentences, making recurrent NNs\n", - "especially well-suited for handwriting and speech recognition." - ] - }, - { - "cell_type": "markdown", - "id": "4314d49c", - "metadata": { - "editable": true - }, - "source": [ - "## Other types of networks\n", - "\n", - "There are many other kinds of ANNs that have been developed. One type\n", - "that is specifically designed for interpolation in multidimensional\n", - "space is the radial basis function (RBF) network. RBFs are typically\n", - "made up of three layers: an input layer, a hidden layer with\n", - "non-linear radial symmetric activation functions and a linear output\n", - "layer (''linear'' here means that each node in the output layer has a\n", - "linear activation function). The layers are normally fully-connected\n", - "and there are no cycles, thus RBFs can be viewed as a type of\n", - "fully-connected FFNN. They are however usually treated as a separate\n", - "type of NN due the unusual activation functions." - ] - }, - { - "cell_type": "markdown", - "id": "94acdaed", - "metadata": { - "editable": true - }, - "source": [ - "## Multilayer perceptrons\n", - "\n", - "One uses often so-called fully-connected feed-forward neural networks\n", - "with three or more layers (an input layer, one or more hidden layers\n", - "and an output layer) consisting of neurons that have non-linear\n", - "activation functions.\n", - "\n", - "Such networks are often called *multilayer perceptrons* (MLPs)." - ] - }, - { - "cell_type": "markdown", - "id": "5c342880", - "metadata": { - "editable": true - }, - "source": [ - "## Why multilayer perceptrons?\n", - "\n", - "According to the *Universal approximation theorem*, a feed-forward\n", - "neural network with just a single hidden layer containing a finite\n", - "number of neurons can approximate a continuous multidimensional\n", - "function to arbitrary accuracy, assuming the activation function for\n", - "the hidden layer is a **non-constant, bounded and\n", - "monotonically-increasing continuous function**.\n", - "\n", - "Note that the requirements on the activation function only applies to\n", - "the hidden layer, the output nodes are always assumed to be linear, so\n", - "as to not restrict the range of output values." - ] - }, - { - "cell_type": "markdown", - "id": "f8e04154", - "metadata": { - "editable": true - }, - "source": [ - "## Illustration of a single perceptron model and a multi-perceptron model\n", - "\n", - "\n", - "\n", - "\n", - "

Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "80e11a79", - "metadata": { - "editable": true - }, - "source": [ - "## Examples of XOR, OR and AND gates\n", - "\n", - "Let us first try to fit various gates using standard linear\n", - "regression. The gates we are thinking of are the classical XOR, OR and\n", - "AND gates, well-known elements in computer science. The tables here\n", - "show how we can set up the inputs $x_1$ and $x_2$ in order to yield a\n", - "specific target $y_i$." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "60cf9550", - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "\"\"\"\n", - "Simple code that tests XOR, OR and AND gates with linear regression\n", - "\"\"\"\n", - "\n", - "import numpy as np\n", - "# Design matrix\n", - "X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)\n", - "print(f\"The X.TX matrix:{X.T @ X}\")\n", - "Xinv = np.linalg.pinv(X.T @ X)\n", - "print(f\"The invers of X.TX matrix:{Xinv}\")\n", - "\n", - "# The XOR gate \n", - "yXOR = np.array( [ 0, 1 ,1, 0])\n", - "ThetaXOR = Xinv @ X.T @ yXOR\n", - "print(f\"The values of theta for the XOR gate:{ThetaXOR}\")\n", - "print(f\"The linear regression prediction for the XOR gate:{X @ ThetaXOR}\")\n", - "\n", - "\n", - "# The OR gate \n", - "yOR = np.array( [ 0, 1 ,1, 1])\n", - "ThetaOR = Xinv @ X.T @ yOR\n", - "print(f\"The values of theta for the OR gate:{ThetaOR}\")\n", - "print(f\"The linear regression prediction for the OR gate:{X @ ThetaOR}\")\n", - "\n", - "\n", - "# The OR gate \n", - "yAND = np.array( [ 0, 0 ,0, 1])\n", - "ThetaAND = Xinv @ X.T @ yAND\n", - "print(f\"The values of theta for the AND gate:{ThetaAND}\")\n", - "print(f\"The linear regression prediction for the AND gate:{X @ ThetaAND}\")" - ] - }, - { - "cell_type": "markdown", - "id": "72e221bf", - "metadata": { - "editable": true - }, - "source": [ - "What is happening here?" - ] - }, - { - "cell_type": "markdown", - "id": "67d0709a", - "metadata": { - "editable": true - }, - "source": [ - "## Does Logistic Regression do a better Job?" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "4afcb37f", - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "\n", - "\"\"\"\n", - "Simple code that tests XOR and OR gates with linear regression\n", - "and logistic regression\n", - "\"\"\"\n", - "\n", - "import matplotlib.pyplot as plt\n", - "from sklearn.linear_model import LogisticRegression\n", - "import numpy as np\n", - "\n", - "# Design matrix\n", - "X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)\n", - "print(f\"The X.TX matrix:{X.T @ X}\")\n", - "Xinv = np.linalg.pinv(X.T @ X)\n", - "print(f\"The invers of X.TX matrix:{Xinv}\")\n", - "\n", - "# The XOR gate \n", - "yXOR = np.array( [ 0, 1 ,1, 0])\n", - "ThetaXOR = Xinv @ X.T @ yXOR\n", - "print(f\"The values of theta for the XOR gate:{ThetaXOR}\")\n", - "print(f\"The linear regression prediction for the XOR gate:{X @ ThetaXOR}\")\n", - "\n", - "\n", - "# The OR gate \n", - "yOR = np.array( [ 0, 1 ,1, 1])\n", - "ThetaOR = Xinv @ X.T @ yOR\n", - "print(f\"The values of theta for the OR gate:{ThetaOR}\")\n", - "print(f\"The linear regression prediction for the OR gate:{X @ ThetaOR}\")\n", - "\n", - "\n", - "# The OR gate \n", - "yAND = np.array( [ 0, 0 ,0, 1])\n", - "ThetaAND = Xinv @ X.T @ yAND\n", - "print(f\"The values of theta for the AND gate:{ThetaAND}\")\n", - "print(f\"The linear regression prediction for the AND gate:{X @ ThetaAND}\")\n", - "\n", - "# Now we change to logistic regression\n", - "\n", - "\n", - "# Logistic Regression\n", - "logreg = LogisticRegression()\n", - "logreg.fit(X, yOR)\n", - "print(\"Test set accuracy with Logistic Regression for OR gate: {:.2f}\".format(logreg.score(X,yOR)))\n", - "\n", - "logreg.fit(X, yXOR)\n", - "print(\"Test set accuracy with Logistic Regression for XOR gate: {:.2f}\".format(logreg.score(X,yXOR)))\n", - "\n", - "\n", - "logreg.fit(X, yAND)\n", - "print(\"Test set accuracy with Logistic Regression for AND gate: {:.2f}\".format(logreg.score(X,yAND)))" - ] - }, - { - "cell_type": "markdown", - "id": "ac931e42", - "metadata": { - "editable": true - }, - "source": [ - "Not exactly impressive, but somewhat better." - ] - }, - { - "cell_type": "markdown", - "id": "e5455ad8", - "metadata": { - "editable": true - }, - "source": [ - "## Adding Neural Networks" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "cfbed3e7", - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "\n", - "# and now neural networks with Scikit-Learn and the XOR\n", - "\n", - "from sklearn.neural_network import MLPClassifier\n", - "from sklearn.datasets import make_classification\n", - "X, yXOR = make_classification(n_samples=100, random_state=1)\n", - "FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR)\n", - "FFNN.predict_proba(X)\n", - "print(f\"Test set accuracy with Feed Forward Neural Network for XOR gate:{FFNN.score(X, yXOR)}\")" - ] - }, - { - "cell_type": "markdown", - "id": "a619dfb2", - "metadata": { - "editable": true - }, - "source": [ - "## Mathematics of deep learning\n", - "\n", - "**Two recent books online.**\n", - "\n", - "1. [The Modern Mathematics of Deep Learning, by Julius Berner, Philipp Grohs, Gitta Kutyniok, Philipp Petersen](https://arxiv.org/abs/2105.04026), published as [Mathematical Aspects of Deep Learning, pp. 1-111. Cambridge University Press, 2022](https://doi.org/10.1017/9781009025096.002)\n", - "\n", - "2. [Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory, Arnulf Jentzen, Benno Kuckuck, Philippe von Wurstemberger](https://doi.org/10.48550/arXiv.2310.20360)" - ] - }, - { - "cell_type": "markdown", - "id": "2cc88c73", - "metadata": { - "editable": true - }, - "source": [ - "## Reminder on books with hands-on material and codes\n", - "* [Sebastian Rashcka et al, Machine learning with Sickit-Learn and PyTorch](https://sebastianraschka.com/blog/2022/ml-pytorch-book.html)" - ] - }, - { - "cell_type": "markdown", - "id": "233d2972", - "metadata": { - "editable": true - }, - "source": [ - "## Reading recommendations\n", - "\n", - "1. Rashkca et al., chapter 11, jupyter-notebook sent separately, from [GitHub](https://github.com/rasbt/machine-learning-book)\n", - "\n", - "2. Goodfellow et al, chapter 6 and 7 contain most of the neural network background." - ] - }, - { - "cell_type": "markdown", - "id": "27cc80b0", - "metadata": { - "editable": true - }, - "source": [ - "## Mathematics of deep learning and neural networks\n", - "\n", - "Neural networks, in its so-called feed-forward form, where each\n", - "iterations contains a feed-forward stage and a back-propgagation\n", - "stage, consist of series of affine matrix-matrix and matrix-vector\n", - "multiplications. The unknown parameters (the so-called biases and\n", - "weights which deternine the architecture of a neural network), are\n", - "uptaded iteratively using the so-called back-propagation algorithm.\n", - "This algorithm corresponds to the so-called reverse mode of \n", - "automatic differentation." - ] - }, - { - "cell_type": "markdown", - "id": "ea3a3c02", - "metadata": { - "editable": true - }, - "source": [ - "## Basics of an NN\n", - "\n", - "A neural network consists of a series of hidden layers, in addition to\n", - "the input and output layers. Each layer $l$ has a set of parameters\n", - "$\\boldsymbol{\\Theta}^{(l)}=(\\boldsymbol{W}^{(l)},\\boldsymbol{b}^{(l)})$ which are related to the\n", - "parameters in other layers through a series of affine transformations,\n", - "for a standard NN these are matrix-matrix and matrix-vector\n", - "multiplications. For all layers we will simply use a collective variable $\\boldsymbol{\\Theta}$.\n", - "\n", - "It consist of two basic steps:\n", - "1. a feed forward stage which takes a given input and produces a final output which is compared with the target values through our cost/loss function.\n", - "\n", - "2. a back-propagation state where the unknown parameters $\\boldsymbol{\\Theta}$ are updated through the optimization of the their gradients. The expressions for the gradients are obtained via the chain rule, starting from the derivative of the cost/function.\n", - "\n", - "These two steps make up one iteration. This iterative process is continued till we reach an eventual stopping criterion." - ] - }, - { - "cell_type": "markdown", - "id": "502d4ad7", - "metadata": { - "editable": true - }, - "source": [ - "## Overarching view of a neural network\n", - "\n", - "The architecture of a neural network defines our model. This model\n", - "aims at describing some function $f(\\boldsymbol{x}$ which represents\n", - "some final result (outputs or tagrget values) given a specific inpput\n", - "$\\boldsymbol{x}$. Note that here $\\boldsymbol{y}$ and $\\boldsymbol{x}$ are not limited to be\n", - "vectors.\n", - "\n", - "The architecture consists of\n", - "1. An input and an output layer where the input layer is defined by the inputs $\\boldsymbol{x}$. The output layer produces the model ouput $\\boldsymbol{\\tilde{y}}$ which is compared with the target value $\\boldsymbol{y}$\n", - "\n", - "2. A given number of hidden layers and neurons/nodes/units for each layer (this may vary)\n", - "\n", - "3. A given activation function $\\sigma(\\boldsymbol{z})$ with arguments $\\boldsymbol{z}$ to be defined below. The activation functions may differ from layer to layer.\n", - "\n", - "4. The last layer, normally called **output** layer has normally an activation function tailored to the specific problem\n", - "\n", - "5. Finally we define a so-called cost or loss function which is used to gauge the quality of our model." - ] - }, - { - "cell_type": "markdown", - "id": "9182519a", - "metadata": { - "editable": true - }, - "source": [ - "## The optimization problem\n", - "\n", - "The cost function is a function of the unknown parameters\n", - "$\\boldsymbol{\\Theta}$ where the latter is a container for all possible\n", - "parameters needed to define a neural network\n", - "\n", - "If we are dealing with a regression task a typical cost/loss function\n", - "is the mean squared error" - ] - }, - { - "cell_type": "markdown", - "id": "15b78cfd", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "C(\\boldsymbol{\\Theta})=\\frac{1}{n}\\left\\{\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\theta}\\right)^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\theta}\\right)\\right\\}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "093b77f1", - "metadata": { - "editable": true - }, - "source": [ - "This function represents one of many possible ways to define\n", - "the so-called cost function. Note that here we have assumed a linear dependence in terms of the paramters $\\boldsymbol{\\Theta}$. This is in general not the case." - ] - }, - { - "cell_type": "markdown", - "id": "b6c8a224", - "metadata": { - "editable": true - }, - "source": [ - "## Parameters of neural networks\n", - "For neural networks the parameters\n", - "$\\boldsymbol{\\Theta}$ are given by the so-called weights and biases (to be\n", - "defined below).\n", - "\n", - "The weights are given by matrix elements $w_{ij}^{(l)}$ where the\n", - "superscript indicates the layer number. The biases are typically given\n", - "by vector elements representing each single node of a given layer,\n", - "that is $b_j^{(l)}$." - ] - }, - { - "cell_type": "markdown", - "id": "f30d7e81", - "metadata": { - "editable": true - }, - "source": [ - "## Other ingredients of a neural network\n", - "\n", - "Having defined the architecture of a neural network, the optimization\n", - "of the cost function with respect to the parameters $\\boldsymbol{\\Theta}$,\n", - "involves the calculations of gradients and their optimization. The\n", - "gradients represent the derivatives of a multidimensional object and\n", - "are often approximated by various gradient methods, including\n", - "1. various quasi-Newton methods,\n", - "\n", - "2. plain gradient descent (GD) with a constant learning rate $\\eta$,\n", - "\n", - "3. GD with momentum and other approximations to the learning rates such as\n", - "\n", - " * Adapative gradient (ADAgrad)\n", - "\n", - " * Root mean-square propagation (RMSprop)\n", - "\n", - " * Adaptive gradient with momentum (ADAM) and many other\n", - "\n", - "4. Stochastic gradient descent and various families of learning rate approximations" - ] - }, - { - "cell_type": "markdown", - "id": "5089007e", - "metadata": { - "editable": true - }, - "source": [ - "## Other parameters\n", - "\n", - "In addition to the above, there are often additional hyperparamaters\n", - "which are included in the setup of a neural network. These will be\n", - "discussed below." - ] - }, - { - "cell_type": "markdown", - "id": "3f9eedcb", - "metadata": { - "editable": true - }, - "source": [ - "## Universal approximation theorem\n", - "\n", - "The universal approximation theorem plays a central role in deep\n", - "learning. [Cybenko (1989)](https://link.springer.com/article/10.1007/BF02551274) showed\n", - "the following:\n", - "\n", - "Let $\\sigma$ be any continuous sigmoidal function such that" - ] - }, - { - "cell_type": "markdown", - "id": "ac052134", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\sigma(z) = \\left\\{\\begin{array}{cc} 1 & z\\rightarrow \\infty\\\\ 0 & z \\rightarrow -\\infty \\end{array}\\right.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "c0e639b1", - "metadata": { - "editable": true - }, - "source": [ - "Given a continuous and deterministic function $F(\\boldsymbol{x})$ on the unit\n", - "cube in $d$-dimensions $F\\in [0,1]^d$, $x\\in [0,1]^d$ and a parameter\n", - "$\\epsilon >0$, there is a one-layer (hidden) neural network\n", - "$f(\\boldsymbol{x};\\boldsymbol{\\Theta})$ with $\\boldsymbol{\\Theta}=(\\boldsymbol{W},\\boldsymbol{b})$ and $\\boldsymbol{W}\\in\n", - "\\mathbb{R}^{m\\times n}$ and $\\boldsymbol{b}\\in \\mathbb{R}^{n}$, for which" - ] - }, - { - "cell_type": "markdown", - "id": "6d2878d4", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\vert F(\\boldsymbol{x})-f(\\boldsymbol{x};\\boldsymbol{\\Theta})\\vert < \\epsilon \\hspace{0.1cm} \\forall \\boldsymbol{x}\\in[0,1]^d.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "dbb5133d", - "metadata": { - "editable": true - }, - "source": [ - "## Some parallels from real analysis\n", - "\n", - "For those of you familiar with for example the [Stone-Weierstrass\n", - "theorem](https://en.wikipedia.org/wiki/Stone%E2%80%93Weierstrass_theorem)\n", - "for polynomial approximations or the convergence criterion for Fourier\n", - "series, there are similarities in the derivation of the proof for\n", - "neural networks." - ] - }, - { - "cell_type": "markdown", - "id": "0da134a5", - "metadata": { - "editable": true - }, - "source": [ - "## The approximation theorem in words\n", - "\n", - "**Any continuous function $y=F(\\boldsymbol{x})$ supported on the unit cube in\n", - "$d$-dimensions can be approximated by a one-layer sigmoidal network to\n", - "arbitrary accuracy.**\n", - "\n", - "[Hornik (1991)](https://www.sciencedirect.com/science/article/abs/pii/089360809190009T) extended the theorem by letting any non-constant, bounded activation function to be included using that the expectation value" - ] - }, - { - "cell_type": "markdown", - "id": "5346e8a0", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\mathbb{E}[\\vert F(\\boldsymbol{x})\\vert^2] =\\int_{\\boldsymbol{x}\\in D} \\vert F(\\boldsymbol{x})\\vert^2p(\\boldsymbol{x})d\\boldsymbol{x} < \\infty.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "36737d10", - "metadata": { - "editable": true - }, - "source": [ - "Then we have" - ] - }, - { - "cell_type": "markdown", - "id": "d81b95ba", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\mathbb{E}[\\vert F(\\boldsymbol{x})-f(\\boldsymbol{x};\\boldsymbol{\\Theta})\\vert^2] =\\int_{\\boldsymbol{x}\\in D} \\vert F(\\boldsymbol{x})-f(\\boldsymbol{x};\\boldsymbol{\\Theta})\\vert^2p(\\boldsymbol{x})d\\boldsymbol{x} < \\epsilon.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8432cac2", - "metadata": { - "editable": true - }, - "source": [ - "## More on the general approximation theorem\n", - "\n", - "None of the proofs give any insight into the relation between the\n", - "number of of hidden layers and nodes and the approximation error\n", - "$\\epsilon$, nor the magnitudes of $\\boldsymbol{W}$ and $\\boldsymbol{b}$.\n", - "\n", - "Neural networks (NNs) have what we may call a kind of universality no matter what function we want to compute.\n", - "\n", - "It does not mean that an NN can be used to exactly compute any function. Rather, we get an approximation that is as good as we want." - ] - }, - { - "cell_type": "markdown", - "id": "04d4d751", - "metadata": { - "editable": true - }, - "source": [ - "## Class of functions we can approximate\n", - "\n", - "The class of functions that can be approximated are the continuous ones.\n", - "If the function $F(\\boldsymbol{x})$ is discontinuous, it won't in general be possible to approximate it. However, an NN may still give an approximation even if we fail in some points." - ] - }, - { - "cell_type": "markdown", - "id": "df8f957e", - "metadata": { - "editable": true - }, - "source": [ - "## Setting up the equations for a neural network\n", - "\n", - "The questions we want to ask are how do changes in the biases and the\n", - "weights in our network change the cost function and how can we use the\n", - "final output to modify the weights and biases?\n", - "\n", - "To derive these equations let us start with a plain regression problem\n", - "and define our cost function as" - ] - }, - { - "cell_type": "markdown", - "id": "0fc51d93", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "{\\cal C}(\\boldsymbol{\\Theta}) = \\frac{1}{2}\\sum_{i=1}^n\\left(y_i - \\tilde{y}_i\\right)^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "fc372df4", - "metadata": { - "editable": true - }, - "source": [ - "where the $y_i$s are our $n$ targets (the values we want to\n", - "reproduce), while the outputs of the network after having propagated\n", - "all inputs $\\boldsymbol{x}$ are given by $\\boldsymbol{\\tilde{y}}_i$." - ] - }, - { - "cell_type": "markdown", - "id": "e1cbafd1", - "metadata": { - "editable": true - }, - "source": [ - "## Layout of a neural network with three hidden layers\n", - "\n", - "\n", - "\n", - "\n", - "

Figure 1:

\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "aadba1e0", - "metadata": { - "editable": true - }, - "source": [ - "## Definitions\n", - "\n", - "With our definition of the targets $\\boldsymbol{y}$, the outputs of the\n", - "network $\\boldsymbol{\\tilde{y}}$ and the inputs $\\boldsymbol{x}$ we\n", - "define now the activation $z_j^l$ of node/neuron/unit $j$ of the\n", - "$l$-th layer as a function of the bias, the weights which add up from\n", - "the previous layer $l-1$ and the forward passes/outputs\n", - "$\\hat{a}^{l-1}$ from the previous layer as" - ] - }, - { - "cell_type": "markdown", - "id": "4f0a354f", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "z_j^l = \\sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5b489754", - "metadata": { - "editable": true - }, - "source": [ - "where $b_k^l$ are the biases from layer $l$. Here $M_{l-1}$\n", - "represents the total number of nodes/neurons/units of layer $l-1$. The\n", - "figure in the whiteboard notes illustrates this equation. We can rewrite this in a more\n", - "compact form as the matrix-vector products we discussed earlier," - ] - }, - { - "cell_type": "markdown", - "id": "109a6626", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\hat{z}^l = \\left(\\hat{W}^l\\right)^T\\hat{a}^{l-1}+\\hat{b}^l.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "d075c31b", - "metadata": { - "editable": true - }, - "source": [ - "## Inputs to the activation function\n", - "\n", - "With the activation values $\\boldsymbol{z}^l$ we can in turn define the\n", - "output of layer $l$ as $\\boldsymbol{a}^l = f(\\boldsymbol{z}^l)$ where $f$ is our\n", - "activation function. In the examples here we will use the sigmoid\n", - "function discussed in our logistic regression lectures. We will also use the same activation function $f$ for all layers\n", - "and their nodes. It means we have" - ] - }, - { - "cell_type": "markdown", - "id": "ea32a509", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "a_j^l = \\sigma(z_j^l) = \\frac{1}{1+\\exp{-(z_j^l)}}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8ac36725", - "metadata": { - "editable": true - }, - "source": [ - "## Derivatives and the chain rule\n", - "\n", - "From the definition of the activation $z_j^l$ we have" - ] - }, - { - "cell_type": "markdown", - "id": "f3600e09", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial z_j^l}{\\partial w_{ij}^l} = a_i^{l-1},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3e537038", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "34b99ae7", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial z_j^l}{\\partial a_i^{l-1}} = w_{ji}^l.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "e4faa2f2", - "metadata": { - "editable": true - }, - "source": [ - "With our definition of the activation function we have that (note that this function depends only on $z_j^l$)" - ] - }, - { - "cell_type": "markdown", - "id": "b4243031", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial a_j^l}{\\partial z_j^{l}} = a_j^l(1-a_j^l)=\\sigma(z_j^l)(1-\\sigma(z_j^l)).\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "b528c44c", - "metadata": { - "editable": true - }, - "source": [ - "## Derivative of the cost function\n", - "\n", - "With these definitions we can now compute the derivative of the cost function in terms of the weights.\n", - "\n", - "Let us specialize to the output layer $l=L$. Our cost function is" - ] - }, - { - "cell_type": "markdown", - "id": "602e81ab", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "{\\cal C}(\\boldsymbol{\\Theta}^L) = \\frac{1}{2}\\sum_{i=1}^n\\left(y_i - \\tilde{y}_i\\right)^2=\\frac{1}{2}\\sum_{i=1}^n\\left(a_i^L - y_i\\right)^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "4ac5e382", - "metadata": { - "editable": true - }, - "source": [ - "The derivative of this function with respect to the weights is" - ] - }, - { - "cell_type": "markdown", - "id": "02edfab2", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial{\\cal C}(\\boldsymbol{\\Theta}^L)}{\\partial w_{jk}^L} = \\left(a_j^L - y_j\\right)\\frac{\\partial a_j^L}{\\partial w_{jk}^{L}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "02fffe9d", - "metadata": { - "editable": true - }, - "source": [ - "The last partial derivative can easily be computed and reads (by applying the chain rule)" - ] - }, - { - "cell_type": "markdown", - "id": "f4d679cc", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial a_j^L}{\\partial w_{jk}^{L}} = \\frac{\\partial a_j^L}{\\partial z_{j}^{L}}\\frac{\\partial z_j^L}{\\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3638d432", - "metadata": { - "editable": true - }, - "source": [ - "## Simpler examples first, and automatic differentiation\n", - "\n", - "In order to understand the back propagation algorithm and its\n", - "derivation (an implementation of the chain rule), let us first digress\n", - "with some simple examples. These examples are also meant to motivate\n", - "the link with back propagation and [automatic differentiation](https://en.wikipedia.org/wiki/Automatic_differentiation)." - ] - }, - { - "cell_type": "markdown", - "id": "d3039347", - "metadata": { - "editable": true - }, - "source": [ - "## Reminder on the chain rule and gradients\n", - "\n", - "If we have a multivariate function $f(x,y)$ where $x=x(t)$ and $y=y(t)$ are functions of a variable $t$, we have that the gradient of $f$ with respect to $t$ (without the explicit unit vector components)" - ] - }, - { - "cell_type": "markdown", - "id": "f48bfb76", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{dt} = \\begin{bmatrix}\\frac{\\partial f}{\\partial x} & \\frac{\\partial f}{\\partial y} \\end{bmatrix} \\begin{bmatrix}\\frac{\\partial x}{\\partial t} \\\\ \\frac{\\partial y}{\\partial t} \\end{bmatrix}=\\frac{\\partial f}{\\partial x} \\frac{\\partial x}{\\partial t} +\\frac{\\partial f}{\\partial y} \\frac{\\partial y}{\\partial t}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "63176c54", - "metadata": { - "editable": true - }, - "source": [ - "## Multivariable functions\n", - "\n", - "If we have a multivariate function $f(x,y)$ where $x=x(t,s)$ and $y=y(t,s)$ are functions of the variables $t$ and $s$, we have that the partial derivatives" - ] - }, - { - "cell_type": "markdown", - "id": "f966f6f1", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial s}=\\frac{\\partial f}{\\partial x}\\frac{\\partial x}{\\partial s}+\\frac{\\partial f}{\\partial y}\\frac{\\partial y}{\\partial s},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "b0a5a64e", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "fedfd000", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial t}=\\frac{\\partial f}{\\partial x}\\frac{\\partial x}{\\partial t}+\\frac{\\partial f}{\\partial y}\\frac{\\partial y}{\\partial t}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "49281876", - "metadata": { - "editable": true - }, - "source": [ - "the gradient of $f$ with respect to $t$ and $s$ (without the explicit unit vector components)" - ] - }, - { - "cell_type": "markdown", - "id": "78dc9b72", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{d(s,t)} = \\begin{bmatrix}\\frac{\\partial f}{\\partial x} & \\frac{\\partial f}{\\partial y} \\end{bmatrix} \\begin{bmatrix}\\frac{\\partial x}{\\partial s} &\\frac{\\partial x}{\\partial t} \\\\ \\frac{\\partial y}{\\partial s} & \\frac{\\partial y}{\\partial t} \\end{bmatrix}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "bf854510", - "metadata": { - "editable": true - }, - "source": [ - "## Automatic differentiation through examples\n", - "\n", - "A great introduction to automatic differentiation is given by Baydin et al., see .\n", - "\n", - "Automatic differentiation is a represented by a repeated application\n", - "of the chain rule on well-known functions and allows for the\n", - "calculation of derivatives to numerical precision. It is not the same\n", - "as the calculation of symbolic derivatives via for example SymPy, nor\n", - "does it use approximative formulae based on Taylor-expansions of a\n", - "function around a given value. The latter are error prone due to\n", - "truncation errors and values of the step size $\\Delta$." - ] - }, - { - "cell_type": "markdown", - "id": "35771431", - "metadata": { - "editable": true - }, - "source": [ - "## Simple example\n", - "\n", - "Our first example is rather simple," - ] - }, - { - "cell_type": "markdown", - "id": "6570ba80", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f(x) =\\exp{x^2},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "c30b4d72", - "metadata": { - "editable": true - }, - "source": [ - "with derivative" - ] - }, - { - "cell_type": "markdown", - "id": "183d5f0b", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f'(x) =2x\\exp{x^2}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "b2363c0a", - "metadata": { - "editable": true - }, - "source": [ - "We can use SymPy to extract the pertinent lines of Python code through the following simple example" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "0b51ea21", - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "from __future__ import division\n", - "from sympy import *\n", - "x = symbols('x')\n", - "expr = exp(x*x)\n", - "simplify(expr)\n", - "derivative = diff(expr,x)\n", - "print(python(expr))\n", - "print(python(derivative))" - ] - }, - { - "cell_type": "markdown", - "id": "07e24343", - "metadata": { - "editable": true - }, - "source": [ - "## Smarter way of evaluating the above function\n", - "If we study this function, we note that we can reduce the number of operations by introducing an intermediate variable" - ] - }, - { - "cell_type": "markdown", - "id": "1337dd0f", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "a = x^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a7589947", - "metadata": { - "editable": true - }, - "source": [ - "leading to" - ] - }, - { - "cell_type": "markdown", - "id": "3586c972", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f(x) = f(a(x)) = b= \\exp{a}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "0ac52a19", - "metadata": { - "editable": true - }, - "source": [ - "We now assume that all operations can be counted in terms of equal\n", - "floating point operations. This means that in order to calculate\n", - "$f(x)$ we need first to square $x$ and then compute the exponential. We\n", - "have thus two floating point operations only." - ] - }, - { - "cell_type": "markdown", - "id": "18b67b7b", - "metadata": { - "editable": true - }, - "source": [ - "## Reducing the number of operations\n", - "\n", - "With the introduction of a precalculated quantity $a$ and thereby $f(x)$ we have that the derivative can be written as" - ] - }, - { - "cell_type": "markdown", - "id": "75f72d6b", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f'(x) = 2xb,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "ff72bef0", - "metadata": { - "editable": true - }, - "source": [ - "which reduces the number of operations from four in the orginal\n", - "expression to two. This means that if we need to compute $f(x)$ and\n", - "its derivative (a common task in optimizations), we have reduced the\n", - "number of operations from six to four in total.\n", - "\n", - "**Note** that the usage of a symbolic software like SymPy does not\n", - "include such simplifications and the calculations of the function and\n", - "the derivatives yield in general more floating point operations." - ] - }, - { - "cell_type": "markdown", - "id": "ef55737f", - "metadata": { - "editable": true - }, - "source": [ - "## Chain rule, forward and reverse modes\n", - "\n", - "In the above example we have introduced the variables $a$ and $b$, and our function is" - ] - }, - { - "cell_type": "markdown", - "id": "35ab7175", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f(x) = f(a(x)) = b= \\exp{a},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "edc79b33", - "metadata": { - "editable": true - }, - "source": [ - "with $a=x^2$. We can decompose the derivative of $f$ with respect to $x$ as" - ] - }, - { - "cell_type": "markdown", - "id": "4dc12ed8", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{dx}=\\frac{df}{db}\\frac{db}{da}\\frac{da}{dx}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "bc945b59", - "metadata": { - "editable": true - }, - "source": [ - "We note that since $b=f(x)$ that" - ] - }, - { - "cell_type": "markdown", - "id": "68eac5d0", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{db}=1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "6ea49d77", - "metadata": { - "editable": true - }, - "source": [ - "leading to" - ] - }, - { - "cell_type": "markdown", - "id": "4a65d6fd", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{dx}=\\frac{db}{da}\\frac{da}{dx}=2x\\exp{x^2},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "c66da8ef", - "metadata": { - "editable": true - }, - "source": [ - "as before." - ] - }, - { - "cell_type": "markdown", - "id": "b055e013", - "metadata": { - "editable": true - }, - "source": [ - "## Forward and reverse modes\n", - "\n", - "We have that" - ] - }, - { - "cell_type": "markdown", - "id": "006ef4f0", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{dx}=\\frac{df}{db}\\frac{db}{da}\\frac{da}{dx},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "99fd1e13", - "metadata": { - "editable": true - }, - "source": [ - "which we can rewrite either as" - ] - }, - { - "cell_type": "markdown", - "id": "d711ba8b", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{dx}=\\left[\\frac{df}{db}\\frac{db}{da}\\right]\\frac{da}{dx},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "394f38fd", - "metadata": { - "editable": true - }, - "source": [ - "or" - ] - }, - { - "cell_type": "markdown", - "id": "2f589cea", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{df}{dx}=\\frac{df}{db}\\left[\\frac{db}{da}\\frac{da}{dx}\\right].\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "783c3588", - "metadata": { - "editable": true - }, - "source": [ - "The first expression is called reverse mode (or back propagation)\n", - "since we start by evaluating the derivatives at the end point and then\n", - "propagate backwards. This is the standard way of evaluating\n", - "derivatives (gradients) when optimizing the parameters of a neural\n", - "network. In the context of deep learning this is computationally\n", - "more efficient since the output of a neural network consists of either\n", - "one or some few other output variables.\n", - "\n", - "The second equation defines the so-called **forward mode**." - ] - }, - { - "cell_type": "markdown", - "id": "d1627f43", - "metadata": { - "editable": true - }, - "source": [ - "## More complicated function\n", - "\n", - "We increase our ambitions and introduce a slightly more complicated function" - ] - }, - { - "cell_type": "markdown", - "id": "53035043", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f(x) =\\sqrt{x^2+exp{x^2}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f3293e4c", - "metadata": { - "editable": true - }, - "source": [ - "with derivative" - ] - }, - { - "cell_type": "markdown", - "id": "b6087529", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f'(x) =\\frac{x(1+\\exp{x^2})}{\\sqrt{x^2+exp{x^2}}}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "9a91562c", - "metadata": { - "editable": true - }, - "source": [ - "The corresponding SymPy code reads" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "49153549", - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "from __future__ import division\n", - "from sympy import *\n", - "x = symbols('x')\n", - "expr = sqrt(x*x+exp(x*x))\n", - "simplify(expr)\n", - "derivative = diff(expr,x)\n", - "print(python(expr))\n", - "print(python(derivative))" - ] - }, - { - "cell_type": "markdown", - "id": "3f8e08c9", - "metadata": { - "editable": true - }, - "source": [ - "## Counting the number of floating point operations\n", - "\n", - "A simple count of operations shows that we need five operations for\n", - "the function itself and ten for the derivative. Fifteen operations in total if we wish to proceed with the above codes.\n", - "\n", - "Can we reduce this to\n", - "say half the number of operations?" - ] - }, - { - "cell_type": "markdown", - "id": "9479dadf", - "metadata": { - "editable": true - }, - "source": [ - "## Defining intermediate operations\n", - "\n", - "We can indeed reduce the number of operation to half of those listed in the brute force approach above.\n", - "We define the following quantities" - ] - }, - { - "cell_type": "markdown", - "id": "9e5f867e", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "a = x^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "21ee2a8a", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "e09cf187", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "b = \\exp{x^2} = \\exp{a},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "c999c36b", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "8fbf66c6", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "c= a+b,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "dd11cc6a", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "69e9e950", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "d=f(x)=\\sqrt{c}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "970b6167", - "metadata": { - "editable": true - }, - "source": [ - "## New expression for the derivative\n", - "\n", - "With these definitions we obtain the following partial derivatives" - ] - }, - { - "cell_type": "markdown", - "id": "5655fa59", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial a}{\\partial x} = 2x,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "1c8a1f68", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "edaf4340", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial b}{\\partial a} = \\exp{a},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f39563ef", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "c3fad1fe", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial c}{\\partial a} = 1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "2f26318c", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "75e08a4f", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial c}{\\partial b} = 1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "2729f6dc", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "7ccfc31a", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial d}{\\partial c} = \\frac{1}{2\\sqrt{c}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "1e39402f", - "metadata": { - "editable": true - }, - "source": [ - "and finally" - ] - }, - { - "cell_type": "markdown", - "id": "a8313c23", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial d} = 1.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "64f5a96d", - "metadata": { - "editable": true - }, - "source": [ - "## Final derivatives\n", - "Our final derivatives are thus" - ] - }, - { - "cell_type": "markdown", - "id": "e087f8b8", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial c} = \\frac{\\partial f}{\\partial d} \\frac{\\partial d}{\\partial c} = \\frac{1}{2\\sqrt{c}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "ab9adb45", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial b} = \\frac{\\partial f}{\\partial c} \\frac{\\partial c}{\\partial b} = \\frac{1}{2\\sqrt{c}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "e7125560", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial a} = \\frac{\\partial f}{\\partial c} \\frac{\\partial c}{\\partial a}+\n", - "\\frac{\\partial f}{\\partial b} \\frac{\\partial b}{\\partial a} = \\frac{1+\\exp{a}}{2\\sqrt{c}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "6c4ad559", - "metadata": { - "editable": true - }, - "source": [ - "and finally" - ] - }, - { - "cell_type": "markdown", - "id": "b42e32a4", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial x} = \\frac{\\partial f}{\\partial a} \\frac{\\partial a}{\\partial x} = \\frac{x(1+\\exp{a})}{\\sqrt{c}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "40de97ba", - "metadata": { - "editable": true - }, - "source": [ - "which is just" - ] - }, - { - "cell_type": "markdown", - "id": "22d0d252", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial x} = \\frac{x(1+b)}{d},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "be68a064", - "metadata": { - "editable": true - }, - "source": [ - "and requires only three operations if we can reuse all intermediate variables." - ] - }, - { - "cell_type": "markdown", - "id": "ed92fb3c", - "metadata": { - "editable": true - }, - "source": [ - "## In general not this simple\n", - "\n", - "In general, see the generalization below, unless we can obtain simple\n", - "analytical expressions which we can simplify further, the final\n", - "implementation of automatic differentiation involves repeated\n", - "calculations (and thereby operations) of derivatives of elementary\n", - "functions." - ] - }, - { - "cell_type": "markdown", - "id": "b565b39a", - "metadata": { - "editable": true - }, - "source": [ - "## Automatic differentiation\n", - "\n", - "We can make this example more formal. Automatic differentiation is a\n", - "formalization of the previous example (see graph).\n", - "\n", - "We define $\\boldsymbol{x}\\in x_1,\\dots, x_l$ input variables to a given function $f(\\boldsymbol{x})$ and $x_{l+1},\\dots, x_L$ intermediate variables.\n", - "\n", - "In the above example we have only one input variable, $l=1$ and four intermediate variables, that is" - ] - }, - { - "cell_type": "markdown", - "id": "587ae22d", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\begin{bmatrix} x_1=x & x_2 = x^2=a & x_3 =\\exp{a}= b & x_4=c=a+b & x_5 = \\sqrt{c}=d \\end{bmatrix}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a54b74ca", - "metadata": { - "editable": true - }, - "source": [ - "Furthemore, for $i=l+1, \\dots, L$ (here $i=2,3,4,5$ and $f=x_L=d$), we\n", - "define the elementary functions $g_i(x_{Pa(x_i)})$ where $x_{Pa(x_i)}$ are the parent nodes of the variable $x_i$.\n", - "\n", - "In our case, we have for example for $x_3=g_3(x_{Pa(x_i)})=\\exp{a}$, that $g_3=\\exp{()}$ and $x_{Pa(x_3)}=a$." - ] - }, - { - "cell_type": "markdown", - "id": "bcfc076a", - "metadata": { - "editable": true - }, - "source": [ - "## Chain rule\n", - "\n", - "We can now compute the gradients by back-propagating the derivatives using the chain rule.\n", - "We have defined" - ] - }, - { - "cell_type": "markdown", - "id": "b4194098", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial x_L} = 1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "acc7030d", - "metadata": { - "editable": true - }, - "source": [ - "which allows us to find the derivatives of the various variables $x_i$ as" - ] - }, - { - "cell_type": "markdown", - "id": "02f92f41", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial f}{\\partial x_i} = \\sum_{x_j:x_i\\in Pa(x_j)}\\frac{\\partial f}{\\partial x_j} \\frac{\\partial x_j}{\\partial x_i}=\\sum_{x_j:x_i\\in Pa(x_j)}\\frac{\\partial f}{\\partial x_j} \\frac{\\partial g_j}{\\partial x_i}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5541dfd1", - "metadata": { - "editable": true - }, - "source": [ - "Whenever we have a function which can be expressed as a computation\n", - "graph and the various functions can be expressed in terms of\n", - "elementary functions that are differentiable, then automatic\n", - "differentiation works. The functions may not need to be elementary\n", - "functions, they could also be computer programs, although not all\n", - "programs can be automatically differentiated." - ] - }, - { - "cell_type": "markdown", - "id": "f73cf263", - "metadata": { - "editable": true - }, - "source": [ - "## First network example, simple percepetron with one input\n", - "\n", - "As yet another example we define now a simple perceptron model with\n", - "all quantities given by scalars. We consider only one input variable\n", - "$x$ and one target value $y$. We define an activation function\n", - "$\\sigma_1$ which takes as input" - ] - }, - { - "cell_type": "markdown", - "id": "4b8722cb", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "z_1 = w_1x+b_1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a604334f", - "metadata": { - "editable": true - }, - "source": [ - "where $w_1$ is the weight and $b_1$ is the bias. These are the\n", - "parameters we want to optimize. The output is $a_1=\\sigma(z_1)$ (see\n", - "graph from whiteboard notes). This output is then fed into the\n", - "**cost/loss** function, which we here for the sake of simplicity just\n", - "define as the squared error" - ] - }, - { - "cell_type": "markdown", - "id": "0017f42e", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "C(x;w_1,b_1)=\\frac{1}{2}(a_1-y)^2.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8c47d806", - "metadata": { - "editable": true - }, - "source": [ - "## Layout of a simple neural network with no hidden layer\n", - "\n", - "\n", - "\n", - "\n", - "

Figure 1:

\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "df503def", - "metadata": { - "editable": true - }, - "source": [ - "## Optimizing the parameters\n", - "\n", - "In setting up the feed forward and back propagation parts of the\n", - "algorithm, we need now the derivative of the various variables we want\n", - "to train.\n", - "\n", - "We need" - ] - }, - { - "cell_type": "markdown", - "id": "bdc97982", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_1} \\hspace{0.1cm}\\mathrm{and}\\hspace{0.1cm}\\frac{\\partial C}{\\partial b_1}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "42716985", - "metadata": { - "editable": true - }, - "source": [ - "Using the chain rule we find" - ] - }, - { - "cell_type": "markdown", - "id": "6df9aa60", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_1}=\\frac{\\partial C}{\\partial a_1}\\frac{\\partial a_1}{\\partial z_1}\\frac{\\partial z_1}{\\partial w_1}=(a_1-y)\\sigma_1'x,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "30f9e077", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "77e9d494", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial b_1}=\\frac{\\partial C}{\\partial a_1}\\frac{\\partial a_1}{\\partial z_1}\\frac{\\partial z_1}{\\partial b_1}=(a_1-y)\\sigma_1',\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "1136c644", - "metadata": { - "editable": true - }, - "source": [ - "which we later will just define as" - ] - }, - { - "cell_type": "markdown", - "id": "b9f253ba", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial a_1}\\frac{\\partial a_1}{\\partial z_1}=\\delta_1.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "14d41c44", - "metadata": { - "editable": true - }, - "source": [ - "## Adding a hidden layer\n", - "\n", - "We change our simple model to (see graph)\n", - "a network with just one hidden layer but with scalar variables only.\n", - "\n", - "Our output variable changes to $a_2$ and $a_1$ is now the output from the hidden node and $a_0=x$.\n", - "We have then" - ] - }, - { - "cell_type": "markdown", - "id": "d7c607f5", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "z_1 = w_1a_0+b_1 \\hspace{0.1cm} \\wedge a_1 = \\sigma_1(z_1),\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "609e28e0", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "z_2 = w_2a_1+b_2 \\hspace{0.1cm} \\wedge a_2 = \\sigma_2(z_2),\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "494580d5", - "metadata": { - "editable": true - }, - "source": [ - "and the cost function" - ] - }, - { - "cell_type": "markdown", - "id": "03665a6f", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "C(x;\\boldsymbol{\\Theta})=\\frac{1}{2}(a_2-y)^2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "911b5d2c", - "metadata": { - "editable": true - }, - "source": [ - "with $\\boldsymbol{\\Theta}=[w_1,w_2,b_1,b_2]$." - ] - }, - { - "cell_type": "markdown", - "id": "91e4f869", - "metadata": { - "editable": true - }, - "source": [ - "## Layout of a simple neural network with one hidden layer\n", - "\n", - "\n", - "\n", - "\n", - "

Figure 1:

\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "43efdd27", - "metadata": { - "editable": true - }, - "source": [ - "## The derivatives\n", - "\n", - "The derivatives are now, using the chain rule again" - ] - }, - { - "cell_type": "markdown", - "id": "25d99018", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_2}=\\frac{\\partial C}{\\partial a_2}\\frac{\\partial a_2}{\\partial z_2}\\frac{\\partial z_2}{\\partial w_2}=(a_2-y)\\sigma_2'a_1=\\delta_2a_1,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "6924f790", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial b_2}=\\frac{\\partial C}{\\partial a_2}\\frac{\\partial a_2}{\\partial z_2}\\frac{\\partial z_2}{\\partial b_2}=(a_2-y)\\sigma_2'=\\delta_2,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f457fe37", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_1}=\\frac{\\partial C}{\\partial a_2}\\frac{\\partial a_2}{\\partial z_2}\\frac{\\partial z_2}{\\partial a_1}\\frac{\\partial a_1}{\\partial z_1}\\frac{\\partial z_1}{\\partial w_1}=(a_2-y)\\sigma_2'a_1\\sigma_1'a_0,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "81e40678", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial b_1}=\\frac{\\partial C}{\\partial a_2}\\frac{\\partial a_2}{\\partial z_2}\\frac{\\partial z_2}{\\partial a_1}\\frac{\\partial a_1}{\\partial z_1}\\frac{\\partial z_1}{\\partial b_1}=(a_2-y)\\sigma_2'\\sigma_1'=\\delta_1.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "c954b1f9", - "metadata": { - "editable": true - }, - "source": [ - "Can you generalize this to more than one hidden layer?" - ] - }, - { - "cell_type": "markdown", - "id": "87d10fa3", - "metadata": { - "editable": true - }, - "source": [ - "## Important observations\n", - "\n", - "From the above equations we see that the derivatives of the activation\n", - "functions play a central role. If they vanish, the training may\n", - "stop. This is called the vanishing gradient problem, see discussions below. If they become\n", - "large, the parameters $w_i$ and $b_i$ may simply go to infinity. This\n", - "is referenced as the exploding gradient problem." - ] - }, - { - "cell_type": "markdown", - "id": "c20ef010", - "metadata": { - "editable": true - }, - "source": [ - "## The training\n", - "\n", - "The training of the parameters is done through various gradient descent approximations with" - ] - }, - { - "cell_type": "markdown", - "id": "e9de19ea", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "w_{i}\\leftarrow w_{i}- \\eta \\delta_i a_{i-1},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3487e8b8", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "7baa62bc", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "b_i \\leftarrow b_i-\\eta \\delta_i,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a3c1590a", - "metadata": { - "editable": true - }, - "source": [ - "with $\\eta$ is the learning rate.\n", - "\n", - "One iteration consists of one feed forward step and one back-propagation step. Each back-propagation step does one update of the parameters $\\boldsymbol{\\Theta}$.\n", - "\n", - "For the first hidden layer $a_{i-1}=a_0=x$ for this simple model." - ] - }, - { - "cell_type": "markdown", - "id": "3c3dc625", - "metadata": { - "editable": true - }, - "source": [ - "## Code example\n", - "\n", - "The code here implements the above model with one hidden layer and\n", - "scalar variables for the same function we studied in the previous\n", - "example. The code is however set up so that we can add multiple\n", - "inputs $x$ and target values $y$. Note also that we have the\n", - "possibility of defining a feature matrix $\\boldsymbol{X}$ with more than just\n", - "one column for the input values. This will turn useful in our next example. We have also defined matrices and vectors for all of our operations although it is not necessary here." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "e9fb1fc9", - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "# We use the Sigmoid function as activation function\n", - "def sigmoid(z):\n", - " return 1.0/(1.0+np.exp(-z))\n", - "\n", - "def forwardpropagation(x):\n", - " # weighted sum of inputs to the hidden layer\n", - " z_1 = np.matmul(x, w_1) + b_1\n", - " # activation in the hidden layer\n", - " a_1 = sigmoid(z_1)\n", - " # weighted sum of inputs to the output layer\n", - " z_2 = np.matmul(a_1, w_2) + b_2\n", - " a_2 = z_2\n", - " return a_1, a_2\n", - "\n", - "def backpropagation(x, y):\n", - " a_1, a_2 = forwardpropagation(x)\n", - " # parameter delta for the output layer, note that a_2=z_2 and its derivative wrt z_2 is just 1\n", - " delta_2 = a_2 - y\n", - " print(0.5*((a_2-y)**2))\n", - " # delta for the hidden layer\n", - " delta_1 = np.matmul(delta_2, w_2.T) * a_1 * (1 - a_1)\n", - " # gradients for the output layer\n", - " output_weights_gradient = np.matmul(a_1.T, delta_2)\n", - " output_bias_gradient = np.sum(delta_2, axis=0)\n", - " # gradient for the hidden layer\n", - " hidden_weights_gradient = np.matmul(x.T, delta_1)\n", - " hidden_bias_gradient = np.sum(delta_1, axis=0)\n", - " return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient\n", - "\n", - "\n", - "# ensure the same random numbers appear every time\n", - "np.random.seed(0)\n", - "# Input variable\n", - "x = np.array([4.0],dtype=np.float64)\n", - "# Target values\n", - "y = 2*x+1.0 \n", - "\n", - "# Defining the neural network, only scalars here\n", - "n_inputs = x.shape\n", - "n_features = 1\n", - "n_hidden_neurons = 1\n", - "n_outputs = 1\n", - "\n", - "# Initialize the network\n", - "# weights and bias in the hidden layer\n", - "w_1 = np.random.randn(n_features, n_hidden_neurons)\n", - "b_1 = np.zeros(n_hidden_neurons) + 0.01\n", - "\n", - "# weights and bias in the output layer\n", - "w_2 = np.random.randn(n_hidden_neurons, n_outputs)\n", - "b_2 = np.zeros(n_outputs) + 0.01\n", - "\n", - "eta = 0.1\n", - "for i in range(50):\n", - " # calculate gradients\n", - " derivW2, derivB2, derivW1, derivB1 = backpropagation(x, y)\n", - " # update weights and biases\n", - " w_2 -= eta * derivW2\n", - " b_2 -= eta * derivB2\n", - " w_1 -= eta * derivW1\n", - " b_1 -= eta * derivB1" - ] - }, - { - "cell_type": "markdown", - "id": "351debb8", - "metadata": { - "editable": true - }, - "source": [ - "We see that after some few iterations (the results do depend on the learning rate however), we get an error which is rather small." - ] - }, - { - "cell_type": "markdown", - "id": "c6579e36", - "metadata": { - "editable": true - }, - "source": [ - "## Exercise 1: Including more data\n", - "\n", - "Try to increase the amount of input and\n", - "target/output data. Try also to perform calculations for more values\n", - "of the learning rates. Feel free to add either hyperparameters with an\n", - "$l_1$ norm or an $l_2$ norm and discuss your results.\n", - "Discuss your results as functions of the amount of training data and various learning rates.\n", - "\n", - "**Challenge:** Try to change the activation functions and replace the hard-coded analytical expressions with automatic derivation via either **autograd** or **JAX**." - ] - }, - { - "cell_type": "markdown", - "id": "2c80a4b1", - "metadata": { - "editable": true - }, - "source": [ - "## Simple neural network and the back propagation equations\n", - "\n", - "Let us now try to increase our level of ambition and attempt at setting \n", - "up the equations for a neural network with two input nodes, one hidden\n", - "layer with two hidden nodes and one output layer with one output node/neuron only (see graph)..\n", - "\n", - "We need to define the following parameters and variables with the input layer (layer $(0)$) \n", - "where we label the nodes $x_0$ and $x_1$" - ] - }, - { - "cell_type": "markdown", - "id": "c834edc8", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "x_0 = a_0^{(0)} \\wedge x_1 = a_1^{(0)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "79bd199b", - "metadata": { - "editable": true - }, - "source": [ - "The hidden layer (layer $(1)$) has nodes which yield the outputs $a_0^{(1)}$ and $a_1^{(1)}$) with weight $\\boldsymbol{w}$ and bias $\\boldsymbol{b}$ parameters" - ] - }, - { - "cell_type": "markdown", - "id": "0a856855", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "w_{ij}^{(1)}=\\left\\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)}\\right\\} \\wedge b^{(1)}=\\left\\{b_0^{(1)},b_1^{(1)}\\right\\}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "54280198", - "metadata": { - "editable": true - }, - "source": [ - "## Layout of a simple neural network with two input nodes, one hidden layer and one output node\n", - "\n", - "\n", - "\n", - "\n", - "

Figure 1:

\n", - "" - ] - }, - { - "cell_type": "markdown", - "id": "b2cee09c", - "metadata": { - "editable": true - }, - "source": [ - "## The ouput layer\n", - "\n", - "Finally, we have the ouput layer given by layer label $(2)$ with output $a^{(2)}$ and weights and biases to be determined given by the variables" - ] - }, - { - "cell_type": "markdown", - "id": "710131c9", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "w_{i}^{(2)}=\\left\\{w_{0}^{(2)},w_{1}^{(2)}\\right\\} \\wedge b^{(2)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "cd8b54e5", - "metadata": { - "editable": true - }, - "source": [ - "Our output is $\\tilde{y}=a^{(2)}$ and we define a generic cost function $C(a^{(2)},y;\\boldsymbol{\\Theta})$ where $y$ is the target value (a scalar here).\n", - "The parameters we need to optimize are given by" - ] - }, - { - "cell_type": "markdown", - "id": "8998ad11", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\boldsymbol{\\Theta}=\\left\\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)},w_{0}^{(2)},w_{1}^{(2)},b_0^{(1)},b_1^{(1)},b^{(2)}\\right\\}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "7d430cf7", - "metadata": { - "editable": true - }, - "source": [ - "## Compact expressions\n", - "\n", - "We can define the inputs to the activation functions for the various layers in terms of various matrix-vector multiplications and vector additions.\n", - "The inputs to the first hidden layer are" - ] - }, - { - "cell_type": "markdown", - "id": "9b5a6c95", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\begin{bmatrix}z_0^{(1)} \\\\ z_1^{(1)} \\end{bmatrix}=\\begin{bmatrix}w_{00}^{(1)} & w_{01}^{(1)}\\\\ w_{10}^{(1)} &w_{11}^{(1)} \\end{bmatrix}\\begin{bmatrix}a_0^{(0)} \\\\ a_1^{(0)} \\end{bmatrix}+\\begin{bmatrix}b_0^{(1)} \\\\ b_1^{(1)} \\end{bmatrix},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "31d044d8", - "metadata": { - "editable": true - }, - "source": [ - "with outputs" - ] - }, - { - "cell_type": "markdown", - "id": "f5125cb7", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\begin{bmatrix}a_0^{(1)} \\\\ a_1^{(1)} \\end{bmatrix}=\\begin{bmatrix}\\sigma^{(1)}(z_0^{(1)}) \\\\ \\sigma^{(1)}(z_1^{(1)}) \\end{bmatrix}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "0eed1fab", - "metadata": { - "editable": true - }, - "source": [ - "## Output layer\n", - "\n", - "For the final output layer we have the inputs to the final activation function" - ] - }, - { - "cell_type": "markdown", - "id": "9a9811d2", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "z^{(2)} = w_{0}^{(2)}a_0^{(1)} +w_{1}^{(2)}a_1^{(1)}+b^{(2)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "98bf5097", - "metadata": { - "editable": true - }, - "source": [ - "resulting in the output" - ] - }, - { - "cell_type": "markdown", - "id": "e749c895", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "a^{(2)}=\\sigma^{(2)}(z^{(2)}).\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "ea6692ce", - "metadata": { - "editable": true - }, - "source": [ - "## Explicit derivatives\n", - "\n", - "In total we have nine parameters which we need to train. Using the\n", - "chain rule (or just the back-propagation algorithm) we can find all\n", - "derivatives. Since we will use automatic differentiation in reverse\n", - "mode, we start with the derivatives of the cost function with respect\n", - "to the parameters of the output layer, namely" - ] - }, - { - "cell_type": "markdown", - "id": "bf74eae4", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_{i}^{(2)}}=\\frac{\\partial C}{\\partial a^{(2)}}\\frac{\\partial a^{(2)}}{\\partial z^{(2)}}\\frac{\\partial z^{(2)}}{\\partial w_{i}^{(2)}}=\\delta^{(2)}a_i^{(1)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "d590dc50", - "metadata": { - "editable": true - }, - "source": [ - "with" - ] - }, - { - "cell_type": "markdown", - "id": "eb0b8e3c", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta^{(2)}=\\frac{\\partial C}{\\partial a^{(2)}}\\frac{\\partial a^{(2)}}{\\partial z^{(2)}}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "7928cd11", - "metadata": { - "editable": true - }, - "source": [ - "and finally" - ] - }, - { - "cell_type": "markdown", - "id": "8fc852e0", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial b^{(2)}}=\\frac{\\partial C}{\\partial a^{(2)}}\\frac{\\partial a^{(2)}}{\\partial z^{(2)}}\\frac{\\partial z^{(2)}}{\\partial b^{(2)}}=\\delta^{(2)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "634713ba", - "metadata": { - "editable": true - }, - "source": [ - "## Derivatives of the hidden layer\n", - "\n", - "Using the chain rule we have the following expressions for say one of the weight parameters (it is easy to generalize to the other weight parameters)" - ] - }, - { - "cell_type": "markdown", - "id": "0f6ca3e6", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_{00}^{(1)}}=\\frac{\\partial C}{\\partial a^{(2)}}\\frac{\\partial a^{(2)}}{\\partial z^{(2)}}\n", - "\\frac{\\partial z^{(2)}}{\\partial z_0^{(1)}}\\frac{\\partial z_0^{(1)}}{\\partial w_{00}^{(1)}}= \\delta^{(2)}\\frac{\\partial z^{(2)}}{\\partial z_0^{(1)}}\\frac{\\partial z_0^{(1)}}{\\partial w_{00}^{(1)}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3b54e63f", - "metadata": { - "editable": true - }, - "source": [ - "which, noting that" - ] - }, - { - "cell_type": "markdown", - "id": "a69c61ff", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "z^{(2)} =w_0^{(2)}a_0^{(1)}+w_1^{(2)}a_1^{(1)}+b^{(2)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a73b8fe2", - "metadata": { - "editable": true - }, - "source": [ - "allows us to rewrite" - ] - }, - { - "cell_type": "markdown", - "id": "093c845d", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial z^{(2)}}{\\partial z_0^{(1)}}\\frac{\\partial z_0^{(1)}}{\\partial w_{00}^{(1)}}=w_0^{(2)}\\frac{\\partial a_0^{(1)}}{\\partial z_0^{(1)}}a_0^{(1)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "dcd12209", - "metadata": { - "editable": true - }, - "source": [ - "## Final expression\n", - "Defining" - ] - }, - { - "cell_type": "markdown", - "id": "5d5e8985", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_0^{(1)}=w_0^{(2)}\\frac{\\partial a_0^{(1)}}{\\partial z_0^{(1)}}\\delta^{(2)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "506f74bf", - "metadata": { - "editable": true - }, - "source": [ - "we have" - ] - }, - { - "cell_type": "markdown", - "id": "b474afaa", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_{00}^{(1)}}=\\delta_0^{(1)}a_0^{(1)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "7d14d370", - "metadata": { - "editable": true - }, - "source": [ - "Similarly, we obtain" - ] - }, - { - "cell_type": "markdown", - "id": "ca679e05", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_{01}^{(1)}}=\\delta_0^{(1)}a_1^{(1)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "251a03fd", - "metadata": { - "editable": true - }, - "source": [ - "## Completing the list\n", - "\n", - "Similarly, we find" - ] - }, - { - "cell_type": "markdown", - "id": "b7575ec0", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_{10}^{(1)}}=\\delta_1^{(1)}a_0^{(1)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "02453de3", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "4e989854", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial w_{11}^{(1)}}=\\delta_1^{(1)}a_1^{(1)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "05a25565", - "metadata": { - "editable": true - }, - "source": [ - "where we have defined" - ] - }, - { - "cell_type": "markdown", - "id": "d9e571d7", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_1^{(1)}=w_1^{(2)}\\frac{\\partial a_1^{(1)}}{\\partial z_1^{(1)}}\\delta^{(2)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f96632e9", - "metadata": { - "editable": true - }, - "source": [ - "## Final expressions for the biases of the hidden layer\n", - "\n", - "For the sake of completeness, we list the derivatives of the biases, which are" - ] - }, - { - "cell_type": "markdown", - "id": "e15002e0", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial b_{0}^{(1)}}=\\delta_0^{(1)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8c683755", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "da56a290", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial C}{\\partial b_{1}^{(1)}}=\\delta_1^{(1)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "e42a9d6c", - "metadata": { - "editable": true - }, - "source": [ - "As we will see below, these expressions can be generalized in a more compact form." - ] - }, - { - "cell_type": "markdown", - "id": "21dd6563", - "metadata": { - "editable": true - }, - "source": [ - "## Gradient expressions\n", - "\n", - "For this specific model, with just one output node and two hidden\n", - "nodes, the gradient descent equations take the following form for output layer" - ] - }, - { - "cell_type": "markdown", - "id": "67fc0189", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "w_{i}^{(2)}\\leftarrow w_{i}^{(2)}- \\eta \\delta^{(2)} a_{i}^{(1)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "daddd95e", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "5bf8af85", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "b^{(2)} \\leftarrow b^{(2)}-\\eta \\delta^{(2)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5a72ea0a", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "edd32da2", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "w_{ij}^{(1)}\\leftarrow w_{ij}^{(1)}- \\eta \\delta_{i}^{(1)} a_{j}^{(0)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "75c31af5", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "c037d92b", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "b_{i}^{(1)} \\leftarrow b_{i}^{(1)}-\\eta \\delta_{i}^{(1)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5937fd51", - "metadata": { - "editable": true - }, - "source": [ - "where $\\eta$ is the learning rate." - ] - }, - { - "cell_type": "markdown", - "id": "3f0f6cd3", - "metadata": { - "editable": true - }, - "source": [ - "## Exercise 2: Extended program\n", - "\n", - "We extend our simple code to a function which depends on two variable $x_0$ and $x_1$, that is" - ] - }, - { - "cell_type": "markdown", - "id": "057366c1", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "y=f(x_0,x_1)=x_0^2+3x_0x_1+x_1^2+5.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "293fa11b", - "metadata": { - "editable": true - }, - "source": [ - "We feed our network with $n=100$ entries $x_0$ and $x_1$. We have thus two features represented by these variable and an input matrix/design matrix $\\boldsymbol{X}\\in \\mathbf{R}^{n\\times 2}$" - ] - }, - { - "cell_type": "markdown", - "id": "d652c45d", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\boldsymbol{X}=\\begin{bmatrix} x_{00} & x_{01} \\\\ x_{00} & x_{01} \\\\ x_{10} & x_{11} \\\\ x_{20} & x_{21} \\\\ \\dots & \\dots \\\\ \\dots & \\dots \\\\ x_{n-20} & x_{n-21} \\\\ x_{n-10} & x_{n-11} \\end{bmatrix}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8ca9d167", - "metadata": { - "editable": true - }, - "source": [ - "Write a code, based on the previous code examples, which takes as input these data and fit the above function.\n", - "You can extend your code to include automatic differentiation.\n", - "\n", - "With these examples, we are now ready to embark upon the writing of more a general code for neural networks." - ] - }, - { - "cell_type": "markdown", - "id": "8fed1e03", - "metadata": { - "editable": true - }, - "source": [ - "## Getting serious, the back propagation equations for a neural network\n", - "\n", - "Now it is time to move away from one node in each layer only. Our inputs are also represented either by several inputs.\n", - "\n", - "We have thus" - ] - }, - { - "cell_type": "markdown", - "id": "6394a2a5", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial{\\cal C}((\\boldsymbol{\\Theta}^L)}{\\partial w_{jk}^L} = \\left(a_j^L - y_j\\right)a_j^L(1-a_j^L)a_k^{L-1},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "c2e22893", - "metadata": { - "editable": true - }, - "source": [ - "Defining" - ] - }, - { - "cell_type": "markdown", - "id": "5e054d69", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^L = a_j^L(1-a_j^L)\\left(a_j^L - y_j\\right) = \\sigma'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "dd5f9a8d", - "metadata": { - "editable": true - }, - "source": [ - "and using the Hadamard product of two vectors we can write this as" - ] - }, - { - "cell_type": "markdown", - "id": "ff6e8f86", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\boldsymbol{\\delta}^L = \\sigma'(\\hat{z}^L)\\circ\\frac{\\partial {\\cal C}}{\\partial (\\boldsymbol{a}^L)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "6e186667", - "metadata": { - "editable": true - }, - "source": [ - "## Analyzing the last results\n", - "\n", - "This is an important expression. The second term on the right handside\n", - "measures how fast the cost function is changing as a function of the $j$th\n", - "output activation. If, for example, the cost function doesn't depend\n", - "much on a particular output node $j$, then $\\delta_j^L$ will be small,\n", - "which is what we would expect. The first term on the right, measures\n", - "how fast the activation function $f$ is changing at a given activation\n", - "value $z_j^L$." - ] - }, - { - "cell_type": "markdown", - "id": "0e0a514f", - "metadata": { - "editable": true - }, - "source": [ - "## More considerations\n", - "\n", - "Notice that everything in the above equations is easily computed. In\n", - "particular, we compute $z_j^L$ while computing the behaviour of the\n", - "network, and it is only a small additional overhead to compute\n", - "$\\sigma'(z^L_j)$. The exact form of the derivative with respect to the\n", - "output depends on the form of the cost function.\n", - "However, provided the cost function is known there should be little\n", - "trouble in calculating" - ] - }, - { - "cell_type": "markdown", - "id": "e8259ee9", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3c817881", - "metadata": { - "editable": true - }, - "source": [ - "With the definition of $\\delta_j^L$ we have a more compact definition of the derivative of the cost function in terms of the weights, namely" - ] - }, - { - "cell_type": "markdown", - "id": "0f3e5b1c", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\frac{\\partial{\\cal C}}{\\partial w_{jk}^L} = \\delta_j^La_k^{L-1}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "4e14ef60", - "metadata": { - "editable": true - }, - "source": [ - "## Derivatives in terms of $z_j^L$\n", - "\n", - "It is also easy to see that our previous equation can be written as" - ] - }, - { - "cell_type": "markdown", - "id": "886fbebf", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^L =\\frac{\\partial {\\cal C}}{\\partial z_j^L}= \\frac{\\partial {\\cal C}}{\\partial a_j^L}\\frac{\\partial a_j^L}{\\partial z_j^L},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "16d62157", - "metadata": { - "editable": true - }, - "source": [ - "which can also be interpreted as the partial derivative of the cost function with respect to the biases $b_j^L$, namely" - ] - }, - { - "cell_type": "markdown", - "id": "4a81d6b5", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^L = \\frac{\\partial {\\cal C}}{\\partial b_j^L}\\frac{\\partial b_j^L}{\\partial z_j^L}=\\frac{\\partial {\\cal C}}{\\partial b_j^L},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "0bcee50c", - "metadata": { - "editable": true - }, - "source": [ - "That is, the error $\\delta_j^L$ is exactly equal to the rate of change of the cost function as a function of the bias." - ] - }, - { - "cell_type": "markdown", - "id": "0ed7f7a0", - "metadata": { - "editable": true - }, - "source": [ - "## Bringing it together\n", - "\n", - "We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are" - ] - }, - { - "cell_type": "markdown", - "id": "a502b908", - "metadata": { - "editable": true - }, - "source": [ - "\n", - "
\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\delta_j^La_k^{L-1},\n", - "\\label{_auto1} \\tag{2}\n", - "\\end{equation}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "fa4de05b", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "cea42eaf", - "metadata": { - "editable": true - }, - "source": [ - "\n", - "
\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\delta_j^L = \\sigma'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)},\n", - "\\label{_auto2} \\tag{3}\n", - "\\end{equation}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "d04fa6e6", - "metadata": { - "editable": true - }, - "source": [ - "and" - ] - }, - { - "cell_type": "markdown", - "id": "8716ad2e", - "metadata": { - "editable": true - }, - "source": [ - "\n", - "
\n", - "\n", - "$$\n", - "\\begin{equation}\n", - "\\delta_j^L = \\frac{\\partial {\\cal C}}{\\partial b_j^L},\n", - "\\label{_auto3} \\tag{4}\n", - "\\end{equation}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "f64753b2", - "metadata": { - "editable": true - }, - "source": [ - "## Final back propagating equation\n", - "\n", - "We have that (replacing $L$ with a general layer $l$)" - ] - }, - { - "cell_type": "markdown", - "id": "4ad6d6d3", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^l =\\frac{\\partial {\\cal C}}{\\partial z_j^l}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "a8d42ee3", - "metadata": { - "editable": true - }, - "source": [ - "We want to express this in terms of the equations for layer $l+1$." - ] - }, - { - "cell_type": "markdown", - "id": "0628c4b8", - "metadata": { - "editable": true - }, - "source": [ - "## Using the chain rule and summing over all $k$ entries\n", - "\n", - "We obtain" - ] - }, - { - "cell_type": "markdown", - "id": "0868f3d3", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^l =\\sum_k \\frac{\\partial {\\cal C}}{\\partial z_k^{l+1}}\\frac{\\partial z_k^{l+1}}{\\partial z_j^{l}}=\\sum_k \\delta_k^{l+1}\\frac{\\partial z_k^{l+1}}{\\partial z_j^{l}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "89190c24", - "metadata": { - "editable": true - }, - "source": [ - "and recalling that" - ] - }, - { - "cell_type": "markdown", - "id": "96af414a", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "z_j^{l+1} = \\sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "fe790abf", - "metadata": { - "editable": true - }, - "source": [ - "with $M_l$ being the number of nodes in layer $l$, we obtain" - ] - }, - { - "cell_type": "markdown", - "id": "ece1f6fe", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^l =\\sum_k \\delta_k^{l+1}w_{kj}^{l+1}\\sigma'(z_j^l),\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "9cafdde6", - "metadata": { - "editable": true - }, - "source": [ - "This is our final equation.\n", - "\n", - "We are now ready to set up the algorithm for back propagation and learning the weights and biases." - ] - }, - { - "cell_type": "markdown", - "id": "0766f482", - "metadata": { - "editable": true - }, - "source": [ - "## Setting up the back propagation algorithm\n", - "\n", - "The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.\n", - "\n", - "**First**, we set up the input data $\\hat{x}$ and the activations\n", - "$\\hat{z}_1$ of the input layer and compute the activation function and\n", - "the pertinent outputs $\\hat{a}^1$.\n", - "\n", - "**Secondly**, we perform then the feed forward till we reach the output\n", - "layer and compute all $\\hat{z}_l$ of the input layer and compute the\n", - "activation function and the pertinent outputs $\\hat{a}^l$ for\n", - "$l=1,2,3,\\dots,L$.\n", - "\n", - "**Notation**: The first hidden layer has $l=1$ as label and the final output layer has $l=L$." - ] - }, - { - "cell_type": "markdown", - "id": "e29ae382", - "metadata": { - "editable": true - }, - "source": [ - "## Setting up the back propagation algorithm, part 2\n", - "\n", - "Thereafter we compute the ouput error $\\hat{\\delta}^L$ by computing all" - ] - }, - { - "cell_type": "markdown", - "id": "518b6578", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^L = \\sigma'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "4f804851", - "metadata": { - "editable": true - }, - "source": [ - "Then we compute the back propagate error for each $l=L-1,L-2,\\dots,1$ as" - ] - }, - { - "cell_type": "markdown", - "id": "359aae81", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^l = \\sum_k \\delta_k^{l+1}w_{kj}^{l+1}\\sigma'(z_j^l).\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "70123228", - "metadata": { - "editable": true - }, - "source": [ - "## Setting up the Back propagation algorithm, part 3\n", - "\n", - "Finally, we update the weights and the biases using gradient descent\n", - "for each $l=L-1,L-2,\\dots,1$ and update the weights and biases\n", - "according to the rules" - ] - }, - { - "cell_type": "markdown", - "id": "2df5a3de", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "w_{jk}^l\\leftarrow = w_{jk}^l- \\eta \\delta_j^la_k^{l-1},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "8081e4e4", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "b_j^l \\leftarrow b_j^l-\\eta \\frac{\\partial {\\cal C}}{\\partial b_j^l}=b_j^l-\\eta \\delta_j^l,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "3c40603c", - "metadata": { - "editable": true - }, - "source": [ - "with $\\eta$ being the learning rate." - ] - }, - { - "cell_type": "markdown", - "id": "26de0b47", - "metadata": { - "editable": true - }, - "source": [ - "## Updating the gradients\n", - "\n", - "With the back propagate error for each $l=L-1,L-2,\\dots,1$ as" - ] - }, - { - "cell_type": "markdown", - "id": "a172a64a", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "\\delta_j^l = \\sum_k \\delta_k^{l+1}w_{kj}^{l+1}sigma'(z_j^l),\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "dfd6fc88", - "metadata": { - "editable": true - }, - "source": [ - "we update the weights and the biases using gradient descent for each $l=L-1,L-2,\\dots,1$ and update the weights and biases according to the rules" - ] - }, - { - "cell_type": "markdown", - "id": "a7df4398", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "w_{jk}^l\\leftarrow = w_{jk}^l- \\eta \\delta_j^la_k^{l-1},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "cfd24fc1", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "b_j^l \\leftarrow b_j^l-\\eta \\frac{\\partial {\\cal C}}{\\partial b_j^l}=b_j^l-\\eta \\delta_j^l,\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "869c3364", - "metadata": { - "editable": true - }, - "source": [ - "### Activation functions\n", - "\n", - "A property that characterizes a neural network, other than its\n", - "connectivity, is the choice of activation function(s). As described\n", - "in, the following restrictions are imposed on an activation function\n", - "for a FFNN to fulfill the universal approximation theorem\n", - "\n", - " * Non-constant\n", - "\n", - " * Bounded\n", - "\n", - " * Monotonically-increasing\n", - "\n", - " * Continuous" - ] - }, - { - "cell_type": "markdown", - "id": "91102a3c", - "metadata": { - "editable": true - }, - "source": [ - "### Activation functions, Logistic and Hyperbolic ones\n", - "\n", - "The second requirement excludes all linear functions. Furthermore, in\n", - "a MLP with only linear activation functions, each layer simply\n", - "performs a linear transformation of its inputs.\n", - "\n", - "Regardless of the number of layers, the output of the NN will be\n", - "nothing but a linear function of the inputs. Thus we need to introduce\n", - "some kind of non-linearity to the NN to be able to fit non-linear\n", - "functions Typical examples are the logistic *Sigmoid*" - ] - }, - { - "cell_type": "markdown", - "id": "9609f422", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f(x) = \\frac{1}{1 + e^{-x}},\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "cdd8d562", - "metadata": { - "editable": true - }, - "source": [ - "and the *hyperbolic tangent* function" - ] - }, - { - "cell_type": "markdown", - "id": "118a47f2", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "f(x) = \\tanh(x)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "5d6387b5", - "metadata": { - "editable": true - }, - "source": [ - "### Relevance\n", - "\n", - "The *sigmoid* function are more biologically plausible because the\n", - "output of inactive neurons are zero. Such activation function are\n", - "called *one-sided*. However, it has been shown that the hyperbolic\n", - "tangent performs better than the sigmoid for training MLPs. has\n", - "become the most popular for *deep neural networks*" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "33449cca", - "metadata": { - "collapsed": false, - "editable": true - }, - "outputs": [], - "source": [ - "\"\"\"The sigmoid function (or the logistic curve) is a \n", - "function that takes any real number, z, and outputs a number (0,1).\n", - "It is useful in neural networks for assigning weights on a relative scale.\n", - "The value z is the weighted sum of parameters involved in the learning algorithm.\"\"\"\n", - "\n", - "import numpy\n", - "import matplotlib.pyplot as plt\n", - "import math as mt\n", - "\n", - "z = numpy.arange(-5, 5, .1)\n", - "sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z)))\n", - "sigma = sigma_fn(z)\n", - "\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(z, sigma)\n", - "ax.set_ylim([-0.1, 1.1])\n", - "ax.set_xlim([-5,5])\n", - "ax.grid(True)\n", - "ax.set_xlabel('z')\n", - "ax.set_title('sigmoid function')\n", - "\n", - "plt.show()\n", - "\n", - "\"\"\"Step Function\"\"\"\n", - "z = numpy.arange(-5, 5, .02)\n", - "step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0)\n", - "step = step_fn(z)\n", - "\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(z, step)\n", - "ax.set_ylim([-0.5, 1.5])\n", - "ax.set_xlim([-5,5])\n", - "ax.grid(True)\n", - "ax.set_xlabel('z')\n", - "ax.set_title('step function')\n", - "\n", - "plt.show()\n", - "\n", - "\"\"\"Sine Function\"\"\"\n", - "z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)\n", - "t = numpy.sin(z)\n", - "\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(z, t)\n", - "ax.set_ylim([-1.0, 1.0])\n", - "ax.set_xlim([-2*mt.pi,2*mt.pi])\n", - "ax.grid(True)\n", - "ax.set_xlabel('z')\n", - "ax.set_title('sine function')\n", - "\n", - "plt.show()\n", - "\n", - "\"\"\"Plots a graph of the squashing function used by a rectified linear\n", - "unit\"\"\"\n", - "z = numpy.arange(-2, 2, .1)\n", - "zero = numpy.zeros(len(z))\n", - "y = numpy.max([zero, z], axis=0)\n", - "\n", - "fig = plt.figure()\n", - "ax = fig.add_subplot(111)\n", - "ax.plot(z, y)\n", - "ax.set_ylim([-2.0, 2.0])\n", - "ax.set_xlim([-2.0, 2.0])\n", - "ax.grid(True)\n", - "ax.set_xlabel('z')\n", - "ax.set_title('Rectified linear unit')\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "e8fafa8a", - "metadata": { - "editable": true - }, - "source": [ - "## Fine-tuning neural network hyperparameters\n", - "\n", - "The flexibility of neural networks is also one of their main\n", - "drawbacks: there are many hyperparameters to tweak. Not only can you\n", - "use any imaginable network topology (how neurons/nodes are\n", - "interconnected), but even in a simple FFNN you can change the number\n", - "of layers, the number of neurons per layer, the type of activation\n", - "function to use in each layer, the weight initialization logic, the\n", - "stochastic gradient optmized and much more. How do you know what\n", - "combination of hyperparameters is the best for your task?\n", - "\n", - "* You can use grid search with cross-validation to find the right hyperparameters.\n", - "\n", - "However,since there are many hyperparameters to tune, and since\n", - "training a neural network on a large dataset takes a lot of time, you\n", - "will only be able to explore a tiny part of the hyperparameter space.\n", - "\n", - "* You can use randomized search.\n", - "\n", - "* Or use tools like [Oscar](http://oscar.calldesk.ai/), which implements more complex algorithms to help you find a good set of hyperparameters quickly." - ] - }, - { - "cell_type": "markdown", - "id": "00965f5d", - "metadata": { - "editable": true - }, - "source": [ - "## Hidden layers\n", - "\n", - "For many problems you can start with just one or two hidden layers and\n", - "it will work just fine. For the MNIST data set you ca easily get a\n", - "high accuracy using just one hidden layer with a few hundred neurons.\n", - "You can reach for this data set above 98% accuracy using two hidden\n", - "layers with the same total amount of neurons, in roughly the same\n", - "amount of training time.\n", - "\n", - "For more complex problems, you can gradually ramp up the number of\n", - "hidden layers, until you start overfitting the training set. Very\n", - "complex tasks, such as large image classification or speech\n", - "recognition, typically require networks with dozens of layers and they\n", - "need a huge amount of training data. However, you will rarely have to\n", - "train such networks from scratch: it is much more common to reuse\n", - "parts of a pretrained state-of-the-art network that performs a similar\n", - "task." - ] - }, - { - "cell_type": "markdown", - "id": "d90316a8", - "metadata": { - "editable": true - }, - "source": [ - "## Vanishing gradients\n", - "\n", - "The Back propagation algorithm we derived above works by going from\n", - "the output layer to the input layer, propagating the error gradient on\n", - "the way. Once the algorithm has computed the gradient of the cost\n", - "function with regards to each parameter in the network, it uses these\n", - "gradients to update each parameter with a Gradient Descent (GD) step.\n", - "\n", - "Unfortunately for us, the gradients often get smaller and smaller as\n", - "the algorithm progresses down to the first hidden layers. As a result,\n", - "the GD update leaves the lower layer connection weights virtually\n", - "unchanged, and training never converges to a good solution. This is\n", - "known in the literature as **the vanishing gradients problem**." - ] - }, - { - "cell_type": "markdown", - "id": "441fe8d9", - "metadata": { - "editable": true - }, - "source": [ - "## Exploding gradients\n", - "\n", - "In other cases, the opposite can happen, namely the the gradients can\n", - "grow bigger and bigger. The result is that many of the layers get\n", - "large updates of the weights the algorithm diverges. This is the\n", - "**exploding gradients problem**, which is mostly encountered in\n", - "recurrent neural networks. More generally, deep neural networks suffer\n", - "from unstable gradients, different layers may learn at widely\n", - "different speeds" - ] - }, - { - "cell_type": "markdown", - "id": "ae55ad1c", - "metadata": { - "editable": true - }, - "source": [ - "## Is the Logistic activation function (Sigmoid) our choice?\n", - "\n", - "Although this unfortunate behavior has been empirically observed for\n", - "quite a while (it was one of the reasons why deep neural networks were\n", - "mostly abandoned for a long time), it is only around 2010 that\n", - "significant progress was made in understanding it.\n", - "\n", - "A paper titled [Understanding the Difficulty of Training Deep\n", - "Feedforward Neural Networks by Xavier Glorot and Yoshua Bengio](http://proceedings.mlr.press/v9/glorot10a.html) found that\n", - "the problems with the popular logistic\n", - "sigmoid activation function and the weight initialization technique\n", - "that was most popular at the time, namely random initialization using\n", - "a normal distribution with a mean of 0 and a standard deviation of\n", - "1." - ] - }, - { - "cell_type": "markdown", - "id": "96bbf798", - "metadata": { - "editable": true - }, - "source": [ - "## Logistic function as the root of problems\n", - "\n", - "They showed that with this activation function and this\n", - "initialization scheme, the variance of the outputs of each layer is\n", - "much greater than the variance of its inputs. Going forward in the\n", - "network, the variance keeps increasing after each layer until the\n", - "activation function saturates at the top layers. This is actually made\n", - "worse by the fact that the logistic function has a mean of 0.5, not 0\n", - "(the hyperbolic tangent function has a mean of 0 and behaves slightly\n", - "better than the logistic function in deep networks)." - ] - }, - { - "cell_type": "markdown", - "id": "4b03e108", - "metadata": { - "editable": true - }, - "source": [ - "## The derivative of the Logistic funtion\n", - "\n", - "Looking at the logistic activation function, when inputs become large\n", - "(negative or positive), the function saturates at 0 or 1, with a\n", - "derivative extremely close to 0. Thus when backpropagation kicks in,\n", - "it has virtually no gradient to propagate back through the network,\n", - "and what little gradient exists keeps getting diluted as\n", - "backpropagation progresses down through the top layers, so there is\n", - "really nothing left for the lower layers.\n", - "\n", - "In their paper, Glorot and Bengio propose a way to significantly\n", - "alleviate this problem. We need the signal to flow properly in both\n", - "directions: in the forward direction when making predictions, and in\n", - "the reverse direction when backpropagating gradients. We don’t want\n", - "the signal to die out, nor do we want it to explode and saturate. For\n", - "the signal to flow properly, the authors argue that we need the\n", - "variance of the outputs of each layer to be equal to the variance of\n", - "its inputs, and we also need the gradients to have equal variance\n", - "before and after flowing through a layer in the reverse direction." - ] - }, - { - "cell_type": "markdown", - "id": "2898691d", - "metadata": { - "editable": true - }, - "source": [ - "## Insights from the paper by Glorot and Bengio\n", - "\n", - "One of the insights in the 2010 paper by Glorot and Bengio was that\n", - "the vanishing/exploding gradients problems were in part due to a poor\n", - "choice of activation function. Until then most people had assumed that\n", - "if Nature had chosen to use roughly sigmoid activation functions in\n", - "biological neurons, they must be an excellent choice. But it turns out\n", - "that other activation functions behave much better in deep neural\n", - "networks, in particular the ReLU activation function, mostly because\n", - "it does not saturate for positive values (and also because it is quite\n", - "fast to compute)." - ] - }, - { - "cell_type": "markdown", - "id": "4ac964f3", - "metadata": { - "editable": true - }, - "source": [ - "## The RELU function family\n", - "\n", - "The ReLU activation function suffers from a problem known as the dying\n", - "ReLUs: during training, some neurons effectively die, meaning they\n", - "stop outputting anything other than 0.\n", - "\n", - "In some cases, you may find that half of your network’s neurons are\n", - "dead, especially if you used a large learning rate. During training,\n", - "if a neuron’s weights get updated such that the weighted sum of the\n", - "neuron’s inputs is negative, it will start outputting 0. When this\n", - "happen, the neuron is unlikely to come back to life since the gradient\n", - "of the ReLU function is 0 when its input is negative." - ] - }, - { - "cell_type": "markdown", - "id": "c18a90e1", - "metadata": { - "editable": true - }, - "source": [ - "## ELU function\n", - "\n", - "To solve this problem, nowadays practitioners use a variant of the\n", - "ReLU function, such as the leaky ReLU discussed above or the so-called\n", - "exponential linear unit (ELU) function" - ] - }, - { - "cell_type": "markdown", - "id": "eed9db84", - "metadata": { - "editable": true - }, - "source": [ - "$$\n", - "ELU(z) = \\left\\{\\begin{array}{cc} \\alpha\\left( \\exp{(z)}-1\\right) & z < 0,\\\\ z & z \\ge 0.\\end{array}\\right.\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "id": "b375c182", - "metadata": { - "editable": true - }, - "source": [ - "## Which activation function should we use?\n", - "\n", - "In general it seems that the ELU activation function is better than\n", - "the leaky ReLU function (and its variants), which is better than\n", - "ReLU. ReLU performs better than $\\tanh$ which in turn performs better\n", - "than the logistic function.\n", - "\n", - "If runtime performance is an issue, then you may opt for the leaky\n", - "ReLU function over the ELU function If you don’t want to tweak yet\n", - "another hyperparameter, you may just use the default $\\alpha$ of\n", - "$0.01$ for the leaky ReLU, and $1$ for ELU. If you have spare time and\n", - "computing power, you can use cross-validation or bootstrap to evaluate\n", - "other activation functions." - ] - }, - { - "cell_type": "markdown", - "id": "edb42800", - "metadata": { - "editable": true - }, - "source": [ - "## More on activation functions, output layers\n", - "\n", - "In most cases you can use the ReLU activation function in the hidden\n", - "layers (or one of its variants).\n", - "\n", - "It is a bit faster to compute than other activation functions, and the\n", - "gradient descent optimization does in general not get stuck.\n", - "\n", - "**For the output layer:**\n", - "\n", - "* For classification the softmax activation function is generally a good choice for classification tasks (when the classes are mutually exclusive).\n", - "\n", - "* For regression tasks, you can simply use no activation function at all." - ] - }, - { - "cell_type": "markdown", - "id": "1a8fafc0", - "metadata": { - "editable": true - }, - "source": [ - "## Batch Normalization\n", - "\n", - "Batch Normalization aims to address the vanishing/exploding gradients\n", - "problems, and more generally the problem that the distribution of each\n", - "layer’s inputs changes during training, as the parameters of the\n", - "previous layers change.\n", - "\n", - "The technique consists of adding an operation in the model just before\n", - "the activation function of each layer, simply zero-centering and\n", - "normalizing the inputs, then scaling and shifting the result using two\n", - "new parameters per layer (one for scaling, the other for shifting). In\n", - "other words, this operation lets the model learn the optimal scale and\n", - "mean of the inputs for each layer. In order to zero-center and\n", - "normalize the inputs, the algorithm needs to estimate the inputs’ mean\n", - "and standard deviation. It does so by evaluating the mean and standard\n", - "deviation of the inputs over the current mini-batch, from this the\n", - "name batch normalization." - ] - }, - { - "cell_type": "markdown", - "id": "feef1d4d", - "metadata": { - "editable": true - }, - "source": [ - "## Dropout\n", - "\n", - "It is a fairly simple algorithm: at every training step, every neuron\n", - "(including the input neurons but excluding the output neurons) has a\n", - "probability $p$ of being temporarily dropped out, meaning it will be\n", - "entirely ignored during this training step, but it may be active\n", - "during the next step.\n", - "\n", - "The hyperparameter $p$ is called the dropout rate, and it is typically\n", - "set to 50%. After training, the neurons are not dropped anymore. It\n", - "is viewed as one of the most popular regularization techniques." - ] - }, - { - "cell_type": "markdown", - "id": "9428c225", - "metadata": { - "editable": true - }, - "source": [ - "## Gradient Clipping\n", - "\n", - "A popular technique to lessen the exploding gradients problem is to\n", - "simply clip the gradients during backpropagation so that they never\n", - "exceed some threshold (this is mostly useful for recurrent neural\n", - "networks).\n", - "\n", - "This technique is called Gradient Clipping.\n", - "\n", - "In general however, Batch\n", - "Normalization is preferred." - ] - }, - { - "cell_type": "markdown", - "id": "504b21ae", - "metadata": { - "editable": true - }, - "source": [ - "## A top-down perspective on Neural networks\n", - "\n", - "The first thing we would like to do is divide the data into two or\n", - "three parts. A training set, a validation or dev (development) set,\n", - "and a test set. The test set is the data on which we want to make\n", - "predictions. The dev set is a subset of the training data we use to\n", - "check how well we are doing out-of-sample, after training the model on\n", - "the training dataset. We use the validation error as a proxy for the\n", - "test error in order to make tweaks to our model. It is crucial that we\n", - "do not use any of the test data to train the algorithm. This is a\n", - "cardinal sin in ML. Then:\n", - "\n", - "1. Estimate optimal error rate\n", - "\n", - "2. Minimize underfitting (bias) on training data set.\n", - "\n", - "3. Make sure you are not overfitting." - ] - }, - { - "cell_type": "markdown", - "id": "c51837a9", - "metadata": { - "editable": true - }, - "source": [ - "## More top-down perspectives\n", - "\n", - "If the validation and test sets are drawn from the same distributions,\n", - "then a good performance on the validation set should lead to similarly\n", - "good performance on the test set. \n", - "\n", - "However, sometimes\n", - "the training data and test data differ in subtle ways because, for\n", - "example, they are collected using slightly different methods, or\n", - "because it is cheaper to collect data in one way versus another. In\n", - "this case, there can be a mismatch between the training and test\n", - "data. This can lead to the neural network overfitting these small\n", - "differences between the test and training sets, and a poor performance\n", - "on the test set despite having a good performance on the validation\n", - "set. To rectify this, Andrew Ng suggests making two validation or dev\n", - "sets, one constructed from the training data and one constructed from\n", - "the test data. The difference between the performance of the algorithm\n", - "on these two validation sets quantifies the train-test mismatch. This\n", - "can serve as another important diagnostic when using DNNs for\n", - "supervised learning." - ] - }, - { - "cell_type": "markdown", - "id": "a7357657", - "metadata": { - "editable": true - }, - "source": [ - "## Limitations of supervised learning with deep networks\n", - "\n", - "Like all statistical methods, supervised learning using neural\n", - "networks has important limitations. This is especially important when\n", - "one seeks to apply these methods, especially to physics problems. Like\n", - "all tools, DNNs are not a universal solution. Often, the same or\n", - "better performance on a task can be achieved by using a few\n", - "hand-engineered features (or even a collection of random\n", - "features)." - ] - }, - { - "cell_type": "markdown", - "id": "e92c8a84", - "metadata": { - "editable": true - }, - "source": [ - "## Limitations of NNs\n", - "\n", - "Here we list some of the important limitations of supervised neural network based models. \n", - "\n", - "* **Need labeled data**. All supervised learning methods, DNNs for supervised learning require labeled data. Often, labeled data is harder to acquire than unlabeled data (e.g. one must pay for human experts to label images).\n", - "\n", - "* **Supervised neural networks are extremely data intensive.** DNNs are data hungry. They perform best when data is plentiful. This is doubly so for supervised methods where the data must also be labeled. The utility of DNNs is extremely limited if data is hard to acquire or the datasets are small (hundreds to a few thousand samples). In this case, the performance of other methods that utilize hand-engineered features can exceed that of DNNs." - ] - }, - { - "cell_type": "markdown", - "id": "793aee7d", - "metadata": { - "editable": true - }, - "source": [ - "## Homogeneous data\n", - "\n", - "* **Homogeneous data.** Almost all DNNs deal with homogeneous data of one type. It is very hard to design architectures that mix and match data types (i.e. some continuous variables, some discrete variables, some time series). In applications beyond images, video, and language, this is often what is required. In contrast, ensemble models like random forests or gradient-boosted trees have no difficulty handling mixed data types." - ] - }, - { - "cell_type": "markdown", - "id": "739960d6", - "metadata": { - "editable": true - }, - "source": [ - "## More limitations\n", - "\n", - "* **Many problems are not about prediction.** In natural science we are often interested in learning something about the underlying distribution that generates the data. In this case, it is often difficult to cast these ideas in a supervised learning setting. While the problems are related, it is possible to make good predictions with a *wrong* model. The model might or might not be useful for understanding the underlying science.\n", - "\n", - "Some of these remarks are particular to DNNs, others are shared by all supervised learning methods. This motivates the use of unsupervised methods which in part circumvent these problems." - ] - } - ], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/doc/src/week41/week41.p.tex b/doc/src/week41/week41.p.tex deleted file mode 100644 index ef8e6139e..000000000 --- a/doc/src/week41/week41.p.tex +++ /dev/null @@ -1,2612 +0,0 @@ -%% -%% Automatically generated file from DocOnce source -%% (https://github.com/doconce/doconce/) -%% doconce format latex week41.do.txt --latex_title_layout=beamer --latex_table_format=footnotesize --no_mako -%% -% #ifdef PTEX2TEX_EXPLANATION -%% -%% The file follows the ptex2tex extended LaTeX format, see -%% ptex2tex: https://code.google.com/p/ptex2tex/ -%% -%% Run -%% ptex2tex myfile -%% or -%% doconce ptex2tex myfile -%% -%% to turn myfile.p.tex into an ordinary LaTeX file myfile.tex. -%% (The ptex2tex program: https://code.google.com/p/ptex2tex) -%% Many preprocess options can be added to ptex2tex or doconce ptex2tex -%% -%% ptex2tex -DMINTED myfile -%% doconce ptex2tex myfile envir=minted -%% -%% ptex2tex will typeset code environments according to a global or local -%% .ptex2tex.cfg configure file. doconce ptex2tex will typeset code -%% according to options on the command line (just type doconce ptex2tex to -%% see examples). If doconce ptex2tex has envir=minted, it enables the -%% minted style without needing -DMINTED. -% #endif - -% #define PREAMBLE - -% #ifdef PREAMBLE -%-------------------- begin preamble ---------------------- - -\documentclass[% -oneside, % oneside: electronic viewing, twoside: printing -final, % draft: marks overfull hboxes, figures with paths -10pt]{article} - -\listfiles % print all files needed to compile this document - -\usepackage{relsize,makeidx,color,setspace,amsmath,amsfonts,amssymb} -\usepackage[table]{xcolor} -\usepackage{bm,ltablex,microtype} - -\usepackage[pdftex]{graphicx} - -\usepackage{ptex2tex} -% #ifdef MINTED -\usepackage{minted} -\usemintedstyle{default} -% #endif - -\usepackage[T1]{fontenc} -%\usepackage[latin1]{inputenc} -\usepackage{ucs} -\usepackage[utf8x]{inputenc} - -\usepackage{lmodern} % Latin Modern fonts derived from Computer Modern - -% Hyperlinks in PDF: -\definecolor{linkcolor}{rgb}{0,0,0.4} -\usepackage{hyperref} -\hypersetup{ - breaklinks=true, - colorlinks=true, - linkcolor=linkcolor, - urlcolor=linkcolor, - citecolor=black, - filecolor=black, - %filecolor=blue, - pdfmenubar=true, - pdftoolbar=true, - bookmarksdepth=3 % Uncomment (and tweak) for PDF bookmarks with more levels than the TOC - } -%\hyperbaseurl{} % hyperlinks are relative to this root - -\setcounter{tocdepth}{2} % levels in table of contents - -% Tricks for having figures close to where they are defined: -% 1. define less restrictive rules for where to put figures -\setcounter{topnumber}{2} -\setcounter{bottomnumber}{2} -\setcounter{totalnumber}{4} -\renewcommand{\topfraction}{0.95} -\renewcommand{\bottomfraction}{0.95} -\renewcommand{\textfraction}{0} -\renewcommand{\floatpagefraction}{0.75} -% floatpagefraction must always be less than topfraction! -% 2. ensure all figures are flushed before next section -\usepackage[section]{placeins} -% 3. enable begin{figure}[H] (often leads to ugly pagebreaks) -%\usepackage{float}\restylefloat{figure} - -% --- fancyhdr package for fancy headers --- -\usepackage{fancyhdr} -\fancyhf{} % sets both header and footer to nothing -\renewcommand{\headrulewidth}{0pt} -\fancyfoot[LE,RO]{\thepage} -% Ensure copyright on titlepage (article style) and chapter pages (book style) -\fancypagestyle{plain}{ - \fancyhf{} - \fancyfoot[C]{{\footnotesize \copyright\ 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license}} -% \renewcommand{\footrulewidth}{0mm} - \renewcommand{\headrulewidth}{0mm} -} -% Ensure copyright on titlepages with \thispagestyle{empty} -\fancypagestyle{empty}{ - \fancyhf{} - \fancyfoot[C]{{\footnotesize \copyright\ 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license}} - \renewcommand{\footrulewidth}{0mm} - \renewcommand{\headrulewidth}{0mm} -} - -\pagestyle{fancy} - - -\usepackage[framemethod=TikZ]{mdframed} - -% --- begin definitions of admonition environments --- - -% Admonition style "mdfbox" is an oval colored box based on mdframed -% "notice" admon -\colorlet{mdfbox_notice_background}{gray!5} -\newmdenv[ - skipabove=15pt, - skipbelow=15pt, - outerlinewidth=0, - backgroundcolor=mdfbox_notice_background, - linecolor=black, - linewidth=2pt, % frame thickness - frametitlebackgroundcolor=mdfbox_notice_background, - frametitlerule=true, - frametitlefont=\normalfont\bfseries, - shadow=false, % frame shadow? - shadowsize=11pt, - leftmargin=0, - rightmargin=0, - roundcorner=5, - needspace=0pt, -]{notice_mdfboxmdframed} - -\newenvironment{notice_mdfboxadmon}[1][]{ -\begin{notice_mdfboxmdframed}[frametitle=#1] -} -{ -\end{notice_mdfboxmdframed} -} - -% Admonition style "mdfbox" is an oval colored box based on mdframed -% "summary" admon -\colorlet{mdfbox_summary_background}{gray!5} -\newmdenv[ - skipabove=15pt, - skipbelow=15pt, - outerlinewidth=0, - backgroundcolor=mdfbox_summary_background, - linecolor=black, - linewidth=2pt, % frame thickness - frametitlebackgroundcolor=mdfbox_summary_background, - frametitlerule=true, - frametitlefont=\normalfont\bfseries, - shadow=false, % frame shadow? - shadowsize=11pt, - leftmargin=0, - rightmargin=0, - roundcorner=5, - needspace=0pt, -]{summary_mdfboxmdframed} - -\newenvironment{summary_mdfboxadmon}[1][]{ -\begin{summary_mdfboxmdframed}[frametitle=#1] -} -{ -\end{summary_mdfboxmdframed} -} - -% Admonition style "mdfbox" is an oval colored box based on mdframed -% "warning" admon -\colorlet{mdfbox_warning_background}{gray!5} -\newmdenv[ - skipabove=15pt, - skipbelow=15pt, - outerlinewidth=0, - backgroundcolor=mdfbox_warning_background, - linecolor=black, - linewidth=2pt, % frame thickness - frametitlebackgroundcolor=mdfbox_warning_background, - frametitlerule=true, - frametitlefont=\normalfont\bfseries, - shadow=false, % frame shadow? - shadowsize=11pt, - leftmargin=0, - rightmargin=0, - roundcorner=5, - needspace=0pt, -]{warning_mdfboxmdframed} - -\newenvironment{warning_mdfboxadmon}[1][]{ -\begin{warning_mdfboxmdframed}[frametitle=#1] -} -{ -\end{warning_mdfboxmdframed} -} - -% Admonition style "mdfbox" is an oval colored box based on mdframed -% "question" admon -\colorlet{mdfbox_question_background}{gray!5} -\newmdenv[ - skipabove=15pt, - skipbelow=15pt, - outerlinewidth=0, - backgroundcolor=mdfbox_question_background, - linecolor=black, - linewidth=2pt, % frame thickness - frametitlebackgroundcolor=mdfbox_question_background, - frametitlerule=true, - frametitlefont=\normalfont\bfseries, - shadow=false, % frame shadow? - shadowsize=11pt, - leftmargin=0, - rightmargin=0, - roundcorner=5, - needspace=0pt, -]{question_mdfboxmdframed} - -\newenvironment{question_mdfboxadmon}[1][]{ -\begin{question_mdfboxmdframed}[frametitle=#1] -} -{ -\end{question_mdfboxmdframed} -} - -% Admonition style "mdfbox" is an oval colored box based on mdframed -% "block" admon -\colorlet{mdfbox_block_background}{gray!5} -\newmdenv[ - skipabove=15pt, - skipbelow=15pt, - outerlinewidth=0, - backgroundcolor=mdfbox_block_background, - linecolor=black, - linewidth=2pt, % frame thickness - frametitlebackgroundcolor=mdfbox_block_background, - frametitlerule=true, - frametitlefont=\normalfont\bfseries, - shadow=false, % frame shadow? - shadowsize=11pt, - leftmargin=0, - rightmargin=0, - roundcorner=5, - needspace=0pt, -]{block_mdfboxmdframed} - -\newenvironment{block_mdfboxadmon}[1][]{ -\begin{block_mdfboxmdframed}[frametitle=#1] -} -{ -\end{block_mdfboxmdframed} -} - -% --- end of definitions of admonition environments --- - -% prevent orhpans and widows -\clubpenalty = 10000 -\widowpenalty = 10000 - -\newenvironment{doconceexercise}{}{} -\newcounter{doconceexercisecounter} - - -% ------ header in subexercises ------ -%\newcommand{\subex}[1]{\paragraph{#1}} -%\newcommand{\subex}[1]{\par\vspace{1.7mm}\noindent{\bf #1}\ \ } -\makeatletter -% 1.5ex is the spacing above the header, 0.5em the spacing after subex title -\newcommand\subex{\@startsection{paragraph}{4}{\z@}% - {1.5ex\@plus1ex \@minus.2ex}% - {-0.5em}% - {\normalfont\normalsize\bfseries}} -\makeatother - - -% --- end of standard preamble for documents --- - - -% insert custom LaTeX commands... - -\raggedbottom -\makeindex - -%-------------------- end preamble ---------------------- - -\begin{document} - -% matching end for #ifdef PREAMBLE -% #endif - -\newcommand{\exercisesection}[1]{\subsection*{#1}} - - -% ------------------- main content ---------------------- - - - -% ----------------- title ------------------------- - -\title{Week 41 Neural networks and constructing a neural network code} - -% ----------------- author(s) ------------------------- - -\author{Morten Hjorth-Jensen\inst{1}} -\institute{Department of Physics, University of Oslo\inst{1}} -% ----------------- end author(s) ------------------------- - -\date{Week 41 -% -% -} - -% !split -\subsection{Plan for week 41, October 7-11} - -% !split -\subsection{Material for the lecture on Monday October 7, 2024} -\begin{enumerate} -\item Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model. - -\item Building our own Feed-forward Neural Network -% * \href{{https://youtu.be/5-RRTO9uDvI}}{Video of lecture notes} -% * \href{{https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2024/NotesOctober7.pdf}}{Whiteboard notes} -\end{enumerate} - -\noindent -\begin{block}{Readings and Videos: } -\begin{enumerate} -\item These lecture notes - -\item Rashcka et al chapter 11 - -\item For neural networks we recommend Goodfellow et al chapter 6. -\begin{enumerate} - - \item Neural Networks demystified at \href{{https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs}}{\nolinkurl{https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs}} - -\end{enumerate} - -\noindent -\item Building Neural Networks from scratch at \href{{https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex}}{\nolinkurl{https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex}} - -\item Video on Neural Networks at \href{{https://www.youtube.com/watch?v=CqOfi41LfDw}}{\nolinkurl{https://www.youtube.com/watch?v=CqOfi41LfDw}} - -\item Video on the back propagation algorithm at \href{{https://www.youtube.com/watch?v=Ilg3gGewQ5U}}{\nolinkurl{https://www.youtube.com/watch?v=Ilg3gGewQ5U}} -\end{enumerate} - -\noindent -We also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at \href{{http://neuralnetworksanddeeplearning.com/chap4.html}}{\nolinkurl{http://neuralnetworksanddeeplearning.com/chap4.html}}. -\end{block} - -% !split -\subsection{Material for the active learning sessions on Tuesday and Wednesday} -\begin{itemize} -\item Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation - -\item One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code - -\item Discussion of project 2 - -\item Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent -\end{itemize} - -\noindent -% !split -\subsection{Lecture Monday October 7} - -% !split -\subsection{Introduction to Neural networks} - -Artificial neural networks are computational systems that can learn to -perform tasks by considering examples, generally without being -programmed with any task-specific rules. It is supposed to mimic a -biological system, wherein neurons interact by sending signals in the -form of mathematical functions between layers. All layers can contain -an arbitrary number of neurons, and each connection is represented by -a weight variable. - -% !split -\subsection{Artificial neurons} - -The field of artificial neural networks has a long history of -development, and is closely connected with the advancement of computer -science and computers in general. A model of artificial neurons was -first developed by McCulloch and Pitts in 1943 to study signal -processing in the brain and has later been refined by others. The -general idea is to mimic neural networks in the human brain, which is -composed of billions of neurons that communicate with each other by -sending electrical signals. Each neuron accumulates its incoming -signals, which must exceed an activation threshold to yield an -output. If the threshold is not overcome, the neuron remains inactive, -i.e.~has zero output. - -This behaviour has inspired a simple mathematical model for an artificial neuron. - -\begin{equation} - y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) - \label{artificialNeuron} -\end{equation} -Here, the output $y$ of the neuron is the value of its activation function, which have as input -a weighted sum of signals $x_i, \dots ,x_n$ received by $n$ other neurons. - -Conceptually, it is helpful to divide neural networks into four -categories: -\begin{enumerate} -\item general purpose neural networks for supervised learning, - -\item neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs), - -\item neural networks for sequential data such as Recurrent Neural Networks (RNNs), and - -\item neural networks for unsupervised learning such as Deep Boltzmann Machines. -\end{enumerate} - -\noindent -In natural science, DNNs and CNNs have already found numerous -applications. In statistical physics, they have been applied to detect -phase transitions in 2D Ising and Potts models, lattice gauge -theories, and different phases of polymers, or solving the -Navier-Stokes equation in weather forecasting. Deep learning has also -found interesting applications in quantum physics. Various quantum -phase transitions can be detected and studied using DNNs and CNNs, -topological phases, and even non-equilibrium many-body -localization. Representing quantum states as DNNs quantum state -tomography are among some of the impressive achievements to reveal the -potential of DNNs to facilitate the study of quantum systems. - -In quantum information theory, it has been shown that one can perform -gate decompositions with the help of neural. - -The applications are not limited to the natural sciences. There is a -plethora of applications in essentially all disciplines, from the -humanities to life science and medicine. - -% !split -\subsection{Neural network types} - -An artificial neural network (ANN), is a computational model that -consists of layers of connected neurons, or nodes or units. We will -refer to these interchangeably as units or nodes, and sometimes as -neurons. - -It is supposed to mimic a biological nervous system by letting each -neuron interact with other neurons by sending signals in the form of -mathematical functions between layers. A wide variety of different -ANNs have been developed, but most of them consist of an input layer, -an output layer and eventual layers in-between, called \emph{hidden -layers}. All layers can contain an arbitrary number of nodes, and each -connection between two nodes is associated with a weight variable. - -Neural networks (also called neural nets) are neural-inspired -nonlinear models for supervised learning. As we will see, neural nets -can be viewed as natural, more powerful extensions of supervised -learning methods such as linear and logistic regression and soft-max -methods we discussed earlier. - -% !split -\subsection{Feed-forward neural networks} - -The feed-forward neural network (FFNN) was the first and simplest type -of ANNs that were devised. In this network, the information moves in -only one direction: forward through the layers. - -Nodes are represented by circles, while the arrows display the -connections between the nodes, including the direction of information -flow. Additionally, each arrow corresponds to a weight variable -(figure to come). We observe that each node in a layer is connected -to \emph{all} nodes in the subsequent layer, making this a so-called -\emph{fully-connected} FFNN. - -% !split -\subsection{Convolutional Neural Network} - -A different variant of FFNNs are \emph{convolutional neural networks} -(CNNs), which have a connectivity pattern inspired by the animal -visual cortex. Individual neurons in the visual cortex only respond to -stimuli from small sub-regions of the visual field, called a receptive -field. This makes the neurons well-suited to exploit the strong -spatially local correlation present in natural images. The response of -each neuron can be approximated mathematically as a convolution -operation. (figure to come) - -Convolutional neural networks emulate the behaviour of neurons in the -visual cortex by enforcing a \emph{local} connectivity pattern between -nodes of adjacent layers: Each node in a convolutional layer is -connected only to a subset of the nodes in the previous layer, in -contrast to the fully-connected FFNN. Often, CNNs consist of several -convolutional layers that learn local features of the input, with a -fully-connected layer at the end, which gathers all the local data and -produces the outputs. They have wide applications in image and video -recognition. - -% !split -\subsection{Recurrent neural networks} - -So far we have only mentioned ANNs where information flows in one -direction: forward. \emph{Recurrent neural networks} on the other hand, -have connections between nodes that form directed \emph{cycles}. This -creates a form of internal memory which are able to capture -information on what has been calculated before; the output is -dependent on the previous computations. Recurrent NNs make use of -sequential information by performing the same task for every element -in a sequence, where each element depends on previous elements. An -example of such information is sentences, making recurrent NNs -especially well-suited for handwriting and speech recognition. - -% !split -\subsection{Other types of networks} - -There are many other kinds of ANNs that have been developed. One type -that is specifically designed for interpolation in multidimensional -space is the radial basis function (RBF) network. RBFs are typically -made up of three layers: an input layer, a hidden layer with -non-linear radial symmetric activation functions and a linear output -layer (''linear'' here means that each node in the output layer has a -linear activation function). The layers are normally fully-connected -and there are no cycles, thus RBFs can be viewed as a type of -fully-connected FFNN. They are however usually treated as a separate -type of NN due the unusual activation functions. - -% !split -\subsection{Multilayer perceptrons} - -One uses often so-called fully-connected feed-forward neural networks -with three or more layers (an input layer, one or more hidden layers -and an output layer) consisting of neurons that have non-linear -activation functions. - -Such networks are often called \emph{multilayer perceptrons} (MLPs). - -% !split -\subsection{Why multilayer perceptrons?} - -According to the \emph{Universal approximation theorem}, a feed-forward -neural network with just a single hidden layer containing a finite -number of neurons can approximate a continuous multidimensional -function to arbitrary accuracy, assuming the activation function for -the hidden layer is a \textbf{non-constant, bounded and -monotonically-increasing continuous function}. - -Note that the requirements on the activation function only applies to -the hidden layer, the output nodes are always assumed to be linear, so -as to not restrict the range of output values. - -% !split -\subsection{Illustration of a single perceptron model and a multi-perceptron model} - -\begin{figure}[!ht] % - \centerline{\includegraphics[width=0.8\linewidth]{figures/nns.png}} - \caption{ - In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer. - } -\end{figure} -%\clearpage % flush figures - -% !split -\subsection{Examples of XOR, OR and AND gates} - -Let us first try to fit various gates using standard linear -regression. The gates we are thinking of are the classical XOR, OR and -AND gates, well-known elements in computer science. The tables here -show how we can set up the inputs $x_1$ and $x_2$ in order to yield a -specific target $y_i$. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\bpycod -""" -Simple code that tests XOR, OR and AND gates with linear regression -""" - -import numpy as np -# Design matrix -X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64) -print(f"The X.TX matrix:{X.T @ X}") -Xinv = np.linalg.pinv(X.T @ X) -print(f"The invers of X.TX matrix:{Xinv}") - -# The XOR gate -yXOR = np.array( [ 0, 1 ,1, 0]) -ThetaXOR = Xinv @ X.T @ yXOR -print(f"The values of theta for the XOR gate:{ThetaXOR}") -print(f"The linear regression prediction for the XOR gate:{X @ ThetaXOR}") - - -# The OR gate -yOR = np.array( [ 0, 1 ,1, 1]) -ThetaOR = Xinv @ X.T @ yOR -print(f"The values of theta for the OR gate:{ThetaOR}") -print(f"The linear regression prediction for the OR gate:{X @ ThetaOR}") - - -# The OR gate -yAND = np.array( [ 0, 0 ,0, 1]) -ThetaAND = Xinv @ X.T @ yAND -print(f"The values of theta for the AND gate:{ThetaAND}") -print(f"The linear regression prediction for the AND gate:{X @ ThetaAND}") - -\epycod - - -What is happening here? - -% !split -\subsection{Does Logistic Regression do a better Job?} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\bpycod -""" -Simple code that tests XOR and OR gates with linear regression -and logistic regression -""" - -import matplotlib.pyplot as plt -from sklearn.linear_model import LogisticRegression -import numpy as np - -# Design matrix -X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64) -print(f"The X.TX matrix:{X.T @ X}") -Xinv = np.linalg.pinv(X.T @ X) -print(f"The invers of X.TX matrix:{Xinv}") - -# The XOR gate -yXOR = np.array( [ 0, 1 ,1, 0]) -ThetaXOR = Xinv @ X.T @ yXOR -print(f"The values of theta for the XOR gate:{ThetaXOR}") -print(f"The linear regression prediction for the XOR gate:{X @ ThetaXOR}") - - -# The OR gate -yOR = np.array( [ 0, 1 ,1, 1]) -ThetaOR = Xinv @ X.T @ yOR -print(f"The values of theta for the OR gate:{ThetaOR}") -print(f"The linear regression prediction for the OR gate:{X @ ThetaOR}") - - -# The OR gate -yAND = np.array( [ 0, 0 ,0, 1]) -ThetaAND = Xinv @ X.T @ yAND -print(f"The values of theta for the AND gate:{ThetaAND}") -print(f"The linear regression prediction for the AND gate:{X @ ThetaAND}") - -# Now we change to logistic regression - - -# Logistic Regression -logreg = LogisticRegression() -logreg.fit(X, yOR) -print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR))) - -logreg.fit(X, yXOR) -print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR))) - - -logreg.fit(X, yAND) -print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND))) - -\epycod - - -Not exactly impressive, but somewhat better. - -% !split -\subsection{Adding Neural Networks} - - - - - - - - - - - - -\bpycod - -# and now neural networks with Scikit-Learn and the XOR - -from sklearn.neural_network import MLPClassifier -from sklearn.datasets import make_classification -X, yXOR = make_classification(n_samples=100, random_state=1) -FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR) -FFNN.predict_proba(X) -print(f"Test set accuracy with Feed Forward Neural Network for XOR gate:{FFNN.score(X, yXOR)}") - - -\epycod - - -% !split -\subsection{Mathematics of deep learning} - -\begin{block}{Two recent books online } -\begin{enumerate} -\item \href{{https://arxiv.org/abs/2105.04026}}{The Modern Mathematics of Deep Learning, by Julius Berner, Philipp Grohs, Gitta Kutyniok, Philipp Petersen}, published as \href{{https://doi.org/10.1017/9781009025096.002}}{Mathematical Aspects of Deep Learning, pp. 1-111. Cambridge University Press, 2022} - -\item \href{{https://doi.org/10.48550/arXiv.2310.20360}}{Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory, Arnulf Jentzen, Benno Kuckuck, Philippe von Wurstemberger} -\end{enumerate} - -\noindent -\end{block} - -% !split -\subsection{Reminder on books with hands-on material and codes} -\begin{block}{} -\begin{itemize} -\item \href{{https://sebastianraschka.com/blog/2022/ml-pytorch-book.html}}{Sebastian Rashcka et al, Machine learning with Sickit-Learn and PyTorch} -\end{itemize} - -\noindent -\end{block} - -% !split -\subsection{Reading recommendations} - -\begin{enumerate} -\item Rashkca et al., chapter 11, jupyter-notebook sent separately, from \href{{https://github.com/rasbt/machine-learning-book}}{GitHub} - -\item Goodfellow et al, chapter 6 and 7 contain most of the neural network background. -\end{enumerate} - -\noindent -% !split -\subsection{Mathematics of deep learning and neural networks} - -Neural networks, in its so-called feed-forward form, where each -iterations contains a feed-forward stage and a back-propgagation -stage, consist of series of affine matrix-matrix and matrix-vector -multiplications. The unknown parameters (the so-called biases and -weights which deternine the architecture of a neural network), are -uptaded iteratively using the so-called back-propagation algorithm. -This algorithm corresponds to the so-called reverse mode of -automatic differentation. - -% !split -\subsection{Basics of an NN} - -A neural network consists of a series of hidden layers, in addition to -the input and output layers. Each layer $l$ has a set of parameters -$\bm{\Theta}^{(l)}=(\bm{W}^{(l)},\bm{b}^{(l)})$ which are related to the -parameters in other layers through a series of affine transformations, -for a standard NN these are matrix-matrix and matrix-vector -multiplications. For all layers we will simply use a collective variable $\bm{\Theta}$. - -It consist of two basic steps: -\begin{enumerate} -\item a feed forward stage which takes a given input and produces a final output which is compared with the target values through our cost/loss function. - -\item a back-propagation state where the unknown parameters $\bm{\Theta}$ are updated through the optimization of the their gradients. The expressions for the gradients are obtained via the chain rule, starting from the derivative of the cost/function. -\end{enumerate} - -\noindent -These two steps make up one iteration. This iterative process is continued till we reach an eventual stopping criterion. - -% !split -\subsection{Overarching view of a neural network} - -The architecture of a neural network defines our model. This model -aims at describing some function $f(\bm{x}$ which represents -some final result (outputs or tagrget values) given a specific inpput -$\bm{x}$. Note that here $\bm{y}$ and $\bm{x}$ are not limited to be -vectors. - -The architecture consists of -\begin{enumerate} -\item An input and an output layer where the input layer is defined by the inputs $\bm{x}$. The output layer produces the model ouput $\bm{\tilde{y}}$ which is compared with the target value $\bm{y}$ - -\item A given number of hidden layers and neurons/nodes/units for each layer (this may vary) - -\item A given activation function $\sigma(\bm{z})$ with arguments $\bm{z}$ to be defined below. The activation functions may differ from layer to layer. - -\item The last layer, normally called \textbf{output} layer has normally an activation function tailored to the specific problem - -\item Finally we define a so-called cost or loss function which is used to gauge the quality of our model. -\end{enumerate} - -\noindent -% !split -\subsection{The optimization problem} - -The cost function is a function of the unknown parameters -$\bm{\Theta}$ where the latter is a container for all possible -parameters needed to define a neural network - -If we are dealing with a regression task a typical cost/loss function -is the mean squared error -\[ -C(\bm{\Theta})=\frac{1}{n}\left\{\left(\bm{y}-\bm{X}\bm{\theta}\right)^T\left(\bm{y}-\bm{X}\bm{\theta}\right)\right\}. -\] -This function represents one of many possible ways to define -the so-called cost function. Note that here we have assumed a linear dependence in terms of the paramters $\bm{\Theta}$. This is in general not the case. - -% !split -\subsection{Parameters of neural networks} -For neural networks the parameters -$\bm{\Theta}$ are given by the so-called weights and biases (to be -defined below). - -The weights are given by matrix elements $w_{ij}^{(l)}$ where the -superscript indicates the layer number. The biases are typically given -by vector elements representing each single node of a given layer, -that is $b_j^{(l)}$. - -% !split -\subsection{Other ingredients of a neural network} - -Having defined the architecture of a neural network, the optimization -of the cost function with respect to the parameters $\bm{\Theta}$, -involves the calculations of gradients and their optimization. The -gradients represent the derivatives of a multidimensional object and -are often approximated by various gradient methods, including -\begin{enumerate} -\item various quasi-Newton methods, - -\item plain gradient descent (GD) with a constant learning rate $\eta$, - -\item GD with momentum and other approximations to the learning rates such as -\begin{itemize} - - \item Adapative gradient (ADAgrad) - - \item Root mean-square propagation (RMSprop) - - \item Adaptive gradient with momentum (ADAM) and many other - -\end{itemize} - -\noindent -\item Stochastic gradient descent and various families of learning rate approximations -\end{enumerate} - -\noindent -% !split -\subsection{Other parameters} - -In addition to the above, there are often additional hyperparamaters -which are included in the setup of a neural network. These will be -discussed below. - -% !split -\subsection{Universal approximation theorem} - -The universal approximation theorem plays a central role in deep -learning. \href{{https://link.springer.com/article/10.1007/BF02551274}}{Cybenko (1989)} showed -the following: - -\begin{block}{} -Let $\sigma$ be any continuous sigmoidal function such that -\[ -\sigma(z) = \left\{\begin{array}{cc} 1 & z\rightarrow \infty\\ 0 & z \rightarrow -\infty \end{array}\right. -\] -Given a continuous and deterministic function $F(\bm{x})$ on the unit -cube in $d$-dimensions $F\in [0,1]^d$, $x\in [0,1]^d$ and a parameter -$\epsilon >0$, there is a one-layer (hidden) neural network -$f(\bm{x};\bm{\Theta})$ with $\bm{\Theta}=(\bm{W},\bm{b})$ and $\bm{W}\in -\mathbb{R}^{m\times n}$ and $\bm{b}\in \mathbb{R}^{n}$, for which -\[ -\vert F(\bm{x})-f(\bm{x};\bm{\Theta})\vert < \epsilon \hspace{0.1cm} \forall \bm{x}\in[0,1]^d. -\] - -\end{block} - -% !split -\subsection{Some parallels from real analysis} - -For those of you familiar with for example the \href{{https://en.wikipedia.org/wiki/Stone%E2%80%93Weierstrass_theorem}}{Stone-Weierstrass -theorem} -for polynomial approximations or the convergence criterion for Fourier -series, there are similarities in the derivation of the proof for -neural networks. - -% !split -\subsection{The approximation theorem in words} - -\textbf{Any continuous function $y=F(\bm{x})$ supported on the unit cube in -$d$-dimensions can be approximated by a one-layer sigmoidal network to -arbitrary accuracy.} - -\href{{https://www.sciencedirect.com/science/article/abs/pii/089360809190009T}}{Hornik (1991)} extended the theorem by letting any non-constant, bounded activation function to be included using that the expectation value -\[ -\mathbb{E}[\vert F(\bm{x})\vert^2] =\int_{\bm{x}\in D} \vert F(\bm{x})\vert^2p(\bm{x})d\bm{x} < \infty. -\] -Then we have -\[ -\mathbb{E}[\vert F(\bm{x})-f(\bm{x};\bm{\Theta})\vert^2] =\int_{\bm{x}\in D} \vert F(\bm{x})-f(\bm{x};\bm{\Theta})\vert^2p(\bm{x})d\bm{x} < \epsilon. -\] - -% !split -\subsection{More on the general approximation theorem} - -None of the proofs give any insight into the relation between the -number of of hidden layers and nodes and the approximation error -$\epsilon$, nor the magnitudes of $\bm{W}$ and $\bm{b}$. - -Neural networks (NNs) have what we may call a kind of universality no matter what function we want to compute. - -\begin{block}{} -It does not mean that an NN can be used to exactly compute any function. Rather, we get an approximation that is as good as we want. -\end{block} - -% !split -\subsection{Class of functions we can approximate} - -\begin{block}{} -The class of functions that can be approximated are the continuous ones. -If the function $F(\bm{x})$ is discontinuous, it won't in general be possible to approximate it. However, an NN may still give an approximation even if we fail in some points. -\end{block} - -% !split -\subsection{Setting up the equations for a neural network} - -The questions we want to ask are how do changes in the biases and the -weights in our network change the cost function and how can we use the -final output to modify the weights and biases? - -To derive these equations let us start with a plain regression problem -and define our cost function as - -\[ -{\cal C}(\bm{\Theta}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2, -\] - -where the $y_i$s are our $n$ targets (the values we want to -reproduce), while the outputs of the network after having propagated -all inputs $\bm{x}$ are given by $\bm{\tilde{y}}_i$. - -% !split -\subsection{Layout of a neural network with three hidden layers} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/nn1.pdf}} - -\vspace{6mm} - -% !split -\subsection{Definitions} - -With our definition of the targets $\bm{y}$, the outputs of the -network $\bm{\tilde{y}}$ and the inputs $\bm{x}$ we -define now the activation $z_j^l$ of node/neuron/unit $j$ of the -$l$-th layer as a function of the bias, the weights which add up from -the previous layer $l-1$ and the forward passes/outputs -$\hat{a}^{l-1}$ from the previous layer as - -\[ -z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, -\] - -where $b_k^l$ are the biases from layer $l$. Here $M_{l-1}$ -represents the total number of nodes/neurons/units of layer $l-1$. The -figure in the whiteboard notes illustrates this equation. We can rewrite this in a more -compact form as the matrix-vector products we discussed earlier, - -\[ -\hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. -\] - -% !split -\subsection{Inputs to the activation function} - -With the activation values $\bm{z}^l$ we can in turn define the -output of layer $l$ as $\bm{a}^l = f(\bm{z}^l)$ where $f$ is our -activation function. In the examples here we will use the sigmoid -function discussed in our logistic regression lectures. We will also use the same activation function $f$ for all layers -and their nodes. It means we have - -\[ -a_j^l = \sigma(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. -\] - -% !split -\subsection{Derivatives and the chain rule} - -From the definition of the activation $z_j^l$ we have -\[ -\frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, -\] -and -\[ -\frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. -\] - -With our definition of the activation function we have that (note that this function depends only on $z_j^l$) -\[ -\frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=\sigma(z_j^l)(1-\sigma(z_j^l)). -\] - -% !split -\subsection{Derivative of the cost function} - -With these definitions we can now compute the derivative of the cost function in terms of the weights. - -Let us specialize to the output layer $l=L$. Our cost function is -\[ -{\cal C}(\bm{\Theta}^L) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - y_i\right)^2, -\] -The derivative of this function with respect to the weights is - -\[ -\frac{\partial{\cal C}(\bm{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, -\] -The last partial derivative can easily be computed and reads (by applying the chain rule) -\[ -\frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}. -\] - -% !split -\subsection{Simpler examples first, and automatic differentiation} - -In order to understand the back propagation algorithm and its -derivation (an implementation of the chain rule), let us first digress -with some simple examples. These examples are also meant to motivate -the link with back propagation and \href{{https://en.wikipedia.org/wiki/Automatic_differentiation}}{automatic differentiation}. - -% !split -\subsection{Reminder on the chain rule and gradients} - -If we have a multivariate function $f(x,y)$ where $x=x(t)$ and $y=y(t)$ are functions of a variable $t$, we have that the gradient of $f$ with respect to $t$ (without the explicit unit vector components) -\[ -\frac{df}{dt} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial t} \end{bmatrix}=\frac{\partial f}{\partial x} \frac{\partial x}{\partial t} +\frac{\partial f}{\partial y} \frac{\partial y}{\partial t}. -\] - -% !split -\subsection{Multivariable functions} - -If we have a multivariate function $f(x,y)$ where $x=x(t,s)$ and $y=y(t,s)$ are functions of the variables $t$ and $s$, we have that the partial derivatives -\[ -\frac{\partial f}{\partial s}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial s}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial s}, -\] -and -\[ -\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}. -\] - -the gradient of $f$ with respect to $t$ and $s$ (without the explicit unit vector components) -\[ -\frac{df}{d(s,t)} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial s} &\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial s} & \frac{\partial y}{\partial t} \end{bmatrix}. -\] - -% !split -\subsection{Automatic differentiation through examples} - -A great introduction to automatic differentiation is given by Baydin et al., see \href{{https://arxiv.org/abs/1502.05767}}{\nolinkurl{https://arxiv.org/abs/1502.05767}}. - -Automatic differentiation is a represented by a repeated application -of the chain rule on well-known functions and allows for the -calculation of derivatives to numerical precision. It is not the same -as the calculation of symbolic derivatives via for example SymPy, nor -does it use approximative formulae based on Taylor-expansions of a -function around a given value. The latter are error prone due to -truncation errors and values of the step size $\Delta$. - -% !split -\subsection{Simple example} - -Our first example is rather simple, -\[ -f(x) =\exp{x^2}, -\] -with derivative -\[ -f'(x) =2x\exp{x^2}. -\] -We can use SymPy to extract the pertinent lines of Python code through the following simple example - - - - - - - - - -\bpycod -from __future__ import division -from sympy import * -x = symbols('x') -expr = exp(x*x) -simplify(expr) -derivative = diff(expr,x) -print(python(expr)) -print(python(derivative)) - -\epycod - - -% !split -\subsection{Smarter way of evaluating the above function} -If we study this function, we note that we can reduce the number of operations by introducing an intermediate variable -\[ -a = x^2, -\] -leading to -\[ -f(x) = f(a(x)) = b= \exp{a}. -\] - -We now assume that all operations can be counted in terms of equal -floating point operations. This means that in order to calculate -$f(x)$ we need first to square $x$ and then compute the exponential. We -have thus two floating point operations only. - -% !split -\subsection{Reducing the number of operations} - -With the introduction of a precalculated quantity $a$ and thereby $f(x)$ we have that the derivative can be written as - -\[ -f'(x) = 2xb, -\] - -which reduces the number of operations from four in the orginal -expression to two. This means that if we need to compute $f(x)$ and -its derivative (a common task in optimizations), we have reduced the -number of operations from six to four in total. - -\textbf{Note} that the usage of a symbolic software like SymPy does not -include such simplifications and the calculations of the function and -the derivatives yield in general more floating point operations. - -% !split -\subsection{Chain rule, forward and reverse modes} - -In the above example we have introduced the variables $a$ and $b$, and our function is -\[ -f(x) = f(a(x)) = b= \exp{a}, -\] -with $a=x^2$. We can decompose the derivative of $f$ with respect to $x$ as -\[ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}. -\] - -We note that since $b=f(x)$ that -\[ -\frac{df}{db}=1, -\] -leading to -\[ -\frac{df}{dx}=\frac{db}{da}\frac{da}{dx}=2x\exp{x^2}, -\] -as before. - -% !split -\subsection{Forward and reverse modes} - -We have that -\[ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}, -\] -which we can rewrite either as -\[ -\frac{df}{dx}=\left[\frac{df}{db}\frac{db}{da}\right]\frac{da}{dx}, -\] -or -\[ -\frac{df}{dx}=\frac{df}{db}\left[\frac{db}{da}\frac{da}{dx}\right]. -\] - -The first expression is called reverse mode (or back propagation) -since we start by evaluating the derivatives at the end point and then -propagate backwards. This is the standard way of evaluating -derivatives (gradients) when optimizing the parameters of a neural -network. In the context of deep learning this is computationally -more efficient since the output of a neural network consists of either -one or some few other output variables. - -The second equation defines the so-called \textbf{forward mode}. - -% !split -\subsection{More complicated function} - -We increase our ambitions and introduce a slightly more complicated function -\[ -f(x) =\sqrt{x^2+exp{x^2}}, -\] -with derivative -\[ -f'(x) =\frac{x(1+\exp{x^2})}{\sqrt{x^2+exp{x^2}}}. -\] -The corresponding SymPy code reads - - - - - - - - - -\bpycod -from __future__ import division -from sympy import * -x = symbols('x') -expr = sqrt(x*x+exp(x*x)) -simplify(expr) -derivative = diff(expr,x) -print(python(expr)) -print(python(derivative)) - -\epycod - - -% !split -\subsection{Counting the number of floating point operations} - -A simple count of operations shows that we need five operations for -the function itself and ten for the derivative. Fifteen operations in total if we wish to proceed with the above codes. - -Can we reduce this to -say half the number of operations? - -% !split -\subsection{Defining intermediate operations} - -We can indeed reduce the number of operation to half of those listed in the brute force approach above. -We define the following quantities -\[ -a = x^2, -\] -and -\[ -b = \exp{x^2} = \exp{a}, -\] -and -\[ -c= a+b, -\] -and -\[ -d=f(x)=\sqrt{c}. -\] - -% !split -\subsection{New expression for the derivative} - -With these definitions we obtain the following partial derivatives -\[ -\frac{\partial a}{\partial x} = 2x, -\] -and -\[ -\frac{\partial b}{\partial a} = \exp{a}, -\] -and -\[ -\frac{\partial c}{\partial a} = 1, -\] -and -\[ -\frac{\partial c}{\partial b} = 1, -\] -and -\[ -\frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -\] -and finally -\[ -\frac{\partial f}{\partial d} = 1. -\] - -% !split -\subsection{Final derivatives} -Our final derivatives are thus -\[ -\frac{\partial f}{\partial c} = \frac{\partial f}{\partial d} \frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -\] -\[ -\frac{\partial f}{\partial b} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial b} = \frac{1}{2\sqrt{c}}, -\] -\[ -\frac{\partial f}{\partial a} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial a}+ -\frac{\partial f}{\partial b} \frac{\partial b}{\partial a} = \frac{1+\exp{a}}{2\sqrt{c}}, -\] -and finally -\[ -\frac{\partial f}{\partial x} = \frac{\partial f}{\partial a} \frac{\partial a}{\partial x} = \frac{x(1+\exp{a})}{\sqrt{c}}, -\] -which is just -\[ -\frac{\partial f}{\partial x} = \frac{x(1+b)}{d}, -\] -and requires only three operations if we can reuse all intermediate variables. - -% !split -\subsection{In general not this simple} - -In general, see the generalization below, unless we can obtain simple -analytical expressions which we can simplify further, the final -implementation of automatic differentiation involves repeated -calculations (and thereby operations) of derivatives of elementary -functions. - -% !split -\subsection{Automatic differentiation} - -We can make this example more formal. Automatic differentiation is a -formalization of the previous example (see graph). - -We define $\bm{x}\in x_1,\dots, x_l$ input variables to a given function $f(\bm{x})$ and $x_{l+1},\dots, x_L$ intermediate variables. - -In the above example we have only one input variable, $l=1$ and four intermediate variables, that is -\[ -\begin{bmatrix} x_1=x & x_2 = x^2=a & x_3 =\exp{a}= b & x_4=c=a+b & x_5 = \sqrt{c}=d \end{bmatrix}. -\] - -Furthemore, for $i=l+1, \dots, L$ (here $i=2,3,4,5$ and $f=x_L=d$), we -define the elementary functions $g_i(x_{Pa(x_i)})$ where $x_{Pa(x_i)}$ are the parent nodes of the variable $x_i$. - -In our case, we have for example for $x_3=g_3(x_{Pa(x_i)})=\exp{a}$, that $g_3=\exp{()}$ and $x_{Pa(x_3)}=a$. - -% !split -\subsection{Chain rule} - -We can now compute the gradients by back-propagating the derivatives using the chain rule. -We have defined -\[ -\frac{\partial f}{\partial x_L} = 1, -\] -which allows us to find the derivatives of the various variables $x_i$ as -\[ -\frac{\partial f}{\partial x_i} = \sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial x_j}{\partial x_i}=\sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial g_j}{\partial x_i}. -\] - -Whenever we have a function which can be expressed as a computation -graph and the various functions can be expressed in terms of -elementary functions that are differentiable, then automatic -differentiation works. The functions may not need to be elementary -functions, they could also be computer programs, although not all -programs can be automatically differentiated. - -% !split -\subsection{First network example, simple percepetron with one input} - -As yet another example we define now a simple perceptron model with -all quantities given by scalars. We consider only one input variable -$x$ and one target value $y$. We define an activation function -$\sigma_1$ which takes as input - -\[ -z_1 = w_1x+b_1, -\] -where $w_1$ is the weight and $b_1$ is the bias. These are the -parameters we want to optimize. The output is $a_1=\sigma(z_1)$ (see -graph from whiteboard notes). This output is then fed into the -\textbf{cost/loss} function, which we here for the sake of simplicity just -define as the squared error - -\[ -C(x;w_1,b_1)=\frac{1}{2}(a_1-y)^2. -\] - -% !split -\subsection{Layout of a simple neural network with no hidden layer} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/simplenn1.png}} - -\vspace{6mm} - -% !split -\subsection{Optimizing the parameters} - -In setting up the feed forward and back propagation parts of the -algorithm, we need now the derivative of the various variables we want -to train. - -We need -\[ -\frac{\partial C}{\partial w_1} \hspace{0.1cm}\mathrm{and}\hspace{0.1cm}\frac{\partial C}{\partial b_1}. -\] - -Using the chain rule we find -\[ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_1-y)\sigma_1'x, -\] -and -\[ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_1-y)\sigma_1', -\] -which we later will just define as -\[ -\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}=\delta_1. -\] - -% !split -\subsection{Adding a hidden layer} - -We change our simple model to (see graph) -a network with just one hidden layer but with scalar variables only. - -Our output variable changes to $a_2$ and $a_1$ is now the output from the hidden node and $a_0=x$. -We have then -\[ -z_1 = w_1a_0+b_1 \hspace{0.1cm} \wedge a_1 = \sigma_1(z_1), -\] -\[ -z_2 = w_2a_1+b_2 \hspace{0.1cm} \wedge a_2 = \sigma_2(z_2), -\] -and the cost function -\[ -C(x;\bm{\Theta})=\frac{1}{2}(a_2-y)^2, -\] -with $\bm{\Theta}=[w_1,w_2,b_1,b_2]$. - -% !split -\subsection{Layout of a simple neural network with one hidden layer} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/simplenn2.png}} - -\vspace{6mm} - -% !split -\subsection{The derivatives} - -The derivatives are now, using the chain rule again - -\[ -\frac{\partial C}{\partial w_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial w_2}=(a_2-y)\sigma_2'a_1=\delta_2a_1, -\] -\[ -\frac{\partial C}{\partial b_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial b_2}=(a_2-y)\sigma_2'=\delta_2, -\] -\[ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_2-y)\sigma_2'a_1\sigma_1'a_0, -\] -\[ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_2-y)\sigma_2'\sigma_1'=\delta_1. -\] - -Can you generalize this to more than one hidden layer? - -% !split -\subsection{Important observations} - -\begin{block}{} -From the above equations we see that the derivatives of the activation -functions play a central role. If they vanish, the training may -stop. This is called the vanishing gradient problem, see discussions below. If they become -large, the parameters $w_i$ and $b_i$ may simply go to infinity. This -is referenced as the exploding gradient problem. -\end{block} - -% !split -\subsection{The training} - -The training of the parameters is done through various gradient descent approximations with - -\[ -w_{i}\leftarrow w_{i}- \eta \delta_i a_{i-1}, -\] -and -\[ -b_i \leftarrow b_i-\eta \delta_i, -\] -with $\eta$ is the learning rate. - -One iteration consists of one feed forward step and one back-propagation step. Each back-propagation step does one update of the parameters $\bm{\Theta}$. - -For the first hidden layer $a_{i-1}=a_0=x$ for this simple model. - -% !split -\subsection{Code example} - -The code here implements the above model with one hidden layer and -scalar variables for the same function we studied in the previous -example. The code is however set up so that we can add multiple -inputs $x$ and target values $y$. Note also that we have the -possibility of defining a feature matrix $\bm{X}$ with more than just -one column for the input values. This will turn useful in our next example. We have also defined matrices and vectors for all of our operations although it is not necessary here. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\bpycod -import numpy as np -# We use the Sigmoid function as activation function -def sigmoid(z): - return 1.0/(1.0+np.exp(-z)) - -def forwardpropagation(x): - # weighted sum of inputs to the hidden layer - z_1 = np.matmul(x, w_1) + b_1 - # activation in the hidden layer - a_1 = sigmoid(z_1) - # weighted sum of inputs to the output layer - z_2 = np.matmul(a_1, w_2) + b_2 - a_2 = z_2 - return a_1, a_2 - -def backpropagation(x, y): - a_1, a_2 = forwardpropagation(x) - # parameter delta for the output layer, note that a_2=z_2 and its derivative wrt z_2 is just 1 - delta_2 = a_2 - y - print(0.5*((a_2-y)**2)) - # delta for the hidden layer - delta_1 = np.matmul(delta_2, w_2.T) * a_1 * (1 - a_1) - # gradients for the output layer - output_weights_gradient = np.matmul(a_1.T, delta_2) - output_bias_gradient = np.sum(delta_2, axis=0) - # gradient for the hidden layer - hidden_weights_gradient = np.matmul(x.T, delta_1) - hidden_bias_gradient = np.sum(delta_1, axis=0) - return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient - - -# ensure the same random numbers appear every time -np.random.seed(0) -# Input variable -x = np.array([4.0],dtype=np.float64) -# Target values -y = 2*x+1.0 - -# Defining the neural network, only scalars here -n_inputs = x.shape -n_features = 1 -n_hidden_neurons = 1 -n_outputs = 1 - -# Initialize the network -# weights and bias in the hidden layer -w_1 = np.random.randn(n_features, n_hidden_neurons) -b_1 = np.zeros(n_hidden_neurons) + 0.01 - -# weights and bias in the output layer -w_2 = np.random.randn(n_hidden_neurons, n_outputs) -b_2 = np.zeros(n_outputs) + 0.01 - -eta = 0.1 -for i in range(50): - # calculate gradients - derivW2, derivB2, derivW1, derivB1 = backpropagation(x, y) - # update weights and biases - w_2 -= eta * derivW2 - b_2 -= eta * derivB2 - w_1 -= eta * derivW1 - b_1 -= eta * derivB1 - - - -\epycod - - -We see that after some few iterations (the results do depend on the learning rate however), we get an error which is rather small. - -% !split - -% --- begin exercise --- -\begin{doconceexercise} -\refstepcounter{doconceexercisecounter} - -\exercisesection{Exercise \thedoconceexercisecounter: Including more data} - - -Try to increase the amount of input and -target/output data. Try also to perform calculations for more values -of the learning rates. Feel free to add either hyperparameters with an -$l_1$ norm or an $l_2$ norm and discuss your results. -Discuss your results as functions of the amount of training data and various learning rates. - -\textbf{Challenge:} Try to change the activation functions and replace the hard-coded analytical expressions with automatic derivation via either \textbf{autograd} or \textbf{JAX}. - -\end{doconceexercise} -% --- end exercise --- - -% !split -\subsection{Simple neural network and the back propagation equations} - -Let us now try to increase our level of ambition and attempt at setting -up the equations for a neural network with two input nodes, one hidden -layer with two hidden nodes and one output layer with one output node/neuron only (see graph).. - -We need to define the following parameters and variables with the input layer (layer $(0)$) -where we label the nodes $x_0$ and $x_1$ -\[ -x_0 = a_0^{(0)} \wedge x_1 = a_1^{(0)}. -\] - -The hidden layer (layer $(1)$) has nodes which yield the outputs $a_0^{(1)}$ and $a_1^{(1)}$) with weight $\bm{w}$ and bias $\bm{b}$ parameters -\[ -w_{ij}^{(1)}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)}\right\} \wedge b^{(1)}=\left\{b_0^{(1)},b_1^{(1)}\right\}. -\] - -% !split -\subsection{Layout of a simple neural network with two input nodes, one hidden layer and one output node} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/simplenn3.png}} - -\vspace{6mm} - -% !split -\subsection{The ouput layer} - -Finally, we have the ouput layer given by layer label $(2)$ with output $a^{(2)}$ and weights and biases to be determined given by the variables -\[ -w_{i}^{(2)}=\left\{w_{0}^{(2)},w_{1}^{(2)}\right\} \wedge b^{(2)}. -\] - -Our output is $\tilde{y}=a^{(2)}$ and we define a generic cost function $C(a^{(2)},y;\bm{\Theta})$ where $y$ is the target value (a scalar here). -The parameters we need to optimize are given by -\[ -\bm{\Theta}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)},w_{0}^{(2)},w_{1}^{(2)},b_0^{(1)},b_1^{(1)},b^{(2)}\right\}. -\] - -% !split -\subsection{Compact expressions} - -We can define the inputs to the activation functions for the various layers in terms of various matrix-vector multiplications and vector additions. -The inputs to the first hidden layer are -\[ -\begin{bmatrix}z_0^{(1)} \\ z_1^{(1)} \end{bmatrix}=\begin{bmatrix}w_{00}^{(1)} & w_{01}^{(1)}\\ w_{10}^{(1)} &w_{11}^{(1)} \end{bmatrix}\begin{bmatrix}a_0^{(0)} \\ a_1^{(0)} \end{bmatrix}+\begin{bmatrix}b_0^{(1)} \\ b_1^{(1)} \end{bmatrix}, -\] -with outputs -\[ -\begin{bmatrix}a_0^{(1)} \\ a_1^{(1)} \end{bmatrix}=\begin{bmatrix}\sigma^{(1)}(z_0^{(1)}) \\ \sigma^{(1)}(z_1^{(1)}) \end{bmatrix}. -\] - -% !split -\subsection{Output layer} - -For the final output layer we have the inputs to the final activation function -\[ -z^{(2)} = w_{0}^{(2)}a_0^{(1)} +w_{1}^{(2)}a_1^{(1)}+b^{(2)}, -\] -resulting in the output -\[ -a^{(2)}=\sigma^{(2)}(z^{(2)}). -\] - -% !split -\subsection{Explicit derivatives} - -In total we have nine parameters which we need to train. Using the -chain rule (or just the back-propagation algorithm) we can find all -derivatives. Since we will use automatic differentiation in reverse -mode, we start with the derivatives of the cost function with respect -to the parameters of the output layer, namely - -\[ -\frac{\partial C}{\partial w_{i}^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial w_{i}^{(2)}}=\delta^{(2)}a_i^{(1)}, -\] -with -\[ -\delta^{(2)}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\] -and finally -\[ -\frac{\partial C}{\partial b^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial b^{(2)}}=\delta^{(2)}. -\] - -% !split -\subsection{Derivatives of the hidden layer} - -Using the chain rule we have the following expressions for say one of the weight parameters (it is easy to generalize to the other weight parameters) -\[ -\frac{\partial C}{\partial w_{00}^{(1)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}= \delta^{(2)}\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}, -\] -which, noting that -\[ -z^{(2)} =w_0^{(2)}a_0^{(1)}+w_1^{(2)}a_1^{(1)}+b^{(2)}, -\] -allows us to rewrite -\[ -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}a_0^{(1)}. -\] - -% !split -\subsection{Final expression} -Defining -\[ -\delta_0^{(1)}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}\delta^{(2)}, -\] -we have -\[ -\frac{\partial C}{\partial w_{00}^{(1)}}=\delta_0^{(1)}a_0^{(1)}. -\] -Similarly, we obtain -\[ -\frac{\partial C}{\partial w_{01}^{(1)}}=\delta_0^{(1)}a_1^{(1)}. -\] - -% !split -\subsection{Completing the list} - -Similarly, we find -\[ -\frac{\partial C}{\partial w_{10}^{(1)}}=\delta_1^{(1)}a_0^{(1)}, -\] -and -\[ -\frac{\partial C}{\partial w_{11}^{(1)}}=\delta_1^{(1)}a_1^{(1)}, -\] -where we have defined -\[ -\delta_1^{(1)}=w_1^{(2)}\frac{\partial a_1^{(1)}}{\partial z_1^{(1)}}\delta^{(2)}. -\] - -% !split -\subsection{Final expressions for the biases of the hidden layer} - -For the sake of completeness, we list the derivatives of the biases, which are -\[ -\frac{\partial C}{\partial b_{0}^{(1)}}=\delta_0^{(1)}, -\] -and -\[ -\frac{\partial C}{\partial b_{1}^{(1)}}=\delta_1^{(1)}. -\] -As we will see below, these expressions can be generalized in a more compact form. - -% !split -\subsection{Gradient expressions} - -For this specific model, with just one output node and two hidden -nodes, the gradient descent equations take the following form for output layer -\[ -w_{i}^{(2)}\leftarrow w_{i}^{(2)}- \eta \delta^{(2)} a_{i}^{(1)}, -\] -and -\[ -b^{(2)} \leftarrow b^{(2)}-\eta \delta^{(2)}, -\] -and -\[ -w_{ij}^{(1)}\leftarrow w_{ij}^{(1)}- \eta \delta_{i}^{(1)} a_{j}^{(0)}, -\] -and -\[ -b_{i}^{(1)} \leftarrow b_{i}^{(1)}-\eta \delta_{i}^{(1)}, -\] -where $\eta$ is the learning rate. - -% !split - -% --- begin exercise --- -\begin{doconceexercise} -\refstepcounter{doconceexercisecounter} - -\exercisesection{Exercise \thedoconceexercisecounter: Extended program} - - -We extend our simple code to a function which depends on two variable $x_0$ and $x_1$, that is -\[ -y=f(x_0,x_1)=x_0^2+3x_0x_1+x_1^2+5. -\] -We feed our network with $n=100$ entries $x_0$ and $x_1$. We have thus two features represented by these variable and an input matrix/design matrix $\bm{X}\in \mathbf{R}^{n\times 2}$ -\[ -\bm{X}=\begin{bmatrix} x_{00} & x_{01} \\ x_{00} & x_{01} \\ x_{10} & x_{11} \\ x_{20} & x_{21} \\ \dots & \dots \\ \dots & \dots \\ x_{n-20} & x_{n-21} \\ x_{n-10} & x_{n-11} \end{bmatrix}. -\] -Write a code, based on the previous code examples, which takes as input these data and fit the above function. -You can extend your code to include automatic differentiation. - -With these examples, we are now ready to embark upon the writing of more a general code for neural networks. - -\end{doconceexercise} -% --- end exercise --- - -% !split -\subsection{Getting serious, the back propagation equations for a neural network} - -Now it is time to move away from one node in each layer only. Our inputs are also represented either by several inputs. - -We have thus -\[ -\frac{\partial{\cal C}((\bm{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)a_j^L(1-a_j^L)a_k^{L-1}, -\] - -Defining -\[ -\delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - y_j\right) = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\] -and using the Hadamard product of two vectors we can write this as -\[ -\bm{\delta}^L = \sigma'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\bm{a}^L)}. -\] - -% !split -\subsection{Analyzing the last results} - -This is an important expression. The second term on the right handside -measures how fast the cost function is changing as a function of the $j$th -output activation. If, for example, the cost function doesn't depend -much on a particular output node $j$, then $\delta_j^L$ will be small, -which is what we would expect. The first term on the right, measures -how fast the activation function $f$ is changing at a given activation -value $z_j^L$. - -% !split -\subsection{More considerations} - -Notice that everything in the above equations is easily computed. In -particular, we compute $z_j^L$ while computing the behaviour of the -network, and it is only a small additional overhead to compute -$\sigma'(z^L_j)$. The exact form of the derivative with respect to the -output depends on the form of the cost function. -However, provided the cost function is known there should be little -trouble in calculating - -\[ -\frac{\partial {\cal C}}{\partial (a_j^L)} -\] - -With the definition of $\delta_j^L$ we have a more compact definition of the derivative of the cost function in terms of the weights, namely -\[ -\frac{\partial{\cal C}}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. -\] - -% !split -\subsection{Derivatives in terms of $z_j^L$} - -It is also easy to see that our previous equation can be written as - -\[ -\delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, -\] -which can also be interpreted as the partial derivative of the cost function with respect to the biases $b_j^L$, namely -\[ -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, -\] -That is, the error $\delta_j^L$ is exactly equal to the rate of change of the cost function as a function of the bias. - -% !split -\subsection{Bringing it together} - -We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are - -\begin{equation} -\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, -\end{equation} -and -\begin{equation} -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\end{equation} -and - -\begin{equation} -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, -\end{equation} - -% !split -\subsection{Final back propagating equation} - -We have that (replacing $L$ with a general layer $l$) -\[ -\delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. -\] -We want to express this in terms of the equations for layer $l+1$. - -% !split -\subsection{Using the chain rule and summing over all $k$ entries} - -We obtain -\[ -\delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, -\] -and recalling that -\[ -z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, -\] -with $M_l$ being the number of nodes in layer $l$, we obtain -\[ -\delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l), -\] -This is our final equation. - -We are now ready to set up the algorithm for back propagation and learning the weights and biases. - -% !split -\subsection{Setting up the back propagation algorithm} - -The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm. - -\textbf{First}, we set up the input data $\hat{x}$ and the activations -$\hat{z}_1$ of the input layer and compute the activation function and -the pertinent outputs $\hat{a}^1$. - -\textbf{Secondly}, we perform then the feed forward till we reach the output -layer and compute all $\hat{z}_l$ of the input layer and compute the -activation function and the pertinent outputs $\hat{a}^l$ for -$l=1,2,3,\dots,L$. - -\textbf{Notation}: The first hidden layer has $l=1$ as label and the final output layer has $l=L$. - -% !split -\subsection{Setting up the back propagation algorithm, part 2} - -Thereafter we compute the ouput error $\hat{\delta}^L$ by computing all -\[ -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. -\] - -Then we compute the back propagate error for each $l=L-1,L-2,\dots,1$ as -\[ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l). -\] - -% !split -\subsection{Setting up the Back propagation algorithm, part 3} - -Finally, we update the weights and the biases using gradient descent -for each $l=L-1,L-2,\dots,1$ and update the weights and biases -according to the rules - -\[ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -\] - -\[ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -\] -with $\eta$ being the learning rate. - -% !split -\subsection{Updating the gradients} - -With the back propagate error for each $l=L-1,L-2,\dots,1$ as -\[ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}sigma'(z_j^l), -\] -we update the weights and the biases using gradient descent for each $l=L-1,L-2,\dots,1$ and update the weights and biases according to the rules -\[ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -\] - -\[ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -\] - -% !split -\paragraph{Activation functions.} -A property that characterizes a neural network, other than its -connectivity, is the choice of activation function(s). As described -in, the following restrictions are imposed on an activation function -for a FFNN to fulfill the universal approximation theorem - -\begin{itemize} - \item Non-constant - - \item Bounded - - \item Monotonically-increasing - - \item Continuous -\end{itemize} - -\noindent -% !split -\paragraph{Activation functions, Logistic and Hyperbolic ones.} -The second requirement excludes all linear functions. Furthermore, in -a MLP with only linear activation functions, each layer simply -performs a linear transformation of its inputs. - -Regardless of the number of layers, the output of the NN will be -nothing but a linear function of the inputs. Thus we need to introduce -some kind of non-linearity to the NN to be able to fit non-linear -functions Typical examples are the logistic \emph{Sigmoid} - -\[ - f(x) = \frac{1}{1 + e^{-x}}, -\] -and the \emph{hyperbolic tangent} function -\[ - f(x) = \tanh(x) -\] - -% !split -\paragraph{Relevance.} -The \emph{sigmoid} function are more biologically plausible because the -output of inactive neurons are zero. Such activation function are -called \emph{one-sided}. However, it has been shown that the hyperbolic -tangent performs better than the sigmoid for training MLPs. has -become the most popular for \emph{deep neural networks} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\bpycod -"""The sigmoid function (or the logistic curve) is a -function that takes any real number, z, and outputs a number (0,1). -It is useful in neural networks for assigning weights on a relative scale. -The value z is the weighted sum of parameters involved in the learning algorithm.""" - -import numpy -import matplotlib.pyplot as plt -import math as mt - -z = numpy.arange(-5, 5, .1) -sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z))) -sigma = sigma_fn(z) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, sigma) -ax.set_ylim([-0.1, 1.1]) -ax.set_xlim([-5,5]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('sigmoid function') - -plt.show() - -"""Step Function""" -z = numpy.arange(-5, 5, .02) -step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0) -step = step_fn(z) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, step) -ax.set_ylim([-0.5, 1.5]) -ax.set_xlim([-5,5]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('step function') - -plt.show() - -"""Sine Function""" -z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1) -t = numpy.sin(z) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, t) -ax.set_ylim([-1.0, 1.0]) -ax.set_xlim([-2*mt.pi,2*mt.pi]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('sine function') - -plt.show() - -"""Plots a graph of the squashing function used by a rectified linear -unit""" -z = numpy.arange(-2, 2, .1) -zero = numpy.zeros(len(z)) -y = numpy.max([zero, z], axis=0) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, y) -ax.set_ylim([-2.0, 2.0]) -ax.set_xlim([-2.0, 2.0]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('Rectified linear unit') - -plt.show() - -\epycod - - -% !split -\subsection{Fine-tuning neural network hyperparameters} - -The flexibility of neural networks is also one of their main -drawbacks: there are many hyperparameters to tweak. Not only can you -use any imaginable network topology (how neurons/nodes are -interconnected), but even in a simple FFNN you can change the number -of layers, the number of neurons per layer, the type of activation -function to use in each layer, the weight initialization logic, the -stochastic gradient optmized and much more. How do you know what -combination of hyperparameters is the best for your task? - -\begin{itemize} -\item You can use grid search with cross-validation to find the right hyperparameters. -\end{itemize} - -\noindent -However,since there are many hyperparameters to tune, and since -training a neural network on a large dataset takes a lot of time, you -will only be able to explore a tiny part of the hyperparameter space. - -\begin{itemize} -\item You can use randomized search. - -\item Or use tools like \href{{http://oscar.calldesk.ai/}}{Oscar}, which implements more complex algorithms to help you find a good set of hyperparameters quickly. -\end{itemize} - -\noindent -% !split -\subsection{Hidden layers} - -For many problems you can start with just one or two hidden layers and -it will work just fine. For the MNIST data set you ca easily get a -high accuracy using just one hidden layer with a few hundred neurons. -You can reach for this data set above 98\% accuracy using two hidden -layers with the same total amount of neurons, in roughly the same -amount of training time. - -For more complex problems, you can gradually ramp up the number of -hidden layers, until you start overfitting the training set. Very -complex tasks, such as large image classification or speech -recognition, typically require networks with dozens of layers and they -need a huge amount of training data. However, you will rarely have to -train such networks from scratch: it is much more common to reuse -parts of a pretrained state-of-the-art network that performs a similar -task. - -% !split -\subsection{Vanishing gradients} - -The Back propagation algorithm we derived above works by going from -the output layer to the input layer, propagating the error gradient on -the way. Once the algorithm has computed the gradient of the cost -function with regards to each parameter in the network, it uses these -gradients to update each parameter with a Gradient Descent (GD) step. - -Unfortunately for us, the gradients often get smaller and smaller as -the algorithm progresses down to the first hidden layers. As a result, -the GD update leaves the lower layer connection weights virtually -unchanged, and training never converges to a good solution. This is -known in the literature as \textbf{the vanishing gradients problem}. - -% !split -\subsection{Exploding gradients} - -In other cases, the opposite can happen, namely the the gradients can -grow bigger and bigger. The result is that many of the layers get -large updates of the weights the algorithm diverges. This is the -\textbf{exploding gradients problem}, which is mostly encountered in -recurrent neural networks. More generally, deep neural networks suffer -from unstable gradients, different layers may learn at widely -different speeds - -% !split -\subsection{Is the Logistic activation function (Sigmoid) our choice?} - -Although this unfortunate behavior has been empirically observed for -quite a while (it was one of the reasons why deep neural networks were -mostly abandoned for a long time), it is only around 2010 that -significant progress was made in understanding it. - -A paper titled \href{{http://proceedings.mlr.press/v9/glorot10a.html}}{Understanding the Difficulty of Training Deep -Feedforward Neural Networks by Xavier Glorot and Yoshua Bengio} found that -the problems with the popular logistic -sigmoid activation function and the weight initialization technique -that was most popular at the time, namely random initialization using -a normal distribution with a mean of 0 and a standard deviation of -1. - -% !split -\subsection{Logistic function as the root of problems} - -They showed that with this activation function and this -initialization scheme, the variance of the outputs of each layer is -much greater than the variance of its inputs. Going forward in the -network, the variance keeps increasing after each layer until the -activation function saturates at the top layers. This is actually made -worse by the fact that the logistic function has a mean of 0.5, not 0 -(the hyperbolic tangent function has a mean of 0 and behaves slightly -better than the logistic function in deep networks). - -% !split -\subsection{The derivative of the Logistic funtion} - -Looking at the logistic activation function, when inputs become large -(negative or positive), the function saturates at 0 or 1, with a -derivative extremely close to 0. Thus when backpropagation kicks in, -it has virtually no gradient to propagate back through the network, -and what little gradient exists keeps getting diluted as -backpropagation progresses down through the top layers, so there is -really nothing left for the lower layers. - -In their paper, Glorot and Bengio propose a way to significantly -alleviate this problem. We need the signal to flow properly in both -directions: in the forward direction when making predictions, and in -the reverse direction when backpropagating gradients. We don’t want -the signal to die out, nor do we want it to explode and saturate. For -the signal to flow properly, the authors argue that we need the -variance of the outputs of each layer to be equal to the variance of -its inputs, and we also need the gradients to have equal variance -before and after flowing through a layer in the reverse direction. - -% !split -\subsection{Insights from the paper by Glorot and Bengio} - -One of the insights in the 2010 paper by Glorot and Bengio was that -the vanishing/exploding gradients problems were in part due to a poor -choice of activation function. Until then most people had assumed that -if Nature had chosen to use roughly sigmoid activation functions in -biological neurons, they must be an excellent choice. But it turns out -that other activation functions behave much better in deep neural -networks, in particular the ReLU activation function, mostly because -it does not saturate for positive values (and also because it is quite -fast to compute). - -% !split -\subsection{The RELU function family} - -The ReLU activation function suffers from a problem known as the dying -ReLUs: during training, some neurons effectively die, meaning they -stop outputting anything other than 0. - -In some cases, you may find that half of your network’s neurons are -dead, especially if you used a large learning rate. During training, -if a neuron’s weights get updated such that the weighted sum of the -neuron’s inputs is negative, it will start outputting 0. When this -happen, the neuron is unlikely to come back to life since the gradient -of the ReLU function is 0 when its input is negative. - -% !split -\subsection{ELU function} - -To solve this problem, nowadays practitioners use a variant of the -ReLU function, such as the leaky ReLU discussed above or the so-called -exponential linear unit (ELU) function - -\[ -ELU(z) = \left\{\begin{array}{cc} \alpha\left( \exp{(z)}-1\right) & z < 0,\\ z & z \ge 0.\end{array}\right. -\] - -% !split -\subsection{Which activation function should we use?} - -In general it seems that the ELU activation function is better than -the leaky ReLU function (and its variants), which is better than -ReLU. ReLU performs better than $\tanh$ which in turn performs better -than the logistic function. - -If runtime performance is an issue, then you may opt for the leaky -ReLU function over the ELU function If you don’t want to tweak yet -another hyperparameter, you may just use the default $\alpha$ of -$0.01$ for the leaky ReLU, and $1$ for ELU. If you have spare time and -computing power, you can use cross-validation or bootstrap to evaluate -other activation functions. - -% !split -\subsection{More on activation functions, output layers} - -In most cases you can use the ReLU activation function in the hidden -layers (or one of its variants). - -It is a bit faster to compute than other activation functions, and the -gradient descent optimization does in general not get stuck. - -\textbf{For the output layer:} - -\begin{itemize} -\item For classification the softmax activation function is generally a good choice for classification tasks (when the classes are mutually exclusive). - -\item For regression tasks, you can simply use no activation function at all. -\end{itemize} - -\noindent -% !split -\subsection{Batch Normalization} - -Batch Normalization aims to address the vanishing/exploding gradients -problems, and more generally the problem that the distribution of each -layer’s inputs changes during training, as the parameters of the -previous layers change. - -The technique consists of adding an operation in the model just before -the activation function of each layer, simply zero-centering and -normalizing the inputs, then scaling and shifting the result using two -new parameters per layer (one for scaling, the other for shifting). In -other words, this operation lets the model learn the optimal scale and -mean of the inputs for each layer. In order to zero-center and -normalize the inputs, the algorithm needs to estimate the inputs’ mean -and standard deviation. It does so by evaluating the mean and standard -deviation of the inputs over the current mini-batch, from this the -name batch normalization. - -% !split -\subsection{Dropout} - -It is a fairly simple algorithm: at every training step, every neuron -(including the input neurons but excluding the output neurons) has a -probability $p$ of being temporarily dropped out, meaning it will be -entirely ignored during this training step, but it may be active -during the next step. - -The hyperparameter $p$ is called the dropout rate, and it is typically -set to 50\%. After training, the neurons are not dropped anymore. It -is viewed as one of the most popular regularization techniques. - -% !split -\subsection{Gradient Clipping} - -A popular technique to lessen the exploding gradients problem is to -simply clip the gradients during backpropagation so that they never -exceed some threshold (this is mostly useful for recurrent neural -networks). - -This technique is called Gradient Clipping. - -In general however, Batch -Normalization is preferred. - -% !split -\subsection{A top-down perspective on Neural networks} - -The first thing we would like to do is divide the data into two or -three parts. A training set, a validation or dev (development) set, -and a test set. The test set is the data on which we want to make -predictions. The dev set is a subset of the training data we use to -check how well we are doing out-of-sample, after training the model on -the training dataset. We use the validation error as a proxy for the -test error in order to make tweaks to our model. It is crucial that we -do not use any of the test data to train the algorithm. This is a -cardinal sin in ML. Then: - -\begin{enumerate} -\item Estimate optimal error rate - -\item Minimize underfitting (bias) on training data set. - -\item Make sure you are not overfitting. -\end{enumerate} - -\noindent -% !split -\subsection{More top-down perspectives} - -If the validation and test sets are drawn from the same distributions, -then a good performance on the validation set should lead to similarly -good performance on the test set. - -However, sometimes -the training data and test data differ in subtle ways because, for -example, they are collected using slightly different methods, or -because it is cheaper to collect data in one way versus another. In -this case, there can be a mismatch between the training and test -data. This can lead to the neural network overfitting these small -differences between the test and training sets, and a poor performance -on the test set despite having a good performance on the validation -set. To rectify this, Andrew Ng suggests making two validation or dev -sets, one constructed from the training data and one constructed from -the test data. The difference between the performance of the algorithm -on these two validation sets quantifies the train-test mismatch. This -can serve as another important diagnostic when using DNNs for -supervised learning. - -% !split -\subsection{Limitations of supervised learning with deep networks} - -Like all statistical methods, supervised learning using neural -networks has important limitations. This is especially important when -one seeks to apply these methods, especially to physics problems. Like -all tools, DNNs are not a universal solution. Often, the same or -better performance on a task can be achieved by using a few -hand-engineered features (or even a collection of random -features). - -% !split -\subsection{Limitations of NNs} - -Here we list some of the important limitations of supervised neural network based models. - -\begin{itemize} -\item \textbf{Need labeled data}. All supervised learning methods, DNNs for supervised learning require labeled data. Often, labeled data is harder to acquire than unlabeled data (e.g.~one must pay for human experts to label images). - -\item \textbf{Supervised neural networks are extremely data intensive.} DNNs are data hungry. They perform best when data is plentiful. This is doubly so for supervised methods where the data must also be labeled. The utility of DNNs is extremely limited if data is hard to acquire or the datasets are small (hundreds to a few thousand samples). In this case, the performance of other methods that utilize hand-engineered features can exceed that of DNNs. -\end{itemize} - -\noindent -% !split -\subsection{Homogeneous data} - -\begin{itemize} -\item \textbf{Homogeneous data.} Almost all DNNs deal with homogeneous data of one type. It is very hard to design architectures that mix and match data types (i.e.~some continuous variables, some discrete variables, some time series). In applications beyond images, video, and language, this is often what is required. In contrast, ensemble models like random forests or gradient-boosted trees have no difficulty handling mixed data types. -\end{itemize} - -\noindent -% !split -\subsection{More limitations} - -\begin{itemize} -\item \textbf{Many problems are not about prediction.} In natural science we are often interested in learning something about the underlying distribution that generates the data. In this case, it is often difficult to cast these ideas in a supervised learning setting. While the problems are related, it is possible to make good predictions with a \emph{wrong} model. The model might or might not be useful for understanding the underlying science. -\end{itemize} - -\noindent -Some of these remarks are particular to DNNs, others are shared by all supervised learning methods. This motivates the use of unsupervised methods which in part circumvent these problems. - - -% ------------------- end of main content --------------- - -% #ifdef PREAMBLE -\end{document} -% #endif - diff --git a/doc/src/week41/week41.pdf b/doc/src/week41/week41.pdf deleted file mode 100644 index 59b557bf32ff7dae13db69de4091c56eed7828ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1170678 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∨%3{FICab~`y@J-7`73riPaRPLM=>vW11QkV|< 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%0A|@_Loz8(o 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
WkP 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

}_50z^ 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 z z)uHkgn&`ssxb+xF6&N^-NGMUTn5*M(XQ$S`ZS7$l@WWppK6OA6g6Fp^P}Yvpt2QOB zmtS22qqC@Owh{4}_$SjWW#Wh_Au;l}rr{P~1Z> zP`2`A95qaUP@h`UyT!Pr%CHZLoP@AU>+9KCkZTNQ74G{#KxKYpj zy@n=k`)v=QrM3nxUy|P-DX^ao)GBLp9}U|y`X1J> zB|Ec}j;rQ-zp>D9E3H;TY>M)MY4>XzwNr8U)cyZHm(I$3x+Q99exTI?Hu4&x{n3aD z-c>L_EWjZA7C-=Sg9gt!?7MFV`FnsQ7+Ru$@flvy1=Juj&j)1V3C{1_hnPjz4 zkK$&(;^idr_CXD$b;EXe-3)S+G4;Ehif=tj&#^miTQr+z(CUW5PKn zIw)>#$&w{;oZ$nnyHR8q?a@Q|t4_sLcA2$~l^s0@ILgP>mF%ma3#WG7!B!2>{S=Iz zyQx~I)p}5d5$w+-P-Itj*|eCwR>!rG9#%iQLs%>;U9Y4B4{65z%?HV%XD2zTWr_t+ z=!r`t6uyEVTZFZ>>&*Ue^F0J#oI*?4!6P0Zg;K#hGDlbgR1hM13VOfvUCvYjWUyym z3r$1p>#qOE`Cby<#lY&@l!ll;b)F(<^n1Pj{mN;-eNKM}kY(H(5_5%sCSkQ(#mv2T zNddDzcF@npRDFn{4aG%!OFxG@g)3#P*-Y)Zucz<~UOB-0%1xjKroB%aPO#H@=9YWcK=GG-0KL7LJ$ydS zt(PkP`q5Fv!Yg;WFjG+b;HFB+^oU3{v%Cn6UhPxo(=9WJ9m|?k!K8tjZ4?~*vsxB7 zTCc(8CpPTHWk|NAQD#F<$zaJFDD-_=`=B4DgLCh~BjDeI8B|eESi^Lz6+1>IAA!F8 zZhY6pA?l%2sA79ZrrUL2m%_LKU|m;!EY4_?wUU&Z8S^GJ(y*|nU0=!=WkMWh3m%sc z8?R9BtZ{uXf%2DJmj+DJh|@7!E= z79<~dkzQioC}QM|C#(PGbD~sdXU|*_^+8B1(RJ6O?$_{gKS6z*Zdw!G^qe^zGhU}G zjm6QiS+l0wb3@DTD-*flW)gjuiRO$jxbQbq!WsegnUKGYD(G#MW|@O;K48Ch4`UBm z;^mn+fk&?2^E>oi&DvQdMVI6*+l4j2LT`~!B=`O{&eT8JG0ZP+XyfgkiG|} zPhBQ%DVWW@WZ@#Y88F2D(#(Ml1irx+pOyOG$sA(4fLB?=yo8eWH=Uj>PSSrW$NWoKK_JYZ`AX&T zv8|bm`WXzqT%v$=Gg~4ggagcs1j1ECv}T?FLm}7n8P$^rJ{|smiH7bHcTvgKg8kvO zKHsuvS7+A?-W1K1U8Ogkq%K-LQ-N@vz}?3F^GbF^+{*&uVW5c#!_p_+nP>p;xOfDF z|47OU0ZHh(6|@?Olacw(mtRSEa;CsGtiaI%c$nXYXUG~?KD)Tg=SyK)D;WrB@(!P zU9D?etDej$kqM?;1fQM<3-QD@23XmS)WMYMkpkV9Nql>4il}j~qxcs%7YwI_y?d%6 zI7BNtsmXm_D}Ba&E=%b7{V&50`t~bYiL#Ziy}DXA=^U+99pGy9`N3m^a;Id;okM&x zASqqt~Z1I7HK3V6pps}l`MwvPu3uQbP@WO-fqGyXLRMh(FQYOucw9ek8 z<<&-W|A!1;%{{C31H`ivFHF>zARoh+Dw%#SdR8fj3ek9Y27U~il-uY5@(8FPR@QwT++<%mt9<$ZFY+p!6VNq!uV;|sp(~NOVMu}asQG0 ztPvl9=Sjy?Stqu#YxPgvSJ?MaKt5ksOtRx&=aB$w!GeRsi#?7*&>DHw%}*#8cEW>x z1-Ob+=kC6`?*Cf;)hZXCn3xYXxF#Atn^zxS>*fpTsGHf0{G;0-kllzhebD=RX@9_ZhWWB! zySiX!9?%1A%tVs2=D`Hohz0`3T|xT_``K%O9B+mrs}85UGTCe+orrp45t>?-Bt|Tf zAv{*uRF}5Y`}dnbqTOyFD4;dN1Mdoc-BrE>V3+uA>}0vxaI!hRy{@0M0yntT?o3$)B1wD)@kb=8V0 zk62NUY6g?J8Xt@3d|aw0l4lMjJNckrxsv-bpe~9HnyEAC8jhX_^O4nxseEjNT@Rc- z>%Lg-*$F%E4!YT1be1)9+)-Aewb^p383a&-MTI{YR*OiRwhk{ySWH4%GaLVr4Zx@t zy$ciy8AZQUMOcqnq*rvY2p#kcBCdqG+mkW@BJ5u>LAKs!5aw;Yt93I;kzzh7T0^ke-=ak9~PS);;G7 zv#d$wzeKsjD{RuRyhpY4&94_$W0bKTOUY~eJ@dGgr(2^BPxdR3OP+pa^MA~ER1(iY z=uO?u<5;&vB_k{XE=vrn1RM z2^w9M>Q=)a$Xfp+;Cs%SHmqf=ZShcw1%Ibg$-sxI-rSJ)YOUdXNmGOaOoiE=bSo;6 zTQE&QuF{$;xHCpj6M|yEClhuUfjhJ~jFj%TGeY4FRs2~D}Yz@R*O&<@cwK>TuxvU{72fmzg{dNx@ThV1e_|5(<9YZI-WO6${^izY0^H)FUk?vMk_YBD$GjLcjx%f;;5 zG57S@G)gSikW+DZN}~8w_Ai+MGSh_6i3YlJfyFyzJ`4*O*)N8Vq`nor63%##f(E)ic=DjP5b(7Oy^waJbrfdA5{S`!b!M zH{I8_x#_j0V8#pEjsG7Sz83JF^~j=H^&`JB8TF14Ux-fB)>BMZpTwQwuIsa077a$J z5xy3TGgAOB=@v59j?j2WeamkAxG*-fR*euibq-3dRzy}+pyLNj>HPQ>I8~h2WxKob zd#XCHZK&3W-JwS-NL@Sfn#KWI<%ouv#OHDVMft*7H4zfnw z@ZOTM?Qp=kkF_%={^UITO3$1x;ve%@stNqQrK1`j1lxr`19t2k9PvMcEiv^;i+N>C zLptg>Yt0WG&h$?iBXYJ(RnLP~ugstFX_bZ!mKKZ&4QuSN=9lPi=cZ!b2iF_hvY6Y5 zzu#@TsjhE;mJ84HSk5!?yAK?tH_o&QPL=GNqZbtf-#D;5siW_&_U8XF)716|GDkdYamTz6mbDY@)0~g{FrCU{w;wJe_{>s&D;js|`tR z2)Vz}iEempgQFTYRAe~5IE@%3+hY`-5*f9`GY72uyF*q#h1;mb4cC@lbkIO}#ft3qUz z=#nOpJ4em>jG8#*`)f{$+F(pr=hf5W62g@_sCcIQO4&8bK~U!28q#{}fOyixre0!AK=s-tWzKs@?}2J?!p1h>w)*~5gKT+Ht& z%QOw&ZL+V?)s*$*gIcO!7tJ=06^X(s5)O#4t}PWMu|s0u@UmLl-_|+>~>aaRx8Y| zfooB+q>E8m{FQR}6RfyPi}^zOLyq+68lP@foG^j?+GL>Uve%69GU8|)M}NWv0BALp zHP>|-+|C;sIRtYmg>0i6{A)G8ZklgJQ3L&Gl;i##0<*|$f~22h1IV$fKa&MrlnUN@0P%zl6{gS7}(hVO!Z^AD70(Y z?jU7Ci63`&$|74g{HjARMpcHD`i1`LZU^b2G540bxtA|wg{wj?qD@3vo_WQ*mb>7p z{9vUZt`nNmW#s2%hFtr+PcDK`zVj|hnje{4a>TC<(nBcDV_x95M~-lkB5Y3je9)7em8XIBx1iC+Q@j^Bd$Q6;#%d#yZaZ2$=P8 zX(l74yKj;byOUs{#J>U2DhIJ(6`ZFSfbCblXz!Vgr!0?Bb?OyiWxprM&Q_2W zns0SDvq>5A+iLDBBW_oJ4kWJ>8V}7r9*_T%a}sSN2-^E*euk{7&9D8U(VgbNB4bd}V3ydwVAr1E_TlsEe)kyPJz+&z zXi|5~=Xkk5l1>i@W0aH>Wg8|cLN!kFY>u3>y| z4`XPQ5DqKu!bjmHKDtAYU`IOe4lIAJWyT{zJ=1*f$Zw>HLYs{B2oFLL!eR*)8N}vs z;iLffoD_(?&8b>kUUa#zfE^b@TI-xl;T76rz9rh3$QiS+(|{~5%H6x0JpjY}j}1{s zNB#YgqhyM=Kgo?gR6;nF8BXaBR$LNRU%3@_g^iQ2kl@Fc%E+{Ir0g}cxw*a1saCtQ z|IRJY9k#GAl-{?1NpYzh&3K%1oV|EJ`zUE(idE0f-_!{cb;t&R?Zd0EH}dA#5wg?j z%wF;KU&Ez-5eTo>j6}>@XzJob_+HFs3tSdRhITT+R7?{UgX|jM%cG=^giOLz@4hl! zr$>hkti!wY$ntjdG8kMk@cD4NBRa~(=AV6S9nHj}d5j4~r{~{U^{a`mUQUP@TJbc( zVf8V6H?(y_b})=IKte`El48hNCI9IEYqtIb`bQJ-&nIOO@4{f7PN?4(CrqCW01(x{ zB!N=yNMG(6H~o8J$4@qd9b?C6R)!*t3QylEtec^?pm3fq@5;v z_ZXwrCO_>8&;z&QAjV0drWQz|6Q)S&-U`d{w4gJ$NT*?Vy!ijkC@*tm_yolyMu0)I zh%0Z#{tbcI;miII-}21fveEnXsqK7|X_`Iz^x&6AUrdXhq0Oimrw_IPQS$KsVRm|n z!pWR4rD;U4;^oh^6aM@!SdSu7Bmg{a=;FL@$x7EL)|9RgUnW39sxs*!9ob$<+5X;u zqWoimu-wv@gQs}^#^m*768+~{@4s=I!)&$=&*#RtUZtqL^AS-`C3G$SeCwO41szB~ha`v6qR>Kc1q$93)~FTUxj;GNUz?QG_BD_pB( zm!Z7aThz|pYJ1Qqc3Te_2wg%4FgS@md2w!a5kG;&+#&GpU%UZhUud4482l&yf+}y< z9q4aS>-sXyyGxtynau?@)1$x8)2^xo}9 zIadbhzWqyPyz_;)pNjR`c4E3g^Np6+=!EF#a`ieN&QCv`%>k)ZlZco{3{abCJnHJH zfBG>@zgjbphoVX?UkH-3Wvx&4u9#@gCQ9vi9H%QxKa;ssjXy;Dc=qS7c|yCYc!Au( z*m10Q6sCVGF-H-q{ro_=Z7`9Y>iu6OGz}k0s;@z4HFU+?wcUk?jD*qAwBz}??oT9L ztA0;hE&Hy~O4uHx&h(ByNGJq^-5;F=hv)Thq%bd%XXnzacHpu^#>S4+yik}GKAb6U zulEn;=eo6VQ7#CN;|o=HiBfL5V)Wwx7DG}T1TJ%AxY2X&Lg-Ce05~Bx3bG;eUz^oF zOv}GzxOu$=4t2#R(xxhC_p4Lq>IJF{vh`R?|7`m@iEjWI(k&78n?BxquU-NdD zwBa*P-D{S1(PcH7?)9yRKV*#)A+REmMD~eYpIT_){i$Usd#GPAR;gYr@Fddi@b2O| znH$^D2`Lk@B3>U~?e-n1cq5f$?vmJ3RJtj;s-IVLk~lof@_QFr)0E0OjMqzSh>)3g zhnE;++eTP7KlRnbp`caOU_RW=+A>muv81Qb+U{Cwe8#7qHwh7$~7hCs;3y+eiLs}C7|2V6ZSYX3rtHLI~)k8V4v9n)A&=%(A97@CP za~4@UuL60~hlCAT&geI8-RIry*IbU4XlQPkMVlBiEqNbnjpCfM3HxjO?pw;$is}bJ8-E_Del4|1hh1_K&BlFU#;( zPAT^kd#0a|ZyD`8N;sx;4?6#KxoK%FWudEJK^Ig~upz zjk@}tYO7LlF-`k>dTb55PE*VrYNh7dln@(YZ%`BITR*V3W{fR#`n#a9n9QKYc+rbe z(Cj&1@yYaaZDKrVEgws|`O+lOBp(Bd5UlJyXMTyK^K1|Z%#!M2vm_DgU*sHzmb+== zPYAydQ|Z>DkCKJZ0D4z`Y57m@43L_hlw3i^bt3v88T#^oE(Wq4TH&$Ztz+eW^;tRf zc~D?j@Ja>!7^1gwFARUMJKbNs46b#KY~oD;3$CZV!ndugk-jBxb_6RZHQj#~?oPTs zbTTD%aN#POe$krpJ7V&25VO9X*)YX@^(Zvz!L=uNg@{Eydi7emG0gDgW|RRqCp$Gl z_I-=BWARPYSh4aMN_*)R>$(m-x~%5%*4%#vT_q)Vfp*<)y&eGm+C(%1{ZlW!;0ko? z2ir6^=M*=q44}dfv>?ysDJAytCeVV#dpaB6Ro=vN(|Itc=i-I{e&5bp)z91-Qw=3Y z&uGONn1E4>kGvP+80W3sTkB%R8#AcsU|cu;fh6F= z-7zIk{R*eZCqH^?=BgXM)u6Onsgv@vhdJFjDW4`yB;-jgJ-;@zB{jXC$>y-w4Kn-5 z?Cl*6V;)nj@Bc=i0)1a1T{50~IQ^NT7-B^mJ+aSm30tQX^J)YpO*X^COq$7QrICu6 z-#sif;v=u-&{+jMOjP}@*53q$#5UuTv{bHYAsB(K6)P?K=C6)MAptEFp7+(nTam_L zm@qlU*6L}$YD9rYFzIGJ9R-|6XLtv7uFwkW^4w*t5896d4fhk?tg93!8OE~jTXA!7 z8*zV^rto{7!9;XE=>5Mg!aQerRsS1|%nF`F0YplR+LWQiPlN`YZ7bTCmkA{Nb`Duo zTA51Zyu9l@cyEGMb(o}PeM^>7J;1RY?}m8-!>Y8NJ0po5RV^m61O^2==TC)t7b-uQ z(k&T3_O0V#%-?f8Rt_51I_|`92G)Y0E2NhYca}^zbGd7nD^G4GViK+94mMoS{g=8t z6sYxEWQnw$!}uD14_2T>bSt%#vacRh?d$L9*RstSgs!DO%LbG(i18iXaT zKB4uVt#m^pp*vt9w&J4D@u)w_Q1=uFEZjSH5PF#Ac7LFsC>M45daHUI>1loyE$R|eHUg|R#VENIBM6;sK6}1 z?~`e&drOJQ^K9y#h@txrnID+CEP}}uF(A}$;6cCBVDS83f??^K5ws`3s>g?#EKLOS z;UN{fte^6-zmr*JQk2>R2NmygX$W)Q->pTULtD(X%w9dkJ#QFhL!52zWjm{&OVz|F zeyN|zyiyT1mD5t^eE#)|s(3Tv=P`rh&O?pCaA5uj?(=L^qv_dwQ`~cb1&BZad-JUL z@WIBgp`0MhHNbq5Q=+%A^MdryPHopo&}5_un#!Aiod#D}+}xvb6qRJIklYO4BA_?< zp9UTXB;`&S-dzKvj6AXQwPLG(7DbY_iI#oArUp1FA(?WYqi%dGe)7g`&V4`F1vBNg z)y>)Am0Z~cbl7hP1<+Nz7JCx8kjH!TJ4|UZfMt%kp5Gt}vW~A7wriBW{x&0(ZakDA z4;{hlK##@l>MTF(QXi&UqCj`pfZ<=9INjLm6-(g6U5FiwRP7XH1iVAF&zXfJa< zGIt2OQn`w+_5!1_&Jpiv?sr-b2QbhtRHJT$`BdWFTjZx2-x=}sC-5OMyH4ll(0cNG z`9vqVpJ$(2(@rUm+8Fk! z7{RB}M=Ao7>jInI@oy(jy<)(W+56sS28!OT5I0oU9qTZOfpHZ}z>8pq1FEcE>x1x-# zI`KUuio-QKn-ak1{vAbpsP2D#nLE{twEt(c_qkuS^sPyQh@84_g^Z)eM$i?&W zZ685B-JnO>@^oJF4JCO<<4=XISptna3cmN4nKDqVuF$xZ)!+9L@LXJij&I=1QhgGPONV*l z`m61{(o$F+4atEv6>fm9$uDiue$BiU9%z~>d$a(q+9WWMyknWWcB|#499G_zCGe^4 zVG<6$cWxQIO+x_p=p#mWdG_MWqBfmP3-N)!&5t(`+~j5Uy8V!8CpBUs8l2gGnMlWP z217IK{{3y5xmn7~xe&Oh&GSboA#(o48|8|ssucf|>wMc%W?gTyQ`9OGCXMLuKtFe6 zTbpN*aMCMSj~$dgH0d;fz&JX6{`^@obV5gHDzy92v zu*%PeU>yP@Q&oNWZ+ekEvTa8))~Fz2#&G6^GEi>dtI4W!=y&0T-&xijj+&*>(ma2&=+N#J%HIwxT;^&jBp(o(J1y z#<1`BTgK|I^zK)aoUxckJ}F?{jIM8GHs^ycJ@2$5?qrTzr!u@XBK7mJV;gprRJr~J z@&Q8h;cN~gl1fW|%l3paXqliyfsf<_c|ix(lKe{Z%Z-#+`Ny0`i6ZfCoc6XA#CC)y z5kLbDaL}xK#3dD3Ose7BbvXqwM(W9uD9*FiX4IsLRtwqDn)^CwYm^y3U3fJwKQ-#4 z_ki^?i!Yh>M4kuFo)r7A2U2!9eU8Iv&2n7=qLvhptfVa1`LvNm%s7g#&8qgdSdQG1w^ zLRVXM^x|<6{w1^-s6Q$#bdV%SUGmUwDY!T9%A$PJRVsc`-SH)XCV)KK#uK!sC zGbi3i^JYO+9=Lmhpo}E2O`-<#oH63);_h2H5!@<{hYyCH7*+-UQwMIRY(7ziRt~k)CSM)QYUFo_F6KY+w;7nxm1CNn08vM6 zvu;66cRtW)_$!Puh`kzfJ4UdrKw`9R?)$P<4!E^R7RNQ`kBib3wo(+h4AD#YtiQBx|ZyC3u6Isy0Z8D^P zsS9bf?!1@vs}8}@3bZMCz1KrPjA>z&=~FG!Y_hD6N374c|7~ex*H(5iK`?!w=fbkv zcbZ}h?3Y;QVIO)m{sEX3n(+9MLr~8wb^D!vHlotIG&yOj!Y?1sZ8X| zMWFzmerdu{!BAhqPT{V$JhXpdcC1y|uvKJQQyEwvlp5p8Iq&yO3K;kmECX;xz)vg= zSoW9gd{<@j_UsE`j+Z}*0fE%RzIEK|CYa}}T(&gh2|Ff-8?3PKGT**j%-K(00l+_b zH5RPc0o$Ai(D*o-CZhCPnirW)gQtNYsT1-4>jL;dcJe@G3#hMW2Vvp|2J1oBUK z2^=+LJr*%ifcL&%vYwcli)JKhKHZebZg%*+Ra}{wuCd<1e%`(f(2F&^FtD$jgtn71 z7o{i}-iI_5XwjY`O~w{CPfLEp{Q__Z9D1M zw$ZU|+eXKBI(9n#=bYX9+*@^a)!pyscmKX*)vC%|bB#6Tz%#^dx?x}0rV^&^oqe!0 z=r*8()q4FOKG^OG(&sE$uol`DH3<6}uIy4yLCI$3$fuKLL0!{Cp@mi4pi+Pq#^g>& zAxnG|(TPFW+_&^lJLsdzA$4K(74^XRP-)WzuZHf!@vUJ&E5BoUiLE`!%n~pE*DzVI zS%Sh=Ce>y(-KIMJ`!DEHIAu_iB{qjYsB4&({~9jP5f1c{_%o| z*}Z_l^7#Q>)Uc`3fl%$$sjv)%hVvfUq%aS*_}no@)y#so#!s45sehJ*elu)I^;EOs zDyQMiR3@c74O*b|X3&1DYi~3Ez;z*OXBA%?m07{FdK;?_*^Dn^C*O#Q2U>Du0bB_?ZjINS@ znu@}B<%x#qghYA7V;0r47fWqFPDm~#%Po;yotKgxcAzj<^b?mjBuiVqcU#tyL-`bR z?+#83-IK#qx_YWwD~{A;SRZx7bkeWHi1E3}+Yi(SInnf`OlTwhsVYkvQV19cB@7(H z?ZdU|2Vdq;aY&T+?Wy^86b~=5v%^~rkDyViJG$X3&*$G`Hun0?kay#8XyY+b8>!A? z?mHR&z23%1S((J2l2N`?U~DHc9&r}oGkA-o>SL9Y27J$lE(YC>(ipWnNRdr)wmKXh z^89IHBDBvTgSzMxyGh!BN}mg?uS_oc4(hY)*t~FDkIJ+?H=p7MpCjWeVNQ>qe21du zEjkXoMf#}`NSD?QtgQT5JpIS<$x|lGHxfp!0{``c{xX8Hf;E}-7N6!!U5OQquEYj|AyU}nF8VO`UchD?x0&;*tKi|pe)+?|UFBI;){BCMP1 zqg~m@yOj02)!MTz9@U|DCJUD;dT3bfy|jkI3a{hRjMODz$JDxXNeMaGZ>Sq#utH(V zC?_)XtVSbh?U+CD1=T+M94lD9w~I{&RamHlZD&z zRu4gT9pXL&eZ2#fJ{a(IYymadYRy-BF+}=6_6W23J!@lN6K2D5Q}=Ky=HyK1gha#wX`R<7yhmCY0)SxxmD)~_B5H%;pM*!Z%sYa-F)bnQ}Z?QU)Kej?2UV~u4FD!Rei?S zGaTPM7d{)mpgmJXuNf3dit$T*PV{+T{*Pm8jjeYa89MUI%C_ClCL%@T&7-I)6E8B~ zJ>bjUV{9vvV?Yy@frv^P+W|MzT;)U-V^s{w{Uk2lwOUh)%y+CCXbGE))FS3C$ zuusi>!bDkmeW~neAO74T)eilUN@cu}B=(s^^#}cD#$z2|49$cC2SL1&i@hoyMKHi7 z+HG<^AJ?5_-GN#UKTB;>&ALK5Ar|u4LSq+MxPvy!a{2cfSF!!+CfP>v9 z@lUV4O*WI}6Q24k`TvXsb?|C_Yx#udDOiilGEhA1bHoM~7}o|rQ4j6z_k+@*1Zk?9 z8|+6@&WS7@w%JQn>r?d*v1-da)e!TEl)9d){|UarDM_@dj}gFBAjW-0nhaJTKSNwC za#n{<866UWvHGi3UY^8lI=yv+ufO5p97`|0 z`;<#(b03?lReUv(y)&F0C7a`62zK?_#v(FQ4^%vjHT8=Z@CZlQ-L;V)a>-PfzcR-NfWL zA|jo&Ks>w03;Kvc1(}owpD_k;_4EDS{{Uv(`f+s^dx&KIp+l+eCC^`QoCGpJNQOw! z=>|$Rm?PFI(QK_cSBD_@4t_c9QLGvCurAq3(Uf>Qgzk1Oea1G+X%>C6C6{1_I5TN- zR72c;e0$|0cm30k1^{5IxXE{6+F}>TG$-!HkIE{JG40QL0G59ieNz!_?kpc3mAW#Qm1{lv+Y@ zuy}cr437E#Y)0(anj!i-ACJGv=Nd*(>xr4wW}R3DjY$M}c+}mjQoKwO(bA#I^W9n( zma8^%UE4o8N=0}X2Gr7&i;rg!KMUReIB)=N7P|jxb@xrb?wd!!r(@&3k0g!6u2O28 zzIsT9dm>ieQa*UX$+1us&>@FiOCvXbY&>N%X^t`QWKHCXb$T1MBh?Zi^`Dmm&@ZSO zP3?2DhpOE5OAFB|D6zSuEI%RYKt#okb9HiLGi5XKjJ5PEm69)?q_{g65&qK@20#$~ zOp~UF5VzTal|nsB36WiYJfPbcg^g9Dy9}>!VpBmLMi< z-p7|{-B8@mvT4fu-GpUaxBlgU+i`^Q!}Ku&CA=Qj{pWJEl{c!QS$gcI;``aI^N1VwHd@y*XINZLTA~4o0JX<4(J4*NEZ| z`P2~iuF+&5^|NNo=S3$*Y{ULRKGO&Lacf|0^AJnocr_x^!F36?^QXces@aS#Eu6u+ zSp2JECGM9dBfej~tT<6`LvjeqxzF62)>l@4O;vGrXH4S6-wA{ZX?fOxkxW^B&9fk&6Go*k)XC zU4}>QyJZM)YQan0UunT;CzIQw%Y((gJN#SG@pC;dqeaLL^?kYCiD39TS;4bn#b#o7 zw*-^G`^WYGa=2;vCQaJEPy4L}mxBCxlNd89(~8Z;@muv;5mMqG_PcMqnjK;BI!?Q3 zYMI<`n`A6UWqQyoKjVLH>iMY3v~qo0qDRU54F)1tZJNDLS2eCb^=lWB|5gG) zT=)27Yu0UMsTT6T*MnlKXUaGit&Dk3*Dn+KoiInfST4%}e$k}GD0T4X{|=_lrYU|7 z6v8NS_;Y&(jVA4*Yn2KjW4{5UT8;6IRmbZZuBxuk0N3;-lTCN)0*ODj9=@P)!8pBr za9uGh^HcHn^TY3_9UgC6@8|yatw$3!GxZA2FR)C?zJJgaK(1o%(b0dymxQ5^$VDe2 zdm6P2>QCC)O?w*L1)J1lG|(L4MtNypH!V>n<^LuGKgOSLAP4q)p8$z|zgGn?j-_zr z1IQGQUxqTaF>-WrFxI#J*Oje-1r#$28$Lb$zpl8sq3D#{?Tqp1)MO1Tj18Tj=oFm| zoc?`B+*;q%7>Z8S+{nocpOJ}`6^ibwvAL<46FvhgJ0ldGpt+NyoUwzDt+k!4jj@dr zK06ehkgb)igQA_j;pd9N#xCZD#$pco?of16#x|y(t1z*%ap3>^2Sq1pZsla`fKMlC zrSD`cY;0(2WDLd23-x=aZmZ|LfUuter!VKd)D|8b`M2!(=g&VB_=f`jP~aa5{6m3% zDDV#j{-MA>6!?b%|4`r`3j9NX|36Wnry7t8iz3*PUGm;#3!aj;Qle0&EN@+cibF57a9eH|a8}62)3nplFhiQ3M8Iw} z#MJaKBP|PqP9P;ThYs9`Spl6QvRgj{zY3jIi?9fzNGg|73=Mn>5BvEN5lfgpz#SB8 zW7lXcC1yV0ad;h{k{&HQ_a`W$8j@cs@v;Ilj~E~6ynA**X8NduSJupE+e5iXGCfbL zWNP}p@{QxOa|RfZwm^w6vM>VKK9GDwlpZ-~X`ngXLkoHR;4Ur0w;MQO|5Qz~nV)_8 zM%f#I>OAmY<3i)7gLoS0;qO-}1tMkV>O+y_Gv+w!%H>WQ6CgM>iK!n?{MB`cCZ z(W8=!h2!~I`HAVjRFD`jh$3x$0YJmt%d2H=BWa^KagS(lk;?#9xQ8#0a+oL)pg2&2 zI+Zo?YX%KgNx;Vywzn$80G@3S16!xY+dIAm%*o`77D5P{%WkRQ2B*#hD@IMZ^*CT_ zqpK&>JkYP#3Ff(qG&cZ1J#x=dRTW7K0j`YTaHM68ir83j&*?TNY@)1N0s19cQB19Z zX;o5VK#k4=w4yhNf-X0Hlp({-ob`hz{fC}3wFFHOt6P1j$d{zgQK}Rg-|^fjbHSC6 zC84tYK!ky`F_;2}q#Q$YaW_bXj&U#uk%WLrqX;6gr~$0W1E>YS5in5oC}PEdRzlDP z0U?Xq2daTGaP;!!9~r2#iaB6sTVa#}hy2vAIB~D%Y4wjWys4yq8Y0h6I31=>!6r=+c#+~@DA!!jMulRiQbAygn$xo0Bv?ar1Ix^n|X zp6yy5?Tp#58=D-U{(8xLd?FGH6QgN6f zIzb6y(J2#uB?!^z)}GCAqrpnq(9PboN2au z7(_aLA^skSE{2@7EI{+-rTWfAN-0;hAYE;YO%nDtTRT}R;z607D33_#>;zjpOfOXC z+cM7nV&_gODm=Z0$W)`7?2K)$MxL*4Gw`0AQ7Cc!x>THJUh773 zaqw^ROG9ED+Y&Vnw)$gy5%+8|xIT+7+&sU)eKt~`|4J^f{r$#vC8!t0j`Ru}w5bo&(5^6c>aT6&E6a`HC&^#ZZ!sPbU>h26oZtqv|U5WC(6`?T5S(7l%MT5=tH zYpqf}-|wq#eF~cykLVCh_2$-|9(D#^g-44b!os9;Fzup5I~`&Z&SC_VXxg62*y>&% z%hS*fFmpy;sL0Zg;z_P*Ivl31F2AAdBp-5KdbRS>Ng2O&$aDobycLi5slo|F@m*@n z1O-Ns!kuxoivx#m!$qZhwV#`cEFtfn@TvxMj$NL8Pi$Dh6;cV6ItAjZzri}N#}26S zBFY565zs-bnH5&+mX3^CUa!T;y?_aecjFCXv64Jpk-C@^Kr<3sUYtH64^j)l5>QE? zNMZq4fqqqOS&*>dj3T54=NWclEqFxM;4guRROis15~ZQ>PAloLs!ULQoG38Hg+3pw zh2dCJn4Rc#l{VwAkH!PaN<Nfu^QneFZTa6E;gAIKyH|)NdvoRrV1Ld?33%HhWq;qCDVeg7Ep)~b_ z>U78j3yZy+$vPzrq(l&?YY}4i0S_djtYobFCP*##mjbqpy};8o{?m*--ItVzN?FPg zwx9_fW21NFd@g&3kNk;{*=_iXQv~k6IDBjj|9$vaSm^)u;hRjBw4LWi@V$IO@oWg< z-pKO88~_c&w--?Al7}mD){u+?u9}DP=Bd{qTmH#PVXnk}e&NP_JK4W?aF%ZWpg-iQ zB2b=l4=&E00M;u$IYS7+Tv54f@bJ_tDOSCW4qo6T>3_cSZ7acb@XU%9=L=K;<48ED zV@|6<3CF%ait3r0n z?2-SnJ+2PD>%h&Gf$}>*spHECoE#R2gIB7%SO0i}VT z8HfCD`&IKF2hZ40+(>x;itYYF<})zRv;V<&|FLaSOB zU#B=q)8ydrEl1p9ATSR(d~V?BnHf+{NW5XBHd&HZD0KeV`#8kgEH+0>cxD=Y|5$uS zeCLU+gCLYD7&ax;JeWeUWNhYjr#V4<>vaGOaY9e4H{vbk@#y__?`&s*%LV}@6?$;S zDjFtP7@rif33*cC&i>}%yK@|wJ5LllOM;UGnL10%Oj6~+L4$*p!%ns@q}2i!2C z0R##-f zKr=pp-OW1&PBl^PiooH}m&dzd9DPVz=JFbg=<{5)=__~BtWKt9yXKq6-o36E8{@nL z*sSJT6KL|RZwOo$EMR`QV7@4Nuv(yr^srAXpF-m9S$G{GRBwdLwjJNcNOxT9CF04X zT&uvzp)QRX(al^DB-2-2^XP=dg<{)@`0PuXtloFGD+#>4z$MU*rR^w%&w=pwb6BJ?lDB{IlNk#ZgsrhJ(;fb3?_|t15 z`aMrzRVdu3i)CRjO9MG00mDpfT6yC6L1xsxND-9BeMSEv&97X_&!hv`K(?%zV9Tjv1V20g8bQ7`-8(4Hh;>k~ zgF)g9XXLz6+g4V~cbqd_+1i33BY4tnGOOSt=escpmE3oR)`KV>YgFY1c%gmL;^hzVpU$^uVGuF3uoEsDo2p+IdKy|S5ky10OltoelJj{5$zTBed7$| zGV>xDVj-=`(z=xdes1#PxEHUTo#B@Y;5eRPPacp~<6PH+!W!b1G&s&ly2$C=&kTx4 z3~Ue_bSS6gHVvS&)(%?#nTn#yVUm<$=>_|vsnbonPI@3#3rniU1KC#S$m;5zadQes zt(ns#1}YnK2DVZQmI?`qmv(+?0q(-7a|yh^rf6)#Jaj(=89{#L&XRare;)vGER!y0 zJ3`W`6n*XT+XV^XRgR4UUx+_wdx#)V&7#Trpx)Wo^BfIx5rU~wTgV;dFU%wxro3L< z1RHPZR>sG8DtmKRNU;EaZKm)hf>x+59nm%SRs}YMGu+LR)|1L@-r>mYL(UV_Z=I3N z&Dc#T4Ykie)YF6*R;HNjxE<^af_b)!d?}I9R{|h0- z{ujEDf&Not{`>cT3#oH;$%G7cgs$o8nc1o+l*Y|5l`@5wuVoL(6_1Jg{3chalrf|J zOq=^l#X-IdAZzTTXA?>?K(kIhC)Ep1(4tk4MAfuvmLS-G!#?)Gh`Ah%f`~TkpjG0i z34?>DwmQ!jaT2H0CmC!Z*{`hKZqEv8K=Dwe9BFi+h2i3TDEV+Bui+h8uZX6j z)(zq|d*3*}=#l;Gi!rHFAJR8S)B5cGL*E)+q$SHM+nP48a`*OHE!3kS$xj^)pkcE4 z;P0ES;=s5U&KWb6|3oIcxMU{5Z;nStnc&6@`*^^vt5j{lx9r5^J#so4>p6Oz;ZybqmC+On2J>;HaMcxBauj+{T_prJ zXdq1RkGc62B$o|3KL?YUw{!_h{~|O2xu4ns(m_HR0RxwyKYgYcPW*ngfaig-_)b_v z5w&)-y1it_QGE+!FGWtbg6_rgPY%54ttIr?TO{wR4=YtD1W8&rc`#r^DYA}5h(pvB@+FZ={-+-tPrQRX^m=Puu8~Qp{vy0g82+e)p&%L^1(v;;K1kOnY5U?Hv2@dmn%Uun5J(40to{`6z z#RV#;v-~%FAmyBkNdJpSkZ9$C0U*_=*zd&7YRvkhwm%TWog?oCNLH`k@$h*T+GL<7 zUfKdKg*@W-3dpK(Y*@LzdXzcyq=F$q~(a6BAy9cH`w*_s@Cft-GE1>y_Q zTWXxtEa6bzB>VzS<-?+)g?Sfu?7#7B0c81#*|@cbIF4-g*Uge9_cxIlYp*lYIVS{RNUd7lQg(Sy)vNf zQdtDIGhH)B|D1~~2Y~MOD;}t9+WJyLxzE7kNu8G`^9GWbRw5ji!LFl~O8GwA58Pw9 zROlKcCdcVl5p%=p6Gr7Uw;Id=Xr!j@$QvwBf|44KaB{g)7V6I9BTP9;ON+NP7NECD ztpjo!cc+@ZC!7+oZKC>g-*iW(4_>WAkKCirqtmb1X0GeQUmub%wbiZyUU7dVfBwQq zVrBmOw)wg0zisnR$9Q5k?#jvZ0aj3u+y4iawT(5rA1R4KykI!_)oEJe-k6MvjHa9t zvCOGeSJsmER%GQi6mkb%NoA4|iF)@~G|)MEKvPe4+;Xo6RDEwqmQaiigRfxnQKQxR z8~e|fqkA_y<~hKT9M))k?f_pE483xCq)57*3iL_Ugu$90`w>55=!9GbJvse(5F0i9@-~iXq75!;Hp?9781Ad59+o#&A>K9w8Y zWzR9HlZ8NX;1V0*2vnvpU-<*4eL9tIY~IM-h@!_vy-D z(seeBx-@3e0^htMbkA1OBI-v6YePu`$DvKOlJ{Uogfe%Owl~r(85|D`aFnHzdD-T% znV-d;;6wUHBC1kc0sKloFwtZiv`wIF_6;=r_@>KgMz{bns#ax=#-9x0iJNs^vB7Aw zNe<*CgOs#{J1bT+$I$mM<3x?+S3x&$c^gHqDZy>-Ms?z^*Haq`hXw!%O90>^F zIFJ0v%5wrjn=cd;2!w>c?jsG!mWQ6?!t#>mtCsfIY+Vi~t6;f({bG3LF~!B^t~098 z^=ujHfU&6K@9C#MErXxcG1=S(AOR{zj@rxITIU|OHZxr9+YrPfyEHHt1bIwAix?9S zU_>qAn?7k?S%(p$dqRB1P@@K!XbGuOWLs!&?Y#%IOEmE(lYkUW6f>88jFAQeC^0Lm zTlYq+X>c#Bq_;n(y&FcUoQD&sBMLh*w=k23<#%4s1WWwPVC#&(I!~H51%A`i;M8rt z8%a~B^w;`qv69nDNM2W%qp%N6ev%C0H(kFundKMP)&2t@h=*D=nW+ZqAUw3#t`bB0 z+#*6b2nCzbI3!*p88uU&hZ>#oc8|lie_J9$b5F_~wZvq|j7eut4m>*NAj;2Q4*V-7 zL#i4~+8$Jy!_XYWv|&xU+E9-&>NHn^(DBIIwM17ynoxP6TONdS8D1q}BA5~rjRd#d z&YY4;zs#=2I@#X&Ldn#c)r#Hhz>m=GQf^kGR0Smh4Zj~IU%R06TEz5&Xrl?}^^wtH zi0Bs=4S$h9S!sLUea;eqM?&Z0@?&wgMM1}-t)W~Rx96Q^3(-`=v)S8;v0xoj1=rrJ z6e5E9$v<&oNs66N2tJuksWlIsMA%Z7a^Pmf|hM`5p7Ri7Ny*Zz4g1kuk-F&dw z!^Mewmw+)o{rqHQbs^04;S6fLoVkGvuSL3>vw4)NXVjxfm@|jT?3I^Q;{nb&{@F$J zVJ?MC$u1$~W>#Fo@v*IA!1k?rMzaCc!M^n9lu(Lg>1cJ|v$e@;Hc*HofbN>&^XUGw%z zDR_;<0vAEVM~l;fO{xD8OEhJJVfr2HwM4`sZWRxCN6G?Fg_1N906CooryNWdSLzeC zq~60X=`QGTvAbW+c--qf_^J_%F(L)cT9pbq$V7@9g1ypWv@}{`6Je4n!5sGD&W6mX z-d0tPW{noGKsfN)Lt35|F)Oa^R29)Hf@1h4nK5xv=VT4T8ub0$lAQd_!HwztRgFZ9 z<%|1ZY>9(xlR;|0B#2~E(8O5wyBq@W_f5sb<@y{M)o<|SL-P3I=S~dWmg{4UO8X)( zm5+MT8SN47l{dtreOAi!F}^^d8E3jwpw-(jqTt` z1oj;gz+?+X`A2Ac-T}86zN0q=_D=_WkZEWL$;lTnI{19sjC!H~(z!Ih4nfs%*WFJkN_o1L657GdB7ImqbEp$# z0epnIwBogJeys5yUBG*5{eu2)PG+HJ{BIbLjrBJi^EWto^3&AF_>9fHsGcE8>etuH zs&pz_5Z*72G#7y{=?oXZ$pDO>cVG4ZfrTuS6PVMPpu;n5u~jcHI*6gSX4mACZGX9X z3d9r*JY+@+x9g{{lU5K@NwA&f^|((E4U~^|2oFCzIQ+r)-85mG3K20@>FeaEl?Y*3 zDzO%Wh2KQ-zNcN*R7&k97)ag&a`CvAc#7|=j%u4=^=$ZXuXIcli!P1Gzg2P7MW|;^ z%mGP~FQ|rhX)%_s$8|vZm7%~FUw1eyrEb_f)Td44+jyXs+d+Sm679xeAJv0>*TdW! z?RaN{v=+(P&9HXqzJS6v^DD`ZC2n;OFCF}4PxL|q9J&-*iWb5M1Q6vhL+O*{6_Kb$ z2N%~7%&y$tJa>E9c6S}pX|aqCO2Jkl@bYsLMH78IGS|j3dMUhD*9A?iqzVN$e8^rC z9rh>1VDc!s>O`BR9t(?BesCm9`Ri3rA?mQ)Mf$6(+#rH*Ol6iK8pVk<46_x;u}Xg7 zLfA`tVhXe6ko+(8-2a|2sq<6C(N>}31|yB2+f^Co+{)jJTB@N zSYkKp2iRnd2czx`rJVS3l?OiM9nMp#eJRCID+0M8s(FK$I~D>aW0AF&JyTmoD`ot9 zTF{fGv?9c6C}zFTbT>KxHemY*L_5bBu@AY{4*5%BE5lWHk4H;Z_rSe~YcAMLH?L5Qb&^fZ!u(ObtV^{ne4e)# zwy|5^H{V%q;+A~Q9}eC=^h5LuUMQa`ES*7whHqX8t_6fRQn8sVj=%QtrHue8MOZHn zqsYYU$LwuOT{QgFfABWcg?aaWkpe4Qkc)JyUe*?lyvKMxg8AF zC+J(E^1WZIsH|spGy9}TzXNsPhmZZ$f%*&8z`(%H`ggH|4Ydv1JysZ>&+$^jAg=QF zG?x83U}s=w)*(R6`pw`h@|gLR8!Iw=?=SL2ne|A8+Tpu$XCw+n;e-_NeBli(lxEkb z7#mm^kuXC(dO@gyjtWr9cKwihZDwAzyf1Hh^QC*!Xr@QseQELs6vo3NoO>k+3us%C z1I?ASD#E)>bPqc+pPmFEcyD7mt5x-C|ULdi7e7zHTYi&&1ALQ!o zHDOLMD3GA=u*NdSTNtSyN~j_iIEYY*UQeQd{;NnFWup{*BsHlL+*vF~thzxV$2os8 zmmCtX(U-EAS$wRey^0eDAZm0nEogMfJm3DBM~ZCx;>2V-3Q=*NG0Of>0}EpHqf~OF zAK}QlrFk5@NHWjWDLDy}vDCH+U+)dy8x)d@vxXeXa5BM8YPX9H5G|7i5~p!1cJ%bh zON23bTke327y=cO+rCR}#PsTCnqhVB2u+#VaZ2Dj2vQQJc`YcPVYyGU54&|*nKB)- z=03+Z+T^X3SB`IvwNW1BggN_+FsR!Rgzd9NO>0L7>7TzrnWpONE4=U;^@Q**1gd-D z@b*Y7*wzj0CPLIhw{liHl|JVA$ZiooV-%7{R=+getgPp=*X|DPr#Myx7(oYT%kd;w zVfbj5l$&;@O`s{%?dz~!@J>BXHVJL*3c|}I=*=P5Av|=PHdkI==|ZcaRn55SiR1O& zF`l_&GI4(sM3&lyjdKdrMU!tRyKM4;!?eX&pWk~Lb6rpdQPdIyrWgG}4`BNmtmz|s zlw7KaSn5jr`ZW}ytv_-4dP)kZU@=?}q111f}jVJoMM_{ z9q%MzXigxbCu5*oa-|2c9TP!0<5$St4?=8D$(?0QNHn6bZsJUiAdK;ypMq+Hy{_`? zyt^m<<^ch4z{Lt=!okO- zhd{eRgx&cRBI*0rcb;&# zSqz(yi+xbfcU0)BDuBEuvQQ+QR-Ahl=qe;yN7R{Crn6}^EYf_ARf1G*jNA@H5oDXI zP>Br{um4KYA!uM6i3v_6JuyPlrOiE6TN3p-^g}jdNA`5%grd%Z@cWu%LHE$4<{2{V zV>sFFK43>)S+&Cr%cL-m^v| z4$pn+X)34y{YeVl-Fe6*+gG;d2<=Q?*i5EUE)Yw`&vK5vj{C*Xc8qjC1iro=jV_1;zce;IVI^Me-_}Gra2n0X%UP1;THP~u8dS}S2T+>jm`D9PsZ#?Q zEi>=VSB7pVI<_xW^+jD2HD643Ay`-Is`_eP>L^~<)5=zb@xOpR0h(NF1JPA&rzKVUrL5b{3z{$35b*NPiIV$UN2Gk66U)KzP+6=iiR;(5*uiE_qRZRHVSACq4TbrR9 zf=b&}a^r<>DX^-ot?Rp5-0Y~5#EAD6vt}}gG9!Fj%EDw(RGEtev%IK%XY@1c#ZdKH zOJli4Gemhi63;3~PceSGW%WkoEgYnlQ^b7Yx@%S$po{$a1G2W&BJSI6VIaY&hCDQX z5q8O$>MvfP1BkC8(VH-#c))^ZgiXHiQVbu^>`CzU$r9zbzL8?F1n7pr&Z(K0-_V#< z<%_ozkWfI2Mx6kJ(q;yCrkSKX@OjVu_TzzQ!7<6zgbvH=AMr5Mx6$jw3TO7KgsMV~ zl#a18miB3qgK2q&0|CD%<)e-forlsF!Xvq))XXZ-bVO~=fn&|4l@K5L<#N;dxF<2< z@(iJfB){c(Q;5S z66(jRJj5ceKAbrIv0~UrJeJu5- z;h|`JQ7W3hezrOkLUTsBQV>X#04aSia?GMvio-%8G_@5+9SMjrYt^rWm!80i*NZGQ z4T=ga)Z#;O|HlVk8Kiy|VjkkS=LFokjd%L18Fxk*!BV{s@b@L~_ZA?17#>$hm5(&2 z*A}1(c;sz{d=9Xa=(nTMioocS%8#J0$WYQOc(ViXSQIQA;n+Q3WGS6DBpzu#Br7v& zfC}EDNt`$`yb{~|?B^P`J$ZWi-<^!G@FH3on3sb0)x0CQU8r}_Z8vr}`hE`sSQ)rxlTq6w!50y}@AE3sedcQ&0M??Rq+E-ti3 zV?>QQ2U*(aP2Wi78iEj{U)jyt449DaNC@L`>t>P9MuOdW9axB9#*sNn^?+ZSyoX&1h3pFgX_$;7MMQ!4>>Lu@MDZNGwN&(ctG3vVzc01Z zH8K=6l=RcX)FL2uhgz=%tE>z9qFI+#`L@DFlRq$3T5LFw!+>EHNUj8ZHb)C`E$_^V za_Xuh-9rm70x3|?7dD}_T05E9`Q*WC@nWN@ zv~#c(&}LkFHpb2>mtc<=skXeB-gz~tG^S}W0j`xSS z?v%QzQ5bBOqg4#MX@{k8Cb-!RNrH1%SJ*y9bvTlEAuI#V+fS{j(xW|_hhu0wmt*(< zaDA&b@OipO@2P5Txh3DUZ}ogiD+`!6h@vGRVQNm0Qme~N7MafXT;I7S;ij0`Z1{)= z-S;9j;fBI;rGm$#DBYq#>^7w8#8pdyO2c-qyB!Ngio15$ZxqbH*&R$T$P;*5 z1;YozWx5anxk6bz_T8UO$n%BiZPJMN7lP^x`hK}#TQ!ZIs;MNEUxegO%l2$4CDFa8 zB{C(*1nNl-&3nTn3k}CDnUu^K4;96V^Nsq^0K15_ntd<0B!d|emDZz%tu;A%^NAm2 zc2=bmgD#q#tByv^9GP#Qh}Sq}SW2ekb*0xOOVCX6h(WvMAOOq_P37VeN^8CKSWkji z@6_1|C=FJIWCTD0&Pd>^q7)gjP^PF|Sk91$3zTpvL*AvmQ1zj!?d%D|wsrVPd#~7k zzQ$J)vo@(a`Lk2yFL<8uuk=1W)9=LI|6A`Dsz}HDE0^Q4dRrchGPqy1l;1B$WFEc& zG#&GpU{s*?xUsITAk#;*;e(XP6rYOpm@-a%!+2>{C`JDIbxl~ zH;KEOsj3pDsuTc8R~jaBDXmrSP%cz17rQsx+=CJ66hUTK9H*K=9MZ*Q6td+j->iKa zyc+FYA-_Ir&%R{wtXw#Dm#2F^P9&6J(D<8Qdk5*nKOkqH4;%8cbF1h#4(68ey}T7| z@ZoxDDxiV%Neajna);~se+(N8O3!^ZsEt~q{@Ha6Zu;0Ah0Vc6r$d1Q3W33bH1o3k z@LkU^G`CehAS{oQO?XD@VDq>cP&Qm9k+?KB6T|1Kw;QLJzIgTPx2*9A%`8`C96)IC zcH#&!TGdc*)y%So<)?m^)9K7vJ3a^j0b^boMmAo+#Z6Yj zKIm@j2N7-0wLEGn)xtcuCbh#XnlayI?GZXsM$!g9-m(?8u3!mYGa6$X7-H%#_JP&x8p$MvVpFTu2QFh;SzOG^555*{ zey8Qe;kL+uefX2I%hTA@F3XrpF^XtdOT`~mNica@+e}~gEe<*JG7#7IzF|*JOnr)PqX^E`M^20AJyblc&= zGU*3f+<`tbqUd~%S_3*!KcPTfAgU4e$22xM0Zg1sIFU~b=vgXkqsc~QmJ4%JgkxUn zeZGW#B)jS9BFwNb8p+8i-2DuK9g%p?M9f|btS@y65T2Rdc_MJ1JVxjHIV{gw|FC@2 z`L(mmGAAjUDux0*9RnbzWa3bD)S^DIKla%kR$i=W4X-L>id}^v^~8G#&p$oGz}DWE zx)6({FLt%+o5mYmWzGq9V`AP#l%|Hj5WTk|Rd0%LdIq`@bpXT+~Fuwk$ z2wxL>eBt3G83A&J$eYa|*57RyqP}V{yQMc^C!HR@QO^z4Qg#r!0w;$R8^yR9t?Wmy zkf$isi-+jv_M?Xmb&lPc0YkG9)Ry*Gr_1}!Oyiy(pP`s^G+DVkVeUY+){+G)OC}l)uH4I-BR|tHpP2fP zhX;(PGsS;UDU&8|9tMt4vJvUZVnoM5)3pbS{n%ErS4AC*Gl?1v^jb*Y+X!9 zt%xs4YF$`Eg|+)7xWogWw6PWNs{{H;5uzGdA>hgzc5&p?%tLa_7{~Pp07G`P=N!+^ zK8lL51!)o{&t4JgTPTtu0Sqj6fSLV71|Dy%IBiQ-nzUG*Xfy?_0mOgchZSKGZ z&z^AJqZ%jE3JyQD%?Ueav6$2twNXlR>jODVb!xer)vp~m7wSZ}n+RxXO z9$2QBs%y05QK2ivaUz>$~x3-salRgK^Dr* zLGYc>TwsVf}Pt`?Lz!dmuJu6k4Rf5)1PltLW8=9@K{?(On z_HX(&;Tx?O7Bj2?(+dDl874Vw28y(#rx~^?XU&N}4xYxg{M%JnYO?e0t2~S%Tu5IX z>lS>i7!Is76;CBQUovFI2m23ox*$R|2LVn*G@2x)ow8}^cEOs*;^7q0M@qp9QlrQbJKgiCK(k_*`Dn6oG1VAdr;rU)es=Yy6{HT!rZLGn-tID7zroAX zHSLo=nR|h7pR#6Lzi}D;Hd;5@Zrq3G@#9+UGX4C9^LwSHVaU5gRvrI06w5l&Lwedr zwvTmIp|zL${-DK^GG41o-rPEBrwzDv% zP$QrOy#4}r6jXd{9IX=Pgu1xwQt{D=97>W*i^0{40NYG-<>AL5D*(5J<0HBkwkEp%wrHU zFo%*rf|xjNov>^eaPUk5l(x=y-jo~FRLir}(b~zL?-7%xbpV;1LsbZoBnN8f$5A+- z0nc`DqAoZuN)n5GA_(CfN<0{ny!dQ(hI0*~(3y0GFnhseRt!-eg6cOc%nO}@j zOra$EAk_FqzjZH^^2~53YGzDuFZ2Px)IjSr5U1#Z9!4D>_pKohv&X}ny*S(tsdV$G z+28~&h`JEB(u>pi4p|DfV3VypwiDc(=k6>7*x*3U;>^AXY2prc0IFhd4-#rp zJUs1Z+Xy%ii3iI~b~>AEE_bF3E$JlSG5G`0J}W@D#t{Jvzid4h_~ub3ZIldVMWcl3 z!B@{KtvcC4=@aIBqh?tOisV6iZJIsxr>g+fcFN8SZ9Xx}D*%%`KlW;fG&Fu(ZCV0H zAV)*Ol!L}=wr$(CZL4G3>Y!uW>e#kz+qUi8y!+mL_o@22>b$$w z-}Q5jF~@l3gXav<5hIm%D{jfCvR(8JI>GSPb=xp^{l1r~!qt2KIAJVs<{e&PalR@s znyHYv*XFR?aI>WER1X=Rl-@#cFCVu2(;BC&X^SGGlx_7@od77CtChgrW8-0 z)O)jL1DX`+^m%^~TakbTau|V0?|C$Hf<4AK|M5Iz>tD7s+3$>r0#w{~iGg9oYKDR8 z41(g5tFi7Id7w23t{ZEctR8M`d-mX0DBPI)$V+6$a=9j$cNhDQvfVs*x^?mn#@qA! zP5hXN5KpYvp+$uXm%kLzq#4{tJ?md}PG(-2GzIr)iVIyo5IrgkA*`zcy-CxkCLkbK z&YJu>u+O|ilcur2%1J5Ar)gHedzOeZ$E3Sf}3I<- zBgdGf+KNa#ERD+8&sSKyM@dch3s$Hmv{*v1eYP!bc4Q*Q-eEbm@+Ai=j>c^JK!jXB z&0KKw9Bk$iDaN*!gAuW>)`BE@$mJ^g?dRLimei{uwyG^ispfn^3;aEd8f69veuh(a z47riu^Cs(ttZ0WG>%|DSMsmY18wF*{Efx))QTN8a7UMLk#ku8`*O`UUsXz2nvz+OC zW1JGS$$z5vT&uP`L^bL8Ek+vzQvmyl$mf5L`cd}55gxRblsTM%Wbfq-VOExaiy5b? zxr#c#Cux#NOv0dy4>b7V`AxLj{HUGCzX=25j%(@?d9%PC=}{ehXpy_ANrQxa(*rhBM9UbM*cv$!(dG@S+Xm@l{?4k3;i>8 z@ek^}-CS;48LsO*2Yz=kg8AB2oHksB-J^aYou?}h=#Ord``V-XS+uhS)pAp> zi4vo0#=)gDO;|Ipd4-WGG6*96R9$Y)i2b^oVGz-FSU|EJZQ;{!!rQoCz@r(r=};t- zg;>r0wr$n@NN8?9*5_z=u#N~9Gnmpk9Qv~!tzwQ>ZjHIuvVBxVNX{dKPJrM}bIu^20rb?hw)e&JE+RayQiqv{W08>$HwQ7?ei^xwW<~lUUlU86 zaL#OLz)+$2HXHUy-@au>|AZWfc>JmEqP{*`B(b4TnJ&rA%KyxPFKo}5Y&TjDJ0d*R zZ^j~?WGqIzsV%8GPdeYr3*E4lx!C4s{a|d;yivj%VP|5%=(5I@s(ED;P`XCi za^MbyE@iK0^QC?p^}F--79}4}Ut7aLwQurnqE9h>ey=vFEIHXdjYk3Qc<~nt4fs$3ouc)434osack(Gj z0A4N#dXEK)$CcI-{xLR%wFf~mt-f;e< z-d%V-qgRAB&hxxJl-x>PsQ0sJrQb!1wWiKf94WkyaqNY(JP^YLCD_EEhO<*TtWB=w z30{;9Zh#v=I@@q$@rQ?gCp1TuZqYqN^ob*$a`9m}=}b%*?=Y!K4NVjCXDr9d(r7N6 z{MEVgP#4RE-_y~Trvbtz8yTDa_Fsl>=D%FP9Q6Nw?XFNAi%O?Q-k4HzlgQt_Su+vc zP(D@u_LjD;I}^(DBQA!>54?YP=okzFaE==(rV8L_oZ@*}4~Nhs@Ymgl84)+gr}qiQ z@NfRPY!{khlEV1=6r09&^P}!~gorgnA9RXE`kwA;%G;fxtHpa8RKc%B9(p2qSYHD8 zXWVvRo_i3lDBf)$#pnX{p|V(TCXUQ}x#QEdv*;hEn~9Ed6KN6W1}OuFL{<@%))%L` z(p5Q;x*)l=m7|w4$3U`NK(SDAdcveR#2H|$9(iiwMTuSYNiD$)(Xmtcwxaj9+=J?- zs_{4`{!6h~_kDw_!R#azD2b0ikwT`zKU+3=nyvN<)~;Z5pzWFn_=wx+N>K$)(yGpB zDDEo}$(%jg5h4vw*-60;1}{4r)WDIO`;kKT?fjMPS~|}or`u|11ww2?-D?0%A1y!@ zy=4hWmt|5RHb}JtsP1q4p_pOZ8ZYwm-EAOI@jd9OjDT)Xo{Ln)L{pa8o`V&xQHsm( zE?{_$NvtJXIuVL6YmS6%7hUWT*bI>ni{-)Zkg?L$h3bJyA2k#0&7rZ*g+6OmrzJ$7o(^UOO8VQ;U(>;iUQlm#wwhN1kb(qsf?YPB zgNXQeLZASU`utAa%qj#U@jBQ`A#vr<)lSc^WZv|BbEM7*rSW2cimX!W(ESkkp}_N; z%elzCX64;eFtaH9p&unn6(2@zmGC!`(C=XZ`GHEhANVY^KTN{;EidHLV+J9yGIIbe zW<|s*`b15FVr%q`fGWt}*^yI29*QZ^l_&BcSEEh6rb2px!pb7~;@~3SoGJ?9!%qi* zQl8YVr3bgW#+KD1azKz(<%6;|@1{o*1pl0K)zC=^1jC1l;O%-h+eFgi`181je@6Gq zSqa4N;WDUjw$=qW1Y8Ea#h6IzgLbUb`6A`vUnm8$&$uyL#fQ{f+m;Qw(<7rAB|Hpm zu4n;qZF=$|(4Jme)X>(JpRxIk>J`1oYuix`_&;@A@TGPyOm!07p`3!ISjm3qSYaEt z-XvO_UkOI0-Tkg~A!Mz{aamr-l>x^5{W#p8-BLrw4^HKIr*etNo#E#DGWq4;bBD&- z|3d$l%4Ye?OvC=|&GB!UNfoMVvfnlw-bYlAGYV%HlbdLP$_*A&1iFy!#lXst+r<3% zC0K#0RaZ4jfNLAtnm6@Ld#OxyOr|u;fe??za`&RW;^@BmV)Vu&PowlF#AN0g8r3(O zOI^ILSFxU?&He5DgLk_|b0fh!n{890OtaeNR4aDl+-!nO=D=|MK}+YA@rT zYWuZAA}p^~95lQ84*V;}r?j-FK<0H0o#+ORjGCL{c)Oowtf@<4Y-1ErmtY*mwtocl z%L0tGM|uXX&6LPHa(XuDf2b+c;4ne1TaGyFHCM-e+G!>Xn6-Z||JSF zbhybAgh7EL?+EGknh6K(y~!wa>~lD#Suw1nE%CIkueb(jtJT_eLe#cBlOQW0%uyV; z8O44j5MT4TIQ?L!lMM*Abq!} z=h`Wt=2loGE%Ocscdm?1SYC|x`s0t&G?Fo^xdGr6p_{S6h6m|Mo?G1>kIHsbop@)W zFU*0B@MZHLr~!w0ul=0F8?|L`9d%GWmG*9du(PAJMVKDZkB5-fbjuN$g8mj5$M%{S zOsLM5T=nxFn&}P|syPabOOVca%}kximV$9jhnOm17RuUZ)f`Kp?$^bV2x(F)au4dV z0uCk94U+Z*?{#t9=cNS63P=oE^RIw1f%vG_DmNM!o-XgT-7CiyX`?v+6e?^=6UIrM zkY{Fz2Ym^NHh*x6M#uj!-;a4i#!AX(RLY+*%1ng>I4QW{G&(4J4T@Cm5b720AH%P6 zfntF*VZtgt8jFz^BP?c9@D;0Sjg;<)&Zue>Xlgl~3A!e!Fc*Z>mbTWOA~r?h7-O+* z#c9`9;gUPyvB+MHq$uz#HjQ|xncrKlYUzn~tc?}xT^OIM zUCGiBosYTPR3e>Cmet_-!YqA$2u_1kT?VZ^uPuKoCO*F+n(pDW1#`&%QmlXT%wcEw zU+{8OrEJ&ep*x?{j*kKAC>7tbIifBoWjN2P z9yOQ36a0y!#w|11WX`UNv|&e}pT>d=`1s|dmBuKBh=a!?MQJ_bnq za!lY=4rUfNVUa24$Vq!tX3Rc?HmCAnsXK|g1tN3S&PmaijJ*!i)%h5-X$jG2!jJzu zn8P5(z9^<(^;S9!;N7Bg94&kchz!YAN${4NKONcNO3$AbJ_|WtTXDRo&fyG> zek6G>YxskE3w2F%hSe>&aZZLe3vFzcFG#--zeQDppNY1S=&Q_O*yzC8s#h#F+T?Ta zC6V=lO{1@2A-|}#3!G4~K?Iu3h3uN35a^esnUfb3Vdg#dmk?BJ@Ud#$^I<~zav4hf~rinTKe#0A-1VYtXWEwP$ijS70`iR<| zu+=6}%`m^IOP*|S6fm(R8Zopgja(=-($L_`u_$`s^ja(pyY{W4aD8@&w z!adEPnb?y_?ke<$mg-#@tp$6cKC+XRz%a*p6T!Me!us*xlYJAH?X@NF=ro324A(=( z)A)T$G53!MV32q_fMHPeLzOU3!V0g|Sv|PhI*_cS`AXhmK>D(%X2d|#u*uBZ^x2pl zmA$*b>Q$2{Je1K?mKt!B!MH6Me?}}kGB3G6g&e>-s}L7MXKRXlR)K$w5zewa=7k7* zs)uzhv5%7F+efuyP}0EYF=UdrS)&mY#-D=pZf=+_T%`FloGFD9R)MA)e?Y~~kXpAY2s&y4Sl?_nubb0D2B z0WqNaiRRqcdJz3jy(Y1wByRoGcK>t-xoCY`m zPcRzccO*+dRd66$#(J3@{y-uU3*R@hpO>Z`jDZSAY@t&!M`Q!_&c*l0X95O`1L8sze_Tt{wqo2vLYmB8i0f#=D8)m99i4XsNjIys?9F3s-ZxK=wmd0bJXNi z#x_6H;B)k+0xWpLKI+fuvvp9wmg{|4hmr%IHb+{L@+%AkkG!wp44F zTcbzq<~!xcVhv&Zie3|W>X>pxKAj%bzvLQw2iK^5I~J?%lHZB$U!?eJIT3#i`^Dsw z)eF;S$TEd8I)ee}_(>?AsRrN)8CK^q%!kSv)@zQ_l`zzkz1eWmx2P+ZaaQtHu1*Th zRp!>q&3Uk_aF6G;277^1vMod>R0=dmZAuseZ!amhKJcExe!e9>MFGRuud~|Y!w(&X zBE8IFgYuuQ3QWFX7n8;}?#U6QR;zEpt<&Mzo~kqs`hS+H--hfQwhg*)3;G zJ>M)iSF#KI(PqzHbOKS-kdT0?Pfspndco`VaQJp5z)1&%p$7CMrAJ;rxA+;TwcJ#H z?6ejKTYe^`otUVwyXP_{G0?F^mfh62;5<%Mp%}|*qIrNX5*9GzGc|&Hh1lB#aH~uy zDJK0U;u65MDh!_|4Z9$JZ?sCH+^B-kRt0*wPr;&KS zxTEv3U1M&fAPVWSuCQbEQ7@z2hmEZB1FASav;8mKg6%J6cr4#cntwZm4XgLVO2EyJnJ9ErgJd|popGVBv$w^rN+vqo0GMn(-HZv-`>y)L8(a5Q{|+W$SWGQ0>`IhALQ7H zuP`#a#+bnWw)gRbu3C?3t3Gw%Hg^8$b`%)P_xoXpdS|BsF<_^|RaoPG*eq%+4??S< zp4MczgU&hA462l=yhNQ-)u0qKy9s@t>~h3+KFezmt8Bpohrzj><^GA7?)4LdM+%e# z?{`g&D;fT~9eP89?HXLm(NrZqyw|{{X;w62B|;DMA}Fknt&OdItrR1kM9PsdP$!9r z46YYnJEc487>5m{cz<~ajE-euPrv$5q9?`867x#_E1q5DLk?^1fUWec1l2`-9M097 zA*qTfaFdVr7Vbr+s%)tM+~WfWXL=cEj@`jYDF7#5^T*xPgLm6A$X=RB?SCFE=5KPu z|Gb_2zZnYO5eiC9){u0v_zd*)|1h!~9KTZ${>e)CZ=N>Ozn7*QXvo-NvHio>O3~B5 zu@r~Z-=EHh^&rRW=g4PpklzrQ=}m;z0G;*SVvEDRN^|IFTa8rS*LN$%fepTz*mD?x z=f;2}*p4p$lVN~fySd{_m`wNy<&FSZ9);`sOhZ=BLjska${0*(mrs2>6-AuG2c;38 zDp(J0eND`XULMT|EwD9gv|@0dGAtT_PKYZ~Lmwl5tNlCBtDivDVPBd*W8VOLSD3(* zXP21th-R0V7>9c|ADW0r7BY}wh6ihWsML>r<%rU#f5hx}Ap5S9uJmSFb!v_)to^SL zF*bC+_NB|8!(f2$!`)&c05Et&+atdyG4%afUSy0w`q3{yfMIf={euMHSiwtUSMZaP z0ffx2F@gjmFRhUOA(B z2gONTHF+(yq8w3T4~lXQF9v|eB{xGTMMA#%>u9pOn;2tQxGLUG&>m@F4*>`$Lb_W} zO!SGkq<0v3z#P(zSOJei5>)A@G%LqEj-lvCUu?i{Kwfm>!e7YfEXjEac!dcWufpgG zl%lBx<#PfmMgf9G$mWe{+*+fP=2gH%ghKO{i=%roJ$cOPRIC>K^F~o&=oYM|6BsO1 zqK={yVKW&sO67+UL2eTm0wiXWuTkP#dHW723mE?uatpTJJLF;u9BY0&R%Wm z-mQFITRuOgUf{;)oC<`Vk0)|{;j;n*mjeQybz-{* zc}N7JD+b8~rbb%hrWc+=u9#2vw z-YlynsDr9a%IA<93+B&>73+BNO)g5xU1=~itKNp-?pgU{R<*KUWj50ua@f!~E-Czb z5|T6<;>{Kwr?VrAYCRftP4z;tARDP3_F$Kybt!oO*B+*$xl+|sEDtPBOG|(pV-=4H3hb0ASZpubbl9)91fdJ^+j$NVY@$==lq5a0(U{(pTE@L(RVrMiEjg?* znV9bz^;Ct-sjhO|1G$d9>m}e;_l;x&v(^M$cO8K}nsZEDANd%07@UfV{#;4S-sQ!J zy7Lt%s@Nl{4B(cY?!M9G+^%Q-XKQC+`->w8JJY{MB*XODc{*5a&+v zGR;>{@>5xFXh;0@S4>8U0B8Drx1a>kwYkmJJT`_}#Kh3RR|)((sfYgyl;`b(72q~f zzX4zvp*JQdWnQKA`8>Gq+ADh4-HnTbSMVo7RH)x1ETl&x_=(L(>9>gGbmV={@qifr z86~5M`WY5Hy2dIpTX|~Smb9tTB4rs*>VkrX#r5Lh<`41U^Z-tDGdi9|UPbM6p#=8^ zcV>&0EWeH}3@^|D$?x*Avo`lR-|yXJXMEV9)6)N)K6 zSrCqhg<-k(Ku4caT7RmiEd#g`T;5sMmNClAf1Zwuu^o$lca4T0Lf=LdzBn50AILXWIrC$yVcCWF1kI?;W>ftqDH*pO8 z#54`_XQjOy6KoIo0HOS!{32uV@<2Q1_Vho!vYDZcq=W!d#U!noqzX@+ma z`ERHVpY}DDT^LNMiT#Y&ox(zfDM&_CL-6pB*fCA}!=EBi=Q13#96Y`FYjKaJhK|$; z&r{nKUQ?g)+u+r^No3HzWYrui&F*h%z_^2WE{iOL8Cji<-^`PcnB%bH&@Ztz8-cgHQK2J@?YSzn-ec)xZE_3Du@wS6ikg zP9AWHiDlOdE}^DXe)#-Z%1Ys5@b%fvK3<(>jp3?i?qh&wwW29peLvjF6tK?jin7)1 z8fdNfHdnnzSR8bmu$!5#XX#@_Xr!^`p1bsPo&Q6HC{1z77xCrsk))-FX}}S}<}~Bn zo}UM|NR`G z$|83tHJVzDZY2=`8K}D~-Tkt%Bz})SsG@knSM1;&Jy;LjN;jXZ5+;=~aq(|yW0gnLk^{ z$s_ymhe>x!Tp$r|yTLW^kYZf^5SbRAfRE`hWDhRLUHVL!)|a)I8Lg3;Ve6w2Ngd6g z6DUm_e-BMP(m3itBnD@Do6_yJjtHBd-@Jeb5iS*>_83>aYU1DUyNAF=A7m z6Q+)Z1!^EW644D%yRG7*;@r-7Zcw)!$7c(o-8j{B_F&c9L3l?BGcaV$P5246EtjU@ zCmHx4_v&ebt9k_?Z2|C~DEso9ff8BXSBtMDFc0piAC`edEI;E|XWZx<3sRGYrL>w2 zviApTOIAz_>pn^!2@`}2wnbH?l$7|~U2OH5;x?5*E&`uIB5+G1kIG!3&oB~VOb|gE zG~DysRFsz6tS_ySYrvPljvjO?iwn+wJp_8CfMx#FcL^1+6)7@DualvG1got)LhxlI zdW+M)b5w#G$F)K0Tk_1YN}-`)`A}Y(2T^@R&P-dRry$Uqm*cR_P~3FNXok2(kM+?% zDJ(D5K0C6SQBYD~Uqb`0<)!%PCPDYt?z;k==U(^6Lh*d;1|}Phl(KV#Os9aa(eMj(@@V4~5zh;Cp2; zXL%O4%)=pe^tNNR}cwB$nlZ-OXc)py;n$VpSAB{eFn(A?4QyK0H+f+ABQ_`#xlI2BX3bM_W zfQD}w3mZQN*AnM5+sp5IL~%U)*~xI?SrF&dLg7~&J-yPV zepH6gqy(k{W^4+#(+{-h(1T2 zMDG`qvypW6#-Oy&u0wcHYH~b5U{GjxNdlAknz=q@nzjbnzJQ)k3^e|B zsr^OA$Ux7^{BPl@h3|K#Z!r7YdhVDUh=E8Uj^?U>->)!Q2vz5~cKDHhtX@PtubmKO z=o_HgkJwMHl|k!3=DcRuzfMn$#zO&F!-w?g2(Mg4|Ng4zkw8Ww>bOUK@E%bg*5xGj z99~YP%kZt&a)+P?`#>S}ZO=VX^U+=5;>L4_C?(}H;Zm~+OxBXaxS`gFU{f#kI6fEG zXROLnb!1A%yWv`_G~_vaV86Qb9_<+Pni}kRT)@H{*z=|K=371WVrVHyQE4%~SiTHB zRqKj?T-V}*(#HnWLF|HzDd9@zN+9+(QIlY&_U|N!OsJ% z5?(R;Q)Og^TfvZ-(f~?w1CDrvhY0L4$lU zgL-S3nsVgWsTywe6w&;lPY&?F`y#6(DC{Ge6s4clgVGXg>`01LXeem1p*wZC2ZAb# z@`+4Q_#F63pB#yrQA{5B7U16Yp32(n<65Fhp5oSZ{~8rQyZk@{nqe$tjIW`JU;LVC zdEz`zz*D2@);{JAWJjUa>;t`JdsSTV*IKAOw>Fz$D#so_?&W=T4@-gFk)V}`Qq`}Q z1csq=7+Q+A{WmQRzOF?2TL-{0df}9uQ!Ixzf%@iu zNmFRstj055K{md4&hCFoA+++VV{Z~3y|ea5a**v!ypZbb@i#?;NV6TbHf@L zOkRHwYlK@8deq3i?ZUpB@$`t+-X$^DhF|+rL~G!-Asay}13f)L+p~B9nqU<`abUl1 znK=|4e4rTKq|`_@U7KwiLSE%5(Pd@glBL|{Nrjx)3j!%J_3Fm3jj7jy3GXsC%V%0#~Q($NyOv$0&n6SRL%cVE>Lujy-5 z^$9LsoF0~EfXYGE|BQ``xR{q=rIt+nG*2-oJjVZS18c zI+*8R7Jm<2i4^j|koO-#_G~}7escNLCjCeRi&HzmjU^gk;J_b{f4d(0)=_(oQz`HF zPbRXAhr`)^++DovoVgnRzNV#f1@oVzDZTZs5i-)-CySVbc_nh6N)HNUrn+IkFq4EG zS@@_%CZn9N%bV+(msw(4@ZWUp1lfev47$V@U=ZQ ze1GiUzPg7^z4cp*Vbnf++kl8sn(1cX<-!GJ$EJ0z%<4wW-QJ(dTZc$0TCoY%xgXM! z<_Q4e`*`oGGOcEr2R$}TOHB>g3j;^TSnvX0cXl~~yyNAMvUl+#&|LZshCuO>O$)zF z;%t|1st(}c8XBIYxghp1UvXq-4;8I32^Z=iCHei$UEP1Gr@Wf8EEqDw*>1GVP02b_ z1FuErElmA$>Dv8E&qIRQF-D36`G;3?oYpgfiEDI zlWWAPSxQ&{H#aL{MmSCX^E?F zix<~>N=tSW+s{>2YY+M9Jx`K2)oHkTHdcmI9NTo=a2&RwPUiYi!qc>*)?F#R^@bzg zlOepzN?Pb}(JtC#n^lB(+C)vM?m)CN9ahD4nxc&COGC1g+19rL}&6(hpV%Sjp~{2dHSYe3A|+gux7WaxYtF zFb726kcg}I&E6Tg%A@CyrVd@XH?o#_^f9iOutKcdy4QbEBMjvE`fJI^$+S;f$}|AD zt$)7%-hLU*#a&PY;^0Qs_3p|z4A(rtA9E$;I~$=22mD{I}x$i&m43 z`QJZkeY+nxuHnOXys6nGm|77|2Ok(RnRCxc72z}`7lIMyMu$Sv3O+t>xgrcFA(Nck z6ZY4hcY418;GqnQwf*M9fQSGd%fQD|dREhK zmhJ3na_G`q=K+NvB!KNr$@7jv#C{>ji;ZpqzF@i^duz$ZiViKMpi-b-0+eVMtSR3W zWEv0rrWQU;86a!YmTy=Vj6N>xg_C)Pn<0}@xKSD&6Qkh>Z zs*2_yfh4EW%8icnFlln>Vydk|mc_Akbby((KSGlw!{7E+P*Z4X*t+~Bm?oLa4A4Oe z7}Z-bkVNHPP1`C)q2+DWFrmkUbUT|XznFi}--S4t>2#UC>CK{KA@*d)q&AwD1+>IA zu!H!gBMKXgJ{MQFvMPh^xVsw#v;cLZCigd4z1it3`#3z|5)U(R?h=~gwrDJY8| z`$MVyxL6@oYOQWq<5W9p(GRD&Q5nm`HWaj&5K7X{ItOyF9Ue%9B|o38MJ+8SWr2*F z|IlWp*@$@`-WMr?^Cq}8siPQAJ(u_g0VXD64D{}hr;@uhV#dPZBbNoXVUvTu&9nWO z?eXm)`)T}9VL~UMm33BGt_3u;0s2;(c42%#*cnn8Z+i3EuTe@l%{^DKD`dRRgUE-g z^M-usoz0&l0JR(GirLOck5kITng`(pKjAn5$9lR?6WYk0lg>-tC^wfLeSn%pj-B2_ z**LX0ef_a_^mylUgVv}8Dfpjd!}@KJ^dEN~3(LPpbu*QFzPZ-l%n>RtU~_{Sg8mlO z)e6m$;L7F(9=AT=a>V%6!jn&Lur>Lle613)Xwwun+rj7&aUsTApZE&dFtUL=Fb~GK zWa@*Lq-q=~3aU_0hjp(`$=55U17azRRZN__gOiHkHVenE6i2~uW;#jHQlgy`Rx0o{ zlas8tQc}IVV7;TtXe3q924$Iy{RFW{)COQW_x6sn8Uwpmhg>o${2N@>cATo5VY z&!VYxGtr?s`y<41Y~w7uY55jphOxcA8mjfZQmL-P0}^E{CoJmoEMFOl3#{cfRmQS^ zZJXFwpYF-=(ciZD=4-Tg?V{*iTR4Qs${g4*c)Rip?G3*k!OG&=7o`3mNjd;O2e=Ys zs^G4d5@lc7Ts|2Qzv*k^V#U?UY7Wny+MMH zD>aVXm#zog!XcZ_lWy;i&)`?>S&G74RVT-3Gh*{a{9-^7bC37rHA z@jxPII8Hc)TK-!U{CKcC>l>{QwHuP+ZVDYd@L|ctcD9nfMl8l28RsN0?Gb)U9SM2!IAAdD9`)yF zndlN`b{WhdY$MR?lb%5-XzXj-^3_F>7w?*rb2@@PA{gQI#ITN7N;-%XV)G9Nbehk(? zD-RV7T!39vJh_w_fDxAmagWl}M>=xQQ5xIiPoaSZCas81cZzk0mIo*F=QDH_Me?iB z9tw=L9_i}NKNHB*J@o@D?LgqZC4Y)EjC}a20cn0nRKc!h-iAzhRdQu6I_7uRk_mf4aEM4e+?44i}kW3qYnT z!mR3BKbC5#egILMfGIl%9$vE>o|=`owMvFpD_SrW2WDGxv1E6m=3#K>-F>zR>xu8M z?5=WxL}#UcK{%AaSJ~itu}vwKh7eHBQKvi0#j`QoB^e04q7R69%#`WV1W7WjJPQ|6 zg=jg$I<*{APych6uuNRT1J>wO#3*B4DmWD6Jbr;c2Twj&wpvuZoi-QrRk%kp5vF-v zw5fv;kCHEM$RI=f0*nVGoV`v0$AEKmzm3~aQ<9~ z$HNZcl^CC6tejzD>4nPeYA5c6ukyNCeI-0C|Mc{iVq*9|nHT@<2TlL)6E441tN*ZdzbSynW+%ii#)TY+7^nc6hz&m|FEMNsl`N)Qj-!IIE{_i$oYV7 zttn!a-Pz&XP?Nus?hDvBui@jvXlemg+HExKXj=I%w$d#B*f9jxU*cUl)$iSEvwdRU zQU+s2>h(i*tcUDvVh#t?Y`p)$93UhGCu{XuUH zA1^;60jtu3J33y)wIZEtHigYz;VvBS7GC1~ry{B0ldG+FKasOIm_goPG~OwnlO|m| zcdU$wZ}#zVS?g}K%t&{q^gG@zysARTEOkB?PiRzD;(Ng%NUM4G>-EeR&Jn|Hwa+kX zjxxmMZfvEv;h%Yxr)wZvycqgrsR6Z*X{in`PAhz-9J2%HQ!kcBpd~HwA23d|jJxYenvQu~Q!FZAwV^jX}BRlL+ z5(93ar*2JWI&uV%db<(fb{qgJLqUG((}BAR(hKEtA3STu6HXEq_r1%$+w8XbIq4z? zKJw1%im(1sc1t(7Qi){Nd`?Y? zv&M=CI()!Z=L>S3T86oEpPckWN3co%f*>E(w4V~T(-rIm4K#OJ>qzo0dNFjlMH8*8l@{vtJtl>!3dA?C3ws1a6|;v_b{ z`h0_B$?sHcqj30kr)9F;{HEZ-p5nvuZViMp^f2_?fcb<5SY?ZfG(yb^VUnEi%EM<| ze)>3{Bo7sX?~)I+^uqP+o_TWNMZ4nh8jHm2D9_C(C~WVG&XpuPYdIO0);5p01u+t3(G~ zlv8cSB>f1YG#yYpxd)*G<&AWj&*U z=2y7ZqW*Z!XjoIG->AE~u}S6_^Fz%dWc{UcOkM}?9h*QIgFd&cU@ek+u65az(DP60 zfLYdYX1E6ID5@MsFO+0|b46*U{`uaKX2LW`FGV*VQHL|$i5Ow3*LNjo)#fU6Q5K+4 z<6|Zb)!A{zq(D4@d9Pgf_ArdaZ7F|6ON4usH%7F!!-nmxJ!-mCdh`cKykSu77kn;a z;VEw3#_N5_!)#rID9-B>Jn-5{buO@9ovv{SFPzZw6@6m^%c=C-<|Q@R7X}GRP$*?(4SbEQX74>)(6 z_{J+s_w|w2Bz-roNwZaa>V$lVE!S7cRQ&~omB`l2_#1@Sg)u9U;X=r7TvwoR*4Mip z>b;Y8%aR=7W3=N%==E2Z)6C}Q+QkW*?d#6jl&|?0`{oDOh~mxq-Dk|zbp*Zo`)rW>(^DEvnXOUlxni9W~}03)9a&H{V+*?_a4IatXr``Dk1X(^?ct< zH;s==%HKCh%!))7h1>%&Qj9~Prl`xPrja728YUL6dwpCg{KAco%ZCVf0S+~^ds|ID z`#3!nQblZ)sFmp%?j$gdE5ho%WnNLJtr~ec{*z|BmgV(A-uRFwyNza&B9nXmQ z(j29M5DKyP#12&EYcNqN;xn{J@aCA_%^#5vi&`ei;ZglKjY< z4m8_7ICKQfvHqO%67{w2bikMO6_NbXoof*sU@hpSbgq_DDN#)nw>egm;KM{AF*44% zeP#Ms7GnhuwU+3hmG-oXGEepsro%E;UVUG;EREM z{{<{@6ySFPt0BoNu7?){WZ0DvNIZ?e4?cf@Q7p}1TLE%Z^I!Bjr)b_i!y4-toqJ&R z5dGE48{xkP1ABLH7X%~N>nPbp0Q?XKSLfW3X&%N#9BUcaRaB*>Ha0lhQkr(}HqvD{ zbNA1*nheS`Vmfv=Aq4oFG0a?doaI-KOwVX+-cLod0q&NJlI+@>w^xC#lI5?&(uzJq zf8pNO`9MYAW8tB?b7urwBE4&$7-&cQ+GXw`yU*qe!r?BEFxZ;^k-aq6f3en;^z^oX zhXB)i{g<=g#Y|IoiipH+II{>yfR%8MvgbB|qu?I1)QJ_Jey0c?BQI-}p> z6nQB3bc-o;$Xu~CyuYB)^!(esQ@SuBAutvW%B4=UTD1D}2Ncmw+8nhkgzq-@yGbN+UAKF*e2A;6&%BK4*%} zS=*jU)RrZPkL=@?%&nTC3SH7#%g`<_tSg#ay@{Ge(~2wt%|icD&ykGS6nZVT<+u`| zS}O=>xo2d_bi@{^B2x6zM$C*xU%a4HKoieR5uw+GTN`4B8~hx?*3IQaDtYaF;B}9- zqZNtb97CP|74A?ad_kfjzC8=%eyT%try(^jL|fROVR-^ym4{_O;+*L7!%9b++gY#{cC|_fnIG@GR-$|rEBCF2Tk#TTjoQ?<->Qn(6@T+sYvBw7I z?NQt$!Wme}r*n=Kp>eul&Drkss$^GS&4y zLk})@w|9dPr~Fw_PYtr!TbO4|9@&Zu$x28NTRk7z$X8yd zt^y&e0=-l$uz6FxW&O*?!3?j4^^bAzD;j8i_--!yd3Enhg^Nfe1sPbPtRp5XjDoekp?n@YQCN9gkO&xa zQXB%4lUq$@M6b676OAig9;EZ5mYGkNeOwtFJ*2nGt!JjoS3t;Qn8onYRj}>4>hS^1 z>+fqjVeLz;jxDzK?KK&KxEMZr)Z*ygZMtx~Z%AK6@A5NXj22lYbh_o2??1TN@6%f9zwWhjOVw= z$jNefG@j=9np%NJ1k4%o10Ud!67A%9Ffw_Y}Dev$zm zPjPv0YWmqD!)!+VkCVsrk08oQ|KInl{)d75zp`K!@K9#)uL&ApFh{`KG}G)aL)seJd9ODk*T#A&m)U|g+GY|Ms5RBSGd^5hPsj7-PhSqPNVs$Ok)UcuM1_dZVWAjW_H}FV*ISC( zmUpdqHwy_4S5{JXiA6KSX?0B-jyhq>2W^`+x6|XAL|J`a>m@Pwc;(gAxgBNTzQTdP zFvfm{fwX47p!P%|Vdp_|H`f~gpPkE;8aMVu^)4tnL`nq%ND?IHFHx+oaF<%*`u%rS za`3SxgkRX7h0n+hlr}@Ctb~0Rj{&3lhy~7&FOojI`Y!X`Q{OinAcrBd)CLS&FLT-* zMa|Oxpw}_My54}M>0qPU0D|E!H4N7e=~J@75-tAaIp&1%CrQc4gNG^zBvkN?B7*vj zjz&Aa(Hhl){M*QG%?-BPR*TL`YfHe;;?`}6b+0SH^o8U^SQBDPZ@O@;dHVamNu`2>v@ZVrrn*G-FEylsYXr*HHa zEJjgaZWvl^`4^ster}(>q=%)3R+oeC6gqn1F@jmM`gsI5&`6PQWb=ZQcN7An)^K=fL8Eo>o;8LQyqZ|N16- z9#nx7;vmBfi5z+u`f*3c?6=!0siolXLE%`rB<*KBeic;dJaF0Ex6jok{>U+VN?a~If-E`C} zKPjxwHiP<#^7+voPY9%Ni4~t}+|32*-lUw_jstS6S)<%1Cg|bL~ z3y)ZS3@1JWaW?6$F6ejwgNum=eQ^u7?e%8acwk2%z_%s{62f4_{uih?fFP{BVZFeS zl7ddh#@mryx9iKVA&BZv+s@yn*|{q*{>%jOJJ)n; z#V5tjVove2e|~SdPmiNMl@YJH*A;+%=cN77fA#qOM0*P)1rUJ{e9HkHLD+h|P0LZn zc-=L2fy30leg&$6R@A0ooKK1>C^Z}dby$)Kb;fXux#YcDA4<%(s6*WdTBV0F!Eh*6K8B@;3E?1** z3L!KbWlC@^H((@>%XD2V!E|Ra#&~rg^GFe|Cqn;dtQ{{vf*MHO5r}y=FHtNBE^5*x zbg`x1Ra4n4N<=mOES7hVp6Wdq6Zyn3$_+az#tn8=BaA<EvD2+$$wbQZ&d3grJAQY?s0&c|T^ciDD)gF-JQ%^TaZ1ydi{}S#Qb#m5;d-2a zc+`uWNZ_;=GKZK=;ER|Lo*Zk*Jb+0l;!_O3jWVKIztbbzH)rG%X*E|iuHf>3y|0mbv3G}iYL844HYH! zm@b1e4HF1nUvP!}okMeIq3xX%JQO^5)S>z9hHMdwLl0pTlYdjoHNJcioOH`-;`{&o zTw1byb8{WPw`*)^kAW6K#wNuSEQdm6BZkx`?HF7_P&D%?SX7cyPO-Og95B>Q)h2;XqAsU)uog?pz8agR57*sxQq&Ug8a} zyF8mYi`%I0wKR|y&A?etfRfoIlYRx4VcS#MBZe~S&pIYRh92>;hW7ebW`@sZg6n&j zTS9h;+&m?UaPVXqYE45)M~SF~i6`^5lLH`C#;Ln59#$zUZg)*N&!AVlxwR^#WhEJ# z@N>lm13T;lp>4=nMRJ8|08Lmx@v==HajCwjY>aJh;`vGDa^lCc_Ca__b}aHy)4Zf&48(ODg7fAjD?w*qkb5k7GyjzBov|gW!;l-{GP>x_s;d{RL_wv8Cr4 ziC0$J`Il*&(z4zKxWd&q$<1oa)x&awYs2uvJqEkL6^eF0Q>*cdTSe}S$Rgi;e|w$j zYf}!GLo{ba8Vs8M>qum6b9ZapczbM^{{iD^zdWL?!2`);zi&dpKlVN_G5-%n^%N!lV`2Xf9P=cp4duq5bC}3H|4Hu0!EOaNfXjcbVc}l+xrIt5}ALVjzpi93>}i5Z*1}zJ!K2$ zKkxY7R-Ss&*4pc>6D)YVA>_M=u=zr<6-4AwYC=L2Cw>VP_`LoWgb`pI&6`1uTk{n4N&J9hm#8LQof1%C~f zOt4s0d++;guespD9o@lGgF}L+|s?g%kRoXHNgLn5}kB7pQ0B70z z0>P_o_Sw(+RyI-~ypl%zEl1~-v}|;W2bz-vO(I~p4x=MN7q&(4GU?+Y&IJR40a=ryt zp)DM@AbJmW*C5cxkt7s~c|AF`ZK#N{d#jub$#nbJ9&G_-rAeF-U`+Cz`u*%Jlu#0Ox z+%047&FeugNB@QlZ%=qKT7}}uhi+B()hC=JoZJ^L1(K;NW{5!kXAn$_aCFxD@n@tU zLN+50LGhEiQ6Hg8yS`(yQoA!kK}a8a&?4N~BXN%?5>Z;9gV;1B-{U$8Pl)JIX%nPX zwqvc>;`$Hh*bscffYCV*1F;OYRHM_XYxbwFYsWk*F=elkol(GxBk=A)?xW8IkM{U3 zmBx=}LMQ+Rc7mHgBVz~!l)m@(D!`4FUXIYfJFZBrB`QQ2!eahw!4GVM9S>kWi9NKC zO)9c17}^cC&UANTQ2d}%_FH`l1=vNN+=c(IE{#rkNt8fZffEN{m@SeGU?T;QOWZGG zYq3Rr-cSR5PCb8dlCs}n$>mrxjBGL$D8B+~V10`n5kjJ}-{OgK(OlJ7MYYMPk?2-z zkyRmc^p$x$gzQR+y|#O?&bS$;D4perfrRKc$%Is3CR161mCe^6_i$EwPhJ&3u{1QY zA|_A(!$n0M1!1w-ID8#^*RJ$>w60BBPAgvKsYFH=&e!5tpssu0n9IALvKbAUBkQp60GP0={MLT##E_s^rvXhz`aYodhc*%BX?a9eC z`t&si(W|sam128i{8k4 z&7&u#74zruSMrO`H(f65mPl=I%~04EY8?WEHjMvO01-^*x=I+KV%4LQL4kek`<&|} z0XIBhhG5R0-y5fTY~j4zrynj_GB!;4yq#r4NyG@aec<@Xx>+QAMK2bX=m!&)~hzktFbMcMvw|5*PK znAsWr`=!618R~@m9}>}Y^$cR!5*5V6j)B6cHH-4!GRxQG3w~gra{}L6Prw_LsXp+I(E!X{yCkh}`5A>TJZ5Ea&}atkNzR>TE`MXLT5gj0#*kM(c-1 zM)r&B7-QqfKThms9R7$;xFUNatsBbcgBEU zXZ-uQA}0Lu?esfMQxWF~M$HC>hQ50n`6V6lXZ7iGl)R1dbyf8s=q!`4Z6n-lCc&%? z036e)WSa)z_?ZN-h_gt~mAn4}M)iiR7bZj_zgG~%oSuMbHqN=L0ApEPOGN*%n-$ii zfv~|oSYWlNai0>nnER##n>CpEq?B=jfavuCM$_t3uSu)Oed)Kl)6cv^{*#4E4Q@Tq z^JvdII6yW8x5?i#k>Hv>bU!Tek$%Mfr$r1TxX5I_`sjR+z@Di?{aX!@+hBk>ov9h3 zp5m@|y_aS0yLNXaMAr8SbvY9n0<7`Eqr`D*Cr#V{TlY-c5q$n#7?1{UlDLi9A6Of% zOH6=zQmm&-D4enH{x{Q*4jvoyTe}o5EI`T+ec<54#c|YL|3(HPq)d$F}EYAOE38%ByFV5zLT^A%$nk zM90~|Cge;_xJ{iO&5b{wn;=*m1XLszKJ$?A&*=#1;G1qXzg`}XM`5Pn&a^df zr+OTM`L+%^BlzrTc}9AD?28x98{278V$Er%nrWEU821CTTsVSh&!Cf#_UyhBczI}f~8)t)Y>4<-k4Z}Iy2r-2hv*L^skOE7xx>v z0y0z%lm*neV#~BZ#Kq|g6G#=iMD*r&n;_Uh`zJEh6KI|GpyQpLe`4A=33i*A+tl;; zv%SZ!X-Q|gEdy!<1y49X#8dlyw+n2r$;g;!l}^4|_qJH{xSo377;0x%5TLr&7OF6} zGFlM19 znOXh^TKj)e2vguj<8hrarxkEI7#x*@rpp`-N2-BjZb|VOAKuZ#xdurNT~Y>^pA15r zotQH|e!Bc2X|iIn;?s(de3VkeO&dvtF|9Uyf^Ti{xjX!8T|q`+tb%vF=XJPWRL@9a8FSTgH0Gony8uxnT4Go{YjJjkW1P?{buUmEaYD3I zFQOM$XyVLNMd6apKE9~GkGdz29(2ekQ(uFJ=G6n|d(G2La*(n!*;SlDlF>;>BfgTH z7DN2PvAhmu;hBCPaixeoLTHCPKgu!?9!9rq)_iwXW&1TlSkvqG6am%Vi&};> z=Sh9}4xI*HdEcF6T?QChgzDA6k_?s301a{G3GMchUyaL{W$5G{`GwcljuZ+dCKCC8lIqm@`lpHZS5 zsm+Ass4fu$b+PCeZkUq9P4z5bhlI0Q;s~CN?RUF9dr!Y#(xH1riCldZ{bP?ScpI8t z^){7&PA*Y@7tbjNcDOf?-eSm>F>d^9S*VR+1(p!=|mZy4YICX;K2>g*t1`+?RNUwD{qlyron zU0T)-?~b*Cdq!l)doHl@s#(0Zm>p`n1;KwY+}vEpYz$$geo}!L~)qIO)@?_8Iw?cjLcvn*#n+X_lpTK>nDS?-nJ{fkb&#uWMs2d zCUxim+VX)TjKp-@DKXFWytxC55Mw{}W$?YFOqp2`1e{lOc{2`WmrzJENeUw23wmkl zWj@(_84c!Iph*M$)Wv6-5jS6bHOsuZx_2Fw;UCWv0AV*$Hb?Yak#cj%9%!f3R#Z2_ z5LZiH@8QPqZ6`Q61EbY-cUO>v|y#};PU;AD{XL{rS{;LrC|GBICd6&KU{HyLn3Ta^w>Ch5# zb$Rn>S%8(btpGDujX4i^u`hv^QK}9NE~&yJapSS@_hrD%^{WRLLE1X>kg(J7b|bjO zZOfZE90r^BG#FdYf!&pc@w#6TQ0U%I8t1e!T>6y1JC@f@M+^6P%VYp<*BY4F!0s z@w6;YVeZqp-EP-Fdj(uS}0wAABSshmbXkKk~P9DagT; z3>(4Fa;U2u(Rx^PECPc)nxWkfM3*N{;j*`Xb$Gw5thhev+%k-`1=n;A zF3C1&yB*aD?AWqR&i1$qtWrdBpqTqmpnrvmu#1PAl?$~z8dn$#M+L*h;cdt~#d#y* zinlsv&9=4)p$iM8h~2#qZ#51LF%t~Lps#bh+-G70Xut#bn7Z(!%J0Q%DJ07~{$v;e zJzUJRs4AEY62hn#xve9N4<3EK%6CkdN%bk$bgGV z7c;uak<4U*F^>tn3V)2JCyJ5~D+fyJc5_*x3?_~(ZcTx5;I8Wf*McbtrV{Bn@{YW+ zZk4e>SV>YFPtNROVVxEu_f|t%Ch#S9w#=Pu3K}l_n82gI3&Ql+R?tF@$BA6%jhwM( zG}PJ`5`VcjEU2HX8REL*mYvB^mG73cY5s(_j)off42?HNe!4u~2POW=9+i~V!iWLi ztRi8VNAkg8?&GIDWI2DV%IVvJx8jZuGgc=Xn6_*hvkY1qJR!;R{L#k_ukqsXv*VZLdUPLlS1ITo@nL*sFf`!4b;;n&XlXOASg4AwMNzujuNub^lr4)n^J} z4~~^^_t}{6+`hQ!m57WxPbMQ+#~GXPGfA!2caof-CGHKX^T;6;AXCMPIPI^_JO)+n zXtCtutfMXYZrtPY3`vNMKo_zLfRnE_GD;$T;wCAi|RY0wRT>$i>A^8)!igtiO z_j?76>$fAN<#yPbTkNE1Jz!)QxCs>TdSCNf2i(1GEMP#wFy{<7r3Q+!g%N2~(qT!y z7xiqu@+G2dq;)|h$s#H!m@3LiQ#>$LuyS!Hkopwn$FDh%HHjIaxf#{hxPB=D5Sirl;kIm6J$390tB3d zx4A~24lSoeqiDP#Ql^cev!SIoX%qHB7`I=yq9%)hcAT*+=dC+K|t4xPr)n&5nXzkdf=IqunBJZ`S8A1Ha<`B@DR8z{#tt=!8YfS-=W7jkvR9LZth$55!=;||1^BNm(`Fu{W% z)`S#MFpj*FGs6F!1*;LWYY593Y|=B$LqJBMCjbS+tk`1<70lkpsNUmSfY3ASKLmlG zCyp_7li=Ht12C1A`ZP&F1;SU^*XO&!sSKz#C(-DV=!g<)BrpZYJ>Mh=fCJ)%&=Z0s zrj3Qn?1q9_7j!(+1lTXA@)FB60?bFR*`Th%&lsx;A%+iAlf)+m8k}YwIuj5`U`hoi zLLh;SK7`|DfR5tymn1$soo8?lexIao!uhMy?&tN>25e?GD4iu!rXNpOW3JS zo#p6cM2Ykz2$R^`!WGCqCzP_)N}H0`O+ks4wfwcfdIGZpFFW;2`LmXO9*E*VuJg@A z%VOoejgMozNSj6D;g6%MeCE>n;-Rs&%{qHd=cC2vk^YnA<7|eRDUwbROA{^NM1$|} zq-Cp>Vn(WYN}nZg_gKl&FwH|P`#fgx8xior{zjmQ`)6|r`^};Q`m}h<@1lnWuhb&8@^jd2O}*Ef-8YHj zi_EJjoX||T0^4smLyyD#Q~OqdRK|ShlA~8)j>@i*tV$M}Gij`0neyzi?Xu&RoeDn)+qEV77QG-ZnPTm%5rlU@Wfseu<{O zI)&u9ovG~cQ1TTq?9Oh+CBn5L2gN&`50*NHfztw7@Tufa9lkbscCRF!OLuOn;MqGx zdsqH4F*#g6`rKP;qodO?5}xVQ$8@YuvYU${NLhL0;%lN7p9c^q7G>QHhsJ^8{AFNl zyMZ^7)dUV&(5!_&-|2@Ui-Ug;fPYU2Qdd8YGHn2G`hLyuzJ`kud(g&rMDJVh#o7P! zkf4SsaZFHzW&nibp7Yf6%i4}7l=V~Xup^e5ZOgclEs`d`f~L59r!2dT(0K&Ex@_VD z+nJ8#O{aiOr*`F7AU#}V@pH%Zwtz!`eIV^HdUkIhiVtSoj!Aw;0u{gjD8Ly=bWxV< zapr{M04v%3=kN27yGW$rG(vG618@%K;=wmaiL*ly83K%qjERk_9UozXBHRZM84?{C zSuiqO115CAi?sGj0Hb4Q?SJvC%Wf_sclw3IbnH{jdR#rZD(${#_qnUDo!#ZiqWs4MTd?#y%21Ml z-oErZao_GBQF3+kk0`-IFT%xd@U~foVTSX0VNB<{tCLo#`8{OnF#NUuR}WbKG2cv& zPtV9s|Gz=N4EU@pY|Q`r*N=Mq@2~i5ER6rFwfFxo3sH`sN(-BBG&zov&?7Ujf-Wfq zOk(hKJqV0+jEN1tj$)yqjxGU#iN20dVlKr5V(+5e*PO>bQ=Jx@?Z%bc7oT0z8XmmU z#zo6Z`^oh|Y5_@lazw0n@N(EWIpj7I;2;2gKwNzIyl{;5JRqkqU&GP;mJq>&_;e*N z-vVSkz4!;6(ujc_;O2cf0L(5X0NDV(vZ@)fLf8->H^6@S-vD~HcD@87!1~ZL2Y@BL zIl3Tl^*|GgSa7v2d|S(}CXl-Idf+!ulkl9yY;|F#T?qhHz&Gy~28W0EY z8y|s;fC>tr9k5561+JqT`oyE%|C{aAJN??^=H4!-73kt>7~q}%qUYI%jRztY9K$!T zJ>b*xt9hT-h0W6wKqC|uNf)*$gwO6P^K%QP>D|J|=i4?Ey$8irmX`pS?nRbN|KIO-T`EW;<}gSNPXYXW+wpPC3}=Lj7L=;b946p-K%PqD3 z(&t?%F2{pI9Aiux!iT}DRBb6Gi_^OwG2gNxRdI6crS4+-T*ZHgi-+W5mOB94-j z5=mkM{1h&1RQ=1yb%%U@>Mc1%sCIJNC_-51c{=o|OsWEFf&R^MQD6v)gJdD7c|!u7 zlcD=sL2o9kl}IB1RfS`tDo^f&Fokm%YUHPI@+niS@3@ADdMAj1lEzd_rYr|sG|U>i zC-RT!@KwJ_R5L3>GOnVr@Ev+vQ~xH}e@K~WCgD;p8RNJiD^3>X+~}SB^odaa?9Nll z!`tW{<>SEFa|h!{!`G2s1L=C`5vgznx3y`hYF(U*r(@D4#^r>yvYLRK5E_@T&Jr0~ z2T$;B8 z`1(gFSgBx{WybBOhDY0&u@5#K;2&49+hTMXT`H8Kka3z-#rr{&TTf?(JyP^@RHVj< zRg$@l21V#mMf#IJesZ+p5$^+VT;gBb=!KUg?6FK?FqP&VCTETvd4H5(NLBZR24xSA zgw}q#f|wGF_VeVi;5KjE#B4*X{h2|w>vl;=w}(+IRWAaMSu@*@Ifu6n3wUw{o|sK} z(P*fw(Kc{zSC(>b825sq=2P&Piqi@W!xn-pD^w)wDnUy7gMY0gm0cm$i**nEQB>~W zu|q3yKEi78y)ScIi1M<813wVnI)mFu}ciBjnNHpGTK7nCC)jo=35QEYGxriXwu-| z6v;*H$J?HsS|Z$_HymiD)YhQ!kC#qVm`^z63HT4XKrEr9w*_XF=I~k6{-HUlB;9U# zayt&co6KT_BEcJye?%XEkN@EDt~Oz{=3rqtXu>V| zvX~!^I3Pw)Yb-|b1R4SNOuC%1UV%szSDHq}OyD#iJzx_{GQJEyxzhmHB`}&6gcpcm zu4CVzjMOxbJ8>zlA{;|RIV7@d-)Ne##%@p2$%A3~zQPmg-j%(YJ+%XR@pjttlH<6# zspLFm<7ASo$AMA2t@7B21kQrqQ|mSESw0+4jC{HnD6A6cm9bN>@VdcXT-P(r5*dP3 z5!|lz{wnpG2a_>}FT6_CE3-ozaT`&+bZkf399tx+IcH_ZqjxS1=j(Jr+#NiAYmM21 zFHk^YPZ_n-X7gZ+SWxT6yn`bbz9-4uawSmAXEx5Wp4=n=Z^pm+&Jc;V_|M!>Ys<51 z!|o_FcTjOu6MPx7es~~WQ8%W*ljF?aT+Nd)$psYjgB3@#Q@U!qEL9;N|tRp0% zHIZ$Lnm!`Vtg{!?kF?!d9$|4$%gljBVRdeJ`Gv*VDqzV@S2{Yl=+o_dgTXHf)h+$r z*2Y>1sOd<=Il0L=Pdh$+>mnTCJNl3hrZn!=on#QJd+JH_>}H9ZZF9tn$suCd){&RT zcz6>Yfmjr>e@EHbl>4_>lya&OI?=tvLj027ZeCJ>^E*>m1SB78qeXL5@z)}fbrAg- zdA0l@0OjPJ)dwFsjV$h`>oHTiiDE)vS1wqmyR>O)57oH$Wy8$dCi63V^r(H|G>37x z_KOx+EAGrH2fAuJ-LdhE5RKQsNbHioJDP&Ckt96`F)AOaQEF!GP-V7=s5faqr>Ib7 z#Ig6ihoK&Db$Fqyat%HfK9Jkpk?y`SWGh+z^Bbus+#~mT27FGIi%=`@ z@)`USCd{b3hp|o=qeNQ_CtXLn2+8bCCa>GWs@z%csY56wM`@5Vwnly?Im%Rx(mL}f z03NvYzEF**XQQ-QU;%;j5$N$n=t@<>`~k=tjBcX_g6(+4@s`5?_?s&KmBwg^Q%=~& zE#*vz98lWm3B28IuZa(&C0ftKTIesz#V3_e>`Eu~HV3U7Z*#BJRNE845f_OA2f zKxcnqB1Fw$Swkwy)OLg9@!XXy4*4B-sjc}Usuf!4_pQ(`f2?T4Ejd^))rOFtB}dC? zBe`)_rS`533D(MH6xG;EO#_9!AA^IwM_%V};+b4*HAw-b;c!s*>Zo$y2$@cqzZe?- z9;G^qYzKEWGREd0bwq@hj^@nu+FEi*w?LJ8;e_dJBZ-(~*THD0_Y|8HF}q5w&7L8| z>1@>XJQ3sc_%zKkC8(`y<76m~fT~t%h=0CB&N)(X=?%9j#<612%I#D+cFPxRyI6Acoekl@D zHrfJ^xUpfJAmAMer7jf%UxC;ZLut%1<7+)2bhC8N;~4px_>5k}O~IU7UEi=5Jk35m zWQX0{lG`PfKe3YY*Xrxn->3nPl3ZVNUOz&(MwNcJ?m5#d=LnCC2h6TZGQ(NwryL>4 z8V+^gyAIaXPIz{lo1@W>ep{&CEqM9!cxxCDF*n9A%ho(- z$NTgR%?DCulLhC*&#bMjE?MziuK&s~TnItaZZlWmpbXrzWR^pIbC>96a3ytu3-4tDCP9Y4Tz z8^S`D^(u1IxVv1oMSJypD`|{0T|5Ip1O4n>XcyY27_%r#c~4=6B?EOq_*@o@!M9r1kEWKTb1||in!O&Nm7oKywpmSGQ{PFt1 zc7Z%2u^W;iGTgJpM%>8%N#r=sVrFD>j>PcOJS|2=9+iZjiU*98fDMXDK0urzSaXwa zV4GuQO4*X<(uP8=@BB+eyAB&3|7kp_#EKWve>w+V1xB`TQF=SasWRAngla^FhYk;b zM7KKE#Y=K^;O4+biDFO@VKT_+^H@6qt~gO9;20E1M`K>;A@dqX5HU3VTW7qKGwZ9a z0t9|$D}2j1JTMgSJ~m+>zzLSi&8?iUKrsuiNnx2p&nrjmMN#WxOAqXDp;OQxuZ(UR z^m^97K5~FQ@T7=Bww4|iZIgL zW`nhYiR+2_=nf+{tkHB1=B5Id|A6A@@~N=e;f0^AL+Pv(%oQaPj=beZzq&Y=F|A25 z{+U3=Dc+%w=+_;bg#zW66Z<&Khq3gLCKh1AVx29W2BKg69gC>!fkRySYHDk>id)NK zl{>=(9)4GVe2SP3ieg3f!BTw60zsNW$~CDF8N#Q*%-b;SaOkfgNv>DWlu%;tw#U$RLBG~6XG$AxG;^E67s#0*~BVN4_A+Z6fN(p zwCj;jH+j#Rd(m+q2S2W*LGttH2a@yJx_EgvjThSKYi(CqP9ME*r*S#pR9<$)X%b8= z_$yT=TR-UnT)oM=bF7XjgK^KGX3)ehW&B#HIo#!yk%rqz zeGqENwDVUFT=m2ApaQN1m%kGw;uP6rY2rBREvj4`UL(fgYs`vxPQ~V#Euh4}P0y_cQ)#&N4F`%lGAXOa@OI9S9s%hd)VK{D(lyI*?6=xqMisDM`c1Wb2 ze=4-&AcaSmQ10S%4Z7K<>-v09?(C_hdt4Y=yQs2P`moS_HFR&kC)RcvLE zP>DbZ_dw*TR}-Nxjq7MY%phCrXf<@6D(UU#1iu<3{3^R%DBjxny&_h&q@`XYX2Y<} zQdlLn$*VX2>JVe4$S|CG=fFiQ`v$kUGQUaU=~sNPn=LO8vA8$YhHDz3Nkqg5#}hVx z_@Qf1qb^Zi-5oxb+$*zen_pn9$2qOJ+?AZ<|0TE^%x)b%;FEO*m8KGP91e4wdRvH&%BxT~ zYw_Z_wk?^s9E}bfj3SaoZz`g!*qf7)YU(I?2Pb)-WMq^A6Rb)32TFJd?P)Oh{N=h! z_@!#g+eDWPUUrpO+O0Dl$ka0Cact5!1Zj^*3{Pd5>J~Mq@upOJ2GLyBpJr@R_W640 zsiJQ7rOvNBw#78PDV*Rp2f_D+=*-8SeGxkQh6Y9PNjlvDrHV~r9U$rt09;uB(fk-d zJQzH&1vfP*Y*1QL&~6-wO=^!zGJU0*;ZzmQIA8j(zf6pB>))+vTXI3vx}bIZdTqJt zrbMLV?|LTO(q$4annm%3%eX;oX^=WTe1)#x^3Diy(7C@ISt1zf-qi!H7P#X%(Ue`+ zw&wPsU_}j}ldF|pb6JOVk~(EFwR>LHLyw0=TgZNK@Ur5)eq4A)U;~og%4M%Vq}dsu zjv0-0UK$D`&JbOY-fC5->3|%gwttm~#Kx(Hmfd%DJ{{E@OLJV&q#={9&jas>3y4YM zyvJL%*+g+I+}D=A9gTNJMtNY)D(U4C$hXwu977K%mbVC-vsmnXX1L3)1!&N%0FZN5 z<@6nfz<_%}I3y>Iy)xfF%M^!bxjX$D-U63Qc8Nw0_{ocY5ydP6Zil25)$DXc6=tHC zJ*8$sZ#A4tp0#Qk-fGb){O&A%i9Guoh*Cu5%4n3R!E5P$Q&%$6Eh$#C$})?{{h?If zu|&x_-Zm~yNO68yncsZP!{?d7Wd5;7({JRW(qnNX3L=!rQ-r;X%bcu>rOZhQTC7yU zlFaU84J(7o07F;zsGWhXKp0t#vu&ro0)7>vvvbDW%yvRu#%eWC+@JO*2*mgDr?xdr+SUeRDnse;V`UqML#(aEv9)2wO6a-%|8154d3ml5J)9?Jy zyVuHSm_;cE)W#0kS7g{zRk4x8@x+PwzETyUUcIS(S;&PVREkKfe;qwPjW={v%YW+H zp!%Tlr`k-(OIOu%Tb%AW(UBkiJZifl(DxwywbRdiv=hZQ%MWx-ObL795nO(gmJ{r^ zS}WN_My1V?b%9685!11i$UJuN^j?-}GU0Ji>x0Y%buHE8dA)CL9ID3#1@Mp}I<2`2 zo3bZzP2D9G^3IV2MfGtCzxDmK!R0=*R!#B5Idg7nw?YlqN*RiU>$&%YnQ96W_=U*i zN)^uZS+e9rdBNz2?*b3z8FJN@o5saN%C~vLw9~DQn~AbPA6{oY2ig@@5YJKl?_%SG zynK(ikYlh$BMpKKpXcp%1^^_4IC$w|%c; z5p%13f#(mVZqca~RVXQpP*Fu>hc(8x@gZ-F*D4n0X>rJjgr#t8koIl|eINDV%bob@ zd;cTmxlz!0}=!+u{^WgH&e z*H|dma5gqo^{PeKupOlG)@Ur<)OG>KqEZtd=$x5fDPpgj#f0A+q2ceD(L?2%dP{q( z=bIX{mmL5vj^f%3?G5uqEwK-k_5Y8tbL!Fr3bJh4wr$(CDl;o>qbhCNwr$&A+O}=m z#?+`+&zgSdhx>4ULd4l;M`HOOcZB_@KczgarcTEF8OuoJuM>#SvVoNyg}{UM5LzL7 z%5n^kmDyPtIE}5H*_?ATOpmJ5G-7o7vVS+&kC_L_({qhw#1U-Gyi_PhnKARXyZTt< z`*L??V(np7EnR4;S-jIq>A=?h)PT>UaZ+dx5qP*O{_z^oAN6jMsRXfX zgwsKdT^KqoTy4QCUEy_^>Az83{9qXbC%7%ks+DiTUV$G3C|coo9(A8A0rGKZls9jK zWtWCs-CeE5nX&n@!kMC>vxX>W<|;d#}_o+g|zcGIJW~)hsz*ur#O#Z z!i(H8PUB6=Ss@IDkNLKjO?n`A6(8tZF3V$yj=|cVh))V^qjwE)S>{+!W45_5RNc0& zc{Jgw>_dP8tu8~VwhO&wb=Yz74ev@ue2GE>rS#a2fci%&mIS4BH*>wmz&Qk)Ky%1- z&A`y-OUynK^O?GP59a|r@fm0inGE&)3NL2cr#Sj9zLV3<7w|3vmsg@41kGT zfhBeAJYj%R<{Deb1$rC5y7hwq<;c+MNxId;afH!X_Z$w?>w9oRg6os(lTD_zuB5w( zg=z76U1MPc0SS5dSrA@xL?LTme`l2!ZFr9p{O9I1M?z48JObM3U5gE`8A&AoRMGz*fSeDLzRB#lPfJw z?_1*2fft2^SI3{;e{$jH`L!WQT)(`XfKOl$^|uIP@-TS#*CA0P_uc~gUi4!vQ7|^ob(2Jh={smqd z?Q~Yf_96o_@qjNtvw=*kb!JuW5wrbpseq}>gY3BKxzH_Cb=CO!=f^N~!P!@~&&-^l zU1CBso9luRaUb@_eXA-5`@;U?sKPARMoTw5@iW6`@tFO?j%G%F^WZR)&o|py#S+*0 z?}&KVW)h-Q2Z0p_&fukTp|Pdl^7!JN&}ZEp?KC|7yr9zCY&hdGy;Ml#wz9o~b%pPm@0uW9caisx2?yQzwfb*UkYHFyJSow zucyFYgs1kE{FjCyUYfg5DJgJA3s~_oK|1IU4K&h&%1!|J+ zVe@-^;1j1#E zz(4O4EPNg!<2($}iFr}emig$)g#8WDRb7w?iOWM8vKNcrvn9Ph%IgcEA>8Ac8N-n`KF07h9U)m#G9zMo_jvM~tH<9t@O0Bw1CM~!Wh9E&l zeJ5)<-P9^gV>{g^vviBzna14Tm>`e11~)&odW=Aj8mfu?-7_C!p3d6NG{;;bssf0C z9#WQ4-H7rZI>}hIAy_N2`qpni&_zNKI}a?hp7D`k{iDe(Z#F@lxT_cM_LoNcofy-U z-r?^`63*7T2f3!g9q=nz%F8{ry@#kNxjVQ3{AP5xW+(V;7h+0|4FJBrMDDKWzi{~2+@ ztibg<$<~KK{~VE8b%n!5`~Y0nF4eg6(UjYiu@jh_SyWLacg9a$v9MB|e!^pw&1Bq)=PW4|gBmbEp{NGYzW+E0Q zrvIQsScv`|X!#FN!scL&t=8Vmpn;^qe4%*qn^u@CAG0%j3%4MP`7#?J$D2I(+jkrK`BGC;!B zeihCB`2=V3PXpEw5do?44FV;@?_+|3It5b%@3-!YK|~i8g7o7+0|OrD`i>8fUc^9f z#W>!*y}dPn{Ij8PXe|OlDySlTxG@v;%Pxz5d^j_ zW8VaY0tF?2LqI}W9eW}koEn3H1LaeJ{6kv-w3yu|@5@v9dDaW_df@=1bE)(5>qY&s zRt%|BFuktw^bp*>0a!y6uNTOf8{MUiG7BBZsp0(y%E>NRU=Vc69|X^bfD)I5MY30-bUL&JGh4_8KeJ~phk0fOa|xt6v`!_!|3~50RjXxkl=bN z@}PEaomcpu+Tq)=A%sg)^QXY@=y)>!0?ghXly>~{=)s`>bHfZY1oV|FxDEXE4cGt^ zXcg6D;;zy!CYALSG43Mu&3{0a(7cSb_uU`jm3$EA^EUA80LBRtbeD_>URsgKPPI_+;|M8bmdid?ONM06M9i@%>2`pqhj^Kiqw4{U9Vg zR%DAyiC;8(i@f(0rlu~V>1XUw)Vw{%=FbvJn83qtQ069g$ZZyu6;(4<&~8e%2@Mb+x3Hd@0<8mOZTHt z{L?|o%?TMQXjdYL{|yPrBZAlYeeV`mgZpU+uab{AvHNJN?tPovQ3=x$(8m3Zs~QAK zxGX$BHoVt^32mPo=oV1TMr0Rvl^gN4Q1fBAf=4880AEIXxUvA=J3KV@#&~JiC-jV{ zfV2Xs`3>w(_m*VyX^Ch#ZvvvGL<{}c1gT%hg2w(H>w^PSL$ z?X#_7z$@-I-+62aeDx3j3WpO>GwhRe77(Mlk&#}ivvIUt0EBF_6(~v_b_P`cHYMq4y;I?jr=6yb9CfMXJ?Fb5!x7x#?Kvud^Mg zdtA@J8H8i^&}`!$^v4E`V0T!qm_ePWVaI3FMCd-pB`L-<%^~?<6uskw?T$TX1|&Mr zk|>HIii63@Cqm7fMkx|BO^99xy6?{bA%FkOj*$+AtkZ&<{8Ww^io$Ux+m~=nlkq2V z*!EP65zF$IvSklSHWohddn`FaY%r8J*|0w^^_pPZ_kX0(Wq~~}e3n;aI{SD77Ssi< z!yPJ00jb}qw1j8#pW{Ax-P_M@CweXOyaX1p_(ZRBbmfxrH;WB} zxF(9@o)Y2-b6tZM9Q``AvHnY2ldu>z5$<3K(uIFGW_2N&SW6F|xI99%9nAhMyJ2kR zZxvF+k2?-asO3GX4puP5l4`Xsqei6BEQT$gL{#)QG+{8{Dn1lG`evevmUozSZA4OF zs}|NWKrf=%nGPS)H$WNm^U{n72I<@_qg!m4o)=c7Bla>z`7`+N6(745q1^S4p4iA= zsNv8%uE$(mVk{IogoSh1yqX%^6NcSSUtmG~^rxXE4Y<&Q!>8pyl%*HUh0r(q!%pwG8j3l;Zb2`~Cv9!z({l10rT zpQ8@QrV>JZa}I)Da7yiVt0yerBfPlh*CUXn2a7NE%+G!FD?i0_GF%kp28UAs&LG+Z zt9E|GhedBWX5Wo};=tC14gWx(B1fOX8U4#&QT0<4k5f@`_(2T^H)pohwSQA~a0S?4 zo~fhTTU!cPxztQ#2cp}q_BUJpE@SC2hFsvP{(3#XPzEZ1Zhdx$-8=f%TwP^$R!2k? z%!p+n!HYRnFI3;GH4tM%&UiTOID?xj6LN{+1&CTVt=jk}-4rlY+as3cD-n5UV;&Ny zOUQD(P+~<=zUn{i^vK=)P~>q;Y)(N48c%c5CaapTWO`OxM72U;S-v$D8tYnZwl6%J z^m_VCPCTzCfoR2FPv3~spE49ONVYfV{YbkU3GAxWG};!Dnm%kzwliyF zbLscM(Sr3POS*3#OVSTs**U($Yg~@KC2NUFeX7ip8)_0y15xLz3$**dEcX>MWTd{`~fJ(07DCJcF`_ro&G*!S^K47Fsd>a0h&R!g;*Y zap?cRW1TRX6804zm?bf!Bw+c*&83!jK_A^tR*?EzsdRsT zPO@}t-T79$TgCc1r4j34ST>taGEdGz)OGI(6?wEK8Tghs^fZ$6uRa@p=Dsuyfi4$| zn&wUi4Zk3p@nd-RlELza)=4VqP{#1kUlW;PM^skgsb6py?!hVH7koh1bIclHvpU;99L59lDS%fo_mUSx%7C>04RQ>@K z9$f$>y8nccV+c0Auv9Gkye3VEWJ~4v%!r5ve|{mT)eXnd**f zo>cd7E}ZJa9pYR6Y?=vwQNN!x->NBl~o&4WJ&zoZs!1NT-sOf$h*GjXI7 zkt=G*y@@Be@)^POi9CJ=P@|&shPa|D_70u6Myd>5X_s@Z9(80V>$~RP&|(TzH#2!d)6lz8%z{1_OR; zwHKLhz%}}_UfzN7jw;0djZvX7t>+}q_q?@W!pPOxJ&N0(F!g+Pl$mCyQVnCuw}BP0 z+}Q`0+X8Jd&+$h*7h;iMQ_8)@MS+UG&&Pg4>U{JYIes5Hlbm8{*%T8B=JoXB&NjgB zV|Ypa;`P+zORso+eloti3IT*mY~wlBQ&v6tCX?(^2QVMsZ6xV$k2rm*A*zP)Cc&O^ z?$2b~VsPi5IxgnFXq#VBHmobg9#F$mo2(+@sKWeX^}{U@Ro8k`p_{*E8TO8T1Zbq7 z4A!Lt9b&oI-;d70<`x(iA@}?+jEQDC6c(ZO;BY1oS}&6uY`nb6-VDbW8+%AwBMhtL zXg62Dv|$Q9b)xrXZ9`#N7e~A<(~n-{EYqltaNwv<&rtK4)jl(~Yc4XdCr2f@)2&5- zyRP8vVrE0CA{Tf7IR5}RXNj}_hFbVObESGJYG2BtaDACs7fa1c!kap zIJzu$;=Cn&JrGH?(5eHKi^N6Xko>dPJO>72+Zx4umnnK6UZ%TYVX&gYlyzXShunME z#8L3OY~I5xLOLt5(KW9RMcQPD&EKDj0*PaE8Uk8=1fYZNW&00CXVChk?*~IFO9caQ zV~;G6yIzn;ydI;GngCHN?E(f^v*@T`7n6^Pi~6wI&E6Fy;GAV<5WlWepViwd^G*%W zm5?Z!(~+vc2bJCIiL9owtu6p^B2Qh>LbN_!jDIZ7AuyF^Cr3(!n1ql9er?n zSP$JC##=(_`QozCFdj^z+6d@%Bx zF@g;wdWeGcnz+JaD#F8R+&|i7B79#MQnINZJ;UHtZ7?tAzHe6_ymls9%y^?*Il@={ zNi>l#C>Sru3%s>SvB9i@L@Rs$mFuTP+qxjtQolS2V z$tL}pqi5i;)&XXr;pWD*ntz)pst#NQH^*Gkic~jGgpevvH+L>d;KHD439&2*{(5U; zW|TBZ)>*)J-M?ln+P;JC3$sbrlL(C!&)qj>Y}2StS(NzfHoBz?De5IB*^Xbi-1oWZ z$4NF8Wo}?H6K30BEBgwO*N#_Is88|;`TibX3b{(Hvu*#yq{U>MjiFN83 zu0UGeQvln(y6eUSN8CYjT2GLEHH<;KgR8VUl7-aV>^>uv8mqc8`Kx|GWAb z^0p?cr7J~7QK>o68aW0f$l^{Rg0}MQBJ4K)FBc#$JMXVnTNvg2yDjY?XDsP<=~JJ< zX>EPeK&m^A6&UH&iOVlf^c@vCe>ZC}%GQk0WwYWI+}bD?x%IdrsWMs7SF1o4145BI zDwBtXK9+c@v%!v5=3n%amC`%7z@u|u>}ANmT0-Rc zl@`)Lsr8|mp-fTZvWqmqEgwE&m9YlHdf=kXG^bR~Sn1SoI35yq+s}6f|Ec4d*4|H- z`MU9eR}{HYuItC`HL8o1#AB4_sG;~UZt4c)S3I$uawekzdw%75CkA6==2To%3U*x@ zT_f5<+tHxQ!{U-<%=8%5HSWKxsP`V48TAt&;&plPN@uj_aNgf^$ZIJ>1%r*hCAE#r zIpfuTcoWcn7S8aUp8|8s2cUgV;35xgDPmo#ZU1>D7Qn)Pe)7OuRw$t`c zU2SXLMHCw0;K!=-!#~7(8lorUj^J=qIA1NVKEPlL)n)IsFcx{FIrutYt~w{Mm7@v` zOzH6=697UVa4E6HuxJyouV60S6YwC8v&9tP?9q}8LCAMtG909_ZX=&BEh+b2HKzr> zMCJK}`BSv`lX8u=_}O_RxeU>>qoUC>U16J*sH^C#O_`eep24@$mmy9UDpeZ&7dsjq zd&hd`md!5OQasdgXW(tvS$R$8%_MszF&iq>IUfClv@H3 zCTH@R-Z$7-&n|BRmZ2IZ)a;$3RvIY=!>3-!dx(N*sftO~Dy^>^qtBjZELYA<@KA}X zNJo-RVIFKg6PN5%xwlr=#jtv`gcfQt4P&7fCM6QJ&|33txxr?%JFao*DiHz(_IGz) zt&WHf0?pBQg;}d8>+fkA$bk5JF@uEBQ@QoqPvm_MIcuQ-^{3}z6hpQ3*jnFnlu#)_ zZvkUVI>OaHzfs)AasrQanVE!}CyMl38!Jy9`dlP?X}CE5#`! z3}v*lm+~IZ=UUg>0MAYXmn>C9K?`rnqk*>=oq;+XHG}ia8LN!9hW9B_mIn6iLa&c)tcPX+;o>1oI1sP%e536BO2|?>xknG>KY@& z>akeW+EK!uz{l|+F)}PK-yP0fQMguRqvAsd__sQ8o~JuxDr% zsn1A!5Us2XL(yF_&_2@^W7&DOgzSVQZ@2ZaO&-o!Ir$!jO3q&_#k2!x~9> z;0a~(L0SY8YK{cSt);}#`DYR889*uY@DDxBmqEHz-Q%v83f#t&m(90DTxRJMFdhR} zMr2V&ty;Qm;4A9nw&h9;$Y;n^m()peBQ9Is#}1Yt&eS$hOO2vSU`#?ZZkM3?qZlMhNEA@1O8iRct^J`WTU>Z=N35?nJxWH>b_P&ijZZ^i5<;VMpm(6ns!YP+ibb(CbRy{(P}CTMSFlLS>RW?uw>CVk41Hm63vu1{l#t9i1j>YQqbjkD7ungxUg1jI z*o|xQiv7l7xZ>n4IF(9h&1Hh%gUPfg-my%}X{)(iH0C)8JPK)8$BhAekoq zB$cYG1$BR|SMcybn2zg|}IOYjrNliJ$y6j#Ejd;yA z6XFM2>%I1b?v5m~9Y6;PceKgmRorW5d*K`h5nYcov-11VB^k+`sjqYobz?I(Z*9gb zAorp5qI;O93^-X+j3(<;@Ng3jStm3IsaIw$waXk~-wm_z1z@mY^)`K8r%*q{j|Q$B zFB8?L@2Ux}k!M1=x1F4e9F&D8*V>9=i#A+&k4y?TJ@pZmUVy$({|zP-9uij`az8-1F%ZKPY zlOTw!&?Mj$z}dstOkym>-oX?cXmTn=TfS5_!|S2fJw`89ThT!o34%kaj^hbAPLHN4 zhM)QUmncJFbupXw#(QXDaojIy3XNyHG$7dSUD*oZsdOUF*3-1|06U2w$!Hc9e+1`jjO*p>wHv_0l( zux+e-;()n+S3kfPLQmJV*rhsY>PGVf*yoqW_p`h)?-c)?yMGro&klFMB>ay=lw0}< z#7x2r-M~n^%v$2UN7(k)$)#sUj_pt~ym&Z{du`bgU-VA4F@991E6)?$*@tipnN!x|TGB&bz8!`FUj}z}h(e2!R z8!;shOcWuRr>Dc2>SddL9*5MFL*t@ycAU45_mt1N}U@#$h|pY)*?)#NE`Z~zUQ9Im!~fPfOXbL8)63y zxlju>TG8Y!rGBgN&46ogqx>+xzg^Mk^0kGyD@R-ciEN%Cw(i#K+HMUKp-hu0-BQ3;H7st-KI1))puX@em62N`Ke#2Ev;9hL+Ivc{ClK4Dg>D zU)A&SN};^J+Z3i0_m>13$JF0+wZ-@|j5W1Zdq3a?VI6NlR zjWmCHy-D3k(aJ5Dfh18F#KX$Cje{n3RxAi>XEwJ4bAFpN@U%!0Yd1RR*3EgH8&Xz> zUzaAK0^%dxf3KQ5Q#HtUtwO5#wh6wIMy`y`oDQwykAc@ogs((Af`;Pt$gV577|~T| zUSS>+)jEIvWwRImD6$}Koa)$OYu;Xz%sP;=$xoqpM8|_LFhm42Wm=Kry6nJ6iyIIK z>@AsVh2SQhq#Plkiky9A@I?*Kf0UuZC)-qa)!q(2VsUV^Ym zgArbk+KjtiR&L$Pc;8RyL>3l58C2`#suJg=rdoObi@1>M1OE^oJ^RY|1oU2m#*wvR zfvgj_Z!M1%cs0(avqjfq0*xU}+X^>0E{Yc{@Ii)19 zi;OeFp`B6jEBHrQyyPu%lJoKd4ya>@PAi4TVL*%bY@^nORak6{d5oS^=K2P8TVR7_ zQ<}cv+Ro8lLKu&uhE|C=Q$ktF3DD$*FMp01pzX!{XHB(Mh0eS_F@OA(JR*OjD1M(t zWVHL(+M!LYw1rpNH4;iXP|h;ovqsbfs@+8cu5hWXYfZKEBJqYRG4M$&&twhtVg!F^ z+keU=@iAWPw0TqG+q0WCx{fNqaDiy4=|tUjf$9m`D2@Nt%ipnk^ALcGe>{rs#QUZW zqQ@{s(F9;;9)}{DIxhMminzU4c{OkSNObps=4Kb{eczV748S;*qHPBYz6zvm?gl=` zDHgXZ^{!y7)tV-s5pmC6)gY5TfTlaHuPoF-yyRB%u4X|^o$b~kw|I71VoJ#XHRPhiZ&1+ zX+YJ+dO7mH4VBR4&Q;Qi<_t#GFZO0NXNdb4<7MOZ)tJ0Vn&Pl2O@>h-@9xdLO5mom_Z1xz#Wc5J;t$MIJ&yCIUe9!B z7n4~Q(@0npH{{3m@7095Q^>A@;uOLiQ9TSZ7(qnxob1z;s%L7)s^?V&822+s71?{{ zZMbrW_dG|`HrhO~{zYTna!m4@KA5A;w5UHVG*zKW;iBP{qk539X4~S)crgv?i;vrV zSoIoE-)Ng$Gx~RlEJ}s&h#jo6-Q@Iao2tS8&!wm?1Me5?N_ZIsl@l2^83`)WEox_u zA;C%pwKX)Lo}v}z_6#xD=k0i9SUKFIsFqHPS~iiI+nDRO;Okpt<$OP6pC$m{kD~F+ zn@j@nZe{at607fPpUH{b?f3&9la1u@!>s^eVN*+G%MHpmCKBP*55zg}j)H;eix=%y z7yFm8TSPv_@=oH@kAxEbU}WYk$3ndsgf%a3bHc5lyZz2k!HQ$C;#YOBaoK2a@lo8`ta56ns)-2xCP|VJD?m^D49Pbsto%|L6?(xb z$f0YIHKNip<)q{VN}l*=;)TL@!6_*OttdVFo;`|YBKmkN!{LIzu^q50*k98oRXN#7BBOa;o;dNK!?Xr3)wc<6a!|UU8dG1&d166gW0qMw^fbt;R$5I)Y&13+~`$dJb8^q2x6To0prT6ia-|Mjk4~ zklnT5Ap%xM$KZ*#awxq|4c_#`s@YyUwhJCbD_03w!5FF4TqG8iLk*>~NaU`u)6}5T z48H5>7y3~9qq7Ai4?h&`eHL|SVS&_ z;Ful#ELb3v`qi6)o(>a|Pf;Z9 zozEEVW9=cCe|F>Pb-`AJ|h=V_abjJ;IL(pX1;rnsR<0A;G>hF>p zUiYQUXXUO-%|zefVA~-5g}Uo84b)UGjb^;1@cI)olzO<#kPL7irOgG`ZLFriu{NKo z)(v#J%IY#iMx1YSj&S%>Z;~1O{5N~u5v}lC=y4vYP15ybUyAw?g9?U*S{i6)UYt;S zDu4sxKB}|HV3;mrxYp#!i}RLPcT62p@itqNhCQayI~Gcf*ynP|k|J5$n;rJ$-5%9u z>7JJLpzGRnP1Y+vnp{HzQk4XNLPo+Q>R>9`sK!P5u56}7w@%F%{Am%roT==@Ti zh$h8fsj(D1@sR==%EDzy1 zuzXehi7d6oXAhrGid{Vs-si!T^*Hp_n|Pb*ywt%!==Qmn5QZp-ZZ$6fO`KnW{|(KG z@GK{aiPK*`%4X=w65kK*!!a@0#d*_w9J_DbKjx?q&-Rq7ruCQuKjQu-xbDtyPB$v# zdxEXun;i9C_^~ z)ItziUgUK_hkD>;PWRD~5n^FU{~crzoS{a7y<=_iCEjESqwoc4YmQa*qt08=~uj00AiGzx=MXU8+y z^A&DmESb@n{YRwr*c+yQm{eM_)_EdlXkTHjYgu~KqC%<;<@Kv_T6zeU^SkHy?`;_+ zl+-gXVa&KM<{I(QFid`Kji0kyk|B8@f|NpMW z{Y+&Zq@FfJshT}Y6jZwisUeIW5T-a(AKAyCE8 z_5kEpIvB+?Ogy6-Ke4Wp8%dx{cwRpRIk}*VSUbNgSS*BkU;s#ykQ8Jc?0GZ?k+~o6 zA_Rzp$Co+`hcqM^3dQuq#XprIsDtpW(BAX>rOrQ0ZXP%fQNnNU+CaPaCIxt%2=i9I z`fj%o2o9epOb{PJk+%pE3IQSy$UF>w72O}kea`|m1XR%$607Vlh?9ZAir`p=FG?Gb zFFa)L$iPdkldt%XJed6#DVB*bsI$MnP8U(lGZ1eWD^^}%)mY%8m;%?(=_Gc919Mo3quw?+!= z`{o^u*sc!V;##lM7r!Qvc5z_o#C8H<-@@{x1AYUONsm-LYy-9~V_zQ+E$9c)3{e6k z$gh9|q(B6y4j1V1??La!2Y84c(=DNV_YPA9q#z*{8bqCFGw^fZs{e2Oe?Vv)??16p z575Wk=f>R*h5#X9FNRSdm`30gan0+GiDaKahoJT1+W>J65G#?4j~CGH&5Uo(3i}mr`Q#ARfn~L zb>F-1(PJlrYDRFVd8U$fe1N_O0{)^i7!I}sxTMy!$*tx`N$g*1M1A%nI*)KY3L*}Pa6;n zi^KB6Y~E-1*@psgv+kQ7^(7Vo(qn>a1}Lg``wFQT-S$ZJ{}VKQ?4(jyZ2$E60qLFW zY<)ut9fkPsNle(wa|70$bVPl&M}JcYjLqc*w& zhZah_hc5m;_}utDxCi+MxpBNYvMS<+D~`O+#zgXP;~-v7F-uo{Jw}#(ZW<3^w2k@{ zOHVY51!i5kN3V=KdV7sy#B8nK+h77F^kcj^aIkQ?z-HR8lUlE^s}9Vsr>}oezGW@2 zOd+)vpr;j$FGQyHeatzX8A*BEnpjr%$9nYBm;1q2ir7QyWTM%emZiFIiFguXb&W6 zGi2lH^al@J!4pmSsoz8YklGvFqmy0>;No+%B#m@50{jOu1E|~6UGZ`$=Vgk(gF*(;j}FTX9r=zj74;u$0)+iS=C0$+jSP?V2PDzIPv{ z>NT;=i(FUg?vzC@K4`FPI%a3?4cY8vN2Fk>)9JvD#22vOWzs)*8;Ijw$W3|iMRWQG z@?8!)Ke3k}LuazVcEWe@7`gJR#Y0B*U1jd(5y+L8GJl6Hxa>gk09RndoSpdjNNjb> zYgyNN?YvgFTTK_i-gFuG@`g`N^x1k+!#`#W@=0M%tdrsLZfpU+3|^}rMzbE|bJU=9 zGqJ;k6$5DYDT>@jFuF0X^=|sErSkjEf-~C`Pot&9A9QPjlbv`7tbc)oWBl8JiBwi# zbN2{F#Ncy@w$zIuQsZK967(jXLkFo(DlM;=@A;j98)I$%sdp89N8n_T?`)BO|Ayk% z)8_!wpO$@R7gIEe)Y8YgEzG45T2=^0(c(tenDlqix$n-b6);@fqz=DHrv!5IIry8> z$nd)N#Lg-_Rf&U#A)*bl;bS3a?Y@4J0hE1iV*8pWTGxmX4xCyp40AHBt`WjrzUXT5 z2MQ+;KDy;ht-I4y2mrhWtnK|!xo&gx-?+MvF~5JomO@;_X0xSb3ZLEL>ytyoTKUqO zRr=8VVDMTNnW$BE2P2v9Lq4jMBiZiUzG?ej8$<3)Dbc+oTFu*UM!^%BnGX$Iml&5- z!%*L^c>OEXVs5|)&e}qt;3u1;m3N!d)A^_QLPV1s(%Yv*q2c!>(qn12NZ?h6!Sg?DDmGd_Cp%2TWwNzd#j)Zy~yLVuhKMSL$Qr^#u>RB@oC``y&PQ#O!}@@lcTwqq+e4)VEt*aqZDucX3QZ5l zYQN})tpGw&!2F!a92W*bL@{K8K^Llafk2cl(%`aFzmaN7hcpDH3n2-Sur?vt&JKkn zWOsK7As=^FEOVbqwP9nUX?UzJ$=AgIqv&an3Ns|V`$cFxZS8(9V1&uR>KLw&SxfP+ zfww_S9KjDOuzf`qMh3C8axyewcO);aG5a|WoFRv78^(e-8p|XH6O+kV^RpgT4*(vl z$%Vqri?Uha1v%$#dCM|?xi8=#yJC0~cjtt%vE(8~Lz0|N| zfvO2(6bNUw1Qh>Yt}I{s%t5rTUu+_Ng7ncBR3rap5xS`R6zG@NSTW$(tV2{%NSkb5 z8Ba0>!L8)a3JV-{PQSA=`DN*A%(nc=sjQ(S(_ej~%ZFD*Wu>;!Nq?}&*6rzRt|shB zR%c5DP^)tKF*+x?H2-RJIwl>AHZs_wX48Z{VI%2^2(zUkd}0UkaUE>&;o$C@g(v*|H+o0Z{PPx*45 zHFqv`9<1zN5oRqS7G#Unvkqut8cvS;pS z=bI6VFkcZ~a-=!;!IiV42};W96#0McUh`W-rc(Tu*UU%1&HLTY&`9R}?;b{{J~Bf= z@bvKrGarwst|M$lm~OxLTzzxw3EhVAQqS&-4TX`bDFzEwM8@ zr+E(EBy7f`H>ag`$}4M5UZ&r?(vY+QF#H++5=9+aI$Ucvcvxlw(4$jUVoF*hxrNQg zavtao+}2U#3dBtO$mp0Gkl(+58~);;z*=V%V>vA^f34SM;BV*NEz$2tx=s{e5Mn)+ zY}xWV!RR5;wzw^`^!fUfdj>IKzWyi75~mBObFCp|IJ`hd^ulgM2>jL2*gU7hLJ|}Yw|Fi`8<+OeJYP(;3pH%9Xe#BViPs0XCH1=W)@;`>E zB>EgoMBABsCTrnL3UH@2wc>@mf8yLMlE=5*aDY_GmRXjs*|C^iX&a;)W6;K!;9q;6 zf2i`V2!%_H)Fg~LVX6KT@*95z74m_QyNo-Gq}QiCjm(wwoaBVx^_?E~pCw#7;4kSw zE{rEheJ5OaS|1i^oO$E)ti7G5xes>!ZOpZb-+yk$!_QU3oeRg zEI=!xX6p`j=Y>z;FNZVoG-hwAc)XQq(gQF|+gX;N;C##cG{0q6Ff*tIqO_3dVDzL+ zEo!prfzIrzIspSFtbr=A`XeW?=Jccxh63dZ}~Q} z^w85nToZKREbVss1a|5sP;k?`YZ+3sdJ}bJeXj-4kY#72)Y78yN`N+szt=~ZdBH5e z83Hy}z@?u74jVUN!kox3lXYc1?^{GBN>aqW1rsG`&HCgv}{b0@iYWTNy;hZbIZVW!0z%09JZm}@%Xyj0o!N|5vN1eYu4 z@`hrZ^=83YN>(mYfPEx}3n1Q$(cGQz4uL{LHl&n{ew$18!REcn;6{#2v~l=;O!Qy+ z(W~*JM^e!*f&-3w@mj|@Ti{G3knC{e@sP7NOk@`;5q9TnWW&ou{(jMEg=K8f_!C01 zy=eS9`~w(VGTL%-_Cc@x4uHU`FH22 zK3LbtMn4QX3C%O(#yq3oY#6HkxNJCc?miyE^>1c#`z9#LEIoMc-f#tM(OaxuRg?`< zG5P7t9K+{}B+5Uck%dT-mTfZ9{>8s!tZ%LIIe8omJEj>$W9Jgo2b<~reSbZ zazC{y7ds8sfRP@5-K3}Y2%y3x*ka@E>?2m47CuqQ2#C>+p8b@{WUl6EX+JPfdRmlYr?ta2tBMkI{f87)O0kp;+1nNC zuhXd=EKU8aT-clAeGnZt%%+KqJxdS5AW?0PB*c-BMQR=25bkhF*wXIIQmNY5teTot z@L8jZqPM40pB__Y`bM67<^~|T7T)@@(J&QTLUkFObJh3zzayQw0?$cF<^%fuEO;T| z9CM!&6v~gL*2|}~R#amjJXC}LL@R6@Op&|Ryj>~GE;Z}1-&ZXoGgYDWhGU0P^WxU^ z?Np3pcl5FQSzFLjWH`)$MO`};dQ{De*=5X6f|WstvYMZ}&59MNTl$Fh+lbW2?t?|RSWdSK8dhDZDRHdblOJf$lfA1i zWeuj__8Cc^LvffpzRD8{oeZny-J47rOCH_(I>QH-z93UzZzMfrROi$duvWbGdfXcc zie5ftH{6~%15KSLj~-Mvq>3wqKNITNzrU_Up18>2*+U4_?~6L){}hmV?@65Zcsj1g z-pwYpLPn_Sr@E`~!zc7e4+vS0vzqLvEplr=L<&x#6{8(37d%v3|MknFFeUr60D{G% z0hW~DCqHMEL8RImNonel8K1H44C~DiM<17DAQDXrDQ`eR+M|;qHUbK(4_##u=gPM8 zNzxs)rIw8awgeaJk@uCj^Jv4r^v?D(()~#058C5bVi9sVfM>MjTyXcXYLyPl@g2Te zB#&@{L19p(KJi_4776! z)W4aZfOd9Vw0aR~m*A-lNNn5?MpyS7c8iaR9aj4O59xMy%C(l*EbOi$+oiJIot9G{ zPoRtbH8+kd%G6w`bo5#ZB5yx` zFR!3!9-Cf=8Sup5G9_%<3856>AgU%ctNeJEHX&+UHD-dRVEq@}?SkE7|AV*(M3g;?Rqg>!5YgjiuRjvab*x7j4&|MMG;O0K>od zG0#(=+E)KH@Iq_)7SCB^>ncrsMQ3QX$h)GPQDSo?yFOaDhAWxnVn8au=_bKr(;FrG z0Pkc}c)smVMD54xOR!=A*xp5YDpQ4txBgqKzZ5Neo$Z4GRYN*Pdq=0gk)Au-xC@A`Y9_ivd?mO^#Z6QTRb7brj+gOsHL&Y?s&Ox-G?#A*AI+lG zu2RZ%@9++{R(V0L@h7VDbRkbG^#`3X5K0YczkLUF0gEIL-|>|~i-fj>5~ zFDAP^Mmm`O>f#DufbacmohWpD%uyXhiq`Q${PY-DcWhpX&u<(jedA1S=+Wb)?D{mB zTOZ76Q#Kx1I0)+jm8K27K~PHN7k}`yZSOx4i;yjmJr30R*(s3I$(nXcXMshGD^pEG z3FQgrAu{obyvkaFn(KMAg~@kUZa0%0$z(M1GUZHVi94omhN_FbF>ETSJHIOL-RPM_|Ol|lML4(#^yOP_k zAZh&8<-ew@=*ykEh5wPW%q+f)^)1q;TcgKLtzh@y)tI5%(T}g zq|wO!@Uo=t(HvY6KyVJ6*N}QeZ}s(^r5jMll-fe_k27pcp;v6GO2~Vo+nm4X&6-=e zZV=eSKygNSsUib49-5&oB{KCO`1UArj;Cks$lhCV^ z9=hG*=_kBe3>DGI%(@L1$#FRQ{&7W3UB;6yfc5@Iige?1g(eKTL%!Au#0GFkcw$X| z%hXU8FTVdfo|upM{*4%XukS=ESP%8H+ zhiSF~ZU=@~ztwpI`QTuSyzLp$BkniIgS5$@;PbdR)PApqHDQ%3r(?suTS2e)EALbR zRal*aPvM(_m;YT&nDi+bYL=Hu1bbUe-KMT;UsMKx0VGiVAW71k!TMW=ZgtJG!cb_+WpPM>Q2PFqy_}!0T$ijFf{z z?>iXj@e`jkkka!+eJq0|rjC20n9^0OovG{THBDFvnS8@vD} z9TVlK7Nu>}y;XtdEow_s_w+Vxy|$x<_K|2lWY~O%2yV045GN`pHO@J<&FfvaAg=7> zsaep?@NR!@*~nV?$=V4agpJtJve$?0eA_W*PJ+6m$#s%=R6>9L27R~2L@77@J6w3s zDG7O3khL8D7>#JjO$Oh@~LNC*)$D%n&3XHT9Vz`V)t&M4Yi zBZp>m*I;@4IE;aV9h!z>F#kM<^+}+*qu9aySaGVtf6v#3EpjNS|Hxx5|8}w}t9gmO z8boT>$&{Ekg8~KPo2MU)pxE!y0W;1?6j5V9cm6@I1DcEZQ^q)tO|8P($u(kPNs;mt zlk81IH>J{@sQg4b&+@3HRjVAbk=r#1+V|0-aJiNt;U5x-Ihsd;p5&BS-jqn^VVM|>`NfcN zwNaOop~}v_6!*`sdzO2Gc+z+gK%<~Scf4L2g6fh5uoAfZ(mLTiao6jPh6_#~Sq0Z; zYTXF@vgB}x3}zkAQD)^}$Obc;mt7RzDe4CXdApo{*mK#k>7POGrXaqZazavaKt5AU zNf(V*>PlgM5L~Dja)O641GuiPY8Q$=%S(`SVM(1mXCU;Y&Xlz5Dr#=c6tOheRR3Ei z#vn$*6P7x@I^0$+3Y-oknR3WqLs$!UUh0R&+QxY=oK|dzphwofmTJN4fx4#m%ww=L z;D_+4`mQy&Eo%?k_{is~#3qg{d2R5vYWvEI)w9x*Nms5yt)mhkzGo<2E*dvXwv_j(FduWTQNgb#*V} zqf(}u4b;yQ|2?NI>ffmT`v{DlTaQ~BA!aejU&9~U<)r^Ar=zYYr^U^M8WXDB*-0C_ zep5K>aTx!F&65zW6kbVzuov!@>ky25HE5_?@g?i{_>^wPr_?)x`+d8$Nhk8!bKArx zTY!#6f@zz{YTVh6^$-yJ8b$Faucbc|1BRJay+BBIy1=$f5;s7Ha4ge!a|sciP2E%d z$IvdL47=*}H*Gk0LV z3-)npMyQ2>mFlk*BZ7N&5uDz&gfk;OGFG<|_g(RgE*bwPpPioaX4Xo-Fx{6>P{hBb#fBnvh9(X7z`>ixJFvcqZe|@Og7;9X4wQ+`14K(rJ@v$cM|c6|8low<2Lunb zfN&nnJr8pLH7BgmpC@tiL)lMm7$(9Ub$9RO<#jKRwdH|S)1vfm!6T2gfRG348r0z> zPz~G*0bwDOmFG`>*bfTwcx7Pc|LFyVQ$#U@4kN&YYpABshC@AwX9w>Jo`(Q=R$d0$ zl$C!AFn9t0(f93k0{`~x`=Ni~_)sUp`gCU=nt<6qf(!5-+-m{CNh3kaD=wM|dK7X3 zCUm&a7YHxJ0ZB%@``w32ltS5eGeZPKriljx#o%u3rhPMYL-*%%v2m#UB^2Qe2+{sc4jC*o`psM%^ zE7*SfeYY+Y4r(?wh*y<_hi$5A4UOko@+=Rg4qVMnPEM%aC1R zi6EyIX9yHVprb?h%lF594?xGuh-CoZCA-@?eb16WqHE1M?3Y4%Z1!`y?08s=jJ zdc1hKX)UGn(j?i7+4<@7ze#GUv!Mh{Cm`wVkmHq%O&kli zBHAJ7>%AqfK_KrZGXK%^`1iYCTfWB|1(>671pJ$KbgvDil-$pH81WX2;g__#PoNM` zcqPpc4q~%c5*gGjcp;b-{L}li4G;q&Zh%NJkOIpGs0~t$NAC(81T?4zp5NPdMgfps zslN;wiN}8L^bhCq#P%}!@``;!p4NNnm-f3t8Rimn@}kbK}iIk~7z&UJl>0Zmqe+Ee7YYnZmo( zq`@zMvv(wa_Sr{bjAdvWINd6x=5>HZy)__%-S@G(wQXUg<;zRJ2(Z$z(=H;9agRb~ zxIE`JJ=4lYmVTb(QV`l{-7%&%Dfk87k7~7&#a7yOs;`$OR$@`YQZDI|b4cc)wyTYY zg|9>Wx9}zgLFox2)J_1eIs3F z$&`oFZA0;_?XR)oZK$Rp3vaPd38lNEv_z%gv;$-DV4X{Ejp8da}_*I z0w|PRH1vVJVW#x<wBPQBFg=;upq z5%RK9NMpPd@YvmQ;88+CKAuwjuGlfm=2qyCjKAi@TcnBV7f{m))3-#6OgtqX+l2@r zDTJN-)Q?f7VGLe_onAX@r~-hJ$D^o|i!ElfoB#vpKsXxoTH>kTit{Ka2D*x78P8pg z!|M6N(~!S&a>d(hlEb8Lg%?YNS#HX*s|h*%MbOMqA0oFG#=^$0&hP3ip7I=cC*`v{ zWzkq^u{bhO@m}1!;5CDl{ zZ^?HAR0a{yRloFB9=-T=T*en>92>2!*LP-M7-oQ}Q<63pEZ=-z_MN{(YFQe;1#4E% z2iRSun0fY}d!{gz7c{h4`mQ*$3;LKgNEFXydmh0b(Z$vgVN2l^l1*3*L0#kpc{-5g zKw+oRGbR@XJt83Kdz>$BW>ndrJ$#=85D zr?4cnkSZ^spvSz0=%d|46aI1>ku6SnkHOQ)fTh$jq7sw}^>Ft?p(kFOXv@)hxE*96p}a-&L2zK!!F?PN&p;CMpH= zPuUcf%6O(k?3KyTOjlASTk8?Nyx4T0H%U_!ysyBe#4naSw@gtON2I2m51XgKlN$@$ z|LP21_T-L00|-w)95q7fR>!EOVWfd);|=1YG}pR^vEb-FDTUtXWdD z1gN!mWBdEz<KGAL@%@pp zPqy0YOP%%$6qj8+8jh`@fiZijyOFHs)7L{U?sFXl%ydPbDTlFpUb*;gO|XXGxu`7h zk$R-vqtPd!nGw*=@f+c=d!#!vfE!mAab`X_)y>X5NN&*lO}KLzXAN6sDw z5X2mDJhrS~!2A&8d4^c=$68}a<7?^@w5wh}xu3*0`N^LGewUcjx_+1&76G-c($KL1 z@H6mLkJ0utGLT}wW))1a)YhK_Ymy4D+*2|=XEO@E!sje|83jE_w4S>#sro|%F~yOM z8-*CyZCy=^6>rs*C5qYX7h?mldfS=N>8aL#ZyYb?9= zx4l&DIVrk?aKa=DE$-rCo62w^i=>}sJE$88OeJOksQK*_<*U^pg4Zq>o4H)J?Ixz5}zoa_ysnyXCn zm@L2p96BoHhcZM{WVZ}_zuO78n~47{byxvsGB zHQeV7FoZG4yjDQqSJq5p4SF=AD@m_3bNSy#{<(l!sMK111p-TPFy;+hVnG!jTFQps zYbUW;2PuaZzz$sK$2_)&PztNb>4*GXH8ywHS~poK&Oxk>%6*I3M;6(g4~FY5IC`sgvsT3ad^ZQBNK-0C=jj5 z?1(J2)R?-uA1hX`)SgZttjy61M=e*IRDHHYPQko8Xj=?C3Vk8hh4vlFPz>6wd&5UD zl11&gNAmz{Fo4lqE!E>zz~)BwKs~&o+r;_IVVv)4kb)>9;ea0m*aruFGFn5(( zA0cSi@XVBvr-pykdu-}?7#-Rd`T45;$m#K1nWKF5Fk-uuY_{sGVAWk9*8MbXSEEE! zpL4Zir}Y@I-ajw>{x@5=PJuM9CcxUTnj!w#ll`U05&53mKrG@;)PiCIB!~4{Vh5E! z)creaYvUCz70}|oj47JTPS7=|)5!FR_R*N9yth3U57ft*N7ED9{ryFBs;g~R74LZ- z|E3iqQ9Ao=0}UZ^=gv(b^R9=TCJQgQ@7P19;+toZEx`wTSrtoNO0bQRi2G?(S%%yl zqjup}nYd?zCGvNQ_)}!bG+qQU|NiT}VxI9Aja<+TRT0BA?%Z_fh=S)6*X>5_idl}k zEY(c&CGIJDeNF!8vUFpjaa9nt&f}tDZ;#To`i!$)>~qZv(`1Bk!!?9Nzt_$gL}B+k&R_im98q&VYg0!1vj?pj{!qE2 zT~jq-Rhi)EhOeW>vD9w!yG-~O&oLdrs-Ec)yZl>7U8`9%Sp&Uw z=EdH9x@f35-zNWJ$8$rD`L!w%vRToIL$vfY|1+tgqeK6o_t~W6?7059rD@M>yob$?e(cuQ=E@-6$PL{LBIq}P%fZ|&&PmyKU zXPQMbTVE1o{}pz@0{7i(URielqs4ZvBXl28+#OpaQ#h{7MDiDy zbQw)$8=qy5+IvY%uNy6)XUnJxv`K2^BAr_z`sN(fcbld0FUY}f;6NBb961<>@hi8* zO)Fpnc(*WjNN3K=jZ#hlJ3Vm}z!8F*^m(-ED4D9jfw?b;b7w1!Tk}~M6M{I^zV4MY z!{5w-up=C6JYb4SBrJ?5P?|DhKr@qRDxqEP$RH`mKH&s2@2J0)ydK#YhdD3dffpM_ z-It05>{Px)Nc^940=r8jp<5@%zV{gL*39|T&{T{~jS}VgsvEl&@n>$V)g)|wxsvsz z$g$?BwW+XYI`qc+!e#YRroTf~AaoR_Wgohns8dauAtt-Eoh(UDZ?#4t7Eydgg99!8 zJ$Y04=ZJ<4bGm8lvz8(#@K3FLLOl7Cv;*sR%Nodr3VUUX$K2YGPN};p@nr&}m{zeuZCTvehbBl^qW#9;olF?YvlNS+pC64+Gc zTEs&ySSMD7;?HKIWP}lj7e*bSCXdR{&9#I%rm8FIT#au`Z#^v%dYo0XW*7|&Y&Bn= zH*wWOCIMubr={HmwQPz)T`gyx=a-?FqFCu*Hh^Cnx0))1muNzW46h1INgbW<=S(Bo z%DWvcc;I&C)kG0%<1KS@^52#>%V&0wt{QMqFe{LdR5!OMO@3%E^b!-j*O|c!uaxDb zUZDEfHr)!lfY#~-oiQ(E30LURl9E2^bA>{F)9)2cKR;&U9WpTt!N;+x6g+R)*kBct zI^S0&XUm`}Jnt(G=nU$`UlnH`nI&(u(6HlP__n1S0$R;z+4hRoRllb{e{XcIvVs&a zA@cB#C{P|!!Uf25U9GK$whkfYhEt>#wXDeK$tK!(I#bo)=hXVKc3t`d%CM0nS)Ut! zUayBcFkVn7{tVwC+yle?dU2?+`y@w8P2o;;%AgtWf2fl)dO8>%dKb2T56B8pnz3+e z0kdJijN6EP%Dd{hC>~!&Ffl!{HW4%OQRG?V(=&mp6;m)ehWi_Sni)cH>M=*;WhiG& z%S{q$?g^k>4trTir19=2G~4GP*L9&;HFfZG zf2NnV!+Fn+E>2whi?ijac+8Ip+EeI!ZOiHqsj6tu`4k|8>eui47Twxm9*A$18Hvd_ zXgU&=QvI+Js^yqUdJqgb#F;tvN<)`d7cYO{IFa+!xRK)vs*RfZ92ebP-KNoP*Krh@ z3|h$K1f3bH%~<_B&sQ#F+^q5B%U|M0HGdu!ulZ<{i$Fcx3$`T*sxic~M+JjIz3fuB zs5rUKV;1*H1vafGk<`xNQb9L&y}N6g&?SV4ynnP`+Tpio#x6e4NOJp4kt}-hHLZTn z4?RmxvU)uyBAcs9d;ena&W}sXV&UzknE9lvciCUF@FT6G?72TZ+;_P@pq58?c9 z{3-|ejE0licJ2POS=7)`8;xk9mN`6L;Cf4l15GckgSc=XjCA?_#k3L6joX2XXkJ=P zUDJVi0xjvKGH?pjcKE>z@)FZbA)a0rFSCu($R$}(y(6i8<1xjmbT>nXQ7K zB2jmk^YxrPjMF0FQ(>65*ler}jg)jQTjcAAse=#9RWvhs)g(2syl1l{D8h-B;uRNl z^jycBZ5d~bCB0285PEzUCQkuL0Y3`Kxet6Dcie<( zsN|RTg}v<<2v6~s4CoOMOiJRZ^PPzi3;31~lg^Ecl$J?u2 z>{n5TVncJWiZ%pcBP-pSS~(KSLy%iLkWY{gTmF^-WiQKcBSwI3L_UXBGV6D#U#XO% z9b&GA<5&aq@wg~6lq_RJFm04+r&9eSCm3CEZQ55j2Z!(MmXlfB!O^C32z+zSaDV9T z*45npeh3`T6^!9H3-1rXOc+v*a-1X%=59dFB&TdmM4T`LcEyNcbK8%J29hAOrLoAw z;;Tl_1c2WSaHNo?w@0*81bVN(oe(@3+P5NQ4D`dyKKRE-rZK$FiDo8R|ApQ z4h9k1P!gbYu4DANFCwC^FS39l!6KWTxLTk57&S9yS1eu1^hT?VL}eXIcKQcm4iC>KR#u9s^hsJN(Ov5h&Di`sFWKtcr) zOZj5WW8B|To*82hFazf204Ia(b;!KH?9b8;JKLQaF8)#7SPbh#YPh{@&R&0Ue|znF z(1OwVA^&cytQ?Z~=|De6scjTM?x}wY3c$SfK*hDzg$KhvED8L z&;=w4XH<8+yWsAGwM&;IL=3GuB9h~dr?d1PZ=)B>B*8A#-7q3};oL_1S2*RH-MT>j zyZWT-6Y?LeK9V#>U0)NL@#fCro<2{GrBe7{!w;z?DY_mGe)ZAfCOVA!;G%d|^D1AN zB7;8-r;vY1>p*n-M8yvB(l?5_3chx}R7~LT3W9R)`0OpczT9r7QuUY!nXvh3$S^9Q zY$@G0siKhK_#JB2rz9%gf~=7h&`z^t(dxHi{J_h9-xVY_Qr^3R_g++zN{NEoXRKq} ziA>~t>vdrr5fpQuM4oQ=Q8OdD3LE}iR}A$YDkfcA(aX~9+}GF5!IPEc5~5OP+x~EK|lg2%Myc&0W0c?2sOo1-B#)ND<9CdPhtHuM4O!IZd`NL@WFU~mo zZWc{RXgJxb#4fA0^fm(3HPoO@)P{_%Jg8>ls&)J z`jf!XLejY{xativg35A8c0l4>f;QpgXto2Mmaa-KD! z;s?`~4#c$u!M1l}ebU4<(JpRqciNy+f)}!@7kKybf8nd(nO<}8#0cW?DT!MAbTcK! zSe6@K#XaQWLky^IF2+-C>kLs8!$$s^v7PQLW!FE86!b1EGAEG)S!=xpbumS^>Hdk4 z&t_^#AYxiyPw;w+-nw>*GZETRhi|}-+R>hm?5?VNcRYWa&r-d1} zkM!7xab$2`RLquIZ+{a+iVPn%2@KGSM4#1I()nxT`5R-aK4?8uWA*#oUs{6{=P8*O zD}A|1FiPcxOS<&@796!dOl3VRK(GLC3}fDy(e zBxeZX+!R32lNNOgd+T}C1I7$ro6@HG1DEBtIP@BLw|iC}CWAVen^16 z%+F+tp3~tq<#ruI4ot*a97PjWrf{>`HST*R)1td{i$$UX{Tjrh>W(-cYsLOmBy*X- zsoGpXkn7W@yB(m<&ZY5)E!B<+%Azdasb8e|^tg<$V=zc^*~L9iu|w`_6x$X-sH$fw zWtUZAV4k&xc9*?$_b0O;$J^myc`!|C8l7mBp#$EYvLxcEnBaj4P~U{)aSnxM<`=Pw zPPS+Y7S%N!(bAsE>6OLeZV-CapnyW1VIU)tqLTlr%@?XhCAyLz*FJFz4%f}N!ewn9*5z_Oo z9w;NiOrvh`TZsh$wZh4g=)ZQlpQjMcs=KUb!3(Nv*6*TH$6U9P`bIBcDhvt~6(=z_ z$1uDlsb?9C?{i!U6uKN{Z{M!5SEaDIPHv52_8_vM^3^SF3-W9;k~~?}lic8x{bEfN zit_f&DAUUxJ}bE#os}-=>Ry8iS19nDE@uU$q}Hd`YUlauVAaP>3mj3ej=_Uj6zj$# z^_cl7U5)34-QbAVR_%uzaM~q9ZVpF#O8Y(&w)(>NjDec{Y6Ro%F@9f-lT3{nM^JyF zLd=iyb!+rd1k-W|=!eX;Zf8kTtOg<+{ebqf4MhJJM&|f0jLgFIzcDf+^M9Hk*txiv z|L+(XQbqY{fxbYZelCgFR``r9U-G8g9hfQHTFs^{Gj8Imf;*t8_ zhebsMI>rblxlVs(y8mU98dhd<(#=n@Jx@K^aT;@oa=Yj@AZh}|4BrSp4WI=SwY7EO zfPz9^`waw9*x54=${+_Y=1w44=O{TtgJqGg4z5D$-1`n<-d1V)pbtR^4-VWt z{YydbXB;@d;37eq@--maSgu8|(4esj452tzJ_yJ-i*f5TFrk5g<>lr5%2+}PuFMz) zhhaU4>kxhetOvg`%0n{8dN zKZ;Q5?rj|l`cN~X_XN3oxUk{Bhp%BGpn)CKfv&-wkzQ4I#x}vfd7$2oM`ZU-F9O|w zFCB#YzL4A;wg@5^AkKjy>+G%_0J}eUuce|O0YEKKSQvEyn!TNs)S-o#+N@Q>=?sRtOCx(hLuNz38U(oQkyaE`U z03i~i1Ln)Y%Pg~(!q6^z-_N+J_@`#*Q#^Vuvoj z-|f%%UI~`125phAXMXThM}-`v;>6bv*QOwmPat7`?noG^p%~h#@j+mnUkB3xeuw&6 z!o&&=e5??67l(n9AVEJgp{Q6>&@aIKd*S~G^6=hL=vViMK09t{ssD5SpTK-ue`t9H z5wzbO?SkEs4wa*t#J?H9N)@!*R_(1oK|U#2F;YSH%$`9n=j=#(S7@o>pxOks>!2tX zFbrRKB<^ED4X*9%+7SF6K-}MZFL#;42D|qd6VfGFWtf-lJS`p^t9i32cF(=30<-@Z zD+~6#46BK((H|>b6q62SU20ClB&W-TMA}CK4KY-ZG@ZJUUkB)OAt8m`txL8j{8;W9M_0x zG|EY9+j_QOpm(>8r<#IZ(q!Tns>a{2;(AWb+!5s((G@JXGHbFHYspC@@LG>y>^?nB z#k(^%je=QvfYtgL!;dD=NI%cfK%=gtO`-36#;c#yCrj>I7fO{&n3n1G*$4BKFS)NoT5Ow7`#WsNr;DQc)G;2V*CX^|~=nqbkvn zq;98vrza+z7F-YNKuTWiPhOGSbNcmrKC$Q1ikFHYyR%~vyS+Vq&fZ*;;ZbC;2hgB=L~hq_4G00qR$0O)M(D3eygX`M_3^ z+GMk-!&9?nit)RMAx2sl2ar<`133-qFab-w(?=fpYfg`ChT9>DaDbGlOUZ!KN+DxB zu71!Ow9N2xCf4nkWzWy+Z~c!?g)>({v3Kc!l@-WYv~kqnYd;RbhDY!jJ5t=7H6#@o zg^Ru?tRvP;C|QGch*BHKTYo5K5t!yjr&e~XtB1pJp zebDM3X+ePd5Jb7KN2U4fo;}Q}>KjmvWcWb{qlK=IXMtcppqtoKmr86q^z5`>^}@QK zE4GO2)M&12kQ?%RV?73X1;8sa=TT|HcZ2|L%J&{F-B(GAtXv*)9a%bN;!uL2D`7$5 z_(Sw|5t3b`Jqe~XSEO$4g`)Xn&hFIyIzz}CV|*_E;p`^-#H31ln+%FKDdZ@Pg8 zA8~0flv8B_3s*|U!Gv6HZJn8G-@r$U@R`GNe{d%PzBwFCtIM2{!H`3qGuw|H>wltw zq&d4n&A~9w=F_|hdquuXLa_t%^w(H-6MNg#zyN=RUn6JeIhfHxVC?s3|4+gT8Bx6X z^6BJ2U`DpCV(de=RnvUwTf@*uK1}hi8XMQ>MR6H0g9bGxi=}K4$;L9q7fZtDQtPKzd#> zZF;PPT&|CEdJXe9vl4D5_Qi193S%`R&LlRFfL*uPqdw{miV`V8w0UE z0np5TyY)nJ8COLlVPtxNNKSKXLf1fYK9j~L3K2qJPM7g$rix#$6;Kr(01HCwx^>&F zk8_nK_B^yMB;sHDC8Ihd6(l~ZcrKH?117TTShzDb82F$VoKD&62qaRHm zObRQT^SIOLJ7H`2F7kXCdWnn-n^W>OITq)@E6(N16od3CgzC25^jCE5UAmmBB6E?V zwpA&6Wy}ZBo5|Z8#r|2Nj-Q23i^c3%)$A!(w zZ4ExWJDZhm?scPf{}^se{Bre)YgS>7GGht0cnU%v^O>&R`=?D zW|d=zg{wfs$(DXEm1s!R&LVe0vDSY|cV<5N)8%r{tW{_MW@LKVX4Hs)h>Q+rwpSh> z=iBaISRx+&WfXFgd5^Qm7w|ECDvE!l$sg^M(MebDmN#AU05ovp%!`!_HVzDMXfN^8 ziw2jy(8=f0WXF5>UGUSvxT&}o7K>@}7)5P@XAziXa(M>ap_;UX6`n3V>bEAPlAwz6gffHUXJ~5_Qrt!p= zBt9y$GsobTc|87P@4n~%TzG1T3i!ptK@NE{@8+-5HW!NAt9xw&;|p5PUE9tt%5SGF zX)pE=M?(5WTBLM7>dtb{OKr-$ZA9hCzd|#M%IS4#ygBYdS2iK9g|>uVTLlKW#Q*pQ zUAuy12HSdamw`Rbn|!o3?o{2cm{hHak(5%Su6B%4rM2sVLYL9@@EU%ynG`kK{hsFX z{17w{BJQj4ueD?2gVV8X@E43{6Rom7T4GgDWBJv?={CCX&bBnOtHMR3U&U~5_mml! z^F!(A3Fkd3e=!nk2H(AwG%t$WAKg1lsmT=Prmfw z9*?KKi>KwT>@>8%V4IN}k)5}FISP0>%tJXnt3vmXD&v-tLUKKg0NAM@RJgFUlSMO{ z;zhh#uZXlA7Uc=4n5vHh`AofrQu+HbF}LitBHtN#*Jic- zwsI%%*wflu&CYCpVrN+NN(^?NHGRpmdfGduiO1niN-jv+Bg0gyc}OhV^TbxdEz{!3 zd1W$8i9L0x3aIc=v1jX81esbpPqSn#*q@KKfzC1V7Mw{3DJGZu7L?tZ6}L!_w^iSn zt`|7vM{y35zMe(6Yem)+P|{C%9Sz8~BK4#XtwdXm;ID8y_!@uDwM8V3mX5Hm?7}+d>4|D zJ2_qrXCcOHV22IPJ%uN!8ZHmTTJMe`X7ZJIyX$cwx*jw2;bNfBk;o}W((O1= z)=WlgWcNAi?yt3)A>zsepQVdyPaJYLHIQ$cP1>6v`-2#9^)Cpmuk_SLC1ojygw5pB zxUFFmbu4Q>!&u02LMC4;2-x$q+w%t+9Er&dZfooF;i zJwnx~8F*iK9?e1}EF70%9uRiMlkn{xJgdJ78V6O7XI;-T?O3tuw*QdVzelGhkX=6L zMR<4GCL3+R11yVq_|{GJiPKKUZkSSGeA1`cnx8=7v05S}5yAU_$#gC3;T2m`5$z*mxwZP}5_ZdM%)*>OT?E zNRpfcVzhFabz0h@j(hU&)WXv6)I!C_ZH-=>r!MN8aiMnc zOw+$64UbBE<{z?De}~S}tE7}dG|q-vz^F81r<&m)Po#GN@-JUYj0srE_MEP%kPGNcR`R?C$a7d`H_emCOelWn`5E|ZIbu~~CmZ}~U!HFK zlPDp2ocDW3ZgsrN+DFZmXZN4McJB`E6WYk#h`+y-*`~U+OcQ0fvKV>{yb;@7N7c8u zpEtMCxBZIJ?#kHIx?=yHf>SL6nx z2AnT<#)KLJCG6K3=Lko8@D0O$+&$+57_-DWW!1X=P|f2y-|ZmhAhRJgf3;!LI`KMj zdC-lD-5QeiMUHxbX}CCXs|w7P#=L3`O^WYfBJs~J$a6i%v1~rnU$EyajA+5)soo?F zY#Gm$xy7ro28f`YV)Qo1n#f`oUtV|XUBu)RGw(S%KxNKfqW!wTcK?sDb86Cs2h?oa z=5E`zZM%E7Z5wafyKURHZQHhOW4?1SRdaDJ<|@e#NF|k(XFXan*14AJQ${c;+o_Cm z5KLNYOD3VrmhRmT%pQb(@$0O?>_7ZofII2PzT?kld{bG zhsOR(UXSH22FgCmpaTV&#iW~WRnHj|{Cp24%CI!;PJtYGT6fP)eOk)nnS9I@5~9{X zfsBQjwwUJ;Hkw*_{Zsg^4#@r30)=$JOQ912bx%n5+2>hbY~I;g>#)Ky9 zF+*4*IJT<*+o048Ran^n9PgtmqymxzK62|-=sZIn_RZ`LSDD%g}_aUC`^}%iWc_zF8zsy!&QZJV#A%>hH)JP!7nJ>HwJaQ3qXCiy&eUkTJXMOE_ ztFM-?%~DJWdE>LO^ER6sCjopRrEwL)PX$HVUa z?Y%ZgBQ%iW=5F`AgS=lQCe7FG>l#-i_b+=kq2WdOC+(G`lH{A>l5!?l0Q9mR5r(x|PQm6gW zzrd`QINOF?Fzb)2rBl3fwp5@yqB3qJyV(Vy32!`d z`m0@-!&=IPiEoDIB$jsQ*BW?vnfh6_T0wn-4z<+_(Z-?WDoRaAQ5dH3nE-o<1KB^* zD$cgzjPxqO!8LD3WBPT`oWi}zeW7*4Ri=lf%NYF1(Q6`|*s=@C;NF#+9o$YX+(lUc z{EtH*{`|6ZnD?GMJ~2{bim<<(Q)+!q4a>l312gHLePcKg&yVa!y-3zo&vI|T-}{Bv zj6!R()dM)FJqB;?5yW0-HUeYpKRO^`3Y~vz{rE89a99-+i%%e7bOxj!1+RIzP4Je^ zOCKGuy1R)vG7vv6_-uAqwJDr5?sD?psI6rxcv9g*a;IHbqdwVta-(RNKHYLdKdNsu z!sbwpDF~43J#jFOnzqnj^pxHr5(i_26d*XiC4?5XuiZmY>~TqZui2X^FVmm&mi%@J z8}5q-KDI)(1&c@~6pa^P#=Lu(cg|k;mYZCseInR9?&b%guZk47LUh{EwyEMuyI@S+ zdlM=``4_Vly(B8&s(Re5Ja_GtIP!2-R9ei%acJDH{3j%n_jc&CD`Qg@Q>SI&J@ZRt z3(+jv?3GZRKTJ^5a%c3%Y0BZNm8uH4wh=d1-R4#mW^kSt@TL8#j+kuQkvEeBTs^e- zw6xlbl={CXEZUJ+M;in#?gHp-tS}vCwSpUN9WU^(%TDr?JcqM=R;U!g^oD4B1E*^R z72Q8tt<6&N!Deznccl+0;MT9VwIN)Ul}79hI`P(h;tVe$OPre4s`6@L88C5_L2kg7 zopNuyeS&6*9{Z|A`jX;_60bs_PhU*oIu4xDtSrKWp!L@5aOT0X3VV#-S$oqsI0n_8 zkaZ5QlcAjMuTH~vRypuMIo4Hf#j~NdYGz7&ay;KcM7h=@H)$gS?<`8QT)mnLt$Uhm zsqCuiSp9h1f2{?@-VjK|jtauaH-%5!&e!rq=q%uw3z(72<39y^CjQ-J=T{xdG#@uv zLgNo!N=Kul@LG|H>k==uavNRQQD~(N$^3m<*TC}!xK-rRf>K=+&er>q+F#B~+hh7=9JXj3MGgN1_7&=w|d4~FK!oPl$B@Uar zp`Iv3J^puI(j>mVFPtU3d^S;jXW?M4d;eZONpfl^VX>C|YByKo-z@8!A9t+GPH z_uxm9Cg})(4jCisQKBw|h`KZpOcP_AJFI8mheR=kC7&5=r{9B@{A)v;9Ozl`AV!&Q z+&t{BWPu*u^xyg3jnKcOD0PRHd_}q5_&w%rN2ICx4O4AaCn+<$+D!BtW)_B4*@^F{ zA->0eNl8*G{YwZ7wkhjM8HLogB%jaW&-#*Bt)OCRIRBm&+S9hk(a`Z6&yb@d0F^}% zjhz<=Oi;9_U89)b6%TePx9>A9{n_VPo<;@P?!;(EBf_$HQTW?fQ{ivuK4X^}egTcY z!L3@Q^TtZGrSk8-<2YcJOsdn@7_7K3MK^|NeOi%RI5YYx>gY=q?&v`zP(^hZHGfQ zU;KD`q*v|p)erb4B%0XgFVMSF_~HM?@won1j>rE0ay%wxmjBJ@&cVp`{~rf+cU4WY zUgf9C2T@+&b&;H!BP806cHxxm>th5Jk#VPll9q&~BqYrL@8=>R5nX;!a1yIz*%HSH z*D2raZR^TwwdQ3y;MV85&66`qHYC~bk3<^;#5EZl2Jkp=#mC16wE+?k$iGN` zL8BvHUNcDsv@d&5u2?SI%YQ?8$3LJ25g{U74%}?vm4Xq3r>Vc zgb*O(Kj1?K$3Sf1h$s+ekwDykSho_hB+w6UV#T<*0Q)H4u3&HZAV7cB)wRx2dGf9x zMv3#0So09?okBbJnT3fc`_Mqe2D-m~(F65&)+Z-*oDg^Wwjuu?< z5JBh{!30d`hw4bcyLlc8j_|QlZ%gc3t#OtB`|ej01$b|_9*&XoWdQicZ_Exh0Zhn| z;O;m5p;za}Pxcq<*pK4VFSTetTKF5}?pNqb04N*><@gseu&}lj(+>TKsVzkCmtzU! z2N0mfNV(>>+0;$g7NRK5voA>pmx2T=^|eC6#}?=7kcPYfd-0XY-usNCu=V2cjXkD- z6|))Z2dOF{!c>0pj&jOhr%?Ec$++9jI*~2nY;9 z=EvFSKVXdpA>k?HTj6JI0;II%`aAzcgSCVcIjr_*z11fDli*j)hCs-@d zp(@7i2dJ64qUmBKBzJ6gX7J5jGE&N(Hy`HIQTzGSxTkO*N!E|0-+kwo=%!cq*1NTm zLUd}*g`a98kq}T?l#O!uqDA8rt-dqfR+-hd(QIvA{z&1(J`wHRHdwgs^fMOStB4!D zS@`>cDd)Kp8d2zUYKzj-0Us{|1`6#i`Nza$hyhu&h0?rLwX91KAIqnB`nuiS*x(Vk zawPQ@3$NQK0X93aSom%19qy#LdGe;?bKN=uQDd_x&BY!bn1nad_5yBH>TCaVI^OUr zCdWs-{J5hs{cu$G=Lv9#W#s}#L+id=TM;0v!!7wuv_tJmVRDk_w$@DO2%B8vz5U(M z4RqeN7^iGoX@A&18PM&MIcsu6yye3%w4CFYay%LgXE3mR`R53+PLo3Qc9aMrrm)t) zMOR*zuzS)``b^3iTk)~CzIfH_<{*gS@HldY zOp^75ul@8&j*_C$=R2^pw8%gVFVC&L1$Be<0fwi=pA z>W^5->mHj3lw3cS_#Mu{Yb9q>wvW>t<543vsdTDt`WQ9Tx5{(y3dr~@$qbuJGj5^i zKMP#PUMG@W+?*4f=#M7s@@~M!XVN`WpxP{>jvMv7c(oC+CbnH_|8`jq%ghHyprx@h z5?fcQ7@7rjOFveJ$Vb=VJ_n8^5+_gSnS6lzzoZ`M6X z{s|+=MVGiDB~+6&Z~}T909LP>oTW$SXFq8K2BKLUjY{gEJuhYc0?_Q{yq6sv0)6Pq z@$bjj*=Jh1#H-Kv3Wg2Yao5HHs9_Cuso7QNp7Jr1@9@ZR5yKEzV6-kn#o^ZcH6iX# z;*Rkv2V`M0iI_AdqHYlP``@BW78&h|>>?0Xr-lHfft5$_o!OyEEhsN|z&4u;UP1}eR!|$mt z7+@I)Si^>Gge`<3H}k-@Nsm*+;O9uCa-cBvzJhnD?Tae7ktE{%nAYGD3={)YR$wO*7Vx3VSwt+;9E-VlV1DZJ82pG(2c5e@5Ty;Cn^`dlba8| z?Q77`YQ#|>1j&2<(sd@BP&4E|*LPR#=iL{6QvN>gkwrGUZlYTjrI8m~WrA4+=i9?> zs#-OP zuY3Fxlq)a|P0L+lO!;v;h=tu!jAygLB-Oj(I&{n(DzWm98Vn06i1DJHS~#N{1=(a=4oz+fE_F8PudS(?pu%aIig!nXIa zuon-yo@9n47g^ZQCbAs={oTLpBh?KnaznLlwA>2l&i~%rRK;n)`Qv}-o!D`hxjALd z0maEHV*CvZ|7*h)SU}bvX4&umeHhKY2a^9szsLqBS?so3;`56rD77)iS~nWfu~j(` zYmHXHCWa*CFu4T#+cp%-heG#ATH$Z|NIMUN$k_O-KD?9fcbUQPovA65F*TpprvsKq z3w#Wv1f9ziZ$L!aj+lZqES8TKy{ARngxg%Zge)mF+cMsb3W25`k zn124~0!;MWI|V!n4>6WbE*9sRFCK);l3+=sqpcsPTH<<-{1t}M3M|7u=A6MUFDjK% zL4bNwh5hq3kzYSrKA-@snnOHUI-j?E)jEfR8%25TH8eo`g@r-!=E;&#mZ(Oft2MtR z;vfRB!y4!FARlNeWsPY|iLK_=HnP5ho)L?w#_pE-8uQ%-BaJyAs-+kie*SZCYL2$# zqoBWEOAsFvB|cr zMNl(qhzp4$w4b`nx|!Lh!Uh|=HG}^#|88{+Jo4=POeuU+)U%xe5IwlK-Nr^(h*z6? zZtWf^`HzqesmoYaQbmC&tRzoD_;^G^|;l;-gCGSPhw^0wVRzS%ng2n`uU zBbSr@%1-jNn;s<|5WaNH35q}ofj!4x6Q9f`hZ|Bx-J6o%0-hqi^RE~+_Tj&4^Vq{L z$B#5p#NxI1fX^iWT;U4fjUv6F)%vZZ;NfeFMn}`iwo})LH+R$hJo3dCn{A?fTPUig zU;&;tI;k)wqKglspJ=h9SLm#F4KQE-Q4K~nPWC4?dUB9pgs-FF)G87$pRCaGCzam; zqp=hCGX&FYkqngMB&OOyqzNZ@p%R)tyRv^uBk(=Kr zfK)|BO8q5bO^#3TzJu?-fTPCP``l86-7=LP|NYAwStBvM$}ZwA0L^=HrDU9*dP^`>L`2fpa*3T>$G^u^X-74^7NggQCPe7^EvJa2 zw9L-F(Cq54_~ZD{@Xw{yLmY76Wo*{*D?+lK4CEDD*_iuzN(Xdqp zd{;rR++fVvWnG*9!3_t6&nZqOp2^@Mt!hj9nvVF=Hl{ZQ4SyvT!}Q<(%G-fS;|Ea zBTb!)xK3Q*RkQpY>Wh9ojUbLz(q{o5(5y^an?f}tD6qE^e={MjYyOf3TO6|V_T)V> zd2Vi?P1Ta%%|7uR;)&U)4f-TK#D$K!5w}q`)48Y+d(XZNb49gF=P2}P*@XD^v`A!>b6Oaja5$R9)UO418TCV7+obeLD zHV6EsJxee&iL%*V%eO3Hg;v4M{uTO_!T8{z9+tPY?{-3QF8mO6v_HSUK>uS*TfJhsO9xG7AM zH|ZwhPV`HcqX#{Kvv}pBJZu6ZrBkE)oBbmhukA^yv5X*>K^3XFn$-fl4Gy!pi|DR8 zF(YEEMlb^2vr)yqtBA2Yf|2gd2_9~}lPvQio7F%PRa3+RUd=vq*MRfdxnBgr=1e(I zmnR_(o7E3xeg2AT1Fx~l`oH36TpwOsIXsi1fyx{$xEgcaJSa*Znu&_c`Ob=uy2Yts zArr|m3iADfBrEnuRyek9@o>y|PA3_Ljb|1=j{Wc4#1KYII? zbtF3B3a_&WhM>K<%Kr+Rkp6{0T@Fw^(bJD@dkgiMX*5(gf^JnoyE}qY$*|;e!#N4l zW%fkuh{vl~4&s7^bMs}ui><5vx$TwBYfiD;fh#9Cj%@+nWot=ov5^-wPy=`&w(<_bt+#?7f;_*%z#h_F3Bb&2a%N5+IRM?b?O zJ2^qVL`J51uy~y|GqI#+$s#(30}>M**J?H<8kSP2L>*1f5wUC&16*KTc?7fkMfLO{ z+1{4y4ciS4BSjfbN6D9fK|g*I27n{PD(!nYT@BFpYEk&B-{pC9-~4*b>Wf^wu3d;Q64 z*-7vzrSndE;k)D+r(iL}(^!J|?9``bX53!TD#l&&O_eQZ9w6RliI^YS8)YL8-{D>1X}>n^=Oxcz=U8ns*uJ7= zhz~rMP7(Qr51TZ(MM7^pj5wrOhNX2u1%#o3QcZiRLL0UKz&WT3+h8~{Lhq)EYTZjI zEdN;d+%2u1t)}ZrCRZ02pkxkFO8LX3Qx>EKFr-FUf9rElLNPxa1FbIhke*$mE##9< zAb90L_m5WQ8U-;DK^CzYsTISaTT02Xm*||i165_#1=@w)xZl5N+o~C|oTirek;>So%WQTbRkiGyN_5v+@pL#1@mCdc@ z)poW(RIc{vWe-K3d-tcXE(e^lmK;rdej2^$Ze$$4UGOX2cOhIy$uWqjETCh?A^;M> z>Z79{s<}WETbe?~Z|X>)Q9#~Z^7wh11s^7XM3Ud$Gs)3$)FHbYs=WyevBb|Iv0fWT zUaW5*?j!k>WEiRTQ#yxaGh$#^xXlRY-q(yCDo!Y=xD!MwkAoE5^}binG6$Q+!(vMw z@@p9iy5>(@X5A-5rb^R=iP~LSpqc=r3$86o*e-DZGOxRqOrMx)Ol)MHf9LNPo2dYA znd=B>qjkf&oN>~GP4uoaP*e`CCqmqbA-?ta{;Qdc%pZKxTjBOvXLJO8ed^QBWP(1& zXm|MA4YH4!kv1e{x-t|;Q{SWG5F`E)LrZ}sNjG3ul0++w<$NWl^ganJ@qdOK${?Ql za!n0-Y~a8O3C$rr;atgL0QIfTja1=^(h4G;;jrQR)#G)mOAB$Y3h(=d0;(s1G}G}e zABy}rq`m`%R4*2(G~Ju)nK2S$+}P|%5<0JE z+G&$)gKg2f0eV3+DZ{@{paZmt=8120?Gr8$a#gwn!>ro^)HJ4*cbm+}(8o@a=0!YA zrpY?+aE+G@{<1$zMYA)i<7CL?f=Z|jjUieSegDe1jxq4 z{(qq#Ga(Zr8yD06UH-qV&P+_~ES&$pO4wF##mvhU_NY!CG-xzB?5*wWgBoCAqWvyf!<{M98iRzkhYD4g5pmAZM znkqqd1R?*V32j11|Dd4A=%66f=oop}D=Wm0)IZVkkVjV_p~7IlhJ?p(%TBta7cSvnu)it09MW`|GXnB~6vtziH zdRHH*M}b%%aT#(TMM3}AV+MEsV9+rv8%qS>vb4^PKwLd$t&B}j*8CKMxXM+(5CgOp zS65dw6Z6-*I|CMX2g4xl&2Z*=Al|;37XMa4%(zCLF_^njL;s3)(6if_wYf7OtrmmS z-s22KYYjwabEG{n1H=|EAss#5Ekbod^FA3T|B^sv!D(c$_szfW_MjMjy=I_54gZ4x z^>_S00*L&$GPSjY@o=Y!^bEq``><^gLCVId8{54)8i1yV)cxS5uXXbneok&q3;@oN zm_fbN9FSwu7C=+_*k2j|`ji<12@Onk%)0MfjP>7O&-4bkA!(S4J)pq0j=b-31?(%h z25+oR%+FnlPXv%>|Fypdc%cQ{0>tG-5~%Va9nzAkYEm9?_ZzeZy|c>is9X> zepA2P`fkv=rs!huC%rsBt@6q!7tnWx$0tB_P7e-1{(h1puMc~#yM{~C{lCOy3E1f z73#K(UfMvgp^=|mW3bM#Kt3V$3j+eZnn(Z&JC(zZNpP(;L z=eOS;EaW=TuRlY6-miZaklU!Ah}{n6lQ6`YfD@>G0@p8S52^Dzr1!nUH{#J3X#b1) zFD1s?Li(lvt=!Ld&nsbAoG&NEOkb#E>wQXHc}VqbjX~&K?E%9`1nKJ#E8Y%7tU@_Iu;<)5Be_ zr%BHh#H8vdpS0indhO}T;Ge(jgV@!0rf6@TG4!*53Vl|hj? z)dOOxTxqmal~tTJpIKPTd#&+tCp}uP^~Lmi@^&bM!TZaEKk`PlmMj6~EYaA8uAP>o zJ=S!qJV?X7sm(`Pqs{WM&AKq}4SllTECvWFyDyA+#iOVB{g$>zmxPzoVM#5U@h7#L ze7+sI!w^Gbw!HrKCN}US>Kb4yl*&kxI-~m?u0k+ioV1fSQeUy*C;0>XLZ=C@CVkby z2ne9QL;Pz@52!ghyN`c*Cq`J7Yo@ujzyXN7hkK_6ddudK3{>XkAw?}Z%x38Xe;%1l zy!cP5N0}|4mIJU)11HyJ*=hc*70Gm$C84%>V9bVDM7E(HefZL-(Dn3B(j;a7*sc0r@HsAwMg4zsF&P(oPJ1j#+X2%tyGiG;tLS7$OPJ^&v#0II z7NNzVg$JC_1Dg{CCS<_bP&{v5T@sPAZhLt8o+m%krrjiu%vTO|i&)XbaG729o-}8Z z&QO^)L5iD*7Ol=FkgL^eJO`Eehzh*|D6{GhHD90$q>dcNFIA?OA+}sPYG~UEBM;u| zs$0AOs%w&KnI2NaF~1!t%v8%A2Snh0$J)_j>)VA6v*!{~RbX=)Tw7*uDQO*AedRh* z>c?df8ifIx?xexlr}tajfrs_H9^{4Wvz#k|Z)WQ63-vv7LiZC*%2i-AWHjw;>EBrA zX$P&{i&Md}(7T}>Q5f!zru9$qeOhTkiE;+%jYfx0g|NlYlg{C(XXMSs=dHNtiCkdH z=x8=JEF+R4Gow`R@i5V|665ypP$}Kiubhj4tv-9SRN|V%)(6JPwKU-_%W68`8ELz| zTph&o4Q0mgJ(mIq&((>JbIo3B29$~S-CH`U^Cjyi7#+>Q9G2 z$%*9I{A`fd?mYgk+%_Ee+_Q#nIzG|UThCAS;vcP*R^T#b9~6~3ykWP^*+du4crjuO z8!)4MT5|3DBm}_y4wx%LEhwc4lZ>!r5)p3(CjL`#Rahh2^19PbD;WqRDe)j2G*6VV z0v=3kOT{bvBR`Lo2T+wNVOK-vF$biusDrU1$2Vj2#C(8AuSereD`GNfNHRhth6}Dt zdAR+}^a5i1=OYRS%6fI}N5d7*`I6~>$pk7_(ll1G>e$t?u-cs5{i(T% zizA0`;;6fk*LB&Iz#~M`=}LynPFkm#N`81HFyiA{qk+k6IX|1Dr&5pnX3LPel4e>0 z4x@(_OR#&HhuvdNRKl}_@NgqTCr#hBalN0D8SGHWd64~CiOKKf3t&V+?Td;5lu zb~F*#E!^+vbZldVtCj9!MLNb?x^WwP)g!NqGz9K%P-Ab8}-u$y7p<$6c+2~3hhCGF&ZLsFUv z%MtyY&Qa6d+mH>k105Z&5_o+4T7pdMa&rxva8(*Fw2@bCd4_!9;LwWQ0KfN!$ z3JDME^WO!KERhEy-W$&cg3y_bMST)l!jh3as>Nt`J-f|Q(qGSV&;nCSJj-?MlEv6- zTblWSH$m;9pMvWEanh$@%H_#$qrdsnw_@tOG+qQThN#qz_#8VfqELt!r)0K>dtrO2 z{hcnDuuvQm!$#8MX(1P1Q?1)qxaXxLOOjb}bb%G_FZObW5TA=F!>$Xm&W^5IWw5kR zxLBf{P{IAoX|@{5M)+I|mpjlEzSP{r~N*L=rBL0Btx~6k!jk?FI ztaaPJ14F9{yU%IXJiy}vWn|ywvy81qJDWwz?lXC(R|2i^BM3|(r2RD1r^xw*jO3Ap z%h$&-^2LQ}>=nvyl;iAnRaxm>lXZV@LvXt&xY<=|=o!T|nHZL4f^6~bJmE&2ce&Me z{@QL%pUQuM%N9S6y1T`B@H-~@BQgy#yIJrVh6V@TU{(H@kkjPI- zD2R9>Y7sSDeCDv=<}ThkCJfE9*WwJ_Xe%q#ns1QD(bZ6xGM%G=Fh$DwrM9?pkwqTzFtd^cvjDwQc6lxsMmcsZKBl4%vAh>p%3_Y5eKns!Ni%Znb+kKT^!lOXW3avoY5b zsZGX^@;!XSe@UwpHZ+B-_`Tz3A@g}~z88ZsYA zC*@)mgPV8B9vfnH84e}PzxQFEH>grZMy?6D z#)7kdI0?b$KPUH`S4uQV5*_a86HG(fA;y_iEiJh0(k0|wRAO-+*D%8q&oml%#I>lr zCulKidgnOoQh?7bl@N(TM%Lk(&T+&z^`yQ?!WGu6IgX_g<)$DBw!j)5u9|1kn}KVt zAaaka4^8Cd3G%~uawbG|{D!YS#K-H0Z!#gW1!zgRMB;N|41&Q;*{K1#;>nX= z($q;D_58Iq#<*%Lt`fgVxFmfv)t_FNIZ==uAU*w=mi-N*Xe=vl#TL3n^KaxQy~X#| zR4zn8FnLmzlo*yRr=0h>Ts94cjJ z9es~*Ok86|%Ezx?qqkQpzB)MLSYd_3BAcvE#p7+s0J#4Wzl&qes$Lx%3cj(c(bIGv z-_i5rXTZ*|E^db+OAorG@m3GBlq82tswM7n@xq^muBezl_u3J3H=ci814b%q=Pgp> zChIi*6xj@ecrFBsuuA1nZp2Dhd(8}^(nvKZE>6>6gZzbFApN2v;s0t1`>z+Gj8Sih zm}`*L&$rvCg%N!IwO*U)@S!=(xwMSg+E}q}*5_fjs`zLAF3p{-a_94T>{Nw6LDu!6 zd@Q)|y$9NBui!d=gU6$>>LfABc61XECGE>mtEP1tdDJ{f%E4+aAXCb3mV;mWx};z| zvfFT@zwJg~XxXSb;MRV^d>sgW%;40yB>buIr&3nPDnNkB#I?hhM~(>jpL*N1{Y&En zbf}-e?JL3z!gL%5V?pFHznlJ5X#P;v!wx&qI&N~*O98Cn@`jb=0SZz10?!uOr30a& zY#W(T_AyL*K9D`bSY+)8xRwHhK)1E$q+6Qf^U(|v<56GeC}U0gHqADFi^=V?q}V{J zWKwLt9~*<3KG)t|<9t!M)=c!MDn00XizD>kFaPTae73M30E?H+C7f;Ir!id}3X0ta zA>GAk_)wR%t{I7ejEti`Gmtf{Z-tY2iv{x{b*T&8kV=f|8I#LeOkLsLl?%1ffGHhv zQ+_P0TP4()?&f*tSr$KEM*pJw$h#Dgk1O3DoNgPje_t(7zVLCB`w@|jV_F!a!hKE4 zW_s$J3uc{cR0f={>(^Lf&at9`Q~|7Dt@<+MOFFS`ql0Fo^-^?e4zM#U56O#)4gr{f zAjS{QVR#6!52wr_c9Y@)`q~qA8y@!Obl%tFJDjm@-xen`r7)oV{}#J{#s>mq_fjLp z0l#F5ua!i9Sz5InIhpl?BS@$R-k0ybL!X2aO?NaXuGaMy5zS7_Jw1j8(~v`#QIR># zSagk<*TK8-P58nkPLgUFAG+N8F(*!lhCF=T^sQgShX`PZec#~U07kbt7wkmDrQiO+ z?L$RQf;$H925Os;SV>;`;^aQVk!ZH-hXN%|CTck)1oR&M0&2{t;Aw10bI%!Mr@2)= zSdLVv*3JaB1guP6UvK0A4nIs#ln`~2SBfZFDih6t**PYyhXLH5PCb{%c0VlaYf1%h)#`;c`m-CR|OP~YwLFG>Ut z4~o3JSDOBgJXU9H-%HPj^8hTr^1livXU@zsjGO)L7dPen85|Kb8Qy=lCqI&wDUUwG zOWkPF(4JUiP(CC6OdWUb>uYT)-KE@%)+DGs`p!LctXd{mo*(*pcMB^QXFW{u-M^bC z(1MyJ?0=k<+|KBytVv7Ad*+0A#*T&53E#Nymp}t#%2h-N2FBQ`Y?pxChPShUO+(zn zUCJvtAy(m`82Cuc^-Yy@mSUv-uCCZf6qD#Yc@p^@y??vUoz%xP9dPU>wXpNq^q$Wu z&ma#D1!)bU41S)ikSaKogG1*oeFr0vSeWr7)tKum3|Swu8;|d7;atb_ZKq9<4XDKR z7s3|jyM5w!flJ~%LmEzWPT%ue!|}=$Gn-gCz-vQ!_SpT)KjWNZkY&QBgqu>H#5rr2+KZ%cQN5w~6VrA)4^RNuP#=xp|dnsE2=IW@$ zE;-q*C0f@|yJ|Jin0a0_%d8kK#N&;xJ}(TXtYr*IUaJ46qDN>|BGxw&%IfJRyOaO$ zB8^GdTFZs+=Ue-iCsvcT{tB=NH=A>2;BjrUD+$pZJd$6B#N}vn?TM=g?m|-06xY3M zJulIZjJF8chCFXS3}TPQ`4w)46K&y*0j(t8-jv!6IV-W{X2MdvKbis~QoF<<-NQUS z6!K^c$!CRWx&vTT%U<7;h(h6>hPKmM@20n^)+2*!6?4NDW|+8g2rz1BiJ-`%>YuzH zwp&#Fu#yewzfRfy1^T1o(fJk%@s9pP<7YiL6ibN$S4aPOGI!su5qQb!_9Kg$-KZbT z>bq07Q{l;Uuf()y(VP?Bknj~a_F$1tx_6JTiD|jiJc+=`mqt{7`o$AiR{`j_;5bh! z05C+NBs0)nh>4t;B+Pi}=#Xn&7>9~W2JK&T)Vamx5ON96Jw&9DJ+f_^(OuMAeO45a z$M%J7?&Wx`oi*5G^t}H}d1d-k=i*uOkYf~gfKp1*M7i2q04w23qPKp^1|uu|+sr2i zt5}*z_W9Tm8xSKn`ZA8kxyjb(L;Ndx_A$N|v$qOOU>^|zeTU$lwpt*v$c>clZ zpv52#F+l|0gTtni+qC*z^d#2wJ8)AO>Ry_95eh!7B|Rm|XS3El^q4*>_3mghMXxqv zxlTN;A%S$Wig$8Cx?eJ8Y<;2Qv8ozq?Be-!{XdMIQ*dTsyKQ5q<4)4CZQHhO+x%kN zw#|-h+qP}%^f`6*u6^-e?CVvvuGU+to_CICO!Q{hj%P|45xjDVEcXY`7oW(%8?kb~ zhyk*ZeTV3_XVf4&n8NTIGc^$ry1P_@*!6}bb{WS}g`v2Vv_NtsW6*o7rw9kLH?YHE zg9s7Wmo!JAveG(`ol-jYb8DzryLe@qQbf94G>R+j#4qbk`Him6e{5_-&<2LH_c&08 zA&R8*da;m%dW<5htvGA$eQLdVfZjI^o2a(f7p@3+#M$^FJr#?=!Ryr-f@_h74{8t3 zpQeuTG=lz-2i4cA1T)&w)M-k^wj2d5YI0gPAoYz54^H=lpB(I<5HME$+@MVe{#^pn zV6p5R`gn1PjkHZ%XVR6!cXI*Rvx$#=W@+M=1JWM4vlg3-*c#U6MSRk)@ud+E`3*sX zce+;r`;ICCU?|WE@hLYwyT9b4h#o#D)v$TA2aW;mF3|0`Vx>;fIUs@5`ydhx@@m|0 zrnXO{);37*(-M5g7|XSyc4Q+grWNzzWV+giOVW|mTbKJLV=4sn%lUqh^0+1Mud(AS zp~~+sfuMt{nRs9v{gSh}TcRVN$vc=5o`2|gZ6LOc!3)jn6iin(NTl|I=~6~%Pr{%? z5XhWgy)I1Sej_MKTN2JBd)fW00;8rix7ds)JIbg;$P*{MFJbuoE3AGMe+k>eMKz?P zwAkXF05S&L@{@Ry??e!J&BNWp3k=q*j{hN-wC;5@K+`B^YQm2F!>@!jYK$I8O9HBs z%Lnya*?_LyV*Z(-;88%K4KzTaz^1+^-pge?i0L!e!S`MyuTfT|5J7tLg|$bpfdVgZ zE8cJ$#}DR*kaEuacLdJO{rF`3iV^w9o?*9`ur)VL=bur;z7Um-A8bu~_%1sQ?6r*m za_4kgJ)BgB9>-zU)l8(7jX3n?dq^o@pE^i71&&0Q{q^ubqq8Z!ZIhh1rfn*78AZfW zH>}LE8F9DKyD03)wj<0~!i7X0#zFyjw#!g2qoQ^eVA0mW?6bLWK8@k9&vTrtCu#dN ze1&Xj5k! zxJ?ne^%KdhdN?oGRo5!l&eG+{hUr*D$@n>cy+!lTDiQwTiye>DyK)IQpfl$>AhaRk z4S33@B8R3sH|Grq(%Iq~+Y|UPjU>Puy(t8LJ&j>0^d!(~#hbKm1R-hHL=9dCK>#I;1OHBzXK+GABj#QsTYnl=Nlhs^gkC zT~)`y5euelfxpyg2PguqXtsGc1brm4rpJT>1M==sEqV9N^8Ua$hR1^&v>aWYAq496 zWYpbT!+Mm{P%@EM7|%=L;3Cl?T+-kSfDnmEhDuda{0`dhl~Qva{ye5vk#@rJ(^h1p z0e)kT$5=$$OGvaQk!dR?c`MACaEo4U;5Zo--}4e+^FTU`SKv$6J!!KbhD6^SZD~?T zsx@Z*{vJ#>53S_i3;$G&~mx(t(u15WX)JT9#gH|n+akmpGyUx6`QrYKKqot^x7 zopO4t?MkjQtQh!Em9&iL3W3=ra(_@+#Q{3UKlJTe3;7C@1IhV-nQi zJmISshB&{X&O+)8qvWq4Q#c!;5S9PV>pQXIJXDDK4ovHfOtp!h{EiN?h+e*MY>mKk z$)^?qr+lc^mJ(f*T^re1PsQg0>l11hbI}0eH22zmmOxLDanhoJ)@q*{DH071R3-$6 z=X(!#i82z5?L{JVtKW_QbCRaT>h3&qoFB~G#cUTKc&&2w-Z#>Y(L_KJVt;E=bz!Yi zURPNWszVymImaF-*opQmqU-(CweF+4=TxTP4`kr?J1_J;Q`1}*C2|tvYWldk7MK=z z9btR@CJH>%n97D-Q10oWbmC+WYY5MKZDB?0C`Wt<^{V(~;e1}%wMUU4FR_$YB9X^c zwc?^7a3mS_d;@F|ftB0e**D|*iAcnhuD7zv;CdjvBNb;Q?Z8A4+Z>;bwx(k5Ovh<9 zvu^qb{;xuI?+i$Uq>z4J>x&&4HD~#U9;H*1m4-4{DOGkRU_XcUYtnxPt;#kB_Cp8S zl$ynRidz?~mC&;TC)35gcS!LQ-aCE#VRDwV~p8Z1-@;BL(m zaZEI-02-Gvhy$2CY41ku~21Om;|sDq-;7dTJ1b1 zpNY`)A)5F0oaT<#?0cp-s8ZRs5-zWTo=~@6vzO$8vaM~E``Rd()0Yika)-a4=GgCN ze+Wjmm?r4Q^^zwS3-^bA}XiPlm^p{RIG2|TtB_T(``5ftfiWKWQ4`fSXHZYyy=8!Y!I{X3gtoJAS6)WK!#j*e54 zGHx9iP&dfI2@wZI`}TBj93lU>ZXzfhrF;eS$pG5m^1`nnF|og@{Sr&0z)g7)lSWbI z&yn>63|zHqepyp}i+q&Llb^`AJ#VC3a--kje!W*6lKz4wEjADfJtZd?uVg8V0i1nD zy5iEa91$c2D!gaCia>`mhqk;X(#=La?=tns!ZL|Xrq?BiZ{@NnkT`|YMSp$gR~tqe z*!M1Q`1s|IPH;SKa!V`PZ3@|bM+7Sw612Q z9-wBGIiPfr=BJ*x*VR*#PVLsE8D-=U#=PIp(+$E|xICr{qw;=o4Oh&GTHYaaYJIcoFF!H4_u# z6Ahg^!g%eW8w!Y7EsJOzJh4dK4U!n!9kPkeg?c6{(Csg$lm1Eyi7P%JkpB?@6pd^7 z5t>QSJOrY}N+!+1#fvnmPK*@Xf4aYpA+ww zWN?ejOh)iKT$KzDuKie1YOt0XBC^d8Eo?2N=~fG_u*Z+^jrk^6+F>MrZbChyotejY z?`v0-BK3<#Aw@MJGwPW?az7%sNSTnjAbmf1Zy=B~P1T}@lKm&=ixqtug~l;tN2Eua z{r#%|TL#X007jPwYf-|c5|!{>%c|xKAcQ}G7;7S)jk%!g6Y0#ml~COj_B~jfGFNwq zs}AoK$_v59PQIK8urIAqUofaocNf(+jX!Cph!%U6IT!D*wh=lacpIy`E^DBG;XR$3 z`_F~cS$RBvu^UXHjPd|u@db`3;^k6Y+C9!O@pR{cUZsA>>r9zU92vz@PI+E;MNxC1uXkbUAH0)%lv)UgpqqAn7GH5)~9pj1*I8y0|t#j_}GYzU^MC?t{%Y z%VQEqbWkB_>{|PbdC0NMeghcLd@;?ad#wuSe5g_hwXF>2Q715aK4kr@u^#;A6bk}Q zuHvjK%ud(s2$Mp;RG1bE-zwzyJz&ZGa$<1tFU39XZtfaR?y#dq{ZOEu^r5#nGnUde zP_v)Fi6SFl%t-Jdt=bHkXG#U|-}Jjd-cz6mFx?K{(6i4E@Zu39`Pw>v&xNbZ=%cg5l3V zJ*bDHlb22Wwe|SImn6J{^_`2OZC$fCcCm~HEb*tUjx0LSPMiWOmh8A!8ZLbl0(w71 zBsU?h)a(nk23VWgW zg@59k)_Exub&Dz5vxR*w3gq%qDx2E?>11171*92g{_$;c=}=rjrhvmlXWp#Iddqnf zlkc{%Hwkb`jA+zuOsiQ31h-1Rla?W1TsVhChVp*7E=1jKhj=Y-xem^x6O|cA~qB;bVH&pTnR@Uh7Icf95UObzll|qv& zH6PVp!!g@wNMD2e&<(QvltxF;wU>N7<7&3;O(Ld3w&Aao<6>{W5(sH8nrCGr-1Q|? z;{T|~>17AGNzD(ZhcByC`c9^`ms~mb@P^R3-AoLe&Jhhgp+mEN{_-9_jLzW;WGkBb0~_5D3sos~$kG*}W(A}Y>T2)aJns#51s zLctYG(R^c$U$k^S$@q*GO0f@fg7@n0zdd-x1nefA3Kd!_s(ySfMkYdygqw)LeEg9Vt()H*2S7DGJ4w&I zVXIizn}V3QSjj{(W@JYXDBJSPI&NORK|1INUa?6SJnhH}yEqj#XZUvPL)Dz>-hW_c z)V2)htli4mV#X5XyK%VcQ|OtF>fJ+U;HITtX4J3lv2M}|m;&8IrfW1qeCT~iaN|{>8NziO4HS)(C8$zjQdGq!(k&{}~vVF(|vN5*R_@G8NgvPsk zPZ_5PFMQOqP7(X-2k0U)Zsc7ylL$?(he&DSP? z)P87DP;d+W3T8#1kRBOPqK;60VO1L!3PMUMpidD97+4By81fqu97=uQ3-n)a%l^;2 z)%!p`26qYg(C$>!9C;q_G9*+ygy116!F_~2y*vz@>gxvLRV~zF00iNt-*5syC^HN$ z5aO)xN60G?H#ftp);BLmumK@|SU^DMtDRdOC-QZypMV0t5&1Am%-{}G;5!h_EIk-D z%6%^5viKjB^vY$6yG z5DgC!u&+LBBNr*uIRfN9Fdi6O3`{SVzJjg2FaEb}UT`7>M z;Fzc9nCn(yU$n1$l<@G*^oV2xBnU}y3E-dvh!hlg+~0`bH{>PqgL)c%KX*%FZH4|Y zz6nD;^E=Rx-%H+mJrF`*uQ%$X=G;bm{CmDo*FY)Y1Gjo{KXw^Eu5Uf{A8JWIkbOT~ zcsNzDGj`RtbWcC|!GuV>1ioi?UPFern{1*7WI#_lC9Jo62bOSdLi+JP)k`D%cT9OP z_qT5|M1&yDh<)~KN?;JjZ=saF_LX{|$ASEPGIPLTda&T+z`%h&QlYt&X>2|gV7qUx zTHqrHQ$4kdqJ6WrJtb0-s=uI~UP42FZfS<4{_wUWNzx8f0{N%;;%<@frVGX;X2i-k} z{v5>2UOUm!OWL zii@t^)J8|>pLu6DkTV-+62Uzct#QkzJcE5&@=;en%WS5i4H>fF zn4xevpTP%d?&6oA?lCHj@aFI7gRX$G({V@)(J{sf`KRBx3jaY$dH0XQ)i~1J>}a0N5AAD!3(4T@U*gLyL*|{1r+v0qkQV^}<^xj+7 zP^TR4^?sZF>waBZ`{CZWqtLi=%bW1R@K(BsQiX@T~C-e#PZ%nJPk=E9}_r&Wo!L;?BC3=*@paf}H_b z$6&8X4k5UyQ@WgWBeURjAQS>$IztJ@miGXf5RN6g&1AIKFq86q6|vimb%x;NnbU%D zp68YnkS5@^)Rtb(1b=0@*{0B^j&rWpEff7McI;h_R3*TSrGtu#)nr86@aF197n%~= z?LAAtWs>=;!kF_mhyLz6Evi-60j~4oV&ZPu&`~AMV}D$=*)l>k8*j6gsxtF?E}N3} zo-@2Z!0}%H>Iw({r!VxwO?^H>xOk2()$)2|RVK{e!H_h8?Bq$Ii;@T$T5ueEF53GY zqEwp)$Ze$ME~68;yDV)Tq#OeZT=rd9x~D?13q zicE#^mGP<2Bonq}_MiL0V}@GSF%?an_QL+AZMoV%dQDcu?oD%5J<{j(tv3nByTTI= zcelz_gAB2F>sD086=yDXs;SaAv=H)j2WDY5xBD%J_C@QZKs0N(-_y8l|E}2S4IQ+rnuOLn{KAT4N%gYL|%~?-*lJurP z%!SgPnG&AuW+8U*^ivG)k**ixt#_#@W6`C~)J~Q~OwQT2FF!Sqkrtlrsdm+23MB7- zICf?26UVL`9=C%^sIM5^C#k>CE?NZ|S5wP?TH0|Rb&o?TkCl&PB#io(MGNI>nJ%O! zPsVM*8wsZ3Tx#JV-*O!rRU`@uOvw9*-(`JLHPozzW=|o6v1v7?N&DYUI1IWdoV};)Vuz-k zU*5!kW=_#5Lt^U-dty8evJ!1Ai?0ZU*u|1wXJ>_XtyKyIf4Y0%w3eo#t#KKju03xq zzz@9DM(39Fn4OdrrE`YC>eO#hf%Dc$1mHnKXe%)(&VLS zzpgE#UlG05*$P@7uNnYXR&|czLpi%}nQVZf)&~CFhEx2? zGJPu+h(}36#u<& z+G=<9`cP?&PIZmNk3CIF4$QHxo(dIX+VE{&b@UuB7H&!ndP@z=-eaC^<(8fLo}Nyh zS=g*VeVQ`rwl-2X_SF+9M0%2(8c%}2uIjTE=9Dmx7h<&ERGB3}Yt~kicnP0jiN{hF z%N>rJRc0s`q4_##tO}9#g@w^`tP2?#Xwf`*7VM&ns;K8{S)19@6WI{lFG_p9`3HL; zalaXp{aF6KT?HD>OYLfMHQgVid^@fsM!>g=X8CB1GsnXmY{W@jFwD#qX3+844&9eY zQMg%RS6-v`T<){T<<){ad$1#fi7{t=-zF~p0xg)e6Z=bZR70R_lc>EjKIpTFF!Jel z;_^*wN|ce-WzPJ^U)UPP6r*hoA^1jWXw7RTKXo&SLMl9Y)4~NA1DOW%sKy9$F#~#| zNv(RLo5GiA2;#4px(tbAb+K_f2R{oaMR(mJYK2w&zy#YQ z!C+;BNDGtBGw_q8MG{!h zxL1?Rq4)GjyEK-tb?+hGk!9PdHW6H(YJrFk~Z$I*oR zV?)08b14LlH{diilge9Wl+=QoslN}9u zHN!Tkr{;10l@KPWp&^3~wXL7@D~$(Q?Y!e7BxQ04G`ce1KGj6=m|gyC zjANPt(iZLrHTZNVZd0kvK8&{$=4{tl9e$+p*R@$4nnu{(k9+ORG};o zN_Y-&O3>B*CD&PvYVlKmB=}(bL%yKUO#lFIa=74jsty!Qm!-Y4NBQlLK2w|lW^*}T z)bn~)Q)7zERpqAe6XVfR$HlV;O9@qd?s#m5#=yuW#3(BRDA58*egR1n_S%X5Ohee_ z>YVMEt}yxDekhrvP%w1-#Qt&=38v&1`<%#M*EU)o=*GnhH}Tj1Gwhiua`|pWR3JNX z8Bhi0Vcr)V715P)^ zl=#pt6;iw*(Wxkxts4=p-Nb}^vhaP+MDJ>U-g#DGiCVp0HgEP0TVy$8J2MqJu_beI zfaA)wR+W99D66{r+Fd(Ld&She&jcE3UNAc!imL2H8sl)p$Cs5bZ?1WX_SP;7ALI6@ z$Nm_*iyQ-3D;gw#9ZCs+IPS<$7l?3*TgK_ubpNmyUEQ^KH3?kE%uO93nT=g_6s$$q z&@i>&tRWzM=O?S}$pV32%RZMnm=e$b%1A{DZZ)2_3X+PY!Wgw}Pa3k*11(!xGxx#% z+{-36DQyvVqmxPXUC=*X>Jt`ye)2>UsyDZ!Wyo&3Nk{?-!E27B-QJj-pP%%}X{qlK zP7V)tNS{N?mdz-oPcEs};te@m;)C!}UVGXJ=mzC@;Ve-^)tGKM3_26pRf7p&N zWILw$z43~qoc28dI+B0Cug^Eji50~CT}1+ku=nkf$1RCN4SuB=AHg0FHsGwIe_x`q@Q{CJm+l0axe;TUk&*0B__#wIjD z-1OY~TkN%DAR(i_iR}@$#RHBGXVDnbnihbq`DIZNCzA`l|Av23n}9mJ;(h)m%m=^&bO)@FtyG?u#Kvr1e5AeU(V z*UH!h-ivP0<%n4s%iZ&X9}eBVluA0Fc+l*_Fnk(Ki)f9R>D(qr$Fo?6D97=c~8qZFxvVYJDpWmvj5ei;|-Mn!Ct(f)_D z)GOa2K6H-+&n32!M^SE>*^?3ig+0pcWvl>|Rl*@)g?+JagnBMyAykR+mx&9HFBTSg zVBEy4P_`GxQ10PaQTZ7v$|fPRWbIr8H35pA(4gr-I;RK*?vbC7HYgkqW(LUl_%ZQ~ z)o>--6hMHF>UYr7#@&HL#vj|4aDtO4=8h@ax@z5EKk4eUyDVG=Qu9oB_KZyzK!P^= z=PKFxN99`TEL8NqQ>ngsJ2MQKYD~us=RFU~rqXvE#GllP8K}2ImG=E!!4dw;HE9Eu zV-bY{G4|IA!l#^Wg{ZZ~wQNDT_-OIOy}f&mlw?UEG)a4&l0}bT&BY^6%(j9{sd3?h z>dsKAy)y%`%4gDQRc}5;*4kSd`OGe>!lkOI@r4^8X0fV#4qthYfqU_Uls9;SsIu-l z{ou`%peu>s5h>#xd-;V%&lRbvkScsP&qEA~Om=par%9c@7Hkg|89~~lY0K8!slZd% zE$=ZGot6Ulj12{D>~n~VNf1UcJA%yQ}QYh8tFt(0y$7O5u((7yQ3n-_;h?4YnmbFQ*+hHUDu-i}^dXQ5L!n_oAj; zGuE*2%K#V=%p0fbTP!+9)#Pts+K#)#C6lBFCci|9T`MKtd->DQh72%EgXwJiGqBJZ z1Z?XE)x{4kM?w=v?QKrpt!bDEs3@)Q?BoFFup-6d?45Bpt3;ysq!o+1Wo=LzWd0I( z<1NSK)!nvso*860cEc}2%fA_g?kP|pM${bWoapz`@1m^zi`eU6VS0%}eJt56%AOc+ zHV8HS%-t-|Z3ktN_X=;Osks}OozJE8wNfHSsUevy#RA7;%!1`BynOmDxKlDdKlWV! zodDM??T**p4J#Yt2TSjM{O#{Q0-GhF_EXa{y--e0x~6@BogN=&Tiyd7i{P zkyW$w^z!j5XOMxnhEiFV_#~pGVdk|r_f zP(BZZWSH;xPCxk3J&5wQHt6arUz)Z4jp<7u7y~sIaug*Qnkocrw-P2CKrLje>Pq>d zHdvB!PiK!DJEi&%JUk3E{)hY@P?;BQ%GG1VfZ}i&au?fZu@lND=jVsto z?q1qzk)C&`zWxATSAe#>CIyegWe!f*q_yqrda8%BK9c*SNL4#4xrqONfT-qztP`?r%fJZ5!)R;=uN(SpC67dk7n}GuiA4>*z=~x!Z=CBYF zg;}A+sv7onrF#9gr+7&TDLNwF$MmisRn{ncF*U@wK~#`Ie(rvyO-llL+vYB!voQGV z-Sg!9T%)B*K=!VUIaqjx*lBTdItG6sl%w<_vGZE5_Z&V!>l3Sl`HP}T?3$IK9e2d{ z7B|Y)x&VHZ$`w%W@*7fo6K{jlwa2vi+FKv}s%rac(QQzZAY~-2HUO294TZa=-LHc2 zAnu9Pc*VL(ccl1%#!8Act8bXchd9;5$KaTMqGP>IIt2kH$xddy&C8GsmB1-l7qRH_ z;Uc@AI50yTpcSob3SM6MA?dG=|ziuM0uA7(b+wCP_ zYy2oh^H$7sp@h;dh{!Wy;$8A&Gnyt>abs*tX`ql`P`|6X_Zw$0K ziJITX(q%Ve86n&72Y=Raf(0Fm4h4z-pmiwCgyBUjAyOz>ABkkYMH`zP#q`$`5O$Tq zhbq#7r#7u$s%`FLb~KJLCuQi33!C%366Y5kne=?WhCYo)8q>!vr85+r7O1MZJL3kh z1Fm{yDBUZO=T^1nsUOt+CO?`H|O-vUfN#}C%O_Ah@Lp!zx{8<6|7D%fc zUm8+y&7g7HcS|9MEG`FEVf5=ly)85)K{Uxn%<$J4B)M$@DU0;PC5#aak=Oe3^c2#v zb|NsH4(o{NM*H4|9VWgia~9X6Dn!#29ja0f-ka~X5x_{cMc>h-@6jn?)nO7K-IJbG zcn5pdV)0rmwxK7}`Eg>9E7lvt;OR-=`AYDJb&bEaDf*wW3D8Q{E1-Mkhp53tL(5BQ-Vq*`G;8ergeLuha*LriDfAa!!f> zRfStK$$tFIGrh^f_&3=hqwS5ODYlY4bSx(MNKp!x;{zgWkhAshWQE(i!bYx2E6}7g z`k&H6|J%AahHj>caeJ7YmG3bP!Gr5wu=o?D_K^2qy8JRe@bRD0<$rcC{Qs*Jq%*jedW|JUjAKbKh24LWNSlz5={$vk|AGjzgyxiifK zh}0#rl!QcJ5WaY6f+Ph6K72q>fwP+%+s%3H&kox|_rv7nL)OKkca75wHC16VZfzAy zKTJiCACZTE7eBOLXGjh%6ci8$_?sU;u(s+l8GRAaBOP|C3f}oSgitTZw+X=w3^<05}AaK&{DP#iuGF(EK=G7tzb2!GzIUI>&Lv>(VSs44vHE@&Cyt~{Hzsz*>m z3)STEuki7Q6*522erTZZ$jJLoSIALL0UZNGdh9%4(RG1rc}xO*F+W@okU+w&ACv&0 z@n7N2DZ3{xkB^6-Ty1v*+BU@;9zZ$tML7KE=MXMWewzPo)Zk{pxCDNzqY+ZkZU=uI zKZgn;7z93obqE5J_aZ^~_ixG5UfWxhQ2{06Z3n=RRcIJB%zlPqd2rCzB@=h)Gv!_2VMgz%~Cf43Dpg-QWwdY*PuT7Ak z%<1L$$Eo#~eGu8^3Edb3L`(DAQb=a966L< zJ5Zi3BGP&(M1<$wd#gWB9#Byw*W%2{PQ;I7 zD?VcH9|!@Es=Q`;_G`X51^UHf1WXoRwKVizu&@F=D4@@$&o7e@!!#C<>(j5;w;QB~ z3v*rtHKoJvhNGTjM@J|+KZIH+s9q|3IIytDNKoP6Az+^$_(J%QFOA_IZIxYCD8E;{ zrGkI!=n*{MML;9DAAQiTcGNOp5v}q-BYfO!;4q*BWq7kcOdGx(pFi=R|FUJOnV%Ly z5;w7t9nTm(xNknsI+V$|4>?#=hpqTBl3D&dRp9TQ5{OwoRy9ydcqg}ay=oZbC`|~B z*6M>DNN6Xe01tucCIj)XEj+I`P~Uf}1#AQRGS+_h=L=il+W^1bpSk>H*nPitzD@a} z&+34J=93-@v^~V2r&<;i#NWVvIy!yZt^BB|U_rsay!eZ}nnGPZ3mCmKkYe}>v_Q%L zA0VtCs_WYH0H9A8c`@Qw^mi;obnx3BDZ#U9?LI_E^7DvBf$u=r@8}WbU4BKRJ`{V@_Q*q2eGLSJkX@VEk44C{?A+Aa1bD$lO7R*qd0$Z= z2R9KCk#Aj;MX!G?M|uGHGIZ1cF5Un?@sL$tI1BE|xZ=A*o$HZ|Y`cgkrt>I7(ZA8h zudC%dQh?6^k?HyNq`zz$fPcy^`@z%@s}t+qiAEM8dr}DwtniZ6Hu9E{%nc`>RZH07 z7E$>P9~7Aw?am&oS|KrGivWZE9DRC6G|F|-R?X%Fx2?lwOX_ZDdl1wtL?+TXd?VwA z4A!~AC=89`c)e)pa3cwA8O6=qGVU+eXk73}o@A@2l7H8u%;7R$oIG3Eb4%&e?zf`V zUD`#=m%wOeOe(`w+iH4cqx($CR$H^Hhe2|Oktkqpq3d&wo;`+NtNkwx^A>#bW75y9 zSROCiWMO+c=Q3XzgE$aR?dH~&4A4Qyr6)pE-B^VBR-mE^EAHNxBSjzH34&KfkC!r@ z9wMs5-E;+^vK?Ti^vO|kI|)EGC8`Gl^sOnu>Elpibm3k;hI>!sIYTo?)5IUsFZDb` z&qz(ab&J{$E*@x^f24TnB)WIXk7#(L1jOa<9W-uV(G5MY0#)FfSsViCBI5h*3;dok zS|7Rk)i~WYZ!L}I{6itMLgs+#X3M8|)@u^$Km_7Z+hc3*EGSUTS2BiNStFdf217wm zonqtMyjdN#yl*(9X8q62@L9}ebfNH+$kNQT$zQl*e}^^R6V{epuX%lp8r~_4GhuJY z->2s}G^7hj<6|Lw=PhNIi*Eg;C}Hm1G_yD2KRFAAMsah3J@Hf+5?fC60MZIl9{|fq@=TEGwO>fE<{pXh(hmz8s;@WxL9VOy=M}(LIIBFs{Rs4UJ$_ zn?7s?q4g+hZZlETm*f8GEBJ~UIJi6 z?6QXN1y%*m|ffl1;JzO}UT-tfw-%PK~BQ(`nUbB-sv!oS^7rSN-alXo8L(sxOqIW8SmbFqltr?4GyGCel;AK=4NSZl-9{dZn5+dC!Tf3hw21-5zpd}{XUa@6 zQ`Tae7XZyvWCF1>OsKiyT61`DEc26~xgo`@p7J;Sl&5u3Zoktbs~8;iq~OaY5_@nZ zuRXi_*Yb(2s84HJb$&S2J;4;?7Li^HF2Z_jiN5n^BG37XRP-8|>XI^q#-Df3h7a6O z`v=%@AVaSHQoy~IVrM)P$;P-QW3@>~^pUZ+4z*cuCg$K#Yg=+s!$U{`Jo(-Brszju z$H`-8GpkyrW&in~YAsn!6xzzS3t(hflgn}S$H|Zqv&3GJg^6V~Q9oi06cgZ5s*nnF~g^T?OvT=N<4gZ2MbcwMfIt)eDxMP0(-gOVi-5i+!JD zhK8D&wIs$c6>Y3CxuS?A=PMARcYvT5Ptb$L66=n0l&eJhV&p1V-SAqMwsZ2|@u1Pa zp)g>J$(BvfTxz%JkPLhrO5n3S_#%(<)*FEH@xS+aJ~U&k@20Ho{ekb@lK+PP4lX+L zilPm_!6pW4thLv)egM#An6Em}0@rqb?|J(?V3R#T!~rNM1|GkNqXz1lz=Q#tW}8M`d%s(-=g6oxC!q-^>4NZtVuE* zQX@*Lmq6CMb1lp$OX9`G|CC5<5&H}_0KTa z?MZO!NP!zQjn`OI?T?kfUf(O;rUIA~dnrUYWFNuWX4e=MgV2q%P~D*AI4*#GZx6RC zsUatpATcmc$rAJUaZh?h+~n1g6O8)?mR&Kc{-(>K)*ZDK4C*)4Dfp2Wo39&@#0OllB>${;d=~DEUt9^uE&V( z*4=p!V!%^ae*yJzdunn2aI~M4o8bm=(&?ESvN`%2HgqkY;XVT0arW=mvvUdKUTC;K zSlq$X@;i&u%0|-H%%DSNm>$B(jfIqOI(k^W?-WO1Np3CTNjGIWR`0=exIh$2)6{YZ z2%&8qea3xY+lf@&yvF-1XTh*VEy}8yV19D7SCWR_yCH6uY*j5~hevt!yNIQGlF5B@ z-t*u1^HqqT8E(}ka4+YC*g}o|PZZ}f%>l~oUb>gJl-B;Z_cz83@{Yr;Exn@NPyvv; z%JxMXH0O%p0-%P1pU7XTTg0>b2+-+f%vU}A7qj7$PbV-8{3#B70D3kRxPGEMg5+|HWDOh>|+RwKup$FWV}B z)h{dBmLmrii=Ae1OTpqM-CRvFDF57RQUS~2+(@8Dn~GD4A&(kjgY#Ua|LnBawot7MJ5Df&Mc!Kos>Bx*SatRD?2W_Jqqcg zjgxh?`S>#n(=}eMKXvT-?I78Wv~oUImv2k!F|5|lK?VsXlvPNed@>7SucIRt96}$Mr+#5lN!oTelV_UzOR)bu z6d|c&D2se+x=3(kLVp5TV%KMe5Z2FX?s0u<8^qhN3h2JT@(yhw3ezM;0{#zU=g=ew z6JXo2ZQHi(>auOywr$%syKLLGZS!@!h?&*5m>-bajLf*_p6hLbt;v78W8$%eVz0s5 zli#e7v7S_Iwt!s(7r$v=8Rs%p8oi#LhEHpyuQ5!5!-;*QH`d5v=IL)IO>a1XR_;8= zG`lOvmQ5p!`_0gTp0K5AL6sTMW71J)h3tC$boHHJQt>DX`6cPSqrp6hfcz!}_L5_Cqfx|mtlv$z zCl3IFnHK$Nitit&^OLw%(}om-OH&Tt<&loQ#OsjB+mWY2DimaE!;VRFqMHcW&b zR!l03MIj4Nt11I{5<#+i6I-YYQ_yHg_CTp=8))YwuOKqH)BsOVZH$R*V1D=3?!iWV z1(QnfSQCE9e>*#evnj+8$IlT&n0gB2aEN!y+Wy;UJhQ0X!6rif#C1g(&i&uYiiIKs zbN=qj#tuVlVS_s$?nTJZ@HaP)6T_)YL#Q8%PC2z?UTL_OsNz}T_^=0b3;3@J^Y3Wo zqJFoJo8y8hjJY8CKi_;~n0YGwqAN`{a%PG7VA6LZ$6z}!8v$Rnm$}M`8eMNtKe?^D zShb#SvNJkTedGm6)iVWGLq2A7LS-}Ne)N39;MbgGrdYsf8M$1I+EQzks+;@IuN=s| zr009!K9ghVoKm(3zl2G5sgdR5;$kRqD&ZX8ffo0|Ki}loAyRSJJ5pC`QTd3kPm-M8)Hw_>Osi*j~!bxjy2zLRcmW zaby(mMt2#9bW<0`S5zCJ+Uim=A0$s3YxM8Ytp4=N<6$0`eNIyOzT9cM}YlZMi}C87%9F} ztt`UHp0?3RQ?ZBwl*ipO%Pr1w-s)m=sbt&2pn0zDEyZ6x1WpI)c>&HU+146_em>bD z>_;>QR^T;EfnJ$a>z{-t%cq6P>9QRJCgfJTkZJiK3eaS$o#GA|<%Sd^}Y+U!2N|D}EzTTTOh3cR7U(MOSaNy)A8z+A( z|1vvaTRawE^EmD*4Mzm8Vs=l+v`IyFFa&URtk1A!>zKuA_G-smNN5>d7sN6M=d-fe zz2}#SGat53DN^(>JZ~uhYmIN8pzp%bd63DNzHNkJ7qcfxF( zrdGQzXt69QS(IVcZ5?><$D|I{KhpPb8;tZJ#7Yd6PI{CE&o3HT4%A051Av;s9vUZ= zG+{BV`9=E%n2jM#-5&)tam+wRk1<*}#UPkvKNcqp*Hzv1xye->ha|ak+&8M-Ne}!v z9^B+Z7WY`le(V9!o@Na8LTo;h9BU!<}xwPtBqo?G8xD+1Z7E;BnGhdlgxh ziHR5NFwZDn%1T98pKg-4e{oBWaW{B;Pvo&GM{SAas_5Y*Bbv4Y?s|Y5scpfUEvtf) zP-e>$y<7)DK1u!u12x$`kLsGlv@YjFx28H;#}RogJq@fgnfcDHbo6e1C8DcXFkCzT z+MwF&HQoJZ&0K_8s?;#@yBJ~aLAZdV|8n?&7p@+t{TrRTW<7{RU(WKOzHNV~(3<4( zdS0`H%xXRhtn@;0zMT6ijDxz1D|;|4$*IX`n81Gi=+e^ybd^Z{3o0VXvJLE!5bI7@ zo@I16Ux@q`>x>(;KEv0lN%7X$X%jN{fcb0JTnHiZ{N%EG+Tzr8%|)JMAD-=$*JOvqX+IW8r&vrV@;ems@mI`P9mj~hW& zdajk%_OCjexSBM>X9z*xv0B_ta=ca+T!h<`tMFUkKpIx-FAapo*WK>;Xmu7l-5|=wC4Y3}aTpMIejt*l63UmUfGkz3VD@KqGa1ImIV&V^ zm#;C6rv9qxJgK$vsyyIx`${dMQs3%7GR18Nf+PDQL<{G6VHaP&f?#j2!+^&%>;gy` zU{xhTJSdPiLcn_yb+*EKzeT7A{jE3^HQ%pptM^hi__Vb_`gss_d3O_$c3Y236_grE z-|5;&mC%YR6Zsf5z3d?BqGmUO7nI~xi!I8%YY4NJp`od;;ab6@OY^{#nF?OQA9Zw1 zMR-OPz0ZcMwB|CZPL`t~3ip;;=dq3ATZDY*9x@r2jkuNF8gwmrqlJSseC*x=NJtu zXY~;OK)haz{m;v-jlA=5R{O@C#N^{AQ!T%#H2ul_NR9%;NSa$j3f^~*lyrMv0$yTQ z+C#xHRw*_XBek-(*tjdxa@hOy{I^G;2jRI?q`}K+_EV52ym9l247rQdR^fOzWv0Mn zV(5V=HL3*6b#*()2P2@cWhZnX)ZddFk*bve_x1P)t!t*+oSiV9?x`k4i0p=y5U`Qq zj^#wvk-;@9GAoC{>muHWvcOfWYQ3zZMP~ew4zSbZdg?ypM_*eK>6k>k9R}E%~~Fkzsr}&wl}P2+vzD$3s`^QVrq2K zUn}bo`EpS}6jmtW!d zI`Js|=~-VFXBcJ$Mt)Y@Ay0#tJ9D|*n-pY#SMLSUAg5x`mY9;HVv5ACfuk$a*5ZHr zV>WfMK$@d1u6qz|p|5{jc)Tc%5>IbmipKb(!9wu*Bq`B)2PsHsqVKsa+=dGZ{_5j7 zjbgwOs9Qqt{8~btEd=$rM9D_()7SAyAS=sDVE63wVkZ06r~zLjXIsiDB>QgwyaOwN z)sML(VOQEP7sVhpUfgp}w&Gz}w6b-R!JPRUfyO)er{h;!TJ0HFav;=7QxkZeyGw-$ zQ7~`^_o(pFT!+T33NRxs#bLTF1b6xI9$nZYvPs?!8dhkQulXTh@dCa=*}R}zpEO`o6Vp;6Ccv2qcbmccDQfA+PX87 z|J|OBU2kVp7;QO?Hm_IZJ9t+Fxdm;>5~oKL)xOS%f$uCRY`ttFXr*URh30~!=u3R` z@@zD|!E*bou-%KzSs1Uc_>EC+2yle{CW>GIMAoA7fzMK}U9*#?H)l z2`l}=4ZB+~p+*oX73szb56WAIpqg1gCC$%BSzVK+QzWaljGqCDHzneGoxZ!=`24=0 zAxzwcj%H|`s9dajvz11Ix`n7bCYs*|ll-T(>-$0jC~uzQgWH(j$}k4S?ND|38mx0H zr=L~!xiC#X8%BDju8tDb2UZHZb@(0LL}dPXvB4~D;H2tKJNIzIg#M0?-m4XO&d=;o zI@O*a68SKNpF4I!8EK73_Zlv)IaDSq^hL zv#+p)^z)!b*N75D|DW*wTSXxfi}PcJy^Dmy;bG45h1c&&qx}Nuwby+v2fkj-^ zBvgi8gR3;izYhxs*6nzTsRa(oz>!7`p& zgBI(oAg3^=7u~dmz~0T%&PTTOXri*6-ij;Xd?~Ek!UbQ)boM7Rm&>$89v#%VqLt9ic+2IZbkcEmS=$TFh)7hsi|;WUfZ zmcT8+yqpHH`Z>KJCu*5qV`vW46@kXQNFlyD?sbwaC#EQ!5PlfxEf7 z!;7*c+%HK!45n0ykX0Q`cWtPo%*Syh&2y5Q;ds=`La^vC`}L@lPAO64zq*n)iq@VTW+(h7!?a zNdmix^z>J?ysnR~<+Qv?n5xA3CMtQD`bOd8soeZwKC%&Btxa%(HAX|8`-G08w-%7n9KpOOlCMz=Wf0+W;=e7seRTtskrpo#aHa`W zz+{Ud-D2lhCw4~}L#_=R8~njHt9DGm8^FWGr=7110H*!2E-Q86CY#{Br z9$RrR7N9tEr_Rn=9iqzG&J-HRfn``1WKe{X({iuP8s(;>=g>Q%@8jwLEBFL`l2dLr zNkeFhY{WH=;n_3uwKYhrimUGh86`RoP?UK2k32{womt|*#HaL3%nNpN#b{@YBS3?B z?n1p8jKO{`Rc{9##l=0&SQSWMxl{a=D;$-VUr-1k$`$6c!-{ zj95m0^iCn@ycc=+8L4HsZXu~>6jEW5d4##(O>wr<&HJs+<<4^r>+UPx=lbXN=k~1c zDi#|VE-#;kRWPYCB%t^`z(b~|r`tc>07I|8KLQ_i79Y$p#5eF^6Q+<(0t1Nl zzwxpoodN_DEG7T^IUX4h9C;@v5RiWV{PN)Z^k9Dg0ulm(A9TchDnJT>ErS(*GXDHf zf8m5T>jwxkdbRW#T&V78y*z+2RCEFgI=Ye1N!)msz>a}x0($}Ez{Vi10=MQs4j@km zY7CU)=Q@OJMOTXCCJ>0D{r!G;2cZYze{@K@J0Lv91l(K*Q9JJAe&GJS-fTiuRS0r3h%IQazo6FovGM|1l0o>#5eJ|I_Lq4g;lxM*FJW!M z`mqR7EcGb-D6v8Zzf*F6 zCr~Xy_?_ryZf3Z95b$lYc_FYcwlDj@+bsE1O)ct z0to-e5P3Oj?z!2!58atLy%9Zz4j_JfvtVZZAUdE6@TP!5y*ECIaBdWV_71^s@1M^7 zU21PZ!9Fb05Fna@e_+TD|NQ(vFys|$+gmN2T%X8)C6|EU?(zNe5>Zok1){BJmH$ca z8;{?c-PLqF4KeJ>)m~!7t*A zA6e1S$@$CVYHJ z^^gV`nVaorR{`-?Nc|Uwkq}V<;NSx4en6ZZvl|J}8)Ux89QOH()DU0@UOaz}4xodF zzYlCb^0%po$PFMKbpWxO7wab^zXUL_qpg7Z9-W8=z(0HbFUS_6WzYvW>Q~Uu&D|~o z1}t|6p&#JypXG^Z)M>GAB;=0R-j&{3Fp4E)%aC7RECW(ZLp|gLM@?F(%l^MVaAxO5 zS|ZsFc5M)mJ|`J*IU_MJ#}4S6(3en^1_PeW*AYh*YPVvFbnhB|xG6EUZ0He=Ia2YCSG zd&7*7N>H>^nrvm)i!BmHWGivyf<{V-7))wOEbKliK?##q3H9m7?Wq(O%ylYB=}-N` z!#~yR-4%QE?-$!Dg{X423Q1m7jK?sfPYOyyW)-YNjBCdtvBy#e15(_kL=BT>+W6;u zM{EFOB^y)t+T+oDG%yZU&%^rW@TRWx8xo!!dwJ^x9u(JuWg-iIeM;AM@BQChkY3}w zurO*XQArC+rAQh8|Av?W)nZNnqJeXD}fA4=`Z;OBft)D*9e zV6I_B(o_6NOO|*rL=VCfA-snuad|7_HP1nV48S;os!VkYi_CY_{51BEgPqZH% zi4@jVD(R_J^3Ii?G8{#ENNy~L#XCDP7jtejVJ59>Ft*X5M{Vv{>5|GeE4zv`KV8N> zk>|Yv$PX5Yvo2A0O`LW57zxO&)Y4(HO0`imZ*A_kYMQjUn?=JLWqOVn2MKVgRop!d zdo#aeOP6zw(zu*BhmpA{v^r@fu1K!8RSc-n@M}~pnNSlJa6j63bV)CC#U)Dz3R{JQ zHJSK~^7iB7$d9683RY2@^RgDA)36!gJ-dw0hXhOahZ4~Yg6TpVhiy@<8$d8*sj8cO z`6N#e|d*w-!xfb1j!SZQqQ(tPKIk?WQ1p<9iGy zGv63nIzQT9wHtjoj|tN}X^+bbrRP}-zZ0XNGVcfP5WcQT5?37{FPo)OM5XZi&YML3 zh+?i-b7wslo=QZr!z~}1xaYhxj0~rX7!46inDu_-Kf@tGSQLkv63SGyT2lt+1IS!-y?o|4?C(dljUwGHZVxQLf zLx=;uC^Wh+Z?yjyKgfpB!xq;a^8Km#nv)fO$Q)N*H+{1;h_coySd2W8ues`cz&J?z zGsvkc^HH@YXGu0F z3eiOP;Ja$|Cnf66L$?IbXZfI-g8J^A#ZD@zC2vZ}cj2+9dbwh%8yq8ymQ6FTgh%Q5 z1ZIgVE-BW$_Bk^AgXaC65_tWj$&eN2 zoH+c7R-tAc5lbW>!fQ;%UN|NwXYD5l(ht!zDyt)7fCBOWTPsbbYz)lv^k%CwO*NNo z0TB_U!xp7(dbu!+PB*=IE(@fo7@2TvRD7}_g}ia$8Ya>dR|GAP@P4Y>qq2Tsv@yr+zT}vK_O>a)sz;DVe~vHs+*qAAZyKG2HeBM<=I$$H@HF4=jrPvnG7S9H znTNZRMG~Qf zz_56d_Y7ndskE*A>MV^6|LU4N@{#rJcZg!fbIR91FTLoBqy?EyL%hpgRD%gKzx|fkO$lyK7)Co+hLll+$F#J9aYUeA-3(vIgD4}E{W}AnSR>)f zBx%KFx6eQq*4R6nu(v*&eaoYSjVu%prv#Xo)9^I1)@yVusbxDei8kp zpP5Chu&zeXG`IE6WiAXf&UtPS9Z36e@2go&G%tQQOZG~GXP!6bV*A+15}K-_<$VR- z9RPafX-1uWwLBN9Z99fz(=%On-%w+rPC1)sOv+q#YyOZY$a2KE8Sh7%>J}IhL|*$h zmL3G3q;C9h=WT;zZC1YS&w8whB%O%?%Wim|z~~fht$4IWMD*gWsx&nh+Q&_$7iCaN zwjU91Hd(Tm&>c>iuhu0Vq4W8^s|>)-9D>Ik7>EE<2ZjE1rD)DkfKjU!@NYgaR7|Jq zBK&8zH35`T9cgv#ONaBBPPvh+YZfRHFyWj#@w)Fj98ZHL@R*ZJz}1!DIQZ*3gWOqA zj6dB`2RL|?lGQ_91)9#zx4@nK*21ufoOlu_d*5@+ctNl=^hX2l3Y?Y`4vpO^f-6#^ zYuZxwE2piHu~kkJ%y~^LZnOgu_7tg~G{vz~G@XqJK@HuqhctrL)MBqJd^joNgj9V# z<%Y_Q^wcxcoaOzZRe2ML^w#D;f&FftlD;^g+Z+_`o}O6Gg!NW&;UblcR4yw_+otS1 zS-EJ$!@2A(RUPDWfkfVopOIGi_E>TvzT2Qz$e4_!xG+nq*yyLIH5~z0r}?D5RgN%vPMkiXj8nz3SS&VXOVzUn@O$hy4s3 zoQ_KbMb2T-q(#erudh0Q%A7A5HaT^D*!?RqlrgXJ6Ro$cDVdXszwcwbu5NHk1jboI zWPXVnB!WRDJig7TM@C#FU5kpO(z*t2W80dah5=Yiq|OZ4DJ+LM4=356=funr#?B7t6crW4qAJGiAc--v zGcLC&DQgaLws?dzhD5Y(aK9%TeOYFn6o$g5Ya{(t3QRW>)>I=VL4ToN6)D%-SpIvl zdTJ3O;UTF7wp@je=GtYGpH3Ycu%GQ#yxv_aMF2MqAa)*Q)o_kJtVl zAl!vrUmFdE6wAAlu6VMN)W2&uX^C+{!pYY_(K9C9_-0@Gxh2xIATb!YCrq43{#&Q% zOOfuFD@ZjG^s4hiT3F2$L-d;OeuL$4k508Jo!-_&k2h_pq;t2OEi?~gKbyC5sfBZH zDebRIHDx!_BbW#b9k(ZA$72gB-?4mz{_?syUEH!N$1Xst9oLOEl#wcq`Vm1B&QPAO zu7=4>i;q^x6RMN~itkFzO--U;^scUsL;2mGg@?%Gks>()EiVdC-EL%|o;&<1X^ z$LCbATVIZ{m_1URD_`pPx^c=Lyqawo--shGlh9X5)W<4k?A%7rS~0!q96W4ZEA#oX zBK{#rUqfqUAnC#!0xk(&iyuTfjB z05TzH16CnpKFem!*Sa@II=2@9{370F!2#VNwA zXpu1XArq!;cB5ciRy4??wC%E+lBK+Xa+t-l4hh8DUh8&TmAVL{iQYB76f)alkEt2i zcp3N1FRICsm2V2>-_&doKCO*7lW}b3?prXH8}`$+eY@GY*cm%I(u9Drn6JzST~Uz% zjCv1vd}R6qWOA_if!jz>ecBs-B4i>vfd+^AKa)Xn9R=TZ6Ax%z_8bioPNoz4ZA7ab z8>2{}m^|fHVW>;K?yf!`vi)h6^5$yjf8~0j#dT5>h`eOHaK+B8W)!V=9~=6JM^u%H zU#w$>wM2o!ypRn;FPMCM+HgD0^RpTqOiFzY+-V`Z0Jp7JBepFObvGpKZrY2E5W9XE zab(pfB-~J!fYOS4GE8%y^96np#EWE7-yS!Mb6a_ax!mV_PqX2e$Xdy3{aM)&mCN7Gf3?W-bETG~ z5VcdaEc@#v6Bv8xrdTaPE%kak1n9^yv?zn)?m^PI(SAbfZQMOASW8?(P{n$spGeb(9PFN=U-3?#>uNiH(}cODe0{f}GZ&>~rX! zRg3L$4E$c2F+$|=a_&1!=f~^PZ8eAuk~pe_BAw#`nz5Zs@gycX4`0ry!{)o%LZ1cNv_(lGxCe%>7`-V; zoKfua(vF9kbf54n@d7_pDY7`B2JG)#Tg%(wG>gLQMGveGvWqHLe&>PZYz^!4fUDcW zGO-#gvNXe=Z5h?FFQb#FbHwC&76YRg%=wp0Yv=TU(JTG%{06!a=bqt%jP=d_t<@xa zJr-H&c|LWHi3ap*$A^DrH#t=DysJ;T?{eGX@Fl*z2)6qxcM`oDZX2S}=^JGz)^g=* z^{fMVZ@HZxW<)1bV)hBGZu9`c#Jm)o9gX6*(;?nG^ko}toBJ-gAbm2aYX{kI+y~q< zz!c9Ng%fXIWxR z_y#PG?#Ju*_;_AepV-Rqwwu_AtgTx*b(iZCY_iT7Ly`}OF|Ttj9=*s~8WTTcyu>H2 zh>oq^pCUipBPxfD!=-1fvw9 zKj27!SLA%0;rHHmCkdHUq`{j2ANZ0~NRd0yO9Sp%e903f`={mJPW@wW2@uL!@G;; z^{Jlwr4l=-C!KnGal2%hy7UuL`GU`Xo0LWMKvB$RE~6dLh4QD6uL;hx(tyPS_J+CJ z(Fs81LdEUsWr-62X__yp9qspqNa^4Qc+g|rV_}@iobuQv$WgDr`Ue4r`@QyxTv?yb zMrZOtu?PgLsIPgrqhsWylyYM{K&x?ciM*$ze!yk%D9*|8pj%2<{muCahLmGHZupbS zb`l9Bz;fu)kEN0|mZjiVd%@d2)Q`!&GsCffx9ln2>zo8P@8~#gRdeaVtxj$`1;}ra zit~z`GW=*%N5?{K`PslS;JR&0@1?1Xvyl(DrFow>2M~##*Q81ID>cjU)iVc^zv6HaP zubZ1hD#tiZUPjL=} zC@0&Vm>8~5yL13+9FE5*4}O*%Q@c993~yrPZp+S#g;(HHa+tB7NsFAe$V zbpJQmm@hz9hw3O9b>6J@k+^0(w9PvznB)6P^#1vz_!#LghD)YP@p|bI^1IO81C3&k z@J{(8hnTdnW${^FlY}7fqf&}yuS|uZgd{&hzwTwkFHU(89i6BHGS~rv^Uns zC+k3TzuTE?)6~1sBmjdXtWBDm5}=*$&=s_wR25*`M8}u}ZQiQr=Cj zm|yAOa27SynsSzRP9^(Ty@gwLc{?d)Q?Y{l&%W@U_Sk&!ih%SP1=!->aQ}n=68G|= z1R7{!{8$F;Z1X>6>N%_^=&Qo$B(m=yurVq>7a?({}ubP|5xnG&c^gV zK`#>lCnM*7s^%FPm^e88fA0H#P|g1ZRbJ9TKa-Iv^M8_%7@XUNU5HtLVHkqRNhH!) zARwg;XIUWJ&IxpubQ{FYd-CYDtMOW`W_|p<=K0L-o}HTGRa-PpsrSzeFfKqqSA}EC zClL6fp`;W5{Lci?zUD6=>&(SPTOWmch7Zb>12;B~2@?YGV@h-k!sHS#UM!=dpE@BA zAuzuT*Vhlaw}*PPhYSJ)nElUny&Eb|F6iG}fxQNlKLsWqEF>^<=By|WE=OLU(gIC0 zzZ(Yt<|GCX<_~~BiGKqC=@pN>wuJ&D&*stqwm!&|nY97PQgEUlA9d;{!~mhy*~S6U z*woqC*_5%t-6WV(ErO{5aHEfIEcgWJ=6>3%;pBf-NwIm|$ zOINe*S2FkD4DelW^hO%0vVV9D-~ymN00sE&Pb*jt?`&tL#E#H6JdS#F_}zKX8$8nw zSPziZ2{0v~st@teJ8xhZf1C$n1xQ{GzK4pi5`Y7+SGUS97g|r&Ic@=Z`+kX6O|NeXVq^Iz6JN?ru zmFUva^f~CiPapLg7f`{wHuFf2tp3^2(I+N|355+Y_M3ST_=BTw5)Znz{NvXGMORv% z5bv+vzmb^|^e9KTrh#?^*eDO&nXdJ_&gwVO;wO`hivgq<#1-VH!^D72aOdY-&&d2Y zM2BRie&tITG*D*VFKI$xssOEbBqk{gUH{_9_#y(1+Y;j*po>%A$pY}KI>bm-uvWtuI^)<)>jw~fcuR72&7)?CsZ52wQ3ik739tiLaS!l z4noT66?@=e<2S0lz#!}^v|a?Rmyo9M(GDW&>H<!s#22$ zqi67+Q|W1)oNRryE&L{M?z`UixK9+22Y`&CSsCH!kU(pypv>9{(y=WK_Rx?7c%|AW z4vnzKXnCCu@Bom$ZzI4M=hB2^^YcCk1o`azwW^IM(1 z%VP652zh7dEsjE1*Zw5L3(~X`U&Yd<_#mG&m9y5Y&|4caae^MJc@-vVbRV^~FN3O~ z0N{CVNcvEj)9QwuCP6*8HM-{Clfql&cbfn{o#Y*si#D;!F4~zOU6}YO2mH5=pQC?I zsUd;rbR8#p(WJY?=3IfzL_Yv*D7c=&ZHkF?H4r!#9$A> zES0#zmdNf!mDGLX9dMCsTUk! zw`OXdO-uY~u0ZTOAK@cqds@b#_w$(9n_E!BfX4`wX$<-NM;{pjU*1AS%@D{8%KN@` zcM`3M&PPq|8dUe#6_O9cAe-E$%elOi2Q~C)bhwjk4QK#Y!#q7b$}knl6LpS6gszLn z``$stW*E4ODHc}jEo#!IZ2TU0eoVt8_B748a{U-!zS*ef?jr$6Yh-6W+ z46NUJ%6eslzU#f)T&<~8MB>``)WbvXuYkbqgZb?UQJ!61E5J6XJU2&A>BrV`H@fkT zj@GEG*YKDqGvpV2poj4s(r%cJqvCCYTD zvk<&%hJLb7oy~|Z4{DzAcm=bv!Y{*sjP-SF*0b_EAc1&=T7SBZNDYbnkj(27$|I4< zj80oh3o5zSZ4@Ghxn(vuQzhcHkoSq$geX?F#4jCjRhHUTNmZ1fo`U(~^``}J5 z5(3-Qxb8mcf?(U5j7gOmk~|J0vv7f@P!tcQs?cM;ri(^!#$0tm)!Ww=m|5b;WaFpz zL7YH$l%_FmN=#?UDA{v~!Kta1WW04aE|MDO;=VCC$&+(vk?`Egxy0FoS4-;jX$JpcHR4@+|1-dSK}u8DB4kAr#EOny9{Y z>4;&L&ZzFW9sH(u=YZ?(dT)60j8E_AZ{W@8hZvNeVJv)o^845QTLQ_R@zx* z(t|&vr$`lwAY-dFdH#ob5x<8e9pg^R%hcKLUPbJHS$IbPNGIGQKHJ(}{|q`r1o%L4 z)(gb@y<&^pA@hs8GEPrr>X`GrQS1BiOhO@gIqkC2qB9m0FP-1+Qe}u=A@2m8zPQ!p z685kIs6@tRmWyz1`ZM@J0RJ#c>7atz^8&lYjhhNFb%ycP&{Yb{4o!GPAaq_Pq5Qm+ z(qK3JswgZfyo1%*@|*0LSVl$)5A4Hzx?^cHz2S8ehN3{UKi!^>X^@GtqHdg|T^mOe zdK33DOvQDLNb0Svt7Ercw7o7k^45*VQIhA8Y~6=fa>Nt)7XD?kL*D!u#r>4dJH3r= zS0un7n!^xQ20C<94iesA;ft&3C%+5VXXm5U)u`t#w>T!d2amC$5XD&R)8g;Ionupe|24~7$ri>^!Mx6{(9 zQD5A46JZJ4J4=Gst+RT9T4jcI(hz31d~$%Q$ObK;-{?%a)LJ+1$Kn!$j`CKZCQ&x*4tH7V%}NROL$!m( z5uZ%xXS_)~ihWyj`S+#THzpzDgOE~UvyN8)pkWf4gQ#+3h9iJ$%OrBh)%wZt1C|8UyM?roGLmI@uI9!xrxWn*FN?-H@Dk0L zUIlU~%pfB~r5GE#cd}>WS0n$R*3d3JdjvuQf;hILCw!^k6yE}k$9PRYi3OB)F`z8D zjCbi4X3(SrqCM;9mfmQqif&ouKE=y-^$mg2_6DyPpMk{M>0*fX-WR+4`LKftW>TW5 zF?zosK0u;#g7vZ{uk2J8;vp|ODWRaplS=Gs3{9QZjH;@#OeNW$Q+v2u5s>d@>-z!t zy-v!iRJY4y(UNbuEv_0q(b$sro7$K??L&Qrut1cOYXsqXncXb@I&VJVFmI*O;(inx z=|Hcd%7zcI;$>qRH-#X}LtYZ8m<+zKh^jdTWAjGzNVKfAId8jz9K-Fdzusv`0z&01 zCJ$u1T^89gE>ziJAdVxaaxH9i+lZP`CQdyGAimaMSMEzD4=W{ErSyfRe%BT_JGXZ$TBGE;4_*T;=Z=}l?4b_PuZ%y&H zp~P6alor&!J5MAeEuYS>)~l9_*Mz%OuU!nOX6+g|#Wr7oR0#d~&k4f8F=lQCP&Qir zT59_C!r(jJGvg^C%%bBI90KI9=(n}&_&SyA*svPbPb&2XKCEB3P+^&&M>9v zoEI8b(p_^%wVMjN5jFm;E zZl?Vk5M#(P%@gE+L~i)42+LVprg10`=4xlgt07!uj`cuux9uFty}{FK5QETuS>^hk zu^Wm=m*C>jI%_*D!++>T-wodJ!Iepp#KyKMe|B4|rM3smH-aOuo}m>C1;bQ zH~xyeup$-r-)enbSd&V116hc?!Umu1Egm<0LmCPZ8bz?Od5VT{+1x6T%q<&SKjT4C zKkUO)!$yT_dg(v?Bo*tk>%lnpZs2tmMEp{uxvTL1l)D){KJ!-$y1XBR2A+DtTE$X@ zq;wPnyO5;gvO+}t;HcbIqjyGrPle|nK0k$-k5FTdzl{NCUCM#-{X<2%(|Iw*2bicS zW#99sa479LVyo&};DTUWe0Pth&Wgqfox4H3Xz%l#Q>s%>OZED_5o4>#!thlbV_-ctRf9Y_rW_x!< zmhkqtUou9$M=HMM>(ps0eU#h+d`DD_O!M58q!kMI5Cx!62oy=RPZd2M!3gcz5qwc! zbe0Gc)xNYBq;UA!K`u#0PL`_TN4==DmwSf&5e_-oQ-W%IL{2v zUJQ263(fg+&3v60go5y8xlh}dH^9<2`wVIY45%VI9k4G^ir)ZEh5!B>s&3q9lSVNM z1JYi?tM#(&7<+wUE2EJ7l`KljGQX%mK` zvimAtqssQIx3Y5_)YG_XK|Z8p9vR#ujQIX_VTMmJYY{Jvc3tGXV>ktU<{RQBvv0#B zu%JPz47CK@S@p-*eqOO~LE>GG`pPj7{G-7;17?u5q^&;EBV$ao4w%#-JC6u;vP3}F z_k&o_Vu|73WUB)inF`vX`|!xT)2yRm>H~sX!S%(4e3FkiVeCnCOJ>XD)1q52yHZXx zVBbQ~JHnP-Da!|(7*F4!$uvv^($c)lWETy^PN?z>R$~mdH&2$Vz@&Le(;7!3m0P(O zF`+tX^R=M$ul$qNXU152XgL$VM>M2N$5z`VQz9gi#caEQKTwUM{;LvZ76rc4$_vT` z($NQ+Gw2aW*#lj&#XpQ`cdFO{RpKZ8i*SdXq};ko>VsnS-&{$T+!|}LSN{?WYc40{ z39MD})Vq`rN43lL3eUL1#C<&6uS3u-%_S^HX6*Gu{8r>zUr4+PV9DP6friJh9HFP6 z4Msu4OipFg@-Ixv4I*sJ5$mB0L)t?#yE+C%PCy>rCH~W+_Oh_XX;wYmE(S5tu=@&R zc@)WpZoljiyfX}zmHMwx(Pn_VY=qGvAaLw-K_)%dWX9p2EykP7&vrW8^7@|3Ut)|% z<_N9@9~$>xbNyoS=&5Diw->l&iPlPH8SfVU1@pmGPt@!*gTUYIgqElM%JJ92_@)b* z<_N zbEvGVtXZ`Caw|_F0|}#SG^>c?_Rf{wa-r%a>mHlFF{vW?8GUWMu9npmFd+6 zr*F)94`Gs3UC$hIKv4ryb#N9pGVxp&Fgd7wXM)Zo<9uhm^m3KnMIB2JrUEhBIB;jh z6j+;@*zs9pfngfN`d_CEM}6)gA;zX;S=9xR&IOsOZ_ z%zM-{@K_~0%1wKXuB%xkfWR;}V>}M;lzXt^$T7)_12qY)L=~*YC7io13jx*l-Hu6V z0L@$X1b%lKYOV@;CA;sm$V*WoCmmpSGPXS~L$BCo9i3K8o3Yd_`R&x#l=rY;`_lSb zih;-@v)0A6ke-Qd3Go?wGAOk=nB;N~N4^|RGv(bV&TT2!+9DpwR0k;Ds@zwcQuW78 zh(^=|1(p4!f_ehvB)CzHYPm~m+X4uB8p;IU;5N9JW?2TrzhPEmABs{zp}vMSO?Wa6yl=^8oYmZ8U**z7nqvJQuuz!8d9CY$t?FO3SX zg1&&Ud}?_>wI@;cD-k0ecv#cX706LKK3i{Vnr*`IW8AU#|6WcIpkTqIOnoM?N};ZZ z)shl05>BTxE|Lg`zVYTa0}^i7TwN>u^qz>rwtp?%>$vtXFT96n!n=dqnARFxFOqJ0 zsM?ptp{ZG3J^hTMczavDH$dXMc=GUsPRS8Dv=f0hCXZrr;q8#Phs3m1G z>(=u8vh979k#%b!!l~F0MieW($sh>*XEHHuHk#%iBu`uI*|fAX&sKqfVR9S`J~ZhJ zQch+lCDvg);!nu7orbsWosnTdwxLi5B;KR)1CAV$lG4fE@GGoZ&Z$NJDI>s3YH3#a z!{4Qm+qGda_3?q@IM7xrFJm618pNTy-NJ?!Y8_$kS5L)yDHY-QmNl`$7h7><(d1IJ zr6*3vYO;PytvT(Vh z=Hooj^DK$*Q9i9W$X_+PhEz>nsk6EK@sHbY+(_(@K19+0Jr4p;)0^pSQYhcEcrH}&kF~E-|0`SmRBT@)8_qZNA0}H$v}3x zio>V)l%jttDMYd@?|p8}5NO4Y2Y%tDd6)Qygw&J`m*h750HC+okEo zS@I5bJhHrzS=<#LmUo1mupEMP~;eS(w&lOtd*nYx`A z(G6fKmjFV4_q=H^HLvS}K;W$6mHP|sRnj>a=`Q+&gmT8Mfx zo`#;?f?w%onF6MOP1sB5ABYIqw~Bo_=kXmh$TJEruLv>wBp8Mm_1=X*IX0&phKK^9 zeSl16ny?lAhi0%=;eE?~bKb0gc(Ry*5R) ze&oc9F1?a6MWv;X(5+m2Hg4!?(j1R3PI)_9`_kmap)Bmmw^Y{-taoFi<@OBh_VFi0 zF62Rjyy~*~oU)B=v0J=H)m0%U_hi39P^JOph_~E_gQ7twhQQN~dEsIy`^oB#2|U&- zmhAkcmyR_DPOT{y>Q+oS|0O$m)Sag+(?hbZs#km)xsW5dujT@Id%g%e!?u1+cBAgg z+cF~YrKhlW*I}^5NPwd>M;A*kT45#sGK8%TP9sXA&>FN?bX^iZj7q2}7G$@lcKIMP zy|-eVtN0^h+d&h>po$SRcqhcF3V zZA&Zm{GMs8?8mSeB+b(U5txouw7ciuS(DH_Iwe<`z*9zFTVqCi=>p}QO>VJWsTDzF z)j#3{cDCoTre-{{@0^Hj_l^k&M+0PcPWqh6J>Qm{ioL3uHKHSF?)?neZQXU8zn4?f zm_)~Jym7H^VUr3Xc2uP!DrPlxT|vC=T8VXw1QK+l=c0?}ZD+Eu6S9)!F7j=KT*@RC zuFTK7@e|wtFj-Q3%(RnYsM5V1y#{7Jw_RpWPxJwL57q!OEBf>bmsU>WY_#~kT>D{c zL)EAwFPK7d^X=pog~;`hp4B7($i}+H07Al^Q{Zl~IhsU}0Ahla6|pGuZW=SHn`-xA zZ*`^SCPqo947N!_Zt#dkRA2}+7{NLhW#>c5S9v)*fXB9wrMV4@SA#VP$wzwE*VlY9 zJ80KCu_6gm!APu0Coq|M$JDs`O2wRVWXO3}O9&^W3{O@W)F+i_e66UKub|k;ol8pd z3=>^OQ#FWu#DMJfE;qaaQ+>Rvp6;_IV9%Z?U&2XP-{bXC5gE1I%e8F^jLr81$+H~# z!omzc9ZUj(86!<6=wK#pP&lnms-2F1|6(cMDRN>}ks9_;-Y9ZVC1iKV%()(Z-(Hqc zU_Lek%Ot0+8c~yB@mMk>K%#I2b-!n(S$QVS&WJaOe1L&`(L#gODluR)SEO~eE3!|ZmEm}n~wOesh@8DvstqR17 zd??5Lf;IDy*wKf5Y@|3BoFWdPS;v{cp^Lhqf8Wz2>UNTgCPWW)7w6Jo!s++%iUxKK z%zl$q*bs2F)8!N1K<(TOEAg%)=}!M>7X9^Tv=*?*V3R3gRu{0_&W2j)@-pSlu-9dU z2N_A=&v`T(v|xc}Wa1rV**h2Zu*XR{bk!B5sqP*@z~M_&XxQmv{X!53iZ!3!vt-lW z?<9F03>llSqmZ}In-9+2VYuk8#@l+n>!kl);hs)fbZF*QB=1+jxq44sI% zdp~+{JPv!iy9XtT*q(CUco}u}cvohtDulH|Oa(V6FQ`%GO3RsuI=v(tc{!p^;3;*N z?x%;2KI!Fd8zTJ~t_fB~Y>==;>H@Hn4g;@{^YZ;zlc*q@g(WX+aV*?QiMz5nLi#!Z z5;CoDsGbRH9JXcBnL^W8aNz~{21R{7D6KRRcRi+ z3N9;56JO;}f>Q%Cdq6@T9MX$^*6T}$_IG2E34`*-v`!cabdFTeAz@FR1bJb7t2pGx z7g4I!(=8ej5(_&j+uOvno#5x?s;q$`&Boy)M9HoBH{p}*UrQYKpRi_+H9O*gN|N%K zD!_X2e(vC<1ny-IsZ=(^y9-4Mk9D^BGFqp}2yC=_p6dm*E_#w+s;fHRUU80M=6y@ zI_9h&RgUVQ6`$VJNp9}O`;JfWSScFCIm0qt6YBWxO8asQW@bIR`|*bs!sUn<{cOF`0JH=GOw`CIL2r3kw*l6V7 z1K&6W=xnM5fKY^C^=q@P@c!IRtcS83^T|6|CET%c5fCVQUcy+h`|ol2j!U9eS@{CN zw|+o^`h%!;zdh(DCXXF!s3{gEN1r%ffeQfdpA!#@b9ljCVkQ!ngi|?L=9{<|485AP z(h2yj{4B*z%wE=bqlc^@=v&JKUK^AKtCn%QoHAcqC&*lTz|)E6S?qBRFR|=-zI{}) zIbOlLRBBn>Q9I?KJTYk=4?+AHXHEWT=WJXfrv!5Mpbk1#{@hfFSH;$gOYJ_G8nWg2 zu{NGmU6h}dNfDb|^{-(k04qb9!gH_#|6;7am671q_qk~9DlF6p{1z}UpACr((}kJn z#$3+Hse4g=c{C-DLBfGCF=Wj?Y$ZvGtFJtCS7vOlEzZS*`s!`6dWz@3DsA?Tly|*- zZ4J$fLaEPBfUqf!RU=(?Y!4KuUpj-bIqDt{xOM>UlCbYciP{a~EWr2PEJ3Es}`$( z;Yaprfwh|I-Nld2^IlacR!4hxhU=20aV72uSO6m&4tkhF3NpcWijuE|qcTKR7*Q## zD{+B~AT1?nqL@&QuY9>=Ru+tfiB#@I0LmR^WJd-Olt!D-S+9JNunPkwPLxFZ&)0Um zH=tHKP);7+2UaG3y1wCex<_O!u~?uW6>bHiwyIaZuWJ;Va{-v9iXIYFOI{$8WN30M14~j0lR=vAcV3Vs#SyGzm+f%+syxUBH<34#1

&%*e0fFB&Uu~G$Nx}ON zc~Q>RltbOEv>#m;rEM!Uz#sup4M=>5|d#!9YAeI&KG*VN)S$R1(zZLR8M z6X^-hyW|o_uVZmLyWV*QFD^BPk|*d9POuo~gx&4+Z%g|?zea%=Ezm-1!Px*YWrrZD zpNV;sK|yc)@nb62!j8mKv?F^#ur|;PIBmdbKtBR8O5Xag=9t8GHB_dQNvB$Q$K(YZ z^@rBNjSo-fNjgC5Z(9RG`g~;+qAaB;DNl%E!@8R zILIa<@e2-6Lk{x4_7pk(*PbF1$A9B#=;>Mhv$go&(jrz47N-9d^05=lAyZ*N^+> zca#S&@3ULC?$oMhclK25EwCe{I23yYwIXU5fuukYfiyogA|(Y71uU4qxP$-!qo=-} zC2}w3i;JJmI_mGff_n6VUy%8Jygkr*87z5x0+~9@+}tcSL<*STadQ5HBmx8iSOCQj z=--26{|$S;Wb8R%DD&`Pg8QdIP4zr}oQa_%e%q&2DuiGJP(f7GV^ZHTV3s*?94Nq1 z0GT}yIg-pRM8H=tO#?&<62dz@QvNg^NDzEd`gCy;$$@!yO6nOQ6=fiCVMOkLRB>*k z(>Q0~A5AQCC^6#S4Vg$?4D;)V!C%CN!A|6GdmJQjSN9?WahTlf!!QS-1OKBJekx$2 z{0w-cNAR^bcz=+)*+oFXl6=3kPo_^bLX;CXMx22DLZ7{Kev}d5v)BhwplRor5(q#L zNCKS07ifsr5u@>Udq4IG>>Ek2uUuTXrR92n!Evge4g$OYp?8EkMfc>_I?{o@iTGI! z@Wav&k)i|)pxmET?+pqZBmv$x{yV+b%a8#ihT=XMH^J2u6(KSd!oQ zq&s^*l6e0|A+V$$uf1I~o{mOrC;@;@A|82+55LN!ZShw=YerD}a)5l|;3<9zgon%5 z*G(11@vVA{+kU^jK08e7QX`8(6Y8JU89y-=mIgrn#Nt9Ac_cDuP(i{*`uy%{Ao{o6 zkg5H0KJb9ABrAW1Q6SXc^fYgIzv-)Aa#()9NMV$>Tg_5+My~|^IX+{zz%fCDBk-qR znfG1FU+hIcmG{2!pMMC04-c?NOz#gG} zSG!1JM8NS7ANPpVf*co~HcOK|maw{oM+cviW-Cmuwf!W!eD&lC6batN3QO$S4dlvaqvBmy3iDCYiISENQN<);zI{m|lC!CQ$UCuJT zC5qbMAso9jsc4)mY;kZ@1}E5QmU?j|2qJ5f&d0EJz05Y26||EqCjb;1wKG~s7dlk6PG`#EuWa*= zVCQGzTrFE=j_8H4oy6{1GCnp9NHn7J{r8mxdYB(N2h{9AdaE>DcaNX<(`6D%I1eNT z5z0lHzLWqj3#ilD(uRNMO}eyAeDqa$264C%;Pu-*R7}}=Y>mz;3Ot*Hu_ZaKAha-( zn2J(W;X@y9@dy7xP2f?nt?02W&yZ!rg{yX+!1AhEqMRv_@w~7fhm-JTncKCPdeaoR zXT4lNu+9^qg^-N#7z1vDpqNzje1_OwKdCp!N=3 zC_6#P3UOklwc~ihX@U_KTO$l0LB~0l?V>klGEYeJiTKD1_d$|lVB7GI>g*@<7jH`H znw4&L2+e*-Sc9qBJyl^>w5KjSUHRj*&!%akTAThEfxoltJD$_Zc46L@VFIYYJXEH$ zY`5NQ2q=2RIAXgXKw`Xg`m$jAWHH~Q&u&;>sfJCY+E^PlryJ(Lk^di z0;@oGFWJ#Ps$-*ckfs+izC$pg-R}#xoWL_Jw=st?Tnmodu9cmr*E1@otf z$S5iLh`1eZ$#frYQp-iPrBY3o?syToL&{^)!IaD}9*x^EP+TX7r7z&Yg?jFH7wVE- zolA`t#t+ra&tf59%&3J5(ui4W&=QUcC&7UZ2Ve}FFqZ!&3YXc5^ZCmZVsny*uqlVH zs#6}m^gD&dvo=6`uFB8yephrzGW-Vdk5a(F%+Q*Yb%HmA%~F)d6mgq?$^x`PSSmx+ z3^aLA`S+X~D_LyNFb)jWX4{%thbI5$d{)s@XL&ZHAsla7X$w zwQx!LLxbPUE8i$^L&hGVB$X*8OckmW-!*Gs$ExK6TOu|zat zh7Q61wX}<-ZY+n7&Jt1OEOJ}3L`h$XsU{5i()rLJlw{;Xw_&ZxT0{g(NiVo6u4B>V3Opjm zR)*O~z#hFwm=)#eKzxzH&)I#D|5ENX*37`;2F_;kCq+oNs&`aV(L;la4oYiwRz1ou zUH@zF{-Bp!O3&6N$^K^f;M`<*sxZLpzCVuGk7#?AK+OA zp+?$s4usWU`jTUNHh{jLh0^`5hBM(w5+Liks%5%{!fRCxHYp38{9iZ;zW?(lf9q|s zO}q)7?Ri>O`0pQdj6fI~FZDzBOt7c|bB@DJV zmH^V1Rp0Yth>V?*cu%%ZF)QlwfF zH5z@128KmVqq(k8i2f!lsQwaEU;)*`0)drsYV?5%8pm(wW3mKFwc5C_KitX7kf==us^n4jZIh3a6Pt7wu5jLY9^b8YwF)U57rlToE{+OeZjr#p`&)|vO9@CdiNs}q1uk>!@oSn!-0mg1(M zqK`D*Huh&BL}=A{)Nzlx=>i??TL01Of);(qY*!9%4Njz7&C;^~?<857sXjBLN9LOm ztrKxUz7i0Rj60o^CuFmp4(F*`^Q}}R;6NBPLHyI0(di1Cy-B}P+8ok5dg~yjh2s!gWhZCSrBx^(+5I+( z*K0H8Uy&m{_|_fdY_o*n$UwzjmdCb>UkxbCqP-Wbp18xJ!lW$7_cX&S7=Gf?8o=yFok*po@SM{HWJ-pr_*p~7@y`RcW&uqR!9+6+0IO&=aNT+ zSV(aUN4MgmR=1Tmo`kXMi#6yBM65xr)s09A?F`#fahbjY(K& zZS0_^iZI`9TY`7BlXryW`cr?JJ3)|SS`$qUb+$Iv5O;}gHC6fwC(lQa+=yAZgZAc> z1whU)(Rc&7&%B01z1?%6(g{_{EIwn~;_y5Y%^#Y*%`C@MM#77gZ5R~s9gezyr}^iR zX{}95*~gw91Uih@Q5NUdxgV|qh1%wdt};yz#iH4o9{&;XqcBcQx(7r$&dEDwZ#$bK||xiqjiC z#0;VyYdySf)TJ!Wn?~9}df~3FFe?j8Q7Du`i+%I71oCiiwC?AM5C+ALs{lR`p7zx_ z`U+48s=iLSw^{9w*v##I3J?;)>PS#s=5UGz*O2fgiuKj}b^x4IziAk&3RWLyBRaA) z(4Yb66AB@}2J3x>I;Vo~8bnN4FYrrdLfO3Bu`dr&p3Tzptv1$D2wjgn^@Mn2Rql~Wvr zFX?y&FgrI*`{cRA$vRkc(c_Pckz)1j`nmjjNYGO?zK;la49iztoCbq`;%{uwYn!UT zyEI0kYFAu+0E03u%7!UMW}3;im<9QA-~L()XUUzS6*CeeFk9}v=BtD8IMauh z?@T+c`Z{*S#1n?;H5K|?JqML_EObmh%q+8B#+2@*S6^H#=K%Y?M!)T#1{VO|oKCEF zxaciptyD`An=48}0<$ajMscp@75iaUH%!*2Dy|aj+rnJ5$#}RO`3x1+)0O!ObhB+1 z7L1#n0TUNc?L5guj-GnOshlG7fTjf z5@=I9Ek8sjY=g3?u$=1lIL{rTHV+ntuOEW=8pk6Xj>+h%(XRi5Yzfp(?0uu{GA~y_ z8%DQn&{aA0a#?{==(JQA4B=8ub9M|z({73M)uLOZ_X-*Ua?=n#*c(WI%VL6a)6 zGc`5V%TI~r;)wKv02{k9E~>sl{W#ZGMexu(DlPuxS8r7-MxuDh>B`vhqb}woyA0G~ z()*kn-ZeB_tya22o3)Z3qB4TZNJH8L>=_u1X?=R0cFQTuD6`#CDJy{ARVYf3D)c%9 zLv=$UZe{UsJgPdcSO;|s>W&k(Holv7G~+MtY$}1bv5z7-=hfrzX+Ry1ap`E9Je$<; zJkK|wr*U|C68ZFr2#RVz=A!r*wpJRJo>0o;BQo8F=ohu;?yMgDeXKOTW=GO}EZ9jQvquC`q!BG~lFyJV{fWTS<;$TU#?`Xt zTyIx!&BZ{ffIy0mdOgkH`FUT$JG>2_wvHX~jY4~a>-=OaQ&RC0HdQz;@|heJN`!_E z!_(UhPbe+XxVF#=RX9-lSE9Zly6)vJ#OVlpeI+B57%4T19+X_D-LFZn34>Y3t>^sm zif(D)+AEW3brz#7*(?g!w2qR3wG%i|YmO64)jYJ(~2xT7+ZVB`I@YY@47F`1!3r1l*(n<{8<(I!rL7+`CLxpgy`Q~K? zv4y;>)qb19Zho^>sXX%Jf9p?}E4<&5j0 zZ-4G`jc^9_yf^rhRsBvB9(sdYbDTQohscjwby?5W>HaFVN&TS1Q*P~eV(j_o_3iKJ zbyb^L{z%hs5)y#IilUuQvTj$WmqTXDTB7(7JlT2SmSjEkzPRWM&_qq`D6`<@&`IUE z_(r;=Dj+O4NP&5*1BPRIuS0uDyi>2;d()5Us*t+Yic+~ITgkgVjpSF=#Y~ymE|bmd z%+xvsj~3%1QlC8^Uqa~g#v{f3a(2_o-J#pQD_1SzEwDABAci?Ee)WJbvudV8#`FRr zg=}GiHPGpK%yKwBV&|cuv*`WJckOk8jKFFPflRy#kV;C_jS?m1h<(^az-vVSR_-uM zfW&YnHk|+s+)9Z^8pUY)6MlTM#YX8(KM{TIb|Mz+)gAhSh?+XV>2gw?sYpAnFqkjv zGGGT;WG}8@23;$=8io1k@lfp(nn#ID4sVV#Y3$>V#W&t|F-uEaoHH`7VK>0i-J{sm zv2CW{drs}C5(Tx+o8T~xg?sw3x5*0vwrQ~ti#>@rNw?KCayG43S&4Nv+i zHuU4W{3B7%+GJAia6X$`BXsNbbig4C7md*1GE=G-SrfI+F3TB5{%YZ;_`k>3SBRzn z&hkP>+##0=)Z*833{Dl>3!VrcT}Q9q{E|9p>`dU|r4F0cQb!GR=4=Y%K=gj_HS}_O zGLB>)d827swjy0WFQznCbOuREHrilmFHYU6#C%`Vf!DC+r{;~N@Lk&+wg(@cikbr@ zSR5+JjU+66;DDN(dKS=u8<<7$G>0L8b<$N(SWFhiye8r)*L$zhKn z_gSx!pxWyshFpVz+4l9Cb4Z-TSzU>CZ|DnbafS_@SFdSQAx|@$2l>1AZPn5+(Bk7s zLf~mxJ)T*SmSYT&X|A+(9^`C01GV8|}4+mEdoBow%9lkCUU-0@ai(-;EHS zR3=KQUMWi)f+{x;ZV>uuokbtQCozgR5wE`Lf}FCL)v}#+`oI~~W5X4|v4jP9=QZZ` zV#e5yz-^vTZ^{92b6zp~iNodX6rs$q0z~!v23fGeu;JMT`sKaYL4F-r;&ekf)^iRF zVzp9Dq=6cRBr?*e`@5~Ll1^}o&PMjFnR@`Se%2m@cqX*j=EDH<*wOo$LADQaJqOUuH8*av&F; zq4Y&tw)S&JUh2vu2*Yq!v|3(yihrUF|EPFNOqi78nVfM4El(jaMzusX_jd_kL`WNJA9p2#)GqVKVY~H@|@#E+1Qq~!1n}3Dn zUd-&kF^`S55Qpy!vos@}7xLCl4c1RnT+Rr@s`ut&MOJmn_Hq z>9PW3lmNYKt(Xhg^yDxxAq^n0@J$hxm=QzZjF?5AtRD5=;~Vc=ZqhTY<2U|kW6{jX z%ftC-vQN{GQCCZChB^bx%33csEpMbLFm^{)PDC^MMHNItH}6*hvC+JCy*Ec+Gwz+( zSxeTccI7C^W5SQwuKcv5G!qRcL9-{?Ep#@;ozDQ53i$eRm~1N#mCtM?iG`=`&`SrZ zy`FZ~rh-`)rLO51hcS0mT7nv}iP=TqN_)cZoS5ATb_Hmj^5H>?oRq1C@bp_^ux~vu zT^__}b(7|?cV^+sI%a9C-(EV5zIQ!#BIWu25zzfpK+qG|8CpVdbN?rVV<2E)Wn})( ziIISfgPq|&r~eMH(I2HZ36mEgCe2x8_~=LSd4~&GsR>$K)`cb zL`upM1}(xEzhycs;zx=Aa4!#N00ezuJs0tU+Xc9egi91sxcFASU8xGVQ8h|+gB0W5}t4MJcKGe>DdzS>$|5#(M2a5T<7o*z3*!b>i%J_?Mz zm3@GaK1AFm0v!lSDA1NFI7X!vp!2qVINzA2AHo}eA08Y43BU)}cHVp+(g0##&;SC& z!ZK|1T@W!2z>7UP2EUq!RR7{?56a}ojC{f>xW66w zmlH2M1k}yRIpH3l+dE6qULAAWXmzyzA0izc0|+_zZoO~H0R{T8>yA&zACHb1h+=r6 zJvw7}G5%}67{F&oWMILNk2zh8Ta2c9Q|AX1p)*Lz+`~_EkJs`@PA(f67{vM z-<6%Cd%T7b0JIfn^Z&las3&OWxq1Po>j%Dq1$Hm&))xT$b^SvB2Sfs(z&U`d58~)Y zbpJK(V;Q>o?QeUH3;YD4_HTOt2K4Xa_4{q=RKY-ru)qHd`}vFnonDf`=Vdw;b;kH}l$M)!g3ICO03Hfg5+MuV{ntb;2TILyOyCjISZ%<+76F-9| z-Vy@6feyMD;316lGe3dvy05cw3Lw_^6o-GSdj-Aw%>B9S(qRaHyv9CopqkpHUAqSR zZYyU53Jm_yWFb^w0KfH5CtH}NZwfl5>M^6TU===c|XbVC3cl&RI2eo7J`T-8H9q;`OB=FDQ zwR_704skD#Z?l`UTi?xn(R+Ip0t$|KGpKw-<~TG{TzAxOluGa9 z=weDhvGzTq#^! zQP4>(5pj`QFm_w+f2`5Tn-4vsgf+XVwDKO)tTs`ulm&}A`EHf!7S8*Vc)SzP>#+b2 zlfxj#+?{8O(-`8F_($q>TM22PmNA2l;3Gln;+rLix?eU$J7GeeD{qL5MaSU}V>kS) zneP*j))tk3F-dy(UL^ccu;=Gp%VHEk)t|{#9A$Njhgzv5*vqtJc$M*)rZOWD#0=eC z;7Ieas;zV(j3YRk`zh=oh;(AK7hQAKPnP*<9ZNSE+MA7vIu=sunX1RNzP~hS5@_TO zwp5~P)5oHJI zZt{(mftVC}vJMy%i zEe1uaROzY^+)4E0X_$aGR~PNP*%|m;q8M?FEHyN$w7`A0nDB-Xp}TCt(|;tkj8pg< zcBWG2PE(x!s4MkNY03jiNN31)A11k^ii90*7-`X0C3Ty1KgEaEC@ZGU4YTB*cGR%> z>ju+)sqaWvW@_zbn^UttWgf_S%#&z8E|Y$OpSM6nk*I-{tz-NlklFUlLfhT!{ItNj z%~_2DG?l2}GuiN*49Hj=R&4ZNjS28wFGl&PQ4NqCW?#ewH^Igq>VV~^#JIY#eu`*y z6Vl#6z$Zj&MU-T{0A?9)@gh4p5~!>msLkv(`3uhiQwWQjHmMPSC87`+8pXS-%Z2)& zJVFU_Vi(KAVAy(kQ-s7lT-{z0^G>(^5HmM^SLB|Mj0jn-;ovDYbohp;)lTvlkoqD!tpz6{E=B0WwrJ z;EH%+G)dfqwQC~FkOu||89l@+|F=02EEAvJ96i2-SN>B`1}{9r`)fSW*B(p~Mpi3L z#RpQ2ASb)ISu+;+q4(@Ae?q?K$_MgWzSU^B~y(L~){zq>0<3 z?t3(dGb>mU94bbf7d>9Y{{rQCZbPCbPCafs7Fnz#R(5SeZDH1T9KVB#*+-sEJHKJC}oo}DG&sc z$9aDllkt<0&)r`x4M>7KVB4N6yk2MndoY54XMHFn4M)PQNAa9*6`DAUt}k3A{mxA? zEIO%*;sO&Da>?e@4g6I04`}N?)`M&W*-&Vf9*u!h`^0Q{BbE(V`wV!hb=(Hl+tH|s zunX6sS|}-y<`8|O?j0~?N0;QKM@jiHr621*J+Wxhl4hFU8yduQIst!5KOcpt6UKyM za4(yKpSLUU?2=CJoyQcN%>hDy7BBE$pK#}@t5&?afB#6R2-l6kYqPs#fo2`(j+ZNw zE7w%QdLp1Z@MhjkHLC2d(d||4`D@o}pL+KUqVCh2nZ7KK{Ck2h*j!w_?%ft;5{n4= z5x>dUayFld{@h-fTpm+1jV@t`?2&Y1e{TA+A=RP>M&D(8PmPsliF|RlO#c|neD9GU z-8t}5=S@`2WA-Lq67ClXv;Fe$V|7_QXtqfpmPye1_aZy|JxA3tzrj;|paw(yBD;gm zmFun~;rvxaBIANz)IyX&ITDpgI8fP z_@~hUv7(@oacR73HcRjw=F`I&>w$1lGO?;ZI-Avux~P@H{)qK)G;ZsIam|y7^=3n0 zQpTUJ0(9|o*I9-u8RgQUEU3a8XE;PXOf|XU{bReBYrD9bzLMbb=-<4it~k59$HK)u zf8Xzd&|qp+)_N@!|M^wXyXt7uq*Z@{6*b%(*;fMraE#P~{qm2ZZWTxVw~Go1d6OS3 z26b8Zkl>)SAg`HuHPv=U9aHM5zTku7j^Hrl2sE16UwoHp?z3v-nE%J|Po{QzJ39sM z)G`QrYKf+J@^DKVr$w_inwJovVc31b5OC04jXfi3$ZC@*$=Fe|S70owqqznw^=)^ zgF+iPJK^l~JTF#R=n3I-FG(+t8C%JYrlmbSfPD!!&9ntUqt(X02i9RCZk=aZMIY@U z#zx~OOX|{--Whu|WK(4^2Vo-yUtT+hgcDnK80#qCFymp=5Yp0@?gHbsMWm~Rxtm=> zd{s9%2D8~dZq`DVo2CiK`-Hmlg(s28$a|^Vo|r?tCb+EsR2EttxDPfCa&mA{Pxq1{ zCsu(P)(X%t9s?s?mwz{`9A^8TY(%?ziIF>5*?S|=NJqNw));w;f!4;cD1JYJCf(g$ z2E%;4Z$S-VsXZ^vT{{V6QIO~&@RUUM8<=O{D!^EEx=pcw!`9a;~o z$jQlYUWvo@8dq(0nMuQIbWLukdx@Z4{+8k$c1vO1acsH5ybF6~T7Hhbk6YzbbT z$a=>?;M~;G6VDcDIbZg=$b3lq6cwz1(+7J_2XHwFJna0L=pD9PFa@ zT155w6(fY)CuP0o`2Wa|uby$ol0Y2{-%Lno6Mh^fxKJhM+PmtYRB`~T?D{`eqF=_4 zAF9t^#nt^EW9JYh3b16`vTfV8Z5y|2+qP}nyk* z>Nc^Pkwry3+5(VRilWfp+8`eZxlXC5&|U^RAu;h@Zo|hf}30#Y|t)6m-ib;D^dZZYw`7< z!>s}#x#4M`o7xp>B(6k@O6OPiZb`P%;j5YpkFrr+eHd}Jy!SM(7#Y9abp2>yzmpJ5 z;eHrmH*%pls}LQTafAE&mhBNh(0rP^mK919kK3fo6I*GMLrm#`03Is%*g9Ac?bPix z)R>plQMB9YkE_lSYalk8G7qY%g6&k1WU%-?cM80lQ@L>=TYDFhlWg;R#zHc4w<@ZH zt{%g-K00J6`W4Q~4UDaKl^eSx6A@9UGjSJBL+Rm|#%wMfp;AL9E z>uE(KCEsGVHhLo4>PnbI9m*jcr!;IAVgFHYv*-qw4s;dpf_@)W5X&#d#z`HN6xj_v zqHR3AZ9-$(K37|(B{%jE6bBqJI0JDPo|9owZ>Vg}6gaOmE(wXzj}$7+(+0u8B@0gri`&bxMiT;WYiciVw4Sx_FY3ieTPS8Hp~;hTc#0~lO!wIHB!yE(4K({ zGo$rBUzVy!Ib3O}dR@H4S;b2BAQHENDjOu(Yu!y>)^~|>C_8KGZp*rWAbXYaji zxI7EW=;v#ifx_b!=fa8!M?_q3r|gPr>D)UN(1eGVRWYt4rWqh!oN)_ruDxT<+;wZM z>P1k|lp2ocW!-|_zON0DocKcrq2^VuBc^jYljHC8U~D5qj%hL77Ilo3R~D7(M=t6{ zJ39dvjJY7qC6BRSE2BRybA+dPpJ;3H!fZmGyp?0MXEFGRvI|&CuhG1EuLU)HCHOWm zwB^wSm>#f!ny#~<@ol;lm#MyR<7_Rd-G!Avx?nAct+Ml}kEmaFt}GH$DZR|2NGqH2 zd?nkRO2atyq^Vn3R^fiYKmNz`qh8@}vd6GX4b)#T_WNx8N4(3BP*}Q_Cul2vDA#>A z6t3lMU79CUPVf+QSfm6EOI)xKqjts)PTNry?_1Nj51wot1_+7lOZFPrETmA)sn!#d z#3CKL7ot`zxlj}$(B`}$)%WD_Gh^Bh-f9l(MYJoU?SsJkc=;yJdp?&!wvCs?Q^*J^ zYDDOSoQB_yGL5aD1k++9`=t5KrSMu^*n*>&8JVlcE0q6ztT`LoqQWBJ3VJkji76ajtjZs zA1dVP^$v*;HZH#1WcPYAVSCx?(FmQBN(Yw+p%A(6mm%?xsv!N61bHL85xzV-Y>qqL zIy(0Pk3vo1K+#s@vqgnJ7vgn09+PgWiPG(Tal`#KEbc+uWN`4Be;geH2#ALi#1TTI zx6suIckaFOVGJ*l?Q8KqzOoGP6LqKEWB0u1efuA8-Q9%fg5ii=kZ5kAXS&+rui&q@ zW?96IwH4|^ba3dM$@t<2FysR>UOkw6)&#AnDiT?XD5mox5Ks}P+&9D4%FlbDw%TEg@PQ6ngAPhL4} zV+jnQ=B*p4bcxT)_q0-9cjr&Hm}<4Ez*vDe6sehIM~#|ls$;w8@-x9#)dqAt-UzG zCj7b<51;9L6M6rkjIe}u%l%cA>ajEQzCH;p?m7N$;s+X_S=5N3)*W<~WIr^bj&7S4 zAh?+F_z@!=uO$-yJ2$GKq%g0#F(C$}#1?`2ih1twghaW=lHTjcNXNh_FQ;12nNFW$Thh zN|ys5c$nB3UA;URHRsw2OCcn4MNKR*dSd4HT(KH2T`6-v&(7rO21jKy zj4({X@Ru^js8L2LyFgi~#OK-LWU-4q;)mK?&GSn9~;X&MPy?(Eej*v3J zUDC(>S@pcXN`TVg9t0ZH%kJZax&&#^?LE_imiLgGj5U>@%s7HVjOL_ zB>12Ab8Sm=ATrnLuMVioeb(OysT4LF6UVQ59oS>Rt^5=>igtT+d6U15?4f1nt9d#y zja!!4PTmqBu159Pcv4;2R?(X%aux8#xW~n3$sbTOly)Jb^Bvq$SG~fBS|GE#k}=9! zAdIu5K9g+@9>9I0Gnj827x`iC>c)=~bzWs2g06CBJaF9(QPEjPJ=#txd>NP~sKU}N zf&mRbQO70@&He0>!B3D!;O3jkozKtu5$;?K063p!nOI4N@4@7>9L6C}9qT`LH<`y>vj!FYnkH8=!I=XQI>?2>x1jL!=SQrq z09dhf7%Uol+3aX7$oX~KV@+oWLA*r4v({jm-8xF>{(i9#?ofuuIXvTx= zVcb$aA}N~c^mmR~m;Fnah|r{|3ygNC#^horQDUrwGaPHSLX!zZha=puceIG{F!QEy zZzXxAh186tm+ZVW=Ggx3|k8R}x_X|Iy z7|-RgG$!+gI4hN|gXPFSB~5);`)S)tu&9qlytrlD%Tt(uFX4>%@VDE>I;HT)8At2AFZ<%~@HqO{@qU zmjX2?Y)|D_bp=$Cla&E1$a}yt7@y!OSx1>~{W#vi7;A4_kE7A`T=c2e^rvfitu@86 zYLXUMd`G#PD6oW*$JC?rA^s=u*9I#p)MTMRe!gXVRaLimDe|6&I*S`RMds_{rQ>#! zjK9a%IVui4;217_ZV{IM4HA{|TFwjVvk9;l+t!!6PO|klNhx8guc-R{b-;=6fb3ip ztEbF#tLen5Jx_C?hOZfO6Xe8KZrJh+OK1yb0T0R|@434UPJGSi-E5N?0L=wBp+zZc z4SoNK6f`-hLn&6qU1W0+M%4HiKdG0uJW8N*LS-;wrJ>GNgdt(Rov|UfWl;$bO|Dzd zJ6HBV#DF0)0o3g_UpqFc!NyXADFlOwJa9VsdKrreN`S<&W@hp74S{ff)Inf4+ZTG< z2pc6cd$@9RQ6a&dPJ?zgys>SlXYuS6it_D@uY=gU zQM%jl68lyoR!VPH;^$o~Y|rRj@n^-O&;#{}uOU^&NJV zeD{-pwQjCaF}Tn5fRe+7^cr6VAsH+BS<+{-*Xe`IKg;2yw|D3l-TW^Ze<0wGTyxd# zA%@Xd*+yt9XY+%(c4CZ^4p(9DO0G=>cezYu&;q8?W)*C@GiG2FQ89qq7WQq8fN)u=*GY*a+8M_B6YbV{!&7mk@%3;qr516 zw@3C7X^gq-W0~?0+li;m%jHuv&z*nW4e28^X_(3quN>Y8JX|F;{3@94BzWi{P(b1P zk#lVMN8{UoQcGqU_87)0QVl21#31|Tju==f1T5!dPIwlku zRFDD8+TL6I>QuYgS%!<{8X9x9gXrR9ysJD}r^S^Xs~V`Te*8gIQm;p!?R=~?hI$-V zE&UU`+}oyhs50iQsQg`R`U! zoE~3a3o2cLD@cye3MXXtHZWqsO-qy;AV=g%mv10X!uK?pWXS&9YHSqe!I4{zuj^wne7gUWUZSL2*o7|~c?8GF(2qLAv z6I5f$kH1zr@k%-e3#F&2Ojn>Ub{ zqCMq3$>XWd8{0VacL-H+0+b1Z?un1*h#;tHN$w?tFi2z1BYY8MmY074QvOJ|0h^Ux zlb1emg~Gqem1xlPo%4&Dym95kpY#c8;|{RWD8NssDnqVe(>J=Sch9$}&4|nrOm}`S z1M4Vekc+l1_g_&>rMZsCRuUBwcY;PUDjC<|FRycq3<@t7yZG}8Y3t%MR(a_JtvSV2 z_z{dg-yY}Mi8yyk-f=1yP3wB=qHF&!4e=_=+nHrJs-Tub6&c}gHFo*0SMHmq*0fNC zhI~fUH8jU~4XB{^r$+gSl$UC|7Fa@B5&6n%6otJ>_uRn)mjxXbIt+@{B3Rb5?8T?B z_`aO9a2g^-SAw6=e(7TgbQRw8YaB)Y@!LD#SfY6luE6*aCB+U4O(Xs%vIZ^=Z-gMU zbZEozo!qcR1hI}8`wm%TD-yHkpE+LX+h6DOGK-vGZo=y8R-3Z^#iK&zVR4##*zur?+q(7P5i zd(sPv5$rMkCvAi}6aSSOz8%x)HJfv7W@eSvY(U~IwAn2tbJB4SMz1VgO;l*aoW!w+ z2M%I685HZ~TW+$6Egjn=9hp?=ea`Iqh<%l(-P=@kfCy8`pP9iGkbp z$fca!boU89AJ@!pkS&e%5R+UePF+HpTgh!k#?fI9n_9rK;5{`#I6TdEBkZ{T8zrn< zgRgSO^?7}%O2oItppt!h!i_$AkjM*I0{#KhTs=ffVMZRbH+Tpg@)o}d#sY29xvEuwnAPv|JTu%lDYv*+Ll0>@Ed3@8E&DD<5vpifD7h%-zCsFu#k+(*K_ic74Dnv9R za&T@%_m+mH%2d>CeQ~Ik5w~7`#W^*cDL)N%Y0V0b!&Zx-_>fK=HfoQ|&;$Ji!*^REe(3y>5y4iIP6$ z$1^EhGEK^(9GqkB;(EjB{H1F)#bm*Ie zIe~4zc?pxjh4vgW`(d0R&l_|f!Fm)GL4d*Hj!I{H;?1y*T`Cr$sAMODS89|2{+7P? zMP(X0kDVGhP5-YPg2x_cF4X`!>xg`!_2yX7)2OwYopr8UoK}Ps*ClU(EZ&tW{8UV$*hY&8n#uorA2u?JKzOqQ$ zdz&zBj>4JGk1vRQU>ksdg9GEv?hSy4dL1{4G5Ei-u^_vz<_uTRmBF772n4jq`-d8& zEEyTp1Mn~8 z>*&7}Ad0WnMqG$sdzZ$bPl5ed0054-JbjlEejFB&JNgp{F+dTJVNp?0e}Fq9 zfHmwRk~=G4Vtn>HyF)t+9by0fC1n5v(*WW8h5F9mf%uDa$T9pKUje}1zRUJ|)jRxk6&shb9H5bV?c4R>~F(HK^J zjcrROAIpyXqM@K5?ELZb;yL`~wN(%RK!8L64GoF>{eNSN%)q~sM*ZF@2MHnk-}KH4 zXU}hwd4J9QA7}mT0e`qt;eh^XGx$I16=*?4LIlp)_5GT)|GK{aD! z#+zIGum#LBKka@}4GKbp=?#*R5JA;BxwSqL3cO-cya<0z**z1p3wnhX4SbVL;GhU<7`kqy7Z_EHCsL8LBhJqge08-%a<|#N&{(=qT1Ayp5jOsbQxoCaC z79Dm7?chs-Ph!+n!(^Pl4b$#rN-B41^$@9 z$$ZIVIkc5X5<9g`G&m@+?fwPzh{fuLhG5#@MDD`}>(Pwm>@fh)0Ij}~U~ah*#92n#h5BONcK2XDKMef(tu(4z8 z+)D}B)U%W0s;`T zn#{GA2}w2)aA9B8iY4=r=3m2%MO=|%2!$H$ePPHYko&P@)EzI6G%1{coBatnB^ec`yxJ*8wrn1`1gTe~}jm5VvuxOT)V z4sQtSV?SJ+dak4&KWFGZY8(y2T?|_G&}HW{?5Ryj;lb!%9AB&E**w1x^s3QoMmtfa*u8F z9T;mD(t0WN5_e`_jqqZVok)HKXnG35hr|3)?arc6FHa&d^dZQ`GHKHNMOZ+C%YUAy zkA<*VK8CU)s6;`@`r#TD`$FNDNvXRd8t;20eZOZko}@P%$W$3WUyNAN4A3(@i4?jx zd$H~lo!#@MQ-T;MaKCD7Q!-+HviwNNMh(9=aHP#vyJ8flm|oS&OyI|FJCjnr)m0yx z#sW^1;_r9oza&h~qgC>A>G#eXm!%1P#h5%GW}aznj5?`rpSF+|@d|$iUom}2e?BCp zUI?pOdTTZ{ruO=?W)%>ef@)PmV_Nk5L%>~VG<7`D{T}gQQn@E5oa#OPHocUGw}KI> z2=YKAo>2(3Pz(*4dlw>8q}o+E^|o;jms*x&W^$wk#Buuu1pGxr4jy*=P`c=zJ8vc! zVW*Q4a5b{EHwaw?yQpXSH4))FA;j>Kvlh=k(F*4Xi18Oc)di|TXk~?3mairTHpF!^ z#Y7{=dSd1d$?yhmz39PU98->@FoL}!A-9{2lmkr5?s6Cz25{w%XXn(1t=U^G^4W~$ zw&*OEt~A;*ztrXxp7vw55sDk(6Jbn|rHb@}LsGFS)=wRjglp+K=!uL34o0wss_#t8 ztEy_Ui2?LIxF6kv;ZC)z7daNUrg47j_(yZQ>Otuv@2b67_QQAkG!c00M9;G=SI-LB z0J{(dkTWnq%V3*-_`7XKdb|8ma7~eX75;beHT@isFUO7(6FxK+uPu(a!jzGkn3+`t zYPa3um$Tzm@?^?A?yCdcY#3;KyZl98=SyMNl@`bm+lHM{jrIG{g#+lgjD5`+hn(Yx z6}jA`LTJfgh#Rgk|7xb9VUkm5W*FZ!ztcRU4a@DiYDUtA3Pid5relTP*`N;7+VK|$ zvn?&ls2EW=D|tm*km2sytWl{2ysdWv1(ykd=AcZk$Y*8PY*fD5vbDP7ipJLdLMkkQKVLEC z@a*)fm5Ax|@;P(JNdt$yii7PdmP}4QcU%-N}Zz}?g967@~48PxNT<^THs^qHsMUd z(~7Gch_3W%lxA2Z=t*1nY)1sTEXP*p9Bb)gfO-*+HbGtN{8 z;S=95=2ii=58X)}7SPlq`+O2s2f{e5_QRt3kTuNNGBr@_9>#E z_xr?<)d=e?rdi;nb-AeE6iD*OZRK5BOm>jocy;=0Qz$twD&*ro7t=Zr5P!Ks1_pSs z>+qP)`FM+cYw!)UZ@8;JCU0$W_Qv4np`UJZ#_`sfw%o+m$@5~D7B|=aLP&GGRZGUf z$8wx=TpYz`GTdqp06zKvLuDh69z}qT+EYhu$-9Mf(1;9`ylYUVPS)ufRqTCoG0BTK z_KGwa$n3ht`p%X)VRn7ioavw*oEd!im!|a`p8jdYvCU`Ybb$D^c0PKn-^tMwqD?9% zC%3cp&Fw@|?7JEXuU@0*xo`6T>xLGX@Aa!8)A&zJ0MD85cPhW7CNjy zE8FQl;QEr%(@*Y=QuMw6Sel}?uPArNzW(B@D+GvxqdSwVC|F%_(0t|eoOKp(niP)wa*GLTO zk899j0LrsEDDqA;(u*N`b*;-Vr9TOjL=L z_~bmM_d!ky`QcrpF1)N=4Qq^;LgJ?}h=%^7C4WMuzvtkb1b^^%--q`4R-2GSsFDMR zDD~SXl)-}kZwI4KY%WQ>pR_ay*z!_MG3f3Zj`gHGC{$YYnX;`5HA7}Lj{z@&I-Plulzl3hyD2Gj`I`65 zsY~a^Nlo~jM#4nyp|jg}&?!_#meu<1ku>#KDmVUW41V;EiROhyw)b2(_B4iKIzv6U zcL{j=D_-wIy4#99f&7zk^C8gp)X;1#uT3w4E6a-Rh*F+2xMyBP!_Lus2&zro zBluBk?6ybNg0|GRMVIukjww`mDH}DT$cOH-6$JA$E!oZdjH54304#m>4@FRzO}69X z<7|U>gaB=hqYu~BMa_A8p58<{W3PiOD1Pi%O#i=*j@_S98I)zV**t#lTOr;gcddz2 z9`VtjF*;DU&hjQF|6X@{eB_cvg(ZAQEI}+GP zQ9((V{DZm^Hn^h<$z%7(Bw-G2$2;;bCkB2MCG`OVPmOdVk{jDt4O!Rkj=3lZ4yp=C zDnH2haI1C_6*7l^^&Qwvv*@OfzGLHdS2-eG8dR}g((KH}5RBlGdoCSXED3_}p|i%# zk3J`6sIS2!FSGf(mo4DQ4a1+kWNhqaC5QN6h3mg|xpAL4_u zE-vad;^%4K5Tzn*$wrPP0OVU_#!^D5-JEe87c{%GI=YnXZ=CX+nm1Cfi}W~gB_W-{ z_>5xx3Ai1{JD))s3KaU4IS+rV^*k(gfmq+?71fjY)P6}XL9KFFK(Eu{;W-;N;T#7D z=#Z%Q9XD7Gt}#C_Vc2Z10a!oyHm3d-YD*6P>rrf7Mf^gVWYdEu2Rmp#KJ10SpceE!GGDih1JsMyQO%w%lhrb#IyRc+XZ%JjCRctX6un^Q{_Ltl~h!pH`fu zGu;A3B}_u8*_Y-X2;!cdH8f$7;Of{9>m@m4Ry~pq^;zrr>?Sqk6l}dw@duQV&EH)N zH?(5~@iMeKl<3%u)eciTkM(VMGew1_r|p4ONu7VPu$H_NBWr535^Lv;KdC`=i?X4f zzr^np2!=ppFTO8&t4?$BmVJ z^OzP5NC5oin362BS1TJ;HLDj$E+m=Gue#MFiePyb25kj3DKhabEbnhs^}j^^(UGr? z;8Fy3ez<9VXNWC*3^-WI8*QbLpE-F5J#P+VbQ5}fPFx>WDDO-!!>jB`%#4NS!;>Fj zl4A3+ueV;7*7atRk-dDr!r^^;*SVMMwr&+O?-WRciYjOHi}@F*4R-=LOD_9;&LD`D zns6Q|d7iT;e6(_4Th1;tX!$P8`KVQ!SJ;vF4xD=oR^TcIEGhvHC8H)bdEr4N8I?(0 z<>|{5F1m_MEZm?woeKM5T^;vCeu#BEOcD8|;^L;wIC4&o=rM_fpMW=bqldh^h8y!r z^4w_ozOgm9^<-1{Wr<@m`%EflW~m~1c7f!7X5R(i+m>a+YRZ})_rCJ9qrBZNvLT^v z_>-RIpbGv5hNiQGj0u5DdHSh$U&ATH_QCD1dgL_3n+Pc52A`{G3C;&T?I<-BaA;*B zpBGx2$UouT_s?>M5un3Xr?IBh;*h3IM>bl{1j;aI;5IS9R(@_*Rf~C7vNwH^5T@iV z=ZNCa$LKYu`YY`4Q?;J>0_&wI4~ih4@5mlUvtK9SK*BBaHB_xCZwhqd9#~t`KuEY5 zC6yuF$H=mR3k-|I4NcjhiQ-c+hnfWG%GhmBNkwrvgu_~O0`Yg#h@y0&U3#6`L|f@q z&}_c|ZJ^%+@IBy9I*Cvy!y_N=wZR5SBFuK%)PwAH0k z07NEtP#8)3HU0rb6plHsMQ(;s=wW(UjxMtY;ntXZ3sVMj%I9-#RK*z4P0TCzKpsa)kAUBNhbu1!g}Up_^W5EwitHh+SfZVr)gQI_;TQ1jH+8M+ zO;ol`A*H0#+XXO>I?0}bGp|W2nh_^UVhfgs+JDYQsP!h~Wnr||aE0L*r(BMLedg4r zzd$clNj~BmWK_w-fkf;^JaiYALZt^x@lE~>rU2tZ9)61v3{-^`2c@*T?L1v=vw0=O z`A#Q-Sm)hZ z#i`UKg_0c|XpC;3+cnDLIV<9Y$gjDEZ4Y#ET$m3Td_+;?BUp=Vqx0HMY(zR8FXPf? z-yYq#)!Ian&)Vw7l6JIHRkNlwJ zgRj-KPxP4NsLgUvvB+BGUCdo~z0Ro2JgOENQ$5piPr;2V5m#j6TUT_Q=gr81*C+E{9d3D&b?9d*^>4U?wkb)&BP$hjE> zQt-8+SKN+6c&YEh)SMf6%PP;af^9vJklu8wv72dhqoHQ}O6z+4GJPhAHdoDfEJ9JS zVXC$5GY}=+7~+3TCpqs_X6OY!TH-2XUImXbr$h~(L*uqq1G3Z(kD)8+F$7vb~ zyeZcZq_LOXZt*xc^YiJrml0KjH=QzoYuvgV>^S|?zFiTS!GO*yt|?KWMDmftMDjt_xvb@Zg! zeC4ManJGwxaDL8~$U8Y59^LP@l(-FzDNWs)ux01=a;}}Epa;a2(^rU;K^=|#cw^_Z z%NU!49ofwxwy9-XjFN~c`gJIIRZLH=E4vSHBq#`{&IfZ3*o?I6&SNmR(pg~MC?tng4+{3YRkL%Sphs;6>-FQb@aV~mfro#nfpN~CBzvZB??6Z zkhjega+Y6IWk`Oa*N0}d8?|PVd?~bs;|kjO*~h%P0R==74Wdb$D*3tVdajUq_Ay^T zA=h`HPaj9P{gv184o+TesFk{|FT^Txbj;Wqw#FBs86Vtw`a!pJms?N(uXzjIM1?pF z7o9)SzPxEtb-su5t$bc!1=P|9d?bDt?Gp&mo!AUkaPp*RFl>{d_@24 zB@~+iX!DUNuqdmOY780CgR`b5u(Xg3Y%~qZI1mSxOMuZsO%mx)YPFjhi<3=9N9n(` zx~C0`^rDmm5G7O@gIvf~Z1nX&6M^sewhtZf#zw}L*Zq$OM6&@>Ntu@V78YztzKR&) zG$+q$j87`H4nz5n@I?ka^$vpZTKYEc4`Z0vM~4<1>o6&e%bQ90?K2k^s^OvaCR!S& zJH*^Lr9*?v!wTuOj5ywfV;|D~&Xq*TyTiuO`;Zeb%$}n!B6VzW8OIYG$CZl$MAZ}x zhV9`3hEW%J-m%xgcZ^%1oa9mSJTPeKO|bx4$a-kGf=F(ssKo! zP3{?26^V`nu%F70z5*S|h`{OU6uDnowBVG%iIEFbKdJ{~-e!O^sub}yk?JZiLRU3N zB`dSdxtpO)ubh_NX-Az4KSBGG#kDC63gSz3G#xj%r5+2F0ys|+-xnc}TQy28grN?q zKQlQMfPcPoTJ{KeHoB1%l{w%du6GQmE z5#2q9zyJ%CUOTngV*C7v6g|HB&v`}t&?wnvdQE5;87$jHL5>Q8B(4pEzrh20e7Kh~ zQmT71YlTrepSXR3*U85{i?A)OmhqXD`h?OVSxp^=c`A=Bl;nxl)(a*9MCrh#ZL-A3J^G|WL0g^E zn|;fdGc#Jajv_apgtMnoawWe&j4?S0^rb;hhK@eu!6Jf&VH3hDL{3Yrjvy=82v zO#Vyq#(Opsa#Ns>j7?mEb{tm;@Z+o-DdxAcNkXPC5A1uwTh$N$p-WPfwydR<_X{6M z*p>C)=n&TbMu#x7{~tPpm6PE=f|vhGhp=({^TGVT1w}7rVeM?s1cKz3o@hiFFdyt$tPkKrz#k3_c2w!U%5dvG7Xn=! z#~{m(7brM87*OBCL!*B88~_z%3wa+z6!@utL!BeCt_T?gl3|#GaF64QUkZY<{lNYP z3JHmik57OC3VO)BLmM3p_>I861^}4@?dBXd4A2)AhQYsZ&yNgP=^l7W8*z=ljdBF@ z6!;5>wY4V+&c}pE9NLFF1p9SkZ6%^AExhfZr?_09fF!&W+tmtq{c1 zt#Nr0GT1Sk=pmvxx<4}zBshlU8K6TC2O|Iq?5AijQ9Xtb-x7ADfDkTZ@NSMUAQsgK z0EIzc@1a2s58@364MLQ_57s}M9_9dLRgpm@1`1T{h(U$#b6MzJFgIc>F8%$f>Gm83 ze$(%62s03@(+?}i)TGV;PR!k1pjFj(2?9aouRfhU4ggSMT0%l9Xdf?ty&k!Ggx>M= z-Ob&u;2nKBgJ6Cy_XzHu3?{<7BI?_8g%@g;J zUvL2h2-0twz+5$YY`&ilOh4$^Z>i?Mue%yPoUnVr4|iou5R!L(pev!d1`Z7@h~#fS z;vd*xdK}Z>KF;8W%fzz_IFD_|099=~@wQJt8gFMR0AXXRw}U;dI-IYk3r!CW zA{V@Qb~aJyPv2{ojsbch1~qM6DY9`NQ*X5M=}|lVsY_}M>y8&BGA&w`C64d+7Tm7G zV!pusKs=nrdy*+5EhuaDu}5JC?B~e}I42 z+4vg$Twi2oE_0nLwuQFSRGCosWv-@txp+K)CA+U^A~?BV{}2Ue#S1T+RX}!K4VT*o za3ZNpgQO=tYJO3>B0wn&c(@6GB6<*xD_1#}? z>GMLDepxaMYleHC9UwCqcd}g*NX{$SIKME%SW8{y>7U@q(Q8)9kHfL>f`as7Def+J zz7&lz>LB>bWfg27?j+__1>sgzd{Ig?d;$9dFdK{TwVe1@#s;xQzIab@@vSXVr4_Hk zT6=mh21A)XGsvuP=mC`YU!XVBMmczkGw6Y>aUXc<5hKiaC)8jbSY>Yg>YUH?zQYcA zM{);c?Qf_o3^w3q@0KDM>uDET8EJlNyZJ6>i8E&dJk>jMTbN{mjr5y;MNjQDQGyb-+{%{RkR|7x~=efw5vxCmvcuhV;Ug1#;p&rUN)s|yG95-^zIRn zQYLsa?Tej%Ykdisg(4%;hbRrm1l4_XL;972+IL5Ybi>7J4$}8w zA2YrN`pm6d#*+!sBOBiiRqH^0Ru)F}{k+uwtc_ovqMF{I7v5vqCE_T{%bZ!1RHn&^gRt;;akOuWy~G3O zVi2yTLSfR2+KI6~OiiqCcTK3U5N}_#VQHF7T&{AJ-iTa#-i#cjKq@*8UD) zY8MFb9xD)he)8miCn4t@ze!CES9^o9SG!1O?8wRsJ?ml_IUYtHoQ@yYCe;x?JP$)# zr{&(d90Bk7$OqTZyXfULOrKdSsuk)nSmQt2#DU8_F0f6lv(>9m(|kmUU8VA`;HfB5 zOU|U)ponV8=k>}coeqKW!|{tEzuQEVEO%VEcT|sV?RHj!h3agh(NgPab9D$#_tEBG zQk=k3(1P zC?owJ#?Glpv|!D)W!tuG+qUi6W!tvx+GX3eZQHid``(D|=!f&rKOo;$WUkEd%{gx5 zHpq#eLC%18h-lPX&?KvnuOkfi$dk{Ya(C zLjLj6h^O=tgrMb~Z6A+Y^T{EYYMYi@S9b zcRbo3Ze@%@_=GQjuFTML4N|?Dnr}&xXrbyIajGpE=e&0$^0!#+T@ZYG?H{KY3BuXl z0?iV;(M2C`1O<8`8E;EJ`7lk=#dsa-+{Fivac~3L^HLko1947ewd%+_C%^$8*O&njq3-g38W{0 zf?S}h2kCS!DlcYmQZmsMG(RNjrr(}bprD%~7m!5%EsaRAVjQPY-L^>V5UL{F zx)*ZE0_Cfo+qMxQ(MF-twp~(d^bl;%m^BJMV;U9=hJxmwoXghrMMpLdBpKc6o3)tX zB~`e$;g9}vIWj-4BCJh(W^cV*d8^a^QdMwAWNz$J@DliwW*nqVlA=1Bl%dxnk+sZn zbEE&Mg`l;FWWfvC{EwJG%;k6zdbO1ZD$Y1TbvU8Dgh_6!^Rc*k0s97Ecns>c z=Y6y3XvAE4V9_5Y_kej%T}F2pa2Y=Hv`Bk+M7I}Qw&Ek ztx4Yo?lKu8*@c}6iY1Wb7FDhh%4gu8eb!k#aX)D69=k~JcAm)Wy)_+8TX}r43*nD( z)?VA1(kn2m-gtm@HZjPLOuLnah-j|fi*P4{;U-Z2Rm$oP4=2)q_C?tpCrZhyBm}*8 zLD??$Wi@uMb^^#b)yrQe=+)MeAH;rY;vo>dFxMo=P^d?Xu(5s9Ot(CNPW+Bv(E8m>ai-f)LMtYaso>G>U*F`z6

Sygt9XM%5MFWiIc7z!~6{; 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%0DrLP=7_}$^k>bopH@>Zx|jYB6B-5`sxnB{EBEA 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%0AFeAG7D!x~4{79*X321G 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 F>Ztg0A+eHAAXa;3#ApL2a4M17;V=qp@z@ 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[plain] - \frametitle{} - %\frametitle{Outline} - \tableofcontents[currentsection] - \end{frame} -} -% --- end table of contents based on sections --- - -% If you wish to uncover everything in a step-wise fashion, uncomment -% the following command: - -%\beamerdefaultoverlayspecification{<+->} - -\newcommand{\shortinlinecomment}[3]{\note{\textbf{#1}: #2}} -\newcommand{\longinlinecomment}[3]{\shortinlinecomment{#1}{#2}{#3}} - -\definecolor{linkcolor}{rgb}{0,0,0.4} -\hypersetup{ - colorlinks=true, - linkcolor=linkcolor, - urlcolor=linkcolor, - pdfmenubar=true, - pdftoolbar=true, - bookmarksdepth=3 - } -\setlength{\parskip}{0pt} % {1em} - -\newenvironment{doconceexercise}{}{} -\newcounter{doconceexercisecounter} -\newenvironment{doconce:movie}{}{} -\newcounter{doconce:movie:counter} - -\newcommand{\subex}[1]{\noindent\textbf{#1}} % for subexercises: a), b), etc - -\logo{{\tiny \copyright\ 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license}} - -%-------------------- end beamer-specific preamble ---------------------- - -% Add user's preamble - - - - -% insert custom LaTeX commands... - -\raggedbottom -\makeindex - -%-------------------- end preamble ---------------------- - -\begin{document} - -% matching end for #ifdef PREAMBLE - -\newcommand{\exercisesection}[1]{\subsection*{#1}} - - - -% ------------------- main content ---------------------- - - - -% ----------------- title ------------------------- - -\title{Week 41 Neural networks and constructing a neural network code} - -% ----------------- author(s) ------------------------- - -\author{Morten Hjorth-Jensen\inst{1}} -\institute{Department of Physics, University of Oslo\inst{1}} -% ----------------- end author(s) ------------------------- - -\date{Week 41 -% -\ \\ -{\tiny \copyright\ 1999-2024, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license} -} - -\begin{frame}[plain,fragile] -\titlepage -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Material for the lecture on Monday October 7, 2024} - -\begin{enumerate} -\item Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model. - -\item Building our own Feed-forward Neural Network -% * \href{{https://youtu.be/5-RRTO9uDvI}}{Video of lecture notes} -% * \href{{https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2024/NotesOctober7.pdf}}{Whiteboard notes} -\end{enumerate} - -\noindent -\begin{block}{Readings and Videos: } -\begin{enumerate} -\item These lecture notes - -\item Rashcka et al chapter 11 - -\item For neural networks we recommend Goodfellow et al chapter 6. -\begin{enumerate} - - \item Neural Networks demystified at \href{{https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs}}{\nolinkurl{https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs}} - -\end{enumerate} - -\noindent -\item Building Neural Networks from scratch at \href{{https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex}}{\nolinkurl{https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex}} - -\item Video on Neural Networks at \href{{https://www.youtube.com/watch?v=CqOfi41LfDw}}{\nolinkurl{https://www.youtube.com/watch?v=CqOfi41LfDw}} - -\item Video on the back propagation algorithm at \href{{https://www.youtube.com/watch?v=Ilg3gGewQ5U}}{\nolinkurl{https://www.youtube.com/watch?v=Ilg3gGewQ5U}} -\end{enumerate} - -\noindent -We also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at \href{{http://neuralnetworksanddeeplearning.com/chap4.html}}{\nolinkurl{http://neuralnetworksanddeeplearning.com/chap4.html}}. -\end{block} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Material for the active learning sessions on Tuesday and Wednesday} - -\begin{itemize} -\item Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation - -\item One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code - -\item Discussion of project 2 - -\item Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent -\end{itemize} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Introduction to Neural networks} - -Artificial neural networks are computational systems that can learn to -perform tasks by considering examples, generally without being -programmed with any task-specific rules. It is supposed to mimic a -biological system, wherein neurons interact by sending signals in the -form of mathematical functions between layers. All layers can contain -an arbitrary number of neurons, and each connection is represented by -a weight variable. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Artificial neurons} - -The field of artificial neural networks has a long history of -development, and is closely connected with the advancement of computer -science and computers in general. A model of artificial neurons was -first developed by McCulloch and Pitts in 1943 to study signal -processing in the brain and has later been refined by others. The -general idea is to mimic neural networks in the human brain, which is -composed of billions of neurons that communicate with each other by -sending electrical signals. Each neuron accumulates its incoming -signals, which must exceed an activation threshold to yield an -output. If the threshold is not overcome, the neuron remains inactive, -i.e.~has zero output. - -This behaviour has inspired a simple mathematical model for an artificial neuron. - -\begin{equation} - y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) - \label{artificialNeuron} -\end{equation} -Here, the output $y$ of the neuron is the value of its activation function, which have as input -a weighted sum of signals $x_i, \dots ,x_n$ received by $n$ other neurons. - -Conceptually, it is helpful to divide neural networks into four -categories: -\begin{enumerate} -\item general purpose neural networks for supervised learning, - -\item neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs), - -\item neural networks for sequential data such as Recurrent Neural Networks (RNNs), and - -\item neural networks for unsupervised learning such as Deep Boltzmann Machines. -\end{enumerate} - -\noindent -In natural science, DNNs and CNNs have already found numerous -applications. In statistical physics, they have been applied to detect -phase transitions in 2D Ising and Potts models, lattice gauge -theories, and different phases of polymers, or solving the -Navier-Stokes equation in weather forecasting. Deep learning has also -found interesting applications in quantum physics. Various quantum -phase transitions can be detected and studied using DNNs and CNNs, -topological phases, and even non-equilibrium many-body -localization. Representing quantum states as DNNs quantum state -tomography are among some of the impressive achievements to reveal the -potential of DNNs to facilitate the study of quantum systems. - -In quantum information theory, it has been shown that one can perform -gate decompositions with the help of neural. - -The applications are not limited to the natural sciences. There is a -plethora of applications in essentially all disciplines, from the -humanities to life science and medicine. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Neural network types} - -An artificial neural network (ANN), is a computational model that -consists of layers of connected neurons, or nodes or units. We will -refer to these interchangeably as units or nodes, and sometimes as -neurons. - -It is supposed to mimic a biological nervous system by letting each -neuron interact with other neurons by sending signals in the form of -mathematical functions between layers. A wide variety of different -ANNs have been developed, but most of them consist of an input layer, -an output layer and eventual layers in-between, called \emph{hidden -layers}. All layers can contain an arbitrary number of nodes, and each -connection between two nodes is associated with a weight variable. - -Neural networks (also called neural nets) are neural-inspired -nonlinear models for supervised learning. As we will see, neural nets -can be viewed as natural, more powerful extensions of supervised -learning methods such as linear and logistic regression and soft-max -methods we discussed earlier. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Feed-forward neural networks} - -The feed-forward neural network (FFNN) was the first and simplest type -of ANNs that were devised. In this network, the information moves in -only one direction: forward through the layers. - -Nodes are represented by circles, while the arrows display the -connections between the nodes, including the direction of information -flow. Additionally, each arrow corresponds to a weight variable -(figure to come). We observe that each node in a layer is connected -to \emph{all} nodes in the subsequent layer, making this a so-called -\emph{fully-connected} FFNN. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Convolutional Neural Network} - -A different variant of FFNNs are \emph{convolutional neural networks} -(CNNs), which have a connectivity pattern inspired by the animal -visual cortex. Individual neurons in the visual cortex only respond to -stimuli from small sub-regions of the visual field, called a receptive -field. This makes the neurons well-suited to exploit the strong -spatially local correlation present in natural images. The response of -each neuron can be approximated mathematically as a convolution -operation. (figure to come) - -Convolutional neural networks emulate the behaviour of neurons in the -visual cortex by enforcing a \emph{local} connectivity pattern between -nodes of adjacent layers: Each node in a convolutional layer is -connected only to a subset of the nodes in the previous layer, in -contrast to the fully-connected FFNN. Often, CNNs consist of several -convolutional layers that learn local features of the input, with a -fully-connected layer at the end, which gathers all the local data and -produces the outputs. They have wide applications in image and video -recognition. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Recurrent neural networks} - -So far we have only mentioned ANNs where information flows in one -direction: forward. \emph{Recurrent neural networks} on the other hand, -have connections between nodes that form directed \emph{cycles}. This -creates a form of internal memory which are able to capture -information on what has been calculated before; the output is -dependent on the previous computations. Recurrent NNs make use of -sequential information by performing the same task for every element -in a sequence, where each element depends on previous elements. An -example of such information is sentences, making recurrent NNs -especially well-suited for handwriting and speech recognition. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Other types of networks} - -There are many other kinds of ANNs that have been developed. One type -that is specifically designed for interpolation in multidimensional -space is the radial basis function (RBF) network. RBFs are typically -made up of three layers: an input layer, a hidden layer with -non-linear radial symmetric activation functions and a linear output -layer (''linear'' here means that each node in the output layer has a -linear activation function). The layers are normally fully-connected -and there are no cycles, thus RBFs can be viewed as a type of -fully-connected FFNN. They are however usually treated as a separate -type of NN due the unusual activation functions. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Multilayer perceptrons} - -One uses often so-called fully-connected feed-forward neural networks -with three or more layers (an input layer, one or more hidden layers -and an output layer) consisting of neurons that have non-linear -activation functions. - -Such networks are often called \emph{multilayer perceptrons} (MLPs). -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Why multilayer perceptrons?} - -According to the \emph{Universal approximation theorem}, a feed-forward -neural network with just a single hidden layer containing a finite -number of neurons can approximate a continuous multidimensional -function to arbitrary accuracy, assuming the activation function for -the hidden layer is a \textbf{non-constant, bounded and -monotonically-increasing continuous function}. - -Note that the requirements on the activation function only applies to -the hidden layer, the output nodes are always assumed to be linear, so -as to not restrict the range of output values. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Illustration of a single perceptron model and a multi-perceptron model} - -\begin{figure}[!ht] % - \centerline{\includegraphics[width=0.8\linewidth]{figures/nns.png}} - \caption{ - In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer. - } -\end{figure} -%\clearpage % flush figures -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Examples of XOR, OR and AND gates} - -Let us first try to fit various gates using standard linear -regression. The gates we are thinking of are the classical XOR, OR and -AND gates, well-known elements in computer science. The tables here -show how we can set up the inputs $x_1$ and $x_2$ in order to yield a -specific target $y_i$. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\begin{minted}[fontsize=\fontsize{9pt}{9pt},linenos=false,mathescape,baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python} -""" -Simple code that tests XOR, OR and AND gates with linear regression -""" - -import numpy as np -# Design matrix -X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64) -print(f"The X.TX matrix:{X.T @ X}") -Xinv = np.linalg.pinv(X.T @ X) -print(f"The invers of X.TX matrix:{Xinv}") - -# The XOR gate -yXOR = np.array( [ 0, 1 ,1, 0]) -ThetaXOR = Xinv @ X.T @ yXOR -print(f"The values of theta for the XOR gate:{ThetaXOR}") -print(f"The linear regression prediction for the XOR gate:{X @ ThetaXOR}") - - -# The OR gate -yOR = np.array( [ 0, 1 ,1, 1]) -ThetaOR = Xinv @ X.T @ yOR -print(f"The values of theta for the OR gate:{ThetaOR}") -print(f"The linear regression prediction for the OR gate:{X @ ThetaOR}") - - -# The OR gate -yAND = np.array( [ 0, 0 ,0, 1]) -ThetaAND = Xinv @ X.T @ yAND -print(f"The values of theta for the AND gate:{ThetaAND}") -print(f"The linear regression prediction for the AND gate:{X @ ThetaAND}") - -\end{minted} - - -What is happening here? -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Does Logistic Regression do a better Job?} - -\begin{minted}[fontsize=\fontsize{9pt}{9pt},linenos=false,mathescape,baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python} -""" -Simple code that tests XOR and OR gates with linear regression -and logistic regression -""" - -import matplotlib.pyplot as plt -from sklearn.linear_model import LogisticRegression -import numpy as np - -# Design matrix -X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64) -print(f"The X.TX matrix:{X.T @ X}") -Xinv = np.linalg.pinv(X.T @ X) -print(f"The invers of X.TX matrix:{Xinv}") - -# The XOR gate -yXOR = np.array( [ 0, 1 ,1, 0]) -ThetaXOR = Xinv @ X.T @ yXOR -print(f"The values of theta for the XOR gate:{ThetaXOR}") -print(f"The linear regression prediction for the XOR gate:{X @ ThetaXOR}") - - -# The OR gate -yOR = np.array( [ 0, 1 ,1, 1]) -ThetaOR = Xinv @ X.T @ yOR -print(f"The values of theta for the OR gate:{ThetaOR}") -print(f"The linear regression prediction for the OR gate:{X @ ThetaOR}") - - -# The OR gate -yAND = np.array( [ 0, 0 ,0, 1]) -ThetaAND = Xinv @ X.T @ yAND -print(f"The values of theta for the AND gate:{ThetaAND}") -print(f"The linear regression prediction for the AND gate:{X @ ThetaAND}") - -# Now we change to logistic regression - - -# Logistic Regression -logreg = LogisticRegression() -logreg.fit(X, yOR) -print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR))) - -logreg.fit(X, yXOR) -print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR))) - - -logreg.fit(X, yAND) -print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND))) - -\end{minted} - - -Not exactly impressive, but somewhat better. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Adding Neural Networks} - -\begin{minted}[fontsize=\fontsize{9pt}{9pt},linenos=false,mathescape,baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python} - -# and now neural networks with Scikit-Learn and the XOR - -from sklearn.neural_network import MLPClassifier -from sklearn.datasets import make_classification -X, yXOR = make_classification(n_samples=100, random_state=1) -FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR) -FFNN.predict_proba(X) -print(f"Test set accuracy with Feed Forward Neural Network for XOR gate:{FFNN.score(X, yXOR)}") - - -\end{minted} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Mathematics of deep learning} - -\begin{block}{Two recent books online } -\begin{enumerate} -\item \href{{https://arxiv.org/abs/2105.04026}}{The Modern Mathematics of Deep Learning, by Julius Berner, Philipp Grohs, Gitta Kutyniok, Philipp Petersen}, published as \href{{https://doi.org/10.1017/9781009025096.002}}{Mathematical Aspects of Deep Learning, pp. 1-111. Cambridge University Press, 2022} - -\item \href{{https://doi.org/10.48550/arXiv.2310.20360}}{Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory, Arnulf Jentzen, Benno Kuckuck, Philippe von Wurstemberger} -\end{enumerate} - -\noindent -\end{block} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Reminder on books with hands-on material and codes} - -\begin{block}{} -\begin{itemize} -\item \href{{https://sebastianraschka.com/blog/2022/ml-pytorch-book.html}}{Sebastian Rashcka et al, Machine learning with Sickit-Learn and PyTorch} -\end{itemize} - -\noindent -\end{block} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Reading recommendations} - -\begin{enumerate} -\item Rashkca et al., chapter 11, jupyter-notebook sent separately, from \href{{https://github.com/rasbt/machine-learning-book}}{GitHub} - -\item Goodfellow et al, chapter 6 and 7 contain most of the neural network background. -\end{enumerate} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Mathematics of deep learning and neural networks} - -Neural networks, in its so-called feed-forward form, where each -iterations contains a feed-forward stage and a back-propgagation -stage, consist of series of affine matrix-matrix and matrix-vector -multiplications. The unknown parameters (the so-called biases and -weights which deternine the architecture of a neural network), are -uptaded iteratively using the so-called back-propagation algorithm. -This algorithm corresponds to the so-called reverse mode of -automatic differentation. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Basics of an NN} - -A neural network consists of a series of hidden layers, in addition to -the input and output layers. Each layer $l$ has a set of parameters -$\bm{\Theta}^{(l)}=(\bm{W}^{(l)},\bm{b}^{(l)})$ which are related to the -parameters in other layers through a series of affine transformations, -for a standard NN these are matrix-matrix and matrix-vector -multiplications. For all layers we will simply use a collective variable $\bm{\Theta}$. - -It consist of two basic steps: -\begin{enumerate} -\item a feed forward stage which takes a given input and produces a final output which is compared with the target values through our cost/loss function. - -\item a back-propagation state where the unknown parameters $\bm{\Theta}$ are updated through the optimization of the their gradients. The expressions for the gradients are obtained via the chain rule, starting from the derivative of the cost/function. -\end{enumerate} - -\noindent -These two steps make up one iteration. This iterative process is continued till we reach an eventual stopping criterion. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Overarching view of a neural network} - -The architecture of a neural network defines our model. This model -aims at describing some function $f(\bm{x}$ which represents -some final result (outputs or tagrget values) given a specific inpput -$\bm{x}$. Note that here $\bm{y}$ and $\bm{x}$ are not limited to be -vectors. - -The architecture consists of -\begin{enumerate} -\item An input and an output layer where the input layer is defined by the inputs $\bm{x}$. The output layer produces the model ouput $\bm{\tilde{y}}$ which is compared with the target value $\bm{y}$ - -\item A given number of hidden layers and neurons/nodes/units for each layer (this may vary) - -\item A given activation function $\sigma(\bm{z})$ with arguments $\bm{z}$ to be defined below. The activation functions may differ from layer to layer. - -\item The last layer, normally called \textbf{output} layer has normally an activation function tailored to the specific problem - -\item Finally we define a so-called cost or loss function which is used to gauge the quality of our model. -\end{enumerate} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{The optimization problem} - -The cost function is a function of the unknown parameters -$\bm{\Theta}$ where the latter is a container for all possible -parameters needed to define a neural network - -If we are dealing with a regression task a typical cost/loss function -is the mean squared error -\[ -C(\bm{\Theta})=\frac{1}{n}\left\{\left(\bm{y}-\bm{X}\bm{\theta}\right)^T\left(\bm{y}-\bm{X}\bm{\theta}\right)\right\}. -\] -This function represents one of many possible ways to define -the so-called cost function. Note that here we have assumed a linear dependence in terms of the paramters $\bm{\Theta}$. This is in general not the case. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Parameters of neural networks} - -For neural networks the parameters -$\bm{\Theta}$ are given by the so-called weights and biases (to be -defined below). - -The weights are given by matrix elements $w_{ij}^{(l)}$ where the -superscript indicates the layer number. The biases are typically given -by vector elements representing each single node of a given layer, -that is $b_j^{(l)}$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Other ingredients of a neural network} - -Having defined the architecture of a neural network, the optimization -of the cost function with respect to the parameters $\bm{\Theta}$, -involves the calculations of gradients and their optimization. The -gradients represent the derivatives of a multidimensional object and -are often approximated by various gradient methods, including -\begin{enumerate} -\item various quasi-Newton methods, - -\item plain gradient descent (GD) with a constant learning rate $\eta$, - -\item GD with momentum and other approximations to the learning rates such as -\begin{itemize} - - \item Adapative gradient (ADAgrad) - - \item Root mean-square propagation (RMSprop) - - \item Adaptive gradient with momentum (ADAM) and many other - -\end{itemize} - -\noindent -\item Stochastic gradient descent and various families of learning rate approximations -\end{enumerate} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Other parameters} - -In addition to the above, there are often additional hyperparamaters -which are included in the setup of a neural network. These will be -discussed below. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Universal approximation theorem} - -The universal approximation theorem plays a central role in deep -learning. \href{{https://link.springer.com/article/10.1007/BF02551274}}{Cybenko (1989)} showed -the following: - -\begin{block}{} -Let $\sigma$ be any continuous sigmoidal function such that -\[ -\sigma(z) = \left\{\begin{array}{cc} 1 & z\rightarrow \infty\\ 0 & z \rightarrow -\infty \end{array}\right. -\] -Given a continuous and deterministic function $F(\bm{x})$ on the unit -cube in $d$-dimensions $F\in [0,1]^d$, $x\in [0,1]^d$ and a parameter -$\epsilon >0$, there is a one-layer (hidden) neural network -$f(\bm{x};\bm{\Theta})$ with $\bm{\Theta}=(\bm{W},\bm{b})$ and $\bm{W}\in -\mathbb{R}^{m\times n}$ and $\bm{b}\in \mathbb{R}^{n}$, for which -\[ -\vert F(\bm{x})-f(\bm{x};\bm{\Theta})\vert < \epsilon \hspace{0.1cm} \forall \bm{x}\in[0,1]^d. -\] - -\end{block} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Some parallels from real analysis} - -For those of you familiar with for example the \href{{https://en.wikipedia.org/wiki/Stone%E2%80%93Weierstrass_theorem}}{Stone-Weierstrass -theorem} -for polynomial approximations or the convergence criterion for Fourier -series, there are similarities in the derivation of the proof for -neural networks. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{The approximation theorem in words} - -\textbf{Any continuous function $y=F(\bm{x})$ supported on the unit cube in -$d$-dimensions can be approximated by a one-layer sigmoidal network to -arbitrary accuracy.} - -\href{{https://www.sciencedirect.com/science/article/abs/pii/089360809190009T}}{Hornik (1991)} extended the theorem by letting any non-constant, bounded activation function to be included using that the expectation value -\[ -\mathbb{E}[\vert F(\bm{x})\vert^2] =\int_{\bm{x}\in D} \vert F(\bm{x})\vert^2p(\bm{x})d\bm{x} < \infty. -\] -Then we have -\[ -\mathbb{E}[\vert F(\bm{x})-f(\bm{x};\bm{\Theta})\vert^2] =\int_{\bm{x}\in D} \vert F(\bm{x})-f(\bm{x};\bm{\Theta})\vert^2p(\bm{x})d\bm{x} < \epsilon. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{More on the general approximation theorem} - -None of the proofs give any insight into the relation between the -number of of hidden layers and nodes and the approximation error -$\epsilon$, nor the magnitudes of $\bm{W}$ and $\bm{b}$. - -Neural networks (NNs) have what we may call a kind of universality no matter what function we want to compute. - -\begin{block}{} -It does not mean that an NN can be used to exactly compute any function. Rather, we get an approximation that is as good as we want. -\end{block} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Class of functions we can approximate} - -\begin{block}{} -The class of functions that can be approximated are the continuous ones. -If the function $F(\bm{x})$ is discontinuous, it won't in general be possible to approximate it. However, an NN may still give an approximation even if we fail in some points. -\end{block} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Setting up the equations for a neural network} - -The questions we want to ask are how do changes in the biases and the -weights in our network change the cost function and how can we use the -final output to modify the weights and biases? - -To derive these equations let us start with a plain regression problem -and define our cost function as - -\[ -{\cal C}(\bm{\Theta}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2, -\] - -where the $y_i$s are our $n$ targets (the values we want to -reproduce), while the outputs of the network after having propagated -all inputs $\bm{x}$ are given by $\bm{\tilde{y}}_i$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Layout of a neural network with three hidden layers} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/nn1.pdf}} - -\vspace{6mm} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Definitions} - -With our definition of the targets $\bm{y}$, the outputs of the -network $\bm{\tilde{y}}$ and the inputs $\bm{x}$ we -define now the activation $z_j^l$ of node/neuron/unit $j$ of the -$l$-th layer as a function of the bias, the weights which add up from -the previous layer $l-1$ and the forward passes/outputs -$\hat{a}^{l-1}$ from the previous layer as - -\[ -z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, -\] - -where $b_k^l$ are the biases from layer $l$. Here $M_{l-1}$ -represents the total number of nodes/neurons/units of layer $l-1$. The -figure in the whiteboard notes illustrates this equation. We can rewrite this in a more -compact form as the matrix-vector products we discussed earlier, - -\[ -\hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Inputs to the activation function} - -With the activation values $\bm{z}^l$ we can in turn define the -output of layer $l$ as $\bm{a}^l = f(\bm{z}^l)$ where $f$ is our -activation function. In the examples here we will use the sigmoid -function discussed in our logistic regression lectures. We will also use the same activation function $f$ for all layers -and their nodes. It means we have - -\[ -a_j^l = \sigma(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Derivatives and the chain rule} - -From the definition of the activation $z_j^l$ we have -\[ -\frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, -\] -and -\[ -\frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. -\] - -With our definition of the activation function we have that (note that this function depends only on $z_j^l$) -\[ -\frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=\sigma(z_j^l)(1-\sigma(z_j^l)). -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Derivative of the cost function} - -With these definitions we can now compute the derivative of the cost function in terms of the weights. - -Let us specialize to the output layer $l=L$. Our cost function is -\[ -{\cal C}(\bm{\Theta}^L) = \frac{1}{2}\sum_{i=1}^n\left(y_i - \tilde{y}_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - y_i\right)^2, -\] -The derivative of this function with respect to the weights is - -\[ -\frac{\partial{\cal C}(\bm{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, -\] -The last partial derivative can easily be computed and reads (by applying the chain rule) -\[ -\frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Simpler examples first, and automatic differentiation} - -In order to understand the back propagation algorithm and its -derivation (an implementation of the chain rule), let us first digress -with some simple examples. These examples are also meant to motivate -the link with back propagation and \href{{https://en.wikipedia.org/wiki/Automatic_differentiation}}{automatic differentiation}. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Reminder on the chain rule and gradients} - -If we have a multivariate function $f(x,y)$ where $x=x(t)$ and $y=y(t)$ are functions of a variable $t$, we have that the gradient of $f$ with respect to $t$ (without the explicit unit vector components) -\[ -\frac{df}{dt} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial t} \end{bmatrix}=\frac{\partial f}{\partial x} \frac{\partial x}{\partial t} +\frac{\partial f}{\partial y} \frac{\partial y}{\partial t}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Multivariable functions} - -If we have a multivariate function $f(x,y)$ where $x=x(t,s)$ and $y=y(t,s)$ are functions of the variables $t$ and $s$, we have that the partial derivatives -\[ -\frac{\partial f}{\partial s}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial s}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial s}, -\] -and -\[ -\frac{\partial f}{\partial t}=\frac{\partial f}{\partial x}\frac{\partial x}{\partial t}+\frac{\partial f}{\partial y}\frac{\partial y}{\partial t}. -\] - -the gradient of $f$ with respect to $t$ and $s$ (without the explicit unit vector components) -\[ -\frac{df}{d(s,t)} = \begin{bmatrix}\frac{\partial f}{\partial x} & \frac{\partial f}{\partial y} \end{bmatrix} \begin{bmatrix}\frac{\partial x}{\partial s} &\frac{\partial x}{\partial t} \\ \frac{\partial y}{\partial s} & \frac{\partial y}{\partial t} \end{bmatrix}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Automatic differentiation through examples} - -A great introduction to automatic differentiation is given by Baydin et al., see \href{{https://arxiv.org/abs/1502.05767}}{\nolinkurl{https://arxiv.org/abs/1502.05767}}. - -Automatic differentiation is a represented by a repeated application -of the chain rule on well-known functions and allows for the -calculation of derivatives to numerical precision. It is not the same -as the calculation of symbolic derivatives via for example SymPy, nor -does it use approximative formulae based on Taylor-expansions of a -function around a given value. The latter are error prone due to -truncation errors and values of the step size $\Delta$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Simple example} - -Our first example is rather simple, -\[ -f(x) =\exp{x^2}, -\] -with derivative -\[ -f'(x) =2x\exp{x^2}. -\] -We can use SymPy to extract the pertinent lines of Python code through the following simple example - - - - - - - - - -\begin{minted}[fontsize=\fontsize{9pt}{9pt},linenos=false,mathescape,baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python} -from __future__ import division -from sympy import * -x = symbols('x') -expr = exp(x*x) -simplify(expr) -derivative = diff(expr,x) -print(python(expr)) -print(python(derivative)) - -\end{minted} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Smarter way of evaluating the above function} - -If we study this function, we note that we can reduce the number of operations by introducing an intermediate variable -\[ -a = x^2, -\] -leading to -\[ -f(x) = f(a(x)) = b= \exp{a}. -\] - -We now assume that all operations can be counted in terms of equal -floating point operations. This means that in order to calculate -$f(x)$ we need first to square $x$ and then compute the exponential. We -have thus two floating point operations only. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Reducing the number of operations} - -With the introduction of a precalculated quantity $a$ and thereby $f(x)$ we have that the derivative can be written as - -\[ -f'(x) = 2xb, -\] - -which reduces the number of operations from four in the orginal -expression to two. This means that if we need to compute $f(x)$ and -its derivative (a common task in optimizations), we have reduced the -number of operations from six to four in total. - -\textbf{Note} that the usage of a symbolic software like SymPy does not -include such simplifications and the calculations of the function and -the derivatives yield in general more floating point operations. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Chain rule, forward and reverse modes} - -In the above example we have introduced the variables $a$ and $b$, and our function is -\[ -f(x) = f(a(x)) = b= \exp{a}, -\] -with $a=x^2$. We can decompose the derivative of $f$ with respect to $x$ as -\[ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}. -\] - -We note that since $b=f(x)$ that -\[ -\frac{df}{db}=1, -\] -leading to -\[ -\frac{df}{dx}=\frac{db}{da}\frac{da}{dx}=2x\exp{x^2}, -\] -as before. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Forward and reverse modes} - -We have that -\[ -\frac{df}{dx}=\frac{df}{db}\frac{db}{da}\frac{da}{dx}, -\] -which we can rewrite either as -\[ -\frac{df}{dx}=\left[\frac{df}{db}\frac{db}{da}\right]\frac{da}{dx}, -\] -or -\[ -\frac{df}{dx}=\frac{df}{db}\left[\frac{db}{da}\frac{da}{dx}\right]. -\] - -The first expression is called reverse mode (or back propagation) -since we start by evaluating the derivatives at the end point and then -propagate backwards. This is the standard way of evaluating -derivatives (gradients) when optimizing the parameters of a neural -network. In the context of deep learning this is computationally -more efficient since the output of a neural network consists of either -one or some few other output variables. - -The second equation defines the so-called \textbf{forward mode}. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{More complicated function} - -We increase our ambitions and introduce a slightly more complicated function -\[ -f(x) =\sqrt{x^2+exp{x^2}}, -\] -with derivative -\[ -f'(x) =\frac{x(1+\exp{x^2})}{\sqrt{x^2+exp{x^2}}}. -\] -The corresponding SymPy code reads - - - - - - - - - -\begin{minted}[fontsize=\fontsize{9pt}{9pt},linenos=false,mathescape,baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python} -from __future__ import division -from sympy import * -x = symbols('x') -expr = sqrt(x*x+exp(x*x)) -simplify(expr) -derivative = diff(expr,x) -print(python(expr)) -print(python(derivative)) - -\end{minted} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Counting the number of floating point operations} - -A simple count of operations shows that we need five operations for -the function itself and ten for the derivative. Fifteen operations in total if we wish to proceed with the above codes. - -Can we reduce this to -say half the number of operations? -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Defining intermediate operations} - -We can indeed reduce the number of operation to half of those listed in the brute force approach above. -We define the following quantities -\[ -a = x^2, -\] -and -\[ -b = \exp{x^2} = \exp{a}, -\] -and -\[ -c= a+b, -\] -and -\[ -d=f(x)=\sqrt{c}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{New expression for the derivative} - -With these definitions we obtain the following partial derivatives -\[ -\frac{\partial a}{\partial x} = 2x, -\] -and -\[ -\frac{\partial b}{\partial a} = \exp{a}, -\] -and -\[ -\frac{\partial c}{\partial a} = 1, -\] -and -\[ -\frac{\partial c}{\partial b} = 1, -\] -and -\[ -\frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -\] -and finally -\[ -\frac{\partial f}{\partial d} = 1. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Final derivatives} - -Our final derivatives are thus -\[ -\frac{\partial f}{\partial c} = \frac{\partial f}{\partial d} \frac{\partial d}{\partial c} = \frac{1}{2\sqrt{c}}, -\] -\[ -\frac{\partial f}{\partial b} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial b} = \frac{1}{2\sqrt{c}}, -\] -\[ -\frac{\partial f}{\partial a} = \frac{\partial f}{\partial c} \frac{\partial c}{\partial a}+ -\frac{\partial f}{\partial b} \frac{\partial b}{\partial a} = \frac{1+\exp{a}}{2\sqrt{c}}, -\] -and finally -\[ -\frac{\partial f}{\partial x} = \frac{\partial f}{\partial a} \frac{\partial a}{\partial x} = \frac{x(1+\exp{a})}{\sqrt{c}}, -\] -which is just -\[ -\frac{\partial f}{\partial x} = \frac{x(1+b)}{d}, -\] -and requires only three operations if we can reuse all intermediate variables. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{In general not this simple} - -In general, see the generalization below, unless we can obtain simple -analytical expressions which we can simplify further, the final -implementation of automatic differentiation involves repeated -calculations (and thereby operations) of derivatives of elementary -functions. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Automatic differentiation} - -We can make this example more formal. Automatic differentiation is a -formalization of the previous example (see graph). - -We define $\bm{x}\in x_1,\dots, x_l$ input variables to a given function $f(\bm{x})$ and $x_{l+1},\dots, x_L$ intermediate variables. - -In the above example we have only one input variable, $l=1$ and four intermediate variables, that is -\[ -\begin{bmatrix} x_1=x & x_2 = x^2=a & x_3 =\exp{a}= b & x_4=c=a+b & x_5 = \sqrt{c}=d \end{bmatrix}. -\] - -Furthemore, for $i=l+1, \dots, L$ (here $i=2,3,4,5$ and $f=x_L=d$), we -define the elementary functions $g_i(x_{Pa(x_i)})$ where $x_{Pa(x_i)}$ are the parent nodes of the variable $x_i$. - -In our case, we have for example for $x_3=g_3(x_{Pa(x_i)})=\exp{a}$, that $g_3=\exp{()}$ and $x_{Pa(x_3)}=a$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Chain rule} - -We can now compute the gradients by back-propagating the derivatives using the chain rule. -We have defined -\[ -\frac{\partial f}{\partial x_L} = 1, -\] -which allows us to find the derivatives of the various variables $x_i$ as -\[ -\frac{\partial f}{\partial x_i} = \sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial x_j}{\partial x_i}=\sum_{x_j:x_i\in Pa(x_j)}\frac{\partial f}{\partial x_j} \frac{\partial g_j}{\partial x_i}. -\] - -Whenever we have a function which can be expressed as a computation -graph and the various functions can be expressed in terms of -elementary functions that are differentiable, then automatic -differentiation works. The functions may not need to be elementary -functions, they could also be computer programs, although not all -programs can be automatically differentiated. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{First network example, simple percepetron with one input} - -As yet another example we define now a simple perceptron model with -all quantities given by scalars. We consider only one input variable -$x$ and one target value $y$. We define an activation function -$\sigma_1$ which takes as input - -\[ -z_1 = w_1x+b_1, -\] -where $w_1$ is the weight and $b_1$ is the bias. These are the -parameters we want to optimize. The output is $a_1=\sigma(z_1)$ (see -graph from whiteboard notes). This output is then fed into the -\textbf{cost/loss} function, which we here for the sake of simplicity just -define as the squared error - -\[ -C(x;w_1,b_1)=\frac{1}{2}(a_1-y)^2. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Layout of a simple neural network with no hidden layer} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/simplenn1.png}} - -\vspace{6mm} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Optimizing the parameters} - -In setting up the feed forward and back propagation parts of the -algorithm, we need now the derivative of the various variables we want -to train. - -We need -\[ -\frac{\partial C}{\partial w_1} \hspace{0.1cm}\mathrm{and}\hspace{0.1cm}\frac{\partial C}{\partial b_1}. -\] - -Using the chain rule we find -\[ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_1-y)\sigma_1'x, -\] -and -\[ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_1-y)\sigma_1', -\] -which we later will just define as -\[ -\frac{\partial C}{\partial a_1}\frac{\partial a_1}{\partial z_1}=\delta_1. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Adding a hidden layer} - -We change our simple model to (see graph) -a network with just one hidden layer but with scalar variables only. - -Our output variable changes to $a_2$ and $a_1$ is now the output from the hidden node and $a_0=x$. -We have then -\[ -z_1 = w_1a_0+b_1 \hspace{0.1cm} \wedge a_1 = \sigma_1(z_1), -\] -\[ -z_2 = w_2a_1+b_2 \hspace{0.1cm} \wedge a_2 = \sigma_2(z_2), -\] -and the cost function -\[ -C(x;\bm{\Theta})=\frac{1}{2}(a_2-y)^2, -\] -with $\bm{\Theta}=[w_1,w_2,b_1,b_2]$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Layout of a simple neural network with one hidden layer} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/simplenn2.png}} - -\vspace{6mm} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{The derivatives} - -The derivatives are now, using the chain rule again - -\[ -\frac{\partial C}{\partial w_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial w_2}=(a_2-y)\sigma_2'a_1=\delta_2a_1, -\] -\[ -\frac{\partial C}{\partial b_2}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial b_2}=(a_2-y)\sigma_2'=\delta_2, -\] -\[ -\frac{\partial C}{\partial w_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial w_1}=(a_2-y)\sigma_2'a_1\sigma_1'a_0, -\] -\[ -\frac{\partial C}{\partial b_1}=\frac{\partial C}{\partial a_2}\frac{\partial a_2}{\partial z_2}\frac{\partial z_2}{\partial a_1}\frac{\partial a_1}{\partial z_1}\frac{\partial z_1}{\partial b_1}=(a_2-y)\sigma_2'\sigma_1'=\delta_1. -\] - -Can you generalize this to more than one hidden layer? -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Important observations} - -\begin{block}{} -From the above equations we see that the derivatives of the activation -functions play a central role. If they vanish, the training may -stop. This is called the vanishing gradient problem, see discussions below. If they become -large, the parameters $w_i$ and $b_i$ may simply go to infinity. This -is referenced as the exploding gradient problem. -\end{block} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{The training} - -The training of the parameters is done through various gradient descent approximations with - -\[ -w_{i}\leftarrow w_{i}- \eta \delta_i a_{i-1}, -\] -and -\[ -b_i \leftarrow b_i-\eta \delta_i, -\] -with $\eta$ is the learning rate. - -One iteration consists of one feed forward step and one back-propagation step. Each back-propagation step does one update of the parameters $\bm{\Theta}$. - -For the first hidden layer $a_{i-1}=a_0=x$ for this simple model. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Code example} - -The code here implements the above model with one hidden layer and -scalar variables for the same function we studied in the previous -example. The code is however set up so that we can add multiple -inputs $x$ and target values $y$. Note also that we have the -possibility of defining a feature matrix $\bm{X}$ with more than just -one column for the input values. This will turn useful in our next example. We have also defined matrices and vectors for all of our operations although it is not necessary here. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\begin{minted}[fontsize=\fontsize{9pt}{9pt},linenos=false,mathescape,baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python} -import numpy as np -# We use the Sigmoid function as activation function -def sigmoid(z): - return 1.0/(1.0+np.exp(-z)) - -def forwardpropagation(x): - # weighted sum of inputs to the hidden layer - z_1 = np.matmul(x, w_1) + b_1 - # activation in the hidden layer - a_1 = sigmoid(z_1) - # weighted sum of inputs to the output layer - z_2 = np.matmul(a_1, w_2) + b_2 - a_2 = z_2 - return a_1, a_2 - -def backpropagation(x, y): - a_1, a_2 = forwardpropagation(x) - # parameter delta for the output layer, note that a_2=z_2 and its derivative wrt z_2 is just 1 - delta_2 = a_2 - y - print(0.5*((a_2-y)**2)) - # delta for the hidden layer - delta_1 = np.matmul(delta_2, w_2.T) * a_1 * (1 - a_1) - # gradients for the output layer - output_weights_gradient = np.matmul(a_1.T, delta_2) - output_bias_gradient = np.sum(delta_2, axis=0) - # gradient for the hidden layer - hidden_weights_gradient = np.matmul(x.T, delta_1) - hidden_bias_gradient = np.sum(delta_1, axis=0) - return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient - - -# ensure the same random numbers appear every time -np.random.seed(0) -# Input variable -x = np.array([4.0],dtype=np.float64) -# Target values -y = 2*x+1.0 - -# Defining the neural network, only scalars here -n_inputs = x.shape -n_features = 1 -n_hidden_neurons = 1 -n_outputs = 1 - -# Initialize the network -# weights and bias in the hidden layer -w_1 = np.random.randn(n_features, n_hidden_neurons) -b_1 = np.zeros(n_hidden_neurons) + 0.01 - -# weights and bias in the output layer -w_2 = np.random.randn(n_hidden_neurons, n_outputs) -b_2 = np.zeros(n_outputs) + 0.01 - -eta = 0.1 -for i in range(50): - # calculate gradients - derivW2, derivB2, derivW1, derivB1 = backpropagation(x, y) - # update weights and biases - w_2 -= eta * derivW2 - b_2 -= eta * derivB2 - w_1 -= eta * derivW1 - b_1 -= eta * derivB1 - - - -\end{minted} - - -We see that after some few iterations (the results do depend on the learning rate however), we get an error which is rather small. -\end{frame} - -\begin{frame}[plain,fragile] -% No title on this slide - -% --- begin exercise --- -\begin{doconceexercise} -\refstepcounter{doconceexercisecounter} - -\exercisesection{Exercise \thedoconceexercisecounter: Including more data} - - -Try to increase the amount of input and -target/output data. Try also to perform calculations for more values -of the learning rates. Feel free to add either hyperparameters with an -$l_1$ norm or an $l_2$ norm and discuss your results. -Discuss your results as functions of the amount of training data and various learning rates. - -\textbf{Challenge:} Try to change the activation functions and replace the hard-coded analytical expressions with automatic derivation via either \textbf{autograd} or \textbf{JAX}. - -\end{doconceexercise} -% --- end exercise --- -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Simple neural network and the back propagation equations} - -Let us now try to increase our level of ambition and attempt at setting -up the equations for a neural network with two input nodes, one hidden -layer with two hidden nodes and one output layer with one output node/neuron only (see graph).. - -We need to define the following parameters and variables with the input layer (layer $(0)$) -where we label the nodes $x_0$ and $x_1$ -\[ -x_0 = a_0^{(0)} \wedge x_1 = a_1^{(0)}. -\] - -The hidden layer (layer $(1)$) has nodes which yield the outputs $a_0^{(1)}$ and $a_1^{(1)}$) with weight $\bm{w}$ and bias $\bm{b}$ parameters -\[ -w_{ij}^{(1)}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)}\right\} \wedge b^{(1)}=\left\{b_0^{(1)},b_1^{(1)}\right\}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Layout of a simple neural network with two input nodes, one hidden layer and one output node} - -\vspace{6mm} - -% inline figure -\centerline{\includegraphics[width=1.0\linewidth]{figures/simplenn3.png}} - -\vspace{6mm} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{The ouput layer} - -Finally, we have the ouput layer given by layer label $(2)$ with output $a^{(2)}$ and weights and biases to be determined given by the variables -\[ -w_{i}^{(2)}=\left\{w_{0}^{(2)},w_{1}^{(2)}\right\} \wedge b^{(2)}. -\] - -Our output is $\tilde{y}=a^{(2)}$ and we define a generic cost function $C(a^{(2)},y;\bm{\Theta})$ where $y$ is the target value (a scalar here). -The parameters we need to optimize are given by -\[ -\bm{\Theta}=\left\{w_{00}^{(1)},w_{01}^{(1)},w_{10}^{(1)},w_{11}^{(1)},w_{0}^{(2)},w_{1}^{(2)},b_0^{(1)},b_1^{(1)},b^{(2)}\right\}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Compact expressions} - -We can define the inputs to the activation functions for the various layers in terms of various matrix-vector multiplications and vector additions. -The inputs to the first hidden layer are -\[ -\begin{bmatrix}z_0^{(1)} \\ z_1^{(1)} \end{bmatrix}=\begin{bmatrix}w_{00}^{(1)} & w_{01}^{(1)}\\ w_{10}^{(1)} &w_{11}^{(1)} \end{bmatrix}\begin{bmatrix}a_0^{(0)} \\ a_1^{(0)} \end{bmatrix}+\begin{bmatrix}b_0^{(1)} \\ b_1^{(1)} \end{bmatrix}, -\] -with outputs -\[ -\begin{bmatrix}a_0^{(1)} \\ a_1^{(1)} \end{bmatrix}=\begin{bmatrix}\sigma^{(1)}(z_0^{(1)}) \\ \sigma^{(1)}(z_1^{(1)}) \end{bmatrix}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Output layer} - -For the final output layer we have the inputs to the final activation function -\[ -z^{(2)} = w_{0}^{(2)}a_0^{(1)} +w_{1}^{(2)}a_1^{(1)}+b^{(2)}, -\] -resulting in the output -\[ -a^{(2)}=\sigma^{(2)}(z^{(2)}). -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Explicit derivatives} - -In total we have nine parameters which we need to train. Using the -chain rule (or just the back-propagation algorithm) we can find all -derivatives. Since we will use automatic differentiation in reverse -mode, we start with the derivatives of the cost function with respect -to the parameters of the output layer, namely - -\[ -\frac{\partial C}{\partial w_{i}^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial w_{i}^{(2)}}=\delta^{(2)}a_i^{(1)}, -\] -with -\[ -\delta^{(2)}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\] -and finally -\[ -\frac{\partial C}{\partial b^{(2)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}}\frac{\partial z^{(2)}}{\partial b^{(2)}}=\delta^{(2)}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Derivatives of the hidden layer} - -Using the chain rule we have the following expressions for say one of the weight parameters (it is easy to generalize to the other weight parameters) -\[ -\frac{\partial C}{\partial w_{00}^{(1)}}=\frac{\partial C}{\partial a^{(2)}}\frac{\partial a^{(2)}}{\partial z^{(2)}} -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}= \delta^{(2)}\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}, -\] -which, noting that -\[ -z^{(2)} =w_0^{(2)}a_0^{(1)}+w_1^{(2)}a_1^{(1)}+b^{(2)}, -\] -allows us to rewrite -\[ -\frac{\partial z^{(2)}}{\partial z_0^{(1)}}\frac{\partial z_0^{(1)}}{\partial w_{00}^{(1)}}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}a_0^{(1)}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Final expression} - -Defining -\[ -\delta_0^{(1)}=w_0^{(2)}\frac{\partial a_0^{(1)}}{\partial z_0^{(1)}}\delta^{(2)}, -\] -we have -\[ -\frac{\partial C}{\partial w_{00}^{(1)}}=\delta_0^{(1)}a_0^{(1)}. -\] -Similarly, we obtain -\[ -\frac{\partial C}{\partial w_{01}^{(1)}}=\delta_0^{(1)}a_1^{(1)}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Completing the list} - -Similarly, we find -\[ -\frac{\partial C}{\partial w_{10}^{(1)}}=\delta_1^{(1)}a_0^{(1)}, -\] -and -\[ -\frac{\partial C}{\partial w_{11}^{(1)}}=\delta_1^{(1)}a_1^{(1)}, -\] -where we have defined -\[ -\delta_1^{(1)}=w_1^{(2)}\frac{\partial a_1^{(1)}}{\partial z_1^{(1)}}\delta^{(2)}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Final expressions for the biases of the hidden layer} - -For the sake of completeness, we list the derivatives of the biases, which are -\[ -\frac{\partial C}{\partial b_{0}^{(1)}}=\delta_0^{(1)}, -\] -and -\[ -\frac{\partial C}{\partial b_{1}^{(1)}}=\delta_1^{(1)}. -\] -As we will see below, these expressions can be generalized in a more compact form. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Gradient expressions} - -For this specific model, with just one output node and two hidden -nodes, the gradient descent equations take the following form for output layer -\[ -w_{i}^{(2)}\leftarrow w_{i}^{(2)}- \eta \delta^{(2)} a_{i}^{(1)}, -\] -and -\[ -b^{(2)} \leftarrow b^{(2)}-\eta \delta^{(2)}, -\] -and -\[ -w_{ij}^{(1)}\leftarrow w_{ij}^{(1)}- \eta \delta_{i}^{(1)} a_{j}^{(0)}, -\] -and -\[ -b_{i}^{(1)} \leftarrow b_{i}^{(1)}-\eta \delta_{i}^{(1)}, -\] -where $\eta$ is the learning rate. -\end{frame} - -\begin{frame}[plain,fragile] -% No title on this slide - -% --- begin exercise --- -\begin{doconceexercise} -\refstepcounter{doconceexercisecounter} - -\exercisesection{Exercise \thedoconceexercisecounter: Extended program} - - -We extend our simple code to a function which depends on two variable $x_0$ and $x_1$, that is -\[ -y=f(x_0,x_1)=x_0^2+3x_0x_1+x_1^2+5. -\] -We feed our network with $n=100$ entries $x_0$ and $x_1$. We have thus two features represented by these variable and an input matrix/design matrix $\bm{X}\in \mathbf{R}^{n\times 2}$ -\[ -\bm{X}=\begin{bmatrix} x_{00} & x_{01} \\ x_{00} & x_{01} \\ x_{10} & x_{11} \\ x_{20} & x_{21} \\ \dots & \dots \\ \dots & \dots \\ x_{n-20} & x_{n-21} \\ x_{n-10} & x_{n-11} \end{bmatrix}. -\] -Write a code, based on the previous code examples, which takes as input these data and fit the above function. -You can extend your code to include automatic differentiation. - -With these examples, we are now ready to embark upon the writing of more a general code for neural networks. - -\end{doconceexercise} -% --- end exercise --- -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Getting serious, the back propagation equations for a neural network} - -Now it is time to move away from one node in each layer only. Our inputs are also represented either by several inputs. - -We have thus -\[ -\frac{\partial{\cal C}((\bm{\Theta}^L)}{\partial w_{jk}^L} = \left(a_j^L - y_j\right)a_j^L(1-a_j^L)a_k^{L-1}, -\] - -Defining -\[ -\delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - y_j\right) = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\] -and using the Hadamard product of two vectors we can write this as -\[ -\bm{\delta}^L = \sigma'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\bm{a}^L)}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Analyzing the last results} - -This is an important expression. The second term on the right handside -measures how fast the cost function is changing as a function of the $j$th -output activation. If, for example, the cost function doesn't depend -much on a particular output node $j$, then $\delta_j^L$ will be small, -which is what we would expect. The first term on the right, measures -how fast the activation function $f$ is changing at a given activation -value $z_j^L$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{More considerations} - -Notice that everything in the above equations is easily computed. In -particular, we compute $z_j^L$ while computing the behaviour of the -network, and it is only a small additional overhead to compute -$\sigma'(z^L_j)$. The exact form of the derivative with respect to the -output depends on the form of the cost function. -However, provided the cost function is known there should be little -trouble in calculating - -\[ -\frac{\partial {\cal C}}{\partial (a_j^L)} -\] - -With the definition of $\delta_j^L$ we have a more compact definition of the derivative of the cost function in terms of the weights, namely -\[ -\frac{\partial{\cal C}}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Derivatives in terms of $z_j^L$} - -It is also easy to see that our previous equation can be written as - -\[ -\delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, -\] -which can also be interpreted as the partial derivative of the cost function with respect to the biases $b_j^L$, namely -\[ -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, -\] -That is, the error $\delta_j^L$ is exactly equal to the rate of change of the cost function as a function of the bias. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Bringing it together} - -We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are - -\begin{equation} -\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, -\end{equation} -and -\begin{equation} -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, -\end{equation} -and - -\begin{equation} -\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, -\end{equation} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Final back propagating equation} - -We have that (replacing $L$ with a general layer $l$) -\[ -\delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. -\] -We want to express this in terms of the equations for layer $l+1$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Using the chain rule and summing over all $k$ entries} - -We obtain -\[ -\delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, -\] -and recalling that -\[ -z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, -\] -with $M_l$ being the number of nodes in layer $l$, we obtain -\[ -\delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l), -\] -This is our final equation. - -We are now ready to set up the algorithm for back propagation and learning the weights and biases. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Setting up the back propagation algorithm} - -The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm. - -\textbf{First}, we set up the input data $\hat{x}$ and the activations -$\hat{z}_1$ of the input layer and compute the activation function and -the pertinent outputs $\hat{a}^1$. - -\textbf{Secondly}, we perform then the feed forward till we reach the output -layer and compute all $\hat{z}_l$ of the input layer and compute the -activation function and the pertinent outputs $\hat{a}^l$ for -$l=1,2,3,\dots,L$. - -\textbf{Notation}: The first hidden layer has $l=1$ as label and the final output layer has $l=L$. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Setting up the back propagation algorithm, part 2} - -Thereafter we compute the ouput error $\hat{\delta}^L$ by computing all -\[ -\delta_j^L = \sigma'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. -\] - -Then we compute the back propagate error for each $l=L-1,L-2,\dots,1$ as -\[ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}\sigma'(z_j^l). -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Setting up the Back propagation algorithm, part 3} - -Finally, we update the weights and the biases using gradient descent -for each $l=L-1,L-2,\dots,1$ and update the weights and biases -according to the rules - -\[ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -\] - -\[ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -\] -with $\eta$ being the learning rate. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Updating the gradients} - -With the back propagate error for each $l=L-1,L-2,\dots,1$ as -\[ -\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}sigma'(z_j^l), -\] -we update the weights and the biases using gradient descent for each $l=L-1,L-2,\dots,1$ and update the weights and biases according to the rules -\[ -w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, -\] - -\[ -b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, -\] -\end{frame} - -\begin{frame}[plain,fragile] -% No title on this slide - -\noindent\textbf{Activation functions.} -A property that characterizes a neural network, other than its -connectivity, is the choice of activation function(s). As described -in, the following restrictions are imposed on an activation function -for a FFNN to fulfill the universal approximation theorem - -\begin{itemize} - \item Non-constant - - \item Bounded - - \item Monotonically-increasing - - \item Continuous -\end{itemize} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -% No title on this slide - -\noindent\textbf{Activation functions, Logistic and Hyperbolic ones.} -The second requirement excludes all linear functions. Furthermore, in -a MLP with only linear activation functions, each layer simply -performs a linear transformation of its inputs. - -Regardless of the number of layers, the output of the NN will be -nothing but a linear function of the inputs. Thus we need to introduce -some kind of non-linearity to the NN to be able to fit non-linear -functions Typical examples are the logistic \emph{Sigmoid} - -\[ - f(x) = \frac{1}{1 + e^{-x}}, -\] -and the \emph{hyperbolic tangent} function -\[ - f(x) = \tanh(x) -\] -\end{frame} - -\begin{frame}[plain,fragile] -% No title on this slide - -\noindent\textbf{Relevance.} -The \emph{sigmoid} function are more biologically plausible because the -output of inactive neurons are zero. Such activation function are -called \emph{one-sided}. However, it has been shown that the hyperbolic -tangent performs better than the sigmoid for training MLPs. has -become the most popular for \emph{deep neural networks} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\begin{minted}[fontsize=\fontsize{9pt}{9pt},linenos=false,mathescape,baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python} -"""The sigmoid function (or the logistic curve) is a -function that takes any real number, z, and outputs a number (0,1). -It is useful in neural networks for assigning weights on a relative scale. -The value z is the weighted sum of parameters involved in the learning algorithm.""" - -import numpy -import matplotlib.pyplot as plt -import math as mt - -z = numpy.arange(-5, 5, .1) -sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z))) -sigma = sigma_fn(z) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, sigma) -ax.set_ylim([-0.1, 1.1]) -ax.set_xlim([-5,5]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('sigmoid function') - -plt.show() - -"""Step Function""" -z = numpy.arange(-5, 5, .02) -step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0) -step = step_fn(z) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, step) -ax.set_ylim([-0.5, 1.5]) -ax.set_xlim([-5,5]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('step function') - -plt.show() - -"""Sine Function""" -z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1) -t = numpy.sin(z) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, t) -ax.set_ylim([-1.0, 1.0]) -ax.set_xlim([-2*mt.pi,2*mt.pi]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('sine function') - -plt.show() - -"""Plots a graph of the squashing function used by a rectified linear -unit""" -z = numpy.arange(-2, 2, .1) -zero = numpy.zeros(len(z)) -y = numpy.max([zero, z], axis=0) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.plot(z, y) -ax.set_ylim([-2.0, 2.0]) -ax.set_xlim([-2.0, 2.0]) -ax.grid(True) -ax.set_xlabel('z') -ax.set_title('Rectified linear unit') - -plt.show() - -\end{minted} -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Fine-tuning neural network hyperparameters} - -The flexibility of neural networks is also one of their main -drawbacks: there are many hyperparameters to tweak. Not only can you -use any imaginable network topology (how neurons/nodes are -interconnected), but even in a simple FFNN you can change the number -of layers, the number of neurons per layer, the type of activation -function to use in each layer, the weight initialization logic, the -stochastic gradient optmized and much more. How do you know what -combination of hyperparameters is the best for your task? - -\begin{itemize} -\item You can use grid search with cross-validation to find the right hyperparameters. -\end{itemize} - -\noindent -However,since there are many hyperparameters to tune, and since -training a neural network on a large dataset takes a lot of time, you -will only be able to explore a tiny part of the hyperparameter space. - -\begin{itemize} -\item You can use randomized search. - -\item Or use tools like \href{{http://oscar.calldesk.ai/}}{Oscar}, which implements more complex algorithms to help you find a good set of hyperparameters quickly. -\end{itemize} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Hidden layers} - -For many problems you can start with just one or two hidden layers and -it will work just fine. For the MNIST data set you ca easily get a -high accuracy using just one hidden layer with a few hundred neurons. -You can reach for this data set above 98\% accuracy using two hidden -layers with the same total amount of neurons, in roughly the same -amount of training time. - -For more complex problems, you can gradually ramp up the number of -hidden layers, until you start overfitting the training set. Very -complex tasks, such as large image classification or speech -recognition, typically require networks with dozens of layers and they -need a huge amount of training data. However, you will rarely have to -train such networks from scratch: it is much more common to reuse -parts of a pretrained state-of-the-art network that performs a similar -task. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Vanishing gradients} - -The Back propagation algorithm we derived above works by going from -the output layer to the input layer, propagating the error gradient on -the way. Once the algorithm has computed the gradient of the cost -function with regards to each parameter in the network, it uses these -gradients to update each parameter with a Gradient Descent (GD) step. - -Unfortunately for us, the gradients often get smaller and smaller as -the algorithm progresses down to the first hidden layers. As a result, -the GD update leaves the lower layer connection weights virtually -unchanged, and training never converges to a good solution. This is -known in the literature as \textbf{the vanishing gradients problem}. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Exploding gradients} - -In other cases, the opposite can happen, namely the the gradients can -grow bigger and bigger. The result is that many of the layers get -large updates of the weights the algorithm diverges. This is the -\textbf{exploding gradients problem}, which is mostly encountered in -recurrent neural networks. More generally, deep neural networks suffer -from unstable gradients, different layers may learn at widely -different speeds -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Is the Logistic activation function (Sigmoid) our choice?} - -Although this unfortunate behavior has been empirically observed for -quite a while (it was one of the reasons why deep neural networks were -mostly abandoned for a long time), it is only around 2010 that -significant progress was made in understanding it. - -A paper titled \href{{http://proceedings.mlr.press/v9/glorot10a.html}}{Understanding the Difficulty of Training Deep -Feedforward Neural Networks by Xavier Glorot and Yoshua Bengio} found that -the problems with the popular logistic -sigmoid activation function and the weight initialization technique -that was most popular at the time, namely random initialization using -a normal distribution with a mean of 0 and a standard deviation of -1. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Logistic function as the root of problems} - -They showed that with this activation function and this -initialization scheme, the variance of the outputs of each layer is -much greater than the variance of its inputs. Going forward in the -network, the variance keeps increasing after each layer until the -activation function saturates at the top layers. This is actually made -worse by the fact that the logistic function has a mean of 0.5, not 0 -(the hyperbolic tangent function has a mean of 0 and behaves slightly -better than the logistic function in deep networks). -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{The derivative of the Logistic funtion} - -Looking at the logistic activation function, when inputs become large -(negative or positive), the function saturates at 0 or 1, with a -derivative extremely close to 0. Thus when backpropagation kicks in, -it has virtually no gradient to propagate back through the network, -and what little gradient exists keeps getting diluted as -backpropagation progresses down through the top layers, so there is -really nothing left for the lower layers. - -In their paper, Glorot and Bengio propose a way to significantly -alleviate this problem. We need the signal to flow properly in both -directions: in the forward direction when making predictions, and in -the reverse direction when backpropagating gradients. We don’t want -the signal to die out, nor do we want it to explode and saturate. For -the signal to flow properly, the authors argue that we need the -variance of the outputs of each layer to be equal to the variance of -its inputs, and we also need the gradients to have equal variance -before and after flowing through a layer in the reverse direction. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Insights from the paper by Glorot and Bengio} - -One of the insights in the 2010 paper by Glorot and Bengio was that -the vanishing/exploding gradients problems were in part due to a poor -choice of activation function. Until then most people had assumed that -if Nature had chosen to use roughly sigmoid activation functions in -biological neurons, they must be an excellent choice. But it turns out -that other activation functions behave much better in deep neural -networks, in particular the ReLU activation function, mostly because -it does not saturate for positive values (and also because it is quite -fast to compute). -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{The RELU function family} - -The ReLU activation function suffers from a problem known as the dying -ReLUs: during training, some neurons effectively die, meaning they -stop outputting anything other than 0. - -In some cases, you may find that half of your network’s neurons are -dead, especially if you used a large learning rate. During training, -if a neuron’s weights get updated such that the weighted sum of the -neuron’s inputs is negative, it will start outputting 0. When this -happen, the neuron is unlikely to come back to life since the gradient -of the ReLU function is 0 when its input is negative. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{ELU function} - -To solve this problem, nowadays practitioners use a variant of the -ReLU function, such as the leaky ReLU discussed above or the so-called -exponential linear unit (ELU) function - -\[ -ELU(z) = \left\{\begin{array}{cc} \alpha\left( \exp{(z)}-1\right) & z < 0,\\ z & z \ge 0.\end{array}\right. -\] -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Which activation function should we use?} - -In general it seems that the ELU activation function is better than -the leaky ReLU function (and its variants), which is better than -ReLU. ReLU performs better than $\tanh$ which in turn performs better -than the logistic function. - -If runtime performance is an issue, then you may opt for the leaky -ReLU function over the ELU function If you don’t want to tweak yet -another hyperparameter, you may just use the default $\alpha$ of -$0.01$ for the leaky ReLU, and $1$ for ELU. If you have spare time and -computing power, you can use cross-validation or bootstrap to evaluate -other activation functions. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{More on activation functions, output layers} - -In most cases you can use the ReLU activation function in the hidden -layers (or one of its variants). - -It is a bit faster to compute than other activation functions, and the -gradient descent optimization does in general not get stuck. - -\textbf{For the output layer:} - -\begin{itemize} -\item For classification the softmax activation function is generally a good choice for classification tasks (when the classes are mutually exclusive). - -\item For regression tasks, you can simply use no activation function at all. -\end{itemize} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Batch Normalization} - -Batch Normalization aims to address the vanishing/exploding gradients -problems, and more generally the problem that the distribution of each -layer’s inputs changes during training, as the parameters of the -previous layers change. - -The technique consists of adding an operation in the model just before -the activation function of each layer, simply zero-centering and -normalizing the inputs, then scaling and shifting the result using two -new parameters per layer (one for scaling, the other for shifting). In -other words, this operation lets the model learn the optimal scale and -mean of the inputs for each layer. In order to zero-center and -normalize the inputs, the algorithm needs to estimate the inputs’ mean -and standard deviation. It does so by evaluating the mean and standard -deviation of the inputs over the current mini-batch, from this the -name batch normalization. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Dropout} - -It is a fairly simple algorithm: at every training step, every neuron -(including the input neurons but excluding the output neurons) has a -probability $p$ of being temporarily dropped out, meaning it will be -entirely ignored during this training step, but it may be active -during the next step. - -The hyperparameter $p$ is called the dropout rate, and it is typically -set to 50\%. After training, the neurons are not dropped anymore. It -is viewed as one of the most popular regularization techniques. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Gradient Clipping} - -A popular technique to lessen the exploding gradients problem is to -simply clip the gradients during backpropagation so that they never -exceed some threshold (this is mostly useful for recurrent neural -networks). - -This technique is called Gradient Clipping. - -In general however, Batch -Normalization is preferred. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{A top-down perspective on Neural networks} - -The first thing we would like to do is divide the data into two or -three parts. A training set, a validation or dev (development) set, -and a test set. The test set is the data on which we want to make -predictions. The dev set is a subset of the training data we use to -check how well we are doing out-of-sample, after training the model on -the training dataset. We use the validation error as a proxy for the -test error in order to make tweaks to our model. It is crucial that we -do not use any of the test data to train the algorithm. This is a -cardinal sin in ML. Then: - -\begin{enumerate} -\item Estimate optimal error rate - -\item Minimize underfitting (bias) on training data set. - -\item Make sure you are not overfitting. -\end{enumerate} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{More top-down perspectives} - -If the validation and test sets are drawn from the same distributions, -then a good performance on the validation set should lead to similarly -good performance on the test set. - -However, sometimes -the training data and test data differ in subtle ways because, for -example, they are collected using slightly different methods, or -because it is cheaper to collect data in one way versus another. In -this case, there can be a mismatch between the training and test -data. This can lead to the neural network overfitting these small -differences between the test and training sets, and a poor performance -on the test set despite having a good performance on the validation -set. To rectify this, Andrew Ng suggests making two validation or dev -sets, one constructed from the training data and one constructed from -the test data. The difference between the performance of the algorithm -on these two validation sets quantifies the train-test mismatch. This -can serve as another important diagnostic when using DNNs for -supervised learning. -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Limitations of supervised learning with deep networks} - -Like all statistical methods, supervised learning using neural -networks has important limitations. This is especially important when -one seeks to apply these methods, especially to physics problems. Like -all tools, DNNs are not a universal solution. Often, the same or -better performance on a task can be achieved by using a few -hand-engineered features (or even a collection of random -features). -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Limitations of NNs} - -Here we list some of the important limitations of supervised neural network based models. - -\begin{itemize} -\item \textbf{Need labeled data}. All supervised learning methods, DNNs for supervised learning require labeled data. Often, labeled data is harder to acquire than unlabeled data (e.g.~one must pay for human experts to label images). - -\item \textbf{Supervised neural networks are extremely data intensive.} DNNs are data hungry. They perform best when data is plentiful. This is doubly so for supervised methods where the data must also be labeled. The utility of DNNs is extremely limited if data is hard to acquire or the datasets are small (hundreds to a few thousand samples). In this case, the performance of other methods that utilize hand-engineered features can exceed that of DNNs. -\end{itemize} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{Homogeneous data} - -\begin{itemize} -\item \textbf{Homogeneous data.} Almost all DNNs deal with homogeneous data of one type. It is very hard to design architectures that mix and match data types (i.e.~some continuous variables, some discrete variables, some time series). In applications beyond images, video, and language, this is often what is required. In contrast, ensemble models like random forests or gradient-boosted trees have no difficulty handling mixed data types. -\end{itemize} - -\noindent -\end{frame} - -\begin{frame}[plain,fragile] -\frametitle{More limitations} - -\begin{itemize} -\item \textbf{Many problems are not about prediction.} In natural science we are often interested in learning something about the underlying distribution that generates the data. In this case, it is often difficult to cast these ideas in a supervised learning setting. While the problems are related, it is possible to make good predictions with a \emph{wrong} model. The model might or might not be useful for understanding the underlying science. -\end{itemize} - -\noindent -Some of these remarks are particular to DNNs, others are shared by all supervised learning methods. This motivates the use of unsupervised methods which in part circumvent these problems. -\end{frame} - -\end{document}

3>{z0}T~C1iQUIVSymXYIYVmVIToXke!EemC2pC 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 z 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