From 47207413b8ca15351e82d055bf94f4b423c35642 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Tue, 7 Dec 2021 23:45:36 +0100 Subject: [PATCH] update --- doc/LectureNotes/DataFiles/cancer.dot | 57 + doc/LectureNotes/DataFiles/moons.dot | 45 + .../Results/FigureFiles/EoSfitting.png | Bin 19175 -> 19248 bytes .../Results/FigureFiles/Masses2016.png | Bin 17747 -> 17356 bytes .../Results/FigureFiles/Masses2016OLS.png | Bin 17804 -> 17795 bytes .../Results/FigureFiles/Masses2016Trees.png | Bin 21975 -> 21697 bytes .../_build/.doctrees/chapter1.doctree | Bin 0 -> 883315 bytes .../_build/.doctrees/chapter10.doctree | Bin 0 -> 433265 bytes .../_build/.doctrees/chapter11.doctree | Bin 0 -> 295262 bytes .../_build/.doctrees/chapter2.doctree | Bin 0 -> 454162 bytes .../_build/.doctrees/chapter3.doctree | Bin 0 -> 1149006 bytes .../_build/.doctrees/chapter4.doctree | Bin 0 -> 624096 bytes .../_build/.doctrees/chapter5.doctree | Bin 0 -> 378549 bytes .../_build/.doctrees/chapter6.doctree | Bin 0 -> 241414 bytes .../_build/.doctrees/chapter7.doctree | Bin 0 -> 148833 bytes .../_build/.doctrees/chapter8.doctree | Bin 0 -> 198340 bytes .../_build/.doctrees/chapter9.doctree | Bin 0 -> 198592 bytes .../.doctrees/chapteroptimization.doctree | Bin 0 -> 579631 bytes .../_build/.doctrees/intro.doctree | Bin 0 -> 48430 bytes .../_build/.doctrees/linalg.doctree | Bin 0 -> 130318 bytes .../_build/.doctrees/schedule.doctree | Bin 0 -> 83864 bytes .../_build/.doctrees/statistics.doctree | Bin 0 -> 306676 bytes .../_build/.doctrees/teachers.doctree | Bin 0 -> 12501 bytes .../_build/.doctrees/textbooks.doctree | Bin 0 -> 27672 bytes .../_build/jupyter_execute/chapter1.ipynb | 224 +- .../_build/jupyter_execute/chapter1.py | 2506 +++++++++ .../_build/jupyter_execute/chapter10.ipynb | 3537 ++++++++++++ .../_build/jupyter_execute/chapter10.py | 1656 ++++++ .../_build/jupyter_execute/chapter10_33_1.png | Bin 0 -> 2976 bytes .../_build/jupyter_execute/chapter10_49_1.png | Bin 0 -> 22294 bytes .../_build/jupyter_execute/chapter10_49_2.png | Bin 0 -> 28628 bytes .../_build/jupyter_execute/chapter10_53_0.png | Bin 0 -> 26114 bytes .../_build/jupyter_execute/chapter10_53_1.png | Bin 0 -> 28453 bytes .../_build/jupyter_execute/chapter11.ipynb | 3108 +++++++++++ .../_build/jupyter_execute/chapter11.py | 2388 ++++++++ .../_build/jupyter_execute/chapter11_47_2.png | Bin 0 -> 23393 bytes .../_build/jupyter_execute/chapter1_11_0.png | Bin 6227 -> 6658 bytes .../_build/jupyter_execute/chapter1_136_0.png | Bin 17112 -> 17074 bytes .../_build/jupyter_execute/chapter1_13_1.png | Bin 9258 -> 9434 bytes .../_build/jupyter_execute/chapter1_183_1.png | Bin 18622 -> 18725 bytes .../_build/jupyter_execute/chapter1_199_1.png | Bin 25198 -> 25265 bytes .../_build/jupyter_execute/chapter1_201_1.png | Bin 96676 -> 96941 bytes .../_build/jupyter_execute/chapter1_203_0.png | Bin 33523 -> 33352 bytes .../_build/jupyter_execute/chapter1_210_0.png | Bin 10633 -> 10379 bytes .../_build/jupyter_execute/chapter1_218_0.png | Bin 22611 -> 22667 bytes .../_build/jupyter_execute/chapter1_27_0.png | Bin 13827 -> 14638 bytes .../_build/jupyter_execute/chapter1_3_0.png | Bin 9744 -> 10172 bytes .../_build/jupyter_execute/chapter1_57_1.png | Bin 16974 -> 16629 bytes .../_build/jupyter_execute/chapter1_59_0.png | Bin 19739 -> 19472 bytes .../_build/jupyter_execute/chapter1_61_13.png | Bin 0 -> 26203 bytes .../_build/jupyter_execute/chapter2.ipynb | 4856 +++++++++++++++++ .../_build/jupyter_execute/chapter2.py | 2662 +++++++++ .../_build/jupyter_execute/chapter2_245_1.png | Bin 0 -> 9297 bytes .../_build/jupyter_execute/chapter2_247_1.png | Bin 0 -> 11129 bytes .../_build/jupyter_execute/chapter2_249_1.png | Bin 0 -> 14655 bytes .../_build/jupyter_execute/chapter3.ipynb | 4594 ++++++++++++++++ .../_build/jupyter_execute/chapter3.py | 2533 +++++++++ .../_build/jupyter_execute/chapter3_107_1.png | Bin 0 -> 15278 bytes .../_build/jupyter_execute/chapter3_115_1.png | Bin 0 -> 11256 bytes .../_build/jupyter_execute/chapter3_117_1.png | Bin 0 -> 13500 bytes .../_build/jupyter_execute/chapter3_148_1.png | Bin 0 -> 20061 bytes .../_build/jupyter_execute/chapter3_166_1.png | Bin 0 -> 31715 bytes .../_build/jupyter_execute/chapter3_169_1.png | Bin 0 -> 31040 bytes .../_build/jupyter_execute/chapter3_173_1.png | Bin 0 -> 20053 bytes .../jupyter_execute/chapter3_175_13.png | Bin 0 -> 187544 bytes .../_build/jupyter_execute/chapter3_177_0.png | Bin 0 -> 72988 bytes .../_build/jupyter_execute/chapter3_181_1.png | Bin 0 -> 29132 bytes .../_build/jupyter_execute/chapter3_47_0.png | Bin 0 -> 11525 bytes .../_build/jupyter_execute/chapter3_61_1.png | Bin 0 -> 23321 bytes .../_build/jupyter_execute/chapter3_62_5.png | Bin 0 -> 16083 bytes .../_build/jupyter_execute/chapter3_64_1.png | Bin 0 -> 38095 bytes .../_build/jupyter_execute/chapter3_65_16.png | Bin 0 -> 16329 bytes .../_build/jupyter_execute/chapter3_71_0.png | Bin 0 -> 14393 bytes .../_build/jupyter_execute/chapter3_73_1.png | Bin 0 -> 12100 bytes .../_build/jupyter_execute/chapter4.ipynb | 1252 +++++ .../_build/jupyter_execute/chapter4.py | 609 +++ .../_build/jupyter_execute/chapter4_13_0.png | Bin 0 -> 13624 bytes .../_build/jupyter_execute/chapter4_13_1.png | Bin 0 -> 9697 bytes .../_build/jupyter_execute/chapter4_13_2.png | Bin 0 -> 14319 bytes .../_build/jupyter_execute/chapter4_51_0.png | Bin 0 -> 90242 bytes .../_build/jupyter_execute/chapter4_51_1.png | Bin 0 -> 164639 bytes .../_build/jupyter_execute/chapter4_57_2.png | Bin 0 -> 11530 bytes .../_build/jupyter_execute/chapter4_57_3.png | Bin 0 -> 29188 bytes .../_build/jupyter_execute/chapter4_57_4.png | Bin 0 -> 30423 bytes .../_build/jupyter_execute/chapter4_5_1.png | Bin 0 -> 13527 bytes .../_build/jupyter_execute/chapter4_7_0.png | Bin 0 -> 16534 bytes .../_build/jupyter_execute/chapter5.ipynb | 2025 +++++++ .../_build/jupyter_execute/chapter5.py | 1102 ++++ .../_build/jupyter_execute/chapter5_109_0.png | Bin 0 -> 5943 bytes .../_build/jupyter_execute/chapter5_129_0.png | Bin 0 -> 8219 bytes .../_build/jupyter_execute/chapter5_129_2.png | Bin 0 -> 13629 bytes .../_build/jupyter_execute/chapter5_129_3.png | Bin 0 -> 22986 bytes .../_build/jupyter_execute/chapter5_129_4.png | Bin 0 -> 28714 bytes .../_build/jupyter_execute/chapter5_129_6.png | Bin 0 -> 52979 bytes .../_build/jupyter_execute/chapter5_1_1.png | Bin 0 -> 28794 bytes .../_build/jupyter_execute/chapter6.ipynb | 1559 ++++++ .../_build/jupyter_execute/chapter6.py | 1037 ++++ .../_build/jupyter_execute/chapter6_1_1.png | Bin 0 -> 28437 bytes .../_build/jupyter_execute/chapter6_1_2.png | Bin 0 -> 21690 bytes .../_build/jupyter_execute/chapter6_24_1.png | Bin 0 -> 14736 bytes .../_build/jupyter_execute/chapter7.ipynb | 1605 ++++++ .../_build/jupyter_execute/chapter7.py | 1091 ++++ .../_build/jupyter_execute/chapter8.ipynb | 1734 ++++++ .../_build/jupyter_execute/chapter8.py | 862 +++ .../_build/jupyter_execute/chapter8_65_1.png | Bin 0 -> 28716 bytes .../_build/jupyter_execute/chapter9.ipynb | 1357 +++++ .../_build/jupyter_execute/chapter9.py | 847 +++ .../_build/jupyter_execute/chapter9_29_0.png | Bin 0 -> 9884 bytes .../_build/jupyter_execute/chapter9_29_1.png | Bin 0 -> 6739 bytes .../_build/jupyter_execute/chapter9_29_2.png | Bin 0 -> 17459 bytes .../_build/jupyter_execute/chapter9_29_3.png | Bin 0 -> 8798 bytes .../jupyter_execute/chapteroptimization.ipynb | 3114 +++++++++++ .../jupyter_execute/chapteroptimization.py | 1769 ++++++ .../chapteroptimization_118_2.png | Bin 0 -> 11731 bytes .../chapteroptimization_127_1.png | Bin 0 -> 10791 bytes .../chapteroptimization_141_2.png | Bin 0 -> 11362 bytes .../chapteroptimization_177_0.png | Bin 0 -> 17433 bytes .../chapteroptimization_56_2.png | Bin 0 -> 48442 bytes .../chapteroptimization_58_0.png | Bin 0 -> 27781 bytes .../chapteroptimization_64_1.png | Bin 0 -> 101313 bytes .../_build/jupyter_execute/linalg.ipynb | 1557 ++++++ .../_build/jupyter_execute/linalg.py | 863 +++ .../_build/jupyter_execute/statistics.ipynb | 3003 ++++++++++ .../_build/jupyter_execute/statistics.py | 1852 +++++++ .../jupyter_execute/statistics_178_0.png | Bin 0 -> 5167 bytes .../jupyter_execute/statistics_184_1.png | Bin 0 -> 9877 bytes .../jupyter_execute/statistics_29_0.png | Bin 0 -> 18644 bytes doc/LectureNotes/gaussian.pdf | Bin 229808 -> 229851 bytes 128 files changed, 55309 insertions(+), 95 deletions(-) create mode 100644 doc/LectureNotes/DataFiles/cancer.dot create mode 100644 doc/LectureNotes/DataFiles/moons.dot create mode 100644 doc/LectureNotes/_build/.doctrees/chapter1.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter10.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter11.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter2.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter3.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter4.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter5.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter6.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter7.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter8.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapter9.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/chapteroptimization.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/intro.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/linalg.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/schedule.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/statistics.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/teachers.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/textbooks.doctree create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter1.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter10.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter10_33_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter10_49_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter10_49_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter10_53_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter10_53_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter11.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter11.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter11_47_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter1_61_13.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter2.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter2.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter2_245_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter2_247_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter2_249_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_107_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_115_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_117_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_148_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_166_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_169_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_173_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_175_13.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_177_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_181_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_47_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_61_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_62_5.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_64_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_65_16.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_71_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_73_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_13_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_13_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_13_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_51_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_51_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_57_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_57_3.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_57_4.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_5_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter4_7_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5_109_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5_129_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5_129_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5_129_3.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5_129_4.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5_129_6.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter5_1_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter6.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter6.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter6_1_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter6_1_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter6_24_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter7.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter7.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter8.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter8.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter8_65_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter9.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter9.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter9_29_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter9_29_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter9_29_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter9_29_3.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization_118_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization_127_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization_141_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization_177_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization_56_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization_58_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapteroptimization_64_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/linalg.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/linalg.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/statistics.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/statistics.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/statistics_178_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/statistics_184_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/statistics_29_0.png diff --git a/doc/LectureNotes/DataFiles/cancer.dot b/doc/LectureNotes/DataFiles/cancer.dot new file mode 100644 index 000000000..ff048fa30 --- /dev/null +++ b/doc/LectureNotes/DataFiles/cancer.dot @@ -0,0 +1,57 @@ +digraph Tree { +node [shape=box, style="filled, rounded", color="black", fontname="helvetica"] ; +edge [fontname="helvetica"] ; +0 [label="worst perimeter <= 106.05\ngini = 0.465\nsamples = 426\nvalue = [[269, 157]\n[157, 269]]", fillcolor="#fefbf9"] ; +1 [label="worst concave points <= 0.159\ngini = 0.067\nsamples = 259\nvalue = [[250, 9]\n[9, 250]]", fillcolor="#e99355"] ; +0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ; +2 [label="worst concave points <= 0.135\ngini = 0.031\nsamples = 253\nvalue = [[249, 4]\n[4, 249]]", fillcolor="#e78946"] ; +1 -> 2 ; +3 [label="area error <= 48.975\ngini = 0.008\nsamples = 242\nvalue = [[241, 1]\n[1, 241]]", fillcolor="#e5833c"] ; +2 -> 3 ; +4 [label="gini = 0.0\nsamples = 239\nvalue = [[239, 0]\n[0, 239]]", fillcolor="#e58139"] ; +3 -> 4 ; +5 [label="area error <= 51.38\ngini = 0.444\nsamples = 3\nvalue = [[2, 1]\n[1, 2]]", fillcolor="#fdf6f0"] ; +3 -> 5 ; +6 [label="gini = 0.0\nsamples = 1\nvalue = [[0, 1]\n[1, 0]]", fillcolor="#e58139"] ; +5 -> 6 ; +7 [label="gini = 0.0\nsamples = 2\nvalue = [[2, 0]\n[0, 2]]", fillcolor="#e58139"] ; +5 -> 7 ; +8 [label="worst texture <= 29.455\ngini = 0.397\nsamples = 11\nvalue = [[8, 3]\n[3, 8]]", fillcolor="#fae9dd"] ; +2 -> 8 ; +9 [label="gini = 0.0\nsamples = 8\nvalue = [[8, 0]\n[0, 8]]", fillcolor="#e58139"] ; +8 -> 9 ; +10 [label="gini = 0.0\nsamples = 3\nvalue = [[0, 3]\n[3, 0]]", fillcolor="#e58139"] ; +8 -> 10 ; +11 [label="mean texture <= 16.22\ngini = 0.278\nsamples = 6\nvalue = [[1, 5]\n[5, 1]]", fillcolor="#f4caac"] ; +1 -> 11 ; +12 [label="gini = 0.0\nsamples = 1\nvalue = [[1, 0]\n[0, 1]]", fillcolor="#e58139"] ; +11 -> 12 ; +13 [label="gini = 0.0\nsamples = 5\nvalue = [[0, 5]\n[5, 0]]", fillcolor="#e58139"] ; +11 -> 13 ; +14 [label="worst texture <= 20.645\ngini = 0.202\nsamples = 167\nvalue = [[19, 148]\n[148, 19]]", fillcolor="#f0b68c"] ; +0 -> 14 [labeldistance=2.5, labelangle=-45, headlabel="False"] ; +15 [label="worst concavity <= 0.318\ngini = 0.375\nsamples = 16\nvalue = [[12, 4]\n[4, 12]]", fillcolor="#f9e3d4"] ; +14 -> 15 ; +16 [label="gini = 0.0\nsamples = 11\nvalue = [[11, 0]\n[0, 11]]", fillcolor="#e58139"] ; +15 -> 16 ; +17 [label="mean concavity <= 0.07\ngini = 0.32\nsamples = 5\nvalue = [[1, 4]\n[4, 1]]", fillcolor="#f6d5bd"] ; +15 -> 17 ; +18 [label="gini = 0.0\nsamples = 1\nvalue = [[1, 0]\n[0, 1]]", fillcolor="#e58139"] ; +17 -> 18 ; +19 [label="gini = 0.0\nsamples = 4\nvalue = [[0, 4]\n[4, 0]]", fillcolor="#e58139"] ; +17 -> 19 ; +20 [label="mean concave points <= 0.049\ngini = 0.088\nsamples = 151\nvalue = [[7, 144]\n[144, 7]]", fillcolor="#ea985d"] ; +14 -> 20 ; +21 [label="compactness error <= 0.016\ngini = 0.48\nsamples = 15\nvalue = [[6, 9]\n[9, 6]]", fillcolor="#ffffff"] ; +20 -> 21 ; +22 [label="gini = 0.0\nsamples = 9\nvalue = [[0, 9]\n[9, 0]]", fillcolor="#e58139"] ; +21 -> 22 ; +23 [label="gini = 0.0\nsamples = 6\nvalue = [[6, 0]\n[0, 6]]", fillcolor="#e58139"] ; +21 -> 23 ; +24 [label="mean smoothness <= 0.079\ngini = 0.015\nsamples = 136\nvalue = [[1, 135]\n[135, 1]]", fillcolor="#e6853f"] ; +20 -> 24 ; +25 [label="gini = 0.0\nsamples = 1\nvalue = [[1, 0]\n[0, 1]]", fillcolor="#e58139"] ; +24 -> 25 ; +26 [label="gini = 0.0\nsamples = 135\nvalue = [[0, 135]\n[135, 0]]", fillcolor="#e58139"] ; +24 -> 26 ; +} \ No newline at end of file diff --git a/doc/LectureNotes/DataFiles/moons.dot b/doc/LectureNotes/DataFiles/moons.dot new file mode 100644 index 000000000..b06d0a543 --- /dev/null +++ b/doc/LectureNotes/DataFiles/moons.dot @@ -0,0 +1,45 @@ +digraph Tree { +node [shape=box, style="filled, rounded", color="black", fontname="helvetica"] ; +edge [fontname="helvetica"] ; +0 [label="X[1] <= 0.115\ngini = 0.5\nsamples = 75\nvalue = [37, 38]", fillcolor="#fafcfe"] ; +1 [label="X[0] <= -0.686\ngini = 0.225\nsamples = 31\nvalue = [4, 27]", fillcolor="#56ace9"] ; +0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ; +2 [label="gini = 0.0\nsamples = 2\nvalue = [2, 0]", fillcolor="#e58139"] ; +1 -> 2 ; +3 [label="X[1] <= 0.058\ngini = 0.128\nsamples = 29\nvalue = [2, 27]", fillcolor="#48a4e7"] ; +1 -> 3 ; +4 [label="X[0] <= 1.207\ngini = 0.077\nsamples = 25\nvalue = [1, 24]", fillcolor="#41a1e6"] ; +3 -> 4 ; +5 [label="gini = 0.0\nsamples = 17\nvalue = [0, 17]", fillcolor="#399de5"] ; +4 -> 5 ; +6 [label="X[1] <= -0.43\ngini = 0.219\nsamples = 8\nvalue = [1, 7]", fillcolor="#55abe9"] ; +4 -> 6 ; +7 [label="gini = 0.0\nsamples = 1\nvalue = [1, 0]", fillcolor="#e58139"] ; +6 -> 7 ; +8 [label="gini = 0.0\nsamples = 7\nvalue = [0, 7]", fillcolor="#399de5"] ; +6 -> 8 ; +9 [label="X[1] <= 0.09\ngini = 0.375\nsamples = 4\nvalue = [1, 3]", fillcolor="#7bbeee"] ; +3 -> 9 ; +10 [label="gini = 0.0\nsamples = 1\nvalue = [1, 0]", fillcolor="#e58139"] ; +9 -> 10 ; +11 [label="gini = 0.0\nsamples = 3\nvalue = [0, 3]", fillcolor="#399de5"] ; +9 -> 11 ; +12 [label="X[0] <= 1.36\ngini = 0.375\nsamples = 44\nvalue = [33, 11]", fillcolor="#eeab7b"] ; +0 -> 12 [labeldistance=2.5, labelangle=-45, headlabel="False"] ; +13 [label="X[0] <= -0.189\ngini = 0.26\nsamples = 39\nvalue = [33, 6]", fillcolor="#ea985d"] ; +12 -> 13 ; +14 [label="gini = 0.0\nsamples = 18\nvalue = [18, 0]", fillcolor="#e58139"] ; +13 -> 14 ; +15 [label="X[0] <= 0.479\ngini = 0.408\nsamples = 21\nvalue = [15, 6]", fillcolor="#efb388"] ; +13 -> 15 ; +16 [label="X[1] <= 0.781\ngini = 0.5\nsamples = 12\nvalue = [6, 6]", fillcolor="#ffffff"] ; +15 -> 16 ; +17 [label="gini = 0.0\nsamples = 6\nvalue = [0, 6]", fillcolor="#399de5"] ; +16 -> 17 ; +18 [label="gini = 0.0\nsamples = 6\nvalue = [6, 0]", fillcolor="#e58139"] ; +16 -> 18 ; +19 [label="gini = 0.0\nsamples = 9\nvalue = [9, 0]", fillcolor="#e58139"] ; +15 -> 19 ; +20 [label="gini = 0.0\nsamples = 5\nvalue = [0, 5]", fillcolor="#399de5"] ; +12 -> 20 ; +} \ No newline at end of file diff --git a/doc/LectureNotes/Results/FigureFiles/EoSfitting.png b/doc/LectureNotes/Results/FigureFiles/EoSfitting.png index 87a452de452ef6c7a6766fc6052c7e34cf95ba12..5e169859076de363884bc6df113c03687878c373 100644 GIT binary patch literal 19248 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 literal 19175 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 MR8A!8sm`1K0sZeAq5uE@ diff --git a/doc/LectureNotes/Results/FigureFiles/Masses2016.png b/doc/LectureNotes/Results/FigureFiles/Masses2016.png index bbaa79e2f97b66c844a5981266a5084b30e0c37a..e2dd57df05851e6faf4afe2d02fa18a33b9d511c 100644 GIT binary patch literal 17356 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 literal 17747 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 literal 17804 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 SfNw^DNWWH)fW9*L{67HuL>Wo| diff --git a/doc/LectureNotes/Results/FigureFiles/Masses2016Trees.png b/doc/LectureNotes/Results/FigureFiles/Masses2016Trees.png index 54fd767fcb3513e6e9a3e30b3b13ee5b199891f2..28a946349f4f78e02fd77f935a01aac3af684494 100644 GIT binary patch literal 21697 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 z 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 literal 21975 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 U_wVFGx#G2J`@U^?TO6bQ1IxRab^rhX diff --git a/doc/LectureNotes/_build/.doctrees/chapter1.doctree b/doc/LectureNotes/_build/.doctrees/chapter1.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a4e0126a8443bac50a681e15a2a373dc99b75bff GIT binary patch literal 883315 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ȣT{;N3=jqRWZZb)=BOjmmtg%mJ^})&TfA>h^*+-xyR36suuEON(iTPghQwe8~OKRs! zmr6M1>>a)0zR)*^0}P_sjQf9)15E#k@45vC*qiu51icVnFN^(V=<*07^o7zM-hJq` z{9yn8=&Z>&ctX5H9B4xP;sY0EvQ3E38UfqNLWEqVkZ40cU2yS*iJ|a0zz$gZd(l5P zJ1|po!N$qjf9W|``%R6vDIBedBsnm#vXH%tN?2K_5-3=wZ(L+Mzh_TYuSQ z*le8lnHIVddScvHX|UREv5B2fMVxa>DBqZYe&-*%VDg>8K$e>Rurd%}Xbur(p!W{N zKp*@5@40BG*%;_!mV82wCKiIMG0Nn|jPlysE-gA4rS3Ql%$$LMunCL}wg7DfyA|AI zg*C?S4{(z(czFKcp@!!+=Rz#o@HFto8@iJ8vOs<(?NDGpxKDVT09XqO*6&`z4nRm0 zh4#g;m_XqiuU!Ohv4HDakR9hcEa7yJ{E&SpFOHlcq4rgC()*`(n!J`fg*rEBYoLtX zDPOt{h0ONPuT|ZJEc?9%HUuwQL~)LpqAA&9*yl&5dafq4v08b8RxVderp=k9U%ySQ znY6`o=}#SME=B*WIo=jIt+~X!`qB$8fVxB%pjo@|aOp3O(}I0oXS!yXMcTPj*t&PS zSZv2fW88a&FBU^{4g8eo_LtprH@nmI*u~ugN30;{`Z0il40zxSK;X1PvON}d{lNvG zg$z-;0_Mp(oWfGX*?iS0Oh8}abmiNKv%OID=4_& z=uSXy7=4Ki*;B|Mjid<*ahZcd3St9b{~m?RE4;eETkMe80sayXa(Wb}#)?N6ZV&2#PglbLwSnT@;1-2Gklfs`$Gh@KJfSUj+yD+vI8qi6vasaQ zp1!Exlmnxw-x{Ytqg=ei>(aSrXqTIO z;*>^zX$O^SX`1TaG9{1E6|8AKqeX2SqQFM3-8XxQ@Rh4%ICFNT7%`~wTriwu`df!2 z)9w9Y&PKZH)ZR^L{B`8%f{4HlCUIFhuloTL-o-9st<$^yO>MYp2+{^8B!#rzeSn7)-YA z90=g^^y%SqnQykfJSQNxKKwHyY5Dob@(n}uphr{YXfJLF&6|jw(LaTBWtR!(*Dl(k zw&vX4UXA(dSJ|;fpRTTC_4ev|fQWD~Iy|_Eg>9qI&AxM^-RI9=-1Pxkdf#0^?Q@~% zn`HZ{nS{ox@vq;6miu)6i>DTigztvDQ7%2-??5A zhs7p7-lfMMAs?H*f;E<5+Pdp_--`dvSK%T+XdRB zo+aR;8@=otpr6|rpphjnKI0^VG0%33O?csnGsn0Z_|J=0()VNVYPh@)8P`+_Z-nCfl zx?i{uXTM~yq3J3a{ww5K8cdO^22E0Zf}&Zk=eL=2aO_fZ5rO=GW1Nus5;DPQLcwr8 zA=v;PBRFHD`Bxw-FnC)|kDD+};Z8mrsHmTBL5XqE`4#Z-AeZZa?IAbSbcGye$aN=j z=#VFT0w`F%FsKb)D5H+;L#?*usQLL1aer*{>_d$vFxqeIObNHup-Y{6=JI6kfLZ*1 zgO6M=+dl<<)DpU`Q{W~4k^i;(u?-hJ`4EB7XU z@U0{CzaNJG6^`hm`ceAm@lo_Be^fe(9p$WEy=BMcEriRzxJIws>ewI&FO%3_v8owX zm>ave*E%q`AGZ1_{No?m!LB&ESH$Y}f*t9O+m*m>-qnH)x1WJamv1}>_9kf?uvbxP z?VFCM9a!B0cK%}h=G=i!Q+9Wjt47h&y}U)&z~1+o`pEV`#0i42?U75)z-pKb}?KqAH#oaiQ5 z-0EBj%HY@i_|H!cE`JTF`LoyPnOhwfiD^|cdgewZ_gV)A=OQz$b}tveRvmi}t^{VU zxa${i2j?Pyt%^6r%|!q|J20C77QU(})n^B0lfXjyd4btPuuyqkU@kKF*}G|z!9w?W zF|!F_Vf?(nT%_=`che??g+J(y*?uv$*dxY33~Rewmxkm44uK|a3A?rS zBmec%`zC`=uhA{HIxa%fs&$&=&d(7o9ndd|Af~=(Dqjj=)D65}iYYA zp(WG7gEvin86@pNjt2hJ(uIsx2;=!vh}1&i{@{|F;FR49h-F0nNd*GMz^7=-;b}T6 zZFzqo?HdYSLt7W)x1e<;kVIzye0hIooVU5Z)t2-K7?3^U;PJHQrZU>k0ZJPI<3?C8&f@71oyWHGfbU-e7Il7Cqt5T#m^#1aMjfYU@H);Wq|YAO z=k~>uAC`W;`G;nQ@Z@^IcOZ59Td#fZRT~gY4mP=6xBv|=q#WTV?0kcQ&_Tm$gRF(h zqs;QKsgD>0wie;wyE?`B>3UN$Evz>GPLF9EFpqQDptP=_m(eWkjaV7wf`y>)D&L2| za>QPF2x*_fKBN)6{y@aSI(Eb!Jom#j;je;be6hkSr- z1pCgw_r~L4Te3&dh&&%R+vs%&XwTD|AG~^Eney>`Pem6T_M3^{id-os&%cbOGek)6 z{RLz>b;dtE;$(#vrxQ4ri1PIy3AdO}%*37M+Tk-!7&g-HzJV@$d1sP3!)QKd*F$Fe zxFxVyE_rKG5Nnv&P6Jn36Gjx=|7MZNKoD=pe$Kt;W{c;SRB-9&{;{$lVZ{SD_4eGM zw@m`=9NXVHpKo3Jb#=X~&*pv*O`CMaBm3x3w!`oI=+%?r6{NJ$$uooTtO64wVS@PV zmLT4Q-EjV$kA2gnb>}eG9K($5F??+F8M81zVh8Jt_4@+bBnuv>?V$$hwSV7*RJIk= zC-sO>W1P(2CO*QsHcWry#=~^`Z@9GW9H!01VX`fO&DnX;xIWlmet;O5B*sJj#}75+ z)c@;3cH5BuJhGa#uw7UpBSQi53*wXU_-v))gD)pV?`D~0T1tGA?x`qWXIzlnTT3$c2U)_G+ zdSDYE?_(n{tpCH#upUtM{4YD8uO)lZ7SkB0Vc7!*i}#J6jb_)Wy|?qvbm{5u9?FT7x!p97l$V($d{ zVo}mobpFjR8MD)x_qs<6P6Vjz5&8=jJrns9R5_%YIE8vA%xV1;u1Yy!?%mV=J*{gG z3FFkz(U%NA8S=M7Rth8s;JT+ikMH0-+Q20SAbB4iGsj=U4H*XLhX)~Zq_BDRy8mjo ztMId*e&Ge-=g?mbAh6JczZRntAp!rw5dQ#tu6foBFO74y3LU7&j&8sEbaV&)d*j`w z=;N=UkKy2A&a@Xkufy5ha20-T_xtlt!5xI+V|1O#)ANrbJ%>SlMZ?G7n$dj&ADc?e z(jrLm324G4hpt^gXUXi&Rj1e2xH6O#(H&o)EbiYgE+lya89Vg!T1b??{d_QO)AD&C z!Dxid(a_^ktYc)Kz_=USsQ)rq;oNwAOQ3gPILC8mB=Hfk?%W(k0|6|0FS#t#sAI^G z{Zhf!fHA&{?z2dR!T@r=*eAWHsLJewd2nn@@CV0pyyyO~2)63Icf9ZFGkPLx-y!J$ zKpudkxMvXaz);OW!Sj=a;ncn`q{1GRxi$p?qPwW{Eg*g8=4ikV9~`r504|H_sj}!Ic*@DW zBX)hNaO&f=$igLrC-b{^XsA;>_8fQa+%?~B%(schIJ5a&dV)^bo;`X%7{3c#^GyE) z!9Fp1M&Et+!Ljipp`Xn~WvnQV*oWTJ(1T-f^^kgSbZq;B8+>?|mN?2w1~p8s0Bcb1 zBGlvF!@JU5SKvur)c}he?3wj}7z(@O9s{XPZfgjmwoCci?R!UAx%I?2~?v$oG2FA_ox0>Q;_^CIvh}SkHNUvF@XDKkuZcuFp0-n z$%!Dr!}+WFwFHl`gcPPwX4DWA_;L1BSfF|w(NN&BzHO^%Vr^qN!N zetP~XUV_AI1Om(apUev{@Xctcy7J~y!zm4ainYcl(HO$hpa6d*M=`n$|3=5tMj;Ll zbcv}ZTj^@OOLe?`D!J)YqQy2-U3F6tZ#O0KnRG|&O^R}t@^AA(Wl`9yhHSd(?WGIB z{3fE>>*l4%rn4amlX1O_V8@tfrp2Ikl{);DPplHOB(DI0Xe{j&6P0GwKPmb8TxZ>D zc6fyktS7@~ zJ*h^b-|Ma7Vxl=tHlvkvl5SUHja4ceOC$>GSV>wgeO+b{8uZisX0N8m(b;%0^Y}Po z;*X@tAyr-s26DyU_f351a=B37mcwhhny97+g((-Lqls!_Ag+?7HlN`$9(hYM@NQjd zw*shOyO|WK4XBa`jPg+6pA>SvHGI*5J{WLp@G>Y+@ zyzI?{2tO-RGd0Z4%NrqErwU^#?pe-eOg+Gb>v6){j(FC&Qn@^y`qQbdhbW6-e?=Xn ziq$n!>~)*jVR@PCQj_9rUQW%H;Ta#<%z9KV9GS8?PcA+$5kxtkFPE7{W4jFobLFsq z#1ZY%q$bz5p-{fm%qNnGYO0=?wfJ_PTu?$>+y>-mCQAF7$Wz_Gsn)8rho|dCQQ`pb)wYu5t~#m><`G1>@vRr27%FNa^X!U92$fN%RxERX9RhW z?c{~gNLmI)zOY|fDGN_*3k3EMxw?;10z`iunoJ0RoJ>MgCP@bTgZYw?`vrL`5JZ96 z_7=IM*GCeBXUH;4Iy0IO%U&lWtk;XhDxX>`$($fEiDsgcs0T>a!v)HMQ1|4r*>$L! z3v;1RC=g1;OVX%Agae6`#{&Z#DELF&Ah%WgWpNWBc&fz>0*hcM?V$-^qV%9lgnYr4 zPhD}e8VLn+BoX#2Eu}^DxnNz8`$N+U_P7s(t|-I91R!LL3y5J*kxVq&HS5k zzPhM&Qoc0HddYk=*w}aiL#0$8xaq2prXvCsr#odP#i(+qH(8GfZzs0uMJwWF#b*K| zmD&Q&=7<2X91#2_686{f9Onr~+Vf;^D{QyLgg+Q;)mr)Tcsp#w=-9>+mgwGKnIT%_ zqzMlaQ!1wu^+>)$^-{j2&%2ej{pDJy7V~qTw>R~N!~C#RCN@GnyYi>n@t|kenX%G* z8Y~Gz#E-PEJeiE?ae`0OcqZ=mHwLTGmI%j#T(8H=b|uoCU{`%JTx2}YW}z;e``C=I?d8TZ6aBv%I-spB*oniSaJnim^gE|lnt z0ogCnK9#LRW0h(--yf#^;ZVMqjIGieUnff{Oxu?oN83e-t@F7NU6OihcAJgY>ht!h zS{(Z)#aMG&&IBlOmLL5X^EIzh zjCjUdfua(`DjXn)39T%b^oAZyJEsgx%2lH^?k{Ql6gSIT84 zo?6HkqKeUqTIz&@y+ya?Q;BjiPxysMWV@vkJ&t4QvZoM^L`X&1Q2Csg8;6Od5Z`83 zff-S4x2ZzC+akMk9`FD*nB^$4U!~Tq%&OZZRx>ujEdrfrJiaL9a-onn)0Cy0zZK}F z2E&@dv{a#5Ue0T5B_5;wTcJ%fQjuA$Smz}Fti4X;q;W;44Cb{cEAyE~HahkMJ%iFX zAZ?XxlrBg-Gny_4=w@oY4RTyCI2;8wn^afXiqqb(ln(VHnHAISG}d9E8xp+{uF;{^ z!$~S0&nDL^-rw~x3!)bm2u5XlFg^v6RJtU^L=&A9bd{)8CKINzp<}?#iHQfvg6#xk zK&?Pm*F>aOiKm2=G@8}KY$3{zYC%YX4#i!7+-tU@rE<1 zN~}UKAig*O0~P3dg2hO;UGs}&b{vK>PuDl(lBrdi@+GoSy4+TkWusSb^a}Y@Y1YV{Z_t{uacfpNcH#VOh;Cvbuk-Ww)%8F8Qe_MV zHp1POw1ZcWYV1l zJxY`-)v8h7WH@A&fdK(C%e(2SLYUsP>f8Qo(e6(=6rPj5PKTk2LMBv{(!Gtp*K3i@ zvET2nRe&dIqc|aUlb#9DoaWUNwOCY7rdL~xK!yEhN*Zo+iz8~sTR#f7mHvoxDLr{Z(+FY6<6^%Jt{NH{-DIR zIl41UjT_5VoAZU)4cYN^eQYo{>e78NO!ZUsj;|x~9(AfPj0mbbR~r?TX*Ig3bV#zA zY}PgjPd6a&Jz*8*K<9+L)v9k(2>G@XLCr?u+kihFBK&K%7>bmqg0LKh(vzjqt_8#4 zRJJuIL&-pAKqNr?hxyuaIiDpa1QG7QEF5e=3}pG1cL{dbaxM(Y%WlzErl?L>kixzV zC8_yES>Qnq2Z$Kd$g~TfE1p(yq#ys)W zRuExP5)OjkAJ2U%wc3&;GMJX4!&EWGh$O}GYc?B;XNBf46{WM$`e@n{eCuG5B_d#}vvJ>cn=JNv z%0#3<#`r+ig`2PxXhs@MjtoY+m1q+zzG8R4d4@iZze<$W%R;z27e+q6ke-oz*c0>T zM%69Dl*^)bQd%wtonTy;Purz#Q3?}auX$*HWYim!lVUboE-toPj}%X+L}@`VN{=Lc zu98&MiPfu)+vdXY%+rDS?J zShTZXx%LHa=y2E@YqVq0L`GUMbfrKIH^6bJ>~x(?Wc&%1 z<+I|FObb&XGZABLPo&yqw{pPWZMHh|Zlhi5sLh#gwgOwRHyL*m9wAGywM|m&(sW^v zj0GkYCdnwxN^T$tRHs(+HRW`n)vuNPJs}=1&@g|dU`w!bDjaXb2P?V(76FJwZ_ZO* z)4@_-=?PLERu{Y&YGwnQZLlzG6jlW#5J)e#@!VF96lS2S{Bm-fnI;sv5S>JesiNAe zH_3jI&ZN8>Sh++hmF!xm6$eAUAPjT8fM=c0^vD_NORw4Fl2W(BEkpdM6fV=@Wjm2= z@`*`^?3QNbcB5a&@v0za=2Vd{fp#iUQ$q5L_~dY0tP`P$Jg#oX!w{pUSFx<5dI^#! zghASMnPQutgbLY_Kc_IoR%z@T0FO}XHdDxvzU;b7_vW2dIq6+5ml3YrX+;M!Sa|pn zi`8H;iPsJ5!SWRr$##ox=rnwo_TV{lXScno*QzDeWpw$djSDR_4 z1M;#_%Jq0wt_;0JvYBFoQZBsgviXo$<1#D1Qdihj znirv06Kj`b{RrFd)GiO;-XYp1tyS@N#?1Q;IWNtfM( zD`el7RF~^jIxUA3nQjsZvdelS%i;u-VZj@t8}Sm|X*Am$h|Iu{?)kF0S*I{76!Ov( zY=#oiWQk~U9S=7GO0k`l25V{EZ?&0$Nad^ELJN+dYaTzGOPi+Q#RJ}S0lM;D@Nz4B_AR50-=0tEqB7(QfCovR<|`GqK14N@a(iJ zD6N2yCnP0W@i%&-&SDCA{6pbMHx8s28u7vGy?@?)fp-2ggBZ?>SE<@2R%r`N`g>Jg}Pa4P>FOYH9K4c>p{4?I*EA#VcHUyxtCH^I0t3A{#Z3ttBvtCc}PSjRZZ-@L)clugGL;u;{HOs|?o(rGt}RuvJbo^)A1tZilVam`e1L z#Xwx1w@SsjxT%aLpws0*RGqiiYs#A)_9tqYlUhlYT@itKqFJu{L!~XhF8O%2tIp|s zd?v<3vC4?NZ@w6U+V$3BbZc5~SEpdq^Rm#%O~FUoOxKdtbS=fjvb|QRldE>ZVxFah z?jjX#Nr_o$&UG`TP9aSU|(HiG4sry54I-M=3-a)xwC)PW{4I8BWXP zjWXf9YN)^Vx0#731qZ!eH|A9$1CN>`kbkYbj;t#ce=fX9j*@7d=^Lw)7AaR22|Bvo zvMaev!2BFZYPB({i~icMP@PxW(kd{LrSYoW43`pUU0IqbNopf5vLO}xMv>**6CBSs zT)Dj!y;LpKpH;W*^fEQ9HCw?-ZWyU-D!mmQYvm(kV#l2rhI$n7KoF|fPjOMxF27JCv*c@l`Wob|xfbEx#7Kaf&krFymEW|I? zkt!HoYie7JFJrZJZ7#)ziM3za< zsLUuk?>FL9Dw$cTrF=9$=IK(sl1}p-QuT>)z)OQu-_tL2gC4Qi3W2*Ku$+6v&T3VO z#nR%iMfW%%J6er9qnSSni^piF+b@SzPb!?O3_<$&MUXcwsv#{yOG=5RRG~T9!rGK8 zr2_e6APmAOvq?(Z3bE)k{qZ@+uLB^S`Vv_fv$IT(XpiN5l3=zR7{6g6QK(2WKa~RA zrj96BgA_fYDwkGCCMM42FlH1P>MRRXDCk>)Fr=#6x~c?~E%+@bil;>MBE2ZZcc!Uk zFF`jdTV(L-wJhcz$TEy74{1~F>Y4>O&bUm&@Nm*SLitRybGwSlJ|TMbHLsw6;c zccKYD%<9hr>Ivt@CiFzJ))PmiyCnfr&v}YYHmczNi zfT-{^cxOU_v{)?IZY|raC1B2n!%f(CTricwEY%{|c54*L5}sa2ijm z!+w6sH*)LYO6tdY?L>Y{E=&2zqF+@q%4iw#N2(1^u#!|65xhv{)Og4+>l#7EB9+L9 zn$fd%G)a{kMZYA4np0mOGn+S>%jkGBV>kI^FGnon#DvY!Nwrv8$K_mhG=WVTPp|D; zDk<=`lVDQFvr-9s+&&=yzLJ2a(1UgKc#~V?BFzrz?T*KFVc3zSewUWUWTaW>$Fx59 zlknX**sq9HB>+1t>CrY$7c#JZ9h0+})U6krwF0c=Qcblb%(wGgAm>$rolr{7c#F%$ zI4V=?NqXIlszQF9?)T|&Fq0iEf;DhKOhde=G$NsJmgnY~qTutlrLZSmOwhB^I+Pqx zjZ!-p4~As$3QqWNod+rAnbuZ?R3KfTa*N~qIdJ?fdqq%afCGi0GfrZPUYU+opb2pMKdlp+-v z*v?81xAAGrU!B(cRf-F2yzOjrnOrTzE;9`lCRIvirEI`EVSMzol1{aKlU%;w0oP6= z!&PZ2-iXc1;8NME&6r6N(140zu;y)&1-_ar@atk_9cu@BKC#Z`e1SNuH+??YJ5%z0wO;E?h8zeR z|7;sl7kD=!(C~*2+>L z&Z@~a>|aU+*xw>ZwIGiRN|P@H0uf>|E|gMLDMFS4U@T6-+Yw6fQ?5hKBi;_9F5^== zyQx%(Vz3yyle zcfi~#rL%3d6=wNrTgi+X8SoPhM@%}O&B8uyyFZK?8B_V;F;O|r{?ZXR#zJ~=TGH}eV^@CuVnVAzTU zlk-FaByqgfO-}0T_MGswX{Jz4#v9yU0tN||M5E<;d5v)C76Y_1vd zDP<}hT2`mwZMX=2ci8P*H^C8~Zc4$@w%jPqihhVPDS~@AKy4Lfxs9X(1#h+B4L35; z=Co5Jmh~XFWV@{bY{pTr{o~E3$X_t8l5!+BU>P;%na@Yb=~~Hq;dAlMdYD4~1%e$k8l7c(vCQ>@zS)>tmcc+8$icAyb1yiOH;Z(rF0_Sl zFUSVc>Sj>nT7H)7QX#1yNYL>H*{o;f_Byzgg?_aWtmix9Ms&0s^^i|Y-Y&9YC!A(u zG=qeZum1nB_vW#Vez|KO7+N#sLg$g2cgM5d?4o`;W~Z zi$&t(pInQ4e$?@#SFh?-bv=)5?7W$-_e7CD{*Lc`var9G{d{lGlNS}YBH1OSW7}DK zYWGahsI`)*x|+~ij+bmC#w_@=GKWvLF>km^O7d!&)E=aZmKGWm1wY498zTwEnwCLM z3X8&m?bPaPT{1h+12;oy5Ml>#hpuXJ+NluE)B<1~xd&XeQt+@#LaaX86`>EhIXuxUp99#xFHS*~Ks{l)+=* z!d|DQ#J*4pt=WL>l$yzx*KXHVy-Il~_Ba6uWzA(U zj(n%$Sx%PNY^se39Attt>kU^bTu4!4Glx$So)xpkt(V&>ozOZ>Wy34gX-hW4N`+)>4By2^Hwt6{P^gGr`NZ91u4 zwyh_cUNj2V>sfs+7REJd)n(dAVVwyl&CEz@P>@iya)+Z@;@I!`b(Le9x)x66DcFg* z^l)pGB7^nxonIeybJd`@oi^8{QX|pKkuwr!n~}+dT!rT&VWY#ovYCs0dfiS;)pWq` zS`$y0rANtj#?KpNZBwik!aCKM>YHhrs~5|<(sC-6qsv_;$i1Gp%{GH%Y=NZO)p0uUu+EI<-c6RjJjrp6N7pYJ5 zTds85JHwnuE4>cOd5!pr!%f>B&%;g4=j4c8cw94Io=rIskzVsOIKw3kQLkUj>$`PdEUarmtB{QrtWd$``~7r_8rz9E;ygyH z4jg~I$%spXVVQ+#s^S;geFzJU(qNrovlH7@HdRJ*^whGMPWUS>RWWV8Tp4b`+bVEA zcr$kFED~~8)D3>dk2(#jRLcZ#j4UeslwX-wt=_m3_6Bl+2#CqKDyjThPDwtWnk!VP zwF%g@x>Ri0&2X5o8myw#2Tr=>LVRE7a@nKg-HcnUcN1$o z*miWYzbw>{e<=^~|I- z9S^t7Fcc_w7V3prVLWL^`AT*q6+~}?U_~)K&28%yU55n>h-jy|We}xya7qm`sZ@@U zTa?zFl%N>4+WD#-?3zQVpzWG}bbO z3`du@5=0L*W2&hPTNw|TbS_d5Cb1a0fmbpefoV3!g_0&t!co_r<*0I6Vxfe?i4V~h zzOiMw)tzQizKGb#3BnGI(rBFR!On~@rO_N_{cJ9$db)+h<>A*?WKXk&We0BYZFV~i z(?edb~VJVTKeGWmoLv`DP-)_R#m#G}95)(fyo zdN{}y9K`T0ml3Prx4Sd5Vj()ku$N-5-x=GCv1{q6RIxdv69~ni#DE&McMAxcqw1Uy z2KD5ESLUtSpi`OVMNTxM=4?In3YqdO*+Y0r-k1-2TQ_V_gLW9Td`4F7%B})H&!}Ms z-m{9gE9{JZhUlQqkXZ%RI?^Clb1LXh8v1)>7?jJR#&|0u(-oJ=Wj|kP7N&Drag(VG z;vdaTAg?MdX9>8hj)!eH`Im@EZJ3qfXkIGyg3xjcz4R8iFwy~g;l|~5j;{{OMs1x* zCCe`0KRw|iIT)89vnB0fM(nVNSt?{aMAn(rYRfl^%0eCulF&B?+etJ+42t3tnWV8; z7TViVx32Z)!}Kyc$?oLDI!R2y!}87%k|HL>YEeS7|ura4YOq zRtKUjSJc5V{Zc!VgD6)LeE~s_MQUaj+r!YXgj`W6$h~BwK*6_`JTuJ{M$~#>CasEq zaE3bU3)(iF@hU3dx-%~oOCx?)M)-)u7R?D8*4$j1-8BIpmBFkpj%j|og+D!kpT!Uq z)>U?sRx!8P@T|+~J1ft^kd{OYpb*RjNJGMQHezfi=bJ4voNUd08v+Z0Xe)|juGQ{v z2-#q;aNt$W>{fj@FrwX#cTCgt*276fPg7By(bBz8u1+iq!5Za+2D_cS-3H36ASooq zlZ;jA`1XdfVcW6R>ovsw(sZ<*Rk>ZFRBKVu9CRzQLHv{(XxUw^-DUiFmBidi%kg|8 zSqm^5dm;GY&a|Dpv>aI@E-&-#g{?%?7PgyuRohl8W*PcQZyLzMD)gsncG_Z^v$o$i z%B9?*#83zkOOyCxiL0#usQI0>RJl^Mu{8`So0T?nDoRkxQKG}F%2~~&BDp%220m;c zhMtc&%kLJYdXd#qN;A=o^kD-YP?!%hvo;*?yjIzDMg>~!CS9UdlVD#-9Vq%-tLiJ; z@%&j+6^ydkUY9d-b5L)!N`=DC62I`A^pYVD}FTJ$s8BtM;wXL+?%2fS_jn__>6 zke%$f;q-PRy(}ixMbB&v>2+$o^XgLw3)^0jZYFABwBjjPwW>-J(YNtAJCiU4b`{Z4O4w~g-f+=RCx|kUV1GWcm1KwNSx(Ig3adtZ=cL6qXhL)QZvyj=g^9ro?h0dH> z6xO`gVzxTsa+3U1m;HR3lA(`w7F@BV@JaB;Ewu|~sbOMblrzn8mm)8p&A1}fP4``^ znLrF7;A>ml=CjOZfnfH^NShh+AYTj})t~Bsp;@-#Hy4Avw13vdv;2tGjYfVl@p}$D zaCCb(5X4ER&@Gila;m=S*q(?ii@=}3)ur0gj8ie|d23P?id*=4vUUs6UBDxXt9rSr z*_dsYQQnvh>QX}LXDpGY%32$YXCwo^p+J|Y9Iv`lU7LwOlct(a+X>f3#Pu%9Sq)7n zhO&{#z||P#oB6ehSnS4pyTaCIC%tehH*y*H8#s=)O6zsO@6K@mxk*3eZlL8}h8tn#V4 zKMTC!L~j%lrKX9obC`n-_itIB=?#98*|tpED+FX8><0EBjO0+xYH+=olQ_R%+K|ba zcP%!`m-~&7@WNtqq$Yb#V9Z)M#EEgmrCnsn8Kq{%q7_urWtOMSVU%4Krn{9*V%nuy zw;Lo1+iZ?+t3|M)sU0NEO1=d9R*Kt}+jPF(PKO=7i&#lqFO%!cXqd+xnJ8B{%tggq z96392Bf8Nao4_3ti^&_gp*FR%Tz-;kZ(|x>vAlsN=V^pVJDky3&WEtyELU_BL8A%5 zrHwHk=8{d13MK*4D)MDvkT;qL`WlDHB$E)9u$5Obj+5AR$CF?vOe*y{+uhCb3A5GY zhZAZ%n}MI2nGl%EtrIlQ`NGbSQq*uU8)a0N7B#ch>E;G?E{A~RD5uI3$s@2q7l+K4 zPjN7TPeQ7++wGtsPHKC5pV%9+sDnDoLx1(S*34fNkr$C%bF*%1#OGmFr*s^;0RuE0oFU#|OIOJ&+{I`Q}o#wRB$d4xS&@wDX&U4ERH|CXf z6vA&*TSb#)RPxvE(k|<4vsXYUXQT{g%SRC4FOt;(8E``Ka0D3k!ZX7?XD_k!RvG&5hJ8%{NTc;lS$sbUx1u zlZg>Ah~@5gU}vIQNt(p@!;@cKBAmFg;HyPp+b$ppWVNgffXW?*tNF`FqITOYZzYpU zFC~g$OmTh~e?NX}+q&<*Lwq7X; z4WZN=H#B7YlnlNvg3Z)eVKVlO;R-mLoNBdoidhybOHoK=h8D@k>4k5x#LVa)oO|@sGP9r!CeXmmLRmd$afj3VHigF68tFbk>ivzxuuq`Kp+?3 zZ%&VQn5327c0y?y`&*=q=h4nMO7JCy5$I@AD3^sT?7E9)%G-^-H0_qcYM_i~8e+4} ziieODRT}4#{hZ44sj5xky{gaa%w*EYWU2HzsOZg9c_~wz9kw)4sto@^s@y5`<{66N zq88rCAWFVfsp`%uO*OlYZ_HVswk#iP>oNn#>IJbzEFoJ2jJ#H=B(X zG7Q5u9BVhO_JbkP*P5LTJZ?P2_mZBPTdHnmkQww-poNtw%|mviskS3gfIW(~=W{RE z_PX_Y3a+p2+8v~6eI*PA{YBGvB{M(RMiC;HlewA)m@bbe39p|D7L4r{t#Dg~t}x2L zu`aDM1B-G5KV76+o5fmQjX?VfwAUX`4PEadGIoX_R_x@8ro`F=xh0(rmF_N=dY(0+ ziGXg`H? zS!)(L4TNsYHt<)4+cre%AvYiCv!FCmvyiT;#Hn1&8zIM8#U@};7`qT#f?PJ6s!J(^ zfg|!SNgKVM0%MiC=xD{Bu?>Y)#?BZ6!dnYt8j{zP7AEc9Mv}lcB8qCYCOVZ)^{PyI zG3wWgQFW8Bb|wRzDc5)Cp;aDbA~te*4TwS|gKFdptss}lz{_jfev-r@1yVkjqaBe? zfFmNePHzQ1N_TW*Vc6FLRpe3>+!EMWCmn`jLTU~-L$B1U7B>8D!3$gPy9S{JqCLqI0msysTYPMFaot)(0SCS3GtUB3^nUFKlRzeJCB|Ap| zvQ)~tAd`?6TVy}O5Fv!whTSXWA$0X8nm?OmYM~aS6c%|kLuVlct__lq5GbS`XxWNX z^yzd0Ud{yLmdf+xq^vp!Cn7P-JIxWRkM8t^h95O2sJWC(<-P zwh2cy5<;|#*DKWFVpd=pN1h!kB4Ywpya{-MFgCPm;6^wKdLW7(tE>i@BJi?5V34^I z*%MKid7{WWi0kh$B^VQg@n@LklBCfbjwV|hyc+Z3{ z=51@CtgcK)4zTVZo0Sr_74Tcn?1G+*T5`jlAj@d1^OK;z8#jVMenZbi zeE9Td^rYX#x+Rn~0R_1ucrAcnfj=n?yQ0Ly%2kq6dMWlA5Xh8eVWB zS5=Xln42JcH`2kdbg?Ba%G2pGg3gOr+ESv+>5Wn$hhW4+InXh7Qr}Q2n6&7mwb}xS zhdoCav+^W~G^Qf!Xdf3(xMkO^dxc?7j?wf)aA6xaEbJkSr1mrY8qmI zl{6Q%deU9+5P7%eN*^Oe84IjY{e>#ggum#^piFPE%0!zsy zrA+|%OjfqFaExdnAq9L8cY(WX)&^p*9uvBp-?Hn>A_OhvAfzVwY$yuwiHZnuAFxJB zmxq&SR7p@gQ_^C32kaV@R$?mJ7)d3U&)fB;Z2|wA*(}}AAPQ=FeI4vH_`L@)kDJl? z+?pM%MLp612SR#1P&UbgjvQqXVK(j%+0I&Vql%7e@8z;NfeD(fgN=ZfJGB8fTPYgi zkK5a-w#zsDA+cClNv4+18LfK3?2vrpB9COgSsQef$aZt4R1EY+63Md>^of#{osT;3 zO}J~!0dDc)Vq9Ix5-b4ecpvEPb{*v)gEVTQ+)&%KfSadhh`?^w($PUa?3c=vHxfm) zM9U4OQycPYcQ1RT`h(RJz?aKAR0IvBcT+dY z)4Tad$iQXM@VAMm@6p3ma>=h|{lu`1$nH*pA|@Zm&noV^T^cW z=H7fx(?B&ogk8w%M|7)Z4pYmj3viPxY1v4Rte1V z;;qqch?5iT6tmUAWM>b1ieH*%VjiY|lenyc$b_cY*fyKhrbc+>Dvda)Nxsm8h}k0Y zTWXq`?9}>VCm5v;3L0c`C7md1L4^;nMjaW$3mW;}yvR^A_|Ddt7E*Mw)3PbukZeT5 z)!-_Rq#QGX;nUo>vI<-fML$U7XbE_eO2}oY*;Hh8J?Pdtxmw7l*KQ%Ja}m-EvUy|% z7^QKdtIE_)Na=L1)8Tbql8qoyXAP#4A8D2XI={!$sDuD$Iw22v0g(U+IbnE%{Al32 zmUJ9T_1yK0-_nV>T1%QBHLE_X)d$>(sEBjQa|B?PA=8L9;t3LCam^?La~P`C1;PU; zqqm;*YqM@shctl_52F++eKZRr0;7(`m8dSxqJh}y2`pM6Y)L^oa_Bi?Fbgn%A>nU1 z$e|hfWW|TR9wLI4sK}VF(Jn|?1C2L>&p=pHl4Wyf9oie0RvNHX{^iSi44P9SO@_U$m;t5wB}pWnH8+=#D7wL8;|(IcN1PsdwjvR(7op$IvkfV`?>Qh{6!b^YvjJ_K`te&_=wkCltP> ztQuL|BZKj#c0QY$t23{P3q7I3m0O~(k846$>@+$X=!^Z1Xd><-(da1*0(U?v*3x{m z*(~G(ecG_4Q6|mzBq0@)GJBXQkNT-(eHkE^b_byqwJT<`yl=ILeaN0e&X&S*x;;qB z4lT(wW(Kn#@O+9A5W&}|i42FI_arBZ#)^vE>&&NAyRT9Zs|;t|>^u~i{sF!gP1&#yP@ z9y1F3o$IZ3@e75%oUG6HI`byI5KA>REo@mEUc`7leV#S~B~uz?BYSjP$QEVf>DZBP4+ENi^2I6atn}qadi3i)}hW!h0f!ZBjxp7ml|ik9t76z9y^&Hi)QM5sEdW$+ z%Q*f+Qz=7o8VMtiYvYzPaH|bRor*&WYj?X%@DV{N)mFYymNu|hY#`%= zl}0vj;I2gwM5`X^vE2(%d$q=3ua^`IgpgySQ)Yb>Or_}t<$a{kiO_Ro1g`QRB}11E!=Dm z%C5~udtB@>13u+QP819wPw`VGMN>_L-%raa33knKHyFQ9*k044+shz?%A1EGPYTF%5;A<>$Lz> zsR6;?uH13hG|5NV)|V-iYXDGGsZ~Co$PfbE?-fF3Eb6Y^8VccVD`eXtd%!a-iTGe9 zg1JPAOC zoyZ#1dd`tzyZ2!)^;K%m?-xRCqROs4gnb}J(Nej!%_z&*4hLHdaI({=6WIxt)0kfYSY{<$Hb=E zbM+1_RDs9yVF_s)10IVFb^nqub*l&M)wyW0dC+ZMpFS5=K+l>llZ z{B?Yd9l(a8LsQ*qtkqCUVJ#0Exa}o^6gTPkeWjER*hQZ2xjT9@>?K%I8V8QE9>*f| zr`(oj@MEEVgq}oElLSrWVHASNt6ns>Be5LU*-5G!C!Z7+a~Pa`L=dVZ-h9{eGCo2E zvWtY&m1Ig>!3&&#Lylqxk~vA=$HE*@ip}X)$eXHH60E$(D9a7GRCI7a4H&S5x-2kq-x!=KAf)x>BOQ&bij3g z%Tm=1;RzG)1lLIJkvhuDtKpo$V3c#3nr#9et+dl<>I|Ri(VUwi)bodACkliD;06mZHE)X~R>VmJNM{8eHS- zaGC{u)TlMW`!>)3`lM#kEE>4%0CtAkR13)_rS@Q}=}g>`;Si7~zTz`GNRy{}Nal!E-5}HC z=i|xDRtOtnH)XcXAjom=!(P(LIuWit8qwC$XxAII5{@?O7%3t*n3cq__7}>5%zWE0 zXg;-+XKFmb{v5$OSjHGUfbe_CoTy+DHlPM#(9k-*!l!YMaVHq zMTPWwvQ!rEV9?GMHc&UaP4+8LPofHJC3W3!77J)ZezP@da;Ux`A`gJg$*tUO-ZvL5 z$r$v93t!F1>bTyg`I_9FlvL-TVobc94fN117vgeHZsv`QIe?cA@{BBx)q8}Y>bF14BBaNgB(|+ z6R%b&evJxA?2Zi*s*i$coRvkf79C+bNS(K#*(TUEOS3%uVYG=dJ0*}co)IFt8SjNk zOLo-rgaMU6a2y@Gl;GdtJT{4HEhr8&swTGWzN{CZ8;#r42pYFXkCEB5a5~h$QHwng z7wqwH*pfD@C2G#B%?7-SWyFpcQJUoiJ?+*?i^0$xOp9Bl-v{A!SIFaqLS%&D%-=Lh zPPdwad|8-oORX;a97$Ew6C6`$NJx@{Y*e2lGP~_A8Y`Ow==EUN0y@tt+l+^(o8_Rc zB2*e7qXM@>dPd20A#=@90;<;wf>xs?H?@II59-xb6ZUhCoiz|BvM#h4#7>U{PH7rz zc);r|&fdV*$ytKc7?xYhT+J@m7bY{G3r?5UReS8CL{5^Kxg{$}is+0D)#J1f;R);r zX+Nm(5oN-T2A14H1|aISwN1BNc43DfAvPxvJ%JvQIxHGLrS1N%wR6Y3kqB7it41jG zQ=U**D_hm%2^aI!3hKXXH@y`j4)m>r-;77QtPREtgY`(24CwwykMXx2ucQfXQ2Ji) z8&hFlD?}R0$lEAe^CJ|9q0-#8Rf4}R4gEb;(-3f+Z^Ls~c5GXN7cgYkK9q*FK%vq= zgKs9vW(UFs4P!^588+%!)gmUAR1$eJi!6$1(X~Z4NTq8v)SGeF>(o3sQ7Y6Z6sH`m zz~>^b*V3+Gjh0)LTdbA}=eu&3hj5&a0lyXN^F`akj14E^TL!Vu`JXaokH0*H`=yc_$Cx_8zOQ(otL7s86|HF8ow#W<8xg#GU}cuh`R(-W#qMwx6H~wAwbxFmo9=sb;2i-Nf@72!1odW z7p4Ku9k`Ruu1spFE#T%CBggX^O^%zZR+to=!qVAtcCg79`9guAmVDQuP+!ZoIm%w8 zC*>VqPf`<+j!ei?eH#IkRI?OmJ5sN2BKp41L*8#!GY((YxWR(AG!=%0X>uGv`^%a^ z5G>bq*P3RKtDp4XtfP8u@FOk8EgiC8Dh-j**rod-UGg=yWgzuAa$t9CAwO=c1`_HD z3aD!%?6g)&1MIANZ8ov?vbAcb3|inT%wq`OZ6pPz1^!v?CxZIBS zIWJ)pS+RXyK!{CJ)H=P4+LyO2h-zef$VEV6N`*o zfy`1_HWIZZ-U}U}W7UepoM$!!2rxu`M@dT}>&NmAcr$!id%vayQ75)P6jG2eDrT#q zYC#;&5z`x_8Q6J7lsX9AfHz-sTSh|XDHpcNv>1YAFb1`;3<}<_mIV7dZ}6?4+iu6U z@Mek%Y)7JdVW+R;`)VQQG-gXdZNYCF5x*@^ep4Oi>xCp;kc>$LJDlF@!81+tX%2R| zE;mP-zg&kX8U(r#2+ja7HFq*a$hG<)K)t?VaiDF(&H&ss?JyittZ66}Eb37102hZdEl;JAZ z%_Z=%APrT-p^c!U`_mSx2QtjuuiL1@kqC?Ba-#?z2Z!{1Ffx<12z>l_tAR-w^#w3GlaXOiP7HJel?<4hOuJBE$JLXc&u(+QbkvC$MbIYMQj#F>)`Z_Kk?Vpl@aeAa-pNa7m?@MUttP7YpA7(_B*Pm;#)hpml*T#mv}^^n~| zhgL$I1e*jghqujscho8uOw{Mov@FW00@YFI)Neu6LUO{0r{;yA>Vst1pb6TJ*pC@8 z-}agt2Z@U<=-Wl35k*odol137@a>Jq50!$7x*}8fFjH0&TaNlkx>Q2RD@C11>FG9N zwwXje(<1bZos_?v+qHDUeE&I^9CzsQ;%Tp*U0%n)|NM0}F7DOxqFwvxmjUS6hP?c~ zyVm-pXP>*e86YmOe>|^a2N<-``H2_cz|E5{zU8jBKGY6>Aq8Oj-0btmslF66@7dv( zpzql-fBO1m_uaA9*Fdzt^g64#57EB=`kdaJLFvWyJ0^Td=x?ES+)m{TN?+Pe<-Tqz z&(j!#c*G>lq2{#x8uTLqH74_Y+mcVqf7KR1zw^;)%`b)7ds_fK`>B-+ zG2s!w_SBVX=aaT_kB@z3UV6)EEio7@u#nq(e~xnZG&3xR%97AiLfQ^LO}kuO2ua@{%fZd zU-FEXO2x-*`nE{LKX)k_DjM3NqS@A0zuM>)K=t+_@L8+7FWr6r8Si@09YCnRa{{F2 zTGM?V?>mys`0o=0Kihxxw)LC0p1$1Db9jb?7_;F&{0~pCcYJj$9)96wT{o{eyLiV` z@8?%%FMC7W-x7v}{Wx;0BOBT?EN9<@j`YUC4SQC0&dDyh*ayd3zWP<}G3{Jk?db{` z{e^_(PwoAu!-%QYKgM~#0oD4w6S#Z^s`bbJ{RwjZ>%%w?PqluWdBSiU{x1j|$XA*b z66xfh9^E=y^Z#;M^CgnKlx`h2>f1uMzD&6Nu}vW9zlvT3aZk@{6z^TSXFUHE?mWSr z^*!mB^M9WFdS!|KLzqIo`~Nxt%o}3=UT8e5ra%^RHyt<#u87Y+N~|Ybr}v^Rn$zut zh>O8aXn*J?cq35!DZKf#^D)N%1h)MRF#g9*r}h~z{)^XNI+_xGIW4!zbjU6+` zW`jliZ8H-n?X%j#5nO+ z0=bPn+{`>-SzZ*<7flrL{gWq8@b49u#w-$?7~hQ%knfcga22zF0XIQLB3D^1oxoMh z0>0gN%H%4Cm_1w-$<+jVyceN-;uXi^E?hm0%cZ#VRa3F`uU#K|J-&a9AeyN^``R^T z@&2_&+WCI%+CY~Q|4)++oI=*0#7@}y-Pd7Tl-;-a@q0YCDM-L2QT;MmN0g-BD_;N z;n@Cln9vt)=6D+S{Nib9FPFf62sHR?_+~t*o3_vL-v{P3m#$6P%Dx{r>~?i;wRAlF z`jMuu(B%`|Qm?@{pj5yVtUpGdR2Q|a7ud|*Q}f+x(<4t^9lpMXc~`l10vm;VCTOy% zhX`zsJFb#36xeTJz_}&>P3}DVmar|;yCRwK*GmU>Xjr88JxbBgFt#V7LpdJ4hVx$E z_iBA|UGWdE$GwZKvh%K#39(nB94^e!FkTb0cFgu*)F$KT@8h*-<#@d?ZId*8#h}VH zN;&%`ZipvLZofL-emzAuY=?|QUXA-4O>wnr4Jp<8N!=K~(FbyYLZg_J6K}}j8)6AR z+N`$bVuAVVu$%AqPQhBCROq2H@%L-GHn2@(KToG{-0mkQP(^I~XF9Jl=>E(@0P4I0 z?jNmwm#Fc10L2k6;=fP88*{RM^VY+!gdXqSpvUp$vAXiThtoe>*y++869rN|XKg)> zcU%naLG_Io(%%r2&nERyBfj>Uj_e+*`YUgUS!c_6g$5RL7O+7fAjsC%HcKYtRW{_V=aO?&hS-@z8&{m3(?wnF3s!q7<1 zjE?$nS10oQ@@CdjIU!Ft5b)-oIgb$7#e&@5k@l(X++9 z;D$Sva~I?t-*se&mrK5fyZ_6FTb-B>I9a@1dKK@A6edUwK zAAV%G%H(7AlaHNGK7z~h>Br`W%qQRa*!h6{WdGGi3*GQxcQQZtDE2yiy!+&-`H^c* zXa3`Fai4sABnkNYVleX9M<4H>K7aAM`~ z=cMG{fae)seY%bHM51UyQ+3S{){1iwjgS13Sm9O>bfrv}4ixOet#Po`8P|oRa`;AH z#4Ojl(I0>0xfh*b-yL5983(tB$R$br(L3gOq)2yuce%q)Zw>xR>@oZ6r`^of^Qi8fs5Q+xLlh1kW2e9B7Z)2s;3t|yZie)7IQx-J=@(oVRZ{5 z$I{h^DQ8K%4KSntY*z|e!RQdqJOa9)s6_rFkq5EeV+KQtZ8|W#L?n0+=9CpoA#kf2 zN3+~rB>7!pd~x-4V8UcSjiHK|>xh-*r4u+i>-+D;9{r75Cv^$o-+Nfj5vot0PrDz} zicfD1@=B0gxPj#3Bw|SZ*;m@Svvt1W1NScWr(Vn;kL!QgEtgyJ4<2$$e&7-qPH%d4 z>x(;b5@w)DNjJ+W95e?jD%8`c~ClyD7(aE>!oAoIz$dV9U^;<9?FOJ+Vfe`c@Y?xFhe zlcVbQ?9ci%Pv;oJ;Q#kfF!*co9S3+ua({2HB0+YYDI27?#74@!kb9SImcc2VZ?^mi zeg5&Iqv{rGX}2W!>vxry$l;9l)Q&#d5Z;CRa{tZ)3S8)eDpbLEyrY75{jU1d#3+yn zZicwg`o4VclFmfQSGXC7^8>=AmF!Yx=FYd^)pqE}*gngnmyq(MTT^=_N&Gkd>Io{2 zON%A(FYPz__Q9R)*Ng7BcawhdMTdXfiWlE-x!}hSx!@nZ4S8oveg3<97x{zdkf45Y zT-xo+mkav(LoVotZlTKAdY=30-sODpc|1EV>8`IXm(_a6Wqt0+%|fgnf^GATx!xN*^mUdR%btJt1_5to^5=-J-l$1`ruizS zc{;3^uLd}&2T^5y>+hc^=*G^>+92~g|IHn5yabuv z)j9o%g{L!NN{#jMvkSLxxJ!<@Ip{x`!A~0#AJ5-D->)kyhPz+vR@$=B-!0lJM|{Z~x>`tvOCP79PGr4AS@Q(CPipUg`Ebw&i{@e>TAz z+`PmT{Q^_=Dgz|jz0Q4c?zcDkpjdqCW8x`$$(`yaH@e5S>20UIjdAIB9}1WLID0zp zo9#TqrGLF*5NrSa0o>G9G1(L){G7ysrR+i`YuyE7^l2Xn&suvjd&B;W-ht1!fQ zB&_ogs(FXo!+Q7n5ut#$HHO&LafTgb=y0U0!Mn3q1$=j(!bnJ^_?f40Mp55j5P;eL zaSO~Y3GcxJVjaQw^!f74{@+`Jyb>vW=RZH4&v6nlDgBEt+|{#1zvQNS7j>bLl?+H!N z`i6>LQl@_gl!>@BERdwVm3STpWvswzuxM-kf=~_ELC$>|abyRvu*}cx$*(*nbUvc0 z&p$bt&i>5J>+-DsGS2!zWP0v@K4Ig{5uH)Xa2Q9%`^3-d&k#I)jpiqybc6ujK`l`X z2Ew8Ombkknc3yJZ^NwRsP&m6EfeJ2kVuAB##I2A2BcMM-seIGZZ-`~%L1%CV)ek%{ zFr;=113wc{?cEyWl_*a3t-pAbPmhy`iRwGAu+b;TdiE-J-?7a53BlR)ZlLUv5Exf` z%jmZ_1Pa6y;qeK5&*HQWk*D9{jwbRL^Pls^-uPz;p*YH~+>H$L?Rwp5b7LXLekio< zd~iDNn+-if+wb4|6NyZ7<59f4c$%5@R|&+uZGG}OfVcN1_U@R)<+1+S-N(9DI%2Qj zee`}$m=8yI5L)907Z;3TabOhoDW(q(+PJz8-vcZWc4B?<h@#s55XedZ5#W>7qE8=j*F|P7}%fLITwa1V4<^t72+?%&kL`)4@fd?4SH#AF;Dq zE_M#0x|IbA=9nlmdwcb3?Ar+}p1uCFcdYw@uY zme|?b1@jOiXKvyIeB_RtBHa#nK@vLP-6lwM2$*B`PQSw^7Paa**6?*%yg<6FRdfd;3T`Im;!|C3uoyb?bA#{YKO-{TZweE5+) zKAi2>*^2J?^4=vJ)K%uFFP%PL0?z;Xkc)sS2Y>F_#19uA!tF|{Gqtq=C{;b#f8JCCtDQzj9Pf0RLD ziQ*z|?$6D9PbVA0)Q^4bfwaiq`iY-9svkE;dPX@v58ODycl`Hh9@fuc4gjNf$*-l*XFKS!jV!N&fKJ9k6mq z0@$mM&?whdz!P2&g^DojV@wuk{Eda+Gdy`(Sd0?-L!rbU|0nk@lRqr;Y53xW67%RK zL%Uh*XMX;2$-zS{`Mdw8dzYL!E_sI~KNnzp8A*I`#0NHhv-k%X>2e!>>7lmai{JhB z^L+IZz&|{0!^dH`_v^hN*4lj8`M=>Pm&^b4hg$wSkMCXn*Kd};Bg=md5RP2=WvhR) zK`s~n_a18ToOH+H&luqsz}%K9v9%v1tFtSoIa&W1<^$sTpORm%C0}K?cf9`+_67&% zO&r3!H^j!o_9=nIJ>7k}`{3|Lc)S2)jPE*pCikB1xuC#*Qp2A%CnnSX=%Eg*^SAHa zFcMEhbQG3A>g9&*4jXpbidWpO8`<$sX7J0+`X3%@v((?cW3z6cTYiFg$6o9fBKAj8 zVd9Zy8V1?`pkUQO_#+CpvvfW5v8o(_jHfb)YOz+A6P;3RX+cjEi19>JIXcQ91*THI$t?by`q$gd;q;Zn^tn z&R2EC^I(X@YCEPjB}E^P3w?5p<}8>2xj&`?#9owr^L;xLSRZ0E(4RlLMSn2Q=gKwR zanE0Q!vj29$Quv!+N(Gdet-N!iqGGngR4z`brLghn6b zq|f*?+3;U4eis-Men{V-@3GQTsjGNUl^*GEH zopw+aDL_TTg-)8{oCO)~aN$^L5w!*F)k1%AjTnj8cd#VvEza7HT?$vuVFQq2f7&Ec z5b@Y2VDBdOu44{qE6(l%b*aJ2p)4lgT7*fVNl%Z&dOSA(#LqZ=%2qVIe506)xNamV zbMZcjIygcD93xjKGYOW55|lH1q3Q^lj6Ek{z59MYq@K6ypt2;63k?16`+BuRHAj+) z4HqJ!Pp-Z}pb5p=_uMm%LUDCHp7IrTZlZhNd^Gd@mG?E8Mz6>x9%0xMT{B(yVV;2V z(uXTF$?(Rz=#^>GT_(XZY>H2aB1*opO#1PYYr;aWP*ids(`lFpeg}UE#WRAe8)ZchXAv)#XZb;uf3i# zrjmJMm_J+20}S>iYe7%MhrqtG1wGV=pM6#T@u^_lm+z$sC&BoqUVQ7>;$C(aCTzU| zirjGzF`9xtoxSIH<&H6L*z1vz9y#Xhzj&5=016j#-rodA`uK(;9q~FA@!r~#!1L)I zu6*`0`_i+=uS`+TUi=yl-8HwHc37VWkv@t5@!vNR)c&itt-pEea9=7W$IUigxPb>| zaPyA0j_l!iGW+85CXxdw+j#aGA~`%)w(-9u^h(vIrb9d#Bo=|dy0n94Nt9P`=(zk8 zc$kM0JwzXckgz4;IlE=B=i?sO@|7A(AgIj;b{h}jq2>>S4{%&G_(PLzA`!%@sHRUa z%t1sT@(0m)!Ks&5U;QddG;4|nhNw(oo_hZpx8e1O?F2jbP;(gtprK!%D*P7!$XS?v#v96dZ-ZrYyZ(LXt|49-f>Uv0XF$;K@T$AYp>>pSI*u#!FX&> zdv3)y82Hv6Fpfxg{CIl)+3^ad^IzTC-1|}S7jJ0UaSkyp6F)l`-puR`2DxKz???Ev z#oUSTJAxQTix^sHk`k-L@^on1Ns#ff5$AgZA8#y2!2jjKyD}Zb`|Zng5#%GLu0vW& z>?w^iVN9Z8kixDpvftq5JNHlF3`}3;ZtT<_+&cENhLJyb-Z1jLeR)`*+z+2$h9CBv z$3FMS+txq3^@981>X&ce>NvYY*wXFoJX`LMJh#_z*~?omzl&lV-*K$bihB~D<(O_@ z_cJ|y$64GDwP#y(1GU!I(f9T!uYp7$#PZ%waPmL;zVG_3uUzMrwhaab2wb{8pf&z| zy*&Mel8h_#0r1eG@c8AP#E@$%?RX6!y;>~&g{eMS?Z{v8*9-quzxU?Eir_ri8=Cjs zr^pbveiduZ#~WbEMP~$P>-&k4CW%iyXwI&#J&juxfERL4#M7;To3n!BA3_RJ~e^_=1x&s`M`F;9%DhmyOKJsY9ZHq+G(|VPxF-yd_PsnV&Vs$<=B@9OohJA0#~_l(ehB>a@*xf{M>m)Ko%;dE0Y1f$ms40R{3qla z^2PJhyr!<-d9re*?_e@I~N33tK_q_N1^?PySrQLgvACt$vas2qr z{Q&;*>7kp*ql<6f-#7N~K70?37wAn`*8ZjV_lf2%SB~-smktxcSQk$tq9=a+@%nK# z-^A8j$4pB{8p(;%5!Q+QIkQ*AT~L;=x{+XZB=@eoD;a~K$6TblOLU%E-~XkvE!d0IWQONl?mh45 z0y}UZ5)uXXkbCYPLZg$fT(|07l7Ho2O%?_Q1)X|Qk0Yl#Cm+(I$4?MN^+Bx-owm}bo}o5#A`az_E*}Cm(Axmmpew?Zxxvk+5cPY9)B|gok@5e_B+$U(Z@}Gi!T!Avdf=eQaVpHgCYmR^1F$bIkK zkKEbv8y|ta&RqLr!$vXf4-%hz^If3p;nv;p);$@xM!%pK9*OaFe-{~hkNhVz1tgx6 z3e07(nkgSLPk5Naw;v*l>wL4~H+=XWKoGX`eVZRb&+Z*PhT`YPzMg#ep8ejPuK+Ub zM_uSsv`)f?oG3gY!oVWZ$>1F{pd%z6q5Y5cS&XwUeMg-6jyQ9dRCN?u_B~FCFm)7# zj^BJoocWG8b0CbM$1z9a3?y%<}k;Glvh zD8;A4gqYqNA=v9osCz&E>9a4y_7a*5EB~tUUEgI6vaQaRsgqv+HqYzE+*(m_gAmu8L!IJ&*-< zpa>Jyp6T_?z^2v-u2f05@-VehW|=~+uw3R$wViFZdySfsDL9p!Zzm?)m@?8ir?Zsv z^PoL%>9muiiuuUfrWz@_G0xXF4ROM9<*kWYuhT#89&$6~bcgkq-A*p_xo#;60(J1O6w=$^F61gcDLlyrh` z7nls0hBTjM+n86FnXL8~rns=5>Ix^1xtr7QaG{v%WtSP6-jt+Xb-tS^i{6T^O9q|n zO-l*YUzH|KBPy7kW{Tc8PC^%(Jw|lG<#ybwE*Y~wF^o>vVYZ8mY9|9d9;O7=1hAA{HcgkC1#Vbph1RxKEt;umYO+&SYh~Uj=gs!2AIQyx zT#ff)EmbpKu2SeWlcF||J#FI`vlBU)sHJK-&s{RQRQ7s>u#^L-S+siQh;5FC6DJ$4 z5ja-q7N(g|Lur(hE_^&yLl&q&R)bNqwCGN$h0k_qN+@rFpwzHEPSv8kEL*KwtHq6X zVaP<-1d&xEhFOTIv@)cd3(qfh`U6Rdw$p8o?yex#2K%gJq-Mv$f@Bjw}@O@F;}9LLVJvn|Jps(jOq=c|c{NOr8*tUopq zw9{u-1Dr+k$;Tt20 z%Lj|4qq*K-on})(Fkz`dJ|l`EE%9_R?9$0pSERdx@vt~k>R~S-H4BVaoCc+l9BsrJ zP18)mFdQy4m!2D0zBdxq!x7h8ECz|Tx7p_TW^d3k#blz#S)3!~S(OnsYihpA*5q9} zxAmG^(N$}^#iqw(=xEuAwBE32WfnQ7nkdV1xws9AOd!*%vLrEdKGmy@8g^fiXs4>S zb2xFgzL99EwGM|hp;fl1s=VRX#&lT~jLk+3>lV(!t5EOkdy|;uruGogH63ok#guBCjSCmPeo~#jjE>Ubxh?>0}a70O?J)09n ztgG^(?t)cTj4*xmhuWjudbFS8miH%5KYc#GKi@YUqk9#@P*kDT-{C5#5?4r(p{yG`Jrp%OvZqND@WC5nm$PD$EVP*B zC6PS!`YO#A32>Z_PnyO_j^WWY`&Gn@Dx1St(eoY0(Hvmc&={^$$f8Rxp{j$jyMlfR zHbcH&cz##UT88n_UNvzh*yyhCMYy6Y-XA;EQjIT8sxeQyxj)Dc zUTo$z#h%o?P{#y6BUmZRA_=F%6UrQ;eZ&;;&xWk{}*eU%>OTaSWvxOg1u>>54r9Y zyH#+i-HMsL;j65q+Bw%yCVH<^WH)>&wq5qxabwCWXBBA7?F*0a$6fefd3hF%>u=UZ zl94lM7#VYX#$&Z9<8^hxk+XTw-q2lCrB@{CZ=89Nsze*CHLp~6 z*~Dh2=r_sIJgGKKlfNdbj_uxTo}+K-mu+s?`Jizt4a`2Bf=lf5)hSR@U=#(k0jB

< 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%0A)q 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'b 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 z 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 Z40?N|;>b2~`F3Y`$u3tyFQaw*{{uK9TZI4s literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/chapter10.doctree b/doc/LectureNotes/_build/.doctrees/chapter10.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2f4a78ce3700879961e468d3a61943ae8ca52072 GIT binary patch literal 433265 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�rT8ZAt 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�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 a19DZ$HChCqd>vk0YnOa-M!b#I*ZvR8WrME( literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/chapter11.doctree b/doc/LectureNotes/_build/.doctrees/chapter11.doctree new file mode 100644 index 0000000000000000000000000000000000000000..20082b834ed2e217cae8f8ee7067c180c5a80048 GIT binary patch literal 295262 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

UX-C5?^nC26t_tXnVzZoRq{>y= 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 B^f>?k literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/chapter2.doctree b/doc/LectureNotes/_build/.doctrees/chapter2.doctree new file mode 100644 index 0000000000000000000000000000000000000000..13ab170bf8ca5e7674ca4111f275029f1222a2a6 GIT binary patch literal 454162 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�L_jRUwVF4!W*>$t| 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ŸR(;D+{ zaj(ZU=p@#fS{p}SoK*%rB}B_Q&XcX)bC<3Kk4TCM&4OW0C&mx614Ftqqc4%=TYW_2 z>~ncO&pO(%++sT4#s=@8SOqi32LCav+|gO9aj@GF@35Z_1|aSm)_voY%@*8K3MEKzdvlrmc9;13O15d4irKiomDR{G~JLYtW^wg zGhBh(baNX_<_lZ0`}lyadoaFn)Ad7cTWN=NR9H=%o$^83?PO=}58@1C_j@*Az{Hpe z?zBe<=L`!jE{k>FADW3T?pD!sN)9k7^fWm6=DZA}`dr$Zq8WKPJ7Tx`Z0WElYxPoR zuwQI!GU>x8HmT&`H&xaR>BLBqWopHX>b52OY_ZpjY@J#e=A(|bn#*fNQ5mo`9TypL zi8|hT$zbTFy{e9jFE$Xrp>L~t@V#CV7Ch&s3OSJuD5;3_#JjRC!-A{vc5KB6l zOJtdvzHZO

4ZkISmYmv9L zV~vf>EgMfHZFbx@3HMp__$=&DYT+XNnFS~Lv=^z=TUYnwqSF4!x zAU0F2F){3Kh}(f3(%RF)?-WhhvkP*mo*+1(9));!IhvSXi#(#>ct%9WIoo;*4s^72 znhcR1ACwcLmbT$yR(~W#BQUynn2W?Yx;EGK;GgVT2(F72FF8B#l^7`a+q{51bJN}2 zau&rZmC!3A?2(1KTpH)8H0qxi&lJQq#pR8N-TE%w>%xjah&g{|)AOWTba^ZW`jkC* zBzQTf*1AOrxJ#@JwZfMy9o4Rℑ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 FOY3s4V!5xcKSg*Q~<< zpn(leU^jY@z3w@`xiEx7ww^y?=DR;b;n_enYpIg?De(t3| zY_1|-Z^<09chPRhVfM{e;}Y#bYy!Df+s-}G&GKQ@_pAP6GdBJX+iqFQY!iKZjj$%V z&@C@t=ct66ZK?nN^JaDpR82wLNxE)Jmh+A8Q)_<#vXMs7QND@a;l-Ib+CpGGvqEt$ zrK@^-gPule^O3X|PHX+pcmuc;4#jR6&Vt3Kq^p{mK5(H~OI)nKQQUfU^l%*PrbM57 z13iOzds2u3@3FzA@`_Cfazn(x?B5>NK{fMtfjoO={=WQA{PkYQt{W+R9%RFu zU7zWa@d#oe+eOsJMv67Petdk|_N{Ru8p+_LmJgyPL6h4S;D{K3`>~*N8_jFRxHl9{ z0h^Y;v)hrcLVVgzTsp;ZC54&VOoQdI;C$L2nWvDZ1;?$775qN=Yy0$`RXraq<4?!} zaF=Ja-gbZ}kUQwdL--orSgBSe68@h2{mE}tvp>e2Uxix6g&KHBOXg(p)&&f?4Zv)H zRW;tDV2!q-;3$yk5q5<-E$!!9R6316tJ?gv5_cOkwVpw^A|}jYW^Px-ua;C$Q_O~r zhz2u8F=t)!Ig_;?mB=*y-m?7>_7t6ONl#iH#P!V*=V0kyRcq<}*1r6-qgqklR#Z=GIc0Mx)+7VlW9cP$>)n5o#;(b zFH&t9W8lB@Aj4L1?C}*xAyORT$!S(vM<_q&boSmK1BhhNt<_#b^2;8Yd0TWvP0G-I zz;Av|5k`y9B+oYTxDL{{yyMy=0X^Xx%bY_1JuX$P1`T9V0UNygg;iNicc;xc4u6eE zvRGVR)^y_sz#4PyY@%*=G_UuR@i!NU9N{q92PFV%ft}0-3$V#WXUxw6PH+V>cd;7H z<-)q!{WB}Gr(7tRuZq6s09}@#1!hWOPw|V$&n#2*qS~JswXH;pE%&Mm2*yfmeFT+s z@df^Om!W^0R#dqTTu>YD>x4)pe93TB=fmC%B-304#au5yJ!*R)-*~nddSXawHx6U5 zIt(t{D{Z{Iq8}>Der}pL|JqQ(jN4_`@Vm~2g|}J&cOvW>|9$tvj(;i$1_phtdZ_kb z|D;H`3_%b8%cuxB$Ohtbgo^}EyjLM^#a!~>L1n7;xLC?gR{Ij(zg=pBCvbh@_q%ex zhu;$QiUNN$YQXn0!wZaChT$_Daw%-`Ak!HO*t$UF64PMjz{77ZvLeu%jvenA|@hj$n0yO>%cL}`9Y+tK8U9$ z(8E?kU20(Wp+V>y^I8uaENg_|Zd(Bv)RLCrt#Lt9LdsWRs_&Ro)vYNpB5ZzZB5V=( z9H0j56Fe9fwL&BQh?b&bxNvk4Ad>jo?uDyxur*N-=7w(J_D#Ssj*G{`=YrXh9V?c$ zJmQ}8<&qXVj{%yAdzfq2@3Xy|3_Y5wbdP)^;qTw z+45JOi_!d!P2Xlf+WU9=AllG&#;kGY*PcaOtlpxb`LZXxXJaU0ZBCGP-HQD2py*c7 z3F2g$wAs}d8$E?Tutd#4B!ByY={A@(>;82=e+rNq)J=9i%}vtNKKe~O32>fQy`E=j z)6Gu8G1m%7`wl9hityLR<^AZXmLvZ0m3i^NvvlbxLz7$g7z3x!-85&)r*{L1KTy

FUCIaXhn|cfkbMZDxn|W zX84R;3=anNm?AZJfi5%hv2VOe0D5ibbqak0D3OG0-Qy6wo}sUX{yk#}PC(0T34dFI z5itXz7@uC+X}Yh7Vl{$p(JZ1h1kDX8(08z_{E&`a^Nq<0JO*^Jm6+InaA4oQvQaxy zNvHh%vuwAS=fTC1;}}JZVhXAQ8xEsEo}|g5b%&I8PJn;wg-?FKWgm$0!{}T&-u~EI&T8QDY1*fv&>PvScR&#Xnk&v zN0byIo{pOQ_gPGl?E25Ig=sg>hHiADpO^DU-!*RIEX}UE{Q`?8dF;QTvX0YxmFSP6 zx$M_#zZB^(sEagNSBpiu`LIDf*0B8ebeV3H=e?uv!tH9if!pI+>KWvZ z%ijf>gYtHNFCW}+@t8@BnwV&L{m#8D6M|Z!sUiduqQ6&Xrbg5O%ElYM2DG08&Ty(= zTc0*h67If%e3y@Kg3`YovzjnOO*giin`7O_<=e7fi+He&n!h)y~Ix%(c8H&n6lQ59<1^)sgy_j~{I6s(5+7PyubfOqRHigl1{ zaK48Yl;;ladF?zC+%BUs$!7WQ_*gdX^dIf^`ZlXMXB|k?AYUP=Ij!Q4rntc8IqEh6 zw+iR^`T%ydwu(e5It^=%M466>xvj|?c@K&7j;>^Pk2mR)4iqKmyx^-mj)VbTQBU(k zm#qEN)ieWwKz11$r=kbRZQf>x3`O<~yz8}aK-mo>@ho<)sco%L?8kk9Q6pxRGvaqr z*|}on(ELI(*`RKpM!kNVI2_b$Ts{w@{}DM7qpUBZ=IuFoKzBQqvL~Xf)4jLn9^6;du&@@`+3DEm~W2bkrgWUCYg{0Sc zqmZSGX4c$4o6{R^^SgBQB`aLbaAVp9l5YiugfmNauqK=nH5)F=&kG~}h`Rn#$=Q}` z_x|Lb0NsYo1$teyd%K05#B)?8&PU(178gFcuREU-G@i4|(E~VwJsWt}GWfz9w_C6* z@bO$QdC0Dmwcgv&pml|Zx$tPgzt)M&7{Q<)@5c)dF;D_alSVobO%2RaKWH6?I(Kb^ zRrl@}UrBD2pFdKR|655dOkDmW_<5L*}f`l_i-1HX*(i6#qS-j&uNu3&(v|YvKyOhY)-J18t{b7 zjo|F)d9sLP&<>+sORPVC;Ek|D{r=#Ss)mAEB(!Xu5PBduzLUls;q=&(f15RzJ%hQO zV)u=1y~NT_#q2y{cB6oY?|GCT^;61LF3P&Laq-gLCFQty0esuo@z0;T&pMP0syK%O`JOSg8;KOjcNx+_0?$KkQ^I4Qe3VEB6PyIZ%+*V8!A)xnt&L=qH z9ywSE%pHQ<9voZK_@TVGCAWN!8qURf#CnGkeF0jMg}I|xKpO5^jfD@#(~|n>M1X6B z!IMD}&vAi4glxlo(gH97Khd>+47Ws^^s2rad5i4t(IVW%ahPD64kE+X4WV>HQ%Y)R zxfUdalW?T=Nuxz5DL=18$fu@yCi(71t0w0wetKOH>vE^TN6aHW78^#SbfJgX z9DPO4qZ1KR(e%TmDS8D;2nBc;nlw+WNn$XSAj1YlZeDY-;m>68!jMPx*<_Tsf)XpU zYJ%R!!#M9QY2vaPAm@BvN=laiIbXk0u5A7bertT_br3vKtK09v<{a;PsUT_g)v9 z*IT{=F#;cZVsRf3-%&&dnVxw{u}~Ln!C7Umr$^|0XYJ(r^}4oRAZkKk?kZ#u-@T8w zu%rtrjAORP@SEisLVkO^Lm97I0s(?-NQta{k?bL@qIC=sd?TgMKyq=Z?LgQ z=WTPI{{fQWzrOUJ-UDG$^nw6DOqK_L!UvaW})kLA{n+U~q4eDuc z|4Csi-zMaW17-Y{kSlQXI@3H;5nDV;M z0)0_iuai|l@v26|(BqVF5i2+EZs05rjia8{rF5X)Z+pAO4WY8;J*L=sjqh9@=<)pm zskLESy2e%&U1?x&^dforuL1M>ku_D>y?+NWvAetWJK-#cekhE$F1f08HC87cX(uT^ z6xp`P8K&Z!TETCRcI{`7))G@M=*yLZQBs>s`^*Gd%OviE2dPQk$2$GD0EQ1y#H_YZ z)1aik{MlUi@`sFcQO;^>#!{2 zJApnm)X_KSq*#RFbLhVyhhiUU3NHVhhsOjEs@w;LMO$G$zBZ_9zCVzI#k>R5fiAk? zE2bTRyln-T`7Mn%LU#hru7$@&v_kNB-yy1Zp2^?(Z=+mxSjM>Hw& zmhsv&5P9_a{n|k%U-M$cALj(ZKf8Ntd@NW(rICSqQMpKv=amae#>Nr?01uzYkm`IT znIS)!m?b}Ok{b|}bn77HCx2H>74lnY$K$)UQ#tm)54Q*Qyjk9Ilal)OdACohMBMx|VO{2xbhOun-G%-a{-<8#Zp!g~+Kl)W955$VF?xHAm1!*$rA zr4ima-I7TNC}RBt$K;MCtv9#_ zXq2DOW~gl0HhA145B;Azc|1`C^f~vwI)JAJK2~r6J31X7`p02#cgmll?OMt!sdd0D z44M(IY7#gdKK(0eZ|WqfqsH3r+|+-2-8|vIeJs$+eW=GJSd9@+#c^!>+;jW%De z#)f*UbwDM3xyB=&nrkxi)ebcFQQ0wYU+f1OZGm{>GgSOqditskZvg?}_cQf|8`^mY z2?s~mE2@%4XNHJm)J|;AItHEg<22jH;k2`7tNBe`Lx{#uFTeCK=d=3M9zmFF#r@M& z&D`DID5*a8%p$&+bVG~?On|D>D{s5KD#%vA=La;YIlS1BsF46~K-O)NG%9a4V;gy| zLjW<6l|b)8WAo}2_#K!9V0NNMqi30IG!x$si0QhizvlD@`6;11yzPfkxiSIQp0Yz` z=aPce=+HQMo$lzp76iDkU}?S8;u7{HO$$L1O(fhzl_DJK@kzbOxgOk{+?D4pIp2G< zzjJ0dh|XE#QS-lKhL4+N>G{3OfDy)m0GMJ^EdW9zf6xOMd}IjDjmoR0x2$CAkVs=R zshO01i!H`BuRD!oKNj11VzZjjXH967L^*enIZZQ2D*GA)3KadAu&21a@66pO%!ShC z=j}0D-1_-BE);BIc+lME##3uYv{lt;VjmtVO1}1Zap&v^pDvAaJ%0)ASka&->|HtLH>pYNUNgt^hj% zXYuJXTLEVB&AWmu{mqcbz*lwJn51S`)DOqrxu2h9kKC)KI+ZZqDSGiG8h0X1 z6%M^8_c-CtmnNF!3z=W$vdI&DtYcxOP=P*uN<-Z`Q-`~`&+>FlU%TyW`aQY6Lk^|F$Eg^_Uf=_KTf0oTlf6uBU~jLk1e19o4@5EzN9;I8PRA-P11a-IwSQAdo?( z#OQWhzXBM+0ioDWe5ve>MD8A<3COcWwE?27cj-{|bsaPPfcJriFSI@)Dx{7m0Q7&s zGkE5=z-DMiu_;Orj03&^uML$6)dzCADPGaAB+sR*WI?(rDE9`e4_kNer?w$NX6Ck2}9t0ehS7=iABRC;V%VGmK=} zRGkh}w1<+!t-^Wa3|CTQ`p<0+mVBvnm|Rk=EPTuJ1)>4(@pj8R?CqTjgtk8GO)+xO zF4(Wx^d21*zg(EzybOFPj+w9Yqwpec&KKbLKblt(Z?})P1e%p1LpV`>av&CYdLkEd zTcnfI(R#PF^TV3p8O05RHi3`)+%9?9m}=0qk}TZ&Hk7h4y-2zMXY-W$)4ib9(Qnme z{cOkOp)UeK4v%-K4Wfrvj-oUOt59sHM z`hMS~kw-gC-(TPhtW5vsXH(_z&MeWW>y(g-k|DiEA^;n>TEF2dV@4Ynt+C3O^|Z!H zLuCxKpOC4O?AMJ8^k><>zMsS#h`z*7OS0DUT&A?Vvx3U4pjT#J?CZ)fQUhzB$=g+n z$^UePk^;x#wCF)wMpHJAM9=)xICEOMJvLts@O55R&TJ;qxi57#f#Io;d3{atdOJ~= zjzjIF&9)I_$&O7F+s5R7#qBK&ueq(Ig1&tbYjrFkfkW4U|KYVn3z^`v1(#wi zvBj-9^oxNqR(X8S5X^-_@}$?PQK;@J`nly-bbjZXzCZdPM_0n1k7_s#uB)ax0LDMg{yz9BB=M_`bT_{$|+DDmpqpd3E@uNgcMhp`Krj zdcdmJm9VOq(hi9*P*?yb_~#c$;>fsfa6u#GYTu7l8LM0iPmkkmi+sceHVrKaLF>M2 zNK|6m)8UJ=FZ(`uW>I(l-QR_nzK8TtQquZ7?j7bm| z2&!Q2yAaSSrbSSLLG&qwWNUssbWq_PJ>MIx_o>#eY0Ap>W68Q zQNO(W!m~RwHh(BJFsHehy%O>(;lTgrXxZ9^dMBQA>5GB~otS4od%gNG`Jfba=!5|^ z%!JA#Yx$}QT1D&$gSHp~kE^?>Cm{#aokVdUpP<{>H(a7yp!Zk3;rlFE_y?#)-2E)#Nzq#<5!Belkdpwtyy2KBRC zU^=^}LEuXq+ft2ZF~s3Cq#pQQEtqohnF1Ayq)@;$LxN2G4!1U}`o@NtE8hy-itp-p znFBmok+tA$M7K?UHSuFA6%g8gY5o#qasvC?C-M5zA-CQhr5yamC%A;Y2)33##G{sJcDxnjcuew zGSl<1^>22E{uZJEY?FA9SDO_qOus`W<%0Vq?L@_Pe1+8h=6nwv{Lovn2$~k-a!kfD z_WO5M{9{O){q|{jQokT&ype+|q~F)Ag2a6&MAy8(gzX7!`2JYW@797d_Z05tXjfb{kv zjuw0j<5T8p5<-&w9WtcdYZ?H)m1G{jIo&BW2jwWWh#k|U{b6@C|NXoi`|p1FhAkZ! zKy-7Qk^*AabiztHQH;H9=AhZ?EhV3n3>?LQo8Y6lSPjP)IWv=*sPK_Ml8f0MZvV%z?4l|M{N<_Tgh zQz@(BkFolu;i&=eq{oKb%U|Z>7ILgW1-uX|MPq{~L34T93RgNtI6&#%?KfFD?ORvR z(xkdF-vwkNl!L{bx!fh7t)(6~0@>PXRA0~szd1l$02#J!%8J-42dPVfT{26uV1SI0 zwBC(OxazeIzNqZEO1{08K_A`|+5F!}d6eHu1#j9hH$QN+5|U9g=7@_Ib1-}WbW}BV zgbdH_rC<8wAu4H0t3yjwcjO3+XrH>7o@8SYKx^5)%&7@aA0k5xP-LU#EdBTrgS3;s z6p07qgKe4>hWZp3@@-P_)1qbnv@eolElU*Ua#f3519ao=B(D9FamcX-9~0O{$movN zr(c(^q}XRFG-vURfFZYkzA55Y-z_xN*bVS=4Twf^D8WDpx`O{_vbc>H?!bRWD)O;E zTh;25g1+R&{d;zhE5L}~bPTs1Rq2)25F2dY=vU$_vw>%QWX_5;ZXl}o8xqdXk)^7S zFTkLpjVF&4c(>JQ$^!hVie=^QY96KWRgxsjyR4KPp*P?90F^!|mR zBb%wB1Y;3tPWBgdrVsagNv-K`H$r*UO9P%xYpLvmAi1-Bl@uZK&_RoR!M$K85C8)3 zn-&@HXQ8?Tz^v&viMe3Lg_&9Ge)P@o*&%r5%3lYjJsda6^W~VBt_@r+BSE5_^SLd7 z;fhM1XZF2VU(E&&Tz*s-xTO1#x1$(=!bW?de9P~xuO9A;mElrN_W&5|zs$3GUvTM( zN2Khn$(7hY<@;e%U`PFLDUd^n!5tu?^Dr>*K;3**+pLmpU$HN9mlw&NgWi8N*5%yy zRVc8Bmu?C+?nXO(UtVPXfUo@cf4V3XO89&1-2HXjhnxmgzfp#}4Pi{215X}?lf1v| z^YdzNMkvRKfqh2o^NJrQ@v0D(ZfJsw@Em}bs~rA#>33&r!x~KtyP!n5b&C0cF<`4^ z-hatrAl`SOuf_R@Px1v)C3nbeaH@wH3ecrU^+Io8bZ4x{gD?o(!=%b8oXW%=cY1#{ zDj6QyuGVaw7h=rI7;b52*A<*0`$SaX_W~?99T==|*;dHZO<1|b?A!jjO3H{AO@@N^ zYPII^IoP+c=43-3V_U%hAJF+hN4-YU8Rz%=i$*Q79mF??$Py?m(<3GK{dyj&>ZZ4+ z|JJ=Lb8h(#ubKj>e;b357gap`U~0s0E$zGIA@wmKqyh!;$M`vDf~P+94&S2)IfGnJ zNuRAB4$NL4)j6DGI@{@XfuR-;G~=y?k@MoxsE>RW1^2eii<-xlp2sR_4+ zDI2!otVM3D|1yuQYuJ>#FSm6Ype!a(?8&Ze6~jyosV8Ax$|_Hc{=%ro`CEuBnDQ2*d}eE&RRZFD{Kw*N@g!OyPFiM&BH4b^P@OBL8{n)ATL$eR231w*cl0{IKI* zeRL2Grb3SE{Ns-59A1RV*vH;R4uOjN$?s+`(|aw2JhUD8#QRkgw&wZ9wRTSgi22{Z zh4~R2M`sci*ayiz(H@Mj<#8=C#uyo3zA9vnBDK$~&cVBq>XPGVeXu==hX>bjBTX6= zTXjC?KWnUI5>oR8t-yE1dnfp-xf8bc>2uKaA*v=v@FtL8mg!jYjUvB(QjiM5!nz_W z?Q4r)7sBZd2IFJ#zpZF%2fN4ky{+RzX4Fag~X!=?pHiOc}=KyqEl! zpb;5{lBPS0|f-B$j!*%0QQv()-hjf(uLK4=YC! zmYWp{<3!e?zTuqzIs+JIJAdF|D=_(J!n0m;YGiqTJmY2b^9%nza>V_@a2(sGrxyoN zV%~b|!8a7mCT84bUI9mFU5zj}v;_LS!=m}K{*8tNpf&*wGtsz;+zrC>zCFYy#NVL_ zqSX?H&m|!XqY(+DCcUylp!;Vws~#`pyUy*rr6G>78RM2Om_JDvv;vI>eu7V4eaUIE zPZ_AfpBcV=7Y1;33=E7S)rq-J_csirxO0BGU!*O>%YKh1wT0t3`Ymwx8{q@`#n*?v zu|J{ugp>P0Tp7g#{XKf?=X)?6={etynEM#5zxMkl03O?I^WLjY!}=Bsa_)W3=PNBt3 z|Kn<-t*-{ZNuG1VeY~xKB>$Ll8NTpZH9l&Ct5i&SKrAr6WSFZ2$UMr!7%GZU)8|n# z&Tr!c=P_;FD^kAf7pBmNb#hV7ftUC5dXw5FJ-`9n_szuX$jUU9726ws#yq;K!1F}J zR7fy(0{$=(OdBks5N8nT4t4dEY-2W;75*7>)V?LyIM^r`Z$H{_s16c#;H4tE`q%!V zWe|+zGPcx!rIIzBS$h&9aUih|nX0oO5q3mG3aXd+CyIeUN3o$c`jq67ce|1i2p$61 zyfVb?Ai>&6_3_aTnQ~r(<#@L5>!BVfow;$EW$G4b`G zFoZqhoxUo0_|Lol<5i&sjQ#BQy1o!Xeue_Z8Pw^9{+}N~>39MEenzYnHa-$yghOSO zZ(QVE_qJn|=@X696qOMS5YG_(#2#pvYJuZ0-~3SlZhX|`^&Abp6C%zAY<_PUCK+aG zA%tK%tz8e=5~igAjxL?HdF$h~tE1mpl)O1bQf%>Q4idvCHYf0oO9KPE^cMPcftO*% z=acYZMwCcbGab6#>!bAzhF8Hi77UU@8WAQJ)sJr^E}+Iw=jKZimWyy(uEO>c-P|u9{IT9bH|*A*iq}miwG#{>8-wi@f68 zU*``D6GEhuFZ55c@gaFBDxbq(E7o}UI$!6a>q!(g0R5L(+hO%kXV}+p`Q**qAh(m) z;=fr<989+R^<}rh40KzDX_y~wuP{>@D&DA)_kDWEw7aYr$PhI1F1zHmeJMEScxXS2 zRG)@)fGI7ZJo+c_>+)f0)+Ywm6glJDJEDDR)61}`NUkHu*E~Q@Gs{I}SJ#g{!~AZh zdI`qe6b$ugAz&1&)x8!O{tgU{9u{WSB9!fI^B>rY<@DKU;r(lmzu<1qI$eBQP4Zo7 zN$M0p@3R#kJy&`&NT2y%{>Xl1;{&ftOQgvaDt+fd{P5@wqY2uj@b8p>;1d8&OPZ>g)K{5u}P}H>;o}gFxRFV-7RAg zwGW2N@5j6HwqN!aioAyBv5sV%PkUsOe9B4ISK*Z-OS&;u7i+hOQ)So52h*JIPsOo2 z6zA-)$`iQ_=W6K4r`=|A6xJPCv0Ru+S)Lv9QkYJo`^aPK{z81B4BEnLTqjm|ztkXi z9I*G;;S}e5WEQV!URY&4K)H)kAglAD;_tCSDS#rgmqdW=7WrQbM-$ekxw8s^1Tdd7 zmwJwI+kjI(8-}=9JJFM}7U$%$pF)JC$Sa^+j~a49?jjsM2RZPpw{OoJ=XdwmDfyy8 zDhyTDt7K2WRoLAh3Pb7RY8KbCq8TPFy(>VW$h9>Yk}2y>%J#gutYw_c@o4)J}S& zw+BpH=_cr1EEB2bI0Sr1)Yu(bu+7a;X^GN84(Q|V&Tdb0CO_#Zh}GnEThU9zn=Nt>iZsOj1i(X#FJ>m9@gZW?)ODS>QOrAg@oGvE4(ldF#zebURpkD@E~Xdv$!MZHn1X1+Lcd&f46nQq2!VVv5qYep z*{P!_*Ekx6HRqWbLe(z%Vc}I{g9ym$NimNzP`bgPPHAp9v8OjnXSU;Fxz^)&QC{mK zeB*<<2t6(y41EV1=*tz`!_I$fvT1`zE%v!9)&U!6mASmDwlW&y!(X-zk5d$$bu$xr zgovKHxp;Z!JnGN#5R#nmU$Kx zMmJ>mN&RT(LLtiR0`y@RKjK~>?<>TK*YgJ!Tk~Rg1X2RGQTbvX5`tRNcf!DsO3$BxsU?(+Pg|JZ-#{$|H#HTE* z*ICy3m>G4#Bf_IdRIwMRyMrA=xPh{u53m+C1~f`^rw5sO7w(Ynjx=1F)s2W+vnoA) z&gn!v=Q{KZ${SBGp6%d--a7}=$Y76K9i1C@1+TW-CR}PO!DqK zBA9V)sZbF+j954R0({}cSg?woETHA_xJquM9$&TBdx3;AUfAKi!h(EjKFks#J~x*Q zofn7a##o-(=Nas;!|Bq49?fOv^oNUqAT)UsRvyzS`z8vsy4mwVWoNe};X-4?B zqOMHYuxsSt@$a~)<4%G}%v^#zc^|}Lez%fs_n<`_?AGJ7XD$;dcC5I0_f0u`AWqJK zmmG%e6*0@W#p$v|4tLGiK~1j9xs}YK*$FK7abq6^O`>3eoP2%J!>SJceXM4{IfnBB zCaCqkNg+o<1k`!np10iM{?hLqB0Kqu*((d85 zvn97|hRZd8wHNUD*M0-G6B0~X(oCq5Rm<+t!S7#RF85~Z#)9gCY{@@JcDL_acLz;^ z(+)Vu>s38EXX>)t`6gm1=-1&y4{;V}B0PVK*bI;bJ9#(|XA@{Vcf8 z^FyJWI{1J*SPT-QBxc}7GzCl-#rl-rD&$bz%qqxO%WJ)*bVOX5rDbEd66o%%O(Vos zG?sCr$6dCUY=#CePt`V;7dzg$m&S4x_qo^u0%eLU#8{LabO1KN<|u=r79pl)NYy#Q zUKY(kze?lvndA4(=Cn})ZZ6-#wn+I!Up2_&;;9;8W2Em@z!`6deS-euKKaWC%@Oq? zYcwQ6->lu=UBV1{5AyS|=r z9`1|Te#NSf6!}0%=27MHiA}++4If>Yh?>9ib{F_6u9mh0{j~n64%dEiT}sn?tGjFv zwK`pqHaO0l8aN6mXOqJf$%EuWij$h#0sA_K`;v}zVox7c*KR8daGs}PTNI}|PqKX7 zlbaYlE|-yd6)L;1?9`{=g{-t>{kg?@ za;!3Tt1wHDpYAwWE6eqn$!W`u&w(X=U(*2-_%!GtCUV;hY* zBA<1~PMBoYI19Ps%LXN>SZ+^&_JYWV(D14ZDUWwtzfkYZBD$o+KBt8g{ zS!!x<%<>-D_eER7CUz^DBENOaQL~22?MV zMS2QbLtJEV<`QMIRNgur`#bUuE~|=znDQ0gMV3;)4GHF#ypdF>B2);~eccwjbhX$3 zalJlR`PLG$!=vVkZ0eMd%bKu$s6+c~Lr}zt6C(6MEZx2LXlRpszu4B`PIqN3!MMll zA4_!bj8Yzn0O2{gIU}-P7d2uQxE_hS~ldTYi zGpFJ=ZhNt|LJR&IHi-Av&D*ZL*shTLHxI0+;jBKCt0hU_SM>>dmwTF@)N`jcP7awV zqPRh6sqM=3?2f>Orf8fUkcAUG&F}H~xRoC@v!rC)t*1tzqPoQHryQM|U+1lFm*XY# z_UVXNLjgJJuIkkGJh4r_nC*yk9V>SDo`vHCs#u3+qdo7d^HxVYH)A&|DXk82g1sis zTeANzdVJLZ*$9zlV`eg|BhWO4P9`3nK#_9lQFNwBU_0u&2)^TQ@Prx z$jg56{YH8(<#Mo5iU5uVu%Xg62&_tQkri(m z@=GDK&H`Z;&w~!|ZOAZF2bg^EX6Kfl?_W9~)g`TzdsGw)d~I3uX!WcFS9wJytUYsQ zgz4PwfE#ewRkxm|M_g3YT6k!1|6wO}g4uN$aEi5l$XcT5((IX}!F|>wN zcKOpdy}I-1g~(@o)t*zNR=0}p`~j&;bB5Z`r3T6%IMBkI^KsH(%Mh9cHo0>|tZt7; z+Dz2fffh?8XF$o^gHdOjW1zCA@hl5YChmQb>lSjfp)RC6Hz$dhKX`cp{~q-_0}+SE zxY8d;Hq@@O`x5~KrdkJBb>~c^fO$!H0+}9Xq|ymT`ym*tdXo2N?QE@)v7oJEb}XK; zs4O=1`BG!7qOGCRr>9feJr8sPf(W1FR|Lsn&r%|f$Z_O@KAR!Yt-Y2b=Z0&y}h@!0K4;%+>{#w=w4}GWUvkKoZC&IZgez%|GUt$;-TfD3f(!SK<^2 z@=>FKX??fL*y!bLM5gPuDm^;{p9)E^Wd?W8J&rb1^O}wy^Q-sG)AjdD2Oh(t4?g4O zo=zSF=Zp|=#(06_R4FJzw%~X07VHMiSSE3`)k@Jl@DJ#x%`Ex(zJ42;n!F^Z3^27B z1m#);xAF#Rd&bi5V8&e2gyj2wDWq3^lPTcVk3^byt6-^ou0_@cx|ieYYSGUIQlK1 zWuO1Hd?MWb$nBOPliBlZwWo{~wLDXhi%M5}_$a~QRhCZ;DAE=3W75?Q7K|G>#5=uM zEDIQRFV1`vY3boKU4?P)Y&e}waKYRt`t1;&_*b9SDuSlx4?I7d$1(A}^9K$)EnmVZ zyM8q^#;CpzpQpq9d8{$Eee*rnDp1ujEv1u%h3U} zz)kxLKUe70if}&GDasIccnoJo0vsUJ5|Rx#2NFlExf(lf#8@NF`U+_{&3ayi_h+1T zeo|DnZ+^0Ko4rk#9P;9xYeZ1@H(GO`ASZk*+f3Yza|VYLmgSkU;^y-w(sY+yvSLs3 zijD5i>)d@V*tt-!v&lg=HD*puc)4Yzn=IIWGrE@Gdk<%6Q(_waIoZ7lT(awkySH{C?%gw3CLJ=%-}i?@j%>Jj_rD}l z6+kViO}nr)Jf{tp&StYG`&ulv!ER%Mly7p{=IXOl_&UK?7(@7Mzen{qZN^>TgInWE z!6P zETx!?d!$Ugp^ULWtUDU1YW_}nyat-+&wM&T+OR21R}Tjc`NIh7Ue1XNvDO<4>=RSX zs%K+(f3(w&c z5brGbJ_^5j?F&+Q-RINlhFouVzdkep);k`y{3;O0l2c`37C!_&Y?i$r5b0Ef4l<{5 z6TxMB;|PX{acu1*<;sHxz1P$2_0F%kubDbIm_eTpA!)g?`EX+>JH7Sup7SS_$$KkqT1OFzfG1!`X}G z>d8UdET-ddQ#R6BLL}_GUsG+(LI820te7L#eqFYLsG46Qv`NpFi#6~jKU)p6;Z14s^pRsg^F8Mfed z=QzAH!N%Ms)`JTx$d0b;bGi(bO4P7ReT} zha6AxWV@dtO4x|uG>{OcgC1i=6PH=}wANnNA4sQnrGt6et%$PdLAw|xN1%-RwUVV( zKqjTFAf`YjhF)<`a$k2oCWwJ>vOZaClY-onuV*}mB-G>&^f-AJbr$ga626Xo6SJ@U z41Blr@f>lSr8_N+KAuzP3=8cGb1RNVi|X|8wax$6*M^BazwR$BhG%N^)-+ZWaJ2Tv z9Y4QpHh=t;GW8ew&Qbo4A+(+UllQlO`u_H_IQM^v-~NaEpW*v||Hbv`-}|KNo&Kl) z^2cw}|NO6iOh4f3pWy4iz}G+f>mUF04+wEdNPqJpGHG6w9Mu)g%AQuiyNqe}HiE;)m{4M?e1Q z-wEzv^y9le|LT(h`k(#BpDOW7dHMf_zx-Ok{M-Eh`ps+kzy9JS_ka5P(6ugWAk03L zURM`jm1h3;_3Qo92e1857u`3X|6bu7_Ikfo)!)R;z5LMLinn0*_eECW-ycfUu=w!# zV(sH=$0%u{w$1L72eD5Td1CY%TToR9bSc|I!Ap|{ovp4kc9W@7BA2g^-bxG z;rkv$@87v^zWL^#e$ermAKp6ZAKIw<{+khhL7}KsTYEwD?LTM#@B#m?zWW{@3VCz9 zLjU0d{oOaOPZvgG{p~*=|Kcy0@1XBaf6ssTi}%|&zbMue<9v4eXeG8Z%VKD zmihxk-%-%`{l`MT`zC6dd-JKtDQfQRw?9|)yKnpqPx)iDe)A^;LuOtTyxW7%_|2bd zJhh)2{CgLSKYV;bsL02M^oI|xpI*QZcxov3>qq$Qh^zka;nOpPTKgZV?-|_l7}fv$ zQCal?txcjY+VGd(e87L7y5t|xwZC}I-~P61efz1PKYse>JM_}8y6?Af*8PxGUDO0o z-TiUt6>aq0cOO6F^#l5E`00K`;5NO!{q|E+KHcemLH#wJ<}V%N^Sj=)&p!NI@h>m< zRP}fD#~pQ`Y__ERn&sljvUF5Eb9zM!w(u%X9k|pYFlCj88v({QJk=^2ML>C0^}Cn-UXi~P^;6-W+V(dU_x`BQMgG(~ zf3H{+hCie5_l@|Q%KBVR-QZb&`{%!Ol+X9#FaP`xpMUz)gwNM4-ec+gw_n|+UtKao zWB+UBea)B6{?#RC?_(KXx8YaU{5Svd!(aXJ1HKdQZ||S}{CjjIOx@r9>a&0SF@N~* zb)mohJMs0O(Mi9-%>Vs+75Mg-zVW$%fA~;%epLMN&p)>N&%gWqOW*DM`O5b%f769O zefZB8pFhtrpWjeK&{7J~Q{Ode)BE$=?|w}GU98yu;oq)af4h49b`5&>H4F`m_uni} zKXtXg;m^PH^uOVPpQqoyUA_Kx_4?b@>(kcZ(^`p1`@OpTG{Sybf&X^(`kmG5zx(mO z{qcPSeV<4FELU-y{Q4;Q<*79P-~KMnw*UM4+uy+%G5@>x_C5&y-=7YG%IDMQF9*S| zPNjeU>x1R{&Hv~7&EIYR_5b(}{;iL1{ImS8em>Ra{~q4)>w{$ekA8kB{}1rvU;p^+ zFQ@JQ1TXyQ@8jGPdF7A!pMCx<#98{s{6E8QE|0qZb}#jT`sUNd2`3Ylq2XnwXpv%h zTBezAW}o&;??2H{cc(d#W_eB$DB+uTPs8gJCDQ`ObG#r?EK3Qr@Xc?_dGD5fTLgAb zzxRGj`oAsVo8PH8{Y%9uiDLwq-v!h_hUz-~Ma?Nu79#L`RGs5RnW1H# zl?9QN*mu=`Q_`op|E7@7mH)bgkCp$r4EFbG&-_w*nnF6KzzLK@(F~7!|3&R_e1$#& z%`rgGbCN7^ztkR23+b8?CGes^@sy0(|E8o*wf{{apKJeh2_I|!n=*c7`1$|Q-~Q_N z`y2a9!%=lk6lI*=DVk?kUi_lrl)z9D!%6}Ra@YGAebI1M=6M=@PKGuKC3D>SxqV&K z=jZlyDL=LR>moiqxL+3{{O*I}zN|kqcQH~pn!`BYSm{^w=b&tf#!={Y5=--6)L+KM zs5xGzF|6p1)&HubpQ`^=AwO0Bs}erf{;M*6uiNoo)ShRUcmIF)ItoPZFNZtDNyz7A zM3JQs3Bt%B|v^Y3x0sBp%tgJR@@W{#7Bu?>##4i~2Jd@-m(dCj&B#F2sG=^B4wV%A71=wqpg%cwf|Cz~v%_ z8iosUd_UIzH${DJz}KbxRR6Dv_*DPj6!LowkiKXD?mN#*=pPu$n4Gy^JpoKXEG;rL zswuoj`Y#QD#1Thhs+S}gP5ab<-xT$^0biH$xdC4n@u>k{7xHh~_tf9-d-4}eXYfpT zj4go`X%P+l)w9D?O=GrT1dgLwEM?-)ZKnlZ5;4=rGE1=-m*RWe{idv++x}HCpBn$0 zGCn`O-_+>$mfJ5j3J{vYh&u?b%l^>YipD&=zvzAoZ(3%)9Z|GoZ)ZNbl59Sm*((ghM~%Al^ouXYSH$FbPY zP!zfu_+QK~4}r(q@F$F6?2!0R4fwjGpBnIWA)gxXbqSy9|8*JvrrmG+JHNZf!&dI+ zmeW`{AsK_=C1Dzusb7yg0S`>X%zKh1qIW_=n;44lle?0e$)O*ucc`|Bb; zwfooa|JdrUOZeSckN#r6z%bb7ae{;)j2t=iuU~aLS>!o%a0a7FW_}qs*hUB<7ARWe zX$qC+QTN{z^i$oxD&u3-e^bE6%70aa#QeWKvVRCQhq~}yKfFB-Kj#0-fAoc$>`(uw zf)Atp!S@1WufgRN{`jZAS7b?wef$543;*Sh`M<(He+o&vjhdF!;U$WyP3Z-s6?sU! ztbnWk_-~}W9YOEkAvsHGaLK@7W87hACV%kztO&`xuV1j9{}7E)(036Tz_o$j*&hVv z2mbrIN`7p=@YLo1$FJ)7O&5(FiDqQgkAM2d|J5=B={Ne&!WZy?L-G`!$cJavr61@I z${4kO_2ZxZK~{Q6M81o4|K}4tT<6*T_=G1PFlqc}oa}UAC-}*I|E_X#po#Hs*1T92 zKPY?mxOCP>%V(}s$Shx1b7mm7?&+^&%3mS3bA2s>%BX#Yo3z~Q_181;Al4kLbwPU} zr1^_$k?rxif&gFLti!wPxjWl9?%T`RTKJ|do(rX{pYI9~=Au}b=Ob6`*)VcPn-42e z3M5*WtBu)0-uAXrka%1r%Kfp+cHDA_1h*aZU&GX6q!=vX6T{RVW6AN_c`#1jOBqq0 z1m#rs=GHFm+GbG9?QQeCrB_2P#ZHQ^~=;30kah5w*9C(FI1ZPd{QW3=AIrmr3US=SZ-$4-H3LcJ+E|ln1O&=j$w7H z_m+6#RlF|b7s@xri+3TmzS9M1GI9L=T2b=)B);g`?qTytE)oK7OEK&zE6y9$x-Ubh zG|ns2LzGss>P^uq@!p3h+so{+k+O6%RF++?P`MBX`(zu(i|&dxdY zj<@ULwtWTp1~MAd>vp+J>5ErVy#J;{Sw|5`h7#;ceZBOLM^sgr18r~H4Qnh`Z#-QIK8A6C(eBBL3H4sGK4?1*EcMEU7 z)+=n($hcj~i=$#54&?KBdxZzSZHGa$#>Hf!T`{H1kz9Kkx0A3#EVqC6+a*&7ds_lN z5qpG{Ttk(oVhzp(CU<{6FzNT(s&FNbC;7c6ol#m+@U@wcx5VEz99`aN;-T zipaz8I?{EhXL2Hk~dVq$^B?X9{xWe}P)gQVDi7;7MY z(lO6j;aOZU9{kc8dA*iNGB20u#R0^Ik7AOhwPt#n&7kccfG&6&XgzXwl+3i}lj=g9 zJ{7K=tQx@5jKxwKqQM;|0>xB!$gd}9u5QCP&P&`Ex#y5$X5EzK!Ck6=7>da7;v2U^ z_Qvg88fXVMX!@j27THK?+V$M#;`?RBxODNp;~N#2n-!;WP@3?)+ca*x8X+tk$O(@c zg1y6i79Gpe?scL-pWdHl%g#S6>$R~Nc67EoX|Lsx#QE(k*}8JtE?YTu?2agqD08;2 z?0R>f1;;I^EOe#4sO{6bMN7jN+RJLS*H`8MZ09(whMuXKe3l@+cjY!IvO9K4%!QOK z&Gq|pBrr0JV3ysD)pf=gdTCV=|4IV=Aoh#^j;^E57gS1LHN&+eL?s=q#Fat*Fhy|i z$d^`j3&7jEO^%34akUo)HtMGHmYmH&3U}*;Prm~U`2}fqsw)N}6iF}Ac*2)?QN(8{ zAFfMkwh)ICcFX~!QKqG>Lq2*;?~r6*gME1&I7CMw=sxB)#GJ@0X?h-CYIPi2?{W^5 zWO2EPm5a(FHR~epbls`wV)Wu$oTZ_vpNkp0efAVD9nbA4E6?Q>V;4kbXql6gnKr!!!&LNtB7tO{a`EiE$ z>;dv)9gzY5Xan$l<#~SWxswBFv7E>Z-31;fP}Wa{Pcn$Amt4{=wu>bT4$iFcb}u8m z49--pZV)Mijx;|(6D~_YRNm$0YjMXUQ-eUi2e_R8_!LZygJFcBX`k0Kgm+n|g?yM1 z^S&pzOgk~g;$*BOy^G0an-0$)iZ*Kc1dB8pj(4#ch66(4AzU4wC9DzrW%lCltwUH7 zu^|;eq{EJ)m)pIv6>R?D9zpMr9^7>aZeZ0lb!c84P>1*xU9(}_8YU3wNFseK88IBz zZ7WHyYjC&yX6T>>E=d402$)EFSvoGpy$YqU@^)+cOMECNMA>bdEhU_{jM%-l*>V=R z#!Kk@==Id@ujNfy9Hp(9HpNT6q|wej@5s2Jp@D4gOf?7%!%&ejO4I%8s#N*N$raES zqi^&~4svBT>gT0>zJpr8vIqzz$;KUs+-a_DSjTPGBG>hC4A^pOwc!L#TXb(p;3)j8 z&4N~|2r?e{mrN2Sv{1`ea^$3lU2B^5UJIk;t3PLCoKta3KF4ef2ENB+0uAZ-u-!&T zs^}y|yeH9SP1Wo)t@ivLn?dAb)>l)A4zuJb9?3=|iG8uJj63-1w_-bw)+y&&16#9r zXv72**6TTYNTQLA7kVU!$d-sc%WHmQ>5`kR2Jnm2U`w09UEB3zf5dve2pHc;o^A!% zF55e-Z}ibVE?E|NM^E6)FVf}dcTetke_oyrY`>vzj!VOH+Q<1!i(3IAw|%V6=VaBm zr2IIO1u;i(!HQFC0EGbxaTiC5&;b>&EvjXv|k+LDPfErN=Px*6Uct4BOGm zb90iO7zd&(9de|3A|tG9KK5(>!94*4ND%_Kmd2ze0coTjP?H^nW_5dGGJxX1a}V8O z=1e98EHBYQ0%##VT^@ihL4&o565b`vhcUvnhUXF_XObhSNPi9AQ zG}FAM19e}V*9X^K>jrE+?7DN$^hKfPcCojh5HQ47FO&2W_EJ@gu3$c{`zm<&z9?=r zKMtM+)?Cw7K7B?yZZfdFdTYNY>+1erpDHVhIja$tgkXun!o+vJ%9SQEJ^V2#lsyw@yp&g~Eh+SSTC~9X;vyD8n^a+k9wqZNFVnt7ry}4 zMKBghy75-Vee8QjTV{9P?T4Z7*^1*XVC}0idFTmQ9(l;S+hEzz?7)h0R9`wr@&>H^ z&G`Y%v$JtH1n$RSD?Iuk(28I=v(NUq^Ix1yK#ePkhpyxLLmowY!yt2hVo9V1NOCA& z$z`&Xj|);-%tlcDj)lD+7-q>BnA26sVTgxAFvv2xa8*6=65mO#jn6t-+Z#j*cj@s? z=C>O~UZCX6k&7lKApET0US7=IwY=VxX8Gc8iLEXB*~iQbI z!hXEO!{D?0?p%cSqnh>@J9*wf+gzb2XU6gN4e5Rt*TCQ_ooYXA`WI`I)_xrkgj`S< z`o;1JEIc-dw71@RoLi;v>lE9E@OTjV;t=0vLIm|}VsP`bND61qkj>k!MOuGgWg#7& zuda_JwIx=^+*)DZzRE5qh;FCWBqIrj7@a1z*LrF!jFO&o^lfH6Ud zoUbmnv>pr9att7TTUZXo@T8v4Zj+-OA(4A{E=T*UJJx0avEq69m;-9cblqY|Adkl^ z7V&cP*orq|cLk@-!M-OWFkGboHi`*ia@ea$+Z1`gmYt)zcO> z!B68zv$yTZ9{2h2KHjEl^1|4P(O1@f)nZRAwKigct<{k-1+Fy% zJny=OJ`1$<7$TprPKnqP88LSSJB%JG<9a?_8K^O*l)ge@zL+Cj_KGO_#qoxe^s@2X zP9givI-B+Sfi|>Zz}P7;cD6g_q&<^~Cw6o3@tCtgE$h48!x6R`F?VmrGHa855!}q1 z8G6o|$g|bN0Ci;EtOX%V*r#mzO+2TNn`uVD2rhV7mPB`nHap@bq^7?UT<&EoNL+4;FLO9s!CjDLH^vs( zpfMzbsm{=#d{PDLE6FI8QMif-Nl7ikJ=x=Xfs zz9(wV2jHZ{G=II$H`Q`2XAY2%y-qH7z`^@h_X^qCTdG@gv)OU|9EaYCt4@pb?w!hY zDlDSzKpldmIzYJm35YLaiOh2yLl}5PEN2V#Fgsi*EaoJ-8p!EC*0G;4(uMe4G{Y!5uc zq6Vo(Z%L|>pnuW10O~(qP}ywWS$Fmo2^TLT8Gtp>rA3g|eZAV`iWe!)#lLW(txfTY z2Zd4Mka)SEXVVcH*x)kK50&dijvxmDf8g({aR}se8TW znU@e;F7_+P!lxc93o!wHLpRdpm0L38e4Sh}#ffA^v~7@7MH)of9MCjPr);N7m_q0WpOk83osTiT& zXTU;65h_}N)LYkK?L_Z4EdxF3iHk8YjXo8pb4gD+ZZc%DpyJCUyXRG&6h+Fj*=em- ztrjYy&mT{6Rg&v#-QDLcw!8W!Bu&M>xoZ%5cT9wHkm>j>C(uN=kbs>@Mxy3#NO`St z?9t*LzD|b0+8w(*Ay!q)4!1t61rahCoi=OOg(|G#_5PZ~_4=dzsDGq|1Hn5^Hd=|$ z7%03*@BGkg11mH17g9o9n53H?+^c&>-%NV!%c94Dzsu(}vDZW-Ucp9TC8BtacEMR( z3QWO0JbECmAZ47k@}6QGzeujGU0QXi*7_x*iB_nE0LRi@3!Q4@mXk;PD4~kA&HbOHPrpy3Byl zhK$!vdO5zBn7yHUNUQ{yqzXJjJW2Q5c-*%ujKd=vSo7)(q)Ft3V{6mt^|kRNH5hdy z3v4>Q0P@FJ9G*xH)BRSLAlNmG8>dmKRzQpSn5u%Gc>BsN?gz!Xw%>TP5jD#OVNx8T5p z-L5rq7;``7qqq4|Bw52k|By4O>g?c=VEXJr)H6L$(2R7v^-|cTD`YqhcSv-E@r4?# z5%VoTQ0{6bhgxpx+}sWR-EbRR(T3sWH&ELKr)gRXiJ*m=DXlrwfgT zZ6FMp46kYB8f;SBhhys)_d>o6^r4O1EBXOQ`YLk!dIb#T=!s|Nl?EeDyy3(i^MVkDzWw1@;xSFR-vsW`k0r|^Ui?j#cO`OCrFJC zpr==-NdDcFFO1rQ#;Mrw#Ie=xj^xv{Z|y zZgy_Ci4F!kINtAh0f)}k^)SXvB;1LH(Oxddw~D6$vUCI#3Wv+OJi{Qmxy6bO@`kub|Sr&=vM3aZCG@4xuG4V1|02RtHA>EFXLEuZgt%~ zFkMo{uwo{Ggcdq)UO2FY1OYJ9hj7@!D1C%(slzeR^7PS;oj3`g_pepdb=?4YK-j!V zZe9b}{0Dcqatr^7-d|>fOlLMlxF<8D;w;m`xbgl)^s808BPB-_O?=KI{BXV-k zfJV(-c;H$VE;+29;~Sp4ga& zSQwMp_}rRQW?m|73VNzPo^EGF-N2<(I^bZP*}A;ZHIPc`w*Pq+`12!t)Mpc%8-F~q8?!y zgVe(i%+9;j7aQsJ8Rvs+zi*MSXhfOpV&1-;GN?Ax!AE}!%=Now|E%^5Kk{97$SZE{ zJCRdf3PwKob| z{tOmxbgg|pI-^kqUHkNLa5%P2(EpB|{Bl@cAwuloe|x@ZGu}Fa$MiCS?AGxfv^j)w zv*gAFj5E~obrPDkxm{pzsajv&wi3NAk78ypqNmmC7jHEVP^j5#%Yg=R8k2;}qzk~j zVq;tvu5!@#!2$rCqwe`nZPmfvz$K5z{&YH(uk@xt)tW9t>b*bbZ_b-&whb$-3{9C@ z-JmMsIY&QX$F&Upv%1m_ht*OC&iV@SGsqtLjUCIUvL9@2;Dp5n$Ke(3-Ne5hLG{m z=KWL?M=kKiTwY&dtQzC(MYav*vx+D^pTM?7opchY&UUc#T`|csR@Pi9Dud=aW;m}O zCI~_7<{P)uPDeeu)EDaI>8A_&fJhiifspMS`|^={=n!ED1`&Qkp%yToXYK1eDeV;k zh3wVnn*E*ol^y>89N^_S?n6@409w-D5E}uK{!CAD2^t~`}c6CimL+C(0Z>F zK90-@`8BUW|#C1IxEm3^u}=h?b# z!L`}oa3kcffHhzq(;9vj`Bvl z`l5qiO4oy4x!R1Q#n3U?#OK;D?75|uzEZa#2_MwF3P&sEubx?WGHjQ&*pnxk zR|5)+$Y5gD2BkjbeblLan>NQCv-juw8@$@9(Jliu72cQkIEj_5ENaElkCtT-F8d1=m__YQ~q^~fmWv4|INQ1FEf|OuWT;bR!$Dro;3jT49PN*fQH!tqy$293 zt9MalPL`LLt~`JG%<7gk*Xt@jyag!F^3Ugwh^px+;^hYSr>dzXsbnh|Mq~8_!1qhs z;mnTvO02OrfaOdA%Vm;_sM`YRI?jwDWP-Gzw&R9fZRWx-qYw+RvjyC~HK1lCYiy;- z_Zyw}Ec+ZDFW~^PBh31TDQp({E)bQ~p62iL(UoOLbIS$YZ>@%UysijdxHXx=7+a63 z%G0HqZ|v7YIVW=_+J+{)+?_X{EAbe*zL1}NTJy|eWg(F|e-V>>mP5I)VL+?z$)@GaO>+475PQw*CmM0vf>(bxKo1rcSwZ}j?)7whOo13-VRCm-t?}Q{A zUBs&FVe1%2NfyiX;_>jhfr_ukQ%(3IbU?+I6{5>$mm?AFug;4U7JhRk#@KYXwth46 zw5u&{Ry{#hTS9?$BhGe5b++X18<#dI_jVdrHT>hERmNbRGQxqiPmtj`Z%g+adZ6s* zXL?=mQN$@4Nj~ckfhNlkF$g(>@pgrspgF7wF(Xe5e^AqAr|kj$P@SES+%Ic3iptBr zGzvTyR>=j$U7R3Jt18+`5%mSXPA%)wC_OhLF`JKSz^1L>9u@$L&< zPwQ&CcJ=acJd8Y-5{r74<_0_^02D5h{S;flbL^p1I$adYl-HJ6498bIngT>S=|`Fg z_L!z;U*dCKm^Zx}Zw%Jn2b$L23p#p;y${_t^67z8^HMYW$xws8n`g(?h_Gd$puw6R zXaa1b78>b?r}Hwr!)hD9`(VPh`n6E0&8&SK)(2t+DJX8M9;DYa=!mr$JYvIQX%m07HyUP*>9!&nT46vFn_!)wm% zGJ0r7%$e1pk;Zld-I5o(qpZvX=KQ8!rGeFmaKAdR%bKKmJ_s|c*GC?lcEaE4OZi~% zRg&L`LnT~AV;Bh~l%(siKlD`C^-jP|B#Cf?ikS56i_21j1liy6vMwCsnA7*0Lwc`C zwRb}mN(8;bK@fxBJ#HZBgC%yvXu9HX189l?SJ|DmqnZgr<~pb0%$zN!*Q&gBPkS&U zCV=)TDi4IlxG@5rf#mD-fq_Knvy#YRibL+6s(ka>V!Nj7ZZJ2fo7n^0mqDH6KrUI1 zORt#{Rg04=3Q)LnN>1pPhavdEP!eH~9P!2`H# zA?$tM-%lRsc;sNMw~L^Vr7o$q*)BJ-Q^Hr?+yuoKwUrK2~goKRxd{zn=??JuF$~KVT(W6ofslILx2+9W>aTGet51RV5p`i)2`>oP48ciA=cu2cko~I z?$VkCr$b5agaAJp(t+XwdVt>SsSin7lIfYtE$DMy7;JE!w9Jy!xZ{n$)u#Mh2@pO@ zTee9pFjen$Ji+f}i;lnOavH*wmq|P3aBA!K{zZ6w;ReUmaf0jCCleu0b~6|-p?kSD zmN}UAD{TdV%`JqYrx*6_C5hvBd%!uo-a?c8CKHaoPp~Jz4yS^=W=e}TJRv#9mTteo zsZ%BzGI_m-wuY`7;BB_xDgx^uAY>+eXy!6=>*P?cPHj%A-5%#F0~G6HhutFtxcN= z2>sb{<$!kvED}r*4ei#vf1{wyB<<)kN>02*zON0j7bZXq*Vfqr9_>2s57rv4Mp(@K-Gd6Tk0vBtbKNE@QAvh63F(b%yA($WZH$Y8ksA-Pq;ohW*Nb=l5C4E5l8c$zor#Q9YpfTN)N`M ziP>vE+w;* zfEZvnfKR|b+4tW2u6nAUe%ZxYZB^}kC%3)4*0R0UwXStt{~s~cV5quW{M`|YJuz?#NQz*-y2*lpb&-OZdt z@D-iW4hh2mDpbcuR4JI!YiqM=V}%S4K$9Hl^$ziHZ4P9NQ8hZp3JT|w>n5HFJh|Pi zU~=9qwVRZe`krp-BcM5JA6tMPzos}os9oK3{XsP28>y}~d>@XZg^NaKM<3$1siEFy z6RGEC+@+L3<`_EY7i>G$M<;Zb`l51xre!bOoiP1*pIOb@woU10^BCh zrrsiEm(xZ`NWO~(oAi7>#?!TbKibutT&-JZCc;-cYD!3(EvqH>uuHIA32GQ_u(`Yp z7Y=fIZtj=}gvD84gYdLIKgRF7hfyorbo16ZER3aa_jX5>F|T~zo7(W|9M3Q=nQ3sH z%*KQTN~f;TRPLX&Rh?*@k3qMq4{Xk4!j1CB8tDioY0)~bXviiy3AfF5(a+9WkC9D+ zLY4$jKmbYVyw9zLseu(GH!QJ%JhANGBLsF%B55=3iIY}en-Lryvnl5#F3~b|Dho15 zWb+-y`T0&AvQWo&L6gK5$63%!t(#dkmvDhSMzo)AQbThytwqG?^_$HYLmhZF@EmA7 zb0sZpNFB1016=uFl^(s1;{qvnH}1;S2TBEIT4F}SfF|yvi0kj#*sjdkBvVvs;gDO2U$h(;x#t z&u<2YaCjJuAct9M)yY!`B5YTnD-CR7yXF@G<-x-@nxE zG;^7$$QDO4C`yDiA0=sefLCd^JJQnF0XFm@yng9U2;7i|$Bo3EJa)>go8V6IjqI-H z+Y8nuP}JpvmT8FqQm;Zs@+O;1n~UpmBY%Z8`F6ZGOpsx5DQ}~d;|9c7r9%XapQv_> z?aF39s99rivg@ILmGlE>ARrJE1}#bE!CmR@iH;>w2Z&m!3(ckdC6_z1wWlG_fM^0p z$E|MT0>F=TP+2V#Gn<>cxi)??VVfXj^3h$`@ReV!oeRw>y}NGtM4mKMd_&}n0^wYk z9xIhdbA*4Gl$jo5RW0d(2%*q*tLkLx01wlcY^V*O>J7|AOxvD6M!dHqnyNn^W0*C# zxf&o~b2ypKFWW5x#4E6bE2miiOWt?u^Q|5G%ya?4_h@RByPzH9{qktg2<@_fZ7#G) zk6|&LU8X(}&gXer9C%VS0gXtzJ^0{)>0;S1nG7ZZU@ zZe&W1**WAKSw6&OlQ)>)nC4=x_xjWe+l9bgM9&%V%FLJCqiPM6tk_SoWqv(KhuIPO z`qc#pi-MUG`bblT?YLRR=i5A3w1JqIb&mjJSw4??E3U8<&9UPi8mEDwakEPi^?Cta z)fg;TqVA2Yc_deI>bum0jE@E~6@(L{P|J>hd$wyAhp|j5SQ7`-*}mUpX=G0WMBZ3R zaK1_g_P!0{KKF#Vv>v!|(BC38^JZHqp@4{-lg%nS2x+&Nh&?IQCIUnP0M&Lrp)H{4 zy;iW}W!zS`<=(qd*Q-+&YlrSqa=?#jrY1G9RA!aEUPcucpP?#Ay3=Z!bpaAfFf#6j z2PfVffgg`{4ileAmw~#J8RGzIYC>s}xze%;&pv|fPTa_% zWytvQ^f`eiLt6r=0J>fqu*tBRp5cF_0=eCJsq0STgI`lqP9NADe>|#SgLfMQ6fQ3g zw24ALVh-%)-eO!*Ac*W&nv4F96IlQ(fNteIv36{2-831+*j1KW2$4yn>I7bNg8zA zinV}MyhJB@2(i{oa)Uv%+}Hud^2DIHUrBkQ4uh(7h&|v4QDvC$9I#+I_haiAYw~K3 zd;w#cZ%CuPk?fA0f^TS75*V+#<74Z~!Ph)zztG{@%3RzVOfu5Hz`5zwCg>5e@?>`TZd z_sA;(%pg|Ho(5)~T;8_91$b#|y<+ajAzAGOAwZr7Le2BQG&^POHbf3V%FyX(ty^B9 z!b_GV++KG^&|?DrOtT+DCjuOJ&YTG%Oc{<(*M8!( zO>{p?b8+hJ-Qu=%<-nTujXXC&ePJfkrMaa=MxLv}(ch3aL8&INZfws!tpTZ%?^YUl z;WZHuAjMY4qp<64#u^guz``-BUUAIfS_IskJC|ECRqa#Y zshbfZs-0$@!gY67Wj@v8o?S;%ExS$l12!-R=OSKi7s#>6N#?dg+Q)DXKXa>&xexNe0Qhf#=B78_yF#0LWqYU2NqB{gkjBv`W^k&~B;)R< zv^oeSxO_(?Ty1=9rKlSLB5=-tRUPNi7j;mk+}zq%NcFK_1TsMt&YI{1eR_ z1YcXbn$aI?Qebr=?m6vB9MUy4>Io;jx6D;OLEky4=GW=MX8AxIm`Ew3SL7|#C@=(x zdt;Wy<+}ATU~LrB?d*Y7JADM_h{V-pW2G22X9!%{&&w8EnB~MGy0Xf&o*g2U&mU^K zS95yl0Pe6>fu4xOF@fMf_S!3XBH!9x(!_%?qYxpmkHvge%2*v*!r)F7bdp*WqBX9h zB&|o+0V3`+P@<>u++*xxb>9krwh0Z(kcMOHdn%w1Mrvy#glSFbm8wSHV}E>y@>${<21j%B7;Dgo&d;xb{wXKvd$WQL;O3BQ;o_5oVVlR|TehfAe?w z@v`2!g9%ctk{Pyl_+4TN`@rJEQ{`V0gE@E%eJ9|-?g}>MZz(|mI}_g36T&!IW=*hl zKk`%|ma7CIH|xuM7~TAA$*7zAeH!jY)FynHElZAJcaU)p-|- zaAZtYa20gyU|&s$I^v+Oy{?_*03oreSMzllO(0-@T@KU$@1Hu$rLL1@ylYtHo-dZY zxSd>Q#Xt=HHp-A~Q`#e2W>406K+o1xaI5K=;D&6ecAHa_juuC!R$LKyUtzmi`>|kX z$z5VcVhLzStMpTCL?Nw!O!PrWZMP$HfC!Z%6<}>Bk$WzT41ns^$ruT5#nm4j<8Gr_ zDcI8L(Bk`QXKcrq($k1La;!HHlVckw20~~@`^9}G;l1g4I|&V}eBKsTek;ffxegl!3p5?PeD*_8TL{+*MIW;Nug6 zo2)!yYKYv>5hw(XkkUo%n{6=W`Pv(& z+TzZIr`2KO+&N@{#OP(-9fj6Hal7Dn(aH-FE9X&;33x>p(P?v5v>P++d7?hm9I?oC zehANqP)7&{I$fpc&2+zH&31FcinGKvwNye z_B(R0voc3Wbi63b;{hQt=hbOYC{oa;(=4xPxOQu6G@+6VzVMEY>{-KL4!Pi~v*IaqpFa!34ohY_6EFM8#Yi(2*78z>@L^>HG*#)c1 z31<5ozP+;tJS{;TZfhWAC!HxH)S#DHPj3PvfK`Zv31fLlH}qMLCsTE`HNpN}JN;Pj z1*BuuE}p@7#FX*q9%s}9RgX+=u~}d5(izwgOpDvYa66ik{+1b=h(73w)AV+l8~Gy!3T5JUJQ` zrr0B3culDws;(S+0d;8OQpk#p7RFMLos^Mu&N+kkdtuRRcYB!rV~L(t6W>_12jl|U z{+2c?}w^p({Rgs(?B58gQOxd-;GkNCCMhSF5{UCDnsNQtcy)r zaI%{Ig54SP9u5n#9-KxQL#S>l?57s($c~TLjfX$G3mk-IARjym5&ChOoMxcbI-avf z_?~of$vV$`##*ujG0dk&+BF40n^V%}C$52URGjhw0T)=XrpGz@>L_Ci5=#_83UcmP ztu8CixrY+xFLMshtY~}g+#~i*Da-9ZLcC!%9Iwa28Vi%&JLdye?Wcy%Z-X09oRf9) ztS2|2GK&}xi`r>dgOx{ys*9ZPrk)MDJJ`STWES0kzIMv_WonV!&DwjEepq)kqqb^v+RKK&BCAMLL7PkhL}xk+;R9SnKeU*7f#>W}R@} z@QNMC!Dt-^hRBK>F}kE10dbpzJ&QcmUsq5mJM)*CVRO58PD675DoOdvuygsL#``JVQ2JsQ^Zf2FeJN>xdO+H^*E6@WmjAlf9j6?BQf5K$zV^(M&=Hrc7m*B#B)y z%at~BZzz^x%h^@&@K?Z(j%XwH^ccHhgtvrtzoMK&Q!g(Fs|9e>uyAARcI)47!!38O znruWPAhz=}{)j|5zSlbpI*@3%thBN9m_HW#9r8uDE2r38{YR|)ElByDO}d`tZ^jv| z9~yCH$zyWEit;U;s@)~ReQBh&oe7Os@q_yBR4EPg|OWGAXpKV&NjY zw%B{*JrA1{<`pjB(wk|SXdK*927{Tr``1dDpH6U%D63*VcIG*#$Hk}zoBaf~%&sjS z??yBhPkv;@a-wF%1Ub8dvj)a!?ca@pLo=o<(?=UB%}IKH6sV}0Gm|EkGl>p`S}OM| z@D+i350P{~@*7@Xtbq4iam`gN_mBB(F@pYlUB;|uxdLZzBF6ilWUeP)kEi7OIk!ou@2ayrAF0#aGEgZ;K+`IWLpnqII0wPSnS%J zMC`MCxwuAIqU?($8PA2$jy$F`=lP99VKu~F=9a@$V{gov@j;@KwM8D{c@)H4z_+Us zG3Ss10_66zcd??MX18MQ%{IEPilBE3+?Km z;;PO~ADwvB+R~?70_1`&Rl@0+-1pPyNLbToJTW>|_YsqOTo2)93m1s@>d%%Mk00$T z?0f0V!}S6?OZ$_wL^MB1UaUY$No7H5lY6vE+N*2k{e>m1(hRo)q{#47f884(SLa+S zVRwW?>adm*?Q~EC&EZ@vE=y6Fbobe?D>FLSLHnUc9qy~}I`oHksQgS3vK#xkdOz2f z8&|`=@SAb7!D?ehWI9>Z5`WL{_jG7ngusKkWmWd#;=H~Z$9;)qzJRp-Ljjlbf-IQ9 zav=}YtekXc(Oy5_5A)3tL2X*LSEkIOJ1J9oektVATDwDIC#_R{au;(Yiym>onc(g2 zgU)BFpv@eRh=kp8Y7HHv&_{HWT!53&ldT;2F>=E8%tq7hL(Z8~JL00GXg%VjdoG%V z!Fd7ErbrEq^QBFh<9O&#vsPme=Nw{~>+u?OyEW(5m#s!thXolF=OZyoQv;J|h}bEY zDcg&y9dC9=Ho3Zf1je_?nHykU5-!~MVC&K~*?|Ig2KP|7Y~}5Jm`+FS!lpGs>6oh4 zVR4RS4*5VViC~n{P2+5HyzTeKiJNv-27tL9xwd#uyA5K-FVua^Pe_TN&<@k(@CL4nWr(=ygmd_LPLpMn3(8*WoVk z&oI*he~7TaiN)meiT4<JlPSZw31yc+A5|O%I216gRB^(!a z+Qg5~j0S}T35Y5|WN!#F9<5LMAx5f19Mwp*8?vmPMhJ%48rYJC=l~Uslp>29u5ou# zPfq;a8P0t8z4J&I&Y40I?klU5VaAdB55^?Nj40X z&?zpPwRsdy$0%-mo1sqrieHRMUWHYF=@D<_f@hh+$|iFO;kf(FXhwqutw360JV__= znu|6b-KgF1c82W0cwz!2v~ksiYaOUktdaWc*f~`FV8tpo=7RmKJF=6=wM#;jpzjZf zlj%<5-sVllBZsJh%)H=`8-$`^q6OsuC?teEuUah-5)e74gostg|F0g+pUV=hUcR(Fb*u2$0G%8 zjA2nUO;MOjbFH@%MCj`2Vn8Sh#p|~8)!k}y5%?=!i}Y*FiRG3I2xORu@b?dI0DGtN zvowKH2H3C{AyWKJulSrC;RWwPG zGl)>7<1JGbO|c1J1~;R|2@DDUR<|3B(9L`z8Y?~-<)ldxE>y=ntM3q?d{Et~R}BJx zgsc+{gmW-GD{q6S19r=2@d|<$7l5DXJ<)>YCi?@zLxjr}@&Od$VuO>guH|r0lBCwz zh$n|MfrjW7p~|gEMI=}kxcuRGE`ej@H?|Ut<*j9r);Lrzp*3~RvS9b;6SBwjaCAfx z$Ijj|(Walb`2b0&a+Dz6X<8)6=qNgJ8b_mT_cJ7q!ruDi`qdB3lR)3Z^va!CC2rhkS9?5+f z&m8KOM=Uax;j!IhA-2om3vU)HZPJ+Cw(5x7POLfHaVsN&_kWoKmj2KU=z#bdH!<2< z=vT+Mn%3bM6%hCFpy&0-Lu04wda&37zd01K%Ij1Givm}ucPE=5D$mlu8T0ElFzGdK zQ-i55Y&%C7>?R1m-OvYQRHu$P=;MsBH}rt=N+<4}hd{^yY~x41O)if8#Wo-g%+^3O zFR~j4el2sm0hDTLZht)w8W7o{jFz&?TtEm{Zr))3H%PY^R|ycy(Fy4eQ9V;5s8S(! znm_pqTzjWe$LKP=R5KQD2hAYXcd^Td7k;^4wFq)vjRH^ywT%&OdI}u3z-GKPc|l4Z zxgvZaDi#H?+ACLYjeMeTilojK*Qt+KW89%Funm2#XEYx{#rp$NvtV(ge4F5!g>{(? z=rCluML3!dlGU<%)fB+kIBM_4jp-QPwk%g2NR(k(Sz5fyeFI8TN>-{A72@ueFiVuDQwy@a&b5-=*TN?xTZ#o*?C-8C2|i zzu1qDov4ZR88NoE8wPu$)^m3&T_CYAX%H{ZGEsLcx=EO4ReHv@>zv^i*GZ}w?R`hp zG;Bly3HS&9M8E{duNkkdVi<@%Urw&k4LSPK4g5K0-$##K7;;KZEmIA0`FuWzDuSlj zfsc{9YliLp0^JDEmRIh03eR^*4i9Ut=<`~0=>FJD1f83(2!p&KA=Kr<6+hcw#vJJ% zF1x`ooNYz23;5d@VjZa~keA60Duz5Xx8z4##XEb}G*PqoZkR3an}OMHuPayZdkcw3 z=jjEhT6%CYXvbLGRpOS!bO1M#5p+9+(yE>@~vn|=;wfu6LEP3__A9OBA*PZk!g8SKJ`VR=K?k@ z`DM6ZMB1IK*?i-M(moS+LJqxx!whV6h*DpAcx&(uY<7>be8>!>aw6|5ja+Njsq77_ z>t0@}^EqP37al9c-PA$H=ia!R^%r^P)GVp7!FGQbVwgD3n{~<&NUL^sHQuXc(Tl*c zb8L)#l&-n4exnDcRbJB*-z zm&77g>SJcp=16+zdUppsOi`T0k{<1wZ8Dia<@CS(<9AS*#UCh>z5p!nUscW<(a`_j zae#mL04KcS0N;QU%unEiAAuKs9}e&%ZQ(Pu;pfHyUjFnW!ohq8X=wf8KhaaaZa)&- zz*+PBEC^mI*c14&_p6s0M+FdqwG%(B?HJIt^g-_fs0=8(hvKXM@?`!&>h+tK+%D_T zZDJb=XecE2%QmclLi>D#B;ki%i$8Vna zw+9ID$;f*s)S}2b`|$m{u>SVt1@f98&^>=2RyYT>e2GKAzaL;PFxB$X1{4s7g!Rj( z1DeVY8nh^Tho5l$7`(w>zgFtCGEWiN3j}ce^4VA4plbHBh)?zHF4^Pk>JHLdhHJb- ztDgX_M~!f;E-UeSoR+@WX@+)}uVp*FYdXJ^K34TeRNw@feDBXuc3?b zXz~*}_~?o>L&v`09z6+(Px#`+ZXds~-vwcchX4AZhKqiB;154`9{7SU?<>&%VqEIu zZU6e)Cp_!@Sw3MGX=Fh(H z(foXc-+XaVf9F0Ky8h5Oc}u5)O?3GV zB&mP+KYt=geMA#u0RL=*^sw9>^NsCfnB4rLu^-r8SR7y+zcdfa<1y2w@3PW+PK+-J zCbHxq@s3IK1yN%Vm48fd4@Rv2;B9{M()lkB^WZsCJ~_ac4XYaER+yM!ynM7nUJ}2) zWH|0|i7HH*xVBS2Ybuy652FTpRMktIb)V+QchBh_43RaT0yZ^kIt0 z9ahq#5KPc%>Ys6Gv<*#5YnVCTJd3ID@xh0EQVDSy$g$bm!@qr*`>-9JtpQT_!*$*^ z8RGY7vbvwWxG*YGRJMe%17psARQaDB!8H9#Kd-_#OTYeS4~qphMu{snZs^45xkq1p zp7a0sZ*dRaJotaB!|}ZQ>%Ya!{S(Lh>6hK@Hx>QTlK#$Zcsp{@60>7k9 z($Dh>ylK?WRpOVlYW8T=7r&8j8uc?3_$6)nr@wc6cvIKE;lQ7$!}Z_$H$H;^fAdE_ z7;0V-yg&Z-)5P;M*1!7CK0@k081z3}Apd9@x&C8Z4Kv9feV$1^4jIp-z<>PL4sM?= z`kTN0n4f6g-#n?ksmf1IYCaa$#$#6Tvd3)nAYs2a_vaY=X{vZUa?ip4x$6C?H~Za( z`RUJI9%J*T^AIEl=*nYqdkpEX>tht&T|)Qrk~JR}mR;7w-V1mt0HD8w0qXG%69xb% zkLePt&E~mgv|qe1K!KRBez-_{Qs`e-)Q<~&TtU8jF0V0lp@0u_EMVf#s{B+FUZ+^l zu|Hnr!@~CCQuJ|^>IIY*O!k18V+MY#)8AI=W1YW!88`SPWKCkstf7Uz; zY>P+3vB-Y(84k^|m!v`0d~!Oxu7%${u8nCn>mG9_90X7A!v~Y#0#xv0!T-72AD2vD zo~!29PJK-E@7{LJ2hYP}HvZfcI6=_;AMV2AglA8EfUv(T(iae{{nC!Vfis}=-vtjp z$YXMT+m#<40#pZF_Gg{mEZRTM-{UWT+};ccKSybJvHpu6z2-l)ZvTm6Hb3)o|E6I- zd(nUAR=%+hrXQc}FL@u|H16jq?@L z9f^MUZ++Sbzg3J8o>%VnZ{PwYz z_Ln#Z2LH?F8}YIBPlNxDe%M`~tN5c|{6wq&=DYvqqMz^n^j z!~=cC1Nq$Nd+vbcS$v0@b_f?*;M)(B<8v8e=eXAGxv+Q#f7k2D*e%3f8|w7!bNQ0T zu*YGVcOPo^@wccdR!O*Y2jAFZP4lL(Z{B@a(mb4F&ppLQQyzn)n_=nl+>d--;oFBH zZF?TJ$FlUpTJX6+hT1)M#BjF1uth?it=IzDy+;C7AgZ&pu_McC^W>1&&xYoljpeOTZ9>Q}Fi-LHQ2yp2Dw zv9SF5*8ldgE`54uKRhKLwl_cA_0P?G*qGnGLx1{^V}`r6`|rO8 zOZEHjzkc^FOmdJ{U(zPYF&W_z$v=LDMgHT3i$mwz{Qi9P@asIT-#uT5Dth+uw|SWR zkB9K(wIJ>F^N)@yeZ1f9V<5l~_3_Y8LxJ=<68!L_56|}ZADa4l&gwa;>^==DKRn}k z==asrUyu9n@j}o0^F6xw`wG3}zkB!2^B=JQjsHDf=lABFmFc{q+57{l0!}uzkZNA4OD+^SHt9QR%mb;eA3a=&zr> z^E}S4^Y`}co0l6lL89ur_g{bWa{u@vy5rG{p9h8SKMnBTy=cF4uU{+k-D{oxBK)gw zp65Tx_*?x!oJQPu{`U|6*LM=^DE~u6Umu${6VG=qKYnc9zqaY)!;1>O{`mec-hcHI zP525CDW96~sbOFLo+`ip>US!FLVoAFum9?YRl)77-{pXUQ#y}IF^kNKN{{?R+|{^NW5&C5?*?DsV5W1)DDzxxW? zQr|!PlHb3MY~MdeHZ;?1zoQ@T$Kz=8`==B6`3|7@RgUE7_Y~d@{72!S$1#tG>-hwJ zI2fJ%dON<&vD*~7=#pnCKk64eezA?cs_(v1GtZB|`fCdN{8l{+`FxiCc4B&ScIDd8 zeJ`Q@(%-@FXod>i{1=)L!G=6?5;1MB`xDcB2){r6u@Kg_-V;$Qw{ z`q<3-?&V+n$+rXlU%n^EU%&qN^;h3MLy7A5pWd=JZ{EwVKRhVkKJMn@t$zJj)!zHB zQIqG(55w#I*RRI?FNWzahADO?KFoK&7^d-Od+`^;)Q>-IN&I4%zFNt@7^c4%roU_Z zVV?fQF#W|aeJnwLF-*VMF#Y7heMX1;Pw*}`&hPOl|0{%7T>p>9U;hBv9@l?}zaDPm z{|63N_iUN`-u`ir$-jP_{PptR|Gz$kEB+6!0EBFad}g^Yi@Ms(Mq=|MN{<-v0)X%(t4%W27kk z_BUVsm(tTIihyjyc*D!Y-f+*Ka{+B=agYbx? z;*L_}bN0v%T<;H;+2M?z?h*cyRuj>}ztjEQRrmNo+?YGbnD2CFaH70{bU$s!Ys=hq zjx11)9EXefDR$F!?hJbh;zdv~_yJIbA_BS07Hx5us$;eNW4Y8vUJ3xH zPnC|pREwV^CJj#5Qvsy%n^5GiWZC5NGA0=>^FJPKlVCY7NFn1N_cvSSGtr+Hw z8+rSCG=nDOm6}iY@lmS#m`WB|1+^6lVogQN=(-$dT#B-HJIiHm3$Ep6wt4W8mp(?0 z`f*tVlLm+sPm1^*A4YaOUmxgx+$o|yoSSDqlH9!<$5W7Gx#%Q|JGY1G&Lo`QZ+Us0 z0L~dk<90a9p`lnUqCH(+FXV}__==k9>y^uBiFqg5Dx54Qv7y%+YBFPV@;n`hht2VD zJ&a>X*`SSWd|ajY-^6Df8Uh=|b@Lp$AbVgD@xQUpsE*z*W{KmhkF!$9mq>ZP$Mkp* zrtzexW2vYh%6i=A^l_ijYxh2y9+JX6GzEqKAthg2P+e=;7;C!MYl8xx^1NP-gVdf( zr27p*di!0bQ!=3rTa8=qqzSvY)3+_bLfVp#3f=lpceN1j(GJ)JqQ{)q$_f}pv+wOqxp%S5k zly}OlQ<3bpi$EmlH9;Pv6E>W^_^Q|P^-OO2jo>s1RB0h|SIPESCX(VLSW3=r#I>rM z8zLWy%=$3k3OTmtn&?wfm7k8@R;Ra%gD*l4WSHgNO+A^>C1pqbY_cScdC%V$vb3F= zB28{x1~+o-2N!Juio?X&*P!Hd^@Kc3I51-<0#Z(5yc)T=C3&_rg2a)`QrDp&E_b-s z2ISVe1+;Pcz>XnPkgkPre;&`poaTkc>$of@fSrpZIPR%E*meB;E&;9~%fxaP>)vLQ zYcXBW;2Dtnn?tVe?rpU5SS1>W07p+WDg%tO5$7`z_#oYFvpo|@{0yQlK)(s~d{1gn zDU=+&o)utw4JZ6!k3OsKrYT-7s&UKG>s}1T=Ke}wiJCGEB|H#Nj;~eW?ykD+A{S1F z0J?WuNQBUG{;q6Bk>8xGHbBfzf^U&E9K=2};o1_>vrds`Eif8pmJ>cvG zYi%+o$xQORu9d>`kB5p?6nnid3M-$9k}6)={r+rNWn+}kx!CPakryAAn>^;dSXyqB zh&qP1=|oeyE`^AnU91?-CRR*kM$jBp(=iAkVEXP@2STnzJ_rBW86Ckw;Cwa++%_DB z+nmO+QII+_~FdVsJX_fhYG_^aqIFGZWv|M7$S|=e-6C#09PuJvl zj%KY01}-BS!QO_>u9y!JlN*ZUd1)kSLd}z82mG&=t@m|&o(pTTBNqce-M5#m2%Xq8 zDIAZU>NS+zH3a!=3>MG0Zw|)0@q}H*knbV%a>LGvyj3JIRRKEG*D`Iy1u?rzoD_uoZu8c#PHMGMM2YyiNeS$bcDB*)Bf;0uboOW6A7t=qemKWip#A z+U0V%SOiOm8A4orvdwp%r*9{hPA&(liwZ?NOJ6`lD&1xwAA#VchPv0jj`^3dXzY$T zR2wi?Jm!?~Ns2Dp4|4}T?@lu)|L;$>$=x3JB5JHA?2r3>h%qod+`K-SRpNH9-$v?f ztX??i0(i%hveMVg#<&BQQ&fkh)VuPY&=?pnu5K|R@`ox*8DHb@O4^68+zJ3zLOCys}V&1=w`^8g|$ zHFZZ%k1;1PqHHRoIKSdLxYqIp#`a0xb;JZYVn)uNSAt7qr+tyCHE`wE2VhC9+bYk& zmc=9Fq_t|GzWRC%EL~yjDUJb-X}u3>jeQL5BV3Mp4C3gUYmyA`oGYX;D}XCZ)r^KH z5Yz&b!S10`n}%UbgiUVN>`(?(P&0Q>urmtI5IAndPuN zD9a_vCr3vv7%ahOouzm)d(s*?^_57WIabE2yvB4~^Yn@U^fr#?xrMp;r0k9jgx6E0 zFkR}_HN3qCRZ?>g>y*?E1Xt2a<$ClKQ&)~2N8|R`HfL@C3h^L|8tM3AM;v2=>J7Z( zhJkXLWV4dbbKN2C1=>=EkXVjsS9qqeKv(O1j|)2(0s8z##K*b9LB<-*l$HiE2^C$i>f8WcR#nqq1c>(&lHZ-MxW(OtM2t} z`!Jg>u_Eu|HQ&KUVgS;w^ zrRlU*D0Lc&eV}m%ZFk&y>*AuZ3FFPE)p4%ZtAX8C%RIw7DjWjx%&AF259VU6(z@PM zwwKkznMO_NyTVuFiSDh#wZq8n_BiThA=`(W#K>;|dhReL=ryGGRus35lftUS0h{pi zUdcS(;?!$GU}Cib7*LddVB(Szdod|Uio$iSwpW_4Z=mVBt@qvr>Zsy0uaC9Mh@MVw z*4*u=ue{Z;2WC`X84ymF9=6Yl(s#9LmivKPAL693^N5;x$?0|v%&Z(9I*n~sOUyy0 zCsN$OwlAzAF4mjD2H&-|mm3)tSZ-qHkjibdWq(C~J#TkSxxeNoxRQVH7$g!4U66i)6fW1w_>bSa%=oIztt#Sv4ngNJ@Q zPZ;Mm<`*=GD9tEfR;3l}X)OC|jNtkac|UL2vPei^_$^ zqhF4?Dv>FdnInfH$a^NpLyg^Wk%jpvv{5c)kz;N#?9bXzoS)e->*u0>(|EEbvc+y+ zfKDI~gh;}ckzh~D!M25Hs18jQAOO~B=NjX?D+aKQ%rd_D%Dth_)3wc9Ja=?<_|$3z zlY)RH_t4G^}IM#aRc%lK3| z7LbKLH$BMpUQOOuYrMl`H4~OGE7sxMyaF=2t2HCl7~xPs{z~tRgX!KClie=I=!fP0 zei;h=U5n39EjOY-Stheyf^dt;rq9hS|?S}FX8eF=0ZQ%d4K)wB^X zg@O;=N^@)RE8iUVgR8VC^hrV+cK{C9TBx|fBzDqpH%a3%*h?$3xj;-y6+kG;xBz&m zwJ+{qCYrb2h_3qPQ1=0QZ$z_{Ku%iG=~N#HnK}{0K`tcZLEfnK-p$>WYh*WV6cfjN z)6fF7Y{1-gHc7eSc1=2HPV*+DhjrFrz-nzZPY|vfK$P~Vbqh0F4~GX=8}p2?u?Ny5 zC4m*;T5&Fj%mF~FD*>6mWN@|iiE_&aXI5AEMI}sxh5|%Gfiq?_b%n;Z4{jv4hMVtn z%i9;>ZPd-HG#0?!)daqki6Y)k1(jZytzKI`G`JZ>07JvWu$=qq`ZzSV&^Qe86oKnh zc_R{r(e6ZHEOv9gz8FSVo8bfiVh51Ney0dfT~>sU&jfwyhVBr{x5Dz&o^}`7EQ+Az zc{p5e%jEz%kW27U7SI#sJg@Kenma#THO_9uMy0O1wZdPpP}7UkB+UUkBs_)52OW0_swk^0b^r?T4bW^wOmKt0kgB!PRB_>h9 zc0JC+T3y*H%VS|UaTr>V>2n@0ieOu%kpgbF&SbHj!4DxUM-l^9jx{C+p)F)YzBaQX zbk2kNb~k1u7QQ~{n1csf^#-=%YO8hYHg9WZHcWlVrndu_dFmNAXAg0|dy^~+`i3>Z zajOy=p_{MZD=B(oNQ@jV+mV~nRX{mja9P0K?u&DQ^JwYb@>l3($wP^x&YOwC6fjxI zt6I-^k)N+@ESbS%8&EJ1&&{;~70WnnymiR}5LMz0h zO0G-Ho}77g*YE=t3PJOvz9Q4*HH7+p;LJ|W7*O-25-~btu+2-wY92M5676Qg3d3fi zMZV4{!(%d+BUbM>BP|GI)1mbKM+BmTSB*);YVaE8u3QjPI7$)sk3&wh#<-h9K9-^rBzY(d+pk3 za_*(fN`QJF1{7sZPoU$x1H1+D;sepPo#AAh&ZBM(?@=Z0*HyUI=j*bFz1G_c(cq@u zn^3~DTVF?~9CFYC2nOV6eCVzNpIQlNa3`U5Hk}-qEl@NbZ8Y1-S?5Z#-XBL7sQIpp zJ`3G}xYnAaUKi0#)hSmmW6vHa+L_HJT3H(B^-$j@$2x7y4e6$lc$_OEeT?oF&NLK; z*K-Qmb=hiLItTtjzGYp$IN}8a>JfKX|X>@w*1|n4&!J%OCSfXifj0PguY3cetlvicZBvFj+!se(;%PL$sBV7)O+VMa@$yfKi>5!d*MIWw=rB*TzlonoJ}iL2s%y6 z=Vy!uRCGGaspx?{%=VWiQd1EK*HRXR!@kulXTxr8+DxgYx~IBThnPN@IV;I2oqLI~ z?cDJQ3)2}aftd(XKDf*KZX=}botcsg%@}Q$dQJ|6NI3O-)9|cQ!{3N(yGXqiPo8HT zL&D&xroN}usCb`jR+md?xRsWI7ONL9+L?*KtDuE|7IL-;mp+w@uN+i+`y^ zNf_7dDJa1Ax!W33utFrSlvSb7{*SyBcw=Tzsdf4KYSPh2xFY8f4^NOf7 zRy9jP=kBm4rfSa2kmTW-=F)yW3i-1^arS+r&FO`wm0Y&UmXI_%U)*lUpq?8*ef zlbR#>+=hz}JMAbHSU$B1XbwQ(D{CHV9}=Xu%JYZ&bA&u z)d6^RPVKC)^UYeG#={elvD1NO42~?St|kK@Z$YI{2COjKw-YB>%r814f;6Mdn)3)6 z%`kJwK`&3Mn(L#%$yo@iqfvzb>9W=OG&+}TeVYYTG7MLvIeQHOiyY@I0OMiXc2hmQ zvsfQh>ry&q{Psjn*2|fiV_t-q{JvHAQ&0svk{y%c@-}b#h@G5o8z_?o!z|5(LzhHs z-UG!gk%RTxwbTk@P#*}lZW|F%2@?CAX@>q?D??_a%L5LpG?7{Z*$|kE!KDsgtZh@H%b7V+#`z#Wxbs%E{TjN`T|v3hNmQJJ z6>P`U`Ea9^#g>lD>)o2{{mEQ5p+DdAi+f^&!Zgg!*O9ytu9uzF0dsw5GB%TMms?yf z57GW|h)R0AWefH~9hAks6L(7u`&#UFpT@9WiU{7vQDlyz2{ub!_sFcHR9V|R{J76` z5eK{F3>#ffAL!+B@H=H#YzYl$JAg;d+tbaSETwtF1Z`VjiCYlZ?~nlWAZFF{KA6pf ziBoqM^%!06DqoL=o7qf+g+^bn8x$*+ES?(%+_&uV|55c`+m2$(w&(}(fOn5r;jOT5 z!U-pYgc0!dCuY_@_v~A(YPHp}DsxIOOhk`v?$W89p)}&xdW@$4#S+A8Y2&6F93U=` zwDZv*2OaRbSG0_QbBp8f4A_zWhsBzj8AY!ia%EI0k!BWvt@~Binq1`*&g9rg&CV@ikY8RM?VOcuA z9)~?n1-`s&|9;YDnn;ELo>x!xcs2lI41ix~!-m4{@_Hoc`@4z3#yVwJ=WHtFI{A{9dpqJSof1H7=-Or=0H^{A~ z^B-LjeYwdh&hW+f_v?B$%%4vT%1muKNnkSbq%!KI$O=mlHSFGM_f#Y&KngE?TG-dWkE zDSb$1i%`pLd!RRhUy7$3fAO!#@&xs8k~cUqAGWN~NV8A$s{4MDiy8D;unUKCBpp8V6`5@~7&J`@1Ml65Z~R$O2ohiK8i7_@AH(}#N4991d?y)5 zhNBQyZmC>j5Ov-6GCk>XqpNyJ1jwwdOc53+!y&F|A>KqQL6!usU@!y)rZqW}4|-$; zh7~9(jE)|qb-o8U{ieV7e{VFBM;e-@5tKzWlAJb=f>gnXU5O$-%G7w`kK^&=f2AWo znO6g!XT8B0K3OBA-}-wx}$gNMX@i%6fCdRwh8>_ttmb;VMsn3J~mIAB9`K*t4mhB^&uM;jt5evif zynoBb{qN1?6{42%gCiE!o&#Nl=u|jA#ud(w{J)tMoPX|fHS26^1EI5Fe){j6H!U42 z>*4R+v@j+3zvp|9G1v^_Q6l{B$k(HL@cw&kr5T2~-u=zJfC-?L4aca!p@86V1Ag)E z{DtE;9;BDvTE+nD#`*vh2|2Yh&fpNHHR9&j9R?JOV+7@5PodsOtk9E%#;uP(kyUMJ zVszPVjguh!J-@>%II`d=j^wDdwVzcN#%hP@@El7uKrG`)+d~j{JO$frA<)L#VGnT4 z8+$l3S4L?>@?;5tF!o(Lo)7M*5V}mK33B}4zoY7FA#DUW2Ps^L3t7A&ZtZ{l99loj zhYp+bpiAi3C1b$~=lM&g?`%}?lDOvkWl^_A5dNU622!(`Jt>^mJ5*Xh0OXe{;mqIe z4#8CE^!Yq09cFP14a9|czPA{m8;;DoaFv*Y zS<7?xz7UEYE=lgdZ~7dWtw;i7x1|_btS=J6C>Jt@f0Ng;@T`o=&z_QDX-d_N@Lr8z zgZhKksek7-?11CBCSM3Gi(_#7-xf4@V^zM~1TkUrC94pm2|6d(3U^9(&+D99Z^GGw zz)1`5h9^j?(;)(r+zHmz=9z|=&O7WIn72+dBz?;VH3;zeR|$dJ3qhOUJ{d$s6mXBi zE=>z#kRZ99O`v4k2{;3Z2Ye2G4A=DglztV$*ZU6fAr$Q9(#+v`X3HzKijjNhk-vq~ zdE6^A)R#kqQLjtf$=@vt^anan8(dBe$LC9%W9a>!wrDzIzq-fre)L{@^1W#!yJFa5 z_4Ow#*_(I4-2ekCG4wo?q67g};7x{FBNDzUB!unLMKjGtA>=yM5$(Lt`mTvTTY2;Y zQ~}{CyA!j-po~4=fUv2Ug^Dl(EeIP#uj*8yB50D1kWQ5uZ0JoJc zOuGR(IKzzfUi^!W`X}Q)ji)2dcZ7zJ02unZIl9@O^@Yv%3(&}$Vj9oC=NOlBm*7T6 z%?`yl;K(l^mbl37+igS0-5Nd5*-2f2BnWuWVP$kn3&PqqHic7sW*Wy=RU^1pzQCT$ zIZnb%RTjxF#@IK@Vi|pcsOT(F+d#>0u(|xfeL-EKORi=OkO_2@<^6Vijn|dW%j35& z6~fxBFx(NZD2m^W`nx9p#;O0xIOsV1r$z863}oPmSFZ(5qzfQeRhE9sfA?leUPq9; z(Wq0GX$eDFf%vdH%Ix_#=G}y9U)Dql@$GGN-a#--hid+MZ21xb3`!>7d}F#KtPSIM zoxJw!GTeZeNa-7&DEtibov`KRp(Liz(Kr49g%4_sUW7bU_~1pLvtN{N1}N8wg&lT^`4wN%0u=RseSPdXflw%KHX=x%9~r=(f6bLUzZOTq?umD>Zy4Bm!V9w-e0mY`>zV)fG+V@zzP-#515V5K zS3msm{h~U^sP?Y>{ku~BV(|9^aR9fARk}&P*nm&$J7Oel@?^$H}dQ_X>iGJTK znvQO?i)cGr{^~F`6i9~pUw3N+On}SWpL;uc)iLKl0-=h6p&QsZaH!h)I*Q`!|8WrC zLx|16UtLC0@sF8P{G39_YDzdb-`H{4TNojvwxrpCp+{L@BgppbA8QCG2?<=;5nd?8 zR@?8r+%~+ZmgE%}spKqhf(GwM_*mztZvp3rw|3OX)Tkka=U+ zr?yJre!+?cC2{rdytjcwnk$7vP`-BXJNwcN{c-y6-*-NvEM`<0S|BzK1sP+v&**8= z>9F#Y%AJQxbQMa`y$;iZw$;CW;@9yaqz{gF6s^Rx7*8?yOEUUZny>x1=GIm&eDS}# z_6k0@-a+jP1WWjyxW#HkwGlMjM=2A)9i0CwzW^m9xxMdu+?}H?g$83;1qIr}57@MX zvkYy{SZyS^yXw!=0J=QsYq3Lft283TMMiq$~Se^9TpP%y0bjm+1-`eXDf z6e=WLcH_wsZqN)Q25i0vu2`PtoMV+8e|-enyzklVM@H6Wk5)LS0fdL-fBd2#Wa`Go zgtr?q&KEMCRWXFVfG0%MfJ|w2IaLY5-cxHhFZfFq7orfv=Vd$();Xa?fL5wi?h5BX zokhg;`;?zQ8{P*!@NOUc{qsC{6g5=%uGCQ?xm~Obkm=x3=E@v;he(9t<7Y$DNDX&` zr!NxjtfChYRBIE6mUbopP99G8(_{E^?s1zX%90kJe>F>q{M8qCL4V)%6dkG%lmC@= zSwZlGR<@Hd!#ltIPV}3={VAwaxd(?-z!T7oaCsO8ooT}u2Bu=lSroi!*soTkt|Jx8+8^rb?Z+x+wDa;EEbueK?|9+jy;6$9-@u_jLn0{sr= z?ll|f-`??KNg#SXdaH1D{@sV8+4|3DORcBiJFhcOrr-?`K+j+1WV;8rQB_t@jIaUp zqHjO3;@O9gU?_@+#{sEQG%Ei%TQ<%NZhh?W%k3dd;rilsb^u;k4){kVw1x)-Id7C{ zIak7HNb$v~K!|*MuZZ_|8pEYwDcX}Y-xPO$GX`1wF~0|2Zs(k>C%NyCV-2+G>w`k~@%=qy zy-86MM(R-NNXQ-nQzAvv%Eq9u`y3X;;~~`dBB6&bYuH;`=8+r__HsLe-hNF-w1l;e z96|IyYh8_=Us&LC*pJW%OVr_(tH_-&Txp8DI&YHr)Kux4KLZH6SGZ-c!WUFh(G60< zRs%8j?PvQ9PgE~Wn1rWyH4EDx6n}Bs-M}4`gh9Ion=uwF63qdTS9NF*$}e7*NaJw` zl#q+?k|6{f`uFvFOf~PqYJm6YZ*YZTk}kiQS8GFw3uSf`D}nI0R??mzfMotx*QO(v z!*{yGK>5G>*9b|V*TCfY?>(Ua`rw+4XX+hiY;#iswdDXOI{npr7(UW`rBxYj!TZ>r zg_Bw`ps>SPW*|7Nc|C1nJ^jL z|H|+e^!C62=lK9`m@(~`N8Q}_s%(sbhND6Jm6~#tk!Wiy2N|suS;N}>)yGn(@7Iz+ zNqydd^*Xh7>-!M-I%sV;OTBf=-IK+1#e?9v(NoWB)etqsD>uZA@cZBTixmwHkJ~Sc zJZIb>Z+3)RefQxooa2*^j`u@lIAVV40x+6{KbrJY?=NU~bZE5i1{pQ_@J1^I_;&^H zX>WNqhtn`{=6zo5{2?5oV+}ogA?wTCWPbOS&FIf;?0i&wlLJv9@Ns^m%an-|1m%)=~$j`tQ#M3 zqZ!=YkeVCnkm)8TQ`&K9fSHRHsNKJJY4j1CUq0ZUZ#7LK;GkMM3hQ+RPOcOBFZ!m? zNCrfSknIO#{+RpiCrv(+S~0HPM>xxYPyhenmTd;NUkVAd`0W!8;~y@khqMk5E(biT zw0^@Ql?ctDJ?EPwaFoQtyCYlVVCY*0S*0q&l;-BGz3EndQc&kR8+VJBM!F&WS&z6< zDktNl>c)MEf^EHT!^0ua`mo_wt3y>nD}_guspIAuM{yq}9Ule(5{|E>zYh>5*7|>S z2c6#E6U;VVX>zY`I?c7SmAevG-(&=`$^YS}m{3)(F&!jWPX>DNXo*)c@bm8pU=xKl z!ta|i+;mfF8y+3Q)Su+dxXtYyZ6`AwufOws{9cLzXZ!(;0hI1jC%2?jLh=}#fdTYccT@#5 zT!az@Adx`tV)aZ`^6j0van^hAQ0GXBQk&dH2;GJPSik9aFs`EO-#vhlgMAkBp=6_S zPra$sWo7Olc+h$nWejTyaM?=gtN>IO);WBIZ{O`~8!sruX;|j<{vpnt;UhNRD zH|dr{JxniF(091i?^foP72KdI$_W0MAK6Sc{5e z^4p2cTeRN&!4kH(#r7qPn0{%U*pu?A6ksIRnf^@WRZ7jC!xgF zof+?T8|$N7`4;Eibv|AJ32e+urRi5nQ315EF!6HRLVkM&FH6cAzm*q!ZNMToKmBj* zoj&w!;rsZBoq#$Byu;Ih!TiU*M>7DlaBo9TJ~~s=DU(z6t&{4cN#dD-$V2=&!Z9QSSj5DtyR7elXy#Qt83j)W2LK zoO+M@Jcc*$R$$y{B>S>MXUdRzxdZ4-=N3#+QV4$qh<@I}Q3b}4&=(ORe`mqh%xfkb z5n6`<2vu4L2aPpcAJtN-fGLRd!vX^Tv`EocBhSDK7{sU$Ct5nf_n09py$B$|@)j+h z))JCmc{6WZVmDUg0_%)WRDa85$UX;JxTCU)X@^2z5?45#78==SvxIroY3yC`X1OoE#-w-w2R6efXkNFJV#fjc zxZq@O%k-f5CU7(nw}ApUbclzCtBf!+;yNv)d>elnHj8p0xctoPBh`@wha;5vL}MFx zFg*Vt?CWCiYdb!P5-b@sAh<9F#b{UtVoI@tVM}4 z05p&bJpFxsxjQ}MGYM}B3ml!&po5vKr6;r0A%9qYHJXvdnee@Pd(;k+AAWetu-E6^ z<9K@@(pOCb5?HR!$D>wIr@i5do%up35UZsDlP7l*{=@ao}SGbN%yzM`jMg067*Q56{-rr zU|(N;9;DLRt}`4WF6UNv50)4K#bh~PknHP34-@!V!V_?*N2FB3lk1HVW@;o11sb6~ z%TnU2>Bopx-TR9S0j#`vyFaSkh8a7D9c4p*<`>6?Uqa2N*V42GuaRJsB?0c#%7zd< zO=bFs5^_uHMMo4EIn4xct$luYMHYp}8l`t*Lb0e|t%UXC$p?}jhw&t>8nwPXB!q84 zY_6kHyWOO5%-i!=XyJGId3`7-3qg`+z-$>{ykU-8_2v~RSs_r0YMlTmz!Mr1%GO=i z68vhwwD;*m%rnFh%o?qiFs(T)b#iFN)V)Rd3kErgTg=Rj!I~%5GSnhsMB`({&dKhP zRfH2TJ+xWK1bsoK+dnQEokEXdTdZ!cGcrOK)KPXm%UQ-#_0wmz2NN{bp+4a9-^e;&t0%{)2)7 ziM~Nk{i!TIZ)k7BXT0O+!`dr`7ol|>FK;Q~ZhqyL@YW}#T?bz_9SXF)Z0b;9)#mn> zYJ@Y9L1)ZNneZSF6At?DW8ieUXhfcU>9^^<06DpMyel17&{UE|tmG}?^Xz?y^YO^q zu?ti}w5~op@sfu>U`lyar8waYx-CMm2$)_rYN?IyD?Hc?z^;IpED~?c)RVP-G_PnznJU{zff=YX z@qlTETY~eu2+Cq>X)GOL?wP9dzWs=i74cFP=um7O`-aii&46gm{=~QYqiYw41kQ>C zPeV&u9+9+T|5_pO63rTthU>}yIOl5i{oDxPY3<%YA`G=gCWg~OXSmGN;?NfQ2tEHe z*Es;*7bB@Z*kdgGuLcwuSYLJ9bnoS;+`pN6ESP8i04^-w^5Wx-fhrSu^VDPF0JN-` z5Y(kLRd}R5Y3T7A^>E5bGm8B-JV!-)o%L8ma9YxwD6$xhbts~QIPrQ`irBP^iCsIO z|72utE^x=R_T(pTnWIy|D`b5@ks}Uoc)-htqd-vO(4qhKL3<7?+ozxGrCi@A5_f-U z!m=^2uw1~C9_0y|Idw4PEUDa6ixSaeE-IQ(AhyE*Ge=Jgtu@vR$tZjk)**Y?t3aGj zU_$wSZi=Y{#N7F#9RgqMxWfb>1opQ?lP*lo#Rs1d6IJK^V|o>uw>;#Jc;Lu=2E@SZ z{aE2!3N{vFEOye&Y!@$ou(t`kgNN_mjOvD82PQpfGvhHXXCUL=v(%6!YXs;Viw45h zH{jo&R+gTi7Y&hoM%MduXBa7f;jyB9q9v@GTuFE~Kau*qZ_4$!X!6?Bmw)%iZXaD( zC&>tN(8{Bbb;d#%d8;mdTaF@gBzDZ$T#9gbaxi=OYykACSfRauur-r3#Nt^-^_s*!M2ORH;uzC10NcyZ_!pY+E-2 zIO2epYvFk}lN$)2GO4o(KaI6d`oU^6k81rg+hNB@6quyNwkQ2YJ(pG*RI_5Z1?0Ft zho-3bdrCiO5y+|UXmj)gIXJBbNQv*0L4*t#U*AseZ7wFw^Vk`Ss(jF7B>Tn0r5(T> z#bp8X%F!1obsRq zH&09t8FVap4~y8>U{GTEfjIgWb$9Gfj`7^*WrWc<0r4E>8~KrYA3D8g`>X81^+i7) zPIXx9&KfOuUHt-|gp_^?!Oi{F@eHG3v#e_L1h`eRJFKqYZ}V+5!t#BvE0aY3U1P%hk!y~MYuyEEFTYVoB~XGal5v_*ftRSzOhC?y^&i2tiMQAym;)yQv9Y4aWXyQd9{A+|U~vvvM=ZgxZTGSjhRF`$QF zFKz)GzaFdnx0+(=Ps@T{n=Bp@@B;7TQ!5!y*-eZlslnA=#Q}V2OKq9sMQh&ik0&T< zH%(wl5jQ}>UEzxj<3uKlyUE+~-fta*Et^6N4GxNWF2NRC{5 zJhz=3-R@`~_M~ulT@=D=>lD_|-nm!~$ ziE-a!K!K5^s-LsLt`_vQ_DF51;SWLe^kIk|Mz7)tUD^j6SG1n7sTBnygdg|WTKJ*- z-#wYVY*F4?3$U*(o{;;qeJM4JX~r0NVK1O$zaNJJGfOAT_r^TK05L0qCq?4Ak1*qm ziFdkuhA3j09Kp9-uI zx{-gy6|=I#@#t^QDW@wJxgn0xfxa?WVCv{~ntdgo`v@hTBbf34($T+Q5rLOOXxXoe zf^R6FEKn~%BAR)w)i{?KC2%iy;5vNoQ4Yk|T2ny9KGh!78=%*lFMN43CcKNKszvS& zIPqZsrf>rh^HT~hbPK)!L#!tP{ei0jf(cFS!<2mBHRQ_#gT+!(h`QadJM};(?u-Kt z&b&@f9Iz;cXY0cN>u`@R+|}#Fd|7@MoHuWy@96Ury{{mXN-s^I%!8U`&)YysjJP>w z=iT3ga+?jSf=;x)0rI*Ngb(UDbx{p+Bi9ic~pRK^u36S%D7|jj_0><#$5s2X1RVwaw;+S66hf`V^7&-ZLlxp;`U0B-?|W7^wq`+d_a@8zkVC) zd81^7-RR|XApOHA78^jaFcKQ;0M((`S^w`2PJ(MlSI|!zp}M7H3mP-YG~Yh(KSndB zqlfNQloBa7=>9VBhPYG&x)IR&0^WaT;X`IG^InF}pEK1jH%81x8T9f8d|?dcrP*Y< zMd#bq$GGdr$Hl0JSH4&SC4H4ZHTMUQhm@|s9bgODG~oXV-s@c_gpoL>^vHqw1yTTd z%QPPaaSq8kY)Hrq+_rz%=w~{Jz+s{=Va_gl-~ou#z3^ znVFj|sznpzM`?gw{y@J3+LM2H@b$NzazK4hl|{_31R8&lWMu%{*7D-4;EpvHamxFj zbVar%c5kYJLR;BHJ$va3_zvLKZxzri%E%_WOwLW8F@rt3^P?=9NcSP&`C0~A9$X&% zNbVZGSG0v6ab^D~r#Oz0KETB3#e@`SfF{N|ND2eW=F>ff7e@%NYBID)8(I)9yIl0u7j?>C#cuE&Bv#{ zjTj)py=ixTV^rWJr9d;RC1(JFbOLE|w049=$ILArGYG~3E;j0ht6`>06*B$c`!j`) zi|-@rlJ@AyFtN)^e_Vh^Py4{j`EjyJnbKYPA=gdcUhJkk2k<5d*eA~@YqOQ=cJ;gw zh=Fq&HdzP2#m~WyiYdBu0_QP!h_3fwq5#@DEcqs1*P3Zv#BU@?aGwdW72TuNN{64tk*> zkR=$kvbp%1&L{GE@ctPOJR0%251dhHF4=9&prFbLDsX<*`vkZ#$7J5Xz+~ww7o7L} zEkJq$WHIShb?%g89i$KnI#cFuJ;`Y^kfBqFe1UO}tw$yJwSa<|B;6rVY9`%Z26!Mr zySFO-yS0IJOoFY_hi&5`bO;`s4D1QE6inbDmkUrk#!of&%&k9Mkbd0~2M+Pr2yv0; zD(p7)F_LXp0Cd)Mv{ezbV5jTy39#lF(zRNAD@M!EVeV&Aw`(a!YW!xQ{}Em%X9J}& zofdW#c(qMxc4KeSu$h~DSL~%wOcDC}pvYmad%JWR|s!BdUT5Sebua z2HbBWJeDngkxd7RBv!=) zRcBjR^(>(Fxalt3CASb_z7H3Og>uW!J#(!OVAg_T!m2Hn+?~Qb20rS%q3dr;e=m1g zu-Z~?!@tjRIf+<>2ubHFQbm2@7)-NMD3O9H9Y4saE8N@TK7wiBO=xqe6fBfz`M!YJ zW1!fEi38^Y+N79dRP&M<_pb4#v1R^m(BHr~Fo&;4--kjqd?7-C-_=`CRstiYEu!W( zYYkXSjQ|s0unvq?DU5m`rL9e~pEj^>>Q(~{7^J{3Tou_;xbdloG9wc)0Cn)7bTY_TUH1wNOB7L?7k|y|F;9f(^zX3T1Jm*S{ym z#^6R!{+-KT}8=H2zRB50r{@vz(>*<*S z!m@&k)d=0lm|PWFnOO}EUiCu&$&@Wq84KoTc?xs+Fo&Z-Phyh=VUiJttI(f7>9%rweU?O9LKznVvlWpA@k-Qu^fu zXwty|yUbts2SRmHtPQt3HLFeJMk&E(Gx%A*iKj7ZaGG|7;%=O8Oc>X-`n}5*fa~~4 z4p))1GCC2hlM|m2u59}2V#w=Pq4>%So=w8Aaw`~+Z9kA_0alCr^C(^7`tOcVgC~<4 zC3}D0hZcmi1?C;8HQ<&vt`1RnQ-aP)(+0;&{F|tPW-ZJb+l5 zDdCnbtR%=WRV_RnbQkj3Z|73-4_2FjOUV(1&Y2WnQjEGg7YwC4mYBY^-`Wy*12XTw zGwlc+fEF-d9B?&rZ6#2Y0cVrJ-;7yM=UX1Ztvel~h$br`%VjY+b_(3m(;vc!dIOg_ zgU9IJ^sk=LvSfg>!gRIvFcvQ+n(yX4ILuN)l*WL{3TLE$X4_0U27zP^$L{4oJQ-pS=4lS?EF_NwCQ7eDRE$7b1ww`tBfuy9T*VUWvywv2G|gzrs>N>%`C%8s3Z zBfq|75`R4>`$%LV%U*PFeD9y#nf4d;H?S?}z5$=RT2lKt&Fv4x7v$r6e5P;YpO5|R zX~v5kNzO?D3@{sbOK+PJ5|5iFuw~gN@S=R2kDgub+M?dKhfEJ(<|sMe)r4yeNM>pe zb9^-WLf3pV#udCjPK-=hf;I_o~|0U0=TVD_J5W4@JJqVG5{+ODF*q%<`Dg_j00XSyuG+(j_MV z*#@d!H7Qa1UYfxfO)N+g&PyX$X9(^UxtDRgn=}drWhO& zeSAC2I(~11U%mC?r7kf6WBQ$o>5^7IIA1Q`w-fmtD@hf{lA(YL!;I&Dh9* ziie78ZrAt3zlOYm##YO1a#EP;2?Ki7Twn~0NG7^Ik6=?P9BW$z{NPsTzw~9X(?@&Q z(6oWXar>V&l$Dp5y&0$%UX(kw#_)j|iKjc~osJQQMueA|`Y;F3JMFy8PdEaFR-Nl)_)&rdU(u(~6qcccFll4Yxx%KdJ~A zt7!z4eU2o?SNqHXFboQx=y`A%{KHZO7#YLm%Su7NznvIwI8AFKbrciOdFCj_thJOX zAGEL0MSn+Y4fo#x{0rIzvBQ$T4>Ng{W;6H=+$e2GHc&XnP$#&GHNI>Nrhv1`z~(rc8ZzXfG3wDzyW3lDX|kI8mc!EfZQAoi~09#x#hBs z3?3ZI4=HJ=P&4emMd6${0M)ac!%46%cO3-`RqojM%DN46|BKr9Ax^OBPJ$N5>dZ6LJVKj1oy>C*0Bb!`l2ac;|>4Z zX8tsH)HNv|Xk&9~f(s^;bpFc>juO~Spi3FfNK(w34!C6;s^3zqu=8riZ}Ad=;&g-p zn2imd_g+)yDZ&uyEP!5i3Q2JXYGZAEGn>t2qj+%S%#hlLy%E7m-ej0_lV5Jrqqs$l zSxvWIYr8IzYzE^a)pk>1d5oa9sn1=+wD0#Hp-31 zrh+L6boOD{fgJe-wc@h?Q$3q3Zy-JOmscQwB@A?R?E`*R=ztH{o;9dJS*6)4#}n)_ zO0Ow4VCOH}uuI^S)3V6o0P9fx_;HWlcPdJNra+5NyL*GOij{p#Pdkw*gBtN0&^jBE zvG&f*=S!J79iW69&4;Pck!3I#ndaL|N(rVBW&}?(1I}t1&we8iQ>Jb_!vW?2*8s=| ziNy#4^#+$bRf$_k1!1i}T^r?Y*@%qN74YKD6tdkQfFDW{G^8qcI{`4kHYE|zf)J_{ zawF)*NkboIp|hA5M3zz4oG!9Kf=PlZRjhtSoF)%VKFlEt9!mW0)c2ob1%r}g@}fB98X94?JXAm)xO(bL5J{VMKIs@;CINRN0U@Ft#V%|sqP(e*8<0Ck-xa!@NN>YWH$SzGin;Brufl#A*mW(#Z`Xdu?5OM)W4$O(3 z;qtGZ0WaUWSwU3QS+6I!yUZSt4L_`q@bluWA^JI`2F4S*?L&{i>|~;TRo$pqiufj0 z^TpMC+^#rgRS-|obw9Gk58jzfa%%ci8Nh?-<`+e7N+5qwr&$vf3~< zWv>FP2+oR?sdU_5V!uJ}1E#1kqIoou-v0c}bIxPS&eQyx!+{}90^&*7?x6ilf&9rZd-g@aJ`K)B6GQ|Y z+Pv4wBakN`T1#;!!n2!*Tm<@AaqmwTIrFsXRCTa2@o)b!ga%$vMf`L%Jb?qqBPg(O z8GtTm7BdlzfJgKrn3|S*dIicHM~5 z5xL~yR)vi^MCOeLtSL{{GgSpUH2Z!t7$tI@Ij0dKg!>u9kH3@Mm>4*a7*I#__=gIw zCue?1Q35Cz)=iWgODgtVRgAAjeh?(hdnycCX(#i-(o63Q=)|q+Q{_iRKc5D3|CI_n ztIhe-YqR7Bdn~eKZ{Dv5cVzq#@Biu?;2FP9vlyYQ0gTT!&B$D0Fs$O2L41fGhj?Pb zH+P<@^OZh-1E)Y9=76JbAg|R>0MrkD3o%r58kv0cPe?ByF!TZTzSrXh{?bJn?b01b zT421-W&StEo50`tCW|nieZjtNnfjcu-UQspkZ#L;&t#f*mkOjD-Pe2pt}TDJ7OX!h z4~*ekCV}q1Bg)_N6^PLoN^d!MYaMofy%LW{%!w+Y&j!W{0=BMsmrM*kQai9u1okcI z`0WLe%kjJcpb9t{lD4^m($5O!qu;^qKpOjw;>!8MQ*{#D&#)cs@fVcR!;Ajelhq`C zW6#3-Ln|TyHn{EJz%FDB5`Sc4uOl*<12+(e7{u`LBQVU2*vFP+j`q%%UxR~>G<*`e zvEw6|PB0%q<4iQIm`cVw_TPKDkU2K(q&`NpAH`m!5@px2GCV(tYpX1#;V$ zk)X5#WRl4?5a>Z`$(45dnpHWU9&b1O1*Jjdg`4KseX*7Q9g?87Yd*-kg!iv_~!+1 z(<{exyi8D6hP~GpYH%*gBZYqa{;T$yR3dnhb)6f?kbt%Bm--+kP-SA9av$=~G^gY? zCaAcUwwlO#3!$iY<_(5k3Ih;74D`inydIurDFRH}c?47qd)D#*kx#wyE1s2>IXeb3 zAl9bSGOj!4@*R!n#ASJM4_~+mr}-Ta?mUZFa8XA)M3#F_v<~i-B9R2u z$@!eMzN>EnVb10W3p09AL_dbnY{+K?t>h1k@xXTf)v)Cb45Ema{NW;w-yiv{By&&& z6K9};_Jn*YU!l4QSqbPEU#MVzZ6G6zPo&+rXk3kLWRO@FyF}#zrh(cFT=%xGVrPQQY-Qu-g}C zuUCwfx`uXL1e7}|g%40R_m=|BgyXNrmDFB1`f)T}l8gwTl_=WBg@z=!Ltjrxy0!F^aAy~27NS=gWX zf&jg{w1CM7zGtJaoiI0RDv`?i@Qv^#7M`9ferFc^%|-^j<6zx5%w``c`5Tdd;{U8| zIJfdAgxpg!Pb;9|^_EnameDHQ18x6GZNZ{P!0BpS-qdwv&xZ}BoVz&pAqa7v_N+R^~*;t?Uzl)H%c z=F~qe6sLWOTd6l!kIfB|1I3|S|Mi1nY{9IH*Y}ae;%^PCZ72Rxt0S%;QPM>ua6qmE zX1l&E)0pZ-9itwHaG&Uq6|N1D&iM1IQO`GnaWw@4Fg}9p{2x#iQDY&)nrw#%xdj7( z)G{hj^J@SP&oA);Z$-(M9&;DT{dG{79|?Xyv_$YMc@&JAWpg6D0~$k`U*&gN4AE8C zIY)`mIvbrWLHe%t=ww1?Xcp0=*P2Z`1_mGk{wrJi8non}&P_-BQxAcFtRnFsM9 zXwo41qZeI^;z>^-*?C|)-7smNm|BPm6}oi>lT(bI-x5 z1e9o&Lt20HYd96P8@LKy<_j3qWzuirY2sh!7WB%l(?r?6wVqU*x?q}ugR2lEhxdwjUcM~~EOSmu#jJ4wjitCvn zAm8?JYX&@uw1>B=^()`pd-8g12#Or`$!uCnqd+l1d_JD!|FDXC0dYI{ zkZ&WV!41sc0`R?Jkq&md&K!2wAG4AoN|ffPjX17DXBB&+FRl#Ux4vtVy!!0LmI9}1 zewJ|+WnW0NSwYq;WU;nH@t5;Pv>9{YwDb{(ZL%?t0o8=ult(+cHaeA3{`e%9muF$D zFMYy~jQ0ji6A(y**(yT7Oc509`HUXld^o=1ZS)L``eJC$%jd$T+~!izO4u-~uU=W8 zat-7J+^P2tHk077ahJgm7qvIwbdd)SXY84UOeM1DP2Hhrc3HGr<^FF5rrlH(biyt5 zty2UT+9JiOVq=-SIf8v&2ot5YbDVU@*T>!MvsQ}0pbI3s`3?N(z=Ztzl%VD0=GqIu z`N@?JxNB08^>pf8rZ@to*Dkj3s1{nl_7TbERaP~dn|*S#c(9!)VhuDqFZZCIF15OK zeTO2G7*jmswfhwhzfU*7tf4<45JiJohmm|?Lmf}@jaYVkYg;MPzjsspws~BBF1Oyv zCer&h8#`q_=U>TsLIbMy;swW?L~~DA7sOxf{ne8f76uD2(?2gjq-XL^Ww|=Q%j;o8 z|9%r-EkN7&pYEhA%nO~f=&66`3A%GHuQ~*VCk}?n-P&Bx1xfTA>F#2s+R9%fNQ-(} z*CLZ&uh}U7-f@(CoWLLN(BHyfIChjuOq3xAcpmR_|F}$ zDD39*|FCr)i>hkd7X2U!M(?e4d*vu~Ipsqs8@vE7@qC~1iqfg_sY%wjSVC%yl+m=q3+lXJ0sPOEtx7j#0kQrnk6GVh=1&3%-t_+(JP z9*~+iW6k^Y?d&n##j+WFZCuiX14R8bQg?MNKNyz%>Q76eHH%T6A0msjH+kQmvt3(Q z@Y6JtOiHN4e+z9ne@qbXG;l)=ybQ1(pHlyMZ0wGo*;K&2_xVC&g}oYqN&4J%zHMKj zIj{bWkm(Mp3v>atXsH7J1>z^QhZ>ZW_hK4D#e=L+K1ew56u z3)9eLtxjDT;lZ-_)6V)(9{J(Ee4qoQk-xX24Z_}K{y6@$yrjarmXBJ(({kg+)i60H z0l%41^=R3U`MS{%xLh_x{H}774rT`=nnO>x8(~X z6^`HxU|qVM#wt;Az)Z-OUlE&3(uPjN@dNHsZ+GwyEJr?Y3h}ZnaTAG6EmigV&5gT4 zA-hT{ja=z!l9>}#+t*8l&D{^*sL?N?)vR*fG?hsV7ZL&NztoBFW)z2J_vM{`iH~A# z-V@I&DeHN0bj0bS0Cl-h{_wvuFs5(d(8%&}xgijD@l^3+y`>)?5R|5k(*M)h?N)J@ zWXc-y6*GGaiv7%FC3W%;lf2Zpm+d1gFUPC1;|}Y1|LqQX^}bV6S|u-y{M*|C_E$tl zV(!VjFgkKOh=r%$hPi6lcOI!upkYmmm{R5@A1}$VOOHROy%|w(%iEDo50MXXP5W_? z9aM;qMAU6!+*<`KO#g zleU|YWW#YyHaA;3b`de3%cD`faZI}l4As=vGXiSCQgtgU!>~8dBNYkEB1q+=7nj!Mi#roaI%Cqm=00ZO>U1&u9~Y6bHej zWbvvdf4Q8)R;<}Yak=vB04#k$nqc@Wah+w>O@Au!eZ(Bt!vFV-c3c5OEnhrM1qHth zuqHV6PKdvWQjPwqItR2P8HxV9a=f+PW#@y!D^M=V9R(+It?}MTEaw|onk2F!CivRv znC=ACZL^^H9jVU0ErS!}m)#?tJY$gz3w->Jvs1l3A@NKyPCS^+I~4ZQEMEJx{TkLR z)P-m&-z3I~L>W|K49=L}dtBnY7zL+*x}6nQc>GLZ-MgodO_|>%hj8V{bszaaJlds< z0|zjZ7?K9?Tj*|iU-dWMBw3W>>z(Abe1J^H%ykx4F87m%40ffMv^+$>{4?`SGiT+b zw{Zcq-vyoTp8TB53!h=$NBX7jNcKocyXwpM;eLPmaNHo42b_tC5_{Z7%;?Busc#C= z#UxLuC7-2Vgr7@^TSp|*q419j;5A2F{whGF)CY=6^8`pdh73r?j761k;qy(}1(W<0 zgn&9ZYzNqU&^X;Khh=iM56v$eGGaaUgvP%2mEk!pGW=HfG@qXX4&bx4eGiyq&_sK7OSKuY7&kWi8%yQ-h> zwG!EJKEwIcZIw|o(Jc)_88n}d`~pMH-#K*`!mD$8U*mTFppDmK!}!2aLE@)nf`qtbidE%g6<2f;FN2CcVo{3P46N2O9x~+U2_AAC!r#=J zC!VkPS_Z(J<@P27px06^uH9ZBe3_U79MFi>fjH2YEMqT6uQ2To7+e`1<0_44xpW$S0OaDcuDeYO z_)Gs{;U>UB8US~REU_Y-MYYb5hXwrFJAOgtFZ+?Ke%3>LeBbAvwRcG6Ae`|PY)ga6 zg^c?0{kIzO+HnnHA*(lbjEE*RkCV;k+~-dXgVcRx%@aCHT)96vAOc^Vpa8wIj*ZSBLpLKAv9>l-J%9WgXxJ{y&bwnn35(pnBeK=uvb`_nJ6qz|Tr_ zxa7c2WF?$)bnp>txIhAl?wjlMn@~B?&zP>g!980vuQxI-fB>m}CrHsmg>O`5!HS4GzN50o?W~@N zEk@kIswbVl=FM0Y{Hb${g4x4-@{+otfBZ;SKu&uxeK!`!Y{CMXyiv&x`O0f=16%TK zAsn;6TfDw(%T% zu&4aW@{Br;`usJzTN3NVSL}^lveVU@euc^9@yELp7#W!;u0DrS0X)-8LgUa0Bcxp7 z*7U}e&PjM6R`zcnVOc;T;sEycoBq?e3Wx1KV71Xgq>uIeFH8S}xmK2m$|oVacncI* zBw;$f;+Ex+pS3_fCZD8ydUjXTKh>jm**RCZUWw08R=ZE>xfgwRxr`>Dj1Bh*T-`|{ z=H>x^uoy#;9LUQgofg#UFIl%O=HI-Vu=KD;0G_`-)j&{Jmo6}K+)y+v*vk(V5JHDO zxCSpssGo;B;Zy#ht&%yH3+1`?Wo)&tmqR_@RCGx0+QmE<)V|K-bkzM9Nj+h zf190wW<5)n4Es=XMuqmdWGhhhf9IqctBoTZ!h0-*uRjOx@`Cwh%Xvl}zLZ6KBTxEr z6{ME1jFCBisa8FaGZdV+%Ol(4XR%z4_S*EvwJVlP^?-8Jbj%vx%nGVnZ|VzHe_~dT zIT!LAHDPP~y)u+Jtzb1rR8tTW0(y_b43J^C9K(S4xUc-u5p7oD{-129tQ^sKVBo!> zcX+F|51q|E`IRa)^Ex04=grW`AREUDlKk*Lx7{d7&$kIT7NoG_Vad^TRI-^-jv-3W z$@H#oE;6OhW+18C>M-yoU~1x18FEemPCTHR_GFF+%SX&g=2B_Iolvq@AoD zL4Msm%__c)i(%pu?ZuZL#5=;nnPt#E<^iv<^?gS49>yI*SmwC@3dtxE*_(rx5kIJi(*@o1fwvtd;W zya`zGoT*LoRT6Z}#%TWRfA7Er-LqxJ4&-S;{Xf!m`Qsv4Sz(y;&-L>%VoDqlMNk!YUeRicuep%Es z2^dzpz#Q224rV6Npp$R`>x(QeC+*Us8sTD>@eW*N_LQf}KXBCFzkRq?h94o^D-s+^^l5U2+!)n)n) zl#)pncW6#j`IEeP^X_@KK0J0?*T?WUM8CgYz$4F33e{0GgjsUazOnToP)9^=zl(Oe z57?!w1M^yciGCJ@MAfXm?^mM21B-4OjcHkYYqUKJpm>tw~g)4|CiL8F)g! zo$_I1Czv)v)-eoBCj(^Y=5;bRAONV&=03Nh^@w&$$jnktA0}~Cs^CZ{KmZE;lX3P) zd0`ZK7Np7g=8-N(i$uJ(zg(zVwPAPkG-xEN<#s*H$l2ayISfp>AExW2?o*s6_sBZB zKh!nyX2P?@ZM5#0;}!2vsOb~99YqpDHVus*;Gro@`ksTc>PDtVskg9SS|@ll`lD~o zmR%b;O26Ich>Sq{C&|AqJXd;rWM$r?s>%25*$Vk&pF|OEvEfSo?rTiI3^7@cB3TZ6 z__2&HoGPGqC$H(=y5?@b%5j6vARB#zvN-*2N24d%bTkSbh3dSKLP$gA8>xV>luI)z z2gs0ltk?Qjwk~>Duy(2c<>-ocx0)2G&50$<{1xwlh6h}3I_W-#I=i4$;o*}~ujPj~ zpcBbbcCbwJ8VamyODVY`kGUG_`DSp(zj^G8DxPC~3Ti7hG<}~s^V|!@%iZ>DjGOS^ zU8H~D+R)em5?81@s9-kQ-*GPpE%h8G4CKgkV8u3;S2YAo;e~uKE+H$AUoT+>3}CXT0y}dhr2z=AvKkv9nyx zrTFQ|dWUuBmYzuEFAv9&r&mX+`$48mv-b7ep z4OZ#}rpJNNSQK*f{fT`nvQ-WgvAVrs;fD*y&q1h{lD%9N_rRhTZ4Ga*Jf6FuSWo&p zQ?8~lbjd;3Uk^Sy|M1wgH%!WZ=e1gA@=@*=45p~ndv=dsov?uVxH&$q_ti2I(jeiI zd^`cMGe|0CzhonQSOL^l4Ec1FLWG+@o)jj@o^P*I%IZv&$?K-?FT0Cqnom4K+WU7* zN>C-DB%)=6=K`>n@bFa~%EPYLn%Y$SI%W6vh5!k-3}HLbE@J(BAYmmasSW$B4DZ!9 zpX%^tGuH$j-T_27=rIrY^PKGhQWU>}L+`NbZ8tOAU+q%-6Q?KNX>T@bu}wdmo7Z{7 zj`K@gNL2BW|02!_BwGR4?&--2&z^V!w9lB(tYAz)?W>>bVpa8)xnX1|*V@nz|Ef>l z2-uv%_Z3Fw;qgfYTBmWGRqSFIhYNY(@9#{VqV6I7POfnNY3fgw^NZj0zrKd+A_BU8 zP?)&c81I&k%aPDrLR8u&390rc=I>a@04B#EFmC5s;FZ!UrC0;JWVt1h;hn4*XQS5@ z2f!nXE$%N1@!+ISFHu1r4xN_mg$e(YK(y`9;3% zv>JCbfbF^hc0OtBU4Lxi(gQOau7>7ffsCYo%)Gp;0FO00g?iBsuhl=tu;loX_!0?m zeh^;wJEW~I372jQ&lUs}8_mwaP;p3eP_}b&IK*vF=6M}sK%1&*441F7Kiqi_XF}n9 zt_B~cwfG0o*l7(ICP?6&3kc`+pd3KrzP2Dw&|;Lwf6j218pe0Y1Z;l3ewCV_n*{kWqn4&_sT z-UDc(_k7fZBf?Pu?Z>-Pi^xmJ)8Jj-&)};8P!oe7uRWt8HUsU$uJibWk|o>lAxrxl z>mv6KbpL)_Z{BO>Dt`a%F+XYAPecRSM56=IPwK7d41kiSQ}Dz)rz$os?Qo&tO)wUE z6UjlOya)#=lv~0Z6;4~Hd&>CTG|y)25eUd=rAY2iH<=08rb$Eu8#N<#9tP!icMoB{ z8K#Io2B2Dc#55_6eaM83Uho)!TCf|4Ih-#vd7=m8_0lY+kohK=>rHc4BTqdPMmwO1 zxGyOWQ;n=cWk}a+>?+OKD@eJ(pb`r*;6l?IeWV)2kxz7SN6D4IdqYh^_cCPUsmH4b zh=CjKJ`csL3ykJSgU@$==$xZ|=0YnGTH z0p>JbFgChp6V{>Pd0&G_m+7*r=PLmJWS_EoDVSG{`r*tRqR_d~;x|6!*0Su+;4Pe` zY~5qoDX#gX(ulnGKfZnQ2IwS_DL?IS)6Mqpel99}@U8m+G11{fDMq>5O%;+gR1~%j zWP1DUehEpYiKcOJKHTFAvbo7nli10@CW?^G9Ndz8X$;&grf}~W^-Uc7pEYS~p5b>+ z{tb5GEcfA$`}kE2jhqr7G%is_ohxn;C^!xmh>3r2uU2*({q1d6}il zGUc6FuAuil(1;iQ3&<#P%h-eErwfdLm&a?+kUtXWM|XjgxWXq#B>Za#FmjaS=yBif zrhWrU0j5bgM1t_;sN;?}ABgQb>-hveHzSd++hMs_+mUs+Gg;l#?X_a2j+L7$ZYRky z1uRZ38Cap=92SF_|9EVQOmC05FsTgQe!5~B65VzMqN^$=`}HA(Zwe7j6MBUy8U(f0zwy_;=1q$CF=@tzp8<&8HcZL2!GYZBjp|Ej)zlk z=UDqSvj{f4lrD>&eGSsTU@t1n(-I`>tzJu(?`HB|1NdGp05~C~rBkKuO-B-f{oJB{ zXe)x^SIm@CyeRj-fI39=)!gK>_<6|i13MGEoOct1WB9!v@Y`?EBd7_KB6os&$Bag)9IiRgta_({K0Cj}#(7+drAT(=|Cuv+hehOX=!ZE6#-x!j64D?86kq(^*-J72)ZCvNF{t#z zb~{P$6u7>LCb&~$-5Bd9qD8s@D?J+Sh5fSmqmP$T<{F*W(idjK7l6Yva~-niMpfjp z6)pX&Zu|O4+AWmJp83o6+s1OLbkA~OC+;PAR}LDaF6>7zE3`+Q`G?O@!5jjh-nA3m zcB8fL?z#|=lS$*>=ZLb}dg5=uch@!|t3>KWMAGQht7kux8J$qlz) z+V664cK1W#9O6$gJbYeK+n5xk`xgL>TFs;si15xkQc{1f?7%s&3iG+#P$hpnMJV>< zVb5#J0hO2#kNZ8QsTL$5q@zx%~q10(8{&$?(pV!VL}HeTsI zL*zcAYSLP8oHSZL%#QrVU7C}hQ@wP3ZdD=y$pGlMUnkX_m)|QwD>s4}zF=}K$4YC? z1(jLU)9FxhjTwHZuoAp{H4^~l9tIFZ2^UC{yTwAcQP#k_lO2N>Fbv7MRGY&4LpXW} zTF4*FB}jI|x(NnX0Pyzs<(WrA>k%r9c9J#mX{BNEX<)v~L_tO!FQ4r|5D#^4wWA6o zw5h(=gLJa)B%RG|d`H?{n8kR3`uSsjh5C1+d7Noi)ki?x2iwd7 zN6=3=zDuj{Uh)0O&qV#&Hq{kQ+ZZui>H29!=f6@&K7K{!?6ZUEWDdt6Fq$L#>r|54 zbJR~SzQK1zxB7E>X53Bz6@|RlsInshU~!<2zR^i~-KCa}u5S=(1@Xl25m;_NLfbpY zyCC{1M=KTYrK+Q=0PkE_uq=q16?3N*TiN{}Tzg<7aQyDh@#nDqeya40S)hoHQShMz zOduWp;?%F7BWb*z?29w92E0rvE??p~X5%^5IRjX+F`wOEpU*9!)QjK(NAsoV>Buwo zL%!Tz$q5-nOf$bq`f~b1D_ZG!dRGQuUH8~l@6DFB$9=bfG9E5}=M$khwR>NV!aM$5 zpyxovP`q!|+1{6lRT_O1)m|`CZ|hyx>RH++T9J{AG(Fo$$Ti{9sJ-c04%aF|>H4;w`f4pL{NsG;zS6N@r! zU>eY%xV(?{#HiNR0qq+{cr8RN7!p9oP81Zi{925E!DDeowAS5 zkYzWVRa_vr?=QCwbF8SbbsT=O*2*K)Q^0qpp8;JbbIHFK9 zM{FDAEBNAmwCt($9H&c5Nr`ogs-~4!Hu8-4ucWwGNlzTD55tqb~e~T*3zZ~7&_=@i0l5*MGDfds~ z;8@YgLuU;<@bvXF?d^pry97z?J;yp9f1nfkkTS{okMlx$#U?>p78xO4^lq~6Y?pxw3$Qj4_C%#0Ve zX`R|Z{bE0M5S8zc5ASL*vl}1%ljrk zC2{JQPa&Qu?bMRfCc#uz7|nBMN^4)!p!jFSBD-8iF;0rq{0S>1E! zLBf-=@K;*TdNCMneolLrmTp3D66^Qy(ZdJ0vxHK1R1j`N7UxMNB>+})lcZgq(h?d@ zOZuu$O&*PSm)RAw%pCy+Cp&oaDjX}POa)M6mfnydt0RcszXl_!3cjQ8teUHI4~Q6^ z&8%TxQ6-;W`iP9Qbw$RZ@8m!B70qk?fKfd6!8`eQs|5aOnLu5v?Pj*0&s z))}}Od)V##xc@t6|A>(WpgYyouN%J`@c3|0*7WHVq zfY%WbyBueg@q5!9Ia~NaN3ZUhWgosYN`r^ns3`3C(S9}x0R>+C;v-SKt>^Yc5B6S7 zuEju2AkeL7i#W(3db=|usw%NJaw0GV!5y>Hxk9fVyXx+XYK&wPDGm%brQ{Er;^H=x z@r(AkU#_A4{OMlAgB$O!Py7Zqs^sv!RuIey(06$!?#_|CTg6nm4MltsPF_6J2;`za zL>U+lm1$RfK1w83Ae+>mw-~Lm`{;_zd&#dKOkCUPLY@akUd~2i?a!$4hh{fCDk@-g z_TG(j(VQm@9XOG<{21q8S!Vo~gSF|v$MKPH$_E7=NPWn1{y-jKAVq(7(*_&Vqz;_4 zYJ#YkId-_c!+#9YRA?+qS5b$He8JtFi4OsF{iY|6>H9S_m7K~`gWt(NX1Is)McS1O zrn@W#Mxlw)qg`L#cy4{^>-NztP!R3fx&}8FqvCin#UGf)&|f}rhI`$`ql~3VG4gLW z2`yJ$@qBJy>KieGm9Rm6g16Sw+#h2aR?-sNFFMF;`cw2GH3qz^pNqlAKSj3HaCQoMm z{6;6}8q!v4+{+|i+aJ=~nLI5d^kVoG^hY+hSHccbwQq?_68GnWlN!Tr@A#s~-%ve; z8Ys%^MR-0p(VJlXyqnk~Ag@3EaW^G^&aY~)&qnHGv!X=-Kj0|Kr7)6eZ_F|jVeE8+ zb}{M-x{?%lbD1M1sG+7$A#`;-rd8us^y`ATn5PPKy)d`cpZxu-`| z8f4rZfMW88#P2h5iuSohM!D*&39J!S6_o|EeU=t0?&@1#R}r&7Br@y!@NVCZ26=AYys5)>1IY611%(p9v&8 z^qcI2m=8q|JrRU|4|4vQg`@?P7~HtLp*{8t{9limW=AA-XQYO}K4ln!${(-_l&>O@ z@9|kQnEmS_=8_>BN#uL?QBN8yRR&J3x0>Lvh^Q8&&x*`14#e(TA#r^f(`TK<4|P5B z59;)la89(4Y#6o^=CMkGGw%oYVj^$SVGV?F;rBeuWbKvtyMK$V@-PeVAQPl9Zue%8 zk1u$8BtwErtueU=v%14QP!D!Rq3VYB`ZNFQQyF6IHIRAvX)sMyKiOk4Wv=*Ln*;NxuIr-@|xqc7#|_&5*jTF-G!5eZ2i&WSSWULhaaBdfxCl79AQEx6M`b=NDM&Jkf@*J-aG z?e1#D2@WZrGoV(lVxm+f2tOj;i)64dvetNL7XpLzs^nL;2++73TW+*4k=Ye&MC^>m zaZQd57&A7ItK2q_=fe=QNOaY(fo3^_YZ^bIfpP@ia&N%x21t%IiyLt~L8%}AT&|kWiuBg^Jb9LqY&umr4%cTle=_)ZI&c6|fXy!nk%2WG2NAQF? zFToon^-dhnAwS?d@&<$jIs^$agc;qe<+ba_bmu0STtOXS4&;SBNz6xmAvE)w7mkik z)rC&4>36+1b$LJx=ePYbiC2d|`MYjTjzfsY_~GxF^N4>+Kwm+%DN%#>EXLFY9W8w8 zUuP-?h72pnnA@O8p!UdMd{|_xK53hA!}2wBboQeKwc493kd*^&Z0LUAe6KN#f%IGW z8aI~J9^fdoHy}Pu+>QAcdi&?-YCJvE&Zc6r#M@(PZ>T{card#P7*(31{+#^_I)(Q) zf4LirecjE{^oG{*ViZ^-->QtbgrkG2Dgab|H98UfNE)}rRRyG-*?_WXn18x`zG+Cj z6kO@Ump8@mKQXuc;?4(vd& z0fc|Dtf#2X=2WtWOGViab^(pcy<#9UrYJz=+nF=-qQh^@C65%rPu|SiSFEMp*z^o! zm}D(78G}8w?d4Slu3al%P4bwBS<~Dnic6h)eFj}?&y`4}I zS@mUsAsFLasjdrIbjsL)bdlvA+H?shc+BcZ(#zrCf5)S#_3^0<{$?wPD4oR6;Lf3Q z<~tesBUU{3j)v`M$;VcVm5NrAK16I)A!iz(uhj%Wc50w0w|VeR>z{n%>E}n%tL~b7 z;3rZGRIT)bens}Bx^9aMhi9iOYw;*icfK}hT|J{LJ04l@itxAcbP`Ltfi3-97U8S+ z$h+na`Ekai=k4BQegiv=Zd=NAmps?@utG?$h z{1$9-jB9s35r^H6$!p;z()*MrxKqak_YDjg@Qg_+YZkazouF~@q(u| zagXhXbuuC~8|zO`WNA;jd>j)Z-C_FHU-u`~?yZGpl=Sr3W4^8U1m<>sli@vG`QKPbz>5k$N(0c6_N=w$z{Pfzu!fT=)Kr<5)Woce{;M| z*YiUnlF|AiWaiuRRgJWqKwl8UTmVn$YQ2K@3dXGyEC&Zu2tVe~In7H_q+b^K!?Cl9 zQvdb5MO2R9Du)_CbJ_+vam4W+EI%*26XVy4wpyMy2zd25ITTt;QW%l{gw>x?jt7S_ zneK=|G3+et-i-9rOJ6zcs%41qbE{@vKaCpBt3g#v@Fo&|dk=Tqm#+A)borwc*zm1% z@f@xiVujgP%R$C8Sr0yT>8lJ`0xHz=AcM-?9e<|>Z*T_I9;61{rbHn?W*_=zwX?Xe z%7>qH>69ePp3IlfHF06GqVLnCJ8a);=gP%o)O;jQ8b{a^WKZ1YUWwQMqTVo}v3!0A z{Nzxm0R~W;I@7OdNlS3{tdHs`1`{#{7S%r^YbtHwv5h8Nw!z&vp{3t{6PEq;{_MDl z@_ex!KqF=K?7G9%!$CgE)3bZdwA;U*Q3VX$8}}IML=w0kNZJfX^)SHe1obIJiHDY48h&Tta8TZ! z*AJ^n{X{EP!#au!sEsJsZ#Xiu_^YS%4gE^oC_XHEEF*u1jG%Cnw!5gYvh9BpNy0)B zodO7GR;gYSLc$zrz&(psojXiQ4v!^IZ%5=-T5ygn?|^!hy3XA8aVgVRo1?j;90I1tiasN0Ny3}sNB!Dn0!`G z!}^HWiIFuD(tJ=!vPcUrX2SiAi;hS6*qRoikxW3}>jz5_`y;|zM@i)p)Q8OmUWhC{ z_${DV5N^Q5a5W!H#PkJ{1xHqrX+R1~+#E;PMJ&b1_>FI#pAH(Y-O3Ub^Pk+RJ31m496`e`Hv5t82a{Q#0gcJc(w7z zlx21P=wA&ak3}cHn{3eKa+8PV@I3c}a4rw>*QlEKYo|8SQJyFHas1r1aZV+6I^MOQ z=e$sggrh&t&1R_v_lLkMATmJPdZvCa_|&Iy*62?xIDrXw-1TY@cvJaQJ5%EH7H)*= zsRTN3_!YwVX`{Pa1XkfI{BtA6Vw!PTBLB=^(9P(CUw^vALQI(-uXhUU0QS;NLgso7 z)eNWG^dL@2m~?${XUYC9W}4v_bp2>hgZc!1KJOpr9GU=9X{2V+^~MJ~Byw4~ zxfsclbfp0Uu$i^l!!VIYfOomo#a+M~yw(Q&ENw=o&}%If)QIR76QKBYf05a}I<=p8 zVGbCMKgtJ3tY_wj11;71@c}cNxd#cYC5#R4FJ|^%z}Dl!PQhul@HgdS}oek-s%ug;Vc;=R3mzn`j+h zmhNex>No)CQlD@^h9L z@tEQyAS8c$KGX2fVF0)dx;S%0NpotPm=y)y48BPSTnovrJ~iO&rI%637kPYpXv97# zffl6`Ml^R9MnLCld!2lUOeF3dd$Z%YZF!4`c)R3-hCplYOx~IHfi@)GcV&Qb2Qq{G5Q!yRX^0@ z*Z+!JVbIi4!ZjA!4f4pFh@Ut?^mVHsfY;bf8Kw|47oDf@mvOvI7FD)X<|_W&|z)ty*EQ-cmD7T2;oFD zSk4`6^me46sNI4`MZP~@YE5OMI-ubC+npF_nUF;*__`75@?1vsLKPmJydTzWr;ZG< zns*~y3WR*Q_Qxtk8NrXMUNH&uGa6oQzZDBCw_mv6gq7N2jM=e7s$cQ9sQPGDw#z`q zSL=6qa_euF+-l!<9`WLLq|Ib6h0XQOyYm8U4FY*DEwnm4p)qa@yTT8tUF2&A2OT)z zv5F4PYcr35BC`%l6xF8tOHJR8A`8IRNDUu@Wc*&AF0J*Bn`AyIEa}N$ z9OqN=s?f@i;y@D7QCUW{DM(;IO(%H+3=kpjho?Wa(*-Nme;Re0^%UJ%r6T)LVq1ud z9{2jJ8)AOHJ_I3BxsQiI^-{;wY{BkT3c(LP4gMajAZEOa{y-jZ++e`UM!>Zg7WuyW zb24?mb*9ocwb2**+r#&m zJokQtj<-u_tn{8@ya@w=C{m9!gqVt_=qaFXL)NrjrzAcA8e1KCch5>Jm-yr9X~0Q) z6hG$MsYsIr#%C*V_0PyGO~vCy*8aYyY4&)*s{ir#-f&O}y@?L;llbtS@ir#f+7M z7Rjc#eE4wp{DAVYONS7*xVE!OLGcKmH6N%1hIfxqbIS6dL#5>9%Kvf+*?l|+^`R7W zcoY(dR$X%%UxjqU^+b`7o;oWMU3@uEckx{xDti3M=0vx5^Jas@IGK9$13~5o*5l0? z!XPGQ!9r1Ei9iQN?8)4&dFX#N;Zcp*0klmL1vn8eh=ixVWi1?Z?DZ@hdxjk^ z8%FAZmfS6M6=`frW%_r(9Nrq>xxs8Fez&7?@(s<{9pC5twKqp%;;+o9-85id+4yL* z7=eGQNALqgljI_yO|9MG3Gcdqh`7@{F6dAZ(46(i=r2u)tFuvXFYJbGkz!18Hd&q1 z6jOG_9S*H;m!MPjMIQGNCe!j%m-C`70NRAxIY#^)xli_o#~Vcp^dG-}-IM&(Ur-)9 z69F!N5n2029^Nvf2FgJ^datuas1dF-25iVrQ}7zifZ6A~Dr-9klVRNhU!l%Co7Fvg z->0y?w{KagGQi-=R5@GLz~?1S#GN)2mVgXTtOsfXzw)cZd{v6owwX3w3bx*0oZ`nGo+%k&2x^068wh#3Hss&)rdH(sq>R+I# zvp1hZ+yGkQZb{htunhOJO5XWvXGyORk%l0>`DcKKpk^PoFN(n-vbPmPz5QXs$S=d7 zgC18A|FzJPg5$KHX7TNCSy66t)I1UK8fivHmEZ3zZei-R)yka-oFvNHcxpo`1bJbd za5QPwd(t^o!7$elJY`t1Us@G|#BHSZHFmP<)=%Tpdz?4t${Y&_18{UzN-MINz z3Z<0HM(hsg7F3`JLZ04`Z(dFvIlxo_2MjuoKQB_NCQ`8kznNq)DP|3@m2>WZJuHd2 zvuve43xYzTE?fJURFtEBNdEp_2s5^;%n}9YD!20uVJE-aN$Ufc>12^^8ClXLJd zKht+!kI{Dj;Iv*H$?q)7O;nMAilC?S)n0dV?3))^+>n zJ?8+^#$r7-doZ;dM)ZFdHR#s;h{O3c*M?yz8=5&mB2ZhT{n>>LPt@-g;Z`2Iid#W4 z;v_QHt~HTbtYissFofEo;3*!MpK?HjAE;QI&#v=ve*Vx?*J>K!lpR1RMZ}ty9BJ@y z?7p0V&+TUPhj}YAcVJ`ZHm`|0#q?QyE9s7T+I#J2W3+ZS{A4j=Ib`n{3LdTlJwz-gDX88nXL!-7}}@rmb17N346KDQtI(WlMCS46ZlRmP!I;{ zGD3WEX#C3QBN|cRD*oKam_@sxyX3Gjb$A};GogkLT+QPA+tO|%Fa^q2h4w=m2{gLM zxHf$!aT#D+OaWS(?LC_&ELQsZxNFVwIQjM!*4yU`zM*^0+BhkZWEg#(7fZ8)hT0PQ z>e#*PDy}<=t!xMy;dhwS+O!Y^!Qn1kuBQW*N3I&nna7*rF^IHHZ!zyuzkDHO4$4)- zZpLh73WcY8>>QPva8?}|dO&h=W6JXDTQ87SC$2`s#ay*n=+g4?eDwBfM-4>!{`v9K z7X}Xig=vVLkzo>0D!rMk4Psz~BnsWI$^4flm?ddBehbdlpP|B7X4Z->oJ=#5f56~p zV6Rldr*3OHA5&oovLM)~r}r)dVF{K4{V&5$z$=tB&{^(iY=e2mdSdP`Z*HP{c`Dml z?D)KrGKDOt&t{#viMlt!No*RF@*HMXNyYpVj3K210U7QupV9HPER6 zdHZIx$>2;eT7sZ`o*zyCdcrK#nn4A{gMPP6!^ihI?C<8@MTh4~LWZuY`S&JURZXD< zV4gsl391u%8V{@D+aks~kt+_n$Q*8!ZJX|Gc6T(sO_O?X6u)#(7 zSClwQUWBV4kUtiWzOe2_2p;iFbZ)G0N69J91rqQ(6Dmj?-Y@$gJQ6ax$7!iy9(P1c zfCV0t?7^*BC`)8ObiN3trl##4=hGVFJ)DnJdL$jlNGF;rdhE#2XoxzQnzYxJvy61j z_v3*fpv;4wKCXqxrqYX`T+*sa)96+o>-LR@qD+u(DdEr((2p2tOz(3w7sCl2w+!5f zrTF0h#2zMJ@$Z25^4&LgV0k&Z2x$O_(6-%eG4L*Xifxf}W_SbwZLF^0{R~%Yso}jT zS~hE+ju{LOe*HT(m+wXh@i{bFrj2q;fR2a3UT#1ghb0*f(TgeCNxk?!7PYQtI6}+F z8zwN{X-%@k{fZ7Tk_N>uPb5#!01-RlFOU;sS4pO$f-!@o5T9oz z2al^uTi&PJRE2!?Avk6W6F>>>!sYxjD#AA4`sD?65@ zhgG+%Hu|;%3o>BYXvsLrcB?X*iOYE^xD0TLfn+d91|v8$$_X+!1?S)x5r7{2U_b`y zG5uHkJNy^?U`Vzl7!qLk)ho`unfGR8ov!Rc8?b>oz&Q~og52C(dvooz*YJI7SoWL? z(D6*fm0sNBK0qO0pUnCKu!_eM$tyBWp>`6l_k92%uGNI)E*!RLM*TE~xb3eL4&)0Z zm-53N;2x2MT$04wR9>>UP?Pv5>fUi7+f}!rq7Yamq422OX&KvPq;-Z8(#jiMq>9)z zPe+;w3{vV@fkMWDA#U-00N~|)6L7;6c2Qgc5iY*anQqrYa41^yJosun5uH?o<;0YM z%!-iV%v|p=4LFb|y{R0YW$x}77P$kYsj@(p8;;Cy_3~^LqG*A}yL!U<4r7LK4`7Qh zrX1khJ`UWS;hf_ns*#IFF8DifqwqPnKMzCM^|o*!xdV!WTnshM25Ph62?a+C7{jt*kJF}=HxO#96i~ZnBnS|2@h*TNTmYH8F(MwIdPx4v zOZR|8()NJ|rbm{|6*7bgM!(zYsXyJkVb?YNf%Nb>7i|jaIu9d6Q`St(12W3a%LR=9 z{?i=}fa@Z)r8Hpq1E8z>$nX^az)ivtY>(=Q@Oxm~+e>|i1IRX`7X}1`D}6dw4X7d4y+8%$%KeXh5;2xLf?`$JF#16Oqsz>y($=5%m! zT5LoWWBJrS$*y@8x{wr$zF&_yokU5o2I*JE^8 z>NyH|%73IaQ#Q^6>dN+Jv?h-&dCdX3t7fj3nT-cD@)ctX1ce?%Xn4UCHsR1@!K!%% z84vrI(95lsXy?)duR~?nUAh^g1Ib5S8SxWCigvhx!acXK&}0T+Afp{<&t`L9+W;mefIf#vMSRi#oo-{PcaOFl@(yV@ zSdapfK;l$93c*zZ9Xa!ui^uio7NUB&bIF2lJOF_K?p^372Gn1Bo)Tpx7vpjP)L)5X zh92-^9ra44$?=kB8gUDbZny)u+@-kJ6fm@>OC~@t&y9|33gMuU<1Y2_yn_ng{eroa zxkXYSwcP?J33As%Q@Nfe-ra8HY0FpwoSN5LiE+FuoFjjQ~u1xft)QXniTY|n+Q*DJ^Ah!&zgDhDG=LjQ2ZR(SB=Ur>QB&Q@3zZ(z!Is>`R zsz%37aN14~Uxx(F0V>V=*{jgSR$AM!Mlox2L{2qW{@ zDNoK=z@R#2C&&pG%`Nb)z;|ibKstP60VTGOi>aVkSqt+^8lk$YBD^aAY>o$E4Y|?J zhYTw5~?3OJ$Qd4>DHR>Q}NmwS3~sK+obsC@LBQ2^Uq&A z|NIm9^VNU%?U%)0!kho0_!sc^Uww9b{`d1g$^YYDeVhN&fBEf~`F{y-Uf}l&`2DZo z_h0<#+h6~Kb{e~B{N~(3eZsfeA5Zz0#eV{=k4OTPW} ze{^o+3)f9S-g_KJT4-@xrZZ|>urep&pxAAMH*htEFp{#*FxFJ7b; zIB%MlOWgr4`0(z->r4Cny9PWO_m^;ZX}a&e>_Px09-g0d@pqrq;n-E}2vOPh000l~ zUcau!cWK|&FGE=+Vc)#3E)BeXQ^O5aA20c$zkX&X8L(Omm$v!(#lFN@^7V@z4nzCH z^IuQ=W`ITJJi?*hH8J+#rTJz|hVh%Bt1iEB(P_L?!*_?mMZy|<=D*QyGWGzz_}xK3 zLfm{aT&J*4;%}0^Z~J$D@dBQ_K6x42mm!?tHBVmBOEy7!FCdPWI2=Rxph|{!roC4c z$@#|K@11Ytt^M-LmoIE60;$H~i+8K-`e-ZPY~{~BMOUv4t)6Fp@lF;T;p6u*H2V4} z`o+6+Fx6{w?Qz_szR^agu_7!z}scc>`a9^uD>oAJ6EMaq64zZ?0%B&8Mq={gm|c z*bi+yMg5@(c=tCq@$uqcKZoa21J42c2Acd~7l6Xz{qvjW7eDUi3-a>C`>x5pfX=i% z%=TaY9RB+`bm`JOhaHBq?ULrpPo4WhX%Fwu!~DfpU;n&+9{3k8b`r*~GY7urp_wTPh zG%&W`z;h3!3+FF?@a@+xuTR79%bx?&dw)*gwmw`G{=ScU2*QP5!bcxF1a1A`>~|k8 z|J~=`_2yR~nimHis5lueS@QzY?JqZ&?aNb%q!V!9JRkNpeVKuYx1B)mwAFot%MI_| z?ZVshzxb&?o})lw?>u;Ey7!NyZ-+0xtYB0=Ug@i^e{eM1yZ6_>_!@iOH2xlY_f#OS z_xJhvKRn~ztE#y)+3z~;*{22wlfvq6Xbf6|1BU12G3*`8tJfR*cq^CYr4QjkU*ccC z{IC-r9`R3C`0Gyscpbm*#qp{Np3VMdlb=rb`20O}##0s_4t%!qQDlGhS6_bk3?<)V zuamfH+wP^Elm6vn@1dh@516)3-3StdXJ`B{eUn=UdOCa^yg96<-#ko5uuU-3I z;JM|7Pl`y z$N+@$+Vp2_JlEClCi@TM|7JVSGoYbo@4tF^_cx3(`jq%{_WzEN{^4<54?_L&3;Dy- z4%6w=Q}BzIza--?{_?X=KJW2|oBDYA4n*+saee=w(Oy8md^g)(H8ZsKo=d-Y`OEJ= zetqKqwoN{#)>Dgr)*O8FTbg?JTz;N*)0dy_2=sRMzG^cZ`|`WKy`K5i*DqBVCDku~ z?tC1e7v*WBfHwXet$cUw&suo)@bj~8uT6jXbMun|`=9_mwtoNk{cFGe8lL1|ef*+I zG9at~_5Zq%=I!$3SKt1R|M1WL=x5KLSKIqP`-92($rP^tU~+ykD?b^ne=s?}w~YT_ za)N#Ot3Q~WKhXWK?tgFE{?ICX_i5qy8xHz|$@yEBUy#=yOwQ^LCg-bF`Ky;dn4JGV zHaY+MZ$G&~|GfB`R9+o30wRz{CRp>|2_Cd!E^if z;Pj`v_mijfhfNiK@|&L9=gI%}dGc547ytO(cW&dKeQalnia&!he(0$!{?Ydz75^!` z{S|nzzjtT<7x2Na|6~}!rBi=f{Q1ZKVsKV}Tl_Ql&-)n|*uQ-{^zwqg`$;<;isT6r zd(ZGRMse7iCwP#n&){ClXoU~r7*z_0V_eEE&-*vkv?)2@%>G)EBc;qn-VQOsK> zeY!qQkSvbBr%4tgDY*XUL4uzyx?lg_Z}ppes|(+4w?1s?c!05a&(Q=!5(M_vDWCNk z<8ksmN3k46FvOcequy%ihZiR?@;$|Z{4w$;NQ@$w_ap|ussvB{zT*0~Z;6Zki9LSL zVI)oQ(1SOoD(Azg=FaG9}`y&|IuZ#`@H zo7(wDy~P;{gQC^9Wcqn;Ntz}}mZjd5(N9$5AZ?7pNqEeE_f;`iJ}7uB;R*k{meHG6 z|B;N~QR8v^C(I)V55SE*mF=4{dQ+?Y_^K33;QUXxD)t^ON`gG;-&aQe=UcP>P5ts) zdW&PQX8rCF4brk6;Tdry&IbK z;?0Nu$C83op5xxsz@H>V(+u+-XBY<5`P*~q&4zy4g~4F^DRYX%srO)olQ5ZoZ%O@M zZ#;c(TZ_M?!z@^OZ%X!)q@HSuB4Lk(b71YgEvvtUM#sPqd%LTjUHZAFdXLd8&A`<9 zJAVM*e4u`duoxcyDaH%|lK@1;Kn6DZrcNjR7CIec2%7&1(~81iE9+P>?b`3V9ikPp-zdVaSHp}4K2hzKl(hr1)m2BxgcoTLMXf+(Bh6}6anl~ zGfr?bNo5UyyDd=e+MhA_$vV_QFWnuA<(j1WhJpuxK^cN!NSJ6GB&_{{C4cc^L*n11 zPFzS-gP8X(UgFDqfk1n7e|ct-K$^{KY9J(m#m_{8*Z3#Iu75|w^`oSISKRjR_-?5G zm+l6h(ciq2=VSX_{P=IMzWzacfz-V4{>{^M@@?_I{FBdeHh=w(phhbmzKOzfne~u= z8Grlhzh7Ol9DH2=D;x+Jp#K_Pex0C4pnV+B9b_sdKxQ7EQ6~w{IgA#%dwosxXPV*j z|F}J)I%JLMVE+=tsFPH}O^v`5h;{f$<$7e3G|ID>kHWDD;K%RGzV*siMKYJ*FbT_sW z5djtxt9xLHh7T}c(VE91z`)sVg6iBD9aQT+^un5U_azHAHg?|Zpgf2lKR;Hld4Qt< zUT%O=f3_`o;@0(c@NRJ6kFG2VKL0ER~BJxB+o%S4h`T67>9{&B_xuSTmvW+c?L@6D@;&8l+ zd^0CzKnWIB?46RXX_G(WICnqqJ#(Mh*`0sf;xNQ)D=YGuxVhq8f^2v-EVB!|>gM6F zwX7^dRjLvsX~Q*=C2f6YInF3Qs5Q4gkG0St2keCCksy^{?W2&SMsB3<96o?uT< zJ6nj-VXYMS<>n73u?JG|Q^-ekb`j7;c#Lu2Y2i@43g)S{?&bHmj zc4Iic$}UI1RTF@NMaqnjSxW$NnNxXgir%UB?HGnqSnZF;>vTNUT-TkqSN3{1P89~T zX??sGfQtv%`S!h56q()MOD7Y|R_cif>gVK5rkr~?9&fI9+!;?{$3?5tsadJMWdZI9 z4B&yyR(J^P-V=@UnbPjyiyV-K$_oZKR08Q=yXZ<8EheSCa@}0k0DKj@{Ot-Q@WmE) z4WL(%oLj1FL5AtzSazu4p1@S@?E-Q)*}aMRF3Vj7@xVtwNM>1ut)`sfA^}0z7dX&;Zfc~e}S2AwFT~vc~5hAQU-B%##^L-8h5c7 z`C~2}p64sx{MT|2_d#9~c=DFr^Ky4=!`#yn+&PQ`kWg@8WIs!Z-;WWx+x!oQf zMMaeYr3JZ{UT#pC%$)$t0U$u9R{(AIuB^!dzeTsP%>DLMW@ZRZ$IWfS9^dxwT`;%l-jI z3A2&b%0xgXoddQe)hj_(rm%Dfs*R`PsoKN6o%HDeAVyHlLN&quh7x_Wdp&PYSd*|B ztWha>D7X!j?!hbO<8GumfPV;}9$N)Kt`u3n#wqZiv-uK4hr8l%c_@K~S45Em1gM5qIUTfDfy({V#>Q*;$d0vMn zAWs|a9+D$!@jB<2Yuj$faE2!`yy_3&N>RJvOz=RRIctn#=$Zu`97Ie=Mg zSuwDlfTD{Pz)p;24l#h|%d11Hw$bBrWUtyuPuMiya_5sMl0dFKAw$ugw?{h;Bt`)o z^Gwrk1VEw;yL~|4jX^e9v?St7_wfYwT?RbM(=9GG z>>-vLob&3fDsGO}=>}`afddW^CLeWruK4q6w*}s6ObMJl%I$|M;GhIKQ8 z+B?a@a1!f@-jB&9%BE3^6izu@Dpt96fGyR9r)YDm05brab2J9rpkS(jw{ZmB2t3k& zaaI`4ehc`!5}MXfja^ec+=uAmx~K>m09@)&skLbihRm|-9W3Q3SY*cL3LvBxTRppv zEx~0#V9#g~Az_#84eWrcvsI(TE6mot`&IF{#wWW8G+J3nmZ9hQjok#4c|)xUurv26 z3r~})W?BU`eaosT^m_sI&~@N=a)=o`0x#k~2C?PVH^9nMeV{3v{rG%eo29P`)FQFW zkmzX#b+UUG_|KD4+zynVUIE7dTOS8~lLcHu_lUU;6>Zc-i31WQ?HX-Y_F*KZYS&o@ zsQTS+qztpP{vLR|(&fd5x)ysOAs&$ex=jH_$A>t8iEr-E&D#c8QG^kqW$wzUnC&~kc^zAv; zZ_7hQ_eX#uw{g&j0NE&nd|w17J3DQ3VKDcGH=Fmyn9pY(JX_XESVJvxV%4szTI-ol z@xB)|9N!}XLrKZVTey2W?b7VgDZ59!thdZv7&C5p>ZNrCE_n{d@NzzJrKHbTUGJ|B z&>Zxp+la#McUR_OLNKqObA#|yZ>x%NQ4p5?BrtSVqqUG*5fbpW5X=)`_MxY$x%_L%t?$5VQxM*!m# z46#YJ{)rWKqP@omd@rr|hd+xxFug8#UxafQI<3T%j%mf@?ICs9I+>Edb#_uegJC-B4PV0aM z+ym|o{K9kX))UJcHx5i^1Tc>i>3A~pax>vE!-`sI1M}kZ`EUx78OUl>IsmqA>5&p~ zHwW0TO*3zVU@ z>=EgjraD()xTgS?XLXL8(=35CnzhFn;J8`G+A0_goIcCL!BmpoJ#xtrw{ao?oyDr3 z1Ti_M{atEFxjjAhIek{f^E&G{=HsM_gIOM(Cs03gn@#*)ILK^{4p5X-z~;N9tZBb_ z1SbRZl!fZs=lr61w{E?3RT*uS%_rv(q&1-kzh&fAoKtj=iP23~>#BFUOMp1Qj%a~pt-a$Jr8 z$E)35fcX&i!f2kJrz}Z;R}FE`H@b7xv{fi_odB8Ad<94+q6{l#fAJHi7#(zK^&zJ{ z&F60R;5>l7x55h`m%H9B)qYDgLSgCfJgd&si@<E&QW__evtseI)z&E3u zXQ*uj>{)k?EVoFvuRN~-Thbv5#M4i{0Kk3jqqYd%xzH4Bix2gXZy(+na6Kcj+fQ~W zaMxicM~rqd%}qSpb8-fw8IT!5lqENhT%_EHJ;Mo+0ln=|ND z&@=NbZ^6T{2VEl8)}vn!MV1w(?Mc{AB@Z(^Gqx9qahLAO*8n730J5`NocbfM?+LvF zP{^kdF?2j4RZMZFj1>I-;UN6UKnE3LflH?J02`J=sG^sHz}#(%GE;q^6;Yfl$X3Lf zDEWOMn~5DTK)ZtMj_x=pVgL;Bfq-&AH+Tnd#Ml5jwRAu4dsIOq%1hGviRshb9hw42 zcU$&=*{0ymY!zfzZSi8y>~I_uDSDIbc6{)g+bkcmyCuoD!r1}H6&T85!{C zYk-y~gHt3UIv~{c<|P!Blh_~wJdzJaYKe8Vn|BXQ2iAE40GbpU{8P#98hC)zu8UVi zD+ZaEp8Fm4v1*}8pQ(Xomx+>jN>9PeqPe|`fJM6i%2;U!#Mu$=YlER@3AYHtLz!_M z5ncUqQiZL#4z}kz(hGBbCv9Kc?GLMKOWse%T??>xLxJsXE^HK%+P#n9!sUT)-3*28 zgW|$e^niv>%}dxD*?PC#nv!Gru2CK`-MIq+qCsNj?VLRQURVI=+xf0Xk0k^6Y1;xY z=yJ2|?+-Wih;&WV zdkyJNHZLASD$ou$MLk${Vn|leuLgM!oMRVb-Cce66i?{=eCL1+PrGWW7}Min=~Oia zu)krs17igO&S094xZh*2NY!VfM!>zi+0s|wj7J4Fck%0Od+kwd!4@9H!m$S8)GG}T zi@-M#NQonD7frt*Ui0>wJIx(2!LXDSD<$@ z@)}bXpUA9L*$%a18vr>g zLl6tR?2jI@#ewx`b-32t7!_Eg;rU#3{`tPBjZ6S?x$9qna5a@06M~In4r_favDfKz z+@AQT0b7=j&T*@D{0>uk;8(I{5nSQAksdp62n-_A_A~2m0OhC$=-m@|`V^M}hP`Vv z5_-}ACLBuH+&=OR^9Hs-J#}mwGB|S6$9{G*=Mx0 zkLhhdCh-A|bagb@k_1@r&PM?JxC&5VZdgCz!n^qhR3Qs2DY~{AjDJ3BrcECx#|`ei zv==YwX6S`M4BfcY8-ZygrK1n0WwtjD^$JM5W?ogL1xV2k`qpt9+B($;a{*3}fGl%9 zMUddU0RAjsX}3PGmwHUK)B|ZCj&isHCSz;^qPo5AVt_A=Em?Me8W_9mCBpDrp<8KV zHW-r1IhuRkEH#{gY041fCihEGX$N@<5eYI>WKnmng*4}StrQ`8A zxg6;OaTMzC;?=n(0xIS$0ISSiPyC6P0Q>R?@U_`?TsPZYgagknFd7B9~j zLqYC6Z=cHUl=u)0)v#Ly1nYH~#o}TF;CAvv_sFeFpeF}rgyVI*r4Pm-ef~Ck=O~4c z&PpFMnHAQd0q-?ZV9&BD9if&VP;T=Y!i>9Pu%M5?95{^6n%Mxrd}Li*8F3Zg3i4t% zke!fE<;K0)>FXS25~mfqlSS>s6Lnlqu>W1*eR?W=Srq`A<(gq_?i^Pa;33)ozfRrX zFWO~Kf_}-l<-n)eeWyenrCJagweN<~#NIJ=4m}D~QV@WUhLCOKP&-Nkcuai+!z+&9 zH$~!C;vH7`SWB{)!$dZ9VaEBhp{;0D7*rjPZ9Z1J11OvR3@h6P29Oc<6~5gW`)GAI zWUCqctvFZ@IK3(o;FzVWzO1zH!p)wzTp%WJ+4}8X06q_DO@yal1CbCO+V#m5-On+L zBT|r6W5oEi0C>m?B4vvhWj1)EPwqs}#kzsj^C3`sKU_U>=V5PJGl|ln^QCpSd)}|A z%y7SUB?1)$05~bwGCz4=!J}}glt-T)rS(Xy@B`4Y3QMi&K94N(C5%=;wCX^eMFb2x zf-68A;8dP3woaZ-lI~xF1LNE)9LRP?UkZgI#1JG?#LhZ3=uYkOsy;Eh2OV4vS5AQ! zW(9cs8L*ADhi!5lyV71HS^&T~X~Iu!8oO93f^XYfT@d|_(RuSKr;BM^9`~tR>}%mPdl`3&nqPdGKqBnxXc9cpp3kLwW+*bdUoduyNki* zsdzD*qbn}~A#{9Z&mu zbOR9d-Fk4G#o>aY-8xjem9Jt^)4)+?T#Ze?MKbS9AAQYH&YmRl7Ir(^>>}yAH5et} zfa4+FZNeHt8d!&=7h&A{K_H$;JK!vqAlcayZ7m)32&# zT3y#TKgmpjGKB|l$&qg3?U1?Q2<&_cnJyu|pdeH*bkgH#57D3;z;30uDa%{0M`S4k zMMSUpyK&PmN13{)eJDYsFy6``@Ty%a+CMMcUFsXL6mPJAz~Z`$`}?Xi{LRkBMj7UG ze81dsPrF|LLlK+K{LdK*kivdp5c^zL&)mVM4>NnXsO`|G#KNzJ_2%M16mLs8KJGYIPYk7FnAI4> z1{d%P@$TJJ=;ADGoQN5zF=rwsY4j0P+9mc?v##$^N1K@#9x`{n?rWpflf$*FEV*Ac zroinKt{ab5hXb1nHSZwHroKJoM{-N;HIX7Z_`$c=8rX6NaS4safgq)FR;Ms+LPUDp zvoT@n(P2G6=g~~yO0{8I0hu~CU3&C>z#h9fwho8Y06a>%im7%}#)X2M%IOwfNB&G{ zD{k9^FB3)l1^n%YOAb1;eC9zY36QG6cH^*DWgx9hC%LR44+EG4fwYg2E8q$lG@^mc zT6kL@R~=|3Q0OKUY4pyR;T0mq**ZVcVA_AS&6da~i z@+bx)1F&Tx${)EkJ?O>k&L=B@3>>+S_+SHcs|felb1|OBhiK~ovZ%pr2NWC(G$KM|yj(!m@+~8Kw5yyL5eoC9u*yJar3PLf9H2_affQo`_Jp0moodpLW5URtKn1})brBN0sY&;cxH4U-hU#x+O9+>CT*iew^;8Uax`vt2 zVnNXP0T`g;oS%FMEZP3 zl3NkJ>bU!UzDU@$YXWc30Za<`ntVZHqIrMV;fp>R?e+}65`gt?>Ro(OjtUner$F7g z)T*b=*=~rwU8mq-F>d$TGh7`rFE>_+>|GX!^>dxg4RHGjc_MbL9Dx7hq2vX)hDM(= zDOwLib~lWzE-MFjrLK>FJIZrjRb-uZ0etYCqmnz4P27mF!EJ%Xu45lcp#OPvht$DI zTaNDD9n9vo*C;o>1Nqu)3&>T2y#vFaIKJ)Kj0c3vGPz#CQwt35*mW6$wUwy-DISfc zm9}b6wvavo=W;Io*aAV>4y2Zmc;D_1ej##}c^%!^50A$xKA!Wbs#KK#H(b2$E&iET zldL1=HtwQYG7IO3Tu2#qjCRnOYX<0s0NxmD4oB(69SMRhcuJau)0qW60LfW)`pVYG zOl@!=P=J_H z;;bh}0t&nB=H^GXAx=xzEBj@$uOYW**;OD*9p8F#G?})!iZv=h}XO-y(Af2?>|z(B2r`8J+L~)QM|j$@8{E z(PKCHzISE?VASI|#e>})Q0;|x66UeQRRSb0gx#=ZhxK6c!qZmeME(vwR?ycro40YU zY#>ez#*ZK63vwEk2*^eu%}cooX&;Lk@OlqBc3r^9^ojQYP&?3u0+fFdcE|0wulGYH zQ(&?h4`9%S)bC!+FR{(*G=VuBE@KGCYOrus1#ES zPTyJdB)0J*#MVof4}k|ed~7Q~__k4S3DM;cZ9D_`I`~#SgwJ1LvzW#Pj0FI!c4z9~ zXm#eC-T1k;)R^NPG6Mr~q0Zr6=+Gm;q6;!vB#-R_vNLvI`>QF0KW~&^KV%5Zq=gur zhTV9PDTv#*=V_&E5Erqui5X+slBFH0O@XyW_%-LFp+GvI1fxyRLatB;30*st+bnlS zY;VV zC~}3+9W&*p0|L6;>Oco8Op6*i`gk<0A9aIPxSp&>Vu2e}-iqOX-QsO9 z85N2XDmE;v(>b5fd(fP9Um-+@%Hx)G=L=F-;PU{@K%av9>#GwjnM*a0X^cbt0% zvjuoP33q*PfJP{V*a$btz>hd1lQ<;T_Ij=@eq^3vI z23D=0TEmXc%n$2mByk9*7`r6DX2AWH)^>ilXdQSao*Jen0Bt?d4m6OVBU7L+3Rn)pEavlOj zZxiEXcB}(2C*ni8CFInhJ4LAyzgF(1nS#Q!GsC#Gqjm z%gp-5?alO|UxaI&k5j|JuJhqv*1HOFwhv`iaJDwJ{?0cJYv+2e$N~85@{=eZ9xKa^ zf_9zYA<)SmdK1_?(XEdw)%my)8hJyxgBXbwFoUqq<6IIE6py0!ba#V+j?R_e8C>cH*OY2tZhm*Db`RG2~dnP3$sq6ayT962jmKkmSjE64?Th>Sa- zwdSL_f!hS#$(rv0k>r9yuDE{Ka5dPeCTV)y+8z#t(#?T-fa(BPGA+6@k={Rms;Iba zv_MWLLHg&gKg1!V)yNUKJ`|eCo_O{K?q2|EH4YBJb9Wm2E#gzQ&gKRzvS;J4cOJzK z`W&ol%ZvJg75bKhvI8B`03}tQ<9dhBN2N<7F6DssGLqX>WE!sP*OfJ?d1In1P(Mo3 zx_~@Gs!cjwjFM>b0t5i|j(nV+hM~%&hphWeckmmuP4jZ7vz&(b+zOHbU`yAS^-41o zO?O}0NWuA~v15d_tBInIns`+5V1%gq>`;-}J5Fj5mmWw>hD(RvYP=wqaRa&3HE^$8 z=a!XHLnt7hYu<1P%+K9(ei{e$IIQ~feGHfl3rQPtEyl%NU~l{;e?V&NB=>W9yv)0> zXXAY=B#%3oW)ZW-gk6ZJ;BS#|#eB-{vzl_!m;Xn ze}S9^J(>tMgCt^>E$K=RcXpu|Q^%dDJ{J&Rcak@3-hsabNh|PyUM=uOKB|SlIE&0$ zWD+#jxzdciM~Nv6bQ%-PSOixN9TPrPDE;GrLJnImw4;{_Ur&JLw5hv+# z)sHFSFhI-NJm-IFxAsbd!FMwCc1Xsd#TQoL+*9==uV_s45{+4Xh40;euG0E#}>mb zoh20L78|HbygzH=i5sMYUKUW1K|fLe@mypE>$h8|t+>E-!5g)B~9;(5!gIakgM{ zqzG7fIf_&jKVWwmj>LK1+*#G1ACm{^y#;Wv0YjKQC@vH!DJsM>FS7U!A20~ z+vMN$lx%jy?E( zuI&}a34qD2&nGZS7f4?-SM#ZV+)D&K&n)cCEBZ>^BB&jUdkJnpP#LIkVucgr470md z9yiL(2RB2k;d9!wc)Nk5FnvAJF{Hmd=Ofo(_yQ&k<342OI;PBxGqt$|C31m$NyUOX;%LIcFJ5c1pfel7y_V*Q*7 zB;}r}#}&i#1BiYVfh98e7BqeUmfNZq(1%KJ<74*#CTpO|gS|>`Ao_uT2MSjSq83_@pg$L#%ae(7>F`d{oTURY6TN=0H`#MF6T+l7$G=ME|lE(ymv*{ zb{WhjiXa%&M(UgJ%p58pwrw%sA->Vqq#2m10#FUNCxIsp;TFAVPSpsQ5FKQsZ{>|| zt@m|yT3L5L8FHu}0X0nUbgB#G{Q*1H1G_)ek2SLUf7pB1U)j+$KWK89OlBw2OoB9F zW|FXybI9yI?rz&J%fy5UikfIC-J_HGgNPOUNt?S;sdw2Kgo=Cvi(pq~}*?#?Ap7(j5 z`)^(@>;m#*p;alv6? zZ&ZwkFPEKjT1U7ECj!)kpPMIo1Ew+D2`#BxRs9H~SuSG5_&^<*<|09;U1YJX5f?SV zt&Z}P%fo6rm34m9%Hz?glg2rq*TAxA!KHJU5wofsT|PSnQRn*&g`5wWO$2L5iQD_h zcx{x&L>p+IveP_A^vR?J4k1mstH^EBE2Pk-=Sn}&^eLu&fA22)f{GB-0(+<(GYCL@ zLck~Lp845?bkvwaHdUOC)xK>fn^{|!fJlXpky_7N@(d<$P@1Y(P0>x$Gz_H4lrjND zg+>;|I)KrIC|YPl2H*}I^i>4lkCRia7riXgkcX=SRJkidQ7IM$^t-w)veiO`GXpj| z2}x$OrR&#p?DXk+v$=+h%XhgpMxzjCk<3-loIUuSw*r@_sSpiYb&TlpsNj&-)=^n> zF-Br*0ShtNM`bb!AWD1>_K4Ya?IEG2Z5z&(x3bW!)b2P@hNw$kpkFw#ogPoRGQ+a_ql;4{w8cv}W-^9dx4+|6FnoT8aftfpMI-+- zfIZikZVNF*n&z}p_-hIHiw>n2pf->W@7YScB@qb6u*!xMuZW{7SL))CHl)akOLYa< zq6P%lLq3}{RYy#M>huIe$ISvjTdR^)I^$3)igP}PKI^K{4#<7A;5YnOoKJSAc$)+` zeF_h75<>b}W~^D|q!&soops=@BjJdViW;OUob{-laaRgcW!akZxVdAc+EP_^)E{G= zuA_1ZF(f>_$Ib?ZRjorU@c(SpHd4dI(j0^qfm(4w3}blO848svaQJMa&O(aELE z#q~&c{h2%Pz~O-tpRSiu!>~@DL)brV++@EAq>Noj#j-Pub9ft&FmVK3!1+u_Y(-ez zxnHI85pBo)XmqrzjXMVV*^o4Wq8$p$*M|(k^F76&F#@~PV1W*gBpdW+h_Nh}0Y`?A zvUiwixW&yUXNb)NRJEpCU2z|Bo~aGK)@e`joTJB~cDlH-S*5sy1*yNCHQIJ_pLKe0pvNZ-c#`8dBz4TS6!PdU(_voYu^O?nFzX|NSF$N?6fPuGoYgI6 z9cM?QMit^(=Y+Wv1yfG*Ls<|hkPOwIm5heiqRZ4?viQus8i=bB7g7O-ES<-(5TrQd zMZs+0SM$(!BS6bN3FJF_lShRfF-4H<`67`?)`eL_QLLb z*=u3G4ykYn0>!vrDuqm#sM~dxWE(W3v}#cL0OH&s!jYn=(=JdjO(n#$vsk-9J?Rb* z!Y}v=piN^`3|P=SvhPWRYlF*CJ7--I%AJ3xm-3#uLZllZZ9tEfr+Sa^3+$4O%Vi#r z`Py93yKn>1H?CDQdbwXgSRUB&R-ctd6YLo z(cBT@PNr5+Dj=ssNI2*G`MoV_L7G@Pwl4WDhK%27nlb&}5!_Ypwvf7Gjm5*ZJser` z5)ZM}Gb&wzQv>v%rP^#waD3~0jzIty`0IG3VO#^v#t=J%g7s>nu2Dd*TM?ML?EJa0 zTY^u1>YorPfk66`m}(G6sSEx#U&r3A+wMT0guI?LUpdOzP)JgwqGAiyj!Flda0Cwg z5vweX679M*%QQ1-U!;md!cK_1-R!VqG%)U9=ImOX4XIpWBM&Lfou|sPY=(euW5V^? zbrB`aid-%xo(TevF=``VyLC|oecyGfcwz!HsEal&0j5kFS!q)N-LHLfr7#pkMT{&w z&Cgyak3d*!lGgN$^Xfuu#8Wt09R_no1Ei_?4ryJzgoaiQ(4Ei?g`P$b zujab8O;(#AQZMZ?LLjT~q+B46h_LFOmNy%wI9ZU{M~u)IWEqyC3{79~DTtYbkoN)0 zK(^c!j4pKy#*7MTXmw<_3cwFF=@@n`%E82Iy%_ea;np>ZIDmLQ6f&XPD}$n%>bk9d z0V4pg&wO!N&qiX>T|fv#)nmQJoK6?TQPgnF?QPM;GF7+bioFT*bBzq8|ci) z$Q{n$OWzx79;9@_)`HR-24_M=VwNR@HOn$v98#1;_;>+iM)!20>AvR+20^+8_%>-9xE|O=n*3$GiG8-l934$ds)kH+*=?y)P1(qm|dpfKwC6}D|c`to!kLZwCEaV5Ejf(@}z zl(l2_VD|$=C}KsPOW?f(WJXazIU&cp13su>Gm+mB!6NdB*)H~%(?Jisc;}Yc(Nn%_ zh0(IwLM;1)_YPpMp||R3ewrx@67o_YDQ3~kN9Vq3Wnd3blV<6ykmD(C@|n7w9HVkj z%oH?ULPi9z2MB0FVf_$fL~J$$RAuZ>g(Nr>HBS@rNECK)Ae?28jUW`1S9~Qyno#Vf z*Hj_u)e@>5fF>k`t$BrlJ4mai0c3bam{Z|oF2%<^=(STl0wr+p>B6%Y0m4w6trn&e z>mZ~HejJ7&lyOw3!mA_lE5hy#gF|r}D*p}wuzSOJw0Qq6Q)$3+P+NruPvNJU~9?yA4hESwJ z)fee?;7!=ELfXwn9W}WO<38a0)N>o32OHgaKSh0UBn0%zA2+@bw3_ZDCXMmt4lm<3G_HIkL9uawk}L_0h@fqrO)h*mmW0 zd4@2^$k^~LnQkE04E|4sFrP4}#Jvb1K6{^!pqN6Mvsj<_V7oHG0eKu7_KaLEjfA_f z_+p@y<8?c#w{v2ZM$6euCKZESPS(_+b`CYggX1?YNp}yR+0b81n)6JdtCxjeD!K~x zYGI<9%o1$uD3h$jJpdeJiKgycwHpWU@|#cRGs-nn`VP1zhl#WV>w&R=j@~3dsYZ zSCof|BTj2QEzcq9w)nA9$AsLDgA>$#+HQHrEyeBf0`~AV7z*#}Laomcm+6NI#Nqew zqf?Nih9`DF7fGs0+5v)9LD>-n-Pmr#R-IZPSwC5I5(Jw0;s z^W@rdevkBKM(2yXM_2foi`J*H-d#0r+5jZ-v`VRM3l-h`C+HK~;k>NEK@!3C2Rq zam<-xD@}%XoFgx=xIUIQHZlu@4)QM1c9_Jeq#tSgJSVp^P;)i1amN!t!mfj}Y15%5 zLfC~S=%L0QQpnx85a2NKC7!^exk<{d!u1C%H$qLyJ(u8QsF@I}OmATrRPPW=B6J1V zzn9~1DlT=X-vo(IYXPfat8nyaQlF=Cc(qgx?mjQLjFI@GQo5P5?!s$TcmA1OnfNFw z9dbPYfkXTXJB|}5Ux3XjlAoOmM)i2?*gE17)&hKja7xdelNn50CavYJL5;hq0L|CLu4Lr22;D_AnPSPq2JWiK&Q4lV#{B z5Jw}IFxE*U=v>)a0=}3);_^g4wFdmpdz;0Cg?#u#yw7a5R!W`ArwlO zq6|dTuY(c8FKGQJQySfw1zL==s>9Am(fgssZ*;QdJ$=Ecw%f02S=MLEX%3ZFWN(6# zL(H-|f(V}g?&a*2wB=W;Z0S1a8i!hH2zN4q6ilVO>(LCaH=B+VJI<`|Fr~Hg8ftf( zabdohC(AjA|DxGS~8dOFl?+D)X%jgLaE=ulsd8gv?{$rMu%1P1Op_X_e2M7xJ` zG0e-Whj&%D0h{ziGkdy$_&upwFEoTY_wXJ*BQ7!FXou9+&MSmI=Nn_1&Q3#HVg>;Q zIBv1-DlWjrtepf6e5kAqc`3P4LU1RP=IEGhxrZ7U5a_q@ z277^YI0WVS&_rIiObW(M46hWC(m zO5wc#JkCRCHjI2|V?^t2htt%49I;a794pAV&a8;}x~ib=5^MGO zaRJZA4q2AKFH_|Jk**NOBW6w>_67}^&CQfN!aBw9U7?9k7^j@gHM)v7>+`II;Q7V; zn!6LoJO*FX_;>)W91(Z{A?i_qg*nkAjpSNTiy@;y-c=@rNv-i_KEzvvc?D{#d*H~K zu-Y#sjk}%axnBCaG(u8pE7>`5gxm|;0RG}OvH*DuthdrRx+_E$KbE%6>eBu+t0aHX zQN@&y5L^h`3)10SP?}?ipLDAkmf}0IuZf0ErgkIYeCwVdFN0Plqca~ga#VHOqW6}z zJ$08FIn7F2MLof`@##t6#~!%8X8Wayr#2+kPoeOED$E-(k#%IhziJ7!m$G__lq83O zr?IWLp%PG=iy);PNyuXJ4&(xaS0D0VuJ|&WB0=Fqqe`M?F|Z!IBI1b!PTzhW+&yQ|P01gKzBwg1w=95~vNm za6qSu2QG!Jw)d7T>~mSnV>m4#m}6u?^2`$UfWM!Hy*f^*!%ov>(^Vkg8`G;x>hz6J zKA8iB}-kr_lDlKaa-T}^8lWTmLIMDXLDvNohIrCVWm zz#f#9dy;C%ebju4WzhXGL2?EZFBq4!2N%kIecUpWy!W7t4DdG)RMuKA>gcBC#I(vn zxp0d>j69QAv8SMJQym30fpx7t135P8L@{X*55_P#W!IX6seYtLfUhiq33EMeKV@ zN2f>1&oT=3VaZK;Ug8hrd>2X4z8p=nE{1AY&XI$5r_3_kONEak`l5vRYTdTiGmSkS zxPA>74(3>w>PA&%I@@r7cZ$$^;NxqMcYL~loE*{iDHRG;7EQ*+CDc)@NEeDOK_1Qp zc*z_pQI1&svK@#mL2`1#B5^L_aFD?k4H&7TIiq_iqOyA|;LT>3KuNYk%CD{q4|{l*hW z(>owf1l(%AY;bt~)$sgp29L;2&j?Y@Tm1-r``w4%{PNie!_Uetbv}Rd$IprFd_J`I zkM9wue)FGy7jf#jy*IxB;K`qWu3vmI0AZW)+4%&(0c|I7-OtU(QQz*md+V+N!}js6 zhdF^)US7fY|7`zD4SKRqB_Ro3NCy$w(G`tqxfU%dI%DL`ruZx4Ma-3OrDpWg$! zzURUd4%d6G!My!DUjfWD^zT=oecA(zlYuw{ZY6_&px<0EF%gVA{9o z|MX4;T=+Wi?N{Xm2KW8z_dgkGV&9$LS*JTd5UXz0kc-=F-OtG5JV7%T=V>a;9FW*= zwXcUl*8u7btpeCId<#PhouasNvdRo$mWIN|fIr_}%nES7Zv(Smfi`k~)oIURRooV& zvS2ofPw$qnR#hI~y*A6cp>p&6Qhfvif5Zkapda^lLuKs&?*6v6N%(mEX>RYDix1xp zm#cV~mHUNxl{=6xJ(PgHdu->N#L&AEsy*Mg2AkpGhNl$*>Uf-sSB;qid6WgL{NoZ0 z#FaY*kj6cjIlSt=_mHj(eE=%4lJfF|6boF9@9%$|!Djm9cPclFgfU+IluL8_+ zG4%a5&BIWJseb4;&_$huHFVm1#BYc9-cxQ2t1v7YEcrlGmUHJqJ`RxWFy%I^Ndw#B z)%lVn#V`}!zy2`({=@yLnU@e`5Ssbj8C)pCmdG8~$%nG$u-0Y)OAIvn2`tGcz&2lf zfs$U!iZazc`t-K-UtfOh&0qhPd+_sTR`IQy0?zWEJh1W057w8D*1*qx?ad!~_56;@ zpLqX0+_&Zg&+mBi9W?g-UVdOC7v%Dh1Yn0S-rxDQJn6+yzI|KYW+b!kggL$#&Ue({ zw;9tf-dOdEK0SQ#o;HI&14rEBc^CZpuYzpwOCZw#MPHwvzftu6_zu;-EyBDjy!TW9&uWK5)}}-u?Ag;h%n& ztMG%bf9Sp#+BbRXJ!Ada^ZYyC_MCsw=WpNEw;9O~9|eVS z#W22oTi<3R^Y2FfdNH2ws>N?JDk#4CvxtK)M)9+@@Sa|OeSXIL#Yb)QUY7b+r^=sv zlx$y&>iN6(^z-ZUqHilIzv$8LeCxKp%}9RvNoIf1r59hmr|q{^^UWUvQU6gXzy19r zT;IfmAAOe#I{w*IiWejMSzCC|G<=A@N7K__#`xje zlGb3xxVN+f{{`S!JxX`5JRsV=zWirzfAMVYcte46(+5S_9F#!srVxYP2zXS$S)la8 zO`}Ym*bKo+0a~6JIdJh_O@qn#8J~WdlHgw(Nar_$zw=Ef=r(r#S<3ud4-bC`l6{!6 z{}iU|#bbZ->9G$?&rkV#ysklwem3|F_KPQlAN2BP`@uPhz&v`>j~_+G@Bip0_{VoY z3hksUKE8{8^wYZ^fd(J>aRrv1?+cyLeSW*M|K)et*A}r+U=;+b)bR0XYr;PJ__ol)x90@RQAL`>_Hf@r!%r4KuvG!K zd$fSVje<277FU(wTe*e{vEXVWXpMaOii+}J_`1oRjTTc0~zn^yZ-Cw!;;oaTq zyO;OrHy!|oIXG{A`g=c7-)`ltt9J+-`8O{0RtrmLAx(e!(eM4_6Z`{D4{g8oTzAiX zUi}DsNKZp}B%S|Hj_rvOZ>0Vk|H3bT75dBh&6__FCrxgqpZ|UMtAgON{PT722Y(d& zy#EXQ0_iVU+*>Cn|MFX|zn?{B)(xP#*}c2$-dFU(jg~q&h|SU9gnMuvfji`Oy1}V- ze_B0h?EnG`M_J#I){jBL{Pa%A zKOW#`ha>Stzwgh#@Ba)N{Kp0O4qAG9 zO6BizO1W>pJ)e5_<~wNYJqz=}6aS|Bzo3^-9wz5QXTziJ|KhP9JU#XS-Cy59^asQg z4E)UXb1;aMm)rrDd+DUb9oQWq)S$dP1s&YG?Z3j@pTN2BWIg%Ad%@Eh1?e!--wfh! zLPWPoR-ZTJ^=Y;~xSel0;fu$<)+GO5TsjLempoKc;O+^x@j@n;B<7$ktlL;mjZ zy-%+kPWu?bG{T$R2%=Q(1BGtZHv3U=1QXi-e<$FXNdMkFk^bFpOr+W~k^b#(K%_4o zdnVEk@|{Ob;{^}-GEL*(`+}z7=H~e)_)mWl52n8=0=W)U3;d_Q7lVrMQu+f!$Hj7g z@>1aX?j*lY->*CTzofTMv~tr1{sFA@hdBP%)&{J9_#}BeFXs#E_+NmM_&3fp7={us z*xvU1jUho$)$Pb1f|Y*b%Wr!jq`zk3?` zob54m^66;&io2f3A^81a z?7tcOx8Gz6ZUZTw$N%3vJp3V&dK4mFJoaBdJ@x@1;xF%q7{Ip%`xO4@Q7e0=jwYX6g9j=dk((<;4r{_Z{f{A!|m z@v49HH0dAgF~WtX3a`DJ&&p#SXM+uGuX zdp~&h+UNQGm4}DF4uQUS?0L{1p5p%q-u8m7U+n9ru;@3q`RN_+457?Jj4VjLx49XD zJ1a17K!E44jluG9FQg6o`f=KRh9{q9G(d-u|7P&XH=e!zdG_8r9>M}Yvw6K|L(g$8 z_oO?F$9#4pJUad!NAxp2`#h!}-jC_8e&aFyjjtHfn4Ngz?rWc{fH*d&8 zs5gY^g4q1FP3m!o-$hf;BbM$*y!^%^{+nMhV$%NfZU@$|2S3nr4EuvoX>hLEegQ>f z!AA=k#7&%k9OKXS@bjon_oF&~<5B%9?;X`UXXppcl)t{Oq6h?%{+@d8b(ClK*S+I; z&|vPbygMuRJ}VGgzI8j#a}nLo#q}G{#lQMI7ng^JzYdps@tE^99~-#bi^tx}759D8IWoB479_8y~{*zZmZU;p=yU`+l$k3?9atWB)OAVyX?^E~s2L zBy}WUP8fFS;OX~W|9qDwAyk@=d^3C&29)o(D=&nI@4RW?(0})xmH+y}$G`E;lOH@8 zAEnp7`%E^EZ@vj1=zWm!*Preu5`OcIAAQfLKYY#(r}~SIKT}}v2au=rjtCw6?_c;X z_&;8JrT?41{0qO}M`@Cmci{0zA=9Y1i_=#RUx6-}hDjOv)~9JV{54!o!}662g@*2m zE97J3@uxQi@fn~!4k0IS6g)gE&A~VJ_MP`G`_Jw<%EN89o$>Z;G2KWvF$P5~`5mc#!E5O+wtaSHk z#4sJ;0D>d@b`1=65Vdq4Jpi_*?k=z5Pob?t;Xr=N{Sce{qxg9Bk}9UTRwW#!Byf1?GJu1 z0vF+z-}dTz-@BW>n{Ndx^aXBo&-ZUD28Vgr4SjqN)a)U?0xVSV3kLJReO?VL2YT|w zX@33i)DQ2*xADFu^gXM;55CQN`R`SH|FM7;DVTxhPcT3*aTKX}c3yu%e0)bi1k}UT zTkFdhvg^Pl3rCrGcRvUp5~~LH*{kc&+Nzy0bC z{z0$_*eic{zZ9>{Fuj=Y3GV#pb~(5`JluE_hX>*7Ge5Q=_G_?T-u@h#yp8MA+h|_5 zAKkY+Jk;KzSD=mdcW-~)9{BOC<>7Moc)5G)^3(P9W+c5m{rI+*55srRG(7u!@##_h zvFU*}K7}LdGx#DdU=-2o`(FL-Z^QDXpT>}Q-1^0j@5ejz>NX|ABd_lp`S_uqUwGif z%kI1K-gm*JFFZNCX7~rC(SZZ}@ZpsY)?0WjJOe9te-9Yv2cP1@O8>6^aqwe!0(uVC zx7V-lTlfUJ_@4K`zWfLs?gWy&zwTlpPcdH0fG-v<%km$ISzOJZ>y7 zHd|na2LAusPd9(bc6xg(4~NA4%-wI4$9?kA&%Q-&v!_F&?_2rzuKL@(8rZ=wiSJC) z>l+Dve5V8Hz0=CaH);T;{=?sj9q+SYT|Rs8LVtGiN&nWzcjx+tw`qJ>?C-tXJP3BT z98;L$A(OKMArbO6?=wCJ#p0=tckqgP&o_|6&jU>&GMEyIAv z%byEqKNrvjnfm7f+8{yvTtIseO@1z*-6rCtVDxhV?dJj-)Is^VfOgYSelDQ>p$lkF zM!#D$!G8z_$Pd|^pW}#wKLT}^fCe3=arNd`V=!SAp8-hwb#QRS_UCVY@g~N99{eM?@u!~${}}#zW20ab%L{Y` zHbp01LYYWZ9o(U?Gtt%Ue@7n7hQnt&IioUI4MC(|C!k29pWW&Tp+S{`UY&pDw9Xld zEkt!a^xdYPT1ziCoV`$=Q2u)hK7VZx~{| zuXMYv7PBO!R0Gf_6>%%pLLd@^H zi;z;q^``@J&Kco3PF?mZWTYh5oFiDo?N*niE8r}B8vB|U19rR)RaR$EX8bH1XuyU! zs53h7v&FJ$1-={w+zJX3bK3l<5rU*kg6OzO5wCi{O_67vT(!l1c9y42y(i?cR*>~_ zE|feJwzDvE>>OOJMf~dt3M3{9z|<`WA3+YNMau0}2a2wusFClJ(UubnHS;Q}g*mA528yRz+e(-R)dMu#(> z0@~%Fw`7(IPh_PC18HvZ_DTSd>x8p-it^Dpfr_z!?{X;k>D9?}L)Bdoi_O^qkX)<} zOP$a)1AyaAePf0QlsL$o)E`mzbv-aI72WJQTGIMJ)x^Hca^5rVVw7| zl+)}~ciDKE7CSWsoCS4rkZR$=Cs^SCqKgjo5)}nuyk!9(MU`CA2Rt#SmmJT!i{ox0 zLV$mEOAy2eK!fJK{#%MXHii+(Vwj7XB==F#W>AI?t>Y7fs{?eC8rYP!6 zJLdDN0;o5!jI<=;Lc!Y&?C_yP{DeC#m=e%Y*oC(}ZG6{@4n7NjxKMPv9*r-!L+}nj zLz|46=jf*7cclQm;``C1vkBw~sAkqWUqvHochJwlp7R->Z#D$SiHwo76v5<3E>Bt# zvk-Vo5VI&*nf`;J+P%OWs0ZqyRWT>-?WuYqK6iIG1$F0MV zh@m3-!Bm7*4Co9+s*TCBh#?NZI|7moAiI+clEehfW&k%-$u*6$UflrN&w>Y}q!=5Q zM;Rus7!aB|B-karuvjfzMcDK#YDWOyQW1o1SXb3Z5M-~aL_m@!hXSZZK*q_XWpE}+ zh9@R9?|BW|Q4~HvLji0N^yyqJXZsB~23$oBP@(F)9E#7zG0{$KVT*Otxi-)MFuXep zFbEE4Inu`L1s!*j@s3d&N?g^XqG`-3K8Uf4pV%1FM=?$I{s`sw)+8Q{l|Blklxy2` zxk>m%!)?7Q-MAu+@mQ+SYH~fu=ka_U^@h!gUJoP0yP&6Od5t>9z9CohXrQC^atYLw zWXxlJ%!RnBb{K7^7kDf&PGk?z7K$(iNFdm)sGB#G>t@*MY@XIEMK<)VBJ7l5Rx<&x zaS-&Rk0NTZJMEXj62l`Sv#4PX`qgy8F(|$s1>5CXAYoHrayb>S~0Hs$?J0tkyFpZe#&sI_t7!pzZ-(4|68lVvHX-O0i-`nc1u4 zbRs9@0lTbAcX>6jwHK+gh}iim*EKUMH=7MsoK8)8=0X#&zhb!t0I^_lg*o8(e4gR{ zh-egaOcpaJTlACbNgrsSL z$mUWwt?FaGUm=?ma44n5uTKbE2ZFH^Y?!z48eWTTqJCdvwMHc9Vx!a%A~e{1x#xgq zjY*cJ=M;mSd_xne24E1v-h*QMQDmVsT@>fVMYH|!xUN^ZtZe}8i!wbG%VN2(WX@{1 zv48bXKDV9Lr>Qw_$?LLM&%`+eC0~{O)$dk^UIfZ8LZ(v1;cVg+{=8lp#vJeuQy9bE zZwELSj&U{uHirG%0uTyX6ZF`Y!*0y5wqeD5OI=I#0Pt27F^g33ij(6kip@13Gnliv zP)m_%(F}7fjxtWI1}HIZb`kgH91ulP($TN2TLaEqyzYH;i$I6WodIADJFh)?TR=wg zf+-a9zgS~pxV8d_o*l=*i!K~sNdQ82R&SGow3})3)lrw`Q@)-ci?QugQaC$Omkw9m z@n(_(CY_*yn27K)Kk~RyK#`NaHtmIQs3&;rQfqykiv?ejrveXWgr`QF6myC{jXhb1dm(gXL0QL-&wC!;L2-jvd)+h~O%U#Yk!)j0lAEP@hi`B~rkUB(p7~4Vx zk_HS8fcy=djk?=`Y&CTRKxtxQwC(|7ZeW%xb;}^mW?PpP0rOn8aGf|iin2yFF~zA9 z27w~XfbJ!S(@-6+VU4Ica&4x73~}8P1falJ0Ne*K7{?UQTw;HMt@*9b(pDu1!GhPa zxd0G3I~&kzh*4!I#l*Nar>zWUB7^2MFwfTuw=VY4o8Gb0s5y^@YVPKbA#? zWDbaWK!|X>GUt`uO12|PbAJ{uc#ED@iJTN?+t?g;b4pMzUa*PCVzD;Ms7>Xdy;MRB z^OTIN#RcCi4i|KnjpMNrui}vErZooD?N_YBAct|U8<`fL^R!#LmKKb4W1Jk0q6Y9P zXD>Tpz3ioc1u$F2Gc!7)qjO14EKlib`haCxkfKK++AUD`ggJ_NIpye4W~adY33>*Y zebbYxTlC6{_eqwG0ki!upRK(G%5lJ`FzQ5zsCBehWOEo<>za^vQ~|PFeg-sqqv)uN zMof!v=yRD%yR#ZBh0S57@5}3cqhn+eTN9HR zp!+R^a+DuKJREO?fKXy%qGkSWgv!}=rXoy>$^alS+4y#r%*%=^b)obPa&$F&%tmLj zyt#})J}Ze+xscq0-u8^sv|+8c*$PoyDC+8-H&h#50dusD3_;p!Y70f6kL@8z%|7f_ zQAlU9VJ%u@eIDgIw<{s3$R-TrvSZ|=L?CWYvLfL76Cj_Nua!z*cjz#&j6oUQuz-lVUz1nIu zAgKUko*+c>h+fABz<-dv8OSEa79diBDHZLc@H8eM_QCJs!bVJSL1|(tj}2lD=;y&| z5@XjLNhR~Wsjam5M0@@SI8~to_&3A$BA`CefKbyKRNsaBY%d&abz~e5yX<^CnEEkIoz0rAXgDtceOcV| zdF*HaJ=)j!f)O!VM*)eL03-+=@b0kt5AI_{Rl)$UehJ09bRd!%`<2uF^hD~o6} z9{byaJP$jJKtn)-xkrlPn5kvalxRjt1^^_LVFQxoejAIdl4*Moo~oVWKBZE3ortOysyK@PfeGMRYG9j(>>vTQC=OD#6zVM1o8sJW zJwPV|O%(`pKm}APjgCxy8Q~e5jR4z3f2S`A|%h7|+ z7Y(z99YUUU^Sncrd#08w*ax~ueSJ?l(m z8DgXpPAseR%Huwd0HZ51+WC78Dsz1#z6 z%+0g{B;Tulbx=DaYgA_ILYel?C_IUFV7gT*6xMpNo*Z;^L8Tjnyoz0A@kxn@6}2jS z9nR)%!lEDovaq6fk`N--0uY-JR04oYR+EYrv+2GDDTYh+l0JsyhL24;+{xBOn`aRP zkUL&a^kFLjuBbpvb~Ybg3|V6r%TC&Gn`Xx6oU>R&io_a#JG$(zgH1u4>Zt)}uibjk zJA>t323>o$yjpCz?wu_!C@le}>X;djN!@IHJX?vrcaxF1HxFov8RrP?vx74eLf*z| zvm66D4(6>-+;$7Pf;bZevEe43E(j*$>bSViGInDv4zrxCX$km#U?{z(fbPP_;7n7Np&P;+EnhIqQJJag>)wYr3`PEIJMW zQySVr^b5UGt{(ryCZKvPLS7M)qcG&omljiXP#0 zqCgOU-nH}*2XRw+IJ2IRkgjcpG6($B>Vwj-@^D5<5ISe zEl_?O!V)iX#^j0)SSzJI!;ntQX89zk!wqc%{&yT#Q=O)$SV(qTPl*|MUxUYVykiM9NxX@e8i+Ax`Y7#PF2O+o6ILs!m#dOor| zfRs8Ky-}O&e8jru2o)2sU1X{ZhDEQkg}OL)qSdm|acKpF?E<)1U&WzBgx9*-q`lIb z!K$Na7ny)@loSt{$6AGgg;$c!Mnvof#Ffym)m#k#2G%H}W3#1m7iT5nxS>srA^MGk z40b&2Y@Ro%yz+TrgSi__56d2qIOc#RE*as@Movzt7+uL^0lJD}zhL*dwI;?at=z`i zRy}3!1>M5K>2_2RZinnysh|&Ty%bW3psf?_hpQ7HWdf3w*^9KfJ`fa*c~T8XK57+n zA~!%5v9SYeXzn0L#PlP8Bnh-ps;u)!cH?m&sy*06u|iMLeGE)GUHOJb@AHwCQS%l6 zvuPB^jAH|s-Xa`E0ApuWfwIysnI7jvx1rhCkX$_X!hIUR;SQLBGTX)$AbIfep7wgD zWA)lCr;+U;)w+WTx^A^(ll4dGjHS%c0ek9I0@zk!b_JlrLd%FUh(!fq`+$&BW>Hti zJfG2icIXOXW#AQdNo$mLO&163N?2R*+A!C%bqP97B{!hN5TUTns2QsZ8|qROxCp8? z!x9SxN!7SZ=_4T^_;P;hGml>w^0M`?tfCoVzm*T;^?ccie1F=JP!ZJq;`4kkCYtvZ#c*sHL_ck*OIqw1yF$Xf;I zqy`lyz0Gr`Ds6n3q6V&?mbp|B1relX-HMiW1Y7kfiFn4T(n#;PKmtH$JF86;J84*I zh*2EtfcUzP481^%(T)z6_y*@q9TxP;UJ+$wjtKx;CFgaDFL__?%X#LGvTjYL=WN-o z(O!0+nnP{60IigD+_fNyPa$*_Ax_`)l`%G%|0B{Gf$i5 z$Ht+PR!z_xWD5WiB%=LUS!hH!mo(QmEfR?hVG+2nW7#8ac{^t(&9smvigP;C<5^aZ z0o2ABZT#spI^yHmZs&9knM|zAKkP6cy8`m{IE{(z4zT`=>!mi>nN3kG0__pu2G58^ zBw6rdaMO;nk@X@&)7?Jo&5;q-0I@1%ggTQn2RV+JpksZZ#MyAP>p~y~t4K7-lgA@} zn-We*E0GCmn*#ift*A{FZjI2`AGT4xKO6a>P-cq}b~qfRtFIu*XsP$qDX)S7P>P*( zPBmtPd^EBFn3!Nj?ku+TfK#Tlmy+A-aRxk|@foo7#&I+SbRJqfjP2%R5eN$k<;eva zBhyp^E_WeLeG;+04tn2Cv+BAsuFGDr8mbGOz3_?}(%6TPsm0v7bsF+W)<=K;A`UV!a1 zE+!eYxdZU(Fq~$b%PhzI)tFUPBLXUzU(tGyv^25WI9H@Y8`#ZC;*8yzR&Z0V84t9B zYcVrWG9wP>U^v$$1!P#Fkav|g?CZI)DJjR6JWXBYfH~DEOm3GbaaBn38lN|6dcupv zzNwhO28K7Hnmer^X-6`gtwoJz+em7nJ|~uGwqICcux`g|;Vkgl4%P#m5-R2`jghNW zdEV0A0yAXr4Ylb7J7L{vwYTP740M<1mK*HXupj9SJ7#nGOz+eAp|=5`RpKnGMb1~G z^st;PSZ~C_@h0_U0ScsCZP-N!fJ9f`j20FsTYY=9M{HuJhf4;2Dg|@6##Jl?jGKp9 z2-+aRVn==`R@Rowki(^~aAO*_1|_A!yjN)Ozb!+`p%=t1&J(d?Td<+>LN;G8 zN_AG1@<`aDBf#4G;bz`%0vu4Pw5z+^i$KrUF2_kWGkl{-yJcNX^61sm&=79 z#e}wibEyuyEeV$@ideKv6ga&CaK)O`n3pKlgZfIVrDvzM&(vt8B+UG>R(f}YkjcP5 z7_b2DsS`h2n@D-aMZZE93D;I=m6q2SKq6b?xFZp}t?cbGC~0;jSUA{CrDHVFn2e{) z*4R@f!Bca+vVl8S(`-6Nt7C9n13V+yj}F+Ol@v^<8w3ZdLpP$6W&-E9-kECz`~e%8 zrAKRUO3}H*Q927$O>qZdnS)&kH3U-wT;qsB<@PF#i2QPyYYiG&Tx-v!bh{Ud1f(Ix zK%*T#jzl7yEO+3;9hJ0iI#G=RuyT046fwH$576(4yA=d_Np-=+AXBwHFeNp!!iKyU zhLa6@TwS;XV70AOMYB|NU8uEW95t5lLER|F811aa8yvO)%zLt>;qdTuil7!`*Xs*y zcGOUeMu_EA689xz)CHWIqKKX%EK;s_ zsT+W0Z})m>GrhCRS4}a#_K05}+97eJvyR7Pl)?I?`~{r(O}0oTARi#>3ZMkzCAvZ@ z(b4DHK)2b{h$z6XW=*{V*^UQUL!WKIU%YfAeuc-!T%7b*6=Q=+5?IR-F7wrO!)ISrk=O;sz1YdpHj(eB&aDM2xBNa3EdOW3jj$sKM$` zIdlz+M#K;w<))}3U0nv@(#uAuG4GZ>F*t@V0`Mde>;#c}@Y4;p4mOU^Q{r@)Pr!Me zYU%;3RLfXBf&-gC5*FX}?o(}VwYJVIsqqeJM42!oo@g$LJ}7|vZVHltBB|FDx+JX+BYl$4dvjWp z(yo%={DSiu-zST+Kx`LQgPlqa!)?3t8rbhEo;`+eH#Dft=c70`1&zqF0^|qf zz;BtjV=IB&QK%V4f_~l9i6eM2OB@RmuNFxz70sj!z%5Mg9JN5QMddAu5+K!n4%oqOQ|iK)O%5SpmqTL7!bJNNk+CnD{n`0tV@)AsZ$qe@=M2F?hna=mr%)`a0Ow9MF@sR*9L7 zGX-P0?85&tS)NArHo%yX)u~uzV_xQOS9uOnz;H(kxUczU2#Zv(?RF9N;mXofPtPKQe)3T$cmkFQQkYk2wd}a zyN|MVw(rYogSRVs>^WQ8>H74<;w8&YFuc#JYHBVx9wj0pp|Y_zcfk$sa@ovZd2FMA zM$4WPK+mmA&E7A-6u2gr7|&k$+V`^>y-Gwvo$Zo9cTz;ux`q8e?7i8}<7$?s*EVdo zJ7K_wJ}BGB&aykRis_^%&IKe4ii0?bq{LAw6cU`pK@{f+@Oc}kBO`qSz7pSqFTzK@ z0|WL_#E!jl@5&n5E)NG8Km`8yC6N^Q@#Ff|de`%&AXaEDu+DfJZDz(}n^4GQwcF45 z#|wG3$7==#&nF2qMKbn&d~!CH3eOp+L>t=vdO@kg2eZ_~-uh^LDy#~%5aYP@tP?uk zwiou4rs^rd(%Gif$+9Udd2DlMC(*VDYq_gdRVIsYyEwrCY79{0X~8}lBoYG)w!F`# z7v)S6v9onBvm2a~I`vf*QuyeOKh93g%;QcY`WTx6O<)e>zo90OGLn|Q-QCvmMk!t8 z%uZGXBuHoVV&b6f2$hXIXFL?MLoa?==d;$&cpR91q1unjOn^o75K_?vYD9MWySbu!q zRmk}+_kBK!?c*p`36w>#TV%?$>fBH`%x%_jbxNxjIPdD?HfnoY4PLzm&2dCv3e(FM z9^2ZttISWJ?<%fKNO&5hzt`Ema+$RE3s0Rg;es zL~VH7GcU>st0A2OT02*$R~8UAzf9knnbi|_ zR+@#ifdYQv^u~o#3C?Iw0i}AjKHV&o>V|o)PLL{s$;9iCcoTZQ&YCyt%g4+Bk78n! zt2%mjM!v+gWuv_9@ri;Gj}~2?@x5M$F&|{qMoVBNJQSE`9h?hoF4*{LcuHDFTA=T!B$i}S`n?^HXP6*sO(h>GzKW;bvEyRagRqWF1kX16I%0C)~oZfCdpN+S! zTDG<1w`Ii+W!EalWUHrkfq&|#~UV1HrK-qHgd&s ztAc>zU;O!!-f>Od!L@~-0OSu!8evHP0A^Eq|$iE&?a zx9AJXU7y2|>0j!l^&lf1Y}H}xR!P9Ao~fObZlCjZhnlDtR~G$INb(05 zl{sth~549_Oe5W6X@iUwPnS1%0K;KOTP=E_gBI z>77@X^8RG*M+vgvufrT%e0L}4ipYDgu1{{@h`lXv52p7A*=rX)&~b}=DkGvI!2=#g0SobNkxg9v4dB;UUP%ogtx|@=k~jKOr-Q2 z_|H8hq~&M4OOSeA9356-L5_!K0rEiZixol3ZR<8kv7Ew%7@lGV@!ZTW`&UGZfd zeU5FvvrkC8odY3|TAzSBmMD95JbLl^Nb!DOkJJUXS zWSAuyf#onkbkY^4?XWJV%K<`#nTJZDe=V|G9L9)8TW329!wbEXXxo$KN}Yy@y1b2J z^pKRpy5@X~JWz^km^&oEovk$>RMnCYkEAP%!|&eP+TQ)f+``)!pKf;r247R1)@5<3 zAiotZtJ%G>K|*^1**&5;b7#aNsu{whU7#lI^?B)>NqFwOuDo;gtLrosK0K4c%Owo! zO9&M$(H86A?8f=fK>D)ympK9QEVt+QQmIh{0AqnsDHHCXn zv~THNS|xE43ni;jVc}uXJ3%gqX&qXA9?p$_E5pj^nCZ)P8E7rZ1TWWEaaAWq-fX9I zWJga|ON)}GJWB`rWQMavV9gRykPMe6r|Lacthmc@2RZM_P561n8I?=)y9uyxsz#ztHpu52xCz(qYamv-Q;cS9pbKBlRDFxIPVRk-g+F-QQuJ(Jm)+ah9BylW(W?E1-Al6(bEKXwr;b zhV3S!R>63ubmGtF<0Zc$ED1yD1$EwD&CmRVit+pzs{$oT!PvZ3gA~VpU(`B7n3Fdi zYW?opW+;(k&|WTM5aw}aVReA8nQ|}goRe|+X;v)Nhvk-%&`=R0hXB47WWuYqP>JQa zh{xk`fYnEKIxfgW%(dIlqZ2VyZG%_&qfVgG?vkL0DWqC~st4v})<{mD3^H_Up0wn)7Pq#QcNu2gZj_G&|1-#T8&txre&`7#P`syyyH zUw6Sz=Lr$4oNPa(G?;Tt=j^8>?61&y@wfuQPyL2vv_A*{6ysyRm^C4^Tr zwh#JY=WmFiLLrnpbfd5hG4i?&P>z*4%D{|;_0r-tdl(uVbhWnEOC}##T#%sf+8eul z%Gu`4SrGJs&KCMbs9nKW)Vw1ccCp>CyJhkrKG0@>jSfXBAhc&n8ZD1Aa2 z%lcDWr|)g=WL6bJ{`hTdm!gBUyM7%hr%T>7AK3eJT^RO~nUXW|?HjUDvF8-_N~>Z3 z_bRFrXp9;AM&#sm@};Ef)@1MP2pwv6LU;0EO6G0Sbvai}unbK#M1Cr%=?>54F)Es2C+f%qylT8%iB9$hKYqJk;csvgGK%mpLKL$var~Yo8=n;shly8 z1>S1%3V@KzzQbeSZoP)K40Z_XR=R-oJLJM`s6%OFDs)b|vk8c*F>^jsFY6%~6VWgo zMm6#RVdpzDn7q&11-G#&i+l3mJJU|BGj^{bk+iGR@V>3w5l^tb>d@r-!+Kd?F{p>=HF-WpvM}#B?MvC6FRbL$ofk%cn3uKH%oUMM?}s!z=MSe( z1TTr`!bcmgC!^SgY92j^-8hKCISHTQo+M2rKMigs`}%otgQ0>V5{t6C5w>BnFy>iq z3@y{zDK;vIa7#u&ck3+4UE4sdAdqOt^nmbdZ?$k#)ao_6pa-Um2G%$AX*w*?3YhFJp-jVAy3CPh4^SPde=@iDNXz1Q!DGJedQA`@zHEe zP<%)8$p^`ca{BZ~B#3O^T6NbJbzureJQKK(#{x(KWKQ%L=P46{x{JJBmGU`{Yb+Pe zcU)RGrR#G|V$v9WyZHO1rgw&B#-1}T#o$BV*PTD5>jBLNoSo6xG-IemdQ5mdue|a_ ze`@ac+`jZY=)@rNZmrrt#o;4XLTxu-c-9fP{;wIT+ZWIyxtVFDF7zKL zrywl>WqYfM2V?;&vQgs&VQj3MVr#nWbiE>w?rw&Lv$j~zD4riTHfiSkmRqQK7OhNx zW<1eGOz)bPs%^)m33JH_iy+T%g1YH>W}Fv4`AT?t2)>Gim<7{XPG39!mN{?6fo6=c zH&(ooAasjg8in>Z5ItJ;GfKP%YrS7VAxvtPy_tU0^Pb1*ln~vDxAIeZx!z+0zCP$U z?gY110wnnlRfdA-$fck(o<5~=XAcW$G2&>daNs^O9jgpO52$g9g5wRry~hEkL-*pK z2ubM;vK->=-i2lQ+GB^F9Tc5!F`HS)RWRzX-6(io;`PW5abRWW-FkrfkG`JSjYgYS z?3eodMsDJ1cWSuBuQCL?)$!@=rfGp#yWY^3L!Ta}WN%T8jP^w+I?DqwOJv1tzE#-? zG-yhAeu5ZUW@gXmuX#%!(t0ANt2mwH*l?9@eiH8Hqo@O_gHef0354QUn%zz4sf%xy z^DqPil0mD1oakl)O?RdqCcY|XZ)nmaFkDrTTIlsdQH5eA!eY_fVI4gO6HQcbKRPP4 zR&~3#?~6iA2Z@(+^$D45$LkG^)0`3$${m`1peK~1$+7~C7U|M1#ksM=dlRd?P?s#+ z9C}++X!!L!-4WyZP<2adOtyli4?*?&ctrE}j>ew-T0%%Pu>%Jc z2p4jT5p++nQd@5!Xix$f^~UuAJ*2o*Ln-9WjMm`3MtYAe%SF(u)AYwslcm6UfdHbY zJgBKA2wghnbo9ihPNY0;u|i(=EUpj)%VWv4_XpW1L-aM>dlHI3cIO=|yr_%f$VBj0 z+UV*bbMNsQ#rp+{cCAnJ@#=J`lUncmfFAhiCD;@6>~zVk{-TKlCDHkCb(rCvmv=89 zseY6kX$pLEIhKM1*?6@H)H6|`_>3yZ(y4DKKlt5U?;kHo3q*-P`SEpMOj`XcT=5$e z53E8sA{5C*Q2IiUkP5ha&=$wsXBi4J5EQzDXAHwj$uV0SbZjVkdeGj`a}Q@FeZ z`9y0dOx)1}`rOF#Xv!`;IU3ALs$&cf--IgFg%CW`?q(NdFMN+(Z-`YxBPRNslk$MS zQn3-20-1ZWKR0QSd8JAkm^#mK94EMZ6dnrbFuf3JjgQPC;&XR&Rt$dxRex)JDA^sP zJ7%we)7gR&H8^FwlsXgD?Qt7H&xl=C<$aY~5E$nI(r_?UML-FpX;wxPf&%$~KTICq zk~-*wAjnU{))O8k^6*LH(JmVAJ4QYt8H|)cC*Z*;Aa@jQ2P*9F{NSO|yPuR6 zWb`n#+@Xf`!?85Aldq6ld!P6pz1O8H=8=zg)1 zpCk|Yc&|#T0=lUt03;MlA1cwMvDnU3o<;$=g_DRv{r7wbM8(#Q`t#sa=_o$5Nuf{t ztwr!lToRDx9E#h)t8x~5>_uD{u2;?P=djOAXuVdbNOO=oNpF&^ZF-3Y8~$j_Y7}Qk z>_Fb|GVbs|b#E19dxo82qc-Seg3c zt{mHhk9-7BO;@Z)89xx|pEZe2al^fvt)%X0O zF~>6=(l8jx8DzE3TtOlZI1W2}w=h?noJ$hb%MfTlyRp=aogmjvUbQN}B*0woNp2NY zt|2(NZ*l`Gqw^U=%T%H&gzPJ$e&5RlLj8dV-|OSyr>1>`=7)1_;!mgMHr*bgYseO_ z@!9Uu*)YdKNf4e{xS+o-dkJb@s2xFAnO>!=T$RCs{-pU4#=`Xi((yMVLg%waln=;h zr3_KhCx8Y()58)#^%O)MqC~2=Fj$u=2_Wct%Izu31<7?P&|^UO3B$=ZFLu163{@zo zSf=&aZyN|Nrd4LzJJieNSBB@$VX!}A)~U>iYYFjDIy#WWy&c#cr|_n!;tD;LoVe}g z!_dW5Jk8L43;Re%XSRIE%|nNl_fm3^Ga!|c%~xoJzJR{cK1(LV#Lzm9ZS|y#N_rDj zYaa2pFxAM#y1th;+!iW|6z9_{GjE7~snfhzJQux49+8m2nXYgz$Gxe@96xa{sC4rS z9fO!8mx=333{nU^Rmepe$;&1y<;k43Me3jSjoZ|1WRDM~cV!wx1Y5>H_3D8>&mA5P z0)v|9sZJeZiDq}Gu7SIFcVIO1`6=K8SQ|xD;7!nF_*P*a9eM|rb=pVw^pDP$N6;s3 zqJnNL_8tL2>rr7ZEQ*VxXbp50;~P~#RAgexaqU1GH7)I1e?_?lYsr0$ zPeAps^?)Idgq#&rjGMIl;)mMj612hmHS&g0UAqrfGm zG%I0%aFC&`EQgopX8|(bc!wrI?=T!ZzmLnMnm1|D|0&7)J+n11hD|3R9E%~wxyZiC+C(Xq^% zVJT)MGdzu1`X$Ub338kqC^=0PyVnXj=0WM>Urbvphz(S$Ia^7p>U9vJiqX0y_lZO2 zSMP7S0-aMIEddAMm4@gBuDQ=wtaS2yUP&~1aP~~Vp*y*5E0UCfVw;CPA;o0&=*ZY8 z2ehSg2L0IA6I+BRO-?70XV3(?H3?+owChRBnz=(_DN0;9I4h+w1=N?G8Z<7`j}VS`jxQNEOHzEhE=a z)zSO`^%|jd^L*=sL`YOJdWh;Jhr;l?xTjZdvm$bhm@0ByL5BJyE}c8Yoo)bW(HeNR zW@o4$Om3QRWI9Dwi#Tb(a7L>8H53v+R0u&paIl#m$VXJH^Vv8&q4V-{O>DcV-p$?k zhhw?V+;n)i0_vd{mW0(c?8Gz%gw%&W|C9GLw$u2#7Hax3250hr`|k9A^C{62muliudz?PG-iHHdff>#yAYU;kVWhvEHWCyG}(_C-8=v%&bgr0}1-{e#^8 zC%I?*6Kyd*G@cjGsfxVwyPIh`zY~-j z(6N7UONR;K?O*&%QqJy8{GB5F!Ee#8JU!|2>0kUz;2iF|*CDGKe)%o>3-CV3z_t{8 zp@!eIU`P3z6p;1f@T;Hh>^s8(c-N~+ivI7u{`YO@`vd!fEr1OdY-9M<53l`wpZ@Nk z|Hx;*z4Ei4C20m15U_y1`+R|4!P)y=k$m@w?5MX`j`FZjeib~Sm9T@D|qSah=F_Q=kT5{ zBj?LFdiQzQd|Wp^==jgZz%by0qhH=%;q${+&|;D{Loou79){k>_arZ1;C;3V`2OTK zJ?!Uqu-RXIJvQ)$0Hc-Rx4-(O@bzN=S^uT@`PBAHaMgg1{q?v1epvLdf${x2xc^hQ z=YI90R{;ax_wRoA?JwhZ+Q%Q-`q!PpzrRWPciV)3T>r9ZI3U>8k3Rjg?{@#~_ur1@ zZ{XDY-1&UpbSU!X=WurWVujJZeCC>O{_~&d{+rw9$D&|_-GTSaC0sxM``#P{Km6=t zVgLmD?<_=WxGLZ6=`Vi$qj$r155SV(@cGi%Zw^0kjQAri3qSt!7ps=9?ofZY!=Jnf z%u@aluM`+hUpyDS`wHML03AMg`YY_$KmYNzzIu^-zU|k&{`C)E{L6Lw{xp1X8~AMY zrGs=xfp@BC&^{5OXm{6tLsGsJ#6b;FJH@lOGqXq>j= zZ>6vv(!YRFElVTjSS9_!lpmZ|(^ncbLyX zetY*<`+>jDYXT1Mi_^rn5%}-sF!AR<@u&DBJN{>J2_!He`l)@|pF)Dq%KuLx!58bY|Cd98?^7LL82tbKzy80);Qv3q&vSgs z82vcY@eeZi|0nhPl*j-6eY)zO#Nhwc4{5Y75dQyY7-3EH`hEFlkf8co_#fE4_P;Ox zi_ic57Zg?%=qIB5Aoj}*&57fy&u8oiv`Qjxn&-MyEM%4s@F#Ck2QAvIN&!+>|Bk?p zIECU2MiVp%^=7d2{3{CotDoN>^;W!6|0|RKufURP{up#e+s{9X5?HZ)NzQ>uSMmvo zzeH*fZ2t4biNF7YjNwmC#sB~P2=L!w|Bw0+{Hy==AMhjixB&d%M=N_~Fw|B)ZT zG`N50N3gn&EFzegRn<*|!k5N*DhJ(gVRby6L1HKl9nDkyYm6`!!=Qm8O0we=LV_B> z-q*xFC`Wm?0(%#jeEx~kM5)S8DzDj&IiPd7RsgBd9;#sM7p5j>i~?*o=&8nakC}>% zNwk^L_y(N8V-~fw8WFbs|vlj)nq?S&aGO^eY`nf7j?zbEhZEM zS(8qV+qG6fVeqU~4S4`|!nz93?*1kLV^myic<}}$y)MLjFfMr9Ea-bn^yoM_?%%Ty zXgE0G9Fst`hBO1{z5&;UzQO#_OsFpXwcsu+os ztg=<9ory^W#)_~2$o`op&QsHDbU)f*PEBq1?zDn69l(&PyeHXi0NcadfP_Lg2fv?B z^PBcGX!n~c@l)$;692i?{e%KQnM^!P9;fq;-cP=Eg#A2$k$FEsaU9KN;I!Xg<~Xto zi{rmy_pVxHK>fas*!gc?D#?mEjTkAVCw@Q%j{BERQnW2uQ)*FtJGljf`sB%d!+SiX@+%U6BUL_8VL(XpTq1YoqR$ z59`_2Tj*is(RZ7ZAUXtdgzN1AjE-^0j=|P=24K+fYSw{+gJujgYP$i0Kofi>0|s3| zQdB!T0Ve_%y?PCE=ueru-%w{>f#nr z)w+``LFCY8Q(pFCq}Kc~%`zu?9FtncN#s_!=Q-%{5Gh6&d^PtG52JH?Qb%?)89{6% zg307+1C9rs9)qZ{l~cl9F~ji&TrX}^VnXHi{(?3W7RkjWop0~H$B!VxBgqpqZlqV> zfKl@V_d{{JKr^!ebRK#CFw)~ooFogkL`J@d&x=!TfD3``QB0k6S0K}tCIikI06s>; zBIm52-0bkcYU>5H(#_h<%H_k$0Z&|JUCYx(UVsV6ULyqA04-jCw?ma>=&}ksO(-hh zTm61d0GPjkLMwW&D-vLumX3o?L7z1-Y_>77g<+m=mIY|YM!YrAo<8^RgmACr<5_V6 zOgr2QpE)Bkx&u_g4S>^5`YVm&YiI#Vk5-OigD|0w56_cSPvw~+w ziaJ?W`+akHEEILb52J9s0#oKv!!~XJRRa{LDU^4Sp8ERS2{)KWAj_@mkA)mLM5lMk z*tSgcgZBPbmv(o63YN}l^TEqUk|a0pp4D4tnP=p>kUOXhO&L5=gsI;i zWE*1H&CraC-57I7!Yu=MNMAg@kaPOHji7Rk`tfkE9YH!T|nndpvT7)9q-UO zx#Vvf2==pJ#$6*4+-yiJmRK;aUb;Pb9^a%UTLx}XhjTGCPmmWnrOX)cC_E`Za+cQN zL377R29^c~^k&I_0?4>!Z}|n?0YeR!5-s=5^h*=lvEYHQ!p2Sdn}Rui(~5UD2!r3q zkLu>|O`XkbGQUkM1z_1uZR=_|?^Hq#nQ%XS{6(l@_2F4(0=*fzwB%(^BZk!J%h|9p zs^QJ;m_|7~2fEJe`X~b+R}~dz?ynY`RO1e4FUo{t?>TsYQeBavuY2@DQ;*4XOv|oX zh}Vy)e@tN>hywqzgf9ouF)g4gLv$&At+DN=N7T;eI>}3*I$@% zaNfhGq1RmK)W{--)HSL_Z_g}!6;?u!gPaQb;{266!Zs%F?YXWJlCMdY(|U*dH`-Kb2c$rKi2(u zW(7_Mj+O+pLByMoY1=pdqs7|}ZbdoyY+aiedKRnBKlG&kdZeJ=0I8H=>fP|b@@vl^ zkBtW>fk}plD_lVtLGBnsHzS>xNE!jKl<3jGgpPdrsJ#ZBwTARk4pvT;m~udj7U zUZz+W&~VOe;EW;UPv|Ov){k>mG^}#a6rn_qqo!^H8gN!cp=4fexq<+eSyAWOVNh>*l zSYx=0l*3hLo;rYw-9q7C26L?#`^~7JiS;x`VXn(tA62xuD%PmtR98J5fBuYp{u)fD zm^?lLtlY(!vyXfxUP9q*H(uD*(2=#7#c@Bf_gP*W6?}IR1oiKfM{fjt&7>Yyps0@W z9{L6IY^U@%jC_RgDa;`$ao&T&YTjSt$;?nTDG~vB-*)8c0A6y4I@}_VLmHh=mtYCp zMtvxE$!)=|?Wwvx&@7kb`959nC3*=4#en*VJA+&nLF4!of;RMBO0Rj%N>^(W(0_Lu z4~qELL)$2iy)oXIvEM*=43jKN~sJm8P_t{RsJ ze0}cK**EQ6So2w>nL0$(T~Be8V2=P!Yr1AwA_%7{r-p}eLC4Q@hn7si_Wbd91Po@_ z)x!l4P%Fc{9=!ox91?0U^?NPTo{86f2`B`WnK89mX>Ir(`u`Ogt%gfhy!4p|oG>t8 z>=ZR-p<)aUUnHM97$7xe#b|ci@zYZN-Wf6H?K_6`*n)myf224>8+GzaB#?tE1i2AF zOHc3sQvCCUhz{7~u58Lxj*NEaf@G5=Fu>f)9N)%T#>eY$^mNedPI!!YTBaL;wL_Cs zQ(_?mlpVdZyNJAnbXmm_A+8J%9U=J;6gu0Sje7>jtc9^K{%a1{--#=#Cw2@iWi zNn(YlAz|4~nh=knJSV^`!RrGRupvOa=uB~@kIHDQ2eNV=>WO-EvL65d_ zDS+3+s7nJ@0pMB@9MkoTUbTlSd&~$oL!xf#*GHsZU z;JRj|*uoXK*quF0unPBynMg;l*%|QrN{@YK1as)*`8oh2nk}7W({kh#R4VqJ zYdugJLwpjy)(UJm8r9%4m108ZK>-e6No*TFXkA~Cx6v*Xd|-P6!;ouCnlz5J21*G$ z^cfR;LLRX7{Gt;Axn9rVg^E9`+GE=RnFX+kG7{(|gguWzjV-vDc2&F6aJnvpp|3Fj zl0i5*;dca;sX!KkXXyrBS*D21< zw-sBwh-Zce6YkpD-1;S(abatB_b{Ed7MM{b^yNEIB(H}f(;Uj+#75)V%wuyFspb&~ z@2Lj+h;n*ufPupR%X!jF?`*(Lz7B*S*|4mIb~!ZJ$L9^^cJUrg_q0pFl}_XD6+77z z0t}8>LoVHxonwT7rF5Rs2EZ2IIN1V$N|&mO?Vf5M2DUy{wTE$NOec+-gS}v9Ok{~0pxfBFt;?BvXe5-6I=1Hfvn7^BycR2FPC=S>B}Yof5qve-MDL!iJk_k5<5iPAw9m z2au)$cT*+xRxLbevd$Hl5Lyx;vIH-`oT1 zMOUCrIjl#95O>-szzk18JJ@t|En1|kKkERJ5_9Pwh^Y?7d^Cvt@f;J>apZ5O9L!Lg zJ0j-k6l{l$GDW|buQ-7yuD}%6a(q!K*q`dNQwQqp)(|bolmXz2KA^$3>i4(*$rDa? zUiO4@%3?K=HL&R7(c4Lbl?${zJxm}T_8oD8I?{48l>fGELtd!oVoCQY+DKnvQz?XcwxWWLKX-)Y}IJu-7M@e$G^h}+q1J{k#XVGx2BIxrf@&dAnV|rM{ z@%>bu? z-Oei=8uW8|=ld%rYs$Cv32_#j$AgXTTbt}Vgd*jRS)mtp$OVWRk>}>b$9A1C1wFuad}{;~!B+vrk^TM$jdF)HXncK4b0xjRxRw1nkGkd(Cag zc`Z=SSCcDLP{wl=vEQB!8Dpcyy5TvfYL?4YMUw)c`8+k#1?z$3jO5gEe&(IhRM7Qi zE&7QwTWB(XHfi$US&>J*!Oqa&Zh+j9W4>dcmsPrRD>?P0F4LaNjtJQ+Ks|v&>58sioMmwP~(8VfI9PJP?nwZvg(JCCly3VSddHJe7T7LdaPdVG|}q21OBL z!@#Y1(#-Us!Zwg-O3s=!q7=+opYKz6rC=F8S;B3W$L%Lv>PxV9Zr7%N(sD$_206}y zQW04cy(`ns-IJs zZ$@$vYI}e9L!LYq;$>chPyPy=hEE~%+;lY5HYi{XrisaTP9-8-6F4r^bDnl>_E%pd zcqIUYA(Mc!1B*{x$OGtR{v>1k7HkoTv_x3=%$a_<;rq3p8F_*=5b?4@csA(9V3%H$ z&kpp~y*ocU*1Y}Q@tQtNzK@kj=)SeYlczqymt~(gFt%!;9;({gJb%R<KCnlwqxi02XVAxUWVmMvt zr9SBivBG8E0d?OGR-5AfaWPKT&9_|w7tuR!9S;sW7sE4Ya@K;At97rI%#HvdAU31* zl6z$YpE+f3q(d)2|5GFb@j5rF^XoEk70EvdNajv@VnnqI9voqBb!~0E$;a}_8SkbZ z2*Ki@SO?YshI@cP4K7Tl=LiW z@m>)7X*LGkMzHuWDfVQwKs)xY8X?}`QOkuN0N-l!jRCG$M=iXFoQu zQ-Rd}Fh4Zy#1m>%>Jp>rmgl+Z;#ma*Ct6Wxy? zVXOd07n0e#QqL

    %RXf5u;?YA~Llmx~5}Qiiiaa0SBLv+EfESG|X9pt`nmxZ?C3 zycmmPtloKKk)1r80E#MDx$FbGrDEh30taACEj8OxFO~*A-jz1h;o1)3ouS;7%%ee$ z&?xua0;JEou!gtER&5RF>}T+IgP&lE*9|5Cp1*-d5 zTO0&9dy>UTjL4T0p(U5$J^%=>Qs2XTsz}_DiNxn3W=jIgpLm|-P>I-KRE^>Rz(9HGm_Bu}U3=GwaHLWuaPq6IKMzHpoPA}qYi{&+`$=YL+ zoM0>rahFKy3@jsWoqB}kV_-XYYz%lDeG#jZX1`n0>cB5n53z!~c%!$h*T;y~=l2|u zXwI*zcLU=oX@eCxJa?Ed&H#LIrpOPFkSCEAyFf|n!UEEF z5wAxbf*n%oT>8}7)f3p9=Yn%DgAw0dgqM!$l?p#&{Q)scCg-dDsYm;*Ggy!8dMd%l z2ke8a%3LEEkREER4NwvfM)c5O$5=mDiq4>qe7y}BqCr%)w;e}e}*TSqu)jbDNXP)(M$NKg*0FM9yi<^kScKXv1oK(#B7 z9TR7~xEo>4Ic2<9G>Zh5$qX0@K+R5J%d`Tolr#2BpTuh274i}BCJLO^=CNYj$h69o zJbOfR0Ec{ktn>m2mRG!?VoL+PY*xGa1$OG0*>ZT`>r@c$2H-XT{0TE`kYkoc?POdZ z5TTs0U@I&@98Wd)ELD32&ysW=6wU=#Okn04Y%jdi$eu7QEZuATA+glcEbkfRGC)np7KrO&6s!)WK82W+ zvi;WQd`O1FxCeUPCr<4~ct~(yIs63s*EnDZu*x059=psASH(S0VA$|>TjveU{|3k1 zHfJdlkAGdmJAShz1Z=DhQ}0LTu`po0r`Xw-bM-P}NOp2%e5&qRQzB^tbO7!uW-l3h zb`62CUsLy#LeyN&fiujIAR}LIe&A%GB<)ku+H#h|lN|7!un4(EuQOmYB}#r?WR_P} zdl(HZ_0)bOlzO~X0stoNO1_fC=}My1;z_{u9GGYFq~6#WMSOQdv(I_oYXjb&n z=cZeTdFZCRvS5$`wJ$>n(Rs#`DwH-@y8)0i*XPE>EyOt+jl0GO1*{2AP~yMR=T`5W zPrle9pe7kSEWJNj;DL5cdVv8_G@Kt?pGP?5v?8`jppC{W-YP9wZZ^PeKB( zkD_yFR#`>`6-xbfJ;$HEE_@3)=xq^{jnT~%H8?yl7!l;jVL4iO3y$^Hj9kw5|=5XQlg043Q-Ab|oThzKM= ziV==M@JB*GA%6hBxBC7~pWB>ooQ<+0&H1{ktKNDq&+UDl=lwlgg3c_q#g0y`Mysl^ zXvcGiGxCVT0ZUa8xk7TXtv66wsU7cER-l8CvF+q*Y)1?ij=f~!BeP>8HQm&bsyJx? z0Tm^7`AkPedE_-s?1AyJDNl`{fx><`m+z(vsaiV`=B<9U-5EPUPjQ3p#P=sd(@3>4 z)mb;4QhQ6@=cl9PeCzkSX&qpKW;FSU3JdN0h_fdOmEjIDhhmnGdL+!g%yGk5I;J_ ziomO~Zbfva*wvk6pZ1uh)}-XYl&~lcqNF$8{XXUI5pnoNpq2xCW>Z&L<0i!6>0{5(2lLx=pF%-ZV8T14p=l zI-IrK0;;0Y(4&srp;2PfM4W91lzCXIO;n#Xu`wDUh|3i=(q=M{nUUa@veR|3+^8y> z_B5Yw=BaXVrqR(DFaUbA!hUp%nwRBeQqCyJjnNNhVqL758;=!7i{z$rR0L>b8+20j|rGt2)mlTtTv5v5l+fEwgd~Q)3qW;S$Q%8t0 zUFuZ4!LnQ2(9WhnbraS0n&f2hPTl2!mXoh!N2cy?;q6F|}f5vVe6 zY7=E#bn2PLYS>6`Sv|ApY5>O;H#!U3f!W|NTxqo3D0a_)k0Dua1Us!g5i=sZ!467# z`aQ?%4hqeDHXQ_Bel60afsz<=I%KkDm`)iU8Vj&0HtJELYMMXaP^u7)%Zdq)5SyCU z{iVEUPXc=A^jN-}F6@Hbz{{HruFz;pRR%!rWyh`%=L;|9NW=TLTC>Y?%wfZJ8#qw?htd!JE~$w#OlF`$WUJTCfJ=#p>Pux1-TFE7vC zEbIWazBconQP5FG9Tk)9V#e3ELio$=+bWn80N+>dl>teIDIRkbFRFP{1dx zY@wa$rOg~J_B+_KcSdfzIVf9BAC=JnerLiT2zn_Ajjp_?jN$)FgzFkN&Q9v3abD2) zS+Wxp2U$P0SrzkBt{86ggt}_xLu^cE24%8og{mbs$S@c#Tpo3c;2RpxXRCan+CTx6 zLVr=NCYqxyN)V1cK~uZkAv@RMw@R$06-gun|Ht#pYh8o*y}0t>R()0k#2LTR@mWh`mL8kCUTpmGrnDOOrZHVa&+;f9nM zZl^1A)Echu?83y!)n*b$`@3%3l4H?NCH@k(Jj14f~-&vrR*=m7W#@%kQ2%I5ll(+C2 zqY12+sgATT{2g)p6451f2ERN@O)`!+6Xzqgx$nnlJjvw|*O^*Xvyhddt-P}k2`)K4 zQ>(&s?vERx)TwI=M<1rN&Dhy`Yu5=DaUKbuoDFNjTJT4eM3+WBMVlF9wE*}F*ce8b zhw8j$Xp=4S7!pd(Z|(Fb*)F1Ld9$dsw@rVD;LL873dNc_4a#!cS^?*hQ}Zke0JrpA z?=V-B@kH-6xqM1*wR??qBP!L(TNr=LL=Tj1d!zJ5W41Az!k9yaI`{~b-I~(|_BcSn zVFsAX$yBpl?4mtA(Z;%M^@*RBPzA%-0JE<>70p%|zMnRfdy5N8D6+|#gHdCHG1ON2 zHdhm~)NGiZI<<0c;~LPOwGdVR+KCN<;$m&p?=ux+vJ2yLD0%;(W`A6CG7$9G3>z6Rc)nwrW8yI?Jnn&e$Ur6USZ_*x~&iD2}WtN?NGJ6 zX6)CeN`scfqVTQX^p|6y##$o6NFmz+;24K&%<^)#@Cgd{dY#PoqguML+@wO?=vTO0 z9o2_tZPpc7z<;lE$i+jg1bFOB(c3MNMcw7nxxoZg@EpfYE&xDPs4ST0{A@?I8{HJwXF z78t_zwmWLGLWbqCi=f$(IJY7o-%s5poV7GuT9V0CavP5DmSMnP&$}=M)J+bhxaeXo zk2uu>y4*WuG0b4Rc)tY2>J7iiVQc|@Naoa_5)m5{6(V9#)p+;dQKQ0&rUXsQ)e$7@14Ep4IqdntXik%ncrMwguM0pK%(_du zKgmF+cspT-WbIuq#pkRPKrI~<9d7NIX)!6L)=Uodwq$LDG^q+=B4XIGvS|UZ_tGNH z5vugPLaW+O$-9I;r;)xDu^HW|A~Cuk<&?G!UqyE#IRGCSS)Q8h01a~{m8(D^T9sL) ztxu+tEkNOO>ui43<%DU`b~qOWP3V?`!cuM6Y*m{^mgx$i8rvPuhT2%-ii0AXn{VV| zA}ww++1(&DUIMZmSqZB^o=A@7=<8f)C2c9n74)gDR

    zMz967M$?H@MpGGUEfODk zz`JFofFu3G^zGtpJym7nl7}klobWwP&hBc}Xo%uw4|p zzHGKBq%B(ZPILTp#&);eC}bBIlvfi5h0$B(*+|II*<>7(q2z?usAhX`lrx#! zfHRe3QPMle%dw-xS}vrPO9tA%l#VpISo6a~&DlxQd8>oe?0h@w>n*IiW^qZSTF@&f z6jlh#Mys6gHv{BekK0oQTn&tu3d{!q4nMvWR?_ThP~N6878`bFV}n*u9Hf}t<)~VF z70?oK?d9g};e;A1o5ohvt`cE(R> zK4rmg8$bo3Sgl_d*f7VHEt=yx%N+0}GhBa?FQiv>pWQNfCrqftITbMZG~ZL4poXF& zbd<~>sw^PD-6n6j+PdmRbt(le+EUI9EZz^7d3UTIRevm^93RyQ_?VlgaCVHkCHT(h$`i z*^tRnyIqa!OLKLr+t5VF(Y(`5_ahW#TP{|O?i7==HiB?oX=9H|^DVDG?0WeY*0;g# zrYNX}ocpoCs&j1`E*XB4Ws9CwL8-1Pc#%i41%*UJy_2uZ2IXE_nHIv~GJ}*+hHU_( zKT5Qxt1WW1`tucZLDLz){!iv>?ZGSoyy)$U=#x3N7~0mIZ}WY1TbVa@P2f{aO5_~N zd^}@1-Ry*^Mws+5IpPvE^66ZyePv+^{4q!7F)0;!xH?!`4VOtTZNfc zhnY4pjYV7FS^_KY>QXm4CCRzY|9 z%%*{Y_Bz$7FH7Y74bZhL;>Vj}ODLiATcetvcm%7NWm0M6qGLUIF_PoX?ljrS&!8d2 zVkRlHluf?c+Jx0)m*LrrF z?-ksy8;P9T+hOI_bC(J#Y$dw|swL_iSrgz>PSQ)1^;&q9d971-k-$^SxD!4z+;Tf4 zeXZNu-L~AXr2&n{AQBhmJ#mYy&z+T66w2EIRY&#i5}>_=bQPGO4Z&E5W?>!82O4n3 zSti#j&nrV@)h% zmAX~8FzHLhyd2~QGrgBpy{*V_Njpoii$)naOb#~ly()^0>&67t*U-0U>MrtT-VZwM zA^sPq*clkISgW+1g`r2a)?(J^Rw^4lL}43bxhA_wK}vcw@O8Hu!ns;Rht+hg>z9XO zEuAP;+?klmT5i>qN}G<{-9&yD_TYG3)bc1$6{QeWYD*)2Q_CiMa*sIRoPB3Srkr?`nF9#;pWD3 z-Cy@{Clf8VH3* zQ5qG?@>znnw`(_MDPFAC*sx@)`a+s^lFe4SiP&eAYK48IUFD*NE4oQ`7d0D|2J+Sd zQeMz4R>sS8WNp`Qn&oF+I2xt%RJ$V~K9F51Rz#qwZVh93r) zd*eQF;b3pjA~`QaP8uXf1~PdKdl}J=Qopd4=>Ce-7As;N{h18!P}uZ3iH_^@G^Mqd z^Pw+5Za1cU1=(`biZK!R#7&(9Zb zBB2zDr~`mtN{W_Iz!_CB^HH`m)LWx*Z&MO=an;vUNMzt-Z}O<1$v|Ni-8`FjMgqr6 zF475-&2(kzvAqS*N^uUcQ0+J2{}H;)#2A&4y@n#1`EJ(nD{g<|i1wsSt$IyK?=mY5 zIZawx_X_J-dTOA?ZP7LA@MWodV`eQ@l0;3HQeCL0@_ae(GWp>Q;GZa~n`+dmW;KhF zotd%~Kmvs*0^95)7Mtb5D*}%iHTdSL58Y)BbvA`y?+Plr>dBQIk_jr^38H@ur2haJ z8&&Q{8$-s~8lcr~kh$WoBpUV2cEfIRfZ%GgkJJ%iR-{lPY`bNgP8!0bOVO0bnRD9_ z`!hPwStQ<2tz_C=I?6WUh7&F`n{TAndTI?i-5GKs3BL5-`m z4!xozE6)bJl$|UMoOgonHRPvxe^J*UxVLND5OdXRKEpKp*(Bsq^E5w=d{!{c1}!@;JbUa>Gbmn)emr1I$>NMF&AZ_z%+n(Dz47wm_w&TydyJ@N;Qe zwO7nZ1rIR;6mH9iR#dAR01V#cG;x_~ZU7&anlI9uadO~z4JxUp78R5@8&5oWJlxh8 zPTfoZF^l^me(R@KW6O~yb-O$-!STIblo6*zY)2brU?2jUuwN*^XrH@*?Ten1a3sIr ztdXf8H8N%kHQp$%w4TU_9c0#-M#%B`TBg>mxsVX9Hp=AMC`K}k`h0JmX)rcRd$N|6 zv&~R!bkogzfdUSGZd-9T2l=>S7e~3+Y>r12ZUnJv8i9t|Fp#PAXbiV4?7u06L#9H2Nd9?5-M%#o_~kPkIxURQbGNNxyUfOL~Fx@O8jVEWfz?u|Rx) z6Y(-w(jz#;8AkN;gC(8*BEVcbYo7r03I6>?xko`L<$eX+vlz(ign~wZ9SDY>3IIj_ zUc%nSj1fz(G49^|Pz3OVw=?nQ`_qr#eMVp=Ez+zc7)IQHghRNBXRj?;vljR7y*H2m z((iw}1@KJkz4y-WczDKA04U)v1Mi-|R4Na9gp2RJ7lX6C_ueyrxQVXd5|};T{3*+5JE{JfV3~5W{gcZyaasrC!T-xdi6eufqB3FsmrI{#fU1s z2TfiR`UB`!{cCt1kb8f_IYFTuyA+6+#6R*%g1MNR*SPt{ke7cAaK!uZe&v$(j-$Q4 zcpB^T>+5J(ev^SO|LRLdO}!!2U(CT9Kl<_+`H7gFj#F{?cAkUd&)?9uk2d(9`xNV5 z4DZH|FCV~zRU*jJUw^Q4=ixlK`5XH4M;p}?QsncIH|Oque($(3$JZ+80b9q2&KEp= zMsz+u_WWxP!L2_Lj$q$6e>(txL$NOJz&uRu?f@9Q{K{UXE`R#S$$Jd(C(ExLFFgNx zjJ6FxXdo3s-V;?r&}Wa7{i2^wldJy+gcQD^|NHp!PS00+aISerJqJthiQ-23&$!X-dbZ8U!wPs{;m{Zn?px4b(ewiI^n6LSPjk>=tx z@D*uk0gTUEcw|U)AtDAeiuJ0D*zow{)7MnDsBUyzG&4$s~&-S zJHQ*;FtC82g=MrgUxgKNSSMmPaGz~l7eey0wgB?}8xNN0(Ujxge$epC*PkfIzkFW* zW3OV9;KzUaU;H)iVzgiSmiNi6o`3!M7w^uu#iq%zog)!qw#$#Q_~-XLR)cRmq9gts z#`H^XONuA%efy?vjN_~Vj^h4U+kuGo53ZM<2+vQk{$CstFzu7+9alpDlfx1Rn?hz1 zvFNU0)bF|PEF#~JMQFVHu3nUe;Un?cXl@~;mUjS)i`%Sjq>zIhql&ncUAn*5TkL;<} zF^J={yCF8(@81Lbc+W3n7mUgkfX&Bi!5>%e-oMAA_OIPHMxY?U9*6fmcvFlM`GmBw zcOAso>E!DbD*`55^Y2VyN5(GPizqJuoJoQ7Q8R5rF`-3qJ+5+rp%G3*kpd{}i0JFf z34C@}32@p>aZOZRL93*aihHcSvaie$^LAXE_Vs5<9L96EBO1g(dGfyIpo4ze|R8-7I`Daf|UfNSH;GV{v;F_ZR)V@#C#`J(inMd?4yxy_5Q@XKUjq1LK|4AGoQbE=Kl( z8*Ys5+Hd^(4r=b`T{(R}*;Da$EPRuZ96iM^8q7cYGL?EUrkCG$V`#VR;^Q=)BQn<$ z@bj1Ycdx;Zb8+jZ>uLE{9&=iry_w-~F;Q>&W$C^H{aX{{n;;m z;R|*3p1AbR8;BqLx~t%uM~r`216;C;Pe1teIF5%M3#@9?{fo_5Y!cS4k7RD_816iL zkOdbI%eSI^S0*#Dj^U6!n!v<#C$@TQ1;eMH2-5QI5b``}hU+-y;aB3djluDcO&qSr zZb{AePMyLQBh=#hP|xn$YeZB{yaN>k?+p?MB~R})4{=1wsFy}u$JhW0$F0dT6d1!L z(nGTIAy&LfT%iZYsIqs9o?W73IG93GwC_G1f^fgU)&gMt2WRNrw zbvbjy^G9nEwD?~?;H+CLedC@#^l~b>=7u)j)Zp8U>DP{=^h3wn7xVN(+{w3@`(JpG z^g3(07v6H?y{}ee7c6#Dk^PTQWW%L$_uauk3&q;X{oa$M@7vyYD9YQXy~N`F8LDJb zpdNVaDEPJlIPRzgDT9fyl1v@y@o7XUBF2B%8&3w)9Qo>D{TeB>Y{U z%B+z|ZcD64h${>}>-+l(K9HG<3v(rx6}*@jn<+en7ZA-4x@#5j9Q^fyu>lMqJc2F;Xx`rocV6Iz%8s-YM+wO=;q50OLII_g z5$40oiIWp^8oL(v@dJ~LghW$gg}P5dy69*;TW7uaV_4=328+Lfq`v;mSG(IE-lKo- ztC!h0$0gpA&dGj$aQRH(Uw!ZkdhyK%y?C+u&`rGi`FB4@@{B8Ge~7mr;`2Ap8tOO+ zv4;9oMB@1CdFKTk^OZ|FznJ^$>$eu+u{Pzu_}cSIVq7G=`Jxd&fqC~@e0ed>*MH{L z9NdWe+??gg;|PL_em_==Z!@Yt{X-y^E~ey%qC0OhpWppFW$anDeXg&$G5%Lu02d5> z%K~`*?_s}0He|Q;2MXpQQY51;_ySQT=p=;b$c7Ah^8UTRQU%R@@9q%W+LsaD>!ypi z(LL+{Dc;&@F7)HV(x9%DAN;zk;JJM=5ftv-Ucv64#*J6o)*t-(X_tLgXt~ea@e8_s zi$<^-&I9qP|7S3#PMJVo-p|ibAs)Y;iRE|&EkzGnda(i|3EclFUISVE-<`G7u_w2+ z)A84f1e4NZEZW6HK2Cc#=JeKH?L3}~z1ox4rl9i*y#6ycdiHAGyI7!Gyf^(dtm7cC z?RA`pMR@9%4i>vg2wUEfe_{=XUp31P;87y>Eiu9mt`T^Ih;fV>9E&APW3bT4`$UXP z4{_mVceMaE@8KTgiQ!HXyM|u|a&cb{5nPIluzQ%=`*<%t-2rwES$`z@`|KX#GH-I`V%iBn~>zMV7DM*IJ<*jxi7!z^b7ZYL$bsyt?B0m6@I|=$qWYdCX@drtb>-as0&Bq~qg=8f_ zU>!VY5?ou9vG&eo?=RxXf9T~)bio9#x)Vh77alPBE%Lr`PvvpQ;G(aO)#4kE>4Ih1 z&qS3MgZPXMyiK1=XTtyNJaI9E$7%0vM)b$tfb2fP5+rU7ZMlU{wzb+D zCZEn~?D5*XF|t>yx&Ps8hul7!~KLCrr^UgbW-)w^^j1$koi@84o5yUKX2vwdkLUFbP zfyn9I?xUE=KZ*mHAKY8^GxF)l;queF>FwVSm){q*n)gBSbld$0_lIBZzkU1^H+_5$ zZa6fJ8!q2{clS-iD{(r5oFDaLU-Ff1ybwmjM|&6dT9H56-}FIzv||6|8J>S~?B8h| zXn#LH2NM{QCZ3^q?=2YEU_-vdGA9;?SJDu^X8Dwzd4B#GnH&Xy*?7?8!}XZ&zd6F@ zBA(cNNcbpC;{ohGA}!(BtC5h7qot>qufxxW4~gs9!h#<*w?A5c5dA-u>wl7maq85M zzx(oIX!`Gd=?h=b|5x(Q7k?W6djt3p4#|r%U?p$H(t|qW{AF$`k#c!H4HxRkn%* zf%VZo5#ba4@B9L~dbsC&Y+wK1E-pX6^Odbn*#>NtPp1DLq~W(dv_6wC{Ls3TNFb_* z((ps;AXgrW%cHnCh{Mx;d(lAn{()>by$W~S7Kk5O7{!~2#18?&h!?%SOeAkO&D2?} zy|q}3NB>#nBAJ+%3C4@xZ%W1wt#5teohjw{&+aJ-;{GF8iI)FK^X>xwLHN8uAHGOf z>}NsR*Ie=k58U?f+^GIC(1#;yodaFhW`_P9yyuEVpZ}Dk7{*8b&Q?Bo{^P`Gjw5V; zchB<24a2#;ixa7Tt3}R2!K8QL;#%WO0!|mij;8%lsMsbaIY7kX-odvFHyHjQ(NcVk z_ZNs0AG4)mCt0irWBUW~*jVH4k2xTm``*Qw1Nemi)lh*4%p+~X0p;TyCd`7^0UjUe zA_uzQBE!*G0lhn)Z$+~t6$&X*;5Xuz6T~(A)f;aRZjQm>lJXAUd7yRG) zD<`FMoRxUaej=uxi@_c)+!)C%58$z_3$FP3^X{Y5;(0zEzwH|%y_OUYW;8xwc`=|3JTg|Lobb`{UQ|+ux=?ehQuZp^Ae}-={zRzV-2kIN$NL-f4_)H*fBMVJ`_JxoT0;K)pZUrGUPQk| z)YCg`JthZQj>Cp~QzUkal7u{R`aIYlo;;oUj3a9YbL9?aO5tve4{jbp`LWG(O>0rv#d3}~UBC63b873C4sOt3nL?W@^`%fM;@^S;@YkML0f1l~$*ooKx`O4*@UX1Gc z`i-vNV%=lQ7x@Ff^pc%Lp7vPK2qr$_d>q-CbA9K<_l@@rOxC?nveiZ&V zkK_3xHF#qhUrr1cWBSGg?>*$!i=Mvpwj1xiUd9vOyqu5zpT}HMSY>3}_Yx6vqNnGt zzW2ruUoG-4So|#VuZ_z0?)J9ghd8buOy)QP{qypPPusn|Sc#YsuxG|L`=nX&aZfWyz;6(K7UQ}|KKsZ z`;(`MKGDGQ^R*jYel0(`A@x?oRfr{zrCk==2JT)viW(VJTk|ibJ%tE{|f*D6#aQ^+f3}pfT1B|#9 ziD7qQ#Xt1&=PpS9Rd<5E)Cbgj#kS9X41GAN_W1MlRIML8{92sL{M)B#IlesR+@HQ2 z>*+nuuP)!{@T(c(;)UmRxR&qo-IW6%Cht9D3vm-%`UddR!7cFM>WjPsN6J5w{O`@n zPBR!2^}qC3L|yosr`0=8<^@sz%LlhB*-HTEjvTt(Lj{w_D{(H7^E7ZBBk|;*V&Le7 zH`(7Hf$)TdbD@Yx1pBZbq2GOW$0LJfA2*6!0H>V_vY?40S&b3<$X3T+pBSd{IDNWc ztjB5*^!%$2c<7n|UsEUjg$Iqi79;lm;b|$4oroFnC*rJui_sn~yl!Xdqr^CLo<27f z)8cPFW@o?n?A*G({PEbYcpS~ecIs0*ha30&>;u|5H~jolKfUf;Bp=L0^4w@V7ys2` z&c*M)#RMlg@cib_HwN-*iF!dfXCZJcQHyuh(Q*3P5|p@8iD3~-UivIBAEm9+JjC<< zyO{S!ae|6}_-9_`FM9sf$x(k3@pn?D4=>GD0H+pitD3iO3 zHF<&a`>f#h%kUy6Inj~(1v@X)=hpsddg8_V@<0Dbi}$C@8&h_n%)Wx0d}yiI6|>(8 zVZ(lX@zgW@529CCxUZ8xZ-jXJ=RUd7i|d8^#k&v9;G^$f!pm$w{)qnggIBN4c}Mzo zjhqG=FTuNywFH0hKe{paizRrM=zn53oFmIec+Ug)AmYJCA^UnapGKl{`z1@i@sj<< zZ{O(k^^$!nUb5ZGRtSdVd39d<{!{nkg(y7MLj2&TzWP!@_WKUz+HtN=-%tI~hx_U5 zzwvbbt>le&Ur#4UR& z#985ezArgVRJ`ba{jnDPoqup+@-7zr4_v!8_Lif3)R`~%_0(7WzuhnDfAhwR%6#Kz zKdrs57xlLJr@z{U)IUBi+S@g98fd&If9J6lrBJvr_=`oUJ+L2-p$uh@Bpn~=jeS%5 zYE~hl;QLs}8B7`0Hew|4I+AcV`^gjK=^!S6W0`^z?3i81v;yr&Cru4h}GzRh!w&B4^ zi_}n;oS44aI_*B*Lu23X0kC8DJ2@N@p9i_B1-ADz#wVJA6of;}=L$_vkZQ4~ly4&^ z*44JiL-H1Z<|$84WO8@z;l&g9-51M{0>E`~{X(EqZi>2GoT+hbo zP0t_vaAQcXW~z&qo>%XhspfYdB5&|Y5$*YkMB1O6*yoprr;ks6`TOv)p1$Ij%OyTB z-`P6*JYR8|ubAw2k45%>>VG<|)_LMC$o|jn4eD#^J`J5jXD{Yt7Ym{n>ioNXEb%C) z;^b|#u+QQqBJAO&cD2t3$0FdKm5w^5C)NJteZMYv<#+}3^D7VN_L?P%mt8)rE|H;c zGM1wzeU!GYm-f#+==^Ij-Jko3uO0Uv$HDI{!H2cDj=vtwK**yXC(Cj%k^AqjoW?(P zVvILm$m8_ARU6mS_HRAvwB3kmKAgE%3#E%ixyf50N%`t)@`7MOFOI4A&>2UpGE^pn zkI@iJQ5LQkZ7;YU2&7oozZ)O1CV~DdYnd!D3KN}UU_=qU`#SHxAdJ_$AB6MQ9<0SR z|2=!N5glpeO&_}^kN^BZmtKpj{`{G%jzfyM>Ydk^ueO)U( z^^KL@eFB+fdy1>SrUE>hiN9B`J56q^4F6}W?W5R$fARg36g^Mqg)$t*S@vh3P!bdS zrTaX1YqJDWJMaU^sYp-5J{4zZ$e9*$g!7l~5BV>~dcC>_GE7{d@(A9$S83qJ&!_Rz zOzHm@;ec=G|L2=9LhP{ojloN2Wg6f}#vb&CRQ?1A@P=Rq$N4~q{hULFNq_bA>F_Qbg{;RtXl}7Ie+QP({Tma1752WQ^|I0hY zdJm^UY9x7z_$mk>AL;+$97#MXoCt|eq`at%!TxM+oOAW;u0smGUmec^4aKF)kV>^b z#IkRc;PS)=&tqQ+x<>FT&c@Jh{*yTU7mDSd%>IL!zWC&U@8}93GxZq=?5OQN)3YaL zfBu;s$AIo04Cv)*@^DD_FP#O%aYAA>*?LT7xgeLvZTH49LK=T6VeL4w3&Z)B-j;vQ z>-E-6-5ABI4Ty_{JL|j8gpc&+fAR}oKmsVLzTD%?stw>Hpv&8Lhf8qK+Q!;Pjgx2g zj(j3N+lGI)ujhC~*55;G9?*skkG5jC&Hl+ezPq~vU=99z2-#*^*-h0eb z%EBv2n?GF7$-}d9Mp9!Aey29?scef}l zaBttgcQ3}7xHc3YIpe5c{^N=TPfl-q`aKl%+@q%4J%xRjd`9E3^E6t(rW1@OWOhC< z6zj?MX*{3Uktle7>TbI41;HTjo;=y#@jkM$$PMJyZ{F8q#k!BNp3gp_HzZDTb%64Y z1b^aU-dMwh^5oFUewn7<{m%RM_V@6*{owBI$b{qT_1y2@h(NBS*!y}z``4pN>8&?{ zywJo$LV7~lJoWX13e>RjbPsDq*7xqtM)gqtiTchE3rEg13*Wi_{%J}-e&^}whKh!u zGC{_RZy|p!e;usi+7e_47k8mg&j_sJN95Ms;j}c5dZciNfNV%3r^|z83zx|ghx?vP z&o2kb?_H6np_ggggQ!l zGiq<|y%t%%jK<-bqRD7)l5YItP4azWgV%^?BK&bdt;E1P^z3aYmeA!D!G80eK%pIr z${vo{$FgA>M_Ue%G1A%u$}%w|FK|UYV41#}2%JNj#CPU=gIt)AQiU)8|XRyWmRHThvgV zmz)bf-TD;Iy@*v$H{l*ags1N@w;nrkq{9owCNH}29@56+GJE^MB)ou2Ay5*h&fjAD z;}}jiy`Z53yWe79(D>=;_wV2N_P5_TaVnPJ{s~~Yuh#47E4cisg=7C7@On)8hjtdO zCLd&vp&)OMeA!DPY($^zW5LU>Pk&^f{K!CocY@d>CvwH79~mg`9C_?QjveIQdC2Fl3^6vr}BaKODRmT^V`yNNKHJo)dA;3d}{ zyq6=)Mkh!Aw-4>SCc^BKBYf-uV)o0P54QNHnDn!bBzsDJ1FJSHZ`q;g4`ySo_l3$`lXeZ}xky7klT zGwiKNy1i3*(Q8hle>j|5gFesIadA$)yK#Gpz5C<>EA{~$eFZt4$T8jf^sa%5pFICs zTo2(RQIJ*(7qGMPC(nPvAQ*t3=>H3#i-Ax3ck$=BLSb9%dQ=zxvSuIhm4{f{pK~kLYCPBl?+b zEk5xsM{xpcGJ3`WcHXn{`?^1YNU=4a$@B`<7Le8}_Deq~bY4@G94l$pwI z-Yaxw)BZ-R=8|I7(CW3hAz2+;WYSSf?*;AMW+Bx2NvYQ6TDzQod2h?i?dChGZLNk~ z(sprLs86PCeDa3)r&ZpR^QOHa9mrIZM!7fcr!77uE92#uR^5D7$yR%_L~-pj>%By? zSB~oSlC!j(lHsPuMS(Snsi=`iWewXgZL28?`Asw7Gu33upBN55pS5+nWQ@wi0&f=w z%|U&=F1Gb{B4i3yd0^JJ=`@=vDG|j>jmXGk#FV-fs?)7(XTqdE9B9>Yx!uSz^97eL z;xj)P_KQrpT%Ge}chu|I3w9v)i^XcqY*fmv`fMs#9a!=nQ;+(wJF7BrzSYRon~$O!v}hhM5E<_1Zfr z*Ro8H5)zAWz~%x&klnfGiVeCh-R=ilXF0#MVgsx|xMe-Jx!akk>AGAl4ed>OG@|=v zPqjT}vL0~~-x>$Zww>W4f3PeT{h>IsII3$!d}+<4F_NV-x98%#HAse~q+HzwUVT^0 zHLNVBjOzM|HC5c4ZEVXG)BWPO zK6WgDpEQa|&s3vq(co?0S#>dwYe$?{8{JaQaHnZHqH9*V!$t*4F=vIKHQO?3GvK&v zcS0}cp~z6V<}MxRI-5%@^1aGdtySn;cBa(p%YJb(H~n%x$a##{t=GB0mLq3mR0F%! z*+`Kr)C)~s-f-)IKjN%n*hS`_2AVhPH1e`1WumwX4=Z&6p{7 zu!^FbAIy2);pHv24jRjON9`?^+eV5L!b&;Jb5^;-(4}R9?Jh!AWvC$|uXZA{tf8N+ zM&0DXMm4mD$vW0-({;mXxN>XJxK{S%{4A@iluVauho!P*jb^RJHWe+cS&}o7>R6v> zt#v|Q?>e?HG0oDdU7snlz*=VwIgzsL&ZMLViD2tg3iVBs>y3)3%6d>;hOOkhme8$S z*Ju(z$QGk&tH3#-)7D)l=Ix3rm+ z(McxRwdo5PXVD&F+VCud+f+{&ZIOveYh3gRB{t=Zm~@&?II0+pS#8}JF>ZVVypONDjMwMA#@drYt2Ny>aaN{&ZvZf%0ovw7N+Cny!UL*EP1jBT!x;MR#t!P z=!JfhnogNN+u4dJHOS!$kTK4Oy6iru)oZ3*!TYsD3hV!K9Sf#eA6%0-($aBZ6 z^{Uy$SaDm;x|4&A;3i5zX3bglPE}HVCYxP_%i6|(^kk*b+OhqbKa83=KP5WjO}miK zH=2W0ppTucDhJkBr>IO$FD$kTdoZe08iSFAORC!HN?fJ5m1f-(n_Vh$CO4iA)%jrD z9Hd+}5UNljwa}TTM{`T?d}oq#jmezPNP!Z`0i`gxZJXY(!lF9Ws+2cv=$6nf=C&SZ z<(o}m(x$=|of}V5yp_o+bt^Tnx;~>%N{r70i;dK6>RGDGPR52X8I82H-5jlqMzOcH z=Y0obp$99w*>o%25M-s-T0z*_WhGZtQ@pA`BDgck+U<7Km~I-wL8eDZ385`na;lTG zJwq|{zM9-_TVt1|`}IM6A@I}IN>u16ZOXLG&|zgMO<^WqAq zjlq;rb#?EX3|dS z&O@KcD0(ts&3rQ{wzPBr*4%ElIcn7M8F9Xot(n=@tHT8JF_(09wbGK&q=d>Z>ywH% zDHZZ&L!VJKCTEJ9bQ>hUQKnqkm!^fC-e0FQu2a?B3YRm@L?SU0U7E`dtJ|<;mMXf! z^PLWjzSL`p1fK~q&Q|o(8H!SJlv~-cD|-hv$0Ob}lgT8yu0Z>mn#m>DTB49d%es;3oR>{?l>to1u{ zubMA3lAN^Zgrdn)#V~7WFn{I#Vm7EYwEC)2=&3`OPE++=SvRAGQ5u%FZBLjEM2j=*=5Vb? z5?rCM4)+bwKr zR_L|+Gk@X?)ooU-EjMlOi=GVolSykQWwf2|+DupM&Ulb%cb($fiBVb}=~bgj^OLq( z;$03bUf4*rjn^$PVvg$W%FFs_H*43iiz*h)A)Dnl`F6M4E`c2RIRw*Ao6@O_A2lKy zLI-IiRk}E%%L$oZO(`m*=fSjTsEcYb(Oss8c9QEW-Ks8DX@4@6f?AE6<#ZSg9fvM1 zuts!_5kVViD{2&HX42_njXJ5?tWa2N#6Gd%^DQ(YwdNipW1j4>H=Jj3!DiVlfnRl+ z%h$)$48}OK94sa^iplt?R-#+ebJN7QQ*}qhdPxpaazu4?m1fOwDh8&T)YD{K>rU5B z@sL7dsh4>^@-o!4;)|11V+SK}tUI!6 z)VrgtrU`Aw3cGFBo`Z+_P8h0lL7ODufsyR7(#RA*)}wZD*-I-;UFBM-j+5}av_3PN zvv##obku5XxfV5+?~l09H`Ly|!dt_2ueMC{9nf}^Y!OkrYvh-DVHFji8|6(}=8d6~ z5Su%1<@!r*$%b}1%C9LoJK4>7=%l%=K>#{t7piNfFKNymCb+C#A5@51PEov`->lj~ zry6x!+Sv>eq)i)k4=viwL=rl@zv1M%F)}(sLDn|)DHM1xUG3&=3A?$pZnnTzE0A`s}CnN({`X71OaCAGwGH7_?xJ*u|N4y?Y;)%)_q43l;}IqMWGNZ(>XaVM_i z>3S3uQ!OJ(sHs#6`qCRfos2B5-(W;D8*FD;HJP9yqC1lr*&VN{iKSO9i79I%=(*I^ zs@hYH#-55@aaO4TIp5%i$(+TweOuW}J zilmg00~P1^oWiZT+H57HgF?#6Rd&%NlaSW41Qxjxxh%6C2J?YorWU!VvD4Qzh{RK%#*%5<6Oc2z}kq;_vS=wS~Y zu3C)JOAbuYsO9(#A1H}rQXZ`*9%nYS#dB&|H)uXD^!wEmWb-ClYB>friv=#B zw9`D7n^VhRqZg`^l{P470cRGqvR8#CiuGIcmg=rLCCLawQ>}`QROMQY>N?(>z_T0* zs@RZsJ$kWBt73D&L~dhJX8UFA_t(jO3!EeC!XRI%`n_(cJ)q@*JY1%RqFc24OwJW5 zj;EIU(zMS)jm?T^Aq`0)I<-wX)gWuTUw0#AQMNr-XW`UO1!_=Tu7$~DCnOz*RzlI8 z&2sBuBboMcMsZNCNlpt?vaOA~D@7O#bIo?Xwy8}Np)zy)CS4v?w7RWePZT6p{qaa> zDBh$|(I$-!t8HM{lrkADpuFkYhHi>R$BbrMv9s8$OQk{~-z&Fk zF3brhDM%gIx2c-89JyQv`a1<9Gqh`tP9+jm`0se^`&en3&I+9*G*Nd7j%u(hyR`6| zQ6ln;5pB8&z0X&(ia(@iy25)?G~X=4tiy+O6+0vkc7)I^+FLoSnPvu?!!4nE72*%7 zZIkAQja7C?Tv&y|mfFyUAEvRJj8u#xX*36Bi`WZE*z_f$=ecHBYmFJsfZmuxdF%?X zPwZ54JM*U1VFxBYt4xV+L@|eyN+og;l`E$U-EO#AB~*(|1k_f_W^>DQqFW*kuR)#I z@ctwt4Ju2q%C^m6Ru!2Bwn(cK`ruYFIfm0Iz22kEutdR!oL&|)+=8=MYH1DoDZVzW z%`;Q8ONGm|rYhB7K^yaW(4X^jqiy=B-Fz*UGJR@MFEROX)CoK%T1yiuJI{6;YTrd|piShh0O5DvsORQ`76inU>qtCY36)`B{5G*u0mu#3G} zvJb_Si4R;)QACn$&R77Q;&As&=luok{g_#!aQB zaPcyu2AqEx>^ZE;z`@Q$UTuZk%%h>iw>hY(tX1E&OSNrUf>PWKiC@9c@S7QgAux=v z1!-o3X-kV37zHe3byHi1B|0~pq{U=?#PpqhuUq7+Ek~Yam7&74(@d^8>8Vt9*XcuC zRNY{m-~`^)WqUkPtzmwVFQ<9k)i~@x7n@lpSGI)Foe zjHX5(;!l%JrbBwfnz}Hh5*?=}@scwt6uMrvmrJWcub*@n%E|Iveb;Z$lR?ZK0E|GsY4oGSf)ftCY^MzF3Wt(_A=Xc%70Pkf%eNXtv5O8??wiro4sF z4BSLtZew%ej@M2RTRO1x(2R($pfm9%vq@#?SKYCOy|Tdyb$i#Su)DzB7R}L=6Oypb zIJVEK#<;EJ#yBH3T=?~1T@0g572bwMkYJa@2b+d9Fo0Ngr#sW=HfhmMh_K*0t2v_#P1|i+I-Oax zvP0kHqjtiwIbo`>_&sfzOMwxm&7aUl!Yk zdM)Qm2?jRb0uJQWXsX%637b(BWsNPq5=MH8%B~}~6zrHPwT#rJ-b+?$IZ92mYxB0? zIN1ct%SJXq7rJu8nAiAC!fI1dArYiFW&8iL_a;BHV_AM!x7saP&jO^j0XK}6j8EMy zb!IX1ah}?0L5z7~kij`9w-O8v5u9fRNkI$mBsiDpl~)36=nwEe;9(=cfB_ru#()<# zV8}3R7}mmTAIA56Z>rZ-nUyIm+?7@DJ(6*Gd53e)J<~nE+Bb<>VZoo{^}B2|j&t1G zCq}-s^ou^b<)eM=Ctp{(D35Cw)TeU;`>Au5PI!1i4|lEsK}|(`O>$K1l3zMxlVa|1 ze-l)~^^T@f>|53FNZfV27Mx+1wFI6HOR+Z@fzfl~aw@cpq2mR&t+v!Q?1VeQclY1| z%cxY=dn7pzAQTCv<4WTe-7tuD*tEQovTGMT<84Lf6uUFPKd1H*Av-d6T+Ah(ZhI<{ zc{(Hg+*@zAi8EiXlv72!QR8)UX4dmoFLj4WY2a{ z+}H#WX$iKO><9-{QRc(4zE|{-=mbYH^;?L*%CZUPWDx7lD|r>`#zdv)vXLRz%F8?UbNSzc(Rw$DCmfwQJoVE;}QfM z?(4q3tU#=+#|zJJdIxvCw}IWo1G^+cm|*8gt#iHJxIqwjLa ztc<5T(AM?DQLS?6up7LbA!;IPP*h1a^#+*_rP&%v(A#aO+sLkNZke2N%q8lMSwSKy-_X*q&>X z3#A5ST)wV=4sJ_-6VqpNcC8GCiX|{nTqh~(FzM@g*P-KF4g&Xt+3OjI&_S%M6mJdU zHLnJJ3?>Uf0C7GL9=_RFT&%VEO-LrYuvrdQYc*4rV32A;sB;HQo7gW91?sBP&0<#W zqnrmr!byf2z?Ofq3YA4#ll5D3Nfv{6+fHUf-ZkS(OUrlaeDr`PN ziiK{GHfQcvuru_o6iQ7r55Ty!7Li**1t&2={M{8ndwWqF=$zT@#GX*du+sRzL@L%X zlY)?Lm~B#<@@U@Am+Yb<@|9Z7z}6Ch0>Wird|b{IF@?d=dl_c(zM`n@a+5B2w9Dw& zzet`$`j2@I>~+k`3ihzMg8qXV;EXE`L^vP7Pjdq$w^&U&U41ce+Z!l1C?W#<5De~h zu(`vtNrtf`9j`ox5bfjodRizsChTX2WMEv`YE2+$XJxjd4PFt@Z}ucV1mO1~#mS$x z1OE;9=kfhj(Ki&&z;gD5xu@kIr4S&32p|K)Lf#)(y@quMK?sMAO-wI|rOn8S92j93 zkO`XOV-C^$l&(3Z~wfqKT)}ftTRtW|sJ@BPm zRwT~{7QKIrCvmJCrs+T@$%+Up*_s)8TI`ihnS+$ylP*eDb~xwq#|CuMwiD!tMl9f?!iEQFZIb1{7Ul*JzZ5Sjn;t~;aOOJw9_|i$ z;Dd2*LpRJ>8r1&${cW2Scu?;ZsQKIF9Atr5gFS09vx5m&j{0J6CL;KdL>ZjA5c5AV5At-;-_LCi_uXE3m>z3Ro|(UieZLGlc`E7b-SNssWR zz036x@EU=d;{t>4oz}t=U-nxce5QljDq9qcl;)wQM2Bgs)-r`XQcwOgtb`>vg7Ch( zvK~VtW5w^{!2vr9;oN#2Sxs;e7b*#RJJ0vPrCZ*{n1G{lW6z&JukJ&A1q|5b z?+xE&cO15xZWoj##N2>+GBJXkIpD|2y?9yZ?Rjo{IFJh-$qemAtc*$4VoXfTmIn}H4R_OQr=M>n#to_ZzymdO+@{GHDdGdLLNLiE zHpx_xnlNoFi#{yMb}>k$Wk_p~m=!a-5XF_+;&0 z7_Mpc!V+|y+pkonJgP)}7wqetnwG$1o9&v2m|ZakJHTdrujB+|84DSaGf`iI%h`SS z9U7H~K#_t`&jptndpgi*3d`p+8%0viv5vD{D#woIMMNoG%F`GK|`B0Ce z=Ca>O?Wtt+Hd{m;?F$EeA*-wuMy_JT>a zAHX+Xj&3mN7{t;whDpO2cQ+zIPq&TFL`w#d!;2KEhqD`QiK|7Ko`mhC8AJuO3BKix zHMqbdJ-lA{nNNh^1&1%grO`RqX+9r4 z5U-MpDb(~?j4(n}WX}y`B zYB2a+^ALhX686X=q;sv8_R^W!w70-Lk)$-Ppi=D`?pncS0~kb8xs2xnL~*jnlD$Vt zfy5!9rSwhWww#lPN_E0{i0K2@M(OxI)_AwBO0FY^i5Jyh3M=Du5^oosoE?X`rFMNR z&j@bx^s6~Qh#h}6_3_v+9eaQc_b5+tn&Xw&-fhi;E3f*qIhlR-^J@t)m!4DxEysKI zWmf6hJt>+ND=zUiajnr_a--^13o_PLVz73MQkO<^?bzk6W*PmO@6;GPxI4e| z=W#JtQiz$@=@{5@9lI#@PKs5#L?tFsKOF5GN9Im(QOUK5>(o}aMn}K->@__XD>N+6 zBU&RJb{TcYub8^7(NP+e&RN>9rqAxp+c?BH>l_XYYbJX_@U}X!aF--*462%*3v%S>c3b%jU35F5sam zcKjgZclKhY$8mEgPxsr+G?bZeb`hVZTW{j~OR>p1?|euZB(NecFmbo*i6)YLwWG#HzkvJ#sfzTi1~IiR z_-<*R5h@*GXYYjq@=@Ikl7H?%1{y#HY7ahfT9ac>Ef~p1&RZW+{fMwJI@ob`$_lo= zAoLbUtK;7;Ia49uMm@^|zTH{pR=8-YQ7u8>6aLMBME6{LtdOikj=FNdn|2;e<>N{ijfdG z6RwJVe!I*^!dI!7Nr*KGY}|`Fsk-SMGhc~n5AMf>b;9%Oa+NX?__W9kHD7{#*}UZR zdK2U_gi9|Zk3hBoh7#Cjv8xVwH8)R^37;+(SMY5yyA>H@my^8S$c4-+CGE<0&0MR+ zoY+qOS*H{ZdpiM%eKYvMrWWH1vKEh-F^+fi=z?9cx!@4wkH?hSC<3l;#LV)SsIg!V zXwriz?utRg)tSS^vf7#(#rlKKkT%q{sitETn1jL+B5D7WkM zuyC2<9YW&FVridj;&jhcV~6)4tXK2y?qVB9BZ51xC?!?yZH@t}M9<;6tF-bgseP#2 zVVyvH@ntLYTYXs`%c?xxX7jZQ=J(WwSaL*AVmDSS%$>{EG-*nv1^>RPWM{TPg5xZv zbwi!a!(%hDITsa&o;?hb(_5=LzH%DgVWoO0*J5~69J(?gGI1BI_BaIrzzccf1vHyQ zoSVfv-%uKuyK#dQmI<-yiN4jRSnFk^dG)pv&XkZH4=Gv!gT&UNAPW#?z4B0qeYExc z9@M7I$=%$*z~wM0gx#Bg7}S>rT^WHKtYhT9Trr;9JI3O|h%U~DHLFQ$3F$`gwJq+2 zp^|#%mAg~P-%U|y7?d-4^t@?S2pTa+S%FLu@5(?$lDJ|lS+sMOxA9TdZ*k_~!CJ~Z zl{~R!&XJtog3@0Wb3AbEJ!z!DRht<~OyM-d=vl}N(Y)hY*q8zW$7)cWD|kIjf)rx> zVFPJwCHA5_KHs8u5Q_QDEaEwZ#(2Mk<<={jTDm!I?+=EuZ{SaRT58t|p%y^8@-;!T zcCjC_uJCXdqK~!=#|u`6rD_xHh7GHq>~>@qICG_r-I15~bYGjWz@n1}Avvdho4TuZ zXNIvc&lOWum3g?{5~F}z2lRZ73k(~tpkfh>TI>lk+J`G~A={}J*su+vS-L9vBb{7% z4?Xg8(1{=(VlYH?27FNUYPHDjlq%-i&_O?1)Pza+rXY|Eia7S){ zVMdWn4ABar1`RFu`^y&Jo~2F7hzH}oYG$W6PbXPf=s}n8&FbdMc_(3%(O2gwD)neZ z*m@1tm91&Vw>7?8>9M~A2cx}5RMT$dddZ&i#XO|Wm!i|=XRhhT%EWS)ba+cuz8iOsf6=Zi4)Fq9ou88 zEe|pn_>6-tTo%?kEl#*cCd9%-0u>n9L01Zx!=0X=n(U0;_&&LDsx;pF*^UJ1AN5XIEBA}9kMrYR+ zEwuA(-<|Q|fRb=-XxQGI`CN8TD?aVOnVNU9a*$c^k_Q)5kg&Fa;QRG*Hy?bI%JuuT z1>z$n+wIWGI2xJ}u}ynY=w+TAJq7mcVm_Tc^MqDvp=%-z^I)TQHGw1NT5 z&#~U~AYOr+mpc|mIzz90orvL%u?Q-drg?7c%v)$reJQuv609z?w00r-#~&rDK<9Xl z@=+2IwcJnTz6gUWRPpBQ@5$Dn;LC1i8m7-?<&WqQoScaKMtqH zxd_D6T~^f~&WK^r$fkHkbqB&kSK8t+cKbn^_NAd0U4I8b$*L7C>CHY=??;zxie<&0 zJ+Swf^>RPSig_QnLARVQ45P`jJENd>J@5qKKG6^ z6%wboJrvRW4ku&8jd2DK*A9f1@D_>Loy$CFC$kXubH=JV5^xrY%QNWHF>{zNLC$KG zj0RWDEm%|NZd|OfjU~ysY;xl{2qQR3c!1+AJ6znCnTFX~t+|X9`eS<(_k9P3tV@Iu z(tXU*PABXMc^YZT)j=#zIIx|88DCy^i#M{_gnL* z(|b4EZ}5s;c4~Iv_7FXfsx-JvJv8THT$u~Eogz-M-mI9#2X&YqL_KkGII6W6AWn#i zF;xW9U`u8F5%$A`4>q1hFV{357g9f7hyK*FSUk!<( zVriydi5?-_3VyOp#XpVBl_s&&y=psC(eDJ!Fyb!Ww@~*I(@udqV|%|eIQw*iBaz!x z2j>a+rHMx_8xK-}R02;&=(5!?bBytfzXd0Vq9e~Mycx~~d!BXRX1_S7Q*Tu`kCjNY z7-Spf0LNEaY^JlAmtJxgX$oSgr3nQgmD!BSixZOMLqxSJ49}ESHPeJ@gOCDDX3;VkC~32H;v4wfqZFME;|me0 zXdl4I0ywr^v~4`Hv6RCZK;U{goGPs=kv!YVJe~17e1C9ON3c$;mNYR#sRP3KQ62PB ztl&)+M6LXRrs-k|6`iXagC}kiQ4Gfgr;T&!(H_+`K9L`Zp)@yfvpryIJi$Uqs zK=)K^>!2>X~|Nd_9`qpF4WC_(({d7b_mVjjCzG= zLXhPRt#N4~pKoc{DVM%txpYxoj(ueLdU|W%l)0cb+MMYRQija4yY5v;miN}K=$qVL zV$}_a=yF_+6-6xWdkDo{aTyo#pNfK_NPoGpnG(T7$RwQwL4~>*TuUSR3OboFa4AJb4bzQgyn4|8lolAJjU7 zL zM!Rl2z}WB37k#p&2wvGc3Pc0KtljMq{4A$-yPnxXNpHrr*QQ|g0KR`HRcB9}uNL_C zMs`g5^1|~6=HBl4MSj8^x0ii~J83Q5gRQn6);r=_dSO%vy(8Y5Em&{%gocwVu^GH_ zSdnf6fw+DZ5~5{LU^lv``#rIQ1m-~-fZW;KLkP|?$@`3`XK+HM#``oAWe^?tD+*qu z^W8h&=HX(u%}W*(c|BgD8~%p(m-fz(?%kkPF*w~ZjXgTru@p>fqm?VK+Lui~14Utn zFD$Xx+LzO!zsw3xTpkzALI(F_?D;OmlNCm2)QKNiYCRy)h27R;6Snd~TZ~}8iPJ(? z!3Z+f$~EYRy%iBb6>iOnUt{xgyMV)!?NM0XD-vvsQFg!g7b@q8GorYc?aD?I`nsC- zcgVjG$4UbpI(3O=V}ld<8E>}I<|OirL=;D7mF`)*T=2QHmD27UdV!Cr2*gv}=e=O3 z6mr)<=m1&h?0^VuOmfnxVr4pC2JvQrY#~Zg<^vT>>udC2(X1EF$W!RTnsSe_!3OTR zKQ-dI%MnnQG5WZ?_!khrWQsq-A&$;6u}g& zlFMXs3X>fK)oEjKyUmC7Lq}b^mDGuBJJOD_Rs!jM$a_SxgACdciz_?mTzQ%nCP%JqziMVQ&ZtCurL>#Jf-p z94|FPRQ9@HhH?!@8QfaCUN@cz9=BD!hpZg?cGtm~8RbrMb0XtO<|t*ves*&QXJhYl zi;qQ!uH+gBrizXm(&*F+cRBb+9B<$h&r08)mtY4qRIO*1*}Oy3vw5|OqgW#YVvYro z_C3Y4r_H%R#0CQLLQCM6#Fd1222NUs9C4oPX`|1maDwHOM<81-ol{18VCuVWF#|zE zgs|OFL-vqzVekYABpXX{Btj|~f?Xc;a5FeOqz|a@wY(%-A81$As~9=8p6ub zc2cpIVDv6I+o9V%2c~Ep11+aJ#w+s{#JW5OCvi~SMI&vJu_kA84~}nhO2p4f^z4%x z>mZ&%8Wr2c4ruF2-yqEl<;418nvk@Ki%9ntkd3C+azEs351YldWHq4 zrkCwzk&jv~w3>aNC*+#hLZsx1H88%Ojn)d>e(b_1OBLLFOMQDD!n^8SHq4SC$_izd z6}V5ACAeNYIM*1<1Ch#l*U#iTr-;Xyx|oF!aZ>Z$SX!x9YXN@l*Ih^EQc(2ryrhN7 z<^1^`(yA!-PO8c>LKMH%Lz|*JI@#678Q6$ax#edWlGw?b^)5%pY}n9NBNd!Yc{QUz z`QvvBXWTmYN*E5zVec3=$<5PBAIxwZsBL_@C$ltmqRyV>5V}Pe_`E@5YlAOaU)rb( zdYHp4OUy4uzV>c0jf>g#&Kol3o!i@4>ZPVfN(@(8IKI2^7HxG^hvs})HtTU6>JA=S zi@Jv+kuzyGt|>kx8RoJXhuLveZLfm|ycD)$XODPFc}?o_W_YwMHQt`uL3A&2IMoXf z-HdzND_F#$-q}e|IVb3~5SZgIrS5083hh25D zK=^F6(v7mv&q+tKs~d5+HyawM6$1_=jeA2tP6B@_f`i?I!P4^T`&eW@!al z7SyFR>Ni{+_8gXEWWMR@t6SS&>}Wp|m;+Z2~53uR$SJ5rW7|h}(kWapig+XS#j31pJ|+`b#bi_4EVW0h^?I3VAO`|1Tx>{wrLCQ!AkE_%pY6RG2V1sDHaA28 z<#U6}OGm%2LBAWK3*}>)*5rG;uu2E^Y7iE?P$7O6G{o(Tx6 zq^w4SIFg`@n)P{A2vWsVyV z9$pIu1YbCUtOzUbkS60Py3X!p5Xz@T0Q#o1Bv1563-=zVE~Spag(*mbz52wQD}AZG z)hL9kUM1KMB8G9&sH#CDz0WzhJO-mXtF8;80OS9ntK1DL%%Z~SNk5{8{uD6GDD$#|Xj>4_)R-4=LA{BVz28)aCo3wydCCUTRTR6I1A(bq*-eqUlFnItRO&a(W#pb zBDgRg1+Lg0uFc~S;bz%+c{nXjcXLP#eL>z*I0O&b2nr)y!iX%iDsZ>!=CF=$k-LF; zoh9>gDIo=xhh-M7_~16_52;~|(YemTHGharN~lEv&OL2)Qd@*=f|gN9?ZK>KVGwz7 znhVs5xXMVgHc@25%9-9J*cj;==mJowm+px=j7kJ`hC7(Cf@t ztr|lFR!*Kb_z_|&#c?*r*b@i2a!e=BPKYoS>}sQ9M{SI>v{(9gZMZ|P4(Z{L5v9Y2)^#!7;55?NH-*Fb*){nCmUZPR(rw`p*sgN1%R74}bg(4(d~Zba4--WgQadJEXT01XVXA zWlzt~+wGq~+QR?jH-7`5ui!sOHTVRnE&p+S`5+0PAN@^u7XAM8*B?xO{Vx3V<$v_u z7t!B>i+>XRZTR~ie^CDR+mHbCFa7Cvx4-_6zWd_#@599t{P}(O^M~-~Z~y6c-~JUy zqFJ=fH!dVQY`)w7h4%JE^jD#l+n2ll`hDuo^}E!apQQdIp{Vm=h12_QruTm@dd>HF z``K&W(2vn$qCfuhnF)K%~1H?efw`rNJrmI_5F)CkNRHWWZu{J0gT#zs(qY= z8&J34!6O~;grzk>Yd!ZAZJcUCE$o~sbS{bi20%Zban+_Wf$vO-8Ubt!@VF*$k_XDc z!G0jr;(p=vS`;ret`R%Jq2r^7wf)&(Dr)$_f=d`b#^yLkwegkh06AoXScyFJcHaW!7`4!YPEgq;a1%TcOhi_U2ujqH5 zqL6+yRq}Lq05b&2LN4EDG`e@0T%S_->G5?3Kwe;x!jc6*Jb)2O;BspEn+Y88xi2p- zPg!K)Ff)MLJQWaJoH{m6Fe-Jib!GJi~ zw9KDB^#?Udb z`VFw6SMb$8{0iy@)-m-O;CujoFMlmRb#dz1^Gomf$Lgn<%=c^K+n=gNAm9J&lO^^! zz_ZVkS^N}~^+At*n)-fle_ppZ==I!p zTLrNKAg><3zFWi-uFlU16i={yP67k$|L;Vy?Pejd^HRPA=voLq@0m06% zUq|If)bOs)5&BFTU;kjz_?Q3pXZrWAh&1p|N#pHLPa2>5#=Bv9kj8)TQ<27B_}$<6 zjfZ*Q_oB~|#$TU=@`F>?6FUN^(R$L;Cw1fo;DoQU|BDN~Yk4F-Pw@T+Pw>C}cR$n0 zk0;pq;cFlN%*uZ^^bZCyVH186J=n$jY5v#nrFTR2nC$aUHQB%Ke`Xlp^8w2N?RVRJ zpvJwZtFI92)9&*Tj_kwMGd+E_6xA=LqWY^hzZiM_p;Av21Qk5x1st$_RT7IT2NP2Y z+$eN!Z(z5Ybj6=jRNrlKZ=W>y`a8|5P`^Ea117uQK00W&+ih;9z zU<#as!(=kb{p@ECAa6iM2OVT`1x#=FVC08PAd~n2n&YRM$-@ph6}^K$8TH5S=lrz+4{L$^lTXU~_WtyBe`ff8Ik|t(_4h(;^uL2s>~-Klt^z0D z7t#OqbI+oG`N1PA{5JvjD=h%D>bg9q^c!h3y|I?aTxo`jdT z#V}nxeomS+2a8wh-Tszo_}etSCFsXzJZ25SNC@MLzmFN;GnDQFnf|46;Cs+SfNuY| z!uJUE&*lCUS^>>|zJU>fuRZ4dQU8PMP3{#Shi5^1qK?VaG5zw!`sP6`UjexLR05#g zUmw85^va)r%jjcr`T}s`0ZaawzJMnF1baJ;O94ecYUi6RJedY?@V_X&Dqt9%7QP$8 z7(9!&&t8^^jXzuOCdvTG`c3wHTf^JT1V9ML=MO$FSH2gzFQE35kGTHgwdj{qxnExB zeZ|nMB!|=Lj_ZH%HTBgK@zvA&x+anfC;s+4`0svr9`_`@K+9gL`upLZK32kO8)u;E zJ@*>cmy=xI7Gc(X@iNG7wWq%~jq@~~2vqa4?U(N#Jbru`{7034FgeWpKb};GSK9d; zy*%bLgZ+{YC?fhVwzkNLX0>1neINH8>r~drOWBYhs(yy<+g%Ypr z26pgh^K*$mcvaUjaG`;bXKGaOJT<_B9^W4t09y24#{|aXrPI*c*N4+UJ(qoX_w|S8 z(i7!q`}{?R{?N@bdH*m4?qe7yfxNgPDbOca-ctn%E}kL8@-|M0EXk54au`26Q;Q{6BQo39^e zn7_Q*cO&_L3IC{K7=agm=(BM3eOme1(fmcV{;<|U^`DG6u%BtU+@Bs>Uy-Ve|+zYKLYmju6|xLCfG~mk z7hk@Jfxi|yel2vo+c#Z{L}zUJd9U8>*te_-O?5^z#2Xz5L~F_FufS zQvUOodfH3$Z^0WMn{A@M_U=*i@4)3`$axpm{qMnpZ~tOFMN6jNMZfoQ=YfOjyXbGg zo%P@U&Tst2_gzeH{yta}FcKpHP#B*;t)8Bkw**I$41sh0*BJ5iHQZA;OS2RO_xRHj z{g%KXy)zE@Fz`DlO2k_ZgDm0{%RUz%-r@vJ6BtWA-*azqk{~b!68=9b#NRSJLsD>f z@VNr`0u2=~I8HnlVBeA)4-Md7?&-HYMGy=|yxfyeo**D`!qg&Y!Ph*rfWdeMr{Mwl zGMl| zpr5{mE>(F81)=XHj`WYQ80Dr{a5+H|6BF9Sw{97P@2Bi0wFEDR8 z9D^}=s1xu->Mih6j>3saq=S1BMCnPCVISq81^8PIJ_tA$Qo->50#S@Wa2z#-Jd8@bh>IG73A1K2U(5LHrZWg>cb3i>U`PtTVe!LkI1D$`>Y2jS^a7=xW>l5(b}G|fyR{d5U>EcH?a zMZq@v_y+82{Io$#1wh$<*=OMOiA(%SYvBLqBl7*JlVCswnf3wM>L4Kv z!28qxpV)%_iWfpmh4UOA^Ii16{O$)y0KWZe8HAeD-%OE%*9s2wd*6Ng+X(&HTFn}8U z=F);w9gW&zfFrQq_`UD8jgPuFr+|C%8yu&)HS|s6_YDgD2($0L z{hNPh^>Bx;$M)-M zJ|$5&s`_oIU*QUp{0PEwJr~aK?+iswdkHQC$x>G4M$s;Wjd{dsuuroiz%|}4YaY9- zlW@DS6E}lABLp=bqEjml_p7r}Fn1#|0M^%hSoVP7HjfU_uQIoO-qEUT7$n1 zOMv7|3jk9Tgv!>F<;hT}Od>sin%C)oB)PyPx9WPfozJhA`99C*+xQ>=fT*t7(OHO% zW-$D6-QX)osT?7}fK)PHY)m-=z-n(_0fCIOY3ryAy8k?rv4i1VizzyB(de zNV<%fn-K4|s+ZZ_4p6?WeJ11MxxSHX*8-X{$g{nmESku)+UUpSZta{23n|U=-0p7RGS{!GQ>-kv$$qw+t(8zZl z>fwYqt|l0JgxuEqQ`|AqR@oEOp`Wc3UB?{W5yt{!&xDOY=Ea=a^-&Mm!lpVf$2hE5 zGzuYOZ7cDBLq@el0tk*_F6s3~bdF}3Okm!Pxkc{VS-FU|%izRr0mEySEMXk95Qp@| z8)V)?!qqjvup<)WBZaIkytt6sF1P^VZl+?%0U+U%g^`?1;Rss79k)#*iS0Gyp|KjW z&+oRtEz;3$cA8Ek24J1_=V-}a@KFvdez zNWRV^K0a;&NPkQZl_ZUT0AmBP4Zp990c~5~2Pkzks$JJVqkw1%IJ(<@+hl;^Btvd_ zJ}QrKBA3CD?*n?ttRu+Q4QbFF-o8_!Fw>KxW?pXhtpeZM-_Ah?h*IN`LpC!6KuQ7u zvb&qBuxDjW(}=(*6ARx2@tsz({ZQv;IlBWk%9zP)#xMYNHj4LH9A&LWWZ#E0f8+*0 zDfIcBn)gn#jbIXL$PQ2WK63A?DofWzjye8rrOZ|VnY; zV2~jO@^B&-QScY56^_P3*ml(_Bs{+{rR-9h3&>hr(1<2CfL{wz>X862Go0m9O)ZwO zD{sOFTD(YX<}+dD2Z3QseU~gPUy1-{W%mS;#)1XdS~tij2XO4b)R6$7YZ%T2i+4Zb z(l*_N0U+Vg2q609`>SXkR=AH{;roEOyIraP)pe=KBW$=LvXb}NnCE8~WaMF7FKA9$ zdA_fjfP{^ALJ-w8U?CmNT%XYCZ4Z#Yt#KGs7nd4-v&qtB(2)Rl#Q0+f_?D1Glm}|* z2h*}(RVmjq0RL%M+6F+19MG%N#UTkX5i)S-CEk-bg`h%#}ouXhd^1VEY>7ZV_!oGp?uU96(nZBgIq>M#&;G8Cqs0O(bL zae$h5Y3AGnb}89%hA|dQI1RXla=X~bDAiwBSP#hxjjpwMST6w83abGN&ZPlZx2Nc2 zu(!zt&<(SRQgBzN3<6Lf*PL%15uWV=+^LeSvOTy_AQcIKJ1w?dS6!IIgoJ{MzTGe; z05Tmxhq3)Y-mJp37HQp)He#A;c6*jdz~(_N$D9OeC;_JJ?&MwG6lhT4o|LIK6OcHs zt2-K47RM`^M#9`)ys^I}Sq*s-rQ+OK9OZfZIEzE$u%FkJ#Ee36aEGby1Js=Y0#nZR z+lv?8uQntm-Cmn)4rueyYy^ZU;ZSAqGAW6RkO?h-wGZsAr?A^mJ6TsOuDhAJ0CY$g zmrJP+10eXVw*kPT`<1-qh5)t0>h9e4p3Wfw;hGB{m1G>-(8RGi6z| zQdyQ)-?u`(NGr>$TfjNIi=-Jtssk{8zi zQ388Gzc~OjGo;W3+-^3Tp4+0iT~0&^h%pU7!>UOLjm1}bG)fb3u|0q`032q=^I8i0yDr_$sa^kc|YdO5O3n3J=BcCbFjV?4}2 z0=jbkxRzwuy$DyxqlPi(=KaOXu}uc{097&<3I&-+fkpO= z07RK`Ah(eBBcLzq7T`uy6~2OXJpy2OUA6fPGM_G&EkNepE7;mp0JqwDC=W>9xOqNH z))tU$SoQ!QZS2*8bb1JKZd&4Ej&_~vK;y-I)L^-8fEE@k$1O!6jf|=jTybBM? zVH5C&W7Vn1!i_Z)V`tZ6dADvg?DrCWaZ5#M`*Ut+z^!hO{&{^{ZfA$6D2grz^*=~Q zuan!Y(@*^D&Hx(2DcPN^EQ7>)6TJdRj|%XQP}FT2{yx8N0VxuV(iCurAXDpoDUGQF zNt$Ddtxk~Rxu?+VdIA7$X+P&5ycu9w<=r0XU<_#Cb{cZP8Uzqj1<**tyS-LY*KfRUa(7^M_HHIr6ly!YDtNx)S9W0B;1jl5e_MI+^|SVsZwg#kvDr`N**j5 zWQ^FUofZ3tgM7k(I&Z^%*<>4EwFg-SnMQ9M^H#z3$!DCjn2oz@e;onMv%7jK%Uzb0 zjPUN=L-&hZS1zQV-)~@u;xIC<$92ClEIyFcnzxJdRu*(|MwLRakS;8w&X(2#K2pou zSY_R4-Z4=SA-A8+m4IJ`Ea+x;VJ`9}9wwwgae}EdV9)|X(E+sVoMbJL^b(+ow6H9W ztV1T9)Q8NKuRW1&glIk{)T}=(&6x{nNEb$ft~~*Od+M%}=X0`$F{+&z>2duIH4YWP z)1;gl+e<{IePhL3Ss@`dn&PZzBZzO}oUe)N@-VK4RcaV?>apUkXzZ&U8`GYFUao+` zb6d8fm&)!QvBd}=W8|zy_rpxt6lxkR=RKVs3*~yf!2jh7JyvmJXJ@rOE<`!oNCzzm zZybBv9-*|NgV7dL@t0czg+5q;{$?;yKE8#ps+{vs&NYn z7}rYSBp1eDZjr&PzK8!Gd+*ltDwgK?d2TCwWjlQ1a72bX9Mf*53UP*+n6M=fLLfi_ zNr2{}gM);`Nq{6kT=@gcrEeVmX1<(H;y>@ZbLZZfRb5rtJzeAJ%8ZPBby~n;t!F)l z#s5bGJG_4C&}4oyr4)yVokZHn^V(0zuD-J6BtQ;%(iR)W+vnx*CYPcyz^Oj!soc$1kGa6sjP+_y zRT7jTb5%n@qf?bM0d=pzg5A@N-fug|Avb}N_rsWD3&ZQ-cNYJ$#mz=|?@XkNau#Iv zE#@?H32F}H`bDKo@j@nL<>%b(_f+H|emUE>VtCR*SWJ|7HGzu#m2PHx*4t2mIctua zhLRiygimR=v2KKR6aCNgCPO)nY4&AqE^cQR*OnIL=-%{<8>PHX1YpxqW-?CMD{@bt zO8p^9(lEfkKlt(xzZNUy#cZl$q!t43uvGKNz!oyMxgL7M6X0nUksq+in|JWs1k5;Q zz$mf1n;6>pSs|cH+OBDRvv-%A)o@7`HaF}1+7z)xUKc4Fd&)AlhLK=(?n0hxzk*X) z?s_;ABkB){-|7ImAlY=zpvT#N+LU`fiBkgwc{&cLQ8UNg`$@(zNw(^0bqpV#x!SD{ z5G5AkZaq8OC%g07-5dn!-9E9&b9LFz68U6TW`?-u_2E-xqre**95Srwm$q`QV2umr zh1)(nr}8%EVK^$0R6MkdA)X~N4)5cq7jkJl_rz<|V`A!zXC{>ca+blrw1jvtTb)2q3g zvYVZEM{@n1=?)ZPJ4S4ku$~iU*|L$a@qKJ6Igb%MU-&wP0f93a@EzNx5O=`;*i%8P zvB;l@d?HwYwxY-2(6sGqgWDi#X%0LkP_cRaisaq}CvI`=*)UV@00B$D8$D*>H3f(_ z1sU(m;HjF9T^(VU6VKE}kqBV)^EflylpR1G+aHs+PAx3E-CQ!O!3{rI3{eR0pv}7Y z0RsFuty>j*1W{tNwrw4MdrGg&#IxNX7IGlhc9Em{~dAJ^MxS2#_Kal&U1cIyt&{bA8-Ou7Yl{!zNKTNSZ{85J42_w z#^P##nvS{+d3w_1<*>Ko^Eo_CHnhEC=s%4Cap^#aA`B^2ug@?J{#T-;bB7$6Kjq$ZmIX$j)CbXJRZl zx4H@O^gfbwjs#{*lWYO6W!bdG?W@%U1nwY-2RJ3=%Eh#KjFZm>>d3)_#X#_Vai*NY z+#+;yABC$372< zNUH564>t&(*=hci`(q23r+cGz*Mk}vqqzv3m(=Yg+tVe#ePBup?TZMbtfO!FC4)*V z-8wZK5#BoMV@=rBC5v;l?HP{FU&b~aHiDb<^#MrIsv^jwc&!Ls^S9+_YuD>Qlux)^ z6P37#NRe|T!hv&^TLVMR_L);H^sOIv>8=4?If>)l(f3uAl&Emynl!sx%i=88SE^2$ zvd1(eov)SiI&_qQy3eX)W)sU{y%8;vGzz*XIK3aJ8kjwXh93pj53ZYbX_WQCi(>+5 zF=(_F3zxjJX?#5MWW}GH)v@Q4wiULB5-~D)fcqJ{WCx zv1R%0!jatTXVOG2MlH5g(4|oW2#kB%zxbClCyc_xcZ0T24j*ZW5>LX@$7YFPZ@#lr|KGq-t5Dt z{}>H5y{v73%sbwk8&gxoGK)kun*&kdbr1-ioo}04;NKVufTznwh$ zxPH+@qJp#*H-^cdi~2yuE#*vkNqJ|C+W55k1w_wpv?z1O4LG1L#gvf3k8@*Ymh3oS!Ho8QL-yAv1depB@-Ck-wqjm$kRik*25 zquT?wh@daR%D#-3i|dCYS#g>j7|6G-6>;SUiK^cH;z-D5FHj{I_h8Mcrz?C-R@k`4 zz}4PK8LV}xzc&{`XA0S3J$L@-0eg!N-gw{bHVz!h1^p6R-+Emu^EDewpPoq0)Lm5_ zZEy*pe4XBd%~ms+*@#)S25|SeT>1-x)*LMW1*w2Ps6p7-G+FLRSi$ppaBiM|i7uu2 zoRPuKKQ-FBzY-VrchEf#RtKt$8(E)Bku%3Y%{5oQlS0_Xe7F;O2*?%#$`f*-aVqoH=+ zU7?-2-7XAsYdI{=-N=or`vGCR#34^@9o!wpsELz0KQDKma_6bF+Hcp;B=>F)YL>09 z8%+Yi*}B-cw+G?Ai}hQg0nUbm16!^KqvT9RvSMeGOKXXh_ot?r2C?Oi-5LmXxzcTo zoQ*!l0EEuXpj=aisk{U!+rJtgF8E_v+b$V!<8f6lZtLuD|0%|JT_Wak2pe$Fm&or+ zZKq5&hwX65gJ3O@RlfZecMoX!(q3)SYF~N$e$K~=FEsxH|RlA zo9nImpa>uz_ZrwTI(bj(_%szHmO!m;!$Lqr_R6F z<-4e%4Q?N3tJwv&^%;OE+n3VwU}@tGKrf{;%p=s`^Zhaqs!esXsl_r<58D`oG4!#P zHq#oo-^N2go|rq}@HzRm;G!4##D!}e`%_h@9ue9R7Q zniIfc+=qUAx{IZw^e*yl#Zz#1d3=N-d)Rb|G-RlOeH`*pkRmT0YCz#Gc!Ktl!y!O! z5OtU>Co|l7hG}J&%QH#ahg;VK*R>-8g|IMF>80z}lSkd@kl!%iAUZB=r?cF)6B)A> z8RP8<@8L$?B^NRIWYUE-^39CCXw28Ur(axxB7nZEO`hAWmG}ZL+p|L8+s+_Oo@1{t z{TzHN?br!q^AykdTDMQsYO`m^3ccqPw^yn<~-nE`HhgLWH46J5vwz)j})hKJHlXI-Q@9Z*R zuZ_3JfxuO4Z7)ooddaSOmOb7TVGG(zC7DBcoL`QdD-oGa@MYE|9)_nK~9+zDJVPTbSKCe z)b^9+%!b2)y0#$RJXeFOd9j1!&*^pSF6+{&05}qqE`~j(>o#8mYA9y=;04~~HL|L4 zJ-eQS_lo1Hr{wU3LoH(cDDGSLxxTK`aobhslfO9#OcQWS{I2FKrZ$Z5^Fe$LEQxB*qDaa_OI zo}FZa-|#}x(u>_Ij9goY52rY}Neju3QDLxNxBY@#M#{PYk`>PROFC71V_7bRwKfo< z0ybK(Hpi|JhZk};+t#}CD94X${~{Wib1%#l*vS^(9i$m`TQ8T@yOV%&U#u!gch+FI zGK@tUr>H!>z1_jM)icQw)gyJ10&g|vVi}C?aju>d+%E~pdMvRsP_aj9*i}0}A~mdO z!_mU9-`pzsIgSsC84GGFnwyzZE(YHG@MBlT<&ybJ;arIdcc(D{*rsaA8ID^3;cCcj zklFoWJKwLQZ1Trzk`}u1_zJI@UsOS5x}d#|(+yy6U~4S2$6RF16_Q@w=B7C7NF4a9 z#^|}VtrjhjoeiE>A1(!=MhY@W{1bI9kuj?StC*{Jl8z$UBZ^?mf*m7 z);NAAI{ER=zE&dBjy|D`;+;Q)8HbpPWzyFLX!+%JRR{gEB2R&oxyyUOiMGxN5YMWcVjKyxN@vTTU`!duzs|u9N)!AY56SZ?e6*N`0c@%!72W34LohH_OU9H zO2B%!8;#)n7T}0{PM*?n1!R3&K5@q9)fjBf9q=Xszo!Ll90L8udtnA0qh zUaw6ATe{sOGbTl~?s`uNzSk!oA)$DBy}c_d_`N0aFIQIfQ%$=XV^%%0suJ%jH;^dL zF?IyE5g2`F{Ql;j6xh37e8{svOJ_u8sDWQn=aN2U(P^BwX1h|5U!f`acE2t2GHrE4 zLU%EEMe%b)o>Cg0c6YJgyQRZ#jS_Z;PT~<`g{$mW+|yCg9&G)+b~XRakUd~rh`}}I zSuSRQ50_#6k`E8Nw0r%;)9PtiFNJ)A;^^U8#AQWy@E1ka^A_*07^n*v;ym2R3aSL^vpu!vWsxH=5Ki;C zKbMz^JkqT8!ly|dMU>INMy?Jm_Kd8to!21ts5z5M;Z`D9`12eu(5$pZ9qu&Z61(0o zuQi#k(mr}@Nce)PMc(r#95mf!cdSYZ;#;L7+>dYPav_(K`&V40(1v?OQf|3W2ec8VpLK=kX<(+1{9@SU`E+0Pq73J}; zVZ6k@p)C4@`;h2v^WoE9?Y$-M`B3k`)FxlCt~B@CtN@}OSlPEfyT41Mu51GF!!0eQ zpKRtADTJHIZ!Vt8XmCpk;|33Od7D25QE-;?2dXa8zR)Fg4j(gJ=i3WK(@r3lms$7B zIzv^J4eUdBkqM%8=MvSTigzyBj9wmCY*yNxI;we*i`$~27BfO;^A}&P-Fz2x0{>w6 zldvl{TONpH!7UtT>fcq1aVVYN^|r9%oDEp*d}s_nc-QF+U_MdIw&33wpiG#k+aY&CAA6I!o>~mg#l9mVa?QHbv=7YKFW$!olXLcdnO!?-h1}R|N9~1I zfLhj}3}?)PrOG5HmKx z#@;dZ5YwZ22Vs7vZ|AYSSl^V(xC#Ws{I-Xu0B4FnvvvS@cUW^(rD8V88L%nT4lcxK zfkuxkH1QPfQ=f7)c=Q?3&-Nwr-WQClrAQ7Yb>(Yw1}r`k;NCLwM^m@q*DSb@0_caNnW;tF{qBQA+m{ATv{DLNq{i0JTe z$b}mnOUI73*3qMTURceA$E)V)?Y`LeO@PAUvw7W7{_94R2j*VyvMtuC@QrQ5^BZks zLAPSg98>67dJ44lLTEzIL4mIi%E_d+doy~;+{}_}u9vYPK@G-ms?Y5dvz4*QqsX%0 z7&tc{^{*E^lF+eWQMv5AKUfc3;Km5C=8(;c=;=d70a7{7dW^ z#uP&@pJyOs$pyCjB3%l=dG<6$6^^66ViB{!p)#P8(`Zrif5V83^Hl=_DI$dM+w zIfF;lRMWthRBu_sEpE#!_FAC_gsdn|8UUH&<=`3a;){Xthu?jiBOC~@F`Y4{jQ2jrJ|Fb;;eoxE``h8g!*5No zGb`H&-9d04gR64(dRWYSS(k;5l{fF4&yU!(aCw|{59aLS93yL{UZ2?Ypb3K`hs@rA5-ebrLYo6 zf<+9@>p_+vP#zAgw_%X7X!czRfcs2Q?bpm*=4ls-`I_RkP8SL}rEP6#R0mR(r!jDU zc+BXf_YK!B_O;C>(Y;T`-`2kz7S_)pjv(nxY(S-YsMz4dB>BR>dI@$Ywo!}j;ei~?U#ApZBNSw#dWi!#(v!O zI}Hix8eaY7e9EiEOLbn2(%DCCR+$-H|3Vg?(`_nqjQomC5B5VomJ4%s-3kYF^%S+) zxEYos^;!qqXUzas+1BSenLJQ?7xwY)(P{H7O8W4_HR+Ul!>X==t&nuqKwhWw<&v3O z2NhC_5w#`hH?}OhD+l#AFS8Hk?D?$nnk9ULmKWFyKQGnt7UL+IoXTd(JS6zm0jV6X z4+}_5N!iKgMH(Gq_2s;5&?Zm)hT6Ubd3Y0*ZysCn@+9hzYKHT)g&fPd=3lJMW4-dO z$icgS*=v@k#$J-74WXF*W&bEdPZtg(Bf4=qi#HoJcgVo7#^`F#%V@UD=3AK*Z(Dd1 zWuX7dee zmT&e(FPnQ*&ulB{y*c&>Da(GvTi83n({fc)y?IaKFr?|sJFc_~r^Zh>2)Fz4{MLX% zC9aP#@Gq-_S3XWM_Qca0=ADSE<8hP|u_QO-#xz8u6O`q?p|u26{nE-x`4C&JG~5T5 zug2A`>ZZ9{zJRwRHnLBgk9oT8m`&Tgy@yd_3#k5#jnim?&pFr26DAM;Cd(~JCS0@+ zkcckY@8hB%Y-=k{rx?R@6hC9PzsTjadpok{ygc50+V*0aYLzKY9G3R^>0)0Be=M!^ z$fkt+Y#!78eDs1#U%A9yymn3(C)8S0B7ema^q0Cw?k++xbyH&6r}nxV^1MZEVVx}% z#fsPy9*x*IW;XQ4>3M)@5~B`xo8otz|9Z+HJF;OkYpS8fb2lEe2LW@b{q}WFGi}oEpx$#(A;ch!0H4yw?{s?8@7S~7}1lVx$j^P*5HYOi(w#unE z-A~Pw??syQ5(@{KKGCjKO3-k=tiqGGdy%H(VTT;`I+dNZSuIM_PlWnZT4syE-$u@8 zPxU0}Sz_-dUR!X5+3I{`;Vjp94c9nSFKt42^+hUCfQ78pvCxADe?x^&5t$$LehK3q4(I$T^+}FyXuUsj-?%-z!SYV+Q* ziMa|meTcBPBZ9z+?Y-{XNW-}EH@3FZ&+|vbRYu`enzc!7QXC6Z;X3n_KBv$Cn_tO}A*D6o@9V*pJ*(HkV= zh@~ejvVKLKs7K{S(RtPrk zNy7J3b6G9cG=owpTi|D&Rk}Mw66Dr?oeJu8hUIz74O@>m$6I}|TGLAH)7X~5ieQ{^ zb4N`yTc2Jb}m_FPQ)_RAI{ljc;CkrW%;(0 z>{f5=Uai%S`WF&F#uar#$JoIO!}}phlheHYI$xXRARk7WdBk|QSI>@DB))D0HjXVr zwM0mG&^_+doUncDG24wiHTY{5wTmNZZj5-vzv)+WcLI~a^C_Fwb6l=oO@?bN%(QH7 z5=){WLK{`$RrijSeGorNgsMqQ`&8ay;kpIv(m1ZO@H%(Ze$$mcyrb(>1h1rNIRwYRJJ zI>Rnu64-A`1ryD}o(UTjZY;D|CID-xcJ97Jr4 z5L0nc_G<-cVpdo0sLJiIM|3Io`KezisV~kER~l(-^b+dAr>iI%tU4N33R{omaX;J+ zM04=2rYkg8;c+-&J43Of?qxpY>PEFPRFH2P+h()tbH#Hhz3S%J^E=-OZQtM&K9K#EVng3(@3=9Ii}?3^6+_&{rO#C^Y{W;jmkM6dpq!U zV!Dm?FFBqQfqJ=j%aczRc=k{ZH2SpV>wbL|J=W{byidhS)SHsxA8Kx)K9(Ww@v?%? z`ex^*@OUC`)HuAd8@FssKa)5uX5xxnlJmW2+aimxMtQ|$ws={BSzI+JguOfUb?)&@ zl20pRs-o^{#z^u$b$LxjM1`k=`mtn6d_F50nWFY*1HoRin#a=~!PRlegU)aHhcF@-o~Z!T69Ru?Mg%Ytc@E^i+C2>>S2&36J)>yO$N!$r+mR0 zHH>M0gS*_58j@lyj}4+b=7ncH@z`mh?sNCGD`ok+M|i(^4)&iF;QfsP-GBP3K=(5R zyMGAa{iAH%Pr&W(VFmw`0B`>WTGRd~!Q>yV;O71ierVhO$Z~@^HPATt$i2hF?fKS!tFUS8-{hvr4 zzxzR(&I(HCAGD|E_4W8pNB_%FKOu)-WzB(3D)6Y=bm%88@aKn~-~)Jg8dRvq54R6e zQ*!@~DLnn?r^dcq0A$hs_up&)Ex{>Frw+;G>AWTuG9JZ-RzHpf^2x+dpLob0DDxPU zg7ZXw`iVU9zy3*G{tZy%Py7Ku7yrZGea}R^{=^CSZ@;~RKjK2ZfAg!3l^DT7n~iQn?uA4x8s2b;bK494Go z`@MT^MQ@}=8pa?+MXJJfBw4t-@b)Pe_Z{?$$<_u`C&i1<{$oct^VLo zzxeF1bAs!0rmOno(fl-UJ}&N~g>SJ(zx&OPhyA9*ex%$?gY3&c_}VA^=<5}Jc>|aD zwS^yk_&xBW-%|hO;g5dv7v>**87JRjkiNY23mVe5Uj#g{H z;Qb%=7jo2MqB4Dq!mmI3@Yo}SAJ^OEiD3vb@ia<4N9p9vf1w9Wgjd8jA5#Zk`(S2G zgX3@JN%GBT#;pGGgRcyvFRy<*htFB`&20G|Zv^7l*Qqzx#56lcB(AeKrRHt{+c$`$vdIKYs7)55HyI{Ihb9e)ya9*M$Nm;YTw4 zr*)eQ$j=Ps)V+TI!t`x`^d-Fg-kN_$WBS_pzrZH_>z~f(!vfuZu`K*sXz%}YB45Yl z-+%k=&s+JUXZKy3U(fFMH~zo;iDGNtUGeW7AK#wx&s+VYr~LEge>RG+rvK+bJ4L_! z?ayIM(@pvg$TY#D{sCUpx2HP6oqpM(yZL2<|73utzdGK<=g9k$FqD6Fy#MNW|JCtE zDD_vz`x625&&VD9tKc9JMKFY)Y zQ|5eW=k-qyIs1S9`#%eE#{3Qh3;{YsUl?Q@UPJ3#5BA8UQfi4k0atW8UU1u2Ycl6bLw|c5ueZuAFn^L24G9jU@v`q0cSK3 zYVecK27h3F#|t~DVdt3PT}f7S*A4ZNQV)BluY z_&%}p8_bSrm~a!;1Y(@R#}NA!c$0710db1qJ`o;&26bWLG(izk0AO%pHUUe5`M_Z8 z;(e%>gCp_@*a6atr#@i`fQJa6mwYgC!1;hIAo~RtCDI(wBcG%mOcidDnE&7*Kw1rO z!H-5UCjsZd^uz&Jz;mEj@cB2GBN7kV$j1i^2UO1&W*W!Sc=`Eb;HO{_KK=&a5WuT1 z7zVIMz!Us97_f$z!kC@Y0a)Bvk^fcnh3P#01@z3%M*Z)}T~6a1ih1aH8q_1;#901U z&6RK4pwY(9e3(BtSE%1fJO~~@-T+cL(eWlj^(z<<-?jtIaptp`k8;5`zUd!4jsJiF zf#r+`N9TuW08%W@25ZH~VB}!-1?iIrHO&uf5B(f~A2_Mc_pw^?m>{1c695tDn|yx2 zg4BtxfBb-<@ng^er_oD)KmnkvTRhbQtY=E`@?VC4Opxx#?m1zzRHs1q^%XaIPo z5y$|f1IF6t=mkY|!nRGr9V?=M(fK*_X|P4bP_yO`qz=I@OwCs|MhpxpEg$jO+v@Qafi{9c=1=wmG9aRelgnr z;9L=Y#~~zvX`Fm~ENxR5@QYvnaX0Y$W|%)4mN*S44$nA?!l#91v8Vv@`7zLFK)E2< z{qZ*?Q1G?Bz+-0<(e~4dAL!p((cdvQ}Yw!14N=a}$e^`m)a9 zZ$Q1+U%RUO3+R|XVV=x>2b=*G1P-uQ#Js<1p8ULxU$C10;53;GCm?Jf1Pbs@CJq|7 zYCreh{`fTcea*0cW~4F`K{@}?Ad3j!cm%9d!=RnAUznme!D)^7d>?A}ATfUajpdL5 z3H0Op%oMkL`3?IUrE@$1+cx-z<$>zg4OGK6;97VG>%6+H=Z3rpbJ;QkNLqNyqL$CENFw*D z0)f{3sajX>%aeoZc?{{y_$-Ngw(U7^5`?x%o8fxRG9_NxkmoVuFc2TMd&?m8ZxBPh zGE6f*wHqT30(Kl$`QzjJof&@l4mpI!HRR>k+asrz$-P~d+Gv0Uau!c+r*f+2;F7>mAOo>=EA?rSpbCJbIl$F@4Q=& zm9={Z$NQUx%7%5^A3S;vgidLZFUqB^=a^!YSTe;RI1GzRR_w!h_BjL~Jn3D2nCv*y~Id?**^ zY@3Tz^|HLB(G(UWEL2W0(tu5=;)3C(~Y5T3?rL7L~sQk9@{I}a9@V9`<=i!H+jf=1<8qMuNG zO?uhGbJN2$bMJY_0ctYeL!taOyY(>$k1J3MH`%DqS*s&o4#NbWu=2DNC9I=VGFZtCdKlq;_qj5r%rhI%Wz!< z>g9TN5vsjhp5=GFT3O}-m^1FOIdwO>Cgi2VUZN-x$@BPtI+n72=NT|PDd1i9V)20* zAR*cBRq;z%0XKJ$1Cuy!16RE!tD6&a4~hqpVRomax*x2S5SI${dDga>&HMSW0hc1a zIcw5-Qv3pskVDVL*X;p*Pz+^-jO2L63=%{Rt&#MoX$kU200A*Y%B7D!T!C4DgAlmjj48-Di1h)#0_)nkvObbO- zzHJ^WO-ZJf04k*5FNM^ zXGzTyU80h}W}s}jS5{gtx6eT7j?SwljPktoyZ40Tn`b~&lz86w`VM?QO8fchcJFv5 zD^HKe9!|ogiz0z2CS--R>by)=m1`|~#UnBb_r-~E5CIVgT8XI3{Uh7%>4dVJ!zw#H zWD_bG6r--OjPE9tR#fFVL25c`?HQu#eG;ino3O znUIb|V!KkM+mfp_ygo>JV^}p5pDo^16DHZou5c?UCnlCaS4cEypWRDMhQM z{SLIEu!FP~3C;{qXhh}Q`#5u09*Wl#zfsHgbwc}HT`r;_-dQh4=A~T*g1b>Kh|c-} zbpJ_pFZ!#Y)vFQssgdK8t(Uw#+*c-nc;XlX9Ws8P-0stH0eOP((fsxXg-pXyt{ynP z7=Kq7tQgwm6r`n%#UkZWK5_4W=*;IAvfWqG4Jh6Ru0zQCU3|fadt+rNPRR;brprTW z5&(EH?&xS+WelgitQpX8)3pPkNR{w5pBt!GUuvEXt>sOePdH`S*Ft#CRdR+$!B-ub^D?@@9%LM*MY=5y6%%&LmiM)vjnK;s=M=iun zecte}x+-_?Mc!_<+xC8!fD4i+?)?PjDc*|2#o{C^^xy@A;gI7JV7HQ2@F@3>GerOf zct9@3jdn8`(%!rSVU`P6d+S_Y0YeIL(FYw?7mb_D@`IOlZa$bN0IK}sFq<8Gl`hX% z>6ida!>!F+UJF|Wrjoyc^2GRW*q7>f6JL8hv9nzoXKQzXetX_9hMt%gyZUe$fIfmB zgul44lWhe$6LVL zTmwvE3MS@xA~lIm^FE<@Ar2)5=7fs`J}ApZa5U|7hr!d;=+yTU=q8%Ry`V!MiQq*r zZ;oNJEA?w|@7RzPiIU6=9exZvVPQv-)y!5-uIRy#A2m@5C2|DNYQi0^6!o^y56v+K zzN^w;q%TgL&mv%sP5_)We6+jnfJ}>>0wOHw-J~yet-+?1PI-D7<=%O%6ecFmQGq)h zeBf>;x%v5-+s8mFQc78^COR<5@l}=GZu?=hVX!i9oA&D!Y`+gKU^ zzP_lae;Qm-@8SpM=w!R`f8gL@~jEX(g(&?g(BYjG_9=*D8O>idLK@=clffpMW5?U?wCiJmLZ-k-JQLf z-`l|kxes*C{o1+iqjUiIGp85vSkCk-J3YDyVpv8WTnX{Y;UIOi=Be3iITD3dD2=-V zZ47}6KJ&;6L{m-+<1jWNCD&T=8QT=l)XpjW6qk1+Npu0mLt?45&;n-~uzh`{`15PH zJumuIv)TSdows4NzF)-7cR{=@$I!wO8^OmQsg@BJqPg4e!K;;+fdKyb4vHOCx|@}S zN1(a|k%XH=d%y~#n%$MNl`;U%MhaskY=!mNeFw3<5)=U|U%BV)>m9z@eV1S!2QLX8 z3PG?V8a!VP!?-FIeipqdP{}4*={ecg=t&21 z4)$X5Jx&Q^rhSaL*ZX~cMp(nLbzt54AOtV(WZWA$b7#-B;hT25USb>=D)6O^xf;(l zm@Ck43Zkf2dX|O9_&gG09s-R`m;D|`A_KFNuvXmV-0T)v zrOR=dYsE~K`Deh^lDCaq^SC9vwkE_qP#$m(d3fCe1U(-ZXu#iYj+4Cu#z7T4?Kv3oAQ9yv zfQ3hl#Y5sYDT7C&oXZtIBfFQ9UB?JSGWBJ*&xX`R38csi5uL5>>{hyJwq(L{Zhm1_ z>prD`B+j$<(u3rW`6lZcZhX-^*q)tyFyLt4?zUq1hbBnpJ8Z$pkSMdjTEb}K{&E?O zSJ&mO4_^{lPga2Bd8g&_`E+b10`z-G8`1JQug0ZyPZxGa0&lKdO>LSQe9`$@9y_7C zK}8M_1t9I<^IyjOew5&y0%(Epkp}ptWPo{Suare0hvglVCJEa77$dI9+g)PvTaOEuLWA%3qA-KgW zT(e+M4Hdz*+1e=C6Yln7jb#gjb|LhraA0$#uYi!)68*}7^tT&-j-xX>hkx?kE6#%! zO>FlW7xnDsf}32oOeRQ6{d(gqqmX-;@y4-X)67ztU-u+@gBY+fZJvU=v7n5npYiD1 zYcp?;FJ{&*t~=hy?)~!PJ8-hM3#retwg5&r+VY_bR~hBM59z zvrz3u=H*23>=Ko*l2+OWctIjQ|g6wReZdqCk50JzD;{&C%+zmuKX zoWKE&@VU9A{5LI0{9NxC&8PC7$UBY zy}sRB<8t-N$<~7T$>v6}uQ_2Lb{L1tg}I-@mS;ZT0p08Eb7y3)0_55x>3YX`?$h_} z)p45<*or40_QDijV%4=3+PVg1c6z>F@S`XpAKx+XLk7k<9|2#iEw7KrB|F&a68_su zzXf2eCuT(mo2tMTF49iz;NJ+X>H*L5l9pl-E6bb7etS$$ad7kM|cHW$6ISD^N8 zJ>T6qUh^QwjBGXcxint2u6D@Z75n3fv5zwS8D%^~aS z$HuwQy7OVXyPJ#1nCD@`i>o11;H14~(J&@yqbojiBz2OxT19Qk}%hYi2zW)E?WWHV{Vbxqmhd zj~wN=JyZT%U2;-()Q*XDkoHMh)A5x5+Y2|C|9zs=k1^+rd{)m)4pfc(JN4%s)&FUIsTov0TQhB0BM$#3NOj?*h0WnI((Ti?m z<1(nUHth!{I6O8)kOb>Z_!s%3jCqYPB^w?FkcQr>Y#$=Lg2ecGGjv z3s;?awth}@#~!RQB+fF^2M;TzQ?oj5kMqErNk{e|%{%8vot>B%?kTj+@O@@Em!A@? zNLeNq)Rdoj*!zPj8(Rr92kt<}$}QejEOpodT$=6XxC`t91kNUcWEu;462)rV%OFMi zUJ3bYEy#4&(wB)8ob}K185l~hv7hfz=!pgNg||0}@@f5eneLI=Fp0D~UwP-!qqw`Z z2g>Nm_c3T+aI~-cp}oe!OM2D>KPk@{*?v`O>Ww{TFH#!^8yGWoIISPVWwrH2*+Q=S zz{g~#+zwAx$@E-`gy?7td2k<)e_BM~$M$g^B4yB$n@+T#L#I1OTzkH+igYF)%IDZT zmFoz6d9!>ps0U=a6m=`szfgPWs)fgEVRy%?SM~4m@bTNNI=0w#t_g-*Dkru^&Q~?_ z61Hd<9;Cz(n&3r@@mVmIFJh3aA49?XqU z3+nqylS`+LpDka$DXhM@f4j&Pgykmm{nK^k_)?}a(kVcD<$ib-%;D0^1(8Z#$-X%( z+trt2xeMDRoP&1IIe3wLwY%${t`F#I(sXTNzN3$Nz1W-e^SN$ns9du69MDzNG2Z9Z z$fQ%avmvVnk_K@~JOmzx{cFNcJitFF| z&nT1mqhjCODb5;)xqyh*i->@cM*BXDr|XuQ+I;B1VY8f2qk0ieP$qsAo5KtFb=&L_ zz5s27J|M>>@JY(ci@oE=y#?~g?@u$q^Gt!dgX{8gk0-ITtB&o5A=ffB=VfYDn;mp^ zXS~W@Kh9$q-nLG?$XoWloo6kx+e%)2jQ97rMV@rJPs+34*u~kWa=fpKKBC3m@rX>iMLX3CEQ1mwxcLY=}`XBfA;k8%4r%g>dc zkSg!X;#kI+>MZqz5y;H{$KJcgO0uo@LB4i;9gmHD{YVVHvG3-30x6&%@m1~Jy}S49nLTr6`w^Kd-7~%Gv1+Yved~L#_1m=Z&1lUO zeNZ;M8&V6-oR6vczPmI;t`G3AOoPtQag*o}!UUXfBCui3Jvfw^AZum@ROX{>o^7CJi?m&-M(2#wUOGmxJHw8F@Sv|MwENn6?= zy95(VJVrsnnS%*9w!kJ9lgB<}YTOx1A$v-t$FzxLg4#8f4N&GQ-yTk4Kp|d;@uV)R zc(kC5R_KQ7u+v0q@&a=Im1+1;z7Qoq>v}ANRdZe4N z(Gs-U492SU!H;F&Xz3^nhPt`}q!%!Hc8x=4y=OdjpxZ9u2&+96kn_VB;4O1%i?Hz) zUr!Zpgm#j7-1Hhe2(xRMQ4~h7MaV1-yKqu(n;IA7&RnWYjj^UJ$4`5!9XF}uQElE{ zYJh^JEiDlPKu*!f7OoVyoLj*leq6>O#UK2s$0G+AQFf5LT;X zkS(bqL}CMfN(JkQPBzkflMkS%&q27bp7$c0$qxW9*cww=1|f@iys(BVg&1xE%Y=!ak1Pw7I0f)8 zvv%xnHhYM%YJyoL&C#xnWe3@cQqawoI~%*9DbfkyB@mZoIdP55HFPv-gi~8q&;oDM zoCtNj10MwEn(VgFE$Fgv+wSc~(J;*>iVr4OHwJW3zGW|K%ca5t{??`g*n@x|(^XfP z*wHy;*QEkF1%7I3h@RVHVxqS@^D?G4uAwv3k9KoD;DVYgp;opX?|llD*I|aJB)xLz zajR38D43%>tOZ*%m6BpTPxdv0cfAGLn}9X8ocE}n>qQzIoL$EwB5WOMoCbLfoCBPm zA-SFDu~X~OZll=3N&j7P;q-V)9fWBzEKr*;WNZyEMdnZ}d2H+%YP|5`PJiF_sBsnu zfc~+DaVlAVB&=9(OlEs|(`|J^bJLv&wVt#AKU$fgESC3hS5q^ME$zy~V8zWbq{ai1 z53NyHF@``cpa8I8;Y>Z?Wf!czS!52DUUJxT5YvM3Y`NuH@Rbg~=<9~$tSBOL$+^%z z^a%xQ9x!@psjked%~;mEWGC&9c7iZp@U{!k$=FhalXb~{X+NOmzR1aSU0(rYPuQ7> zD_L2#`XhjJ2IK%4Z0kBT!12Q&Gf@)oXY&o8ppwTy%)B8c*}5fm$)z*!vciW0-n-JC zMK_uQyvxp3Q;B7|-4KGODW(FPK!#0MAba%|#J1Z5ybYxUZiqm(Yp=SXL*TS<*>t4b zk2giM0Qh7j+^JC$s!0IBQfhf2?X1+@Fv)dO+hfCN-vwJk=xFdaY!BHu0vM|GVFw}WaJ6fp*;E2&xn%<^lr?4|q2BICIvn6^ zFKuv0;$Cy0Lg|d_HK6WBP{^j1fNLlKVb*q5-ro&GljWUyf><7$8qbZF!~{)TYi#2H zZsd@5!_2|8mK~MsD}4`4pdRhRvCBQgVEOifYe!y~Y;(e|!`KC z)n(uu^)xK(72jFpEpwn}NVlAGx2W{=e!o|!{+Lg=4HqGcK2n#)nojc`38HilaFxBu zg>5i!!R+53`a(08jqOnFpa~6rQiN@UfMkOjQq-Jc;O@g%8N|y`zk%C;&Zf;9NV*+^ zk2>}ifHk8_JGd~NDY096F+p6MxGr|f8OmZ@G&^su@Y-gQ#f!Ny<}Esoh7@~iusHVAV(t|YAvXOBP57f9s*}i zcmY3_HYf}TiHep$;N3Y{`upCZ6##Nd>9Yk1+Jt5A4S1+9i#aF)fB>T~+mPxQ{y^P|K1W^Mk2Jn@#-jRgj2)#G*`if-)roRR}hOM>U?R5!igM!#k za0q&|;zkBwS^^p`A&Rot_hMgK>W+BrL_uqCtX;KH|bpS0O1&GNX5)uj7_MA zh~*7ylK6PkMpY33A?RbR>81sNfIZZ?UEg;z6Vg?=I*l`^+G^|wuc${5$EeTtVQG)9 z#TAZFNjEE82HAav%K)ZS$k+>8K9H^Me5qn=TZjHqkn2XgjpN=PZjIsS{b(@dku=YnXwcjUEp*$!*+guL84!@Eu>I=SjY0 zRS1j%iY?SydZ8A!_cV#Z5`x(*>rDk)qk6$?)>O&f25<2-tCNFO?hY|!z{{ge)0q;< z#ABg)iS3CsV%0=7Z`YPV7Y*g6x1m!&Bk9$a_Ehgk08hgm2~+iC)&}HWIc>K>u6f zX3#=e*GCDnL3$+MzHRIMWWKIz?QJ;9>6YQvm95{N?M0hI+B)9t_I1H0h|nvB0|ZRo znLVU-`)yuBWJ-Vz;*-HP1-)Wh&ct^ju((8s2r6RGO2nwKX>|uI8xIZ&!AXowrT$!fZUjzy`}fEZcYhZ8MkdM*RZ7??}b9$rHvYM*4%ewIti zMHM3*PXT)@7kO*evfEDG1ou5l$8FeepU+IL=(>mY67;E$K;elU2?ZmQbypOdNH@95C8CM6b|zFBm#%&vg6!O26Sy zrR%6|gV?z!2C!akBW|TqK^jo=vS@AF?6`_S6d-!#`CRFa{h1or-hK|pJrFL{HfGdR zTd5|RfUg1tbAAIS7D!LWNzNhCzSQ5;AZ9#cg;5Q0SUn}CYN56oW49ZT{geec%Iv$> zx`~i%Za$h0Ba;JMCnsS{&Crucl7wJ$YY5^+28{7z1y_} z(8G#Y_dxn0`V3-Vop{)FrRH#f9}E-%sH@E?KV%a24*?-K6ROS2 z^};g)4H0P$E$Z@NZet8(9OR{(YycN{C`}GZvx;dq(=-zj)FXnRsZityhj{ow+87YG zpR&WO=4ElP?Lamas)sSX>$N)IceCp?!>bFh3y6iTFvWz8TC>J_E|TavK-9&QFM2Jh z%?_%Vyn!}{OfYKB0ngc0IDiEn*mfXqm(3{?!UmRsSBQy}<(jstJAi1ucA@G=?i@x-&zA#g#4i<$VTu*NQ|a(B?RGWTkm55!HX&k$8mY3( zd4V+8$?GLv3ycQt3g)0m%uyYY3pLpW0qw|J!?u=(5x1Bx>s>CNNUF9TWiuW>ST3JS zqZZNaHgi*r#BpPu&CJrv&^>msTe;~PH?2hl|;R>!k3vxF@d_+l}H(tHngIS`QNZHeIsaJ%7oNzAjk zeGm{0&Z%E`Ejtm{=xirLIKJrNWx*rwXqlK|wLyD51My3ybEnbWHRq#F?_dIIC&xf3 zLpZ|r_*Q9vH^tR(TOntYqS;w__AZwoHI_JA9PL3L>dYBh%PDi3JEpfx9F}0fOai0tp&4k?DleNh5^^>QA)BM?$UAK zNE0hShNGIdb2bF$^^4{~#zi)2pl#MRjLyg(jaI%i8rUP=MePh~#Gx*D+Cz4OSlC#c`vdI~l1ixniYn=7D$ zxvKAL-kQ-T6Piq2eCns!dd&9cb;-($x(YGOMaKZx!)Z=y>(0tlV0VgwH^cd+w<%h& z%F>uG)c7r{bQ)m>$jwXv@o0z}`t>%wqIthf?5)jC@xwsM(!koNOc7hAO?TuU>k8}1X-#gtt>Zn!(iOl1D-I1b?h@g`Z1=}f-RBoZmo_2e&qRQf+4G@#r3V0tS*8oLoA4|o z&XOf-j@xTzVaj5EAsUc{83!!n%I0%f%J^15iJn~J8@aWYFr<)oy9Tx1>5U;7LQLo) zM@X+YyPMGSeB`VUV^Cnj+HC8u8KJFlX|x+Mi#0|pRHeE0&~2R#NXGIYff>5SmK>SD zzWk7EGTE#vMooUb&0sBvi>@EG0E=$63m1EByGscx_H8rOU0<2+7l

    cWR?hO?RG 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�fL|eqw;YV-y|gW2*Dpgj2M}Z$8~ea6_J?t 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�Gh#C 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/chapter4.doctree b/doc/LectureNotes/_build/.doctrees/chapter4.doctree new file mode 100644 index 0000000000000000000000000000000000000000..15e57c49ba36f1af8c28754bd91ca2344a907369 GIT binary patch literal 624096 zcmeFaOROu|nkIBFbzixws++EAE=}KlxU;e=Gb{3*h;Y~uj_RAY+V8g=eucxXynQ+x z4?Du)ct`kgm8csD1nNCOoE8EaF<^oO5@G}r!=AK+7$A@sFhPv~i75lb1o5r#_TJv- z>^vv)oZSyqS4z2$y<){$>;KpP{{OZ7cYgTy|MFk_{`bg#w|_SBH=;*%ZhyDut*t1wwA|QOhei~US4nsD z{=w8ZkYzmG>EC>ntq#Ng?(L6!73+y#ZT?)cQg3h6I1a5<5(6Hx{@<|lh^+O;nxjS$ z8u9suuDUya`iY+S4_{WQwhaxF^hs`i9II>c=+)-W-u}R`T;o;$cRs!S(FGSBdKMXB zMEAWgHr)13)#$0A0z2-S?q~lRJwpv$@*QZRd%#Q*8UqgtqqU9d$3|FqVfjaQ^=k98 z&2J^E&2OGj{(!T8`O@$-5;9Ev^yz002x2ih4a{u*640^vD?n}z|9_1CKf(XM4^TIs zZT{@$^Zrji-Tc9ZLhmoImXB^f0$SB|sQR0$EmQu{zx2KDwcQ-ShZ^R>`)$jCL~=XT za&wjo$c!k??bRr!VPo)3&v|&~4js98W87$-VVag^;dzwv%$%At6E~wB)ybJwock%W!XWHCA8brg)W1iqXg@Prdia@ul@i&Wds?H9EsXhPkm^-S7?k zapU_rqTDA3bbgWRy@4gHFL7eLZ@D+Bt2##zKL9ok03sv*C}(CRDRC zun=J3tBo4}`m2=@t6zU|!R^jau>%<#dd>(#FMN?}o4Gx(jtA$p-jGf3Lr+hztsoBa z74peiyCAVMU|&2zf@>=!5N`}Or`|-?&If&jhGzNLTwn|v3~E?sl$vdOCTc$0{Pec^ z3>5w9p5vZpIPl>gZN9(xjm;knHlGi`kw3lt{>{TA5UX!?sC+nAJ98@Li_eNAiK_b^{400_q3Xk zk#S9DZ`TtV^u%Ad=!uLzvkm)mZwSUKV4isR#-hKOxUb0Kr%wyptEs-J#~btM_nP%L zAgb?iLq0#o&ENfC-2Byd=z)g`Z{OMV4LH6P-m1@_X|7iJEW^DgB+sDlt|57j;oc9D z`m<==D_EXs!1sgZcc0MyS8IFn@f$Ne@Z@h^84efTeAM=sNB^4-=Fu;{i*<4Z*mryH z4T!%L_f|gK7`j^VbBy+WaQxo4vB>T>_V!zKe|;s!Tb-OQua(yqglM3=etFRZiVN4K zN}NOsj)_X#SYm_1$=F3-UzUVS#`CA~!c+*d8-0)i|icaQ)&2)03Tty8)*I zBh?1wTx0|Z%(D8g%glXs=`sjH+T?OFFXz7Zx9#b;_2K(FwL_y5YK>kQC005N^jze_GzX@0{^l5EUQl$5Vq^COe1T8(dnky% z5nJXlXT{MC{G!zvZam!wRAo_YO$yIq2?+%b#aFaM%BKEn1&)L0<1rCm8!+;=cmrnFjn0 zuv}T3^=DziYiOQl!1sfu_8h|C3Yg~^@BLtDe4|YI$A9NP`1Vri8k%n$@jFO463Tm> zCEjp&?>b!5*>@3+0Ptz?cm+)LyA1dZ()K-JDSxn#zJlW!27A99`Q?WxiYpL4bfouN zf91n9)fEiSG1~jV@tgPi0Co9b9X@J)edKprfq(rH!g#|9y#4Q|P+&U`!B*IGJBaK1 z1&|mej4v-CA#Gv+xTHn(edm~S?h+Z-0a=(oF#@2(aESK^Q+u#1Nyz$QE`9+kAw+gE8=E#j`-engNqR+nN49L+6v^JXqP7PHecb-U4DV)A<{Oz*nZQ-M&mCUT#olt99N5Hzrxb!kz)vJE1-HWY ziPIFto=beAJ#s72jcX(%7vdUV&v1+Ph(8u@kU=4dk0|jm2HYVX>}mM->8lsH1`Par zhQDOBz^6oTST4-`)7iryjE^>r2$M^8iwvV@X&E?gp8NB2BJBo#-Mv>r-ub31$~je) zMOz-va&zaZ!mo6Yl))HCWO|SS`15#G4`7nPz)8ef&)&FMc`-7yK!~=@+#Mhjc}=7= zjeF>?umt&qOb?_Nd}9(n$^6aGaL#$Q3=?WL3|vnqwtjw}g1g}2ZvHby;9;G!Z;)Sb zl;Aa)Ib%NV%E%s)J>GaB(!4i#ow&{f9mpdR zNRZ+VNdoB`0eX;@+RBEJIWdB*$B@LWmG`m=D{6-duC z;D^BUv$yd7)k@#m?Wy_SH>7I+yRT8(yR$<4owU9u)GRUdubo--34wJ5)>}F~1=O2S z)B8EI0)|T#vHA=m@oJUNGTev2Q~7Z5d9?%OWA~Ae4M(U0fNBHDWaO?rNTH$a4pAa#*Br8Z$c; z^+!3_Fh=-bcl^-@F7}FmK6of>#Q*%77I-26{8XRXl|}yE7`p=HdB*$B@Lbs(fBEg( z_dxUS==j7M-c8(p^EE%{;SEyU$i7mq3;J$<_u`pc73ZPLU7g>}b)DaD5ik4}^lgIX zk|U$ zJQqBTG#<&N70-iuRvn zIPA#pkd1kJIoVTve)bj=Uaj)2-JY8L!7zP$ZIb=TYwLcuA={K0QiJAMv{RHW6QXv3ig4COn#&d#SQ$tctko&~{ zBxf4PS>II(-_=JWERs26h!mkv7bV44E5A>&XOi|@C{G|d59}KIyK?Ev)Hf@`@!a); z)ccFyjEaX%zkORTY?1RCJv?P@JkjU(za6fx*70rMcxp`#?D*-o+`J3@f9wADG@P;U zzy2Cl-pwVwiv+wNE0ch)ry;MgC$3Xo3X96O3p}=n< z{)c&Q-`)2e;Q068_z%Nod-9(>6F7hAZH)Rb=k443Jq5-Sn&?6ek2DdY8XqhTt`_<% z!+i)mKfXw&d-}V*Z+c?fcWZ%rW_n5s-2M+eBZd!nE@o04>y%YqWm1&btB}nk^>@(% z#JWW3kaeyZgMNr^h#mSR^GTL*$Ud_;H!?)d;$o`83Qimy#ymM8LSo=#@avK!l$Yr! zf`atdi8o3NT_hdPZ|R1qBKCf%NJ2If1~g5A{#S3^=*B80ssXQAXWO0}iuj`s1nr6{ zK6ohX-2eC*%RQwW-stlntbdr{`NGh5-|lH7W9t9)wHe+mXvY^pdzm;Bv_H%?^9uaC zhNpmdZGr5g1+ougWDESipJ{P-R)}+o|xm^66&4`uO!q*x3C!F&C8YJY1^ywd$*k%FhcIj98P87(ATe5 z*?FqN*EuHl`?<{a40peFy|2IeDwkugnvO>Fb?z&ibGv`z#m$9QpL582%wzQ6GEiA*p#6-5w10@&|)^&1D}x7&stLw&@+AiYNNip9Sq#&^*(C-x;DSYy1zs zJrP_j{JXsM)ao9T(nt4{bz%0amdCu>e{I*^tv&O}9UopcGt-{GnQ6~6317kVsQIZy zKcQAG<33U=khoWDaW%th51yLi0WrTt5OZOt3vM1aK1PrAOz8Rkbrl@GJh9AoYm9r$ zKPdtK1|pdI%;>}}z+zNMtr;xRo4sMJH>6DM?({d3Af$?koRqlKf@G*5*5gl~9^?w& z-_!#T{Tr_#>nU6Bi9WygZ5DXHEw|sQ`xC2qH-3c+Wnbaj6IRSN;Kz@&K9rAK}sE5Y6ph_=RqzIZOZYC#q&u?68^|i(R)$7InTQ_%R(53w1YcxCr6Tm{SkEzB2sCLU`=!FK)idHucwMRKS43l@h;ZF$poG9_GBr zkAGg4^LQiv+jnlnn?~5i^(vcGrJ>&h0#kh#qlm0DM(7m*Vmam`3+baAujo z%6X!u_R#>!c>qYSn@{eesh^N?virLP4rkZ<(FWe#Sa3hxxrz{XS|C({bwu=4NcCRg z{pbw9m4v&rfL;DOAn}n+^Po!p%=OgAuP?;#dh_E=`JY}J@7>yV{15N2e_2YVZQ1XP z-z)gu{?BJZ#g7RpKq(Ky-`+Ppwd^MhjtgqOmtuq_LG>-(`uin{h7nXmeFaA65Cku%p0LB=O?{#Qp<$q;we1#tu6BwnYzFJ-wH zwVb;EUxNhNW68QRn26FA~EuwtPAHR;3AVXo{v|0=EWbq z$Zir6A)fJF)H4&qDAc)cLQs^r!&$*L5%suH2K4~Aa3>ozTLqcoGg3xF<}ni#`QACt zxE=_ry2{Fzr|9uPn{dTB&oCHB?GIk#ho_9(C;C)AoEWY^d5+P(Gb~pQ?vL;2@@h%< zO;3&cAdB8nH&A~KyYH4Z@5icCVKG^z)~d|7|Jt=ig1HKPdL^_~H|5e7AnT7Yk47_rHXc%n-+8?(VkO<6;7+ zv^Dh7Sx079Kit(P5GC)O!zsl5xVdQmJKeui{Y;PD^@dizkN)08Hc1hicQFk<`Rdoq z7wlJGfAYo6C+26-OY8G5$*AW~s8J(vVYGg=Hgb3AMTWFxcM zjWJ0Lo@33}6B6_>tq`Y|bOR?Lal66&xu(abN?+p(z3_6K7>U!XSWM)Z@yC~tymd*Lo)I5iE}vVeD+_DM4kD?!^Q{$kmv$WQ zR`%M-r3W+Yvb7I!cHup#}#UM>DZM|ui|2WkG} zJ7%~D$oud2vLXwC{a3GH;oU~TuP#Qx1v!~f@cl2YAj6lZ7WahkyNq$ArXN7~oi~~I z0?kv89s~A|o(ZrY5D{?&+xh!b;5{t-Cl@JmS?)u_<3;{2&$P%tpXt-rq}kP?pML%n z5Z`W(etK*F)031}aQxGp^(pLpbo=A8EOxG=)_?C?OLC+Mo>7wLo{;1hiu>nkO^=EG z|NSmRZ~s4}_vihmrOsa^YU>~Wo&Wfo6xS8${N=Z5xDSw5KfUb{rA;Ck&!Qghk@d{u zK0(j#Hudh&{-mkr--U8a&p~W~cqEr#1EMrpID&*LG!G^Ysjl7NdS#lmt)dD>mx@G4PH z^4kOjB=EDsp$h|;BR2$N0K{|7=F{ewTXYx;juH5_LEp>n0zVIY%x`t3i!jJLl{I<#Ggg(rLA zcKF}EGY#ITFjM{y4Di>HCnK`Nu~s-7N!b48=J#^d^MyL+s|OLu&8{HKdH0`C!sX+x zhA8Lymxn%)99dG_*Dq}kW54i^nGi$|--*v>wW4iyKfsH#ta*9o%$}#}W%sdL+0|9y0{qF0zkAFn;^zsA<_#%gM zAvgH&B8rcW@dEDdXP-j!{PL0tv$vtACI#e?xT-y8tvw6 zTz}cFUA5AU?3&01dHds=T6tQ&dtO6QA#0^SzPW)9LiB+by}%__n->N$9&z;9>yv%{ zhc`L=hhDp_ZiR0?|E7WN7j`uQ6cxsZK6`lfO>f^V`iXZhPi{!21KR?9`H}$e8Pw!U zOTT*q5upUvkX(SXJWX^gWM3P<jpdX}OOl%ys)59+weD<)okF||XzP-?*^yAOJ_%tM) ze=j#Ch6hjPOG9oMeZ)O~1_j@!R|V>T;s%OEUW(XJh>8hAi%`fy|RNWYb)=o~QlQ&AC7o z>~ML8_5CV$bH~x2VN_r(+Zsff;5dDjfqS;#z}afJHNr1H^?+N_iKGEP`(w8Bg}}UE zzW6!wg8d@LzR3UT{Pd8eRXz(d=+8|=Ru~SNGU&50vfpDlcOr)B`DatewYLPv)h7+v zyV;4w_u1!n?$@76{EH0!Q;Gkl68}#n{+~*GqOPC}{sc<=dyg=SrwcIk-&UjfPzHGW z69>OClt887PzHYVirBVXb||ArJRB7LlYg?J|4Vhi?a+XbFV-D(5sTTx`Q9g+3ih?WEc(4z;a(HYeYwgDV!t51?-UQ&)Ezi zVW1l(d&uH%p8PrgmwjSx&JB6A<+;lvoczIm%nfPHkek3al*S>$nv{9$jhW>LUr{$ak$Gtw-QFZ{zg zFVD!oB6)>BFAJaU$3!#B5bW>|uxIZvH#dJwo`fW@b;uPE*30Zf{C3<&8RoMJY31+z z=zHHI_0GS%`9IrIn)!$14Cv22^XG&Va=*@c zk|mL!=pxzEpW_he+WkXZ*{Fj6|3>!w>zlU>_?9tnx6wBafbb+S&ad7ka9w5(NumGc z-CxidZ~!vS5~*+}aVg7}AG3EU)Gt52hxB6t`Y&M2t9MBF1%S@p{_^8D$Ip5b;PD2^ z#PR129prnv_Ie8_`-!HE&R=f_)ju@hQ<$v_Gu$og7uk-Sr^6Dj=VcyVBn#7j$)e#7 znsY<`jg~hW$RHOC+|5qjeKZky=?Y@~m-&a6?k3`1Z+WkY$heOtdSlpp@tqT0&5XWx zfV>6~8TZjdh1ZA8i?6p_je7?A+n|n&`)Hy!*8fa<1kv>RROhBg1o0kC81-o!iUgEL zu!%fc9?i$Ufwa==U9Nh3^HgNu$5RQfkHf#QVedB;8Tj#3Z;Zpgv59YV`BqSow;oUR z1`PZgg!z6`k%1pg1)cE*2H)VeH|Dx}2XAL|fq#k4fXt;cp^FdxFYh(dKm7L}RMIbK zpY$SH=vDIdD|-bK0v5y7$BR|*nf)s~d(HZ=U!v{OeoRJ%|`0uLwTr-8}rt9y2>vZJ>NJkN0q@s8Sht3ky$kztKC{Unmh1U`NFAZkCOgz zzgAmgMr-x?-cgLN`}TI?ae1Ws?sh7Xv8zg@Jy-hp6ixA`SKrsmJAY3Wz>MooeI$}?Xd*}X}U+N;O3*Y#8U;Qo|fum4?QBU zU0t)gAzOfXn)HI6((RU$#!|1#jl@|=?YUN+z(J8)sU)nAbaA$`R!se*4(+{Z7F+#d zO~R=gv9Clsm&vzJwSIqumG7NSwb>&m>sZpdtd;lecH1C8w5@VwUn{TIn*zQ@R=eCP z_p8-v%buxm(;6G$GUByTYfF#f;@oh9LZ!TiEfJ96`adgq*!o1MkNfON$4(=@IS|M}T#3|n{2tr)ZbusVc^AxSj zrIsDfchhAWM0$^p=I*o;v-|x%&(l(`*A#-8x?w1@VR0PCqrgfDiY+!dF56Dij`OSX zV7}2yjWTaHyh4dm-D${1T%q7aDZi725@kw*!lK_aI-<~01$)&!_I)aCo;q8r)}U$k zX!5K)mp5UNGPmq15ofw_S}?lBtypSMIO+2=^;j(#w+p4M>z>Bl2@?(Wr)r;xJCg#x zb6vZeq_n_OR&Y=P)=2fxV|md`=bXgR61!`0g1Fi0LvF=LRw3=3Ol{?A`-wMfl*)`T zP`Uy)@&+||PMaym|UJwMW-l#foIXiNDP18C0bH0S1UuujObKjrL z8lCyvu{^82?M_4~48wd1A;V7r)54BsdRqK z&rbojO1PHmZtJ=e#r`lqlgBe3TYET0cAFW-^Kc&Y*ZHD0Y*c+!-31OtbHgMt^qJB) zMt-r#Pb^-U8~`;bE>zQ|UD?_5)d1y($-Jk9-DBLXRz@)+2pre78Btk+?z~;IR>4i? z)0k5ePL0Rje$lQ_bn3V({aBdkNq%JxlEbOopDwq@@sy_N-T-@;vJTjGJk~X>-PoNv z*2X>w{G?u@>D4$%QwKD;-j7Dnyf>(7Lq%dZnie@BOw$xJKN&RbMx{P(PYi=96eY7& zud_;17gBv^FXNpnh@z~^vZDqjO;briQ4~9#%fV6*1XfW+HDVT{PQ5q*pA}7$W@V2t zB-W=Xv8xAm$!N7W-m75#W0U8OdG(~4r$T8SnrX=7S9-858B#0YtLss_->R`o9=WMw zDeca7eh|bvZZ+}S`IX2=*0}F>t+qAV;FkPuvp-Mya?$KLM{&-oqA`_%b)i+}McQ1g zxJbuZ@~q;f@nA7;ZUVovJ*sNI*{q&yL0GlGTML~p6c~=}va10DBAvT&KAd+!+EYMD z3nCaG7}~Moo|ci)I2b!wW{cx-eNrd%Jea$a&X6-x7DUZ3`p}(@D9}nqj}F#2o0+Cm ztyI?gg*P~9N|#07V$o2x-P&GM7=Af$mfeZBu4C)%eWBmN)*Gq6rOYtqMT0d!BGT^E z-Q`U#<%D>?oh+qoN!iTi^3LB*2CZOAkf$?BLrs*f3wG7Q;nXeq(vV$=6x9*sqfqff zRt;n-o%#iirSifuo@|}YY}Tl(O+gemvA1=K#p0LeLt) zj9%2=>-~}_@*9WG@GJ4D6dbk|&r?PgReQS-dQmwJk#*iw=tQQ`^5 z5+_v(QeOo*AKV4is%~^SSc?fjUq0D%&&fR=UShf`!IhbAzD=jn1sdor>PB1JDwa=_|Bt5_%< ztMXnO4l0YNS*d{3Twk3nH@o^`Qq+=x%9l!!A5i(xVw1Kim4jIDO9v%ni*c>uF~?pU ziAE?N)-y$E)=H&*Un1`wAb;xx?ocRctBu=Wj5L2d9t$VOIxH6(tGO^w_%1e`V^LTA zy_Ke>VH6k;z-l&c>zihO1!0&B4*hX`AsUIYSdzBtW|Ry9p68EgYCD7JOdbv=lVjna zRC#447mZbPT=cbJ%CZNZSLNnv$0tN*EaU?iRWWw%;HU+GHsS{@`?R2_#In0ysa4w? zyhddvH%+%lkt+#>Vn7es)I1HFwG9_2b8{K(lqPf<8|FjK7gm(BG?eDP->lVY6s3uD z)597Ykgc@_h{tytAoFH>wc)r{QH` zK3pthRup5ov7FDh;EhHf>RUDn{IE4m=gpcNIL-QE<1{dMMKe>^;as*qWlEf$(1swh zd0w3>hD(+7eiX-tHMGTPFC^4Kqix8~681s~maC1{OK3`xIEFbXN#)?pXY|CA0e%Y0 z#M_J@nwrp^1>oW^aXEnxCSyOp>NrV)tvigS_2ZzEB-ji-DCtqNT3La|{b&XO8I&Yg zRb%LicBJ(9Vtz>YQJ2c=QD3fa+Eya6MnTY($s*`jdP|Mx3A@nxO`@OqLHjmLp~+?!!V^vr8b5-=>cPU4|bZUEfp}=mXo8r zE(xqHKnyCKCbx*{^~7OfMd9*nr|W)P~I(fJ~0*y zQSVIahnaO)#EpulVl(Y=>ax2XWMSYGOVpxU9XaF8zM!X4I!as4X*pk_cmz6a1v?~6 zm?dnFExn+-6Q{FXHpiC7580?MN&E@V<6)*p4UqJ4rc1g3Srr7$)buHdhmBb*$|g(` zu|#nSC|55!JvqtCEuT-Usd+fgj(w-AD6MX%({ver(4a)qtg93h9?$!lp7(<4S|2K% zdY4tBS;JZGX6mrj-Sv8*-*%RBc^;0v?VN|MUv|cMeNClGSQMD~kehm52YA^!V2Ng{ z<%V9{PH5%l3^ zckPo??f&>{}l1z0$Y#oA^K}*_AYqHO5rxRvGLxshh<4&19vufEJ zhBfGAG|_vG!%|5h=~xrJ8_ie4nd7UwU7qJBW566w+uMmGC(6KWO?_rk0XOIZw=sK1 zjo4U|t=r+vZZuQuQNL=>Q@VKKXr`oTX7{u&DV@#?w&>39j<&vPxO`!MIysfR9xgdf zKWSVwNLPBEkHbc&R&Bt@=3wQL6l!fZHL9msy`8pE=b)okX4Q4e;s z7c^=cD%7+REg!}@tPw+$TDujDHm7T?y;sTtK(n*H?6GC97Pv%(MeWV&n(GQMMugsW|bI539vu0ME5FTO*!sFwR#rE2c(CSQP&ejw1qO_KJnocLuxFFRL zQP7+1`lQb+O9f3bPy0O`f>vocapjOU>XJ!UD2R-q8xQLSCDj`>cDVHorC4MQ>9{CK zjUyC?x|HCwz}j2%>y^yD9~3uI+LtKbj}yi+Otag?Hu;?~+?Lc7cwUqfo(jTHR41KT z47+*j!zZy}CMhgyD_qYxiMp&P%x*GtS5Yv8>gBPIPH)1@-7cYH0e0nF1h1bcht|0E zQK}h@p3d-c7f#n=IoTfiPIbbn`k)ElINDYx@q8sUDQa1m4u-p_EKg=ZrvWo6)5Y>q zZEV_8kHitgei4@VWX3~vNwG8-h+=7y%AMJ^L)fmm50CVQ7SK)?Xg#bS>Z77N6H=SC zATf59-9Gl4v6<#qLpKa*%Gl;%q`HFdh_g(M9?cN;PnaG@x;x{FylR+n)0A3Ucj6Zz zSG-BR(o#|`1`H^d1J%JO?yM@ zYMShJI~s$sB_FXdX&a71_E>=JU8$J~gPG|;p{=>Yda*KEG~sh^tyoNA;)5C#olIw< z#1=>XjGGopO^ED>Tq-aRobdt{*l8Zh5S7sQJKJXiTiYH>VOJb$%f$V8S7C9@HLSM*{8AFlwv@8})+a?=mgZP1%=^0wNj5qj{6 zEmChb7n&XG0aS)qM63g{akc~9^F`OiUeDy#IG=8hofZ$rJQejut99Hay={@E)1f&~ zrrxY6yGtsC4?xcj9<##Ilpf7VG<}q^F*K!l2z)pj_zAQ5uq9P^DU<)zqMmHmd^3d( zKuHEs0JU=yuD9#jo-k*-&XiTOKYw@w%vwr_ZjI>s%2t*@#&2YUh**l@SoIVGg*&D?3`9WUGjnY9uY6OT$)(w+B98z(S_V`kJwXGwiu_>>`BBTy%#3o{5HSANR4`(ZC^#JzabauGtj^rd zSx#m$PUOTWizlZtZLHhnvIIlOWSrq?xHJ7twYnDg=H|oRW8s^ld8H zrIG4QmbTxf`84eAqtvu5OAL5e2D?*Hq?r_UozoeBvvlG^vqLDG;#_mPN5rC|W>7qt z&LV`E;0i*KRnrsO%bPnmvGs_A><>vQIf#L%eLEFS!=*1Aw3#Tb{QY3La%Sqx+YE-b zWO%C<9Tv=JF{=v|BdtS3io@x0*Xosm#R2BvR$-3wA@VaOpKnknBUy$m1&UUM9)}4f z<@+!JXEo z35&?xc*E|*sWQ?;#Y8EModmnIuN)6e#O8Lj-lV!*#Pg$ym{AeI7N^nT=u&Cs_874@ zS@xu*j)01oPgn7d<%_=K4w|$fb!Zy_1i8{Utl-BmU87$=3P(9FU|^bYC7q&|hiD+g z)S)~Hk5h&fQ83R9^pMM!T(g%J_nR%ESc72*1MRfqX@lYh(FvXx4Xb$U(BXok2fV*a zb@Swp^FyCqmJThK^Z8@2F}%Iq-yVIN&F_jG$21~IG@8xLAeaw$%j}4Ea0_ZFU2gI# zD%>QeO2L+FK@Cq0snMIHYZ3z_!NbO605fsQz`{4UyBO1I%<`;Sp;jv_YrW#KS1YJCtFM}e>39aqINXa#%3BkAQQH)J zxwWjQE2XEc{cfY_NiuiPPGd@I#zDu_IBlyc-DaY;yX(BaZw!5{BqpuCS(T|$PwLDl zyO7_m+ek)IdU-T&EcdM|_#(HD`2Es84XvF$>CRJbIYkgnm=61apwC--p(WG~v!Jz% z_q#Bj%$JF(RoLZFod@oqFZXNMvIW~Vx6~k&58TpXrMy}?o%F@NmgrNYJsPfOA`Y1h zm+a8x>E3a&?HbT6#v-7+;85+UZM)d_U>w(4V_P3@R3l<^1bt=77AEy>q`Ing4C}f( zE-u8asR(%~_RNA*QzvD+NYVbjwoE6il&+MpBNXSBw&_G2S2}v7)>g%j$#AvWBNo6b-}V4PS*t_{p|Atq|77gzm#!A$x7Vzz{!8PF#qSccqOJ5Ate2Ezjj z7S#RIpiRx&A@rbg>>sBcPSPe`#5PuODXffkY}gtqN26U5cH2=)Da`lyIiQfDc8ID{ zX_(lJ&@AmoaVL$~;DAIfVpUW??8~uNZ`QJW&vDHTMu`7wG;L1hs)D*S6I1GzC67w0aJIkfq9gK`{ z?Mw3oYwrdvg^D+3#Nndb1B=9I6YjYz2Pe@cd>_x*G(?UK;>RtOtf{jpl?w3+))SNt zCC+%k4$>mW^WJu;qZFhgR)O!{9OwKbzNAL|kzJV46`^X{W|Mx+mZF)&TrW`nQ41>j zx>RnL8+8)~Q)4|U1Hg58HZI}oyi$f`TrF3|tv%{d7WML<+`hBMdS78F5-!W)6TaB@ zNi71x%1v3`QRg_@`Y<|>96&RRtsw8w;yw6u>&Cd_Og-YTeXUXNKb#0 z#85Lvidee|Ra6bbLtg=-M8dq-ow>_=Ts`uIcEfhCPy6}WRR^4<9Qiro`gXb~n6>uO z?8)=F?#*Cj`G^C=O?Z2JI7Q-tHxRd{7sb`?5X}lu38ST^a0ld?Dt4hcy|;5&s=5vf zY>g@R3{)@#QLi?lM8qGW)Ylu!Ws%f~#2xtP`5nPc*T(u-;7bKgQH`d8fjZj7ANyljg*4lBm}fKHmhcgi`6Qx8?O<&}4c-WeoRHjl0N^d&lJhhJRj? z1G(>#n53#9^-uCvG6LoyVo6B2BiAcTNuoo{;#%yXGLVA$yw`~8L3LCuGlkUvzMJhW zqC#W7?9!WCJOS#nj2TH| zE{h1&`D+Kh7U+DV?hy|_THQLd9W_D7lGHwJ)+IzFQDVRpNifII$FO08F$#G?pTtz1 z>KO43kDU)^<#G#53$CCSs8uLVM%!vt;9z5A@j|gTWqAA+FY;3LgyggWBxI6_PoLepkz)559GA~>9<=BN2`N^;<+PaC0-fbHQvjLEJnp!TGwbouGQoeLbo zU8@f4SyNUx1vO4)$S_PvZf<+XaN?s@U_?T8LU=k&J=B~Ct2ukxy=EJ6!)_9x7N&@LkmUfmto%ww_G4bq zrPgMInj0oiT8IklAw(3RQ2{=23U=+)S|eF`EDtC(ZUO2l zkdq++pt;K(j}sGt5PKxi!og;}))X;u!q&dMH|*os=T<(;#|gsBos&i(FLjg&Tf(i^ zQx~ZNXdsfoMtVgw{R2~h?xGL*1#;%C>3*#t7FtENI6v7_O|KN5R)Vf(apZwmEO_Fo zlG0p$enfqZb38<=I$}h$5;a@30cs{{eWiY=u8Tu?i}XHZw=&$ps6x&R;bn(qSy>4X za+1RNP%UY@(X?n^%PQ=JAD|S5S|e>|#llAG>}LY*g0%~~PHE~C1Q8Ebh|wNH$wxfO zkV-lNvoWGcF2!yGz_OQlb}9~9Vp5Td~oUgl5i!LcVh;lR>Ox02q1tD^m#5z{+O-?9fw7X@zi2oc!AgLNB z44i2JPPRcCsNjAAs33;wwnj%&siuBf7k##kDvnFg$DupSUw-lcr zQ1dBs=!ZRovQRfV4axJ)G1{H;#f-New@=8p>`rOqq3+DK3J&5@>sk8^4UNN#j_ZnZ5^pS>D8%%T)us9xEe0b0MTk#>^bu(cTR<9N^`rMn#qELKa|?ry5M_NJn2 zORYpa`Rd%6Y++^_=FnXXj26}#bbuUMfUp!5k_*r3AlD4a7eNVoVb)pdnwOqR<^Y9h zMbN|qTU^^T5EM4jKD%R1SZi0>7MqZ%;b93`!m6wW(Knq zR;ATK?UW-U-q&rAy;;@N70Fr33CmjtEoFnv*b~MHH}xUvXN~9x1Fv4_jYesK+s+WGNH-0b%Yf}8d#)O%YO zHD%ovBTA!yKa7YT8-lL+VyDqsJF_OCU0W{AaHfv*DJDliP6@S zLbsY0AqgwIx~?b(YY`y%c#<5{BW{sHg9v2!b1e>3>B#F@}cCd@f+2LDGvnX^c_*)F06dkdW*k50>yFyncOZUuLHN^&BufSecGoz$%nH|Ld(qZu2ahN)K z4gP*a+oicZ@#_v>z~Nkduv{+btu{CsZg*Hy3(3$Xc|r)kLeLKG>5=3ZSOviWtvrjX zE>G$vN!{2nkq(niZ;o8Eo1%!XYipdG=ec9M`UX#}5z88O-JR{dSKx!6@uOMBGAV&59)!v=EatCTy^ zK3``!nV3YYN*4-z9XIPJcpZ3rwKGIub}BLZO=a{Tb4ZRPptmYF9*M+u7?J?PKM9%s zPfAz(6B~D28jOOjGzg9;^lOZl1>R;Gstf}GCwFIaXEA0Fo>}1%VPt4ozgug21xAPv z7u`*gbl#2ft>P#Qh0X9tBNkgM9q5MJk{P-*oSFS*BCWStw`|9BrJXOtbAfGD3RHnV z9h-=Up-x!pyIiZEbcMcAruUn}j@?DgzRGtgwxQ|vT&By1`ux;yC?Pau10^fRp~D<^ zsL$7}{Q|)Rr>M?VlzZ@VoTmv8-WU0}I2>=|IkzG{8mswJCE$I5=cen)k?XD*|4>!+ zra_PL60MBr#hzw;B(8UU4aWgyRKhKfTOnmf@oqc!P#jR8P4_6Sy+PG%KyOvK1-pPl z5L(j`)s^Nm6%_($v06wFfJ?3NX)3mjNu#-yM8VbEQ&?(hLsM5y?4biQP09DyPM5W6 z0$ZT81Uy+kqMjh_cSoI8e&zx!*plN$^MEX_Rb==ER@H(4Y}(N*mP8q6W1N2Gffy6Mu8= zByEJPlZLQO&&os4c(}1~N%b@qwKc1wE*@#O+8mW=jVUE5T#T6O^0Gt~Xx?-wNsm2E zqK2san)0nxKZsD_L7$Kz@295BIW=Rn7^5~|wxN)k(vKz;?w9)m&8986&e8e!Bs5D+ zLw_S@l9(v+UueyfH0*O?An8hoiYcx6dY>P7nrv|-Y5H1UxldtSk z$%al1O1*q!jB8L8-D-U^QdX!OEp;U&WM-&QHGCO3k)|vPId#UFko9hrduS+(kF*jmZcg3OY1a%-KJtn)%Ak7PF0B?*l*DXoy0t1% zo3t6$lqK5tdtDm#@6FG6!G}~j6l$kxt*PsEQi`2O*6#VgaK|K`mgOwWWqd~RIpVC8}ZS8F9AhUK= zflz2ymc_2Cpx9+eS#RWPq=25WJjHrDlIxUim38&oBP;Gb&qGsrF zS}0mbZw^9b$uH+e-z^x58ni1PL{m1mpeUY|{ zeB=&C1-WbO#5sRhBXy(9hu(rd92ckfG=0E{qjSm_C&YHOrco%b;T%#`Cw;-^>*x8()MW6#Y%fOSOx9ww7A_;^4?{JY(38m`hf=i5ChIi zd&{U`Ev!a}s-RxJw;GqkWkGe0W_{dW8;Tq0idIbgbjPl$Qf0gcxdrat87S(uFj-VP zv@k!2Hr0|!rZnH0Dt;bDjD3y|^8-}t+FQ0dtxwCv;+DqwDc42lBC*4Rsa1(ULBW2X zsxS7wu#u4U5lYEqRpQlX$p^7(8_L2(sn1ley9l2K{nKFDis-SbqKsKoeR7897;yt} zCe%cVTj3B73bVEC3a4;TZLRBws^COwt-A_*oOfu-sE_Vbecjp>1LQ%QlEracnw9%hv)x{n`q~Ty5)2Y?T;4y7 zMF>=XK9i5`Pzl1V?L{buF!`uXZStpXSd*Dj*RuCPsWA%jo8n|acw1A{*wz(SD5esUD)N@fj561Tl=S3-&!l?ZPUT@B@GIV;4tCAX zcOc@^?a2;lMV@nM89CPqjR)AAesP05@_rh&%QQRnsh*e~D*Faq^*Ul1#}DpoW0WhC z_&z;gsSWH~n1FYt;6LqL)3(p-Yu(|-LMWj;Tv^T2w~r|-MlATEmetDj1OZ2H3pCB` zap+{+?&APR(?&^J3-Qa79J1C)ER0Z3Lh46OvUMoiFb!s`-rJ#i3BHID?)M{8j_0vL z&R3{9MVU*)gqJAR-{M%|2#KPt&*bxYj@MB?D#EW(`$d^y_c$cLb&ojb=(lI}P1n-l zvO5B=BBYZjGHO}6TU7q_nEk#)s}jx)PGOJqBv0MfV53nf360NrxZ}meHqqGxbsw|I z3}^22i7$%teS!m9gF}$jk&1K+wX$No8t|q3cui{f4*JlUz?be93aCZ1D=4fzEoW7Q z5*!4@D>(L*1_4e^)oQ1r*J}if)#26R0I{YSZ!pTr|icDau-Dz#lhwpN|Gpp*46 zN_#enE^*ox1)yu3d+YCs55MZ+TodZSyx}QY4JC5MgOyOi>@STzjvN=f8IEF^`xy#Y z5=F-m4vtO>sJoqP;Y22|RD|M0qy!XiY;jy?IwEJWSh?)b36C)E)GI7B)3J~*LLqYr z$MW!tA9+On**yZURdH^Q_s9$C|37GZM2cbqc;b-_#4sj?e}Dl4{*PY!+%F;{Dl4;c;DiCA2ATJZd(Tlr zZtndyYdtUY+T$oFH|!m^J|dol`$|~AJ^tbo`+4R?cu?66Q=zFS&JD7>4LolA0P3s9OOe=!XotLW&a)%K$=5Hdw>QaQ{Nj zuvl^(f7??VMS$A4*?jsB@WA$A^`rNEK@%!C@X-s>NoB$heLwDh{8ccJr3;vL){CYc zi1oYO6M67^fp}SM_V7C2UJAbZ2fsIAo!2vDkM8bezwWC?6W}vaHxK?^2!~zf-2M28 zXxO>lFX#k*=`4O(DSmp5_&auYN-y6LpB2{>mv8-Ztx@ZIguxeu{YBQ~=;y}Qbo1rc zA3HdZ_7Kd~egAV0P=9;MP9;vr!*1?JfG`O?kC|hI#mCK-UC8Ng3BvW~Yd7Ccq_-qP z_8TGBe|0SG?F`-Vg+D)uJtJ+?W!B62#=G-A-<%i6zvNZ>r5j|1V5O=-_4L=h?tNF3S8Xp7=Wh=9TB{pgKTGjle z*{BL=4m{MA|G2L5lnV=2Rvwj9__cci9zrGc<9!4J@+)?YYC@LX<4i5terwobAm&-V zNppC2Ab{SH+=SYq2D}X8m|gzXH{25w;~D~ivVb>}*t@CDxl z%4DyogdK|_o;}D}px#GSw$zzG73*)VD+_7aLiBg4@ce)F@Ne)>sHPzA*g|L6KUUDN zoQ~M2&oMO9AX#kO;<|w27%_mxsnsU9D% zxCo;3#)a^pPa+Ms{mp}iWC1JfYKamu-rFPL(+4Jb4(n!b!S_f+#pe%=Q%7%*`5%6K z2QL*LLw#sP42|>zKC5R+k?D#OFKhCczPlFfIy@fteW*b>&@R6-N8)v&-CteSI{M@{ z^7$Xt$aUY8i$NdIVp)gKM0u@AZO#5>qcnv!+(}^|EE;Ut;6?9iYzGizmI;o(Gu(;7 zjbE*sx~_kH|EXWm(?T0~3tqyHzDYAuCw?D_Prk#F$yw6~N#0#1a8=he>fV?4uRZ=T zz2JQvS@yQ*X@=qU$NT$&K1PWB5cc!Wge?mV+;(1ON8&i3sO&qkq<_b6;WxQkFlcb_ zoU~DGcM7Xi*T7%o(H*~>z@x(PkS(RX0@LS{bTUzTmY?DmYH#DP?LF`NGJp2&<3K+k zQ`=PNHP|J1CJ)hAVto+Z4Qd`g#j<~r4(B9f)A?i1!cKm2KWrCKy=!5;@BN1?{}=xN zktYS-uf+^#>?-Xa|L~vwHslV>nt${6P=J5)hyNVxx%>ImrMEx+Z-4mDfT{ig0{!uS z{R_fR@t^#nw-^8I|NO_lDgL{E{m0^W_`knkB>v&Q`VByMMc(oG6>lOY!dvQm8?Z2u1gk1c);YNQwaN`gEg1pLK|2n=Kfja)8 zBL0gj;U|(0w)pjme*)P5-7EgxVAVh9$Ks6X7l2FuOsfBF?!@oFB~HH>hw*FH+7BF_ zprr|A{ny~MpW${8$`!w$(tnyT@&DfI{h5$i{U5)+#{d4?W&P7o;J@Zt{^ec5cQ1hO zx7z>uKl(Lm{jbKX{~oXNr!nh)g7vTd-rrUHU;NeSzXur-%*`K0-p@7oAHmlD+aJ94 z-~3NM%xL^ShWY*PsK2E-iu{3%iTuIxH2H(4Ir7Jv|M_D>QQ%Ae0!#ko3jsZipT_U8 zzyBS6kpKPf*1!MV<~I~Ixd(sq^E+U7|HVi7{qO!&`#=1vUu^1MFl*}f!te1JR)0(0 zg)pxFl4AYqcKwE*{!5niU)UB}!N%x3wy?f49T^;&<8vi=Vj>`(Ir z|9uzi&+Gh$1p9wu)&1N1#$PV&zazm`Dt@%m$j{?Z|Be3of8l@rWAxX`!Vmld)K}|& z+5Gu&`9FVq9dKV={O4akE>-yFzp9S-&wu^LKXK3g{baPN!7l(#_QD_kyezc!zoGtF zS!n+<`o~yk=(qnJ3(dFePlLbs|A>VK#SHZqEVO7m2v-xe@*7wlwCL~mrx3V+D|P6U zBx_Ia^Ksfxk)z!}g=lx#Rp-~QGj|6_;`}&2Rsz)>R=Z6I2YH}=chPS210B@2 z%e6GWPMS3OMdw_be%V~-#n)jRcC(z_uNMs2M%6~aI>8yNpS73;{-n6;?{*fTLmbML*IpM&VQEo#(ER@*wX@BF63 zJDqpC+0XMUcq|U#cHCzYWQCBfgbXYdu z@JjqIetO=~2*?lH;4D0-j}kbK%C{imrGo?{wu|(lrb~FHp|equ@qVd5#~tz-hG$&` zxF=EkM!YvTl9(Ewb-X~H6y*F(t`K)GJc8~)52o4RXE)x39$#YN<9AZrAD=M7LRiHi zkQz+f8bNNtaidCkQqERBQaUokGuMDyH@>yS(yRH@6KhddxQz?LGwdkMTriC82E^lYS#4ZRf#-RWOkK*;>hhVE^3d5+W^NLP1||HQ%hJ+?H4(?USX*KUejI zjn6un$U5n-?hkOFH~0Gjte9aVLnt*&`xGV&EL8q-!rI505n-D;y^9bg^-_dd&+x9$ zH@%Jq@pV4w_4P|i;RVz$2Pt=?kJkn)dmTu9iCy685fd(m0Xx)sE-xBM9siu=eg$ zh4)=Qi60g%p?J88Eba-ru3bBTTu7AA#JOmr39*we|Ey(FqamQR9R2o@w~(ac*TL6o zA1hT5M=22_=!5ct@Rm$+UuD>B-&7020&AMS9}`Z}VcV`^BA=5-!l0v;7C0vZx{v3b zN||PzywBSYkaznJ+RE&wkVM!;#w&~$$nLn7I&ZZ-@+Bu*b?E!90%Uv-Ns>#Ld_jpq zJ)v%9YDC4dk>`!zL6M+8UJyb*rg(DJu2!37_fzEX<~;|bPK1>Ca(ZnD18%b?j0L9> zdg{DKF$ja_eV76sh!(9o999ASXmu)Zx=)JN|Y_KxE6SuB1a8IKd+rziW)cF-or zX1-DLLQ+a1nB39WQ6KbW;~Arh55)wQEGrrwD)~oM;yEdKwffetujkWqLwJ+j@dTEO zuA(|%$yXZ`k&Idd19a^Yn?jBC0n6jlf5V~klmORZJ}?!@^{aOgy}8Rvz}sBd9~43I z`7EGO{HP~L*%xkERn(MSk;~?fDn+?~y`^AHCW8cH@Z+{0ldgl{B^(!wU5xRFU!${g z(&Bz^*xBGz-)}^(IgeXX;5pbU9-cdBl^1xO?)XLO%DQ%0Kf2^8=q5Q!*eke2gD<|( zlOR4}sl{FcUE*pxCMpYd6m`bqO%0?kepdW5d0$hw@OpB=UKJapKblTP1putPIp{{})b20N+w?miaVBvYSq?z*o&RebbN107Q-kJVrI zFzhn-WU8n@ryK9Ik`igocI$+`+(mjBy})e1>V>dkzkt}i4N*;o$eO+34gIHz``Rn0 zzqyY~1Yf@NK)sLQA4g_`N;hg4mzSgBOWs%G`ZI83-_yQT^9H%Ho}c33sA`fJpkiig zl%9hrMM44hYfbUPe=kq*2JEntM8O3pl8y#zq8<*dCwVT#3pN(?bqgQQjt=qwsngfz z{&vQRnq#|X9i@Z7aMOWr5OvJYiK&5;0#ys@UjCE1dZMF%*LcNs=B`AKFL8%=bhUA5 zKRXJJS%4!J8PJBej-nvI8g!JvFB*Iy`v|2pMY=+tJoG>)(6|TeH)nMj4G<1HaK@!l zC)kyfzZeC@L2I(J8&rb(lf0>t=DG3Gy$|a+G}+NpM1|=__W5|JV8fB7WmWKBi@+E+ zo-%AaYTa({`~I|EcJKQYWpvg74=%|G(~t&_z!HM@E{U-gT3(z6NIur5bPxwEvn$2B ze^yh<$b$&{h$w!J-_s7J)*FK$ja{_wMK{xn>~%TKBikJ|*&Khv_1a@$422g4`f;#{ zZ#U`XU+v~RyWsq7avAqYB4-PyL1_^+4eYqkp?jA$TV_PdXU~0@uW*Knb z=LVsy<~_)nm9Xs!beWSqY(!MO>+<}dZp!nfh_OO6{D29eC$w`$!MlK&p~-cz-B+d% zLOkmKfTuvkh=BRRKD5(|eA{--XYHQwSnt(wH`{0Q+70VI0s7|kGcRYU264D9KcCk&rHsAT>?7;S07enkAqG7qL{yn@&)=}Ow`L6p6!#Mq zYy{(sRtkwFllk2)aWu1=tRjq~s}ZdN(zgxNgJwc~uY^uhfuV!%n{)KdxN$5ytQ^E_ z0fsfwCFIcK4zjQn{DayZ=lZ9DuUFW>UOr;S%Hk6&ELla{T6KmWz{I@CW9%Vc$f_ld zKu~Tr>1AyI`d6|aY@b7_7HoPEdfo|2?2k#WlN$VR`(E_T+MTO{;w1^^<5NrMTXWgH zDL9g#i_RCBQt(1QSq^fP*uf$?7kDnWV1v~B3Phq6cTtsNv6j66M(gn^MRK0a$*@5hulE2Sh9U5m!SS2b@(UWAK9B#PqJrNqna(!1_~IGi%$0EPb^{)Yh{QvZ zc+gn1OgA**R`Cv2<}SdlygTi>#srRwKvH<3W#QT7qrneg)1Md6eB4W zIL6Pdi8biV4p?O)_?^$Q=o`}Hl;#_f)Wv057?X%SsX6w8u-90YL+zofqKQ+haOZsq z6AXOEN5U~R$aaXg#thxF4dW3W?~I8pdJ!ZF+@ZPUm8DbCnLTa}I)07Gc{eu^6-cC4 zH*|cz@s`PEsSLSBjuhnDds+3pX5vonE!48Z?txDz;n}Tau;M|+?N1yWJx%(uwby5^ z*o8YH6Doi9RV?<)>HD~W6;Log_lc;8%rd@9Kp*=MSoS}46|e4g{UOzZ2Praugz?qa z8CujUz3}scqt6#OA*e6TtKb`yHWagnJ?X5EJveV{pq%yR0lpbG#IOPEeVfMnKB*Bu z4n^7mKrYdE^=&yS~2!kqC}|E-DO zYrL(q6UhJvMtqkQxb~fx5ZkECQS_ z$2ow!2@p)oPW`EMzRgo?t1p2spV(--qoi$Lfhn@?w=J=6Y_!?F%d3lq-h2rUH}O;u zzWZurjrbVP9ZCf8={t%ql7%1l@xvXx49};yXM4MhjrZrUEm5CvgLBej#zc^F*D{3G z@SzaDUnS)u22TQ9>~(MboYnT7=1m1pM2b9fU=e!{<|k?e#)#JG<$gAs?O1Od zmV;Z)m)2G7II(E*l_fvMm@R?lUU9} zBM;%t3N_Hvdtn^jjY{IyAO1LOg0NZbIqucu6tj?`M z*|DP7{I0$opN>DS_+jUUxwNH}BK2!yY1&%+48e3i8pN|7yC>&C5--+e5RPq@9(37= zmT@M(2)P?3ZxlVhz`t;)>kJ&2`LjggRGi_Ce)wo8sF!s)v@%1&fi_!t4{pCJ(%zpn zb^h>UYo(OUtc`ry8LuM~PL8Q8V_lR>xEJlWYDV|5XhWVEpFMF(OSy*aW&kA_%Kk_P@ZXiLT6ne3+(45Wfb_h|q`t`Q);CJ?Y<)CCSQy2XD zlr*k~v$a_sH=!lRXXXLwPv>DCi?OS?{abT;ZfCP+Xc+=Ejm+AzN;jPssoNsJ&XZ#3 zVg%HXJtL(T`mzHN_k39dSA+o|V*KvoaO+bB_z=jXJ1b?bIF z?9*O$o_jotnCNCD&6fy za~jsdd!GrVd~uiO!#hPh@ay%gAV7UoS-!<(H&b!>=IgBfWWuEN@YWSSG2AwfI+O~< zU~{EAWpgR7W15|fq((Aq5l}c5wjm@*zCv2sWv!0u}w|wrc*wt5Yu^1;V(I<9)jS(Z= z!}@R>Rm2r9Gb#45b$NPgpJ^!Bw%@yhvQ@ZG(R$^3WgF&DRrq~=ZU_*|{^2+G}cSvXsc-kgR-Rpd$d&1&hm;gbDpGOeE&XFEkv z-ZSdKD>{AiMS9LIn%*)~w_OCb+?eV4Lm}y{d zg?`hzHvt7HlXcoJo$D9Fp2m5CY#4FlQ?gCupWj1sYZc)UJ5+aef=tv z_H-q$1;+8}jaB4{s6y8ltJ6+?CcF@K-s_)O69&ryLp|W@++HJ|M&E2qtnKn5sc!hX zZxOeCB@&x%bM^4v-{Jdungufa!If_MrpC6QkNf-a6?1A7pV5;&G!FMkcDUT&z(7ef!ll!Qd!a;k)KN@z^frPVCXx_KsXy8MX}bxQ-k-O z$BP_Z9rJyDTYhmwT@F^Mu@KQ;mfj}5OMe$LdI%#R&F1|_EiazLyc�xp75Uhwi!< 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 ^=bZj8 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�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

    &}1 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

    O(4B#1=!=ql)^Fj5H7pnRsn-s6 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 aPZ+YGZDc>$SgqdRMi)*xCipV@_x~>+?Pa0> literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/chapter6.doctree b/doc/LectureNotes/_build/.doctrees/chapter6.doctree new file mode 100644 index 0000000000000000000000000000000000000000..12d8d7db5b493f26dee6d79b6dfb4ab501d4f30a GIT binary patch literal 241414 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

    Z`MZ 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

    E&g;7g_ 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 QHCJmo_D&+adaGCe1KA)_3IG5A literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/chapter9.doctree b/doc/LectureNotes/_build/.doctrees/chapter9.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6cf15da949714fa9d3dd1fae362a7922681352f8 GIT binary patch literal 198592 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/chapteroptimization.doctree b/doc/LectureNotes/_build/.doctrees/chapteroptimization.doctree new file mode 100644 index 0000000000000000000000000000000000000000..484cd43c096974381eedff7948b392281d08d47a GIT binary patch literal 579631 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 uUl9_hXM!terQ70 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 Jy- z6GPm$lnX=gV#3?P^>I!0S+{#Eqwm;i00mQQH)({pkjFs`Xh0kIZQ|g|O?GX9n{;zryPcKwT!Dc}N0~;K7CS9)3f5-I*C6i{#az-og{te$1AOv zBY8-fQ`{e?<55K<0mrO6dj2ror4&+?uxf(Y7CL_4U%Pz)=l(sZ_u00UR2M45H+zcU z3OWwdneblvIJRNkeOF+tUM=eUFdRD&h7wrvQ2VhLWxoOlNu7r4m%#{M|Ep&*I{w0s zV20H-)x8g;-+c#wZ|CCqwLdP16!%IIN$*7v+U=*%E7%ZeYxo?K?snoRM&Aukq44gS zBRtJJWBPFiUYS%k@{xk#%wF%r?SbU^)x=br4T&D!k}m0qxxQ30z`KIJ9;7T=JZV~N z2JM+Vnls{_zZWXG@7J9-zgG>WSn_yE`6ywRvMZ0pCV#-{^0h(Bjx=j1e_7^}O}iRr1YwB~hvI?m?%96zdIti7WmD7`K?7(XxD=b?^7k zulhr~F0Jz}o^aRcnAw z!a<0wQ@Lv%_BWYiuxTfjInW(<+t`+(KW3_gZ}nC_(yx+Dew$C?nK?nLdX3v+CrBgY z5<5=ZZ`Ly>P(Sk%k`{y?n7ie`?Xx*Y%Z^I;3`)3-K|jhlxerzDw+)S%=Q5LqVCU;` zuI?|f;=H@hrC6t~LbGY@Xk4kpkGd!a1`N5Z?0rQC`2P3oyw{|8SaWh>r827(X$`#e zbBbR6^+NZdo6y-jfNC3Vzlb}r`~`E)oiT*}_On|C7WnhWFt(A%?s`o~g8i%OpglZ5 z{Jq(^u)Ao%I@;=N5Etgoyo28r{i!KFiid#8nhF5J-P1)RN3}t{tgzo>^ZSKiwLD%W z6&I>pVy8GcB>*;vRQ~*8=zt+Nhm<^YBliQaePDAh4Ag zZj(P;LwR@%QAIjpbqX_d(h4aTb39jum%p&~&uKBqN3vEaRqEb^Uj1HYPmXlmr;_Qk z6y6X?Kroa0!(~2ayuTQ-$p|~|?W&@ZG?s&9x>W8|bVu0z%j`@lcuZh+gbUJ2zy_cp zf9NH&FRxnYY}Zk8nydID_~iJp5O%&>WZ@zVQ0M5ApP(S&DhMKCdxxIH(|!2o7Z&Ns zO8};dZgC_HtubDE>0n_$kBvqzsu^*Z;$83=8#9>GtyB?_J&yrG&@FK98GqzYgAlWK zj@fqx8X0bX=(WRL&E@$7l`O2Q?CV#*gacn5vudi*vF);H`FCB!&il9l32@-JrMDLY zH6hH2sYy}EoA}G|h%CN(mvr*ZlS#O?K8Cf75Fh4oFNA(iyr15cJr!a1c6ZUp7Yk9a zR8&>cd``%4zPNz0A1{n`t@Y|EB)2OR!t2{HVsw7>6X>X%WrLABFdXl{{+>moq33eQ zAONY_IOBHO2sELs5`l1=_1ly{mqU2`%)#Wg@;9QRCH2A{F@e_tI&?-x{qO^)y^&5l zX1J6NG5nF>ivt~jaq#!gi)!TZ%|arU&cu?k%{-3MRC?3*0<&cjbJk>76n-ovu&~}< z+?RhlE+ze1{%SVmb?HNAI@- z)s43m^569sPQJdyvh2ORBNGG%l@LF0>$iQ>8GNU*pvM7lUK?#^ntx|Gq9}fjrqrdD z(0tWh)d-rCk3RL6o8S1wDy*q3q!J=5Ydgp!UQN~|Tw#=tLTQ716leeLaoZ$s_Me}* zwZUI7GarviU+53iIW@XDBB_qKD-ZAfmG%9_6|V1Ws*t^*4jhEWZ=`| z2=P+Rz9+7tw{_&)la{@)KHrTT;F$!ja&;3gmkK1U%{zE5na$FU?zUHbmx`y3`l8Cy z6k<2ASm3!UpbNwK!j2NO%lOC?wP)MHuKS8*6v)`(@cfgFQsCFnS8l714_)EWCM6*# zqHJf(`GOsX4v5vOE*Wguoq7(b*v?<%^z5zZ=p(G9`b@0@ap3E934|&9)tt*KS!J~h###)_;oqrf<>^_SyXE( zEH9P7AZOLa>dga8LG^r%&9`|0EMd>wd;?u~w2KJ@aB(tooVN&hw)l<}HPA48&RCY) z?pwX?^>0B>&v^JXx|Qm#T+aXfd^AtW`6w@4_bvjsgK6+f7mIeJVW_I$(w{$qYd{bW zSZTgY;k@n9?|o%Y>l-d0_PVbdGCw)_ep#Nw6diQ#SbxBUDM{`a`Dk1{*`pV;M>|Gm z%N0NJ`}`(W*xK`;h;*ocx#c7vndnx(2nS4wj;(Iw;2Y)v2NTn!;rp-10)YaIkRCKZ zkdV=yZpn7=@thIFY8z8fiiQET_Z!N_6O$MlmM3JGt+N^)5cF~xMn?Vn98CVHgw$;8 zhWYi4?2{v_^}ILpr@edKKNvBJkl+UT8ho6>DL18FDAOp66;T3w#v`Vthf3@FQ&LDP zccPpDpe_Oc^>uL#IbBl3)4CA%ncubm=%#xIIqi9Gu_Obe&)>dUP;Ky1pU7TfC3#sh zhAGmF$&UIX_#F{I#^&3=z=FR|oIxFf1I!B7n{`R8LbW+ULQ3hH2F;ThCqP_M#F$6i zrRf-?!=X2n3i>Y5QuiIblLv6o0eWEtG*9U>vbREC_5P~WHz?ImB0A{o=Me98*<%VJ zKe)|lXVUk)OH9G+-N)MF`HVs7C-cwWes)cPa|i2E+1GqLK@NPNrEWcAc%vglkH}b~ zNq%#ArnBuKfhfyY6EJhsZcucI$qLE1@smPCGZ>SAHC6a7y>=_LPvi`RM*AWi*r(e4 z^mUUOWu#mRbUB=clYwy2+ENFh9&A-#O7xDK-Cddwlna~P$>0?}qI%^V$y|@{q|49) zInsv!n`2xHG$cuthES(A1>XLw@ZxUA>+$UNT9)r`&+0)4qU8~KHu1M8Ka1GVd@>pC zuc+~GTFc*xL?MzOi}UNYC*Q3x6|X}Jv8bU>KVX4$=={lUphFP$j0Qc^f*Ro{Osmov z#is~Kb7~56uoJB>RUYg8zMgqM9Y(+gg$a?5Ezhm#a7V-;Gl=A%C4gSW9w6aHM~kJt zhzweK{Yt$v_fPM&<><5*b;t7@gcMHf0_)xrO-4Pv&8PMgb!H(OnnO#tT{o8fywl9? zD*@wH)WHPYeiPuNkD{Pm(C>~c|8mi%uWyeO(E)>|5p;~(OVXNd6=}&u7;ljjC4hf{ z=-~Ya@b?%HMi@4nH%TU*nx^XEujbc0zB%#9O2g^FFXM4ShDjw~Y0`>3^m)o`>YahU zBFp?=Klc1Pn=FXVAISjA_Ink_IsTpBPA`AP2o=u4hr12{y{!;@H{(6iJV>=(qu^7= zoBhPIHXg5_HoIqOu`YWsSvz~%53hcr%0tB^ltmeD$sk7?ekDLjmgc|!rFJE85(qju zhtGu2jm;0fd~uIJgl7wP4tJWZy`2|&3@8ddZEVczxNPQyt3QM%iZ@_7b*6vep)4y%-iCy7_e1k z{L#J>WaMm@6xnx()%1CjzB-84@!?J%qValMu{t4el1;Tsqe5eGnuS<@H})z2uwzD# z*93?Lovp-|i8PcRC8&g|i~W zr=qQuLZP+!21yxN8tjBZQns-7HQwewrixgk0u;tmf4gNG+-q;7vcWAY;y{`}D_QR* z2Slc(xs(1n05etUGIc7tURts5LSC(rlmG{-xSg`c{XB}3k`@%-6jL%S>5zG2|E`Lw z=a*z;{q-&4?eM}mwV}y?8anT%x5&C40GMg(*F8M`(x54Gw@ZTdc<^!b3 z5na-uhvm&u%m3DlFfnoYafEfA(r(`i4Z z?XhFWN znb=~N(NEyWflmCr%U*j%*4-}jfsQr;63;Jy#JB?)CMqmzf~xuwUg?9DJO({aF_v?j zX}@u+X7_=)(z0MCV%5VSrh7V4l?U`U&1st7M;Lk3guL86p445dYU5K4lJA7mh{%G@ z#55FNxqFc-^OTs_M9t{-@UO&QNN#^ef|GZ@7KVo`7(t_t%858R2%Hm+6wdw)-{#wc z&m|%+@?*7&NYZaXAoWH-Rt?_TKGa`effqo`!*S;G*)>zWl5_V!IH$u#>^0=gNnL30 z&uiJ71TFNHFS$m5Rw^ezo~4hy396bAhD%RS?@|MWWXvJ%UNU%}$EYC!<}6HayVyyP zM(4*6yE{DO$80unf5^U1sJZxgDiA@S2XcTJ5><>j((WEWt8^i;EQyP>XF3H)g8FG# zI3qP?^@n@i8isiv65Bly!i$`c>KDD1pOawt_S#Q#GE1bcJs`lnGU5z#i47ur!fc0n zej(t9+;=B)jtK6qBo1jmGcx#y8_U(tEG|**iqb?4%*DA}v*AiN^Y3Wtr^dXUZW=VJ&`M!kI2@|$ zWWV2|l-Vy9Muj^`I3fv!KrUQHlJKGwvaMnHEp5(?$8TE*9E?h=2o`&B60%R45wJK= z>Vh;a&ul9gtH|S&p1I_7($04N6eN8oV~|vf&EE`IHe)5+P7Z@*eWYlmA*R7kt*cnjFKZ5uBmVY+fYc z_$8aGv{#-lT;DF0TmQHUZW$Vl*33jK5*4dTM~mc_fEGAJ!_LBc@oCAtr1xuPmyndHigx@-4oQ5{L0C!NSRV~T7dKw;`{3n?I>c2P+oqT|r7MJVD= ze5c~`Kqe1KLi5Cag2J|c12!tn_BcewbDvGy8#Pag=0dJjEuud}R z1W+xQUbVUZ3d&gCHc$4l1sOZUTTbUlc)w~9pbjzMz8)Yp3DrCN<<2= zT+Vhfl*tPfi=?7u&iVuMjSz3E{`W8Ii4RY4^EjTE3rPs4%(w?vf&Pi)Vt%CcBH{e; z<_U|)$VD!0G(fVT)rJwS`_cdDAsiK0RPXl(YyObLZ<>4q9Q3-4pgNxK?n=P0!6U%y ztYLCIOE#^7uYqMi{yXpAF7@|sAHfM3^<=b>6&bqje)~gfyb%yUI1#t!qov!6Om)>k z&hgpAKmF;>_Kd5;x zzfw(n=MoSG%%Jsk#~Jh1fzu~WJhuI57u&BtTWaI zijkM&!rCvL<-gSKP#$r?Xkq`gu?Iy&rWJGFWaAH-G6QCECr{%bzRwe+-o#ImvQw$| z=cnGwekQ-DH3ldJuoTtu^Ma5}X_?W}^sS#c$Y&JqV{9qUtl=1$0)a%Bavg%$$%vJ2~XFVjFM zO4~mQNDb95hp@YgLrm|>=-S8g>DbMe^zdd5&g_A`VSsI6f2zMdtK04{qI@Nsl&1qi z(BR(kZmcMFfxmO!f{)%&arkOJI=K~zD7kB&M&$#u8YhM|`at9#vPGB`nnIocq?|B; zO#&lqwqJ7A(BUZ|c9}n2tce=`o~L(=O?zJCZh-kA)2jqre0H5G$y z6F@pQ8{PYNJRUd{^TCS~$2nRI=LB-03f*t|Okoyq(dX^FK&)GZCdA5$Npi_uHb-!zj>|ex)MKAN;o)Io9zZ2k| z6-nu{BQk&dJdI4%k$?!|J*Gk{q+-xAjLAu3*ZKH&O^1|Zxx64(w^^U_!fg zZy#C>xqEA5GBTqi-$B{GlVW|T7x2UXeg4`P@=a2vQDivXFr}-A`g>G4X{)N$wp#jC-Na7T}vO2NTKCOkeuy6Da_RIG1Pe+9i(pU2sZcY})Js%&cX_!z0%?qPOLk@XOTG!UpZrv?%nn`}%6bB|hYInH_Da z5RHR7iS>~ksts_U54%&{G@(Fl%4IsgR;@oOF+7G zMy>>{pxxWORfST@Km+?=B0pI~ywKC2)lZBH)4r=DdxG|p^e}IVJk>(|zcDmRHUq)4 z`gZ*tek9L)gvf6M)41J9B~sBOPzlBxK{Ma)n`|3YlEAT{P9pYfDb4gjRz!p-d8EhS zKMNvV@HzKt1&Am)Pfr4j`=DT0w);enCkWVpnx>a5o2XYZ8e?fYrpnJ9N<4H{=%c3O zHHqL2Ld4L5Cvd*0@Fngu5N1KrC9`s-p2UsJEZ?Fh>&`zzf&6^mj|8^DFI=7UHav15 z&f8lqNYo$CO9JNf^f?nB`u4d=eS0A44l$SiW?Ca;I5rw-q)5}s8%qW_aIHO|>m$k` z^^yj7O54v>dAkuWoM&Q1T#X}M*p}@8-T&IV4i;jx*7sZTe3G&t`{hO3cH=|54u`*a z8uc7^3Zi^r=BjC-SmanCiTCY#EKq?qroeK8{at?*AZ51fZ9S5$ndwj8M+LWebqX|! zL=~c8@PZLIr|jaMK-NfsUchKHcI4%k{zqV=@SYbf#2(>(4^W#P;a5A4(&?|a=G;f; zj(YckvVSYcD2EJ*U&Ad~_S=pIAt8Ehx#<-oa-ngHhiM}%DQnu-?RhP>T$~s}A>+It zzsMN-tqiQ@S*~logIvaBK@w1Y8Yv}rz}Y;)?-%hqrB8)3kYe8}ECIrVu#`_U^kiN* z<}UpGND??B%ASny{taz!6G}dt(N&>+0FPUW3g^3yLlZhk6Ug|sb#>UI792=$_Qz{7A;r_?X5@Q};2j(1m+U+(WuH+HX{O=JnaV7&(^c{K@9<$KFmyt$w_; zPLQ7OMW?{Odme4B6&48Zp5UNiq_Jgx&*8$~srwCG9buA5de;Bi{qy}8)f}15BT|us zD{?$xkQka+a(zW_8mJ)sg|lh?5eJ(HBln2WjYwWB4EN6wvE1VN!Ej%l96aS@uhnB; z;xWqtoIM2`VgrI$e&&gqv$CfLo(C2rO8Y#V{`OapzQ_E8jt6boYKnH{%+AbkVDt{& zP1-kO>o02M%r5h{_!7^@^2W&Z$+S-#WP0>u0g)edv=7CFE_VTX$*Q*dz^m_%7Nyoa zet}HYaK=Z?bk4k0*5l&o>Nm89JN>vr&jMIBjrxRNsJk^xR<|`6(^%Y_+D*jXzBmu% zr0GWYC-R2==D|hTXd^9RxKZ%oH zZ%0FX6LE@?>RpL>W}RcLQ%{rcnr+N z>xw)B|Hhjq8eU_g`2&Qb>ELVqz()h>dU8E0E(2 zd^#$PU||RcQFHZ(Ntru^M=gr) zpJZ12+ig2xw5D@Dvci|Y^{Sz+Gl5$Y9>T*-vmzwaaPF0;YGH?#R57#{AT}V1@QNHN zdjx3QX8?8rjK(u0A~dJ&pXRBi!UVaqIH$sF7BHY)6yz0#K`I?zAH{(ZjWF&izWNH1 zP_d*^?NHr;F{;)PtnMeL>UNDm zIyHW5<=2mNhhVV3(V(F&m>a9k$+`RhFs%`T-9)P?hWlSIg^K+5zA#s^_AZPyzLWnR zCV=l=gv^TFUb;cI$rAj-oR}<(_Mi1C7*zGA8@_*FZnjvSm1R=w4exV&t&E zLkjk(_hi8!)iUrpBBS|X#%CZBpbqLwe|iFD^EjIwQrH;SJ(PW-y}n$I@CS*iMtCpd zb1!!Z94^WFIB8O2W7vQ9>F;Ohms4Zax*}PHu$v8puU#6G*e#=iVF{hx4e}Cn9bXf9 z6kc95)W_7FptA!FP!ouXB-x4Q?ahVX?oXpiipD8QO*Ab&rwNkQ!@qNy=6>b|Vg}2P zY)Gt3okiE?=VntSTOzbRUS@uVHo7IoF8D;B;y~j1@VzFBS+#6g*sa#~v$WtLwjpm{ z-`H8-$OXnv*fwq=p_wCj*o}vLj}(Lx{ZBsuo0H>Qj>pgGi<#L2ksLpq?@!m0vDTkw zy8hJwex*G7MJ@Z~#Z~%!N((VZkcHSXH{RL3t)@E;Dq^y%S>K68>+OS$DPE>vFV}#q zJ)WRz;21UMak5pK%#x84psS%;_RJ~JzQC1rfzBAZ6f})V@hkH{y}Y1xv#)oN;)}>Z zIEfvk&g1;2^@Kq6aNl+=%y2T$V9#`WN$&6*i5DM)F@nRaGjh-lOfU-8Wu~Bngcbwm zn34i!@H=FWRnSi0{^V`_dj9;it?>4Y-W6cO%-qk1br48)`4XS%NU{Vp+4WP_oTvz} z!~~$z-OVV50HK5c!D%~sv`J5U!ZB#u-uQ@+`=jn4*XC~&k$oyrBoDlUM1m|NN!a?2 zDwlj8?+T#@t!0wJia>y0t)0jxk8P;OfoZe~=SJ-~^o4wEOwk@F+lvl`S zpe;wQ5j2(fQwrl_1?-FUplc)U*E1*@ZPho8#+arHW_~Jj>?h+`>?KG# zm*2bIQVD0`Yh^Xi!il8t&TU)eo^@0{op1VrK5E~)llo}+j8a@}+MQp2K7dJ;a?oh- zyH)6wxW{$<>`ZcG1r}6>>$&T^Q^w`r1@q?MOVvkEZWQdBKW1CSfR%Q?FZfEGx#0n) zY5w?7wrG#|^t#_2jPAn)k*+3?>Y;S=93I&p&Q&RyDdt9{!dy1X2F*8HaWp7<{`j{K zF@t~L0&CTKN=m7SJl!Mka=pCnI4@wHPL#_yVIvu+Jp_2~PvpMeu@%`cNRhpgB9+BA zVoMIKw*KyjGmS1ihUgUQufD(MpOMCXe)*q&M}MG(fs`FO&cODe^`p~U>wnUnvLLJ8 zfWDD^FGP?^ND01z`@!YG^lx7iphGkW5(nlh!Nh#t zt(dh$sBGTS!6*cB+jI^}I|hee=#b}J%34B3_9J@N>zE@G#-iRoQL5x3t_$2Pid7S zVk0nXWDbD3k$57Bl!3m%+jd}DEIfjpXYw@2==TVZ_VU1v^(Y2b7pxGcv!Z&ykqX5qXy2v zXB&KbxGDewyVCi&hk2<+V$~n;ivd^%B5(PwI*>xM=IzNnp)x$Yh@IG4Z&%-;H>~cL zD`dA{O4n}8Gpm6)`av;x_`VUBG1xom?=ahcFQlh`^xs^u-gBa)AN=*%9kv#jzHJ5Q zF7|jdROY2`vW_gSOhM~vMc9W2A?8i~>#L?)C7nsV4_xzna(0=vs_D8MkuVI)7bYk1 zr;%HD*m14GX3HE|p4v~l(pm=%r5h1#ft*%~dIJrc8uM|$wvkf~Ya=dmnXk$9I^5La zyshcs`akC0t=D~gPxI;?=o$4^Yd|A0Lfr_}w9ru1>AmAP&IwHq^7)*^=h&^Sk`tfp z*iLN6cBB>>A<&FeH;58Khzmdr8ZNluf;(;yZvb8bw{yoU;K_gQUAy)ksi!r=sZ?HB zEB}?O`1Ct`f6w!I!lidVD&;_ZnTGGw`Bm75xQNh?bPELLsr&1)+pg>70ZZ$gweH;p zYp~Ge3tMm0_5&KH^tfeD1$FoCr+NdWBDByFst^LEtG6tLP6+^DH?akCN^T^7wuzm-1HO&qtR7{M*RQlvhiO?6%%Z z^eBC2Hfv-x7O3GS8zR^gPjOWCv3pJ)TnG?qG*bbA^@^<^=8K8%mooGdR(Ls5k zA}A(T7)Bf%>9x<}=X*(PZtrVx=OawY&yvvPr)7WcCU~!WgMRE@+XWZh#~AW;eJPbu zp96--hJMaE)X}uF)v?o*?tQw6L3L&6lFsDwkonu9d%JQ#4s_A`G}anlB}iE-$f&#= zeqb`_)b5JwVV-6)FW_TG|EloRBC;(QqPW*%E3Rsn+?(`eIz8jIN1S%B*Q+F@oKwAs zuo`wqmuJ~kN)**?W1p-sWD{4YuO0`)jVo@wb>HGmO6X)Z`IAP%Dv;0xge1SxvN8hIemt_l0gthJ!qbb-G_ehSb%=Do)juXjpQ&b zDR2tvY+^L;MI7l6zL@@jaOnz3;+WLAGgNl$l@OQVrF-gfwIG&$EZ?v!JFV7(Q7=xI z<46p7zF~bEaHai-9E7_$4a3I0B3M2>4DiK-rzL-=tn*u##@PxGwZ9lNgH-`gM4vkKJ&0!+cC3*ONI8Wk>|4s z11<%uX?utA&_Nq)NZXLYg(^7eNKgpguokYqP`_*a)dBXX{Zi+kA?vm**Cvek8uwxU z(cv#BAO&9$YKRx7dgKRi?E|?uemUnQywYuuAKUhhigm7S6L+uiCq%#P=9jaTgkUKZ zUDA)I(@b3u=OILoY_*1(ntSxlS`6CLG-p8voS#RA$}17!(X+!}_$%3~tr8|mPeQor zX~J-8+Yy|ji73bwrwK^1wVF!q)WJ~M&p63ZnB{xGRgBo9t}0p51b$I#p<5y97l=^+ zAmqo@T?WR4r;#)6y^(5x^XX0F<&BcOT|H4#TE}_$P@nx7bJ(%5_5CeITC5{0^#KWU z=4%_DK=M1}+a_CMIQl$n56&o5JD2s_aPz9|p+frfk@-PW@<8Jr*`QG;~!I9yWrtH8>ShBBC!<3@SJnB3q(&*!1x{fRQ6Mg%yJf z0oL+axtylOi9~uQwFm8Gp^c{{LrJ60YK?vX%m?Xj&->|@9$RSq>jK02-L3f;9C2DC z={Xd;VGyZmg~bCfE}p^8+KEigUZ|TR1kh!|WH+A#=CkZ&vNLKYvqc`cV66H}v_2OG zpej-yLS$hcp`(Esx>1Mg#CD-+sIAjJJQs5<&uWH89Iv3N^!lxR9xZRR4Qx~XuqNI( z;ff-P@IdB03Xk((D>+D8#EcT0d!M{~$uDCx8}^0S%bomID1}@7@ETt$1xt#%kqO z)`*a_vIG}HT0dMdhU-Gj$wbV>%WN?!ga**A8s})O0rIcHkBv2 zdHHT8EsKcgV`i;s%gyVCRrKJDQCqvdw+JG5aVhogYUN}bu+3sb`SQTB(P#Gac?*rb z_yY}*vB-X5cfhK?o2Z~259!Ab?hmN0K8Y8+t46qcUhnQ_$O*^S$DrSYKvC=KjCpwR zu|sJyBQUlo^wkKDen`1>1U#>Ad+#p13%kpRrK{qJQjmK)ywCchfhL3wU)E#W+(Z)z z*ZA8L_BOs6Gh?+cZueSyciW3z@uYzX(1*lvrvg7!V=bQ?#sX?pumE)ixIJmgs{s`Y zn7u(1%jHsC=;g)R?acS(a(jw9SoN`zIpd=T!?^16Z7zH~Lknj0neTL7&dTtK|G+n3 z<9dTjxU$D5mkm#H>VtK3l^?x7K32eJaY(*%4LS0`pD7SDe-R#Gv$35u5C<@AO((F> z(2mgROF%l_^L}=tHwRsLj(d>f!7dW9K! z>k+Um!BKEUSbcbC0D6G8#TX)fXF>IFUX}xD3(LF8HCI}!YTfA`aM#lVxd~rb4qmXWd$OK(8T=%70h!H+OxuZ|o@cc1*@)~sVcQVd5?Xdy z3sCn}ac+G-$3(3r_T#brlzVokS(uT$Tv9`f_xjW(6qobxyeVXoI_$Ft{sJw?~fg9<~Dj=!Wg% zYWBAIj`jY&zP(W3!!G3HQ`l_IxNr1#X$19AJd9v^h%|U`YZOHFySB=wjl}s_od%HR zN)pWH@rlO*kI0T)yjPTD2Ss$I@4Ta;`sDdmXa&V14)RCr7pmuf9`lC-_m=M&g@~p4 zP0wA5mP-?VeT0{uJQ=USH`GmY4Ii7L#$6G6ZF$!tDXTN`s#yESfS8Gxiap`j6C0n$ zGF6=i%tcVPm`t4~%Hm@QXpyq_)2kzZWdZ|?3HvML#@_`Kv$Lf z)WsO=ZQ9DFQM>+j!lqZJw%d;-0JN59Jk<&OD@pK?Zp6PdY?85BoJx6d%345IuKS*L z4~PX(de<0kB(u$P?EAWUL`dk_uXVbYn*I8yMe~+8sK^d|c|hm{kC#${&bG&(ux922 zjfB|*8^n*mC2_PX`9fc>-rQ|Zw)n=O2=DLvxJ{mi$6ZUIZ&6i@kxy{pfgr=Hioz*8 z!jhu5paq%vk_1wo5Rpnr=lmAE#(^2d3;5l38bt^O{8et zy5=2)&k89l;Nz8n>Dql_!Q+weSY?XE#7)!o9D~ghY-n_0qLyVJZ9k;fK8u9BEUF6ZnD(ec;-| z6=J6iF2n!~GO|y)K}-Pqv=1C7T-lb>6djjaY1?ru2NzU%*Vw!3I3O@#vQM5?Eyh%9 z-0pZkT@KNROy;}3@)Ysd4hF)Sb){Ho?c;9gi^w8vO}m%09Y3#nmj}kYZWcg!bWLDu zm14}X<6=-AfH8{V{2JzV?$s|a3QDuBbbcz+X#{)8Fb;NxF?2lv4?=3>+StCq-QpJ@ zlb=qTy(_{F@O-`Y=O+vj(3tJIov2_2AI0~bFiRgMFCw~ldaNm|4xKvfO_3+q32;G! z>+gevO_X5=bIFkU!)jl>@c{_NleTBz! zm5(0j-73Tg3{l(nGpPf7xO!=_kDLMU2$8e}$xY&(?43e}0XMtwP}kl1$i+ldRmWcF z-v=Y`hKtgCbd%zvt%d!y1*Ln!DoxO)>w{75eRWZIEH~~&_^7b6iwsy_-R7$MfU&R0 z42e>e&8_I>F(Je7bI+keLozM5-jXIVb6;1lfB9fdolwy0p66*Hnb0UxZzB`AhE5MH zWKM)kl@!f{cJ70h$-tm=D10CW5mXj~!XLKb;z-2PlV4W1RobBzB6nevO+4Ma)d$wSiKA>b zaQR5~NOEYT<+0lLvyxq_)p^`2+v6K~MJS{I<6QEG<+|H$R%Qq0-Q56pn!2u%PXcZI z^b-~H-WcnSmYXK$SD*!v=U0TSIdDY3RA30QO z4Dk9p7VJhGVx{u=LY<$hjrzR1&rCft3rZed%>rTE4EJ`I8AN#{B1WDuW(1{QJBTxD zjrb&PZin6V?E^^$;uT6X z@HyX}??W*W*qsqrH*A*SZEG;aj!gYN8|$OQAdC39O-GEk-qzUV0#9ls5v|-S+b6y= zuqq?$rR)A4~z2k|QQ+kOCo>v2d3Oy9X8u z9Li0W@5V#p+c#&Yzn2ghoERae&K*$7(WO1a35eWh0bQ=U3t!mI0M42%+>sAnF;Hp3 zvXYCzMC3mdtJua?!Nzu>#ufnmwfla9pQ;0fyNq5if_<2F;#gSTR0mpeS$fF2fn|wA z7Z}LFHjzS2l41?QxWz~F*Powsjs-=>1<0R`Pl<}K! zp9BA#1GV^kz~^BLtBMBSeC(~Q%$?*LbUaps42F|{sQJ^p+1jYZBax&Q`LYy|6(InO zbyTYKy)Y0)9P`l420S?3|N{&8wgdNAJ)Z~$IUtXKD2;r+x)y2^oifCMRq zs-8DU)EIlWDWNyPdZBgTr~Ta#y4jjQ&jlQP+3wRQV5*VKa?H6OM;eQ4@gmi6@9rPh zfZ{(AC_R}x)Ttcg2p&iFOt+Z-+q;8Gu3<(Rd4Mg3bs>Ya(Qn=lU=mwc z%<>5Bg#wv7(3tM5V2mQSxZ9k3>#2;ZR`OZcr(j*%+Gc(=yYluqAA6L*{Ov2S5%AJp zpu0_%Fz@br#CG;lw&*KUK!7^*mR2Wloqs18Fa`*QsQL560?1Szb=BSgf77o!_8iU0 zHN6(A>56M{sMKy@Es(?Wf~&0F^8sqV$y(gNDRO9$@+04l8u4K~`-}Pfex5-7;yIsJ za@SiZ4@&Ew`b6rR)o4)LOX5sh0#LB4;`{9O3XIOf^R&(RDBOxFU6^lVos15!*gHzg zT~Z)bprGfu5Ki9BElw*l=mdXgCr|Vl!@8{5CC(rz3=X^4jAWqY4HD?cg z3&Vyl(DwFV2-zd#)f^!l3bV2eWcHm+KrviQ&1b8UT#MNDo1j*KZwEnWE5Z{Gl5VOl z0w`S~WDBh@A35zc(irPgZN(Vm(rSGB!?VAeTmj=8GzM1-32+!9K(dYQMA>14^yd76&)a`o9_gQMaN zY4@&gNFzd=>pRpKh=z6~ed|*1!}=%YBUt~zt)o8c_P5Fd?;lKueousj0R2Ky4j!;% z90J(-`^i)js?7Ffcb+U`Cn;t6SRmrO-(SS+PG9dI-w8;OK7SgeAQ8Mf#kW1IG!rk z8OVE>Z@$&-U#x&(#hwO;xqp7vPgwARL21&jQ$^4f5N69WU0gctx&aIBmP{M)aVT(> zEds-J4kcKYVz$hxt#`3`@NuuDJ&A?`l>;yC&cfj`Lbn?^v;5GVQxGDJgV~q)c|tBn z)go93$tCf1ec5^^tiV0ImjwxZaj`byXO*y>5EQF4f#c7Pv#o>T9u*Qjiy*eDsQ#Rv z7o+WT*H_6UT;R;H_a(9_itAg1VK-*F+a=RK`A3H|1}A-o=|eVL(rH>sU^?AwVl!b7 zlDowjI6Qq~cS1)Z`(%|Zigz~D>*G^n!FLlB!je=nBN#e(vApxtH=*(+gXK^Yk{DUt zINvu@rT`!#C)dYd+M2l??~@kUf(6m$r;qyNXJ|480-7_O&r@YR#qL)42N6o5&FIlLuy~!Tz0?kaFf1g0m6OhCv;@ic_$iy@c(w+$vCoJ-sC? zm){Ox4{x&rH**j79^bjmitsO8xmXcH18_;BKy-txL7Yu85hofEHz+PB-m!G_!O3oc ze#SWJ*ue(WZ78kV_*ky=-TcsQl1U8@1XK*#lT9RYl?q#RKJ(XdDYKYz>R;F~@?NOR zo9UjL!_u}l@ta2;OZ?h9JvpJQ!NfU&#qPHe`7o6r64*Mdi*;)(49v-9aWkf#e%(7g zw{kPA>s1JM^Di@qK3PQAsyW;taaIyGhueDB5t`@mJZoY^qY8o|02rMvrVHYco$>QH z%r3siW9;(M6#zT39hsq@m}7dqZZ8IMrh>!M*)7ZTeW)PpA%KPcWL^QWJiy(Pc#^qYU6<%)Y~`tW`D#g{#jd;^mRv0 zS8LZj4ee#yUmnlgu*J;|*uBTrB1S$&y1BnO@e1sY9GT{2>p$L*e!vTIi)G5%2mHg~ zKgXx$%k#EadTaPO8h7Cs-e3svCjMlyAz@*QQp3u(lM5V~jA?am?*OtN&}?>S8GgRS z1W=J(!f3|z_(9sVmoxf`?yiG50xK3WR^Cr^jVlTR@C7nZFWZhTNQ{4v{pi6aq^^nW zTL=?CG5UNYw?i3tWZ-)@B&gO^mp?w4cWL;^ydzNc?9iP+C!kie)0M9k;==1Xoy?u; zc)PS+)XKhVNn;%z*N?(q7hm$E{IiXmq5`+Cbr7`VeVI4*nL30809 zGI43=W)nn-OCnIh&o`a&$>E#sPw1}PK&brC8$4S`OMVLN;i{%qb*REkpue>D71Zq7 zJ@lS%zoU4+azhm(pMM2&k(;zfU{g9A`wlTDV#qD$}PkUvIS_?p&!p_Y4r1=h(zyQR?+O51$ z;uD~#u0d*U)^q#Qzyo7(hj&Z|;s#lP<2W8F(|I(D0#jn;z*Rfd)=1|LlJ)Uqj?qB6 ztLm}c57SjqKe>I5(U$I!xW4mLxZ!g@h4!{ru4i^TZ)J_HZ1)g(^ZaDji$oxs!||q| zauvn5g$QC>-GKiSATubhA@oPyGA2L4<5VU3i5=%-3nL8xcx8OX*H|O2Bkk6FRSnR z1Yo$B_^iC{V~(b2tEcTpR9}qU06NVRI^oyBP0r!*$%w}=Ku9p8AWXPH_Uo;tK|Y%L)0{Te?XC<9a&eR&eEsHEDkGO>O&n zCvzgZAOxNdYG0yF^u<=#K7%ozO)4MXnUO=nXnpy4Oh;kos}bQqY?pm~J%NIS?!nonWNH3PSard5;t4Yy?wQ;_3&2l8BEbAoQbGP~~mRL#Q zPaSnc7Hsy(gB>;JEep9)vXe+=MiGclgktj!d2sUSB3cVU^iWtm+-}zmyq?0f7D0mH zBL+T*omI*?a7yM?JRndxJ`44SX&KzTZ0s4)T2eOSe7t4V$h{W{=_@AMQ=-+&dODsD z9o97Sk@4;$UQ8ZL5B#Z%)>cyk@b45VK}gZ`&e8Jpnbz-cTMuOiiDXtW?JTMTzAMCzdCD2AKg7G z$@M}=0Mx{>T!^@rkA=rW4m^4XOevGFaPE)ybE$-_(%yEqwYg`9$s0m~Pn+5BUfSxR z>L6qD`Af)=ja&11qzIr5EL7ipA%AnT>?SKgMsyV;j#R1_Z!TO)X^99rpulfJaU1e+ zc=wudSpaS`KNQ{UNCS8jge;rw(Lq~}JZ$0tsRDABP2?VwF6uteLYc9+zrBlN0l>ep zBazMlt1(9ST;Q1(I)Cj1(vr>WsH!Fw#4Huj=9gm9U(#a$I{+30n^^btb^=$^le`n; z49LDDMnK%C;!+~(?jqvH? zZKW+D&%dVK2ceGe%a(6i1xW1)BlXD`$Q&B?Qi${?=WcmRAc*VViU-iv=>>uGjgn^+2>_;9JZ}ZM_Tf1v=UOhPdvsD|CC0uoet|N7o9#aSyP-WaTl6 z>3huE39(!^QjiI^OdPk=1`5s4OC=(*yP=Bikoi$li`8S17cbVF=L*%7!gY27IHw*5 zxevxhy9}wCz{0o)w-!9UU{WsHGbcDVFRkw z<|(bPO`E5N4eRvnG7IlmgJ{Cg5sGDeQ&w*yQkPV%M2N&Xdz0%RyIpP?uK-Lshm==- ztZ0wX(qZMaaV8H~xxtittB?%hvB4T{4^-f_L@oM?eVQ@L3A%hD^eVLbNH({q(7!Pn z3ZD=u9gtn@t+7~gRdd~AUbcdjKd60Rd0(TRtcH=I?r}LmIcqha4abGTJ{?5iSO;%W zIrPe9_oSuWRjp@|c4rS%p69Mj*t;Ah47ybI8n4)0yvo z+Ia8BKo)sARO6=f!EOXP6^o_tX%2%ioY(S&BdYl=;KH=7&3L~P{6j~j0jABI0|3hp z3B6SBN8!<$MEb<2dO)g&US{OE52E{Kh4%T?Ka$Maxf~6%M>u(u=4(h&-)K`t*=080 zEe8RlkOb7IxNXr0T&**qyQJ@uN_R&uwBxl)l9t7bAbS<)qMhV>75nIUBjp9mHBI%> z64is6ZRh4c4?z|`7P@x3_%s>YqP$Fu?Ge(e#g4hc0vRqaNb>G4&x=a+f+XipowVI^ zyHNmMw@zKuLUZ_Mhw+T@5UamFx%ZI8-o_Q2uqE0tfuybinZ|w3?)RE(7!Y@? zmbK$-;d@1mPTJnSG_m4)#};}{f*7K$YA$x{#i|jvUWB(2%c95;Tc`Y9YfJ-7i0x}+ z;K^Jpo-z@fXmT$FDSb%gghwj(3%s(zEEYYoNf67oYHFxVGBXH#wbRSW1FxmF17VQ%S{DPsU$b=zj_B|dFj zipbcU-7}YU<9f^RKvry3J?hJz(x3=RikJ96fB^}RzYS zd+-X5hMek+!ujd7XDOPG!5~4{j;Sm$jkjF&iQ@pvTbj8i#vb`Ijk@>_`EUhdrXhgc`2D4Jkx4u22?D3M~iFHiGid)l+E z0?-h+S>&(=O#-<`=r8upqu`;9Z{HRsOK{5eCf0`*Vc!#^oLZ5J;cvNBP^D1H%6dBs z1-Si|!_PLhBb%W>b@0f|PC)NfA{G(P^?>FJ4|1paA0UkE)E1BTtixi@)r%)t_`QG( zJj7@!WPZe2i=++-`I>jzdUe+*FmEJRsl@|dV zeY4w@^D{S(v!F=j!@8#QdyH@oAnoMZtundn4YtQ|J-|n?p@o)7tXZpWSHgoL|hKfw~^m9o6QFqN5|8w7-f53)Y{xd ziQEG4QY${w+Q=~VAZz@Ymce^TD`raDW6Ylaoz5Zz5HHbW_@rYv&_N*E+CyGXfySUhB z#9r8I@PTc$bw&wmcJ`irr#$v=+jp7BmT)KxzcPpGWpq!-mRNNC69}o$Qe=b%#G$R| zC9~Fp>Y&kHu&DR6kPASF7Q#6%c~PB*Du_;jj3hRhq>k`FT1x;Z=i)F5klz9$ErE3; zA!^GfVf_3s@6J@Xv?Fpy-LrFci!21KeR) z$U_`I+{>x-xF;?mloTSprk8`T%;zi7b6|cb&kxF)IlezF1w-8q=FQTRUp5;nq+SuNjVLS7jAA+) z{#hyjLHyaD{p9=MFTOAS{_HW~xudw|wwtolP-~IXb-~B-|^zG1p zduxWe|6cvwA^W-*@GjXm%K!K~zyCYgpJa>dkBWc#dFFSse+B%}-*~Iyf5Jb6KYqi{ z>)X$7|55S3{qjX$-s2nfcZO^Hn=k&KfBVJX{r)Yks&7&2iNF8uU%fR^{Qc+s^k2N+ z@^Ag(L;U*vvY%q#KYR9j-~EA**U?w$5O-bNeg9>j|MqV^`5%4%%U>@3@Na+lfdA&_ z0ehAG$uau|p(MY#Z@;xy*`MN&{4f9R4~OJepJuogM|{3teUM)q@51_LpSt|$sqg-9 z`s&Yq^=be7r>md;q{GiYjgqgYZ+`XR|FU2CVOQ|y{;2p5KpBcX6rw*Pkyb zK17k>%jdXyc*M)U`Qb3&Tz@%Fzj+{v3cvTyoMiL!;%}7y{rJNX`MbY-pWpr{#s8h> z`EQs*{Z-!oonIZLAAbJfkbL*UQ`k4@hkg62p5p&w_+f|s(o_8PKldE}r%{}Im8_z# z!>Y}~Z~ncXe1-p>;5e~M8r+>JtivR4hOMg^+|HGy6 zS8Wvj+W-2)_3$s*DEtNP?QqJwum3oH3}N-hxJUb+-7tTJ4DV|Mb#&REel`E%A^F9_ zhWO?udH*fgp5cu9zixl_<=d}+dE0+^gSKk=uYdJRKePXw`1zlrk^IGL@Z$_4Zn%CA4Guwd5xOv6`_`wEviG3}BYwOvusHQ5n=|L5O#KYG*u1aGST-j4=;zxu;p z7hjs8KR_BG{>uDq6!zh7ezdQ@``7C@j=FE*A}rGdry2I)Kgavx&-@p7 z_^w$xfJ}5ty?OR=E#Jf2(vHJhme=W0|MD1Xarmr1KS#}NsR0HDY3Z@)<8Jxwb;zq| zSqzv)#?Nnmd90Q<+`RZ19bSIV-(jCO^|xE<+ttt7I{m);@&5eyuzmfT$L;U@JpqNk zXZ%%{zvHi{H93*{{a0h&XJ4(pqNlj~``>@}`&a`(jMnFEFaN{8_Sb$VcNr{p5~`Rs zpV9Zxax&gY@!jP!8t3*b?ck%_^z|@MdM+g zytgAh0FVDG-f&F{5|u*?h64=oNw!`shA3XRht(lozO3ct`Pu@)t*=r^W?3fE!5o2j zjtj7y8TiN~F1IP*V^`-+jt`&1KWj}nO5!!7;Mx>u`h21pSjh_F@UjjsgaR&B&&_2M z>=yF!?7gl@vfWUDPX{QOtU!j?Zr#9hD>x6pH%kud_ZcRkl;!f3^F~1#TfN@e%g3~a z1^l#&KAXLWPNTEum;DL}O)HMNN65Zz*TLhnNt3=~5_lJOE;jF+2Y`t`?h*Ofx`ek= zY5C=Kc&$$=OTVKpMmK^XOJ$js_SjlX0+TZ-M}X^58j7DBK%~2|%YdJ^lVQ=;5%l)h zmKXNEq;rxow54Ox{1w0BbPPOp>5`STboCTgNybycjJnrrao(OK#~#*SHgHBedwORK zu!PcRGvq;9CI~Io&jYi%Ao7HbnDDsgI)Dsu1lnk`3?ISz%f`V{irZ@WfgCDWg`+g* z{Nfz#${cpD>~!c~kgO%6xMw;VxY?ZayNkA@nrO*SM^s=%PJ#|x>1ff|NTs2c zLdvIhfhbN~#f(ug9y{vR`SQ9U`n=e|8FT?lf1;@u-7jg5ofaAv?ZM@P9AlE{h;A(gIstpvX7J zl9uTiaUsVw5)Pt%Bv_d|S>~uC)8}zKZ)do8+0r{VjW3@M{=0t_0pRlo$i#8&SPfX- zr6Dfhu2z6SO3&lWHs^%tr{z>S2^rBjOKE#%iA0XgX0rny_x-k`rK`Ot^7u%XNRQjB zkq0d_wCdk3j0Wx0K7P@NrU&F1_9=DYNYa77BF4uUPHXRty-=NzNI2G-K)jQR!@Jxs zd9`#@?+x1`BM~XiRo(W0k@{EbMCW9(6G^ie5qrztZZy22 zyrio{sh%&2Wn{7w(dSF~0v~oh`Al<#b!eI$*|;Yyz>el2p#JX*mh^}r&InLh|c6p+gRs(W}^gL-uWH{k`0cti)0 z{SZ{I&WZFb4(t78A`e2?*yl^j-o_0(KXirVi^Xz%yAoU43{rC#ZqtU=D7zM>R|MKO z#o-R+1Wts~Cqm9_X8Ft+`cRc(4ISjZhbj*d8=jLZg4WR}DP-Z;6T(i)Q!=$W3aFbV zJ{)G9Nl@stQs}uh$i9$vPdbMc3Q$sjj*I#Fk;T5 zS$JUQvz!l^nJ%oec*(kTrz5}j-2|+=J~d9(2GZRdxLKm!gZ?s*`U0dox1o+1zro4? zPn>)r_w#Jd9!9sPu znC5lXFC2LKB9>CRS`?4Fl!!W)h*)s=6~D$3Mx@}vebdueVkaqoUc7Q94yX6tGE2UY zL-5Co{LxypL8V}y?mT7p^iIo*b2G)7-(*1JmA*~0&Re{|RSJ5IB68ve!6!A(D=Bk7 z-l7rWSsr|vIjr>9fOi76Nl^!n#s-{IGd65VsJ>p0XD4K&&7rGTuKEy^!QVqLy-yaC z4ww+c60d!IL%Q(?Y%Pbc!x4Obn1z-F#{}d^vJ?yM{o?r0;DT{=`f@VoR~nORz^);u z{9I#lj5dl~k;lEr2%FQGWsTmrnFhx-2h|0Yw7ny5XW-!*Ra1~&+#>N$C1qIHL?k7^ z0{NgjC(`b+re4g-P%KImwlX+y%(zd^ijHtVdEC$dzVWK3&UO{LI6sLk71|iv14dAn zERvZKceAY84wdGkC6*-*2^=Twy_J4NY_hcA1>VRu!kvL|q=ZAlXjAL?xppKz4e|Se z#M5@lI8wvX@`YSS6P>~Qyk_>Bsc@u+I=-QuT?kn9%5vAl;G{(Q$zB(;F#CAcH_S3B zWC|Rd#hniY@nJuWhCT8Xm(R+|b`>*YAf`qCazptUbPtXJcJ+1{?Rk1-ph~C1LTYT2 zpMkHTOYzhYNx&bK#*aO~Iw{Zu-$mP@!)r|OLQMIrCwE2;&ivx_njl@e}!yx?CtR^yOTj@>^rsE>>{# zRcgww^v70^Ee<%n)n0ptL?k)gqkuwv56|yX0Tbe|!!oLGFTqrPfukw#r-S%huHldJ z(6JVaaKWup0fM8HE)c!F+p;v076r59F2U85 z33}0rJG3wH(Zu4D|IW*NuQX%|q|u%OhcrD?tX}NmL!BM0%bQMsmHV_KWB#xTSyfbI zTN%oo?^z@BF>eAy%2>Vy;hIu)b=sU59Vwsth1wN2<%X7pGOKY#%ns|yWyB!8i7L2J zBjGuS(-X_D%M)kt<%Th)lTY14H2Z1Cap3E8PwLzrh;66MC)+y zSNo%J6b-#Bn-fx`Q#M81?n`qcz`znh3ppP6N}H!GG3 zVr_)On#xa4-yb$MSDv-4A)dSbjCA8nvTpvlpvZRbe;GF@m4vycv>Na9a^WQ)_bj~o zx}4YMK}beOJ5;ybNR{cDfv>fFR#AP6JOt_S03GI{i9#cgJKc}5hzC#W)u557{Xj;g zr-g!ced&_A;}Di%X$0k3hC`K2;96U|gkvDOjtpd35ww0WPv%%j6GoNYUWnKT);f-t zekIlxcw=vw5?UVi*mwwzY{~HD%3O`+Ad6?{C-k+=bJ4_}gnqWmD}v8`1jX96f+b69 z3wJke4~SJnZ4>o=-K^U?H6M6@FeF0CLPZsomt_o_zzJ|c`5`0oT{wjZ5V1w%n*+#k zZl0%NeLhfLXNu;D)+Q=?I0KU_YH!js9MW*F1qdk~k)lK;Ppq5zlC*i9m=>)pw=Z>N zPMDY0uUQrmX;Db0Fzb$XiI55s*N`CKQY0?P#z-<&gke&i4{~r_j^3%3t&{00xF-;$ z3POg=IuPgXYrH zYdU1T&HFjx#*~wDV6E_|u$cD{_37#f)Ej9itaf*CN4So4)6cfn4nl-0M4*v9ZKzpm zFo^Ud#CH+P{yjAk*5sjy(i5IK?9WSRxBA`Tx;*8_y0}W0AWmZ&3>EZa4zQzA>; zaSSgHtaD>bY%3Lfl}L5tg8^{2Ykj1pvSK)2i7ZCX{kp7^t0!$iw!~Vq{h-^=?P7Lo z^3ojQa<}#olO4r&=Cs!Q*%u#pGFl&zYl^A0{XFoCPF!r)ymeVn9TcFfh0C5JrCSKU zJbg6{4rvQyW7*B;UL8bNVjagxO{>Xow0@q@S0zkh_iz5d9`q&H1dC4TL!p)($Lh?p zDOZkqEVrbPR~F(R%c2GSHOYv3gb^C_4^_>3ccH07G1=sZQyFjT5pFrSM}bW>jx(f` z8yzXXVrm^V9#N5iyXd^oLKuu?W>9aqkY1Zn#+wPI|qc~|}dWH!Ve!7v@?Qkc6V3Xw~ z=UG-N9Ib{iZkPGoKtLC+W6ax=!cc%|+FR~XeU$WD9d_h#D}eQA9{15+=bu)_KUkzq z$~PAo*qFtb3r1XLXg2_PHs-_L2kg;cA_9s?8m*J#d#WZoGjak&W3@}BeF9Du-AWSR z{lfvoP@w3pnEtK}{k*2MVgsbEgttceWyAuKf_p#PS?3aWp|OnKEhnoXbj&5_Qwq4y zNt~@G(c>^+E0m#cx(ovU5lim-c&(p_34QHZ+@&@69tKV>c(LFO#9d>gbX?r`^X=8? zuV||rFi3(40+fn$a(Q@jnDLhE3)}$I6~c<9EH~mCwYDP6in>ViyyCd0_jA( zgL$n0(^1-%r{%$3#K&M|+mC^bse4{#sd_x~eK_E}*O%vTq=cf_S?B;)Yz6F*^1!GL zaRqiH)TJH%mA?dXwAIucyMGp+;i2m#{*yhYh$tqwX%OkDuq4kGi3YyS@0@aeuA zchf#Dw=#?(wg-kCqNuHqQGi8-5k_wLj7ynRJncwfd(6+^RI$Mz3)+Jomp02LM`3Ld ztP_34t@3+w6YR%U&PWZ_hYe_~x&&L$ZK#CYy`Ik-voPzDh8#0in*I4cSx5R|76+Lq z0STo&CzFkww$HFPA~MdBGRpoN)!d6ceZ}+Pib!USH8{6z@IP z+qYJAfQI=p&Y|eraPcA;F8Ih>MQnBWNUNp^c4bf--gI*p*W%?Kg$hA?pfEmCbTf!+ zNTD(gqjEPOgTR>RqL~62q_2{;PD}f+h6%yv=-}Z%4(kx2bJQSN?6hP`KdI+Q%)J2D z55t&VPMLqvNLsKmqGlQtot8sVn2>3S{pCh0iPWC*?e5at2jL>EEY%dDz=vEK{eg9h zS{)vP{&vHSilJBi^hvLI53_tr@Bg=)J;TW)QF)1AmDU-a>~7B$qv zE{O~@>>IfaqumBiM>jV|c$!c)-J+n4X*_%DCDI+^Q(5&o>+k25mzA`eR zwu7B%Ob_&qeLhOQy&e6hDrzwP%_qhvV8bpPz1`{bO1!28dVOwT>e?jb7+fna*=My`t;ndL#yf8x>b)U&XYYmPWr?=fP74e2V{G8fkwo!7; z-7$w^L+u*zzTPUmWGE|3f7q@joH734)6bCPS)9_~k~9M;nJi@~L^y|vwXN@ht}(Ji z?<+zqN+h>LC)lR#zF80|BbF=6K{2O|a9Eu^h9ki|4mj<{8eGUozbMfbhGwvpX{f=_ zFHYR5=POuQLevWtep{D~^R_vAyuA^ucM;#`F;Uo4mk^pBGWIG(W2r3`mmEder&B^~ z2aF)`L<90@!T0dcKgb)kd(Lt zk#!7S#9HUUrK)7Ly3Zj5mi~j$*iz;PZF5{rYeRHhET$Mr?W>*=>UY9A);(45aj{-j^o)^+__|RTJ>V3@m`O(0wv#>`g1=pgT2cRh0_{@_(XBL;Ex%x z=34HsV%r97TR^0(XBqqWPDQAc%pvNlxE?ZO(;c2G^*y%Ad~qHy`^ARo&r@(viEx#h z2c9xdRn@bVt5QkIT*62q$c^sjEtj`v*Scqxgc@XBoKSYU)oXNBrEq!Ux`Z{j*k2v&mnjw)$HvJMxPdfX6 zQ}(fCtp#4;_Z^C=*2R>v-2?N2vX_(ov?`?ki>5PMQWZ<1@B?{)piGx4$~=PzcMK}? zC<;7%uRI-fQE@7|GqUoeu=hW#wLYh`Ur^RO;G^7Mi)YWwphP-%Uv?4TaN7g8le4JD z4vx-6NN@Q#eu?|{&$JZj`|Mi9jD@umvdKuA#_ei*{LXq5-+?} zlK_HetJ#H^vhjCav<+)1y_ASy?N!5qJRsxaMT`s2uo4rqf&(g4nIJR=&`2bUv%t*E zJL;nO3Z&V1DoOJQ6?bcwsj$1|{S)=e&##b?#t0P!J}vQ)9uwjDiP0UqFqs7}MHKXC zfV6YD<3)#|C)6A9@jeSTO3Ob%O)tk9A@Uf}V%rU9vE*LC_~6^4Ov6TOF{rtR^Bx_! z`X`mGm+V?gNHW?+_ij5i3*uJ^#cEc-M@T*&RM;@-Ngq4Pzo_8b*}0p^>i zy#twlF_+Vui=)n0s!WJ6|F}BJ>c}sYFsF3IGpu*e;7Nhn%bP}Ol(S26)sMva4Xa&E(V3HvR*Wf&4uvcZn)yyh*uWLAsF{6 zdiTF`$L|Ge8v-Znz9;qQ8(4zKA%I>t%cO=6BC{@3vy!k>b~9 z4+-pNqkMj8~rWc2sLGv=*j$&Y0)+W4w=2*dpHh z&%rw&L)HnAUt@ytbibu`bqiHEu(&;eLATfrN9L+qzX!MQ+m1<-SKrW|id2M4kUZGh z+~VB4d({X7-d%IAN=e^Ze>^3EYF3SWmwY_lcjI(jF~+YV40NQ~_@vYjlnQj}$6qIH zLh}>R$;zr_fNhwVqMX+IV)%qhjAwtO+Eosza}{jZTez1Y(nC~zI@)l?$0?QC>RMgO@di)UwYa9ciZSL_egmm( zmk?CveQ?dj>CmRH)a+;^hO8IUx9=vhLh9jhy^_Vw<;h_Rc8K{)sjH0_v-G^ly`Q@0 zPN&Y_M{q`_Oya7(`VMbT^j@&!As-ZGXEsS>PD*56IMe5#LK%6QL6{(}j&P zc#q8>y3SrL5)-v{(5TOMb@`<^8DnQKG_fSSK1XR;&ThK1_jh?(40BRMFLi-M1hgS0 zJ7IWU9r7TwOGBBc+HO`=D}{HiX?n&by6MDerWQ~__Q?ZCC-t~RA8gZ9cfy3%Eh;+Q z`>GkhIlq=Yx?WW=tfUBZXBXUr`U=Lx3GOQK^*O%*I;#*`1t2Tsmc^7w2qv^KZp2Po z`M9R0YZwQ4-0WXmp=n;>jywQ#IU`R%n#tQb&qP?Fj_QJGNihQIqrXP4ss~g>@pg6H z`OT3s@LR-fc`45&B6Tunz3CJKQEs?s+-08^^8TJaZOkgqSjaD!K~81c?f>2*aVqTW zGAz=qLTK~mylzC)-CWodsw6b>`~j(g=08LqVdW0_~4 zevx(|bpiU!v`hhEh1yi|Q^cBQscjJ(eM6e#RG!d!CT!Fpx8BJ$g| z!GLMD{r90LFbL81S~Hn*%^dH8lzuibnamT9TuZvsrPov*txHt|@0Z~=YS;KQsgc^g zlx6}q0(=qo>r)l57wsHoNPldI_C~Yhla^d{*nI>Lqim+(kCtPePYfBlLv?rd*RB^q zjDs1rHUK`l-K56c-)`6hTj8`r#sx!5dp}^5n`OhleYry8`uBOCaerD}{Y(6-5 zB5b~D9@(l?mH;G4p~z}Yt&0?9YoG{UB{$QPFD6BnWquRdI{BYsjd}{iSqi%+lj;jZ zxA(ZK+^WCUa+*5st#~>dECn7h>p~Y?)Be&mN+tJQLz`80psdau-H&_^Hq_+>i5?uz zSGPQOt1@CyYxtcf(v}DT!aonJM~L1 zBl2)C6~GbY zey(^{h<$+_aI95X>LOUPq(QiJb|=XilU6^3+0xV6VM}@woi>DT&1HXcNpSgc9295Y z2iFWtEPp3mlkYpwWzsaar&RQt@cn)y!N=4%|Co%Z$$c-j=l5N=8bmtcH{HUuN}SsD znIjI1nJg&`O(7IWVzk477hI-`#ms->EI{aA5MEm>!5(S0M_;)Bl$U>9?2_Gi^<<=1 zkY+*O>>tNtO@n!p@^i8T?Z#F|v*Ngdnv`OqB1q_p!`9Uw@+{&KAEX+bwARkRfr2*Y zekGV%(PUqtkAHyB776@J2F&z_3SRsHp4uxB;f7JRlFKnk&288Re?+C2}B) z8hDl9i=OB$q%^o<(AmjpMw=~Y+k6udI1i<1e%*l4B=i?L7L+=)%X4U*E)_Ly;BY02 zN_y~`x^0JlI++Z#*a*!WM znS4^K5%d_}pZ%3PRu|ldhSD_f+x|iRs*um#2YlGwwbObG2=Hvhd9G6{`ieFpzy1c> zaJRDN6y|W8`lXZBGA^Z3ROEQ5&KzcK)GNhqAY{6RGbHn^WcQ*RE}0tJcg<1oG6cqB z*!{#=;$^m_FKckiGFD9}LQ%rQ@jO<(i*FaO4R*go#NB0Q3Pa5Yn5YZ}EP&)_XO zB;woyUvz$bC+`oh&VUYfZt|D5yT6OlS_qZf#6-)%?Gsr3&ylAiM@vyp>p>~r3HKv*A7YfOrJ~~Y4RtHU z^G9~$%U4ne_|${r0W)@Yf!gF%8ueVN?a_BqBw2%iX$f*HJ-+%fo|q!rgbRzj&6EQ< ztW9p<(HQk(yl9^GM0n0q7JaeMKI`|)5_nP8WjOw%x zFLR)8TZ<%BybZ`Y45Sy%+Zaq7cuRB$Qna}D(|s#btuL93qX`dyL@-hs)T;p{k6JZ8)ODje;f`&uPbwKCMEDjmve}KCdPB+o7-0q za%#*z_*sxuf!z2TzYh?OwQyDmL+|x=zGpR}YvteQrR&Q9itb3z=MuY>*k`Xko|y}t znbNH_B#bakY#%}~iL5XCWJ`qC2VT& zRv@CK3?snsgEEBjSYJ$<*7pH|x`ZWzVrQ-F@%StvY20g)$ew7{fQafA{(3AFsJ0N> zWko(#=(XqLn)%w@lkgWU?bPDZBT|{)3Tnl_&tbqpaD8RvnLCi!ZNDZ{75zP{brg)S zgnM4W&x3q(8gw_PESpZQ`FfeQ6==qtJ)Q$;M?e_!Uf1)3``H8mr&S! zey{p$13wOaTLOdZQbGrtp-B5f$Y=Um)qp41GiJ$WDl61$uNw`B|^13~#pGB=N zlc8M)p?i_ceEU^Fg=JJ}Dd6*qChr__`M|&=-aDm>^{bBZ8$Hb@Lnk;oK~uV`R(OkY zPjyqX63KfcQs~+Ui^%m_Y19bwK|6bW5cHZhdz^R2-z8;nCi6OK;K%JjFuR2)+Mj;} zgb7?x;(---_L=mL8+LJcQ>_+B!p4xBrp{n(e`T(ue5jw#)qFNTouSPnD&hdl)Ih!@ zBYMpTafePaxNY`lu5Pkd)v+1KfDS3)-r!4yUSa+i!}!cGgG zJl8yldeT`Z>Q^;BS*=%xLw4*HDoW{7-kTSn6BqHccY|{0Rezm0@XI&G znDPyH&~o=?OC%LsZx}wICIxWgWGFVsQ@VODBIjkoVtv6(;d-#50JuN*^xJ6 z1?j}Qx&#)_oe0}>Y1qH&F(U;731W7REza%;*`INHVR!rZ=zBz;4!VJ!8o~d2DJcHl z@rPY&f(J74LFn#QC=vcEon$cjXdNOHvs`XaEj0}jW^`+iPR{l;1dX+f%p1V0f#q$x zYkFagHW)W9ew$9yyNJ8EmUVNbDtG8&1f!#O5SY#*luOZ{@%xMcDe;$^93VGd-r`ny zXW020+9g%Nr`?#d3R?slig@^#>&j7sN+Xh~SG$#)qDlB>N4YhF@8M8e#M^1PhqT}S z|Jfi2PkeFdxJ9$xy+1n&ewaor-fr1{Vs6V0Zz*%FA@tvfd5@F7LMpX(=l8)hc1Wp? z%=x)Li-|?gdz&w6hwSF`v5goegvwPY zbPL;ufj>0g?464QCs&4(SR$oy4s=EJ*~{F%$)fdhu<-dKZ-uz zk5wyAv^kbj-oY9pkhl(br=y|BkGf_JKPl(gyT|2MBje#2@P@+F!*aWmSm;)cv2l(? zUJS8TQltE_!UZWhYl65Wl}fFLL_IKfq1QpXJ{DU2qt8!A?2&SQVn_?6X_D<~?Mwp4 znKxE80Yk#?qsJ97j%C6@;_(iV%yG%prcmF-deiG95q807p(ZmRG!n68%lUhqNAl+B=Ow1ZVBf++Q< zIBR>!5|a~w*%=X62dMh{-^Ms-T0^Awr|C1*_!rXX5A)#steVQN)to~$pNJ34S~%`^ z`Zg(u72LBMCd^L&x%~>S0OjYlh{be$tRKvNR+i791+GdCCF&pWz2%9=Ol&Xam_rv! z>U+lkvqQL8AaopRQ!!(?NJg}U+RPt@T!KCyL6l6;G+|v;%57{K>6<~N02ky`H?35H-fh)OGi+ZA2wp$7kvdb@hK}Q27~L;R8KIF$f33W(U@05 zw<-JK;kNn@2Rh^{G-%NBnU|x~qdt24$>HNrFzM*_wvy-zU9suZ@?C&@lHDJN^7DIp ze!1Ih(OD^v5cp7qhvccCD@z6#gEnJ$E zgV$5Js3*H1O$-_#3K$$xx>JsAzp?kRzJcKxCvO&{<}gM#^7iOp<^72U3t#^X)~y z7bSf@1lKy)od}aK2(47nM0^x@V>phGYLrmacJLx5@aIBDhMj-zK7ngFURtJh+ccm@QkJSNjoGeV`=Tu6~cri=%n5Clar?NHfJOIwCdSKv)b1mgXY>k z#QL1k25MP@nAo1|FA`n=hr4PHK+?Y6jqXX*@%&QM-!~A?2h^K#QsuolT8b)&U49R; z2|GR1KhtM-I%Zc2CXW0XZcf2nZs2!{RTd)jv=^KVLre+ju{m}lA%0)S$79BJ__!mE zmHr$VYdAiXCeK(_hz*3_$oj=1zx&@w+38}T@xkFq_d&GGixV`^dck+KmZ^ch_5#d_$H7k$~cS*M(hUgjN7LC zjX!Ju4K3pNdO_1q9QW|eFx?10$oVA@`)79u%)=v&av^CQ3JpmErkO?E?VHUfeRGKp za~%v(`}Q!@ysvzPu+&gRS?Mp8F=uhVXT>+9W}kGemp4T(zmHwt z5d2Be*S?%!pasWPviX?N;!*0xIP74kZG)7-JfM%SZ+YoxE!~y^6pcCo$d-G2-DaW- zvzq$0a6dUB`d&HK5AP$S*?7H1nPm*~ApPPm7F1qQq}?)O+X;{lW;iimi5&_VJWo66 z{w}T$#R-f&;3VxOL3qOD}{h(3PJmC5wE;YBy=x|TZM zocpd}D4Aiaj5>MbtowdGI-g3A&1vj`))vv6UAj?~)D8>TQh`2GN`}CF=v-GGmQ-@WkTVrgK$8SId&$9H%7#)aXKgOPgvW^z?gnOZS(0^N{l=!B_IxcY6#H zd#OmX>!#mSg!J+JVfu~A2PQIhdk;hj|V^%NJ5%wLOzfhvC- zrt8ft<)Xd`c@{x?DqvuddO;N;l)7}(1Mcc5d*V!6Hm7eWo$0%ly(ko+oUm$@7uN!; z_f}*d=9~|Kv^CNijaoDdA?^k{B4*(3j*W`QKdu8YZ}8AU?41;{S(6Xh6TyxWB!Bb* z+TShOW++9dyDTn)?CZELpSvGbk}9PR?qbyX8&I9PcbntS-hCb-5O4e8kA4S} zU5mO|eJ@!-%=~%y^2_WVT7UQWduHAEts*y0FJIxa3`=nn>jmKXMs@ndGl;@#pRdD1 zOuWUjxD&VIqKt^l7nLT-zw_&soCNkPUI^~+{cx0Z*$Kq&@O>dOnk^4m3^Pbk6ZN$m zzL5xRWGT~iI#T4u$G_9jbzscC1wm2oZfoe=rJpKdj+0e=OzZ1xUxMeNobL~P*T!@`W$gU# z`ID<0d#hGOu)6$rn0CQp;jh4Gc?rah|>sHq>1>Mg6V)BEnegXz!s%nR-zV=`0; z5wfIRb9R>fuRGGym~+ghqia9kV;9cp*lg-9fsqy)h{*)cJTD@lp8ZTSg(lYhq>Vca5Ub;AKYVe*{>n7otQy$44m zlndBFsv+H+NRD&Ns92e1qznH+l4H zf9ips=+1T=7&xO$j_EsWrE+z}y{9WjD}|I`=|7x(z9rHzHn0N%C$8ft{*q&s9D|f#HBz;@K5( z{0(PN{gS+*j~||6_4{Z?N_+E^VN;@~O_t`mk=!i+w5(4@met zUT8zMW&262G@rlc^m=lQk{rLsMau~kl82oD!r6V!PS5}!FURhyOku=E&Ka2*zh|b* z9LcjcUijV8wGZf81^aw+7;sySsDH4B>_o%=`P1*O2GCIOiUI^XJ|Q2RlJbd=_G;(= zPtt%UaH&K%6y|d|?D)U53k2f7C%gOJX660WqX{i*y}KHxO-o`%x+e*Im5OsU9Jv$Z zsv~ZNUJWPFN;=PvC*Jx@8Tz3Yk3q2LMSu5gjHrWjRFq5mNl{e6*kjqnC}eYil4U6M z^xza$1YqAA>!b!0Rmp{vgKl#}fF&I@7 zzP`n-{D!F%tU*Z(vKDZh@wET;1f!hg9Set`3>su8tW5L`Ah_eIx(j3H=Du-opujDgvasz%-J-V$>Le8_O(9fcWr*Dppw<5!!B7%9=bk~;SR>t6{E(8 z9f)l|y6N%DTVj1zxmT1u-_kx^&$zrVLvv)MjD1{6Kl-K(!arNRt!GdSs?sXfQ;FyK z-t?TwM_=QbjtGH1=<|a*%_uZ_=AFM2q4v+P@tGt^&7ZyZ=fl?Db0k<+BMMG)w+k?kqo1y>h{^pyNu4n<_9tdc zeciUg@h5Gm0~yj)M|;?XnY*d>)A{y_=LSvu%!gWY1DW-mYx=0Mu=_OF$9m%AJKy26 ze-(NCo-XPoDLggvYQ<0{crK%h2ZJH|hE_a{CmlH~``P3V&r1M%t zkqsNdGXlS^(d&zcfYR&xQy{om{StX;(WZg?gYGX5S$&<4-Kl=O5kouJ=hKy7efv0Y z=xpy8KS@9GsK0k6d!TmgzZ!7MF~lRD6#G$SHBY}0&_zBCEN)Qx`HBGvMOw9RsRLPl ztgWFhym>@7FwEQ|`6Q%bX9{@rsJ#NruA7>(sLS`Td-BvW?w^kZ}JC zF{-genK_bifqnz)*=eZyR)n|+$4te?#&X&Tmo?dZ20|xaEVHX)nzOn|P#}>qwU9tD z_{$wepb`b`d%eYoevjE52|yu_!NCX01=KpQykVC^LH+03@6Q-!bCW330khfuEy`NV ziK4N4Nj%0aqUh^w^voS7Vw`<@-y2W^fusnhfS!D6T-B5>R$OfeAD^-v;k`R%w*Vph zb;^~IH%QvE0@UUYoqbj?Ui#!gbxPwUiONg#(jPz$6%l)7iXErR-@ocae}QchyM6kO z03c9`sX8u?BCXHT4j*%HITb%k-aX^H^bz>-%k%A5a3JT>8c%=NLCUwb>b^=*?NwP6 zCe!>`yJp=})VjxBnx=jCa$)>}<15|uApDbn#(8Clhq!W)wnjg?R@>}r4`lJGdQ!^Q zTWOg}({Tw;);BYD#q4_PiJj8CcF}31nV06h=daXSY`_q__yd|X zkc)*sFHhBEen&Det&b0U8yyGO1k)AQzH!91kLO@Qd^6-5=th>uk$|iEKPe;<-s!)0 z9Dg?LxZRe@Qz;$-FvY-1UVia@~GelWg)^>vJx` zTf5(|7Ed8$d3;{#agCItD(w?TLLNJV>bu(1J-Rb=X@U%oa3tzt14OU==1M@Y-0MxU zBq5bw2kT*|m4!{C_~TCyQ-_xN$owD(nKrO-CgIQ64ZZW(yNCAmGrt_8qA04yBemeH zU(+#$c0jz$H%tH0l76qGE9D^F0kQCm^*rtyp8gtzYuL!H-ge&laEp7RLl5Qz$vZGm zH;*-P+zb6&IuZJfep6rT5F+JgXq4#C-J% zcQX-0w0u~CJjBF0FP{U>_u%ioenex=JY{{Zg@^&Vk^LM2JOW-MUMdcXRLg%Uu5j5) zG5Z+CC9$5`L0cTvx|va*J6b4IfG+GCb^#slxHjf>?bM17dW2eOisWRMEeTmGI|lJ* zsguKCwekHjDl||m^<(o85L(>?hshF7Nqs`V)>yu{L@dsaf!dUL8|Z$xP8CX6J7+-FNB2K zHz7e)#zZ9O_)$aE&*FB|S>>}EBJAC~u5n_1m1^kQVhp6f2I@d&^pvyeG;MPoY(sMQ z?(GY{4H#^@$)cWL%*emg@VZ-D2@#SfYqR~+cJ8uKi082P&!EpPk+3(~?+0>XT$qRD zjhMOVw&7QOQ&vB0(lP`t-(n0>_L<7s_LTm`73k~|*1XFr0c5BJMYQ|ZS*u3sq+<`JPfKt@6O zgo*T903Cpu@65!-Lf9Gv$tjb0cl)MJPP9kv*_&%b+g3?dWYv(R9du~6-E z?9o!cAdN#&!M)xbxdr_$V%2KY5{@dCg`&YXE&a3vxNR?t+ees4&)?x4e1{ua=E_1-8Z8p0jW0UBZYD(9bVf?(c5@u3cYYEd zo(Gt0eKPLF8a-d(72CKo&c$Rc!8~xOsJKM?bV*@5UK^bAUaA z=C|aLAz(mS`}QQP+8fy$b8&+%IL7L6Azb6jNZti;N#5bp$9bpLzvA&Ae76$Sxu#8o z5&1j*sGZ8+w-wHHY*hLt7X)HafS^kspJS739Q4D}%HjvMx0+GRzS zh0mR)n6g=%3mV~t4Bd`nk_nZUyXbD^Z$aW5{*4Bqg>Q_*<)C`t=)R5xsktt^k={-*eKfV~g&!}I0j zhGZFJ4X(pfjU?M}#`5~avnq+(W3tFsVCPR&=5PagI^#gDe!wd0MSaHByMRcl`iB-~ zSJakopL?C@nN1||_hc!JmL5<@eKThj^}cKc#Nt)3Pi*AJA$tccy~UWUKtJz02XRV^TJdvf!&QbxnRA_%_1;GV?jLaF-kEJofi9_b&)3u2I?6TSoIZPVxTA zWuZEEI&0#9MsOVj4PmTBbhO)@p2R~u3(MouHnVq6kM|YPg@P>XchT;PKvu$qa4DrL z>o_as`PsVlue;G;)+3lixKh#<#L1cUn}P6yA7!0tLD|>cMBfl8S}Qwa;nXL?(AIN1 z7b9_X~H(V~YmtP#Qwi$ayS z^@RT>F4g9@r%)_Ykn{W?GHNk`z`p1PwsrPfp#p)y4YYP-GU*JPA?%KiYrA8{{qivJ zFO{GK4)#xn!z}P$Tc_j#=t54qxn0vnOdNq}a>D$BY9Kwz#ufpURce#BV}?CfL`BVC z4a3ZOp6s>{XR>FjKH68b>yI9K9ZaRghhxw!Gp?Xr8Ed>A0T%@AIeIX*U9y&wkO+%= zl`qS}j%&vNrHohQ-&qL@lldA6oe|8<}L_}H$&0i0S{R3p%z%_d1?#7;y;ia{&J(K;|;Uh;9nH2ctt{V;8 z`1*S^+=2~nSxyNNi-};fiIBvJ;Ux+Kp^FXOrR!{{r8ao)>gsRHZXc&^~HKAYm2_%{c zF(GSLWt}BHA+EzhW!2x8#k>I}Wjo*2t!QuOS1s=Tt?jNFK6VwlN$JNs6u|OotzHhewjUgNl53ie#H_UsAWwA78pJY=XlaP;V!4i|A+Y^gch9;$-vWm)p5z`Ckr~!M;gfm}wEz zjO^n-p9<6+9BeM*WRm;bDVN>j&ISiO;NLU%ps?eQTYAaptc9%6&S&Z7(9egdMTM(b zie+)UcCp0Q`V2ORZ2MiErBt>i-igTpGtI*#+qneuPjQG%XO`B7_H*6$Imgqle7u3(`hJrZ$0H{Lt# zNbdN|wB=xRo1Qwy<1dp7lI_moizsad`LhOHD*2u!@mw}4n60;}>T?!v((sj>0lNiY z$6w!9M_lU*4iam+X=cjAK(#`^0sq%-NB}rID1Yy&up5m6i38(Mr%geF7MWb^Le!Mg zJP-&T;D5X0xBZ;R-)1HI@iBYhVM!iQ91er( zkFo`!({5&cQgj3V`m1)|#FJ^iQw-uvBOnS72^J*+BwB^H9Y4PmE_0)EE0ra^gL-+o zfLU4CW3T`9B@~f8kFOV62a}ZCXxMhC_LAtn$*`In$+^ULMK6E9Fq6u$*RUnQvNlHl zX63&lBZ$NDN$#g-t`4f}epMy+nrEZX7x?DK(v7|e_8$Gx2bzxrT=kaHYD32<^SE^R zX)?ZZ+Mu25C@Ayo#XEayAx>vZ)`9t? zVN>ax!cB+2kYXtD`sIna-3jlI9xsW&=p5dGIF2_p(H6LzDx6oRDySXyNA+2l?w7mrdvZ(R41Mf+odx5Ft0ITO`$p;36$MU#a6Hg z#QCqU&EMPhoa6?>amM46e`uG;f|T*x#C&;$sv}Wo`lbMEyz}L|sSc5}f9%7f^DK#- z>7>M&YY9xFH6jaHgmis#cFfr8U+M*7FHOvZ2Q((g<9mO4xgOP${_V|qyEosZGkWYJ z#mKxa@amxHMZ6=JZ)xwpn=tfTDBZ!&{oL97m!9paw|B200pSgT5*<(e@ocOgfU=S!GSub*8Yvtrwz*+1_ooBzv}2Z zjN;#WIV|7gU?9@yhm`rJ6dwf7+S1+cq30#_J|eGs;DFfD;*#9!YBwRHcUXYn^2rrp zpEu8lz@`O1Y^b-F8Cz)a{Nw)*0noPKY5WPs1}FFn1_dOIz?3L z(3B1Lczxc2J`yqtgS~L;%W6a3?f1D??Zf5cGe1@`;7eKH)=i|cLlzfxcfo?Y_?Q4? zhP?a^ZWj2Ym(DeFFa84&2Emz!sMq1XQQ7nBRl>~yEU zc?f6Eo*^^dRYSJ%k5DNU^7SVjE=ZH=a<*~w-pH+v} zjx8x53--%8^!v$33@bO0dZ**IdD4xVjZL!d5a)t(3y~Cgc!82<+k%&+3F6B`AHx#j zhqrN;+GsMdHhcFRogSmVdNr=6>R|A3v@#y8vF!eG;0Bs_SXA|Y?fl3y{6fC4^GK6; zH^GZASN&I{>A>H8*cIv*=XuD=qG7(HAtSKjay!ONtZpo zJ$2?4{pFP~Jwmz?XM60u6j%_`xBaHE(@HOJrNE~U z^j|XW=D$Bb&-aUM%*DD>;7BiZBX5^@gS&SdplbpY{G^(TgVZ(j+L3SWuI2GCS7Jmg zFzd_ho-Qp1F`SnM+lPI-ouE>PRCwwXamBnQeb{$VWr|@ys07}&0_!Og>gx5F-%o+1 zX+I`07K*&KEu-yEZ-+QSJ}AZhYh%dHl)3ro0Qa88rOAW`q-a`5Wk;!b9Q&JqOeE+& z`(Sm`5>(6xQ1BB~?)E47j62#6UZ-TVw8v;k*ShGA8sWJ#lQlWRf1lK#a%f=Dv){zzElmAgxa>6bpmWo97Pi}kp6^6UzWmSOv%{L{ z)2lrnHgo2w$JzIPFsk-F$8lE%`AOF01huik5i_T1#lZ~Q3Dk`(Ir38|%3PX{&o8$j zedRT`+%uu^zi)@{QWKZ|YRtoHM|phv$1soZQ zVEGYE!(Tmw7V(brZzkVMXz}@&V#x`S&gQZlM0naUJWZeCqu85^8HOm+pRE66S^mwZ z&udCEVQ3F0^@JzzUyX^HuVLJ2uTb8embkfAW0XgA!<0y7b=oAWt*(yN~j?3MVs|*)k`l%_) z7zOAv=0c3Vu3#3kIAl8PTu1Ae43pwp2*C>j=d}rEXfO4jf!Lj%@3QGuWPHc(ciIkaS|lWrGm9A@e>L9q(ZLpfD_3xC5hCt4 zIs=f!6d1S(zuHVM48>E8S55Z~N#EP5UAd2^7{+qTzn`||Um)Txh#(cy?4U@E{w6sZReMfP>e#ApDOha4eFZ!V4GZ@&F zo5SWo@);d9k@$ktpZLB2fPWsj*X@t%q9?C$M@bjvO?*c}YWRZQA$~A%UlxQq6K8H8 z+>PEk+6W^;6iC5JCDMRZZ9Q1%-S3J!D(4eFXm@7!2(lu;|Ke)viO5JEjL?J?wf*f+y0=11N_LNjK`HEM_j_0rg^IJ zUK%JGnhVu5T+`ssR;BKj#DmOlke(80;C?oUK?qt3dp_3YM_z!v$3-!KESO5B&W3oA zY|Mf_#rJd%N2nZ&I`1~+=5z;!9dZ>WD&O9>&GETB5Po8FhbJ%d)b4l~!?8;f>yA|; z)zFO=dd}-TcYCW%momq%i;;I9;dM->3yc(|d+t+NWP$|&q|=2W+)EA2xduH>kc#jIjOX*4`Ss(+`RhNn73bj-JNdIo z2Fl}P`0+%WdY_$d0l;L?#*)^d>YjHXAe)Pf*`OF zGT-~Bl1`~$Jv^l8Y?e0~_vB?B%vZ)nl%2he{@ZZW^YIMo{*=DRr`7JxpB?joqst+g zYGF!F%bXem_s@IWZP$9;~DNfVfKpqg>>IyKCM8eU|6`{UM2 zNalGa>O;Pdf4{Rf;)?dTF4V4Ei77<&8)D@tyc+oAC~S)JtOCFoU$4ABdSqzfR+$Vj zVRC?ZN`m>d1wMQz!?gLr6yMz-e#7`0e=5#;6U>~(?n7j6@D7|4_*5Q@COsHQvze0k z3olx4C+&HRkPNmbB*cOteM4U+OrtKonK;%AT9$|`dqoJ(l!*=r@Aeg)5Z|Na*Zz7P z?_I*|V2DI?e7Qx&AGjBf;H+NmYTI^3Ph&?pp4S3AXHB%&*a@|5~KygBT zv}(#$U&+xAkz(KcJcthR{j&YJvA_?OK15Me6JDH&`t0+=`(+BuAeY#lZZ{8SwC4#% zvW{na>oK!mu9p~J7O+^B5k3|0KGopg+d!vpd*cpthY9o6yvPBxkst4Qcd)s5MRZD= z)hvUbv^%uX2>90K-f66$k7Y@`%@j=VjAfI!h@cbY6IloruhxnRK-H z`@B5P+Yd)5`*5~Ri?>O2@KPnCUY_=J9QfPuO`>rHA$?A9l_&4>fBXy<^P*#XW|Eqj zSalW-N%6N2B4hG`SP?8O`N`PD18aloG@E|8NuA6lqoM2oU^7FF1*VrBlZ`?at= zj+@3qG@P{0D9r{Gdl?KYh7h5gNq*Uhr;(Y{TnQ+rZ#!k~eqG(xYip$1>vq9xC3iV$ zyjfonE@Y+C_Wqr~wwe4PBM_dX)9DH6&V2(d?Dffh^n>7^f&P1ET31+^wB_`n#fabT zzr`IUlqJ86KmJ?h91Uiuk2a9NMX+2!<8$k3KCa*DGOo^}T+s6C1)qzHv!2*K{bBwi z@fH830|4RKqy?uPX5MA?{oAAYSc*hMpquJPD080AS6W5j=1 z?)^T(E>lj;%DMg+oWOvu?YHD}&AjF8*c-=zsveGiB7}la?Y&83z`8pNLmXVlGr5FQ zrAgv=4}0@1?zMz?FJxIR7{-#D#!Tb~K8bi@?df{{9;V{n?J4ecpVW}v1pa&!_Jp{R zi8EBvzM^V=HSin8H?)1xOGa5EAo^yDhOT=?XCkUR_;qww%6>WCw})eTG{H?G(eBkq zfG-F$G$mMtN8PI&A7RH~V_b@!58}LtT)+M_{FFM4eb%q3Y9^(2j`+zBww--dq9W2KVe|K5?_FlsH z>eZ*lK4JHgZtiQ@EMSb0TQgI0^F}ItjX5%-6g1 zKHx~^Ls;^odD=w~4q)KUG1Yqt&KrabuA(VaZ{xhtL&ixnWxHeM#P6Q}zO&%Z2YWke z{89i|hE~Z#1_ENKe)2;KcoaLRA%bBav0!YwhUf1FkjZ2?`Ne7V;*Za4;e;9`})|id9C-?SSs`zZq6FxdN$PA+^C%d`edGxY?qx5HCyt?_tRbKYGa$ z3^@?706fsoh#YRJa5gxx+bro2;gg8^AkmZY*f7S=IL@9gAbKuz;^c<0>gOktK?_TA z!r(_AB3e#w1<~~1%_E|n(9gX>Ke?eCBDP?$0A{d@<_7y0hRM4O;QKcv3ID0?CpyYC zG=pQrv$D{OUDRPpf=kgFwW=(z2>361GXz8?d0(Q>Uf)NCrz31Tq$8o$jjP#aCJ?m3n< zfA#eBa(Thd{%8a1N=wbY?b+Ae_F;Yg_s`!0DRf!pwiO2cf;NZRa;G65`DN>D zyFqZG9n_VMnAJZy@=+A*PAlG*Y*J;P8>BRa+B0RwV)F%E$v)H>56|=_@5=}_mYqzyX>wu<}!67xpwcNLk&Uv@LT@rx2EdIr5?d0cmLB($`kjrD8$}=-wk`| zQvDiyi6l@T;kr5@h=TLWTTn1TNS{M=ns&QWV*l44e!eIDx98aeMMN@+Pjm*t4|bJ1 zv99}A4@FmP|7PaGM&m3e9zujc5*nZGMMRtAxk4$XrSr>5B4*=vuwOnLCdbwtMF&DT zyqlT1GBAfOn_(!5viIz>J`J#~W4CW;K_v2YLEv{sb9zv-P5b@Ax+9(Ko|KgSB6*Dd+eU=O6U*X+G*=BIl~Oy4vPNpR(@^q`8R@ z_09=DX$;1KSpqF)@-b3VS1*|^J@w~%G){oz7NxSnjkZgh=MyY&Jl^NAiS{YP+&x7M zj-MFVLycQR5Z8nGEhgsiQ1tn%MbArmg&i_?PY;9MfvKF+=d(~ij~N->x#+W>eh8^Y z!3`tlZVO0cF-Z88RT4zNZxTCr3#OY z$EZ#Z_01ufYqxC%i(ebJFvBiP-2T?>iWznSr(oAzHk#(R^V`>18w&iNJ|+y<5)|n{ zN5n00qCLdPJy-hYx-Es9Od?PbLZ;2Z0g($5xN6O3asj25JvQg}h)YpzR$!$`CjccZ zOJ>vXXCZaZL>K_(G;F|c=zqt~eTw1%oACE^HWw%)#xA>4I4gi2;HO*D<#YrEnp|nS z73{j;N-+^!sa=1*;B$1GvD9viQ8Osv*bOW6NGRvnjC-enALQ>ar;tc&?uMdhlMRai zo_zvX?ZnwSvb0h{W@!~C>{Kk=osgw>a=)2xkG=3432TZw<9@|_e(w=K5yY9lGv57Z z%(#Fc@gh+KAm(YsJy0o7;}ih3|DO2;|BCrK0f(8KJxxn*=i#{dEHv?$&W{PTvH^m_ zka?-UU*7pA-thmY_4-<#OZh>{+7-Q&#_OEmz)AMIe1;XA1V~=|%lj95)a4;r_6#Fk zS-(%s6^mwq>z-hhGpUA|FWhtBd6lw=^xAu3ml7sI#7sOtXVg#oLMf&azU+R}3_sh^ zXi}XYl``8nKrR^w8r0gxeh^(gC^ho~Z{H8AE$G-sJNWHv?Pi9x+kEQIo=l&8!fL~| z%j)yG61CLXKt%#WZMBIke0&zC{#J`o7CP3FqdJNrqqz~*#xTM@Ug51w=X`VvHfzM6 z0%35AzAf7A!(G|!1uT6mu=Nd`Z9;lN6S;do-2xsAX&|tR+2Q%27bw4Dh-hpgDLM{o zK>Cfzu{w#nkh�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%0AHyC&Uze!ubG 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

    dl4xtkp9pZ0&dqobH{Kp7weO zf0r`glIlZX%W}=G@R00}LWJN?Na!u@=)QECdC-@1c89-zF1@n%QM~R^lAJxo3ukYf z{DSu1R{Tca<9F_3_NezH(l!4e#dsjZIQFXa!n;Esb;4+PF=zou=c=Ta@?%2Ag;{bhtSm8{UlMOehHg^j8@w#sR(hYQVURMVd3+9GjeDH2mVt9bB z<>+y_*kzUg*b1EJZ&>Ew z{M@1Rir}k`(2D9Fz}f9-n!i zLniS4`)jUdn=;CddW-d8Cq5(%j0=fJHt(_O9M=L`0@)gY(}U&zBQoSfo`fN_aGh4oZ#*ljP?aJV`+CC!C1Jg57jA6R63TJM1;U?fwG5 z!S$Xxqx3{LU42pLr;-x>nE;&lCT5m=fya9V$pu@k3T%L-h+${&`RIdxdW_dfXmk_} z$CI5PltXAMnDSc(Cc9w7yJg6CwR7eE81X2rS2_a-p!+0PCLA7(3{3Y z&-{}BtuXVm23c*c( zbl&b0LOqIZux%F4Ec$1Bk)$p%J6wybdSaGM9!(35Rx8{pC(;F&ba53#rjx$B`Tela zs7`L0veoCCbXA3^(XC2Mx%m!vA5pPlHyA2$t6-G5a^FjJ6<_Imt|t`T0}Mn>g&9#4 zZbqat_ouatp@_O~mss61?uWCTd`~NIfm&}JmGcR869ROMzWfe>*RiJ_au8%yO|@NR zbXwOyt9&lXB|Pg9cSg9oz0f`m67j03){bC$+kRjZt$4y9*niO8lZ3FBNRiG~3>P;t z?cqcjzR{_hwfPc zO0Tjq9dhYZ%Intn`84;)i5SHV+M$f7n_J&|FVx+UHdd4^FcDYXr+1zCP&Gnlb#OR` z!9`6C*SIMfZU!O6#*8}a>oWmG#G~r>-z)NEFa%TGA$I5sqx8zt#><6+wX1&!bvwM< zvOgHtRkc!KJ%vt=Z(*R4p$2~jk3BTm&5w+r*m`0}JxU?#VOs z5`FE4k@%UW$TupDOi@13oW{`7FA?6t&Z}bD+Z}4WpIwFc-#&@CYY@ZzPsPx3Amr}P za-$(Apj{D7x9l*Rjgbp>FAWwo1A{9Q;nc4VA%&cUG$pC8mC8N5u0LDFH$=bpCL~Ah{2nQNxhkJlLw@{1Ww?33(5kR8 z9IsEjQ#`K|bGdVh&+#5JTCOK|Bn4261fNQw!Fd|Gov(vS zGkBI>D~fvTn~%EtaF$K&7HSV7zG0WOnEYxBZjdEC$7a<|_vRY>de>;A@BV6se=`Sj zavRQXlw-TQ@Rh{o?D5)3up6d6I3S2dYS7Ek-p>d{iL+i;?(MSNTMP|gL-1?+X0B}X zYjKY5>GdlrDnkcjFZ*MF&0Kpb9tpLO&px_`s~0X2eAjFWR51AsTXMZ;?=Pql?)S|c zSp)<(&lcshPNyIC3RFm4bY}7A`_d;-a@Xaof!J`OLNf_JB7zDhMEEFH3T*T+kg5lD}?q+cLlU~UMv(B&XA2(lq>j}Ehq%C9>Yu~gUgnwIQkvAwI` zTX9i+vIILQ#~P6MRQqWo#JWF&ip8q)L6W?3{}<8ztxqs?RBvR=r)fsM8Kij;7Q-T{ ziu}KQeU(?1MDS^#*yW)&W~?|D_EfpB3waEPf5#b<)cF`5D`gLF@@heep}f=ZQ~@+>jk(V7;F#lf@B8?TmQNGhd|fZ4_(t0(x4AjXky_ z5+qQ8XysX_>j}Jw_dOjaPSJl{LtP?WkwRn;jV1?q|Ob0c|@fB zD(HxE3V23(1uIeeik$hx07pwuB_=VXBRUWUX&dzAP--tLD?|VlI`y3vO|-ygY_Bz< zInI@K`^Y`)XM+YkeC7$i;WgfdMNY(C2ttQ}bLq`pRZVQc`;lG-fO-{U`bhvRoUV1_ zj)SBdT&{e3q;Iu3mG!4J7OvCa@w?sN_|P6o`?219`D{qV5ZH%O*gGKaQ-l?l^{5~~Pho(8%7fU}FX)gTEhYyt zR|lJ8G)Ew87rW%5iYWIM`5D*}c3<$5N{t{1b=7nG8YdVUcyiKd&MrG5f^QT`82b0f zGcUAY!;znjnV)AP!XA;P^NnzmYCTPGLr)2cb^QUk8L1Y+CuK>SmtXW{+@$~aEcHL{ zoaQxYjvHUPYytX1>)5Tl_jc5al|yujG@OuMEI6NuYknw9zYw3WiF~|sUMMeU>z4V? zuWvn_llM`9>+82C_O6+dsbF8W`!CYnet13`sBDNB9<8MKRc%lw2Q3g`E1+R2L^K$r zgT#4fmX3u)zvp2HYUP(a_gwYMb&D+d9fc_GAGqJ&ZB;C}gB#3!@-zA74r#tmHjYao zZl~tI0K1o?!%%t4GUWZ5Au5k+ieCwH$05jN9z%BBQOLX$g6#LW>-xOl=eMi-Z@ALu zkDjws3|Ywsfn+nl)ToizsO6~oCExr5?aVLn<|+ebSgm|xZsH*qe(TleDWo7O=OJXj za)Wavz1MGj)epZpXK}x$h?ETNT(v>@60Y4C%n$F)hMQa<^cB&+H%691Cwj?JPC3G_ zx}Fq@hCwF<)YuDvwirmo>QhTQP@Pk>B0!|w1ySH|?v!tLm)6SjL4JTLDtn1rRA68an0pWWx&62O4z1)Ni9a zs3C>G`7)b=$XuJzfo}`DO9+PVW@QVGqq&J}ovGbBs#Xbuv|pE}KUDtv&ff2K-+K3q zQ~H4e6k{J4c?$#C_SQRk35Kt{Cf%3Sr?Ucf*(2W6JxhW~BB6M(F`v(61LWUas=u55 zFkj*Ml4)So5r9ibK&Hnt>#8jLifzQ&Bq&+@VP)opCtCe|VTu)qH=iasCENQ~_C>4SF}ycUR&>P>Bkm3H zN{wf=cwWRTO|`dHS(0B^E9>OZJ59TBtJllOQ8zp%7Z0&p?Q6ReaJ<^0EyO-tz25fs zXZ7QQJ73<}c2D=V5LE!6&}|2dx*`8wue^pv{BS{D#eIpS+n~1Y+tz*<-8d<285zv0 z2zS?V+q7h1lwtKa-pZ&D3-M!%rH=H2sMdg%^0sZ6+K!=M_T;gp%2mk?)h6Vw6@^ua zBtQG^Y3!14+I3OyIqDh{h*ggE&RqA^Ulz2ntR1s2Vv8g&aTWs_u=dQ>`~c>A?>!#; zm1Oj{RUE!xO1=HBr$Zgm9)K$|qz#3J2*Z(3*PgaMCRb8GqAM+;ClAOY2;LTz}#gmj~PxLV^7m=@3Ba zaS`M<^>c;1M{yxPUCKm3&X!tOyYoYbyg8bI7uQ06#{@Sz0ZzUPvaAT0bwu>fZBJfK z>kO+9$G7)*CT{)G#B|zJ0?m`HOXjy_b&89ac;(JaZcSFHN&fvEH87~o_Va$H`U~V> zR`3*k>b?Z{KG`5Rr(4f;FZ!gMcMVe2thXdRE59_gSlq7bg<|z4O+6l3#RL&SuB&(mZQ_e+G}4~A*Yr_Pt`on{p4a|P6aEpHrrV`?~*iPMbmzy#HA zT`J*4nY;mcxRiTFs+7|peQzSH-2a9XJG@%(q$f8Q>?r>f_zwt9`@Kv>0x(ygaQ+17 zmrxoF$zm*JpJCE5!wBBR%vQ6zzK>i+we;gth5O?BKC8Rx%U^Go0IEMZune9{m1C0t zm1AaExg=u=fcxIQ0}ka-m_q3(94+D)LG^-pCfl>kZBY^O5vQz#KI<^1YuB9*(~ zlOa9?s^qzrZ)y0#@>dqUwly)j$=p4J;5-ux;8MME#2^(}g0yuZYc`giT9#As+=+I; z7+C-;r$Kgn25k^m$~__BvDMydNPh8sb4WZ0d=k3>YTfHwOKk6n{FqEFGWA1#OUyu7 z?za)Sl6Gjoxtq6XG{0+e0r(*`I+hVmfSWFAmL_WUdySWOVCSu08ddnV{g4~A2cZje z?1qB18AtjppLPhv(0A`{;r8Jn=Qh@oeU+LgZ&M$zV?oe zf{V=nymMm9s-%VJ@D))SBy4@N>il1goiyINXaVAEZo*x3$3;7!g6VEU#vbLp;TVaT z7@z&tHF%_!7_@BZL#ox?+5_!KQ|*!7KP2p3;)xv&2Nua)fws5LTp+XnyICs$8u0~8 zJ?QZ(N;~{^5@&M?RYc5p(EB^@>L253U6TPh6PGus>7d3u$xUAH)9nxQJ|QbYzF`3b zvNBJcl-mdQNtxW^Pq6iHWTIQ*_JBbj`?tE`#7Td@F(?qgcOE|0hxf?YD*qVV>&vj zcghn|!vX&8Ra2XX41gsrZl71>u0CQU<|Jt2dvD%jC|w|t(0Dow$e7NE5$hj2i}~ws zsjiPFZ`q9~j0|3b;)!Ij;lkx(RSGIIMy98dPfDqEL{o2xUbl%mW1GM{HG6$hnZ0^~ zGk>=?(z;_hco1?**UR7x3OjzE1~-AKE#}HI{Svq4gsf`x`nW}F_p1J#)r$@WQ2Nx; zp8>N4=ZQQ)iCJ#en)#bLUO8vNOA2m}>#YH2ahfnOc^^7kWFC*xnUum0V;N(4n-Tz} zkE{@-7erU>QroYOKd(4$ObTv#= zI1Af&pUW)Jy{KfSN9S)I`ZN8Kj;GmH1nZHJ0W`8G+&cRcgcX}fX71G2bFPISp9RaZ8Pa96ZP_wEYxS%%On%NF8*$A``o?W^7Wqh+&$-s0Rq6H!v2vD`_b%LIi<+0d zZ%24f5dlb69%fDX1S*s}w>J4&PXWK@OGK2DAKqC8nM0ZrQo*_GMZm-~8aI&HiNd>kKGOaWHZSSxOeekfF+P6z?J>7i8wU4FW_Gr;|Ak$J24Q+e)`VGTvn^^YC`ZBQ zzWZav>O&#CFjsf79~b9uY3k8;u+qLn&c~5k&!RaDrcULDp^TAjRdHe>hS$Sj!6PwD zP5d~%^v7Nc&$dy?>eN*FevR|k_`oQqf zCf^3#<|b)7ys4eLptk;9L|71!p_ZgvGWYZT?G=*zv-aSWE237XpV-}Z&_o~Gk>0;q zy0f(h1<&9wD2~>$UiRYT6<`UyxKg5Yb9VZL{vOFaMo^;3OfdB)JR%|o01jcNN~4tu zbBWsFD6_R;;_Gm54G0rE1Bvu&M_Bt9heRa!8o0aP71jX)@)@oggM$olIHB1JbjqVX zQ~M&LKim`mFZ4}JZ5#Ob_Oha$6z18d!(BJvB?GSjboSx(yT-cl1M=DAPrpkfZ!Y10l68K+P$~=(pX)hOA(uo$G?! zkcy@xb-F3ky|m+Cy;%uxU{&vKGWWA+vW@X$KPRcmE9VV+xGA0Z@=ay?AiXUIu`Q&y)`EYI|Uc?^Ke8_^)@HM!Lfn$@a zk_e|wc^cb^J+U{t@vga|T(^4aJ>BeT@xV-We}bMCtj!R$$&>Y5#iVgA@_S8VI~g(q zZGT!w@m3#G_^}yGcbgr1_$*fLN$C2&`s?l}v=-AvV8AH5J*zvh;Dmh#8Lu^@PGKpZ zgnYo7yz@9D-}}&Lla2w?`}azR6@JC?NStGKTO}g8;H@5cmTfa~B=g!!B_D34AE_EL zb1Sl(D-41DZtSdf2(15_w)&3vXaBM;|yTbPRYdIJ((L1Q5^PP98o zm~mh2y~CWP%uFJTw{Y%Z?R4{=s^O)|i^HD37T%(C6`w#)FT_(xF7<@TuqXOVT!AgN z7OP9EWmoBz;f1#4Hn1#F2;L*?m|fUjp%JjE`b^_LA=C(*iRjxgh)J9ziGO*v4}{z= z!1kC4S3e)SVC=v8?%as?!u(Z#^Nyj8<6O(XIFhb&w>B4g`o!O-OH*(?zJ4Gp=8s5w zG??}6kney7;UP|cH9ok`_e*MjsJ{#E{1b{@ak!$NZ(8()se@RWW1_Jea*e;p_AYDl z$~Be8Z-8(kuWh8VO@zbhU?mq!)3|KX9|1=ic>K6`tUN<0`m9azl#%%UegQ(x#9#uH z#n-#XMwZ`jA_do*KAtz^eh}_)Av+SSB(a|VtM$GFQUl5a4&ICM(-dAiLt7X{QAYK} ziwhS`RzX?EEhzGrnw!`qx9c)%lE+W?zSw8%6n$d{E74%x#&+swU@u@JpTr`yu@|Sk z+9O*C$4}RGuUlcAccG?7)!1t#=OkM9BT&{3Z_^b?ff@gJUav{>NgxhV3@qXJu(7QbREgCgHoKB8?ux>CKE=CEjfk=D-PMi3=sev{$x{dx--2IF5TUxKo z<++$HcjLeJS1%{&F`AWQSOv>cd^V`DW&3u0VouIqDF%yX>z?QLX}vE#1iE}EtXP1x zaiBDzyg8s1cG3!L#A4!|*jcsW&ZGg~3~WvxRoua8&+A z#tn1(7U~UI2a1N8Q{Bqs^R}}l3VhxBaJRnoy`rW+)Idey@WXiv=NDkVcW=PthL`-_ z-bFh^Wt~-Wl*e{~McdUa;USC?9sla-mukLlCd(Upj{DPy22klye7ZkZ8=4;|z*mH> zd=sgd5tOQNta=qtLPB2K$PV=@EF-M6fi)HB^BtJ1XFY#wpmRmI^?dU1YXRm%tR;r&ET(;YB&>SB*qt@Gb z$HI1JHQ5%ab!O3_PH0}`5RQ#h>2{@ue}8~;ZSwg?W9~qy%9vhY_Fu(QHf#^wW1n=? z4Ku!LOKq_9UQN#Ic*5*1+VXe{B302ytJ9yaM*chlhTLxgvkPAHbb*uV%Vl@CVj)S4 z0Sjj_FG+vOHD(^7I(VD9%Co#jLdHdLZVUx6#xWe~z&X$FIf-4~|tkH1lYqT*{E^!3^yPpA$MaEKga z-CnT!&^daFY5L;;Z7#pTt?p~n79U^V8QO(bY z-Sc)Smua%A(Nx1=aAOW-mSS#xPWluhGUsE~-tvhrSzuq8^oP)$en{o7(Vg_fPo`aY zr@sQ9T@^Y69<=m8G8FOPrt6LhkP!q7V)FuQjDqGS<1jScoxUF}vtf!p+7cFP7owB8 zJiPA?h;>o#!Od}V#msNaSv`_hGQe?X2Y3iRWS*n=kUqpUJY)1#9ECk>H*dqoCX`;a zOYQ8`Md?*%*~3*z!I&_M1hlTo(b<<$xZ5^!-q<#I?;Z!|V@sC&I$5(nhr1irR5%kX zS!%w>?165Y8V8TUJ#C_9NC(zv1tGfSepo-5eobF{VDOY-iyvAAEFp-3NBnjzcba-1nlV?h-kxH={9lfB@|C)!bz+v`WXIw#_&U zcuP`0`7Bxl8vPn)_VvctGLCJR9_6FPx$1*1kcY_Q@R(m+1VpY)_;$NObZu z2f>(do@MT_dy|)*9oq226(>;6+|k$V`|>K(ldvlja5ygt%A38$-V+`nOGto|WWmzk8 zFSivHik)t+VUHL2IAJ$+s&|un814`B#7_Y>_%@(M%0lYFwg0KF1@Z-M(`}+lg!%2G zYzmB?8FBLE{Bck8@aAC0Jb880P+O28|2GxVw#ZX7L%1cd<;8NBD&nA5eRSA{mG(Dh z@Gs&!vXJfG-e6TDdi}A*ZSEzn<}oOCCgbp_F*|roPq@b>xQ=(EWrhVp1-5Vlmx>Op z*L24~9t9KX96-#jvHEmb7ZND-K|L#dR+stxHXIz*_*{Bn83uAvh*x^6{u(}08Lt?j zW14b7BXdQv7SWyEH!X(kbt)a6Q*Y!%9#EA*t&;OpvS(+K3H4|%3{}?UR5m-zb=ReE zAi&1t?cCk;EaA8oqX0lx8PO0hx)H@0Ekk#&0~&)rlbFX!Q3~mMuP);$#kgfW{^dy5 z2P`ncxHt>ZEzA=K`7;ip;}Nv>nD`)>Uqm@fNDRNxg@CM3bqr`}hYxQ~WO`E1*S-?Y zw_|u#QW)i5vW3O6uC?_&KIbmyzUY2OAqwI7zzF@7c7He*rRdHkjp!sSs;fB`KX8Q9 zxwYJYasjjBt+U+v3B1a0!W%Xo{Ml8FJRQOz)7Mo@A=SZ@X?Z^HVa6Oi5$uTl%0}B` zvI%7wd>YAL2%Z}Ny2ly}QHr0}j;4WP%9f7fpjz+k>LT3^GxM6p_}F2DjumuPReN1~ zWbV#V`Jol;8hr<6CXoe<}e;lK;i+ErxOlRv#97pM$wX&?K1c&|kJZ^J&wbQfTL14KdtvUoKQ`c5$v63MBTJ50L-79hEpp4z+tusFBFQUqlWDX! zeAsa%DPm~#4;9XeUe+k6r^5$~v%4wTU%D7!5J72AfNcYH^kEe5UPK?axb%_^3mR5} zOM2~ZYxKZM{o|3)_5R|vVWx_C1=m$d(7Oj=LXl%=ZRdVH^hI#hCh)QxNbmMz_V}gL z?MapwRpO72-8}5x$H<=ROZx5Pt23q_M@H#shlO8_9yo~Srj*WF)4q~1ZU&~4V?8Mm zdHLMAkpn{0`Kz^*RfD1Y*DIgJW!CImxb(N34MJ2pW}C(x5MdRWqa#4v*gjrKc~Hn_qEi2F{0*p zon9f#a84%A^9WX#PV_-s-`+>W2l~;-53`b-pFPRFQF0LY#K#Ta#!(KJRBvL18ZyYU~QW{jD}Qd#Jg3yQT?2(u3Cw<()w^T6EbF9+NbC3#aO*b z>9JGL>B~h1A~drxRNLV^PD=5;!b6)YDQt=|t-~_rKP&$It6;PYFF-)O%+h=ehZ*nH zm15BwRL>H1C5vjVaRqlGA5$ss#+Px_ASjG8ejM};$1|40$167v3z1+6nEiNgsXU^6 zZ%MhHgJC~vzrDeqRlj<6RC!kZYwxjBQ^U;Y+#$ zYOu!U&PL!Sc4SEOIfR1>!gL59JCwhSomh+0P;G{E?)O4CTp@w^p;PST@4NTDJ)1AZ z@9Ez?NbY}+-mX8v6lO}^-i=Cx{HkgU_jXS&(1z|`l5tet<~uoEj^`lz+xU5oRI0Pa z7*|yYQvrDLV_DV5+lrXcb=sK2GZ1vPtoA%ZQtm>M@At~@4-PY2q3A+fU<`N5(ylp>&Q4xV>dzFuUlIb(`FY}~ zb@H*ZHQOwDwrQU=M06D%8d4MvGTi6+;ad`6X64BI%$G;kGN-Af6=;MC)oYK_^>Ix3= zZ|6L_XnJ-v<-8c230?IbCvs3Y;blcD54*asuxNgeLef+K%$J2No zHUa^}J%iy();z14Cg&=`oW~itoFbL>b@BJcu9MBMH*n2~=CM}uLW&l*UXor*ZY)mC z{hOb#_wlX;Z#Qn?wR1&Ti&1riV|{T69@$H7P{Bs-Lst=wV7OWhMxWhqEKTwN*0vZ3 zadozKd5+5NbWgDZX)xY-gOF=G7X8(dap&#GSN=tU((dp(9UXwsoI4y}rm#Xz``oQ9 z3I2YODxcr_DWCaEd6F2-9?t~9Vs`mVVR1v#{W~45`ElmSW111T_RbDptT|FD@OKhf zLN|p@C~~&^x_)^4s=>!Ru(J;G1Rj3s$Q^Tu3ySQp&e;wrm%)`I$JxQ~$Rd9XKt4|b z6JF+HL3DH4{3#;}ekF6#lXK(vI3a~An{R1~W$_y}{ToRN>m_L4nxB&xGN;4%HgkGe zuJoED^Aibs8F*=Yy0BxD+UuGV-p0JY!G1lQmvcZgYw+XKGYWfTn8Gs5FvbWQ6i8AD)Cx<{L3DQ|kKuZu_#C3A#N0 zA=A@|IHiBm{qis#{-7o^>IUm{J0360M?T!M^Sl@Gqsfw7IUiPksoOa{jl@iUvYAhw z>zLsaTxveacn<$H+RtwK|IbI@$NR2D0-n5B&(k67u}ng!ppL&U4v$sV1pTLz)&70( z)N~_60oMxPs8vuAlv73gJQB=Q8ZB>yOqU6&OxhUPs*D7$ymhSilj{ zH*iuTsA8BXu=XXths%B8j^xK!Gu$f@LDWv_kC(H|!bqrp_=5tk>`K~eg4n9#e1fLP z7D{rfK4%g}0TM*4+xvUJ5X$euylQ;EDrHrt`*+;y$Ak0SZ>M0)2)gnPvm;2r?6H^Dvl-2gabwKn zJP4$&{oTdR{<1}1eqUlpi>87nzyD+J&4MLa(}S>CG$YN?NE!`jBymSfG1HQ|C;N6* zWoG3f7=>!z_bsdD-nryjnOV72u9bPGF^E<87;L%az?cU~1}ytQw!t=Gu#F)cVS@06 z!hW#>9t6P)4%?vsg20yTFSAZnWt~%fPWQcMFoe|+eX1(+&;S4S?O$>zqBPx_x;1!V z-f9+y0`O9NU! zOdOVw7{y_|ylyFUW2iKUHi8nJ8oZHFZPo3DTyBvi8L2QbBf=`j%L^Y+-2<-dAQpTco-opEr;$OawOK9la^n5Vtfef%e1k zGT{W~i+Bphaaajj?iSnQesQjuuHDa<;fvpdIc(4yI9aTv%i#dvilb)QFApzvM!fls zTJ@uf-#S524nE~q{%9V;L8-9MZQTXl;3zg;qNX%!*Q)x;A1clEx{lU+s20Mc5$xux zfKs$z1EfZmB$Nrp0=0$LJAxhx8+bQ0zG4uxI^Q(`U7|vl%5aOn5D^}Cn?fk(GAwAeICliU@ zYifyTdBg(Q?Zzu!uE8msa=337(k;)LpviT9SSyDsK7`lkfE~*tt$tz};5yibayUhY zQDr%(x(Mt)7?+ZNHCSD;fs(jUsa*ZS|5p6uCz5}!{Fkq^Kk`GL_{1M``OH^I`?GLO z`*X>kKcD=034fmbfmctpUx6<_r~SL|_m5@TE1yw5t9mS)=Plo}eeVOo@=fnm=TpA&RP&)1cqy6&DLunt+I-l@)>HOjU{Px4wpA#fq|GDBdj36?0m zO8V>V`$NCD2jWtH*FWldoGEgS_^#_o@OpaJdsmcP0rJ*Y+yUuRquilU?$qdpA~2wG z1=#;vpZm-W_R8n?s4L$Kluqb)L)53r7Y-M$e-!GMn!koO4CK}hC#o=R&X7FC5?`hC z|I&Re{_v}tezpH6A=x|HZ^FlIQr{x7@&f?lSHF05;Ltx!A5q>tLUi3SbDkpQDvcXJ za-js+%Bm^lT!dh#A`>7pAM@bRJh z@=4m_?4tMb$ra~7&zuU+S~*_2I(4neDG{D3U%GBR8dR^2RC~-$f%xD1!v`_zE6@5q z4^V&d>NFZC)P**sBi+CMoK^?+-@bf=KJD*EZjE`aWw%-XGr;<Lx{6;SS;_ASxkMigdy;KTE zz|i~5&h=+aD|9&f)z85<-{2+ZRbTr>0AKqh_>)-bKLMYBD8`)Gr5p2kvQ2+x3Wmv6 zRNZndTZwX(e9Kg+Zem1i$&oF`$hi{d2#Vz9R5KTFuzucmFB+~Z=*RM%qun~QP`j5O zs84bhFGZ@kPKV=oE0A&moP;MqpXT$N$r+L!9c|V8I|F4#Zog9_fOK-Vl=G4myU^wb zZjmqp?44VeMmgERFJwhEA^t&5@7_3?>&m!0j1Oyz8SlZqhG&S`wM74 ztoj)cU#I%ynd&DLyHEMyzILYmANBDg`l$)Hek>C({-Z~poDj~0C;#g-6JR8UJ!^Io z^^9`KRm*`GYHgXEo(ok^$vKj1LsXJjhbt%)BqqU>oSf}gqAz$aa%Cye?o3}0&Ez0( zfmqB@1$bQNk{IWwa;ls=GY?5r1KpjTgb~gfK!o!=fy=ye`Tpmi;}=Jh@-rV7>x@2r z{Jubv|I96AyJRLVwE3BjOZzMyAG@zhc$^H;?a1pU9>0D0Tn~Qr7F`}TLj12D1^z&= z)Cm3H9r4KEe&Oa@AoHey+FyG#WWM`G1u`fcFMS69{~sR>@C$@KGFpZaj)|qz=9`LSkAH3^( zItMFExojYF_rav;^J5VHogU^$tkhe79tid*0lV`*9gWwCfEjQ7PN=AYlE_3XIaba$ zb;)&ePttPkk^nQ_&zfy8t-;i>UNr75%UQ(4&ILJe?VTx_RvL;YI zC}Bap2J(~KUenG)j}n9|pop#-OIJ_K_dL~r6v=$@B3JTq5|^+G5}P#K0Zt)>C&^G2 z?{SbtK^&6_b&jQ||=J>t;gLE19teeTHLgDzyQoFn!AqapR%FNsnH z!OQnAA$#J}r$G`AD5T%dfwvzG_!n;}?ngMT-}cE12tRBmGJDIXb{11;t$}i^bs8$A>OLy-_>(ii@2SHB1 zp9B7P9}V!YJfQp;EFNrn38i~w;6h@GzNM)-5b3R-J16KreKdl8={2_RINtT^T3jIC z!;Uv&kzVI`zj4d)<`R1iQTw+(G!v)#jl#>^!Q-CUaWJRq$>Dy?UXJLeHte_k=p#AW zzpy2WgSQ%O8S&z4^BHt*_(Nv3c&$K4DqH-J3gnCSdwbb$=vI%GknV zG4|K~>IH&j82eK_cte|N>*@4YT1&qj@NB*{g}6m_EF;Yi;q?<<%6K>BdNO_#KJ{cfR>US>Izj$VSKtKWcGc$83n!GIWw_?5fJ4#gHJTAR3HvjTe>-y&(&?661 zRTCad)qdmqK7VhrlFy_EH!E)T1(%FfeRAVLHjqr56zpqn@Z?DmuHUFR$ff>RB`&98rrUL+}!hJfy_}KY%`tt&i4=Ync))|IegviJH7TR)GH*j(DVDD&D{FSmOP~_l|r!k@e(B*eOguwB$7Z zRV-LddaIgvm?OC3UY`1Z?$@ueR_7?JP$e|4`f?}wbGbLD#28nu-WWzo1LDr#K z$>r9T1vhP&=H02_s*@ZWZYN5W$+@#U*}<%9?h3Nzkb{+Y(AJUGusHA*sJE8tfm}jx ze<+(mO?JP6FD(*4x*Dng9V|V8-e6R??MASS(105X92%V#8=#eI<#Y~?h=HM?x|@Kw zFR$jV_Pymo%hv%AIK2aUvLK^`N^MfRJ!#+8lBE(skpJ)cAz$<8}GbdG)31C)1?h z_kdN&0R3j|FF|yy{@hz9`;A9q|Cf{M-s=ou2BZ7iUBcvEZO_Qean18Ie1Sdj|c!w`LIkmG8T^a=;H@cTS?Gu5wr(a+c)WGXMK2PdKqF6*J#dVd^tyfG06v zO^9=oN#(XaCnoDagmlK`X#clmx-E*J<|HUmG&e(*r@G8Of;2!VZIA`8}eXGxh?ZVF* zM=l)zO6|g(xan{=6I*@hG6yn5d0mTp(bxXUr@_VFtXGgvy`|#$cODHxh;zMLaWDM7 z7qaWGoST>1%Z-j<@PqBn+4g@t8d9HpexjH5mp_|^N*6eH4|g+p;^)s4H07S$!t}|DWL;Lyg5c-0o$qGd>V7F!S~daOc(!3DiIon95{w^Im|-1Q zaxvN2muY%vb13j0W1>$3xF_klPJaUPe;1G|JAHj=m&~0u$D+&i*=*(>{e!i;bnBc| zFK&(fu)X``zjEZs0jSj8ecu_$GictraS7oQGCy#ORR>J&Tt7#n^k`^Y%8CzoW-Rv| z{XezI=zr;Bi&=(_kI>mA+Fz)7UBuhg5>J+B@{`SzcVQnOObsm{oaaHMGtZgu=qym-U!Ga1JB5qQDP?(to{pHO((#Kx+(*eS{=%;x z?f8idC*R8cX_$xY@5{%xvw^(|fqPAzA548FyGf3&F{$Fy@H5Ypx2 zuIIq!8Q5hE!3oedSroUYunceGu)-v_gVo?*v0MQDXq>K2JUXf2b@nPK$$xN5BOk*| z{inD3eArC=_0N6(p*(c}C^b_*mPBf=6{QST4>Y_N(R*{E|K`zff#oJ%2IBPRCAcnl z-2+XIQN}4MdLSD*n&JoBo!gRMe>Ai&WleYRxfkbb)bz0}LWTpSkKfrP{+)Pp*PY*F z-gj@DQ~x&~kNOw(7Jg*vKY0_&nIZ6-wSNm5zRd!WANlfm>hy7p(0!&qgYS>s>m!o# z$44f80c7><{7VL|kMQs%SRX;KiN|4zHv6v3(M8|=dw3^@{`A!$ia!26SE}+GkA3~w zWb+kRYfXZ2&JP-z!j&`PWUSLy9&q0omOR+>Y>d~R2X+#u3>;s3lPKXxoa;AgegU3` zE=sKiu5jYna4s@4nFz%JXnLdG6AZ%50tS{E5WA++AXM3fcd~ z0QSh)G%Jum>>nj7__h2oMmsU{loed(7dJEg$%GfwybL(qabE;GrqVb2!UH($3Km8j z^!4o@JYuMYiBi9#`ERV-$tjD;jPPPJHNP?8f zfAF!G{2RaT0$DOlzEz&yPb8dQJVK`Z!k#(*`dc&SQ-A&f6z9z8oH6GPA8yT6ey}-g zRo-N^KhgJRC-yvQpGPvJ4Em+VV$c`=+Y6-0Fz8d3bI_~g>k$g=FYcM~AHFp+zWNU@ zjCjtB<<%Lz?{Fha^CY)__U>VEeD=;=TYO^8cW{IwiBd-W)yHBK_RbF+Qre5=@_Y9a zKxr<2;Mm!^r!_s1G-p-8qlgJ5x&G1P+|Ij)a?QIpXX<8-^gT8@)pU-HZXM}+IxhE3j`V#xmI5_7hXu+y z$*GcEI60Sda${+IQ{l-?l3f7K(Sg4C14n{t|8y@?|KtIhChjsh@R$Erk0kp?=_47F z^Y_5<-z+AUa{3-v*!6G#Hrd+%ON(H;hU@ual&&y6tAyQD^=`H)z|jad2xt0$DiG|& zaHOObpA^&5?vkad*^aKx%Y!Zy;atIYUD)1nQyA3Y1V10(f}?Aa2|AbvQ~){`PUVJm zs>$Q3!|`wg6>Rr_BS1YhX_@Sj;M`Nmzy3Jbo-FhAWAzAe&}V<_Jn6kOUwEO-&+G;F zqmw>^&ByQSt?|gDK0p2OWFUjb$L;CkVDV%3i{ep>uODc50fv*AI~-1aIFbDj8H?wt zzCRH~`y)Sa%DBNAL*VyR`Y7Lr=&d!23#avJdayN_NbF^#*4dNITfD zmYn9c_BjW3$4TiV2AK4NlRcb?zi$m&+4kEJTqD_?2OAdPt%^AvT%nnGMp#%X9X;Sb z+d)q(k@qYS-GJzEy&y72})ctxw#WJMOayH;gVU`N|QDEsNcang^is1AG3pYjZe^$etxb^$@ z-1>cQ%`NN1trO+6KD-^`aDMvUBx;kpm)Oju>z^@T(QF}~zuLhk_I1;K0g516M*8v8 zcwTsR6~P?>!N0yk&hMJ(?L(&U@jE(_C5^3r9%yo(i98iSwKX85DexyTn+x~^6a6QT zBt7`zbMvC<(C*IbI>yPv&)UvkI>wgQH~riOMSIIPb{x2LdSge%GyU5B5Q-ffzya%t zbKlHAFT9^iSF{TX%+;D;S`wZ>jmn2OaSd_|3*6J=xFDc}b4U5~tSvaAP81q(4y>=IU^B(Czq{>!HT)3aoU zRboue=xq$w3*PNpZ`BF*g^0N56XH(Ve3%zyF*T2O+zC`CMfF(yji^ zIez;!1j#`dKl^u%j6ML9&hq}D)IpS!f-}N4^{-;aeel#4B|@p;5}aQxTm{x z6GWyo676>~!MzXiIRthuB;N|T-KmoG(H=fxpIYmG0GzySBC`tj#_!Ac`OkdeP^3B` zn=zH2OVi)u?oBW-nJY(_wBJl5>mBX?d@BJ<0`*^heqsD`Vk2jT-stAoq?E2_6waQ2 z^;XXu(MU=Ax!?Inr2Pw%3#esC`}4`t!6%2^EUDZ)jXo$me@_rC&wU;L0!4W57Tq)J0FQ^% z-BpA=x(7Z#-0+;&(ycKc*6si5q}vC8Q{DdV8-i!>JzjbMxrbPEMDD?c=g93I4Y}Wa zSOob|gyaa+^~dVw0udipu?)9PDt7MOzj*~@g{?ShkT{~XYJSMW!W($E!^^8e?k93P zh@Eopy?6CqkT^xSaPuX(w!fb!)JwRLwvtTo`21j#BYo58;a>x$KT2TsYrk}K zVkgpNqK9XPDjS-dwt+gTyE#=`GKpdC=|O(q;)x?p+P|F$@jKcty_GDd%PaoI1^CZd z|I1eu2w)%zIon8VzWnyL_g3ZIga3`-(g(1^_*?KFLYMtYAlP$kzD&+W-Jgq^8rGNZ zB}YeoGl`4R;3gY@f1p1576$u{v0Mas|7%*n1910S*n5t;R=oF*E6V;w0QJbUR1p9D z#}dTf_}?!uG9!pTorIO(r4GlP!D}N9Vdj(lg#YX`SV8Qozk&2T92J+b{K# zG3S@>gKYlQTe6vPT%Sqh;Gh6Ezs~9OH*P)sunYRs5C7mHWjYL&Vl}49u4U4Ph3le8^>|3Z{N89`oj(&L#vBc?7EV!5=&}gPu{aRm~n;j z*MSN-G=2U|C_*k+*bc) zjn5JM!dK4I%#V&>A+b$wCk97Qu0O)V7bN3hHOX-2q$cOi^6y=}XTs71?gKa?6nxvu zla?GDB9=PD^B5{UJUr_l;muOuArIaU*{f9ns=x1o-`jh=XK5sL$+13#aO~tdGY>yY zo`!qb4zi)x(P^hJvfr9M-Fx`t7?7LuucMclb$I{(K=vqSsZKuwk$;rP@ryrw^iL;Y z$~f$I52GD%2g1)u|AhEhd=M!(PPw~YKlTH_o)Jl0J-0I_DUj6uqR|f!6UVZ*- z*6KLQ_4)M+U_VUz%#bJApIK4102^1&%E?Vw?SDD@yxDJX6KO!|a9|PaC^&>4H&MyA zAT5E+bbrS4n>=tku7TG&q(=8+_3$KuDaqkoHdhf?`l5$`DCsUm$F z6zNf{Ja&Dwg(qRpSa~472d0vtYy5AiNVUu{mPuMyp zT`xJj{cNcjB&ci7FgVbI%sP&vi~jnX!;}${w|NRk`PXi7`lBet-@Mhw!%9&&h_8m0o@bf6nsd@g}k4BvDI~SAVFxR(kTmbrE1<7#aq#$RJ z&UF*QoTLVtZa_=idiraVWL&8j=Wf!;^!g#TNj5{}-pg&^gxkYZ^05T^cpV;Tk&^r$ z1IZu7BaZ*)qwPKs<>V3BFF@>fqon@Lt0PWlW~5bu{f7TOe7*onxh9@vAKvg_uHk${C^|j)_P1ZdhupWno#g6U2v2QS z)nO5BvTpEOAHGW`@0a-c*H1@#Bo)wTi556|INKYxJP5iEmy`QC2Q@AS z_Fn)9LNbNvz_PWkfBodKtB*mMj5P#*9FwIe|&XXhkRXm1j}$B#-sFgq|GCN_Kr4t8~SSh2&e-q&0eRlmzFXfH2P5b ze%K>tdcWj+u0Je+3xTPz!&2d-BAx7zPYxDIw)h=(#~fb201gJ$kf?CpTw=Zt+h|~Q zewxo63PkDome3SdfL76!94W{J6 zTTef1jOCLtJ`9~2k()to|7p&OqxZQa{<31s^KUgxE6RL^|@ zKP(Ry4+E5Tl8aYw+8uj2+!c)5cV57zg$)FXH?ZvY;dU*7^DO6iuAUx>Gx41L7l>12j7IhmMOVU zpC&gTU)jA6BcGSlubR;MDfS|dn$NxtCCq8=XL2mGYCsI1z$mHkYMOx4;e|I>HFZ5t zzdg?-Utxo=<+%I7VBZC&uU|mxr_ETpCu!w z<3~3gWFC5!_OO36vkl06iX{}e0>cjX3JDhW3xnHb$L`;pq>>y}m~JS_UtJ~Jp_9wW zW@qSbEj`V&diGOSIrw)heVpjC2k$8hkS4Ib8$C-~Cf{@Kej^7TUq3u`mBHcJ)y|Z{ zJ@B04aM9Cmel!36^KWABzYn+g&5R0R*ZNSnWa6<$x1QDFONqS6_P@gZupXeRwwa{3jjjC-)C=JJo#( zJAy!Xp68$E3dI+Bz$Y1Pr*n{DJ#~Ka$?nNb@lP83{bdM#?yI9cuz~Y09b>0M z{(T;H-@k$L>9H8{AKml=Tc)#-+%x9oA(U)dDzft>s<6f68^l>eh%O|0(Jd`sEHrKD*EDf*EV7~ICoreNSs`={rcm1Bax`q=}-~g3a$`LrW!)SV+WfgKswE5Go zu0IDa%3Vun(k=UA-}uBQ)OmR@4)dMH+A6`n{$!@qW^4Gi4B=00Q7J9qvs~D9$^m>S z4cKvg(Hu{CY?T+WdbApq`%88l@(m`>H*~etT@XejVpKdLzl?*#f0PsdNy*8SU33Gsp5*vyu(L`wh znfC`qM=Z@bY&#yg^;WGz=G~6dYHmy2tre~p<4$3r1`aS3C2EDrc!$h)b*iMg+DKKc zZD(7n_v@impE=yZ+wMee=Hgb(C)>P^$aJ(B&hTMRl~w}63B{p@1On*{_`cM`M3Tja zLs>w2{?t`lYNt4_jKp4twFC+$GBFpy`WLK-JeYP5I;$XA9<_k9jMT(+sg- zt~|e#r(@S#@R;A$y}mP;ugq0n!R9h&@ZES3X~rC%FU7F1(w16L_S>s~TN`{~yV@We z#%*i@<2Y;zcy-7XKW)Tit;aVk5-37ZTZr!Z{9u|lb{Za6kvY9{YjR~#_4`euzmelc z#2Ax&!9|%tgOzAwx~OBQ8X0nay%J-7hP5Sbv6QQpjQ5>kU@%5UXp?;0*#(0^an>t% z`pTw<9Nu=~L8uYDYKM*KdV(}Cw8~a_blK=pfgD%46*lb~qERE{T1Ze`bw-K61r_a6 zmA>I=nxI60&qSQ)-bN}E#R*|q$a*38tj^tnt6h* zdh2dbYFgD{sIdaJBv8d(j{^<2gmPn9?+{LRSfS`)g`N(|b)w3aaJ)*PG_NUcU+VJ2 zTBhs8HORxfSsEGTIY?o}C^59jl`wItg)Os;4Tgk5^t&MyHcKjSr!SNiM5D8=DC>$= zLYwGFBPNuJl!yvi@}wq_C;ANC!^2=>lmxtFwWkc)$-5ZSk{2bNE)UlAW=V8QEn=|4 zX<<={^CgsM%T-3lO`!rNs5)JntW=1aewUDT!F;!@;-P_;cx}DHN-fDmn@ZJMbZdp0JI5~+ z2%BJ}U4PdUCjnQZNA>m85|tpV_|w2d>R72vm#3ov?MKwQ;Zx-@yOK3#-K;Q3Pic4PWsz%QJSqsp^Fd7+fd(f z%3Lu^F1hQ^IMm5A=up=6VUr)wlNA#9m?FqswG{49+U#L^r{Rq|d7Z~*vNq85ilR)q zeskT%OF%_g*u*?NZZ?Ckj+E`#p|qe!)x?s-1eJzgv6!{lcgkpawes?Fr910YNr^=i zdzrV*>a12q@hK5-eATxl5-Ha0Izl1MW@Ts0XC*3R{l3#v2sUooMO`oDn`OzFP$Ibu z<5cL&h78kxNg%!y!_pJ`5M-6o?h}<|gJZ#NhayI6el2W?- zY&eR0RHq&{ti=iwt+BV3D!rlSV|dA@ajP{b&sn7y6^w#S3UV0t7_!=>J)~sNU4@#m zC1zIcF8aQu?v!a;8TP1dejzqYq}pq=cT||qGx-|Z5DjlsHu`Sd>-w7NZx=0a-kT~e zqhL{sM9r-gn7#~T@KIw?VXR%xSyzzdV#UJ@j4Rtx6nCWZbl07Yyk*G=%QjzJ#Y}Nl z>#w4qri`r)Q44B*jSywgAgcD7_Y|HKM)^&l&=t!1wj-8Hk-y;Sa=?Yi#wX$5OgZ{=G(F{smygCZj!dj)qwP9rJisq`=tRQH_6WW|mCW9iXj)7(- zZE*E|vCOY$QU{@^JQ3qdv?@*)wH$1b2|a7$%4ou_T9f4W;dJP9nsM-ZqAHb|+Oli2VWY9cCI!QTn5@2Cu9$EZ3vrJ(jG|N<*X*XS zu$JPkLwB8)ywX;kLCIa#X5*z&8gC}VR_e7whS}7p*zw7hP@@QHQHk~1xM!DIMt-?6 zmk8bNP{W6|n;FZ-5^Jw_-*EzvK|oinVbQq5K+CUasZKyf^`#m z%!!@vu|lO9)-{OF<`ARUOx3QBD`TY0F^WG7>H~orcFj?*rFJJG?@SjD#IX?9sxzT= z#_u%TUFx;UtPlKekHdscvo!dvwaa_4c#|0U^?e%~qGVR%2C;MTImBRP9UIDELyXmM zF*jtelk4STki_8rcDd{?cl?^|ft7G&sWYIOp-WfL-LNJlaM%1!Q>zF=c@=h+gK*~v z!Gxs;YkIkm*2K6r*>L%-Qk4c;*r#J{I*GRnez9t-`XnO-U91f<*O_#@Mh$EOTbdL~ zGPknvCPw;TXc)q*D(k$%nkBX6bcXE4@UUL!ml&dMLX2(dBO#I5>7>;T>3C4$iJm#= z`ti)HwLmtIiQe!Si&`(GlDpur$c+pLQmWN8M8XuP%pfvGt^ji07H7mxf#yJGg*`UZLsB0YNwWMN0zRluQ85QL}EGYhqlVkQ$5lKj84YI>J-^+}#v6_#$?cYjxV9+Zy>M7rbs7LCE;KrIdDExD5vYA*Ol>Ph+d&nR ztALJnC(Zc|Z^~20Ly%AounIA)r*hGmvqh%4<%VU$m=ZF#&`Mp@&LhL|TB@OoNlmHQ zV^Jr8ubq zL$tji1+rG?PiICmfk))}%`!2k$JCB5Et$RUut;g-ZW}e7jXh~i%I&ByDMt)z zZ9_B9HYYmJXT52OB2%LPrZKA|DoTojSVED-z)0-O#u^L# z<=Szq63-LUMZqsq92SJ=(sC@fAeS0WzMkO97f5QBUu-9Eotx=S9z6QotJzhrt4C2( zozRs;zc%ysY_T%s^cUz?2Y#_8F{AVTnBF#k<{j|;(U74urEIS;eu4BYrxhVhs#=}t z^=)Ds?aq>MMXFn;C9z%bWNO#sytc)S%!bELH+mFrNo*r7mVLe~$dw-3s4dV6$T^3D zFDH8if7vsl5c0ub!_PUw?j7=e7NgE(5#5#&V(+?K^`lwC5o!&nT?I~*bRo_tOXfOAVooSh}R@2 zJJC%RU)9*nYBrwHOJ1Y+MtQ2xHMZ21>M}z&f^IMpmTIeBpZHNeuvg7(54=@F>Gq3- z1&^TpMH7)mJ2zG%Nimvc-04I(8do=*%Sm06QT2wqi@GZ!z-Gk}&p{4}B=#K{r8+S>IP+Iw*O-OzyHOI^t*BhwpOhuvG@AHB@ zo^=sP*$7QqtQrD89*tQ96Fj@Dl50wudWBh@-yyCyOajDdWm%a@MKM-;x*3-zH84MSHZ1Dn-bkU#6;dRUdkkqM5xgAB|b)G;g*WBQs) z&An-x>J`jQmmY=eX2b7lridV$y2Lt@wr${=-=O^MY8Mq{h1uj682CDBITw*eu@7;) zsddxb3SmnuGw77aF|EwwYSHs;S`E51PB49?y+K!9s#+{`RAzweDAtUzX+B&sv0nw9 z3r%@h54`DIVA=z`=SP;cD)1-~u7;&q*LTXgMCsIMik3{F#4W2*Sg|4Ttu(EsJQt7w zy6*IRuGeT()V$V;t9ff3@QhKJi3>^Y8H2jC*abDV;PUbSb(l0_? zAqe>41Zq)Yk*AiFUzg&LrkDLbf(jU^4MBz4B1!txJjRL`xSF~b^eyPUv}t>|KHC(A zn=RFx#uUq7LoyZxe=!hZTf^7Q*rqjwnYb)J+`4i>b_o<}92$yZyoPQuMs!JkRkxQe ziD~otw$(PU!D1mu8>7AIcf^J@?9Ntkd*Cs;xaf*l0bNl6N>XNw=7UCm=uiQnVa>Q) z<%zO9kB4)9sCD^yOh$e%iQ^D zs%^Wi*5_JtfVMob(iC+g+=@`os_RBmbXIHL8BzWki>3jNZq_K(tM$k&NCJ z;*M3j?Fv*&r54iC z$cTiTzLvyD?RJOZR&w0rd!2TkKw@H6rCXG#TN);F-as8PJ*B#!SKVo#b@io4G!V{{ zWiTCieCxZuJ)9_wB!`(up3hHM-{g^Tw`b)giDW%*iOEP&j?kS+6;ZpmqocSeno?yo zwKwBQ)Ym%GdDw1|Cca!kE`Y>%V>6kPa=uz9YuXvSRBgB`!^%G;v2HL4vN zvQAO34I_%j9x2MYgAVImno?-I5jU7R)!r=R1-&(8lWtEN`BjJ#T9+G`^A$s{;#S)X zrR8LVMHLRpEX2lPYMTz(Lz$kptVce}OU5{856sOXz@esLGgQ9NN0^DxmpusisHg%a z5ij9dzZ)wXGeGH5JY;;9_GpS*Bs;P^BJ< zv6eWQn!E9MVOFDdbHhRbAv91D(q=S9D^0XkmPED^SiSj>?4l)|X+9<#R-&FXbHeryqayv2&M#m*BVf}woQB$?&V&ZB*&OR83-wViK!QAMyR+tKq8Q_ z6jg6Af*3mACnocqH?)={+R_FwA`yry1l^g?8Ey2HTrCXDkvWWUqak*LHKpp?uvl=z z6*%0E>MI@(sc%Hjw@Wrp^cs1}AoXR?clgelRyznLTLa!$I^&%+MkeH%4+xU1gkqGp z$Gdq6v8I|6p^XtabuBk9NWk+B8n>rIC<$()tx{oYJ-<+K86W(iVtU~UXXQXKaco36 z)CiGeei5)#OCe_(URashw(aIOUQfidN+}LOenP)IAZiH4t=Q16F6~ONBqD1WIT$-H zLs(k~n7rsqj2{fRU{vTkVTh3V*z&1q?5tom1=ITFRzs+$VSTXX<$xCHLEWVzP=L;E zQYpI12;~EGK4_F@17WU_5oVyps1c)KM=cKB5k~blo->;eGmcnJLw;b#)nKy0peE91 ze1x3z>dVTSs7oP41T4QQ>eb4|YPZ}*ZM&ZJ9g@~Llw#~ATI~m>Z)%c;;C4O~S*O|P zLZrJx{6OlJWftmNn7^QvGGhid>NBoJ4cl`jT&vi6;+Gu(^r%Wz`}IM&y{*{xb_sR2 zyfsr=6W@==z7x!wXwY85$(Q9Z;g7(D@LZQU$Q5Vqf7T*hP&pWZ---yCa*8OQBny@^d7wB4;11I;sw znzr3BGKR2)afPG_oRYvr>attm7ge$4*ESN&CN?NEWbC+6`y6`Hz0Y}O1~BzY4dCVc}T)J}nQ7s1jRN8<&_ zvISWzns|S(jmiygIp*n2Sq@pcG7d#K5HW#8I*od3yxA6UM^43w;veVfD3c%^Jv#6{&HGwcD(LKPdtYu43$8F9-~)Dg!8T1C=&NUR%#snAgg$qBs=MF+E^>OeavSvhbE+h3J;0POMRk z;9F8bDA*o=;gq$R&5GNYGI$axNkv>} zGNn2diy?zX4TRv@OB6*Iom@%dZMYgIFc!*o11c!7%-R!%Sx4hqSkPKqzZj8Y%E#-* z#3#rFq9KjuTrX(lPLiYO!zv@PY;VACWY!`hu~*tGm^m;%KfR# zE1O7YQqeYWM)&|RJm4qg)B2QU#}ZwQ3-bV{%5+89&2`?_76Iq=y7dk>b3o~*PK()s zy7Zi=h!$itud^G3l9bhO%d@VQH}g{{=%Kg<^$0ycQHT<#9WujxWVPRHD9vJb zTlP`SvASivJJFl2^#7 z6R{@DN3Rxef+Djcck8YV)oD{xom#Isbq9^MnD>YJ%AIsjV$uEeRes^a7Vr^0EeG9ZF&V^$XnV@B&P z`NdWvvBtcuD7q+53q5n>^kbok7X`mcQRP4*$L$RQb9pGB7_~(zlE&SnMoT*j&t!Rj zfO2Eh>=_tD2!YTov_oR;)nnd6rrqjxi+8c=)?maYo3GCV%C8{Cc8e|z73Y(2LNQqT2GV}515(}#U$O3tl(6Xu9GYgXB|)hOz>`$igj&}5;B;;nH*#)iQP6??K> z@#wreFpvQ*W1WG67ipfQ9CEW$yVjyI=-CKKn9U6Wg}`XkTUN?ppMu3)rAW{lILX68 zfXTMD?l?jkcYOvz^l% zG)<*}Rqbfr-`3n^XDpjduY^)ghwak^Zr}_kq{4|qC=}W|s^6zg7oCN8aoU-nVr$Xp zm3Krs%?T?(8pu{!@v1W_SEutre>9_F2Br`I_Lf4;=X07wVq-;&J!gTzd>&<@C4ub^ zt>S2h?jlO7dsG)HhN}rE6NE1aMD;%3n+)R>PgowmBxK8%77c&qdM&Z$u4-0kMzrJ@ zSt1o!oW-qrje13pi}BdRwMC6~YTee%@!f?Z!@tJXmr=EaO-XebEF>_(Ge+)1#;>kW z4^rP6zZfYcHhDpaSzg%evWNii2{1E%+7PsZ|8F7#9tw zh44+0OM$4A%Xn-W)cTT8Ot1r_WAj1)FVD=es5`rw|ek z3#!h0xX^EP#kjJTR9S}lvY{~%sWxX+)t~tF1*1pXyg9>%6KgpecKgGCw|Oc*R(3;v z6p)tRhWS>pSvO2~hd{m?8Zd>vZW`s0=Wk3{2rx3MT(1Ll9LAhu1U2kd1;%H(F4ALQ z<4Kdmydrpl!f>J&@JVyT7^7LA=$cJL)G$R?bzQ|fXuH2yO_@450Y9g7w$7U71I-WI zu_r;0NUcb|kI>dwX82V@&IhO>7t2&o(F;w>DXN8;-YBZnAl_O1Vn4qb=Bd_rT&>r- z*0kd<`ANYGjJP@rm=%IR8Cj5fF5PtdW;s}OMcHHn9t{SnN7-J47kb#ZC5@$UtLUxj zuFQsBiD#(omWT!xltYjqTOcP>!eiPCDB5)7#*Uu~5VACE2w564&k9RKkW}#$C?R&8 zSTcv4R~18|3hx3Q5*}}?%G-@H4?Wju1r0`+(d`n^uAn5~?eYVdm|we7Sgx~09C{~? zB7#^n1FFyhf9exPV@L2|)L-qqdb3U9YClg1f$ftsRva@ydkL|I><_SheJ7Lc*4SsN z`UDCpy0YuAJ#MXxgQ^mjNBC4{YN1=SQ71M!@p#uNb9rHimBykVdiH=+!|@KqV5WoN zf=dL9zYLK)Efs?NmhjZo#PQpmMr(tw1~BV9 zQ#Fw^3-CsnQKjoq2v$VNw$O!A%(M{{ymB1FZn_;Nl+n^kLj$5|B6(EqLt2N>TnC4w zr{2uF3hYX;3q_bvJ%A&d>qcv_DcR_Fsp8AEKM@wX4zXZQnJl|;qq5<{TG-P%g;mHD z*X*{f&!e3(50*W3ye8b~BCdh%&9_`#rqr6s?%K0Za%badU3a?ZXc8Eddzdv zI@J_s&}dQxvu@7hrm*4L3O1N8LyI$Fsx7kEuE>;vp>Nyjim6V9gB?Y-CQvM9)X3gw z?V?~-+ZLJkkgnK@7F~!>f?{C_rNvf*E60WvW3JoA@$#Zx=ffh4ddsagG-r*%){VBU z&5SPS^LYU);P_y}HHd-YitQL1!5Ua&yBtr)NjzdSS*@iwKF6(;{A|6Tc2-qulxw@O zGiai{{5C|XUUwb`R^VaXB5s=$v+Q>^gdHoZU6&o9cGOulInz=$wVK?O_!`od8=Zm{ zN^P-0`V34>6|_yEh>B!K=*vB*91YAhZi&Va4_X#lM2oRZt~DC*F($ChX&3U4T`O+{ zY<@zPhl|N%151a4F4Q|9!C3MpC#$RgbByjH4y{pz-U@VFC}XkWIC!um@&A{-cZro< z&GNh|tJFnzQc$ICC{Pzdhw20}uQPA>{b*DOM>xU`M>xXaa5x<9tV;ZTJN$OoRjFHZ5i2*YtCI}GA`<%VcJ~!{Zd2i;;dZ;s% z_ndupgkPV(Z++`q-&()F{=lSy+;I1bC1@8CcRI+0S;^FeJ`n3fc1Lc3jAuv%&{+T6 zsH+o}lPs)f);!%^6`zVmJgOU#bh!#L-}cQ_TsB>0=2@X7&5AVQ6HK{f7YJfNJ6gio zu!a~eobDmpD;<;0lt{g5?RI7&VUU<@_4f!p8L%c%_mvELVi#^HRJ&~qtEdR+YnDQ? zkTKM{JF4T7i%zZ~*sR{DsvJRHMMnmRvhMqsxDbUNT~&BK%Zsn-NUeAZJKV&K-c&Yq zX|$bAl6kn@c~)^sAw;oAQa^vJ)Qwx5IB31JD9f-Bc+QuPa+TE( zD!?~~nj}_E*MT7}>jxqvreQxI{hL~3O=|_LwoOJ!k0!(J81;Uo4zlhi#Rgp+4v=bP z-sgO&WoRL6^c-{-Un6v&mPaYy z=(<8*RIs_~Z45UTs4S3|kdfwe+ni2FGTY`R%o2W}-_ePV_}w^UmMor);5O&*_{+;< z@D9>~&hG*VP zE12o4L6jQpL(H^IrL?Oxeaz7fVo9xOjPB(j_X6w!rR9hIHF}Tvk=d zQDb3ttc5L^$M$;8`$&X5e+X;C3a4Jf{&VVUj!hO0r4&ob4j?rL?QwsyAuoA&W(m&t{k>T~c$bH0)4_Q=e`(Wu?X9hg?xb)Be2v1*L+;uBvRk3CWiN|E zQJG?5>|!)j?{^)FdaBE&T>BainID9nfg@G$Oj$HH0IPy$nsgM)7s^f zs$@#|_ilTZ=6&t2I~Ve2%d?aZbKas;Kt9(5^*L;AqSGfAay7ymAvR& zsUxYc9@xzoi=!_aLUFvDwqtVaWJ52cbtALc{!(@Pl*F0xs>|pdAl^pb5bmJ)0W;t;6@{gByLhvt#u&Tf1R1aOCCr$_#CwVwR zkXq$)g`R|id=&bn>U9MlvXW%_+a{n4SVJSKPcfz_LeOt{LfbT;$Q^O$EdSP678#V& zpdu+NAOY_U(w-lNMY2vd zirL4#*%Byo7DV4c;!O zY`c5lHj*ZH{Eouz-gayZcqIy?4faq%)G5dNb-PgIC3`?)X17JRqpqn??YDiz&d@1S zcYr<64966hO$g6`ad&bB&Z=*zx@}>Xmw^nv62g-uBtk<)(@IIEs566ug-MBE5{9ZG z+X_<&rHro1)Z8Hmb&htV2NMIbm&!6dY}e7PAS7baFsMVxGnDmS-h+Hl(1$s)=beT@ z;oD^YC0o+u}$g5aTAIVi7E{GZbv_cX)5p6rD`emUfU= z#^sl$l;lp!l(`1xC`)oromKsI*eg|-YZ`-43mv*%uXqKNd*s_hcR616mpqj?h`L8L zJonE5b7%*44P{~5#?ju)M?=pI$HgkyANG(bO=dybZ{Xtx~uu&vG`V@g_ z)M`(H6W$v32+6k&>@M~^)C#L!yK@xNF` zS3SdJRsva-v8|obg4Mx}DFtjPZ;9b#LYHnR^|++9uoXQ5^3W~Ooqe_}AY`{t*8Bo3Fkf{W*XD`~$!Hqv)Ub;g7x@{gd#+ z8~E?H;lFRefB($y{^*lmgF^bUYk%NE*?Ie;-LG`fx04Re0u-eBefj?X_)@VoL_&R=FKmj{M4#)34%X`dd&W}DiyD?ypzV}od z|ItS?CdmU<(34!=6H#i0>Hp==Kfx;)*cW{Z9{JDxQ}E>9h<@c6@bw{s@7G@6$1}?6 z!(YC@8$S8)_i*li_*3Wp@J+masq;I0hqwEek1q&@=X-lXpaE|7btAmL?595XjA#1r zC4TC4hIU-W0hXZ@D|XZ;hQXEo^)<$0#B08!xw?}WAA;J=C2EmY~Vc`)z5QUGas%cFXA*mu6!gx*^g)$2R|HlU+^@Wh4soi`L9jY=P=R_*vZ z2N)UOo$*fS@1P$8Z|d#A9|tiomA*TIAU%w)Z-3|cI`2Mxk)ZqmP|KdK_OW~SgCD%0 zjDGPVU%in(lP~hcL_A?-J_cj-Ghk(q7hCpIU}gTz{>7$!``vlIBv$5yxbl;!GR$B5 zYvjimMzAEyy?IN4K{1k|8J3(WFz^|Q((rHUcV|EhinAzAPz*=|zM6gQpZ9G2jaRev zt5#XQw91EbMDj(m^>b53A3eX44-Ng-I$QsB;7UheNkCYjxxWE4j@vb`!g-^`Ug!hP z^vSvci~5~>>kQ|c^(@~@S%Nx63*?zueF47RWk6M&;COHW@;5IS)cLS)?SFuO3&7X# z`+M+C=lWaUeVO&+Keiir`kAZ`TqrQ8UOCzc^R6|mwj?K{=&-}c-0KAe)+|>`6b}6|I*iXtKazU`&&%@i(h^6 zWS^hq*{%Ct=?_tu7YldT1bAnXAU&;l3j}=zT+YsNaL<6F-@I6kfAlji_P+0Y@;P6CuKtIg z>a4FuIy%3;6rQWG|e8pCJxt&jb$`gD> zGyUXI_v#_ucaRSRFiZlv(z9mb)2Mm#IW7JMytKF4U4NPt6p=UhJ1YPW^I9hRow5gr z%7a08@;$Nde@c51f5L-*rsg8@Y+9ZU{mzRG`9<@+6~CJGroU42y^Mz^@A# z#Q*6p{-tNRiT54;l|}s9@ANx-8^l6JplAa((0k%)zX&6J1xxv24xiz*vw+1juKvfU z^dQ;$g0Fve$zH7I_rB7Ny|Sub@jx&m|Ldo0;n#0%|F=(F;U`<$KjL2A+w<)`S=;S9 zYx^~{^h=NX%ost zzx!y0*!!dZ?fFa}H^5}|ftvo4Sn}{)Wb6F|mi%7_p#0QF!;IM-!bYx z0K`B4@*Nuf6&e1Eu<-9c`;%wFKZ(9P^`y_F!~bGTKPeo1^D+0Wk6`?~(n@#|f%xVK zpO6Ug(F6JL)8g&NUo0N+i!uEZv?6{nrpK?Y^YD3N`a=)mFa7oxuMgfwN0Jb{fh2-I z<~Yd}{stHAH{kHMyO7VJ+z&m{FNC)L^51-MI{u+|=lPP+^{)bL|En`(oxwQu4kn%3p@ zqRYqo`Tn2{pFdBlwdh@~lTe9}J`+{KX5_n3xYidh-A79ApAO-Eg-k4)dIp2(geP4V zgn@a6M@)gk`3tM=y5htU1~Dymm2Xa%nmbK0!zrh=pe;2>ru67AoI#%HdZw$d}B*2Ix$UE*((wN zGVA<=LAl6{hP+WW53m+8@jI(oR9=#&c_@o95YIRMBUEnT z5u8*aRASjGBubvUy&IVafVoc%WN(`{I?fMSLvB=FVhSdZf}l_~Or2aO$z1b(EFeke znN-~~G=Ln_3r%b}sD}h5utGGd%S*%R3fOG1;AvObheBG?!vwjFE9-2L;>4T4f-yER ztsBY+*;~W}Y46L;zz5F0lG0NsCJ|($?GZs3WI!!cS4KrD&14cL-}ikY`^*HON=R<2 z0YvMtyq9yy3?jY)WK+&LcrITz`@pWOT0c$`p) zSbCgL3E7x2w|GRVirt}2C;-@Zi=stuB^u;jHY$szY?c_QLHV(^h+ zu2vX{cu>p&APqEI-Y3E8L8U-~l6NcPFy(=u-AJUmO?D45^9KRQvFxg$?v3{-h9eEQ zf)FU6>@o?L!MX;XuoUY4dIh}pJ#Y9cbJ*?`qhqKtA1?kYrgT?#|z-Bb1&9K?vjQDTT0bMV57VKpao;h0ck)=nBDr7YQP` ztC9^=YFPI%MRvSKuCqaWgrX3#MekaqT#`P~K!&l7s3k?{>c9m8kWPs>j&nMAr~!+f z?7-5fK_GY=kk%yMhHG_&_zRQ@5BhR#2pdGHrH&?-klSjryA}Yux|tmlx5Fl=T6TpU z5TaRu2o-qHXK*I|2y)4pB-B6@y(N`vfW?lFlwRQ@A5DiX{c9 z(tr#Nq zYOo}R?Uo*iv7PFhg7Y_4nWVOKS5OC)LKkqM2W=KS2I<-o0M`TABEpI7L!usm{b^6hqPIia#zJ;xImR% zQap~p{9Sg3QKELY1t#Wv>gdqID!T;*45ci=;PC4-OT1}e6M=uEMq|+u-FXK#<^p56 zCN}!iAzL=0jk4MbY12WCmIDO8yTu1&3LHHOz`g+Dp^nCWbAjw$vM-6dEpQjZ$aznn zsej8HN8D3uUxZ$U+~7XS2wr=f5}+CF01J`b_wkKH92Ba9h#;o5t3v=H@sKRkm9)I* zW+BCrtZp<{m(H671{M0+3Ce<4Ahp~_=lme^W8GTmCh8jo%IC^O4`pUZF2{>IZM#6O zBi1!AF7{n#Aa*ai6(hFE29pAJqe$JN^#@4NPij6ows#ha#Y2F^YX`5t zxWhsdUB{1Im-QChO~kKN3EUV>!Q}CZ_mx-RMF;(FyJCPyhK8^4G0RD{S-SH>Q~L2X!W*e{Gs@(}<;0v;(1!a@d%>43p;L zUAe<&?UU6#k~Qe?r*8h=AkP|ge)A~UTj!o!S566j&|1tdAY~yl1UNT^c;tS;j5nIy$B(Jl1yET9iYGA-!Yyb+@xo>sukZrq>lN{U zIWWJs)3TlJcMkV?45n9qhk^=$Z{fBCuZxy;i5fRFQpczLBb8Hbvxuk1zCHv|TZSj7 zz;g=bL5hoIOR1R5Alr@P&|J1gZUbNmw*iz-NU^!S8l&#BAf>S$ja4+UvL|4*>KuYck3Z- zE>zjC_oib|`?Evn09}Cj9u?WzUu+PzI%xYmDU+#+i1i8$Ks@If2C6H02gY!~jt47g zkn@8DY6kd1*R)fRCaAce2dmrwav61mhtO)2t1sP31Vl4qS%f@+6btAsluIboJ@shg zO-M!qz+!YKg!dAa@HpGs6m;T}1Hhe&M}Rg05DnAI$<)lTrKLS~XUJQZZq}f3#Kjgs z*W+c?_xM7Ck(wrJ?0m}s%FVz1TV8?TmhDDd0da%|W+Dzskt5AR2DtQc z*o*WryjPgr!dyBF1aJ@cQTd2XXcr9R1GZ;a8$go$dG$mxUx%mVlU`FEf5~;l)3Kg_ zh4~@RtlC*lN4ilEgoCLK3aFjQgTk=gEd_c!-))(4V`-P^_=rfs;gM*9s_1nrbrCrb zDn{S?rp6X`6m@XkyC_Eh)ccopcpTV=FDyp0}P%lU+MjAP|$s_@XCU<8(@XjoC4w=_TsQt9ax{#R&5b2 z+spzI-smd|$eM+?T$b1%soo+GLX};sWh5NuXXFo_@JPBK!H4qd*c>-;Pz{?U?s7?- zX$cB1&@vn-PvNSL^H14m@` z7)`q328lEU3Jj|$ZmS`8P~*sNfYQ-27ymK~84S_sq(HgP^|)+F0IKwRdix~gkS9Y| zF{s<|P@_0k7dc0QU$80;n9Heoz`sFOgK6A(U7g!>FhkS7&7JJxk-!8V7Fra4b4|~VY0v#vqX+Qz0jkKaWeG_^G{f(+QCxyhK|z>x9IL5hth$!L z0emkW&0__MP6rLjjVBLds9uU;X1-|`y%HmikRIh2(S?L=c(eyLrKF7wkuw=E@Z7*E z#0Q5-S~~%tf02-jYayRjU>Ozqy3YEwpQ`@Z57Xf$-V6S;yR)Nw2K?iB2S74+b*u^_ zSg(D{zps{1P?LkmnAdao;oKHipd{rUa{$QCbwm?Ax@qXXmhTt~It1D%o)vp%!?%q~ zNQon^KM=p6mQqFO+ufp|v{{(tm|1B@u=S~FDCH#Wv(y0QQFGNU0dm7tDrhJXxs4zU zk&e_kuBEkO@*rkno+_6Y9|MO361o5~dsr!a-Yr!?phr{%IC+38E6#bBxKl1qN@&Xj^;p`TuG`A$JjhqRv481}iMa6wCSla}=qzlp# zJqb1P*DJnwkchY-qAJ+s%50lK+yonB+aAv@)MSo9@Ys+iCfEZN0V}1;8fPlZTo;2L z_YsslJsN#;YtCExKCSkPin^f|mhU8wd`vAls7_)Bx3KL!A6J3}5Lc~9gH_0_l%%#Y zxWJ|hddO|yi7KE}Mp`u`OrV7~=EEwBG5a9Kdv&{j8n6qao-p+|AQs9*XRo63LIXHi zOqW9?&n(i8RJve{8W4h~n9YFJ&}`KBsw0;{DjcHM)JX!-kHD(9gxKD; z8Fn3dhY)>$SO6rrzqN9rUK%nQukKV}69%*!(kaveR#O{hck}e=E*CA#?GS@oo}jKa zt=#13umlwI0%%%}9_fSFTmj_l_#CZ*NZWCDY)E`}ZSMNLd2kd2hA0rQ2vhqSgG3H6 zyZVH}*-f8q-k#5X$gENwLJlg0AX)?v`V|rz_uzP`Z(GaC)Z0+V-mpe|;E7}~5tgU~ zx`sz*t9T5+$BS`~gM=K|X_KE^J_4V&hqajp%lAP9;KCu`ZDemkxf!~x7K44&t)|ME zX=5}HB{?vdDf4?NwE)CG-!_}<2sLRWQiB^oA^zijv@goTY15vs6`_~8o7M1t7P0B0b;XkPu;0|?K^I8m zVj}m-(OSn#&!)F!k6OX)0|8bq;6o|*gt=Dt7OHOR15ioG1Jr3dI-Ud2#xKo2lG$Lp zGa4wL%p~JR1xMG*YEE58fJBWjcCkA*3ri%SRQhjsPa zI0335SG3zWB)!EOg?o~m)jnan4dcsKjNWAay);0`fahINC3D&WaivlkM@hb?wZ_~y zEqTPcc#;XROmpRA+v4fKdDhKldn}_7r_?z5rjX#%UXP}K7gkG$Ta+RQHCZdWPVNwx zxmy7cb&|HWE1lIqRlwaX)7#Z>E(N3CK$HN)EA$7z=^rJEDu^*&7R`0Jgy3qv%l4ym z;rK&$bO9pMWu7M-!TyWq)&6odbT{7A;yU$6^CFWBZ6vCal86d$z2!vJI#KlIxMqw@ z1>c5(_?X4tpax#<<@jQziF1h{50?|9Jh73x+SdU{OI}+FMGv8Enpx##OoF2Q4Y@D` zs~z?@V+w6+n!tPSa)LVE_a|@#+HD}m9+hIa3^kz`lA;rEJqx^1r(M$GI;gGn`(iqs z=xMd(_4UG-j*NM&SuXd-bdKlec>(;>WPl*vBIGy0Lk@-G%`Ci%io^%y5>s-O1PO#} z7NBwG`fFOf-7Xl^i2{`Q!c#&Ca%|?Y4NA~9IOD{sCU7)6HIHh++X=04c|ofJf~sP}*=F6ws-ZW!h0k$<(YP3P`hzgvce<(F4Jlt=+;N z8&%~es=`sLa+W8My9|p-%9VRecRGeHbFtlBq=c>*5Jd|#u!5HdX%{yXw;xnhnrYQa zd5!v4H1t})7;fXxs<1Qcu*hx}5z10S3Hm7CCPqvxc7s^8sIId_?Z9QV$aLJz;R-Ce zh8eQIL6ka>fIuUGz_ZUoL2e~)eM9qeP_n`?hMU1rI3ecUr~p|rV9shf-NQ>?Wn6W@ zW)Mz@KAK6FFPF@ygH#>38-7k+=V@&R|i z3mP5Rbb@y6vA}eQCCwF$5{f0q3C>blsG##F;s-2)(E5(5uodNT#Y4i1+|HmHJW@9e zpXwo3Sw_6YkUPdyp$uxGyey)y{)9+12ZWNV!t1U(b}ScEB3nSlo~4vc>8&5`2z+~5GIe(kQ1iI2CaxjFhTekaO3O>Sv1cGA zz21Z%tY))9Icc_rVrMji0P-cX+$fB~GnWQC$!h2T0+*X3FAzxQAfOWrGFB}xDz+6R ztJv00(ZzB*Eci1e_pqrzDzZpJ-1!XS)I0EwL?Xu#aKE&anOZC^Yfd6h<#mdEy{M!- zu7s_+P#cTl+Qu?g^h5O9-alhR!8_M6lN)RY!Wukm z)9rV+lK|ia`u1>dbO7ogXE8;`c$21Da;y%j3rzb|0ha|WLEtesu{?Xzw2eD003;PW zZjJ-|pm4SEP`uh?t{J)jxuq<7*zQF!1ww3(!xqF|D@O53Ur$$sRDkgBk7{Uw@G2>) z9WZs|s!jE~0_02|1*OpFu|8iKIw2O68u3!t3cg@gOAsccP3z%g4(JutaLglf zAB$5(uGDBx9$>kWSA_`C(tEdDvR1jHJyU7=ip%eSACdv;)t~I%RZ^eWgTAn{1o$M~ zb=9fcxrVO={C-C_ISR1AaF~#xm{<&yYGL=fjdVGYK7`ZjV}CHLcH3>#QWxko zD50-y*L`FH8wnwkvMg$uZH9v4&DHZ{&17w<5=r2DKccRoh%0DpFkl@o_<__bHj_Yk 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

    ~@hu{6-ND2V%GsM*)m{o>AA=^>WWgPqlV6mjnLW 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/intro.doctree b/doc/LectureNotes/_build/.doctrees/intro.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e40874d5cc26be49bb599718dcc3aad24f99e32d GIT binary patch literal 48430 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 h7piX7RN?X~%7W3LrE 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/schedule.doctree b/doc/LectureNotes/_build/.doctrees/schedule.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0af12a784446fa5f844c2d9fb085d537501a3745 GIT binary patch literal 83864 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/statistics.doctree b/doc/LectureNotes/_build/.doctrees/statistics.doctree new file mode 100644 index 0000000000000000000000000000000000000000..123f589f8471be618e650e1213b706a690572152 GIT binary patch literal 306676 zcmeFaTdd<+mKfGOefxDhJ+Jh1GTmd(na;KAp{gsAq9|$HcMQHHQKB9cB}!D^nQKyf zzr}|r>f$2fF=E)rNs!Ex5sxu;g82yI7y$wYh;0Oc5eGr?kpza5d?W}0WIpoYpTL0u zBgjt{rK86=b*k#tt!f7Y%mH*HlAC+4wf5TU&CTEX`d|IpSHAj{^6%znlgP4z?MI5H z1)-)VFK)i2g{#chgY?DkzIgH%UVQ%I@y)kmB~QXEUg)mhEY=9=!OC7dJms zHcxFY`RMlkZzlRGwZq_ayY+SJ8`d{}<{Oa$7^W|*pU+g~=1NJ^*jBR?C{$A9Yqpk@*ne~7DMhjfDqQ^;f5XPw{QvGudo zlff@OvYuKMX#EV}`u5GYfyjy(E0J}{5-}YHiLL4Jb!zF?M(BBA4hUZ-wjX)=wZ2u# z?`PK~9lc`TC=HXOYyv!#=Hazwui$#DCz+R)r|sbSUSCmpg9^QE6fZkt`~Sz#XEKsN zm_KKI)%u$CbZ9*pzKNh813|xcB4~Nvo~T#8l3JgtUbu2EsroBdpL~Wrt3AV?)t?d1 z8qb=~TF+4A8Hzqbu}?n#=;}D(Z)|sl_ZtB3=yg!ud?N^RnBEtE1%73|s>d&eH{ag+ z-mfK*Qc9C=MKDQvywUd@G5~~rI6QL5EkeJ3V%ASVBqYZfyN2a?4FbW_wf)pS)%KkH z^rP#mX$WWRxsH^2P4fnJ>Oe?vPU zj&eDf!0+GE{m4>E!F80a*4J;oae(tk|Ks6#nBy7f(7WvL^~=oxVq)1XG53G~cYN>W zs~=q;00%EY2~DofO+a+tN8@`pPrfjP&mFzZO)m}Uo_OFpcc$z}vwLUHq`P+kI{qu~ zMnV0xBCcGKCz?OIW#Hin_+N)5h*oRFGYtM!pVi8rc=@kh{v%Gm_UHCj%ZAU&TP|1V zyLNLT&wg_M=G!h{>r?B`m-4(^t<>+|U9D&G-2Bpkt&``V!JprqHRY%tPK_SWKgy-< zxPq}xy5pyB3Huto_Vd$Qg|J`sr8+pW$^%!<^!U$#LH_>h=yB9zlmF@#@Ba)I)k#7v zdSF$7?6^M2x}?-Qr3$+hM5V+k55p{7gB-^zE&PcB3hq{; zeRMT1MP3ku>2<1m-nFV5VXRxFiIiJ9bbZj6xBXv(2&`R)@pZlYrv$}yxNmX*?f~0K zN`7=T-HS}!0GlM)gBe4=p$|tVKyN#KR`!<#`ZfaVL)Q*1E=Nd;APj6j%#!Ooj7#9` zm35^DfOWJtm-hW%X}aJ*6nVFK6#J`0-D0zAy3qNe=TCc!Od1r2mz@miqHQX>Png|0h4zm!kpt_6z1D z$!@;H&G(@^%krbRzLdzNsuNFA@Kz$9C1L4bma8@l_7-|+ZGjyI!t1`|x&jfDT1tAo zmvrSF2kCf?fz<|n$#p3tz(pyACwo@?iLRBqFk(Y+o*GZ&< zOoYL#vW>pc!I6ajrP~C9#Rqqy)CzmOa~10*xR-i-xU63%`Z@#R@5RzBILWgT{@ezs z3*xtw;{b9gvhIl`MGe8!ys+p>d-6|zAxd1ZvJ*BaxTptWFFuou( z^3gSEfW*2+(Sty{HQDwNkL211tI-QX_u8}FljZwf`Z{6m{Mr37a#~+_J(jjJXpLU{ z^I!eSJ%sO05kw`L5TdBT2SOAm9H3Ykwz%|x$|-tnyAz=MDeAo26!m_)c^~F8Bi{Vn zZS?6m=!55bU*qiH9Ix$l#qG6=m{{r8oP3Ed;MaUtOv4rEMTmt$C?&HJvc*g2*_9v&;zF+ws#Ph0fnp_ zou9oAaJ>qHQkjEZ2Ss`>26xt}w~W3I&Fy(PRb2g}>w`_W5Az&tgFE4z3kv}vfXN|X z3z6t+16++VB>i~Iw4XeEdU7nRZ=8s;=aQ%-&_(zSA~xTEZoJ@hUW!L3O zKWL%zZ8zUdPEzOjS?ZjH+{N{?Ja}GtS=zyK7L5l?d|o_>@Kqwr8HUTQ3|$s zc?y>ND%Qa^Un$8+>AhnwCx&zWy^=6LaQ+5-y-wF3h3D^`XX~%;Z#fIkMX8LyBYc=L1yhWdN=hI*}Nu^>m#`|D>;J;J${D?fe7Qx|l(d;THpARk+D;HA#| z`4j&fdGe@?9=LKsY_F96hquAV`R~fsuSV*ZUbzx3Fnmp;htPfPWL~&ozxu|tb^*f| zX#4;y&VLW+pVAFKdvEC;N&eFLy9ECy?~~v^|B|@4K=Of$4BIg=8yr@Jr71e+fF{G6!5d>@{2;+=fydDkoRs>ci;q_6aD~I~kt6lk@D9_PI1j zo?V;v1~My<69GAJb?K`>HYL_QC~<+vp%EWqkHtatAG{{G;hgsd?fBv1!>e$$%HsVr zl@Z1dN>nbG;&2R1@aW#0SZB5J=n{qp{iOruM_%~C?N3~B^M!8#NRfMxzLtCTn(N;` zYpx@jd(HJTcc)l;RAC#PMB+}vFM1j2q>%I+U$93^4LQ+YrCcd=M6$oBQa zN?eG|n#Dt3166uDTG3=kVJvUzN;U+GwQ(7yF-$A?xz_ZFuhBBtG9e ziDwt~<8wbJf9OyZ2mRdj&mQtNU-EU&{@)kzb^qMk`nqKt%?`3M!+z=QzH>jP$#ec@ z$>~3Ee*X>gcl3Av&VPKGr{CM(a^dfm7Cd**llS00kP@PD5G4fNSQa*Db_`VokTlfv z$X@MpY*!Fb%ns!d=L{ehK*ml14;dW)ebK@`25>22Ap5gdwGYf}nIt?oy8F6_L!c2< zIb;m&0E!SGp$Nr>Fr*zoEE6tYDRG!VO7X+(hvmJhe!bWK+7{g5QuSWobqqEhT0nD4 z4^Fy&?{7cVbf|Aki>Jr3hfAnqSaSONE1{f!TA9l+q)$&y2|vm^(UYeFvVwld>K?=r7v*?RMC{Q#f- zMj#Q>Wzl*KYO1D{mfm-dV$3KD-QtvP)y-CyZhYau@LElQU+i2eK>xo z$FpPg&0G0?v<}?HO>|LrOo^_m5MQ z4^x$5>+om`$b_q7k=n`%6R<|1uFf{f>^zhblx1#49Qu&(@gZjeCB3#`L*}V8%8xl9 z=ef0L$xLlZ%zy6LheOe(m@7mJ?SiD(U{Nw-kfhBdm4S;$e zm;IW6!P&FBA2RrJ=bpY;$l%=7!D)XfXmEC-zev#F`_t0#%>3*&bbR3v9<{>jnw;jz z`8P|p|AF&wyg`^9UH$*%OyR%0zvb-e-~7FiaqyY-(qjzEX!mV4`02xtmdWFn3w54e zKYsd@X4+4mK6!Ti;kb;nL;Y>}6hYbD$sN7G`0CX@Fht8A@`JCTa;lV2;AewZzo%Fk zN&lr+VsNoWU(*N(`Fr=p$k{Y}_BK>F!Sua{@45i!RV@ITKe!Lg16JAtZGQ2=iMbf^ z6%8I3@x1yTQt@RD`hPvM)RB05AM2;CA76}E9z8%_XM36S{2H*$k^T3-PkerJxby?( zAKatJYYpyW`OT|9{2FlR1&sT{hk(43nf;(-=_8bfgAw2Qz$o zJo)7F>yNLXq$mCKv*++-q{ZjIxh?JT-~8;8D7Jn5bBKzZexEJ%pGe<#m)v)Ol<#88 z|KSgR>b9)exggKEWcEj;x<2H2!BtfCG}lX0{2JudzN!s;VhAH&KAv2f;0Ns)9A(A3 zb#g-3`7pWAA$s5 z3G(_d;iqEmhc2C{)KK`|e$acuAK3 z;uUhe51@c(escJQo>%ZIuAZ>iFW%%0y!ocg?+^dM9iF`(8(ECN>KiJs`w4Jp0W~)% zJZqeJ@X!H7B4GcJGR0OtQ@yu3%4eSsPZ*zKBKru*pVp;8St-brAya4Nc z_4qDW^OUGIG5_g_x>HI$>Fa5yz=WihA(X^l7C$jys{Vf-!Jp-mS?5T2Vr5|=$ zfMT`~tacT4p<0!q@y}jvqxMRqN~7RAcY3=J9QQ5&@L&J>n+@j&+7JhC_pKp35%1>9 z_V57AXV!a_5iQ;&{XqaYA6!NwD?j?x=g+U%bq0PDm{^{o>K<5Y;O)h*1DOKbQotU7 zZgTzn`FZ1mx4P$q`hE@mNuc}d*I>!BuqA@?U4Zh=h6v@hd{27nkAa(h;FO&75IVo| zBhB7i+uFxJ)YrdOG7BUQfrozh>p!Z(g)<6oYOR=kIU;cqiBMR-pM}rw zhA7a_KU1G8pML_TLaIF8K3AUH{#2irQHxLZbN1OCd_TYb1h#Sf3`KU6+OKHNvGK2$#jp9qRD%Pscy z=$E46gR;?ugg6`nWA*O|hP&qG*Pz=Y3HQJ6qBgyE^B1y`S@v7+$jHC_w@wp(f#^9N`=6BR3{t11 zbAPGdOLsa;%3UQxcrrE6p&%FHwuj9QZWH|dP{88)qX+nDVx8Y9 zSH};WfBS6~$v*D5K+1W_9#_earI2azkQ(M-+IFeIhu(7?wNM~!Ty#Dab77` z0qoceQJ~vM?mj+sf{(c%<`KTPy5|h_-#2_if?llh4mP0KLyHPZZdT zwg37JllG>t=pX#^(?TdG^OhKAv39fHGQih?w+@drz;*!HL07~6(1E7FevF#Ff$arK zgY?4#_7KE`y|2oaC%t~S0LpzIS_PSS5^R^7?mj*BdANLspPxS6b4+Ov{M>!0&RX+< zYak*1=X+do&rkqJkKFjR^7maD|L^y1el3d~v!Z|JPknGSe2#&J@H0RzrN>>Bc!)ScLDw28*j0=-$eP> zm}titdN^$Ptt0auVLhL?3+})CKEeIv*R7Nba=*UaL$h$Fz~z@utoXo^J0kr0MkgZN zyuKa4^7O4Jbh}l}E0)sz?UwFO;#r-)%HzK1_(J%deLdm@;Q&~ z9u{avt#Di1bUeJvcftDv^`-3>?gRMd#d<-7Gaui4$1jrf(?C7GF63J@>|{LzuD#eU z29{Cze4+D~0Hd4llnuBb%F+j0!5(ejff9Le)4Z47d9e6R(3^i6;$7u}@N5-IQ_ELw zTwNUu{<2~{0!IyOo9Jrqq?O_J>)VUUDg+MztVY-i31rBj0r+(1&h{S1bySqSm%T*Z zZL60X#VdFn#cB+jm;T42-}w9q z)X_q``{V1=&DXzneZ2kZ`u6Y9D)hqm(RFzZ3`%&riT3E(`D(7)rj}AjV+Bs3pxGKSw`8o?Q7E0w<76vnNCXV>Kc3J3A=0D}Yb`J*TM_WO7BJdPiI z_K9j-Kgco3=g>*XG3Bg&i~&*0aZ0{~S!_Ln>8kaA}I%El75<8@w)>DU5C-bTA3b{s{o-`F zES~xB`o{xZ`i*<-uKv~QX$}wbzymkRYF{Z8LQP1yMRj_;^6W$02=Z8mzK-ke9l!UJ zlVs}NJor@6$~yYTo^GTcBOjsl1H}^v;~KX4_>p-Vq4)?=Y5U13^9CP3DvxekT4Db9 zSj7CtlJ<`!?H@~8U%?J*_e_nPQf2 z+JaZYl^$ZPeAAZm@07m651fDNl*^*cVFn{+?01e>HXpF zp1hsEa@${~9&GoYDQ)*rmcGh(KeYPpxfKPQta$J`y9;;V=3Ae_I~bsc{Y&!{5Cnqwkni39bp9@Y z4Z9{jzWKR*4(HSIjeX{R!xwm~9~AFc@D71*8@8t(Uh4Nb9Kr4|re2K#^TmzvF7NF7 zRL$UBid83r+0o-q^{ozXQ`9eB<@YJp`V{%794N`kfj@=hQkVyN{^Bnu>dgoD5V$IB zuPR_^2QO}Z^+#>ngtr627OXq{8n0nntl2!&xT4qOR!@HY4kC*`seI)twnU94InwW# zAqjs&ab~eI6Mo49_{Ul_DZ@9dC4*fJevqTZq&@FWrYg2XG^|}L1!^cSCb`;aA!^67 zx$e?i1;a?i@Ez|6*`UZxr8_}Z-2uTDt@N@j@3)F&Q5^*CbX@jLFDP!lD925v@Q-J6 zmh__>0H8Qw=COh_!GjT|>9y^wzJ&K>Ar-vW&Uf^jZiWMv+AcyW5GL!5!btSoPO(U4 z(_x)(m1!EMXlfuat8KD%)=CV&V|bsIT0}b!$6)gRk=Xt|B$-*wn8~cjH#WjpFH?=17MoXgNS~ znKNyY^JfMtP$Vl%$Sq4wD3%oljRa1Fy?lnTcyIjwPdVSuuItDUu=UYJx0!HmF0~rA2N#{iSRz@&-au z2sxJ&g_xtk8bf(=Fc9;pVsg7CG8~cZDkbw+rK8GzA5CLnZYL&7vv_^gGHDf$bs_0u zYZ`5NF2?MlZG&pgjmmgp_IhU(i6Wyhx8&JwZ8_|Bq%LJw5eM(!O?Jy7 z$c|^4h^nf~#+>PO=ZwPPxeYLFSZWt#DCcGEtcqF8+*BE-(HB~^j@pvq*lhD_l(j5z z?Gn=t+atNfywZpTG*qQTGj-SA!MiJaeai@CqOq7uVmne?o?Z-lFG)Ce!{#ABE8UHWbn6R#n9@N!PzU{@$@CdT z^Ifm9)3Bz6Xd0}Q`gA^6L}u0SvDShP+!+>l$YfHeiiE~uovwD}IA;3&@nUA7Rhg-o z&Q`JdJ+`JAO@ESXtHq?zFlfLxWtxH7sn+ZAF0Z9^$2InAqa#}on^veZV) zf~H~DkxI(XBqv`2TV=^+RBH^Wek+Jb0(-^goftyFds(Y&=t(;cs!f? z-h94MJ4K;OyG-MBEpEx_+-k$zw*sFT&$tLtTia1ot%@wq%42gBLoi8M_8E%5*2=*=(j4X=qfD z4mw#)gSy&QEqS{#$F>%6QFmR(E7YzT8&PAP(OtwB=e;V5FOi~epsm`FX}0|~+sv}8 zTXlrRu99!ViCJlP*IWx1`W<*{Lqn>21%u7V7!9jr<}A&6k433?H}Ye99w!Z-4ROh{ z>H`lMHi(XpShcq8hSStaN6oO#j4G2bGO9S&>AOl>UTQ8~=T?ozcEv)25ccOk^$m` zqj5bLt4&Zb>$Q@lh!r^M!k&#A_zn#)qJjB**LFv{no0<^?2yf5ruTHVr;WF4=ya!( zCcM0Ns0Vzwo3;aqQ@lX0vSM9P8dYy+`Xj!}ioIrvDj zhYKvX>fNm{=;Nr?&(pC|t>(+nU|YD#(p8Mg2+XpS?qHkkW>b1H>T!k8Lh9+X&@q-< zjl{-uqwbna51*su`Wn~tMncyZZCvsE8lJA}loh3tWkwsWRgj3W<}t7i>YM&D!_c`m zt0&t)2O3pGkc$)OQoP?Ff~PGFa;7deoI|&d2CckYHY?q0Ngtj^^DuHLJw^ z>c~!8=0*(b!&KOexT#S1El=d@!xq&d2wNQ4*q9+>$wQhEs}5F)Kj3$3eq1PI*2{KP zae&9$UAs0P&ql^%5y+e6+BO6^2zJ$E;bNF$$UD00k3z$*O{%s!Szse+V^xTjUl(?D z-mT92qtSF;7zP;{wXF(5Pl=&_emok_+go-Msy)!-6A&AyEsLf81%2Ss9H?l@-0SH# zeLEcAV*1N*K-7cXaxE#-L8;S=sh6r4N~A4$%gN$UXFBT8ccqxXr~yU^(8kjH{TUI4 z^PZ2Gp!Y%XPfB}$Vwut&ASbW-?&KOJ3M-Sf@+w1Zn}baspS4+aWgxgP2r~rkw^-0r zYR{|~Iu&Ei6i4J{p)L`VVJ8X|_Jw7L>z1Y&7LjG9E%B95Yc*<{9P_hfGD`&6ZrdDb zMfHTFnhgsdXj^Pvt>l#o&g5IGaC5=pGY;0gfXG_|<5Pni^fZ3UGThV!TZZlqOWNgI zb^?l?8x&k84@eis`ld%m3o-DenVmUSH%ld?#-)=uo-^J|GuQMC5eC+%%}o-C?CUcM zX~zw6FsLwjP$Mk~1lY>mw7CcsaMnsErm&z%cGng3%t=^52$p>0B~+fr;}w-tiL&Mw zn4(~D+#c1?G}>&Wij^+wsVxiUl3HxHBPN_pEqq0qL)H|!%XTe31j!Ie&Ngt-V{d&8cU=n@%`nprN(kE^6V_?BI`(8 zOS3hYbK0t+k7vUqo-)cn*m1kv3J~3@%vjw(JD#H1ia(JVvOz7BfTb!3$9PiTstN+N z;|VZ5rCGL+(r$$u?a)cQP%0>&N{ZJcWDq)yDZi9kfet1~r)+ z=N+7q$FgN{QJd`8D4utA@nT37R8-EKC9-NeAK^mk<*kWpc30{UjR!{3C2RzDG-b71 zE@OF&xr|7=)ST;(4&%zjW~zv29Jca!B@ms+rddWG0Fk*MCkVMiT!(CQh zfl-dlg`n0<9Gh}k;0-gPd^rrL%9zbpN}q#?X_fpVSYcgHrz>16lnzHGqS$tOhxVNY zkHC^CSX@>(6TopLi=SzB3DeT%Y>Mj(6IK{n8OYg^mnYD=(Y1Djr^@Ib!BYW=+q;8*;o9HJ+Y+D*k(IoHr!_X+K=S9=5V#qg2xQ2@JDKF`4q`l zcn{3 zAm-MZOPej3PsSh!xQuf<5%WgMssnU8kOvR*!q#(PoP)zXAf~W*|yGj(rz$3CX zo~gXGVZ)&lFZFKUo8+|}9om8~!xWgVZWhdDz|$3~v$LoMBX@?9q>WKX3vIGRDqW-{N$7Ak zccblm;x^EAVP*YdP+86;C*{4YRU5=a*sqy}*&6qX(FU#P@tPny)*6r2@SjS@vPz-p zJRU6?6d5SBl%eC8+uCt`H41QOZsSCCL13t+h(wKR*JkrA;)*+Cxskk9&*_Y|nWA^V zD@>wh;K&QFI^KnHrys4AE`##imNwVQdcCL?UC~{KN(c9Ol!$y#;R^|2EM~XJJbf&$ z#HL!cbjp>@ygioC#T3RBx@0C23vS2rm=G<@+%epg0bcI2@&HNr%(L_wS`YAsl^4vS zr}J&SmgWXM?4wG)8qU`BNLkD((`~a&^=MUFjtCC8u{Kx}kv&HcFmR*wid*3NXynZs z)>@KCVbQ^B6J_pI`NA~2MQv1ZY-|_^$e_BYO3=?l8ctO^8I3j7m}C|ob%ko!k`;wt zZepww1Vzoq`kOXE8MqWAEm57xX}rXS&bWagENR)4Fvw|L8F>)rn-!)e)Gw7Kmz)%9OjHc8M+tea)YsgJ~1t`rDi^ zVzgCpB`3-Gm0{y1El+EV&T{jqcJ-awNz0c=fZ)OsWHg41&)vY5>* zoQzdz+}EYK7?a%w10g=^Qvd@@Vb zSd+rMff|!aRc5;bY(1Y2M;)wP%UXP&h~-+Ub!XUIDbi(%5ZztVkhnRKIcwRslTDvZ z@PIYAKD~2ilEZ*8bGfG}6@+QD zc`jBLSf7yA@_NymSTQJ2yA|5Jtfw|ECv!6jvrc1<_dvvS*Vs%o1-i@7BWuVkv4)0? zQesZ{kr5NQjt3QfLKyl~ZOjN^Gt{N_cpBrg*>oLcp4}fWafZYcY&GYm*-~SoRw*CS zaAR~+ZLuILq77CGqfcDYEqFoBxS>!V6{y(jFJ@xGRII7hcMBA$Y~a(~wMH(J&V40W z>6=~@ZrU}FBk3B|Yf95>OgjUat4Z~RI#q$xSw5ib7}aeM|9;1}F`?0&j7A_EGKLot zhwU@dMon`K+!zlLl4C5l!^gT>%Kq7EW_IVqTnE`zT{d=etef@ifj~2agEI?e%txze z4XW0K_zmuBi{cUwWdwH9qQ9OgUb~}|m<@PH;JZXMr~`ddN5hgehIz3sNs3snadi>ivK84fUh%aOw0w~ar>Hhd;y&T$ z70ubU)~LoS7#?$kMrVqT4;&NQCFDBhaH12YjDY)VN2bHdycfl325W6%Q?O1K20|em z)oTr{X0=<&%n8=ds=1o8#8_)AZS@RO zM@(+x93qi~i6jAL<3>?!8BXT**Cx_StI13q8^Sm#=E6`wq&Vt_6mNR%;i#_%Awk*p zv=Ci)+gxvTbh+Utf!;B&$VKytKF^mzlFTik(GZYY4o}-R2Qmn*!sR&8^g0kRjI<7& zY>C!h-n?+n3g6JpttAvUV4_@2F8&3k zBw)J@4z`;QF-*{RyS?p3FZXt`Y1|2N1XD<&$PPMvv_KoT+a^4x2Hvs!+=Bji^)2c4Me1JkoLk@WY0p z5L0nKFqdSy9mcDP@27206%%(IIeO3+w{*d*24pm6`t6Yx36buy3_#-|$q?-jX?-+n zh!DG(C3a~)7UPH&9C^}GvN%=osX%+^d>UoT(Q4sC+0_$tA0lTC; zbbXq0O_;xdRxda~_C&%XJhTr^kK%#T)hcqH(ZM0x%z3j>Z^z`w)Z|c|>kwb&VD?vg zTb&xkWXtzOKW%MLZrw$#tZSeU_C=$NZ}J2g)`M+nR?Ik+*^!+LEV@~oD}6LZFuKe2 zMer|}1e1M_or2F1`nU`+>P^}tG;>@dVGT{ep{fb(Fl@KusJZUgQ5Csgn^#z6t>dR1qJ}p%3@1g~z6mm7B+jT6_|T&zHz8ZWR2Z24EF!3wmon6g z4RSXzwXDcyv$aO-n0g0dYjwXtQUpC)rS1e|y2ObH#kZ*SHXr))ieU{?2ujZ~6kX4D z%Vf({*+EY*L8oqAw{Oa(h;qP-L&aNE5R zV39VhxXhII+Po)pQ?6W7^dLxWL+PSnwoGLnhl5!zH1pnuG;#)&Ont|3IWe>5 z%r3!^jy>Q+y%!=8Op(*~An-VtW<3S62q7xPV-Uawhj6CTQQW0S52#*&+v1vBxp}qf z^wX9yVw5_pTe=1ELY$b8&7n!sn{ASXHLzVFFOZ?PYPG>d!B^I>$AWAcwtJGW11AVX z$8rqt4jWX!;Xs?ExDF)vRt2K2jZG(R=N>IZ1g1l-#g4oox8-tct72Et^C`eN$w{EQh>&!usY8)4H{`qs6v#s{CPZz+ zm;@h+F0A<^;J8&rPTJ9^Ql;tPij`*&&$LV2Imtvx%4UR)>=I%{i0OnKLvjf+Gj!7F zucywO(^lj5DoTZ}?DIX(bf`foSIXp#EwgA-*^+&2)~@v{GaYhIsnFWVUc~s0QeowZ zC5RE^_7a62dNg8gAc<7l03(35oXZ8$?3!(5=@#^0=$-g`?piXKaPdb10Ou{sVx@XtzK|cGwMh}w4AItqaTKf6`Ad(yDaCEYKe0>rc1eA zkWfp-vORg!^y{7=a0$`^c|DmlVsP(4{xkg{#38~Q-4=O36L#Gb6(3no%z$3eZB33T zXR=)nSQ$hi&?z-Z2w3;ir3fiUFOEHobJw-u+T`bpL}=p;4gzLPE{;`w2a_dDQ{Y&S zv{buiMPLR8VRxQ+XUsgoc`<7jTq;HyNjH1W)>u(ifaq+7w~e8qZ!yC2 z7)|e#L5Y-$$~?syG>*7XMQjNY1zDvs7_8Q)Q}lYuW)aqxd9Lk(kc0SCuB~j;3|1P? z?6^sYXDpq${3yZ~-eS@!2(UQi?lPPph(m)C z>%(%#I3W|K?fS|B+Ju5Dc9$ur$WpHN*HV_^iar$B?s{orxRo2ZLeyF-alq#meLIKv zVmj(EP8Vwt(;m-KoKGwj3We0LrTczU7^C?xWIbY#k9c(j;bOU6%yqN^9!C4SJGHL4)z|9{ z7xQ|ZQ0pwJ8`2`4*3iDvqP5+S>TdDIqLQLDx4BC?qb^oWW2a+~T6-o3{%F&khi>~vq3;3=Z3^XeXM~Xn~BrqNn z4;|yUqH-Otl@8sN!IW{50fzSTK*ZAd0#bm53Er89uhx)eg{R|}+N`KB9BbIs>ed*I zCmPo1Fg2zIvFmBkB^;z*txAR{MG4{$q5u#O-#tmZI)_~a_b z+Lkn#fxlkeaY971Tb=eijIo4`Gtw%IqExz)wDoq)976`UfvxHWy)iUet8#p`3Uv-z zTb$#`gdU3x!!`YZX>C`-Uce40gi!-p+3YX`oW_sVpN$f z2441dT&&kVRTV;GyhXtunTQhPi&s*jjE3_hVYuO1|awI<$sopNS)ug960t)F&iPbDxgY{C6UzIMbTON zF=lNTe7RZh9U3-Tn-5gI8PNT)g=>8=w$f^?L29gVC%#qLVBm{NYSxLQ8AYvBM}y@2 zqPgkQq`~WIrY}5lw1r>~1+Mrwul744Yp)eQpq4A0Fm7Y4G`^zAU9t=><6I-uB&~_6 zY^C}}urWUXUmh}@O|}>aKqOW+V`}0iE4u50J3k!jMp#D=LV;tITY^B6hnBq~Lp2tLuew zo!@AJW{jOg?HHSGno&q)v1@K=TGD;j##*%rN=fLb#C3y$O}yo@s3su8DZ7cf%myOO zHX3jXbm!@eIP(|_DO$U}Ja*8c(iuo?v8Yt54YNip@Ty@fBWtqKQXitcBR^N`EulL@ z?d@t~ZN_5@O{a@Is3daO_ncX+SDg+l4Qw=~Er=h z5*IUB6{Pwu^05Ax5x=BZ?}88X;xO zHx^pk6@UU3p)U27yRpnO<4!89L}8n>(7NDv(*~gtP~6mC4hpuWAq+SiL#u%{NCIE% zcHywm2-%IX^D?3!=W}8m&m~LaXQLGbwLpsH&q&=(Hp7utYtUAx6a%D4*5(@PI$}C! zI%`51I$%!Fil$EBITgtA!fdl{b91Dw(hl;~{tv-J-3?T^? z)d|HLBaM!gF~&5dbZ{9h%3)b^1ds5ng=mwwiPIg~eIAks22-zW7UX^Q8~>CgKnppEhsOX zP3R%S?{-;HGFGR6g0wtmyw+w|^5?q4%LSF_lkr?9C?=|myYtNgNdpDquWO_a)kP*T zV)*`+uE@57>o!PwV7s2(-)$8iLX7oBwCZpyIhK}Hp$3WKZjN=QxKWC;E*DU+ARzLW zB+D-N*qXb6Y8P%Zi2FX<7kEG4)>4QOvL((CPQ%AG-BG(*Mj28*Zg7otuZ)jJWxx-L z!vg3Dyc!6X(Mq4F46@Lfv_?S}Qb>cYkkx8=!>EwU1QYs;MHb5qtHFeWb`kF8?X*XY zrceb4R&(Z24U4Eif+14ZXsXVqy~OGb*s-Vc7(cF8s_Cj)**HP93YOa@n=EFaJc4{O zrW*KGteR`IGVF|I-7(H=3`-;Qb)H#rvub(%Zr7cRK|jfLGlO`mH1o@RK)WXw;J47L zo{5aQyQPY%I6?=e#0eTPO<)1}VxTS-)BuIbK?379i_D=cGT80>2BazHJ0q}`4N7Do zinXLA9|*p|I$lRsOZ#-3=CigF%1wTlb){`{wc7dS7MW?(oFYU;8G;`@+|sNds$Nyd z!QY{|;k@Z|YIMD(7BL>%-F%cwMmCcw18`xfV7Rjlc>q31A0l(ccC8x_PMATckJY#W z{2Uik2SFticid<*_gBW)5bOSs$qd6rm;sZGwMs#@T6I2md(?^}AZH2z?g=1QbH=HKwgnK@~S^9>S4JXB#;&o1ili!6$I>hw&fI7?U1}3EVjwZ0F)CJBc}a)R7GS3>7~hv01=FvO+XL{M z>g(9&8x7Uz`%pIJuolNen$VB5321q70X2k1J*>Ow(rI+7nKau#c*QQ0^6)zzbaJUq z6=Y<`vxN0Ksj9XjH#Nf*Z?7hcUNh{D+#19k$zChf%NSBs*3oIy^)apEhrT&wxp-!9b$=fndzYuA~qJe9%@H>*K6YbX1KMY>VcjU3=ND zO>ob^n^FzL9xl%-?bV7OauY4~CjE3i&T?Dk1iY>(tcJ1#s#1l%k~{S+v7{=*778ym zNGG>QL4tYM$UAMGWt&MWMryXF5Y>#TG)LHupDY>6nd`LySZLkI5b~r2E_9{f8+iu4 zpGOJ_CgpX`t~&z}Me8v?gXG56-0mD)tZbmd2JxFF!}KN_0{R8}4-G3mUMv-&f`@ZV zC(I$KVLdeSD*mXBh9V^5-DQ%Rm70nZ^l;Y-NP609WttmxYkaC#Osrf_5i%2(T?TW( zTSn*RVhUkLkt6d+uPSn73$;3wX*GLZup5oq?LwJ>n(HkKrbQ)v)2$0~zrUE1n+-F` zcWp>%k4&;FD?0*QV`S8Tu$aeli)E|XEk;U~N91%>RkumAq7+EQ0CR-aXUkR4v^ux& zEIpTI*XU0Sb7--wH)q;~Y^LOR4P~NMlPr35cskQSgf7!|v5_t} zw|br@YibrJs63FC%LuDkgwWfmnhw6xIu!|xT^QRA3>5TXeK!n!5b010!VTnj-NW0a zVT}b9BosMwQyKhwi1kG2jE(E246#{4SWLk;MiCu{5{zPFwL=G@o-C(`o5jX*7>JA0 z)8!&3C&Sq6EvxlrF=*Bnv&CXjZ{^jH6Kn#4wGgZBR%E}0Nn|SZ`eY4i32}_V7Cb&# zM1wXrO*ky(@gdBez&B!kAnt-OO?3wwp8yI}V11IxWI06HhNdJq+D|os$f@B7O>$}% zyA+z4`ONA73*yzGs|+Vwotg%w6fI12~yXcl#%iJ0Q@h-=K}32Bl&iJd|!JMZ1%JT)|d%#w*U z8P%3z$*-L08p2@Nftpsaf}o}bg$h^?Q@oX*Hyo%XQf)1Sx)XW1!Z*CQ9Em$;vmT_1 zwdjV?W{eY!;aX~S%lKx2G-?w+mTaXp=wYS2olqi^dOl9=2@U0ttYBGEqg9XfPPB^aqdw0gz45de*=$$ONJBK#0`fZ|??d$i z38A-0N5{();_a!>lOuIL*9C*NJIuHnjH-A*#Is$s5qG_T&`d}?bSR(c`i8!3&@QLg zBiBc~brq^`d&U4$R*NEbYx8d0#h~_hh)uA~V!m$m-3CUxUDl4>4YFg#rWPeCww{o+ z@w}(fM3ZgTTWxhs;I1&EItCla?W8f^Vm+J^;X#U=#?tN}MC!FBQyC_Bhjyqg+km2h zuz}$=BlD!WTtdzPa_8F&YUySP-e_zhb_fM_OA0d6IbNx>{8^(&I9f!z@*Kt3)-Ipe zzT`9lWlgq`k>-lCE!`Q_HjvXtFhs*gjYh>N>$tjOc}db+nH-HfzKB4r(!gRw5gkTQ zIAd6RLu$&BzSBA_xez<;Z5B`~J|6NMR7lAKj_uPv$cllbDq?}O++>|sA(A4^r+iF$6XC@^Y$y?Ts%; zWobJ0dTBL+bY-`^bp|N9LW`s&%7xKt8NRut*I+y#{*oGp3 zT}~5YH>~h-GhNF4c@LiPh(MO5jiEb50>7zG2O%}lj9|EIj38M`4|a`$=%En4;ZaO9-(-Y&qaEcHtO` zIG8FYMW7NpfNiQM7nH$Oa+S+Ts^YRBHpGsT-`6w!nltBh&yf)+-IDgqO!xQt|Nr0r z`@cV7yIsxOn+l8-AeC%lQiv>@9XaKfCrJe^a7orGX|1zDbSxuPCmy)ECjM$ZovzhO zt0CKi8)peSwU-LBVkbM9mS>^zBvh%$O03vwhds#^O#YE5;!^!#ua{0N{ryBBUG{ro za9Io}cnoN+n`_kPUSF*4r_xNo8));Ql&)9!dLf?m2PTDCRe?Rw*BlH-DQ{`zovgO; zN@uL3hMswj?uA*U)f*O@{dRE}8v53yKHOJ5rr1^)F1Yms;V(fHhI=?12wHbp3l^%O zX}dkjZ=r_~{g9=WvvztspNg{Fl>8fSF$6N=yF>?9m<=;P>`Wl;F0}kYZLBUh{}{1| z-Ciur3_Rihe4bD9QoB4~vXSnp!HIle6`}WL~Co#RDN;Q(I2lL5Q4GB|7g<34*@%T6%OLc{98HO8a4GTeK z!NUU7NQ|^mn%Hl{87QvaS(}-&K_yJ=o!(KW-kQ&{awsSDBHn5hhGZ??EtKc^+>lMt zy-rN#Qw61qe;UhPDzWxc!~C+aXn~^qNPO{l`~z=ZQ6}5Wv?jY-H83s&JXh%Mx-=Js zd4?0#^W3t)vyse}gE&Jiyh1xR=Ms%6?;B;KX$1NUvo?ZB>xe?CmiiqMuaS%mG7-2a zqRTWDtq-!JOlfG8Vjl$!b2$u;_y~LucA*Wun34DyR5Lk-V~9lp74~LnI6>Y7S;+UoxRqP>_RY;UenOtBTs5gjTM2`b* zZbuu~)TJD}cRZc%_nL?To`{7ii6aY7XEUVNBw_QO^(Vrhx!ksM9z=baw)KSvrY-mj z#4zVx$?YbB8ogal6#F1l?Nn;ZLWYVhM-1fDSu{~dDN0rr({BH83Hly*rwd9cc>)Zh z1g73fC+I71&_OEYdaRq*>g!6i(BP5tr}$D`+FzErez&g7!bQaLyR`^{Qrj%!T}U%` zzCK`M2uame-F!YBE3e_uoO!)cwJKFsd@Ys<3*99bWFlIil3vaxQ#iw_+H9swYpY1C z?C-3Y_N*u7!H=;4vxjk zP+c{UNoqWyCI~!*SQa92YUxT~)?=Afc^uv%OEHW#y~w&T5;9AIy8JQ;%LtfRKWTsll`RF^(qUF$rKi2saL28es+P_6bMfo| z={3WAXXBO<+i|7QPG=eeKIqL%so{XBZ{)Savh8^pp0GI%k9lpwwacmbmTk_c#=22s zgfyj2_|ZlvH&kY!tSA^$*IBOS?v$c@DdJlRoodaWUoEB+*jB|r#hqLfs%uZW>*sqK zS14#|H=z3CqxpJWNWiSJS<%vV*eOhD*VW^oF{_FDDx~3n^&TGo@KF-%Tzg3iBcG@kl!?h;0$$T+@SexFw8Q6Y7B`1 z(I%nUQjT54QoW+D?u|{8GPR-jVbq6Qc*d7k7yf+72i2O*upMQaN^}C=Vw&P-9PLfc z8+5!NQY+YC*YQZPEm%H+hMJ5|t7V^tpiKW1NnP$`E3lj~U3c0|?8OnSIDxdjl4`7* zWte(GOu)hB*PR3rBeK+03Ioqs1jU_wq9D{u#cFVg zaJqsb4j@0}ks;AdWHYq{ulCyRa!X?d{^3wrbp}w_MxfheY}gQeQX}Jy#r@bMR5tG) zCkJYFrbPH;vs3Ifr@UK$1JT`K&!j%U!BftEnlN(v{ho$=BN?xq~evSheP!s|eJW zr|z_OCiFJ>h>%}}XPPWe+5>kkGHB0oy|nCYj!|UFo9TBTDuxS8hla1F7ggLWi3!Kq z(@G$N4SwonGQC+3C5{cSn#;U?B?at zvb9jAj26vyoAH9bH1h^PPA4L987qg-Abb`tKvdee*5 zm{llJWLDmwEF`#15t#_NZlO|VVMwIwER};!;agJyrN61I0!bX4?INlO%-peA!58bK z%FSWDKj?DBbSvk}N+T~vA=0}sY%e(^?kx}o?NevvVROES=OPt#$a{Nb7F7&?qEUInme6O}omtH6wOQPax_M zhx6o`NymK4MUhiH9=;Gx&B}RC6~?AP*xk=%>PRw`BlLob7t);`j3y*0udJw@%UkB_00Vdgv!Ne;@4~CCAX|XCS+&9VkNa` zE)}*uO3rwMs>-T5NjKmMnatL?Q3|eQPgBTkBQ#YQY7JpgO)*|NDc9tFDIOXm;b}}q zRM@vEgp%;IXOsyx240@6FS^VAY_QB{_ztImkwE?Hx0DSs8yN-(1bKI)7ZQ=v!E)-L zq`_3Q?xdMAr!4$DKWh1kt0svl4i*!jp!=T@Q0}pF0cX zdC~}tx6#3-MSKuaQ|!Jry(c4ICjDF*!-=>^Ee(8#DlC?}3iUSW0YseB` zm$tAG(X&Xmvz)rw4Bho-*70_xE_356C%a3vwhC z_sk;kef;#W+bD=?PT9`0ln?4eHpncgbUNRSH4;O2A^`nkicsUY%u5>$nTWl@TnH@@ zny)QeL(UstZkJST?CT8132DVEV%^C1gSRcFZs%=|MpANNl`JZ>H!o~yZZOQb{j+j) zT2z%;T9K7RSI#unD`im^7P-zEQT~i3=J@^y=}o={ z(wH~7j;Ebalu=ahd)JX}DKdgDY#AI+NSw{45_+1EKcT--0nWQr^yB#^~3%T!71KbFKm#w$KU` zP)b1wjS)07Y-BRQ=(^$V778oBHxMpMbG{?2MvXkZnq!0PMS=B?8_D`gsHpLP-%Wg( z*?Lc1!H5&>d1keAdNEt7RBqK$sJ!6w(G%8K zrEDf+)5&DyDNn-jl(rpBqz3XqM%urUm0zM*auf?)JtNrL= zG3hn9!E(F_MLk_Qti*a-_^v2K>U-14W?oEWO_A*&YC2ttZhW44Oh%AUeps3M z3+wfS$qF1_XejR55)Pl-*o~N^QYO=(ERG*(Vm3&2^TLrn}=Qn|VSerr6i$nQKa*a7P%g9=GnfJ77+4Q)) zMlOCKz6u2@EWaMFXT_F)eDUa}lh3!JYFAmr=AjU5N3)^4i7ql_uBJi=lS09P2PCh!X|ZYYywZq9DTYz(Dd)PW=oW@5L}?5fIG?Df(fy3t$^~2fn$jkfP zb$&@VH>rk*Y56y)OiqNoD@HH8Ts9sJHxk->ylta|(^{0`iFhU7K>SN$iQG0e&@XPN zPFeB5C*-M$bXh?zE)97*UymXzYQ8~)^rn{W%(|sbI4}<4tY7&QdF-!C@YKN?&nbK> z<>S58Q9e_VnR-54O8P@=rndHHsvBtwIj$uSePTT`_GfBBs_3mxJpP>0klF~VU9C2X zfPkJD#3v52eP%gKjrDl-qR zW4R9hQL5eUhRS7$go9_j{YXXReW7uGwndGDTp~hyB`CY7G}cl_Lk*gHxw|ZE1lWGn zZNyD-+9#_twtJ(%D4EVAAVIk-#tH?g=0!qku+>{kUQh6iLR~ zo%}eKov)_ihUzh$Zly6P*9YZvs^492Q&QI>rYf05dEBXV*R;rWM|=af&P0)ulumk4 zEu$*<*HlEB1V;6(KfNC1a$FVm!wAK&{$|eYo23UqUP7%dxtZV)bO+sr?Q?}zOKNXo zP~(QXh;GRtVs_Mz~y(noE5jtZ|ri0yli|JA0P!b+y8q<6iB^SH*Ri(t$`g+|14BjNE1 zIb4~o%#(xWu;OXa)J9ryu)2=sxn6y%)D+Y(8rQe2ejqfcGO13HW1364*l)=Q($A(d z%?=mrdW+nME2vGivEFzG9WNzmOEJ)x*7#aJkj!>hsrhoHa$IrjSu`_KIgAtmdb#Rn zbCdpvamN$f3cjIHkzUbsFqKt`EHjVG>C84*#rWY&t&IFGaoDI9>PmX%rKtFn?SdZM zd5clO7k? z8Q~{cF0j=Wy#~J+72y4WxsD4WwxL!l)(eGTYPoFH;}HnWA~nr2a|#0nBrFSVdxUBg zc<-32(e*91+B#oOc@`AX|B*y5<`Ytc779Ij6k)1s)R>snH-S!h!8N#$KTz<5kh9fC z;j(R;mpLw!=eeABp$^-nOxGRD&GX85!`9}>UTBq(s21*3Ni?LP(D8;+iBvVBc0lL? zKWcc#kSo`Hq1N?e=QKj$6NrIr&J$XCK;j95Ye8NXC67RHbfvR}r8$xC)2pU$nx2gZ zs*um~QQo_S4|3TZR~Ou}s*#u~!#xS_Se&whG&WK*Mf4TGKOT zIc?M@?Q)UIN?ABk>6(`wH%br~ASKe{d5-GzCp1e#GhK>OVqWowd;U^=LQiV$Q3{^H zcuZjeU8Ez{)`%cQg}q#sZE4 zcf-|_nFL}}&oDr{`!ja{#otEpSXT)MU1|!aAm&>4PEbFE&ZzxXz}F2(v*nPI<}G?V zPZoqmAQ_+qW(^?*p*F?YEMFbz@ovpreY}vQuGY#Z>MA*HFB;;^la&e{H(jHf^FnUC z=>@V=V*J6tycNrUmN<%w^bOGHN~B2^jnbAg42il?@1Pud-cL}R?WK=H}W z3J2&aLk9*0Bt%RKm1tEKI?JTO(!LnDlZC|1RL$S z#XLVBCt$Uh((Q)Ga>-?B!mm?_W)js<;>Ed8Mzj^mH2FNeeva;hQ{67TRoiLKt3X$a z_~>pxo^cW~sf4V*xsIfGU%9s3_%rd6f@7~w^UY|uD&##&Eu(1Jaeta6nsvP(=3`lS zM^{Bb-If}e&~lJP#7ddiNyp3XB3JXtUZJ(|booVRDQ44!$|8(2OImx|?ztN==RrhX zW;Zc4pG*1s`EFNgd2#}~?Nxj~dKIGryt>RMB9mYuoA#oFR=v|f9MdApvy!x>duxxUTb)j0VKv3&vjb0@ z8TsR(MWj^kQB7p)O$#w!yNaL<4L3~Ynu$QLu?i)qrN9KTP{Z4(r^K&H6Ruy~bm+li zSy)ctOH`2n4h>gW*JzA~G^}z&@`@Otp-f5HKl<95CyXgAX ztMsNnLyklg@yQVxXZCA>&3Sy(!jO@eU1ypm&=t`QvEoBvMX5YtD8zS z8{ra7p_4#(XgLgPXKpQ)rc1F9?&Z4`cD?1sKQvPLg1?!Wd%ANkRS-9srMeBpz1y%?SS2gcMk-Db z%`@Yr60=2UR%6C@O5035!Xi>&-B$_?sgULSB}ytb*IWWVpi;gq_X=-DvfM|F1u`o3metf z5Y*ge2+LAzxJ1b^U$e177NEA3seEBP7srVSqB5z7C%KJG2Zo?bTx$Dfv!qSH{n zz_r#Mx4$+FT*;ZOxyJpu_LybnUD}Y-EJLag7Ry1 zA|+DUQmu(19B@`8R?QmKT}Umqv8HBfKyxb(B=BuG`g`DamKVd7}5ePoMwePhO1_4YbcuAWx9U~4qta*-3=QM?{x<1L7q`;7TtwgqR~$BDC<>I3 z;YlPlqsyrjtO09n8OMxrj_RI$Jm8#Gxx;%^PU)I$EA6#sn*$^*hD?v zu~rDMOy7eb{64)_JxjMJyR)nDI!P_4JfryH>qS`{g1&=leZ;2}rdSb~NuhuUm)c@X zdr%w!G>`PIiZCo?LeqR*K)Ma8cA=zLc!0uYR4I$#_KcW{b+|PvR0>GJ zo2|sC45t#3912>I_61|@jhI}{klO^UuT()`ceI+KvrAMHn8rrjTFMCNd9W3!x9Frh z*Q$)GJnDmMeO3)iNGxA2YKU--4E=#dDil~GW0M>bP`Xp0wm>W&<@PdD#KzJiX^aZ2 zoiLKY)2Is~Wzwr$WIJln(N$Jk4E#ZNVH@XileI70DEe}3@Q!*X=0kae2E&bm#iehZ zLh&|KE$GwYwpARtz5Zl)EKJ4>$`s0|=`@+cEIqGXXxMEr@UIK`!Hg085QR+ZaCH2j-S36R-jXYg)SHqDjCf0@6&Jf*!6M#T92P4&F;y@T^{{M#@!&!EC0@3A-y=8pS@S_d3WE& zE95Rp{kDcuaZ_p!)-yj$PD!Jo^nWFa&BAZGa0zhhpQ@`rj8+kM{s;R21A!7LTwQxa!)kUF6S=?(+Tv=i1NR<^3u1 z23Hgf>$mk=yPrIGrhjp*AHF<2G1hgBH_iECKi!i*ipgGvo~v%&e#ciFXxmNQ+7oBr zf{O$v3Y@xw_UIxaw!h;*?0Gu2sN_0y{1MQxB+hrYdhafEH2`(&kqH^uy~E_`6~HlQ z_apCpmvKurr8lwB?th<==C1pF{n9%@!nN71HX_aDYFpjlURuCKSxgq1tGiG{{qk{K zS4#-EGZ`bx%7xqR$Tw|15&LZo*Ib?~+vTWNRS zK|8M#DA@?zd57#PWX%S+cVA2Z>!cSwXzt|4hxaP|`r9$s!_-GDP#eSRx5!3ZcK}@5 zBJZZZBR~Q`-+p2Zq(j13iE+;@-g&QyXX{=2k4JiTfM4#u1MtFyv1Gi4)rUS_`z|5> zO-?GbhB`ZZa@CyAULh20l8pYvNiy19PW(fMTg5i@^Usb{O4}6%D#NbuDFEK4EY80@lNmq+uHT7N0#fLud}!JjTPdPxgwpse(EOk zH}1Q?Xk&l)9GkL6J3I35>WNRyiBGMr^ojqiyPWv@?7Y+j(3#`sBa^kx&O-s0oHkFL z$R?-F?#Pv20e>{fk$U}8PoB7`m-aiiUD|gXF0G$4(e(L~XUIt#C@-Wv zre2;rBbO86bnm;Ksrskq4c9X~#`>QPl=-tyxyZ3fSmU$Doi%w~kVa^KDOg^*p3U36 z7c9DmMrIq$*a?5~6LCWQUt9@wWwKJ+Q)r9t#(m`iRLtC-tom7Ok?$lxC!}SkDVtFC z&+B~&=3!_QM7r9`Pq;L3r4SWkG!O^#(dIEW$q*U^5y&83iET}K>{?0SN28IeqfVwL zr11bM?phbdK;yWk7~tlz>}}Js|9Yfv#|d_+gmm(r9b+|SbuHPHt(#P5%vhIA zKLC;1A`RPg4;~zwv4gF@`nsUHXp6g<-<`YX6W5;n*}E@f%y!J!WQE|Z$=bI5JLv2P z%#KOe20kn+i%ocYb-&LHZfJft!Fp!?gz-Gr1}{0WiFkGqVZ3{{v274BemSx%2l1Z0 zT`^{hPv$)J(>QUH`5EHZMN|Cvah78Zd3MnoS1m#Q1+w$^8p@$0_Sw5!!#6p(qiybo zPmav_n$-01vsVqKYhuIt=}5m<%Xv1GSb~vFdT^Vw-gP z{rJRK){WaaLGS<|xQ*B#{JP`J+b`=grZweLM9XU1ohl9|AxgSHqye=&H6i$Hj1-Q^D{ft03RZ*NrQiCpv~2RupmOlsq3V;fbc=wbST-eaSi5hN=@OHBDN1* zMiB8yoeUsB>-qX(xpdW(67Mgjhm|l!4yR@VPdk4)}rUT^E#+Id#9Gn9`pT*pwQ_NvVj z>=P&l(i5WEJTX+8Cq&FRuWuoy-RR+F%F($X6iaEjj#8GqiBhI>2v}41mYl~r+tAkw zwasArci5xJKIQ+M5X3$C%_}&lp}75|MGAjGZ(>v2IziJa3FN9O{C1hS!`i@P3LuRS!PjWF zDG)(nXV5sHJ>B^tAll3Y0c8mX&0`mF&W&9683e~Dos;`+V0#}lqsuF&uFzsHH5x~KfKE|e9tWi)tcAYt-84}#7vpd3a)vNv1g2f-1@=fB4^fb81m#~$0`j3 zTuKW1QE)&9KmNA2fn(smJ;Oy5+(kx_%aMJVljGZOGRvz7mcAh)u_5@zP2W0FuNByK zIYciDYzy2aM8EA)_G*LQ6)zrvmV>FComiaOpm6(7CXMSHB7K)j1W~I8mOgyHa>5@x zI7*CJpZnc8^*8Qp>Q~E6w*71q2u$Nk;|*+YBl-r$ho15X!7=86>H4mx2TO#3%w>pI zM`b706tte6kVqZZ@wfIywP(*xzDw_t#Pp1$?)<^}4c7I<#lq}n3}Z-fZy<2TMV0lF(K0HVe7;1F6!JX=)jny)u-uZd~)RdU38HF%{@_k1Jb*I zE(4oi3rIV+nTl<88$0W-{CB2EWZOEHEd9y7EREY8NTiZFndsUmq}!c+02(*(59*uA z_4FC)0?uC;^mcqx>?!r7?v%9I>P{X#(&muEP(}ulEu?W`FMMQ3&Zn;A+|Yigos^ez>>458+?e$OO1V|lt1uE%Fs1Yv{K;gchPIVPDKy&HmI|Kt64JLiA+hP(#3 zn?8n*oTobLu)8_jR8Q(ZK_ z*RI~NHVj|q?Hgm=)Gj`L7P>uiu+8=^db`bPzVj%b`pW0OwBuA?`TT!%puc?TXahTA zBXZzdr<~urOUn5$%rXZY*4kP}9v+$b)gq&fY^`(8YIYX4tT0!a()U)SCws%KZfrNT zSSyw(X?1zEZT-Mf<)@@u7n|sa`+h?YkX4&h!YGOxz z$NRvu?#XY%pUZ?2!#@5`tdrpX0R`a{Fa?jZ-z10WF3N78^jvz5Fxdll!>jSlT#nt_XeQcerzc4SI4x8JKkYLF5!+3?j_PukIj4u#<9J7`{e3-xmqvsvlPZ~1)Mcc+4`|QeBk1Wk% z=oh(MY`7&XXlDU*|#ww|}&SWh3!A9m)))^nXD z6eb!XjF&{%xW*FPFgD@r)N!GIgfH&G|1Mnu`grJihR`ARB|VtLcsU`xg(UzNSI!>` zyL1UVU=;L)04f)O;yPH!P9XbCl!0gf^U{I!$pdtS=Q0d6Fno}ZGy=;t`QhNd%X`{m zl5~cTGN|!bf7e+;&JnqO73>Pnb5Ab<*ues>z(V1H@bDU4IhH`r_uQ4%j}9}B>l??3 z0sBj-<{QU}B}eF5$v2J@LoWHoaboPCV}CE*Ro^&H>;mqe?&HMNjC8H6dWFg5lH}iA zRfc~?l-zr=r36{J)7fh_Lx`iU(-WhTkp`2L3-xDS!~c<;=V;*w0JlssXkn{aW|@L^ z2CTCa1a%`Y3jU=IDeorq-)Gq6v0elPJ?MYP_~Gn2Myh=v(RE%mAuFpy*S#lCuK=!L z&-&Mvp{QR=&z0TMBFA$Jb8TU3tHZC%A9-YAex`ApVVW{rhkl(+_`U%PDzdxc39@)fGMQ;YIEx z#LPE_JK^6-eYkNub1nMbIJ*LUSH&BC<&{^Bga?Aw{jw}m5y$Pu42UK+T`Qw^mxih*tC9zX z#oq8{zro(OthR}}8q;QyySqNYqW;bSy*Q0}SLCbxPX~=J-RXuK_aj>qO~&B5RrFlK zp7GRj!=8PZgycGaZiCB_hgUA}Jw`Z>vE8g6oW%LNce>QWl#autT4$*JbTrOAlD=ny zqP1(SW@qmlbQtH^D$7`cTIB6ssHHz(h$( z*SNiLL6{)bVkK42MF#WO*WNK`=59K(*7^ST>+3ure{OV+eyelE=MJ22dGx5N43M@q zcF0zb9_cGVD9T}+!?zqv!5Qc9v16SXKso-A60Z9@6TEf&ea|gAvvKxYbpw)$ACQ#ukb9RtYlCk0-<&`%9CUCwP3|LH z*#E_Zv@wC*L3hagji<&zcQsAgx;~0T*P};-O+!I2%IaQo!}kvs>fG?3xU5qHfS12y z!u9O(_kgv@!CWo}`koPZET9`}ImQT#XI81FtATFo+6Ht>P80$*abh zxO?ZNwFSPWW0+9W(ez8V+&#im6Js`TS-a;0I>j4Wpg}eVznW8$|5rja_vF8K6XMxb zis&4hhlRH9HB%GLq38{Ehr1_0EHVgyS|?)OU~SdmZ{3f%RvrBR_?F=R!WWM$+amHa zZjKanT_1U}(?_1%#OSCucd9eC=8i+tVSzlTBxb1^*9oKho~t#cUEJQT;+A6;27TSC z4--T3AMU8}t5+b&FjW5N&zs2jmwFSMN`(uD6;#kbMO4G41EPu{{Ycp*K0VoS zEM21lw|c<}_;;V%^zy_2*&X#}0$FEZp8`N{BYl1OcN}}>P$_SGJHqVsBgA4n*VeZn zU+S`#DT1Az5D}dyWIdHAWcnHYV*l1l^DMVRmL!!KkR;CH_H-(>RgEZjo z$WO)rx?6$mg@JX+g#RtV$+p4Yau?WI%)!=j%8nm8M210?=N~u;?9&I`UcO_El=Qc~ z*N`KPX&qNCji<(*Jr)akyiGP)CytI*t!P1?LRpIIlD_hChv?>*cN?gEdl&5->C$5~61z4HeJ5{+R*LS`n(KECu2 zwtE2o1ZQA^TR*#h41{}|v-?-R+vKt~P+PhmvvU*(sOd6>jZ{CL+AiGYxKBIjBdu5W zHR`7uE@U!Y@Nc1|xitBw$$q>i|CO6;OI?Tjt=zHoSUO~DM>?i@cpVZk-g)_;O_`rJ z4|TeEvVoY^**tAqmydldhcF?eBmZyR68T?Q908WKJI{AKt6wrv^!M~8 zHhuJy<-vHMU#sCvg2NqP`ffFjy({0dX7^8av-@50=SGgXKXA_ToEkJSZ8vt~jIo<` z%FuBJO>*VOi-)l4ycI_MAADRBmii9;7gwP9Dqq$+e$|2gL)GdmP7Klm1=)JIK@Yir z&cm5JL^2?8hmxmlGr7`*YxD@;hSD+-NZy`7DtFeO2?qK9-jUQF-I%04@_!s#yT!`? z_FEq_It?aP(zai2u~i-^8s> z;_v>Z+esj=edNT@^9YAKB=N@kU_CfT$hg-L%KzR9px5X}9eq+e4kC&{)B0{$;U3y2 zyV7%e)!i%z_Y@YE`$&J)t7q)*CBpTO=v19_7Pv%}>?X6&!4W$ax!H{L|JV$p!X!uq z|EKMzq&(housz*{y_r>hPj-o6FdFPLxpgnI=~deAP=t0`u~ta0z!gl0*3vilMBk~T zrbgy2fnrlM?zUeDaUTbP*bft@n)ZGpK8c{iU_;Iyo%Hs}gYK?nOkhzGYaaq=Oy{^U z!FYO^G2zHN`8%c}8$Ry5>nl<6>YjuRY?$Aji1_qfBI28mZWkLEE_mU{Vvgyu7Rqd9 zg@@PPjJA2)pwW@JIceWKz@9P&tnEKJ!CkvcaKGQdQp|zQoWCDgfTbN=q`cd&QexYR@mcmofBx;2!X3n#YrKIp1R5%lN##m`{)b zeQ^Ea#V}!wr(=J$TtBqI{Xr*Q{t3_O_OUE zcdOptuE_tBe9&_t{OnAzFjWDHq@?X6Iq=q(I`hF91|Bc?nrp^8`u`Jr-xrlrN zm+HA-PHmS@pxIj`Xh+s+gB+&Cb@McFlHg^_c3(keI(#?0v&2X#7YQ( zy69&(c26W#h3nSn-gO@;6}An;vL1?=D7eB&hb$4w(s#HB+o5x(-2z{~NYG}}?~fgs zN8ZWaDOhdmyW@^;yh58$@WBIQ+h%$0(UEbS2mHHtlwxc=$j03(X_hWtIw@dB*iAc^nBLcR<#?xA&z(n0 z2PK3IpnWa6HX)-U;D6Iu(ZyiD%19&poP(7(4Q&&CEr~|CXTWp8Ur*A*@{l)^8tKiA5b}pRt*79p+vu z-BC9PTTI#UmUSwgeXp&jOAW$SSB}@v)j@=kb+%k5Lg~+3=PaGz7*NSo$T%91Y3Q85 zUM{_TM;6{b_CXzQAHko?4p2$D~?~TpSmA2k9T!`6pNqz2N}zRnabxCVJ(KI53?Nb&(k7zQUEXi*KA>^xG<@p4U ztmH=A4BtW7+EsfrB$-P&+^31|knMCIK|Yv>E#ve^fk7*W0~NqXs+8@dH+}&V{mcQe zIS=@^??gW$KW(h`I?&?>4KJlqBX#gczvF#|Zea|pAM4M*#(=fve)csV>IhJe$)Cph zZI-z2x*qy%i@9!#BXe>fTKm{39Y1buNgEvAd-gtIfs&i^=Oa`Jee=iOG)gXjBJ>&z?>&1j zdGdTPm&WHF+Yahr6qj5f19J^W-C#_z&vX_#S)iyrkrHv2j)r~+fbZwP)|8Gk#W_S? z+`-x6V~?)il|{j4H)#a`{@4Kk9oyvW?Kwki$0rl``Y!p>LBnhD!=JE#Zw##S!;c*W zggGFRNsa>Q{PeHh2ev8v$bJb|2xsySk@p^^Y%RZNwv>MuADzTvqlPag^%ANeh;#GT zlXX?82V%gjXrxk@?NCJ-Ij9oksuOFWisk>2fb^dHclVGrj)_ajO5e~wY0=a#n`pVTnSoGS%j+Waza(7pP#Qv!Twr*z zn3FIKV47eOvJT4F>025&+(}Vd8;|u^biD(1`6H(0!Z7<>Q=GWsKE$(sl^*KM#-fth!o|6~86Hqqxkp9`E zU7a8P{z2o*DR3VY{TD6TH3mQK$26WA+u~|IXY2a6ZniCKEv;>F>45SNk`Wvn(mGqM zmJTa{!;)aLH|RR<6H`fdyk;{v{2BWuv@5cvT^F(cmn!_{EDo0beI1L#)9Y9quzxK% z%05ejkZ#$FNrLhRKcutI58%%g$65b_z|>!|2=7F1Vmq{|IJETgzdLzlSGtL;M2{0D zW_%;{fdpshDH9NEREeZbxpLA9wKu<8Gnair4E{*R&{s@s>iOGu|CP`Gq&0wzvt)1I zwQc6)rht0{tTx-kG0o=4JFgmxHW74Y{&b{QYl~bYy?@z>uX7fU;t2_6efY+BUu8;p z>VEmg_#*oU9z1g?=j|WuHx%KG7vm?2E%Ehh(6b2?opEwkknB~~j4!859h;EyIcvtZ z@65HN4w)di5Ez7lJQJ7JpR9E2g0T~?dd-})93`XNlfwt3aVf*sC6%9_9h<3Tb$^Cv z0aDQzmZq1u;`COwtEa998%nojDX@bvmc8n0JBSG-9ks<$@qS@VqE0F@= zkcD<`L0vHgdQn9JH?R{y$eG-*Q|3N?_HCE8w6T;cUIZPq59r_+i#YPmk>m;!co$?| z9QJZG+xV^j;TQldiu-d$=7o*!U>Lm}W$I$k!Q!|WT9(L(DhW=>`shl z%Hq;9;|W7fe7tr3%-z`?LRvP zU<>Ina(I}6E)EzCw?_2mqYY8&#o+*+M4U4{3HMneSd^4sv|Ub3phpg0TVX}Ll-v#b zvzXoq8LhjYuptedf8d1vZyt1eDgQCNA?(kZAUCFUT-!CCUSHd_ zb!~As>wG+W-KH)&R7#uX36bE5Vf1#qV^cey+WK+$Pwi?aku8jl950>sa$9=Xb#%^a z#i&*9igse){k^b|i%J@7OoF1Zzw(8g(C~Ju=O%nCt2N z`ffHA*3j)|XWPhk(Hp@2{~l~W$G*PQz4e|C@028Cb6soe`Yr4kBkNoDoe;fki_^az zo82q6s~OK;eO*vpw0Tj4_1z>cox^|YwI_N>&2KxTY++%^yCV~G(r0(r=@A%O-0UJF zfelGyi=8tPl+3UQT_i`i?^x*I(iYX`lDkIutdrqKCcWKrPRp%-B;2K3AfQH z%0WtoNduQO8NKb(?+p6W^#?<@c=>eyv!xY&-ObCyg-)2ITN0-5$qyKc*-^s$?sIep zBDJ#K_TaKfnjbsXz{aGHKL<$(2PEY`5_F4yy8Z)6{OzXI; zXgoEJv#Z&pt!oS5RwK~cXO!k%yMkfQ9u;=U)?o$X=> zda~UaVaZN6NH6%h5*B}i(7-+UhpyNwhOoG?u>VE9i6tyHehQ*Q5N`Fo^OOXcO{b%Q zxGVTXJm2=S-40avO&6mMu>zAf^b*-Hx}5A=D2uTGr4HZj@2WrEe?l@)2O<#}rSV`+ zuBgy2R!7+=q;F0T2}3SF)o|M?B4!4}?Ym1Lm?Q85-*+{J^$S_acq3%@@8Uj`UAQ4a z4`GAe)x+AAA|;`9+L*XeED|K8wGfH7D+zE^t2n{>Rm`Tp7i|sc*S_>qS6Q0tIpw&& zaL1&dx)jo_UIK)K`jI(W!)|mBHEibk4X{{^E?6HOpLl_Yb=_%F*K=C$5>GY`mbue@ zL6=`TU{S|xxJTak@Hx`4P4dXYBO^I^?7MfAXK+^ItCOGp+`(k8#ZR}^jxrXa^V8Vf z5V>vLch%z&U|o(Dn|S{rU6`}&IotfsKRYs#6D=P-vSSS#9ew6R*x$cPgngT?pjwVz_vj1r>mxZDY3loBRgHxkkD?$uUuE1Q?}_}{qB)H606K7M@A|G3Qh)sPQR-?_BWIT>IGtFMw!cS3ty&@_+PAbLC;Zi6!Nq5fRS}0yA!gBVn{8 zxN;6zUxQ?h9Hurhd^d=w-i2A)%QstVIyKgGx1Cy`xZ8dK!Rk#|rXE}JV@_C}i-P&5 zxH4TE;7)fP;TjNs|JjSi^8vZ1oTxm?{gb11^#`!bBgPB)V_I7s!27kp-9oA=p}wxv zdAQRaKtd-7@q#vlS4ajV3CXyR3{qT?zRQcvWGbW)+<*yLP*yg?ae$`av)O#$EO|hEm^ZWc=&hOmSXU6P}Gajet z>&MXPx+XnYlfPv@M__jBgtz8z(;_~6j;L+ZI`Z(ySWZ&<(BYmiXzKg}CvpAPcZs}r z?>3@sEygcL7SJCW$qi>G*3LENZU4!fvGc`y^3UI7@_iZ6sTXaFSN9CVHg)r-V{=Cu z---3Ez738d`rGz;{4t7sY~P1hym({|P6Bu*c$on^{j&))eRBWcCXh0`>K6g)UAm%Z zE&pu)!*wPp+a@VnUFehi%3V(KKe~vWn}9jH@RcJAvBai}#A6$@h|IA&C!O_wZd96R zuOZ*4jkz`*p8popxLkfD!Nix8Gy3u`LyST^>IKU=s8+;YRnExvf^(uLAHC&7|H|P+ zZRL#KJYUY}85Z4F$1lQ@<;w@yIFFw_h5+!;rRQ~{-X$_;AYu%N(^CI}&-<%(AL4h} z_PcESzW<9*G+U`77Vge@yZ6F#VX339&&fHl^B-S{oy*H0{WL+&t_;#elyoB^zx~E| zc;$+&*cdEx+jjYxbKAvrqTizQ zOzceN8YyIYoIHEnfdsD$@Gg8p&4c}}IR~!&2J&9Gf&R2i*NMUSl^DEyOZ_52 z;Nh0C>A0^D--~h5?!K54kee7BT)j^I*b-1KRV#E&@K@gZO-Dwx-27>R#sh}wLP=bZ zjE#7}OkGzIgk`U}(>_fY=*OdUOC&zB+ z_!OQWRI9N}8P|#9`|e|w7h>DMiKhRzj(k3U1@sJ4%vb6r zlwRshY-CC&^;_Td%yq+n&=w|eeOe$Pns|FZePh-)ZfDK@M|QLSA@b)&#Q)En>)4w? zEaHFdB>eovKt_D?1=58Tc5&o2lP_LH|llztb6780Z+ zfk4{538`%-jU-ZJU{~D7yo?O@$_++?wt8Y%^^gmBpDcWUg}aWfe4tnR+DlxuwyH~9 z#AbuwX4DZP8R!eL58Cq+;-4mym~^{{emFLf-CesoNBl9JirhziVmBo1EOf+WOj3Go zv_?xic?)g9VE@JejUBTN9C_z`HqhFp;Q0AS?@o2l^Hy+TY_GT0*h#T}_h9jto-T&M z`Hr74$nV}MP|E`sTJ0X~D|PG~9*8a?g|P4( zx6z&Ke?xTAbVE*AWorC{{-&eJd^8YFryKH#Jf4o`Cnr#5Y-jU>^PEU`(yL^ zRvw-hZ65CF?HfoY2qym#0{Z_Ql1&bxOLFh|*yZe_|GfWw@?QoEkiU$7z)a-7fWP27 z??S_!#A+N=&LdU+8NAo-zxKH|Z5o7pMjAg%edIUHgY_NzeinlK*YVJ>!DDiW$dUhB z^C$Ti@DacK?cFaAy@{?jXUL7 zALD1ZfS2=lJ#PQWXFu!WPJIF1;sXyR%``ljE(M!sqARevWgofztrP@VwvabFpqLgL89O1Zlys0fxh5^ucW_bPO0cMW-Il@8(@D z&#Bvo1-e-b$eg0n0M^C3822g5d9WrvKvo{WwEPU?21uB|sn_H62E6!!UcJ08;OBWS zY2jvkJ}+Ra4{isk@6=qOeLxp;$}@gG;P>jlb-O)2K0wCsoO=C!KjY#3WN=K8XFXml zl7QOpVZAJHML_NL`#Cq`1q?l>9^TDiHwXG1?GzY{wFkS$2$I97LK*JMY zJv;$BkOqWu3K{F*NVv{eT;L%5ff#JK$&a!7ZY(I2lG?^gJG621Qk8_JgZ6ssIpdFz0_1T8o z?aHjf(__6_c5LTsDun|-xPKlwUdk;gLZ)0)<;%u8_72C;GW040OlR_GYeeTuD# z@v!X}&uIWa;COyFxV7!=yU@NV>@;d889N4dICt+sYG0v!K+?kP0nRa%&wcLX&Be<% zvm#4<0*R%wb1fDDyYdZzt!%-$XA?*8T~TwI3V}{}ivDI~snLw7(}C=Yeh>c=-RZ z_byPbWoLO{zwK6cyPIyeUu9!;chOySRaJVGq*A+Y8`b-%s*>uVs=nRVdP_&o(xa-R z<_0iMY-i*Qwy$}t6$myAAviOz><}ig2Z(WE$N~pUGGxqTSeOt4fyKlDh5<5}Z|{Bf z+4~$F=}0BD+fLdn`j*bwXYc?2_rL$w{`bGPVA~3-oxq{|2jj<``;)lK=w_o;g#x%I ziIb4G2|Vv-{SjkVuct(Ry8T;W>C1b)UDmv?qX)6(r_JJDGrH6gmUphzksRU+O_M8O zLg@)*8~+UA3q1L!n)=YHBm;>Z2BW7+yYf_~Ci6GS=`*`BIX!1T zPSa}+s4+?698X$zC^@Esv<9Z9Dr@m941Ki0V)Hp^_*l=KGNThdQVW<(3Yzi3X)K`6 z<}+{C6Ucs>&*$R=^6nY?ltg6u(~^p>QzwrH{wwN9#PqdJJqkT*lR4tSQrIrx&;AWMfz3Q zi{}k2rb$XFkUs$l*Ut*D+MMxBJj^#|Bw;BwXI8OGW-tNBHU~mwqQdi3ypG@ri4aca zQH_V$1~_)XYy-Nxq8SKxqd!?Wk)M$ApEBr`p;Y{53?C1q;ujY+#QES>DxSByl8XQ0 zIDwq#GY1lN`!=(r`s?{*a+^Rr(DUH$j1#qorwyE=jn(OTWrBjWc_2-^#PMP;_1iVo zMv?`fw)tumHbFm~B6eCw??^+PF7>|znMYabk-Wz765?X1+YHyY!km{MX}~BCK29AF z8~JCbZR`X}ldC(y5(I+uvzi@drzvrW=S#PhxN%#FeM+@cr$v^=kY8zdP@=vCNQ^?% z+RvJxB$%-CjM>(cycaf0Pa@Z)+>9ymiDB=_+>7k;SB0-Ph`%}&ZkABapPV-lh5fPT zt`-Cl`wd(G4E}*eWW~pr#cM%lV!V?IzVAiBX_ZA>^b_H&#@-3TJ*?I@)wB!A-)PjD zxV{1BCUCeWm4;1E?r|XdQfd5$;)g09rSwImRv)WQAyyg@^g0de$Kwa&g7Geh)@x&h#RrW4O=yb^ErfcRqX7eKzfB4?Z%A^3!Uz{!Dnb@VQe2JY@4 z!`eUv0z(E7i()e^&daQfg;6A3I;IYxvO;7(XeJx99jMB>}&~J}ZoJjbLx8G4PjErB#NqD{zy^n(J(}Rg$34=ku z7zL`k;Uewpm$F^MokO@{=o;+Q1K7Q!WEC!zf)&VGkWduQqSR7}@fK(7>3246 zAyatB$$M?%>zbJNYj$L5Au|s)J8nIr&HynwXGqB?n4SQQT}+DTS0zafh^MHr4Huz~ zQ{&X=H}xp+nT=ZXnh6A-KxaN^F2%cG_okCbnJ2a`DGtW3U!yxGHX3(RZ<7R2b@du1 zmNu=`$s&$X5~tf!ge-7#=-4)Tn7w*4hB_8icoGdGnr|9txHFGIRK!%v5*izd^zKKy8C;V4W^b{${ta1U7Jh(98{}eZD@Phc_t>m=p;sT2*BjTU z`iGh%=;)uL(|O`bTJz?A@%r-$dAOV$WPJb z+ux*LURUSSH}_Bk5_&zGnBg`UKfbB6IJ%;dKpaPJqhPZ#7M&*{G^P$m!RgtnYhVeH zQF<8#`g@3qmf&E&O?uSt#yw`D(fP_WeWxu^YQrB4vo3i;PA?VmdTbUMuf-P6tWZ%h z(tXJ>K?w?HcARiNNkW?aO(`*aXOPw=xS0hKO%&amI!{OjFFk*PFs8o^R>dHcv441+)O@tt zAQ!`R%-)*7J}_n9HG-`#fi+S$SB76VL!C#vJr6EK&0gtc=>Im}DdanT{4AQR6du)# zbn(`N1bXBiXBY4o943xmkGFahe{Gy7-Z>{`Klhy`;ENbgub7vlfk=p>D|Cc&!L?z-Xp>!L&SUDHRvww42gp@iHpv!+1B!mN9seH7v)dMoJ=TR!$1A@%z0Gk z9|^zjPv|EiD%ANI>@QYpBydCaPzA(xTwqBqo(3{%u!e31vKyfh!hw5FZYm?k=jQC& zbe|mCh~y{PdPTiIRt1ds3`tT?5n&`rPQ`22Xz3Bd%-SK9<7i1=CP1?MkQ&fUYJTvK6xBmN9?0eJzQD47|+kZbJScyYR zLkI&+w}iuB?XB?Z@CxRtise7Gl|uFG?Ka_Y60U1SU7{SHy6RW zXByZY-D7kd7z%|8jEZniueo}A-<2hR=-%22M_$CUIFzE)cxpNeXsdWjSw z3+$~2hcvN!SLs1f=vEL?0SaX*&ghW!2)^-y&5V4wXN2CJD<+S}qf0ja> zH^Ec7ly@U@PQT<435T!vI2yGmC%$h)PW;lxwV9E~COC1C-r$U*uhYUbjuZ^$#k~RYzBf2)a%w_(TXFgl638`x_x#F|VvxDxm&N8ERR+xyw z%I>^N>qXidGs|E!vyHp5CxyK_NcLoKaJyVepd$%!oC8MaL1PW&7s;$oDF4i2F>;&y z_r;X|9Q{PH$$$2w(xg}3;KI0afmqCBEwP$dQbGwUilwG2Vr62Rwn47*VfRt88rDec zW0wYr;5{+S5d;$th+&TbP;(<)P1EhuIOenq3d52uQ6r!R*cImsymRhvZCWNxrqoacS zpN$|(1xtU7A0&lAM=cQ43RRE3#cr0k3xSg(^qNUH4<*%kU`__{AWE9Chf5;0X57hO z?PlzSTRKNWE?UaT1doN(`}OxMSNhEXtbX>Mu$;aA#Y+E-Odcy%DtJ!PdDq$Y5m9tS z9DOHMfS{w0sUF8w63{&)G)kgMlJ?;)4AhUNc_#XFBZ;EE&9E%oz*bHP(aBKdcZm#8 zgZf4x`mEv0frRK?Z~hie96mA?qJ56J^LE@4)I-?sriSftLfB=Y8sRb%>?UmaaDiyDa!$2B9{^qmHt@;3-qPAK0o40F;d z15c(+V0u+`^WV0lvW0H;bbwNC-TZ`6H}e(KrJo0Asm%aokRKcsbgvO~Nk@OyL`T>2 z*;4!^57wDbx!r3_jq?>*pidW-FAapR zZ0_8O2O0&bfcvtcn}N);WkE|01~t!KPd76`8VMiq%o6CkN@Wf%`BM+*ACD8zxAmDf zZP-q~Rwl@Zh2G^hf9%dXumy$xsg-~v0upBY2JoNnd+Uh)bL7iZNB2VK8CgfOwI!>W zE=@gfdu_TXJ3l@u8c`z}lD__t-uhb7)_Mn-I?}prIY}26%yscg9$6cA6HC>}3q5u6 zH$I^HS(~(+wf=hdkW3oWyMq6Oe2+bV#Rq>1XFo(#ct+i@DWGfl01E^;KgYoCZsezC zXiaINQjr&uY~n;awsjB-###9m4ufPeBsB!bJZLg;GG0d&YS?n+dvooY#Yzq0|*h}EUl8Voy5eYDEc+sG==%(XUY^VXg-Cc)jO(a4on zEKNmQJQ6ltuPlLo*s$_A8ePxz2o=VOP}fb199`+;(3?7snTP}lb<@|D=zj}GUy~`E z048trBzW&wNnlK#6eI}ero+aXt%j1CG*}|Bi_jdxkn23Bd0SQ<8$|XjQ`NJa$t17s zy4H{0P3Wp{c`oz zRC}8EbL8Z#wt0)~WfEX#C1|)-rk6020y_M#YMkA=TqP${?KW)q#_j9|1^vlTcI1@m za<(Z9gFz^Ebtju0d8Iv(^~%2CT%>L$0}yr}2fw{p`iQ!qIAw~8Jb;|B5Eu^SdWb`& znlsHhTHuszvQk3PWTd3FB}-rqmcS4Mltjp|Ut-cfZ4d%_&G4W+Ih^zK4>dNTHveZ0 z-3_ECN`j#{I8;yE4T?$F(Vr$Do0%HCAHD;DHV+&4O6s}mmB}bN!t~u``M2Yw!PA5B zzJ$!6Us&PTxreMLKI!a-ezN~?oQQVmP%(v)&30|@#VwI!n6FI8(x1U3=-y;5P9#Wr zwJ;e~$8gq@VSAh203T`Pu~XFjWuJuAK+R219GI{VNWxhfSNGVY{~<~E^f*cQAaoCc zkxUavFzcUN0o_;71jh;QGXttB36+6AvBI)*XPe6z{G}H%TjNBsYe!fJnL({oNm&u= zhlLA;1=Pv(*50Iarkc$L-A~lf1+FQW)uJAVZq!MBsv31b*$h}9y42MfHDNB%qVytp z)*E9RPY`~bonr2jhAA{#_9kuK-WPw3OFI4AnT#)dimu?W8WXMyi$t1au?at^Zo*@0 z(8l%#S&aYI%QwiyW=PlLsFy*qezv$(0)K5vbG;=5#Af(!;%HJSUTz_P zhUggOMV7*eGAMb3vQQR94SktS0zzxmcnznr5PHLvXyn4R8fsOtFdVJCf@+(Ua(0GS zyKGcYQ3kiU6=_{c)Ud!lOc^)4k%4Pz3fo7xccgS>Sw=q*Mv93n&>>Q`Nvj%w(8~0QU{e3 zzoHJRxHje8T2GdqwyDF|?Q09)a}Zzq+2u4n3aBRiF9|NSucEvzjT%#yigHQ2%nu20 zeKblJVy=Fi&DD=ttZMFIzhBJI$LS}Meu?ga-L+M!+C`{sD|}`ep?*1b3mc+rWvdYk zYMf5;j36oPXHrupPgr&?DTx6ZgFioI;7`3x_Bs-J1gxCg+HZ|^R2+WB&`Dn==h?p> z5LDzqP`C1pW^|G8GJkK0%3~&!aQBgSfvO-nt~9esNxhtL!DE5L9RRr-;0OcJrrT2>J+=t$qwfybQBSwVity+IYdYaz+#1Cm?;t*N{U` z>eL$)v1Zi6s?n0V=~wYfm)U9)q<1&JutTx+g9V;3?ZD z3%H5KUX+6G-YdW<3AihLj-xKv{Ig}WM-vU!fb|nX|%dB4@JysN4dqWF0HUE^+Yz?q@L_r zPt@PzJ&8l%=;`Sfi9M6ELD2{YjJcTu)m$FMRa8&xjM9b11j-K+2AEL(F8=9f_;PRa zkAy7vLHfxzvA6k?2Hw}pQO&zl$*uj?Xh(J7rwyG9BvJoZP>};MnzzY&;Sx)aim6Ab zqGkF{kK(@=8;W8f_wqI+$`JlCM$BVBkNS$Z;SK(iUA_^9#u4R9kmv>l^|P?DHCq8O zj&{0+J9@}wJ*sUd=zTMB!+9;6s{6CGG|~O}MvjhW8g-hpOM#*~4Pmkx-l!dg@MIlX z89eNmiZ@U%D&3e-1CYee>InAY4|O;-g<K#0Dt{M{G7StCeOpH-kHZ5w5Br71YMFIzbRMQ-mD0RAXJjAVf$R zE-x8@#*&H22quytpdD(xu_>=r>UfNiapw>KV&P|$e!$lf>~&iX1q2v8$Xh{RlLV`4 z1XA2|O?wi6h%C3oEayC zHlb9-Fdg}+39S89iX>X)8yn;!V*2MMBj~2AFE!T2Nsald7!nfQuJ*kN{sU9^x@LD= z#fp(YAF-oRa9EWsB4P|_I1Ob>Nyv<=$5F7F8OpTNgivR=?@S=H_LU@YC443ESqBA# zefpq>^8K(Xb-@ea&wn!pFa8#h8WYO<@XsK@i~mo^_wS~kNWqI2N$Fo)h#4=(i!Idt zB_1X=Fi~BtL@!K5I!dEKT()MFv9rN7fh*Uj*l4B;vhZoq7u5$r#tKWsCwqCz;}}L- zBID@~H2jD`0Go*}lQwVZiLqD;z1x_KEBLoph~SQAwQw|<#jXwM@33WVrtDI=ld?&P zB z_rMLMaLDF24sMdt+H5bdft?jZL8y<7Z)}s8JdtCvHO8)`RWsIZ!NmV`fW>2MqqB`V zcLQzBoF#wjr|=7g0S1aP-t_@(-uU2y9IcW*GhJUFRkIksep{nFZxSQ&1d=vD@}|jXTOC4yeluDNe?b<}g!1PW z6Tr7Rp8Vf6LjPy_iLe%852;7jw3`5^*n&vQ6md%c%cPTomx*-aA`M9=o5(gEE2ZbZ zh`m8BSd5b>ek zS{ypQpMy4U>&-3_JpEdkjIAg6otg^5UwWxEJx+2zVaeQL^v(c{O%Ur(R36*VqklIR z6jvnlZ#@aVeVin?Yeo*FkY6T9=)t=)!-2zJdeEZd1npZ%rcG~gB8Ki*wX{S@6gN_L zBgF$ff|+q5_^?3^N*Hy$vP8kcaBGbd@UBD^AtpFSgYWN#M3+#aKP}M^gtwT9?;R&X z@93*7kEu_i2Mt2Tn}$pa;*S zj*0EUeB@WPmgHwZpMEi#&V3|K5^vmA-U!<&cQf}M*kQ`uDL4xwHgTN)h69PxKj3th@frfcx_XcGs_!zM17~hEE4t zDVu_Zd}z9y->l0l7cpZAm7YyZ&@dB$d_2Cg(Z)42`8DRb!nY=HiiO;3{YwNRO!p07 z*X1ei_nvJ_yDqW?kv^gHLT6UC>*%@eoBTlQO`^ANlDmAm?7Jbq(&mwBrpr-LiW*T8 zc3$i*ShOal9yRK2mR|Cx1xYn4Pj?gv(eGrc(%>)ICYA_=tATmFnRxw1F`a2lxg8#3 z^Bbytd83xk<{H!5Q8*G~XEr7WrV($_(7QaiWPbLV7S#-OyL#E7uTcYuy0>gXtWo}Z zza{_mx04SE`!PFNtSU)6{gImfTu-afWHtVK6UEbrti|3O^b;vCf}pRoH%C;FO_xAy zRB`lPEo3xPgPIlWpxodx!^m zY4Rh6ZhDJK;_&_oad@XU6E$rLIT%ziK4CdQ5>^8=HbK)&S#lUSDbOZxMMjX|yK)yM zQ0ph>9>Q(hTx37=lk(YdPRf0ZttHI(6B9uDlUEAky?ew}B7rkx8jEQLYrEuLGOL%h^W+!s0a(LQ!+8%Aa0Ox)W^n>tR*wlxuxXp zWhs5VN7d8wjh6K6Z;>yErQqY{e`|u<0*=~fiW~Mf6gvrH&9zW z_})>${~jawk~QgFC8f4>CR_#w=OhoFq#$5{OxnnmhQ+$wEn=uo4e+s~DF$i|DZU7V ziEqs9l_9NzEyL#nnQZSPG-5o?ho>f6*QOnR%YlPMaKE68Hgobr6O^nqj0BL-Fygb$ z=GBi<_bHgYC3+n;*Qh(-*Hu1S1l?E+5)^)bTLh5&2sKaT9^nrL`x&}WFwODX&^Q?(ep80r@c~`7HAHA3vmu%pY47gj!3Bt+7CUd;h4MvGYj0L&ApVI(kSW! zlOC17Mp+|`>+W)EStR67jSD*T#f0)v13bN@i}E1S^*e8;m6UqSrd(C&LxOEMK2!p| z(_+RY5G|XUVBepfl1H;jJ%N!qO9FRXJ&uCa{Tic7fJqNc`W{jp{nLRNMv5TxVuraP z7ouR_VZSs%Txg$O0d5IwBKo?L`=79tZ}M9#AWUv)dH!YWjKj!4Fin-*1GLm|qfWzb zV7&hRPk$r#BVW}F010$0O+NNZ2<;qHaQr+=azv>JH(Gqeh1Ei3d4#*vP3UBt)QUsx zQd~_$x5RY87ak8MxuF>p`lKJQ~SWIfNH? zRV6*Esd_=6!l`>wr1i;crILDb&c4esRZ&X`mN|M&(c%jvUdOLnB9IZ29h>n*n<>&& zSp4Mh4be5U;6Spa9lt@%Sn@GSClD>C(=%`uNFf2-v|P)gW&kZ3P_Gne0R-kYpann1 zgFi`b00NvXT;{+E$Raw4d!9&jgi4K+Ie@oON~6dCYA+Y_1$GQ5QLH2jBqgAcPUgya zC`w_#P7X4ol3*CDJ(kYz8W#PKGUJa7pZ8WWlFazT8y@E-EFYdKkT;4trD^W)4guENa^25FHK%=*SjDiO~BpY zWeH#U(*&jdq?I)B%2cWjAoR~0k zmk%h~NVD?%Xp&LFVAP&Q!D3}B0$M_5OdXDb)AJ*03r#e1M(xQ23u~iFlIy}U(TCrj zWD%$oDbbm+lS(&4eP)WSgp#ghbpfbBnraAB%PI_6*x$0U2%r4}qL?NW0ldJOq&zLW zQYlZu5g#JuX<@07qSS*YOD}99#tUv-Q?r;*BMLQ|E@?>#{Tr@kuHJ!0c10oTXF|zY zP@YE|eoAQmH2p;Rzrh5!~K)( z^!4(zty)83n0dt;JYdOQU^hUbUq8;gMLn`z162c zgq3_2XXS7kE%_szth3j}JcmtL+QkjmoGKmi@$}}We40~! zuJ+SRD4)bj9&u*sS@~)0k@9K$`QmNmXW5e}<)7e>&V9INCmk={R*-Z{f2B~I@V4?a ze#O=ho0^4sb9=o(w=d}P%)8wlx7XvddFO(j1=svSU_P+m_PG2Wn`_SFn-GzyxlWD=kxo$KJ?@DdE5&wFZ%Yn z@Y3sZFL*qGg`jKRJ`Wh&Zr40Ubo=LB9*^JdcFzU;9v}Yaclm?(Kd&R|p`^%V(px3}&jT=rAwMb9YTt1*g!(S93EyBO^!$@dcq=PtU5 zIlTpoU0B%!4&^@>KknS0#GPa}8?9>kcITcX%wD=3@qX4HF(ma|FZ$~&kk+$}3Mx2L zBY74U8UE(x*DN!VX(ea<8)53RK8Twl8``1|qoFO{pbx{fyu$t+WMA1`Dc#dJl8MG} zPY@DCy?b?^POU~jKT?anvIr?6r!co^YfMy)#*VT1S4+Hxu8{P z(tvC{K}*Eu%LRUEDF+(g&e_*17oG+9@$jYE&`rfL%hA7kC&(En7pDc=~B>-*y;3E z0aCL;fAbzC0twg?ir6)9SS50Gy5hxB1veY00e)D9X;LMPU#C>ZaLT^&j2z5<<(g6rWcq9`SNU!eg;!8uCz=EtkXC5&H@ z?nlA*9sNxV&1mmfG&F%h_%}wsjac^NQnJtMEqj*UB0lT9ftjqcs&y(kJL(&5+IPD! z!f6=9h4DmmF3b!$c7<#}dpTZ8KWnen)6G=HU_bNiiK~1nsCt#JLF&L0gSk$>AqYHA zKM}4|=lep$oKF_x$g)8|zHZMkC&Ny!s$^C+N&_|QbzIv}gei`M6_ke{xgm*jx{*O^ zui5IzP-ORp!OTvjN$JXbnO;^*T_Ns{qOL@|jNJx1H}37#CQNOlwKLMIb1badm9fAl zt-UdI2=cFjmduy$ZOfXp*&R2j1RssPYZENR!tAx4|BasA*m{;&?r()zh(O~3TI-K` z%W6^+cODV&M+Q5@7Dd*g;j;zTxB&tmdv(i~E>QN2-wNFbWD5C-^)@CZ%)#?F)d1=o!GMJ9s49;0+2 zXg5kPAmDcxrd%JwG(^d%R{bqOz?S;4MVL+bJD?==vGnD+_GN!Ed!#Jpx^`MwFVks2 zjwE{Kvv~woG|hR1Pc^bC-$wwPP;L)Ro_{CE^I;9izEtJpk-i+1JXykCa2fIyqCgSH zVw>&AFC`hAzEnw+Lz zxADY8{LgG6J~{M6{I-~gpBQc;q%Q}Zhrf>ApLoU^yh{~`ga7< zKR+DO(w741zT#B*VArxHR$!Nz?b4gsv&{INCC2Y8Q@6AF7LpL}cz^$j7gW$@};86G`9X55QnFh>iW1 z5<=2C!U!mtL6eA+Y7%Hw$DR+ZCv4l!m(y`leXX3WsfUk9ESkr-nSn$%m)OCsH+9}U z;*gTHGICcC#eb&qmXx;KmFa2HW_obMwTbHt@sSB+eOC?Dp}()6Y1NVy*JV%I!Z-8R zr{dw8FXvHp-I1KO^K%$GyUVxiQ#;e*_JhG1Ysk^v^@pD9&yrTR6nyD>v`sU@s$HhI zhn4GV<8ibFxQ8=BxR!Y0@v*o12_+d#B}Yrh?O`%}!vz zhCSpXSj^BT+dgB(*y|_*gff#}XAmC|Ed;M_a$dS=+$IPm$uRjTIOaJ6$Czz68QbVj zLEO2+Sss7sxnaZ5d0%$qWo+*He>E211JeT~?;_N=;zSF$IwN&6G{L0Zs=L9G5*+mB zmHX3A!QJ3rJ_+=1{WRpqISq51DF<6862`-RX+j)5+7HT$hvTn*s3*jCjFS+Ln=X0@ z-yRK2(CWYFBp!OFg-DS`w`^(xhn~ETnaC$jWz%rBW^3iFw=$>rP*I~au>Kp zBbYsEE*T6O)XP?}piwT4+Ph#PA^d1#IY*?3Hc8oHF&$zDl~B=#)a7Q$WjsQ}Wgrs6 zs3!>)1DMnROp4DbfT3{$=(&QV(4=hV zDqowRF7#EeokWT4hqPtCdFw6tobVW!+5M4nJihoLnMGdw01 zhym1l)YBpS5DBt~?Xw_Ajq6fGMTh{=Si{EC z@t^=NL`9_sW$eVl>*$|@GcFCBp_ecBQo3-qQ-A5_>AMXb3=}eWa!s2Y4geLuPY*T& z5<-K1VS=ie$mY;+%T-T~w~Of(fANXuRO;VIPrM%(C-L5C!FdwZESs8;OHYbBeH>r> zrAO+M<3y^!6kY)k%vEKd1NQf4SfEsX~fAqD%6!GAc8i7grTlkg`x70 z2@GI9LBo8a&7^WbW^qD^;GcdXjvr@S7wdDEej-9ou{-XeQ8Ak>u4G-hk*EK=^!xd@=m**54# zGY$ochxT+FQ8t9y;6~I*byamIG=)T{G78XPPq0K%MNy(PnI;*YHoA>jw@=|5AORlH zGq!zQ#3?#<=`xZnsN5$Mz=1kreuYgNeR|He3TmjD7{yL-E)$1}u{U0dqwXDC6oLy> zi4hkZ<3za4K3SZ^DN!{YRoh2GnG}`$lf~IQX+bt`@wY<$R>7wZ2u}Ppalj9*&5WjV zHpa#YLhN+L*eQ7aJq7`0CQD7)ywQv?B_Pe;n~bNIwD)VQ%@?%vL|d=a9;q1sAIKTo z5G$7>MK!DMN()KC_lg~u5TySENJjqhIF_-5!g%@{38Qhy6d9wj^fwAdp^*iggw7Z` z8wHmKBvC6trF%R||JO$n-x5S4c4UHsUP#?p4nm##wnEUYUD)s9rDWrw1LIN zTX}+*8sQU~O&X+6Ba^Z9WVss(k`sphttZVF$4Q#ksft(vU3)YLpo#>jB08ap<#)yj z=$p)~1Tkc%R|_jN`bJ~^beuTcIU|9KA106q4}*IPazPSuP*Bpm#AfbF$DBqKqsY=R z!AD5PL^K0d)-8P!+77HdK6OKUq36U0zpcNSZxwEjd{%SM1uB99oomd_SI<0}_*igT zW>vREcvtFI+-BB|ID35ir|X=DX^3G4WToC7PsE zIobawwaN9n_a)Lj^QV|ELbmU1><%APwX48OQV(t*6#!}8IERGWBUsH6 zqkz*iEwb%VY*J^3mNsE7&IP(6E)JY3oR0$r#JwRk838qQqR2Tnnm0aY+eKj%9$%zs z3zEx4+P|<9uhru?niHpNavFz^_2N{n(WpM_bf$`P@nmVPQp-A%`3CDTnJK+Hk4rWe z0&d?tDgcrz3@J8n@@Scv2Ea24BiSK_~DBRL^!V_F;%Rmaw)3BCJs zgoKy>YKv7uX^` zS)j?USM>C}Uh(TWq@I#LZAr=g*UmHvA=$liV%CKn*m-~@gdk|1&<@S&o@wAHpCgN4 zLiq*qk7O70)txjY=)G||286*jeUH~E{;a(eS4v0)aH z$7&%-4K#Yw760!>1@xmvK&6FL>AjHrK@?L}SCPYw!mp^l>X|njVj>I5bIY)rJbX2I zd#r%72bp8^c*>a~}hkTPggfp4|67J%qgAX||vEPL0MK1an)P zzvZ^JwOW_D77|f>)<57t-T7I~o!0^mBtX+~=$vE8uSU?JD-saTJ^dmvqjENg6XB_| zh=Wpm;Ep>`zPIoFl|uy))FkMkzR~7Uxkl!2LYcxp{p=4Oc=-Eb_P&jNA}O5A1|0o# z9EZI#c6*a1Fw)IFvRj%;<%u1IgcV#tNp~B`#b(5tPvjdH`Fa{ji}3%+Zs_c8#6C57 zqf*7s$!Ssj6bHyju%V&(*3XSHp0tcc>j%X18`goD_hi!M4SJL%h>UMc#xN{bMlNl+ zsz0@9rW$A60A^qH&X?;?hzaK?(B=A=+01C;bxdEIpdnUgFI!y#fN)$_K=hp~AWAh_ z9(Ez+8~YUfjj*T|2DNOb0Z)k)r`+9}L{`DiPyM(i<|MGSG_KeOU~ybvFJHF^?BrHD zcpF$id;w?&6me1pXONNVg>Y~F7EW{1urF@*!y00FU)YSdP2vnR?UrN%h~_uo@Amq_ zjU49?^cJq*V|RDze#APCw}YPf=g0SEFL@oFmpu4?*LAm7Qp#`dHzU&e?B5P- zer8x|S6HoWLl?bSkr=SQLJZjH&CmU+#&sM7x>_GLu#tpI*DFi#A2#qHmpWa~^(*Q_ z<3#8UdcK$NF}^WD$4owRa&c=zH)G0A-UITghmEA0eW|4Qv2o({puBn|tn|-KaMHos zc~qSuY2EW#GJB<;sDC_8gpAXn4W;}&GK{=bq_ARFP*qG1Z>2+6`F?4F+=6a&f_`P3 z_*@%YSPC#Y!+fQq39GuO!?kliUw?i+r_vLRz7+NUYn-U72fVZqq!V9addvWZhNj92 zT7p9?Khip+ApfUvg8YD_l%(me_L-Pqbeu$fo$3)wh-i&noB%ubohD#fYa2OqMNJyspBli!GDmb`0xtJ~??v_sRx>1}n#@wsG{3(X{6Xc(vwvvBCPlK*F?~`yDr8=a> zqq}m(>mW@vh^f?dT1=ExwD(JYs>R*N1ggMm(caEqY6s1+ErL4OT0J9p#-yq$GigXM z(kv-=M9xlOmQiu3g!8=lY7sZ}(ZDb+Pi7ZX(1U4N#7oI>GwnE-c0ZBVL##2FLbO9_ zo*~iU`x zk*PJ+M}_is+``d8*m<2gwS2{CzxAAVI!<7prrOk!jU>ts`i04am>GRWlAz7j7+F>V ze5~CLjh&>z-=(giuYA`J4!w>fe1cbAjO3hw3EjI45Ya}0-Z9Kd);PB_)MqB}3Dw?f z+fQ1Ll0+5N9PYR6T#uhQP@$JEFzJZ~C>8F12TQD<7Pb=ZUt82fg9M5Y?vJxwBkXLG zQ^U9z2sag^Qyi=wZ#58=A0ZN8Liyog1OZLHx=S&GOOVKBJG=hEjx+wEpppDYgMbq0 zAC5?*M?Y)^j35##mCLqJ^i_0~pJN30?9c>w@_#iOQxL#otJ$yHcW&hB)p#=fvTM$r zEZyQRBrRU9e-#&pX0Gz7o}mA7M1p#L+YC8D(3-SYS&JtNY3!w@(x?#XM73cFa6wp)zJAs7RKUzZ{-#SAK1#m;O)#Uj5})@fHebv ze>qM7-$<K$L!{KD_hCCv^i3;MKai5igrE58ySN@QHxr5r|MXL?JaKGOaQ`g*L~?Pb z4l1NPKe?6Tte`5fnr@mrI z{r(BkhlKbnL0a&Pw37c%7TzF9o(Mr9>yzYL;o5j?6XEvq!WcaRxrKB;h*a22*TV1K97D3;Gk>6wZav+-} zaiGmNADP-L_p$ksP~uOlVC=k}&oS5h;(?x5KQ>N)yOcjihZEAwJ~V0bh656OenUm{1-y zeBE2Cuye={%9zM!jSGS{93rY|?xEOG*{NT+nCxtac zs4+YX>h)tBOZ&a{GPU1(p<`y5O9v8F1T0$VL4Iyjkn2W}CHwt@=P zg8We<$kKZMdqb}G8^v^{F%>6=yU4D&?6sdw%fD*VH){E8t}%!d@N!q)-%|>F!^5ec zvkzO&S%2B^F*0R+WW(#J}F-Oa8h?ut2LW0Yi16))ngy1iZ^_n4!`ILc_FKv0n$ zizNzas^&aHIFh7qv8W;2I3BV^;s=^hQc~LC{Js$xdMuS4-o^Rm1Zps- zrT#K3d#z%R+q|AxlFL@lX9);u{CLhDCP%N3y@F^jsU(0>d}JhYyD-gtET^+bKRZv) z*jd#&l1!J%XEHc(O%m{EQW6U?i`+N1GmfY=&LERJscGl>?|=yJdCnFlo9$#@iU2{1 zE7F?uC~QCo(DOV5xCUiI)Vh^vdefnH4R5sq{BV;K7>ksMR~xBE!sGg)_3UUHD>gzB z@+QfCA)Rej_}(+;zCmg?)=3HcmxCxiVh`Et)pRlsj?Ex*5HrOHh;!qD2xQ6#O88g3 zc)N_-6l)}(RK2*FvNl05Uj_@HGkRYZj%d@HA8`U*M9S|!Kr_k#l0h#$#IpT!vU(*0 zK^NfaJSau`wC!&FL%s0)uZHe=2PC9p)4wQ00tbf%AKuQ02@Po}eTD{Z4M3qLhY-$3Bj);Aw;}^zBxu*s&t0l|^ zYHotvz*K(W6*S=`JYLaZM#2BB#0nM`w&Z3=(D!L%GWOt{^&iK{Sx;CxMG{5>G&aF( zV6J**K=(_6Xy8vw;L=gNGtjZ_`)0;yravyKDoF05gj|mXCa4Td;uYfMjqIFCFpjCi zQE<8&uCfFX{b|yle!B0WxwxvK&VJ}MpJSX;eGjq1BpBImOCTSomx3AHey*~6yw#)e z{5a8==o4^|ubSRW^|ItRXS|PF z#*J+ehwhc8Aq8Vde3qqYh|g&F+B0JKTEu{d2wy)PLF5!!s%khu+&mKrug%!WS#etA zgfF;3n`O8bv&p0j#z(M<&#<(an~{^X>XSEWZMw2blL?U((amb zQPR2RTyj57+GncLOrXXMot34XD^DO0@V=}2J92K$gN8G9LQmS#JMRlF1pJ1^Dm=J~6}`U$geYwKMD;+H2Ru7)~e6 zIxi7Bl?UpjxIf1~SmGp!%r2r8RTfzmBIKv*fKo|UGY zE+soZsQTK%By0gG^xDFFZDH~axmR~#YATrKPJGlt|8`zqjF+=bRL;2Fxu=Y6$lLrH zi4Q~nq6+Vq(%KF)QOsQy%(p>&!;t8GOmLPQ)D>TWBJ-`hF;ELneQ@Ka@gN}2rM(QRv^3Z2c;?Z<5okZ;zdxY6N;btj;jli{ZncTUC z`wqCJGxT>Fy_KIP^qElp7YmYeljkcPjk2GlpNPHt&KFR`niRXiZYf|!#p&~WrCBew zSaG^$8MlHLX`$%7=lmK%b`LWo_r0bY;T^ za3Y?_7xRr4?H^?T=p_+xK5vtk*q&u4vB@@e4Hk?21=o!GMKaQ4b?S2ZI!anos*+gfZisT1Iu6nq6}H&ApRf4cFf2MI!rB&{ZpiRU4W?a5+=B=1!0DCZCGu{)hd3Q)a*8%Im|a;0Wt z&Job83%R&AZn8^!KK{P3I_{ih{KJ{gEP`dyCcvkF({w;?kkGku7bZ~a^_Ywk-CS-Z;lcBp+_e>PISJdOHoK@n7lLre_-M8fUJTvoI1M4CjDC*7?PAT zGcY>uIY3S;zc>q?0vryOTpL#}4brMTY7nCIHqvBEah8Hi)I0G~Y?C)i&Fd&(QO?4Q zxV!;l9DhiThW831Nd&*r=OEb!4J@Hw&G#`>I8X7P+6+*m@gs&V22wA7BGd~9fvT5> zXxNogO+wJ{!US|PZsL7&t*=M#jb?Mgku`s*NBtj+6ZI~8*$BKfJ4;j*>?}U(IALk3 z!G+mMX11;d7iO7j*cA(@i|_}%flvCJ#3uOXy$o>jxl}kw#0`en?-@F*q55k>f2U2X z@7jx_fX{smAUsKNLO%luUm!H;RZW8dK z5aBy<9vFIsFqDZ#%4<GsETQ2XcHbf@)X`fDxW(oZuJwz>niv02+4cRa@e zTM69coUUDe5@qdd&jHYQiu_x99)BYl0B6pwKba&I^lMK(kMKQCqLuB>IUBj>?IsNf zHpfxUpoPzjliM8o2aB(9PX46ZtS+Io-o;XC0(Ql_*y%9QvS*3@d`I8 zd1;$|je((4qS8#wv^R59J zdG(DfvG5=k%IMq&i{OF^Utcl@2WaGW82~h+M=+?)JRi;y3oo#kx0;KfcK`r`ewBcH zY%>7eF3$kG=~Wqu_hgC1Jh1RtVF3!N?A&L<5CKsaM*l|EycrCtZ3f1|2Q2&pV4+`b z=43XkN%KYnEgnN7%en9a3kG3-3bOg)#4!VKpv8j;8-SyX%g_>w0I*=((g%y+0-LVB z;yCCx@PRq1DmnVn!^c*tHk>6E3&4Uc-9A{5px*%U(K86!8JNWk)h-cWiA8W0S#(zG zVjzVE)i?m#`3F#qz(SpSm9iFCFxT9Y%n-)GASHC434^S2xhZq@ZG@gE=UFwPq#YCs zH8KfA`gRK+%X)0j!TBCpB zYzGmH2D{8c5Fq{lq5PWRDEyVz3`gRhO7wWmaO~&Yx(3kTMsv^H4tdRRM1aKHMSsn3 z)UV0c3`adZsGa)XkKw2VIca$R)FM=ES@8F165O0nNc@@wHbp#?#`fp+v3+^h^$Odj zB4R$oM!h>lImu2nMRwGwo`-})85AlUYPUW1CU_xnF zP?QJ%uZyVg8T~{G{(q5#;xm;Z?!_X&)fxPI6h@j@Z?6_BxLyn4R*|i#B1N95+X5;5 z#sSBbv@pA_738p|aYJjR#nLm`cxsLxs+6V3Sk+>jyr!9eWFVH*ZfCJ;B#NT+R+(=- zB#Y@dk}6rEB*^;T8d_rR-^b?uz2qNhKf-!{@OeEKsCxq+kd94anUYfx%7?n1=}%Yw zCDMPNdcxVP*PPfBaHh-WDpT9QJ(U{0mA=|SrFMI{${*o6Rl-O}wVf*!;|cPT{A=>M z+9C}}gKDwC-?K~!n+>-uu)=HnJR?qlu*6w%0ufontl=E_durNF?u;#idvQPy;To5X zZA9T`xjIMc0oJEjgK2o?Hd1;nPuLB8WYhL3_Y5hOhtFs1?&)XgDINCx3;7q(g*p=Z z2ggML8)0{(FgI9QF;X??s);w^HXND&snAn3-bi9|4BrF0InsEFb&5e;Gj?1bn@(1W zmD=@Z$j(~%8T3mUUV>KX;?y(PhruKAq@_MlPo`in2CVwJk#7{!Q?+Lf(l`!@mu8s| zYSZ{-zCMMs7((nr>LSjPp{&K*d=ba|r`PdX1sB}=GP z=MMchy$vNr4o*2!m85eU2h320l2mf3J8veM`C`hcG+`a2Yd6!E>14B!b|R^y0TGc; z)^EB43pZVJRTQ4CH!qJ=2dp(zk zFEU~2wudg$_2+MQ?#FTVY}!e>js5Z4?zkg=w746&aBZz+D1bEkEYjju;s$@Lxob}QJB+isVFt<#osr(8JLBYiK$7B`M#JNT=9fd6c-T&#pj z)e8c^L3yRPvVRnrFYkI&7sm^UQ*U5xA)SgX?qqZE&G^yLZX_Ra*Gqo4&+iE@x0GC=^;gT=%RjhBmVKZ2*3FvcDQyTG}Gij4ZAkhc-f$i|j^wC$O6?rCja$rK{~} z@3yOs)yww6MS444*exfPoH_4a($@&DCTh+VXQNRH)|H*z=H6LqqukibdYvgp`tm$; z;c>-UD~r*9;tji;$-Sf!Jy|F$r`o|**tNHra@CrbD{a5qlV8pSw;jcUsKb{zxh(G` zotY!ncQze$R5v_J&6+E#Y&J@3fo1Q>LUH*xUG+F}j+67FrQ~JkxVh1GD7*D$X|=fR z%BEvyD|_4ClT353)?NvpZ@c5C=cnznEzh1m=~v>u^R3j@TK(8_Sldap9lr8GNfjlq(-NYIzT8sX{DP4L1F&+pf*c-D=vk>JE4>&QG@e)%A?Gu+w%p>z5vf zqYwz3S5W`eyPm2PgGa4Yt9Af>aTT0L4!?4`;_+AFnM3b+Ar*DFJU%5@-c5Utmp z0Q<#xAbJ{1R7&nNzKoRHduK{?XM206>W(J&T-%;XG3E_rqQ__J+y2vPv+8SZA$!`r zS&DA^+S|MJgx^q{A&oq?Qc2tC7a;mTxzbs$EuH7l)3^V%QUm zSJsjnOL^z!M)Z6>zI+rs$$1jTNoOjUaygba_dH9x)nwCItE7GIgT0Ke6x?o>H;a46 zrJlHzeZmg~C93Cx(Q`Kf9(>Og1H?xb`>~?ImHa}m^#ac&> zge9pmS^cz!_Fzg@s0_SYDWqw$I#WzVq|t1J_b4x|FIn(oI(|n(!vq zc2?G#iM5T!*@1We-03?wEO;;dmx082^D=#QaDI~7_7r3LN+NZ>v9^N4zJc9~K<2=` z9gKPti;dm0VtBq)Uh~(SOUaaHuMw`DWt_{W+s=*lT4Vp{IKRBQy1O6B=JGq+p%t>^ zS3>!v4J`S^NG^03+SoX|z~3vi%>I#g%YEDm2IuGJJ!fa`mF+!eV7}t^`Fy9x^mk+B zc&$-a_E)Rr16Odz**tG#4$gPu#eM&_+wBV+96Hj;uxD>`+3j$y=FZPEN5}5eab+=8 z$?v-xh4@Burf!+liU zINr>i9tF3Tz3ZFng+@Dg9NykFTDdm^gMfkII*|`Br+tc@{fx zo<-~DF@I@cJ2LOg6x&s2amVT0TU_?Vj;oGRnkbpbS#qy@Qax;JwOVThC9yQ`ix=w7 zrTIj-unLKGm|Dth9t9h*OeRzF#>%l&^e`1$ZtS~{y*a0QX)o@YcQ`VxvPbb2ldbj3 zW>QfaXJ@gxzjcvbTCDE2FPqVJWmj2f9*6crXN|3VyAnGoBu+9;Upf#x4EvA5>j&OU zqtuF|_V+@|OQ~Gs^0c|vj8wOFBlY^uWxLflTFfq0-1SO08QKe-oz=F>YisR|rHjz^ zY9w`@Uv@5Rr<`Zom94FLkFT}r^x05+wzadd6k1$dJqGJlu*UnXnU%;%D7&OAg|eaj$Pp%YYcqY^h(mu| zuDgnhQBTmd7g?zI12tdf2)4>u_%y2I+dH+TaCLq+uwKZXmfYE5aj6truGBV*?$APL zCtPSX{p%2!!A8mfv2+$IEUj!s7pq(T#pA;e4xbavTWw z&QAle#l!mPN+1!Y0uN;>y>i#7^@I5;#T%MG-Yk|7=V6nY8->5Iohq8;6 zvz5zJFL-v(RVzgkXL)DgJlf8sPPQ;k?KHWWPk5rCk~>@u9WRF?TaI=slv-U_k1VF3 zOWdo`)8pgJxi6PKiftaO7Z(>o^_2u@w|iP$KhGtP&ZDjL)>-IcsZwcgw)bHyY#+>T z?*v0jq44QO>DXUs`;K;^KHqN8yOQ@O>#J_8^~0s`LHWY98d}Xdt4aUbPA!}%1q;hN zSQe49!%%4ND0*6{wKC9{MQ;S_Ex7`DQ!lr-Q-?djmiK6Ruf5ia1SyP5r}edbq7-fV z6xUIr6>qhbwUyAtVx_v{IlYVpH{H=pGnxROUL-ebi~CEJ;=va9cK$q?4mirya`1Ae zoleFw&0;7Siu)rw;b7z-@a1q$4?d}#z^Yvz?5!nhiBjL@1!(=8CtSB3y z{q5tt_h>0vtDc|2PVgk#;Xov?x3}axx?I{Qc}lUPrSy)HQd)=M{6e+lT}*~fHUeA9 zYI)(Hu~n*u7K)9OH#qMpdRHp*#|QOoPq5*E(Ofz%Z7xh#8%E* zI4?UkovGITb`4hI*=pb{9xLPuXVvz}R?FwhogTP1_X@SRr%{evD4A6ckZ&#IV)2c$ zP-CYSS28b;i_;dxe;w_ zFE;k~psUOAjY2qa3K`IH7mtrOFRK2dc(hRRm)0EXPUUF%c&Q$Y>_-Y%W1GrltG$#( zm9k{8y;n$XogS`Km*!!6W!;yj$HC1@+HP%gH56yK=>j!zZR|g z8lH<%ep7$ zS*`D%RCkk=lkLd4cQ3RUIykuq6Pa)j-YgeNky0X13miEL{vB_l9gQ6>hr*GSQmT2D zDIJy0eR0=zy0p@auY^waJcrFw=c>c8>43d*;jW)0ca`&OCU+95hyC;A3u0^40>{vE zm3nP=IddF{93@vmtBaY__(^5)VyV6hn-#j}$k#YH^&XV>R`AX7@@i4ZU#$5LE+Yh< zJ$EpfLLaH4NGZG5AnV~ESz3c{AE!F>%-?{3y4X&-jy4PRc0I5kJ6^n4+~4=amQLz> zJAwR}ZzZ*s+guISi?pAe()K3gywi2zaJ0P#d&$MnZnJ!_noBNUtVfm_VMlB;*bcM~Qag#=O!K_%&HERkkloEzv2_>>#83B5 z*IcKbgmWiZ4>qAx&;0J4u=`-!o5&n29_$6&;8ZFj4mM-S^@YUo{z)htZl6H!w;k?- z&0r*2^6j3kpZc~OgZ0?k+6e6|`qwV&#~ZOVTWva4wp`vp6YVb=S%FYx&g=GYPfjO+&=W4I*Lo) z$Z{yT?B9xoBi@{=y?aqS$iyz1{`6`wRmznb-rc>_LaV;kf=*eD*4mrvs~9E}T)6bM z;HTBjqKU$J0ybiJGf?)`Pn&L6I&rY$%{1GAENld@^~QW-;V=~0gVlY0?AuzK&#ZjK znId*X_1Nb)T6Z+U#c~~Mb3^f*tt}POTiND*v9@`Ttf!BBiOdn^;-I?aX>3PeTl?~! z-HO}gOCQ!6D@UPYm;m{U%SItpJ_+|o_Zi2-3Vtl zvcbY$ap%If89iFxUMrm_OK?4R{p-O8lJuCMpMZaPbz-c6)7dR9Ixin!Gma%(54pO4jgA%wd(qQ){#Hh*;_wf^d=mc z)8mW}W=V3Prj&`UtnMm@o=?m{NgK5;k@N6Bm{rMP3GR7g4Z+WUwZx$EaAiF~&0@Ougo-?pQj zayxeqwj%T4Xt|x;2ptt0k+3@wb5+vO?TzU2)%&pEv3kQCqJxnoG8Br*}@QhbRbDT$Md772pH?rDMsQxs^6 zq6liVF;EyS5VwEypQdnuB1wznj}`%f8co|EXc{0$&;mu>qU)ocd!N0}!*j;t7{|uk zvqkcIuWx~?ZcJzVrVDz|YFP_v_1^aOo%*}G>)f-h z_v;hCOIj1hBXXk7TBA8PUTC9qO=A=XJQvQ8#$2lV`gAoKQZh3mlop&_z3F-~SvJwV zX??smk&|(~+^Vjpqyri`D)3w*UN4Mtvuhif6|$;W%`K*rrfO!Ry9bg3hkIFO$H5w8 z9~`!`Jz^POosuogmnWXKXqB9nSnxM~XQy~-D|o+}F37F8pCrq!k&LF6t56~}Abbg( z+lsIgEYhE>bNMVEp*vDn?*;_N`g%eR#QlieV*OIo@3z@(vs`V2lX}Wo9;*y0%B1Td z{-H%WoSRxcQKmgO{QKv-+olUb*F1H|HC(uRa90VY!2}c(-96IdvP?YZ3^#ABY03BF z(as<}o5EK0!Mamwr5dv;W$Ch&5TJw-qPdxr#%qh8;MOuOb?-8MQjO<2qA{7^`&j7P_>3~} zan_zs`?l@U>}oJs;F{FZM-@BiR+lr`RI{8|*Opc*(?HYPYjm2x~t*4hk&qRDpM_V!bLoy1IQ z8pT^Rp@gnvHl|~HL{@CO*WESn>MD*|wH4sJzH;Z{gjAHYNx~h96h!wh$ZMa7cPV+F$Dpm)wj&9-4x3rl*brD%bMX5OnebV&doB zrS9qFnU=M6XH90Swbaf`J7qgNO;nVUli}OtsO;f(mz#|$dB{rwLG*g~YHzfyl#-l~ zA$(^Yjx=gG#z&M|%>vo*;t9EB0veB^a5p2>Y7-2)n;NGqyNWh|y)r8C25Ai{+`?0F zi64?ntUj0!5oWc*b+Qa-$Dy+Icxxy10byeDL|$&hmO0ss*0qp#L5U}~1le@g%T+!} zH7Aorl^%<&us&c{Ry9gVKAR@OcqN36$;L)HZ{r~UdTmx`Mj3+zwUj07ftv%Z8A`gL zN-k^iV?G}5kS=h&*~jJ>u7=g+*&gvK{y{=*>rFqdl6os?4NZ)il=qo2+7hd<;_;(l zMX5;hWM=te-6@Y7m6lW9EJSZFP)apRleWIr}7xLxPQa14ZK`riS-Hw+J#uYdB_V z@v600EI#?h5kG3A3*lc--KFjn=pUlY{I-_0{tEM^d%GMZ=muY zx+lA5k@WI$8v>{=UQwtY?mxI&_{CQZh|_(Z>?4HXS)gsA{`~nveaJ!R;8$|8$6o4t z@%Z2#^z@c{6GF5AFO1F8!oBG!7%-80lXjYfQ=yw%g^)`EDsLm=%i|5iGPz=xi z6;0QN?%#)hUKP52^2Dla&j#z?DT-V?u~ZqnYDNx9(1@~39^6V!;CZLiWd;1rK5`Ho z_x=ju4p6iK@A^JZt8*TJk3T?#5BUs1rvk+RqSK1N*9t;>p?;L&u)yaGV5I=Q6F@!T z_rak@gT#zrrB04P-)A(Q!o9^RLck0ElQ_1#!sYGbn?UmsFgf}HFzucm(=tHZw(M!RN=SEwghTSJj-tB!zU@ErqxgyK9+vg?32^H$`AR|a z;C%8^z%Wke%Rh+zzNU_=IsN3j+H+U)_gz+WtAB@Ky1xrPCnsN>7e64JkY3=g^ZXQ# zKXm`)H=ZH)YafC;&QIOPD87SEy8j2-gp;>=;l-y7Q*5U{^7z?RRE#3xf`f|~!6Dc2m-JYG#?o{ybc1HyJH__&P+|qyhJSC?N9I)GN4gZREf9&>) zdpdp}8K3IDAG@ve_H%ohiQh}n+taprm(%vu%aWg4d2#jdp6Po14!l~Udw1ZU{s8tJ zIRBpEtpfjx&%ll9`L{pQylAO?LVocp{^7w2{r&CWsrkjD-Rbqmt1q6OfSc6k{>_no zA76ignfHHl+0@_PPMjyZ;1e&tOFj|*ALmVRHQ{GIq5g5$I|>M)kgMQn2B`HLnxC$j;!!`uK>6U!W)#E23mr~9rF+^fq30d-#bNDtmJ_YV2}KJ zclP9MUigDB%cuQc{C#`%fBjD3H{yeT=3o4|6VBJE@q!P2xmeAsP9Gnh)_ryr&PhckquK4*ci6)AqPLxV=IC!MofbKZRK4 zOYG|0;EVg;-!qukAK6#zoEP=X z?Vh5TE(o+R(#_@)*9ZCN4qw5UhYFwL{5Ehxq0q#;y09y?S0SOJLXa*2)Ihfb6hG=c zg8VX%udtr~gFon9zS_2b@cRmz?Pn1=T?HZD<{V!+EWn9APe0GpSjc}rf2WE!k^o*@ z=*3W=hCIep9)7`l6yLz%)I(~`t2Iy-@Aoyta z=_3bQJ^uVDlA@umC-B5M|0=3F<_knc@Zf_F0%!$=Wqz>x1i~>7<9l}4$&XOT(kH>= zLR}1+Uik7Hu?bIYXMuti?>s#;jOs#vK}IPE_l%$K4qw5a=t&eqLXk&@FF!_00zG{x z@Dq*kIKpE~hlo$77{!sh!J|(e9sa&EpU!zcALEA}py<*fXcI-YK04O<@rh4DLb-mZwhQKW_(g zz9-oC1pChi!QMVXez_1$9zHl8j6MD4`RqAeAZ}Ok%GlGt{EhQ1RJa@zZxVa@=p0&l z2tNG^07Y1u{~hGMg=0>s+cfE6gz5(xNlc+Pht4*P119CG>T0H!ZnteO*fwsAfz_o>y0` zKC7<9`MLw{L;ix`RedY_&Dk)iHu>RNUbMn+%Wsy(hRJYtk*>LQjOC)A=AQXY=&*|rb=u4Z;+F>{)7dD}TdplRm#8D*T4@H+iQqF*ES(n&qW^HXf}=S#Z+c zo}HP*Y#V#4Xfm|(%*ab~H&bY#W0a@W(nesa>@*sWHl-FsCshS=++bO*lVE&19tpn9 zPN#Yr2^DX^mCa!+RX2{Yt(V)AY3#K_dF?M?p2_yw))pB_M8d!+`+k*HM*gJ6)avuq z*dOoOL(dmy^KLE7&H6J+SvFvRVN`A{ z=Ax8D^{8QBGrGm95D+=!HcKiji-U?5$Wx-NjoET%P;1TXk}N}>aFwhyRvL#92~ff+ zrc8y~^oM0eX|nxlFIjA8BK3NcUZq}6^FCkOh|6+iR_RCG@d|~f_?sr?Cp|-I)pj&d zUrBO5uGr9piO)j>_iU|ARslm{12)K5ttO1L)>PnWOitrfZ5{Y|yStq=*p9KBF?7&e zq!0zs7?gL|eBP46N>c63T-IAp7dx|Jb^6(^%x-g8k8A!6q6TVFD;*8V&7jxU*cvSp zd3lema$oNyX(vj+4PRBfF_zb9Lfs1B!JVl?Mdanhpht`<&6!^7GGjJuMFx|1%`#h_ zudNi@4T3GR&Vu@k7}(QsI_3tIMs?@Zx9wSDGU)rO+PGzGRVIzVPgiZA^=M->ODSt6 z#OnFjjY9()YYdh36(PlSaiY;dR1PW|zDES*XfaF2%z_DO8N0F5l*;2O$LN}bdH$4J z+rxof8k4nQy%BlCJ#6_st&OQl$?&^LXD$zGL(?OoZMC`HZB&!;*X3c-beqgzn2~SuUk%Y!ISzD zc9LzjD&ioTITK>&SEE2jzTLUe7iYu-$BeZ)8m^Rad%v?XdEwT;d4J6(YDZkubWO<1 zeZ4{jllhWa>U>i!kwLc-Hl$j$;U$bp(8Jou8`stX!B8GiS|?42$;3c>iVDf0V zZ_n%FJ?Ga3Cd>hB2c2)lJ}MswbhEc^(f#JSW)4RVFMCOU|zNuFumHqs-T})^S}c~Hn$x~u28BCYWAd28t}jihht;#08a!4x$gqq z)P^-_F_W4Q#?uwy=e!{S{WcwO+l3gv8q@VKm?yVOJI%JkamBmpx_|4NMt$3?LJ_(v z!T^~@1=gkOigc|~8&>GzC-0WwXJfeJ8x^!Jz-M86O3Mz!#fF(S9dIceRKj>N4#~2y zsH`j2aD?}|@vc8ir?9BN-{Fwhv<8+p5s9)>TXYt!?c81MGLZ$}NY+ql6N!u_jigsD zu>gWl<_2YLhG}z2&8Nu9)!fb8Xfo+u-jJ8dwMq^78a9lo*c#!aCyE7!M%x?b@O zqB1lWGq+ox*BZ5HFf)@R850YqHk7;-G2i-SyX=+qHSn);z|3ZY6$DFJIawVwoqgy) z2;+FNQsB&J!cnvYf(7TbtRj}Dl?F4ZuE@b29DmoU5 z(-O`|b-u#4OoTQ{+TTi*oW>Tk6Vh?hhDC3#`%Sd?Z$=BRTIUwGsca2wO8Zb}8={TT z-gKQer-l1zeT7qSjGIBNQlF@@R_uexaR2)KFg42!Cz*`gab;g_gmtFgnX$TBW>M%2 z98I;E<}{s<<-z*3SnTa^*{sr4qcLM=^#O!>hf0L@&v5FE+eAt1xDa+HrsW}|m>##I z8N?zu#@cTt?dbpr+F`>Pu~>C`i!u{f(sG5li}IG4jD+zzYK*)MINSpLdRmL37@uoiuVYjir1I`q--rli#v{;r0<8%d4m*59K9QBL_T`@SKu~1YA?O!o#OUu2%u3L?= z7yvQJ)tMA>W;OL&3sEf1M-!*I!E`%xJhD0{S2mSSnbG_e^s~8MuS2?B9XFh@qi?4oPbjO3 zrjFMYMFDE4O(wuoE7f7b3<0g9p-NudOE2#>`)RGY=+%IQRsFW6TCiQa5E47Il###y zI~*(HvBi_iaOQNoI2pBO8nE8>vecWm*JP_#0iv6a*Sqbsu^y-E*`(edExQ6RNZ7xP zW;SZ`4Wn+iwNVY`atCK56GfAe0%SI9D^qtX?U-oSg?&FA%gO>Wz=ajy@mjgBbdBzg zcL!zP3o;JmV$5MM<=~1itLYkFbpi|%t&2cnr80|%c=-0X;jrS4%6NzvN=iGQ; zPT01eBw6US*VBS@N9#aUm`!N{9fe~Fa4*UzDX zQfpbQg?_W$5=Ox$(qd@^JG6uK7v-c3bH4`pPimHd@&=|^u14alRi8r86NK+L9Vg=U zMtvpJ>T%TCEBuJ>Mh-t%4b)27iuO7KJiHUhBSX&y4SLpH4KlAnF0PZB~c6&zMxtqKt?^STb12KCr z20AoXGCHFt608$CtMBZ;dwK6-*PO8v*b}pIe;|_0pcUn^;)jw2!uSsG7eG$y4axb4 zXWDIbT^<8q&_Z10opPQH>t%;_yOl{<6)QkvGi^222tw3j2-Fr~?b>sjA@bNIW-X`f zh&A7xu2+pg)5zuC-fXl6Ggk`BJlSd@dBz;elg?@(kz+DxCe3M=CFgB(y7n5exe2_y zK50o1UP1vQHjqfLz-g^q-6)Kozzqs+R2Q1+j`~v#2|Uca-Y{AV$=a2c;;P&M*bz_L zY`dei=M(h0RcA+VR<;AKD^(_yZrxY8{#u!9Y;$kN5IH&C`{X*w_0}GwomJ}P&U_Cc zY~98#;gdyq=56LBXXb>m*RDM$^!QP98++skl!Y|`{cM&nTPJO zh+cYKYC(6KMwb`1a0v(g+^S7#zF<&`;#sdQl^N5Trls++Lt*_)bR1#QM+{TkF8Z3X z)7e>97Wx*)@pIY6Tdi3?oAN$Jt$JjsjO%8Ccl6e%4F@^1U3Z3XSk!y~#7fh)sI^CM zHDqbgbxWlZTmr|*j&4$-B$?2LJz0WmH?;9mjC*@F>BLdHHdwcgA_6Ldn@sv6dt}*SZLd#Kay+i!)0CFQKE{{DoES@i9R%Y_tl`ald26q8zN9Zy zH8!h(qfkP-LsLwrPIu!vq01Ox+R&mPB)!Q@Bb*q`0>rjCMZ(Q4>RBW^?+swP@nsyZ ziMXkDmKdk2?PwJAU5f9*f#4aoT;f8gYP8}r-D7i!O0-(3?SXnjj(c2b z!fwlW)&?k=l8voLR&BUVvq~k@w^o`~TNoB4S$WfMl&5lISHp3v(G!djmi9L*;NzQ8 zX}rS;R;OXPlmLrmahMSdy~$XAJ)&uxB017`4Q8g)g1TVVrEPDb?l`+q3hI(iGgwu@ zhrI;gk0f0p*Az?phS&A?xx{9}nzOfi({wb-WxtUqy&h?#@}zEK<>q#_QUGa45XKw6 zDK0k@6X9tkR4WT=9Bn(3G|*YPS7Ho2m}FFAk(XFyF>B8ykfA6l>!_K!XYe@RbhFZY zzir^yjI?%JnkzRfqdeMabs00|OknV-*Y0`^pQ%?uigPQiJv~s>G|93BGbcC<;2~nN z-mee@nscqXNc=43*mapoqhYgxV?!H0v^a00h2gkg(J7v@lgP4!0F!aDg_BIXtm5|U+gnfN5oO6}9$0imj@55>Z?tg?f>Fte*xa$g`EOWzzFv-NN zti5htQuz5IXJWV*H>VIEx}$8Y+Y8$S5*f<&T+%8{Q`fiSe&1O_483VpHG7^+wVpm; zI3e*_!IVS7sHhne;)+_c?0mk+gD7H4ST& zv5Aa(HJb|qakwe5^?5r6ked~m$D7z^m)wEV=gm$VQH>rQPpnSEkoDoy^W_;vA=TtE?}}4y?TAyH?WGJs4P{_ zGLq6phQpeMxLgVuo-bAbD+}`pn@oD8ZCOZo0N=y0*rDtSKH}+mHEe7qujDL$MYO(2&;V`fd4in zHKz=#TQ;RuHgc{1WqS5;N{G?EYZa^&_Tp=T0GcUz09t4CAvLo)KZR= zK&&d;q}g}Viow$rJlh2}7xa}l>$^EVjpiwBjrR>{Uz#`z5yzT%S=a5kHAp7%kYu6; zJ()JwvMkKz7|sFHku6&gWPyhDSc0B-hmn!qpjTWwnU=^&>}RAFl=u|4*-kz6-JPn8 zmeOFL(J?vS3*KzGN|zf@eecco8iqb^^uMM089T2gHXD*j* z2LWdFMO;|x_@-|eE1l00boTJF$S`;oD`ZqE0Y*YRNyyf|xz}5cnPjj!5susPZVyDm z(adbKF%x|=?yTSz0$i6W5g2gwE)o}-9eSz;`7E>H54bIlRX7(iEX~9%02Y>HuwQ_@ z(eyce&*)K7*-+GIu(vvuX2-Vyc5ya?p)VGrHjYJV;_gCnT1C7qMY94EMmBmo>rX17|Hl;BuRwgQN8o-m-uY7cRIgUeG+*VVB_B#j|XrK}o6 zaNEJ%a%a>wMJnU$cGa`u#&Cgc0NPKnAaZV{SynCa>9IAMPO%Q20nlH@>9~-j3XUnd z-jKNr0Q4})!}w(%f}WN3xTaLM(-^aR8{A}>raGrmijpK=YPFdOo^ickr>Skp&9{5I zF(LqUcBlJgk}?Erk~!Q?8Y?Xv)>> zW!{(>cAVL<@2Z%++~mV_G#Frenqhc3r(}+^B!N$sK*G3<+a zd}Bd8c^$X)BvxkD)b7{o0PrM<8lC8QD&TWGp2WH>cpm1t+bvX8@j>_-t0kLNRa~Ps zrFLBgNR|22bh8k=P-Mr+5)}Dq6+u)LB)q?cD6(X724Y84xT7# z;CryNyItCzj;yfXA1f;r$4FkvZH(mTSyfO0Tq7JLB+#3mM_#W_Sh7JkESA%aOyNSy zYKt@g+pTq32xKwzk^Zl-|KWI0{SkO<0+g+=-hk2imdEKr%D<#W1J*1R=*~nOa@$_oJ~> z*=+&gfyIGw(fqs{Fa)lq7`~=3WxvPOtsZ9)m6H)3CFy1jFeLa6$LDs_rPvjQ_4@m0 zhWL4`V&rzr^wU~k%8NC|k0Yz32Eg6BW7V8jw2Y)BFnxCLL3KZ$Wz7~NH0z-(>g8&0 zpbKi>SrFMYuY_RYr0{6U8rdeD+9>gDOV45guG?{nkwh}Ct6oAz5$^6r;mR;uVjAQP z7t1zz8zf&38`)A!l_vgH?Mw;JoU)`U!i{rcO@e6Vjkq-)Y-e&k3p5hTx9hqzqO9s* z=%-#|Q8sfp0%~hh1pUIsYkN6NQ<>*5;oiLLzQfWYEsYL5~X2DqMK73v)vtLnH(JkBQi@}iJ!^< zWlF6gd#-c%C|TA6T#bcvQFnJckdKY1+w(!sudf`!DLdkHVjA{fY1h04U`WREOx9*J zUgcRu2s;s+fqsrjz9e=7Ja6wDPOpmG5Kn_CKW5ySlBZTj6^15Np>~YY%G3ZrP9VUW z0>D(bbHmJc7FOmi`3_lLLQid+j^m`#+YahNhbQZGW{N3Rf3+&*IN4sYDFEk{iTylG z`JR>ScC$WQp-Tan73zTe*;IJXh=EHe@kEC!H6}|q)=_E4Fd5o(J$gK1Q@sap93?hd z)k~D$Fs*r&himpMw(*KGF!jBs_xge_MugV)BGcik43=3I&}**ZJBLxtDDMSekZVoa zq26V|kDx!V_QArQ>w$_fZB`R|k$`nl!?5R-MJ`DtTnebsXkP(YxG#mh8K@cDIoKvj zJt2aFU58XsYnItxBF?_d2176p9&Tv{oDh06iI~tI22d#AB^G<^XoRrx- z-AHXdosXw$$ zs*-~ZT-**OL0JUxBr*)CmJ51YN?ozHf%OrX{!|5aR#T#Q1!v%VZcG3TS)|~eS+aQ_ z0MW>$7Xt&0WkH`(EsSd8_;lNGslBO8 zd;J=K;B<0>>Ze_pN5>?=HYl+*a;!tR5tCye((CIrFH?hPp*!s+fGq*p^_ia1lgLhe zGtCky^rvQfirb5=9V?mT1O9Po$%H{Fs=Tuw6Q-DZHKsKIR5#fHwIhb>18hs-+ksvJ zkrzylJ7qX$Y*k&S(vGGSWgwYiSsL_8kkhjzHrL*yL^W#?>jIvpQmHv{V$a~-!zqr^ z97szmAFzF1mL?qm!vahO2<02xDY9)13ic4|%F` zotnFbL%OU z4p75&QzWyj(a=k2iS!s|I$FwOwZ_^C7@Kw(KU67l67Yc>OcGjEYZXFOB&pHOLC(f0 zIJC^ZQ5rLZFeNaK20czES})67NK2GZE8)ay2D%lPC0ufKN+&>7g)iMc&k7qOqjQkT zGa*e=A!2fo7(`GX$SzRK|%_f>Vrq(S5p09C)saLdAzl5O#f z9q&9)9#XVvQ>BE97@bmhe`>Fj%qs7@)e5fzlVT{-6l_pX?p%RisoAc8IlJ!A zy3|^0LM7-{_gGD54YdmLY=-XvKn1#Y3*X2EFtXyFZ$s@RZ9d3#7yxWuZeyKzySzu^@4ywC+JdteN zH0_B&0L71&^B|34KPL#9GWoVP*W}o(^m-}h#U|3T+Ev!H8u^Uv=i`!516~G@=%5~? zK&L9!;l3<&!TO$MYe%9id7XmQu|3vnL9nWt$v)3%Ez@)#V7|I?z2qf=+2_qRTy521 ziCtH9z#n%&T!SnQsSSYogB|EH*)&uIb`Wu~(+ZXVl}Qa1W=Bye=R!h-tj)y&Tpj9W zTkQ9g6~fU8^<#hYHEv}@5? zRTMg-6&nhb1)i^~pxn>al9bN)o}p6Ap3-?x!@$YYuJ==lDTOHqz1-*6d>Z$}NgEI$ zof4@d z1{VlDS)_$s3>edHW8I0SF=Ke-u#Q*yvvrs0<7UdVw5p

    1@VEEee1?)2iVaR?5@m z76-VIqKJj-W<&1Oy>v32ZYK_89?&U9flWYqI3c@B!L}-;`fjO?h;`E*5TFEA47x5$ zVCdNHmF<=cQ-L#DX~6024mTE9Pi}+Wu^CT<$XjkH1TZ?cDO{K~^juC`alELnK?i7y zBADbQ5g^j%!%|qm0=mbHeBGddOO?hNj=eWaR3Bq!I4+H8-i})U(dM_SwwbMgxhw^KvjEvu>KWsm zj$=+K1O)={l)YRcAa#U*K}#{*zkIgcBbi-iM{=@hW>L;`T^?@AL7)z#y2Q4@(XP}{ zbGYh&d>eH8Mz;&;30UY$r`HiEdjj@uR>jv?qgKP) zfzEGdw5+PaB#T6;m+b+yn4Ojc%#Zh6DKyN9g0TiTBuJz2e%%Txp*d1otE$qXyOfk< z#zy0iLvTxp%4w721#p*>@!gUKMY})?;6w!(J=R@Z%qj2|11&?g3Fpi1I0sFm4w{)7 z?oI(gZQldcqR1`To+_HAQK7P3X62bAv7iZnji2NzQmRFA3%ANrf8A$rsmbL7qSbul-7BQuo`)4nm|CEWApn*%_vfy-gtOJ@F9tGc3`Mn)@IA4?Xlb?vZ@OvQ z+GdNDqn68CJOtg@EMkZTF2`ywmMze?!D-;|eVr7BzN+#xaDdq+^Sn;kt*qF7%TehK z_)h3}mC$$KYehz0wG-_|D|eVWRHA!$Q1ukO!$*A>cn<@IlRD_{6?xtq%Z{G6b-BLE zN^l0r%Pzrlsby6=j568z6!3&Z`O&D8E{JyL2}o$Ykl zx{ptsmDKdbY~osH)uQ)!YC{QvS;qlF}0~VYuriYULSVMWJ#*M zU{NxRRm@k6y5pDgvf5c-Jh5ApVue_5{WcGJ8O&XQ$(SWHL0`pKCv4lg2A9$a6SJe< z9Iq_sx*)7pRA&sAuNJo$x8sr-QA^VTXElxU=Lt!AgH@HusO~6%1VIdDatqn2g6_H8 zBPwaa;Dpv$N3&_Oy^30ETczu!w(z8!rTT0);wBw6@E|QskY;g`$}5D{3w|bsI&w#* zKIa5;Iw?U0sN8k?;LNlyah#^7ZEp#kbd!!)(?Jy}g6<0=$3(qW zZ*_##0(?FuW8>&+y|;Ql%*5<7`AisMc-3wpQzzRgdPwbw}B$U2hiGh8O=qc~qnGHrT4&b`1lC zbQV`3*+8CF*+j?ooxHH~x81$9>a-SiNFzM`h!a|Eb28H^yP?in<8{b)>tJYV%R0VF zf(22xalQto1dtuLSsrh8z5^c(!Fynl?dbBbJ*W?AH26~URP3)?%0$|#^K=ZUT>2@f zuvO8uH;U)0Eqn&R`S>iRbAX1%Lq@?zdrcgWII|^;x=eu^OLtozR}7;h0kS2%-HGFJ z$~Jh3Xf3v}YiX@fvlBM4j-KH=i;Wk3ZY)8%DIo^Da~{-*V?)Jybc|&sNYDU|U3kCY zvVIk5Bezt;$cOF8*tW|-w-J_2(G|Blxgm_AiZ-nc%iu#AjXI;H%kYRBf{zf(g^5gR zRT?LBBdssz;(#XEJ~+pU3vlH$!rq`#mS>fz(5rR3lZws(;Oz=vF_SoCSq!*% z;gWnO6lYCe?w0+U;Q}D|c01~&Y6IKX;yKm_x1!a?S?W6)z|G4k@-K%r%|S&*IXt$W z-Lc#K7-(WT+U9w{A?JmS-R1@dT_TZ#~723&Xc^djxL%bcY1j}xL| znb>A%x&)UeaEaM4Yy|!>qht@@zZn

    5iRl<#NB?hon%MG=#G>8j@f$;xcMzmxl9j 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 z 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 C0|f2> literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/teachers.doctree b/doc/LectureNotes/_build/.doctrees/teachers.doctree new file mode 100644 index 0000000000000000000000000000000000000000..196bad4820937408be21a09f33547542d359672e GIT binary patch literal 12501 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" ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_3_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_3_0.png" }, "needs_background": "light" }, @@ -461,14 +461,14 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEWCAYAAACXGLsWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAXwElEQVR4nO3dfbBcd33f8fdHsgWW7EBsCQp+kB0iQhQID1YMnrbEAVNsMrGZAq1NoDxWqYhbBgjBBGpSB0iAhEA77hiRUBwkYyBNM6KYaAKBkDaYsRwIYDwGYfwgE0AGbKAGjPC3f+xetFrt3t/u9d29e6/er5kzd8/Z357z3d/uns+ec+45m6pCkqT5rFrqAiRJs8+wkCQ1GRaSpCbDQpLUZFhIkpoMC0lSk2GhI0qSjyd58QIfe0qS7yVZvdh1SbPOsNCyk+TmJN/vrri/luTdSY6d0HLOnhuvqlur6tiq+vFiL0uadYaFlqtfq6pjgccAjwVevbTlTEeSo0aZNu48pBbDQstaVX0N2E0nNABI8oQkf5/kziT/mOSsQY9N8rAkf5Pkm0nuSLIzyQO7970HOAX4YHcL5reTnJqkkhyV5N8m2dM3v5cl2dW9fb8kf5jk1iRfT3J5kmOGPY8kL0xyQ5JvJ9mdZGPPfZXkN5N8CfhSkrOS7EvyqiRfA/5Hd3lvS/LV7vC2JPfrPv6w9gvoah3hDAsta0lOAs4F9nbHTwQ+BLweOB74LeB/Jtkw6OHA7wMPBX4eOBn4XYCqei5wK90tmKp6c99jPwj8XJJNPdOeDVzZvf0HwMPphNjPAicClwx5DucDvwP8a2AD8HfAe/uaPR14PLC5O/7Pus9vI7AVeA3whO7yHg2cAby25/H97aXxVJWDw7IagJuB7wHfBQr4KPDA7n2vAt7T13438Lzu7Y8DLx4y36cDn+5bztk946d2l3dUd3wHcEn39qZuPWvphND/Ax7W89gzga8MWe6HgRf1jK8C7gY2dscLeFLP/WcB9wD375n2ZeBpPeNPBW4e1t7BYdzBLQstV0+vquPorAgfAazvTt8IPKu7C+rOJHcC/wJ4SP8Mkjw4yVVJbk/yHTor//X97eZxJXBh9/azgb+sqrvpbB2sBa7rqeGvutMH2Qi8vaftt+gEzok9bW7re8z+qvpBz/hDgVt6xm/pThvWXhqLYaFlrar+Fng38IfdSbfR2bJ4YM+wrqr+YMDD30jnW/ujquqngOfQWUn/ZPaNxf81sCHJY+iExtwuqDuA7wO/0FPDA6pzQH6Q24Df6Kv5mKr6+3lq6R//Kp3QmXNKd9qoz0Wal2GhleBtwFOSPJrO1sGvJXlqktVJ7t89wHvSgMcdR2d31l3dYx2v7Lv/68DPDFtoVf0I+ADwFjrHA/66O/1e4J3AHyd5EHSOpSR56pBZXQ68OskvdNs+IMmzRnniPd4LvDbJhiTr6Rwf2THmPKShDAste1W1H/gzOscPbgPmDhjvp/Ot/ZUMfq//F+BxwF10Dor/Rd/9v09nBXxnkt8asvgrgbOBD1TVgZ7pr6Jz0P2a7i6ujwA/N6T+/wW8Cbiq2/bzdA7aj+P1wB7gs8DngH/oTpMWRarcOpUkzc8tC0lS01TCIsk5SW5MsjfJxQPuf36S/Uk+0x0WdO0eSdJkTPy0/+5F1y4DngLsA65NsquqvtDX9H1VddGk65EkjW8aWxZnAHur6qaquge4is4BSEnSMjGNC4qdyKEnFO2jc9mCfs9I8kTgi8DLuv/VcogkW+leqmDdunWnP+IRj5hAuZK0cl133XV3VNWwE0SHmpWrT34QeG9V/TDJbwBXAE/qb1RV24HtAFu2bKk9e/b0N5EkzSPJLe1Wh5vGbqjb6Vygbc5J3Wk/UVXfrKofdkf/BDh9CnVJkkY0jbC4FtiU5LQka4ALgF29DZL0XrfnPOCGKdQlSRrRxHdDVdWBJBfRufLnauBdVXV9kkuBPVW1C/hPSc4DDtC5iNrzJ12XJGl0y/YMbo9ZSNL4klxXVVvGfZxncEuSmgwLSVKTYSFJajIsJElNhoUkqcmwkCQ1GRaSpCbDQpLUZFhIkpoMC0lSk2EhSWoyLCRJTYaFJKnJsJAkNRkWkqQmw0KS1GRYSJKaDAtJUpNhIUlqMiwkSU2GhSSpybCQJDUZFpKkJsNCktRkWEiSmgwLSVKTYSFJajIsJElNhoUkqcmwkCQ1GRaSpCbDQpLUZFhIkpoMC0lSk2EhSWqaSlgkOSfJjUn2Jrl4nnbPSFJJtkyjLknSaCYeFklWA5cB5wKbgQuTbB7Q7jjgpcCnJl2TJGk809iyOAPYW1U3VdU9wFXA+QPa/R7wJuAHU6hJkjSGaYTFicBtPeP7utN+IsnjgJOr6kPzzSjJ1iR7kuzZv3//4lcqSRpoyQ9wJ1kFvBV4RattVW2vqi1VtWXDhg2TL06SBEwnLG4HTu4ZP6k7bc5xwCOBjye5GXgCsMuD3JI0O6YRFtcCm5KclmQNcAGwa+7OqrqrqtZX1alVdSpwDXBeVe2ZQm2SpBFMPCyq6gBwEbAbuAF4f1Vdn+TSJOdNevmSpPvuqGkspKquBq7um3bJkLZnTaMmSdLolvwAtyRp9hkWkqQmw0KS1GRYSJKaDAtJUpNhIUlqMiwkSU2GhSSpybCQJDUZFpKkJsNCktRkWEiSmgwLSVKTYSFJajIsJElNhoUkqcmwkCQ1GRaSpCbDQpLUZFhIkpoMC0lSk2EhSWoyLCRJTYaFJKnJsJAkNRkWkqQmw0KS1GRYSJKaDAtJUpNhIUlqMiwkSU2GhSSpybCQJDUZFpKkpqmERZJzktyYZG+Siwfc/x+SfC7JZ5L8nySbp1GXJGk0Ew+LJKuBy4Bzgc3AhQPC4MqqelRVPQZ4M/DWSdclSRrdNLYszgD2VtVNVXUPcBVwfm+DqvpOz+g6oKZQlyRpREdNYRknArf1jO8DHt/fKMlvAi8H1gBPGjSjJFuBrQCnnHLKohcqSRpsZg5wV9VlVfUw4FXAa4e02V5VW6pqy4YNG6ZboCQdwaYRFrcDJ/eMn9SdNsxVwNMnWZAkaTzTCItrgU1JTkuyBrgA2NXbIMmmntFfBb40hbokSSOa+DGLqjqQ5CJgN7AaeFdVXZ/kUmBPVe0CLkpyNvAj4NvA8yZdlyRpdNM4wE1VXQ1c3Tftkp7bL51GHZKkhZmZA9ySpNllWEiSmgwLSVLTWGGR5KVJ3tm9/Z8nU5IkadaMu2XxMA6ejX3cItciSZpR44ZFAcckeSTw0AnUI0maQeOGxR8BAZ4L/M7ilyNJmkXjnmfxJuCjwAeq6q4J1CNJmkHjblk8G/gK8MYkV0ygHknSDBo3LB4IbAKOB/5p0auRJM2kcXdDvRF4H/COqvIHiiTpCDHylkWSfw78b2AtcG6Sp02sKknSTBlny+J44Kfp/DcU+NOnknTEGHnLoqo+CNxRVVdU1RXAnROrSpI0U0beskjyq8CFSaCzdfFs+n7ESJK0Mo2zG2o98P3u33uBN0ykIknSzBk5LKrqiiQ30jl7ey3wJOCFkypMkjQ7xj3P4sV0fvb0dXROzpMkHQHGDYuvA/ensxvqwYtfjiRpFo17Ut5O4B7gt4GPLH45kqRZNM5/Q/WehLcbz7OQpCPGOFsWGzgYEMGwkKQjxjgn5V1B5wzuf9m9vXFiVUmSZoo/qypJavJnVSVJTf6sqiSpaZz/hgrw9Kq6eIL1SJJm0DiX+6gkv5TkQuCu7rSrJ1aZJGlmjHtS3keANRz6b7SSpBWuGRZJPllVZ8JPLiZ4HPCzVfXpiVcnSZoJoxzgvh9AkrcCVNV3gf8+yaIkSbNllLBIkgcDz+ke5AY4ZoI1SZJmzCjHLF4N/B1wJfDHSb7I+P9yK0laxpphUVV/BTwcIMmZwLOAF024LknSDBnrv6Gq6pPAJydUiyRpRk1ld1KSc5LcmGRvksNO6kvy8iRfSPLZJB9N4kUKJWmGTDwskqwGLgPOBTYDFybZ3Nfs08CWqvpF4M+BN0+6LknS6KaxZXEGsLeqbqqqe4CrgPN7G1TVx6rq7u7oNcBJU6hLkjSiaYTFiRy8rDnAvu60YV4EfHjQHUm2JtmTZM/+/fsXsURJ0nxm6l9gkzwH2AK8ZdD9VbW9qrZU1ZYNGzZMtzhJOoKNe22ohbgdOLln/KTutEMkORt4DfDLVfXDKdQlSRrRNLYsrgU2JTktyRrgAmBXb4MkjwXeAZxXVd+YQk2SpDFMPCyq6gBwEbAbuAF4f1Vdn+TSJOd1m70FOBb4QJLPJNk1ZHaSpCUwjd1Qc797cXXftEt6bp89jTokSQszUwe4JUmzybCQJDUZFpKkJsNCktRkWEiSmgwLSVKTYSFJajIsJElNhoUkqcmwkCQ1GRaSpCbDQpLUZFhIkpoMC0lSk2EhSWoyLCRJTYaFJKnJsJAkNRkWkqQmw0KS1GRYSJKaDAtJUpNhIUlqMiwkSU2GhSSpybCQJDUZFpKkJsNCktRkWEiSmgwLSVKTYSFJajIsJElNhoUkqcmwkCQ1TSUskpyT5MYke5NcPOD+Jyb5hyQHkjxzGjVJkkY38bBIshq4DDgX2AxcmGRzX7NbgecDV066HknS+I6awjLOAPZW1U0ASa4Czge+MNegqm7u3nfvFOqRJI1pGruhTgRu6xnf1502tiRbk+xJsmf//v2LUpwkqW1ZHeCuqu1VtaWqtmzYsGGpy5GkI8Y0wuJ24OSe8ZO60yRJy8Q0wuJaYFOS05KsAS4Adk1huZKkRTLxsKiqA8BFwG7gBuD9VXV9kkuTnAeQ5JeS7AOeBbwjyfWTrkuSNLpp/DcUVXU1cHXftEt6bl9LZ/eUJGkGLasD3JKkpWFYSJKaDAtJUpNhIUlqMiwkSU2GhSSpybCQJDUZFpKkJsNCktRkWEiSmgwLSVKTYSFJajIsJElNhoUkqcmwkCQ1GRaSpCbDQpLUZFhIkpoMC0lSk2EhSWoyLCRJTYaFJKnJsJAkNRkWkqQmw0KS1HTkhcXOnXDqqbBqVefvzp1LXZEkzbwjKyx27oStW+GWW6Cq83fr1ukExqghZZhJmkFHVli85jVw992HTrv77s70SRo1pIa1e8lLDBBJS2rlhsWgb+i33jq47dz0SX2rHxZSz3veocsa1u7yy5dma0iSulJVS13DgmzZsqX27Nkz+M65b+i9K961a+GYY+Cb3zy8/caN8IY3HP4YgBNOgLe/HX791xde7KpVnRX9fNauPXzZ89m4EW6+eeE1SToiJbmuqraM+7iVuWUx7Bs6dFbKvdau7QTFoMdAJ1zu6zf5449vt7n7bli9evR5DttKOhIM2gL0WI80USszLIatSL/1Ldi+vfOtPOn83b69s9Uw38r3vhzX2LkTvvOd0dr++MeHh1kyuO3xxy+vleNircwHHdd54QvhBS9wV500SVW1LIfTTz+9htq4saqz2jh02Lhx/MfMDcnwx86nNd/eYfXqqh07Oo9JOn+3batau/bQdmvWVB199OH1PfnJhz52x46F1bxQ27Z1nsPcc9m2rTN9x47Dn0Ny8DUZp85x+nPu9e7v0/mWt2NH1QknHJzHCSdMvx+Xo3H6WEsK2FMLWOcu+Up/ocO8YTFo5bR2bXslMbcCGydoWh+S+eY5aBhlGb0rs/mG1nNeTNu2Da5h27b2Cv7oozvPqbWi2bFjvL5MRg+q/pDoH+5LaExrRTq3nLmwXkgYzzffYfUv5PO2kGWO0o+zFlqzVk8ZFodbyIs034pn2Buz9SEZdcU+XyD1P6dxVpiteQ5bxigr7lGeWzJ+YA5a0ezYcfjW1CjD3Epz2LBmTdW6dQuvq9VvO3Z0ljEofOaCdNwVyaC+X7du8HJ6w/GEEw4N5f7lb9t2+HyPPfbw+a1adWitw96Tc1vKozyH3v7orXluOProw59f/+sxTmiNGjyjbmX2zm+unwc9j7VrD+/nQfMdNL9xal23buhjZjosgHOAG4G9wMUD7r8f8L7u/Z8CTm3NsxkWCzFs5bdu3eD2831I5l6kxVgRVQ3+IIwyjLP7bNQP27gr7lH7oHfoD7lxQneSw6Dwna/fxql7lG/jw7bgpj30fibm+zKwZs3BlVbvSnSxX5P5vkj1v2at9/mOHYNDEjrv+1G2rMYd1qw5ON9t2+bv00EhOeyLQu/Q3S08s2EBrAa+DPwMsAb4R2BzX5uXAJd3b18AvK8136mGxQknDG4/7jfmQW/iUb9VjrtFMeyDspBl9M9j3FpWrRq/7v6QW+wVzEKHQeE7X78t5uvV2lU67eG+vjcXc5hvZd3/ms33eo2y4r2vn4f55jvqa9xbwzjL37GjZjkszgR294y/Gnh1X5vdwJnd20cBd9A9B2TYMJGwGPYiDft2fl/eJOPuHlrISmLc/cajPv9prLD6+2fSy7svr9t8/Tbu/OfbEpyFlXLvMGcxvlkvxjBsl2P/azbf6zVKH0/q8zDq8vtrGGf5GzfWQsNi4iflJXkmcE5Vvbg7/lzg8VV1UU+bz3fb7OuOf7nb5o6+eW0FtnZHHwl8fjFr/UV41NGdrZ9D/Aju+Sx8rn/6ejj+FNiYMf8FueDeW+GWO+Bb97W2QbUeDWt+BPd8FW5fjGX0P/9RaxnFj+HAKlgd+Mn/CA/qn8fAo1d3vkjMq+iZ0SIb9rrN12+rYNUodfc+ZtB7DeB0OH38qifnOrhu7vZ6OH4jnDapZVXnpSWNl7fg3t7PY89rtorOl9B5X69RP2OT+DyMuvz+GsZd/nXwvao6btz6Rn4Tz4Kq2g5sB0iypxZwFuJKZF8cZF8cZF8cZF8clGTIpS/mN42T8m4HTu4ZP6k7bWCbJEcBDwAGXJdDkrQUphEW1wKbkpyWZA2dA9i7+trsAp7Xvf1M4G9q0vvHJEkjm/huqKo6kOQiOgexVwPvqqrrk1xK50DLLuBPgfck2Utnf/AFI8x6+8SKXn7si4Psi4Psi4Psi4MW1BfL9qqzkqTpWZkXEpQkLSrDQpLUNPNhkeScJDcm2Zvk4gH33y/J+7r3fyrJqUtQ5lSM0BcvT/KFJJ9N8tEkG5eizmlo9UVPu2ckqSQr8t8mR+mHJP+m+764PsmV065xWkb4fJyS5GNJPt39jDxtKeqchiTvSvKN7jlsg+5Pkv/a7avPJnlcc6YLOZNvWgMTulTIchxG7ItfAdZ2b287kvui2+444BPANcCWpa57id4Tm4BPAz/dHX/QUte9hH2xHdjWvb0ZuHmp655gfzwReBzw+SH3Pw34MJ2THJ8AfKo1z1nfsjgD2FtVN1XVPcBVwPl9bc4Hruje/nPgycmwXwxa1pp9UVUfq6q5n/u7hs45LSvRKO8LgN8D3gT8YJrFTdEo/fDvgcuq6tsAVfWNKdc4LaP0RQE/1b39AOCrU6xvqqrqE8x/9YbzgT+rjmuAByZ5yHzznPWwOBG4rWd8X3fawDZVdQC4CzhhKtVN1yh90etFdL45rETNvuhuVp9cVR+aZmFTNsp74uHAw5P83yTXJDlnatVN1yh98bvAc5LsA64G/uN0SptJ465PltflPjSaJM8BtgC/vNS1LIUkq4C3As9f4lJmwVF0dkWdRWdL8xNJHlVVdy5lUUvkQuDdVfVHSc6kc27XI6vq3qUubDmY9S0LLxVy0Ch9QZKzgdcA51XVD6dU27S1+uI4Ohea/HiSm+nsk921Ag9yj/Ke2AfsqqofVdVXgC/SCY+VZpS+eBHwfoCq+iRwf2D9VKqbPSOtT3rNelh4qZCDmn2R5LHAO+gExUrdNw2Nvqiqu6pqfVWdWlWn0jl+c15VLegCajNslM/HX9LZqiDJejq7pW6aYo3TMkpf3Ao8GSDJz9MJi/1TrXJ27AL+Xfe/op4A3FVV/zTfA2Z6N1RN7lIhy86IffEW4FjgA91j/LdW1XlLVvSEjNgXK96I/bAb+FdJvgD8GHhlVa24Le8R++IVwDuTvIzOwe7nr9AvliR5L50vCeu7x2heBxwNUFWX0zlm8zQ6v056N/CC5jxXaF9JkhbRrO+GkiTNAMNCktRkWEiSmgwLSVKTYSFJajIsJElNhoUkqcmwkBZJ97cSntK9/fok/22pa5IWy0yfwS0tM68DLk3yIOCxwIo7e15HLs/glhZRkr+lc8mVs6rqu0tdj7RY3A0lLZIkjwIeAtxjUGilMSykRdD9lbGddH6B7Hsr+EeGdIQyLKT7KMla4C+AV1TVDXR+zvV1S1uVtLg8ZiFJanLLQpLUZFhIkpoMC0lSk2EhSWoyLCRJTYaFJKnJsJAkNf1/CM7/pY2hy8YAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "

    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_11_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_11_0.png" }, "needs_background": "light" }, @@ -526,25 +526,25 @@ "output_type": "stream", "text": [ "The intercept alpha: \n", - " [1.99397105]\n", + " [1.92491613]\n", "Coefficient beta : \n", - " [[4.98029756]]\n", - "Mean squared error: 0.24\n", - "Variance score: 0.90\n", + " [[5.04067561]]\n", + "Mean squared error: 0.27\n", + "Variance score: 0.88\n", "Mean squared log error: 0.01\n", - "Mean absolute error: 0.38\n" + "Mean absolute error: 0.41\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkR0lEQVR4nO3deZRkZZnn8e+vNiQBgS4KR4FKxH1pN1BcUKsVupV2advl6KSIOGO1ztGjPXjUI9LYavVyaBUc2wVRZKx0a3cZtNUZUEREC1QQaGyWqmJRKZZSrAKhKp/540aYkZn3RtxY7hbx+5wTJzNuLPfNS3Gf+z7vc99XEYGZmU2uZVU3wMzMquVAYGY24RwIzMwmnAOBmdmEcyAwM5twDgRmZhPOgcBGRtLTJV1ddTvGgaQrJK0r4HvvJ+n7ku6U9D5J75B05qj3Y80i30dg/ZK0GfjvEfHdqtuSRdK7gJOAPwC7gCuBEyPioirbVTVJJwOPB14ci/7nl3QocD2wMiJ2VdA8q4h7BNZ4klZkvPT5iNgbOAA4D/i3AvYtSU36/2gauHJxELDJ1qR/wFZzktZJurHj+WZJb5F0maTfSvq8pPt0vP48ST+TtF3SDyU9puO1t0u6tpXCuFLSizpee7WkCyV9QNLtwLu6tat1dTsLHCRpTes79pX0CUm/knSTpPdKWt56bXkrbXKrpOslvUFStAOOpPMlbZB0IbATOEzSwyV9R9Ltkq6W9LKO9h7b+hvubO3rLa3tB0g6p/X33y7pgnZQaR27o1u/7yHpNEk3tx6nSdqj85hLOlHSLa2/54SM/z6fAo4H3irp95KOlvQuSRtbb/l+6+f21utP6XZcbXxkXUmZjcrLgOcAdwMXAq8GPirpCcAngecDm4BXAl+X9LCI+ANwLfB04NfAS4GNkh4cEb9qfe+RwOeAA4GV3RogaRXwKuA24I7W5rOB3wAPBvYCzgFuAD4GvBZ4LvA4YAfpPYnjWu+5uvX5XwB/19r2GODbkq6IiCuATwAvi4gLJO0PPLD1HScCNwJrWs+fDKRdqZ/Ueu1xrde/BrwTOLn1+n8B9gUOAo4BvijpqxFxR+eXRMSrJQHcGBHvbB2bozre8gyS1NB+Tg1NFvcIrGgfjIibI+J24BskJzNITrYfi4iLI2J3RJxNks9/MkBE/Fvrc3MR8XngP4EndXzvzRHxvyJiV0TclbHvl0naDtzV2t9LImKXpPuRnLDfHBE7IuIW4APAy9ufA06PiBtbJ9N/SvnuT0XEFa0T5nOAzRFxVqs9lwJfAl7Seu+9wCMl3Tci7mi93t5+f2A6Iu6NiAsyUjYzwLsj4paI2Ab8PUkgouN73t36jnOB3wMPyzgmZks4EFjRft3x+05g79bv08CJrbTI9tYJ+xDgAQCSXtWRNtoOPJok1992Q459fyEi9gPuR3LFfnjHvlcCv+r4/o+R9C5otaHz+9P21bltGjhy0d8yQ3KlDvBi4Fhgi6TvdaRcTgWuIek9XCfp7Rl/xwOALR3Pt7S2td226Aq+8zib9eTUkFXlBmBDRGxY/IKkaeDjwLOBiyJit6SfAep4W+7Bzoi4VdLfAD+R9JnWvv8AHJCRAvkVcHDH80PSvnbR3/K9iDgmY/8/AV4oaSXwBuALwCERcSdJeuhESY8CzpP0k4j4v4u+4maSYHNF6/na1rZR8wDyhHKPwAa1UtJ9Oh79XlR8HHidpCNblTd7SfpLSfuQ5NwD2AbQGvx89DCNjYj/AP4deGtrnOHbwPsk3VfSMkkPkvTM1tu/ALxJ0kGS9gPe1uPrzwEeKuk4SStbjydKeoSkVZJmJO0bEfcCvwN2t/6u50l6sJLEfXv77pTv/yzwTklrJB1AMhaxMeV9w9oGzAGHFfDdVmMOBDaoc0ly7+3Hu/r5cERsIsnbf4hkAPcakoFkIuJK4H3ARSQDun9KMtA8rFOB9ZIOJBk8XkVyf8EdwBdJ8vWQBKlvA5cBPyX5W3eRfpKmdWX/5yRjDDeTpMP+Gdij9ZbjgM2Sfge8jmRgHOAhwHdJcvoXAR+OiPNTdvFekgH1y4DLgUtb20YqInYCG4ALWymuJ496H1ZPvqHMrAdJzwU+GhHTVbfFrAjuEZgtImnPVu3/CkkHAacAX6m6XWZFKTwQSHpYq/qj/fidpDcXvV+zIYikRPMOktTQVSR5ebOxVGpqSMmdmzcBR0bEll7vNzOz4pWdGno2cK2DgJlZfZR9H8HLSUrhlpC0HlgPsNdeex3+8Ic/vMx2mZk1z+23w5YtMDfHZuDWCPX6SJrSUkOt+V5uBh4VEb/p9t4jjjgiNm3aVEq7zMwabcMGeM97OOIPf2DTgIGgzB7Bc4FLewUBMzPLYedOeOhD4aabALgELhn0q8ocI3gFGWkhMzPrwzvfCXvt9ccgwLnnDvV1pfQIJE2RTI/7N2Xsz8xsLF10ETz1qfPPX/ta+NjHQANlhP6olB5BROyMiNUR8dsy9mdmVprZWTj0UFi2LPk5Ozv6fdx5J+y333wQWL48GSg+44yhgwD4zmIzs8HNzsL69UnlTkTyc/360QaDv/1buO994bet6+jzzoNdu2D//Ue2CwcCM7NBnXRSMmjbaefOZPuwzj8/udo/7bTk+ZvfnASbdeuG/+5FvB6Bmdmgtm7tb3sed9wBa9bA7tZkt/vuCzfcAPvsM/h39uAegZnZoNau7W97ltlZmJ5OegB/8ifzQeCHP4Tt2wsNAuBAYGY2uA0bYGpq4bapqWR7XrOz8MpXLuxFrFgBGzfCU56S/bkRciAws+qUUXEzjF7tm5lJKnfaV/PT08nzmZl83//lLydBYLFdu0YzzpCTA4GZVaOMipth5G3fzAxs3gyf/nTy/Ljjege1ubkkcLz4xdnv2VLe3Jy1XKHMcw2ZTYBDD00/2U1PJyfWqvXTvnbQ6KwgmppK7x3krftfvjzpGeQk6ZKIOCL3Bzq4R2Bm1Sii4maUstqxZcvSdFGeMtIXvWhpELj22uz9705dIrsQLh81s2qsXZt+xd1vxU1RstonzW9vp4sWB4G2rVvh7rthzz2XvjY9DQ9+cHLln3bSny5viWz3CMysGqOouClSWvukZLyg086dyck8TcTSILBxY/K97bGHtCBQ8nFwIDCz4Q1S/TNsxU3R0tqXNaaaJ43TPvGnpZEgCSYVHQcPFpvZcPoZKG26rAHkbpYtWxgoli1LDyhSUk00IA8Wm1l1ipxvp27S0kXdpKV+RnU38gg5EJjZcOpe/TNKi9NFWdLGEtpqODbiQGBmw6nhFW6h2jeQXXxx9nu6/e01HBtx+aiZDWfDhvQxgrpU/xShW28gz98+M1Or8RP3CMxsODW8wi2MtDQIfPzjjf/b3SMws+HV7Ap35D7zmfS/b2oquU+gDlNiDME9AjOzbqTsIDcm1VEOBGZWnrpPO90pLQ2UZgyqoxwIzKwcdZ92uu2Nb0wPAFlz/6xd26wAl8KBwMzK0YQbzyT40IcWbotIHln1/8ce24wA14UDgZmVo843nqWlgebmFt4UNjMDxx8/P8Hc8uXJ83PPrX+A68GBwMzKMeobz0aRjnnKU9LTQBFLt8/Owtlnz08ZsXt38jxr7qESVxgblgOBmZVjlFMrjGK8QYIf/WjhtnYaKE1WaqtXOxvAgcDMyjHKG8+GGW9ISwN1CwBtg6SwGpIe8jTUZtY8g0zlnJYCeuIT4cc/zrfPrCmos1YY69WeEfM01GY2WfoZb0jL90OSlnrTm/LvMyu1tX599v0Gi9tT0zJTBwIza5684w1SctJN029lT1Zq68Mfhte9bmkwWNyeGt9H4dSQmTXT7GxyIt+6Nbny3rBhfrwhzx3B7feNKnXTrT2QnVqanh7JXEXDpIZKCQSS9gPOBB4NBPCaiLgo6/0OBGY2kHvugT32yP/+EZ2Ecyloicr5r6n/GMHpwLci4uHAY4GrStqvmU0KaWkQyBofaCtzzYQaL+BTeCCQdF/gGcAnACLinojYXvR+zWxCpJWDfuADsHFjko7JynqsXl3u1Nk1XKKyrYwewWHANuAsST+VdKakvRa/SdJ6SZskbdq2bVsJzTKzRtu2Lfuu4DVr5gdm00xNwemnF9u+xWq8gE/hYwSSjgB+BDwtIi6WdDrwu4g4OeszHiMws66yAkBb1sAsJCfgxQO5Y6DuYwQ3AjdGRHul5y8CTyhhv2Y2btLSQF//+tL0T9ZdwFIyODxmQWBYhQeCiPg1cIOkh7U2PRu4suj9mlkBqroh6vLLs3sBz3/+0u11HZid8BvK3gjMSroMeBzwDyXt18xGJc8NUUWc6CR4zGMWbus1N1AdB2arOn55RETtHocffniYWc1MT7dPvwsf09PJ6xs3RkxNLXxtairZPoi0fV12Wf7Pb9yYtE1Kfg7ajlEp+PgBm2LAc67vLDazfHrdEDWqO2e/8hX4679eur2G56q+FHz8hhksXjHIh8xsAq1dm36iaufdR7ECWa9qoCYr4/gNyJPOmVk+vfLuwwzQplUD/eY34xMEoNjjNyQHAjPLp9cNUYMM0J5ySnYv4MADR9f2Oiji+I2IxwjMbHR6zcDZaZzTQIPq5/gtUvvZR/vlQGA2xtICwN139zdrqC1R9zuLzaxs3erRq6pVf+Yzs3sBDgKVctWQ2bhp37jUXty9feNSW9ZrRU674DRQrTk1ZDZuutWjQ6GrZC2RFgDm5vKvIGa5+T4CM5s3SD36qGvVs070NbzwNI8RmI2fbvXoZdSqZ6WBHARqy4HAbNx0q0cvslY97aYwB4BGcGrIbNy0B3271aMPWKueymmgxvNgsVkdDXFjUWkikhLUtO1WOg8Wm42TbuWfdQkGLgcdKx4jMKubk06aDwJtO3cm26uWNg7wiEckQaCmq29Zb+4RmNVNhdMRZ7rrrqWDzDDfC2hCL8YyuUdgVjd1W29XWhoEFlcD1bkXYz05EJjVTV3W201LA+21V7Jtceqnjr0Yy82BwKxK7by6BCtWJD9POgmOPz573vqibd2aPhg8NQU7dqQvvF63Xoz1xYHArCrtvHp77p/du5OfW7bA2WcnPYC5uWQOoLKCQDvwdIpItnVL/dSlF2MDcSAwq0paXr2t7Px6WhroX/91fhygV+qn1+pbw3A1UuF8Q5lZVZYt6157LyU9giJ997twzDFLty9uV7cZTYuYtbRtcTUSJD2NMlNlDeGFacyaqFf+vOj8urQ0CGTNDVRV6sfVSKVwIDCrStrJta3Ik2xaGui887r3TopM/XTjaqRSOBCYVaXz5AqwfHnys6iT7D/+Y/bUEOvW9f78zEySBipzANvVSKVwIDCrUvvkGgG7diU/izjJSvCOdyzc1m2K6LoM0LoaqRQOBGbjLC0NdP313dNAnWWtafcMlKmqlNSEcSAwy6MuV8h5HXVUdhro0EO7f7ZuA7RVpKQmjAOBWS91ukLOQ4ILL1y4rZ+VwsocoG1agB1TpQQCSZslXS7pZ5J8g4A1S92ukLOkpYHaU0L0o6wB2qYF2DFWZo/gzyLicYPe8GBWmbqXMKYFAEhOrlnlqW1pV+RlDdA2JcBOAKeGzHqpcwljVgDI0wvIuiKHcgZo6x5gJ0hZgSCAb0u6RNL6tDdIWi9pk6RN27ZtK6lZNhaKzjOP4gp51G1M6wXMzfWXBup2RV7GAG2dA+ykiYjCH8ADWj8PBH4OPKPb+w8//PAwy2XjxoipqfY1cPKYmkq2j3o/09MRUvKzn+8fZRs7v6PzMQgp/bukwb6vX2X9t5sQwKYY8Bxd+qRzkt4F/D4i/iXrPZ50znKrajK0foyqjaNeML4Ox252NumBbN2a9AQ2bHB56IBqPemcpL0k7dP+Hfhz4BdF79cmRBPyzMO2MS0N1E85aJY63LXrewRqoYwxgvsBP5D0c+DHwP+JiG+VsF+bBE3IMw/axm7VQKPQvmt39er5bXvuOZrvtkYpPBBExHUR8djW41ER4UlCbHTqcFXbS79tjBiuGqgt7wD1XXfN/37bba7ln0SDDi4U+fBgsfVlmIHcsuRt46gGgjdujFi1auH3rFq1dL/T0+n7nJ4ebL9WGZo0WJyHB4tt4qT1AGDwNNABByRX94utXg233jr/PGuVtDJWR7ORqvVgsZl1sWNHdhCYmho8RZMWBNK2N2GMxQrnQGCTqQ6TnUmw997Zr5cx3UITxliscA4ENnmqnuwsqxoozaBlsJ2VQN22e75/w4HAJlFVk51dc012NVB7ucrFBk3RnH46rFy5cNvKlcn2xVzLP/EcCGzyVHETmgQPecjCbZ3loKNO0czMwFlnLbzSP+ssn+QtlQOBTZ4yB0jT0kD77Zds6xybKCJF4yt9y8mBwCZPGQOk3/hGehpoagq2b08fm/CJ2yriQGCjU4dKnDxmZuD442H58uT58uXJ81GdeCV4wQsWbmuPA3ghFqshBwIbjaorcfoxOwtnnw27dyfPd+9OnhexRsA3vzk/DtCECfJsIjkQ2Gg0adnBUbf15JOzq4Ge85z55755y2rKgcBGo0lXu8O2tTMFJsF737vw9azJ4XzzltWUA4GNRlOudmdnkxN4mjxtXZwC63Tttd3nBvLNW1ZTDgQ2Gk242m2fxNtjA53ytvU1r1maVoLkpH7YYb0/3/TKoCYUBDShjXUz6LSlRT48DXVD1X066Kwpl5cvz9fWrPWCy1znt0pNWGO4CW0sCJ6G2iyHQadczjMvUJ3WSC5KHdY47qUJbSyIp6E2y6PfcYysyeHqngIrShMKAprQxhpyILDJ0c84RrelItMGfGH889JNKAhoQhtryIHAJkeeqp20XsDc3MKU0uIBX2jOzXTDaEJBQBPaWEMeIzCD4ZaKnKS89OxscuPd1q3JVfaGDfWrfGpCGwswzBiBA4GNRpP/58tKA+XldX+tBjxYbNXKM89QHWu709JAWXcFd+O8tDVcz0Ag6buSHltGY6yhes3dU7cJ6bKqgQbtHTsvbQ2Xp0fwVuADks6SdP+iG2QN1Ktkry4T0kV0rwYalKeOsIbrGQgi4tKIeBZwDvAtSadI2rP4pllj9EqNZAWKLVvKSxVJS+cYGjYAdGr61BE20XKNEUgScDXwEeCNwH9KOq7IhllN5Mnt90qNdMuVF50qSksDZQ3umk2oPGMEPwBuAj4AHAS8GlgHPEnSGUU2ziqWN7ffKzWSFigW65YqGmSgeceO7DRQ2qRzZhOsZ/mopEcDV0TKGyVdFRGPGHWjXD5aE6Osj+8sL836N5dWbtkORp1jDFNT3XPwoxwINmuIQstHI+IXaUGg5S8H2ak1xCjnbenMoU9Pp78nLYXUz0BzWhropS+tPgi0ezQSrFiR/KxLCa0ZQ95HEBHXjaohVkNF1cf3U26ZJxhdd112L+ALXxi8naPQmV6D+bRU1SW0Zh1Ku6FM0nJJP5V0Tln7tCENWh/fK6ffT7llr2AkwYMetPC1UVYDDSutR9NW1zWdbeKUeWfxm4CrStyfDWuQ+vh+BpjzlFtmBaMtW5b2Ak47rT4BoK1XGs3TI1sNlDLXkKSDgbOBDcD/jIjndXu/B4sbrIgJ2DoHmtesgVtuWfqeugWAtqzj0TaOE9NZJZow19BpJHcoZ87AJWm9pE2SNm3btq2kZtnIFbEwSLv3ELE0CNQpDZSmW+msp6Gwmig8EEh6HnBLRFzS7X0RcUZEHBERR6xZs6boZhkUMxFcEQPMadVA551X7wDQ1pleA1i+PPnpaSisRsroETwNeIGkzcDngGdJ2ljCfq2boiaCG+UEbO9/f3Y10Lp1AzWvEp09ml27kp+ehsJqpNT1CCStA97iMYIaKHIxlVGsTeCbwsz60oQxAqubIhf5HmYCtrQ00A03zAeBYdJZvrHLLFWpgSAizu/VG7CS1G0xlRe9KLsXcPDBye9p6awTToADDugdGHxjl1km9wgmVZ0WU5Hgq19duC2tGijt5qx774Xbbus9zuEbu8wyORBMqjosppKWBrrrruyxgG71+G1ZJ3Xf2GWWyYFgkvXK5Re1znC3pSLvc5/sz7VLL3tJO6n3Snl5fWGbYA4Elq6o8tJhlorMu45A2kndN3aZZXIgsHSjXmc4rRcwN9dfSWjW9NWdsk7qvrHLLJMDgaUbVXlptzRQ2vZu0q7qV66E1avzjXP4xi6zVA4Elm4U5aXDpIHSpA1wn3UW3Hpr93sWihrrMBsTDgSWbpjy0rRewKgmh+v3ZrWixjrMxogDwSTKc4U8SHlptzRQVUY91mE2hhwIxkE/qY9+rpDzXn13y/dPTVV79V3kVBpmY8KBoOn6TX0UUQ20rMs/o6qvvus2lUYnj11YTTgQNF2/J/aiq4HSbNlS3YmuTlNpdPLYhdWIA0HT9XtiH/YK+a67sscButX5V3Wiq8NUGmk8dmE14kDQdP2e2IetBlr82c5qoG5370J1J7phpsUuiscurEYcCJqu3xP7qKqBTj55aTXQ4rt30/hEl6jz2IVNnFJXKMvLK5T1aRQrgqW56ab5tQA65fk3U+QKaOOgPUbQmR6amqpH2soaySuUTbrFqQ8YvhpFWhoE+rkpLCtN9Pvfe0AU6jt2YRPJgWDcDFuNkpYG+vzn+78prH2iW7164fbbbsvfnnEvr6zj2IVNJAeCcZOnGiXtBHvxxdnVQC972WBtmZmBvfdeuj3PoLHLK81K4zGCcbNsWfrVu5RceablptOM6t9Fr/Zk8RiDWV88RmDzelWjdFu7F+DSS0c7N9Cg1TEurzQrjQPBuOlVTtrtRBoBj398ue3J4vJKs9I4EIybXtUoWVf7eVb/KqI9Weo6NYTZGPIYwaToNi9QXevXi7o/wmwMeYzAsp16anoQaEL9ussrzUrhQFC1QWrl835Ggre+deG29k1hmzfDpz+dbDvuuPGs0zezXFZU3YCJtriUs10rD9lXv3k+k9YDuOeeZKH3YfZtZmPJYwRVGqRWvttnjjkGzjxz6Wtp/41dp282VjxGUIYipjsYpFY+67UtW5YGgfY4QFp7y6zTH/epIswazoEgj6KmOxikVj5PHf3q1UkaqFt7y6rT91QRZrVXeCCQdB9JP5b0c0lXSPr7ovc5cnlXk+r3yneQWvlei79AMrHbvfd2b29Zdfpeicus/iKi0AcgYO/W7yuBi4End/vM4YcfHrUitWttFj6k+fds3BgxNbXw9ampZHs3GzdGTE8n3zU93fv9EeltyfPobO+g++5XnmNnZkMDNsWA5+lSB4slTQE/AF4fERdnva92g8V5BlbLGHzNmh00a2K3ItuSlwelzUpR+8FiScsl/Qy4BfhOWhCQtF7SJkmbtm3bVkaz8suTRily8PUhD1kaBF796vmTf568flXTM3iqCLP6G7QrMcgD2A84D3h0t/fVLjUU0TuNMj2dngKZnh58n3Nz6d+Z1rbFaalVqyJWry427ZNXGSkoswlHU1JDAJJOAXZExL9kvad2qaE8Rr0GbVYaqNv+PS+P2cSqdWpI0hpJ+7V+3xM4GviPovdbulGtQZu2VOSpp/YeA/C8PGY2oDKmmLg/cLak5SSB5wsRcU4J+y3fzMzgJ+B77oE99li6veQem5lNnsIDQURcBox4tZMx028ayMxshHxncZXS0kBf+YqDgJmVyrOPVmH7dth//6XbHQDMrAIOBGVzGsjMasapobKkpYEuvdRBwMwq5x5B0a6/Hg47bOl2BwAzqwkHgiI5DWRmDeDUUBHS0kA33OAgYGa15EAwSlddld0LOPjg8ttjZpbDeASCOiyFKMEjH7lw2/Q0bNxYflvMzPrQ/DGCxZO9tZdChHLm20nrAbSV3RYzswE0v0dQ1VKIF1+8NAisSImrXpbRzGqu+T2CIheEydJtpbCy22JmNqTm9wiyVufKs2pXv9KqgXbt6r1SWBFtMTMbkeYHgjKWQrzwwuylIpcvL7ctZmYj1vxAMKoFYbJIcNRRC7dNT8PRR5ffFjOzApS+VGUetViqsls1EAy3DKWZ2YjVeqnKxvna15YGgdWrl77P1UBmNiaaXzU0Sq4GMrMJ5B4BpFcDRbgayMwmwmQHgjPOWBoAzj136eRwrgYyszE2mamhrHRP1sB5e0D4pJOSdNDatUkQ8ECxmY2ByQsEg64RMDPjE7+ZjaXJSQ195CNLg8Dll3uNADObeOPfI5ibW3j3L8C++8L27ZU0x8ysbsa7RyAtDQIRxQeBOqyPYGaW03gGgo9+dGkaaPPmctJA7fURtmxJ9tdek8DBwMxqarwCwT33JAHg9a+f3/aKVyQn5OnpctpQ1foIZmYDGp8xgkGrgUativURzMyG0PwewebNS4PA7bcnQaCKXL3vQjazhmluINi9G57xDHjgA+e3/eAHSQDYf//qcvW+C9nMGqaZgeDjH0/WB77gguT5Jz+ZnOyf9rT591SVq/eaBGbWMIUHAkmHSDpP0lWSrpD0poG/7Je/TE6u69cnz48+OukZnHDC0vcWnavvlnaamUlSVnNzyU8HATOrsTIGi3cBJ0bEpZL2AS6R9J2IuDL3N9x7Lxx5JPz0p/Pbtm6FQw7J/szatUk6KG37sNppp3aPo512Ap/0zaxxCu8RRMSvIuLS1u93AlcBB+X+gh07YNWq+SDw2c8maaBuQQCKzdW7RNTMxkipYwSSDgUeD1yc8tp6SZskbdq2bdv8C3ffnUwJ8Vd/laRaXv7yfDsrMlfvElEzGyOlrVksaW/ge8CGiPhyt/fWYs3ibg49ND3tND2djAmYmZWs9msWS1oJfAmY7RUEGsElomY2RsqoGhLwCeCqiHh/ITsp+8Yxl4ia2RgpPDUk6SjgAuByYK61+R0RcW7WZ/pKDS2u4IHk6twnZjObIMOkhkobI+hHX4HA+Xozs/qPERQqLQh0225mZgs0PxAsXnim13YzM1ug+YFg9+7+tpuZ2QLNDwRZC86UtRCNmVnDNT8QuKbfzGwozQ8Eruk3MxtKvQNB3hvFPO2zmdnA6rtmsad6NjMrRX17BJ7q2cysFPUNBJ7q2cysFPUNBFkriY1ihTEzM/uj+gYCl4WamZWivoHAZaFmZqWob9UQJCd9n/jNzApVy2moJd0JXF11O2riAODWqhtRAz4O83ws5vlYzHtYROwzyAfr2iO4etB5tceNpE0+Fj4OnXws5vlYzJM08ELv9R0jMDOzUjgQmJlNuLoGgjOqbkCN+FgkfBzm+VjM87GYN/CxqOVgsZmZlaeuPQIzMyuJA4GZ2YSrLBBIeo6kqyVdI+ntKa9L0gdbr18m6QlVtLMMOY7FTOsYXCbph5IeW0U7y9DrWHS874mSdkt6SZntK1OeYyFpnaSfSbpC0vfKbmNZcvw/sq+kb0j6eetYnFBFO4sm6ZOSbpH0i4zXBztvRkTpD2A5cC1wGLAK+DnwyEXvORb4JiDgycDFVbS1JsfiqcD+rd+fO8nHouN9/w84F3hJ1e2u8N/FfsCVwNrW8wOrbneFx+IdwD+3fl8D3A6sqrrtBRyLZwBPAH6R8fpA582qegRPAq6JiOsi4h7gc8ALF73nhcD/jsSPgP0k3b/shpag57GIiB9GxB2tpz8CDi65jWXJ8+8C4I3Al4BbymxcyfIci/8KfDkitgJExLgejzzHIoB9JAnYmyQQ7Cq3mcWLiO+T/G1ZBjpvVhUIDgJu6Hh+Y2tbv+8ZB/3+nf+NJOKPo57HQtJBwIuAj5bYrirk+XfxUGB/SedLukTSq0prXbnyHIsPAY8AbgYuB94UEXPlNK9WBjpvVjXFhFK2La5jzfOecZD775T0ZySB4KhCW1SdPMfiNOBtEbE7ufgbW3mOxQrgcODZwJ7ARZJ+FBG/LLpxJctzLP4C+BnwLOBBwHckXRARvyu4bXUz0HmzqkBwI3BIx/ODSSJ5v+8ZB7n+TkmPAc4EnhsRt5XUtrLlORZHAJ9rBYEDgGMl7YqIr5bSwvLk/X/k1ojYAeyQ9H3gscC4BYI8x+IE4J8iSZRfI+l64OHAj8tpYm0MdN6sKjX0E+Ahkh4oaRXwcuDri97zdeBVrVHwJwO/jYhfld3QEvQ8FpLWAl8GjhvDq71OPY9FRDwwIg6NiEOBLwL/YwyDAOT7f+RrwNMlrZA0BRwJXFVyO8uQ51hsJekZIel+wMOA60ptZT0MdN6spEcQEbskvQH4d5KKgE9GxBWSXtd6/aMkFSHHAtcAO0ki/tjJeSz+DlgNfLh1JbwrxnDGxZzHYiLkORYRcZWkbwGXAXPAmRGRWlbYZDn/XbwH+JSky0nSI2+LiLGbnlrSZ4F1wAGSbgROAVbCcOdNTzFhZjbhfGexmdmEcyAwM5twDgRmZhPOgcDMbMI5EJiZTTgHAjOzCedAYGY24RwIzHKQdJ6kY1q/v1fSB6tuk9moVDXXkFnTnAK8W9KBwOOBF1TcHrOR8Z3FZjm1VgDbG1gXEXdW3R6zUXFqyCwHSX8K3B/4g4OAjRsHArMeWis8zZKs/rRD0l9U3CSzkXIgMOuiNb3zl4ETI+Iqklku31Vpo8xGzGMEZmYTzj0CM7MJ50BgZjbhHAjMzCacA4GZ2YRzIDAzm3AOBGZmE86BwMxswv1/cMsJZ1TrwVEAAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_13_1.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_13_1.png" }, "needs_background": "light" }, @@ -730,14 +730,14 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA1cElEQVR4nO3deXhU5fXA8e+ZmRC2EJawScAAoggIAQMK4sriUlyoSsENKi1utLW2P4tVK4pWa7VYta2l1gURVKTuUgvUBUSUiIgKlEUDhiWEECCQdWbe3x93EibJTDKT2Sfn8zx5MnPvnXvfOzBn3px77vuKMQallFLJxRbrBiillAo/De5KKZWENLgrpVQS0uCulFJJSIO7UkolIUesGwCQkZFhsrKyYt0MpZRKKJ9//vl+Y0xnX+viIrhnZWWRm5sb62YopVRCEZEd/tZpWkYppZKQBnellEpCGtyVUioJNZpzF5FngAnAPmPMIM+yl4GTPJu0Bw4aY7JFJAvYBPzPs26NMebGpjSsqqqK/Px8ysvLm/Jy1YCWLVuSmZlJSkpKrJuilIqQQC6oPgc8CcyvXmCM+VH1YxF5FDjktf12Y0x2qA3Lz88nLS2NrKwsRCTU3SkPYwxFRUXk5+fTu3fvWDdHKRUhjaZljDEfAQd8rRMr6k4CFoW5XZSXl9OpUycN7GEmInTq1En/IlIqyYWacz8TKDDGbPVa1ltEvhCRD0XkTH8vFJEZIpIrIrmFhYX+tgmxecoXfV+VioKyAlh2FrzSzvpdVhDVw4ca3KdQu9e+B+hljBkK3AYsFJF2vl5ojJlnjMkxxuR07uyzBl8ppRLXqith/yfgLLF+r7oyqodvcnAXEQfwQ+Dl6mXGmApjTJHn8efAduDEUBsZK3v37mXy5Mn07duXU089lYsuuogtW7Y0+JqsrCz2799fb/lTTz3F/PnzfbzCN7vdTnZ2ds1PXl4eo0aNAiAvL4+FCxcGdzJKqegqXg/GaT02Tut5FIVyh+pYYLMxJr96gYh0Bg4YY1wi0gfoB3wbYhtjwhjDxIkTmTp1Ki+99BIAX375JQUFBZx4YvDfVzfeGFzRUKtWrVi/fn2tZatXrwaOBferrroq6HYopaKkQ7bVYzdOEIf1PIoa7bmLyCLgE+AkEckXkemeVZOpfyH1LGCDiKwHXgVuNMb4vBgb795//31SUlJqBeUhQ4Zw5pln8sEHHzBhwoSa5TNnzuS5556ref7www9zyimnMGLECLZt2wbA7NmzeeSRRwDYtm0bY8eOZciQIQwbNozt27cH1Ka2bdsCMGvWLFauXEl2djZz584N9VSVUpEwejFkjARHmvV79OKoHr7RnrsxZoqf5dN8LFsCLAm9WbXd+9Y3bNx9OKz7HHBcO+65eKDf9V9//TWnnnpqk/adnp7OV199xfz587n11lt5++23a62/+uqrmTVrFhMnTqS8vBy3211vH2VlZWRnZwPQu3dvXnvttZp1Dz30EI888ki9/Sql4kirrjDuo5gdPi4GDks2U6ZMqfn9y1/+sta6kpISdu3axcSJEwHrhiJffKVllFIqUAkR3BvqYUfKwIEDefXVV32uczgctXrbdWvGvUsNtexQKRULOraMH+eddx4VFRXMmzevZtmGDRtYuXIlxx9/PBs3bqSiooKDBw+yYsWKWq99+eWXa36PHDmy1rq0tDQyMzN5/fXXAaioqKC0tDSotqWlpVFSUtKEs1JKNRca3P0QEV577TWWL19O3759GThwIHfccQfdunWjZ8+eTJo0iUGDBjFp0iSGDh1a67XFxcUMHjyYP//5zz4veL7wwgs8/vjjDB48mFGjRrF3796g2jZ48GDsdjtDhgzRC6pKJaoI3+Qkxpiw7rApcnJyTN3JOjZt2sTJJ58coxYlP31/lYqxZWfVLpXMGBn0BVgR+dwYk+NrnfbclVIqFiJ8k5MGd6WUioUO2VaPHSJyk5MGd6WUioUI3+SUEKWQSimVdCJ8k5P23JVSKglpcFdKqSSkwd2PoqKimuF2u3XrRo8ePWqeV1ZWhuUYVVVVzJo1i379+jFs2DBGjhzJ0qVLG3zNtGnTfN45m5uby89//vOwtEsplfg05+5Hp06dasZ2mT17Nm3btuXXv/51zXqn04nDEdrbd/fdd7Nnzx6+/vprUlNTKSgo4MMPP2zSvnJycsjJ8VnuqpRqhrTnHoRp06Zx4403ctppp3H77bfXGsYXYNCgQeTl5QGwYMECRowYQXZ2NjfccAMul6vWvkpLS/nHP/7BE088QWpqKgBdu3Zl0qRJwLHhfQFeffVVpk2bVvN8+fLl5OTkcOKJJ9aMDOk9DPGRI0f48Y9/zCmnnMLgwYNZsiTsA3UqpeJcYvTcb70Vwj1CYnY2PPZY0C/Lz89n9erV2O12Zs+e7XObTZs28fLLL/Pxxx+TkpLCzTffzIsvvsh1111Xs822bdvo1asX7dr5nIWwQXl5eXz22Wds376dc889t2bM+Gpz5sypGXYYrOEQlFLNS2IE9zhy5ZVXYrfbG9xmxYoVfP755wwfPhywxmbv0qVL2NowadIkbDYb/fr1o0+fPmzevLnW+uXLl9fMHgXQoUOHsB1bKZUYEiO4N6GHHSlt2rSpeexv6F9jDFOnTuXBBx/0u58TTjiBnTt3cvjwYZ+9d++hghsaUtjXc6WU0px7CLKysli3bh0A69at47vvvgNgzJgxvPrqq+zbtw+AAwcOsGPHjlqvbd26NdOnT+cXv/hFTfVNYWEhixdbd6l17dqVTZs24Xa7a83CBLB48WLcbjfbt2/n22+/5aSTTqq1fty4cfzlL3+pea5pGaWaHw3uIbj88ss5cOAAAwcO5Mknn6yZOHvAgAHcf//9jB8/nsGDBzNu3Dj27NlT7/X3338/nTt3ZsCAAQwaNIgJEybU9OIfeughJkyYwKhRo+jevXut1/Xq1YsRI0Zw4YUX8tRTT9Wbzemuu+6iuLiYQYMGMWTIEN5///0IvQNKqXjV6JC/IvIMMAHYZ4wZ5Fk2G/gpUOjZ7LfGmHc96+4ApgMu4OfGmPcaa4QO+Rt9+v4qlfhCHfL3OeACH8vnGmOyPT/VgX0AMBkY6HnNX0Wk4auPSimlwq7R4G6M+Qg4EOD+LgVeMsZUGGO+A7YBI0Jon1JKqSYIJec+U0Q2iMgzIlJda9cD+N5rm3zPsnpEZIaI5IpIbmFhoa9NlFJKNVFTg/vfgL5ANrAHeDTYHRhj5hljcowxOZ07d25iM5RSSvnSpOBujCkwxriMMW7gHxxLvewCenptmulZppRSKoqaFNxFxLs2byLwtefxm8BkEUkVkd5AP+Cz0JqolFIqWI0GdxFZBHwCnCQi+SIyHXhYRL4SkQ3AucAvAYwx3wCvABuBfwO3GGNcfnYd9+x2O9nZ2QwcOJAhQ4bw6KOP1roj1Ze8vDwWLlwYpRYqpZRvjQ4/YIyZ4mPxPxvY/gHggVAaFS9atWpVM+zvvn37uOqqqzh8+DD33nuv39dUB/errroqSq1USqn69A7VAHXp0oV58+bx5JNPYowhLy+PM888k2HDhjFs2DBWr14NwKxZs1i5ciXZ2dnMnTvX73ZKKRVJiTFwWCDKCmDVlVC8HjpkWzOJt+oa1kP06dMHl8vFvn376NKlC8uWLaNly5Zs3bqVKVOmkJuby0MPPcQjjzxSM856aWmpz+2UUiqSkie4r7oS9n8Cxmn9XnVlRGcWr6qqYubMmaxfvx673c6WLVtC2k4plUSi0NlsTPIE9+L1VmAH63fx+rAf4ttvv8Vut9OlSxfuvfdeunbtypdffonb7a43eFe1uXPnBrSdUiqJRLmz6Uvy5Nw7ZIN4vqvEYT0Po8LCQm688UZmzpyJiHDo0CG6d++OzWbjhRdeqJlGLy0tjZKSkprX+dtOKZXEotDZbEzyBPfRiyFjJDjSrN+jF4e8y7KysppSyLFjxzJ+/HjuueceAG6++Waef/55hgwZwubNm2sm8Rg8eDB2u50hQ4Ywd+5cv9sppZJYhDubgWh0yN9o0CF/o0/fX6UiKEo594aG/E2enLtSSsWLVl2jnmOvK3nSMkoppWrEdXCPh5RRMtL3VankF7fBvWXLlhQVFWkgCjNjDEVFRVqSqVSSi9uce2ZmJvn5+ehEHuHXsmVLMjMzY90MpVQExW1wT0lJoXfv3rFuhlJKJaS4TcsopVTSKCuAZWfBK+2s32UFET+kBnellIq06uEInCXHhiOIMA3uSikVaTEYjkCDu1JKRVoMhiPQ4K6UUsFoSv48AmNfNSZuq2WUUiouNWU43xgMR6A9d6WUCkYcDOcbiEaDu4g8IyL7RORrr2V/FJHNIrJBRF4Tkfae5VkiUiYi6z0/T0Ww7UopFX1xMJxvIALpuT8HXFBn2TJgkDFmMLAFuMNr3XZjTLbn58bwNFMppcIk1JrzGOTPm6LRnLsx5iMRyaqz7D9eT9cAV4S5XUopFRmhToEXB8P5BiIcOffrgaVez3uLyBci8qGInOnvRSIyQ0RyRSRXx49RSkVNguTMQxVScBeROwEn8KJn0R6glzFmKHAbsFBE2vl6rTFmnjEmxxiT07lz51CaoZRSgUuQnHmomhzcRWQaMAG42njG5TXGVBhjijyPPwe2AyeGoZ1KKRUeCZIzD1WT6txF5ALgduBsY0yp1/LOwAFjjEtE+gD9gG/D0lKllAqHBMmZh6rR4C4ii4BzgAwRyQfuwaqOSQWWiQjAGk9lzFnAfSJSBbiBG40xByLUdqWUUn4EUi0zxcfif/rZdgmwJNRGKaWUCo3eoaqUUklIg7tSSiUhDe5KqeYjBjMixYoGd6VU8xGDGZFiRYO7Uqr5aCZ3p4IGd6VUc9JM7k4FDe5KqeakmdydCjoTk1KqOWkmd6eC9tyVUiopaXBXSqkkpMFdKaWSkAZ3pZRKQhrclVIqCWlwV0qpJKTBXSmlkpAGd6WUSkIa3JVSKglpcFdKqSSkwV0ppZJQQMFdRJ4RkX0i8rXXso4iskxEtnp+d/AsFxF5XES2icgGERkWqcYrpVQtzWgyjsYE2nN/DrigzrJZwApjTD9ghec5wIVAP8/PDOBvoTdTKaUC0Iwm42hMQMHdGPMRcKDO4kuB5z2Pnwcu81o+31jWAO1FpHsY2qqUUg2L1mQcCfAXQig5967GmD2ex3uBrp7HPYDvvbbL9yyrRURmiEiuiOQWFhaG0AyllPKI1mQcCfAXQlguqBpjDGCCfM08Y0yOMSanc+fO4WiGUqq5C3Yyjqb2wBNgur5QJusoEJHuxpg9nrTLPs/yXUBPr+0yPcuUUiqygp2Mo7oHbpzHeuCBvL5D9rHXxel0faH03N8EpnoeTwXe8Fp+nadq5nTgkFf6Riml4kdTe+AJMF1fQD13EVkEnANkiEg+cA/wEPCKiEwHdgCTPJu/C1wEbANKgR+Huc1KKRUeTe2BJ8B0fQEFd2PMFD+rxvjY1gC3hNIopVQzUVZgpUKK11uBdfRiK3BGy+jF9Y+fJPQOVaVU7ARTdRKJ8sPqHvikw9bvaH6xGAO/+Q288EJEdq/BXSkVO8HkvBOg/DBgxsCdd8LDD8PatRE5hAZ3pVTsBFOXngDlhwGbPRsefBBmzIDHHovIITS4K6ViJ5iqk2jdoBRp998P990H118Pf/sb2CIThkOpc1dKqdAEU3WSDBc/H34Y7r4brr0W5s2LWGAHDe5KqUQRyfLDaFTtPPKIdQF18mR49lmw28O7/zo0LaOUUpG+WPvgg/B//weTJlnVMREO7KDBXSmV6MJRIhnJi7X33Qe//S1cdRW8+CI4opMw0eCulEps4eh1R+JirTHwu9/BPffA1Kkwf37UAjtocFdKJbpw9LrDPVaMMVZvfc4cmD4dnnnGZyrmYGkl5VWu0I7lh15QVUoltnCM0BjOi7XGWPn1Rx+FG26Av/7VZ1XM3kPlXPvPT+nfvR1PTBkanmN70Z67UiqxxdMIjcbAL39pBfZbbvFbx7698AiX/201ew6VM2VETx87Cp323JVSiS1eRmh0u+FnP7N66rfeCn/6E4jU22zdzmKmP7cWmwiLfno6p2SmR6Q5GtyVUipUTqeVW58/30rJ/OEPxwK7Vw39cuflzNw4ia7pLXn+xyPIymgTsSZpWkYppUJRXg5XXGEF9jlzagd2qKnmWVQwihkbJnJiq10suWlURAM7aHBXSsVKJIbwjbaSErjoInjjDXjiCbjrrnqpGHNgPXP3TOKOXT/jzLQvWNTnDjLapka8aRrclVKxkehD+BYVwZgx8NFHsGABzJxZbxOny80dBbP4876ruKLDMp7u/SBtMk6OSvM0566Uio1EHsJ31y4YPx62b4fXXoOLL663SWmlk58t/IIVu4cwM2s1v+rwDNJxRNSqeTS4K6ViIxz16bGwbRuMG2f13P/9bzjnnHqbFJZU8NP5uWzIP8icywZx7ek/AB6IajM1LaOUio14qk8P1IYNMHq0lWv/7399BvYtBSVc9peP2bz3MH+75lSuPf346LeTEHruInIS8LLXoj7A74D2wE+BQs/y3xpj3m3qcZRSSSpe6tMD9f77cNllkJZmPT65fu78wy2FzHxxHS1b2HnlhpEMzmwf9WZWa3LP3RjzP2NMtjEmGzgVKAVe86yeW71OA7tSKuEtXAjnnw+ZmbB6tc/A/sKaHVz/3FoyO7bmjVvOiGlgh/Dl3McA240xO8THHVlKKZWQjIE//tGaZOPss62Lpx061NrE5Tbc/85Gnv04j/P6d+HxKUNpmxr7y5nhyrlPBhZ5PZ8pIhtE5BkR6eDrBSIyQ0RyRSS3sLDQ1yZKKRU7Lhf8/OdWYP/Rj+C99+oF9iMVTmbMz+XZj/O4/oze/OO6nLgI7ABijAltByItgN3AQGNMgYh0BfYDBpgDdDfGXN/QPnJyckxubm5I7VBKqbApK4Orr7Z66r/6lTX3aZ0BwHYfLOP659aydd8RZl8yMCYXTkXkc2NMjq914fiKuRBYZ4wpAKj+7TnwP4C3w3AMpZSKjv374ZJLYM0aeOwx+MUv6m2yNu8ANy34nIoqN89MG87ZJ3aOfjsbEY7gPgWvlIyIdDfG7PE8nQh8HYZjKKViLRqTSMfat9/ChRfCjh2weDFcfnm9TV78dAez3/yGzA6teWnGqZzQJS0GDW1cSMFdRNoA44AbvBY/LCLZWGmZvDrrlFKJqnq4AOM8NlxAIpUyNuajj+CHP7SG7l2+3Kpn91LpdHPPm9+w6LOdnHNSZ/48eSjprVJi1NjGhRTcjTFHgU51ll0bUouUUvEpkYcLaMwzz8CNN0KfPvDWW9CvX63V+0rKuWnBOj7fUczN5/TlV+NPwm6L78pAvUNVKRWYSEwiHWsulzX++vTp1t2ma9bUC+zrvz/IJU98zMbdh3nyqqHcfkH/uA/soMFdKRWoRBwuoCElJTBxIjzyCNx8M7z7LrRvX2uTVz/PZ9LfP8FhF5bcNIoJg4+LTVubID4KMpVS8S/RhgtoyI4d1kiOGzfCk09a8516qXC6mPP2Rhas2cmoDnn8pecDdPjmBOiQOBeRteeulGqaeJ9sw1/7Vq+GESNg506rt14nsH9/oJQrn/qEBWt2MqPXp8zveRsd2BPYmPNx9J5ocFdKBa+sAN46EQpXxu9kG74mA3n6aTj3XGvwrzVrrDHZvazYVMCEJ1bx3f6j/P3aU/ltxmM4qLRWBnIROY4mINHgrpQK3qorwXn42PNIVc+E0hP2ru6pdMIf1sBPf2qNEfPpp9C/f82mTpebh/+9menP55LZoRVv/2w05w/sFvxF5DiqKNLgrpQKnq+g5SoNfyoilJ5wdWA+ANwPrKiCWbNg6VLodKyCe19JOVc//Sl//WA7U0b0YslNozi+k2fy6mAvIsdRRZFeUFVKBa9DNhSuBlzHlhlX+G9uCqUnPHox/G083PcVVAgsnAdTptfaZM23Rfxs0ReUlFfx6JVDuPzUzNr7CPYi8ujF9e/ijREN7kqp4HkHMVepFdgh/KmIpk7FZww8/Qr8ZiP0PgFefx0GDKhZ7XS5eeK/23jiv1vJymjDgumncVK3MAwjEEcVRRrclVLB8w5iy86K3FyoTekJl5XBDTfACy9Y5Y4vvADp6TWr84tLufWl9eTuKOaHw3pw36WD4maY3nBKvjNSSkVXJFMRwfaEt2yBSZOsuU7vvRfuuqvWUL3vfrWHWUs24Dbw2I+yuWxoj/C1Nc5ocFdKhSZeUhGLFsGMGZCaCu+8Y43u6FFa6WTO2xtZ9Nn3DOnZnscnZx+7aJqkNLgrpeJLIEMLe2/T+hR4rS888wKccQa89JI116nHxt2H+dmidXy7/yg3ndOX28adSIo9+QsFNbgrpeJLIEMLV2+zywlPrIadq60yxzlzwGGFNbfb8OzqPP6wdDPprVN44frTGN0vo/HjJ8m49RrclVLxJZDyx+L1sMoJ/wRSgFmt4MEHa1bnF5fy68VfsubbA4zp34WHrxhMp7apgR0/Scat1+CulIovjZU/lpbCc21gaQmcBMy0w0nWNKLGGBZ/ns99b23EGMMfLj+FSTk9EQliiN44uss0FBrclVLxpaHqm3XrrImrN++FyT3hkmLIGAqjF1NYUsEd/9rA8k37OK13Rx65cgg9O7YO/vhNra2PMxrclVLxxVf1jcsFf/wj3H03dO1qTYM3ZkzN6qVf7eHO1z/iSIWTu35wMtef0RtbUyfUiKO7TEOhwV0pFd927oTrroMPP4QrroC//x06dgTgYGkl9761kde+2MUpPdL506Qh9Osa4p2m8VLaGaKQg7uI5AElWINMOI0xOSLSEXgZyMKaJHuSMaY41GMppZqZRYvgppusnvtzz1lB3pM/X/rVHu5+4xuKSyu5dWw/bjn3BP8ljklSAROMcBV7nmuMyTbG5HiezwJWGGP6ASs8z5VSKjAHD8I118BVV8HAgfDllzB1Koiw73A5N7yQy00vrqNbeipvzjyDW8c2UrseR+OsR0uk0jKXAud4Hj8PfAD8JkLHUko1VTz2aJctg5/8BHbtgvvugzvuAIcDYwyv5H7P/e9sotLp5o4L+zN9dG8cgdyQlCQVMMEIR8/dAP8Rkc9FZIZnWVdjzB7P471Avf8tIjJDRHJFJLewsDAMzVBKBS2eerSHD1vDB4wfD61bW9Ph3X03OBzsKDrK1U9/ym+WfMWA7u34961nccPZfQML7BBX46xHSzh67qONMbtEpAuwTEQ2e680xhgRMXVfZIyZB8wDyMnJqbdeKRUF8dKjfe89a5akXbvg9tutQb9atsTpcvPsx3k8uux/OGw2Hpg4iCnDewVfCZMkFTDBCDm4G2N2eX7vE5HXgBFAgYh0N8bsEZHuwL5Qj6OUioBI1nQHkvI5dAh+9Sv45z/h5JOt3vpppwGQm3eAu17/ms17SxjTvwv3TxxE9/RWTWtLklTABCOktIyItBGRtOrHwHjga+BNYKpns6nAG6EcRykVIf6mkQtl7tJqjaV8li6FQYPg2WetcWHWrYPTTuPA0Upuf/VLrnjqEw6VVfHUNafy9NScpgf2ZirUnntX4DXPrb0OYKEx5t8ishZ4RUSmAzuASSEeRykVCf56tOEYX8Vfymf/fqu3Pn++NTvSv/4Fw4fjdhte+WwnD/17M0fKndxwdh9+fl4/2iThRBrRENK7Zoz5FhjiY3kRMKb+K5RSCSEcufi6KZ/2Q6xe+q9/bV08/e1v4Xe/g9RUvtl9iLte/5ovdh5kRO+O3H/ZIE4M9WakZi75BzVWKpmEI10SiHBUl3infEqHwP0uuP56K7e+fj088AAHXcI9b3zNxU+sYueeXTx6/F95ufdvOLFdaRhPJkyi9d6HiRgT+0KVnJwck5ubG+tmKBWfvC9MIp4JqT294YyRkblQGK769/Jy+P3v4aGHoE0ba3yY66+nysCLa3Ywd/lWSsqruPq4dfy6/aOk2w9F9rxCUXeu2Dhoo4h87nXzaC2azFIq3nnnv71FsnQxHNUlK1ZYQwds3WqN5Pjoo9C1Kx9uKWTO2xvZtu8IZ5zQibsnDKD/R1OsC68QvzcZxUvZaIA0LaNUvPMOKt6ami6JdHrh++9h8mQYOxaMgf/8BxYsYLutDdc/t5apz3xGlcvNvGtPZcH00+jfrV1i3GSUCG30oj13peKd94VJ7OBoA5im34wTqZmGysrgwdnw8CPgdsM1veDPyzjY8jieeHsjz6/Oo2WKnTsu7M+0M7JIddiPvTYRbjJKhDZ60Zy7UvEuHPlv7324SsG4jq1zpMGkw01vnzHw+utw222QlwcjBK4ylGe05tnSm/nrrrEcqXDyo5ye/Gr8SXROC3C6O9Uozbkrlch85b+DDfj+8vahphc2boRf/MKaPGPQILi7Fc6TKvhX8Vj+tPlq9lZlcF7/jtx+wUlW+iWS4nEQtBjSnLtSiSjYAb/q5e1tod2VWlQEt94KgwdDbi488QRm3TqW9Z/MhVue5Pb8X9AtpYiXhi3kmWnDIx/YIb4GQYsD2nNXKhHVrdw4sM4KyHXzwR9dCkVrAfex1/or4wskF19WBo8/Dg8+CCUl1mBf999P7hEbDz29ltwdl9OndRFP9f4T5/euQs6MYl46wapZIk2Du1KJqO7dn2KvH5gBij6t/Tqx1+6te2soOLpcsGAB3HUX5OfDxRfDQw+xrm135r6xhZVb99MlLZXfTzyFSTmZOOzXReCkG5EkE1uHiwZ3pRJR3cqN4i8C67XaW/uvjPEXHN97zxqGd8MGGD4cFizgyz5DmLt8Cx/8bzWd2rTgtxf155rTj6d1ixiGlASrZok0De5KJaK6F1nr3j1ZHZgLV9Z+XUO92brBsc3dMPYcWPEhdBW4sz9fTVvEY6sOsGLpx3RoncJvLujPdSOPp427CD48L3wVPU3ZRzMc1rchWgqpVDLwFRjhWM5dBDrmwFlvNB4wN2yAe+6xyhvTHHCZi69H9ubPxVNYdngk6S3tzDj7BKaOyqJt9YiN4bg1Pw5v7493WgqpVLLz12s9f03g+9i0CWbPhldegfR0zOzZrO30Fk8cvJSVO4aRZjvCbV0XMK1/Ie3OXV77tY1dzAykV64XRMNKg7tSzd3WrdZE1AsXQuvWmDvv5IMfXMvjX+zni505ZDiK+U23Z7m601La2UuhxMdQvI1dzAykEifaF0STvC5e69yVaq62bj02BO+SJbhv+xXvvPEx53cax4/f2EZhSQVzLurFqkG3clOXJVZg9xd0/c3oVC2QXnlj+wi3JK+L1567Us3Nl19adeqLF0NKCpU33cLicVfzt01HyP/P95zYtS1zfzSEiwcfh8Nug7JvGq9CaexiZiC98mhfEA00DdRYDz9O/wLQC6pKxUIsAsLq1dbY6u+8A2lpHP7xT3k65xKe3VZOSYWTnOM7cMPZfRnTvws2m4T32PEYAAO9gNvYdsFeCA7je9HQBVUN7ko1RSgf0LICeOtEcHoG64pkZUj1kLsPPggffojJyGD3tBk8esI4Xs87ik2Ei07pzvTRvRnSs334jx/PAv03fKXdsbHmof5Aa42tryuMVUFaLaNUuIUybO6qK48Fdgi9MsRXkLJ3gJdfhrlz4YsvMD168PX/zWZOtzP4bF8F6XsrmXFWX6aOOp7u6a2afuxoC+dfAIGmgRpLKQV7IThKVUFNvqAqIj1F5H0R2Sgi34jILzzLZ4vILhFZ7/m5KHzNVSpOhPIB9bVtKJUh3hcGv1sNt5wGWVlw3XVUHS1j6a1zOH36PC625VDodjDn0oF8csd5zLqwf/QDe6gThcTiImhjF3qDvRAcpUk/Qum5O4FfGWPWiUga8LmILPOsm2uMeST05ikVp4LtrdWdBxU74BlT3dEutMqQ4vWwywlLgVUuqNxB0Rnn8PyUWTyR0gcRYUzfLlxz+vGceUJG+PPpwQh1opBwXQQNRmM9/GAvBEdpmIQmB3djzB5gj+dxiYhsAnqEq2FKxbVgP6C1xlP3MZuSv+qL9AHWskMb62/rdlvjvjzigLVgHLAppze/H3ojq9oNpHNaKj8b3pPJI3pxXPtGeujRuuAZakoi0C/VSM02FQ5RqgoKywVVEckCPgIGAbcB04DDQC5W777Yx2tmADMAevXqdeqOHTtCbodSYRPuYBfMRTfvC27eqi++DXkVnn0W/v53+O47KjplsPTU4Txw0hQKW3dkZFYa14zqx/iBXUmxB5h5jdat/6EeJ1wXQZNERKtlRKQt8CHwgDHmXyLSFdgPGGAO0N0Yc31D+9BqGRV3wh3sgtlf3cAE1qfpf8B/HfCZQFUVO04ZzlMnj+PVXsNp374tlw/L5MqcTPp2bht8+6IVDKP1F0IzGacmYtUyIpICLAFeNMb8C8AYU+C1/h/A26EcQ6mYCHdFQzBpHO/Uw1HgY2AFkA+VrWz854xLmNt3DDu69GJMp8081W4uZ/cCx1mvQKsmBPa6x4zkrf+BpiRC/RIINa8dj3X5QWpyz11EBHgeOGCMudVreXdPPh4R+SVwmjFmckP70p67ihvVH+rCj6mZvchfzy9SAeDIbnh8PLz9P8xaF+I05PXozt8HX87r/c+hZ88MJuX05LLDN5NxeEV4eqfxFszC2fNuyrk15fgxeA8jkpYRkdHASuArjs3h9VtgCpCN9YdkHnBDdbD3R4O7iqqGPoR1891ih4xRvj+owWwbiC1b4LnnMPPnI7t2cbRtOq8POJuFJ59HYb+BXDLkOC7N7sGgHu0QkeTOK4fz3JoSqJty/ECOE+YvgIikZYwxq7Bquup6t6n7VCoq/FVSlBXA/tVgXMe2bWjmorqTThtXw5UZvj7YpQ5YsgTz/PPI6tW4bTY+PmE4Cy+9lk8HjmLs0F7cmd2D0/p0wl63hDGZp5UL5NwCDZRNSbE15b0N5DhRrOLRO1RV8+PvQ7jqytqBHRr+UHsHgGp1P9R169tdpVDmhA8/xn3XAFh3GJvTSV5GT146ZxrvDB7LoJz+XDb0OOae1IWWKXb/x0/maeUCObdAA2VTAnVT3ttAjhPFMes1uKvmx9+HsN4HzWZ9qP3VnacPgI6nWjMdeefnvT/U1QGo0glfgmu1wDrBXuVmXxq8MewS/nPKuXQ7ZyQXDu7Oz0/qQpvUAD+WyTytXCDnFmigbEqgbsp7G8hxovjXlgZ31fz4+xDW/eBljLQ+5N651KJPj+3nwOfWNhN3+95faSn8Zy3lqwXbFw5alDk51Kot7ww6k2UDT6NjdgsuOH8aC07sTKsWDfTQlW+BBspofQkGcpwo/rWlo0IqVc1fDtdX3Xm1uhfaDh7EvPUWJS8tptWKZaRUlHOwZVuWn3AaKwdl0za7ivM6rueMnjZanv1SwpXXxZV4q/CJAR0VUqlA+Ot5+cqtw7He4vffU/7GWxx9+VXaf7ISu8tJaduOvD5gDFtGnkvXgXs5t/V7XH7cZ8iZDQSgeAlW8dKOxiRzWioMtOeuEle0glDdnLvL4Fz7DfvX98KxvoqMvG0A5LXvzvKTR7FvzA/o84NzOW9AN7q0axn4ceLlrsp4aYdqlE7WoRJPIIE7ikHIFBSwf8lbHHn9Tbqs/pA2Rw9TZbOTmzmATUNH477gQk4eczqnZnVsuMKlIfXSPzZrgLFo956TuX4+yWhaRiWeVVdC4WrABYUrrZmLLt5SO8CFo6zMz5eIKSlh7zvLOPTWUtJWfUiPnVvpDNCmPR/0H0nx2ePoNPEHnDa0DyPbtAjxZD3qpX/ctcct93UxLhIBP5nr55sR7bmr+OTrImbnM0Obu9IXzz5clS52bO7BwU2ZpG2uoPfWDTjcLirsDr48fhB7cs7Acf54Bkw4l6zOba07RMPN+4vGVVq75t6R5ruaJxJ/qSRKzl1pz10loA7ZVo/dW92euXdPNn0AuCutL4UAAtKhggPseGc5ZS8fot3WTLK+300fZz5udrGlRz8+nHAttnHjyLpkHMN7ZgQezJsSGOu+5uKttW/Qqe49R+sGGL1QmRS0567ik79JpP2lJhroxVc63Wz7ahv7lq7AtmoV3Taspe/u7diNG5fY2N4tk8I+HUg52UXmud047qplfpvVqKb8NeHrNb7Os27A1wudzZ5eUFWJyVcv2F+A86RxKtwOth7qScH27lQVj6LtV1/Qa/s39Dq4F4ByRwvyTjiFkuGn0/rcs+k1dghpm38Sm0k5gn2NpktUHZqWUbFRNxjl/BVybw48OPlKD3ilJkqcKWz6tpQ9/3yLqvfGkLZ1L8fv2sPJ+3cwyHwHrKawY1f2DxjMxhE/IeOC8+h8zij6p6Yea9sn64+lQsIRKJtyMTLcd1pG8ktAv2AShvbcVfD8fcDrLndXWrfoVwcte2vPhcIG5hH1se/SShdbl9/Kju3FHNmeim1nFem7Ssjau4e+Rfm0cHuCfes27OvVEVf/zrS79Ba6nH8Rtu7dfJ9DuIdnrd72wDpr6F/c0GFo48GvrAA+utQan0YEOubAWW+EFjD9nVs4AnOCjHPeXGhaRoWXvw+4v7k/GyMOTKeR7B+6kLy3fsj3B9pw+Ps2OHen0Hp3FZm7d3Ny4Xd0Pnqw5iUH27XlUK/OMHws7c88k/RzRkNWlhUgvQU6pICvVEjd8+x4KthaND4OfDD58EjU6vs7t3AcK1LjnKsm0bSMCkygvUh/VRt1xzf35um5F1fY+a68C3kV3dlf2IGK/BQce12033uEnkUT6FuUz/AjRTUvq7LbKe6eTuUpKRRltaN97xLsfVrT/icltA/knPwNC9uU4VmL1oLYfA8x29RKlkhUwDQ06mWox4rUOOcq7DS4K99TyxmsERB93TyTPqB2usXzATftszlU8BX5lR3ZVdmFXWUZHN3XCleBg5QiG20KD9PtwH56HdzL+IOf0rayrKYJ5S1TKenaGudAoTizLe0yj2LvYUgZdDpdHLZjNzQB2AXeO90adrduLt97SN4O2VD8Re3AUrjS6kn6yv/XVTeQYfwHqabe+BOJG4YCHfUyfYD1XgSTLonUOOcq7DQtk4z8jT/u/WH07qHbW4Gr3E+v2waAMW4OutIoqOpMgbsbBeWtOVTSjoqSLjjL+sDuAlru2UWng/s5rmQfvQ4WcNzhQuzGXbOnKoedI51a4+xsI6WrizaZpaT0cMNxAj/eDR9Pqh3EHe2su1Khdlmkt3q5/ADW1U0NNPUaQiD7CObfKtL56GDOJ5LHDfbCeizGEEqQawOac09W/v4zNpT7drSD9JOh6FOMgcPuNhxwpnPA2Y4iZzoHqtpx5Ehryg+2oKrYgeuwHdshN6klVXQuKab74f0cV7KfbiX7aVNVXmvXbpuN0k5dcHbrCukHSO1cTMuuTqRLFXR2QXuqvyuO8c5lN3QxsqFhdxsknh937cXeueJAc8KBfvhjGSSCOXakxpBprA3B5uCjlbNPwGsDMcm5i8gFwJ8BO/C0MeahSB0r4fmqtEgfCO6qY3/6O1pbvzsMPdbz8aRRjIGKgk85tGQ4h1oP4XDRfg65hnLY2ZqjZa2oLEmhsiSFqiMO3CWCHAX70V6klDppX1pCxtGDZJQeZNDR7XQqPUiqq/6XgluEsnapVHZwYLIEd4ZQlWEjpUsLmPRfyMzE1r07bR11/ku90g6c5XX25lUpkz4ADn0DziPWKn8fqoaG3fXXcwfrGJj6r/FODQSaEw60FNE7z1+4El7vEdrE2cEIZo7OSKVLGmtDsDn4aOXsk+zaQESCu4jYgb8A44B8YK2IvGmM2RjWA3lfAASwt7TSC+F87GgNxg3YrAASpn0bA2WSzpEqodSdylF3S0qdvSgrS6W8sgUVFSlUVrSmqmIMznIH7nLBlIGUgzx2O7byNtjKx2KvcNGi3EWrynLaVJbRtnIL7StKOb58D+nlR2rKBH1x2m1UtG1BVZoDVycbtt6GyvYtsJ15JymHXgLb/6AdkA62NEMbWzltau3BDnYHfDcavqP2F1B1IKsblMVeO9AtO+tYYAf/H6q6Qw2A/5x7zZdind56TS/eWCmJsoL6bQxHkAt24uxwCiZARWpWoMbaEOz7Ha2cfVOOE8epnIikZURkJDDbGHO+5/kdAMaYB31t3+S0zL9Gwqo1xzpmps4PVlx2GcFl7LiMDZfbhsvYcXt+Vy9zG+un+rHL8+N22zBGcBobuGwYJxi3YJyC22X9GKdg3AJOsb4HnCAuA24Ql/VY3Aaby5BSVUWLqipaOJ20dFaS6qykpbOCVGdVg4HYF6fdRkVqC6pSHbha2nG1FGgp0Mpga2twpLlIaVtFaloljrYG2gJtPD9tgRZYsa6ajzs+axFH7SBtb+M/Dx5obXUgA4QFy1daqm4PP9z1340dH6IzdG48pBYaa0Ow73c859xj/H7HIi3TA/je63k+cFqdRs0AZgD06tWrSQf5bn0Bvec2vI0ADgwOgqy9DkCVzY7TZsdls+O023HZbLhtNlx2G267DbdNcNttGJtg7IKxg6u1HXeK4EqxcbRFK0pTUpHUtthaGBwtXNhbuEhJdZLSwkmLVCepqRU4Ut1IK6AV0PLYb0eKGwd1Ux7+2PCZd64epKqxygpfNd5v9fN9KO/eWmOpjA7Z9S+ihtqD9FWSmTGyfuVMoG0MVnWP2Lv6KFpVIlGco7PJbQj2/Y6nOVDriuNUTsxKIY0x84B5YPXcm7IP+8D+/H7m2djFbf3YXNYPblJsLmziwm5zkyKe5eLCYXNjFyd2mxuHzYVDnDjEemy3uXDYqp87cYiLFJsLuzhpYXNht7uwO1ykOJy0dFTSwuYkRVyNNzRgNqyvo7r7rL4KWTfNANjbQvuBntSU93q7VQnj3aOA+n92+vsPHcjY4b5GboTgAlkkxij3NzRu3V5WpIJt9XvqqycYafEwomM8tCFa4rjMM7HTMgmcc6/12PuGIWi4LM9fRUkg5Wb+9t1Udd9/Xzn3WAi0tDGO8qMqQcX4/1TUSyFFxAFsAcYAu4C1wFXGmG98ba+lkEopFbyo59yNMU4RmQm8h1UK+Yy/wK6UUir8IpZzN8a8C7wbqf0rpZTyr+79gkoppZKABnellEpCGtyVUioJaXBXSqkkpMFdKaWSUFwM+SsihcCORjbLAPZHoTnxqjmfv55789Wczz+Qcz/eGNPZ14q4CO6BEJFcf8X6zUFzPn899+Z57tC8zz/Uc9e0jFJKJSEN7koplYQSKbjPi3UDYqw5n7+ee/PVnM8/pHNPmJy7UkqpwCVSz10ppVSANLgrpVQSirvgLiIXiMj/RGSbiMzysT5VRF72rP9URLJi0MyICODcbxORjSKyQURWiMjxsWhnpDR2/l7bXS4iRkSSpkQukHMXkUmef/9vRGRhtNsYSQH83+8lIu+LyBee//8XxaKd4SYiz4jIPhH52s96EZHHPe/LBhEZFvDOjTFx84M19vt2oA/W9M1fAgPqbHMz8JTn8WTg5Vi3O4rnfi7Q2vP4pmQ590DP37NdGvARsAbIiXW7o/hv3w/4Aujged4l1u2O8vnPA27yPB4A5MW63WE697OAYcDXftZfBCzFmn/zdODTQPcdbz33EcA2Y8y3xphK4CXg0jrbXAo873n8KjBGRCSKbYyURs/dGPO+McYz1x9rgMwotzGSAvm3B5gD/AECnhk8EQRy7j8F/mKMKQYwxuyLchsjKZDzN0A7z+N0YHcU2xcxxpiPgAMNbHIpMN9Y1gDtRaR7IPuOt+DeA/je63m+Z5nPbYwxTuAQ0CkqrYusQM7d23Ssb/Rk0ej5e/4k7WmMeSeaDYuCQP7tTwROFJGPRWSNiFwQtdZFXiDnPxu4RkTysSYB+ll0mhZzwcaFGhGbiUlFjohcA+QAZ8e6LdEiIjbgT8C0GDclVhxYqZlzsP5i+0hETjHGHIxlo6JoCvCcMeZRERkJvCAig4wx7lg3LF7FW899F9DT63mmZ5nPbTwTcacDRVFpXWQFcu6IyFjgTuASY0xFlNoWDY2dfxowCPhARPKw8o9vJslF1UD+7fOBN40xVcaY77AmoO8XpfZFWiDnPx14BcAY8wnQEmtgrWQXUFzwJd6C+1qgn4j0FpEWWBdM36yzzZvAVM/jK4D/Gs+VhwTX6LmLyFDg71iBPZlyrtDI+RtjDhljMowxWcaYLKxrDpcYY3Jj09ywCuT//etYvXZEJAMrTfNtFNsYSYGc/05gDICInIwV3Auj2srYeBO4zlM1czpwyBizJ6BXxvpqsZ+rw1uwrp7f6Vl2H9YHGax/1MXANuAzoE+s2xzFc18OFADrPT9vxrrN0Tz/Ott+QJJUywT4by9YaamNwFfA5Fi3OcrnPwD4GKuSZj0wPtZtDtN5LwL2AFVYf51NB24EbvT6d/+L5335Kpj/8zr8gFJKJaF4S8sopZQKAw3uSimVhDS4K6VUEtLgrpRSSUiDu1JKJSEN7koplYQ0uCulVBL6fysP1A/dBbJMAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_27_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_27_0.png" }, "needs_background": "light" }, @@ -747,7 +747,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.005000000000000024\n" + "0.004999999999999996\n" ] } ], @@ -1239,14 +1239,14 @@ }, { "data": { - "image/png": "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qqr47Gc/W6rTf8DeMWwfPo1hi4jIOFeywN69ezdvvfUW3//+90kkEtx8880EAgEuv/zyA35NdXUUv//IwrS+PnHQ11MFQyjnw2/7qD+2gnB9+IjOM1Ecqr5kX6qv4VOdDY/qa3jKob5KFtixWIxZs2aRSBQr9ZRTTuG11147aGB3daWO6Fz19Qna2voO+p629iRWv4uLj+5CBrstf0TnmggOp75kL9XX8KnOhkf1NTwTqb4O9odHyWaJf+hDH6K7uxvHcYBii3vmzJmlOv0HFHIudhYsH/hiZTtZXkREPKJkLeyqqipuvvlmbr31Vqqrq+ns7OS6664r1ek/oNBbAMBELSzLGrNyiIiIHI6STtNetmwZy5YtK+UpD8jpKbb0TVytaxERGf/KNq3cZLGFjQJbREQ8oGzTyul1AbAU2CIi4gFlm1buQJe4WtgiIuIFZZtWJlkMbCuuRVNERGT8K9vAdvuKXeK+RNlWgYiIeEj5plX/QGCrhS0iIh5wyMD+05/+VIpylJybHghsLZoiIiIecMjrsP/u7/4O27a5/PLLueyyy2hoaChFuUZfxgDgi6qFLSIi498hm5fPPPMM//t//2+2bNnCxRdfzFe/+lWefPJJCoVCKco3elLFFratFraIiHjAYaXVhz/8YW6//XZeeOEFli1bxn333ce5557LP/3TP412+UZNob84SzxeHRzjkoiIiBzasJqXsViMv/zLv+RrX/saU6ZM4cEHHxytco0qY8xQYFeX+baaIiLiDYe9lviWLVv49a9/zeOPP86kSZO4/PLL+cQnPjGaZRtxm3f38OdNHZx3whTcvAE/JCpDY10sERGRQzpkYD/44IM8/PDDbN++nUsuuYR//dd/Zf78+aUo24h74o/bAHh8d5qZgB23tVOXiIh4wiED+5lnnuFLX/oSF1xwAdlslqamplKUa1RlevMABOMl3axMRETkiB1yDPtf//Vfueiii3j55Zf5+Mc/zg033ADA22+/zTXXXDPqBRxJFbHiBDM7V3wcrFBgi4iINxz2pLO77rqLhx56iIqKCgAWLlzI9u3bR61go6EqXhyvtrPFx+GKwBiWRkRE5PANa5Z4fX39Po+DQW9dEmUGbgcDO1qlwBYREW847MCOxWK0t7cPTdJauXIliURi1Ao2GowpRradK95GdQ22iIh4xGEP4t58881cffXV7Ny5kyuvvJJt27bx4x//eDTLNuIG8ho7CwG/D39My5KKiIg3HHZgL1q0iH//93/nzTffBOCkk04aGs/2CjPQKT6jKkZ9lauNP0RExDOGNU06kUhw3nnnjVZZRt1gC3tKLIodzGjjDxER8YxDBvYDDzxw0NevuOKKESvMaBscw2Zwa82IWtgiIuINhwzs73znO5x44onMnTu3FOUZVYN5TXpga011iYuIiEccMrBvvfVWHnnkETZu3MinPvUpLrnkEiorK0tRthG3N7CLLWwrqsAWERFvOGRgX3755Vx++eXs2LGDRx99lM997nPMnTuXa6+91nNrig92iZvBFra6xEVExCMOO7GmT5/OVVddxRe/+EVee+013n777dEs16h4fwvbp8u6RETEIw7ZwjbG8OKLL/Lwww+zceNGPvaxj/HLX/6S6dOnl6J8I8plsIXtAj61sEVExDMOGdjnnnvu0P7X1113HZZlkc1m2bRpEwDHHXfcYZ/ss5/9LKFQcT1vn8/Hz3/+8yMs9hEygGsga7CCYEW0taaIiHjDIQM7EAjQ1dXFvffey89+9rO9l0YBlmXx7LPPHvbJzjnnnKHdvsaCMWZopy4r6tNe2CIi4hmHDOzf//73I3ayDRs2sGLFCrLZLAsXLmTp0qUjduzD4ZqBjT8sS93hIiLiKYcM7H/+539m2bJlnHTSSUd9squvvppFixbhOA5XXHEFsViMU0899YDvr66O4vcf2cSw+voPbkwSCvkxlk0waBOrCe/3PeVKdTE8qq/hU50Nj+preMqhvg4Z2PPnz+ff/u3fuOWWWzjttNO44IILOOuss4bGoodj0aJFANi2zZIlS1i5cuVBA7urKzXsc0DxP66tre8Dz6fTeZyUQz7nkHEK+31POTpQfcn+qb6GT3U2PKqv4ZlI9XWwPzwO2S986aWXctddd/Gb3/yGj3zkIzz33HN8/OMf57rrruPhhx+ms7PzsAqxefNmfvWrXw09bmpqKvlMc4PBlwcssMIavxYREe847M0/gsEg5513Hueddx7GGFavXs0zzzzDz372M5544olDfn08Huf555+ntbWVZDLJ5MmT+cQnPnFUhR8uY8AugAX4QhrDFhER7xjWbl2DLMti8eLFLF68mJtvvvmwvqahoYEf/vCHR3K6EWOMwVco3reCamGLiIh3lFUz0xjw5Q1gYamF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ySefzHPPPTe2hRqHNmzYwIoVK1i+fPlQ/Tz//POcdNJJQLHenn/++TEs4di76KKLiMVi+zz33HPPDdXRvHnzWLduHclkkhdffJETTzwRy7IAOOmkk3jhhRdKXuaxtL/6AnjggQe49957+eEPf0h3dzeA6gtYtGgRF1544dBj13WJRCIH/Dn8wx/+wOLFiwHw+/3MmjVrn5blRHeg+gL48Y9/zL333suKFStIp9PAxK6vCdMl3tHRsc8vjXg8TkdHxxiWaHy6+uqrWbRoEY7jcMUVVxCLxfapu3g8Tk9PD4VCAb9/wnx7HLUDfX91dnbu8/xgfZa7U089laVLl1JTU8Pzzz/PN77xDX7+85+rvt7n6aef5uyzz2b27NkH/Dns7Oxk1qxZQ18Tj8fp7OwcqyKPqffW10UXXcS0adOIRqM88MADfOc73+HWW2+d0PU1YVrYtbW19Pf3Dz1OJpPU1taOYYnGp0WLFgFg2zZLlixh5cqV+9RdMpmksrJSYf0+B/r+qqmp2ef5/v5+fd8B06dPp6amBoAPf/jDvP766ziOo/p6j1dffZWVK1fyzW9+E+CAP4fvr7NkMjlUt+Xk/fU1Z84cotEoUPwee/XVVwEmdH1NmMBevHgxu3fvJpfLAfDmm2+ydOnSsS3UOLN582Z+9atfDT1uampi+vTpnHfeeaxatQoo1tt55503VkUct5YuXTpUR+vXr2f+/PnE43HOOecc3n33XczAkvyrVq3i3HPPHcuijgt33HEHhUIBgG3btjFt2jRs21Z9DXjuued46aWX+Na3vkVbWxurVq064M/h0qVLeeuttwDI5/Ns2bKFU089dayKPib2V1+333770OtNTU3MmDEDmNj1NaE2//jjH//Ik08+SXV1NYFAQLPE36elpYXvfOc7HH/88SSTSQqFAn//939Pb28v3/ve95g6dSo7duzgb//2b8t6lvhrr73Go48+yosvvsjnP/95vvzlLwNw++23U19fz/bt2/na1762zyzxd955B9u2mTlzZtnNet5ffT344INs3LiRxsZGNmzYwBe/+MWhccVyr6933nmHK6+8kgULFgCQSqW44oorOP/88w/4c3jPPffQ29tLT08P55577sSZ9XwYDlRfW7duJZ1OU1tby4YNG/j6178+9DM5UetrQgW2iIjIRDVhusRFREQmMgW2iIiIByiwRUREPECBLSIi4gEKbBEREQ9QYIuIiHiAAltERMQDFNgiHvX6668zb948HnnkkaM+1p/+9CfmzZvHj370o6HnVq1axcc+9rGjOu73v/99PvnJT+7zb/78+fzd3/3d0RZZpOwosEU8yHVdvvvd7/LhD3+YtWvXHvXx3n33XRYtWsTTTz+9z3MnnHDCAb/m/PPPP+Rxb7rpJh577LGhf2eccQazZ8/mlltuOeoyi5QbBbaIB/3yl79kxowZfOELX2DdunVHfbw1a9Zw6aWXkk6n2bFjB1AM7BNPPPGojz3ojjvu4LnnnuO+++6bMJsxiJSStmQS8Zje3l5+8pOf8MADD5DP51m/fv1+3/f1r3+dpqam/b724IMPEg6Hhx6vWbOGz3zmMyxbtoynn36aL3/5y6xZs4ZPfvKTI1LmH/zgBzz55JPcf//91NfXj8gxRcqNAlvEY5YvX85ll13GtGnTcF2XXC7Hnj17mDJlyj7vu+uuuw7reNlslq1bt3L88ccTDAa59dZb+au/+is2b978gS7xa665hj179gDQ2to6FOi2bfPwww/v9/g/+tGPePzxx/nFL35BQ0PDcD+uiAxQYIt4yObNm/nlL39JVVUVjz/+OFDcQnDt2rUfCOzDbWGvW7eOxsZGYrEYCxcupKWlhZdeeonJkydTUVGxz9f95Cc/Gbp//vnn89hjjx20vCtWrOChhx7i/vvv/0D5RGR4FNgiHnLrrbfy7W9/m09/+tNDz33rW99i3bp1H5gEdrgt7PeOVVuWxfnnn89dd9110Alnh+NnP/sZv/jFL/jFL35BY2PjUR1LRBTYIp7x7LPP0trayqc+9al9np8zZw5vvvnmER93zZo1+4TzsmXL+MUvfnFUl3Rt3bqV22+/nUmTJnHDDTfs89p1113HRz7ykSM+tki50n7YIiIiHqDLukRERDxAgS0iIuIBCmwREREPUGCLiIh4gAJbRETEAxTYIiIiHqDAFhER8QAFtoiIiAf8/4DBbA/qVQNEAAAAAElFTkSuQmCC\n", + "image/png": "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idDd3T2BLSpNV1xxBUuXLsVxHC699FLC4fA+tYtEIvT395PP5/F6J83b46gdrEY9PT3MmTNn5HGRSISenp6JambJOO+885g6dSpVVVX85Cc/4Vvf+hY33XST6vUeTzzxBKeeeipz587Ve+wwvLtelfYemzQ96/r6ehKJxMj38Xic+vr6CWxRaVq6dCkAHo+HFStWsHr16n1qF4/HqampUVC/x8FqVFdXt9/7rq6ubqKaWTLmzZtHVVUVAB/84Ad54YUXAFSvd3nhhRdYvXo1N9xwA6D32KG8t16V9h6bNGG9fPlydu3aRTabBWDNmjWcccYZE9uoEtPW1sb9998/8v3WrVuZMWMGp59+Oq+88gpQqNvpp58+UU0sWQer0Zlnnsmrr74KQD6fp62tjQ984AMT1cySccstt4x8vXXrVmbOnAmoXsOefvppnnvuOb72ta/R2dnJK6+8ovfY+zhQvSrtPTapNvL44x//yGOPPUYsFsPn82k2+Ht0dHTwzW9+k8WLFxOPx8nn8/zjP/4jAwMD/Ou//iutra1s376dr371qxU9G/zFF1/k4Ycf5tlnn+Wzn/0sn//850mn0wet0V133cXAwAD9/f185CMfmRwzT0fhQPX63ve+RyqVor6+ng0bNvDlL3+Z2bNnA6rX2rVrueyyyzjuuOMASCaTXHrppZx11ll6jx3Aweq1efPminqPTaqwFhERmYwmzTC4iIjIZKWwFhERKXEKaxERkRKnsBYRESlxCmsREZESp7AWEREpcQprERGREqewFilTL730EgsWLOChhx4as9e68847R+5bs2YNH/vYx47qdb/zne/wyU9+cp9/ixYt4h/+4R+OtskiFUVhLVKGXNflxhtv5IMf/CDr168/6td78803Wbp0KY8//vjIfevWrWPx4sUHfc5ZZ511yNf96le/yiOPPDLy78Mf/jBz5szh+uuvP+o2i1QShbVIGfrZz37GjBkz+NznPsdbb7111K+3bt06LrzwQlKpFNu3bwcKAX7sscce9WsP+853vsNTTz3F3XffPSk2VhApJm2tJFJmBgYG+Pd//3fuvfde8vk8b7/99gEf9+Uvf5mtW7ce8Gc/+9nPCAaDI9+vW7eOSy65hHPOOYcnnniCz3/+86xbt46LLrpoTNr83e9+l8cee4x77rmHxsbGMXlNkUqisBYpM7fffjsXXXQR06ZNwxhDNptl9+7dTJkyZb/HHY50Os2WLVtYtGgRfr+fm266ib/8y7+kra1tv2HwK6+8kt27dwOwZ88ePvnJTwKFLVcffPDBA77+9773PX75y19y77330tzcPNpfV0RQWIuUleFtTmtra/nlL38JQC6XY/369fuF9eH2rNevX8+0adMIh8MsWbKEjo4OnnvuOaZMmUI0Gt3neT/4wQ9Gvj7rrLN45JFH3re9q1at4oEHHuCee+7Zr30icvgU1iJl5KabbuIb3/gGF1988ch9X/va13jrrbc488wz93ns4fas331u2rIszjrrLG6//fb3nVx2OH74wx9y7733cu+99zJt2rSjei2RSqewFikTTz75JHv27OEv/uIv9rl/3rx5rFmz5ohf96233tonmM855xzuvffeo7psa/Pmzdxyyy00NTVxzTXX7POzq666io9+9KNH/NoilUj7WYuIiJQ4XbolIiJS4hTWIiIiJU5hLSIiUuIU1iIiIiVOYS0iIlLiFNYiIiIlTmEtIiJS4hTWIiIiJe7/B+CDXZoER0IZAAAAAElFTkSuQmCC\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_57_1.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_57_1.png" } }, "output_type": "display_data" @@ -1291,14 +1291,14 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAesAAAFpCAYAAAC8iwByAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABMiElEQVR4nO3dd3hUVf7H8feU9N5IQu+IdEFUUAmKChYEewF11XXVVde21l3Lzwauuq7gqqy6upa1LAJixQKiIsWGhN4JPT2Z1Cnn98eQgUBCCCQzmczn9Tw8ZGZu+d5Dwifn3nPvsRhjDCIiItJiWQNdgIiIiBycwlpERKSFU1iLiIi0cAprERGRFk5hLSIi0sIprEVERFo4e6ALEGlO33//PU8++SSrVq3i2GOPxRhDZWUlo0eP5qqrriIsLOyItv/jjz/yz3/+k1dfffWgy82ePZuFCxfy2GOPHdH+9jd69GjS0tIA2LBhA8YYunXrBkBubi6fffZZk+5vfzNnzuTFF19k69atDBo0CJfLRV5eHiNGjOC+++7Dag2O/sA555zD1KlT6dSpU6BLEamTRfdZS2u3aNEirrjiCpYvX47dbqewsJA777wTm83Giy++eESBYozB4XAQFxd30OXcbjeVlZXExMQc9r7qMnHiRN544w0A7rnnHlwuF0899dQBnzWnDz74gGeffZb58+cDkJOTw5lnnsnDDz/Meeed1+z7bwolJSXEx8cHugyRegXHr70iTSgpKYlJkyaxaNEiPvzwwyPalsViaTCoAWw2W5MHNcDtt99+WJ81pw4dOtCjRw+ys7MDsv/DoaCWlk6nwSUkpaWlceKJJ/LZZ58xbtw4wHtK9+233yY8PJz09HQefvhhYmNjAe/p9ClTphAWFobH42HChAkcd9xxXH/99SxdupTVq1cD8O677zJ9+nSioqKIjIzkrrvuwuVycdddd1FaWsrXX38NQF5eHg8//DAFBQU4nU4uvfRSxo8fz/bt27n11ltZunQpkyZNYtasWezYsYMnnniCY4455oDjGDRoUL3HOGjQIN59911eeuklBgwYQExMDMuWLSM+Pp433niDb7/9lqlTpxIWFkZsbCwPP/ww6enpAGRnZ/PEE09gsViw2Ww88MADvtPrh8LtdpORkeF7fbDtLVu2jAcffJDw8HB69erFmjVrKCws5M9//jPffvstH330ERMmTGDdunVkZ2dz/vnnc/PNN/Pyyy8zZ84c7HY7vXv35u677yY8PJz169fz8MMPA+Byubjgggs477zzyMvL45577qGqqgqXy8XIkSO57rrrmDRpEv/73/+47777fGcCar4XwsLCSEpK4qGHHiI1NZWpU6fy3//+lzPOOIPS0lJWrlxJnz59mDx58iG3jchhMSKt3MKFC03Pnj2N0+ms9f5jjz1mxowZY4wx5scffzRDhw41+fn5xhhjJk2aZO677z5jjDFbtmwxgwYNMhs3bjTGGLN06VIzYcIEY4wxOTk5pmfPnsYYYxwOhxk6dKipqqoyxhjz2muvmenTp/tqGDlypG/fV155pXnuueeMMcbk5+eb4cOHmyVLltTa5scff2yMMWbatGnm6quvbvA47777bnPHHXcc8P5zzz1nhg0bZvLz843b7TZPPvmk2bJlixk4cKBZv369McaYN99801x55ZXGGGNKSkrMcccdZxYsWGCMMWbu3Lnm9NNPN263u879Tp8+3Zx00km+1ytWrDA333yzKS0tbXB7VVVV5uSTTzazZ8/2rdu7d29fuxljzIQJE8zvfvc743K5zPr16817771nZs2aZUaPHm3Ky8uNx+Mxt9xyi3n++eeNMcbccsstvrbbvXu3ueaaa4wxxkyePNm89NJLxhhjysrKzCWXXFJrHzX7XLJkiTn++ON93wvPP/+8ueKKK2q187nnnmuqqqpMZWWlGTp0qPn5558b+NcROTI6DS4hy+Px+L6eMWMGp5xyCsnJyYB3wNHs2bMxxvDRRx/Rt29fOnfuDED//v259dZbD9iezWYDvL2yiooKLr/8cs4+++wDltu1axc//PAD559/PgDJyclkZWUxffr0WsudfPLJAPTq1YutW7ce0bEOHDiQ5ORkrFYrf/7zn33H1LVrVwDOPvtsfvjhB3bv3s3cuXOJjo7mhBNOACArK4u8vDyWLl1a7/YLCgqYOHEiY8eO9R13zVmJg23v119/JT8/nzFjxgDQu3fvOnvwI0aMwGaz0bVrVy688EJmzJjBWWedRVRUFBaLhbPPPptZs2YBkJCQwGeffcbWrVtJS0tjypQpACQmJvLtt9+ydu1aoqOj6x0UOHPmTLKysnzfC+effz4LFy5k+/btvmWOO+44wsPDiYiIoFOnTkf87yPSEJ0Gl5C1bds2Onbs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63K5sTfhRBs/zliM47xyCmLyOM9xQZNtV0REpLk12LN+6623uPzyywHo1q0b3bp18332/vvvc+GFFx7yzvr37w+AzWZjyJAhLFq0qN6wLiwsP+Tt7istLY7c3NID3i/KL8OOBWPx1Pl5KKuvzaRuaq/GUXs1ntqscVpTe6Wl1T0WrMGwfv311/n555/r/Gz58uWHHNbr16/n559/9i2/efNmRo0adUjrNgV3tRM74RhdsxYRkSDTYFgnJSXx22+/cfbZZ2Oz1T4tvWXLlkPeUWxsLN988w27d+/G4XCQkZHBOeec0/iKD5PH5b1WrfusRUQk2DQY1u+++y7ff/89H374IUOHDmXcuHG+0O7bt+8h7yg9PZ2pU6cefqVHyFXtBCI1wExERILOIT0UZfjw4UyePJm2bdty//338/777+Nyufw6mvtIedwaDS4iIsHpkJ9gBt4R4HfccQczZ87kmmuuaa6amoW7uiasdc1aRESCyyGH9e7du3n00Uc5/fTTycjI4IEHHmjOupqcrlmLiEiwavCa9a5du5g2bRoffPABp512GtOnT/fdX71p0yY6d+7c3DU2Cd9DUVDPWkREgkuDYT1q1CgyMzO599576dy5M/n5+eTn52OM4Y033mDKlCn+qPOIeZx7ng2u+axFRCTINBjWgwYNYvz48QBs27at1mcOh6N5qmoGZs9pcIPCWkREgkuDYX3DDTdwwgkn1PlZly5dmryg5qJng4uISLBqcIBZfUENMHDgwKaspVkZd80AM12zFhGR4NJgWH///fcNbqRmco+WzF1zGlxhLSIiQabBsP7iiy8a3MjcuXObpJjmVNOz1mlwEREJNg1es37nnXd49913ATDGYLFYfJ/VvB4wYEDzVdhEPHuuWaNbt0REJMgc0q1bNc/0rqqqIiIiotmLag57r1mrZy0iIsGlwdPg+96udemll9b67LXXXmvygppLTVija9YiIhJkGgxrY/aGm8dTu1c6a9aspq+omRiPrlmLiEhwajCs971Gve/XUDvIWzqP21urHjcqIiLBpsFr1ps3b+a+++6jX79+VFRU4HQ6CQsLAw4M75Zs72hwhbWIiASXBsN62rRprFixgqVLlxIWFsbgwYNp27YtPXv2ZNeuXf6osUkorEVEJFg1GNZDhgxhyJAhvtfV1dWsWrWK5cuXk5CQ0KzFNSnPntPgumYtIiJBpsGw3l94eDj9+/enf//+zVFPs/F41KMWEZHg1OAAs1ZDo8FFRCRIhUxYmz2jwXWftYiIBJvQCWuPbt0SEZHgFHphHTx3m4mIiAAhFNY1o8F1GlxERIJN6IT1nozWfdYiIhJsQias954GV1iLiEhwCZmw9p0G1wAzEREJMiEU1t6/1LMWEZFg49ewrqys5JxzzmHy5Mn+3K1XzQxhGg0uIiJBxq9h/eyzz3L00Uf7c5c+RmEtIiJBym9hPXPmTI455hjat2/vr13WVvOUUZ0GFxGRINPoiTwOx7p169iwYQO33347q1evPqR1kpKisdtth7W/tLS4A96z1sy9ba3781CnNmkctVfjqL0aT23WOK29vfwS1l988QXh4eFMmzaNn376CafTyWuvvcZVV11V7zqFheWHta+0tDhyc0sPeN/j2vu40bo+D2X1tZnUTe3VOGqvxlObNU5raq/6funwS1jfcMMNvq+rqqooLy8/aFA3K12zFhGRIOPXAWaff/45S5Ys4ddff+Wjjz7y5673uXXLv7sVERE5Un7pWdc444wzOOOMM/y5y718A8wCs3sREZHDFToPRamhsBYRkSATMmHtu2NLYS0iIkEmZMLa1JwGD5kjFhGR1iJkostSM7JMPWsREQkyIRPWPgprEREJMqET1mbvE8xERESCSchE194BZupai4hIcAmZsKZm0q3QOWIREWklQia69g4wU89aRESCS8iEdU3POoSOWEREWonQia49PWuLVT1rEREJLiET1joNLiIiwSp0whr1rEVEJDiFTFjrPmsREQlWIRNdFt8165A5ZBERaSVCJrl816xtOg0uIiLBJWTCuuah4BYNMBMRkSATMmHtOw2unrWIiASZ0AtrXbMWEZEgEzLJpZ61iIgEq5AJa981a/WsRUQkyIRMclmM91DVsxYRkWATQmFdcxo8ZA5ZRERaiZBJLl2zFhGRYBU6Yb3nUK02W4ArERERaZzQCes9PWurToOLiEiQCZnk8oW1PWQOWUREWgm7v3bk8Xi4/vrr6d+/P06nk5ycHB5//HEiIyP9sv+a0eDo1i0REQkyfk2ugQMHctNNN3HbbbdRUVHBnDlz/LbvmvmsbXZdsxYRkeDit7C2Wq3ceOONALhcLnbt2kWXLl38tfu991nrNLiIiAQZv50Gr/Htt9/y2muvkZWVRb9+/fy235pr1upZi4hIsLEYY0wgdnzXXXcxYMAALr/88jo/d7nc2JswWN9IfYUO+d0ofjCXcx+6sMm2KyIi0tz81rNet24dW7duJSsrC4D27duzdevWepcvLCw/rP2kpcWRm1t6wPvWPafBq5yeOj8PZfW1mdRN7dU4aq/GU5s1Tmtqr7S0uDrf91tYh4eH87///Y8VK1bgcrlYv349f/nLX/y1e981a926JSIiwcZvYd2xY0emTp3qr90doCas7eF+v0wvIiJyREKmm+m7dStMA8xERCS4hExY11yzRo8bFRGRIBMyyVVz65Y9IizAlYiIiDROCIW19/S37rMWEZFgE0JhXdOz1gAzEREJLiET1lbfrVvqWYuISHAJmbD2PW40IjzAlYiIiDROyIS1dc81a3tYyByyiIi0EiGTXLpmLSIiwSpkwrrmmrUtXNesRUQkuIRMWPseN6pr1iIiEmRCJqytnj1hHabT4CIiElxCJ6xretZReoKZiIgEl5DpZvrCOkxhLSLSnFasyOaf/3wOl8vFscceR1VVFQATJ/6OuLi652sGeO+9t7noosv8VWZQCZmedc1o8PBoXbMWEWlORx/dl0GDBtO3b3+uueYP3HjjLQwaNJg//el6XC5Xveu9995//VhlcAmJnrXb5cZWc5+1bt0SkRBy2WVRfPll0/6/N2qUi7ffrmjUOiecMJx///tfLFr0AzNn/o8BAwaxZctmTjttNMceexxfffUFDkcpr7zyEp06dWbYsJN48MF7D1guVIVEcnncHu/feDSRh4hIgGRkZLJ9+zYuuugyjj32OEpKirn99ps59tjjOPXU03jhhee45po/AFBZWVnncqEqJMK6urwaAGMxAa5ERMS/GtsDbk47d+5g9Oiz+OWXn1i+fBk2m52iosI6lzXGHNJyoSIkrlm7qp0AuK3uAFciIhKaFi9eSHV1NVu35pCXl8tVV13LJZdcXmsZq9WKMYa1a9cwe/bMepcLRSHRs3ZVqGctIuIvq1atYOnSX3A6nbz22stUVVXhcrl47rkXKCwsZN68r3j++X8QHx+Pw+Fg3ryvyMo6lWHDTmTq1GcBGDt2fL3LhSKLMaZFJlhubulhrZeWFnfAurvW7iBv+HYqwioYsu3EpiivVamrzaR+aq/GUXs1ntqscVpTe6Wl1X1rW2icBq+q6Vl7AlyJiIhI44VEWLurvdeqPQprEREJQiER1s5K7wAz9axFRCQYhURYu5177rO2KqxFRCT4hERY19y6ZWiRY+lEREQOKiTC2uPUNWsREQleIRHWripdsxYRkeDlt7DesmULt99+Oy+//DKPPvooU6dO9deucVV7Z3lRz1pEpPVZs2YNt9xyPZ98Mvuwt/Hee2/7vp4z51NGjx55WNvZsWM7l112PjfddB033XQdU6b8/bBr2pffnmBWVFTEmWeeyahRowA488wzycrKom/fvs2+b4/LexpcTzATkVATf9kFRHw5p0m3WTXqdEre/l+TbvNI9OzZkwEDBh3RNt5777++ubRPP30M06b987C3NWHCVZx55jlHVM/+/BbW/fv3r/Xa4/EQFRXll3179vSsdRpcRKT5ffzxh7z00vNccsnlrF+/lqKiYs488xwWL/6BrVtzePLJvzNnzmds3Lie5OQUdu7cwZ133svGjet5+unJREVFcf/9D3HXXbcxduw4xo27oM79vPHGa2zatIH+/fuwadNGMjPbArBhw3reeut1unXrzubNm7jiiqux2ez84x9/w+l00rdvf3JyNtO5czcmTryKWbM+8E3P2adPP44/fhgA77zzJqtXr6KszMETTzyNzWZj5szpzJ8/74Ba+vTp65sx7Pvv51NUVIjD4eC000bTpUvXI29UEwBz5swxjzzyyEGXcTpdTbe/f3xi5jLX/DfxP022TRERqd+ECRPMggULjDHG3HDDDea9994zxhjzyCOPmM8++8x89dVXxu12+96bO3euMcaYvLw8c8YZZ5j//Oc/5sMPP6x3+6tXrzZjxozxvb7jjjvM9OnTjTHGXHTRReann34yxhizcOFCc+ONNxpjjJk+fbq54447fOuMGTPGrF692hhjzMiRI2ttf+TIkWbjxo3GGGOuu+46s2zZskM67rKyMrNmzRpjjDG5ublm5MiRpri4+JDWPRi/T+SxcOFCFi1axH333XfQ5QoLyw9r+3U9I7aksIwUovBYPK3m+bFNqTU9V9cf1F6No/ZqvNbQZtXVLmJiksnNLSU8PIr4+FRyc0ux2yPZuTOfNm3Sefjhx0hISGTFitV06NB1zzGHM3HiNbzwwnO8996setvh55+zychoS25uKWlpcaSkpFNaWklubimrVq1izpyvmTfve6qrq7DZwsjNLaW0tJKUlHTfNtPT2/Lz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\n", + "image/png": "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\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_59_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_59_0.png" } }, "output_type": "display_data" @@ -1390,15 +1390,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1406,15 +1402,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1422,15 +1414,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1438,15 +1426,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1454,15 +1438,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1470,11 +1450,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1482,7 +1462,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1490,24 +1474,74 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", - "/opt/homebrew/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAJjCAYAAADQ22+yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABycUlEQVR4nO3deZiN9f/H8ec5Z1Z7mBlr1tKGChWVvRi7yo+UhELZIjIIibFOISTJFpWlMoPIVshWqC/aENmyzNga2yxn+f1xM0zGMWfmnjMz5vW4rnNdc+5zn3N/3vdyzvt+fz73PRaXy+VCRERERExjzewGiIiIiNxulGCJiIiImEwJloiIiIjJlGCJiIiImEwJloiIiIjJlGCJiIiImMwnsxsgkpONGDGCbdu2AbB//36KFy9OQEAAAAsWLEj6+1ZeffVV+vfvT/ny5W86z8SJEylVqhQtWrRId7uv6tGjBz/99BPr1q0jMDDQtM8VEcnuLLoPlkjWULduXSZOnEjFihUzuympcvLkSZo3b07lypWpXbs2zz//fGY3SUQky1AXoUgWNWnSJDp16kTTpk3p27cvp06d4vXXX6d169bUrVuXdu3acfr0acBIznbv3s2PP/5ImzZt6NevHy1atKBRo0Zs3boVgLCwMGbMmAFAxYoVmTRpEm3atKFu3brMnj0bAIfDwahRo3jqqad45plneOedd2jXrl2K7Vu4cCHVq1enZcuWfPrpp1x/rrZz505atWpFkyZNaNmyJVu2bHE7vUKFCpw5cybp/Vef//jjjzRr1ow2bdrQrFkzEhISGDFiBK1ataJRo0aEhoayY8cOAC5evMiAAQNo0KABjRo14v333+fSpUtUq1aNv//+O+mzO3TowJo1a8zYRCIiN6UESyQL++eff1i8eDERERF88803PPjggyxYsIC1a9cSEBBAVFTUDe/ZtWsXHTt2JDIykueee47JkyffME9CQgJ33HEH8+fP54MPPuC9994jPj6eRYsW8dtvv7Fs2TLmz5/PkSNHUmyX3W5n4cKFNGvWjLp163L69Gk2bNgAQGJiIt26daNbt24sW7aM4cOHM3LkSBISElKc7nQ63a6Dffv28d5777FkyRJ+++03oqOjWbBgAcuXL6dly5ZMnz4dgA8++ID4+HiWL19OZGQkP//8M7t376ZFixYsWrQIgMOHD/P3339Tp04dj7aDiIinNAZLJAt78MEH8fExDtP27duzfft2Zs2axcGDB9m3bx+VK1e+4T3FihXj3nvvBeC+++5j8eLFKX52vXr1ALj//vtJSEjg0qVLrF+/nubNm+Pv7w9A69atmTt37g3vXbt2LU6nkyeffBIfHx8aNWrEnDlzqFWrFnv37sVqtVK7dm0AHnjgAZYuXcpvv/2W4vRbKVq0KMWLFwfgoYceIn/+/EnJ348//kju3LkB2Lx5MwMGDMBms2Gz2Zg3bx4AwcHBvPjii/Tu3ZsFCxbw3HPPYbPZbrlcEZH0UIIlkoXlypUr6e9x48axa9cunn32WR599FHsdjspDaG8fmC8xWJJcR4gKYmyWCwAuFyupGTuKqs15SL3F198QVxcHE8//TRgVMRiYmLYt28fNpst6TOv2rt3702nly1bNtm0hISEZM+vXwfr1q0jPDycDh06UK9ePcqWLcuSJUsA8PHxSfb5x48fJyAggDJlylChQgXWrl3L0qVLk6pZIiIZSV2EItnExo0bad++PS1atKBQoUJs3rwZh8Nh6jJq1arFkiVLSEhIwG63p1j9+vvvv/npp59YvHgx3333Hd999x0bN26katWqzJkzh7Jly2KxWNi0aRMAv/32G+3bt7/pdKfTScGCBdm9ezcAq1evvmn7Nm3aRJ06dWjbti0VK1ZkzZo1SeugevXqLF68GKfTSUJCAj179ky6QrNt27aMHTuWypUrExISYuo6ExFJiSpYItlEt27dGDt2LB9++CE2m42HH36Yw4cPm7qMZ555hr///psWLVqQK1cuSpQoccPtF7744gvq16/PnXfemWx69+7d6dKlC3369GHSpEmMHDmSsWPH4uvry6RJk/Dz87vp9Lfffpt3332XfPnyUaNGDYKCglJsX5s2bejbty9NmzbFZrNRtWpVVq1ahdPppHv37oSHh9O8eXMcDgeNGjVKqrDVqVOHt99+mzZt2pi6vkREbka3aRCRJBs3buT06dM0b94cMO7T5e/vT79+/TK5Zenz888/M3jwYJYtW3ZDN6WISEZQgiUiSU6ePElYWBinT5/G4XBwzz338M4775A3b97Mblqa9e/fn59++okxY8bwyCOPZHZzRCSHUIIlIiIi2d7SpUuZOnUqiYmJvPzyy7zwwguZ2h6NwRIREZFs7eTJk4wfP56vv/4aPz8/2rRp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TKYKloiIiLjlUD3GY1pjIiIiIiZTBUtERETc0m0aPKc1JiIiImIyVbBERETELf2zZ89pjYmIiIiYTBUsERERccvh0n2wPKUKloiIiIjJVMESERERt3QfLM9pjYmIiIiYTBUsERERccup+2B5TGtMRERExGSqYImIiIhbGoPlOa0xEREREZMpwRIRERExmboIRURExC3daNRzqmCJiIiImEwVLBEREXFL/+zZc9k+wSpgzfYhpIuVnF22deLK7CZkKqsl58YfkMP3fR37OXffl+whZ2cnIiIicksO3WjUY1pjIiIiIiZTBUtERETccubwLum0UAVLRERExGSqYImIiIhb2XUMVmRkJBERERQqVAiA2rVr07t3b44dO0a/fv04ffo0ZcqUISIigty5cxMbG0vfvn05cuQIBQsWZMKECQQFBaVp2dlzjYmIiIjcwu7duwkLCyMqKoqoqCh69+4NwLBhw2jbti3ffvstDzzwAB9++CEAEyZMoGrVqqxYsYJWrVoRHh6e5mUrwRIRERG3HFi99oiNjeXo0aM3PGJjYz1u9+7du4mMjKRZs2b07duXf//9l8TERLZt20aDBg0AeOaZZ/j2228BWLduHU2bNgWgSZMmbNiwgcTExDStMyVYIiIikmXMmTOHevXq3fCYM2eOx58VFBREjx49iIqKomjRorz77rucPXuWPHny4OPjkzTPyZMnAYiOjk7qEvTx8SFPnjycOXMmTXFoDJaIiIi45fTi/yJs3749LVu2vGF6vnz5bvqeFStWMGrUqGTTypYty+zZs5Oev/LKK9SvX5+33nrrhvdbLDePz2pNWy1KCZaIiIhkGfny5XObTKUkNDSU0NDQZNPOnz/P7NmzefnllwFwuVz4+PhQsGBBLly4gMPhwGazERMTQ3BwMADBwcGcOnWKIkWKYLfbuXDhAgUKFEhTHOoiFBEREbe8OQbLLLly5eKTTz5h586dAMybN4+nnnoKX19fqlatyvLlywHjSsOaNWsCUKtWLSIjIwFYvnw5VatWxdfXN03Lt7hcrmz9D53OHSuZ2U3IVPp/ZNl69003Rw6O35bD930d+zl33wcoUOyIV5c38c/6XltWr3vWmPZZ27dvJzw8nLi4OEqXLs3YsWPJmzcv//zzD2FhYZw+fZqiRYvy/vvvkz9/fs6dO0dYWBhHjhwhb968REREUKJE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euK322Hoe8aXk9MJrZpAh9aZG4+nUhP/7j+g73BY+Xny98aeh3feh31/gwVjkH+PbHSbitTE/tli+PxrY4xd/rzw9htwV5nkn3Nvrex3FSGk/9i/avEKYxxSdrqKEHL2vv9fZh0LGcHbVxGWnfC+15Z14I2bXLaazdwywTpy5Ah//vkne/bsYc+ePfz5558cO3aMEiVKsHLlylQvaNu2bVSrVi3p+YEDBzhy5Ai1atVKe+vJuARLREQkq/J6gjXeiwlW79sjwbrlGKySJUtSsmRJnnrqWh/PpUuX2LvXs417fXIFULZsWcqWzaYjQUVERETcSNO1Xbly5eLBBx80uSkiIiKSFd1O96fylmzaMy4iIiKSdWWjuxOJiIhIplAFy2OqYImIiIiYTAmWiIiIiMnURSgiIiLuqYvQY6pgiYiIiJhMFSwRERFxS7dp8JwqWCIiIiImUwVLRERE3HNZMrsF2Y4qWCIiIiImUwVLRERE3NMYLI+pgiUiIiJiMlWwRERExC1dReg5VbBERERETKYKloiIiLinCpbHVMESERERMZkqWCIiIuKWxmB5ThUsEREREZOpgiUiIiLuqYLlMVWwREREREymBEtERETEZOoiFBEREffURegxVbBERERETKYKloiIiLil2zR4ThUsEREREZMpwRIRERExmRIsEREREZNpDJaIiIi4pzFYHlMFS0RERMRkqmCJiIiIW7qK0HOqYImIiIiYTBUsERERcU8VLI+pgiUiIiJiMlWwRERExD1VsDymCpaIiIiIyVTBEhEREbd0FaHnVMESERERMZkSLBERERGTqYtQRERE3FMXocdUwRIRERExmSpYIiIi4pYGuXtOFSwRERERk6mCJSIiIu6pguUxVbBERERETKYKloiIiLinCpbHVMESERERMZkqWCIiIuKWriL0nCpYIiIiIiZTBUtERETcUwXLY6pgiYiIiJhMFSwRERFxTxUsj6mCJSIiImIyVbBERETELV1F6DlVsERERERMpgRLRERExGTqIhQRERH31EXoMVWwREREREymCpaIiIi4pUHunlMFS0RERMRkSrBERETEPZcXHybasWMHzz77LM2bN6d9+/b8888/AMTGxtK5c2dCQ0N54YUXiImJASAhIYF+/foRGhpKy5Yt2b9/vxG+y8WYMWNo2LAhjRo1YseOHbdcthIsERER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txnsDmOsztu94Lr7+2V56T32Z3xhVDFHvJV5MaRHTt/+10vNurjqn+PQrMPtexXhgz28dxXh/ybdHlcRev02DYsWLWLFihXMnDnTlM/LqARLREQkq1KClfV5vXe8VatWtGrVytuLFRERkbS6jcZGeYvugyUiIiJismx6fYeIiIh4i0UVLI+pgiUiIiJiMlWwRERExD1VsDymCpaIiIiIyVTBEhEREbc0BstzqmCJiIiImEwVLBEREXFPFSyPqYIlIiIiYjJVsERERMQ9VbA8pgqWiIiIiMmUYImIiIiYTF2EIiIi4pZu0+A5VbBERERETKYKloiIiLinCpbHVMESERERMZkqWCIiIuKWxaUSlqdUwRIRERExmSpYIiIi4p4KWB5TBUtERETEZKpgiYiIiFu6D5bnVMESERERMZkqWCIiIuKeKlgeUwVLRERExGSqYImIiIhbGoPlOVWwREREREymCpaIiIi4pwqWx1TBEhERETGZEiwRERERk6mLUERERNzSIHfPqYIlIiIiYjJVsERERMQ9VbA8pgRLRESyHSfOzG5CplL3U9anBEtERETc0hgszykJFhERETGZKlgiIiLinkslLE+pgiUiIiJiMlWwRERExC2NwfKcKlgiIiIiJlMFS0RERNxTBctjqmCJiIiImEwVLBEREXHLkrPv65omqmCJiIiImEwVLBEREXFPY7A8pgqWiIiIiMmUYImIiIiYTF2EIiIi4pZuNOo5VbBERERETKYKloiIiLinf/bsMVWwREREREymCpaIiIi4pTFYnlMFS0RERMRkqmCJiIiIe6pgeUwVLBERERGTqYIlIiIibmkMludUwRIRERExmSpYIiIi4p7ug+UxVbBERERETKYKloiIiLilMVieUwVLRERExGSqYImIiIh7qmB5TBUsEREREZMpwRIRERExmboIRURExC0NcvecKlgiIiIiJlMFS0RERNxzqoTlKVWwREREREyWIytY67bA+I8hIREqlIUR/SFP7tTP53DAmCmwcZvxd4fW0Ka58Z6DR+Ht0XAuFnIFwuiBULaU8dq2nRDxEcTHG58zagCULGa89vli+PIb47X7K8CIt8DP7/aKf8ESmPsl2GxQoqgR4x0F4PwFeKIllL3z2rLDusGjD2dM/DeT3vVyvR5vQ3BhGPwGxJ6H9m8kf33vAejXFV5unVHReM6s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xYoVboc55bj7YImIiEjWFRsby9GjR294XL3VkyeWL19O+fLlSUxM5OTJk+TLZ4xnWbduHU2bNgWgSZMmbNiwgcTERNatW0ezZsadwKtVq8bZs2c5duwY69evp1GjRlitVsqUKUOxYsX45Zdf3C47x93JXURERDzkxQrWnDlzmDx58g3Tu3fvTo8et76o5nq+vr7s2bOHDh064OPjQ58+xm02oqOjCQoyBs76+PiQJ08ezpw5k2w6QFBQECdOnCA6Oprg4OAbprujBEtERESyjPbt29OyZcsbpl+tPqVkxYoVjBo1Ktm0smXLMnv2bCpUqMDmzZuZP38+vXv3Zv78+Sl+hvUmN3S0Wq0p3ivwZvNfpQRLRERE3HN6r4KVL18+t8lUSkJDQwkNDU02LT4+njVr1lC/fn0AmjVrxpgxxk2Sg4ODOXXqFEWKFMFut3PhwgUKFChAcHAwMTExlCpVCoCYmBiCg4MJCQkhJubaVbhXp7ujMVgiIiJy2/Hx8WHYsGH8+uuvgFHlevhh4yaTtWrVIjIyEjDGaVWtWhVfX19q1apFVFQUYFyB6O/vT7FixahZsyZLly7F4XBw6NAhDh48SMWKFd0vP+NCExERkduBy5X9boljs9kYP348Q4YMweFwEBISQni48W+/evXqRVhYGI0bNyZv3rxERBj3QWvXrh1DhgyhcePG+Pn5MXbsWAAaNmzIrl27kgbAh4eHExAQ4Hb5XrsPVkbRfbByNt0HS/fByql0HyzdB8ubGhb23v727amPvbasjKQKloiIiLjnxTFYtwuNwRIRERExmSpYIiIi4l72Hk2UKVTBEhERETGZEiwRERERk6mLUERERNxz5uwrttNCFSwRERERk6mCJSIiIu5pkLvHVMESERERMZkqWCIiIuKWS2OwPKYKloiIiIjJVMESERER9zQGy2OqYImIiIiYTBUsERERcU//7NljqmCJiIiImEwVLBEREXHPpasIPaUKloiIiIjJVMESERERt1wag+UxVbBERERETKYKloiIiLinMVgeUwVLRERExGRKsERERERMpi5CERERcUuD3D2nCpaIiIiIyVTBEhEREfc0yN1jqmCJiIiImMzicrnUsSoiIiJiIlWwREREREymBEtERETEZEqwREREREymBEtERETEZEqwREREREymBEtERETEZEqwREREREymBEtERETEZEqwREREREymBEtERETEZEqwREREREymBEtERETEZEqwREREREymBCsdli5dSqNGjXjqqaf47LPPMrs5XnfhwgWaNGnC0aNHM7spXjd58mQaN25M48aNGTt2bGY3x+smTpxIo0aNaNy4MbNmzcrs5mSKMWPGEBYWltnN8LqXXnqJxo0b07x5c5o3b87OnTszu0le9d133/HMM8/QsGFDRowYkdnNkSzMJ7MbkF2dPHmS8ePH8/XXX+Pn50ebNm149NFHKV++fGY3zSt27tzJ22+/zcGDBzO7KV63efNmNm7cyOLFi7FYLLzyyiusXr2ap556KrOb5hU//fQTW7duZcmSJdjtdho1akStWrUoW7ZsZjfNa7Zs2cLixYupXbt2ZjfFq1wuFwcOHGDdunX4+OS8n48jR44wdOhQFi1aRKFChWjfvj3r16+nVq1amd00yYJUwUqjzZs389hjj1GgQAFy5cpFgwYN+PbbbzO7WV6zcOFChg4dSnBwcGY3xeuCgoIICwvDz88PX19fypUrx7FjxzK7WV7zyCOP8Omnn+Lj48Pp06dxOBzkypUrs5vlNefOnWP8+PF07do1s5vidQcOHMBisfDqq6/SrFkz5s2bl9lN8qrVq1fTqFEjihQpgq+vL+PHj6dy5cqZ3SzJonLeKYhJoqOjCQoKSnoeHBzMrl27MrFF3hUeHp7ZTcg0d911V9LfBw8eZPny5cyfPz8TW+R9vr6+fPDBB8ycOZOGDRsSEhKS2U3ymiFDhtC7d2+OHz+e2U3xutjYWKpXr84777xDXFwcL730EmXKlOHxxx/P7KZ5xaFDh/D19aVTp07ExMRQp04d3njjjcxulmRRqmClkcvlumGaxWLJhJZIZtm3bx8dO3akf//+lC5dOrOb43U9e/Zky5YtHD9+nIULF2Z2c7xi0aJFFC1alOrVq2d2UzLFQw89xNixY8mVKxcFCxbkueeeY/369ZndLK9xOBxs2bKFcePGsXDhQnbv3s3ixYszu1mSRSnBSqOQkBBOnTqV9Dw6OjpHdpflVDt27ODll1/mzTffpGXLlpndHK/av38/f/zxBwCBgYE8/fTT7NmzJ5Nb5R3Lly9n06ZNNG/enA8++IDvvvuOkSNHZnazvGb79u1s2bIl6bnL5cpRY7EKFy5M9erVKViwIAEBAdSrVy9H9VyIZ5RgpVGNGjXYsmULZ86c4fLly6xatYqaNWtmdrPEC44fP063bt2IiIigcePGmd0crzt69Chvv/02CQkJJCQksHbtWqpUqZLZzfKKWbNmsWzZMqKioujZsyd169Zl4MCBmd0srzl//jxjx44lPj6eCxcusHjx4hxzcQdAnTp12LhxI7GxsTgcDn744Qfuv//+zG6WZFE559TDZCEhIfTu3ZuXXnqJxMREnnvuOSpVqpTZzRIvmDFjBvHx8YwePTppWps2bXj++eczsVXeU6tWLXbu3EmLFi2w2Ww8/fTTOTLRzInq1KmTtO2dTidt27bloYceyuxmeU3lypV55ZVXaNu2LYmJiTz++OM8++yzmd0syaIsrpQGE4mIiIhImqmLUERERMRkSrBERERETKYES0RERMRkSrBERERETKYES0RERMRkSrBERERETKYES0RERMRkSrBExGOhoaHUrFmTffv2ZXZTRESyJCVYIuKxZcuWUbp0aVauXJnZTRERyZKUYImIx2w2G1WqVMkx/+RZRMRT+l+EIuKxuLg4vvnmG/SftkREUqYKloh4bPz48YSEhHDkyBEuXryY2c0REclylGCJiEd++eUXvv32WyZNmkTevHnZu3dvZjdJRCTLUYIlIqkWHx/PgAEDGDZsGAUKFOCee+7ROCwRkRQowRKRVJs4cSIPPfQQtWvXBuCee+7hzz//zNxGiYhkQUqwRCRVdu3axbfffsvAgQOTpt17772qYImIpMDi0mVAIiIiIqZSBUtERETEZEqwREREREymBEtERETEZEqwREREREymBEtERETEZEqwREREREymBEtERETEZP8PEtaWECqzn4YAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAJjCAYAAADdxR/1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABlyElEQVR4nO3deXgUReLG8W9uQC7FXIAorCu6CnhwiO4SUJEkQEJc/IEHIugKyiUqQpBDOUQiCnLIooIcigIqBDAREA2IoBzLinjhRgGRIwkRwiU5Zn5/lOQwoQmk05OB9/M88yRT0zNd1T0zqX6ruuPjdrvdiIiIiEi58/V0BUREREQuFOp4iYiIiDhEHS8RERERh6jjJSIiIuIQdbxEREREHKKOl4iIiIhD/D1dAZEL2ZgxY9i0aRMAqamp1KlTh0qVKgGwYMGC/N/P5F//+heDBw/myiuvPO0yr7zyCpdffjmdOnUqc71P6devHxs3biQlJYXKlSvb9roiIucrH13HS6RiuO2223jllVdo1KiRp6tSKgcOHCA2NpYmTZrQunVr7rnnHk9XSUSkwtNQo0gFNWXKFB566CE6duzIU089RUZGBo899hhdunThtttuo1u3bhw8eBAwnbavv/6aL7/8kq5duzJo0CA6depEhw4d2LJlCwBDhgxh5syZADRq1IgpU6bQtWtXbrvtNubPnw9AXl4e48aNo23bttx11108++yzdOvWrcT6LVy4kJYtWxIXF8fcuXMpfAz31Vdfcffdd9OhQwfi4uLYsGGDZXnDhg3JzMzMf/6p+19++SUxMTF07dqVjh07kp2dzZgxY7j77ruJjo4mKioqv33Hjh0jPj6edu3aER0dzcsvv8zx48dp1qwZP//8c/5rP/jgg3z88ce27CMRkbOljpdIBfbrr7+yePFiJkyYwIcffsj111/PggULWL16NZUqVSIxMbHYc7Zt20bPnj1ZsmQJd911FxMnTiy2THZ2NhdffDHvvvsukydPZty4cZw8eZJFixbxzTffsHz5ct59911++eWXEuuVm5vLwoULiYmJ4bbbbuPgwYOsXbsWgJycHPr06UOfPn1Yvnw5o0eP5vnnnyc7O7vEcpfLZbkNfvzxR1566SWWLVvGN998Q1paGgsWLCApKYm4uDhef/11ACZPnszJkydJSkpiyZIl/Oc//+Hrr7+mU6dOLFq0CIDdu3ezc+dO2rRpc1b7QUTELprjJVKBXX/99fj7m49p9+7d2bx5M2+++SY7d+7kxx9/pEmTJsWeU7t2ba655hoA/va3v7F48eISX/v2228H4NprryU7O5vjx4+zZs0aYmNjCQoKAqBLly7Mmzev2HNXr16Ny+XiH//4B/7+/kRHRzN37lwiIiLYsWMHvr6+tG7dGoDrrrsuv9NUUvmZhIeHU6dOHQBuuOEGatSokd8p/PLLL7nooosAWL9+PfHx8fj5+eHn58dbb70FQEhICPfffz8DBw5kwYIFdO7cGT8/vzOuV0SkPKjjJVKBValSJf/3F198kW3btvHPf/6TFi1akJubS0lTNAtPyPfx8SlxGSC/c+Xj4wOA2+3O7+Sd4utbcig+f/58fv/9d+68807AJGjp6en8+OOP+Pn55b/mKTt27DhteYMGDYqUZWdnF7lfeBukpKQwduxYevTowe23306DBg1YunQpAP7+/kVef9++fVSqVIn69evTsGFDVq9ezfLly1m4cGGJbRIRcYKGGkW8xLp16+jevTudOnWiVq1arF+/nry8PFvXERERwdKlS8nOziY3N7fEtOznn39m06ZNfPDBB3zyySd88sknrFu3jmbNmjF37lwaNGiAj48Pn3/+OQDffPMN3bt3P225y+Xikksu4euvvwZg+fLlp63f559/Tps2bbj33nu57rrr+Pjjj/O3QcuWLVm8eDEul4vs7Gz69++ff8bovffeS0JCAo0bNyY0NNTWbSYicjbU8RLxEn369CEhIYGOHTvy6KOPcuONN7J7925b13HXXXfRuHFjOnXqRNeuXQkICCh2mYh33nmHO+64g8svv7xY/RITEzl69ChTpkxh6tSpxMbGMnLkSKZMmUJgYOBpy4cNG8aoUaOIi4sjNTWV4ODgEuvXtWtXNm7cSMeOHYmLi+Oyyy5jz549uFwu+vbtS0BAALGxsXTq1ImIiIj8RK5NmzYcP36crl272rq9RETOli4nISL51q1bx8GDB4mNjQXMdcaCgoIYNGiQh2tWNlu3bmXYsGEsX7682HCniIiT1PESkXwHDhxgyJAhZGRk4HK5uPrqq3n22WepVq2ap6t2zgYPHszGjRuZOHEi119/vaerIyIXOHW8RERExOstW7aM6dOnk5ubS/fu3bnvvvs8XaUS6axGERER8WoHDhxg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xOe73W58fX1xu934+PgUK3e5XCWWnwt1vERERMSSy8HreFWvXt2yk1WSqKgooqKiipQdOXKE2bNn8+CDDwKms+Tn5wdASEgIGRkZhIWFkZuby7Fjx6hZsyahoaGkpaVRr149ADIyMggJCSEsLIy0tLT81z5Vfi401CgiIiLnnSpVqvDGG2/w1VdfAfDWW2/lJ14REREsWbIEgKSkJJo2bUpAQAAREREkJiYCsHnzZoKCgqhduzatWrVi2bJl5OXlsWvXLnbu3EmjRo3OqV4+brfbXfbmeY5r/1WeroKIiIijfMN2OLq++f9r4di67r3yS9tea/PmzYwdO5bff/+dK664goSEBKpVq8ahQ4cYMmQIv/zyC9WqVWPChAnUrVuXkydPMmLECLZv305gYCBjxozh2muvxe12k5CQwNq1awGIj4/n73//+znVSR0vERERL6OOl/fSUKOIiIiIQzS5XkRERCx56wVUKyIlXiIiIiIOUeIlIiIilvRPsu2jLSkiIiLiECVeIiIiYinPwQuonu+0JUVEREQcosRLRERELLnQWY12UeIlIiIi4hAlXiIiImJJc7zsoy0pIiIi4hAlXiIiImIpTzmNbbQlRURERByixEtEREQsufS/Gm2jxEtERETEIUq8RERExJLmeNlHW1JERETEIep4iYiIiDhEQ40iIiJiyaULqNpGW1JERETEIUq8RERExFKe/km2bZR4iYiIiDhEiZeIiIhY0hwv+2hLioiIiDhEiZeIiIhY0hwv+yjxEhEREXGIEi8RERGxpDle9tGWFBEREXGIEi8RERGxlKfEyzbakiIiIiIOUeIlIiIillw6q9E2SrxEREREHKLES0RERCxpjpd9tCVFREREHKLES0RERCy53JrjZRclXiIiIiIOUcdLRERExCEaahQRERFLecppbKMtKSIiIuIQJV5nafw0WJECNaqb+1dcBhOfNb+3jIGw4IJle3aFjm2drmH5WfIRzFlUcP/IUTiQDp++B/7+8NzL8P3/oHIluCsK7v+n5+paHlathalvgq8v1KgGowZBvTpFl+k3DEIuheGPe6SK58zthvhxcFUD874ti8xDMGQs7D0APr4w6im44Trz2NKVMOtd8PGBSkHwTH+47uoyV7/cWb33L72koNxb9/+ZWLW/6kUweiJs+968j5pcA8MHmv17vtiRCmMmw9Gj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sy1uvtEMtXYfAAEB5nISU8d6uuber3r16lSvXv2snhMVFVVif+LYsWM8+uij1KxZk+nTpxMQEABASEgIGRkZhIWFkZuby7Fjx6hZsyahoaGkpaVRr149ADIyMggJCSEsLIy0tLT81y1cfmpiPkB6ejr169e3rOsZLyexe/dufvjhh/zb999/z969e6lbty4rVqwo9UbZtGkTzZo1y7//008/8csvvxAREVHq1yhJeVxOQkREpCJz+nISDSa+7Ni6fhr4xJkXKqXHHnuMWrVq8dxzzxVJop577jlCQ0Pp3bs3S5cuZfny5bz22mu88cYb7Nq1i9GjR7N582ZGjhzJhx9+SHJyMu+//z4zZsxgz549PPDAA6xYsYIdO3YwYsQI3nnnHU6cOEHnzp155513CA0NPW2dzuk6XsePH2fHjh1cf/3157Qh7KSOl4iIXGjU8Tqzb7/9lri4OK688kr8/5hoGxISwuuvv86hQ4cYMmQIv/zyC9WqVWPChAnUrVuXkydPMmLECLZv305gYCBjxozh2muvxe12k5CQwNq1awGIj4/n73//O2Cu/vD++++Tm5vLo48+SqdOnSzrpQuoioiIeBmnO15/edm5jlfqE/YlXhWRF15pR0RERMQ7eclJ7iIiIuIxXj02VrEo8RIRERFxiDpeIiIiIg7RUKOIiIhY01CjbZR4iYiIiDhEiZeIiIhY8lHiZRslXiIiIiIOUeIlIiIi1txe+F/fKyglXiIiIiIOUeIlIiIi1jTHyzZKvEREREQcosRLRERELOmsRvso8RIRERFxiBIvERERsabEyzZKvEREREQcosRLRERELGmOl32UeImIiIg4RImXiIiIWFPiZRslXiIiIiIOUcdLRERExCEaahQRERFrGmq0jRIvEREREYco8RIRERFLupyEfZR4iYiIiDhEHS8RERERh6jjJSIiIuIQzfESERERa5rjZRslXiIiIiIOUeIlIiIilnRWo32UeImIiIg4RImXiIiIWFPiZRslXiIiIiIOUeIlIiIi1pR42UaJl4iIiIhDlHiJiIiIJZ3VaB8lXiIiIiIOUcdLRERExCEaahQRERFrGmq0jRIvEREREYco8RIRERFLmlxvHyVeIiIiIg5R4iUiIiLWlHjZRomXiIiIiEOUeImIiIg1JV62UeIlIiIi4hAlXiIiImJJZzXaR4mXiIiI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OQE6dDdn+t0XZzo43rZdTqd6NZgyGp6fDCezzTDNc0+ZDllFV9rtciH6c/t37zFzE8/boSYp5pH7zeU0Oj5okvp+PaHRNZ6ulVR0Pm63cwOqP/30E1lZWVx//fVs2bKFI0eO5HfIzpVr/1X2VE5ERMRL+IbtcHR9be4c79i6Pl052LF1eYKjx2YNGhRMFrnpppucXLWIiIiIxykUFxEREUs+F8DZhk7RSeEiIiIiDlHHS0RERMQhGmoUERERa6e5mLKcPSVeIiIiIg5R4iUiIiKWNLnePkq8RERERByixEtERESsKfCyjRIvEREREYco8RIRERFrmuNlGyVeIiIiIg5R4iUiIiKWfBR42UaJl4iIiIhDlHiJiIiINc3xso0SLxERERGHKPESERERSz76X422UeIlIiIi4hAlXiIiImJNc7xso8RLRERExCFKvERERMSaAi/bKPESERERcYg6XiIiIiIO0VCjiIiIWPLR5HrbKPESERERcYgSLxEREbGmxMs2SrxEREREHKLES0RERKzpXwbZRomXiIiIiEOUeImIiIglndVoHyVeIiIiIg5R4iUiIiLWlHjZRomXiIiIiEOUeImIiIg1JV62UcdLRMQLbcnO9nQVPGroFc08XQWPWqXLO3gtdbxERETEmjp6ttEcLxERERGHKPESERERS7qOl32UeImIiIg4RB0vEREREYdoqFFERESsaajRNkq8RERERByixEtERESsKfGyjRIvEREROS9t3ryZu+66i44dO9K7d28OHz4MwMaNG2nRogWxsbHExsYSHx8PQHZ2NoMGDSIqKoq4uDhSU1MBcLvdjB8/nsjISKKjo9myZUv+OmbNmkVkZCTt2rVj5cqVZ6yTEi8RERGx5qWJV3x8PNOnT+fKK69kwoQJzJw5kyeeeILt27fTs2dPevXqVWT5efPmUblyZZKTk9m0aRPx8fEsXLiQFStWkJqaSlJSErt27aJXr14kJSXx7bffsnTpUhITEzl69ChdunShefPm1KxZ87R1UsdLREREKoysrCyysrKKlVevXp3q1auf1WslJSUREBBATk4OBw4coGHDhgB8/fXXZGRksHz5curUqcPIkSMJDw8nJSWFAQMGANCsWTMyMzPZu3cva9asITo6Gl9fX+rXr094eDhbt27lyy+/pG3btgQFBREUFETz5s1JSUmhU6dO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iZdtlHiJiIiIOESJl4iIiFhzKfGyixIvEREREYco8RIRERFLbreu42UXJV4iIiIiDlHiJSIiItY0x8s2SrxEREREHKLES0RERKzpOl62UeIlIiIi4hB1vEREREQcoqFGERERsebS5STsosRLRERExCFKvERERMSaJtfbRomXiIiIiEOUeImIiIglt+Z42UaJl4iIiIhDlHiJiIiINc3xso0SLxERERGHKPESERERa/on2bZR4iUiIiLiECVeIiIiYs2tsxrtosRLRERExCFKvERERMSSW3O8bKPES0RERMQhSrxERETEmuZ42UaJl4iIiIhD1PESERERcYiGGkVERMSSJtfbR4mXiIiIiEOUeImIiIg1Ta63jRIvEREREYf4uN1uDdyKiIiIOECJl4iIiIhD1PESERERcYg6XiIiIiIOUcdLRERExCHqeImIiIg4RB0vEREREYeo4yUiIiLiEHW8RERERByijpeIiIiIQ9TxEhEREXGIOl4iIiIiDlHHS0RERMQh6niJiIiIOEQdrzJYtmwZ0dHR3Hnnnbz99tuero7jjh49SocOHdizZ4+nq+K4qVOn0r59e9q3b09CQoKnq+O4V155hejoaNq3b8+bb77p6ep4xPjx4xkyZIinq+G4bt260b59e2JjY4mNjeWrr77ydJUc9cknn3DXXXcRFRXFmDFjPF0d8UL+nq6Atzpw4AATJ07kgw8+IDAwkK5du9KiRQuuvPJKT1fNEV999RXDhg1j586dnq6K49avX8+6detYvHgxPj4+PPzww6xatYq2bdt6umqO2LhxI1988QVLly4lNzeX6OhoIiIiaNCggaer5pgNGzawePFiWrdu7emqOMrtdrNz504+/fRT/P0vvD8fv/zyCyNHjmTRokXUqlWL7t27s2bNGiIiIjxdNfEiSrzO0fr167n55pupWbMmVapUoV27dnz00UeerpZjFi5cyMiRIwkJCfF0VRwXHBzMkCFDCAwMJCAggL/85S/s3bvX09VyTPPmzZk7dy7+/v4cPHiQvLw8qlSp4ulqOebQoUNMnDiR3r17e7oqjvvpp58A6NmzJzExMbz11lserpGzVq1aRXR0NGFhYQQEBDBx4kSaNGni6WqJl7nwDllskpaWRnBwcP79kJAQtm3b5sEaOWvs2LGeroLH/PWvf83/fefOnSQnJ/POO+94sEbOCwgIYPLkycyaNYvIyEhCQ0M9XSXHjBgxgoEDB7Jv3z5PV8VxWVlZtGzZkuHDh5OTk8MDDzxA/fr1ufXWWz1dNUfs2rWLgIAAevfuzb59+2jdujWPP/64p6slXkaJ1zlyuVz4+Pjk33e73UXuy/nvxx9/pGfPnjz99NNcccUVnq6O4/r378+GDRvYt28fCxcu9HR1HLFo0SLCw8Np2bKlp6viETfccAMJCQlUq1aNSy65hM6dO7NmzRpPV8sxeXl5bNiwgeeff54FCxawbds2Fi9e7OlqiZdRx+schYWFkZ6enn8/PT39ghx2u1Bt2bKFBx98kCeffJK4uDhPV8dRqampfPfddwBUrlyZO++8kx9++MHDtXJGUlISn3/+ObGxsUyePJlPPvmE559/3tPVcszmzZvZsGFD/n23231BzfW69NJLadmyJZdccgmVKlXijjvuuKBGOsQe6nido1tuuYUNGzaQmZnJiRMnWLlyJa1atfJ0tcQB+/bto0+fPkyYMIH27dt7ujqO27NnD8OGDSM7O5vs7GxWr17NTTfd5OlqOeLNN99k+fLlJCYm0r9/f2677TaGDh3q6Wo55siRIyQkJHDy5EmOHj3K4sWLL5iTSgDatGnDunXryMrKIi8vj88++4xrr73W09USL3PhHKrYLDQ0lIEDB/LAAw+Qk5ND586dady4saerJQ6YOXMmJ0+e5IUXXsgv69q1K/fcc48Ha+WciIgItm3bRqdOnfDz8+POO++8IDugF6I2bdrw1Vdf0alTJ1wuF/feey833HCDp6vlmCZNmvDwww9z7733kpOTw6233so///lPT1dLvIyP2+12e7oSIiIiIhcCDTWKiIiIOEQdLxERERGHqOMlIiIi4hB1vEREREQcoo6XiIiIiEPU8RIRERFxiDpeIiIiIg5Rx0tEzlpUVBStWrXixx9/9HRVRES8ijpeInLWli9fzhVXXMGKFSs8XRUREa+ijpeInDU/Pz9uuummC+afY4uI2EX/q1FEztrvv/9OUlIS+o9jIiJnR4mXiJy1iRMnEhISwu7duzl27JinqyMi4jXU8RKRs7J161aSk5OZMmUK1apV0wR7EZGzoI6XiJTayZMnGTp0KM899xw1a9bk6quv5vvvv/d0tUREvIY6XiJSaq+88grXX389bdq0AeDqq6/WBHsRkbOgjpeIlMq2bdv46KOPGDp0aH7ZNddco8RLROQs+Lh1WpKIiIiII5R4iYiIiDhEHS8RERERh6jjJSIiIuIQdbxEREREHKKOl4iIiIhD1PESERERcYg6XiIiIiIO+X/V99MCDsebmwAAAABJRU5ErkJggg==\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_61_8.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_61_13.png" } }, "output_type": "display_data" @@ -2609,14 +2643,14 @@ "outputs": [ { "data": { - "image/png": "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h85768x1Xfess85yt23btsvr9laXo8Vzzz3nfuITn3Cz2ayby+XcpUuXuo8++qjeY/3YU309+eSTo/L9NSpa5s8//zxz586lpqaGqqoqPvShD/H4448PdbGGlXXr1mEYBp/73Oc455xzWL58ueptD+677z6uv/56xowZA8Brr73GlClTmDRpEl6vl7PPPpvHH3+cLVu2kMlkOPbYYwE477zzRm3dvbfOUqkUzc3NfPOb3+Tss8/mtttuw3GcfutyNGlsbOTaa6/F7/fj8/mYPn06GzZs0HusH3uqr+bm5lH5/vIOdQHKYfv27TQ2NhYfjxkzhtdee20ISzT89PT0MG/ePG644QYymQxLly7lzDPPVL29x4033rjL4z29t7Zt27bb842NjWzbtq1s5RxO3ltn7e3tzJ07l29/+9tUVVXx+c9/nt/85jdUVVXtsS5HkxkzZhQ/3rBhA4899hif/vSn9R7rx57q65577uHFF18cde+vUdEyd113t+cMwxiCkgxfxx13HDfffDNVVVXU1dVx/vnnc9ttt+32OtXbrvp7b+k9179Jkybx4x//mPr6ekKhEJ/+9Kd55plnVGc7Wbt2LZ/97GdZtmwZkydP3u3zeo/tauf6mjZt2qh8f42KMG9qaqKtra34ePv27cUuPyl46aWXeOGFF4qPXddlwoQJqrd96O+99d7nW1tbVXe9Vq9ezRNPPFF87LouXq9XP6e9Xn75ZS6++GK+8pWvcO655+o9tg/vra/R+v4aFWH+gQ98gBdeeIGOjg7S6TRPPvkkJ5988lAXa1iJx+PcfPPNZLNZEokEDz30ELfccovqbR+OOeYY1q9fz8aNG7Ftm//+7//m5JNPZsKECQQCAV5++WUAHn74YdVdL9d1+c53vkN3dzf5fJ7/+q//4owzzui3LkeTrVu3csUVV/C9732PxYsXA3qP7c2e6mu0vr9GxZh5U1MTV199NUuXLiWfz3P++edz9NFHD3WxhpVTTjmFlStX8pGPfATHcbjooouYM2eO6m0fAoEAN910E1/84hfJZrMsWLCAD3/4wwB873vf47rrriOZTHLEEUewdOnSIS7t8DBz5kwuu+wyLrzwQizLYuHChZx11lkA/dblaHHHHXeQzWa56aabis9dcMEFeo/1o7/6Go3vL8Pd00CCiIiIVIxR0c0uIiIykinMRUREKpzCXEREpMIpzEVERCqcwlxERKTCKcxFREQqnMJcRESkwinMRUYQy7I488wzWbhw4aBds7u7m8MPP5xPfOITuzz/rW99i+985zsHfP0f//jHHHfccbv8Oeqoozj88MP53e9+d8DXFxkNRsUOcCKjxb333ktHRwc9PT2kUimqqqoO+JqrVq2isbGRf/zjH7S2thZPnlq1ahUXXXRRv1/3wx/+EIAvfvGLe73+FVdcwRVXXFF8nEwmueSSS6itrR3UX0pERjK1zEVGiHg8zo9+9CO++c1v4vF4WLt27aBc9+233+bII4/kxBNP5KmnngLAtm3WrFnDrFmzBuUefTKZDJdffjmhUIjbbrsNn883qNcXGanUMhcZIX7yk58wadIkzjrrLH7605+yevVqjjnmmN1e9/nPf754OMd7zZkzh9tvv32X59566y1mzpzJ1KlTefTRR7ngggtYt24djuMwffr0QSt/LpfjyiuvJJ/P85//+Z8EAoFBu7bISKcwFxkBNm3axN13380dd9wBwKGHHsrq1av3+Nr3hvW+rFq1itNOO425c+dyww03kEgkWLVqFTNmzBi0lrNlWXz5y1+mvb2dX/7yl4MyPCAymijMRUaAW265hQ984AOccMIJQCHMdz6ffqByuRzr1q1j1qxZVFdXc9RRR/GXv/yFVatWMXPmzN1ev3OrP5vNAvCLX/wC2HOrH8BxHK699lrWr1/P3XffTTQaPeByi4w2CnORCvfSSy/xxBNPEIlEOPHEE4HC2LNp7nlKzKWXXrrXbvaf//znxcdr1qwhGAwyadIkAE4//XSeeuop2traOOOMM3b7+p3Den8nwF1//fW89tprLF++nLq6ur2+VkT2TGEuUsFc1+Wmm27iggsu4Morryw+39zczMc//nGam5sZP378Ll+zc1jvy6pVqzj88MMxDAOAU089ldtuuw3TNPcZ0vvju9/9Ln/961/51a9+xZgxYw74eiKjlcJcpIL99re/pb29nWuuuYZwOFx8vqGhgXA4zOrVq3cL81KsWrVqlxnrEydOZMKECaxevXqP3eylWLNmDXfddRc+n4+zzjprl8+FQiGeffbZfnsXRGRXhuu67lAXQkRERAZOv/aKiIhUOIW5iIhIhVOYi4iIVDiFuYiISIVTmIuIiFQ4hbmIiEiFU5iLiIhUOIW5iIhIhfv/AaB42/HV2OLoAAAAAElFTkSuQmCC\n", + "image/png": "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RETE5xTmIiOIbduccsopnHzyyXvtmD09PRx44IF89rOf3e7+r3/969x8880f+vjf+973OPzww7f7OuSQQzjwwAN5+umnP/TxRUaDUbECnMho8bOf/YzOzk56e3vJZDLE4/EPfczly5eTTCZ599132bJlS2k96+XLl3Puuefu8nV33nknAFdeeeVuj3/FFVdwxRVXlG6n02k+//nPU1dXxyc/+ckPXb/IaKCeucgI0dvby/e+9z1uuOEGAoEAK1eu3CvHffvttzn44IM55phjeP755wFwHId33nmHmTNn7pX3GJDL5bjsssuIxWLceeedhEKhvXp8kZFKPXOREeIHP/gB++23H6eeeio//OEPWbFiBYcddtgOz7v00ktLm0283xFHHMFdd9213X3Lli1jxowZTJkyhaeeeoqzzz6bVatW4TgO06ZN22v1FwoFrrjiCizLYvHixUQikb12bJGRTmEuMgKsW7eO++67j8WLFwOw//77s2LFip0+9/1h/UGWL1/OiSeeyNFHH81NN91EKpVi+fLlHHDAAXut52zbNl/+8pfp6Ojgpz/9KVVVVXvluCKjhcJcZAS49dZb+fjHP85RRx0FFMN82/3pB6tQKLBq1SpmzpxJbW0thxxyCC+++CLLly9nxowZOzx/215/Pp8H4Cc/+Qmw814/gOu6XHvttaxevZp7772X6urqD123yGijMBfxuVdffZVnn32WRCLBMcccAxTPPZvmzqfEXHzxxbsdZv/xj39cuv3OO+8QiUSYOHEiACeddBLPPfcc7e3tO52ctm1Y7+kEuJtuuomlS5dy//3309DQsNvnisjOKcxFfMzzPG655RbOPvvs7WaEb9iwgc985jNs2LCBcePGbfeabcP6gwz0wA3DAODEE0/kjjvuwDTNDwzpPfHNb36TF198kfvvv780S15EyqcwF/GxJ598ko6ODq6++urtzjM3NTVRVVXFihUrdgjzcixfvny7Gevjx49n/PjxrFixYqfD7OV45513uOeeewiFQpx66qnbPRaLxXjppZd2ObogItszPM/zhroIERERGTz92SsiIuJzCnMRERGfU5iLiIj4nMJcRETE5xTmIiIiPqcwFxER8TmFuYiIiM8pzEVERHzu/wcIkgT1XzdEzgAAAABJRU5ErkJggg==\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_136_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_136_0.png" } }, "output_type": "display_data" @@ -2704,7 +2738,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.022022882954618378\n" + "0.022022882954618364\n" ] } ], @@ -3120,19 +3154,19 @@ "Mean squared error: 12.36\n", "Variance score: 1.00\n", "Mean absolute error: 2.83\n", - "[ 0. 618.32047562 -861.13519106 1404.91549644] -11.057088709962727\n" + "[ 0. 618.32047562 -861.13519106 1404.91549644] -11.057088709963182\n" ] }, { "data": { - "image/png": "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jb3WyYo1mRRln8QExMa2YdzEngQG+nm7NPkBBQAREakXxaU1rFiVTk1xFWaziQEDohn1oy6YzWrvb4oUAERE5IrtP3yCdWv246quw9/Pwo+SutK7b5S3y5ILUAAQEZHLZhgGqd/ksXPrYXC4CA0NYOKknkS2b+Xt0sQDBQAREbksDqeLVesPkJtZBIZBVPswJk3uRXBIgLdLk4ugACAiIpestNLOio8zqThejslkomfvSEZf1x2LVQ/zaS4UAERE5JJkHysj5ZNMnBW1WK1mho/oxKDBHTS4TzOjACAiIhfFMAy2fXucHZuzoc5FUJAfY8f3JLZTG2+XJpdBAUBERDxyOF188tlBctILMRkG7WwhTJqsh/k0ZwoAIiJyQeVVtSxflU758QrMJhM9erbjujFxWNXe36wpAIiIyHkdPlbGJ6szcVTWYrWYGTayE/Fq728RFABEROScduw5xldfZIPjVHv/uAk96RjbxttlST1RABARkTM4nC5SPj9EzncFoPb+FksBQERE3MqralnxcQZlx07d3989rh3Xj1V7f0ukACAiIgAcOV7G6tWZOCpqsVjMDBsRy+CrYtTe30IpAIiICGl7j7N1Y9Z/2/vH96Sj7u9v0RQARER8mNN1qr0/e++p9v6IdiFMTu5NWJja+1s6BQARER9VUV3L8lWn2vs53d4/Ru39PkMBQETEB33//n6LxczQ4bFcNUTt/b5EAUBExIcYhsH2b4+xfVOOu71/7ISexOr+fp+jACAi4iMcThcfr9vP0X3F7vv7Jyf3JjRU7f2+SAFARMQHnCyvYcVHGVQWVWIymejZJ5LR13XHYlF7v69q0D3/pz/9icmTJzN58mReeOEFAFJTU0lOTmbcuHG89NJL7vemp6czbdo0xo8fz29+8xscDgcAeXl53H777UyYMIH777+fysrKhixZRKTFOXj4JO++s4vKokqsVgs/urYbY8bG6eTv4y5q79fU1JCZmYlhGNTU1FzUglNTU9m0aRPLly9nxYoV7N27l1WrVvHkk0+yePFiVq9ezZ49e9i4cSMAjz76KE899RRr1qzBMAyWLl0KwDPPPMOMGTNISUmhf//+LF68+DJ/VBER32IYBl9uO0LKynScNQ5CQgO4aWo/Bgxo7+3SpAnwGAB27tzJmDFjmDVrFvn5+SQlJfH11197XLDNZuPxxx/H398f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WCz8/Oc/56677jrrfTNnzmT79u2kpaXx3HPPsWzZMu655x5mzJjBhx9+yJEjR5g0aRK/+tWvePzxx0lLS2PQoEH88Y9/pHXr1thsNpYsWXLOGmpra/H39wcgLCyMoKCghvyRRXyOAoCInOWBBx7g6quvZvPmzaSlpXH33XczZcqUs9731ltvceedd3LDDTdw6623uqevXbuWf/zjHzidTm666SbS09NZsGAB3bt3595772XJkiU8+OCDF6whIyOD3/3ud5jNZgICAnjuuefq/ecU8WUKACJyhs8++wyA++67D4CRI0cSFRVFVlbWRS/jjjvuoF27dgAkJCQQHh5O3759ARg7dixbtmzxuIyBAwfy9ttvX2r5InKRdBeAiJxhw4YNXH/99e7XLpeL8vJyIiIiLnoZ/zn5AwQEBJzxOjAwkKqqqvopVkQumwKAiJxh165dtGnTxv1669athIeH061bN+8VJSL1TgFARNzq6urIzs5mzZo12O129u/fzzPPPMPDDz/s7dJEpJ6pD4CIuB08eJCOHTsSFxfHqFGjiIiI4P7772fChAneLk1E6pmGAhYRtw8//JB169bxyiuvnHP+gAED8Pf358477+SXv/xl4xb3PT/72c/YuXMnAwcO5J///KfX6hBpznQFQETcMjIyLtjW/+233zZiNef3j3/8w9sliDR76gMgIm779u1TZz8RH6EmABERER+kKwAiIiI+SAFARETEBykAiIiI+CAFABERER+kACAiIuKDFABERER8kAKAiIiID1IAEBER8UEKACIiIj7o/wG/u0XiRQqQvQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAFnCAYAAADQYfGFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABIkklEQVR4nO3deXwV5d3//9dZspGEJeGEhBC2EBbDEiSs2iDKJhC0VFtFpFZbqVX81Va8cbmheLvVm+q32GI3rXW5pahAECEooCibQBQQTMKaAEnICtm3c2Z+f6CnRoXDkuQkOe/n4+FDzsw5M5/MZDLvM9c111hM0zQRERERn2L1dgEiIiLS/BQAREREfJACgIiIiA9SABAREfFBCgAiIiI+SAFARETEB9m9XUBzO326EsNonDsfw8NDKC6uaJRlycXT9vc+7QPv0vb3vpa8D6xWC506BZ9zvs8FAMMwGy0AfL088R5tf+/TPvAubX/va637QE0AIiIiPkgBQERExAcpAIiIiPggBQAREREfpAAgIiLigxQAREREfFCTBoA//vGPTJkyhalTp/LPf/4TgG3btpGcnMzEiRN5/vnn3e9NT09nxowZTJo0iUcffRSn0wlAbm4ut912G5MnT+aee+6hsrKyKUsWERHxCU0WAHbu3MmOHTtYvXo177zzDq+99hoZGRk88sgjLF26lLVr17J//342b94MwLx581iwYAHr16/HNE2WL18OwKJFi5g5cyapqakMHDiQpUuXNlXJIiIiPqPJAsCIESN49dVXsdvtFBcX43K5KCsro0ePHsTExGC320lOTiY1NZWcnBxqampISEgAYMaMGaSmplJfX8+uXbuYNGlSg+lt1R/+8HvuuGMms2bdzDXXjOKOO2Zyxx0zee+91bz00l956aW/NlstFRUVPPzwgwAUFRXy4IP3X9Jyrr460eN7bropmby83AuqRUREGkeTjgTo5+fHkiVLePnll5k8eTIFBQU4HA73/IiICPLz878z3eFwkJ+fz+nTpwkJCcFutzeYfjnCw0Mu6/Pf5nCENtqynnnmCQBOnjzJ7Nmzee+9d93zXnjhhUZf3/nU1pZy9OghHI5QHI5Q/vWvf17ysjzVbLNZCQsLPuf7vlnLxS5bmp72gXdp+3tfY+2DulondrsVq615uuc1+VDA999/P7/4xS/45S9/SVZWFhaL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VIYMGUJwcLB7+mOPPeZx4RUVFdxyyy385S9/oVu3bjz88MOkpaURFBQEwH333ceECRNIT0/n0UcfpbKyksTERBYtWoTdbic3N5d58+ZRXFxMr169WLx4cYMaREQuhWmapKXlsHvnCVxOA2uAjTFJvRkyIMLbpYk0G49NAEOHDmXKlClER0fTsWNH93+e7N27l1tvvZWsrCz3tP379/P666+TkpJCSkoKEyZMAGDevHksWLCA9evXY5omy5cvB2DRokXMnDmT1NRUBg4cyNKlSy/tpxQR+Up1dT2rVh7g023HcTkNQh3B3HJrgk7+4nM8XgG47777qKmpITs7m7i4OGpra93f4M9n+fLlLFy40N2HoLq6mtzcXB555BHy8/OZMGEC9913H3l5edTU1JCQkADAjBkzWLJkCTfffDO7du3iz3/+s3v6rFmzmDdv3mX8uCLiy7KzT7Pxg0NUV9WD1ULfIVFce1VPbNYLGhVdpE3xGAD27t3Lvffei91uZ9myZdxwww28+OKLXHnllef93JNPPtngdVFREaNGjWLhwoWEhoYyZ84c3n77beLi4nA4HO73ORwO8vPzOX36NCEhIdjt9gbTL9f5RkW6FA6H7g32Jm1/72sN+8BwGax/P5O0nScxDIPA9oHc8MOBDOjT2dulXbbWsP3buta6DzwGgN///ve88sorPPjgg0RGRvLss8/y5JNP8s4771zUimJiYtzf5gFuv/12Vq1aRWxsbIMOhl93OPy+joeN0RFRQwG3Hdr+3tca9kFZaQ1r12ZQXFgJQHhMB5In9yM4yK/F1+5Ja9j+bV1L3geehgL2eN2rpqaGPn36uF+PHTsWl8t10YVkZmayfv1692vTNLHb7URGRlJYWOieXlRUREREBGFhYZSXl7vXVVhYSESE2uhE5MKYpkn6l/n8+829Z0/+ditDr+rBT26MJzjIz9vliXidxwBgt9spLS11f/s+evToJa3INE2eeuopSktLqa+v59///jcTJkwgOjqagIAA0tLSAEhJSSEpKQk/Pz8SExPdTyJctWpVg8cSi4icS12tk3VrM/lw4xHq6pwEdAjkhzcNZMywbrqlWeQrHpsA7rnnHmbNmkVhYSG/+c1v2Lp1K48//vhFr6h///7cfffd3HrrrTidTiZOnMi0adMAWLx4MY899hgVFRXEx8cze/ZsABYuXMj8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1ejrSk9PZ8GCBZSVlfHyyy+7p7/66qusWLGCt956q9HXKeIrFABE5LLk5uZ+70NSLkRhYSH333//d6YvWbIEh8PBgAEDeOutt1i7di1//etfefzxxy+3XBH5igKAiHxHRUUFv//970lNTcVutzNnzhzuuOOO77xv9uzZ7Nq1i7S0NJ566ilWrFjBXXfdxcyZM0lJSeHEiRNMmTKF3/zmN8yfP5+0tDSGDBnCH//4Rzp06IDD4eDNN9/83hrq6urw9/cHIDQ0lKCgoKb8kUV8jgKAiHzHvffey1VXXcXWrVtJS0vjzjvv/N5v+a+++iq3334706dP5+abb3ZPf//99/nnP/+Jy+XixhtvJD09nSeffJI+ffrw85//nNdee4377rvvvDUcOHCAxYsXY7VaCQgI4Kmnnmr0n1PElykAiEgDH374IQB33303AKNHj6ZLly5kZWVd8DJmzZpF586dAUhMTCQsLIwrrrgCgAkTJrB9+3aPyxg6dChvvPHGRVYvIhdKdwGISAObNm3iuuuuc782DIPy8nLCw8MveBlfn/wBAgICGrwODAykqqqqcYoVkUumACAiDezdu5eOHTu6X+/YsYNOnTrRu3dv7xUlIo1OAUBE3Orr68nOzmb9+vXU1tZy6NAhFi1axIMPPujt0kSkkakPgIi4HTlyhOjoaOLi4hgzZgzh4eHcc889TJ482duliUgj01DAIuKWkpLChg0beOGFF753/qBBg/D39+f222/n17/+dfMW9w0/+9nP2LNnD4MHD+Zf//qX1+oQac10BUBE3DIyMs7b1v/FF180YzXn9s9//tPbJYi0euoDICJuBw8eVGc/ER+hJgAREREfpCsAIiIiPkgBQERExAcpAIiIiPggBQAREREfpAAgIiLigxQAREREfJACgIiIiA9SABAREfFBCgAiIiI+6P8H2xG05ttGzUUAAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_183_1.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_183_1.png" } }, "output_type": "display_data" @@ -3254,15 +3288,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "[1.9748951 0.06118722 4.96583694]\n", + "[1.99649128 0.01691084 4.95357063]\n", "Training R2\n", - "0.9941048180010681\n", + "0.993383188370423\n", "Training MSE\n", - "0.013714193616910514\n", + "0.011165763600783868\n", "Test R2\n", - "0.9966804290594763\n", + "0.9956569325809989\n", "Test MSE\n", - "0.0070460574623899454\n" + "0.012291871379904585\n" ] } ], @@ -3366,13 +3400,13 @@ "output_type": "stream", "text": [ "Training R2\n", - "0.9999862839596511\n", + "0.9999865391967117\n", "Training MSE\n", - "6.753389180187765\n", + "5.731673690692203\n", "Test R2\n", - "0.9999817890900857\n", + "0.9999762833842002\n", "Test MSE\n", - "4.757161599902217\n" + "11.794038652495374\n" ] } ], @@ -3522,7 +3556,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function load_boston is deprecated; `load_boston` is deprecated in 1.0 and will be removed in 1.2.\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/utils/deprecation.py:87: FutureWarning: Function load_boston is deprecated; `load_boston` is deprecated in 1.0 and will be removed in 1.2.\n", "\n", " The Boston housing prices dataset has an ethical problem. You can refer to\n", " the documentation of this function for further details.\n", @@ -3531,7 +3565,7 @@ " dataset unless the purpose of the code is to study and educate about\n", " ethical issues in data science and machine learning.\n", "\n", - " In this special case, you can fetch the dataset from the original\n", + " In this case special case, you can fetch the dataset from the original\n", " source::\n", "\n", " import pandas as pd\n", @@ -3544,13 +3578,13 @@ " target = raw_df.values[1::2, 2]\n", "\n", " Alternative datasets include the California housing dataset (i.e.\n", - " :func:`~sklearn.datasets.fetch_california_housing`) and the Ames housing\n", - " dataset. You can load the datasets as follows::\n", + " func:`~sklearn.datasets.fetch_california_housing`) and the Ames housing\n", + " dataset. You can load the datasets as follows:\n", "\n", " from sklearn.datasets import fetch_california_housing\n", " housing = fetch_california_housing()\n", "\n", - " for the California housing dataset and::\n", + " for the California housing dataset and:\n", "\n", " from sklearn.datasets import fetch_openml\n", " housing = fetch_openml(name=\"house_prices\", as_frame=True)\n", @@ -3666,20 +3700,20 @@ "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/lib/python3.9/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n", " warnings.warn(msg, FutureWarning)\n" ] }, { "data": { - "image/png": "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BiWn06kf/ehH+sY3viGv16vrr79et9xyi9mxotYzzzwjr9erH/3oR1233XPPPRyDAXb99ddrz549uvPOO2Wz2XTzzTdr0aJFSktL4ziYbPXq1Xr44YfV2tqqsWPHavny5WZHimrz58/v+lkIBoO69957NW3aNN6jB9CkSZP0la98Rffee698Pp+uueYafeELX1BBQUGfXo8sxqUGNgEAAABgGAYAAADQHcoyAAAA0A3KMgAAANANyjIAAADQDcoyAAAA0A2mjgOACFNeXq6bbrpJ06dP19q1ay/Y9q1vfUsvv/yytm3bpjlz5qiwsFBW64XnRZ544glJ0oIFC1RYWChJCgaDcjgcWr58ue68806dOXNGt956q7Zs2aKsrKwL9l+8eLG+8Y1v6Oabbw7h/yUAhAfKMgBEIKfTqZMnT6qiokJ5eXmSpLa2tq5FKD7xi1/8oms1q08rLy9XbGysNmzY0HVbRUWF7r//fsXFxWnhwoW65ppr9PLLL+tv/uZvuu6za9cuNTc366abbgrR/xkAhBeGYQBABLLZbLr11lu1cePGrts2b97cpxKbl5enBx54QM8884wk6d5779XLL7+sT0/Hv27dOn3+85+/YPlYAIhmlGUAiFB33nmnfvvb33Z9vX79en32s5+94D733XeflixZ0vXnb//2by/7mMXFxTp8+LAk6brrrpNhGPr4448lnV/Od8uWLfrc5z7Xz/8nABC+GIYBABFq/Pjxslqt2r9/v9LT09Xa2to1BvkT3Q3D6I7FYlFsbKwkyWq16p577tFvfvMbzZo1S7/97W81b948paen9+v/BwCEM8oyAESwO+64Q7/97W+VlpamJUuW9Pnx9u3bd0HhXrZsmW655Ra1tLRo3bp1+t73vtfn5wCASEJZBoAItmTJEt19991KSUnRL3/5yz491okTJ/Tkk0/qoYce6rotNTVV8+fP109+8hPZbDZNnjy5j4kBILJQlgEggmVlZWnkyJFKTExUSkrKRdvvu+++i6aO++Y3v6mRI0eqo6Oj62y01WqV0+nUN7/5Td1www0X3P/ee+/V5z73Of3whz8M1f8GAIQti/Hpy5wBAAAAdGE2DAAAAKAblGUAAACgG5RlAAAAoBuUZQAAAKAblGUAAACgG5RlAAAAoBuUZQAAAKAb/z9mAdtQEKgqHwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAssAAAH0CAYAAADLzGA+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABiHklEQVR4nO3deXzU9YH/8fdcmdz35CQQzoQ7nAIqigdYDqFUu1Zb3HZLt/tra5f+1q5V162tXfvzZ5fWtvbXtd26bbWVWgWxilitJ1QgIIeEhJsk5Jjc92SO7+8PJTVKICSZfGcmr+fjwUNmvvOdecuXzLz5zuf7+VgMwzAEAAAA4GOsZgcAAAAAQhVlGQAAAOgDZRkAAADoA2UZAAAA6ANlGQAAAOgDZRkAAADog93sAMOhsbFdgUBkz5CXlhav+vo2s2OMeBwH83EMQgPHwXwcg9DAcTBff46B1WpRSkrcebeNiLIcCBgRX5YljYj/x3DAcTAfxyA0cBzMxzEIDRwH8w3mGDAMAwAAAOgDZRkAAADoA2UZAAAA6ANlGQAAAOgDZRkAAADoA2UZAAAA6ENQp47bunWrfvazn8nn8+n222/Xbbfd1mt7SUmJ7rnnHrW3t2vu3Lm6//771dzcrC984Qs9j2ltbVVjY6P27dsXzKgAAADAxwTtzHJNTY02btyoJ598Ups3b9ZTTz2lY8eO9XrMnXfeqfvuu08vvfSSDMPQpk2blJaWpi1btmjLli169tlnlZubq+985zvBigkAAAD0KWhleceOHVqwYIGSk5MVGxurZcuWadu2bT3bKysr1dXVpaKiIknS2rVre22XpD/+8Y+KiYnRqlWrghUTAAAA6FPQhmHU1tbK5XL13M7IyNCBAwf63O5yuVRTU9Nz2+/36//9v/+nRx99dNBZ0tLiB/0c4cDlSjA7AsRxCAUcg9DAcTAfxyA0cBzMN5hjELSyHAgEZLFYem4bhtHr9sW2v/nmm8rPz1dBQcGgs9TXt0X8UpMuV4Lc7lazY4x4HAfzcQxCA8fBfByD0MBxMF9/joHVaunz5GrQhmFkZWXJ7Xb33Ha73crIyOhze11dXa/tf/7zn7V8+fJgxQMAAAAuKmhledGiRdq5c6caGhrU2dmp7du3a/HixT3bc3Nz5XQ6VVxcLEnasmVLr+3vvvuu5s6dG6x4AAAAwEUFrSxnZmZqw4YNWrdundasWaOVK1dqxowZWr9+vQ4ePChJevjhh/Xggw/qhhtuUEdHh9atW9ezf3l5ubKysoIVDwAAALgoi2EYkT2YV4xZxvDhOJiPYxAaOA7m4xiEBo6D+UJ2zDIAAAAQ7ijLAAAAQB8oywAAAEAfKMsAAABAH4K2KAkADJQvIHm8vgHtG93RPcRpAAAjGWUZQMjxeH3aXVIzoH2vmjNalos/DACAfmEYBgAAANAHyjIAAADQB8oyAAAA0AfKMgAAANAHyjIAAADQB8oyAAAA0AemjgMQUXz+gLo9A5uj2WG3y+u79H2dDrvsnHoAgIhEWQYQUTxev/YMcI7mmZNc2l/mvuT95k3OlN3J2ykARCLOhQAAAAB9oCwDAAAAfaAsAwAAAH2gLAMAAAB9oCwDAAAAfaAsAwAAAH1griMAGCSL1aL2Ac7tzBzNABDaKMsAMEger39A8zNLzNEMAKGO8xkAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB8oywAAAEAfKMsAAABAHyjLAAAAQB+CWpa3bt2q5cuXa+nSpXriiSc+tr2kpERr167VsmXLdM8998jn80mSamtr9aUvfUlr1qzRLbfcooqKimDGBAAAAM4raGW5pqZGGzdu1JNPPqnNmzfrqaee0rFjx3o95s4779R9992nl156SYZhaNOmTZKkb37zm1qyZIk2b96s1atX6+GHHw5WTAAAAKBPQSvLO3bs0IIFC5ScnKzY2FgtW7ZM27Zt69leWVmprq4uFRUVSZLWrl2rbdu2qaGhQUeOHNEtt9wiSfrUpz6lf/7nfw5WTAAAAKBP9mA9cW1trVwuV8/tjIwMHThwoM/tLpdLNTU1Ki8vV05Ojr7//e9rz549crlc+rd/+7dBZUlLix/U/uHC5UowOwLEcRgKRkOHEuKjB7z/QPd1OOwD2neg+0lSbKxTrtTYAe0b6vhZMB/HIDRwHMw3mGMQtLIcCARksVh6bhuG0et2X9t9Pp8OHz6sr33ta/rWt76lP/zhD7rrrrv0m9/8ZsBZ6uvbFAgYA94/HLhcCXK7W82OMeJxHIZGh8en1rauAe8/0H293oG97kD3k6SODo/cfv+A9g1l/CyYj2MQGjgO5uvPMbBaLX2eXA3aMIysrCy53e6e2263WxkZGX1ur6urU0ZGhlwul+Li4rRkyRJJ0sqVK3udkQYAAACGS9DK8qJFi7Rz5041NDSos7NT27dv1+LFi3u25+bmyul0qri4WJK0ZcsWLV68WKNHj1ZWVpZef/11SdJf/vIXTZ06NVgxAQAAgD4FrSxnZmZqw4YNWrdundasWaOVK1dqxowZWr9+vQ4ePChJevjhh/Xggw/qhhtuUEdHh9atWydJ+vGPf6xf/OIXWrlypX7961/rP/7jP4IVE8AI0+31q6nNo26vX4YR2cOzAACDF7Qxy5K0atUqrVq1qtd9jz32WM/vCwsL9fTTT39sv3Hjxg1qjDIAfFRdc5dKzzTqVFWr/B9cw2CzWpSREqPLpmQqMS7K5IQAgFAU1LIMAGbz+QN660CVztS0yW6zaHxuojJSYtXl8am9y6fjlc167u1TmjEuVVPHp5kdFwAQYijLACKWx+vXq8WVcjd1qmhiugpHJyvKYev1mGnjUrW7pFbvHqtXU/tBLZqWJbstqIubAgDCCGUZQETq6PLqz3sq1NLu1eKiHOVnnX+OzRinXYuLcjTqbIvePlAlw5AWz8zuNbUlAGDk4vQJgIjj8wf0SnGl2jt9unZubp9F+cPG5SRqxeX5Ol3dqneP1g1DSgBAOKAsA4g4xaVuNbZ6tLgoW9lpcf3e7+rZuZo4KkkHTzToeGVzEBMCAMIFZRlARNl/1K3SM02akp+iXNelLXVvsVh02ZRMZabGaNfhWnV6fEFKCQAIF5RlABGjrdOrJ18qVVpStGZNcg3oOaxWixZOzZI/ENDeMvfFdwAARDTKMoCIYBiGdh6qVsAwtHhmtmzWgV+glxgXpcn5qTpe2aK6ps4hTAkACDeUZQARodLdrqr6Dq24fKwSYge/wMiM8WmKcdq0q6SWlf4AYASjLAMIe4GAoeJStxJjHbpyZs6QPKfDbtXsSS7VNXfpeGXLkDwnACD8UJYBhL2y8iY1t3drTmGGbEO4oMi4nESlJ0Vr/7E6BQKcXQaAkYiyDCCsebx+7T9Wr6zUWI1y9X+auP6wWCyaNi5V7V0+na5pHdLnBgCEB8oygLB26ESDPF6/5ha6grLqXl5GvBJiHTp8qpGxywAwAlGWAYQtT7dfpWcalZ+doNTE6KC8hsVi0ZT8FNU3d6mWmTEAYMShLAMIW6XlTfL5DU0flxrU1xmfm6Qoh1WHTzYG9XUAAKGHsgwgLPn8AZWcalSuK04pCcE5q3yO3WZVQV6yymvb1NLeHdTXAgCEFsoygLB0rKJZHq9f08YG96zyOYVjUmS1WFRymrPLADCSUJYBhJ1AwNB7JxvkSo5WRkrMsLxmjNOuMVnxOnm2RX5/YFheEwBgPsoygLBzqrpV7V0+TRuXFpQZMPoyPjdJ3b6AKtztw/aaAABzUZYBhJ2S041Kiosa8nmVLyYrLVYxTruOVzYP6+sCAMxDWQYQVuqbu1Tf3KVJo5OH9ayyJFktFo3LSVRlXbs6Pb5hfW0AgDkoywDCSml5k+w2i8bnJJry+uNyEmUY0qkqVvQDgJGAsgwgbHR7/TpV1aL87ERFOWymZEhJcCo10akTZxmKAQAjAWUZQNg4cbZFPr+hgrxkU3OMz0lSfYtHTa0eU3MAAIKPsgwgLBiGodLyJqUlRistKbiLkFxMfnaCLBbp+NkWU3MAAIKPsgwgLNQ2dqq5rVuTRiebHUUxTrty0uJ0urpVhmGYHQcAEESUZQBh4WhFsxx2q/KzEsyOIknKy4xXW6dXTW0MxQCASEZZBhDyvL6AztS0amx2ghz20HjbysuIlySdqWkzOQkAIJhC41MHAC7gdHWrfH5D43OSzI7SI8Zplys5mrIMABGOsgwg5B2vbFZCrEPpyeZe2PdRozMT1NjqUUNLl9lRAABBQlkGENLaOryqaezU+NykYV+x72LODcU4dKLe5CQAgGChLAMIaecW/xhn0op9F5IYF6Xk+CgdOk5ZBoBIRVkGELIMw9Dxsy3KSo1VfIzD7DjnlZeZoBNnW9TV7TM7CgAgCCjLAEKWu6lTrR3ekDyrfM7ojHgZhlRR2252FABAEFCWAYSsE2dbZLdZNCZE5lY+n9REp5LjnSqvZVYMAIhElGUAISkQMHS6uk2jMuJDZm7l87FYLCrMT1F1fYcCAVbzA4BIE7qfQABGtKr6Dnm8fo3NDt0hGOcUjE6W1x+Qu6nT7CgAgCFGWQYQkk5WtchhtyonPdbsKBc1MS9ZFotUWce4ZQCINJRlACHH6wuovKZNozPjZbOG/ttUjNOu9KQYnaUsA0DECf1PIQAjzuFTDfL6A2ExBOOcXFecGlo86vQwhRwARBLKMoCQU1zqVnSUTVmpoT8E45xzw0Wq6jtMTgIAGEqUZQAhpavbp0Mn6jUmK0FWa2gtb30hqYnRcjpsDMUAgAhDWQYQUt49WievL6D8EJ5b+XysFouy02J1tq5dhsEUcgAQKSjLAELK7iO1So6PUkZKjNlRLllOepy6uv1qbPWYHQUAMEQoywBCRqfHp4MnGlQ00SWLJXyGYJyTkx4nSQzFAIAIQlkGEDIOHK+Xzx9Q0cR0s6MMSGy0XcnxUTrLRX4AEDEoywBCxp7SWiXFR2lsTvhMGfdRWWmxcjd2yh8ImB0FADAEKMsAQoKn26+Dx+s1Z5JL1jAcgnFOVmqs/AFDdU1dZkcBAAwByjKAkHDwRL26fQHNLcgwO8qgZKa8P99ydQNDMQAgElCWAYSE3UdqlRjr0KS8ZLOjDIozyqaUBCdlGQAiBGUZgOk8Xr8OHK/X7IKMsFqIpC9ZqbFyN3XJ72fcMgCEO8oyANMdOtEgj9evuQUus6MMiay0WAUChtyMWwaAsEdZBmC64rJaxcc4VDA62ewoQyIzJUYWMW4ZACJBUMvy1q1btXz5ci1dulRPPPHEx7aXlJRo7dq1WrZsme655x75fD5J0rPPPqsrrrhCq1ev1urVq7Vx48ZgxgRgIp8/oP3H6lU0IV02a2T8+z3KYVNqolM1lGUACHv2YD1xTU2NNm7cqGeeeUZRUVG65ZZbdNlll2nChAk9j7nzzjv1wAMPqKioSHfffbc2bdqkW2+9VYcOHdJdd92llStXBisegBBx5HSjOj0+zZ4UGUMwzslMjdWR003y+QOy2yLjHwEAMBIF7R18x44dWrBggZKTkxUbG6tly5Zp27ZtPdsrKyvV1dWloqIiSdLatWt7th88eFDPPvusVq1apX/5l39Rc3NzsGICMNneMrecDpumjk0xO8qQykqLVcAw5G7qNDsKAGAQgnZmuba2Vi7X384UZWRk6MCBA31ud7lcqqmp6fn9F77wBc2ePVv/+Z//qe985zv6wQ9+MOAsaWnxA943nLhcCWZHgDgOlyIQMLT/eL3mTslUTnZyz/1GQ4cS4qMH/LwD3dfhsA9o3/PtN97p0F/2VqqxtVuTxqT1uW9srFOu1NhLfs1wwM+C+TgGoYHjYL7BHIOgleVAICDLh1bhMgyj1+0Lbf/pT3/ac/8Xv/hFXX/99YPKUl/fpkDAGNRzhDqXK0Fud6vZMUY8jsOlOVbRrMZWj6aOSe7159bh8am1beAzSQx0X693YK/b136pidEqr2nVlPy+z5p3dHjk9vsv+TVDHT8L5uMYhAaOg/n6cwysVkufJ1eDNgwjKytLbre757bb7VZGRkaf2+vq6pSRkaHW1lY9/vjjPfcbhiGbzRasmABMtLfMLZvVohnj0s2OEhSZKTGqa+6SP8B8ywAQroJWlhctWqSdO3eqoaFBnZ2d2r59uxYvXtyzPTc3V06nU8XFxZKkLVu2aPHixYqNjdUvfvEL7d+/X5L029/+dtBnlgGEHsMwVFxWq8n5KYqNDtqXXKbKSImRP2CoodljdhQAwAAF7RMqMzNTGzZs0Lp16+T1enXTTTdpxowZWr9+ve644w5Nnz5dDz/8sO699161tbVp6tSpWrdunWw2m374wx/q29/+trq6upSfn6+HHnooWDEBmKTC3S53U5eWLxhjdpSgcSXHSJJqmjrlSokxOQ0AYCCCejpn1apVWrVqVa/7HnvssZ7fFxYW6umnn/7YfnPnztWzzz4bzGgATLa3zC2LpKKJkTVl3IfFOO1KjHWotqFDGptqdhwAwAAw+ScAU+wtc2vCqCQlxUWZHSWoMlJiVdvUKcOI7IuMASBSUZYBDLvapk6V17ZF3EIk55OREqNub0DN7d1mRwEADABlGcCw21v6/kw4I6UsS1JtI4uTAEA4oiwDGHZ7j7o1OiO+5wK4SJYQ61B0lI2yDABhirIMYFg1t3l0vKJ5RJxVliSLxaKMlBjKMgCEKcoygGG172idDI2MIRjnZKTEqK3Tq44ur9lRAACXiLIMYFjtLXMrIzlGua44s6MMm8yUWElSDWeXASDsUJYBDJuOLp9KTjdq9iSXLBaL2XGGTUqCU3abhaEYABCGKMsAhs2B43XyBwzNLhg5QzAkyWq1KD0pRnVNlGUACDeUZQDDprjMraT4KI3LSTQ7yrBzJUerodUjnz9gdhQAwCWgLAMYFt1evw6eqNesiS5ZR9AQjHPSk2NkGFJ9S5fZUQAAl4CyDGBYvHeqQd3egGZPSjc7iinSk6IlSXVNlGUACCeUZQDDYm+ZWzFOuwpHp5gdxRQxTrviYxxyM24ZAMIKZRlA0PkDAb17tE5FE9Jkt43ctx1XcrTcTV0yDMPsKACAfhq5n1oAhk3ZmSa1d/lG1EIk5+NKjlGnx6eOLp/ZUQAA/URZBhB0e8vq5LBbNW1smtlRTJWeHCNJcjczbhkAwgVlGUBQGYahvUfdmjY2Vc4om9lxTJWS4JTNamG+ZQAII5RlAEF1qrpVja2eET8EQ5JsVotSE6O5yA8AwghlGUBQFZe6ZbVYNHPCyJwy7qNcydGqb/HIH+AiPwAIB5RlAEFjGIaKS2tVOCZZ8TEOs+OEBFdyjAIBQ40sTgIAYYGyDCBoKt3tqmns1JyCDLOjhAxX8vuLk7hZnAQAwgJlGUDQ7CmtlUXS7IkMwTgnNtqh2Gi73M2MWwaAcEBZBhA0xWVuTRyVpKR4p9lRQoorKZplrwEgTFCWAQRFdUOHKt3tDME4j/TkGLV1etXpYXESAAh1lGUAQVFcWitJmlPAlHEf9bdxywzFAIBQR1kGEBR7St0am52o1MRos6OEnNTEaFksYigGAIQByjKAIVfX1KnT1a2ay1nl87LbrEpNiOYiPwAIA5RlAEOuuMwtiSEYF+JKjlZ9cxeLkwBAiKMsAxhyxaVu5WXEKyMl1uwoISs9OUY+v6GqunazowAALoCyDGBINbZ6dKyymbPKF3HuIr9TVS0mJwEAXAhlGcCQ2tszBIMp4y4kPsah6CibTla3mh0FAHABlGUAQ6q4tFbZabHKTY8zO0pIs1gsSk+K5swyAIQ4yjKAIdPS0a3S8iaGYPSTKzlGtY2dauv0mh0FANAHyjKAIfPu0ToZhjRnEkMw+iP9g3HLJ85ydhkAQhVlGcCQKS51Kz0pWqMz482OEhbSk2JksUjHK5vNjgIA6ANlGcCQ6Ojy6vCpBs0tyJDFYjE7Tlhw2K3KTovTScYtA0DIoiwDGBL7j9XLHzAYr3yJxmQl6GRViwyDxUkAIBRRlgEMiV0lNUpNdGpsTqLZUcLKmKwEtXf5VNvI0tcAEIooywAGra3Tq0MnGzS/MFNWhmBckvysBElc5AcAoYqyDGDQ9pa55Q8Ymj+FWTAuVVZanKIcVp1g3DIAhCTKMoBB211So4yUGI3JTDA7StixWS3Kz0rkzDIAhCjKMoBBaWnv1uHTjZo/mVkwBmpcdqLKa1vl9QXMjgIA+AjKMoBB2VNaK8OQ5k/ONDtK2BqXkyif31B5bZvZUQAAH2E3OwCA8LbrcI1y0+M0yvXxhUh8Acnj9V3ycwZG2CxqY7Pfn0HkZFWLxjGbCACEFMoygAFraOlSWUWzPnnl2PNu93h92l1Sc8nPO3PSyJqrOTXRqaS4KJ0426xr54wyOw4A4EMYhgFgwPYcqZXEEIzBslgsGpeTqBNVrWZHAQB8BGUZwIC9U1KrMZkJykyNNTtK2Bubnaiahg61d3nNjgIA+BDKMoABqW3q1MmqFuZWHiLnxiqfZL5lAAgplGUAA3JuLPK8QsryUMjPSpRFrOQHAKGGsgxgQHaV1Gp8bqLSk2LMjhIRYqPtykqL1UnKMgCEFMoygEt2tq5d5bVtXNg3xMZlJ+pEVYsMY4TNnQcAIYyyDOCS7SqpkUUMwRhq43IS1drhVX1zl9lRAAAfoCwDuCSGYWhXSa0KRicrOd5pdpyIMvaDi/xOcJEfAIQMyjKAS1Je26bqhg7Nn8IQjKE2yhUvu83KRX4AEEKCWpa3bt2q5cuXa+nSpXriiSc+tr2kpERr167VsmXLdM8998jn670s7uHDhzVt2rRgRgRwif56uEY2q0VzRtgqe8PBbrNqTFY8Z5YBIIQErSzX1NRo48aNevLJJ7V582Y99dRTOnbsWK/H3Hnnnbrvvvv00ksvyTAMbdq0qWdbZ2envvvd78rrZYJ+IFQEAoZ2vlet6ePSlBAbZXaciDQuO0lnqlvl8wfMjgIAUBDL8o4dO7RgwQIlJycrNjZWy5Yt07Zt23q2V1ZWqqurS0VFRZKktWvX9tr+/e9/X7fffnuw4gEYgMOnG9Tc1q1F07LMjhKxxuUkqtsXUKW73ewoAABJ9mA9cW1trVyuv31Nm5GRoQMHDvS53eVyqabm/UUOXnnlFXV1demGG24YkixpafFD8jyhzuVKMDsCFNnHYe/2MsXFOHTdwnw57LaLPt5o6FBCfPQlv47DYR/QfucMdN+Bvu5g8sbGOuX60HLhc6dZ9fPn3pO7rVtzw/zvUiT/LIQLjkFo4DiYbzDHIGhlORAIyGKx9Nw2DKPX7b62u91u/exnP9Pjjz8+ZFnq69sUCET2vKUuV4Lc7lazY4x4kXwcOj0+7ThwVoumZ6upsaNf+3R4fGptu/Rp0Lzege13zkD3HejrDiZvR4dHbr+/57bVMBQf49CB0lrNnZA2oOcMBZH8sxAuOAahgeNgvv4cA6vV0ufJ1aANw8jKypLb7e657Xa7lZGR0ef2uro6ZWRk6LXXXlNTU5Nuu+02rV69WpK0evVqtbW1BSsqgH4oLnWr2xdgCEaQWSwWjctJ5CI/AAgRQTuzvGjRIv34xz9WQ0ODYmJitH37dn33u9/t2Z6bmyun06ni4mLNmTNHW7Zs0eLFi3XzzTfr5ptv7nlcQUGBtmzZEqyYQFjxBSSP13fxB56H02GXfRD/PN5xqEoZKTEa/8FcwAiecdmJOni8Xp0en2KcQXubBgD0Q9DehTMzM7VhwwatW7dOXq9XN910k2bMmKH169frjjvu0PTp0/Xwww/r3nvvVVtbm6ZOnap169YFKw4QETxen3aX1Axo33mTM2UfYPGqb+5S6Zkmrb5ybK/hUwiOsTmJMiSdqmrR5PxUs+MAwIgW1FMWq1at0qpVq3rd99hjj/X8vrCwUE8//fQFn6O0tDQo2QD0318PV8uQtHAqQzCGw9jsv63kR1kGAHOxgh+ACzIMQzsOVWvSqCS5kmPMjjMixMc4lJESw0p+ABACKMsALuhUdauq6ju0aHq22VFGlHE5iTrJRX4AYLp+leWvfe1r2rFjR7CzAAhBOw5Wy26zam5BxsUfjCEzLjtRTW3damgZ+BR6AIDB61dZvv766/Xoo49q2bJl+uUvf6mmpqYgxwIQCnz+gN4pqdHsSemKjWZWhuE09oNZRzi7DADm6ldZvvHGG/Xb3/5Wjz76qOrr63XTTTfpzjvv7LUiH4DIc/B4vdo6vcytbILRGQmyWS2MWwYAk/V7zHIgENDp06d16tQp+f1+paWl6dvf/rYeeeSRYOYDYKIdh6qVGOvQ1LHMyDDcHHarRmfGc2YZAEzWr+9VN27cqGeeeUZ5eXm69dZb9aMf/UgOh0MdHR1asmSJ7rjjjmDnBDDM2jq9evdYna6dM0o2K9cCm2FcdpLeOlSlQMCQ1cr81gBghn6V5YaGBj322GMqLCzsdX9sbKx+8IMfBCUYAHPtKqmRP2Awt7KJxuYk6JW9FTpb365Rrniz4wDAiNSv00V+v/9jRfnc2eQrrrhi6FMBMN0b+89qdGa8xmQlmB1lxBqXkyRJjFsGABNd8Mzyv//7v6umpkbFxcVqaGjoud/n86m8vDzo4QCY43R1q87UtOm26yeZHWVEy0iJUazTrpNVLVo8M8fsOAAwIl2wLN900006evSoSktLtWzZsp77bTabioqKgp0NgEneOHBWDrtVC6Zmmh1lRLNaLBqbk8iZZQAw0QXL8vTp0zV9+nRdfvnlyszkQxMYCbq9fv31vRrNKXApLtphdpwRb1x2ov6087Q83X45o2xmxwGAEeeCZfnrX/+6fvSjH+mLX/ziebdv3bo1KKEAmKe41K1Oj0+LZ/C1fygYm5OogGHodE2rJuUlmx0HAEacC5bl9evXS5L+7d/+bVjCAAgei9Wido/voo977d1KpSdFa1RmvNo9PjkddtmZOc4047LfX8nvxNkWyjIAmOCCZXnatGmSpPnz56u8vFx5eXl67bXX9N5772ndunXDEhDA0PB4/dpf5r7gY1rau3W0olmzJqZrz5FaSdK8yZmyO1nq2iyJcVFKT4rWibPNZkcBgBGpX+eL7rvvPj322GM6fvy47r33XlVUVOjuu+8OdjYAw+xYRbMsksbnJpkdBR8yITdJx7nIDwBM0a+yfOjQIX3729/Wyy+/rE9+8pN68MEHVVlZGexsAIZRIGDo+Nlm5briFBvNmeRQMi4nUY2tHjW0dJkdBQBGnH6VZcMwZLVa9fbbb2vBggWSpK4u3rSBSFJZ165Oj18TRnFWOdScO9PP2WUAGH79KsujR4/W+vXrVVFRofnz5+t//+//rYKCgmBnAzCMjlY0K8ZpY1nlEJSXES+H3arjlYxbBoDh1q/vWh988EG9/PLLmjNnjhwOh+bOnas1a9YEORqA4dLR5VOlu01T8lNltVrMjoOPsNusys9K0HEu8gOAYdevM8uxsbGaO3euWlpa9N5772nGjBk6ceJEsLMBGCbHzzbLMKSJDMEIWeNzk3S6ulVeX8DsKAAwovTrzPKPfvQj/fd//7fS0tJ67rNYLHrllVeCFgzA8DAMQ8cqmpWZEqPEuCiz46AP43MStc1v6ExNK7OVAMAw6ldZ3rJli7Zv386S10AEqmnoVGuHVzPGp138wTDNhy/yoywDwPDp1zCM7OxsijIQocrKmxRlt2pMVoLZUXAByfFOpSVGc5EfAAyzfp1ZXrhwoR566CFde+21io6O7rl/6tSpQQsGIPg6PT6dqWnVpNHJsttY0zrUjc9N1DHKMgAMq36V5WeeeUaStG3btp77GLMMhL/jlc0KGNKkvGSzo6AfxuckaVdJrRpbPUpJcJodBwBGhH6V5VdffTXYOQAMM8MwdLSiWRkpMUqOp3iFg55xy5XNmluYYXIaABgZ+vW9a3t7u77zne/o9ttvV1NTk+677z61t7cHOxuAIKqq71Brh5ezymFkdGa87DYr8y0DwDDqV1l+4IEHlJCQoPr6ejmdTrW1tem+++4LdjYAQVRW3iSnw6YxWazYFy7sNqvGZifoWAVlGQCGS7/KcklJiTZs2CC73a6YmBg9/PDDKikpCXY2AEHS0eVTeW2bxucmymblwr5wMmFUkk5Vt6rb6zc7CgCMCP36lLR+5MPU7/d/7D4A4eNY5fsr9jEEI/xMzE2WP2DoVHWr2VEAYEToV+OdN2+e/u///b/q6urSm2++qa9+9au67LLLgp0NQBAEDENHy5uUlRbLin1haMIHS5IfrWgyNwgAjBD9Ksv/8i//otjYWCUkJOiHP/yhCgsL9c1vfjPY2QAEwdm6drV3+VTAWeWwFB/jUHZaLOOWAWCYXHTquJdfflm//OUvVVpaqujoaBUUFGj27NlyOplqCghHZWeaFB1lU14GF/aFqwm5Sdpb5lbAMGS1WMyOAwAR7YJl+cUXX9TGjRt1xx13qLCwUBaLRQcPHtT3vvc9eTweLV26dLhyAhgC7Z1eVbrbNW1cqqxWSla4mjAqSW8eqFJVfYdy0+PMjgMAEe2CZfnXv/61Hn/8ceXk5PTcN378eM2cOVN33303ZRkIM0crmmVImjgq2ewoGIRzx+9YRRNlGQCC7IJjltvb23sV5XPGjh0rj8cTtFAAhp4/8P6KfbnpcYqPdZgdB4OQmRKjhFgH45YBYBhcsCzbbLY+txmGMeRhAATP4ZMN6vT4NGl0stlRMEgWi0UTcpN0tJKyDADBxmTJwAix82CVYp12vraPEBNHJau2sVPN7d1mRwGAiHbBMculpaWaPXv2x+43DEPd3bxBA+GitaNbZWeaNGNCGhf2RYhz8y0fq2jWnAKXyWkAIHJdsCy//PLLw5UDQBAdLW+WLH8rWAh/YzITZLdZdbSiibIMAEF0wbKcm5s7XDkABIk/YOhYZbOmjE1VXDQX9kUKh92q8TmJKitvMjsKAEQ0xiwDEa68plVd3X4tnJZldhQMsYLRyTpd06pOj8/sKAAQsSjLQIQrK29WfIxDBaNTzI6CITYpL1mGIR1jVgwACBrKMhDBWtq7Vd3QoYmjkriwLwKNz0mSzWpR6Zkms6MAQMSiLAMRrKy8SRYu7ItYziib8rMTGLcMAEFEWQYilN8f0PHKFo3OiFeM84LX8iKMTcpL1smqFnm8frOjAEBEoiwDEep0TZs8Xr8m5iWbHQVBVJCXIn/A0AnGLQNAUFCWgQhVVt6khFiHstNizY6CIJqQmySLRSplKAYABAVlGYhATW0e1TZ2amJesiwWLuyLZLHRdo3OYNwyAAQLZRmIQGXlTbJaLJqQm2h2FAyDgtHJOn62RV5fwOwoABBxKMtAhPH5AzpR2aLRmfGKjuLCvpFgUl6yvL6ATla1mB0FACIOZRmIMKerW9XtC2jS6GSzo2CYTPrgIs7SM43mBgGACBTUsrx161YtX75cS5cu1RNPPPGx7SUlJVq7dq2WLVume+65Rz7f+0u27tmzR2vXrtWqVav05S9/Wc3NXOUN9FfpmSYlxUUpMyXG7CgYJvExDuVlxKvkNGUZAIZa0MpyTU2NNm7cqCeffFKbN2/WU089pWPHjvV6zJ133qn77rtPL730kgzD0KZNmyRJ3/rWt/TQQw9p69atmjBhgn75y18GKyYQURpbu1TX3KWJeUlc2BcmLFaL2j2+Af368BDlyWNSdKyyRd3MtwwAQypoAxp37NihBQsWKDk5WZK0bNkybdu2TV/96lclSZWVlerq6lJRUZEkae3atXrkkUd066236oUXXpDD4ZDX61VNTY0KCgqCFROIKGXlzbJaLRqfw4p94cLj9Wt/mXtA+86bnCn7BwvOTMlP0fbd5Tpa2ayp+alDGREARrSgleXa2lq5XK6e2xkZGTpw4ECf210ul2pqaiRJDodDpaWl+vznPy+73a5vfOMbg8qSlhY/qP3DhcuVYHYEKLjHwWjoUEJ89Hm3dfv8OnG2RRNHJSs9Ne5j2x0Oe5/7XkhsrFOu1IHN1XyhvBcy0KznDHTfgb7uYPIOZt8PH5uFCdH68R8P6oy7XVfPGzOg5xtqvCeZj2MQGjgO5hvMMQhaWQ4EAr2+BjYMo9fti20vKCjQjh079Pvf/14bNmzQ73//+wFnqa9vUyBgDHj/cOByJcjtbjU7xogX7OPQ4fGpta3rvNuOljfJ6wtobHb8eR/j9fa97wVfs8Mjt39gX+1fKO+FDDTrOQPdd6CvO5i8g9n3o8dmbHai9hyu0Sfm5Q3o+YYS70nm4xiEBo6D+fpzDKxWS58nV4M2ZjkrK0tu99++WnS73crIyOhze11dnTIyMuTxePTnP/+55/4bb7xRpaWlwYoJRIyy8mYlx0fJlcyFfSPV5DEpOlXdoo4ur9lRACBiBK0sL1q0SDt37lRDQ4M6Ozu1fft2LV68uGd7bm6unE6niouLJUlbtmzR4sWLZbfbdf/99+vQoUOSpBdffFGzZ88OVkwgItQ3d6m+pUuTWLFvRJuSnyLDeH9GFADA0AjaMIzMzExt2LBB69atk9fr1U033aQZM2Zo/fr1uuOOOzR9+nQ9/PDDuvfee9XW1qapU6dq3bp1stls2rhxo+677z75/X5lZmbqe9/7XrBiAhGhrLxJNqtF43JYsW8kG5eTpCi7VYdPN2rWJNfFdwAAXFRQl/datWqVVq1a1eu+xx57rOf3hYWFevrppz+239y5c/XMM88EMxoQMbp9fp2salF+doKiHDaz48BEDrtVE/OSmW8ZAIYQK/gBYe7k2Vb5/IYKPljFDSPblDEpOlvXrqY2j9lRACAiBPXMMoDgMgxDZeVNSklwKi1p4FOtXci5RTMGIsInoQlJhWNSJEklpxu1cGqWyWkAIPxRloEwVtfcpcZWjy6bkhm0C/sGs2jGTMbNDrsxmQmKi7brvZMNlGUAGAIMwwDCWFl5k+w2LuzD31itFk0dm6pDJxsUMDi1DwCDRVkGwlS3169TVa0am50oh50fZfzN9HFpamnvVnlNm9lRACDs8QkLhKnjZ1vkDxiaxIV9+Ihp49IkSQdP1JucBADCH2UZCEOGYehoeZPSEqODdmEfwldSXJTGZCZQlgFgCFCWgTDkbupUU1u3Jo1OMjsKQtS0cak6XsnS1wAwWJRlIAyVlTfLYbcqP4sL+3B+08elKWAYOnyKBUoAYDAoy0CY6er261R1q8blcGEf+jY+N1ExTjtDMQBgkPikBcLMibPNCgQMTcpjCAb6ZrNaNTU/RYdONshgCjkAGDDKMhBG3l+xr1mu5GilJHBhHy5s2rg0NbZ6VOluNzsKAIQtyjIQRo5VNKulvZvp4tAv0z+YQu4AQzEAYMAoy0AYeetglaLsVo3JSjA7CsJASoJTYzITtO/owJYrBwBQloGw0dLerf1H6zQ+N0l2Gz+66J9Zk9J1orJFzW0es6MAQFjiExcIE28frJI/YGgiF/bhEsya6JIh6d1jdWZHAYCwRFkGwkDAMPT6u2c1PjdRyfFOs+MgjIxyxSk9KVr7jlKWAWAgKMtAGCg53ajapk5dMSPH7CgIMxaLRbMmunT4VKO6un1mxwGAsENZBsLAa/sqFR/j0MwJ6WZHQRiaNTFdPn9Ah040mB0FAMIOZRkIcc1tHr17tE6XT89ixT4MyMS8JMVF2xmKAQADwCcvEOLePPD+hX1XFeWaHQVhyma1auaEdB04XiefP2B2HAAIK5RlIIQFAu9f2Dd5TIqyUmPNjoMwNmuiS+1dPh0tbzI7CgCEFcoyEMIOnWxQfUuXririwj4MzrSxqYqyW7WnjAVKAOBSUJaBEPbavkolxjo0e5LL7CgIc84om2ZOSNeeI7XyBxiKAQD9RVkGQlRDS5f2H6/TFTNyWLEPQ2L+5Ey1dnh15HST2VEAIGzwCQyEqDcPVMkwpMUMwcAQmTE+VdFRNr1TUmN2FAAIG5RlIAT5AwG9sf+spo1NVUZyjNlxECEcdptmT3Jpb6lbXh9DMQCgPyjLQAg6cLxeja0epovDkJs/OVMdHp/eO8kCJQDQH5RlIAS9/u5ZJcVHaeaENLOjIMJMyU9RXLRduxiKAQD9QlkGQkxdU6cOHq/XYi7sQxDYbVbNLczQvqN18nj9ZscBgJDHJzEQYt44cFaySItncmEfgmP+5Ex5vH7tP8by1wBwMZRlIIT4/AG9ub9K08elKS0p2uw4iFAFeclKSXDq7YPVZkcBgJBHWQZCyLtH69Tc3q2rZ3FhH4LHarXo8unZOnSyXg0tXWbHAYCQRlkGQsjr71YqNdGpGeO4sA/BdcWMbBmG9PYhzi4DwIXYzQ4A4H01jR1671Sj1lwxVlarxew4iHAZyTEqHJ2stw6c1YqFY2S18HcO6IsvIHm8vgHtG93RPcRpMNwoy0CIeOPds7JaLLqSC/swTK6ckaPHnj+so+VNKhidYnYcIGR5vD7tHuB0i1fNGS3+KRreGIYBhACvL6A3D1Rp5oQ0pSQ4zY6DEWJ2gUsxTpvePFBldhQACFmUZSAE7C1zq63TqyVc2Idh5HTYdNmULO05UquOroF9xQwAkY6yDISA19+tVHpStKaMTTU7CkaYK2dkq9sX0DuHudAPAM6HsgyYrKq+XUfONOmqohwussKwy89K0JisBP25uEKGYZgdBwBCDmUZMNnr756VzWrRFTO4sA/Dz2Kx6Pq5o1RV36HDpxrNjgMAIYeyDJjI6/Pr7YNVmjXJpaS4KLPjYISaV5ipxLgovbyn3OwoABByKMuAiXaV1Kq9y6clRZxVhnkcdquuLsrRgeP1qmnoMDsOAIQUyjJgoleKK5SdFqvCMcxxC3MtmZUrm9WiV4orzI4CACGFsgyY5MTZFp2qbtU1s0fJwoV9MFlSvFPzJ2fqrYNV6vQwjRwAnENZBkzy6t4KOaNsWjQty+wogCTpurmj1NXt1+vvnjU7CgCEDMoyYILWjm7tKqnVomlZinGy6jxCw9jsRE0ek6Jtu86o2+s3Ow4AhATKMmCCNw9UyecP6BpW7EOIufHyfLW0d+uN/ZxdBgCJsgwMu0DA0F/2VqpwdLJyXfFmxwF6KRidokl5yXrxnTPy+gJmxwEA01GWgWG2/3id6lu6dM3sUWZHAc5r1eX5amz16K2DVWZHAQDTMVgSGGav7q1USoJTRRPTzY6CEcoXkDzevme8GJOVoPzsBD2/45RmF7hkt/3tvIrTYZed0ywARhDKMjCMqhs69N7JBq25cmyvAgIMJ4/Xp90lNRd8zLicRL1aXKnf//moCkYn99w/b3Km7FyUCmAE4dMaGEZ/2Vspm9Wiq2ayYh9CW256nDJSYrT/WB1jlwGMaJRlYJh4uv1662CV5hS4lBTvNDsOcEEWi0VzC1zq6vbr0Il6s+MAgGmCWpa3bt2q5cuXa+nSpXriiSc+tr2kpERr167VsmXLdM8998jne38MXXFxsW666SatXr1at99+uyorK4MZExgWfz1crU6PT9fO4cI+hIf05BjlZyfo8KlGtXd5zY4DAKYIWlmuqanRxo0b9eSTT2rz5s166qmndOzYsV6PufPOO3XffffppZdekmEY2rRpU8/9DzzwgLZs2aJVq1bpgQceCFZMYFgYhqFXiiuVlxGvCblJZscB+m32RJcMSe+W1ZkdBQBMEbSyvGPHDi1YsEDJycmKjY3VsmXLtG3btp7tlZWV6urqUlFRkSRp7dq12rZtm7q7u/X1r39dhYWFkqSCggJVVTF9EcJbWXmTKtxtumZ2riwWi9lxgH6Lj3Vo8pgUHT/bovrmLrPjAMCwC9olzbW1tXK5XD23MzIydODAgT63u1wu1dTUKCoqSqtXr5YkBQIB/eQnP9F11103qCxpaSNj4QeXK8HsCND5j8N/PX9YCbFRWnX1RDkdtgE/t9HQoYT46AHt63DYB7TvQPcz6zUlhVXewewbG+uUKzX2kve71L9HC2fk6MTZFu06Uqs1V0+UKz2uX/vxnmQ+jsHQGMx7r8RxCAWDOQZBK8uBQKDXGTTDMHrdvtj27u5u3XXXXfL5fPrHf/zHQWWpr29TIGAM6jlCncuVILe71ewYI975jkNNY4feOVStFYvGqKWpY1DP3+HxqbVtYGf3vN6B7TvQ/cx6TUlhlXcw+3Z0eOT2+y99vwH8PZpX6NIb+6v04o4TWrkw/6KPH8r3pIvNC30hI3leaD4Xhs5g3nslcRxM1p+fBavV0ufJ1aCV5aysLO3Zs6fnttvtVkZGRq/tbre753ZdXV3P9vb2dv3TP/2TkpOT9bOf/UwOhyNYMYGg+/OeClmtFlbsQ1gbk5Wg3LMten7HKS2Ykqn0pJhhe+3+zAvdF+aFBjBYQfv39qJFi7Rz5041NDSos7NT27dv1+LFi3u25+bmyul0qri4WJK0ZcuWnu133nmnxowZox/+8IeKiooKVkQg6Dq6vHrrQJUum5KpZKaLQxizWCy6bEqmJOm328tkGJH9bR0AnBO0spyZmakNGzZo3bp1WrNmjVauXKkZM2Zo/fr1OnjwoCTp4Ycf1oMPPqgbbrhBHR0dWrdunQ4fPqxXXnlFe/fu1Sc/+UmtXr1a69evD1ZMIKhe339WHq9fS+flmR0FGLT4GIdWLMrXgeP1+ut7AzvTCwDhJqjfTa1atUqrVq3qdd9jjz3W8/vCwkI9/fTTvbZPmTJFpaWlwYwFDAt/IKBXiitUODpZozO5uAOR4aqiXB08Xq/fbC/VhFFJciUP33AMADDDCL3sAQi+4lK3Glo8up6zyoggNqtFX1o5RRaL9F9b35M/wFLYACIbZRkIAsMw9NKucmWkxGjmhHSz4wBDKj05RuuWFep4ZYu2vn3K7DgAEFSUZSAIjle26GRVi66fmycri5AgAl02JVOLpmVp645TKjndaHYcAAgayjIQBNt3n1Gs067Lp2eZHQUImtuun6Ss1Fj9bPMh1TV3mh0HAIKCsgwMsbqmThWXuXVVUY6io5jfFZHFYrWo3eNTu8engKR/WDlFPn9Aj/zxoBrbPD3bahs6en7f7vHJx9BmAGGKT3JgiP25uEIWWXTtHBYhQeTxeP3aX+budd+iaVl6dW+lfvzHA7pyRrYsFosS4qN7rXjG4iAAwhVnloEh1N7p1Rv7z2puoUupidFmxwGGxaiMeM2amK5TVa3af6ze7DgAMKQoy8AQemHHSXV1+7Vs/mizowDDatq4VI3PTdSB4/UqK28yOw4ADBm+EwOGSLfXr+feOKGpY1M1NjvR7DjAsLJYLFo4NUtdHr/eea9GKYkxciWxxDuA8MeZZWCIvHWwSk1tHq1YMMbsKIAprFaLFhflKC0pWtvfOa3q+g6zIwHAoFGWgSHg8wf04l/PqHBMigpGJ5sdBzCNw27VNXNylRgfpVf3Vqi6gcIMILxRloEhsKukRvUtXbr52kmysAgJRrjoKLvWLB6vuGiHXi2uUA2FGUAYoywDA+QLSO0en1q7vHp+x2nlpMdpdFZCr7llz/eL+WYxEsRGO7R0fp5iox16pbhCR7noD0CY4gI/YIA8Xp92l9ToTE2rqhs6dMWMbL1b5u41t+z5MN8sRooYp11L5+Xp5T3levTZg/pfa6araGK62bEA4JJwZhkYBMMwdPBEg+JjHMrPSjA7DhByYqPtWjY/Tznp8frJMwe181C12ZEA4JJQloFBqG7oUH1zl6aNTZXVylhl4Hyio+z62k3TNSkvSY89f1gv/PW0DMMwOxYA9AtlGRiEgycaFOO0aXwu8yoDFxIdZdeGT8/U/MkZevq143r8xSPy+RnADyD0MXASGKBT1S2qru/QnAKXbDb+3QlcjMNu05dunKqMlFg9v+OU6pq79L8+OU1x0Q6zowFAn/iEBwbo5V3linJYNSkv2ewoQNiwWixau3ic/mHFZJWVN+k/flOs2kamlgMQuijLwACU17bpwPF6FY5OkcPOjxFwqS6fnq1/uaVILe3deuDXxTpa0WR2JAA4Lz7lgQHY/OYJxThtmpyfcsn7WqyWi87F3NevANdEIYIUjE7RvevmKi7arv/7u31688BZsyMBwMcwZhm4RCerWrTvaJ1WLBojp8N2yft7vH7tL3MP6LVnTnINaD8gVGWmxuqedXP1s82H9KsXjuhUdas+c+1E2bkOAECI4N0IuETPvnlC8TEOXT0r1+woQESIj3HoG383UzdcNlp/2Vuph363T01tHrNjAYAkyjJwSY5VNOvQiQZ94rLRio7iixlgqNisVn16yQR9efVUnalp1f2P79axymazYwEAZRm4FM++eUKJcVG6ZvYos6MAEWn+5Ezd+7m5irJb9X+e2KvX9lWaHQnACEdZBvqp5HSjSk43asWCMXJGXfpYZQD9MyojXvf9/TxNyU/Vr18q1ZMvl8kfYAETAOagLAP9YBiGnn3zhFISnLp6Vo7ZcYCIFxft0NdvmqGVi8Zo56FqvfROudq7vGbHAjACUZaBfjh0skHHKpq1clG+HHbOKgPDwWq1aO3i8friqilqavPoTztOq6aBBUwADC+uUAIuwjAMPfvGCaUnRevKGdlmxwF6nJuz+1KZMV/3QLNK0vTx6Vq+cIxe21up7bvLNW9yhgrykmWxWIY4JQB8HGUZuIh3j9XpVHWrPr+8kLlfEVIGOme3GfN1D3Z+8eR4p5YvHKO3DlRp1+FaNTR7dNmUDNn4mQQQZLzLABcQMAxtfvOkMlNitGhaltlxgBEtymHTktm5mjE+Tccqm/XSrnJ1MI4ZQJBRloEL+Ot71SqvbdPqK8fKZuXHBTCbxWJR0cR0XT0rR01tHj2/47RqGhnHDCB4+PQH+tDt9euPr5/Q2OwEzZ+caXYcAB8yOjNByxeOkcNu1fZd5So90yjDMGEwNoCIR1kG+vDynnI1tnr06SUTZOVCIiDkJMc7tWLhGOWkx+mdw7Xa+V4N8zEDGHKUZeA8Wtq79aedpzVrYroKRqeYHQdAH86NY54+LlXHKpr10jvl6uga2KwbAHA+lGXgPLa8fVJeX0A3L5lgdhQAF2G1WDRrkktXFb0/jvmFv55WQ0uX2bEARAjKMkY0X0Bq9/h6/Tpe1aLX91Xq8hnZSoiL+tj2c7/MmKsWQN/GZCVo2WWjJUnb3jmj8to2kxMBiATMs4wRzeP1aXdJTa/7Xt1bKZvNqqzUmI9t+zAz5qoFcGFpidFavmCM/rKvUn/ZW6nEuCjduCifBUwADBhnloEPqa7vUEVtm6aNS1V0FP+WBMJRbLRdy+bnaUxWgra8eVK/euGIfH4u/AMwMLQB4AOGYai4tFax0XZNHsNFfUA4s9usWjwzW+4xKdr2zhnVNnXqq2unKz7GYXY0AGGGM8vAB05Wtaq+xaPZk9JZ1hqIABaLRSsW5etLN07RibPNevC3xapr6jQ7FoAwQyMAJPn8Ae0tcys10amx2YlmxwEwhBZMydL//rsiNbd163u/Kdbp6lazIwEII5RlQNKhEw3q6PJpXmEGFwIBEahgdIq+9dnZstks+v6Te3XoZL3ZkQCECcoyRrzWjm4dOtmgsdkJykyNNTsOgCDJdcXrns/NVUZyjH70hwN660CV2ZEAhAHKMka83SW1slqkOQUZZkcBEGQpCU7dddtsFYxO1n+/UKLn3j4pw2DSdAB9YzYMjGiHTtSrwt2uOQUuxUbz4wCMBDFOu/755pn61QtHtPnNk2rt8Ooz102U9UNDsHyB9+dhHwinwy47p6KAiEE7wIjl9fn1x9eOKykuSoVMFQeMKHabVf+wcrISYh3avrtcHV0+fX55Yc9MOOdbsKi/5k3OlN3JxysQKfhpxoi17Z0zqmvu0nVzR8lm5aI+YKSxWiz6u2smKC7GoWffOKFOj09fXj1VUQ6b2dEAhBC+KMKIVNfcqT/tPK2iienKSY8zOw4Ak1gsFq1alK/PLp2k/cfqtHHTfnV6Bjb8AkBkoixjRHrqlWOSpE8uHmdyEgCh4JrZo7R+1RQdq2zWQ7/bp9aObrMjAQgRlGWMOIdO1qu4zK0Vi/KVmhhtdhwAIWLB1Cx9de10na1r14/+sF8dXZxhBkBZxgjj9QX05MtHlZESoxvmjzY7DoAQM3NCur7x6Zlqau3WS7vOqK3Ta3YkACajLGNE+dPOU6pu6NBt10+Sg7mdAJxHwegUfeVT09XV7df2XeUMyQBGuKC2ha1bt2r58uVaunSpnnjiiY9tLykp0dq1a7Vs2TLdc8898vl6f+X1wx/+UD/+8Y+DGREjyNm6dv1p52ktmJKp6ePSzI4DIISNzU7U0nl56vb59dKucrW0U5iBkSpoZbmmpkYbN27Uk08+qc2bN+upp57SsWPHej3mzjvv1H333aeXXnpJhmFo06ZNkqTW1lbdfffd+tWvfhWseBhhAoahx7cdUXSUTbdcO9HsOADCQFpStJbOy5Pfb+ilXWfU1OYxOxIAEwStLO/YsUMLFixQcnKyYmNjtWzZMm3btq1ne2Vlpbq6ulRUVCRJWrt2bc/2V155Rfn5+fr85z8frHgYYd5496yOVTTr09dMUGJclNlxAISJ1MRoLZufJ8OQtu8qV2MrhRkYaYK2KEltba1cLlfP7YyMDB04cKDP7S6XSzU176+WtGbNGkkasiEYaWnxQ/I8oc7lSjA7Qkiqb+7U068f14wJ6frkNZNk+dCStkZDhxLiBzYjhsNhP+++F3u+vvYbzGsGc99we03p4sdgqF+XY3p+H36cWX9GsbFOuVJjL3m/D783JMRHa+0Sp7a8flwv7y7X6sXjlZ4cM+SvGQx8LgyNwXxWSByHUDCYYxC0shwIBHqXEsPodfti24dSfX2bAgEjKM8dKlyuBLndrWbHCEk/ffagur0BfeaaCaqra+u1rcPjU2tb14Ce1+v9+L4J8dEXfb7z7TeY1wz2vuH2mpLCKm+4/fn2d9+P/iyY9WfU0eGR2++/9P0+8t5gt0hL5+fppV3l2vz6cV0/b1SfU08O9DWHGp8LQ2cwnxWSOA4m68/PgtVq6fPkatCGYWRlZcntdvfcdrvdysjI6HN7XV1dr+3AUNhX5lZxqVs3Xp6vzBA50wMgPCXERmnZ/DzZbBZt312uhpaBlycA4SNoZXnRokXauXOnGhoa1NnZqe3bt2vx4sU923Nzc+V0OlVcXCxJ2rJlS6/twGB1enz67ctlynXF6YbLmFMZwOCdK8x2m1Xbd5ernsIMRLygleXMzExt2LBB69at05o1a7Ry5UrNmDFD69ev18GDByVJDz/8sB588EHdcMMN6ujo0Lp164IVByPQM6+fUFOrR39/Q6HsNuZUBjA0zhVmh82ql3eXq76ZwgxEsqCNWZakVatWadWqVb3ue+yxx3p+X1hYqKeffrrP/b/2ta8FLRsihy8geby95+g+VtGkV/dW6MqiHGWlx6ndc/5layN8KDuAIEmIjdLS+XnavqtcL+8p1/Vz85SWNPALwACErqCWZWA4eLw+7S6p6bnt9QW09e1TiotxKDc9rte2j5o5ydXnNgC4kPfPMI/WS7vO6OXd5bp+HoUZiER8N42Is7fMrbZOry6fnsWS1gCCKj7WoWXzRyvKYdPLu8tVx5AMIOLQJBBRqurbVXqmSZPHpDD7BYBhER/r0NL5eYpy2PTn3eU6U800YUAkoSwjYnT7/NpxsFqJsQ7NmpRudhwAI0h8zN8K80+eOaCTVS1mRwIwRCjLiBjFR9zq6PLp8unZzH4BYNidK8yxToce/v27OnGWwgxEAhoFIkKlu11HK5o1ZWyqXCl9L0MLAMEUH+PQHTfPUHyMXT94ah+FGYgAlGWEvY4un3YeqlZSfJSKJqSZHQfACJeaGK1/vXW24mMc+sFT+3T8bLPZkQAMAlPHIez98fXj6uz26erZY2Rj+AWAD7FYLX3Os34hg5mD3WK1yOm062s3zdAjfzigH/z+Xf2vtdM1Njvxovs6HXYxiQ8QWijLCGu7Smq063CNZoxPUzrzmwL4CI/Xr/1l7kvebzBzsH/4Na+alaPtu8r14z8c0HXzRsmVfOFhYvMmZ8ru5KMZCCX8+xVhq665U/+zrVT52QmaMZ7hFwBCT1z0+xf9RTtt+vPuCrkbO82OBOASUZYRlvyBgP5r62EZhqHbbyiU1WoxOxIAnFdctEPLzhXmPRWqpTADYYWyjLD0/I7TOlbRrM8tK1D6Rb7WBACzxfYqzOWqbewwOxKAfqIsI+wcrWjSc2+f1MKpmVo4NcvsOADQL+cKc4zTrj/vqVClu93sSAD6gbKMsNLR5dV/PXdY6UnR+uzSArPjAMAliY126IbLRishNkqv7q3QSeZhBkIeZRlhwzAM/fqlUjW2evSlG6cqhivGAYShGKddy+bnKSM5Rm8eqFLJqUazIwG4AMoywsbbB6u1q6RWa64cq/E5SWbHAYABi3LYdN3cUcrLiNfuI7XaV+aWYQxicmcAQUNZRlioqG3Tb18uVUFespYvGGN2HAAYNJvNqquKcjRhVJIOnmjQX9+rUWAwq6EACArKMkJeR5dPP3n2oGKi7PrH1VOZJg5AxLBaLVo4NVPTx6XqaEWzfvH8YXm6/WbHQj8FDEM+f0BeX4BvBiIYgz4R0gKGoV/+6bDqm7t052dmKTneaXYkABhSFotFsya5FB1l157SWj34RLHu+NQMpSayKmkoMAxD7qZOHa9sVn1zl1o6vGrt6FZ7l6/XNwFWixQdZVeM067URKfSk6PlSoqRYRjiFE94oywjpL3419Pad7ROn7l2oiblJZsdBwCCZnJ+imYXuPQ/Lx7Rd/9nj772qRkal5NodqwRydPt1+FTDdp3rE4HT9Srua1bkmS3WZQYF6XUxGjlZdjlsFtls1oki0Webr+6un1q7/LpdHWrjlY0S5L+erhGcwsyNH9yhkZnJpj5v4UBoiwjZL13qkHPvHFC8ydn6Lq5o8yOAwBBN21cmu7+3Bw98vQBff+Jvfrs0km6cka2LBbOTQabzx/QeycbtPO9ar17tE7dvoBinDZNG5umsTmJ6vT4lBQfJWs/joVhGGrt8Kq6oUOtnT5te+eMXvjraU0claRl80eraEI6QwrDCGUZIam+uUs/3/KectLi9PefKOSDAsCIMcoVr3+7fa7+67n39PiLR3SsolmfXTpJUQ6b2dEikrupU6+9W6m3D1SppcOruGi7Lp+erTkFLk3KS5bdZlW7x6fdJTX9fk6L5f0z0IlxUbpqzmi1t3Vpx6Fqvby7XD955qAyU2P1qcXjNKfAxedbGKAsI+R4fQE9uvmgfP6AvrJ2uqKj+GsKYGRJiI3Shk8XafNbJ/X8jlM6Vd2qf7xxinJd8WZHiwiBgKEDJ+r12r5KHTxeL1mkognpumJGtqaPS5PdNrTzH8THOLR0Xp6unZOr4lK3tr59So9uPqSJo5L0d9dMZLhNiKOFIKQYhqEn/1ymk1Wt+sonpysrNdbsSABgCqvVorWLx2lCbqJ++acS3f/4Ht28ZLyunTOqX0MB8HEt7d1688BZvbbvrOpbupQUF6VVl+dr8cycYbmg0ma1av7kTM0pcOnNA1Xa/MYJfe/Xe3TNnFH61FXjODkUojgqCBm+gPTSrjN6/d2zun5engrzU9Tu8V10P6YlBRDJZoxP13f+4TL96oUS/e7PR7X/WJ3W3VCojOQYU3P5ApLHe/H36PNxOuyyD9PktYZh6GhFs17bV6ndR2rlDxgqHJ2sv7tmgoompg/5WeT+sFmturooV5dNztQzb5zQq8UV2n+sTrd/olBT81OHPQ8ujLKMkLG3rFbPvHZceRnxykqN6ff4sJmTXEFOBgDmSoqL0tdvmqHX3j2rP/zlmO77xTtafcVYLZ2fJ5vVnCUTPN5LG8f7YfMmZ8ruDG4Fae3o1o5D1Xpj/1lV1XcoxmnXklm5unpWrnLS44L62v0V47TrtusnaV5hhn714hH94Pfvaum8PN109XhTSjzOj7KMkFDhbtPjL5QoJdGpK7jyGwA+xmKxaMmsXM0cn6YnXi7TH147rh3vVevTSyZo2thU3jf1/tz8R0436o39Z7W3zC2f39D4nET9/ScKddnkTDmjQvMiyUl5ybr/8/O06S/HtH13uUrLm/TlG6cqk6GIIYGyDNM1tnr0oz/sV5TDpiWzc+UYru/mACAMpSZG62ufmqG9ZW5tevWYNm7aryn5Kbr56gkakzXy5vE1DEOnqlu1p7RWu0tqVdfcpbhou66elavFM3M0Kkwuioxy2PTZpQWakp+qX71Qom8/vlvrV07RbL49NR1lGabq6PJp46b9auvy6es3zVB1Q4fZkQAgLMye5NKM8Wn6y95KPff2Sd3/+G5NG5eqlQvzI34Rp4Bh6OTZFu0prdWeI27Vt3TJZrWocEyK1n4wJZvDHppnkS9m9iSX8rMS9NNnD+onzxzUjZfn68YrxnJRp4koyzCN1xfQT545oKr6dv3zzTOVl5lAWQaAS2C3WXX9vDxdPj1bf9lXoe27y/X9J/ZqbHaCVl45XpNHJUbMDAst7d06fLpBh0826r1TDWps9chmtWjq2FStvmKsiiamKz7GYXbMIZGaGK27bput/9lWqufePqXy2jZ9ceUUxQR5nDfOjz91mCIQMPSL5w/ryJkmrV85RVPHpvZr5gsAwMfFRtu1YmG+rpubp7cOVOkv+yr1403vyhll09wCl+YUZGhqfkrYnG3t9vp1pqZNJ6padLKqRSfONsvd1CVJinXaNTk/RbMmpqtoQrpioyOjIH+Uw27TP6yYrDGZCXrq1WP63m+K9bVPTVdmCuOYhxtlGcMuYBh6/MUj2n2kVp9eMkELp2WZHQkAIoLTYdO1c0bpmtm5qmv36rnXjmlvmVtvH6yWM8qmKWNSVDg6RQWjkzUqI970r/Y7uryqbuhUTUOHqhs6VNPYoar6Dp2ta5f/g3lBUxKcGpedqKuKclU4OkX5WQkjZqloi8Wi6+flaZQrTj/b8p6++/ge/ePqqZo+Ls3saCMKZRnDyjAM/e7PR/XWwSrdeHm+brhstNmRACDiWCwWTRmbJld8lG73B3TkdKOKy9w6fKpB+47WSZKiHFblueKV64pXenK00pKilZYYraR4p2Kj7Rct0ueb494wDPn8hrp9fnV7A+r2+uXx+tXp8avT41OHx6eOLp9eKa5QU6tH7V1/+0bRYpHSEqPlSonRNXNGKT87QWMyE5QU7+z9urJopF0GPjk/Vf92+1z9+I8H9cM/7Nenl0zQ0nl5zIAyTCjLGDaGYejp147rleIKLZufp9VXjDU7EgBEPLvNqmnj0jTtg7ORDS1dKj3TpJPVLSqvadPuI7Xq/MgwOIven53BYbfKanl/NUGr1SKr5f3/GoYhZ5RdbR3d8geM93/5DXl9/j4XirJIinbaFOu0KzMtTnHRdsXHRikx1qHEuCglxDp6zRnt6farrLzpY88zHHM0hyJXcozu+dwc/eJPh/XUq8dU6W7X55YVMIPUMBh5f9tgCsMw9NSr788fuWRWrj69ZAL/IgYAE6QmRmvhtKyeIXBtXV69deCs2jq9auvwqtPjV5fXL0+3Tz6/oUDAUMB4vxAHPvhltVmVEOuQ1SLZrBbZrFZZrRZF2a2KclgV5bDJ6bC9/3u7TTFOu6KjbD3DJ2ZOcml/mdvMP4aw5Iyy6Z/WTNNzb53Uc2+fUnVjh776yelKjIsyO1pEoywj6AKGoSe2l+kv+yp13ZxR+sx1EynKABAiLBaLoqPsio6yKz2p/0toU3jNYbVYtObKccpJj9Mv/1Si7/7Pbt1x00zlZYTHfNLhiHP3CCp/IKDHXziiv+yr1A2XjaYoAwAwBOZPztS3PjtbAUP6j98Uay//cAkayjKCxtPt14//eLDnYr6brx5PUQYAYIjkZyXq326fq5z0OP3kmYN6fscpGUYfg8YxYJRlBEVLR7ce+t1eHTxRr3XLCrTmynEUZQAAhlhyvFP/eussLZiaqWfeOKH/2npY3V6/2bEiCmOWMeQqatv0yB8PqLm9W1/95HTNYl17AACCJsph0/qVU5SbHqc/vn5CNQ0d+l+fnHZJY9DRN8oyhlRxaa1+8XyJop02ffPWWRqfk2R2JABABLFYLQNa8dXpsCuSZ1mzWCxasTBfOWlxeuz5w7r/V7v1pRtZwGQoUJYxJPyBgLa8dVLP7zitcTmJ+sonpyslwXnxHQEAuAQer39As3CMlPmZZ01y6b6/n6dHnz2oH27ar1WX52vV5fm95rDGpYn8vzUIuoaWLv38ufd0tKJZV8zI1ueWTpLDbjM7FgAAI1JWaqzuWTdXv3mpVM+9fUolpxv1pVVTlZYUbXa0sERZxqAUl9bq8RePyBcwtH7VFC2cmmV2JAAARjynw6Yvrpyiqfmp+vX2Uv37f+/S7Z8o1LzCDLOjhR3KMgakpb1bT7xcpt1HajUmK0FfvnGqMlNjzY4FAAA+ZOG0LI3PTdTPnzusn20+pN2FGfrs9ZNY9e8SUJZxSQKGoZ2HqvXUq8fU1e3T2sXjdMNlo2W3MRYKAIBQlJESq299drZe2nVGW946qSOnG/WZ6yZqwZRMpnXtB8oy+u3E2Rb97s9lOn62ReNyEvX5TxQq18XymgAAhDq7zaoVC/NVNNGlX71Qose2HtYb757VbddP0iiWyr4gyjIuqrqhQ8+9dVJ/PVyjxLgofWH5ZC2aniUr/xoFACCs5KbH6e7PztEb+8/qj68f17d/tVtLZuVq1eX5DM3oA2UZfapp6NDzO09px6FqOexWLV8wRisWjlHMCJh6BwCASGW1WnT1rFzNLczQM2+c0F/2Veqtg1W6ft4o3TB/tGKjHWZHDCm0HvRiGIaOnGnSy7vLtf9Ynex2q66fm6dPLBijJP7FCQBBNdAFNxx2u7y+3vsZDR3q6MdzBYxLfrmwNNA/Wyly/4ziYxxat6xA188d1bNWwivFFbqqKFfXzRml1ESmmpMoy/hAY6tHf32vWm8drFJVfYcSYh1adXm+lszKVVI8i4sAwHAY6IIbMye5PrZfQny0Wtu6+rXvSDDQP1sp8v+MstPi9OXV07R8Qate+Otpbd9Vrpd3l2teYYauKsrRpLzkEX0hIGV5BGtq82hfmVvFZW6VnG6UYUgTRiXp858o1IKpmSwsAgDACDI6M0FfXj1NdVd1avuecr19sFp/PVyjjJQYXT4tS3MLM5SdFmd2zGFHWR5Bur1+HT/bosOnGvTeyQadrm6VISkzJUbLF4zR5dOzlcVcyQAAjGjpyTG69bpJ+tRV41VcWqs391fp2TdP6tk3TyrXFadZE12amp+i8blJI2LqWMpyhPL5A6qu71B5bZtOVrfoeGWLztS0yh8wZLVYNC43UauvHKs5k1zKSY8b0V+vAACAj3M6bFo0LVuLpmWroaVLe8vc2lPq1p92ntLzO07JGWXTxFFJmpCTpHG5icrPSlR8TORdHBjUsrx161b97Gc/k8/n0+23367bbrut1/aSkhLdc889am9v19y5c3X//ffLbrfr7NmzuvPOO1VfX6+xY8fq4YcfVlzcyDvtfyGGYajD41NTq0fupi51ltTqREWT3E2dPb98/vevSIiyW5Wfnail8/M0MTdZBaOTmdECAAD0W2pitK6bm6fr5uapo8urktNNOnyqQWUVTdry1kmduwYyIdah7LQ4ZafF9vzXlRyjpLgoRUfZwvLkXNAaU01NjTZu3KhnnnlGUVFRuuWWW3TZZZdpwoQJPY+588479cADD6ioqEh33323Nm3apFtvvVX333+/br31Vq1YsUI//elP9eijj+rOO+8MVtQh5w8E5Pcb8gfe/xUInPt94EO//9D9fkMer19d3X55vD55vAF5uv3q6vap2xtQl9evTo9PrR3dau3wqqWjW20dXvk/cnludJRNGckxykmLU9HEdOW54pWXEa/M1NgR8TUJAAAIvthoh+YUuDSn4P0LHzu6fDpZ1aLy2jZV1berqqFDe47Uqr2r9+wjUQ6rkuOcSoyPUlJclBJiHIp22hUTZVOM064Yp13RUXZNHpOi2OjQOakXtCQ7duzQggULlJycLElatmyZtm3bpq9+9auSpMrKSnV1damoqEiStHbtWj3yyCO6+eabtXv3bv30pz/tuf+zn/3soMqy1Tp8/4qpaezUI3/cL683MCTP57BbFeWwyemwKj4mShkpsYqLtis+JkrxMXbFxzqUlhit8WNS1d3ZHZb/YjvHbrMOaG7Hge4XjH1jnHb5fRd+vlDKG5mvaQmzvOH259u/fT/6s8CfUXD3Hej70VC/Zijva1Zeq9UiixG+n839ER/r0PTxaZo+Pq3X/W2dXtU2dqiprVstH5zwa+3wqrXdo9ZOrxpbPery+uXz9e5MV87M0apF+UOa8WJd8ELbLYZhBGX2wJ///Ofq6OjQhg0bJEl/+MMfdODAAX33u9+VJO3bt08PPfSQfve730mSTp8+rS996Uv6zW9+o5tuuklvvPGGJMnn86moqEiHDh0KRkwAAACgT0H7bj4QCPQ6y2kYRq/bfW3/6OMkhfXZUgAAAISvoJXlrKwsud1/m/zb7XYrIyOjz+11dXXKyMhQamqqWltb5ff7z7sfAAAAMFyCVpYXLVqknTt3qqGhQZ2dndq+fbsWL17csz03N1dOp1PFxcWSpC1btmjx4sVyOByaO3euXnjhBUnS5s2be+0HAAAADJegjVmW3p867uc//7m8Xq9uuukmrV+/XuvXr9cdd9yh6dOn68iRI7r33nvV1tamqVOn6sEHH1RUVJQqKyt11113qb6+XtnZ2frP//xPJSUlBSsmAAAAcF5BLcsAAABAOGPyXQAAAKAPlGUAAACgD5RlAAAAoA+UZQAAAKAPlGUAAACgD5RlAAAAoA+UZQAAAKAPlGUAAACgD5TlCLB161YtX75cS5cu1RNPPGF2nBGlra1NK1euVEVFhSRpx44dWrVqlZYuXaqNGzeanC7y/eQnP9GKFSu0YsUKPfTQQ5I4Bmb40Y9+pOXLl2vFihX61a9+JYnjYJb/83/+j+666y5JHAMzfO5zn9OKFSu0evVqrV69Wvv37+c4DLNXX31Va9eu1Sc+8Qk98MADkobgZ8FAWKuurjaWLFliNDY2Gu3t7caqVauMo0ePmh1rRHj33XeNlStXGlOnTjXKy8uNzs5O46qrrjLOnDljeL1e4wtf+ILx2muvmR0zYr399tvG3/3d3xkej8fo7u421q1bZ2zdupVjMMzeeecd45ZbbjG8Xq/R2dlpLFmyxCgpKeE4mGDHjh3GZZddZvzrv/4r70cmCAQCxhVXXGF4vd6e+zgOw+vMmTPGFVdcYVRVVRnd3d3GZz7zGeO1114b9DHgzHKY27FjhxYsWKDk5GTFxsZq2bJl2rZtm9mxRoRNmzbp3//935WRkSFJOnDggMaMGaO8vDzZ7XatWrWKYxFELpdLd911l6KiouRwODR+/HidOnWKYzDM5s+fr1//+tey2+2qr6+X3+9XS0sLx2GYNTU1aePGjfryl78sifcjM5w4cUKS9IUvfEE33nijfvvb33IchtnLL7+s5cuXKysrSw6HQxs3blRMTMygjwFlOczV1tbK5XL13M7IyFBNTY2JiUaO733ve5o7d27PbY7F8Jo4caKKiookSadOndKLL74oi8XCMTCBw+HQI488ohUrVmjhwoX8LJjgvvvu04YNG5SYmCiJ9yMztLS0aOHChfrpT3+qxx9/XL///e919uxZjsMwOn36tPx+v7785S9r9erVevLJJ4fkZ4GyHOYCgYAsFkvPbcMwet3G8OFYmOPo0aP6whe+oG9+85vKy8vjGJjkjjvu0M6dO1VVVaVTp05xHIbRH/7wB2VnZ2vhwoU99/F+NPxmzZqlhx56SAkJCUpNTdVNN92kRx55hOMwjPx+v3bu3Kn/+I//0FNPPaUDBw6ovLx80MfAPtRBMbyysrK0Z8+enttut7tnWACGV1ZWltxud89tjkXwFRcX64477tDdd9+tFStWaNeuXRyDYXb8+HF1d3dr8uTJiomJ0dKlS7Vt2zbZbLaex3AcguuFF16Q2+3W6tWr1dzcrI6ODlVWVnIMhtmePXvk9Xp7/tFiGIZyc3N5TxpG6enpWrhwoVJTUyVJ11133ZC8H3FmOcwtWrRIO3fuVENDgzo7O7V9+3YtXrzY7Fgj0syZM3Xy5Mmer4Gef/55jkUQVVVV6Stf+YoefvhhrVixQhLHwAwVFRW699571d3dre7ubr3yyiu65ZZbOA7D6Fe/+pWef/55bdmyRXfccYeuueYa/eIXv+AYDLPW1lY99NBD8ng8amtr07PPPqtvfOMbHIdhtGTJEr311ltqaWmR3+/Xm2++qRtuuGHQx4Azy2EuMzNTGzZs0Lp16+T1enXTTTdpxowZZscakZxOp77//e/ra1/7mjwej6666irdcMMNZseKWL/85S/l8Xj0/e9/v+e+W265hWMwzK666iodOHBAa9askc1m09KlS7VixQqlpqZyHEzE+9HwW7Jkifbv3681a9YoEAjo1ltv1axZszgOw2jmzJn64he/qFtvvVVer1eXX365PvOZz2jcuHGDOgYWwzCMIGUGAAAAwhrDMAAAAIA+UJYBAACAPlCWAQAAgD5QlgEAAIA+UJYBAACAPjB1HACEmYqKCl177bWaN2+efvvb3/badtddd+nZZ5/Vzp07tXDhQk2aNElWa+/zIj/96U8lSddff70mTZok6f0V3+Li4rRu3TotX75c5eXl+sQnPqFXXnlFmZmZvfZftWqV7rjjDl1//fVB/L8EgNBAWQaAMOR0OnXy5ElVVlYqNzdXktTR0aG9e/f2etz//M//9Kxm9WEVFRWKjo7Wli1beu6rrKzU3//938tms2nZsmVatGiRnnnmGf3TP/1Tz2P27dun1tZWXXPNNUH6PwOA0MIwDAAIQzabTZ/4xCe0devWnvu2b9+ua6+9dsDPmZubqzvuuEO//OUvJUm33XabnnnmGX14Ov5Nmzbplltu6bV8LABEMsoyAISpNWvW9DozvHnzZn3yk5/s9Zjbb79dq1ev7vn1la985YLPWVhYqLKyMknSlVdeKcMwtGvXLknvL+f7yiuv6Oabbx7i/xMACF0MwwCAMDVt2jTZbDYdOnRIaWlpam9v7xmDfE5fwzD6YrFYFB0dLUmyWq265ZZb9Mc//lGXXXaZnnvuOV111VVKS0sb0v8PAAhllGUACGM33nijnnvuOaWmpmr16tWDfr6DBw/2Ktyf+tSndMMNN6itrU2bNm3S/fffP+jXAIBwQlkGgDC2evVq3XzzzUpOTtavf/3rQT3XyZMn9eijj+qee+7puS8lJUVLlizRI488IpvNpqKiokEmBoDwQlkGgDCWmZmp8ePHKyEhQcnJyR/bfvvtt39s6rhvfOMbGj9+vLq6unrORlutVjmdTn3jG9/Q1Vdf3evxt956qz796U/re9/7XrD+NwAgZFmMD1/mDAAAAKAHs2EAAAAAfaAsAwAAAH2gLAMAAAB9oCwDAAAAfaAsAwAAAH2gLAMAAAB9oCwDAAAAffj/7ucBFI1lrlsAAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_199_1.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_199_1.png" } }, "output_type": "display_data" @@ -3721,14 +3755,14 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAq4AAAHqCAYAAADF3szhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdd5xM1//H8dfU7b0juqir986yWDVK9G51qy6r9xY9BIlEQsQXQYKIEr0EQXRW3YLtvbeZ+f0xrF2zWLO7dveX83w89vFw7/3MzNu9d+6cOffcOxKNRqNBEARBEARBEAo4aX4HEARBEARBEITsEA1XQRAEQRAEoVAQDVdBEARBEAShUBANV0EQBEEQBKFQEA1XQRAEQRAEoVAQDVdBEARBEAShUBANV0EQBEEQBCFH4uLi6NChAy9evNBZ9uDBA7p27UqbNm2YOXMmaWlper+OaLgKgiAIgiAIert16xa9e/fG19c3y+Wenp7MmTOHY8eOodFo2LNnj96vJRqugiAIgiAI/3ExMTG8ePFC5y8mJuaDj92zZw9z587F3t5eZ9nLly9JSkqievXqAHTt2pWjR4/qnVOu9yP/H0oNe5bfEXQsrjU7vyNkaWLL4PyOoOPAccf8jqCji1tIfkfI0vK/bPM7go7J1V7mdwQdI25a5neELG2bWTq/I+iKi8vvBDpiDz7O7wg6RvmY53eELG3rrM7vCDoGHih4fWv7/Q7md4Q8a6ts+99hNmzYoDN/7NixjBs37r2PXbx48TuXhYSEYGdnlz5tZ2dHcLD+bQjRcBUEQRAEQfiPGzhwIF988YXOfHPznH3ZUqvVSCSS9GmNRpNp+mOJhqsgCIIgCEJhoVblydOam5vnuJGaFUdHR0JDQ9Onw8LCshxSkF0Frx9eEARBEARB+H+haNGiGBgYcP36dQAOHDhA06ZN9X4+0XAVBEEQBEEoLDTqvPnLZe7u7ty5cweAlStXsnTpUtq2bUtCQgIDBgzQ+3nFUAFBEARBEAQhx06dOpX+7y1btqT/u0KFCuzduzdXXkM0XAVBEARBEAoLdcG7A8SnJBqugiAIgiAIhYQmD07rFyZijKsgCIIgCIJQKIgeV0EQBEEQhMLiPz5UQPS4CoIgCIIgCIWC6HEVBEEQBEEoLP7jY1w/acM1Li6OVatWcfXqVWQyGebm5nh5eWFhYUHbtm0pU6YMoP15sPj4eLp06YKHhwcA5cuX5+HDh7x48QIXFxd69uzJggUL0p/7wYMHdOnShaVLl9K1a9dP+d/SodFomLloFeXKlGRwn+6f/PXLtaxOq6k9kSnlBHs/5+DULSTHJerUVf2iEQ2HtwcNpCYlc2TudgLu+ORKBnnVehh2HwpyBeoXz0jYugqSErKurdEQY3cvYkZ3yjRfYm2H6az1xM0ZjiYuJldyFXWpTk2vL5EaKIh84M+lyd+TmsW6eV9d+YGtKNu7OTJDBRG3ffl7yhbUKWl6Z5I718Wg65BX68qHxG2r372uqjfEaOhUYsd10c5QKDHsMxZZqQogAdUzb5J2boDUFL3zvFa+RXVcp/ZCppQT5P2c36Z9l+V+VK1LI5qM6AAaDSmJKRyet42Xd3yQGyjotHAwxaqVAYmEFzefcHD2j6Qlp+qVR1GrPkYDhiNRKFD5PiNu/XJIzLyeDNy+wKBdZ9BoUAcFEP/NCjTRUQBY/nwAddibX29J+n0XKWdP6JXlbTVb1qLP1AEolAr8vH3ZNHU9iVmsq7YD3XDt1w6NRkOwXxCbvb4hJjwaqVTK0AXDqVS/CgD/nr7Gz4t/0jvP+WchrD//kBSVmnJ2Zsx1dcbUQJGp5nFoDMtP3ScuOQ2pFGa1dqaSgwWxyanMP3YH34g41BroWLkog+uW0TvLa9JSzigbdwWZHHXYC1KOb4OUpEw1iqY9kH1eK33/V0cGkXL4O5BIULTsg6zY5wCofO6Qei53bq2jrF8fU3d3JAoFac+eEfPVV2gSMu9Xhq1bY9yzJwCapCRi168n7eFDJGZmmE+ciLxsWTRJSSQeOULib7/lSq5aLWvTd+oAFEo5ft5+fDP16yz3qXYD29OmXzvQaAjyC2KT1waiw6MxtTBlxOJRlKxUiuTEZE79eoI/fzqsdx5ZpdoYdByIRK5AFeBL0v/WQZJuHgC5c30M+08ibuqX6fMUjd1QNHAFhQHq50+0j0/T/7j5WkFbT0Le+2RDBdRqNe7u7lhYWPD7779z4MABxowZg7u7O1FRUdjb23PgwAEOHDjAoUOH+N///sfWrVt5+vSpznNZWlpy/vx5VKo3P3v2559/Ym1t/an+O+/01NefoR7T+evMhXx5fWNrM7qsGM7ukWvZ0NKTSP8QWnn11KmzKe1E6xm92THwKza7zeDc+t/p+e2EXMkgMbPAaOgUEr6ZT9yMwahDAzHsMSzLWqlDUQx7joC3frdY0bA1pl6rkVrZ5komAANrMxqudufM8HUcaOpJnF8INWforpv31RVvV5vyg1vzV6+lHGzhhcxQQSX3dnpnkphaYDhoCombFhA/eyjqsEAMuw7NslZqXwTDHu7Am3Vl0L4PyGTEzx9B/LyRSJQGGLTrpXee14ytzei6YgQ7R61lrcsUIp8H02aa7vPalnai3Yw+bBuwnA1uMziz/nf6bJ4IQPOxXZDKZKxv68X6ttOQGyppNrqzXnkk5haYeHgRt2w20aP7owoKwHjAiEw1sjKfY9ilJ7HTxhDjMRhVwAuM+mjXpbToZ2hiY4mZOCz9L7carebW5oxe4cHKkcsY33I0wf5B9PXSvbl26Spl6OjehVldpzHZ1YNA3wB6Te4DQNOuzSlSpiiTXT2Y0nY8lepVob5bQ73yRCQkM/fobVZ0qsnvQ5pRzMKYr88/zFSTmKpi9L6rDKxTml0DGuNevxwzD98EYOPFRziYGbJ3UFN+6deQX2/5cysgUq8s6YxMMWgziORDm0j6aTaa6DAUjXU7GKRFypByeAtJOxaQtGOBttEKyCo2QGrlSNL2eST9vABpsfLIytXKWSZAYmGBxbRpRM+ZQ/iAAagCAjAdPjxTjeyzzzAdOZKoqVOJGDaM+J9/xvJVp4nZmDFoEhMJHzSIiNGjMahXD2WDBjnOZW5tztgVHqwYuZRxr/ap/l4DdepKVylDZ/cuzOg6lQmu4wj0DaD35L4ADJ4zjMSEJMa3GotXF09qNK9FrZa19cojMTXHsO8EErcuJX7xSNThQRh0HJR1rV0RDLoMyXRMl1dtgKJpRxK+mUXC0tGgUKJs3kWvLBkVtPX0yahVefNXSHyyhuuVK1cIDAzEw8MDuVzb0Vu/fn2WLl2KOouBxqGhoWg0GkxMTHSWmZiYULFiRa5evZo+7+LFizRsqN+BPjft2vcH3Tq2wbVFk3x5/TJNnXl5+xkRvsEAXNtxAufOjXTqVCmpHJz2PXEhUQAE3PbB1M4SmUKW4wzyyrVQ+TxCHfwSgORTh1DWd9EtVBpg5O5F0q7NmWZLLG1Q1GxI/CqvHGfJqEgzZ8Jv+RDro103D7efpNQXuvvM++pKd2/M/W+PkBIVDxoNl71+5Ok+/b+kyCrXQuX7EHVIAAApZ/5AUa+lbqHSAKOhXiTt+TbT7LRHd0g5vBM0GtCoUfk/QWLjoHee18o1qcrL288I9w0C4MqOE1TLYj9KS0nlt2lbiA2NAuDlnWfp+5HvP96c3vAbGo0GjVpD4D1fLIvp90VEUaMOaU+8UQe+2qeOHkDZrFWmGtXTR0SP6osmIR4USqQ2dmhitT318gpVQK3GbMl6zNdtxbDnQJDmzuGvatMaPL39hCDfQACO7zhKk87NdOqe3X2KR/NRJMQmoDBQYO1gQ2xkLABSmRQDI0PkSjkKpQK5Qk6qnj3Tl/3CqOxoQQkr7bGzR7XiHHkQgEajeVPjG0oxC2OalNb+XnjzMvYs71gDgKktKjGxWQUAQuOSSVWpMTXI2ck5WYnKqIN80USFAJB26wzyivXeKpIjtS+OvE4bDAfMRdlxJBKzV50RUikolCBTgEyORCYDlX7rJyODOnVI9fZG9VK7XyUcPIhhq8z7lSY1lZgVK1BHRACQ+vAhUmtrkMtRlC9P4l9/aS+WSUsj+fJlDJvpbvuPVb1pDZ7cfkzgq33q6I4j79ynxjQfmeU+Vca5DGf3n0atVpOWmsb1U9do4Kb7Hs4OWYWaqP0fownVHqdSL/yJonZz3UKFAUb9J5P02/eZZsvrtiT19G+QEAcaDcl7viH16mm9smRU0NbTJ1NIfjkrr3yyoQL379+nQoUKSN/6sGjWrBkvXrwgJCSEzp07k5ycTGRkJM7OzmzYsAFHR8csn69du3YcO3aM+vXrc/v2bcqXL5/pwJxfZk4eDcDf//ybL69v4WRDTEBE+nRMYASG5sYYmBplOs0b9SKMqBdh6dNtZvfl4Yl/UaXm/FuX1NoedURI+rQmMhSJsQkYGmc6BW40cAIpZw+jev4s0+M1UeEkbJif4xxvMyliQ3xAePp0QmAESnNjFKZGmYYLvK/OvLQThrbPcNkxFWMHS4L/eci/i3bpnUlqZYcm8s3p63etK8N+40k5dxjVi8xDOVT3r6f/W2Jtj7JVV5J+Xqt3ntcsilgTHfhmHWR3P3Kb1Q/vE9dRpap4cv5O+nzLorY0HNKO36dn/kDLLqmtPeqwN/uUOiwUqYkpGBlnHi6gUqGo1xiTsZ6QmkrMzh8AkEhlpN66TsL2b5HI5ZjOXoYmIZ7kQzk/3WzrZEtYwJt1EB4YhrG5CUamRjqnLFVpKuq41mPk8rGkpaSye/VOAM78eooGbo349p8fkclk3Dp/g+snr6KPoJgkHMwM06ftzQyJS0kjPiUtfbiAX2Q8NiYGzDt2m0ehMZgZKJjQVNtYlUgkyCUSZv55kxOPgmhR1oGSVqZ6ZXlNYmaFOvZNr60mNhKJgTEoDdOHC0hMLFE/9yb14u9owgOQ13bFoPMYknYsRHXvIvLPa2E0/CuQylD53UP17HaOMgFI7e1Rhb55/6lDQ5GamiIxNk4fLqAOCiIlKCi9xmzMGJL//hvS0ki9fx+j1q1JvXMHiVKJYdOmaHLh9LdNFvuUyXv2qbqu9Ri9fBypKansWv0LAI9uPqJZ1xZ4X3uAQqmgQbuGpKXql01qaYs68k0eTVQYEiMTMDTKNFzAsNcYUv4+ijrAN/Pj7Yui9nuE0aj5SMytUT27R/KBH/XKklFBW0/Cp/HJelylUikGBgbvXP56qMCff/5J586d0Wg0NGr07m89LVu25Ny5c6jVao4cOUK7dvqfrv3/RCKVZNmAV6uy/jalMDKgx0YPrEs4cnDalixrPj6EBLL6DpGhZ13ZohOoVKSeP5o7r5kdUom2Z/ItmrfXzXvqpAoZRZpW4dzI9Rx2m42BpSnVvXrkeqaM60rRvCOoVaRePPbupyleDpOpq0k5fYC021f0z/OKRCLNOtZ79qNe34zHuqQDv3ll3o+KVCmF+545XN52nIenbugZSPrBfeq11CsXiOrfmcT//YTZvJUgkZD81x8kbFkHyUlo4uNIOrAHZf3cOSsiecc2fNe6unr8CkNr9GfPmv8x6+d5SCQSekzoRUxENO61BjKy/hBMLc3o4K7fsAoNGiRvDb0BkEnfzEtTa7joE0K3qsXZ2a8xvWqUZNz+q6SkvfniutitOqdHtyImKZXvLj3WK0s6iZQsN2CG7aeJCSP5t6/RhGt79dKuHUdiYYfE3BZFg45oEmJJ3DyZxO+mIjE0QV6rdc4ywatjVRbv9axuN2RoiMW8eciKFiVmxQoAYjdtAsDm+++xWLSI5GvXcmXcplT6ce+/f45fYVCNfuxe8z9m/zwfiUTCT4u2gkbDqj/XMm3LDG6dv6l/g0wi4UPbT9HYDVQq0i7/pftwqRxZhRok/riMhJUTkRibYdBB/9+qf63AradPRa3Om79C4pP1uFapUoWdO3ei0WQ+qK5evZoSJUqkT0ulUqZOnUqXLl344YcfcHd3z/L5TExMqFChAtevX+fy5ctMnjyZP//8M8//HwVRi0ndKN9KO97LwMyIYO/n6cvMHK1JjIojNTFZ53EWRWzo/cNkwp4E8FOvRXpfNPM2dUQIijIV06clVrao42IyXYihaOyKRGmA6fzN2tN/SiWm8zcTv2YmmqjwrJ5WL9WmdOMz15ra1zQ1IirDujF2tCI5Mo60t9ZN/Mtw7GqUybIuISgS/z+vpvfQPtt/kaoTuuidTxMeiqRUhfRpiaUtmvjM60rZsDUoDTGZswlkclAqMZmziYR1M9FERyCv0xyjvmNJ3PkNaf/of/rNZWJ3KrbWrisDU2OCH/qnLzN3tCbhPftR/x+mEPokgB/e2o+cOzag08LBHJrzE7cP/q13NnVoMPLP3+xTUhtb1LExkPxmPUkdiyK1sibtgbanN/nknxiPmoTE1AxFrfqofJ6g8nvVuy+RgEr/D6eek/pQu1UdAIzMjPH39ktfZu1oQ1xULMlvrSvHEo5Y2lnhfe0BAKf3nGT4klGYWJhSt219ts7dQlpqGmmpaZzde4r6bg35Y8uBj87maGbEncCo9OmQuGTMDRUYKd4c7u1MDShlbYqzkyUALco6sOD4HV5EJxIUm0hZWzPsTQ0xVsppW6EIJx8HkROa2HCkjqXSpyWmlmiS4iHtzUWEEtuiSO0+Q/Xg8psHSiSgViErW5OU0//TjsNLSSTt3iXkn9ci7bpuI+ljqENCUFTMsF/Z2qKOiYGkzBeNSe3tsVyyBJW/P5ETJkCKNrfE2JjYzZvRxGpPOxv37Uvaq2EHH6vXpD7UaVUX0N2nbBxtiM1yn3LC0s4yfZ86tecEI17tU4bGBmxf8hNx0XEAdBvTI304y8dSR4YiL1k+fVpiYYMmPhZS3uRR1GsFCgOMp34NcjkolBhP/ZrEzfNQx4STduvv9N7Z1KunMWjbW68sBXk9CZ/GJ+txrV27NjY2NmzYsCH9oqrz58+zf/9+ypYtm6lWLpczdepUNm7cSGiG0zhva9euHatWraJKlSrp42b/i06v3sdmtxlsdpvB913mUqxGWaxLasc51u7rgvfx6zqPUZoYMmj3LB4cvcbecRtyrdEKkHb3OrLSFZE6FNW+VouOpN3I3GiJXziWuNnuxM0dSfyaGZCSQtzckbnaaAW4tXIff7jO5A/XmRzpOA/bmmUxK6VdN5/3d+H5cd0hHYFn77yzzv/wP5ToWB+ZofaUa/E2tQi/9UznObIr7f6rdWVfBABlsw6k3ryUqSZ+iQfx84YTv2AUCV/PgpQU4heM0jZaq9bHsNdo4tdMz1GjFeDkmr1scJvBBrcZbP5iDp9VL4dNSe1Qnbp9XXjwV9b70bBds7l/9Cq7x63PtB9VcKlJh7kD+Kn/0hw1WgFSb15FXr4SUiftPmXQthOp/1zMVCO1tsF0yhwkZhbabM1ao/L3QRMbg6x4KYz6DNGOlVQqMXT7gpTz+q+v3at34uk2EU+3iczoMpVyNcrjWNIJANe+bbl6/B+dx1jaWzNhwxTMrMwAaNylGf4P/YmLisXn7jMatteeYZLJZdRuXZdHNx7qPEd2NChpy53AKPwi4wHYe8uP5mXsM9U0KmXPy5hE7gdHA3D9RQQSoKiFEccfBvLdpcdoNBpS0lQcfxRIneI2emV5TeV7H5lTaSSW2hzyas1QPbmZuUijQdmiFxJz21c1zVGHvkATF4k6xB/Z568umJHKkJWphipQ//fda8lXr6KoVAlZUe1+ZdypE8kXM+9XEiMjrNauJfn8eaIXLEhvtL6uNx0yRBvLygqj9u1JOqHfRX+7Vu9kstsEJrtNYHoXTz6vUR6n9H2qHVeP655JsbK3YvIGz/R9qmmXZjx/tU+16duOXq8uQLKwtcSlV2vOHzirVzaV9w1kJcojsdMepxSN3Ui7czlTTcKqSSQsG0PCVx4kbp4HqSkkfOWBJiaCtJsXkddooh2njPZiLZW/fr34BXk9fSoajTpP/goLieYTDgyNiIhg6dKl3L17F7lcjpWVFV5eXpibmzNgwABOnTqVqX7IkCEUKVKERYsWZbod1uva+Ph4GjZsyObNm2nQoAFeXl7UrVtX79thpYbl/ED42sxFqyhbukSOb4e1uNbsj35MuRbVcHl1O6xIvxB+m7iJxOh4ijiXotNydza7zaDx6E60nNKDkAw9kADb+iwhMSrug68xsWXwe5fLq9bFsNtQkMtRhwSS+P1ypHZOGA2eRNzckZlqJTYOmC36nphRHXWex+LHE8SM65qt22EdOJ71eOiMirasRo3pXyJVyInzC+HC+M2kRMVjU7UUDVYO4w/Xme+tk0glOI/vQslO9ZHIpETc8eXytK1Z3lILoItbSJbzM5JXqfPmdlihAST+sAKpnSNGAycRv2BUplqJjQOm874jdpz2NLLJwh+QmJhlavCrntzT3hLrPZb/9eGLpD5vXh3XaT2RKeRE+AWzd5J2PyrqXIovlruzwW0GTUd3ovXkLzP1zgL80GcJI/bNw9jSlJjgN2Ou/a494tCcn7J8vcnV3t9TpahVD6P+w7W34wl6SfzaJUgdi2AyxpOYidq7Vhi07YyBWxdQqVBHhJPw7RrUIUGgNMBkxATk5SuBTE7KxTMk7vjw0JgRNy0/WANQo0Ut+kztj1wpJ9gviA0T1xIXHUdp57KMWj4GTzftnRZc+7WlzQA31GkqIkIi+GH2t4Q8D8HU0oyhC4ZTqnJp1Go1dy7e5ufFP77zlOW2maXfm+f8sxDWX3hImkpNMUtjFratxovoBBYcv8PuAdohEtdfRLD27AMSU1UoZVI8W1SiRjFrYpNSWXTiLk/DtL2ILco5MqphOaRZDD/IJO79xw1pqSra22FJ5WiiQ0k++gNSCzuUrQeStEN7lb6sYj0UddqBRIomLpKU49vQxEaAoQnKln2Q2n8Gag2q5w9IPfvrB6+Ejj344caRsl699NthqQICiF6yBFmRIph7ehIxbBjGffpgOnQoaT6Zx5dHTpoEqamYz5yJ/FXDN37nTpL+en8v8Cgf8w9mAqjZohb9pg5ArpQT5BfE1xPXEBcdRxnnsoxePpbJbhMAaNOvHe0GuKF6tU9tmf0tIc+DMTQxYvyaidpGnUTC/o17OffbmXe+3rbO72+4vL4dFjI5mrBAEnesRmrjiGFvDxK+8shUK7G2x2T6N8R5vhpGJZGibNMTec0mSCRSVC+ekrR7wztvp/XawAMf7lv71Otpv9/BD2bKa8lPL3+4SA8GZernyfPmtk/acC3ocrPhmlv0abh+Ch9quOaH7DRcP7XsNFzzQ3Yarp/ahxqu+SG7DddP7UMN13zxgYZrfshOw/VTy27D9VP7UMM1P2Sn4fqpFYiG6+OcncF6F4Ny+X9npuz4755fFwRBEARBKGwK0Wn9vFDwvs4IgiAIgiAIQhZEj6sgCIIgCEJhUYh+5SoviB5XQRAEQRAEoVAQPa6CIAiCIAiFhRjjKgiCIAiCIAgFn+hxFQRBEARBKCwK0c+z5gXRcBUEQRAEQSgsxFABQRAEQRAEQSj4RI+rIAiCIAhCYfEfHyogelwFQRAEQRCEQkH0uGawuNbs/I6gY+b1hfkdIUsNnAfmdwQdkyWa/I6go9Xh5PyOkKXDlV/mdwQdTS4n5XcEHde+qpjfEbLkMfdpfkcoFMI15vkdQccSg7T8jpClfr8XvH6sn+rE5HeEAkmjET9AIAiCIAiCIAgFnuhxFQRBEARBKCz+43cVEA1XQRAEQRCEwkJcnCUIgiAIgiAIBZ/ocRUEQRAEQSgs/uNDBUSPqyAIgiAIglAoiB5XQRAEQRCEwkItboclCIIgCIIgCAWe6HEVBEEQBEEoLP7jY1xFw1UQBEEQBKGwELfDEgRBEARBEISCr8D3uF67do2FCxdmmvfo0SPGjRvHtm3bOHz4MLa2tgC8ePGCAQMGcOrUqU+Wr1zL6rSa2hOZUk6w93MOTt1CclyiTl3VLxrRcHh70EBqUjJH5m4n4I7PJ8up0WiYuWgV5cqUZHCf7p/kNRu5NGDsjBEolQoeP3jKwknLiI9L0KmbMHcMrTq2IDpS+7vUfk/9mTFyHiZmJsxZ7UXJssWRSKUc3nOEbd/szFGmIi7VqTa9J1IDOVH3n3Nl8hbSsthe2alr/P0EEoMjuT5zW44yATRyqc/o6cNRGih4cv8ZiyYvz3JdjZ8zGpeOzYmJer2unjNz5HwMDJV4LplI5eoVkEgk3L3xgBUz1pCclKJXHmXd+pgMHQ4KBSqfZ8SuWo4mIXMew85fYNShM2g0qAIDiF2zAk1UVPpyqZ0dll9vInLEUDQx0XrleFvTVo2YMHMUSqWSR/efMHviYuLj4nXqPOd50KajC9Gv1pPPUz+mDJ/Fmu+XUrxUsfS6osWLcO3Sv4wd4Kl3pnNPglh/+h4pKjXl7M2Z174mpgaKTDWPQ6JZdvw2ccmpyCQSZrWrTiUnKwB2X3/Gbzd9SU5TUdHRinnta6CUy/TO85pzi5p0ndoHuVLBC28/tk3bRFIW+3qLAW1p3s8VjUZDqH8w2702Exv+5jfirZxsmP7bEha0m0JcZOz/u0wAtVrWpu/UASiUcvy8/fhm6tckZpGr3cD2tOnXDjQagvyC2OS1gejwaEwtTBmxeBQlK5UiOTGZU7+e4M+fDuudx6R5HewmDUKiVJD80IegGWtRx+vmAXBaPonkh75EbN2vnSGV4jBnFMZ1nQGIO3uV0OU/6J0lo1otazNg2kAUSgW+3r6s91yX5Xp6rZ5rfSaunUSvSl9mmm/rZMtXB1Yxvs04YiNj3vHo7JHXrI9RP3ckcgUqv2fEb/wKEjMfqwzafYFBm06gAVXQSxI2rUQTE6Vd1qYzylbtkSgNSHv6iISNX0Faao4y5bn/+FCBAt/jWrt2bQ4cOJD+98UXX/D5559jZWVFfHw8c+fOzbdsxtZmdFkxnN0j17KhpSeR/iG08uqpU2dT2onWM3qzY+BXbHabwbn1v9Pz2wmfLOdTX3+GekznrzMXPtlrWtpYMnftdKYOm0W3Jn156RfA2Jkjs6ytWrsKM0bOo2/rIfRtPYQZI+cBMGrqMIIDQ+jZYiAD2rrTbWAXnGtV1juTgbUZ9dYM57z7Wg438STOP4TqM3S3V3bqKo7ugF298npnycjS2oLZa7zwcp9Njyb9eekfwJgZI7KsrVq7CjNHzadf62H0az2MmSPnAzDYoz9ymYw+LkPo4zIEA0MDBo7rp1ceiYUFZlO8iFkwm8gh/VEFBmAyNHMeebnPMe7ek6jxY4gcPhjVyxeYDByavtygVRssV61HZmunV4asWNlYsmjdLCYMmU6HRl/ywu8lk2aNzrK2ep2qTBkxi24u/enm0p8pw2cBMHHY9PR5cycvITY6lkVeK/TOFBGfzNw/rrOyWz0OjGxNMUsT1p2+l6kmMTWNUf+7yKD65dg9tCXujcsz48A1AE56v2TXtad826cx+4a3IjlNxY5/nuid5zVTa3MGrRjNplErme0ynrDnwXSd1lenrniV0rgO78iybrOY12YywT6BdJ7cK315g65NmbpnAVaO1v8vMwGYW5szdoUHK0YuZVzL0QT7B9Hfa6BOXekqZejs3oUZXacywXUcgb4B9J6szT94zjASE5IY32osXl08qdG8FrVa1tYrj8zKHKelE3k5bjE+bYeT+jwIuymDdeqUZT7js21LMWvTONN8i84tUZYqhk+H0fh0GoNxXWfM2jbWefzHMrc2x2PlBJaNWMroFiMJ8g9igNegd9Y7lSzC4FlDQCLJNL9Ft5Ys+XUZNo42Oc4kMbfAZOw04lfMIcZjAOrgAIz6Dc9UIyv9OQadehIzYywxEwejDnyJUe8hACjqNcHArStx8ycTM2EQEgMlBh175DiXkLcKfMM1o2vXrrFp0ybWr1+PgYEBbdq0wc/Pj0OHDuVLnjJNnXl5+xkRvsHafDtO4Ny5kU6dKiWVg9O+Jy4kCoCA2z6Y2lkiU+S8VyU7du37g24d2+DaoskneT2A+s3qcP+mN899XgCwd9vvtOvaWqdOoVRQvko5Bozpw65TP/HV9wtxKGoPwMrZ61g3fyMAtg42KJVK4mJ1e9eyy7GZM+E3nxHno91eT7adoERX3e31oTr7BhVxal6VJ9tP6p0lo3rp6+olAPu2HaBt11Y6dQqlgs+rlGXA6N7sPPkjy7YsSF9XN67cYuu67Wg0GtRqNY/uPsapqINeeZS16pD6yBvVS22exEMHMHDJnCft8SMiBvVFkxAPCiVSWzs0sdqeE6mNDQaNGhM9fYper/8uDZvX4+6NB/j7PAdg17b9tO/WVqdOoVRQscrnDBnbn9/O/MLaH5bprAuFQs6Sr+eybPYaggJC9M50ySeEyk5WlLA2BaBHzVIcufccjUbzpuZZCMWsTGhS1hGA5uWc+KprXQAO3X1O/3rlsDBSIpVImNm2Ou2di+ud57XKTarie/spIb5BAJzZcZx6nXXf//53nzGruQeJsQnIDRRYOVoT/6oH08LeiuqudVk7YFGO8xTUTADVm9bgye3HBPoGAnB0xxGadG6mU/fs7lPGNB9JQmwCCgMF1g42xL7KVca5DGf3n0atVpOWmsb1U9do4KZ7bMkOk8Y1SbrziFS/AACi/ncY804tdOqs+nYg+tdjxB49n3mBTIrU2BCJUqH9U8jRJOt35iWjGk1r8uTWYwJ9tbmO/vwnzbo0z7JWaWjApHWT2brw+0zzrR2sqedan3n95+Q4D4CiWh1UT7xRB2qPVcnHDmLQJPOxSvXsETFj+8LrY5WNLepXxypl8zYkHdyDJi4WNBoSvl1NytnjuZItT6nVefNXSBSahmt4eDiTJk1i0aJFFC+uPbArFAqWLl3KsmXLCAsL++SZLJxsiAmISJ+OCYzA0NwYA1OjTHVRL8J4fOpm+nSb2X15eOJfVKmf5l5sMyePpr2r7oEvLzkUsSc4IDh9OiQwFFNzU0xMjTPV2TnYcu3iv2xatoVeLQdx5/p9Vv+4NH25SqViwYbZ7D69jet/38Dvib/emYyL2pCQYXslBEagNDdG/tb2el+dkYMlNRf05++xG9Hk0hvdoag9IRkaT+9eVzZcu3iDTct/oI/LYO7+e5+VPy4B4MrZa/g/035JcCzqQK9h3Tn5xxm98kjt7FGHvsmjDg1FamKKxDhzHlQqlA0bY/O/X1E4VyXp2J/a+vBwYubPRvXyhV6v/y5ORRwIyrBPBQeEYGZuiompSaY6e0dbrly4ztfLNvNF877cun6X9dsy96p27dOJkOBQTh45m6NMwTEJOJq/2X8czI2IS04jPiUtfZ5fRBy2JobMO/wvfbaeZuT/LqJSaxu2/uFxRMQnM3rXRXpsOcnm8w8wf2uYgT6sitgSGfjmmBgZGI6xuTGGb+3rAKo0FdVd6/DVpc2Uq1uJi7+eBiA6JJJNI1cS7BOY4zwFNROAjZMtYQFvcoUHhmFiboLRO3LVda3Hlss/UqleZU79egKARzcf0axrC2RyGYbGhjRo1xAreyu98sid7EjNsJ5Sg8KQmZkgNcmcJ3jBJmKyeI9H7z+BKjqWsue3U/bCDlL9Aok7/Y9eWTKyLWJLWIZcYe9ZT6OXjeHoL0fxfeCbaX5EcATLRiwhwCcgx3kAJLb2qMNC06fV4aFITEzBSPdYpajbGIvvfkVesSopp48AIHMqhtTCEtNZX2G2+gcMvxyEJj4uV7IJeadQNFzVajVTpkyhffv2tG6dudfO2dmZbt265cuQAYlUkqln5TW1KusGjcLIgB4bPbAu4cjBaVvyOl6+kkqlZLFqUL21bgKeBzK+31SePtSO9/150/8oWrIoRT5zSq+ZM3YhrSp3xNzKnGGTBumdSSKRkFUozVuZ3lUnkUDDjWO5MW8HSa96z3ODVJLddRXExP7TePZqXe3YtIuiJYpQ5DPH9JoKzp/z3e/r+fXH37hw4pJeeSRSKWSRJ6uGesrfFwjv3pmE7T9hsXSlzmnB3PTO99tbN+N+6R/IqL4TeeL9DIAfN+7gs5LFKFr8zT41YERvvl3zY44zqTUgQff/LMuwHtLUGi48DaZb9ZLsHNKCXrVLM3b336SkqUhVq7nsE8JXX9Rl55AWxCSlsv7s/RznkkokWe5T7zo23Tx+lUk1h3Jo7R4mbJ+lfQ/ksoKYCd59rHpXrn+OX2FQjX7sXvM/Zv88H4lEwk+LtoJGw6o/1zJtywxunb9JWmpalo//EIn0HcepbH5Rth3bB1VkDI8b9uVp0wFILUyxHvKFXlky5ZJk7/OuXX831GkqTu75K8evmZ1MWR6sslhXqf9cIHpwZxL3/ITp7BXaY5VcjrxabeJWzSN26gikZuYY9RmW57lzrAD2uB46dAg3NzdcXV355ZdfdJbfu3ePbt260alTJ0aMGEFMjP5jmwv8xVkAGzZsICUlhcmTJ2e5fOzYsXTt2pU//vgjz7O0mNSN8q1qAWBgZkSw9/P0ZWaO1iRGxZGamKzzOIsiNvT+YTJhTwL4qdci0pIL+OBvPYzwHEpTV+3pMRMzE54+eJq+zM7JlujIGJISkzI9pmzFMnxeuSx/7j2WPk8ikZCWlkb95nV58uApYcHhJCYkcuy3E7Rsr3sK732cPbtR1FW7vRSmRkRl2F5GjtYkR8ahemt7JbwMx6ZmWZ0688+LYlLCnhrztGNHDe0skMikyAwU/DMl8ymxDxnuOYSmrg0BMDE1SW9kAdg5vmtdlaZcpbIc2ffmVJZ2XWkbbq07t2TqkomsnLWOY7+d+Kg8GalCgpFXqJg+LbW1RR0TA0lv8kiLFEVqZU3avTsAJB37E9Pxk5CYmqUPGcgNY6cOp0Ub7elkEzMTHmfYp+yd7IiOjCYxIfN6+rxSWcpXKsehvUfS50kkkPbqDEeFKp8jk8u4+ve/Oc7nZGHE3Qy98yGxSZgbKjBSvjm02pkaUsrWDOei2jGZLT4vwoLDN3gRFY+9qSEu5YukX8zlVuUzvrvgrVeWThN7Ur21dlyloakRLx++OTth6WhNfFQcKW/t63YlHLGws+TJNe1rXthzmn6Lh2NsYUJ8VM57ngpiJoBek/pQp5V2uIaRmTH+3n7py2wcbYiNiiX5rVyOJZywtLPE+9oDAE7tOcGIJaMwsTDF0NiA7Ut+Ii5am6/bmB4E+erXK5waEIph1Tfj5+UOtqiiYtFk8bmSFTPXhgQv3AypaahT04j57SRmbRsTsfW3j87SZ1Jf6rSuB4CxmTF+3r7py961nlr2aIWBkQFrjnyNQilHaahkzZGvWThoHhHBEeQmdVgIsnIZjlWvhwEkZzhWORZFYmmNylt7rEo5dQTj4ZOQmJihjggj9fK59Iu5ks/+hVGPAbmaMS9oNAXrl7OCg4NZs2YN+/fvR6lU0qtXL+rVq0fZsm8+RxcvXoyHhwfNmjVj2bJl/PDDD0ycOFGv1yvwDdeLFy/y66+/sm/fPuTyrOMqlUqWLl1K//79sbbOnQH773J69T5Or94HgImNOaOOLcO6pAMRvsHU7uuC9/HruvlMDBm0exY3957n7Lr9eZovP3274ge+XaG9etXKxpJdp7fxWaliPPd5QbcBXTh7TPfiMI1azZSF47l55TYBzwPpPrALT+4/JSQwlBFThtDSrSlLpq5EoVTQulMLrpy79lGZ7qzYx50V2u1lYGOO26llmJZyIM4nmHIDXHiZxfYKPHuHGnP76tSFX3/Cwdoe6XVVJnfFwNpMr7sKfLdiK9+t2Apo19XOUz/yWamiPPd5SdcBnTh3/KLOY9RqDZMXenDrn9sEPA+i28AuPHmgXVeNWzdk8kIPPHpP4cHthx+dJ6OU61cxHTEaWdGiqF6+xKhDJ1IuZc4js7bBbMZsIkcOQxMTjUHL1qh8fXK10Qqw4avv2PDVdwBY21rx25mdFC/1Gf4+z+k5sCun3h7fh/YMzfTFk/j3n5u89A+k16BuPLr/hOBA7fCHOg1rcuXCx+1H79KglAOrTtzFLyKOEtam7P3Xh+afO2WqaVzGgdUn73A/MJJKTlZc9w8DCRS1NKFVhaIcf/CSL6qXxEAu5fSjACo76XeK+eCa3RxcsxsAMxtz5h1dhX1JR0J8g2jW15Wbf13VeYylvSXuX09ggZsncZGx1O/SmJeP/HOtgVgQMwHsWr2TXau1dyixsLFgzbH1OJV0ItA3ENe+7bh6/IrOY6zsrZi0fgqT2o0nNjKWpl2a8fyhP3FRsXR274KRmTHfz/kWC1tLXHq1ZvWYr/TKFn/hX+y9hqEoUYRUvwCsersRe/Jyth+fdP8pZu2akHDlNshlmLrUI/Gmfl+Gdq7+hZ2rtb1nFjYWfH18A04lixDoG0Dbfm78c1w3l2enSen/ti9mz9d/fcPEdh46dbkh9eZVjAaOQupUFHXgS5SunUi9mvlYJbWyxmTiHGImD0MTG42ySStUz33QxMWQeuksioYtSD55GFJSUNZtTNrTnB0/C7OYmJgse0LNzc0xNzd/5+P+/vtv6tevj6WlJQBt2rTh6NGjjB07Nr1GrVYTH6+9RiUxMRELCwu9cxb4huu3336LSqXC3d090/xevXplmnZ2dmbgwIGf9EKt+PAYDnh+y5ebxiNTyon0C+G3iZsAKOJcik7L3dnsNoO6A12xKGpLxTa1qdjmzZWm2/osITEXD8YFSWR4FAsmLGX5loUolHJe+AYw10N7QUXFauWZtXIafVsP4elDH1bMWsua7cuQyqSEBIQyY/Q8ANbM/4YZy6ew+7S2YXj6yDn+t+VXvTMlh8dweeK3NP5uPFKlnDjfEC6P124v66qlqLvKnaOtZ7y3Li9EhkexcOIyln23ALlSwUvfl8wbrx27WrFqeWau8qRf62E8e+jDylnrWLVtKVKZjJDAUGaNXgDA+DmjkEgkzFz15rZOt67eZcWMtR+dRxMVRezKZZjPXqC9HVbAS2K/WoL88/KYTfIkcuQwUu/eJmHnDixXrgW1ClV4ONHzZubG6niniLBIZo1fyNofliJXyHnu95IZY7V3VahcrQILVs+km0t/nng/Y8mMVXzz8yqkUinBgSF4jpyd/jwlSn1GwPPcGSNpbWLA/A418dx/hVSVmmJWJizqWJt7gZHMP3yDPcNaYmtqyJru9Vly7BaJKWko5TJWd6uHgVzGl7VKE52UQp+tp1FpNFR0tGRyO+cc54oNj+FHz42M3DQZuUJOqF8wP0zaAEAJ59IMXD6KBW6ePL7qzeFv9jNl1zzUKjVRwRFsdNf/LguFLRNAdHg0GzzX4bnJC7lSTpBfEF9PXANAGeeyjF4+lsluE3hw9T57N/zKwt1LUKWpiAiJYNlw7ft038a9jF8zkbXH14NEwq7VO3lyW7+7Q6giogmcvoai62cgUchJ9Q8iYOpKDKuUw3GxB76dx7338cFLvsNxzihKHf0WVGriL90k/Pu9emXJKDo8mq+nrGPa5unIFXKC/ANZO2E1AGWrlmXMco88a6C+iyYmivhvlmMyZb72dlhBASSsX4KsTHmMR3kSO2UYaQ/ukLjvZ8wWrEWjUqGJDCN+ufYuI8nHDiAxNcf8q+9AKkXl85iEzRs/6f9BL3l0IdW2bdvYsGGDzvyxY8cybty797uQkBDs7N7cQcbe3p7bt29nqvHy8mLIkCEsWbIEIyMj9uzZo3dOiSarQSv/UfNK6N6aJb/NvL7ww0X5oIGz7u1i8ttkSc6vxs5ta8jdC5Ryy2H97yqWZ5rfTvpw0Sd27atPe1FjdnnMffrhIoFwTfZOr39KSwz0G/ua16YlFbxLXn6qU/A6dqz2ncnvCCSe2Zonz5tas7tePa6bNm0iOTmZCRMmALBnzx7u3r3LggXajpWkpCS6devG0qVLqVq1Kj/++COXLl3iu+++0ytnge9xFQRBEARBEF7Jox8g+FAD9V0cHR25du3N8KvQ0FDs7e3Tpx89eoSBgQFVq1YFoGfPnqxbt07vnAXvK5YgCIIgCIJQKDRs2JBLly4RERFBYmIix48fp2nTpunLS5QoQVBQEM+eaS9CPnnyJM7O+g+JEj2ugiAIgiAIhUUB+7EABwcHJk6cyIABA0hNTaV79+5UrVoVd3d3PDw8cHZ2ZunSpUyYMAGNRoONjQ1LlizR+/VEw1UQBEEQBKGwyKOhAjnRsWNHOnbsmGneli1v7lffrFkzmjX7uNtZvosYKiAIgiAIgiAUCqLHVRAEQRAEobAoYEMFPjXR4yoIgiAIgiAUCqLHVRAEQRAEobAogGNcPyXR4yoIgiAIgiAUCqLHVRAEQRAEobD4j49xFQ1XQRAEQRCEwkI0XIXXJrYMzu8IOho4D8zvCFm6dGdbfkfQcbHytPyOoOPs9h75HSFLfYcfz+8IOq4trpXfEXQ4jN6T3xGyFLSsbX5H0CEpVjy/I+hI3nMsvyPoGP23ZX5HyNL/PJ3yO4KOtsse5ncEHefyO4AgGq6CIAiCIAiFhrg4SxAEQRAEQRAKPtHjKgiCIAiCUFj8x8e4ih5XQRAEQRAEoVAQPa6CIAiCIAiFxX98jKtouAqCIAiCIBQWYqiAIAiCIAiCIBR8osdVEARBEAShsPiPDxUQPa6CIAiCIAhCoSB6XAVBEARBEAoLMcZVEARBEARBEAq+POlxLV++PA8fPuTFixe4uLiwdetWGjVqlL68ZcuWbN++HYC2bdtSpkwZAJKSkqhZsyaTJ0/G1taWFy9eMGDAAE6dOpXl8wP88ssv7NmzB41Gg0QiYfDgwXTp0iUv/lsAyKvWw7D7UJArUL94RsLWVZCUkHVtjYYYu3sRM7pTpvkSaztMZ60nbs5wNHExuZKrkUsDxs4YgVKp4PGDpyyctIz4ON1cE+aOoVXHFkRHal/X76k/M0bOw8TMhDmrvShZtjgSqZTDe46w7ZuduZLtXTQaDTMXraJcmZIM7tM9T1/rNetWNSk9sw9SpYK4+348nLgJVVxitmuKDHLFqa8LUkMlcbef4T1xE5qUtBxlOnfPh/WHLpGSpqJcEVvm9XbB1EiZvvzQPw/4+fTN9Om4xBRCouI4tmAwNubG7D5/m98u3Sc5NY2Kn9kzr7cLSoUsR5kAarWsTd+pA1Ao5fh5+/HN1K9JfGtdAbQb2J42/dqBRkOQXxCbvDYQHR6NqYUpIxaPomSlUiQnJnPq1xP8+dNhvfOcexrM+nMPSVGpKWdnxry2VTE1UGSqeRwaw7KT94hLTkMmkTDL1ZlKjhaZaib9fg07U0Omt6qid5a3tWnTgrkLPDFQKrl715uxo72IjY3LVNO7zxeMGTc0fdrc3IyiRR2p8HkjQkPCACha1ImTZ/bRsH57IsIjcyXbed8w1l96ql1vNqbMdamIqTLzof9xWBzLzz0kLiUNqUTCrBYVqGRvniuv/9o57+esP3pdu587WTOvWyNMDTPs59ef8POFe+nTcUkphETHc2x6T0wMFSz9/TJ3X4Si0YDzZ3ZM71IfQ0XOP8LkNepj1GsYyBWo/J+R8N0KSMx87FS6dsGgdWfQaFAHB5CwZSWamCiQSDEa7IG8YjUAUm9eIemXzTnOBFC9ZS16Te2HXKngubcf303dkOX7z3VgO1r1a4tGA8F+QXzvtZGY8GgAWvVvS4terVAaGuBz5ynfTd1AWg6PV68VlP2qvks9RngNQ2Gg4OmDZyyfvJKELD77XmvcphGzvvaibfmOAEilUiYsHkf1+tptePnUFTYu/DZXM+Y60eOatxQKBbNnzyYuLi7L5fb29hw4cIADBw5w9OhRbG1t8fDwyNZz37p1i19//ZXdu3dz8OBBtm7dytq1a/H29s7N/0I6iZkFRkOnkPDNfOJmDEYdGohhj2FZ1kodimLYcwRIJJnmKxq2xtRrNVIr21zLZWljydy105k6bBbdmvTlpV8AY2eOzLK2au0qzBg5j76th9C39RBmjJwHwKipwwgODKFni4EMaOtOt4FdcK5VOdcyvu2prz9DPabz15kLefYab1PYmFNh3WjuDVnJP43Gk+QXTOlZfbNdY+tWl6JD23Grx0KuNp2E1FDJZyM65ChTRGwic385ycohbhyY1Z9iNuasO/R3ppqOdSuyZ1pv9kzrzS9TvsTW3BivHs2wMTfm5K0n7Dp3m2/HdGHf9L4kp6ax48yNHGUCMLc2Z+wKD1aMXMq4lqMJ9g+iv9dAnbrSVcrQ2b0LM7pOZYLrOAJ9A+g9Wbu+Bs8ZRmJCEuNbjcWriyc1mteiVsvaeuWJSEhm7tHbrOxSiwPDmlPM0ph15zK/zxNTVYz69R8G1S3D7oFNcG9QlhmHM6+LH6885caL3GkQvmZja83Gb5fTv89oatVoha/vc+YvmKpT97+dv9G4QQcaN+hA8yZdCAkOZcqkeemN1t59vuDI8V0UKeKYa9kiElOYe/I+K9o583u/BhSzMOLrv59kqklMVTH64A0G1izBrl71cK9TipnH773jGfXMEZfE3F8vsLJfCw5M6UYxa1PWHb2eqaZjrbLsGd+ZPeM788vYjtiaGeHVuT42ZkZ8f+oWKrWaX8d34dcJnUlOS2Pr6ds5ziUxs8B4xFTi18wldvJA1CGBGPUenqlGVupzDDv0JHbOWGKnDkEV9ALDHkMAUDZpjbTIZ8ROHUqs1zDkFauhqNcsx7nMrM0ZsWIca0d+xZSWYwn2D6KXV3+dulJVStPevQtzu05nmut4gnwD6DG5NwB12tanzaD2LOkzj6mtPFAaKmk3tJPOc+ijoOxXFtYWTF/tyezh8+jXdBCBfoGMmJH1ZzJAsVJFGT078+eya/fWFC/zGYNchjG4tTvV6leleYemuZpTyF153nC1t7enYcOGLF++/IO1EomEcePG8fjx42w1PkNDQ9FoNCQmar+F2tjY8PXXX2NlZZXj3FmRV66FyucR6uCXACSfOoSyvotuodIAI3cvknZl/uYtsbRBUbMh8au8cjVX/WZ1uH/Tm+c+LwDYu+132nVtrVOnUCooX6UcA8b0Ydepn/jq+4U4FLUHYOXsdaybvxEAWwcblEolcbHxuZozo137/qBbxza4tmiSZ6/xNqvmVYm98ZREnyAAArYdx6Fbk2zXOH7ZjBebD5EWFQcaDY+mbiHo13M5ynTJ25/Kxe0pYW8JQI/Gzhy59hCNRpNl/U8n/sXa1IjujbS9hYf+8aZ/ixpYmBgilUqY+WUL2tepkKNMANWb1uDJ7ccE+gYCcHTHEZp01v1Afnb3KWOajyQhNgGFgQJrBxtiI2MBKONchrP7T6NWq0lLTeP6qWs0cGuk8xzZcck3jMqOFpSwMgGgR/USHLkfkGk9XfINpZilMU1Ka/fp5mUd+KpjzfTlV/3D+ds3lO7Vi+uV4V1cXJrw7/U7PH3qC8APW3bQo2fn9z5m4qQRhIaG8+PW/wHg6GhP+w6udO08KFezXfaPoLK9OSUsjQHoUaUoRx4FZVpvl59HUMzCiCYltV+mm5eyZXnb3OuNBrj0+CWVi9lSwlbb+92jXgWO3Hj67v38zG2sTQzpXk+7L9cs5Yh7y2pIpRJkUinli9gQEJV1Z8jHkFetg+rZQ9RB2mN6yl8HUDbKfExX+TwiZmI/SIwHhQKpte2bM2VSGRIDI1AoQK5AIlegSU3Jca6qTavz7PZjgl69/07sOEqjzrqNKZ+7z5jUfDSJGd5/ca/ef026NufwlgPER8eh0Wj4YcZmLuw/k+NsUHD2q7rNauN96yEvfLTb7/ftB2n9RRafyYCBoQGzvp7ON/M3ZZovk0oxNDJEoVSgVCpQKBWkJKfmas5cp9HkzV8h8UnGuHp5eXHhwgUuXrz4wVqlUkmJEiV49uzZB2ubNm1K0aJFadKkCf369WP9+vVYWlri4OCQG7F1SK3tUUeEpE9rIkORGJuAoXGmOqOBE0g5exjV88z/B01UOAkb5qc3fHOLQxF7ggOC06dDAkMxNTfFxDRzLjsHW65d/JdNy7bQq+Ug7ly/z+ofl6YvV6lULNgwm92nt3H97xv4PfHP1ZwZzZw8mvauLfLs+bNiWMSW5ICw9OnkgHDk5sbITI2yVWNUuggKWwuq/m8mtU+vpOSUHqTF5KxxHxwVi6OVWfq0g6UpcUkpxCfpHjgj4xLZfuoGU7q+aWz7h0QREZfA6I0H6LFsJ5uPXMHcyCBHmQBsnGwJy7AewgPDMDE3wSjDunpNlaairms9tlz+kUr1KnPq1xMAPLr5iGZdWyCTyzA0NqRBu4ZY2ev3pTI4NhFHszev7WBmSFxKGvEZTnv6RcRja2LAvKO36LP9AiP3XEH16mAcEpfEilP3WNK+OtK3zoLkVNFiTrx4EZg+/fJlEBYWZpiZmWZZb21jxViPYUyftih9XlBQCP36jOLJE59czRYUl4SDqWH6tL2pAXEpKuJTVenz/KISsDFWMu/kffrs/oeRB26gUufuh1hwdDyOlibp0w4WJsQlpxKfRQMhMj6J7efvMaVDvfR5DT8vSgk7baM3IDKOnRfu4epcKse5pDZ2qMPfHNPVEaFIjE3BKPOxE5UKRe1GmH/zK/IKVUk5ewSAlLNH0cTHYv7Nr1hs2ocq6CVp/17KcS5rJ1vCA8LTpyMCwzF+z/uvtmtdNlz+ngr1KnH2V+3QOsfSRbCwsWDattksO7qGbhN7kZDD49VrBWW/si9iR0hAaPp06KvPPuO3PvsApnw1kYM7/uDpg8yfy0f2HCM2Opb913fz241feenzkr//yvk2zFNqdd78FRKfpOFqamrKwoUL3ztkICOJRIKhoSFSqW6812NZQdvI3bhxI4cPH6Zdu3bcu3ePTp06cfPmzdz+L7wOBlm97zJscGWLTqBSkXr+aN5kyIJUKs3yy5JKlXlHDHgeyPh+U3n6UPvh+POm/1G0ZFGKfOaUXjNn7EJaVe6IuZU5wyYNysvYn55UkuV60mR8w76nRqKQYdWsKvfcV3Pd1Qu5lSmlp/fOUSS1RkNWzSiZVHfuvr/v0ty5FMVs34zZTFWruez9nK8Gt2PnlJ7EJCSx/o+cH3TftU+pVVkf3P45foVBNfqxe83/mP3zfCQSCT8t2goaDav+XMu0LTO4df4maan6ja9Ta8h6PWVohKap1Vx4FkK3qsXZOaAxvWqWZOzeq6SkqZh+6AZTWlTCLsOHbW6RSqRZ9hyqVKosqmHw4N78efgvfH2f53qWt2k0OqOVAN31dtEvnG6Vi7KzZ116Vf2McX/cIuUd21ofH7Wf//OQ5pWKU8zGTGfZ/RdhDNn8Jz0bVqRpxc9yHkwizbqnKYsP8dRrF4kZ3oWkfdsw8foKJBIMuw1EExNFzMiuRI/5EompGQbte+Q4llQqyTLXu95/147/w4gaA9m3ZjdeP89BIpEgl8uo0qQaX49ZycyOnphamPKlZ98sH/+xCsp+JZFm/d57ez11GdgJVZqKP3frfi4PmjSAqIhoOlfvTrfavTCzMqfniJxvQyHvfLLbYTVu3DhbQwZSUlLw8fGhbNmymJubExsbm2l5eHg4FhbaD+7ff/8dBwcHGjRoQIkSJejbty9r1qzhwIEDVK9ePdf/D+qIEBRlKqZPS6xsUcfFQEpS+jxFY1ckSgNM528GmQKUSkznbyZ+zUw0UeFZPa1eRngOpamr9rSriZkJTx88TV9m52RLdGQMSYlJmR5TtmIZPq9clj/3Hnvzf5BISEtLo37zujx58JSw4HASExI59tsJWrbP+VitgiT5RRjmNculTyudrEmNjEOdkJytmpSgSMIOX0m/UCt473lKTs7ZRWVOVmbc9c3QWx4dh7mxAUZvXXQEcPzfx0ztlnmb2Jub4FKtTPrFXG51yvPd0at6Zek1qQ91WtUFwMjMGH9vv/RlNo42xEbFkpyYnOkxjiWcsLSzxPvaAwBO7TnBiCWjMLEwxdDYgO1LfiIuWvtltduYHumnPj+Wk5khdwOj0qdDYpMwN1RglOFiEDtTQ0rZmOJcRNur26KcIwuO3eFBcAwvohNYeVqbMTw+GbVGQ0qamrltq+qVZ+asCbRr3woAMzNT7t97mL6sSBEHIiOiSEjQvZAGoGv39kydMl+v1/1YjmYG3AmOTp8OiUvG3ECOUYaL9+yMDShlZYLzq4vYWpS2Y8GpB7yITqS0tYnOc+rDydKUu/5vesZCYhIwN1JipMxiP7/lw9RO9XXmH731jCW/X8Krc33cqpfJlVzq8GDkZTMc063ttMf05DfHTqlDESSW1qge3gUg5fQRjIZORGJihqJuExJ/+hpUaZCYRuq5YyjqNSP58K8fnaX7pN7UbFUHAGMzI/y935zxsna0IS6L959DCUcs7ax4+Or9d2bPSYYuGYGJhSmRwZFcPXo5/YKuC7+fpavHlx+dKyv5uV8NmTKIRq4NADAxNeaZ95uzFLaOtsRk8dnXrkcbDIwM+OH4tygUCgwMlfxw/Fum9p9B03aNWTd7A2mpaaSlpnH01+M0b9+U3d9+/Db8ZApR72he+KS3w3o9ZCAkJCTL5Wq1mvXr11OtWjWKFy+OqakpJUqU4NixNw2t3bt306CBdqdVqVSsWrWKiIgIQNvoffz4MZUqVcqT/Gl3ryMrXRGpQ1EAlC06knYj84U08QvHEjfbnbi5I4lfMwNSUoibOzJXG60A3674If0Cq8HtR1ClVmU+K1UMgG4DunD2mO5FTxq1mikLx6f3sHYf2IUn958SEhhK644tGD55MKAdC9u6UwuuXfw3VzPnt4iztzCvVQ6jUtqLX4oMdCXsrUbe+2pC/7iEXaeGSF9dCW3brg6xN56SEw0qFOe2XxB+IVEA7L1wl+bOpXXqYhKS8A+LplrpzBfutKpeluM3HpOUkoZGo+H07WdULm6vV5Zdq3cy2W0Ck90mML2LJ5/XKI9TSe2+4tq3HVePX9F5jJW9FZM3eGL2arhD0y7NeP7Qn7ioWNr0bUevVxdqWdha4tKrNecPnNUrW4OSdtwOiMQvUnuqc+8tf5qXzTwkqHEpO15GJ3I/SPuBev15OEiggoM5x0a6sGdQE/YMakL36sVxreCkd6MVYPGitekXWrm06EadujUoU6YkAEOG9eXw4RNZPs7S0pzSpUtw5fKneW81+MyGO0HR+EVpr7Lee/clzUvZZappVMKGlzGJ3A/Rjtu8/jISiQSKmude73SDckW4/TwUvzDtttl7xZvmlXTHGsckJOMfHku1Epn34bP3/Vl+8AqbhrbJtUYrQNrta8jKVUTqqD2mG7TqSOq1zEPaJJY2mIybg8RMezW8onEr1M990cTFoPJ5jKJ+c22hTIa8VkPSntzXK8ve1f9jhtskZrhNYk4XL8rV+BzHV+8/l75tuH78H53HWNpbMXbDpPT3X+MuTdPff1eO/E399o1QGGiPV7Vd6/Hs9hOd59BHfu5XW1f+xFDXEQx1HcHIjuOoVLMSxUppt1/n/h25cPxvnceM6DCGQS7DGOo6gqn9p5OclMJQ1xGEB4fz6O5jWnTUdgjI5DIat27A/X/124bCp/FJf4Dg9ZCBoUPf3BImJCSEzp21FzKo1WoqVqzI6tWr05evWLGCefPm8c0335Camkr58uWZM2cOAN26dSMyMpLevXunDyto37493bvnza2VNLFRJG5dgfHoOSCXow4JJPH75chKfo7R4EnEzc36Sv68FhkexYIJS1m+ZSEKpZwXvgHM9dCOn6tYrTyzVk6jb+shPH3ow4pZa1mzfRlSmZSQgFBmjJ4HwJr53zBj+RR2n94GwOkj5/jflgL8jVMPqWExeI/fSOUfJiNRyEnyC+bB2A2YVStN+dWjuObi+c4agJc/HkduaUqt48uRyKTE3nnGo7nf5SiTtZkx8/u0wnPrn6Sq1BSztWBRv9bc8w9m/v9OsWeadiiCf2g0duYmKGSZb3P1ZRNnohOS6LNiFyqNhorF7JjcJecXvEWHR7PBcx2em7yQK+UE+QXx9cQ1AJRxLsvo5WOZ7DaBB1fvs3fDryzcvQRVmoqIkAiWDV8CwL6Nexm/ZiJrj68HiYRdq3fyRM8PTmsTA+a3q4bngeva9WRpwiK3atwLimL+0TvsGdQEW1ND1nSpxZITd0lMTUMpk7K6cy0M5Dm/Ndj7hIWGM3rkVLb/8g1KhQIfH39GuE8GoEYNZ9ZvXErjBtq7T5QuXZLgoBDS0nLnlkQfYm2sZJ5LJTyP3CFNraaYuRELW1fmXnAMC04/YHevetiaGLDarSpLzz4kMVWFUiZlVbuqubrerE2NmN+9MZ47Tmu3n40Zi75syr0XYczfd5E947WfAf7hMdiZG6GQZe5TWf3nVUDD/H1vGpXVS9gzo0uDHOXSxESRsPkrTCbM1x7TgwNI2LgUWenPMXb3JHa6O6qHd0j6fQems9eCSoU6Moz4VbMASPz5G4wGe2C2chto1KTd/Zfkg7tylAkgJjyabz3XM36TJ3KlgmC/IDZNXAdAKecyuC8fwwy3STy8+oADG/Yya/ciVGkqokIiWD18GQB/bT+KqYUpiw+vRCqV4nv3GT8s+jHH2aDg7FdR4VEsm/QVC76bi0Ih56VfIIvHa///5at+ztSVkxnqOuK9z7Fh3iYmLBrHz2d/RK1Sc/3Cv+zcuDvXMuaJ//hPvko077qs8z8oenCr/I6gw+Vo8oeL8sGlO9vyO4KOi5Wn5XcEHfW2F8zhFn2HH8/vCDp+mV02vyPocBj/e35HyFLQsrb5HUGHpFju3q0hNyTvOfbhok9s9N+W+R0hS99Pcfpw0SfWdtnDDxd9YudenszvCCTumJknz2vUb3GePG9uEz/5KgiCIAiCUFj8x8e4ioarIAiCIAhCYfEfP1H+SS/OEgRBEARBEAR9iR5XQRAEQRCEwuI/PlRA9LgKgiAIgiAIhYLocRUEQRAEQSgsRI+rIAiCIAiCIBR8osdVEARBEAShsPiP/wCBaLgKgiAIgiAUEhq1uB2WIAiCIAiCIBR4osdVEARBEAShsBAXZwmCIAiCIAhCwSfRaP7jvx2Wwfai/fI7gg5FAd08TqqU/I6go9G95fkdQcdVZ8/8jiDkwG25UX5HyJJ9asHrcUmWSvI7go5wWcHLVDElNb8jZClIpsjvCDpqmUbkdwQdFR79md8RSNg0Lk+e13jU+jx53twmelwFQRAEQRCEQkE0XAVBEARBEAoLtSZv/nLg0KFDuLm54erqyi+//KKz/NmzZ/Tv359OnToxdOhQoqOj9X4t0XAVBEEQBEEoLNTqvPnTU3BwMGvWrGHnzp38/vvv7N69mydPnqQv12g0jBo1Cnd3dw4ePEjFihX57rvv9H49cVcBQRAEQRCE/7iYmBhiYmJ05pubm2Nubv7Ox/3999/Ur18fS0tLANq0acPRo0cZO3YsAPfu3cPY2JimTZsCMHLkyCxfJ7tEw1UQBEEQBKGwyKPbYW3bto0NGzbozB87dizjxr37grCQkBDs7OzSp+3t7bl9+3b6tL+/P7a2tsyYMYMHDx5QunRpZs+erXdO0XAVBEEQBEH4jxs4cCBffPGFzvz39bYCqNVqJJI3d/DQaDSZptPS0vjnn3/YsWMHzs7OrF27lmXLlrFs2TK9coqGqyAIgiAIQmGRR7fJ/NCQgHdxdHTk2rVr6dOhoaHY29unT9vZ2VGiRAmcnZ0B6NChAx4eHnrnFBdnCYIgCIIgCHpp2LAhly5dIiIigsTERI4fP54+nhWgRo0aRERE4O3tDcCpU6eoXLmy3q8nelwFQRAEQRAKiwL2k68ODg5MnDiRAQMGkJqaSvfu3alatSru7u54eHjg7OzMN998w6xZs0hMTMTR0ZGvvvpK79cTDVdBEARBEITCIof3XM0LHTt2pGPHjpnmbdmyJf3f1apVY+/evbnyWmKogCAIgiAIglAofJIe17i4OFatWsXVq1eRyWSYm5vj5eWFhYUFAwYM4NSpU5nqy5cvz8OHD9OnT506xahRo9i3bx9VqlRJn+/t7c2SJUuIiopCpVJRvXp1Zs6cibGxcZ79X4q6VKem15dIDRREPvDn0uTvSY1L/Ki68gNbUbZ3c2SGCiJu+/L3lC2oU9JylKuIS3WqTe+J1EBO1P3nXJm8hbQscmWnrvH3E0gMjuT6zG1657FuVZPSM/sgVSqIu+/Hw4mbUL31Ou+rKTLIFae+LkgNlcTdfob3xE1ocriOskuj0TBz0SrKlSnJ4D7d8/z1rFxqUnxGP6RKOfEP/Hg6aaPOunpXjdzSlNLLhmNSuSSqxGRCdp0iaOsRkekTZcpK8ZbVqef1JTKlgvAH/pzxzPoY8VqL1SOIePicW9/m7m+gO7aqTuUZvZAq5UQ/eM6/E7/L8pjwoTqjItY0P7yAky7TSYmIzVGmgnaceq1Ey+o0yLDNTn5gm7VaPYLwh8+58WqbyQwVNFs0CIfqpQEJwTefcnbWT6iSUvXKY9OqBmVm9n51bPTnwcTNOvv6+2qa3N9CcmBEeq3fxkME77ugV5aMirhUp/r0L5EZKIi878/lyd+/c/u9q67b3U0kZMj2YONhfH/7W+9MJs3rYDdpEBKlguSHPgTNWIs6Putt57R8EskPfYnYul87QyrFYc4ojOtqLxqKO3uV0OU/6J3lk9EUrKECn1qe97iq1Wrc3d2xsLDg999/58CBA4wZMwZ3d3eioqKy9Rz79++nbdu27N69O9P8iRMnMnHiRA4ePMihQ4eQy+WsW7cuD/4XWgbWZjRc7c6Z4es40NSTOL8Qas7o+VF1xdvVpvzg1vzVaykHW3ghM1RQyb1djnPVWzOc8+5rOdzEkzj/EKq/I9eH6iqO7oBdvfI5yqOwMafCutHcG7KSfxqNJ8kvmNKz+ma7xtatLkWHtuNWj4VcbToJqaGSz0Z0yFGm7Hrq689Qj+n8dSbnB/nskNuYU3btWB4OW8GNJh4k+wVTYma/bNeUnD8IVXwSN5pN4E776Vi1rIlVq1oi0yfIlBVDazNarHLn+PB17GruSYx/CPWn674XASzLFqHjrumUbl8n13MobcyouXYEl4eu5a/GU4j3C6bKrF4fXVe8RxOa/j4HIyfrHGcqaMep1wytzXBZ5c6R4ev4pbkn0f4hNHzHNrMqW4Quu6ZT5q1tVntcZ6QyKf9rPYNdrtORGyqpNaaTXnkUNmZUWjeKO0NWc7nRRBL9gik7q0+2a4zLOJEWFcc/LtPS/3Kj0WpgbUaDNe6cd1/HoVfbpcY7tt+76szKOJESGceR1jPT/3LSaJVZmeO0dCIvxy3Gp+1wUp8HYTdlsE6dssxnfLZtKWZtGmeab9G5JcpSxfDpMBqfTmMwruuMWdvGOo8XCpY8b7heuXKFwMBAPDw8kMu1Hbz169dn6dKlqLMxwDgiIoLLly/j6enJkSNHiIuLS18WFhZGUlISAFKplLFjx9KuXc4age9TpJkz4bd8iPUJBuDh9pOU+qLhR9WV7t6Y+98eISUqHjQaLnv9yNMcHlQcmzkTfvMZca9e78m2E5To2uij6+wbVMSpeVWebD+ZozxWzasSe+MpiT5BAARsO45DtybZrnH8shkvNh8iLSoONBoeTd1C0K/ncpQpu3bt+4NuHdvg2qLJh4tzgWWzasTdfEKSTyAAQduOYdu1SbZrTKuWIXTvWVCr0aSmEXniOjYdGohMnyBTVj5r6kzILR+ifbXvsfs/n6RsF91jBECVga14sOsMzw7/k+s5HJpVJermM+Jfvb98tp3gsyyOCe+rM3SwxKltLS720u9ei28raMep14q/tc3u/nySz9+xzZwHtuL+rjM8eWubBVzx5trXB0CjQaPWEHrXF/OitnrlsW5ejZgMx8aX2/7CsVvjbNdY1CmPRqWh1oF51D39FaUmdQOphJxyauZM+M03n2uPt52kZFfd9fS+Orva5dCo1bT+bTZuJ5ZQZWIXJDnIZtK4Jkl3HpHqFwBA1P8OY96phU6dVd8ORP96jNij5zMvkEmRGhsiUSq0fwo5muQUvfN8MmpN3vwVEnk+VOD+/ftUqFABqTRzG7lZs2a8ePGCkJAQOnfu/M7HHzx4kEaNGlGsWDGqVKnCwYMH6dNH+81y+vTpjBo1Cnt7e+rVq4eLiwvNmzfPs/+LSREb4gPC06cTAiNQmhujMDXKdFrpfXXmpZ0wtH2Gy46pGDtYEvzPQ/5dtCtHuYyL2pAQ8ObUy+vXk5saZTqN8746hYkBNRf050zfryjbv2WO8hgWsSU5ICx9OjkgHLm5MTJTo/RTWe+rMSpdBIXtE6r+byZKRyuiLz/g6cIdOcqUXTMnjwbg73/+/SSvZ/D2eggMR25ukmldva8m9t/H2HVvRuxVbyRKBTbt66NOU4lMnyBTVkyK2BCX4b0fFxiBQRbHCIALs7cD2sZubjMqYk3Cyzc5EgMiUGRxTHhfXVJwFFeGrs21TAXtOPWa6Udss3Pv2GbPz91N/7dZURuqD2vL6Wn6nXI2LGJDUoY8WR8/310jkUuJOH+HJ4t2IpXLqPaLF2lxiTz/LmdDUbTbRfdzLevtl3WdRCYl6Pw9bizejVQho8XPU0iNTeTh98f0yiR3siM18M17PjUoDJmZCVITo0zDBYIXbALApHGNTI+P3n8Cs7aNKXt+O8hkJFy8Qdzp3P8iKeSuPO9xlUqlGBgYvHO5vb09Bw4cyPSX0W+//UaHDtrTxG5ubuza9aaR17VrVy5cuICnpydyuRwvLy8WL16cN/8R0H5rzeLGvxqVOtt1UoWMIk2rcG7keg67zcbA0pTqXj1yFEsiyV6ud9VJJNBw41huzNtBUkhUjrIAIJVkeX9kTcYe9vfUSBQyrJpV5Z77aq67eiG3MqX09N45z1UQSSWQ1XpQqbNV4zv/J9BoqPbXSir8OI2oc7dyPhZYZNKbtvcoG8eIPCaRZn1o17x1liu7dbmSqaAdp14/r1SCJpe2mZ1zSbrum83tn/7C9+RN/QK96/ND/fa+nnVNwI5TPJrxI+qEZNJiEvDf/Ad27XI+HEUikaDJ5vZ7V93TnWe4Nms7qsRkUmMSePDtET5rV1v/TNlZV+9hO7YPqsgYHjfsy9OmA5BamGI9RPeXowoajVqdJ3+FRZ73uFapUoWdO3fq/ATY6tWrKVGixHsfe+/ePR49esTixYtZunQpKpWKkJAQbt68iaWlJYcPH2bMmDG0bt2a1q1bM2DAAL744gtmzpyZa/mrTenGZ641AVCYGhHl/Tx9mbGjFcmRcaQlJmd6TPzLcOxqlMmyLiEoEv8/r6Z/k3+2/yJVJ3T56FzOnt0o6lory1xGjtYkR8aheitXwstwbGqW1akz/7woJiXsqTFPOx7Q0M4CiUyKzEDBP1O+/+hsyS/CMK9ZLn1a6WRNamQc6oTkbNWkBEUSdvhKeu9C8N7zlJyc9xdJ5Yfkl2GY1XizHgycbEiNjEWdYdu9r0ZpbYvfop+1wyqAoh5dSfINFJk+QabXak/uRsnW2mOE0tSI8Idv3osmjlYkRekeI/JCxandcXp9rDIzJvqBf/oyQydrUiLjUCW8fUwIw6pmmQ/W6augHqfqTu5GqXdsM1M9t1m5TvVptngQ52Zv49Hvlz7qsRklvwjDIsP/3+Adx8931Th2b0LcfT/i7mu3v0QiQaPn2YWqnt0o+oHPv7e3X/zLcGxq6n7+qRKTKdWtEZH3/Yl68Op5JOTozEdqQCiGVd+MdZY72KKKikWTzW1n5tqQ4IWbITUNdWoaMb+dxKxtYyK2/qZ3pk+iEJ3Wzwt53uNau3ZtbGxs2LBhAyqVdgc9f/48+/fvp2zZsu997P79+/nyyy85c+YMp06d4uzZs3Tu3Jldu3ZhbW3N9u3buXTpzQHiwYMHVKxYMVfz31q5jz9cZ/KH60yOdJyHbc2ymJVyAODz/i48P657Sjnw7J131vkf/ocSHesjM1QAULxNLcJvPfvoXHdW7ONo6xkcbT2D4x3mYluzLKavXq/cABdeHr/+zlxv14Vff8LB2h7pz/fk55P4H7ysV6MVIOLsLcxrlcOolCMARQa6Enb0arZrQv+4hF2nhkgNlQDYtqtD7I2nemUp6KLP3MS01ucYlnICwGGAK5HHrma7xnGAK595ai+mUdha4NCnFWH73xrHJTLlSabXrq3ax962M9nbdib7O8/DoUZZLEpq32OV+rngm8UxIi88+Govp1rN4FSrGZxpPwfrWuUwefX+Kj3AhcBjuseEkLN3slWnr4J6nPpn1T52t53J7rYz2dt5Ho4ZtlmVfi74fOQ2K9mqBk3m9+dg3+U5arQChJ+9jUWGY2PRga0JPXot2zUmFT6j9NQvQSpBaqig2JA2BB/Q7wKo2yv2pV9EdaxD5s+/cgNceJGNz7+MdRYVilHVsxsSqQSZoYLyg13xO3BZr2wA8Rf+xah6BRQligBg1duN2JPZf76k+08xa/dqrLxchqlLPRJveuudR/g0JJqs+vRzWUREBEuXLuXu3bvI5XKsrKzw8vLC3Nz8nbfDunPnDk2aNGH79u2UL//mG5W3tzc9e/bk3Llz+Pr6smLFCgIDA1EoFJQqVYo5c+bg5OSkV87tRft9sKZoy2rUmP4lUoWcOL8QLozfTEpUPDZVS9Fg5TD+cJ353jqJVILz+C6U7FQfiUxKxB1fLk/b+s5bryiyuXmcWlbT3j5GKSfON4TL4zeREhWPddVS1F3lztHWM95bl1GVyV0xsDZ7721mnFTvH8Bu7VKD0jP7IFHISfIL5sHYDRiVsKf86lFcc/F8Z01aVBxIpZSY2BX7zo2QyKTE3nnGoynf6dwO5m2N7i3PzqrKlpmLVlG2dIkc3w7rqrPnB2ssW9akxIy+SJRyknyDeOKxHoMSDpRdOYpbrae8syYtKg6piSHlNozHqKQjSCS8WL+fsH05v5BNZNK6LTf66JzFW1SjrteXyBRyYvxCODVxM8lR8dhVLUWzr4axt23mM0ItVg8n4uGLj7odln3qh0/rObhUp/KMnkgVcuL9grk2bhOpUfFYVitFzVXunGo14711GXUN2skflUa893ZYydm4yOZTH6fCZdm78KdEi2o08NIer2P8Qvjr1Tazr1qKFl8NY/db28zl1TZ7fTusvmdWYGhpQlxQZHpN4LVHnJulm61iyodvkWXjUp0yM/sgVchJ9Avi3thvMCrhQMXVI/jHZdo7a9Ki4pEaKSm/dAgWNcshUcgIOXSZp0s+fB1FkEzxwZoiLatRffqX6dvl71efa9ZVS1Fv1TCOtJ753jqZkZI6iwdiW7MsErkM/z/+4dayPe98vVqmEe9c9ppJs9rYTR6ERCEn1T+IgKkrUX7mhONiD3w7j8tU67RsIsmP/NJvhyW1NMNxzigMKpUBlZr4SzcJWf4DpL57GFGFR7l72zp9xC/6cFtFHyazPs21JDn1SRquhUV2Gq6fWnYbrp/ahxqu+SE3G665JTsNV6Hg0qfh+ilkp+H6qWWn4fqpZbfh+illp+GaH7LTcP3UstNw/dREwzX/iZ98FQRBEARBKCzEGFdBEARBEARBKPhEj6sgCIIgCEJhUYhuXZUXRMNVEARBEAShsBBDBQRBEARBEASh4BM9roIgCIIgCIWF5r89VED0uAqCIAiCIAiFguhxFQRBEARBKCzEGFdBEARBEARBKPhEj6sgCIIgCEIhoRG3wxIEQRAEQRAKhf/4UAHRcM2gi1tIfkfQ0epwcn5HyNLZ7T3yO4KOq86e+R1BR507K/I7QpbG1p6W3xF0rF1XJ78j6GjaY11+R8hSzJov8juCDomFRX5H0OG/6N/8jqBjllSZ3xGytG2iZX5H0NF9dUR+R9DxZ34HEETDVRAEQRAEodD4j/e4iouzBEEQBEEQhEJB9LgKgiAIgiAUFuIHCARBEARBEASh4BM9roIgCIIgCIXFf3yMq2i4CoIgCIIgFBKa/3jDVQwVEARBEARBEAoF0eMqCIIgCIJQWIgeV0EQBEEQBEEo+ESPqyAIgiAIQmGhFrfDEgRBEARBEIQCL197XF+8eIGLiwtbt26lUaNG6fNbtmzJ9u3bsbKyYuXKlVy4cAEjIyNMTU0ZN24cDRo0QKPRMGjQIGrXrs24ceMAiIqK4ssvv2T16tVUqVIlTzLLneti0HUIyBWoX/iQuG01JCVkXVu9IUZDpxI7rot2hkKJYZ+xyEpVAAmonnmTtHMDpKbkOFcjl/qMnj4cpYGCJ/efsWjycuLjdHONnzMal47NiYmKAcDv6XNmjpyPgaESzyUTqVy9AhKJhLs3HrBixhqSk/TLdu6eD+sPXSIlTUW5IrbM6+2CqdGb3+g+9M8Dfj59M306LjGFkKg4ji0YjI25MbvP3+a3S/dJTk2j4mf2zOvtglIh0ytLRlYuNSk+ox9SpZz4B348nbQRVVxitmrklqaUXjYck8olUSUmE7LrFEFbj+Q4U3ZoNBpmLlpFuTIlGdyn+yd5zYyqtKjJF1P7IFcqeOntx/Zpm0h6a70BNB/Qlmb9XNFoNIT6B7PDazOx4TG5kuHcA3/WH7lGSpqack5WzOvRBFPDDPvU9cf8fO5u+nRcUgoh0fEcm9kbpVzG/L3n8QmJQqOBjrXKMrhFtVzJBeDWzoVFi7wwMDDgzp0HuA+fTGxsXKaafv26M2H88PRpC3MzihVzokSp2qz/egllypRMX1aq5GecO3+ZL7oO1ivPeZ9Q1v/9hBSVmnK2psx1qYypQebD/eOwWJaffUhcchpSKcxqWYlK9ubpy4Nikxiw5x9296mPVYb3rr7OPQ5k/am72mOCgwXzOtbG1ECROVNwNMuO3SAuKQ2ZVMKs9jWp5GTFlF8v4R/5Zn0GRMVTq7gd63o1evtlPppJszrYTRqMRKkg+aEPQTPXoo7P+pjuuGwyyY98idy6DwCphSkOc8diWLEM6oQkon/7i6gdB3OcCaBmy1r0mToAhVKBn7cvm6auJzGL91zbgW649muHRqMh2C+IzV7fEBMejVQqZeiC4VSqr/0s/Pf0NX5e/JPeeaQlq6Bs9AXI5KjDXpJyYjukJGWqUTTpjqxcLUiOB0AdGUzKn1vAwBilS1+ktsUgLYW0e3+Tduu03lkyqtOyDoOmDUKhVODj7cNaz7VZrqfXGrg2YPLayXSvpD2OGpsZM2HFBIqVKYZUKuXE3hPs3bQ3V7LlGTHGNX8pFApmz55NXFzmg7xGo2HkyJEoFAoOHz7MwYMHmTVrFp6enly5cgWJRMLy5cvZuXMnt2/fRqPR4OXlRZ8+ffKs0SoxtcBw0BQSNy0gfvZQ1GGBGHYdmmWt1L4Ihj3cAUn6PIP2fUAmI37+COLnjUSiNMCgXa8c57K0tmD2Gi+83GfTo0l/XvoHMGbGiCxrq9auwsxR8+nXehj9Wg9j5sj5AAz26I9cJqOPyxD6uAzBwNCAgeP66ZUnIjaRub+cZOUQNw7M6k8xG3PWHfo7U03HuhXZM603e6b15pcpX2JrboxXj2bYmBtz8tYTdp27zbdjurBvel+SU9PYceaGXlkyktuYU3btWB4OW8GNJh4k+wVTYma/bNeUnD8IVXwSN5pN4E776Vi1rIlVq1o5zvUhT339Geoxnb/OXMjz18qKqbU5A1eM5ttRK5nrMp6w58F8Ma2vTl3xKqVpPbwjy7vNYkGbyYT4BNJpcs73b4CIuETm7jnPyv4uHJjanWI2Zqw7cjVTTcda5dgz8Qv2TPyCXzw6Y2tmhFeXhtiYGbHx+HXsLUzYN7kbv3h0Ys9lb275BedKNltba77fspovew6ncpWm+Pj4sWTxDJ26HTv2UruOK7XruFK/gRvBwaF4jJ9FSEgYPXsNT182cqQnUVExjPOYqVeeiIQU5p64x4r2Vfl9QCOKWRjz9d+PM9UkpqoY/fu/DKxVgl196uNepzQzj91JX37oQQBD910lND5Zrww6meKTmXvwGiu71+fAmLYUszRh3ck7mWoSU9MYtfM8gxqUZ/fwVrg3qciM3/4BYGWPBuwZ3po9w1szp0MtzAyVTG9XI8e5ZFYWOC6ZxEuPRfi0cyfleRC2k3W/LChLf0axn5Zi5to403z76SNQJyTh034Efr0mYtKkNibN6+Y4l7m1OaNXeLBy5DLGtxxNsH8Qfb0G6NSVrlKGju5dmNV1GpNdPQj0DaDX5D4ANO3anCJlijLZ1YMpbcdTqV4V6rs11C+QkSkGrgNJPvwtSdvnookJQ9HoC50yaZEypBzZQtIvi0j6ZZG20Qoom30JKUkk/TyPpF3LkJWsjLSUs35ZMjC3NmfiyoksHrGY4S2GE+QfxGCvd3/ZK1KyCENnDUUiefO53H9Kf8ICwxjdejTjO4ynfb/2VKhZIcfZ8pRakzd/hUS+N1zt7e1p2LAhy5cvzzT/6tWrBAQEMH36dJRK7bf9SpUqMWrUKDZu3AiAo6Mjs2fPxtPTk61bt6LRaBg4cGCeZZVVroXK9yHqkAAAUs78gaJeS91CpQFGQ71I2vNtptlpj+6QcngnaDSgUaPyf4LExiHHueo1q8P9m94893kJwL5tB2jbtZVOnUKp4PMqZRkwujc7T/7Isi0LcChqD8CNK7fYum47Go0GtVrNo7uPcSqqX7ZL3v5ULm5PCXtLAHo0dubItYdoNFm/MX468S/WpkZ0b6T9wnHoH2/6t6iBhYkhUqmEmV+2oH2dnB9ILJtVI+7mE5J8AgEI2nYM265Nsl1jWrUMoXvPglqNJjWNyBPXsenQIMe5PmTXvj/o1rENri2afLg4D1RqUhW/208J8Q0C4OyO49TrrJvF/+4zZjf3ICk2AbmBAktHa+IjY3Mlw6VHL6n8mS0l7CwA6FG/IkduPH33PnXmlnafqq/db6Z2qs+k9toGRWhMIqlpqky9tTnRunUzrl27xZMnPgBs/nY7fXrrfqhnNNVzDCGhYWz5fkem+QqFgq1b1zJpylxevAjQK89l/3AqO1hQwtIEgB7OxTjyMCjTurrsH04xC2OalLQDoHlpO5a3qwpASFwSZ56FsrFzTb1ePyuXngVTuYgVJWzMtJlql+HIXf9MmS49DaaYlQlNyjlpM33uxFfd6mV6nlSVmjkHruLpWg1HC+Mc5zJuVJOkO49I9dOu66hdf2DesYVOnWXfDkTvPUbssfOZ5htWKkvMwZPaMYepacSf/QezNo11Hv+xqjatwdPbTwjy1R6Hju84SpPOzXTqnt19ikfzUSTEJqAwUGDtYEPsq/ecVCbFwMgQuVKOQqlArpCTmpyqVx5Z8Uqog/3QRIUAkHb7LPIK9d4qkiO1+wx57TYY9puDsv0IJGZW2iz2xUnzvqL97FOrUPncRV4u5/tXzaY1eXTrEQG+2u13+OfDtOiiu/0ADAwN8FznyZaFWzLN/3but3y/6HsArO2tURgoiI+Nz3E2Ie/ke8MVwMvLiwsXLnDx4sX0eREREVSpUiXTNyOAOnXqcOfOm2/qbm5uVKpUic2bN7N06VKd+twktbJDExmaPq2JDEVibAKGmQ+ghv3Gk3LuMKoXPpnmq+5fRx2sbVxKrO1RtupK2vVzOc7lUNSekICQ9OmQwFBMzU0xMc2cy87BhmsXb7Bp+Q/0cRnM3X/vs/LHJQBcOXsN/2cvAHAs6kCvYd05+ccZvfIER8XiaGX2Jp+lKXFJKcQn6R40I+MS2X7qBlMyNCD9Q6KIiEtg9MYD9Fi2k81HrmBuZKBXlowMitiSHBCWPp0cGI7c3ASZqVG2amL/fYxd92ZI5DKkxobYtK+PwsEqx7k+ZObk0bR3zfpg/ClYFbElIvDNOokMDMfI3BjDDOvtNXWaimqudVh+aTPl6lbi719z53RgcHQ8jham6dMOFibEJaUSn8UHcWR8EtvP3WVKxzcfrBKJBLlMyoz/naH76v3ULu1EyVeN4Jz6rFgRnmdoZL54EYiFhTlmZqZZ1tvYWDFxwnAmT5mns2zI4N4EBgRz4MBRvfMExSXhYPrm/WJvakBcShrxKar0eX5RCdgYK5l34h59dl1m5O//onrV42Jvasiq9tUoYWWid4a3Bcck4Gj+5njkYG5EXHIa8SlpbzJFxGFrYsi8Q9fo8/1JRv5yPj3Ta7/d8MHOzIiWFYrmSi6Fky1pQW+O6WlBYcjMTJCaZD52hizcRGwWx8PE2w8x7+QCchkSY0NMXRsht7POcS5bJ1vCMhyHwgPDMDY3wSiL95wqTUUd13psvryVSvUqc/rXkwCc+fUU8dFxfPvPj3x39SeC/AK5fvKqzuOzQ2JmhTo2In1aExuJxMAIlIZvakwsUD/3JvXvAyTtWIA6yAeDjqMBUAf5aBu6UikoDJCVq4HEJOfvP7sidoRlODaFBYZh8o71NG7ZOP785U98HvjoLFOr1ExZO4VNf23i9qXbvHz6MsfZ8pJGo8mTv8KiQDRcTU1NWbhwYaYhAxKJBJVKpVObmpqaqXEaHx/PgwcPUCqV3Lp1K2+DSiXab4xvy3CFn6J5R1CrSL147N1PU7wcJlNXk3L6AGm3r+RCLGmWsVSqzFceBjwPYmL/aTx7qH3j7ti0i6IlilDkM8f0mgrOn/Pd7+v59cffuHDikl551BoNWX19kEl15+77+y7NnUtRzPbNQSxVreay93O+GtyOnVN6EpOQxPo/9MuSiVQCWawnTcb19J4a3/k/gUZDtb9WUuHHaUSdu4Umwwfv/1dSSdbrRK3K+srWW8evMrnmUP5YuweP7bNy5cukWqMhq6fJcp+64k3zSiUoZmOus2xJ7+acmduX6MRkvj1xM8e5AKRSaZYH/ayOXwDuw/px8NBxfHz8dZaNH+/OkqXrcpRHoyHLdZ5xXaWp1Vz0C6NblWLs7FWfXlU/Y9zBG6Sk5c3Vyu/cfhlmpqnUXHgSRLeapdg5zIVedcoy9n8XSEl7sx53XHnMsMa5eBpXKs36/a7Oetu9LXT5FtBoKLl/A0U3zCHh7xtoUnN+TJC847PmXe+5q8evMLRGf/as+R+zfp6HRCKhx4RexERE415rICPrD8HU0owO7p31DZT1/AyffZqYcJIPbEATrv0Sl3b9OBILOyTmNqSc144ZNewzC4OOo1D5P4B3vD8+KpZEkuV77+311L5/e1RpKv7a89c7n2vlhJX0qt4LM0szek/oneNsQt4pMLfDaty4caYhA9WqVePnn38mNTUVheLNAP6bN29mGsO6YMECGjduTMuWLfH09OTgwYPY2NjkSUZNeCiSUm8OmhJLWzTxMZkGqCsbtgalISZzNoFMDkolJnM2kbBuJproCOR1mmPUdyyJO78h7R/9e6OGew6hqat2vJKJqQlPvJ+lL7NztCU6MoakxMwD58tWLE25SmU5su/4m/+DRELaqw+G1p1bMnXJRFbOWsex307onc3Jyoy7vm/GD4ZEx2FubIDRWxdiABz/9zFTu2U+BWZvboJLtTLpF3O51SnPd0f16ynIKPllGGY1yqVPGzjZkBoZizoxOVs1Smtb/Bb9TFqU9stVUY+uJL06lff/TceJPanWujYAhqZGvHz4ppFl6WhNfFQcKYmZxz/alXDE3M6Sp9e8Abi45zR9Fw/H2MKE+KjMY9g/lpOlKXf93/SMhcTEY26kxEiZxT51y4epnepnmvf3wxeUdbTC3sIEYwMFbauX5uQdX73zzJs7hQ4dXAEwNzPl7j3v9GVFizoSERFJQkLWF4j06NGJiRNn68yvXr0ycpmMs+dy9iXN0cyQO0HR6dMhccmYG8gxynBxo52JAaWsTHB21H5hbFHGngUn7/MiJoHS1ln3FOeEk7kxd1++6bELiUnE3FCBkfLNR5CdmRGlbM1wLqo9frcoX4QFf1zjRWQ8pe3M8Q6MRKXWULuEXa7lSgsIwbBq+fRpuYMtqqhYNInZG9srNTUmdOUPqKO1+7f1iJ6k+Ok3xKPnpD7UblUHACMzY/y9/dKXWTvaEBcVS/JbuRxLOGJpZ4X3tQcAnN5zkuFLRmFiYUrdtvXZOncLaalppKWmcXbvKeq7NeSPLQc+OpsmNgKpY8n0aYmpJZqkeEh7c/GuxLYoUttiqLwzdMZIJKBWIVEaknJ+HyRrL3qT12mHOurNWcKP0W9SP+q11p5NMTYzxtfbN32ZraMtsVmsp1Y9WmFgZMD6I+tRKBUoDZWsP7KeuYPmUrJ8SXwf+hIRHEFSQhJnD5ylkVvOL/rLU4VoPGpeKBA9rq+9HjIQEhKCo6MjZcuWZcmSJaSmak8H3r17l02bNjF6tPb0w8GDB7l//z6enp40bNgQNzc3ZszQvSgit6Tdv46sdEWk9kUAUDbrQOrNzB8y8Us8iJ83nPgFo0j4ehakpBC/YJS20Vq1Poa9RhO/ZnqOGq0A363Ymn6B1ZAOo6hSsxKfldKePus6oBPnjl/UeYxarWHyQo/0HtZuA7vw5MFTQgJDady6IZMXeuDRe0qOGq0ADSoU57ZfEH4hUQDsvXCX5s6ldepiEpLwD4umWmnHTPNbVS/L8RuPSUpJQ6PRcPr2MyoXt89RJoDoMzcxrfU5hqW0Y+gcBrgSeexqtmscB7jymaf2YiOFrQUOfVoRtj/zmLf/Lw6t2c0iN08WuXmy/IsZlK5eDvuS2u3UtK8rt/7S/SJhYW+J+/oJmLwaJlKvS2NePvLPcaMVoMHnRbntH4JfqLZBtveyN80rl9Cpi0lIxj8shmolM4/PPn7bh29P3ECj0ZCSpuL4LR/qlCmid55581emX0zVqElH6tWtSdmypQAYMbw/Bw8dz/JxlpYWlC1Tkr8vXdNZ1rRJA06f0X3ffqwGxW24ExSNX5R2nN7eOy9oXjrz+6dRCVtexiRyP0R7x4frLyORSKCoue4p1tzQoIwDt19G4BeuHX+59/ozmpfPvP4bl3XkZVQ89wMjtZn8QgEJRV8NWbjmH0bdkna5Ohws/uK/GFWrgKKENotlLzfiTmX/i4NlLzdsPfoDILOxxKJ7myyHFGTH7tU78XSbiKfbRGZ0mUq5GuVxLKk9Drn2bcvV4//ovr69NRM2TMHs1XuucZdm+D/0Jy4qFp+7z2jYXtsAk8ll1G5dl0c3HuqVTeV3H5ljaSSW2v1IXrUpqqdvneHUaFA274nE3OZVTTPUYS/QxEUhd26GokEnbZ2xGfIqjVA91P3/ZMeO1TsY124c49qNY1LnSVSoUYEiJbXbz62fG5ePX9Z5zMROExndejTj2o1jzsA5pCSlMK7dOCKCI2jSoQl9JmgvaJMr5TTp0IRbF/P47K2QIwWmxxXeDBkYOlR7pf6GDRtYs2YNHTp0QCaTYWFhwYoVK6hXrx7+/v4sWbKEn376CQMD7XiuKVOm0LVrV3bu3EmfPn1yPZ8mNoqkH1diNHK29nZYoQEk/rACaYlyGA2cRPyCUe99vEEPd5CA0cBJ6fNUT+5pb4mVA5HhUSycuIxl3y3Q3q7I9yXzxmvHrlasWp6Zqzzp13oYzx76sHLWOlZtW4pUJiMkMJRZoxcAMH7OKCQSCTNXeaY/762rd1kxY+1H57E2M2Z+n1Z4bv2TVJWaYrYWLOrXmnv+wcz/3yn2TNOehvEPjcbO3ASFLPNtrr5s4kx0QhJ9VuxCpdFQsZgdk7vk/MKk1PAYnkz4hvJbpiBRyknyDeKJx3pMqpWh7MpR3Go95Z01AC++3k+5DeOpfnoNSCT4r9hF3K2nOc5V0MWGx7DNcyPDN01GrpAT6hfMj5O0+2wJ59L0Xz6KRW6ePLnqzZ/f7GfyrnmoVWqigiPY5L4iVzJYmxoxv0dTPHecIlWlopi1OYt6NePe81Dm773Anonai6H8w2OwMzdCIcv8nXxSh7os3n+R7qv3A9CySkn6Nq6cK9lCQ8MZ5j6J3bu+Q6lU8OypH4OGjAegVs2qfPuttpELULZMSQIDg0lL0z2dXLZsKfz8XuQ4j7WxknmtK+H5523SVBqKWRix0LUK94KjWXDyPrv7NMDWxIDVHaqz9PQDElNVKGVSVrWvhoE857ecyzKTiSHzO9bGc+9l7THB2oRFnetyLyCC+X9cZ8/w1tiaGrLmy4Ys+fPf9EyrezRIz+QfEUcRy9wbdwugiogmaMYaiqybiUQhJ/V5IIHTVmJQpRyOC8fj98XY9z4+/Ls9OC2fQsmDm0AiIfzrn0m6+yjHuWLCo9no+TWTN01DrpQT7BfEholrASjtXJZRy8fg6TYR76v32b/hV+btXow6TUVESAQrhmuP/T8t+IGhC4az9uQ3qNVq7ly8zcHNv+kXKDGW5L+2YdB+OMjkaKJCST72I1L7Eihb9yfpl0VowgNIObMbg05jQCpFExtJyhHtRU+pV4+gbDsEw35zQCIh9dIh1MF+H3jRD4sOj2bNlDXM2DwDuUJOkH8QKyesBKBc1XJ4LPdgXLtx732O7xd9z9glY9n4l/ai70tHL3Fg68f3Sn9S//EeV4mmMI3IzWMx7q75HUFHq8O5czua3Hb2xx75HUHHjUG5cyFQbqpzJ3cabrltbO1p+R1Bx9p1dfI7gg6zHjkbb5pXYta8/64F+UFikTsXu+Um/0X/5ncEHbMSc+duFrlt20THDxd9Yt1XP8/vCDr+9P8zvyMQM7R1njyv+Q/vHgNckBSooQKCIAiCIAjCu2nUmjz5y4lDhw7h5uaGq6srv/zyyzvrzpw5Q8uWWdxG9CMUqKECgiAIgiAIwnsUsKECwcHBrFmzhv3796NUKunVqxf16tWjbNmymerCwsJ07tmvD9HjKgiCIAiC8B8XExPDixcvdP5iYt7/s91///039evXx9LSEmNjY9q0acPRo7r3op41axZjx75/3Hh2iB5XQRAEQRCEwiJvbrfMtm3b2LBB92LxsWPHMm7cuy9yCwkJwc7uzW3q7O3tuX37dqaa7du3U6lSJapVq5bjnKLhKgiCIAiC8B83cOBAvvhC98JPc3PdH3PJSK1WZ7pNnUajyTT96NEjjh8/zk8//URQUFCOc4qGqyAIgiAIQiGR0wup3sXC3PyDjdSsODo6cu3am3tTh4aGYm//5t7RR48eJTQ0lG7dupGamkpISAh9+vRh586deuUUY1wFQRAEQRAEvTRs2JBLly4RERFBYmIix48fp2nTpunLPTw8OHbsGAcOHOC7777D3t5e70YriIarIAiCIAhC4aHW5M2fnhwcHJg4cSIDBgygS5cudOjQgapVq+Lu7s6dO3dy8T+uJYYKCIIgCIIgFBZ5dHFWTnTs2JGOHTtmmrdlyxadumLFinHq1KkcvZbocRUEQRAEQRAKBdHjKgiCIAiCUEjk1cVZhYVouGaw/C/b/I6g43Dll/kdIUt9hx/P7wg6pqDI7wg6xtaelt8RsrThWs5/vSS3zaw9M78j6Hj4eZX8jpClJSsi8juCjghC8juCjiiNYX5H0DFDUwDP8wLOi67mdwQddzd2ye8IQgEkGq6CIAiCIAiFRcH87vPJiDGugiAIgiAIQqEgelwFQRAEQRAKCTHGVRAEQRAEQSgcxFABQRAEQRAEQSj4RI+rIAiCIAhCIVFAb0zxyYgeV0EQBEEQBKFQED2ugiAIgiAIhYXocRUEQRAEQRCEgk/0uAqCIAiCIBQS//UxrqLhKgiCIAiCUFiIhmvB9OLFC9q2bUuZMmUAUKvVxMfH06VLF7p27YqLiws9e/ZkwYIF6Y958OABXbp0YenSpXTt2jVPcpVvUR3Xqb2QKeUEeT/nt2nfkRyXqFNXrUsjmozoABoNKYkpHJ63jZd3fJAbKOi0cDDFqpUBiYQXN59wcPaPpCWn6p1JWbc+JkOHg0KByucZsauWo0lIyFRj2PkLjDp0Bo0GVWAAsWtWoImKSl8utbPD8utNRI4YiiYmWu8sGdVqWZu+UwegUMrx8/bjm6lfk5jFumo3sD1t+rUDjYYgvyA2eW0gOjwaUwtTRiweRclKpUhOTObUryf486fDOcpk5VKT4jP6IVXKiX/gx9NJG1G9leldNXJLU0ovG45J5ZKoEpMJ2XWKoK1HcpQnK1Va1OSLqX2QKxW89PZj+7RNJGWx3poPaEuzfq5oNBpC/YPZ4bWZ2PCYXM/zLhqNhpmLVlGuTEkG9+n+SV6zQosatJvaC7lSTqC3P7++4/1Xo0tjmmV4/x2ct40Xd55lqum/eSIxwZEcmPtTjjIZN62L9YTBSBQKUh75EDJnDZr4zO8/0w4tsRzcAzQaNEnJhC3dSPK9x+nLZY52FPtlLc+7jUIdlTvb8PMMx6rgDxyrGr9aV6mJKfwxbxsBd3zSl1s4WTPitwVsaDedhMjYHGWq0qIGnTPs2zumbc5y367bpQmtRnREo4HUxGT2zPsR/zvPMLYwofdid4pVLElyYhKXfz3DmW1Hc5QJoHrLWvSa2g+5UsFzbz++m7ohy2OV68B2tOrXFo0Ggv2C+N5rIzHh2uNlq/5tadGrFUpDA3zuPOW7qRtIS0nTK495y1oUmTYAiVJBorcv/p7rUWeRB6D46vEkefsR8t3vAEjNjCm+YhyGZYqCVErE3lOEbNqvV463NW/dGM9Z41AaKPC+95jp4xcQFxevU/d5xbLMXTYVMzNT1Go1syYv5u6tB+nLnYo48H/s3XV0FNfDxvHvetyNBHd3Ce4BAsHbUrw4lAIBEtzd3QstlOJSSktx2tIWWqAUd0kIcfdk7f1j6YZlQyXyC3l7P+fkHGbmzu7D3TuTu3fuTA6d2kmn5r2Ii43Pk2wAPz54ybozf5Cp0VLOw5HZXb2xsVAYtx+//pQvfrlvXE5OzyQyMZVTAd1wtrHMsxxC/nqn57i6ublx7Ngxjh07xvHjx9m7dy87duwgIyMDBwcHLl68iFarNZY/ceIETk5O+ZbHysmW7suGs2fkala3nkjciwjaTeplVs6ldBE6TO3Nzv5LWO87le/XfUXvzf4AtBjdFalMxrr2k1nXfhJyCyXNR3XJcSaJvT22EyeTOHcGcYP6oQ0LxXrwcJMy8nLlser5AfFjPyZu2EdoX4ZgPWCwcbuqTTscVqxD5uKa4xxvsnOyY/SyMSwbsYhPWo0iIjicfpMHmJUrXbUMXYZ2ZWr3QMb5fELY81A+nNAHgI9mDiEtNZ2xbUYzuWsAtVrUoU6rujnOJHe2o+zq0TwYsozrTceQERRBiWl9/3GZknMGok1J53rzcdzqOAXHVrVxbFMnx3myY+Nkx4Blo9gycjmzWo8l+kUE3Sb1MStXvGpp2g7zY0mP6cxtN4HIZ2F0nmDeFvPLk+fBDB4zhTPf//Q/e09rJ1veXzacL0auYlnrCcS8iKTDpA/NyrmWLkLHqb3Z3n8xq32ncH7dUfq9Ov7+1Hy4H6XqVcx1JqmjPW7zJhAxbh4v/IagDgnH2X+QSRlFyaI4TxhC2PBphPQcRdyWPbivnmncbtO5DV6fL0fu7pLrPH/681y1d+Rq1rSeSOyLCHzecq5q/+pcteGNcxVAze5NGXJgJnYeuT+v2jjZ0m/ZKLaOXMGc1uOIfhFJ10m9zcq5lS5Ct6l9Wd9/IYt8A/lu3RGGbZ4IQM+ZA8lISWduW3+WdZtG5RY1qdqqdq5y2TrZMXzZJ6wesZSJrUYTERxOr8n9zMqVqlqajkO7Mqv7FCb5jCX8eSjvTTC0v3rtvWk3sCMLe88msM0YlBZKOgzunKM8cic7ii8fw7Phi7nXchSZweF4Tu5vVk5Vtihl987DwbeRyfoiE/ugDovmftsxPOw0AZe+7bGqXSFHWV7n5OzA0rWz+fijibT17s6LoJcEzPzErJyFpQU7D21g27qddG7Vm/UrtrFy83zj9m7vd2Tv8U/xKOKW60yvi01JZ9bRSyz/sCnHxnWmqKMNa85cNynjV6s0Bz725cDHvnw5oj0utpZM7lSv0HVa9br8+Sks3umO65uioqLQ6/XExcVhbW1NpUqVuHLlinH7zz//TKNGjf7iFXKnXNPqvLz5lJjn4QD8uvssNbo0NiunyVRzdNI2kqLiAXh56yk2rg7IFDKe/3afC+uPotfr0ev0hN15jkPRnP/CUtaph/rhfbQvXwKQdvwYqtZtTPM8ekjswD7oU1NAoUTq4oo+yTCqI3V2RtW4CQlTJuY4Q3ZqNqvF45uPCHseBsDJ3d/RtEtzs3JPbz/h4xYjSE1KRaFS4OTuTNKrUZ0y1crww5EL6HQ6NGoN185fpaGveX3/Uw7Na5D8x2PSnxkyhe88hUv3pv+4jE31MkQd+gF0OvRqDXFnr+HcqWGO82SnctPqBN18QuSrNvbD7tM06NLUrFzw7afMaDGG9KRU5CoFDh5OpORyNOzf2Hf4G3r4tcOnpXm2/FK+aXVe3HxK9Ku6ubz7DLXecvwdeu34e3HrKbavjj+A0t6VqNC8Bpe/PJvrTFaNapN+5wHq4FAAEvd/g03HViZl9JlqomatRhsdC0DGnYfIXRxBLkfm6oR1q4aEDZ+a6yyve/Nc9dvfnKuSszlX2bo5UMmnDp/3X5wnmSo1rUHQzSdEvcr04+7T1MumbWsyNXw5aTOJrzIF3XqC3atMxauW4tejP6LX6dGqtdw+f51avt65ylW9WU2e3nxE+Ktz1dndJ2ncpZlZuWe3nzK+xSjSXjtXJb865pp2b8G3246RkpCMXq9n+9TN/HTk+xzlsW1Wi9Qbj8l4lSf6i5M4dTU/d7r29yVm3xniv/3ZZP3LWdt4Of8zAORujkhVCnRJqWb7/1tNWjbk5h93eP70BQBffnaQLj07mJVr2sKb4GchfH/WkOvsdz/wyeDJALh5uNDWtyUD3/8413nedOlxGFW8nCnhbAfAe/XL8d2N5+j12f951M8v3sHJ2oKe9crleRYhf72zUwUAIiMj6dKlCxkZGcTFxVGtWjXWr1+Ph4cHAB06dODUqVN4e3tz8+ZNKlSo8NZGmhfsPZ1ICIsxLieGxWJhZ4XKxtLkElx8SDTxIdHGZd/pfbl/9hpatZbHF28Z1zt4udBoUAe+mvJpjjNJXd3QRUUal3VRUUitbZBYWZlOF9BqUTZqgu34APRqNQk7txvKx8SQOGdGjt//bZyLuBAdmlUHMWHRWNtZY2ljaXYJTqvRUt+nAaOWfII6U82+lV8C8PCPhzTv3pL7V++hUCpo2KERGnXOLr0BqDxdyHgtU0ZYDHI7a2Q2lsbpAn9VJun3R7j2bE7SlftIlAqcO3qj02jN3ic3HD1diA3Lev+4sBgs7aywsLE0u6Sq02ip4VOP/otHoM7UcHzl/jzN8lemTRgFwC+//f4/e097T2eT4y8hLBbLbI6/uJBo4l47/vym9+Puq+PPzs2RzrMGsL3/Yrz7tM51JrmHK5rwrPfSREQhs7VGYm1lnC6gCY1AExphLOMcOJyUC5dBo0EbFUvEuHm5zvGmnJ6rOrx2rkqKjGfviNV5lsnR05m41zLFv6Vtx4ZEERsSZVzuOX0AN89eRavW8vyPxzTo1ownVx+gUMqp1aEBWk3OzwkATkVciAnNyhUbFoPVX5yr6vrUZ+iSj1Fnqjm0ci8AHqU9sb9hz6SdM3B0d+L+lXvsXbgzR3mUni6oXzsHZIZFI7OzRmpjaTJdIGTmVgBsm9U0fxGtjhKr/XHwbUTCqcukP3mZoyyvK+LpTtjLrHYcHhqJrZ0tNjbWJtMFSpUtQVRkDItWz6RS1fIkJiSxZM4aACLDoxk1MG8HSf4UkZCKh72VcdndzorkDDUpGRqT6QIAcSnp7Pr5PntHts+XLPmtMI2O5od3esT1z6kCJ06coEuXLuj1eho3zho1aNWqFT/++CM6nY7vvvuODh3Mv/3lJYlESnb9Yp02+1aksFTRa8NYnEq6c3TyNpNtnlVLMfTATC7vPM2D89ez3f8fZZJKIZtMep15psxffiKmZxdSd32O/aLlIJHk+H3/jlT67+rqt9O/MrBWX/av2suML+YgkUj4fP4O0OtZcWI1k7ZN5cbFP3LVcUUqyb6uXs/0F2Wez/kc9HpqnFlOxc8mEf/jDfQ5nMP29ojZv//b6u3G6StMqD2Yb1YfYMyu6Ujy8TMtaBKJJNsvpn91/PXdMBbnku4cmrwVqVxG73WfcHzuF8bR2FyTSnlLQzdbJbFU4b5iGopinkTNWpU37/8WOT1XOZd056s3zlV5m+mff35KSxVDNvjjWtKdLydvBuDwgl3o9XqmfruE4VsDuP/TTbSZufvyKJVKsv0M35br6unfGF5rAIdX7WfyFzORSCTI5TKqNq3B2o+XM80vABt7G94PMJ/i84+8pZ3zljxvEzRuFbdq9kPmYIvHuA9yluU1hnO6eS7tG21dLpfTok1j9u06Qtc2fdn16T62712LUqkw2zcv6fR6JJif/2RS83WHrz6mRaWiFHWyzddMQv54p0dc/ySVSgkMDKRr165s377d2EG1tramYsWKXLt2jcuXLzNhwgROnDiRp+/d2r8nldoa5lCpbKyIeBBs3Gbn4URqfDLqtAyz/ew9nem3fSJRj0PZ3mu+yc1X1fwa0nneRxyf+Tk3v/4lV/m0kRHIK1YyLktdXNAlJkJ6etY6Ty+kjk5o7hhGe9NPncBm7HgkNrbGKQN5odf43tRrUx8AS1srgu8HGbc5eziTFJ9Exht15VGiCA6uDty/api4f/7AWYYvHIm1vQ0WVip2Lfyc5IRkAHp8/J7xcl5OZLyMxrZW1mUhVRFn1HFJ6F7L9FdllE4uBM3/Ak28IY/XmO6k5yLPn/z8P6BGW8PcXQsbS16+1sYcPJxIiU8m8416cy3hgZ2rA0+uGm40+PnABfosGIaVvTUpr/L9f+Dj35PKbQ3ziFU2loQ/eGHc9lfHn4OnMwO3BxD5+CVbes1Dk6GmeO1yOBVzw2+GYc6yrasDEqkUhUrBoRx21jRhkVhUy5orK3dzQZuQhP6NTHIPVzw2zCXzaTChgwLRZ2Tm6P3+Smv/nlTM4bmq71vOVbnVyf99qr1q25b/sG2DYXR25PZJhD9+yepec1C/ymRhY8nRRbtJTTCM8LUb1Y3IoPB/navn+A+p3aYeAFa2lgTfz8rl5OFMcjbnKvcSHji4OvLg1bnq+wPnGLxwONb2NsRFxHHl5GXjCO1PX/1A9zHv/+tcAJmhUVjVKm9cVng4o4k3PU/9FdtmtUh7EIQmIhZdajpxx37EwTdnU5rGTR5B63aGaQo2ttY8uPfYuM29iBvxcQmkpaab7BMRHsWTR8+58fttwDBVYOGqmRQrUZQnj56RX4rYW3M7JGvkPDIpFTtLJZZK827O6VtBBHbM+f0SBU2MuBYScrmcwMBANm7cSHT0a5e2OnRgxYoVVK1aFbk87/vh51YdYr3vVNb7TmVzt5kUq1kO55KGqQr1+7Tm3plrZvsorS0Ysm8Gd09eYf8n60x+EVRsXZtOs/rzeb9Fue60AmReu4KiUmVkXl4AWHbqTOYl0zlPMidn7KbNRGJnD4CqVVu0z5/laacVYN/KPUzwHccE33FM6RpA+VoVKFKyCAA+fTpw5fSvZvs4ujkyYX0Ato6Gb77NujbnxYNgkuOTaNenA71e3ahl7+JA615tuXjshxznS/j+D2zqlMeilCGTe38f4k5d+cdlPPr7UCzAcIOLwsUe995tiD5yMcd5/nR81X7m+wYw3zeAJd2mUrpmOdxetbFmfXy4ceaK2T72bg4MXTcO61f11qBrE14+DP5/1WkFOL3qEKt9p7Dadwrru82keM1yuLyqG+8+bbhz5qrZPiprC4bvm8Htk1fY89rxF/z7IxY2Gm18vctfnuXGN5dy3GkFSPvlGqoaFVEU9wTA7oOOpJy/ZFJGYmWJ52fLSDn7E5EBi/Kl0wqGc9UG36ls8J3KljfOVfX6tOb+W85Vg1+dqw68ca7KC9+sOsAi30AW+QaytNs0StUsh+urTE37tOVmNm1bZW2B/77Z/HHyN3Z8ssbYaTXs40On8YbRQ1sXexr3asXVY//+BsFDK/cy1Xc8U33HM7PrZMrVKo/Hq3NV6z7tuHb6N7N9HNwcGb1+vPFc1aRrM+O56tfvfsG7Y2MUKiUAdX0a8PTmY7PX+CeSfvwD61oVUL3K49K3PQnZ5Hkbx06NKfJqhFWilOPQqTFJP9/6m72yt3rxZvxafohfyw/p2X4AtepUo2TpYgD0HtiDs9+Zn49/OPczRYt7UrWGYUClXsPaoNfzIjj30xX+SsOyRbj5IpqgV09WOfTbI1pULGpWLjEtg+DYJGoUz7ubkf/n9JL8+SkkCsWI65+aNWtGrVq1WLNmjXFdy5YtmTZtGmPHjs3390+JSeRwwBY+3DQWmUJObFAEh8ZvAsCrWim6LRnKet+peA/wwcHLhcrt6lK5Xda3uu29F9J+am8kEgndlgw1rg+6+pDjMz/PUSZ9fDxJyxdjN2Ou4XFYoS9JWroQefkK2I4PIG7EENS3b5K6ZzcOy1eDTos2JoaE2dNyUxV/KyEmgfUBawjYNBm5Uk54UDhr/Q2XR8tUK8uoJaOZ4DuOe1fucmj9QebtX4hWoyU2MpbFwxYCcHjjIcau8mf16XUgkbBv5R4e5/CXAYA6JpHH4zZQYdtEJEo56c/DeTxmHdY1ylB2+UhutJ341jIAIWuPUG79WGpeWAUSCcHL9pF840nuK+s1STGJ7AzYyLBNE5Ar5EQFRfDZ+PUAlKhWmn5LRjLfN4DHV+5zYsMRJuybjU6rIz4ilk1Dl+VplndNSkwiBwM203fTOOPxt2/8RgCKVitNzyVDWe07hUYD2uHo5UrVdnWp+trxt7X3AlLzuGOvjU0gavoK3FfNQKKQo34RRuSUZaiqlMN1jj8hPUdh37szck83rFs3xrp11lSn0MGT0CXkzw11KTGJHAnYQq/XzlWHX52rPF+dqzb8xblqR++FpOVxXSXHJPJFwCaGbhpvbNs7X7Xt4tVK02fJCBb5BtJiQHucvFyp0a4+NdrVN+6/tvdcTm08ysBVnzD9lGGq0zcrDxB0M3fHYGJMAlsC1jF2UwBypYKIoHA2+Rt+x5SqVoahSz5mqu94Hly5x7H1h5i+fz5ajZb4yFhWDjPcuHZm10ls7G1Y8O1ypFIpz28/ZfurG6T+LU1MAsET11Jq8yQkCjkZweEEjVuNZfWyFF/yMQ86+P/l/i/nf0axhSOpeGYtAAknLxO143iOsrwuJjqOSWNms37HMhRKBcHPQ5g4ynB/RLWalVi4aiZ+LT8kOjKGEf0nMGfpZKysLMnMVDNy4EQy8+kL25+cbCyY092bgL0XUWt1FHWyYX6PRtx5GcOcr37lwMe+AATHJONqa4lCVmjG7YQ3SPT5eTdTITOtpPmjWQrauHL5+y01p4Y/tC/oCGYmZubvHKqc2Kl6N0+O668uKegIZqbVzd8vUzkx3Ca2oCNk67Nk54KOYCaWvJ3vnRfi9Xk7gpwXAt7R67w9U1/8faH/sdsbuxZ0BDOW78/8+0L5LLxZi3x5XY8fv8+X181r7+ZvVUEQBEEQBEF4Q6GaKiAIgiAIgvBfptcVnvmo+UGMuAqCIAiCIAiFghhxFQRBEARBKCTe0WnS/zOi4yoIgiAIglBI6AvRo6vyg5gqIAiCIAiCIBQKYsRVEARBEAShkPivTxUQI66CIAiCIAhCoSBGXAVBEARBEAoJ8TgsQRAEQRAEQSgExIirIAiCIAhCIaHXF3SCgiU6rq+ZUONlQUcw0/RyekFHyNbVBXUKOoKZ6zOCCjqCmdVr6hV0hGxNqzutoCOYWXB1QUFHMGPt1aygI2QrZnjNgo5gRmpvVdARzMSdTijoCGaWRbgVdIRs3ZrlXdARzPQPuFbQEcwcfL+gE4ipAmKqgCAIgiAIglAoiBFXQRAEQRCEQkKMuAqCIAiCIAhCISBGXAVBEARBEAqJ//rNWWLEVRAEQRAEQSgUxIirIAiCIAhCISHmuAqCIAiCIAiFgl4vyZef3Dh+/Di+vr74+Pjw5Zdfmm0/e/YsXbp0oXPnzowaNYqEhJw/qk50XAVBEARBEIQciYiIYNWqVezZs4evvvqK/fv38/jxY+P25ORkZs+ezdatW/n666+pUKEC69aty/H7iY6rIAiCIAhCIaHX5c9PYmIiISEhZj+JiYl/meeXX37B29sbBwcHrKysaNeuHSdPnjRuV6vVzJo1C3d3dwAqVKhAWFhYjv//Yo6rIAiCIAjCf9zOnTtZv3692frRo0fzySefvHW/yMhIXF1djctubm7cvHnTuOzo6Ejbtm0BSE9PZ+vWrfTr1y/HOUXHVRAEQRAEoZDQ5XI+6tsMGDCAbt26ma23s7P76zw6HRJJVia9Xm+y/KekpCQ+/vhjKlasmO37/FPvTMf14cOH+Pn5sXbtWtq1a2dcf+nSJTZs2EBUVBQ6nY5KlSoxdepUPDw8CAkJoX379pQpU8bktd5//3369OmTLzkVdbyx7D8MiUKB9vlTktctgbRUkzIq326oOnQBvR5deCgpG5ahT4gHwOGLY+iio4xl07/aR+YPZ3Odq1mbxoybNhKlUsnDu4+Z4b+AlOQUs3IBs8fQzq81CfGGof9nT4KYOGw6qz5dRPFSRY3lvIp7cvXS74zuH5CjPD8+iWDdjw/I1Ooo52rL7PbVsVEpTMo8ikpk8bk7JGdokEkkTPepRmUPe5My47+6iquNBVPaVM1Rjjc5tq5N8al9kSrlpNwL4sn4jWiT0/5RGbmDDaUXD8O6Skm0aRlE7jtP+I7vcp3px3vBrPvuKpkaHeWKODL7vabYWCiN249fe8QXP942LienZxKZkMKpaR+ilMuYc+gizyLj0evBr05ZPmpZI9eZACq2rEWHwF7IlXLC7gdzcNJWMt6oK4BaXZvQfHgn0OvJTMvk69k7Cbn11KRMv83+JEbEcWzW53mS7a/o9XqmzV9BuTIl+ah3z3x/P4AOHVoxf94UVColt27dY9jwiSQlJZuU6dunB2PHDjMu29nbUtSrCKVK1yMyMprQlzd5+TLr8tnKlZvZu+9ojvLIKtdF5TcAiVyBNvQ56XvXQLr5Zwcgr+aNRb/xJAdm/RF2RRNfFA19QKFC9+KxYX+NJkdZjJnK10LZtjfIFejCg8j4ajNkmGZStu+HrEpD9GmGutNHh5JxYLVxu8TOGYvhC0jbEACpSbnK8yeLxg2wGzkEiVKJ+vFT4hYsQ59iek63at8Gm74fgF6PPj2D+BXrUN9/CIB1j85Yd+6IRKUk8/5D4hYsB7U617kqt6yFX2AvZEoFofeD2TtpS7bHX92uTWg13A+9Xo86LZPDsz/nxa2nfLTRH5eS7sZyzkXdePzrXT4dujzX2QAuPo9m3aUnhnO8sw2zWlfCRmnapXgUncySHx+QnKlBKpEwvWVFKrv9dSfo36rdqg69A/ujUCoIuv+cTYHrSMumntoP8MWnbwf0ej0RQeFsnryBxJgEpFIpg+cOo7K34XfM7xeu8sWCz/M0Y2FhZ2f3t53U7Hh4eHD16lXjclRUFG5ubiZlIiMjGTx4MN7e3kydOjVXOd+ZOa6HDx+mffv27N+/37ju6tWrBAQEMHHiRE6dOsWZM2do0KABH3/8sbGMm5sbx44dM/nJr06rxM4e6zGTSV48g4RR/dCGh2LVf7hJGVmZ8lh0/YCkSR+TOOYjtKEhWPYeDIDUqxj6pCQS/YcYf/Ki0+ro7MD8NdMZN2gKnRq/T0jQS8ZPH5Vt2Zr1qjNx+HR6tO5Hj9b9mDhsOgD+Q6YY182asJCkhCTmT16WozyxqRnMOnmT5V3rcGxIC4o6WLHmx/smZdLUWkYe/I2B9cuwf0BThjYsy9Rvr5uU+ezXJ1wPictRhuzIne0ou3o0D4Ys43rTMWQERVBiWt9/XKbknIFoU9K53nwctzpOwbFVbRzb1MlVptjkNGYduMjyfq05FtiTos62rPnuikkZvzrlOODfjQP+3fhyTBdcbC2Z3LURzraWbDx9DTd7aw5P6MGXYzpz4PJ9bgRF5CoTgLWTLe8vG84XI1exrPUEYl5E0mHSh2blXEsXoePU3mzvv5jVvlM4v+4o/Tb7m5RpPtyPUvUq5jrTP/HkeTCDx0zhzPc//U/eD8DFxYltW1fyQa9hVK3WnGfPglmwYIpZud1fHqZe/XbUq9+Oho06EhEexdhx04mMjKZ8+dLExcUbt9er3y7HnVaJjR0WfcaRtmMRKQtGoIsJR+U3MPuyrp6oug6C10ZH5NUbomjmR+qG6aQuGgUKJcoWXXOUxcjKFlW3UaTvXUHamnHo4iINndg3SItVIOPAatI3BpK+MdCk0yqv2QyLIXOQ2jnlLsvr7+dgj+P0QGKnzCbi/QFoX4ZiP2qoSRl58WLYfzKc6LGTiOw3jKTPduO8ZA4AFi2aYvNeN6I+mUjEh4OQWKiw/TD3X5asnWzpvWwEO0auYmHr8cS8iKRzNsefW+kidJ7ah839F7HMdzKn1x1h8ObxAHw2ahXLfCezzHcy+ydvJS0xhUMzP8t1NoDYtExmnbvLsg7V+KpvQ4raW7L2l8cmZdLUWkZ9fZ0BtUuwr1cDhtYrxbTTd/Lk/f9k52THqGVjWD5iMWNbjSIiOJw+k/ublStdtQx+Q7syvfskJviMIex5KL0mGNpfs+4t8CzjxQSfMUxsP5bKDari7dsoT3PmtXftqQKNGjXi0qVLxMbGkpaWxunTp2nWrJlxu1arZcSIEXTo0IFp06ZlOxr7b7wTHVe1Ws3x48cZN24cd+7cITg4GICNGzcycuRIatasaSzbp08ffH19yczM/J/nVNSqh+bxfXRhLwHIOHkMZfM2JmW0Tx6SMLIP+tQUUCiROruiTzKMbsorVgWdDtuF67BbswOLDwaANPcfQaMWDbh9/R7Bz14AsG/nETr2aG+eX6mgUtXyDBrdj6Pff8nq7Ysp4uVuWkYhZ+HaWSyesYrw0Mgc5bn0PJoqHvaUcLQG4L2aJfjubij61/7cx6XnURR1sKJpacO3shZl3VnqV9u4/UpwDL88j6JnzeI5ypAdh+Y1SP7jMenPDKNa4TtP4dK96T8uY1O9DFGHfgCdDr1aQ9zZazh3apirTJcevqRKMRdKuBpGmt/zrsR315+Y1NXrPv/+Bk42lvT0NnQEAzt7M75jfQCiEtNQa7Qmo7U5Vb5pdV7cfEr083AALu8+Q60ujc3KaTLVHJq0jaSoeABe3HqKrasDMoUMgNLelajQvAaXv8z9F7R/Yt/hb+jh1w6flk3/vnAeadumOVev3eDx42cAbNm6iw97/fVlsICJo4iKiubTTw2PjfH2rotWq+X8ucNcu3qGaVPHIc3huUFWsTa64Efoo0IBUP90AkXdFuYFFSos+00g/einJqvl9VuhvnAUUpNBryfjwAbUVy7kKIsxU9kaaF8+QR9raE+a304jr/HGZySTIy1SEkXTLliOXo6q1wQk9s4ASGwdkVWqR/rOBbnK8SZVg7pk3nuA5oXhnJ585Gus2rc2KaNXZxK3cDm6mFgAMu89QObsBHI51r5tSdpzEH1iEuj1xC9eRcp3Z3Kdq2LT6gTffELUq+Pv591nqNOliVk5TaaGfZO2kvjq+At+4/gDkClk9FkxiqPzdhEfFpPrbACXg2Op4mZHCQcrAN6r6sV3D8NNzluXX8RS1N6SpiVdAGhRyoUl7fPmytmfqjerxZObjwl/bjhfn959kqZdmpuVe3r7CWNajCQ1KRWFSoGTuzNJcYYRe6lMisrSArlSjkKpQK6Qo87I/Yh5ftLrJPnyk1Pu7u74+/vTv39/unbtSqdOnahevTpDhw7l1q1bnD9/nrt373Lq1Cm6dOlCly5dmDZtWo7f752YKvDDDz/g6elJqVKlaNOmDfv37ycgIIA//viDyZMnm5UfPHiw8d+RkZF06dLFZPvSpUupUKFCnueUurihi87qzOmio5Ba24Cllel0Aa0WRYMmWI8OALWaxD3bAZBIZahvXCN11xYkcjk2MxajT00h4/ihXOUq4ulOeGjWKFtEaCS2djZY21ibTBdw83Dh15+usXbxZh7ff8pHo/qybucyerbJ+obavXdnIiOiOPfdDznOE5GUhoetpXHZ3daC5EwNKZka43SBoNgUXKxVzD55g4eRSdiq5IxrUQmAyOR0lp2/w4ae9Tl0IzjHOd6k8nQhIzTauJwRFoPczhqZjaVxusBflUn6/RGuPZuTdOU+EqUC547e6DTaXGWKSEjBw97GuOxub01yupqUDLVZBzQuJZ1dP95m75is9i6RSJDLJEzd+z1nbz2nVZUSlHQ1nW6RE/aeziS89ksuISwWSzsrVDaWJpcr40KiiQvJqi+/6f24e/YaWrUWOzdHOs8awPb+i/HuY9oZyC/TJhiuNPzy2+//k/cDKFrUk5CQUONySEgY9vZ22NramE0XAHB2dmTcuGF4N/Q1rpPL5Zw7/xPTpi1EoVBw7KudJCYlsW7d9n+dR+rggi4u6zPRx0cjsbQGC0uT6QIWvT4m85eT6EKfm+7v5oUu6CGWI+cgsXNC+/QOGcdyN1IntXdGn5DVnvSJMUgsrEBlaZwuILF1RPvsNpln96GPfIGisR+qPoGkb5yEPimOjL0rcpUhO3J3N7QRWed0bWQUUhsbJNZWxukC2rAItGFZ51f7sSNJu/gLaDTIixdF5uiAy+rFSF2cybxxi4R1W3Ody9HT2aSTGR8Wk+3xFxsSRWxI1tSzbtP7cfvV8fcn7w9akRARx81TpldyciM8OR13GwvjspuNiuRMLSlqrXG6QFB8Ks5WSmafu8vD6GTDOb5R2TzLAOBSxIXo187XMWHRWNlZY2ljaTZdQKvRUs+nASOWjEaTqWb/yj0AfH/wPA19G7Plt8+QyWTcuHida+fyrq7+K/z8/PDz8zNZt23bNgCqVavG/fv3s9stR96JEdfDhw/TqVMnAHx9fTly5IhxRPXPIeXMzExjT71Fixb8/rvhF1N2UwXyo9NqCCOF7AbCdDqzVepffyK+XxfS9n6O7ezlIJGQceYbUretgYx09CnJpB87gNI79yNDEqkk2xE6nc60U/UyOIyRffx5fN8w//CzjbspVrIoXsWLGMv0H/4hW1bl7peUTg/ZfXeTvXZ5QKPT8dPTSHpUL86e/k3oVbskow9dIVOjZcrx60xsWRnX106MeUIqyfbz02t1/6jM8zmfg15PjTPLqfjZJOJ/vIE+M3fz/nR6PdldNZFJzVce/vU+LSqXoKiz+RykhR+24PtZfUhIy2DL2T9ylQkMx122bUpr3tYBFJYq+m4Yi3NJdw5N3opULqP3uk84PvcL42js/1fStxx/Wm32X2qGDO7D8eOnefYs60vZjh178PefQWpqGgkJiaxZs40unTvkLJBEQraN+LXzlKKJL2i1aC6bjw5KpHJkFWuR9tliUpf7I7GyRdXJ/PLrv8sk/dtM+vgoMr5YjD7ScOVI/fNxpI7uSBxczffLK5Lsj3eyaecSCwucFs5CXszLMI8VQC5H1aAOMdPmEjlwJFI7O+xGDjbb99/Hkmb79+j1bzn+lJYqBm4Yh0tJD/ZN3mKyrcUgX06vz9m0k7fR68n+vPXGOf7noBh6VPFizwf16VW9GJ98c4PMt/wfckIilZBdRb3tPHXl9K8MrtWPA6v2Mv2L2UgkEt4b14vE2ASG1hnACO9B2DjY0mlol2z3f1fo9fnzU1gU+IhrTEwMFy9e5M6dO+zatQu9Xk9iYiJnzpyhWrVq/P7775QrVw6lUsmxY8cA6NevH+o8mPz+b+miIpCXr2Rcljq7oEtKhIz0rHUeXkgdndDcuwVAxrkTWI0cj8TGFkUdb7TPHqMNenXjikQC2px1fEYHDqNlO0On19rWmkf3nhi3uRVxJSEugbTUdJN9ylcuS4XK5Th+KOuGIokENK++nVesWh6ZXMaVX3I3WlXE1oLbYfHG5cikdOwsFFi+NnHf1caCUs42VPN0BKBlOQ/mnrrFvYhEQhJSWX7hHgAxKRno9HoyNTpmta+eq1wZL6OxrVXOuKwq4ow6LgldWsY/KqN0ciFo/hdo4g2jaF5jupP+POfPogMo4mDD7eCsEZPIxBTsLJVYKhVmZU/feEZgZ2+Tdb88CKGshyNu9tZYqRS0r1mac7ee5yiLj39PKrc1zNlV2VgS/uCFcZudhxOp8cmoX6urPzl4OjNwewCRj1+ypdc8NBlqitcuh1MxN/xmGOYH27o6IJFKUagUHJq8LUf53iWzZk6kUyfD411s7Wy4cztrNMHLy4PY2HhSU7O/Geq99zrjP36mybo+vXtw8+Zdbt02tHuJRIJak7NznC4uCnnJrC/vEntn9ClJkJn12SkatAGFCqvAtSCXg0KJVeBa0jbPRpcYg+bGL8bRWfWVC6jam8+v/FeZEqKRF80abZPYOqFPTQZ1ViaJe3FkHiXQ3LiYtaNEArrcXdX4K9qISJRVs87pMldXdAmJ6NNNz50ydzecVyxA8zyIqFHjIcMwsKKLiiHtwk/G0dnUk2ewG5SzTn4H//eo+ur4s7CxJOy148/ew4mU+GQyszn+HD2dGbo9kIjHL1nfa67JZW6vKiWRyqU8vnw3R5nexsNWxa2IrL98FJmcgZ1KjuVrUxRcrVSUcrSm2qsbbluWdmXu+XuEJKRR2sk6x+/9wfje1G1TDwBLWyuC7wcZtzl5OJMcn0TGG/XkUcIDB1dH7l81HF8XDpxj2MKRWNvbUL+9NztmbUOj1qBRa/jh0Hm8fRvxzbZjOc4o5K8CH3E9duwY3t7e/Pjjj5w/f54LFy4wYsQI9u3bxyeffMKGDRu4ceOGsfz9+/d58eIFMpnsL141f6j/uIK8QmWkRbwAULXvjPq3n03KSJ2csZk4E4mt4WBVNm+LNvgZ+qREZMVLYdl7kGFeq1KJhW83Mi/mbO7Y+qVbjTdT9fYdTPU6VSleqhgAHwzozvmTF8320el0TFkw3jjC2mtgDx7efUxEmOFSWb1Gtfn1p6tm+/1bDUu6cjM0jqA4wzSFQzeCaVHWdC5tk1KuvExI42644eR37UUMSKCiux2nRrTmwMCmHBjYlJ41i+NTsUiuO60ACd//gU2d8liUMvz/3fv7EPfG5bO/KuPR34diAb0AULjY4967DdFHzOv532hY3oubwZEERRnq4dDl+7SoUsKsXGJqBsHRidQoaVqPp28+Y8vZ6+j1ejI1Wk7feEa9Mp45ynJ61SFW+05hte8U1nebSfGa5XAp6QGAd5823Dlj3jZU1hYM3zeD2yevsOeTdWhe/dIM/v0RCxuNNr7e5S/PcuObS/8vOq0Ac+YuN95E1bRpZ+rXr03ZsqUAGDa0H8ePn8p2PwcHe8qUKcmlS6Z1WaVKBWbNmoBUKsXCwoKRIwdy8ODxHGXT3r+OrEQFJK6GdqBo4ovm1mWTMqkrxpO6+GNSl44hbfNsUGeSunQM+sRYNH/8jLxWU1AYpqrIqzdEG/woR1mMmR7fQFasHBInQ3uS12+L5v4bl2P1epQdPzKOsMrr+6ALD0KfGJur9/4r6b9eRVm1EvJihnO6dXc/wzSA10isLHHdtJK0CxeJnT7f2GkFSD3/I1ZtmoPKUFcWzZqQee9BjrJ8t+qg8WaqVd1mULJmWVxfHX+N+7Th9luOv9H7ZnLz5G/s/GSt2dzMsg0q8eiXvL0hCqBhMWduhScQFG/osB+6/ZIWpUxHxhuXcOZlYhp3Iw33eFx7GYdEAl52ubuStn/lHgJ8/Qnw9Wdq10DK1aqAR0nD+dqnT3uunP7NbB8HNyfGrZ+IraMtAE26Nif4QTDJ8Uk8u/2URh0N8/dlchl129bn4fWcfYb/K+/aHNf/tQIfcT169Cj+/qZ3Iffp04dPP/0UR0dHVq1axerVq4mOjiY1NZUiRYowadIk6tatS0hISLZzXOvVq8f06dPzPKs+IZ6UtYuxmTTX8JiZ8JekrF6IrGwFrD8OINF/CJq7N0k7uBvbBatBq0UXG0PyQsMk5LR9n2M9fBz2az8DmZzMn78n48w3uc4VGx3H9LHzWL19EXKFnBdBL5k62nDXa5UaFZm7cho9Wvfj8f2nLJy6gg1frEAqlRIRFknAiBnG1ylRqhihL3I3ggjgZK1iTocaBBy7hlqro6iDNfN9a3AnPJ45J29xYGBTXGwsWNW1DgvP3iZNrUEpk7KySx1U8vz7QqKOSeTxuA1U2DYRiVJO+vNwHo9Zh3WNMpRdPpIbbSe+tQxAyNojlFs/lpoXVoFEQvCyfSTfePI37/rXnGwsmfNeMwJ2n0et1VLUyY75vZpz50UUcw79xAF/w00+wTGJuNpZopCZftcc36k+C478TM+VRwBoVbUkfZpUyVUmgJSYRA4GbKbvpnHIFHJigyLYN34jAEWrlabnkqGs9p1CowHtcPRypWq7ulRtV9e4/9beC0iNN5/f+f9RVFQMQ4dNYN/eLSiVCp48DWLQoHEA1K5dnS2bl1GvvuERf2XKlCQsPBLNG4+Wmjd/JWtWz+f672eRKxQcOfwNO3bsyVEefXIC6XvWYDloCsjk6KPDSNu9Emmxslh8OIbUpWP+cn/1xRNIrGyxCliNRCJFG/KE9K8+/ct9/lZKIhlHNqH6cDwSmRxdbAQZh9cj9SyNsusI0jcGoo98Qca3n2HRdxJIpegTYsk4uCZ37/s3dHHxxM1bhtOi2UjkcjQvQ4mdsxhFxfI4TptIZL9h2LzXFZmHO5YtmmDZIusGqeiPJ5Jy+BhSO1vcd24GqQz1g0fELd6U61zJMYnsCdjMR5v8kSnkxARFsHv8BgCKVStNryXDWOY7maYD2uHk5Uq1dvWo1q6ecf8NveeTGp+Ma0kPkzmwecXJSsns1pUJ+O4WGp2OonaWzGtbhTsRicy9cI/9vRrgYq1ipW91Fv3wgDS1FqVMyooO1fP0HJ8Yk8DGgLVM2DQJuVJORFA46/1XA1C6WllGLvmYAF9/7l+5y5H1B5m9fwE6jZbYyFiWDVsIwOdztzN47jBWn9uATqfj1s83+Xpz3k6tEPKWRP+225f/g2KzuRuxoDW9nP73hQrA1QXmd5gXtOszgv6+0P9Yrc0NCjpCtmaNvf73hf7HFlzN2zvG84K1V7O/L1QAYobXLOgIZqT2VgUdwUzc6ei/L/Q/tizC7e8LFYBFE/LuMWN5ZcDylwUdwczBoIKfQnC7dKd8ed2qT3M/kPa/UOAjroIgCIIgCMI/k5tnrv5/UOBzXAVBEARBEAThnxAjroIgCIIgCIXEf32CpxhxFQRBEARBEAoFMeIqCIIgCIJQSOjEHFdBEARBEARBePeJEVdBEARBEIRCQjxVQBAEQRAEQRAKATHiKgiCIAiCUEj8158qIDqugiAIgiAIhYS4OUsQBEEQBEEQCgEx4vqa4X84FHQEM1eXViroCNlyH3WgoCOYWerUqKAjmGn23pqCjpCtB+WrFnQEM9ZezQo6gpmUlz8WdIRstaoxtKAjmEnTJRR0BDNtVcUKOoKZqSVDCzpCttoujizoCGb2ef63RxbfRtycJQiCIAiCIAiFgBhxFQRBEARBKCTEHFdBEARBEARBKATEiKsgCIIgCEIh8R9/GpbouAqCIAiCIBQWYqqAIAiCIAiCIBQCYsRVEARBEAShkBCPwxIEQRAEQRCEQkCMuAqCIAiCIBQSuoIOUMDEiKsgCIIgCIJQKIgRV0EQBEEQhEJCz397jus72XENCQmhffv2lClTBoD09HRq167NhAkTcHFxoUKFCjx48ACAkydPsnXrVjQaDXq9ni5dujBkyJB8y1a7VR16B/ZHoVQQdP85mwLXkZacZlau/QBffPp2QK/XExEUzubJG0iMSUAqlTJ47jAqexv+VvzvF67yxYLPc5Xpx8fhrLtwh0ytjnJudszuWBsblcKkzKPIBBafvklyhhqZRML0DjWpXMQRgP3XnnL0j+dkaLRU8nBkdsdaKOWyXGUCaNeuJbPmBqBSKrl9+z6jR00mKSnZpMyHvbvx8SeDjct2drZ4eXlQsXxjoiKjAfDyKsK57w/TyLsjsTFxuc71uuKtatJg8vvIlApi7gXzfcCnqLP5PP/UcuVwYh+84MaWE3maw7dDa+bPn4xKpeLWrXsMHTbBrK769u3JuLHDjMv2drYULVqEEqXqsm7tQsqUKWncVqpkMX68eJlu3T/KUR6rZvVxGvcREoWCzIfPiJy5Cn1KqkkZm06tcPjoPdDr0adnEL1oIxl3Hhm3yzxcKfrlal70GIkuPjFHOd7UoUMr5s+bgkql5NatewwbPtG8nvr0YOxr9WRnb0tRryKUKl2PyMhoQl/e5OXLMOP2lSs3s3ff0TzJ9zZ6vZ5p81dQrkxJPurdM1/f608NWzdg+OQhKFQKntx7yuIJy0lNTn1r+abtGjN97WTaVfADwNbBlgmLxlKuSlnSU9M5sf8khz/7KleZGrduyOipw1EqFTy694R54xeTkk2mcbM+po1fSxLiDO0m6EkwU0fMxtrWmpkrJ1OybHEkUinfHviOnRv25CoTQIWWNWkX2Au5Uk74/RccnrSVjGzOAzW7NqbZ8E7o9XrUaZkcn72Tl7eeobK1pMeSYbiW8UQilfD74Yv8uPl4jvMovb2xGToUiUKB5ulTEpcuRZ9qWk8Wbdti9cEHAOjT00latw7NgwdIbG2x8/dHXrYs+vR00r77jrSjed++G7ZuwIjJQ1CqlDy+95RFE5Zl275GzxxBy07NSYpPAiD4yQtmjpyXZzksGjfA/uMhSJQK1I+eEjt/udm5yqpDG2z7vg8YzlVxy9ejvvcQAM8zR9BGRhnLJn1xgNST5/IsX37Q/ccf5PrOThVwc3Pj2LFjHDt2jJMnT+Li4sKYMWNMykRERLBkyRK2b9/O119/zb59+zhx4gTnzuVPo7NzsmPUsjEsH7GYsa1GEREcTp/J/c3Kla5aBr+hXZnefRITfMYQ9jyUXhN6A9Csews8y3gxwWcME9uPpXKDqnj7NspxptiUDGZ9c43lPRpwbERbijpYs+bCHZMyaWoNI/f+zEDvcuwf3IqhTSow9dhVAM7df8m+q0/Y0rsJh4e1IUOjZfdvj3Oc50/OLk5s3LKEfr1HUadWG54/f8GcuYFm5fbuOUqThp1o0rATLZp2JTIiionjZxs7rR/27sZ3p/fh6emR60xvsnCypeWKoZwetoZ9LQJIDI7Ee8oH2ZZ1KOuJ374plO5YL89zuLg48em2lbz/wTCqVG3Gs2dBLFww1azc7t2HqFvPh7r1fPBu6EtERBRjxk4nMjKaD3oNM24bMSKA+PhEPhkzLUd5pI72uM2bQMS4ebzwG4I6JBxn/0EmZRQli+I8YQhhw6cR0nMUcVv24L56pnG7Tec2eH2+HLm7S44yZMfFxYltW1fyQa9hVK3WnGfPglmwYIpZud1fHqZe/XbUq9+Oho06EhEexdhxhnoqX740cXHxxu316rfL907rk+fBDB4zhTPf/5Sv7/M6Byd7pqwMYPqw2fRpNpDQoDBGTH37F/qipbwYNWM4SLJGcj6ZPYq0lHT6tRjEcL/RNGhZn0ZtvHOeydmBWaunEDhkOj2a9uFlUCijp43Itmz1ulWZOmI2fdoOok/bQUwdMRuAkYFDiAiL5IOWA+jffig9BnSlWp0qOc4EYO1kS89lw/ly5GpWtp5I7IsI2k/qZVbOpXQROkztzWf9l7DOdyoX1n1F383+APiMf4/E8FjWtJvEhs4z8O7bhuK1y+Uoj8TeHvtJk0iYOZOY/v3RhoZiM2yYSRlZsWLYjBhBfGAgsUOGkPLFFzjMnQuA7ccfo09LI2bgQGJHjULVoAHKhg1zlOVtHJzsmbYykGnDZvNhswGEBoUycurQbMtWq1uFWaPmM9BnGAN9huVpp1XqYI/TzABiJs0mvOdANC/DcBht2s7lJYriMGYYUWMmE9FnOInbd+OydLZxmy4hiYg+w40/73qnVXiHO66vk0gkfPLJJzx69Ij79+8b18fFxaFWq0lPTwfA2tqaxYsXU7Zs2XzJUb1ZLZ7cfEz4c8NozendJ2napblZuae3nzCmxUhSk1JRqBQ4uTuTFGf4timVSVFZWiBXylEoFcgVctQZ6hxnuvQskipFHCnhZAPAe7VL8d2dF+j1WV/JLj2NpKijNU3LGjp/LcoVYWn3+gAcv/2Cfg3KYW+pRCqRMK19TTpWK57jPH9q3bopv1+7xZMnzwHYvm03733Q5S/38R8/nKioGD7bsRcADw83OnbyoXuXgbnOk51izaoReeMZCc8jALj7xTnKds3+S0TVAW24t+97nn77W57naNu2OVev3uDx42cAbN6yi94fdvvLfQIDPiYyKpptn+42Wa9QKNixYzXjJ84iJCQ0R3msGtUm/c4D1MGG/RP3f4NNx1YmZfSZaqJmrUYbHQtAxp2HyF0cQS5H5uqEdauGhA0373znRts2zbl6LauetmzdxYe9/rqeAiaOIioqmk8//RIAb++6aLVazp87zLWrZ5g2dRxSaf6eBvcd/oYefu3wadk0X9/ndfWa1+X+jQeEPHsJwFe7vqZtt9bZllVZqJixdgrr52wyWV+hWjlOHT6DTqdDo9Zw6dyvtOjYLMeZvJvX4+4f93nxLASAQzu/okP3tmblFEoFFaqWo//Hvdl3/nOWfjoPdy83AJbPWMOaORsBcHF3RqlUkpyUkuNMAOWaVifk5lNinocDcHn3WWp2aWxWTpOp5sikbSRFxQMQcuspNq4OyBQyjs/ZxYkFhjZm5+aATCknPfHto9t/RVWvHur799G+NHx2qV9/jUWbNiZl9Go1icuWoYs1HH/qBw+QOjmBXI6iQgXSzpwBnQ40GjIuX8aiufnvqdyo37wu915rX0d3fY1PNu1LoVRQrko5+oz8gF1nP2XB1tm4e7rlWQ4L77pk3n2A5oUhR/Lhr7Fqb5pDn6kmdv4KdDGGusq89xCZs6GuVNWrgE6L29bVuO/Zht2QfpDP54O8oEOSLz+FxTs5VSA7SqWSEiVK8PTpU+O6ihUr0rp1a9q0aUOlSpVo0KABfn5+lChRIl8yuBRxITo02rgcExaNlZ01ljaWZtMFtBot9XwaMGLJaDSZavavNFzO+v7geRr6NmbLb58hk8m4cfE6185dyXGmiMRUPOwsjcvudpYkZ2hIydQYpwsExSbjYm3B7G9/52FEArYWCsa1MkxVCI5JJrZIBqP2/UxUUjq1ijnj/2pbbngVLUJISNbl2Jcvw7G3t8XW1sbs0i6Ak7Mjo8cMoXmTzsZ14eGR9O09MtdZ3sba05nk0BjjcnJYLCo7KxQ2lmbTBX6asQswdHbzWrGinrx4rZMZEhKGvb3dW+vK2dkR/3HDqO/dwWzboI8+JCw0gmPHTuY4j9zDFU14VjvXREQhs7VGYm1lvASnCY1AExqRlSlwOCkXLoNGgzYqlohxeTeq8qeiRT1NOuP/pJ7GjRuGd0PfrP+bXM658z8xbdpCFAoFx77aSWJSEuvWbc/zvH+aNmEUAL/89nu+vceb3DxdiQjNuvwZFRaFjZ0NVjZWZpdzA5b6c2z3Nzy599Rk/d3r92nXoy23rtxGqVTQvGNTtGpNjjO5e7oR8VqbiXyVydrGymS6gKu7C1d//p1Ni7fx5MEz+o38kJWfLaKPj2FKkVarZe76GbTu2Jzvv7tI0OPgHGcCsPd0IiEs6zyQGBaLhZ0VKhtLk+kC8SHRxIdkHRcdp/fl3tlraNVaAHRaHe+vGkVV3/rcPXWVqKc5++IodXNDG5X12emiopDa2CCxsjJOF9CFh5MZHm4sY/vxx2T88gtoNKjv3sWybVvUt24hUSqxaNYMvSbnn1t23DzdiAyNNC6/rX25uDvz+8/X2bp0B88ePKf3iA9Y/Nk8Pmo3PE9yyNxd0UZk1ZU28lVdvXau0oZFoA3LancO/iNJ+/ESaDQgk5H+2+8krP8U5DJcVy9El5JC8t4jeZJPyB/v/leL10gkEiwsLEzWzZkzh/Pnz/Phhx8SGhrK+++/z+nTp/Pn/aUS0JtPLtFps384xZXTvzK4Vj8OrNrL9C9mI5FIeG9cLxJjExhaZwAjvAdh42BLp6F/PRL5V3R6kGTzTUn22iU/jU7PT08i6FGzJHsGtaRX3dKM3v8LmRotap2Oy88iWdqtPnsGtSQxXc26H+7mOM+fpBKpyajvn7RabbblP/roQ058e4bnz1/k+r3/KYlUQnZ/9Vn/ls8zv0il/66uhg7py9fHT/Psmfkv7LFjh7Jw0ZrcBsq2naMzzyOxVOG+YhqKYp5EzVqVu/f921iSf1VPQwb34fgb9bRjxx78/WeQmppGQkIia9Zso0tn8y8AhZ30LZ/hm+eqrgM6o9VoObHf/IvOhrmbQK9nx6ktLNwxl6s/XkOdi46roZ2br9e+kSn0RRhj+wby5IFhZP2LTXvxKumFZ7EixjIzR8+jTRU/7BztGDJ+YI4zAUgk2ed623ldYami94axOJd058jkbSbbDvhvZH6t4Vg62NB6bPecBsr2s9PrssljYYH97NnIvLxIXLYMgKRNhpFz508/xX7+fDKuXjV00vKQ4Vg0X/9mnYW9CGdi/yk8e/AcgD2b9+NVwpMixfJo6pfkLeeqbD47iYUFzotmIi/qSez85QCkfHWC+OXr0aeno09OIenLQ1i2aJI32fKRHkm+/BQWhWbENTMzk2fPnplMA/j+++9JTU3F19eXHj160KNHDw4cOMChQ4fw8fHJk/f9YHxv6rYxzGu0tLUi+H6QcZuThzPJ8UlkpGWY7ONRwgMHV0fuX70HwIUD5xi2cCTW9jbUb+/Njlnb0Kg1aNQafjh0Hm/fRnyz7ViO8hWxt+R2aKxxOTIpHTsLBZbKrI/W1caCUi62VPNyAqBleU/mfnudkPgU3GwsaF3B0zg661u1GFt/uk9OTJs+jg4dDZe0bG1tuHvngXGbp6c7cbHxpKZmf+NT954dCZw4J0fv+2/UndCDkm1rA6C0sSTmQVZH2drDkfT4ZDRvfJ75YfasiXTqZGijdrY23L6TVedeXh7Exsa9ta7ee68z/v4zzNbXrFkFuUzGDz9eylU2TVgkFtUqGpflbi5oE5LQv1Evcg9XPDbMJfNpMKGDAtFnZObqfbMza+ZEOnUyXE62tbPhzu036+ntbeq99zrjP36mybo+vXtw8+Zdbt02HJsSiQS1JudTdd4lgycOpLGPYS6jtY0VT+4/M25z8XAhMS6R9LR0k306vNcOC0sVO05vQaFQoLJQsuP0FgL6TUUmk7FxwVbjTTX9PunNy+cv/1Wm4QGDaeZjuOxubWvNk3tPjNtci7iQkE2mspXKUL5KWU4cOmVcJ5FI0Gg0eLeoz+N7T4iOiCEtNY1TR8/SquO/vwzexr8nlV6dByxsrAh/kPXlxs7DidT4ZNTZnAfsPZ0ZsH0ikY9D2dZrPppX07zKNatO+P1gkiLjyUzN4MbXv1C1ff1/nQtAFxmJolIl47LUxQVdYiKkm9aT1M0Nh4UL0QYHEzduHGQajj+JlRVJmzejTzJ8blZ9+qB5+e8+t+wMmTiQJj6GqVRWNlY8NWlfrtm2rzKVSlO2chlOHT5jXPfnZ5kXtBGRqKpmnatkri5oExLRv1FXMnc3XFbOR/M8mKiRE4znKqsObVA/eor68dM/w+V5J1/Ie4VixFWn07Fu3Tpq1KhB8eJZ8y8tLCxYsWIFISGGOVN6vZ579+5R6bWDPrf2r9xDgK8/Ab7+TO0aSLlaFfAoafjm79OnPVdOm895dHBzYtz6idg62gLQpGtzgh8EkxyfxLPbT2nU0XAil8ll1G1bn4fXH5i9xj/VsJQ7N1/GERRruFR66PdntChfxKRMkzLuvIxP4W6Y4Y78a8HRIAEvB2vaVPTi9L2XpKu16PV6LjwMpcqrpw38WwvmrzbeaNW6ZQ/q1a9lvNN90JA+fPvt2Wz3c3Cwo3TpEvx6Of8vpV5dcZhD7adxqP00jnSZjXutstiXdAegct/WPD/9v7mcO3vOcuPNVI2b+tGgfm3Kli0FwPBh/fj6ePZXDRwc7ClbpiS/XLpqtq1Z04Zc+P7nXGdL++UaqhoVURT3BMDug46knDftDEusLPH8bBkpZ38iMmBRvnRaAebMXW68iapp087Uf62ehg3tx/Hjp7Ldz8HBnjJlSnLpjXqqUqUCs2ZNQCqVYmFhwciRAzl4MOd3f79Lti//nEE+wxnkM5zhfp9QpXZlipbyAqBrPz9+Ov2L2T7DO33MgNZDGOQznIB+U8hIz2SQz3BiImLo2t+PwRMHAuDo4kinDztw5uj5f5Vpy7LtxhusPuo4nKp1qlCsVFEAevTvyg+nzG9Y0+t0TJw31jjC2nNAVx7ffUJkWBRt/VoybILhSRkKpYK2nVty9ed/f8yeXXWIdb5TWec7lY3dZlKsZjmcSxpGARv0ac3dM9fM9lFaWzBs3wzunLzCvk/WGTutANU6NqD1uB4AyJRyqnf05smlO2av8U9kXLmConJlZF6Gz86qc2cyfjY9riWWljiuXk3GxYskzJ1r7LT+Wd5mkOFmSqmjI5YdO5J+Nvtz77/x6fLPjTdYDfMbTZXalYztq1s/Py5m0750Oh3j5o42jrB2G9CZx/eeEhUWbVY2J9IvX0VZtTLyYoYcNj38SP/RNIfEyhK3LStIu3CRmGnzTc5VijKlsBs+EKRSJColNu93IfXM93mSLT/p8umnsHhnR1wjIyPp0sVwCV2n01GpUiVWrlxpUsbb25vRo0czYsQI1GrDSaRp06Z8/PHH+ZIpMSaBjQFrmbBpEnKlnIigcNb7rwagdLWyjFzyMQG+/ty/cpcj6w8ye/8CdBotsZGxLBu2EIDP525n8NxhrD63AZ1Ox62fb/L15pzf1exkrWJOp9oEHPkVtVZHUUdr5vvV5U5YHHO+vc6BIa1wsbFgVU9vFp66QVqmBqVcxsoeDVDJZbxfpzQJ6Zn03nEBrV5PJQ8HJnTI/TzO6KgYRo0IZNeXG1AqFDx7FszwoRMAqFWrGus2LqJJw06GuitdkojwyDz7Fv5Ppcck8v2ErbTdMgaZQk5iUCTn/TcD4Fq9FM2XDuFQ+5zdmf9vREXFMGToePbv24pSqeDpkyAGDhoLQJ3a1dmyxdDJBShbpiRhYRHZ1lXZsqUICgrJdR5tbAJR01fgvmoGEoUc9YswIqcsQ1WlHK5z/AnpOQr73p2Re7ph3box1q2zbmQJHTwJXUJSrjNkJyoqhqHDJrBv7xaUSgVPngYxaNA4AGrXrs6WzcuoV78dAGXKlCQsmzY1b/5K1qyez/XfzyJXKDhy+Bt27Mj945TeNfEx8Swav5R5W2chV8gJDQpj/tjFAFSoXp5JyycwyOev5xl+sW4PM9ZOYee5T5FIJGxfvpP7N3L+JTsuJp654xaxZNs8FEo5Ic9DmTVmPgCValRg+vJJ9Gk7iCcPnrFs+mpW7VqMVCYlMjSKqaNmA7BqzgamLpnI/gs7Abjw3Y/s3XYwx5kAUmISORywhT6bxiJTyIkNiuDAeMPldq9qpei+ZCjrfKfScIAPDl4uVG5Xl8rt6hr33957IScWfEnXBYMZe2oJAHdPXeWXHTmbZ66PjydxyRLs58xBolCgDQ0lYeFC5BUqYBcQQOyQIVh264bM3R1V06aommbd9Bc3fjwpX36J3bRpOH/2meH/99lnaB7k/HPLTnxMPAvHL2P+1tkoFHJeBoUy71X7qli9PJOXT2SgzzCePXjOqhnrWPr5AqQyKVFhUcweNT/Pcuji4omduxTnxbOQKORoQsKInb0YRaXyOE2fQESf4di83xWZhzuWLZtg2TJrGkDUqAASt+3CIfATPPYa5rimnfuRlK/y9lGH+aEwXdbPDxJ9dpPG/qPeK5Hzuab5ZdfcvBs9zkvuow4UdAQzS51y/lix/DI64kJBR8jWg/K5vwEvr1V6lLMRqvyU8vLHgo6QrVY1sn/0UEFK0+XPqHtutFUVK+gIZsaVzNlNW/mt+6N37wLsPs93r4NW7ErBPy7rtLv549rygk/Evnx53bz2zo64CoIgCIIgCKYK02X9/PDufcUSBEEQBEEQhGyIEVdBEARBEIRCQoy4CoIgCIIgCEIhIEZcBUEQBEEQCon/+lMFxIirIAiCIAhCIaGT5M9Pbhw/fhxfX198fHz48ssvzbbfu3eP7t27065dO6ZNm5arx1+KjqsgCIIgCIKQIxEREaxatYo9e/bw1VdfsX//fh4/fmxSJiAggJkzZ3Lq1Cn0ej0HDuT8kZqi4yoIgiAIglBI6JDky09iYiIhISFmP4mJiX+Z55dffsHb2xsHBwesrKxo164dJ09m/QGOly9fkp6eTs2aNQHo3r27yfZ/S8xxFQRBEARB+I/buXMn69evN1s/evRoPvnkk7fuFxkZiaurq3HZzc2NmzdvvnW7q6srEREROc4pOq6CIAiCIAiFRH79udMBAwbQrVs3s/V2dnZ/uZ9Op0MiyZokq9frTZb/bvu/JTqugiAIgiAI/3F2dnZ/20nNjoeHB1evXjUuR0VF4ebmZrI9KirKuBwdHW2y/d8SHdfX7JxWuqAjmBkz60lBR8hW+OL2BR3BzMkF8QUdwUziKvNvr++ChctiCzqCmZjhNQs6gplWNYYWdIRsnb+xraAjmNFFvyjoCGYyNy4r6Ahmeh61LOgI2TrV993L9dE+bUFHMHOwoAPw7v0BgkaNGrFu3TpiY2OxtLTk9OnTzJs3z7jdy8sLlUrFtWvXqFOnDseOHaNZs2Y5fj/RcRUEQRAEQSgkdLm4zJ4f3N3d8ff3p3///qjVanr27En16tUZOnQoY8aMoVq1aixfvpzp06eTnJxMlSpV6N+/f47fT3RcBUEQBEEQhBzz8/PDz8/PZN22bVlXhipWrMihQ4fy5L1Ex1UQBEEQBKGQyK+bswoL8RxXQRAEQRAEoVAQI66CIAiCIAiFxLt2c9b/mhhxFQRBEARBEAoFMeIqCIIgCIJQSOjerYcK/M+JjqsgCIIgCEIhoeO/3XMVUwUEQRAEQRCEQkGMuAqCIAiCIBQS4nFYgiAIgiAIglAIFPiIa0hICO3bt6dMmTIA6HQ6UlJS6Nq1K2PGjAHg4cOH+Pn5sXbtWtq1a2fct1+/foSHh2NlZYVWq8XGxoYxY8bQqFGjfMt78Wkk6y4+IFOro5yrLbN8qmGjUpiUeRSVyJLzd0nO0CCVwvS21ajsbk9Shpo5p27xPDYZnR78qnjxUf0yeZKrWsvadA/sjVypIOR+EDsnbSI9Oc2sXMv+7WnR1we9Xk9UcAS7Jm8mKSbRuN2xiDNTji5kboeJJMcl5Uk2gIvPo1l36Ymh3pxtmNW6EjZK0+b3KDqZJT8+IDlTg1QiYXrLilR2s8uzDAAebWpSZWovpEo5Cfde8Lv/VjTZ1NPflbP0dKLFt3M513oKmbG5q6eLz6JY98tjQ9242DCrdRVsVG/WTRJLfniQ1aZaVTapm/CkdPof+I39vb1xtFTmKs+fyresiU9gL2RKORH3X3B00lYysqmrGl0b02R4J9DrUadl8s3snYTeembcbl/EieFH57K+wxRSc9GmZJXrovIbgESuQBv6nPS9ayDdPA+AvJo3Fv3Gkxz4vnGdookvioY+oFChe/HYsL9Gk+M8r2vYugHDJw9BoVLw5N5TFk9YTmpy6lvLN23XmOlrJ9OuguEvzdg62DJh0VjKVSlLemo6J/af5PBnX+VJtrfR6/VMm7+CcmVK8lHvnvn6XgA/Xr3Jml1HyVRrKF/SizmfDMDGytKkzJ5vzrP32wtYqBSUKlqEacN7Y29rbdweHhVL38DFHFwzA0c72zzJ9a62q/qt6vHR5I9QKBU8u/eMVQGr/7JNNWzXkMDVE+lWqYfZthlbpxMbEcOGGZtynEdWsQ7K9n2QyBXowoJIP7QBMrKvJ1nl+lj0GkvKzD6GFZY2qLoNR+ZZEn1mBpqr51H/ciLHWV5Xu1Udegf2R6FUEHT/OZsC15GWzXmq/QBffPp2QK/XExEUzubJG0iMSUAqlTJ47jAqe1cF4PcLV/liwed5ki2//NdvznonRlzd3Nw4duwYx44d4/jx4+zdu5cdO3bw5MkTAA4fPkz79u3Zv3+/2b7z58/n2LFjfPPNN0ybNg1/f38eP36cLzljUzOYdfImyzrX5qtBzSlqb8Xaiw9MyqSptYw6fIUB9Uqzr38ThnqXY9q3fwCw8eeHuNtacGhgM77s24iDN4K5ERqX61w2TnYMXDaKTSOXM6P1WKJfRNB9Uh+zcsWrlsZnmB+Le0xndrsJRDwLo8uEXsbtDbs3I/DAXBw9nHKd6XWxaZnMOneXZR2q8VXfhhS1t2TtL6afUZpay6ivrzOgdgn29WrA0HqlmHb6Tp7mUDrbUnv1cC4PXs2ZJhNJCYqg6vRe/7pc8fea0uyrmVgWyX09xaZmMuvsHZZ1rM5X/Rsb2tQvj0zKpKm1jPrqdwbUKcG+3t4MrVeaaaduGbcfvxfK4MNXiErJyHWeP1k52dJ92XD2jlzNmtYTiX0Rgc8k87pyKV2E9lN7s7P/Ejb4TuX7dV/Re7O/cXvN7k0ZcmAmdrlsUxIbOyz6jCNtxyJSFoxAFxOOym9g9mVdPVF1HQSv/T1vefWGKJr5kbphOqmLRoFCibJF11xl+pODkz1TVgYwfdhs+jQbSGhQGCOmDnlr+aKlvBg1Y7hJvk9mjyItJZ1+LQYx3G80DVrWp1Eb7zzJl50nz4MZPGYKZ77/Kd/e43WxCUnMWLuTlZNHcHzTPIp6uLJ61xGTMr/dvM+OIyfZNm88B1fPpGmdqszZ8IVx+9fnLzFw6jIiY+PzLNe72q7sneyZsGI884bNZ0iLoYQHhzNoykdvLe9Z0pNh04cgyeZv2L83oidV61fNXSBrO1TvjSb9i2WkLv8EXWwEqg79si0qcS6CquMAk3Uqv48gM43UFWNJ2zAZWYVayCrWyV0mwM7JjlHLxrB8xGLGthpFRHA4fSb3NytXumoZ/IZ2ZXr3SUzwGUPY81B6TegNQLPuLfAs48UEnzFMbD+Wyg2q4u2bf4NfQu69Ex3XN0VFRaHX67G2tkatVnP8+HHGjRvHnTt3CA4Ofut+1apVo0OHDhw8eDBfcl0OiqaKhz0lHA0jAO/VKM5390LR67NmnFx+HkVReyualnYDoEUZN5b41QIgsGVl/JtXNPwfkzNQa3VmI2s5UaVpdZ7ffELk83AAvt99mgZdmpqVC779lOktxpCWlIpcpcDRw4mUVyNg9m6O1PSpz+r+83Od502Xg2Op4mZHCQcrAN6r6sV3D8NN6+1FLEXtLWla0gWAFqVcWNI+lyfbN7g3r078H09JeWaop2c7z1Kse+N/Vc7C3YEi7evwc6/FeZLpcnAMVdztKeHwqk1VK8p3D96om+AYQ5sq6QpAi9KuLOlQHYDI5HS+fxrFxi618yTPn8o1rc7Lm0+JedWmftt9lhpdzOtKk6nm6KRtJEfFA/Dy1lNsXB2QKWTYujlQyacOn/fPfV3JKtZGF/wIfVQoAOqfTqCo28K8oEKFZb8JpB/91GS1vH4r1BeOQmoy6PVkHNiA+sqFXOcCqNe8LvdvPCDk2UsAvtr1NW27tc62rMpCxYy1U1g/x3Tkq0K1cpw6fAadTodGreHSuV9p0bFZnuTLzr7D39DDrx0+Lc3PE/nh0vW7VC1bghKe7gC83745J3741aSd330SjHeNSni4OALQumFtfrhyE7VaQ2RMPBd+/YPNs8flaa53tV3VblabBzceEvrckOubL76hVdeW2ZZVWaiYtDaALXO3mm2r7l2Nui3q8O3ub3OVR16uJroXj9HHhAGgvnwSea1s2o5CiUWvsWR887nJaqlXGTS//wB6HWg1aO9fQ16tYa4yAVRvVosnNx8T/tyQ6/TukzTt0tys3NPbTxjTYiSpSakoVAqc3J1JevW7TyqTorK0QK6Uo1AqkCvkqDPUuc6Wn3T59FNYFPhUAYDIyEi6dOlCRkYGcXFxVKtWjfXr1+Ph4cHZs2fx9PSkVKlStGnThv379xMQEPDW1ypXrhzff/99vuQMT0zH3dbCuOxma0FypoaUTI1xukBQXArO1ipmn7rJw6hEbFUKxjUzdFYlEglyiYRpJ/7g7MNwWpZ1p6SjTa5zOXq6EBcWbVyOC4vBys4KCxtLs+kCWo2Wmj716L94BJpMDcdWGkaxEyLj2DRiea6zZCc8OR13m9fqzUZFcqaWFLXWOF0gKD4VZysls8/d5WF0MrYqOeMalc3THJaeTqS+jDEup4XGorCzQm5jaTYN4G3l0iPi+XXw6jzLZKgblXHZUDcaUjK1xi81xro5e4eH0UmGNtW43KvyFqzoWCPP8vzJ3tOJhLCsOkgMi8XCzgqVjaXJdIH4kGjiQ7LaXofpfbl/9hpatZakyHj2jlidJ3mkDi7o4rLeRx8fjcTSGiwsTS7rWvT6mMxfTqILfW66v5sXuqCHWI6cg8TOCe3TO2Qc+yxPsrl5uhIRGmVcjgqLwsbOBisbK7NLuwFL/Tm2+xue3Htqsv7u9fu069GWW1duo1QqaN6xKVp13kxjyM60CaMA+OW33/PtPV4XHh2Lh0vWqLu7iyPJqemkpKUbpwtUK1+KPd+cIzQyBk83Z46d+xm1RkN8UjJuzg6smjIyz3O9q+3K1dOFaJM2FY21nXW2bWrM4k/49svveHbvmcl6J3cnRs4ZwbR+0/Ht45urPBIHZ/QJr9VTQgwSC2tQWZpMF1B1H4H619Powp+b7K978RB57eZon98HuQJZ1Yagy337diniQnRoVq6YsGis7KyxtLE0my6g1Wip59OAEUtGo8lUs3/lHgC+P3iehr6N2fLbZ8hkMm5cvM61c1dynS0/iZuz3gF/ThU4ceIEXbp0Qa/X07ixYXTn8OHDdOrUCQBfX1+OHDlCZmbmW19LIpFgYWHx1u25oUef7aUYmTRrnUan5+dnkfSoXpw9fZvQq1ZJPjlyhUyN1lhmgW9NLoxqQ2K6mq2XHpm93r8llUjQZ9OSddrsv0P9cfoK42sP5vjqA4zbNT3b/1Ne0utNrq4ZySSv15uOn4Ni6FHFiz0f1KdX9WJ88s0NMt/yf8gJiTT75q7X6XJULi8Y6ubv2pSOn4Oi6VG1KHt6eRvq5uvrZGry7zuyRCL9V21KYami14axOJd056vJ2/IjENmerl/7TBRNfEGrRXP5jPnuUjmyirVI+2wxqcv9kVjZoupkfkkxJ6RSKdlV1pt11XVAZ7QaLSf2nzQru2HuJtDr2XFqCwt3zOXqj9dQ52PH9X9N95aTgPS1Y61OlXKM6OXHuEUb6TV+ARKJFHtbaxTyfBxfeUfblVQqzbZzotVqTZY79e+ITqvl9P7TJutlchlT1k9m85ytxEbmfjoakuzb+Ov1JPduDzodmqvnzYplfPM56MFy7Aos+k9C++hGnswDlkgl/+jY+9OV078yuFY/Dqzay/QvZiORSHhvXC8SYxMYWmcAI7wHYeNgS6ehXXKdTcg/78SI65+kUimBgYF07dqV7du30717dy5evMidO3fYtWsXer2exMREzpw5Q8eOHbN9jQcPHhhv9MprHraW3AqLNy5HJmdgZ6HAUpFVja42Kko52VCtiAMALcu6M/f0LUIS0ghPSqOsiy1uNhZYKeW0r+jJuUfhOcrS2f8DaratC4CFjSUvH2RNoXDwcCIlPpnMNNM5j64lPLB3deDx1fsA/HTgAn0XDMPK3pqU+OQc5fgnPGxV3IpIMC5HJmdgp5JjqZBlZbNSUcrRmmoe9gC0LO3K3PP3CElIo7STtdlr/lOVAntSxMdwGV1ha0XCvax6sijiRGZcMtpU03pKfRmNY+0yf1suL3jYWnAr/G/qxvqNuinjxtxzdwlJTKW0U+5H7P/U2r8nFdsa6kplY0XEa23KzsOJ1Phk1GnmdWDv6Uzf7ROJehzK9l7z0eTDZTZdXBTykhWMyxJ7Z/QpSZCZlUfRoA0oVFgFrgW5HBRKrALXkrZ5NrrEGDQ3fjGOoqmvXEDV/sMc5xk8cSCNfQyXOq1trHhyP2u0y8XDhcS4RNLT0k326fBeOywsVew4vQWFQoHKQsmO01sI6DcVmUzGxgVbSYo3XL7s90lvXj5/meN875oirk7cephVR5Ex8djZWGFlkXW1ISU1nbpVy9O9bRMAImLi2LDnmMnNWXntXWpX/Sf0w7ttAwCsbKx4/uC5cZuLhwtJ8UlkvHH8+bzXFpWlio0n1yNXKFBaKNl4cj3rp2+kSHEPhs8cCoCjqyNSmQyFSsnqwDX/Ops+PgpJsXLGZYmdM/rUJFC/Vk91WxqmVIxdgURmqCfLsStI3zEfZDIyTuyCNMPvGUXLHuhicva774Pxvanbph4AlrZWBN8PMm5z8nAmOZt68ijhgYOrI/ev3gPgwoFzDFs4Emt7G+q392bHrG1o1Bo0ag0/HDqPt28jvtl2LEf5/hf+6zdnvVMdVwC5XE5gYCBjx45Fo9Hg7e3Np59mzStat24d+/bty7bjevPmTU6dOsWhQ4fyJVvDki6s/OEeQXEplHC05tCNIFqUcTMp07iUGyt/uM/diAQqu9tzLSQWCeBlb8muq085/yicaW2qotbqOP0wDO8SLjnK8vWq/Xy9ynCZ39bZjtknV+BW0oPI5+E07+PDH2fML3U4uDkwdO045voGkByXhHfXJrx8GJyvnVaAhsWcWfnTI4LiUynhYMWh2y9pUcrVpEzjEs6s/PkRdyMTqexmx7WXcUgk4GWXu9Hze0sPcW+poT2oXOxofWEJ1qU8SHkWTun+rQk7dc1sn8gfblFtdt+/LZcXGhZ3ZuXFhwTFp1DCwZpDt0JoUfqNNlXChZUXH2ZTN5ZvedWcObfqEOdWGerK2tmOT04uwbmkBzHPw6nXpzX3z5jXgdLagsH7ZnD98I9cWHPEbHte0d6/jqrrYCSunuijQlE08UVz67JJmdQV443/lji5YT1lA6lLDU8m0fzxM/JaTVFfOg3qTOTVG6INzvnVju3LP2f78s8BcHB2YOe5TylayouQZy/p2s+Pn07/YrbP8E4fG//tUdSdnee3M8hnOADDJg/GysaK1dPX4ejiSKcPOzBrZN7PNy8oDWtWZvmOgwSFRlDC052DJ3+gZf2aJmUiY+MZOnMlX62fg42VJdsOnqBD03r5ekXoXWpXu1Z8wa4VhpvR7J3t2XJmE54lPQl9HkrHvr5cOn3JbJ8xfuOM/3Yv6saWs5sZ1X40AH0bZI389vXvg72TXY6fKqB9eANlx4FInIugjwlD4e2D5q7p75i09ZOM/5Y4umLlv5q0NRMAULbrAxaWZB77FImNPYp6rUnfszJHWfav3GO8zG/nbM+KU2vxKFmE8Odh+PRpz5XTv5nt4+DmxLh1EwjoMI6kuCSadG1O8INgkuOTeHb7KY06NubOpVvI5DLqtq3Pw+sPzF5DeHe8cx1XgGbNmlGrVi2OHj3K5MmTTbb16dOHTz/91PjEgenTp2NlZWWcIrBq1SqKFi2aL7mcrFTMbledgOO/o9HqKOpgxbz2NbgTHs/c07fY378pLtYqVnapw6Kzt0lTa1HKpKzoXBuVXMaE5pWYf/Y27+28CEDLch70rl0y17mSYhL5LGAjIzZNQK6QExUUwfbx6wEoUa00A5aMZK5vAI+u3OfbDUeYuG82Oq2O+IhYNg5dluv3/ztOVkpmt65MwHe30Oh0FLWzZF7bKtyJSGTuhXvs79XAUG++1Vn0w4OseutQHZVc9vdv8A9lRCdybdwWGnw6FqlCTkpQBFc/MZzIHWqUovaKoZxvM/Uvy+U1Jysls9tWJuDETTRaPUXtLZnnU5U7EQnMPXeX/b0bGuqmU00WXbiXVTcda+Rp3bwpJSaRIwFb6LVpLDKFnNigCA6PN9SBZ7VSdFsylA2+U/Ee4IODlwuV29Wlcru6xv139F5IWh5+IdInJ5C+Zw2Wg6aATI4+Ooy03SuRFiuLxYdjjB2Jt1FfPIHEyhargNVIJFK0IU9I/+rTv9znn4qPiWfR+KXM2zoLuUJOaFAY88cabkirUL08k5ZPMHZQ3+aLdXuYsXYKO899ikQiYfvyndy/8f/nl6ezgx3zxgxkwpItqDUainm4smDcIO48es7sDbs4uHompYp6MLhHe/oELEKn01O7clmmDMv5qPg/8a62q4SYBFZMWMWMLdOQK+SEBYWxzN9wD0K56uXwXzrW2EH9X9CnJJBxcD0WfQOQyOXoYsJJ378WqVcZVD1HGTuob5N54TAWvcZi6b8aJJB5Zh+6kNw//ScxJoGNAWuZsGkScqWciKBw1vuvBqB0tbKMXPIxAb7+3L9ylyPrDzJ7/wJ0Gi2xkbEsG7YQgM/nbmfw3GGsPrcBnU7HrZ9v8vXmo7nOlp8K041U+UGi12c3ceW/KXWr/98X+h8buzCkoCNka80E178v9D92ckF8QUcw035G3j5aLK8sXBZb0BHMTOqc+PeF/sd8D2f/nMqCdv5GPswjziVd9IuCjmAmc2P+fzH/t3oe1f59oQJwuHfeXsHJCx/te/fq6mBQwU8h2Fa0b7687tCQ3fnyunntnRxxFQRBEARBEMz910dcRcdVEARBEAShkND/x2/OeicehyUIgiAIgiAIf0eMuAqCIAiCIBQS//WpAmLEVRAEQRAEQSgUxIirIAiCIAhCISFGXAVBEARBEAShEBAjroIgCIIgCIXEf/3h+6LjKgiCIAiCUEjoxOOwBEEQBEEQBOHdJ0ZcBUEQBEEQCon/+s1ZouP6uuTkgk5QaEiKFi/oCGYypAkFHcGMxN6+oCNkK5bIgo5gRmpvVdARzKTp3r02BaCLflHQEcxIXYoVdAQhFyS2797xF62NKOgIwjtIdFwFQRAEQRAKif/6iKuY4yoIgiAIgiAUCmLEVRAEQRAEoZD4rz8OS4y4CoIgCIIgCIWCGHEVBEEQBEEoJP7rz3EVHVdBEARBEIRCQtycJQiCIAiCIAiFgBhxFQRBEARBKCTEzVmCIAiCIAiCUAiIEVdBEARBEIRCQvcfH3MVI66CIAiCIAhCofDOjLjOmTOH33//HbVaTXBwMGXKlAGgf//+ODo6MnLkSA4fPkzVqlUBiI2NpXPnzixbtoyGDRsCcP36dSZPnsyhQ4ewtbXNl5zSUtVQNukOMjm66BAyT++EzHSTMopm7yErXwfSUwHQxYWT+e1WkEhQtOqNrGh5ALTPbqH+8VCe5KrWsjbdA3sjVyoIuR/EzkmbSE9OMyvXsn97WvT1Qa/XExUcwa7Jm0mKSTRudyzizJSjC5nbYSLJcUk5zvPj/ResO3mNTI2WckWcmN2jMTYWSuP249ce88VPd4zLyemZRCakcGrKB1hbKFj01WVuh0Sh10O1Yq5M6eqNhSL3zdWzdU1qTPkAqUpO/N0X/DphG5ps6umflGvy6TjSIuK4Nm1nrjL9+CiMdedvG+rK3Z7ZfnWxUSlMyjyKSGDxqeskp2uQSSVM71ibykUcmXjwEsFxycZyofEp1CnuyppejXOVCaBqy1p0edWmXt4PYvekzdm2qfpdm9JmuB96PajTMjgw+zOCbz3Fyt6aDxcMpWilkmSkpXP54Pd8v/NkjvPIytdC2bY3yBXowoPI+GozZJjmUbbvh6xKQ/RphjrRR4eScWC1cbvEzhmL4QtI2xAAqTlv329q3Loho6cOR6lU8OjeE+aNX0xKcqpZuXGzPqaNX0sS4gzHXNCTYKaOmI21rTUzV06mZNniSKRSvj3wHTs37Mlxnh+v3mTNrqNkqjWUL+nFnE8GYGNlaVJmzzfn2fvtBSxUCkoVLcK04b2xt7U2bg+PiqVv4GIOrpmBo13+nE/fpNfrmTZ/BeXKlOSj3j3/J+8pq1wXld8AJHIF2tDnpO9dA+nm7RxAXs0bi37jSQ5837hO0cQXRUMfUKjQvXhs2F+jyXWu+q3q8dHkj1AoFTy794xVAatJzaZN/alhu4YErp5It0o9zLbN2Dqd2IgYNszYlOM8srI1UbZ833D8RQST8c2nkPnG8demN7JK9dGnpQCgjwkj4+h6kzKqnmPRJ8WReWpXjrO8zrtVfYZMGYxCqeDpvWcsm7jiL+upcbtGTF0ziY4VuwAwe8sMvEp6Gbd7FPPgxuWbTB80M0/y5QfxVIF3xKxZszh27Bhbt27Fzc2NY8eOcezYMXr06MGRI0do3749+/fvN5Z3cnJi/vz5TJ06laSkJOLj4wkMDGTp0qX51mnF0gZVu4FkHN9E+ucz0CdEo2jS3ayY1LMMmd9uI333XNJ3zzV0WgFZpYZIHT1I3zWb9C/mIi1aAVm5OrmOZeNkx8Blo9g0cjkzWo8l+kUE3Sf1MStXvGppfIb5sbjHdGa3m0DEszC6TOhl3N6wezMCD8zF0cMpV3lik9OZdfAnlvdtybGJPSjqZMOak9dMyvjVKcuBsV04MLYLX472w8XWksldvHG2teTT8zfQ6nQcHNuVg+O6kKHRsOPCzVxlAlA52dJg1TAuDl3Nt00DSA6OpObUD3JUrtKoTrg2qJDrTLEpGcz6+irLe3pz7OP2FHWwZs25WyZl0tQaRu65yMCGFdg/rA1Dm1Zi6tHfAFj+XkMODGvLgWFtmdmpDrYWSqZ0qJXrXDZOtvRbNoqtI1cwp/U4ol9E0nVSb7NybqWL0G1qX9b3X8gi30C+W3eEYZsnAtBz5kAyUtKZ29afZd2mUblFTaq2qp2zQFa2qLqNIn3vCtLWjEMXF2noxL5BWqwCGQdWk74xkPSNgSadVnnNZlgMmYPULnft+00Ozg7MWj2FwCHT6dG0Dy+DQhk9bUS2ZavXrcrUEbPp03YQfdoOYuqI2QCMDBxCRFgkH7QcQP/2Q+kxoCvV6lTJUZ7YhCRmrN3JyskjOL5pHkU9XFm964hJmd9u3mfHkZNsmzeeg6tn0rROVeZs+MK4/evzlxg4dRmRsfE5ypATT54HM3jMFM58/9P/7D0lNnZY9BlH2o5FpCwYgS4mHJXfwOzLunqi6joIJFkP0ZRXb4iimR+pG6aTumgUKJQoW3TNdS57J3smrBjPvGHzGdJiKOHB4Qya8tFby3uW9GTY9CFIJOYP+HxvRE+q1q+au0BWtqj8hpJ+aA1pmwLQxUeibGV+7pQWLUfG0Q2kfzqN9E+nmXVaFQ07IiuW+/Pmn+yd7AlcOZFZw+YyoPkgwoLDGDZl8FvLe5XyYuSMYSb1NHv4PIa2G8HQdiNYHriS5MRk1kxbl2cZ84M+n37yWmhoKH369KF9+/aMHDmSlJQUszKRkZEMHjyYLl260K1bNy5duvS3r/vOdFzfJjY2lsuXLxMQEMB3331HcnLW6FKLFi1o1qwZ8+fPZ+bMmXzwwQfUqFEj37LISlRBF/4cfXwkAJob3yOv1OCNQnKkbsWR12uHRf9ZKP1GILF99YtSKgWFEmQKkMmRyGSgVec6V5Wm1Xl+8wmRz8MB+H73aRp0aWpWLvj2U6a3GENaUipylQJHDydSXo2q2rs5UtOnPqv7z891nkuPXlKlqAslXOwBeK9BRb67/gS9PvtD4/Pvb+JkbUHPBhUBqF3Kg6GtaiCVSpBJpVTwdCY0Pjnbff8Nj+bViPnjKcnPIgB4vPMsJbqbj0z+XTm3hpUo0qI6j3edy3WmS08jqOLpSAlnw5et9+qW4bvbwSZ1delJBEUdrWlarggALcoXYWkP03an1uqYeewKAT418LC3ynWuSk1rEHTzCVGv2tSPu09TL5s2pcnU8OWkzSRGxQMQdOsJdq4OyBQyilctxa9Hf0Sv06NVa7l9/jq1fL1zlEdWtgbal0/QxxryaH47jbzGG3lkcqRFSqJo2gXL0ctR9ZqAxN4ZAImtI7JK9UjfuSBH7/9XvJvX4+4f93nxLASAQzu/okP3tmblFEoFFaqWo//Hvdl3/nOWfjoPdy83AJbPWMOaORsBcHF3RqlUkpxkfpL/Jy5dv0vVsiUo4ekOwPvtm3Pih19N2tTdJ8F416iEh4sjAK0b1uaHKzdRqzVExsRz4dc/2Dx7XI7eP6f2Hf6GHn7t8Glp3s7yi6xibXTBj9BHhQKg/ukEirotzAsqVFj2m0D60U9NVsvrt0J94SikJoNeT8aBDaivXMh1rtrNavPgxkNCnxtyffPFN7Tq2jLbsioLFZPWBrBl7lazbdW9q1G3RR2+3f1trvLISldDG/oMfZzhnKi5dg551UZvFJIj9SiBomFHLIctQtVjDBI7Z+NmaYlKyMpUR/37+VxleV295nV4cOMhL5+9BODYruO07tY627IqCxXT1k5i45wt2W6XK+RMXhXIhtmbiAqLyrOM/2Vz5syhd+/enDx5kqpVq7Jx40azMkuXLqVVq1YcO3aMFStWMHHiRLRa7V++7jvfcf36669p3LgxRYsWpWrVqnz99dcm2ydPnszVq1eJiYlh8OC3f9PKCxJbR3RJccZlfVIcEpUVKC2yylg7oHtxH/XPX5G+aw66sKeounwMgPbOz5CRiuWwpVgOX44uPhLt09yPJDp6uhAXFm1cjguLwcrOCgsbS7OyWo2Wmj71WHppM+XqV+bng4aTbEJkHJtGLCfiWViu80QkpODhkHXJ0d3emuQMNSkZ5p30uJR0dl28w8ROWR2xRuW9KOFq6PSGxiWz56c7+FQrletcVl7OpIbGGpdTw2JR2lkhf6Oe/qqcpbsDtef245fRG9Hrcn/BJiIxFQ+7rI6mu50lyRkaUjKzLjUGxSbjYm3B7ONX6f3pOUZ8eRGtzvRLwNHrz3C1taRVRS/ygqOnM3FhMcbl+LAYLLNpU7EhUdy+cN243HP6AG6evYpWreX5H49p0K0ZUrkMlZWKWh0aYO/mkKM8Untn9AlZefSJMUgsrECVlUdi64j22W0yz+4jbf1EdC8eouoTaCifFEfG3hXoY3Lfvt/k7ulGRGiEcTkyLAobOxusbUy/QLi6u3D159/ZtHgbvVoN5Na1u6z8bJFxu1arZe76Gey/sJNrv1wn6HFwjvKER8fi4ZI1quzu4khyajopaVlTmqqVL8VvN+8TGmmo02Pnfkat0RCflIybswOrpoykpJd7jt4/p6ZNGEVHn+w7Z/lF6uCCLi7r3KmPj0ZiaQ0Wpu3cotfHZP5yEl3oc9P93byQ2NhjOXIOVpPWoezQ2zhNJTdcPV2IDs3qPEWFRWNtZ42VjfmX0jGLP+HbL7/j2b1nJuud3J0YOWcES8YsRafN3blKaueMPvH14y/WcPwp3zj+nt8l8/tDpG2dgu7lE1Tv+xu22Tig9OlLxlebQJ93F7pdPV2JNKmnKGzeUk/jl4zj+O5veXLvabav5durPTERMfx08uc8y5dfdPn0k5iYSEhIiNlPYmIi/5ZarebKlSu0a9cOgO7du3PypPlUsbZt29KpUycASpQoQUZGBqmpb5/qAYWg43r06FHjf8rX15d9+/aZbA8KCkKtVvP06VMiIiKye4m8I5GS7YD6ax0YfWI0GUfXoo8xfFPWXD2NxN4ViZ0LioZ+6FOTSNs8gbStgUgsrJHXMR+Z+bekEgnZDWa+7WT1x+krjK89mOOrDzBu1/RsLy/lhk6vJ7tXlEnN1x7+7QEtKhenqLP59I67IdEM2nyCDxpVolmlYrnOJZFIyK6i9G/U09vKSSTQaONors/eTXpkfK7zwKu6yqayZK+t1Gh1/PQ4nB61S7FnSGt61SvL6L0/kanJ+la6+9dHDGlSMU8yAUgk0mxHyN/WppSWKoZs8Me1pDtfTt4MwOEFu9Dr9Uz9dgnDtwZw/6ebaDP/+pv02wP9g2MvPoqMLxajj3wBgPrn40gd3ZE4uObsPf8hqVSa7fGnfaOuQl+EMbZvIE8eGDoYX2zai1dJLzyLFTGWmTl6Hm2q+GHnaMeQ8QNzlEen15Ndo5JKs073daqUY0QvP8Yt2kiv8QuQSKTY21qjkL8ztz38b0gk/F27UjTxBa0WzeUz5rtL5cgq1iLts8WkLvdHYmWLqlP/XMeSSqXZXrp9cySqU/+O6LRaTu8/bbJeJpcxZf1kNs/ZSmxkHLn2tnrSv3H87VuOPspw5UF9+VvD8efojqrbx2Se+RJ9cnzus7xG+g/PU136+6HVaPlu/6m3vlbPoT34Yu2XeZqvsNm5cyetW7c2+9m589/fxxEXF4eNjQ3yV+cUV1fXbPto7dq1w97eMFC1fft2KlWq9LfTPd/ps9SdO3d4+PAhCxYsYNGiRWi1WiIjI/njjz+oWbMmaWlpjB8/nunTp3Pv3j0CAwP5/PPPTU7QeUmfFIPUI2vkT2LjgD49BTSZWetcvJC6FkN773LWjhIJ6LTIytYm88Je0GkhMw3NnUvIy9dBc838hPh3Ovt/QM22dQGwsLHk5YOs0RkHDydS4pPJTMsw2ce1hAf2rg48vnofgJ8OXKDvgmFY2VuTkgeX4v9UxMGG28FZ34IjE1Oxs1RiqVSYlT194xmBnc0vH5+88ZSFX11ichdvfGuWyXGWagE98PIxzCNW2FgSf/+FcZulhxMZcclo36in1JcxONcua1bOrrwX1iXcqDW7LwAWrvZIZFJkKgW/TTS9hPhPFbGz4vbLrNHdyMQ07CwUWCqzDk1XW0tKudhSzctw2a1lBU/mfnOVkLgUSrvacT8sDq1OT90SueugdfJ/n2qv2pTlP2xTYBidHbl9EuGPX7K61xzUr0bWLWwsObpoN6kJhkve7UZ1IzIoPEfZdAnRyItmfSYSWyf0qcmgzsojcS+OzKMEmhsXs3Z8dezlteEBg2nmY5g+Ym1rzZN7T4zbXIu4kBCXSHqa6U2bZSuVoXyVspw4lPXLUyKRoNFo8G5Rn8f3nhAdEUNaahqnjp6lVcfmOcpWxNWJWw+zRt8iY+Kxs7HCykJlXJeSmk7dquXp3rYJABExcWzYc8zk5qz/Al1cFPKSWXMuJfbO6FOSIDOrXSkatAGFCqvAtSCXg0KJVeBa0jbPRpcYg+bGL8abudRXLqBq/2GOsvSf0A/vtoYrT1Y2Vjx/8Ny4zcXDhaT4JDLeOP583muLylLFxpPrkSsUKC2UbDy5nvXTN1KkuAfDZw4FwNHVEalMhkKlZHXgmn+dTZcQg9wz6zwssXM0jCy/fvy5FUPmXhzNLdMRS4mNAxJHN5Rt+rxatkcikYJcSea3//68+dHEATRqa7gh28rGimf3s9q6q4cLifHmx167932wsFCx7dRm5Ao5Sgsl205tZnL/acRExFC2ShlkMhk3LuX+Cuj/gi5vx5qMBgwYQLdu3czW29nZ/eV+3333HYsWLTJZV6JECbNBsb8aJPv888/Zv38/u3fv/tuc73TH9ciRI7z//vvMmTPHuG7y5Mns27ePmjVrMn/+fGrVqoWPjw+tWrXigw8+YMeOHQwZMiRf8mif30XZ7H0kDm7o4yOR12iO9vEfpoX0epQte5H+8jH6xGjkNVqgiwpBnxyHLjIYWfm66F48AKkMWZkaaMOyv2zxd75etZ+vVxluVrN1tmP2yRW4lfQg8nk4zfv48MeZK2b7OLg5MHTtOOb6BpAcl4R31ya8fBicp51WgIblPFnx7W8ERSdQwsWeQ7/ep0Xl4mblElMzCI5JokYJN5P1P9wNZsnXv7JpcDuqFHXJVZZbyw5za9lhAFTOdvieX4xNKXeSn0VQrn9rXp6+ZrZP2A+3qDWrj1m5mGuP+bruGGO5qhO6o3KyzdVTBRqWcWfF2ZsExSRRwtmWQ9ee0qKCp0mZJmU9WHnmBnfD4qhcxJFrQVGABC9HQyfjanA09Uu65nrk/JtVB/hm1QEAbJztmH5yOa4lPYh6Hk7TPm25mU2bUllb4L9vNpcP/8CJNaZPyGjaxwcLG0sOzNqBrYs9jXu1Yvvo1TnKpn18A1X7fkicPNDHhiOv3xbN/Tfy6PUoO36ENug++vgo5PV90IUHoU+Mzf5Fc2HLsu1sWbYdAEdnB/Zd2EmxUkV58SyEHv278sMp8xuM9DodE+eN5Y9fbxL6IoyeA7ry+O4TIsOiGD5xEK18m7EwcDkKpYK2nVvy649Xc5StYc3KLN9xkKDQCEp4unPw5A+0rF/TpExkbDxDZ67kq/VzsLGyZNvBE3RoWi/Pr76867T3r6PqOhiJqyf6qFAUTXzR3LpsUiZ1xXjjvyVOblhP2UDqUsN5QPPHz8hrNUV96TSoM5FXb4g2+FGOsuxa8QW7VhhukLN3tmfLmU14lvQk9HkoHfv6cum0+U0rY/zGGf/tXtSNLWc3M6r9aAD6Nsga+e3r3wd7J7scP1VA+/QWqja9kTi6o4+LQF67NZqHv5sW0utR+vRH++Kh4fir0wZd5At0Lx6QtnassZiiWXckljY5fqrAZ8t38tlywznXwdmB7We34lXKi5fPXuLXrxM/nzKvp1GdPjH+272oO5+d28bQdlk3UNbwrs71X/7IUZ7/T+zs7P62k5qdDh060KFDB5N1arWaBg0aoNVqkclkREVF4ebmlu3+S5cu5YcffuDLL7/Ew8Pjb9/vne24ZmZm8s0337Brl2njHjhwIB988AHNmjXj6tWrHD16FAC5XM6yZcv44IMPaNy4MZUqVcr7UGlJZJz+DJXfCJDK0SdEkXFyO1L3EijbDiB991z0MaFkXtiLqutokEjRJ8eReWKb4f/0/X6UrXpjMXAu6PRoX9xDcyXnjwf6U1JMIp8FbGTEpgnIFXKigiLYPt5wN2eJaqUZsGQkc30DeHTlPt9uOMLEfbPRaXXER8SyceiyXL//m5xsLJnTswkBuy+g1uoo6mzL/PebcSckmjmHf+bAWMNjSIJjEnG1s0QhMx0hX3niCqBnzuGsb+41S7gxtWvDXOXKiEnksv8Wmmwdi1QpJ/l5JJfHGk7kTtVLUX/FUE62nfqX5fKak7UFc/zqEnDosqGunKyZ36U+d0JjmfPNNQ4Ma4uLjQWr3m/EwhO/k6bWopRJWfleQ1RyGQDBscl4OuTtSFlyTCJfBGxi6Kbxxja181WbKl6tNH2WjGCRbyAtBrTHycuVGu3qU6NdfeP+a3vP5dTGowxc9QnTTy0HiYRvVh4g6OaTt73lX0tJJOPIJlQfjkcik6OLjSDj8HqknqVRdh1B+sZA9JEvyPj2Myz6TgKpFH1CLBkH//3o0r8VFxPP3HGLWLJtHgqlnJDnocwaY7jJsVKNCkxfPok+bQfx5MEzlk1fzapdi5HKpESGRjF11GwAVs3ZwNQlE9l/wfAL+cJ3P7J328Ec5XF2sGPemIFMWLIFtUZDMQ9XFowbxJ1Hz5m9YRcHV8+kVFEPBvdoT5+AReh0empXLsuUYTkbKSzM9MkJpO9Zg+WgKSCTo48OI233SqTFymLx4RhjB/Vt1BdPILGyxSpgNRKJFG3IE9K/ytnVl9clxCSwYsIqZmyZhlwhJywojGX+ywEoV70c/kvHGjuo/xOpiWQc34qq5xjD8RcXScaxzUiLlELZcQjpn05DHxVCxqldWLw/3nD8JcaScXRDvsaKj4ln6YTlzNkyA7lCQWhQKIvGLQWgfPXyBCwbb9JBfZuipYoS/iJnV4MKQmH4AwQKhYK6dety4sQJ/Pz8+Oqrr2jWrJlZuc8//5xff/2VvXv3/uNOs0T/tlu9/4NSVw4t6Ahmxq6NL+gI2Vq7KveP8cprX3186+8L/Y91XVqyoCNka8L0nI0K5adl/Qo6gbnmn+b9zVx54ecLuX/6R16TuuR+HnpeS5/71x3PgtDzaN5PXckLR4Y7/32h/7FOm/P5vpUcuBDy76f25bVpJc0fBZgXFjzP+bOjs/Py5UsmT55MTEwMRYoUYeXKldjb27N3714iIyMZM2YM9evXx8bGxqTTunXrVtzd335z6Ds74ioIgiAIESt0HAAAeg5JREFUgiAUTl5eXnzxxRdm6z/8MOvqzpUr5lPQ/o7ouAqCIAiCIBQS4i9nCYIgCIIgCEIhIEZcBUEQBEEQConCcHNWfhIjroIgCIIgCEKhIEZcBUEQBEEQCon/9nir6LgKgiAIgiAUGuLmLEEQBEEQBEEoBMSIqyAIgiAIQiEhbs4SBEEQBEEQhEJAjLgKgiAIgiAUEv/t8VbRcTWR9PW79/fbY/R2f1+oAGQcOFXQEczEyLwKOoKZ4Pm/F3SEbMXrLQo6gpm40wkFHcFMW1Wxgo6QrcyNywo6QqFgMXNtQUcw0+zYjIKOkK3MGyEFHcFM2n/9LiQhW6LjKgiCIAiCUEj81/vzouMqCIIgCIJQSOj/45MFxM1ZgiAIgiAIQqEgRlwFQRAEQRAKif/6VAEx4ioIgiAIgiAUCmLEVRAEQRAEoZAQf4BAEARBEARBEAoBMeIqCIIgCIJQSPy3x1tFx1UQBEEQBKHQEFMFBEEQBEEQBKEQECOugiAIgiAIhcR//XFYf9txDQkJoX379pQpUwaJRIJarcbNzY3OnTvz+eefAxAcHIyLiwtWVlYULVqUDRs2UKFCBSpWrAiAXq8nKSmJpk2bMmvWLGQyGQBxcXE0a9YMf39/Bg0aRFxcHAMHDgQgOjoa/q+9+w6Ponj8OP6+mt5DCB0EpHwBBYHQe0soQVDpRem9JgQIvUlHCEVABUEBKQrSuyJIExEQQk8CpJLec7nb3x8HR45LKJcEyM95+fA83u7s3id7s3OT2dkN4OrqCsCGDRuYP38+tWvXplOnTgDs2bOH9evXo9VqkcvltGnThkGDBqFU5l9/XF2nDrYDBiBTqci8d4+EBQuQUlKMyli2bIl1ly76nz0tjcQVK8i8eROZnR32Y8agLFcOKS2N1AMHSP355zzJ9VGzmvTw7Y1KrSQ4MJiVvstJTUo1KefZpy2te3qCJBEeHM5qvwDio+OxdbBl0JwhlK5chvTUdI5vP8r+DfvMzqOsXgerrv1BqUIbco+UtQsh1fg4qVt1xKKlN0gSuohQUtYtQkqIA5kcq89Hoqz0AQCay+dI+2GN2VmyKtXsQ+r6fYZCrSL6RgjHfNajyeY4PdViySCibz7g76/3A6CwVNF4dl8Kf/geICPi8l1+89+ANk1jdiabxrUoNPZzZGoV6TfvEz55GbrklGzLun85jvRbQcR+uxMAuYMthacNx7JSWXQpacT/fIS4zXvMzpLVh80+oqtvT5RqFQ8Cg1nrG5BtnWrVx5MWPdsgSRARHM56v1UkRMcD0KJXG5p2bYHa0oL7V++y1jeAzIxMs/JY1vfAfkh/ZGo1mjv3iJ2zEOm542TdpgW2PbuAJCGlpRO3eAWawFsA2HTugE2Htsgs1GQE3iJ2ziLQmP+5ZVWh6Ye09u2KUq0kPPABOyesJT2bY/Vhx/o0GtQOSZLQpGbw6/SNPLp6Hws7KzrPH0ihskWRyWVc2nmK39f8anYeReWaWLTvg0ypQhsaRNqWryAt+3qurFoHy15jSfL9zLBM1cALVd1WoLJA9+COfvtM8z63dznTq5IkicmzF1O+bGk+7/7JG3nPcs0+pIlvF5RqJZGBD9jru46MF7RV7RcPIvLmA86t1bdVMrmM1jP7UrJOJQDunrjMsTk/mp1HWaMOVt31333a4Hskr15g0qZbtPkYi1YdQAJtxCNS1ujbdJtxM5C7FzOUU7i5o7n+D8nzJ5ud56l6zeswdOIAVBYq7ly/x5xxC0hJMm0/R04dQrP2TUiISwQg5G4I/oNnGta7FS3E+l9X0atlf+Jj4nOdS8g/rzRVwM3Njd27d/PLL7+wb98+KlSowKlTp9i9eze7d++mSpUqzJ49m927d7Ny5UrDdk/X79mzh19//ZXff/+dP/74w7D+119/pVmzZmzbtg1JknBycjJs07VrV7p27Wp47eTkZJRp165drFu3joCAAPbt28eWLVu4ceMGU6dOzaNDY0rm4IDDhAnET51KdO/eaENDsR040KiMokQJbAcPJs7Xl5j+/UnetAnHmfqTw27YMKTUVKL79iVm6FAsPDxQ162b61z2zvYMXziShYPnMaLZUCJCwunl18ek3HtVyuI9oCOTOvkyutUIwoJC6TauBwCfT+1Pakoao1oMx6+jD9WbfMRHzWqalUdm54D1IF+Sl04jcVwfdJFhWHV77jiVeR/Ldl1InDqcRN8v0IY/xPLTLwBQN2yJvGgJEn37kejXH2WlD1B5NDYrS1aWznY0XzyAAwO/4ocmPsSHRFJvYpdsyzqVK0rHrRMp27aW0fKaI7yRK+RsaTmJra0morRU89GwDmZnUjg54D53LI9Gzua+5wAyHoTjOu5zk3Lq90pQfMM87Fo1MFruNnEQupQ07rcdRHDXMdg0rIlNk9pm53nKztmeQQtHsGzwAsY3G05ESDhd/XqZlCtT5T3aDujItE4TmdBqFOFBoXw6rhsAtdrUoXXftsztPh3fFiNRW6rx7GfesZI7OuDk70vMxOlEfNYH7aNQHIYOMCqjLFkChxGDeDxqApG9BpL43WZc5s8AwLJJQ2w//ZioEeOJ6PYFMksL7LrlTQfExtmOTxYO4ochy1jSfDwxDyJoM6GrSTnX94rgOak73/WezwqvSZxY8Qs914wBoNXYT0kIj+Gr1hNY2WEKdXq2oGSN8mblkdnaY9ljNKnfziN5zmB00eFYtO+bfdlCRbHo+AXIZIZlymp1UTVqT8pKf1LmDQWVGnWTjmZleZczvaq7QSH0GzmRIyf/eHnhPGLtbEe7hQPZOXgZa5r5EBsSSTO/7Nsql3JF6bFlEhW9jM/7qp0a4lK2COtaTWB9m4mU9KhoUuZVyewdsBk6geRFU0kY1RtdRChWPZ5r0997H4v2XUjwH07CuM/RhT3Cqqu+TU9ePI1En/4k+vQnZc1CdMlJpKxfZlaWrBydHfBfOoGJA6bSpWFvQkNCGTZpYLZlq9aswpQhM+ndsj+9W/Y36rR6ftKKNbuW41akUK4zvQlSPv1XUJg1x9XDw4Pbt2+/1jaxsbGkpqbi6OhoWLZr1y66d++OWq3m7Nmzr7W/gIAA/P39KVmyJAC2trbMmTOHvXv38ujRo9fa16uyqFULTWAg2if7T9mzB8sWLYzKSBoNCQsXoouJAUBz8yZyZ2dQKlFVqEDqkSOg00FmJulnz2LZOPcdsg8bVefOlduEBYUBcHDzARp6m+733rW7DGsymJTEFFQWKpwLu5AYq//ts2zVsvy26wQ6nY5MTSZ/Hb9IXa/6ZuVRVquF9t5NdOH645RxZDfq+s2Nymjv3yJhTE9ITQaVCrmzK1JSgn6lXIHMwgpUKlCqkClVSJoMs7JkVbJRVSL/uU98UAQA1zYd4/2O9bItW7VPC65vPcmdfeeNloeeC+Ti8t36ET2dRNS1IOyLuZqdybp+DdKu3kITHApA3Na92LdvalLOsUc74nccIvHQKaPllpXLkbDnmL5OaTJJ/u08dq0bmGz/uqo1+pB7V24T/qROHd18kPrejUzK3b92j7FNhpKapU4lPalTDTs1Yd+63STHJyFJEt9MWsMfu06alcfCoyYZN26S+UBfp5J27cG6jXGdkjQZxM5dhC5af+5l3LiJwkV/7tl4tSTxx+1ICYkgScR9uZTkA0fMyvK88g2r8fDKPaKDwgE4u/koH3qbnjuZGRp2TVhHYlQcAA+v3sO2kCMKlYJfZ3zP/jk/AGDv5ohCrSQtIftR95dRVKyBLuQ2UpS+Tmn+2I+qZhPTgioLrHqNI+3n9UaLlbWboTnxM6QkgSSR/tNKNBdOmJXlXc70qrbu3Evn9q1p1bThG3k/gDKNqhJ25R6xT9qqS5uP8r9s6hRAzd4tubz1JDeea6tkChkqKwsUahUKtRKFSok23bwrDKpqtdDeDTS06emH92DR0Pi7T3vvFgkje0BKMqjUyJ1d0SUmGO9IqcRm+ERSNwQgRUeZlSUrj8a1uHE5kAf39bl2bdxD604tTMqp1Crer1KenkO7sfnYt8xbN4PCxdwAcC3sQuM2DRjV3SfXeYQ347WvqWs0Gg4dOsSHH3740rLe3t5kZmYSHR1N2bJl8ff354MP9Jd/AwMDefz4MTVr1sTT05Nt27ZR9xVHH2NiYnj06BHVqlUzWu7g4EC5cuX4999/KVasWA5bm0/u5oY26tnJpouKQm5ri8za2jBdQBceTkZ4uKGM3bBhpJ85A5mZaK5fx6plSzRXryJTq7Fs1AgpDy51uRRx5XHoY8Pr6LDH2NjbYGVrZXJpV5uppXYrD4bOH4EmQ8PWJfovy1uXb9G4U1MCL95ApVZR17MemRrzssldCqGLjjS81sVEIbO2BStr40tLWi2qmvWxGugDmgyStn8HQMZvB1HVaYz9yu3IFAo0Vy6SeelPs7JkZVvUhaTQaMPrpLAYLOytUdlamUwX+H3K9wCUaFTVaPmD368Z/t+umAsf9m/DiQnfmJ1JVcSVzPBndSoz/DEKOxvkNtZG0wUiZ60GwKZ+DaPtU6/cxL5Dc1IvXUemVmHbqj5kas3O85RzEVeisxyrmLBorF9Qp2q2qs2A+cPQZGjYsWQLAO7vFcXhHwcmbJyCU2FnAi/cYMvcjWblURZ2QxvxrE5pI5+cezbWhukC2rAItGERhjIOo4aQekp/7ilLFkfh5Ijrsi+Ru7qQ8c9V4lesNSvL8xyKOhMf9uxYJYTFYGlvjYWtldF0gbiHj4l7+Ow8bevfkxtH/0Kr0X9eOq2Oz5YOpYpXba4fukjUvVCz8sgdXdHFPnsfKe4xMisbsLQyujRv2XUYGWcOogsNMt7erRi64FtYDZmBzN4Z7b1/Sd/9nVlZ3uVMr2ryuKEAnDl/6Y28H4B9ERcSQmMMr5/WKbWtlcl0gUNT9edUmYbGbdWV7b9TycuDkecDkCvk3D91ldvH/jYrj8zVDd3jLN990S9o02s1wHqwD2RmkLrtW6P9qJt5oYuJRnM+b0av3Yq5ERH6LFdkWBS29rZY21obTRdwLezCX6cv8fX8b7h38z49hnRhwXdz6NNqAI8jovHrn39XavPDf32O6yuNuEZGRuLt7Y23tzcdOnRAkiTGjRv30u12797Nvn37GDx4MImJiTRv/myEZMeOHbRp0waFQoGXlxdHjx41zGt9VVqt6Re0RqNBluUSU56SyUAyHU6XdNlUI0tLHKZPR1GsGAkLFwKQuFrf+XBZvx6H2bNJv3gxT+ZoyeXy7GKh02Zfvc8fPkff6j3ZtnQLUzbNQCaTsWH2tyBJLN6/jAnrJvHPqctmd1yRybM9TmRznDQXT5MwsCNpOzdi47cAZDIsO/dBSogjYXAn4od9hszWDou2n5qXxSiWLNvLIVIOx+lFClUtTaedU7iy4QhBxy6bH0ouz/ahfJLu1TqfUfPXgSRRelcAxQKmknLmbyRzPzejWNnX9Zzq1MXD5xlUvQ87l27Db9NUZDIZSqWCKg0/YPmwRUxu74Otgy2f+fQwL5BMlv3DC7PJI7O0xHnuNJQliunnsQIolVh4fET05JlE9h2C3N4e+yH9zMtiEu31zj+VlQXdV47CpXRhdvmtM1r305hVzK4+CCtHW5qP6mRuILI9WFnOP1UDL9BqyTxrOuoskytRVKxO6ndfkrJoDDJrOyza9TYvy7uc6R0mk8uQsvuueY22quHoTqTEJLLsoyGsqDMCS0dbPAZ4mZfnFT6/pzQX/iC+nzepP23A1n+h0ZQPy7afkrZzk1kZsiPP4Tv5+XMv7EE4Y3v5ce/mfQB+WL2N4qWKUqSEe55leZP+61MFXmnE9ekcV3P17duXU6dOsWDBAqZPn05GRgZ79+5FqVRy/PhxQ7ldu3YxcGD281OycnZ2pmTJkvz99980bPjs8k1MTAwPHjygcuXKZmd9EV1kJKpKlQyv5a6u6BISIC3NqJzczQ3HuXPRhoQQO3o0ZOgvc8usrUlcswYpUX8p1bpHDzLNnNbQdWx3arXQz1eysrMmJDDYsM7F3YXEuETSU9ONtnEvVQTHQo4EXrwBwPGfjjJo7hBsHGyxtLbg+7kbSIpPAqDzsE8Nl4lfly46AmW5Z8dJ5lwIXVICpD87TvLCRZE5OqO9qR/BzDhxAKt+Y5DZ2KGq3ZDUDctBmwmpmWh+P4TKozHp+7a/dpba4zpTpqV+lFJta0X0zQeGdbbuTqTFJZH53HF6mfId6tB4Tl9+n7KRW7/kbiQ4MzQSy2oVDK+VhV3RxiUivWImua01UYu+Qffkc3Me1IWMYPNG6j4Z240aLfRzeq3trAgJDDGsc3Z3ISmbOlW4lDuOhZy4+aROnfzpGP3mDsLGwZbYiFguHDxrGKH945ff6DTyM8yhjYhEXeVZnVIUKoQuPgHpuXNPUdgNl8VzyAwKJmroWEjXn3u6qGhST/xhGJ1NOXgE+y/M7/i0GPMJlZ7UK0tba8JvPjtW9u7OpMQlocnmM3Qo6kKfb8YTeSeUdV1nk/nk0m35RtUIDwwhMTKOjJR0/tlzhiptzJuPqIuNQln6WZ2SObggJSdCxrM8Ko8WoLLA2nc5KJWgUmPtu5zUNdPRJUST+c8Zw0io5sIJLNp0MyvLu5zpXdNobGfeb/ERAGo7K6ICn7VVdu7OpOZQp3JSoU0tDk/7Hp1GS7omlas7TlHRqzbn1u1/7Wy6x5Eoymf57nN2NW3T3Yvp2/TAq4C+TbceOBaZjR1SUgKK0uVAoSDz+uXXfv+sBvh8TsNW+mkTNrbW3A28Z1hXyN2V+NgE0lKN24Vyld6jXOWyHNyZ5ZcimYzMPLg6Jbx5b+w5rn5+fuzYsYPAwEBOnDiBk5MTf/zxB8ePH+f48ePMnDnTcJPWqxg9ejRz587lwQP9yZ2cnIy/vz9eXl75Mk0AIP3CBVSVK6N4sn/rDh1IP33aqIzMygqnZctIP3WK+JkzDZ3Wp+Vtv9BPVpc7OWHVti1pR4+alWXrkh8Z5zWacV6jmdjRh/erV6BI6SIAtOrhyYXD50y2cXJzYlyAD3ZOdgA06tiYBzdDSIpLpHUPT7o+uVHLwdWR5l1bcmr3b2Zly7xyEUX5Soa7SC1atEdz8bnj5OiCzYipyOzsAVA1aIHuQRBSUgLa+7dR1WmiL6hQoPyoHpl3rpuV5fzinWxrM5ltbSazw3s67tXL4VC6MABVejbn/uHXu/xXukV1Gs7oxZ4e83PdaQVIPn0Jqw8qoipVFADHrl4kHX/1/Tp29cJ1pP6mKYWLIw6ftCZx70mzsuxYsoVJXmOZ5DWWqR39KF/9fdyf1KnmPVrz1+HzJts4ujkxPGCsoU416NjIUKfOHThDnbb1UVmoAajZyoN7V+6YlS3t3EXUVSqhLKGvUzad2uunAWQhs7ai0OolpJ44RYz/bEOnFSDl+O9Yt2gMT7JYNmpAxo2bZmUBOLp0Byu8JrHCaxKrPp5KiQ/L41JaP3rj0aM514/8ZbKN2saSgVun8O/BC2wdscLQaQWo2taD5qM7A6BQK6nWtg53//zXrGzawL9RlKqArJC+TqkaeJF51fgegpTFY0n5chgpC0aSumY6aDJIWTASKSGGzMunUVZvCCr9sVJWq4s25PXuaSgImd41vy/ZyXqvSaz3msSGjtMoWr0cTk/aqho9mnPrsGmdepHwa0FUausBgFypoHzLGjz627zzT/PPBZTlKxvadHWrDmguGLfpckdnbEdPRWbnoC/ToAXakPuGexeUlT8k85p5UxWyWrfwO8MNVv3bDaVKjcqUKKPP9XHvDpw6fNpkG51OYuyskYYR1s59vLl74y5RYbmfZ/s26PLpX0Hxxp7jWr58eTp27Mj8+fNRq9V0797daH27du1YsmQJp06dolEj05tAnte2bVsUCgWjRo0iIyMDrVZL27ZtGTx4cH79CEhxcSTMn4/DjBn6R4KEhhI/dy7KChWw9/Ehpn9/rD7+GEXhwlg0bIhFltHg2LFjSf7hB+wnT8blO/3crOTvviPzpvlfnk/FR8cT4PMVPqv99I/jCQ5n+ZilAJStWo6h84czzms0Ny5cZ0fAdmZtm4s2U0tMZAxfDpwLwM5VOxi1dAzLDq8AmYytS37kjpmdDCkhjpQ1C7AZPQOUSv2jrlbNQ/He+1gP8CFx4gC0N6+S9stmbKcsA60WXexjkhf7A5C6aSVWn4/EbtFGkHRkXrtE+p6tuT5OqdEJHBu3Fs+vRyJXKUkIjuTIGP1jttyqlaHpgv5sa/Pix7PU9++OTCaj6YL+hmVhF2/xu795cze1MfGET1pK0a8mI1Mp0TwII2zCIiyqlMd91iiCPx7+wu2j1/5EkfnjKb1nNchkRC/fRNq1W2ZlySohOp6vfVYwarUPSrWKiOBwVo/5CoAyVcsyYP4wJnmN5eaFG+wO2IH/ttloM7XERcawZOCXABz5/iC2DrbM2bcIuVxO0LV7fDPbvHmJutg4YmctxHnedGRKJZmPQomZ8SWqiu/jNHk8kb0GYvtpRxTuhbFq0gCrJs9uUHs8bDzJO3cjt7ej8MY1IFeguXmb2C9X5/o4ASRHJ7DT52t6rB6FQqUkJjiCn8bq912sahk6zR/ACq9J1O3TCsdirlRuXZPKrZ89seOb7nPZP+cHOs7px6hD8wG4fugiZ749aFYeKSmetB+/wuqLiaBQIj0OI3XzEuQlymHZbSQpC0a+cHvNqf3IrO2w9lmGTCZH+/Auab+sf+E2BTHTuywlOoG9Pl/TefUoFGolscGR7Bmjr1NFqpah7fwBrPea9MJ9HJ25mdYz+zDo2EIknY6g0//yp5mPWJMS4kheNR+bcTP0jzOLCCUlYC6K9ypgPcSHRJ/+ZAZeJXXXJuymL0PSaZFiHpO80N+wD3mRYugiw1/wLq8vNjqOWWPmM3ftDFRqFQ+DQpk5Sv+dVrFaBSYt9qF3y/7cu3mfJf7LWbRxHgqFnMiwKKYMnZWnWYQ3Rya96hDnf0BEkyZvO4KJIfft33aEbH1bL/FtRzCx+Y/8GWnPjZY20S8v9BbMSLV82xFMLHB/956duDLi3ZwDN6lDwssLCVhOXf62I5hY8NGUtx0hW0Nr58/TeHLD03Tw9K07G3rybUegVykz57+/xKbgXfmy37wm/uSrIAiCIAiCUCCIP/kqCIIgCIJQQPzXL5OLjqsgCIIgCEIBofuPd13FVAFBEARBEAShQBAjroIgCIIgCAVEQfpjAflBjLgKgiAIgiAIBYIYcRUEQRAEQSggCtIfC8gPYsRVEARBEARBKBDEiKsgCIIgCEIB8V9/qoDouAqCIAiCIBQQ4uYsQRAEQRAEQSgAxIhrFkPu27/tCCbmWmS+7QjZGnrG8W1HMNEvQ/O2I5jwl6vfdoRsTZLeven9CyPc3nYEE5NKh77tCNn65Gertx2hQGi0e8rbjmDC969ZbztCtnp+NPZtRzCxr3rs247wTnr3Wu/shYaG4uPjQ3R0NGXKlGHRokXY2NhkWzYpKYmOHTsyZ84cPDw8XrhfMeIqCIIgCIIg5KkZM2bQvXt3Dh48SJUqVVi1alWOZWfNmkVCQsIr7Vd0XAVBEARBEAoISZLy5V9CQgIPHz40+feqHcqsNBoNFy5coHXr1gB06tSJgwcPZlt2//792NjYUKFChVfat5gqIAiCIAiC8B+3ceNGAgICTJYPHz6cESNGvNa+YmNjsbW1RanUdzMLFSpERESESbnQ0FA2btzIxo0bGTBgwCvtW3RcBUEQBEEQCoj8ehxWnz59+Pjjj02W29u/+P6fAwcOMG/ePKNlpUqVQiaTGS17/rVOp2Py5MlMmTIFS0vLV84pOq6CIAiCIAgFRH7dnGVvb//STmp2PD098fT0NFqm0Wjw8PBAq9WiUCiIiorCzc34Btx79+5x7949Jk+eDEBISAj+/v7MmjWLOnXq5Ph+ouMqCIIgCIIg5BmVSkXNmjXZv38/7du355dffqFRo0ZGZcqVK8dvv/1meN2rVy+GDx8uniogCIIgCILw/4WUT//ltWnTpvHTTz/h5eXFxYsXGT16NABbtmzhq6++Mnu/YsRVEARBEARByFPFihVj06ZNJsu7deuWbfnsymZHdFwFQRAEQRAKiPy6OaugEFMFBEEQBEEQhAJBjLgKgiAIgiAUEJL03x5xLdAd13PnzjF48GBKliyJJEloNBq6du1Knz598u09P2pWkx6+vVGplQQHBrPSdzmpSakm5Tz7tKV1T0+QJMKDw1ntF0B8dDy2DrYMmjOE0pXLkJ6azvHtR9m/YV+uMtk0qUWhsX2RqVWk37xP+KRl6JJNMwEUmT+W9JtBxHy7S79ALqfw1CFY164KQNJvF4ia/02u8jz1YbOP6OrbE6VaxYPAYNb6BmR7rFr18aRFzzZIEkQEh7PebxUJ0fEAtOjVhqZdW6C2tOD+1bus9Q0gMyPT7EwuLapTdnI35GoVSddDuDFmDdrnMr2oTMPr60gPizGUDV71KxE7/zA7z1M1mn1Ed9/eqNQqggODWO27Ittj1aaPF616eiJJEhHB4azxW0lCdDxyuZx+MwdSuU4VAC6duMimORvMzmPf7COKTuiNTK0iNTCIEJ8V6LLJA1ByySjSAoOJXPsLAHI7a0ouHIFl2WIglxOz4ziRq3eZnSWryk2r0963Kwq1itDAELZM+Jr0bHLV7NiAZoPa69uF1Ax2Tt/Ag6v3+HzVGFxLFzaUcynuxp1z11k/YJHZmdR16mA7YAAylYrMe/dIWLAAKSXFqIxly5ZYd+kCgJSWRuKKFWTevInMzg77MWNQliuHlJZG6oEDpP78s9lZsqrdrBaf+32OSq3i/o37LPVZRkpSSo7l67aui++y8XxcqbPJuilr/YmJiGbllNX/7zIBlGv2IU18u6BUK4kMfMBe33Vk5FDfAdovHkTkzQecW7sfAJlcRuuZfSlZpxIAd09c5ticH3Od60UkSWLy7MWUL1uaz7t/kq/v9VT1Zh/RzbcXKrWKkMAg1uTQprfu40XLnm0M339rn7TpY1b74l6qiKGcWwk3rp/7l4X955qdSVWrDtZ9BurPv6B7JC+bj5T63PnX7mMsvLxBktCFh5K0fCFSfBwyaxtsRvmiKF4S5HLSjx0kbccWs7MIb0aBnypQpUoVdu/ezZ49e9i+fTvffvstd+7cyZf3sne2Z/jCkSwcPI8RzYYSERJOLz/TTvJ7VcriPaAjkzr5MrrVCMKCQuk2rgcAn0/tT2pKGqNaDMevow/Vm3zER81qmp1J4WRPkXljeDRiDvfbDETzIJxC4z83KacuW4ISG+dh17qB0XIH72aoyxTnfruh3O8wDOvaVbFr08Bk+9dl52zPoIUjWDZ4AeObDSciJJyufr1MypWp8h5tB3RkWqeJTGg1ivCgUD4dp5+4XatNHVr3bcvc7tPxbTEStaUaz34dzM6kcrGj8ldDuPrFEs7WH0NqcATl/Lu/chnrskXIjEvifPMJhn950Wm1d7Zn6MKRLBr8JaOe1Ksefr1Nyr1XpSztB3TEv9MExrUaSVhQKF3H6bM16tSEomWLMa7VSMa3GUVljyrU8apnVh6lsz0lF43k/qAvudF0KBkh4RTNJo9FueKU2zILx+fep8j4HmjCHhPYciS32o3DtWcbrGu82p/yexEbZzu6LxzMt0OWMrf5WKIfRNJhgukkf7f3itBhUg/W9J7HQi8/Dq/YRb81YwH4buhSFnr5sdDLj21+a0lNSGbH1O/MziRzcMBhwgTip04lundvtKGh2A4caFRGUaIEtoMHE+frS0z//iRv2oTjzJkA2A0bhpSaSnTfvsQMHYqFhwfqunXNzvOUg7MD4xaPZdbA2fRvMoDwkHC+mGjaLjxVtHRRBvr3N3lAOMCngz+hSu0q/y8zAVg729Fu4UB2Dl7GmmY+xIZE0syvS7ZlXcoVpceWSVT0qm20vGqnhriULcK6VhNY32YiJT0qmpTJS3eDQug3ciJHTua+/XlVds72DFk4giWD5zOm2TAiQiLonk27UKZKWdoN6MiUTn6MbzWK8KAwujxpp5YOWcAErzFM8BrDWr+VJCck8+2UtWZnktk7YDvaj8S5U4gb1AtdeCjWnw8yKqMo9z6WnbqQMH4Y8cM+Rxv6EOte/QCw6tUP3eMo4od9TvzoQVh6eaOs+D+z87wpunz6V1AU+I5rVunp6SgUCuzs7PJl/x82qs6dK7cJCwoD4ODmAzT0bmxS7t61uwxrMpiUxBRUFiqcC7uQGJsIQNmqZflt1wl0Oh2Zmkz+On6Rul71zc5k06AGaVdvoQkOBSBuyz7sOzQ1KefUox3x2w+RePCU8QqFHLm1JTK1Sv9PpURKzzA7z1PVGn3IvSu3CX9yrI5uPkh970Ym5e5fu8fYJkNJzXKskp4cq4admrBv3W6S45OQJIlvJq3hj10nzc7k3OQDEv6+S+r9cAAebTyCe+cGr1zGoVYFJK3ER7unU/vEAsqM7Qxy0y/V11WtUXXuXrljOFaHNx/MsV6NbDIk23olV8ixsLJEqVaiUqtQqpRo0jVm5bFrVJ2Uf+6Q/iTP400Hce5omqdQby+itx4hbt9po+WPpq3j0Wx9Z1Dp5oTcQoUuMedRtVdVsWE1Qq7cJSpI/9mc3nyEj7xNf8nKzMhk64S1JETFARBy9R52hRxRqBSGMgqVgh6Lh/LzrO+JC4s2O5NFrVpoAgPRPnoEQMqePVi2aGFURtJoSFi4EF2MfqRec/MmcmdnUCpRVahA6pEjoNNBZibpZ89i2dj0WL+uGo1qcPOfW4QG6duFvZv20qyjabsAYGFpwYTlPnw907QDUa1OVWo2+Yh9m3N3VehdzQRQplFVwq7cIzZI/+coL20+yv+8s2+Ta/ZuyeWtJ7mx77zRcplChsrKAoVahUKtRKFSojXz/HsVW3fupXP71rRq2jDf3uN5HzT60KidOrL5IA2ybdPvMrrJkCxturOhnXpKoVIydMkoNs78huiwx2ZnUtWoRebtQHSh+vMvbd9u1E2Mzz/tnVvEDeiBlJIMKjVyl0LoEhIASPl6OSnf6Efs5c4uyFRqpOQks/O8KQXlcVj5pcB3XK9du4a3tzft27enWbNm1K5d2+SvM+QVlyKuPA59dpJFhz3Gxt4GK1srk7LaTC21W3mw7ux3VPb4H8e3HwXg1uVbNO7UFIVSgaW1JXU96+Hk5mR2JmWRQmiynPia8Mco7GyQ2xhnipi5moS9J022j991FG18IuVOfU+5PzajCQ4j6cR5k3Kvy7mIK9GhzzoEMWHRWL/gWNVsVZuAs+up6FGZ37YfB8D9vaI4uDgwYeMUvjy4lM5jupKSkGx2JsuiLqRlyZQeGo3S3hpFlkwvKiNTyok5dZW/u83jkvd0nJt+QIn+xn8txByu2dSrFx2rWq08WHP2Wyp7/I8T248BcHL7cZLjk/j6/HesvbCB8OAw/jp2waw86qKuRnUqI+wxCnsb5M/leTh1LbG7f89+J1odpZaNodKRFST9eY20u4/MypKVU1EXo05mXFg0VvbWWDyXK+ZhFNdP/G14/bF/L64d/QutRmtYVqdLM+IjYrlyyLxj9JTczQ1tVJThtS4qCrmtLTJr62fLwsPJOHvW8Npu2DDSz5yBzEw0169j1bIlKBTIrKywbNRI36nNpUJFXXkc+ixX1JO2ytrW2qTsyC9HsO+HA9y/cd9ouXNhZ4bMGMz8kQvQaXM/HvMuZgKwL+JCQuiz6T8JYTFY2lujzub8OzR1I//uPmOy/Mr230mLT2bk+QBGXVhJbHAEt4/9bVIur0weN5S2rbLv9OcXlyKuRL9GO1WzlQerzn5DJY//cfJJO/VUsy4tiI2I4cKhc7nKJC/khi4q0vBa9zgKuY0tMqvn6pRWi6pOA5w2bkf1v2qkH93/bJ1Oi+34yTiu+g7N1ctoHz3IVSYh/xX4juvTqQK//vorp0+fJigoiLVrzb/08CJyuZzs5kTn1ICeP3yOvtV7sm3pFqZsmoFMJmPD7G9Bkli8fxkT1k3in1OXydSYP2dTJpeRXShJ92qNuuvw7mhjE7hdrwd3G/VG7mCL8xemf6v4dclzyJXTsbp4+DyDqvdh59Jt+G2aikwmQ6lUUKXhBywftojJ7X2wdbDlM58euQj1CsfqBWVCNx/n1qTv0KWkk5mQQsiavRTyrGV+nidy+gxzOlYXDp+jX/Ve/LR0C/6bpiOTyfh0dFcSYuIZ8FEfBtf5AltHO9oN8DYzkCz7yf+v2VEIHr2Uqx/2QuFoh/vo7C+9vl6s7M8/KYdcaisL+q4cjWtpd7b6fW20rskXXhwOyIO5pLLXOP8sLXGYPh1FsWIkLFwIQOJq/WiPy/r1OMyeTfrFi5BpfnvwlFwuz3b8RKvVGr1u17stOq2Ww9sOGy1XKBVMDPBjzYy1xETG5jrPu5oJ9OdfdvU9p3qVnYajO5ESk8iyj4awos4ILB1t8RjglWcZ3wUyuTzb45Rzm36OAdV7s33pViZtmmY05cOrX3t2rdie+0wyOdlVquzOP83ZP4jt7k3Kjxuwn7VIf+4+kbRoDjHdvJHZ2mHVLf/ukckrOqR8+VdQFOibs55na2uLp6cnZ86Y/kZsrq5ju1OrhX6ukpWdNSGBwYZ1Lu4uJMYlkp6abrSNe6kiOBZyJPDiDQCO/3SUQXOHYONgi6W1Bd/P3UBSvP5yROdhnxouvZhDExqFZbVn8weVhV3RxiUiPZcpJ3at6hExaw1oMtFpMkn4+Rh2bRoQ8+3rf6l/MrYbNVroO3LWdlaEBIYY1jm7u5CUzbEqXModx0JO3HxyrE7+dIx+cwdh42BLbEQsFw6eNUz+/+OX3+g08rPXzvVU+sPHONQoZ3htUcQZTWwSupT0Vyrj/klDkq4Hk3Rd/3PJZDKkTOMv3VfVZWx3aj45Vs/Xq5yOlfuTY/W0Xp346RgDn9Sr2m3q8O20dWRqMsnUZPLbjuPU8arH3nW7XztbRmgU1tXfN7xWubuQGZeI7lXrVKPqpN4MJjMiBl1KGrG7f8fRy7x5m55jPqVKy48AsLS1Iuzms9EQB3dnkuOSyMgml1NRFwZ840vEnUcEdJ1pNG2i2P9KI1fKuXP2ulmZstJFRqKqVMnwWu7qqr8MmZZmVE7u5obj3LloQ0KIHT0aMvTTcWTW1iSuWYOUqL+Uat2jB5mPzBud7j2uF3Va6v9UorWtNUE3gwzrXN1ds22rWn3aEgsrC1YdDECpUqG2VLPqYAAB/qsoUtKdQVMHAOBUyAm5QoHKQs0y31f/izfvYiaARmM7834Lfb1S21kRFfisXtm5O5Mal4TmFes7QIU2tTg87Xt0Gi3pmlSu7jhFRa/anFu3/+Ubv8M+HduNmobvP6tXaqeeb9NP/HSMAXMHY+NgS1JcIqX/VwaFUsH1s9dynU8bFYGyQpbzz8UVXWICpD87/+RFiiF3cibz+lUA0o/sx2bYWGS2dijLVyAz6B5STDSkpZLx+zHU9XI/VUfIX/+vOq5arZbz589TuXLlPNvn1iU/snWJ/u5QBxcHlh5aQZHSRQgLCqNVD08uHDa91OHk5sTYFeMZ6zmKxNhEGnVszIObISTFJeI9oCNWdtasn/o1Dq6ONO/akiXDFpidL/mPS7j59UdVqiia4FCcunmReOzsyzd8Iu36Xew8G5Jy7gooFdg29yD1cqBZWXYs2cKOJfo7Mu1dHJh/aBnupYsQHhRG8x6t+euw6RQERzcnhq8YyyTPsSTGJtKgYyPDsTp34Ax12tbnxJajaNIzqNnKg3tXzL/xLvq3K5Sf0QurMu6k3g+nWJ+WRB28+MplbCqWwK2dB1e+WIxcraT4F60J32XezRHblvzItif1yt7FgcWHlhuOVasebbiQ7bFyZvSKcfh4jn5yrBoT8uRY3b92j3pt6/Pvn1dRKBXUbFmbW3/fNCtb4u+XKeb/BRali5AeFIZrzzbEZ5MnJ07t6uPoWYcHE1cjUytxbFefxFP/mJXlwNLtHFiqH5mxdbHH7+ACCpV2JyoonPo9WnDtyEWTbSxsLBm+dSoXdv7Owa92mqwv51GJ22f+NSvP89IvXMB2yBAUxYqhffQI6w4dSD9tPOdXZmWF07JlpB06RPLGjUbrrDt0QGZjQ+JXXyF3csKqbVviZ8wwK8v3izfx/WL9X55xcHHg6yOrKVq6KKFBobTt6cWfh/802WZk+9GG/y9c3I2vj65haJvhAPT0eHbjTc8xPXBwtn/tO/jfxUwAvy/Zye9L9HXD2sWeAYe+xKl0YWKDIqjRozm3Dv/1WvsLvxZEpbYeBP95HblSQfmWNXj0d/7cJPwmbV+yhe1Z2vSFh74ytFMte7TmYjbtgpObMyNXjGWC5xgSYxNpmKVNB6jsUYV/z1zNk3yaSxew6TcUedFi6EIfYenVgYyzxuef3NkFW98pxI/oj5QQj7pJS7TB95ESE1A3bIq6XiOSAxaDUoW6QVM0l03blHeNeBxWAfd0jqtMJiMzM5MKFSowYMCAfHmv+Oh4Any+wme1H0q1kvDgcJaPWQpA2arlGDp/OOO8RnPjwnV2BGxn1ra5aDO1xETG8OVA/eM+dq7awailY1h2eAXIZGxd8iN3ctEZ08bEEzZxKcVWTEKmUqIJCSfUdxGWVcrjPmckQd4jXrh9xNy1uE8dQpmDX4NWR/Kfl4lev8PsPE8lRMfztc8KRq32QalWEREczuox+lGRMlXLMmD+MCZ5jeXmhRvsDtiB/7bZaDO1xEXGsGTglwAc+f4gtg62zNm3CLlcTtC1e3wz2/w7wDWPE7g+ajVVvxmLXKUkNTicf4evxO6D96i0ZBDnm0/IsQzA/cU7qDDvC+qcXIRMpSDy17OEbj6eJ8dqlc9yxq2egFKtJCI4nIAxywB4r2o5hswfho/XGAIvXGdXwHamb5uD7km9WvikXm2Y+Q39Zg5k2bGV6HQ6rp6+wp415l0Kz4yOJ2T8csqsmYBMpSQ9JJzg0cuwqlaOkvOHcdNzzAu3fzT7O0rMHULFI8sBiD94lqhvfzUrS1ZJ0Qn86LOGz1ePQaFSEh0cweax+s+mRNX36Dp/IAu9/GjYpzXOxQpRtXUtqrZ+NpVjZffZpMQlUai0OzEPo3J6m9cixcWRMH8+DjNmIFOp0IaGEj93LsoKFbD38SGmf3+sPv4YReHCWDRsiEXDZzfTxI4dS/IPP2A/eTIu3+nrdfJ335F507xfOLKKj45n8bilTPl6MkqVkrDgMBaO0T/yq3y18oxZMMrQGXxT3sVMACnRCez1+ZrOq0ehUCuJDY5kzxh9Z7hI1TK0nT+A9V6TXriPozM303pmHwYdW4ik0xF0+l/+XJP7Ov8uSYiOZ7XPCsau9jV8/6180qa/V7Usg+YPZ8KTdurngB1M2zYbbaaO2MgYFg6cZ9iPe5kiRD2MzOltXosUH0fSsi+xmzgTVCp0YY9IWjwXRbkK2I7yIX5EfzL/vULqts3Yz1sGOi266GgSZ08GIGX9KmyGjcVhpf78y/jzFGm7c//9J+QvmfRf77pn0amU+Y9ayi9zLXI/3y0/zEy3eNsRTPRLU7/tCCbWWKa9vNBbMOkdPOs3yE1v8njbJpUOf9sRstX77rt3rN5FjeS5v9Etr/n+NettR8hWz4/Gvu0IJlZVybu5zHnFZd9vbzsCTYu3zJf9nnh4JF/2m9cK/IirIAiCIAjCf0VBenRVfijwTxUQBEEQBEEQ/hvEiKsgCIIgCEIBofuPz/AUI66CIAiCIAhCgSBGXAVBEARBEAqI//Z4qxhxFQRBEARBEAoIMeIqCIIgCIJQQBSkP8+aH0THVRAEQRAEoYD4r3dcxVQBQRAEQRAEoUAQI66CIAiCIAgFxH/9D56KEVdBEARBEAShQBAjroIgCIIgCAXEf32Oq+i4ZrHRW/e2I5jo+cu7OSi+xafI245g4ud5CW87gomNYxzfdoRsVZ194W1HMHF1Wp23HcFEyy8j33aEbB3qafW2I5iQ2Vm/7QgmMv55+LYjmOj50di3HSFbm/9a8rYjmLAr3uRtRzCR9rYDCKLjKgiCIAiCUFBIYsRVEARBEARBKAjEzVmCIAiCIAiCUACIEVdBEARBEIQC4r9+c5YYcRUEQRAEQRAKBDHiKgiCIAiCUECIOa6CIAiCIAiCUACIEVdBEARBEIQC4r8+x1V0XAVBEARBEAqI//pzXMVUAUEQBEEQBKFAECOugiAIgiAIBYTuP35zVr51XM+dO0dAQACbNm0yWn7w4EHWrl1LZmYmkiTh7e1N//79OXXqFIsWLQIgJCQEV1dXrK2tKV68OCtXriQzM5MmTZrQunVrpkyZAsCnn35KRkYG8fHxpKSkUKRIEQAWLFhAhQoV8uXnUlSuiUX7PsiUKrShQaRt+QrSUrMtq6xaB8teY0ny/cywTNXAC1XdVqCyQPfgjn77zMxc5/qoWU16T+iDSq0iKDCIFT5fkZqUfS4Aj1Z1GLNsLF0rf2a03LWIKwt2L2ZU6xEkxibkOtdTp4Ies+LPu2RodZR3sWVa80rYqo2r3+3HScz//SZJGZnIZTL8m1akspt9nmUAKNr8Qz6c+BkKCxWx10M4O249mdkcpxeV63xtNSlhMYayN1btI+jnM2Znkpeugrr+x6BQonv8iIyj30OG8V/EVjX8BEX5jyA9GQBdbAQZ+9eBhTXq5j2QuxaHzAwy/z1D5j8nzM6SVZOWDfDxH4HaQkXgv7eZOGomSUnJJuXer1SOaV/6Ymdni06nw3/cHK79c8OwvkjRwuw4tJF2jbsSGxOXJ9ng3alTz6vb3IPBfv1RW6i5c+Me88YtJCUpxaTc8KmDadquMYlxiQCE3H3A1CGz8iSDouJHqNv0QKZUoQsLJm3HSkjPvj1QVK6NZddRJE/toV9gZYvFx4NQFC2NlJFO5sXjaM7sz32mch+ibvoZKFXoIkJI37seMowzqVt0R1GpNlKqvp5J0WGk/xxgVMbik1FIibFkHPo+15kAlDXqYNV9ADKVCm3wPZJXL4BU48/Los3HWLTqABJoIx6RsmYRUkIcNuNmIHcv9uxndHNHc/0fkudPznWu6s0+optvL1RqFSGBQazxDci2TW/dx4uWPduAJBEeHM5av1UkRMczZrUv7qWKGMq5lXDj+rl/Wdh/bq6z5USSJCbPXkz5sqX5vPsn+fY+WbVp04xZsyZgYaHm6tVABg/2ITExyahMjx6dGTmyv+G1g4MdxYoVoWxZDyIjHxuWb936NWFhEYwZM/WNZBfM80ZHXCMiIpg/fz67du3CycmJ5ORkevXqRZkyZWjevDkNGzYEoFevXgwfPhwPDw/Dtr/99htVq1blwIEDjB8/HisrK7Zv3w7Arl27OH/+PF9++WW+5pfZ2mPZYzQpy3yRokJRd+iLRfu+pG9fbVq2UFEsOn4BMplhmbJaXVSN2pOyzAdSk7H83A91k45kHN2Rq1z2zvaMXDQav06+hAWF0ntiX3r79eVrf9NcAEVKF+Vzf+NsAE07N6PbmO64uLvkKs/zYlIzmHbsOt91rkkpR2u+OnOH5WfuMKlJRUOZVI2WoXv+ZmqzSjQs7cqJe1FMPvwvP/esm2c5LJztqLt0AIe9Z5J4P4IPJ3eh+qQuXJi04ZXL2ZUtQkZsEgda5v6LCdB3Elr1Ie2nhUhxkagadEJV/2M0J7YYFZMXLUvGgXXowu4ZLVc3/gwy0kjbNB1kcizaD0GX8Bjd/au5iuXs4siC5dP5rO3nBN17gO/UkfhMHcE0X+NzzNLKko07VjJx1ExOHj1NC8/GLFkzm1Z1OwPw8WdtGTVhMO5F3HKV53nvSp16nqOzA5OX+DK440ge3n/EkEkDGDJpAIsnfWVStmrN/zFt6GyuXfw3b0PY2GPx6XBSV01Cig5D7dkLC89epP+y1qSozKUIFm37GC2zaP85ZKSSsngUyOVY9p6ALiYCbeBf5meytsOi/QBSN8xEio1A1awL6mZdyDi4waiYvHh50n9eie7h7Wx3o6rbFkWJCmReP2t+lixk9g7YDJ1Aov9wdOGPsOoxEKseA0ldv8xQRvHe+1i070KCTz9IScaq1xCsun5BytolJC+e9qxc2QrYjJtBSpZtzWXnbM+QhSOY2nki4UFhdPfrTXe/3nzj/7VRuTJVytJuQEd8PUeTmphCz8l96TKuO+smrWbpkAWGcmWrlWPMal++nWJaB/LK3aAQ5ixexdXrgZQvWzrf3icrV1dn1q5dRNOmnbh7N4jZsycye7Yfo0b5G5X74Yed/PDDTgCUSiVHj25n0aLVRp3WsWMHU79+bXbs+PWNZM8NMcf1DYqNjUWj0ZCWph9NsrGx4csvv6RcuXIv3XbXrl20bNmSatWqsW/fvvyOmi1FxRroQm4jRYUCoPljP6qaTUwLqiyw6jWOtJ/XGy1W1m6G5sTPkJIEkkT6TyvRXMj96Fj1RjW4889twoL0uQ5u2k/jjtnkAtSWFoz9ahzfzjLO5lzYGY9WdZjeK+9/0zwbEsP/3Owp5WgNwKdVinHgVrjRs+jOPoihuIMVDUu7AtCkjCvz21TJ0xxFGlcl+vJ9Eu9HAHB74zFKd6r3WuUK1SyPpNPR8ucpeB2dS5UxHZHJZSb7eFWKkpXRRQQjxUUCkHnlN5QVPZ4rpEReqATKmq2x7DkVddtByOycAJC7lSQz8BxIEui0aO9fQ1m+htl5nmrQtC5XLv9L0L0HAPzw3Xa8P/E0KdewSR1C7j/k5NHTABw98Bsj+vkB4ObuSkuvpvT9bFiu8zzvXalTz6vduCY3/rnJw/uPAPj5+z20+ri5STmVWkX5/5Wnx5AufH90PXPWTqdw0bzp3CvLf4juwR2k6DAANGcPoqze0LSgSo1l11Gk791gtFherCyZl34DSQfaTLSBf6GsmrvOvuK9qmhD7yPF6s+pzL+Ooazy3LmnUCJ3L4WqblusBs7DovNIZPbPfomWl6qEomw1NJeO5ypLVqpqtdDeDUQXrv+80g/vwaJhC6My2nu3SBjZA1KSQaVG7uyKLvG5q1FKJTbDJ5K6IQApOirXuT5o9CF3r9whPEj/GR7ZfJAG3o1Myt2/dpfRTYaQmpiCykKFc2FnEmMTjcooVEqGLhnFxpnfEB322GQfeWXrzr10bt+aVk2zqWv5pEWLRvz11z/cvRsEwLp1m+jateMLtxk/fghRUdGsX/+DYVmjRnVo1aox69dvzse0Ql55ox3XihUr0rx5c1q0aMEnn3zCwoUL0el0lCpV6oXbxcTEcObMGZo3b46npyfbtm17Q4mNyR1d0cU+O/GluMfIrGzA0sqonGXXYWScOYguNMh4e7diyGwdsBoyA+sJK1B7dkdKNb6kYQ7Xoq48ztIgPQ57jI29DVa2ViZlh345jIM/HCTohnG2mIgYvhw0l9D7obnO87zwpDQK21oaXrvZWpCUoSVZozUsC45LwcVazfRj1+m+7TyDd/+NVpe3v1VaF3MhJTTa8DolLAa1vTXK547Ti8rJFHLCT/3L8e4LONJpNkWbVOP9L1qZnUlm54Qu8dm0AykxFpmFFaifHS+ZjQO6B4FozuwmbfNMdOH3sWg/FABd+H19R1cuB5UFivLVkdk4mJ3nqSJFCxP2KMLwOjw0Ejt7O2xtbYzKlSlXiqjIaOYtm8ovRzfz/c7VKJUKACLDHzO073iC7obkOs/z3pU69Ty3om5EhkYaXkeFRWFrb4u1rbVROdfCLlw6/TdrF3xL7xb9+ffSDb78Lm+mCcgcXZDis7RT8dHILG3AwrieW3QajObcYXThQUbLdQ9uoazRGOQKUFuiqFIXmb1TrjLJ7V2QEp6dU1JCDDJLa1A/yySzc0IbdJ2MkztIXTsR3aO7WHw2Rr/O1hF1q56k/7Ja36HOIzJXN3SPn3U0ddFRyKxtwcr480KrRVWrAQ5rtqOsXI2MEweMVqubeaGLiUZz/o88yeVSxJXo0GefYXTYY6xzaNO1mVpqtvJg1dlvqOTxP05uP2a0vlmXFsRGxHDh0Lk8yZaTyeOG0rZV03x9j+cVL16Uhw/DDK8fPgzDwcEeOzvbbMu7uDgxatRAfH1nGpYVKVKYRYum07fvKLTavKtb+UknSfnyr6B4408VmDFjBsePH6dbt26Ehoby2Wefcfjw4Rdus2fPHurUqYODgwPNmzfn5s2bXL9+/Q0lzkImg+yG6HXPKruqgRdotWSePWK6uVyJomJ1Ur/7kpRFY5BZ22HRrncexJJl+5c0dM+dhJ69vNBlajn2k2m2/CRJJrMSAFBkWZip03E6OJrO/yvGj11q07VaCUbs/YeMPGxIcjpO0nPv8aJyd388yUX/79GmpqNJSOHG1wco4VkzF6FyOAWz1CkpIZr03QFI0fpfKjL/OozMoRAyexcyTumnmVh298ei/RC0ITdAq812l69DLpdnewy0OuN9K5VKmrSoz9bvd9GxRU++X7+Vb7YsR61W5TrDi7wrdep5crmM7Nr/58/FsAfhjO89kfs3gwD4cc02ipUqSpES7rkPIZOTfYhnGZR12oBOR+ZF09HL9L0bQAKrUYux7D0B7e1/cj8PP6e2M0snVIqLIn3rIqSohwBozu5D7lQYmVNhLD4eRsaRH5CS4nKXwyTWy9v0pzQX/iC+nzepP23A1n+hUQW0bPspaTs3mWxjdq4czr/n69FTFw+fY0D13mxfupVJm6Y9+bn0vPq1Z9eK7XmW7V2iP9+yaadyaAP79evO3r2HuX9f/8u0Uqnk++9X4Os7k/DwyGy3eRdJ+fRfQfFG57iePHmSlJQUvLy86Ny5M507d+ann35ix44dtGqV86jVrl27iIyMpFmzZoD+S3Xr1q3MnDkzx23ygy42CmXpZzd9yRxckJITISPdsEzl0QJUFlj7LgelElRqrH2Xk7pmOrqEaDL/OWO4mUtz4QQWbbqZlaX72B7Uaqm/pGxtZ01wYJBhnYu7C4lxiaSnphtt0+zTFlhYWbD0wHJUaiVqSzVLDyxnVt/pxETEkF/c7Sy4GhFveB2ZlI69hRIrlcKwrJC1BWWcbKjqrh8tbPpeIWYev8HD+FTec7Yx2eerqubTmWKt9JfOVbZWxAU+MKyzdnciPTYJ7XPHKflRNC41ymZbrkzn+sReDyHuxpP9yECXaX5HUUqMQe5e2vBaZuuIlJYMmRnPlrkWQ+5aHG1glhETmQx0WmRqSzJO7YR0/c0kylqe6OLMa4BH+w2meevGANja2XDzxh3DusJF3IiLjSc1xfimsYjwKO7eDuKfS9cA/VSBuUunUqJUce7evm9WjlfxNuvU8/qP70uDVvrL3ta21twLfPZzu7oXIiE2gbRU4+NWttJ7lKtclkM7n/0SKZPJyMyDGzWluChkJco/26+9C1JKImiytFM1m+qnNI1ajEyhb6esRi0m7dvZoFCQvv97eHI1SNW0M7ro8Fxl0sVHoyz67JyS2TvprzZlySRzK4GicEkyr5422lZm64jMyQ11ix5PXjsgk8lBqSZjn/GUp9fO9TgSRflKhtdyZ1d0SQmQ/uzzkrsXQ+bojDZQP28848QBrAeORWZjh5SUgKJ0OVAoyLx+OVdZPh3bjZotagNgZWdFSGCwYZ2zuwtJ2bTphUu541jIiZsX9TdDnvjpGAPmDsbGwZakuERK/68MCqWC62ev5Srbu2Tq1LG0bdsSAHt7O65dCzSsK1bMnZiYOFJSsr8R8ZNP2jNu3LN5yR99VI0yZUoyf77+hu/ChQuhUCiwtLRgyJAJ+fhTCLnxRjuulpaWzJo1i2rVqlG8eHEkSeLGjRtUqlQpx22uXbtGeHg4v//+O5aW+kuD586dY/Dgwfj6+mJrm/0lgfygDfwbi479kBUqihQViqqBF5lXjW8SSFk81vD/Mmc3bCauJGXBSAAyL59GWb0hmj8PgyYDZbW6aEOyvwnhZX5c8gM/LtHP0XFwcWD54QCKlC5KWFAobXp6cf6w6c0LPh2eZXMr7sbyIysZ4znSrPd/HXVLuLDkj9sEx6VQytGaHdce0aRMIaMy9Uu5sOT0ba5HJlDZzZ6/HsUik0Exe8sc9vpqrizcyZWF+kn5Fi72tD0+D7syhUm8H0H53s15ePiSyTZhv12lxrTu2ZZzqFicEm1rcar/V8jVSip83or7u06b7ONVaYOvo274CTJHN6S4SJTVGqG9+49xIUlC3aQLaaF3kBKiUVZrjO7xQ6SkOFT1OoLaEs3JrWBth7JKff3TBsyw7Ms1LPtyDQAurk7s//0nSr9XgqB7D+jetzNHD/xmss1vx04zaeYYqnxQiWv/3KBW3RogSTwIeWRWhlf1NuvU89Yv2sD6RRsAcHRxZNOx9RQvU4yH9x/xca/2nDps+sQJnU7H6JnDuXL+KmEPwvm4Twfu3LhHVB7MQdTe+gd1277IXIogRYehqtOKzOsXjMqkBjz7UpY5FcJ6zDJSvxoHgLp1D7C0ImP3emS2DqhqNSftxyW5y3TvKhYtuiNzKowUG4GyRnMybz137kkS6la90T64hRQXhfKjFugiH6B7cJPU5aMMxVSNOiGzss2Tpwpo/rmAVe8hyN2LoQt/hLpVBzQXjM9nuaMzNqOnkuDTHykxHnWDFmhD7iMl6ee5Kit/SOa1v3OdZfuSLWxfor8p097FgYWHvsK9dBHCg8Jo2aM1Fw+fN9nGyc2ZkSvGMsFzDImxiTTs2IgHN0NIevKkisoeVfj3TO5u1HzXzJy5hJkz9fWxUCEXLl48TNmypbl7N4gBA3qyd2/2V3AdHR0oW7Y0f/757CbDc+cuUa5cHcNrf/8xuLg4vfNPFSgol/VDQ0Px8fEhOjqaMmXKsGjRImxsjAcNMjIyWLBgARcvXkSj0TBx4kQaNGjwwv3ma8f14sWLVK9e3fC6ffv2DB8+nMGDB6PRaABo2LAhw4blfPPGrl276NSpk6HTCuDh4UGZMmX49ddf6dbNvBFLc0hJ8aT9+BVWX0wEhRLpcRipm5cgL1EOy24jDR3UnGhO7UdmbYe1zzJkMjnah3dJ+yV3IwYA8dHxLB//FRPWTESpUhIeEsay0foTu1y1cgybP/KNdFBz4mytZnrzyvgcuEqmTkdxeytmtfwf/0YkMPPEDbZ19cDVxoIlXtWY99tNUjVa1Ao5iz2rYaFUvPwNXlF6dAJnx6yl4dqRyNVKkoIiOTNK31FzrlYGj8X9OdBy8gvLXV3yM7Xm9KHt8S+RKRWE7D3P3R9Pmh8qNZH0IxuxaDtQX6fiokg/9B1yt1KoW/Yi7YfZSNGhZJzchkWHYSCX6x8FdEBfbzQXDqBu8wWWPaeCTIbmz1/RRQS/5E1fLvpxLBNGTifg24X6x/EEPWT8UP2oRNUPKzF36VTaN+3G48hoBvcex4wFflhbW5GRoWFI3/FkpGe85B1y512pU8+Li45j7tiFzF47HZVKyaPgUGaN0j+JoWK19/FbNJ6+rQZy/2YQS6esYMGGOcgVcqLCopg+dHaeZJCS40nfHoBlTx9kSiW66HDSti1HXqwsFp8MNXRQc5JxYieWXUdhNWYZyCDjyFZ0D++8cJuXSkkg/de1WHwyEplCiS42kvTda5AXKYO6bX/S1k9GinpI+qHvsfxsrL6eJ8SQ/vPK3L3vS0gJcSSvmo/NuBn6RxxGhJISMBfFexWwHuJDok9/MgOvkrprE3bTlyHptEgxj0le+OyudXmRYugiczci/byE6HhW+6xg7GpflGol4cHhrByjfzLFe1XLMmj+cCZ4jSHwwnV+DtjBtG2z0WbqiI2MYeHAeYb9uJcpQtTDgnMJ/HVFRUUzcOB4tmxZg1qt4t69EPr1Gw1AjRrVWL16Ph4e+ptKy5YtRXh4ZJ5c1RBezYwZM+jevTtt27Zl5cqVrFq1Ch8fH6My69evJzY2lp9//pk7d+7wxRdf8PvvvxtNd3meTMpugsh/VOLIdm87gomev7ztBNnb4lPybUcw8fO8vHvubF752DfvLknnpaqzL7y80Bt2dVqdlxd6w1p+GfjyQm/BoZ6ObzuCCZmd9csLvWEZ/zx82xFMDD7v+LYjZGvzX7kbVc8PdsWbvO0IJtLS8v5m09dVvtBH+bLfv+6eICHB9HvU3t4ee/vXe/61RqPBw8OD8+fPo1QqCQsLo2fPnhw7ZnzzYPv27Vm4cCEVK+ofZXjnzh3ee+895PKcb8ESfzlLEARBEAThP27jxo0EBASYLB8+fDgjRox4rX3FxsZia2uLUqnvZhYqVIiIiAiTcsHBwVy4cIGZM2ei1WoZM2bMSx+RKjqugiAIgiAIBUR+zXHt06cPH3/8scnyl422HjhwgHnz5hktK1WqlMnl/uwu/2u1WsLDw/nhhx+4efMm/fv358CBA9jZ2eX4fqLjKgiCIAiCUEDk16OrzJkSAODp6Ymnp/EfqHk6VUCr1aJQKIiKisLNzfSPrLi6utK2bVtkMhkVK1bE3d2d+/fvU61atRzf740/x1UQBEEQBEH4/0ulUlGzZk32798PwC+//EKjRqZ//a1p06aGMg8ePCAsLIwyZcq8cN+i4yoIgiAIglBASJIuX/7ltWnTpvHTTz/h5eXFxYsXGT16NABbtmzhq6/0T8kYP348kZGRtG3blsGDBzN79uwXThMAMVVAEARBEARByGPFihVj0ybTvyiX9TGmtra2LFiw4LX2KzqugiAIgiAIBYSuAP151vwgpgoIgiAIgiAIBYIYcRUEQRAEQSgg/ut/N0p0XAVBEARBEAoIMVVAEARBEARBEAoAMeKaRZ/d714/fkMt078b/C5o8+XNtx3BxFpbi7cdwcQnS2LedoRsXVvV8W1HMNHb56+3HcHE1qKmf+nlXfD5Vu3bjmDisdb0zzm+bal5/4SfXNtXPfZtR8iWXfEmbzuCicSHJ992hHfSf32qwLvXUxMEQRAEQRCEbIgRV0EQBEEQhAJCJ0ZcBUEQBEEQBOHdJ0ZcBUEQBEEQCgjpP/5UAdFxFQRBEARBKCDEzVmCIAiCIAiCUACIEVdBEARBEIQCQvwBAkEQBEEQBEEoAMSIqyAIgiAIQgEh5rgKgiAIgiAIQgEgRlwFQRAEQRAKiP/6HyDI147rw4cPad68OV26dGHmzJmG5Tdu3KBjx47MmzePgIAALC0tUalUhvWVK1dm3rx5+Pn5cfbsWRwcHNDpdCiVSgYMGICXlxdnzpxh5syZHDx40Og9AwICSExMZOLEifnyM33UrCY9fHujUisJDgxmpe9yUpNSTcp59mlL656eIEmEB4ez2i+A+Oh4bB1sGTRnCKUrlyE9NZ3j24+yf8O+XGVS1qiDVc8ByJQqtMH3SF61AFJTjMpYeH6MResOIIE2/BEpqxchJcTp17X2Rt2iLTK1BZl3b5GyagFkanKVCaBOcw8G+fVHZaHi7o17zB+3iJSklBzLN2hdH//lfrSp0B4AuVzO6Dkj+LDOBwCcPX6OVbO+zlUmmya1KDS2LzK1ivSb9wmftAxdsunnB1Bk/ljSbwYR8+0ungSi8NQhWNeuCkDSbxeImv9NrvI8VatZLfpO6ItKreJ+4H2W+SzLtl49VbdVXcYtG8cnlT8BwNrOmtELR1O8bHHkcjlHdxxlx+odeZLt95uPWHHkMhmZWsq7OzG9Yx1sLZ+dr7/+fY9NZwINr5PSMohMSOGQz8e42FrlSYanajT7iO6+vVGpVQQHBrHad0W2x6lNHy9a9fREkiQigsNZ47eShOh45HI5/WYOpHKdKgBcOnGRTXM25CqTZX0PHIb1R6ZWobl9j5jZi5CSjeu5tWcL7Hp+BkhIaenELgpAc+MWAEWP7EIbGWUom7jpJ1IOHstVJng3j1WdZrXpP7EfKrWKezfus3D84he2CfVb12PSVxNoW9EbgOlfT6FY6WKG9e4l3Pnn7BX8v5iaq1z1mtdh6MQBqCxU3Ll+jznjFmSba+TUITRr34SEuEQAQu6G4D/42XebW9FCrP91Fb1a9ic+Jt7sPKpadbDuMxCZSkVm0D2Sl81Heq5Nt2z3MRZe3iBJ6MJDSVq+ECk+Dpm1DTajfFEULwlyOenHDpK2Y4vZWbJq06YZs2ZNwMJCzdWrgQwe7ENiYpJRmR49OjNyZH/DawcHO4oVK0LZsh5ERj42LN+69WvCwiIYMyZ3n92rkCSJybMXU75saT7v/km+v19+E1MF8pmjoyOnTp1Cq9Ualu3fvx9nZ2fD67Vr17J7927Dv3nz5hnWjRw5kt27d/Prr7+yfPly5s2bx5kzZ6hbty4ZGRlcu3bN6P327NlD586d8+VnsXe2Z/jCkSwcPI8RzYYSERJOL78+JuXeq1IW7wEdmdTJl9GtRhAWFEq3cT0A+Hxqf1JT0hjVYjh+HX2o3uQjPmpW0+xMMnsHbIZPIHnhVBJG9kYXEYpVz4FGZRTvvY9Fhy4kTBpOwpjP0YU9wqrbFwCoPBpi4dWJpBnjSBjdF5mFGov2n5qd5ykHZwcmLvFhysDp9GzUl7DgMAZN6p9j+eJlijF0yiCQyQzLWn3SkpJlS9C3eX8+bzmAD+pUo0m7RmZnUjjZU2TeGB6NmMP9NgPRPAin0PjPTcqpy5agxMZ52LVuYPwzeTdDXaY499sN5X6HYVjXropdmwYm278ue2d7xiwaw5xBcxjYdCDhIeF87mea66mipYvSz78fsizHqtf4XjwOe8zQlkMZ1W4UbXu2pWKNirnOFpOcxrSf/2RRt4bsHt2B4k62fHXkb6My7au/x0/DvPhpmBc/DG6Dq50Vfu1q5Xmn1d7ZnqELR7Jo8JeMenL+9fDrbVLuvSplaT+gI/6dJjCu1UjCgkLpOq47AI06NaFo2WKMazWS8W1GUdmjCnW86pmdSe7ogPNUH6InTCf8k75kPgrDcbhxPVeWKo7jyIFEjfQjoscgEr7ZjOuC6YZ1uvhEInoMMvzLi07ru3isHJwd8F0ynmkDZ9Kn8ReEhYQxcGK/HMsXK1OMIVMGGtXz6YNmMaD1YAa0Hswi3yUkJSTx1eQVZmcCcHR2wH/pBCYOmEqXhr0JDQll2KSB2ZatWrMKU4bMpHfL/vRu2d+o0+r5SSvW7FqOW5FCucojs3fAdrQfiXOnEDeoF7rwUKw/H2RURlHufSw7dSFh/DDih32ONvQh1r30x9KqVz90j6OIH/Y58aMHYenljbLi/3KVCcDV1Zm1axfRtesgqlVryv37Icye7WdS7ocfduLh4YmHhyf167cnPDyKMWOmGnVax44dTP36tXOd6VXcDQqh38iJHDn5xxt5PyH/5XvH1cbGhkqVKnHhwgXDstOnT1Ov3us3gCVKlKB37978+OOPyGQyOnbsyN69ew3rL126hIODA++//36eZH/eh42qc+fKbcKCwgA4uPkADb0bm5S7d+0uw5oMJiUxBZWFCufCLiTG6n9DL1u1LL/tOoFOpyNTk8lfxy9S16u+2ZlUH9RCeycQXdgjANIP7cGiYQujMtp7t0gY3gNSkkGlRu7iii4xAQB1k9ak7fkJKSkRJImUr5eQ8dths/M8VbtxTQL/ucnD+/pcv3y/h5YfN8+2rIWlBf7LJ7Jyxmqj5Qq5HEsrS1RqFWq1CpVaRUa6+SPBNg1qkHb1FprgUADituzDvkNTk3JOPdoRv/0QiQdPGa9QyJFbWyJTq/T/VEqk9Ayz8zxVo1ENbv1zi9Agfa59m/bRtKNpLtAfK5+vfFg3a53R8q+nfc362esBcHZzRmWhIjkxOdfZ/rwTxv+KuVDKxR6AT2uX58A/QTn+xr/h1L8421jySa3yuX7v51VrVJ27V+4Q/uT8O7z5YI7n38gmQ7I9/+QKORZWlijVSlRqFUqVEk0u6pRlnZpkXL9J5gN9PU/auQfrNsb1XMrQEDN7MbroGAAybtxC4eIMSiUW1f4HOi1ua5dR+Md12PfvBfLcN8vv4rGq1fgjbv5zi0dP2oTd3/9K8xe0CZOXT2DVjOyvsChVSvyW+rJy+mqiwqKyLfOqPBrX4sblQB48ybVr4x5ad2phUk6lVvF+lfL0HNqNzce+Zd66GRQu5gaAa2EXGrdpwKjuPrnKAqCqUYvM24HoQvV50vbtRt3kuTb9zi3iBvRAMrTphdAl6Nv0lK+Xk/KNvi2VO7sgU6mRko1HRc3RokUj/vrrH+7eDQJg3bpNdO3a8YXbjB8/hKioaNav/8GwrFGjOrRq1Zj16zfnOtOr2LpzL53bt6ZV04Zv5P3eBB1SvvwrKN7IzVmenp4cOnQIgCtXrlChQgWjqQEDBw7E29vb8G/nzp057uv999/n3r17AHTq1IkDBw6g0+kA+OWXX/jkk/y7DOBSxJXHoc9+a4wOe4yNvQ1W2YwsaTO11G7lwbqz31HZ438c334UgFuXb9G4U1MUSgWW1pbU9ayHk5uT2Zlkrm7oHj9ruHXRUchsbMHK+rlAWlS1G+CwdjvKStXIOHEAAEWR4sgdHLH1X4Ddkm+w/KxvnjRybkULERn6LFdUWBS29rZY21qblB2/YAx7Nu/l7o17RssP/HSIxPhEdv21jZ//3s6j+484c+RPszMpixRCE/bs89OEP0ZhZ4Pcxvjzi5i5moS9J022j991FG18IuVOfU+5PzajCQ4j6cR5s/M8VahoIR5nyfX4BfVqxJcj2P/Dfu7fuG+yTqfVMX7ZeFYfWc2VP6/w6O6jXGeLiE/B3eHZZ1bY3pqkdA3J6ZkmZWOT0/j+dCDjPWvk+n2z45rN+Wf9gvOvVisP1pz9lsoe/+PEdv0o5sntx0mOT+Lr89+x9sIGwoPD+OvYBZPtX5WicCG0Ec/quTYyCrmtLTKbZ8dMGxZB2ulzhteOY4aQ+vufkJkJCgVp5y8RNdKPyIGjsaxTE9suHc3O89S7eKwKZdsm2GTbJoydP5pfN+8zaROe8urahuiIaP44eNrsPE+5FXMjIkuuyBzaKtfCLvx1+hJfz/+Gns2/4Nql6yz4bg4AjyOi8es/lQf3HuY6j7yQG7qoSMNr3eMo5Da2yLJr0+s0wGnjdlT/q0b60f3P1um02I6fjOOq79BcvYz20YNc5ypevCgPH4YZXj98GIaDgz12drbZlndxcWLUqIH4+j4blS5SpDCLFk2nb99RaLW6XGd6FZPHDaVtq+wHAoSC6Y10XJs1a8bvv/+OTqfjwIEDeHp6Gq1/fqrAyy71W1paAlC8eHFKlSrF+fPnycjI4OTJk7Rt2zbffg65XE52A026HE7A84fP0bd6T7Yt3cKUTTOQyWRsmP0tSBKL9y9jwrpJ/HPqMpka007Aq9JfRssulGkmzfk/iP/cm9SfNmA7ZaH+srxSifKDmiQtnk6i7yDkdvZYdc/5kv4r55LLsx2Ve/5YdezTAW2mlv3bDpqU7Tu2N3Ex8Xh/+Amda3bFzsmeLoPMn8Ygk8vI7gOUsjlW2XEd3h1tbAK36/XgbqPeyB1scf7iY7PzGHLJZK90rNr2aos2U8uRn47kuK9FoxfR9cOu2Dna0W10t1xn00kSMmQmyxVy02U7L96hSaXiFHe2y/X7Zienzy+n8+/C4XP0q96Ln5ZuwX/TdGQyGZ+O7kpCTDwDPurD4DpfYOtoR7sB3rkJlW0msskks7TEZd5UlMWLEjN7EQDJv+wnblEAUloaUlIyiT/swKpJ7qefvIvHSi57tTbBu3d7tJlaDmw7lOO+PhnQmU3Lf8hx/evlerVjFfYgnLG9/Lh3U/9L4w+rt1G8VFGKlHDPkxxPyWTybJv07Nopzdk/iO3uTcqPG7CftchoqlXSojnEdPNGZmuHVTfTKW2vSy7Pvp3KOg0wq379urN372Hu3w8BQKlU8v33K/D1nUl4eGS22wivRpKkfPlXULyRpwrY2NhQsWJF/vrrL86ePcu4cePYv3//yzfMxs2bNylbtqzhdefOndm7dy8JCQnUrVsXW9vsf/szV9ex3anVQj8Xx8rOmpDAYMM6F3cXEuMSSU9NN9rGvVQRHAs5EnjxBgDHfzrKoLlDsHGwxdLagu/nbiApXj+q2XnYp4bLeebQPY5EUb6S4bVhGkB62rNl7sWQOTqjDbwKQMbxA1gPHIvMxg5dzGM0Z3833MyV/tsRrD41nQv3Kr4Y35f6reoCYGNrzb3AZ6OCru6uJMQmkJaaZrSN56etsbCy4JvDX6NSqbCwVPPN4a/x7TWJRp4N+GpKAJmaTDI1mRzcfpgmbRux7evtZuXThEZhWa2C4bWysCvauESk5z6/nNi1qkfErDWgyUSnySTh52PYtWlAzLc/v3aWnmN74tHSA9DfWBUUGGRY5+rumm29avFpCyysLFhxYIV++oSlmhUHVjCt7zRKVyhN0M0gYiJiSEtJ47fdv1E/F1NQniriYMO1h9GG15GJKdhbqbFSmzYdh68G49vW/Pna2ekytjs1W9QCTM8/Z3cXkrI9/9xxLORkOP9O/HSMgU/Ov9pt6vDttHWGOvXbjuPU8arH3nW7zcqnjYjEosqzucSKQq5o4xOQ0ozruaKwG65LZpMZFELUkHGGKSbWni3Q3L6H5s6TkUWZTD8Sa4Z38Vh9Pr4P9Vrq2wRrW2vuZ2kTCrm7khBn2ia0/qwVlpYWrDu0BqVKidpSzbpDa/DrPZnoiGjK/a8sCoWCf/688noHKIsBPp/TsJX+/LCxteZu4LOR3ULursRn01aVq/Qe5SqX5eDOLL84ymRkZmbfcTOXNioCZYWXtOlFiiF3cibzur5NTz+yH5thY5HZ2qEsX4HMoHtIMdGQlkrG78dQ1zOdJvIqpk4dS9u2LQGwt7fj2rVnN2EWK+ZOTEwcKSnZ30T6ySftGTdumuH1Rx9Vo0yZksyfPwWAwoULoVAosLS0YMiQCWblE/6b3tjjsDw9PVm8eDFVqlRBqTTvbYOCgvjxxx9ZsmSJYVnr1q1ZsWIFCQkJ9OzZM6/iGmxd8iNbl/wIgIOLA0sPraBI6SKEBYXRqocnFw6fM9nGyc2JsSvGM9ZzFImxiTTq2JgHN0NIikvEe0BHrOysWT/1axxcHWnetSVLhi0wO5/m8gWs+gxBXqQYurBHqFt1QHPB+PKZ3MkZmzFTSRjXHykxHnXDFmgf3EdKSkDz52+o6jUl/dg+yMhAXbsBmXdvmpXl20Ub+HbRBgAcXRzZcGw9xcsU4+H9R3j3as8fh8+YbDOo3TDD/7sXL8yG49/Qr5X+RoRb127TtH1j/j5zGYVSQYOWdbl+6bpZ2QCS/7iEm19/VKWKogkOxambF4nHzr7y9mnX72Ln2ZCUc1dAqcC2uQeplwNfvmE2Ni/ZzOYl+jleDi4OrDq8iqKlixIaFIpXTy/OHjbNNabDGMP/uxV3Y/WR1YzwHAFAr3G9qOdZj4CJASjVShq2a8jfp/422cfrqluuCIsPXiI4OoFSLvbsOH+bJhWLm5RLSE0nJCaRD0rm7saU521b8iPbnpx/9i4OLD60HPfSRQgPCqNVjzZcOGw6VcPRzZnRK8bh4zmaxNhEGnRsTMiT8+/+tXvUa1uff/+8ikKpoGbL2tz627z6DpB29iKOowajLFGMzAePsO3cnrTfjeu5zNoKt68Xk7z3MAnrNxmtU5Utg1WzRkRPmI5MpcT2M2+zb856F4/Vd4s28t2ijfr3cnHkm6NrKVamGI/uP6J9r3acPmQ69WdouxGG/y9cvDDfHVvHgNaDDcs+qFONv89cfq0cz1u38DvWLfwOACcXR344/i0lyhTjwf1HfNy7A6cOm05B0Okkxs4ayT/nrxL2IJzOfby5e+NurufYPk9z6QI2/YYiL1oMXegjLL06kHH2uTbd2QVb3ynEj+iPlBCPuklLtMH3kRITUDdsirpeI5IDFoNShbpBUzSXL5qVZebMJcycqf++LVTIhYsXD1O2bGnu3g1iwICe7N2b/f0Qjo4OlC1bmj///Muw7Ny5S5QrV8fw2t9/DC4uTm/kqQL/34jHYb0hTZs2ZfLkyYwaNcpk3cCBA43mvFpZWbF161YAli9fzsaNG5HJZCgUCiZMmECNGs/m0FlaWlKvXj3OnTtHrVq18vVniI+OJ8DnK3xW+6FUKwkPDmf5mKUAlK1ajqHzhzPOazQ3LlxnR8B2Zm2bizZTS0xkDF8OnAvAzlU7GLV0DMsOrwCZjK1LfuTOlTtmZ5IS4kheOR+b8TP0j8MKDyVlxVwUZStgPcSHxPH9ybxxldSdm7CbuQxJq0WKfUzyfH8A0g/tRmZrj/2CtSCXo71/m5Q1q3J9rOKi4/hy7AJmrp2GSqXkUXAYc0Z9CUCFau/ju2icoYOak4Dpqxk9ewSbfvsOnVbHX39c4sdV28zOpI2JJ2ziUoqtmIRMpUQTEk6o7yIsq5THfc5IgrxHvHD7iLlrcZ86hDIHvwatjuQ/LxO9PvePnIqPjmfp+KVMWjMJpUpJeEg4i0brLyWXr1aekfNHGjqoOVk/ez3D5w5n1RH9Z/fnwT/Z/a15o4hZOdtaMqNTHXy2nEKj1VHc2ZbZnevx76NoZvxyjp+GeQEQEp1EITsrVIr8m32UEB3PKp/ljFs9AaVaSURwOAFjlgHwXtVyDJk/DB+vMQReuM6ugO1M3zYH3ZPzb+GT82/DzG/oN3Mgy46tRKfTcfX0Ffasef0R86d0sXHEzFyAy5fTkKmUZD4MI2b6l6gqvY+z/zgiegzC9rOOKNwLY9W0AVZNn00DiBrqQ8K673H0HYH7lvWgVJB67HeSfzHvalRW7+KxiouOY8G4Rcz4egpKlYrQ4FDmjdb/0v5+tffxWTjWqIOak+JlihP+INzsHM+LjY5j1pj5zF07A5VaxcOgUGaO0h+DitUqMGmxD71b9ufezfss8V/Ooo3zUCjkRIZFMWXorDzL8ZQUH0fSsi+xmzgTVCp0YY9IWjwXRbkK2I7yIX5EfzL/vULqts3Yz1sGOi266GgSZ08GIGX9KmyGjcVhpb5jnvHnKdJ2576dioqKZuDA8WzZsga1WsW9eyH06zcagBo1qrF69Xw8PPTTAMuWLUV4eCSZZl49EIQXkUkFaWJDPutUqsPbjmDim5oJbztCtrzPKt52BBNrbSzedgQTY9NeXuZt2LmozssLvWG9ff56eaE3bIlb7m9UzA9jI/N2SlReeKzN+Xmsb0uqLvfPo85r+6q/m1+5xY6Z3vD5tiU+PPm2I5hQub73tiNgY106X/abnBKUL/vNa+IvZwmCIAiCIBQQ//WpAm/kqQKCIAiCIAiCkFtixFUQBEEQBKGA+K/P8BQjroIgCIIgCEKBIEZcBUEQBEEQCgipAP151vwgRlwFQRAEQRCEAkGMuAqCIAiCIBQQ//U5rqLjKgiCIAiCUED81zuuYqqAIAiCIAiCUCCIEVdBEARBEIQC4r893ipGXAVBEARBEIQCQib91ydLCIIgCIIgCAWCGHEVBEEQBEEQCgTRcRUEQRAEQRAKBNFxFQRBEARBEAoE0XEVBEEQBEEQCgTRcRUEQRAEQRAKBNFxFQRBEARBEAoE0XEVBEEQBEEQCgTRcRUEQRAEQRAKBNFxFQRBEARBEAoE0XEVBEEQBEEQCgTRcRUEQRAEQRAKBNFxFQRBEARBEAoE0XEVBEEQBEEQCgTl2w5QECQlJbF48WIuXLiAQqHA3t4ePz8/HBwcaNOmDWXLlgVAp9ORnJxMx44dGTlyJAAVKlTg5s2bPHz4kObNm9OlSxdmzpxp2PeNGzfo2LEj8+bNo1OnTrnOevHiRWbNmmW07NatW4wYMYKNGzeyb98+XF1dAXj48CG9e/fm+PHjZr/f8z/ft99+S/369Q3rmzVrxvfffw9gdKzS0tKoUaMG48aNw9XVNccsT/cP8MMPP/DTTz8hSRIymYzPP/+cjh07vjDfiz67l70fwPHjxxkyZAg7d+6kSpUqhuWBgYHMnTuXuLg4tFotH374IZMnT8ba2vq1jt/LjpuTkxOLFi3ijz/+wMrKCltbW0aMGEHdunWRJIm+fftSs2ZNRowYAUBcXByfffYZS5YsMcqbGw8fPsyxnnfq1OmN1Ousbt26Rfv27Vm+fDmtW7c2LP/zzz9ZuXIlUVFR6HQ6KlWqxKRJk3B3dzf5GZ767LPP6NGjR57kev49nq/jWevWwYMHWbt2LZmZmUiShLe3N/3798+XHNm1Szkdw169ehEeHo61tTVarRZbW1tGjhxJvXr1cp1rxowZXLp0CY1GQ0hIiCFf7969cXJyMjnPYmJi6NChAwsXLqRu3boA/P333/j5+bFjxw7s7Oxe+LPLZDI0Gg1ubm506NCBDRs2ABASEoKrqyvW1tYUL16clStXUqFCBSpWrAiAJEkkJibSsGFDpk2bhkKhACA2NpZGjRoxZswYvvjiC2JjY+nbty8Ajx8/BjC0rRs2bGD+/PnUrl3bUP/37NnD+vXr0Wq1yOVy2rRpw6BBg1AqX+9r+Ny5cwwePJiSJUsiSRIajYauXbvSp0+f19rPy94jICCATZs2GS3Pqd6eOnWKRYsWAdkf38zMTJo0aULr1q2ZMmUKAJ9++ikZGRnEx8eTkpJCkSJFAFiwYAEVKlTINterfI8GBARgaWmJSqUyrK9cuTLz5s3Dz8+Ps2fP4uDggE6nQ6lUMmDAALy8vDhz5gwzZ87k4MGDRu8ZEBBAYmIiEydOzP2BFfKGJLyQVquVunbtKi1dulTSaDSSJEnSn3/+KdWtW1e6evWq1LRpU6Py4eHh0gcffCDduXNHkiRJev/99yVJkqQHDx5ItWvXlpo0aSJlZmYayi9atEiqU6eOtHPnznzJ/91330kdOnSQfvzxR+l///ufNHToUMO6Bw8emOR/XVl/vv/9739S06ZNpcTERMP6pk2bSg8ePDB5L51OJy1atEjq1q3bC7M83f/ly5clb29vKTU1VZIkSXr8+LHUuHFj6caNGzlme93PLuv7PTVs2DBp5MiRkr+/v9HyNm3aSJcuXTK8z9SpU6W5c+fmmCUnLzpuISEhUs+ePaU5c+ZI6enpkiRJ0r///ivVr19fOnv2rCRJkhQWFibVqVNH+ueffySdTicNGjRI+u677147x8syvqiev+l6PXfuXGnkyJHS559/blh24cIFqX79+tLff/9tWLZ582apU6dOOf4Mee1ldfxp3QoPD5eaNGkixcTESJIkSUlJSdLHH38sHT16NF9yPH3PrO1SdsdQkiSpZ8+ehrolSZJ05coVqXbt2tLt27fzJFtO+XI6z06cOCE1adJESkhIkGJjY6UWLVpIly9ffq19z5s3TxozZozh9fM/oySZnveJiYlS48aNpZMnTxqWbdy4URo5cqTUqlUrSafTGZVfvny5tHz5cqNlEyZMMNT/nTt3Su3atZOCg4MN+x82bJg0ceLEHH+WnJw9e1bq2bOnUdZGjRrl6Wf0/HtI0qvX2+yO79GjR6XBgwdLdevWlVJSUozW7dy5U5owYcIr5XqV79Gn3znZyfqZSJIkhYSESA0aNJBOnz4t6XQ6qWnTptLVq1eNtmnZsqV08+bNV8onvBliqsBLnDt3jrCwMEaOHGn4zbhOnTrMmzcPnU5nUj4qKgpJkrCxsTFZZ2NjQ6VKlbhw4YJh2enTp/NkNCM7Fy9eZPXq1axYsQILCwtat25NcHAwv/76a768n5ubG/Xq1WP+/PkvLSuTyRgxYgS3b98mMDDwpeWfHtfU1FQAXFxcWL58OU5OTjlu87qf3fNiYmI4e/YsPj4+HDhwgKSkJMO6x48fk5aWBoBcLmf48OF4enq+dJ/Zyem4XbhwgdDQUCZOnIharQb0IwdDhgxh1apVALi7uzNlyhR8fHz49ttvkSQpT0decvL084iNjX2j9Vqj0fDrr78yevRo/v33X0JCQgBYtWoVQ4YM4cMPPzSU7dGjB15eXmRkZOR5jleRUx2PjY1Fo9EY6o+NjQ1ffvkl5cqVy7csWdulnI5hdqpWrYqnpyfbt2/Pt2wvOs+aNGlCo0aNmD17NlOnTqVLly588MEHr7V/Dw8Pbt++/VrbxMbGkpqaiqOjo2HZrl276N69O2q1mrNnz77W/gICAvD396dkyZIA2NraMmfOHPbu3cujR49ea1/PS09PR6FQZDsCnZdyU2937dpFy5YtqVatGvv27ctVjrxsb0qUKEHv3r358ccfkclkdOzYkb179xrWX7p0CQcHB95///1cZRbylpgq8BLXr1+nYsWKyOXGffzGjRvz8OFDIiMj8fb2Jj09ndjYWKpWrUpAQADu7u7Z7s/T05NDhw5Rp04drly5QoUKFZAkKc9zR0dHM3bsWGbPnk3JkiW5ePEiKpWKefPmMXjwYMOlt7zm5+dH+/btOX36tNGl7+yo1WpKlSrFvXv3qFat2gvLNmrUiF27dtGwYUM+/PBDPDw88Pb2pnDhwjlu86qfXU727NlD/fr1KV68OFWqVGHPnj10794dgIkTJzJkyBDc3Nzw8PCgefPmNGnS5IU/w4tkd9xiYmKoUqUKMpnMqGytWrVYvHix4bWXlxdHjhxhzZo1HDp0yKR8XnhZPX9T9fq3336jaNGilClThhYtWrBt2zZ8fHy4fPkyfn5+JuX79etn8jNk9aLLknkhax1/qmLFijRv3pwWLVpQqVIlPDw8aN++PaVKlcqz933R53X06NFsj2FOypcvz8mTJ/Ms2/NedJ6B/txo164d7u7uRp/nq9BoNBw6dMjoF5qceHt7k5mZSXR0NGXLlsXf39/QSQ4MDOTx48fUrFkTT09Ptm3b9sptaExMDI8ePTJp4xwcHChXrhz//vsvxYoVe62f69q1a3h7e6PT6QgJCcHT0xM3N7fX2sfrMrfexsTEcObMGebOnYtCoWDz5s188sknucrysvZm4MCBRlMFevfuTefOnbPd1/vvv8/PP/8MQKdOnejRowe+vr7I5XJ++eWXXGcV8p4YcX0JuVyOhYVFjuvd3NzYvXs3+/fvx9vbG0mSXthha9asGb///js6nY4DBw6YPUr3IjqdjvHjx9O2bVtatmxptK5q1ap07tyZadOm5fn7gn4kYdasWUyZMsVo5CQnMpkMS0tLk84lYJjLCvoOwKpVq9i3bx+enp78+++/dOjQgcuXL+e471f97LL+y+rnn3+mXbt2gL5zuHXrVsO6Tp068ccff+Dj44NSqcTPz485c+a89OfNSXbHTSaTodVqTcpqNBqjzmlycjI3btxArVbzzz//mJ3hRV5Wz99EvQbYuXOn0Weya9cuw4jq02OSkZGBt7c33t7eNGnShEuXLhn9DFn/5Wen9amndTyrGTNmcPz4cbp160ZoaCifffYZhw8fzrP3fNHn9aJj+Kr589KLzjOA4OBgNBoN9+7dIyIi4qX7e9pp9/b2pkOHDkiSxLhx41663e7du9m3bx+DBw8mMTGR5s2bG9bt2LGDNm3aoFAo8PLy4ujRo4Z5ra/qVc7lV1WlShV2797Nr7/+yunTpwkKCmLt2rWvvZ/XZU693bNnD3Xq1MHBwYHmzZtz8+ZNrl+/nqscL2tv1q5da3Se59Rpfepp/S5evDilSpXi/PnzZGRkcPLkSdq2bZurrELeEx3Xl6hSpQrXr183GT1asmQJ586dM7yWy+X4+voSERHBN998k+P+bGxsqFixIn/99Rdnz57Nl8upAQEBZGRk5NhYDx8+nODgYKNLInmpQYMGrzRlICMjg/v371OuXDns7e1JTEw0Wh8dHY2DgwMAv/zyC3/++SelSpWiR48erFmzhj59+ph0NrN61c8uO//++y+3bt1izpw5NGvWjJUrV3L79m0uX75MUFAQK1euxNbWlpYtWzJt2jS2bNmS68upzx+3Dz74gGvXrqHRaIzKXb582ejGq5kzZ9KgQQMWLlyIv78/0dHRucrxIjnV8zdRr6Ojozl16hTffvstzZo1w9/fn4SEBI4cOULVqlUNHVS1Wm34wipRooTJ8XuTstbxp06ePMn+/fspXLgwnTt3ZunSpfj7+7Njx448f//nP68XHcOc3Lx50+SmtrzyovMMIDU1lbFjx+Lv70/Xrl3x9fV96TSfrL+gHDhwgPnz5xtd8n+Zvn37UqhQIRYsWADoP8O9e/dy8OBBmjVrxhdffAHoL3+/CmdnZ0qWLMnff/9ttDwmJoYHDx5QuXLlV86WHVtbWzw9PQ31P7+YW2937drF33//TbNmzejQoQNyudzkl5PXlZftzfP1u3Pnzuzdu5eTJ09St25dbG1tc5VVyHui4/oSNWvWxMXFhYCAAMNvzKdOnWLXrl0mc3uUSiW+vr6sWrWKqKioHPfp6enJ4sWLqVKlymvfUfoyp0+fZvv27SxdujTHfavVaubNm8eaNWvy9L2z8vPz448//iAyMjLb9TqdjhUrVvDBBx9QsmRJbG1tKVWqFIcOHTKUyXo5TqvVsnjxYmJiYgD9l8nt27df2Oi/zmf3vF27dvHZZ59x8uRJjh8/zm+//Ya3tzdbt27F2dmZ77//nj///NNQ/saNG1SqVOnVDs4LZD1u7u7ulCtXjrlz5xo6X9euXWP16tUMHToU0I9mXL9+HR8fH+rVq4eXlxeTJk3KdY4XyVrPs4465We9Bv2IWJ06dfj99985fvw4J06cYPDgwWzdupURI0awcuVKoxHnwMBAHjx4YLgr/E17vo4/ZWlpyeLFi3n48CGgv7KQV/UnO1k/r59++inHY5idK1eucOjQoXy7XPqi8wxg9uzZVK9enVatWjFs2DCSk5P59ttv8yVLVk+fXBAYGMiJEydwcnLijz/+4Pjx4xw/fpyZM2eybdu2V54OM3r0aObOncuDBw8A/VUSf39/vLy8XnuawPO0Wi3nz5/PdQf4Zcypt9euXSM8PNzw+R4/fpyvv/6aX3/99ZWuyL1IXrQ3QUFB/Pjjj3Tr1s2wrHXr1pw9e5a9e/e+dKRWeDvEHNeXkMlkrFq1innz5tGuXTuUSiVOTk6sXbsWe3t7k/KNGjWievXqfPXVV8yePTvbfTZt2pTJkyczatSoPM/79ddfo9VqGTBggNHyrl27Gr2uWrUqffr0ybcbtZ5e+s5pjuHTxxUtWbLEsH7hwoVMnz6dlStXotFoqFChAlOnTgX0vwXHxsbSrVs3w7SCtm3bvvAL9XU/u6eejrA8fYzXU3379qVLly5MnDiRtWvXGkY4VSoVZcqUMfpZzPX8cQsICGDp0qW0a9cOhUKBg4MDCxcuxMPDg5CQEObOncuGDRsMUyLGjx9Pp06d+PHHH43mCea1rPX8qfys16C/pDxmzBijZT169GD9+vU4OTmxdOlSli1bxuPHjw2P15kwYQI1a9bMcU5zrVq18Pf3z7OML6vjoL9BcPjw4QwePNjwC0nDhg0ZNmxYnuV43tPP6+effzaZC/z0GN69excAf39/rK2tDVMEli5dSvHixfM808vOs0aNGnHx4kXD/EOlUsnChQvp0qUL9evXz7eOPujn9Xbs2JH58+ejVqtNzqV27dqxZMkSTp06RaNGjV66v7Zt26JQKBg1ahQZGRlotVratm3L4MGDzcr3dI6rTCYjMzOTChUqmLT5uXXx4kWqV69ueN2+ffvXrre7du2iU6dORlNNPDw8KFOmDL/++qtRh/F1vai9eX6Oq5WVleGXoeXLl7Nx40ZkMhkKhYIJEyZQo0YNQ1lLS0vq1avHuXPnqFWrltn5hPwjk/LjDgpBEARBEARByGNiqoAgCIIgCIJQIIiOqyAIgiAIglAgiI6rIAiCIAiCUCCIjqsgCIIgCIJQIIiOqyAIgiAIglAgiI6rIAiCIAiCUCCIjqsgCIIgCIJQIPwfIfXbY6VCyjMAAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_201_1.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_201_1.png" } }, "output_type": "display_data" @@ -3759,14 +3793,14 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABJEAAAFRCAYAAADEnjyhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACCYElEQVR4nO3de3xU9Z0//teZmdwkpGAMphR0/UYhkIqi20sKGmBRiUKK1P68dAFLi/ZBV/2y++Wrde3lt9tVLO2vVl36XSlYtIWqXURDAQtFU4359uINNkGsqTcWIzFCwyWZZGbO74/0DGfOnPuc65zX8x8lc/ucc2bOeX/e5/N5fwRRFEUQERERERERERHpiPndACIiIiIiIiIiCj4mkYiIiIiIiIiIyBCTSEREREREREREZIhJJCIiIiIiIiIiMsQkEhERERERERERGWISiYiIiIiIiIiIDCX8bgARRcPBgwexYMECvPLKK3mPrVu3Dtu2bYMoishkMrjkkkuwcuVKDA4OYvHixQCAkydP4oMPPsA555wDAPjc5z6H22+/HcPDw5g9ezYmT56M9evXAwAeeugh/OpXvwIAvPvuuxg7dixGjx4NAHjggQdw1llnebHJRERERKEwefJkTJo0CbFYDIIgYGBgAJWVlfjOd76D888/H1u2bME3vvENrFixArfddlv2daIoYu7cuaioqMC2bdt83AIi8gqTSETkqx07dmD37t147LHHUF5ejmQyiVtvvRUPPvgg/vEf/xFPPfUUAOB3v/sd/vVf/zX7b8muXbswefJkdHZ2oru7G3V1dbjppptw0003AQAWL16ML33pS5g3b57n20ZEREQUFhs3bsTpp5+e/ff69evx3e9+F4899hgAYPz48Whtbc1JIv3xj3/E4OAgKioqPG8vEfmD09mIyFe9vb1Ip9MYHBwEAJSVleGb3/wm5s6da+r1mzdvxty5c3HllVdi48aNbjaViIiIKBJSqRTef/99fOxjH8v+bdKkSTjttNPw8ssvZ//25JNPoqWlxY8mEpFPmEQiIl9dffXVqKqqwsyZM3Httddi9erVeP/99zFt2jTD17755pt49dVX0dzcjIULF+Kpp57CkSNHPGg1ERERUXFZunQpWlpaMHPmTFxxxRUAgHvuuSfnOVK8BQADAwN46aWXcMkll3jeViLyD5NIROSr0aNHY8OG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ZyMiKkDYh4oXQ72hsB8DIiIKLqevMV5es4rhGk9EwcORSEREBQj7UHHprmeYp4KF/RgQEVFwOX2N8fKapbzGc3U2InICk0hERAUohqHiVuorBFExHAMiIgomp68xXl+z5Nd4rbqCRERWcDobEVEBOFTcfzwGRETkFqevMbxmEVHYcSQSEVEBimE6WNjxGBARkVucvsbwmkVEYcckEhFRgcI+HawY8BgQEZFbnL7G8JpFRGHG6WxERERERERERGSISSQiIiIiIiIiIjLEJBIRERERERERERliEomIiIiIiIiIiAwxiURERERERERERIaYRCIiIiIiIiIiIkNMIhERERERERERkaGE3w1wQiwm+N0E30R524Fob3+Utx3g9kd5+6O87UC0tj9K2xo2UT02Ud1uL3Efu4v7113cv+7jPnaXtH/19rMgiqLoVYOIiIiIiIiIiCicOJ2NiIiIiIiIiIgMMYlERERERERERESGmEQiIiIiIiIiIiJDTCIREREREREREZEhJpGIiIiIiIiIiMgQk0hERERERERERGSISSQiIiIiIiIiIjLEJBIRERERERERERliEomIiIiIiIiIiAwxiURERERERERERIaYRCIiIiIiIiIiIkNMIhERERERERERkaHQJpFaW1tx5ZVX4rLLLsPPf/5zv5vjuSVLluCqq67C5z//eXz+85/Ha6+95neTXHf8+HHMnz8fBw8eBAC8+OKLWLBgAS6//HL88Ic/9Ll17lNu/ze+8Q1cfvnl2e/Arl27fG6hOx588EFcddVVuOqqq/C9730PQLSOvdr2R+XYA8CPfvQjXHnllbjqqqvw8MMPA4jO8Vfb9igde6Kguffee3HHHXf43YyiFMW41kt79uzBokWLMG/ePHz3u9/1uzlF54knnsh+dz//+c/j4osvxr/8y7/43ayi8tRTT2Xj4Xvvvdfv5hSdhx56CFdccQUWLFiAH//4x8YvEEOop6dHnD17tnjkyBHxxIkT4oIFC8Q//elPfjfLM5lMRpwxY4Y4PDzsd1M88+qrr4rz588XGxoaxPfee08cGBgQm5qaxHfffVccHh4Wly1bJj733HN+N9M1yu0XRVGcP3+++MEHH/jcMne1t7eL1157rZhMJsWhoSFxyZIlYmtra2SOvdr2//rXv47EsRdFUfzd734nXnfddeLw8LA4MDAgzp49W9y/f38kjr/atnd3d0fm2BMFzYsvvih+5jOfEW+//Xa/m1J0ohjXeundd98VZ86cKb7//vvi0NCQeP311xfldTMo3njjDfGyyy4T+/r6/G5K0Th58qT4qU99Suzr6xOHh4fFa665Rmxvb/e7WUWjvb1dnD9/vnjs2DExlUqJN998s/jMM8/oviaUI5FefPFFfPazn8WYMWNw2mmn4YorrsDOnTv9bpZn/vznP0MQBCxfvhwtLS342c9+5neTXPf444/j29/+NsaNGwcA2Lt3L84++2xMnDgRiUQCCxYsKOrvgHL7T548iUOHDuGb3/wmFixYgPvvvx+ZTMbnVjqvpqYGd9xxB0pLS1FSUoK6ujq8/fbbkTn2att/6NChSBx7APj0pz+NRx55BIlEAn19fUin0+jv74/E8Vfb9rKyssgce6IgOXr0KH74wx/ia1/7mt9NKUpRjGu9tGvXLlx55ZWora1FSUkJfvjDH+KCCy7wu1lF6zvf+Q5WrlyJ008/3e+mFI10Oo1MJoOBgQGkUimkUimUlZX53ayi0dXVhZkzZ6KyshLxeByXXHIJdu/erfuaUCaRDh8+jJqamuy/x40bhw8++MDHFnmrv78fjY2N+Pd//3f89Kc/xS9+8Qu0t7f73SxX/du//Rv+9m//NvvvqH0HlNvf19eHz372s7j77rvx+OOP449//CN++ctf+thCd5x33nm48MILAQBvv/02tm/fDkEQInPs1bb/kksuicSxl5SUlOD+++/HVVddhcbGxkj99pXbnk6nI3XsiYLiW9/6FlauXImqqiq/m1KUohjXeumdd95BOp3GV77yFbS0tGDTpk342Mc+5nezitKLL76IwcFBNDc3+92UolJZWYnbbrsNzc3NuPTSS/GJT3wCF110kd/NKhoNDQ144YUXcPToUSSTSezZswcffvih7mtCmUQSRTHvb4Ig+NASf0yfPh3f+973cNppp+H000/HNddcg7a2Nr+b5amofwcmTpyIf//3f0d1dTUqKiqwePHiov4O/OlPf8KyZctw++2346yzzsp7vNiPvXz7/8f/+B+ROvYAcOutt6KjowPvv/8+3n777bzHi/n4y7e9o6MjcseeyG9PPPEEPv7xj6OxsdHvphQtxrXuSqfT6OjowJo1a/D4449j3759ePLJJ/1uVlH6xS9+gS9/+ct+N6PovP766/jP//xPPPvss3jhhRcQi8Wwfv16v5tVNBobG7Fo0SIsXrwYX/3qV3HxxRejpKRE9zWhTCKdeeaZOdmxw4cPZ6f5RMEf//hHdHR0ZP8tiiISiYSPLfJe1L8DBw4cwDPPPJP9dzF/B1566SXceOON+Kd/+idcffXVkTv2yu2P0rHv7u7G/v37AQAVFRW4/PLL8bvf/S4Sx19t27dv3x6ZY08UFNu3b0d7ezs+//nP4/7778eePXtw9913+92sosK41l1nnHEGGhsbcfrpp6O8vBx/93d/h7179/rdrKIzNDSEP/zhD5gzZ47fTSk6L7zwAhobG1FdXY3S0lIsWrQIv//97/1uVtE4fvw4LrvsMrS2tuLRRx9FRUUFJk6cqPuaUCaRPve5z6GjowMfffQRBgYG8Otf/xqXXnqp383yzLFjx/C9730PyWQSx48fx5NPPonLLrvM72Z56oILLsBbb72VHaK7bdu2SH0HRFHE3Xffjb/85S8YHh7GY489VpTfgffffx9f//rX8f3vfx9XXXUVgGgde7Xtj8qxB4CDBw/irrvuwtDQEIaGhvCb3/wG1113XSSOv9q2f+pTn4rMsScKiocffhjbtm3DU089hVtvvRVz5szBnXfe6XezigrjWnfNnj0bL7zwAvr7+5FOp/H888+joaHB72YVnQMHDuBv/uZvcNppp/ndlKJTX1+PF198ESdPnoQoitizZw/OP/98v5tVNA4ePIivf/3rSKVSOHbsGJ544gnDKZmhTPOfeeaZWLlyJZYsWYLh4WFcc801mDZtmt/N8szs2bPx2muvYeHChchkMrjhhhswffp0v5vlqbKyMqxevRq33HILkskkmpqaMG/ePL+b5Zn6+nrcdNNNuP7665FKpXD55Zdj/vz5fjfLcevXr0cymcTq1auzf7vuuusic+y1tj8Kxx4Ampqasue6eDyOyy+/HFdddRVOP/30oj/+atv+D//wDxg7dmwkjj0RRQfjWnddcMEF+OpXv4obbrgBw8PDmDFjBr7whS/43ayi895776G2ttbvZhSlmTNnoqurC4sWLUJJSQnOP/983HTTTX43q2jU19fj8ssvR0tLC9LpNG688UZcfPHFuq8RRLXiMkRERERERERERDKhnM5GRERERERERETeYhKJiIiIiIiIiIgMMYlERERERERERESGmEQiIiIiIiIiIiJDTCIREREREREREZGhhN8NIKJoOHjwIBYsWIBXXnkl77F169Zh27ZtEEURmUwGl1xyCVauXInBwUEsXrwYAHDy5El88MEHOOeccwAAn/vc53D77bdjeHgYs2fPxuTJk7F+/XoAwEMPPYRf/epXAIB3330XY8eOxejRowEADzzwAM466ywvNpmIiIgoFCZPnoxJkyYhFotBEAQMDAygsrIS3/nOd3D++edjy5Yt+MY3voEVK1bgtttuy75OFEXMnTsXFRUV2LZtm49bQEReYRKJiHy1Y8cO7N69G4899hjKy8uRTCZx66234sEHH8Q//uM/4qmnngIA/O53v8O//uu/Zv8t2bVrFyZPnozOzk50d3ejrq4ON910E2666SYAwOLFi/GlL30J8+bN83zbiIiIiMJi48aNOP3007P/Xr9+Pb773e/iscceAwCMHz8era2tOUmkP/7xjxgcHERFRYXn7SUif3A6GxH5qre3F+l0GoODgwCAsrIyfPOb38TcuXNNvX7z5s2YO3currzySmzcuNHNphIRERFFQiqVwvvvv4+Pfexj2b9NmjQJp512Gl5++eXs35588km0tLT40UQi8gmTSETkq6uvvhpVVVWYOXMmrr32WqxevRrvv/8+pk2bZvjaN998E6+++iqam5uxcOFCPPXUUzhy5IgHrSYiIiIqLkuXLkVLSwtmzpyJK664AgBwzz335DxHircAYGBgAC+99BIuueQSz9tKRP5hEomIfDV69Ghs2LABO3bswDXXXIO+vj7cdNNNWLNmjeFrN2/ejFmzZmHMmDGYNm0aJkyYkB1yTURERETmbdy4EU8//TQeeughDA4OYvr06aiurs55zoIFC7Br1y4MDw9j165dmDNnDuLxuE8tJiI/MIlERL5at24dXn75ZUycOBFf/OIXsWbNGqxbtw6bNm3Sfd3JkyexdetWvPTSS5gzZw7mzJmD3t5e/PznP8fw8LBHrSciIiIqLlOnTsU3vvEN3HXXXTh48GDOYzU1NZg6dSra2tqwdetWXH311T61koj8wiQSEflqcHAQP/jBD3D06NHs39566y1MnTpV93Wtra0YO3Ysnn/+eezZswd79uzB7t27cfLkSezYscPlVhMREREVr/nz5+PCCy/E3XffnffYwoUL8fDDD+PYsWOYNGmSD60jIj9xdTYi8szJkycxffr0nL9t3rwZgiDguuuugyAIyGQy+OQnP4n77rtP9702b96ML3/5yzlDqKuqqrB48WJs3LiRRR6JiIiICvDNb34TLS0teP7553P+PnfuXHz729/GypUrfWoZEflJEEVR9LsRREREREREREQUbJzORkREREREREREhphEIiIiIiIiIiIiQ0wiERERERERERGRISaRiIiIiIiIiIjIEJNIRERERERERERkiEkkIiIiIiIiIiIyxCQSEREREREREREZYhKJiIiIiIiIiIgM/f8DoNXX46X5bAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJEAAAFRCAYAAADEnjyhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACBtUlEQVR4nO39e3xV9Z0v/r/2JTdJUjANjRR0nChGMqDU6SUFDVBEogQttb+qPYBlvPRhR3toD616epuZTqWl89Oqw5yWiqI9ULWDIqlgoWiqMacXb9gEsWa8MRhNIzRckp3svdf3j3Rt1l57XT7rvtber+c/ys6+fNZae6/1/rzX5/P+xCRJkkBERERERERERGQgHnQDiIiIiIiIiIgo/JhEIiIiIiIiIiIiU0wiERERERERERGRKSaRiIiIiIiIiIjIFJNIRERERERERERkikkkIiIiIiIiIiIylQy6AURUGg4cOID29na88MILBX/bsGEDOjo6IEkSstkszj//fKxevRojIyNYvnw5AOD48eN49913cfrppwMAPvnJT+LrX/86xsbGMH/+fDQ1NeGnP/0pAOAnP/kJfvnLXwIA3nrrLUyaNAk1NTUAgLvuugunnnqqH5tMREREFHpnnXUWpk+fjng8jlgshuHhYVRXV+M73/kOZs6cia1bt+KWW27Bl770Jdx0002510mShIULF6KqqgodHR0BbgER+YlJJCIK1I4dO7B79248+OCDqKysRCqVwk033YS7774bX/nKV7Bt2zYAwG9/+1v8y7/8S+7fsl27dqGpqQl//OMf0dfXh8bGRlx33XW47rrrAADLly/H5z//eSxevNj3bSMiIiKKgk2bNuHkk0/O/fuee+7Bd7/7XTz44IMAgClTpuCxxx7LSyL94Q9/wMjICKqqqnxvLxEFh9PZiChQAwMDyGQyGBkZAQBUVFTgm9/8JhYuXCj0+i1btuBTn/oULr74YmzatMnLphIREREVvXQ6jXfeeQcf+MAHco9Nnz4dJ510Ep5//vncY4888giWLl0aRBOJKEBMIhFRoD796U+jtrYWc+fOxec+9zmsXbsW77zzDmbNmmX62tdeew0vvPACFi9ejMsuuwzbtm3DoUOHfGg1ERERUfFYuXIl2tvbMXfuXFx00UUAgNtuuy3vOXKsBQDDw8N47rnncP755/veViIKFpNIRBSompoabNy4ETt27MDll1+OwcFBXHfddVi3bp3pa7ds2YL58+dj0qRJmDVrFqZOnYqHHnrIh1YTERERFY9NmzZh+/bt+PGPf4yRkRF8/OMfR11dXd5z2tvbsWvXLoyOjmLXrl1YsGABEolEQC0moqAwiUREgdqwYQOef/55TJs2DZ/97Gexbt06bNiwAZs3bzZ83fHjx7Ft2zY899xzWLBgARYsWICBgQH87Gc/w9jYmE+tJyIiIioezc3NuOWWW3DzzTfjwIEDeX+rr6/HjBkz8Jvf/AaPPvooPv3pTwfUSiIKEpNIRBSokZER/Nu//RsOHz6ce+zVV1/FjBkzDF+3fft2TJw4EU8//TT27NmDPXv2YPfu3Th+/Dh27tzpcauJiIiIitOSJUswa9asgulswPiUtnvvvRdHjhzB9OnTA2gdEQWNq7MRkW+OHz+O2bNn5z22ZcsWxGIxXHHFFYjFYshms/i7v/s73HHHHYbvtWXLFnzhC1/IG0ZdW1uL5cuX47777kN7e7sXm0BERERU9L75zW9i6dKlePrpp/MeX7hwIb797W9j9erVAbWMiIIWkyRJCroRREREREREREQUbpzORkREREREREREpphEIiIiIiIiIiIiU0wiERERERERERGRKSaRiIiIiIiIiIjIFJNIRERERERERERkikkkIiIiIiIiIiIylQy6AU4NDh4NugmBqaur5vaX6PaX8rYD3P5S3v5S3nag9LY/Ho9h0qQJQTeDNBw6dAzZrBR0M3xVar8/v3H/eo/72Fvcv97i/vWevI/N4q/IJ5FKLYBR4/aX7vaX8rYD3P5S3v5S3naA20/hkM1KJfldLMVt9hP3r/e4j73F/est7l/viexjTmcjIiIiIiIiIiJTTCIREREREREREZEpJpGIiIiIiIiIiMgUk0hERERERERERGSKSSQiIiIiIiIiIjLFJBIREREREREREZlKevnmy5cvx/vvv49kcvxj/vmf/xnHjh3DbbfdhlQqhba2NqxevdrLJljW3dOPrZ19GBxKIR4DshJQV1uBZa2NaGluMHzd/Tv3ITV2Ykm8RBzIZE88Z0JlAlddeBZeO3AYnS8eRFYC4jGg9dwpWH5Rk+V2PPXc27ivoweDQymhNrpB2S4nnynyPm59FhERUSmJYvxFpUcd5129pBnNp04MulmREVScHIX4PKg2BtE3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RERERERERERkikkkIiIiIiIiIiIyxSQSERERERERERGZYhKJiIiIiIiIiIhMMYlERERERERERESmmEQiIiIiIiIiIiJTTCIREREREREREZGpZNANcCoejwXdhEBx+0t3+0t52wFufylvfylvO1Ba219K2xo1pXpsSnW7/cL96z3uY29x/3qL+9d78XjMdD/HJEmSfGoPERERERERERFFFKezERERERERERGRKSaRiIiIiIiIiIjIFJNIRERERERERERkikkkIiIiIiIiIiIyxSQSERERERERERGZYhKJiIiIiIiIiIhMMYlERERERERERESmmEQiIiIiIiIiIiJTTCIREREREREREZEpJpGIiIiIiIiIiMgUk0hERERERERERGSKSSQiIiIiIiIiIjIV2STS9u3bcfHFF2PRokX4v//3/wbdHF8tX74cl1xyCS699FJceumleOmll4Juki+OHj2KJUuW4MCBAwCAZ599Fu3t7Vi0aBFuv/32gFvnLfW233LLLVi0aFHuO7Br166AW+idu+++G5dccgkuueQS/OAHPwBQWsdea/tL6fj/6Ec/wsUXX4xLLrkE9957L4DSOf5a215Kx54obL7//e/j5ptvDroZRalUY1u/7NmzB8uWLUNbWxu++93vBt2covPwww/nvruXXnopzjvvPPzzP/9z0M0qKtu2bcvFw9///veDbk7R+clPfoKLLroI7e3t+I//+A/zF0gR1N/fL82fP186dOiQdOzYMam9vV3605/+FHSzfJHNZqW5c+dKY2NjQTfFVy+++KK0ZMkSqbm5WXr77bel4eFhqbW1VXrrrbeksbExadWqVdJTTz0VdDM9od52SZKkJUuWSO+++27ALfNeV1eX9LnPfU5KpVLS6OiotGLFCmn79u0lc+y1tv9Xv/pVyRz/3/72t9IVV1whjY2NScPDw9L8+fOlffv2lcTx19r2vr6+kjn2RGHz7LPPSh//+Melr3/960E3peiUamzrl7feekuaO3eu9M4770ijo6PSlVdeWZTXzbB49dVXpQsvvFAaHBwMuilF4/jx49JHP/pRaXBwUBobG5Muv/xyqaurK+hmFY2uri5pyZIl0pEjR6R0Oi1df/310hNPPGH4mkiORHr22WfxiU98AhMnTsRJJ52Eiy66CDt37gy6Wb74r//6LwDAqlWrsHTpUvzsZz8LuEX+eOihh/Dtb38bkydPBgDs3bsXp512GqZNm4ZkMon29vai/Q6ot314eBgHDx7Erbfeivb2dtx5553IZrMBt9Ib9fX1uPnmm1FeXo6ysjI0NjbijTfeKJljr7X9Bw8eLJnj/7GPfQz3338/kskkBgcHkclkMDQ0VBLHX2vbKysrS+bYE4XJ4cOHcfvtt+OLX/xi0E0pSqUa2/pl165duPjii9HQ0ICysjLcfvvtOOecc4JuVtH6zne+g9WrV+Pkk08OuilFI5PJIJvNYnh4GOl0Gul0GhUVFUE3q2j09vZi7ty5qK6uRiKRwPnnn4/du3cbviaSSaT33nsP9fX1uX9PnjwZ7777boAt8s/Q0BBaWlrw7//+77jvvvvw85//HF1dXUE3y3P/+q//ir//+7/P/buUvgPqbf/zn/+MT3ziE/je976Hhx56CH/4wx/wi1/8IsAWeufMM8/EueeeCwB44403sGPHDsRisZI59lrbf/7555fM8QeAsrIy3HnnnbjkkkvQ0tJSUr999ban0+mSOvZEYfGtb30Lq1evRm1tbdBNKUqlGtv65c0330Qmk8EXv/hFXHrppdi8eTM+8IEPBN2sovTss89iZGQEbW1tQTelqFRXV+PLX/4y2tra0Nraig9/+MP4yEc+EnSzikZzczOeeeYZHD58GKlUCnv27MGf//xnw9dEMomUzWYRi8Vy/5YkKe/fxWz27Nn4wQ9+gJqaGpx88sm4/PLL0dnZGXSzfFfK34Fp06bh3//93zF58mRUVVVh+fLlRf8d+NOf/oRVq1bha1/7GqZNm1Zyx165/X/7t39bcsf/pptuQnd3N9555x288cYbJXX8ldve3d1dcseeKGgPP/wwTjnlFLS0tATdlKLF2NZbmUwG3d3d+N73vocHH3wQe/fuxSOPPBJ0s4rSz3/+c3zhC18IuhlF55VXXsF//ud/4sknn8TTTz+NeDyOe+65J+hmFY2WlhYsW7YMy5cvxzXXXIPzzjsPZWVlhq+JZBKpoaEBAwMDuX8PDAzkpvoUuz/84Q/o7u7O/VuSJCSTyQBbFIxS/g7s378fTzzxRO7fxf4deO6553D11Vfjq1/9Kj796U+X3LFXb38pHf++vj7s27cPAFBVVYVFixbht7/9bUkcf61tf/zxx0vm2BOFxeOPP46uri5ceumluPPOO7Fnzx5873vfC7pZRYWxrbc++MEPoqWlBSeffDIqKyuxcOFC7N27N+hmFZ3R0VH8/ve/x4IFC4JuStF55pln0NLSgrq6OpSXl2PZsmX43e9+F3SzisbRo0exaNEibN++HQ888ADKy8sxbdo0w9dEMon0yU9+Et3d3Xj//fcxPDyMX/3qV7jggguCbpYvjhw5gh/84AdIpVI4evQoHnnkEVx44YVBN8t355xzDl5//fXcEN2Ojo6S+Q5IkoTvfe97+Mtf/oKxsTE8+OCDRfsdeOedd/ClL30JP/zhD3HJJZcAKK1jr7X9pXT8Dxw4gG984xsYHR3F6Ogofv3rX+OKK64oieOvte0f/ehHS+bYE4XFvffei46ODmzbtg033XQTFixYgFtvvTXoZhUVxrbemj9/Pp555hkMDQ0hk8ng6aefRnNzc9DNKjr79+/H3/zN3+Ckk04KuilFp6mpCc8++yyOHz8OSZKwZ88ezJw5M+hmFY0DBw7ghhtuQDqdxpEjR/CLX/zCdEpmJNP8H/rQh7B69WqsWLECY2NjuPzyyzFr1qygm+WL+fPn46WXXsJll12GbDaLq666CrNnzw66Wb6rqKjA2rVrceONNyKVSqG1tRWLFy8Oulm+aGpqwnXXXYcrr7wS6XQaixYtwpIlS4JulifuuecepFIprF27NvfYFVdcUTLHXm/7S+X4t7a2Yu/evbjsssuQSCSwaNEiXHLJJTj55JOL/vhrbfs//uM/YtKkSSVx7ImodDC29dY555yDa665BldddRXGxsYwZ84cfOYznwm6WUXn7bffRkNDQ9DNKEpz585Fb28vli1bhrKyMsycORPXXXdd0M0qGk1NTVi0aBGWLl2KTCaDq6++Guedd57ha2KSJEk+tY+IiIiIiIiIiCIqktPZiIiIiIiIiIjIX0wiERERERERERGRKSaRiIiIiIiIiIjIFJNIRERERERERERkikkkIiIiIiIiIiIylQy6AURUGg4cOID29na88MILBX/bsGEDOjo6IEkSstkszj//fKxevRojIyNYvnw5AOD48eN49913cfrppwMAPvnJT+LrX/86xsbGMH/+fDQ1NeGnP/0pAOAnP/kJfvnLXwIA3nrrLUyaNAk1NTUAgLvuugunnnqqH5tMREREFHpnnXUWpk+fjng8jlgshuHhYVRXV+M73/kOZs6cia1bt+KWW27Bl770Jdx0002510mShIULF6KqqgodHR0BbgER+YlJJCIK1I4dO7B79248+OCDqKysRCqVwk033YS7774bX/nKV7Bt2zYAwG9/+1v8y7/8S+7fsl27dqGpqQl//OMf0dfXh8bGRlx33XW47rrrAADLly/H5z//eSxevNj3bSMiIiKKgk2bNuHkk0/O/fuee+7Bd7/7XTz44IMAgClTpuCxxx7LSyL94Q9/wMjICKqqqnxvLxEFh9PZiChQAwMDyGQyGBkZAQBUVFTgm9/8JhYuXCj0+i1btuBTn/oULr74YmzatMnLphIREREVvXQ6jXfeeQcf+MAHco9Nnz4dJ510Ep5//vncY4888giWLl0aRBOJKEBMIhFRoD796U+jtrYWc+fOxec+9zmsXbsW77zzDmbNmmX62tdeew0vvPACFi9ejMsuuwzbtm3DoUOHfGg1ERERUfFYuXIl2tvbMXfuXFx00UUAgNtuuy3vOXKsBQDDw8N47rnncP755/veViIKFpNIRBSompoabNy4ETt27MDll1+OwcFBXHfddVi3bp3pa7ds2YL58+dj0qRJmDVrFqZOnYqHHnrIh1YTERERFY9NmzZh+/bt+PGPf4yRkRF8/OMfR11dXd5z2tvbsWvXLoyOjmLXrl1YsGABEolEQC0moqAwiUREgdqwYQOef/55TJs2DZ/97Gexbt06bNiwAZs3bzZ83fHjx7Ft2zY899xzWLBgARYsWICBgQH87Gc/w9jYmE+tJyIiIioezc3NuOWWW3DzzTfjwIEDeX+rr6/HjBkz8Jvf/AaPPvooPv3pTwfUSiIKEpNIRBSokZER/Nu//RsOHz6ce+zVV1/FjBkzDF+3fft2TJw4EU8//TT27NmDPXv2YPfu3Th+/Dh27tzpcauJiIiIitOSJUswa9asgulswPiUtnvvvRdHjhzB9OnTA2gdEQWNq7MRkW+OHz+O2bNn5z22ZcsWxGIxXHHFFYjFYshms/i7v/s73HHHHYbvtWXLFnzhC1/IG0ZdW1uL5cuX47777kN7e7sXm0BERERU9L75zW9i6dKlePrpp/MeX7hwIb797W9j9erVAbWMiIIWkyRJCroRREREREREREQUbpzORkREREREREREpphEIiIiIiIiIiIiU0wiERERERERERGRKSaRiIiIiIiIiIjIFJNIRERERERERERkikkkIiIiIiIiIiIyxSQSERERERERERGZYhKJiIiIiIiIiIhM/X92d0kye5UikgAAAABJRU5ErkJggg==\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_203_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_203_0.png" } }, "output_type": "display_data" @@ -3874,7 +3908,7 @@ "The model performance for testing set\n", "--------------------------------------\n", "RMSE is 5.137400784702911\n", - "R2 score is 0.6628996975186952\n" + "R2 score is 0.6628996975186953\n" ] } ], @@ -3922,14 +3956,14 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_210_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_210_0.png" } }, "output_type": "display_data" @@ -4552,14 +4586,14 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr0AAAHmCAYAAAB+hTZxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABXwElEQVR4nO3deZxU1Z3///e9t6q6u3qhq7qrih2kW0UFXEIiosEVEQRRNBmXSJyJS6KTRL7R6CRxRI2jSVScLGZiTOJvIk40iUIwBDFjYkIgxmWEFldQdujqBXpfqqvu74/qLrrprXqrjdfz8ch037VOneGBb4/nfI5h27YtAAAAIIOZyW4AAAAAMNIIvQAAAMh4hF4AAABkPEIvAAAAMh6hFwAAABmP0AsAAICM50h2Awbi4MEGRSKJq7BWVJSnqqr6hH3e0Y7+Thz6OnHo68SivxOHvk4c+jp+pmnI48nt8Vpahd5IxE5o6O34TCQO/Z049HXi0NeJRX8nDn2dOPT10DG9AQAAABmP0AsAAICMR+gFAABAxiP0AgAAIOMRegEAAJDxCL0AAADIeIReAAAAZDxCLwAAADJeXJtTrFmzRj/+8Y8VCoV03XXX6Zprruly/aWXXtL3v/99RSIRTZ8+Xffee69cLpdWrVqlhx56SEVFRZKkc845R8uWLRv+bwEAAICYhx/+jsrKNqutLaQ9e3Zr8uQpkqTPfOZKXXzxJXG9o76+Xvfff7ceeODhbtfOOmumSkuP63LujDPO1E033TL0xo+QfkNveXm5VqxYoeeee04ul0tXXnmlTj/9dJWWlkqSGhsbde+99+r5559XcXGxli1bpueff17/9E//pLKyMt15551auHDhiH8RAAAARH3ta3dIkvbv36cvf/kmPfnk0wN+R11drT788INerw/mncnUb+jduHGjZs2apcLCQknSvHnztG7dOv3rv/6rJMntduvll1+W0+lUY2OjqqqqVFBQIEkqKyvTzp079fjjj+u4447TXXfdpVGjRo3ctwEAAEgBfyvbrw1b9g/Lu5wuS6HWcOz4rBljdOb0MYN61549u/XQQw+otrZGWVnZWrbsdh133FStX79OTz/93zJNU2PHjtVdd92nRx/9niorK/Rv/3abHnjgobg/44orFunEE6fpww/f11133atvf/tujRpVKJcrSytW/FDf//7Dev3112QY0rx5C/S5z12nN998XT/+8fcVDkc0ZUqJvvWtewb1/frSb+gNBoPy+XyxY7/fry1btnS5x+l06pVXXtHXv/51+f1+nXXWWZIkn8+nG2+8UTNmzNAjjzyie++9Vw8/3H2IPF5FRXmDfnawfL78hH/m0Yz+Thz6OnHo68SivxOHvu5dQcFBOV3WsL2v87sKCrLj7vuWllxZlhm7/8tfvlf//u//rhNPPFHbtm3TLbfcohdffFE///l/6dlnn1VRUZFWrFihuroK3Xvvci1dulRPPPGTHt99/fWf63J822236dOf/rQsy9Tcuefpxz/+ofbs2aNdu3bqf//35xo/frxWrlypQ4eqtHbtC2ptbdW1116rU0+drsJCt/bs2a0//elPys8fmT9X/YZe27a7nTMMo9u5s88+W6+++qoeeeQRLV++XA8//LB+9KMfxa5ff/31uuCCC4bU2KqqekUi3dszUny+fFVU1CXs84529Hfi0NeJQ18nFv2dOPR136ZP8mj6JM+wvKunvo6376urGxQOR1RRUafGxkaVlZXp9tvviF2vr2/Qtm27NWvWWfrsZ/9Jn/70OTr77PNUXDxe+/fviz3bkyeeeKrbuYqKOoXDEU2YUKqKijpVVzfI4/EqK2uUKirq9Je/bNC8eQtUXd0oSTr33Av18suv6Mwz52j8+Ilqbpaamwf/58o0jV4HSfut3hAIBFRZWRk7DgaD8vv9seNDhw5pw4YNseNFixbp/fffV11dnZ588snYedu25XDEtW4OAAAAwywSicjlytKTTz4d+9/jjz+pgoJRuvXW2/Ttb39XBQUFuu++u/Tii2uH9FlZWVk9/t598NJWOBzudt9I6Df0zp49W5s2bVJ1dbWampq0fv16zZkzJ3bdtm3dfvvt2rdvnyTpD3/4g0477TS53W498cQT2rx5syTpqaee0ty5c0foawAAAKAveXl5Gj9+QizQvvba33XLLTcqHA7ryisvU2Fhoa699p910UUX64MP3pdlWbFAOlw+8YmZ+sMffq9wOKzm5matX79Op546c1g/ozf9Dr0GAgEtW7ZMS5cuVSgU0hVXXKEZM2bohhtu0Fe+8hVNnz5d9913n2666SYZhqHS0lLdc889sixLjz76qJYvX67m5mZNnjxZ3/3udxPxnQAAANCDu+/+tr73vf/Q00//txwOp+699z/k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r2nevHldzgMAAACJ1m/1hmAwKJ/PFzv2+/3asmVLr9d9Pp/Ky8t18OBB5eXlyeFwdDk/FEVFeUN6fjB8vvyEf+bRjP5OHPo6cejrxKK/E4e+Thz6euj6Db12D3XZOu900tv1/p4bjKqq+mgh7AQ52moQJhv9nTj0deLQ14lFfycOfZ049HX8TNPodZC03+kNgUBAlZWVseNgMCi/39/r9YqKCvn9fnm9XtXX1yscDnc5DwAAACRav6F39uzZ2rRpk6qrq9XU1KT169drzpw5sevjxo1TVlaW3njjDUnSqlWrNGfOHDmdTs2cOVNr167tch4AAABItLhGepctW6alS5fq0ksv1cKFCzVjxgzdcMMNKisrkyQ99NBDeuCBBzR//nw1NTVp6dKlkqS7775bzz77rBYsWKDXX39dt95664h+GQAAAKAnht3T5NsUxZzezEZ/Jw59nTj0dWLR34lDXycOfR2/Ic3pBQAAANIdoRcAAAAZj9ALAACAjEfoBQAAQMYj9AIAACDjEXoBAACQ8frdhjiVmObQtjFOl888mtHfiUNfJw59nVj0d+LQ14lDX8enr35Kqzq9AAAAwGAwvQEAAAAZj9ALAACAjEfoBQAAQMYj9AIAACDjEXoBAACQ8Qi9AAAAyHiEXgAAAGQ8Qi8AAAAyHqEXAAAAGY/QCwAAgIxH6AUAAEDGI/QCAAAg4xF6AQAAkPEIvb1Ys2aNFixYoLlz52rlypXJbk5G++EPf6iLL75YF198sb773e8muzlHhe985zu68847k92MjPfyyy9ryZIluuiii/Ttb3872c3JaKtXr479PfKd73wn2c3JSPX19Vq4cKH27NkjSdq4caMWLVqkCy+8UCtWrEhy6zLLkX39zDPPaOHChVq0aJH+7d/+Ta2trUluYXoi9PagvLxcK1as0NNPP63Vq1frmWee0bZt25LdrIy0ceNGbdiwQc8//7xWrVqlrVu36qWXXkp2szLapk2b9Pzzzye7GRlv9+7duvvuu/XYY49pzZo1euedd/TKK68ku1kZqampSffff79++ctfavXq1Xr99de1cePGZDcro2zevFlXXXWVduzYIUlqbm7WN77xDT322GNau3at3n77bf58D5Mj+/rjjz/Wz372M/3qV7/S7373O0UiET399NPJbWSaIvT2YOPGjZo1a5YKCwvldrs1b948rVu3LtnNykg+n0933nmnXC6XnE6nSkpKtG/fvmQ3K2MdOnRIK1as0Be/+MVkNyXjvfTSS1qwYIFGjx4tp9OpFStW6OSTT052szJSOBxWJBJRU1OT2tra1NbWpqysrGQ3K6M8++yzuvvuu+X3+yVJW7Zs0aRJkzRhwgQ5HA4tWrSIf04OkyP72uVyafny5crLy5NhGDruuOP45+QgOZLdgFQUDAbl8/lix36/X1u2bEliizLXscceG/t9x44dWrt2rX71q18lsUWZ7d///d+1bNky7d+/P9lNyXg7d+6U0+nUF77wBVVUVOjcc8/VrbfemuxmZaS8vDx99atf1fz585Wdna1PfepTOu2005LdrIxy//33dznu6Z+T5eXliW5WRjqyr8eNG6dx48ZJkqqrq7Vy5Uo98MADyWha2mOktwe2bXc7ZxhGElpy9Pjwww/1L//yL7rjjjs0efLkZDcnI/3617/WmDFjdMYZZyS7KUeFcDisTZs26Xvf+56effZZlZWVMa1khLz33nv67W9/qz/96U/asGGDTNPUz372s2Q3K6Pxz8nEKy8v1+c//3ldfvnlOv3005PdnLRE6O1BIBBQZWVl7DgYDMb+MwOG3xtvvKHrrrtOX/va13TZZZcluzkZa+3atfrb3/6mxYsX6/vf/75efvll/cd//Eeym5WxiouLdcYZZ8jr9So7O1vnn38+/8VohGzYsEFnnHGGioqK5HK5tGTJEv3jH/9IdrMyGv+cTKzt27frqquu0mWXXaZbbrkl2c1JW4TeHsyePVubNm1SdXW1mpqatH79es2ZMyfZzcpI+/fv1y233KKHHnpIF198cbKbk9F+8Ytf6IUXXtDq1av1la98Reedd56+8Y1vJLtZGevcc8/Vhg0bVFtbq3A4rL/+9a866aSTkt2sjDR16lRt3LhRjY2Nsm1bL7/8sqZPn57sZmW0k08+WR9//LF27typcDisF154gX9OjpD6+np94Qtf0Fe/+lX9y7/8S7Kbk9aY09uDQCCgZcuWaenSpQqFQrriiis0Y8aMZDcrI/3sZz9TS0uLHnzwwdi5K6+8UldddVUSWwUM3cknn6zrr79eV199tUKhkM4880xdfvnlyW5WRjrrrLP0zjvvaMmSJXI6nZo+fbpuvPHGZDcro2VlZenBBx/Ul7/8ZbW0tOjss8/WRRddlOxmZaTf/OY3qqys1M9//nP9/Oc/lySdd955+upXv5rklqUfw+5pYg4AAACQQZjeAAAAgIxH6AUAAEDGI/QCAAAg4xF6AQAAkPEIvQAAAMh4hF4AAABkPEIvAAAAMt7/D7vNunJDLlVlAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr0AAAHmCAYAAAB+hTZxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABX+ElEQVR4nO3deZxcVZ3///e9t6q6u3pJV3VXVWcP6YawJAFikBAw7NlIEwioCBIZhAFhVPIVkBE1IYigI4RxwRFx4DcSRlBJIEwMwUFRTESWIRtrQvalu9Od9L7Ucn9/VHelO+l9qS2v5+PhdN97z7116kwe8M7h3M8xbNu2BQAAAKQxM9EdAAAAAIYaoRcAAABpj9ALAACAtEfoBQAAQNoj9AIAACDtEXoBAACQ9hyJ7kBfHDpUr0gkfhXWCgpyVFlZF7fPO94x3vHDWMcPYx1fjHf8MNbxw1j3nmka8niyO72WUqE3ErHjGnrbPhPxw3jHD2MdP4x1fDHe8cNYxw9jPXAsbwAAAEDaI/QCAAAg7RF6AQAAkPYIvQAAAEh7hF4AAACkPUIvAAAA0h6hFwAAAGmP0AsAAIC016vNKVatWqWf//znCoVC+tKXvqTrrruuw/VXXnlFP/7xjxWJRDRp0iQtXbpULpdLK1as0MMPP6yCggJJ0gUXXKBFixYN/rcAAABAzMMP/0CbNm1QKBTUnj27NW7ceEnSZz97jS677PJePaOurk4PPLBEDz74o2OunXfeVJWUnNTh3DnnnKtbbrl94J0fIj2G3rKyMi1btkzPP/+8XC6XrrnmGp199tkqKSmRJDU0NGjp0qVasWKFCgsLtWjRIq1YsUKf//zntXnzZt1zzz2aN2/ekH8RAAAARH3jG9+UJO3fv09f/eoteuqpZ/r8jNraGn388YddXu/PMxOpx9C7bt06TZs2Tfn5+ZKkWbNmac2aNfqXf/kXSZLb7darr74qp9OpxsZGVVZWKi8vT5K0adMm7dixQ7/4xS80YcIEfec739GwYcOG7tsAAAAkgb9t2q/XN+4flGc5XZaCLeHY8XmTh+vcScP79aw9e3brRz96UDU11crIyNSiRXfppJNO1tq1a/TMM/8l0zQ1YsQIfec79+vRR/9NBw9W6F//9c5OZ3u7cvXVpTr11In6+OMP9Z3vLNX3vrdYw4blKyMjQ4888lP9+McP66233pRhSLNmzdUXv3iD3nnnLf385z9WOBzR+PHF+va37+vX9+tOj6G3vLxcPp8vduz3+7Vx48YObZxOp1577TXdfffd8vv9Ou+88yRJPp9PN954o6ZMmaJHHnlES5cu1cMPP9zvzhYU5PT73v7y+XLj/pnHM8Y7fhjr+GGs44vxjh/Gumt5eYfkdFmD9rz2z8rLy+z12Dc3Z8uyzFj7r351qb773e/q1FNP1datW3X77bfr5Zdf1n/+53/oueeeU0FBgX7wgx+otrZCS5cu0cKFC/XEE7/o9Nk33fTFDsd33nmnPvOZz8iyTF166UX6+c9/qj179mjXrp363//9T40aNUrLly/X4cOVWr36JbW0tOj666/XmWdOUn6+W3v27Naf/vQn5eYOzZ+rHkNvJBKRYRixY9u2Oxy3Of/88/XGG2/okUce0ZIlS/Twww/rZz/7Wez6TTfdpEsvvXRAna2srFMkYg/oGX3h8+WqoqI2bp93vGO844exjh/GOr4Y7/hhrLs3aaxHk8Z6BuVZnY11b8e+qqpe4XBEFRW1amho0KZNm3TXXd+MXa+rq9fWrbs1bdp5+tznPq8ZMy7QjBkXqbBwlPbv3xe7tzNPPPH0MecqKmoVDkc0enSJKipqVVVVL4/Hq4yMYaqoqNVf/vK6Zs2aq6qqBknShRfO1KuvvqZzz52hUaPGqKlJamrq/58r0zS6nCTtsXpDUVGRKioq2n2ZCvn9/tjx4cOH9frrr8eOS0tL9eGHH6q2tlZPPfVU7Lxt27KswfsbDwAAAHovEonI5crQU089E/vf448/pby8Ybrjjjv1ve/9ULm5ebr//u/o5ZdXD+izMjIyOv392MlLW+Fw+Jh2Q6HH0Dt9+nStX79eVVVVamxs1Nq1azVjxozYddu2ddddd2nfvn2SpDVr1mjKlClyu9164okntGHDBknS008/PeCZXgAAAPRPTk6ORo0aHQu0b775d91++z8rHA7rmmuuVH5+vq6//p80e/Zl+uijD2VZViyQDpZPfWqq/vCH/1E4HFZTU5PWrl2jM8+cOqif0ZUelzcEAgEtWrRICxcuVDAY1NVXX63Jkyfr5ptv1te+9jVNmjRJ999/v2655RYZhqGSkhLdd999sixLjz76qJYsWaKmpiaNGzdOP/zhD+PxnQAAANCJxYu/p3/7t+/rmWf+Sw6HU0uXfl8Oh0Nf/vItuuOO25WRkSGPx6N7712i3Nw8BQJF+upXb9FPfnLsut4bbri2w/GoUaP0ve91n/Xmz79Ku3fv0g03fEGhUEgzZ87R+edfqHfeeWtQv2dnDNu247dIdoDivaa3sDBHBw/Wxe3zjnesD4sfxjp+GOv4Yrzjh7GOH8a69wa0pvd49dHuw7p+yRrVNQYT3RUAAAAMEKG3C8FQRNV1LdpTzkwvAABAqiP0diHgyZIklR9uTHBPAAAAMFCE3i548zLlsEyVtdaRAwAAQOoi9HbBNA0VFbhVdoiZXgAAgFRH6O3GiMIclR9iphcAACDVEXq7MbwwW+WHGhVJnapuAAAA6ESPm1Mcz0b4stUSiuhwbbO8eZmJ7g4AAECvPPzwD7Rp0waFQkHt2bNb48aNlyR99rPX6LLLLu/VM2644Vo99dQzvWr7zjtv6ZvfXKSRI0d3OP9P/3Szzj//wr51fogQersxojBbklR+qJHQCwAAUsY3vvFNSdL+/fv01a/e0uvw2l5f75kw4RT99KeP9/lz4oXQ243hhdEdPcoONejksZ4E9wYAAKSK4Ed/U/DDvwzKs/Y5HQoGQ7Fj54QZcp50br+fd/XVpTr11In6+OMP9dhjT+i55/5bb7/9pmpqalRYWKilSx+U11ug886bqtdff0u/+tUvdPBghXbv3qWysgOaN2++vvSlL/f68/bv36dvfOOrGjYsXxkZGZo5c47+8IeXVF19WOeeO0Of/ew1euih+1VWdkCWZemf//l2TZs2Xb/61S+0ZctmlZcf0FVXfV5XXnl1v7+zROjtVmF+lhyWoXIqOAAAgDQybdp0LV36oPbs2a1du3boP/7jP2Wapu6//7t6+eU/6Atf+GKH9lu3fqzHHntCdXW1+tznrtCCBZ9Tbm5uhzYffvi+brjh2g7n/v3fH5Mk7dq1U7/97U80fPgIrV69ShUV5Xr66d/K4XDoO9+5R1OmTNU113xRe/fu0W233aQnn1wuSWppadbTT/92UL4zobcblmnIl59F2TIAANAnzpPOHdBsbHs+X64qKmoH5VltTj11oiRp1KjR+pd/WaRVq1Zq166d2rJlk0aOHHVM+ylTpsrpdMrj8SovL0/19XXHhN6uljc0NDTI4/Fq+PARsXMnnXSyHI5oDH3nnTf1zW9+W5I0cuQonXrqRL333uYO/RwMVG/oQcDjVhllywAAQBrJyMiQJH3wwftatOhfZNsRXXjhxZox4wLZnVStcrlcsd8Nw+i0TW8+r7PjSOToZ9kKh8Od3jcQhN4e+D1ZqqBsGQAASEPvvvu2zjzzU7riiqs1evQYrVv3uiKRSFz78KlPTdVLL62UJO3du0ebNm3QaadNHvTPYXlDDwKeLMqWAQCAtHTxxTP1rW/dpYULPy8pukRh//59/XpWZ2t6L754pi65ZGa3991xx1364Q8f0OrVq2QYhr75zW+rsLCwX33ojmH3dX46gSor6zqZAh86Pl+u/vzmTj38m3d11xfO1ClUcBhSQ7FmCZ1jrOOHsY4vxjt+GOv4Yax7zzQNFRTkdH4tzn1JOQFPliSxHTEAAEAKI/T2wJubKYdlUMEBAAAghRF6e2C2li2jVi8AAEDqIvT2AmXLAAAAUhuhtxf8nuhML2XLAAAAUhOhtxcCXreCrWXLAAAAkHoIvb3gb63gwMtsAAAAqYnQ2wuBWOhlXS8AAEAqIvT2gjcvUw7LpIIDAABAiiL09oJpGPLlZ6qsipleAACAVETo7aWAx63yw8z0AgAApCJCby8FvJQtAwAASFWE3l7yeyhbBgAAkKoIvb0UoGwZAABAyiL09pKfsmUAAAApi9DbS5QtAwAASF2E3l4yDUN+TxZlywAAAFIQobcP/PlZzPQCAACkIEJvHwS8WSo/TNkyAACAVEPo7YMAZcsAAABSEqG3D2IVHFjXCwAAkFIIvX0Q8LglSWVsRwwAAJBSCL194MnLiJYtqyL0AgAApBJCbx/EypaxQQUAAEBKIfT2UcBD2TIAAIBUQ+jtI7+HsmUAAACphtDbR5QtAwAASD2E3j4KULYMAAAg5RB6+8jfVraMdb0AAAApg9DbR7GyZYReAACAlEHo7SPKlgEAAKQeQm8/ULYMAAAgtRB6+yHgcVO2DAAAIIUQevvB78lSMBTRoRrKlgEAAKQCQm8/tJUtK2ddLwAAQEog9PZDwEvZMgAAgFTSq9C7atUqzZ07VzNnztTy5cuPuf7KK6+otLRUl112me655x61tLRIkvbt26frrrtOs2fP1le+8hXV19cPbu8TJD83Q04HZcsAAABSRY+ht6ysTMuWLdMzzzyjlStX6tlnn9XWrVtj1xsaGrR06VI9+eST+p//+R81NzdrxYoVkqT77rtP1157rdasWaOJEyfqscceG7pvEkemYcifT9kyAACAVNFj6F23bp2mTZum/Px8ud1uzZo1S2vWrIldd7vdevXVV1VYWKjGxkZVVlYqLy9PwWBQb775pmbNmiVJWrBgQYf7Ul20Vi8zvQAAAKnA0VOD8vJy+Xy+2LHf79fGjRs7tHE6nXrttdd09913y+/367zzztOhQ4eUk5MjhyP6ET6fT2VlZQPqbEFBzoDu7w+fL7fT8+NG5mvz9ioVFOTINI049yp9dTXeGHyMdfww1vHFeMcPYx0/jPXA9Rh6I5GIDONIqLNtu8Nxm/PPP19vvPGGHnnkES1ZskR33333Me06u68vKivrFInErzauz5erioraTq/lZloKhiL66JODKhiWGbc+pbPuxhuDi7GOH8Y6vhjv+GGs44ex7j3TNLqcJO1xeUNRUZEqKipixxUVFfL7/bHjw4cP6/XXX48dl5aW6sMPP5TX61Vtba3C4XCn96W6QH60bBnregEAAJJfj6F3+vTpWr9+vaqqqtTY2Ki1a9dqxowZseu2beuuu+7Svn37JElr1qzRlClT5HQ6NXXqVK1evVqStHLlyg73pbq2smVUcAAAAEh+PYbeQCCgRYsWaeHChbriiis0b948TZ48WTfffLM2bdokj8ej+++/X7fccosuv/xybd++XXfddZckafHixXruuec0d+5cvfXWW7rjjjuG+vvETVvZMmZ6AQAAkp9h23b8FskOUDKt6ZWk7zzxhvyeLH31qslx61M6Y81S/DDW8cNYxxfjHT+Mdfww1r03oDW96BplywAAAFIDoXcAAh63yg81KpI6k+UAAADHJULvAPi9WQqFIzpU05zorgAAAKAbhN4BCHiiFRx4mQ0AACC5EXoHIOBpq9XLul4AAIBkRugdgLayZeXM9AIAACQ1Qu8AmIYhf36WyqqY6QUAAEhmhN4B8nuyVH6Y0AsAAJDMCL0DFPBStgwAACDZEXoHyO+Jli2rqmlKdFcAAADQBULvALWVLSunggMAAEDSIvQOEGXLAAAAkh+hd4DaypaVVVG2DAAAIFkRegfINIxoBQdmegEAAJIWoXcQ+POz2IoYAAAgiRF6B0HA61bF4UZFIpQtAwAASEaE3kEQ8GQpFLZVVUvZMgAAgGRE6B0E/tayZVRwAAAASE6E3kHQVraMl9kAAACSE6F3EOTnZshF2TIAAICkRegdBKZhyEfZMgAAgKRF6B0kAY+bsmUAAABJitA7SPyeLMqWAQAAJClC7yChbBkAAEDyIvQOkgBlywAAAJIWoXeQ+NvKllHBAQAAIOkQegdJrGwZM70AAABJh9A7SEzDkJ+yZQAAAEmJ0DuI/JQtAwAASEqE3kEUoGwZAABAUiL0DiJ/W9myGsqWAQAAJBNC7yCKlS07zLpeAACAZELoHUQBbzT0UrYMAAAguRB6B9GwHBdlywAAAJIQoXcQUbYMAAAgORF6B1mAsmUAAABJh9A7yPyULQMAAEg6hN5BFvC6KVsGAACQZAi9g8yfnyVJvMwGAACQRAi9gyxWtox1vQAAAEmD0DvI8ilbBgAAkHQIvYPMaC1bVsYGFQAAAEmD0DsEAh63ytmKGAAAIGkQeoeA30vZMgAAgGRC6B0CAQ9lywAAAJIJoXcIBDyULQMAAEgmhN4h4PdEy5axHTEAAEByIPQOgfwcl1xOU+XM9AIAACQFQu8QMAxD/nw3ZcsAAACSBKF3iAQ8WZQtAwAASBKE3iFC2TIAAIDk0avQu2rVKs2dO1czZ87U8uXLj7n+xz/+UfPnz9fll1+u2267TdXV1ZKkFStW6LzzztP8+fM1f/58LVu2bHB7n8TaypZVUrYMAAAg4Rw9NSgrK9OyZcv0/PPPy+Vy6ZprrtHZZ5+tkpISSVJdXZ2WLFmi3//+9woEAvr3f/93/eQnP9G3v/1tbd68Wffcc4/mzZs35F8k2bSVLSs/1ChfflaCewMAAHB863Gmd926dZo2bZry8/Pldrs1a9YsrVmzJnY9GAxq8eLFCgQCkqQJEyZo//79kqRNmzZpxYoVKi0t1Z133hmbAT4eULYMAAAgefQ401teXi6fzxc79vv92rhxY+zY4/Ho0ksvlSQ1NTXp8ccf1/XXXy9J8vl8uvHGGzVlyhQ98sgjWrp0qR5++OF+d7agIKff9/aXz5fbr/sKC3OU4bJU0xTq9zOOR4xV/DDW8cNYxxfjHT+Mdfww1gPXY+iNRCIyDCN2bNt2h+M2tbW1uv3223XyySfryiuvlCT97Gc/i12/6aabYuG4vyor6+L6YpjPl6uKitr+3z8sSzv3Vg/oGceTgY43eo+xjh/GOr4Y7/hhrOOHse490zS6nCTtcXlDUVGRKioqYscVFRXy+/0d2pSXl+vaa6/VhAkT9MADD0iKhuCnnnoq1sa2bVmW1Z/+p6yAN4utiAEAAJJAj6F3+vTpWr9+vaqqqtTY2Ki1a9dqxowZsevhcFi33nqr5syZo3vvvTc2C+x2u/XEE09ow4YNkqSnn356wDO9qcbvoWwZAABAMuhxeUMgENCiRYu0cOFCBYNBXX311Zo8ebJuvvlmfe1rX9OBAwf03nvvKRwO6+WXX5YkTZw4UQ888IAeffRRLVmyRE1NTRo3bpx++MMfDvkXSiYBj1vhSLRsGRUcAAAAEqfH0CtJpaWlKi0t7XDul7/8pSRp0qRJ+uCDDzq9b+rUqVqxYsUAu5i62sqWlR1qIPQCAAAkEDuyDaG2smXlrOsFAABIKELvEMrPccnlNFVWRegFAABIJELvEDIMQ/58NxtUAAAAJBihd4gFvFksbwAAAEgwQm8X7JZG1X/05oCfE/C4VXG4UeFIZBB6BQAAgP4g9HYhfOBDlf32IYUP7hzQc/yeLIUjtqpqmgepZwAAAOgrQm8XTM9ISVK4bOuAntO+bBkAAAASg9DbBSOnUFZ2/oBDb1vZMio4AAAAJA6htwuGYShj1ASFy7cN6Dn5OS5lOC1eZgMAAEggQm83MkeeJLumXJHGmn4/wzAM+T1ZLG8AAABIIEJvNzJHTZA08HW90dDLTC8AAECiEHq74SoaLxmWIgN+mc2tg5QtAwAASBhCbzdMZ4bMwjEDXtcbaC1bVknZMgAAgIQg9PbACpQoXL5ddiTU72f4W8uWlbOuFwAAICEIvT2w/MVSuEWRyj39fkbAS9kyAACARCL09sAqOlHSwF5mG5YdLVtGBQcAAIDEIPT2wMj2ynDnK1ze/9DbVraMWr0AAACJQejtgWEY0XW9ZQN/mY2yZQAAAIlB6O0FK1Asu7ZCkYbqfj/DT9kyAACAhCH09oLlL5GkAS1xoGwZAABA4hB6e8EsHCuZliIDWOLQVsGhvIqX2QAAAOKN0NsLhsMls3DsgCo4tNXqZV0vAABA/BF6e8nylyhcsV12uH+bVFC2DAAAIHEIvb1kBUqkcFCRyl39up+yZQAAAIlD6O0lK1AsSQqXD2BdL2XLAAAAEoLQ20tmToGMbM+A1vUGvJQtAwAASARCbx9Y/uKBvcyWT9kyAACARCD09oEVOFF2XaUiDYf7dT9lywAAABKD0NsHsXW9/ZztDVC2DAAAICEIvX0Q3aTC0e/Qm5ftUoaLsmUAAADxRujtA8NyyvSN6/fObIZhKJBP2TIAAIB4I/T2keUvVvhg/zep8HuyVMaaXgAAgLgi9PZRdJOKUL83qQh43TpY3UTZMgAAgDgi9PaRFSiR1P+X2fye1rJl1U2D2S0AAAB0g9DbR2a2R0a2dwAVHFrLlrGuFwAAIG4Ivf1gBUooWwYAAJBCCL39YAWKZddXKVJ/qM/3xsqW8TIbAABA3BB6+2Eg63pjZcsOM9MLAAAQL4TefjALxkpW/zep8HvdzPQCAADEEaG3HwzLIavwBIXL+7dJRcCTRdkyAACAOCL09pMZKFakYofscLDP91K2DAAAIL4Ivf1kBUqkSEiRgzv7fG9b2TIqOAAAAMQHobefjrzM1vclDm1ly6jVCwAAEB+E3n4y3fkycgoULu/7y2yULQMAAIgvQu8ARDep6PtMr2EYCniyWN4AAAAQJ4TeAbACJdFNKuoq+3yv3+NW+SFmegEAAOKB0DsAlr9YUv/X9VK2DAAAID4IvQNgFoyRLGe/NqmgbBkAAED8EHoHwLAcsnwn9OtlNsqWAQAAxA+hd4BMf7EiB3fKDrX06b6AtzX0UsEBAABgyBF6B8gqKpEi4T5vUpHndirDZVGrFwAAIA56FXpXrVqluXPnaubMmVq+fPkx1//4xz9q/vz5uvzyy3XbbbepurpakrRv3z5dd911mj17tr7yla+ovr5+cHufBCx/6yYVfVziQNkyAACA+Okx9JaVlWnZsmV65plntHLlSj377LPauvVIwKurq9OSJUv0+OOP68UXX9SECRP0k5/8RJJ033336dprr9WaNWs0ceJEPfbYY0P3TRLEdA+TkevrZwUHt8ooWwYAADDkegy969at07Rp05Sfny+3261Zs2ZpzZo1sevBYFCLFy9WIBCQJE2YMEH79+9XMBjUm2++qVmzZkmSFixY0OG+dGIFihUu2yrbtvt0n9+TpcrqJoXClC0DAAAYSo6eGpSXl8vn88WO/X6/Nm7cGDv2eDy69NJLJUlNTU16/PHHdf311+vQoUPKycmRwxH9CJ/Pp7KysgF1tqAgZ0D394fPl9tjm+rxp6ly69/lzWiWY5ivx/ZtSsZ4FV6/U7bDkq8w/t8tGfVmvDE4GOv4Yazji/GOH8Y6fhjrgesx9EYiERmGETu2bbvDcZva2lrdfvvtOvnkk3XllVeqrKzsmHad3dcXlZV1ikT6Nps6ED5frioqantsF84eLUkqf3+DnMVn9/r5WY7oeHyw7aCcfZwlTke9HW8MHGMdP4x1fDHe8cNYxw9j3XumaXQ5Sdrj8oaioiJVVFTEjisqKuT3+zu0KS8v17XXXqsJEybogQcekCR5vV7V1tYqHA53eV+6MAtGSZarz5tUULYMAAAgPnoMvdOnT9f69etVVVWlxsZGrV27VjNmzIhdD4fDuvXWWzVnzhzde++9sdlcp9OpqVOnavXq1ZKklStXdrgvnRimQ5b/hD6H3jy3U5kuiwoOAAAAQ6zH5Q2BQECLFi3SwoULFQwGdfXVV2vy5Mm6+eab9bWvfU0HDhzQe++9p3A4rJdfflmSNHHiRD3wwANavHix7rnnHv385z/X8OHD9cgjjwz5F0oUy1+slo0vyw61yHC4enWPYRjye7Ko1QsAADDEegy9klRaWqrS0tIO5375y19KkiZNmqQPPvig0/tGjhypX//61wPsYmowAyWSvVrhgzvkKDqp1/cFPG7tLGOdDgAAwFBiR7ZBYgWim1RE+rjEwe/J0sHDlC0DAAAYSoTeQWJm5fVrk4qAx62IbauypmmIegYAAABC7yCyAiV93qQi4M2SJJVVsa4XAABgqBB6B5EVKJHdWC277mCv7/F7omXLytmOGAAAYMgQegdR27revixxoGwZAADA0CP0DiLTO0pyZPSpXq9hGAp43CpjphcAAGDIEHoHkWFasnwnKFzet5fZqNULAAAwtAi9g8wKlChycJfsUEuv7wl4KVsGAAAwlAi9g8wKFEt2WOGK7b2+x59P2TIAAIChROgdZKa/WJL6tK6XsmUAAABDi9A7yMysPBl5gT7tzBZoLVvGy2wAAABDg9A7BKxAscLl23q9SUVua9kyXmYDAAAYGoTeIRDdpKJGdm1Fr9pTtgwAAGBoEXqHgNXPdb3lrOkFAAAYEoTeIWB6R0nOzD7tzOb3ZOlgNWXLAAAAhgKhdwgc2aSiby+zRWxbldWULQMAABhshN4hYgVKFKncLTvY3Kv2fk9r2TJeZgMAABh0hN4hEt2kItLrTSooWwYAADB0CL1DxPKXSFKvlzjkup3KyrB4mQ0AAGAIEHqHiJGZI2NYkSK9fJnNMAz5890qO8xMLwAAwGAj9A4hK1CscNnWXm9SQdkyAACAoUHoHUKWv0R2U63smvJetfd73JQtAwAAGAKE3iFkBVrX9fZyk4qAJ4uyZQAAAEOA0DuETM/I6CYV5b1b10sFBwAAgKFB6B1ChmnK8o/v9UwvtXoBAACGBqF3iFmBEkWqdssO9rxkgbJlAAAAQ4PQO8Qsf4lk273apMIwDPk9bpY3AAAADDJC7xCzAsWS+vYyWznLGwAAAAYVoXeIGRnZMvOH92FdL2XLAAAABhuhNw5Mf4ki5Z/0apOKtrJlBylbBgAAMGgIvXFgBYpbN6ko67FtW9myctb1AgAADBpCbxwc2aSi53q9fm9r2TIqOAAAAAwaQm8cmJ4RkjOrV+t6c7Nay5bxMhsAAMCgIfTGgWH0fpMKypYBAAAMPkJvnFiBEkUO7ZHd0vMMbsCTRegFAAAYRITeOLECxb3epIKyZQAAAIOL0Bsnlr/3m1QEPFmybVG2DAAAYJAQeuPEyMiW6RnRu9DrpWwZAADAYCL0xpHlL1G4fFuPm1T4PZQtAwAAGEyE3jgyA8VSc73s6gPdtouWLXPwMhsAAMAgIfTG0ZFNKrpf4hAtW5ZFrV4AAIBBQuiNIzN/uORy92pnNsqWAQAADB5CbxzFNqko700FB8qWAQAADBZCb5xZgRJFqvb2uEmFn7JlAAAAg4bQG2fRdb22wuWfdNuurWxZWRVLHAAAAAaK0Btnln+8JKPHl9kCrWXLeJkNAABg4Ai9cWa43NFNKnpY15tD2TIAAIBBQ+hNACtQrHDZNtl21y+pGYbRWsGBmV4AAICBIvQmgOUvkVoaFDnc/SYV0Vq9zPQCAAAMFKE3Acyi6CYVkR7X9VK2DAAAYDAQehPAHFYkZWT3uK434I2WLas4zBIHAACAgSD0JkB0k4riHndm83uiZcuo4AAAADAwvQq9q1at0ty5czVz5kwtX768y3Z33323nn/++djxihUrdN5552n+/PmaP3++li1bNvAepwkrUKzIoX2yW7pes9tWtoyX2QAAAAbG0VODsrIyLVu2TM8//7xcLpeuueYanX322SopKenQZvHixVq/fr2mTZsWO79582bdc889mjdv3tD0PoVZ/iObVDhGTey0TU6WU+4MBy+zAQAADFCPM73r1q3TtGnTlJ+fL7fbrVmzZmnNmjUd2qxatUoXX3yx5syZ0+H8pk2btGLFCpWWlurOO+9UdXX14PY+hfVmkwrDMOSnbBkAAMCA9TjTW15eLp/PFzv2+/3auHFjhzY33XSTJOntt9/ucN7n8+nGG2/UlClT9Mgjj2jp0qV6+OGH+93ZgoKcft/bXz5f7hA9OVct/tGyDu3o9jPGDM/ThzsPDWE/ksvx8j2TAWMdP4x1fDHe8cNYxw9jPXA9ht5IJCLDMGLHtm13OO7Oz372s9jvN910ky699NJ+dPGIyso6RSL2gJ7RFz5frioqaofs+bZ3vBo/eUPl5dUyjM4n3YdlOVV+qEH7D1TLYaX3e4dDPd44grGOH8Y6vhjv+GGs44ex7j3TNLqcJO0xRRUVFamioiJ2XFFRIb/f3+OH1tbW6qmnnood27Yty7J60d3jhxUolloaFTm0v8s2lC0DAAAYuB5D7/Tp07V+/XpVVVWpsbFRa9eu1YwZM3p8sNvt1hNPPKENGzZIkp5++ukBz/SmGysQfRmwu3q9AcqWAQAADFiPoTcQCGjRokVauHChrrjiCs2bN0+TJ0/WzTffrE2bNnV5n2VZevTRR7VkyRLNmTNHW7Zs0V133TWonU91RusmFd3tzOanbBkAAMCA9bimV5JKS0tVWlra4dwvf/nLY9o99NBDHY6nTp2qFStWDKB76c0wjB43qWgrW1ZG2TIAAIB+S+83o1KAFShR5PA+2c31nV5vK1vG8gYAAID+I/Qm2JF1vV3P9ga8bpVVMdMLAADQX4TeBLP84yXD6HaJQ8CTpcqaJoXCkTj2DAAAIH0QehPMcGbK9I7qdmc2v4eyZQAAAANB6E0Clr9E4fJPZNudz+S2lS2jggMAAED/EHqTgBUokYKNihza1+n1gJdavQAAAANB6E0CVqBYkrpc4pCd6aBsGQAAwAAQepOAkReQkZnb5ctshmEo4M1SORUcAAAA+oXQmwQMw5DpH69I2cddtvF73KzpBQAA6CdCb5KwAiWKVB+Q3VTX6XXKlgEAAPQfoTdJ9LRJRcDjpmwZAABAPxF6k4TlO6F1k4rOX2bze7IkUbYMAACgPwi9SSK6ScWYrmd628qW8TIbAABAnxF6k4gVKI5uUhE5dt1uTpZT2ZkOlbG8AQAAoM8IvUkkuklFkyKH9nZ63e+hbBkAAEB/EHqTSOxlti7W9QYoWwYAANAvhN4kYuT6optUlHf9MltlTZOCIcqWAQAA9AWhN4kYhiErUNLlzmxtZcsOVjPbCwAA0BeE3iRjBopld7FJhd/bWrasitALAADQF4TeJGP52zapOHaJQ8DTWrbsEC+zAQAA9AWhN8lEN6kwFT5wbOiNlS3jZTYAAIA+IfQmGcOZIbNgdJebVPg9bmZ6AQAA+ojQm4Qsf0nrJhXhY64FPFnM9AIAAPQRoTcJWUUlUqhZkao9x1yjbBkAAEDfEXqT0JGX2Y5d4kDZMgAAgL4j9CYhI7dQRlZepzuzUbYMAACg7wi9Sai7TSooWwYAANB3hN4kZfpLZNeUKdJY0+E8ZcsAAAD6jtCbpKxAsSQp0sm6Xr/HrTJmegEAAHqN0JukoptUWJ0vcfBmqZyZXgAAgF4j9CYpw+GSWTim85fZ8ilbBgAA0BeE3iRm+YsVrjh2k4qAN1q2rOIws70AAAC9QehNYlagRAq1KFK1u8N5vydatowlDgAAAL1D6E1ibS+zHb3Eoa1sGS+zAQAA9A6hN4kZOYUysoYd8zJbW9kyZnoBAAB6h9CbxI5sUtHJy2yULQMAAOg1Qm+SswIlsmsrjtmkIuDNYitiAACAXiL0JjkzUCKp83W9VZQtAwAA6BVCb5KzCsdKpqXIUaHX78mSLcqWAQAA9AahN8kZDpfMgrEKH7UdMRUcAAAAeo/QmwKsQLHC5dtlR0Kxc9TqBQAA6D1CbwqwAiVSuEWRyj2xc21ly8oIvQAAAD0i9KYAq6uX2bxulbO8AQAAoEeE3hRgZHtluPOPCb1+D2XLAAAAeoPQmwJim1SUd1W2LJygngEAAKQGQm+KsALFsmsPKtJwOHYuECtb1pSwfgEAAKQCQm+KsPxt63qPlC7zU7YMAACgVwi9KcIsHCuZjg7regPeaNky1vUCAAB0j9CbIgyHS2bhWEXabVKRnRktW1bOrmwAAADdIvSmECtQonDFdtnhI5tUBLxulVWxvAEAAKA7hN4UYgWKpXBQkcpdsXMBTxa7sgEAAPSgV6F31apVmjt3rmbOnKnly5d32e7uu+/W888/Hzvet2+frrvuOs2ePVtf+cpXVF9fP/AeH8diL7OVd3yZjbJlAAAA3esx9JaVlWnZsmV65plntHLlSj377LPaunXrMW1uvfVWvfzyyx3O33fffbr22mu1Zs0aTZw4UY899tjg9v44Y+Z4ZWR7O77M1lq2rJyyZQAAAF3qMfSuW7dO06ZNU35+vtxut2bNmqU1a9Z0aLNq1SpdfPHFmjNnTuxcMBjUm2++qVmzZkmSFixYcMx96DsrUHxUBYdo2TK2IwYAAOiao6cG5eXl8vl8sWO/36+NGzd2aHPTTTdJkt5+++3YuUOHDiknJ0cOR/QjfD6fysrKBtTZgoKcAd3fHz5fbtw/szuHx5+mqk/elCczKEeuV1nZGZKk+pZI0vW1P9LhO6QKxjp+GOv4Yrzjh7GOH8Z64HoMvZFIRIZhxI5t2+5w3JXO2vXmvu5UVtYpErEH9Iy+8PlyVVFRG7fP641w9ihJUvl778o5/ixJUk6WU5/sOZx0fe2rZBzvdMVYxw9jHV+Md/ww1vHDWPeeaRpdTpL2uLyhqKhIFRUVseOKigr5/f4eP9Tr9aq2tlbhcLhP96F7sU0qOrzMlkXZMgAAgG70GHqnT5+u9evXq6qqSo2NjVq7dq1mzJjR44OdTqemTp2q1atXS5JWrlzZq/vQPcNyyvSNO+ZlNtb0AgAAdK3H0BsIBLRo0SItXLhQV1xxhebNm6fJkyfr5ptv1qZNm7q9d/HixXruuec0d+5cvfXWW7rjjjsGq9/HNctfrMjBHbFNKgIet6pqmilbBgAA0IUe1/RKUmlpqUpLSzuc++Uvf3lMu4ceeqjD8ciRI/XrX/96AN1DZ6xAiYKbXlakcqcsf7H87cqWjSzMTnT3AAAAkg47sqUgK9C6SUXrEodY2TLW9QIAAHSK0JuCzGyPjJwChcuiL7P5PVmSpDK2IwYAAOgUoTdFWf4jm1RkZzqVk+XkZTYAAIAuEHpTlBUokV1fpUj9IUnRCg6pOtMbsW3tO1ivcBxrMAMAgONLr15kQ/Jpv67XHH+W/J4sfbT7cGI71QcNTSFt2VGljVsPatMnlappCOrST4/RFy4qSXTXAABAGiL0piizYIxkORUu2yrn+LMU8Lj19y1lCobCcjqsRHfvGHbrbO7GTyq1cWultu6tVjhiKzvToYnjC2Qahl75xy6NKnDrM6ePSHR3AQBAmiH0pijDcsgqHBfbmc3vTb6yZc3BsD7YeUgbt1Vq47ZKVdY0SZJG+3M0++wxmlxcoPEj8mSZpiIRW40tYT39ykcaE8jV2CL2GAcAAIOH0JvCzECxgpv/KDscVMBzpGxZIkNvxeHGWMj9YNchBUMRZTgtnTrOo8umj9Xk8QXy5mUec59pGrrzi5/SV3/0Jz22cpMW33CW3JnOBHwDAACQjgi9KcwKlCi4cY0iB3fK7xkrKf5ly0LhiD7eU61N2yq1YdtB7a+MVpDwe7J0/hkjdHpxoU4anS+no+d3JoflZOgrV0zUD5a/oydeel//ctUkmYYx1F8BAAAcBwi9Kaz9y2zZgZK4lS2rrmuOrs3dVqn3dlSpsTksh2Vowuh8nX/GSJ1eXBDbMKOvSkYO0+cuKtF///FjrXljl+ZOGzvIvQcAAMcjQm8KM935rZtUtO7MNkRlyyK2re37a7Rxa6U2flKpnQdqJUme3AyddXJApxcX6JRxHmW6BueP0yWfGqVte6v1+9e26YTheTplrGdQngsAAI5fhN4UZwVOVPjAh5Ikv8etj3YfGpTn1jcFtWV7lTZsrdTm7ZWqbQjKMKTikcO0YMZ4TS4u0Gh/jowhWH5gGIZumHOydpfX6RcvbNbif/q0PLkZg/45AADg+EHoTXFWoFihbX9XpK5SAU+W/r7lQL/Kltm2rb0VbSXFDmrr3hpF7GhJsUnFBZo8vkATxxcoJys+L5dluhy67cpJ+t7/95Z+/sJm3f2FM+Ww2EsFAAD0D6E3xR1Z17tNfu+YaNmyQ40a6cvp8d7mlrDe33lIG7cd1MZPKlVV0yxJGuPP0dxzxmhycaHGD8+TaSbmZbKRhdm6Yc7J+sWLW/S7P2/TNRefmJB+AACA1EfoTXFmwWjJcilctlWBE06W1H3oLT/U0K6k2GGFwhFluCydNs6ry88t0KTxBUm1lODsUwPauqdaa9/crZKRwzT1ZH+iuwQAAFIQoTfFGaZDlm+cwuVbFZiSJalj2bJQOKKPdh+OBd0DVdHqDgGvWxdNGalJxQU6aVTvSoolyucvLtH2AzX6z9Xva5Q/R0X9rAwBAACOX4TeNGAFStSy6WXlOGzlZDn1yf4a/WXDPm3cVqktO6rU3NJaUmyMRxdOGanJxQWxzSxSgcMyddsVE7XkyTf1sxWb9O3rpyrDlXxbLQMAgORF6E0DZqBY2hBW5OBOBbxZeuuDcr31Qbk8uRk659SAJhUX6NSx3pQOit68TN1y+Wl65Nl39V8vf6Cb5p06JJUjAABAeiL0pgHL3/oyW/lWXTVjmrbvr9HE8QUa5ctOq2B42glezf/MCVr51+0qGZWvC88cmeguAQCAFEHoTQOme5iMXJ/CB7bq5MlzdHIab+Ywb/o4bdtbo//+40caV5SrE4bnJbpLAAAgBSTv20voEytQrHD5Ntm2neiuDCnTMHRz6akalp2hx1ZsUl1jMNFdAgAAKYDQmyYsf4nshsOy6yoT3ZUhl5Pl1G1XTlR1fYseX7VFkTQP+gAAYOAIvWnCKmrbpGJrgnsSHycMz9O1l5ykzZ9U6aW/7Uh0dwAAQJIj9KYJ0ztacrgULt+W6K7EzflnjNA5pxXphde3a/P29J/hBgAA/UfoTROGacnynXDczPRKkmEYWjh7gkb6svX4i++psrop0V0CAABJitCbRqxAiSIHd8kOtSS6K3GT4bR025WTFApH9PMXNisUjiS6SwAAIAkRetOI5S+R7LDCB3ckuitxVeR168uXnaJP9tXo2f89fma6AQBA7xF604gZKJYkRY6jJQ5tPjXBr1mfHq3/fWeP/r7lQKK7AwAAkgyhN42YWXky8vwK7nhHdktDorsTd1edX6wTRw3TU2s+0N6KukR3BwAAJBFCb5pxTbxUkbJtqn/uWwpu+0fab1bRnsMydev8icp0OfSzFZvV2BxKdJcAAECSIPSmGdfES+W+4jsy3MPU9L+PqfEPDytSU57obsWNJzdDt15+msoONeipP3xwXIV+AADQNUJvGrL84+W+YrEypl+ncNlW1f/2W2p+5wXZ4eNjy96Tx3p09fnFevODcv3xrT2J7g4AAEgChN40ZZimXBMvVfbnHpRj7BS1vLVCDb/7jkL73k901+Ji9tljdOaJhXruT1u1dU91orsDAAASjNCb5sxsj7IuuU1Zc/6f7EhYjS/9QI1/elyRxppEd21IGYahL192igryMvXzFzarpv74qV0MAACOReg9TjhGT1b2Zx+Q68xShba9ofpn71HL+3+WbafvZg7uTKduu3Ki6hqD+sWLWxSJsL4XAIDjFaH3OGI4XMo46yq5r7pfVsEYNf/1KTW88IDClbsS3bUhMyaQqy/OPEnv7zykla9/kujuAACABCH0HocszwhlzfumMi+4WXZNuRqeX6Kmv/9GdrAp0V0bEp+ZPEIzTh+ul9bt1LtbDya6OwAAIAEIvccpwzDkPOlcZX/uQTknfEbBjWuitX13vJ2WZb6uu/QkjQnk6IlV76nicGOiuwMAAOKM0HucMzJzlDnjn+S+/F4ZGW41rf2JGl/+d0Vq02tG1OmwdNuVkyRJj63YrGAonOAeAQCAeCL0QpJkFZ0o94Ilyjj78wrvey9a2/fd1bIj6bOrmT8/SzeVnqqdZbVa/srHie4OAACII0IvYgzTIdfpc6K1fUdNVMs/nlPD75codOCjRHdt0JxRUqjLzhmrv2zYp9c37k90dwAAQJwQenEMM6dAWTO/pqyZX5fd0qDGF7+vptf+U3ZTXaK7Niiu+MwJOmWsR79e+6F2ldUmujsAACAOCL3okmPcmcr+3PflnDxHwY9eV/2z9yj44V9T/kU3yzR1y+WnKTvTocdWbFZD0/GxPTMAAMczQi+6ZTgzlTnt83JfdZ+M/CI1vfYrNb70kMKH9ia6awOSl+3SV66YqMqaJv3qf95P+SAPAAC6R+hFr1je0XJf/i1lzPgnhav2qOF331XzP34nO9Sc6K7124mj8vXZC0v0fx8f1Jp/pO8GHQAAQHIkugNIHYZhynXy+XKMPVPNbzyrlndfUnDb35V57vVyjDk90d3rl0unjtLWvdX6/Z8/0fjheZowxpPoLgEAgCHATC/6zMzKU9YFNytr3jdlWE41rlmmxld+qkhdVaK71meGYeif5pwsvydLP39hiw7Xpe7MNQAA6BqhF/3mGHGK3FfdL9dZVym0a4Pqf/sttWx6WXYktTZ+yMpw6PYrJ6qpJaT/WLlZoXAk0V0CAACDjNCLATEshzLOLFX2Zx+QVXSSmtf/txpW3Kdw+SeJ7lqfjPTl6EuzT9ZHe6r1/Gup1XcAANAzQi8GhZnnV9bsRcq85HbZjTVqWHm/ml7/L9nN9YnuWq+dc1qRLpwyUmv+sUtvf1iR6O4AAIBBROjFoDEMQ87xZyn7cw/KOfESBd//k+qf+1cFt/49ZUqCXXPRiTpheJ7+c/V7KqtqSHR3AADAICH0YtAZrixlTr9O7isXy8gpUNOr/6HG1T9SpPpAorvWI6fD1G1XTJRlmvrZik1qDqbW+mQAANC5XoXeVatWae7cuZo5c6aWL19+zPX3339fCxYs0KxZs3TvvfcqFApJklasWKHzzjtP8+fP1/z587Vs2bLB7T2SmlU4Tu7531HGudcrXP6J6n/7bTW/tUJ2qCXRXetWwbBM/XPpqdpbUa9fv/xhysxSAwCArvVYp7esrEzLli3T888/L5fLpWuuuUZnn322SkpKYm3uuusufe9739MZZ5yhb33rW3ruued07bXXavPmzbrnnns0b968If0SSF6Gacp12sVynPApNa//jVreeaG1tu9COUadlujudWni+AJdft4JeuH17SoZNUwXnDEy0V0CAAAD0ONM77p16zRt2jTl5+fL7XZr1qxZWrNmTez63r171dTUpDPOOEOStGDBgtj1TZs2acWKFSotLdWdd96p6urqofkWSHqmO19ZF9+qrLl3SrbUuPrf1PjqfyjScDjRXetS6bnjNPEEr5555SNt31+T6O4AAIAB6HGmt7y8XD6fL3bs9/u1cePGLq/7fD6VlZXFfr/xxhs1ZcoUPfLII1q6dKkefvjhfne2oCCn3/f2l8+XG/fPTGu+cxSZ9CkdXrdCh9c9r8jujfJeeJ1yz7w0ejnJxvueGz6tRY++pl+8uEWP/r8LlOt2JbpLgybZxjqdMdbxxXjHD2MdP4z1wPUYeiORiAzDiB3btt3huLvrP/vZz2Lnb7rpJl166aUD6mxlZZ0ikfitr/T5clVRURu3zzuunDJX2cOnqOlv/6WDa36pqrf/qKI5N6k2M/mWEdxSepoefPptPfTUP/S1qyfLbPfnPVXxZzt+GOv4Yrzjh7GOH8a690zT6HKStMflDUVFRaqoOFKztKKiQn6/v8vrBw8elN/vV21trZ566qnYedu2ZVlWf/qPNGXmFylr7l3KvOgW2XWV2vdf96ph9Y8ULtua6K51MH5Enq695ERt3Fap/1m/M9HdAQAA/dBj6J0+fbrWr1+vqqoqNTY2au3atZoxY0bs+siRI5WRkaG3335bkvTCCy9oxowZcrvdeuKJJ7RhwwZJ0tNPPz3gmV6kH8Mw5Cw5R9nX/Ju8Fy9U5OBONbzwPTX84ZGk2tXtgjNHatppAa38yyfasqMq0d0BAAB91GPoDQQCWrRokRYuXKgrrrhC8+bN0+TJk3XzzTdr06ZNkqQf/ehHevDBBzV79mw1NDRo4cKFsixLjz76qJYsWaI5c+Zoy5Ytuuuuu4b8CyE1Gc4M5U+br+wv/Jtcn/6swuXb1LByqRrWLFP44I5Ed0+GYehLs07WiMJs/eKFLaqqaUp0lwAAQB8YdgoVIWVNb3prP952S6NatvxRLRvXSM31cow9U65PXSGrcGxC+7i/sl73/39vaWRhtr553RQ5rNTc34U/2/HDWMcX4x0/jHX8MNa9N6A1vUAiGK4sZZxZqpwv/JtcU69UaP8Hanh+sRrX/kThqt0J69fwgmzdOPcUbdtXo+deTa61xwAAoGs9Vm8AEslwuZUxZb5cp12ilk1r1bJprUI73pZj/FlyTblCljf+1R6mnuzXzLNGa+2bu1U8cpg+fYq/QwUTAACQfAi9SAlGRrYypl4p18RL1bLpZbVsfkWhT96So/jTcn1qvqz8EXHtz9UXFOuT/TX6xYtb9PiLW+RwmHJaZutPQw7LlNNhyhE7d+Q4+tOItu+ynXGkfSdtOvscp8OUZRoEcAAAOkHoRUoxMnOUcdZVck2apZaNa1rD7z/kKJ6mjCnzZeYXxaUfDsvUVxdM0usb96uxJaxQOKJQKKJQOKJgKKJgOKJQ2Faw7Vw4oobmUKxdMPbzSJvBYEhytAvBbcG4Y1g2VTw6X2ed5NNof/w3fAEAIBF4ka0bLByPr/6Md6SxRsGNa9Sy5Y9SOChHyXRlTLlc5rDAEPVyaNi2rXDEPhKY2wXoUNhWMPb7kdAc7KFNVwG8JRTWrrI6BUMRjR+Rp/NPH6FPnxJQhos62kOBf47EF+MdP4x1/DDWvdfdi2zM9CKlmVl5yjj7c3JOnq2WDasV3PK/Cm1dL8eJ5ypjSqnMPH/PD0kChmHI0TormxWHz8twZ2jVa1v12rt79eQfPtBvXv1Y004t0vlnjNCYAFtdAgDSD6EXacHMylPmtGvkmjxbLe+uVvD9VxX6eJ2cE86V68xSmbm+RHcxqeRluzTzrNG6dOoofbynWq+9u09/3bhff/q/vTpheK7OP2OkPn2KX5ku/hEBAEgPLG/oBv85Ib4Gc7wj9YfU8u7/KPj+nyXZck74TDT85hQMyvNTXWdjXdcY1PotB/Tau/u072C9Ml2Wpp1WpPNPH6GxRcz+9hf/HIkvxjt+GOv4Yax7j+UNOO6Y2R5lnvtFuU6fq5Z3X1Lwg9cU/PB1OU+eIdcZ82TmeBPdxaSTk+XUpVNH65JPjdK2vTV67d29+tum/frz/+3V2KJcXXBGdO1vVgb/2AAApB5mervB36ziayjHO1JXqZb/W6XgB3+VTEPOky+Q64zLZGZ7huTzkl1vx7q+Kai/bynTn9/dq70V9cpwWZp2akDnnzFC44ry4tDT1Mc/R+KL8Y4fxjp+GOveY6YXxz0zp0CZn7lBrjMui4bf915V8IPX5DzlQrnOmCvTnZ/oLial7EynLv7UKF00ZaS27YvO/q7fHF0CMTaQq/PPGKGzT2X2FwCQ/Jjp7QZ/s4qveI53pKZcze+sUujjv0mmQ87TLpLr9Lkys46P2cuBjHVDU1Drt5TptXf3ak9FvTKcls4+1a/zzxipcUW5bI5xFP45El+Md/ww1vHDWPceM73AUcw8v7Iu+LIiZ85T8zsvKrjpZQXfe1Wu0y6R8/Q5MjN5casr7nazv5/sr9Fr7+7T398r01827NcYf07r7G+R3Jn84wUAkDyY6e0Gf7OKr0SOd+TwfjW/86JCW/8uOTPkOu0SuSbPlpGZnjuWDfZYNzSF9MZ7B/Tnd/dpd3mdXE5Tnz4luvZ3/PC843r2l3+OxBfjHT+Mdfww1r3HTC/QAzN/uLIuukXhM0vV8s4Lann3f9Sy5Y9yTbw0Gn4zshPdxaTmznTowimjdMGZI7XjQK1ee3ev3nivXK9v3K9Rvujs7zmnBeTOdCa6qwCA4xQzvd3gb1bxlUzjHa7aq5Z3Vir0yZuSM0uuSTPlmjQzbcJvPMa6sTmkN96LVn7YVVYnl8PUWadE1/4Wjzh+Zn+T6c/18YDxjh/GOn4Y695jphfoI8s7UlmX3K5w5W61vL0yOvu7+RW5Js+Sa+JMGa54bBac2rIyHLrgzJGts79H1v7+bdMBjfRl6/zTR+iciUXKZvYXABAHzPR2g79ZxVcyj3f44E61vL1SoZ3/J2VkyzV5tlynXZKy4TdRY93YHNI/3i/Ta+/u044DtXI6TH365NbZ35HpOfubzH+u0xHjHT+Mdfww1r3X3Uwvobcb/CGLr1QY73DFDjW/vULhXRtkZOTIecoF0SUPhhT9P0br763HsRBnHGnT/px05Lj1p9G+jWGo3QM7P2908rnHnDdanxv93TM8oBrDK8OZMZDhGJCdB2r12oZ9+vuWA2pqCWtkYbZmnDFC09Ns9jcV/lynE8Y7fhjr+GGse4/Q20/8IYuvVBrvcPknan57pcK7Nya6KwNgyMjzyyoYLdM7WmbBKFneMTJyC2QYZtx60dQS0j/eL9dr7+7V9v3R2d+pE/w6/4wROnHUsJSf/U2lP9fpgPGOH8Y6fhjr3mNNLzDILP94uef8P9mhZikSaT1rS+3/Dtn6u93+vG1H27W73vl5u/WwkzZ221PbtenQtv35zs/lOpp1aPtHilTtVrhqt0Lb3z5yvzNTpneUrIIx0Z/e0TK9o4ZsKUemy6EZp4/QjNNHaOeBWv1lwz6t33JA67cc0PACt84/Y6SmTyxSTlb6zP4CAOKP0AsMgOHoeXlAMs5TZvty1eA9JXZsB5sUObRX4crdilTtVqRyt4Jb10stjbE2Rq6v3azwaFne0TLyfIM6Kzy2KFfXF03Q5y4sia793bBPv/nfj/W7P2/T1Ak+nTLOozH+XI0ozJbTEb/ZaABA6iP0ApDhzJTlL5blL46ds21bdn2VIpW7WsPwHkUqd0Vf5mubQXZkHJkNLhgls2CMLO8oGS73gPqT4bL0mdNH6DOnj9CusrbZ3zL9/b0ySZJlGhpekK0xgRyN8edodCBXo/05zAYDALpE6AXQKcMwZOQUyMwpkGPsmbHzdqhZkUP7FK7c1RqEdyu4/U3pgz8fuTenILY8IjorPEZGnl+G2ffZ2TGBXH1x5gRde8lJKj/cqF1ltdpdXqddZXXasqNK6zYfiLUtyMvQaH+uxgRyYj8Lh2Wm/LpgAMDAEXoB9InhyJDlO0GW74TYueis8KHoGuG2JRJVuxXatUGyW9c8Wy6Z3pFHlkh4R8sqGN3rDT9M01CR160ir1ufPiUQO19d36Ld5bXaXVanXeV12lVWqw3bDsYmo7MyLI32RWeDx/hzNCbA8ggAOB4RegEMWHRW2CszxyvHmNNj5+1QiyKH9ylSuVvhtuUR29+R/cFfjtyb7Y2tETbbAvGwgAzT6tVnD8t2adgJBZp4QkHsXHMwrH0H67WrrFa7yuu0u6xOr2/cr+ZgWFLb8gh3bDa4bYkEyyMAIH0RegEMGcPhklU4TlbhOLXFSdu2ZTdWt64V3hObFW7ZvVmyo6FUllOmZ2TrbHDbWuHRMjI7L0NztAynpROG5+mE4XmxcxHbVsWhxths8O7yOr2/s0rrtxxZHuHNy9AYf3R98JhANAgXDsuUyfIIAEh5hF4AcWUYhgx3vkx3vhyjJ8fO2+GgIof3t84KRytIhHdvUOijvx65OSNbZl5AZp5fZp4vOiOc55eZ55eR1X1NX9MwFPC6FfC6ddbJ/tj5mvqW6Brhdkskjl4eMcqXEw3DgWgYHlmYLaejdzPRAIDkQOgFkBQMyymrYIysgjFqv8gg0lAdmw2OVJcrUlOucPk2hT55o2OtY0dGNAjnBWTk+VqDcTQgGzneLpdL5GW7dNoJXp12gjd2riUY1t6D9a0vzEWXSLy+eb+a34nORJuGoeGF7uiyiNiLcznKdbuGYmgAAIOA0AsgqZnuYTLdw6RREzuct8Mh2XUHFakpj4XhSE15dLZ49wYpHDrS2LBk5BW2BuEj/zPyAjJzC2U4OoZVV1fLIw43ts4G12pXWZ0+2HVY67eUxdp4cjNi64PHtC6R6GpnIABAfBF6AaQkw3LIGFYkc1iRNLrjNduORKtJtAZhuy0QV5creGCrFGxs/yQZ2Z4jQXjYUcG4teawaRgKeNwKeNya2n55REN0eURbGN5dVqdNn1Qp0joLneGyVJCXqcJhmUd+DstU4bAsFQzLVJ7bSUk1AIgDQi+AtGMYZqzGsEac0uGabduym+tkV5cdmR1u/V9o17uyG2s6Piszt3W5ROCoWWK/jKw85bldOm2cV6eN63x5RFV9i/YcqNXB6kZt21ut+qZQh+e7HKYK2oJw3pFAXDgsGpDzsl2EYgAYBIReAMcVwzBkZOZKmbmyAiXHXLdbGtsF4QrZNdFwHD7wkUJb/y6p3TpiZ2Z0HXGuv8NLdY48v8YFvDpheJ58vlxVVNTGbmlsDqmyukkHq5t0sLpRB6ubVFkTPd6xv1Z1jcEO/XFYZmsQ7jhb3DZTPCzHRXUJAOgFQi8AtGO4smQVjpVVOPaYa3Y4KLv2oCI1ZYrUVCjSNlt8aK9Cu96VIuEjjU2HzNxChQqHK+TMi9YxzvbKme3R8GyvRo71yHAVHvMZTS3tQ3FT9PeaJlVWN+qdslrVNhwdig15844OxVmxoJyfkyHTJBQDAKEXAHrJsJwy8ofLzB9+zDU7EpFdX9VxHXF1mcJ1VQpVb5XdVHvsA51ZMnM80Q06so/8DGR7VeT1yBztlVzuDssbmlvCrSE4GoRj4bimSe9urVRNfUuHj7BMQ968jA5BuP1scX6uS1Y/tocGgFRD6AWAQWCYpozcQpm5hdLIU2Pn25Y32KEW2Q2HFak/FA3HddGfdv0hReqrFKraI7uhWh2WT0iSwxUNwzne6At32V75WoOxMcYjIycgIyMnFoybg2FVtYbig+2WUVTWNGnTJ5Wqrjs2FHtyMzq+YJeXKU9uhnLdTuVkOZXrdrFtM4CUR+gFgDgwHK7Ymt+u2JGQ7IZq2XVVR8Jxu5+Rve8r1HBYsiMdb7QcHWaLvdkeFWR7NcHjkTnKKyN7lIysPBmGqWAorMqa5tZQ3NhhCcV7Ow7pcO2Bo2O3JCnTZSnXHQ3A0SAc/b19MI6dy3Iq02XxAh6ApELoBYAkYZgOGTkFUk6ButrvzY6EZTfWtM4WH5kptusPya4/pHDZxwrVH+q4vliSTCu6E15OgYZle5Sf7dGJ2V4Zoz0yT/HKyB4hI2uYQhGpqrZJ1XUtqm1oUW1jULUNQdU2tKiu9efhumbtLq9TbUNQoXCk0346LDMagtsF5O7CcnaWkxfyAAwpQi8ApBDDtGRke6Rsjyx/cadtbDsiu7G2XSBuDcetITlcsUP2jnekcPDoh8tw5ysn26O8XJ/M/GgdZHPUcJnDxspwZhz1ObaaWsKqbQzGAnFtQ1C1jW0BORgLzuWHq1XXGFRj81FhvO2jDSknq/NZ4xy3s8Nx23WHxZILAL1H6AWANGMYpgz3MMk9TJZvXKdtbNuWmutjobhtjXHbcopw+VaFtr2h9muMjWyvzPzh0SCcXyQzf7gy8ocrc5hH/vysXvUtGIqorrFjQK5tDch17WaW9x2sV23DYdU3BjtdbiFJWRmWcrOOzBrnuJ3KdmeoqanlmLZ2Fw/p6tndXbS7u6s/n6No6DcNQ4ZhyDSNdsfRn6ZhyDDbtWl/3Ww7d9R95pG2Ha6bRz23rY3Z/rnt7uvQH0OmKRkyVBeM6NChhmj/W/+P0fpljNbvFD00Or8eO2fExqCtfdtx+/Zt9x9zXUbs3iPnjXbtO7Y59npq/xeGiG0rHI4oFLYVav0ZDkcUikSPw7HzredCrW0ikY7tw7ZCkaOO2+5v17azZ3bWPhy2dfUFxTp30rEv/iYKoRcAjkOGYUiZObIyc6SCMZ22sUMt0bJs1fsVOXwgusVz9QEFP/6bFGw60tByycwPyBwWrWwRnSGO/jScmR2e6XSY8uRmyJObod6IRGzVN7WbNW4IHhWao78fqm3WrvI6GYahSKTzJRf9CTdd3dL9kzq/2tWzbDsapG07+n1t21bEVuvP1t8jHc91FeLRf+1DePuA3BaYO4T0doH56IDfdl9fA/vRYbz9Xx5M01RLMBQLpMF2wTQyRH8YHJYhyzLlMA05LPPIcds5R/Sn0zKV5XK0u27IYUZ/jvIl1zbshF4AQKcMh0tWwWhZBR33ebZtW3ZjdTQEtwvD4YrtCm1/s8O0qpHtaZ0Z7jhDbOQUyDB6Xp5gmkbrcgaXpOwe2x+9GUi6su3ofHM0JKs1CNuKRKIBuuP59mH6yPkjYbr9ua7D95Hz0ba5uZmqqWmM/b/bbu1XtH+tM+J26yx3u2B/9PW2e9t/ryP32a3P7f662rdp97kd+9OufVfXu+hjd9/Btttd67Lvdrs+HN3HWK+77FdmhkPhULhj6LRMWVY0dFpWWzBt/b01dDraXzPbhdbWgOqMtTkSVi3LkNX6XwnSDaEXANAnhmFEX4pz5x+7zXOoJbpxx+F9ilQfiIbi6v0Kbl0vtTQeaWg5ZQ4LHAnEsVA8XIard0sljmdtM4ymlbhgcrz8BSMZMNaDg9ALABg0hsMlyztSlndkh/PR2eGa1iC8P/YzXLlboR3vdCjDZmQNO2aZRHR2uFAGG2kA6CdCLwBgyEVnh4fJdA+Thk/ocM0Oh6I72VXvP7JkovqAgp+8KTXXH2loOWTmHTU73FphwsjoeekDgOMboRcAkFCG5ZDlGSHLM6LDedu2ZTfVHpkdPnxAdvUBhQ/tVWjnu5J9pPyZkZUnMy+g/W63WlpCcf4Gg+Do8gM6+jh20HrKOOpaF+27fJbR7nQX7Y3214zYS11t1yoyXWpqCnZ8RpfPbO/otu3PdbZco4tr3bTtdD1qZ2PV1XN6bNv++x3zSx/adqxc0dXYHM7JUEv73RQ7G7uODzpKZ33oz71dvdl57HlDhqwxp0f/opskCL0AgKRkGEY0zGblSUUndbhmR0KyayoUOXxA4cP7ZVfvj84WtzTJDnVeCzhptb0JJR1506nDtdZzsdN2h5fAjr7W6bPavfB1TPsOb/+3e0ursz60O24wDUUi9rHXj/luxx53Wvats+fYx/zSyXPtbtp2ca0vbZNAc6I70E+uqQuUMeXyRHcjhtALAEg5humQ0brEwaEzY+d54Sd+jrextnsVyrsJzseUFusqkB8btgsLsnWwsq7L692dt7vtQ2fn+/b87u41sr2d35MghF4AAIAeGN0uVxhaZma2DFfn9ad7kn6Fx/qP12ABAACQ9gi9AAAASHu9Cr2rVq3S3LlzNXPmTC1fvvyY6++//74WLFigWbNm6d5771UoFH1zdt++fbruuus0e/ZsfeUrX1F9ff0x9wIAAABDrcfQW1ZWpmXLlumZZ57RypUr9eyzz2rr1q0d2tx111367ne/q5dfflm2beu5556TJN1333269tprtWbNGk2cOFGPPfbY0HwLAAAAoBs9ht5169Zp2rRpys/Pl9vt1qxZs7RmzZrY9b1796qpqUlnnHGGJGnBggVas2aNgsGg3nzzTc2aNavDeQAAACDeeqzeUF5eLp/PFzv2+/3auHFjl9d9Pp/Kysp06NAh5eTkyOFwdDg/EAUFOQO6vz98vty4f+bxjPGOH8Y6fhjr+GK844exjh/GeuB6DL2RSKTDzia2bXc47ur60e2kLnZI6YPKyrpoIew4Od5qECYa4x0/jHX8MNbxxXjHD2MdP4x175mm0eUkaY/LG4qKilRRURE7rqiokN/v7/L6wYMH5ff75fV6VVtbq3A43Ol9AAAAQLz0GHqnT5+u9evXq6qqSo2NjVq7dq1mzJgRuz5y5EhlZGTo7bffliS98MILmjFjhpxOp6ZOnarVq1dLklauXNnhPgAAACBeegy9gUBAixYt0sKFC3XFFVdo3rx5mjx5sm6++WZt2rRJkvSjH/1IDz74oGbPnq2GhgYtXLhQkrR48WI999xzmjt3rt566y3dcccdQ/plAAAAgM4Ytt3VZsrJhzW96Y3xjh/GOn4Y6/hivOOHsY4fxrr3BrSmFwAAAEh1hF4AAACkPUIvAAAA0h6hFwAAAGmP0AsAAIC0R+gFAABA2utxG+JkYpoD28Y4VT7zeMZ4xw9jHT+MdXwx3vHDWMcPY9073Y1TStXpBQAAAPqD5Q0AAABIe4ReAAAApD1CLwAAANIeoRcAAABpj9ALAACAtEfoBQAAQNoj9AIAACDtEXoBAACQ9gi9AAAASHuEXgAAAKQ9Qi8AAADSHqEXAAAAaY/QCwAAgLRH6O3CqlWrNHfuXM2cOVPLly9PdHfS2k9/+lNddtlluuyyy/TDH/4w0d05LvzgBz/QPffck+hupL1XX31VCxYs0Jw5c/S9730v0d1Jay+88ELsnyM/+MEPEt2dtFRXV6d58+Zpz549kqR169aptLRUM2fO1LJlyxLcu/Ry9Fg/++yzmjdvnkpLS/Wv//qvamlpSXAPUxOhtxNlZWVatmyZnnnmGa1cuVLPPvustm7dmuhupaV169bp9ddf14oVK7Ry5Upt2bJFr7zySqK7ldbWr1+vFStWJLobaW/37t1avHixHnvsMb344ot677339NprryW6W2mpsbFRDzzwgH7961/rhRde0FtvvaV169YlultpZcOGDfrCF76gHTt2SJKampr0rW99S4899phWr16tzZs38+d7kBw91tu3b9evfvUr/eY3v9GLL76oSCSiZ555JrGdTFGE3k6sW7dO06ZNU35+vtxut2bNmqU1a9Ykultpyefz6Z577pHL5ZLT6VRxcbH27duX6G6lrcOHD2vZsmW69dZbE92VtPfKK69o7ty5KioqktPp1LJly3T66acnultpKRwOKxKJqLGxUaFQSKFQSBkZGYnuVlp57rnntHjxYvn9fknSxo0bNXbsWI0ePVoOh0OlpaX8e3KQHD3WLpdLixcvVk5OjgzD0EknncS/J/vJkegOJKPy8nL5fL7Ysd/v18aNGxPYo/R14oknxn7fsWOH/vCHP+i///u/E9ij9Pbd735XixYt0v79+xPdlbS3c+dOOZ1O3Xrrrdq/f78uuOAC3XHHHYnuVlrKycnR17/+dc2ZM0dZWVk666yzNGXKlER3K6088MADHY47+/dkWVlZvLuVlo4e65EjR2rkyJGSpKqqKi1fvlwPPvhgIrqW8pjp7UQkEpFhGLFj27Y7HGPwffzxx7rxxht19913a9y4cYnuTlr67W9/q+HDh+ucc85JdFeOC+FwWOvXr9f3v/99Pfvss9q4cSPLSobIBx98oN///vf605/+pL/+9a8yTVO/+tWvEt2ttMa/J+OvrKxMX/rSl3TVVVfp7LPPTnR3UhKhtxNFRUWqqKiIHVdUVMT+MwMG39tvv60bbrhB3/jGN3TllVcmujtpa/Xq1frb3/6m+fPn68c//rFeffVVff/73090t9JWYWGhzjnnHHm9XmVmZuqSSy7hvxgNkddff13nnHOOCgoK5HK5tGDBAv3jH/9IdLfSGv+ejK9t27bpmmuu0ZVXXqnbb7890d1JWYTeTkyfPl3r169XVVWVGhsbtXbtWs2YMSPR3UpL+/fv1+23364f/ehHuuyyyxLdnbT25JNP6qWXXtILL7ygr33ta7rooov0rW99K9HdSlsXXnihXn/9ddXU1CgcDuuvf/2rTjvttER3Ky2dfPLJWrdunRoaGmTbtl599VVNmjQp0d1Ka6effrq2b9+unTt3KhwO66WXXuLfk0Okrq5OX/7yl/X1r39dN954Y6K7k9JY09uJQCCgRYsWaeHChQoGg7r66qs1efLkRHcrLf3qV79Sc3OzHnroodi5a665Rl/4whcS2Ctg4E4//XTddNNNuvbaaxUMBnXuuefqqquuSnS30tJ5552n9957TwsWLJDT6dSkSZP0z//8z4nuVlrLyMjQQw89pK9+9atqbm7W+eefr9mzZye6W2npd7/7nQ4ePKgnn3xSTz75pCTpoosu0te//vUE9yz1GLZt24nuBAAAADCUWN4AAACAtEfoBQAAQNoj9AIAACDtEXoBAACQ9gi9AAAASHuEXgAAAKQ9Qi8AAADS3v8PqMjeHzPwY54AAAAASUVORK5CYII=\n", "text/plain": [ "
    " ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_218_0.png" + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_218_0.png" } }, "output_type": "display_data" @@ -4902,7 +4936,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.12" } }, "nbformat": 4, diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1.py b/doc/LectureNotes/_build/jupyter_execute/chapter1.py new file mode 100644 index 000000000..6c237836b --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter1.py @@ -0,0 +1,2506 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Linear Regression +# +# +# ## Introduction +# +# +# +# +# +# Our emphasis throughout this series of lectures is on understanding +# the mathematical aspects of different algorithms used in the fields of +# data analysis and machine learning. +# +# However, where possible we will emphasize the importance of using +# available software. We start thus with a hands-on and top-down +# approach to machine learning. The aim is thus to start with relevant +# data or data we have produced and use these to introduce statistical +# data analysis concepts and machine learning algorithms before we delve +# into the algorithms themselves. The examples we will use in the +# beginning, start with simple polynomials with random noise added. We +# will use the Python software package +# [Scikit-Learn](http://scikit-learn.org/stable/) and introduce various +# machine learning algorithms to make fits of the data and +# predictions. We move thereafter to more interesting cases such as data +# from say experiments (below we will look at experimental nuclear +# binding energies as an example). These are examples where we can +# easily set up the data and then use machine learning algorithms +# included in for example **Scikit-Learn**. +# +# These examples will serve us the purpose of getting +# started. Furthermore, they allow us to catch more than two birds with +# a stone. They will allow us to bring in some programming specific +# topics and tools as well as showing the power of various Python +# libraries for machine learning and statistical data analysis. +# +# Here, we will mainly focus on two specific Python packages for Machine +# Learning, Scikit-Learn and Tensorflow (see below for links etc). +# Moreover, the examples we introduce will serve as inputs to many of +# our discussions later, as well as allowing you to set up models and +# produce your own data and get started with programming. +# +# +# +# ## What is Machine Learning? +# +# Statistics, data science and machine learning form important fields of +# research in modern science. They describe how to learn and make +# predictions from data, as well as allowing us to extract important +# correlations about physical process and the underlying laws of motion +# in large data sets. The latter, big data sets, appear frequently in +# essentially all disciplines, from the traditional Science, Technology, +# Mathematics and Engineering fields to Life Science, Law, education +# research, the Humanities and the Social Sciences. +# +# It has become more +# and more common to see research projects on big data in for example +# the Social Sciences where extracting patterns from complicated survey +# data is one of many research directions. Having a solid grasp of data +# analysis and machine learning is thus becoming central to scientific +# computing in many fields, and competences and skills within the fields +# of machine learning and scientific computing are nowadays strongly +# requested by many potential employers. The latter cannot be +# overstated, familiarity with machine learning has almost become a +# prerequisite for many of the most exciting employment opportunities, +# whether they are in bioinformatics, life science, physics or finance, +# in the private or the public sector. This author has had several +# students or met students who have been hired recently based on their +# skills and competences in scientific computing and data science, often +# with marginal knowledge of machine learning. +# +# Machine learning is a subfield of computer science, and is closely +# related to computational statistics. It evolved from the study of +# pattern recognition in artificial intelligence (AI) research, and has +# made contributions to AI tasks like computer vision, natural language +# processing and speech recognition. Many of the methods we will study are also +# strongly rooted in basic mathematics and physics research. +# +# Ideally, machine learning represents the science of giving computers +# the ability to learn without being explicitly programmed. The idea is +# that there exist generic algorithms which can be used to find patterns +# in a broad class of data sets without having to write code +# specifically for each problem. The algorithm will build its own logic +# based on the data. You should however always keep in mind that +# machines and algorithms are to a large extent developed by humans. The +# insights and knowledge we have about a specific system, play a central +# role when we develop a specific machine learning algorithm. +# +# Machine learning is an extremely rich field, in spite of its young +# age. The increases we have seen during the last three decades in +# computational capabilities have been followed by developments of +# methods and techniques for analyzing and handling large date sets, +# relying heavily on statistics, computer science and mathematics. The +# field is rather new and developing rapidly. Popular software packages +# written in Python for machine learning like +# [Scikit-learn](http://scikit-learn.org/stable/), +# [Tensorflow](https://www.tensorflow.org/), +# [PyTorch](http://pytorch.org/) and [Keras](https://keras.io/), all +# freely available at their respective GitHub sites, encompass +# communities of developers in the thousands or more. And the number of +# code developers and contributors keeps increasing. Not all the +# algorithms and methods can be given a rigorous mathematical +# justification, opening up thereby large rooms for experimenting and +# trial and error and thereby exciting new developments. However, a +# solid command of linear algebra, multivariate theory, probability +# theory, statistical data analysis, understanding errors and Monte +# Carlo methods are central elements in a proper understanding of many +# of algorithms and methods we will discuss. +# +# +# +# The approaches to machine learning are many, but are often split into +# two main categories. In *supervised learning* we know the answer to a +# problem, and let the computer deduce the logic behind it. On the other +# hand, *unsupervised learning* is a method for finding patterns and +# relationship in data sets without any prior knowledge of the system. +# Some authours also operate with a third category, namely +# *reinforcement learning*. This is a paradigm of learning inspired by +# behavioral psychology, where learning is achieved by trial-and-error, +# solely from rewards and punishment. +# +# Another way to categorize machine learning tasks is to consider the +# desired output of a system. Some of the most common tasks are: +# +# * Classification: Outputs are divided into two or more classes. The goal is to produce a model that assigns inputs into one of these classes. An example is to identify digits based on pictures of hand-written ones. Classification is typically supervised learning. +# +# * Regression: Finding a functional relationship between an input data set and a reference data set. The goal is to construct a function that maps input data to continuous output values. +# +# * Clustering: Data are divided into groups with certain common traits, without knowing the different groups beforehand. It is thus a form of unsupervised learning. +# +# The methods we cover have three main topics in common, irrespective of +# whether we deal with supervised or unsupervised learning. +# * The first ingredient is normally our data set (which can be subdivided into training, validation and test data). Many find the most difficult part of using Machine Learning to be the set up of your data in a meaningful way. +# +# * The second item is a model which is normally a function of some parameters. The model reflects our knowledge of the system (or lack thereof). As an example, if we know that our data show a behavior similar to what would be predicted by a polynomial, fitting our data to a polynomial of some degree would then determin our model. +# +# * The last ingredient is a so-called **cost/loss** function (or error or risk function) which allows us to present an estimate on how good our model is in reproducing the data it is supposed to train. +# +# +# +# At the heart of basically all Machine Learning algorithms we will encounter so-called minimization or optimization algorithms. A large family of such methods are so-called **gradient methods**. +# +# +# ### A Frequentist approach to data analysis +# +# When you hear phrases like **predictions and estimations** and +# **correlations and causations**, what do you think of? May be you think +# of the difference between classifying new data points and generating +# new data points. +# Or perhaps you consider that correlations represent some kind of symmetric statements like +# if $A$ is correlated with $B$, then $B$ is correlated with +# $A$. Causation on the other hand is directional, that is if $A$ causes $B$, $B$ does not +# necessarily cause $A$. +# +# These concepts are in some sense the difference between machine +# learning and statistics. In machine learning and prediction based +# tasks, we are often interested in developing algorithms that are +# capable of learning patterns from given data in an automated fashion, +# and then using these learned patterns to make predictions or +# assessments of newly given data. In many cases, our primary concern +# is the quality of the predictions or assessments, and we are less +# concerned about the underlying patterns that were learned in order +# to make these predictions. +# +# In machine learning we normally use [a so-called frequentist approach](https://en.wikipedia.org/wiki/Frequentist_inference), +# where the aim is to make predictions and find correlations. We focus +# less on for example extracting a probability distribution function (PDF). The PDF can be +# used in turn to make estimations and find causations such as given $A$ +# what is the likelihood of finding $B$. +# +# +# ### What is a good model? +# +# In science and engineering we often end up in situations where we want to infer (or learn) a +# quantitative model $M$ for a given set of sample points $\boldsymbol{X} \in [x_1, x_2,\dots x_N]$. +# +# As we will see repeatedely in these lectures, we could try to fit these data points to a model given by a +# straight line, or if we wish to be more sophisticated to a more complex +# function. +# +# The reason for inferring such a model is that it +# serves many useful purposes. On the one hand, the model can reveal information +# encoded in the data or underlying mechanisms from which the data were generated. For instance, we could discover important +# corelations that relate interesting physics interpretations. +# +# In addition, it can simplify the representation of the given data set and help +# us in making predictions about future data samples. +# +# A first important consideration to keep in mind is that inferring the *correct* model +# for a given data set is an elusive, if not impossible, task. The fundamental difficulty +# is that if we are not specific about what we mean by a *correct* model, there +# could easily be many different models that fit the given data set *equally well*. +# +# +# +# +# The central question is this: what leads us to say that a model is correct or +# optimal for a given data set? To make the model inference problem well posed, i.e., +# to guarantee that there is a unique optimal model for the given data, we need to +# impose additional assumptions or restrictions on the class of models considered. To +# this end, we should not be looking for just any model that can describe the data. +# Instead, we should look for a **model** $M$ that is the best among a restricted class +# of models. In addition, to make the model inference problem computationally +# tractable, we need to specify how restricted the class of models needs to be. A +# common strategy is to start +# with the simplest possible class of models that is just necessary to describe the data +# or solve the problem at hand. More precisely, the model class should be rich enough +# to contain at least one model that can fit the data to a desired accuracy and yet be +# restricted enough that it is relatively simple to find the best model for the given data. +# +# Thus, the most popular strategy is to start from the +# simplest class of models and increase the complexity of the models only when the +# simpler models become inadequate. For instance, if we work with a regression problem to fit a set of sample points, one +# may first try the simplest class of models, namely linear models, followed obviously by more complex models. +# +# How to evaluate which model fits best the data is something we will come back to over and over again in these sets of lectures. +# +# +# +# +# +# +# +# +# +# +# +# ## Simple linear regression model using **scikit-learn** +# +# We start with perhaps our simplest possible example, using +# **Scikit-Learn** to perform linear regression analysis on a data set +# produced by us. +# +# What follows is a simple Python code where we have defined a function +# $y$ in terms of the variable $x$. Both are defined as vectors with $100$ entries. +# The numbers in the vector $\boldsymbol{x}$ are given +# by random numbers generated with a uniform distribution with entries +# $x_i \in [0,1]$ (more about probability distribution functions +# later). These values are then used to define a function $y(x)$ +# (tabulated again as a vector) with a linear dependence on $x$ plus a +# random noise added via the normal distribution. +# +# +# The Numpy functions are imported used the **import numpy as np** +# statement and the random number generator for the uniform distribution +# is called using the function **np.random.rand()**, where we specificy +# that we want $100$ random variables. Using Numpy we define +# automatically an array with the specified number of elements, $100$ in +# our case. With the Numpy function **randn()** we can compute random +# numbers with the normal distribution (mean value $\mu$ equal to zero and +# variance $\sigma^2$ set to one) and produce the values of $y$ assuming a linear +# dependence as function of $x$ + +# $$ +# y = 2x+N(0,1), +# $$ + +# where $N(0,1)$ represents random numbers generated by the normal +# distribution. From **Scikit-Learn** we import then the +# **LinearRegression** functionality and make a prediction $\tilde{y} = +# \alpha + \beta x$ using the function **fit(x,y)**. We call the set of +# data $(\boldsymbol{x},\boldsymbol{y})$ for our training data. The Python package +# **scikit-learn** has also a functionality which extracts the above +# fitting parameters $\alpha$ and $\beta$ (see below). Later we will +# distinguish between training data and test data. +# +# For plotting we use the Python package +# [matplotlib](https://matplotlib.org/) which produces publication +# quality figures. Feel free to explore the extensive +# [gallery](https://matplotlib.org/gallery/index.html) of examples. In +# this example we plot our original values of $x$ and $y$ as well as the +# prediction **ypredict** ($\tilde{y}$), which attempts at fitting our +# data with a straight line. Note also that **Scikit-Learn** requires a +# matrix as input for the input values $x$ and $y$. In the above code we +# have solved this by declaring $x$ and $y$ as arrays of dimension +# $n\times 1$. +# +# In the code here we have also made a new array for $x\in [0,1]$. Our +# prediction is computed for these values, meaning that they were not +# included in the data set used to *train* (or fit) the model. +# This is a recurrring theme in machine learning and data analysis. We would like to train a model on a specific given data set. +# Thereafter we wish to apply it to data which were not included in the training. Below we will encounter this again in the so-called *train-validate-test* spliting. We will typically split our data into different sets, oen for training, one for validation and finally, our data from the untouched test vault! +# +# +# The Python code follows here. + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +# Importing various packages +import numpy as np +import matplotlib.pyplot as plt +from sklearn.linear_model import LinearRegression + +x = np.random.rand(100,1) +y = 2*x+np.random.randn(100,1) +linreg = LinearRegression() +linreg.fit(x,y) +# This is our new x-array to which we test our model +xnew = np.array([[0],[1]]) +ypredict = linreg.predict(xnew) + +plt.plot(xnew, ypredict, "r-") +plt.plot(x, y ,'ro') +plt.axis([0,1.0,0, 5.0]) +plt.xlabel(r'$x$') +plt.ylabel(r'$y$') +plt.title(r'Simple Linear Regression') +plt.show() + + +# This example serves several aims. It allows us to demonstrate several +# aspects of data analysis and later machine learning algorithms. The +# immediate visualization shows that our linear fit is not +# impressive. It goes through the data points, but there are many +# outliers which are not reproduced by our linear regression. We could +# now play around with this small program and change for example the +# factor in front of $x$ and the normal distribution. Try to change the +# function $y$ to + +# $$ +# y = 10x+0.01 \times N(0,1), +# $$ + +# where $x$ is defined as before. Does the fit look better? Indeed, by +# reducing the role of the noise given by the normal distribution we see immediately that +# our linear prediction seemingly reproduces better the training +# set. However, this testing 'by the eye' is obviouly not satisfactory in the +# long run. Here we have only defined the training data and our model, and +# have not discussed a more rigorous approach to the **cost** function. +# +# We need more rigorous criteria in defining whether we have succeeded or +# not in modeling our training data. You will be surprised to see that +# many scientists seldomly venture beyond this 'by the eye' approach. A +# standard approach for the *cost* function is the so-called $\chi^2$ +# function (a variant of the mean-squared error (MSE)) + +# $$ +# \chi^2 = \frac{1}{n} +# \sum_{i=0}^{n-1}\frac{(y_i-\tilde{y}_i)^2}{\sigma_i^2}, +# $$ + +# where $\sigma_i^2$ is the variance (to be defined later) of the entry +# $y_i$. We may not know the explicit value of $\sigma_i^2$, it serves +# however the aim of scaling the equations and make the cost function +# dimensionless. +# +# Minimizing the cost function is a central aspect of +# our discussions to come. Finding its minima as function of the model +# parameters ($\alpha$ and $\beta$ in our case) will be a recurring +# theme in these series of lectures. Essentially all machine learning +# algorithms we will discuss center around the minimization of the +# chosen cost function. This depends in turn on our specific +# model for describing the data, a typical situation in supervised +# learning. Automatizing the search for the minima of the cost function is a +# central ingredient in all algorithms. Typical methods which are +# employed are various variants of **gradient** methods. These will be +# discussed in more detail later. Again, you'll be surprised to hear that +# many practitioners minimize the above function ''by the eye', popularly dubbed as +# 'chi by the eye'. That is, change a parameter and see (visually and numerically) that +# the $\chi^2$ function becomes smaller. +# +# There are many ways to define the cost function. A simpler approach is to look at the relative difference between the training data and the predicted data, that is we define +# the relative error (why would we prefer the MSE instead of the relative error?) as + +# $$ +# \epsilon_{\mathrm{relative}}= \frac{\vert \boldsymbol{y} -\boldsymbol{\tilde{y}}\vert}{\vert \boldsymbol{y}\vert}. +# $$ + +# The squared cost function results in an arithmetic mean-unbiased +# estimator, and the absolute-value cost function results in a +# median-unbiased estimator (in the one-dimensional case, and a +# geometric median-unbiased estimator for the multi-dimensional +# case). The squared cost function has the disadvantage that it has the tendency +# to be dominated by outliers. +# +# We can modify easily the above Python code and plot the relative error instead + +# In[2]: + + +import numpy as np +import matplotlib.pyplot as plt +from sklearn.linear_model import LinearRegression +# Number of data points +n = 100 +x = np.random.rand(100,1) +y = 5*x+0.01*np.random.randn(100,1) +linreg = LinearRegression() +linreg.fit(x,y) +ypredict = linreg.predict(x) + +plt.plot(x, np.abs(ypredict-y)/abs(y), "ro") +plt.axis([0,1.0,0.0, 0.5]) +plt.xlabel(r'$x$') +plt.ylabel(r'$\epsilon_{\mathrm{relative}}$') +plt.title(r'Relative error') +plt.show() + + +# Depending on the parameter in front of the normal distribution, we may +# have a small or larger relative error. Try to play around with +# different training data sets and study (graphically) the value of the +# relative error. +# +# As mentioned above, **Scikit-Learn** has an impressive functionality. +# We can for example extract the values of $\alpha$ and $\beta$ and +# their error estimates, or the variance and standard deviation and many +# other properties from the statistical data analysis. +# +# Here we show an +# example of the functionality of **Scikit-Learn**. + +# In[3]: + + +import numpy as np +import matplotlib.pyplot as plt +from sklearn.linear_model import LinearRegression +from sklearn.metrics import mean_squared_error, r2_score, mean_squared_log_error, mean_absolute_error + +x = np.random.rand(100,1) +y = 2.0+ 5*x+0.5*np.random.randn(100,1) +linreg = LinearRegression() +linreg.fit(x,y) +ypredict = linreg.predict(x) +print('The intercept alpha: \n', linreg.intercept_) +print('Coefficient beta : \n', linreg.coef_) +# The mean squared error +print("Mean squared error: %.2f" % mean_squared_error(y, ypredict)) +# Explained variance score: 1 is perfect prediction +print('Variance score: %.2f' % r2_score(y, ypredict)) +# Mean squared log error +print('Mean squared log error: %.2f' % mean_squared_log_error(y, ypredict) ) +# Mean absolute error +print('Mean absolute error: %.2f' % mean_absolute_error(y, ypredict)) +plt.plot(x, ypredict, "r-") +plt.plot(x, y ,'ro') +plt.axis([0.0,1.0,1.5, 7.0]) +plt.xlabel(r'$x$') +plt.ylabel(r'$y$') +plt.title(r'Linear Regression fit ') +plt.show() + + +# The function **coef** gives us the parameter $\beta$ of our fit while **intercept** yields +# $\alpha$. Depending on the constant in front of the normal distribution, we get values near or far from $alpha =2$ and $\beta =5$. Try to play around with different parameters in front of the normal distribution. The function **meansquarederror** gives us the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error or loss defined as + +# $$ +# MSE(\boldsymbol{y},\boldsymbol{\tilde{y}}) = \frac{1}{n} +# \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +# $$ + +# The smaller the value, the better the fit. Ideally we would like to +# have an MSE equal zero. The attentive reader has probably recognized +# this function as being similar to the $\chi^2$ function defined above. +# +# The **r2score** function computes $R^2$, the coefficient of +# determination. It provides a measure of how well future samples are +# likely to be predicted by the model. Best possible score is 1.0 and it +# can be negative (because the model can be arbitrarily worse). A +# constant model that always predicts the expected value of $\boldsymbol{y}$, +# disregarding the input features, would get a $R^2$ score of $0.0$. +# +# If $\tilde{\boldsymbol{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as + +# $$ +# R^2(\boldsymbol{y}, \tilde{\boldsymbol{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +# $$ + +# where we have defined the mean value of $\boldsymbol{y}$ as + +# $$ +# \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +# $$ + +# Another quantity taht we will meet again in our discussions of regression analysis is +# the mean absolute error (MAE), a risk metric corresponding to the expected value of the absolute error loss or what we call the $l1$-norm loss. In our discussion above we presented the relative error. +# The MAE is defined as follows + +# $$ +# \text{MAE}(\boldsymbol{y}, \boldsymbol{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1} \left| y_i - \tilde{y}_i \right|. +# $$ + +# We present the +# squared logarithmic (quadratic) error + +# $$ +# \text{MSLE}(\boldsymbol{y}, \boldsymbol{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n - 1} (\log_e (1 + y_i) - \log_e (1 + \tilde{y}_i) )^2, +# $$ + +# where $\log_e (x)$ stands for the natural logarithm of $x$. This error +# estimate is best to use when targets having exponential growth, such +# as population counts, average sales of a commodity over a span of +# years etc. +# +# +# Finally, another cost function is the Huber cost function used in robust regression. +# +# The rationale behind this possible cost function is its reduced +# sensitivity to outliers in the data set. In our discussions on +# dimensionality reduction and normalization of data we will meet other +# ways of dealing with outliers. +# +# The Huber cost function is defined as + +# $$ +# H_{\delta}(\boldsymbol{a})=\left\{\begin{array}{cc}\frac{1}{2} \boldsymbol{a}^{2}& \text{for }|\boldsymbol{a}|\leq \delta\\ \delta (|\boldsymbol{a}|-\frac{1}{2}\delta ),&\text{otherwise}.\end{array}\right. +# $$ + +# Here $\boldsymbol{a}=\boldsymbol{y} - \boldsymbol{\tilde{y}}$. +# +# +# +# +# We will discuss in more +# detail these and other functions in the various lectures. We conclude this part with another example. Instead of +# a linear $x$-dependence we study now a cubic polynomial and use the polynomial regression analysis tools of scikit-learn. + +# In[4]: + + +import matplotlib.pyplot as plt +import numpy as np +import random +from sklearn.linear_model import Ridge +from sklearn.preprocessing import PolynomialFeatures +from sklearn.pipeline import make_pipeline +from sklearn.linear_model import LinearRegression + +x=np.linspace(0.02,0.98,200) +noise = np.asarray(random.sample((range(200)),200)) +y=x**3*noise +yn=x**3*100 +poly3 = PolynomialFeatures(degree=3) +X = poly3.fit_transform(x[:,np.newaxis]) +clf3 = LinearRegression() +clf3.fit(X,y) + +Xplot=poly3.fit_transform(x[:,np.newaxis]) +poly3_plot=plt.plot(x, clf3.predict(Xplot), label='Cubic Fit') +plt.plot(x,yn, color='red', label="True Cubic") +plt.scatter(x, y, label='Data', color='orange', s=15) +plt.legend() +plt.show() + +def error(a): + for i in y: + err=(y-yn)/yn + return abs(np.sum(err))/len(err) + +print (error(y)) + + +# Let us now dive into nuclear physics and remind ourselves briefly about some basic features about binding +# energies. A basic quantity which can be measured for the ground +# states of nuclei is the atomic mass $M(N, Z)$ of the neutral atom with +# atomic mass number $A$ and charge $Z$. The number of neutrons is $N$. There are indeed several sophisticated experiments worldwide which allow us to measure this quantity to high precision (parts per million even). +# +# Atomic masses are usually tabulated in terms of the mass excess defined by + +# $$ +# \Delta M(N, Z) = M(N, Z) - uA, +# $$ + +# where $u$ is the Atomic Mass Unit + +# $$ +# u = M(^{12}\mathrm{C})/12 = 931.4940954(57) \hspace{0.1cm} \mathrm{MeV}/c^2. +# $$ + +# The nucleon masses are + +# $$ +# m_p = 1.00727646693(9)u, +# $$ + +# and + +# $$ +# m_n = 939.56536(8)\hspace{0.1cm} \mathrm{MeV}/c^2 = 1.0086649156(6)u. +# $$ + +# In the [2016 mass evaluation of by W.J.Huang, G.Audi, M.Wang, F.G.Kondev, S.Naimi and X.Xu](http://nuclearmasses.org/resources_folder/Wang_2017_Chinese_Phys_C_41_030003.pdf) +# there are data on masses and decays of 3437 nuclei. +# +# The nuclear binding energy is defined as the energy required to break +# up a given nucleus into its constituent parts of $N$ neutrons and $Z$ +# protons. In terms of the atomic masses $M(N, Z)$ the binding energy is +# defined by + +# $$ +# BE(N, Z) = ZM_H c^2 + Nm_n c^2 - M(N, Z)c^2 , +# $$ + +# where $M_H$ is the mass of the hydrogen atom and $m_n$ is the mass of the neutron. +# In terms of the mass excess the binding energy is given by + +# $$ +# BE(N, Z) = Z\Delta_H c^2 + N\Delta_n c^2 -\Delta(N, Z)c^2 , +# $$ + +# where $\Delta_H c^2 = 7.2890$ MeV and $\Delta_n c^2 = 8.0713$ MeV. +# +# +# A popular and physically intuitive model which can be used to parametrize +# the experimental binding energies as function of $A$, is the so-called +# **liquid drop model**. The ansatz is based on the following expression + +# $$ +# BE(N,Z) = a_1A-a_2A^{2/3}-a_3\frac{Z^2}{A^{1/3}}-a_4\frac{(N-Z)^2}{A}, +# $$ + +# where $A$ stands for the number of nucleons and the $a_i$s are parameters which are determined by a fit +# to the experimental data. +# +# +# +# +# To arrive at the above expression we have assumed that we can make the following assumptions: +# +# * There is a volume term $a_1A$ proportional with the number of nucleons (the energy is also an extensive quantity). When an assembly of nucleons of the same size is packed together into the smallest volume, each interior nucleon has a certain number of other nucleons in contact with it. This contribution is proportional to the volume. +# +# * There is a surface energy term $a_2A^{2/3}$. The assumption here is that a nucleon at the surface of a nucleus interacts with fewer other nucleons than one in the interior of the nucleus and hence its binding energy is less. This surface energy term takes that into account and is therefore negative and is proportional to the surface area. +# +# * There is a Coulomb energy term $a_3\frac{Z^2}{A^{1/3}}$. The electric repulsion between each pair of protons in a nucleus yields less binding. +# +# * There is an asymmetry term $a_4\frac{(N-Z)^2}{A}$. This term is associated with the Pauli exclusion principle and reflects the fact that the proton-neutron interaction is more attractive on the average than the neutron-neutron and proton-proton interactions. +# +# We could also add a so-called pairing term, which is a correction term that +# arises from the tendency of proton pairs and neutron pairs to +# occur. An even number of particles is more stable than an odd number. +# +# +# ### Organizing our data +# +# Let us start with reading and organizing our data. +# We start with the compilation of masses and binding energies from 2016. +# After having downloaded this file to our own computer, we are now ready to read the file and start structuring our data. +# +# +# We start with preparing folders for storing our calculations and the data file over masses and binding energies. We import also various modules that we will find useful in order to present various Machine Learning methods. Here we focus mainly on the functionality of **scikit-learn**. + +# In[5]: + + +# Common imports +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +import sklearn.linear_model as skl +from sklearn.model_selection import train_test_split +from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error +import os + +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +infile = open(data_path("MassEval2016.dat"),'r') + + +# Before we proceed, we define also a function for making our plots. You can obviously avoid this and simply set up various **matplotlib** commands every time you need them. You may however find it convenient to collect all such commands in one function and simply call this function. + +# In[6]: + + +from pylab import plt, mpl +plt.style.use('seaborn') +mpl.rcParams['font.family'] = 'serif' + +def MakePlot(x,y, styles, labels, axlabels): + plt.figure(figsize=(10,6)) + for i in range(len(x)): + plt.plot(x[i], y[i], styles[i], label = labels[i]) + plt.xlabel(axlabels[0]) + plt.ylabel(axlabels[1]) + plt.legend(loc=0) + + +# Our next step is to read the data on experimental binding energies and +# reorganize them as functions of the mass number $A$, the number of +# protons $Z$ and neutrons $N$ using **pandas**. Before we do this it is +# always useful (unless you have a binary file or other types of compressed +# data) to actually open the file and simply take a look at it! +# +# +# In particular, the program that outputs the final nuclear masses is written in Fortran with a specific format. It means that we need to figure out the format and which columns contain the data we are interested in. Pandas comes with a function that reads formatted output. After having admired the file, we are now ready to start massaging it with **pandas**. The file begins with some basic format information. + +# In[7]: + + +""" +This is taken from the data file of the mass 2016 evaluation. +All files are 3436 lines long with 124 character per line. + Headers are 39 lines long. + col 1 : Fortran character control: 1 = page feed 0 = line feed + format : a1,i3,i5,i5,i5,1x,a3,a4,1x,f13.5,f11.5,f11.3,f9.3,1x,a2,f11.3,f9.3,1x,i3,1x,f12.5,f11.5 + These formats are reflected in the pandas widths variable below, see the statement + widths=(1,3,5,5,5,1,3,4,1,13,11,11,9,1,2,11,9,1,3,1,12,11,1), + Pandas has also a variable header, with length 39 in this case. +""" + + +# The data we are interested in are in columns 2, 3, 4 and 11, giving us +# the number of neutrons, protons, mass numbers and binding energies, +# respectively. We add also for the sake of completeness the element name. The data are in fixed-width formatted lines and we will +# covert them into the **pandas** DataFrame structure. + +# In[8]: + + +# Read the experimental data with Pandas +Masses = pd.read_fwf(infile, usecols=(2,3,4,6,11), + names=('N', 'Z', 'A', 'Element', 'Ebinding'), + widths=(1,3,5,5,5,1,3,4,1,13,11,11,9,1,2,11,9,1,3,1,12,11,1), + header=39, + index_col=False) + +# Extrapolated values are indicated by '#' in place of the decimal place, so +# the Ebinding column won't be numeric. Coerce to float and drop these entries. +Masses['Ebinding'] = pd.to_numeric(Masses['Ebinding'], errors='coerce') +Masses = Masses.dropna() +# Convert from keV to MeV. +Masses['Ebinding'] /= 1000 + +# Group the DataFrame by nucleon number, A. +Masses = Masses.groupby('A') +# Find the rows of the grouped DataFrame with the maximum binding energy. +Masses = Masses.apply(lambda t: t[t.Ebinding==t.Ebinding.max()]) + + +# We have now read in the data, grouped them according to the variables we are interested in. +# We see how easy it is to reorganize the data using **pandas**. If we +# were to do these operations in C/C++ or Fortran, we would have had to +# write various functions/subroutines which perform the above +# reorganizations for us. Having reorganized the data, we can now start +# to make some simple fits using both the functionalities in **numpy** and +# **Scikit-Learn** afterwards. +# +# Now we define five variables which contain +# the number of nucleons $A$, the number of protons $Z$ and the number of neutrons $N$, the element name and finally the energies themselves. + +# In[9]: + + +A = Masses['A'] +Z = Masses['Z'] +N = Masses['N'] +Element = Masses['Element'] +Energies = Masses['Ebinding'] +print(Masses) + + +# The next step, and we will define this mathematically later, is to set up the so-called **design matrix**. We will throughout call this matrix $\boldsymbol{X}$. +# It has dimensionality $n\times p$, where $n$ is the number of data points and $p$ are the so-called predictors. In our case here they are given by the number of polynomials in $A$ we wish to include in the fit. + +# In[10]: + + +# Now we set up the design matrix X +X = np.zeros((len(A),5)) +X[:,0] = 1 +X[:,1] = A +X[:,2] = A**(2.0/3.0) +X[:,3] = A**(-1.0/3.0) +X[:,4] = A**(-1.0) + + +# Note well that we have made life simple here. We perform a fit in +# terms of the number of nucleons only. A more sophisticated fit can be +# done by including an explicit dependence on the number of protons and +# neutrons in the asymmetry and Coulomb terms. We leave this as an exercise to you the reader. +# +# With **Scikit-Learn** we are now ready to use linear regression and fit our data. + +# In[11]: + + +clf = skl.LinearRegression().fit(X, Energies) +fity = clf.predict(X) + + +# Pretty simple! +# Now we can print measures of how our fit is doing, the coefficients from the fits and plot the final fit together with our data. + +# In[12]: + + +# The mean squared error +print("Mean squared error: %.2f" % mean_squared_error(Energies, fity)) +# Explained variance score: 1 is perfect prediction +print('Variance score: %.2f' % r2_score(Energies, fity)) +# Mean absolute error +print('Mean absolute error: %.2f' % mean_absolute_error(Energies, fity)) + +Masses['Eapprox'] = fity +# Generate a plot comparing the experimental with the fitted values values. +fig, ax = plt.subplots() +ax.set_xlabel(r'$A = N + Z$') +ax.set_ylabel(r'$E_\mathrm{bind}\,/\mathrm{MeV}$') +ax.plot(Masses['A'], Masses['Ebinding'], alpha=0.7, lw=2, + label='Ame2016') +ax.plot(Masses['A'], Masses['Eapprox'], alpha=0.7, lw=2, c='m', + label='Fit') +ax.legend() +save_fig("Masses2016") +plt.show() + + +# As a teaser, let us now see how we can do this with decision trees using **Scikit-Learn**. Later we will switch to so-called **random forests**! + +# In[13]: + + + +#Decision Tree Regression +from sklearn.tree import DecisionTreeRegressor +regr_1=DecisionTreeRegressor(max_depth=5) +regr_2=DecisionTreeRegressor(max_depth=7) +regr_3=DecisionTreeRegressor(max_depth=9) +regr_1.fit(X, Energies) +regr_2.fit(X, Energies) +regr_3.fit(X, Energies) + + +y_1 = regr_1.predict(X) +y_2 = regr_2.predict(X) +y_3=regr_3.predict(X) +Masses['Eapprox'] = y_3 +# Plot the results +plt.figure() +plt.plot(A, Energies, color="blue", label="Data", linewidth=2) +plt.plot(A, y_1, color="red", label="max_depth=5", linewidth=2) +plt.plot(A, y_2, color="green", label="max_depth=7", linewidth=2) +plt.plot(A, y_3, color="m", label="max_depth=9", linewidth=2) + +plt.xlabel("$A$") +plt.ylabel("$E$[MeV]") +plt.title("Decision Tree Regression") +plt.legend() +save_fig("Masses2016Trees") +plt.show() +print(Masses) +print(np.mean( (Energies-y_1)**2)) + + +# With a deeper and deeper tree level, we can almost reproduce every +# single data point by increasing the max depth of the tree. +# We can actually decide to make a decision tree which fits every single point. +# As we will +# see later, this has the benefit that we can really train a model which +# traverses every single data point. However, the price we pay is that +# we will easily overfit. That is, if we apply our model to unseen data, +# we will most likely fail miserably in our attempt at making +# predictions. As an exercise, try to make the tree level larger by adjusting the maximum depth variable. When printing out the predicition, you will note that the binding energy of every nucleus is accurately reproduced. +# +# +# The **seaborn** package allows us to visualize data in an efficient way. Note that we use **scikit-learn**'s multi-layer perceptron (or feed forward neural network) +# functionality. + +# In[14]: + + +from sklearn.neural_network import MLPRegressor +from sklearn.metrics import accuracy_score +import seaborn as sns + +X_train = X +Y_train = Energies +n_hidden_neurons = 100 +epochs = 100 +# store models for later use +eta_vals = np.logspace(-5, 1, 7) +lmbd_vals = np.logspace(-5, 1, 7) +# store the models for later use +DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +sns.set() +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + dnn = MLPRegressor(hidden_layer_sizes=(n_hidden_neurons), activation='logistic', + alpha=lmbd, learning_rate_init=eta, max_iter=epochs) + dnn.fit(X_train, Y_train) + DNN_scikit[i][j] = dnn + train_accuracy[i][j] = dnn.score(X_train, Y_train) + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + + +# ## Linear Regression, basic elements +# +# +# [Video of Lecture](https://www.uio.no/studier/emner/matnat/fys/FYS-STK4155/h20/forelesningsvideoer/LectureAug27.mp4?vrtx=view-as-webpage). +# +# +# Fitting a continuous function with linear parameterization in terms of the parameters $\boldsymbol{\beta}$. +# * Method of choice for fitting a continuous function! +# +# * Gives an excellent introduction to central Machine Learning features with **understandable pedagogical** links to other methods like **Neural Networks**, **Support Vector Machines** etc +# +# * Analytical expression for the fitting parameters $\boldsymbol{\beta}$ +# +# * Analytical expressions for statistical propertiers like mean values, variances, confidence intervals and more +# +# * Analytical relation with probabilistic interpretations +# +# * Easy to introduce basic concepts like bias-variance tradeoff, cross-validation, resampling and regularization techniques and many other ML topics +# +# * Easy to code! And links well with classification problems and logistic regression and neural networks +# +# * Allows for **easy** hands-on understanding of gradient descent methods +# +# * and many more features +# +# For more discussions of Ridge and Lasso regression, [Wessel van Wieringen's](https://arxiv.org/abs/1509.09169) article is highly recommended. +# Similarly, [Mehta et al's article](https://arxiv.org/abs/1803.08823) is also recommended. +# +# +# +# Regression modeling deals with the description of the sampling distribution of a given random variable $y$ and how it varies as function of another variable or a set of such variables $\boldsymbol{x} =[x_0, x_1,\dots, x_{n-1}]^T$. +# The first variable is called the **dependent**, the **outcome** or the **response** variable while the set of variables $\boldsymbol{x}$ is called the independent variable, or the predictor variable or the explanatory variable. +# +# A regression model aims at finding a likelihood function $p(\boldsymbol{y}\vert \boldsymbol{x})$, that is the conditional distribution for $\boldsymbol{y}$ with a given $\boldsymbol{x}$. The estimation of $p(\boldsymbol{y}\vert \boldsymbol{x})$ is made using a data set with +# * $n$ cases $i = 0, 1, 2, \dots, n-1$ +# +# * Response (target, dependent or outcome) variable $y_i$ with $i = 0, 1, 2, \dots, n-1$ +# +# * $p$ so-called explanatory (independent or predictor) variables $\boldsymbol{x}_i=[x_{i0}, x_{i1}, \dots, x_{ip-1}]$ with $i = 0, 1, 2, \dots, n-1$ and explanatory variables running from $0$ to $p-1$. See below for more explicit examples. +# +# The goal of the regression analysis is to extract/exploit relationship between $\boldsymbol{y}$ and $\boldsymbol{x}$ in or to infer causal dependencies, approximations to the likelihood functions, functional relationships and to make predictions, making fits and many other things. +# +# +# Consider an experiment in which $p$ characteristics of $n$ samples are +# measured. The data from this experiment, for various explanatory variables $p$ are normally represented by a matrix +# $\mathbf{X}$. +# +# The matrix $\mathbf{X}$ is called the *design +# matrix*. Additional information of the samples is available in the +# form of $\boldsymbol{y}$ (also as above). The variable $\boldsymbol{y}$ is +# generally referred to as the *response variable*. The aim of +# regression analysis is to explain $\boldsymbol{y}$ in terms of +# $\boldsymbol{X}$ through a functional relationship like $y_i = +# f(\mathbf{X}_{i,\ast})$. When no prior knowledge on the form of +# $f(\cdot)$ is available, it is common to assume a linear relationship +# between $\boldsymbol{X}$ and $\boldsymbol{y}$. This assumption gives rise to +# the *linear regression model* where $\boldsymbol{\beta} = [\beta_0, \ldots, +# \beta_{p-1}]^{T}$ are the *regression parameters*. +# +# Linear regression gives us a set of analytical equations for the parameters $\beta_j$. +# +# +# In order to understand the relation among the predictors $p$, the set of data $n$ and the target (outcome, output etc) $\boldsymbol{y}$, +# consider the model we discussed for describing nuclear binding energies. +# +# There we assumed that we could parametrize the data using a polynomial approximation based on the liquid drop model. +# Assuming + +# $$ +# BE(A) = a_0+a_1A+a_2A^{2/3}+a_3A^{-1/3}+a_4A^{-1}, +# $$ + +# we have five predictors, that is the intercept, the $A$ dependent term, the $A^{2/3}$ term and the $A^{-1/3}$ and $A^{-1}$ terms. +# This gives $p=0,1,2,3,4$. Furthermore we have $n$ entries for each predictor. It means that our design matrix is a +# $p\times n$ matrix $\boldsymbol{X}$. +# +# Here the predictors are based on a model we have made. A popular data set which is widely encountered in ML applications is the +# so-called [credit card default data from Taiwan](https://www.sciencedirect.com/science/article/pii/S0957417407006719?via%3Dihub). The data set contains data on $n=30000$ credit card holders with predictors like gender, marital status, age, profession, education, etc. In total there are $24$ such predictors or attributes leading to a design matrix of dimensionality $24 \times 30000$. This is however a classification problem and we will come back to it when we discuss Logistic Regression. +# +# +# Before we proceed let us study a case from linear algebra where we aim at fitting a set of data $\boldsymbol{y}=[y_0,y_1,\dots,y_{n-1}]$. We could think of these data as a result of an experiment or a complicated numerical experiment. These data are functions of a series of variables $\boldsymbol{x}=[x_0,x_1,\dots,x_{n-1}]$, that is $y_i = y(x_i)$ with $i=0,1,2,\dots,n-1$. The variables $x_i$ could represent physical quantities like time, temperature, position etc. We assume that $y(x)$ is a smooth function. +# +# Since obtaining these data points may not be trivial, we want to use these data to fit a function which can allow us to make predictions for values of $y$ which are not in the present set. The perhaps simplest approach is to assume we can parametrize our function in terms of a polynomial of degree $n-1$ with $n$ points, that is + +# $$ +# y=y(x) \rightarrow y(x_i)=\tilde{y}_i+\epsilon_i=\sum_{j=0}^{n-1} \beta_j x_i^j+\epsilon_i, +# $$ + +# where $\epsilon_i$ is the error in our approximation. +# +# +# For every set of values $y_i,x_i$ we have thus the corresponding set of equations + +# $$ +# \begin{align*} +# y_0&=\beta_0+\beta_1x_0^1+\beta_2x_0^2+\dots+\beta_{n-1}x_0^{n-1}+\epsilon_0\\ +# y_1&=\beta_0+\beta_1x_1^1+\beta_2x_1^2+\dots+\beta_{n-1}x_1^{n-1}+\epsilon_1\\ +# y_2&=\beta_0+\beta_1x_2^1+\beta_2x_2^2+\dots+\beta_{n-1}x_2^{n-1}+\epsilon_2\\ +# \dots & \dots \\ +# y_{n-1}&=\beta_0+\beta_1x_{n-1}^1+\beta_2x_{n-1}^2+\dots+\beta_{n-1}x_{n-1}^{n-1}+\epsilon_{n-1}.\\ +# \end{align*} +# $$ + +# Defining the vectors + +# $$ +# \boldsymbol{y} = [y_0,y_1, y_2,\dots, y_{n-1}]^T, +# $$ + +# and + +# $$ +# \boldsymbol{\beta} = [\beta_0,\beta_1, \beta_2,\dots, \beta_{n-1}]^T, +# $$ + +# and + +# $$ +# \boldsymbol{\epsilon} = [\epsilon_0,\epsilon_1, \epsilon_2,\dots, \epsilon_{n-1}]^T, +# $$ + +# and the design matrix + +# $$ +# \boldsymbol{X}= +# \begin{bmatrix} +# 1& x_{0}^1 &x_{0}^2& \dots & \dots &x_{0}^{n-1}\\ +# 1& x_{1}^1 &x_{1}^2& \dots & \dots &x_{1}^{n-1}\\ +# 1& x_{2}^1 &x_{2}^2& \dots & \dots &x_{2}^{n-1}\\ +# \dots& \dots &\dots& \dots & \dots &\dots\\ +# 1& x_{n-1}^1 &x_{n-1}^2& \dots & \dots &x_{n-1}^{n-1}\\ +# \end{bmatrix} +# $$ + +# we can rewrite our equations as + +# $$ +# \boldsymbol{y} = \boldsymbol{X}\boldsymbol{\beta}+\boldsymbol{\epsilon}. +# $$ + +# The above design matrix is called a [Vandermonde matrix](https://en.wikipedia.org/wiki/Vandermonde_matrix). +# +# We are obviously not limited to the above polynomial expansions. We +# could replace the various powers of $x$ with elements of Fourier +# series or instead of $x_i^j$ we could have $\cos{(j x_i)}$ or $\sin{(j +# x_i)}$, or time series or other orthogonal functions. For every set +# of values $y_i,x_i$ we can then generalize the equations to + +# $$ +# \begin{align*} +# y_0&=\beta_0x_{00}+\beta_1x_{01}+\beta_2x_{02}+\dots+\beta_{n-1}x_{0n-1}+\epsilon_0\\ +# y_1&=\beta_0x_{10}+\beta_1x_{11}+\beta_2x_{12}+\dots+\beta_{n-1}x_{1n-1}+\epsilon_1\\ +# y_2&=\beta_0x_{20}+\beta_1x_{21}+\beta_2x_{22}+\dots+\beta_{n-1}x_{2n-1}+\epsilon_2\\ +# \dots & \dots \\ +# y_{i}&=\beta_0x_{i0}+\beta_1x_{i1}+\beta_2x_{i2}+\dots+\beta_{n-1}x_{in-1}+\epsilon_i\\ +# \dots & \dots \\ +# y_{n-1}&=\beta_0x_{n-1,0}+\beta_1x_{n-1,2}+\beta_2x_{n-1,2}+\dots+\beta_{n-1}x_{n-1,n-1}+\epsilon_{n-1}.\\ +# \end{align*} +# $$ + +# **Note that we have $p=n$ here. The matrix is symmetric. This is generally not the case!** +# +# We redefine in turn the matrix $\boldsymbol{X}$ as + +# $$ +# \boldsymbol{X}= +# \begin{bmatrix} +# x_{00}& x_{01} &x_{02}& \dots & \dots &x_{0,n-1}\\ +# x_{10}& x_{11} &x_{12}& \dots & \dots &x_{1,n-1}\\ +# x_{20}& x_{21} &x_{22}& \dots & \dots &x_{2,n-1}\\ +# \dots& \dots &\dots& \dots & \dots &\dots\\ +# x_{n-1,0}& x_{n-1,1} &x_{n-1,2}& \dots & \dots &x_{n-1,n-1}\\ +# \end{bmatrix} +# $$ + +# and without loss of generality we rewrite again our equations as + +# $$ +# \boldsymbol{y} = \boldsymbol{X}\boldsymbol{\beta}+\boldsymbol{\epsilon}. +# $$ + +# The left-hand side of this equation is kwown. Our error vector $\boldsymbol{\epsilon}$ and the parameter vector $\boldsymbol{\beta}$ are our unknow quantities. How can we obtain the optimal set of $\beta_i$ values? +# +# We have defined the matrix $\boldsymbol{X}$ via the equations + +# $$ +# \begin{align*} +# y_0&=\beta_0x_{00}+\beta_1x_{01}+\beta_2x_{02}+\dots+\beta_{n-1}x_{0n-1}+\epsilon_0\\ +# y_1&=\beta_0x_{10}+\beta_1x_{11}+\beta_2x_{12}+\dots+\beta_{n-1}x_{1n-1}+\epsilon_1\\ +# y_2&=\beta_0x_{20}+\beta_1x_{21}+\beta_2x_{22}+\dots+\beta_{n-1}x_{2n-1}+\epsilon_1\\ +# \dots & \dots \\ +# y_{i}&=\beta_0x_{i0}+\beta_1x_{i1}+\beta_2x_{i2}+\dots+\beta_{n-1}x_{in-1}+\epsilon_1\\ +# \dots & \dots \\ +# y_{n-1}&=\beta_0x_{n-1,0}+\beta_1x_{n-1,2}+\beta_2x_{n-1,2}+\dots+\beta_{n-1}x_{n-1,n-1}+\epsilon_{n-1}.\\ +# \end{align*} +# $$ + +# As we noted above, we stayed with a system with the design matrix +# $\boldsymbol{X}\in {\mathbb{R}}^{n\times n}$, that is we have $p=n$. For reasons to come later (algorithmic arguments) we will hereafter define +# our matrix as $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$, with the predictors refering to the column numbers and the entries $n$ being the row elements. +# +# In our [introductory notes](https://compphysics.github.io/MachineLearning/doc/pub/How2ReadData/html/How2ReadData.html) we looked at the so-called [liquid drop model](https://en.wikipedia.org/wiki/Semi-empirical_mass_formula). Let us remind ourselves about what we did by looking at the code. +# +# We restate the parts of the code we are most interested in. + +# In[15]: + + +# Common imports +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from IPython.display import display +import os + +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +infile = open(data_path("MassEval2016.dat"),'r') + + +# Read the experimental data with Pandas +Masses = pd.read_fwf(infile, usecols=(2,3,4,6,11), + names=('N', 'Z', 'A', 'Element', 'Ebinding'), + widths=(1,3,5,5,5,1,3,4,1,13,11,11,9,1,2,11,9,1,3,1,12,11,1), + header=39, + index_col=False) + +# Extrapolated values are indicated by '#' in place of the decimal place, so +# the Ebinding column won't be numeric. Coerce to float and drop these entries. +Masses['Ebinding'] = pd.to_numeric(Masses['Ebinding'], errors='coerce') +Masses = Masses.dropna() +# Convert from keV to MeV. +Masses['Ebinding'] /= 1000 + +# Group the DataFrame by nucleon number, A. +Masses = Masses.groupby('A') +# Find the rows of the grouped DataFrame with the maximum binding energy. +Masses = Masses.apply(lambda t: t[t.Ebinding==t.Ebinding.max()]) +A = Masses['A'] +Z = Masses['Z'] +N = Masses['N'] +Element = Masses['Element'] +Energies = Masses['Ebinding'] + +# Now we set up the design matrix X +X = np.zeros((len(A),5)) +X[:,0] = 1 +X[:,1] = A +X[:,2] = A**(2.0/3.0) +X[:,3] = A**(-1.0/3.0) +X[:,4] = A**(-1.0) +# Then nice printout using pandas +DesignMatrix = pd.DataFrame(X) +DesignMatrix.index = A +DesignMatrix.columns = ['1', 'A', 'A^(2/3)', 'A^(-1/3)', '1/A'] +display(DesignMatrix) + + +# With $\boldsymbol{\beta}\in {\mathbb{R}}^{p\times 1}$, it means that we will hereafter write our equations for the approximation as + +# $$ +# \boldsymbol{\tilde{y}}= \boldsymbol{X}\boldsymbol{\beta}, +# $$ + +# throughout these lectures. +# +# With the above we use the design matrix to define the approximation $\boldsymbol{\tilde{y}}$ via the unknown quantity $\boldsymbol{\beta}$ as + +# $$ +# \boldsymbol{\tilde{y}}= \boldsymbol{X}\boldsymbol{\beta}, +# $$ + +# and in order to find the optimal parameters $\beta_i$ instead of solving the above linear algebra problem, we define a function which gives a measure of the spread between the values $y_i$ (which represent hopefully the exact values) and the parameterized values $\tilde{y}_i$, namely + +# $$ +# C(\boldsymbol{\beta})=\frac{1}{n}\sum_{i=0}^{n-1}\left(y_i-\tilde{y}_i\right)^2=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{\tilde{y}}\right)^T\left(\boldsymbol{y}-\boldsymbol{\tilde{y}}\right)\right\}, +# $$ + +# or using the matrix $\boldsymbol{X}$ and in a more compact matrix-vector notation as + +# $$ +# C(\boldsymbol{\beta})=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)\right\}. +# $$ + +# This function is one possible way to define the so-called cost function. +# +# +# +# It is also common to define +# the function $C$ as + +# $$ +# C(\boldsymbol{\beta})=\frac{1}{2n}\sum_{i=0}^{n-1}\left(y_i-\tilde{y}_i\right)^2, +# $$ + +# since when taking the first derivative with respect to the unknown parameters $\beta$, the factor of $2$ cancels out. +# +# The function + +# $$ +# C(\boldsymbol{\beta})=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)\right\}, +# $$ + +# can be linked to the variance of the quantity $y_i$ if we interpret the latter as the mean value. +# When linking (see the discussion below) with the maximum likelihood approach below, we will indeed interpret $y_i$ as a mean value + +# $$ +# y_{i}=\langle y_i \rangle = \beta_0x_{i,0}+\beta_1x_{i,1}+\beta_2x_{i,2}+\dots+\beta_{n-1}x_{i,n-1}+\epsilon_i, +# $$ + +# where $\langle y_i \rangle$ is the mean value. Keep in mind also that +# till now we have treated $y_i$ as the exact value. Normally, the +# response (dependent or outcome) variable $y_i$ the outcome of a +# numerical experiment or another type of experiment and is thus only an +# approximation to the true value. It is then always accompanied by an +# error estimate, often limited to a statistical error estimate given by +# the standard deviation discussed earlier. In the discussion here we +# will treat $y_i$ as our exact value for the response variable. +# +# In order to find the parameters $\beta_i$ we will then minimize the spread of $C(\boldsymbol{\beta})$, that is we are going to solve the problem + +# $$ +# {\displaystyle \min_{\boldsymbol{\beta}\in +# {\mathbb{R}}^{p}}}\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)\right\}. +# $$ + +# In practical terms it means we will require + +# $$ +# \frac{\partial C(\boldsymbol{\beta})}{\partial \beta_j} = \frac{\partial }{\partial \beta_j}\left[ \frac{1}{n}\sum_{i=0}^{n-1}\left(y_i-\beta_0x_{i,0}-\beta_1x_{i,1}-\beta_2x_{i,2}-\dots-\beta_{n-1}x_{i,n-1}\right)^2\right]=0, +# $$ + +# which results in + +# $$ +# \frac{\partial C(\boldsymbol{\beta})}{\partial \beta_j} = -\frac{2}{n}\left[ \sum_{i=0}^{n-1}x_{ij}\left(y_i-\beta_0x_{i,0}-\beta_1x_{i,1}-\beta_2x_{i,2}-\dots-\beta_{n-1}x_{i,n-1}\right)\right]=0, +# $$ + +# or in a matrix-vector form as + +# $$ +# \frac{\partial C(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = 0 = \boldsymbol{X}^T\left( \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right). +# $$ + +# We can rewrite + +# $$ +# \frac{\partial C(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = 0 = \boldsymbol{X}^T\left( \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right), +# $$ + +# as + +# $$ +# \boldsymbol{X}^T\boldsymbol{y} = \boldsymbol{X}^T\boldsymbol{X}\boldsymbol{\beta}, +# $$ + +# and if the matrix $\boldsymbol{X}^T\boldsymbol{X}$ is invertible we have the solution + +# $$ +# \boldsymbol{\beta} =\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}. +# $$ + +# We note also that since our design matrix is defined as $\boldsymbol{X}\in +# {\mathbb{R}}^{n\times p}$, the product $\boldsymbol{X}^T\boldsymbol{X} \in +# {\mathbb{R}}^{p\times p}$. In the above case we have that $p \ll n$, +# in our case $p=5$ meaning that we end up with inverting a small +# $5\times 5$ matrix. This is a rather common situation, in many cases we end up with low-dimensional +# matrices to invert. The methods discussed here and for many other +# supervised learning algorithms like classification with logistic +# regression or support vector machines, exhibit dimensionalities which +# allow for the usage of direct linear algebra methods such as **LU** decomposition or **Singular Value Decomposition** (SVD) for finding the inverse of the matrix +# $\boldsymbol{X}^T\boldsymbol{X}$. +# +# **Small question**: Do you think the example we have at hand here (the nuclear binding energies) can lead to problems in inverting the matrix $\boldsymbol{X}^T\boldsymbol{X}$? What kind of problems can we expect? +# +# +# The following matrix and vector relation will be useful here and for the rest of the course. Vectors are always written as boldfaced lower case letters and +# matrices as upper case boldfaced letters. + +# 4 +# 3 +# +# < +# < +# < +# ! +# ! +# M +# A +# T +# H +# _ +# B +# L +# O +# C +# K + +# 4 +# 4 +# +# < +# < +# < +# ! +# ! +# M +# A +# T +# H +# _ +# B +# L +# O +# C +# K + +# 4 +# 5 +# +# < +# < +# < +# ! +# ! +# M +# A +# T +# H +# _ +# B +# L +# O +# C +# K + +# $$ +# \frac{\partial\log{\vert\boldsymbol{A}\vert}}{\partial \boldsymbol{A}}=(\boldsymbol{A}^{-1})^T. +# $$ + +# We can then compute the second derivative of the cost function, which in our case is the second derivative +# of the means squared error. This leads to + +# $$ +# \frac{\partial^2 C(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^T\partial \boldsymbol{\beta}} =\frac{2}{n}\boldsymbol{X}^T\boldsymbol{X}. +# $$ + +# This quantity defines was what is called the Hessian matrix (the second derivative of a function we want to optimize). +# +# The Hessian matrix plays an important role and is defined for the mean squared error as + +# $$ +# \boldsymbol{H}=\boldsymbol{X}^T\boldsymbol{X}. +# $$ + +# The Hessian matrix for ordinary least squares is also proportional to +# the covariance matrix. As we will see in the chapter on Ridge and Lasso regression, This means that we can use the Singular Value Decomposition of a matrix to find +# the eigenvalues of the covariance matrix and the Hessian matrix in +# terms of the singular values. +# +# +# The residuals $\boldsymbol{\epsilon}$ are in turn given by + +# $$ +# \boldsymbol{\epsilon} = \boldsymbol{y}-\boldsymbol{\tilde{y}} = \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}, +# $$ + +# and with + +# $$ +# \boldsymbol{X}^T\left( \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)= 0, +# $$ + +# we have + +# $$ +# \boldsymbol{X}^T\boldsymbol{\epsilon}=\boldsymbol{X}^T\left( \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)= 0, +# $$ + +# meaning that the solution for $\boldsymbol{\beta}$ is the one which minimizes the residuals. Later we will link this with the maximum likelihood approach. +# +# +# Let us now return to our nuclear binding energies and simply code the above equations. +# +# +# It is rather straightforward to implement the matrix inversion and obtain the parameters $\boldsymbol{\beta}$. After having defined the matrix $\boldsymbol{X}$ we simply need to +# write + +# In[16]: + + +# matrix inversion to find beta +beta = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(Energies) +# and then make the prediction +ytilde = X @ beta + + +# Alternatively, you can use the least squares functionality in **Numpy** as + +# In[17]: + + +fit = np.linalg.lstsq(X, Energies, rcond =None)[0] +ytildenp = np.dot(fit,X.T) + + +# And finally we plot our fit with and compare with data + +# In[18]: + + +Masses['Eapprox'] = ytilde +# Generate a plot comparing the experimental with the fitted values values. +fig, ax = plt.subplots() +ax.set_xlabel(r'$A = N + Z$') +ax.set_ylabel(r'$E_\mathrm{bind}\,/\mathrm{MeV}$') +ax.plot(Masses['A'], Masses['Ebinding'], alpha=0.7, lw=2, + label='Ame2016') +ax.plot(Masses['A'], Masses['Eapprox'], alpha=0.7, lw=2, c='m', + label='Fit') +ax.legend() +save_fig("Masses2016OLS") +plt.show() + + +# We can easily test our fit by computing the $R2$ score that we discussed in connection with the functionality of **Scikit-Learn** in the introductory slides. +# Since we are not using **Scikit-Learn** here we can define our own $R2$ function as + +# In[19]: + + +def R2(y_data, y_model): + return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2) + + +# and we would be using it as + +# In[20]: + + +print(R2(Energies,ytilde)) + + +# We can easily add our **MSE** score as + +# In[21]: + + +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + +print(MSE(Energies,ytilde)) + + +# and finally the relative error as + +# In[22]: + + +def RelativeError(y_data,y_model): + return abs((y_data-y_model)/y_data) +print(RelativeError(Energies, ytilde)) + + +# ### The $\chi^2$ function +# +# Normally, the response (dependent or outcome) variable $y_i$ is the +# outcome of a numerical experiment or another type of experiment and is +# thus only an approximation to the true value. It is then always +# accompanied by an error estimate, often limited to a statistical error +# estimate given by the standard deviation discussed earlier. In the +# discussion here we will treat $y_i$ as our exact value for the +# response variable. +# +# Introducing the standard deviation $\sigma_i$ for each measurement +# $y_i$, we define now the $\chi^2$ function (omitting the $1/n$ term) +# as + +# $$ +# \chi^2(\boldsymbol{\beta})=\frac{1}{n}\sum_{i=0}^{n-1}\frac{\left(y_i-\tilde{y}_i\right)^2}{\sigma_i^2}=\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{\tilde{y}}\right)^T\frac{1}{\boldsymbol{\Sigma^2}}\left(\boldsymbol{y}-\boldsymbol{\tilde{y}}\right)\right\}, +# $$ + +# where the matrix $\boldsymbol{\Sigma}$ is a diagonal matrix with $\sigma_i$ as matrix elements. +# +# +# In order to find the parameters $\beta_i$ we will then minimize the spread of $\chi^2(\boldsymbol{\beta})$ by requiring + +# $$ +# \frac{\partial \chi^2(\boldsymbol{\beta})}{\partial \beta_j} = \frac{\partial }{\partial \beta_j}\left[ \frac{1}{n}\sum_{i=0}^{n-1}\left(\frac{y_i-\beta_0x_{i,0}-\beta_1x_{i,1}-\beta_2x_{i,2}-\dots-\beta_{n-1}x_{i,n-1}}{\sigma_i}\right)^2\right]=0, +# $$ + +# which results in + +# $$ +# \frac{\partial \chi^2(\boldsymbol{\beta})}{\partial \beta_j} = -\frac{2}{n}\left[ \sum_{i=0}^{n-1}\frac{x_{ij}}{\sigma_i}\left(\frac{y_i-\beta_0x_{i,0}-\beta_1x_{i,1}-\beta_2x_{i,2}-\dots-\beta_{n-1}x_{i,n-1}}{\sigma_i}\right)\right]=0, +# $$ + +# or in a matrix-vector form as + +# $$ +# \frac{\partial \chi^2(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = 0 = \boldsymbol{A}^T\left( \boldsymbol{b}-\boldsymbol{A}\boldsymbol{\beta}\right). +# $$ + +# where we have defined the matrix $\boldsymbol{A} =\boldsymbol{X}/\boldsymbol{\Sigma}$ with matrix elements $a_{ij} = x_{ij}/\sigma_i$ and the vector $\boldsymbol{b}$ with elements $b_i = y_i/\sigma_i$. +# +# We can rewrite + +# $$ +# \frac{\partial \chi^2(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = 0 = \boldsymbol{A}^T\left( \boldsymbol{b}-\boldsymbol{A}\boldsymbol{\beta}\right), +# $$ + +# as + +# $$ +# \boldsymbol{A}^T\boldsymbol{b} = \boldsymbol{A}^T\boldsymbol{A}\boldsymbol{\beta}, +# $$ + +# and if the matrix $\boldsymbol{A}^T\boldsymbol{A}$ is invertible we have the solution + +# $$ +# \boldsymbol{\beta} =\left(\boldsymbol{A}^T\boldsymbol{A}\right)^{-1}\boldsymbol{A}^T\boldsymbol{b}. +# $$ + +# If we then introduce the matrix + +# $$ +# \boldsymbol{H} = \left(\boldsymbol{A}^T\boldsymbol{A}\right)^{-1}, +# $$ + +# we have then the following expression for the parameters $\beta_j$ (the matrix elements of $\boldsymbol{H}$ are $h_{ij}$) + +# $$ +# \beta_j = \sum_{k=0}^{p-1}h_{jk}\sum_{i=0}^{n-1}\frac{y_i}{\sigma_i}\frac{x_{ik}}{\sigma_i} = \sum_{k=0}^{p-1}h_{jk}\sum_{i=0}^{n-1}b_ia_{ik} +# $$ + +# We state without proof the expression for the uncertainty in the parameters $\beta_j$ as (we leave this as an exercise) + +# $$ +# \sigma^2(\beta_j) = \sum_{i=0}^{n-1}\sigma_i^2\left( \frac{\partial \beta_j}{\partial y_i}\right)^2, +# $$ + +# resulting in + +# $$ +# \sigma^2(\beta_j) = \left(\sum_{k=0}^{p-1}h_{jk}\sum_{i=0}^{n-1}a_{ik}\right)\left(\sum_{l=0}^{p-1}h_{jl}\sum_{m=0}^{n-1}a_{ml}\right) = h_{jj}! +# $$ + +# The first step here is to approximate the function $y$ with a first-order polynomial, that is we write + +# $$ +# y=y(x) \rightarrow y(x_i) \approx \beta_0+\beta_1 x_i. +# $$ + +# By computing the derivatives of $\chi^2$ with respect to $\beta_0$ and $\beta_1$ show that these are given by + +# $$ +# \frac{\partial \chi^2(\boldsymbol{\beta})}{\partial \beta_0} = -2\left[ \frac{1}{n}\sum_{i=0}^{n-1}\left(\frac{y_i-\beta_0-\beta_1x_{i}}{\sigma_i^2}\right)\right]=0, +# $$ + +# and + +# $$ +# \frac{\partial \chi^2(\boldsymbol{\beta})}{\partial \beta_1} = -\frac{2}{n}\left[ \sum_{i=0}^{n-1}x_i\left(\frac{y_i-\beta_0-\beta_1x_{i}}{\sigma_i^2}\right)\right]=0. +# $$ + +# For a linear fit (a first-order polynomial) we don't need to invert a matrix!! +# Defining + +# $$ +# \gamma = \sum_{i=0}^{n-1}\frac{1}{\sigma_i^2}, +# $$ + +# $$ +# \gamma_x = \sum_{i=0}^{n-1}\frac{x_{i}}{\sigma_i^2}, +# $$ + +# $$ +# \gamma_y = \sum_{i=0}^{n-1}\left(\frac{y_i}{\sigma_i^2}\right), +# $$ + +# $$ +# \gamma_{xx} = \sum_{i=0}^{n-1}\frac{x_ix_{i}}{\sigma_i^2}, +# $$ + +# $$ +# \gamma_{xy} = \sum_{i=0}^{n-1}\frac{y_ix_{i}}{\sigma_i^2}, +# $$ + +# we obtain + +# $$ +# \beta_0 = \frac{\gamma_{xx}\gamma_y-\gamma_x\gamma_y}{\gamma\gamma_{xx}-\gamma_x^2}, +# $$ + +# $$ +# \beta_1 = \frac{\gamma_{xy}\gamma-\gamma_x\gamma_y}{\gamma\gamma_{xx}-\gamma_x^2}. +# $$ + +# This approach (different linear and non-linear regression) suffers +# often from both being underdetermined and overdetermined in the +# unknown coefficients $\beta_i$. A better approach is to use the +# Singular Value Decomposition (SVD) method discussed below. Or using +# Lasso and Ridge regression. See below. +# +# +# ### Fitting an Equation of State for Dense Nuclear Matter +# +# Before we continue, let us introduce yet another example. We are going to fit the +# nuclear equation of state using results from many-body calculations. +# The equation of state we have made available here, as function of +# density, has been derived using modern nucleon-nucleon potentials with +# [the addition of three-body +# forces](https://www.sciencedirect.com/science/article/pii/S0370157399001106). This +# time the file is presented as a standard **csv** file. +# +# The beginning of the Python code here is similar to what you have seen +# before, with the same initializations and declarations. We use also +# **pandas** again, rather extensively in order to organize our data. +# +# The difference now is that we use **Scikit-Learn's** regression tools +# instead of our own matrix inversion implementation. + +# In[23]: + + +# Common imports +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +import matplotlib.pyplot as plt +import sklearn.linear_model as skl +from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error + +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +infile = open(data_path("EoS.csv"),'r') + +# Read the EoS data as csv file and organize the data into two arrays with density and energies +EoS = pd.read_csv(infile, names=('Density', 'Energy')) +EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce') +EoS = EoS.dropna() +Energies = EoS['Energy'] +Density = EoS['Density'] +# The design matrix now as function of various polytrops +X = np.zeros((len(Density),4)) +X[:,3] = Density**(4.0/3.0) +X[:,2] = Density +X[:,1] = Density**(2.0/3.0) +X[:,0] = 1 + +# We use now Scikit-Learn's linear regressor and ridge regressor +# OLS part +clf = skl.LinearRegression().fit(X, Energies) +ytilde = clf.predict(X) +EoS['Eols'] = ytilde +# The mean squared error +print("Mean squared error: %.2f" % mean_squared_error(Energies, ytilde)) +# Explained variance score: 1 is perfect prediction +print('Variance score: %.2f' % r2_score(Energies, ytilde)) +# Mean absolute error +print('Mean absolute error: %.2f' % mean_absolute_error(Energies, ytilde)) +print(clf.coef_, clf.intercept_) + + +fig, ax = plt.subplots() +ax.set_xlabel(r'$\rho[\mathrm{fm}^{-3}]$') +ax.set_ylabel(r'Energy per particle') +ax.plot(EoS['Density'], EoS['Energy'], alpha=0.7, lw=2, + label='Theoretical data') +ax.plot(EoS['Density'], EoS['Eols'], alpha=0.7, lw=2, c='m', + label='OLS') +ax.legend() +save_fig("EoSfitting") +plt.show() + + +# The above simple polynomial in density $\rho$ gives an excellent fit +# to the data. +# +# +# +# ## Splitting our Data in Training and Test data +# +# +# It is normal in essentially all Machine Learning studies to split the +# data in a training set and a test set (sometimes also an additional +# validation set). **Scikit-Learn** has an own function for this. There +# is no explicit recipe for how much data should be included as training +# data and say test data. An accepted rule of thumb is to use +# approximately $2/3$ to $4/5$ of the data as training data. We will +# postpone a discussion of this splitting to the end of these notes and +# our discussion of the so-called **bias-variance** tradeoff. Here we +# limit ourselves to repeat the above equation of state fitting example +# but now splitting the data into a training set and a test set. +# +# Let us study some examples. The first code here takes a simple +# one-dimensional second-order polynomial and we fit it to a +# second-order polynomial. Depending on the strength of the added noise, +# the various measures like the $R2$ score or the mean-squared error, +# the fit becomes better or worse. + +# In[24]: + + +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split + + +def R2(y_data, y_model): + return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2) +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + +x = np.random.rand(100) +y = 2.0+5*x*x+0.1*np.random.randn(100) + + +# The design matrix now as function of a given polynomial +X = np.zeros((len(x),3)) +X[:,0] = 1.0 +X[:,1] = x +X[:,2] = x**2 +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) +# matrix inversion to find beta +beta = np.linalg.inv(X_train.T @ X_train) @ X_train.T @ y_train +print(beta) +# and then make the prediction +ytilde = X_train @ beta +print("Training R2") +print(R2(y_train,ytilde)) +print("Training MSE") +print(MSE(y_train,ytilde)) +ypredict = X_test @ beta +print("Test R2") +print(R2(y_test,ypredict)) +print("Test MSE") +print(MSE(y_test,ypredict)) + + +# Alternatively, you could write your own test-train splitting function as shown here. + +# In[25]: + + +# equivalently in numpy +def train_test_split_numpy(inputs, labels, train_size, test_size): + n_inputs = len(inputs) + inputs_shuffled = inputs.copy() + labels_shuffled = labels.copy() + + np.random.shuffle(inputs_shuffled) + np.random.shuffle(labels_shuffled) + + train_end = int(n_inputs*train_size) + X_train, X_test = inputs_shuffled[:train_end], inputs_shuffled[train_end:] + Y_train, Y_test = labels_shuffled[:train_end], labels_shuffled[train_end:] + + return X_train, X_test, Y_train, Y_test + + +# But since **scikit-learn** has its own function for doing this and since +# it interfaces easily with **tensorflow** and other libraries, we +# normally recommend using the latter functionality. +# +# +# As another example, we apply the training and testing split to +# to the above equation of state fitting example +# but now splitting the data into a training set and a test set. + +# In[26]: + + +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +def R2(y_data, y_model): + return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2) +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + +infile = open(data_path("EoS.csv"),'r') + +# Read the EoS data as csv file and organized into two arrays with density and energies +EoS = pd.read_csv(infile, names=('Density', 'Energy')) +EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce') +EoS = EoS.dropna() +Energies = EoS['Energy'] +Density = EoS['Density'] +# The design matrix now as function of various polytrops +X = np.zeros((len(Density),5)) +X[:,0] = 1 +X[:,1] = Density**(2.0/3.0) +X[:,2] = Density +X[:,3] = Density**(4.0/3.0) +X[:,4] = Density**(5.0/3.0) +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2) +# matrix inversion to find beta +beta = np.linalg.inv(X_train.T.dot(X_train)).dot(X_train.T).dot(y_train) +# and then make the prediction +ytilde = X_train @ beta +print("Training R2") +print(R2(y_train,ytilde)) +print("Training MSE") +print(MSE(y_train,ytilde)) +ypredict = X_test @ beta +print("Test R2") +print(R2(y_test,ypredict)) +print("Test MSE") +print(MSE(y_test,ypredict)) + + +# ## The Boston housing data example +# +# The Boston housing +# data set was originally a part of UCI Machine Learning Repository +# and has been removed now. The data set is now included in **Scikit-Learn**'s +# library. There are 506 samples and 13 feature (predictor) variables +# in this data set. The objective is to predict the value of prices of +# the house using the features (predictors) listed here. +# +# The features/predictors are +# 1. CRIM: Per capita crime rate by town +# +# 2. ZN: Proportion of residential land zoned for lots over 25000 square feet +# +# 3. INDUS: Proportion of non-retail business acres per town +# +# 4. CHAS: Charles River dummy variable (= 1 if tract bounds river; 0 otherwise) +# +# 5. NOX: Nitric oxide concentration (parts per 10 million) +# +# 6. RM: Average number of rooms per dwelling +# +# 7. AGE: Proportion of owner-occupied units built prior to 1940 +# +# 8. DIS: Weighted distances to five Boston employment centers +# +# 9. RAD: Index of accessibility to radial highways +# +# 10. TAX: Full-value property tax rate per USD10000 +# +# 11. B: $1000(Bk - 0.63)^2$, where $Bk$ is the proportion of [people of African American descent] by town +# +# 12. LSTAT: Percentage of lower status of the population +# +# 13. MEDV: Median value of owner-occupied homes in USD 1000s +# +# ## Housing data, the code +# We start by importing the libraries + +# In[27]: + + +import numpy as np +import matplotlib.pyplot as plt + +import pandas as pd +import seaborn as sns + + +# and load the Boston Housing DataSet from **Scikit-Learn** + +# In[28]: + + +from sklearn.datasets import load_boston + +boston_dataset = load_boston() + +# boston_dataset is a dictionary +# let's check what it contains +boston_dataset.keys() + + +# Then we invoke Pandas + +# In[29]: + + +boston = pd.DataFrame(boston_dataset.data, columns=boston_dataset.feature_names) +boston.head() +boston['MEDV'] = boston_dataset.target + + +# and preprocess the data + +# In[30]: + + +# check for missing values in all the columns +boston.isnull().sum() + + +# We can then visualize the data + +# In[31]: + + +# set the size of the figure +sns.set(rc={'figure.figsize':(11.7,8.27)}) + +# plot a histogram showing the distribution of the target values +sns.distplot(boston['MEDV'], bins=30) +plt.show() + + +# It is now useful to look at the correlation matrix + +# In[32]: + + +# compute the pair wise correlation for all columns +correlation_matrix = boston.corr().round(2) +# use the heatmap function from seaborn to plot the correlation matrix +# annot = True to print the values inside the square +sns.heatmap(data=correlation_matrix, annot=True) + + +# From the above coorelation plot we can see that **MEDV** is strongly correlated to **LSTAT** and **RM**. We see also that **RAD** and **TAX** are stronly correlated, but we don't include this in our features together to avoid multi-colinearity + +# In[33]: + + +plt.figure(figsize=(20, 5)) + +features = ['LSTAT', 'RM'] +target = boston['MEDV'] + +for i, col in enumerate(features): + plt.subplot(1, len(features) , i+1) + x = boston[col] + y = target + plt.scatter(x, y, marker='o') + plt.title(col) + plt.xlabel(col) + plt.ylabel('MEDV') + + +# Now we start training our model + +# In[34]: + + +X = pd.DataFrame(np.c_[boston['LSTAT'], boston['RM']], columns = ['LSTAT','RM']) +Y = boston['MEDV'] + + +# We split the data into training and test sets + +# In[35]: + + +from sklearn.model_selection import train_test_split + +# splits the training and test data set in 80% : 20% +# assign random_state to any value.This ensures consistency. +X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state=5) +print(X_train.shape) +print(X_test.shape) +print(Y_train.shape) +print(Y_test.shape) + + +# Then we use the linear regression functionality from **Scikit-Learn** + +# In[36]: + + +from sklearn.linear_model import LinearRegression +from sklearn.metrics import mean_squared_error, r2_score + +lin_model = LinearRegression() +lin_model.fit(X_train, Y_train) + +# model evaluation for training set + +y_train_predict = lin_model.predict(X_train) +rmse = (np.sqrt(mean_squared_error(Y_train, y_train_predict))) +r2 = r2_score(Y_train, y_train_predict) + +print("The model performance for training set") +print("--------------------------------------") +print('RMSE is {}'.format(rmse)) +print('R2 score is {}'.format(r2)) +print("\n") + +# model evaluation for testing set + +y_test_predict = lin_model.predict(X_test) +# root mean square error of the model +rmse = (np.sqrt(mean_squared_error(Y_test, y_test_predict))) + +# r-squared score of the model +r2 = r2_score(Y_test, y_test_predict) + +print("The model performance for testing set") +print("--------------------------------------") +print('RMSE is {}'.format(rmse)) +print('R2 score is {}'.format(r2)) + + +# In[37]: + + +# plotting the y_test vs y_pred +# ideally should have been a straight line +plt.scatter(Y_test, y_test_predict) +plt.show() + + +# ## Reducing the number of degrees of freedom, overarching view +# +# Many Machine Learning problems involve thousands or even millions of +# features for each training instance. Not only does this make training +# extremely slow, it can also make it much harder to find a good +# solution, as we will see. This problem is often referred to as the +# curse of dimensionality. Fortunately, in real-world problems, it is +# often possible to reduce the number of features considerably, turning +# an intractable problem into a tractable one. +# +# Later we will discuss some of the most popular dimensionality reduction +# techniques: the principal component analysis (PCA), Kernel PCA, and +# Locally Linear Embedding (LLE). +# +# +# Principal component analysis and its various variants deal with the +# problem of fitting a low-dimensional [affine +# subspace](https://en.wikipedia.org/wiki/Affine_space) to a set of of +# data points in a high-dimensional space. With its family of methods it +# is one of the most used tools in data modeling, compression and +# visualization. +# +# +# +# Before we proceed however, we will discuss how to preprocess our +# data. Till now and in connection with our previous examples we have +# not met so many cases where we are too sensitive to the scaling of our +# data. Normally the data may need a rescaling and/or may be sensitive +# to extreme values. Scaling the data renders our inputs much more +# suitable for the algorithms we want to employ. +# +# For data sets gathered for real world applications, it is rather normal that +# different features have very different units and +# numerical scales. For example, a data set detailing health habits may include +# features such as **age** in the range $0-80$, and **caloric intake** of order $2000$. +# Many machine learning methods sensitive to the scales of the features and may perform poorly if they +# are very different scales. Therefore, it is typical to scale +# the features in a way to avoid such outlier values. +# +# +# **Scikit-Learn** has several functions which allow us to rescale the +# data, normally resulting in much better results in terms of various +# accuracy scores. The **StandardScaler** function in **Scikit-Learn** +# ensures that for each feature/predictor we study the mean value is +# zero and the variance is one (every column in the design/feature +# matrix). This scaling has the drawback that it does not ensure that +# we have a particular maximum or minimum in our data set. Another +# function included in **Scikit-Learn** is the **MinMaxScaler** which +# ensures that all features are exactly between $0$ and $1$. The +# +# +# The **Normalizer** scales each data +# point such that the feature vector has a euclidean length of one. In other words, it +# projects a data point on the circle (or sphere in the case of higher dimensions) with a +# radius of 1. This means every data point is scaled by a different number (by the +# inverse of it’s length). +# This normalization is often used when only the direction (or angle) of the data matters, +# not the length of the feature vector. +# +# The **RobustScaler** works similarly to the StandardScaler in that it +# ensures statistical properties for each feature that guarantee that +# they are on the same scale. However, the RobustScaler uses the median +# and quartiles, instead of mean and variance. This makes the +# RobustScaler ignore data points that are very different from the rest +# (like measurement errors). These odd data points are also called +# outliers, and might often lead to trouble for other scaling +# techniques. +# +# +# Many features are often scaled using standardization to improve +# performance. In **Scikit-Learn** this is given by the **StandardScaler** +# function as discussed above. It is easy however to write your own. +# Mathematically, this involves subtracting the mean and divide by the +# standard deviation over the data set, for each feature: + +# $$ +# x_j^{(i)} \rightarrow \frac{x_j^{(i)} - \overline{x}_j}{\sigma(x_j)}, +# $$ + +# where $\overline{x}_j$ and $\sigma(x_j)$ are the mean and standard +# deviation, respectively, of the feature $x_j$. This ensures that each +# feature has zero mean and unit standard deviation. For data sets +# where we do not have the standard deviation or don't wish to calculate +# it, it is then common to simply set it to one. +# +# +# +# Let us consider the following vanilla example where we use both +# **Scikit-Learn** and write our own function as well. We produce a +# simple test design matrix with random numbers. Each column could then +# represent a specific feature whose mean value is subracted. + +# In[38]: + + +import sklearn.linear_model as skl +from sklearn.metrics import mean_squared_error +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import MinMaxScaler, StandardScaler, Normalizer +import numpy as np +import pandas as pd +from IPython.display import display +np.random.seed(100) +# setting up a 10 x 5 matrix +rows = 10 +cols = 5 +X = np.random.randn(rows,cols) +XPandas = pd.DataFrame(X) +display(XPandas) +print(XPandas.mean()) +print(XPandas.std()) +XPandas = (XPandas -XPandas.mean()) +display(XPandas) +# This option does not include the standard deviation +scaler = StandardScaler(with_std=False) +scaler.fit(X) +Xscaled = scaler.transform(X) +display(XPandas-Xscaled) + + +# Small exercise: perform the standard scaling by including the standard deviation and compare with what Scikit-Learn gives. +# +# +# +# Another commonly used scaling method is min-max scaling. This is very +# useful for when we want the features to lie in a certain interval. To +# scale the feature $x_j$ to the interval $[a, b]$, we can apply the +# transformation + +# $$ +# x_j^{(i)} \rightarrow (b-a)\frac{x_j^{(i)} - \min(x_j)}{\max(x_j) - \min(x_j)} - a +# $$ + +# where $\min(x_j)$ and $\max(x_j)$ return the minimum and maximum value of $x_j$ over the data set, respectively. +# +# +# +# +# ## Testing the Means Squared Error as function of Complexity +# +# +# Before we proceed with a more detailed analysis of the so-called +# Bias-Variance tradeoff, we present here an example of the relation +# between model complexity and the mean squared error for the triaining +# data and the test data. +# +# The results here tell us clearly that for the data not included in the +# training, there is an optimal model as function of the complexity of +# ourmodel (here in terms of the polynomial degree of the model). +# +# The results here will vary as function of model complexity and the amount od data used for training. +# +# +# Our data is defined by $x\in [-3,3]$ with a total of for example $100$ data points. + +# In[39]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.linear_model import LinearRegression, Ridge, Lasso +from sklearn.preprocessing import PolynomialFeatures +from sklearn.model_selection import train_test_split +from sklearn.pipeline import make_pipeline + + +np.random.seed(2018) +n = 100 +maxdegree = 14 +# Make data set. +x = np.linspace(-3, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) +TestError = np.zeros(maxdegree) +TrainError = np.zeros(maxdegree) +polydegree = np.zeros(maxdegree) +x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) + + +for degree in range(maxdegree): + model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False)) + clf = model.fit(x_train,y_train) + y_fit = clf.predict(x_train) + y_pred = clf.predict(x_test) + polydegree[degree] = degree + TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) ) + TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) ) + +plt.plot(polydegree, TestError, label='Test Error') +plt.plot(polydegree, TrainError, label='Train Error') +plt.legend() +plt.show() + + +# ## Exercises +# +# ### Exercise: Setting up various Python environments +# +# The first exercise here is of a mere technical art. We want you to have +# * git as a version control software and to establish a user account on a provider like GitHub. Other providers like GitLab etc are equally fine. You can also use the University of Oslo [GitHub facilities](https://www.uio.no/tjenester/it/maskin/filer/versjonskontroll/github.html). +# +# * Install various Python packages +# +# We will make extensive use of Python as programming language and its +# myriad of available libraries. You will find +# IPython/Jupyter notebooks invaluable in your work. You can run **R** +# codes in the Jupyter/IPython notebooks, with the immediate benefit of +# visualizing your data. You can also use compiled languages like C++, +# Rust, Fortran etc if you prefer. The focus in these lectures will be +# on Python. +# +# If you have Python installed (we recommend Python3) and you feel +# pretty familiar with installing different packages, we recommend that +# you install the following Python packages via **pip** as +# +# 1. pip install numpy scipy matplotlib ipython scikit-learn sympy pandas pillow +# +# For **Tensorflow**, we recommend following the instructions in the text of +# [Aurelien Geron, Hands‑On Machine Learning with Scikit‑Learn and TensorFlow, O'Reilly](http://shop.oreilly.com/product/0636920052289.do) +# +# We will come back to **tensorflow** later. +# +# For Python3, replace **pip** with **pip3**. +# +# For OSX users we recommend, after having installed Xcode, to +# install **brew**. Brew allows for a seamless installation of additional +# software via for example +# +# 1. brew install python3 +# +# For Linux users, with its variety of distributions like for example the widely popular Ubuntu distribution, +# you can use **pip** as well and simply install Python as +# +# 1. sudo apt-get install python3 (or python for Python2.7) +# +# If you don't want to perform these operations separately and venture +# into the hassle of exploring how to set up dependencies and paths, we +# recommend two widely used distrubutions which set up all relevant +# dependencies for Python, namely +# +# * [Anaconda](https://docs.anaconda.com/), +# +# which is an open source +# distribution of the Python and R programming languages for large-scale +# data processing, predictive analytics, and scientific computing, that +# aims to simplify package management and deployment. Package versions +# are managed by the package management system **conda**. +# +# * [Enthought canopy](https://www.enthought.com/product/canopy/) +# +# is a Python +# distribution for scientific and analytic computing distribution and +# analysis environment, available for free and under a commercial +# license. +# +# We recommend using **Anaconda** if you are not too familiar with setting paths in a terminal environment. +# +# +# +# +# ### Exercise: making your own data and exploring scikit-learn +# +# We will generate our own dataset for a function $y(x)$ where $x \in [0,1]$ and defined by random numbers computed with the uniform distribution. The function $y$ is a quadratic polynomial in $x$ with added stochastic noise according to the normal distribution $\cal {N}(0,1)$. +# The following simple Python instructions define our $x$ and $y$ values (with 100 data points). + +# In[40]: + + +x = np.random.rand(100,1) +y = 2.0+5*x*x+0.1*np.random.randn(100,1) + + +# 1. Write your own code (following the examples under the [regression notes](https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/chapter1.html)) for computing the parametrization of the data set fitting a second-order polynomial. +# +# 2. Use thereafter **scikit-learn** (see again the examples in the regression slides) and compare with your own code. +# +# 3. Using scikit-learn, compute also the mean square error, a risk metric corresponding to the expected value of the squared (quadratic) error defined as + +# $$ +# MSE(\boldsymbol{y},\boldsymbol{\tilde{y}}) = \frac{1}{n} +# \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +# $$ + +# and the $R^2$ score function. +# If $\tilde{\boldsymbol{y}}_i$ is the predicted value of the $i-th$ sample and $y_i$ is the corresponding true value, then the score $R^2$ is defined as + +# $$ +# R^2(\boldsymbol{y}, \tilde{\boldsymbol{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +# $$ + +# where we have defined the mean value of $\boldsymbol{y}$ as + +# $$ +# \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +# $$ + +# You can use the functionality included in scikit-learn. If you feel for it, you can use your own program and define functions which compute the above two functions. +# Discuss the meaning of these results. Try also to vary the coefficient in front of the added stochastic noise term and discuss the quality of the fits. +# +# +# +# +# ### Exercise: Normalizing our data +# +# A much used approach before starting to train the data is to preprocess our +# data. Normally the data may need a rescaling and/or may be sensitive +# to extreme values. Scaling the data renders our inputs much more +# suitable for the algorithms we want to employ. +# +# **Scikit-Learn** has several functions which allow us to rescale the +# data, normally resulting in much better results in terms of various +# accuracy scores. The **StandardScaler** function in **Scikit-Learn** +# ensures that for each feature/predictor we study the mean value is +# zero and the variance is one (every column in the design/feature +# matrix). This scaling has the drawback that it does not ensure that +# we have a particular maximum or minimum in our data set. Another +# function included in **Scikit-Learn** is the **MinMaxScaler** which +# ensures that all features are exactly between $0$ and $1$. The +# +# +# The **Normalizer** scales each data +# point such that the feature vector has a euclidean length of one. In other words, it +# projects a data point on the circle (or sphere in the case of higher dimensions) with a +# radius of 1. This means every data point is scaled by a different number (by the +# inverse of it’s length). +# This normalization is often used when only the direction (or angle) of the data matters, +# not the length of the feature vector. +# +# The **RobustScaler** works similarly to the StandardScaler in that it +# ensures statistical properties for each feature that guarantee that +# they are on the same scale. However, the RobustScaler uses the median +# and quartiles, instead of mean and variance. This makes the +# RobustScaler ignore data points that are very different from the rest +# (like measurement errors). These odd data points are also called +# outliers, and might often lead to trouble for other scaling +# techniques. +# +# +# It also common to split the data in a **training** set and a **testing** set. A typical split is to use $80\%$ of the data for training and the rest +# for testing. This can be done as follows with our design matrix $\boldsymbol{X}$ and data $\boldsymbol{y}$ (remember to import **scikit-learn**) + +# In[41]: + + +# split in training and test data +# X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) + + +# Then we can use the standard scaler to scale our data as + +# In[42]: + + +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) + + +# In this exercise we want you to to compute the MSE for the training +# data and the test data as function of the complexity of a polynomial, +# that is the degree of a given polynomial. We want you also to compute the $R2$ score as function of the complexity of the model for both training data and test data. You should also run the calculation with and without scaling. +# +# One of +# the aims is to reproduce Figure 2.11 of [Hastie et al](https://github.com/CompPhysics/MLErasmus/blob/master/doc/Textbooks/elementsstat.pdf). +# +# +# +# Our data is defined by $x\in [-3,3]$ with a total of for example $100$ data points. + +# In[43]: + + +np.random.seed() +n = 100 +maxdegree = 14 +# Make data set. +x = np.linspace(-3, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) + + +# where $y$ is the function we want to fit with a given polynomial. +# +# +# Write a first code which sets up a design matrix $X$ defined by a +# fifth-order polynomial. Scale your data and split it in training and +# test data. +# +# +# +# Perform an ordinary least squares and compute the means squared error +# and the $R2$ factor for the training data and the test data, with and +# without scaling. +# +# +# +# Add now a model which allows you to make polynomials up to degree +# $15$. Perform a standard OLS fitting of the training data and compute +# the MSE and $R2$ for the training and test data and plot both test and +# training data MSE and $R2$ as functions of the polynomial +# degree. Compare what you see with Figure 2.11 of Hastie et al. Comment +# your results. For which polynomial degree do you find an optimal MSE +# (smallest value)? diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb new file mode 100644 index 000000000..bf03b22dc --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb @@ -0,0 +1,3537 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Building a Feed Forward Neural Network\n", + "\n", + "We are now gong to develop an example based on the MNIST data\n", + "base. This is a classification problem and we need to use our\n", + "cross-entropy function we discussed in connection with logistic\n", + "regression. The cross-entropy defines our cost function for the\n", + "classificaton problems with neural networks.\n", + "\n", + "In binary classification with two classes $(0, 1)$ we define the\n", + "logistic/sigmoid function as the probability that a particular input\n", + "is in class $0$ or $1$. This is possible because the logistic\n", + "function takes any input from the real numbers and inputs a number\n", + "between 0 and 1, and can therefore be interpreted as a probability. It\n", + "also has other nice properties, such as a derivative that is simple to\n", + "calculate.\n", + "\n", + "For an input $\\boldsymbol{a}$ from the hidden layer, the probability that the input $\\boldsymbol{x}$\n", + "is in class 0 or 1 is just. We let $\\theta$ represent the unknown weights and biases to be adjusted by our equations). The variable $x$\n", + "represents our activation values $z$. We have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "P(y = 0 \\mid \\hat{x}, \\hat{\\theta}) = \\frac{1}{1 + \\exp{(- \\hat{x}})} ,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "P(y = 1 \\mid \\hat{x}, \\hat{\\theta}) = 1 - P(y = 0 \\mid \\hat{x}, \\hat{\\theta}) ,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $y \\in \\{0, 1\\}$ and $\\hat{\\theta}$ represents the weights and biases\n", + "of our network.\n", + "\n", + "\n", + "\n", + "## Defining the cost function\n", + "\n", + "Our cost function is given as (see the Logistic regression lectures)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathcal{C}(\\hat{\\theta}) = - \\ln P(\\mathcal{D} \\mid \\hat{\\theta}) = - \\sum_{i=1}^n\n", + "y_i \\ln[P(y_i = 0)] + (1 - y_i) \\ln [1 - P(y_i = 0)] = \\sum_{i=1}^n \\mathcal{L}_i(\\hat{\\theta}) .\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This last equality means that we can interpret our *cost* function as a sum over the *loss* function\n", + "for each point in the dataset $\\mathcal{L}_i(\\hat{\\theta})$. \n", + "The negative sign is just so that we can think about our algorithm as minimizing a positive number, rather\n", + "than maximizing a negative number. \n", + "\n", + "In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: \n", + "\n", + "$y = 5 \\quad \\rightarrow \\quad \\hat{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$ and\n", + "\n", + "\n", + "$y = 1 \\quad \\rightarrow \\quad \\hat{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$ \n", + "\n", + "\n", + "i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset (numbers from $0$ to $9$).. \n", + "\n", + "If $\\hat{x}_i$ is the $i$-th input (image), $y_{ic}$ refers to the $c$-th component of the $i$-th\n", + "output vector $\\hat{y}_i$. \n", + "The probability of $\\hat{x}_i$ being in class $c$ will be given by the softmax function:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "P(y_{ic} = 1 \\mid \\hat{x}_i, \\hat{\\theta}) = \\frac{\\exp{((\\hat{a}_i^{hidden})^T \\hat{w}_c)}}\n", + "{\\sum_{c'=0}^{C-1} \\exp{((\\hat{a}_i^{hidden})^T \\hat{w}_{c'})}} ,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which reduces to the logistic function in the binary case. \n", + "The likelihood of this $C$-class classifier\n", + "is now given as:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "P(\\mathcal{D} \\mid \\hat{\\theta}) = \\prod_{i=1}^n \\prod_{c=0}^{C-1} [P(y_{ic} = 1)]^{y_{ic}} .\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again we take the negative log-likelihood to define our cost function:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathcal{C}(\\hat{\\theta}) = - \\log{P(\\mathcal{D} \\mid \\hat{\\theta})}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See the logistic regression lectures for a full definition of the cost function.\n", + "\n", + "The back propagation equations need now only a small change, namely the definition of a new cost function. We are thus ready to use the same equations as before!\n", + "\n", + "\n", + "### Example: binary classification problem\n", + "\n", + "As an example of the above, relevant for project 2 as well, let us consider a binary class. As discussed in our logistic regression lectures, we defined a cost function in terms of the parameters $\\beta$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathcal{C}(\\hat{\\beta}) = - \\sum_{i=1}^n \\left(y_i\\log{p(y_i \\vert x_i,\\hat{\\beta})}+(1-y_i)\\log{1-p(y_i \\vert x_i,\\hat{\\beta})}\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we had defined the logistic (sigmoid) function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(y_i =1\\vert x_i,\\hat{\\beta})=\\frac{\\exp{(\\beta_0+\\beta_1 x_i)}}{1+\\exp{(\\beta_0+\\beta_1 x_i)}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(y_i =0\\vert x_i,\\hat{\\beta})=1-p(y_i =1\\vert x_i,\\hat{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The parameters $\\hat{\\beta}$ were defined using a minimization method like gradient descent or Newton-Raphson's method. \n", + "\n", + "Now we replace $x_i$ with the activation $z_i^l$ for a given layer $l$ and the outputs as $y_i=a_i^l=f(z_i^l)$, with $z_i^l$ now being a function of the weights $w_{ij}^l$ and biases $b_i^l$. \n", + "We have then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_i^l = y_i = \\frac{\\exp{(z_i^l)}}{1+\\exp{(z_i^l)}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "z_i^l = \\sum_{j}w_{ij}^l a_j^{l-1}+b_i^l,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the superscript $l-1$ indicates that these are the outputs from layer $l-1$.\n", + "Our cost function at the final layer $l=L$ is now" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathcal{C}(\\hat{W}) = - \\sum_{i=1}^n \\left(t_i\\log{a_i^L}+(1-t_i)\\log{(1-a_i^L)}\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined the targets $t_i$. The derivatives of the cost function with respect to the output $a_i^L$ are then easily calculated and we get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\mathcal{C}(\\hat{W})}{\\partial a_i^L} = \\frac{a_i^L-t_i}{a_i^L(1-a_i^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In case we use another activation function than the logistic one, we need to evaluate other derivatives. \n", + "\n", + "\n", + "\n", + "### The Softmax function\n", + "\n", + "In case we employ the more general case given by the Softmax equation, we need to evaluate the derivative of the activation function with respect to the activation $z_i^l$, that is we need" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f(z_i^l)}{\\partial w_{jk}^l} =\n", + "\\frac{\\partial f(z_i^l)}{\\partial z_j^l} \\frac{\\partial z_j^l}{\\partial w_{jk}^l}= \\frac{\\partial f(z_i^l)}{\\partial z_j^l}a_k^{l-1}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the Softmax function we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(z_i^l) = \\frac{\\exp{(z_i^l)}}{\\sum_{m=1}^K\\exp{(z_m^l)}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Its derivative with respect to $z_j^l$ gives" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f(z_i^l)}{\\partial z_j^l}= f(z_i^l)\\left(\\delta_{ij}-f(z_j^l)\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which in case of the simply binary model reduces to having $i=j$. \n", + "\n", + "\n", + "## Developing a code for doing neural networks with back propagation\n", + "\n", + "\n", + "One can identify a set of key steps when using neural networks to solve supervised learning problems: \n", + "\n", + "1. Collect and pre-process data \n", + "\n", + "2. Define model and architecture \n", + "\n", + "3. Choose cost function and optimizer \n", + "\n", + "4. Train the model \n", + "\n", + "5. Evaluate model performance on test data \n", + "\n", + "6. Adjust hyperparameters (if necessary, network architecture)\n", + "\n", + "### Collect and pre-process data\n", + "\n", + "Here we will be using the MNIST dataset, which is readily available through the **scikit-learn**\n", + "package. You may also find it for example [here](http://yann.lecun.com/exdb/mnist/). \n", + "The *MNIST* (Modified National Institute of Standards and Technology) database is a large database\n", + "of handwritten digits that is commonly used for training various image processing systems. \n", + "The MNIST dataset consists of 70 000 images of size $28\\times 28$ pixels, each labeled from 0 to 9. \n", + "The scikit-learn dataset we will use consists of a selection of 1797 images of size $8\\times 8$ collected and processed from this database. \n", + "\n", + "To feed data into a feed-forward neural network we need to represent\n", + "the inputs as a design/feature matrix $X = (n_{inputs}, n_{features})$. Each\n", + "row represents an *input*, in this case a handwritten digit, and\n", + "each column represents a *feature*, in this case a pixel. The\n", + "correct answers, also known as *labels* or *targets* are\n", + "represented as a 1D array of integers \n", + "$Y = (n_{inputs}) = (5, 3, 1, 8,...)$.\n", + "\n", + "As an example, say we want to build a neural network using supervised learning to predict Body-Mass Index (BMI) from\n", + "measurements of height (in m) \n", + "and weight (in kg). If we have measurements of 5 people the design/feature matrix could be for example: \n", + "\n", + "$$ X = \\begin{bmatrix}\n", + "1.85 & 81\\\\\n", + "1.71 & 65\\\\\n", + "1.95 & 103\\\\\n", + "1.55 & 42\\\\\n", + "1.63 & 56\n", + "\\end{bmatrix} ,$$ \n", + "\n", + "and the targets would be: \n", + "\n", + "$$ Y = (23.7, 22.2, 27.1, 17.5, 21.1) $$ \n", + "\n", + "Since each input image is a 2D matrix, we need to flatten the image\n", + "(i.e. \"unravel\" the 2D matrix into a 1D array) to turn the data into a\n", + "design/feature matrix. This means we lose all spatial information in the\n", + "image, such as locality and translational invariance. More complicated\n", + "architectures such as Convolutional Neural Networks can take advantage\n", + "of such information, and are most commonly applied when analyzing\n", + "images." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inputs = (n_inputs, pixel_width, pixel_height) = (1797, 8, 8)\n", + "labels = (n_inputs) = (1797,)\n", + "X = (n_inputs, n_features) = (1797, 64)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter10_33_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "# import necessary packages\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn import datasets\n", + "\n", + "\n", + "# ensure the same random numbers appear every time\n", + "np.random.seed(0)\n", + "\n", + "# display images in notebook\n", + "%matplotlib inline\n", + "plt.rcParams['figure.figsize'] = (12,12)\n", + "\n", + "\n", + "# download MNIST dataset\n", + "digits = datasets.load_digits()\n", + "\n", + "# define inputs and labels\n", + "inputs = digits.images\n", + "labels = digits.target\n", + "\n", + "print(\"inputs = (n_inputs, pixel_width, pixel_height) = \" + str(inputs.shape))\n", + "print(\"labels = (n_inputs) = \" + str(labels.shape))\n", + "\n", + "\n", + "# flatten the image\n", + "# the value -1 means dimension is inferred from the remaining dimensions: 8x8 = 64\n", + "n_inputs = len(inputs)\n", + "inputs = inputs.reshape(n_inputs, -1)\n", + "print(\"X = (n_inputs, n_features) = \" + str(inputs.shape))\n", + "\n", + "\n", + "# choose some random images to display\n", + "indices = np.arange(n_inputs)\n", + "random_indices = np.random.choice(indices, size=5)\n", + "\n", + "for i, image in enumerate(digits.images[random_indices]):\n", + " plt.subplot(1, 5, i+1)\n", + " plt.axis('off')\n", + " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')\n", + " plt.title(\"Label: %d\" % digits.target[random_indices[i]])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Train and test datasets\n", + "\n", + "Performing analysis before partitioning the dataset is a major error, that can lead to incorrect conclusions. \n", + "\n", + "We will reserve $80 \\%$ of our dataset for training and $20 \\%$ for testing. \n", + "\n", + "It is important that the train and test datasets are drawn randomly from our dataset, to ensure\n", + "no bias in the sampling. \n", + "Say you are taking measurements of weather data to predict the weather in the coming 5 days.\n", + "You don't want to train your model on measurements taken from the hours 00.00 to 12.00, and then test it on data\n", + "collected from 12.00 to 24.00." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of training images: 1437\n", + "Number of test images: 360\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "# one-liner from scikit-learn library\n", + "train_size = 0.8\n", + "test_size = 1 - train_size\n", + "X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size,\n", + " test_size=test_size)\n", + "\n", + "# equivalently in numpy\n", + "def train_test_split_numpy(inputs, labels, train_size, test_size):\n", + " n_inputs = len(inputs)\n", + " inputs_shuffled = inputs.copy()\n", + " labels_shuffled = labels.copy()\n", + " \n", + " np.random.shuffle(inputs_shuffled)\n", + " np.random.shuffle(labels_shuffled)\n", + " \n", + " train_end = int(n_inputs*train_size)\n", + " X_train, X_test = inputs_shuffled[:train_end], inputs_shuffled[train_end:]\n", + " Y_train, Y_test = labels_shuffled[:train_end], labels_shuffled[train_end:]\n", + " \n", + " return X_train, X_test, Y_train, Y_test\n", + "\n", + "#X_train, X_test, Y_train, Y_test = train_test_split_numpy(inputs, labels, train_size, test_size)\n", + "\n", + "print(\"Number of training images: \" + str(len(X_train)))\n", + "print(\"Number of test images: \" + str(len(X_test)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define model and architecture\n", + "\n", + "Our simple feed-forward neural network will consist of an *input* layer, a single *hidden* layer and an *output* layer. The activation $y$ of each neuron is a weighted sum of inputs, passed through an activation function. In case of the simple perceptron model we have \n", + "\n", + "$$ z = \\sum_{i=1}^n w_i a_i ,$$\n", + "\n", + "$$ y = f(z) ,$$\n", + "\n", + "where $f$ is the activation function, $a_i$ represents input from neuron $i$ in the preceding layer\n", + "and $w_i$ is the weight to input $i$. \n", + "The activation of the neurons in the input layer is just the features (e.g. a pixel value). \n", + "\n", + "The simplest activation function for a neuron is the *Heaviside* function:\n", + "\n", + "$$ f(z) = \n", + "\\begin{cases}\n", + "1, & z > 0\\\\\n", + "0, & \\text{otherwise}\n", + "\\end{cases}\n", + "$$\n", + "\n", + "A feed-forward neural network with this activation is known as a *perceptron*. \n", + "For a binary classifier (i.e. two classes, 0 or 1, dog or not-dog) we can also use this in our output layer. \n", + "This activation can be generalized to $k$ classes (using e.g. the *one-against-all* strategy), \n", + "and we call these architectures *multiclass perceptrons*. \n", + "\n", + "However, it is now common to use the terms Single Layer Perceptron (SLP) (1 hidden layer) and \n", + "Multilayer Perceptron (MLP) (2 or more hidden layers) to refer to feed-forward neural networks with any activation function. \n", + "\n", + "Typical choices for activation functions include the sigmoid function, hyperbolic tangent, and Rectified Linear Unit (ReLU). \n", + "We will be using the sigmoid function $\\sigma(x)$: \n", + "\n", + "$$ f(x) = \\sigma(x) = \\frac{1}{1 + e^{-x}} ,$$\n", + "\n", + "which is inspired by probability theory (see logistic regression) and was most commonly used until about 2011. See the discussion below concerning other activation functions.\n", + "\n", + "### Layers\n", + "\n", + "* Input \n", + "\n", + "Since each input image has 8x8 = 64 pixels or features, we have an input layer of 64 neurons. \n", + "\n", + "* Hidden layer\n", + "\n", + "We will use 50 neurons in the hidden layer receiving input from the neurons in the input layer. \n", + "Since each neuron in the hidden layer is connected to the 64 inputs we have 64x50 = 3200 weights to the hidden layer. \n", + "\n", + "* Output\n", + "\n", + "If we were building a binary classifier, it would be sufficient with a single neuron in the output layer,\n", + "which could output 0 or 1 according to the Heaviside function. This would be an example of a *hard* classifier, meaning it outputs the class of the input directly. However, if we are dealing with noisy data it is often beneficial to use a *soft* classifier, which outputs the probability of being in class 0 or 1. \n", + "\n", + "For a soft binary classifier, we could use a single neuron and interpret the output as either being the probability of being in class 0 or the probability of being in class 1. Alternatively we could use 2 neurons, and interpret each neuron as the probability of being in each class. \n", + "\n", + "Since we are doing multiclass classification, with 10 categories, it is natural to use 10 neurons in the output layer. We number the neurons $j = 0,1,...,9$. The activation of each output neuron $j$ will be according to the *softmax* function: \n", + "\n", + "$$ P(\\text{class $j$} \\mid \\text{input $\\hat{a}$}) = \\frac{\\exp{(\\hat{a}^T \\hat{w}_j)}}\n", + "{\\sum_{c=0}^{9} \\exp{(\\hat{a}^T \\hat{w}_c)}} ,$$ \n", + "\n", + "i.e. each neuron $j$ outputs the probability of being in class $j$ given an input from the hidden layer $\\hat{a}$, with $\\hat{w}_j$ the weights of neuron $j$ to the inputs. \n", + "The denominator is a normalization factor to ensure the outputs (probabilities) sum up to 1. \n", + "The exponent is just the weighted sum of inputs as before: \n", + "\n", + "$$ z_j = \\sum_{i=1}^n w_ {ij} a_i+b_j.$$ \n", + "\n", + "Since each neuron in the output layer is connected to the 50 inputs from the hidden layer we have 50x10 = 500\n", + "weights to the output layer.\n", + "\n", + "\n", + "Typically weights are initialized with small values distributed around zero, drawn from a uniform\n", + "or normal distribution. Setting all weights to zero means all neurons give the same output, making the network useless. \n", + "\n", + "Adding a bias value to the weighted sum of inputs allows the neural network to represent a greater range\n", + "of values. Without it, any input with the value 0 will be mapped to zero (before being passed through the activation). The bias unit has an output of 1, and a weight to each neuron $j$, $b_j$: \n", + "\n", + "$$ z_j = \\sum_{i=1}^n w_ {ij} a_i + b_j.$$ \n", + "\n", + "The bias weights $\\hat{b}$ are often initialized to zero, but a small value like $0.01$ ensures all neurons have some output which can be backpropagated in the first training cycle." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# building our neural network\n", + "\n", + "n_inputs, n_features = X_train.shape\n", + "n_hidden_neurons = 50\n", + "n_categories = 10\n", + "\n", + "# we make the weights normally distributed using numpy.random.randn\n", + "\n", + "# weights and bias in the hidden layer\n", + "hidden_weights = np.random.randn(n_features, n_hidden_neurons)\n", + "hidden_bias = np.zeros(n_hidden_neurons) + 0.01\n", + "\n", + "# weights and bias in the output layer\n", + "output_weights = np.random.randn(n_hidden_neurons, n_categories)\n", + "output_bias = np.zeros(n_categories) + 0.01" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Feed-forward pass\n", + "\n", + "Denote $F$ the number of features, $H$ the number of hidden neurons and $C$ the number of categories. \n", + "For each input image we calculate a weighted sum of input features (pixel values) to each neuron $j$ in the hidden layer $l$: \n", + "\n", + "$$ z_{j}^{l} = \\sum_{i=1}^{F} w_{ij}^{l} x_i + b_{j}^{l},$$\n", + "\n", + "this is then passed through our activation function \n", + "\n", + "$$ a_{j}^{l} = f(z_{j}^{l}) .$$ \n", + "\n", + "We calculate a weighted sum of inputs (activations in the hidden layer) to each neuron $j$ in the output layer: \n", + "\n", + "$$ z_{j}^{L} = \\sum_{i=1}^{H} w_{ij}^{L} a_{i}^{l} + b_{j}^{L}.$$ \n", + "\n", + "Finally we calculate the output of neuron $j$ in the output layer using the softmax function: \n", + "\n", + "$$ a_{j}^{L} = \\frac{\\exp{(z_j^{L})}}\n", + "{\\sum_{c=0}^{C-1} \\exp{(z_c^{L})}} .$$ \n", + "\n", + "\n", + "Since our data has the dimensions $X = (n_{inputs}, n_{features})$ and our weights to the hidden\n", + "layer have the dimensions \n", + "$W_{hidden} = (n_{features}, n_{hidden})$,\n", + "we can easily feed the network all our training data in one go by taking the matrix product \n", + "\n", + "$$ X W^{h} = (n_{inputs}, n_{hidden}),$$ \n", + "\n", + "and obtain a matrix that holds the weighted sum of inputs to the hidden layer\n", + "for each input image and each hidden neuron. \n", + "We also add the bias to obtain a matrix of weighted sums to the hidden layer $Z^{h}$: \n", + "\n", + "$$ \\hat{z}^{l} = \\hat{X} \\hat{W}^{l} + \\hat{b}^{l} ,$$\n", + "\n", + "meaning the same bias (1D array with size equal number of hidden neurons) is added to each input image. \n", + "This is then passed through the activation: \n", + "\n", + "$$ \\hat{a}^{l} = f(\\hat{z}^l) .$$ \n", + "\n", + "This is fed to the output layer: \n", + "\n", + "$$ \\hat{z}^{L} = \\hat{a}^{L} \\hat{W}^{L} + \\hat{b}^{L} .$$\n", + "\n", + "Finally we receive our output values for each image and each category by passing it through the softmax function: \n", + "\n", + "$$ output = softmax (\\hat{z}^{L}) = (n_{inputs}, n_{categories}) .$$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "probabilities = (n_inputs, n_categories) = (1437, 10)\n", + "probability that image 0 is in category 0,1,2,...,9 = \n", + "[5.41511965e-04 2.17174962e-03 8.84355903e-03 1.44970586e-03\n", + " 1.10378326e-04 5.08318298e-09 2.03256632e-04 1.92507116e-03\n", + " 9.84443254e-01 3.11507992e-04]\n", + "probabilities sum up to: 1.0\n", + "\n", + "predictions = (n_inputs) = (1437,)\n", + "prediction for image 0: 8\n", + "correct label for image 0: 6\n" + ] + } + ], + "source": [ + "# setup the feed-forward pass, subscript h = hidden layer\n", + "\n", + "def sigmoid(x):\n", + " return 1/(1 + np.exp(-x))\n", + "\n", + "def feed_forward(X):\n", + " # weighted sum of inputs to the hidden layer\n", + " z_h = np.matmul(X, hidden_weights) + hidden_bias\n", + " # activation in the hidden layer\n", + " a_h = sigmoid(z_h)\n", + " \n", + " # weighted sum of inputs to the output layer\n", + " z_o = np.matmul(a_h, output_weights) + output_bias\n", + " # softmax output\n", + " # axis 0 holds each input and axis 1 the probabilities of each category\n", + " exp_term = np.exp(z_o)\n", + " probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + " \n", + " return probabilities\n", + "\n", + "probabilities = feed_forward(X_train)\n", + "print(\"probabilities = (n_inputs, n_categories) = \" + str(probabilities.shape))\n", + "print(\"probability that image 0 is in category 0,1,2,...,9 = \\n\" + str(probabilities[0]))\n", + "print(\"probabilities sum up to: \" + str(probabilities[0].sum()))\n", + "print()\n", + "\n", + "# we obtain a prediction by taking the class with the highest likelihood\n", + "def predict(X):\n", + " probabilities = feed_forward(X)\n", + " return np.argmax(probabilities, axis=1)\n", + "\n", + "predictions = predict(X_train)\n", + "print(\"predictions = (n_inputs) = \" + str(predictions.shape))\n", + "print(\"prediction for image 0: \" + str(predictions[0]))\n", + "print(\"correct label for image 0: \" + str(Y_train[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Choose cost function and optimizer\n", + "\n", + "To measure how well our neural network is doing we need to introduce a cost function. \n", + "We will call the function that gives the error of a single sample output the *loss* function, and the function\n", + "that gives the total error of our network across all samples the *cost* function.\n", + "A typical choice for multiclass classification is the *cross-entropy* loss, also known as the negative log likelihood. \n", + "\n", + "In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: \n", + "\n", + "$$ y = 5 \\quad \\rightarrow \\quad \\hat{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$$ \n", + "\n", + "\n", + "$$ y = 1 \\quad \\rightarrow \\quad \\hat{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$$ \n", + "\n", + "\n", + "i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset. \n", + "\n", + "Let $y_{ic}$ denote the $c$-th component of the $i$-th one-hot vector. \n", + "We define the cost function $\\mathcal{C}$ as a sum over the cross-entropy loss for each point $\\hat{x}_i$ in the dataset.\n", + "\n", + "In the one-hot representation only one of the terms in the loss function is non-zero, namely the\n", + "probability of the correct category $c'$ \n", + "(i.e. the category $c'$ such that $y_{ic'} = 1$). This means that the cross entropy loss only punishes you for how wrong\n", + "you got the correct label. The probability of category $c$ is given by the softmax function. The vector $\\hat{\\theta}$ represents the parameters of our network, i.e. all the weights and biases. \n", + "\n", + "\n", + "\n", + "### Optimizing the cost function\n", + "\n", + "The network is trained by finding the weights and biases that minimize the cost function. One of the most widely used classes of methods is *gradient descent* and its generalizations. The idea behind gradient descent\n", + "is simply to adjust the weights in the direction where the gradient of the cost function is large and negative. This ensures we flow toward a *local* minimum of the cost function. \n", + "Each parameter $\\theta$ is iteratively adjusted according to the rule \n", + "\n", + "$$ \\theta_{i+1} = \\theta_i - \\eta \\nabla \\mathcal{C}(\\theta_i) ,$$\n", + "\n", + "where $\\eta$ is known as the *learning rate*, which controls how big a step we take towards the minimum. \n", + "This update can be repeated for any number of iterations, or until we are satisfied with the result. \n", + "\n", + "A simple and effective improvement is a variant called *Batch Gradient Descent*. \n", + "Instead of calculating the gradient on the whole dataset, we calculate an approximation of the gradient\n", + "on a subset of the data called a *minibatch*. \n", + "If there are $N$ data points and we have a minibatch size of $M$, the total number of batches\n", + "is $N/M$. \n", + "We denote each minibatch $B_k$, with $k = 1, 2,...,N/M$. The gradient then becomes: \n", + "\n", + "$$ \\nabla \\mathcal{C}(\\theta) = \\frac{1}{N} \\sum_{i=1}^N \\nabla \\mathcal{L}_i(\\theta) \\quad \\rightarrow \\quad\n", + "\\frac{1}{M} \\sum_{i \\in B_k} \\nabla \\mathcal{L}_i(\\theta) ,$$\n", + "\n", + "i.e. instead of averaging the loss over the entire dataset, we average over a minibatch. \n", + "\n", + "This has two important benefits: \n", + "1. Introducing stochasticity decreases the chance that the algorithm becomes stuck in a local minima. \n", + "\n", + "2. It significantly speeds up the calculation, since we do not have to use the entire dataset to calculate the gradient. \n", + "\n", + "The various optmization methods, with codes and algorithms, are discussed in our lectures on [Gradient descent approaches](https://compphysics.github.io/MachineLearning/doc/pub/Splines/html/Splines-bs.html).\n", + "\n", + "\n", + "### Regularization\n", + "\n", + "It is common to add an extra term to the cost function, proportional\n", + "to the size of the weights. This is equivalent to constraining the\n", + "size of the weights, so that they do not grow out of control.\n", + "Constraining the size of the weights means that the weights cannot\n", + "grow arbitrarily large to fit the training data, and in this way\n", + "reduces *overfitting*.\n", + "\n", + "We will measure the size of the weights using the so called *L2-norm*, meaning our cost function becomes: \n", + "\n", + "$$ \\mathcal{C}(\\theta) = \\frac{1}{N} \\sum_{i=1}^N \\mathcal{L}_i(\\theta) \\quad \\rightarrow \\quad\n", + "\\frac{1}{N} \\sum_{i=1}^N \\mathcal{L}_i(\\theta) + \\lambda \\lvert \\lvert \\hat{w} \\rvert \\rvert_2^2 \n", + "= \\frac{1}{N} \\sum_{i=1}^N \\mathcal{L}(\\theta) + \\lambda \\sum_{ij} w_{ij}^2,$$ \n", + "\n", + "i.e. we sum up all the weights squared. The factor $\\lambda$ is known as a regularization parameter.\n", + "\n", + "\n", + "In order to train the model, we need to calculate the derivative of\n", + "the cost function with respect to every bias and weight in the\n", + "network. In total our network has $(64 + 1)\\times 50=3250$ weights in\n", + "the hidden layer and $(50 + 1)\\times 10=510$ weights to the output\n", + "layer ($+1$ for the bias), and the gradient must be calculated for\n", + "every parameter. We use the *backpropagation* algorithm discussed\n", + "above. This is a clever use of the chain rule that allows us to\n", + "calculate the gradient efficently. \n", + "\n", + "\n", + "### Matrix multiplication\n", + "\n", + "To more efficently train our network these equations are implemented using matrix operations. \n", + "The error in the output layer is calculated simply as, with $\\hat{t}$ being our targets, \n", + "\n", + "$$ \\delta_L = \\hat{t} - \\hat{y} = (n_{inputs}, n_{categories}) .$$ \n", + "\n", + "The gradient for the output weights is calculated as \n", + "\n", + "$$ \\nabla W_{L} = \\hat{a}^T \\delta_L = (n_{hidden}, n_{categories}) ,$$\n", + "\n", + "where $\\hat{a} = (n_{inputs}, n_{hidden})$. This simply means that we are summing up the gradients for each input. \n", + "Since we are going backwards we have to transpose the activation matrix. \n", + "\n", + "The gradient with respect to the output bias is then \n", + "\n", + "$$ \\nabla \\hat{b}_{L} = \\sum_{i=1}^{n_{inputs}} \\delta_L = (n_{categories}) .$$ \n", + "\n", + "The error in the hidden layer is \n", + "\n", + "$$ \\Delta_h = \\delta_L W_{L}^T \\circ f'(z_{h}) = \\delta_L W_{L}^T \\circ a_{h} \\circ (1 - a_{h}) = (n_{inputs}, n_{hidden}) ,$$ \n", + "\n", + "where $f'(a_{h})$ is the derivative of the activation in the hidden layer. The matrix products mean\n", + "that we are summing up the products for each neuron in the output layer. The symbol $\\circ$ denotes\n", + "the *Hadamard product*, meaning element-wise multiplication. \n", + "\n", + "This again gives us the gradients in the hidden layer: \n", + "\n", + "$$ \\nabla W_{h} = X^T \\delta_h = (n_{features}, n_{hidden}) ,$$ \n", + "\n", + "$$ \\nabla b_{h} = \\sum_{i=1}^{n_{inputs}} \\delta_h = (n_{hidden}) .$$" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Old accuracy on training data: 0.1440501043841336\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "New accuracy on training data: 0.09672929714683368\n" + ] + } + ], + "source": [ + "# to categorical turns our integer vector into a onehot representation\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "# one-hot in numpy\n", + "def to_categorical_numpy(integer_vector):\n", + " n_inputs = len(integer_vector)\n", + " n_categories = np.max(integer_vector) + 1\n", + " onehot_vector = np.zeros((n_inputs, n_categories))\n", + " onehot_vector[range(n_inputs), integer_vector] = 1\n", + " \n", + " return onehot_vector\n", + "\n", + "#Y_train_onehot, Y_test_onehot = to_categorical(Y_train), to_categorical(Y_test)\n", + "Y_train_onehot, Y_test_onehot = to_categorical_numpy(Y_train), to_categorical_numpy(Y_test)\n", + "\n", + "def feed_forward_train(X):\n", + " # weighted sum of inputs to the hidden layer\n", + " z_h = np.matmul(X, hidden_weights) + hidden_bias\n", + " # activation in the hidden layer\n", + " a_h = sigmoid(z_h)\n", + " \n", + " # weighted sum of inputs to the output layer\n", + " z_o = np.matmul(a_h, output_weights) + output_bias\n", + " # softmax output\n", + " # axis 0 holds each input and axis 1 the probabilities of each category\n", + " exp_term = np.exp(z_o)\n", + " probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + " \n", + " # for backpropagation need activations in hidden and output layers\n", + " return a_h, probabilities\n", + "\n", + "def backpropagation(X, Y):\n", + " a_h, probabilities = feed_forward_train(X)\n", + " \n", + " # error in the output layer\n", + " error_output = probabilities - Y\n", + " # error in the hidden layer\n", + " error_hidden = np.matmul(error_output, output_weights.T) * a_h * (1 - a_h)\n", + " \n", + " # gradients for the output layer\n", + " output_weights_gradient = np.matmul(a_h.T, error_output)\n", + " output_bias_gradient = np.sum(error_output, axis=0)\n", + " \n", + " # gradient for the hidden layer\n", + " hidden_weights_gradient = np.matmul(X.T, error_hidden)\n", + " hidden_bias_gradient = np.sum(error_hidden, axis=0)\n", + "\n", + " return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient\n", + "\n", + "print(\"Old accuracy on training data: \" + str(accuracy_score(predict(X_train), Y_train)))\n", + "\n", + "eta = 0.01\n", + "lmbd = 0.01\n", + "for i in range(1000):\n", + " # calculate gradients\n", + " dWo, dBo, dWh, dBh = backpropagation(X_train, Y_train_onehot)\n", + " \n", + " # regularization term gradients\n", + " dWo += lmbd * output_weights\n", + " dWh += lmbd * hidden_weights\n", + " \n", + " # update weights and biases\n", + " output_weights -= eta * dWo\n", + " output_bias -= eta * dBo\n", + " hidden_weights -= eta * dWh\n", + " hidden_bias -= eta * dBh\n", + "\n", + "print(\"New accuracy on training data: \" + str(accuracy_score(predict(X_train), Y_train)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Improving performance\n", + "\n", + "As we can see the network does not seem to be learning at all. It seems to be just guessing the label for each image. \n", + "In order to obtain a network that does something useful, we will have to do a bit more work. \n", + "\n", + "The choice of *hyperparameters* such as learning rate and regularization parameter is hugely influential for the performance of the network. Typically a *grid-search* is performed, wherein we test different hyperparameters separated by orders of magnitude. For example we could test the learning rates $\\eta = 10^{-6}, 10^{-5},...,10^{-1}$ with different regularization parameters $\\lambda = 10^{-6},...,10^{-0}$. \n", + "\n", + "Next, we haven't implemented minibatching yet, which introduces stochasticity and is though to act as an important regularizer on the weights. We call a feed-forward + backward pass with a minibatch an *iteration*, and a full training period\n", + "going through the entire dataset ($n/M$ batches) an *epoch*.\n", + "\n", + "If this does not improve network performance, you may want to consider altering the network architecture, adding more neurons or hidden layers. \n", + "Andrew Ng goes through some of these considerations in this [video](https://youtu.be/F1ka6a13S9I). You can find a summary of the video [here](https://kevinzakka.github.io/2016/09/26/applying-deep-learning/). \n", + "\n", + "\n", + "It is very natural to think of the network as an object, with specific instances of the network\n", + "being realizations of this object with different hyperparameters. An implementation using Python classes provides a clean structure and interface, and the full implementation of our neural network is given below." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "class NeuralNetwork:\n", + " def __init__(\n", + " self,\n", + " X_data,\n", + " Y_data,\n", + " n_hidden_neurons=50,\n", + " n_categories=10,\n", + " epochs=10,\n", + " batch_size=100,\n", + " eta=0.1,\n", + " lmbd=0.0):\n", + "\n", + " self.X_data_full = X_data\n", + " self.Y_data_full = Y_data\n", + "\n", + " self.n_inputs = X_data.shape[0]\n", + " self.n_features = X_data.shape[1]\n", + " self.n_hidden_neurons = n_hidden_neurons\n", + " self.n_categories = n_categories\n", + "\n", + " self.epochs = epochs\n", + " self.batch_size = batch_size\n", + " self.iterations = self.n_inputs // self.batch_size\n", + " self.eta = eta\n", + " self.lmbd = lmbd\n", + "\n", + " self.create_biases_and_weights()\n", + "\n", + " def create_biases_and_weights(self):\n", + " self.hidden_weights = np.random.randn(self.n_features, self.n_hidden_neurons)\n", + " self.hidden_bias = np.zeros(self.n_hidden_neurons) + 0.01\n", + "\n", + " self.output_weights = np.random.randn(self.n_hidden_neurons, self.n_categories)\n", + " self.output_bias = np.zeros(self.n_categories) + 0.01\n", + "\n", + " def feed_forward(self):\n", + " # feed-forward for training\n", + " self.z_h = np.matmul(self.X_data, self.hidden_weights) + self.hidden_bias\n", + " self.a_h = sigmoid(self.z_h)\n", + "\n", + " self.z_o = np.matmul(self.a_h, self.output_weights) + self.output_bias\n", + "\n", + " exp_term = np.exp(self.z_o)\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + "\n", + " def feed_forward_out(self, X):\n", + " # feed-forward for output\n", + " z_h = np.matmul(X, self.hidden_weights) + self.hidden_bias\n", + " a_h = sigmoid(z_h)\n", + "\n", + " z_o = np.matmul(a_h, self.output_weights) + self.output_bias\n", + " \n", + " exp_term = np.exp(z_o)\n", + " probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + " return probabilities\n", + "\n", + " def backpropagation(self):\n", + " error_output = self.probabilities - self.Y_data\n", + " error_hidden = np.matmul(error_output, self.output_weights.T) * self.a_h * (1 - self.a_h)\n", + "\n", + " self.output_weights_gradient = np.matmul(self.a_h.T, error_output)\n", + " self.output_bias_gradient = np.sum(error_output, axis=0)\n", + "\n", + " self.hidden_weights_gradient = np.matmul(self.X_data.T, error_hidden)\n", + " self.hidden_bias_gradient = np.sum(error_hidden, axis=0)\n", + "\n", + " if self.lmbd > 0.0:\n", + " self.output_weights_gradient += self.lmbd * self.output_weights\n", + " self.hidden_weights_gradient += self.lmbd * self.hidden_weights\n", + "\n", + " self.output_weights -= self.eta * self.output_weights_gradient\n", + " self.output_bias -= self.eta * self.output_bias_gradient\n", + " self.hidden_weights -= self.eta * self.hidden_weights_gradient\n", + " self.hidden_bias -= self.eta * self.hidden_bias_gradient\n", + "\n", + " def predict(self, X):\n", + " probabilities = self.feed_forward_out(X)\n", + " return np.argmax(probabilities, axis=1)\n", + "\n", + " def predict_probabilities(self, X):\n", + " probabilities = self.feed_forward_out(X)\n", + " return probabilities\n", + "\n", + " def train(self):\n", + " data_indices = np.arange(self.n_inputs)\n", + "\n", + " for i in range(self.epochs):\n", + " for j in range(self.iterations):\n", + " # pick datapoints with replacement\n", + " chosen_datapoints = np.random.choice(\n", + " data_indices, size=self.batch_size, replace=False\n", + " )\n", + "\n", + " # minibatch training data\n", + " self.X_data = self.X_data_full[chosen_datapoints]\n", + " self.Y_data = self.Y_data_full[chosen_datapoints]\n", + "\n", + " self.feed_forward()\n", + " self.backpropagation()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Evaluate model performance on test data\n", + "\n", + "To measure the performance of our network we evaluate how well it does it data it has never seen before, i.e. the test data. \n", + "We measure the performance of the network using the *accuracy* score. \n", + "The accuracy is as you would expect just the number of images correctly labeled divided by the total number of images. A perfect classifier will have an accuracy score of $1$. \n", + "\n", + "$$ \\text{Accuracy} = \\frac{\\sum_{i=1}^n I(\\hat{y}_i = y_i)}{n} ,$$ \n", + "\n", + "where $I$ is the indicator function, $1$ if $\\hat{y}_i = y_i$ and $0$ otherwise." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy score on test set: 0.9472222222222222\n" + ] + } + ], + "source": [ + "epochs = 100\n", + "batch_size = 100\n", + "\n", + "dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size,\n", + " n_hidden_neurons=n_hidden_neurons, n_categories=n_categories)\n", + "dnn.train()\n", + "test_predict = dnn.predict(X_test)\n", + "\n", + "# accuracy score from scikit library\n", + "print(\"Accuracy score on test set: \", accuracy_score(Y_test, test_predict))\n", + "\n", + "# equivalent in numpy\n", + "def accuracy_score_numpy(Y_test, Y_pred):\n", + " return np.sum(Y_test == Y_pred) / len(Y_test)\n", + "\n", + "#print(\"Accuracy score on test set: \", accuracy_score_numpy(Y_test, test_predict))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adjust hyperparameters\n", + "\n", + "We now perform a grid search to find the optimal hyperparameters for the network. \n", + "Note that we are only using 1 layer with 50 neurons, and human performance is estimated to be around $98\\%$ ($2\\%$ error rate)." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.11666666666666667\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.20833333333333334\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.12222222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.14722222222222223\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.17777777777777778\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.16111111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.20277777777777778\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.5305555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.5944444444444444\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.5888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.6111111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.5222222222222223\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.5555555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.8055555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.85\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.85\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.875\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.8666666666666667\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.8638888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.9555555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.925\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9472222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.9472222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.9472222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9361111111111111\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.775\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.8527777777777777\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.21944444444444444\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.08888888888888889\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.11388888888888889\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.08611111111111111\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.125\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.09166666666666666\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.125\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + } + ], + "source": [ + "eta_vals = np.logspace(-5, 1, 7)\n", + "lmbd_vals = np.logspace(-5, 1, 7)\n", + "# store the models for later use\n", + "DNN_numpy = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", + "\n", + "# grid search\n", + "for i, eta in enumerate(eta_vals):\n", + " for j, lmbd in enumerate(lmbd_vals):\n", + " dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size,\n", + " n_hidden_neurons=n_hidden_neurons, n_categories=n_categories)\n", + " dnn.train()\n", + " \n", + " DNN_numpy[i][j] = dnn\n", + " \n", + " test_predict = dnn.predict(X_test)\n", + " \n", + " print(\"Learning rate = \", eta)\n", + " print(\"Lambda = \", lmbd)\n", + " print(\"Accuracy score on test set: \", accuracy_score(Y_test, test_predict))\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter10_49_1.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAJgCAYAAABmwww9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABvQUlEQVR4nO3deZyN5f/H8dc5s5gZzIxlFmv2NWPLWvbse/gmhSiRJhlFKlIpKTL6oaKyFSplm8pWJGVKqAZZsxtjhsHYZ+ac+/fH0eE2ZMicY+a8n4/HeXDf5zr3fX3mPsvnfK7rvo/FMAwDEREREQ9kdXcHRERERNxFiZCIiIh4LCVCIiIi4rGUCImIiIjHUiIkIiIiHkuJkIiIiHgsJUIid6jXX3+djh070rFjR+6++25atmzpXL5w4cJNbSsuLo6XX375uvfv2LGD8uXLM23atP/abRGRbMWi6wiJ3PmaNm3Ku+++S5UqVW7p8QsWLGD58uVMnTr1mvePGjWKs2fP8ttvv/H999/j7e39X7orIpJt6N1OJBuaP38+8+bNw263ExwczMiRIyldujQbNmxg7Nix2O12APr3709ERAT/93//x+nTp3nhhRd48803Tds6c+YMMTExzJ8/n+3bt7N8+XLatm0LQHp6OuPGjeOHH37Ay8uL6tWrM2rUKKxW6zXXT506lRMnTjirT5MmTXIu9+zZk6CgIPbs2cNDDz1ElSpVGDduHKmpqSQlJVG/fn3GjBkDwOrVq5k4cSJ2u52AgABeffVVVq9eze7du3nnnXcA2LBhA6+//jqLFi1y0V9dRHIiJUIi2cz69etZtGgRc+bMwd/fn59++onIyEiWLl3KpEmT6NOnD23btmX79u18/vnntGzZkkGDBrF8+fIMSRDA4sWLKVGiBKVLl6ZTp07MnDnTmQjNnTuXrVu3snjxYnx9fRkyZAjffvstKSkp11x/I4GBgc52Q4YMYdCgQdSpU4ezZ8/SrFkztmzZQnh4OEOHDmX27NlUqlSJFStWMH78eN566y1atGjByZMnCQ4O5osvvqB79+63948rIh5HiZBINvPDDz+wf/9+UxKQkpLCyZMnad26Na+99hqrVq2ifv36DBky5Ibb++yzz/jf//4HQIcOHZgwYQK///471atXZ926dXTs2BE/Pz8AJk6cCMCAAQOuuX7SpEn/uq977rnH+f+xY8fy448/8sEHH7Bnzx4uXrzIuXPn2LRpE2XLlqVSpUoAtGjRghYtWgDQuHFjFi9eTKdOnfjpp58YNWpUJv5iIiLXp0RIJJux2+107NiRoUOHOpcTExMJCgqie/fuNGnShJ9//pm1a9cyefJkli1bdt1tbdiwgV27dvHRRx8xY8YMAHx8fJg5cybVq1fPMFfo2LFj2O326663WCxcOe0wLS3N1C4gIMD5/0ceeYTy5cvToEEDWrduzZ9//olhGHh5eWGxWJztDMNgx44dVKhQgYcffphXXnkFb29vWrRoQe7cuW/yryciYqazxkSymfvuu49vvvmGxMREAObNm0fv3r0B6N69O9u2beOBBx5g9OjRpKSkkJSUhJeXF+np6Rm2NW/ePDp27MiaNWtYtWoVq1at4oMPPmDlypXEx8dTr149vv76a1JTU7Hb7bzyyit88803112fL18+tm7dimEYnDlzhtWrV18zhpSUFDZv3sxzzz1HixYtSEhI4MCBA9jtdqpWrcrff//Nrl27APj++++dSV+NGjWwWq18/PHHGhYTkdtCFSGRbOa+++6jX79+9O3bF4vFQp48eZg8eTIWi4XnnnuOMWPGMHHiRCwWC5GRkRQtWhSbzcaUKVOIjIxk8uTJACQnJ7NixQq++uor0/br1atHtWrV+OSTT3juuec4fPgwDzzwAIZhULt2bXr27InFYrnm+vPnz7N27VpatGhBWFgYtWvX5lonpgYGBvLEE0/QuXNnAgICCAsLo0aNGuzfv5969eoxfvx4nn/+eWw2G3ny5CE6Otr52AceeIBvv/2WChUqZO0fWkQ8gk6fF5FsIz09ncjISDp06ECbNm3c3R0RyQE0NCYi2cLu3bupV68e+fLlo1WrVu7ujojkEKoIiYiIiMdSRUhEREQ8lhIhERER8VhKhERERMRjZcvT51vl7+fuLriNUbqou7vgVpa9h93dBbeyXHFBQo+Ux8PjT027cZscyh7k2cd++cZXXbo/e0I5l+3LGr7TZfu65v7duncRERERN8qWFSERERHJOnbsLtuXuysy7t6/iIiIiNuoIiQiIiImNsN1FSF3JyKqCImIiIjHcnciJiIiIncYO57zoxOqCImIiIjHUkVIRERETFx51pi7qSIkIiIiHksVIRERETGxGZojJCIiIpLjqSIkIiIiJjprTERERMQD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KiIiInIVVYRERETERKfPi4iIiHgAVYRERETERGeNiYiIiHgAVYRERETExK45QiIiIiI5nypCIiIiYmLzoDqJ50QqIiIichVVhERERMREZ42JiIiIeABVhERERMREvzUmIiIi4gGUCImIiIjH0tCYiIiImNgMXVBRREREJMdTRUhERERMdEFFEREREQ+gipCIiIiY2HVBRREREZGcTxUhERERMdEcIREREREPoIqQiIiImOg6QiIiIiIeQBUhERERMfGkH13NlonQ9tEV3N0Ft7Hmu+juLriVYZR0dxfcytvX5u4uuFV6gr+7u+BWdn+7u7vgNoPvXenuLkgOlS0TIREREck6Nl1HSERERCTnU0VIRERETOzorDERERGRHE+JkIiIiHgsDY2JiIiIiSZLi4iIiHgAVYRERETERD+6KiIiIuIBVBESERERE7t+dFVEREQk51NFSEREREw0R0hERETEA6giJCIiIiZ2XUdIREREJOdTIiQiIiImNiwuu92MmJgY2rRpQ4sWLZgzZ06G+7du3UqXLl3o0KED/fv3JyUl5YbbVCIkIiIid7yjR48SHR3N3LlzWbRoEZ9//jm7d+82tXnjjTcYNGgQS5YsoWTJknz88cc33K7mCImIiIiJK+cIpaSkXLNyExgYSGBgoHN53bp11K1bl+DgYABatmzJsmXLiIyMdLax2+2cPXsWgPPnzxMUFHTD/SsREhEREbeZNWsWkydPzrA+MjKSp59+2rmcmJhISEiIczk0NJS4uDjTY4YPH07fvn0ZM2YM/v7+fPHFFzfcvxIhERERMbnZuTv/Re/evencuXOG9VdWg8BR7bFYLvfLMAzT8oULF3jppZeYOXMmERERzJgxg+eff55p06b96/6VCImIiIjbXD0Edj3h4eFs2LDBuZyUlERoaKhzeefOneTKlYuIiAgAHnzwQd59990bbleTpUVEROSOV79+fWJjY0lOTub8+fOsWLGChg0bOu+/6667SEhIYM+ePQB8//33VKlS5YbbVUVIRERETO7ECyqGhYURFRVFr169SEtLo2vXrkRERNCvXz8GDRpElSpVePPNNxk8eDCGYVCgQAHGjBlzw+0qERIREZFsoX379rRv39607sMPP3T+v1GjRjRq1OimtqlESERERExsd2BFKKt4TqQiIiIiV1FFSEREREzsLjx93t1UERIR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iIh4AFWERERExETXERIRERHxAKoIiYiIiInmCImIiIh4AFWERERExEQVIREREREPoERIREREPJaGxkRERMREQ2MiIiIiHiBbVoTebf2Ju7sgbpLfesbdXXCrNLzc3QW3snnQD0FeSzN/m7u74DbH7Wfd3QWPcqdWhGJiYnj//fdJT0+nd+/ePPzww877tm3bxvDhw53LycnJBAUF8fXXX//rNrNlIiQiIiKe5ejRo0RHR7NgwQJ8fX3p3r07derUoUyZMgBUrFiRxYsXA3D+/Hm6devGK6+8csPtKhESERERE1f+xEZKSgopKSkZ1gcGBhIYGOhcXrduHXXr1iU4OBiAli1bsmzZMiIjIzM8durUqdSqVYt77rnnhvtXIiQiIiJuM2vWLCZPnpxhfWRkJE8//bRzOTExkZCQEOdyaGgocXFxGR53+vRpvvjiC2JiYjK1fyVCIiIiYuLKOUK9e/emc+fOGdZfWQ0CsNvtWCyX+2UYhmn5H0uWLOH++++nQIECmdq/EiERERFxm6uHwK4nPDycDRs2OJeTkpIIDQ3N0O67776jf//+md6/Z5+CISIiIhnYDYvLbplVv359YmNjSU5O5vz586xYsYKGDRua2hiGwdatW6levXqmt6tESERERO54YWFhREVF0atXLzp16kS7du2IiIigX79+bN68GXCcMu/j40OuXLkyvV2LYRhGVnU6qyzeU83dXRA30XWEdB0hT6brCHmukMKHXbq/ZquHuGxf3zeZ4LJ9XYtnv6uIiIiIR9NkaRERETG5U68snRVUERIRERGPpYqQiIiImBiqCImIiIjkfEqERERExGNpaExERERMXPmjq+6mipCIiIh4LFWERERExESnz4uIiIh4AFWERERExESnz4uIiIh4AFWERERExERzhEREREQ8gCpCIiIiYqI5QiIiIiIeQBUhERERMdEcIREREREPoIqQiIiImBiGu3vgOqoIiYiIiMdSRUhERERM9OvzIiIiIh5AiZCIiIh4LA2NiYiIiIkuqCgiIiLiAVQRumTbehtLZ6SRngaFSlroNtgXv9zmjHjLzzZWfJqGxQoBeS10HeRDgcKOXPKVB88TVPBy+0ZdvKnRNPv8eT09/rhf4asZVtLToGhJeDTKjn9uc5tNP8PiT6xYLZA7L/QabCe0MNhtMGeKhZ2bHfFXqWXQrZ+BJRt9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A3WBgeYrvIeHh7NhwwbnclJSEqGhoc7l+Ph41q1bR9euXQFHouTtfeM0RxUhERERMXHlWWOBgYEULVo0w+3qRKh+/frExsaSnJzM+fPnWbFiBQ0bNnTe7+fnx7hx4zh48CCGYTBnzhzTNRCvR4mQiIiI3PHCwsKIioqiV69edOrUiXbt2hEREUG/fv3YvHkz+fPn57XXXuPJJ5+kVatWGIZBnz59brhdDY2JiIiImXFn/lhk+/btad++vWndhx9+6Px/y5Ytadmy5U1tUxUhERER8ViqCImIiIiZfmtMREREJOdTIiQiIiIeS0NjIiIiYnKzP4aanakiJCIiIh5LFSERERExU0VIREREJOdTRUhERERMNEdIRERExAOoIiQiIiJmqgiJiIiI5HyqCImIiIiZKkIiIiIiOZ8qQiIiImKis8ZEREREPIASIREREfFYSoRERETEY2mOkIiIiJhpjpCIiIhIzqdESERERDyWhsZERETERKfPi4iIiHiAbFkRalekpru74DZeefK4uwtuZb9w0d1dcCtr7gB3d8Gt7GfOuLsLbvVncH13d8FtLKe3u7sLnkUVIREREZGcL1tWhERERCQLqSIkIiIikvOpIiQiIiImOmtMRERExAOoIiQiIiJmqgiJiIiI5HyqCImIiIiJ5giJiIiIeABVhERERMRMFSERERGRnE8VIRERETFTRUhEREQk51MiJCIiIh5LQ2MiIiJiotPnRURERDyAKkIiIiJipoqQiIiISM6nipCIiIiYqSIkIiIikvOpIiQiIiImOmtMRERExAOoIiQiIiJmqgiJiIiI5HyqCImIiIiJ5giJiIiIeABVhERERMRMFSERERGRnE8VIRERETFTRUhERETkzhITE0ObNm1o0aIFc+bMuW67H374gaZNm2Zqm6oIiYiIyB3v6NGjREdHs2DBAnx9fenevTt16tShTJkypnbHjh3jrbfeyvR2VRESERERE4sLb5m1bt066tatS3BwMAEBAbRs2ZJly5ZlaDdixAgiIyMzvV1VhERERMRtUlJSSElJybA+MDCQwMBA53JiYiIhISHO5dDQUOLi4kyPmT17NpUqVaJq1aqZ3r8SIRERETFz4WTpWbNmMXny5AzrIyMjefrpp53Ldrsdi+VyDckwDNPyzp07WbFiBTNnziQhISHT+/foRKh2mxo8NqYHPrl8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0w/bqFCzpPPYt3m0IbHLMn+Ga50WVRgw5n+81O1dfljw240fcAfY+N1mKtQuc/m9rl8zYr/emOk27fo1o9fLXQEIDg2kVZ8mrP58HQDDZgwkIK8/gxu/ytH9x5DswSVzhOrVq0fFihUZNWoUP/zwAzabzRW7/Vcnk1IY3/c9Rs5/Fh9fb+L/PsrbvSdTrmYphnz4JANqDL1um38ULVuIhH2Jpu2ePXWOVx4Yx8CJffD188WWbmNi/6kc2XPnVgQATh07zYSB0xkxeyDevt4c2ZvIuP4fUbZ6CQZP6sNT941ydxdvq5NJKYzvN5WRnz3jPLbj+r5P2RolGTK1H0/WevG6bQA+eO4TIt99lI83j8dms/PHqi18MT4GgDd7TSbqg354+3qTfOQkr3S9s+dPnTp2mgmRMxgx60m8fbw5si+RcQOmU7baXQz+v9481fA1d3fxtjqZlML4xz9g5OdR+Ph4E7/nKOP6TKFszVIMmfoET94z/LptAD54djaR7/bh483vOI796i18MX4JAK90fYen/68v7Z64H6vVypw3vmLnhj3uDPdfnTp2muhnZvPSx0/g7evFkX1JjH9qJmWrFueZiT2JbPLGvz7+8Ve7YLFYeGZiT+e6v9b/zXvPf5bVXb9lp5JSeOeJqYyc94zjvW5PIuMec7z2o97vx8A6L163DcBnby9h2PQnmbpxLBaLhdmvfcnOjXuoWKcMDbvU4eDOeKJXX36//PileWz87s4eLrwWyx1QqXEVi3GtgdAsNH/+fJYuXcr06dNveRvNrRlP6/YUXnnyuLsLbmW/cPHGjXIwa+4Ad3fBrexn7twzsFzBKzjY3V1wG/vp0+7uglstv+DaSejVno522b7+mBTlsn1di8vPGuvWrRvdunluIiMiInLH86CKkMdeR0hERETkzr3crYiIiLiFJ80RUkVIREREPJYSIREREfFYGhoTERERMw2NiYiIiOR8qgiJiIiIiSZLi4iIiHgAVYRERETETBUhERERkZxPFSERERExU0VIREREJOdTRUhERERMdNaYiIiIiAdQRUhERETMVBESERERyflUERIRERETi+E5JSFVhERERMRjqSIkIiIiZp5TEFJFSERERDyXEiERERHxWBoaExERERNdUFFERETEA6giJCIiImaqCImIiIjkfKoIiYiIiInmCImIiIh4AFWERERE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C+cIuZuGxkRERMRjqSIkIiIiZjcxdye7U0VIREREPJYqQiIiImKiOUIiIiIiHkAVIRERETHTHCERERGRnC9bXlBRRERE5HZQRUhEREQ8lhIhERER8VhKhERERMRjKRESERERj6VESERERDyWEiERERHxWEqERERExGMpERIRERGPpURIREREPJYSoZsQExNDmzZtaNGiBXPmzHF3d1zuzJkztGvXjkOHDrm7Ky43efJk2rZtS9u2bXn77bfd3R2Xe/fdd2nTpg1t27ZlxowZ7u6O27z11lsMHz7c3d1wuZ49e9K2bVs6duxIx44d+fPPP93dJZdatWoVDzzwAK1bt+b11193d3fkNtOPrmbS0aNHiY6OZsGCBfj6+tK9e3fq1KlDmTJl3N01l/jzzz8ZMWIE+/btc3dXXG7dunX89NNPLFy4EIvFwuOPP87KlStp3ry5u7vmEuvXr+eXX35hyZIlpKen06ZNGxo1akSpUqXc3TWXio2NZeHChTRu3NjdXXEpwzDYt28fq1evxtvb8z4yDh48yKhRo5g/fz4FChSgd+/erFmzhkaNGrm7a3KbqCKUSevWraNu3boEBwcTEBBAy5YtWbZsmbu75TJffPEFo0aNIjQ01N1dcbmQkBCGDx+Or68vPj4+lC5dmvj4eHd3y2Vq167N7Nmz8fb25vjx49hsNgICAtzdLZc6efIk0dHRDBgwwN1dcbk9e/YA0LdvXzp06MCnn37q5h651sqVK2nTpg3h4eH4+PgQHR1N1apV3d0tuY08L72/RYmJiYSEhDiXQ0NDiYuLc2OPXOuNN95wdxfcpmzZss7/79u3j6VLlzJv3jw39sj1fHx8+L//+z+mT59Oq1atCAsLc3eXXOrll18mKiqKI0eOuLsrLpeSkkK9evUYOXIkaWlp9OrVi5IlS3Lvvfe6u2susX//fnx8fBgwYABHjhyhcePGDB482N3dkttIFaFMstvtWCwW57JhGKZlyfl27dpF3759GTZsGCVKlHB3d1xu0KBBxMbGcuTIEb744gt3d8dl5s+fT6FChahXr567u+IW1atX5+233yZv3rzkz5+frl27smbNGnd3y2VsNhuxsbGMGTOGzz//nLi4OBYuXOjubsltpEQok8LDw0lKSnIuJyUleeQwkafauHEjjz76KM8++yydO3d2d3dc6u+//2bbtm0A+Pv706JFC3bs2OHmXrnOt99+y88//0zHjh35v//7P1atWsWYMWPc3S2X2bBhA7Gxsc5lwzA8aq5QwYIFqVevHvnz58fPz4/777/fo0YDPIESoUyqX78+sbGxJCcnc/78eVasWEHDhg3d3S1xgSNHjvDUU08xfvx42rZt6+7uuNyhQ4cYMWIEqamppKam8v3331OzZk13d8tlZsyYwddff83ixYsZNGgQTZs25cUXX3R3t1zm9OnTvP3221y8eJEzZ86wcOFCjzlRAKBJkyb89NNPpKSkYLPZWLt2LZUrV3Z3t+Q28py0/j8KCwsjKiqKXr16kZaWRteuXYmIiHB3t8QFPv74Yy5evMjYsWOd67p3785DDz3kxl65TqNGjYiLi6NTp054eXnRokULj0wIPVWTJk34888/6dSpE3a7nR49elC9enV3d8tlqlatyuOPP06PHj1IS0vj3nvvpUuXLu7ultxGFsMwDHd3QkRERMQdNDQmIiIiHkuJkIiIiHgsJUIiIiLisZQIiYiIiMdSIiQiIiIeS4mQiIiIeCwlQiIiIuKxlAiJSKa0bt2ahg0bsmvXLnd3RUTktlEiJCKZ8vXXX1OiRAmWL1/u7q6IiNw2SoREJFO8vLyoWbOmR/3gqojkfPqtMRHJlAsXLvDtt9+iX+URkZxEFSERyZTo6GhCQ0M5cOAAZ8+edXd3RERuCyVCInJDv//+O0uXLmXSpEnkzZtXE6ZFJMdQIiQi/+rixYu8+OKLvPrqqwQHB1OhQgW2b9/u7m6JiNwWSoRE5F+9++67VKtWjSZNmgBQoUIFTZgWkRxDiZCIXFdcXBzLli3jxRdfdK6rWLGiKkIikmNYDJ0CIiIiIh5KFSERERHxWEqERERExGMpERIRERGPpURIREREPJYSIREREfFYSoRERETEYykREhEREY+lREhEREQ81v8Dbcr9jzZHh3YAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter10_49_2.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# visual representation of grid search\n", + "# uses seaborn heatmap, you can also do this with matplotlib imshow\n", + "import seaborn as sns\n", + "\n", + "sns.set()\n", + "\n", + "train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "\n", + "for i in range(len(eta_vals)):\n", + " for j in range(len(lmbd_vals)):\n", + " dnn = DNN_numpy[i][j]\n", + " \n", + " train_pred = dnn.predict(X_train) \n", + " test_pred = dnn.predict(X_test)\n", + "\n", + " train_accuracy[i][j] = accuracy_score(Y_train, train_pred)\n", + " test_accuracy[i][j] = accuracy_score(Y_test, test_pred)\n", + "\n", + " \n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(train_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Training Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()\n", + "\n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(test_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Test Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## scikit-learn implementation\n", + "\n", + "**scikit-learn** focuses more\n", + "on traditional machine learning methods, such as regression,\n", + "clustering, decision trees, etc. As such, it has only two types of\n", + "neural networks: Multi Layer Perceptron outputting continuous values,\n", + "*MPLRegressor*, and Multi Layer Perceptron outputting labels,\n", + "*MLPClassifier*. We will see how simple it is to use these classes.\n", + "\n", + "**scikit-learn** implements a few improvements from our neural network,\n", + "such as early stopping, a varying learning rate, different\n", + "optimization methods, etc. We would therefore expect a better\n", + "performance overall." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.18333333333333332\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.18611111111111112\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.13055555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.24444444444444444\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.23333333333333334\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.12777777777777777\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.1527777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9111111111111111\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.8888888888888888\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.8722222222222222\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.8305555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.8888888888888888\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.8805555555555555\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.8944444444444445\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.975\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.9777777777777777\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.9805555555555555\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9861111111111112\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.9805555555555555\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.9777777777777777\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.9444444444444444\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9861111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.9888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.9888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9861111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.9888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.9722222222222222\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.9527777777777777\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9472222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.9083333333333333\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.8666666666666667\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9055555555555556\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.9166666666666666\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.8916666666666667\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.8666666666666667\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.125\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.16111111111111112\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.33611111111111114\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.19444444444444445\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.2361111111111111\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.09166666666666666\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.12777777777777777\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.2\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.06388888888888888\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.08888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.13333333333333333\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.09166666666666666\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.neural_network import MLPClassifier\n", + "# store models for later use\n", + "DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", + "\n", + "for i, eta in enumerate(eta_vals):\n", + " for j, lmbd in enumerate(lmbd_vals):\n", + " dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic',\n", + " alpha=lmbd, learning_rate_init=eta, max_iter=epochs)\n", + " dnn.fit(X_train, Y_train)\n", + " \n", + " DNN_scikit[i][j] = dnn\n", + " \n", + " print(\"Learning rate = \", eta)\n", + " print(\"Lambda = \", lmbd)\n", + " print(\"Accuracy score on test set: \", dnn.score(X_test, Y_test))\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAJgCAYAAABmwww9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABlb0lEQVR4nO3deZyN5f/H8dd95syMGYx1xq4ojBhrZMkeyk6UFCJ+X9kiKZXom5QQiRaEyBK+dspSSmRSaVF2lSJjZhgMM2bmLPfvj6Phzthq5hwz5/18PObBfZ/r3PfnOve57nOdz3Xd9zFM0zQRERER8UM2XwcgIiIi4ivqCImIiIjfUkdIRERE/JY6QiIiIuK31BESERERv6WOkIiIiPgtu68DEPE3L7/8Mt988w0Av/zyCyVKlCBXrlwALF68OP3/19K3b1+eeeYZbr/99iuWmTJlCrfccgsdOnT413H/ZdCgQXz99dd8/vnnhISEZNp2RUR8wdB9hER8p2nTpkyZMoWoqChfh3JdYmNjad++PVWrVqVx48Y89NBDvg5JRORf0dCYyE1k6tSpPPbYY7Rt25annnqKEydO0L9/fx588EGaNm1K9+7dOXnyJODpRP3000/s2LGDrl27Mnz4cDp06ECbNm3YuXMnACNGjGDWrFkAREVFMXXqVLp27UrTpk1ZuHAhAC6Xi1dffZXmzZvTqVMnXnzxRbp3755hfEuWLKFu3bp07NiRefPmcen3qB9//JEuXbrQpk0bOnbsSHR09FXXV6hQgYSEhPTn/7W8Y8cO2rVrR9euXWnbti1paWm8/PLLdOnShVatWnHfffel1y8pKYlnn32Wli1b0qpVKyZNmkRycjK1atXit99+S9/2o48+yieffJIpx0hEchZ1hERuMn/++ScrVqxg4sSJrFu3jmrVqrF48WI+/fRTcuXKxapVqy57zq5du+jduzcrV66kU6dOTJ48+bIyaWlpFChQgA8//JA333yTV199ldTUVJYuXcru3btZu3YtH374IUeOHMkwLqfTyZIlS2jXrh1Nmzbl5MmTfPHFFwA4HA4GDBjAgAEDWLt2LWPGjOGVV14hLS0tw/Vut/uqr8HBgwd5/fXXWbNmDbt37yYuLo7Fixfz0Ucf0bFjR2bOnAnAm2++SWpqKh999BErV67ku+++46effqJDhw4sXboUgD/++IPDhw/TpEmTGzoOIuIfNEdI5CZTrVo17HZP0+zZsyfffvstc+bM4fDhwxw8eJCqVate9pzixYtTsWJFAO644w5WrFiR4babNWsGQKVKlUhLSyM5OZktW7bQvn17goODAXjwwQf54IMPLnvup59+itvtpkGDBtjtdlq1asW8efNo1KgRBw4cwGaz0bhxYwAqV66c3onJaP21FCtWjBIlSgBQvXp18uXLl95J27FjB7lz5wZg+/btPPvsswQEBBAQEMD8+fMBiIiI4JFHHmHo0KEsXryYzp07ExAQcM39ioj/UUdI5CYTGhqa/v8JEyawa9cu7r//fu666y6cTicZTeu7dIK1YRgZlgHSOzuGYQBgmmZ6p+svNlvGieKFCxeSkpJCixYtAE+GKT4+noMHDxIQEJC+zb8cOHDgiuvLli1rWZeWlmZZvvQ1+Pzzzxk7diy9evWiWbNmlC1bltWrVwNgt9st24+JiSFXrlyUKVOGChUq8Omnn7J27VqWLFmSYZ1ERDQ0JnIT27ZtGz179qRDhw4UKlSI7du343K5MnUfjRo1YvXq1aSlpeF0OjPMJv3222988803LF++nM2bN7N582a2bdtGrVq1mDdvHmXLlsUwDL788ksAdu/eTc+ePa+43u12U7BgQX766ScA1q5de8X4vvzyS5o0aUK3bt2oXLkyn3zySfprULduXVasWIHb7SYtLY3BgwenX5HXrVs3xo8fT5UqVShSpEimvmYiknOoIyRyExswYADjx4+nbdu2PP7449SoUYM//vgjU/fRqVMnqlSpQocOHejatSuBgYGXXRa/aNEi7rnnHm655ZbL4lu1ahXnzp1j6tSpTJs2jfbt2zN69GimTp1KUFDQFdePHDmSl156iY4dO/LLL78QHh6eYXxdu3bl66+/pm3btnTs2JFSpUpx9OhR3G43AwcOJDAwkPbt29OhQwcaNWqUnrFq0qQJycnJdO3aNVNfLxHJWXT5vIif27ZtGydPnqR9+/aA5z5HwcHBDB8+3MeR/Tvff/89I0eOZO3atZcNz4mI/EUdIRE/Fxsby4gRIzhx4gRut5vIyEhefPFF8ubN6+vQ/rFnnnmGr7/+msmTJ1OtWjVfhyMiNzF1hERERCTbOHfuHF27duXdd9+lZMmSlsf27t3L888/T1JSEnfeeSf//e9/L7sg5O80R0hERESyhR9/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/Ge4k7jjBrMnBfDyhasDN63yXD5vmlC+kpseFy6Rf7p3IElnoUChi6fScpVMeg7K/CvnEt3Xnvj5b+3++sLl8xfafo/hBidiYOEbJs++7engb1lt8sWFtn9bJejihbbvznAAO3PdrOc9gJZl9mT5Pi71xPcPeW1fU6ovuu6ya9asYfr06TgcDjp37kzfvn3p27cvgwcPJioqii1btvD6669jmiaFChVizJgxlCpV6qrb9EpHCGDXrl0sXbqUMWPG/OttZUVHKLvwVkfoZpVVHaHsIqs6QtlFVnWEsgtvdIRuVt7oCN3M1BHKOl77VKlSpUr6uJ2IiIjcvNxm9hne/7f8p6YiIiIif+Pf4wwiIiJyGZcfDUUqIyQiIiJ+SxkhERERsbhZf3Q1KygjJCIiIn5LGSERERGx0FVjIiIiIn5AGSERERGx8KcbWCojJCIiIn5LGSERERGxcOmqMREREZGcTxkhERERsdBVYyIiIiJ+QB0hERER8VsaGhMREREL/cSGiIiIiB9QRkhEREQsdENFERERET+gjJCIiIhYaI6QiIiIiB9QRkhEREQsdENFERERET+gjJCIiIhYaI6QiIiIiB9QRkhEREQsdB8hERERET+gjJCIiIhYaI6QiIiIiB9QRkhEREQslBESERER8QPqCImIiIjf0tCYiIiIWGhoTERERMQPZMuMUN1cvo7Al9J8HYBP2XD6OgQfS/F1AD4W6OsAfMphpvo6BJ855fb39753KSMkIiIi4geyZUZIREREso5+YkNERETEDygjJCIiIhaaIyQiIiLiB5QREhEREQtlhERERET8gDJCIiIiYqGMkIiIiIgfUEZIRERELJQREhEREfEDygiJiIiIhamMkIiIiEjOp46QiIiI+C0NjYmIiIiFfnRVRERExA8oIyQiIiIWunxeRERExA8oIyQiIiIWunxeRERExA8oIyQiIiIWmiMkIiIi4geUERIRERELzRESERER8QPKCImIiIiF5giJiIiI+AFlhERERMTCNH0dgfcoIyQiIiJ+SxkhERERsdCvz4uIiIj4AXWERERExG9paExEREQsdENFERERET+gjNANMk147lWD8mWhV1c/ur4Q/647eOr/7KtQviz07urraLxP9c+Z9f8i2mDKzADSHFC+rMl/n3aRJ7e1zMLlNhatsJErCMrcYvL8EBf5wuBMIrw8OYB9hwxCckGH+9x06+T2TUX+oeivApjxXjCONIOyZV08MzyF3H+r/7LlgaxYGURwsEnp0m6GPpFCWJjnsRWrAlm3LpDUNKhQ3s3TT6UQFOT9emQ23VBRMvTLYeg91MamLf7zBvmLP9cdPPXvNRQ2bvF1JL6h+ufM+iechhdeC2DSS07WfOCkZHGTN2ZYPxa+/t5g9kIbM193snSWkwZ13Px3YgAA498KIDQEVr7vZMHbTrbtMNiyPfucI06fNhg3PhdjXjzP/HlJFC/uZvrMYEuZ774PYNGHQUx6PZlZM5Opc5eTiZNyAfDFF3aWrwhk0sRk5s5OJjUVlv4vB/SC/Iw6Qjdg0UqD+1ubtGjsf9kQf647wMKV0Lk1tGzs60h8Q/XPmfWP/sagcqTJLSU9yw+0c/PRJzbLzfT27DeoU9OkaIRnuVkDky3RBg6H57E2zd0EBEBgIDSsY7JpS/b5WPnm2wAiK7gpWdJT4fbtHHzyaaCl/gcO2KhZ00VEuGdlwwZOtkfbcThgwyY7D3ZxEBYGNhsMG5pKi+YOX1Ql05mm9/58zWvv2E8++YQPPviAP/74w7J+8eLF3grhXxs5xKRN85vgqPmAP9cd4IUh0Ka5r6PwHdU/Z9b/eJxB0fCL7bpIOJxLMkhKvlgm6g6Tr783OHbcs7zqYxsOh8HpRKhyh8naTTYcTkhOhk1fGJxI8HIl/oW4OBsREReH8sLDTZKSDJIvqX/Fim6++z6A48c9ma6P1wficBgkJhocOWrj1GmD4c+E0KtPKHPmBpEnj/+eJ7Mrr3SEJk6cyPz58zl8+DAPPfQQq1atSn/sww8/9EYIIiLyN24TMrpvnu2ST4aaVUz69XQx5AU7Xf8vAMMG+cJMAu0w7HEXAA/0sfPEyADq3mliz0YzT91X6LNcWv+qVVw82iONkaNC+L9+oRg2CAszsdtNnE6Db3cG8OKo88x4J5nERIP3ZgVnvNFsxjQNr/35mlfeslu2bGHFihXY7Xa6d+9O7969CQoK4r777sO8GfJiIiJ+qFiEyU97L37qx52AsLwmoSEXyyQlw51VTTq1dgIQGw9vzbaRLwyOx8GT/TwTpwFmzrdRukT2OacXiXCzd+/Fj8ET8QZ585qEXFL/5GSoWtVJ61aeIa/4eIPZc4IJC4PChdw0vNuZPrm6RXMHc+fljI6QP/FKRsg0TQzD0+u79dZbmT59OmPHjmXHjh3p60VExLvq1jLZtcfg96Oe5aWrbTSpb+3IxJ2A3kPsnEvyLM+cb+O+pm4MA5astvHWbM/HyMkEWL7ORqt7sk9HqNadLvbsDeDoUc/n0Oo1gdSv57SUOXHCYMjQUJIu1P+DBUE0a+LAMKBRQyefbbGTmuqZ67J1m53ICi5vVyNL+FNGyCsdoXvvvZfu3buza9cuAMqVK8eUKVMYMmTIZXOGRETEOwoVgDHPuBg22k77HnYO/mrwVH8Xu/cZdHnMkykpUxoe6+bm4cfttO1ux+EwePJxz7yaPg+7iY036PionT5P2hnQy0XlyOzTESpQwGTE8BRGvRhC90dD+fW3AAY8nsK+/TYe6xsKQOnSJt0eSqPfgFAe6ZEbhwMe75cKQIf2Du6s4aJvv1C698zN+fMGffuk+rJK8g8YppfGpqKjo4mIiOC2225LXxcTE8Ps2bN5/vnnb2hbzuO3Z3Z4kk3YdKGj+DGH6bx2oRzqlDvF1yH4VNESx7y6v0qrXvTavna3996+MuK1aW1169a9bF2xYsVuuBMkIiIiklmy0fx+ERER8QZ/uo5J4wwiIiLit5QREhEREYub4Woub1FGSERERPyWOkIiIiLitzQ0JiIiIhYaGhMRERHxA8oIiYiIiIUfXT2vjJCIiIj4L2WERERExEJzhERERET8gDJCIiIiYuVHk4SUERIRERG/pYyQiIiIWGiOkIiIiIgfUEZIRERELEzNERIRERHJ+ZQREhEREQvNERIRERHxA8oIiYiIiJUyQiIiIiI5nzpCIiIi4rc0NCYiIiIWunxeRERExA8oIyQiIiJWygiJiIiI5HzKCImIiIiFbqgoIiIi4geUERIRERErzRESERERubmsWbOGVq1a0aJFCxYsWHDZ47/++ivdu3enXbt2PPbYY5w5c+aa21RHSERERCxM0/Da3/WKjY1l8uTJLFy4kJUrV7J48WIOHTp0Scwmjz/+OH379mX16tVUrFiRGTNmXHO7GhoTERERn0lMTCQxMfGy9WFhYYSFhaUvb9++nTp16pA/f34AWrZsyfr16xk4cCAAu3fvJjQ0lIYNGwLQr1+/DLf7d+oIiYiIiJUX5wjNnTuXadOmXbZ+4MCBDBo0KH05Li6O8PDw9OWIiAh27dqVvvzHH39QuHBhnnvuOfbu3UvZsmV54YUXrrl/dYRERETEZ3r27EnHjh0vW39pNgjA7XZjGBeH0kzTtCw7nU6+/vpr5s+fT1RUFG+88Qbjxo1j3LhxV91/tuwI2TS1SUT8UIDhv+c+hz9dxnRT8N59hP4+BHYlRYsW5dtvv01fjo+PJyIiIn05PDycW265haioKADatGnD4MGDr7ld/21VIiIikm3Uq1eP6OhoEhISOH/+PBs3bkyfDwRQvXp1EhIS2LdvHwCbN2+mUqVK19xutswIiYiISBa6CRNwRYoUYejQofTo0QOHw0Hnzp2pUqUKffv2ZfDgwURFRfHWW28xcuRIzp8/T9GiRRk/fvw1t2uYpnkTVvfq3MfL+zoEERGvc+P2dQg+E+NK8nUIPlWqRIxX93fr3Ne8tq/DPZ/x2r4yoqExERER8VsaGhMRERGrbDdW9M8pIyQiIiJ+SxkhERERsbqBn77I7pQREhEREb+ljJCIiIhYZL/ryf85ZYRERETEbykjJCIiIlbKCImIiIjkfMoIiYiIiJWuGhMRERHJ+ZQREhEREQtDc4REREREcj5lhERERMRKGSERERGRnE8ZIREREbHSVWMiIiIiOZ86QiIiIuK3NDQmIiIiVposLSIiIpLzKSMkIiIiVsoIiYiIiOR8ygiJiIiIlTJCIiIiIjmfMkIiIiJipRsqioiIiOR8ygiJiIiIhaE5QiIiIiI5nzJCIiIiYqWMkIiIiEjOp4zQDTJNePZVKF8Wenf1dTTe5c91B9Vf9c+Z9d8SDW/MsJHm8NRtzDNu8uS2llmwzGDhCoPgYChb2mTkUJP8YXA6EcZMMth3yCAkF3S8z+Th+7NXKuGrr+zMei8YRxqULetm2PDz5P5b/VcsD2TVyiCCg6F0aTeDnjhPWJjnsVWrAvl4XRBpaVCuvIthT6UQFOT9esg/p4zQDfjlMPQaChu3+DoS7/PnuoPqr/rnzPonnIaR42y8McbNuvluShY3mTTdetn0ju9g1iKDWZPcLJ/lpmEdeHGi56PjtWkGoSGweq6bhe+42brD4PPtPqjIP3T6tMHE8bkY/eJ53p+XRLHibt6bmctS5ofvA1j8YTATXk9m+swkat/lZPKkEAC2fmFn1Yogxk9M4r3ZSaSmGiz7n3pB2Y06Qjdg4Uro3BpaNvZ1JN7nz3UH1V/1z5n13/6NQeVIuKWkZ7lre5N1nxiYlyR19hwwqFPTpGiEZ/mehiafb4c0h+exti1MAgIgKBAa1jXZuCX73H9m57cBlK/gomRJNwBt26Xx6aeBlvofOBBAjZpOwsM9K+9u4OCraDsOB2zaFEjnLmmEhYHNBkOGptC8ucMXVcl0hum9P1+75tDY7NmzmTZtGi6XixIlSlC+fHkqVKhAhQoVKF++PCVLlryuHR0+fJiQkBCKFCnC0qVL2b9/PzVq1KBVq1b/uhLe8sIQz79ffuvTMHzCn+sOqr/q7/k3p9U/Jg6KRlz8JCoSDueSDJKSSR8eq1LRZP4yG8eOmxQvCis+NnA4DM4keh5bs9GgepRJWhps2mJgt0N2mWkbF2cj4pL6h4ebJCcZJCeTPjxWsaKLFSuCiD1uUKSoyYb1gTgcBomJBkeP2jh92mDEM6GcPGkQFeWi7/+l+Kg28k9dsyM0ffp0xo8fT5UqVThy5AgHDhxg//79fPHFFxw8eBCAcuXKsWjRoitu4/333+eDDz7A7XZTp04dYmJiaN68OcuWLeO3335jwIABmVcjERG5LqYbMsrf2C4ZK6hZFfo/ajJ4pA2bzTMPKF+YSaAdhvc3mfiOQec+NgoXhHp3mnz/c/bJCJlX6K9dWv+oKi569Ehl9KhQbDZoeV8aecPc2O3gcsLOnXZeGpNMUBCMHxfCnFnB9B+Y6p0KZCU/urP0NTtCefLkoXHjxtjtdiIiIqhZs6bl8aNHj6Z3iK5k2bJlfPTRR5w4cYI2bdrw1VdfERwcTJcuXejcubM6QiIiPlCsCOzaa/BXBifuBITlNQkNuVgmKRnurGpyf2tPmdh4mDrbIF+YJ6P0ZD+T/GGex2Z8YFC6ZPbIBgFERJjs3XvxA/9EvEHevCYhl9Q/ORmqVHVyXytHepn35wQTFmZSqJDJ3Xc70rNHzZo7mD8vGMgBHSE/cs05Qv/3f//H0qVLr/h4yZIladKkyVW34Xa7CQoKokSJEvTu3Zvg4OD0x1wu1w2EKyIimaVeLZNde+D3o57lxasNmta3dmTiTkCvITbOJXmWp39g0KqZiWHAklUG02Z7OhInEmDZOoPWzbJPR6jmnU727g3g6FHPR+GaNUHUq2ed43PyhI1hQ3OTdKH+CxYE07SJE8OABg0dbNkSSGqqJ7v05TY7FSroMy27uWZGaNy4cTgcDrZu3UqDBg2oWLEiFSpUIOTSLvM1tGjRgkceeYR58+YxaNAgAPbt28fIkSO57777/nn0IiLyjxUqAC+PcDNklA2nA0qVgFeec/PzPhg1wcbyWW7KlIbHupk81M+G24QaUSbPD/F0dvo+YjJirI32j3omWA/sbRJV0ceVugEFCpgMH57CSy+G4HRCseJunhlxnv37bUyaGML0mUmUKu2m60OpDBqQG7cbKke5GDTYMw+oXXsHZ88aPN4vN24XlCvnpt/j531cq0ySffqz/5phmlcaJfX4448/2L9/f/rfvn37OHbsGCVLlmTDhg3XvaNvvvmGWrVqpS//+uuvHDlyhEaNGt1w0O7j5W/4OSIi2Z0bt69D8JkYV5KvQ/CpUiVivLq/sm9M8tq+fh3ypNf2lZFrZoRKly5N6dKlad68efq65ORkDhw4cEM7urQTBFC2bFnKli17Q9sQERERL/CjjNA/uo9QaGgo1apVy+RQRERERLxLP7EhIiIiFjfDjQ69RXeWFhEREb+ljJCIiIhYKSMkIiIikvMpIyQiIiJWygiJiIiI5HzKCImIiIiFrhoTERER8QPKCImIiIiVafg6Aq9RRkhERET8ljJCIiIiYqU5QiIiIiI5nzpCIiIi4rc0NCYiIiIWunxeRERExA8oIyQiIiJWygiJiIiI5HzKCImIiIiF5giJiIiI+AFlhERERMRKGSERERGRnE8ZIREREbFSRkhEREQk51NGSERERCx01ZiIiIiIH1BHSERERPyWOkIiIiLitzRHSERERKw0R0hEREQk51NHSERERPyWhsZERETEQpfPi4iIiPiBbJkR+tN11tch+EyCK1seskyzL62or0PwqeL2U74OwadK2JN8HYJPnXYH+joEnzmYVtLXIfjUg97eoTJCIiIiIjmff6cXRERE5HLKCImIiIjkfMoIiYiIiIWuGhMRERHxA8oIiYiIiJUyQiIiIiI5nzJCIiIiYqE5QiIiIiJ+QBkhERERsVJGSERERCTnU0ZIRERErJQREhEREcn51BESERERv6WhMREREbHQ5fMiIiIifkAZIREREbFSRkhEREQk51NGSERERKyUERIRERHJ+ZQREhEREQtdNSYiIiLiB5QREhEREStlhERERERyPmWERERExEJzhERERET8gDJCIiIiYqWMkIiIiEjOp4yQiIiIWCkjJCIiIpLzqSMkIiIifktDYyIiImJh+DoAL1JGSERE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kvMpIyQiIiJW/pMQUkZIRERE/JcyQiIiImJhaI6QiIiISM6njJCIiIhYKSMkIiIikvMpIyQiIiJWurO0iIiIyM1lzZo1tGrVihYtWrBgwYLLHv/kk09o37497dq1o3///pw5c+aa21RHSERERCwM0/Ta3/WKjY1l8uTJLFy4kJUrV7J48WIOHTqU/vi5c+d48cUXmTFjBqtXr6ZChQpMnTr1mttVR0hERERuetu3b6dOnTrkz5+f0NBQWrZsyfr169MfdzgcjB49miJFigBQoUIFYmJirrldzRESERERn0lMTCQxMfGy9WFhYYSFhaUvx8XFER4enr4cERHBrl270pcLFChA8+bNAUhJSWHGjBl07979mvtXR0hERESsvHj5/Ny5c5k2bdpl6wcOHMigQYPSl91uN4ZhpC+bpmlZ/svZs2cZMGAAkZGRdOzY8Zr7V0dIREREfKZnz54ZdlguzQYBFC1alG+//TZ9OT4+noiICEuZuLg4HnvsMerUqcNzzz13XftXR0hERESsvJgR+vsQ2JXUq1ePqVOnkpCQQEhICBs3bmTMmDHpj7tcLvr168d9991H//79r3v/2bIjZJ5I8HUIvlOyiK8j8KmCq/f4OgSfcl3HpaA5Wa4/8vs6BN/y4/ZvHovzdQjiY0WKFGHo0KH06NEDh8NB586dqVKlCn379mXw4MEcP36cPXv24HK52LBhAwCVK1dm7NixV91utuwIiYiISBa6SW+o2LZtW9q2bWtZN3PmTACioqLYt2/fDW9Tl8+LiIiI31JGSERERCxu5EaH2Z0yQiIiIuK3lBESERERK2WERERERHI+ZYRERETEShkhERERkZxPGSERERGxUkZIREREJOdTRkhERESsbtI7S2cFZYRERETEb6kjJCIiIn5LQ2MiIiJioZ/YEBEREfEDygiJiIiIlTJCIiIiIjmfMkIiIiJi5VZGSERERCTHU0ZIRERErDRHSERERCTnU0ZIRERErJQREhEREcn5lBESERERK2WERERERHI+ZYRERETESvcREhEREcn5lBESERERK9Pt6wi8RhkhERER8VvqCImIiIjf0tCYiIiIWOnyeREREZGcTxkhERERsfKjy+fVEbqC2s2j6DWqE4FBdn7bc5TJg+eSfDYlw7LD3urF4b1/smzaRi9HmXlqNyhPrydaEBgUwG8HYpk8egXJ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M5VFRETEt5QREhEREcn51BESERERv6WhMREREbFya2hMREREJMdTRkhEREQsTNN/bqiojJCIiIj4LWWERERExEpzhERERERyPmWERERExEo3VBQRERHJ+ZQREhERESu3rhoTERERyfGUERIRERErzRESERERyfmUERIRERELU3OERERERHI+ZYRERETESnOERERERHI+dYRERETEb2loTERERKz0o6siIiIiOZ8yQiIiImJl6vJ5ERERkRxPGSERERGxMDVHSERERCTnU0ZIRERErDRHSERERCTnU0ZIRERELDRHSERERMQPKCMkIiIiVpojJCIiIpLzGaZp+s9AoIiIiMgllBESERERv6WOkIiIiPgtdYRERETEb6kjJCIiIn5LHSERERHxW+oIiYiIiN9SR0hERET8ljpCIiIi4rfUERIRERG/pY7QDVizZg2tWrWiRYsWLFiwwNfheN25c+do06YNR48e9XUoXjdt2jRat25N69atGT9+vK/D8bopU6bQqlUrWrduzZw5c3wdjs+89tprjBgxwtdheF337t1p3bo17du3p3379vz444++DsmrNm/eTKdOnbjvvvt4+eWXfR2OZDL96Op1io2NZfLkySxfvpygoCC6du3KXXfdxe233+7r0Lzixx9/ZOTIkRw+fNjXoXjd9u3b2bZtGytWrMAwDPr06cOmTZto3ry5r0Pziq+//pqvvvqK1atX43Q6adWqFY0aNaJs2bK+Ds2roqOjWbFiBY0bN/Z1KF5lmiaHDx/ms88+w273v4+MI0eOMHr0aJYuXUqhQoXo2bMnW7ZsoVGjRr4OTTKJMkLXafv27dSpU4f8+fMTGhpKy5YtWb9+va/D8polS5YwevRoIiIifB2K14WHhzNixAiCgoIIDAzktttu49ixY74Oy2tq167NvHnzsNvtnDx5EpfLRWhoqK/D8qrTp08zefJk+vXr5+tQvO7XX38FoHfv3rRr14758+f7OCLv2rRpE61ataJo0aIEBgYyefJkqlat6uuwJBP5X/f+H4qLiyM8PDx9OSIigl27dvkwIu8aO3asr0PwmXLlyqX///Dhw3z88ccsWrTIhxF5X2BgIG+++SazZ8/m3nvvpUiRIr4OyatGjRrF0KFDiYmJ8XUoXpeYmEjdunV54YUXcDgc9OjRgzJlylC/fn1fh+YVv//+O4GBgfTr14+YmBgaN27MkCFDfB2WZCJlhK6T2+3GMIz0ZdM0LcuS8x08eJDevXvz9NNPc+utt/o6HK8bPHgw0dHRxMTEsGTJEl+H4zVLly6lWLFi1K1b19eh+ET16tUZP348efPmpWDBgnTu3JktW7b4OiyvcblcREdH88orr7B48WJ27drFihUrfB2WZCJ1hK5T0aJFiY+PT1+Oj4/3y2Eif7Vz504effRRhg0bRseOHX0djlf98ssv7N27F4CQkBBatGjB/v37fRyV93z00Ud8+eWXtG/fnjfffJPNmzfzyiuv+Dosr/n222+Jjo5OXzZN06/mChUuXJi6detSsGBBcuXKxT333ONXowH+QB2h61SvXj2io6NJSEjg/PnzbNy4kYYNG/o6LPGCmJgYBgwYwMSJE2ndurWvw/G6o0ePMnLkSNLS0khLS+PTTz+lZs2avg7La+bMmcPatWtZtWoVgwcPpmnTpjz33HO+Dstrzp49y/jx40lNTeXcuXOsWLHCby4UAGjSpAnbtm0jMTERl8vF1q1bqVSpkq/DkkzkP936f6lIkSIMHTqUHj164HA46Ny5M1WqVPF1WOIFs2bNIjU1lXHjxqWv69q1Kw899JAPo/KeRo0asWvXLjp06EBAQAAtWrTwyw6hv2rSpAk//vgjHTp0wO12061bN6pXr+7rsLymatWq9OnTh27duuFwOKhfvz7333+/r8OSTGSYpmn6OggRERERX9DQmIiIiPgtdYRERETEb6kjJCIiIn5LHSERERHxW+oIiYiIiN9SR0hERET8ljpCIiIi4rfUERKR63LffffRsGFDDh486OtQREQyjTpCInJd1q5dy6233sqGDRt8HYqISKZRR0hErktAQAA1a9b0qx9cFZGcT781JiLXJSUlhY8++gj9Ko+I5CTKCInIdZk8eTIRERH88ccfJCUl+TocEZFMoY6QiFzT999/z8cff8zUqVPJmzevJkyLSI6hjpCIXFVqairPPfcc//3vf8mfPz+RkZHs27fP12GJiGQKdYRE5KqmTJlCtWrVaNKkCQCRkZGaMC0iOYY6QiJyRbt27WL9+vU899xz6esqVqyojJCI5BiGqUtARERExE8pIyQiIiJ+Sx0hERER8VvqCImIiIjfUkdIRERE/JY6QiIiIuK31BESERERv6WOkIiIiPgtdYRERETEb/0/bI9SAHtlVuYAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter10_53_0.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAJgCAYAAABmwww9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABukklEQVR4nO3deZyN9fvH8dd9zuxjZmwzY6ssFRJChOyK7EspKYqQbFlSkqWQFFmisoSska+sCUVK2Ula7FL2GcsYZpg5c879++P4DXfGFnOOmfN+Ph7zeMx9z+fc93XNfZ8z17nuz33GME3TRERERMQH2bwdgIiIiIi3qBASERERn6VCSERERHyWCiERERHxWSqERERExGepEBIRERGfpUJI5A41ePBgGjVqRKNGjXjwwQepXbt26vKFCxdualvbt2+nf//+V/35rl27KFy4MBMmTLjVsEVEMhRDnyMkcuerUaMGo0ePpnjx4v/p8V999RXLly9n/Pjxaf58wIABJCQksGnTJlauXImfn9+thCsikmHo1U4kA5o7dy5ffPEFLpeLrFmz0q9fPwoVKsTmzZsZOnQoLpcLgJdffpkSJUrw0UcfcfbsWd58803ee+89y7bOnTvH4sWLmTt3Ljt37mT58uXUq1cPgJSUFIYNG8bq1aux2+2UKlWKAQMGYLPZ0lw/fvx4Tp8+ndp9GjNmTOpyy5YtiYiIYP/+/Tz77LMUL16cYcOGkZycTGxsLBUrVmTIkCEAfP/994waNQqXy0VISAjvvPMO33//PXv37uXDDz8EYPPmzQwePJgFCxZ46LcuIpmRCiGRDGbjxo0sWLCAmTNnEhwczE8//UTnzp355ptvGDNmDK1bt6ZevXrs3LmTOXPmULt2bbp27cry5cuvKIIAFi5cSP78+SlUqBCNGzfm888/Ty2EZs2axR9//MHChQsJCAigR48eLF26lPj4+DTXX094eHjquB49etC1a1ceeeQREhISqFmzJr///ju5cuWiV69eTJs2jQceeIAVK1YwfPhw3n//fWrVqkVcXBxZs2blyy+/pHnz5rf3lysiPkeFkEgGs3r1av7++29LERAfH09cXBx16tRh4MCBrFq1iooVK9KjR4/rbm/27Nk8/fTTADRs2JARI0bwyy+/UKpUKdauXUujRo0ICgoCYNSoUQB06NAhzfVjxoy55r4efvjh1O+HDh3Kjz/+yLhx49i/fz9JSUkkJiaydetW7rvvPh544AEAatWqRa1atQCoVq0aCxcupHHjxvz0008MGDDgBn5jIiJXp0JIJINxuVw0atSIXr16pS7HxMQQERFB8+bNqV69Oj///DNr1qxh7NixLFu27Krb2rx5M3v27OGzzz5jypQpAPj7+/P5559TqlSpK+YKnThxApfLddX1hmFw+bRDh8NhGRcSEpL6/fPPP0/hwoWpXLkyderU4ddff8U0Tex2O4ZhpI4zTZNdu3ZRpEgRnnvuOd5++238/PyoVasWoaGhN/nbExGx0l1jIhlMpUqV+Prrr4mJiQHgiy++4IUXXgCgefPm7Nixg6ZNmzJo0CDi4+OJjY3FbreTkpJyxba++OILGjVqxA8//MCqVatYtWoV48aN49tvv+XIkSNUqFCBJUuWkJycjMvl4u233+brr7++6vps2bLxxx9/YJom586d4/vvv08zh/j4eH777Tdee+01atWqxbFjx/jnn39wuVyULFmSffv2sWfPHgBWrlyZWvSVLl0am83GpEmTdFlMRG4LdYREMphKlSrRrl072rRpg2EYZMmShbFjx2IYBq+99hpDhgxh1KhRGIZB586dyZcvH06nk48//pjOnTszduxYAE6dOsWKFSuYN2+eZfsVKlTgoYceYvr06bz22mscPnyYpk2bYpom5cqVo2XLlhiGkeb68+fPs2bNGmrVqkV0dDTlypUjrRtTw8PDad++PU2aNCEkJITo6GhKly7N33//TYUKFRg+fDhvvPEGTqeTLFmyMHLkyNTHNm3alKVLl1KkSJH0/UWLiE/Q7fMikmGkpKTQuXNnGjZsSN26db0djohkAro0JiIZwt69e6lQoQLZsmXjiSee8HY4IpJJqCMkIiIiPksdIREREfFZKoRERETEZ6kQEhEREZ+VIW+ff6JkP2+HIF5inDzj7RC8Kvn+3N4OwasMp29PafTfe9TbIXhPcJC3I/Cqb/YO8+j+XMfu99i+bLl2e2xfae7fq3sXERER8aIM2RESERGR9OPC5bF9ebsj4+39i4iIiHiNOkIiIiJi4TQ91xHydiGijpCIiIj4LG8XYiIiInKHceE7d2iqIyQiIiI+Sx0hERERsfDkXWPepo6QiIiI+Cx1hERERMTCaWqOkIiIiEimp46QiIiIWOiuMREREREfoEJI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ANYu287Cy26vvdPFxSXywbCvGfB2E/z87Bw9EsfQoYu5//5c9HytLi+3n0zjxmWIjo6gUqX7qVTp0h2BvV77gviLncCMKi4ukWFDl9B/YFP38T98mveHLOb+wrno0aseHdpOonHTMkRFR/Bo5cI8WvnSPJHXe8xi3Ccr6dajDhOntAPg5zW7+Op/m7yVzk05c/IcI3vM5K0JL10691+d7j73h7egc633r/n4iQPn02XoM3y68k3g4rn/2WoPRH57nDmVwMg3vuStsS3d+f9zkuG9ZnPfg/l4dUgzOjccec3HzxzzLR0HNObTpT2x+9lY8812ls3Z6KHo5XYxTDOt2SG33/Hjx1m3bh0xMTG4XC5y5cpFhQoViI6OvultPVGyXzpEKBmBcfLM9QdlYsn35/Z2CF5lOH3o427T4L/3qLdD8J7gIG9H4FXf7B3m0f1t+ie/x/ZV9u4DHttXWjx211h0dDSNGzf21O5ERERErkufLC0iIiIWd8LdXJ6iD1QUERERn6WOkIiIiFjcCXdzeYo6QiIiIuKzVAiJiIiIz9KlMREREbFwmr7TJ/GdTEVERET+RR0hERERsXD5UJ/EdzIVERER+Rd1hERERMRCt8+LiIiI+AB1hERERMRCd42JiIiI+AB1hERERMTCpTlCIiIiIpmfOkIiIiJi4fShPonvZCoiIiLyL+oIiYiIiIXuGhMRERHxAeoIiYiIiIX+15iIiIiID1AhJCIiIj5Ll8ZERETEwmnqAxVFREREMj11hERERMRCH6goIiIi4gPUERIRERELlz5QUURERCTzU0dIRERELDRHSERERMQHqCMkIiIiFvocIREREREfoI6QiIiIWPjSP13NkIXQO4tmeDsEr4lzBXs7BK+K9/H8DyXn8HYIXvVA0CFvh+BVyWaGfMm+LYIMh7dD8LJh3g4g0/LdZ5WIiIikyanPERIRERHJ/NQREhEREQsXumtMREREJNNTISQiIiI+S5fGRERExEKTpUVERER8gDpCIiIiYqF/uioiIiLiA9QREhEREQuX/umqiIiISOanjpCIiIhYaI6QiIiIiA9QR0hEREQsXPocIREREZHMTx0hERERsXDqn66KiIiIZH7qCImIiIiF5giJiIiI+AB1hERERMRCc4REREREfIAKIREREfFZujQmIiIiFposLSIiIuID1BESERERC6c6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oI6QiIiIWPnQJCF1hERERMRnqSMkIiIiFpojJCIiIuID1BESERERC1NzhEREREQyP3WERERExEJzhERERER8gDpCIiIiYqWOkIiIiEjmp0JIREREfJYujYmIiIiFbp8XERER8QHqCImIiIiVOkIiIiIimZ8KIREREbEwTcNjXzdj8eLF1K1bl1q1ajFz5swrfr5//35atmxJw4YNeemllzhz5sx1t6lCSERERO54x48fZ+TIkcyaNYsFCxYwZ84c9u7dm/pz0zR55ZVXaNeuHYsWLaJo0aJMmDDhutvVHCERERGx8uAcofj4eOLj469YHx4eTnh4eOry2rVrKV++PFmzZgWgdu3aLFu2jM6dOwPwxx9/EBISQpUqVQDo0KFDmtv9NxVCIiIi4jVTp05l7NixV6zv3LkzXbp0SV2OiYkhMjIydTkqKort27enLv/zzz/kzJmTPn36sGPHDgoWLEi/fv2uu38VQiIiImLhyX+6+sILL9CkSZMr1l/eDQJwuVwYxqW4TNO0LKekpLBx40ZmzJhB8eLFGTVqFEOHDmXo0KHX3L8KIREREfGaf18Cu5pcuXKxefPm1OXY2FiioqJSlyMjI7nnnnsoXrw4APXr16dr167X3a4mS4uIiIiV6cGvG1SxYkXWrVvHqVOnOH/+PCtWrEidDwRQqlQpTp06xc6dOwFYtWoVxYoVu+521RESERGRO150dDTdu3enVatWOBwOnnrqKUqUKEG7du3o2rUrxYsX5+OPP6Zv376cP3+eXLly8cEHH1x3u4ZpZrz/KOI6dr+3QxAR8bjzZpK3Q/Casy6Ht0Pwqlx5j3h0f/mnve+xfR1o9YbH9pUWXRoTERERn6VLYyIiImKV4a4V/XfqCImIiIjPUiEkIiIiPkuXxkRERMRKl8ZEREREMj91hERERMTKg/9iw9vUERIRERGfpY6QiIiIWGS8j1r+79QREhEREZ+ljpCIiIhYqSMkIiIikvmpIyQiIiJWumtMREREJPNTR0hEREQsDM0REhEREcn81BESERERK3WERERERDI/dYRERETESneNiYiIiGR+KoRERETEZ+nSmIiIiFhpsrSIiIhI5qeOkIiIiFipIyQiIiKS+akjJCIiIlbqCImIiIhkfuoIiYiIiJU+UFFEREQk81NHSERERCwMzRESERERyfzUERIRERErdYRERERE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De9o06ZNlC1bNnV5//79HDx4kKpVq9500OlRCImI3OnSoxDKKNKrEMooVAiln+tezbz77ru5++67efzxx1PXJSYmsnv37pva0eVFEEDBggUpWLDgTW1DREREPOAOuK3dU/7T5wiFhITw0EMP3eZQRERERDxL89tFRETE4k74oENP0SdLi4iIiM9SR0hERESs1BESERERyfzUERIRERErdYREREREMj91hERERMRCd42JiIiI+AB1hERERMTKzID/Rfc/UkdIREREfJY6QiIiImKlOUIiIiIimZ8KIREREfFZujQmIiIiFrp9XkRERMQHqCMkIiIiVuoIiYiIiGR+6giJiIiIheYIiYiIiPgAdYRERETESh0hERERkcxPHSERERGxUkdIREREJPNTR0hEREQsdNeYiIiIiA9QISQiIiI+S4WQiIiI+CzNERIRERErzRESERERyfxUCImIiIjP0qUxERERsdDt8yIiIiI+IEN2hA47z3o7BK85mBLs7RC86qAjh7dD8Ko8fqe9HYJXhdqSvR2CV510hno7BK855czi7RC86hlP71AdIREREZHML0N2hERERCQdqSMkIiIikvmpIyQiIiIWumtMRERExAeoIyQiIiJW6giJiIiIZH7qCImIiIiF5giJiIiI+AB1hERERMRKHSERERGRzE8dIREREbFSR0hEREQk81MhJCIiIj5Ll8ZERETEQrfPi4iIiPgAdYRERETESh0hERERkcxPHSERERGxUkdIREREJPNTR0hEREQsdNeYiIiIiA9QR0hERESs1BESERERyfzUERIRERELzRESERER8QHqCImIiIiVOkIiIiIimZ86QiIiImKljpCIiIhI5qdCSERERHyWCiERERGxMDz4dTMWL15M3bp1qVWrFjNnzrzquNWrV1OjRo0b2qbmCImIiMgd7/jx44wcOZKvvvqKgIAAmjdvziOPPMK9995rGXfixAnef//9G96uOkIiIiJiZXrw6watXbuW8uXLkzVrVkJCQqhduzbLli27Ylzfvn3p3LnzDW9XHaGL1q/3Y9JngTiSoWBBFz17nSc01Dpm/lf+LFwQQGAg3H23iy6vnic83P2zpo2zEBl56Yg+/UwSNR9L8WAGt+bXDQb/m2wnxQH5Cpi06eEk+F/5f7fAxspFNvwDIM/dJs93dpIl/NLPT8bA4Ff9GDgu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sxjUfyWIqHvc7wKXfHKeLNltVGuevvdM5/E7nS7b3b4RvppsIyUFonJDm14uThyDqSPdt8MDrFposGqxkXr8W3Qyrzj+bWvbGfmlM92Of6gtfS43/7LBxuzJ7tvno/OYdHw9meNHDSaOCGDoeHcXaPkCOysW+WGaUPhBF607u2+R79E6kHNnDbLnuPRSen8xF2263v43QyedodcfdJP+2Hjx9vkUyJkbWvUyOHEUZo0yefMT9x/7HxaZ/LjYxM8PQsLg6Y4GufMbXEg0mTbMJPaI+zJTrWcMytVMn4LglDNLumw3ozz3n7l3U7pu/98e6jLSY/vaNqa7x/aVFo8VQv9v7ty5fPPNN0yePPk/byM9CqGMIr0KoYwivQqhjCK9CqGMIr0KoYwiPQqhjCK9CqGMQoVQ+vH4TJZmzZrRrFkzT+9WREREbtQdOkcoPegDD0RERMRnZaB7m0RERMQTDHWERERERDI/FUIiIiLis3RpTERERKx0aUxEREQk81NHSERERCw0WVpERETEB6gjJCIiIlbqCImIiIhkfuoIiYiIiJU6QiIiIiKZnzpCIiIiYqG7xkRERER8gDpCIiIiYqWOkIiIiEjmp46QiIiIWBim77SE1BESERERn6WOkIiIiFj5TkNIHSERERHxXSqERERExGfp0piIiIhY6AMVRURERHyAOkIiIiJipY6QiIiISOanjpCIiIhYaI6QiIiIiA9QR0hERESs1BESERERyfzUERIRERELzRESERER8QHqCImIiIiVOkIiIiIimV+G7Ai1f7ipt0PwnrAs3o7Aq05WiPZ2CF6V7fcz3g7Bq1LCAr0dglf5bd7l7RC8xhYR7u0QvOqZw57dn+YIiYiIiPiADNkREhERkXRk+k5LSB0hERER8VkqhERERMRn6dKYiIiIWGiytIiIiIgPUEdIRERErNQREhEREcn81BESERERC8Pl7Qg8Rx0hERER8VnqCImIiIiV5giJiIiIZH7qCImIiIiFPkdIRERExAeoIyQiIiJW+qerIiIiIpmfOkIiIiJioTlCIiIiIj5AHSERERGxUkdIREREJPNTISQiIiI+S5fGRERExEKTpUVERER8gDpCIiIiYqUPVBQRERHJ/NQREhEREQvNERIRERHxAeoIiYiIiJU6QiIiIiKZnzpCIiIiYqE5QiIiIiI+QB0hERERsXL5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V0a0IiDIH2eKi1EdJ3F0/5193fxyZ04n8OHAhfR7/2n8/O0cPXSaYQPmc1/RPHTv25COz42j4dPliModwaPVivJotaKpj32j41TOnrmzJ0v+25kTZxnReQp9P++AX4AfR/+KZdgrk7jvoXvoNvoFOlUd6O0Qb6u42HiGt/mEfnN7pp7XH7wwlvvLFKTHxFfoULrXVccALP5kBWHZs/DJ5vex2W3s3bqf8T3v7MthlzsTe5YPO0yk38wu+Pn7cfSvGIa1G899pQrQ/ZM2dKzQ76pjAMa9MYtOI1ry2dahuJwufln9J3NHfg3A0Naf0u3jNvj72zl1/AzvPDPam6le15mT5xjZcxZvjW/tfq7/fZLh3WdwX4m7ePWD5nR+Ytg1Hz9x0AK6vPc0n37XG4C1y7azcNIPngj9P3Mf28/oN6Oz+/m+P4Zh7SdwX6n8dP+4DR0r9r/qGIDZHy7h9YntGb/xXQzDYNrg+eze+hdFyxWiSpNyHNx9lJHf9U3d36R+X7Jl5Y0Xl3cMV+acGpAWw0zrQng6OHjwIN999x1///03TqeTnDlzUr16dUqUKHHT26oV0CIdIswYjBL3ezsErzL2H/Z2CF7ljIvzdgheZQsOvv6gTMyW3XfvQHKdjvN2CF61/NxUj+6vTu5OHtvXN0c/9ti+0uKx61J33XUXrVu39tTuRERE5L+6A+bueIrPfo6QiIiIyJ37kaciIiLiHeoIiYiIiGR+KoRERETEZ+nSmIiIiFi5dGlMREREJNNTR0hEREQsTNN3PlBRHSERERHxWeoIiYiIiJXmCImIiIhkfuoIiYiIiJU+UFFEREQk81NHSERERKxcumtMREREJNNTR0hERESsNEdIREREJPNTR0hEREQsTM0REhEREcn81BESERERK80REhEREcn8VAiJiIiIz9KlMREREbHSP10VERERyfzUERIRERErU7fPi4iIiGR66giJiIiIhak5QiIiIiKZnzpCIiIiYqU5QiIiIiKZnzpCIiIiYqE5QiIiIiI+QB0hERERsdIcIREREZHMzzBN03cuBIqIiIhcRh0hERER8VkqhERERMRnqRASERERn6VCSERERHyWCiERERHxWSqERERExGepEBIRERGfpUJIREREfJYKIREREfFZKoRuwuLFi6lbty61atVi5syZ3g7H486dO0f9+vU5dOiQt0PxuLFjx1KvXj3q1avHBx984O1wPG706NHUrVuXevXqMWXKFG+H4zXvv/8+vXv39nYYHteyZUvq1atHo0aNaNSoEb/++qu3Q/KoVatW0bRpU+rUqcPgwYO9HY7cZvqnqzfo+PHjjBw5kq+++oqAgACaN2/OI488wr333uvt0Dzi119/pW/fvhw4cMDboXjc2rVr+emnn5g/fz6GYdC2bVu+/fZbHn/8cW+H5hEbN25k/fr1LFq0iJSUFOrWrUvVqlUpWLCgt0PzqHXr1jF//nyqVavm7VA8yjRNDhw4wPfff4+fn+/9yTh48CADBgxg7ty55MiRgxdeeIEffviBqlWrejs0uU3UEbpBa9eupXz58mTNmpWQkBBq167NsmXLvB2Wx3z55ZcMGDCAqKgob4ficZGRkfTu3ZuAgAD8/f0pVKgQR44c8XZYHlOuXDmmTZuGn58fJ0+exOl0EhIS4u2wPCouLo6RI0fSoUMHb4ficfv37wegTZs2NGzYkBkzZng5Is/69ttvqVu3Lrly5cLf35+RI0dSsmRJb4clt5Hvlff/UUxMDJGRkanLUVFRbN++3YsReda7777r7RC85r777kv9/sCBA3zzzTd88cUXXozI8/z9/fnoo4+YPHkyTzzxBNHR0d4OyaP69+9P9+7dOXr0qLdD8bj4+HgqVKhAv379cDgctGrVigIFCvDoo496OzSP+Pvvv/H396dDhw4cPXqUatWq0a1bN2+HJbeROkI3yOVyYRhG6rJpmpZlyfz27NlDmzZteP3118mfP7+3w/G4rl27sm7dOo4ePcqXX37p7XA8Zu7cueTOnZsKFSp4OxSvKFWqFB988AFhYWFkz56dp556ih9++MHbYXmM0+lk3bp1DBkyhDlz5rB9+3bmz5/v7bDkNlIhdINy5cpFbGxs6nJsbKxPXibyVVu2bOHFF1+kZ8+eNGnSxNvheNS+ffvYsWMHAMHBwdSqVYtdu3Z5OSrPWbp0KT///DONGjXio48+YtWqVQwZMsTbYXnM5s2bWbduXeqyaZo+NVcoZ86cVKhQgezZsxMUFMRjjz3mU1cDfIEKoRtUsWJF1q1bx6lTpzh//jwrVqygSpUq3g5LPODo0aN06tSJ4cOHU69ePW+H43GHDh2ib9++JCcnk5yczMqVKylTpoy3w/KYKVOmsGTJEhYuXEjXrl2pUaMGffr08XZYHnP27Fk++OADkpKSOHfuHPPnz/eZGwUAqlevzk8//UR8fDxOp5M1a9ZQrFgxb4clt5HvlPW3KDo6mu7du9OqVSscDgdPPfUUJUqU8HZY4gGTJk0iKSmJoUOHpq5r3rw5zz77rBej8pyqVauyfft2GjdujN1up1atWj5ZEPqq6tWr8+uvv9K4cWNcLhctWrSgVKlS3g7LY0qWLEnbtm1p0aIFDoeDRx99lCeffNLbYcltZJimaXo7CBERERFv0KUxERER8VkqhERERMRnqRASERERn6VCSERERHyWCiERERHxWSqERERExGepEBIRERGfpUJIRG5InTp1qFKlCnv27PF2KCIit40KIRG5IUuWLCF//vwsX77c26GIiNw2KoRE5IbY7XbKlCnjU/9wVUQyP/2vMRG5IRcuXGDp0qXov/KISGaijpCI3JCRI0cSFRXFP//8Q0JCgrfDERG5LVQIich1/fLLL3zzzTeMGTOGsLAwTZgWkUxDhZCIXFNSUhJ9+vThnXfeIWvWrBQpUoSdO3d6OywRkdtChZCIXNPo0aN56KGHqF69OgBFihTRhGkRyTRUCInIVW3fvp1ly5bRp0+f1HVFixZVR0hEMg3D1C0gIiIi4qPUERIRERGfpUJIREREfJYKIREREfFZKoRERETEZ6kQEhEREZ+lQkhERER8lgohERER8VkqhERERMRn/R+vvMdqLozH8AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter10_53_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# optional\n", + "# visual representation of grid search\n", + "# uses seaborn heatmap, could probably do this in matplotlib\n", + "import seaborn as sns\n", + "\n", + "sns.set()\n", + "\n", + "train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "\n", + "for i in range(len(eta_vals)):\n", + " for j in range(len(lmbd_vals)):\n", + " dnn = DNN_scikit[i][j]\n", + " \n", + " train_pred = dnn.predict(X_train) \n", + " test_pred = dnn.predict(X_test)\n", + "\n", + " train_accuracy[i][j] = accuracy_score(Y_train, train_pred)\n", + " test_accuracy[i][j] = accuracy_score(Y_test, test_pred)\n", + "\n", + " \n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(train_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Training Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()\n", + "\n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(test_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Test Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Building neural networks in Tensorflow and Keras\n", + "\n", + "Now we want to build on the experience gained from our neural network implementation in NumPy and scikit-learn\n", + "and use it to construct a neural network in Tensorflow. Once we have constructed a neural network in NumPy\n", + "and Tensorflow, building one in Keras is really quite trivial, though the performance may suffer. \n", + "\n", + "In our previous example we used only one hidden layer, and in this we will use two. From this it should be quite\n", + "clear how to build one using an arbitrary number of hidden layers, using data structures such as Python lists or\n", + "NumPy arrays.\n", + "\n", + "\n", + "Tensorflow is an open source library machine learning library\n", + "developed by the Google Brain team for internal use. It was released\n", + "under the Apache 2.0 open source license in November 9, 2015.\n", + "\n", + "Tensorflow is a computational framework that allows you to construct\n", + "machine learning models at different levels of abstraction, from\n", + "high-level, object-oriented APIs like Keras, down to the C++ kernels\n", + "that Tensorflow is built upon. The higher levels of abstraction are\n", + "simpler to use, but less flexible, and our choice of implementation\n", + "should reflect the problems we are trying to solve.\n", + "\n", + "[Tensorflow uses](https://www.tensorflow.org/guide/graphs) so-called graphs to represent your computation\n", + "in terms of the dependencies between individual operations, such that you first build a Tensorflow *graph*\n", + "to represent your model, and then create a Tensorflow *session* to run the graph.\n", + "\n", + "In this guide we will analyze the same data as we did in our NumPy and\n", + "scikit-learn tutorial, gathered from the MNIST database of images. We\n", + "will give an introduction to the lower level Python Application\n", + "Program Interfaces (APIs), and see how we use them to build our graph.\n", + "Then we will build (effectively) the same graph in Keras, to see just\n", + "how simple solving a machine learning problem can be.\n", + "\n", + "To install tensorflow on Unix/Linux systems, use pip as" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (2357089093.py, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41046/2357089093.py\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m pip3 install tensorflow\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "source": [ + "pip3 install tensorflow" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and/or if you use **anaconda**, just write (or install from the graphical user interface)\n", + "(current release of CPU-only TensorFlow)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "conda create -n tf tensorflow\n", + "conda activate tf" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To install the current release of GPU TensorFlow" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "conda create -n tf-gpu tensorflow-gpu\n", + "conda activate tf-gpu" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Keras is a high level [neural network](https://en.wikipedia.org/wiki/Application_programming_interface)\n", + "that supports Tensorflow, CTNK and Theano as backends. \n", + "If you have Anaconda installed you may run the following command" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "conda install keras" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can look up the [instructions here](https://keras.io/) for more information.\n", + "\n", + "We will to a large extent use **keras** in this course. \n", + "\n", + "\n", + "Let us look again at the MINST data set." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# import necessary packages\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import tensorflow as tf\n", + "from sklearn import datasets\n", + "\n", + "\n", + "# ensure the same random numbers appear every time\n", + "np.random.seed(0)\n", + "\n", + "# display images in notebook\n", + "%matplotlib inline\n", + "plt.rcParams['figure.figsize'] = (12,12)\n", + "\n", + "\n", + "# download MNIST dataset\n", + "digits = datasets.load_digits()\n", + "\n", + "# define inputs and labels\n", + "inputs = digits.images\n", + "labels = digits.target\n", + "\n", + "print(\"inputs = (n_inputs, pixel_width, pixel_height) = \" + str(inputs.shape))\n", + "print(\"labels = (n_inputs) = \" + str(labels.shape))\n", + "\n", + "\n", + "# flatten the image\n", + "# the value -1 means dimension is inferred from the remaining dimensions: 8x8 = 64\n", + "n_inputs = len(inputs)\n", + "inputs = inputs.reshape(n_inputs, -1)\n", + "print(\"X = (n_inputs, n_features) = \" + str(inputs.shape))\n", + "\n", + "\n", + "# choose some random images to display\n", + "indices = np.arange(n_inputs)\n", + "random_indices = np.random.choice(indices, size=5)\n", + "\n", + "for i, image in enumerate(digits.images[random_indices]):\n", + " plt.subplot(1, 5, i+1)\n", + " plt.axis('off')\n", + " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')\n", + " plt.title(\"Label: %d\" % digits.target[random_indices[i]])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from tensorflow.keras.layers import Input\n", + "from tensorflow.keras.models import Sequential #This allows appending layers to existing models\n", + "from tensorflow.keras.layers import Dense #This allows defining the characteristics of a particular layer\n", + "from tensorflow.keras import optimizers #This allows using whichever optimiser we want (sgd,adam,RMSprop)\n", + "from tensorflow.keras import regularizers #This allows using whichever regularizer we want (l1,l2,l1_l2)\n", + "from tensorflow.keras.utils import to_categorical #This allows using categorical cross entropy as the cost function\n", + "\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "# one-hot representation of labels\n", + "labels = to_categorical(labels)\n", + "\n", + "# split into train and test data\n", + "train_size = 0.8\n", + "test_size = 1 - train_size\n", + "X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size,\n", + " test_size=test_size)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "\n", + "epochs = 100\n", + "batch_size = 100\n", + "n_neurons_layer1 = 100\n", + "n_neurons_layer2 = 50\n", + "n_categories = 10\n", + "eta_vals = np.logspace(-5, 1, 7)\n", + "lmbd_vals = np.logspace(-5, 1, 7)\n", + "def create_neural_network_keras(n_neurons_layer1, n_neurons_layer2, n_categories, eta, lmbd):\n", + " model = Sequential()\n", + " model.add(Dense(n_neurons_layer1, activation='sigmoid', kernel_regularizer=regularizers.l2(lmbd)))\n", + " model.add(Dense(n_neurons_layer2, activation='sigmoid', kernel_regularizer=regularizers.l2(lmbd)))\n", + " model.add(Dense(n_categories, activation='softmax'))\n", + " \n", + " sgd = optimizers.SGD(lr=eta)\n", + " model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])\n", + " \n", + " return model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "DNN_keras = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", + " \n", + "for i, eta in enumerate(eta_vals):\n", + " for j, lmbd in enumerate(lmbd_vals):\n", + " DNN = create_neural_network_keras(n_neurons_layer1, n_neurons_layer2, n_categories,\n", + " eta=eta, lmbd=lmbd)\n", + " DNN.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, verbose=0)\n", + " scores = DNN.evaluate(X_test, Y_test)\n", + " \n", + " DNN_keras[i][j] = DNN\n", + " \n", + " print(\"Learning rate = \", eta)\n", + " print(\"Lambda = \", lmbd)\n", + " print(\"Test accuracy: %.3f\" % scores[1])\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# optional\n", + "# visual representation of grid search\n", + "# uses seaborn heatmap, could probably do this in matplotlib\n", + "import seaborn as sns\n", + "\n", + "sns.set()\n", + "\n", + "train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "\n", + "for i in range(len(eta_vals)):\n", + " for j in range(len(lmbd_vals)):\n", + " DNN = DNN_keras[i][j]\n", + "\n", + " train_accuracy[i][j] = DNN.evaluate(X_train, Y_train)[1]\n", + " test_accuracy[i][j] = DNN.evaluate(X_test, Y_test)[1]\n", + "\n", + " \n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(train_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Training Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()\n", + "\n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(test_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Test Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The Breast Cancer Data, now with Keras" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "\n", + "import tensorflow as tf\n", + "from tensorflow.keras.layers import Input\n", + "from tensorflow.keras.models import Sequential #This allows appending layers to existing models\n", + "from tensorflow.keras.layers import Dense #This allows defining the characteristics of a particular layer\n", + "from tensorflow.keras import optimizers #This allows using whichever optimiser we want (sgd,adam,RMSprop)\n", + "from tensorflow.keras import regularizers #This allows using whichever regularizer we want (l1,l2,l1_l2)\n", + "from tensorflow.keras.utils import to_categorical #This allows using categorical cross entropy as the cost function\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from sklearn.model_selection import train_test_split as splitter\n", + "from sklearn.datasets import load_breast_cancer\n", + "import pickle\n", + "import os \n", + "\n", + "\n", + "\"\"\"Load breast cancer dataset\"\"\"\n", + "\n", + "np.random.seed(0) #create same seed for random number every time\n", + "\n", + "cancer=load_breast_cancer() #Download breast cancer dataset\n", + "\n", + "inputs=cancer.data #Feature matrix of 569 rows (samples) and 30 columns (parameters)\n", + "outputs=cancer.target #Label array of 569 rows (0 for benign and 1 for malignant)\n", + "labels=cancer.feature_names[0:30]\n", + "\n", + "print('The content of the breast cancer dataset is:') #Print information about the datasets\n", + "print(labels)\n", + "print('-------------------------')\n", + "print(\"inputs = \" + str(inputs.shape))\n", + "print(\"outputs = \" + str(outputs.shape))\n", + "print(\"labels = \"+ str(labels.shape))\n", + "\n", + "x=inputs #Reassign the Feature and Label matrices to other variables\n", + "y=outputs\n", + "\n", + "#%% \n", + "\n", + "# Visualisation of dataset (for correlation analysis)\n", + "\n", + "plt.figure()\n", + "plt.scatter(x[:,0],x[:,2],s=40,c=y,cmap=plt.cm.Spectral)\n", + "plt.xlabel('Mean radius',fontweight='bold')\n", + "plt.ylabel('Mean perimeter',fontweight='bold')\n", + "plt.show()\n", + "\n", + "plt.figure()\n", + "plt.scatter(x[:,5],x[:,6],s=40,c=y, cmap=plt.cm.Spectral)\n", + "plt.xlabel('Mean compactness',fontweight='bold')\n", + "plt.ylabel('Mean concavity',fontweight='bold')\n", + "plt.show()\n", + "\n", + "\n", + "plt.figure()\n", + "plt.scatter(x[:,0],x[:,1],s=40,c=y,cmap=plt.cm.Spectral)\n", + "plt.xlabel('Mean radius',fontweight='bold')\n", + "plt.ylabel('Mean texture',fontweight='bold')\n", + "plt.show()\n", + "\n", + "plt.figure()\n", + "plt.scatter(x[:,2],x[:,1],s=40,c=y,cmap=plt.cm.Spectral)\n", + "plt.xlabel('Mean perimeter',fontweight='bold')\n", + "plt.ylabel('Mean compactness',fontweight='bold')\n", + "plt.show()\n", + "\n", + "\n", + "# Generate training and testing datasets\n", + "\n", + "#Select features relevant to classification (texture,perimeter,compactness and symmetery) \n", + "#and add to input matrix\n", + "\n", + "temp1=np.reshape(x[:,1],(len(x[:,1]),1))\n", + "temp2=np.reshape(x[:,2],(len(x[:,2]),1))\n", + "X=np.hstack((temp1,temp2)) \n", + "temp=np.reshape(x[:,5],(len(x[:,5]),1))\n", + "X=np.hstack((X,temp)) \n", + "temp=np.reshape(x[:,8],(len(x[:,8]),1))\n", + "X=np.hstack((X,temp)) \n", + "\n", + "X_train,X_test,y_train,y_test=splitter(X,y,test_size=0.1) #Split datasets into training and testing\n", + "\n", + "y_train=to_categorical(y_train) #Convert labels to categorical when using categorical cross entropy\n", + "y_test=to_categorical(y_test)\n", + "\n", + "del temp1,temp2,temp\n", + "\n", + "# %%\n", + "\n", + "# Define tunable parameters\"\n", + "\n", + "eta=np.logspace(-3,-1,3) #Define vector of learning rates (parameter to SGD optimiser)\n", + "lamda=0.01 #Define hyperparameter\n", + "n_layers=2 #Define number of hidden layers in the model\n", + "n_neuron=np.logspace(0,3,4,dtype=int) #Define number of neurons per layer\n", + "epochs=100 #Number of reiterations over the input data\n", + "batch_size=100 #Number of samples per gradient update\n", + "\n", + "# %%\n", + "\n", + "\"\"\"Define function to return Deep Neural Network model\"\"\"\n", + "\n", + "def NN_model(inputsize,n_layers,n_neuron,eta,lamda):\n", + " model=Sequential() \n", + " for i in range(n_layers): #Run loop to add hidden layers to the model\n", + " if (i==0): #First layer requires input dimensions\n", + " model.add(Dense(n_neuron,activation='relu',kernel_regularizer=regularizers.l2(lamda),input_dim=inputsize))\n", + " else: #Subsequent layers are capable of automatic shape inferencing\n", + " model.add(Dense(n_neuron,activation='relu',kernel_regularizer=regularizers.l2(lamda)))\n", + " model.add(Dense(2,activation='softmax')) #2 outputs - ordered and disordered (softmax for prob)\n", + " sgd=optimizers.SGD(lr=eta)\n", + " model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy'])\n", + " return model\n", + "\n", + " \n", + "Train_accuracy=np.zeros((len(n_neuron),len(eta))) #Define matrices to store accuracy scores as a function\n", + "Test_accuracy=np.zeros((len(n_neuron),len(eta))) #of learning rate and number of hidden neurons for \n", + "\n", + "for i in range(len(n_neuron)): #run loops over hidden neurons and learning rates to calculate \n", + " for j in range(len(eta)): #accuracy scores \n", + " DNN_model=NN_model(X_train.shape[1],n_layers,n_neuron[i],eta[j],lamda)\n", + " DNN_model.fit(X_train,y_train,epochs=epochs,batch_size=batch_size,verbose=1)\n", + " Train_accuracy[i,j]=DNN_model.evaluate(X_train,y_train)[1]\n", + " Test_accuracy[i,j]=DNN_model.evaluate(X_test,y_test)[1]\n", + " \n", + "\n", + "def plot_data(x,y,data,title=None):\n", + "\n", + " # plot results\n", + " fontsize=16\n", + "\n", + "\n", + " fig = plt.figure()\n", + " ax = fig.add_subplot(111)\n", + " cax = ax.matshow(data, interpolation='nearest', vmin=0, vmax=1)\n", + " \n", + " cbar=fig.colorbar(cax)\n", + " cbar.ax.set_ylabel('accuracy (%)',rotation=90,fontsize=fontsize)\n", + " cbar.set_ticks([0,.2,.4,0.6,0.8,1.0])\n", + " cbar.set_ticklabels(['0%','20%','40%','60%','80%','100%'])\n", + "\n", + " # put text on matrix elements\n", + " for i, x_val in enumerate(np.arange(len(x))):\n", + " for j, y_val in enumerate(np.arange(len(y))):\n", + " c = \"${0:.1f}\\\\%$\".format( 100*data[j,i]) \n", + " ax.text(x_val, y_val, c, va='center', ha='center')\n", + "\n", + " # convert axis vaues to to string labels\n", + " x=[str(i) for i in x]\n", + " y=[str(i) for i in y]\n", + "\n", + "\n", + " ax.set_xticklabels(['']+x)\n", + " ax.set_yticklabels(['']+y)\n", + "\n", + " ax.set_xlabel('$\\\\mathrm{learning\\\\ rate}$',fontsize=fontsize)\n", + " ax.set_ylabel('$\\\\mathrm{hidden\\\\ neurons}$',fontsize=fontsize)\n", + " if title is not None:\n", + " ax.set_title(title)\n", + "\n", + " plt.tight_layout()\n", + "\n", + " plt.show()\n", + " \n", + "plot_data(eta,n_neuron,Train_accuracy, 'training')\n", + "plot_data(eta,n_neuron,Test_accuracy, 'testing')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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 interconnected),\n", + "but even in a simple FFNN you can change the number of layers, the\n", + "number of neurons per layer, the type of activation function to use in\n", + "each layer, the weight initialization logic, the stochastic gradient optmized and much more. How do you\n", + "know what 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", + "\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. \n", + "\n", + "For many problems you can start with just one or two hidden layers and it will work just fine.\n", + "For the MNIST data set you ca easily get a high accuracy using just one hidden layer with a\n", + "few hundred neurons.\n", + "You can reach for this data set above 98% accuracy using two hidden layers with the same total amount of\n", + "neurons, in roughly the same amount of training time. \n", + "\n", + "For more complex problems, you can gradually\n", + "ramp up the number of hidden layers, until you start overfitting the training set. Very complex tasks, such\n", + "as large image classification or speech recognition, typically require networks with dozens of layers\n", + "and they need a huge amount\n", + "of training data. However, you will rarely have to train such networks from scratch: it is much more\n", + "common to reuse parts of a pretrained state-of-the-art network that performs a similar task.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Which activation function should I use?\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", + "\n", + "Unfortunately for us, the gradients often get smaller and smaller as the\n", + "algorithm progresses down to the first hidden layers. As a result, the\n", + "GD update leaves the lower layer connection weights\n", + "virtually unchanged, and training never converges to a good\n", + "solution. This is known in the literature as \n", + "**the vanishing gradients problem**. \n", + "\n", + "In other cases, the opposite can happen, namely the the gradients can grow bigger and\n", + "bigger. The result is that many of the layers get large updates of the \n", + "weights the\n", + "algorithm diverges. This is the **exploding gradients problem**, which is\n", + "mostly encountered in recurrent neural networks. More generally, deep\n", + "neural networks suffer from unstable gradients, different layers may\n", + "learn at widely different speeds\n", + "\n", + "\n", + "\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. \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).\n", + "\n", + "\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.\n", + "\n", + "\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).\n", + "\n", + "\n", + "## 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.\n", + "\n", + "To solve this problem, nowadays practitioners use a variant of the ReLU\n", + "function, such as the leaky ReLU discussed above or the so-called\n", + "exponential linear unit (ELU) function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "metadata": {}, + "source": [ + "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\n", + "performance is an issue, then you may opt for the leaky ReLU function over the \n", + "ELU function If you don’t\n", + "want to tweak yet another hyperparameter, you may just use the default\n", + "$\\alpha$ of $0.01$ for the leaky ReLU, and $1$ for ELU. If you have\n", + "spare time and computing power, you can use cross-validation or\n", + "bootstrap to evaluate other activation functions.\n", + "\n", + "\n", + "\n", + "In most cases you can use the ReLU activation function in the hidden layers (or one of its variants).\n", + "\n", + "It is a bit faster to compute than other activation functions, and the 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.\n", + "\n", + "## Batch Normalization\n", + "\n", + "Batch Normalization\n", + "aims to address the vanishing/exploding gradients problems, and more generally the problem that the\n", + "distribution of each layer’s inputs changes during training, as the parameters of the previous layers change.\n", + "\n", + "The technique consists of adding an operation in the model just before the activation function of each\n", + "layer, simply zero-centering and normalizing the inputs, then scaling and shifting the result using two new\n", + "parameters per layer (one for scaling, the other for shifting). In other words, this operation lets the model\n", + "learn the optimal scale and mean of the inputs for each layer.\n", + "In order to zero-center and normalize the inputs, the algorithm needs to estimate the inputs’ mean and\n", + "standard deviation. It does so by evaluating the mean and standard deviation of the inputs over the current\n", + "mini-batch, from this the name batch normalization.\n", + "\n", + "## Dropout\n", + "\n", + "It is a fairly simple algorithm: at every training step, every neuron (including the input neurons but\n", + "excluding the output neurons) has a probability $p$ of being temporarily dropped out, meaning it will be\n", + "entirely ignored during this training step, but it may be active during the next step.\n", + "\n", + "The\n", + "hyperparameter $p$ is called the dropout rate, and it is typically set to 50%. After training, the neurons are not dropped anymore.\n", + " It is viewed as one of the most popular regularization techniques.\n", + "\n", + "## Gradient Clipping\n", + "\n", + "A popular technique to lessen the exploding gradients problem is to simply clip the gradients during\n", + "backpropagation so that they never 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.\n", + "\n", + "\n", + "## A top-down perspective on Neural networks\n", + "\n", + "\n", + "The first thing we would like to do is divide the data into two or three\n", + "parts. A training set, a validation or dev (development) set, and a\n", + "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", + "\n", + "* Estimate optimal error rate\n", + "\n", + "* Minimize underfitting (bias) on training data set.\n", + "\n", + "* Make sure you are not overfitting.\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.\n", + "\n", + "\n", + "## 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). \n", + "\n", + "Here we list some of the important limitations of supervised neural network based models. \n", + "\n", + "\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.\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.\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": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter10.py b/doc/LectureNotes/_build/jupyter_execute/chapter10.py new file mode 100644 index 000000000..fe19214e6 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter10.py @@ -0,0 +1,1656 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Building a Feed Forward Neural Network +# +# We are now gong to develop an example based on the MNIST data +# base. This is a classification problem and we need to use our +# cross-entropy function we discussed in connection with logistic +# regression. The cross-entropy defines our cost function for the +# classificaton problems with neural networks. +# +# In binary classification with two classes $(0, 1)$ we define the +# logistic/sigmoid function as the probability that a particular input +# is in class $0$ or $1$. This is possible because the logistic +# function takes any input from the real numbers and inputs a number +# between 0 and 1, and can therefore be interpreted as a probability. It +# also has other nice properties, such as a derivative that is simple to +# calculate. +# +# For an input $\boldsymbol{a}$ from the hidden layer, the probability that the input $\boldsymbol{x}$ +# is in class 0 or 1 is just. We let $\theta$ represent the unknown weights and biases to be adjusted by our equations). The variable $x$ +# represents our activation values $z$. We have + +# $$ +# P(y = 0 \mid \hat{x}, \hat{\theta}) = \frac{1}{1 + \exp{(- \hat{x}})} , +# $$ + +# and + +# $$ +# P(y = 1 \mid \hat{x}, \hat{\theta}) = 1 - P(y = 0 \mid \hat{x}, \hat{\theta}) , +# $$ + +# where $y \in \{0, 1\}$ and $\hat{\theta}$ represents the weights and biases +# of our network. +# +# +# +# ## Defining the cost function +# +# Our cost function is given as (see the Logistic regression lectures) + +# $$ +# \mathcal{C}(\hat{\theta}) = - \ln P(\mathcal{D} \mid \hat{\theta}) = - \sum_{i=1}^n +# y_i \ln[P(y_i = 0)] + (1 - y_i) \ln [1 - P(y_i = 0)] = \sum_{i=1}^n \mathcal{L}_i(\hat{\theta}) . +# $$ + +# This last equality means that we can interpret our *cost* function as a sum over the *loss* function +# for each point in the dataset $\mathcal{L}_i(\hat{\theta})$. +# The negative sign is just so that we can think about our algorithm as minimizing a positive number, rather +# than maximizing a negative number. +# +# In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: +# +# $y = 5 \quad \rightarrow \quad \hat{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$ and +# +# +# $y = 1 \quad \rightarrow \quad \hat{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$ +# +# +# i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset (numbers from $0$ to $9$).. +# +# If $\hat{x}_i$ is the $i$-th input (image), $y_{ic}$ refers to the $c$-th component of the $i$-th +# output vector $\hat{y}_i$. +# The probability of $\hat{x}_i$ being in class $c$ will be given by the softmax function: + +# $$ +# P(y_{ic} = 1 \mid \hat{x}_i, \hat{\theta}) = \frac{\exp{((\hat{a}_i^{hidden})^T \hat{w}_c)}} +# {\sum_{c'=0}^{C-1} \exp{((\hat{a}_i^{hidden})^T \hat{w}_{c'})}} , +# $$ + +# which reduces to the logistic function in the binary case. +# The likelihood of this $C$-class classifier +# is now given as: + +# $$ +# P(\mathcal{D} \mid \hat{\theta}) = \prod_{i=1}^n \prod_{c=0}^{C-1} [P(y_{ic} = 1)]^{y_{ic}} . +# $$ + +# Again we take the negative log-likelihood to define our cost function: + +# $$ +# \mathcal{C}(\hat{\theta}) = - \log{P(\mathcal{D} \mid \hat{\theta})}. +# $$ + +# See the logistic regression lectures for a full definition of the cost function. +# +# The back propagation equations need now only a small change, namely the definition of a new cost function. We are thus ready to use the same equations as before! +# +# +# ### Example: binary classification problem +# +# As an example of the above, relevant for project 2 as well, let us consider a binary class. As discussed in our logistic regression lectures, we defined a cost function in terms of the parameters $\beta$ as + +# $$ +# \mathcal{C}(\hat{\beta}) = - \sum_{i=1}^n \left(y_i\log{p(y_i \vert x_i,\hat{\beta})}+(1-y_i)\log{1-p(y_i \vert x_i,\hat{\beta})}\right), +# $$ + +# where we had defined the logistic (sigmoid) function + +# $$ +# p(y_i =1\vert x_i,\hat{\beta})=\frac{\exp{(\beta_0+\beta_1 x_i)}}{1+\exp{(\beta_0+\beta_1 x_i)}}, +# $$ + +# and + +# $$ +# p(y_i =0\vert x_i,\hat{\beta})=1-p(y_i =1\vert x_i,\hat{\beta}). +# $$ + +# The parameters $\hat{\beta}$ were defined using a minimization method like gradient descent or Newton-Raphson's method. +# +# Now we replace $x_i$ with the activation $z_i^l$ for a given layer $l$ and the outputs as $y_i=a_i^l=f(z_i^l)$, with $z_i^l$ now being a function of the weights $w_{ij}^l$ and biases $b_i^l$. +# We have then + +# $$ +# a_i^l = y_i = \frac{\exp{(z_i^l)}}{1+\exp{(z_i^l)}}, +# $$ + +# with + +# $$ +# z_i^l = \sum_{j}w_{ij}^l a_j^{l-1}+b_i^l, +# $$ + +# where the superscript $l-1$ indicates that these are the outputs from layer $l-1$. +# Our cost function at the final layer $l=L$ is now + +# $$ +# \mathcal{C}(\hat{W}) = - \sum_{i=1}^n \left(t_i\log{a_i^L}+(1-t_i)\log{(1-a_i^L)}\right), +# $$ + +# where we have defined the targets $t_i$. The derivatives of the cost function with respect to the output $a_i^L$ are then easily calculated and we get + +# $$ +# \frac{\partial \mathcal{C}(\hat{W})}{\partial a_i^L} = \frac{a_i^L-t_i}{a_i^L(1-a_i^L)}. +# $$ + +# In case we use another activation function than the logistic one, we need to evaluate other derivatives. +# +# +# +# ### The Softmax function +# +# In case we employ the more general case given by the Softmax equation, we need to evaluate the derivative of the activation function with respect to the activation $z_i^l$, that is we need + +# $$ +# \frac{\partial f(z_i^l)}{\partial w_{jk}^l} = +# \frac{\partial f(z_i^l)}{\partial z_j^l} \frac{\partial z_j^l}{\partial w_{jk}^l}= \frac{\partial f(z_i^l)}{\partial z_j^l}a_k^{l-1}. +# $$ + +# For the Softmax function we have + +# $$ +# f(z_i^l) = \frac{\exp{(z_i^l)}}{\sum_{m=1}^K\exp{(z_m^l)}}. +# $$ + +# Its derivative with respect to $z_j^l$ gives + +# $$ +# \frac{\partial f(z_i^l)}{\partial z_j^l}= f(z_i^l)\left(\delta_{ij}-f(z_j^l)\right), +# $$ + +# which in case of the simply binary model reduces to having $i=j$. +# +# +# ## Developing a code for doing neural networks with back propagation +# +# +# One can identify a set of key steps when using neural networks to solve supervised learning problems: +# +# 1. Collect and pre-process data +# +# 2. Define model and architecture +# +# 3. Choose cost function and optimizer +# +# 4. Train the model +# +# 5. Evaluate model performance on test data +# +# 6. Adjust hyperparameters (if necessary, network architecture) +# +# ### Collect and pre-process data +# +# Here we will be using the MNIST dataset, which is readily available through the **scikit-learn** +# package. You may also find it for example [here](http://yann.lecun.com/exdb/mnist/). +# The *MNIST* (Modified National Institute of Standards and Technology) database is a large database +# of handwritten digits that is commonly used for training various image processing systems. +# The MNIST dataset consists of 70 000 images of size $28\times 28$ pixels, each labeled from 0 to 9. +# The scikit-learn dataset we will use consists of a selection of 1797 images of size $8\times 8$ collected and processed from this database. +# +# To feed data into a feed-forward neural network we need to represent +# the inputs as a design/feature matrix $X = (n_{inputs}, n_{features})$. Each +# row represents an *input*, in this case a handwritten digit, and +# each column represents a *feature*, in this case a pixel. The +# correct answers, also known as *labels* or *targets* are +# represented as a 1D array of integers +# $Y = (n_{inputs}) = (5, 3, 1, 8,...)$. +# +# As an example, say we want to build a neural network using supervised learning to predict Body-Mass Index (BMI) from +# measurements of height (in m) +# and weight (in kg). If we have measurements of 5 people the design/feature matrix could be for example: +# +# $$ X = \begin{bmatrix} +# 1.85 & 81\\ +# 1.71 & 65\\ +# 1.95 & 103\\ +# 1.55 & 42\\ +# 1.63 & 56 +# \end{bmatrix} ,$$ +# +# and the targets would be: +# +# $$ Y = (23.7, 22.2, 27.1, 17.5, 21.1) $$ +# +# Since each input image is a 2D matrix, we need to flatten the image +# (i.e. "unravel" the 2D matrix into a 1D array) to turn the data into a +# design/feature matrix. This means we lose all spatial information in the +# image, such as locality and translational invariance. More complicated +# architectures such as Convolutional Neural Networks can take advantage +# of such information, and are most commonly applied when analyzing +# images. + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +# import necessary packages +import numpy as np +import matplotlib.pyplot as plt +from sklearn import datasets + + +# ensure the same random numbers appear every time +np.random.seed(0) + +# display images in notebook +get_ipython().run_line_magic('matplotlib', 'inline') +plt.rcParams['figure.figsize'] = (12,12) + + +# download MNIST dataset +digits = datasets.load_digits() + +# define inputs and labels +inputs = digits.images +labels = digits.target + +print("inputs = (n_inputs, pixel_width, pixel_height) = " + str(inputs.shape)) +print("labels = (n_inputs) = " + str(labels.shape)) + + +# flatten the image +# the value -1 means dimension is inferred from the remaining dimensions: 8x8 = 64 +n_inputs = len(inputs) +inputs = inputs.reshape(n_inputs, -1) +print("X = (n_inputs, n_features) = " + str(inputs.shape)) + + +# choose some random images to display +indices = np.arange(n_inputs) +random_indices = np.random.choice(indices, size=5) + +for i, image in enumerate(digits.images[random_indices]): + plt.subplot(1, 5, i+1) + plt.axis('off') + plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') + plt.title("Label: %d" % digits.target[random_indices[i]]) +plt.show() + + +# ### Train and test datasets +# +# Performing analysis before partitioning the dataset is a major error, that can lead to incorrect conclusions. +# +# We will reserve $80 \%$ of our dataset for training and $20 \%$ for testing. +# +# It is important that the train and test datasets are drawn randomly from our dataset, to ensure +# no bias in the sampling. +# Say you are taking measurements of weather data to predict the weather in the coming 5 days. +# You don't want to train your model on measurements taken from the hours 00.00 to 12.00, and then test it on data +# collected from 12.00 to 24.00. + +# In[2]: + + +from sklearn.model_selection import train_test_split + +# one-liner from scikit-learn library +train_size = 0.8 +test_size = 1 - train_size +X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size, + test_size=test_size) + +# equivalently in numpy +def train_test_split_numpy(inputs, labels, train_size, test_size): + n_inputs = len(inputs) + inputs_shuffled = inputs.copy() + labels_shuffled = labels.copy() + + np.random.shuffle(inputs_shuffled) + np.random.shuffle(labels_shuffled) + + train_end = int(n_inputs*train_size) + X_train, X_test = inputs_shuffled[:train_end], inputs_shuffled[train_end:] + Y_train, Y_test = labels_shuffled[:train_end], labels_shuffled[train_end:] + + return X_train, X_test, Y_train, Y_test + +#X_train, X_test, Y_train, Y_test = train_test_split_numpy(inputs, labels, train_size, test_size) + +print("Number of training images: " + str(len(X_train))) +print("Number of test images: " + str(len(X_test))) + + +# ### Define model and architecture +# +# Our simple feed-forward neural network will consist of an *input* layer, a single *hidden* layer and an *output* layer. The activation $y$ of each neuron is a weighted sum of inputs, passed through an activation function. In case of the simple perceptron model we have +# +# $$ z = \sum_{i=1}^n w_i a_i ,$$ +# +# $$ y = f(z) ,$$ +# +# where $f$ is the activation function, $a_i$ represents input from neuron $i$ in the preceding layer +# and $w_i$ is the weight to input $i$. +# The activation of the neurons in the input layer is just the features (e.g. a pixel value). +# +# The simplest activation function for a neuron is the *Heaviside* function: +# +# $$ f(z) = +# \begin{cases} +# 1, & z > 0\\ +# 0, & \text{otherwise} +# \end{cases} +# $$ +# +# A feed-forward neural network with this activation is known as a *perceptron*. +# For a binary classifier (i.e. two classes, 0 or 1, dog or not-dog) we can also use this in our output layer. +# This activation can be generalized to $k$ classes (using e.g. the *one-against-all* strategy), +# and we call these architectures *multiclass perceptrons*. +# +# However, it is now common to use the terms Single Layer Perceptron (SLP) (1 hidden layer) and +# Multilayer Perceptron (MLP) (2 or more hidden layers) to refer to feed-forward neural networks with any activation function. +# +# Typical choices for activation functions include the sigmoid function, hyperbolic tangent, and Rectified Linear Unit (ReLU). +# We will be using the sigmoid function $\sigma(x)$: +# +# $$ f(x) = \sigma(x) = \frac{1}{1 + e^{-x}} ,$$ +# +# which is inspired by probability theory (see logistic regression) and was most commonly used until about 2011. See the discussion below concerning other activation functions. +# +# ### Layers +# +# * Input +# +# Since each input image has 8x8 = 64 pixels or features, we have an input layer of 64 neurons. +# +# * Hidden layer +# +# We will use 50 neurons in the hidden layer receiving input from the neurons in the input layer. +# Since each neuron in the hidden layer is connected to the 64 inputs we have 64x50 = 3200 weights to the hidden layer. +# +# * Output +# +# If we were building a binary classifier, it would be sufficient with a single neuron in the output layer, +# which could output 0 or 1 according to the Heaviside function. This would be an example of a *hard* classifier, meaning it outputs the class of the input directly. However, if we are dealing with noisy data it is often beneficial to use a *soft* classifier, which outputs the probability of being in class 0 or 1. +# +# For a soft binary classifier, we could use a single neuron and interpret the output as either being the probability of being in class 0 or the probability of being in class 1. Alternatively we could use 2 neurons, and interpret each neuron as the probability of being in each class. +# +# Since we are doing multiclass classification, with 10 categories, it is natural to use 10 neurons in the output layer. We number the neurons $j = 0,1,...,9$. The activation of each output neuron $j$ will be according to the *softmax* function: +# +# $$ P(\text{class $j$} \mid \text{input $\hat{a}$}) = \frac{\exp{(\hat{a}^T \hat{w}_j)}} +# {\sum_{c=0}^{9} \exp{(\hat{a}^T \hat{w}_c)}} ,$$ +# +# i.e. each neuron $j$ outputs the probability of being in class $j$ given an input from the hidden layer $\hat{a}$, with $\hat{w}_j$ the weights of neuron $j$ to the inputs. +# The denominator is a normalization factor to ensure the outputs (probabilities) sum up to 1. +# The exponent is just the weighted sum of inputs as before: +# +# $$ z_j = \sum_{i=1}^n w_ {ij} a_i+b_j.$$ +# +# Since each neuron in the output layer is connected to the 50 inputs from the hidden layer we have 50x10 = 500 +# weights to the output layer. +# +# +# Typically weights are initialized with small values distributed around zero, drawn from a uniform +# or normal distribution. Setting all weights to zero means all neurons give the same output, making the network useless. +# +# Adding a bias value to the weighted sum of inputs allows the neural network to represent a greater range +# of values. Without it, any input with the value 0 will be mapped to zero (before being passed through the activation). The bias unit has an output of 1, and a weight to each neuron $j$, $b_j$: +# +# $$ z_j = \sum_{i=1}^n w_ {ij} a_i + b_j.$$ +# +# The bias weights $\hat{b}$ are often initialized to zero, but a small value like $0.01$ ensures all neurons have some output which can be backpropagated in the first training cycle. + +# In[3]: + + +# building our neural network + +n_inputs, n_features = X_train.shape +n_hidden_neurons = 50 +n_categories = 10 + +# we make the weights normally distributed using numpy.random.randn + +# weights and bias in the hidden layer +hidden_weights = np.random.randn(n_features, n_hidden_neurons) +hidden_bias = np.zeros(n_hidden_neurons) + 0.01 + +# weights and bias in the output layer +output_weights = np.random.randn(n_hidden_neurons, n_categories) +output_bias = np.zeros(n_categories) + 0.01 + + +# ### Feed-forward pass +# +# Denote $F$ the number of features, $H$ the number of hidden neurons and $C$ the number of categories. +# For each input image we calculate a weighted sum of input features (pixel values) to each neuron $j$ in the hidden layer $l$: +# +# $$ z_{j}^{l} = \sum_{i=1}^{F} w_{ij}^{l} x_i + b_{j}^{l},$$ +# +# this is then passed through our activation function +# +# $$ a_{j}^{l} = f(z_{j}^{l}) .$$ +# +# We calculate a weighted sum of inputs (activations in the hidden layer) to each neuron $j$ in the output layer: +# +# $$ z_{j}^{L} = \sum_{i=1}^{H} w_{ij}^{L} a_{i}^{l} + b_{j}^{L}.$$ +# +# Finally we calculate the output of neuron $j$ in the output layer using the softmax function: +# +# $$ a_{j}^{L} = \frac{\exp{(z_j^{L})}} +# {\sum_{c=0}^{C-1} \exp{(z_c^{L})}} .$$ +# +# +# Since our data has the dimensions $X = (n_{inputs}, n_{features})$ and our weights to the hidden +# layer have the dimensions +# $W_{hidden} = (n_{features}, n_{hidden})$, +# we can easily feed the network all our training data in one go by taking the matrix product +# +# $$ X W^{h} = (n_{inputs}, n_{hidden}),$$ +# +# and obtain a matrix that holds the weighted sum of inputs to the hidden layer +# for each input image and each hidden neuron. +# We also add the bias to obtain a matrix of weighted sums to the hidden layer $Z^{h}$: +# +# $$ \hat{z}^{l} = \hat{X} \hat{W}^{l} + \hat{b}^{l} ,$$ +# +# meaning the same bias (1D array with size equal number of hidden neurons) is added to each input image. +# This is then passed through the activation: +# +# $$ \hat{a}^{l} = f(\hat{z}^l) .$$ +# +# This is fed to the output layer: +# +# $$ \hat{z}^{L} = \hat{a}^{L} \hat{W}^{L} + \hat{b}^{L} .$$ +# +# Finally we receive our output values for each image and each category by passing it through the softmax function: +# +# $$ output = softmax (\hat{z}^{L}) = (n_{inputs}, n_{categories}) .$$ + +# In[4]: + + +# setup the feed-forward pass, subscript h = hidden layer + +def sigmoid(x): + return 1/(1 + np.exp(-x)) + +def feed_forward(X): + # weighted sum of inputs to the hidden layer + z_h = np.matmul(X, hidden_weights) + hidden_bias + # activation in the hidden layer + a_h = sigmoid(z_h) + + # weighted sum of inputs to the output layer + z_o = np.matmul(a_h, output_weights) + output_bias + # softmax output + # axis 0 holds each input and axis 1 the probabilities of each category + exp_term = np.exp(z_o) + probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + + return probabilities + +probabilities = feed_forward(X_train) +print("probabilities = (n_inputs, n_categories) = " + str(probabilities.shape)) +print("probability that image 0 is in category 0,1,2,...,9 = \n" + str(probabilities[0])) +print("probabilities sum up to: " + str(probabilities[0].sum())) +print() + +# we obtain a prediction by taking the class with the highest likelihood +def predict(X): + probabilities = feed_forward(X) + return np.argmax(probabilities, axis=1) + +predictions = predict(X_train) +print("predictions = (n_inputs) = " + str(predictions.shape)) +print("prediction for image 0: " + str(predictions[0])) +print("correct label for image 0: " + str(Y_train[0])) + + +# ### Choose cost function and optimizer +# +# To measure how well our neural network is doing we need to introduce a cost function. +# We will call the function that gives the error of a single sample output the *loss* function, and the function +# that gives the total error of our network across all samples the *cost* function. +# A typical choice for multiclass classification is the *cross-entropy* loss, also known as the negative log likelihood. +# +# In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: +# +# $$ y = 5 \quad \rightarrow \quad \hat{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$$ +# +# +# $$ y = 1 \quad \rightarrow \quad \hat{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$$ +# +# +# i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset. +# +# Let $y_{ic}$ denote the $c$-th component of the $i$-th one-hot vector. +# We define the cost function $\mathcal{C}$ as a sum over the cross-entropy loss for each point $\hat{x}_i$ in the dataset. +# +# In the one-hot representation only one of the terms in the loss function is non-zero, namely the +# probability of the correct category $c'$ +# (i.e. the category $c'$ such that $y_{ic'} = 1$). This means that the cross entropy loss only punishes you for how wrong +# you got the correct label. The probability of category $c$ is given by the softmax function. The vector $\hat{\theta}$ represents the parameters of our network, i.e. all the weights and biases. +# +# +# +# ### Optimizing the cost function +# +# The network is trained by finding the weights and biases that minimize the cost function. One of the most widely used classes of methods is *gradient descent* and its generalizations. The idea behind gradient descent +# is simply to adjust the weights in the direction where the gradient of the cost function is large and negative. This ensures we flow toward a *local* minimum of the cost function. +# Each parameter $\theta$ is iteratively adjusted according to the rule +# +# $$ \theta_{i+1} = \theta_i - \eta \nabla \mathcal{C}(\theta_i) ,$$ +# +# where $\eta$ is known as the *learning rate*, which controls how big a step we take towards the minimum. +# This update can be repeated for any number of iterations, or until we are satisfied with the result. +# +# A simple and effective improvement is a variant called *Batch Gradient Descent*. +# Instead of calculating the gradient on the whole dataset, we calculate an approximation of the gradient +# on a subset of the data called a *minibatch*. +# If there are $N$ data points and we have a minibatch size of $M$, the total number of batches +# is $N/M$. +# We denote each minibatch $B_k$, with $k = 1, 2,...,N/M$. The gradient then becomes: +# +# $$ \nabla \mathcal{C}(\theta) = \frac{1}{N} \sum_{i=1}^N \nabla \mathcal{L}_i(\theta) \quad \rightarrow \quad +# \frac{1}{M} \sum_{i \in B_k} \nabla \mathcal{L}_i(\theta) ,$$ +# +# i.e. instead of averaging the loss over the entire dataset, we average over a minibatch. +# +# This has two important benefits: +# 1. Introducing stochasticity decreases the chance that the algorithm becomes stuck in a local minima. +# +# 2. It significantly speeds up the calculation, since we do not have to use the entire dataset to calculate the gradient. +# +# The various optmization methods, with codes and algorithms, are discussed in our lectures on [Gradient descent approaches](https://compphysics.github.io/MachineLearning/doc/pub/Splines/html/Splines-bs.html). +# +# +# ### Regularization +# +# It is common to add an extra term to the cost function, proportional +# to the size of the weights. This is equivalent to constraining the +# size of the weights, so that they do not grow out of control. +# Constraining the size of the weights means that the weights cannot +# grow arbitrarily large to fit the training data, and in this way +# reduces *overfitting*. +# +# We will measure the size of the weights using the so called *L2-norm*, meaning our cost function becomes: +# +# $$ \mathcal{C}(\theta) = \frac{1}{N} \sum_{i=1}^N \mathcal{L}_i(\theta) \quad \rightarrow \quad +# \frac{1}{N} \sum_{i=1}^N \mathcal{L}_i(\theta) + \lambda \lvert \lvert \hat{w} \rvert \rvert_2^2 +# = \frac{1}{N} \sum_{i=1}^N \mathcal{L}(\theta) + \lambda \sum_{ij} w_{ij}^2,$$ +# +# i.e. we sum up all the weights squared. The factor $\lambda$ is known as a regularization parameter. +# +# +# In order to train the model, we need to calculate the derivative of +# the cost function with respect to every bias and weight in the +# network. In total our network has $(64 + 1)\times 50=3250$ weights in +# the hidden layer and $(50 + 1)\times 10=510$ weights to the output +# layer ($+1$ for the bias), and the gradient must be calculated for +# every parameter. We use the *backpropagation* algorithm discussed +# above. This is a clever use of the chain rule that allows us to +# calculate the gradient efficently. +# +# +# ### Matrix multiplication +# +# To more efficently train our network these equations are implemented using matrix operations. +# The error in the output layer is calculated simply as, with $\hat{t}$ being our targets, +# +# $$ \delta_L = \hat{t} - \hat{y} = (n_{inputs}, n_{categories}) .$$ +# +# The gradient for the output weights is calculated as +# +# $$ \nabla W_{L} = \hat{a}^T \delta_L = (n_{hidden}, n_{categories}) ,$$ +# +# where $\hat{a} = (n_{inputs}, n_{hidden})$. This simply means that we are summing up the gradients for each input. +# Since we are going backwards we have to transpose the activation matrix. +# +# The gradient with respect to the output bias is then +# +# $$ \nabla \hat{b}_{L} = \sum_{i=1}^{n_{inputs}} \delta_L = (n_{categories}) .$$ +# +# The error in the hidden layer is +# +# $$ \Delta_h = \delta_L W_{L}^T \circ f'(z_{h}) = \delta_L W_{L}^T \circ a_{h} \circ (1 - a_{h}) = (n_{inputs}, n_{hidden}) ,$$ +# +# where $f'(a_{h})$ is the derivative of the activation in the hidden layer. The matrix products mean +# that we are summing up the products for each neuron in the output layer. The symbol $\circ$ denotes +# the *Hadamard product*, meaning element-wise multiplication. +# +# This again gives us the gradients in the hidden layer: +# +# $$ \nabla W_{h} = X^T \delta_h = (n_{features}, n_{hidden}) ,$$ +# +# $$ \nabla b_{h} = \sum_{i=1}^{n_{inputs}} \delta_h = (n_{hidden}) .$$ + +# In[5]: + + +# to categorical turns our integer vector into a onehot representation +from sklearn.metrics import accuracy_score + +# one-hot in numpy +def to_categorical_numpy(integer_vector): + n_inputs = len(integer_vector) + n_categories = np.max(integer_vector) + 1 + onehot_vector = np.zeros((n_inputs, n_categories)) + onehot_vector[range(n_inputs), integer_vector] = 1 + + return onehot_vector + +#Y_train_onehot, Y_test_onehot = to_categorical(Y_train), to_categorical(Y_test) +Y_train_onehot, Y_test_onehot = to_categorical_numpy(Y_train), to_categorical_numpy(Y_test) + +def feed_forward_train(X): + # weighted sum of inputs to the hidden layer + z_h = np.matmul(X, hidden_weights) + hidden_bias + # activation in the hidden layer + a_h = sigmoid(z_h) + + # weighted sum of inputs to the output layer + z_o = np.matmul(a_h, output_weights) + output_bias + # softmax output + # axis 0 holds each input and axis 1 the probabilities of each category + exp_term = np.exp(z_o) + probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + + # for backpropagation need activations in hidden and output layers + return a_h, probabilities + +def backpropagation(X, Y): + a_h, probabilities = feed_forward_train(X) + + # error in the output layer + error_output = probabilities - Y + # error in the hidden layer + error_hidden = np.matmul(error_output, output_weights.T) * a_h * (1 - a_h) + + # gradients for the output layer + output_weights_gradient = np.matmul(a_h.T, error_output) + output_bias_gradient = np.sum(error_output, axis=0) + + # gradient for the hidden layer + hidden_weights_gradient = np.matmul(X.T, error_hidden) + hidden_bias_gradient = np.sum(error_hidden, axis=0) + + return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient + +print("Old accuracy on training data: " + str(accuracy_score(predict(X_train), Y_train))) + +eta = 0.01 +lmbd = 0.01 +for i in range(1000): + # calculate gradients + dWo, dBo, dWh, dBh = backpropagation(X_train, Y_train_onehot) + + # regularization term gradients + dWo += lmbd * output_weights + dWh += lmbd * hidden_weights + + # update weights and biases + output_weights -= eta * dWo + output_bias -= eta * dBo + hidden_weights -= eta * dWh + hidden_bias -= eta * dBh + +print("New accuracy on training data: " + str(accuracy_score(predict(X_train), Y_train))) + + +# ## Improving performance +# +# As we can see the network does not seem to be learning at all. It seems to be just guessing the label for each image. +# In order to obtain a network that does something useful, we will have to do a bit more work. +# +# The choice of *hyperparameters* such as learning rate and regularization parameter is hugely influential for the performance of the network. Typically a *grid-search* is performed, wherein we test different hyperparameters separated by orders of magnitude. For example we could test the learning rates $\eta = 10^{-6}, 10^{-5},...,10^{-1}$ with different regularization parameters $\lambda = 10^{-6},...,10^{-0}$. +# +# Next, we haven't implemented minibatching yet, which introduces stochasticity and is though to act as an important regularizer on the weights. We call a feed-forward + backward pass with a minibatch an *iteration*, and a full training period +# going through the entire dataset ($n/M$ batches) an *epoch*. +# +# If this does not improve network performance, you may want to consider altering the network architecture, adding more neurons or hidden layers. +# Andrew Ng goes through some of these considerations in this [video](https://youtu.be/F1ka6a13S9I). You can find a summary of the video [here](https://kevinzakka.github.io/2016/09/26/applying-deep-learning/). +# +# +# It is very natural to think of the network as an object, with specific instances of the network +# being realizations of this object with different hyperparameters. An implementation using Python classes provides a clean structure and interface, and the full implementation of our neural network is given below. + +# In[6]: + + +class NeuralNetwork: + def __init__( + self, + X_data, + Y_data, + n_hidden_neurons=50, + n_categories=10, + epochs=10, + batch_size=100, + eta=0.1, + lmbd=0.0): + + self.X_data_full = X_data + self.Y_data_full = Y_data + + self.n_inputs = X_data.shape[0] + self.n_features = X_data.shape[1] + self.n_hidden_neurons = n_hidden_neurons + self.n_categories = n_categories + + self.epochs = epochs + self.batch_size = batch_size + self.iterations = self.n_inputs // self.batch_size + self.eta = eta + self.lmbd = lmbd + + self.create_biases_and_weights() + + def create_biases_and_weights(self): + self.hidden_weights = np.random.randn(self.n_features, self.n_hidden_neurons) + self.hidden_bias = np.zeros(self.n_hidden_neurons) + 0.01 + + self.output_weights = np.random.randn(self.n_hidden_neurons, self.n_categories) + self.output_bias = np.zeros(self.n_categories) + 0.01 + + def feed_forward(self): + # feed-forward for training + self.z_h = np.matmul(self.X_data, self.hidden_weights) + self.hidden_bias + self.a_h = sigmoid(self.z_h) + + self.z_o = np.matmul(self.a_h, self.output_weights) + self.output_bias + + exp_term = np.exp(self.z_o) + self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + + def feed_forward_out(self, X): + # feed-forward for output + z_h = np.matmul(X, self.hidden_weights) + self.hidden_bias + a_h = sigmoid(z_h) + + z_o = np.matmul(a_h, self.output_weights) + self.output_bias + + exp_term = np.exp(z_o) + probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + return probabilities + + def backpropagation(self): + error_output = self.probabilities - self.Y_data + error_hidden = np.matmul(error_output, self.output_weights.T) * self.a_h * (1 - self.a_h) + + self.output_weights_gradient = np.matmul(self.a_h.T, error_output) + self.output_bias_gradient = np.sum(error_output, axis=0) + + self.hidden_weights_gradient = np.matmul(self.X_data.T, error_hidden) + self.hidden_bias_gradient = np.sum(error_hidden, axis=0) + + if self.lmbd > 0.0: + self.output_weights_gradient += self.lmbd * self.output_weights + self.hidden_weights_gradient += self.lmbd * self.hidden_weights + + self.output_weights -= self.eta * self.output_weights_gradient + self.output_bias -= self.eta * self.output_bias_gradient + self.hidden_weights -= self.eta * self.hidden_weights_gradient + self.hidden_bias -= self.eta * self.hidden_bias_gradient + + def predict(self, X): + probabilities = self.feed_forward_out(X) + return np.argmax(probabilities, axis=1) + + def predict_probabilities(self, X): + probabilities = self.feed_forward_out(X) + return probabilities + + def train(self): + data_indices = np.arange(self.n_inputs) + + for i in range(self.epochs): + for j in range(self.iterations): + # pick datapoints with replacement + chosen_datapoints = np.random.choice( + data_indices, size=self.batch_size, replace=False + ) + + # minibatch training data + self.X_data = self.X_data_full[chosen_datapoints] + self.Y_data = self.Y_data_full[chosen_datapoints] + + self.feed_forward() + self.backpropagation() + + +# ## Evaluate model performance on test data +# +# To measure the performance of our network we evaluate how well it does it data it has never seen before, i.e. the test data. +# We measure the performance of the network using the *accuracy* score. +# The accuracy is as you would expect just the number of images correctly labeled divided by the total number of images. A perfect classifier will have an accuracy score of $1$. +# +# $$ \text{Accuracy} = \frac{\sum_{i=1}^n I(\hat{y}_i = y_i)}{n} ,$$ +# +# where $I$ is the indicator function, $1$ if $\hat{y}_i = y_i$ and $0$ otherwise. + +# In[7]: + + +epochs = 100 +batch_size = 100 + +dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size, + n_hidden_neurons=n_hidden_neurons, n_categories=n_categories) +dnn.train() +test_predict = dnn.predict(X_test) + +# accuracy score from scikit library +print("Accuracy score on test set: ", accuracy_score(Y_test, test_predict)) + +# equivalent in numpy +def accuracy_score_numpy(Y_test, Y_pred): + return np.sum(Y_test == Y_pred) / len(Y_test) + +#print("Accuracy score on test set: ", accuracy_score_numpy(Y_test, test_predict)) + + +# ## Adjust hyperparameters +# +# We now perform a grid search to find the optimal hyperparameters for the network. +# Note that we are only using 1 layer with 50 neurons, and human performance is estimated to be around $98\%$ ($2\%$ error rate). + +# In[8]: + + +eta_vals = np.logspace(-5, 1, 7) +lmbd_vals = np.logspace(-5, 1, 7) +# store the models for later use +DNN_numpy = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) + +# grid search +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size, + n_hidden_neurons=n_hidden_neurons, n_categories=n_categories) + dnn.train() + + DNN_numpy[i][j] = dnn + + test_predict = dnn.predict(X_test) + + print("Learning rate = ", eta) + print("Lambda = ", lmbd) + print("Accuracy score on test set: ", accuracy_score(Y_test, test_predict)) + print() + + +# ## Visualization + +# In[9]: + + +# visual representation of grid search +# uses seaborn heatmap, you can also do this with matplotlib imshow +import seaborn as sns + +sns.set() + +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) + +for i in range(len(eta_vals)): + for j in range(len(lmbd_vals)): + dnn = DNN_numpy[i][j] + + train_pred = dnn.predict(X_train) + test_pred = dnn.predict(X_test) + + train_accuracy[i][j] = accuracy_score(Y_train, train_pred) + test_accuracy[i][j] = accuracy_score(Y_test, test_pred) + + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Test Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + + +# ## scikit-learn implementation +# +# **scikit-learn** focuses more +# on traditional machine learning methods, such as regression, +# clustering, decision trees, etc. As such, it has only two types of +# neural networks: Multi Layer Perceptron outputting continuous values, +# *MPLRegressor*, and Multi Layer Perceptron outputting labels, +# *MLPClassifier*. We will see how simple it is to use these classes. +# +# **scikit-learn** implements a few improvements from our neural network, +# such as early stopping, a varying learning rate, different +# optimization methods, etc. We would therefore expect a better +# performance overall. + +# In[10]: + + +from sklearn.neural_network import MLPClassifier +# store models for later use +DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) + +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic', + alpha=lmbd, learning_rate_init=eta, max_iter=epochs) + dnn.fit(X_train, Y_train) + + DNN_scikit[i][j] = dnn + + print("Learning rate = ", eta) + print("Lambda = ", lmbd) + print("Accuracy score on test set: ", dnn.score(X_test, Y_test)) + print() + + +# ## Visualization + +# In[11]: + + +# optional +# visual representation of grid search +# uses seaborn heatmap, could probably do this in matplotlib +import seaborn as sns + +sns.set() + +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) + +for i in range(len(eta_vals)): + for j in range(len(lmbd_vals)): + dnn = DNN_scikit[i][j] + + train_pred = dnn.predict(X_train) + test_pred = dnn.predict(X_test) + + train_accuracy[i][j] = accuracy_score(Y_train, train_pred) + test_accuracy[i][j] = accuracy_score(Y_test, test_pred) + + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Test Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + + +# ## Building neural networks in Tensorflow and Keras +# +# Now we want to build on the experience gained from our neural network implementation in NumPy and scikit-learn +# and use it to construct a neural network in Tensorflow. Once we have constructed a neural network in NumPy +# and Tensorflow, building one in Keras is really quite trivial, though the performance may suffer. +# +# In our previous example we used only one hidden layer, and in this we will use two. From this it should be quite +# clear how to build one using an arbitrary number of hidden layers, using data structures such as Python lists or +# NumPy arrays. +# +# +# Tensorflow is an open source library machine learning library +# developed by the Google Brain team for internal use. It was released +# under the Apache 2.0 open source license in November 9, 2015. +# +# Tensorflow is a computational framework that allows you to construct +# machine learning models at different levels of abstraction, from +# high-level, object-oriented APIs like Keras, down to the C++ kernels +# that Tensorflow is built upon. The higher levels of abstraction are +# simpler to use, but less flexible, and our choice of implementation +# should reflect the problems we are trying to solve. +# +# [Tensorflow uses](https://www.tensorflow.org/guide/graphs) so-called graphs to represent your computation +# in terms of the dependencies between individual operations, such that you first build a Tensorflow *graph* +# to represent your model, and then create a Tensorflow *session* to run the graph. +# +# In this guide we will analyze the same data as we did in our NumPy and +# scikit-learn tutorial, gathered from the MNIST database of images. We +# will give an introduction to the lower level Python Application +# Program Interfaces (APIs), and see how we use them to build our graph. +# Then we will build (effectively) the same graph in Keras, to see just +# how simple solving a machine learning problem can be. +# +# To install tensorflow on Unix/Linux systems, use pip as + +# In[12]: + + +pip3 install tensorflow + + +# and/or if you use **anaconda**, just write (or install from the graphical user interface) +# (current release of CPU-only TensorFlow) + +# In[ ]: + + +conda create -n tf tensorflow +conda activate tf + + +# To install the current release of GPU TensorFlow + +# In[ ]: + + +conda create -n tf-gpu tensorflow-gpu +conda activate tf-gpu + + +# Keras is a high level [neural network](https://en.wikipedia.org/wiki/Application_programming_interface) +# that supports Tensorflow, CTNK and Theano as backends. +# If you have Anaconda installed you may run the following command + +# In[ ]: + + +conda install keras + + +# You can look up the [instructions here](https://keras.io/) for more information. +# +# We will to a large extent use **keras** in this course. +# +# +# Let us look again at the MINST data set. + +# In[ ]: + + +# import necessary packages +import numpy as np +import matplotlib.pyplot as plt +import tensorflow as tf +from sklearn import datasets + + +# ensure the same random numbers appear every time +np.random.seed(0) + +# display images in notebook +get_ipython().run_line_magic('matplotlib', 'inline') +plt.rcParams['figure.figsize'] = (12,12) + + +# download MNIST dataset +digits = datasets.load_digits() + +# define inputs and labels +inputs = digits.images +labels = digits.target + +print("inputs = (n_inputs, pixel_width, pixel_height) = " + str(inputs.shape)) +print("labels = (n_inputs) = " + str(labels.shape)) + + +# flatten the image +# the value -1 means dimension is inferred from the remaining dimensions: 8x8 = 64 +n_inputs = len(inputs) +inputs = inputs.reshape(n_inputs, -1) +print("X = (n_inputs, n_features) = " + str(inputs.shape)) + + +# choose some random images to display +indices = np.arange(n_inputs) +random_indices = np.random.choice(indices, size=5) + +for i, image in enumerate(digits.images[random_indices]): + plt.subplot(1, 5, i+1) + plt.axis('off') + plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') + plt.title("Label: %d" % digits.target[random_indices[i]]) +plt.show() + + +# In[ ]: + + +from tensorflow.keras.layers import Input +from tensorflow.keras.models import Sequential #This allows appending layers to existing models +from tensorflow.keras.layers import Dense #This allows defining the characteristics of a particular layer +from tensorflow.keras import optimizers #This allows using whichever optimiser we want (sgd,adam,RMSprop) +from tensorflow.keras import regularizers #This allows using whichever regularizer we want (l1,l2,l1_l2) +from tensorflow.keras.utils import to_categorical #This allows using categorical cross entropy as the cost function + +from sklearn.model_selection import train_test_split + +# one-hot representation of labels +labels = to_categorical(labels) + +# split into train and test data +train_size = 0.8 +test_size = 1 - train_size +X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size, + test_size=test_size) + + +# In[ ]: + + + +epochs = 100 +batch_size = 100 +n_neurons_layer1 = 100 +n_neurons_layer2 = 50 +n_categories = 10 +eta_vals = np.logspace(-5, 1, 7) +lmbd_vals = np.logspace(-5, 1, 7) +def create_neural_network_keras(n_neurons_layer1, n_neurons_layer2, n_categories, eta, lmbd): + model = Sequential() + model.add(Dense(n_neurons_layer1, activation='sigmoid', kernel_regularizer=regularizers.l2(lmbd))) + model.add(Dense(n_neurons_layer2, activation='sigmoid', kernel_regularizer=regularizers.l2(lmbd))) + model.add(Dense(n_categories, activation='softmax')) + + sgd = optimizers.SGD(lr=eta) + model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy']) + + return model + + +# In[ ]: + + +DNN_keras = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) + +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + DNN = create_neural_network_keras(n_neurons_layer1, n_neurons_layer2, n_categories, + eta=eta, lmbd=lmbd) + DNN.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, verbose=0) + scores = DNN.evaluate(X_test, Y_test) + + DNN_keras[i][j] = DNN + + print("Learning rate = ", eta) + print("Lambda = ", lmbd) + print("Test accuracy: %.3f" % scores[1]) + print() + + +# In[ ]: + + +# optional +# visual representation of grid search +# uses seaborn heatmap, could probably do this in matplotlib +import seaborn as sns + +sns.set() + +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) + +for i in range(len(eta_vals)): + for j in range(len(lmbd_vals)): + DNN = DNN_keras[i][j] + + train_accuracy[i][j] = DNN.evaluate(X_train, Y_train)[1] + test_accuracy[i][j] = DNN.evaluate(X_test, Y_test)[1] + + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Test Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + + +# ## The Breast Cancer Data, now with Keras + +# In[ ]: + + + +import tensorflow as tf +from tensorflow.keras.layers import Input +from tensorflow.keras.models import Sequential #This allows appending layers to existing models +from tensorflow.keras.layers import Dense #This allows defining the characteristics of a particular layer +from tensorflow.keras import optimizers #This allows using whichever optimiser we want (sgd,adam,RMSprop) +from tensorflow.keras import regularizers #This allows using whichever regularizer we want (l1,l2,l1_l2) +from tensorflow.keras.utils import to_categorical #This allows using categorical cross entropy as the cost function +import numpy as np +import matplotlib.pyplot as plt +import seaborn as sns +from sklearn.model_selection import train_test_split as splitter +from sklearn.datasets import load_breast_cancer +import pickle +import os + + +"""Load breast cancer dataset""" + +np.random.seed(0) #create same seed for random number every time + +cancer=load_breast_cancer() #Download breast cancer dataset + +inputs=cancer.data #Feature matrix of 569 rows (samples) and 30 columns (parameters) +outputs=cancer.target #Label array of 569 rows (0 for benign and 1 for malignant) +labels=cancer.feature_names[0:30] + +print('The content of the breast cancer dataset is:') #Print information about the datasets +print(labels) +print('-------------------------') +print("inputs = " + str(inputs.shape)) +print("outputs = " + str(outputs.shape)) +print("labels = "+ str(labels.shape)) + +x=inputs #Reassign the Feature and Label matrices to other variables +y=outputs + +#%% + +# Visualisation of dataset (for correlation analysis) + +plt.figure() +plt.scatter(x[:,0],x[:,2],s=40,c=y,cmap=plt.cm.Spectral) +plt.xlabel('Mean radius',fontweight='bold') +plt.ylabel('Mean perimeter',fontweight='bold') +plt.show() + +plt.figure() +plt.scatter(x[:,5],x[:,6],s=40,c=y, cmap=plt.cm.Spectral) +plt.xlabel('Mean compactness',fontweight='bold') +plt.ylabel('Mean concavity',fontweight='bold') +plt.show() + + +plt.figure() +plt.scatter(x[:,0],x[:,1],s=40,c=y,cmap=plt.cm.Spectral) +plt.xlabel('Mean radius',fontweight='bold') +plt.ylabel('Mean texture',fontweight='bold') +plt.show() + +plt.figure() +plt.scatter(x[:,2],x[:,1],s=40,c=y,cmap=plt.cm.Spectral) +plt.xlabel('Mean perimeter',fontweight='bold') +plt.ylabel('Mean compactness',fontweight='bold') +plt.show() + + +# Generate training and testing datasets + +#Select features relevant to classification (texture,perimeter,compactness and symmetery) +#and add to input matrix + +temp1=np.reshape(x[:,1],(len(x[:,1]),1)) +temp2=np.reshape(x[:,2],(len(x[:,2]),1)) +X=np.hstack((temp1,temp2)) +temp=np.reshape(x[:,5],(len(x[:,5]),1)) +X=np.hstack((X,temp)) +temp=np.reshape(x[:,8],(len(x[:,8]),1)) +X=np.hstack((X,temp)) + +X_train,X_test,y_train,y_test=splitter(X,y,test_size=0.1) #Split datasets into training and testing + +y_train=to_categorical(y_train) #Convert labels to categorical when using categorical cross entropy +y_test=to_categorical(y_test) + +del temp1,temp2,temp + +# %% + +# Define tunable parameters" + +eta=np.logspace(-3,-1,3) #Define vector of learning rates (parameter to SGD optimiser) +lamda=0.01 #Define hyperparameter +n_layers=2 #Define number of hidden layers in the model +n_neuron=np.logspace(0,3,4,dtype=int) #Define number of neurons per layer +epochs=100 #Number of reiterations over the input data +batch_size=100 #Number of samples per gradient update + +# %% + +"""Define function to return Deep Neural Network model""" + +def NN_model(inputsize,n_layers,n_neuron,eta,lamda): + model=Sequential() + for i in range(n_layers): #Run loop to add hidden layers to the model + if (i==0): #First layer requires input dimensions + model.add(Dense(n_neuron,activation='relu',kernel_regularizer=regularizers.l2(lamda),input_dim=inputsize)) + else: #Subsequent layers are capable of automatic shape inferencing + model.add(Dense(n_neuron,activation='relu',kernel_regularizer=regularizers.l2(lamda))) + model.add(Dense(2,activation='softmax')) #2 outputs - ordered and disordered (softmax for prob) + sgd=optimizers.SGD(lr=eta) + model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy']) + return model + + +Train_accuracy=np.zeros((len(n_neuron),len(eta))) #Define matrices to store accuracy scores as a function +Test_accuracy=np.zeros((len(n_neuron),len(eta))) #of learning rate and number of hidden neurons for + +for i in range(len(n_neuron)): #run loops over hidden neurons and learning rates to calculate + for j in range(len(eta)): #accuracy scores + DNN_model=NN_model(X_train.shape[1],n_layers,n_neuron[i],eta[j],lamda) + DNN_model.fit(X_train,y_train,epochs=epochs,batch_size=batch_size,verbose=1) + Train_accuracy[i,j]=DNN_model.evaluate(X_train,y_train)[1] + Test_accuracy[i,j]=DNN_model.evaluate(X_test,y_test)[1] + + +def plot_data(x,y,data,title=None): + + # plot results + fontsize=16 + + + fig = plt.figure() + ax = fig.add_subplot(111) + cax = ax.matshow(data, interpolation='nearest', vmin=0, vmax=1) + + cbar=fig.colorbar(cax) + cbar.ax.set_ylabel('accuracy (%)',rotation=90,fontsize=fontsize) + cbar.set_ticks([0,.2,.4,0.6,0.8,1.0]) + cbar.set_ticklabels(['0%','20%','40%','60%','80%','100%']) + + # put text on matrix elements + for i, x_val in enumerate(np.arange(len(x))): + for j, y_val in enumerate(np.arange(len(y))): + c = "${0:.1f}\\%$".format( 100*data[j,i]) + ax.text(x_val, y_val, c, va='center', ha='center') + + # convert axis vaues to to string labels + x=[str(i) for i in x] + y=[str(i) for i in y] + + + ax.set_xticklabels(['']+x) + ax.set_yticklabels(['']+y) + + ax.set_xlabel('$\\mathrm{learning\\ rate}$',fontsize=fontsize) + ax.set_ylabel('$\\mathrm{hidden\\ neurons}$',fontsize=fontsize) + if title is not None: + ax.set_title(title) + + plt.tight_layout() + + plt.show() + +plot_data(eta,n_neuron,Train_accuracy, 'training') +plot_data(eta,n_neuron,Test_accuracy, 'testing') + + +# ## 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](http://oscar.calldesk.ai/), which implements more complex algorithms to help you find a good set of hyperparameters quickly. +# +# 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. +# +# +# +# +# +# ## Which activation function should I use? +# +# 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**. +# +# 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 +# +# +# +# +# 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](http://proceedings.mlr.press/v9/glorot10a.html) 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. +# +# 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). +# +# +# +# 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. +# +# +# +# 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. +# +# 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. +# $$ + +# 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. +# +# +# +# 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: +# +# +# * Estimate optimal error rate +# +# * Minimize underfitting (bias) on training data set. +# +# * Make sure you are not overfitting. +# +# 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). +# +# 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.** 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. +# +# * **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/LectureNotes/_build/jupyter_execute/chapter10_33_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter10_33_1.png new file mode 100644 index 0000000000000000000000000000000000000000..91a4496c5e66ab2c962e8d247a1291c2d93fd1c3 GIT binary patch literal 2976 zcmb_e3s6&68ji)<)sqdZ zKouffjDd=j@`?=@LV`)KfDscwq)AFlK*0!vS2Yj_2<)Yu+0Jy`+1XBK?&I8xiQg!FsKQ;>Qq!(ESv6ZGMCvQ6@Ue@RD==xZ+3BAuDc1)2V{L;$lor=629_N*ZZ+^dZtozI2 zn*S`PL$i^dda6 zr>*`)QiAyOtj2(b(lHoGT;BvkQ(9#5z?_*gr+Wk0JArI3fPDd!ae=)Z-%ySHK0XQf&ek&VX*#$nx09OJnyTb`i!t5@RrfOen}SC(oQ1 zGguDJ#oOPLOMDoIxkXU0UES(Md8QKv1*Lmpq@7inIrvO5&se2YV;zR)9fqM{ZYj6m z>63*r@rM9A54`eGVdrG2RZwk7)X4_X0AcA4cXcrVpV>m$lhDhO-+?UaU2wT24#NlV zUbe{9tw;$~rMk7Lzpi}92D!Q!DX~RfgodnKx!x*A%i$(NvDdkb0r ze3UfNVYnSK!KeVh*{`GA!V8;FUE=OOEdUo7_!ozD|17m>`oW)uafD1ZuutG)0Uim6IBl{YX<&;6gswLRXcD9uSs}k*03DqN_oKeD(~a z^LWP3NmDt|q#QdW5d_PHe&siADi1dBZfFwUU)_$(u|+0#q--fK1g#S(m&}!YtnF#; zfOkKEbT+5}a&=^d1vkMHzvwGu_-sK+tdOr^-2FFTP)(;{90_6{Ob!|&VL_{J_d9N? ztn^$gz!qk$=s-FEh%w*ZNM-vld|kWb{`ky2fVlem;yG~P8<4&m7_>&J9EQ;t!}7T} zmpI$*uB&riR{a(e7)9J(`-F2v`Y*x(fIuSVj|b0tdp>cK7q~^UU2q_Ff>n zg=gf+V+uf(15lXN9V+$C@c>pl0Wq?FU3wMI*tNBOWB^=fSE_w%mopqO*tkV+C0hPy z!MtC_(mXqWzojHBJuolqN?KEzA0-%x!DpU$OIme@C2xyr{b3QGAfEY23JYQ^U3op5 zGW(uxF5|~6FHE_+P;Ht(K9fqbUG&u$0}5jh`AN4Ajdb5fJ+pMlvYORGCbs;AsZ@Mm zQThOK#rIMv(l?RZ4=dOMdto~HO_v~_wAqzTx%^F+<%z}tYZT8Je40o$xC+Z-O?gR{; zA1`-iH~>#i`xfM4P}EC>dW)Gk!P%UXipzmj%iJ8xLFE1L)O9_^v+Y)b?#I#NRBBTg|JJRT>GbgjRUz8WJZl*)EiDb! z)+;3A9uNl0F+VTE*>j`P_dLB`7W&m>oI*scSn4_N_Q4mJ(2j1#YIL98P+HxTm|#Luq!G$+EHOK5L#QCaR{F!%5w`| z8G8PlQbQ(@>NHKlw6_MNcJC^1=`^^h;ap^4&{+J|cO?)jLnStH!QrnR~!w+Mv<4lYosQU$J==p%IxDLjDMD3K7! zZgz!%wA|cW9s96CwCh@S4%*3ynQ<^TYnIq=C}W0}7X_9$Gf8#f;o$)^1r%EW+gjR5 z_wt@&e`J^2H^6pttP)TNJm1B(8K`nUXg#zv|drCV~ccujri@{_ge-0u^@Gd lCgsJNArP99|CI*D93~?k>=eh%z^7$|zi$wpbKtWt{{>fyiKGAk literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter10_49_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter10_49_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6d146702945cbe319dd1eaa069902b9573ea2737 GIT binary patch literal 22294 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter10_49_2.png b/doc/LectureNotes/_build/jupyter_execute/chapter10_49_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c47b451d2004ef6e10feb36f91a8b9a80a8c27 GIT binary patch literal 28628 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter10_53_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter10_53_0.png new file mode 100644 index 0000000000000000000000000000000000000000..59f332230a14b7ff2beb4e1adb4c808af1a8b277 GIT binary patch literal 26114 zcmb5W1z40_+ci9j0@9(H%x&-jo5EC8v z#k>(m1o#kek=Ali1Dm_J8#$SQ6pdUQY{4$JR>rh$W=_slV0$h$ZZ<9!T1yuf2WLTc zcDsL0U;{f@uy>_P!GN3Ga(Jfg3<6;jqyAn4C8v^tKxSZBDRFg=)XhoH)QCl7>+Z1c zQrA1Ocdjj8AHE~CF>R;rP>Q`x=VvfV_b6^9C6*xUZcrN$)UD&Woau8bRkt`g6LV4= zF7qXpFEiJd=`=x`-E)K>b=iNJs>nR+k+a4IDgStu8_%*yUrdyWpJm*~bOd zUF=~$kc*|&{HhCL(XZi$BZvFT!3OD`OJw$S@FV8o;ra>rYf0-k&H zGpkbYg8}7@k>bFwdexjhCk}!xD^F5*?M5n{8A11-zBBw)s11^mmVWHIre5W?DL0U# zs9oW355$%bu4&*Kx73|7@L7#f-)C34%6&WC$VWb&CDVSg%4K8Zz32Xt9X1% z{Nl??$7$c=>|yptkHRc6eBCq4rJS5Ne^?LAl~4Q0Pal1X6768j@QHcU z`b^5{u4|B#J*Pk7l#%&Gq2XLpSfNgNr1emKvB$2lDEvUpX|ba@U!#D{y9em-%49Vk zv*y<HOH-X-)3NAi);=j+3%B~=_@voG4Dye^)m$wm9@5JqVYW-1lqPx zy$zku&G7pu8H&fES9Lo;3~>_J7>YlTB@3Yt#G{*|;g)%}z@YZ!CC`SN^1#MuDdV)? zIji$h*X+)0Bc-rMG|*f9qtv*cz)*qJaTJ6>#pQR%#lZg_sQDSWD9*BWYL_iP??XIKbcbIv*-Wktoqn!{RZ>|kJ;5oV2hmi@nvDA7Uegxh~EUQlZ zP=O|zVfi@gcvM)}Jz&koK2i(8y2G@ynwwGLw)rxiMLWhQO-hQJo56{Ayv&Y5#QP`< zcr~|~)Zc85m(M#@a=Ow)kn*6uwf=ee*KA z@uy#2{z&8lQ=4_hH*?@XFZSd?Zrf9euym24im6REwQq*verKzUpkH70yqix@$CJ6O zB+Bh4^K>gYGko@B&umo6?e&0{`D%QVft57^m|D38?}xwW@U=wID915rJba$@EC*^% z7vr3FpWca>g2NCr-x`%`H(n-;IGG>JQw;=bMhuROGXUjPrtf)@d^Pyqj(Q|M_12-ASl*AzC zv5rkIw(ifm)!yFjvN^`1X24F^uI+MK^Ckl|!i>u4S-$5-0n4H?_4V~QG@=u&@8Lqz z{z#GgGLfd6V?PpbVPS7Bq^a%^ijh!IbiN_H&+j;Q!@fMFt?e0VXWCopUSID;6kDWw zh7{EylG`DSsO4f1dY_K(F|b`oNzsqGjg38+-BC&tEcSz++1RTcU&f9MSp^09$B%bQ4vmbAf`Ws! ze??FU9lae73lA^V^(CjKR zE0+2Jg7CcD1mc6dv z)=f8^uLL}b`&C~_yW_7KP3Cp9A=?^B#jb-qw(b3KoAqVv$;rvVA`n4L`Gbz!uYzE3 zN&%9?$-Ki7b0g!S>c<Sge3FWlvocjk@MPmbT3<#dE$ig`k>g`7~nc+dZ4#SKMj5q zrb)-f)Pc8$V3lX)`;2M4psHQOt=SQ-7*6_fWTR0{A<4}{D-7e!8m|iA=m}YJV zK^otEaZ%Fx6uSSAah}N2;$V*@lHYmgvtGPtEjb}6>Cd9NW-g<>R(eLAY2-0?Er2Vw z8n_joKTlKeJtxMa6vlgU&O2n~3cm9?5KX{gho6|i|6Swkp0ozy$Jk+KpUsR&x^sQK z7DJS_ueOe*m%*JXm!eQB3G26k<&1t^^|h@&w|657CQF!V_17c}RcPzrK0)p9>HDX) z9jtv#0ggo)_=QSW;`_`iexN5ho&F z@^{YOrQeRk+;=-czJy-S6c)%KHVI+NQm*EEBjEK`U-G5?i?8ZQ4lT9ADd^qII=`Z* z%HCYl%X$2vlRKxT;;^k2 &w9owBou1BbtG;9d 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%0AFVUTpVAkz3+%W* zgE!ln(gLO=H&W&ISYWB(d1#J34qAL++3qh}SZiDR4J~NT(*o}jWtqHRX>3OuxHBuN zu;t!0o>zlK%Rm~!vB9vdS0#pR5E*z=oZDvZC&vd>NyZGjVo35@(t3$&N?IEh8(8zc z{E6DrHUN)%Z`UROy1r6CU3gnRC$c7w^Mqt zZDW9tN#&<$)6VUuwWJcqGLol<&a?A!z8ubr|AF{>ecrYp=i|G z30O};kMOn%XFr1LRH}}h#Q)Tex||D2}*femZ#^x?1CwNx2p))C?$v)cc59YpUwx3iJ=gpl;>IQ&7&i zA69m*>%VGk^@@#~?JI~;vX~g{lD-Q+R1Ov0zbaDpGH}n8UxkwJlv!&wu*e?kF`o=DMUyg6b2owvM70{+P%F3LcHu5MbFeU%FSE2b)3#g_KdtFy5G z9ctn(v%i2&=C=a(cO(8Cyk1;|r3Ihg;mJPlA<)u4v6K1gj+K>#+NB|Y)D)=h0mV=) zhtc^u#2GU{BXR)(j1thM0yHjpT>Ua5%Ax?&2&WI>pE9o4b9&YuWWYkG&D`nbuC)V-wy7buxg6 zgHW^<>$X8S8*iEnB8eY34jV%ugq`e=PMj??uWhtfP{2sXXjw? z%^OU&&9OM>MJtWJN`-?_y7!g3&XyP23{wbnBN6YxlLk@C-IBpwTafwbHN*gghkHtM?lt|cwTM~_|V9g zdZ&5pzCJNrQ&!X{lCe7m<@}iW7&ZTY!^i?#z843uD_r∓o=hfVOS@d;Xf%t+yiu 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter10_53_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter10_53_1.png new file mode 100644 index 0000000000000000000000000000000000000000..10b90707a29331afc5f626165be5c8003070e6a7 GIT binary patch literal 28453 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

    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{ode} \\tag{1}\n", + "f\\left(x, \\, g(x), \\, g'(x), \\, g''(x), \\, \\dots \\, , \\, g^{(n)}(x)\\right) = 0\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $g(x)$ is the function to find, and $g^{(n)}(x)$ is the $n$-th derivative of $g(x)$.\n", + "\n", + "The $f\\left(x, g(x), g'(x), g''(x), \\, \\dots \\, , g^{(n)}(x)\\right)$ is just a way to write that there is an expression involving $x$ and $g(x), \\ g'(x), \\ g''(x), \\, \\dots \\, , \\text{ and } g^{(n)}(x)$ on the left side of the equality sign in ([1](#ode)).\n", + "The highest order of derivative, that is the value of $n$, determines to the order of the equation.\n", + "The equation is referred to as a $n$-th order ODE.\n", + "Along with ([1](#ode)), some additional conditions of the function $g(x)$ are typically given\n", + "for the solution to be unique.\n", + "\n", + "\n", + "\n", + "Let the trial solution $g_t(x)$ be" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\tg_t(x) = h_1(x) + h_2(x,N(x,P))\n", + "\\label{_auto1} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $h_1(x)$ is a function that makes $g_t(x)$ satisfy a given set\n", + "of conditions, $N(x,P)$ a neural network with weights and biases\n", + "described by $P$ and $h_2(x, N(x,P))$ some expression involving the\n", + "neural network. The role of the function $h_2(x, N(x,P))$, is to\n", + "ensure that the output from $N(x,P)$ is zero when $g_t(x)$ is\n", + "evaluated at the values of $x$ where the given conditions must be\n", + "satisfied. The function $h_1(x)$ should alone make $g_t(x)$ satisfy\n", + "the conditions.\n", + "\n", + "But what about the network $N(x,P)$?\n", + "\n", + "\n", + "As described previously, an optimization method could be used to minimize the parameters of a neural network, that being its weights and biases, through backward propagation.\n", + "\n", + "\n", + "\n", + "For the minimization to be defined, we need to have a cost function at hand to minimize.\n", + "\n", + "It is given that $f\\left(x, \\, g(x), \\, g'(x), \\, g''(x), \\, \\dots \\, , \\, g^{(n)}(x)\\right)$ should be equal to zero in ([1](#ode)).\n", + "We can choose to consider the mean squared error as the cost function for an input $x$.\n", + "Since we are looking at one input, the cost function is just $f$ squared.\n", + "The cost function $c\\left(x, P \\right)$ can therefore be expressed as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C\\left(x, P\\right) = \\big(f\\left(x, \\, g(x), \\, g'(x), \\, g''(x), \\, \\dots \\, , \\, g^{(n)}(x)\\right)\\big)^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If $N$ inputs are given as a vector $\\boldsymbol{x}$ with elements $x_i$ for $i = 1,\\dots,N$,\n", + "the cost function becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{cost} \\tag{3}\n", + "\tC\\left(\\boldsymbol{x}, P\\right) = \\frac{1}{N} \\sum_{i=1}^N \\big(f\\left(x_i, \\, g(x_i), \\, g'(x_i), \\, g''(x_i), \\, \\dots \\, , \\, g^{(n)}(x_i)\\right)\\big)^2\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The neural net should then find the parameters $P$ that minimizes the cost function in\n", + "([3](#cost)) for a set of $N$ training samples $x_i$.\n", + "\n", + "\n", + "\n", + "To perform the minimization using gradient descent, the gradient of $C\\left(\\boldsymbol{x}, P\\right)$ is needed.\n", + "It might happen so that finding an analytical expression of the gradient of $C(\\boldsymbol{x}, P)$ from ([3](#cost)) gets too messy, depending on which cost function one desires to use.\n", + "\n", + "Luckily, there exists libraries that makes the job for us through automatic differentiation.\n", + "Automatic differentiation is a method of finding the derivatives numerically with very high precision.\n", + "\n", + "\n", + "### Example: Exponential decay\n", + "\n", + "An exponential decay of a quantity $g(x)$ is described by the equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{solve_expdec} \\tag{4}\n", + " g'(x) = -\\gamma g(x)\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $g(0) = g_0$ for some chosen initial value $g_0$.\n", + "\n", + "The analytical solution of ([4](#solve_expdec)) is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " g(x) = g_0 \\exp\\left(-\\gamma x\\right)\n", + "\\label{_auto2} \\tag{5}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Having an analytical solution at hand, it is possible to use it to compare how well a neural network finds a solution of ([4](#solve_expdec)).\n", + "\n", + "\n", + "\n", + "The program will use a neural network to solve" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{solveode} \\tag{6}\n", + "g'(x) = -\\gamma g(x)\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $g(0) = g_0$ with $\\gamma$ and $g_0$ being some chosen values.\n", + "\n", + "In this example, $\\gamma = 2$ and $g_0 = 10$.\n", + "\n", + "\n", + "To begin with, a trial solution $g_t(t)$ must be chosen. A general trial solution for ordinary differential equations could be" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "g_t(x, P) = h_1(x) + h_2(x, N(x, P))\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $h_1(x)$ ensuring that $g_t(x)$ satisfies some conditions and $h_2(x,N(x, P))$ an expression involving $x$ and the output from the neural network $N(x,P)$ with $P $ being the collection of the weights and biases for each layer. For now, it is assumed that the network consists of one input layer, one hidden layer, and one output layer.\n", + "\n", + "\n", + "\n", + "In this network, there are no weights and bias at the input layer, so $P = \\{ P_{\\text{hidden}}, P_{\\text{output}} \\}$.\n", + "If there are $N_{\\text{hidden} }$ neurons in the hidden layer, then $P_{\\text{hidden}}$ is a $N_{\\text{hidden} } \\times (1 + N_{\\text{input}})$ matrix, given that there are $N_{\\text{input}}$ neurons in the input layer.\n", + "\n", + "The first column in $P_{\\text{hidden} }$ represents the bias for each neuron in the hidden layer and the second column represents the weights for each neuron in the hidden layer from the input layer.\n", + "If there are $N_{\\text{output} }$ neurons in the output layer, then $P_{\\text{output}} $ is a $N_{\\text{output} } \\times (1 + N_{\\text{hidden} })$ matrix.\n", + "\n", + "Its first column represents the bias of each neuron and the remaining columns represents the weights to each neuron.\n", + "\n", + "It is given that $g(0) = g_0$. The trial solution must fulfill this condition to be a proper solution of ([6](#solveode)). A possible way to ensure that $g_t(0, P) = g_0$, is to let $F(N(x,P)) = x \\cdot N(x,P)$ and $A(x) = g_0$. This gives the following trial solution:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{trial} \\tag{7}\n", + "g_t(x, P) = g_0 + x \\cdot N(x, P)\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Reformulating the problem\n", + "\n", + "We wish that our neural network manages to minimize a given cost function.\n", + "\n", + "A reformulation of out equation, ([6](#solveode)), must therefore be done,\n", + "such that it describes the problem a neural network can solve for.\n", + "\n", + "The neural network must find the set of weights and biases $P$ such that the trial solution in ([7](#trial)) satisfies ([6](#solveode)).\n", + "\n", + "The trial solution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "g_t(x, P) = g_0 + x \\cdot N(x, P)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "has been chosen such that it already solves the condition $g(0) = g_0$. What remains, is to find $P$ such that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{nnmin} \\tag{8}\n", + "g_t'(x, P) = - \\gamma g_t(x, P)\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "is fulfilled as *best as possible*.\n", + "\n", + "\n", + "The left hand side and right hand side of ([8](#nnmin)) must be computed separately, and then the neural network must choose weights and biases, contained in $P$, such that the sides are equal as best as possible.\n", + "This means that the absolute or squared difference between the sides must be as close to zero, ideally equal to zero.\n", + "In this case, the difference squared shows to be an appropriate measurement of how erroneous the trial solution is with respect to $P$ of the neural network.\n", + "\n", + "This gives the following cost function our neural network must solve for:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\min_{P}\\Big\\{ \\big(g_t'(x, P) - ( -\\gamma g_t(x, P) \\big)^2 \\Big\\}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(the notation $\\min_{P}\\{ f(x, P) \\}$ means that we desire to find $P$ that yields the minimum of $f(x, P)$)\n", + "\n", + "or, in terms of weights and biases for the hidden and output layer in our network:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\min_{P_{\\text{hidden} }, \\ P_{\\text{output} }}\\Big\\{ \\big(g_t'(x, \\{ P_{\\text{hidden} }, P_{\\text{output} }\\}) - ( -\\gamma g_t(x, \\{ P_{\\text{hidden} }, P_{\\text{output} }\\}) \\big)^2 \\Big\\}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for an input value $x$.\n", + "\n", + "\n", + "\n", + "If the neural network evaluates $g_t(x, P)$ at more values for $x$, say $N$ values $x_i$ for $i = 1, \\dots, N$, then the *total* error to minimize becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{min} \\tag{9}\n", + "\\min_{P}\\Big\\{\\frac{1}{N} \\sum_{i=1}^N \\big(g_t'(x_i, P) - ( -\\gamma g_t(x_i, P) \\big)^2 \\Big\\}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Letting $\\boldsymbol{x}$ be a vector with elements $x_i$ and $C(\\boldsymbol{x}, P) = \\frac{1}{N} \\sum_i \\big(g_t'(x_i, P) - ( -\\gamma g_t(x_i, P) \\big)^2$ denote the cost function, the minimization problem that our network must solve, becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\min_{P} C(\\boldsymbol{x}, P)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In terms of $P_{\\text{hidden} }$ and $P_{\\text{output} }$, this could also be expressed as\n", + "\n", + "$$\n", + "\\min_{P_{\\text{hidden} }, \\ P_{\\text{output} }} C(\\boldsymbol{x}, \\{P_{\\text{hidden} }, P_{\\text{output} }\\})\n", + "$$\n", + "\n", + "\n", + "For simplicity, it is assumed that the input is an array $\\boldsymbol{x} = (x_1, \\dots, x_N)$ with $N$ elements. It is at these points the neural network should find $P$ such that it fulfills ([9](#min)).\n", + "\n", + "First, the neural network must feed forward the inputs.\n", + "This means that $\\boldsymbol{x}s$ must be passed through an input layer, a hidden layer and a output layer. The input layer in this case, does not need to process the data any further.\n", + "The input layer will consist of $N_{\\text{input} }$ neurons, passing its element to each neuron in the hidden layer. The number of neurons in the hidden layer will be $N_{\\text{hidden} }$.\n", + "\n", + "\n", + "For the $i$-th in the hidden layer with weight $w_i^{\\text{hidden} }$ and bias $b_i^{\\text{hidden} }$, the weighting from the $j$-th neuron at the input layer is:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "z_{i,j}^{\\text{hidden}} &= b_i^{\\text{hidden}} + w_i^{\\text{hidden}}x_j \\\\\n", + "&=\n", + "\\begin{pmatrix}\n", + "b_i^{\\text{hidden}} & w_i^{\\text{hidden}}\n", + "\\end{pmatrix}\n", + "\\begin{pmatrix}\n", + "1 \\\\\n", + "x_j\n", + "\\end{pmatrix}\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result after weighting the inputs at the $i$-th hidden neuron can be written as a vector:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "\\boldsymbol{z}_{i}^{\\text{hidden}} &= \\Big( b_i^{\\text{hidden}} + w_i^{\\text{hidden}}x_1 , \\ b_i^{\\text{hidden}} + w_i^{\\text{hidden}} x_2, \\ \\dots \\, , \\ b_i^{\\text{hidden}} + w_i^{\\text{hidden}} x_N\\Big) \\\\\n", + "&=\n", + "\\begin{pmatrix}\n", + " b_i^{\\text{hidden}} & w_i^{\\text{hidden}}\n", + "\\end{pmatrix}\n", + "\\begin{pmatrix}\n", + "1 & 1 & \\dots & 1 \\\\\n", + "x_1 & x_2 & \\dots & x_N\n", + "\\end{pmatrix} \\\\\n", + "&= \\boldsymbol{p}_{i, \\text{hidden}}^T X\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The vector $\\boldsymbol{p}_{i, \\text{hidden}}^T$ constitutes each row in $P_{\\text{hidden} }$, which contains the weights for the neural network to minimize according to ([9](#min)).\n", + "\n", + "After having found $\\boldsymbol{z}_{i}^{\\text{hidden}} $ for every $i$-th neuron within the hidden layer, the vector will be sent to an activation function $a_i(\\boldsymbol{z})$.\n", + "\n", + "In this example, the sigmoid function has been chosen to be the activation function for each hidden neuron:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(z) = \\frac{1}{1 + \\exp{(-z)}}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is possible to use other activations functions for the hidden layer also.\n", + "\n", + "The output $\\boldsymbol{x}_i^{\\text{hidden}}$ from each $i$-th hidden neuron is:\n", + "\n", + "$$\n", + "\\boldsymbol{x}_i^{\\text{hidden} } = f\\big( \\boldsymbol{z}_{i}^{\\text{hidden}} \\big)\n", + "$$\n", + "\n", + "The outputs $\\boldsymbol{x}_i^{\\text{hidden} } $ are then sent to the output layer.\n", + "\n", + "The output layer consists of one neuron in this case, and combines the\n", + "output from each of the neurons in the hidden layers. The output layer\n", + "combines the results from the hidden layer using some weights $w_i^{\\text{output}}$\n", + "and biases $b_i^{\\text{output}}$. In this case,\n", + "it is assumes that the number of neurons in the output layer is one.\n", + "\n", + "\n", + "\n", + "The procedure of weighting the output neuron $j$ in the hidden layer to the $i$-th neuron in the output layer is similar as for the hidden layer described previously." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "z_{1,j}^{\\text{output}} & =\n", + "\\begin{pmatrix}\n", + "b_1^{\\text{output}} & \\boldsymbol{w}_1^{\\text{output}}\n", + "\\end{pmatrix}\n", + "\\begin{pmatrix}\n", + "1 \\\\\n", + "\\boldsymbol{x}_j^{\\text{hidden}}\n", + "\\end{pmatrix}\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Expressing $z_{1,j}^{\\text{output}}$ as a vector gives the following way of weighting the inputs from the hidden layer:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{z}_{1}^{\\text{output}} =\n", + "\\begin{pmatrix}\n", + "b_1^{\\text{output}} & \\boldsymbol{w}_1^{\\text{output}}\n", + "\\end{pmatrix}\n", + "\\begin{pmatrix}\n", + "1 & 1 & \\dots & 1 \\\\\n", + "\\boldsymbol{x}_1^{\\text{hidden}} & \\boldsymbol{x}_2^{\\text{hidden}} & \\dots & \\boldsymbol{x}_N^{\\text{hidden}}\n", + "\\end{pmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case we seek a continuous range of values since we are approximating a function. This means that after computing $\\boldsymbol{z}_{1}^{\\text{output}}$ the neural network has finished its feed forward step, and $\\boldsymbol{z}_{1}^{\\text{output}}$ is the final output of the network.\n", + "\n", + "\n", + "The next step is to decide how the parameters should be changed such that they minimize the cost function.\n", + "\n", + "The chosen cost function for this problem is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{x}, P) = \\frac{1}{N} \\sum_i \\big(g_t'(x_i, P) - ( -\\gamma g_t(x_i, P) \\big)^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to minimize the cost function, an optimization method must be chosen.\n", + "\n", + "Here, gradient descent with a constant step size has been chosen.\n", + "\n", + "### Gradient descent\n", + "\n", + "The idea of the gradient descent algorithm is to update parameters in\n", + "a direction where the cost function decreases goes to a minimum.\n", + "\n", + "In general, the update of some parameters $\\boldsymbol{\\omega}$ given a cost\n", + "function defined by some weights $\\boldsymbol{\\omega}$, $C(\\boldsymbol{x},\n", + "\\boldsymbol{\\omega})$, goes as follows:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\omega}_{\\text{new} } = \\boldsymbol{\\omega} - \\lambda \\nabla_{\\boldsymbol{\\omega}} C(\\boldsymbol{x}, \\boldsymbol{\\omega})\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for a number of iterations or until $ \\big|\\big| \\boldsymbol{\\omega}_{\\text{new} } - \\boldsymbol{\\omega} \\big|\\big|$ becomes smaller than some given tolerance.\n", + "\n", + "The value of $\\lambda$ decides how large steps the algorithm must take\n", + "in the direction of $ \\nabla_{\\boldsymbol{\\omega}} C(\\boldsymbol{x}, \\boldsymbol{\\omega})$.\n", + "The notation $\\nabla_{\\boldsymbol{\\omega}}$ express the gradient with respect\n", + "to the elements in $\\boldsymbol{\\omega}$.\n", + "\n", + "In our case, we have to minimize the cost function $C(\\boldsymbol{x}, P)$ with\n", + "respect to the two sets of weights and biases, that is for the hidden\n", + "layer $P_{\\text{hidden} }$ and for the output layer $P_{\\text{output}\n", + "}$ .\n", + "\n", + "This means that $P_{\\text{hidden} }$ and $P_{\\text{output} }$ is updated by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "P_{\\text{hidden},\\text{new}} &= P_{\\text{hidden}} - \\lambda \\nabla_{P_{\\text{hidden}}} C(\\boldsymbol{x}, P) \\\\\n", + "P_{\\text{output},\\text{new}} &= P_{\\text{output}} - \\lambda \\nabla_{P_{\\text{output}}} C(\\boldsymbol{x}, P)\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The code for solving the ODE" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initial cost: 367.01\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Final cost: 0.0666807\n", + "Max absolute difference: 0.0437499\n" + ] + }, + { + "data": { + "image/png": "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lyRJ2nT5+flMnTqVFStWxB2lXKhSpQrNmzcnNze31NexeEmSVEFMnTqVmjVr0rp1a0IIccfJaFEUMXfuXKZOnUqbNm1KfT3fapQkqYJYsWIF9erVs3RtBiEE6tWrt8GjhxYvSZIqEEvX5rMxy9LiJUmSlCIWL0mSlHGee+45LrvssvVeZvr06b+fPv/88xk7duwG31f//v058sgjN/h6a2LxkiRJ5VLJ4tWzZ0923HHHGBNZvCRJUop1796dDh06sNNOO9GjRw8AatSowc0330y7du3o3Lkzs2bNAuD9999njz32YLfdduOggw76/fzVFi9eTJs2bcjPzwdg0aJFtG7dmtdff52hQ4dy2mmnseuuu7J8+XK6du36+08Qfvzxx7Rv35527dpx4IEHAjBkyBC6dOnCbrvtRpcuXZgwYcJmn3e/TkKSpArotvfHMHb6os16mzs2rcU/jtppvZd75plnqFu3LsuXL2f33XfnuOOOY+nSpXTu3Jl///vfXHfddTz11FP87W9/Y++992bQoEGEEOjZsyf33HMP999//++3VbNmTbp27cqHH35I9+7defXVVznuuOM44YQTePTRR7nvvvvo2LHjH+4/Ly+PCy64gC+//JI2bdowb948ALbffnu+/PJLcnJy+Oyzz7jpppt48803N+sysnhJkqSUeuihh3j77bcBmDJlChMnTqRSpUq/H0fVoUMH+vbtCyS+e+ykk05ixowZrFq1ao3fmXX++edzzz330L17d5599lmeeuqpdd7/oEGD2HfffX+/rbp16wKwcOFCzjrrLCZOnEgI4fdRtM3J4iVJUgVUmpGpstC/f38+++wzvv32W6pVq0bXrl1ZsWIFubm5v389Q3Z2NgUFBQBcfvnlXH311Rx99NH079+fW2+99X9uc6+99mLSpEkMGDCAwsJC2rZtu84MURSt8asgbrnlFvbff3/efvttJk2aRNeuXTd5fkvyGC9JkpQyCxcupE6dOlSrVo3x48czaNCg9V6+WbNmADz//PNrvdyZZ57JKaecwjnnnPP7eTVr1mTx4sX/c9k999yTAQMG8OuvvwL8/lZj8ft67rnnNmi+SsviJUmSUubQQw+loKCAXXbZhVtuuYXOnTuv8/K33norJ5xwAvvssw/169df6+VOO+005s+fzymnnPL7eWeffTYXX3zx7wfXr9agQQN6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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter11_47_2.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import autograd.numpy as np\n", + "from autograd import grad, elementwise_grad\n", + "import autograd.numpy.random as npr\n", + "from matplotlib import pyplot as plt\n", + "\n", + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "# Assuming one input, hidden, and output layer\n", + "def neural_network(params, x):\n", + "\n", + " # Find the weights (including and biases) for the hidden and output layer.\n", + " # Assume that params is a list of parameters for each layer.\n", + " # The biases are the first element for each array in params,\n", + " # and the weights are the remaning elements in each array in params.\n", + "\n", + " w_hidden = params[0]\n", + " w_output = params[1]\n", + "\n", + " # Assumes input x being an one-dimensional array\n", + " num_values = np.size(x)\n", + " x = x.reshape(-1, num_values)\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + "\n", + " ## Hidden layer:\n", + "\n", + " # Add a row of ones to include bias\n", + " x_input = np.concatenate((np.ones((1,num_values)), x_input ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_input)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " ## Output layer:\n", + "\n", + " # Include bias:\n", + " x_hidden = np.concatenate((np.ones((1,num_values)), x_hidden ), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_hidden)\n", + " x_output = z_output\n", + "\n", + " return x_output\n", + "\n", + "# The trial solution using the deep neural network:\n", + "def g_trial(x,params, g0 = 10):\n", + " return g0 + x*neural_network(params,x)\n", + "\n", + "# The right side of the ODE:\n", + "def g(x, g_trial, gamma = 2):\n", + " return -gamma*g_trial\n", + "\n", + "# The cost function:\n", + "def cost_function(P, x):\n", + "\n", + " # Evaluate the trial function with the current parameters P\n", + " g_t = g_trial(x,P)\n", + "\n", + " # Find the derivative w.r.t x of the neural network\n", + " d_net_out = elementwise_grad(neural_network,1)(P,x)\n", + "\n", + " # Find the derivative w.r.t x of the trial function\n", + " d_g_t = elementwise_grad(g_trial,0)(x,P)\n", + "\n", + " # The right side of the ODE\n", + " func = g(x, g_t)\n", + "\n", + " err_sqr = (d_g_t - func)**2\n", + " cost_sum = np.sum(err_sqr)\n", + "\n", + " return cost_sum / np.size(err_sqr)\n", + "\n", + "# Solve the exponential decay ODE using neural network with one input, hidden, and output layer\n", + "def solve_ode_neural_network(x, num_neurons_hidden, num_iter, lmb):\n", + " ## Set up initial weights and biases\n", + "\n", + " # For the hidden layer\n", + " p0 = npr.randn(num_neurons_hidden, 2 )\n", + "\n", + " # For the output layer\n", + " p1 = npr.randn(1, num_neurons_hidden + 1 ) # +1 since bias is included\n", + "\n", + " P = [p0, p1]\n", + "\n", + " print('Initial cost: %g'%cost_function(P, x))\n", + "\n", + " ## Start finding the optimal weights using gradient descent\n", + "\n", + " # Find the Python function that represents the gradient of the cost function\n", + " # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer\n", + " cost_function_grad = grad(cost_function,0)\n", + "\n", + " # Let the update be done num_iter times\n", + " for i in range(num_iter):\n", + " # Evaluate the gradient at the current weights and biases in P.\n", + " # The cost_grad consist now of two arrays;\n", + " # one for the gradient w.r.t P_hidden and\n", + " # one for the gradient w.r.t P_output\n", + " cost_grad = cost_function_grad(P, x)\n", + "\n", + " P[0] = P[0] - lmb * cost_grad[0]\n", + " P[1] = P[1] - lmb * cost_grad[1]\n", + "\n", + " print('Final cost: %g'%cost_function(P, x))\n", + "\n", + " return P\n", + "\n", + "def g_analytic(x, gamma = 2, g0 = 10):\n", + " return g0*np.exp(-gamma*x)\n", + "\n", + "# Solve the given problem\n", + "if __name__ == '__main__':\n", + " # Set seed such that the weight are initialized\n", + " # with same weights and biases for every run.\n", + " npr.seed(15)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " N = 10\n", + " x = np.linspace(0, 1, N)\n", + "\n", + " ## Set up the initial parameters\n", + " num_hidden_neurons = 10\n", + " num_iter = 10000\n", + " lmb = 0.001\n", + "\n", + " # Use the network\n", + " P = solve_ode_neural_network(x, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " # Print the deviation from the trial solution and true solution\n", + " res = g_trial(x,P)\n", + " res_analytical = g_analytic(x)\n", + "\n", + " print('Max absolute difference: %g'%np.max(np.abs(res - res_analytical)))\n", + "\n", + " # Plot the results\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.title('Performance of neural network solving an ODE compared to the analytical solution')\n", + " plt.plot(x, res_analytical)\n", + " plt.plot(x, res[0,:])\n", + " plt.legend(['analytical','nn'])\n", + " plt.xlabel('x')\n", + " plt.ylabel('g(x)')\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The network with one input layer, specified number of hidden layers, and one output layer\n", + "\n", + "It is also possible to extend the construction of our network into a more general one, allowing the network to contain more than one hidden layers.\n", + "\n", + "The number of neurons within each hidden layer are given as a list of integers in the program below." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initial cost: 324.246\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/numpy/core/_asarray.py:83: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray\n", + " return array(a, dtype, copy=False, order=order)\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41138/2971492148.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 144\u001b[0m \u001b[0mlmb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.001\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 146\u001b[0;31m \u001b[0mP\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msolve_ode_deep_neural_network\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnum_hidden_neurons\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnum_iter\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlmb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 147\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 148\u001b[0m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mg_trial_deep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mP\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41138/2971492148.py\u001b[0m in \u001b[0;36msolve_ode_deep_neural_network\u001b[0;34m(x, num_neurons, num_iter, lmb)\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;31m# The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0;31m# in the hidden layers and output layers evaluated at x.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 121\u001b[0;31m \u001b[0mcost_deep_grad\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcost_function_deep_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mP\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ml\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN_hidden\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/wrap_util.py\u001b[0m in \u001b[0;36mnary_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 20\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0munary_operator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0munary_f\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mnary_op_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mnary_op_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 21\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnary_f\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnary_operator\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/differential_operators.py\u001b[0m in \u001b[0;36mgrad\u001b[0;34m(fun, x)\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0marguments\u001b[0m \u001b[0;32mas\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbut\u001b[0m \u001b[0mreturns\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgradient\u001b[0m \u001b[0minstead\u001b[0m\u001b[0;34m.\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mfunction\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m should be scalar-valued. The gradient has the same type as the argument.\"\"\"\n\u001b[0;32m---> 25\u001b[0;31m \u001b[0mvjp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mans\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_make_vjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 26\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mans\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 27\u001b[0m raise TypeError(\"Grad only applies to real scalar-output functions. \"\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/core.py\u001b[0m in \u001b[0;36mmake_vjp\u001b[0;34m(fun, x)\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmake_vjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mstart_node\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mVJPNode\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnew_root\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0mend_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend_node\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstart_node\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mend_node\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mvspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/tracer.py\u001b[0m in \u001b[0;36mtrace\u001b[0;34m(start_node, fun, x)\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mtrace_stack\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnew_trace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mstart_box\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnew_box\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstart_node\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0mend_box\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstart_box\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misbox\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mend_box\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mend_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_trace\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mstart_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_trace\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mend_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_node\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/wrap_util.py\u001b[0m in \u001b[0;36munary_f\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0msubargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msubvals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0msubargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 16\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0margnum\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41138/2971492148.py\u001b[0m in \u001b[0;36mcost_function_deep\u001b[0;34m(P, x)\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;31m# Evaluate the trial function with the current parameters P\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 69\u001b[0;31m \u001b[0mg_t\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mg_trial_deep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mP\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 70\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0;31m# Find the derivative w.r.t x of the neural network\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41138/2971492148.py\u001b[0m in \u001b[0;36mg_trial_deep\u001b[0;34m(x, params, g0)\u001b[0m\n\u001b[1;32m 57\u001b[0m \u001b[0;31m# The trial solution using the deep neural network:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 58\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mg_trial_deep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mg0\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 59\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mg0\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mdeep_neural_network\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 60\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;31m# The right side of the ODE:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41138/2971492148.py\u001b[0m in \u001b[0;36mdeep_neural_network\u001b[0;34m(deep_params, x)\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 38\u001b[0m \u001b[0mz_hidden\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mw_hidden\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx_prev\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 39\u001b[0;31m \u001b[0mx_hidden\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msigmoid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mz_hidden\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 40\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;31m# Update x_prev such that next layer can use the output from this layer\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41138/2971492148.py\u001b[0m in \u001b[0;36msigmoid\u001b[0;34m(z)\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msigmoid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mz\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mz\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# The neural network with one input layer and one output layer,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/numpy/numpy_boxes.py\u001b[0m in \u001b[0;36m__neg__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0manp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_astype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 24\u001b[0;31m \u001b[0;32mdef\u001b[0m \u001b[0m__neg__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0manp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnegative\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 25\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__add__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0manp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__sub__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0manp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubtract\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/tracer.py\u001b[0m in \u001b[0;36mf_wrapped\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0mparents\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbox\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_node\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m,\u001b[0m \u001b[0mbox\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mboxed_args\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0margnums\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margnum\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mboxed_args\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m \u001b[0mans\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margvals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 45\u001b[0m \u001b[0mnode\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnode_constructor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mans\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf_wrapped\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margvals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margnums\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparents\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 46\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnew_box\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mans\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrace\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/tracer.py\u001b[0m in \u001b[0;36mf_wrapped\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 35\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf_raw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 36\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mf_wrapped\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m \u001b[0mboxed_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrace\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnode_constructor\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfind_top_boxed_args\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 38\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mboxed_args\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0margvals\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msubvals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbox\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbox\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mboxed_args\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/tracer.py\u001b[0m in \u001b[0;36mfind_top_boxed_args\u001b[0;34m(args)\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0mtop_boxes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0mtop_node_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 69\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marg\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 70\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misbox\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 71\u001b[0m \u001b[0mtrace\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_trace\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad, elementwise_grad\n", + "import autograd.numpy.random as npr\n", + "from matplotlib import pyplot as plt\n", + "\n", + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "# The neural network with one input layer and one output layer,\n", + "# but with number of hidden layers specified by the user.\n", + "def deep_neural_network(deep_params, x):\n", + " # N_hidden is the number of hidden layers\n", + "\n", + " N_hidden = np.size(deep_params) - 1 # -1 since params consists of\n", + " # parameters to all the hidden\n", + " # layers AND the output layer.\n", + "\n", + " # Assumes input x being an one-dimensional array\n", + " num_values = np.size(x)\n", + " x = x.reshape(-1, num_values)\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + "\n", + " # Due to multiple hidden layers, define a variable referencing to the\n", + " # output of the previous layer:\n", + " x_prev = x_input\n", + "\n", + " ## Hidden layers:\n", + "\n", + " for l in range(N_hidden):\n", + " # From the list of parameters P; find the correct weigths and bias for this layer\n", + " w_hidden = deep_params[l]\n", + "\n", + " # Add a row of ones to include bias\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_prev)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " # Update x_prev such that next layer can use the output from this layer\n", + " x_prev = x_hidden\n", + "\n", + " ## Output layer:\n", + "\n", + " # Get the weights and bias for this layer\n", + " w_output = deep_params[-1]\n", + "\n", + " # Include bias:\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_prev)\n", + " x_output = z_output\n", + "\n", + " return x_output\n", + "\n", + "# The trial solution using the deep neural network:\n", + "def g_trial_deep(x,params, g0 = 10):\n", + " return g0 + x*deep_neural_network(params, x)\n", + "\n", + "# The right side of the ODE:\n", + "def g(x, g_trial, gamma = 2):\n", + " return -gamma*g_trial\n", + "\n", + "# The same cost function as before, but calls deep_neural_network instead.\n", + "def cost_function_deep(P, x):\n", + "\n", + " # Evaluate the trial function with the current parameters P\n", + " g_t = g_trial_deep(x,P)\n", + "\n", + " # Find the derivative w.r.t x of the neural network\n", + " d_net_out = elementwise_grad(deep_neural_network,1)(P,x)\n", + "\n", + " # Find the derivative w.r.t x of the trial function\n", + " d_g_t = elementwise_grad(g_trial_deep,0)(x,P)\n", + "\n", + " # The right side of the ODE\n", + " func = g(x, g_t)\n", + "\n", + " err_sqr = (d_g_t - func)**2\n", + " cost_sum = np.sum(err_sqr)\n", + "\n", + " return cost_sum / np.size(err_sqr)\n", + "\n", + "# Solve the exponential decay ODE using neural network with one input and one output layer,\n", + "# but with specified number of hidden layers from the user.\n", + "def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb):\n", + " # num_hidden_neurons is now a list of number of neurons within each hidden layer\n", + "\n", + " # The number of elements in the list num_hidden_neurons thus represents\n", + " # the number of hidden layers.\n", + "\n", + " # Find the number of hidden layers:\n", + " N_hidden = np.size(num_neurons)\n", + "\n", + " ## Set up initial weights and biases\n", + "\n", + " # Initialize the list of parameters:\n", + " P = [None]*(N_hidden + 1) # + 1 to include the output layer\n", + "\n", + " P[0] = npr.randn(num_neurons[0], 2 )\n", + " for l in range(1,N_hidden):\n", + " P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias\n", + "\n", + " # For the output layer\n", + " P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included\n", + "\n", + " print('Initial cost: %g'%cost_function_deep(P, x))\n", + "\n", + " ## Start finding the optimal weights using gradient descent\n", + "\n", + " # Find the Python function that represents the gradient of the cost function\n", + " # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer\n", + " cost_function_deep_grad = grad(cost_function_deep,0)\n", + "\n", + " # Let the update be done num_iter times\n", + " for i in range(num_iter):\n", + " # Evaluate the gradient at the current weights and biases in P.\n", + " # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases\n", + " # in the hidden layers and output layers evaluated at x.\n", + " cost_deep_grad = cost_function_deep_grad(P, x)\n", + "\n", + " for l in range(N_hidden+1):\n", + " P[l] = P[l] - lmb * cost_deep_grad[l]\n", + "\n", + " print('Final cost: %g'%cost_function_deep(P, x))\n", + "\n", + " return P\n", + "\n", + "def g_analytic(x, gamma = 2, g0 = 10):\n", + " return g0*np.exp(-gamma*x)\n", + "\n", + "# Solve the given problem\n", + "if __name__ == '__main__':\n", + " npr.seed(15)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " N = 10\n", + " x = np.linspace(0, 1, N)\n", + "\n", + " ## Set up the initial parameters\n", + " num_hidden_neurons = np.array([10,10])\n", + " num_iter = 10000\n", + " lmb = 0.001\n", + "\n", + " P = solve_ode_deep_neural_network(x, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " res = g_trial_deep(x,P)\n", + " res_analytical = g_analytic(x)\n", + "\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.title('Performance of a deep neural network solving an ODE compared to the analytical solution')\n", + " plt.plot(x, res_analytical)\n", + " plt.plot(x, res[0,:])\n", + " plt.legend(['analytical','dnn'])\n", + " plt.ylabel('g(x)')\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Example: Population growth\n", + "\n", + "A logistic model of population growth assumes that a population converges toward an equilibrium.\n", + "The population growth can be modeled by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{log} \\tag{10}\n", + "\tg'(t) = \\alpha g(t)(A - g(t))\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $g(t)$ is the population density at time $t$, $\\alpha > 0$ the growth rate and $A > 0$ is the maximum population number in the environment.\n", + "Also, at $t = 0$ the population has the size $g(0) = g_0$, where $g_0$ is some chosen constant.\n", + "\n", + "In this example, similar network as for the exponential decay using Autograd has been used to solve the equation. However, as the implementation might suffer from e.g numerical instability\n", + "and high execution time (this might be more apparent in the examples solving PDEs),\n", + "using a library like TensorFlow is recommended.\n", + "Here, we stay with a more simple approach and implement for comparison, the simple forward Euler method.\n", + "\n", + "\n", + "\n", + "Here, we will model a population $g(t)$ in an environment having carrying capacity $A$.\n", + "The population follows the model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{solveode_population} \\tag{11}\n", + "g'(t) = \\alpha g(t)(A - g(t))\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $g(0) = g_0$.\n", + "\n", + "In this example, we let $\\alpha = 2$, $A = 1$, and $g_0 = 1.2$.\n", + "\n", + "\n", + "We will get a slightly different trial solution, as the boundary conditions are different\n", + "compared to the case for exponential decay.\n", + "\n", + "A possible trial solution satisfying the condition $g(0) = g_0$ could be\n", + "\n", + "$$\n", + "h_1(t) = g_0 + t \\cdot N(t,P)\n", + "$$\n", + "\n", + "with $N(t,P)$ being the output from the neural network with weights and biases for each layer collected in the set $P$.\n", + "\n", + "The analytical solution is\n", + "\n", + "$$\n", + "g(t) = \\frac{Ag_0}{g_0 + (A - g_0)\\exp(-\\alpha A t)}\n", + "$$\n", + "\n", + "\n", + "\n", + "The network will be the similar as for the exponential decay example, but with some small modifications for our problem." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad, elementwise_grad\n", + "import autograd.numpy.random as npr\n", + "from matplotlib import pyplot as plt\n", + "\n", + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "# Function to get the parameters.\n", + "# Done such that one can easily change the paramaters after one's liking.\n", + "def get_parameters():\n", + " alpha = 2\n", + " A = 1\n", + " g0 = 1.2\n", + " return alpha, A, g0\n", + "\n", + "def deep_neural_network(P, x):\n", + " # N_hidden is the number of hidden layers\n", + " N_hidden = np.size(P) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer\n", + "\n", + " # Assumes input x being an one-dimensional array\n", + " num_values = np.size(x)\n", + " x = x.reshape(-1, num_values)\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + "\n", + " # Due to multiple hidden layers, define a variable referencing to the\n", + " # output of the previous layer:\n", + " x_prev = x_input\n", + "\n", + " ## Hidden layers:\n", + "\n", + " for l in range(N_hidden):\n", + " # From the list of parameters P; find the correct weigths and bias for this layer\n", + " w_hidden = P[l]\n", + "\n", + " # Add a row of ones to include bias\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_prev)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " # Update x_prev such that next layer can use the output from this layer\n", + " x_prev = x_hidden\n", + "\n", + " ## Output layer:\n", + "\n", + " # Get the weights and bias for this layer\n", + " w_output = P[-1]\n", + "\n", + " # Include bias:\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_prev)\n", + " x_output = z_output\n", + "\n", + " return x_output\n", + "\n", + "\n", + "def cost_function_deep(P, x):\n", + "\n", + " # Evaluate the trial function with the current parameters P\n", + " g_t = g_trial_deep(x,P)\n", + "\n", + " # Find the derivative w.r.t x of the trial function\n", + " d_g_t = elementwise_grad(g_trial_deep,0)(x,P)\n", + "\n", + " # The right side of the ODE\n", + " func = f(x, g_t)\n", + "\n", + " err_sqr = (d_g_t - func)**2\n", + " cost_sum = np.sum(err_sqr)\n", + "\n", + " return cost_sum / np.size(err_sqr)\n", + "\n", + "# The right side of the ODE:\n", + "def f(x, g_trial):\n", + " alpha,A, g0 = get_parameters()\n", + " return alpha*g_trial*(A - g_trial)\n", + "\n", + "# The trial solution using the deep neural network:\n", + "def g_trial_deep(x, params):\n", + " alpha,A, g0 = get_parameters()\n", + " return g0 + x*deep_neural_network(params,x)\n", + "\n", + "# The analytical solution:\n", + "def g_analytic(t):\n", + " alpha,A, g0 = get_parameters()\n", + " return A*g0/(g0 + (A - g0)*np.exp(-alpha*A*t))\n", + "\n", + "def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb):\n", + " # num_hidden_neurons is now a list of number of neurons within each hidden layer\n", + "\n", + " # Find the number of hidden layers:\n", + " N_hidden = np.size(num_neurons)\n", + "\n", + " ## Set up initial weigths and biases\n", + "\n", + " # Initialize the list of parameters:\n", + " P = [None]*(N_hidden + 1) # + 1 to include the output layer\n", + "\n", + " P[0] = npr.randn(num_neurons[0], 2 )\n", + " for l in range(1,N_hidden):\n", + " P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias\n", + "\n", + " # For the output layer\n", + " P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included\n", + "\n", + " print('Initial cost: %g'%cost_function_deep(P, x))\n", + "\n", + " ## Start finding the optimal weigths using gradient descent\n", + "\n", + " # Find the Python function that represents the gradient of the cost function\n", + " # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer\n", + " cost_function_deep_grad = grad(cost_function_deep,0)\n", + "\n", + " # Let the update be done num_iter times\n", + " for i in range(num_iter):\n", + " # Evaluate the gradient at the current weights and biases in P.\n", + " # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases\n", + " # in the hidden layers and output layers evaluated at x.\n", + " cost_deep_grad = cost_function_deep_grad(P, x)\n", + "\n", + " for l in range(N_hidden+1):\n", + " P[l] = P[l] - lmb * cost_deep_grad[l]\n", + "\n", + " print('Final cost: %g'%cost_function_deep(P, x))\n", + "\n", + " return P\n", + "\n", + "if __name__ == '__main__':\n", + " npr.seed(4155)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " Nt = 10\n", + " T = 1\n", + " t = np.linspace(0,T, Nt)\n", + "\n", + " ## Set up the initial parameters\n", + " num_hidden_neurons = [100, 50, 25]\n", + " num_iter = 1000\n", + " lmb = 1e-3\n", + "\n", + " P = solve_ode_deep_neural_network(t, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " g_dnn_ag = g_trial_deep(t,P)\n", + " g_analytical = g_analytic(t)\n", + "\n", + " # Find the maximum absolute difference between the solutons:\n", + " diff_ag = np.max(np.abs(g_dnn_ag - g_analytical))\n", + " print(\"The max absolute difference between the solutions is: %g\"%diff_ag)\n", + "\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.title('Performance of neural network solving an ODE compared to the analytical solution')\n", + " plt.plot(t, g_analytical)\n", + " plt.plot(t, g_dnn_ag[0,:])\n", + " plt.legend(['analytical','nn'])\n", + " plt.xlabel('t')\n", + " plt.ylabel('g(t)')\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using forward Euler to solve the ODE\n", + "\n", + "A straightforward way of solving an ODE numerically, is to use Euler's method.\n", + "\n", + "Euler's method uses Taylor series to approximate the value at a function $f$ at a step $\\Delta x$ from $x$:\n", + "\n", + "$$\n", + "f(x + \\Delta x) \\approx f(x) + \\Delta x f'(x)\n", + "$$\n", + "\n", + "In our case, using Euler's method to approximate the value of $g$ at a step $\\Delta t$ from $t$ yields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + " g(t + \\Delta t) &\\approx g(t) + \\Delta t g'(t) \\\\\n", + " &= g(t) + \\Delta t \\big(\\alpha g(t)(A - g(t))\\big)\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "along with the condition that $g(0) = g_0$.\n", + "\n", + "Let $t_i = i \\cdot \\Delta t$ where $\\Delta t = \\frac{T}{N_t-1}$ where $T$ is the final time our solver must solve for and $N_t$ the number of values for $t \\in [0, T]$ for $i = 0, \\dots, N_t-1$.\n", + "\n", + "For $i \\geq 1$, we have that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "t_i &= i\\Delta t \\\\\n", + "&= (i - 1)\\Delta t + \\Delta t \\\\\n", + "&= t_{i-1} + \\Delta t\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, if $g_i = g(t_i)$ then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{aligned}\n", + " g_i &= g(t_i) \\\\\n", + " &= g(t_{i-1} + \\Delta t) \\\\\n", + " &\\approx g(t_{i-1}) + \\Delta t \\big(\\alpha g(t_{i-1})(A - g(t_{i-1}))\\big) \\\\\n", + " &= g_{i-1} + \\Delta t \\big(\\alpha g_{i-1}(A - g_{i-1})\\big)\n", + " \\end{aligned}\n", + "\\end{equation} \\label{odenum} \\tag{12}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for $i \\geq 1$ and $g_0 = g(t_0) = g(0) = g_0$.\n", + "\n", + "Equation ([12](#odenum)) could be implemented in the following way,\n", + "extending the program that uses the network using Autograd:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# Assume that all function definitions from the example program using Autograd\n", + "# are located here.\n", + "\n", + "if __name__ == '__main__':\n", + " npr.seed(4155)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " Nt = 10\n", + " T = 1\n", + " t = np.linspace(0,T, Nt)\n", + "\n", + " ## Set up the initial parameters\n", + " num_hidden_neurons = [100,50,25]\n", + " num_iter = 1000\n", + " lmb = 1e-3\n", + "\n", + " P = solve_ode_deep_neural_network(t, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " g_dnn_ag = g_trial_deep(t,P)\n", + " g_analytical = g_analytic(t)\n", + "\n", + " # Find the maximum absolute difference between the solutons:\n", + " diff_ag = np.max(np.abs(g_dnn_ag - g_analytical))\n", + " print(\"The max absolute difference between the solutions is: %g\"%diff_ag)\n", + "\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.title('Performance of neural network solving an ODE compared to the analytical solution')\n", + " plt.plot(t, g_analytical)\n", + " plt.plot(t, g_dnn_ag[0,:])\n", + " plt.legend(['analytical','nn'])\n", + " plt.xlabel('t')\n", + " plt.ylabel('g(t)')\n", + "\n", + " ## Find an approximation to the funtion using forward Euler\n", + "\n", + " alpha, A, g0 = get_parameters()\n", + " dt = T/(Nt - 1)\n", + "\n", + " # Perform forward Euler to solve the ODE\n", + " g_euler = np.zeros(Nt)\n", + " g_euler[0] = g0\n", + "\n", + " for i in range(1,Nt):\n", + " g_euler[i] = g_euler[i-1] + dt*(alpha*g_euler[i-1]*(A - g_euler[i-1]))\n", + "\n", + " # Print the errors done by each method\n", + " diff1 = np.max(np.abs(g_euler - g_analytical))\n", + " diff2 = np.max(np.abs(g_dnn_ag[0,:] - g_analytical))\n", + "\n", + " print('Max absolute difference between Euler method and analytical: %g'%diff1)\n", + " print('Max absolute difference between deep neural network and analytical: %g'%diff2)\n", + "\n", + " # Plot results\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.plot(t,g_euler)\n", + " plt.plot(t,g_analytical)\n", + " plt.plot(t,g_dnn_ag[0,:])\n", + "\n", + " plt.legend(['euler','analytical','dnn'])\n", + " plt.xlabel('Time t')\n", + " plt.ylabel('g(t)')\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Solving the one dimensional Poisson equation\n", + "\n", + "The Poisson equation for $g(x)$ in one dimension is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{poisson} \\tag{13}\n", + " -g''(x) = f(x)\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $f(x)$ is a given function for $x \\in (0,1)$.\n", + "\n", + "The conditions that $g(x)$ is chosen to fulfill, are" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " g(0) &= 0 \\\\\n", + " g(1) &= 0\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This equation can be solved numerically using programs where e.g Autograd and TensorFlow are used.\n", + "The results from the networks can then be compared to the analytical solution.\n", + "In addition, it could be interesting to see how a typical method for numerically solving second order ODEs compares to the neural networks.\n", + "\n", + "\n", + "Here, the function $g(x)$ to solve for follows the equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "-g''(x) = f(x),\\qquad x \\in (0,1)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $f(x)$ is a given function, along with the chosen conditions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{aligned}\n", + "g(0) = g(1) = 0\n", + "\\end{aligned}\\label{cond} \\tag{14}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we consider the case when $f(x) = (3x + x^2)\\exp(x)$.\n", + "\n", + "For this case, a possible trial solution satisfying the conditions could be" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "g_t(x) = x \\cdot (1-x) \\cdot N(P,x)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The analytical solution for this problem is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "g(x) = x(1 - x)\\exp(x)\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad, elementwise_grad\n", + "import autograd.numpy.random as npr\n", + "from matplotlib import pyplot as plt\n", + "\n", + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "def deep_neural_network(deep_params, x):\n", + " # N_hidden is the number of hidden layers\n", + " N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer\n", + "\n", + " # Assumes input x being an one-dimensional array\n", + " num_values = np.size(x)\n", + " x = x.reshape(-1, num_values)\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + "\n", + " # Due to multiple hidden layers, define a variable referencing to the\n", + " # output of the previous layer:\n", + " x_prev = x_input\n", + "\n", + " ## Hidden layers:\n", + "\n", + " for l in range(N_hidden):\n", + " # From the list of parameters P; find the correct weigths and bias for this layer\n", + " w_hidden = deep_params[l]\n", + "\n", + " # Add a row of ones to include bias\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_prev)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " # Update x_prev such that next layer can use the output from this layer\n", + " x_prev = x_hidden\n", + "\n", + " ## Output layer:\n", + "\n", + " # Get the weights and bias for this layer\n", + " w_output = deep_params[-1]\n", + "\n", + " # Include bias:\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_prev)\n", + " x_output = z_output\n", + "\n", + " return x_output\n", + "\n", + "def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb):\n", + " # num_hidden_neurons is now a list of number of neurons within each hidden layer\n", + "\n", + " # Find the number of hidden layers:\n", + " N_hidden = np.size(num_neurons)\n", + "\n", + " ## Set up initial weigths and biases\n", + "\n", + " # Initialize the list of parameters:\n", + " P = [None]*(N_hidden + 1) # + 1 to include the output layer\n", + "\n", + " P[0] = npr.randn(num_neurons[0], 2 )\n", + " for l in range(1,N_hidden):\n", + " P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias\n", + "\n", + " # For the output layer\n", + " P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included\n", + "\n", + " print('Initial cost: %g'%cost_function_deep(P, x))\n", + "\n", + " ## Start finding the optimal weigths using gradient descent\n", + "\n", + " # Find the Python function that represents the gradient of the cost function\n", + " # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer\n", + " cost_function_deep_grad = grad(cost_function_deep,0)\n", + "\n", + " # Let the update be done num_iter times\n", + " for i in range(num_iter):\n", + " # Evaluate the gradient at the current weights and biases in P.\n", + " # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases\n", + " # in the hidden layers and output layers evaluated at x.\n", + " cost_deep_grad = cost_function_deep_grad(P, x)\n", + "\n", + " for l in range(N_hidden+1):\n", + " P[l] = P[l] - lmb * cost_deep_grad[l]\n", + "\n", + " print('Final cost: %g'%cost_function_deep(P, x))\n", + "\n", + " return P\n", + "\n", + "## Set up the cost function specified for this Poisson equation:\n", + "\n", + "# The right side of the ODE\n", + "def f(x):\n", + " return (3*x + x**2)*np.exp(x)\n", + "\n", + "def cost_function_deep(P, x):\n", + "\n", + " # Evaluate the trial function with the current parameters P\n", + " g_t = g_trial_deep(x,P)\n", + "\n", + " # Find the derivative w.r.t x of the trial function\n", + " d2_g_t = elementwise_grad(elementwise_grad(g_trial_deep,0))(x,P)\n", + "\n", + " right_side = f(x)\n", + "\n", + " err_sqr = (-d2_g_t - right_side)**2\n", + " cost_sum = np.sum(err_sqr)\n", + "\n", + " return cost_sum/np.size(err_sqr)\n", + "\n", + "# The trial solution:\n", + "def g_trial_deep(x,P):\n", + " return x*(1-x)*deep_neural_network(P,x)\n", + "\n", + "# The analytic solution;\n", + "def g_analytic(x):\n", + " return x*(1-x)*np.exp(x)\n", + "\n", + "if __name__ == '__main__':\n", + " npr.seed(4155)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " Nx = 10\n", + " x = np.linspace(0,1, Nx)\n", + "\n", + " ## Set up the initial parameters\n", + " num_hidden_neurons = [200,100]\n", + " num_iter = 1000\n", + " lmb = 1e-3\n", + "\n", + " P = solve_ode_deep_neural_network(x, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " g_dnn_ag = g_trial_deep(x,P)\n", + " g_analytical = g_analytic(x)\n", + "\n", + " # Find the maximum absolute difference between the solutons:\n", + " max_diff = np.max(np.abs(g_dnn_ag - g_analytical))\n", + " print(\"The max absolute difference between the solutions is: %g\"%max_diff)\n", + "\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.title('Performance of neural network solving an ODE compared to the analytical solution')\n", + " plt.plot(x, g_analytical)\n", + " plt.plot(x, g_dnn_ag[0,:])\n", + " plt.legend(['analytical','nn'])\n", + " plt.xlabel('x')\n", + " plt.ylabel('g(x)')\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Comparing with a numerical scheme\n", + "\n", + "The Poisson equation is possible to solve using Taylor series to approximate the second derivative.\n", + "\n", + "Using Taylor series, the second derivative can be expressed as\n", + "\n", + "$$\n", + "g''(x) = \\frac{g(x + \\Delta x) - 2g(x) + g(x-\\Delta x)}{\\Delta x^2} + E_{\\Delta x}(x)\n", + "$$\n", + "\n", + "where $\\Delta x$ is a small step size and $E_{\\Delta x}(x)$ being the error term.\n", + "\n", + "Looking away from the error terms gives an approximation to the second derivative:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{approx} \\tag{15}\n", + "g''(x) \\approx \\frac{g(x + \\Delta x) - 2g(x) + g(x-\\Delta x)}{\\Delta x^2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If $x_i = i \\Delta x = x_{i-1} + \\Delta x$ and $g_i = g(x_i)$ for $i = 1,\\dots N_x - 2$ with $N_x$ being the number of values for $x$, ([15](#approx)) becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "g''(x_i) &\\approx \\frac{g(x_i + \\Delta x) - 2g(x_i) + g(x_i -\\Delta x)}{\\Delta x^2} \\\\\n", + "&= \\frac{g_{i+1} - 2g_i + g_{i-1}}{\\Delta x^2}\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we know from our problem that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "-g''(x) &= f(x) \\\\\n", + "&= (3x + x^2)\\exp(x)\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "along with the conditions $g(0) = g(1) = 0$,\n", + "the following scheme can be used to find an approximate solution for $g(x)$ numerically:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\begin{aligned}\n", + " -\\Big( \\frac{g_{i+1} - 2g_i + g_{i-1}}{\\Delta x^2} \\Big) &= f(x_i) \\\\\n", + " -g_{i+1} + 2g_i - g_{i-1} &= \\Delta x^2 f(x_i)\n", + " \\end{aligned}\n", + "\\end{equation} \\label{odesys} \\tag{16}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for $i = 1, \\dots, N_x - 2$ where $g_0 = g_{N_x - 1} = 0$ and $f(x_i) = (3x_i + x_i^2)\\exp(x_i)$, which is given for our specific problem.\n", + "\n", + "The equation can be rewritten into a matrix equation:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "\\begin{pmatrix}\n", + "2 & -1 & 0 & \\dots & 0 \\\\\n", + "-1 & 2 & -1 & \\dots & 0 \\\\\n", + "\\vdots & & \\ddots & & \\vdots \\\\\n", + "0 & \\dots & -1 & 2 & -1 \\\\\n", + "0 & \\dots & 0 & -1 & 2\\\\\n", + "\\end{pmatrix}\n", + "\\begin{pmatrix}\n", + "g_1 \\\\\n", + "g_2 \\\\\n", + "\\vdots \\\\\n", + "g_{N_x - 3} \\\\\n", + "g_{N_x - 2}\n", + "\\end{pmatrix}\n", + "&=\n", + "\\Delta x^2\n", + "\\begin{pmatrix}\n", + "f(x_1) \\\\\n", + "f(x_2) \\\\\n", + "\\vdots \\\\\n", + "f(x_{N_x - 3}) \\\\\n", + "f(x_{N_x - 2})\n", + "\\end{pmatrix} \\\\\n", + "\\boldsymbol{A}\\boldsymbol{g} &= \\boldsymbol{f},\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which makes it possible to solve for the vector $\\boldsymbol{g}$.\n", + "\n", + "\n", + "We can then compare the result from this numerical scheme with the output from our network using Autograd:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad, elementwise_grad\n", + "import autograd.numpy.random as npr\n", + "from matplotlib import pyplot as plt\n", + "\n", + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "def deep_neural_network(deep_params, x):\n", + " # N_hidden is the number of hidden layers\n", + " N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer\n", + "\n", + " # Assumes input x being an one-dimensional array\n", + " num_values = np.size(x)\n", + " x = x.reshape(-1, num_values)\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + "\n", + " # Due to multiple hidden layers, define a variable referencing to the\n", + " # output of the previous layer:\n", + " x_prev = x_input\n", + "\n", + " ## Hidden layers:\n", + "\n", + " for l in range(N_hidden):\n", + " # From the list of parameters P; find the correct weigths and bias for this layer\n", + " w_hidden = deep_params[l]\n", + "\n", + " # Add a row of ones to include bias\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_prev)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " # Update x_prev such that next layer can use the output from this layer\n", + " x_prev = x_hidden\n", + "\n", + " ## Output layer:\n", + "\n", + " # Get the weights and bias for this layer\n", + " w_output = deep_params[-1]\n", + "\n", + " # Include bias:\n", + " x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_prev)\n", + " x_output = z_output\n", + "\n", + " return x_output\n", + "\n", + "def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb):\n", + " # num_hidden_neurons is now a list of number of neurons within each hidden layer\n", + "\n", + " # Find the number of hidden layers:\n", + " N_hidden = np.size(num_neurons)\n", + "\n", + " ## Set up initial weigths and biases\n", + "\n", + " # Initialize the list of parameters:\n", + " P = [None]*(N_hidden + 1) # + 1 to include the output layer\n", + "\n", + " P[0] = npr.randn(num_neurons[0], 2 )\n", + " for l in range(1,N_hidden):\n", + " P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias\n", + "\n", + " # For the output layer\n", + " P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included\n", + "\n", + " print('Initial cost: %g'%cost_function_deep(P, x))\n", + "\n", + " ## Start finding the optimal weigths using gradient descent\n", + "\n", + " # Find the Python function that represents the gradient of the cost function\n", + " # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer\n", + " cost_function_deep_grad = grad(cost_function_deep,0)\n", + "\n", + " # Let the update be done num_iter times\n", + " for i in range(num_iter):\n", + " # Evaluate the gradient at the current weights and biases in P.\n", + " # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases\n", + " # in the hidden layers and output layers evaluated at x.\n", + " cost_deep_grad = cost_function_deep_grad(P, x)\n", + "\n", + " for l in range(N_hidden+1):\n", + " P[l] = P[l] - lmb * cost_deep_grad[l]\n", + "\n", + " print('Final cost: %g'%cost_function_deep(P, x))\n", + "\n", + " return P\n", + "\n", + "## Set up the cost function specified for this Poisson equation:\n", + "\n", + "# The right side of the ODE\n", + "def f(x):\n", + " return (3*x + x**2)*np.exp(x)\n", + "\n", + "def cost_function_deep(P, x):\n", + "\n", + " # Evaluate the trial function with the current parameters P\n", + " g_t = g_trial_deep(x,P)\n", + "\n", + " # Find the derivative w.r.t x of the trial function\n", + " d2_g_t = elementwise_grad(elementwise_grad(g_trial_deep,0))(x,P)\n", + "\n", + " right_side = f(x)\n", + "\n", + " err_sqr = (-d2_g_t - right_side)**2\n", + " cost_sum = np.sum(err_sqr)\n", + "\n", + " return cost_sum/np.size(err_sqr)\n", + "\n", + "# The trial solution:\n", + "def g_trial_deep(x,P):\n", + " return x*(1-x)*deep_neural_network(P,x)\n", + "\n", + "# The analytic solution;\n", + "def g_analytic(x):\n", + " return x*(1-x)*np.exp(x)\n", + "\n", + "if __name__ == '__main__':\n", + " npr.seed(4155)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " Nx = 10\n", + " x = np.linspace(0,1, Nx)\n", + "\n", + " ## Set up the initial parameters\n", + " num_hidden_neurons = [200,100]\n", + " num_iter = 1000\n", + " lmb = 1e-3\n", + "\n", + " P = solve_ode_deep_neural_network(x, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " g_dnn_ag = g_trial_deep(x,P)\n", + " g_analytical = g_analytic(x)\n", + "\n", + " # Find the maximum absolute difference between the solutons:\n", + "\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.title('Performance of neural network solving an ODE compared to the analytical solution')\n", + " plt.plot(x, g_analytical)\n", + " plt.plot(x, g_dnn_ag[0,:])\n", + " plt.legend(['analytical','nn'])\n", + " plt.xlabel('x')\n", + " plt.ylabel('g(x)')\n", + "\n", + " ## Perform the computation using the numerical scheme\n", + "\n", + " dx = 1/(Nx - 1)\n", + "\n", + " # Set up the matrix A\n", + " A = np.zeros((Nx-2,Nx-2))\n", + "\n", + " A[0,0] = 2\n", + " A[0,1] = -1\n", + "\n", + " for i in range(1,Nx-3):\n", + " A[i,i-1] = -1\n", + " A[i,i] = 2\n", + " A[i,i+1] = -1\n", + "\n", + " A[Nx - 3, Nx - 4] = -1\n", + " A[Nx - 3, Nx - 3] = 2\n", + "\n", + " # Set up the vector f\n", + " f_vec = dx**2 * f(x[1:-1])\n", + "\n", + " # Solve the equation\n", + " g_res = np.linalg.solve(A,f_vec)\n", + "\n", + " g_vec = np.zeros(Nx)\n", + " g_vec[1:-1] = g_res\n", + "\n", + " # Print the differences between each method\n", + " max_diff1 = np.max(np.abs(g_dnn_ag - g_analytical))\n", + " max_diff2 = np.max(np.abs(g_vec - g_analytical))\n", + " print(\"The max absolute difference between the analytical solution and DNN Autograd: %g\"%max_diff1)\n", + " print(\"The max absolute difference between the analytical solution and numerical scheme: %g\"%max_diff2)\n", + "\n", + " # Plot the results\n", + " plt.figure(figsize=(10,10))\n", + "\n", + " plt.plot(x,g_vec)\n", + " plt.plot(x,g_analytical)\n", + " plt.plot(x,g_dnn_ag[0,:])\n", + "\n", + " plt.legend(['numerical scheme','analytical','dnn'])\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Partial Differential Equations\n", + "\n", + "A partial differential equation (PDE) has a solution here the function\n", + "is defined by multiple variables. The equation may involve all kinds\n", + "of combinations of which variables the function is differentiated with\n", + "respect to.\n", + "\n", + "In general, a partial differential equation for a function $g(x_1,\\dots,x_N)$ with $N$ variables may be expressed as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{PDE} \\tag{17}\n", + " f\\left(x_1, \\, \\dots \\, , x_N, \\frac{\\partial g(x_1,\\dots,x_N) }{\\partial x_1}, \\dots , \\frac{\\partial g(x_1,\\dots,x_N) }{\\partial x_N}, \\frac{\\partial g(x_1,\\dots,x_N) }{\\partial x_1\\partial x_2}, \\, \\dots \\, , \\frac{\\partial^n g(x_1,\\dots,x_N) }{\\partial x_N^n} \\right) = 0\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $f$ is an expression involving all kinds of possible mixed derivatives of $g(x_1,\\dots,x_N)$ up to an order $n$. In order for the solution to be unique, some additional conditions must also be given.\n", + "\n", + "### Type of problem\n", + "\n", + "The problem our network must solve for, is similar to the ODE case.\n", + "We must have a trial solution $g_t$ at hand.\n", + "\n", + "For instance, the trial solution could be expressed as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " g_t(x_1,\\dots,x_N) = h_1(x_1,\\dots,x_N) + h_2(x_1,\\dots,x_N,N(x_1,\\dots,x_N,P))\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $h_1(x_1,\\dots,x_N)$ is a function that ensures $g_t(x_1,\\dots,x_N)$ satisfies some given conditions.\n", + "The neural network $N(x_1,\\dots,x_N,P)$ has weights and biases described by $P$ and $h_2(x_1,\\dots,x_N,N(x_1,\\dots,x_N,P))$ is an expression using the output from the neural network in some way.\n", + "\n", + "The role of the function $h_2(x_1,\\dots,x_N,N(x_1,\\dots,x_N,P))$, is to ensure that the output of $N(x_1,\\dots,x_N,P)$ is zero when $g_t(x_1,\\dots,x_N)$ is evaluated at the values of $x_1,\\dots,x_N$ where the given conditions must be satisfied. The function $h_1(x_1,\\dots,x_N)$ should alone make $g_t(x_1,\\dots,x_N)$ satisfy the conditions.\n", + "\n", + "\n", + "\n", + "### Network requirements\n", + "\n", + "The network tries then the minimize the cost function following the\n", + "same ideas as described for the ODE case, but now with more than one\n", + "variables to consider. The concept still remains the same; find a set\n", + "of parameters $P$ such that the expression $f$ in ([17](#PDE)) is as\n", + "close to zero as possible.\n", + "\n", + "As for the ODE case, the cost function is the mean squared error that\n", + "the network must try to minimize. The cost function for the network to\n", + "minimize is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C\\left(x_1, \\dots, x_N, P\\right) = \\left( f\\left(x_1, \\, \\dots \\, , x_N, \\frac{\\partial g(x_1,\\dots,x_N) }{\\partial x_1}, \\dots , \\frac{\\partial g(x_1,\\dots,x_N) }{\\partial x_N}, \\frac{\\partial g(x_1,\\dots,x_N) }{\\partial x_1\\partial x_2}, \\, \\dots \\, , \\frac{\\partial^n g(x_1,\\dots,x_N) }{\\partial x_N^n} \\right) \\right)^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we let $\\boldsymbol{x} = \\big( x_1, \\dots, x_N \\big)$ be an array containing the values for $x_1, \\dots, x_N$ respectively, the cost function can be reformulated into the following:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C\\left(\\boldsymbol{x}, P\\right) = f\\left( \\left( \\boldsymbol{x}, \\frac{\\partial g(\\boldsymbol{x}) }{\\partial x_1}, \\dots , \\frac{\\partial g(\\boldsymbol{x}) }{\\partial x_N}, \\frac{\\partial g(\\boldsymbol{x}) }{\\partial x_1\\partial x_2}, \\, \\dots \\, , \\frac{\\partial^n g(\\boldsymbol{x}) }{\\partial x_N^n} \\right) \\right)^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we also have $M$ different sets of values for $x_1, \\dots, x_N$, that is $\\boldsymbol{x}_i = \\big(x_1^{(i)}, \\dots, x_N^{(i)}\\big)$ for $i = 1,\\dots,M$ being the rows in matrix $X$, the cost function can be generalized into" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C\\left(X, P \\right) = \\sum_{i=1}^M f\\left( \\left( \\boldsymbol{x}_i, \\frac{\\partial g(\\boldsymbol{x}_i) }{\\partial x_1}, \\dots , \\frac{\\partial g(\\boldsymbol{x}_i) }{\\partial x_N}, \\frac{\\partial g(\\boldsymbol{x}_i) }{\\partial x_1\\partial x_2}, \\, \\dots \\, , \\frac{\\partial^n g(\\boldsymbol{x}_i) }{\\partial x_N^n} \\right) \\right)^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example: The diffusion equation\n", + "\n", + "In one spatial dimension, the equation reads" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial g(x,t)}{\\partial t} = \\frac{\\partial^2 g(x,t)}{\\partial x^2}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where a possible choice of conditions are" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "g(0,t) &= 0 ,\\qquad t \\geq 0 \\\\\n", + "g(1,t) &= 0, \\qquad t \\geq 0 \\\\\n", + "g(x,0) &= u(x),\\qquad x\\in [0,1]\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $u(x)$ being some given function.\n", + "\n", + "\n", + "\n", + "For this case, we want to find $g(x,t)$ such that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\frac{\\partial g(x,t)}{\\partial t} = \\frac{\\partial^2 g(x,t)}{\\partial x^2}\n", + "\\end{equation} \\label{diffonedim} \\tag{18}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "g(0,t) &= 0 ,\\qquad t \\geq 0 \\\\\n", + "g(1,t) &= 0, \\qquad t \\geq 0 \\\\\n", + "g(x,0) &= u(x),\\qquad x\\in [0,1]\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $u(x) = \\sin(\\pi x)$.\n", + "\n", + "First, let us set up the deep neural network.\n", + "The deep neural network will follow the same structure as discussed in the examples solving the ODEs.\n", + "First, we will look into how Autograd could be used in a network tailored to solve for bivariate functions.\n", + "\n", + "\n", + "\n", + "\n", + "The only change to do here, is to extend our network such that\n", + "functions of multiple parameters are correctly handled. In this case\n", + "we have two variables in our function to solve for, that is time $t$\n", + "and position $x$. The variables will be represented by a\n", + "one-dimensional array in the program. The program will evaluate the\n", + "network at each possible pair $(x,t)$, given an array for the desired\n", + "$x$-values and $t$-values to approximate the solution at." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "def deep_neural_network(deep_params, x):\n", + " # x is now a point and a 1D numpy array; make it a column vector\n", + " num_coordinates = np.size(x,0)\n", + " x = x.reshape(num_coordinates,-1)\n", + "\n", + " num_points = np.size(x,1)\n", + "\n", + " # N_hidden is the number of hidden layers\n", + " N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + " x_prev = x_input\n", + "\n", + " ## Hidden layers:\n", + "\n", + " for l in range(N_hidden):\n", + " # From the list of parameters P; find the correct weigths and bias for this layer\n", + " w_hidden = deep_params[l]\n", + "\n", + " # Add a row of ones to include bias\n", + " x_prev = np.concatenate((np.ones((1,num_points)), x_prev ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_prev)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " # Update x_prev such that next layer can use the output from this layer\n", + " x_prev = x_hidden\n", + "\n", + " ## Output layer:\n", + "\n", + " # Get the weights and bias for this layer\n", + " w_output = deep_params[-1]\n", + "\n", + " # Include bias:\n", + " x_prev = np.concatenate((np.ones((1,num_points)), x_prev), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_prev)\n", + " x_output = z_output\n", + "\n", + " return x_output[0][0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The cost function must then iterate through the given arrays\n", + "containing values for $x$ and $t$, defines a point $(x,t)$ the deep\n", + "neural network and the trial solution is evaluated at, and then finds\n", + "the Jacobian of the trial solution.\n", + "\n", + "A possible trial solution for this PDE is\n", + "\n", + "$$\n", + "g_t(x,t) = h_1(x,t) + x(1-x)tN(x,t,P)\n", + "$$\n", + "\n", + "with $A(x,t)$ being a function ensuring that $g_t(x,t)$ satisfies our given conditions, and $N(x,t,P)$ being the output from the deep neural network using weights and biases for each layer from $P$.\n", + "\n", + "To fulfill the conditions, $A(x,t)$ could be:\n", + "\n", + "$$\n", + "h_1(x,t) = (1-t)\\Big(u(x) - \\big((1-x)u(0) + x u(1)\\big)\\Big) = (1-t)u(x) = (1-t)\\sin(\\pi x)\n", + "$$\n", + "since $(0) = u(1) = 0$ and $u(x) = \\sin(\\pi x)$.\n", + "\n", + "\n", + "\n", + "The Jacobian is used because the program must find the derivative of\n", + "the trial solution with respect to $x$ and $t$.\n", + "\n", + "This gives the necessity of computing the Jacobian matrix, as we want\n", + "to evaluate the gradient with respect to $x$ and $t$ (note that the\n", + "Jacobian of a scalar-valued multivariate function is simply its\n", + "gradient).\n", + "\n", + "In Autograd, the differentiation is by default done with respect to\n", + "the first input argument of your Python function. Since the points is\n", + "an array representing $x$ and $t$, the Jacobian is calculated using\n", + "the values of $x$ and $t$.\n", + "\n", + "To find the second derivative with respect to $x$ and $t$, the\n", + "Jacobian can be found for the second time. The result is a Hessian\n", + "matrix, which is the matrix containing all the possible second order\n", + "mixed derivatives of $g(x,t)$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# Set up the trial function:\n", + "def u(x):\n", + " return np.sin(np.pi*x)\n", + "\n", + "def g_trial(point,P):\n", + " x,t = point\n", + " return (1-t)*u(x) + x*(1-x)*t*deep_neural_network(P,point)\n", + "\n", + "# The right side of the ODE:\n", + "def f(point):\n", + " return 0.\n", + "\n", + "# The cost function:\n", + "def cost_function(P, x, t):\n", + " cost_sum = 0\n", + "\n", + " g_t_jacobian_func = jacobian(g_trial)\n", + " g_t_hessian_func = hessian(g_trial)\n", + "\n", + " for x_ in x:\n", + " for t_ in t:\n", + " point = np.array([x_,t_])\n", + "\n", + " g_t = g_trial(point,P)\n", + " g_t_jacobian = g_t_jacobian_func(point,P)\n", + " g_t_hessian = g_t_hessian_func(point,P)\n", + "\n", + " g_t_dt = g_t_jacobian[1]\n", + " g_t_d2x = g_t_hessian[0][0]\n", + "\n", + " func = f(point)\n", + "\n", + " err_sqr = ( (g_t_dt - g_t_d2x) - func)**2\n", + " cost_sum += err_sqr\n", + "\n", + " return cost_sum" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Setting up the network using Autograd; The full program\n", + "\n", + "Having set up the network, along with the trial solution and cost function, we can now see how the deep neural network performs by comparing the results to the analytical solution.\n", + "\n", + "The analytical solution of our problem is\n", + "\n", + "$$\n", + "g(x,t) = \\exp(-\\pi^2 t)\\sin(\\pi x)\n", + "$$\n", + "\n", + "A possible way to implement a neural network solving the PDE, is given below.\n", + "Be aware, though, that it is fairly slow for the parameters used.\n", + "A better result is possible, but requires more iterations, and thus longer time to complete.\n", + "\n", + "\n", + "Indeed, the program below is not optimal in its implementation, but rather serves as an example on how to implement and use a neural network to solve a PDE.\n", + "Using TensorFlow results in a much better execution time. Try it!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import autograd.numpy as np\n", + "from autograd import jacobian,hessian,grad\n", + "import autograd.numpy.random as npr\n", + "from matplotlib import cm\n", + "from matplotlib import pyplot as plt\n", + "from mpl_toolkits.mplot3d import axes3d\n", + "\n", + "## Set up the network\n", + "\n", + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "def deep_neural_network(deep_params, x):\n", + " # x is now a point and a 1D numpy array; make it a column vector\n", + " num_coordinates = np.size(x,0)\n", + " x = x.reshape(num_coordinates,-1)\n", + "\n", + " num_points = np.size(x,1)\n", + "\n", + " # N_hidden is the number of hidden layers\n", + " N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + " x_prev = x_input\n", + "\n", + " ## Hidden layers:\n", + "\n", + " for l in range(N_hidden):\n", + " # From the list of parameters P; find the correct weigths and bias for this layer\n", + " w_hidden = deep_params[l]\n", + "\n", + " # Add a row of ones to include bias\n", + " x_prev = np.concatenate((np.ones((1,num_points)), x_prev ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_prev)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " # Update x_prev such that next layer can use the output from this layer\n", + " x_prev = x_hidden\n", + "\n", + " ## Output layer:\n", + "\n", + " # Get the weights and bias for this layer\n", + " w_output = deep_params[-1]\n", + "\n", + " # Include bias:\n", + " x_prev = np.concatenate((np.ones((1,num_points)), x_prev), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_prev)\n", + " x_output = z_output\n", + "\n", + " return x_output[0][0]\n", + "\n", + "## Define the trial solution and cost function\n", + "def u(x):\n", + " return np.sin(np.pi*x)\n", + "\n", + "def g_trial(point,P):\n", + " x,t = point\n", + " return (1-t)*u(x) + x*(1-x)*t*deep_neural_network(P,point)\n", + "\n", + "# The right side of the ODE:\n", + "def f(point):\n", + " return 0.\n", + "\n", + "# The cost function:\n", + "def cost_function(P, x, t):\n", + " cost_sum = 0\n", + "\n", + " g_t_jacobian_func = jacobian(g_trial)\n", + " g_t_hessian_func = hessian(g_trial)\n", + "\n", + " for x_ in x:\n", + " for t_ in t:\n", + " point = np.array([x_,t_])\n", + "\n", + " g_t = g_trial(point,P)\n", + " g_t_jacobian = g_t_jacobian_func(point,P)\n", + " g_t_hessian = g_t_hessian_func(point,P)\n", + "\n", + " g_t_dt = g_t_jacobian[1]\n", + " g_t_d2x = g_t_hessian[0][0]\n", + "\n", + " func = f(point)\n", + "\n", + " err_sqr = ( (g_t_dt - g_t_d2x) - func)**2\n", + " cost_sum += err_sqr\n", + "\n", + " return cost_sum /( np.size(x)*np.size(t) )\n", + "\n", + "## For comparison, define the analytical solution\n", + "def g_analytic(point):\n", + " x,t = point\n", + " return np.exp(-np.pi**2*t)*np.sin(np.pi*x)\n", + "\n", + "## Set up a function for training the network to solve for the equation\n", + "def solve_pde_deep_neural_network(x,t, num_neurons, num_iter, lmb):\n", + " ## Set up initial weigths and biases\n", + " N_hidden = np.size(num_neurons)\n", + "\n", + " ## Set up initial weigths and biases\n", + "\n", + " # Initialize the list of parameters:\n", + " P = [None]*(N_hidden + 1) # + 1 to include the output layer\n", + "\n", + " P[0] = npr.randn(num_neurons[0], 2 + 1 ) # 2 since we have two points, +1 to include bias\n", + " for l in range(1,N_hidden):\n", + " P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias\n", + "\n", + " # For the output layer\n", + " P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included\n", + "\n", + " print('Initial cost: ',cost_function(P, x, t))\n", + "\n", + " cost_function_grad = grad(cost_function,0)\n", + "\n", + " # Let the update be done num_iter times\n", + " for i in range(num_iter):\n", + " cost_grad = cost_function_grad(P, x , t)\n", + "\n", + " for l in range(N_hidden+1):\n", + " P[l] = P[l] - lmb * cost_grad[l]\n", + "\n", + " print('Final cost: ',cost_function(P, x, t))\n", + "\n", + " return P\n", + "\n", + "if __name__ == '__main__':\n", + " ### Use the neural network:\n", + " npr.seed(15)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " Nx = 10; Nt = 10\n", + " x = np.linspace(0, 1, Nx)\n", + " t = np.linspace(0,1,Nt)\n", + "\n", + " ## Set up the parameters for the network\n", + " num_hidden_neurons = [100, 25]\n", + " num_iter = 250\n", + " lmb = 0.01\n", + "\n", + " P = solve_pde_deep_neural_network(x,t, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " ## Store the results\n", + " g_dnn_ag = np.zeros((Nx, Nt))\n", + " G_analytical = np.zeros((Nx, Nt))\n", + " for i,x_ in enumerate(x):\n", + " for j, t_ in enumerate(t):\n", + " point = np.array([x_, t_])\n", + " g_dnn_ag[i,j] = g_trial(point,P)\n", + "\n", + " G_analytical[i,j] = g_analytic(point)\n", + "\n", + " # Find the map difference between the analytical and the computed solution\n", + " diff_ag = np.abs(g_dnn_ag - G_analytical)\n", + " print('Max absolute difference between the analytical solution and the network: %g'%np.max(diff_ag))\n", + "\n", + " ## Plot the solutions in two dimensions, that being in position and time\n", + "\n", + " T,X = np.meshgrid(t,x)\n", + "\n", + " fig = plt.figure(figsize=(10,10))\n", + " ax = fig.gca(projection='3d')\n", + " ax.set_title('Solution from the deep neural network w/ %d layer'%len(num_hidden_neurons))\n", + " s = ax.plot_surface(T,X,g_dnn_ag,linewidth=0,antialiased=False,cmap=cm.viridis)\n", + " ax.set_xlabel('Time $t$')\n", + " ax.set_ylabel('Position $x$');\n", + "\n", + "\n", + " fig = plt.figure(figsize=(10,10))\n", + " ax = fig.gca(projection='3d')\n", + " ax.set_title('Analytical solution')\n", + " s = ax.plot_surface(T,X,G_analytical,linewidth=0,antialiased=False,cmap=cm.viridis)\n", + " ax.set_xlabel('Time $t$')\n", + " ax.set_ylabel('Position $x$');\n", + "\n", + " fig = plt.figure(figsize=(10,10))\n", + " ax = fig.gca(projection='3d')\n", + " ax.set_title('Difference')\n", + " s = ax.plot_surface(T,X,diff_ag,linewidth=0,antialiased=False,cmap=cm.viridis)\n", + " ax.set_xlabel('Time $t$')\n", + " ax.set_ylabel('Position $x$');\n", + "\n", + " ## Take some slices of the 3D plots just to see the solutions at particular times\n", + " indx1 = 0\n", + " indx2 = int(Nt/2)\n", + " indx3 = Nt-1\n", + "\n", + " t1 = t[indx1]\n", + " t2 = t[indx2]\n", + " t3 = t[indx3]\n", + "\n", + " # Slice the results from the DNN\n", + " res1 = g_dnn_ag[:,indx1]\n", + " res2 = g_dnn_ag[:,indx2]\n", + " res3 = g_dnn_ag[:,indx3]\n", + "\n", + " # Slice the analytical results\n", + " res_analytical1 = G_analytical[:,indx1]\n", + " res_analytical2 = G_analytical[:,indx2]\n", + " res_analytical3 = G_analytical[:,indx3]\n", + "\n", + " # Plot the slices\n", + " plt.figure(figsize=(10,10))\n", + " plt.title(\"Computed solutions at time = %g\"%t1)\n", + " plt.plot(x, res1)\n", + " plt.plot(x,res_analytical1)\n", + " plt.legend(['dnn','analytical'])\n", + "\n", + " plt.figure(figsize=(10,10))\n", + " plt.title(\"Computed solutions at time = %g\"%t2)\n", + " plt.plot(x, res2)\n", + " plt.plot(x,res_analytical2)\n", + " plt.legend(['dnn','analytical'])\n", + "\n", + " plt.figure(figsize=(10,10))\n", + " plt.title(\"Computed solutions at time = %g\"%t3)\n", + " plt.plot(x, res3)\n", + " plt.plot(x,res_analytical3)\n", + " plt.legend(['dnn','analytical'])\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Solving the wave equation with Neural Networks\n", + "\n", + "The wave equation is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial^2 g(x,t)}{\\partial t^2} = c^2\\frac{\\partial^2 g(x,t)}{\\partial x^2}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $c$ being the specified wave speed.\n", + "\n", + "Here, the chosen conditions are" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\tg(0,t) &= 0 \\\\\n", + "\tg(1,t) &= 0 \\\\\n", + "\tg(x,0) &= u(x) \\\\\n", + "\t\\frac{\\partial g(x,t)}{\\partial t} \\Big |_{t = 0} &= v(x)\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\frac{\\partial g(x,t)}{\\partial t} \\Big |_{t = 0}$ means the derivative of $g(x,t)$ with respect to $t$ is evaluated at $t = 0$, and $u(x)$ and $v(x)$ being given functions.\n", + "\n", + "\n", + "The wave equation to solve for, is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \\label{wave} \\tag{19}\n", + "\\frac{\\partial^2 g(x,t)}{\\partial t^2} = c^2 \\frac{\\partial^2 g(x,t)}{\\partial x^2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $c$ is the given wave speed.\n", + "The chosen conditions for this equation are" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{aligned}\n", + "g(0,t) &= 0, &t \\geq 0 \\\\\n", + "g(1,t) &= 0, &t \\geq 0 \\\\\n", + "g(x,0) &= u(x), &x\\in[0,1] \\\\\n", + "\\frac{\\partial g(x,t)}{\\partial t}\\Big |_{t = 0} &= v(x), &x \\in [0,1]\n", + "\\end{aligned} \\label{condwave} \\tag{20}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, let $c = 1$ and $u(x) = \\sin(\\pi x)$ and $v(x) = -\\pi\\sin(\\pi x)$.\n", + "\n", + "\n", + "\n", + "Setting up the network is done in similar matter as for the example of solving the diffusion equation.\n", + "The only things we have to change, is the trial solution such that it satisfies the conditions from ([20](#condwave)) and the cost function.\n", + "\n", + "The trial solution becomes slightly different since we have other conditions than in the example of solving the diffusion equation. Here, a possible trial solution $g_t(x,t)$ is\n", + "\n", + "$$\n", + "g_t(x,t) = h_1(x,t) + x(1-x)t^2N(x,t,P)\n", + "$$\n", + "\n", + "where\n", + "\n", + "$$\n", + "h_1(x,t) = (1-t^2)u(x) + tv(x)\n", + "$$\n", + "\n", + "Note that this trial solution satisfies the conditions only if $u(0) = v(0) = u(1) = v(1) = 0$, which is the case in this example.\n", + "\n", + "\n", + "The analytical solution for our specific problem, is\n", + "\n", + "$$\n", + "g(x,t) = \\sin(\\pi x)\\cos(\\pi t) - \\sin(\\pi x)\\sin(\\pi t)\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import autograd.numpy as np\n", + "from autograd import hessian,grad\n", + "import autograd.numpy.random as npr\n", + "from matplotlib import cm\n", + "from matplotlib import pyplot as plt\n", + "from mpl_toolkits.mplot3d import axes3d\n", + "\n", + "## Set up the trial function:\n", + "def u(x):\n", + " return np.sin(np.pi*x)\n", + "\n", + "def v(x):\n", + " return -np.pi*np.sin(np.pi*x)\n", + "\n", + "def h1(point):\n", + " x,t = point\n", + " return (1 - t**2)*u(x) + t*v(x)\n", + "\n", + "def g_trial(point,P):\n", + " x,t = point\n", + " return h1(point) + x*(1-x)*t**2*deep_neural_network(P,point)\n", + "\n", + "## Define the cost function\n", + "def cost_function(P, x, t):\n", + " cost_sum = 0\n", + "\n", + " g_t_hessian_func = hessian(g_trial)\n", + "\n", + " for x_ in x:\n", + " for t_ in t:\n", + " point = np.array([x_,t_])\n", + "\n", + " g_t_hessian = g_t_hessian_func(point,P)\n", + "\n", + " g_t_d2x = g_t_hessian[0][0]\n", + " g_t_d2t = g_t_hessian[1][1]\n", + "\n", + " err_sqr = ( (g_t_d2t - g_t_d2x) )**2\n", + " cost_sum += err_sqr\n", + "\n", + " return cost_sum / (np.size(t) * np.size(x))\n", + "\n", + "## The neural network\n", + "def sigmoid(z):\n", + " return 1/(1 + np.exp(-z))\n", + "\n", + "def deep_neural_network(deep_params, x):\n", + " # x is now a point and a 1D numpy array; make it a column vector\n", + " num_coordinates = np.size(x,0)\n", + " x = x.reshape(num_coordinates,-1)\n", + "\n", + " num_points = np.size(x,1)\n", + "\n", + " # N_hidden is the number of hidden layers\n", + " N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer\n", + "\n", + " # Assume that the input layer does nothing to the input x\n", + " x_input = x\n", + " x_prev = x_input\n", + "\n", + " ## Hidden layers:\n", + "\n", + " for l in range(N_hidden):\n", + " # From the list of parameters P; find the correct weigths and bias for this layer\n", + " w_hidden = deep_params[l]\n", + "\n", + " # Add a row of ones to include bias\n", + " x_prev = np.concatenate((np.ones((1,num_points)), x_prev ), axis = 0)\n", + "\n", + " z_hidden = np.matmul(w_hidden, x_prev)\n", + " x_hidden = sigmoid(z_hidden)\n", + "\n", + " # Update x_prev such that next layer can use the output from this layer\n", + " x_prev = x_hidden\n", + "\n", + " ## Output layer:\n", + "\n", + " # Get the weights and bias for this layer\n", + " w_output = deep_params[-1]\n", + "\n", + " # Include bias:\n", + " x_prev = np.concatenate((np.ones((1,num_points)), x_prev), axis = 0)\n", + "\n", + " z_output = np.matmul(w_output, x_prev)\n", + " x_output = z_output\n", + "\n", + " return x_output[0][0]\n", + "\n", + "## The analytical solution\n", + "def g_analytic(point):\n", + " x,t = point\n", + " return np.sin(np.pi*x)*np.cos(np.pi*t) - np.sin(np.pi*x)*np.sin(np.pi*t)\n", + "\n", + "def solve_pde_deep_neural_network(x,t, num_neurons, num_iter, lmb):\n", + " ## Set up initial weigths and biases\n", + " N_hidden = np.size(num_neurons)\n", + "\n", + " ## Set up initial weigths and biases\n", + "\n", + " # Initialize the list of parameters:\n", + " P = [None]*(N_hidden + 1) # + 1 to include the output layer\n", + "\n", + " P[0] = npr.randn(num_neurons[0], 2 + 1 ) # 2 since we have two points, +1 to include bias\n", + " for l in range(1,N_hidden):\n", + " P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias\n", + "\n", + " # For the output layer\n", + " P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included\n", + "\n", + " print('Initial cost: ',cost_function(P, x, t))\n", + "\n", + " cost_function_grad = grad(cost_function,0)\n", + "\n", + " # Let the update be done num_iter times\n", + " for i in range(num_iter):\n", + " cost_grad = cost_function_grad(P, x , t)\n", + "\n", + " for l in range(N_hidden+1):\n", + " P[l] = P[l] - lmb * cost_grad[l]\n", + "\n", + "\n", + " print('Final cost: ',cost_function(P, x, t))\n", + "\n", + " return P\n", + "\n", + "if __name__ == '__main__':\n", + " ### Use the neural network:\n", + " npr.seed(15)\n", + "\n", + " ## Decide the vales of arguments to the function to solve\n", + " Nx = 10; Nt = 10\n", + " x = np.linspace(0, 1, Nx)\n", + " t = np.linspace(0,1,Nt)\n", + "\n", + " ## Set up the parameters for the network\n", + " num_hidden_neurons = [50,20]\n", + " num_iter = 1000\n", + " lmb = 0.01\n", + "\n", + " P = solve_pde_deep_neural_network(x,t, num_hidden_neurons, num_iter, lmb)\n", + "\n", + " ## Store the results\n", + " res = np.zeros((Nx, Nt))\n", + " res_analytical = np.zeros((Nx, Nt))\n", + " for i,x_ in enumerate(x):\n", + " for j, t_ in enumerate(t):\n", + " point = np.array([x_, t_])\n", + " res[i,j] = g_trial(point,P)\n", + "\n", + " res_analytical[i,j] = g_analytic(point)\n", + "\n", + " diff = np.abs(res - res_analytical)\n", + " print(\"Max difference between analytical and solution from nn: %g\"%np.max(diff))\n", + "\n", + " ## Plot the solutions in two dimensions, that being in position and time\n", + "\n", + " T,X = np.meshgrid(t,x)\n", + "\n", + " fig = plt.figure(figsize=(10,10))\n", + " ax = fig.gca(projection='3d')\n", + " ax.set_title('Solution from the deep neural network w/ %d layer'%len(num_hidden_neurons))\n", + " s = ax.plot_surface(T,X,res,linewidth=0,antialiased=False,cmap=cm.viridis)\n", + " ax.set_xlabel('Time $t$')\n", + " ax.set_ylabel('Position $x$');\n", + "\n", + "\n", + " fig = plt.figure(figsize=(10,10))\n", + " ax = fig.gca(projection='3d')\n", + " ax.set_title('Analytical solution')\n", + " s = ax.plot_surface(T,X,res_analytical,linewidth=0,antialiased=False,cmap=cm.viridis)\n", + " ax.set_xlabel('Time $t$')\n", + " ax.set_ylabel('Position $x$');\n", + "\n", + "\n", + " fig = plt.figure(figsize=(10,10))\n", + " ax = fig.gca(projection='3d')\n", + " ax.set_title('Difference')\n", + " s = ax.plot_surface(T,X,diff,linewidth=0,antialiased=False,cmap=cm.viridis)\n", + " ax.set_xlabel('Time $t$')\n", + " ax.set_ylabel('Position $x$');\n", + "\n", + " ## Take some slices of the 3D plots just to see the solutions at particular times\n", + " indx1 = 0\n", + " indx2 = int(Nt/2)\n", + " indx3 = Nt-1\n", + "\n", + " t1 = t[indx1]\n", + " t2 = t[indx2]\n", + " t3 = t[indx3]\n", + "\n", + " # Slice the results from the DNN\n", + " res1 = res[:,indx1]\n", + " res2 = res[:,indx2]\n", + " res3 = res[:,indx3]\n", + "\n", + " # Slice the analytical results\n", + " res_analytical1 = res_analytical[:,indx1]\n", + " res_analytical2 = res_analytical[:,indx2]\n", + " res_analytical3 = res_analytical[:,indx3]\n", + "\n", + " # Plot the slices\n", + " plt.figure(figsize=(10,10))\n", + " plt.title(\"Computed solutions at time = %g\"%t1)\n", + " plt.plot(x, res1)\n", + " plt.plot(x,res_analytical1)\n", + " plt.legend(['dnn','analytical'])\n", + "\n", + " plt.figure(figsize=(10,10))\n", + " plt.title(\"Computed solutions at time = %g\"%t2)\n", + " plt.plot(x, res2)\n", + " plt.plot(x,res_analytical2)\n", + " plt.legend(['dnn','analytical'])\n", + "\n", + " plt.figure(figsize=(10,10))\n", + " plt.title(\"Computed solutions at time = %g\"%t3)\n", + " plt.plot(x, res3)\n", + " plt.plot(x,res_analytical3)\n", + " plt.legend(['dnn','analytical'])\n", + "\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Resources on differential equations and deep learning\n", + "\n", + "1. [Artificial neural networks for solving ordinary and partial differential equations by I.E. Lagaris et al](https://pdfs.semanticscholar.org/d061/df393e0e8fbfd0ea24976458b7d42419040d.pdf)\n", + "\n", + "2. [Neural networks for solving differential equations by A. Honchar](https://becominghuman.ai/neural-networks-for-solving-differential-equations-fa230ac5e04c)\n", + "\n", + "3. [Solving differential equations using neural networks by M.M Chiaramonte and M. Kiener](http://cs229.stanford.edu/proj2013/ChiaramonteKiener-SolvingDifferentialEquationsUsingNeuralNetworks.pdf)\n", + "\n", + "4. [Introduction to Partial Differential Equations by A. Tveito, R. Winther](https://www.springer.com/us/book/9783540225515)" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter11.py b/doc/LectureNotes/_build/jupyter_execute/chapter11.py new file mode 100644 index 000000000..e46d52a1f --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter11.py @@ -0,0 +1,2388 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Solving Differential Equations with Deep Learning +# +# The Universal Approximation Theorem states that a neural network can +# approximate any function at a single hidden layer along with one input +# and output layer to any given precision. +# +# +# An ordinary differential equation (ODE) is an equation involving functions having one variable. +# +# In general, an ordinary differential equation looks like + +# +#
    +# +# $$ +# \begin{equation} \label{ode} \tag{1} +# f\left(x, \, g(x), \, g'(x), \, g''(x), \, \dots \, , \, g^{(n)}(x)\right) = 0 +# \end{equation} +# $$ + +# where $g(x)$ is the function to find, and $g^{(n)}(x)$ is the $n$-th derivative of $g(x)$. +# +# The $f\left(x, g(x), g'(x), g''(x), \, \dots \, , g^{(n)}(x)\right)$ is just a way to write that there is an expression involving $x$ and $g(x), \ g'(x), \ g''(x), \, \dots \, , \text{ and } g^{(n)}(x)$ on the left side of the equality sign in ([1](#ode)). +# The highest order of derivative, that is the value of $n$, determines to the order of the equation. +# The equation is referred to as a $n$-th order ODE. +# Along with ([1](#ode)), some additional conditions of the function $g(x)$ are typically given +# for the solution to be unique. +# +# +# +# Let the trial solution $g_t(x)$ be + +# +#
    +# +# $$ +# \begin{equation} +# g_t(x) = h_1(x) + h_2(x,N(x,P)) +# \label{_auto1} \tag{2} +# \end{equation} +# $$ + +# where $h_1(x)$ is a function that makes $g_t(x)$ satisfy a given set +# of conditions, $N(x,P)$ a neural network with weights and biases +# described by $P$ and $h_2(x, N(x,P))$ some expression involving the +# neural network. The role of the function $h_2(x, N(x,P))$, is to +# ensure that the output from $N(x,P)$ is zero when $g_t(x)$ is +# evaluated at the values of $x$ where the given conditions must be +# satisfied. The function $h_1(x)$ should alone make $g_t(x)$ satisfy +# the conditions. +# +# But what about the network $N(x,P)$? +# +# +# As described previously, an optimization method could be used to minimize the parameters of a neural network, that being its weights and biases, through backward propagation. +# +# +# +# For the minimization to be defined, we need to have a cost function at hand to minimize. +# +# It is given that $f\left(x, \, g(x), \, g'(x), \, g''(x), \, \dots \, , \, g^{(n)}(x)\right)$ should be equal to zero in ([1](#ode)). +# We can choose to consider the mean squared error as the cost function for an input $x$. +# Since we are looking at one input, the cost function is just $f$ squared. +# The cost function $c\left(x, P \right)$ can therefore be expressed as + +# $$ +# C\left(x, P\right) = \big(f\left(x, \, g(x), \, g'(x), \, g''(x), \, \dots \, , \, g^{(n)}(x)\right)\big)^2 +# $$ + +# If $N$ inputs are given as a vector $\boldsymbol{x}$ with elements $x_i$ for $i = 1,\dots,N$, +# the cost function becomes + +# +#
    +# +# $$ +# \begin{equation} \label{cost} \tag{3} +# C\left(\boldsymbol{x}, P\right) = \frac{1}{N} \sum_{i=1}^N \big(f\left(x_i, \, g(x_i), \, g'(x_i), \, g''(x_i), \, \dots \, , \, g^{(n)}(x_i)\right)\big)^2 +# \end{equation} +# $$ + +# The neural net should then find the parameters $P$ that minimizes the cost function in +# ([3](#cost)) for a set of $N$ training samples $x_i$. +# +# +# +# To perform the minimization using gradient descent, the gradient of $C\left(\boldsymbol{x}, P\right)$ is needed. +# It might happen so that finding an analytical expression of the gradient of $C(\boldsymbol{x}, P)$ from ([3](#cost)) gets too messy, depending on which cost function one desires to use. +# +# Luckily, there exists libraries that makes the job for us through automatic differentiation. +# Automatic differentiation is a method of finding the derivatives numerically with very high precision. +# +# +# ### Example: Exponential decay +# +# An exponential decay of a quantity $g(x)$ is described by the equation + +# +#
    +# +# $$ +# \begin{equation} \label{solve_expdec} \tag{4} +# g'(x) = -\gamma g(x) +# \end{equation} +# $$ + +# with $g(0) = g_0$ for some chosen initial value $g_0$. +# +# The analytical solution of ([4](#solve_expdec)) is + +# +#
    +# +# $$ +# \begin{equation} +# g(x) = g_0 \exp\left(-\gamma x\right) +# \label{_auto2} \tag{5} +# \end{equation} +# $$ + +# Having an analytical solution at hand, it is possible to use it to compare how well a neural network finds a solution of ([4](#solve_expdec)). +# +# +# +# The program will use a neural network to solve + +# +#
    +# +# $$ +# \begin{equation} \label{solveode} \tag{6} +# g'(x) = -\gamma g(x) +# \end{equation} +# $$ + +# where $g(0) = g_0$ with $\gamma$ and $g_0$ being some chosen values. +# +# In this example, $\gamma = 2$ and $g_0 = 10$. +# +# +# To begin with, a trial solution $g_t(t)$ must be chosen. A general trial solution for ordinary differential equations could be + +# $$ +# g_t(x, P) = h_1(x) + h_2(x, N(x, P)) +# $$ + +# with $h_1(x)$ ensuring that $g_t(x)$ satisfies some conditions and $h_2(x,N(x, P))$ an expression involving $x$ and the output from the neural network $N(x,P)$ with $P $ being the collection of the weights and biases for each layer. For now, it is assumed that the network consists of one input layer, one hidden layer, and one output layer. +# +# +# +# In this network, there are no weights and bias at the input layer, so $P = \{ P_{\text{hidden}}, P_{\text{output}} \}$. +# If there are $N_{\text{hidden} }$ neurons in the hidden layer, then $P_{\text{hidden}}$ is a $N_{\text{hidden} } \times (1 + N_{\text{input}})$ matrix, given that there are $N_{\text{input}}$ neurons in the input layer. +# +# The first column in $P_{\text{hidden} }$ represents the bias for each neuron in the hidden layer and the second column represents the weights for each neuron in the hidden layer from the input layer. +# If there are $N_{\text{output} }$ neurons in the output layer, then $P_{\text{output}} $ is a $N_{\text{output} } \times (1 + N_{\text{hidden} })$ matrix. +# +# Its first column represents the bias of each neuron and the remaining columns represents the weights to each neuron. +# +# It is given that $g(0) = g_0$. The trial solution must fulfill this condition to be a proper solution of ([6](#solveode)). A possible way to ensure that $g_t(0, P) = g_0$, is to let $F(N(x,P)) = x \cdot N(x,P)$ and $A(x) = g_0$. This gives the following trial solution: + +# +#
    +# +# $$ +# \begin{equation} \label{trial} \tag{7} +# g_t(x, P) = g_0 + x \cdot N(x, P) +# \end{equation} +# $$ + +# ### Reformulating the problem +# +# We wish that our neural network manages to minimize a given cost function. +# +# A reformulation of out equation, ([6](#solveode)), must therefore be done, +# such that it describes the problem a neural network can solve for. +# +# The neural network must find the set of weights and biases $P$ such that the trial solution in ([7](#trial)) satisfies ([6](#solveode)). +# +# The trial solution + +# $$ +# g_t(x, P) = g_0 + x \cdot N(x, P) +# $$ + +# has been chosen such that it already solves the condition $g(0) = g_0$. What remains, is to find $P$ such that + +# +#
    +# +# $$ +# \begin{equation} \label{nnmin} \tag{8} +# g_t'(x, P) = - \gamma g_t(x, P) +# \end{equation} +# $$ + +# is fulfilled as *best as possible*. +# +# +# The left hand side and right hand side of ([8](#nnmin)) must be computed separately, and then the neural network must choose weights and biases, contained in $P$, such that the sides are equal as best as possible. +# This means that the absolute or squared difference between the sides must be as close to zero, ideally equal to zero. +# In this case, the difference squared shows to be an appropriate measurement of how erroneous the trial solution is with respect to $P$ of the neural network. +# +# This gives the following cost function our neural network must solve for: + +# $$ +# \min_{P}\Big\{ \big(g_t'(x, P) - ( -\gamma g_t(x, P) \big)^2 \Big\} +# $$ + +# (the notation $\min_{P}\{ f(x, P) \}$ means that we desire to find $P$ that yields the minimum of $f(x, P)$) +# +# or, in terms of weights and biases for the hidden and output layer in our network: + +# $$ +# \min_{P_{\text{hidden} }, \ P_{\text{output} }}\Big\{ \big(g_t'(x, \{ P_{\text{hidden} }, P_{\text{output} }\}) - ( -\gamma g_t(x, \{ P_{\text{hidden} }, P_{\text{output} }\}) \big)^2 \Big\} +# $$ + +# for an input value $x$. +# +# +# +# If the neural network evaluates $g_t(x, P)$ at more values for $x$, say $N$ values $x_i$ for $i = 1, \dots, N$, then the *total* error to minimize becomes + +# +#
    +# +# $$ +# \begin{equation} \label{min} \tag{9} +# \min_{P}\Big\{\frac{1}{N} \sum_{i=1}^N \big(g_t'(x_i, P) - ( -\gamma g_t(x_i, P) \big)^2 \Big\} +# \end{equation} +# $$ + +# Letting $\boldsymbol{x}$ be a vector with elements $x_i$ and $C(\boldsymbol{x}, P) = \frac{1}{N} \sum_i \big(g_t'(x_i, P) - ( -\gamma g_t(x_i, P) \big)^2$ denote the cost function, the minimization problem that our network must solve, becomes + +# $$ +# \min_{P} C(\boldsymbol{x}, P) +# $$ + +# In terms of $P_{\text{hidden} }$ and $P_{\text{output} }$, this could also be expressed as +# +# $$ +# \min_{P_{\text{hidden} }, \ P_{\text{output} }} C(\boldsymbol{x}, \{P_{\text{hidden} }, P_{\text{output} }\}) +# $$ +# +# +# For simplicity, it is assumed that the input is an array $\boldsymbol{x} = (x_1, \dots, x_N)$ with $N$ elements. It is at these points the neural network should find $P$ such that it fulfills ([9](#min)). +# +# First, the neural network must feed forward the inputs. +# This means that $\boldsymbol{x}s$ must be passed through an input layer, a hidden layer and a output layer. The input layer in this case, does not need to process the data any further. +# The input layer will consist of $N_{\text{input} }$ neurons, passing its element to each neuron in the hidden layer. The number of neurons in the hidden layer will be $N_{\text{hidden} }$. +# +# +# For the $i$-th in the hidden layer with weight $w_i^{\text{hidden} }$ and bias $b_i^{\text{hidden} }$, the weighting from the $j$-th neuron at the input layer is: + +# $$ +# \begin{aligned} +# z_{i,j}^{\text{hidden}} &= b_i^{\text{hidden}} + w_i^{\text{hidden}}x_j \\ +# &= +# \begin{pmatrix} +# b_i^{\text{hidden}} & w_i^{\text{hidden}} +# \end{pmatrix} +# \begin{pmatrix} +# 1 \\ +# x_j +# \end{pmatrix} +# \end{aligned} +# $$ + +# The result after weighting the inputs at the $i$-th hidden neuron can be written as a vector: + +# $$ +# \begin{aligned} +# \boldsymbol{z}_{i}^{\text{hidden}} &= \Big( b_i^{\text{hidden}} + w_i^{\text{hidden}}x_1 , \ b_i^{\text{hidden}} + w_i^{\text{hidden}} x_2, \ \dots \, , \ b_i^{\text{hidden}} + w_i^{\text{hidden}} x_N\Big) \\ +# &= +# \begin{pmatrix} +# b_i^{\text{hidden}} & w_i^{\text{hidden}} +# \end{pmatrix} +# \begin{pmatrix} +# 1 & 1 & \dots & 1 \\ +# x_1 & x_2 & \dots & x_N +# \end{pmatrix} \\ +# &= \boldsymbol{p}_{i, \text{hidden}}^T X +# \end{aligned} +# $$ + +# The vector $\boldsymbol{p}_{i, \text{hidden}}^T$ constitutes each row in $P_{\text{hidden} }$, which contains the weights for the neural network to minimize according to ([9](#min)). +# +# After having found $\boldsymbol{z}_{i}^{\text{hidden}} $ for every $i$-th neuron within the hidden layer, the vector will be sent to an activation function $a_i(\boldsymbol{z})$. +# +# In this example, the sigmoid function has been chosen to be the activation function for each hidden neuron: + +# $$ +# f(z) = \frac{1}{1 + \exp{(-z)}} +# $$ + +# It is possible to use other activations functions for the hidden layer also. +# +# The output $\boldsymbol{x}_i^{\text{hidden}}$ from each $i$-th hidden neuron is: +# +# $$ +# \boldsymbol{x}_i^{\text{hidden} } = f\big( \boldsymbol{z}_{i}^{\text{hidden}} \big) +# $$ +# +# The outputs $\boldsymbol{x}_i^{\text{hidden} } $ are then sent to the output layer. +# +# The output layer consists of one neuron in this case, and combines the +# output from each of the neurons in the hidden layers. The output layer +# combines the results from the hidden layer using some weights $w_i^{\text{output}}$ +# and biases $b_i^{\text{output}}$. In this case, +# it is assumes that the number of neurons in the output layer is one. +# +# +# +# The procedure of weighting the output neuron $j$ in the hidden layer to the $i$-th neuron in the output layer is similar as for the hidden layer described previously. + +# $$ +# \begin{aligned} +# z_{1,j}^{\text{output}} & = +# \begin{pmatrix} +# b_1^{\text{output}} & \boldsymbol{w}_1^{\text{output}} +# \end{pmatrix} +# \begin{pmatrix} +# 1 \\ +# \boldsymbol{x}_j^{\text{hidden}} +# \end{pmatrix} +# \end{aligned} +# $$ + +# Expressing $z_{1,j}^{\text{output}}$ as a vector gives the following way of weighting the inputs from the hidden layer: + +# $$ +# \boldsymbol{z}_{1}^{\text{output}} = +# \begin{pmatrix} +# b_1^{\text{output}} & \boldsymbol{w}_1^{\text{output}} +# \end{pmatrix} +# \begin{pmatrix} +# 1 & 1 & \dots & 1 \\ +# \boldsymbol{x}_1^{\text{hidden}} & \boldsymbol{x}_2^{\text{hidden}} & \dots & \boldsymbol{x}_N^{\text{hidden}} +# \end{pmatrix} +# $$ + +# In this case we seek a continuous range of values since we are approximating a function. This means that after computing $\boldsymbol{z}_{1}^{\text{output}}$ the neural network has finished its feed forward step, and $\boldsymbol{z}_{1}^{\text{output}}$ is the final output of the network. +# +# +# The next step is to decide how the parameters should be changed such that they minimize the cost function. +# +# The chosen cost function for this problem is + +# $$ +# C(\boldsymbol{x}, P) = \frac{1}{N} \sum_i \big(g_t'(x_i, P) - ( -\gamma g_t(x_i, P) \big)^2 +# $$ + +# In order to minimize the cost function, an optimization method must be chosen. +# +# Here, gradient descent with a constant step size has been chosen. +# +# ### Gradient descent +# +# The idea of the gradient descent algorithm is to update parameters in +# a direction where the cost function decreases goes to a minimum. +# +# In general, the update of some parameters $\boldsymbol{\omega}$ given a cost +# function defined by some weights $\boldsymbol{\omega}$, $C(\boldsymbol{x}, +# \boldsymbol{\omega})$, goes as follows: + +# $$ +# \boldsymbol{\omega}_{\text{new} } = \boldsymbol{\omega} - \lambda \nabla_{\boldsymbol{\omega}} C(\boldsymbol{x}, \boldsymbol{\omega}) +# $$ + +# for a number of iterations or until $ \big|\big| \boldsymbol{\omega}_{\text{new} } - \boldsymbol{\omega} \big|\big|$ becomes smaller than some given tolerance. +# +# The value of $\lambda$ decides how large steps the algorithm must take +# in the direction of $ \nabla_{\boldsymbol{\omega}} C(\boldsymbol{x}, \boldsymbol{\omega})$. +# The notation $\nabla_{\boldsymbol{\omega}}$ express the gradient with respect +# to the elements in $\boldsymbol{\omega}$. +# +# In our case, we have to minimize the cost function $C(\boldsymbol{x}, P)$ with +# respect to the two sets of weights and biases, that is for the hidden +# layer $P_{\text{hidden} }$ and for the output layer $P_{\text{output} +# }$ . +# +# This means that $P_{\text{hidden} }$ and $P_{\text{output} }$ is updated by + +# $$ +# \begin{aligned} +# P_{\text{hidden},\text{new}} &= P_{\text{hidden}} - \lambda \nabla_{P_{\text{hidden}}} C(\boldsymbol{x}, P) \\ +# P_{\text{output},\text{new}} &= P_{\text{output}} - \lambda \nabla_{P_{\text{output}}} C(\boldsymbol{x}, P) +# \end{aligned} +# $$ + +# ### The code for solving the ODE + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import autograd.numpy as np +from autograd import grad, elementwise_grad +import autograd.numpy.random as npr +from matplotlib import pyplot as plt + +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +# Assuming one input, hidden, and output layer +def neural_network(params, x): + + # Find the weights (including and biases) for the hidden and output layer. + # Assume that params is a list of parameters for each layer. + # The biases are the first element for each array in params, + # and the weights are the remaning elements in each array in params. + + w_hidden = params[0] + w_output = params[1] + + # Assumes input x being an one-dimensional array + num_values = np.size(x) + x = x.reshape(-1, num_values) + + # Assume that the input layer does nothing to the input x + x_input = x + + ## Hidden layer: + + # Add a row of ones to include bias + x_input = np.concatenate((np.ones((1,num_values)), x_input ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_input) + x_hidden = sigmoid(z_hidden) + + ## Output layer: + + # Include bias: + x_hidden = np.concatenate((np.ones((1,num_values)), x_hidden ), axis = 0) + + z_output = np.matmul(w_output, x_hidden) + x_output = z_output + + return x_output + +# The trial solution using the deep neural network: +def g_trial(x,params, g0 = 10): + return g0 + x*neural_network(params,x) + +# The right side of the ODE: +def g(x, g_trial, gamma = 2): + return -gamma*g_trial + +# The cost function: +def cost_function(P, x): + + # Evaluate the trial function with the current parameters P + g_t = g_trial(x,P) + + # Find the derivative w.r.t x of the neural network + d_net_out = elementwise_grad(neural_network,1)(P,x) + + # Find the derivative w.r.t x of the trial function + d_g_t = elementwise_grad(g_trial,0)(x,P) + + # The right side of the ODE + func = g(x, g_t) + + err_sqr = (d_g_t - func)**2 + cost_sum = np.sum(err_sqr) + + return cost_sum / np.size(err_sqr) + +# Solve the exponential decay ODE using neural network with one input, hidden, and output layer +def solve_ode_neural_network(x, num_neurons_hidden, num_iter, lmb): + ## Set up initial weights and biases + + # For the hidden layer + p0 = npr.randn(num_neurons_hidden, 2 ) + + # For the output layer + p1 = npr.randn(1, num_neurons_hidden + 1 ) # +1 since bias is included + + P = [p0, p1] + + print('Initial cost: %g'%cost_function(P, x)) + + ## Start finding the optimal weights using gradient descent + + # Find the Python function that represents the gradient of the cost function + # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer + cost_function_grad = grad(cost_function,0) + + # Let the update be done num_iter times + for i in range(num_iter): + # Evaluate the gradient at the current weights and biases in P. + # The cost_grad consist now of two arrays; + # one for the gradient w.r.t P_hidden and + # one for the gradient w.r.t P_output + cost_grad = cost_function_grad(P, x) + + P[0] = P[0] - lmb * cost_grad[0] + P[1] = P[1] - lmb * cost_grad[1] + + print('Final cost: %g'%cost_function(P, x)) + + return P + +def g_analytic(x, gamma = 2, g0 = 10): + return g0*np.exp(-gamma*x) + +# Solve the given problem +if __name__ == '__main__': + # Set seed such that the weight are initialized + # with same weights and biases for every run. + npr.seed(15) + + ## Decide the vales of arguments to the function to solve + N = 10 + x = np.linspace(0, 1, N) + + ## Set up the initial parameters + num_hidden_neurons = 10 + num_iter = 10000 + lmb = 0.001 + + # Use the network + P = solve_ode_neural_network(x, num_hidden_neurons, num_iter, lmb) + + # Print the deviation from the trial solution and true solution + res = g_trial(x,P) + res_analytical = g_analytic(x) + + print('Max absolute difference: %g'%np.max(np.abs(res - res_analytical))) + + # Plot the results + plt.figure(figsize=(10,10)) + + plt.title('Performance of neural network solving an ODE compared to the analytical solution') + plt.plot(x, res_analytical) + plt.plot(x, res[0,:]) + plt.legend(['analytical','nn']) + plt.xlabel('x') + plt.ylabel('g(x)') + plt.show() + + +# ## The network with one input layer, specified number of hidden layers, and one output layer +# +# It is also possible to extend the construction of our network into a more general one, allowing the network to contain more than one hidden layers. +# +# The number of neurons within each hidden layer are given as a list of integers in the program below. + +# In[2]: + + +import autograd.numpy as np +from autograd import grad, elementwise_grad +import autograd.numpy.random as npr +from matplotlib import pyplot as plt + +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +# The neural network with one input layer and one output layer, +# but with number of hidden layers specified by the user. +def deep_neural_network(deep_params, x): + # N_hidden is the number of hidden layers + + N_hidden = np.size(deep_params) - 1 # -1 since params consists of + # parameters to all the hidden + # layers AND the output layer. + + # Assumes input x being an one-dimensional array + num_values = np.size(x) + x = x.reshape(-1, num_values) + + # Assume that the input layer does nothing to the input x + x_input = x + + # Due to multiple hidden layers, define a variable referencing to the + # output of the previous layer: + x_prev = x_input + + ## Hidden layers: + + for l in range(N_hidden): + # From the list of parameters P; find the correct weigths and bias for this layer + w_hidden = deep_params[l] + + # Add a row of ones to include bias + x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_prev) + x_hidden = sigmoid(z_hidden) + + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden + + ## Output layer: + + # Get the weights and bias for this layer + w_output = deep_params[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0) + + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output + +# The trial solution using the deep neural network: +def g_trial_deep(x,params, g0 = 10): + return g0 + x*deep_neural_network(params, x) + +# The right side of the ODE: +def g(x, g_trial, gamma = 2): + return -gamma*g_trial + +# The same cost function as before, but calls deep_neural_network instead. +def cost_function_deep(P, x): + + # Evaluate the trial function with the current parameters P + g_t = g_trial_deep(x,P) + + # Find the derivative w.r.t x of the neural network + d_net_out = elementwise_grad(deep_neural_network,1)(P,x) + + # Find the derivative w.r.t x of the trial function + d_g_t = elementwise_grad(g_trial_deep,0)(x,P) + + # The right side of the ODE + func = g(x, g_t) + + err_sqr = (d_g_t - func)**2 + cost_sum = np.sum(err_sqr) + + return cost_sum / np.size(err_sqr) + +# Solve the exponential decay ODE using neural network with one input and one output layer, +# but with specified number of hidden layers from the user. +def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb): + # num_hidden_neurons is now a list of number of neurons within each hidden layer + + # The number of elements in the list num_hidden_neurons thus represents + # the number of hidden layers. + + # Find the number of hidden layers: + N_hidden = np.size(num_neurons) + + ## Set up initial weights and biases + + # Initialize the list of parameters: + P = [None]*(N_hidden + 1) # + 1 to include the output layer + + P[0] = npr.randn(num_neurons[0], 2 ) + for l in range(1,N_hidden): + P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias + + # For the output layer + P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included + + print('Initial cost: %g'%cost_function_deep(P, x)) + + ## Start finding the optimal weights using gradient descent + + # Find the Python function that represents the gradient of the cost function + # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer + cost_function_deep_grad = grad(cost_function_deep,0) + + # Let the update be done num_iter times + for i in range(num_iter): + # Evaluate the gradient at the current weights and biases in P. + # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases + # in the hidden layers and output layers evaluated at x. + cost_deep_grad = cost_function_deep_grad(P, x) + + for l in range(N_hidden+1): + P[l] = P[l] - lmb * cost_deep_grad[l] + + print('Final cost: %g'%cost_function_deep(P, x)) + + return P + +def g_analytic(x, gamma = 2, g0 = 10): + return g0*np.exp(-gamma*x) + +# Solve the given problem +if __name__ == '__main__': + npr.seed(15) + + ## Decide the vales of arguments to the function to solve + N = 10 + x = np.linspace(0, 1, N) + + ## Set up the initial parameters + num_hidden_neurons = np.array([10,10]) + num_iter = 10000 + lmb = 0.001 + + P = solve_ode_deep_neural_network(x, num_hidden_neurons, num_iter, lmb) + + res = g_trial_deep(x,P) + res_analytical = g_analytic(x) + + plt.figure(figsize=(10,10)) + + plt.title('Performance of a deep neural network solving an ODE compared to the analytical solution') + plt.plot(x, res_analytical) + plt.plot(x, res[0,:]) + plt.legend(['analytical','dnn']) + plt.ylabel('g(x)') + plt.show() + + +# ### Example: Population growth +# +# A logistic model of population growth assumes that a population converges toward an equilibrium. +# The population growth can be modeled by + +# +#
    +# +# $$ +# \begin{equation} \label{log} \tag{10} +# g'(t) = \alpha g(t)(A - g(t)) +# \end{equation} +# $$ + +# where $g(t)$ is the population density at time $t$, $\alpha > 0$ the growth rate and $A > 0$ is the maximum population number in the environment. +# Also, at $t = 0$ the population has the size $g(0) = g_0$, where $g_0$ is some chosen constant. +# +# In this example, similar network as for the exponential decay using Autograd has been used to solve the equation. However, as the implementation might suffer from e.g numerical instability +# and high execution time (this might be more apparent in the examples solving PDEs), +# using a library like TensorFlow is recommended. +# Here, we stay with a more simple approach and implement for comparison, the simple forward Euler method. +# +# +# +# Here, we will model a population $g(t)$ in an environment having carrying capacity $A$. +# The population follows the model + +# +#
    +# +# $$ +# \begin{equation} \label{solveode_population} \tag{11} +# g'(t) = \alpha g(t)(A - g(t)) +# \end{equation} +# $$ + +# where $g(0) = g_0$. +# +# In this example, we let $\alpha = 2$, $A = 1$, and $g_0 = 1.2$. +# +# +# We will get a slightly different trial solution, as the boundary conditions are different +# compared to the case for exponential decay. +# +# A possible trial solution satisfying the condition $g(0) = g_0$ could be +# +# $$ +# h_1(t) = g_0 + t \cdot N(t,P) +# $$ +# +# with $N(t,P)$ being the output from the neural network with weights and biases for each layer collected in the set $P$. +# +# The analytical solution is +# +# $$ +# g(t) = \frac{Ag_0}{g_0 + (A - g_0)\exp(-\alpha A t)} +# $$ +# +# +# +# The network will be the similar as for the exponential decay example, but with some small modifications for our problem. + +# In[ ]: + + +import autograd.numpy as np +from autograd import grad, elementwise_grad +import autograd.numpy.random as npr +from matplotlib import pyplot as plt + +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +# Function to get the parameters. +# Done such that one can easily change the paramaters after one's liking. +def get_parameters(): + alpha = 2 + A = 1 + g0 = 1.2 + return alpha, A, g0 + +def deep_neural_network(P, x): + # N_hidden is the number of hidden layers + N_hidden = np.size(P) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer + + # Assumes input x being an one-dimensional array + num_values = np.size(x) + x = x.reshape(-1, num_values) + + # Assume that the input layer does nothing to the input x + x_input = x + + # Due to multiple hidden layers, define a variable referencing to the + # output of the previous layer: + x_prev = x_input + + ## Hidden layers: + + for l in range(N_hidden): + # From the list of parameters P; find the correct weigths and bias for this layer + w_hidden = P[l] + + # Add a row of ones to include bias + x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_prev) + x_hidden = sigmoid(z_hidden) + + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden + + ## Output layer: + + # Get the weights and bias for this layer + w_output = P[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0) + + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output + + +def cost_function_deep(P, x): + + # Evaluate the trial function with the current parameters P + g_t = g_trial_deep(x,P) + + # Find the derivative w.r.t x of the trial function + d_g_t = elementwise_grad(g_trial_deep,0)(x,P) + + # The right side of the ODE + func = f(x, g_t) + + err_sqr = (d_g_t - func)**2 + cost_sum = np.sum(err_sqr) + + return cost_sum / np.size(err_sqr) + +# The right side of the ODE: +def f(x, g_trial): + alpha,A, g0 = get_parameters() + return alpha*g_trial*(A - g_trial) + +# The trial solution using the deep neural network: +def g_trial_deep(x, params): + alpha,A, g0 = get_parameters() + return g0 + x*deep_neural_network(params,x) + +# The analytical solution: +def g_analytic(t): + alpha,A, g0 = get_parameters() + return A*g0/(g0 + (A - g0)*np.exp(-alpha*A*t)) + +def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb): + # num_hidden_neurons is now a list of number of neurons within each hidden layer + + # Find the number of hidden layers: + N_hidden = np.size(num_neurons) + + ## Set up initial weigths and biases + + # Initialize the list of parameters: + P = [None]*(N_hidden + 1) # + 1 to include the output layer + + P[0] = npr.randn(num_neurons[0], 2 ) + for l in range(1,N_hidden): + P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias + + # For the output layer + P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included + + print('Initial cost: %g'%cost_function_deep(P, x)) + + ## Start finding the optimal weigths using gradient descent + + # Find the Python function that represents the gradient of the cost function + # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer + cost_function_deep_grad = grad(cost_function_deep,0) + + # Let the update be done num_iter times + for i in range(num_iter): + # Evaluate the gradient at the current weights and biases in P. + # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases + # in the hidden layers and output layers evaluated at x. + cost_deep_grad = cost_function_deep_grad(P, x) + + for l in range(N_hidden+1): + P[l] = P[l] - lmb * cost_deep_grad[l] + + print('Final cost: %g'%cost_function_deep(P, x)) + + return P + +if __name__ == '__main__': + npr.seed(4155) + + ## Decide the vales of arguments to the function to solve + Nt = 10 + T = 1 + t = np.linspace(0,T, Nt) + + ## Set up the initial parameters + num_hidden_neurons = [100, 50, 25] + num_iter = 1000 + lmb = 1e-3 + + P = solve_ode_deep_neural_network(t, num_hidden_neurons, num_iter, lmb) + + g_dnn_ag = g_trial_deep(t,P) + g_analytical = g_analytic(t) + + # Find the maximum absolute difference between the solutons: + diff_ag = np.max(np.abs(g_dnn_ag - g_analytical)) + print("The max absolute difference between the solutions is: %g"%diff_ag) + + plt.figure(figsize=(10,10)) + + plt.title('Performance of neural network solving an ODE compared to the analytical solution') + plt.plot(t, g_analytical) + plt.plot(t, g_dnn_ag[0,:]) + plt.legend(['analytical','nn']) + plt.xlabel('t') + plt.ylabel('g(t)') + + plt.show() + + +# ## Using forward Euler to solve the ODE +# +# A straightforward way of solving an ODE numerically, is to use Euler's method. +# +# Euler's method uses Taylor series to approximate the value at a function $f$ at a step $\Delta x$ from $x$: +# +# $$ +# f(x + \Delta x) \approx f(x) + \Delta x f'(x) +# $$ +# +# In our case, using Euler's method to approximate the value of $g$ at a step $\Delta t$ from $t$ yields + +# $$ +# \begin{aligned} +# g(t + \Delta t) &\approx g(t) + \Delta t g'(t) \\ +# &= g(t) + \Delta t \big(\alpha g(t)(A - g(t))\big) +# \end{aligned} +# $$ + +# along with the condition that $g(0) = g_0$. +# +# Let $t_i = i \cdot \Delta t$ where $\Delta t = \frac{T}{N_t-1}$ where $T$ is the final time our solver must solve for and $N_t$ the number of values for $t \in [0, T]$ for $i = 0, \dots, N_t-1$. +# +# For $i \geq 1$, we have that + +# $$ +# \begin{aligned} +# t_i &= i\Delta t \\ +# &= (i - 1)\Delta t + \Delta t \\ +# &= t_{i-1} + \Delta t +# \end{aligned} +# $$ + +# Now, if $g_i = g(t_i)$ then + +# +#
    +# +# $$ +# \begin{equation} +# \begin{aligned} +# g_i &= g(t_i) \\ +# &= g(t_{i-1} + \Delta t) \\ +# &\approx g(t_{i-1}) + \Delta t \big(\alpha g(t_{i-1})(A - g(t_{i-1}))\big) \\ +# &= g_{i-1} + \Delta t \big(\alpha g_{i-1}(A - g_{i-1})\big) +# \end{aligned} +# \end{equation} \label{odenum} \tag{12} +# $$ + +# for $i \geq 1$ and $g_0 = g(t_0) = g(0) = g_0$. +# +# Equation ([12](#odenum)) could be implemented in the following way, +# extending the program that uses the network using Autograd: + +# In[ ]: + + +# Assume that all function definitions from the example program using Autograd +# are located here. + +if __name__ == '__main__': + npr.seed(4155) + + ## Decide the vales of arguments to the function to solve + Nt = 10 + T = 1 + t = np.linspace(0,T, Nt) + + ## Set up the initial parameters + num_hidden_neurons = [100,50,25] + num_iter = 1000 + lmb = 1e-3 + + P = solve_ode_deep_neural_network(t, num_hidden_neurons, num_iter, lmb) + + g_dnn_ag = g_trial_deep(t,P) + g_analytical = g_analytic(t) + + # Find the maximum absolute difference between the solutons: + diff_ag = np.max(np.abs(g_dnn_ag - g_analytical)) + print("The max absolute difference between the solutions is: %g"%diff_ag) + + plt.figure(figsize=(10,10)) + + plt.title('Performance of neural network solving an ODE compared to the analytical solution') + plt.plot(t, g_analytical) + plt.plot(t, g_dnn_ag[0,:]) + plt.legend(['analytical','nn']) + plt.xlabel('t') + plt.ylabel('g(t)') + + ## Find an approximation to the funtion using forward Euler + + alpha, A, g0 = get_parameters() + dt = T/(Nt - 1) + + # Perform forward Euler to solve the ODE + g_euler = np.zeros(Nt) + g_euler[0] = g0 + + for i in range(1,Nt): + g_euler[i] = g_euler[i-1] + dt*(alpha*g_euler[i-1]*(A - g_euler[i-1])) + + # Print the errors done by each method + diff1 = np.max(np.abs(g_euler - g_analytical)) + diff2 = np.max(np.abs(g_dnn_ag[0,:] - g_analytical)) + + print('Max absolute difference between Euler method and analytical: %g'%diff1) + print('Max absolute difference between deep neural network and analytical: %g'%diff2) + + # Plot results + plt.figure(figsize=(10,10)) + + plt.plot(t,g_euler) + plt.plot(t,g_analytical) + plt.plot(t,g_dnn_ag[0,:]) + + plt.legend(['euler','analytical','dnn']) + plt.xlabel('Time t') + plt.ylabel('g(t)') + + plt.show() + + +# ## Solving the one dimensional Poisson equation +# +# The Poisson equation for $g(x)$ in one dimension is + +# +#
    +# +# $$ +# \begin{equation} \label{poisson} \tag{13} +# -g''(x) = f(x) +# \end{equation} +# $$ + +# where $f(x)$ is a given function for $x \in (0,1)$. +# +# The conditions that $g(x)$ is chosen to fulfill, are + +# $$ +# \begin{align*} +# g(0) &= 0 \\ +# g(1) &= 0 +# \end{align*} +# $$ + +# This equation can be solved numerically using programs where e.g Autograd and TensorFlow are used. +# The results from the networks can then be compared to the analytical solution. +# In addition, it could be interesting to see how a typical method for numerically solving second order ODEs compares to the neural networks. +# +# +# Here, the function $g(x)$ to solve for follows the equation + +# $$ +# -g''(x) = f(x),\qquad x \in (0,1) +# $$ + +# where $f(x)$ is a given function, along with the chosen conditions + +# +#
    +# +# $$ +# \begin{aligned} +# g(0) = g(1) = 0 +# \end{aligned}\label{cond} \tag{14} +# $$ + +# In this example, we consider the case when $f(x) = (3x + x^2)\exp(x)$. +# +# For this case, a possible trial solution satisfying the conditions could be + +# $$ +# g_t(x) = x \cdot (1-x) \cdot N(P,x) +# $$ + +# The analytical solution for this problem is + +# $$ +# g(x) = x(1 - x)\exp(x) +# $$ + +# In[ ]: + + +import autograd.numpy as np +from autograd import grad, elementwise_grad +import autograd.numpy.random as npr +from matplotlib import pyplot as plt + +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +def deep_neural_network(deep_params, x): + # N_hidden is the number of hidden layers + N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer + + # Assumes input x being an one-dimensional array + num_values = np.size(x) + x = x.reshape(-1, num_values) + + # Assume that the input layer does nothing to the input x + x_input = x + + # Due to multiple hidden layers, define a variable referencing to the + # output of the previous layer: + x_prev = x_input + + ## Hidden layers: + + for l in range(N_hidden): + # From the list of parameters P; find the correct weigths and bias for this layer + w_hidden = deep_params[l] + + # Add a row of ones to include bias + x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_prev) + x_hidden = sigmoid(z_hidden) + + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden + + ## Output layer: + + # Get the weights and bias for this layer + w_output = deep_params[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0) + + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output + +def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb): + # num_hidden_neurons is now a list of number of neurons within each hidden layer + + # Find the number of hidden layers: + N_hidden = np.size(num_neurons) + + ## Set up initial weigths and biases + + # Initialize the list of parameters: + P = [None]*(N_hidden + 1) # + 1 to include the output layer + + P[0] = npr.randn(num_neurons[0], 2 ) + for l in range(1,N_hidden): + P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias + + # For the output layer + P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included + + print('Initial cost: %g'%cost_function_deep(P, x)) + + ## Start finding the optimal weigths using gradient descent + + # Find the Python function that represents the gradient of the cost function + # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer + cost_function_deep_grad = grad(cost_function_deep,0) + + # Let the update be done num_iter times + for i in range(num_iter): + # Evaluate the gradient at the current weights and biases in P. + # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases + # in the hidden layers and output layers evaluated at x. + cost_deep_grad = cost_function_deep_grad(P, x) + + for l in range(N_hidden+1): + P[l] = P[l] - lmb * cost_deep_grad[l] + + print('Final cost: %g'%cost_function_deep(P, x)) + + return P + +## Set up the cost function specified for this Poisson equation: + +# The right side of the ODE +def f(x): + return (3*x + x**2)*np.exp(x) + +def cost_function_deep(P, x): + + # Evaluate the trial function with the current parameters P + g_t = g_trial_deep(x,P) + + # Find the derivative w.r.t x of the trial function + d2_g_t = elementwise_grad(elementwise_grad(g_trial_deep,0))(x,P) + + right_side = f(x) + + err_sqr = (-d2_g_t - right_side)**2 + cost_sum = np.sum(err_sqr) + + return cost_sum/np.size(err_sqr) + +# The trial solution: +def g_trial_deep(x,P): + return x*(1-x)*deep_neural_network(P,x) + +# The analytic solution; +def g_analytic(x): + return x*(1-x)*np.exp(x) + +if __name__ == '__main__': + npr.seed(4155) + + ## Decide the vales of arguments to the function to solve + Nx = 10 + x = np.linspace(0,1, Nx) + + ## Set up the initial parameters + num_hidden_neurons = [200,100] + num_iter = 1000 + lmb = 1e-3 + + P = solve_ode_deep_neural_network(x, num_hidden_neurons, num_iter, lmb) + + g_dnn_ag = g_trial_deep(x,P) + g_analytical = g_analytic(x) + + # Find the maximum absolute difference between the solutons: + max_diff = np.max(np.abs(g_dnn_ag - g_analytical)) + print("The max absolute difference between the solutions is: %g"%max_diff) + + plt.figure(figsize=(10,10)) + + plt.title('Performance of neural network solving an ODE compared to the analytical solution') + plt.plot(x, g_analytical) + plt.plot(x, g_dnn_ag[0,:]) + plt.legend(['analytical','nn']) + plt.xlabel('x') + plt.ylabel('g(x)') + plt.show() + + +# ### Comparing with a numerical scheme +# +# The Poisson equation is possible to solve using Taylor series to approximate the second derivative. +# +# Using Taylor series, the second derivative can be expressed as +# +# $$ +# g''(x) = \frac{g(x + \Delta x) - 2g(x) + g(x-\Delta x)}{\Delta x^2} + E_{\Delta x}(x) +# $$ +# +# where $\Delta x$ is a small step size and $E_{\Delta x}(x)$ being the error term. +# +# Looking away from the error terms gives an approximation to the second derivative: + +# +#
    +# +# $$ +# \begin{equation} \label{approx} \tag{15} +# g''(x) \approx \frac{g(x + \Delta x) - 2g(x) + g(x-\Delta x)}{\Delta x^2} +# \end{equation} +# $$ + +# If $x_i = i \Delta x = x_{i-1} + \Delta x$ and $g_i = g(x_i)$ for $i = 1,\dots N_x - 2$ with $N_x$ being the number of values for $x$, ([15](#approx)) becomes + +# $$ +# \begin{aligned} +# g''(x_i) &\approx \frac{g(x_i + \Delta x) - 2g(x_i) + g(x_i -\Delta x)}{\Delta x^2} \\ +# &= \frac{g_{i+1} - 2g_i + g_{i-1}}{\Delta x^2} +# \end{aligned} +# $$ + +# Since we know from our problem that + +# $$ +# \begin{aligned} +# -g''(x) &= f(x) \\ +# &= (3x + x^2)\exp(x) +# \end{aligned} +# $$ + +# along with the conditions $g(0) = g(1) = 0$, +# the following scheme can be used to find an approximate solution for $g(x)$ numerically: + +# +#
    +# +# $$ +# \begin{equation} +# \begin{aligned} +# -\Big( \frac{g_{i+1} - 2g_i + g_{i-1}}{\Delta x^2} \Big) &= f(x_i) \\ +# -g_{i+1} + 2g_i - g_{i-1} &= \Delta x^2 f(x_i) +# \end{aligned} +# \end{equation} \label{odesys} \tag{16} +# $$ + +# for $i = 1, \dots, N_x - 2$ where $g_0 = g_{N_x - 1} = 0$ and $f(x_i) = (3x_i + x_i^2)\exp(x_i)$, which is given for our specific problem. +# +# The equation can be rewritten into a matrix equation: + +# $$ +# \begin{aligned} +# \begin{pmatrix} +# 2 & -1 & 0 & \dots & 0 \\ +# -1 & 2 & -1 & \dots & 0 \\ +# \vdots & & \ddots & & \vdots \\ +# 0 & \dots & -1 & 2 & -1 \\ +# 0 & \dots & 0 & -1 & 2\\ +# \end{pmatrix} +# \begin{pmatrix} +# g_1 \\ +# g_2 \\ +# \vdots \\ +# g_{N_x - 3} \\ +# g_{N_x - 2} +# \end{pmatrix} +# &= +# \Delta x^2 +# \begin{pmatrix} +# f(x_1) \\ +# f(x_2) \\ +# \vdots \\ +# f(x_{N_x - 3}) \\ +# f(x_{N_x - 2}) +# \end{pmatrix} \\ +# \boldsymbol{A}\boldsymbol{g} &= \boldsymbol{f}, +# \end{aligned} +# $$ + +# which makes it possible to solve for the vector $\boldsymbol{g}$. +# +# +# We can then compare the result from this numerical scheme with the output from our network using Autograd: + +# In[ ]: + + +import autograd.numpy as np +from autograd import grad, elementwise_grad +import autograd.numpy.random as npr +from matplotlib import pyplot as plt + +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +def deep_neural_network(deep_params, x): + # N_hidden is the number of hidden layers + N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer + + # Assumes input x being an one-dimensional array + num_values = np.size(x) + x = x.reshape(-1, num_values) + + # Assume that the input layer does nothing to the input x + x_input = x + + # Due to multiple hidden layers, define a variable referencing to the + # output of the previous layer: + x_prev = x_input + + ## Hidden layers: + + for l in range(N_hidden): + # From the list of parameters P; find the correct weigths and bias for this layer + w_hidden = deep_params[l] + + # Add a row of ones to include bias + x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_prev) + x_hidden = sigmoid(z_hidden) + + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden + + ## Output layer: + + # Get the weights and bias for this layer + w_output = deep_params[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0) + + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output + +def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb): + # num_hidden_neurons is now a list of number of neurons within each hidden layer + + # Find the number of hidden layers: + N_hidden = np.size(num_neurons) + + ## Set up initial weigths and biases + + # Initialize the list of parameters: + P = [None]*(N_hidden + 1) # + 1 to include the output layer + + P[0] = npr.randn(num_neurons[0], 2 ) + for l in range(1,N_hidden): + P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias + + # For the output layer + P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included + + print('Initial cost: %g'%cost_function_deep(P, x)) + + ## Start finding the optimal weigths using gradient descent + + # Find the Python function that represents the gradient of the cost function + # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer + cost_function_deep_grad = grad(cost_function_deep,0) + + # Let the update be done num_iter times + for i in range(num_iter): + # Evaluate the gradient at the current weights and biases in P. + # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases + # in the hidden layers and output layers evaluated at x. + cost_deep_grad = cost_function_deep_grad(P, x) + + for l in range(N_hidden+1): + P[l] = P[l] - lmb * cost_deep_grad[l] + + print('Final cost: %g'%cost_function_deep(P, x)) + + return P + +## Set up the cost function specified for this Poisson equation: + +# The right side of the ODE +def f(x): + return (3*x + x**2)*np.exp(x) + +def cost_function_deep(P, x): + + # Evaluate the trial function with the current parameters P + g_t = g_trial_deep(x,P) + + # Find the derivative w.r.t x of the trial function + d2_g_t = elementwise_grad(elementwise_grad(g_trial_deep,0))(x,P) + + right_side = f(x) + + err_sqr = (-d2_g_t - right_side)**2 + cost_sum = np.sum(err_sqr) + + return cost_sum/np.size(err_sqr) + +# The trial solution: +def g_trial_deep(x,P): + return x*(1-x)*deep_neural_network(P,x) + +# The analytic solution; +def g_analytic(x): + return x*(1-x)*np.exp(x) + +if __name__ == '__main__': + npr.seed(4155) + + ## Decide the vales of arguments to the function to solve + Nx = 10 + x = np.linspace(0,1, Nx) + + ## Set up the initial parameters + num_hidden_neurons = [200,100] + num_iter = 1000 + lmb = 1e-3 + + P = solve_ode_deep_neural_network(x, num_hidden_neurons, num_iter, lmb) + + g_dnn_ag = g_trial_deep(x,P) + g_analytical = g_analytic(x) + + # Find the maximum absolute difference between the solutons: + + plt.figure(figsize=(10,10)) + + plt.title('Performance of neural network solving an ODE compared to the analytical solution') + plt.plot(x, g_analytical) + plt.plot(x, g_dnn_ag[0,:]) + plt.legend(['analytical','nn']) + plt.xlabel('x') + plt.ylabel('g(x)') + + ## Perform the computation using the numerical scheme + + dx = 1/(Nx - 1) + + # Set up the matrix A + A = np.zeros((Nx-2,Nx-2)) + + A[0,0] = 2 + A[0,1] = -1 + + for i in range(1,Nx-3): + A[i,i-1] = -1 + A[i,i] = 2 + A[i,i+1] = -1 + + A[Nx - 3, Nx - 4] = -1 + A[Nx - 3, Nx - 3] = 2 + + # Set up the vector f + f_vec = dx**2 * f(x[1:-1]) + + # Solve the equation + g_res = np.linalg.solve(A,f_vec) + + g_vec = np.zeros(Nx) + g_vec[1:-1] = g_res + + # Print the differences between each method + max_diff1 = np.max(np.abs(g_dnn_ag - g_analytical)) + max_diff2 = np.max(np.abs(g_vec - g_analytical)) + print("The max absolute difference between the analytical solution and DNN Autograd: %g"%max_diff1) + print("The max absolute difference between the analytical solution and numerical scheme: %g"%max_diff2) + + # Plot the results + plt.figure(figsize=(10,10)) + + plt.plot(x,g_vec) + plt.plot(x,g_analytical) + plt.plot(x,g_dnn_ag[0,:]) + + plt.legend(['numerical scheme','analytical','dnn']) + plt.show() + + +# ## Partial Differential Equations +# +# A partial differential equation (PDE) has a solution here the function +# is defined by multiple variables. The equation may involve all kinds +# of combinations of which variables the function is differentiated with +# respect to. +# +# In general, a partial differential equation for a function $g(x_1,\dots,x_N)$ with $N$ variables may be expressed as + +# +#
    +# +# $$ +# \begin{equation} \label{PDE} \tag{17} +# f\left(x_1, \, \dots \, , x_N, \frac{\partial g(x_1,\dots,x_N) }{\partial x_1}, \dots , \frac{\partial g(x_1,\dots,x_N) }{\partial x_N}, \frac{\partial g(x_1,\dots,x_N) }{\partial x_1\partial x_2}, \, \dots \, , \frac{\partial^n g(x_1,\dots,x_N) }{\partial x_N^n} \right) = 0 +# \end{equation} +# $$ + +# where $f$ is an expression involving all kinds of possible mixed derivatives of $g(x_1,\dots,x_N)$ up to an order $n$. In order for the solution to be unique, some additional conditions must also be given. +# +# ### Type of problem +# +# The problem our network must solve for, is similar to the ODE case. +# We must have a trial solution $g_t$ at hand. +# +# For instance, the trial solution could be expressed as + +# $$ +# \begin{align*} +# g_t(x_1,\dots,x_N) = h_1(x_1,\dots,x_N) + h_2(x_1,\dots,x_N,N(x_1,\dots,x_N,P)) +# \end{align*} +# $$ + +# where $h_1(x_1,\dots,x_N)$ is a function that ensures $g_t(x_1,\dots,x_N)$ satisfies some given conditions. +# The neural network $N(x_1,\dots,x_N,P)$ has weights and biases described by $P$ and $h_2(x_1,\dots,x_N,N(x_1,\dots,x_N,P))$ is an expression using the output from the neural network in some way. +# +# The role of the function $h_2(x_1,\dots,x_N,N(x_1,\dots,x_N,P))$, is to ensure that the output of $N(x_1,\dots,x_N,P)$ is zero when $g_t(x_1,\dots,x_N)$ is evaluated at the values of $x_1,\dots,x_N$ where the given conditions must be satisfied. The function $h_1(x_1,\dots,x_N)$ should alone make $g_t(x_1,\dots,x_N)$ satisfy the conditions. +# +# +# +# ### Network requirements +# +# The network tries then the minimize the cost function following the +# same ideas as described for the ODE case, but now with more than one +# variables to consider. The concept still remains the same; find a set +# of parameters $P$ such that the expression $f$ in ([17](#PDE)) is as +# close to zero as possible. +# +# As for the ODE case, the cost function is the mean squared error that +# the network must try to minimize. The cost function for the network to +# minimize is + +# $$ +# C\left(x_1, \dots, x_N, P\right) = \left( f\left(x_1, \, \dots \, , x_N, \frac{\partial g(x_1,\dots,x_N) }{\partial x_1}, \dots , \frac{\partial g(x_1,\dots,x_N) }{\partial x_N}, \frac{\partial g(x_1,\dots,x_N) }{\partial x_1\partial x_2}, \, \dots \, , \frac{\partial^n g(x_1,\dots,x_N) }{\partial x_N^n} \right) \right)^2 +# $$ + +# If we let $\boldsymbol{x} = \big( x_1, \dots, x_N \big)$ be an array containing the values for $x_1, \dots, x_N$ respectively, the cost function can be reformulated into the following: + +# $$ +# C\left(\boldsymbol{x}, P\right) = f\left( \left( \boldsymbol{x}, \frac{\partial g(\boldsymbol{x}) }{\partial x_1}, \dots , \frac{\partial g(\boldsymbol{x}) }{\partial x_N}, \frac{\partial g(\boldsymbol{x}) }{\partial x_1\partial x_2}, \, \dots \, , \frac{\partial^n g(\boldsymbol{x}) }{\partial x_N^n} \right) \right)^2 +# $$ + +# If we also have $M$ different sets of values for $x_1, \dots, x_N$, that is $\boldsymbol{x}_i = \big(x_1^{(i)}, \dots, x_N^{(i)}\big)$ for $i = 1,\dots,M$ being the rows in matrix $X$, the cost function can be generalized into + +# $$ +# C\left(X, P \right) = \sum_{i=1}^M f\left( \left( \boldsymbol{x}_i, \frac{\partial g(\boldsymbol{x}_i) }{\partial x_1}, \dots , \frac{\partial g(\boldsymbol{x}_i) }{\partial x_N}, \frac{\partial g(\boldsymbol{x}_i) }{\partial x_1\partial x_2}, \, \dots \, , \frac{\partial^n g(\boldsymbol{x}_i) }{\partial x_N^n} \right) \right)^2. +# $$ + +# ## Example: The diffusion equation +# +# In one spatial dimension, the equation reads + +# $$ +# \frac{\partial g(x,t)}{\partial t} = \frac{\partial^2 g(x,t)}{\partial x^2} +# $$ + +# where a possible choice of conditions are + +# $$ +# \begin{align*} +# g(0,t) &= 0 ,\qquad t \geq 0 \\ +# g(1,t) &= 0, \qquad t \geq 0 \\ +# g(x,0) &= u(x),\qquad x\in [0,1] +# \end{align*} +# $$ + +# with $u(x)$ being some given function. +# +# +# +# For this case, we want to find $g(x,t)$ such that + +# +#
    +# +# $$ +# \begin{equation} +# \frac{\partial g(x,t)}{\partial t} = \frac{\partial^2 g(x,t)}{\partial x^2} +# \end{equation} \label{diffonedim} \tag{18} +# $$ + +# and + +# $$ +# \begin{align*} +# g(0,t) &= 0 ,\qquad t \geq 0 \\ +# g(1,t) &= 0, \qquad t \geq 0 \\ +# g(x,0) &= u(x),\qquad x\in [0,1] +# \end{align*} +# $$ + +# with $u(x) = \sin(\pi x)$. +# +# First, let us set up the deep neural network. +# The deep neural network will follow the same structure as discussed in the examples solving the ODEs. +# First, we will look into how Autograd could be used in a network tailored to solve for bivariate functions. +# +# +# +# +# The only change to do here, is to extend our network such that +# functions of multiple parameters are correctly handled. In this case +# we have two variables in our function to solve for, that is time $t$ +# and position $x$. The variables will be represented by a +# one-dimensional array in the program. The program will evaluate the +# network at each possible pair $(x,t)$, given an array for the desired +# $x$-values and $t$-values to approximate the solution at. + +# In[ ]: + + +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +def deep_neural_network(deep_params, x): + # x is now a point and a 1D numpy array; make it a column vector + num_coordinates = np.size(x,0) + x = x.reshape(num_coordinates,-1) + + num_points = np.size(x,1) + + # N_hidden is the number of hidden layers + N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer + + # Assume that the input layer does nothing to the input x + x_input = x + x_prev = x_input + + ## Hidden layers: + + for l in range(N_hidden): + # From the list of parameters P; find the correct weigths and bias for this layer + w_hidden = deep_params[l] + + # Add a row of ones to include bias + x_prev = np.concatenate((np.ones((1,num_points)), x_prev ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_prev) + x_hidden = sigmoid(z_hidden) + + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden + + ## Output layer: + + # Get the weights and bias for this layer + w_output = deep_params[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_points)), x_prev), axis = 0) + + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output[0][0] + + +# The cost function must then iterate through the given arrays +# containing values for $x$ and $t$, defines a point $(x,t)$ the deep +# neural network and the trial solution is evaluated at, and then finds +# the Jacobian of the trial solution. +# +# A possible trial solution for this PDE is +# +# $$ +# g_t(x,t) = h_1(x,t) + x(1-x)tN(x,t,P) +# $$ +# +# with $A(x,t)$ being a function ensuring that $g_t(x,t)$ satisfies our given conditions, and $N(x,t,P)$ being the output from the deep neural network using weights and biases for each layer from $P$. +# +# To fulfill the conditions, $A(x,t)$ could be: +# +# $$ +# h_1(x,t) = (1-t)\Big(u(x) - \big((1-x)u(0) + x u(1)\big)\Big) = (1-t)u(x) = (1-t)\sin(\pi x) +# $$ +# since $(0) = u(1) = 0$ and $u(x) = \sin(\pi x)$. +# +# +# +# The Jacobian is used because the program must find the derivative of +# the trial solution with respect to $x$ and $t$. +# +# This gives the necessity of computing the Jacobian matrix, as we want +# to evaluate the gradient with respect to $x$ and $t$ (note that the +# Jacobian of a scalar-valued multivariate function is simply its +# gradient). +# +# In Autograd, the differentiation is by default done with respect to +# the first input argument of your Python function. Since the points is +# an array representing $x$ and $t$, the Jacobian is calculated using +# the values of $x$ and $t$. +# +# To find the second derivative with respect to $x$ and $t$, the +# Jacobian can be found for the second time. The result is a Hessian +# matrix, which is the matrix containing all the possible second order +# mixed derivatives of $g(x,t)$. + +# In[ ]: + + +# Set up the trial function: +def u(x): + return np.sin(np.pi*x) + +def g_trial(point,P): + x,t = point + return (1-t)*u(x) + x*(1-x)*t*deep_neural_network(P,point) + +# The right side of the ODE: +def f(point): + return 0. + +# The cost function: +def cost_function(P, x, t): + cost_sum = 0 + + g_t_jacobian_func = jacobian(g_trial) + g_t_hessian_func = hessian(g_trial) + + for x_ in x: + for t_ in t: + point = np.array([x_,t_]) + + g_t = g_trial(point,P) + g_t_jacobian = g_t_jacobian_func(point,P) + g_t_hessian = g_t_hessian_func(point,P) + + g_t_dt = g_t_jacobian[1] + g_t_d2x = g_t_hessian[0][0] + + func = f(point) + + err_sqr = ( (g_t_dt - g_t_d2x) - func)**2 + cost_sum += err_sqr + + return cost_sum + + +# ### Setting up the network using Autograd; The full program +# +# Having set up the network, along with the trial solution and cost function, we can now see how the deep neural network performs by comparing the results to the analytical solution. +# +# The analytical solution of our problem is +# +# $$ +# g(x,t) = \exp(-\pi^2 t)\sin(\pi x) +# $$ +# +# A possible way to implement a neural network solving the PDE, is given below. +# Be aware, though, that it is fairly slow for the parameters used. +# A better result is possible, but requires more iterations, and thus longer time to complete. +# +# +# Indeed, the program below is not optimal in its implementation, but rather serves as an example on how to implement and use a neural network to solve a PDE. +# Using TensorFlow results in a much better execution time. Try it! + +# In[ ]: + + +import autograd.numpy as np +from autograd import jacobian,hessian,grad +import autograd.numpy.random as npr +from matplotlib import cm +from matplotlib import pyplot as plt +from mpl_toolkits.mplot3d import axes3d + +## Set up the network + +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +def deep_neural_network(deep_params, x): + # x is now a point and a 1D numpy array; make it a column vector + num_coordinates = np.size(x,0) + x = x.reshape(num_coordinates,-1) + + num_points = np.size(x,1) + + # N_hidden is the number of hidden layers + N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer + + # Assume that the input layer does nothing to the input x + x_input = x + x_prev = x_input + + ## Hidden layers: + + for l in range(N_hidden): + # From the list of parameters P; find the correct weigths and bias for this layer + w_hidden = deep_params[l] + + # Add a row of ones to include bias + x_prev = np.concatenate((np.ones((1,num_points)), x_prev ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_prev) + x_hidden = sigmoid(z_hidden) + + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden + + ## Output layer: + + # Get the weights and bias for this layer + w_output = deep_params[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_points)), x_prev), axis = 0) + + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output[0][0] + +## Define the trial solution and cost function +def u(x): + return np.sin(np.pi*x) + +def g_trial(point,P): + x,t = point + return (1-t)*u(x) + x*(1-x)*t*deep_neural_network(P,point) + +# The right side of the ODE: +def f(point): + return 0. + +# The cost function: +def cost_function(P, x, t): + cost_sum = 0 + + g_t_jacobian_func = jacobian(g_trial) + g_t_hessian_func = hessian(g_trial) + + for x_ in x: + for t_ in t: + point = np.array([x_,t_]) + + g_t = g_trial(point,P) + g_t_jacobian = g_t_jacobian_func(point,P) + g_t_hessian = g_t_hessian_func(point,P) + + g_t_dt = g_t_jacobian[1] + g_t_d2x = g_t_hessian[0][0] + + func = f(point) + + err_sqr = ( (g_t_dt - g_t_d2x) - func)**2 + cost_sum += err_sqr + + return cost_sum /( np.size(x)*np.size(t) ) + +## For comparison, define the analytical solution +def g_analytic(point): + x,t = point + return np.exp(-np.pi**2*t)*np.sin(np.pi*x) + +## Set up a function for training the network to solve for the equation +def solve_pde_deep_neural_network(x,t, num_neurons, num_iter, lmb): + ## Set up initial weigths and biases + N_hidden = np.size(num_neurons) + + ## Set up initial weigths and biases + + # Initialize the list of parameters: + P = [None]*(N_hidden + 1) # + 1 to include the output layer + + P[0] = npr.randn(num_neurons[0], 2 + 1 ) # 2 since we have two points, +1 to include bias + for l in range(1,N_hidden): + P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias + + # For the output layer + P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included + + print('Initial cost: ',cost_function(P, x, t)) + + cost_function_grad = grad(cost_function,0) + + # Let the update be done num_iter times + for i in range(num_iter): + cost_grad = cost_function_grad(P, x , t) + + for l in range(N_hidden+1): + P[l] = P[l] - lmb * cost_grad[l] + + print('Final cost: ',cost_function(P, x, t)) + + return P + +if __name__ == '__main__': + ### Use the neural network: + npr.seed(15) + + ## Decide the vales of arguments to the function to solve + Nx = 10; Nt = 10 + x = np.linspace(0, 1, Nx) + t = np.linspace(0,1,Nt) + + ## Set up the parameters for the network + num_hidden_neurons = [100, 25] + num_iter = 250 + lmb = 0.01 + + P = solve_pde_deep_neural_network(x,t, num_hidden_neurons, num_iter, lmb) + + ## Store the results + g_dnn_ag = np.zeros((Nx, Nt)) + G_analytical = np.zeros((Nx, Nt)) + for i,x_ in enumerate(x): + for j, t_ in enumerate(t): + point = np.array([x_, t_]) + g_dnn_ag[i,j] = g_trial(point,P) + + G_analytical[i,j] = g_analytic(point) + + # Find the map difference between the analytical and the computed solution + diff_ag = np.abs(g_dnn_ag - G_analytical) + print('Max absolute difference between the analytical solution and the network: %g'%np.max(diff_ag)) + + ## Plot the solutions in two dimensions, that being in position and time + + T,X = np.meshgrid(t,x) + + fig = plt.figure(figsize=(10,10)) + ax = fig.gca(projection='3d') + ax.set_title('Solution from the deep neural network w/ %d layer'%len(num_hidden_neurons)) + s = ax.plot_surface(T,X,g_dnn_ag,linewidth=0,antialiased=False,cmap=cm.viridis) + ax.set_xlabel('Time $t$') + ax.set_ylabel('Position $x$'); + + + fig = plt.figure(figsize=(10,10)) + ax = fig.gca(projection='3d') + ax.set_title('Analytical solution') + s = ax.plot_surface(T,X,G_analytical,linewidth=0,antialiased=False,cmap=cm.viridis) + ax.set_xlabel('Time $t$') + ax.set_ylabel('Position $x$'); + + fig = plt.figure(figsize=(10,10)) + ax = fig.gca(projection='3d') + ax.set_title('Difference') + s = ax.plot_surface(T,X,diff_ag,linewidth=0,antialiased=False,cmap=cm.viridis) + ax.set_xlabel('Time $t$') + ax.set_ylabel('Position $x$'); + + ## Take some slices of the 3D plots just to see the solutions at particular times + indx1 = 0 + indx2 = int(Nt/2) + indx3 = Nt-1 + + t1 = t[indx1] + t2 = t[indx2] + t3 = t[indx3] + + # Slice the results from the DNN + res1 = g_dnn_ag[:,indx1] + res2 = g_dnn_ag[:,indx2] + res3 = g_dnn_ag[:,indx3] + + # Slice the analytical results + res_analytical1 = G_analytical[:,indx1] + res_analytical2 = G_analytical[:,indx2] + res_analytical3 = G_analytical[:,indx3] + + # Plot the slices + plt.figure(figsize=(10,10)) + plt.title("Computed solutions at time = %g"%t1) + plt.plot(x, res1) + plt.plot(x,res_analytical1) + plt.legend(['dnn','analytical']) + + plt.figure(figsize=(10,10)) + plt.title("Computed solutions at time = %g"%t2) + plt.plot(x, res2) + plt.plot(x,res_analytical2) + plt.legend(['dnn','analytical']) + + plt.figure(figsize=(10,10)) + plt.title("Computed solutions at time = %g"%t3) + plt.plot(x, res3) + plt.plot(x,res_analytical3) + plt.legend(['dnn','analytical']) + + plt.show() + + +# ## Solving the wave equation with Neural Networks +# +# The wave equation is + +# $$ +# \frac{\partial^2 g(x,t)}{\partial t^2} = c^2\frac{\partial^2 g(x,t)}{\partial x^2} +# $$ + +# with $c$ being the specified wave speed. +# +# Here, the chosen conditions are + +# $$ +# \begin{align*} +# g(0,t) &= 0 \\ +# g(1,t) &= 0 \\ +# g(x,0) &= u(x) \\ +# \frac{\partial g(x,t)}{\partial t} \Big |_{t = 0} &= v(x) +# \end{align*} +# $$ + +# where $\frac{\partial g(x,t)}{\partial t} \Big |_{t = 0}$ means the derivative of $g(x,t)$ with respect to $t$ is evaluated at $t = 0$, and $u(x)$ and $v(x)$ being given functions. +# +# +# The wave equation to solve for, is + +# +#
    +# +# $$ +# \begin{equation} \label{wave} \tag{19} +# \frac{\partial^2 g(x,t)}{\partial t^2} = c^2 \frac{\partial^2 g(x,t)}{\partial x^2} +# \end{equation} +# $$ + +# where $c$ is the given wave speed. +# The chosen conditions for this equation are + +# +#
    +# +# $$ +# \begin{aligned} +# g(0,t) &= 0, &t \geq 0 \\ +# g(1,t) &= 0, &t \geq 0 \\ +# g(x,0) &= u(x), &x\in[0,1] \\ +# \frac{\partial g(x,t)}{\partial t}\Big |_{t = 0} &= v(x), &x \in [0,1] +# \end{aligned} \label{condwave} \tag{20} +# $$ + +# In this example, let $c = 1$ and $u(x) = \sin(\pi x)$ and $v(x) = -\pi\sin(\pi x)$. +# +# +# +# Setting up the network is done in similar matter as for the example of solving the diffusion equation. +# The only things we have to change, is the trial solution such that it satisfies the conditions from ([20](#condwave)) and the cost function. +# +# The trial solution becomes slightly different since we have other conditions than in the example of solving the diffusion equation. Here, a possible trial solution $g_t(x,t)$ is +# +# $$ +# g_t(x,t) = h_1(x,t) + x(1-x)t^2N(x,t,P) +# $$ +# +# where +# +# $$ +# h_1(x,t) = (1-t^2)u(x) + tv(x) +# $$ +# +# Note that this trial solution satisfies the conditions only if $u(0) = v(0) = u(1) = v(1) = 0$, which is the case in this example. +# +# +# The analytical solution for our specific problem, is +# +# $$ +# g(x,t) = \sin(\pi x)\cos(\pi t) - \sin(\pi x)\sin(\pi t) +# $$ + +# In[ ]: + + +import autograd.numpy as np +from autograd import hessian,grad +import autograd.numpy.random as npr +from matplotlib import cm +from matplotlib import pyplot as plt +from mpl_toolkits.mplot3d import axes3d + +## Set up the trial function: +def u(x): + return np.sin(np.pi*x) + +def v(x): + return -np.pi*np.sin(np.pi*x) + +def h1(point): + x,t = point + return (1 - t**2)*u(x) + t*v(x) + +def g_trial(point,P): + x,t = point + return h1(point) + x*(1-x)*t**2*deep_neural_network(P,point) + +## Define the cost function +def cost_function(P, x, t): + cost_sum = 0 + + g_t_hessian_func = hessian(g_trial) + + for x_ in x: + for t_ in t: + point = np.array([x_,t_]) + + g_t_hessian = g_t_hessian_func(point,P) + + g_t_d2x = g_t_hessian[0][0] + g_t_d2t = g_t_hessian[1][1] + + err_sqr = ( (g_t_d2t - g_t_d2x) )**2 + cost_sum += err_sqr + + return cost_sum / (np.size(t) * np.size(x)) + +## The neural network +def sigmoid(z): + return 1/(1 + np.exp(-z)) + +def deep_neural_network(deep_params, x): + # x is now a point and a 1D numpy array; make it a column vector + num_coordinates = np.size(x,0) + x = x.reshape(num_coordinates,-1) + + num_points = np.size(x,1) + + # N_hidden is the number of hidden layers + N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer + + # Assume that the input layer does nothing to the input x + x_input = x + x_prev = x_input + + ## Hidden layers: + + for l in range(N_hidden): + # From the list of parameters P; find the correct weigths and bias for this layer + w_hidden = deep_params[l] + + # Add a row of ones to include bias + x_prev = np.concatenate((np.ones((1,num_points)), x_prev ), axis = 0) + + z_hidden = np.matmul(w_hidden, x_prev) + x_hidden = sigmoid(z_hidden) + + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden + + ## Output layer: + + # Get the weights and bias for this layer + w_output = deep_params[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_points)), x_prev), axis = 0) + + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output[0][0] + +## The analytical solution +def g_analytic(point): + x,t = point + return np.sin(np.pi*x)*np.cos(np.pi*t) - np.sin(np.pi*x)*np.sin(np.pi*t) + +def solve_pde_deep_neural_network(x,t, num_neurons, num_iter, lmb): + ## Set up initial weigths and biases + N_hidden = np.size(num_neurons) + + ## Set up initial weigths and biases + + # Initialize the list of parameters: + P = [None]*(N_hidden + 1) # + 1 to include the output layer + + P[0] = npr.randn(num_neurons[0], 2 + 1 ) # 2 since we have two points, +1 to include bias + for l in range(1,N_hidden): + P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias + + # For the output layer + P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included + + print('Initial cost: ',cost_function(P, x, t)) + + cost_function_grad = grad(cost_function,0) + + # Let the update be done num_iter times + for i in range(num_iter): + cost_grad = cost_function_grad(P, x , t) + + for l in range(N_hidden+1): + P[l] = P[l] - lmb * cost_grad[l] + + + print('Final cost: ',cost_function(P, x, t)) + + return P + +if __name__ == '__main__': + ### Use the neural network: + npr.seed(15) + + ## Decide the vales of arguments to the function to solve + Nx = 10; Nt = 10 + x = np.linspace(0, 1, Nx) + t = np.linspace(0,1,Nt) + + ## Set up the parameters for the network + num_hidden_neurons = [50,20] + num_iter = 1000 + lmb = 0.01 + + P = solve_pde_deep_neural_network(x,t, num_hidden_neurons, num_iter, lmb) + + ## Store the results + res = np.zeros((Nx, Nt)) + res_analytical = np.zeros((Nx, Nt)) + for i,x_ in enumerate(x): + for j, t_ in enumerate(t): + point = np.array([x_, t_]) + res[i,j] = g_trial(point,P) + + res_analytical[i,j] = g_analytic(point) + + diff = np.abs(res - res_analytical) + print("Max difference between analytical and solution from nn: %g"%np.max(diff)) + + ## Plot the solutions in two dimensions, that being in position and time + + T,X = np.meshgrid(t,x) + + fig = plt.figure(figsize=(10,10)) + ax = fig.gca(projection='3d') + ax.set_title('Solution from the deep neural network w/ %d layer'%len(num_hidden_neurons)) + s = ax.plot_surface(T,X,res,linewidth=0,antialiased=False,cmap=cm.viridis) + ax.set_xlabel('Time $t$') + ax.set_ylabel('Position $x$'); + + + fig = plt.figure(figsize=(10,10)) + ax = fig.gca(projection='3d') + ax.set_title('Analytical solution') + s = ax.plot_surface(T,X,res_analytical,linewidth=0,antialiased=False,cmap=cm.viridis) + ax.set_xlabel('Time $t$') + ax.set_ylabel('Position $x$'); + + + fig = plt.figure(figsize=(10,10)) + ax = fig.gca(projection='3d') + ax.set_title('Difference') + s = ax.plot_surface(T,X,diff,linewidth=0,antialiased=False,cmap=cm.viridis) + ax.set_xlabel('Time $t$') + ax.set_ylabel('Position $x$'); + + ## Take some slices of the 3D plots just to see the solutions at particular times + indx1 = 0 + indx2 = int(Nt/2) + indx3 = Nt-1 + + t1 = t[indx1] + t2 = t[indx2] + t3 = t[indx3] + + # Slice the results from the DNN + res1 = res[:,indx1] + res2 = res[:,indx2] + res3 = res[:,indx3] + + # Slice the analytical results + res_analytical1 = res_analytical[:,indx1] + res_analytical2 = res_analytical[:,indx2] + res_analytical3 = res_analytical[:,indx3] + + # Plot the slices + plt.figure(figsize=(10,10)) + plt.title("Computed solutions at time = %g"%t1) + plt.plot(x, res1) + plt.plot(x,res_analytical1) + plt.legend(['dnn','analytical']) + + plt.figure(figsize=(10,10)) + plt.title("Computed solutions at time = %g"%t2) + plt.plot(x, res2) + plt.plot(x,res_analytical2) + plt.legend(['dnn','analytical']) + + plt.figure(figsize=(10,10)) + plt.title("Computed solutions at time = %g"%t3) + plt.plot(x, res3) + plt.plot(x,res_analytical3) + plt.legend(['dnn','analytical']) + + plt.show() + + +# ## Resources on differential equations and deep learning +# +# 1. [Artificial neural networks for solving ordinary and partial differential equations by I.E. Lagaris et al](https://pdfs.semanticscholar.org/d061/df393e0e8fbfd0ea24976458b7d42419040d.pdf) +# +# 2. [Neural networks for solving differential equations by A. Honchar](https://becominghuman.ai/neural-networks-for-solving-differential-equations-fa230ac5e04c) +# +# 3. [Solving differential equations using neural networks by M.M Chiaramonte and M. Kiener](http://cs229.stanford.edu/proj2013/ChiaramonteKiener-SolvingDifferentialEquationsUsingNeuralNetworks.pdf) +# +# 4. [Introduction to Partial Differential Equations by A. Tveito, R. Winther](https://www.springer.com/us/book/9783540225515) diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter11_47_2.png b/doc/LectureNotes/_build/jupyter_execute/chapter11_47_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5742598bc953ff52ab6e2705d212b69739b562a3 GIT binary patch literal 23393 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⩔>4!BuxJG(Ednq4_ln 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 p7@7{OczjwX0>a1F))~-{h*53QuzkPnZWunJ_ zMC1qxh2jVGZ{1A2gqpWLPNnBj@&f4U*~m4xaHq^>0S$oF6hbPX zEG!5YN_Sj?Ki<2e4`=c5g64Rq7iSFM6q&G9v}A+C{5 zo<2PeKFRIzC+CS)BDSRq!^rOH_X>ttLGh2$OC3rP=eRCZ3a5Q*%@-p*xZvh96}ncT zV8^v?8z_o@*jPphrN8zNh{>NO1FX#Hva2b^YXl$$Kb;NI^{XzCFwI-7+-jWLjv>4= z_4u5uLRc(qnkqfguiBm=H8Ri|)egjDP7eYOrv72DbG&v6pkU;G9mdIwnU7b_3p7EKIX8p5Ob=Z? z)FPoKu`Nf7ksi4)_nEkY5#WrLP!ry^i$%iaeb0}}Wg_7LRA(KY{kyQSc7GoK-H}!% zH?d>>;V=a)gU;X!J35PL$LxDKVi+OBh`lUr@lY*7qvipniGn*rI1$Rvct~H9;LqV` zsheG8E*Gs@q&?`U5{b=@Tj8K`9@#$2Akw2M(G&ec(W;CV`f>_JLE<8{7?V%8C68!N z6$fX8ScF7!`+{4Wudv!)^ACGi7>U94;Y)FqeAe`YIH8TCN;I8ICAf<>)SSX}R!pcoTBXgr3uGV!%|eIjv-n^w zH4+43P1nRV&a*a{%QJpbzD`@4)p6}*Nb|h6co}EKV#(*qrhe`bo|e|)<@&ip*5)j9tOB_uTHlAOTmRQ%7T|bEP|($nIX4 z=e#8ATyD>^0E3WEuPM4&8BQua%LJ|bR|oO=0~&( zJo=cWOJ%m3x^YIj!Bml|?elTfaRL?tae4EVF9Uj*S#B z^i#^z22p}mO`MI5nKQu)>LOzrX}|}H96KfZEq*>tQU|d{RjQDgl{S(6B-1EpH9~RUa`EfcCGyISNr-| zEn58FKT3fjy}yK9hX&#Rq29)|Sx=fB6chy;#%V*fyxXQA8FRF!@rO_AGIkk&M_~6R zA2!8Wzi%79YX#YMM&-Eq8vY5h??BIsvH)lt{|G1{{a?iU&l_bK+yT^ONXg))bYo~< zFh$=StTQT*2m9QmB?LiBOa{j+Iy;UR?=8_oSECgXi>2-GfQMH9aFrTn*cMWS2DFI~ zaR>8>DZ!AYao>Io!be3BkeJ)Nvm_9 zh&xHZSH_yNPwTEmWQo&V0&kiP~*0~uMNP~TI>HDa9z+>~@RippB zZ~k|@yefI93kSesnfGvTBKH_e5{{H7xxxGSKz6YiI|7xC3nT)iaow>2aUY0}FhA3N zL&7Z}ZLZKuj6raS9n9lOb+TmCrsaS!6eQq#!Z#ZC0NFL6%xOG-b&LJ}4LxHgVHtG& zM$!sKf=WG0!l4zo2T`UXN(F#zTsf*Z$N#sNLTul8yB_tm8gPL&F3=#NS3=E*J!Fe` zcE|IJzOsD|h`(h!s2(G;m6ZQ6SLHoK?3b}l{XJ@U620P#K@-C&t_IZb!00K`tGr$Z z&Nih-O#pZ%Yg;i9(MX*>?Wjr+3AOs&Tjq|Y&@x)yz+Z)NhBiuEm;NKo`qhZWkRAWs zan)rwZ&V@orZ`;q=-D&O7+g5w@~3?0zvJ}NbP+hgu8sLJw_(6zFsa#P^}^A-0jzZU z=0uhLS}E}n_`Eu3)q6Mk7k#+qVsf>pr#6F0r$)r78Wo-f``!zyvt#@*pxUP%5h2F_ zXpivcjMypCsZE)D7Z|m9i9Llg2@r)6DBkXT76uK zY_vLDXstw!xxSJ2uwIl>omzONQ_WUTRPE&7-V*+p$b7N8I?G3o8EI|x`yK*e*T*`g z=RnUjH%JOJJ}5(g5|12K{1L`iq$%|NhCb}tqn5Gv8fbqyeT`N@uPK$WdrYPPgDpCf|so!x1UYrr9;IS)zHTLk5)2Z*5Lv%TASn*xE^gW5E93_OnS+d zi7rnG`Y<xIrWN42#SSLM#zehP>?g_oQ0ro|@E;u;iwYZ1T zEiOGwsJ0cUvlvL{7gaH;R|7TfCr9|ae$*hY*66lhNUymLsEe|-TQ{`P@sGm9&gBYD z6)AN&k_Zj$XoY(Kq;O7fbYjIiyvJBN0A$8uv1gDbj zpV*0_^z&peZ8~oi-_#F)-M_G>HjcO9ez=T79u;it)Cd>qUR))-MleKOB9_KQWBwr_ z@HyP6(;4s*CXch_3~2*j!48=w4>l8^AZ6cw_`<=^ZR;uE!6jGvJKKt!{$v~8=|547 z0;eCnBj@@qln^|j*%flGp&grWEoaWl2Gbvw+kQ^BeU7Y$EDp{e>U{m3OC}qjdX{%u zW|V!m#uH4M_vqxWponr|d~F2DkneAxq34(Qch7Ni^%EKm%VS@`s8UHmb4tX-i*AuY z`dW8}tCv39WDXhHb=>zJsVdrB8o9JhZp6*Co}Z}o`kd)Z%cg3zFgueO@v346Cu5JB z#MZZqM>B_n?3WNI_XIO?utGa>WPPOJ7`83!voff0TB@-EsY}{xNNaRaToTm?wEV4g zuwwbpyXRe3WbV=zRd=RRaP^IQ*gLJ^U&D@$8fbjO_X+*=PKuJ*`Af3#<@)U#a>H${ z>*ZSW`{Qk`)dLr(ziqXN4GlLQZ(Gmp{dBP1m5^Y4v0-_&OQAAt>ihEd+~PxFpLsuX zD)?IEDuGa~Y(l@OPHX(9hBrv{C$+%g2EYBT_xvPA7r9uOI^ndjfQV~qq<|VR^**IG z&6_>JUV|3mQC~lAXz!2`E(do#c{I>+YqTyXuVXA=q^|r@RM(S^{OkScitl`M(@|!HouQN2X|RGIq*sg51kHCh!5azZGaD zOdQOWhhf!r=Q{EoSc{4#?#Uur1z49&GOi+@TRWxJOJHU8>bkg6yPv0BJ$BC7RYNv5 zAXYT4mB{X1+9ernbY?!<#OFh`upqCZ_m_I?IBj!1N`J<_@ZFtb5dXocq>D+_d)^-f zMjP0_u=hMqxy`_tn^>~PJJoy+Dgy3oL03HM;TWe-##CK zYg^ATz#%&Wl@Wq-K($mVQ%mCC9hTw4>d;kZuHq)m+My@Sx{6B=s#0CPQk=(ZEXzgO z=?AH{ODEo6OSt-3)1h5%W^v#Xq_Oc!1qs@J9_`*+wlbfgc_kyDxCV(lrgw3x8 z-;Xgn3of%f$_TrAZhhU&3YDXgOcnb6?C3W+kJ9{CF1RVSSu1p2@Xl~%d8tqrl?^0K z7uGKvqXCrNb%^yvg?N)8w)mjOD zujoTtkteVYNiJV?SY}?r?@~S!&)pHOZZQnbGw;LqetB#ky_ERiuS@WwQ1>QM4HwQ^KNI@q zDIj<5_v1CCb+#crS;|$0M@I$wuZ~3wEhY|o15E_IqU^O*|DY=opJG)9`m8rhf#0DhX-3*g&V?37V{iqw2rX_;?8$lI{e!ga`9sMs7OSa zVom+$E;P!A%v~`zaS%Wwkq8caHiKDFW{_kl(wM*398Xr4JKuYDg*TRpnK-oXnDx%M z_bijK64#9^jG~~8uWuj=Mx65z{vT*!;%triroKEQzuUKyBuwNtB zb2bQS#~RArA{|0L5mlfdR0FS?)42iTp|erFi@Jer>SZ@Rw9R2H^Y22ES*}jERep<@ z{7me??^A&xK;6yr56jhNVgS4HS8yFn1sY_7Qx&G^Ltic{WdRh9I#heh$6DD(Kxu3} zn&L2N?)ug&FjzNN*UfPKI4A)@A@VL}hHOzi4sGax zJ!hk?!qss@s99)0px9!xrgnEyO+zSaKNQZMU&4>qq6Pd@*7AnAmk>k}8nB90=sTQ} z=K8cP^cW*L7TE=SV;q?lNVfKwa?|h+;deqyQXgbR{WSfCs5y7&ox!*&e{$Pvq#5yy zf^u!3;y(500DDMo4()l#`zfW%p>G5^MGDtwF2ZJgpWJ`Zz+vo&mhdSOrT=gu^LDv^ z@DlpKZma!e9%>ANSV~lkYq+X~G2Q&TZt@RNtAeyUG|ag3e!b;Dn4#s@he^Xi=O=z( z5=6JHz&6zW$xs)lyg_c|*xuv`q9(p2iTsv6TiK(K4umP>DjZ&H?sB*17URDKW%R4N zt}AJ@n}n+}?$2mhxjTTcU~kzao*8pWjSz^Mwgb)aX_~i?kHxLNUF1TRV@WCCU zBxzjmkFfo-xArP#d-nw;bipQ@K0{%U=CSPP^WRysQQr^0?E$ma_@9*Es+VxCE#!V5%#mG2oM`#Bg zOT0nifa5(p{JqtovreYA;PF#g*$?!pd^{O7zkeODg^p*reJI)q{&v8l;C*tEsUxAg z4aM|_dNltEm3SpYV|;OT>^5^lk7~$98+A`LinLn&AZ|QM>_gs8dd=@N0rp-~)4V{E zqPnx4PO<$V6|s}$UuUzFb^0p1!F28F6&l2P z!P%iF#_6FPSQE7k+ug+?J&+0Vcpz-gC*Wd#gs(}d!bgiNEr1hbmXNCfnpSzRoGcuxHd(^^hfEI9fcNg1f ze-LN;oAo~zv7BPYYuu$jS?v<%ak3(WZ1SPhZNDW;^Sa}VuU(ID+5nuJk@3NwOtmc@lb)&V(<#X^4P<18QTdFo`LUm;Q0xt^BM!{@R2{4M zK~dsFTgB3axJhD-Kc%j-M-?h%khMn=!)x)UJjs4a4|9Sascp-Uc>2ere7kimpTj(F zD1AZunT(Ol@o-+k{L!4!Yyb-#n!T-Rs}@1Uo9dHzHvhEtbOJNqBMMI|D)L_FoSGdo zNnG5lqMw$;?6$dKPN!1J$_Tv5CQsP)&SqP(wGMSxgjVbW^V~P|Do$4OY^K~vasGDd zNfc;&*xRtp%`i?Pw!{qzTzkZJ`4mM~j3PLWc|Sh!y1`u?ML=I2Ix^y* z?Qt9_wB4*UFgDguR_D$eD+q7pQ{bxEvqg&SJR*@i`z0SIMD2BQg8$*ehvntvX>iuK zc1sCQm~J!N4zNC&k^So@c}AKRXUnD}zAvPAvBQ6MTIX4#ivIf0(|9CXddw5E0?~FD z9u`8@Xn4SVD%RgHn}l^}?j`StRTmuagHM1FoQ@vCF^v=Iod7k zCg&jNbbL9|GWsVPM}I6vkueFf64#R5LCmyfcvT@hp!>RZ?}PY~bOjmT^}{=14T#y4 z;q0-|DkY@2iv{tGCHb*mOSNY^a>d2P`BNU@LIv$WKLlpl=Wb4<@EaiA@D8+;Fb#%7MnUHBqRG8f2R zyT|a(nBAws!eshY%Sb7oQf+a}6R6jm(CGQonv4f3u2yV@w+Lfo9y~o6z{@mXka`-v zS?jhU94pFu6_+`{*|h2uQ*B|lvQ)Wx&83qewn*627T0fM>P3SiwF>%rE_>CODO6y49SnRKqg1}D;e>YF)-rb!IR#Gppk_+@*eKfp% zbFDNvJ%^BtFor{G@EIeW!9di9k+PI_EiPJd;c-MEB-qS${3a^6$ z$JMnp9OwBk0+;EJh+|L8)~S4KsU)PsXxA|-%F)pgE3S^3dWMD%ii~Ny%57Ro)D?wh znCRU1l1PuWC|5A*pEk_A#S!+E5TxIXtNbfk=eTYK)(^;ADnr(t*T8}1h$F4}05Hu1GhyUWZRN)mk_lkDka4^vS1< z?2e}va58>dTN*^EtEZ=(oFwr376B7AO7)o<$LHf(!+`d`+iQA~-M3`jg16k3kOS_d z63(P`M=ie)dnXT&N1}9ybr@ImUjy|#-Ij$&3|Xky4pUxj<>y4qnaSCbCzo+oRK&n; zsKm*f+bLSm?qDqOL2UQVxVc>U(QK!q%h`iav6z-1&*sJMSga|QJezq)B4)if?Kxxl zs7p3lYBIHmy@?%e#Yjh_Kgz|f?lk+3%XjWJaTG8nh<)@Q@)h3I^nqw@Wk!>#@ROgQd{h^QTh23enqu60h0kk zq2>+rw*RwF^Ogi{+dzoPwMi*MQ!9lcmcEu~-(CI5l-c;X>1k`|%bO$w%U$H{qFm-> z$!}2+tq$Vjm4#;~y)9$u1*TuTnfdjpZeGU|GPM=oULL92duC)RzT2guZQHSco^YCU zS=!da?CYtjZMg0i<7ntO@B?>3d@)1c)4D5WRX#K2- zBC@Oxwx+j*QqOB{RNHO)JyUphmDokpW6ra+I^8yYlv}hEL+{=S!Fq|^;vKzMcX+>T zZdF7#TBZqyXXVNSEwyWv-QND98C-5|oWycMlc!?CMEUOX$9!#}8L6crQcQQ5ZW9lT ze!H)if8AI9)6;PMN6KfD7`ywXx35J-oi|uUwaihyKhPJ?t25bhF3$~`BlyOyxFz0ghCbB zsM%a$A8?H8-o9rbu$c zRK+K05fejKI=oKia69Y2%Y4KMh%($>zU$AgT$N&Ou)fJ_%43ds&K&&mCi1FTdO*av zEYiO{K{@JlNXuNrWu`>kxO7N=(NaBUwb4P_*5w}Aa>rP5A%%K9q^;#fbf31`y4sb* z81d+roWsd>6b=uLY@toiYqFm{KX{sX@RuLg6GFZta2%&Ycy#t;dC9_7ILM-vF|y?4 z62}P-9#MU#@H}FdD0^k^cO{)JD}~gf+x0~F)(TW;Z3P`2@+tk{gfX$`y5Fa4?O|lN)AD9_0nCmNWou(W zz;1%uGI(!mf06nvjoDpBT-w|LB6GN)$}W|?p^il#v6 z7uDhG3;W+UXn2w$}qKZCkpg-z0Jzz?Ci*dGU`k zJgU%1KO$!6UnS{#v67Wt2nw&~7o;Te3ddHf(F|bFh>7_^3g5W`D?{$%Y&;TjTMDbB z(X6cw^j1v&B+;qgZL-CXDzWXYgm@_^W z``|m5emUKmz}^5Vw#`~x0RA#eL5m70*I>K6sh5;zr$XSEtY$eR zAc}!T3@DS~>CYaG)6#(eW~AHQVsywa-flF%B6Kr>MzD9~^9eLxd;W>(1EYMbs;rJqFwo-qp>$-sbsChOnWGc7P{^6>krtnOK$KwCCzKT7 zO-k3qa4Jab;KI{I?c2~CahJJtUC1ymi@P@!$>+OK=;%(WH9nwUm3%@t>T<8ira*-x zCnLvv3A10a4~fDFmvQ)P&GCYd&OqMoQ|9V5{*u?srK)SLuGH!RR)6Y+mpBY|<}*@G zfhEjPNwfQ7lc*13No|*fls_&@I?`_!YLlS!_?4o(XA8Y+?a72d!xhC|bk4i>h}fJc zM>0Qn;_i^l7sG29D@ml&`-?@b-a+Rb>afs5g+5_pVB&j9l_)`k_geX$qe)WLQOro4 zr4FIsO_G~ggk(xGLi(@7=h{ZTq_c7fCBqQZYzhi5H!GGt4s0CeecwJ=%OifKc^cQ~ zcFiTBZPiKS?KVoGJXcnTqEX?qwTcT#%!ts?LdP|eyU$tY@0lCYIQB)+CJatS!z|57 zkF%dCDIt4$I20$DV@vaIkYq?jsA@!Tu2o*g!jS6rA;Lf~cJH$5Rw5f zgeH1iI%!(DT{D>nZv_7G7L@pQ0TlRD<$5M^o&c6crjsV|*JKQ)F+xbW`#*Mf3Y|c3 zZ!_bw6k(NU)7m)Dt9LR`2l7x!dYh*tgu4u|J2bio7tVM~GpQK}0nK=0I0hXEiy2b& z5q5rsdn*T@xhcvlMxIKe=`)C6MY8bFtX3>lAX9_qZ6@cjgc=Ilk8w?8(2UY;|9GiZ z`6OLjnu(?!62Uzo1E%@?S~%FFiK*DU+<-S~w6B#WWhLZ$UEt$m(9_7;z3&X!={)3% zcOp99aU3V|@9oc9D|nB7zAIpSqdd0_gv@b{U42{EIo{;z|0p-@j`9_fr62mVQcQIeaUY{3Vi<{Myxg%UFGDqn4@m6HDL6S<`=i2bs4g?+gvKMQ!)noGny*Pif0C zU|=p&C58Dgo+@(Op7+NMe_}IhqU98kV2{%VJs!NbwxXa_o*)~$HlS|Z0Qp4smI9~k z7c&i$@!fJfKQDsP3CT{6dkxB7tK+lE?hcmUVlKAE>z|kMoAlUdJI_>b=(=%-wYO^) zNuNe*c&)i|xR?>s#;P!V_(^jfz{;VA>fX}R>ur8~J#!A0ip+wIm(K{USSGLIX|n=c z#saN7R^45-hFD(j4(k@RSncYIWL-bn`mvBEg8zv zh$e8;`BomPQ8Q?gE%qR#ra18!n(wyqTtpzvU&fopWu2)p?7q3c9Z7A1O^sfV@JeeZ zwf6-*`$WUz(59k**9mh+#Pm#xReb8Mcv1qN&nqq!#^=8hX6k#&Rpj4JktpDhVf=)4p{keipuuKS7Z1_ydEbOA0OzH10`txgE zb4XF7d2U7Oz(du~OD@&h@7PNh`armFo=V|2;CbA}5AYR`bJN(hkCF-n`hR1mf=2hn z=}Ya7>;@$)z0MC}sH+u!rd0Vv3v58GnAv?Dw>KE&8tGBTbi$~sI-$zI2$q;mePzpe z2FI7rG-qtF&f6kA9)E;m$UQw3 z&DN;J+grUPL*ko7kJQH~xU05FVW&ibC$yBjGW76ykNm5!nJy?106)UtWkwfwt3AN$ zWcXfUy4F)z!7e9aQjqaL8eaLt3{BnEl5ZJYE$h(7wEPKHm0W};A{wYgepq)sV6|O9 z{Kx<6a^dB{ zmbiprod{kV==(Kd6}CqxP5I4u)6?^M&T5CJ8@P!i;>iJV&+kjCTa<+@hu#R!>i;xNvNh=dt>Vi(zc$QJRk*5iEtVP;mb}VX>8B ze{9bn*qz}Mx=PnwXXh5LGMz_4%GM3GP>x8`M^Bhk&oDAf+GiDPw~{g{0)10+^a!2D zRPJm<*X<3+btQ<$wzeAd+V}r_Cib@;*PC#6rqonkLoZ>nmd4lwSu69Injn-xFW<#U zfxxG_8yh&?zGW<*c{qFp|H1nPpH~2CHAybkP+^o&VQe0Hd>t7#sXET?A&n?FoQ!A7 zujN!=Hu<;|<`h`867ne|tcMb@mmq7MqPbe*CyjGE02(m4E=^fhplqMF5O6eJe!0MEWC`*DDbFqOST1s< ze#=$EmcY`B2UIdyQsB?$IoRqwgW!7_(rRMz4q`HvjPmtE!6*IcKVcFkJv0%VTCG2y z1zq!zqOomf02%Vb?;NnimGy4JR1V0el3R@Z`k3<;C_FoaMAMRyM~uq%DaUQ2lh2j3 zbavvQJqa`!aXyv^i&go-$uNdUwmww+gG4U#VE(trWxhvM&~{waXBdwCRU|H*DHu9eJ{l1e zUsQnD-LsPKC*#|e!cq5CxY#>!J&1kVc`;``<|)Mqa)caOv%R!&-GSQN@@K#9-57}G znl9(U>wFkqbPZ48!)#1DBcrzo6+Xx#&eMio$BtI+#ILy~yY7Nuab@+zV1GhV8oS?y z&?r(?#5`=HV^>$pw*+pr=oAJaR#20VdE1t~5;CN^!ZQ~31XfE4(#e&c+4m+5$ z^&w+%F%y+wu5U!a@Q`5h^{adtR^=*Do-Y!X3Qi_SAerIUTZh_Q%1Q{(jxU>~<*hPi z+M{DyxEQ6`X|8{@$Y36O)6GCn9RvcTlbviGRQHs+Q-O^ky<$&lo}jEA9Ql2#*pLce zt>C7^{^OXKtSFF2__hkE4c`h8AmJt4CCw-km4z#j^zxbB4WG_Gj|G4w$cE=)Gxt7H zhQT_ZM49G4X~eR8yiH1`UFdY&T_!arI#&60_8d%DlR4i+U&)aFII=HZU19$q%=(Kd z--|-w29QQEwUOs}lKSvxSUqCx>YR6>3#};+9M6QZoKMJ%>c`b5VlF9nS)w6GhAGJ%zLJ0`f)9 z6*?e3IB69+RmlG3BL7Jy#C7X?GL&0Iul1*cT%h{&sB~N5MGc)T9zmHv*Jx{I5|@&U zQC^0ejL^=H$JTvRV!gk9vB=88k^8YK#ia*8ky<*0lkEgnEa>kE?iZ}*aDM*8JY(%O z?n~9(eI0DwDBOUvU=(@U+c}v8W>1cGMs&Lu!(R?gM5icQ=kwqVL|?i04)H24RNW^%GvKR5u0iAH zcV9c$K9GeCNNn>s6Ylcdu}It7MP!L~+@Yy9^;-0GHdAd~p z-$famE#nU2d-lfddlc z2`San+VO7Bh|^Wzpuf`MM&4EV>in0*B2p@LpDIrtDU>{JXtDvrRGshLTKr7V;*|0;-W646wWv9qR(BEvzyP zP=!{3RksTN7s8DFH&s#vpzlB6Dr?7-=CR0{AYzEu5N7DFjIjmnS|mQ%-tmR)4#qA{ zI^4RR
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\boldsymbol{\\beta} = (\\boldsymbol{X}^{T} \\boldsymbol{X})^{-1} \\boldsymbol{X}^{T} \\boldsymbol{y},\n", + "\\label{_auto1} \\tag{1}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "has linearly dependent column vectors, we will not be able to compute the inverse\n", + "of $\\boldsymbol{X}^T\\boldsymbol{X}$ and we cannot find the parameters (estimators) $\\beta_i$. \n", + "The estimators are only well-defined if $(\\boldsymbol{X}^{T}\\boldsymbol{X})^{-1}$ exits. \n", + "This is more likely to happen when the matrix $\\boldsymbol{X}$ is high-dimensional. In this case it is likely to encounter a situation where \n", + "the regression parameters $\\beta_i$ cannot be estimated.\n", + "\n", + "A cheap *ad hoc* approach is simply to add a small diagonal component to the matrix to invert, that is we change" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^{T} \\boldsymbol{X} \\rightarrow \\boldsymbol{X}^{T} \\boldsymbol{X}+\\lambda \\boldsymbol{I},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{I}$ is the identity matrix. When we discuss **Ridge** regression this is actually what we end up evaluating. The parameter $\\lambda$ is called a hyperparameter. More about this later. \n", + "\n", + "\n", + "\n", + "\n", + "## Basic math of the SVD\n", + "\n", + "\n", + "From standard linear algebra we know that a square matrix $\\boldsymbol{X}$ can be diagonalized if and only it is \n", + "a so-called [normal matrix](https://en.wikipedia.org/wiki/Normal_matrix), that is if $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times n}$\n", + "we have $\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{X}^T\\boldsymbol{X}$ or if $\\boldsymbol{X}\\in {\\mathbb{C}}^{n\\times n}$ we have $\\boldsymbol{X}\\boldsymbol{X}^{\\dagger}=\\boldsymbol{X}^{\\dagger}\\boldsymbol{X}$.\n", + "The matrix has then a set of eigenpairs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\lambda_1,\\boldsymbol{u}_1),\\dots, (\\lambda_n,\\boldsymbol{u}_n),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the eigenvalues are given by the diagonal matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\Sigma}=\\mathrm{Diag}(\\lambda_1, \\dots,\\lambda_n).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The matrix $\\boldsymbol{X}$ can be written in terms of an orthogonal/unitary transformation $\\boldsymbol{U}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X} = \\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $\\boldsymbol{U}\\boldsymbol{U}^T=\\boldsymbol{I}$ or $\\boldsymbol{U}\\boldsymbol{U}^{\\dagger}=\\boldsymbol{I}$.\n", + "\n", + "Not all square matrices are diagonalizable. A matrix like the one discussed above" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X} = \\begin{bmatrix} \n", + "1& -1 \\\\\n", + "1& -1\\\\\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "is not diagonalizable, it is a so-called [defective matrix](https://en.wikipedia.org/wiki/Defective_matrix). It is easy to see that the condition\n", + "$\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{X}^T\\boldsymbol{X}$ is not fulfilled. \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "However, and this is the strength of the SVD algorithm, any general\n", + "matrix $\\boldsymbol{X}$ can be decomposed in terms of a diagonal matrix and\n", + "two orthogonal/unitary matrices. The [Singular Value Decompostion\n", + "(SVD) theorem](https://en.wikipedia.org/wiki/Singular_value_decomposition)\n", + "states that a general $m\\times n$ matrix $\\boldsymbol{X}$ can be written in\n", + "terms of a diagonal matrix $\\boldsymbol{\\Sigma}$ of dimensionality $m\\times n$\n", + "and two orthognal matrices $\\boldsymbol{U}$ and $\\boldsymbol{V}$, where the first has\n", + "dimensionality $m \\times m$ and the last dimensionality $n\\times n$.\n", + "We have then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X} = \\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As an example, the above defective matrix can be decomposed as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X} = \\frac{1}{\\sqrt{2}}\\begin{bmatrix} 1& 1 \\\\ 1& -1\\\\ \\end{bmatrix} \\begin{bmatrix} 2& 0 \\\\ 0& 0\\\\ \\end{bmatrix} \\frac{1}{\\sqrt{2}}\\begin{bmatrix} 1& -1 \\\\ 1& 1\\\\ \\end{bmatrix}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with eigenvalues $\\sigma_1=2$ and $\\sigma_2=0$. \n", + "The SVD exits always! \n", + "\n", + "The SVD\n", + "decomposition (singular values) gives eigenvalues \n", + "$\\sigma_i\\geq\\sigma_{i+1}$ for all $i$ and for dimensions larger than $i=p$, the\n", + "eigenvalues (singular values) are zero.\n", + "\n", + "In the general case, where our design matrix $\\boldsymbol{X}$ has dimension\n", + "$n\\times p$, the matrix is thus decomposed into an $n\\times n$\n", + "orthogonal matrix $\\boldsymbol{U}$, a $p\\times p$ orthogonal matrix $\\boldsymbol{V}$\n", + "and a diagonal matrix $\\boldsymbol{\\Sigma}$ with $r=\\mathrm{min}(n,p)$\n", + "singular values $\\sigma_i\\geq 0$ on the main diagonal and zeros filling\n", + "the rest of the matrix. There are at most $p$ singular values\n", + "assuming that $n > p$. In our regression examples for the nuclear\n", + "masses and the equation of state this is indeed the case, while for\n", + "the Ising model we have $p > n$. These are often cases that lead to\n", + "near singular or singular matrices.\n", + "\n", + "The columns of $\\boldsymbol{U}$ are called the left singular vectors while the columns of $\\boldsymbol{V}$ are the right singular vectors.\n", + "\n", + "\n", + "If we assume that $n > p$, then our matrix $\\boldsymbol{U}$ has dimension $n\n", + "\\times n$. The last $n-p$ columns of $\\boldsymbol{U}$ become however\n", + "irrelevant in our calculations since they are multiplied with the\n", + "zeros in $\\boldsymbol{\\Sigma}$.\n", + "\n", + "The economy-size decomposition removes extra rows or columns of zeros\n", + "from the diagonal matrix of singular values, $\\boldsymbol{\\Sigma}$, along with the columns\n", + "in either $\\boldsymbol{U}$ or $\\boldsymbol{V}$ that multiply those zeros in the expression. \n", + "Removing these zeros and columns can improve execution time\n", + "and reduce storage requirements without compromising the accuracy of\n", + "the decomposition.\n", + "\n", + "If $n > p$, we keep only the first $p$ columns of $\\boldsymbol{U}$ and $\\boldsymbol{\\Sigma}$ has dimension $p\\times p$. \n", + "If $p > n$, then only the first $n$ columns of $\\boldsymbol{V}$ are computed and $\\boldsymbol{\\Sigma}$ has dimension $n\\times n$.\n", + "The $n=p$ case is obvious, we retain the full SVD. \n", + "In general the economy-size SVD leads to less FLOPS and still conserving the desired accuracy.\n", + "\n", + "## Codes for the SVD" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1. -1.]\n", + " [ 1. -1.]]\n", + "test U\n", + "[[0. 0.]\n", + " [0. 0.]]\n", + "test VT\n", + "[[0. 0.]\n", + " [0. 0.]]\n", + "[[-0.70710678 -0.70710678]\n", + " [-0.70710678 0.70710678]]\n", + "[2.00000000e+00 3.35470445e-17]\n", + "[[-0.70710678 0.70710678]\n", + " [ 0.70710678 0.70710678]]\n", + "[[-3.33066907e-16 4.44089210e-16]\n", + " [ 0.00000000e+00 2.22044605e-16]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "# SVD inversion\n", + "def SVD(A):\n", + " ''' Takes as input a numpy matrix A and returns inv(A) based on singular value decomposition (SVD).\n", + " SVD is numerically more stable than the inversion algorithms provided by\n", + " numpy and scipy.linalg at the cost of being slower.\n", + " '''\n", + " U, S, VT = np.linalg.svd(A,full_matrices=True)\n", + " print('test U')\n", + " print( (np.transpose(U) @ U - U @np.transpose(U)))\n", + " print('test VT')\n", + " print( (np.transpose(VT) @ VT - VT @np.transpose(VT)))\n", + " print(U)\n", + " print(S)\n", + " print(VT)\n", + "\n", + " D = np.zeros((len(U),len(VT)))\n", + " for i in range(0,len(VT)):\n", + " D[i,i]=S[i]\n", + " return U @ D @ VT\n", + "\n", + "\n", + "X = np.array([ [1.0,-1.0], [1.0,-1.0]])\n", + "#X = np.array([[1, 2], [3, 4], [5, 6]])\n", + "\n", + "print(X)\n", + "C = SVD(X)\n", + "# Print the difference between the original matrix and the SVD one\n", + "print(C-X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The matrix $\\boldsymbol{X}$ has columns that are linearly dependent. The first\n", + "column is the row-wise sum of the other two columns. The rank of a\n", + "matrix (the column rank) is the dimension of space spanned by the\n", + "column vectors. The rank of the matrix is the number of linearly\n", + "independent columns, in this case just $2$. We see this from the\n", + "singular values when running the above code. Running the standard\n", + "inversion algorithm for matrix inversion with $\\boldsymbol{X}^T\\boldsymbol{X}$ results\n", + "in the program terminating due to a singular matrix.\n", + "\n", + "\n", + "\n", + "The $U$, $S$, and $V$ matrices returned from the **svd()** function\n", + "cannot be multiplied directly.\n", + "\n", + "As you can see from the code, the $S$ vector must be converted into a\n", + "diagonal matrix. This may cause a problem as the size of the matrices\n", + "do not fit the rules of matrix multiplication, where the number of\n", + "columns in a matrix must match the number of rows in the subsequent\n", + "matrix.\n", + "\n", + "If you wish to include the zero singular values, you will need to\n", + "resize the matrices and set up a diagonal matrix as done in the above\n", + "example\n", + "\n", + "\n", + "## Code for SVD and Inversion of Matrices\n", + "\n", + "How do we use the SVD to invert a matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ which is singular or near singular?\n", + "The simple answer is to use the linear algebra function for the pseudoinverse, that is" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "#Ainv = np.linlag.pinv(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us first look at a matrix which does not causes problems and write our own function where we just use the SVD." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1 2 3]\n", + " [2 4 5]\n", + " [3 5 6]]\n", + "test U\n", + "[[ 2.22044605e-16 -1.11362930e-15 -8.52945798e-16]\n", + " [-1.11362930e-15 0.00000000e+00 -1.37835429e-16]\n", + " [-8.52945798e-16 -1.37835429e-16 -1.11022302e-16]]\n", + "test VT\n", + "[[ 1.11022302e-16 -1.84228957e-16 2.68545647e-16]\n", + " [-1.84228957e-16 0.00000000e+00 -6.33166055e-17]\n", + " [ 2.68545647e-16 -6.33166055e-17 -1.11022302e-16]]\n", + "[[0. 0. 0.]\n", + " [0. 0. 0.]\n", + " [0. 0. 0.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "# SVD inversion\n", + "def SVDinv(A):\n", + " ''' Takes as input a numpy matrix A and returns inv(A) based on singular value decomposition (SVD).\n", + " SVD is numerically more stable than the inversion algorithms provided by\n", + " numpy and scipy.linalg at the cost of being slower.\n", + " '''\n", + " U, s, VT = np.linalg.svd(A)\n", + " print('test U')\n", + " print( (np.transpose(U) @ U - U @np.transpose(U)))\n", + " print('test VT')\n", + " print( (np.transpose(VT) @ VT - VT @np.transpose(VT)))\n", + "\n", + "\n", + " D = np.zeros((len(U),len(VT)))\n", + " D = np.diag(s)\n", + " UT = np.transpose(U); V = np.transpose(VT); invD = np.linalg.inv(D)\n", + " return np.matmul(V,np.matmul(invD,UT))\n", + "\n", + "\n", + "#X = np.array([ [1.0, -1.0, 2.0], [1.0, 0.0, 1.0], [1.0, 2.0, -1.0], [1.0, 1.0, 0.0] ])\n", + "# Non-singular square matrix\n", + "X = np.array( [ [1,2,3],[2,4,5],[3,5,6]])\n", + "print(X)\n", + "A = np.transpose(X) @ X\n", + "# Brute force inversion\n", + "B = np.linalg.pinv(A) # here we could use np.linalg.inv(A), try it!\n", + "C = SVDinv(A)\n", + "print(np.abs(B-C))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Although our matrix to invert $\\boldsymbol{X}^T\\boldsymbol{X}$ is a square matrix, our matrix may be singular. \n", + "\n", + "The pseudoinverse is the generalization of the matrix inverse for square matrices to\n", + "rectangular matrices where the number of rows and columns are not equal.\n", + "\n", + "It is also called the the Moore-Penrose Inverse after two independent discoverers of the method or the Generalized Inverse.\n", + "It is used for the calculation of the inverse for singular or near singular matrices and for rectangular matrices.\n", + "\n", + "Using the SVD we can obtain the pseudoinverse of a matrix $\\boldsymbol{A}$ (labeled here as $\\boldsymbol{A}_{\\mathrm{PI}}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}_{\\mathrm{PI}}= \\boldsymbol{V}\\boldsymbol{D}_{\\mathrm{PI}}\\boldsymbol{U}^T,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{D}_{\\mathrm{PI}}$ can be calculated by creating a diagonal matrix from $\\boldsymbol{Sigma}$ where we only keep the singular values (the non-zero values). The following code computes the pseudoinvers of the matrix based on the SVD." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.3 0.4]\n", + " [0.5 0.6]\n", + " [0.7 0.8]\n", + " [0.9 1. ]]\n", + "[[-13. -6. 1. 8. ]\n", + " [ 11.5 5.5 -0.5 -6.5]]\n", + "[[0. 0. 0. 0.]\n", + " [0. 0. 0. 0.]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "# SVD inversion\n", + "def SVDinv(A):\n", + " U, s, VT = np.linalg.svd(A)\n", + " # reciprocals of singular values of s\n", + " d = 1.0 / s\n", + " # create m x n D matrix\n", + " D = np.zeros(A.shape)\n", + " # populate D with n x n diagonal matrix\n", + " D[:A.shape[1], :A.shape[1]] = np.diag(d)\n", + " UT = np.transpose(U)\n", + " V = np.transpose(VT)\n", + " return np.matmul(V,np.matmul(D.T,UT))\n", + "\n", + "\n", + "A = np.array([ [0.3, 0.4], [0.5, 0.6], [0.7, 0.8],[0.9, 1.0]])\n", + "print(A)\n", + "# Brute force inversion of super-collinear matrix\n", + "B = np.linalg.pinv(A)\n", + "print(B)\n", + "# Compare our own algorithm with pinv\n", + "C = SVDinv(A)\n", + "print(np.abs(C-B))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you can see from these examples, our own decomposition based on the SVD agrees the pseudoinverse algorithm provided by **Numpy**.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Mathematics of the SVD and implications\n", + "\n", + "Let us take a closer look at the mathematics of the SVD and the various implications for machine learning studies.\n", + "\n", + "Our starting point is our design matrix $\\boldsymbol{X}$ of dimension $n\\times p$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{0,0} & x_{0,1} & x_{0,2}& \\dots & \\dots x_{0,p-1}\\\\\n", + "x_{1,0} & x_{1,1} & x_{1,2}& \\dots & \\dots x_{1,p-1}\\\\\n", + "x_{2,0} & x_{2,1} & x_{2,2}& \\dots & \\dots x_{2,p-1}\\\\\n", + "\\dots & \\dots & \\dots & \\dots \\dots & \\dots \\\\\n", + "x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \\dots & \\dots x_{n-2,p-1}\\\\\n", + "x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \\dots & \\dots x_{n-1,p-1}\\\\\n", + "\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can SVD decompose our matrix as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{U}$ is an orthogonal matrix of dimension $n\\times n$, meaning that $\\boldsymbol{U}\\boldsymbol{U}^T=\\boldsymbol{U}^T\\boldsymbol{U}=\\boldsymbol{I}_n$. Here $\\boldsymbol{I}_n$ is the unit matrix of dimension $n \\times n$.\n", + "\n", + "Similarly, $\\boldsymbol{V}$ is an orthogonal matrix of dimension $p\\times p$, meaning that $\\boldsymbol{V}\\boldsymbol{V}^T=\\boldsymbol{V}^T\\boldsymbol{V}=\\boldsymbol{I}_p$. Here $\\boldsymbol{I}_n$ is the unit matrix of dimension $p \\times p$.\n", + "\n", + "Finally $\\boldsymbol{\\Sigma}$ contains the singular values $\\sigma_i$. This matrix has dimension $n\\times p$ and the singular values $\\sigma_i$ are all positive. The non-zero values are ordered in descending order, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma_0 > \\sigma_1 > \\sigma_2 > \\dots > \\sigma_{p-1} > 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All values beyond $p-1$ are all zero.\n", + "\n", + "\n", + "As an example, consider the following $3\\times 2$ example for the matrix $\\boldsymbol{\\Sigma}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\Sigma}=\n", + "\\begin{bmatrix}\n", + "2& 0 \\\\\n", + "0 & 1 \\\\\n", + "0 & 0 \\\\\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The singular values are $\\sigma_0=2$ and $\\sigma_1=1$. It is common to rewrite the matrix $\\boldsymbol{\\Sigma}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\Sigma}=\n", + "\\begin{bmatrix}\n", + "\\boldsymbol{\\tilde{\\Sigma}}\\\\\n", + "\\boldsymbol{0}\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\tilde{\\Sigma}}=\n", + "\\begin{bmatrix}\n", + "2& 0 \\\\\n", + "0 & 1 \\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "contains only the singular values. Note also (and we will use this below) that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}=\n", + "\\begin{bmatrix}\n", + "4& 0 \\\\\n", + "0 & 1 \\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is a $2\\times 2 $ matrix while" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T=\n", + "\\begin{bmatrix}\n", + "4& 0 & 0\\\\\n", + "0 & 1 & 0\\\\\n", + "0 & 0 & 0\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "is a $3\\times 3 $ matrix. The last row and column of this last matrix\n", + "contain only zeros. This will have important consequences for our SVD\n", + "decomposition of the design matrix.\n", + "\n", + "\n", + "\n", + "The matrix that may cause problems for us is $\\boldsymbol{X}^T\\boldsymbol{X}$. Using the SVD we can rewrite this matrix as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and using the orthogonality of the matrix $\\boldsymbol{U}$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{V}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We define $\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}=\\tilde{\\boldsymbol{\\Sigma}}^2$ which is a diagonal matrix containing only the singular values squared. It has dimensionality $p \\times p$.\n", + "\n", + "This means, using the orthogonality of $\\boldsymbol{V}$, that we get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=\\tilde{\\boldsymbol{\\Sigma}}^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now insert the result for the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ into our equation for ordinary least squares where" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{y}_{\\mathrm{OLS}}=\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and using our SVD decomposition of $\\boldsymbol{X}$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{y}_{\\mathrm{OLS}}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\\tilde{\\boldsymbol{\\Sigma}}^{-2}\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which gives us, using the orthogonality of the matrices $\\boldsymbol{U}$ and $\\boldsymbol{V}$," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{y}_{\\mathrm{OLS}}=\\boldsymbol{U}\\boldsymbol{U}^T\\boldsymbol{y}=\\sum_{i=0}^{p-1}\\boldsymbol{u}_i\\boldsymbol{u}^T_j\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note here that when we perform the multiplication of the various matrices, the orthogonal vectors of the matrix $\\boldsymbol{U}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{U}=[\\boldsymbol{u}_0,\\boldsymbol{u}_1,\\dots,\\boldsymbol{u}_{n-1}],\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "that belong to $i>p-1$, result in only zeros when we perform the multiplications. This means that the sum above has non-zero elements only up to $i=p-1$. This corresponds also to the number of singular values (these are all non-zero).\n", + "\n", + "It means that the ordinary least square model (with the optimal parameters) $\\boldsymbol{\\tilde{y}}$, corresponds to an orthogonal transformation of the output (or target) vector $\\boldsymbol{y}$ by the vectors of the matrix $\\boldsymbol{U}$.\n", + "\n", + "\n", + "## Further properties (important for our analyses later)\n", + "\n", + "Let us study again $\\boldsymbol{X}^T\\boldsymbol{X}$ in terms of our SVD," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{V}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we now multiply from the right with $\\boldsymbol{V}$ (using the orthogonality of $\\boldsymbol{V}$) we get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{V}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This means the vectors $\\boldsymbol{v}_i$ of the orthogonal matrix $\\boldsymbol{V}$ are the eigenvectors of the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$\n", + "with eigenvalues given by the singular values squared, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{v}_i=\\boldsymbol{v}_i\\sigma_i^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, if we use the SVD decomposition for the matrix $\\boldsymbol{X}\\boldsymbol{X}^T$, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we now multiply from the right with $\\boldsymbol{U}$ (using the orthogonality of $\\boldsymbol{U}$) we get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\boldsymbol{X}\\boldsymbol{X}^T\\right)\\boldsymbol{U}=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This means the vectors $\\boldsymbol{u}_i$ of the orthogonal matrix $\\boldsymbol{U}$ are the eigenvectors of the matrix $\\boldsymbol{X}\\boldsymbol{X}^T$\n", + "with eigenvalues given by the singular values squared, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\boldsymbol{X}\\boldsymbol{X}^T\\right)\\boldsymbol{u}_i=\\boldsymbol{u}_i\\sigma_i^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Important note**: we have defined our design matrix $\\boldsymbol{X}$ to be an\n", + "$n\\times p$ matrix. In most supervised learning cases we have that $n\n", + "\\ge p$, and quite often we have $n >> p$. For linear algebra based methods like ordinary least squares or Ridge regression, this leads to a matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ which is small and thereby easier to handle from a computational point of view (in terms of number of floating point operations).\n", + "\n", + "In our lectures, the number of columns will\n", + "always refer to the number of features in our data set, while the\n", + "number of rows represents the number of data inputs. Note that in\n", + "other texts you may find the opposite notation. This has consequences\n", + "for the definition of for example the covariance matrix and its relation to the SVD.\n", + "\n", + "\n", + "## Meet the Covariance Matrix\n", + "\n", + "\n", + "Before we move on to a discussion of Ridge and Lasso regression, we want to show an important example of the above.\n", + "\n", + "We have already noted that the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ in ordinary\n", + "least squares is proportional to the second derivative of the cost\n", + "function, that is we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial^2 C(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}^T\\partial \\boldsymbol{\\beta}} =\\frac{2}{n}\\boldsymbol{X}^T\\boldsymbol{X}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This quantity defines was what is called the Hessian matrix (the second derivative of a function we want to optimize).\n", + "\n", + "The Hessian matrix plays an important role and is defined in this course as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{H}=\\boldsymbol{X}^T\\boldsymbol{X}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Hessian matrix for ordinary least squares is also proportional to\n", + "the covariance matrix. This means also that we can use the SVD to find\n", + "the eigenvalues of the covariance matrix and the Hessian matrix in\n", + "terms of the singular values. Let us develop these arguments, as they will play an important role in our machine learning studies.\n", + "\n", + "\n", + "\n", + "Before we discuss the link between for example Ridge regression and the singular value decomposition, we need to remind ourselves about\n", + "the definition of the covariance and the correlation function. These are quantities that play a central role in machine learning methods.\n", + "\n", + "Suppose we have defined two vectors\n", + "$\\hat{x}$ and $\\hat{y}$ with $n$ elements each. The covariance matrix $\\boldsymbol{C}$ is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " \\mathrm{cov}[\\boldsymbol{y},\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{y},\\boldsymbol{y}] \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where for example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] =\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})(y_i- \\overline{y}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With this definition and recalling that the variance is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{var}[\\boldsymbol{x}]=\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we can rewrite the covariance matrix as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} \\mathrm{var}[\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] & \\mathrm{var}[\\boldsymbol{y}] \\\\\n", + " \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Note:** we have used $1/n$ in the above definitions of the *sample* variance and covariance. We assume then that we can calculate the exact mean value. \n", + "What you will find in essentially all statistics texts are equations\n", + "with a factor $1/(n-1)$. This is called [Bessel's correction](https://mathworld.wolfram.com/BesselsCorrection.html). This\n", + "method corrects the bias in the estimation of the population variance\n", + "and covariance. It also partially corrects the bias in the estimation\n", + "of the population standard deviation. If you use a library like\n", + "**Scikit-Learn** or **nunmpy's** function calculate the covariance, this\n", + "quantity will be computed with a factor $1/(n-1)$.\n", + "\n", + "\n", + "The covariance takes values between zero and infinity and may thus\n", + "lead to problems with loss of numerical precision for particularly\n", + "large values. It is common to scale the covariance matrix by\n", + "introducing instead the correlation matrix defined via the so-called\n", + "correlation function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}]=\\frac{\\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}]}{\\sqrt{\\mathrm{var}[\\boldsymbol{x}] \\mathrm{var}[\\boldsymbol{y}]}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The correlation function is then given by values $\\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}]\n", + "\\in [-1,1]$. This avoids eventual problems with too large values. We\n", + "can then define the correlation matrix for the two vectors $\\boldsymbol{x}$\n", + "and $\\boldsymbol{y}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{K}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} 1 & \\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " \\mathrm{corr}[\\boldsymbol{y},\\boldsymbol{x}] & 1 \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above example this is the function we constructed using **pandas**.\n", + "\n", + "\n", + "\n", + "In our derivation of the various regression algorithms like **Ordinary Least Squares** or **Ridge regression**\n", + "we defined the design/feature matrix $\\boldsymbol{X}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{0,0} & x_{0,1} & x_{0,2}& \\dots & \\dots x_{0,p-1}\\\\\n", + "x_{1,0} & x_{1,1} & x_{1,2}& \\dots & \\dots x_{1,p-1}\\\\\n", + "x_{2,0} & x_{2,1} & x_{2,2}& \\dots & \\dots x_{2,p-1}\\\\\n", + "\\dots & \\dots & \\dots & \\dots \\dots & \\dots \\\\\n", + "x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \\dots & \\dots x_{n-2,p-1}\\\\\n", + "x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \\dots & \\dots x_{n-1,p-1}\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$, with the predictors/features $p$ refering to the column numbers and the\n", + "entries $n$ being the row elements.\n", + "We can rewrite the design/feature matrix in terms of its column vectors as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix} \\boldsymbol{x}_0 & \\boldsymbol{x}_1 & \\boldsymbol{x}_2 & \\dots & \\dots & \\boldsymbol{x}_{p-1}\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with a given vector" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_i^T = \\begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \\dots & \\dots x_{n-1,i}\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With these definitions, we can now rewrite our $2\\times 2$\n", + "correlation/covariance matrix in terms of a moe general design/feature\n", + "matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$. This leads to a $p\\times p$\n", + "covariance matrix for the vectors $\\boldsymbol{x}_i$ with $i=0,1,\\dots,p-1$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}] = \\begin{bmatrix}\n", + "\\mathrm{var}[\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_0] & \\mathrm{var}[\\boldsymbol{x}_1] & \\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{cov}[\\boldsymbol{x}_2,\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_2,\\boldsymbol{x}_1] & \\mathrm{var}[\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{cov}[\\boldsymbol{x}_2,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\mathrm{cov}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_1] & \\mathrm{cov}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_{2}] & \\dots & \\dots & \\mathrm{var}[\\boldsymbol{x}_{p-1}]\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the correlation matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{K}[\\boldsymbol{x}] = \\begin{bmatrix}\n", + "1 & \\mathrm{corr}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] & \\mathrm{corr}[\\boldsymbol{x}_0,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{corr}[\\boldsymbol{x}_0,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{corr}[\\boldsymbol{x}_1,\\boldsymbol{x}_0] & 1 & \\mathrm{corr}[\\boldsymbol{x}_1,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{corr}[\\boldsymbol{x}_1,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{corr}[\\boldsymbol{x}_2,\\boldsymbol{x}_0] & \\mathrm{corr}[\\boldsymbol{x}_2,\\boldsymbol{x}_1] & 1 & \\dots & \\dots & \\mathrm{corr}[\\boldsymbol{x}_2,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\mathrm{corr}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_0] & \\mathrm{corr}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_1] & \\mathrm{corr}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_{2}] & \\dots & \\dots & 1\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Numpy function **np.cov** calculates the covariance elements using\n", + "the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have\n", + "the exact mean values. The following simple function uses the\n", + "**np.vstack** function which takes each vector of dimension $1\\times n$\n", + "and produces a $2\\times n$ matrix $\\boldsymbol{W}$\n", + "\n", + "Note that this assumes you have the features as the rows, and the inputs as columns, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{W} = \\begin{bmatrix} x_0 & x_1 & x_2 & \\dots & x_{n-2} & x_{n-1} \\\\\n", + " y_0 & y_1 & y_2 & \\dots & y_{n-2} & y_{n-1} \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which in turn is converted into into the $2\\times 2$ covariance matrix\n", + "$\\boldsymbol{C}$ via the Numpy function **np.cov()**. We note that we can also calculate\n", + "the mean value of each set of samples $\\boldsymbol{x}$ etc using the Numpy\n", + "function **np.mean(x)**. We can also extract the eigenvalues of the\n", + "covariance matrix through the **np.linalg.eig()** function." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.08563423085679761\n", + "4.197149311863764\n", + "[[ 1.17491353 3.59695925]\n", + " [ 3.59695925 11.86528723]]\n" + ] + } + ], + "source": [ + "# Importing various packages\n", + "import numpy as np\n", + "n = 100\n", + "x = np.random.normal(size=n)\n", + "print(np.mean(x))\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "print(np.mean(y))\n", + "W = np.vstack((x, y))\n", + "C = np.cov(W)\n", + "print(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The previous example can be converted into the correlation matrix by\n", + "simply scaling the matrix elements with the variances. We should also\n", + "subtract the mean values for each column. This leads to the following\n", + "code which sets up the correlations matrix for the previous example in\n", + "a more brute force way. Here we scale the mean values for each column of the design matrix, calculate the relevant mean values and variances and then finally set up the $2\\times 2$ correlation matrix (since we have only two vectors)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.09185632691849484\n", + "2.068250749074285\n", + "[[1. 0.73820851]\n", + " [0.73820851 1. ]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n = 100\n", + "# define two vectors \n", + "x = np.random.random(size=n)\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "#scaling the x and y vectors \n", + "x = x - np.mean(x)\n", + "y = y - np.mean(y)\n", + "variance_x = np.sum(x@x)/n\n", + "variance_y = np.sum(y@y)/n\n", + "print(variance_x)\n", + "print(variance_y)\n", + "cov_xy = np.sum(x@y)/n\n", + "cov_xx = np.sum(x@x)/n\n", + "cov_yy = np.sum(y@y)/n\n", + "C = np.zeros((2,2))\n", + "C[0,0]= cov_xx/variance_x\n", + "C[1,1]= cov_yy/variance_y\n", + "C[0,1]= cov_xy/np.sqrt(variance_y*variance_x)\n", + "C[1,0]= C[0,1]\n", + "print(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the matrix elements along the diagonal are one as they\n", + "should be and that the matrix is symmetric. Furthermore, diagonalizing\n", + "this matrix we easily see that it is a positive definite matrix.\n", + "\n", + "The above procedure with **numpy** can be made more compact if we use **pandas**.\n", + "\n", + "\n", + "\n", + "We whow here how we can set up the correlation matrix using **pandas**, as done in this simple code" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-3.27372247 -7.88625172]\n", + " [-0.65681778 -2.2334439 ]\n", + " [ 0.794845 3.03427114]\n", + " [ 0.24099881 -0.86187532]\n", + " [ 0.36083321 2.04007752]\n", + " [-0.03367847 -0.50109971]\n", + " [ 1.04973604 1.41844044]\n", + " [ 1.17048856 3.67990788]\n", + " [ 0.69166081 2.60194447]\n", + " [-0.34434372 -1.2919708 ]]\n", + " 0 1\n", + "0 -3.273722 -7.886252\n", + "1 -0.656818 -2.233444\n", + "2 0.794845 3.034271\n", + "3 0.240999 -0.861875\n", + "4 0.360833 2.040078\n", + "5 -0.033678 -0.501100\n", + "6 1.049736 1.418440\n", + "7 1.170489 3.679908\n", + "8 0.691661 2.601944\n", + "9 -0.344344 -1.291971\n", + " 0 1\n", + "0 1.000000 0.960923\n", + "1 0.960923 1.000000\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "n = 10\n", + "x = np.random.normal(size=n)\n", + "x = x - np.mean(x)\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "y = y - np.mean(y)\n", + "# Note that we transpose the matrix in order to stay with our ordering n x p\n", + "X = (np.vstack((x, y))).T\n", + "print(X)\n", + "Xpd = pd.DataFrame(X)\n", + "print(Xpd)\n", + "correlation_matrix = Xpd.corr()\n", + "print(correlation_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We expand this model to the Franke function discussed earlier." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0 1 2 3 4 5 6 7 \\\n", + "0 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "1 0.0 0.071971 0.077197 0.073418 0.073729 0.073445 0.066081 0.065380 \n", + "2 0.0 0.077197 0.085002 0.081363 0.082814 0.083409 0.074570 0.074490 \n", + "3 0.0 0.073418 0.081363 0.079628 0.081312 0.082158 0.074321 0.074384 \n", + "4 0.0 0.073729 0.082814 0.081312 0.083758 0.085270 0.076758 0.077352 \n", + "5 0.0 0.073445 0.083409 0.082158 0.085270 0.087384 0.078342 0.079427 \n", + "6 0.0 0.066081 0.074570 0.074321 0.076758 0.078342 0.071097 0.071769 \n", + "7 0.0 0.065380 0.074490 0.074384 0.077352 0.079427 0.071769 0.072856 \n", + "8 0.0 0.064668 0.074300 0.074324 0.077767 0.080288 0.072266 0.073732 \n", + "9 0.0 0.064026 0.074115 0.074251 0.078125 0.081055 0.072695 0.074511 \n", + "10 0.0 0.057964 0.066224 0.066849 0.069641 0.071633 0.065148 0.066216 \n", + "11 0.0 0.057235 0.065894 0.066582 0.069762 0.072121 0.065330 0.066717 \n", + "12 0.0 0.056620 0.065638 0.066378 0.069911 0.072609 0.065528 0.067209 \n", + "13 0.0 0.056131 0.065481 0.066262 0.070122 0.073134 0.065774 0.067728 \n", + "14 0.0 0.055773 0.065437 0.066249 0.070414 0.073721 0.066086 0.068296 \n", + "\n", + " 8 9 10 11 12 13 14 \n", + "0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "1 0.064668 0.064026 0.057964 0.057235 0.056620 0.056131 0.055773 \n", + "2 0.074300 0.074115 0.066224 0.065894 0.065638 0.065481 0.065437 \n", + "3 0.074324 0.074251 0.066849 0.066582 0.066378 0.066262 0.066249 \n", + "4 0.077767 0.078125 0.069641 0.069762 0.069911 0.070122 0.070414 \n", + "5 0.080288 0.081055 0.071633 0.072121 0.072609 0.073134 0.073721 \n", + "6 0.072266 0.072695 0.065148 0.065330 0.065528 0.065774 0.066086 \n", + "7 0.073732 0.074511 0.066216 0.066717 0.067209 0.067728 0.068296 \n", + "8 0.074960 0.076066 0.067087 0.067884 0.068651 0.069428 0.070237 \n", + "9 0.076066 0.077477 0.067860 0.068933 0.069959 0.070978 0.072016 \n", + "10 0.067087 0.067860 0.060594 0.061100 0.061591 0.062099 0.062644 \n", + "11 0.067884 0.068933 0.061100 0.061860 0.062586 0.063314 0.064066 \n", + "12 0.068651 0.069959 0.061591 0.062586 0.063533 0.064469 0.065416 \n", + "13 0.069428 0.070978 0.062099 0.063314 0.064469 0.065600 0.066733 \n", + "14 0.070237 0.072016 0.062644 0.064066 0.065416 0.066733 0.068044 \n" + ] + } + ], + "source": [ + "# Common imports\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "\n", + "def FrankeFunction(x,y):\n", + "\tterm1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))\n", + "\tterm2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))\n", + "\tterm3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))\n", + "\tterm4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)\n", + "\treturn term1 + term2 + term3 + term4\n", + "\n", + "\n", + "def create_X(x, y, n ):\n", + "\tif len(x.shape) > 1:\n", + "\t\tx = np.ravel(x)\n", + "\t\ty = np.ravel(y)\n", + "\n", + "\tN = len(x)\n", + "\tl = int((n+1)*(n+2)/2)\t\t# Number of elements in beta\n", + "\tX = np.ones((N,l))\n", + "\n", + "\tfor i in range(1,n+1):\n", + "\t\tq = int((i)*(i+1)/2)\n", + "\t\tfor k in range(i+1):\n", + "\t\t\tX[:,q+k] = (x**(i-k))*(y**k)\n", + "\n", + "\treturn X\n", + "\n", + "\n", + "# Making meshgrid of datapoints and compute Franke's function\n", + "n = 4\n", + "N = 100\n", + "x = np.sort(np.random.uniform(0, 1, N))\n", + "y = np.sort(np.random.uniform(0, 1, N))\n", + "z = FrankeFunction(x, y)\n", + "X = create_X(x, y, n=n) \n", + "\n", + "Xpd = pd.DataFrame(X)\n", + "# subtract the mean values and set up the covariance matrix\n", + "Xpd = Xpd - Xpd.mean()\n", + "covariance_matrix = Xpd.cov()\n", + "print(covariance_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We note here that the covariance is zero for the first rows and\n", + "columns since all matrix elements in the design matrix were set to one\n", + "(we are fitting the function in terms of a polynomial of degree $n$).\n", + "\n", + "This means that the variance for these elements will be zero and will\n", + "cause problems when we set up the correlation matrix. We can simply\n", + "drop these elements and construct a correlation\n", + "matrix without these elements. \n", + "\n", + "\n", + "\n", + "We can rewrite the covariance matrix in a more compact form in terms of the design/feature matrix $\\boldsymbol{X}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}] = \\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X}= \\mathbb{E}[\\boldsymbol{X}^T\\boldsymbol{X}].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see this let us simply look at a design matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{2\\times 2}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{00} & x_{01}\\\\\n", + "x_{10} & x_{11}\\\\\n", + "\\end{bmatrix}=\\begin{bmatrix}\n", + "\\boldsymbol{x}_{0} & \\boldsymbol{x}_{1}\\\\\n", + "\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we then compute the expectation value (note the $1/n$ factor instead of $1/(n-1)$)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}[\\boldsymbol{X}^T\\boldsymbol{X}] = \\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X}=\\frac{1}{n}\\begin{bmatrix}\n", + "x_{00}^2+x_{10}^2 & x_{00}x_{01}+x_{10}x_{11}\\\\\n", + "x_{01}x_{00}+x_{11}x_{10} & x_{01}^2+x_{11}^2\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is just" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] = \\boldsymbol{C}[\\boldsymbol{x}]=\\begin{bmatrix} \\mathrm{var}[\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] \\\\\n", + " \\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_0] & \\mathrm{var}[\\boldsymbol{x}_1] \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we wrote $$\\boldsymbol{C}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] = \\boldsymbol{C}[\\boldsymbol{x}]$$ to indicate that this is the covariance of the vectors $\\boldsymbol{x}$ of the design/feature matrix $\\boldsymbol{X}$.\n", + "\n", + "It is easy to generalize this to a matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$.\n", + "\n", + "\n", + "\n", + "## Linking with the SVD\n", + "\n", + "We saw earlier that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T=\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{V}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the matrices here have dimension $p\\times p$, with $p$ corresponding to the singular values, we defined earlier the matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma} = \\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0}\\\\ \\end{bmatrix}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} \\\\ \\boldsymbol{0}\\\\ \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the tilde-matrix $\\tilde{\\boldsymbol{\\Sigma}}$ is a matrix of dimension $p\\times p$ containing only the singular values $\\sigma_i$, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{\\boldsymbol{\\Sigma}}=\\begin{bmatrix} \\sigma_0 & 0 & 0 & \\dots & 0 & 0 \\\\\n", + " 0 & \\sigma_1 & 0 & \\dots & 0 & 0 \\\\\n", + "\t\t\t\t 0 & 0 & \\sigma_2 & \\dots & 0 & 0 \\\\\n", + "\t\t\t\t 0 & 0 & 0 & \\dots & \\sigma_{p-2} & 0 \\\\\n", + "\t\t\t\t 0 & 0 & 0 & \\dots & 0 & \\sigma_{p-1} \\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "meaning we can write" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{V}\\tilde{\\boldsymbol{\\Sigma}}^2\\boldsymbol{V}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Multiplying from the right with $\\boldsymbol{V}$ (using the orthogonality of $\\boldsymbol{V}$) we get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{V}=\\boldsymbol{V}\\tilde{\\boldsymbol{\\Sigma}}^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This means the vectors $\\boldsymbol{v}_i$ of the orthogonal matrix $\\boldsymbol{V}$\n", + "are the eigenvectors of the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ with eigenvalues\n", + "given by the singular values squared, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)\\boldsymbol{v}_i=\\boldsymbol{v}_i\\sigma_i^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In other words, each non-zero singular value of $\\boldsymbol{X}$ is a positive\n", + "square root of an eigenvalue of $\\boldsymbol{X}^T\\boldsymbol{X}$. It means also that\n", + "the columns of $\\boldsymbol{V}$ are the eigenvectors of\n", + "$\\boldsymbol{X}^T\\boldsymbol{X}$. Since we have ordered the singular values of\n", + "$\\boldsymbol{X}$ in a descending order, it means that the column vectors\n", + "$\\boldsymbol{v}_i$ are hierarchically ordered by how much correlation they\n", + "encode from the columns of $\\boldsymbol{X}$. \n", + "\n", + "\n", + "Note that these are also the eigenvectors and eigenvalues of the\n", + "Hessian matrix.\n", + "\n", + "If we now recall the definition of the covariance matrix (not using\n", + "Bessel's correction) we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{X}]=\\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "meaning that every squared non-singular value of $\\boldsymbol{X}$ divided by $n$ (\n", + "the number of samples) are the eigenvalues of the covariance\n", + "matrix. Every singular value of $\\boldsymbol{X}$ is thus a positive square\n", + "root of an eigenvalue of $\\boldsymbol{X}^T\\boldsymbol{X}$. If the matrix $\\boldsymbol{X}$ is\n", + "self-adjoint, the singular values of $\\boldsymbol{X}$ are equal to the\n", + "absolute value of the eigenvalues of $\\boldsymbol{X}$.\n", + "\n", + "\n", + "For $\\boldsymbol{X}\\boldsymbol{X}^T$ we found" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}\\boldsymbol{V}^T\\boldsymbol{V}\\boldsymbol{\\Sigma}^T\\boldsymbol{U}^T=\\boldsymbol{U}\\boldsymbol{\\Sigma}^T\\boldsymbol{\\Sigma}\\boldsymbol{U}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the matrices here have dimension $n\\times n$, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\Sigma}\\boldsymbol{\\Sigma}^T = \\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} \\\\ \\boldsymbol{0}\\\\ \\end{bmatrix}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} \\boldsymbol{0}\\\\ \\end{bmatrix}=\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0} \\\\ \\boldsymbol{0} & \\boldsymbol{0}\\\\ \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "leading to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}\\boldsymbol{X}^T=\\boldsymbol{U}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0} \\\\ \\boldsymbol{0} & \\boldsymbol{0}\\\\ \\end{bmatrix}\\boldsymbol{U}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Multiplying with $\\boldsymbol{U}$ from the right gives us the eigenvalue problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\boldsymbol{X}\\boldsymbol{X}^T)\\boldsymbol{U}=\\boldsymbol{U}\\begin{bmatrix} \\tilde{\\boldsymbol{\\Sigma}} & \\boldsymbol{0} \\\\ \\boldsymbol{0} & \\boldsymbol{0}\\\\ \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It means that the eigenvalues of $\\boldsymbol{X}\\boldsymbol{X}^T$ are again given by\n", + "the non-zero singular values plus now a series of zeros. The column\n", + "vectors of $\\boldsymbol{U}$ are the eigenvectors of $\\boldsymbol{X}\\boldsymbol{X}^T$ and\n", + "measure how much correlations are contained in the rows of $\\boldsymbol{X}$.\n", + "\n", + "Since we will mainly be interested in the correlations among the features\n", + "of our data (the columns of $\\boldsymbol{X}$, the quantity of interest for us are the non-zero singular\n", + "values and the column vectors of $\\boldsymbol{V}$.\n", + "\n", + "\n", + "\n", + "\n", + "## Ridge and Lasso Regression\n", + "\n", + "Let us remind ourselves about the expression for the standard Mean Squared Error (MSE) which we used to define our cost function and the equations for the ordinary least squares (OLS) method, that is \n", + "our optimization problem is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in {\\mathbb{R}}^{p}}}\\frac{1}{n}\\left\\{\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right)\\right\\}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or we can state it as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in\n", + "{\\mathbb{R}}^{p}}}\\frac{1}{n}\\sum_{i=0}^{n-1}\\left(y_i-\\tilde{y}_i\\right)^2=\\frac{1}{n}\\vert\\vert \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\vert\\vert_2^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have used the definition of a norm-2 vector, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\vert\\vert \\boldsymbol{x}\\vert\\vert_2 = \\sqrt{\\sum_i x_i^2}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By minimizing the above equation with respect to the parameters\n", + "$\\boldsymbol{\\beta}$ we could then obtain an analytical expression for the\n", + "parameters $\\boldsymbol{\\beta}$. We can add a regularization parameter $\\lambda$ by\n", + "defining a new cost function to be optimized, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in\n", + "{\\mathbb{R}}^{p}}}\\frac{1}{n}\\vert\\vert \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\vert\\vert_2^2+\\lambda\\vert\\vert \\boldsymbol{\\beta}\\vert\\vert_2^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which leads to the Ridge regression minimization problem where we\n", + "require that $\\vert\\vert \\boldsymbol{\\beta}\\vert\\vert_2^2\\le t$, where $t$ is\n", + "a finite number larger than zero. By defining" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{X},\\boldsymbol{\\beta})=\\frac{1}{n}\\vert\\vert \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\vert\\vert_2^2+\\lambda\\vert\\vert \\boldsymbol{\\beta}\\vert\\vert_1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we have a new optimization equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "{\\displaystyle \\min_{\\boldsymbol{\\beta}\\in\n", + "{\\mathbb{R}}^{p}}}\\frac{1}{n}\\vert\\vert \\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\vert\\vert_2^2+\\lambda\\vert\\vert \\boldsymbol{\\beta}\\vert\\vert_1\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which leads to Lasso regression. Lasso stands for least absolute shrinkage and selection operator. \n", + "\n", + "Here we have defined the norm-1 as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\vert\\vert \\boldsymbol{x}\\vert\\vert_1 = \\sum_i \\vert x_i\\vert.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the matrix-vector expression for Ridge regression and dropping the parameter $1/n$ in front of the standard means squared error equation, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{X},\\boldsymbol{\\beta})=\\left\\{(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})^T(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\right\\}+\\lambda\\boldsymbol{\\beta}^T\\boldsymbol{\\beta},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and \n", + "taking the derivatives with respect to $\\boldsymbol{\\beta}$ we obtain then\n", + "a slightly modified matrix inversion problem which for finite values\n", + "of $\\lambda$ does not suffer from singularity problems. We obtain\n", + "the optimal parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}_{\\mathrm{Ridge}} = \\left(\\boldsymbol{X}^T\\boldsymbol{X}+\\lambda\\boldsymbol{I}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $\\boldsymbol{I}$ being a $p\\times p$ identity matrix with the constraint that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sum_{i=0}^{p-1} \\beta_i^2 \\leq t,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $t$ a finite positive number. \n", + "\n", + "When we compare this with the ordinary least squares result we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}_{\\mathrm{OLS}} = \\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which can lead to singular matrices. However, with the SVD, we can always compute the inverse of the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$.\n", + "\n", + "\n", + "We see that Ridge regression is nothing but the standard OLS with a\n", + "modified diagonal term added to $\\boldsymbol{X}^T\\boldsymbol{X}$. The consequences, in\n", + "particular for our discussion of the bias-variance tradeoff are rather\n", + "interesting. We will see that for specific values of $\\lambda$, we may\n", + "even reduce the variance of the optimal parameters $\\boldsymbol{\\beta}$. These topics and other related ones, will be discussed after the more linear algebra oriented analysis here.\n", + "\n", + "\n", + "\n", + "Using our insights about the SVD of the design matrix $\\boldsymbol{X}$ \n", + "We have already analyzed the OLS solutions in terms of the eigenvectors (the columns) of the right singular value matrix $\\boldsymbol{U}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{\\boldsymbol{y}}_{\\mathrm{OLS}}=\\boldsymbol{X}\\boldsymbol{\\beta} =\\boldsymbol{U}\\boldsymbol{U}^T\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For Ridge regression this becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{\\boldsymbol{y}}_{\\mathrm{Ridge}}=\\boldsymbol{X}\\boldsymbol{\\beta}_{\\mathrm{Ridge}} = \\boldsymbol{U\\Sigma V^T}\\left(\\boldsymbol{V}\\boldsymbol{\\Sigma}^2\\boldsymbol{V}^T+\\lambda\\boldsymbol{I} \\right)^{-1}(\\boldsymbol{U\\Sigma V^T})^T\\boldsymbol{y}=\\sum_{j=0}^{p-1}\\boldsymbol{u}_j\\boldsymbol{u}_j^T\\frac{\\sigma_j^2}{\\sigma_j^2+\\lambda}\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with the vectors $\\boldsymbol{u}_j$ being the columns of $\\boldsymbol{U}$ from the SVD of the matrix $\\boldsymbol{X}$. \n", + "\n", + "\n", + "\n", + "Since $\\lambda \\geq 0$, it means that compared to OLS, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\sigma_j^2}{\\sigma_j^2+\\lambda} \\leq 1.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Ridge regression finds the coordinates of $\\boldsymbol{y}$ with respect to the\n", + "orthonormal basis $\\boldsymbol{U}$, it then shrinks the coordinates by\n", + "$\\frac{\\sigma_j^2}{\\sigma_j^2+\\lambda}$. Recall that the SVD has\n", + "eigenvalues ordered in a descending way, that is $\\sigma_i \\geq\n", + "\\sigma_{i+1}$.\n", + "\n", + "For small eigenvalues $\\sigma_i$ it means that their contributions become less important, a fact which can be used to reduce the number of degrees of freedom. More about this when we have covered the material on a statistical interpretation of various linear regression methods.\n", + "\n", + "\n", + "\n", + "For the sake of simplicity, let us assume that the design matrix is orthonormal, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=(\\boldsymbol{X}^T\\boldsymbol{X})^{-1} =\\boldsymbol{I}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case the standard OLS results in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\beta}^{\\mathrm{OLS}} = \\boldsymbol{X}^T\\boldsymbol{y}=\\sum_{i=0}^{p-1}\\boldsymbol{u}_j\\boldsymbol{u}_j^T\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\beta}^{\\mathrm{Ridge}} = \\left(\\boldsymbol{I}+\\lambda\\boldsymbol{I}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}=\\left(1+\\lambda\\right)^{-1}\\boldsymbol{\\beta}^{\\mathrm{OLS}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "that is the Ridge estimator scales the OLS estimator by the inverse of a factor $1+\\lambda$, and\n", + "the Ridge estimator converges to zero when the hyperparameter goes to\n", + "infinity.\n", + "\n", + "We will come back to more interpreations after we have gone through some of the statistical analysis part. \n", + "\n", + "\n", + "\n", + "Using the matrix-vector expression for Lasso regression and dropping the parameter $1/n$ in front of the standard mean squared error equation, we have the following **cost** function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{X},\\boldsymbol{\\beta})=\\left\\{(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})^T(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\right\\}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking the derivative with respect to $\\boldsymbol{\\beta}$ and recalling that the derivative of the absolute value is (we drop the boldfaced vector symbol for simplicty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{d \\vert \\beta\\vert}{d \\boldsymbol{\\beta}}=\\mathrm{sgn}(\\boldsymbol{\\beta})=\\left\\{\\begin{array}{cc} 1 & \\beta > 0 \\\\ 0 & \\beta =0\\\\-1 & \\beta < 0, \\end{array}\\right.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we have that the derivative of the cost function is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial C(\\boldsymbol{X},\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}}=-2\\boldsymbol{X}^T(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})+\\lambda sgn(\\boldsymbol{\\beta})=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and reordering we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}\\boldsymbol{\\beta}+\\lambda sgn(\\boldsymbol{\\beta})=2\\boldsymbol{X}^T\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This equation does not lead to a nice analytical equation as in Ridge regression or ordinary least squares. This equation can however be solved by using standard convex optimization algorithms using for example the Python package [CVXOPT](https://cvxopt.org/). We will discuss this later. \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Let us assume that our design matrix is given by unit (identity) matrix, that is a square diagonal matrix with ones only along the\n", + "diagonal. In this case we have an equal number of rows and columns $n=p$.\n", + "\n", + "Our model approximation is just $\\tilde{\\boldsymbol{y}}=\\boldsymbol{\\beta}$ and the mean squared error and thereby the cost function for ordinary least sqquares (OLS) is then (we drop the term $1/n$)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta})=\\sum_{i=0}^{p-1}(y_i-\\beta_i)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and minimizing we have that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\beta}_i^{\\mathrm{OLS}} = y_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For Ridge regression our cost function is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta})=\\sum_{i=0}^{p-1}(y_i-\\beta_i)^2+\\lambda\\sum_{i=0}^{p-1}\\beta_i^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and minimizing we have that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\beta}_i^{\\mathrm{Ridge}} = \\frac{y_i}{1+\\lambda}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For Lasso regression our cost function is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta})=\\sum_{i=0}^{p-1}(y_i-\\beta_i)^2+\\lambda\\sum_{i=0}^{p-1}\\vert\\beta_i\\vert=\\sum_{i=0}^{p-1}(y_i-\\beta_i)^2+\\lambda\\sum_{i=0}^{p-1}\\sqrt{\\beta_i^2},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and minimizing we have that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "-2\\sum_{i=0}^{p-1}(y_i-\\beta_i)+\\lambda \\sum_{i=0}^{p-1}\\frac{(\\beta_i)}{\\vert\\beta_i\\vert}=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which leads to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}_i^{\\mathrm{Lasso}} = \\left\\{\\begin{array}{ccc}y_i-\\frac{\\lambda}{2} &\\mathrm{if} & y_i> \\frac{\\lambda}{2}\\\\\n", + " y_i+\\frac{\\lambda}{2} &\\mathrm{if} & y_i< -\\frac{\\lambda}{2}\\\\\n", + "\t\t\t\t\t\t\t 0 &\\mathrm{if} & \\vert y_i\\vert\\le \\frac{\\lambda}{2}\\end{array}\\right.\\\\.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting these results ([figure in handwritten notes for week 36](https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2021/NotesSeptember9.pdf)) shows clearly that Lasso regression suppresses (sets to zero) values of $\\beta_i$ for specific values of $\\lambda$. Ridge regression reduces on the other hand the values of $\\beta_i$ as function of $\\lambda$.\n", + "\n", + "\n", + "As another examples, \n", + "let us assume we have a data set with outputs/targets given by the vector" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{y}=\\begin{bmatrix}4 \\\\ 2 \\\\3\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and our inputs as a $3\\times 2$ design matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}2 & 0\\\\ 0 & 1 \\\\ 0 & 0\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "meaning that we have two features and two unknown parameters $\\beta_0$ and $\\beta_1$ to be determined either by ordinary least squares, Ridge or Lasso regression.\n", + "\n", + "\n", + "For ordinary least squares (OLS) we know that the optimal solution is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\left( \\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inserting the above values we obtain that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\begin{bmatrix}2 \\\\ 2\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The code which implements this simpler case is presented after the discussion of Ridge and Lasso.\n", + "\n", + "\n", + "For Ridge regression we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}}=\\left( \\boldsymbol{X}^T\\boldsymbol{X}+\\lambda\\boldsymbol{I}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inserting the above values we obtain that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{Ridge}}=\\begin{bmatrix}\\frac{8}{4+\\lambda} \\\\ \\frac{2}{1+\\lambda}\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is normally a constraint on the value of $\\vert\\vert \\boldsymbol{\\beta}\\vert\\vert_2$ via the parameter $\\lambda$.\n", + "Let us for simplicity assume that $\\beta_0^2+\\beta_1^2=1$ as constraint. This will allow us to find an expression for the optimal values of $\\beta$ and $\\lambda$.\n", + "\n", + "To see this, let us write the cost function for Ridge regression. \n", + "\n", + "\n", + "\n", + "We define the MSE without the $1/n$ factor and have then, using that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}\\boldsymbol{\\beta}=\\begin{bmatrix} 2\\beta_0 \\\\ \\beta_1 \\\\0 \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta})=(4-2\\beta_0)^2+(2-\\beta_1)^2+\\lambda(\\beta_0^2+\\beta_1^2),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and taking the derivative with respect to $\\beta_0$ we get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_0=\\frac{8}{4+\\lambda},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and for $\\beta_1$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_1=\\frac{2}{1+\\lambda},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the constraint for $\\beta_0^2+\\beta_1^2=1$ we can constrain $\\lambda$ by solving" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\frac{8}{4+\\lambda}\\right)^2+\\left(\\frac{2}{1+\\lambda}\\right)^2=1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which gives $\\lambda=4.571$ and $\\beta_0=0.933$ and $\\beta_1=0.359$.\n", + "\n", + "\n", + "For Lasso we need now, keeping a constraint on $\\vert\\beta_0\\vert+\\vert\\beta_1\\vert=1$, to take the derivative of the absolute values of $\\beta_0$\n", + "and $\\beta_1$. This gives us the following derivatives of the cost function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta})=(4-2\\beta_0)^2+(2-\\beta_1)^2+\\lambda(\\vert\\beta_0\\vert+\\vert\\beta_1\\vert),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial C(\\boldsymbol{\\beta})}{\\partial \\beta_0}=-4(4-2\\beta_0)+\\lambda\\mathrm{sgn}(\\beta_0)=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial C(\\boldsymbol{\\beta})}{\\partial \\beta_1}=-2(2-\\beta_1)+\\lambda\\mathrm{sgn}(\\beta_1)=0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have now four cases to solve besides the trivial cases $\\beta_0$ and/or $\\beta_1$ are zero, namely\n", + "1. $\\beta_0 > 0$ and $\\beta_1 > 0$,\n", + "\n", + "2. $\\beta_0 > 0$ and $\\beta_1 < 0$,\n", + "\n", + "3. $\\beta_0 < 0$ and $\\beta_1 > 0$,\n", + "\n", + "4. $\\beta_0 < 0$ and $\\beta_1 < 0$.\n", + "\n", + "If we consider the first case, we have then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "-4(4-2\\beta_0)+\\lambda=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "-2(2-\\beta_1)+\\lambda=0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which yields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_0=\\frac{16+\\lambda}{8},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_1=\\frac{4+\\lambda}{2}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the constraint on $\\beta_0$ and $\\beta_1$ we can then find the optimal value of $\\lambda$ for the different cases. We leave this as an exercise to you.\n", + "\n", + "\n", + "Here we set up the OLS, Ridge and Lasso functionality in order to study the above example. Note that here we have opted for a set of values of $\\lambda$, meaning that we need to perform a search in order to find the optimal values.\n", + "\n", + "First we study and compare the OLS and Ridge results. The next code compares all three methods.\n", + "We select values of the hyperparameter $\\lambda\\in [10^{-4},10^4]$ and compute the predicted values for ordinary least squares and Ridge regression." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2. 2.]\n", + "Training MSE for OLS\n", + "3.0\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter2_245_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def R2(y_data, y_model):\n", + " return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)\n", + "def MSE(y_data,y_model):\n", + " n = np.size(y_model)\n", + " return np.sum((y_data-y_model)**2)/n\n", + "\n", + "\n", + "# A seed just to ensure that the random numbers are the same for every run.\n", + "# Useful for eventual debugging.\n", + "\n", + "X = np.array( [ [ 2, 0], [0, 1], [0,0]])\n", + "y = np.array( [4, 2, 3])\n", + "\n", + "\n", + "# matrix inversion to find beta\n", + "OLSbeta = np.linalg.inv(X.T @ X) @ X.T @ y\n", + "print(OLSbeta)\n", + "# and then make the prediction\n", + "ytildeOLS = X @ OLSbeta\n", + "print(\"Training MSE for OLS\")\n", + "print(MSE(y,ytildeOLS))\n", + "ypredictOLS = X @ OLSbeta\n", + "\n", + "# Repeat now for Ridge regression and various values of the regularization parameter\n", + "I = np.eye(2,2)\n", + "# Decide which values of lambda to use\n", + "nlambdas = 100\n", + "MSEPredict = np.zeros(nlambdas)\n", + "lambdas = np.logspace(-4, 4, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " Ridgebeta = np.linalg.inv(X.T @ X+lmb*I) @ X.T @ y\n", + "# print(Ridgebeta)\n", + " # and then make the prediction\n", + " ypredictRidge = X @ Ridgebeta\n", + " MSEPredict[i] = MSE(y,ypredictRidge)\n", + "# print(MSEPredict[i])\n", + " # Now plot the results\n", + "plt.figure()\n", + "plt.plot(np.log10(lambdas), MSEPredict, 'r--', label = 'MSE Ridge Train')\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('MSE')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see here that we reach a plateau for the Ridge results. Writing out the coefficients $\\boldsymbol{\\beta}$, we that they are getting smaller and smaller and our error stabilizes since the predicted values of $\\tilde{\\boldsymbol{y}}$ approach zero.\n", + "\n", + "This happens also for Lasso regression, as seen from the next code\n", + "output. The difference is that Lasso shrinks the values of $\\beta$ to\n", + "zero at a much earlier stage and the results flatten out. We see that\n", + "Lasso gives also an excellent fit for small values of $\\lambda$ and\n", + "shows rthe best performance of the three regression methods." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2. 2.]\n", + "Training MSE for OLS\n", + "3.0\n", + "[1.99995 1.99980002]\n", + "[ 0.50001525 -0.99953475]\n", + "[1.99993978 1.99975913]\n", + "[ 0.50001525 -0.99944272]\n", + "[1.99992746 1.99970988]\n", + "[ 0.50001525 -0.99933188]\n", + "[1.99991263 1.99965056]\n", + "[ 0.50001525 -0.99919837]\n", + "[1.99989476 1.99957911]\n", + "[ 0.50001524 -0.99903755]\n", + "[1.99987324 1.99949306]\n", + "[ 0.50001524 -0.99884384]\n", + "[1.99984732 1.99938942]\n", + "[ 0.50001524 -0.99861053]\n", + "[1.9998161 1.99926459]\n", + "[ 0.50001523 -0.9983295 ]\n", + "[1.99977849 1.99911427]\n", + "[ 0.50001523 -0.99799099]\n", + "[1.9997332 1.99893323]\n", + "[ 0.50001522 -0.99758326]\n", + "[1.99967865 1.99871521]\n", + "[ 0.50001521 -0.99709215]\n", + "[1.99961294 1.99845267]\n", + "[ 0.50001521 -0.99650061]\n", + "[1.99953381 1.99813653]\n", + "[ 0.50001519 -0.99578809]\n", + "[1.9994385 1.99775587]\n", + "[ 0.50001518 -0.99492986]\n", + "[1.9993237 1.99729756]\n", + "[ 0.50001517 -0.99389612]\n", + "[1.99918546 1.9967458 ]\n", + "[ 0.50001515 -0.99265097]\n", + "[1.99901896 1.99608161]\n", + "[ 0.50001512 -0.99115119]\n", + "[1.99881845 1.99528218]\n", + "[ 0.5000151 -0.9893447]\n", + "[1.998577 1.9943201]\n", + "[ 0.50001506 -0.98716878]\n", + "[1.99828624 1.99316252]\n", + "[ 0.50001502 -0.98454786]\n", + "[1.99793613 1.99176998]\n", + "[ 0.50001498 -0.98139097]\n", + "[1.99751458 1.99009525]\n", + "[ 0.50001492 -0.97758848]\n", + "[1.99700706 1.98808176]\n", + "[ 0.50001485 -0.97300836]\n", + "[1.9963961 1.98566191]\n", + "[ 0.50001476 -0.9674916 ]\n", + "[1.99566069 1.98275501]\n", + "[ 0.50001466 -0.96084663]\n", + "[1.9947756 1.97926491]\n", + "[ 0.50001454 -0.95284275]\n", + "[1.99371056 1.97507735]\n", + "[ 0.50001439 -0.94320205]\n", + "[1.99242921 1.97005689]\n", + "[ 0.50001422 -0.93158979]\n", + "[1.99088801 1.9640435 ]\n", + "[ 0.500014 -0.91760278]\n", + "[1.9890348 1.95684892]\n", + "[ 0.50001374 -0.90075537]\n", + "[1.98680716 1.9482527 ]\n", + "[ 0.50001343 -0.88046261]\n", + "[1.98413059 1.93799826]\n", + "[ 0.50001306 -0.85601992]\n", + "[1.98091621 1.92578916]\n", + "[ 0.50001261 -0.8265786 ]\n", + "[1.97705827 1.91128596]\n", + "[ 0.50001207 -0.79111643]\n", + "[1.97243128 1.89410423]\n", + "[ 0.50001142 -0.74840212]\n", + "[1.96688672 1.87381451]\n", + "[ 0.50001063 -0.69695259]\n", + "[1.96024953 1.84994524]\n", + "[ 0.50000969 -0.63498144]\n", + "[1.95231424 1.82198978]\n", + "[ 0.50000855 -0.56033697]\n", + "[1.94284104 1.78941903]\n", + "[ 0.50000718 -0.47042744]\n", + "[1.93155188 1.75170092]\n", + "[ 0.50000553 -0.3621311 ]\n", + "[1.91812702 1.70832814]\n", + "[ 0.50001414 -0.23167717]\n", + "[1.90220243 1.65885453]\n", + "[ 0.50000455 -0.07456491]\n", + "[1.88336879 1.60293962]\n", + "[ 0.47132891 -0. ]\n", + "[1.86117291 1.54039921]\n", + "[ 0.41433969 -0. ]\n", + "[1.83512277 1.47125748]\n", + "[ 0.34569596 -0. ]\n", + "[1.80469739 1.39579407]\n", + "[ 0.26301436 -0. ]\n", + "[1.76936315 1.31457796]\n", + "[ 0.16342407 -0. ]\n", + "[1.72859758 1.22847924]\n", + "[ 0.04346721 -0. ]\n", + "[1.68192193 1.13865173]\n", + "[ 0. -0.]\n", + "[1.62894215 1.04648335]\n", + "[ 0. -0.]\n", + "[1.56939714 0.95351665]\n", + "[ 0. -0.]\n", + "[1.50321091 0.86134827]\n", + "[ 0. -0.]\n", + "[1.43054282 0.77152076]\n", + "[ 0. -0.]\n", + "[1.35182854 0.68542204]\n", + "[ 0. -0.]\n", + "[1.26780278 0.60420593]\n", + "[ 0. -0.]\n", + "[1.17949575 0.52874252]\n", + "[ 0. -0.]\n", + "[1.0881981 0.45960079]\n", + "[ 0. -0.]\n", + "[0.99539415 0.39706038]\n", + "[ 0. -0.]\n", + "[0.90266948 0.34114547]\n", + "[ 0. -0.]\n", + "[0.81160425 0.29167186]\n", + "[ 0. -0.]\n", + "[0.7236674 0.24829908]\n", + "[ 0. -0.]\n", + "[0.64012627 0.21058097]\n", + "[ 0. -0.]\n", + "[0.56198284 0.17801022]\n", + "[ 0. -0.]\n", + "[0.48994188 0.15005476]\n", + "[ 0. -0.]\n", + "[0.42441033 0.12618549]\n", + "[ 0. -0.]\n", + "[0.3655222 0.10589577]\n", + "[ 0. -0.]\n", + "[0.31318084 0.08871404]\n", + "[ 0. -0.]\n", + "[0.26710969 0.07421084]\n", + "[ 0. -0.]\n", + "[0.22690428 0.06200174]\n", + "[ 0. -0.]\n", + "[0.19207979 0.0517473 ]\n", + "[ 0. -0.]\n", + "[0.16211139 0.04315108]\n", + "[ 0. -0.]\n", + "[0.13646574 0.0359565 ]\n", + "[ 0. -0.]\n", + "[0.11462415 0.02994311]\n", + "[ 0. -0.]\n", + "[0.09609807 0.02492265]\n", + "[ 0. -0.]\n", + "[0.08043851 0.02073509]\n", + "[ 0. -0.]\n", + "[0.06724062 0.01724499]\n", + "[ 0. -0.]\n", + "[0.05614483 0.01433809]\n", + "[ 0. -0.]\n", + "[0.04683565 0.01191824]\n", + "[ 0. -0.]\n", + "[0.039039 0.00990475]\n", + "[ 0. -0.]\n", + "[0.03251863 0.00823002]\n", + "[ 0. -0.]\n", + "[0.02707227 0.00683748]\n", + "[ 0. -0.]\n", + "[0.02252765 0.0056799 ]\n", + "[ 0. -0.]\n", + "[0.01873869 0.00471782]\n", + "[ 0. -0.]\n", + "[0.01558197 0.00391839]\n", + "[ 0. -0.]\n", + "[0.01295356 0.0032542 ]\n", + "[ 0. -0.]\n", + "[0.01076611 0.00270244]\n", + "[ 0. -0.]\n", + "[0.00894639 0.00224413]\n", + "[ 0. -0.]\n", + "[0.0074331 0.00186347]\n", + "[ 0. -0.]\n", + "[0.00617499 0.00154733]\n", + "[ 0. -0.]\n", + "[0.00512927 0.00128479]\n", + "[ 0. -0.]\n", + "[0.00426027 0.00106677]\n", + "[ 0. -0.]\n", + "[0.00353823 0.00088573]\n", + "[ 0. -0.]\n", + "[0.00293838 0.00073541]\n", + "[ 0. -0.]\n", + "[0.0024401 0.00061058]\n", + "[ 0. -0.]\n", + "[0.00202624 0.00050694]\n", + "[ 0. -0.]\n", + "[0.00168251 0.00042089]\n", + "[ 0. -0.]\n", + "[0.00139705 0.00034944]\n", + "[ 0. -0.]\n", + "[0.00115999 0.00029012]\n", + "[ 0. -0.]\n", + "[0.00096314 0.00024087]\n", + "[ 0. -0.]\n", + "[0.00079968 0.00019998]\n", + "[ 0. -0.]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEHCAYAAACp9y31AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAq5klEQVR4nO3dd5xV1dX/8c9i6KBIt4A0lSAICKMBMaKiIkJQgkosRIoPdjEqiiVqYk0gwRoTYi+PhFgeC4JilB+YqGGoQVAUREAREGnSZ2b9/th3CnMHhjJzzy3f9+t1Xvfcs+49Z90ZWLPvPvvsY+6OiIhkjkpRJyAiIomlwi8ikmFU+EVEMowKv4hIhlHhFxHJMCr8IiIZpnJF7djMngL6AKvcvV1sWz3g70BzYAlwvruvLWtfDRo08ObNm1dUqiIiaWnGjBnfu3vDktutosbxm9lJwI/Ac8UK/x+AH9z9ATMbCdR195vL2ld2drbn5ORUSJ4iIunKzGa4e3bJ7RXW1ePuU4EfSmw+G3g2tv4scE5FHV9EREqX6D7+xu6+AiD22GhXLzSzYWaWY2Y5q1evTliCIiLpLmlP7rr7WHfPdvfshg3juqhERGQfVdjJ3V1YaWaHuPsKMzsEWLWvO9qxYwfLly9n69at5ZieRKF69eo0adKEKlWqRJ2KSEZIdOF/A7gEeCD2+Pq+7mj58uUccMABNG/eHDMrr/wkwdydNWvWsHz5clq0aBF1OiIZocK6eszsJeAjoLWZLTezoYSCf7qZfQGcHnu+T7Zu3Ur9+vVV9FOcmVG/fn19cxNJoApr8bv7BbsI9SivY6jopwf9HkUSK9FdPSIiqcUdtm2DrVthy5bwmJsLRx4Z4p9/DitWwI4dRUvlytC7d4j/85+wZAnk5RUtBx4Iv/pViI8bF+L5+UXLwQfDsGEV+Zk86ZfOnTt7SfPnz4/blmiAX3zxxYXPd+zY4Q0aNPDevXu7u/t3333nvXv39vbt23ubNm28V69e7u7+1VdfefXq1b1Dhw6Fy7PPPhu3/+7du/tRRx3l7du39+zsbJ81a1ZhrFevXr527dq499x5550+atSo/fpc33//fWFejRs39kMPPbTw+bZt28p8//Tp0/2aa67Zq2Mmw+9T0tS2be5Ll7rPmOE+aZL7Cy+4P/xw2O7u/uKL7v36uffo4f7Tn7q3beverJl7Xl6IDxvmHsp/0VKzZtH+L7ooPt6oUVG8b9/4eKtWRfFTTomPd+xYLh8dyPFSaqpa/PuhVq1azJs3jy1btlCjRg0mT57MYYcdVhi/4447OP300xk+fDgAc+fOLYy1atWK2bNnl3mMF198kezsbJ5++mlGjBjB5MmTAXj77bfL98MUU79+/cLc7rrrLmrXrs2NN96402tyc3OpXLn0fz7Z2dlkZ8ddLChSMTZtCq3uL7+ERYtg6dKwPPUUNG4Mo0bB7bfHv++880LL+rvvYOHC0AqvUweaNIHatUOrvmpVOOccaN4catSAatWgevWwXmDkSBg6FKpUKVqqVSuKjx0LjzwCWVlFS/ERbBMmhMesLKhUCczCUoFU+PdTr169mDBhAueeey4vvfQSF1xwAdOmTQNgxYoVnHHGGYWvbd++/T4fp2vXrowaNarwefPmzcnJyaFBgwbce++9PPfcczRt2pSGDRvSuXNnAKZPn87QoUOpVasWJ554IhMnTmTevHnk5eUxcuRIpkyZwrZt27jqqqu47LLLysxh0KBB1KtXj1mzZtGpUycGDBjAddddV/iH7+mnn6Z169ZMmTKF0aNH89Zbb3HXXXexdOlSFi9ezNKlS7nuuuu49tpr9/nnIBksLw8++wxycmDOHLjiitDd8vLLMGhQ0evq14fDD4d160Lh790bGjaERo3CY8OGUK9eWACuvz4su9KrV1h2pV273efduPHu48X/iCRI+hT+k0+O33b++XDllbB5M5x1Vnx80KCwfP89nHvuzrEpU/bosL/85S/53e9+R58+fZg7dy5DhgwpLPxXXXUVAwYM4NFHH+W0005j8ODBHHrooQAsWrSIjh07Fu7nkUce4Wc/+9kujzNp0iTOOeecuO0zZsxg3LhxzJo1i9zcXDp16lRY+AcPHszYsWM54YQTGDlyZOF7nnzySerUqcP06dPZtm0b3bp144wzztij4ZQLFy7kvffeIysriw0bNjB16lQqV67Me++9x6233sorr7wS957PPvuMDz74gI0bN9K6dWuuuOIKjdmXPbdgQSjy06eH/8sQimWPHqHwn3oqvPIKHHEEtGwZWuvFdewYFimUPoU/Iu3bt2fJkiW89NJLnFXij0vPnj1ZvHgxkyZNYuLEiRx77LHMmzcP2POunosuuohNmzaRl5fHzJkz4+LTpk2jX79+1KxZE4C+ffsCsG7dOjZu3MgJJ5wAwIUXXshbb70FwLvvvsvcuXN5+eWXAVi/fj1ffPHFHhX+8847j6ysrML3XXLJJXzxxReYGTt27Cj1Pb1796ZatWpUq1aNRo0asXLlSpo0aVLmsSQDLVoEb70Fb78NffvCVVdBgwbw449w6aWQnR2Wo44KXSMATZuGRfZY+hT+3bXQa9bcfbxBgz1u4Zemb9++3HjjjUyZMoU1a9bsFKtXrx4XXnghF154IX369GHq1KmFLfI98eKLL9KhQwdGjhzJVVddxauvvhr3mtKGQ/puZl11dx555BF69uy5x3kUqFWrVuH6b37zG0455RRee+01lixZwsmlfesCqhXr78zKyiI3N3evjytpzB0efBD+939DNw7AT35S1A/esGHRdikXSTtXTyoZMmQId9xxB8ccc8xO299//302x76abty4kUWLFnH44Yfv9f6rVKnCPffcw8cff8yCBQt2ip100km89tprbNmyhY0bN/Lmm28CULduXQ444AA+/vhjAMaNG1f4np49e/L4448XttAXLlzIpk2b9jqv9evXF57MfuaZZ/b6/ZLB8vJg1qywbgavvx7+AIwaFU7SLlhQscMZM5wKfzlo0qRJ4cid4mbMmEF2djbt27ena9euXHrppRx33HFAUR9/wfLwww/v9hg1atTghhtuYPTo0TttLzjJ2rFjR/r377/TeYInn3ySYcOG0bVrV9ydOnXqAHDppZdy9NFH06lTJ9q1a8dll122T63wm266iVtuuYVu3bqRl5e31++XDLRtG/z1r6Gr5vjjw/h3CF07OTlw443QqlW0OWaACrsRS3kq7UYsCxYsoE2bNhFllBp+/PFHasdOdD3wwAOsWLGChx56KOKsSqffZ5rbtg3+8hf4wx/g229D0b/hhjBUsmrVqLNLW7u6EUv69PFLnAkTJnD//feTm5tLs2bN1B0j0Vm6NLTmu3WDZ58NI3I0VUdkVPjT2IABAxgwYEDUaUimWrgwTEdwxx1h2OWnn4YuHomc+vhFpHzl5cGf/gQdOoTROitXhu0q+klDhV9Eys+SJXDSSaH//vTTQyu/rCtXJeHU1SMi5SM3N/Tdr1kDzz8PF12kfvwkpcIvIvvHPRT4ypXDhGTNmoXpEyRpqatnP5gZAwcOLHyem5tLw4YN6dOnDwArV66kT58+dOjQgaOP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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter2_247_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn import linear_model\n", + "\n", + "def R2(y_data, y_model):\n", + " return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)\n", + "def MSE(y_data,y_model):\n", + " n = np.size(y_model)\n", + " return np.sum((y_data-y_model)**2)/n\n", + "\n", + "\n", + "# A seed just to ensure that the random numbers are the same for every run.\n", + "# Useful for eventual debugging.\n", + "\n", + "X = np.array( [ [ 2, 0], [0, 1], [0,0]])\n", + "y = np.array( [4, 2, 3])\n", + "\n", + "\n", + "# matrix inversion to find beta\n", + "OLSbeta = np.linalg.inv(X.T @ X) @ X.T @ y\n", + "print(OLSbeta)\n", + "# and then make the prediction\n", + "ytildeOLS = X @ OLSbeta\n", + "print(\"Training MSE for OLS\")\n", + "print(MSE(y,ytildeOLS))\n", + "ypredictOLS = X @ OLSbeta\n", + "\n", + "# Repeat now for Ridge regression and various values of the regularization parameter\n", + "I = np.eye(2,2)\n", + "# Decide which values of lambda to use\n", + "nlambdas = 100\n", + "MSERidgePredict = np.zeros(nlambdas)\n", + "MSELassoPredict = np.zeros(nlambdas)\n", + "lambdas = np.logspace(-4, 4, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " Ridgebeta = np.linalg.inv(X.T @ X+lmb*I) @ X.T @ y\n", + " print(Ridgebeta)\n", + " # and then make the prediction\n", + " ypredictRidge = X @ Ridgebeta\n", + " MSERidgePredict[i] = MSE(y,ypredictRidge)\n", + " RegLasso = linear_model.Lasso(lmb)\n", + " RegLasso.fit(X,y)\n", + " ypredictLasso = RegLasso.predict(X)\n", + " print(RegLasso.coef_)\n", + " MSELassoPredict[i] = MSE(y,ypredictLasso)\n", + "# Now plot the results\n", + "plt.figure()\n", + "plt.plot(np.log10(lambdas), MSERidgePredict, 'r--', label = 'MSE Ridge Train')\n", + "plt.plot(np.log10(lambdas), MSELassoPredict, 'r--', label = 'MSE Lasso Train')\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('MSE')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We bring then back our exponential function example and study all\n", + "three regression methods. Depending on the level of noise, we note\n", + "that for small values of the hyperparameter $\\lambda$ all three\n", + "methods produce the same mean squared error. Again, Lasso shrinks the\n", + "parameter values to zero much earlier than Ridge regression and the\n", + "Lasso results flatten out much earlier since all $\\beta_j=0$ (check\n", + "this by printing the values). This case is an example of where OLS\n", + "performs best. Lasso and Ridge reproduce the OLS results for a limited\n", + "set of $\\lambda$ values." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 2.03099776 -0.17917768 5.18029127]\n", + "Training MSE for OLS\n", + "0.009163470508352211\n", + "Test MSE OLS\n", + "0.008675369724976501\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter2_249_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn import linear_model\n", + "\n", + "def R2(y_data, y_model):\n", + " return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)\n", + "def MSE(y_data,y_model):\n", + " n = np.size(y_model)\n", + " return np.sum((y_data-y_model)**2)/n\n", + "\n", + "\n", + "# A seed just to ensure that the random numbers are the same for every run.\n", + "# Useful for eventual debugging.\n", + "np.random.seed(3155)\n", + "\n", + "x = np.random.rand(100)\n", + "y = 2.0+5*x*x+0.1*np.random.randn(100)\n", + "\n", + "# number of features p (here degree of polynomial\n", + "p = 3\n", + "# The design matrix now as function of a given polynomial\n", + "X = np.zeros((len(x),p))\n", + "X[:,0] = 1.0\n", + "X[:,1] = x\n", + "X[:,2] = x*x\n", + "# We split the data in test and training data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", + "\n", + "# matrix inversion to find beta\n", + "OLSbeta = np.linalg.inv(X_train.T @ X_train) @ X_train.T @ y_train\n", + "print(OLSbeta)\n", + "# and then make the prediction\n", + "ytildeOLS = X_train @ OLSbeta\n", + "print(\"Training MSE for OLS\")\n", + "print(MSE(y_train,ytildeOLS))\n", + "ypredictOLS = X_test @ OLSbeta\n", + "print(\"Test MSE OLS\")\n", + "print(MSE(y_test,ypredictOLS))\n", + "\n", + "# Repeat now for Lasso and Ridge regression and various values of the regularization parameter\n", + "I = np.eye(p,p)\n", + "# Decide which values of lambda to use\n", + "nlambdas = 100\n", + "MSEPredict = np.zeros(nlambdas)\n", + "MSETrain = np.zeros(nlambdas)\n", + "MSELassoPredict = np.zeros(nlambdas)\n", + "MSELassoTrain = np.zeros(nlambdas)\n", + "lambdas = np.logspace(-4, 4, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " Ridgebeta = np.linalg.inv(X_train.T @ X_train+lmb*I) @ X_train.T @ y_train\n", + " # include lasso using Scikit-Learn\n", + " RegLasso = linear_model.Lasso(lmb)\n", + " RegLasso.fit(X_train,y_train)\n", + " # and then make the prediction\n", + " ytildeRidge = X_train @ Ridgebeta\n", + " ypredictRidge = X_test @ Ridgebeta\n", + " ytildeLasso = RegLasso.predict(X_train)\n", + " ypredictLasso = RegLasso.predict(X_test)\n", + " MSEPredict[i] = MSE(y_test,ypredictRidge)\n", + " MSETrain[i] = MSE(y_train,ytildeRidge)\n", + " MSELassoPredict[i] = MSE(y_test,ypredictLasso)\n", + " MSELassoTrain[i] = MSE(y_train,ytildeLasso)\n", + "\n", + "# Now plot the results\n", + "plt.figure()\n", + "plt.plot(np.log10(lambdas), MSETrain, label = 'MSE Ridge train')\n", + "plt.plot(np.log10(lambdas), MSEPredict, 'r--', label = 'MSE Ridge Test')\n", + "plt.plot(np.log10(lambdas), MSELassoTrain, label = 'MSE Lasso train')\n", + "plt.plot(np.log10(lambdas), MSELassoPredict, 'r--', label = 'MSE Lasso Test')\n", + "\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('MSE')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Both these example send a clear message. The addition of a\n", + "shrinkage/regularization term implies that we need to perform a search\n", + "for the optimal values of $\\lambda$. We will see this throughout these\n", + "series of lectures.\n", + "\n", + "\n", + "As a small addendum, we note that you can also solve this problem using the convex optimization package [CVXOPT](https://cvxopt.org/examples/mlbook/l1regls.html). This requires, in addition to having installed **CVXOPT**, you need to download the file *l1regl.py*.\n", + "The following code example solves the simpler problem we discussed above, where we have added the latter python file." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'cvxopt'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41226/3530606977.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mcvxopt\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmatrix\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mspdiag\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmul\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdiv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msqrt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnormal\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msetseed\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mcvxopt\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mblas\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlapack\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msolvers\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msparse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mspmatrix\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'cvxopt'" + ] + } + ], + "source": [ + "from cvxopt import matrix, spdiag, mul, div, sqrt, normal, setseed\n", + "from cvxopt import blas, lapack, solvers, sparse, spmatrix\n", + "import math\n", + "\n", + "try:\n", + " import mosek\n", + " import sys\n", + " __MOSEK = True\n", + "except: __MOSEK = False\n", + "\n", + "if __MOSEK:\n", + "\n", + " def l1regls_mosek(A, b):\n", + " \"\"\"\n", + "\n", + " Returns the solution of l1-norm regularized least-squares problem\n", + "\n", + " minimize || A*x - b ||_2^2 + e'*u\n", + "\n", + " subject to -u <= x <= u\n", + "\n", + " \"\"\"\n", + "\n", + " m, n = A.size\n", + "\n", + " env = mosek.Env()\n", + " task = env.Task(0,0)\n", + " task.set_Stream(mosek.streamtype.log, lambda x: sys.stdout.write(x))\n", + "\n", + " task.appendvars( 2*n) # number of variables\n", + " task.appendcons( 2*n) # number of constraints\n", + "\n", + " # input quadratic objective\n", + " Q = matrix(0.0, (n,n)) \n", + " blas.syrk(A, Q, alpha = 2.0, trans='T')\n", + "\n", + " I = []\n", + " for i in range(n):\n", + " I.extend(range(i,n))\n", + "\n", + " J = []\n", + " for i in range(n):\n", + " J.extend((n-i)*[i])\n", + "\n", + " task.putqobj(I, J, list(Q[matrix(I) + matrix(J)*n]))\n", + " task.putclist(range(2*n), list(-2*A.T*b) + n*[1.0]) # setup linear objective\n", + "\n", + " # input constraint matrix row by row\n", + " for i in range(n):\n", + " task.putarow( i, [i, n+i], [1.0, -1.0])\n", + " task.putarow( n+i, [i, n+i], [1.0, 1.0])\n", + "\n", + " # setup bounds on constraints\n", + " task.putboundslice(mosek.accmode.con,\n", + " 0, n, n*[mosek.boundkey.up], n*[0.0], n*[0.0])\n", + " task.putboundslice(mosek.accmode.con,\n", + " n, 2*n, n*[mosek.boundkey.lo], n*[0.0], n*[0.0])\n", + "\n", + " # setup variable bounds\n", + " task.putboundslice(mosek.accmode.var,\n", + " 0, 2*n, 2*n*[mosek.boundkey.fr], 2*n*[0.0], 2*n*[0.0])\n", + "\n", + " # optimize the task\n", + " task.putobjsense(mosek.objsense.minimize)\n", + " task.optimize()\n", + " task.solutionsummary(mosek.streamtype.log)\n", + " x = n*[0.0]\n", + " task.getsolutionslice(mosek.soltype.itr, mosek.solitem.xx, 0, n, x)\n", + "\n", + " return matrix(x)\n", + "\n", + " def l1regls_mosek2(A, b):\n", + " \"\"\"\n", + "\n", + " Returns the solution of l1-norm regularized least-squares problem\n", + "\n", + " minimize w'*w + e'*u\n", + "\n", + " subject to -u <= x <= u\n", + "\n", + " A*x - w = b\n", + "\n", + " \"\"\"\n", + "\n", + " m, n = A.size\n", + "\n", + " env = mosek.Env()\n", + " task = env.Task(0,0)\n", + " task.set_Stream(mosek.streamtype.log, lambda x: sys.stdout.write(x))\n", + "\n", + " task.appendvars(2*n + m) # number of variables\n", + " task.appendcons(2*n + m) # number of constraints\n", + "\n", + " # input quadratic objective\n", + " task.putqobj(range(2*n,2*n+m), range(2*n,2*n+m), m*[2.0])\n", + "\n", + " task.putclist(range(2*n+m), n*[0.0] + n*[1.0] + m*[0.0]) # setup linear objective\n", + "\n", + " # input constraint matrix row by row\n", + " for i in range(n):\n", + " task.putarow( i, [i, n+i], [1.0, -1.0])\n", + " task.putarow( n+i, [i, n+i], [1.0, 1.0])\n", + "\n", + " for i in range(m):\n", + " task.putarow( 2*n+i, range(n) + [2*n+i], list(A[i,:]) + [-1.0])\n", + "\n", + " # setup bounds on constraints\n", + " task.putboundslice(mosek.accmode.con,\n", + " 0, n, n*[mosek.boundkey.up], n*[0.0], n*[0.0])\n", + " task.putboundslice(mosek.accmode.con,\n", + " n, 2*n, n*[mosek.boundkey.lo], n*[0.0], n*[0.0])\n", + " task.putboundslice(mosek.accmode.con,\n", + " 2*n, 2*n+m, m*[mosek.boundkey.fx], list(b), list(b))\n", + "\n", + " # setup variable bounds\n", + " task.putboundslice(mosek.accmode.var, 0, 2*n+m, (2*n+m)*[mosek.boundkey.fr], \n", + " (2*n+m)*[0.0], (2*n+m)*[0.0])\n", + "\n", + " # optimize the task\n", + " task.putobjsense(mosek.objsense.minimize)\n", + " task.optimize()\n", + " task.solutionsummary(mosek.streamtype.log)\n", + " x = n*[0.0]\n", + " task.getsolutionslice(mosek.soltype.itr, mosek.solitem.xx, 0, n, x)\n", + "\n", + " return matrix(x)\n", + "\n", + "def l1regls(A, b):\n", + " \"\"\"\n", + " \n", + " Returns the solution of l1-norm regularized least-squares problem\n", + " \n", + " minimize || A*x - b ||_2^2 + || x ||_1.\n", + "\n", + " \"\"\"\n", + "\n", + " m, n = A.size\n", + " q = matrix(1.0, (2*n,1))\n", + " q[:n] = -2.0 * A.T * b\n", + "\n", + " def P(u, v, alpha = 1.0, beta = 0.0 ):\n", + " \"\"\"\n", + " v := alpha * 2.0 * [ A'*A, 0; 0, 0 ] * u + beta * v \n", + " \"\"\"\n", + " v *= beta\n", + " v[:n] += alpha * 2.0 * A.T * (A * u[:n])\n", + "\n", + "\n", + " def G(u, v, alpha=1.0, beta=0.0, trans='N'):\n", + " \"\"\"\n", + " v := alpha*[I, -I; -I, -I] * u + beta * v (trans = 'N' or 'T')\n", + " \"\"\"\n", + "\n", + " v *= beta\n", + " v[:n] += alpha*(u[:n] - u[n:])\n", + " v[n:] += alpha*(-u[:n] - u[n:])\n", + "\n", + " h = matrix(0.0, (2*n,1))\n", + "\n", + "\n", + " # Customized solver for the KKT system \n", + " #\n", + " # [ 2.0*A'*A 0 I -I ] [x[:n] ] [bx[:n] ]\n", + " # [ 0 0 -I -I ] [x[n:] ] = [bx[n:] ].\n", + " # [ I -I -D1^-1 0 ] [zl[:n]] [bzl[:n]]\n", + " # [ -I -I 0 -D2^-1 ] [zl[n:]] [bzl[n:]]\n", + " #\n", + " # where D1 = W['di'][:n]**2, D2 = W['di'][:n]**2.\n", + " # \n", + " # We first eliminate zl and x[n:]:\n", + " #\n", + " # ( 2*A'*A + 4*D1*D2*(D1+D2)^-1 ) * x[:n] = \n", + " # bx[:n] - (D2-D1)*(D1+D2)^-1 * bx[n:] + \n", + " # D1 * ( I + (D2-D1)*(D1+D2)^-1 ) * bzl[:n] - \n", + " # D2 * ( I - (D2-D1)*(D1+D2)^-1 ) * bzl[n:] \n", + " #\n", + " # x[n:] = (D1+D2)^-1 * ( bx[n:] - D1*bzl[:n] - D2*bzl[n:] ) \n", + " # - (D2-D1)*(D1+D2)^-1 * x[:n] \n", + " #\n", + " # zl[:n] = D1 * ( x[:n] - x[n:] - bzl[:n] )\n", + " # zl[n:] = D2 * (-x[:n] - x[n:] - bzl[n:] ).\n", + " #\n", + " # The first equation has the form\n", + " #\n", + " # (A'*A + D)*x[:n] = rhs\n", + " #\n", + " # and is equivalent to\n", + " #\n", + " # [ D A' ] [ x:n] ] = [ rhs ]\n", + " # [ A -I ] [ v ] [ 0 ].\n", + " #\n", + " # It can be solved as \n", + " #\n", + " # ( A*D^-1*A' + I ) * v = A * D^-1 * rhs\n", + " # x[:n] = D^-1 * ( rhs - A'*v ).\n", + "\n", + " S = matrix(0.0, (m,m))\n", + " Asc = matrix(0.0, (m,n))\n", + " v = matrix(0.0, (m,1))\n", + "\n", + " def Fkkt(W):\n", + "\n", + " # Factor \n", + " #\n", + " # S = A*D^-1*A' + I \n", + " #\n", + " # where D = 2*D1*D2*(D1+D2)^-1, D1 = d[:n]**-2, D2 = d[n:]**-2.\n", + "\n", + " d1, d2 = W['di'][:n]**2, W['di'][n:]**2\n", + "\n", + " # ds is square root of diagonal of D\n", + " ds = math.sqrt(2.0) * div( mul( W['di'][:n], W['di'][n:]), \n", + " sqrt(d1+d2) )\n", + " d3 = div(d2 - d1, d1 + d2)\n", + " \n", + " # Asc = A*diag(d)^-1/2\n", + " Asc = A * spdiag(ds**-1)\n", + "\n", + " # S = I + A * D^-1 * A'\n", + " blas.syrk(Asc, S)\n", + " S[::m+1] += 1.0 \n", + " lapack.potrf(S)\n", + "\n", + " def g(x, y, z):\n", + "\n", + " x[:n] = 0.5 * ( x[:n] - mul(d3, x[n:]) + \n", + " mul(d1, z[:n] + mul(d3, z[:n])) - mul(d2, z[n:] - \n", + " mul(d3, z[n:])) )\n", + " x[:n] = div( x[:n], ds) \n", + "\n", + " # Solve\n", + " #\n", + " # S * v = 0.5 * A * D^-1 * ( bx[:n] - \n", + " # (D2-D1)*(D1+D2)^-1 * bx[n:] + \n", + " # D1 * ( I + (D2-D1)*(D1+D2)^-1 ) * bzl[:n] - \n", + " # D2 * ( I - (D2-D1)*(D1+D2)^-1 ) * bzl[n:] )\n", + " \n", + " blas.gemv(Asc, x, v)\n", + " lapack.potrs(S, v)\n", + " \n", + " # x[:n] = D^-1 * ( rhs - A'*v ).\n", + " blas.gemv(Asc, v, x, alpha=-1.0, beta=1.0, trans='T')\n", + " x[:n] = div(x[:n], ds)\n", + "\n", + " # x[n:] = (D1+D2)^-1 * ( bx[n:] - D1*bzl[:n] - D2*bzl[n:] ) \n", + " # - (D2-D1)*(D1+D2)^-1 * x[:n] \n", + " x[n:] = div( x[n:] - mul(d1, z[:n]) - mul(d2, z[n:]), d1+d2 )\\\n", + " - mul( d3, x[:n] )\n", + " \n", + " # zl[:n] = D1^1/2 * ( x[:n] - x[n:] - bzl[:n] )\n", + " # zl[n:] = D2^1/2 * ( -x[:n] - x[n:] - bzl[n:] ).\n", + " z[:n] = mul( W['di'][:n], x[:n] - x[n:] - z[:n] ) \n", + " z[n:] = mul( W['di'][n:], -x[:n] - x[n:] - z[n:] ) \n", + "\n", + " return g\n", + "\n", + " return solvers.coneqp(P, q, G, h, kktsolver = Fkkt)['x'][:n]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we call the above functions and solve the problem, as done here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from cvxopt import matrix, normal\n", + "\n", + "X = matrix( [ [ 2, 0, 1], [0, 1, 3]])\n", + "y = matrix( [4, 2, 3])\n", + "x = l1regls(X,y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**More text will be added to this example.**\n", + "\n", + "## Linking the regression analysis with a statistical interpretation\n", + "\n", + "We will now couple the discussions of ordinary least squares, Ridge\n", + "and Lasso regression with a statistical interpretation, that is we\n", + "move from a linear algebra analysis to a statistical analysis. In\n", + "particular, we will focus on what the regularization terms can result\n", + "in. We will amongst other things show that the regularization\n", + "parameter can reduce considerably the variance of the parameters\n", + "$\\beta$.\n", + "\n", + "\n", + "The\n", + "advantage of doing linear regression is that we actually end up with\n", + "analytical expressions for several statistical quantities. \n", + "Standard least squares and Ridge regression allow us to\n", + "derive quantities like the variance and other expectation values in a\n", + "rather straightforward way.\n", + "\n", + "\n", + "It is assumed that $\\varepsilon_i\n", + "\\sim \\mathcal{N}(0, \\sigma^2)$ and the $\\varepsilon_{i}$ are\n", + "independent, i.e.:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*} \n", + "\\mbox{Cov}(\\varepsilon_{i_1},\n", + "\\varepsilon_{i_2}) & = \\left\\{ \\begin{array}{lcc} \\sigma^2 & \\mbox{if}\n", + "& i_1 = i_2, \\\\ 0 & \\mbox{if} & i_1 \\not= i_2. \\end{array} \\right.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The randomness of $\\varepsilon_i$ implies that\n", + "$\\mathbf{y}_i$ is also a random variable. In particular,\n", + "$\\mathbf{y}_i$ is normally distributed, because $\\varepsilon_i \\sim\n", + "\\mathcal{N}(0, \\sigma^2)$ and $\\mathbf{X}_{i,\\ast} \\, \\boldsymbol{\\beta}$ is a\n", + "non-random scalar. To specify the parameters of the distribution of\n", + "$\\mathbf{y}_i$ we need to calculate its first two moments. \n", + "\n", + "Recall that $\\boldsymbol{X}$ is a matrix of dimensionality $n\\times p$. The\n", + "notation above $\\mathbf{X}_{i,\\ast}$ means that we are looking at the\n", + "row number $i$ and perform a sum over all values $p$.\n", + "\n", + "\n", + "\n", + "The assumption we have made here can be summarized as (and this is going to be useful when we discuss the bias-variance trade off)\n", + "that there exists a function $f(\\boldsymbol{x})$ and a normal distributed error $\\boldsymbol{\\varepsilon}\\sim \\mathcal{N}(0, \\sigma^2)$\n", + "which describe our data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{y} = f(\\boldsymbol{x})+\\boldsymbol{\\varepsilon}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We approximate this function with our model from the solution of the linear regression equations, that is our\n", + "function $f$ is approximated by $\\boldsymbol{\\tilde{y}}$ where we want to minimize $(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2$, our MSE, with" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\tilde{y}} = \\boldsymbol{X}\\boldsymbol{\\beta}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can calculate the expectation value of $\\boldsymbol{y}$ for a given element $i$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*} \n", + "\\mathbb{E}(y_i) & =\n", + "\\mathbb{E}(\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}) + \\mathbb{E}(\\varepsilon_i)\n", + "\\, \\, \\, = \\, \\, \\, \\mathbf{X}_{i, \\ast} \\, \\beta, \n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "while\n", + "its variance is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*} \\mbox{Var}(y_i) & = \\mathbb{E} \\{ [y_i\n", + "- \\mathbb{E}(y_i)]^2 \\} \\, \\, \\, = \\, \\, \\, \\mathbb{E} ( y_i^2 ) -\n", + "[\\mathbb{E}(y_i)]^2 \\\\ & = \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\,\n", + "\\beta + \\varepsilon_i )^2] - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \\\\ &\n", + "= \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2 \\varepsilon_i\n", + "\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} + \\varepsilon_i^2 ] - ( \\mathbf{X}_{i,\n", + "\\ast} \\, \\beta)^2 \\\\ & = ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2\n", + "\\mathbb{E}(\\varepsilon_i) \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} +\n", + "\\mathbb{E}(\\varepsilon_i^2 ) - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \n", + "\\\\ & = \\mathbb{E}(\\varepsilon_i^2 ) \\, \\, \\, = \\, \\, \\,\n", + "\\mbox{Var}(\\varepsilon_i) \\, \\, \\, = \\, \\, \\, \\sigma^2. \n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hence, $y_i \\sim \\mathcal{N}( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}, \\sigma^2)$, that is $\\boldsymbol{y}$ follows a normal distribution with \n", + "mean value $\\boldsymbol{X}\\boldsymbol{\\beta}$ and variance $\\sigma^2$ (not be confused with the singular values of the SVD). \n", + "\n", + "\n", + "With the OLS expressions for the parameters $\\boldsymbol{\\beta}$ we can evaluate the expectation value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}(\\boldsymbol{\\beta}) = \\mathbb{E}[ (\\mathbf{X}^{\\top} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbb{E}[ \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\mathbf{X}^{T}\\mathbf{X}\\boldsymbol{\\beta}=\\boldsymbol{\\beta}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This means that the estimator of the regression parameters is unbiased.\n", + "\n", + "We can also calculate the variance\n", + "\n", + "The variance of $\\boldsymbol{\\beta}$ is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{eqnarray*}\n", + "\\mbox{Var}(\\boldsymbol{\\beta}) & = & \\mathbb{E} \\{ [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})] [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})]^{T} \\}\n", + "\\\\\n", + "& = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y} - \\boldsymbol{\\beta}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y} - \\boldsymbol{\\beta}]^{T} \\}\n", + "\\\\\n", + "% & = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y}]^{T} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "% \\\\\n", + "% & = & \\mathbb{E} \\{ (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y} \\, \\mathbf{Y}^{T} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "% \\\\\n", + "& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\mathbb{E} \\{ \\mathbf{Y} \\, \\mathbf{Y}^{T} \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "\\\\\n", + "& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\{ \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} + \\sigma^2 \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "% \\\\\n", + "% & = & (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^T \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T % \\mathbf{X})^{-1}\n", + "% \\\\\n", + "% & & + \\, \\, \\sigma^2 \\, (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\boldsymbol{\\beta}^T\n", + "\\\\\n", + "& = & \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} + \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "\\, \\, \\, = \\, \\, \\, \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1},\n", + "\\end{eqnarray*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have used that $\\mathbb{E} (\\mathbf{Y} \\mathbf{Y}^{T}) =\n", + "\\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} +\n", + "\\sigma^2 \\, \\mathbf{I}_{nn}$. From $\\mbox{Var}(\\boldsymbol{\\beta}) = \\sigma^2\n", + "\\, (\\mathbf{X}^{T} \\mathbf{X})^{-1}$, one obtains an estimate of the\n", + "variance of the estimate of the $j$-th regression coefficient:\n", + "$\\boldsymbol{\\sigma}^2 (\\boldsymbol{\\beta}_j ) = \\boldsymbol{\\sigma}^2 [(\\mathbf{X}^{T} \\mathbf{X})^{-1}]_{jj} $. This may be used to\n", + "construct a confidence interval for the estimates.\n", + "\n", + "\n", + "In a similar way, we can obtain analytical expressions for say the\n", + "expectation values of the parameters $\\boldsymbol{\\beta}$ and their variance\n", + "when we employ Ridge regression, allowing us again to define a confidence interval. \n", + "\n", + "It is rather straightforward to show that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E} \\big[ \\boldsymbol{\\beta}^{\\mathrm{Ridge}} \\big]=(\\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I}_{pp})^{-1} (\\mathbf{X}^{\\top} \\mathbf{X})\\boldsymbol{\\beta}^{\\mathrm{OLS}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see clearly that \n", + "$\\mathbb{E} \\big[ \\boldsymbol{\\beta}^{\\mathrm{Ridge}} \\big] \\not= \\boldsymbol{\\beta}^{\\mathrm{OLS}}$ for any $\\lambda > 0$. We say then that the ridge estimator is biased.\n", + "\n", + "We can also compute the variance as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mbox{Var}[\\boldsymbol{\\beta}^{\\mathrm{Ridge}}]=\\sigma^2[ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1} \\mathbf{X}^{T} \\mathbf{X} \\{ [ \\mathbf{X}^{\\top} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and it is easy to see that if the parameter $\\lambda$ goes to infinity then the variance of Ridge parameters $\\boldsymbol{\\beta}$ goes to zero. \n", + "\n", + "With this, we can compute the difference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mbox{Var}[\\boldsymbol{\\beta}^{\\mathrm{OLS}}]-\\mbox{Var}(\\boldsymbol{\\beta}^{\\mathrm{Ridge}})=\\sigma^2 [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}[ 2\\lambda\\mathbf{I} + \\lambda^2 (\\mathbf{X}^{T} \\mathbf{X})^{-1} ] \\{ [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The difference is non-negative definite since each component of the\n", + "matrix product is non-negative definite. \n", + "This means the variance we obtain with the standard OLS will always for $\\lambda > 0$ be larger than the variance of $\\boldsymbol{\\beta}$ obtained with the Ridge estimator. This has interesting consequences when we discuss the so-called bias-variance trade-off below. \n", + "\n", + "\n", + "\n", + "## Deriving OLS from a probability distribution\n", + "\n", + "Our basic assumption when we derived the OLS equations was to assume\n", + "that our output is determined by a given continuous function\n", + "$f(\\boldsymbol{x})$ and a random noise $\\boldsymbol{\\epsilon}$ given by the normal\n", + "distribution with zero mean value and an undetermined variance\n", + "$\\sigma^2$.\n", + "\n", + "We found above that the outputs $\\boldsymbol{y}$ have a mean value given by\n", + "$\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$ and variance $\\sigma^2$. Since the entries to\n", + "the design matrix are not stochastic variables, we can assume that the\n", + "probability distribution of our targets is also a normal distribution\n", + "but now with mean value $\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}}$. This means that a\n", + "single output $y_i$ is given by the Gaussian distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i\\sim \\mathcal{N}(\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta}, \\sigma^2)=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We assume now that the various $y_i$ values are stochastically distributed according to the above Gaussian distribution. \n", + "We define this distribution as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(y_i, \\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which reads as finding the likelihood of an event $y_i$ with the input variables $\\boldsymbol{X}$ given the parameters (to be determined) $\\boldsymbol{\\beta}$.\n", + "\n", + "Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event $\\boldsymbol{y}$ as the product of the single events, that is we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{y},\\boldsymbol{X}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}=\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will write this in a more compact form reserving $\\boldsymbol{D}$ for the domain of events, including the ouputs (targets) and the inputs. That is\n", + "in case we have a simple one-dimensional input and output case" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the more general case the various inputs should be replaced by the possible features represented by the input data set $\\boldsymbol{X}$. \n", + "We can now rewrite the above probability as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is a conditional probability (see below) and reads as the\n", + "likelihood of a domain of events $\\boldsymbol{D}$ given a set of parameters\n", + "$\\boldsymbol{\\beta}$.\n", + "\n", + "\n", + "In statistics, maximum likelihood estimation (MLE) is a method of\n", + "estimating the parameters of an assumed probability distribution,\n", + "given some observed data. This is achieved by maximizing a likelihood\n", + "function so that, under the assumed statistical model, the observed\n", + "data is the most probable. \n", + "\n", + "\n", + "We will assume here that our events are given by the above Gaussian\n", + "distribution and we will determine the optimal parameters $\\beta$ by\n", + "maximizing the above PDF. However, computing the derivatives of a\n", + "product function is cumbersome and can easily lead to overflow and/or\n", + "underflowproblems, with potentials for loss of numerical precision.\n", + "\n", + "\n", + "In practice, it is more convenient to maximize the logarithm of the\n", + "PDF because it is a monotonically increasing function of the argument.\n", + "Alternatively, and this will be our option, we will minimize the\n", + "negative of the logarithm since this is a monotonically decreasing\n", + "function.\n", + "\n", + "Note also that maximization/minimization of the logarithm of the PDF\n", + "is equivalent to the maximization/minimization of the function itself.\n", + "\n", + "\n", + "\n", + "\n", + "We could now define a new cost function to minimize, namely the negative logarithm of the above PDF" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta}=-\\log{\\prod_{i=0}^{n-1}p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})}=-\\sum_{i=0}^{n-1}\\log{p(y_i,\\boldsymbol{X}\\vert\\boldsymbol{\\beta})},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta}=\\frac{n}{2}\\log{2\\pi\\sigma^2}+\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking the derivative of the *new* cost function with respect to the parameters $\\beta$ we recognize our familiar OLS equation, namely" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta}\\right) =0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which leads to the well-known OLS equation for the optimal paramters $\\beta$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}^{\\mathrm{OLS}}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}!\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we make a similar analysis for Ridge and Lasso regression, we need a short reminder on statistics. \n", + "\n", + "\n", + "A central theorem in statistics is Bayes' theorem. This theorem plays a similar role as the good old Pythagoras' theorem in geometry.\n", + "Bayes' theorem is extremely simple to derive. But to do so we need some basic axioms from statistics.\n", + "\n", + "Assume we have two domains of events $X=[x_0,x_1,\\dots,x_{n-1}]$ and $Y=[y_0,y_1,\\dots,y_{n-1}]$.\n", + "\n", + "We define also the likelihood for $X$ and $Y$ as $p(X)$ and $p(Y)$ respectively.\n", + "The likelihood of a specific event $x_i$ (or $y_i$) is then written as $p(X=x_i)$ or just $p(x_i)=p_i$. \n", + "\n", + "The union of events is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X \\cup Y)= p(X)+p(Y)-p(X \\cap Y).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The product rule (aka joint probability) is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X \\cup Y)= p(X,Y)= p(X\\vert Y)p(Y)=p(Y\\vert X)p(X),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we read $p(X\\vert Y)$ as the likelihood of obtaining $X$ given $Y$.\n", + "\n", + "If we have independent events then $p(X,Y)=p(X)p(Y)$.\n", + "\n", + "\n", + "\n", + "The marginal probability is defined in terms of only one of the set of variables $X,Y$. For a discrete probability we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X)=\\sum_{i=0}^{n-1}p(X,Y=y_i)=\\sum_{i=0}^{n-1}p(X\\vert Y=y_i)p(Y=y_i)=\\sum_{i=0}^{n-1}p(X\\vert y_i)p(y_i).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The conditional probability, if $p(Y) > 0$, is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)}=\\frac{p(X,Y)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we combine the conditional probability with the marginal probability and the standard product rule, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X\\vert Y)= \\frac{p(X,Y)}{p(Y)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which we can rewrite as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X\\vert Y)= \\frac{p(X,Y)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)}=\\frac{p(Y\\vert X)p(X)}{\\sum_{i=0}^{n-1}p(Y\\vert X=x_i)p(x_i)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is Bayes' theorem. It allows us to evaluate the uncertainty in in $X$ after we have observed $Y$. We can easily interchange $X$ with $Y$. \n", + "\n", + "\n", + "The quantity $p(Y\\vert X)$ on the right-hand side of the theorem is\n", + "evaluated for the observed data $Y$ and can be viewed as a function of\n", + "the parameter space represented by $X$. This function is not\n", + "necesseraly normalized and is normally called the likelihood function.\n", + "\n", + "The function $p(X)$ on the right hand side is called the prior while\n", + "the function on the left hand side is the called the posterior\n", + "probability. The denominator on the right hand side serves as a\n", + "normalization factor for the posterior distribution.\n", + "\n", + "Let us try to illustrate Bayes' theorem through an example.\n", + "\n", + "\n", + "Let us suppose that you are undergoing a series of mammography scans\n", + "in order to rule out possible breast cancer cases. We define the\n", + "sensitivity for a positive event by the variable $X$. It takes binary\n", + "values with $X=1$ representing a positive event and $X=0$ being a\n", + "negative event. We reserve $Y$ as a classification parameter for\n", + "either a negative or a positive breast cancer confirmation. (Short\n", + "note on wordings: positive here means having breast cancer, although\n", + "none of us would consider this being a positive thing).\n", + "\n", + "We let $Y=1$ represent the the case of having breast cancer and $Y=0$ as not.\n", + "\n", + "Let us assume that if you have breast cancer, the test will be positive with a probability of $0.8$ (the numbers here are all made up),\n", + "that is we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X=1\\vert Y=1) =0.8.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This obviously sounds scary since many would conclude that if the test\n", + "is positive, there is a likelihood of $80\\%$ for having cancer. It is\n", + "however not correct, as the following Bayesian analysis shows. The correct question to pose is *what is the probability of having breast cancer in case of a positive test?*\n", + "We are thus interested in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(Y=1\\vert X=1),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "instead of $p(X=1\\vert Y=1)$.\n", + "\n", + "\n", + "\n", + "If we look at various national surveys on breast cancer, the general\n", + "likelihood of developing breast cancer is a very small number. Let us\n", + "assume that the prior probability in the population as a whole is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(Y=1) =0.004.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need also to account for the fact that the test may produce a false\n", + "positive result (false alarm). Let us here assume that we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(X=1\\vert Y=0) =0.1.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using Bayes' theorem we can then find the posterior probability that\n", + "the person has breast cancer in case of a positive test, that is we\n", + "can compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "p(Y=1\\vert X=1)=\\frac{p(X=1\\vert Y=1)p(Y=1)}{p(X=1\\vert Y=1)p(Y=1)+p(X=1\\vert Y=0)p(Y=0)}= \n", + "\\label{_auto2} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " \\frac{0.8\\times 0.004}{0.8\\times 0.004+0.1\\times 0.996}=0.031.\n", + "\\label{_auto3} \\tag{3}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That is, in case of a positive test, there is only a $3\\%$ chance of having breast cancer!\n", + "\n", + "\n", + "\n", + "## Bayes' Theorem and Ridge and Lasso Regression\n", + "\n", + "Hitherto we have discussed Ridge and Lasso regression in terms of a\n", + "linear analysis. This may to many of you feel rather technical and\n", + "perhaps not that intuitive. The question is whether we can develop a\n", + "more intuitive way of understanding what Ridge and Lasso express.\n", + "\n", + "Before we proceed let us perform a Ridge, Lasso and OLS analysis of a polynomial fit. \n", + "\n", + "\n", + "We will play around with a study of the values for the optimal\n", + "parameters $\\boldsymbol{\\beta}$ using OLS, Ridge and Lasso regression. For\n", + "OLS, you will notice as function of the noise and polynomial degree,\n", + "that the parameters $\\beta$ will fluctuate from order to order in the\n", + "polynomial fit and that for larger and larger polynomial degrees of\n", + "freedom, the parameters will tend to increase in value for OLS.\n", + "\n", + "For Ridge and Lasso regression, the higher order parameters will\n", + "typically be reduced, providing thereby less fluctuations from one\n", + "order to another one." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn import linear_model\n", + "\n", + "def R2(y_data, y_model):\n", + " return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2)\n", + "def MSE(y_data,y_model):\n", + " n = np.size(y_model)\n", + " return np.sum((y_data-y_model)**2)/n\n", + "\n", + "# Make data set.\n", + "n = 10000\n", + "x = np.random.rand(n)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)\n", + "\n", + "Maxpolydegree = 5\n", + "X = np.zeros((len(x),Maxpolydegree))\n", + "X[:,0] = 1.0\n", + "\n", + "for polydegree in range(1, Maxpolydegree):\n", + " for degree in range(polydegree):\n", + " X[:,degree] = x**(degree)\n", + "\n", + "\n", + "# We split the data in test and training data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", + "\n", + "# matrix inversion to find beta\n", + "OLSbeta = np.linalg.pinv(X_train.T @ X_train) @ X_train.T @ y_train\n", + "print(OLSbeta)\n", + "ypredictOLS = X_test @ OLSbeta\n", + "print(\"Test MSE OLS\")\n", + "print(MSE(y_test,ypredictOLS))\n", + "# Repeat now for Lasso and Ridge regression and various values of the regularization parameter using Scikit-Learn\n", + "# Decide which values of lambda to use\n", + "nlambdas = 4\n", + "MSERidgePredict = np.zeros(nlambdas)\n", + "MSELassoPredict = np.zeros(nlambdas)\n", + "lambdas = np.logspace(-3, 1, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " # Make the fit using Ridge and Lasso\n", + " RegRidge = linear_model.Ridge(lmb,fit_intercept=False)\n", + " RegRidge.fit(X_train,y_train)\n", + " RegLasso = linear_model.Lasso(lmb,fit_intercept=False)\n", + " RegLasso.fit(X_train,y_train)\n", + " # and then make the prediction\n", + " ypredictRidge = RegRidge.predict(X_test)\n", + " ypredictLasso = RegLasso.predict(X_test)\n", + " # Compute the MSE and print it\n", + " MSERidgePredict[i] = MSE(y_test,ypredictRidge)\n", + " MSELassoPredict[i] = MSE(y_test,ypredictLasso)\n", + "# print(lmb,RegRidge.coef_)\n", + "# print(lmb,RegLasso.coef_)\n", + "# Now plot the results\n", + "plt.figure()\n", + "plt.plot(np.log10(lambdas), MSERidgePredict, 'b', label = 'MSE Ridge Test')\n", + "plt.plot(np.log10(lambdas), MSELassoPredict, 'r', label = 'MSE Lasso Test')\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('MSE')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How can we understand this?\n", + "\n", + "Let us write out the values of the coefficients $\\beta_i$ as functions\n", + "of the polynomial degree and noise. We will focus only on the Ridge\n", + "results and some few selected values of the hyperparameter $\\lambda$.\n", + "\n", + "If we don't include any noise and run this code for different values\n", + "of the polynomial degree, we notice that the results for $\\beta_i$ do\n", + "not show great changes from one order to the next. This is an\n", + "indication that for higher polynomial orders, our parameters become\n", + "less important.\n", + "\n", + "If we however add noise, what happens is that the polynomial fit is\n", + "trying to adjust the fit to traverse in the best possible way all data\n", + "points. This can lead to large fluctuations in the parameters\n", + "$\\beta_i$ as functions of polynomial order. It will also be reflected\n", + "in a larger value of the variance of each parameter $\\beta_i$. What\n", + "Ridge regression (and Lasso as well) are doing then is to try to\n", + "quench the fluctuations in the parameters of $\\beta_i$ which have a\n", + "large variance (normally for higher orders in the polynomial)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from IPython.display import display\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn import linear_model\n", + "\n", + "# Make data set.\n", + "n = 1000\n", + "x = np.random.rand(n)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n)\n", + "\n", + "Maxpolydegree = 5\n", + "X = np.zeros((len(x),Maxpolydegree))\n", + "X[:,0] = 1.0\n", + "\n", + "for polydegree in range(1, Maxpolydegree):\n", + " for degree in range(polydegree):\n", + " X[:,degree] = x**(degree)\n", + "\n", + "\n", + "# We split the data in test and training data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", + "\n", + "# Decide which values of lambda to use\n", + "nlambdas = 5\n", + "lambdas = np.logspace(-3, 2, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " # Make the fit using Ridge only\n", + " RegRidge = linear_model.Ridge(lmb,fit_intercept=False)\n", + " RegRidge.fit(X_train,y_train)\n", + " # and then make the prediction\n", + " ypredictRidge = RegRidge.predict(X_test)\n", + " Coeffs = np.array(RegRidge.coef_)\n", + " BetaValues = pd.DataFrame(Coeffs)\n", + " BetaValues.columns = ['beta']\n", + " display(BetaValues)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As an exercise, repeat these calculations with ordinary least squares\n", + "only with and without noise. Calculate thereafter the variance of the\n", + "parameters $\\beta_j$ as function of polynomial order and of the added\n", + "noise. Here we recommend to use $\\sigma^2=1$ as variance for the\n", + "added noise (which follows a normal distribution with mean value zero).\n", + "Comment your results. If you have a large noise term, do the parameters $\\beta_j$ vary more as function\n", + "model complexity? And what about their variance? \n", + "\n", + "\n", + "\n", + "\n", + "## Linking Bayes' Theorem with Ridge and Lasso Regression\n", + "\n", + "We have seen that Ridge regression suppresses those features which\n", + "have a small singular value. This corresponds to a feature which exhibits\n", + "a large variance in the parameters $\\beta_j$.\n", + "Our analysis hitherto has been based on linear algebra. To add to our intuition, we will use\n", + "Bayes' theorem in order to deepen our understanding of Ridge and Lasso regression. \n", + "\n", + "For ordinary least squares we postulated that the maximum likelihood for the domain of events $\\boldsymbol{D}$ (one-dimensional case)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\\dots, (x_{n-1},y_{n-1})],\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In Bayes' theorem this function plays the role of the so-called likelihood. We could now ask the question what is the posterior probability of a parameter set $\\boldsymbol{\\beta}$ given a domain of events $\\boldsymbol{D}$? That is, how can we define the posterior probability" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Bayes' theorem comes to our rescue here since (omitting the normalization constant)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})\\propto p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})p(\\boldsymbol{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have a model for $p(\\boldsymbol{D}\\vert\\boldsymbol{\\beta})$ but need one for the **prior** $p(\\boldsymbol{\\beta}$! \n", + "\n", + "\n", + "\n", + "With the posterior probability defined by a likelihood which we have\n", + "already modeled and an unknown prior, we are now ready to make\n", + "additional models for the prior.\n", + "\n", + "We can, based on our discussions of the variance of $\\boldsymbol{\\beta}$ and\n", + "the mean value, assume that the prior for the values $\\boldsymbol{\\beta}$ is\n", + "given by a Gaussian with mean value zero and variance $\\tau^2$, that\n", + "is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our posterior probability becomes then (omitting the normalization factor which is just a constant)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{\\beta\\vert\\boldsymbol{D})}=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\beta_j^2}{2\\tau^2}\\right)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now optimize this quantity with respect to $\\boldsymbol{\\beta}$. As we\n", + "did for OLS, this is most conveniently done by taking the negative\n", + "logarithm of the posterior probability. Doing so and leaving out the\n", + "terms that do not depend on $\\beta$, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{2\\tau^2}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and replacing $1/2\\tau^2$ with $\\lambda$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta})=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_2^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is our Ridge cost function! Nice, isn't it?\n", + "\n", + "\n", + "To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution ([Laplace in this case](https://en.wikipedia.org/wiki/Laplace_distribution)) with zero mean value, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{\\beta})=\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our posterior probability becomes then (omitting the normalization factor which is just a constant)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{\\beta}\\vert\\boldsymbol{D})=\\prod_{i=0}^{n-1}\\frac{1}{\\sqrt{2\\pi\\sigma^2}}\\exp{\\left[-\\frac{(y_i-\\boldsymbol{X}_{i,*}\\boldsymbol{\\beta})^2}{2\\sigma^2}\\right]}\\prod_{j=0}^{p-1}\\exp{\\left(-\\frac{\\vert\\beta_j\\vert}{\\tau}\\right)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking the negative\n", + "logarithm of the posterior probability and leaving out the\n", + "constants terms that do not depend on $\\beta$, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta}=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\frac{1}{\\tau}\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and replacing $1/\\tau$ with $\\lambda$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta}=\\frac{\\vert\\vert (\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\beta})\\vert\\vert_2^2}{2\\sigma^2}+\\lambda\\vert\\vert\\boldsymbol{\\beta}\\vert\\vert_1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is our Lasso cost function! \n", + "\n", + "\n", + "Plotting these prior functions shows us that we can use the parameter\n", + "$\\lambda$ to shrink or increase the role of a given parameter\n", + "$\\beta_j$. The variance for the Laplace distribution is\n", + "$2\\tau^2=1/\\lambda$ while for the Gaussian distribution it is\n", + "$\\sigma^2=1/(2\\lambda)$. Thus, increasing the variance means\n", + "decreasing $\\lambda$ and shrinking the variance means increasing\n", + "$\\lamdbda$. When we increase $\\lambda$, this corresponds to shrinking the role of less important features (small singular values)." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter2.py b/doc/LectureNotes/_build/jupyter_execute/chapter2.py new file mode 100644 index 000000000..6c5959b71 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter2.py @@ -0,0 +1,2662 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Ridge and Lasso Regression +# +# +# +# ## Mathematical Interpretation of Ordinary Least Squares +# +# What is presented here is a mathematical analysis of various regression algorithms (ordinary least squares, Ridge and Lasso Regression). The analysis is based on an important algorithm in linear algebra, the so-called Singular Value Decomposition (SVD). +# +# +# We have shown that in ordinary least squares (OLS) the optimal parameters $\beta$ are given by + +# $$ +# \hat{\boldsymbol{\beta}}_{\mathrm{OLS}} = \left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}. +# $$ + +# The **hat** over $\boldsymbol{\beta}$ means we have the optimal parameters after minimization of the cost function. +# +# This means that our best model is defined as + +# $$ +# \tilde{\boldsymbol{y}}=\boldsymbol{X}\hat{\boldsymbol{\beta}} = \boldsymbol{X}\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}. +# $$ + +# We now define a matrix + +# $$ +# \boldsymbol{A}=\boldsymbol{X}\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T. +# $$ + +# We can rewrite + +# $$ +# \tilde{\boldsymbol{y}}=\boldsymbol{X}\hat{\boldsymbol{\beta}} = \boldsymbol{A}\boldsymbol{y}. +# $$ + +# The matrix $\boldsymbol{A}$ has the important property that $\boldsymbol{A}^2=\boldsymbol{A}$. This is the definition of a [projection matrix](https://en.wikipedia.org/wiki/Projection_matrix). +# We can then interpret our optimal model $\tilde{\boldsymbol{y}}$ as being represented by an orthogonal projection of $\boldsymbol{y}$ onto a space defined by the column vectors of $\boldsymbol{X}$. In our case here the matrix $\boldsymbol{A}$ is a square matrix. If it is a general rectangular matrix we have an oblique projection matrix. +# +# +# +# +# We have defined the residual error as + +# $$ +# \boldsymbol{\epsilon}=\boldsymbol{y}-\tilde{\boldsymbol{y}}=\left[\boldsymbol{I}-\boldsymbol{X}\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\right]\boldsymbol{y}. +# $$ + +# The residual errors are then the projections of $\boldsymbol{y}$ onto the orthogonal component of the space defined by the column vectors of $\boldsymbol{X}$. +# +# +# If the matrix $\boldsymbol{X}$ is an orthogonal (or unitary in case of complex values) matrix, we have + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=\boldsymbol{X}\boldsymbol{X}^T = \boldsymbol{I}. +# $$ + +# In this case the matrix $\boldsymbol{A}$ becomes + +# $$ +# \boldsymbol{A}=\boldsymbol{X}\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T)=\boldsymbol{I}, +# $$ + +# and we have the obvious case + +# $$ +# \boldsymbol{\epsilon}=\boldsymbol{y}-\tilde{\boldsymbol{y}}=0. +# $$ + +# This serves also as a useful test of our codes. +# +# +# +# +# ## The singular value decomposition +# +# +# The examples we have looked at so far are cases where we normally can +# invert the matrix $\boldsymbol{X}^T\boldsymbol{X}$. Using a polynomial expansion where we fit of various functions leads to +# row vectors of the design matrix which are essentially orthogonal due +# to the polynomial character of our model. Obtaining the inverse of the +# design matrix is then often done via a so-called LU, QR or Cholesky +# decomposition. +# +# +# As we will also see in the first project, +# this may +# however not the be case in general and a standard matrix inversion +# algorithm based on say LU, QR or Cholesky decomposition may lead to singularities. We will see examples of this below. +# +# There is however a way to circumvent this problem and also +# gain some insights about the ordinary least squares approach, and +# later shrinkage methods like Ridge and Lasso regressions. +# +# This is given by the **Singular Value Decomposition** (SVD) algorithm, +# perhaps the most powerful linear algebra algorithm. The SVD provides +# a numerically stable matrix decomposition that is used in a large +# swath oc applications and the decomposition is always stable +# numerically. +# +# In machine learning it plays a central role in dealing with for +# example design matrices that may be near singular or singular. +# Furthermore, as we will see here, the singular values can be related +# to the covariance matrix (and thereby the correlation matrix) and in +# turn the variance of a given quantity. It plays also an important role +# in the principal component analysis where high-dimensional data can be +# reduced to the statistically relevant features. +# +# +# +# +# One of the typical problems we encounter with linear regression, in particular +# when the matrix $\boldsymbol{X}$ (our so-called design matrix) is high-dimensional, +# are problems with near singular or singular matrices. The column vectors of $\boldsymbol{X}$ +# may be linearly dependent, normally referred to as super-collinearity. +# This means that the matrix may be rank deficient and it is basically impossible to +# to model the data using linear regression. As an example, consider the matrix + +# $$ +# \begin{align*} +# \mathbf{X} & = \left[ +# \begin{array}{rrr} +# 1 & -1 & 2 +# \\ +# 1 & 0 & 1 +# \\ +# 1 & 2 & -1 +# \\ +# 1 & 1 & 0 +# \end{array} \right] +# \end{align*} +# $$ + +# The columns of $\boldsymbol{X}$ are linearly dependent. We see this easily since the +# the first column is the row-wise sum of the other two columns. The rank (more correct, +# the column rank) of a matrix is the dimension of the space spanned by the +# column vectors. Hence, the rank of $\mathbf{X}$ is equal to the number +# of linearly independent columns. In this particular case the matrix has rank 2. +# +# Super-collinearity of an $(n \times p)$-dimensional design matrix $\mathbf{X}$ implies +# that the inverse of the matrix $\boldsymbol{X}^T\boldsymbol{X}$ (the matrix we need to invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this + +# $$ +# \begin{align*} +# \boldsymbol{X} & = \left[ +# \begin{array}{rr} +# 1 & -1 +# \\ +# 1 & -1 +# \end{array} \right]. +# \end{align*} +# $$ + +# We see easily that $\mbox{det}(\boldsymbol{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \times (-1) - 1 \times (-1) = 0$. Hence, $\mathbf{X}$ is singular and its inverse is undefined. +# This is equivalent to saying that the matrix $\boldsymbol{X}$ has at least an eigenvalue which is zero. +# +# +# +# If our design matrix $\boldsymbol{X}$ which enters the linear regression problem + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{\beta} = (\boldsymbol{X}^{T} \boldsymbol{X})^{-1} \boldsymbol{X}^{T} \boldsymbol{y}, +# \label{_auto1} \tag{1} +# \end{equation} +# $$ + +# has linearly dependent column vectors, we will not be able to compute the inverse +# of $\boldsymbol{X}^T\boldsymbol{X}$ and we cannot find the parameters (estimators) $\beta_i$. +# The estimators are only well-defined if $(\boldsymbol{X}^{T}\boldsymbol{X})^{-1}$ exits. +# This is more likely to happen when the matrix $\boldsymbol{X}$ is high-dimensional. In this case it is likely to encounter a situation where +# the regression parameters $\beta_i$ cannot be estimated. +# +# A cheap *ad hoc* approach is simply to add a small diagonal component to the matrix to invert, that is we change + +# $$ +# \boldsymbol{X}^{T} \boldsymbol{X} \rightarrow \boldsymbol{X}^{T} \boldsymbol{X}+\lambda \boldsymbol{I}, +# $$ + +# where $\boldsymbol{I}$ is the identity matrix. When we discuss **Ridge** regression this is actually what we end up evaluating. The parameter $\lambda$ is called a hyperparameter. More about this later. +# +# +# +# +# ## Basic math of the SVD +# +# +# From standard linear algebra we know that a square matrix $\boldsymbol{X}$ can be diagonalized if and only it is +# a so-called [normal matrix](https://en.wikipedia.org/wiki/Normal_matrix), that is if $\boldsymbol{X}\in {\mathbb{R}}^{n\times n}$ +# we have $\boldsymbol{X}\boldsymbol{X}^T=\boldsymbol{X}^T\boldsymbol{X}$ or if $\boldsymbol{X}\in {\mathbb{C}}^{n\times n}$ we have $\boldsymbol{X}\boldsymbol{X}^{\dagger}=\boldsymbol{X}^{\dagger}\boldsymbol{X}$. +# The matrix has then a set of eigenpairs + +# $$ +# (\lambda_1,\boldsymbol{u}_1),\dots, (\lambda_n,\boldsymbol{u}_n), +# $$ + +# and the eigenvalues are given by the diagonal matrix + +# $$ +# \boldsymbol{\Sigma}=\mathrm{Diag}(\lambda_1, \dots,\lambda_n). +# $$ + +# The matrix $\boldsymbol{X}$ can be written in terms of an orthogonal/unitary transformation $\boldsymbol{U}$ + +# $$ +# \boldsymbol{X} = \boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T, +# $$ + +# with $\boldsymbol{U}\boldsymbol{U}^T=\boldsymbol{I}$ or $\boldsymbol{U}\boldsymbol{U}^{\dagger}=\boldsymbol{I}$. +# +# Not all square matrices are diagonalizable. A matrix like the one discussed above + +# $$ +# \boldsymbol{X} = \begin{bmatrix} +# 1& -1 \\ +# 1& -1\\ +# \end{bmatrix} +# $$ + +# is not diagonalizable, it is a so-called [defective matrix](https://en.wikipedia.org/wiki/Defective_matrix). It is easy to see that the condition +# $\boldsymbol{X}\boldsymbol{X}^T=\boldsymbol{X}^T\boldsymbol{X}$ is not fulfilled. +# +# +# +# +# +# However, and this is the strength of the SVD algorithm, any general +# matrix $\boldsymbol{X}$ can be decomposed in terms of a diagonal matrix and +# two orthogonal/unitary matrices. The [Singular Value Decompostion +# (SVD) theorem](https://en.wikipedia.org/wiki/Singular_value_decomposition) +# states that a general $m\times n$ matrix $\boldsymbol{X}$ can be written in +# terms of a diagonal matrix $\boldsymbol{\Sigma}$ of dimensionality $m\times n$ +# and two orthognal matrices $\boldsymbol{U}$ and $\boldsymbol{V}$, where the first has +# dimensionality $m \times m$ and the last dimensionality $n\times n$. +# We have then + +# $$ +# \boldsymbol{X} = \boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T +# $$ + +# As an example, the above defective matrix can be decomposed as + +# $$ +# \boldsymbol{X} = \frac{1}{\sqrt{2}}\begin{bmatrix} 1& 1 \\ 1& -1\\ \end{bmatrix} \begin{bmatrix} 2& 0 \\ 0& 0\\ \end{bmatrix} \frac{1}{\sqrt{2}}\begin{bmatrix} 1& -1 \\ 1& 1\\ \end{bmatrix}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T, +# $$ + +# with eigenvalues $\sigma_1=2$ and $\sigma_2=0$. +# The SVD exits always! +# +# The SVD +# decomposition (singular values) gives eigenvalues +# $\sigma_i\geq\sigma_{i+1}$ for all $i$ and for dimensions larger than $i=p$, the +# eigenvalues (singular values) are zero. +# +# In the general case, where our design matrix $\boldsymbol{X}$ has dimension +# $n\times p$, the matrix is thus decomposed into an $n\times n$ +# orthogonal matrix $\boldsymbol{U}$, a $p\times p$ orthogonal matrix $\boldsymbol{V}$ +# and a diagonal matrix $\boldsymbol{\Sigma}$ with $r=\mathrm{min}(n,p)$ +# singular values $\sigma_i\geq 0$ on the main diagonal and zeros filling +# the rest of the matrix. There are at most $p$ singular values +# assuming that $n > p$. In our regression examples for the nuclear +# masses and the equation of state this is indeed the case, while for +# the Ising model we have $p > n$. These are often cases that lead to +# near singular or singular matrices. +# +# The columns of $\boldsymbol{U}$ are called the left singular vectors while the columns of $\boldsymbol{V}$ are the right singular vectors. +# +# +# If we assume that $n > p$, then our matrix $\boldsymbol{U}$ has dimension $n +# \times n$. The last $n-p$ columns of $\boldsymbol{U}$ become however +# irrelevant in our calculations since they are multiplied with the +# zeros in $\boldsymbol{\Sigma}$. +# +# The economy-size decomposition removes extra rows or columns of zeros +# from the diagonal matrix of singular values, $\boldsymbol{\Sigma}$, along with the columns +# in either $\boldsymbol{U}$ or $\boldsymbol{V}$ that multiply those zeros in the expression. +# Removing these zeros and columns can improve execution time +# and reduce storage requirements without compromising the accuracy of +# the decomposition. +# +# If $n > p$, we keep only the first $p$ columns of $\boldsymbol{U}$ and $\boldsymbol{\Sigma}$ has dimension $p\times p$. +# If $p > n$, then only the first $n$ columns of $\boldsymbol{V}$ are computed and $\boldsymbol{\Sigma}$ has dimension $n\times n$. +# The $n=p$ case is obvious, we retain the full SVD. +# In general the economy-size SVD leads to less FLOPS and still conserving the desired accuracy. +# +# ## Codes for the SVD + +# In[1]: + + +import numpy as np +# SVD inversion +def SVD(A): + ''' Takes as input a numpy matrix A and returns inv(A) based on singular value decomposition (SVD). + SVD is numerically more stable than the inversion algorithms provided by + numpy and scipy.linalg at the cost of being slower. + ''' + U, S, VT = np.linalg.svd(A,full_matrices=True) + print('test U') + print( (np.transpose(U) @ U - U @np.transpose(U))) + print('test VT') + print( (np.transpose(VT) @ VT - VT @np.transpose(VT))) + print(U) + print(S) + print(VT) + + D = np.zeros((len(U),len(VT))) + for i in range(0,len(VT)): + D[i,i]=S[i] + return U @ D @ VT + + +X = np.array([ [1.0,-1.0], [1.0,-1.0]]) +#X = np.array([[1, 2], [3, 4], [5, 6]]) + +print(X) +C = SVD(X) +# Print the difference between the original matrix and the SVD one +print(C-X) + + +# The matrix $\boldsymbol{X}$ has columns that are linearly dependent. The first +# column is the row-wise sum of the other two columns. The rank of a +# matrix (the column rank) is the dimension of space spanned by the +# column vectors. The rank of the matrix is the number of linearly +# independent columns, in this case just $2$. We see this from the +# singular values when running the above code. Running the standard +# inversion algorithm for matrix inversion with $\boldsymbol{X}^T\boldsymbol{X}$ results +# in the program terminating due to a singular matrix. +# +# +# +# The $U$, $S$, and $V$ matrices returned from the **svd()** function +# cannot be multiplied directly. +# +# As you can see from the code, the $S$ vector must be converted into a +# diagonal matrix. This may cause a problem as the size of the matrices +# do not fit the rules of matrix multiplication, where the number of +# columns in a matrix must match the number of rows in the subsequent +# matrix. +# +# If you wish to include the zero singular values, you will need to +# resize the matrices and set up a diagonal matrix as done in the above +# example +# +# +# ## Code for SVD and Inversion of Matrices +# +# How do we use the SVD to invert a matrix $\boldsymbol{X}^T\boldsymbol{X}$ which is singular or near singular? +# The simple answer is to use the linear algebra function for the pseudoinverse, that is + +# In[2]: + + +#Ainv = np.linlag.pinv(A) + + +# Let us first look at a matrix which does not causes problems and write our own function where we just use the SVD. + +# In[3]: + + +import numpy as np +# SVD inversion +def SVDinv(A): + ''' Takes as input a numpy matrix A and returns inv(A) based on singular value decomposition (SVD). + SVD is numerically more stable than the inversion algorithms provided by + numpy and scipy.linalg at the cost of being slower. + ''' + U, s, VT = np.linalg.svd(A) + print('test U') + print( (np.transpose(U) @ U - U @np.transpose(U))) + print('test VT') + print( (np.transpose(VT) @ VT - VT @np.transpose(VT))) + + + D = np.zeros((len(U),len(VT))) + D = np.diag(s) + UT = np.transpose(U); V = np.transpose(VT); invD = np.linalg.inv(D) + return np.matmul(V,np.matmul(invD,UT)) + + +#X = np.array([ [1.0, -1.0, 2.0], [1.0, 0.0, 1.0], [1.0, 2.0, -1.0], [1.0, 1.0, 0.0] ]) +# Non-singular square matrix +X = np.array( [ [1,2,3],[2,4,5],[3,5,6]]) +print(X) +A = np.transpose(X) @ X +# Brute force inversion +B = np.linalg.pinv(A) # here we could use np.linalg.inv(A), try it! +C = SVDinv(A) +print(np.abs(B-C)) + + +# Although our matrix to invert $\boldsymbol{X}^T\boldsymbol{X}$ is a square matrix, our matrix may be singular. +# +# The pseudoinverse is the generalization of the matrix inverse for square matrices to +# rectangular matrices where the number of rows and columns are not equal. +# +# It is also called the the Moore-Penrose Inverse after two independent discoverers of the method or the Generalized Inverse. +# It is used for the calculation of the inverse for singular or near singular matrices and for rectangular matrices. +# +# Using the SVD we can obtain the pseudoinverse of a matrix $\boldsymbol{A}$ (labeled here as $\boldsymbol{A}_{\mathrm{PI}}$ + +# $$ +# \boldsymbol{A}_{\mathrm{PI}}= \boldsymbol{V}\boldsymbol{D}_{\mathrm{PI}}\boldsymbol{U}^T, +# $$ + +# where $\boldsymbol{D}_{\mathrm{PI}}$ can be calculated by creating a diagonal matrix from $\boldsymbol{Sigma}$ where we only keep the singular values (the non-zero values). The following code computes the pseudoinvers of the matrix based on the SVD. + +# In[4]: + + +import numpy as np +# SVD inversion +def SVDinv(A): + U, s, VT = np.linalg.svd(A) + # reciprocals of singular values of s + d = 1.0 / s + # create m x n D matrix + D = np.zeros(A.shape) + # populate D with n x n diagonal matrix + D[:A.shape[1], :A.shape[1]] = np.diag(d) + UT = np.transpose(U) + V = np.transpose(VT) + return np.matmul(V,np.matmul(D.T,UT)) + + +A = np.array([ [0.3, 0.4], [0.5, 0.6], [0.7, 0.8],[0.9, 1.0]]) +print(A) +# Brute force inversion of super-collinear matrix +B = np.linalg.pinv(A) +print(B) +# Compare our own algorithm with pinv +C = SVDinv(A) +print(np.abs(C-B)) + + +# As you can see from these examples, our own decomposition based on the SVD agrees the pseudoinverse algorithm provided by **Numpy**. +# +# +# +# +# +# ## Mathematics of the SVD and implications +# +# Let us take a closer look at the mathematics of the SVD and the various implications for machine learning studies. +# +# Our starting point is our design matrix $\boldsymbol{X}$ of dimension $n\times p$ + +# $$ +# \boldsymbol{X}=\begin{bmatrix} +# x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +# x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +# x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +# \dots & \dots & \dots & \dots \dots & \dots \\ +# x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +# x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +# \end{bmatrix}. +# $$ + +# We can SVD decompose our matrix as + +# $$ +# \boldsymbol{X}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T, +# $$ + +# where $\boldsymbol{U}$ is an orthogonal matrix of dimension $n\times n$, meaning that $\boldsymbol{U}\boldsymbol{U}^T=\boldsymbol{U}^T\boldsymbol{U}=\boldsymbol{I}_n$. Here $\boldsymbol{I}_n$ is the unit matrix of dimension $n \times n$. +# +# Similarly, $\boldsymbol{V}$ is an orthogonal matrix of dimension $p\times p$, meaning that $\boldsymbol{V}\boldsymbol{V}^T=\boldsymbol{V}^T\boldsymbol{V}=\boldsymbol{I}_p$. Here $\boldsymbol{I}_n$ is the unit matrix of dimension $p \times p$. +# +# Finally $\boldsymbol{\Sigma}$ contains the singular values $\sigma_i$. This matrix has dimension $n\times p$ and the singular values $\sigma_i$ are all positive. The non-zero values are ordered in descending order, that is + +# $$ +# \sigma_0 > \sigma_1 > \sigma_2 > \dots > \sigma_{p-1} > 0. +# $$ + +# All values beyond $p-1$ are all zero. +# +# +# As an example, consider the following $3\times 2$ example for the matrix $\boldsymbol{\Sigma}$ + +# $$ +# \boldsymbol{\Sigma}= +# \begin{bmatrix} +# 2& 0 \\ +# 0 & 1 \\ +# 0 & 0 \\ +# \end{bmatrix} +# $$ + +# The singular values are $\sigma_0=2$ and $\sigma_1=1$. It is common to rewrite the matrix $\boldsymbol{\Sigma}$ as + +# $$ +# \boldsymbol{\Sigma}= +# \begin{bmatrix} +# \boldsymbol{\tilde{\Sigma}}\\ +# \boldsymbol{0}\\ +# \end{bmatrix}, +# $$ + +# where + +# $$ +# \boldsymbol{\tilde{\Sigma}}= +# \begin{bmatrix} +# 2& 0 \\ +# 0 & 1 \\ +# \end{bmatrix}, +# $$ + +# contains only the singular values. Note also (and we will use this below) that + +# $$ +# \boldsymbol{\Sigma}^T\boldsymbol{\Sigma}= +# \begin{bmatrix} +# 4& 0 \\ +# 0 & 1 \\ +# \end{bmatrix}, +# $$ + +# which is a $2\times 2 $ matrix while + +# $$ +# \boldsymbol{\Sigma}\boldsymbol{\Sigma}^T= +# \begin{bmatrix} +# 4& 0 & 0\\ +# 0 & 1 & 0\\ +# 0 & 0 & 0\\ +# \end{bmatrix}, +# $$ + +# is a $3\times 3 $ matrix. The last row and column of this last matrix +# contain only zeros. This will have important consequences for our SVD +# decomposition of the design matrix. +# +# +# +# The matrix that may cause problems for us is $\boldsymbol{X}^T\boldsymbol{X}$. Using the SVD we can rewrite this matrix as + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{U}^T\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T, +# $$ + +# and using the orthogonality of the matrix $\boldsymbol{U}$ we have + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{\Sigma}\boldsymbol{V}^T. +# $$ + +# We define $\boldsymbol{\Sigma}^T\boldsymbol{\Sigma}=\tilde{\boldsymbol{\Sigma}}^2$ which is a diagonal matrix containing only the singular values squared. It has dimensionality $p \times p$. +# +# This means, using the orthogonality of $\boldsymbol{V}$, that we get + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=\tilde{\boldsymbol{\Sigma}}^2. +# $$ + +# We can now insert the result for the matrix $\boldsymbol{X}^T\boldsymbol{X}$ into our equation for ordinary least squares where + +# $$ +# \tilde{y}_{\mathrm{OLS}}=\boldsymbol{X}\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}, +# $$ + +# and using our SVD decomposition of $\boldsymbol{X}$ we have + +# $$ +# \tilde{y}_{\mathrm{OLS}}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\tilde{\boldsymbol{\Sigma}}^{-2}\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{U}^T\boldsymbol{y}, +# $$ + +# which gives us, using the orthogonality of the matrices $\boldsymbol{U}$ and $\boldsymbol{V}$, + +# $$ +# \tilde{y}_{\mathrm{OLS}}=\boldsymbol{U}\boldsymbol{U}^T\boldsymbol{y}=\sum_{i=0}^{p-1}\boldsymbol{u}_i\boldsymbol{u}^T_j\boldsymbol{y}, +# $$ + +# Note here that when we perform the multiplication of the various matrices, the orthogonal vectors of the matrix $\boldsymbol{U}$ + +# $$ +# \boldsymbol{U}=[\boldsymbol{u}_0,\boldsymbol{u}_1,\dots,\boldsymbol{u}_{n-1}], +# $$ + +# that belong to $i>p-1$, result in only zeros when we perform the multiplications. This means that the sum above has non-zero elements only up to $i=p-1$. This corresponds also to the number of singular values (these are all non-zero). +# +# It means that the ordinary least square model (with the optimal parameters) $\boldsymbol{\tilde{y}}$, corresponds to an orthogonal transformation of the output (or target) vector $\boldsymbol{y}$ by the vectors of the matrix $\boldsymbol{U}$. +# +# +# ## Further properties (important for our analyses later) +# +# Let us study again $\boldsymbol{X}^T\boldsymbol{X}$ in terms of our SVD, + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{U}^T\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T=\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{\Sigma}\boldsymbol{V}^T. +# $$ + +# If we now multiply from the right with $\boldsymbol{V}$ (using the orthogonality of $\boldsymbol{V}$) we get + +# $$ +# \left(\boldsymbol{X}^T\boldsymbol{X}\right)\boldsymbol{V}=\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{\Sigma}. +# $$ + +# This means the vectors $\boldsymbol{v}_i$ of the orthogonal matrix $\boldsymbol{V}$ are the eigenvectors of the matrix $\boldsymbol{X}^T\boldsymbol{X}$ +# with eigenvalues given by the singular values squared, that is + +# $$ +# \left(\boldsymbol{X}^T\boldsymbol{X}\right)\boldsymbol{v}_i=\boldsymbol{v}_i\sigma_i^2. +# $$ + +# Similarly, if we use the SVD decomposition for the matrix $\boldsymbol{X}\boldsymbol{X}^T$, we have + +# $$ +# \boldsymbol{X}\boldsymbol{X}^T=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{U}^T=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{\Sigma}^T\boldsymbol{U}^T. +# $$ + +# If we now multiply from the right with $\boldsymbol{U}$ (using the orthogonality of $\boldsymbol{U}$) we get + +# $$ +# \left(\boldsymbol{X}\boldsymbol{X}^T\right)\boldsymbol{U}=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{\Sigma}^T. +# $$ + +# This means the vectors $\boldsymbol{u}_i$ of the orthogonal matrix $\boldsymbol{U}$ are the eigenvectors of the matrix $\boldsymbol{X}\boldsymbol{X}^T$ +# with eigenvalues given by the singular values squared, that is + +# $$ +# \left(\boldsymbol{X}\boldsymbol{X}^T\right)\boldsymbol{u}_i=\boldsymbol{u}_i\sigma_i^2. +# $$ + +# **Important note**: we have defined our design matrix $\boldsymbol{X}$ to be an +# $n\times p$ matrix. In most supervised learning cases we have that $n +# \ge p$, and quite often we have $n >> p$. For linear algebra based methods like ordinary least squares or Ridge regression, this leads to a matrix $\boldsymbol{X}^T\boldsymbol{X}$ which is small and thereby easier to handle from a computational point of view (in terms of number of floating point operations). +# +# In our lectures, the number of columns will +# always refer to the number of features in our data set, while the +# number of rows represents the number of data inputs. Note that in +# other texts you may find the opposite notation. This has consequences +# for the definition of for example the covariance matrix and its relation to the SVD. +# +# +# ## Meet the Covariance Matrix +# +# +# Before we move on to a discussion of Ridge and Lasso regression, we want to show an important example of the above. +# +# We have already noted that the matrix $\boldsymbol{X}^T\boldsymbol{X}$ in ordinary +# least squares is proportional to the second derivative of the cost +# function, that is we have + +# $$ +# \frac{\partial^2 C(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}^T\partial \boldsymbol{\beta}} =\frac{2}{n}\boldsymbol{X}^T\boldsymbol{X}. +# $$ + +# This quantity defines was what is called the Hessian matrix (the second derivative of a function we want to optimize). +# +# The Hessian matrix plays an important role and is defined in this course as + +# $$ +# \boldsymbol{H}=\boldsymbol{X}^T\boldsymbol{X}. +# $$ + +# The Hessian matrix for ordinary least squares is also proportional to +# the covariance matrix. This means also that we can use the SVD to find +# the eigenvalues of the covariance matrix and the Hessian matrix in +# terms of the singular values. Let us develop these arguments, as they will play an important role in our machine learning studies. +# +# +# +# Before we discuss the link between for example Ridge regression and the singular value decomposition, we need to remind ourselves about +# the definition of the covariance and the correlation function. These are quantities that play a central role in machine learning methods. +# +# Suppose we have defined two vectors +# $\hat{x}$ and $\hat{y}$ with $n$ elements each. The covariance matrix $\boldsymbol{C}$ is defined as + +# $$ +# \boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} \mathrm{cov}[\boldsymbol{x},\boldsymbol{x}] & \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] \\ +# \mathrm{cov}[\boldsymbol{y},\boldsymbol{x}] & \mathrm{cov}[\boldsymbol{y},\boldsymbol{y}] \\ +# \end{bmatrix}, +# $$ + +# where for example + +# $$ +# \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +# $$ + +# With this definition and recalling that the variance is defined as + +# $$ +# \mathrm{var}[\boldsymbol{x}]=\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, +# $$ + +# we can rewrite the covariance matrix as + +# $$ +# \boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} \mathrm{var}[\boldsymbol{x}] & \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] \\ +# \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] & \mathrm{var}[\boldsymbol{y}] \\ +# \end{bmatrix}. +# $$ + +# **Note:** we have used $1/n$ in the above definitions of the *sample* variance and covariance. We assume then that we can calculate the exact mean value. +# What you will find in essentially all statistics texts are equations +# with a factor $1/(n-1)$. This is called [Bessel's correction](https://mathworld.wolfram.com/BesselsCorrection.html). This +# method corrects the bias in the estimation of the population variance +# and covariance. It also partially corrects the bias in the estimation +# of the population standard deviation. If you use a library like +# **Scikit-Learn** or **nunmpy's** function calculate the covariance, this +# quantity will be computed with a factor $1/(n-1)$. +# +# +# The covariance takes values between zero and infinity and may thus +# lead to problems with loss of numerical precision for particularly +# large values. It is common to scale the covariance matrix by +# introducing instead the correlation matrix defined via the so-called +# correlation function + +# $$ +# \mathrm{corr}[\boldsymbol{x},\boldsymbol{y}]=\frac{\mathrm{cov}[\boldsymbol{x},\boldsymbol{y}]}{\sqrt{\mathrm{var}[\boldsymbol{x}] \mathrm{var}[\boldsymbol{y}]}}. +# $$ + +# The correlation function is then given by values $\mathrm{corr}[\boldsymbol{x},\boldsymbol{y}] +# \in [-1,1]$. This avoids eventual problems with too large values. We +# can then define the correlation matrix for the two vectors $\boldsymbol{x}$ +# and $\boldsymbol{y}$ as + +# $$ +# \boldsymbol{K}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} 1 & \mathrm{corr}[\boldsymbol{x},\boldsymbol{y}] \\ +# \mathrm{corr}[\boldsymbol{y},\boldsymbol{x}] & 1 \\ +# \end{bmatrix}, +# $$ + +# In the above example this is the function we constructed using **pandas**. +# +# +# +# In our derivation of the various regression algorithms like **Ordinary Least Squares** or **Ridge regression** +# we defined the design/feature matrix $\boldsymbol{X}$ as + +# $$ +# \boldsymbol{X}=\begin{bmatrix} +# x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +# x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +# x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +# \dots & \dots & \dots & \dots \dots & \dots \\ +# x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +# x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +# \end{bmatrix}, +# $$ + +# with $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$, with the predictors/features $p$ refering to the column numbers and the +# entries $n$ being the row elements. +# We can rewrite the design/feature matrix in terms of its column vectors as + +# $$ +# \boldsymbol{X}=\begin{bmatrix} \boldsymbol{x}_0 & \boldsymbol{x}_1 & \boldsymbol{x}_2 & \dots & \dots & \boldsymbol{x}_{p-1}\end{bmatrix}, +# $$ + +# with a given vector + +# $$ +# \boldsymbol{x}_i^T = \begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \dots & \dots x_{n-1,i}\end{bmatrix}. +# $$ + +# With these definitions, we can now rewrite our $2\times 2$ +# correlation/covariance matrix in terms of a moe general design/feature +# matrix $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$. This leads to a $p\times p$ +# covariance matrix for the vectors $\boldsymbol{x}_i$ with $i=0,1,\dots,p-1$ + +# $$ +# \boldsymbol{C}[\boldsymbol{x}] = \begin{bmatrix} +# \mathrm{var}[\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_1] & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_2] & \dots & \dots & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_{p-1}]\\ +# \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_0] & \mathrm{var}[\boldsymbol{x}_1] & \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_2] & \dots & \dots & \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_{p-1}]\\ +# \mathrm{cov}[\boldsymbol{x}_2,\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_2,\boldsymbol{x}_1] & \mathrm{var}[\boldsymbol{x}_2] & \dots & \dots & \mathrm{cov}[\boldsymbol{x}_2,\boldsymbol{x}_{p-1}]\\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \mathrm{cov}[\boldsymbol{x}_{p-1},\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_{p-1},\boldsymbol{x}_1] & \mathrm{cov}[\boldsymbol{x}_{p-1},\boldsymbol{x}_{2}] & \dots & \dots & \mathrm{var}[\boldsymbol{x}_{p-1}]\\ +# \end{bmatrix}, +# $$ + +# and the correlation matrix + +# $$ +# \boldsymbol{K}[\boldsymbol{x}] = \begin{bmatrix} +# 1 & \mathrm{corr}[\boldsymbol{x}_0,\boldsymbol{x}_1] & \mathrm{corr}[\boldsymbol{x}_0,\boldsymbol{x}_2] & \dots & \dots & \mathrm{corr}[\boldsymbol{x}_0,\boldsymbol{x}_{p-1}]\\ +# \mathrm{corr}[\boldsymbol{x}_1,\boldsymbol{x}_0] & 1 & \mathrm{corr}[\boldsymbol{x}_1,\boldsymbol{x}_2] & \dots & \dots & \mathrm{corr}[\boldsymbol{x}_1,\boldsymbol{x}_{p-1}]\\ +# \mathrm{corr}[\boldsymbol{x}_2,\boldsymbol{x}_0] & \mathrm{corr}[\boldsymbol{x}_2,\boldsymbol{x}_1] & 1 & \dots & \dots & \mathrm{corr}[\boldsymbol{x}_2,\boldsymbol{x}_{p-1}]\\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \mathrm{corr}[\boldsymbol{x}_{p-1},\boldsymbol{x}_0] & \mathrm{corr}[\boldsymbol{x}_{p-1},\boldsymbol{x}_1] & \mathrm{corr}[\boldsymbol{x}_{p-1},\boldsymbol{x}_{2}] & \dots & \dots & 1\\ +# \end{bmatrix}, +# $$ + +# The Numpy function **np.cov** calculates the covariance elements using +# the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have +# the exact mean values. The following simple function uses the +# **np.vstack** function which takes each vector of dimension $1\times n$ +# and produces a $2\times n$ matrix $\boldsymbol{W}$ +# +# Note that this assumes you have the features as the rows, and the inputs as columns, that is + +# $$ +# \boldsymbol{W} = \begin{bmatrix} x_0 & x_1 & x_2 & \dots & x_{n-2} & x_{n-1} \\ +# y_0 & y_1 & y_2 & \dots & y_{n-2} & y_{n-1} \\ +# \end{bmatrix}, +# $$ + +# which in turn is converted into into the $2\times 2$ covariance matrix +# $\boldsymbol{C}$ via the Numpy function **np.cov()**. We note that we can also calculate +# the mean value of each set of samples $\boldsymbol{x}$ etc using the Numpy +# function **np.mean(x)**. We can also extract the eigenvalues of the +# covariance matrix through the **np.linalg.eig()** function. + +# In[5]: + + +# Importing various packages +import numpy as np +n = 100 +x = np.random.normal(size=n) +print(np.mean(x)) +y = 4+3*x+np.random.normal(size=n) +print(np.mean(y)) +W = np.vstack((x, y)) +C = np.cov(W) +print(C) + + +# The previous example can be converted into the correlation matrix by +# simply scaling the matrix elements with the variances. We should also +# subtract the mean values for each column. This leads to the following +# code which sets up the correlations matrix for the previous example in +# a more brute force way. Here we scale the mean values for each column of the design matrix, calculate the relevant mean values and variances and then finally set up the $2\times 2$ correlation matrix (since we have only two vectors). + +# In[6]: + + +import numpy as np +n = 100 +# define two vectors +x = np.random.random(size=n) +y = 4+3*x+np.random.normal(size=n) +#scaling the x and y vectors +x = x - np.mean(x) +y = y - np.mean(y) +variance_x = np.sum(x@x)/n +variance_y = np.sum(y@y)/n +print(variance_x) +print(variance_y) +cov_xy = np.sum(x@y)/n +cov_xx = np.sum(x@x)/n +cov_yy = np.sum(y@y)/n +C = np.zeros((2,2)) +C[0,0]= cov_xx/variance_x +C[1,1]= cov_yy/variance_y +C[0,1]= cov_xy/np.sqrt(variance_y*variance_x) +C[1,0]= C[0,1] +print(C) + + +# We see that the matrix elements along the diagonal are one as they +# should be and that the matrix is symmetric. Furthermore, diagonalizing +# this matrix we easily see that it is a positive definite matrix. +# +# The above procedure with **numpy** can be made more compact if we use **pandas**. +# +# +# +# We whow here how we can set up the correlation matrix using **pandas**, as done in this simple code + +# In[7]: + + +import numpy as np +import pandas as pd +n = 10 +x = np.random.normal(size=n) +x = x - np.mean(x) +y = 4+3*x+np.random.normal(size=n) +y = y - np.mean(y) +# Note that we transpose the matrix in order to stay with our ordering n x p +X = (np.vstack((x, y))).T +print(X) +Xpd = pd.DataFrame(X) +print(Xpd) +correlation_matrix = Xpd.corr() +print(correlation_matrix) + + +# We expand this model to the Franke function discussed earlier. + +# In[8]: + + +# Common imports +import numpy as np +import pandas as pd + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +def create_X(x, y, n ): + if len(x.shape) > 1: + x = np.ravel(x) + y = np.ravel(y) + + N = len(x) + l = int((n+1)*(n+2)/2) # Number of elements in beta + X = np.ones((N,l)) + + for i in range(1,n+1): + q = int((i)*(i+1)/2) + for k in range(i+1): + X[:,q+k] = (x**(i-k))*(y**k) + + return X + + +# Making meshgrid of datapoints and compute Franke's function +n = 4 +N = 100 +x = np.sort(np.random.uniform(0, 1, N)) +y = np.sort(np.random.uniform(0, 1, N)) +z = FrankeFunction(x, y) +X = create_X(x, y, n=n) + +Xpd = pd.DataFrame(X) +# subtract the mean values and set up the covariance matrix +Xpd = Xpd - Xpd.mean() +covariance_matrix = Xpd.cov() +print(covariance_matrix) + + +# We note here that the covariance is zero for the first rows and +# columns since all matrix elements in the design matrix were set to one +# (we are fitting the function in terms of a polynomial of degree $n$). +# +# This means that the variance for these elements will be zero and will +# cause problems when we set up the correlation matrix. We can simply +# drop these elements and construct a correlation +# matrix without these elements. +# +# +# +# We can rewrite the covariance matrix in a more compact form in terms of the design/feature matrix $\boldsymbol{X}$ as + +# $$ +# \boldsymbol{C}[\boldsymbol{x}] = \frac{1}{n}\boldsymbol{X}^T\boldsymbol{X}= \mathbb{E}[\boldsymbol{X}^T\boldsymbol{X}]. +# $$ + +# To see this let us simply look at a design matrix $\boldsymbol{X}\in {\mathbb{R}}^{2\times 2}$ + +# $$ +# \boldsymbol{X}=\begin{bmatrix} +# x_{00} & x_{01}\\ +# x_{10} & x_{11}\\ +# \end{bmatrix}=\begin{bmatrix} +# \boldsymbol{x}_{0} & \boldsymbol{x}_{1}\\ +# \end{bmatrix}. +# $$ + +# If we then compute the expectation value (note the $1/n$ factor instead of $1/(n-1)$) + +# $$ +# \mathbb{E}[\boldsymbol{X}^T\boldsymbol{X}] = \frac{1}{n}\boldsymbol{X}^T\boldsymbol{X}=\frac{1}{n}\begin{bmatrix} +# x_{00}^2+x_{10}^2 & x_{00}x_{01}+x_{10}x_{11}\\ +# x_{01}x_{00}+x_{11}x_{10} & x_{01}^2+x_{11}^2\\ +# \end{bmatrix}, +# $$ + +# which is just + +# $$ +# \boldsymbol{C}[\boldsymbol{x}_0,\boldsymbol{x}_1] = \boldsymbol{C}[\boldsymbol{x}]=\begin{bmatrix} \mathrm{var}[\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_1] \\ +# \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_0] & \mathrm{var}[\boldsymbol{x}_1] \\ +# \end{bmatrix}, +# $$ + +# where we wrote $$\boldsymbol{C}[\boldsymbol{x}_0,\boldsymbol{x}_1] = \boldsymbol{C}[\boldsymbol{x}]$$ to indicate that this is the covariance of the vectors $\boldsymbol{x}$ of the design/feature matrix $\boldsymbol{X}$. +# +# It is easy to generalize this to a matrix $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$. +# +# +# +# ## Linking with the SVD +# +# We saw earlier that + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{U}^T\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T=\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{\Sigma}\boldsymbol{V}^T. +# $$ + +# Since the matrices here have dimension $p\times p$, with $p$ corresponding to the singular values, we defined earlier the matrix + +# $$ +# \boldsymbol{\Sigma}^T\boldsymbol{\Sigma} = \begin{bmatrix} \tilde{\boldsymbol{\Sigma}} & \boldsymbol{0}\\ \end{bmatrix}\begin{bmatrix} \tilde{\boldsymbol{\Sigma}} \\ \boldsymbol{0}\\ \end{bmatrix}, +# $$ + +# where the tilde-matrix $\tilde{\boldsymbol{\Sigma}}$ is a matrix of dimension $p\times p$ containing only the singular values $\sigma_i$, that is + +# $$ +# \tilde{\boldsymbol{\Sigma}}=\begin{bmatrix} \sigma_0 & 0 & 0 & \dots & 0 & 0 \\ +# 0 & \sigma_1 & 0 & \dots & 0 & 0 \\ +# 0 & 0 & \sigma_2 & \dots & 0 & 0 \\ +# 0 & 0 & 0 & \dots & \sigma_{p-2} & 0 \\ +# 0 & 0 & 0 & \dots & 0 & \sigma_{p-1} \\ +# \end{bmatrix}, +# $$ + +# meaning we can write + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=\boldsymbol{V}\tilde{\boldsymbol{\Sigma}}^2\boldsymbol{V}^T. +# $$ + +# Multiplying from the right with $\boldsymbol{V}$ (using the orthogonality of $\boldsymbol{V}$) we get + +# $$ +# \left(\boldsymbol{X}^T\boldsymbol{X}\right)\boldsymbol{V}=\boldsymbol{V}\tilde{\boldsymbol{\Sigma}}^2. +# $$ + +# This means the vectors $\boldsymbol{v}_i$ of the orthogonal matrix $\boldsymbol{V}$ +# are the eigenvectors of the matrix $\boldsymbol{X}^T\boldsymbol{X}$ with eigenvalues +# given by the singular values squared, that is + +# $$ +# \left(\boldsymbol{X}^T\boldsymbol{X}\right)\boldsymbol{v}_i=\boldsymbol{v}_i\sigma_i^2. +# $$ + +# In other words, each non-zero singular value of $\boldsymbol{X}$ is a positive +# square root of an eigenvalue of $\boldsymbol{X}^T\boldsymbol{X}$. It means also that +# the columns of $\boldsymbol{V}$ are the eigenvectors of +# $\boldsymbol{X}^T\boldsymbol{X}$. Since we have ordered the singular values of +# $\boldsymbol{X}$ in a descending order, it means that the column vectors +# $\boldsymbol{v}_i$ are hierarchically ordered by how much correlation they +# encode from the columns of $\boldsymbol{X}$. +# +# +# Note that these are also the eigenvectors and eigenvalues of the +# Hessian matrix. +# +# If we now recall the definition of the covariance matrix (not using +# Bessel's correction) we have + +# $$ +# \boldsymbol{C}[\boldsymbol{X}]=\frac{1}{n}\boldsymbol{X}^T\boldsymbol{X}, +# $$ + +# meaning that every squared non-singular value of $\boldsymbol{X}$ divided by $n$ ( +# the number of samples) are the eigenvalues of the covariance +# matrix. Every singular value of $\boldsymbol{X}$ is thus a positive square +# root of an eigenvalue of $\boldsymbol{X}^T\boldsymbol{X}$. If the matrix $\boldsymbol{X}$ is +# self-adjoint, the singular values of $\boldsymbol{X}$ are equal to the +# absolute value of the eigenvalues of $\boldsymbol{X}$. +# +# +# For $\boldsymbol{X}\boldsymbol{X}^T$ we found + +# $$ +# \boldsymbol{X}\boldsymbol{X}^T=\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\boldsymbol{V}\boldsymbol{\Sigma}^T\boldsymbol{U}^T=\boldsymbol{U}\boldsymbol{\Sigma}^T\boldsymbol{\Sigma}\boldsymbol{U}^T. +# $$ + +# Since the matrices here have dimension $n\times n$, we have + +# $$ +# \boldsymbol{\Sigma}\boldsymbol{\Sigma}^T = \begin{bmatrix} \tilde{\boldsymbol{\Sigma}} \\ \boldsymbol{0}\\ \end{bmatrix}\begin{bmatrix} \tilde{\boldsymbol{\Sigma}} \boldsymbol{0}\\ \end{bmatrix}=\begin{bmatrix} \tilde{\boldsymbol{\Sigma}} & \boldsymbol{0} \\ \boldsymbol{0} & \boldsymbol{0}\\ \end{bmatrix}, +# $$ + +# leading to + +# $$ +# \boldsymbol{X}\boldsymbol{X}^T=\boldsymbol{U}\begin{bmatrix} \tilde{\boldsymbol{\Sigma}} & \boldsymbol{0} \\ \boldsymbol{0} & \boldsymbol{0}\\ \end{bmatrix}\boldsymbol{U}^T. +# $$ + +# Multiplying with $\boldsymbol{U}$ from the right gives us the eigenvalue problem + +# $$ +# (\boldsymbol{X}\boldsymbol{X}^T)\boldsymbol{U}=\boldsymbol{U}\begin{bmatrix} \tilde{\boldsymbol{\Sigma}} & \boldsymbol{0} \\ \boldsymbol{0} & \boldsymbol{0}\\ \end{bmatrix}. +# $$ + +# It means that the eigenvalues of $\boldsymbol{X}\boldsymbol{X}^T$ are again given by +# the non-zero singular values plus now a series of zeros. The column +# vectors of $\boldsymbol{U}$ are the eigenvectors of $\boldsymbol{X}\boldsymbol{X}^T$ and +# measure how much correlations are contained in the rows of $\boldsymbol{X}$. +# +# Since we will mainly be interested in the correlations among the features +# of our data (the columns of $\boldsymbol{X}$, the quantity of interest for us are the non-zero singular +# values and the column vectors of $\boldsymbol{V}$. +# +# +# +# +# ## Ridge and Lasso Regression +# +# Let us remind ourselves about the expression for the standard Mean Squared Error (MSE) which we used to define our cost function and the equations for the ordinary least squares (OLS) method, that is +# our optimization problem is + +# $$ +# {\displaystyle \min_{\boldsymbol{\beta}\in {\mathbb{R}}^{p}}}\frac{1}{n}\left\{\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right)\right\}. +# $$ + +# or we can state it as + +# $$ +# {\displaystyle \min_{\boldsymbol{\beta}\in +# {\mathbb{R}}^{p}}}\frac{1}{n}\sum_{i=0}^{n-1}\left(y_i-\tilde{y}_i\right)^2=\frac{1}{n}\vert\vert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\vert\vert_2^2, +# $$ + +# where we have used the definition of a norm-2 vector, that is + +# $$ +# \vert\vert \boldsymbol{x}\vert\vert_2 = \sqrt{\sum_i x_i^2}. +# $$ + +# By minimizing the above equation with respect to the parameters +# $\boldsymbol{\beta}$ we could then obtain an analytical expression for the +# parameters $\boldsymbol{\beta}$. We can add a regularization parameter $\lambda$ by +# defining a new cost function to be optimized, that is + +# $$ +# {\displaystyle \min_{\boldsymbol{\beta}\in +# {\mathbb{R}}^{p}}}\frac{1}{n}\vert\vert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\vert\vert_2^2+\lambda\vert\vert \boldsymbol{\beta}\vert\vert_2^2 +# $$ + +# which leads to the Ridge regression minimization problem where we +# require that $\vert\vert \boldsymbol{\beta}\vert\vert_2^2\le t$, where $t$ is +# a finite number larger than zero. By defining + +# $$ +# C(\boldsymbol{X},\boldsymbol{\beta})=\frac{1}{n}\vert\vert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\vert\vert_2^2+\lambda\vert\vert \boldsymbol{\beta}\vert\vert_1, +# $$ + +# we have a new optimization equation + +# $$ +# {\displaystyle \min_{\boldsymbol{\beta}\in +# {\mathbb{R}}^{p}}}\frac{1}{n}\vert\vert \boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\vert\vert_2^2+\lambda\vert\vert \boldsymbol{\beta}\vert\vert_1 +# $$ + +# which leads to Lasso regression. Lasso stands for least absolute shrinkage and selection operator. +# +# Here we have defined the norm-1 as + +# $$ +# \vert\vert \boldsymbol{x}\vert\vert_1 = \sum_i \vert x_i\vert. +# $$ + +# Using the matrix-vector expression for Ridge regression and dropping the parameter $1/n$ in front of the standard means squared error equation, we have + +# $$ +# C(\boldsymbol{X},\boldsymbol{\beta})=\left\{(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})^T(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})\right\}+\lambda\boldsymbol{\beta}^T\boldsymbol{\beta}, +# $$ + +# and +# taking the derivatives with respect to $\boldsymbol{\beta}$ we obtain then +# a slightly modified matrix inversion problem which for finite values +# of $\lambda$ does not suffer from singularity problems. We obtain +# the optimal parameters + +# $$ +# \hat{\boldsymbol{\beta}}_{\mathrm{Ridge}} = \left(\boldsymbol{X}^T\boldsymbol{X}+\lambda\boldsymbol{I}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}, +# $$ + +# with $\boldsymbol{I}$ being a $p\times p$ identity matrix with the constraint that + +# $$ +# \sum_{i=0}^{p-1} \beta_i^2 \leq t, +# $$ + +# with $t$ a finite positive number. +# +# When we compare this with the ordinary least squares result we have + +# $$ +# \hat{\boldsymbol{\beta}}_{\mathrm{OLS}} = \left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}, +# $$ + +# which can lead to singular matrices. However, with the SVD, we can always compute the inverse of the matrix $\boldsymbol{X}^T\boldsymbol{X}$. +# +# +# We see that Ridge regression is nothing but the standard OLS with a +# modified diagonal term added to $\boldsymbol{X}^T\boldsymbol{X}$. The consequences, in +# particular for our discussion of the bias-variance tradeoff are rather +# interesting. We will see that for specific values of $\lambda$, we may +# even reduce the variance of the optimal parameters $\boldsymbol{\beta}$. These topics and other related ones, will be discussed after the more linear algebra oriented analysis here. +# +# +# +# Using our insights about the SVD of the design matrix $\boldsymbol{X}$ +# We have already analyzed the OLS solutions in terms of the eigenvectors (the columns) of the right singular value matrix $\boldsymbol{U}$ as + +# $$ +# \tilde{\boldsymbol{y}}_{\mathrm{OLS}}=\boldsymbol{X}\boldsymbol{\beta} =\boldsymbol{U}\boldsymbol{U}^T\boldsymbol{y}. +# $$ + +# For Ridge regression this becomes + +# $$ +# \tilde{\boldsymbol{y}}_{\mathrm{Ridge}}=\boldsymbol{X}\boldsymbol{\beta}_{\mathrm{Ridge}} = \boldsymbol{U\Sigma V^T}\left(\boldsymbol{V}\boldsymbol{\Sigma}^2\boldsymbol{V}^T+\lambda\boldsymbol{I} \right)^{-1}(\boldsymbol{U\Sigma V^T})^T\boldsymbol{y}=\sum_{j=0}^{p-1}\boldsymbol{u}_j\boldsymbol{u}_j^T\frac{\sigma_j^2}{\sigma_j^2+\lambda}\boldsymbol{y}, +# $$ + +# with the vectors $\boldsymbol{u}_j$ being the columns of $\boldsymbol{U}$ from the SVD of the matrix $\boldsymbol{X}$. +# +# +# +# Since $\lambda \geq 0$, it means that compared to OLS, we have + +# $$ +# \frac{\sigma_j^2}{\sigma_j^2+\lambda} \leq 1. +# $$ + +# Ridge regression finds the coordinates of $\boldsymbol{y}$ with respect to the +# orthonormal basis $\boldsymbol{U}$, it then shrinks the coordinates by +# $\frac{\sigma_j^2}{\sigma_j^2+\lambda}$. Recall that the SVD has +# eigenvalues ordered in a descending way, that is $\sigma_i \geq +# \sigma_{i+1}$. +# +# For small eigenvalues $\sigma_i$ it means that their contributions become less important, a fact which can be used to reduce the number of degrees of freedom. More about this when we have covered the material on a statistical interpretation of various linear regression methods. +# +# +# +# For the sake of simplicity, let us assume that the design matrix is orthonormal, that is + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}=(\boldsymbol{X}^T\boldsymbol{X})^{-1} =\boldsymbol{I}. +# $$ + +# In this case the standard OLS results in + +# $$ +# \boldsymbol{\beta}^{\mathrm{OLS}} = \boldsymbol{X}^T\boldsymbol{y}=\sum_{i=0}^{p-1}\boldsymbol{u}_j\boldsymbol{u}_j^T\boldsymbol{y}, +# $$ + +# and + +# $$ +# \boldsymbol{\beta}^{\mathrm{Ridge}} = \left(\boldsymbol{I}+\lambda\boldsymbol{I}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}=\left(1+\lambda\right)^{-1}\boldsymbol{\beta}^{\mathrm{OLS}}, +# $$ + +# that is the Ridge estimator scales the OLS estimator by the inverse of a factor $1+\lambda$, and +# the Ridge estimator converges to zero when the hyperparameter goes to +# infinity. +# +# We will come back to more interpreations after we have gone through some of the statistical analysis part. +# +# +# +# Using the matrix-vector expression for Lasso regression and dropping the parameter $1/n$ in front of the standard mean squared error equation, we have the following **cost** function + +# $$ +# C(\boldsymbol{X},\boldsymbol{\beta})=\left\{(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})^T(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})\right\}+\lambda\vert\vert\boldsymbol{\beta}\vert\vert_1, +# $$ + +# Taking the derivative with respect to $\boldsymbol{\beta}$ and recalling that the derivative of the absolute value is (we drop the boldfaced vector symbol for simplicty) + +# $$ +# \frac{d \vert \beta\vert}{d \boldsymbol{\beta}}=\mathrm{sgn}(\boldsymbol{\beta})=\left\{\begin{array}{cc} 1 & \beta > 0 \\ 0 & \beta =0\\-1 & \beta < 0, \end{array}\right. +# $$ + +# we have that the derivative of the cost function is + +# $$ +# \frac{\partial C(\boldsymbol{X},\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}=-2\boldsymbol{X}^T(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})+\lambda sgn(\boldsymbol{\beta})=0, +# $$ + +# and reordering we have + +# $$ +# \boldsymbol{X}^T\boldsymbol{X}\boldsymbol{\beta}+\lambda sgn(\boldsymbol{\beta})=2\boldsymbol{X}^T\boldsymbol{y}. +# $$ + +# This equation does not lead to a nice analytical equation as in Ridge regression or ordinary least squares. This equation can however be solved by using standard convex optimization algorithms using for example the Python package [CVXOPT](https://cvxopt.org/). We will discuss this later. +# +# +# +# +# +# Let us assume that our design matrix is given by unit (identity) matrix, that is a square diagonal matrix with ones only along the +# diagonal. In this case we have an equal number of rows and columns $n=p$. +# +# Our model approximation is just $\tilde{\boldsymbol{y}}=\boldsymbol{\beta}$ and the mean squared error and thereby the cost function for ordinary least sqquares (OLS) is then (we drop the term $1/n$) + +# $$ +# C(\boldsymbol{\beta})=\sum_{i=0}^{p-1}(y_i-\beta_i)^2, +# $$ + +# and minimizing we have that + +# $$ +# \hat{\beta}_i^{\mathrm{OLS}} = y_i. +# $$ + +# For Ridge regression our cost function is + +# $$ +# C(\boldsymbol{\beta})=\sum_{i=0}^{p-1}(y_i-\beta_i)^2+\lambda\sum_{i=0}^{p-1}\beta_i^2, +# $$ + +# and minimizing we have that + +# $$ +# \hat{\beta}_i^{\mathrm{Ridge}} = \frac{y_i}{1+\lambda}. +# $$ + +# For Lasso regression our cost function is + +# $$ +# C(\boldsymbol{\beta})=\sum_{i=0}^{p-1}(y_i-\beta_i)^2+\lambda\sum_{i=0}^{p-1}\vert\beta_i\vert=\sum_{i=0}^{p-1}(y_i-\beta_i)^2+\lambda\sum_{i=0}^{p-1}\sqrt{\beta_i^2}, +# $$ + +# and minimizing we have that + +# $$ +# -2\sum_{i=0}^{p-1}(y_i-\beta_i)+\lambda \sum_{i=0}^{p-1}\frac{(\beta_i)}{\vert\beta_i\vert}=0, +# $$ + +# which leads to + +# $$ +# \hat{\boldsymbol{\beta}}_i^{\mathrm{Lasso}} = \left\{\begin{array}{ccc}y_i-\frac{\lambda}{2} &\mathrm{if} & y_i> \frac{\lambda}{2}\\ +# y_i+\frac{\lambda}{2} &\mathrm{if} & y_i< -\frac{\lambda}{2}\\ +# 0 &\mathrm{if} & \vert y_i\vert\le \frac{\lambda}{2}\end{array}\right.\\. +# $$ + +# Plotting these results ([figure in handwritten notes for week 36](https://github.com/CompPhysics/MachineLearning/blob/master/doc/HandWrittenNotes/2021/NotesSeptember9.pdf)) shows clearly that Lasso regression suppresses (sets to zero) values of $\beta_i$ for specific values of $\lambda$. Ridge regression reduces on the other hand the values of $\beta_i$ as function of $\lambda$. +# +# +# As another examples, +# let us assume we have a data set with outputs/targets given by the vector + +# $$ +# \boldsymbol{y}=\begin{bmatrix}4 \\ 2 \\3\end{bmatrix}, +# $$ + +# and our inputs as a $3\times 2$ design matrix + +# $$ +# \boldsymbol{X}=\begin{bmatrix}2 & 0\\ 0 & 1 \\ 0 & 0\end{bmatrix}, +# $$ + +# meaning that we have two features and two unknown parameters $\beta_0$ and $\beta_1$ to be determined either by ordinary least squares, Ridge or Lasso regression. +# +# +# For ordinary least squares (OLS) we know that the optimal solution is + +# $$ +# \hat{\boldsymbol{\beta}}^{\mathrm{OLS}}=\left( \boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}. +# $$ + +# Inserting the above values we obtain that + +# $$ +# \hat{\boldsymbol{\beta}}^{\mathrm{OLS}}=\begin{bmatrix}2 \\ 2\end{bmatrix}, +# $$ + +# The code which implements this simpler case is presented after the discussion of Ridge and Lasso. +# +# +# For Ridge regression we have + +# $$ +# \hat{\boldsymbol{\beta}}^{\mathrm{Ridge}}=\left( \boldsymbol{X}^T\boldsymbol{X}+\lambda\boldsymbol{I}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}. +# $$ + +# Inserting the above values we obtain that + +# $$ +# \hat{\boldsymbol{\beta}}^{\mathrm{Ridge}}=\begin{bmatrix}\frac{8}{4+\lambda} \\ \frac{2}{1+\lambda}\end{bmatrix}, +# $$ + +# There is normally a constraint on the value of $\vert\vert \boldsymbol{\beta}\vert\vert_2$ via the parameter $\lambda$. +# Let us for simplicity assume that $\beta_0^2+\beta_1^2=1$ as constraint. This will allow us to find an expression for the optimal values of $\beta$ and $\lambda$. +# +# To see this, let us write the cost function for Ridge regression. +# +# +# +# We define the MSE without the $1/n$ factor and have then, using that + +# $$ +# \boldsymbol{X}\boldsymbol{\beta}=\begin{bmatrix} 2\beta_0 \\ \beta_1 \\0 \end{bmatrix}, +# $$ + +# $$ +# C(\boldsymbol{\beta})=(4-2\beta_0)^2+(2-\beta_1)^2+\lambda(\beta_0^2+\beta_1^2), +# $$ + +# and taking the derivative with respect to $\beta_0$ we get + +# $$ +# \beta_0=\frac{8}{4+\lambda}, +# $$ + +# and for $\beta_1$ we obtain + +# $$ +# \beta_1=\frac{2}{1+\lambda}, +# $$ + +# Using the constraint for $\beta_0^2+\beta_1^2=1$ we can constrain $\lambda$ by solving + +# $$ +# \left(\frac{8}{4+\lambda}\right)^2+\left(\frac{2}{1+\lambda}\right)^2=1, +# $$ + +# which gives $\lambda=4.571$ and $\beta_0=0.933$ and $\beta_1=0.359$. +# +# +# For Lasso we need now, keeping a constraint on $\vert\beta_0\vert+\vert\beta_1\vert=1$, to take the derivative of the absolute values of $\beta_0$ +# and $\beta_1$. This gives us the following derivatives of the cost function + +# $$ +# C(\boldsymbol{\beta})=(4-2\beta_0)^2+(2-\beta_1)^2+\lambda(\vert\beta_0\vert+\vert\beta_1\vert), +# $$ + +# $$ +# \frac{\partial C(\boldsymbol{\beta})}{\partial \beta_0}=-4(4-2\beta_0)+\lambda\mathrm{sgn}(\beta_0)=0, +# $$ + +# and + +# $$ +# \frac{\partial C(\boldsymbol{\beta})}{\partial \beta_1}=-2(2-\beta_1)+\lambda\mathrm{sgn}(\beta_1)=0. +# $$ + +# We have now four cases to solve besides the trivial cases $\beta_0$ and/or $\beta_1$ are zero, namely +# 1. $\beta_0 > 0$ and $\beta_1 > 0$, +# +# 2. $\beta_0 > 0$ and $\beta_1 < 0$, +# +# 3. $\beta_0 < 0$ and $\beta_1 > 0$, +# +# 4. $\beta_0 < 0$ and $\beta_1 < 0$. +# +# If we consider the first case, we have then + +# $$ +# -4(4-2\beta_0)+\lambda=0, +# $$ + +# and + +# $$ +# -2(2-\beta_1)+\lambda=0. +# $$ + +# which yields + +# $$ +# \beta_0=\frac{16+\lambda}{8}, +# $$ + +# and + +# $$ +# \beta_1=\frac{4+\lambda}{2}. +# $$ + +# Using the constraint on $\beta_0$ and $\beta_1$ we can then find the optimal value of $\lambda$ for the different cases. We leave this as an exercise to you. +# +# +# Here we set up the OLS, Ridge and Lasso functionality in order to study the above example. Note that here we have opted for a set of values of $\lambda$, meaning that we need to perform a search in order to find the optimal values. +# +# First we study and compare the OLS and Ridge results. The next code compares all three methods. +# We select values of the hyperparameter $\lambda\in [10^{-4},10^4]$ and compute the predicted values for ordinary least squares and Ridge regression. + +# In[9]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + +def R2(y_data, y_model): + return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2) +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + + +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. + +X = np.array( [ [ 2, 0], [0, 1], [0,0]]) +y = np.array( [4, 2, 3]) + + +# matrix inversion to find beta +OLSbeta = np.linalg.inv(X.T @ X) @ X.T @ y +print(OLSbeta) +# and then make the prediction +ytildeOLS = X @ OLSbeta +print("Training MSE for OLS") +print(MSE(y,ytildeOLS)) +ypredictOLS = X @ OLSbeta + +# Repeat now for Ridge regression and various values of the regularization parameter +I = np.eye(2,2) +# Decide which values of lambda to use +nlambdas = 100 +MSEPredict = np.zeros(nlambdas) +lambdas = np.logspace(-4, 4, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + Ridgebeta = np.linalg.inv(X.T @ X+lmb*I) @ X.T @ y +# print(Ridgebeta) + # and then make the prediction + ypredictRidge = X @ Ridgebeta + MSEPredict[i] = MSE(y,ypredictRidge) +# print(MSEPredict[i]) + # Now plot the results +plt.figure() +plt.plot(np.log10(lambdas), MSEPredict, 'r--', label = 'MSE Ridge Train') +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() + + +# We see here that we reach a plateau for the Ridge results. Writing out the coefficients $\boldsymbol{\beta}$, we that they are getting smaller and smaller and our error stabilizes since the predicted values of $\tilde{\boldsymbol{y}}$ approach zero. +# +# This happens also for Lasso regression, as seen from the next code +# output. The difference is that Lasso shrinks the values of $\beta$ to +# zero at a much earlier stage and the results flatten out. We see that +# Lasso gives also an excellent fit for small values of $\lambda$ and +# shows rthe best performance of the three regression methods. + +# In[10]: + + +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn import linear_model + +def R2(y_data, y_model): + return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2) +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + + +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. + +X = np.array( [ [ 2, 0], [0, 1], [0,0]]) +y = np.array( [4, 2, 3]) + + +# matrix inversion to find beta +OLSbeta = np.linalg.inv(X.T @ X) @ X.T @ y +print(OLSbeta) +# and then make the prediction +ytildeOLS = X @ OLSbeta +print("Training MSE for OLS") +print(MSE(y,ytildeOLS)) +ypredictOLS = X @ OLSbeta + +# Repeat now for Ridge regression and various values of the regularization parameter +I = np.eye(2,2) +# Decide which values of lambda to use +nlambdas = 100 +MSERidgePredict = np.zeros(nlambdas) +MSELassoPredict = np.zeros(nlambdas) +lambdas = np.logspace(-4, 4, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + Ridgebeta = np.linalg.inv(X.T @ X+lmb*I) @ X.T @ y + print(Ridgebeta) + # and then make the prediction + ypredictRidge = X @ Ridgebeta + MSERidgePredict[i] = MSE(y,ypredictRidge) + RegLasso = linear_model.Lasso(lmb) + RegLasso.fit(X,y) + ypredictLasso = RegLasso.predict(X) + print(RegLasso.coef_) + MSELassoPredict[i] = MSE(y,ypredictLasso) +# Now plot the results +plt.figure() +plt.plot(np.log10(lambdas), MSERidgePredict, 'r--', label = 'MSE Ridge Train') +plt.plot(np.log10(lambdas), MSELassoPredict, 'r--', label = 'MSE Lasso Train') +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() + + +# We bring then back our exponential function example and study all +# three regression methods. Depending on the level of noise, we note +# that for small values of the hyperparameter $\lambda$ all three +# methods produce the same mean squared error. Again, Lasso shrinks the +# parameter values to zero much earlier than Ridge regression and the +# Lasso results flatten out much earlier since all $\beta_j=0$ (check +# this by printing the values). This case is an example of where OLS +# performs best. Lasso and Ridge reproduce the OLS results for a limited +# set of $\lambda$ values. + +# In[11]: + + +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn import linear_model + +def R2(y_data, y_model): + return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2) +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + + +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. +np.random.seed(3155) + +x = np.random.rand(100) +y = 2.0+5*x*x+0.1*np.random.randn(100) + +# number of features p (here degree of polynomial +p = 3 +# The design matrix now as function of a given polynomial +X = np.zeros((len(x),p)) +X[:,0] = 1.0 +X[:,1] = x +X[:,2] = x*x +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +# matrix inversion to find beta +OLSbeta = np.linalg.inv(X_train.T @ X_train) @ X_train.T @ y_train +print(OLSbeta) +# and then make the prediction +ytildeOLS = X_train @ OLSbeta +print("Training MSE for OLS") +print(MSE(y_train,ytildeOLS)) +ypredictOLS = X_test @ OLSbeta +print("Test MSE OLS") +print(MSE(y_test,ypredictOLS)) + +# Repeat now for Lasso and Ridge regression and various values of the regularization parameter +I = np.eye(p,p) +# Decide which values of lambda to use +nlambdas = 100 +MSEPredict = np.zeros(nlambdas) +MSETrain = np.zeros(nlambdas) +MSELassoPredict = np.zeros(nlambdas) +MSELassoTrain = np.zeros(nlambdas) +lambdas = np.logspace(-4, 4, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + Ridgebeta = np.linalg.inv(X_train.T @ X_train+lmb*I) @ X_train.T @ y_train + # include lasso using Scikit-Learn + RegLasso = linear_model.Lasso(lmb) + RegLasso.fit(X_train,y_train) + # and then make the prediction + ytildeRidge = X_train @ Ridgebeta + ypredictRidge = X_test @ Ridgebeta + ytildeLasso = RegLasso.predict(X_train) + ypredictLasso = RegLasso.predict(X_test) + MSEPredict[i] = MSE(y_test,ypredictRidge) + MSETrain[i] = MSE(y_train,ytildeRidge) + MSELassoPredict[i] = MSE(y_test,ypredictLasso) + MSELassoTrain[i] = MSE(y_train,ytildeLasso) + +# Now plot the results +plt.figure() +plt.plot(np.log10(lambdas), MSETrain, label = 'MSE Ridge train') +plt.plot(np.log10(lambdas), MSEPredict, 'r--', label = 'MSE Ridge Test') +plt.plot(np.log10(lambdas), MSELassoTrain, label = 'MSE Lasso train') +plt.plot(np.log10(lambdas), MSELassoPredict, 'r--', label = 'MSE Lasso Test') + +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() + + +# Both these example send a clear message. The addition of a +# shrinkage/regularization term implies that we need to perform a search +# for the optimal values of $\lambda$. We will see this throughout these +# series of lectures. +# +# +# As a small addendum, we note that you can also solve this problem using the convex optimization package [CVXOPT](https://cvxopt.org/examples/mlbook/l1regls.html). This requires, in addition to having installed **CVXOPT**, you need to download the file *l1regl.py*. +# The following code example solves the simpler problem we discussed above, where we have added the latter python file. + +# In[12]: + + +from cvxopt import matrix, spdiag, mul, div, sqrt, normal, setseed +from cvxopt import blas, lapack, solvers, sparse, spmatrix +import math + +try: + import mosek + import sys + __MOSEK = True +except: __MOSEK = False + +if __MOSEK: + + def l1regls_mosek(A, b): + """ + + Returns the solution of l1-norm regularized least-squares problem + + minimize || A*x - b ||_2^2 + e'*u + + subject to -u <= x <= u + + """ + + m, n = A.size + + env = mosek.Env() + task = env.Task(0,0) + task.set_Stream(mosek.streamtype.log, lambda x: sys.stdout.write(x)) + + task.appendvars( 2*n) # number of variables + task.appendcons( 2*n) # number of constraints + + # input quadratic objective + Q = matrix(0.0, (n,n)) + blas.syrk(A, Q, alpha = 2.0, trans='T') + + I = [] + for i in range(n): + I.extend(range(i,n)) + + J = [] + for i in range(n): + J.extend((n-i)*[i]) + + task.putqobj(I, J, list(Q[matrix(I) + matrix(J)*n])) + task.putclist(range(2*n), list(-2*A.T*b) + n*[1.0]) # setup linear objective + + # input constraint matrix row by row + for i in range(n): + task.putarow( i, [i, n+i], [1.0, -1.0]) + task.putarow( n+i, [i, n+i], [1.0, 1.0]) + + # setup bounds on constraints + task.putboundslice(mosek.accmode.con, + 0, n, n*[mosek.boundkey.up], n*[0.0], n*[0.0]) + task.putboundslice(mosek.accmode.con, + n, 2*n, n*[mosek.boundkey.lo], n*[0.0], n*[0.0]) + + # setup variable bounds + task.putboundslice(mosek.accmode.var, + 0, 2*n, 2*n*[mosek.boundkey.fr], 2*n*[0.0], 2*n*[0.0]) + + # optimize the task + task.putobjsense(mosek.objsense.minimize) + task.optimize() + task.solutionsummary(mosek.streamtype.log) + x = n*[0.0] + task.getsolutionslice(mosek.soltype.itr, mosek.solitem.xx, 0, n, x) + + return matrix(x) + + def l1regls_mosek2(A, b): + """ + + Returns the solution of l1-norm regularized least-squares problem + + minimize w'*w + e'*u + + subject to -u <= x <= u + + A*x - w = b + + """ + + m, n = A.size + + env = mosek.Env() + task = env.Task(0,0) + task.set_Stream(mosek.streamtype.log, lambda x: sys.stdout.write(x)) + + task.appendvars(2*n + m) # number of variables + task.appendcons(2*n + m) # number of constraints + + # input quadratic objective + task.putqobj(range(2*n,2*n+m), range(2*n,2*n+m), m*[2.0]) + + task.putclist(range(2*n+m), n*[0.0] + n*[1.0] + m*[0.0]) # setup linear objective + + # input constraint matrix row by row + for i in range(n): + task.putarow( i, [i, n+i], [1.0, -1.0]) + task.putarow( n+i, [i, n+i], [1.0, 1.0]) + + for i in range(m): + task.putarow( 2*n+i, range(n) + [2*n+i], list(A[i,:]) + [-1.0]) + + # setup bounds on constraints + task.putboundslice(mosek.accmode.con, + 0, n, n*[mosek.boundkey.up], n*[0.0], n*[0.0]) + task.putboundslice(mosek.accmode.con, + n, 2*n, n*[mosek.boundkey.lo], n*[0.0], n*[0.0]) + task.putboundslice(mosek.accmode.con, + 2*n, 2*n+m, m*[mosek.boundkey.fx], list(b), list(b)) + + # setup variable bounds + task.putboundslice(mosek.accmode.var, 0, 2*n+m, (2*n+m)*[mosek.boundkey.fr], + (2*n+m)*[0.0], (2*n+m)*[0.0]) + + # optimize the task + task.putobjsense(mosek.objsense.minimize) + task.optimize() + task.solutionsummary(mosek.streamtype.log) + x = n*[0.0] + task.getsolutionslice(mosek.soltype.itr, mosek.solitem.xx, 0, n, x) + + return matrix(x) + +def l1regls(A, b): + """ + + Returns the solution of l1-norm regularized least-squares problem + + minimize || A*x - b ||_2^2 + || x ||_1. + + """ + + m, n = A.size + q = matrix(1.0, (2*n,1)) + q[:n] = -2.0 * A.T * b + + def P(u, v, alpha = 1.0, beta = 0.0 ): + """ + v := alpha * 2.0 * [ A'*A, 0; 0, 0 ] * u + beta * v + """ + v *= beta + v[:n] += alpha * 2.0 * A.T * (A * u[:n]) + + + def G(u, v, alpha=1.0, beta=0.0, trans='N'): + """ + v := alpha*[I, -I; -I, -I] * u + beta * v (trans = 'N' or 'T') + """ + + v *= beta + v[:n] += alpha*(u[:n] - u[n:]) + v[n:] += alpha*(-u[:n] - u[n:]) + + h = matrix(0.0, (2*n,1)) + + + # Customized solver for the KKT system + # + # [ 2.0*A'*A 0 I -I ] [x[:n] ] [bx[:n] ] + # [ 0 0 -I -I ] [x[n:] ] = [bx[n:] ]. + # [ I -I -D1^-1 0 ] [zl[:n]] [bzl[:n]] + # [ -I -I 0 -D2^-1 ] [zl[n:]] [bzl[n:]] + # + # where D1 = W['di'][:n]**2, D2 = W['di'][:n]**2. + # + # We first eliminate zl and x[n:]: + # + # ( 2*A'*A + 4*D1*D2*(D1+D2)^-1 ) * x[:n] = + # bx[:n] - (D2-D1)*(D1+D2)^-1 * bx[n:] + + # D1 * ( I + (D2-D1)*(D1+D2)^-1 ) * bzl[:n] - + # D2 * ( I - (D2-D1)*(D1+D2)^-1 ) * bzl[n:] + # + # x[n:] = (D1+D2)^-1 * ( bx[n:] - D1*bzl[:n] - D2*bzl[n:] ) + # - (D2-D1)*(D1+D2)^-1 * x[:n] + # + # zl[:n] = D1 * ( x[:n] - x[n:] - bzl[:n] ) + # zl[n:] = D2 * (-x[:n] - x[n:] - bzl[n:] ). + # + # The first equation has the form + # + # (A'*A + D)*x[:n] = rhs + # + # and is equivalent to + # + # [ D A' ] [ x:n] ] = [ rhs ] + # [ A -I ] [ v ] [ 0 ]. + # + # It can be solved as + # + # ( A*D^-1*A' + I ) * v = A * D^-1 * rhs + # x[:n] = D^-1 * ( rhs - A'*v ). + + S = matrix(0.0, (m,m)) + Asc = matrix(0.0, (m,n)) + v = matrix(0.0, (m,1)) + + def Fkkt(W): + + # Factor + # + # S = A*D^-1*A' + I + # + # where D = 2*D1*D2*(D1+D2)^-1, D1 = d[:n]**-2, D2 = d[n:]**-2. + + d1, d2 = W['di'][:n]**2, W['di'][n:]**2 + + # ds is square root of diagonal of D + ds = math.sqrt(2.0) * div( mul( W['di'][:n], W['di'][n:]), + sqrt(d1+d2) ) + d3 = div(d2 - d1, d1 + d2) + + # Asc = A*diag(d)^-1/2 + Asc = A * spdiag(ds**-1) + + # S = I + A * D^-1 * A' + blas.syrk(Asc, S) + S[::m+1] += 1.0 + lapack.potrf(S) + + def g(x, y, z): + + x[:n] = 0.5 * ( x[:n] - mul(d3, x[n:]) + + mul(d1, z[:n] + mul(d3, z[:n])) - mul(d2, z[n:] - + mul(d3, z[n:])) ) + x[:n] = div( x[:n], ds) + + # Solve + # + # S * v = 0.5 * A * D^-1 * ( bx[:n] - + # (D2-D1)*(D1+D2)^-1 * bx[n:] + + # D1 * ( I + (D2-D1)*(D1+D2)^-1 ) * bzl[:n] - + # D2 * ( I - (D2-D1)*(D1+D2)^-1 ) * bzl[n:] ) + + blas.gemv(Asc, x, v) + lapack.potrs(S, v) + + # x[:n] = D^-1 * ( rhs - A'*v ). + blas.gemv(Asc, v, x, alpha=-1.0, beta=1.0, trans='T') + x[:n] = div(x[:n], ds) + + # x[n:] = (D1+D2)^-1 * ( bx[n:] - D1*bzl[:n] - D2*bzl[n:] ) + # - (D2-D1)*(D1+D2)^-1 * x[:n] + x[n:] = div( x[n:] - mul(d1, z[:n]) - mul(d2, z[n:]), d1+d2 ) - mul( d3, x[:n] ) + + # zl[:n] = D1^1/2 * ( x[:n] - x[n:] - bzl[:n] ) + # zl[n:] = D2^1/2 * ( -x[:n] - x[n:] - bzl[n:] ). + z[:n] = mul( W['di'][:n], x[:n] - x[n:] - z[:n] ) + z[n:] = mul( W['di'][n:], -x[:n] - x[n:] - z[n:] ) + + return g + + return solvers.coneqp(P, q, G, h, kktsolver = Fkkt)['x'][:n] + + +# Then we call the above functions and solve the problem, as done here + +# In[ ]: + + +from cvxopt import matrix, normal + +X = matrix( [ [ 2, 0, 1], [0, 1, 3]]) +y = matrix( [4, 2, 3]) +x = l1regls(X,y) + + +# **More text will be added to this example.** +# +# ## Linking the regression analysis with a statistical interpretation +# +# We will now couple the discussions of ordinary least squares, Ridge +# and Lasso regression with a statistical interpretation, that is we +# move from a linear algebra analysis to a statistical analysis. In +# particular, we will focus on what the regularization terms can result +# in. We will amongst other things show that the regularization +# parameter can reduce considerably the variance of the parameters +# $\beta$. +# +# +# The +# advantage of doing linear regression is that we actually end up with +# analytical expressions for several statistical quantities. +# Standard least squares and Ridge regression allow us to +# derive quantities like the variance and other expectation values in a +# rather straightforward way. +# +# +# It is assumed that $\varepsilon_i +# \sim \mathcal{N}(0, \sigma^2)$ and the $\varepsilon_{i}$ are +# independent, i.e.: + +# $$ +# \begin{align*} +# \mbox{Cov}(\varepsilon_{i_1}, +# \varepsilon_{i_2}) & = \left\{ \begin{array}{lcc} \sigma^2 & \mbox{if} +# & i_1 = i_2, \\ 0 & \mbox{if} & i_1 \not= i_2. \end{array} \right. +# \end{align*} +# $$ + +# The randomness of $\varepsilon_i$ implies that +# $\mathbf{y}_i$ is also a random variable. In particular, +# $\mathbf{y}_i$ is normally distributed, because $\varepsilon_i \sim +# \mathcal{N}(0, \sigma^2)$ and $\mathbf{X}_{i,\ast} \, \boldsymbol{\beta}$ is a +# non-random scalar. To specify the parameters of the distribution of +# $\mathbf{y}_i$ we need to calculate its first two moments. +# +# Recall that $\boldsymbol{X}$ is a matrix of dimensionality $n\times p$. The +# notation above $\mathbf{X}_{i,\ast}$ means that we are looking at the +# row number $i$ and perform a sum over all values $p$. +# +# +# +# The assumption we have made here can be summarized as (and this is going to be useful when we discuss the bias-variance trade off) +# that there exists a function $f(\boldsymbol{x})$ and a normal distributed error $\boldsymbol{\varepsilon}\sim \mathcal{N}(0, \sigma^2)$ +# which describe our data + +# $$ +# \boldsymbol{y} = f(\boldsymbol{x})+\boldsymbol{\varepsilon} +# $$ + +# We approximate this function with our model from the solution of the linear regression equations, that is our +# function $f$ is approximated by $\boldsymbol{\tilde{y}}$ where we want to minimize $(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2$, our MSE, with + +# $$ +# \boldsymbol{\tilde{y}} = \boldsymbol{X}\boldsymbol{\beta}. +# $$ + +# We can calculate the expectation value of $\boldsymbol{y}$ for a given element $i$ + +# $$ +# \begin{align*} +# \mathbb{E}(y_i) & = +# \mathbb{E}(\mathbf{X}_{i, \ast} \, \boldsymbol{\beta}) + \mathbb{E}(\varepsilon_i) +# \, \, \, = \, \, \, \mathbf{X}_{i, \ast} \, \beta, +# \end{align*} +# $$ + +# while +# its variance is + +# $$ +# \begin{align*} \mbox{Var}(y_i) & = \mathbb{E} \{ [y_i +# - \mathbb{E}(y_i)]^2 \} \, \, \, = \, \, \, \mathbb{E} ( y_i^2 ) - +# [\mathbb{E}(y_i)]^2 \\ & = \mathbb{E} [ ( \mathbf{X}_{i, \ast} \, +# \beta + \varepsilon_i )^2] - ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 \\ & +# = \mathbb{E} [ ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 + 2 \varepsilon_i +# \mathbf{X}_{i, \ast} \, \boldsymbol{\beta} + \varepsilon_i^2 ] - ( \mathbf{X}_{i, +# \ast} \, \beta)^2 \\ & = ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 + 2 +# \mathbb{E}(\varepsilon_i) \mathbf{X}_{i, \ast} \, \boldsymbol{\beta} + +# \mathbb{E}(\varepsilon_i^2 ) - ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 +# \\ & = \mathbb{E}(\varepsilon_i^2 ) \, \, \, = \, \, \, +# \mbox{Var}(\varepsilon_i) \, \, \, = \, \, \, \sigma^2. +# \end{align*} +# $$ + +# Hence, $y_i \sim \mathcal{N}( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta}, \sigma^2)$, that is $\boldsymbol{y}$ follows a normal distribution with +# mean value $\boldsymbol{X}\boldsymbol{\beta}$ and variance $\sigma^2$ (not be confused with the singular values of the SVD). +# +# +# With the OLS expressions for the parameters $\boldsymbol{\beta}$ we can evaluate the expectation value + +# $$ +# \mathbb{E}(\boldsymbol{\beta}) = \mathbb{E}[ (\mathbf{X}^{\top} \mathbf{X})^{-1}\mathbf{X}^{T} \mathbf{Y}]=(\mathbf{X}^{T} \mathbf{X})^{-1}\mathbf{X}^{T} \mathbb{E}[ \mathbf{Y}]=(\mathbf{X}^{T} \mathbf{X})^{-1} \mathbf{X}^{T}\mathbf{X}\boldsymbol{\beta}=\boldsymbol{\beta}. +# $$ + +# This means that the estimator of the regression parameters is unbiased. +# +# We can also calculate the variance +# +# The variance of $\boldsymbol{\beta}$ is + +# $$ +# \begin{eqnarray*} +# \mbox{Var}(\boldsymbol{\beta}) & = & \mathbb{E} \{ [\boldsymbol{\beta} - \mathbb{E}(\boldsymbol{\beta})] [\boldsymbol{\beta} - \mathbb{E}(\boldsymbol{\beta})]^{T} \} +# \\ +# & = & \mathbb{E} \{ [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y} - \boldsymbol{\beta}] \, [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y} - \boldsymbol{\beta}]^{T} \} +# \\ +# % & = & \mathbb{E} \{ [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y}] \, [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y}]^{T} \} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# % \\ +# % & = & \mathbb{E} \{ (\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y} \, \mathbf{Y}^{T} \, \mathbf{X} \, (\mathbf{X}^{T} \mathbf{X})^{-1} \} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# % \\ +# & = & (\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \, \mathbb{E} \{ \mathbf{Y} \, \mathbf{Y}^{T} \} \, \mathbf{X} \, (\mathbf{X}^{T} \mathbf{X})^{-1} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# \\ +# & = & (\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \, \{ \mathbf{X} \, \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} \, \mathbf{X}^{T} + \sigma^2 \} \, \mathbf{X} \, (\mathbf{X}^{T} \mathbf{X})^{-1} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# % \\ +# % & = & (\mathbf{X}^T \mathbf{X})^{-1} \, \mathbf{X}^T \, \mathbf{X} \, \boldsymbol{\beta} \, \boldsymbol{\beta}^T \, \mathbf{X}^T \, \mathbf{X} \, (\mathbf{X}^T % \mathbf{X})^{-1} +# % \\ +# % & & + \, \, \sigma^2 \, (\mathbf{X}^T \mathbf{X})^{-1} \, \mathbf{X}^T \, \mathbf{X} \, (\mathbf{X}^T \mathbf{X})^{-1} - \boldsymbol{\beta} \boldsymbol{\beta}^T +# \\ +# & = & \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} + \sigma^2 \, (\mathbf{X}^{T} \mathbf{X})^{-1} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# \, \, \, = \, \, \, \sigma^2 \, (\mathbf{X}^{T} \mathbf{X})^{-1}, +# \end{eqnarray*} +# $$ + +# where we have used that $\mathbb{E} (\mathbf{Y} \mathbf{Y}^{T}) = +# \mathbf{X} \, \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} \, \mathbf{X}^{T} + +# \sigma^2 \, \mathbf{I}_{nn}$. From $\mbox{Var}(\boldsymbol{\beta}) = \sigma^2 +# \, (\mathbf{X}^{T} \mathbf{X})^{-1}$, one obtains an estimate of the +# variance of the estimate of the $j$-th regression coefficient: +# $\boldsymbol{\sigma}^2 (\boldsymbol{\beta}_j ) = \boldsymbol{\sigma}^2 [(\mathbf{X}^{T} \mathbf{X})^{-1}]_{jj} $. This may be used to +# construct a confidence interval for the estimates. +# +# +# In a similar way, we can obtain analytical expressions for say the +# expectation values of the parameters $\boldsymbol{\beta}$ and their variance +# when we employ Ridge regression, allowing us again to define a confidence interval. +# +# It is rather straightforward to show that + +# $$ +# \mathbb{E} \big[ \boldsymbol{\beta}^{\mathrm{Ridge}} \big]=(\mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X})\boldsymbol{\beta}^{\mathrm{OLS}}. +# $$ + +# We see clearly that +# $\mathbb{E} \big[ \boldsymbol{\beta}^{\mathrm{Ridge}} \big] \not= \boldsymbol{\beta}^{\mathrm{OLS}}$ for any $\lambda > 0$. We say then that the ridge estimator is biased. +# +# We can also compute the variance as + +# $$ +# \mbox{Var}[\boldsymbol{\beta}^{\mathrm{Ridge}}]=\sigma^2[ \mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I} ]^{-1} \mathbf{X}^{T} \mathbf{X} \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I} ]^{-1}\}^{T}, +# $$ + +# and it is easy to see that if the parameter $\lambda$ goes to infinity then the variance of Ridge parameters $\boldsymbol{\beta}$ goes to zero. +# +# With this, we can compute the difference + +# $$ +# \mbox{Var}[\boldsymbol{\beta}^{\mathrm{OLS}}]-\mbox{Var}(\boldsymbol{\beta}^{\mathrm{Ridge}})=\sigma^2 [ \mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I} ]^{-1}[ 2\lambda\mathbf{I} + \lambda^2 (\mathbf{X}^{T} \mathbf{X})^{-1} ] \{ [ \mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I} ]^{-1}\}^{T}. +# $$ + +# The difference is non-negative definite since each component of the +# matrix product is non-negative definite. +# This means the variance we obtain with the standard OLS will always for $\lambda > 0$ be larger than the variance of $\boldsymbol{\beta}$ obtained with the Ridge estimator. This has interesting consequences when we discuss the so-called bias-variance trade-off below. +# +# +# +# ## Deriving OLS from a probability distribution +# +# Our basic assumption when we derived the OLS equations was to assume +# that our output is determined by a given continuous function +# $f(\boldsymbol{x})$ and a random noise $\boldsymbol{\epsilon}$ given by the normal +# distribution with zero mean value and an undetermined variance +# $\sigma^2$. +# +# We found above that the outputs $\boldsymbol{y}$ have a mean value given by +# $\boldsymbol{X}\hat{\boldsymbol{\beta}}$ and variance $\sigma^2$. Since the entries to +# the design matrix are not stochastic variables, we can assume that the +# probability distribution of our targets is also a normal distribution +# but now with mean value $\boldsymbol{X}\hat{\boldsymbol{\beta}}$. This means that a +# single output $y_i$ is given by the Gaussian distribution + +# $$ +# y_i\sim \mathcal{N}(\boldsymbol{X}_{i,*}\boldsymbol{\beta}, \sigma^2)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\left[-\frac{(y_i-\boldsymbol{X}_{i,*}\boldsymbol{\beta})^2}{2\sigma^2}\right]}. +# $$ + +# We assume now that the various $y_i$ values are stochastically distributed according to the above Gaussian distribution. +# We define this distribution as + +# $$ +# p(y_i, \boldsymbol{X}\vert\boldsymbol{\beta})=\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\left[-\frac{(y_i-\boldsymbol{X}_{i,*}\boldsymbol{\beta})^2}{2\sigma^2}\right]}, +# $$ + +# which reads as finding the likelihood of an event $y_i$ with the input variables $\boldsymbol{X}$ given the parameters (to be determined) $\boldsymbol{\beta}$. +# +# Since these events are assumed to be independent and identicall distributed we can build the probability distribution function (PDF) for all possible event $\boldsymbol{y}$ as the product of the single events, that is we have + +# $$ +# p(\boldsymbol{y},\boldsymbol{X}\vert\boldsymbol{\beta})=\prod_{i=0}^{n-1}\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\left[-\frac{(y_i-\boldsymbol{X}_{i,*}\boldsymbol{\beta})^2}{2\sigma^2}\right]}=\prod_{i=0}^{n-1}p(y_i,\boldsymbol{X}\vert\boldsymbol{\beta}). +# $$ + +# We will write this in a more compact form reserving $\boldsymbol{D}$ for the domain of events, including the ouputs (targets) and the inputs. That is +# in case we have a simple one-dimensional input and output case + +# $$ +# \boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})]. +# $$ + +# In the more general case the various inputs should be replaced by the possible features represented by the input data set $\boldsymbol{X}$. +# We can now rewrite the above probability as + +# $$ +# p(\boldsymbol{D}\vert\boldsymbol{\beta})=\prod_{i=0}^{n-1}\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\left[-\frac{(y_i-\boldsymbol{X}_{i,*}\boldsymbol{\beta})^2}{2\sigma^2}\right]}. +# $$ + +# It is a conditional probability (see below) and reads as the +# likelihood of a domain of events $\boldsymbol{D}$ given a set of parameters +# $\boldsymbol{\beta}$. +# +# +# In statistics, maximum likelihood estimation (MLE) is a method of +# estimating the parameters of an assumed probability distribution, +# given some observed data. This is achieved by maximizing a likelihood +# function so that, under the assumed statistical model, the observed +# data is the most probable. +# +# +# We will assume here that our events are given by the above Gaussian +# distribution and we will determine the optimal parameters $\beta$ by +# maximizing the above PDF. However, computing the derivatives of a +# product function is cumbersome and can easily lead to overflow and/or +# underflowproblems, with potentials for loss of numerical precision. +# +# +# In practice, it is more convenient to maximize the logarithm of the +# PDF because it is a monotonically increasing function of the argument. +# Alternatively, and this will be our option, we will minimize the +# negative of the logarithm since this is a monotonically decreasing +# function. +# +# Note also that maximization/minimization of the logarithm of the PDF +# is equivalent to the maximization/minimization of the function itself. +# +# +# +# +# We could now define a new cost function to minimize, namely the negative logarithm of the above PDF + +# $$ +# C(\boldsymbol{\beta}=-\log{\prod_{i=0}^{n-1}p(y_i,\boldsymbol{X}\vert\boldsymbol{\beta})}=-\sum_{i=0}^{n-1}\log{p(y_i,\boldsymbol{X}\vert\boldsymbol{\beta})}, +# $$ + +# which becomes + +# $$ +# C(\boldsymbol{\beta}=\frac{n}{2}\log{2\pi\sigma^2}+\frac{\vert\vert (\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})\vert\vert_2^2}{2\sigma^2}. +# $$ + +# Taking the derivative of the *new* cost function with respect to the parameters $\beta$ we recognize our familiar OLS equation, namely + +# $$ +# \boldsymbol{X}^T\left(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta}\right) =0, +# $$ + +# which leads to the well-known OLS equation for the optimal paramters $\beta$ + +# $$ +# \hat{\boldsymbol{\beta}}^{\mathrm{OLS}}=\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}! +# $$ + +# Before we make a similar analysis for Ridge and Lasso regression, we need a short reminder on statistics. +# +# +# A central theorem in statistics is Bayes' theorem. This theorem plays a similar role as the good old Pythagoras' theorem in geometry. +# Bayes' theorem is extremely simple to derive. But to do so we need some basic axioms from statistics. +# +# Assume we have two domains of events $X=[x_0,x_1,\dots,x_{n-1}]$ and $Y=[y_0,y_1,\dots,y_{n-1}]$. +# +# We define also the likelihood for $X$ and $Y$ as $p(X)$ and $p(Y)$ respectively. +# The likelihood of a specific event $x_i$ (or $y_i$) is then written as $p(X=x_i)$ or just $p(x_i)=p_i$. +# +# The union of events is given by + +# $$ +# p(X \cup Y)= p(X)+p(Y)-p(X \cap Y). +# $$ + +# The product rule (aka joint probability) is given by + +# $$ +# p(X \cup Y)= p(X,Y)= p(X\vert Y)p(Y)=p(Y\vert X)p(X), +# $$ + +# where we read $p(X\vert Y)$ as the likelihood of obtaining $X$ given $Y$. +# +# If we have independent events then $p(X,Y)=p(X)p(Y)$. +# +# +# +# The marginal probability is defined in terms of only one of the set of variables $X,Y$. For a discrete probability we have + +# $$ +# p(X)=\sum_{i=0}^{n-1}p(X,Y=y_i)=\sum_{i=0}^{n-1}p(X\vert Y=y_i)p(Y=y_i)=\sum_{i=0}^{n-1}p(X\vert y_i)p(y_i). +# $$ + +# The conditional probability, if $p(Y) > 0$, is + +# $$ +# p(X\vert Y)= \frac{p(X,Y)}{p(Y)}=\frac{p(X,Y)}{\sum_{i=0}^{n-1}p(Y\vert X=x_i)p(x_i)}. +# $$ + +# If we combine the conditional probability with the marginal probability and the standard product rule, we have + +# $$ +# p(X\vert Y)= \frac{p(X,Y)}{p(Y)}, +# $$ + +# which we can rewrite as + +# $$ +# p(X\vert Y)= \frac{p(X,Y)}{\sum_{i=0}^{n-1}p(Y\vert X=x_i)p(x_i)}=\frac{p(Y\vert X)p(X)}{\sum_{i=0}^{n-1}p(Y\vert X=x_i)p(x_i)}, +# $$ + +# which is Bayes' theorem. It allows us to evaluate the uncertainty in in $X$ after we have observed $Y$. We can easily interchange $X$ with $Y$. +# +# +# The quantity $p(Y\vert X)$ on the right-hand side of the theorem is +# evaluated for the observed data $Y$ and can be viewed as a function of +# the parameter space represented by $X$. This function is not +# necesseraly normalized and is normally called the likelihood function. +# +# The function $p(X)$ on the right hand side is called the prior while +# the function on the left hand side is the called the posterior +# probability. The denominator on the right hand side serves as a +# normalization factor for the posterior distribution. +# +# Let us try to illustrate Bayes' theorem through an example. +# +# +# Let us suppose that you are undergoing a series of mammography scans +# in order to rule out possible breast cancer cases. We define the +# sensitivity for a positive event by the variable $X$. It takes binary +# values with $X=1$ representing a positive event and $X=0$ being a +# negative event. We reserve $Y$ as a classification parameter for +# either a negative or a positive breast cancer confirmation. (Short +# note on wordings: positive here means having breast cancer, although +# none of us would consider this being a positive thing). +# +# We let $Y=1$ represent the the case of having breast cancer and $Y=0$ as not. +# +# Let us assume that if you have breast cancer, the test will be positive with a probability of $0.8$ (the numbers here are all made up), +# that is we have + +# $$ +# p(X=1\vert Y=1) =0.8. +# $$ + +# This obviously sounds scary since many would conclude that if the test +# is positive, there is a likelihood of $80\%$ for having cancer. It is +# however not correct, as the following Bayesian analysis shows. The correct question to pose is *what is the probability of having breast cancer in case of a positive test?* +# We are thus interested in + +# $$ +# p(Y=1\vert X=1), +# $$ + +# instead of $p(X=1\vert Y=1)$. +# +# +# +# If we look at various national surveys on breast cancer, the general +# likelihood of developing breast cancer is a very small number. Let us +# assume that the prior probability in the population as a whole is + +# $$ +# p(Y=1) =0.004. +# $$ + +# We need also to account for the fact that the test may produce a false +# positive result (false alarm). Let us here assume that we have + +# $$ +# p(X=1\vert Y=0) =0.1. +# $$ + +# Using Bayes' theorem we can then find the posterior probability that +# the person has breast cancer in case of a positive test, that is we +# can compute + +# +#
    +# +# $$ +# \begin{equation} +# p(Y=1\vert X=1)=\frac{p(X=1\vert Y=1)p(Y=1)}{p(X=1\vert Y=1)p(Y=1)+p(X=1\vert Y=0)p(Y=0)}= +# \label{_auto2} \tag{2} +# \end{equation} +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# \frac{0.8\times 0.004}{0.8\times 0.004+0.1\times 0.996}=0.031. +# \label{_auto3} \tag{3} +# \end{equation} +# $$ + +# That is, in case of a positive test, there is only a $3\%$ chance of having breast cancer! +# +# +# +# ## Bayes' Theorem and Ridge and Lasso Regression +# +# Hitherto we have discussed Ridge and Lasso regression in terms of a +# linear analysis. This may to many of you feel rather technical and +# perhaps not that intuitive. The question is whether we can develop a +# more intuitive way of understanding what Ridge and Lasso express. +# +# Before we proceed let us perform a Ridge, Lasso and OLS analysis of a polynomial fit. +# +# +# We will play around with a study of the values for the optimal +# parameters $\boldsymbol{\beta}$ using OLS, Ridge and Lasso regression. For +# OLS, you will notice as function of the noise and polynomial degree, +# that the parameters $\beta$ will fluctuate from order to order in the +# polynomial fit and that for larger and larger polynomial degrees of +# freedom, the parameters will tend to increase in value for OLS. +# +# For Ridge and Lasso regression, the higher order parameters will +# typically be reduced, providing thereby less fluctuations from one +# order to another one. + +# In[ ]: + + +import numpy as np +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn import linear_model + +def R2(y_data, y_model): + return 1 - np.sum((y_data - y_model) ** 2) / np.sum((y_data - np.mean(y_data)) ** 2) +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + +# Make data set. +n = 10000 +x = np.random.rand(n) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n) + +Maxpolydegree = 5 +X = np.zeros((len(x),Maxpolydegree)) +X[:,0] = 1.0 + +for polydegree in range(1, Maxpolydegree): + for degree in range(polydegree): + X[:,degree] = x**(degree) + + +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +# matrix inversion to find beta +OLSbeta = np.linalg.pinv(X_train.T @ X_train) @ X_train.T @ y_train +print(OLSbeta) +ypredictOLS = X_test @ OLSbeta +print("Test MSE OLS") +print(MSE(y_test,ypredictOLS)) +# Repeat now for Lasso and Ridge regression and various values of the regularization parameter using Scikit-Learn +# Decide which values of lambda to use +nlambdas = 4 +MSERidgePredict = np.zeros(nlambdas) +MSELassoPredict = np.zeros(nlambdas) +lambdas = np.logspace(-3, 1, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + # Make the fit using Ridge and Lasso + RegRidge = linear_model.Ridge(lmb,fit_intercept=False) + RegRidge.fit(X_train,y_train) + RegLasso = linear_model.Lasso(lmb,fit_intercept=False) + RegLasso.fit(X_train,y_train) + # and then make the prediction + ypredictRidge = RegRidge.predict(X_test) + ypredictLasso = RegLasso.predict(X_test) + # Compute the MSE and print it + MSERidgePredict[i] = MSE(y_test,ypredictRidge) + MSELassoPredict[i] = MSE(y_test,ypredictLasso) +# print(lmb,RegRidge.coef_) +# print(lmb,RegLasso.coef_) +# Now plot the results +plt.figure() +plt.plot(np.log10(lambdas), MSERidgePredict, 'b', label = 'MSE Ridge Test') +plt.plot(np.log10(lambdas), MSELassoPredict, 'r', label = 'MSE Lasso Test') +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() + + +# How can we understand this? +# +# Let us write out the values of the coefficients $\beta_i$ as functions +# of the polynomial degree and noise. We will focus only on the Ridge +# results and some few selected values of the hyperparameter $\lambda$. +# +# If we don't include any noise and run this code for different values +# of the polynomial degree, we notice that the results for $\beta_i$ do +# not show great changes from one order to the next. This is an +# indication that for higher polynomial orders, our parameters become +# less important. +# +# If we however add noise, what happens is that the polynomial fit is +# trying to adjust the fit to traverse in the best possible way all data +# points. This can lead to large fluctuations in the parameters +# $\beta_i$ as functions of polynomial order. It will also be reflected +# in a larger value of the variance of each parameter $\beta_i$. What +# Ridge regression (and Lasso as well) are doing then is to try to +# quench the fluctuations in the parameters of $\beta_i$ which have a +# large variance (normally for higher orders in the polynomial). + +# In[ ]: + + +import numpy as np +import pandas as pd +from IPython.display import display +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn import linear_model + +# Make data set. +n = 1000 +x = np.random.rand(n) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.randn(n) + +Maxpolydegree = 5 +X = np.zeros((len(x),Maxpolydegree)) +X[:,0] = 1.0 + +for polydegree in range(1, Maxpolydegree): + for degree in range(polydegree): + X[:,degree] = x**(degree) + + +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +# Decide which values of lambda to use +nlambdas = 5 +lambdas = np.logspace(-3, 2, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + # Make the fit using Ridge only + RegRidge = linear_model.Ridge(lmb,fit_intercept=False) + RegRidge.fit(X_train,y_train) + # and then make the prediction + ypredictRidge = RegRidge.predict(X_test) + Coeffs = np.array(RegRidge.coef_) + BetaValues = pd.DataFrame(Coeffs) + BetaValues.columns = ['beta'] + display(BetaValues) + + +# As an exercise, repeat these calculations with ordinary least squares +# only with and without noise. Calculate thereafter the variance of the +# parameters $\beta_j$ as function of polynomial order and of the added +# noise. Here we recommend to use $\sigma^2=1$ as variance for the +# added noise (which follows a normal distribution with mean value zero). +# Comment your results. If you have a large noise term, do the parameters $\beta_j$ vary more as function +# model complexity? And what about their variance? +# +# +# +# +# ## Linking Bayes' Theorem with Ridge and Lasso Regression +# +# We have seen that Ridge regression suppresses those features which +# have a small singular value. This corresponds to a feature which exhibits +# a large variance in the parameters $\beta_j$. +# Our analysis hitherto has been based on linear algebra. To add to our intuition, we will use +# Bayes' theorem in order to deepen our understanding of Ridge and Lasso regression. +# +# For ordinary least squares we postulated that the maximum likelihood for the domain of events $\boldsymbol{D}$ (one-dimensional case) + +# $$ +# \boldsymbol{D}=[(x_0,y_0), (x_1,y_1),\dots, (x_{n-1},y_{n-1})], +# $$ + +# is given by + +# $$ +# p(\boldsymbol{D}\vert\boldsymbol{\beta})=\prod_{i=0}^{n-1}\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\left[-\frac{(y_i-\boldsymbol{X}_{i,*}\boldsymbol{\beta})^2}{2\sigma^2}\right]}. +# $$ + +# In Bayes' theorem this function plays the role of the so-called likelihood. We could now ask the question what is the posterior probability of a parameter set $\boldsymbol{\beta}$ given a domain of events $\boldsymbol{D}$? That is, how can we define the posterior probability + +# $$ +# p(\boldsymbol{\beta}\vert\boldsymbol{D}). +# $$ + +# Bayes' theorem comes to our rescue here since (omitting the normalization constant) + +# $$ +# p(\boldsymbol{\beta}\vert\boldsymbol{D})\propto p(\boldsymbol{D}\vert\boldsymbol{\beta})p(\boldsymbol{\beta}). +# $$ + +# We have a model for $p(\boldsymbol{D}\vert\boldsymbol{\beta})$ but need one for the **prior** $p(\boldsymbol{\beta}$! +# +# +# +# With the posterior probability defined by a likelihood which we have +# already modeled and an unknown prior, we are now ready to make +# additional models for the prior. +# +# We can, based on our discussions of the variance of $\boldsymbol{\beta}$ and +# the mean value, assume that the prior for the values $\boldsymbol{\beta}$ is +# given by a Gaussian with mean value zero and variance $\tau^2$, that +# is + +# $$ +# p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\beta_j^2}{2\tau^2}\right)}. +# $$ + +# Our posterior probability becomes then (omitting the normalization factor which is just a constant) + +# $$ +# p(\boldsymbol{\beta\vert\boldsymbol{D})}=\prod_{i=0}^{n-1}\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\left[-\frac{(y_i-\boldsymbol{X}_{i,*}\boldsymbol{\beta})^2}{2\sigma^2}\right]}\prod_{j=0}^{p-1}\exp{\left(-\frac{\beta_j^2}{2\tau^2}\right)}. +# $$ + +# We can now optimize this quantity with respect to $\boldsymbol{\beta}$. As we +# did for OLS, this is most conveniently done by taking the negative +# logarithm of the posterior probability. Doing so and leaving out the +# terms that do not depend on $\beta$, we have + +# $$ +# C(\boldsymbol{\beta})=\frac{\vert\vert (\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})\vert\vert_2^2}{2\sigma^2}+\frac{1}{2\tau^2}\vert\vert\boldsymbol{\beta}\vert\vert_2^2, +# $$ + +# and replacing $1/2\tau^2$ with $\lambda$ we have + +# $$ +# C(\boldsymbol{\beta})=\frac{\vert\vert (\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})\vert\vert_2^2}{2\sigma^2}+\lambda\vert\vert\boldsymbol{\beta}\vert\vert_2^2, +# $$ + +# which is our Ridge cost function! Nice, isn't it? +# +# +# To derive the Lasso cost function, we simply replace the Gaussian prior with an exponential distribution ([Laplace in this case](https://en.wikipedia.org/wiki/Laplace_distribution)) with zero mean value, that is + +# $$ +# p(\boldsymbol{\beta})=\prod_{j=0}^{p-1}\exp{\left(-\frac{\vert\beta_j\vert}{\tau}\right)}. +# $$ + +# Our posterior probability becomes then (omitting the normalization factor which is just a constant) + +# $$ +# p(\boldsymbol{\beta}\vert\boldsymbol{D})=\prod_{i=0}^{n-1}\frac{1}{\sqrt{2\pi\sigma^2}}\exp{\left[-\frac{(y_i-\boldsymbol{X}_{i,*}\boldsymbol{\beta})^2}{2\sigma^2}\right]}\prod_{j=0}^{p-1}\exp{\left(-\frac{\vert\beta_j\vert}{\tau}\right)}. +# $$ + +# Taking the negative +# logarithm of the posterior probability and leaving out the +# constants terms that do not depend on $\beta$, we have + +# $$ +# C(\boldsymbol{\beta}=\frac{\vert\vert (\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})\vert\vert_2^2}{2\sigma^2}+\frac{1}{\tau}\vert\vert\boldsymbol{\beta}\vert\vert_1, +# $$ + +# and replacing $1/\tau$ with $\lambda$ we have + +# $$ +# C(\boldsymbol{\beta}=\frac{\vert\vert (\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\beta})\vert\vert_2^2}{2\sigma^2}+\lambda\vert\vert\boldsymbol{\beta}\vert\vert_1, +# $$ + +# which is our Lasso cost function! +# +# +# Plotting these prior functions shows us that we can use the parameter +# $\lambda$ to shrink or increase the role of a given parameter +# $\beta_j$. The variance for the Laplace distribution is +# $2\tau^2=1/\lambda$ while for the Gaussian distribution it is +# $\sigma^2=1/(2\lambda)$. Thus, increasing the variance means +# decreasing $\lambda$ and shrinking the variance means increasing +# $\lamdbda$. When we increase $\lambda$, this corresponds to shrinking the role of less important features (small singular values). diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter2_245_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter2_245_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d53053632b4b86aac14616d074efa741f5ad8190 GIT binary patch literal 9297 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 QBM2n>UP-F-t&#u#0 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter3.ipynb new file mode 100644 index 000000000..9f3eb43f3 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter3.ipynb @@ -0,0 +1,4594 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Resampling Methods\n", + "\n", + "## Introduction\n", + "\n", + "Resampling methods are an indispensable tool in modern\n", + "statistics. They involve repeatedly drawing samples from a training\n", + "set and refitting a model of interest on each sample in order to\n", + "obtain additional information about the fitted model. For example, in\n", + "order to estimate the variability of a linear regression fit, we can\n", + "repeatedly draw different samples from the training data, fit a linear\n", + "regression to each new sample, and then examine the extent to which\n", + "the resulting fits differ. Such an approach may allow us to obtain\n", + "information that would not be available from fitting the model only\n", + "once using the original training sample.\n", + "\n", + "Two resampling methods are often used in Machine Learning analyses,\n", + "1. The **bootstrap method**\n", + "\n", + "2. and **Cross-Validation**\n", + "\n", + "In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular\n", + "cross-validation and the bootstrap method. \n", + "\n", + "\n", + "Resampling approaches can be computationally expensive, because they\n", + "involve fitting the same statistical method multiple times using\n", + "different subsets of the training data. However, due to recent\n", + "advances in computing power, the computational requirements of\n", + "resampling methods generally are not prohibitive. In this chapter, we\n", + "discuss two of the most commonly used resampling methods,\n", + "cross-validation and the bootstrap. Both methods are important tools\n", + "in the practical application of many statistical learning\n", + "procedures. For example, cross-validation can be used to estimate the\n", + "test error associated with a given statistical learning method in\n", + "order to evaluate its performance, or to select the appropriate level\n", + "of flexibility. The process of evaluating a model’s performance is\n", + "known as model assessment, whereas the process of selecting the proper\n", + "level of flexibility for a model is known as model selection. The\n", + "bootstrap is widely used.\n", + "\n", + "\n", + "* Our simulations can be treated as *computer experiments*. This is particularly the case for Monte Carlo methods\n", + "\n", + "* The results can be analysed with the same statistical tools as we would use analysing experimental data.\n", + "\n", + "* As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors.\n", + "\n", + "## Reminder on Statistics\n", + "\n", + "\n", + "* As in other experiments, many numerical experiments have two classes of errors:\n", + "\n", + " * Statistical errors\n", + "\n", + " * Systematical errors\n", + "\n", + "\n", + "* Statistical errors can be estimated using standard tools from statistics\n", + "\n", + "* Systematical errors are method specific and must be treated differently from case to case. \n", + "\n", + "The\n", + "advantage of doing linear regression is that we actually end up with\n", + "analytical expressions for several statistical quantities. \n", + "Standard least squares and Ridge regression allow us to\n", + "derive quantities like the variance and other expectation values in a\n", + "rather straightforward way.\n", + "\n", + "\n", + "It is assumed that $\\varepsilon_i\n", + "\\sim \\mathcal{N}(0, \\sigma^2)$ and the $\\varepsilon_{i}$ are\n", + "independent, i.e.:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*} \n", + "\\mbox{Cov}(\\varepsilon_{i_1},\n", + "\\varepsilon_{i_2}) & = \\left\\{ \\begin{array}{lcc} \\sigma^2 & \\mbox{if}\n", + "& i_1 = i_2, \\\\ 0 & \\mbox{if} & i_1 \\not= i_2. \\end{array} \\right.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The randomness of $\\varepsilon_i$ implies that\n", + "$\\mathbf{y}_i$ is also a random variable. In particular,\n", + "$\\mathbf{y}_i$ is normally distributed, because $\\varepsilon_i \\sim\n", + "\\mathcal{N}(0, \\sigma^2)$ and $\\mathbf{X}_{i,\\ast} \\, \\boldsymbol{\\beta}$ is a\n", + "non-random scalar. To specify the parameters of the distribution of\n", + "$\\mathbf{y}_i$ we need to calculate its first two moments. \n", + "\n", + "Recall that $\\boldsymbol{X}$ is a matrix of dimensionality $n\\times p$. The\n", + "notation above $\\mathbf{X}_{i,\\ast}$ means that we are looking at the\n", + "row number $i$ and perform a sum over all values $p$.\n", + "\n", + "\n", + "The assumption we have made here can be summarized as (and this is going to be useful when we discuss the bias-variance trade off)\n", + "that there exists a function $f(\\boldsymbol{x})$ and a normal distributed error $\\boldsymbol{\\varepsilon}\\sim \\mathcal{N}(0, \\sigma^2)$\n", + "which describe our data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{y} = f(\\boldsymbol{x})+\\boldsymbol{\\varepsilon}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We approximate this function with our model from the solution of the linear regression equations, that is our\n", + "function $f$ is approximated by $\\boldsymbol{\\tilde{y}}$ where we want to minimize $(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2$, our MSE, with" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\tilde{y}} = \\boldsymbol{X}\\boldsymbol{\\beta}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can calculate the expectation value of $\\boldsymbol{y}$ for a given element $i$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*} \n", + "\\mathbb{E}(y_i) & =\n", + "\\mathbb{E}(\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}) + \\mathbb{E}(\\varepsilon_i)\n", + "\\, \\, \\, = \\, \\, \\, \\mathbf{X}_{i, \\ast} \\, \\beta, \n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "while\n", + "its variance is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*} \\mbox{Var}(y_i) & = \\mathbb{E} \\{ [y_i\n", + "- \\mathbb{E}(y_i)]^2 \\} \\, \\, \\, = \\, \\, \\, \\mathbb{E} ( y_i^2 ) -\n", + "[\\mathbb{E}(y_i)]^2 \\\\ & = \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\,\n", + "\\beta + \\varepsilon_i )^2] - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \\\\ &\n", + "= \\mathbb{E} [ ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2 \\varepsilon_i\n", + "\\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} + \\varepsilon_i^2 ] - ( \\mathbf{X}_{i,\n", + "\\ast} \\, \\beta)^2 \\\\ & = ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 + 2\n", + "\\mathbb{E}(\\varepsilon_i) \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta} +\n", + "\\mathbb{E}(\\varepsilon_i^2 ) - ( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta})^2 \n", + "\\\\ & = \\mathbb{E}(\\varepsilon_i^2 ) \\, \\, \\, = \\, \\, \\,\n", + "\\mbox{Var}(\\varepsilon_i) \\, \\, \\, = \\, \\, \\, \\sigma^2. \n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Hence, $y_i \\sim \\mathcal{N}( \\mathbf{X}_{i, \\ast} \\, \\boldsymbol{\\beta}, \\sigma^2)$, that is $\\boldsymbol{y}$ follows a normal distribution with \n", + "mean value $\\boldsymbol{X}\\boldsymbol{\\beta}$ and variance $\\sigma^2$ (not be confused with the singular values of the SVD). \n", + "\n", + "\n", + "With the OLS expressions for the parameters $\\boldsymbol{\\beta}$ we can evaluate the expectation value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}(\\boldsymbol{\\beta}) = \\mathbb{E}[ (\\mathbf{X}^{\\top} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1}\\mathbf{X}^{T} \\mathbb{E}[ \\mathbf{Y}]=(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\mathbf{X}^{T}\\mathbf{X}\\boldsymbol{\\beta}=\\boldsymbol{\\beta}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This means that the estimator of the regression parameters is unbiased.\n", + "v\n", + "We can also calculate the variance\n", + "\n", + "The variance of $\\boldsymbol{\\beta}$ is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{eqnarray*}\n", + "\\mbox{Var}(\\boldsymbol{\\beta}) & = & \\mathbb{E} \\{ [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})] [\\boldsymbol{\\beta} - \\mathbb{E}(\\boldsymbol{\\beta})]^{T} \\}\n", + "\\\\\n", + "& = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y} - \\boldsymbol{\\beta}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y} - \\boldsymbol{\\beta}]^{T} \\}\n", + "\\\\\n", + "% & = & \\mathbb{E} \\{ [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y}] \\, [(\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y}]^{T} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "% \\\\\n", + "% & = & \\mathbb{E} \\{ (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\mathbf{Y} \\, \\mathbf{Y}^{T} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "% \\\\\n", + "& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\mathbb{E} \\{ \\mathbf{Y} \\, \\mathbf{Y}^{T} \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "\\\\\n", + "& = & (\\mathbf{X}^{T} \\mathbf{X})^{-1} \\, \\mathbf{X}^{T} \\, \\{ \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} + \\sigma^2 \\} \\, \\mathbf{X} \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "% \\\\\n", + "% & = & (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^T \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T % \\mathbf{X})^{-1}\n", + "% \\\\\n", + "% & & + \\, \\, \\sigma^2 \\, (\\mathbf{X}^T \\mathbf{X})^{-1} \\, \\mathbf{X}^T \\, \\mathbf{X} \\, (\\mathbf{X}^T \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\boldsymbol{\\beta}^T\n", + "\\\\\n", + "& = & \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} + \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1} - \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T}\n", + "\\, \\, \\, = \\, \\, \\, \\sigma^2 \\, (\\mathbf{X}^{T} \\mathbf{X})^{-1},\n", + "\\end{eqnarray*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have used that $\\mathbb{E} (\\mathbf{Y} \\mathbf{Y}^{T}) =\n", + "\\mathbf{X} \\, \\boldsymbol{\\beta} \\, \\boldsymbol{\\beta}^{T} \\, \\mathbf{X}^{T} +\n", + "\\sigma^2 \\, \\mathbf{I}_{nn}$. From $\\mbox{Var}(\\boldsymbol{\\beta}) = \\sigma^2\n", + "\\, (\\mathbf{X}^{T} \\mathbf{X})^{-1}$, one obtains an estimate of the\n", + "variance of the estimate of the $j$-th regression coefficient:\n", + "$\\boldsymbol{\\sigma}^2 (\\boldsymbol{\\beta}_j ) = \\boldsymbol{\\sigma}^2 \\sqrt{\n", + "[(\\mathbf{X}^{T} \\mathbf{X})^{-1}]_{jj} }$. This may be used to\n", + "construct a confidence interval for the estimates.\n", + "\n", + "\n", + "In a similar way, we can obtain analytical expressions for say the\n", + "expectation values of the parameters $\\boldsymbol{\\beta}$ and their variance\n", + "when we employ Ridge regression, allowing us again to define a confidence interval. \n", + "\n", + "It is rather straightforward to show that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E} \\big[ \\boldsymbol{\\beta}^{\\mathrm{Ridge}} \\big]=(\\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I}_{pp})^{-1} (\\mathbf{X}^{\\top} \\mathbf{X})\\boldsymbol{\\beta}^{\\mathrm{OLS}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see clearly that \n", + "$\\mathbb{E} \\big[ \\boldsymbol{\\beta}^{\\mathrm{Ridge}} \\big] \\not= \\boldsymbol{\\beta}^{\\mathrm{OLS}}$ for any $\\lambda > 0$. We say then that the ridge estimator is biased.\n", + "\n", + "We can also compute the variance as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mbox{Var}[\\boldsymbol{\\beta}^{\\mathrm{Ridge}}]=\\sigma^2[ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1} \\mathbf{X}^{T} \\mathbf{X} \\{ [ \\mathbf{X}^{\\top} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and it is easy to see that if the parameter $\\lambda$ goes to infinity then the variance of Ridge parameters $\\boldsymbol{\\beta}$ goes to zero. \n", + "\n", + "With this, we can compute the difference" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mbox{Var}[\\boldsymbol{\\beta}^{\\mathrm{OLS}}]-\\mbox{Var}(\\boldsymbol{\\beta}^{\\mathrm{Ridge}})=\\sigma^2 [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}[ 2\\lambda\\mathbf{I} + \\lambda^2 (\\mathbf{X}^{T} \\mathbf{X})^{-1} ] \\{ [ \\mathbf{X}^{T} \\mathbf{X} + \\lambda \\mathbf{I} ]^{-1}\\}^{T}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The difference is non-negative definite since each component of the\n", + "matrix product is non-negative definite. \n", + "This means the variance we obtain with the standard OLS will always for $\\lambda > 0$ be larger than the variance of $\\boldsymbol{\\beta}$ obtained with the Ridge estimator. This has interesting consequences when we discuss the so-called bias-variance trade-off below. \n", + "\n", + "\n", + "\n", + "## Resampling methods\n", + "\n", + "With all these analytical equations for both the OLS and Ridge\n", + "regression, we will now outline how to assess a given model. This will\n", + "lead us to a discussion of the so-called bias-variance tradeoff (see\n", + "below) and so-called resampling methods.\n", + "\n", + "One of the quantities we have discussed as a way to measure errors is\n", + "the mean-squared error (MSE), mainly used for fitting of continuous\n", + "functions. Another choice is the absolute error.\n", + "\n", + "In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data,\n", + "we discuss the\n", + "1. prediction error or simply the **test error** $\\mathrm{Err_{Test}}$, where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the \n", + "\n", + "2. training error $\\mathrm{Err_{Train}}$, which is the average loss over the training data.\n", + "\n", + "As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error.\n", + "For a certain level of complexity the test error will reach minimum, before starting to increase again. The\n", + "training error reaches a saturation.\n", + "\n", + "\n", + "\n", + "Two famous\n", + "resampling methods are the **independent bootstrap** and **the jackknife**. \n", + "\n", + "The jackknife is a special case of the independent bootstrap. Still, the jackknife was made\n", + "popular prior to the independent bootstrap. And as the popularity of\n", + "the independent bootstrap soared, new variants, such as **the dependent bootstrap**.\n", + "\n", + "The Jackknife and independent bootstrap work for\n", + "independent, identically distributed random variables.\n", + "If these conditions are not\n", + "satisfied, the methods will fail. Yet, it should be said that if the data are\n", + "independent, identically distributed, and we only want to estimate the\n", + "variance of $\\overline{X}$ (which often is the case), then there is no\n", + "need for bootstrapping. \n", + "\n", + "\n", + "The Jackknife works by making many replicas of the estimator $\\widehat{\\beta}$. \n", + "The jackknife is a resampling method where we systematically leave out one observation from the vector of observed values $\\boldsymbol{x} = (x_1,x_2,\\cdots,X_n)$. \n", + "Let $\\boldsymbol{x}_i$ denote the vector" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_i = (x_1,x_2,\\cdots,x_{i-1},x_{i+1},\\cdots,x_n),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which equals the vector $\\boldsymbol{x}$ with the exception that observation\n", + "number $i$ is left out. Using this notation, define\n", + "$\\widehat{\\beta}_i$ to be the estimator\n", + "$\\widehat{\\beta}$ computed using $\\vec{X}_i$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runtime: 0.187238 sec\n", + "Jackknife Statistics :\n", + "original bias std. error\n", + " 100.241 100.231 0.151182\n" + ] + } + ], + "source": [ + "from numpy import *\n", + "from numpy.random import randint, randn\n", + "from time import time\n", + "\n", + "def jackknife(data, stat):\n", + " n = len(data);t = zeros(n); inds = arange(n); t0 = time()\n", + " ## 'jackknifing' by leaving out an observation for each i \n", + " for i in range(n):\n", + " t[i] = stat(delete(data,i) )\n", + "\n", + " # analysis \n", + " print(\"Runtime: %g sec\" % (time()-t0)); print(\"Jackknife Statistics :\")\n", + " print(\"original bias std. error\")\n", + " print(\"%8g %14g %15g\" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5))\n", + "\n", + " return t\n", + "\n", + "\n", + "# Returns mean of data samples \n", + "def stat(data):\n", + " return mean(data)\n", + "\n", + "\n", + "mu, sigma = 100, 15\n", + "datapoints = 10000\n", + "x = mu + sigma*random.randn(datapoints)\n", + "# jackknife returns the data sample \n", + "t = jackknife(x, stat)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Bootstrap\n", + "\n", + "Bootstrapping is a nonparametric approach to statistical inference\n", + "that substitutes computation for more traditional distributional\n", + "assumptions and asymptotic results. Bootstrapping offers a number of\n", + "advantages: \n", + "1. The bootstrap is quite general, although there are some cases in which it fails. \n", + "\n", + "2. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small. \n", + "\n", + "3. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically. \n", + "\n", + "4. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples).\n", + "\n", + "Since $\\widehat{\\beta} = \\widehat{\\beta}(\\boldsymbol{X})$ is a function of random variables,\n", + "$\\widehat{\\beta}$ itself must be a random variable. Thus it has\n", + "a pdf, call this function $p(\\boldsymbol{t})$. The aim of the bootstrap is to\n", + "estimate $p(\\boldsymbol{t})$ by the relative frequency of\n", + "$\\widehat{\\beta}$. You can think of this as using a histogram\n", + "in the place of $p(\\boldsymbol{t})$. If the relative frequency closely\n", + "resembles $p(\\vec{t})$, then using numerics, it is straight forward to\n", + "estimate all the interesting parameters of $p(\\boldsymbol{t})$ using point\n", + "estimators. \n", + "\n", + "\n", + "\n", + "In the case that $\\widehat{\\beta}$ has\n", + "more than one component, and the components are independent, we use the\n", + "same estimator on each component separately. If the probability\n", + "density function of $X_i$, $p(x)$, had been known, then it would have\n", + "been straight forward to do this by: \n", + "1. Drawing lots of numbers from $p(x)$, suppose we call one such set of numbers $(X_1^*, X_2^*, \\cdots, X_n^*)$. \n", + "\n", + "2. Then using these numbers, we could compute a replica of $\\widehat{\\beta}$ called $\\widehat{\\beta}^*$. \n", + "\n", + "By repeated use of (1) and (2), many\n", + "estimates of $\\widehat{\\beta}$ could have been obtained. The\n", + "idea is to use the relative frequency of $\\widehat{\\beta}^*$\n", + "(think of a histogram) as an estimate of $p(\\boldsymbol{t})$.\n", + "\n", + "\n", + "But\n", + "unless there is enough information available about the process that\n", + "generated $X_1,X_2,\\cdots,X_n$, $p(x)$ is in general\n", + "unknown. Therefore, [Efron in 1979](https://projecteuclid.org/euclid.aos/1176344552) asked the\n", + "question: What if we replace $p(x)$ by the relative frequency\n", + "of the observation $X_i$; if we draw observations in accordance with\n", + "the relative frequency of the observations, will we obtain the same\n", + "result in some asymptotic sense? The answer is yes.\n", + "\n", + "\n", + "Instead of generating the histogram for the relative\n", + "frequency of the observation $X_i$, just draw the values\n", + "$(X_1^*,X_2^*,\\cdots,X_n^*)$ with replacement from the vector\n", + "$\\boldsymbol{X}$. \n", + "\n", + "\n", + "The independent bootstrap works like this: \n", + "\n", + "1. Draw with replacement $n$ numbers for the observed variables $\\boldsymbol{x} = (x_1,x_2,\\cdots,x_n)$. \n", + "\n", + "2. Define a vector $\\boldsymbol{x}^*$ containing the values which were drawn from $\\boldsymbol{x}$. \n", + "\n", + "3. Using the vector $\\boldsymbol{x}^*$ compute $\\widehat{\\beta}^*$ by evaluating $\\widehat \\beta$ under the observations $\\boldsymbol{x}^*$. \n", + "\n", + "4. Repeat this process $k$ times. \n", + "\n", + "When you are done, you can draw a histogram of the relative frequency\n", + "of $\\widehat \\beta^*$. This is your estimate of the probability\n", + "distribution $p(t)$. Using this probability distribution you can\n", + "estimate any statistics thereof. In principle you never draw the\n", + "histogram of the relative frequency of $\\widehat{\\beta}^*$. Instead\n", + "you use the estimators corresponding to the statistic of interest. For\n", + "example, if you are interested in estimating the variance of $\\widehat\n", + "\\beta$, apply the etsimator $\\widehat \\sigma^2$ to the values\n", + "$\\widehat \\beta^*$.\n", + "\n", + "Before we proceed however, we need to remind ourselves about a central\n", + "theorem in statistics, namely the so-called **central limit theorem**.\n", + "This theorem plays a central role in understanding why the Bootstrap\n", + "(and other resampling methods) work so well on independent and\n", + "identically distributed variables.\n", + "\n", + "\n", + "Suppose we have a PDF $p(x)$ from which we generate a series $N$\n", + "of averages $\\langle x_i \\rangle$. Each mean value $\\langle x_i \\rangle$\n", + "is viewed as the average of a specific measurement, e.g., throwing \n", + "dice 100 times and then taking the average value, or producing a certain\n", + "amount of random numbers. \n", + "For notational ease, we set $\\langle x_i \\rangle=x_i$ in the discussion\n", + "which follows. \n", + "\n", + "If we compute the mean $z$ of $m$ such mean values $x_i$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "z=\\frac{x_1+x_2+\\dots+x_m}{m},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the question we pose is which is the PDF of the new variable $z$.\n", + "\n", + "\n", + "The probability of obtaining an average value $z$ is the product of the \n", + "probabilities of obtaining arbitrary individual mean values $x_i$,\n", + "but with the constraint that the average is $z$. We can express this through\n", + "the following expression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{p}(z)=\\int dx_1p(x_1)\\int dx_2p(x_2)\\dots\\int dx_mp(x_m)\n", + " \\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m}),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the $\\delta$-function enbodies the constraint that the mean is $z$.\n", + "All measurements that lead to each individual $x_i$ are expected to\n", + "be independent, which in turn means that we can express $\\tilde{p}$ as the \n", + "product of individual $p(x_i)$. The independence assumption is important in the derivation of the central limit theorem.\n", + "\n", + "\n", + "\n", + "If we use the integral expression for the $\\delta$-function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\delta(z-\\frac{x_1+x_2+\\dots+x_m}{m})=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n", + " dq\\exp{\\left(iq(z-\\frac{x_1+x_2+\\dots+x_m}{m})\\right)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and inserting $e^{i\\mu q-i\\mu q}$ where $\\mu$ is the mean value\n", + "we arrive at" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{p}(z)=\\frac{1}{2\\pi}\\int_{-\\infty}^{\\infty}\n", + " dq\\exp{\\left(iq(z-\\mu)\\right)}\\left[\\int_{-\\infty}^{\\infty}\n", + " dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with the integral over $x$ resulting in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}=\n", + " \\int_{-\\infty}^{\\infty}dxp(x)\n", + " \\left[1+\\frac{iq(\\mu-x)}{m}-\\frac{q^2(\\mu-x)^2}{2m^2}+\\dots\\right].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The second term on the rhs disappears since this is just the mean and \n", + "employing the definition of $\\sigma^2$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\int_{-\\infty}^{\\infty}dxp(x)e^{\\left(iq(\\mu-x)/m\\right)}=\n", + " 1-\\frac{q^2\\sigma^2}{2m^2}+\\dots,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "resulting in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left[\\int_{-\\infty}^{\\infty}dxp(x)\\exp{\\left(iq(\\mu-x)/m\\right)}\\right]^m\\approx\n", + " \\left[1-\\frac{q^2\\sigma^2}{2m^2}+\\dots \\right]^m,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and in the limit $m\\rightarrow \\infty$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{p}(z)=\\frac{1}{\\sqrt{2\\pi}(\\sigma/\\sqrt{m})}\n", + " \\exp{\\left(-\\frac{(z-\\mu)^2}{2(\\sigma/\\sqrt{m})^2}\\right)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is the normal distribution with variance\n", + "$\\sigma^2_m=\\sigma^2/m$, where $\\sigma$ is the variance of the PDF $p(x)$\n", + "and $\\mu$ is also the mean of the PDF $p(x)$. \n", + "\n", + "\n", + "Thus, the central limit theorem states that the PDF $\\tilde{p}(z)$ of\n", + "the average of $m$ random values corresponding to a PDF $p(x)$ \n", + "is a normal distribution whose mean is the \n", + "mean value of the PDF $p(x)$ and whose variance is the variance\n", + "of the PDF $p(x)$ divided by $m$, the number of values used to compute $z$.\n", + "\n", + "The central limit theorem leads to the well-known expression for the\n", + "standard deviation, given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma_m=\n", + "\\frac{\\sigma}{\\sqrt{m}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The latter is true only if the average value is known exactly. This is obtained in the limit\n", + "$m\\rightarrow \\infty$ only. Because the mean and the variance are measured quantities we obtain \n", + "the familiar expression in statistics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma_m\\approx \n", + "\\frac{\\sigma}{\\sqrt{m-1}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In many cases however the above estimate for the standard deviation,\n", + "in particular if correlations are strong, may be too simplistic. Keep\n", + "in mind that we have assumed that the variables $x$ are independent\n", + "and identically distributed. This is obviously not always the\n", + "case. For example, the random numbers (or better pseudorandom numbers)\n", + "we generate in various calculations do always exhibit some\n", + "correlations.\n", + "\n", + "\n", + "\n", + "The theorem is satisfied by a large class of PDFs. Note however that for a\n", + "finite $m$, it is not always possible to find a closed form /analytic expression for\n", + "$\\tilde{p}(x)$.\n", + "\n", + "\n", + "The following code starts with a Gaussian distribution with mean value\n", + "$\\mu =100$ and variance $\\sigma=15$. We use this to generate the data\n", + "used in the bootstrap analysis. The bootstrap analysis returns a data\n", + "set after a given number of bootstrap operations (as many as we have\n", + "data points). This data set consists of estimated mean values for each\n", + "bootstrap operation. The histogram generated by the bootstrap method\n", + "shows that the distribution for these mean values is also a Gaussian,\n", + "centered around the mean value $\\mu=100$ but with standard deviation\n", + "$\\sigma/\\sqrt{n}$, where $n$ is the number of bootstrap samples (in\n", + "this case the same as the number of original data points). The value\n", + "of the standard deviation is what we expect from the central limit\n", + "theorem." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Bootstrap Statistics :\n", + "original bias std. error\n", + " 100.165 14.9303 100.164 0.1492\n" + ] + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "from time import time\n", + "from scipy.stats import norm\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Returns mean of bootstrap samples \n", + "# Bootstrap algorithm\n", + "def bootstrap(data, datapoints):\n", + " t = np.zeros(datapoints)\n", + " n = len(data)\n", + " # non-parametric bootstrap \n", + " for i in range(datapoints):\n", + " t[i] = np.mean(data[np.random.randint(0,n,n)])\n", + " # analysis \n", + " print(\"Bootstrap Statistics :\")\n", + " print(\"original bias std. error\")\n", + " print(\"%8g %8g %14g %15g\" % (np.mean(data), np.std(data),np.mean(t),np.std(t)))\n", + " return t\n", + "\n", + "# We set the mean value to 100 and the standard deviation to 15\n", + "mu, sigma = 100, 15\n", + "datapoints = 10000\n", + "# We generate random numbers according to the normal distribution\n", + "x = mu + sigma*np.random.randn(datapoints)\n", + "# bootstrap returns the data sample \n", + "t = bootstrap(x, datapoints)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that our new variance and from that the standard deviation, agrees with the central limit theorem.\n", + "\n", + "We plot then the histogram together with a best fit for the data set." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_47_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# the histogram of the bootstrapped data (normalized data if density = True)\n", + "n, binsboot, patches = plt.hist(t, 50, density=True, facecolor='red', alpha=0.75)\n", + "# add a 'best fit' line \n", + "y = norm.pdf(binsboot, np.mean(t), np.std(t))\n", + "lt = plt.plot(binsboot, y, 'b', linewidth=1)\n", + "plt.xlabel('x')\n", + "plt.ylabel('Probability')\n", + "plt.grid(True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The bias-variance tradeoff\n", + "\n", + "\n", + "We will discuss the bias-variance tradeoff in the context of\n", + "continuous predictions such as regression. However, many of the\n", + "intuitions and ideas discussed here also carry over to classification\n", + "tasks. Consider a dataset $\\mathcal{L}$ consisting of the data\n", + "$\\mathbf{X}_\\mathcal{L}=\\{(y_j, \\boldsymbol{x}_j), j=0\\ldots n-1\\}$. \n", + "\n", + "Let us assume that the true data is generated from a noisy model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\epsilon$ is normally distributed with mean zero and standard deviation $\\sigma^2$.\n", + "\n", + "In our derivation of the ordinary least squares method we defined then\n", + "an approximation to the function $f$ in terms of the parameters\n", + "$\\boldsymbol{\\beta}$ and the design matrix $\\boldsymbol{X}$ which embody our model,\n", + "that is $\\boldsymbol{\\tilde{y}}=\\boldsymbol{X}\\boldsymbol{\\beta}$. \n", + "\n", + "Thereafter we found the parameters $\\boldsymbol{\\beta}$ by optimizing the means squared error via the so-called cost function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{X},\\boldsymbol{\\beta}) =\\frac{1}{n}\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2=\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can rewrite this as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\frac{1}{n}\\sum_i(f_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\frac{1}{n}\\sum_i(\\tilde{y}_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\sigma^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The three terms represent the square of the bias of the learning\n", + "method, which can be thought of as the error caused by the simplifying\n", + "assumptions built into the method. The second term represents the\n", + "variance of the chosen model and finally the last terms is variance of\n", + "the error $\\boldsymbol{\\epsilon}$.\n", + "\n", + "To derive this equation, we need to recall that the variance of $\\boldsymbol{y}$ and $\\boldsymbol{\\epsilon}$ are both equal to $\\sigma^2$. The mean value of $\\boldsymbol{\\epsilon}$ is by definition equal to zero. Furthermore, the function $f$ is not a stochastics variable, idem for $\\boldsymbol{\\tilde{y}}$.\n", + "We use a more compact notation in terms of the expectation value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}})^2\\right],\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and adding and subtracting $\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]$ we get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{f}+\\boldsymbol{\\epsilon}-\\boldsymbol{\\tilde{y}}+\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right]-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right],\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which, using the abovementioned expectation values can be rewritten as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\mathbb{E}\\left[(\\boldsymbol{y}-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2\\right]+\\mathrm{Var}\\left[\\boldsymbol{\\tilde{y}}\\right]+\\sigma^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "that is the rewriting in terms of the so-called bias, the variance of the model $\\boldsymbol{\\tilde{y}}$ and the variance of $\\boldsymbol{\\epsilon}$." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error: 0.013121573975499602\n", + "Bias^2: 0.012073649439965807\n", + "Var: 0.0010479245355337968\n", + "0.013121573975499602 >= 0.012073649439965807 + 0.0010479245355337968 = 0.013121573975499604\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_61_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", + "from sklearn.preprocessing import PolynomialFeatures\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.pipeline import make_pipeline\n", + "from sklearn.utils import resample\n", + "\n", + "np.random.seed(2018)\n", + "\n", + "n = 500\n", + "n_boostraps = 100\n", + "degree = 18 # A quite high value, just to show.\n", + "noise = 0.1\n", + "\n", + "# Make data set.\n", + "x = np.linspace(-1, 3, n).reshape(-1, 1)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape)\n", + "\n", + "# Hold out some test data that is never used in training.\n", + "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", + "\n", + "# Combine x transformation and model into one operation.\n", + "# Not neccesary, but convenient.\n", + "model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n", + "\n", + "# The following (m x n_bootstraps) matrix holds the column vectors y_pred\n", + "# for each bootstrap iteration.\n", + "y_pred = np.empty((y_test.shape[0], n_boostraps))\n", + "for i in range(n_boostraps):\n", + " x_, y_ = resample(x_train, y_train)\n", + "\n", + " # Evaluate the new model on the same test data each time.\n", + " y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n", + "\n", + "# Note: Expectations and variances taken w.r.t. different training\n", + "# data sets, hence the axis=1. Subsequent means are taken across the test data\n", + "# set in order to obtain a total value, but before this we have error/bias/variance\n", + "# calculated per data point in the test set.\n", + "# Note 2: The use of keepdims=True is important in the calculation of bias as this \n", + "# maintains the column vector form. Dropping this yields very unexpected results.\n", + "error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n", + "bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n", + "variance = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n", + "print('Error:', error)\n", + "print('Bias^2:', bias)\n", + "print('Var:', variance)\n", + "print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance))\n", + "\n", + "plt.plot(x[::5, :], y[::5, :], label='f(x)')\n", + "plt.scatter(x_test, y_test, label='Data points')\n", + "plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Polynomial degree: 0\n", + "Error: 0.3214960170351912\n", + "Bias^2: 0.3123314713548606\n", + "Var: 0.009164545680330616\n", + "0.3214960170351912 >= 0.3123314713548606 + 0.009164545680330616 = 0.3214960170351912\n", + "Polynomial degree: 1\n", + "Error: 0.08426840630693411\n", + "Bias^2: 0.07968918676726029\n", + "Var: 0.004579219539673836\n", + "0.08426840630693411 >= 0.07968918676726029 + 0.004579219539673836 = 0.08426840630693413\n", + "Polynomial degree: 2\n", + "Error: 0.10398646080125035\n", + "Bias^2: 0.10077114273548984\n", + "Var: 0.003215318065760509\n", + "0.10398646080125035 >= 0.10077114273548984 + 0.003215318065760509 = 0.10398646080125035\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Polynomial degree: 3\n", + "Error: 0.06547790180152357\n", + "Bias^2: 0.06208238634231953\n", + "Var: 0.0033955154592040944\n", + "0.06547790180152357 >= 0.06208238634231953 + 0.0033955154592040944 = 0.06547790180152363\n", + "Polynomial degree: 4\n", + "Error: 0.06844519414009438\n", + "Bias^2: 0.06453579006728315\n", + "Var: 0.003909404072811231\n", + "0.06844519414009438 >= 0.06453579006728315 + 0.003909404072811231 = 0.06844519414009438\n", + "Polynomial degree: 5\n", + "Error: 0.05227921801205692\n", + "Bias^2: 0.04818727730430296\n", + "Var: 0.0040919407077539514\n", + "0.05227921801205692 >= 0.04818727730430296 + 0.0040919407077539514 = 0.05227921801205691\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Polynomial degree: 6\n", + "Error: 0.03781367141738885\n", + "Bias^2: 0.033657685071527485\n", + "Var: 0.004155986345861374\n", + "0.03781367141738885 >= 0.033657685071527485 + 0.004155986345861374 = 0.03781367141738886\n", + "Polynomial degree: 7\n", + "Error: 0.027609773491022314\n", + "Bias^2: 0.02299949826036602\n", + "Var: 0.004610275230656294\n", + "0.027609773491022314 >= 0.02299949826036602 + 0.004610275230656294 = 0.027609773491022314\n", + "Polynomial degree: 8\n", + "Error: 0.017355848195591845\n", + "Bias^2: 0.01033172130665515\n", + "Var: 0.007024126888936694\n", + "0.017355848195591845 >= 0.01033172130665515 + 0.007024126888936694 = 0.01735584819559184\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Polynomial degree: 9\n", + "Error: 0.026605727637176654\n", + "Bias^2: 0.010018312644139347\n", + "Var: 0.016587414993037307\n", + "0.026605727637176654 >= 0.010018312644139347 + 0.016587414993037307 = 0.026605727637176654\n", + "Polynomial degree: 10\n", + "Error: 0.02159270458799264\n", + "Bias^2: 0.010516485576652856\n", + "Var: 0.011076219011339788\n", + "0.02159270458799264 >= 0.010516485576652856 + 0.011076219011339788 = 0.021592704587992645\n", + "Polynomial degree: 11\n", + "Error: 0.07160048164248561\n", + "Bias^2: 0.014436800088969727\n", + "Var: 0.05716368155351588\n", + "0.07160048164248561 >= 0.014436800088969727 + 0.05716368155351588 = 0.07160048164248561\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Polynomial degree: 12\n", + "Error: 0.11547777218940905\n", + "Bias^2: 0.016285782696075054\n", + "Var: 0.099191989493334\n", + "0.11547777218940905 >= 0.016285782696075054 + 0.099191989493334 = 0.11547777218940906\n", + "Polynomial degree: 13\n", + "Error: 0.22842468702288576\n", + "Bias^2: 0.01975416527179247\n", + "Var: 0.20867052175109335\n", + "0.22842468702288576 >= 0.01975416527179247 + 0.20867052175109335 = 0.22842468702288582\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_62_5.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", + "from sklearn.preprocessing import PolynomialFeatures\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.pipeline import make_pipeline\n", + "from sklearn.utils import resample\n", + "\n", + "np.random.seed(2018)\n", + "\n", + "n = 40\n", + "n_boostraps = 100\n", + "maxdegree = 14\n", + "\n", + "\n", + "# Make data set.\n", + "x = np.linspace(-3, 3, n).reshape(-1, 1)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n", + "error = np.zeros(maxdegree)\n", + "bias = np.zeros(maxdegree)\n", + "variance = np.zeros(maxdegree)\n", + "polydegree = np.zeros(maxdegree)\n", + "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", + "\n", + "for degree in range(maxdegree):\n", + " model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n", + " y_pred = np.empty((y_test.shape[0], n_boostraps))\n", + " for i in range(n_boostraps):\n", + " x_, y_ = resample(x_train, y_train)\n", + " y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel()\n", + "\n", + " polydegree[degree] = degree\n", + " error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n", + " bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n", + " variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n", + " print('Polynomial degree:', degree)\n", + " print('Error:', error[degree])\n", + " print('Bias^2:', bias[degree])\n", + " print('Var:', variance[degree])\n", + " print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n", + "\n", + "plt.plot(polydegree, error, label='Error')\n", + "plt.plot(polydegree, bias, label='bias')\n", + "plt.plot(polydegree, variance, label='Variance')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The bias-variance tradeoff summarizes the fundamental tension in\n", + "machine learning, particularly supervised learning, between the\n", + "complexity of a model and the amount of training data needed to train\n", + "it. Since data is often limited, in practice it is often useful to\n", + "use a less-complex model with higher bias, that is a model whose asymptotic\n", + "performance is worse than another model because it is easier to\n", + "train and less sensitive to sampling noise arising from having a\n", + "finite-sized training dataset (smaller variance). \n", + "\n", + "\n", + "\n", + "The above equations tell us that in\n", + "order to minimize the expected test error, we need to select a\n", + "statistical learning method that simultaneously achieves low variance\n", + "and low bias. Note that variance is inherently a nonnegative quantity,\n", + "and squared bias is also nonnegative. Hence, we see that the expected\n", + "test MSE can never lie below $Var(\\epsilon)$, the irreducible error.\n", + "\n", + "\n", + "What do we mean by the variance and bias of a statistical learning\n", + "method? The variance refers to the amount by which our model would change if we\n", + "estimated it using a different training data set. Since the training\n", + "data are used to fit the statistical learning method, different\n", + "training data sets will result in a different estimate. But ideally the\n", + "estimate for our model should not vary too much between training\n", + "sets. However, if a method has high variance then small changes in\n", + "the training data can result in large changes in the model. In general, more\n", + "flexible statistical methods have higher variance.\n", + "\n", + "\n", + "You may also find this recent [article](https://www.pnas.org/content/116/32/15849) of interest." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "============================\n", + "Underfitting vs. Overfitting\n", + "============================\n", + "\n", + "This example demonstrates the problems of underfitting and overfitting and\n", + "how we can use linear regression with polynomial features to approximate\n", + "nonlinear functions. The plot shows the function that we want to approximate,\n", + "which is a part of the cosine function. In addition, the samples from the\n", + "real function and the approximations of different models are displayed. The\n", + "models have polynomial features of different degrees. We can see that a\n", + "linear function (polynomial with degree 1) is not sufficient to fit the\n", + "training samples. This is called **underfitting**. A polynomial of degree 4\n", + "approximates the true function almost perfectly. However, for higher degrees\n", + "the model will **overfit** the training data, i.e. it learns the noise of the\n", + "training data.\n", + "We evaluate quantitatively **overfitting** / **underfitting** by using\n", + "cross-validation. We calculate the mean squared error (MSE) on the validation\n", + "set, the higher, the less likely the model generalizes correctly from the\n", + "training data.\n", + "\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_64_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "\"\"\"\n", + "============================\n", + "Underfitting vs. Overfitting\n", + "============================\n", + "\n", + "This example demonstrates the problems of underfitting and overfitting and\n", + "how we can use linear regression with polynomial features to approximate\n", + "nonlinear functions. The plot shows the function that we want to approximate,\n", + "which is a part of the cosine function. In addition, the samples from the\n", + "real function and the approximations of different models are displayed. The\n", + "models have polynomial features of different degrees. We can see that a\n", + "linear function (polynomial with degree 1) is not sufficient to fit the\n", + "training samples. This is called **underfitting**. A polynomial of degree 4\n", + "approximates the true function almost perfectly. However, for higher degrees\n", + "the model will **overfit** the training data, i.e. it learns the noise of the\n", + "training data.\n", + "We evaluate quantitatively **overfitting** / **underfitting** by using\n", + "cross-validation. We calculate the mean squared error (MSE) on the validation\n", + "set, the higher, the less likely the model generalizes correctly from the\n", + "training data.\n", + "\"\"\"\n", + "\n", + "print(__doc__)\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.preprocessing import PolynomialFeatures\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "\n", + "def true_fun(X):\n", + " return np.cos(1.5 * np.pi * X)\n", + "\n", + "np.random.seed(0)\n", + "\n", + "n_samples = 30\n", + "degrees = [1, 4, 15]\n", + "\n", + "X = np.sort(np.random.rand(n_samples))\n", + "y = true_fun(X) + np.random.randn(n_samples) * 0.1\n", + "\n", + "plt.figure(figsize=(14, 5))\n", + "for i in range(len(degrees)):\n", + " ax = plt.subplot(1, len(degrees), i + 1)\n", + " plt.setp(ax, xticks=(), yticks=())\n", + "\n", + " polynomial_features = PolynomialFeatures(degree=degrees[i],\n", + " include_bias=False)\n", + " linear_regression = LinearRegression()\n", + " pipeline = Pipeline([(\"polynomial_features\", polynomial_features),\n", + " (\"linear_regression\", linear_regression)])\n", + " pipeline.fit(X[:, np.newaxis], y)\n", + "\n", + " # Evaluate the models using crossvalidation\n", + " scores = cross_val_score(pipeline, X[:, np.newaxis], y,\n", + " scoring=\"neg_mean_squared_error\", cv=10)\n", + "\n", + " X_test = np.linspace(0, 1, 100)\n", + " plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label=\"Model\")\n", + " plt.plot(X_test, true_fun(X_test), label=\"True function\")\n", + " plt.scatter(X, y, edgecolor='b', s=20, label=\"Samples\")\n", + " plt.xlabel(\"x\")\n", + " plt.ylabel(\"y\")\n", + " plt.xlim((0, 1))\n", + " plt.ylim((-2, 2))\n", + " plt.legend(loc=\"best\")\n", + " plt.title(\"Degree {}\\nMSE = {:.2e}(+/- {:.2e})\".format(\n", + " degrees[i], -scores.mean(), scores.std()))\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 1\n", + "Mean squared error on training data: 439230.69504801\n", + "Mean squared error on test data: 481979.17861098\n", + "Degree of polynomial: 2\n", + "Mean squared error on training data: 115822.95008046\n", + "Mean squared error on test data: 123711.53703498\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 3\n", + "Mean squared error on training data: 9011.85263220\n", + "Mean squared error on test data: 10913.84780262\n", + "Degree of polynomial: 4\n", + "Mean squared error on training data: 303.47610036\n", + "Mean squared error on test data: 426.30787294\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 5\n", + "Mean squared error on training data: 3.80354994\n", + "Mean squared error on test data: 5.98822371\n", + "Degree of polynomial: 6\n", + "Mean squared error on training data: 3.66204648\n", + "Mean squared error on test data: 8.14812206\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 7\n", + "Mean squared error on training data: 0.47075725\n", + "Mean squared error on test data: 2.00607783\n", + "Degree of polynomial: 8\n", + "Mean squared error on training data: 0.04912436\n", + "Mean squared error on test data: 0.21596432\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 9\n", + "Mean squared error on training data: 0.02522069\n", + "Mean squared error on test data: 0.08576932\n", + "Degree of polynomial: 10\n", + "Mean squared error on training data: 0.02511518\n", + "Mean squared error on test data: 1.20015436\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 11\n", + "Mean squared error on training data: 0.01640891\n", + "Mean squared error on test data: 1.35533774\n", + "Degree of polynomial: 12\n", + "Mean squared error on training data: 0.00813803\n", + "Mean squared error on test data: 0.17446471\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 13\n", + "Mean squared error on training data: 0.00759119\n", + "Mean squared error on test data: 1.08131003\n", + "Degree of polynomial: 14\n", + "Mean squared error on training data: 0.00472199\n", + "Mean squared error on test data: 0.81333805\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 15\n", + "Mean squared error on training data: 0.00410478\n", + "Mean squared error on test data: 92.09149881\n", + "Degree of polynomial: 16\n", + "Mean squared error on training data: 0.00315593\n", + "Mean squared error on test data: 234.39095416\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 17\n", + "Mean squared error on training data: 0.00242999\n", + "Mean squared error on test data: 1270.94548496\n", + "Degree of polynomial: 18\n", + "Mean squared error on training data: 0.00228741\n", + "Mean squared error on test data: 108.28590743\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 19\n", + "Mean squared error on training data: 0.00156379\n", + "Mean squared error on test data: 1378.43761347\n", + "Degree of polynomial: 20\n", + "Mean squared error on training data: 0.00137835\n", + "Mean squared error on test data: 1954.37992857\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 21\n", + "Mean squared error on training data: 0.00118527\n", + "Mean squared error on test data: 14818.20320502\n", + "Degree of polynomial: 22\n", + "Mean squared error on training data: 0.00092646\n", + "Mean squared error on test data: 871.17339342\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 23\n", + "Mean squared error on training data: 0.00085884\n", + "Mean squared error on test data: 5566.16660817\n", + "Degree of polynomial: 24\n", + "Mean squared error on training data: 0.00084705\n", + "Mean squared error on test data: 1314.42631342\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 25\n", + "Mean squared error on training data: 0.00079123\n", + "Mean squared error on test data: 127043.53189647\n", + "Degree of polynomial: 26\n", + "Mean squared error on training data: 0.00076925\n", + "Mean squared error on test data: 18526.05756733\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 27\n", + "Mean squared error on training data: 0.00069103\n", + "Mean squared error on test data: 2470.53697476\n", + "Degree of polynomial: 28\n", + "Mean squared error on training data: 0.00062595\n", + "Mean squared error on test data: 4022.12945452\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Degree of polynomial: 29\n", + "Mean squared error on training data: 0.00060705\n", + "Mean squared error on test data: 3384.63675140\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/626635268.py:73: RuntimeWarning: divide by zero encountered in log10\n", + " plt.plot(polynomial, np.log10(trainingerror), label='Training Error')\n", + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/626635268.py:74: RuntimeWarning: divide by zero encountered in log10\n", + " plt.plot(polynomial, np.log10(testerror), label='Test Error')\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_65_16.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Common imports\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.utils import resample\n", + "from sklearn.metrics import mean_squared_error\n", + "# Where to save the figures and data files\n", + "PROJECT_ROOT_DIR = \"Results\"\n", + "FIGURE_ID = \"Results/FigureFiles\"\n", + "DATA_ID = \"DataFiles/\"\n", + "\n", + "if not os.path.exists(PROJECT_ROOT_DIR):\n", + " os.mkdir(PROJECT_ROOT_DIR)\n", + "\n", + "if not os.path.exists(FIGURE_ID):\n", + " os.makedirs(FIGURE_ID)\n", + "\n", + "if not os.path.exists(DATA_ID):\n", + " os.makedirs(DATA_ID)\n", + "\n", + "def image_path(fig_id):\n", + " return os.path.join(FIGURE_ID, fig_id)\n", + "\n", + "def data_path(dat_id):\n", + " return os.path.join(DATA_ID, dat_id)\n", + "\n", + "def save_fig(fig_id):\n", + " plt.savefig(image_path(fig_id) + \".png\", format='png')\n", + "\n", + "infile = open(data_path(\"EoS.csv\"),'r')\n", + "\n", + "# Read the EoS data as csv file and organize the data into two arrays with density and energies\n", + "EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n", + "EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n", + "EoS = EoS.dropna()\n", + "Energies = EoS['Energy']\n", + "Density = EoS['Density']\n", + "# The design matrix now as function of various polytrops\n", + "\n", + "Maxpolydegree = 30\n", + "X = np.zeros((len(Density),Maxpolydegree))\n", + "X[:,0] = 1.0\n", + "testerror = np.zeros(Maxpolydegree)\n", + "trainingerror = np.zeros(Maxpolydegree)\n", + "polynomial = np.zeros(Maxpolydegree)\n", + "\n", + "trials = 100\n", + "for polydegree in range(1, Maxpolydegree):\n", + " polynomial[polydegree] = polydegree\n", + " for degree in range(polydegree):\n", + " X[:,degree] = Density**(degree/3.0)\n", + "\n", + "# loop over trials in order to estimate the expectation value of the MSE\n", + " testerror[polydegree] = 0.0\n", + " trainingerror[polydegree] = 0.0\n", + " for samples in range(trials):\n", + " x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2)\n", + " model = LinearRegression(fit_intercept=False).fit(x_train, y_train)\n", + " ypred = model.predict(x_train)\n", + " ytilde = model.predict(x_test)\n", + " testerror[polydegree] += mean_squared_error(y_test, ytilde)\n", + " trainingerror[polydegree] += mean_squared_error(y_train, ypred) \n", + "\n", + " testerror[polydegree] /= trials\n", + " trainingerror[polydegree] /= trials\n", + " print(\"Degree of polynomial: %3d\"% polynomial[polydegree])\n", + " print(\"Mean squared error on training data: %.8f\" % trainingerror[polydegree])\n", + " print(\"Mean squared error on test data: %.8f\" % testerror[polydegree])\n", + "\n", + "plt.plot(polynomial, np.log10(trainingerror), label='Training Error')\n", + "plt.plot(polynomial, np.log10(testerror), label='Test Error')\n", + "plt.xlabel('Polynomial degree')\n", + "plt.ylabel('log10[MSE]')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Cross-validation\n", + "\n", + "When the repetitive splitting of the data set is done randomly,\n", + "samples may accidently end up in a fast majority of the splits in\n", + "either training or test set. Such samples may have an unbalanced\n", + "influence on either model building or prediction evaluation. To avoid\n", + "this $k$-fold cross-validation structures the data splitting. The\n", + "samples are divided into $k$ more or less equally sized exhaustive and\n", + "mutually exclusive subsets. In turn (at each split) one of these\n", + "subsets plays the role of the test set while the union of the\n", + "remaining subsets constitutes the training set. Such a splitting\n", + "warrants a balanced representation of each sample in both training and\n", + "test set over the splits. Still the division into the $k$ subsets\n", + "involves a degree of randomness. This may be fully excluded when\n", + "choosing $k=n$. This particular case is referred to as leave-one-out\n", + "cross-validation (LOOCV). \n", + "\n", + "\n", + "* Define a range of interest for the penalty parameter.\n", + "\n", + "* Divide the data set into training and test set comprising samples $\\{1, \\ldots, n\\} \\setminus i$ and $\\{ i \\}$, respectively.\n", + "\n", + "* Fit the linear regression model by means of ridge estimation for each $\\lambda$ in the grid using the training set, and the corresponding estimate of the error variance $\\boldsymbol{\\sigma}_{-i}^2(\\lambda)$, as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\boldsymbol{\\beta}_{-i}(\\lambda) & = ( \\boldsymbol{X}_{-i, \\ast}^{T}\n", + "\\boldsymbol{X}_{-i, \\ast} + \\lambda \\boldsymbol{I}_{pp})^{-1}\n", + "\\boldsymbol{X}_{-i, \\ast}^{T} \\boldsymbol{y}_{-i}\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Evaluate the prediction performance of these models on the test set by $\\log\\{L[y_i, \\boldsymbol{X}_{i, \\ast}; \\boldsymbol{\\beta}_{-i}(\\lambda), \\boldsymbol{\\sigma}_{-i}^2(\\lambda)]\\}$. Or, by the prediction error $|y_i - \\boldsymbol{X}_{i, \\ast} \\boldsymbol{\\beta}_{-i}(\\lambda)|$, the relative error, the error squared or the R2 score function.\n", + "\n", + "* Repeat the first three steps such that each sample plays the role of the test set once.\n", + "\n", + "* Average the prediction performances of the test sets at each grid point of the penalty bias/parameter. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. It is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\frac{1}{n} \\sum_{i = 1}^n \\log\\{L[y_i, \\mathbf{X}_{i, \\ast}; \\boldsymbol{\\beta}_{-i}(\\lambda), \\boldsymbol{\\sigma}_{-i}^2(\\lambda)]\\}.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the various values of $k$\n", + "\n", + "1. shuffle the dataset randomly.\n", + "\n", + "2. Split the dataset into $k$ groups.\n", + "\n", + "3. For each unique group:\n", + "\n", + "a. Decide which group to use as set for test data\n", + "\n", + "b. Take the remaining groups as a training data set\n", + "\n", + "c. Fit a model on the training set and evaluate it on the test set\n", + "\n", + "d. Retain the evaluation score and discard the model\n", + "\n", + "\n", + "5. Summarize the model using the sample of model evaluation scores\n", + "\n", + "The code here uses Ridge regression with cross-validation (CV) resampling and $k$-fold CV in order to fit a specific polynomial." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA3pklEQVR4nO3dd3hU1dbH8e9KIwkJhBRqQAIEIUBCBwEpgiCIiuIFRBTQKyoq9mu7dq9iuRa8iqIiiihFURFQQDpKCy303kNJKIE0Uma/fyTwIiSQxJw5M5P1eZ48kJkze/+GkJWdffbZR4wxKKWU8jxedgdQSillDS3wSinlobTAK6WUh9ICr5RSHkoLvFJKeSgfuwOcLzw83NSuXdvuGEop5TZWrVqVbIyJKOg5lyrwtWvXJj4+3u4YSinlNkRkb2HP6RSNUkp5KC3wSinlobTAK6WUh3KpOfiCZGdnc+DAATIzM+2OokrA39+fyMhIfH197Y6iVJnj8gX+wIEDBAcHU7t2bUTE7jiqGIwxHDt2jAMHDhAVFWV3HKXKHJefosnMzCQsLEyLuxsSEcLCwvS3L6Vs4vIFHtDi7sb0a6eUfVx+ikYp5VoOr9/G3i+/w5w6Rblb+tC0Zwf9Qe6itMArpYrEOBwsH/YkzcZ9SNXcbACGpASTecCH//ZrSo2QAJsTqgu5xRSNurw9e/bQuHFju2MoD2UcDpb3GUzbL95lY4uOHFyZQPrxk3R7eBAbD55i/F3/JnH1RrtjqgvoCP5vysnJwcen7P0zltX3XVZNWLaXPal+OG4eylXff4545Y0NB3WoSIsQb6q+04+TS38kY/M6AkKCbU6rznKr79CXf9nIpsRTpdpmTPUKvHhDo0se8/XXX/POO+8gIsTGxuLt7U1oaChr1qyhefPm3HHHHdx3332kp6dTt25dxo4dS6VKlRg1ahSffPIJPj4+xMTEMHHiRBYuXMjDDz8M5J2AXLRoEcHBF39D9O/fn8GDB9OrVy8AhgwZwg033ECLFi244447SEtLA+B///sf7dq1u+z73LhxI0OHDiUrKwuHw8EPP/xAdHT0Re9t/Pjx7N27l7vuuoukpCQiIiL48ssvqVWrFkOGDPnL+x4+fDgPPPAASUlJBAYG8tlnn9GgQYPifgmUi9uZlMprv26h1e3DeHZoa8Trr/PtDRtHsf7Dz2hyd3+W97+bNrMm25RUXcjSAi8iDwP3AAJ8Zox538r+rLBx40b+85//8McffxAeHs7x48d57LHH2LZtG7///jve3t7Exsby4Ycf0qlTJ1544QVefvll3n//fUaOHMnu3bspV64cJ0+eBOCdd97ho48+on379qSmpuLv719gvwMGDGDSpEn06tWLrKws5s6dy+jRozHGMGfOHPz9/dm+fTu33XZbkTZo++STT3j44Ye5/fbbycrKIjc3t8D3BvDggw9y5513MnjwYMaOHcuIESP46aefAP7yvrt27conn3xCdHQ0y5cvZ/jw4cybN69U/t2V69h/6yB6R8Tw5JMv4OVV8MnUJnf1Y9n0X2n74zi2/DSbBn26OzmlKpAxxpIPoDGwAQgk7wfJ70D0pV7TokULc6FNmzZd9JgzjRo1yjz77LN/eWzw4MFm3LhxxhhjTp48aWrWrHnuuR07dphmzZoZY4zp0aOH6du3rxk/frw5ffq0McaYN954w7Ru3dp88MEHZv/+/YX2m5GRYSIjI01mZqb56aefzMCBA8/1N2jQINO4cWMTFxdnAgICjDHG7N692zRq1KjQ9iZMmGBiYmLMyJEjzbZt2wp9b8YYExYWZrKysowxxmRlZZmwsLCL3vfp06eNv7+/iYuLO/fRoEGDAvu2+2uoSm79Vz8YA2bp/U9f9tjTScfN0eBQs61WA5ObneOEdMoYY4B4U0hNtfIka0NgmTEm3RiTAywEbrawP0sYYwpcAla+fPnLvnbGjBk88MADrFq1ihYtWpCTk8PTTz/N559/TkZGBm3btmXLli0Fvtbf35/OnTsza9YsJk2axIABAwB47733qFKlCuvWrSM+Pp6srKwivY+BAwcybdo0AgIC6NGjB/PmzSv0vV3o/GPOvm+Hw0FISAhr164997F58+YiZVHuw+fllzgcUpmmb/77sscGhVdi66vvMrLVP5iz5agT0qnLsbLAbwA6ikiYiAQCvYCaFx4kIsNEJF5E4pOSkiyMUzJdu3Zl8uTJHDt2DODcNMZZFStWpFKlSixevBiA8ePH06lTJxwOB/v376dLly689dZbnDx5ktTUVHbu3EmTJk146qmnaNmyZaEFHvKmab788ksWL15Mjx49AEhJSaFatWp4eXkxfvx4cnNzi/Q+du3aRZ06dRgxYgQ33ngjCQkJhb63du3aMXHiRAAmTJhA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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_71_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.linear_model import Ridge\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.preprocessing import PolynomialFeatures\n", + "\n", + "# A seed just to ensure that the random numbers are the same for every run.\n", + "# Useful for eventual debugging.\n", + "np.random.seed(3155)\n", + "\n", + "# Generate the data.\n", + "nsamples = 100\n", + "x = np.random.randn(nsamples)\n", + "y = 3*x**2 + np.random.randn(nsamples)\n", + "\n", + "## Cross-validation on Ridge regression using KFold only\n", + "\n", + "# Decide degree on polynomial to fit\n", + "poly = PolynomialFeatures(degree = 6)\n", + "\n", + "# Decide which values of lambda to use\n", + "nlambdas = 500\n", + "lambdas = np.logspace(-3, 5, nlambdas)\n", + "\n", + "# Initialize a KFold instance\n", + "k = 5\n", + "kfold = KFold(n_splits = k)\n", + "\n", + "# Perform the cross-validation to estimate MSE\n", + "scores_KFold = np.zeros((nlambdas, k))\n", + "\n", + "i = 0\n", + "for lmb in lambdas:\n", + " ridge = Ridge(alpha = lmb)\n", + " j = 0\n", + " for train_inds, test_inds in kfold.split(x):\n", + " xtrain = x[train_inds]\n", + " ytrain = y[train_inds]\n", + "\n", + " xtest = x[test_inds]\n", + " ytest = y[test_inds]\n", + "\n", + " Xtrain = poly.fit_transform(xtrain[:, np.newaxis])\n", + " ridge.fit(Xtrain, ytrain[:, np.newaxis])\n", + "\n", + " Xtest = poly.fit_transform(xtest[:, np.newaxis])\n", + " ypred = ridge.predict(Xtest)\n", + "\n", + " scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred)\n", + "\n", + " j += 1\n", + " i += 1\n", + "\n", + "\n", + "estimated_mse_KFold = np.mean(scores_KFold, axis = 1)\n", + "\n", + "## Cross-validation using cross_val_score from sklearn along with KFold\n", + "\n", + "# kfold is an instance initialized above as:\n", + "# kfold = KFold(n_splits = k)\n", + "\n", + "estimated_mse_sklearn = np.zeros(nlambdas)\n", + "i = 0\n", + "for lmb in lambdas:\n", + " ridge = Ridge(alpha = lmb)\n", + "\n", + " X = poly.fit_transform(x[:, np.newaxis])\n", + " estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold)\n", + "\n", + " # cross_val_score return an array containing the estimated negative mse for every fold.\n", + " # we have to the the mean of every array in order to get an estimate of the mse of the model\n", + " estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds)\n", + "\n", + " i += 1\n", + "\n", + "## Plot and compare the slightly different ways to perform cross-validation\n", + "\n", + "plt.figure()\n", + "\n", + "plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score')\n", + "plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold')\n", + "\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('mse')\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "More examples of the application of cross-validation follow here." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/3817475779.py:63: RuntimeWarning: divide by zero encountered in log10\n", + " plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_73_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Common imports\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import KFold\n", + "from sklearn.model_selection import cross_val_score\n", + "\n", + "\n", + "# Where to save the figures and data files\n", + "PROJECT_ROOT_DIR = \"Results\"\n", + "FIGURE_ID = \"Results/FigureFiles\"\n", + "DATA_ID = \"DataFiles/\"\n", + "\n", + "if not os.path.exists(PROJECT_ROOT_DIR):\n", + " os.mkdir(PROJECT_ROOT_DIR)\n", + "\n", + "if not os.path.exists(FIGURE_ID):\n", + " os.makedirs(FIGURE_ID)\n", + "\n", + "if not os.path.exists(DATA_ID):\n", + " os.makedirs(DATA_ID)\n", + "\n", + "def image_path(fig_id):\n", + " return os.path.join(FIGURE_ID, fig_id)\n", + "\n", + "def data_path(dat_id):\n", + " return os.path.join(DATA_ID, dat_id)\n", + "\n", + "def save_fig(fig_id):\n", + " plt.savefig(image_path(fig_id) + \".png\", format='png')\n", + "\n", + "infile = open(data_path(\"EoS.csv\"),'r')\n", + "\n", + "# Read the EoS data as csv file and organize the data into two arrays with density and energies\n", + "EoS = pd.read_csv(infile, names=('Density', 'Energy'))\n", + "EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce')\n", + "EoS = EoS.dropna()\n", + "Energies = EoS['Energy']\n", + "Density = EoS['Density']\n", + "# The design matrix now as function of various polytrops\n", + "\n", + "Maxpolydegree = 30\n", + "X = np.zeros((len(Density),Maxpolydegree))\n", + "X[:,0] = 1.0\n", + "estimated_mse_sklearn = np.zeros(Maxpolydegree)\n", + "polynomial = np.zeros(Maxpolydegree)\n", + "k =5\n", + "kfold = KFold(n_splits = k)\n", + "\n", + "for polydegree in range(1, Maxpolydegree):\n", + " polynomial[polydegree] = polydegree\n", + " for degree in range(polydegree):\n", + " X[:,degree] = Density**(degree/3.0)\n", + " OLS = LinearRegression(fit_intercept=False)\n", + "# loop over trials in order to estimate the expectation value of the MSE\n", + " estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold)\n", + "#[:, np.newaxis]\n", + " estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds)\n", + "\n", + "plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error')\n", + "plt.xlabel('Polynomial degree')\n", + "plt.ylabel('log10[MSE]')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that we have kept the intercept in the first column of design matrix $\\boldsymbol{X}$. When we call the corresponding **Scikit-Learn** function we need thus to set the intercept to **False**. Libraries like **Scikit-Learn** normally scale the design matrix and does not fit intercept. See the discussions below.\n", + "\n", + "## More on Rescaling data\n", + "\n", + "We end this chapter by adding some words on scaling and how to deal with the intercept for regression cases.\n", + "\n", + "When you are comparing your own code with for example **Scikit-Learn**'s\n", + "library, there are some technicalities to keep in mind. The examples\n", + "here demonstrate some of these aspects with potential pitfalls.\n", + "\n", + "The discussion here focuses on the role of the intercept, how we can\n", + "set up the design matrix, what scaling we should use and other topics\n", + "which tend confuse us.\n", + "\n", + "The intercept can be interpreted as the expected value of our\n", + "target/output variables when all other predictors are set to zero.\n", + "Thus, if we cannot assume that the expected outputs/targets are zero\n", + "when all predictors are zero (the columns in the design matrix), it\n", + "may be a bad idea to implement a model which penalizes the intercept.\n", + "Furthermore, in for example Ridge and Lasso regression, the default solutions\n", + "from the library **Scikit-Learn** (when not shrinking $\\beta_0$) for the unknown parameters\n", + "$\\boldsymbol{\\beta}$, are derived under the assumption that both $\\boldsymbol{y}$ and\n", + "$\\boldsymbol{X}$ are zero centered, that is we subtract the mean values.\n", + "\n", + "\n", + "If our predictors represent different scales, then it is important to\n", + "standardize the design matrix $\\boldsymbol{X}$ by subtracting the mean of each\n", + "column from the corresponding column and dividing the column with its\n", + "standard deviation. Most machine learning libraries do this as a default. This means that if you compare your code with the results from a given library,\n", + "the results may differ. \n", + "\n", + "The\n", + "[Standardscaler](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html)\n", + "function in **Scikit-Learn** does this for us. For the data sets we\n", + "have been studying in our various examples, the data are in many cases\n", + "already scaled and there is no need to scale them. You as a user of different machine learning algorithms, should always perform a\n", + "survey of your data, with a critical assessment of them in case you need to scale the data.\n", + "\n", + "If you need to scale the data, not doing so will give an *unfair*\n", + "penalization of the parameters since their magnitude depends on the\n", + "scale of their corresponding predictor.\n", + "\n", + "Suppose as an example that you \n", + "you have an input variable given by the heights of different persons.\n", + "Human height might be measured in inches or meters or\n", + "kilometers. If measured in kilometers, a standard linear regression\n", + "model with this predictor would probably give a much bigger\n", + "coefficient term, than if measured in millimeters.\n", + "This can clearly lead to problems in evaluating the cost/loss functions.\n", + "\n", + "\n", + "\n", + "Keep in mind that when you transform your data set before training a model, the same transformation needs to be done\n", + "on your eventual new data set before making a prediction. If we translate this into a Python code, it would could be implemented as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\n#Model training, we compute the mean value of y and X\\ny_train_mean = np.mean(y_train)\\nX_train_mean = np.mean(X_train,axis=0)\\nX_train = X_train - X_train_mean\\ny_train = y_train - y_train_mean\\n\\n# The we fit our model with the training data\\ntrained_model = some_model.fit(X_train,y_train)\\n\\n\\n#Model prediction, we need also to transform our data set used for the prediction.\\nX_test = X_test - X_train_mean #Use mean from training data\\ny_pred = trained_model(X_test)\\ny_pred = y_pred + y_train_mean\\n'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "#Model training, we compute the mean value of y and X\n", + "y_train_mean = np.mean(y_train)\n", + "X_train_mean = np.mean(X_train,axis=0)\n", + "X_train = X_train - X_train_mean\n", + "y_train = y_train - y_train_mean\n", + "\n", + "# The we fit our model with the training data\n", + "trained_model = some_model.fit(X_train,y_train)\n", + "\n", + "\n", + "#Model prediction, we need also to transform our data set used for the prediction.\n", + "X_test = X_test - X_train_mean #Use mean from training data\n", + "y_pred = trained_model(X_test)\n", + "y_pred = y_pred + y_train_mean\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us try to understand what this may imply mathematically when we\n", + "subtract the mean values, also known as *zero centering*. For\n", + "simplicity, we will focus on ordinary regression, as done in the above example.\n", + "\n", + "The cost/loss function for regression is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\beta_0, \\beta_1, ... , \\beta_{p-1}) = \\frac{1}{n}\\sum_{i=0}^{n} \\left(y_i - \\beta_0 - \\sum_{j=1}^{p-1} X_{ij}\\beta_j\\right)^2,.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Recall also that we use the squared value. This expression can lead to an\n", + "increased penalty for higher differences between predicted and\n", + "output/target values.\n", + "\n", + "What we have done is to single out the $\\beta_0$ term in the\n", + "definition of the mean squared error (MSE). The design matrix $X$\n", + "does in this case not contain any intercept column. When we take the\n", + "derivative with respect to $\\beta_0$, we want the derivative to obey" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial C}{\\partial \\beta_j} = 0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for all $j$. For $\\beta_0$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial C}{\\partial \\beta_0} = -\\frac{2}{n}\\sum_{i=0}^{n-1} \\left(y_i - \\beta_0 - \\sum_{j=1}^{p-1} X_{ij} \\beta_j\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Multiplying away the constant $2/n$, we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sum_{i=0}^{n-1} \\beta_0 = \\sum_{i=0}^{n-1}y_i - \\sum_{i=0}^{n-1} \\sum_{j=1}^{p-1} X_{ij} \\beta_j.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us specialize first to the case where we have only two parameters $\\beta_0$ and $\\beta_1$.\n", + "Our result for $\\beta_0$ simplifies then to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "n\\beta_0 = \\sum_{i=0}^{n-1}y_i - \\sum_{i=0}^{n-1} X_{i1} \\beta_1.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We obtain then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\beta_1\\frac{1}{n}\\sum_{i=0}^{n-1} X_{i1}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu_{\\boldsymbol{x}_1}=\\frac{1}{n}\\sum_{i=0}^{n-1} X_{i1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the mean value of the outputs as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu_y=\\frac{1}{n}\\sum_{i=0}^{n-1}y_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_0 = \\mu_y - \\beta_1\\mu_{\\boldsymbol{x}_1}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the general case with more parameters than $\\beta_0$ and $\\beta_1$, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\frac{1}{n}\\sum_{i=0}^{n-1}\\sum_{j=1}^{p-1} X_{ij}\\beta_j.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can rewrite the latter equation as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_0 = \\frac{1}{n}\\sum_{i=0}^{n-1}y_i - \\sum_{j=1}^{p-1} \\mu_{\\boldsymbol{x}_j}\\beta_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu_{\\boldsymbol{x}_j}=\\frac{1}{n}\\sum_{i=0}^{n-1} X_{ij},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the mean value for all elements of the column vector $\\boldsymbol{x}_j$.\n", + "\n", + "\n", + "\n", + "Replacing $y_i$ with $y_i - y_i - \\overline{\\boldsymbol{y}}$ and centering also our design matrix results in a cost function (in vector-matrix disguise)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{\\beta}) = (\\boldsymbol{\\tilde{y}} - \\tilde{X}\\boldsymbol{\\beta})^T(\\boldsymbol{\\tilde{y}} - \\tilde{X}\\boldsymbol{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we minimize with respect to $\\boldsymbol{\\beta}$ we have then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}} = (\\tilde{X}^T\\tilde{X})^{-1}\\tilde{X}^T\\boldsymbol{\\tilde{y}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{\\tilde{y}} = \\boldsymbol{y} - \\overline{\\boldsymbol{y}}$\n", + "and $\\tilde{X}_{ij} = X_{ij} - \\frac{1}{n}\\sum_{k=0}^{n-1}X_{kj}$.\n", + "\n", + "For Ridge regression we need to add $\\lambda \\boldsymbol{\\beta}^T\\boldsymbol{\\beta}$ to the cost function and get then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}} = (\\tilde{X}^T\\tilde{X} + \\lambda I)^{-1}\\tilde{X}^T\\boldsymbol{\\tilde{y}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What does this mean? And why do we insist on all this? Let us look at some examples.\n", + "\n", + "\n", + "This code shows a simple first-order fit to a data set using the above transformed data, where we consider the role of the intercept first, by either excluding it or including it (*code example thanks to Øyvind Sigmundson Schøyen*). Here our scaling of the data is done by subtracting the mean values only.\n", + "Note also that we do not split the data into training and test." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True beta: [2, 0.5, 3.7]\n", + "Fitted beta: [2.08376632 0.19569961 3.97898392]\n", + "Sklearn fitted beta: [2.08376632 0.19569961 3.97898392]\n", + "MSE with intercept column\n", + "0.0041136346174431284\n", + "MSE with intercept column from SKL\n", + "0.004113634617443141\n", + "Manual intercept: 2.0837663229239016\n", + "Fitted beta (wiothout intercept): [0.19569961 3.97898392]\n", + "Sklearn intercept: 2.0837663229239025\n", + "Sklearn fitted beta (without intercept): [0.19569961 3.97898392]\n", + "MSE with Manual intercept\n", + "0.00411363461744314\n", + "MSE with Sklearn intercept\n", + "0.004113634617443135\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_107_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "\n", + "np.random.seed(2021)\n", + "\n", + "def MSE(y_data,y_model):\n", + " n = np.size(y_model)\n", + " return np.sum((y_data-y_model)**2)/n\n", + "\n", + "\n", + "def fit_beta(X, y):\n", + " return np.linalg.pinv(X.T @ X) @ X.T @ y\n", + "\n", + "\n", + "true_beta = [2, 0.5, 3.7]\n", + "\n", + "x = np.linspace(0, 1, 11)\n", + "y = np.sum(\n", + " np.asarray([x ** p * b for p, b in enumerate(true_beta)]), axis=0\n", + ") + 0.1 * np.random.normal(size=len(x))\n", + "\n", + "degree = 3\n", + "X = np.zeros((len(x), degree))\n", + "\n", + "# Include the intercept in the design matrix\n", + "for p in range(degree):\n", + " X[:, p] = x ** p\n", + "\n", + "beta = fit_beta(X, y)\n", + "\n", + "# Intercept is included in the design matrix\n", + "skl = LinearRegression(fit_intercept=False).fit(X, y)\n", + "\n", + "print(f\"True beta: {true_beta}\")\n", + "print(f\"Fitted beta: {beta}\")\n", + "print(f\"Sklearn fitted beta: {skl.coef_}\")\n", + "ypredictOwn = X @ beta\n", + "ypredictSKL = skl.predict(X)\n", + "print(f\"MSE with intercept column\")\n", + "print(MSE(y,ypredictOwn))\n", + "print(f\"MSE with intercept column from SKL\")\n", + "print(MSE(y,ypredictSKL))\n", + "\n", + "\n", + "plt.figure()\n", + "plt.scatter(x, y, label=\"Data\")\n", + "plt.plot(x, X @ beta, label=\"Fit\")\n", + "plt.plot(x, skl.predict(X), label=\"Sklearn (fit_intercept=False)\")\n", + "\n", + "\n", + "# Do not include the intercept in the design matrix\n", + "X = np.zeros((len(x), degree - 1))\n", + "\n", + "for p in range(degree - 1):\n", + " X[:, p] = x ** (p + 1)\n", + "\n", + "# Intercept is not included in the design matrix\n", + "skl = LinearRegression(fit_intercept=True).fit(X, y)\n", + "\n", + "# Use centered values for X and y when computing coefficients\n", + "y_offset = np.average(y, axis=0)\n", + "X_offset = np.average(X, axis=0)\n", + "\n", + "beta = fit_beta(X - X_offset, y - y_offset)\n", + "intercept = np.mean(y_offset - X_offset @ beta)\n", + "\n", + "print(f\"Manual intercept: {intercept}\")\n", + "print(f\"Fitted beta (wiothout intercept): {beta}\")\n", + "print(f\"Sklearn intercept: {skl.intercept_}\")\n", + "print(f\"Sklearn fitted beta (without intercept): {skl.coef_}\")\n", + "ypredictOwn = X @ beta\n", + "ypredictSKL = skl.predict(X)\n", + "print(f\"MSE with Manual intercept\")\n", + "print(MSE(y,ypredictOwn+intercept))\n", + "print(f\"MSE with Sklearn intercept\")\n", + "print(MSE(y,ypredictSKL))\n", + "\n", + "plt.plot(x, X @ beta + intercept, \"--\", label=\"Fit (manual intercept)\")\n", + "plt.plot(x, skl.predict(X), \"--\", label=\"Sklearn (fit_intercept=True)\")\n", + "plt.grid()\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The intercept is the value of our output/target variable\n", + "when all our features are zero and our function crosses the $y$-axis (for a one-dimensional case). \n", + "\n", + "Printing the MSE, we see first that both methods give the same MSE, as\n", + "they should. However, when we move to for example Ridge regression,\n", + "the way we treat the intercept may give a larger or smaller MSE,\n", + "meaning that the MSE can be penalized by the value of the\n", + "intercept. Not including the intercept in the fit, means that the\n", + "regularization term does not include $\\beta_0$. For different values\n", + "of $\\lambda$, this may lead to differeing MSE values. \n", + "\n", + "To remind the reader, the regularization term, with the intercept in Ridge regression, is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\lambda \\vert\\vert \\boldsymbol{\\beta} \\vert\\vert_2^2 = \\lambda \\sum_{j=0}^{p-1}\\beta_j^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "but when we take out the intercept, this equation becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\lambda \\vert\\vert \\boldsymbol{\\beta} \\vert\\vert_2^2 = \\lambda \\sum_{j=1}^{p-1}\\beta_j^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For Lasso regression we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\lambda \\vert\\vert \\boldsymbol{\\beta} \\vert\\vert_1 = \\lambda \\sum_{j=1}^{p-1}\\vert\\beta_j\\vert.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It means that, when scaling the design matrix and the outputs/targets,\n", + "by subtracting the mean values, we have an optimization problem which\n", + "is not penalized by the intercept. The MSE value can then be smaller\n", + "since it focuses only on the remaining quantities. If we however bring\n", + "back the intercept, we will get a MSE which then contains the\n", + "intercept.\n", + "\n", + "\n", + "Armed with this wisdom, we attempt first to simply set the intercept equal to **False** in our implementation of Ridge regression for our well-known vanilla data set." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Beta values for own Ridge implementation\n", + "[ 1.03032441e+00 6.28336218e-02 -6.24175744e-01 5.21169159e-02\n", + " 2.80847477e-01 2.12552073e-01 8.13220608e-02 -1.69634577e-02\n", + " -6.50846112e-02 -7.38962192e-02 -5.94226022e-02 -3.50227564e-02\n", + " -9.80609615e-03 1.08299273e-02 2.41882037e-02 2.93492130e-02\n", + " 2.64742912e-02 1.63249532e-02 -5.01831130e-05 -2.15098090e-02]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[ 1.03032441e+00 6.28336218e-02 -6.24175744e-01 5.21169159e-02\n", + " 2.80847477e-01 2.12552073e-01 8.13220608e-02 -1.69634577e-02\n", + " -6.50846112e-02 -7.38962192e-02 -5.94226022e-02 -3.50227564e-02\n", + " -9.80609615e-03 1.08299273e-02 2.41882037e-02 2.93492130e-02\n", + " 2.64742912e-02 1.63249532e-02 -5.01831200e-05 -2.15098090e-02]\n", + "MSE values for own Ridge implementation\n", + "4.3632959170548605e-07\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "4.363295916414895e-07\n", + "Beta values for own Ridge implementation\n", + "[ 1.03630548 -0.01963611 -0.37900111 -0.07062318 0.12182967 0.16343471\n", + " 0.13003291 0.07490892 0.02365049 -0.01449782 -0.03814292 -0.04909093\n", + " -0.05009826 -0.04389027 -0.03279636 -0.01866537 -0.00289724 0.01348565\n", + " 0.02976145 0.04543942]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[ 1.03630548 -0.01963611 -0.37900111 -0.07062318 0.12182967 0.16343471\n", + " 0.13003291 0.07490892 0.02365049 -0.01449782 -0.03814292 -0.04909093\n", + " -0.05009826 -0.04389027 -0.03279636 -0.01866537 -0.00289724 0.01348565\n", + " 0.02976145 0.04543942]\n", + "MSE values for own Ridge implementation\n", + "5.194042826653172e-06\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "5.194042826815498e-06\n", + "Beta values for own Ridge implementation\n", + "[ 1.04220758 -0.10931453 -0.17641709 -0.06020587 0.02208512 0.05789007\n", + " 0.06491736 0.05785343 0.04537385 0.03196357 0.01969145 0.00934499\n", + " 0.00107405 -0.00526348 -0.00992331 -0.01318643 -0.01531845 -0.01655318\n", + " -0.01708852 -0.01708781]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[ 1.04220758 -0.10931453 -0.17641709 -0.06020587 0.02208512 0.05789007\n", + " 0.06491736 0.05785343 0.04537385 0.03196357 0.01969145 0.00934499\n", + " 0.00107405 -0.00526348 -0.00992331 -0.01318643 -0.01531845 -0.01655318\n", + " -0.01708852 -0.01708781]\n", + "MSE values for own Ridge implementation\n", + "2.0940821989673748e-05\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "2.0940821989624095e-05\n", + "Beta values for own Ridge implementation\n", + "[ 1.01219292 -0.06043581 -0.10391807 -0.05651951 -0.01898855 0.00312361\n", + " 0.01463049 0.01975848 0.02123176 0.02068067 0.01905883 0.01691985\n", + " 0.01458337 0.01223198 0.00996754 0.00784393 0.00588657 0.00410387\n", + " 0.00249435 0.00105081]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[ 1.01219292 -0.06043581 -0.10391807 -0.05651951 -0.01898855 0.00312361\n", + " 0.01463049 0.01975848 0.02123176 0.02068067 0.01905883 0.01691985\n", + " 0.01458337 0.01223198 0.00996754 0.00784393 0.00588657 0.00410387\n", + " 0.00249435 0.00105081]\n", + "MSE values for own Ridge implementation\n", + "0.0003153514830958126\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "0.0003153514830958081\n", + "Beta values for own Ridge implementation\n", + "[ 8.38916861e-01 1.31276579e-01 8.97497404e-03 -1.72271878e-02\n", + " -2.11744554e-02 -1.91492986e-02 -1.57201944e-02 -1.23002365e-02\n", + " -9.30466214e-03 -6.81048318e-03 -4.78184120e-03 -3.15130074e-03\n", + " -1.84923989e-03 -8.13661243e-04 7.46984697e-06 6.56636616e-04\n", + " 1.16805821e-03 1.56912044e-03 1.88168312e-03 2.12318726e-03]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[ 8.38916861e-01 1.31276579e-01 8.97497404e-03 -1.72271878e-02\n", + " -2.11744554e-02 -1.91492986e-02 -1.57201944e-02 -1.23002365e-02\n", + " -9.30466214e-03 -6.81048318e-03 -4.78184120e-03 -3.15130074e-03\n", + " -1.84923989e-03 -8.13661243e-04 7.46984697e-06 6.56636616e-04\n", + " 1.16805821e-03 1.56912044e-03 1.88168312e-03 2.12318726e-03]\n", + "MSE values for own Ridge implementation\n", + "0.015072388895177109\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "0.015072388895177088\n", + "Beta values for own Ridge implementation\n", + "[0.37396662 0.14174745 0.0764924 0.04892055 0.03447512 0.02586427\n", + " 0.02024962 0.01633913 0.01347916 0.0113104 0.0096208 0.00827728\n", + " 0.00719176 0.00630331 0.00556826 0.0049544 0.00443743 0.0039987\n", + " 0.0036237 0.003301 ]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[0.37396662 0.14174745 0.0764924 0.04892055 0.03447512 0.02586427\n", + " 0.02024962 0.01633913 0.01347916 0.0113104 0.0096208 0.00827728\n", + " 0.00719176 0.00630331 0.00556826 0.0049544 0.00443743 0.0039987\n", + " 0.0036237 0.003301 ]\n", + "MSE values for own Ridge implementation\n", + "0.2640931530791005\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "0.2640931530791003\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_115_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn import linear_model\n", + "\n", + "def MSE(y_data,y_model):\n", + " n = np.size(y_model)\n", + " return np.sum((y_data-y_model)**2)/n\n", + "\n", + "\n", + "# A seed just to ensure that the random numbers are the same for every run.\n", + "# Useful for eventual debugging.\n", + "np.random.seed(3155)\n", + "\n", + "n = 100\n", + "x = np.random.rand(n)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)\n", + "\n", + "Maxpolydegree = 20\n", + "X = np.zeros((n,Maxpolydegree))\n", + "#We include explicitely the intercept column\n", + "for degree in range(Maxpolydegree):\n", + " X[:,degree] = x**degree\n", + "# We split the data in test and training data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", + "\n", + "p = Maxpolydegree\n", + "I = np.eye(p,p)\n", + "# Decide which values of lambda to use\n", + "nlambdas = 6\n", + "MSEOwnRidgePredict = np.zeros(nlambdas)\n", + "MSERidgePredict = np.zeros(nlambdas)\n", + "lambdas = np.logspace(-4, 2, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " OwnRidgeBeta = np.linalg.pinv(X_train.T @ X_train+lmb*I) @ X_train.T @ y_train\n", + " # Note: we include the intercept column and no scaling\n", + " RegRidge = linear_model.Ridge(lmb,fit_intercept=False)\n", + " RegRidge.fit(X_train,y_train)\n", + " # and then make the prediction\n", + " ytildeOwnRidge = X_train @ OwnRidgeBeta\n", + " ypredictOwnRidge = X_test @ OwnRidgeBeta\n", + " ytildeRidge = RegRidge.predict(X_train)\n", + " ypredictRidge = RegRidge.predict(X_test)\n", + " MSEOwnRidgePredict[i] = MSE(y_test,ypredictOwnRidge)\n", + " MSERidgePredict[i] = MSE(y_test,ypredictRidge)\n", + " print(\"Beta values for own Ridge implementation\")\n", + " print(OwnRidgeBeta)\n", + " print(\"Beta values for Scikit-Learn Ridge implementation\")\n", + " print(RegRidge.coef_)\n", + " print(\"MSE values for own Ridge implementation\")\n", + " print(MSEOwnRidgePredict[i])\n", + " print(\"MSE values for Scikit-Learn Ridge implementation\")\n", + " print(MSERidgePredict[i])\n", + "\n", + "# Now plot the results\n", + "plt.figure()\n", + "plt.plot(np.log10(lambdas), MSEOwnRidgePredict, 'r', label = 'MSE own Ridge Test')\n", + "plt.plot(np.log10(lambdas), MSERidgePredict, 'g', label = 'MSE Ridge Test')\n", + "\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('MSE')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The results here agree when we force **Scikit-Learn**'s Ridge function to include the first column in our design matrix.\n", + "We see that the results agree very well. Here we have thus explicitely included the intercept column in the design matrix.\n", + "What happens if we do not include the intercept in our fit?\n", + "Let us see how we can change this code by zero centering." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Beta values for own Ridge implementation\n", + "[ 3.43579948e-02 -5.43330971e-01 -3.10141413e-03 2.47116868e-01\n", + " 2.18613217e-01 1.02054837e-01 -4.25617657e-04 -5.90475506e-02\n", + " -7.68534263e-02 -6.68929213e-02 -4.24906604e-02 -1.40927184e-02\n", + " 1.11482289e-02 2.88529063e-02 3.67047975e-02 3.38135733e-02\n", + " 2.02198702e-02 -3.46383925e-03 -3.63025821e-02]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[ 3.43579948e-02 -5.43330971e-01 -3.10141413e-03 2.47116868e-01\n", + " 2.18613217e-01 1.02054837e-01 -4.25617654e-04 -5.90475506e-02\n", + " -7.68534263e-02 -6.68929213e-02 -4.24906604e-02 -1.40927184e-02\n", + " 1.11482289e-02 2.88529063e-02 3.67047975e-02 3.38135733e-02\n", + " 2.02198702e-02 -3.46383925e-03 -3.63025821e-02]\n", + "Intercept from own implementation:\n", + "1.0330308045180234\n", + "Intercept from Scikit-Learn Ridge implementation\n", + "1.0330308045183163\n", + "MSE values for own Ridge implementation\n", + "3.1392559581788775e-06\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "3.1392559584983597e-06\n", + "Beta values for own Ridge implementation\n", + "[-0.05807125 -0.29822833 -0.08551306 0.08156108 0.13679863 0.12333649\n", + " 0.08251519 0.03815288 0.00111756 -0.02498832 -0.04010697 -0.04566964\n", + " -0.04355837 -0.03562355 -0.02348765 -0.00848904 0.00831018 0.0260906\n", + " 0.04423486]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[-0.05807125 -0.29822833 -0.08551306 0.08156108 0.13679863 0.12333649\n", + " 0.08251519 0.03815288 0.00111756 -0.02498832 -0.04010697 -0.04566964\n", + " -0.04355837 -0.03562355 -0.02348765 -0.00848904 0.00831018 0.0260906\n", + " 0.04423486]\n", + "Intercept from own implementation:\n", + "1.0411487294305746\n", + "Intercept from Scikit-Learn Ridge implementation\n", + "1.0411487294305246\n", + "MSE values for own Ridge implementation\n", + "1.9601304850213484e-05\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "1.960130485007934e-05\n", + "Beta values for own Ridge implementation\n", + "[-0.1416398 -0.14021063 -0.05383795 0.01367553 0.04784395 0.05796251\n", + " 0.05447415 0.044613 0.03267527 0.02098261 0.01066519 0.00217499\n", + " -0.00440346 -0.00917248 -0.01231917 -0.01405935 -0.0146081 -0.01416528\n", + " -0.01290947]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[-0.1416398 -0.14021063 -0.05383795 0.01367553 0.04784395 0.05796251\n", + " 0.05447415 0.044613 0.03267527 0.02098261 0.01066519 0.00217499\n", + " -0.00440346 -0.00917248 -0.01231917 -0.01405935 -0.0146081 -0.01416528\n", + " -0.01290947]\n", + "Intercept from own implementation:\n", + "1.0495569966278315\n", + "Intercept from Scikit-Learn Ridge implementation\n", + "1.0495569966278269\n", + "MSE values for own Ridge implementation\n", + "5.495916150938325e-05\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "5.495916150936654e-05\n", + "Beta values for own Ridge implementation\n", + "[-0.13535942 -0.08593216 -0.03568439 -0.0036367 0.01397146 0.02229529\n", + " 0.02503753 0.0245528 0.02228115 0.01908936 0.01549377 0.01179792\n", + " 0.00817631 0.00472512 0.00149311 -0.00149956 -0.00424967 -0.00676387\n", + " -0.00905423]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[-0.13535942 -0.08593216 -0.03568439 -0.0036367 0.01397146 0.02229529\n", + " 0.02503753 0.0245528 0.02228115 0.01908936 0.01549377 0.01179792\n", + " 0.00817631 0.00472512 0.00149311 -0.00149956 -0.00424967 -0.00676387\n", + " -0.00905423]\n", + "Intercept from own implementation:\n", + "1.0399676689527968\n", + "Intercept from Scikit-Learn Ridge implementation\n", + "1.0399676689527975\n", + "MSE values for own Ridge implementation\n", + "7.571105947979439e-05\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "7.571105947979395e-05\n", + "Beta values for own Ridge implementation\n", + "[-0.05100875 -0.04063602 -0.02723445 -0.01713366 -0.0100706 -0.00517114\n", + " -0.00174276 0.00068734 0.00243186 0.00369758 0.00462287 0.0053018\n", + " 0.00579953 0.006162 0.00642221 0.00660427 0.00672607 0.0068011\n", + " 0.00683964]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[-0.05100875 -0.04063602 -0.02723445 -0.01713366 -0.0100706 -0.00517114\n", + " -0.00174276 0.00068734 0.00243186 0.00369758 0.00462287 0.0053018\n", + " 0.00579953 0.006162 0.00642221 0.00660427 0.00672607 0.0068011\n", + " 0.00683964]\n", + "Intercept from own implementation:\n", + "0.9999555851685968\n", + "Intercept from Scikit-Learn Ridge implementation\n", + "0.999955585168597\n", + "MSE values for own Ridge implementation\n", + "0.0007698473260556339\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "0.0007698473260556334\n", + "Beta values for own Ridge implementation\n", + "[-0.00834567 -0.00803064 -0.00673407 -0.00554552 -0.00458878 -0.0038335\n", + " -0.00323332 -0.00274989 -0.0023548 -0.00202756 -0.00175331 -0.00152117\n", + " -0.001323 -0.0011526 -0.00100519 -0.00087697 -0.00076495 -0.00066668\n", + " -0.00058016]\n", + "Beta values for Scikit-Learn Ridge implementation\n", + "[-0.00834567 -0.00803064 -0.00673407 -0.00554552 -0.00458878 -0.0038335\n", + " -0.00323332 -0.00274989 -0.0023548 -0.00202756 -0.00175331 -0.00152117\n", + " -0.001323 -0.0011526 -0.00100519 -0.00087697 -0.00076495 -0.00066668\n", + " -0.00058016]\n", + "Intercept from own implementation:\n", + "0.9637117593816477\n", + "Intercept from Scikit-Learn Ridge implementation\n", + "0.9637117593816477\n", + "MSE values for own Ridge implementation\n", + "0.0023813163025848865\n", + "MSE values for Scikit-Learn Ridge implementation\n", + "0.002381316302584885\n" + ] + }, + { + "data": { + "image/png": "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8cknnwDQu3dvatSoAcD3339Pv379CAsLA+C6664DICkpiR9//JH+/ftn7yMtLa3Afp62aNEiFi1aRMuWLbP3s2PHDjp27Mjo0aN55JFH6NOnzxl9NKY8ysxy8eG+F6jsas3Ivp19dhxLKkVYurTgssqVCy+vXbvw8qL07duX0aNHs3TpUhISEs4oq1mzJrfccgu33HILffr0YdmyZbRu3brIfeY8zZRbx44d+eqrrwgKCqJr164MHjyYrKys7NNPACEhIYD71FZmZma++zmd2A4cOMBVV13F3Llz6du3b556+V2mW1B8LpeL6tWrF5ow86OqPProo9x99915ytasWcP8+fN59NFHufbaaxk7duxZ7duYsmTse1+QUXU799SbQ0CA7y6Rt9NffmzIkCGMHTuWZs2anfH54sWLs69QSkxMZNeuXVx00UXF2mejRo3Ys2cPO3fuBOCdd96hc2f3Xy2dOnVi8uTJdOjQgcjISBISEti6dStNmjQpUfx169bl2Wef5ZlnnslT1qlTJ957z/3Ugq+++opjx44BcOWVV/LFF1+QmppKUlJS9rxS1apViY6O5qOPPgLcyeLXX38tMobu3bszY8YMkpKSAPjjjz84dOgQ+/fvp3Llytx2222MHj2aX375BYAqVaqQmJhYov4a48+m/jKJSokNeG7Q//n0ODZS8WNRUVH89a9/zfP5mjVrGDFiBJUqVcLlcnHXXXfRpk0b9uzZk33q6bQhQ4accRlvaGgoM2fOpH///mRmZtKmTRuGD3c/ebldu3YcPHiQTp06Ae5TcHXq1DmnG/+uv/56nnjiiTxzO+PGjWPgwIG0atWKzp07ZyfFNm3a0LdvX5o3b079+vWJi4ujWrVqALz33nvcc889TJgwgYyMDAYMGEDz5s0LPf61117Lli1b6NChAwARERG8++677Ny5k4cffpiAgACCgoKYNm0a4J636dmzJ3Xr1rV5FVNuxB8+SZak0bfOKEKDffu1bwtK5lpQcsuWLVx22WUORWTAPe8RERFBcnIynTp1Yvr06bRq1crpsOx3w5RpLpeSmeUiOCjwnPdlC0qaMmXYsGFs3ryZ1NRUBg0a5BcJxZiyauNvBwkJqkRMVC2CA849oRTFkorxO++//77TIRhTbgx8/Uk2Bczm0Jh4aler7PPj2US9McaUU9v2HWFj0Ez+lHlDqSQU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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_117_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn import linear_model\n", + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "def MSE(y_data,y_model):\n", + " n = np.size(y_model)\n", + " return np.sum((y_data-y_model)**2)/n\n", + "# A seed just to ensure that the random numbers are the same for every run.\n", + "# Useful for eventual debugging.\n", + "np.random.seed(315)\n", + "\n", + "n = 100\n", + "x = np.random.rand(n)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)\n", + "\n", + "Maxpolydegree = 20\n", + "X = np.zeros((n,Maxpolydegree-1))\n", + "\n", + "for degree in range(1,Maxpolydegree): #No intercept column\n", + " X[:,degree-1] = x**(degree)\n", + "\n", + "# We split the data in test and training data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)\n", + "\n", + "#For our own implementation, we will need to deal with the intercept by centering the design matrix and the target variable\n", + "X_train_mean = np.mean(X_train,axis=0)\n", + "#Center by removing mean from each feature\n", + "X_train_scaled = X_train - X_train_mean \n", + "X_test_scaled = X_test - X_train_mean\n", + "#The model intercept (called y_scaler) is given by the mean of the target variable (IF X is centered)\n", + "#Remove the intercept from the training data.\n", + "y_scaler = np.mean(y_train) \n", + "y_train_scaled = y_train - y_scaler \n", + "\n", + "p = Maxpolydegree-1\n", + "I = np.eye(p,p)\n", + "# Decide which values of lambda to use\n", + "nlambdas = 6\n", + "MSEOwnRidgePredict = np.zeros(nlambdas)\n", + "MSERidgePredict = np.zeros(nlambdas)\n", + "\n", + "lambdas = np.logspace(-4, 2, nlambdas)\n", + "for i in range(nlambdas):\n", + " lmb = lambdas[i]\n", + " OwnRidgeBeta = np.linalg.pinv(X_train_scaled.T @ X_train_scaled+lmb*I) @ X_train_scaled.T @ (y_train_scaled)\n", + " intercept_ = y_scaler - X_train_mean@OwnRidgeBeta #The intercept can be shifted so the model can predict on uncentered data\n", + " #Add intercept to prediction\n", + " ypredictOwnRidge = X_test_scaled @ OwnRidgeBeta + y_scaler \n", + " RegRidge = linear_model.Ridge(lmb)\n", + " RegRidge.fit(X_train,y_train)\n", + " ypredictRidge = RegRidge.predict(X_test)\n", + " MSEOwnRidgePredict[i] = MSE(y_test,ypredictOwnRidge)\n", + " MSERidgePredict[i] = MSE(y_test,ypredictRidge)\n", + " print(\"Beta values for own Ridge implementation\")\n", + " print(OwnRidgeBeta) #Intercept is given by mean of target variable\n", + " print(\"Beta values for Scikit-Learn Ridge implementation\")\n", + " print(RegRidge.coef_)\n", + " print('Intercept from own implementation:')\n", + " print(intercept_)\n", + " print('Intercept from Scikit-Learn Ridge implementation')\n", + " print(RegRidge.intercept_)\n", + " print(\"MSE values for own Ridge implementation\")\n", + " print(MSEOwnRidgePredict[i])\n", + " print(\"MSE values for Scikit-Learn Ridge implementation\")\n", + " print(MSERidgePredict[i])\n", + "\n", + "\n", + "# Now plot the results\n", + "plt.figure()\n", + "plt.plot(np.log10(lambdas), MSEOwnRidgePredict, 'b--', label = 'MSE own Ridge Test')\n", + "plt.plot(np.log10(lambdas), MSERidgePredict, 'g--', label = 'MSE SL Ridge Test')\n", + "plt.xlabel('log10(lambda)')\n", + "plt.ylabel('MSE')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see here, when compared to the code which includes explicitely the\n", + "intercept column, that our MSE value is actually smaller. This is\n", + "because the regularization term does not include the intercept value\n", + "$\\beta_0$ in the fitting. This applies to Lasso regularization as\n", + "well. It means that our optimization is now done only with the\n", + "centered matrix and/or vector that enter the fitting procedure. Note\n", + "also that the problem with the intercept occurs mainly in these type\n", + "of polynomial fitting problem.\n", + "\n", + "The next example is indeed an example where all these discussions about the role of intercept are not present.\n", + "\n", + "## More complicated Example: The Ising model\n", + "\n", + "The one-dimensional Ising model with nearest neighbor interaction, no\n", + "external field and a constant coupling constant $J$ is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " H = -J \\sum_{k}^L s_k s_{k + 1},\n", + "\\label{_auto1} \\tag{1}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $s_i \\in \\{-1, 1\\}$ and $s_{N + 1} = s_1$. The number of spins\n", + "in the system is determined by $L$. For the one-dimensional system\n", + "there is no phase transition.\n", + "\n", + "We will look at a system of $L = 40$ spins with a coupling constant of\n", + "$J = 1$. To get enough training data we will generate 10000 states\n", + "with their respective energies." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import make_axes_locatable\n", + "import seaborn as sns\n", + "import scipy.linalg as scl\n", + "from sklearn.model_selection import train_test_split\n", + "import tqdm\n", + "sns.set(color_codes=True)\n", + "cmap_args=dict(vmin=-1., vmax=1., cmap='seismic')\n", + "\n", + "L = 40\n", + "n = int(1e4)\n", + "\n", + "spins = np.random.choice([-1, 1], size=(n, L))\n", + "J = 1.0\n", + "\n", + "energies = np.zeros(n)\n", + "\n", + "for i in range(n):\n", + " energies[i] = - J * np.dot(spins[i], np.roll(spins[i], 1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we use ordinary least squares\n", + "regression to predict the energy for the nearest neighbor\n", + "one-dimensional Ising model on a ring, i.e., the endpoints wrap\n", + "around. We will use linear regression to fit a value for\n", + "the coupling constant to achieve this.\n", + "\n", + "A more general form for the one-dimensional Ising model is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " H = - \\sum_j^L \\sum_k^L s_j s_k J_{jk}.\n", + "\\label{_auto2} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we allow for interactions beyond the nearest neighbors and a state dependent\n", + "coupling constant. This latter expression can be formulated as\n", + "a matrix-product" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\boldsymbol{H} = \\boldsymbol{X} J,\n", + "\\label{_auto3} \\tag{3}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $X_{jk} = s_j s_k$ and $J$ is a matrix which consists of the\n", + "elements $-J_{jk}$. This form of writing the energy fits perfectly\n", + "with the form utilized in linear regression, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\boldsymbol{y} = \\boldsymbol{X}\\boldsymbol{\\beta} + \\boldsymbol{\\epsilon},\n", + "\\label{_auto4} \\tag{4}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We split the data in training and test data as discussed in the previous example" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "X = np.zeros((n, L ** 2))\n", + "for i in range(n):\n", + " X[i] = np.outer(spins[i], spins[i]).ravel()\n", + "y = energies\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the ordinary least squares method we choose the cost function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " C(\\boldsymbol{X}, \\boldsymbol{\\beta})= \\frac{1}{n}\\left\\{(\\boldsymbol{X}\\boldsymbol{\\beta} - \\boldsymbol{y})^T(\\boldsymbol{X}\\boldsymbol{\\beta} - \\boldsymbol{y})\\right\\}.\n", + "\\label{_auto5} \\tag{5}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then find the extremal point of $C$ by taking the derivative with respect to $\\boldsymbol{\\beta}$ as discussed above.\n", + "This yields the expression for $\\boldsymbol{\\beta}$ to be" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\beta} = \\frac{\\boldsymbol{X}^T \\boldsymbol{y}}{\\boldsymbol{X}^T \\boldsymbol{X}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which immediately imposes some requirements on $\\boldsymbol{X}$ as there must exist\n", + "an inverse of $\\boldsymbol{X}^T \\boldsymbol{X}$. If the expression we are modeling contains an\n", + "intercept, i.e., a constant term, we must make sure that the\n", + "first column of $\\boldsymbol{X}$ consists of $1$. We do this here" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "X_train_own = np.concatenate(\n", + " (np.ones(len(X_train))[:, np.newaxis], X_train),\n", + " axis=1\n", + ")\n", + "X_test_own = np.concatenate(\n", + " (np.ones(len(X_test))[:, np.newaxis], X_test),\n", + " axis=1\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Doing the inversion directly turns out to be a bad idea since the matrix\n", + "$\\boldsymbol{X}^T\\boldsymbol{X}$ is singular. An alternative approach is to use the **singular\n", + "value decomposition**. Using the definition of the Moore-Penrose\n", + "pseudoinverse we can write the equation for $\\boldsymbol{\\beta}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\beta} = \\boldsymbol{X}^{+}\\boldsymbol{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the pseudoinverse of $\\boldsymbol{X}$ is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^{+} = \\frac{\\boldsymbol{X}^T}{\\boldsymbol{X}^T\\boldsymbol{X}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using singular value decomposition we can decompose the matrix $\\boldsymbol{X} = \\boldsymbol{U}\\boldsymbol{\\Sigma} \\boldsymbol{V}^T$,\n", + "where $\\boldsymbol{U}$ and $\\boldsymbol{V}$ are orthogonal(unitary) matrices and $\\boldsymbol{\\Sigma}$ contains the singular values (more details below).\n", + "where $X^{+} = V\\Sigma^{+} U^T$. This reduces the equation for\n", + "$\\omega$ to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\boldsymbol{\\beta} = \\boldsymbol{V}\\boldsymbol{\\Sigma}^{+} \\boldsymbol{U}^T \\boldsymbol{y}.\n", + "\\label{_auto6} \\tag{6}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that solving this equation by actually doing the pseudoinverse\n", + "(which is what we will do) is not a good idea as this operation scales\n", + "as $\\mathcal{O}(n^3)$, where $n$ is the number of elements in a\n", + "general matrix. Instead, doing $QR$-factorization and solving the\n", + "linear system as an equation would reduce this down to\n", + "$\\mathcal{O}(n^2)$ operations." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "def ols_svd(x: np.ndarray, y: np.ndarray) -> np.ndarray:\n", + " u, s, v = scl.svd(x)\n", + " return v.T @ scl.pinv(scl.diagsvd(s, u.shape[0], v.shape[0])) @ u.T @ y" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "beta = ols_svd(X_train_own,y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When extracting the $J$-matrix we need to make sure that we remove the intercept, as is done here" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "J = beta[1:].reshape(L, L)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A way of looking at the coefficients in $J$ is to plot the matrices as images." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/4162706317.py:7: UserWarning: FixedFormatter should only be used together with FixedLocator\n", + " cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n" + ] + }, + { + "data": { + "image/png": "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xti+fXvceeedcdVVV8X7778fZ555ZrtDHBeq1WpUq0P/fcZ1MLZGyn+Ea6EVent74+tf/3pERHz5y1/W71voj3Mfoc+3wu9///v+GQhTpkyJa6+9NiZNmqTvt8BQuY/Q9xn/OqYQbDQaI7YZ6QscB27FihXRaDRi5cqV/a8tXbo0li1bFt/97nfjjDPO6J9GxNhxHbSfa2Fsvfvuu3HZZZfF+vXr4ytf+Up0dXXFr3/96xH/nX5/8PaX+wh9vhUqlUrcdNNNsWfPnrjrrrvi4osvju9///sxa9asEf+tvn9whsr96aefru8z7nXM3WPfM1127949aNu+1/7wuS+kdcEFFwy4EUZETJ48OZYvXx5vv/12/w+qGVuug/ZzLYyd7du3x6pVq+Kpp56Ks88+O6688sqI0O9bYajcR+jzrfCRj3wklixZEmeeeWZ0d3fHoYceGn/3d3+n77fAULmP0PcZ/zqmENz3w9233npr0LY333wzDjnkED/gbYN9D7PdtWtXmyMpB9dBvlwLB+d3v/tdXHjhhfHMM8/EeeedF9/5zneiUqlEhH4/1obL/XD0+bExefLkOOWUU6Knpyc+/vGPR4S+3yp/mPt33nlnyHb6PuNFxxSChxxySMybNy+ef/75QdteeOGFOPbYY9sQVTm88cYbsXTp0rjlllsGbdu0aVNERMybN6/VYZWS66C9XAtjY+fOnfGlL30p1q1bFxdddFFcd911AwoR/X7sjJR7fX7sbNy4MU499dTo7u4etK23tzcqlUpMnDhR3x8DRXL/7rvv6vuMex1TCEZELF68OJ588snYuHFj/2tPPPFEbNq0adhV/jg4s2fPjh07dsSaNWti586d/a/39PTE/fffHyeeeGKh3zGQhuugfVwLY+O6666LdevWxYUXXhjf+MY39ttGvx8bI+Venx87hx9+eOzYsSPuu+++2LNnT//rW7ZsiUcffTROOOGEmD59ur4/Borkfu7cufo+416l2Ww22x1EUe+8804sW7YsarVarFq1Knbv3h2rV6+Oww47LO67776YOHFiu0Mct372s5/F5ZdfHsccc0yce+650dvbG93d3fH+++/Hvffe62GrY+TUU0+NuXPnxl133dX/muugdfaXf9dCWhs3bowlS5bEjBkz4pvf/OZ+F15Yvny5fj8GiuZenx87Dz74YFx99dVx/PHHx+c///nYunVrf27vueeemD9/vr4/RorkXt9nvOuoQjAi4uWXX47rr78+fvWrX8XkyZPj5JNPjquvvrp/vjZj52c/+1ncdtttsX79+pg8eXJ0dXXFVVdd5UY4hvZXiES4DlplqPy7FtK5995746/+6q+GbfPiiy9GhH6f2mhyr8+PnYcffjhWr14dv/3tb2Pq1KnxqU99Kq688so48sgj+9vo+2OjSO71fcazjisEAQAAODgd9RtBAAAADp5CEAAAoGQUggAAACWjEAQAACgZhSAAAEDJKAQBAABKRiEIAABQMgpBAACAklEIAgAAlMz/H48PFhamBTDjAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_148_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(20, 14))\n", + "im = plt.imshow(J, **cmap_args)\n", + "plt.title(\"OLS\", fontsize=18)\n", + "plt.xticks(fontsize=18)\n", + "plt.yticks(fontsize=18)\n", + "cb = fig.colorbar(im)\n", + "cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is interesting to note that OLS\n", + "considers both $J_{j, j + 1} = -0.5$ and $J_{j, j - 1} = -0.5$ as\n", + "valid matrix elements for $J$.\n", + "In our discussion below on hyperparameters and Ridge and Lasso regression we will see that\n", + "this problem can be removed, partly and only with Lasso regression. \n", + "\n", + "In this case our matrix inversion was actually possible. The obvious question now is what is the mathematics behind the SVD?\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "Let us now \n", + "focus on Ridge and Lasso regression as well. We repeat some of the\n", + "basic parts of the Ising model and the setup of the training and test\n", + "data. The one-dimensional Ising model with nearest neighbor\n", + "interaction, no external field and a constant coupling constant $J$ is\n", + "given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " H = -J \\sum_{k}^L s_k s_{k + 1},\n", + "\\label{_auto7} \\tag{7}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $s_i \\in \\{-1, 1\\}$ and $s_{N + 1} = s_1$. The number of spins in the system is determined by $L$. For the one-dimensional system there is no phase transition.\n", + "\n", + "We will look at a system of $L = 40$ spins with a coupling constant of $J = 1$. To get enough training data we will generate 10000 states with their respective energies." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.axes_grid1 import make_axes_locatable\n", + "import seaborn as sns\n", + "import scipy.linalg as scl\n", + "from sklearn.model_selection import train_test_split\n", + "import sklearn.linear_model as skl\n", + "import tqdm\n", + "sns.set(color_codes=True)\n", + "cmap_args=dict(vmin=-1., vmax=1., cmap='seismic')\n", + "\n", + "L = 40\n", + "n = int(1e4)\n", + "\n", + "spins = np.random.choice([-1, 1], size=(n, L))\n", + "J = 1.0\n", + "\n", + "energies = np.zeros(n)\n", + "\n", + "for i in range(n):\n", + " energies[i] = - J * np.dot(spins[i], np.roll(spins[i], 1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A more general form for the one-dimensional Ising model is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " H = - \\sum_j^L \\sum_k^L s_j s_k J_{jk}.\n", + "\\label{_auto8} \\tag{8}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we allow for interactions beyond the nearest neighbors and a more\n", + "adaptive coupling matrix. This latter expression can be formulated as\n", + "a matrix-product on the form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " H = X J,\n", + "\\label{_auto9} \\tag{9}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $X_{jk} = s_j s_k$ and $J$ is the matrix consisting of the\n", + "elements $-J_{jk}$. This form of writing the energy fits perfectly\n", + "with the form utilized in linear regression, viz." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\boldsymbol{y} = \\boldsymbol{X}\\boldsymbol{\\beta} + \\boldsymbol{\\epsilon}.\n", + "\\label{_auto10} \\tag{10}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We organize the data as we did above" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "X = np.zeros((n, L ** 2))\n", + "for i in range(n):\n", + " X[i] = np.outer(spins[i], spins[i]).ravel()\n", + "y = energies\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.96)\n", + "\n", + "X_train_own = np.concatenate(\n", + " (np.ones(len(X_train))[:, np.newaxis], X_train),\n", + " axis=1\n", + ")\n", + "\n", + "X_test_own = np.concatenate(\n", + " (np.ones(len(X_test))[:, np.newaxis], X_test),\n", + " axis=1\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We will do all fitting with **Scikit-Learn**," + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "clf = skl.LinearRegression().fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When extracting the $J$-matrix we make sure to remove the intercept" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "J_sk = clf.coef_.reshape(L, L)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we plot the results" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/3777801602.py:7: UserWarning: FixedFormatter should only be used together with FixedLocator\n", + " cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4IAAAM2CAYAAACjUj0CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAB7UElEQVR4nO3de3xU1bn/8W+GECZhGGMaSAhpCAEjAuXiwWCpRYsRFNRgq3hBUPHSerAesR6qHo62HCtgPdoi/qwtVguiVo5U2+KvtdZa7/KzHoqIQbkECCGBGEIyhBCTmd8fkEjMZW+cJ8kO83m/Xrx8OfvJM8/s2ZdZs9asFReJRCICAAAAAMQMX1cXAAAAAADoXDQEAQAAACDG0BAEAAAAgBhDQxAAAAAAYgwNQQAAAACIMTQEAQAAACDG0BAE0GFuv/12nXzyySouLnYV51WrV6/WySef3OLf8OHD9fWvf1033HCDPvjgg64us1O8++67Ovnkk7V69epOfd5du3Zp5syZGjlypMaNG6eKiopOfX63PvjgA9188836xje+oREjRuiMM87Q3Llzv9TxUVxcrJNPPlkPPfRQ02Mnn3yybr/99nb/buLEiZo5c2azxz799FPV1NQ4PqfXz0UAgJ34ri4AAC699FJ9/etf7+oyHF166aX6l3/5l6b/r6ur06ZNm/TMM8/o//2//6cXXnhBWVlZXVhhxxs8eLDuu+8+nXrqqZ36vIsXL9Z7772nm266SX379lVKSkqnPr8br732mr73ve9pyJAhmjVrllJSUrR7924999xz+tOf/qSHHnpI+fn5rvOlpKTovvvuO+aG2Z133qnExMSm///73/+u2267Tb/73e+UlJR0TLkAAMcvGoIAutyYMWM0ZsyYri7D0ejRo1VQUNDi8VNPPVVz587Vr3/9a/3oRz/q/MI6UWpqaqv7oKNt2rRJp5xyiubMmdPpz+3WT37yEw0dOlS//e1v1bNnz6bHZ82apYKCAi1YsEBnnXWW4uPd3XqTkpK+1L7+YmNz/fr1qqqqOuY8AIDjG0NDASBK5513nhITE/XPf/6zq0s5bn322Wfq3bt3V5fRpoqKChUVFWncuHHNGoGSlJycrGnTpqm8vNxxmDQAAJ2FhiCALvfF3yXdfvvtOvfcc7V+/XpdeeWVGjVqlMaPH6977rlHtbW1zf62tLRU8+bN0+mnn66vfe1rmjZtmn7/+9+3eI63335b1113ncaNG6fhw4frm9/8pu66665mPSWNz7ty5UqddtppOu200/Taa6851h8XF6devXopEok0e3zz5s2aM2eOxo4dq1GjRumyyy7T66+/3uLv//nPf2rWrFkaM2aMvvnNb+qhhx7S0qVLW90nrdXmZh9EIhEtXbpUkydP1te+9jWNHz9e//7v/67du3c3i3v66ad1wQUXaNSoURo3bpzmzJmjTz75pGl7a78RbGho0LJlyzR58uSm38XdfffdzX7H1/h3b775pn784x/r61//ukaNGqWrrrpKhYWFbe7bxr/btWuX1q5d2/SbucbHf/e73+mCCy7Q1772Nd1xxx3HXM9bb72l//iP/9Bpp52mf/mXf9Edd9yhmpoa/f3vf1dBQYFGjRqlgoICvf32223WKEmJiYnq0aOH/vrXv2rv3r0ttn//+9/Xhx9+qOzs7GbvyfLly3X++edr5MiRmjhxou6//34dPHhQUuu/EfyiLVu2aNy4cZo8ebLKy8slNf+N4O23366lS5dKks4+++wWvx10ozPOsWM55wEANhgaCsCTKioqdO211+q8887ThRdeqNdee00rVqxQQkKC5s2bJ0kqKyvTJZdcokgkopkzZ+qEE07QX//6V/37v/+79uzZo+uuu06S9MYbb+j666/XqaeeqptvvllxcXF688039dvf/lafffaZFi5c2PS8u3fv1sMPP6ybbrpJe/bs0ahRo/TXv/613Vo/+OADVVZWauLEiU2Pbdq0SVdccYVSU1P13e9+Vz179tQf//hH3XDDDfrv//5vTZkyRZK0YcMGzZo1S6mpqZozZ44OHjyo5cuXy+dr+T1da7W53Qe/+MUv9PDDD2vGjBlNE/gsX75cGzZs0B//+Ef16NFDv//97/WjH/1I06ZN08yZM1VRUaHf/OY3mjlzpv7yl7+oT58+rb7+uXPn6s9//rMmTZqkWbNmadu2bXr66af1zjvvaNWqVQoGg02x8+fPV79+/fSv//qv2r9/v5YtW6brr79ef/vb31odMtn4m8SFCxfqxBNP1Pe+9z2dfPLJ2r9/vyRpwYIFKigo0CWXXKKMjIxjruf222/XkCFD9IMf/EBr167V6tWrVVpaqo0bN2rmzJnq06ePfvnLX+rf/u3f9PLLLzf726MlJiZqypQp+sMf/qD8/HxNnDhRZ5xxhk4//XQNGDCg1df24x//WE8//bS+9a1v6fLLL9e2bdv061//WkVFRU2Nt/aUlJRo9uzZCgQC+s1vfqPU1NQWMZdeeqlCoZD+8pe/6I477tBJJ53kmPdonXWOvfjii67OeQCAoQgAdJAf/vCHkdzc3MjOnTtdxX3x/5cvX94s7rzzzoucccYZzeLy8vIiZWVlzeJuvfXWyIgRIyLl5eWRSCQSufbaayPf+ta3IocOHWoWN3369MiYMWNaPO9zzz3XLO65556L5ObmRlasWBH59NNPm/6VlJRE/vKXv0Ty8/MjI0eOjGzdurXpb6688spIfn5+5MCBA02PffbZZ5ErrrgiMn78+KZaZs2aFRk7dmzk008/bYr78MMPI0OHDm11n3yxNrf74LzzzovccMMNzWKefvrpyIUXXhjZvn17JBKJRK677rrI1KlTm8W8+uqrkSlTpkTee++9SCQSibzzzjvN6vj73/8eyc3Njdxzzz3N/u7FF1+M5ObmRu67775mf/ed73wnUl9f3xT36KOPRnJzcyNvvPFGpD3f+ta3IldeeWXT/zfmO/qxL1tPQ0NDJBKJRBoaGiLf+MY3Irm5uZG///3vTX/77LPPuqoxFApFbrnllkhubm6zf1OnTo08+eSTTc8TiUQin3zySeTkk0+OzJ8/v1mOBx54IJKbmxv55JNPIjt37ozk5uZGlixZ0rQ9Nzc38sMf/jDy6aefRiZNmhSZMGFCi/Pri/tqyZIlrs7DSKT1c7EzzjG35zwAwA5DQwF41nnnndfs/4cOHapPP/1UkhQOh/Xyyy9r7Nixio+PV0VFRdO/SZMmqa6uTm+++aYk6dFHH9Vzzz2nhISEplz79u1TIBBodUr9M844o9V6/uu//ktf//rXm/6dddZZ+v73v69+/frpmWee0aBBg5pyr127VmeeeaZqa2ub6qqqqtI555yj8vJyffDBB9q/f7/Wrl2rgoKCZrNgDhs2TN/4xjdareHo2o5lH6Snp+vdd9/Vb37zm6YhhJdddlmzmU7T09O1detWLV26tOm3bGeeeabWrFnTbLbUo73yyiuSpO9+97vNHj/vvPM0aNAgvfzyy80enzRpknr06NH0/6eccooktTqc0o0vvlfHWs/ZZ5/d1Pvq8/n01a9+VX6/XxMmTGiKyczMdFVj79699eCDD+rFF1/U97//fY0ZM0bx8fH65JNPtGDBAv3rv/6rGhoaJEmvvvpqUy/b0a699lr9/ve/b3f22QMHDui6667Trl279MQTTzTVZ60rzrH2znkAgC2GhgLwrC8uEZCQkND0QXrfvn2qrq7Wyy+/3OLDfaPG37/16NFDO3fu1M9//nNt3rxZO3bsUFlZWZvP+5WvfKXVx6+99lqdccYZCofDKiws1C9/+UsNHDhQP/3pT5uGJUrSzp07JUkrVqzQihUr2qytV69eCofDGjhwYIvtOTk5rf6e8OjajmUfzJs3TzfeeKPuvfdeLVy4UMOHD9fEiRM1ffp09e3bV5I0Z84crVu3Tg899JAeeughDRkyRBMnTtQll1zSZsOkuLhYwWCw1WGJgwcPbvEby9beU+lwo+PL+GK+Y63ni3Hx8fEtcjY2FN3WOHjwYN1000266aabVF1drT/96U/6+c9/rr/97W/685//rClTpmjXrl2S1Ow3g5IUDAbbHH7a6KWXXpLP51M4HNaGDRuavoBwq66urmlobSO/399i6G9XnGPtnfMAAFs0BAF4Vmu/k2vU+OFw8uTJuuyyy1qN+epXvypJeuaZZ3T33Xdr0KBBGjt2rCZNmqRRo0ZpxYoV+sMf/tDi747usTrakCFDNH78eEmHezTGjRunK664QjNnztSqVauaPsQ21jZjxow2140bMmSISkpKJKlZL0qjXr16tfp3R9d2LPtg6NCh+vOf/6zXX39df/vb3/T6669ryZIleuKJJ/TMM89o8ODBSk9P1wsvvKB3331Xf/3rX/X666/rl7/8pR5//HH9+te/Vl5eXov8kS9MkHO0cDjcYgbN9t7TL+OL79Wx1tPaex0XF3fMdbz66qt688039e///u/N3s8+ffrokksuUW5urqZPn65//OMfmjJlSlSNmz59+ugXv/iF7rzzTi1atEgTJkzQCSec4Prv//d//1ezZs1q9thFF12kRYsWNXusK84x6+MDANA2GoIAuqWUlBQlJiaqvr6+qXHWqKSkRBs3blRiYqIOHTqkRYsWady4cfr1r3/dbNKOn//851HV8LWvfU0/+MEPtHDhQs2fP1//5//8H0nSgAEDJB3+sPvF2jZv3qzi4mIlJiY2fYguKipqkXv79u2Oz+92HzQ0NKiwsFCBQEBnn322zj77bEnSiy++qLlz52rVqlW6/fbb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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_166_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(20, 14))\n", + "im = plt.imshow(J_sk, **cmap_args)\n", + "plt.title(\"LinearRegression from Scikit-learn\", fontsize=18)\n", + "plt.xticks(fontsize=18)\n", + "plt.yticks(fontsize=18)\n", + "cb = fig.colorbar(im)\n", + "cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The results agree perfectly with our previous discussion where we used our own code.\n", + "\n", + "\n", + "Having explored the ordinary least squares we move on to ridge\n", + "regression. In ridge regression we include a **regularizer**. This\n", + "involves a new cost function which leads to a new estimate for the\n", + "weights $\\boldsymbol{\\beta}$. This results in a penalized regression problem. The\n", + "cost function is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6\n", + "0\n", + " \n", + "<\n", + "<\n", + "<\n", + "!\n", + "!\n", + "M\n", + "A\n", + "T\n", + "H\n", + "_\n", + "B\n", + "L\n", + "O\n", + "C\n", + "K" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/438060758.py:10: UserWarning: FixedFormatter should only be used together with FixedLocator\n", + " cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4IAAAM2CAYAAACjUj0CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAB4rUlEQVR4nO3de3yU5Zn/8W8mYRiGIcZsIBDSGIFGBBrB1Yisi4oRXVCDrSCKWkVd64/uVlzraT2t61mrLerPusVDkeABl1Urbdd1u1ZbD/xcSylyEhBCgARiCCGEEJKZ3x+QQMzhuXGuJE+Yz/v14uXLea5cc+WZ+3lm7rnv3HdSLBaLCQAAAACQMALdXQAAAAAAoGvREQQAAACABENHEAAAAAASDB1BAAAAAEgwdAQBAAAAIMHQEQQAAACABENHEADacOutt+q4445r9S8/P19nnnmmbr/9dlVUVLT4mQkTJujyyy/3zO0aZ+3FF1/Uaaedpvz8fD322GNd/vwu6uvr9W//9m+64IILNHr0aJ144on67ne/q3/7t3/T3r17Dztf0+vY5Mknn9Rxxx2n0tLSdn9m0aJFOu644/TJJ5+0eHzTpk2ez1daWqrjjjtOTz755GHXCgBAV0rp7gIAwM9uu+02HX300c3/X1NTo48++kj//u//ruXLl+v1119XMBiUJN1+++3q06dPd5XaodWrV+vBBx/U6NGj9aMf/UjDhw/v7pJaaWho0NVXX62lS5dqypQpuvjii9XY2KhPP/1Ujz/+uH73u99p3rx5zefbxcUXX6xTTz31sOo4+eST9cgjj2jo0KHNj1199dXq37+/HnroocPKBQCAX9ERBIAOFBYWKjs7u8VjM2bM0D333KOXX35Z7777riZNmtQc61dr1qyRJF133XWaMGFCN1fTtt/85jdasmSJnnzySU2cOLH58SuuuEJz587Vo48+qtdff12XXnqpc84xY8ZozJgxh1XHt771LX3rW99q8dgf/vAHXXjhhYeVBwAAP2NqKAB8A02dgj//+c/dXImbffv2SZL69u3bzZW0709/+pMk6W/+5m9aHZsxY4Z69eqlpUuXdnFVAAAcmegIAsA30DQFNBaLNT/W1t/+/frXv1ZRUZHy8/N13nnn6eOPP24z3+9//3tNnTpVo0eP1llnnaX58+frn//5n1uN3q1du1azZs3SSSedpBNOOEHTp0/XBx980GGtl19+uW677TZJ+0fXmv5m7vLLL9fVV1+tJ554QmPGjNGpp56q1atXS9o/lfT//J//o5NOOkn5+fmaNm2a3n333VZ5r7vuOr377ru64IIL9J3vfEeTJ0/W73//e9XU1Oiuu+5SQUGBTj31VN11112qq6vrsM6mTuqrr77a6lifPn302Wef6ZFHHmnx+Lp16/SjH/1Ip5xyiv76r/9al19+uT799NPm41//G8G23HPPPTruuOP04osvSmr5N4JNf/MnSf/xH//R5t8Ouli0aJGmTJmi73znOxo7dqxuvfVWbdu2rUVMTU2NfvKTn+jcc8/Vd77zHY0ZM0bTpk3Tf//3fzfHNNXz4osv6pJLLtGoUaN05ZVXNj/+xhtv6IknntD48eP1ne98R1OnTm23zQEAEhtTQwHgG2jqfI0YMaLdmEWLFum2227TmDFj9OMf/1gbN27UD37wA0WjUQ0ePLg57n/+5380a9Ys5eXlafbs2SovL9fDDz+scDjcYgRv9erVuvTSS5WRkaHrrrtOvXr10ttvv62///u/109+8pPmKapf94Mf/EDHHnusXn31Vf3gBz/QkCFDmo999tln2rhxo3784x+rtLRUw4YN07Jly3TFFVcoEonoqquuUt++ffXmm29q1qxZuuuuuzRjxozmn//888/1pz/9SVdccYX69eunZ599VjfccIOOP/549enTR7Nnz9ann36qV199VQMGDNAPf/jDds/XBRdcoBdeeEEPP/ywFi1apMLCQp166qkaM2aMgsFgq78N3LBhg6ZNm6aUlBRddtllSk9P1yuvvKKrrrpKxcXFys/Pb/e5mvz0pz/Vyy+/rNmzZ+vKK69sdTw9PV2PPPKIbr75Zp100kmaNm1ai78ddPHUU0/pySef1DnnnKNp06apvLxc8+fP15IlS/T6668rPT1dsVhM1113nVasWKHLLrtMOTk5Kisr0yuvvKJ/+Id/0H/+53+2mK76s5/9TKeffrrOP/989e7du8Xjffr00cyZM7Vv3z49//zzuu666/Tee++1+FtXAAAUAwC0csstt8Ty8vJin3/+eeyrr75q/rdx48bY/PnzY6NHj4793d/9Xay+vr75Z84888zYZZddFovFYrGGhobYqaeeGvve977XIubf//3fY3l5ec1xsVgsVlhYGJs4cWJsz549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cIOmT5+uoqIiVVZWat68ea2mi95xxx36/ve/r+9973u65JJLlJaWpsWLF+vPf/6z/umf/slse4Cm57nooot0ySWXqG/fvnrrrbf0+eef64477lBqaqrJ83zdrbfeqmXLlunmm2/WW2+9pb/9279VJBJRSUmJFi1apH379umuu+5qjv+nf/onTZ06VVOnTtWMGTMUiUT02muvqba2VjfccIPTc44YMULTp09XcXGxFi9erMmTJ7cZl56eriVLlui1117TaaedpqysLKf8eXl5uvzyy/XSSy+pqqpKhYWFqqqq0vz589W3b1/96Ec/kiSNHz9eL730kq677jpddNFF2rdvn37zm99o+fLlCgQCrRaLAQAgXowIAsA3MHXqVP31X/+1/vjHP+qNN95oM+bMM8/Us88+q1AopMcff1zvvvuu7r///hb7+EnSueeeqyeeeEINDQ169NFH9fbbb+u2227TqFGjWnQGx4wZo5dfflmjRo3SCy+8oEcffVR79uzRQw89pL//+783+92anmfkyJF6/vnn9bOf/Uy9e/fW008/rcsvv9zseb4uPT1dixYt0o9+9CNVVVXp6aef1j333KO3335bEydO1K9+9Svl5uY2xw8dOlSvvvqqvvOd72ju3LmaM2eOBgwYoAULFjRPvXVxww036K/+6q/04IMPtpru2eSmm25SQ0OD/vVf/7XV3wZ6+ed//mfdfffdqqys1MMPP6wFCxbopJNO0oIFC5oX4Bk/frzuu+++5tdz7ty5SktL06uvvqrjjz/+G21iDwBAR5Jirsu4AQDMNTY2aufOnW2uAnn++ecrNTVVxcXF3VAZAAA4kjEiCADdqLGxUePHj28x5VGS1qxZoy+++EL5+fndVBkAADiS8TeCANCNgsGgzj33XL3++utKSkrSqFGjtG3bNr388ss6+uijddVVV3V3iQAA4AjE1FAA6GZ1dXV67rnn9NZbb2nr1q3q16+fTj31VN1www3NexgCAABYoiMIAAAAAEeo6urqNhdDoyMIAAAAAHHaU1mpPm0s/tbd6urqNH78eO3cubPF4/7tCB6ycW+bAgHvGEn/er/dejh33lLvHeRoT2PQO8hRZaVZKrWzcnoLxx8vrVzpEDfU7nxZKt9hd+4zGzab5VJjo3dMTo7ksFH2+oYcg4IOGtK33DvIUVXvTLNcaWG7Nvb+x97t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iCAAAAAAJJJBgwa1esx5UvlHH32kSy65RGPGjNHf/u3f6v7779fu3btbxGzatEk//OEPVVBQoIKCAt18882qrKyMv3IAAAAA8L1GH/5rm9OI4Mcff6yZM2dq5MiRuummm7R161bNmzdPy5cvV3FxsQKBgHbs2KHvf//7qq+v1zXXXKPGxkY999xzWr16tRYuXKhg0O6PtQEAAAAA35xTR/CRRx7RoEGDNH/+fIUOLLM0aNAg3Xvvvfrggw90+umn68UXX1RZWZl+9atfaejQoZKkE044QVdddZXeeOMNTZs2rfN+CwAAAACAM8+poXv37tXRRx+tadOmNXcCJamgYP8S3atXr5YkLV68WAUFBc2dQEkaN26cjj32WC1evNi6bgAAAADwmai6fyroof/a34LGc0Swd+/eeu6551o9vnLlSklSVlaWdu7cqU2bNumcc85pFTdy5Ei99957Xk8DAAAAAOgih71q6ObNm/XJJ5/o4YcfVl5ens4++2xtPLBrYmZmZqv4/v37q6amRrt27VK/fv3irxgAAAAAEJfD6ghWVVVpwoQJkqQ+ffrojjvuUO/evZtXD+3Tp0+rn+ndu7ckqba2lo4gAAAAgCNYoyQf7SivpHaPHFZHMCkpSU888YTq6+v10ksv6aqrrtLjjz+u/v37e/5sIOC8U4UkyWWRUbeFSA/veTsUDtvlMpSV1fXP2cbgbw96PrsTZnvqUx3DvOP82VL3s1xAePx4u1yW598pxpHlazlihGEyy9bvehM78LfpHbE785Jk11i74z7txrGFubz/+fQ90vBTgJ55xjCZa2UOn58WLIizlE41wCxTulkmN65NOienc+v4xoYMMUvVxR/70EUOqyN41FFHadKkSZKkc889V+edd54eeugh/fznP5e0f2GZr2t6rG/fvodVWH19x8eDQe8YSQqmtP8Hkoetrs4uV8phz8pt15YKuw8rycneMZmZUnm5d5zD9wPOtm+3y5XZuMUs1xbLTmWk2jsoNVWq9o6rTbH9OGzYXNXQYJfr00/tco0fbXf+Le8VtRG7D1EbNpil0og0u+tIpaXeMQUF0pIlnmHVw707i65SQw5vMo4s79OHrNsWt/RQrXdQOCzVOsRVVcVdT7OMDLNU0RS7cz9rllkqPfO0w+eTQECKesddeplld1d66im7XOkN28xyVabY3Q+9riPX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s1Q4DNnZf9XdJbTQVM/WrVvV2NhyEZukWCwW646iAAAAAACdq66uTuPHj9fOnTtbPE5HEAAAAACOUNXV1aqurm71OB1BAAAAAEgwCTALHwAAAABwKDqCAAAAAJBg6AgCAAAAQIKhIwgAAAAACYaOIAAAAAAkGDqCAAAAAJBg6AgCAAAAQIKhIwgAAAAACSaluws4XJs2bdLDDz+sJUuWSJLOOOMM3XrrrUpPT+/myo58F110kf7yl7+0evycc87RnDlzuqGiI98dd9yhjRs36qWXXmrxONdB12jv/HMt2Pvggw/0zDPP6PPPP1cgENAJJ5ygG264QaNHj26Ood13DpdzT5vvPB999JHmzJmjVatWKRKJ6Nxzz9UNN9ygvn37NsfQ9juHy7mn7eNI1qM6gjt27ND3v/991dfX65prrlFjY6Oee+45rV69WgsXLlQwGOzuEo9YsVhM69atU2FhoSZOnNji2ODBg7upqiPbwoULtXDhQhUUFLR4nOuga7R3/rkW7C1ZskTXXnutvv3tb2v27NlqaGjQggULdNlll2nBggXKz8+n3XcSl3NPm+88H3/8sWbOnKmRI0fqpptu0tatWzVv3jwtX75cxcXFCgQCtP1O4nLuafs44sV6kMcffzx2/PHHx9auXdv82B//+MdYXl5e7NVXX+3Gyo58JSUlsby8vNi///u/d3cpR7yGhobYk08+GTvuuONieXl5scsuu6zFca6DzuV1/rkW7BUVFcXOOOOMWG1tbfNj27dvj5188smxK6+8MhaL0e47i8u5p813ngsvvDB25plnxvbs2dP82Pz582N5eXmx9957LxaL0fY7i8u5p+3jSNej/kZw8eLFKigo0NChQ5sfGzdunI499lgtXry4Gys78q1du1aSWpx72Nu7d68uvPBCPfnkkyoqKlJmZmarGK6DzuNy/rkWbO3cuVOrVq3Sueeeqz59+jQ/npGRoZNPPll/+tOfJNHuO4PruafNd469e/fq6KOP1rRp0xQKhZofb5qFsHr1akm0/c7geu5p+zjS9ZipoTt37tSmTZt0zjnntDo2cuRIvffee11fVAL54osvJB28GdbW1iocDndnSUekvXv3qqamRk888YQmTZqkCRMmtDjOddC5vM6/xLVgLRKJ6Le//W2LjkiTHTt2KDk5mXbfSVzOvUSb7yy9e/fWc8891+rxlStXSpKysrJo+53E5dxLtH0c+XrMiGB5ebkktfkNff/+/VVTU6Ndu3Z1dVkJ44svvlDfvn314IMPasyYMRozZowKCwv5NtJYJBLRO++8o0mTJrV5nOugc3mdf4lrwVpycrJyc3NbtelVq1bps88+05gxY2j3ncTl3Eu0+a6yefNmLVq0SPfff7/y8vJ09tln0/a7SFvnXqLt48jXY0YEd+/eLUltfnPZu3dvSfu/qenXr1+X1pUo1q5dq927d2vXrl165JFHVF1drXnz5unGG2/Uvn37NGXKlO4u8YgQCAQUCLT//QzXQefyOv8S10JX2L17t2655RZJ0t///d/T7rvQ18+9RJvvClVVVc0zEPr06aM77rhDvXv3pu13gfbOvUTbx5Gvx3QEo9GoZ4zXBzh8c9OmTVM0GtWMGTOaH5s8ebLOO+88Pfroozr//PObpxGh83AddD+uhc61Z88eXX/99Vq1apWuu+46FRQU6H//9389f452H7+2zr1Em+8KSUlJeuKJJ1RfX6+XXnpJV111lR5//HH179/f82dp+/Fp79yfe+65tH0c8XrM3aNpT5e9e/e2Otb02KH7vsDWJZdc0uJGKEmhUEhFRUWqqKho/oNqdC6ug+7HtdB5qqurNXPmTH3yySf63ve+p9mzZ0ui3XeF9s69RJvvCkcddZQmTZqkKVOmqLi4WFlZWXrooYdo+12gvXMv0fZx5OsxHcGmP9zdvn17q2Pbtm1Tamoqf8DbDZo2s62tre3mShID14F/cS3E56uvvtIVV1yhzz77TBdffLHuv/9+JSUlSaLdd7aOzn1HaPOdIxQK6YwzztDWrVs1YMAASbT9rnLoua+srGw3jraPI0WP6QimpqYqOztbn3/+eatjK1as0KhRo7qhqsRQXl6uyZMn66mnnmp17Msvv5QkZWdnd3VZCYnroHtxLXSOmpoaXX311Vq5cqWuvPJK3XvvvS06IrT7zuN17mnznWfdunWaMGGCiouLWx3bvXu3kpKSFAwGafudwOXc79mzh7aPI16P6QhK0sSJE/XRRx9p3bp1zY99+OGH+vLLLztc5Q/xyczM1K5du7Rw4ULV1NQ0P75161YtWrRIp5xyitPfMcAG10H34VroHPfee69WrlypK664QrfddlubMbT7zuF17mnzneeYY47Rrl279Morr6i+vr758c2bN+udd97RySefrEgkQtvvBC7nfvDgwbR9HPGSYrFYrLuLcFVZWanzzjtPycnJmjlzpvbu3au5c+cqJydHr7zyioLBYHeXeMR69913NWvWLH3729/W1KlTtXv3bhUXF2vfvn16+eWX2Wy1k0yYMEGDBw/WSy+91PwY10HXaev8cy3YWrdunSZNmqR+/frp9ttvb3PhhaKiItp9J3A997T5zvPmm2/q5ptv1ujRo3XBBRdox44dzed2wYIFysvLo+13EpdzT9vHka5HdQQlaf369XrwwQf16aefKhQK6fTTT9fNN9/cPF8bnefdd9/Vs88+q1WrVikUCqmgoEA33ngjN8JO1FZHROI66CrtnX+uBTsvv/yy7rnnng5jVq9eLYl2b+1wzj1tvvP8+te/1ty5c7VmzRqFw2GNHTtWs2fP1rHHHtscQ9vvHC7nnraPI1mP6wgCAAAAAOLTo/5GEAAAAAAQPzqCAAAAAJBg6AgCAAAAQIKhIwgAAAAACYaOIAAAAAAkGDqCAAAAAJBg6AgCAAAAQIKhIwgAAAAACYaOIAAAAAAkmP8PGZYR3soopNMAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_169_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "_lambda = 0.1\n", + "clf_ridge = skl.Ridge(alpha=_lambda).fit(X_train, y_train)\n", + "J_ridge_sk = clf_ridge.coef_.reshape(L, L)\n", + "fig = plt.figure(figsize=(20, 14))\n", + "im = plt.imshow(J_ridge_sk, **cmap_args)\n", + "plt.title(\"Ridge from Scikit-learn\", fontsize=18)\n", + "plt.xticks(fontsize=18)\n", + "plt.yticks(fontsize=18)\n", + "cb = fig.colorbar(im)\n", + "cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the **Least Absolute Shrinkage and Selection Operator** (LASSO)-method we get a third cost function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " C(\\boldsymbol{X}, \\boldsymbol{\\beta}; \\lambda) = (\\boldsymbol{X}\\boldsymbol{\\beta} - \\boldsymbol{y})^T(\\boldsymbol{X}\\boldsymbol{\\beta} - \\boldsymbol{y}) + \\lambda \\sqrt{\\boldsymbol{\\beta}^T\\boldsymbol{\\beta}}.\n", + "\\label{_auto12} \\tag{12}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finding the extremal point of this cost function is not so straight-forward as in least squares and ridge. We will therefore rely solely on the function ``Lasso`` from **Scikit-Learn**." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/3544313922.py:9: UserWarning: FixedFormatter should only be used together with FixedLocator\n", + " cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4IAAAM2CAYAAACjUj0CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABNwklEQVR4nO3de5xWdbko8GdmiDtUHAkRvBAnsANeyA2W7bwgAgEGpqKGV7TcZafEirJDlu6SJBU3appJGjhe4khZwmlbu03b43V32adUIEQlpMkbCMOAIO+s84fy6jjMzAusmXfNrO/385lPtdbv/a3fPKyXeN7f8z6rIkmSJAAAAMiNynIvAAAAgLYlEQQAAMgZiSAAAEDOSAQBAAByRiIIAACQMxJBAACAnJEIArzD1772tRg6dGg8//zz5V5Kqh5++OH4+Mc/HsOHD49PfepT5V5Ok5YuXRpnnXVWjBw5Mg499NAYO3ZsfPvb344XX3xxt+davHhxDB06NB577LGIiHjsscdi6NChsXjx4iZf8/zzz8fQoUPj+uuvb3B87dq1JV1z9OjRcdZZZ+32WgGgLXUq9wIAaH319fXxpS99KaqqquLSSy+Nfffdt9xL2qW5c+fGzTffHMcee2xcdNFF0bVr11i1alX87//9v2PJkiVxzz33xAEHHFDyfCNHjow5c+bE4MGDS35Nnz59Ys6cOTF06NDise9///vx05/+NH71q1/t1u8DAFklEQTIgZdeeinWr18f5513XkybNq3cy9mlmpqa+OEPfxhnnXVWzJo1q8G5SZMmxbRp0+Laa6+N6667ruQ5999//9h///13ax3du3ePyZMnNzj2yCOPRKFQ2K15ACDLlIYC5MDrr78eERE9evQo80qa9v/+3/+LQqEQH/3oRxudGzFiRBx66KHxX//1X22/MADogCSCAHvhl7/8ZZx55plxxBFHxPDhw2P06NExZ86c2L59e3HM9u3b4zvf+U4cf/zxMXz48DjmmGPi8ssvj40bNxbHJEkSN9xwQ4wbNy4OOeSQOOqoo+IrX/lK1NTUNLjehg0b4lvf+lZ87GMfi+HDh8e4cePilltuaXa36vrrr4/jjz8+IiJuuOGG4nfmrr/++jjkkEPiV7/6VXz0ox+NESNGxKJFi0q+zvXXXx8jRoyIp59+Os4777w4/PDD42Mf+1j88Ic/jCRJYv78+XHcccfFhz70oTj//PNb/M7lziT1pz/9aYP47bRgwYJYtmxZg2ObN2+OK6+8Mo499tg47LDD4sQTTyz+DhGNvyO4K0uWLIkPfvCD8YUvfCEKhUKj7wiOHj06Hn/88Vi3bt0uvztYij/+8Y9x3nnnxYgRI2LEiBExffr0+NOf/tRgTJIkcdddd8Upp5wSI0aMiEMOOSTGjx8ft9xySyRJUhw3evTomDVrVnz961+PQw45JI4++uhYv359jB49Oi677LK47777YuLEiXHIIYfE2LFjo7q6erfXC0DHpzQUYA8tWrQoZs2aFaNHj44vf/nL8frrr8evfvWrmD9/fnTv3j0+//nPR0TEFVdcEffff3+cffbZsf/++8eqVauiuro61qxZEz/60Y8iIuLmm2+OG2+8MaZNm1ZsVLNgwYJ44okn4v7774+qqqrYuHFjnH766bFu3bo4/fTTY9CgQfHQQw/FNddcE0899VSTJZMnnHBC9OrVK2bPnh0nnHBCnHDCCTF48OB4/PHHY8eOHTFr1qw4//zzY/v27XHEEUfs1nVef/31OOecc2LMmDExduzYuPfee+Pqq6+ORx99NNatWxfnnHNObNiwIW699da49NJLY+HChU3G88gjj4yBAwfGv/7rv8bvf//7GDt2bHz0ox+NkSNHxrvf/e7o3Llzg/Hbt2+PadOmxapVq2Lq1Klx8MEHx29/+9uYNWtWbN26Nc4+++wW/wwffPDB+OpXvxpHH310XHPNNVFVVdVozNe//vW45pprYsOGDXHppZc2+O5gKR566KG48MIL4+CDD44vfvGLsX379li8eHFMmzYtbrvttviHf/iHiIi47rrr4uabb46TTjoppk6dGnV1dfGzn/0srrnmmujbt2+cdNJJxTmXLFkSgwYNiv/1v/5XvPzyy9GnT5/i77Pzw4l99tkn7rnnnrjiiiti4MCBccwxx+zWugHo4BIAGvjqV7+aDBkyJFm7dm2z48aPH5+cdtppSX19ffHY66+/nhx99NHJpEmTiscOPfTQ5PLLL2/w2rlz5yaf/OQnk82bNydJkiQf//jHk8985jMNxtx1113JJz7xiWTNmjVJkiTJ9773vWTIkCHJr371qwbjvvWtbyVDhgxJli1b1uRa165dmwwZMiSZN29e8di8efMaHdud6+x8/Xe/+93imFWrViVDhgxJRowYkbzyyivF41/60peSoUOHJtu2bWtyjUmSJM8880wyZcqUZMiQIcWfD37wg8lZZ52VPPjggw3GVldXJ0OGDEl+/vOfF4/V19cnn/rUp5KPfvSjyY4dO5J77703GTJkSPLoo48mSZIkjz76aDJkyJDk3nvvTf7whz8khx12WHLOOeckr732WrOxOvPMM5Pjjjuu2bXvdNxxxyVnnnlmkiRJUigUkuOPPz45/fTTkx07dhTH1NXVJSeccEIyefLkJEmSZPv27cmHPvShZMaMGQ3mqq2tTYYPH55ceOGFDeY/+OCDi/fF248PHTo0Wb58efHYiy++mAwdOjS55JJLSlo7APmhNBRgD/385z+PW265JSoqKorHXnnllejdu3ds2bKleGzfffeNpUuXxuLFi2PTpk0REXHxxRfHvffeWyyH3HfffeOxxx6LH//4x/Hyyy9HRMTpp58e9913X7FL5m9+85sYPHhwjBkzpsE6Pve5z0VExL/927/t0e/xj//4jw3+9+5e5+3jDjrooIiI+NCHPlTcpYqIGDhwYCRJUvzdmjJo0KBYvHhxLFiwIM4+++wYPHhwFAqFeOyxx+L888+PW265pTh22bJl0adPn5g0aVLxWEVFRcyZMyeqq6ujsrLp/4tbtWpVXHjhhTFgwIC46aabokuXLs2ua0899dRTsXbt2hgzZkxs3Lgx1q9fH+vXr4/XXnstjjvuuFi+fHn8/e9/j3e9613x8MMPxxVXXNHg9Rs2bIiePXs2uJ8iIg444IBddk8dNGhQHHzwwcX/3bdv39hnn31ajDsA+aM0FGAPvetd74r//M//jPvvvz+eeeaZ+Otf/xqvvPJKREQMGDCgOO5b3/pWXHzxxXHppZfGN77xjTj88MPjhBNOiJNPPjl69eoVEREzZ86Mz372s3HllVfG7NmzY9iwYTF69OiYOnVq9O3bNyLeeL7dxz72sUbr6Nu3b/Tu3TvWrVu3R7/Hf/tv/63B/97d6+yzzz7F/96pU6ddzrmz5LK+vr7F9VRUVMSRRx4ZRx55ZERE/O1vf4t77703fvCDH8S//Mu/xOTJk6Nfv36xbt26OOCAAxok4hENY9+UH/3oR1FZWRmvvfZavPTSS7v1SIqIiLq6ukbJWa9evaJr164Njv31r3+NiIg5c+bEnDlzdjlXTU1N7LvvvvGud70rli1bFv/2b/8Wzz77bKxZs6b4PdLkbd8RjGgc353ennzv1Llz55LiDkC+SAQB9tA111wTt9xyS/yP//E/4vDDD4/JkyfHiBEj4p//+Z8bNHn5yEc+Ev/+7/9e/HnooYdi9uzZcfvtt8fixYujT58+cfDBB8e//uu/xoMPPhj//u//Hg8++GDMmzcvbr/99rj77rtj8ODBjZKBt6uvr493vetde/R7vHPnbHevs6vv1b0zOSvFwoULY9u2bXHBBRc0OL7ffvvF//yf/zO6dOkS11xzTfzXf/1XjBs3LgqFwh5dJyJi6NChcdlll8W5554bl19+ecyfP3+3Xv+jH/0obrjhhgbHZs+eHZ/85CcbHNuZgH3xi1+Mww8/fJdzvf/9748kSeIrX/lK3H///XHEEUfEiBEj4rTTTouRI0fGOeec0+g1u4p5ROM/SwBoikQQYA+sW7cubrnllpg8eXKjnZ63l+Ft3749li9fHvvuu29MnDgxJk6cGPX19XHbbbfFnDlzYsmSJfGpT30qVqxYET179ozjjz++2OFz6dKlMWPGjFi0aFF87WtfiwEDBsQzzzzTaC0vvfRSbN68Ofr375/K79ZW13mnX//61/GnP/0pPvWpT0X37t0bnR8yZEhERHHXbb/99ouVK1c2Gvfb3/42li5dGl/5yleavNa5554b//AP/xDnnntu/PCHP4z777+/QYlpS6ZMmRJHHHFEg2P//b//90bjdu5Odu/ePY466qgG5/70pz/Fxo0bo2vXrvG73/0u7r///vjc5z4XX/ziF4tjduzYEa+++upuPwsRAFrio0OAPbCzZO+d//j/7W9/G88991zs2LEjIiJeffXVOO200+IHP/hBcUxlZWUccsghxf9eKBTi7LPPjiuvvLLBXIcddlhxTETEcccdF88880z8+te/bjBu5/fmjj322FR+t7a6zjudeOKJsWXLlvjud7/bqJSxvr4+Fi1aFL17946RI0dGRMTRRx8dL7/8cvzqV79qMPbHP/5xLFu2LN773ve2eM3Pfe5z0b9//5g9e3bx+5u7UllZ2WBN+++/fxx11FENft73vvc1et3w4cOjb9++sXDhwqirqyse37x5c7FcuKqqKl599dWIaHw//eQnP4mtW7cW7ycASIsdQYAmzJ07d5cPYP/4xz8eRxxxROy3335x8803x7Zt22LfffeNP/3pT/HTn/40unTpUvxH//ve97448cQT484774ytW7fGiBEj4tVXX4077rgj9tlnn/j4xz8enTt3jrPOOituuummuOiii+JjH/tYvPbaa3HPPfdEt27d4uSTT46IiAsvvDAeeOCBuPjii+OMM86Igw46KB599NF44IEHYuzYsak9HqCtrvNOn/zkJ+PBBx+Me+65J/74xz/G+PHjY999941XXnkl/s//+T+xcuXKuOaaa4q7haeffnrce++9MWPGjJg2bVoMGjQoli1bFg899FBceeWVTZZPvl337t3ja1/7Wnzxi1+Mq6++ulGzlp369OkT//mf/xm33XZbfOhDHyom6S1517veFd/4xjfi4osvjk9+8pNxyimnRJcuXWLRokXxt7/9La6++uro1KlTjBgxInr27BmzZ8+Ov/3tb9G7d+947LHHYunSpQ3uJwBIi0QQoAn333//Lo+///3vj4985CNxyy23xHe/+91YsGBBJEkSBxxwQHz961+PHTt2xHe+85144oknYvjw4fHP//zPsf/++8eSJUtiyZIl0a1bt/jIRz4SM2bMKDb3+MIXvhDvec974t57742rrroqqqqq4kMf+lB873vfi8GDB0dExHve856455574rrrroulS5fGpk2bYv/994+ZM2fGueeem9rv3VbXeafKysq47rrr4r777ov77rsv7rjjjqitrY13v/vdccQRR8Tll18ehx56aHF8165dY+HChXHdddfFkiVLora2NgYPHhzXXXddfPzjHy/5uuPHj49//Md/jJ/85Cdx0kknFZvzvN0FF1xQTEQ/+clPlpwIRkSMGzcufvSjH8VNN90U3//+96OysjI+8IEPxE033RTHHXdcRLzRcOeWW26Jq6++Or7//e9H586dY9CgQXHttdfGn/70p1iwYEG8/PLLDRrzAMDeqEia6woAAABAh+M7ggAAADkjEQQAAMgZiSAAAEDOaBYDAADQQW3atGmXj0jSLAYAAGAvbV2/Prq92Q08S1577bU4+uiji89A3im7ieA7HibcSGVly2Mi4qD3/6DFMaV67pkLU5urXSsx9rQCsS8v8S8fsS8fsS8fsS8fsW/goPf/cK/nGDiwZ/zf/zsthdVk24/+8R9j0/PPl3sZRb0HDozp//f/Rk1NTRQKhQbnOnxp6Jo1G1seBAAA7NKaNY3LCtm1Tc8/HxvXrCn3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AHJGaSgAAEAKsrbLpjQUAACAIokgAABAzigNBQAASEFFZGunraKZc1laJwAAAG1AIggAAJAzSkNpF/r1rU9trvoUP/9ICjenNldF1Zdavl4yt7RxhWvSWBIAALuhMiKSci/ibZSGAgAAUCQRBAAAyBmloQAAAClQGgoAAEBmSQQBAAByRmkoAABACpSGAgAAkFkSQQAAgJxRGgoAAJCCimi+HDNL7AgCAADkjEQQAAAgZ5SGAgAApKA97bK1p7UCAACQAokgAABAzigNBQAASEF72mVrT2sFAAAgBRJBAACAnFEaCgAAkIL2tMsmESR3KqM+tbm270jv7Z4UrkltXEXVjL1dzjuuOTfV+QAAKC+JIAAAQAdWU1MThUKhwTGJIAAAQAoqKioiKirKvYy3vLmWadOmxbp16xqckggCAAB0YNXV1XYEAQAAWkWnTm/8ZMWba+nfv3+jU3vU6WLWrFlx1llnNTq+du3a+PznPx+jRo2KUaNGxcyZM2P9+vV7cgkAAABayW6nq4sWLYpFixbFqFGjGhzfsGFDnHPOObF9+/a44IILolAoxPz582PlypWxaNGi6Ny5c2qLBgAAYM+VnAgWCoW46aab4oYbbtjl+dtvvz3+/ve/xy9+8YsYPHhwREQcdthhcd5558XPfvazmDp1ajorBgAAyKKqqmyVhlZVNXmqpNLQbdu2xUknnRTXX399TJ48Ofr169dozJIlS2LUqFHFJDAi4qijjopBgwbFkiVL9mDVAAAAtIaSE8HNmzfH3Llz46qrropO78hyN27cGGvXro1hw4Y1eu2wYcPiiSeeSGe1AAAA7LWS9i179uwZDzzwQKMEcKcXXnghImKXO4V9+/aNzZs3R21tbfTq1WsvlgoAAJBhGe0austTpby+srIyKiub3jysq6uLiIhu3bo1OtelS5eIiNiyZcvuJYLNXG+3xtA6xD4iItLtgVRiTEuIfZL8y16uhSa598tH7MtH7MtH7MtH7OngUklX6+vrWxzTXCLZxKQtTdjyGFqH2Bdt35He/0l07lRCTEuMfUXVjBRW9JakMDfV+dot9375iH35iH35iH35iH3rkFxnSiqJYI8ePSLije8SvtPOYzvHAAAAdEgdrWtoS/bbb7+IiHjppZcanXvxxRejd+/e0b179zQuBQAAwF5KJRHs3bt3DBw4MJ588slG5556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Y/Lkya26aAAAAPZci4ngxo0bY8WKFXHeeecVk8CIiH322SdGjhwZDz30UEREPP300xERMXjw4FZaKgAAQHZltWvorrSYCPbs2TN++ctfNkgCd9qwYUNUVVVFRMSqVasi4q1EcMuWLdG9e/c9WS8AAACtqLKlAVVVVXHQQQdFv379GhxfsWJF/OEPf4gRI0ZExBuJYI8ePWL27NkxYsSIGDFiRIwZMyaWLFnSOisHAABgj+zR4yPq6uriq1/9akREfOYzn4mIN0pD6+rqora2NubMmRObNm2KBQsWxCWXXBKvv/56TJkyZfcuUtlijlraGFqH2JeP2JeX+JeP2JdPCbFPksvaYCE55L4vH7FnD3S4rqFvt3Xr1vjsZz8bK1asiAsvvDBGjRoVERFTp06N+vr6mDZtWnHsxIkTY9KkSfG9730vTjzxxGIZaUnq65s/X1nZ8hhah9iXj9iXl/iXj9iXT4mxr6j6dmqXTAqzUpurXXPfl4/Ytw7Jdabs1p/Gpk2bYvr06fHYY4/FySefHDNmzCieO+OMMxokgRERXbt2jcmTJ8fLL79cbCYDAABAeZW8I/jKK6/E+eefH8uXL4/TTjstLr/88qioqGjxdX369ImIN5rHAAAAdFTtqWtoSTuCmzdvLiaB5557blxxxRUNksAXXnghJk6cGDfccEOj1z777LMRETFw4MDdXDYAAACtoaRE8Iorrojly5fH2WefHZdeemmj8/369Yva2tpYtGhRbN68uXi8pqYmFi9eHEceeWT07ds3vVUDAACwx1osDV29enXcd9990atXr/jgBz8Y9913X6MxkydPjssuuywuuuiiOP300+PUU0+Nurq6qK6ujk6dOsU3v/nNVlk8AABAVnSorqGPP/54RETU1tbucjcw4o1EcMyYMXHjjTfGD37wg7j66quja9euMWrUqLjkkkuKD5kHAACg/CqSJEnKvYhd8viI7BL78hH78hL/8hH78vH4iPJx35eP2LeOHDw+YtasiPXry72Kt/TpE/HtJv563qMHygMA7d/2HS3/o6xz59LGpZm8VVR9IbW5ksK81OYCaEmH6xoKAABAxyERBAAAyBmloQAAACloT11D7QgCAADkjEQQAAAgZ5SGAgAApEDXUAAAADJLIggAAJAzSkMBAABSoGsoAAAAmSURBAAAyBmloQAAACnQNRQAAIDMkggCAADkjNJQAACAFOgaCgAAQGZJBAEAAHJGaSgAAEAK2lPXUIkgAORU5071JYyqLGlcfYpFRklhXmpzVVSdn9pcSWF+anMBlJvSUAAAgJyxIwgAAJACXUMBAADILIkgAABAzigNBQAASEF76hpqRxAAACBnJIIAAAA5ozQUAAAgBbqGAgAAkFl2BAEAAFKgWQwAAACZJREEAADIGaWhAAAAKdAsBgAAgMySCAIAAOSM0lAAAIAU6BoKAABAZkkEAQAAckZpKACw1yqjPrW56lP8nDopzE9troqqa1KbKyl8KbW5gOzQNRQAAIDMkggCAADkjNJQAACAFOgaCgAAQGZJBAEAAHJGaSgAAEAKdA0FAAAgsySCAAAAOaM0FAAAIAW6hgIAAJBZEkEAAICcURoKAACQAl1DAQAAyCyJIAAAQM4oDQUAAEiBrqEAAABklkQQAAAgZ5SGAgAApKA9dQ2VCAIAmVIZ9anNteW19IqfksKXUpurouqilq+X3FTauMKNaSwJyBmloQAAADljRxAAACAFuoYCAACQWRJBAACAnFEaCgAAkIL21DXUjiAAAEDOSAQBAAByRmkoAABACnQNBQAAILMkggAAADmjNBQAACAFuoYCAACQWRJBAACAnFEaCgAAkAJdQwEAAMgsiSAAAEDOKA0FAABIga6hAAAAZJYdQQCgw+retT61uepT/Pw8KdyY2riKqn/a2+W845o3pzofUH41NTVReEfnGIkgAABACpKkPpKk3Kt4yxtrqYxp06bFunXrGpyTCAIAAHRg1dXVdgQBAADypH///o2OlVzs/sgjj8QZZ5wRI0aMiI997GPxne98J+rq6hqMWbt2bXz+85+PUaNGxahRo2LmzJmxfv36vV85AABA5hUy+LNrJe0IPvroozF9+vQYNmxYfPnLX46amppYsGBBPPHEE1FdXR2VlZWxYcOGOOecc2L79u1xwQUXRKFQiPnz58fKlStj0aJF0blz55JCBwAAQOsqKRGcM2dO9O/fP+64447o2rVrRLyxvXjFFVfEgw8+GMccc0zcfvvt8fe//z1+8YtfxODBgyMi4rDDDovzzjsvfvazn8XUqVNb77cAAACgZC2Whm7bti3e+973xtSpU4tJYETEqFGjIiJi5cqVERGxZMmSGDVqVDEJjIg46qijYtCgQbFkyZK01w0AAJAx9VH+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4pJLLonXX389pkyZUu4ldgiVlZVRWdn05zPeB62rpfhHeC+0hbq6uvjqV78aERGf+cxn3Pdt6J2xj3DPt4VXX321WIHQrVu3mDVrVnTp0sW93waain2Ee5+Or90kgvX19S2OaekfcOy5qVOnRn19fUybNq14bOLEiTFp0qT43ve+FyeeeGKxjIjW431Qft4LrWvr1q3x2c9+NlasWBEXXnhhjBo1Kn7/+9+3+Dr3/d7bVewj3PNtoaKiIubOnRvbt2+PhQsXxnnnnRfXXntt9O3bt8XXuvf3TlOxHz9+vHufDq/d/O2x85ku27Zta3Ru57G3P/eFdJ1xxhkN/iKMiOjatWtMnjw5Xn755eIXqmld3gfl573QejZt2hTTp0+Pxx57LE4++eSYMWNGRLjv20JTsY9wz7eFd7/73TFhwoSYMmVKVFdXx3777Rff/e533fttoKnYR7j36fjaTSK484u7L730UqNzL774YvTu3dsXeMtg58Nst2zZUuaV5IP3QXZ5L+ydV155Jc4+++z4wx/+EKeddlp85zvfiYqKiohw37e25mLfHPd86+jatWsce+yxUVNTE+973/siwr3fVt4e+/Xr1zc5zr1PR9FuEsHevXvHwIED48knn2x07qmnnorhw4eXYVX58MILL8TEiRPjhhtuaHTu2WefjYiIgQMHtvWycsn7oLy8F1rH5s2b4/zzz4/ly5fHueeeG1dccUWDRMR933pair17vvWsXr06Ro8eHdXV1Y3O1dXVRUVFRXTu3Nm93wpKif3WrVvd+3R47SYRjIgYO3ZsPPLII7F69erisYcffjieffbZZrv8sXf69esXtbW1sWjRoti8eXPxeE1NTSxevDiOPPLIkr7HQDq8D8rHe6F1XHHFFbF8+fI4++yz49JLL93lGPd962gp9u751nPggQdGbW1t3H333bF9+/bi8XXr1sUDDzwQI0eOjJ49e7r3W0EpsR8wYIB7nw6vIkmSpNyLKNX69etj0qRJUVVVFdOnT49t27bFrbfeGgcccEDcfffd0blz53IvscP69a9/HRdddFF84AMfiFNPPTXq6uqiuro6Xn/99bjrrrs8bLWVjB49OgYMGBALFy4sHvM+aDu7ir/3QrpWr14dEyZMiF69esXXv/71XTZemDx5svu+FZQae/d867nvvvti5syZcfjhh8cnPvGJ2LBhQzG2d955ZwwZMsS930pKib17n46uXSWCERHPPPNMzJ49O373u99F165d45hjjomZM2cW67VpPb/+9a/jBz/4QaxYsSK6du0ao0aNiksuucRfhK1oV4lIhPdBW2kq/t4L6bnrrrviW9/6VrNjVq5cGRHu+7TtTuzd861n6dKlceutt8Zf/vKX6N69e3z4wx+OGTNmxKBBg4pj3Puto5TYu/fpyNpdIggAAMDeaVffEQQAAGDvSQQBAAByRiIIAACQMxJBAACAnJEIAgAA5IxEEAAAIGckggAAADkjEQQAAMgZiSAAAEDO/H9hfQV66bOjCgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_173_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "clf_lasso = skl.Lasso(alpha=_lambda).fit(X_train, y_train)\n", + "J_lasso_sk = clf_lasso.coef_.reshape(L, L)\n", + "fig = plt.figure(figsize=(20, 14))\n", + "im = plt.imshow(J_lasso_sk, **cmap_args)\n", + "plt.title(\"Lasso from Scikit-learn\", fontsize=18)\n", + "plt.xticks(fontsize=18)\n", + "plt.yticks(fontsize=18)\n", + "cb = fig.colorbar(im)\n", + "cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is quite striking how LASSO breaks the symmetry of the coupling\n", + "constant as opposed to ridge and OLS. We get a sparse solution with\n", + "$J_{j, j + 1} = -1$.\n", + "\n", + "\n", + "\n", + "\n", + "We see how the different models perform for a different set of values for $\\lambda$." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + " 0%| | 0/10 [00:00" + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_175_13.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "lambdas = np.logspace(-4, 5, 10)\n", + "\n", + "train_errors = {\n", + " \"ols_sk\": np.zeros(lambdas.size),\n", + " \"ridge_sk\": np.zeros(lambdas.size),\n", + " \"lasso_sk\": np.zeros(lambdas.size)\n", + "}\n", + "\n", + "test_errors = {\n", + " \"ols_sk\": np.zeros(lambdas.size),\n", + " \"ridge_sk\": np.zeros(lambdas.size),\n", + " \"lasso_sk\": np.zeros(lambdas.size)\n", + "}\n", + "\n", + "plot_counter = 1\n", + "\n", + "fig = plt.figure(figsize=(32, 54))\n", + "\n", + "for i, _lambda in enumerate(tqdm.tqdm(lambdas)):\n", + " for key, method in zip(\n", + " [\"ols_sk\", \"ridge_sk\", \"lasso_sk\"],\n", + " [skl.LinearRegression(), skl.Ridge(alpha=_lambda), skl.Lasso(alpha=_lambda)]\n", + " ):\n", + " method = method.fit(X_train, y_train)\n", + "\n", + " train_errors[key][i] = method.score(X_train, y_train)\n", + " test_errors[key][i] = method.score(X_test, y_test)\n", + "\n", + " omega = method.coef_.reshape(L, L)\n", + "\n", + " plt.subplot(10, 5, plot_counter)\n", + " plt.imshow(omega, **cmap_args)\n", + " plt.title(r\"%s, $\\lambda = %.4f$\" % (key, _lambda))\n", + " plot_counter += 1\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that LASSO reaches a good solution for low\n", + "values of $\\lambda$, but will \"wither\" when we increase $\\lambda$ too\n", + "much. Ridge is more stable over a larger range of values for\n", + "$\\lambda$, but eventually also fades away.\n", + "\n", + "\n", + "To determine which value of $\\lambda$ is best we plot the accuracy of\n", + "the models when predicting the training and the testing set. We expect\n", + "the accuracy of the training set to be quite good, but if the accuracy\n", + "of the testing set is much lower this tells us that we might be\n", + "subject to an overfit model. The ideal scenario is an accuracy on the\n", + "testing set that is close to the accuracy of the training set." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_177_0.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(figsize=(20, 14))\n", + "\n", + "colors = {\n", + " \"ols_sk\": \"r\",\n", + " \"ridge_sk\": \"y\",\n", + " \"lasso_sk\": \"c\"\n", + "}\n", + "\n", + "for key in train_errors:\n", + " plt.semilogx(\n", + " lambdas,\n", + " train_errors[key],\n", + " colors[key],\n", + " label=\"Train {0}\".format(key),\n", + " linewidth=4.0\n", + " )\n", + "\n", + "for key in test_errors:\n", + " plt.semilogx(\n", + " lambdas,\n", + " test_errors[key],\n", + " colors[key] + \"--\",\n", + " label=\"Test {0}\".format(key),\n", + " linewidth=4.0\n", + " )\n", + "plt.legend(loc=\"best\", fontsize=18)\n", + "plt.xlabel(r\"$\\lambda$\", fontsize=18)\n", + "plt.ylabel(r\"$R^2$\", fontsize=18)\n", + "plt.tick_params(labelsize=18)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From the above figure we can see that LASSO with $\\lambda = 10^{-2}$\n", + "achieves a very good accuracy on the test set. This by far surpasses the\n", + "other models for all values of $\\lambda$.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Exercises and Projects\n", + "\n", + "\n", + "\n", + "The main aim of this project is to study in more detail various\n", + "regression methods, including the Ordinary Least Squares (OLS) method,\n", + "The total score is **100** points. Each subtask has its own final score.\n", + "\n", + "\n", + "We will first study how to fit polynomials to a specific\n", + "two-dimensional function called [Franke's\n", + "function](http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf). This\n", + "is a function which has been widely used when testing various\n", + "interpolation and fitting algorithms. Furthermore, after having\n", + "established the model and the method, we will employ resamling\n", + "techniques such as cross-validation and/or bootstrap in order to perform a\n", + "proper assessment of our models. We will also study in detail the\n", + "so-called Bias-Variance trade off.\n", + "\n", + "\n", + "The Franke function, which is a weighted sum of four exponentials reads as follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "f(x,y) &= \\frac{3}{4}\\exp{\\left(-\\frac{(9x-2)^2}{4} - \\frac{(9y-2)^2}{4}\\right)}+\\frac{3}{4}\\exp{\\left(-\\frac{(9x+1)^2}{49}- \\frac{(9y+1)}{10}\\right)} \\\\\n", + "&+\\frac{1}{2}\\exp{\\left(-\\frac{(9x-7)^2}{4} - \\frac{(9y-3)^2}{4}\\right)} -\\frac{1}{5}\\exp{\\left(-(9x-4)^2 - (9y-7)^2\\right) }.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The function will be defined for $x,y\\in [0,1]$. Our first step will\n", + "be to perform an OLS regression analysis of this function, trying out\n", + "a polynomial fit with an $x$ and $y$ dependence of the form $[x, y,\n", + "x^2, y^2, xy, \\dots]$. We will also include bootstrap first as\n", + "a resampling technique. After that we will include the cross-validation technique. As in homeworks 1 and 2, we can use a uniform\n", + "distribution to set up the arrays of values for $x$ and $y$, or as in\n", + "the example below just a set of fixed \n", + "values for $x$ and $y$ with a given step\n", + "size. We will fit a\n", + "function (for example a polynomial) of $x$ and $y$. Thereafter we\n", + "will repeat much of the same procedure using the Ridge and Lasso\n", + "regression methods, introducing thus a dependence on the bias\n", + "(penalty) $\\lambda$.\n", + "\n", + "Finally we are going to use (real) digital terrain data and try to\n", + "reproduce these data using the same methods. We will also try to go\n", + "beyond the second-order polynomials metioned above and explore \n", + "which polynomial fits the data best.\n", + "\n", + "\n", + "The Python code for the Franke function is included here (it performs also a three-dimensional plot of it)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/3980313467.py:9: MatplotlibDeprecationWarning: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4. Starting two minor releases later, gca() will take no keyword arguments. The gca() function should only be used to get the current axes, or if no axes exist, create new axes with default keyword arguments. To create a new axes with non-default arguments, use plt.axes() or plt.subplot().\n", + " ax = fig.gca(projection='3d')\n" + ] + }, + { + "data": { + "image/png": "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htWLf4Rl7tfTNA2K0locJjUrGZJEirfUcqRarY2rTuTUvuKG5glJolvqbGAvrouigEQihtHRXMfH5QTzEAIa4YmiAEHgx6Va53kOmUwKw8NjHR8bteaVpObxmOtVPM9jYKAn0Lmzbt1a3H33bdB1DSeffDJOOOEEy+OPPfYYVqxYAQDYaaedcNlllyGRSODdd9/F+eefj+HhYXz0ox/FlVdeidyNl0LLjXT8vuxg031In3VZaPvrBBPQ+EssRezL/YGeqcMwnAta9wFg9EHl8+VA7R8Mw+CJrecDALgYB13RLMQEAE9MJ49TkqJEUy5XfLU97bgVKEodlUoVDMMim80bfW8TKRVobWvhG35I1hpRt1Icc0TmrFoXPVTrwfbbKbzqVW+//RYuuOACzJs3D7vt9hF89KN7IZl0dsIcHNyElStvwG233YOtturDcccdh3322cew3c3lcsbopx122AErV67Eddddh4svvhjLli3DwoUL8ZnPfAZ330363xiBBxuiMJeZAJGvH0I9AreVG9JI296UXbLCQ65MQQWS5v49mh554W877Nt8vRgJiXVFa9wnIaBatv7gn5g+H717pDH/iSeQyxXBcZznygNNR2u14K07zRVOc4rhLhXodp3IPLDTXCOKx8mCQSaTDNXcjmHg2tVvrg/ROXOUOIOkXGETuvl4JCmBQw45BH/729/wwAMPYPbsD+K225zHKz311N+w557zkU5nEI/Hceihh2Lt2rU455xzAABvvPEGtt56a4OsDjzwQJx22mn4xje+gSeffBI//vGPAQCHHXYYeW9suGkd4ycUnAB0ubeOnEztEAzQXL5XlHrgKMucMioKGbnkhdeP+XTL3ygxmcHF2BaCGn02h78f8HHs9NAj8FryNteXwmicdZIKSJKInp4kGIadEAdMM2HWagricQm1Wt0iExi/vzkDwD8qo6p1aiTnRN5my+BurQJScByHY489Dqeeeio2bsyiXHb/zQ8NDaK/f8C4P336dDz33HPG/e222w4bNmzASy+9hDlz5uDhhx/G0NAQRkdHkUwmwTdsPvr6+gAADM8BIfbWMSHuq1N0jZxoGtfunDHz8r0oCoH0EHYtEh3K6IbXj/k0Bp8JbvNBo6je3az6jlcOPwi7/O73Tk8x0r7gTgrtgxIALSSbZ6pN1BAEXUeLTGC8SvFOScRd50UK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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter3_181_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "from mpl_toolkits.mplot3d import Axes3D\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm\n", + "from matplotlib.ticker import LinearLocator, FormatStrFormatter\n", + "import numpy as np\n", + "from random import random, seed\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.gca(projection='3d')\n", + "\n", + "# Make data.\n", + "x = np.arange(0, 1, 0.05)\n", + "y = np.arange(0, 1, 0.05)\n", + "x, y = np.meshgrid(x,y)\n", + "\n", + "\n", + "def FrankeFunction(x,y):\n", + " term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))\n", + " term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))\n", + " term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))\n", + " term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)\n", + " return term1 + term2 + term3 + term4\n", + "\n", + "\n", + "z = FrankeFunction(x, y)\n", + "\n", + "# Plot the surface.\n", + "surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm,\n", + " linewidth=0, antialiased=False)\n", + "\n", + "# Customize the z axis.\n", + "ax.set_zlim(-0.10, 1.40)\n", + "ax.zaxis.set_major_locator(LinearLocator(10))\n", + "ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))\n", + "\n", + "# Add a color bar which maps values to colors.\n", + "fig.colorbar(surf, shrink=0.5, aspect=5)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise: Ordinary Least Square (OLS) on the Franke function\n", + "\n", + "We will generate our own dataset for a function\n", + "$\\mathrm{FrankeFunction}(x,y)$ with $x,y \\in [0,1]$. The function\n", + "$f(x,y)$ is the Franke function. You should explore also the addition\n", + "of an added stochastic noise to this function using the normal\n", + "distribution $N(0,1)$.\n", + "\n", + "*Write your own code* (using either a matrix inversion or a singular\n", + "value decomposition from e.g., **numpy** ) or use your code from\n", + "homeworks 1 and 2 and perform a standard least square regression\n", + "analysis using polynomials in $x$ and $y$ up to fifth order. Find the\n", + "[confidence intervals](https://en.wikipedia.org/wiki/Confidence_interval) of the parameters (estimators) $\\beta$ by computing their\n", + "variances, evaluate the Mean Squared error (MSE)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "MSE(\\hat{y},\\hat{\\tilde{y}}) = \\frac{1}{n}\n", + "\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the $R^2$ score function. If $\\tilde{\\hat{y}}_i$ is the predicted\n", + "value of the $i-th$ sample and $y_i$ is the corresponding true value,\n", + "then the score $R^2$ is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "R^2(\\hat{y}, \\tilde{\\hat{y}}) = 1 - \\frac{\\sum_{i=0}^{n - 1} (y_i - \\tilde{y}_i)^2}{\\sum_{i=0}^{n - 1} (y_i - \\bar{y})^2},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined the mean value of $\\hat{y}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\bar{y} = \\frac{1}{n} \\sum_{i=0}^{n - 1} y_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Your code has to include a scaling of the data (for example by\n", + "subtracting the mean value), and\n", + "a split of the data in training and test data. For this exercise you can\n", + "either write your own code or use for example the function for\n", + "splitting training data provided by the library **Scikit-Learn** (make\n", + "sure you have installed it). This function is called\n", + "$train\\_test\\_split$. **You should present a critical discussion of why and how you have scaled or not scaled the data**.\n", + "\n", + "It is normal in essentially all Machine Learning studies to split the\n", + "data in a training set and a test set (eventually also an additional\n", + "validation set). There\n", + "is no explicit recipe for how much data should be included as training\n", + "data and say test data. An accepted rule of thumb is to use\n", + "approximately $2/3$ to $4/5$ of the data as training data.\n", + "\n", + "\n", + "You can easily reuse the solutions to your exercises from week 35 and week 36.\n", + "\n", + "\n", + "\n", + "### Exercise: Bias-variance trade-off and resampling techniques\n", + "\n", + "Our aim here is to study the bias-variance trade-off by implementing the **bootstrap** resampling technique.\n", + "\n", + "With a code which does OLS and includes resampling techniques, \n", + "we will now discuss the bias-variance trade-off in the context of\n", + "continuous predictions such as regression. However, many of the\n", + "intuitions and ideas discussed here also carry over to classification\n", + "tasks and basically all Machine Learning algorithms. \n", + "\n", + "Before you perform an analysis of the bias-variance trade-off on your test data, make\n", + "first a figure similar to Fig. 2.11 of Hastie, Tibshirani, and\n", + "Friedman. Figure 2.11 of this reference displays only the test and training MSEs. The test MSE can be used to \n", + "indicate possible regions of low/high bias and variance. You will most likely not get an\n", + "equally smooth curve!\n", + "\n", + "With this result we move on to the bias-variance trade-off analysis.\n", + "\n", + "Consider a\n", + "dataset $\\mathcal{L}$ consisting of the data\n", + "$\\mathbf{X}_\\mathcal{L}=\\{(y_j, \\boldsymbol{x}_j), j=0\\ldots n-1\\}$.\n", + "\n", + "Let us assume that the true data is generated from a noisy model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here $\\epsilon$ is normally distributed with mean zero and standard\n", + "deviation $\\sigma^2$.\n", + "\n", + "In our derivation of the ordinary least squares method we defined then\n", + "an approximation to the function $f$ in terms of the parameters\n", + "$\\boldsymbol{\\beta}$ and the design matrix $\\boldsymbol{X}$ which embody our model,\n", + "that is $\\boldsymbol{\\tilde{y}}=\\boldsymbol{X}\\boldsymbol{\\beta}$.\n", + "\n", + "The parameters $\\boldsymbol{\\beta}$ are in turn found by optimizing the means\n", + "squared error via the so-called cost function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{X},\\boldsymbol{\\beta}) =\\frac{1}{n}\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2=\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here the expected value $\\mathbb{E}$ is the sample value. \n", + "\n", + "Show that you can rewrite this as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\frac{1}{n}\\sum_i(f_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\frac{1}{n}\\sum_i(\\tilde{y}_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\sigma^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Explain what the terms mean, which one is the bias and which one is\n", + "the variance and discuss their interpretations.\n", + "\n", + "Perform then a bias-variance analysis of the Franke function by\n", + "studying the MSE value as function of the complexity of your model.\n", + "\n", + "Discuss the bias and variance trade-off as function\n", + "of your model complexity (the degree of the polynomial) and the number\n", + "of data points, and possibly also your training and test data using the **bootstrap** resampling method.\n", + "\n", + "Note also that when you calculate the bias, in all applications you don't know the function values $f_i$. You would hence replace them with the actual data points $y_i$.\n", + "\n", + "\n", + "### Exercise: Cross-validation as resampling techniques, adding more complexity\n", + "\n", + "The aim here is to write your own code for another widely popular\n", + "resampling technique, the so-called cross-validation method. Again,\n", + "before you start with cross-validation approach, you should scale your\n", + "data.\n", + "\n", + "Implement the $k$-fold cross-validation algorithm (write your own\n", + "code) and evaluate again the MSE function resulting\n", + "from the test folds. You can compare your own code with that from\n", + "**Scikit-Learn** if needed. \n", + "\n", + "Compare the MSE you get from your cross-validation code with the one\n", + "you got from your **bootstrap** code. Comment your results. Try $5-10$\n", + "folds. You can also compare your own cross-validation code with the\n", + "one provided by **Scikit-Learn**.\n", + "\n", + "\n", + "### Exercise: Ridge Regression on the Franke function with resampling\n", + "\n", + "Write your own code for the Ridge method, either using matrix\n", + "inversion or the singular value decomposition as done in the previous\n", + "exercise. Perform the same bootstrap analysis as in the\n", + "Exercise 2 (for the same polynomials) and the cross-validation in exercise 3 but now for different values of $\\lambda$. Compare and\n", + "analyze your results with those obtained in exercises 1-3. Study the\n", + "dependence on $\\lambda$.\n", + "\n", + "Study also the bias-variance trade-off as function of various values of\n", + "the parameter $\\lambda$. For the bias-variance trade-off, use the **bootstrap** resampling method. Comment your results. \n", + "\n", + "### Exercise: Lasso Regression on the Franke function with resampling\n", + "\n", + "This exercise is essentially a repeat of the previous two ones, but now\n", + "with Lasso regression. Write either your own code (difficult and optional) or, in this case,\n", + "you can also use the functionalities of **Scikit-Learn** (recommended). \n", + "Give a\n", + "critical discussion of the three methods and a judgement of which\n", + "model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the **bootstrap** resampling technique and an analysis of the mean squared error using cross-validation. \n", + "\n", + "### Exercise: Analysis of real data\n", + "\n", + "With our codes functioning and having been tested properly on a\n", + "simpler function we are now ready to look at real data. We will\n", + "essentially repeat in this exercise what was done in exercises 1-5. However, we\n", + "need first to download the data and prepare properly the inputs to our\n", + "codes. We are going to download digital terrain data from the website\n", + ",\n", + "\n", + "Or, if you prefer, we have placed selected datafiles at \n", + "\n", + "In order to obtain data for a specific region, you need to register as\n", + "a user (free) at this website and then decide upon which area you want\n", + "to fetch the digital terrain data from. In order to be able to read\n", + "the data properly, you need to specify that the format should be **SRTM\n", + "Arc-Second Global** and download the data as a **GeoTIF** file. The\n", + "files are then stored in *tif* format which can be imported into a\n", + "Python program using" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'scipy' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41236/1950915150.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mscipy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimread\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'scipy' is not defined" + ] + } + ], + "source": [ + "scipy.misc.imread" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is a simple part of a Python code which reads and plots the data\n", + "from such files" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "\"\"\"\n", + "import numpy as np\n", + "from imageio import imread\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from matplotlib import cm\n", + "\n", + "# Load the terrain\n", + "terrain1 = imread('SRTM_data_Norway_1.tif')\n", + "# Show the terrain\n", + "plt.figure()\n", + "plt.title('Terrain over Norway 1')\n", + "plt.imshow(terrain1, cmap='gray')\n", + "plt.xlabel('X')\n", + "plt.ylabel('Y')\n", + "plt.show()\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you should have problems in downloading the digital terrain data,\n", + "we provide two examples under the data folder of project 1. One is\n", + "from a region close to Stavanger in Norway and the other Møsvatn\n", + "Austfjell, again in Norway.\n", + "Feel free to produce your own terrain data.\n", + "\n", + "\n", + "Alternatively, if you would like to use another data set, feel free to do so. This could be data close to your reseach area or simply a data set you found interesting. See for example [kaggle.com](https://www.kaggle.com/datasets) for examples.\n", + "\n", + "\n", + "Our final part deals with the parameterization of your digital terrain\n", + "data (or your own data). We will apply all three methods for linear regression, the same type (or higher order) of polynomial\n", + "approximation and cross-validation as resampling technique to evaluate which\n", + "model fits the data best.\n", + "\n", + "At the end, you should present a critical evaluation of your results\n", + "and discuss the applicability of these regression methods to the type\n", + "of data presented here (either the terrain data we propose or other data sets)." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3.py b/doc/LectureNotes/_build/jupyter_execute/chapter3.py new file mode 100644 index 000000000..032e383f8 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter3.py @@ -0,0 +1,2533 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Resampling Methods +# +# ## Introduction +# +# Resampling methods are an indispensable tool in modern +# statistics. They involve repeatedly drawing samples from a training +# set and refitting a model of interest on each sample in order to +# obtain additional information about the fitted model. For example, in +# order to estimate the variability of a linear regression fit, we can +# repeatedly draw different samples from the training data, fit a linear +# regression to each new sample, and then examine the extent to which +# the resulting fits differ. Such an approach may allow us to obtain +# information that would not be available from fitting the model only +# once using the original training sample. +# +# Two resampling methods are often used in Machine Learning analyses, +# 1. The **bootstrap method** +# +# 2. and **Cross-Validation** +# +# In addition there are several other methods such as the Jackknife and the Blocking methods. We will discuss in particular +# cross-validation and the bootstrap method. +# +# +# Resampling approaches can be computationally expensive, because they +# involve fitting the same statistical method multiple times using +# different subsets of the training data. However, due to recent +# advances in computing power, the computational requirements of +# resampling methods generally are not prohibitive. In this chapter, we +# discuss two of the most commonly used resampling methods, +# cross-validation and the bootstrap. Both methods are important tools +# in the practical application of many statistical learning +# procedures. For example, cross-validation can be used to estimate the +# test error associated with a given statistical learning method in +# order to evaluate its performance, or to select the appropriate level +# of flexibility. The process of evaluating a model’s performance is +# known as model assessment, whereas the process of selecting the proper +# level of flexibility for a model is known as model selection. The +# bootstrap is widely used. +# +# +# * Our simulations can be treated as *computer experiments*. This is particularly the case for Monte Carlo methods +# +# * The results can be analysed with the same statistical tools as we would use analysing experimental data. +# +# * As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors. +# +# ## Reminder on Statistics +# +# +# * As in other experiments, many numerical experiments have two classes of errors: +# +# * Statistical errors +# +# * Systematical errors +# +# +# * Statistical errors can be estimated using standard tools from statistics +# +# * Systematical errors are method specific and must be treated differently from case to case. +# +# The +# advantage of doing linear regression is that we actually end up with +# analytical expressions for several statistical quantities. +# Standard least squares and Ridge regression allow us to +# derive quantities like the variance and other expectation values in a +# rather straightforward way. +# +# +# It is assumed that $\varepsilon_i +# \sim \mathcal{N}(0, \sigma^2)$ and the $\varepsilon_{i}$ are +# independent, i.e.: + +# $$ +# \begin{align*} +# \mbox{Cov}(\varepsilon_{i_1}, +# \varepsilon_{i_2}) & = \left\{ \begin{array}{lcc} \sigma^2 & \mbox{if} +# & i_1 = i_2, \\ 0 & \mbox{if} & i_1 \not= i_2. \end{array} \right. +# \end{align*} +# $$ + +# The randomness of $\varepsilon_i$ implies that +# $\mathbf{y}_i$ is also a random variable. In particular, +# $\mathbf{y}_i$ is normally distributed, because $\varepsilon_i \sim +# \mathcal{N}(0, \sigma^2)$ and $\mathbf{X}_{i,\ast} \, \boldsymbol{\beta}$ is a +# non-random scalar. To specify the parameters of the distribution of +# $\mathbf{y}_i$ we need to calculate its first two moments. +# +# Recall that $\boldsymbol{X}$ is a matrix of dimensionality $n\times p$. The +# notation above $\mathbf{X}_{i,\ast}$ means that we are looking at the +# row number $i$ and perform a sum over all values $p$. +# +# +# The assumption we have made here can be summarized as (and this is going to be useful when we discuss the bias-variance trade off) +# that there exists a function $f(\boldsymbol{x})$ and a normal distributed error $\boldsymbol{\varepsilon}\sim \mathcal{N}(0, \sigma^2)$ +# which describe our data + +# $$ +# \boldsymbol{y} = f(\boldsymbol{x})+\boldsymbol{\varepsilon} +# $$ + +# We approximate this function with our model from the solution of the linear regression equations, that is our +# function $f$ is approximated by $\boldsymbol{\tilde{y}}$ where we want to minimize $(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2$, our MSE, with + +# $$ +# \boldsymbol{\tilde{y}} = \boldsymbol{X}\boldsymbol{\beta}. +# $$ + +# We can calculate the expectation value of $\boldsymbol{y}$ for a given element $i$ + +# $$ +# \begin{align*} +# \mathbb{E}(y_i) & = +# \mathbb{E}(\mathbf{X}_{i, \ast} \, \boldsymbol{\beta}) + \mathbb{E}(\varepsilon_i) +# \, \, \, = \, \, \, \mathbf{X}_{i, \ast} \, \beta, +# \end{align*} +# $$ + +# while +# its variance is + +# $$ +# \begin{align*} \mbox{Var}(y_i) & = \mathbb{E} \{ [y_i +# - \mathbb{E}(y_i)]^2 \} \, \, \, = \, \, \, \mathbb{E} ( y_i^2 ) - +# [\mathbb{E}(y_i)]^2 \\ & = \mathbb{E} [ ( \mathbf{X}_{i, \ast} \, +# \beta + \varepsilon_i )^2] - ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 \\ & +# = \mathbb{E} [ ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 + 2 \varepsilon_i +# \mathbf{X}_{i, \ast} \, \boldsymbol{\beta} + \varepsilon_i^2 ] - ( \mathbf{X}_{i, +# \ast} \, \beta)^2 \\ & = ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 + 2 +# \mathbb{E}(\varepsilon_i) \mathbf{X}_{i, \ast} \, \boldsymbol{\beta} + +# \mathbb{E}(\varepsilon_i^2 ) - ( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta})^2 +# \\ & = \mathbb{E}(\varepsilon_i^2 ) \, \, \, = \, \, \, +# \mbox{Var}(\varepsilon_i) \, \, \, = \, \, \, \sigma^2. +# \end{align*} +# $$ + +# Hence, $y_i \sim \mathcal{N}( \mathbf{X}_{i, \ast} \, \boldsymbol{\beta}, \sigma^2)$, that is $\boldsymbol{y}$ follows a normal distribution with +# mean value $\boldsymbol{X}\boldsymbol{\beta}$ and variance $\sigma^2$ (not be confused with the singular values of the SVD). +# +# +# With the OLS expressions for the parameters $\boldsymbol{\beta}$ we can evaluate the expectation value + +# $$ +# \mathbb{E}(\boldsymbol{\beta}) = \mathbb{E}[ (\mathbf{X}^{\top} \mathbf{X})^{-1}\mathbf{X}^{T} \mathbf{Y}]=(\mathbf{X}^{T} \mathbf{X})^{-1}\mathbf{X}^{T} \mathbb{E}[ \mathbf{Y}]=(\mathbf{X}^{T} \mathbf{X})^{-1} \mathbf{X}^{T}\mathbf{X}\boldsymbol{\beta}=\boldsymbol{\beta}. +# $$ + +# This means that the estimator of the regression parameters is unbiased. +# v +# We can also calculate the variance +# +# The variance of $\boldsymbol{\beta}$ is + +# $$ +# \begin{eqnarray*} +# \mbox{Var}(\boldsymbol{\beta}) & = & \mathbb{E} \{ [\boldsymbol{\beta} - \mathbb{E}(\boldsymbol{\beta})] [\boldsymbol{\beta} - \mathbb{E}(\boldsymbol{\beta})]^{T} \} +# \\ +# & = & \mathbb{E} \{ [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y} - \boldsymbol{\beta}] \, [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y} - \boldsymbol{\beta}]^{T} \} +# \\ +# % & = & \mathbb{E} \{ [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y}] \, [(\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y}]^{T} \} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# % \\ +# % & = & \mathbb{E} \{ (\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \mathbf{Y} \, \mathbf{Y}^{T} \, \mathbf{X} \, (\mathbf{X}^{T} \mathbf{X})^{-1} \} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# % \\ +# & = & (\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \, \mathbb{E} \{ \mathbf{Y} \, \mathbf{Y}^{T} \} \, \mathbf{X} \, (\mathbf{X}^{T} \mathbf{X})^{-1} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# \\ +# & = & (\mathbf{X}^{T} \mathbf{X})^{-1} \, \mathbf{X}^{T} \, \{ \mathbf{X} \, \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} \, \mathbf{X}^{T} + \sigma^2 \} \, \mathbf{X} \, (\mathbf{X}^{T} \mathbf{X})^{-1} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# % \\ +# % & = & (\mathbf{X}^T \mathbf{X})^{-1} \, \mathbf{X}^T \, \mathbf{X} \, \boldsymbol{\beta} \, \boldsymbol{\beta}^T \, \mathbf{X}^T \, \mathbf{X} \, (\mathbf{X}^T % \mathbf{X})^{-1} +# % \\ +# % & & + \, \, \sigma^2 \, (\mathbf{X}^T \mathbf{X})^{-1} \, \mathbf{X}^T \, \mathbf{X} \, (\mathbf{X}^T \mathbf{X})^{-1} - \boldsymbol{\beta} \boldsymbol{\beta}^T +# \\ +# & = & \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} + \sigma^2 \, (\mathbf{X}^{T} \mathbf{X})^{-1} - \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} +# \, \, \, = \, \, \, \sigma^2 \, (\mathbf{X}^{T} \mathbf{X})^{-1}, +# \end{eqnarray*} +# $$ + +# where we have used that $\mathbb{E} (\mathbf{Y} \mathbf{Y}^{T}) = +# \mathbf{X} \, \boldsymbol{\beta} \, \boldsymbol{\beta}^{T} \, \mathbf{X}^{T} + +# \sigma^2 \, \mathbf{I}_{nn}$. From $\mbox{Var}(\boldsymbol{\beta}) = \sigma^2 +# \, (\mathbf{X}^{T} \mathbf{X})^{-1}$, one obtains an estimate of the +# variance of the estimate of the $j$-th regression coefficient: +# $\boldsymbol{\sigma}^2 (\boldsymbol{\beta}_j ) = \boldsymbol{\sigma}^2 \sqrt{ +# [(\mathbf{X}^{T} \mathbf{X})^{-1}]_{jj} }$. This may be used to +# construct a confidence interval for the estimates. +# +# +# In a similar way, we can obtain analytical expressions for say the +# expectation values of the parameters $\boldsymbol{\beta}$ and their variance +# when we employ Ridge regression, allowing us again to define a confidence interval. +# +# It is rather straightforward to show that + +# $$ +# \mathbb{E} \big[ \boldsymbol{\beta}^{\mathrm{Ridge}} \big]=(\mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I}_{pp})^{-1} (\mathbf{X}^{\top} \mathbf{X})\boldsymbol{\beta}^{\mathrm{OLS}}. +# $$ + +# We see clearly that +# $\mathbb{E} \big[ \boldsymbol{\beta}^{\mathrm{Ridge}} \big] \not= \boldsymbol{\beta}^{\mathrm{OLS}}$ for any $\lambda > 0$. We say then that the ridge estimator is biased. +# +# We can also compute the variance as + +# $$ +# \mbox{Var}[\boldsymbol{\beta}^{\mathrm{Ridge}}]=\sigma^2[ \mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I} ]^{-1} \mathbf{X}^{T} \mathbf{X} \{ [ \mathbf{X}^{\top} \mathbf{X} + \lambda \mathbf{I} ]^{-1}\}^{T}, +# $$ + +# and it is easy to see that if the parameter $\lambda$ goes to infinity then the variance of Ridge parameters $\boldsymbol{\beta}$ goes to zero. +# +# With this, we can compute the difference + +# $$ +# \mbox{Var}[\boldsymbol{\beta}^{\mathrm{OLS}}]-\mbox{Var}(\boldsymbol{\beta}^{\mathrm{Ridge}})=\sigma^2 [ \mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I} ]^{-1}[ 2\lambda\mathbf{I} + \lambda^2 (\mathbf{X}^{T} \mathbf{X})^{-1} ] \{ [ \mathbf{X}^{T} \mathbf{X} + \lambda \mathbf{I} ]^{-1}\}^{T}. +# $$ + +# The difference is non-negative definite since each component of the +# matrix product is non-negative definite. +# This means the variance we obtain with the standard OLS will always for $\lambda > 0$ be larger than the variance of $\boldsymbol{\beta}$ obtained with the Ridge estimator. This has interesting consequences when we discuss the so-called bias-variance trade-off below. +# +# +# +# ## Resampling methods +# +# With all these analytical equations for both the OLS and Ridge +# regression, we will now outline how to assess a given model. This will +# lead us to a discussion of the so-called bias-variance tradeoff (see +# below) and so-called resampling methods. +# +# One of the quantities we have discussed as a way to measure errors is +# the mean-squared error (MSE), mainly used for fitting of continuous +# functions. Another choice is the absolute error. +# +# In the discussions below we will focus on the MSE and in particular since we will split the data into test and training data, +# we discuss the +# 1. prediction error or simply the **test error** $\mathrm{Err_{Test}}$, where we have a fixed training set and the test error is the MSE arising from the data reserved for testing. We discuss also the +# +# 2. training error $\mathrm{Err_{Train}}$, which is the average loss over the training data. +# +# As our model becomes more and more complex, more of the training data tends to used. The training may thence adapt to more complicated structures in the data. This may lead to a decrease in the bias (see below for code example) and a slight increase of the variance for the test error. +# For a certain level of complexity the test error will reach minimum, before starting to increase again. The +# training error reaches a saturation. +# +# +# +# Two famous +# resampling methods are the **independent bootstrap** and **the jackknife**. +# +# The jackknife is a special case of the independent bootstrap. Still, the jackknife was made +# popular prior to the independent bootstrap. And as the popularity of +# the independent bootstrap soared, new variants, such as **the dependent bootstrap**. +# +# The Jackknife and independent bootstrap work for +# independent, identically distributed random variables. +# If these conditions are not +# satisfied, the methods will fail. Yet, it should be said that if the data are +# independent, identically distributed, and we only want to estimate the +# variance of $\overline{X}$ (which often is the case), then there is no +# need for bootstrapping. +# +# +# The Jackknife works by making many replicas of the estimator $\widehat{\beta}$. +# The jackknife is a resampling method where we systematically leave out one observation from the vector of observed values $\boldsymbol{x} = (x_1,x_2,\cdots,X_n)$. +# Let $\boldsymbol{x}_i$ denote the vector + +# $$ +# \boldsymbol{x}_i = (x_1,x_2,\cdots,x_{i-1},x_{i+1},\cdots,x_n), +# $$ + +# which equals the vector $\boldsymbol{x}$ with the exception that observation +# number $i$ is left out. Using this notation, define +# $\widehat{\beta}_i$ to be the estimator +# $\widehat{\beta}$ computed using $\vec{X}_i$. + +# In[1]: + + +from numpy import * +from numpy.random import randint, randn +from time import time + +def jackknife(data, stat): + n = len(data);t = zeros(n); inds = arange(n); t0 = time() + ## 'jackknifing' by leaving out an observation for each i + for i in range(n): + t[i] = stat(delete(data,i) ) + + # analysis + print("Runtime: %g sec" % (time()-t0)); print("Jackknife Statistics :") + print("original bias std. error") + print("%8g %14g %15g" % (stat(data),(n-1)*mean(t)/n, (n*var(t))**.5)) + + return t + + +# Returns mean of data samples +def stat(data): + return mean(data) + + +mu, sigma = 100, 15 +datapoints = 10000 +x = mu + sigma*random.randn(datapoints) +# jackknife returns the data sample +t = jackknife(x, stat) + + +# ### Bootstrap +# +# Bootstrapping is a nonparametric approach to statistical inference +# that substitutes computation for more traditional distributional +# assumptions and asymptotic results. Bootstrapping offers a number of +# advantages: +# 1. The bootstrap is quite general, although there are some cases in which it fails. +# +# 2. Because it does not require distributional assumptions (such as normally distributed errors), the bootstrap can provide more accurate inferences when the data are not well behaved or when the sample size is small. +# +# 3. It is possible to apply the bootstrap to statistics with sampling distributions that are difficult to derive, even asymptotically. +# +# 4. It is relatively simple to apply the bootstrap to complex data-collection plans (such as stratified and clustered samples). +# +# Since $\widehat{\beta} = \widehat{\beta}(\boldsymbol{X})$ is a function of random variables, +# $\widehat{\beta}$ itself must be a random variable. Thus it has +# a pdf, call this function $p(\boldsymbol{t})$. The aim of the bootstrap is to +# estimate $p(\boldsymbol{t})$ by the relative frequency of +# $\widehat{\beta}$. You can think of this as using a histogram +# in the place of $p(\boldsymbol{t})$. If the relative frequency closely +# resembles $p(\vec{t})$, then using numerics, it is straight forward to +# estimate all the interesting parameters of $p(\boldsymbol{t})$ using point +# estimators. +# +# +# +# In the case that $\widehat{\beta}$ has +# more than one component, and the components are independent, we use the +# same estimator on each component separately. If the probability +# density function of $X_i$, $p(x)$, had been known, then it would have +# been straight forward to do this by: +# 1. Drawing lots of numbers from $p(x)$, suppose we call one such set of numbers $(X_1^*, X_2^*, \cdots, X_n^*)$. +# +# 2. Then using these numbers, we could compute a replica of $\widehat{\beta}$ called $\widehat{\beta}^*$. +# +# By repeated use of (1) and (2), many +# estimates of $\widehat{\beta}$ could have been obtained. The +# idea is to use the relative frequency of $\widehat{\beta}^*$ +# (think of a histogram) as an estimate of $p(\boldsymbol{t})$. +# +# +# But +# unless there is enough information available about the process that +# generated $X_1,X_2,\cdots,X_n$, $p(x)$ is in general +# unknown. Therefore, [Efron in 1979](https://projecteuclid.org/euclid.aos/1176344552) asked the +# question: What if we replace $p(x)$ by the relative frequency +# of the observation $X_i$; if we draw observations in accordance with +# the relative frequency of the observations, will we obtain the same +# result in some asymptotic sense? The answer is yes. +# +# +# Instead of generating the histogram for the relative +# frequency of the observation $X_i$, just draw the values +# $(X_1^*,X_2^*,\cdots,X_n^*)$ with replacement from the vector +# $\boldsymbol{X}$. +# +# +# The independent bootstrap works like this: +# +# 1. Draw with replacement $n$ numbers for the observed variables $\boldsymbol{x} = (x_1,x_2,\cdots,x_n)$. +# +# 2. Define a vector $\boldsymbol{x}^*$ containing the values which were drawn from $\boldsymbol{x}$. +# +# 3. Using the vector $\boldsymbol{x}^*$ compute $\widehat{\beta}^*$ by evaluating $\widehat \beta$ under the observations $\boldsymbol{x}^*$. +# +# 4. Repeat this process $k$ times. +# +# When you are done, you can draw a histogram of the relative frequency +# of $\widehat \beta^*$. This is your estimate of the probability +# distribution $p(t)$. Using this probability distribution you can +# estimate any statistics thereof. In principle you never draw the +# histogram of the relative frequency of $\widehat{\beta}^*$. Instead +# you use the estimators corresponding to the statistic of interest. For +# example, if you are interested in estimating the variance of $\widehat +# \beta$, apply the etsimator $\widehat \sigma^2$ to the values +# $\widehat \beta^*$. +# +# Before we proceed however, we need to remind ourselves about a central +# theorem in statistics, namely the so-called **central limit theorem**. +# This theorem plays a central role in understanding why the Bootstrap +# (and other resampling methods) work so well on independent and +# identically distributed variables. +# +# +# Suppose we have a PDF $p(x)$ from which we generate a series $N$ +# of averages $\langle x_i \rangle$. Each mean value $\langle x_i \rangle$ +# is viewed as the average of a specific measurement, e.g., throwing +# dice 100 times and then taking the average value, or producing a certain +# amount of random numbers. +# For notational ease, we set $\langle x_i \rangle=x_i$ in the discussion +# which follows. +# +# If we compute the mean $z$ of $m$ such mean values $x_i$ + +# $$ +# z=\frac{x_1+x_2+\dots+x_m}{m}, +# $$ + +# the question we pose is which is the PDF of the new variable $z$. +# +# +# The probability of obtaining an average value $z$ is the product of the +# probabilities of obtaining arbitrary individual mean values $x_i$, +# but with the constraint that the average is $z$. We can express this through +# the following expression + +# $$ +# \tilde{p}(z)=\int dx_1p(x_1)\int dx_2p(x_2)\dots\int dx_mp(x_m) +# \delta(z-\frac{x_1+x_2+\dots+x_m}{m}), +# $$ + +# where the $\delta$-function enbodies the constraint that the mean is $z$. +# All measurements that lead to each individual $x_i$ are expected to +# be independent, which in turn means that we can express $\tilde{p}$ as the +# product of individual $p(x_i)$. The independence assumption is important in the derivation of the central limit theorem. +# +# +# +# If we use the integral expression for the $\delta$-function + +# $$ +# \delta(z-\frac{x_1+x_2+\dots+x_m}{m})=\frac{1}{2\pi}\int_{-\infty}^{\infty} +# dq\exp{\left(iq(z-\frac{x_1+x_2+\dots+x_m}{m})\right)}, +# $$ + +# and inserting $e^{i\mu q-i\mu q}$ where $\mu$ is the mean value +# we arrive at + +# $$ +# \tilde{p}(z)=\frac{1}{2\pi}\int_{-\infty}^{\infty} +# dq\exp{\left(iq(z-\mu)\right)}\left[\int_{-\infty}^{\infty} +# dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m, +# $$ + +# with the integral over $x$ resulting in + +# $$ +# \int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}= +# \int_{-\infty}^{\infty}dxp(x) +# \left[1+\frac{iq(\mu-x)}{m}-\frac{q^2(\mu-x)^2}{2m^2}+\dots\right]. +# $$ + +# The second term on the rhs disappears since this is just the mean and +# employing the definition of $\sigma^2$ we have + +# $$ +# \int_{-\infty}^{\infty}dxp(x)e^{\left(iq(\mu-x)/m\right)}= +# 1-\frac{q^2\sigma^2}{2m^2}+\dots, +# $$ + +# resulting in + +# $$ +# \left[\int_{-\infty}^{\infty}dxp(x)\exp{\left(iq(\mu-x)/m\right)}\right]^m\approx +# \left[1-\frac{q^2\sigma^2}{2m^2}+\dots \right]^m, +# $$ + +# and in the limit $m\rightarrow \infty$ we obtain + +# $$ +# \tilde{p}(z)=\frac{1}{\sqrt{2\pi}(\sigma/\sqrt{m})} +# \exp{\left(-\frac{(z-\mu)^2}{2(\sigma/\sqrt{m})^2}\right)}, +# $$ + +# which is the normal distribution with variance +# $\sigma^2_m=\sigma^2/m$, where $\sigma$ is the variance of the PDF $p(x)$ +# and $\mu$ is also the mean of the PDF $p(x)$. +# +# +# Thus, the central limit theorem states that the PDF $\tilde{p}(z)$ of +# the average of $m$ random values corresponding to a PDF $p(x)$ +# is a normal distribution whose mean is the +# mean value of the PDF $p(x)$ and whose variance is the variance +# of the PDF $p(x)$ divided by $m$, the number of values used to compute $z$. +# +# The central limit theorem leads to the well-known expression for the +# standard deviation, given by + +# $$ +# \sigma_m= +# \frac{\sigma}{\sqrt{m}}. +# $$ + +# The latter is true only if the average value is known exactly. This is obtained in the limit +# $m\rightarrow \infty$ only. Because the mean and the variance are measured quantities we obtain +# the familiar expression in statistics + +# $$ +# \sigma_m\approx +# \frac{\sigma}{\sqrt{m-1}}. +# $$ + +# In many cases however the above estimate for the standard deviation, +# in particular if correlations are strong, may be too simplistic. Keep +# in mind that we have assumed that the variables $x$ are independent +# and identically distributed. This is obviously not always the +# case. For example, the random numbers (or better pseudorandom numbers) +# we generate in various calculations do always exhibit some +# correlations. +# +# +# +# The theorem is satisfied by a large class of PDFs. Note however that for a +# finite $m$, it is not always possible to find a closed form /analytic expression for +# $\tilde{p}(x)$. +# +# +# The following code starts with a Gaussian distribution with mean value +# $\mu =100$ and variance $\sigma=15$. We use this to generate the data +# used in the bootstrap analysis. The bootstrap analysis returns a data +# set after a given number of bootstrap operations (as many as we have +# data points). This data set consists of estimated mean values for each +# bootstrap operation. The histogram generated by the bootstrap method +# shows that the distribution for these mean values is also a Gaussian, +# centered around the mean value $\mu=100$ but with standard deviation +# $\sigma/\sqrt{n}$, where $n$ is the number of bootstrap samples (in +# this case the same as the number of original data points). The value +# of the standard deviation is what we expect from the central limit +# theorem. + +# In[2]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import numpy as np +from time import time +from scipy.stats import norm +import matplotlib.pyplot as plt + +# Returns mean of bootstrap samples +# Bootstrap algorithm +def bootstrap(data, datapoints): + t = np.zeros(datapoints) + n = len(data) + # non-parametric bootstrap + for i in range(datapoints): + t[i] = np.mean(data[np.random.randint(0,n,n)]) + # analysis + print("Bootstrap Statistics :") + print("original bias std. error") + print("%8g %8g %14g %15g" % (np.mean(data), np.std(data),np.mean(t),np.std(t))) + return t + +# We set the mean value to 100 and the standard deviation to 15 +mu, sigma = 100, 15 +datapoints = 10000 +# We generate random numbers according to the normal distribution +x = mu + sigma*np.random.randn(datapoints) +# bootstrap returns the data sample +t = bootstrap(x, datapoints) + + +# We see that our new variance and from that the standard deviation, agrees with the central limit theorem. +# +# We plot then the histogram together with a best fit for the data set. + +# In[3]: + + +# the histogram of the bootstrapped data (normalized data if density = True) +n, binsboot, patches = plt.hist(t, 50, density=True, facecolor='red', alpha=0.75) +# add a 'best fit' line +y = norm.pdf(binsboot, np.mean(t), np.std(t)) +lt = plt.plot(binsboot, y, 'b', linewidth=1) +plt.xlabel('x') +plt.ylabel('Probability') +plt.grid(True) +plt.show() + + +# ## The bias-variance tradeoff +# +# +# We will discuss the bias-variance tradeoff in the context of +# continuous predictions such as regression. However, many of the +# intuitions and ideas discussed here also carry over to classification +# tasks. Consider a dataset $\mathcal{L}$ consisting of the data +# $\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. +# +# Let us assume that the true data is generated from a noisy model + +# $$ +# \boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon} +# $$ + +# where $\epsilon$ is normally distributed with mean zero and standard deviation $\sigma^2$. +# +# In our derivation of the ordinary least squares method we defined then +# an approximation to the function $f$ in terms of the parameters +# $\boldsymbol{\beta}$ and the design matrix $\boldsymbol{X}$ which embody our model, +# that is $\boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta}$. +# +# Thereafter we found the parameters $\boldsymbol{\beta}$ by optimizing the means squared error via the so-called cost function + +# $$ +# C(\boldsymbol{X},\boldsymbol{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]. +# $$ + +# We can rewrite this as + +# $$ +# \mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2+\sigma^2. +# $$ + +# The three terms represent the square of the bias of the learning +# method, which can be thought of as the error caused by the simplifying +# assumptions built into the method. The second term represents the +# variance of the chosen model and finally the last terms is variance of +# the error $\boldsymbol{\epsilon}$. +# +# To derive this equation, we need to recall that the variance of $\boldsymbol{y}$ and $\boldsymbol{\epsilon}$ are both equal to $\sigma^2$. The mean value of $\boldsymbol{\epsilon}$ is by definition equal to zero. Furthermore, the function $f$ is not a stochastics variable, idem for $\boldsymbol{\tilde{y}}$. +# We use a more compact notation in terms of the expectation value + +# $$ +# \mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}})^2\right], +# $$ + +# and adding and subtracting $\mathbb{E}\left[\boldsymbol{\tilde{y}}\right]$ we get + +# $$ +# \mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{f}+\boldsymbol{\epsilon}-\boldsymbol{\tilde{y}}+\mathbb{E}\left[\boldsymbol{\tilde{y}}\right]-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2\right], +# $$ + +# which, using the abovementioned expectation values can be rewritten as + +# $$ +# \mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\mathbb{E}\left[(\boldsymbol{y}-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2\right]+\mathrm{Var}\left[\boldsymbol{\tilde{y}}\right]+\sigma^2, +# $$ + +# that is the rewriting in terms of the so-called bias, the variance of the model $\boldsymbol{\tilde{y}}$ and the variance of $\boldsymbol{\epsilon}$. + +# In[4]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.linear_model import LinearRegression, Ridge, Lasso +from sklearn.preprocessing import PolynomialFeatures +from sklearn.model_selection import train_test_split +from sklearn.pipeline import make_pipeline +from sklearn.utils import resample + +np.random.seed(2018) + +n = 500 +n_boostraps = 100 +degree = 18 # A quite high value, just to show. +noise = 0.1 + +# Make data set. +x = np.linspace(-1, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + np.random.normal(0, 0.1, x.shape) + +# Hold out some test data that is never used in training. +x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) + +# Combine x transformation and model into one operation. +# Not neccesary, but convenient. +model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False)) + +# The following (m x n_bootstraps) matrix holds the column vectors y_pred +# for each bootstrap iteration. +y_pred = np.empty((y_test.shape[0], n_boostraps)) +for i in range(n_boostraps): + x_, y_ = resample(x_train, y_train) + + # Evaluate the new model on the same test data each time. + y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel() + +# Note: Expectations and variances taken w.r.t. different training +# data sets, hence the axis=1. Subsequent means are taken across the test data +# set in order to obtain a total value, but before this we have error/bias/variance +# calculated per data point in the test set. +# Note 2: The use of keepdims=True is important in the calculation of bias as this +# maintains the column vector form. Dropping this yields very unexpected results. +error = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) ) +bias = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 ) +variance = np.mean( np.var(y_pred, axis=1, keepdims=True) ) +print('Error:', error) +print('Bias^2:', bias) +print('Var:', variance) +print('{} >= {} + {} = {}'.format(error, bias, variance, bias+variance)) + +plt.plot(x[::5, :], y[::5, :], label='f(x)') +plt.scatter(x_test, y_test, label='Data points') +plt.scatter(x_test, np.mean(y_pred, axis=1), label='Pred') +plt.legend() +plt.show() + + +# In[5]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.linear_model import LinearRegression, Ridge, Lasso +from sklearn.preprocessing import PolynomialFeatures +from sklearn.model_selection import train_test_split +from sklearn.pipeline import make_pipeline +from sklearn.utils import resample + +np.random.seed(2018) + +n = 40 +n_boostraps = 100 +maxdegree = 14 + + +# Make data set. +x = np.linspace(-3, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) +error = np.zeros(maxdegree) +bias = np.zeros(maxdegree) +variance = np.zeros(maxdegree) +polydegree = np.zeros(maxdegree) +x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) + +for degree in range(maxdegree): + model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False)) + y_pred = np.empty((y_test.shape[0], n_boostraps)) + for i in range(n_boostraps): + x_, y_ = resample(x_train, y_train) + y_pred[:, i] = model.fit(x_, y_).predict(x_test).ravel() + + polydegree[degree] = degree + error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) ) + bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 ) + variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) ) + print('Polynomial degree:', degree) + print('Error:', error[degree]) + print('Bias^2:', bias[degree]) + print('Var:', variance[degree]) + print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree])) + +plt.plot(polydegree, error, label='Error') +plt.plot(polydegree, bias, label='bias') +plt.plot(polydegree, variance, label='Variance') +plt.legend() +plt.show() + + +# The bias-variance tradeoff summarizes the fundamental tension in +# machine learning, particularly supervised learning, between the +# complexity of a model and the amount of training data needed to train +# it. Since data is often limited, in practice it is often useful to +# use a less-complex model with higher bias, that is a model whose asymptotic +# performance is worse than another model because it is easier to +# train and less sensitive to sampling noise arising from having a +# finite-sized training dataset (smaller variance). +# +# +# +# The above equations tell us that in +# order to minimize the expected test error, we need to select a +# statistical learning method that simultaneously achieves low variance +# and low bias. Note that variance is inherently a nonnegative quantity, +# and squared bias is also nonnegative. Hence, we see that the expected +# test MSE can never lie below $Var(\epsilon)$, the irreducible error. +# +# +# What do we mean by the variance and bias of a statistical learning +# method? The variance refers to the amount by which our model would change if we +# estimated it using a different training data set. Since the training +# data are used to fit the statistical learning method, different +# training data sets will result in a different estimate. But ideally the +# estimate for our model should not vary too much between training +# sets. However, if a method has high variance then small changes in +# the training data can result in large changes in the model. In general, more +# flexible statistical methods have higher variance. +# +# +# You may also find this recent [article](https://www.pnas.org/content/116/32/15849) of interest. + +# In[6]: + + +""" +============================ +Underfitting vs. Overfitting +============================ + +This example demonstrates the problems of underfitting and overfitting and +how we can use linear regression with polynomial features to approximate +nonlinear functions. The plot shows the function that we want to approximate, +which is a part of the cosine function. In addition, the samples from the +real function and the approximations of different models are displayed. The +models have polynomial features of different degrees. We can see that a +linear function (polynomial with degree 1) is not sufficient to fit the +training samples. This is called **underfitting**. A polynomial of degree 4 +approximates the true function almost perfectly. However, for higher degrees +the model will **overfit** the training data, i.e. it learns the noise of the +training data. +We evaluate quantitatively **overfitting** / **underfitting** by using +cross-validation. We calculate the mean squared error (MSE) on the validation +set, the higher, the less likely the model generalizes correctly from the +training data. +""" + +print(__doc__) + +import numpy as np +import matplotlib.pyplot as plt +from sklearn.pipeline import Pipeline +from sklearn.preprocessing import PolynomialFeatures +from sklearn.linear_model import LinearRegression +from sklearn.model_selection import cross_val_score + + +def true_fun(X): + return np.cos(1.5 * np.pi * X) + +np.random.seed(0) + +n_samples = 30 +degrees = [1, 4, 15] + +X = np.sort(np.random.rand(n_samples)) +y = true_fun(X) + np.random.randn(n_samples) * 0.1 + +plt.figure(figsize=(14, 5)) +for i in range(len(degrees)): + ax = plt.subplot(1, len(degrees), i + 1) + plt.setp(ax, xticks=(), yticks=()) + + polynomial_features = PolynomialFeatures(degree=degrees[i], + include_bias=False) + linear_regression = LinearRegression() + pipeline = Pipeline([("polynomial_features", polynomial_features), + ("linear_regression", linear_regression)]) + pipeline.fit(X[:, np.newaxis], y) + + # Evaluate the models using crossvalidation + scores = cross_val_score(pipeline, X[:, np.newaxis], y, + scoring="neg_mean_squared_error", cv=10) + + X_test = np.linspace(0, 1, 100) + plt.plot(X_test, pipeline.predict(X_test[:, np.newaxis]), label="Model") + plt.plot(X_test, true_fun(X_test), label="True function") + plt.scatter(X, y, edgecolor='b', s=20, label="Samples") + plt.xlabel("x") + plt.ylabel("y") + plt.xlim((0, 1)) + plt.ylim((-2, 2)) + plt.legend(loc="best") + plt.title("Degree {}\nMSE = {:.2e}(+/- {:.2e})".format( + degrees[i], -scores.mean(), scores.std())) +plt.show() + + +# In[7]: + + +# Common imports +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.linear_model import LinearRegression, Ridge, Lasso +from sklearn.model_selection import train_test_split +from sklearn.utils import resample +from sklearn.metrics import mean_squared_error +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +infile = open(data_path("EoS.csv"),'r') + +# Read the EoS data as csv file and organize the data into two arrays with density and energies +EoS = pd.read_csv(infile, names=('Density', 'Energy')) +EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce') +EoS = EoS.dropna() +Energies = EoS['Energy'] +Density = EoS['Density'] +# The design matrix now as function of various polytrops + +Maxpolydegree = 30 +X = np.zeros((len(Density),Maxpolydegree)) +X[:,0] = 1.0 +testerror = np.zeros(Maxpolydegree) +trainingerror = np.zeros(Maxpolydegree) +polynomial = np.zeros(Maxpolydegree) + +trials = 100 +for polydegree in range(1, Maxpolydegree): + polynomial[polydegree] = polydegree + for degree in range(polydegree): + X[:,degree] = Density**(degree/3.0) + +# loop over trials in order to estimate the expectation value of the MSE + testerror[polydegree] = 0.0 + trainingerror[polydegree] = 0.0 + for samples in range(trials): + x_train, x_test, y_train, y_test = train_test_split(X, Energies, test_size=0.2) + model = LinearRegression(fit_intercept=False).fit(x_train, y_train) + ypred = model.predict(x_train) + ytilde = model.predict(x_test) + testerror[polydegree] += mean_squared_error(y_test, ytilde) + trainingerror[polydegree] += mean_squared_error(y_train, ypred) + + testerror[polydegree] /= trials + trainingerror[polydegree] /= trials + print("Degree of polynomial: %3d"% polynomial[polydegree]) + print("Mean squared error on training data: %.8f" % trainingerror[polydegree]) + print("Mean squared error on test data: %.8f" % testerror[polydegree]) + +plt.plot(polynomial, np.log10(trainingerror), label='Training Error') +plt.plot(polynomial, np.log10(testerror), label='Test Error') +plt.xlabel('Polynomial degree') +plt.ylabel('log10[MSE]') +plt.legend() +plt.show() + + +# ## Cross-validation +# +# When the repetitive splitting of the data set is done randomly, +# samples may accidently end up in a fast majority of the splits in +# either training or test set. Such samples may have an unbalanced +# influence on either model building or prediction evaluation. To avoid +# this $k$-fold cross-validation structures the data splitting. The +# samples are divided into $k$ more or less equally sized exhaustive and +# mutually exclusive subsets. In turn (at each split) one of these +# subsets plays the role of the test set while the union of the +# remaining subsets constitutes the training set. Such a splitting +# warrants a balanced representation of each sample in both training and +# test set over the splits. Still the division into the $k$ subsets +# involves a degree of randomness. This may be fully excluded when +# choosing $k=n$. This particular case is referred to as leave-one-out +# cross-validation (LOOCV). +# +# +# * Define a range of interest for the penalty parameter. +# +# * Divide the data set into training and test set comprising samples $\{1, \ldots, n\} \setminus i$ and $\{ i \}$, respectively. +# +# * Fit the linear regression model by means of ridge estimation for each $\lambda$ in the grid using the training set, and the corresponding estimate of the error variance $\boldsymbol{\sigma}_{-i}^2(\lambda)$, as + +# $$ +# \begin{align*} +# \boldsymbol{\beta}_{-i}(\lambda) & = ( \boldsymbol{X}_{-i, \ast}^{T} +# \boldsymbol{X}_{-i, \ast} + \lambda \boldsymbol{I}_{pp})^{-1} +# \boldsymbol{X}_{-i, \ast}^{T} \boldsymbol{y}_{-i} +# \end{align*} +# $$ + +# * Evaluate the prediction performance of these models on the test set by $\log\{L[y_i, \boldsymbol{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\}$. Or, by the prediction error $|y_i - \boldsymbol{X}_{i, \ast} \boldsymbol{\beta}_{-i}(\lambda)|$, the relative error, the error squared or the R2 score function. +# +# * Repeat the first three steps such that each sample plays the role of the test set once. +# +# * Average the prediction performances of the test sets at each grid point of the penalty bias/parameter. It is an estimate of the prediction performance of the model corresponding to this value of the penalty parameter on novel data. It is defined as + +# $$ +# \begin{align*} +# \frac{1}{n} \sum_{i = 1}^n \log\{L[y_i, \mathbf{X}_{i, \ast}; \boldsymbol{\beta}_{-i}(\lambda), \boldsymbol{\sigma}_{-i}^2(\lambda)]\}. +# \end{align*} +# $$ + +# For the various values of $k$ +# +# 1. shuffle the dataset randomly. +# +# 2. Split the dataset into $k$ groups. +# +# 3. For each unique group: +# +# a. Decide which group to use as set for test data +# +# b. Take the remaining groups as a training data set +# +# c. Fit a model on the training set and evaluate it on the test set +# +# d. Retain the evaluation score and discard the model +# +# +# 5. Summarize the model using the sample of model evaluation scores +# +# The code here uses Ridge regression with cross-validation (CV) resampling and $k$-fold CV in order to fit a specific polynomial. + +# In[8]: + + +import numpy as np +import matplotlib.pyplot as plt +from sklearn.model_selection import KFold +from sklearn.linear_model import Ridge +from sklearn.model_selection import cross_val_score +from sklearn.preprocessing import PolynomialFeatures + +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. +np.random.seed(3155) + +# Generate the data. +nsamples = 100 +x = np.random.randn(nsamples) +y = 3*x**2 + np.random.randn(nsamples) + +## Cross-validation on Ridge regression using KFold only + +# Decide degree on polynomial to fit +poly = PolynomialFeatures(degree = 6) + +# Decide which values of lambda to use +nlambdas = 500 +lambdas = np.logspace(-3, 5, nlambdas) + +# Initialize a KFold instance +k = 5 +kfold = KFold(n_splits = k) + +# Perform the cross-validation to estimate MSE +scores_KFold = np.zeros((nlambdas, k)) + +i = 0 +for lmb in lambdas: + ridge = Ridge(alpha = lmb) + j = 0 + for train_inds, test_inds in kfold.split(x): + xtrain = x[train_inds] + ytrain = y[train_inds] + + xtest = x[test_inds] + ytest = y[test_inds] + + Xtrain = poly.fit_transform(xtrain[:, np.newaxis]) + ridge.fit(Xtrain, ytrain[:, np.newaxis]) + + Xtest = poly.fit_transform(xtest[:, np.newaxis]) + ypred = ridge.predict(Xtest) + + scores_KFold[i,j] = np.sum((ypred - ytest[:, np.newaxis])**2)/np.size(ypred) + + j += 1 + i += 1 + + +estimated_mse_KFold = np.mean(scores_KFold, axis = 1) + +## Cross-validation using cross_val_score from sklearn along with KFold + +# kfold is an instance initialized above as: +# kfold = KFold(n_splits = k) + +estimated_mse_sklearn = np.zeros(nlambdas) +i = 0 +for lmb in lambdas: + ridge = Ridge(alpha = lmb) + + X = poly.fit_transform(x[:, np.newaxis]) + estimated_mse_folds = cross_val_score(ridge, X, y[:, np.newaxis], scoring='neg_mean_squared_error', cv=kfold) + + # cross_val_score return an array containing the estimated negative mse for every fold. + # we have to the the mean of every array in order to get an estimate of the mse of the model + estimated_mse_sklearn[i] = np.mean(-estimated_mse_folds) + + i += 1 + +## Plot and compare the slightly different ways to perform cross-validation + +plt.figure() + +plt.plot(np.log10(lambdas), estimated_mse_sklearn, label = 'cross_val_score') +plt.plot(np.log10(lambdas), estimated_mse_KFold, 'r--', label = 'KFold') + +plt.xlabel('log10(lambda)') +plt.ylabel('mse') + +plt.legend() + +plt.show() + + +# More examples of the application of cross-validation follow here. + +# In[9]: + + +# Common imports +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.linear_model import LinearRegression, Ridge, Lasso +from sklearn.metrics import mean_squared_error +from sklearn.model_selection import KFold +from sklearn.model_selection import cross_val_score + + +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +infile = open(data_path("EoS.csv"),'r') + +# Read the EoS data as csv file and organize the data into two arrays with density and energies +EoS = pd.read_csv(infile, names=('Density', 'Energy')) +EoS['Energy'] = pd.to_numeric(EoS['Energy'], errors='coerce') +EoS = EoS.dropna() +Energies = EoS['Energy'] +Density = EoS['Density'] +# The design matrix now as function of various polytrops + +Maxpolydegree = 30 +X = np.zeros((len(Density),Maxpolydegree)) +X[:,0] = 1.0 +estimated_mse_sklearn = np.zeros(Maxpolydegree) +polynomial = np.zeros(Maxpolydegree) +k =5 +kfold = KFold(n_splits = k) + +for polydegree in range(1, Maxpolydegree): + polynomial[polydegree] = polydegree + for degree in range(polydegree): + X[:,degree] = Density**(degree/3.0) + OLS = LinearRegression(fit_intercept=False) +# loop over trials in order to estimate the expectation value of the MSE + estimated_mse_folds = cross_val_score(OLS, X, Energies, scoring='neg_mean_squared_error', cv=kfold) +#[:, np.newaxis] + estimated_mse_sklearn[polydegree] = np.mean(-estimated_mse_folds) + +plt.plot(polynomial, np.log10(estimated_mse_sklearn), label='Test Error') +plt.xlabel('Polynomial degree') +plt.ylabel('log10[MSE]') +plt.legend() +plt.show() + + +# Note that we have kept the intercept in the first column of design matrix $\boldsymbol{X}$. When we call the corresponding **Scikit-Learn** function we need thus to set the intercept to **False**. Libraries like **Scikit-Learn** normally scale the design matrix and does not fit intercept. See the discussions below. +# +# ## More on Rescaling data +# +# We end this chapter by adding some words on scaling and how to deal with the intercept for regression cases. +# +# When you are comparing your own code with for example **Scikit-Learn**'s +# library, there are some technicalities to keep in mind. The examples +# here demonstrate some of these aspects with potential pitfalls. +# +# The discussion here focuses on the role of the intercept, how we can +# set up the design matrix, what scaling we should use and other topics +# which tend confuse us. +# +# The intercept can be interpreted as the expected value of our +# target/output variables when all other predictors are set to zero. +# Thus, if we cannot assume that the expected outputs/targets are zero +# when all predictors are zero (the columns in the design matrix), it +# may be a bad idea to implement a model which penalizes the intercept. +# Furthermore, in for example Ridge and Lasso regression, the default solutions +# from the library **Scikit-Learn** (when not shrinking $\beta_0$) for the unknown parameters +# $\boldsymbol{\beta}$, are derived under the assumption that both $\boldsymbol{y}$ and +# $\boldsymbol{X}$ are zero centered, that is we subtract the mean values. +# +# +# If our predictors represent different scales, then it is important to +# standardize the design matrix $\boldsymbol{X}$ by subtracting the mean of each +# column from the corresponding column and dividing the column with its +# standard deviation. Most machine learning libraries do this as a default. This means that if you compare your code with the results from a given library, +# the results may differ. +# +# The +# [Standardscaler](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html) +# function in **Scikit-Learn** does this for us. For the data sets we +# have been studying in our various examples, the data are in many cases +# already scaled and there is no need to scale them. You as a user of different machine learning algorithms, should always perform a +# survey of your data, with a critical assessment of them in case you need to scale the data. +# +# If you need to scale the data, not doing so will give an *unfair* +# penalization of the parameters since their magnitude depends on the +# scale of their corresponding predictor. +# +# Suppose as an example that you +# you have an input variable given by the heights of different persons. +# Human height might be measured in inches or meters or +# kilometers. If measured in kilometers, a standard linear regression +# model with this predictor would probably give a much bigger +# coefficient term, than if measured in millimeters. +# This can clearly lead to problems in evaluating the cost/loss functions. +# +# +# +# Keep in mind that when you transform your data set before training a model, the same transformation needs to be done +# on your eventual new data set before making a prediction. If we translate this into a Python code, it would could be implemented as follows + +# In[10]: + + +""" +#Model training, we compute the mean value of y and X +y_train_mean = np.mean(y_train) +X_train_mean = np.mean(X_train,axis=0) +X_train = X_train - X_train_mean +y_train = y_train - y_train_mean + +# The we fit our model with the training data +trained_model = some_model.fit(X_train,y_train) + + +#Model prediction, we need also to transform our data set used for the prediction. +X_test = X_test - X_train_mean #Use mean from training data +y_pred = trained_model(X_test) +y_pred = y_pred + y_train_mean +""" + + +# Let us try to understand what this may imply mathematically when we +# subtract the mean values, also known as *zero centering*. For +# simplicity, we will focus on ordinary regression, as done in the above example. +# +# The cost/loss function for regression is + +# $$ +# C(\beta_0, \beta_1, ... , \beta_{p-1}) = \frac{1}{n}\sum_{i=0}^{n} \left(y_i - \beta_0 - \sum_{j=1}^{p-1} X_{ij}\beta_j\right)^2,. +# $$ + +# Recall also that we use the squared value. This expression can lead to an +# increased penalty for higher differences between predicted and +# output/target values. +# +# What we have done is to single out the $\beta_0$ term in the +# definition of the mean squared error (MSE). The design matrix $X$ +# does in this case not contain any intercept column. When we take the +# derivative with respect to $\beta_0$, we want the derivative to obey + +# $$ +# \frac{\partial C}{\partial \beta_j} = 0, +# $$ + +# for all $j$. For $\beta_0$ we have + +# $$ +# \frac{\partial C}{\partial \beta_0} = -\frac{2}{n}\sum_{i=0}^{n-1} \left(y_i - \beta_0 - \sum_{j=1}^{p-1} X_{ij} \beta_j\right). +# $$ + +# Multiplying away the constant $2/n$, we obtain + +# $$ +# \sum_{i=0}^{n-1} \beta_0 = \sum_{i=0}^{n-1}y_i - \sum_{i=0}^{n-1} \sum_{j=1}^{p-1} X_{ij} \beta_j. +# $$ + +# Let us specialize first to the case where we have only two parameters $\beta_0$ and $\beta_1$. +# Our result for $\beta_0$ simplifies then to + +# $$ +# n\beta_0 = \sum_{i=0}^{n-1}y_i - \sum_{i=0}^{n-1} X_{i1} \beta_1. +# $$ + +# We obtain then + +# $$ +# \beta_0 = \frac{1}{n}\sum_{i=0}^{n-1}y_i - \beta_1\frac{1}{n}\sum_{i=0}^{n-1} X_{i1}. +# $$ + +# If we define + +# $$ +# \mu_{\boldsymbol{x}_1}=\frac{1}{n}\sum_{i=0}^{n-1} X_{i1}, +# $$ + +# and the mean value of the outputs as + +# $$ +# \mu_y=\frac{1}{n}\sum_{i=0}^{n-1}y_i, +# $$ + +# we have + +# $$ +# \beta_0 = \mu_y - \beta_1\mu_{\boldsymbol{x}_1}. +# $$ + +# In the general case with more parameters than $\beta_0$ and $\beta_1$, we have + +# $$ +# \beta_0 = \frac{1}{n}\sum_{i=0}^{n-1}y_i - \frac{1}{n}\sum_{i=0}^{n-1}\sum_{j=1}^{p-1} X_{ij}\beta_j. +# $$ + +# We can rewrite the latter equation as + +# $$ +# \beta_0 = \frac{1}{n}\sum_{i=0}^{n-1}y_i - \sum_{j=1}^{p-1} \mu_{\boldsymbol{x}_j}\beta_j, +# $$ + +# where we have defined + +# $$ +# \mu_{\boldsymbol{x}_j}=\frac{1}{n}\sum_{i=0}^{n-1} X_{ij}, +# $$ + +# the mean value for all elements of the column vector $\boldsymbol{x}_j$. +# +# +# +# Replacing $y_i$ with $y_i - y_i - \overline{\boldsymbol{y}}$ and centering also our design matrix results in a cost function (in vector-matrix disguise) + +# $$ +# C(\boldsymbol{\beta}) = (\boldsymbol{\tilde{y}} - \tilde{X}\boldsymbol{\beta})^T(\boldsymbol{\tilde{y}} - \tilde{X}\boldsymbol{\beta}). +# $$ + +# If we minimize with respect to $\boldsymbol{\beta}$ we have then + +# $$ +# \hat{\boldsymbol{\beta}} = (\tilde{X}^T\tilde{X})^{-1}\tilde{X}^T\boldsymbol{\tilde{y}}, +# $$ + +# where $\boldsymbol{\tilde{y}} = \boldsymbol{y} - \overline{\boldsymbol{y}}$ +# and $\tilde{X}_{ij} = X_{ij} - \frac{1}{n}\sum_{k=0}^{n-1}X_{kj}$. +# +# For Ridge regression we need to add $\lambda \boldsymbol{\beta}^T\boldsymbol{\beta}$ to the cost function and get then + +# $$ +# \hat{\boldsymbol{\beta}} = (\tilde{X}^T\tilde{X} + \lambda I)^{-1}\tilde{X}^T\boldsymbol{\tilde{y}}. +# $$ + +# What does this mean? And why do we insist on all this? Let us look at some examples. +# +# +# This code shows a simple first-order fit to a data set using the above transformed data, where we consider the role of the intercept first, by either excluding it or including it (*code example thanks to Øyvind Sigmundson Schøyen*). Here our scaling of the data is done by subtracting the mean values only. +# Note also that we do not split the data into training and test. + +# In[11]: + + +import numpy as np +import matplotlib.pyplot as plt + +from sklearn.linear_model import LinearRegression + + +np.random.seed(2021) + +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + + +def fit_beta(X, y): + return np.linalg.pinv(X.T @ X) @ X.T @ y + + +true_beta = [2, 0.5, 3.7] + +x = np.linspace(0, 1, 11) +y = np.sum( + np.asarray([x ** p * b for p, b in enumerate(true_beta)]), axis=0 +) + 0.1 * np.random.normal(size=len(x)) + +degree = 3 +X = np.zeros((len(x), degree)) + +# Include the intercept in the design matrix +for p in range(degree): + X[:, p] = x ** p + +beta = fit_beta(X, y) + +# Intercept is included in the design matrix +skl = LinearRegression(fit_intercept=False).fit(X, y) + +print(f"True beta: {true_beta}") +print(f"Fitted beta: {beta}") +print(f"Sklearn fitted beta: {skl.coef_}") +ypredictOwn = X @ beta +ypredictSKL = skl.predict(X) +print(f"MSE with intercept column") +print(MSE(y,ypredictOwn)) +print(f"MSE with intercept column from SKL") +print(MSE(y,ypredictSKL)) + + +plt.figure() +plt.scatter(x, y, label="Data") +plt.plot(x, X @ beta, label="Fit") +plt.plot(x, skl.predict(X), label="Sklearn (fit_intercept=False)") + + +# Do not include the intercept in the design matrix +X = np.zeros((len(x), degree - 1)) + +for p in range(degree - 1): + X[:, p] = x ** (p + 1) + +# Intercept is not included in the design matrix +skl = LinearRegression(fit_intercept=True).fit(X, y) + +# Use centered values for X and y when computing coefficients +y_offset = np.average(y, axis=0) +X_offset = np.average(X, axis=0) + +beta = fit_beta(X - X_offset, y - y_offset) +intercept = np.mean(y_offset - X_offset @ beta) + +print(f"Manual intercept: {intercept}") +print(f"Fitted beta (wiothout intercept): {beta}") +print(f"Sklearn intercept: {skl.intercept_}") +print(f"Sklearn fitted beta (without intercept): {skl.coef_}") +ypredictOwn = X @ beta +ypredictSKL = skl.predict(X) +print(f"MSE with Manual intercept") +print(MSE(y,ypredictOwn+intercept)) +print(f"MSE with Sklearn intercept") +print(MSE(y,ypredictSKL)) + +plt.plot(x, X @ beta + intercept, "--", label="Fit (manual intercept)") +plt.plot(x, skl.predict(X), "--", label="Sklearn (fit_intercept=True)") +plt.grid() +plt.legend() + +plt.show() + + +# The intercept is the value of our output/target variable +# when all our features are zero and our function crosses the $y$-axis (for a one-dimensional case). +# +# Printing the MSE, we see first that both methods give the same MSE, as +# they should. However, when we move to for example Ridge regression, +# the way we treat the intercept may give a larger or smaller MSE, +# meaning that the MSE can be penalized by the value of the +# intercept. Not including the intercept in the fit, means that the +# regularization term does not include $\beta_0$. For different values +# of $\lambda$, this may lead to differeing MSE values. +# +# To remind the reader, the regularization term, with the intercept in Ridge regression, is given by + +# $$ +# \lambda \vert\vert \boldsymbol{\beta} \vert\vert_2^2 = \lambda \sum_{j=0}^{p-1}\beta_j^2, +# $$ + +# but when we take out the intercept, this equation becomes + +# $$ +# \lambda \vert\vert \boldsymbol{\beta} \vert\vert_2^2 = \lambda \sum_{j=1}^{p-1}\beta_j^2. +# $$ + +# For Lasso regression we have + +# $$ +# \lambda \vert\vert \boldsymbol{\beta} \vert\vert_1 = \lambda \sum_{j=1}^{p-1}\vert\beta_j\vert. +# $$ + +# It means that, when scaling the design matrix and the outputs/targets, +# by subtracting the mean values, we have an optimization problem which +# is not penalized by the intercept. The MSE value can then be smaller +# since it focuses only on the remaining quantities. If we however bring +# back the intercept, we will get a MSE which then contains the +# intercept. +# +# +# Armed with this wisdom, we attempt first to simply set the intercept equal to **False** in our implementation of Ridge regression for our well-known vanilla data set. + +# In[12]: + + +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn import linear_model + +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n + + +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. +np.random.seed(3155) + +n = 100 +x = np.random.rand(n) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + +Maxpolydegree = 20 +X = np.zeros((n,Maxpolydegree)) +#We include explicitely the intercept column +for degree in range(Maxpolydegree): + X[:,degree] = x**degree +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +p = Maxpolydegree +I = np.eye(p,p) +# Decide which values of lambda to use +nlambdas = 6 +MSEOwnRidgePredict = np.zeros(nlambdas) +MSERidgePredict = np.zeros(nlambdas) +lambdas = np.logspace(-4, 2, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + OwnRidgeBeta = np.linalg.pinv(X_train.T @ X_train+lmb*I) @ X_train.T @ y_train + # Note: we include the intercept column and no scaling + RegRidge = linear_model.Ridge(lmb,fit_intercept=False) + RegRidge.fit(X_train,y_train) + # and then make the prediction + ytildeOwnRidge = X_train @ OwnRidgeBeta + ypredictOwnRidge = X_test @ OwnRidgeBeta + ytildeRidge = RegRidge.predict(X_train) + ypredictRidge = RegRidge.predict(X_test) + MSEOwnRidgePredict[i] = MSE(y_test,ypredictOwnRidge) + MSERidgePredict[i] = MSE(y_test,ypredictRidge) + print("Beta values for own Ridge implementation") + print(OwnRidgeBeta) + print("Beta values for Scikit-Learn Ridge implementation") + print(RegRidge.coef_) + print("MSE values for own Ridge implementation") + print(MSEOwnRidgePredict[i]) + print("MSE values for Scikit-Learn Ridge implementation") + print(MSERidgePredict[i]) + +# Now plot the results +plt.figure() +plt.plot(np.log10(lambdas), MSEOwnRidgePredict, 'r', label = 'MSE own Ridge Test') +plt.plot(np.log10(lambdas), MSERidgePredict, 'g', label = 'MSE Ridge Test') + +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() + + +# The results here agree when we force **Scikit-Learn**'s Ridge function to include the first column in our design matrix. +# We see that the results agree very well. Here we have thus explicitely included the intercept column in the design matrix. +# What happens if we do not include the intercept in our fit? +# Let us see how we can change this code by zero centering. + +# In[13]: + + +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn import linear_model +from sklearn.preprocessing import StandardScaler + +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. +np.random.seed(315) + +n = 100 +x = np.random.rand(n) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + +Maxpolydegree = 20 +X = np.zeros((n,Maxpolydegree-1)) + +for degree in range(1,Maxpolydegree): #No intercept column + X[:,degree-1] = x**(degree) + +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +#For our own implementation, we will need to deal with the intercept by centering the design matrix and the target variable +X_train_mean = np.mean(X_train,axis=0) +#Center by removing mean from each feature +X_train_scaled = X_train - X_train_mean +X_test_scaled = X_test - X_train_mean +#The model intercept (called y_scaler) is given by the mean of the target variable (IF X is centered) +#Remove the intercept from the training data. +y_scaler = np.mean(y_train) +y_train_scaled = y_train - y_scaler + +p = Maxpolydegree-1 +I = np.eye(p,p) +# Decide which values of lambda to use +nlambdas = 6 +MSEOwnRidgePredict = np.zeros(nlambdas) +MSERidgePredict = np.zeros(nlambdas) + +lambdas = np.logspace(-4, 2, nlambdas) +for i in range(nlambdas): + lmb = lambdas[i] + OwnRidgeBeta = np.linalg.pinv(X_train_scaled.T @ X_train_scaled+lmb*I) @ X_train_scaled.T @ (y_train_scaled) + intercept_ = y_scaler - X_train_mean@OwnRidgeBeta #The intercept can be shifted so the model can predict on uncentered data + #Add intercept to prediction + ypredictOwnRidge = X_test_scaled @ OwnRidgeBeta + y_scaler + RegRidge = linear_model.Ridge(lmb) + RegRidge.fit(X_train,y_train) + ypredictRidge = RegRidge.predict(X_test) + MSEOwnRidgePredict[i] = MSE(y_test,ypredictOwnRidge) + MSERidgePredict[i] = MSE(y_test,ypredictRidge) + print("Beta values for own Ridge implementation") + print(OwnRidgeBeta) #Intercept is given by mean of target variable + print("Beta values for Scikit-Learn Ridge implementation") + print(RegRidge.coef_) + print('Intercept from own implementation:') + print(intercept_) + print('Intercept from Scikit-Learn Ridge implementation') + print(RegRidge.intercept_) + print("MSE values for own Ridge implementation") + print(MSEOwnRidgePredict[i]) + print("MSE values for Scikit-Learn Ridge implementation") + print(MSERidgePredict[i]) + + +# Now plot the results +plt.figure() +plt.plot(np.log10(lambdas), MSEOwnRidgePredict, 'b--', label = 'MSE own Ridge Test') +plt.plot(np.log10(lambdas), MSERidgePredict, 'g--', label = 'MSE SL Ridge Test') +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() + + +# We see here, when compared to the code which includes explicitely the +# intercept column, that our MSE value is actually smaller. This is +# because the regularization term does not include the intercept value +# $\beta_0$ in the fitting. This applies to Lasso regularization as +# well. It means that our optimization is now done only with the +# centered matrix and/or vector that enter the fitting procedure. Note +# also that the problem with the intercept occurs mainly in these type +# of polynomial fitting problem. +# +# The next example is indeed an example where all these discussions about the role of intercept are not present. +# +# ## More complicated Example: The Ising model +# +# The one-dimensional Ising model with nearest neighbor interaction, no +# external field and a constant coupling constant $J$ is given by + +# +#
    +# +# $$ +# \begin{equation} +# H = -J \sum_{k}^L s_k s_{k + 1}, +# \label{_auto1} \tag{1} +# \end{equation} +# $$ + +# where $s_i \in \{-1, 1\}$ and $s_{N + 1} = s_1$. The number of spins +# in the system is determined by $L$. For the one-dimensional system +# there is no phase transition. +# +# We will look at a system of $L = 40$ spins with a coupling constant of +# $J = 1$. To get enough training data we will generate 10000 states +# with their respective energies. + +# In[14]: + + +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import make_axes_locatable +import seaborn as sns +import scipy.linalg as scl +from sklearn.model_selection import train_test_split +import tqdm +sns.set(color_codes=True) +cmap_args=dict(vmin=-1., vmax=1., cmap='seismic') + +L = 40 +n = int(1e4) + +spins = np.random.choice([-1, 1], size=(n, L)) +J = 1.0 + +energies = np.zeros(n) + +for i in range(n): + energies[i] = - J * np.dot(spins[i], np.roll(spins[i], 1)) + + +# Here we use ordinary least squares +# regression to predict the energy for the nearest neighbor +# one-dimensional Ising model on a ring, i.e., the endpoints wrap +# around. We will use linear regression to fit a value for +# the coupling constant to achieve this. +# +# A more general form for the one-dimensional Ising model is + +# +#
    +# +# $$ +# \begin{equation} +# H = - \sum_j^L \sum_k^L s_j s_k J_{jk}. +# \label{_auto2} \tag{2} +# \end{equation} +# $$ + +# Here we allow for interactions beyond the nearest neighbors and a state dependent +# coupling constant. This latter expression can be formulated as +# a matrix-product + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{H} = \boldsymbol{X} J, +# \label{_auto3} \tag{3} +# \end{equation} +# $$ + +# where $X_{jk} = s_j s_k$ and $J$ is a matrix which consists of the +# elements $-J_{jk}$. This form of writing the energy fits perfectly +# with the form utilized in linear regression, that is + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{y} = \boldsymbol{X}\boldsymbol{\beta} + \boldsymbol{\epsilon}, +# \label{_auto4} \tag{4} +# \end{equation} +# $$ + +# We split the data in training and test data as discussed in the previous example + +# In[15]: + + +X = np.zeros((n, L ** 2)) +for i in range(n): + X[i] = np.outer(spins[i], spins[i]).ravel() +y = energies +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + + +# In the ordinary least squares method we choose the cost function + +# +#
    +# +# $$ +# \begin{equation} +# C(\boldsymbol{X}, \boldsymbol{\beta})= \frac{1}{n}\left\{(\boldsymbol{X}\boldsymbol{\beta} - \boldsymbol{y})^T(\boldsymbol{X}\boldsymbol{\beta} - \boldsymbol{y})\right\}. +# \label{_auto5} \tag{5} +# \end{equation} +# $$ + +# We then find the extremal point of $C$ by taking the derivative with respect to $\boldsymbol{\beta}$ as discussed above. +# This yields the expression for $\boldsymbol{\beta}$ to be + +# $$ +# \boldsymbol{\beta} = \frac{\boldsymbol{X}^T \boldsymbol{y}}{\boldsymbol{X}^T \boldsymbol{X}}, +# $$ + +# which immediately imposes some requirements on $\boldsymbol{X}$ as there must exist +# an inverse of $\boldsymbol{X}^T \boldsymbol{X}$. If the expression we are modeling contains an +# intercept, i.e., a constant term, we must make sure that the +# first column of $\boldsymbol{X}$ consists of $1$. We do this here + +# In[16]: + + +X_train_own = np.concatenate( + (np.ones(len(X_train))[:, np.newaxis], X_train), + axis=1 +) +X_test_own = np.concatenate( + (np.ones(len(X_test))[:, np.newaxis], X_test), + axis=1 +) + + +# Doing the inversion directly turns out to be a bad idea since the matrix +# $\boldsymbol{X}^T\boldsymbol{X}$ is singular. An alternative approach is to use the **singular +# value decomposition**. Using the definition of the Moore-Penrose +# pseudoinverse we can write the equation for $\boldsymbol{\beta}$ as + +# $$ +# \boldsymbol{\beta} = \boldsymbol{X}^{+}\boldsymbol{y}, +# $$ + +# where the pseudoinverse of $\boldsymbol{X}$ is given by + +# $$ +# \boldsymbol{X}^{+} = \frac{\boldsymbol{X}^T}{\boldsymbol{X}^T\boldsymbol{X}}. +# $$ + +# Using singular value decomposition we can decompose the matrix $\boldsymbol{X} = \boldsymbol{U}\boldsymbol{\Sigma} \boldsymbol{V}^T$, +# where $\boldsymbol{U}$ and $\boldsymbol{V}$ are orthogonal(unitary) matrices and $\boldsymbol{\Sigma}$ contains the singular values (more details below). +# where $X^{+} = V\Sigma^{+} U^T$. This reduces the equation for +# $\omega$ to + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{\beta} = \boldsymbol{V}\boldsymbol{\Sigma}^{+} \boldsymbol{U}^T \boldsymbol{y}. +# \label{_auto6} \tag{6} +# \end{equation} +# $$ + +# Note that solving this equation by actually doing the pseudoinverse +# (which is what we will do) is not a good idea as this operation scales +# as $\mathcal{O}(n^3)$, where $n$ is the number of elements in a +# general matrix. Instead, doing $QR$-factorization and solving the +# linear system as an equation would reduce this down to +# $\mathcal{O}(n^2)$ operations. + +# In[17]: + + +def ols_svd(x: np.ndarray, y: np.ndarray) -> np.ndarray: + u, s, v = scl.svd(x) + return v.T @ scl.pinv(scl.diagsvd(s, u.shape[0], v.shape[0])) @ u.T @ y + + +# In[18]: + + +beta = ols_svd(X_train_own,y_train) + + +# When extracting the $J$-matrix we need to make sure that we remove the intercept, as is done here + +# In[19]: + + +J = beta[1:].reshape(L, L) + + +# A way of looking at the coefficients in $J$ is to plot the matrices as images. + +# In[20]: + + +fig = plt.figure(figsize=(20, 14)) +im = plt.imshow(J, **cmap_args) +plt.title("OLS", fontsize=18) +plt.xticks(fontsize=18) +plt.yticks(fontsize=18) +cb = fig.colorbar(im) +cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18) +plt.show() + + +# It is interesting to note that OLS +# considers both $J_{j, j + 1} = -0.5$ and $J_{j, j - 1} = -0.5$ as +# valid matrix elements for $J$. +# In our discussion below on hyperparameters and Ridge and Lasso regression we will see that +# this problem can be removed, partly and only with Lasso regression. +# +# In this case our matrix inversion was actually possible. The obvious question now is what is the mathematics behind the SVD? +# +# +# +# +# +# Let us now +# focus on Ridge and Lasso regression as well. We repeat some of the +# basic parts of the Ising model and the setup of the training and test +# data. The one-dimensional Ising model with nearest neighbor +# interaction, no external field and a constant coupling constant $J$ is +# given by + +# +#
    +# +# $$ +# \begin{equation} +# H = -J \sum_{k}^L s_k s_{k + 1}, +# \label{_auto7} \tag{7} +# \end{equation} +# $$ + +# where $s_i \in \{-1, 1\}$ and $s_{N + 1} = s_1$. The number of spins in the system is determined by $L$. For the one-dimensional system there is no phase transition. +# +# We will look at a system of $L = 40$ spins with a coupling constant of $J = 1$. To get enough training data we will generate 10000 states with their respective energies. + +# In[21]: + + +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.axes_grid1 import make_axes_locatable +import seaborn as sns +import scipy.linalg as scl +from sklearn.model_selection import train_test_split +import sklearn.linear_model as skl +import tqdm +sns.set(color_codes=True) +cmap_args=dict(vmin=-1., vmax=1., cmap='seismic') + +L = 40 +n = int(1e4) + +spins = np.random.choice([-1, 1], size=(n, L)) +J = 1.0 + +energies = np.zeros(n) + +for i in range(n): + energies[i] = - J * np.dot(spins[i], np.roll(spins[i], 1)) + + +# A more general form for the one-dimensional Ising model is + +# +#
    +# +# $$ +# \begin{equation} +# H = - \sum_j^L \sum_k^L s_j s_k J_{jk}. +# \label{_auto8} \tag{8} +# \end{equation} +# $$ + +# Here we allow for interactions beyond the nearest neighbors and a more +# adaptive coupling matrix. This latter expression can be formulated as +# a matrix-product on the form + +# +#
    +# +# $$ +# \begin{equation} +# H = X J, +# \label{_auto9} \tag{9} +# \end{equation} +# $$ + +# where $X_{jk} = s_j s_k$ and $J$ is the matrix consisting of the +# elements $-J_{jk}$. This form of writing the energy fits perfectly +# with the form utilized in linear regression, viz. + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{y} = \boldsymbol{X}\boldsymbol{\beta} + \boldsymbol{\epsilon}. +# \label{_auto10} \tag{10} +# \end{equation} +# $$ + +# We organize the data as we did above + +# In[22]: + + +X = np.zeros((n, L ** 2)) +for i in range(n): + X[i] = np.outer(spins[i], spins[i]).ravel() +y = energies +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.96) + +X_train_own = np.concatenate( + (np.ones(len(X_train))[:, np.newaxis], X_train), + axis=1 +) + +X_test_own = np.concatenate( + (np.ones(len(X_test))[:, np.newaxis], X_test), + axis=1 +) + + +# We will do all fitting with **Scikit-Learn**, + +# In[23]: + + +clf = skl.LinearRegression().fit(X_train, y_train) + + +# When extracting the $J$-matrix we make sure to remove the intercept + +# In[24]: + + +J_sk = clf.coef_.reshape(L, L) + + +# And then we plot the results + +# In[25]: + + +fig = plt.figure(figsize=(20, 14)) +im = plt.imshow(J_sk, **cmap_args) +plt.title("LinearRegression from Scikit-learn", fontsize=18) +plt.xticks(fontsize=18) +plt.yticks(fontsize=18) +cb = fig.colorbar(im) +cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18) +plt.show() + + +# The results agree perfectly with our previous discussion where we used our own code. +# +# +# Having explored the ordinary least squares we move on to ridge +# regression. In ridge regression we include a **regularizer**. This +# involves a new cost function which leads to a new estimate for the +# weights $\boldsymbol{\beta}$. This results in a penalized regression problem. The +# cost function is given by + +# 6 +# 0 +# +# < +# < +# < +# ! +# ! +# M +# A +# T +# H +# _ +# B +# L +# O +# C +# K + +# In[26]: + + +_lambda = 0.1 +clf_ridge = skl.Ridge(alpha=_lambda).fit(X_train, y_train) +J_ridge_sk = clf_ridge.coef_.reshape(L, L) +fig = plt.figure(figsize=(20, 14)) +im = plt.imshow(J_ridge_sk, **cmap_args) +plt.title("Ridge from Scikit-learn", fontsize=18) +plt.xticks(fontsize=18) +plt.yticks(fontsize=18) +cb = fig.colorbar(im) +cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18) + +plt.show() + + +# In the **Least Absolute Shrinkage and Selection Operator** (LASSO)-method we get a third cost function. + +# +#
    +# +# $$ +# \begin{equation} +# C(\boldsymbol{X}, \boldsymbol{\beta}; \lambda) = (\boldsymbol{X}\boldsymbol{\beta} - \boldsymbol{y})^T(\boldsymbol{X}\boldsymbol{\beta} - \boldsymbol{y}) + \lambda \sqrt{\boldsymbol{\beta}^T\boldsymbol{\beta}}. +# \label{_auto12} \tag{12} +# \end{equation} +# $$ + +# Finding the extremal point of this cost function is not so straight-forward as in least squares and ridge. We will therefore rely solely on the function ``Lasso`` from **Scikit-Learn**. + +# In[27]: + + +clf_lasso = skl.Lasso(alpha=_lambda).fit(X_train, y_train) +J_lasso_sk = clf_lasso.coef_.reshape(L, L) +fig = plt.figure(figsize=(20, 14)) +im = plt.imshow(J_lasso_sk, **cmap_args) +plt.title("Lasso from Scikit-learn", fontsize=18) +plt.xticks(fontsize=18) +plt.yticks(fontsize=18) +cb = fig.colorbar(im) +cb.ax.set_yticklabels(cb.ax.get_yticklabels(), fontsize=18) + +plt.show() + + +# It is quite striking how LASSO breaks the symmetry of the coupling +# constant as opposed to ridge and OLS. We get a sparse solution with +# $J_{j, j + 1} = -1$. +# +# +# +# +# We see how the different models perform for a different set of values for $\lambda$. + +# In[28]: + + +lambdas = np.logspace(-4, 5, 10) + +train_errors = { + "ols_sk": np.zeros(lambdas.size), + "ridge_sk": np.zeros(lambdas.size), + "lasso_sk": np.zeros(lambdas.size) +} + +test_errors = { + "ols_sk": np.zeros(lambdas.size), + "ridge_sk": np.zeros(lambdas.size), + "lasso_sk": np.zeros(lambdas.size) +} + +plot_counter = 1 + +fig = plt.figure(figsize=(32, 54)) + +for i, _lambda in enumerate(tqdm.tqdm(lambdas)): + for key, method in zip( + ["ols_sk", "ridge_sk", "lasso_sk"], + [skl.LinearRegression(), skl.Ridge(alpha=_lambda), skl.Lasso(alpha=_lambda)] + ): + method = method.fit(X_train, y_train) + + train_errors[key][i] = method.score(X_train, y_train) + test_errors[key][i] = method.score(X_test, y_test) + + omega = method.coef_.reshape(L, L) + + plt.subplot(10, 5, plot_counter) + plt.imshow(omega, **cmap_args) + plt.title(r"%s, $\lambda = %.4f$" % (key, _lambda)) + plot_counter += 1 + +plt.show() + + +# We see that LASSO reaches a good solution for low +# values of $\lambda$, but will "wither" when we increase $\lambda$ too +# much. Ridge is more stable over a larger range of values for +# $\lambda$, but eventually also fades away. +# +# +# To determine which value of $\lambda$ is best we plot the accuracy of +# the models when predicting the training and the testing set. We expect +# the accuracy of the training set to be quite good, but if the accuracy +# of the testing set is much lower this tells us that we might be +# subject to an overfit model. The ideal scenario is an accuracy on the +# testing set that is close to the accuracy of the training set. + +# In[29]: + + +fig = plt.figure(figsize=(20, 14)) + +colors = { + "ols_sk": "r", + "ridge_sk": "y", + "lasso_sk": "c" +} + +for key in train_errors: + plt.semilogx( + lambdas, + train_errors[key], + colors[key], + label="Train {0}".format(key), + linewidth=4.0 + ) + +for key in test_errors: + plt.semilogx( + lambdas, + test_errors[key], + colors[key] + "--", + label="Test {0}".format(key), + linewidth=4.0 + ) +plt.legend(loc="best", fontsize=18) +plt.xlabel(r"$\lambda$", fontsize=18) +plt.ylabel(r"$R^2$", fontsize=18) +plt.tick_params(labelsize=18) +plt.show() + + +# From the above figure we can see that LASSO with $\lambda = 10^{-2}$ +# achieves a very good accuracy on the test set. This by far surpasses the +# other models for all values of $\lambda$. +# +# +# +# +# +# +# ## Exercises and Projects +# +# +# +# The main aim of this project is to study in more detail various +# regression methods, including the Ordinary Least Squares (OLS) method, +# The total score is **100** points. Each subtask has its own final score. +# +# +# We will first study how to fit polynomials to a specific +# two-dimensional function called [Franke's +# function](http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf). This +# is a function which has been widely used when testing various +# interpolation and fitting algorithms. Furthermore, after having +# established the model and the method, we will employ resamling +# techniques such as cross-validation and/or bootstrap in order to perform a +# proper assessment of our models. We will also study in detail the +# so-called Bias-Variance trade off. +# +# +# The Franke function, which is a weighted sum of four exponentials reads as follows + +# $$ +# \begin{align*} +# f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +# &+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +# \end{align*} +# $$ + +# The function will be defined for $x,y\in [0,1]$. Our first step will +# be to perform an OLS regression analysis of this function, trying out +# a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, +# x^2, y^2, xy, \dots]$. We will also include bootstrap first as +# a resampling technique. After that we will include the cross-validation technique. As in homeworks 1 and 2, we can use a uniform +# distribution to set up the arrays of values for $x$ and $y$, or as in +# the example below just a set of fixed +# values for $x$ and $y$ with a given step +# size. We will fit a +# function (for example a polynomial) of $x$ and $y$. Thereafter we +# will repeat much of the same procedure using the Ridge and Lasso +# regression methods, introducing thus a dependence on the bias +# (penalty) $\lambda$. +# +# Finally we are going to use (real) digital terrain data and try to +# reproduce these data using the same methods. We will also try to go +# beyond the second-order polynomials metioned above and explore +# which polynomial fits the data best. +# +# +# The Python code for the Franke function is included here (it performs also a three-dimensional plot of it) + +# In[30]: + + +from mpl_toolkits.mplot3d import Axes3D +import matplotlib.pyplot as plt +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import numpy as np +from random import random, seed + +fig = plt.figure() +ax = fig.gca(projection='3d') + +# Make data. +x = np.arange(0, 1, 0.05) +y = np.arange(0, 1, 0.05) +x, y = np.meshgrid(x,y) + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +z = FrankeFunction(x, y) + +# Plot the surface. +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm, + linewidth=0, antialiased=False) + +# Customize the z axis. +ax.set_zlim(-0.10, 1.40) +ax.zaxis.set_major_locator(LinearLocator(10)) +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) + +# Add a color bar which maps values to colors. +fig.colorbar(surf, shrink=0.5, aspect=5) + +plt.show() + + +# ### Exercise: Ordinary Least Square (OLS) on the Franke function +# +# We will generate our own dataset for a function +# $\mathrm{FrankeFunction}(x,y)$ with $x,y \in [0,1]$. The function +# $f(x,y)$ is the Franke function. You should explore also the addition +# of an added stochastic noise to this function using the normal +# distribution $N(0,1)$. +# +# *Write your own code* (using either a matrix inversion or a singular +# value decomposition from e.g., **numpy** ) or use your code from +# homeworks 1 and 2 and perform a standard least square regression +# analysis using polynomials in $x$ and $y$ up to fifth order. Find the +# [confidence intervals](https://en.wikipedia.org/wiki/Confidence_interval) of the parameters (estimators) $\beta$ by computing their +# variances, evaluate the Mean Squared error (MSE) + +# $$ +# MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} +# \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +# $$ + +# and the $R^2$ score function. If $\tilde{\hat{y}}_i$ is the predicted +# value of the $i-th$ sample and $y_i$ is the corresponding true value, +# then the score $R^2$ is defined as + +# $$ +# R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +# $$ + +# where we have defined the mean value of $\hat{y}$ as + +# $$ +# \bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +# $$ + +# Your code has to include a scaling of the data (for example by +# subtracting the mean value), and +# a split of the data in training and test data. For this exercise you can +# either write your own code or use for example the function for +# splitting training data provided by the library **Scikit-Learn** (make +# sure you have installed it). This function is called +# $train\_test\_split$. **You should present a critical discussion of why and how you have scaled or not scaled the data**. +# +# It is normal in essentially all Machine Learning studies to split the +# data in a training set and a test set (eventually also an additional +# validation set). There +# is no explicit recipe for how much data should be included as training +# data and say test data. An accepted rule of thumb is to use +# approximately $2/3$ to $4/5$ of the data as training data. +# +# +# You can easily reuse the solutions to your exercises from week 35 and week 36. +# +# +# +# ### Exercise: Bias-variance trade-off and resampling techniques +# +# Our aim here is to study the bias-variance trade-off by implementing the **bootstrap** resampling technique. +# +# With a code which does OLS and includes resampling techniques, +# we will now discuss the bias-variance trade-off in the context of +# continuous predictions such as regression. However, many of the +# intuitions and ideas discussed here also carry over to classification +# tasks and basically all Machine Learning algorithms. +# +# Before you perform an analysis of the bias-variance trade-off on your test data, make +# first a figure similar to Fig. 2.11 of Hastie, Tibshirani, and +# Friedman. Figure 2.11 of this reference displays only the test and training MSEs. The test MSE can be used to +# indicate possible regions of low/high bias and variance. You will most likely not get an +# equally smooth curve! +# +# With this result we move on to the bias-variance trade-off analysis. +# +# Consider a +# dataset $\mathcal{L}$ consisting of the data +# $\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. +# +# Let us assume that the true data is generated from a noisy model + +# $$ +# \boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. +# $$ + +# Here $\epsilon$ is normally distributed with mean zero and standard +# deviation $\sigma^2$. +# +# In our derivation of the ordinary least squares method we defined then +# an approximation to the function $f$ in terms of the parameters +# $\boldsymbol{\beta}$ and the design matrix $\boldsymbol{X}$ which embody our model, +# that is $\boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta}$. +# +# The parameters $\boldsymbol{\beta}$ are in turn found by optimizing the means +# squared error via the so-called cost function + +# $$ +# C(\boldsymbol{X},\boldsymbol{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]. +# $$ + +# Here the expected value $\mathbb{E}$ is the sample value. +# +# Show that you can rewrite this as + +# $$ +# \mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2+\sigma^2. +# $$ + +# Explain what the terms mean, which one is the bias and which one is +# the variance and discuss their interpretations. +# +# Perform then a bias-variance analysis of the Franke function by +# studying the MSE value as function of the complexity of your model. +# +# Discuss the bias and variance trade-off as function +# of your model complexity (the degree of the polynomial) and the number +# of data points, and possibly also your training and test data using the **bootstrap** resampling method. +# +# Note also that when you calculate the bias, in all applications you don't know the function values $f_i$. You would hence replace them with the actual data points $y_i$. +# +# +# ### Exercise: Cross-validation as resampling techniques, adding more complexity +# +# The aim here is to write your own code for another widely popular +# resampling technique, the so-called cross-validation method. Again, +# before you start with cross-validation approach, you should scale your +# data. +# +# Implement the $k$-fold cross-validation algorithm (write your own +# code) and evaluate again the MSE function resulting +# from the test folds. You can compare your own code with that from +# **Scikit-Learn** if needed. +# +# Compare the MSE you get from your cross-validation code with the one +# you got from your **bootstrap** code. Comment your results. Try $5-10$ +# folds. You can also compare your own cross-validation code with the +# one provided by **Scikit-Learn**. +# +# +# ### Exercise: Ridge Regression on the Franke function with resampling +# +# Write your own code for the Ridge method, either using matrix +# inversion or the singular value decomposition as done in the previous +# exercise. Perform the same bootstrap analysis as in the +# Exercise 2 (for the same polynomials) and the cross-validation in exercise 3 but now for different values of $\lambda$. Compare and +# analyze your results with those obtained in exercises 1-3. Study the +# dependence on $\lambda$. +# +# Study also the bias-variance trade-off as function of various values of +# the parameter $\lambda$. For the bias-variance trade-off, use the **bootstrap** resampling method. Comment your results. +# +# ### Exercise: Lasso Regression on the Franke function with resampling +# +# This exercise is essentially a repeat of the previous two ones, but now +# with Lasso regression. Write either your own code (difficult and optional) or, in this case, +# you can also use the functionalities of **Scikit-Learn** (recommended). +# Give a +# critical discussion of the three methods and a judgement of which +# model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the **bootstrap** resampling technique and an analysis of the mean squared error using cross-validation. +# +# ### Exercise: Analysis of real data +# +# With our codes functioning and having been tested properly on a +# simpler function we are now ready to look at real data. We will +# essentially repeat in this exercise what was done in exercises 1-5. However, we +# need first to download the data and prepare properly the inputs to our +# codes. We are going to download digital terrain data from the website +# , +# +# Or, if you prefer, we have placed selected datafiles at +# +# In order to obtain data for a specific region, you need to register as +# a user (free) at this website and then decide upon which area you want +# to fetch the digital terrain data from. In order to be able to read +# the data properly, you need to specify that the format should be **SRTM +# Arc-Second Global** and download the data as a **GeoTIF** file. The +# files are then stored in *tif* format which can be imported into a +# Python program using + +# In[31]: + + +scipy.misc.imread + + +# Here is a simple part of a Python code which reads and plots the data +# from such files + +# In[ ]: + + +""" +import numpy as np +from imageio import imread +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm + +# Load the terrain +terrain1 = imread('SRTM_data_Norway_1.tif') +# Show the terrain +plt.figure() +plt.title('Terrain over Norway 1') +plt.imshow(terrain1, cmap='gray') +plt.xlabel('X') +plt.ylabel('Y') +plt.show() +""" + + +# If you should have problems in downloading the digital terrain data, +# we provide two examples under the data folder of project 1. One is +# from a region close to Stavanger in Norway and the other Møsvatn +# Austfjell, again in Norway. +# Feel free to produce your own terrain data. +# +# +# Alternatively, if you would like to use another data set, feel free to do so. This could be data close to your reseach area or simply a data set you found interesting. See for example [kaggle.com](https://www.kaggle.com/datasets) for examples. +# +# +# Our final part deals with the parameterization of your digital terrain +# data (or your own data). We will apply all three methods for linear regression, the same type (or higher order) of polynomial +# approximation and cross-validation as resampling technique to evaluate which +# model fits the data best. +# +# At the end, you should present a critical evaluation of your results +# and discuss the applicability of these regression methods to the type +# of data presented here (either the terrain data we propose or other data sets). diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_107_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_107_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5de46e7ee6fe8b62e61207461d95a07add7a2618 GIT binary patch literal 15278 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_115_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_115_1.png new file mode 100644 index 0000000000000000000000000000000000000000..57716b7b05c7bb6469683f9995709e96bf565364 GIT binary patch literal 11256 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 I9~i&-Ux~O@j{pDw literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_148_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_148_1.png new file mode 100644 index 0000000000000000000000000000000000000000..0da8fb2fb4f6f0980f8a624c3856a3b123d83925 GIT binary patch literal 20061 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_166_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_166_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d12d97a6d169eb1a865d3f73235aa920bfc58b GIT binary patch literal 31715 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�tB5Q7lIcEtnNdi!U~;sxxz>*L1Qy^>20a?Q z9}#F!JPXR)gpyH5SJ!cUweL%}zNx?_F4GmA8H!Iq!9c1Be|3=D9H|s3?Pm(k2#tWM zUK!E_P>8_%!s0#hR;}%qU`6%|`LdQPiLS(OdraMb_%N`fa^nwpI{;aAcQMa4H8W%h zpz!k@UT)zmxtCkG_DC_ID3oLbG$mwvIdkuL3*=tKI#E={jrCZT!)A{*0e&e%eIXNj zIIRU1Qtg21B(T=OMbd@eCLIE`{HF5ACMt`d>d_8|;15N{fg7=S8MmpC4_!`vt3awG zn%Utp{u$Xc*@Tg{g^MWxS)E^SS1G;6tReYGreZc6d^oL>xTdRw(ZVIMCN9TihYK#) zx*Yr^kg`(=Tgz&mjU4Tlv!oXoK;}MLEWKzB9IHR{|Tca){tTfgva-sngV@1EN9h0n*jW>n52i zu~{N9mqx#+$g50jTZ~fVSFVPJU>0(-PKA3`^C-CXd8f!squ*tpfsxVvkb}p-HVumr zh}e)JEa<)Ltc+4*xP7AT=XvU?IJJ3X_WN~~1G5utoaU2^x}TY5bxRZohS0KdJR%z8 zA(e5zxSxfn@LZL@d%hKE_fV)Cdeqbx-|>>GMoL3199b5_(R6NeVo=Kv*VLam=JlKgCN+_eKaweW`2P({PID8J9F8|#Uajw51=M-Emd)PkJy?BAr zZs18cguVd|p4?u!Ra*l~p(_~J)QfU8&+U1^>q9y?VpR-d0dq6$ORrVlVw$dv2S7uP za%u+xm+?A-QG?$uZ88XDT+%zS0li$suCf8M~{-?={`GSVJq4<_ZF_Q7Cnak?W4?id^n zD|>S$$r1jcx8XhD=<*Oa3c_fUu!nyisT@(H`NLmb0O~jtK?wxdOL;ULe(uS41iT<~WkKSam6D=?aKjM)m;4udPJVtq%4L(>zCAfhSH&5{1fsxEJ>>~e z1g21SeSHNr#?5N1;}BaU7o3gz11%Y!T>0K4&q}k+I&MvTM$tlZ**Qezg21&~utZNi zK!04&ag!fhLGVjo>1BUJS@;Zb!C80`K?G0~D-d_(;j;)Fd=Ll;=jorE^HhG7m_4;K z+oaSr8Fag<^9z^bA$kiESuEOooIK;AEH7hW!G0ffsiRC5@|l5ADe~v@YaFt-?{E|L zBo?D%J|2;l)jzg`_Jnk!As4~lk(^Ig8avR0;?!WDIRUa?BYpjFlq8CLSyxx{INX9m zW3w|u6<(5y{W;4;!418Vk0Jj;Mbf|gIE609ee>C6!C6rK?KdoK6KKElIAisE2l|QH NntDfaG|v6@{{W&>vTpzY literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_169_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_169_1.png new file mode 100644 index 0000000000000000000000000000000000000000..cdf0ad5dc7c1b1bcd0a5d14242f2c1d350ae2031 GIT binary patch literal 31040 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

    |%_i@42tv%8s6S%3 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

    wp}?@*iZ*j+)ATl0zG2O8TZ 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_177_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_177_0.png new file mode 100644 index 0000000000000000000000000000000000000000..0a2220357787f5ee14fdd3cbdcd359d329b459fb GIT binary patch literal 72988 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 CdDW2s literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_47_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_47_0.png new file mode 100644 index 0000000000000000000000000000000000000000..894c9498f0150b9be84a90ae0fb6dcb162c360f9 GIT binary patch literal 11525 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_61_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_61_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d994e4b3218abb1fee42c4e1f40ee3290f8096 GIT binary patch literal 23321 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 MRo77~M_2{^A0fC{ZU6uP literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_62_5.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_62_5.png new file mode 100644 index 0000000000000000000000000000000000000000..a10a54993faf7a6d9ee039c14854848452d3ed89 GIT binary patch literal 16083 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 AIsgCw literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_71_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_71_0.png new file mode 100644 index 0000000000000000000000000000000000000000..505b245ce21f12ee1789d7c2b705257225534c3e GIT binary patch literal 14393 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter3_73_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter3_73_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dec62c9f967b9bb3bf01d0245b905c6aeb0df303 GIT binary patch literal 12100 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter4.ipynb new file mode 100644 index 000000000..e012c4d63 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter4.ipynb @@ -0,0 +1,1252 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logistic Regression\n", + "\n", + "\n", + "\n", + "## Logistic Regression\n", + "\n", + "In linear regression our main interest was centered on learning the\n", + "coefficients of a functional fit (say a polynomial) in order to be\n", + "able to predict the response of a continuous variable on some unseen\n", + "data. The fit to the continuous variable $y_i$ is based on some\n", + "independent variables $x_i$. Linear regression resulted in\n", + "analytical expressions for standard ordinary Least Squares or Ridge\n", + "regression (in terms of matrices to invert) for several quantities,\n", + "ranging from the variance and thereby the confidence intervals of the\n", + "optimal parameters $\\hat{\\beta}$ to the mean squared error. If we can invert\n", + "the product of the design matrices, linear regression gives then a\n", + "simple recipe for fitting our data.\n", + "\n", + "\n", + "Classification problems, however, are concerned with outcomes taking\n", + "the form of discrete variables (i.e. categories). We may for example,\n", + "on the basis of DNA sequencing for a number of patients, like to find\n", + "out which mutations are important for a certain disease; or based on\n", + "scans of various patients' brains, figure out if there is a tumor or\n", + "not; or given a specific physical system, we'd like to identify its\n", + "state, say whether it is an ordered or disordered system (typical\n", + "situation in solid state physics); or classify the status of a\n", + "patient, whether she/he has a stroke or not and many other similar\n", + "situations.\n", + "\n", + "The most common situation we encounter when we apply logistic\n", + "regression is that of two possible outcomes, normally denoted as a\n", + "binary outcome, true or false, positive or negative, success or\n", + "failure etc.\n", + "\n", + "\n", + "Logistic regression will also serve as our stepping stone towards\n", + "neural network algorithms and supervised deep learning. For logistic\n", + "learning, the minimization of the cost function leads to a non-linear\n", + "equation in the parameters $\\hat{\\beta}$. The optimization of the\n", + "problem calls therefore for minimization algorithms. This forms the\n", + "bottle neck of all machine learning algorithms, namely how to find\n", + "reliable minima of a multi-variable function. This leads us to the\n", + "family of gradient descent methods. The latter are the working horses\n", + "of basically all modern machine learning algorithms.\n", + "\n", + "We note also that many of the topics discussed here on logistic \n", + "regression are also commonly used in modern supervised Deep Learning\n", + "models, as we will see later.\n", + "\n", + "\n", + "\n", + "## Basics\n", + "\n", + "We consider the case where the dependent variables, also called the\n", + "responses or the outcomes, $y_i$ are discrete and only take values\n", + "from $k=0,\\dots,K-1$ (i.e. $K$ classes).\n", + "\n", + "The goal is to predict the\n", + "output classes from the design matrix $\\boldsymbol{X}\\in\\mathbb{R}^{n\\times p}$\n", + "made of $n$ samples, each of which carries $p$ features or predictors. The\n", + "primary goal is to identify the classes to which new unseen samples\n", + "belong.\n", + "\n", + "Let us specialize to the case of two classes only, with outputs\n", + "$y_i=0$ and $y_i=1$. Our outcomes could represent the status of a\n", + "credit card user that could default or not on her/his credit card\n", + "debt. That is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i = \\begin{bmatrix} 0 & \\mathrm{no}\\\\ 1 & \\mathrm{yes} \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before moving to the logistic model, let us try to use our linear\n", + "regression model to classify these two outcomes. We could for example\n", + "fit a linear model to the default case if $y_i > 0.5$ and the no\n", + "default case $y_i \\leq 0.5$.\n", + "\n", + "We would then have our \n", + "weighted linear combination, namely" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "

    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\boldsymbol{y} = \\boldsymbol{X}^T\\boldsymbol{\\beta} + \\boldsymbol{\\epsilon},\n", + "\\label{_auto1} \\tag{1}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{y}$ is a vector representing the possible outcomes, $\\boldsymbol{X}$ is our\n", + "$n\\times p$ design matrix and $\\boldsymbol{\\beta}$ represents our estimators/predictors.\n", + "\n", + "\n", + "The main problem with our function is that it takes values on the\n", + "entire real axis. In the case of logistic regression, however, the\n", + "labels $y_i$ are discrete variables. A typical example is the credit\n", + "card data discussed below here, where we can set the state of\n", + "defaulting the debt to $y_i=1$ and not to $y_i=0$ for one the persons\n", + "in the data set (see the full example below).\n", + "\n", + "One simple way to get a discrete output is to have sign\n", + "functions that map the output of a linear regressor to values $\\{0,1\\}$,\n", + "$f(s_i)=sign(s_i)=1$ if $s_i\\ge 0$ and 0 if otherwise. \n", + "We will encounter this model in our first demonstration of neural networks. Historically it is called the ``perceptron\" model in the machine learning\n", + "literature. This model is extremely simple. However, in many cases it is more\n", + "favorable to use a ``soft\" classifier that outputs\n", + "the probability of a given category. This leads us to the logistic function.\n", + "\n", + "\n", + "The following example on data for coronary heart disease (CHD) as function of age may serve as an illustration. In the code here we read and plot whether a person has had CHD (output = 1) or not (output = 0). This ouput is plotted the person's against age. Clearly, the figure shows that attempting to make a standard linear regression fit may not be very meaningful." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    IDAgeAgegroupCHD
    012110
    122310
    232511
    342910
    452110
    ...............
    95966181
    96976981
    97986581
    98996481
    991006380
    \n", + "

    100 rows × 4 columns

    \n", + "
    " + ], + "text/plain": [ + " ID Age Agegroup CHD\n", + "0 1 21 1 0\n", + "1 2 23 1 0\n", + "2 3 25 1 1\n", + "3 4 29 1 0\n", + "4 5 21 1 0\n", + ".. ... ... ... ...\n", + "95 96 61 8 1\n", + "96 97 69 8 1\n", + "97 98 65 8 1\n", + "98 99 64 8 1\n", + "99 100 63 8 0\n", + "\n", + "[100 rows x 4 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAFnCAYAAABKGFvpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA0RElEQVR4nO3deWATdf7/8Vd6pJSm0JJWoLIqcokiFOTL14oroKyi4n2sIP6+4lEv8EAoIqcsoICg1mO14notuLqLXKKAuFZdEVFulbPIWcCSnumVHvP7gy/5Umib0EzaOjwff5HM5DPvec9MXsmn02IzDMMQAACwlJCGLgAAAJiPgAcAwIIIeAAALIiABwDAggh4AAAsiIAHAMCCCHjUatGiRerZs6c8Hk/Qt5Wenq4BAwborrvu8j43YcIELVy40LRt/Pjjj7rnnnskSV988cVJ2zNz/MbqL3/5i3r27KmPP/64xnUqKir0xhtv6I477tBdd92l22+/XWPHjtWmTZvqsdL6sWnTJt1www26/PLLG7qUah0+fFi33367OnXq5H1uyZIlGjt2bANWhd8FA6jFo48+anTr1s344osv6mV78+fPN4YMGeJ97Ha7jbKyMp+vGzJkiDF//nyf61VWVhr5+fk1bu9UdezY0di3b1+N4zdWvvo1cuRI48knnzRKS0sNwzCM0tJS46mnnjKuv/76+iqxXq1evdro169fvW3P3/P1mH379hkdO3b0Pi4vLzfcbncwSoOF8A0eNXK73QoNDVW/fv302WefNUgNUVFRCgsLM208m82m6Oho08ar7/Hrw/fff68VK1Zo4sSJstvtkiS73a6xY8d6H6NhhYaGKioqqqHLQCNn3jsnLGflypW68sorFRYWppSUFJWWlioiIkKS9Prrr2vJkiVq2bKlLr74Ys2aNUu9evXSW2+9JZvNptmzZ2v9+vWy2Wzq3bu3HnnkEdlstpO2UVRUpPHjxysjI0OtWrWqMg25cOFCpaamqlevXnruuedUXFysp556Si6XSxUVFeratavGjBmjWbNmacuWLcrKytKCBQt07733Kj09XZ988omGDBminTt3au3atRowYIB+/vlnbdy4Udu2bfNuxzAMTZkyRT///LNKS0v1l7/8RRdccIFmzJihjz76SE8//bRuvvlmTZgwQQsWLNCcOXP03//937rvvvskSSNGjFBERISee+45PfHEE1XGd7vdmjZtmn799VdVVlaqf//+uu+++1RWVqZ7771Xa9as0YQJE5Senq5ff/1Vo0eP1p/+9Kdqj8eHH36oBQsWyG63y2azafz48Wrfvr02bdqk8ePHq6CgQIMHD1Z6erry8vKUmpqqtm3bSpI2b96siRMnKiIiQhdeeKGMWv6A5fLly9W1a9eTPqg4HA69/fbb3sdff/21XnvtNYWGhqpJkyaaMGGCzj77bH344Yd644031K1bN0VFRWnt2rWKi4vT+++/79droqOjtXnzZsXFxemVV15RRESECgsLNWnSJO3fv182m00dOnTQ+PHjFRYWpldeeUUffPCBBgwYoNzcXK1fv155eXkKDw9X06ZNlZKSogEDBmjw4MHau3evpk+frt69e1e773PmzKm2f3v37tWkSZPk8XhUWVmpkSNHqkePHqd0XFauXKn169crOTn5pPO1b9++J9Vy7Bpr1aqV+vTp431+27ZtSklJUUFBgf79739Lkl555RV98803stvtcjqdevrpp3XGGWeosLBQU6ZM0e7du2UYhm644QYNGjRI0tEfJ6WmpsowDJWVlem+++5T//79JUnr1q3TzJkzFR4eLsMwdM8996hfv36Sjl6X8+bNk91uV8uWLfXMM8/I4XDUeD6hATXo/AEatREjRhglJSVGaWmp0bNnT+Pzzz83DMMw0tPTjd69exs5OTmGYRjGs88+W2X68LXXXjPuuusuo7y83PB4PMaf//xnY+HChdVuY/r06ca9995rVFRUGKWlpcagQYOqTJmnpqYao0ePNgzDMP7+978bEyZMMAzj6BTlzTff7F2vuinPIUOGGEOHDjXKy8uNnTt3Gh999NFJU53z5883unTpYmzdutUwDMNYvHix0a9fP8Pj8VQ7br9+/YzVq1d7H584RX/i+GPGjPHWX1xcbAwcONBYsGBBldenpaUZhmEYS5cuNa688spq+2QYhvHBBx94p8xXr15tDBo0yLts9erVxgUXXGD88MMPhmEYxsSJE43x48cbhnF0ev2yyy4zlixZYhiGYfzyyy9Gly5dapwivvfee40RI0bUWIdhGMbevXuNxMREY9euXYZhGMbChQuNq666yvvjlNTUVOOSSy4xXC6XUV5ebsyYMcOv11x66aVGbm6uUVFRYVx77bXemnNycqqcQ6NHjzY++uijKo8HDhxoFBUVGfn5+carr75q/O1vfzOGDh3qXWfZsmXGv/71r2r3p7b+lZeXGwMGDDD++c9/GoZhGFu2bDF69eplFBQUGIbh33H59ttvDcMwjOeee84wDN9T9CdeYzNmzKhyXh3/I4UdO3YYV199tVFZWWkYhmFMnTrVe46OHTvWGDVqlGEYhlFQUGBcfvnl3n1MT083du/e7V126aWXen+8dMsttxgbNmzw7u+xc/jHH380evXqZbhcLu/+PP300zXuBxoWU/SoVn5+vqKiohQRESG73a4rr7xSn376qSRp2bJluuyyyxQTEyNJuu6666q8dsGCBbrpppsUGhqq8PBwDRgwQIsXL652O8uWLdPAgQMVEhIiu91e47dXSYqJidHatWu1YcMGhYaG6u9//7vP/ejTp49CQ0PVrl073XbbbdWu07ZtW+/MwTXXXKPffvtNGzZs8Dm2L5WVlVqyZIluueUWSVKTJk10zTXXnHRz2x//+EdJUqdOnXTgwIEax2vfvr0efPBBDR48WLNmzdLPP/9cZXnTpk3Vs2dP71j79++XJG3YsEEul0tXX321JKlz584655xzAtq3Tz75RBdeeKH3G+7AgQOVmZmp9evXe9dJTExUixYtFBoaqlGjRvn1mm7duql58+YKCQlRhw4dvPvQvHlzZWZmatCgQbrrrru0Zs2ak/Y/KSlJkZGRio6O1sMPP6zrrrtOa9as0eHDhyUdPdeuuuqqGvfp+P6dd955Vfq3b98+3XDDDd5lLVu2VHp6uiTfxyUyMlKXXHKJJGn06NF+9ffEa+yaa66pcd2oqCgdOXJEK1asUFlZmUaOHKmLLrpIlZWVWrRokW699VZJR2dg+vXr570WO3TooJdeekl33HGHHnroIeXm5urXX3+VdLTfixYt0pEjR3Teeedp4sSJko5e25dffrlatGgh6ei1v2TJklpnhNBwmKJHtY5NJx67wzwvL0/79u1TSUmJfvvtN5133nnedZs3b17ltYcOHdLbb7/tDbLCwkI1a9as2u1kZWUpNja2xrGOd+2116q8vFzTpk1Tbm6u7r77bg0ePLjW/fDn5+HHbzM0NFTR0dHKysry+TpfsrOz5fF4vG+GktSiRQtv4BxzbHozIiJCZWVl1Y5VUFCgBx54QFOnTtWAAQO0f/9+XXHFFdWOc+JYWVlZatasmUJDQ73LjwVHdc4++2xt37691n07dOhQlf0KDQ1Vs2bNdOjQIe9zJ/ben9fUtA8LFizQhx9+qIULFyomJkYvv/zySR+GTtxeXFyckpKStHjxYt1yyy0KDw+vdSr5+GV2u9277WPH6/jfjvB4PCooKPDruNTlngxf19jxWrdurTfeeENvvvmmJk+erOuuu06PPfaYCgsL5fF4NHPmTDVp0kTS0Q/unTt3lnT0w0bHjh01e/ZsSdLll1+u4uJiSdKsWbOUlpamm266SR07dtTIkSPVuXNnHTp0SBkZGd73hfLycsXFxSknJ6fKsUXjQMCjWv/5z3/08ccfKzw8XJJUVlampKQkpaen64wzzlB2drZ33dzc3Cqvbd26tR566CHvN8bKykrl5+dXu534+Hjl5OTUONbxsrOzdc011+iGG27QL7/8oqFDh+rcc8/VxRdfXMe9PHmb5eXlKigoUHx8vCQpPDy8yq8I1rQf1WnRooXsdruys7PVrl077z60bNnylGv89ddf5Xa7vd/2y8vL/X5tfHy88vPzVV5e7r1hsbY+X3311frXv/6lgoKCKuG0b98+zZw5U6mpqWrdurX325509Nfq8vPz1apVqxrHrctrjtm0aZO6du3q/WDi7/7feOON+utf/+qdPamLVq1aKTw8XO+//773uaKiIoWEhGj79u11Pi618XWNHa+4uFjt27fXa6+9pqysLA0fPlxvvvmmhg0bJrvdrvHjx6tr166Sjl7HJSUlko729PgPLcd/uPR4PEpJSdGIESM0Z84cPfzww/ryyy/VunVr/eEPf/B+o5eOntOEe+PEFD1OkpeX551ePyY8PFyXXXaZPvvsMw0YMEBff/21N5hPvMP+pptu0ieffKKKigpJR799vf7669Vu6+qrr9aSJUtUWVkpj8ej5cuX11jX3Llz9dVXX0mSOnbsqObNm6uyslLS0WnK4uJi7d69W9OnTz+l/c3IyPDeFLd06VKdccYZSkxMlCS1adNGO3bskCStWbPG++Z4TNOmTVVSUqJFixZp2bJlVZaFhIToxhtv9M5klJSU6LPPPtPNN998SvVJUkJCgsLCwry/h/7NN9/4/drExEQ5nU7vj1i2bNmijIyMGtfv2bOnrr/+ek2ePNn7pl9UVKTJkyfrv/7rvyQdnU356aeftGfPHknSp59+qoSEBHXv3r3GcevymmPO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0NfgoK/BQV/N1+h+Bg8AABoOAQ8AgAUR8AAAWBABDwCABRHwAABYEAEPAIAFEfAAAFgQAQ8AgAUR8AAAWBABDwCABRHwAABYEAEPAIAFEfAAAFgQAQ8AgAUR8AAAWBABDwCABRHwAABYkM0wDKOhiwAAAObiGzwAABZEwAMAYEEEPAAAFkTAAwBgQQQ8AAAWRMADAGBBYQ1dQLDt3btXL774os4//3wdOnRIMTExGjZsmHJzczVr1iz94Q9/0O7duzVixAjFxcU1dLm/C5WVlXrwwQfVtWtXlZWVad++fZo2bZpKSkroqQlKSkp022236dJLL9Xo0aM5V01w++23KyIiQpIUEhKid999l76aYNeuXVq6dKkiIiL0ww8/aPjw4TrrrLPoawD279+vu+++W61bt5Ykud1uderUSU899dSp99WwuI0bNxqff/659/HVV19tbN682Rg/fryxdOlSwzAM44svvjBGjhzZUCX+7lRUVBivvvqq9/GDDz5oLFq0iJ6a5NlnnzVSUlKM5557zjAMg76aIDU19aTn6GtgysvLjfvvv9+oqKgwDMMwDh8+bLhcLvoaoOzsbOPbb7/1Pn7ppZeMH374oU59tfwUfdeuXdW/f3/v48rKSkVGRuqrr75S9+7dJUk9evTQV1991VAl/u6EhITo4YcfliSVl5fr8OHDatu2LT01wcKFC9WjRw+1adPG+xx9Ddz27duVlpaml19+Wenp6ZLoa6A2b94swzD0/vvv64033tCXX36p2NhY+hqg2NhYXXLJJZIkj8ejn376ST179qxTXy0/RX+8zz//XJdeeqnatWsnl8ulqKgoSZLD4VBeXp7Ky8sVFnZatSQg33zzjd555x317dtXF154IT0N0M6dO7Vr1y6NGDFC27Zt8z5PXwN3//33q2vXrqqoqNCdd96pqKgo+hqgzMxMbdiwQbNnz1Z0dLRGjhyp8PBw+mqiJUuW6Nprr5VUt/cBy3+DP2b16tX6/vvv9fTTT0uSnE6nCgsLJR39GUfz5s05AU/RH//4R7311lvav3+/5s6dS08D9Pnnn8tutystLU1r167Vpk2b9M4779BXE3Tt2lWSFBoaqp49e+r777+nrwGKiorSueeeq+joaEnSRRddpDVr1tBXEy1btkzXXHONpLpl1mnR9fT0dP34448aO3asfvvtN2VmZqpPnz5av369WrdurXXr1qlPnz4NXebvxs6dO7V//3717dtXktSmTRvt37+fngbooYce8v67tLRURUVFuvvuu7Vr1y76GoCMjAytW7dOt912myRpz549+tOf/sT5GqBu3bopNzdXFRUVCg0NVWZmps455xzZ7Xb6aoLVq1ere/fuCg8Pl6Q6na+W/89mfvrpJ911113q0qWLJKmoqEh33nmnLr/8cj3//PNKSEjQvn379OSTT3Knp5/27t2rGTNm6Pzzz1d5ebkyMjI0btw4hYeH01MTLF++XHPnzlVZWZnuvPNOXXrppfQ1AIcPH9bkyZN1/vnny+12q7y8XGPGjFF+fj59DdDnn3+u1atXKzY2VgcPHtT48eNVUlJCX00wYsQIjRs3Ti1atJAk5ebmnnJfLR/wAACcjk6bn8EDAHA6IeABALAgAh4AAAsi4AEAsCACHgAACyLgAXg9+OCDmjBhQkOXAcAEBDwASVJWVpYOHjyopUuXqri4uKHLARAgfg8egCQpLS1NPXr00KhRo/TYY4/pxhtvlCS9//77WrFihTp06CCbzaYVK1bo4Ycf1qBBg/Tpp59q1apViomJ0eHDh5WSkqL4+PiG3REAkvgGD+B/rV+/Xj179tSNN96o+fPnS5K2bdum119/XW+++aYmTJggh8Ohc845R4MGDdKuXbv06quvavLkyRo5cqR69eqlmTNnNvBeADjmtPhb9ABq9+OPPyoxMVGSdPPNN+v111/Xnj179P3336tLly5q0qSJJKlnz55at26dJGnVqlUqLS3VpEmTJEmFhYUqKytriPIBVIOAB6CFCxeqsrJSU6dOlSTFx8dr/vz5cjqdstls1b7GMAydc845mjx5sve5Y//bFYCGR8ADp7nCwkLvfxByTLdu3TR9+nS9+eabSktLU0lJiZo0aaK1a9d617nkkkv06quvyu12y+Fw6JdfftG8efM0ZcqUhtgNACcg4IHTWElJiZ588kkVFhbq8OHDatmypSRpx44d+u2335SWlqbk5GTdd9996ty5s0JCQrz/fWW7du00fvx4paSk6KyzzlJ+fr5GjRrVkLsD4DjcRQ+gVl999ZX3/56eO3euDhw4oJSUlAauCoAvfIMHUKuPPvpI33zzjWw2m/Ly8jRu3LiGLgmAH/gGDwCABfF78AAAWBABDwCABRHwAABYEAEPAIAFEfAAAFgQAQ8AgAX9fyatLz9NCo5PAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_5_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "# Common imports\n", + "import os\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.linear_model import LinearRegression, Ridge, Lasso\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.utils import resample\n", + "from sklearn.metrics import mean_squared_error\n", + "from IPython.display import display\n", + "from pylab import plt, mpl\n", + "plt.style.use('seaborn')\n", + "mpl.rcParams['font.family'] = 'serif'\n", + "\n", + "# Where to save the figures and data files\n", + "PROJECT_ROOT_DIR = \"Results\"\n", + "FIGURE_ID = \"Results/FigureFiles\"\n", + "DATA_ID = \"DataFiles/\"\n", + "\n", + "if not os.path.exists(PROJECT_ROOT_DIR):\n", + " os.mkdir(PROJECT_ROOT_DIR)\n", + "\n", + "if not os.path.exists(FIGURE_ID):\n", + " os.makedirs(FIGURE_ID)\n", + "\n", + "if not os.path.exists(DATA_ID):\n", + " os.makedirs(DATA_ID)\n", + "\n", + "def image_path(fig_id):\n", + " return os.path.join(FIGURE_ID, fig_id)\n", + "\n", + "def data_path(dat_id):\n", + " return os.path.join(DATA_ID, dat_id)\n", + "\n", + "def save_fig(fig_id):\n", + " plt.savefig(image_path(fig_id) + \".png\", format='png')\n", + "\n", + "infile = open(data_path(\"chddata.csv\"),'r')\n", + "\n", + "# Read the chd data as csv file and organize the data into arrays with age group, age, and chd\n", + "chd = pd.read_csv(infile, names=('ID', 'Age', 'Agegroup', 'CHD'))\n", + "chd.columns = ['ID', 'Age', 'Agegroup', 'CHD']\n", + "output = chd['CHD']\n", + "age = chd['Age']\n", + "agegroup = chd['Agegroup']\n", + "numberID = chd['ID'] \n", + "display(chd)\n", + "\n", + "plt.scatter(age, output, marker='o')\n", + "plt.axis([18,70.0,-0.1, 1.2])\n", + "plt.xlabel(r'Age')\n", + "plt.ylabel(r'CHD')\n", + "plt.title(r'Age distribution and Coronary heart disease')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What we could attempt however is to plot the mean value for each group." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_7_0.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "agegroupmean = np.array([0.1, 0.133, 0.250, 0.333, 0.462, 0.625, 0.765, 0.800])\n", + "group = np.array([1, 2, 3, 4, 5, 6, 7, 8])\n", + "plt.plot(group, agegroupmean, \"r-\")\n", + "plt.axis([0,9,0, 1.0])\n", + "plt.xlabel(r'Age group')\n", + "plt.ylabel(r'CHD mean values')\n", + "plt.title(r'Mean values for each age group')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now trying to find a function $f(y\\vert x)$, that is a function which gives us an expected value for the output $y$ with a given input $x$.\n", + "In standard linear regression with a linear dependence on $x$, we would write this in terms of our model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(y_i\\vert x_i)=\\beta_0+\\beta_1 x_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This expression implies however that $f(y_i\\vert x_i)$ could take any\n", + "value from minus infinity to plus infinity. If we however let\n", + "$f(y\\vert y)$ be represented by the mean value, the above example\n", + "shows us that we can constrain the function to take values between\n", + "zero and one, that is we have $0 \\le f(y_i\\vert x_i) \\le 1$. Looking\n", + "at our last curve we see also that it has an S-shaped form. This leads\n", + "us to a very popular model for the function $f$, namely the so-called\n", + "Sigmoid function or logistic model. We will consider this function as\n", + "representing the probability for finding a value of $y_i$ with a given\n", + "$x_i$.\n", + "\n", + "\n", + "## The logistic function\n", + "\n", + "Another widely studied model, is the so-called \n", + "perceptron model, which is an example of a \"hard classification\" model. We\n", + "will encounter this model when we discuss neural networks as\n", + "well. Each datapoint is deterministically assigned to a category (i.e\n", + "$y_i=0$ or $y_i=1$). In many cases, and the coronary heart disease data forms one of many such examples, it is favorable to have a \"soft\"\n", + "classifier that outputs the probability of a given category rather\n", + "than a single value. For example, given $x_i$, the classifier\n", + "outputs the probability of being in a category $k$. Logistic regression\n", + "is the most common example of a so-called soft classifier. In logistic\n", + "regression, the probability that a data point $x_i$\n", + "belongs to a category $y_i=\\{0,1\\}$ is given by the so-called logit function (or Sigmoid) which is meant to represent the likelihood for a given event," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(t) = \\frac{1}{1+\\mathrm \\exp{-t}}=\\frac{\\exp{t}}{1+\\mathrm \\exp{t}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that $1-p(t)= p(-t)$.\n", + "\n", + "## Examples of likelihood functions used in logistic regression and nueral networks\n", + "\n", + "\n", + "The following code plots the logistic function, the step function and other functions we will encounter from here and on." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_13_0.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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eWHp/+7gKF3fLoz4+7z77ru67bbbNGzYsFCXElb++te/6rPPPtP8+fNVWVkZ6nI6DUHeia62C95f/vIXRUZG6o033lBDQ4POnTunoqIife9739OQIUO6tkiHu9ZOg5J09uxZPfPMM1q2bJni4+O7pqgwd3kHx8vYhTG4/vznP2vv3r1asmRJqEsJO++++67cbreKioq0f/9+nT9/Xi+//LLuu+++UJcWEIK8C9x8883mzWFOnDiht956S7m5uSGuKvycPn1ay5Yt0xNPPKF+/fpp+/btmjZtWqjLcryRI0equrpara2tcrvd8nq9+slPfhLqssJSSUmJPvzwQz355JM6deqUqqurzRtTIXBz5841fz537pyampocH+ISG8J0qaqqKr3++ut67bXXlJubq/vuu4/ruJ0oJydHFy5cMEfisbGxWrduXWiLChPvv/++tm/froSEBPXs2ZPV1EFw8OBB3X333ebitqamJv30pz/VD3/4wxBXFn62b9+uV199VefPn9dPf/pT3XnnnaEuKSAEOQAADsaqdQAAHIwgBwDAwQhyAAAcjCAHAMDBCHIAAByMIAcAwMEIcgAAHIyd3QB0aMuWLdq5c6f69eunhoYGvfPOOyouLta3vvWtUJcGdHtsCAOgQ+Xl5YqPj9fQoUOVl5entLQ0/fM//3OoywIgghzAdXjzzTe1adMmvfHGG+ZtTQGEFlPrACw5evSoCgsL9eqrrxLigI2w2A1Ah86fP6/HH39ceXl5GjZsmD799FN9+OGHoS4LgBiRA7Dg5Zdf1qeffqpPP/1Uv/jFL/TFF19oypQpGjNmTKhLA7o9rpEDAOBgTK0DAOBgBDkAAA5GkAMA4GAEOQAADkaQAwDgYAQ5AAAORpADAOBgBDkAAA72/wEQhIODjFGlAAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_13_1.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAFnCAYAAABdOssgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA3XElEQVR4nO3deXhU5d0//vesWWayTCaTQEI2tgCBCAhCWhAQlIor8NWi4vLIV6wtoKUUEBeoP+Upmz9aKVUoKo9itVaWIn0USsuihEUTtpCELQlZSEgmmSQzk8x6vn+EjEQYMmGSnFner+vyIjNzz8xnPiZ559znnPtIBEEQQERERH5JKnYBREREdOsY5ERERH6MQU5EROTHGORERER+jEFORETkxxjkREREfoxBThSg5syZgyFDhuDIkSMeP2f16tWYNm0aHnjgAezdu7cLq2vLYrFg3LhxaGpq6rb3JAoUDHIiH/Lkk09i69atnfJa69atg06n83j8pUuXsGXLFnz66ad45513EBYW1il13MiPP2dISAh27tzZpe9JFKjkYhdARL6hsrISGo0GSqUSqampSE1N7db3j4yM7Nb3IwoUDHIiH7FmzRrk5+ejuroa27Ztw6xZszBy5EgsW7YMZWVlkEgk6NevH1577TXI5XKsW7cOf/3rXzF58mQ0NDSgoKAAGRkZWLFiRZvXPXHiBDZv3oxz587hmWeewRNPPHHde588eRJvvfUWqqur8eSTT2LSpEnYv38/vv32W+zduxexsbF46qmncOLECRQWFsJqtWLWrFk4evQoXn/9dezbtw9FRUVYtGgR7r77bgCAyWTCf//3f+PChQsAgLS0NCxYsAAffPDBdZ9z586d2L17N/7yl79g1KhREAQBmzZtwu7duyGTyZCamopXXnkFarUay5Ytw5dffomZM2fi4sWLKCwsxOTJkzF//vyu/59E5IsEIvIZM2fOFL744gvX7bq6OmH79u2u24sWLRL+9re/tbn90EMPCRaLRWhubhbuuOMOIScnx/X4hAkThKVLlwqCIAgnTpwQhg4dKthsthu+9+HDh4UJEya0ua9///5CaWmpIAiCUFpaKvTv3/+6xzds2CAIgiDs2rVLuOeee1yPvfrqq8LixYsFQRAEh8MhPP/888Lhw4dv+Dlba219fNu2bcKUKVMEs9ksCIIgLFmyRHj55Zfb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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_13_2.png" + } + }, + "output_type": "display_data" + } + ], + "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", + "\"\"\"tanh Function\"\"\"\n", + "z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)\n", + "t = numpy.tanh(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('tanh function')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We assume now that we have two classes with $y_i$ either $0$ or $1$. Furthermore we assume also that we have only two parameters $\\beta$ in our fitting of the Sigmoid function, that is we define probabilities" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "p(y_i=1|x_i,\\boldsymbol{\\beta}) &= \\frac{\\exp{(\\beta_0+\\beta_1x_i)}}{1+\\exp{(\\beta_0+\\beta_1x_i)}},\\nonumber\\\\\n", + "p(y_i=0|x_i,\\boldsymbol{\\beta}) &= 1 - p(y_i=1|x_i,\\boldsymbol{\\beta}),\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{\\beta}$ are the weights we wish to extract from data, in our case $\\beta_0$ and $\\beta_1$. \n", + "\n", + "Note that we used" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(y_i=0\\vert x_i, \\boldsymbol{\\beta}) = 1-p(y_i=1\\vert x_i, \\boldsymbol{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to define the total likelihood for all possible outcomes from a \n", + "dataset $\\mathcal{D}=\\{(y_i,x_i)\\}$, with the binary labels\n", + "$y_i\\in\\{0,1\\}$ and where the data points are drawn independently, we use the so-called [Maximum Likelihood Estimation](https://en.wikipedia.org/wiki/Maximum_likelihood_estimation) (MLE) principle. \n", + "We aim thus at maximizing \n", + "the probability of seeing the observed data. We can then approximate the \n", + "likelihood in terms of the product of the individual probabilities of a specific outcome $y_i$, that is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "P(\\mathcal{D}|\\boldsymbol{\\beta})& = \\prod_{i=1}^n \\left[p(y_i=1|x_i,\\boldsymbol{\\beta})\\right]^{y_i}\\left[1-p(y_i=1|x_i,\\boldsymbol{\\beta}))\\right]^{1-y_i}\\nonumber \\\\\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "from which we obtain the log-likelihood and our **cost/loss** function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathcal{C}(\\boldsymbol{\\beta}) = \\sum_{i=1}^n \\left( y_i\\log{p(y_i=1|x_i,\\boldsymbol{\\beta})} + (1-y_i)\\log\\left[1-p(y_i=1|x_i,\\boldsymbol{\\beta}))\\right]\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Reordering the logarithms, we can rewrite the **cost/loss** function as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathcal{C}(\\boldsymbol{\\beta}) = \\sum_{i=1}^n \\left(y_i(\\beta_0+\\beta_1x_i) -\\log{(1+\\exp{(\\beta_0+\\beta_1x_i)})}\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The maximum likelihood estimator is defined as the set of parameters that maximize the log-likelihood where we maximize with respect to $\\beta$.\n", + "Since the cost (error) function is just the negative log-likelihood, for logistic regression we have that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathcal{C}(\\boldsymbol{\\beta})=-\\sum_{i=1}^n \\left(y_i(\\beta_0+\\beta_1x_i) -\\log{(1+\\exp{(\\beta_0+\\beta_1x_i)})}\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This equation is known in statistics as the **cross entropy**. Finally, we note that just as in linear regression, \n", + "in practice we often supplement the cross-entropy with additional regularization terms, usually $L_1$ and $L_2$ regularization as we did for Ridge and Lasso regression.\n", + "\n", + "\n", + "The cross entropy is a convex function of the weights $\\boldsymbol{\\beta}$ and,\n", + "therefore, any local minimizer is a global minimizer. \n", + "\n", + "\n", + "Minimizing this\n", + "cost function with respect to the two parameters $\\beta_0$ and $\\beta_1$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\beta_0} = -\\sum_{i=1}^n \\left(y_i -\\frac{\\exp{(\\beta_0+\\beta_1x_i)}}{1+\\exp{(\\beta_0+\\beta_1x_i)}}\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\beta_1} = -\\sum_{i=1}^n \\left(y_ix_i -x_i\\frac{\\exp{(\\beta_0+\\beta_1x_i)}}{1+\\exp{(\\beta_0+\\beta_1x_i)}}\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now define a vector $\\boldsymbol{y}$ with $n$ elements $y_i$, an\n", + "$n\\times p$ matrix $\\boldsymbol{X}$ which contains the $x_i$ values and a\n", + "vector $\\boldsymbol{p}$ of fitted probabilities $p(y_i\\vert x_i,\\boldsymbol{\\beta})$. We can rewrite in a more compact form the first\n", + "derivative of cost function as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}} = -\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{p}\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we in addition define a diagonal matrix $\\boldsymbol{W}$ with elements \n", + "$p(y_i\\vert x_i,\\boldsymbol{\\beta})(1-p(y_i\\vert x_i,\\boldsymbol{\\beta})$, we can obtain a compact expression of the second derivative as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial^2 \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}\\partial \\boldsymbol{\\beta}^T} = \\boldsymbol{X}^T\\boldsymbol{W}\\boldsymbol{X}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Within a binary classification problem, we can easily expand our model to include multiple predictors. Our ratio between likelihoods is then with $p$ predictors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\log{ \\frac{p(\\boldsymbol{\\beta}\\boldsymbol{x})}{1-p(\\boldsymbol{\\beta}\\boldsymbol{x})}} = \\beta_0+\\beta_1x_1+\\beta_2x_2+\\dots+\\beta_px_p.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we defined $\\boldsymbol{x}=[1,x_1,x_2,\\dots,x_p]$ and $\\boldsymbol{\\beta}=[\\beta_0, \\beta_1, \\dots, \\beta_p]$ leading to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(\\boldsymbol{\\beta}\\boldsymbol{x})=\\frac{ \\exp{(\\beta_0+\\beta_1x_1+\\beta_2x_2+\\dots+\\beta_px_p)}}{1+\\exp{(\\beta_0+\\beta_1x_1+\\beta_2x_2+\\dots+\\beta_px_p)}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Till now we have mainly focused on two classes, the so-called binary\n", + "system. Suppose we wish to extend to $K$ classes. Let us for the sake\n", + "of simplicity assume we have only two predictors. We have then following model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\log{\\frac{p(C=1\\vert x)}{p(K\\vert x)}} = \\beta_{10}+\\beta_{11}x_1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\log{\\frac{p(C=2\\vert x)}{p(K\\vert x)}} = \\beta_{20}+\\beta_{21}x_1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and so on till the class $C=K-1$ class" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\log{\\frac{p(C=K-1\\vert x)}{p(K\\vert x)}} = \\beta_{(K-1)0}+\\beta_{(K-1)1}x_1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the model is specified in term of $K-1$ so-called log-odds or\n", + "**logit** transformations.\n", + "\n", + "\n", + "\n", + "In our discussion of neural networks we will encounter the above again\n", + "in terms of a slightly modified function, the so-called **Softmax** function.\n", + "\n", + "The softmax function is used in various multiclass classification\n", + "methods, such as multinomial logistic regression (also known as\n", + "softmax regression), multiclass linear discriminant analysis, naive\n", + "Bayes classifiers, and artificial neural networks. Specifically, in\n", + "multinomial logistic regression and linear discriminant analysis, the\n", + "input to the function is the result of $K$ distinct linear functions,\n", + "and the predicted probability for the $k$-th class given a sample\n", + "vector $\\boldsymbol{x}$ and a weighting vector $\\boldsymbol{\\beta}$ is (with two\n", + "predictors):" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(C=k\\vert \\mathbf {x} )=\\frac{\\exp{(\\beta_{k0}+\\beta_{k1}x_1)}}{1+\\sum_{l=1}^{K-1}\\exp{(\\beta_{l0}+\\beta_{l1}x_1)}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is easy to extend to more predictors. The final class is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(C=K\\vert \\mathbf {x} )=\\frac{1}{1+\\sum_{l=1}^{K-1}\\exp{(\\beta_{l0}+\\beta_{l1}x_1)}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and they sum to one. Our earlier discussions were all specialized to\n", + "the case with two classes only. It is easy to see from the above that\n", + "what we derived earlier is compatible with these equations.\n", + "\n", + "To find the optimal parameters we would typically use a gradient\n", + "descent method. Newton's method and gradient descent methods are\n", + "discussed in the material on [optimization\n", + "methods](https://compphysics.github.io/MachineLearning/doc/pub/Splines/html/Splines-bs.html).\n", + "\n", + "## Wisconsin Cancer Data\n", + "\n", + "We show here how we can use a simple regression case on the breast\n", + "cancer data using Logistic regression as our algorithm for\n", + "classification." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(426, 30)\n", + "(143, 30)\n", + "Test set accuracy with Logistic Regression: 0.95\n", + "Test set accuracy Logistic Regression with scaled data: 0.96\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):\n", + "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n", + "\n", + "Increase the number of iterations (max_iter) or scale the data as shown in:\n", + " https://scikit-learn.org/stable/modules/preprocessing.html\n", + "Please also refer to the documentation for alternative solver options:\n", + " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n", + " n_iter_i = _check_optimize_result(\n" + ] + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.linear_model import LogisticRegression\n", + "\n", + "# Load the data\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "# Logistic Regression\n", + "logreg = LogisticRegression(solver='lbfgs')\n", + "logreg.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Logistic Regression: {:.2f}\".format(logreg.score(X_test,y_test)))\n", + "#now scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "# Logistic Regression\n", + "logreg.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy Logistic Regression with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition to the above scores, we could also study the covariance (and the correlation matrix).\n", + "We use **Pandas** to compute the correlation matrix." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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KitLm/Q5X+ijsuQwANIZFXNzczRt2lQro2yGmqPKmoP0ua+zsrKwcOFCfPnll6hbty4Aw+jrouIG9LuvK1WqhBkzZmDlypX45JNPkJ2dbRB9XVTcgPr62iCLYzc3Nzx69AhZWVkAgMuXL6N79+5ISkqSTs91794dV65cAQDcvn0bTZo0gaWlJdq1a4eHDx9K23r06BHq1aun9TYUpSztiomJgb29vbQte3t7aTu6pEqblOnSpQuuX78OIQQA4MqVK+jatavGY1ZFWdoFAL///jvi4+MxceJE3L59GxEREZoOWSVladfcuXMxduxYjB07Fo0bN0anTp3wn//8RxthF6ssbdLnfKGPypLDzp8/X+jU7YMHD1CnTh29iFkZXeaossStz32dkZEBb29vjBo1Ci1atMCRI0cA6H9fK4tbn/t6y5YtUn86OjoiMTERmZmZet/XyuJWZ1/LRMEeDMzZs2dx5MgRVKtWDSYmJvD09MSKFStgbW2NsWPHIiMjAz4+PrC3t0dkZCTGjRsnXRG9c+dOPHz4ECYmJsjIyICXl5de3NUBKH270tLSsGDBAtSqVQtGRkaIjo7GokWL9GJ+5OvaJITApk2bsHv3brz55pvo378/unTpAiD/itmwsDDI5XLUq1dPr+5WUdp2HT9+HF5eXmjWrBkAICkpCfPmzUO7du103KJ8ZXm/AGD37t3YuXMnHBwcMHToUHTr1k2HrclXljbpc77QR6XNYbdv38b69evRvHlzPHnyBA4ODhg3bpxexKyvOaq0cetzX3t6euLOnTuoXr06ACAtLU06A6XPfa0sbn3u602bNiE2NhY1a9ZEeHg4WrdujcGDBwPQ775WFrc6+9pgi2MiIiIiInXj8AcRERERkQKLYyIiIiIiBRbHREREREQKLI6JiIiIiBRYHBMRERERKbA4JiIiIiJSYHFMRERERKTA4piIiIiISIHFMRERERGRAotjIiIiIiIFFsdERERERAosjomIiIiIFFgcExEREREpsDgmIiIiIlJgcUxEREREpMDimIiIiIhIgcUxEREREZECi2MiIiIiIgUWx0RERERECiyOiYiIiIgUWBwTERERESmwOCYiIiIiUmBxTERERESkwOKYiIiIiEiBxTERERERkQKLYyIiIiIiBRbHRBoWHR2N999/X9dhEBHRS5ifqSgyIYTQdRBE5V1y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6uDx48eYNWtWia/+Lm1cx48fh5eXlzTfKikpCfPmzUO7du0wa9Ys2NnZoVKlSoiIiMDs2bNhZ2en8Zhu376N9evXo3nz5njy5AkcHBwwbtw4nfdVgc8//xwbN26U5tAC0HhfeXp64s6dO6hevToAIC0tDXv27AGg2+NKWVy6PK6UxaTr46q49xDQzXG1adMmxMbGombNmggPD0fr1q0xePBgAJo9rrThdW3PyMiAj48P7O3tERkZiXHjxqF+/frFHieGorRtB/KnQT18+BAmJibIyMiAl5eXwdy5oCztBor+GzQUpW17WloaFixYgFq1asHIyAjR0dFYtGiRwcw1L227ExISMGXKFLRr1w45OTno2LEj2rVrp+vm6Fypi2MiIiIiovLGML4GExERERFpAYtjIiIiIiIFFsdERERERAosjomIiIiIFFgcExEREREpsDgmIiIiIlJgcUxEREREpMDimIiIiIhIgcUxEREREZECi2MiIiIiIgUWx0RERERECiyOiYiIiIgUWBwTERERESmwOCYiIiIiUmBxTERERESkwOKYiIiIiEiBxTERERERkQKLYyIiIiIiBRbHREREREQKLI6JiIiIiBRYHBMRERERKbA4JiIiIiJSYHFMRERERKTA4piIiIiISIHFMRERERGRAotjIiIiIiIFFsekd6ZMmYI33ngDwcHBAIDo6Gi8//77Oo6KiIiIKgIWx6R3fH19YW9vLz2uXbs2fv31Vx1GRESkfzw8PLB3794ybyc6OhouLi5qiIiofGBxTAahSpUqug6BiIiIKgBjXQdA5cuuXbvg5+eHli1bwsLCApcuXYKdnR02b96MhQsXIjo6GjKZDI0aNcL8+fNhbJx/CJ46dQorV66EtbU1OnXqVGibn376KYKCgnDixAlERUVh0aJFsLe3x/bt23Hs2DEsW7YMbdu2xfLlywEA69evx5kzZ2BqagpbW1vMmTMH1atXfyXW+Ph4eHt7IzExEbm5ufjss8/w9ttv4+rVq5g/fz6eP3+OYcOG4fjx47hy5QoWL15cZNu2b9+O06dPY+PGjZDL5ahUqRIWLFgAJycnpf2xfft2zb8ZRFRurVq1Cjdv3kRcXBwCAgIwZswYdO/eHWfOnMH69ethamoKCwsLLFq0CA4ODhg6dCguX76MDz74ANOmTcOoUaNgYmKClStXYsGCBQDy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6dOnkZeXV6ZxGoO5HaviMufjFRERgcjISMyfP/+558z5eBXVLnM9Xl27dsXWrVtx+/Zt7Nixo9Bz5nysSB6K+syUJ0V9zizdkSNHYGtri8DAQJw9exYxMTH45ptvTB2WSbi7uwMAFAoFXn31VURGRhpkuwYpjj08PHD37l3k5OQAAM6dOwdPT0+kpqZKpww9PT1x/vx5AMCVK1fQrFkzWY+WFKdNa9asgVqtBgDcvHkTderUgUKhMFnMpWHOx6oolnC8QkND8ccff2DBggW4f/8+zp8/bxHH60XtMrfjde3atUKn9erUqYPbt29bxLEiedD2mSlvdH3OypOpU6fC29sbkyZNQrt27eDu7o7333/f1GGVuevXr+Onn36SHt+6dQv16tUzyLathBDCEBs6ceIEDh06hKpVq0KpVMLb2xurV69GlSpVMGnSJGRlZcHPzw/VqlVDfHw8Jk+eLPt5Qi9q0/bt2/H333+jTp06uHr1KkaPHg0PDw9Th/1CUVFRCA4ORnh4OEaMGIFx48bB39/frI8V8OJ2mePxio2NxahRo9CyZUsAQGZmJkaOHIlr166Z9fEqTrvM7XjFx8dj9erVaN68OdRqNa5fv46FCxdi27ZtZn2s5EDbZ7u83Z1A12dm6NChJo6sbOn6nFWrVs3UoZW5Q4cOYceOHcjNzcXIkSPRv39/U4dUppKSkrB8+XI0b94c6enpUKvV8PX1hbV16cd9DVYcExERERGZO/4ICBERERGRBotjIiIiIiINFsdERERERBosjomIiIiINFgcExERERFpsDgmIiIiItJgcUxEREREpMHimIiIiIhIg8UxEREREZEGi2MiIiIiIg0Wx0REREREGiyOiYiIiIg0WBwTEREREWmwOCYiIiIi0mBxTERERESkweKYiIiIiEiDxTERERERkQaLYyIiIiIiDRbHREREREQaLI6JiIiIiDRYHBMRERERabA4JiIiIiLSYHFMRERERKTB4piIiIiISIPFMRERERGRBotjKnO3b99G3759TR0GERER0XNYHFOZq1OnDn788UejbLtnz56IjIw0yraJiIjI8rE4JpOoVKmSqUMgIiIieo6VEEKYOgiSr4CAAPzwww/w9PRESkoKkpKS4OLiglWrVsHZ2RkAEB4ejoCAANja2sLR0RHLli2Dm5ub9NrevXsjNTUV58+fR/v2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kJycbKow9VKc97g5ti88PBzffPMNPD090apVK4to27Vr13Djxg3Mnj0bV65ckZZbQtsKaKtbLKl9TzPqyLGLiwsyMjKkx+np6XBxcTHmLs2Gu7s7AEChUODVV19FZGSkiSOSj6ffN+np6ahcuTKLHAAvv/wyHBwcAAAdO3ZERESEiSMynYiICERGRmL+/PkA+J4pLkvOybreA87Ozs+12dnZ2VRhFltx3+Pm2L6uXbti69atuH37Nnbs2GERbTty5AhsbW0RGBiIs2fPIiYmBt98841FtK2AtrrFktr3NKMWxx4eHrh79y5ycnIAAOfOnYOnp6cxd2kWrl+/jp9++kl6fOvWLdSrV8+EEclL9+7dcf78eQBP3jPdu3c3cUTy4OfnJ/371q1bqF+/vgmjMZ3Q0FD88ccfWLBgAe7fv4/z58/zPVNMlpyTdb0HevTogQsXLgB4cir/+vXrsj9Lp8973Jzad+3atULTeOrUqYPbt29bRNumTp0Kb29vTJo0Ce3atYO7uzvef/99i2gboLtusZT2PctKCCGMuYMTJ07g0KFDqFq1KpRKpVleGW1oSUlJWL58OZo3b4709HSo1Wr4+vrC2rr83VkvKioKwcHBCA8Px4gRIzBu3DhkZWXh888/R61atZCQkICPPvqo3N15QFu/bNiwAY8fP4aLiwuuXr2KGTNmoGHDhqYOtUzFxsZi1KhRaNmyJQAgMzMTI0eORM+ePcv9e6a4LCEn65s3tmzZgrS0NDx8+BDdunWT9VXzJXmPm0v74uPjsXr1ajRv3lwqmBYuXAilUmn2bStw6NAh7NixA7m5uRg5ciS6dOliEW3TVbekpaVZRPueZfTimIiIiIjIXJS/oUoiIiIiIh1YHBMRERERabA4JiIiIiLSYHFMRERERKTB4piIiIiISIPFMRERERGRBotjIiIiIiINFsdERERERBosjomIiIiINFgcExERERFpsDgmIiIiItJgcUxEREREpMHimIiIiIhIg8UxEREREZEGi2MiIiIiIg0Wx0REREREGiyOiYiIiIg0WBwTEREREWmwOCYiIiIi0mBxTERERESkweKYiIiIiEiDxTERERERkQaLYyIiIiIiDRbHREREREQaLI6JiIiIiDRYHBMRERERabA4JllbunQpXn31Vezdu9fUoRAREVE5wOKYZGXUqFGFCuGlS5fi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abA4JiIiIiLSYHFMRERERKTB4piIiIiISIPFMRERERGRBotjIiIiIiINFsdERERERBosjomIiIiINFgcExERERFpsDgmIiIiItJgcUxEREREpMHimIiIiIhIg8UxEREREZEGi2MiIiIiIg0Wx0REREREGiyOiYiIiIg0WBwTEREREWmwOCYiIiIi0mBxTERERESkweKY6AVmzJiBVq1aITIyEgBw+/Zt9O3b18RRERERkTGwOCaztnfvXowaNcqo+/D390e1atWkx3Xq1MGPP/5o1H0SEclNcfLtqFGjsHfv3lLv6/bt22jatGmpt0NUEiyOiUqgUqVKpg6BiIiIjMDG1AGQZZg3bx6CgoLw6quv4ttvv0VCQgK8vLwQHh6Oe/fuYeLEicjJycHOnTtha2uLFStWIC4uDvn5+ejVqxcmTJiA3NxcjB8/HlFRUVi8eDGOHz+OyMhIbNmyBTdv3sSePXtQoUIF2NvbY+7cuVCpVAgMDMSDBw8watQoNGnSBIsWLSoU165du7Bp0ya0bt0ajo6OOHv2LFxdXfHVV19h6dKluH37NqysrPDyyy9j0aJFsLF58pEICwvD559/jipVqqBz586FtjlmzBhERETg2LFjSEhIwLJly1CtWjV89913OHLkCFauXIn27dtj1apVAICAgACEh4fD1tYWLi4umD9/PqpXr142B4aILI5c8+2aNWtw6dIl3L9/H0FBQRg/fjw8PT0RHh6OgIAA2NrawtHREcuWLYObmxtGjBiBc+fOoX///vjoo48wduxYKJVKfP7551i8eDEASCPV06ZNKzLXHjt2DJ999hlcXV3RqlUrnDp1Cmlpafjtt98QGxuLlStXwsrKCgqFAosXL0bjxo3L/LiRGRFEBtK9e3dx7tw5IYQQ27ZtE6+88oq4ePGiEEKIwMBA6d++vr7Cx8dHCCHE48ePRf/+/UVQUJC0nSZNmoj169cLIYTYt2+fiIqKEu3btxfZ2dlCCCG++eYbsWfPHiGEEHv27BFeXl5FxuXv7y9ef/11oVKphFqtFqtXrxYpKSkiODhYWsfHx0fs3r1bCCGESqUSHh4e4uzZs0IIIY4ePSqaN28uIiIiCsWYkJCgNQZ/f3+pfX///bfo06ePyM/PF0II8emnnxbaDhFRScg133p5eUnrCyFEfHy88PDwENevXxdCCPH999+LMWPG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sZK72NhYjBo1Ci1btgQAZGZmYuTIkejZs6fZHiddbYqLizPb4xQfH4/Vq1ejefPmUKvVuH79OhYuXAilUmmWx0lXe7799luzPUZyI+dcJee8I/f8IfdcYA6f7UOHDmHHjh3Izc3FyJEj0aVLF1n0nbbYrly5Iot+S0pKwvLly9G8eXOkp6dDrVbD19cXaWlpRu07iyyOiYiIiIhKotxMqyAiIiIiehEWx0REREREGiyOiYiIiIg0WBwTEREREWmwOCYiIiIi0mBxTERERESkweKYiIiIiEiDxTERERERkQaLYyIiIiIiDRbHREREREQaLI6JiIiIiDRYHBMRERERabA4JiIiIiLSYHFMRERERKTB4piIiIiISIPFMRERERGRBotjIiIiIiINFsdERERERBosjomIiIiINFgcExERERFpsDgmIiIiItJgcUxEREREpMHimIiIiIhIg8UxEREREZEGi2MiIiIiIg0Wx0REREREGiyOiQDcvn0bffv2NXUYREREZGIsjkl29u7di1GjRpXpPuvUqYMff/zRKNvu2bMnIiMjjbJtIiK5MEXuJjIGFsdEGpUqVTJ1CERERGRiVkIIYeogSJ7mzZuHoKAgvPrqq/j222+RkJAALy8vhIeH4969e5g4cSJycnKwc+dO2NraYsWKFYiLi0N+fj569eqFCRMmIDc3F+PHj0dUVBQWL16M48ePIzIyElu2bMHNmzexZ88eVKhQAfb29pg7dy5UKhUWL16MBw8e4JVXXkGTJk2waNGiQnEFBATghx9+gKenJ1JSUpCUlAQXFxesWrUKzs7OAIDw8HAEBATA1tYWjo6OWLZsGdzc3KTX9u7dG6mpqTh//jzat2+Pf/75BxERETh27Bisra0xc+ZMREdHY+XKlQgODoZKpcK6desQEhKCkydPwsXFBQEBAbCzsytyf76+vjhw4AAaNWqESpUqwcfHBy1btkRwcLDUb25ubli2bBmcnJywdOlSHDhwAF5eXrh27RrOnj2L9957D9OnTy/z409E5kmuuRsANmzYgN9//x12dnaoUKECli9fDjc3Nxw7dgyfffYZXF1d0apVK5w6dQppaWn47bffEBsbi5UrV8LKygoKhQKLFy9G48aNi9weUakIoiJ0795dnDt3TgghxLZt28Qrr7wiLl68KIQQIjAwUPq3r6+v8PHxEUII8fjx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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_51_0.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_51_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.linear_model import LogisticRegression\n", + "cancer = load_breast_cancer()\n", + "import pandas as pd\n", + "# Making a data frame\n", + "cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)\n", + "\n", + "fig, axes = plt.subplots(15,2,figsize=(10,20))\n", + "malignant = cancer.data[cancer.target == 0]\n", + "benign = cancer.data[cancer.target == 1]\n", + "ax = axes.ravel()\n", + "\n", + "for i in range(30):\n", + " _, bins = np.histogram(cancer.data[:,i], bins =50)\n", + " ax[i].hist(malignant[:,i], bins = bins, alpha = 0.5)\n", + " ax[i].hist(benign[:,i], bins = bins, alpha = 0.5)\n", + " ax[i].set_title(cancer.feature_names[i])\n", + " ax[i].set_yticks(())\n", + "ax[0].set_xlabel(\"Feature magnitude\")\n", + "ax[0].set_ylabel(\"Frequency\")\n", + "ax[0].legend([\"Malignant\", \"Benign\"], loc =\"best\")\n", + "fig.tight_layout()\n", + "plt.show()\n", + "\n", + "import seaborn as sns\n", + "correlation_matrix = cancerpd.corr().round(1)\n", + "# use the heatmap function from seaborn to plot the correlation matrix\n", + "# annot = True to print the values inside the square\n", + "plt.figure(figsize=(15,8))\n", + "sns.heatmap(data=correlation_matrix, annot=True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above example we note two things. In the first plot we display\n", + "the overlap of benign and malignant tumors as functions of the various\n", + "features in the Wisconsing breast cancer data set. We see that for\n", + "some of the features we can distinguish clearly the benign and\n", + "malignant cases while for other features we cannot. This can point to\n", + "us which features may be of greater interest when we wish to classify\n", + "a benign or not benign tumour.\n", + "\n", + "In the second figure we have computed the so-called correlation\n", + "matrix, which in our case with thirty features becomes a $30\\times 30$\n", + "matrix.\n", + "\n", + "We constructed this matrix using **pandas** via the statements" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and then" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "correlation_matrix = cancerpd.corr().round(1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Diagonalizing this matrix we can in turn say something about which\n", + "features are of relevance and which are not. This leads us to\n", + "the classical Principal Component Analysis (PCA) theorem with\n", + "applications. This will be discussed later this semester ([week 43](https://compphysics.github.io/MachineLearning/doc/pub/week43/html/week43-bs.html))." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(426, 30)\n", + "(143, 30)\n", + "Test set accuracy with Logistic Regression: 0.95\n", + "Test set accuracy Logistic Regression with scaled data: 0.96\n", + "[1. 1. 1. 1. 1. 1.\n", + " 1. 1. 0.92857143 0.92857143]\n", + "Test set accuracy with Logistic Regression and scaled data: 0.96\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):\n", + "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n", + "\n", + "Increase the number of iterations (max_iter) or scale the data as shown in:\n", + " https://scikit-learn.org/stable/modules/preprocessing.html\n", + "Please also refer to the documentation for alternative solver options:\n", + " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n", + " n_iter_i = _check_optimize_result(\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_57_2.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_57_3.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfgAAAFmCAYAAACBRIhMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAB2RElEQVR4nO3dd3QU1RfA8e9ueu/UUEILnVCkd6mCIl0UULqUIKA/FVHBCoKAhKYUEVCULigISO+dhN5LQhKSkN7L7vz+WF1EKQGymd3kfs7xHN5kdubuJO7d92befRpFURSEEEIIUaBo1Q5ACCGEEHlPErwQQghRAEmCF0IIIQogSfBCCCFEASQJXgghhCiAJMELIYQQBZC12gEIYQ6OHj3K/PnzycnJQafTYWdnx0svvUSnTp2wtbXNtzjmzJnDzz//zCuvvEJgYOATvz4zM5N27dqxZcsWHBwc8jS2iIgIZs6cye3bt7GysiIjI4O6devyyiuv4Ofn99jXDxkyhMGDB9OgQYM8jSs9PZ3Zs2dz8uRJrK2tycrKolatWvTu3ZsKFSrk6bmEsCiKEIXcnj17lJYtWyo3b940btu9e7dStWpV5fz58/kez3vvvacEBQXlat++ffsqa9euvW9bYmJinsd0584dpVmzZsrWrVuN2+Lj45UePXooU6ZMydUxkpOTFb1en6dx5eTkKH379lWmTZtmPHZycrIyaNAgZfjw4Xl6LiEsjQzRi0JNr9fzySef8Oabb1KmTBnj9hYtWtC+fXsVI3t6rq6ueX7MGTNm8Nxzz9GuXTvjNnd3d8aMGYOdnV2ujuHs7IxGo8nTuDZs2EBYWBhjxowxHtvZ2ZkPPvggz88lhKWRBC8KtXPnznH79m2aNGnyn599+eWXVKpUiSVLltCkSRNmz54NQFBQEPXq1WPdunWAYVi9SZMmfPrpp7zzzju0b9+eadOmcfr0aUaMGEGbNm3Yvn07AL/99hutW7fm/fffB2DFihX3HftBJk2axCuvvEK/fv0YN24cKSkpAEyfPp0LFy6wYMEC+vXrx+7du3n77bepUaMGR44cYeXKldSpU4eOHTty9OhREhIS6NatG61bt+bChQukpqYyfvx4+vTpwyuvvMLPP//8wPPr9Xq2b9/+wGvUpEkTxowZ89hYFy1adN/7nDRpEvXq1eObb75h9OjRtG/fnhkzZhiPc/LkSfr06UP//v3p168fu3btemBsW7dupWHDhlhb33+3sVy5cnz11VckJCTQq1cv/P39AQgLC6NLly60bt0aMNx2+Pvn69ato3///lStWpVBgwbh7+/P4MGDjb+3Zs2aMWLECADOnj3La6+9Rt++fXn99de5du3aQ39/QqhG7SEEIdS0adMmpVKlSkpWVtYj9/v3sPm/h8bfe+89pWvXrkpmZqYSGxurVKtWTZk7d66iKIqydetWpX379sZ9g4KClPfee++hx/53+4cffrjvtTNnznxoHIqiKK1atVIOHz6sKIqifPnll8qHH35437H279+vKIqiTJgwQfnf//6nKIphWLt169bKsWPH/vPeY2JilEqVKhlf9yiPivVB13DIkCGKXq9XoqKilKpVqyp37txRFEVRunfvrgQHByuKoigXLly473r9U4cOHZQZM2Y8MqawsDClUqVKxvbhw4eVVq1a/efn69evVxRFURYvXqxEREQojRo1Uk6cOGHcb9iwYYpOp1OSkpKUBg0aKAcPHlQURVF27dqltGvXTtHpdI+MQ4j8Jj14IfJI/fr1sbW1xdPTE09PTypXrgyAv78/t2/ffurj2tvb8+qrr9K3b182bdrEuXPncv3al19+mT/++IPMzEwADh8+TKNGjdDr9WzYsIEePXoAhmHtVq1asXHjxlwdV6fT0a9fP7p160afPn2eOtamTZui0WgoUqQI7u7uhIeHA+Dm5saGDRu4e/culStXZuLEibl+z0/r+eefB2DgwIEUL16cTp068euvvwJw+fJlKlWqhFarZdeuXTg6OtKoUSMAWrZsyd27dwkJCTF5jEI8CXmKXhRqpUuXBiAqKgpfX99nOpaTk5Px39bW1sa2lZUV2dnZT3XMI0eOMGXKFH777Td8fX1Zt24d69evz/Xrq1SpQokSJdixYwf+/v6UL18erVbL3bt3ycrKYtq0adjb2wOQlJRElSpV/nMMT09PnJycuHPnjnGblZUVy5cvZ/Xq1cyfP/+pY3V2djb+287Oznidpk+fzoIFC+jatSuVKlXinXfeeWBsZcqUISoqKtfX41FcXFzua7/88su88cYbTJgwgQ0bNtCtWzcA7ty5Q2JiIv369TPu6+npSUJCQp7EIURekQQvCrWqVatStmxZDhw4QO/eve/72QcffMBrr71GtWrVsLGxISsry/iz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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter4_57_4.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.linear_model import LogisticRegression\n", + "\n", + "# Load the data\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "# Logistic Regression\n", + "logreg = LogisticRegression(solver='lbfgs')\n", + "logreg.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Logistic Regression: {:.2f}\".format(logreg.score(X_test,y_test)))\n", + "#now scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "# Logistic Regression\n", + "logreg.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy Logistic Regression with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "\n", + "\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.model_selection import cross_validate\n", + "#Cross validation\n", + "accuracy = cross_validate(logreg,X_test_scaled,y_test,cv=10)['test_score']\n", + "print(accuracy)\n", + "print(\"Test set accuracy with Logistic Regression and scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "\n", + "\n", + "import scikitplot as skplt\n", + "y_pred = logreg.predict(X_test_scaled)\n", + "skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n", + "plt.show()\n", + "y_probas = logreg.predict_proba(X_test_scaled)\n", + "skplt.metrics.plot_roc(y_test, y_probas)\n", + "plt.show()\n", + "skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n", + "plt.show()" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4.py b/doc/LectureNotes/_build/jupyter_execute/chapter4.py new file mode 100644 index 000000000..f3e017492 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter4.py @@ -0,0 +1,609 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Logistic Regression +# +# +# +# ## Logistic Regression +# +# In linear regression our main interest was centered on learning the +# coefficients of a functional fit (say a polynomial) in order to be +# able to predict the response of a continuous variable on some unseen +# data. The fit to the continuous variable $y_i$ is based on some +# independent variables $x_i$. Linear regression resulted in +# analytical expressions for standard ordinary Least Squares or Ridge +# regression (in terms of matrices to invert) for several quantities, +# ranging from the variance and thereby the confidence intervals of the +# optimal parameters $\hat{\beta}$ to the mean squared error. If we can invert +# the product of the design matrices, linear regression gives then a +# simple recipe for fitting our data. +# +# +# Classification problems, however, are concerned with outcomes taking +# the form of discrete variables (i.e. categories). We may for example, +# on the basis of DNA sequencing for a number of patients, like to find +# out which mutations are important for a certain disease; or based on +# scans of various patients' brains, figure out if there is a tumor or +# not; or given a specific physical system, we'd like to identify its +# state, say whether it is an ordered or disordered system (typical +# situation in solid state physics); or classify the status of a +# patient, whether she/he has a stroke or not and many other similar +# situations. +# +# The most common situation we encounter when we apply logistic +# regression is that of two possible outcomes, normally denoted as a +# binary outcome, true or false, positive or negative, success or +# failure etc. +# +# +# Logistic regression will also serve as our stepping stone towards +# neural network algorithms and supervised deep learning. For logistic +# learning, the minimization of the cost function leads to a non-linear +# equation in the parameters $\hat{\beta}$. The optimization of the +# problem calls therefore for minimization algorithms. This forms the +# bottle neck of all machine learning algorithms, namely how to find +# reliable minima of a multi-variable function. This leads us to the +# family of gradient descent methods. The latter are the working horses +# of basically all modern machine learning algorithms. +# +# We note also that many of the topics discussed here on logistic +# regression are also commonly used in modern supervised Deep Learning +# models, as we will see later. +# +# +# +# ## Basics +# +# We consider the case where the dependent variables, also called the +# responses or the outcomes, $y_i$ are discrete and only take values +# from $k=0,\dots,K-1$ (i.e. $K$ classes). +# +# The goal is to predict the +# output classes from the design matrix $\boldsymbol{X}\in\mathbb{R}^{n\times p}$ +# made of $n$ samples, each of which carries $p$ features or predictors. The +# primary goal is to identify the classes to which new unseen samples +# belong. +# +# Let us specialize to the case of two classes only, with outputs +# $y_i=0$ and $y_i=1$. Our outcomes could represent the status of a +# credit card user that could default or not on her/his credit card +# debt. That is + +# $$ +# y_i = \begin{bmatrix} 0 & \mathrm{no}\\ 1 & \mathrm{yes} \end{bmatrix}. +# $$ + +# Before moving to the logistic model, let us try to use our linear +# regression model to classify these two outcomes. We could for example +# fit a linear model to the default case if $y_i > 0.5$ and the no +# default case $y_i \leq 0.5$. +# +# We would then have our +# weighted linear combination, namely + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{y} = \boldsymbol{X}^T\boldsymbol{\beta} + \boldsymbol{\epsilon}, +# \label{_auto1} \tag{1} +# \end{equation} +# $$ + +# where $\boldsymbol{y}$ is a vector representing the possible outcomes, $\boldsymbol{X}$ is our +# $n\times p$ design matrix and $\boldsymbol{\beta}$ represents our estimators/predictors. +# +# +# The main problem with our function is that it takes values on the +# entire real axis. In the case of logistic regression, however, the +# labels $y_i$ are discrete variables. A typical example is the credit +# card data discussed below here, where we can set the state of +# defaulting the debt to $y_i=1$ and not to $y_i=0$ for one the persons +# in the data set (see the full example below). +# +# One simple way to get a discrete output is to have sign +# functions that map the output of a linear regressor to values $\{0,1\}$, +# $f(s_i)=sign(s_i)=1$ if $s_i\ge 0$ and 0 if otherwise. +# We will encounter this model in our first demonstration of neural networks. Historically it is called the ``perceptron" model in the machine learning +# literature. This model is extremely simple. However, in many cases it is more +# favorable to use a ``soft" classifier that outputs +# the probability of a given category. This leads us to the logistic function. +# +# +# The following example on data for coronary heart disease (CHD) as function of age may serve as an illustration. In the code here we read and plot whether a person has had CHD (output = 1) or not (output = 0). This ouput is plotted the person's against age. Clearly, the figure shows that attempting to make a standard linear regression fit may not be very meaningful. + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +# Common imports +import os +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.linear_model import LinearRegression, Ridge, Lasso +from sklearn.model_selection import train_test_split +from sklearn.utils import resample +from sklearn.metrics import mean_squared_error +from IPython.display import display +from pylab import plt, mpl +plt.style.use('seaborn') +mpl.rcParams['font.family'] = 'serif' + +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +infile = open(data_path("chddata.csv"),'r') + +# Read the chd data as csv file and organize the data into arrays with age group, age, and chd +chd = pd.read_csv(infile, names=('ID', 'Age', 'Agegroup', 'CHD')) +chd.columns = ['ID', 'Age', 'Agegroup', 'CHD'] +output = chd['CHD'] +age = chd['Age'] +agegroup = chd['Agegroup'] +numberID = chd['ID'] +display(chd) + +plt.scatter(age, output, marker='o') +plt.axis([18,70.0,-0.1, 1.2]) +plt.xlabel(r'Age') +plt.ylabel(r'CHD') +plt.title(r'Age distribution and Coronary heart disease') +plt.show() + + +# What we could attempt however is to plot the mean value for each group. + +# In[2]: + + +agegroupmean = np.array([0.1, 0.133, 0.250, 0.333, 0.462, 0.625, 0.765, 0.800]) +group = np.array([1, 2, 3, 4, 5, 6, 7, 8]) +plt.plot(group, agegroupmean, "r-") +plt.axis([0,9,0, 1.0]) +plt.xlabel(r'Age group') +plt.ylabel(r'CHD mean values') +plt.title(r'Mean values for each age group') +plt.show() + + +# We are now trying to find a function $f(y\vert x)$, that is a function which gives us an expected value for the output $y$ with a given input $x$. +# In standard linear regression with a linear dependence on $x$, we would write this in terms of our model + +# $$ +# f(y_i\vert x_i)=\beta_0+\beta_1 x_i. +# $$ + +# This expression implies however that $f(y_i\vert x_i)$ could take any +# value from minus infinity to plus infinity. If we however let +# $f(y\vert y)$ be represented by the mean value, the above example +# shows us that we can constrain the function to take values between +# zero and one, that is we have $0 \le f(y_i\vert x_i) \le 1$. Looking +# at our last curve we see also that it has an S-shaped form. This leads +# us to a very popular model for the function $f$, namely the so-called +# Sigmoid function or logistic model. We will consider this function as +# representing the probability for finding a value of $y_i$ with a given +# $x_i$. +# +# +# ## The logistic function +# +# Another widely studied model, is the so-called +# perceptron model, which is an example of a "hard classification" model. We +# will encounter this model when we discuss neural networks as +# well. Each datapoint is deterministically assigned to a category (i.e +# $y_i=0$ or $y_i=1$). In many cases, and the coronary heart disease data forms one of many such examples, it is favorable to have a "soft" +# classifier that outputs the probability of a given category rather +# than a single value. For example, given $x_i$, the classifier +# outputs the probability of being in a category $k$. Logistic regression +# is the most common example of a so-called soft classifier. In logistic +# regression, the probability that a data point $x_i$ +# belongs to a category $y_i=\{0,1\}$ is given by the so-called logit function (or Sigmoid) which is meant to represent the likelihood for a given event, + +# $$ +# p(t) = \frac{1}{1+\mathrm \exp{-t}}=\frac{\exp{t}}{1+\mathrm \exp{t}}. +# $$ + +# Note that $1-p(t)= p(-t)$. +# +# ## Examples of likelihood functions used in logistic regression and nueral networks +# +# +# The following code plots the logistic function, the step function and other functions we will encounter from here and on. + +# In[3]: + + +"""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() + +"""tanh Function""" +z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1) +t = numpy.tanh(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('tanh function') + +plt.show() + + +# We assume now that we have two classes with $y_i$ either $0$ or $1$. Furthermore we assume also that we have only two parameters $\beta$ in our fitting of the Sigmoid function, that is we define probabilities + +# $$ +# \begin{align*} +# p(y_i=1|x_i,\boldsymbol{\beta}) &= \frac{\exp{(\beta_0+\beta_1x_i)}}{1+\exp{(\beta_0+\beta_1x_i)}},\nonumber\\ +# p(y_i=0|x_i,\boldsymbol{\beta}) &= 1 - p(y_i=1|x_i,\boldsymbol{\beta}), +# \end{align*} +# $$ + +# where $\boldsymbol{\beta}$ are the weights we wish to extract from data, in our case $\beta_0$ and $\beta_1$. +# +# Note that we used + +# $$ +# p(y_i=0\vert x_i, \boldsymbol{\beta}) = 1-p(y_i=1\vert x_i, \boldsymbol{\beta}). +# $$ + +# In order to define the total likelihood for all possible outcomes from a +# dataset $\mathcal{D}=\{(y_i,x_i)\}$, with the binary labels +# $y_i\in\{0,1\}$ and where the data points are drawn independently, we use the so-called [Maximum Likelihood Estimation](https://en.wikipedia.org/wiki/Maximum_likelihood_estimation) (MLE) principle. +# We aim thus at maximizing +# the probability of seeing the observed data. We can then approximate the +# likelihood in terms of the product of the individual probabilities of a specific outcome $y_i$, that is + +# $$ +# \begin{align*} +# P(\mathcal{D}|\boldsymbol{\beta})& = \prod_{i=1}^n \left[p(y_i=1|x_i,\boldsymbol{\beta})\right]^{y_i}\left[1-p(y_i=1|x_i,\boldsymbol{\beta}))\right]^{1-y_i}\nonumber \\ +# \end{align*} +# $$ + +# from which we obtain the log-likelihood and our **cost/loss** function + +# $$ +# \mathcal{C}(\boldsymbol{\beta}) = \sum_{i=1}^n \left( y_i\log{p(y_i=1|x_i,\boldsymbol{\beta})} + (1-y_i)\log\left[1-p(y_i=1|x_i,\boldsymbol{\beta}))\right]\right). +# $$ + +# Reordering the logarithms, we can rewrite the **cost/loss** function as + +# $$ +# \mathcal{C}(\boldsymbol{\beta}) = \sum_{i=1}^n \left(y_i(\beta_0+\beta_1x_i) -\log{(1+\exp{(\beta_0+\beta_1x_i)})}\right). +# $$ + +# The maximum likelihood estimator is defined as the set of parameters that maximize the log-likelihood where we maximize with respect to $\beta$. +# Since the cost (error) function is just the negative log-likelihood, for logistic regression we have that + +# $$ +# \mathcal{C}(\boldsymbol{\beta})=-\sum_{i=1}^n \left(y_i(\beta_0+\beta_1x_i) -\log{(1+\exp{(\beta_0+\beta_1x_i)})}\right). +# $$ + +# This equation is known in statistics as the **cross entropy**. Finally, we note that just as in linear regression, +# in practice we often supplement the cross-entropy with additional regularization terms, usually $L_1$ and $L_2$ regularization as we did for Ridge and Lasso regression. +# +# +# The cross entropy is a convex function of the weights $\boldsymbol{\beta}$ and, +# therefore, any local minimizer is a global minimizer. +# +# +# Minimizing this +# cost function with respect to the two parameters $\beta_0$ and $\beta_1$ we obtain + +# $$ +# \frac{\partial \mathcal{C}(\boldsymbol{\beta})}{\partial \beta_0} = -\sum_{i=1}^n \left(y_i -\frac{\exp{(\beta_0+\beta_1x_i)}}{1+\exp{(\beta_0+\beta_1x_i)}}\right), +# $$ + +# and + +# $$ +# \frac{\partial \mathcal{C}(\boldsymbol{\beta})}{\partial \beta_1} = -\sum_{i=1}^n \left(y_ix_i -x_i\frac{\exp{(\beta_0+\beta_1x_i)}}{1+\exp{(\beta_0+\beta_1x_i)}}\right). +# $$ + +# Let us now define a vector $\boldsymbol{y}$ with $n$ elements $y_i$, an +# $n\times p$ matrix $\boldsymbol{X}$ which contains the $x_i$ values and a +# vector $\boldsymbol{p}$ of fitted probabilities $p(y_i\vert x_i,\boldsymbol{\beta})$. We can rewrite in a more compact form the first +# derivative of cost function as + +# $$ +# \frac{\partial \mathcal{C}(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = -\boldsymbol{X}^T\left(\boldsymbol{y}-\boldsymbol{p}\right). +# $$ + +# If we in addition define a diagonal matrix $\boldsymbol{W}$ with elements +# $p(y_i\vert x_i,\boldsymbol{\beta})(1-p(y_i\vert x_i,\boldsymbol{\beta})$, we can obtain a compact expression of the second derivative as + +# $$ +# \frac{\partial^2 \mathcal{C}(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}\partial \boldsymbol{\beta}^T} = \boldsymbol{X}^T\boldsymbol{W}\boldsymbol{X}. +# $$ + +# Within a binary classification problem, we can easily expand our model to include multiple predictors. Our ratio between likelihoods is then with $p$ predictors + +# $$ +# \log{ \frac{p(\boldsymbol{\beta}\boldsymbol{x})}{1-p(\boldsymbol{\beta}\boldsymbol{x})}} = \beta_0+\beta_1x_1+\beta_2x_2+\dots+\beta_px_p. +# $$ + +# Here we defined $\boldsymbol{x}=[1,x_1,x_2,\dots,x_p]$ and $\boldsymbol{\beta}=[\beta_0, \beta_1, \dots, \beta_p]$ leading to + +# $$ +# p(\boldsymbol{\beta}\boldsymbol{x})=\frac{ \exp{(\beta_0+\beta_1x_1+\beta_2x_2+\dots+\beta_px_p)}}{1+\exp{(\beta_0+\beta_1x_1+\beta_2x_2+\dots+\beta_px_p)}}. +# $$ + +# Till now we have mainly focused on two classes, the so-called binary +# system. Suppose we wish to extend to $K$ classes. Let us for the sake +# of simplicity assume we have only two predictors. We have then following model + +# $$ +# \log{\frac{p(C=1\vert x)}{p(K\vert x)}} = \beta_{10}+\beta_{11}x_1, +# $$ + +# and + +# $$ +# \log{\frac{p(C=2\vert x)}{p(K\vert x)}} = \beta_{20}+\beta_{21}x_1, +# $$ + +# and so on till the class $C=K-1$ class + +# $$ +# \log{\frac{p(C=K-1\vert x)}{p(K\vert x)}} = \beta_{(K-1)0}+\beta_{(K-1)1}x_1, +# $$ + +# and the model is specified in term of $K-1$ so-called log-odds or +# **logit** transformations. +# +# +# +# In our discussion of neural networks we will encounter the above again +# in terms of a slightly modified function, the so-called **Softmax** function. +# +# The softmax function is used in various multiclass classification +# methods, such as multinomial logistic regression (also known as +# softmax regression), multiclass linear discriminant analysis, naive +# Bayes classifiers, and artificial neural networks. Specifically, in +# multinomial logistic regression and linear discriminant analysis, the +# input to the function is the result of $K$ distinct linear functions, +# and the predicted probability for the $k$-th class given a sample +# vector $\boldsymbol{x}$ and a weighting vector $\boldsymbol{\beta}$ is (with two +# predictors): + +# $$ +# p(C=k\vert \mathbf {x} )=\frac{\exp{(\beta_{k0}+\beta_{k1}x_1)}}{1+\sum_{l=1}^{K-1}\exp{(\beta_{l0}+\beta_{l1}x_1)}}. +# $$ + +# It is easy to extend to more predictors. The final class is + +# $$ +# p(C=K\vert \mathbf {x} )=\frac{1}{1+\sum_{l=1}^{K-1}\exp{(\beta_{l0}+\beta_{l1}x_1)}}, +# $$ + +# and they sum to one. Our earlier discussions were all specialized to +# the case with two classes only. It is easy to see from the above that +# what we derived earlier is compatible with these equations. +# +# To find the optimal parameters we would typically use a gradient +# descent method. Newton's method and gradient descent methods are +# discussed in the material on [optimization +# methods](https://compphysics.github.io/MachineLearning/doc/pub/Splines/html/Splines-bs.html). +# +# ## Wisconsin Cancer Data +# +# We show here how we can use a simple regression case on the breast +# cancer data using Logistic regression as our algorithm for +# classification. + +# In[4]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.linear_model import LogisticRegression + +# Load the data +cancer = load_breast_cancer() + +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) +print(X_train.shape) +print(X_test.shape) +# Logistic Regression +logreg = LogisticRegression(solver='lbfgs') +logreg.fit(X_train, y_train) +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) +#now scale the data +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) +# Logistic Regression +logreg.fit(X_train_scaled, y_train) +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) + + +# In addition to the above scores, we could also study the covariance (and the correlation matrix). +# We use **Pandas** to compute the correlation matrix. + +# In[5]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.linear_model import LogisticRegression +cancer = load_breast_cancer() +import pandas as pd +# Making a data frame +cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names) + +fig, axes = plt.subplots(15,2,figsize=(10,20)) +malignant = cancer.data[cancer.target == 0] +benign = cancer.data[cancer.target == 1] +ax = axes.ravel() + +for i in range(30): + _, bins = np.histogram(cancer.data[:,i], bins =50) + ax[i].hist(malignant[:,i], bins = bins, alpha = 0.5) + ax[i].hist(benign[:,i], bins = bins, alpha = 0.5) + ax[i].set_title(cancer.feature_names[i]) + ax[i].set_yticks(()) +ax[0].set_xlabel("Feature magnitude") +ax[0].set_ylabel("Frequency") +ax[0].legend(["Malignant", "Benign"], loc ="best") +fig.tight_layout() +plt.show() + +import seaborn as sns +correlation_matrix = cancerpd.corr().round(1) +# use the heatmap function from seaborn to plot the correlation matrix +# annot = True to print the values inside the square +plt.figure(figsize=(15,8)) +sns.heatmap(data=correlation_matrix, annot=True) +plt.show() + + +# In the above example we note two things. In the first plot we display +# the overlap of benign and malignant tumors as functions of the various +# features in the Wisconsing breast cancer data set. We see that for +# some of the features we can distinguish clearly the benign and +# malignant cases while for other features we cannot. This can point to +# us which features may be of greater interest when we wish to classify +# a benign or not benign tumour. +# +# In the second figure we have computed the so-called correlation +# matrix, which in our case with thirty features becomes a $30\times 30$ +# matrix. +# +# We constructed this matrix using **pandas** via the statements + +# In[6]: + + +cancerpd = pd.DataFrame(cancer.data, columns=cancer.feature_names) + + +# and then + +# In[7]: + + +correlation_matrix = cancerpd.corr().round(1) + + +# Diagonalizing this matrix we can in turn say something about which +# features are of relevance and which are not. This leads us to +# the classical Principal Component Analysis (PCA) theorem with +# applications. This will be discussed later this semester ([week 43](https://compphysics.github.io/MachineLearning/doc/pub/week43/html/week43-bs.html)). + +# In[8]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.linear_model import LogisticRegression + +# Load the data +cancer = load_breast_cancer() + +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) +print(X_train.shape) +print(X_test.shape) +# Logistic Regression +logreg = LogisticRegression(solver='lbfgs') +logreg.fit(X_train, y_train) +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) +#now scale the data +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) +# Logistic Regression +logreg.fit(X_train_scaled, y_train) +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) + + +from sklearn.preprocessing import LabelEncoder +from sklearn.model_selection import cross_validate +#Cross validation +accuracy = cross_validate(logreg,X_test_scaled,y_test,cv=10)['test_score'] +print(accuracy) +print("Test set accuracy with Logistic Regression and scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) + + +import scikitplot as skplt +y_pred = logreg.predict(X_test_scaled) +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) +plt.show() +y_probas = logreg.predict_proba(X_test_scaled) +skplt.metrics.plot_roc(y_test, y_probas) +plt.show() +skplt.metrics.plot_cumulative_gain(y_test, y_probas) +plt.show() + diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_13_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_13_0.png new file mode 100644 index 0000000000000000000000000000000000000000..44b37ff302fc7820830464519b03155c8c032bb3 GIT binary patch literal 13624 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_13_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_13_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4176f89db91672e3fd1a3da52a881016f4001d90 GIT binary patch literal 9697 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 HHoEs8cJX4< literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_13_2.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_13_2.png new file mode 100644 index 0000000000000000000000000000000000000000..198de69945507fe2c5dfecd91b62c4a5e9715a29 GIT binary patch literal 14319 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_51_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_51_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b6498c5ab5747d36660a984096f8ec591c8c4b GIT binary patch literal 90242 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
    VLJ7`Oz3xZ@cmTItU3?%KCipapxktr%>sH}N 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_7_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_7_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c4668ff0957eae4ce39723f21a370b4bf7b5c87c GIT binary patch literal 16534 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 Q|BnEaGO%~~a>md92S@XJT>t<8 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter5.ipynb new file mode 100644 index 000000000..58a292392 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter5.ipynb @@ -0,0 +1,2025 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Support Vector Machines, overarching aims\n", + "\n", + "A Support Vector Machine (SVM) is a very powerful and versatile\n", + "Machine Learning method, capable of performing linear or nonlinear\n", + "classification, regression, and even outlier detection. It is one of\n", + "the most popular models in Machine Learning, and anyone interested in\n", + "Machine Learning should have it in their toolbox. SVMs are\n", + "particularly well suited for classification of complex but small-sized or\n", + "medium-sized datasets. \n", + "\n", + "The case with two well-separated classes only can be understood in an\n", + "intuitive way in terms of lines in a two-dimensional space separating\n", + "the two classes (see figure below).\n", + "\n", + "The basic mathematics behind the SVM is however less familiar to most of us. \n", + "It relies on the definition of hyperplanes and the\n", + "definition of a **margin** which separates classes (in case of\n", + "classification problems) of variables. It is also used for regression\n", + "problems.\n", + "\n", + "With SVMs we distinguish between hard margin and soft margins. The\n", + "latter introduces a so-called softening parameter to be discussed\n", + "below. We distinguish also between linear and non-linear\n", + "approaches. The latter are the most frequent ones since it is rather\n", + "unlikely that we can separate classes easily by say straight lines.\n", + "\n", + "\n", + "## Hyperplanes and all that\n", + "\n", + "The theory behind support vector machines (SVM hereafter) is based on\n", + "the mathematical description of so-called hyperplanes. Let us start\n", + "with a two-dimensional case. This will also allow us to introduce our\n", + "first SVM examples. These will be tailored to the case of two specific\n", + "classes, as displayed in the figure here based on the usage of the petal data.\n", + "\n", + "We assume here that our data set can be well separated into two\n", + "domains, where a straight line does the job in the separating the two\n", + "classes. Here the two classes are represented by either squares or\n", + "circles." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LinearSVC: [0.28475098] [[1.05364854 1.09903804]]\n", + "SVC: [0.31896852] [[1.1203284 1.02625193]]\n", + "SGDClassifier(alpha=0.00200): [0.117] [[0.77714169 0.72981762]]\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "

    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_1_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "from sklearn import datasets\n", + "from sklearn.svm import SVC, LinearSVC\n", + "from sklearn.linear_model import SGDClassifier\n", + "from sklearn.preprocessing import StandardScaler\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "plt.rcParams['axes.labelsize'] = 14\n", + "plt.rcParams['xtick.labelsize'] = 12\n", + "plt.rcParams['ytick.labelsize'] = 12\n", + "\n", + "\n", + "iris = datasets.load_iris()\n", + "X = iris[\"data\"][:, (2, 3)] # petal length, petal width\n", + "y = iris[\"target\"]\n", + "\n", + "setosa_or_versicolor = (y == 0) | (y == 1)\n", + "X = X[setosa_or_versicolor]\n", + "y = y[setosa_or_versicolor]\n", + "\n", + "\n", + "\n", + "C = 5\n", + "alpha = 1 / (C * len(X))\n", + "\n", + "lin_clf = LinearSVC(loss=\"hinge\", C=C, random_state=42)\n", + "svm_clf = SVC(kernel=\"linear\", C=C)\n", + "sgd_clf = SGDClassifier(loss=\"hinge\", learning_rate=\"constant\", eta0=0.001, alpha=alpha,\n", + " max_iter=100000, random_state=42)\n", + "\n", + "scaler = StandardScaler()\n", + "X_scaled = scaler.fit_transform(X)\n", + "\n", + "lin_clf.fit(X_scaled, y)\n", + "svm_clf.fit(X_scaled, y)\n", + "sgd_clf.fit(X_scaled, y)\n", + "\n", + "print(\"LinearSVC: \", lin_clf.intercept_, lin_clf.coef_)\n", + "print(\"SVC: \", svm_clf.intercept_, svm_clf.coef_)\n", + "print(\"SGDClassifier(alpha={:.5f}):\".format(sgd_clf.alpha), sgd_clf.intercept_, sgd_clf.coef_)\n", + "\n", + "# Compute the slope and bias of each decision boundary\n", + "w1 = -lin_clf.coef_[0, 0]/lin_clf.coef_[0, 1]\n", + "b1 = -lin_clf.intercept_[0]/lin_clf.coef_[0, 1]\n", + "w2 = -svm_clf.coef_[0, 0]/svm_clf.coef_[0, 1]\n", + "b2 = -svm_clf.intercept_[0]/svm_clf.coef_[0, 1]\n", + "w3 = -sgd_clf.coef_[0, 0]/sgd_clf.coef_[0, 1]\n", + "b3 = -sgd_clf.intercept_[0]/sgd_clf.coef_[0, 1]\n", + "\n", + "# Transform the decision boundary lines back to the original scale\n", + "line1 = scaler.inverse_transform([[-10, -10 * w1 + b1], [10, 10 * w1 + b1]])\n", + "line2 = scaler.inverse_transform([[-10, -10 * w2 + b2], [10, 10 * w2 + b2]])\n", + "line3 = scaler.inverse_transform([[-10, -10 * w3 + b3], [10, 10 * w3 + b3]])\n", + "\n", + "# Plot all three decision boundaries\n", + "plt.figure(figsize=(11, 4))\n", + "plt.plot(line1[:, 0], line1[:, 1], \"k:\", label=\"LinearSVC\")\n", + "plt.plot(line2[:, 0], line2[:, 1], \"b--\", linewidth=2, label=\"SVC\")\n", + "plt.plot(line3[:, 0], line3[:, 1], \"r-\", label=\"SGDClassifier\")\n", + "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\") # label=\"Iris-Versicolor\"\n", + "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\") # label=\"Iris-Setosa\"\n", + "plt.xlabel(\"Petal length\", fontsize=14)\n", + "plt.ylabel(\"Petal width\", fontsize=14)\n", + "plt.legend(loc=\"upper center\", fontsize=14)\n", + "plt.axis([0, 5.5, 0, 2])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The aim of the SVM algorithm is to find a hyperplane in a\n", + "$p$-dimensional space, where $p$ is the number of features that\n", + "distinctly classifies the data points.\n", + "\n", + "In a $p$-dimensional space, a hyperplane is what we call an affine subspace of dimension of $p-1$.\n", + "As an example, in two dimension, a hyperplane is simply as straight line while in three dimensions it is \n", + "a two-dimensional subspace, or stated simply, a plane. \n", + "\n", + "In two dimensions, with the variables $x_1$ and $x_2$, the hyperplane is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b+w_1x_1+w_2x_2=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $b$ is the intercept and $w_1$ and $w_2$ define the elements of a vector orthogonal to the line \n", + "$b+w_1x_1+w_2x_2=0$. \n", + "In two dimensions we define the vectors $\\boldsymbol{x} =[x1,x2]$ and $\\boldsymbol{w}=[w1,w2]$. \n", + "We can then rewrite the above equation as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}^T\\boldsymbol{w}+b=0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We limit ourselves to two classes of outputs $y_i$ and assign these classes the values $y_i = \\pm 1$. \n", + "In a $p$-dimensional space of say $p$ features we have a hyperplane defines as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b+wx_1+w_2x_2+\\dots +w_px_p=0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we define a \n", + "matrix $\\boldsymbol{X}=\\left[\\boldsymbol{x}_1,\\boldsymbol{x}_2,\\dots, \\boldsymbol{x}_p\\right]$\n", + "of dimension $n\\times p$, where $n$ represents the observations for each feature and each vector $x_i$ is a column vector of the matrix $\\boldsymbol{X}$," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_i = \\begin{bmatrix} x_{i1} \\\\ x_{i2} \\\\ \\dots \\\\ \\dots \\\\ x_{ip} \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If the above condition is not met for a given vector $\\boldsymbol{x}_i$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b+w_1x_{i1}+w_2x_{i2}+\\dots +w_px_{ip} >0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "if our output $y_i=1$.\n", + "In this case we say that $\\boldsymbol{x}_i$ lies on one of the sides of the hyperplane and if" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b+w_1x_{i1}+w_2x_{i2}+\\dots +w_px_{ip} < 0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for the class of observations $y_i=-1$, \n", + "then $\\boldsymbol{x}_i$ lies on the other side. \n", + "\n", + "Equivalently, for the two classes of observations we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i\\left(b+w_1x_{i1}+w_2x_{i2}+\\dots +w_px_{ip}\\right) > 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When we try to separate hyperplanes, if it exists, we can use it to construct a natural classifier: a test observation is assigned a given class depending on which side of the hyperplane it is located.\n", + "\n", + "\n", + "### The two-dimensional case\n", + "\n", + "Let us try to develop our intuition about SVMs by limiting ourselves to a two-dimensional\n", + "plane. To separate the two classes of data points, there are many\n", + "possible lines (hyperplanes if you prefer a more strict naming) \n", + "that could be chosen. Our objective is to find a\n", + "plane that has the maximum margin, i.e the maximum distance between\n", + "data points of both classes. Maximizing the margin distance provides\n", + "some reinforcement so that future data points can be classified with\n", + "more confidence.\n", + "\n", + "What a linear classifier attempts to accomplish is to split the\n", + "feature space into two half spaces by placing a hyperplane between the\n", + "data points. This hyperplane will be our decision boundary. All\n", + "points on one side of the plane will belong to class one and all points\n", + "on the other side of the plane will belong to the second class two.\n", + "\n", + "Unfortunately there are many ways in which we can place a hyperplane\n", + "to divide the data. Below is an example of two candidate hyperplanes\n", + "for our data sample.\n", + "\n", + "\n", + "Let us define the function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(x) = \\boldsymbol{w}^T\\boldsymbol{x}+b = 0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "as the function that determines the line $L$ that separates two classes (our two features), see the figure here. \n", + "\n", + "\n", + "Any point defined by $\\boldsymbol{x}_i$ and $\\boldsymbol{x}_2$ on the line $L$ will satisfy $\\boldsymbol{w}^T(\\boldsymbol{x}_1-\\boldsymbol{x}_2)=0$. \n", + "\n", + "The signed distance $\\delta$ from any point defined by a vector $\\boldsymbol{x}$ and a point $\\boldsymbol{x}_0$ on the line $L$ is then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\delta = \\frac{1}{\\vert\\vert \\boldsymbol{w}\\vert\\vert}(\\boldsymbol{w}^T\\boldsymbol{x}+b).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How do we find the parameter $b$ and the vector $\\boldsymbol{w}$? What we could\n", + "do is to define a cost function which now contains the set of all\n", + "misclassified points $M$ and attempt to minimize this function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{w},b) = -\\sum_{i\\in M} y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We could now for example define all values $y_i =1$ as misclassified in case we have $\\boldsymbol{w}^T\\boldsymbol{x}_i+b < 0$ and the opposite if we have $y_i=-1$. Taking the derivatives gives us" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial C}{\\partial b} = -\\sum_{i\\in M} y_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial C}{\\partial \\boldsymbol{w}} = -\\sum_{i\\in M} y_ix_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the Newton-Raphson method or different variants of the gradient descent family (from plain gradient descent to various stochastic gradient descent approaches) to solve the equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b \\leftarrow b +\\eta \\frac{\\partial C}{\\partial b},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{w} \\leftarrow \\boldsymbol{w} +\\eta \\frac{\\partial C}{\\partial \\boldsymbol{w}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\eta$ is our by now well-known learning rate. \n", + "\n", + "\n", + "\n", + "The equations we discussed above can be coded rather easily (the\n", + "framework is similar to what we developed for logistic\n", + "regression). We are going to set up a simple case with two classes only and we want to find a line which separates them the best possible way." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are however problems with this approach, although it looks\n", + "pretty straightforward to implement. When running the above code, we see that we can easily end up with many diffeent lines which separate the two classes.\n", + "\n", + "\n", + "For small\n", + "gaps between the entries, we may also end up needing many iterations\n", + "before the solutions converge and if the data cannot be separated\n", + "properly into two distinct classes, we may not experience a converge\n", + "at all.\n", + "\n", + "\n", + "### A better approach\n", + "\n", + "A better approach is rather to try to define a large margin between\n", + "the two classes (if they are well separated from the beginning).\n", + "\n", + "Thus, we wish to find a margin $M$ with $\\boldsymbol{w}$ normalized to\n", + "$\\vert\\vert \\boldsymbol{w}\\vert\\vert =1$ subject to the condition" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq M \\hspace{0.1cm}\\forall i=1,2,\\dots, p.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "All points are thus at a signed distance from the decision boundary defined by the line $L$. The parameters $b$ and $w_1$ and $w_2$ define this line. \n", + "\n", + "We seek thus the largest value $M$ defined by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{1}{\\vert \\vert \\boldsymbol{w}\\vert\\vert}y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq M \\hspace{0.1cm}\\forall i=1,2,\\dots, n,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or just" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq M\\vert \\vert \\boldsymbol{w}\\vert\\vert \\hspace{0.1cm}\\forall i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we scale the equation so that $\\vert \\vert \\boldsymbol{w}\\vert\\vert = 1/M$, we have to find the minimum of \n", + "$\\boldsymbol{w}^T\\boldsymbol{w}=\\vert \\vert \\boldsymbol{w}\\vert\\vert$ (the norm) subject to the condition" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq 1 \\hspace{0.1cm}\\forall i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have thus defined our margin as the invers of the norm of\n", + "$\\boldsymbol{w}$. We want to minimize the norm in order to have a as large as\n", + "possible margin $M$. Before we proceed, we need to remind ourselves\n", + "about Lagrangian multipliers.\n", + "\n", + "\n", + "## A quick Reminder on Lagrangian Multipliers\n", + "\n", + "Consider a function of three independent variables $f(x,y,z)$ . For the function $f$ to be an\n", + "extreme we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "df=0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A necessary and sufficient condition is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f}{\\partial x} =\\frac{\\partial f}{\\partial y}=\\frac{\\partial f}{\\partial z}=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "due to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "df = \\frac{\\partial f}{\\partial x}dx+\\frac{\\partial f}{\\partial y}dy+\\frac{\\partial f}{\\partial z}dz.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In many problems the variables $x,y,z$ are often subject to constraints (such as those above for the margin)\n", + "so that they are no longer all independent. It is possible at least in principle to use each \n", + "constraint to eliminate one variable\n", + "and to proceed with a new and smaller set of independent varables.\n", + "\n", + "The use of so-called Lagrangian multipliers is an alternative technique when the elimination\n", + "of variables is incovenient or undesirable. Assume that we have an equation of constraint on \n", + "the variables $x,y,z$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\phi(x,y,z) = 0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "resulting in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "d\\phi = \\frac{\\partial \\phi}{\\partial x}dx+\\frac{\\partial \\phi}{\\partial y}dy+\\frac{\\partial \\phi}{\\partial z}dz =0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we cannot set anymore" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f}{\\partial x} =\\frac{\\partial f}{\\partial y}=\\frac{\\partial f}{\\partial z}=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "if $df=0$ is wanted\n", + "because there are now only two independent variables! Assume $x$ and $y$ are the independent \n", + "variables.\n", + "Then $dz$ is no longer arbitrary.\n", + "\n", + "\n", + "However, we can add to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "df = \\frac{\\partial f}{\\partial x}dx+\\frac{\\partial f}{\\partial y}dy+\\frac{\\partial f}{\\partial z}dz,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "a multiplum of $d\\phi$, viz. $\\lambda d\\phi$, resulting in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "df+\\lambda d\\phi = (\\frac{\\partial f}{\\partial z}+\\lambda\n", + "\\frac{\\partial \\phi}{\\partial x})dx+(\\frac{\\partial f}{\\partial y}+\\lambda\\frac{\\partial \\phi}{\\partial y})dy+\n", + "(\\frac{\\partial f}{\\partial z}+\\lambda\\frac{\\partial \\phi}{\\partial z})dz =0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our multiplier is chosen so that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f}{\\partial z}+\\lambda\\frac{\\partial \\phi}{\\partial z} =0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to remember that we took $dx$ and $dy$ to be arbitrary and thus we must have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f}{\\partial x}+\\lambda\\frac{\\partial \\phi}{\\partial x} =0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f}{\\partial y}+\\lambda\\frac{\\partial \\phi}{\\partial y} =0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When all these equations are satisfied, $df=0$. We have four unknowns, $x,y,z$ and\n", + "$\\lambda$. Actually we want only $x,y,z$, $\\lambda$ needs not to be determined, \n", + "it is therefore often called\n", + "Lagrange's undetermined multiplier.\n", + "If we have a set of constraints $\\phi_k$ we have the equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial f}{\\partial x_i}+\\sum_k\\lambda_k\\frac{\\partial \\phi_k}{\\partial x_i} =0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to solve the above problem, we define the following Lagrangian function to be minimized" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\cal{L}(\\lambda,b,\\boldsymbol{w})=\\frac{1}{2}\\boldsymbol{w}^T\\boldsymbol{w}-\\sum_{i=1}^n\\lambda_i\\left[y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)-1\\right],\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\lambda_i$ is a so-called Lagrange multiplier subject to the condition $\\lambda_i \\geq 0$.\n", + "\n", + "Taking the derivatives with respect to $b$ and $\\boldsymbol{w}$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\cal{L}}{\\partial b} = -\\sum_{i} \\lambda_iy_i=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\cal{L}}{\\partial \\boldsymbol{w}} = 0 = \\boldsymbol{w}-\\sum_{i} \\lambda_iy_i\\boldsymbol{x}_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inserting these constraints into the equation for $\\cal{L}$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{x}_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to the constraints $\\lambda_i\\geq 0$ and $\\sum_i\\lambda_iy_i=0$. \n", + "We must in addition satisfy the [Karush-Kuhn-Tucker](https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions) (KKT) condition" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\lambda_i\\left[y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) -1\\right] \\hspace{0.1cm}\\forall i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. If $\\lambda_i > 0$, then $y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1$ and we say that $x_i$ is on the boundary.\n", + "\n", + "2. If $y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)> 1$, we say $x_i$ is not on the boundary and we set $\\lambda_i=0$. \n", + "\n", + "When $\\lambda_i > 0$, the vectors $\\boldsymbol{x}_i$ are called support vectors. They are the vectors closest to the line (or hyperplane) and define the margin $M$. \n", + "\n", + "\n", + "We can rewrite" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{x}_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and its constraints in terms of a matrix-vector problem where we minimize w.r.t. $\\lambda$ the following problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1\\boldsymbol{x}_1^T\\boldsymbol{x}_1 & y_1y_2\\boldsymbol{x}_1^T\\boldsymbol{x}_2 & \\dots & \\dots & y_1y_n\\boldsymbol{x}_1^T\\boldsymbol{x}_n \\\\\n", + "y_2y_1\\boldsymbol{x}_2^T\\boldsymbol{x}_1 & y_2y_2\\boldsymbol{x}_2^T\\boldsymbol{x}_2 & \\dots & \\dots & y_1y_n\\boldsymbol{x}_2^T\\boldsymbol{x}_n \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "y_ny_1\\boldsymbol{x}_n^T\\boldsymbol{x}_1 & y_ny_2\\boldsymbol{x}_n^T\\boldsymbol{x}_2 & \\dots & \\dots & y_ny_n\\boldsymbol{x}_n^T\\boldsymbol{x}_n \\\\\n", + "\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{1}\\boldsymbol{\\lambda},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n", + "$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n", + "\n", + "\n", + "\n", + "Solving the above problem, yields the values of $\\lambda_i$.\n", + "To find the coefficients of your hyperplane we need simply to compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{w}=\\sum_{i} \\lambda_iy_i\\boldsymbol{x}_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our vector $\\boldsymbol{w}$ we can in turn find the value of the intercept $b$ (here in two dimensions) via" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "resulting in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b = \\frac{1}{y_i}-\\boldsymbol{w}^T\\boldsymbol{x}_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or if we write it out in terms of the support vectors only, with $N_s$ being their number, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b = \\frac{1}{N_s}\\sum_{j\\in N_s}\\left(y_j-\\sum_{i=1}^n\\lambda_iy_i\\boldsymbol{x}_i^T\\boldsymbol{x}_j\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our hyperplane coefficients we can use our classifier to assign any observation by simply using" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i = \\mathrm{sign}(\\boldsymbol{w}^T\\boldsymbol{x}_i+b).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we discuss how to find the optimal values of $\\lambda_i$. Before we proceed however, we discuss now the so-called soft classifier. \n", + "\n", + "\n", + "## A soft classifier\n", + "\n", + "Till now, the margin is strictly defined by the support vectors. This defines what is called a hard classifier, that is the margins are well defined.\n", + "\n", + "Suppose now that classes overlap in feature space, as shown in the\n", + "figure here. One way to deal with this problem before we define the\n", + "so-called **kernel approach**, is to allow a kind of slack in the sense\n", + "that we allow some points to be on the wrong side of the margin.\n", + "\n", + "We introduce thus the so-called **slack** variables $\\boldsymbol{\\xi} =[\\xi_1,x_2,\\dots,x_n]$ and \n", + "modify our previous equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1-\\xi_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with the requirement $\\xi_i\\geq 0$. The total violation is now $\\sum_i\\xi$. \n", + "The value $\\xi_i$ in the constraint the last constraint corresponds to the amount by which the prediction\n", + "$y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1$ is on the wrong side of its margin. Hence by bounding the sum $\\sum_i \\xi_i$,\n", + "we bound the total amount by which predictions fall on the wrong side of their margins.\n", + "\n", + "Misclassifications occur when $\\xi_i > 1$. Thus bounding the total sum by some value $C$ bounds in turn the total number of\n", + "misclassifications.\n", + "\n", + "\n", + "This has in turn the consequences that we change our optmization problem to finding the minimum of" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\cal{L}=\\frac{1}{2}\\boldsymbol{w}^T\\boldsymbol{w}-\\sum_{i=1}^n\\lambda_i\\left[y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)-(1-\\xi_)\\right]+C\\sum_{i=1}^n\\xi_i-\\sum_{i=1}^n\\gamma_i\\xi_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1-\\xi_i \\hspace{0.1cm}\\forall i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with the requirement $\\xi_i\\geq 0$.\n", + "\n", + "Taking the derivatives with respect to $b$ and $\\boldsymbol{w}$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\cal{L}}{\\partial b} = -\\sum_{i} \\lambda_iy_i=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\cal{L}}{\\partial \\boldsymbol{w}} = 0 = \\boldsymbol{w}-\\sum_{i} \\lambda_iy_i\\boldsymbol{x}_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\lambda_i = C-\\gamma_i \\hspace{0.1cm}\\forall i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Inserting these constraints into the equation for $\\cal{L}$ we obtain the same equation as before" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{x}_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "but now subject to the constraints $\\lambda_i\\geq 0$, $\\sum_i\\lambda_iy_i=0$ and $0\\leq\\lambda_i \\leq C$. \n", + "We must in addition satisfy the Karush-Kuhn-Tucker condition which now reads" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5\n", + "0\n", + " \n", + "<\n", + "<\n", + "<\n", + "!\n", + "!\n", + "M\n", + "A\n", + "T\n", + "H\n", + "_\n", + "B\n", + "L\n", + "O\n", + "C\n", + "K" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\gamma_i\\xi_i = 0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) -(1-\\xi_) \\geq 0 \\hspace{0.1cm}\\forall i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Kernels and non-linearity\n", + "\n", + "The cases we have studied till now, were all characterized by two classes\n", + "with a close to linear separability. The classifiers we have described\n", + "so far find linear boundaries in our input feature space. It is\n", + "possible to make our procedure more flexible by exploring the feature\n", + "space using other basis expansions such as higher-order polynomials,\n", + "wavelets, splines etc.\n", + "\n", + "If our feature space is not easy to separate, as shown in the figure\n", + "here, we can achieve a better separation by introducing more complex\n", + "basis functions. The ideal would be, as shown in the next figure, to, via a specific transformation to \n", + "obtain a separation between the classes which is almost linear. \n", + "\n", + "The change of basis, from $x\\rightarrow z=\\phi(x)$ leads to the same type of equations to be solved, except that\n", + "we need to introduce for example a polynomial transformation to a two-dimensional training set." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_109_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import os\n", + "\n", + "np.random.seed(42)\n", + "\n", + "# To plot pretty figures\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "plt.rcParams['axes.labelsize'] = 14\n", + "plt.rcParams['xtick.labelsize'] = 12\n", + "plt.rcParams['ytick.labelsize'] = 12\n", + "\n", + "\n", + "from sklearn.svm import SVC\n", + "from sklearn import datasets\n", + "\n", + "\n", + "\n", + "X1D = np.linspace(-4, 4, 9).reshape(-1, 1)\n", + "X2D = np.c_[X1D, X1D**2]\n", + "y = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n", + "\n", + "plt.figure(figsize=(11, 4))\n", + "\n", + "plt.subplot(121)\n", + "plt.grid(True, which='both')\n", + "plt.axhline(y=0, color='k')\n", + "plt.plot(X1D[:, 0][y==0], np.zeros(4), \"bs\")\n", + "plt.plot(X1D[:, 0][y==1], np.zeros(5), \"g^\")\n", + "plt.gca().get_yaxis().set_ticks([])\n", + "plt.xlabel(r\"$x_1$\", fontsize=20)\n", + "plt.axis([-4.5, 4.5, -0.2, 0.2])\n", + "\n", + "plt.subplot(122)\n", + "plt.grid(True, which='both')\n", + "plt.axhline(y=0, color='k')\n", + "plt.axvline(x=0, color='k')\n", + "plt.plot(X2D[:, 0][y==0], X2D[:, 1][y==0], \"bs\")\n", + "plt.plot(X2D[:, 0][y==1], X2D[:, 1][y==1], \"g^\")\n", + "plt.xlabel(r\"$x_1$\", fontsize=20)\n", + "plt.ylabel(r\"$x_2$\", fontsize=20, rotation=0)\n", + "plt.gca().get_yaxis().set_ticks([0, 4, 8, 12, 16])\n", + "plt.plot([-4.5, 4.5], [6.5, 6.5], \"r--\", linewidth=3)\n", + "plt.axis([-4.5, 4.5, -1, 17])\n", + "plt.subplots_adjust(right=1)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we define a polynomial transformation of degree two only (we continue to live in a plane with $x_i$ and $y_i$ as variables)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "z = \\phi(x_i) =\\left(x_i^2, y_i^2, \\sqrt{2}x_iy_i\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our new basis, the equations we solved earlier are basically the same, that is we have now (without the slack option for simplicity)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{z}_i^T\\boldsymbol{z}_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to the constraints $\\lambda_i\\geq 0$, $\\sum_i\\lambda_iy_i=0$, and for the support vectors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_i(\\boldsymbol{w}^T\\boldsymbol{z}_i+b)= 1 \\hspace{0.1cm}\\forall i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "from which we also find $b$.\n", + "To compute $\\boldsymbol{z}_i^T\\boldsymbol{z}_j$ we define the kernel $K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=\\boldsymbol{z}_i^T\\boldsymbol{z}_j= \\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the above example, the kernel reads" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=[x_i^2, y_i^2, \\sqrt{2}x_iy_i]^T\\begin{bmatrix} x_j^2 \\\\ y_j^2 \\\\ \\sqrt{2}x_jy_j \\end{bmatrix}=x_i^2x_j^2+2x_ix_jy_iy_j+y_i^2y_j^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We note that this is nothing but the dot product of the two original\n", + "vectors $(\\boldsymbol{x}_i^T\\boldsymbol{x}_j)^2$. Instead of thus computing the\n", + "product in the Lagrangian of $\\boldsymbol{z}_i^T\\boldsymbol{z}_j$ we simply compute\n", + "the dot product $(\\boldsymbol{x}_i^T\\boldsymbol{x}_j)^2$.\n", + "\n", + "\n", + "This leads to the so-called\n", + "kernel trick and the result leads to the same as if we went through\n", + "the trouble of performing the transformation\n", + "$\\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j)$ during the SVM calculations.\n", + "\n", + "\n", + "\n", + "Using our definition of the kernel We can rewrite again the Lagrangian" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{z}_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to the constraints $\\lambda_i\\geq 0$, $\\sum_i\\lambda_iy_i=0$ in terms of a convex optimization problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1K(\\boldsymbol{x}_1,\\boldsymbol{x}_1) & y_1y_2K(\\boldsymbol{x}_1,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_1,\\boldsymbol{x}_n) \\\\\n", + "y_2y_1K(\\boldsymbol{x}_2,\\boldsymbol{x}_1) & y_2y_2(\\boldsymbol{x}_2,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_2,\\boldsymbol{x}_n) \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "y_ny_1K(\\boldsymbol{x}_n,\\boldsymbol{x}_1) & y_ny_2K(\\boldsymbol{x}_n\\boldsymbol{x}_2) & \\dots & \\dots & y_ny_nK(\\boldsymbol{x}_n,\\boldsymbol{x}_n) \\\\\n", + "\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{1}\\boldsymbol{\\lambda},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n", + "$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n", + "If we add the slack constants this leads to the additional constraint $0\\leq \\lambda_i \\leq C$.\n", + "\n", + "We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{\\lambda}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{\\lambda}^T\\boldsymbol{P}\\boldsymbol{\\lambda}+\\boldsymbol{q}^T\\boldsymbol{\\lambda},\\\\ \\nonumber\n", + " &\\mathrm{subject\\hspace{0.1cm}to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{\\lambda} \\preceq \\boldsymbol{h} \\hspace{0.2cm} \\wedge \\boldsymbol{A}\\boldsymbol{\\lambda}=f.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we discuss how to solve these equations. Here we note that the matrix $\\boldsymbol{P}$ has matrix elements $p_{ij}=y_iy_jK(\\boldsymbol{x}_i,\\boldsymbol{x}_j)$.\n", + "Given a kernel $K$ and the targets $y_i$ this matrix is easy to set up. The constraint $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$ leads to $f=0$ and $\\boldsymbol{A}=\\boldsymbol{y}$. How to set up the matrix $\\boldsymbol{G}$ is discussed later. Here note that the inequalities $0\\leq \\lambda_i \\leq C$ can be split up into\n", + "$0\\leq \\lambda_i$ and $\\lambda_i \\leq C$. These two inequalities define then the matrix $\\boldsymbol{G}$ and the vector $\\boldsymbol{h}$.\n", + "\n", + "\n", + "\n", + "## Different kernels and Mercer's theorem\n", + "\n", + "There are several popular kernels being used. These are\n", + "1. Linear: $K(\\boldsymbol{x},\\boldsymbol{y})=\\boldsymbol{x}^T\\boldsymbol{y}$,\n", + "\n", + "2. Polynomial: $K(\\boldsymbol{x},\\boldsymbol{y})=(\\boldsymbol{x}^T\\boldsymbol{y}+\\gamma)^d$,\n", + "\n", + "3. Gaussian Radial Basis Function: $K(\\boldsymbol{x},\\boldsymbol{y})=\\exp{\\left(-\\gamma\\vert\\vert\\boldsymbol{x}-\\boldsymbol{y}\\vert\\vert^2\\right)}$,\n", + "\n", + "4. Tanh: $K(\\boldsymbol{x},\\boldsymbol{y})=\\tanh{(\\boldsymbol{x}^T\\boldsymbol{y}+\\gamma)}$,\n", + "\n", + "and many other ones.\n", + "\n", + "An important theorem for us is [Mercer's\n", + "theorem](https://en.wikipedia.org/wiki/Mercer%27s_theorem). The\n", + "theorem states that if a kernel function $K$ is symmetric, continuous\n", + "and leads to a positive semi-definite matrix $\\boldsymbol{P}$ then there\n", + "exists a function $\\phi$ that maps $\\boldsymbol{x}_i$ and $\\boldsymbol{x}_j$ into\n", + "another space (possibly with much higher dimensions) such that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=\\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So you can use $K$ as a kernel since you know $\\phi$ exists, even if\n", + "you don’t know what $\\phi$ is. \n", + "\n", + "Note that some frequently used kernels (such as the Sigmoid kernel)\n", + "don’t respect all of Mercer’s conditions, yet they generally work well\n", + "in practice.\n", + "\n", + "\n", + "## The moons example" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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jjcxMcHo6GiQ95fyyr27TKQM8pzaWsSpxFIdSjIiKchzamtZ7viYxS2YJXvqLhNJQV7jEll304XUPDMv5FRsyZZaMiIFVpYV6OryKy8lGZECK8sK9LJ0+cls6i4TKbAyTB8uU5efzKaWjIjkqixdfpJMSUZEclWWLj9Jpu4yEclVGbr8pD21ZEREJBglGRERCUZJRkREglGSERGRYJRkREQkGCUZEREJRklGRESCUZIREZFglGRERCQYJRkREQlGSUZERIJRkhERkWCUZEREJBglGRERCUZJRkREglGSERGRYJRkREQkGCUZEREJRklGRESCUZIREZFglGRERCQYJRkREQlGSUZERILJPcmY2S1mtsPMjprZ5i7Kf8nMpszskJk9ZGanZxCmiIj0IfckA+wD7gUemqugmV0B3AFcDpwDLAfuCRmciIj0L/ck4+7b3P2HwIEuin8BeNDdd7n728BGYHXA8EREZABDeQfQo/OBHzV9/xIwYmb/0t1nJSkzWwOsqX971Mx+nkGMgzoLeCvvILqgONNVhDiLECMozrR9ZJAfLlqSGQYONX3f+PoMElpC7v4A8ACAme1w90uCRzggxZkuxZmeIsQIijNtZrZjkJ8P2l1mZhNm5m0ez/bxltPAmU3fN74+PHi0IiKStqAtGXcfTfktdwEXAFvr318A7E/qKhMRkfzlPvBvZkNmNh84DTjNzOabWbvktwW4wczOM7NFwF3A5i4P9cDg0WZCcaZLcaanCDGC4kzbQHGau6cVSH8BmK0H7m55+h53X29my4BfAOe5+956+S8D/x5YAPwtcJO7H80wZBER6VLuSUZERMor9+4yEREpLyUZEREJprRJppc90cxstZkdN7PppsdobHHWy+eyd5uZLTazH5jZETPbY2bXdiibWX32GFdu+951G2dRPos512VXceZcl6eb2YP13/VhM9tpZp/uUD6vv+uu4+y3PkubZOhhT7S65919uOkxES60UxRl77ZNwDFgBLgO+KaZnd+hfFb12VVcOdcd9FZ/UX8WI6jLXv6286rLIeD/AiuBfwGsA7aa2TmtBXOuz67jrOu5PkubZHrcEy03Rdi7zcwWAlcD69x92t2fBR4Hrg997BTjym3fu1jrr1UPn8Vc9xAswt+2ux9x9/Xu/n/c/YS7PwG8DlycUDy3+uwxzr6UNsn04SIze8vMdpvZug5rdfJ0PrX92hpO7t0W+LgrgOPuvrvl2J1aMlnUZy9x5VV30Hv9xf5ZzLMuexVFXZrZCLXPwa6El6OpzznihD7qM7YPb16eAX4b2EPtF/4YMAN8Nc+gEvS0d1vA4zaOfUab8lnVZy9x5VV3ScduHD8pziJ8FvOsy15EUZdm9j7gvwDfcfdXE4pEUZ9dxNlXfRayJWMp74nm7q+5++v15uIrwAbgmtjiJNDebV3E2XrcxrETjxuqPhP0Elee+951HWeGdTeIQuwhGENdmtk84BFq43G3tCmWe312E2e/9VnIJOPuo+5ubR6XpnEIwCKMs7F3W0Mqe7d1EeduYMjMzm05drsm9axDkEJ9JuglriB116VB6i9U3Q0iz7ocRKZ1aWYGPEhtssfV7v5em6K51mcPcbbqqj4LmWS6YT3siWZmn673RWJmH6U2w+JHSWXzjJPB9m7rm7sfAbYBG8xsoZl9AriK2pXPLFnVZ49x5VJ3vcZZkM9ibnXZS5x51mXdN4HfAj7j7u92KJdrfdJlnH3Xp7uX8gGsp5Zpmx/r668to9ZEXVb//mvAfuAI8Bq1ZuD7Youz/tyX67G+AzwMnJ5RnIuBH9braC9wbdNrudVnu7hiqrte4ozxsxhhXXYVZ851eXY9rl/XY2o8roupPnuJs9/61N5lIiISTGm7y0REJH9KMiIiEoySjIiIBKMkIyIiwSjJiIhIMEoyIiISjJKMiIgEoyQjIiLBKMmIZMDMnqpvOLqq5Xkzs8311/4sr/hEQtGKf5EMmNkFwM+A/wV8zN2P15//j9S2FPm2u6/JMUSRINSSEcmAu79EbUPM36J+R0wz+wq1BLMVuCm/6ETCUUtGJCNm9kHgf1PbZPBrwDeAvwf+rbsfyzM2kVDUkhHJiLu/AfwltZ1vvwE8B6xqTTBmdpmZPW5m/68+VrM682BFUqIkI5KtN5u+vsHd/zmhzDDwc+BWoNN9SESipyQjkhEz+zy1brKp+lO3JpVz9+3u/hV3/z5wIqv4REJQkhHJgJn9PvAdarfa/R3gVeCL9TsMipSWkoxIYGZ2KfB94A3gU+7+JrVb1w4BWhsjpaYkIxJQfX3ME8Ah4PfcfRKg3hW2A7jKzD6ZY4giQSnJiARiZh+mNkXZgSvc/ZctRe6s//sXmQYmkqGhvAMQKSt3/ydgaYfXfwJYdhGJZE9JRiQyZjYMfLj+7TxgmZldCBx09725BSbSB634F4mMmY0C4wkvfcfdV2cajMiAlGRERCQYDfyLiEgwSjIiIhKMkoyIiASjJCMiIsEoyYiISDBKMiIiEoySjIiIBKMkIyIiwfx/zZhYio7fGbEAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/svm/_base.py:1199: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_2.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_3.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_4.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Phi(-1.0, -2) = [0.74081822]\n", + "Phi(-1.0, 1) = [0.30119421]\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_6.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division, print_function, unicode_literals\n", + "\n", + "import numpy as np\n", + "np.random.seed(42)\n", + "\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "plt.rcParams['axes.labelsize'] = 14\n", + "plt.rcParams['xtick.labelsize'] = 12\n", + "plt.rcParams['ytick.labelsize'] = 12\n", + "\n", + "\n", + "from sklearn.svm import SVC\n", + "from sklearn import datasets\n", + "\n", + "\n", + "\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.svm import LinearSVC\n", + "\n", + "\n", + "from sklearn.datasets import make_moons\n", + "X, y = make_moons(n_samples=100, noise=0.15, random_state=42)\n", + "\n", + "def plot_dataset(X, y, axes):\n", + " plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\")\n", + " plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\")\n", + " plt.axis(axes)\n", + " plt.grid(True, which='both')\n", + " plt.xlabel(r\"$x_1$\", fontsize=20)\n", + " plt.ylabel(r\"$x_2$\", fontsize=20, rotation=0)\n", + "\n", + "plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n", + "plt.show()\n", + "\n", + "from sklearn.datasets import make_moons\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.preprocessing import PolynomialFeatures\n", + "\n", + "polynomial_svm_clf = Pipeline([\n", + " (\"poly_features\", PolynomialFeatures(degree=3)),\n", + " (\"scaler\", StandardScaler()),\n", + " (\"svm_clf\", LinearSVC(C=10, loss=\"hinge\", random_state=42))\n", + " ])\n", + "\n", + "polynomial_svm_clf.fit(X, y)\n", + "\n", + "def plot_predictions(clf, axes):\n", + " x0s = np.linspace(axes[0], axes[1], 100)\n", + " x1s = np.linspace(axes[2], axes[3], 100)\n", + " x0, x1 = np.meshgrid(x0s, x1s)\n", + " X = np.c_[x0.ravel(), x1.ravel()]\n", + " y_pred = clf.predict(X).reshape(x0.shape)\n", + " y_decision = clf.decision_function(X).reshape(x0.shape)\n", + " plt.contourf(x0, x1, y_pred, cmap=plt.cm.brg, alpha=0.2)\n", + " plt.contourf(x0, x1, y_decision, cmap=plt.cm.brg, alpha=0.1)\n", + "\n", + "plot_predictions(polynomial_svm_clf, [-1.5, 2.5, -1, 1.5])\n", + "plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n", + "\n", + "plt.show()\n", + "\n", + "\n", + "from sklearn.svm import SVC\n", + "\n", + "poly_kernel_svm_clf = Pipeline([\n", + " (\"scaler\", StandardScaler()),\n", + " (\"svm_clf\", SVC(kernel=\"poly\", degree=3, coef0=1, C=5))\n", + " ])\n", + "poly_kernel_svm_clf.fit(X, y)\n", + "\n", + "poly100_kernel_svm_clf = Pipeline([\n", + " (\"scaler\", StandardScaler()),\n", + " (\"svm_clf\", SVC(kernel=\"poly\", degree=10, coef0=100, C=5))\n", + " ])\n", + "poly100_kernel_svm_clf.fit(X, y)\n", + "\n", + "plt.figure(figsize=(11, 4))\n", + "\n", + "plt.subplot(121)\n", + "plot_predictions(poly_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])\n", + "plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n", + "plt.title(r\"$d=3, r=1, C=5$\", fontsize=18)\n", + "\n", + "plt.subplot(122)\n", + "plot_predictions(poly100_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])\n", + "plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n", + "plt.title(r\"$d=10, r=100, C=5$\", fontsize=18)\n", + "\n", + "plt.show()\n", + "\n", + "def gaussian_rbf(x, landmark, gamma):\n", + " return np.exp(-gamma * np.linalg.norm(x - landmark, axis=1)**2)\n", + "\n", + "gamma = 0.3\n", + "\n", + "x1s = np.linspace(-4.5, 4.5, 200).reshape(-1, 1)\n", + "x2s = gaussian_rbf(x1s, -2, gamma)\n", + "x3s = gaussian_rbf(x1s, 1, gamma)\n", + "\n", + "XK = np.c_[gaussian_rbf(X1D, -2, gamma), gaussian_rbf(X1D, 1, gamma)]\n", + "yk = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n", + "\n", + "plt.figure(figsize=(11, 4))\n", + "\n", + "plt.subplot(121)\n", + "plt.grid(True, which='both')\n", + "plt.axhline(y=0, color='k')\n", + "plt.scatter(x=[-2, 1], y=[0, 0], s=150, alpha=0.5, c=\"red\")\n", + "plt.plot(X1D[:, 0][yk==0], np.zeros(4), \"bs\")\n", + "plt.plot(X1D[:, 0][yk==1], np.zeros(5), \"g^\")\n", + "plt.plot(x1s, x2s, \"g--\")\n", + "plt.plot(x1s, x3s, \"b:\")\n", + "plt.gca().get_yaxis().set_ticks([0, 0.25, 0.5, 0.75, 1])\n", + "plt.xlabel(r\"$x_1$\", fontsize=20)\n", + "plt.ylabel(r\"Similarity\", fontsize=14)\n", + "plt.annotate(r'$\\mathbf{x}$',\n", + " xy=(X1D[3, 0], 0),\n", + " xytext=(-0.5, 0.20),\n", + " ha=\"center\",\n", + " arrowprops=dict(facecolor='black', shrink=0.1),\n", + " fontsize=18,\n", + " )\n", + "plt.text(-2, 0.9, \"$x_2$\", ha=\"center\", fontsize=20)\n", + "plt.text(1, 0.9, \"$x_3$\", ha=\"center\", fontsize=20)\n", + "plt.axis([-4.5, 4.5, -0.1, 1.1])\n", + "\n", + "plt.subplot(122)\n", + "plt.grid(True, which='both')\n", + "plt.axhline(y=0, color='k')\n", + "plt.axvline(x=0, color='k')\n", + "plt.plot(XK[:, 0][yk==0], XK[:, 1][yk==0], \"bs\")\n", + "plt.plot(XK[:, 0][yk==1], XK[:, 1][yk==1], \"g^\")\n", + "plt.xlabel(r\"$x_2$\", fontsize=20)\n", + "plt.ylabel(r\"$x_3$ \", fontsize=20, rotation=0)\n", + "plt.annotate(r'$\\phi\\left(\\mathbf{x}\\right)$',\n", + " xy=(XK[3, 0], XK[3, 1]),\n", + " xytext=(0.65, 0.50),\n", + " ha=\"center\",\n", + " arrowprops=dict(facecolor='black', shrink=0.1),\n", + " fontsize=18,\n", + " )\n", + "plt.plot([-0.1, 1.1], [0.57, -0.1], \"r--\", linewidth=3)\n", + "plt.axis([-0.1, 1.1, -0.1, 1.1])\n", + " \n", + "plt.subplots_adjust(right=1)\n", + "\n", + "plt.show()\n", + "\n", + "\n", + "x1_example = X1D[3, 0]\n", + "for landmark in (-2, 1):\n", + " k = gaussian_rbf(np.array([[x1_example]]), np.array([[landmark]]), gamma)\n", + " print(\"Phi({}, {}) = {}\".format(x1_example, landmark, k))\n", + "\n", + "rbf_kernel_svm_clf = Pipeline([\n", + " (\"scaler\", StandardScaler()),\n", + " (\"svm_clf\", SVC(kernel=\"rbf\", gamma=5, C=0.001))\n", + " ])\n", + "rbf_kernel_svm_clf.fit(X, y)\n", + "\n", + "\n", + "from sklearn.svm import SVC\n", + "\n", + "gamma1, gamma2 = 0.1, 5\n", + "C1, C2 = 0.001, 1000\n", + "hyperparams = (gamma1, C1), (gamma1, C2), (gamma2, C1), (gamma2, C2)\n", + "\n", + "svm_clfs = []\n", + "for gamma, C in hyperparams:\n", + " rbf_kernel_svm_clf = Pipeline([\n", + " (\"scaler\", StandardScaler()),\n", + " (\"svm_clf\", SVC(kernel=\"rbf\", gamma=gamma, C=C))\n", + " ])\n", + " rbf_kernel_svm_clf.fit(X, y)\n", + " svm_clfs.append(rbf_kernel_svm_clf)\n", + "\n", + "plt.figure(figsize=(11, 7))\n", + "\n", + "for i, svm_clf in enumerate(svm_clfs):\n", + " plt.subplot(221 + i)\n", + " plot_predictions(svm_clf, [-1.5, 2.5, -1, 1.5])\n", + " plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n", + " gamma, C = hyperparams[i]\n", + " plt.title(r\"$\\gamma = {}, C = {}$\".format(gamma, C), fontsize=16)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Mathematical optimization of convex functions\n", + "\n", + "A mathematical (quadratic) optimization problem, or just optimization problem, has the form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{\\lambda}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{\\lambda}^T\\boldsymbol{P}\\boldsymbol{\\lambda}+\\boldsymbol{q}^T\\boldsymbol{\\lambda},\\\\ \\nonumber\n", + " &\\mathrm{subject\\hspace{0.1cm}to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{\\lambda} \\preceq \\boldsymbol{h} \\wedge \\boldsymbol{A}\\boldsymbol{\\lambda}=f.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to some constraints for say a selected set $i=1,2,\\dots, n$.\n", + "In our case we are optimizing with respect to the Lagrangian multipliers $\\lambda_i$, and the\n", + "vector $\\boldsymbol{\\lambda}=[\\lambda_1, \\lambda_2,\\dots, \\lambda_n]$ is the optimization variable we are dealing with.\n", + "\n", + "In our case we are particularly interested in a class of optimization problems called convex optmization problems. \n", + "In our discussion on gradient descent methods we discussed at length the definition of a convex function. \n", + "\n", + "Convex optimization problems play a central role in applied mathematics and we recommend strongly [Boyd and Vandenberghe's text on the topics](http://web.stanford.edu/~boyd/cvxbook/).\n", + "\n", + "\n", + "\n", + "\n", + "If we use Python as programming language and wish to venture beyond\n", + "**scikit-learn**, **tensorflow** and similar software which makes our\n", + "lives so much easier, we need to dive into the wonderful world of\n", + "quadratic programming. We can, if we wish, solve the minimization\n", + "problem using say standard gradient methods or conjugate gradient\n", + "methods. However, these methods tend to exhibit a rather slow\n", + "converge. So, welcome to the promised land of quadratic programming.\n", + "\n", + "The functions we need are contained in the quadratic programming package **CVXOPT** and we need to import it together with **numpy** as" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'cvxopt'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41348/4034668048.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mcvxopt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'cvxopt'" + ] + } + ], + "source": [ + "import numpy\n", + "import cvxopt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will make our life much easier. You don't need t write your own optimizer.\n", + "\n", + "\n", + "\n", + "We remind ourselves about the general problem we want to solve" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{x}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{x}^T\\boldsymbol{P}\\boldsymbol{x}+\\boldsymbol{q}^T\\boldsymbol{x},\\\\ \\nonumber\n", + " &\\mathrm{subject\\hspace{0.1cm} to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{x} \\preceq \\boldsymbol{h} \\wedge \\boldsymbol{A}\\boldsymbol{x}=f.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{x}\\hspace{0.2cm} \\frac{1}{2}x^2+5x+3y \\\\ \\nonumber\n", + " &\\mathrm{subject to} \\\\ \\nonumber\n", + " &x, y \\geq 0 \\\\ \\nonumber\n", + " &x+3y \\geq 15 \\\\ \\nonumber\n", + " &2x+5y \\leq 100 \\\\ \\nonumber\n", + " &3x+4y \\leq 80. \\\\ \\nonumber\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The minimization problem can be rewritten in terms of vectors and matrices as (with $x$ and $y$ being the unknowns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{1}{2}\\begin{bmatrix} x\\\\ y \\end{bmatrix}^T \\begin{bmatrix} 1 & 0\\\\ 0 & 0 \\end{bmatrix} \\begin{bmatrix} x \\\\ y \\end{bmatrix} + \\begin{bmatrix}3\\\\ 4 \\end{bmatrix}^T \\begin{bmatrix}x \\\\ y \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, we can now set up the inequalities (we need to change $\\geq$ to $\\leq$ by multiplying with $-1$ on bot sides) as the following matrix-vector equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{bmatrix} -1 & 0 \\\\ 0 & -1 \\\\ -1 & -3 \\\\ 2 & 5 \\\\ 3 & 4\\end{bmatrix}\\begin{bmatrix} x \\\\ y\\end{bmatrix} \\preceq \\begin{bmatrix}0 \\\\ 0\\\\ -15 \\\\ 100 \\\\ 80\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have collapsed all the inequalities into a single matrix $\\boldsymbol{G}$. We see also that our matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{P} =\\begin{bmatrix} 1 & 0\\\\ 0 & 0 \\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "is clearly positive semi-definite (all eigenvalues larger or equal zero). \n", + "Finally, the vector $\\boldsymbol{h}$ is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{h} = \\begin{bmatrix}0 \\\\ 0\\\\ -15 \\\\ 100 \\\\ 80\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we don't have any equalities the matrix $\\boldsymbol{A}$ is set to zero\n", + "The following code solves the equations for us" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# Import the necessary packages\n", + "import numpy\n", + "from cvxopt import matrix\n", + "from cvxopt import solvers\n", + "P = matrix(numpy.diag([1,0]), tc=’d’)\n", + "q = matrix(numpy.array([3,4]), tc=’d’)\n", + "G = matrix(numpy.array([[-1,0],[0,-1],[-1,-3],[2,5],[3,4]]), tc=’d’)\n", + "h = matrix(numpy.array([0,0,-15,100,80]), tc=’d’)\n", + "# Construct the QP, invoke solver\n", + "sol = solvers.qp(P,q,G,h)\n", + "# Extract optimal value and solution\n", + "sol[’x’] \n", + "sol[’primal objective’]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are now ready to return to our setup of the optmization problem for a more realistic case. Introducing the **slack** parameter $C$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1K(\\boldsymbol{x}_1,\\boldsymbol{x}_1) & y_1y_2K(\\boldsymbol{x}_1,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_1,\\boldsymbol{x}_n) \\\\\n", + "y_2y_1K(\\boldsymbol{x}_2,\\boldsymbol{x}_1) & y_2y_2K(\\boldsymbol{x}_2,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_2,\\boldsymbol{x}_n) \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "y_ny_1K(\\boldsymbol{x}_n,\\boldsymbol{x}_1) & y_ny_2K(\\boldsymbol{x}_n\\boldsymbol{x}_2) & \\dots & \\dots & y_ny_nK(\\boldsymbol{x}_n,\\boldsymbol{x}_n) \\\\\n", + "\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{I}\\boldsymbol{\\lambda},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n", + "$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n", + "With the slack constants this leads to the additional constraint $0\\leq \\lambda_i \\leq C$.\n", + "\n", + "**code will be added**" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5.py b/doc/LectureNotes/_build/jupyter_execute/chapter5.py new file mode 100644 index 000000000..771895dc7 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter5.py @@ -0,0 +1,1102 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Support Vector Machines, overarching aims +# +# A Support Vector Machine (SVM) is a very powerful and versatile +# Machine Learning method, capable of performing linear or nonlinear +# classification, regression, and even outlier detection. It is one of +# the most popular models in Machine Learning, and anyone interested in +# Machine Learning should have it in their toolbox. SVMs are +# particularly well suited for classification of complex but small-sized or +# medium-sized datasets. +# +# The case with two well-separated classes only can be understood in an +# intuitive way in terms of lines in a two-dimensional space separating +# the two classes (see figure below). +# +# The basic mathematics behind the SVM is however less familiar to most of us. +# It relies on the definition of hyperplanes and the +# definition of a **margin** which separates classes (in case of +# classification problems) of variables. It is also used for regression +# problems. +# +# With SVMs we distinguish between hard margin and soft margins. The +# latter introduces a so-called softening parameter to be discussed +# below. We distinguish also between linear and non-linear +# approaches. The latter are the most frequent ones since it is rather +# unlikely that we can separate classes easily by say straight lines. +# +# +# ## Hyperplanes and all that +# +# The theory behind support vector machines (SVM hereafter) is based on +# the mathematical description of so-called hyperplanes. Let us start +# with a two-dimensional case. This will also allow us to introduce our +# first SVM examples. These will be tailored to the case of two specific +# classes, as displayed in the figure here based on the usage of the petal data. +# +# We assume here that our data set can be well separated into two +# domains, where a straight line does the job in the separating the two +# classes. Here the two classes are represented by either squares or +# circles. + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +from sklearn import datasets +from sklearn.svm import SVC, LinearSVC +from sklearn.linear_model import SGDClassifier +from sklearn.preprocessing import StandardScaler +import matplotlib +import matplotlib.pyplot as plt +plt.rcParams['axes.labelsize'] = 14 +plt.rcParams['xtick.labelsize'] = 12 +plt.rcParams['ytick.labelsize'] = 12 + + +iris = datasets.load_iris() +X = iris["data"][:, (2, 3)] # petal length, petal width +y = iris["target"] + +setosa_or_versicolor = (y == 0) | (y == 1) +X = X[setosa_or_versicolor] +y = y[setosa_or_versicolor] + + + +C = 5 +alpha = 1 / (C * len(X)) + +lin_clf = LinearSVC(loss="hinge", C=C, random_state=42) +svm_clf = SVC(kernel="linear", C=C) +sgd_clf = SGDClassifier(loss="hinge", learning_rate="constant", eta0=0.001, alpha=alpha, + max_iter=100000, random_state=42) + +scaler = StandardScaler() +X_scaled = scaler.fit_transform(X) + +lin_clf.fit(X_scaled, y) +svm_clf.fit(X_scaled, y) +sgd_clf.fit(X_scaled, y) + +print("LinearSVC: ", lin_clf.intercept_, lin_clf.coef_) +print("SVC: ", svm_clf.intercept_, svm_clf.coef_) +print("SGDClassifier(alpha={:.5f}):".format(sgd_clf.alpha), sgd_clf.intercept_, sgd_clf.coef_) + +# Compute the slope and bias of each decision boundary +w1 = -lin_clf.coef_[0, 0]/lin_clf.coef_[0, 1] +b1 = -lin_clf.intercept_[0]/lin_clf.coef_[0, 1] +w2 = -svm_clf.coef_[0, 0]/svm_clf.coef_[0, 1] +b2 = -svm_clf.intercept_[0]/svm_clf.coef_[0, 1] +w3 = -sgd_clf.coef_[0, 0]/sgd_clf.coef_[0, 1] +b3 = -sgd_clf.intercept_[0]/sgd_clf.coef_[0, 1] + +# Transform the decision boundary lines back to the original scale +line1 = scaler.inverse_transform([[-10, -10 * w1 + b1], [10, 10 * w1 + b1]]) +line2 = scaler.inverse_transform([[-10, -10 * w2 + b2], [10, 10 * w2 + b2]]) +line3 = scaler.inverse_transform([[-10, -10 * w3 + b3], [10, 10 * w3 + b3]]) + +# Plot all three decision boundaries +plt.figure(figsize=(11, 4)) +plt.plot(line1[:, 0], line1[:, 1], "k:", label="LinearSVC") +plt.plot(line2[:, 0], line2[:, 1], "b--", linewidth=2, label="SVC") +plt.plot(line3[:, 0], line3[:, 1], "r-", label="SGDClassifier") +plt.plot(X[:, 0][y==1], X[:, 1][y==1], "bs") # label="Iris-Versicolor" +plt.plot(X[:, 0][y==0], X[:, 1][y==0], "yo") # label="Iris-Setosa" +plt.xlabel("Petal length", fontsize=14) +plt.ylabel("Petal width", fontsize=14) +plt.legend(loc="upper center", fontsize=14) +plt.axis([0, 5.5, 0, 2]) + +plt.show() + + +# The aim of the SVM algorithm is to find a hyperplane in a +# $p$-dimensional space, where $p$ is the number of features that +# distinctly classifies the data points. +# +# In a $p$-dimensional space, a hyperplane is what we call an affine subspace of dimension of $p-1$. +# As an example, in two dimension, a hyperplane is simply as straight line while in three dimensions it is +# a two-dimensional subspace, or stated simply, a plane. +# +# In two dimensions, with the variables $x_1$ and $x_2$, the hyperplane is defined as + +# $$ +# b+w_1x_1+w_2x_2=0, +# $$ + +# where $b$ is the intercept and $w_1$ and $w_2$ define the elements of a vector orthogonal to the line +# $b+w_1x_1+w_2x_2=0$. +# In two dimensions we define the vectors $\boldsymbol{x} =[x1,x2]$ and $\boldsymbol{w}=[w1,w2]$. +# We can then rewrite the above equation as + +# $$ +# \boldsymbol{x}^T\boldsymbol{w}+b=0. +# $$ + +# We limit ourselves to two classes of outputs $y_i$ and assign these classes the values $y_i = \pm 1$. +# In a $p$-dimensional space of say $p$ features we have a hyperplane defines as + +# $$ +# b+wx_1+w_2x_2+\dots +w_px_p=0. +# $$ + +# If we define a +# matrix $\boldsymbol{X}=\left[\boldsymbol{x}_1,\boldsymbol{x}_2,\dots, \boldsymbol{x}_p\right]$ +# of dimension $n\times p$, where $n$ represents the observations for each feature and each vector $x_i$ is a column vector of the matrix $\boldsymbol{X}$, + +# $$ +# \boldsymbol{x}_i = \begin{bmatrix} x_{i1} \\ x_{i2} \\ \dots \\ \dots \\ x_{ip} \end{bmatrix}. +# $$ + +# If the above condition is not met for a given vector $\boldsymbol{x}_i$ we have + +# $$ +# b+w_1x_{i1}+w_2x_{i2}+\dots +w_px_{ip} >0, +# $$ + +# if our output $y_i=1$. +# In this case we say that $\boldsymbol{x}_i$ lies on one of the sides of the hyperplane and if + +# $$ +# b+w_1x_{i1}+w_2x_{i2}+\dots +w_px_{ip} < 0, +# $$ + +# for the class of observations $y_i=-1$, +# then $\boldsymbol{x}_i$ lies on the other side. +# +# Equivalently, for the two classes of observations we have + +# $$ +# y_i\left(b+w_1x_{i1}+w_2x_{i2}+\dots +w_px_{ip}\right) > 0. +# $$ + +# When we try to separate hyperplanes, if it exists, we can use it to construct a natural classifier: a test observation is assigned a given class depending on which side of the hyperplane it is located. +# +# +# ### The two-dimensional case +# +# Let us try to develop our intuition about SVMs by limiting ourselves to a two-dimensional +# plane. To separate the two classes of data points, there are many +# possible lines (hyperplanes if you prefer a more strict naming) +# that could be chosen. Our objective is to find a +# plane that has the maximum margin, i.e the maximum distance between +# data points of both classes. Maximizing the margin distance provides +# some reinforcement so that future data points can be classified with +# more confidence. +# +# What a linear classifier attempts to accomplish is to split the +# feature space into two half spaces by placing a hyperplane between the +# data points. This hyperplane will be our decision boundary. All +# points on one side of the plane will belong to class one and all points +# on the other side of the plane will belong to the second class two. +# +# Unfortunately there are many ways in which we can place a hyperplane +# to divide the data. Below is an example of two candidate hyperplanes +# for our data sample. +# +# +# Let us define the function + +# $$ +# f(x) = \boldsymbol{w}^T\boldsymbol{x}+b = 0, +# $$ + +# as the function that determines the line $L$ that separates two classes (our two features), see the figure here. +# +# +# Any point defined by $\boldsymbol{x}_i$ and $\boldsymbol{x}_2$ on the line $L$ will satisfy $\boldsymbol{w}^T(\boldsymbol{x}_1-\boldsymbol{x}_2)=0$. +# +# The signed distance $\delta$ from any point defined by a vector $\boldsymbol{x}$ and a point $\boldsymbol{x}_0$ on the line $L$ is then + +# $$ +# \delta = \frac{1}{\vert\vert \boldsymbol{w}\vert\vert}(\boldsymbol{w}^T\boldsymbol{x}+b). +# $$ + +# How do we find the parameter $b$ and the vector $\boldsymbol{w}$? What we could +# do is to define a cost function which now contains the set of all +# misclassified points $M$ and attempt to minimize this function + +# $$ +# C(\boldsymbol{w},b) = -\sum_{i\in M} y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b). +# $$ + +# We could now for example define all values $y_i =1$ as misclassified in case we have $\boldsymbol{w}^T\boldsymbol{x}_i+b < 0$ and the opposite if we have $y_i=-1$. Taking the derivatives gives us + +# $$ +# \frac{\partial C}{\partial b} = -\sum_{i\in M} y_i, +# $$ + +# and + +# $$ +# \frac{\partial C}{\partial \boldsymbol{w}} = -\sum_{i\in M} y_ix_i. +# $$ + +# We can now use the Newton-Raphson method or different variants of the gradient descent family (from plain gradient descent to various stochastic gradient descent approaches) to solve the equations + +# $$ +# b \leftarrow b +\eta \frac{\partial C}{\partial b}, +# $$ + +# and + +# $$ +# \boldsymbol{w} \leftarrow \boldsymbol{w} +\eta \frac{\partial C}{\partial \boldsymbol{w}}, +# $$ + +# where $\eta$ is our by now well-known learning rate. +# +# +# +# The equations we discussed above can be coded rather easily (the +# framework is similar to what we developed for logistic +# regression). We are going to set up a simple case with two classes only and we want to find a line which separates them the best possible way. + +# There are however problems with this approach, although it looks +# pretty straightforward to implement. When running the above code, we see that we can easily end up with many diffeent lines which separate the two classes. +# +# +# For small +# gaps between the entries, we may also end up needing many iterations +# before the solutions converge and if the data cannot be separated +# properly into two distinct classes, we may not experience a converge +# at all. +# +# +# ### A better approach +# +# A better approach is rather to try to define a large margin between +# the two classes (if they are well separated from the beginning). +# +# Thus, we wish to find a margin $M$ with $\boldsymbol{w}$ normalized to +# $\vert\vert \boldsymbol{w}\vert\vert =1$ subject to the condition + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \geq M \hspace{0.1cm}\forall i=1,2,\dots, p. +# $$ + +# All points are thus at a signed distance from the decision boundary defined by the line $L$. The parameters $b$ and $w_1$ and $w_2$ define this line. +# +# We seek thus the largest value $M$ defined by + +# $$ +# \frac{1}{\vert \vert \boldsymbol{w}\vert\vert}y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \geq M \hspace{0.1cm}\forall i=1,2,\dots, n, +# $$ + +# or just + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \geq M\vert \vert \boldsymbol{w}\vert\vert \hspace{0.1cm}\forall i. +# $$ + +# If we scale the equation so that $\vert \vert \boldsymbol{w}\vert\vert = 1/M$, we have to find the minimum of +# $\boldsymbol{w}^T\boldsymbol{w}=\vert \vert \boldsymbol{w}\vert\vert$ (the norm) subject to the condition + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) \geq 1 \hspace{0.1cm}\forall i. +# $$ + +# We have thus defined our margin as the invers of the norm of +# $\boldsymbol{w}$. We want to minimize the norm in order to have a as large as +# possible margin $M$. Before we proceed, we need to remind ourselves +# about Lagrangian multipliers. +# +# +# ## A quick Reminder on Lagrangian Multipliers +# +# Consider a function of three independent variables $f(x,y,z)$ . For the function $f$ to be an +# extreme we have + +# $$ +# df=0. +# $$ + +# A necessary and sufficient condition is + +# $$ +# \frac{\partial f}{\partial x} =\frac{\partial f}{\partial y}=\frac{\partial f}{\partial z}=0, +# $$ + +# due to + +# $$ +# df = \frac{\partial f}{\partial x}dx+\frac{\partial f}{\partial y}dy+\frac{\partial f}{\partial z}dz. +# $$ + +# In many problems the variables $x,y,z$ are often subject to constraints (such as those above for the margin) +# so that they are no longer all independent. It is possible at least in principle to use each +# constraint to eliminate one variable +# and to proceed with a new and smaller set of independent varables. +# +# The use of so-called Lagrangian multipliers is an alternative technique when the elimination +# of variables is incovenient or undesirable. Assume that we have an equation of constraint on +# the variables $x,y,z$ + +# $$ +# \phi(x,y,z) = 0, +# $$ + +# resulting in + +# $$ +# d\phi = \frac{\partial \phi}{\partial x}dx+\frac{\partial \phi}{\partial y}dy+\frac{\partial \phi}{\partial z}dz =0. +# $$ + +# Now we cannot set anymore + +# $$ +# \frac{\partial f}{\partial x} =\frac{\partial f}{\partial y}=\frac{\partial f}{\partial z}=0, +# $$ + +# if $df=0$ is wanted +# because there are now only two independent variables! Assume $x$ and $y$ are the independent +# variables. +# Then $dz$ is no longer arbitrary. +# +# +# However, we can add to + +# $$ +# df = \frac{\partial f}{\partial x}dx+\frac{\partial f}{\partial y}dy+\frac{\partial f}{\partial z}dz, +# $$ + +# a multiplum of $d\phi$, viz. $\lambda d\phi$, resulting in + +# $$ +# df+\lambda d\phi = (\frac{\partial f}{\partial z}+\lambda +# \frac{\partial \phi}{\partial x})dx+(\frac{\partial f}{\partial y}+\lambda\frac{\partial \phi}{\partial y})dy+ +# (\frac{\partial f}{\partial z}+\lambda\frac{\partial \phi}{\partial z})dz =0. +# $$ + +# Our multiplier is chosen so that + +# $$ +# \frac{\partial f}{\partial z}+\lambda\frac{\partial \phi}{\partial z} =0. +# $$ + +# We need to remember that we took $dx$ and $dy$ to be arbitrary and thus we must have + +# $$ +# \frac{\partial f}{\partial x}+\lambda\frac{\partial \phi}{\partial x} =0, +# $$ + +# and + +# $$ +# \frac{\partial f}{\partial y}+\lambda\frac{\partial \phi}{\partial y} =0. +# $$ + +# When all these equations are satisfied, $df=0$. We have four unknowns, $x,y,z$ and +# $\lambda$. Actually we want only $x,y,z$, $\lambda$ needs not to be determined, +# it is therefore often called +# Lagrange's undetermined multiplier. +# If we have a set of constraints $\phi_k$ we have the equations + +# $$ +# \frac{\partial f}{\partial x_i}+\sum_k\lambda_k\frac{\partial \phi_k}{\partial x_i} =0. +# $$ + +# In order to solve the above problem, we define the following Lagrangian function to be minimized + +# $$ +# \cal{L}(\lambda,b,\boldsymbol{w})=\frac{1}{2}\boldsymbol{w}^T\boldsymbol{w}-\sum_{i=1}^n\lambda_i\left[y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)-1\right], +# $$ + +# where $\lambda_i$ is a so-called Lagrange multiplier subject to the condition $\lambda_i \geq 0$. +# +# Taking the derivatives with respect to $b$ and $\boldsymbol{w}$ we obtain + +# $$ +# \frac{\partial \cal{L}}{\partial b} = -\sum_{i} \lambda_iy_i=0, +# $$ + +# and + +# $$ +# \frac{\partial \cal{L}}{\partial \boldsymbol{w}} = 0 = \boldsymbol{w}-\sum_{i} \lambda_iy_i\boldsymbol{x}_i. +# $$ + +# Inserting these constraints into the equation for $\cal{L}$ we obtain + +# $$ +# \cal{L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j, +# $$ + +# subject to the constraints $\lambda_i\geq 0$ and $\sum_i\lambda_iy_i=0$. +# We must in addition satisfy the [Karush-Kuhn-Tucker](https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions) (KKT) condition + +# $$ +# \lambda_i\left[y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) -1\right] \hspace{0.1cm}\forall i. +# $$ + +# 1. If $\lambda_i > 0$, then $y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=1$ and we say that $x_i$ is on the boundary. +# +# 2. If $y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)> 1$, we say $x_i$ is not on the boundary and we set $\lambda_i=0$. +# +# When $\lambda_i > 0$, the vectors $\boldsymbol{x}_i$ are called support vectors. They are the vectors closest to the line (or hyperplane) and define the margin $M$. +# +# +# We can rewrite + +# $$ +# \cal{L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j, +# $$ + +# and its constraints in terms of a matrix-vector problem where we minimize w.r.t. $\lambda$ the following problem + +# $$ +# \frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1\boldsymbol{x}_1^T\boldsymbol{x}_1 & y_1y_2\boldsymbol{x}_1^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_1^T\boldsymbol{x}_n \\ +# y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +# \dots & \dots & \dots & \dots & \dots \\ +# \dots & \dots & \dots & \dots & \dots \\ +# y_ny_1\boldsymbol{x}_n^T\boldsymbol{x}_1 & y_ny_2\boldsymbol{x}_n^T\boldsymbol{x}_2 & \dots & \dots & y_ny_n\boldsymbol{x}_n^T\boldsymbol{x}_n \\ +# \end{bmatrix}\boldsymbol{\lambda}-\mathbb{1}\boldsymbol{\lambda}, +# $$ + +# subject to $\boldsymbol{y}^T\boldsymbol{\lambda}=0$. Here we defined the vectors $\boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n]$ and +# $\boldsymbol{y}=[y_1,y_2,\dots,y_n]$. +# +# +# +# Solving the above problem, yields the values of $\lambda_i$. +# To find the coefficients of your hyperplane we need simply to compute + +# $$ +# \boldsymbol{w}=\sum_{i} \lambda_iy_i\boldsymbol{x}_i. +# $$ + +# With our vector $\boldsymbol{w}$ we can in turn find the value of the intercept $b$ (here in two dimensions) via + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=1, +# $$ + +# resulting in + +# $$ +# b = \frac{1}{y_i}-\boldsymbol{w}^T\boldsymbol{x}_i, +# $$ + +# or if we write it out in terms of the support vectors only, with $N_s$ being their number, we have + +# $$ +# b = \frac{1}{N_s}\sum_{j\in N_s}\left(y_j-\sum_{i=1}^n\lambda_iy_i\boldsymbol{x}_i^T\boldsymbol{x}_j\right). +# $$ + +# With our hyperplane coefficients we can use our classifier to assign any observation by simply using + +# $$ +# y_i = \mathrm{sign}(\boldsymbol{w}^T\boldsymbol{x}_i+b). +# $$ + +# Below we discuss how to find the optimal values of $\lambda_i$. Before we proceed however, we discuss now the so-called soft classifier. +# +# +# ## A soft classifier +# +# Till now, the margin is strictly defined by the support vectors. This defines what is called a hard classifier, that is the margins are well defined. +# +# Suppose now that classes overlap in feature space, as shown in the +# figure here. One way to deal with this problem before we define the +# so-called **kernel approach**, is to allow a kind of slack in the sense +# that we allow some points to be on the wrong side of the margin. +# +# We introduce thus the so-called **slack** variables $\boldsymbol{\xi} =[\xi_1,x_2,\dots,x_n]$ and +# modify our previous equation + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=1, +# $$ + +# to + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=1-\xi_i, +# $$ + +# with the requirement $\xi_i\geq 0$. The total violation is now $\sum_i\xi$. +# The value $\xi_i$ in the constraint the last constraint corresponds to the amount by which the prediction +# $y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=1$ is on the wrong side of its margin. Hence by bounding the sum $\sum_i \xi_i$, +# we bound the total amount by which predictions fall on the wrong side of their margins. +# +# Misclassifications occur when $\xi_i > 1$. Thus bounding the total sum by some value $C$ bounds in turn the total number of +# misclassifications. +# +# +# This has in turn the consequences that we change our optmization problem to finding the minimum of + +# $$ +# \cal{L}=\frac{1}{2}\boldsymbol{w}^T\boldsymbol{w}-\sum_{i=1}^n\lambda_i\left[y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)-(1-\xi_)\right]+C\sum_{i=1}^n\xi_i-\sum_{i=1}^n\gamma_i\xi_i, +# $$ + +# subject to + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b)=1-\xi_i \hspace{0.1cm}\forall i, +# $$ + +# with the requirement $\xi_i\geq 0$. +# +# Taking the derivatives with respect to $b$ and $\boldsymbol{w}$ we obtain + +# $$ +# \frac{\partial \cal{L}}{\partial b} = -\sum_{i} \lambda_iy_i=0, +# $$ + +# and + +# $$ +# \frac{\partial \cal{L}}{\partial \boldsymbol{w}} = 0 = \boldsymbol{w}-\sum_{i} \lambda_iy_i\boldsymbol{x}_i, +# $$ + +# and + +# $$ +# \lambda_i = C-\gamma_i \hspace{0.1cm}\forall i. +# $$ + +# Inserting these constraints into the equation for $\cal{L}$ we obtain the same equation as before + +# $$ +# \cal{L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{x}_j, +# $$ + +# but now subject to the constraints $\lambda_i\geq 0$, $\sum_i\lambda_iy_i=0$ and $0\leq\lambda_i \leq C$. +# We must in addition satisfy the Karush-Kuhn-Tucker condition which now reads + +# 5 +# 0 +# +# < +# < +# < +# ! +# ! +# M +# A +# T +# H +# _ +# B +# L +# O +# C +# K + +# $$ +# \gamma_i\xi_i = 0, +# $$ + +# and + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{x}_i+b) -(1-\xi_) \geq 0 \hspace{0.1cm}\forall i. +# $$ + +# ## Kernels and non-linearity +# +# The cases we have studied till now, were all characterized by two classes +# with a close to linear separability. The classifiers we have described +# so far find linear boundaries in our input feature space. It is +# possible to make our procedure more flexible by exploring the feature +# space using other basis expansions such as higher-order polynomials, +# wavelets, splines etc. +# +# If our feature space is not easy to separate, as shown in the figure +# here, we can achieve a better separation by introducing more complex +# basis functions. The ideal would be, as shown in the next figure, to, via a specific transformation to +# obtain a separation between the classes which is almost linear. +# +# The change of basis, from $x\rightarrow z=\phi(x)$ leads to the same type of equations to be solved, except that +# we need to introduce for example a polynomial transformation to a two-dimensional training set. + +# In[2]: + + +import numpy as np +import os + +np.random.seed(42) + +# To plot pretty figures +import matplotlib +import matplotlib.pyplot as plt +plt.rcParams['axes.labelsize'] = 14 +plt.rcParams['xtick.labelsize'] = 12 +plt.rcParams['ytick.labelsize'] = 12 + + +from sklearn.svm import SVC +from sklearn import datasets + + + +X1D = np.linspace(-4, 4, 9).reshape(-1, 1) +X2D = np.c_[X1D, X1D**2] +y = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0]) + +plt.figure(figsize=(11, 4)) + +plt.subplot(121) +plt.grid(True, which='both') +plt.axhline(y=0, color='k') +plt.plot(X1D[:, 0][y==0], np.zeros(4), "bs") +plt.plot(X1D[:, 0][y==1], np.zeros(5), "g^") +plt.gca().get_yaxis().set_ticks([]) +plt.xlabel(r"$x_1$", fontsize=20) +plt.axis([-4.5, 4.5, -0.2, 0.2]) + +plt.subplot(122) +plt.grid(True, which='both') +plt.axhline(y=0, color='k') +plt.axvline(x=0, color='k') +plt.plot(X2D[:, 0][y==0], X2D[:, 1][y==0], "bs") +plt.plot(X2D[:, 0][y==1], X2D[:, 1][y==1], "g^") +plt.xlabel(r"$x_1$", fontsize=20) +plt.ylabel(r"$x_2$", fontsize=20, rotation=0) +plt.gca().get_yaxis().set_ticks([0, 4, 8, 12, 16]) +plt.plot([-4.5, 4.5], [6.5, 6.5], "r--", linewidth=3) +plt.axis([-4.5, 4.5, -1, 17]) +plt.subplots_adjust(right=1) +plt.show() + + +# Suppose we define a polynomial transformation of degree two only (we continue to live in a plane with $x_i$ and $y_i$ as variables) + +# $$ +# z = \phi(x_i) =\left(x_i^2, y_i^2, \sqrt{2}x_iy_i\right). +# $$ + +# With our new basis, the equations we solved earlier are basically the same, that is we have now (without the slack option for simplicity) + +# $$ +# \cal{L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{z}_i^T\boldsymbol{z}_j, +# $$ + +# subject to the constraints $\lambda_i\geq 0$, $\sum_i\lambda_iy_i=0$, and for the support vectors + +# $$ +# y_i(\boldsymbol{w}^T\boldsymbol{z}_i+b)= 1 \hspace{0.1cm}\forall i, +# $$ + +# from which we also find $b$. +# To compute $\boldsymbol{z}_i^T\boldsymbol{z}_j$ we define the kernel $K(\boldsymbol{x}_i,\boldsymbol{x}_j)$ as + +# $$ +# K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\boldsymbol{z}_i^T\boldsymbol{z}_j= \phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +# $$ + +# For the above example, the kernel reads + +# $$ +# K(\boldsymbol{x}_i,\boldsymbol{x}_j)=[x_i^2, y_i^2, \sqrt{2}x_iy_i]^T\begin{bmatrix} x_j^2 \\ y_j^2 \\ \sqrt{2}x_jy_j \end{bmatrix}=x_i^2x_j^2+2x_ix_jy_iy_j+y_i^2y_j^2. +# $$ + +# We note that this is nothing but the dot product of the two original +# vectors $(\boldsymbol{x}_i^T\boldsymbol{x}_j)^2$. Instead of thus computing the +# product in the Lagrangian of $\boldsymbol{z}_i^T\boldsymbol{z}_j$ we simply compute +# the dot product $(\boldsymbol{x}_i^T\boldsymbol{x}_j)^2$. +# +# +# This leads to the so-called +# kernel trick and the result leads to the same as if we went through +# the trouble of performing the transformation +# $\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j)$ during the SVM calculations. +# +# +# +# Using our definition of the kernel We can rewrite again the Lagrangian + +# $$ +# \cal{L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, +# $$ + +# subject to the constraints $\lambda_i\geq 0$, $\sum_i\lambda_iy_i=0$ in terms of a convex optimization problem + +# $$ +# \frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +# y_2y_1K(\boldsymbol{x}_2,\boldsymbol{x}_1) & y_2y_2(\boldsymbol{x}_2,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_2,\boldsymbol{x}_n) \\ +# \dots & \dots & \dots & \dots & \dots \\ +# \dots & \dots & \dots & \dots & \dots \\ +# y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +# \end{bmatrix}\boldsymbol{\lambda}-\mathbb{1}\boldsymbol{\lambda}, +# $$ + +# subject to $\boldsymbol{y}^T\boldsymbol{\lambda}=0$. Here we defined the vectors $\boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n]$ and +# $\boldsymbol{y}=[y_1,y_2,\dots,y_n]$. +# If we add the slack constants this leads to the additional constraint $0\leq \lambda_i \leq C$. +# +# We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type + +# $$ +# \begin{align*} +# &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber +# &\mathrm{subject\hspace{0.1cm}to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \wedge \boldsymbol{A}\boldsymbol{\lambda}=f. +# \end{align*} +# $$ + +# Below we discuss how to solve these equations. Here we note that the matrix $\boldsymbol{P}$ has matrix elements $p_{ij}=y_iy_jK(\boldsymbol{x}_i,\boldsymbol{x}_j)$. +# Given a kernel $K$ and the targets $y_i$ this matrix is easy to set up. The constraint $\boldsymbol{y}^T\boldsymbol{\lambda}=0$ leads to $f=0$ and $\boldsymbol{A}=\boldsymbol{y}$. How to set up the matrix $\boldsymbol{G}$ is discussed later. Here note that the inequalities $0\leq \lambda_i \leq C$ can be split up into +# $0\leq \lambda_i$ and $\lambda_i \leq C$. These two inequalities define then the matrix $\boldsymbol{G}$ and the vector $\boldsymbol{h}$. +# +# +# +# ## Different kernels and Mercer's theorem +# +# There are several popular kernels being used. These are +# 1. Linear: $K(\boldsymbol{x},\boldsymbol{y})=\boldsymbol{x}^T\boldsymbol{y}$, +# +# 2. Polynomial: $K(\boldsymbol{x},\boldsymbol{y})=(\boldsymbol{x}^T\boldsymbol{y}+\gamma)^d$, +# +# 3. Gaussian Radial Basis Function: $K(\boldsymbol{x},\boldsymbol{y})=\exp{\left(-\gamma\vert\vert\boldsymbol{x}-\boldsymbol{y}\vert\vert^2\right)}$, +# +# 4. Tanh: $K(\boldsymbol{x},\boldsymbol{y})=\tanh{(\boldsymbol{x}^T\boldsymbol{y}+\gamma)}$, +# +# and many other ones. +# +# An important theorem for us is [Mercer's +# theorem](https://en.wikipedia.org/wiki/Mercer%27s_theorem). The +# theorem states that if a kernel function $K$ is symmetric, continuous +# and leads to a positive semi-definite matrix $\boldsymbol{P}$ then there +# exists a function $\phi$ that maps $\boldsymbol{x}_i$ and $\boldsymbol{x}_j$ into +# another space (possibly with much higher dimensions) such that + +# $$ +# K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +# $$ + +# So you can use $K$ as a kernel since you know $\phi$ exists, even if +# you don’t know what $\phi$ is. +# +# Note that some frequently used kernels (such as the Sigmoid kernel) +# don’t respect all of Mercer’s conditions, yet they generally work well +# in practice. +# +# +# ## The moons example + +# In[3]: + + +from __future__ import division, print_function, unicode_literals + +import numpy as np +np.random.seed(42) + +import matplotlib +import matplotlib.pyplot as plt +plt.rcParams['axes.labelsize'] = 14 +plt.rcParams['xtick.labelsize'] = 12 +plt.rcParams['ytick.labelsize'] = 12 + + +from sklearn.svm import SVC +from sklearn import datasets + + + +from sklearn.pipeline import Pipeline +from sklearn.preprocessing import StandardScaler +from sklearn.svm import LinearSVC + + +from sklearn.datasets import make_moons +X, y = make_moons(n_samples=100, noise=0.15, random_state=42) + +def plot_dataset(X, y, axes): + plt.plot(X[:, 0][y==0], X[:, 1][y==0], "bs") + plt.plot(X[:, 0][y==1], X[:, 1][y==1], "g^") + plt.axis(axes) + plt.grid(True, which='both') + plt.xlabel(r"$x_1$", fontsize=20) + plt.ylabel(r"$x_2$", fontsize=20, rotation=0) + +plot_dataset(X, y, [-1.5, 2.5, -1, 1.5]) +plt.show() + +from sklearn.datasets import make_moons +from sklearn.pipeline import Pipeline +from sklearn.preprocessing import PolynomialFeatures + +polynomial_svm_clf = Pipeline([ + ("poly_features", PolynomialFeatures(degree=3)), + ("scaler", StandardScaler()), + ("svm_clf", LinearSVC(C=10, loss="hinge", random_state=42)) + ]) + +polynomial_svm_clf.fit(X, y) + +def plot_predictions(clf, axes): + x0s = np.linspace(axes[0], axes[1], 100) + x1s = np.linspace(axes[2], axes[3], 100) + x0, x1 = np.meshgrid(x0s, x1s) + X = np.c_[x0.ravel(), x1.ravel()] + y_pred = clf.predict(X).reshape(x0.shape) + y_decision = clf.decision_function(X).reshape(x0.shape) + plt.contourf(x0, x1, y_pred, cmap=plt.cm.brg, alpha=0.2) + plt.contourf(x0, x1, y_decision, cmap=plt.cm.brg, alpha=0.1) + +plot_predictions(polynomial_svm_clf, [-1.5, 2.5, -1, 1.5]) +plot_dataset(X, y, [-1.5, 2.5, -1, 1.5]) + +plt.show() + + +from sklearn.svm import SVC + +poly_kernel_svm_clf = Pipeline([ + ("scaler", StandardScaler()), + ("svm_clf", SVC(kernel="poly", degree=3, coef0=1, C=5)) + ]) +poly_kernel_svm_clf.fit(X, y) + +poly100_kernel_svm_clf = Pipeline([ + ("scaler", StandardScaler()), + ("svm_clf", SVC(kernel="poly", degree=10, coef0=100, C=5)) + ]) +poly100_kernel_svm_clf.fit(X, y) + +plt.figure(figsize=(11, 4)) + +plt.subplot(121) +plot_predictions(poly_kernel_svm_clf, [-1.5, 2.5, -1, 1.5]) +plot_dataset(X, y, [-1.5, 2.5, -1, 1.5]) +plt.title(r"$d=3, r=1, C=5$", fontsize=18) + +plt.subplot(122) +plot_predictions(poly100_kernel_svm_clf, [-1.5, 2.5, -1, 1.5]) +plot_dataset(X, y, [-1.5, 2.5, -1, 1.5]) +plt.title(r"$d=10, r=100, C=5$", fontsize=18) + +plt.show() + +def gaussian_rbf(x, landmark, gamma): + return np.exp(-gamma * np.linalg.norm(x - landmark, axis=1)**2) + +gamma = 0.3 + +x1s = np.linspace(-4.5, 4.5, 200).reshape(-1, 1) +x2s = gaussian_rbf(x1s, -2, gamma) +x3s = gaussian_rbf(x1s, 1, gamma) + +XK = np.c_[gaussian_rbf(X1D, -2, gamma), gaussian_rbf(X1D, 1, gamma)] +yk = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0]) + +plt.figure(figsize=(11, 4)) + +plt.subplot(121) +plt.grid(True, which='both') +plt.axhline(y=0, color='k') +plt.scatter(x=[-2, 1], y=[0, 0], s=150, alpha=0.5, c="red") +plt.plot(X1D[:, 0][yk==0], np.zeros(4), "bs") +plt.plot(X1D[:, 0][yk==1], np.zeros(5), "g^") +plt.plot(x1s, x2s, "g--") +plt.plot(x1s, x3s, "b:") +plt.gca().get_yaxis().set_ticks([0, 0.25, 0.5, 0.75, 1]) +plt.xlabel(r"$x_1$", fontsize=20) +plt.ylabel(r"Similarity", fontsize=14) +plt.annotate(r'$\mathbf{x}$', + xy=(X1D[3, 0], 0), + xytext=(-0.5, 0.20), + ha="center", + arrowprops=dict(facecolor='black', shrink=0.1), + fontsize=18, + ) +plt.text(-2, 0.9, "$x_2$", ha="center", fontsize=20) +plt.text(1, 0.9, "$x_3$", ha="center", fontsize=20) +plt.axis([-4.5, 4.5, -0.1, 1.1]) + +plt.subplot(122) +plt.grid(True, which='both') +plt.axhline(y=0, color='k') +plt.axvline(x=0, color='k') +plt.plot(XK[:, 0][yk==0], XK[:, 1][yk==0], "bs") +plt.plot(XK[:, 0][yk==1], XK[:, 1][yk==1], "g^") +plt.xlabel(r"$x_2$", fontsize=20) +plt.ylabel(r"$x_3$ ", fontsize=20, rotation=0) +plt.annotate(r'$\phi\left(\mathbf{x}\right)$', + xy=(XK[3, 0], XK[3, 1]), + xytext=(0.65, 0.50), + ha="center", + arrowprops=dict(facecolor='black', shrink=0.1), + fontsize=18, + ) +plt.plot([-0.1, 1.1], [0.57, -0.1], "r--", linewidth=3) +plt.axis([-0.1, 1.1, -0.1, 1.1]) + +plt.subplots_adjust(right=1) + +plt.show() + + +x1_example = X1D[3, 0] +for landmark in (-2, 1): + k = gaussian_rbf(np.array([[x1_example]]), np.array([[landmark]]), gamma) + print("Phi({}, {}) = {}".format(x1_example, landmark, k)) + +rbf_kernel_svm_clf = Pipeline([ + ("scaler", StandardScaler()), + ("svm_clf", SVC(kernel="rbf", gamma=5, C=0.001)) + ]) +rbf_kernel_svm_clf.fit(X, y) + + +from sklearn.svm import SVC + +gamma1, gamma2 = 0.1, 5 +C1, C2 = 0.001, 1000 +hyperparams = (gamma1, C1), (gamma1, C2), (gamma2, C1), (gamma2, C2) + +svm_clfs = [] +for gamma, C in hyperparams: + rbf_kernel_svm_clf = Pipeline([ + ("scaler", StandardScaler()), + ("svm_clf", SVC(kernel="rbf", gamma=gamma, C=C)) + ]) + rbf_kernel_svm_clf.fit(X, y) + svm_clfs.append(rbf_kernel_svm_clf) + +plt.figure(figsize=(11, 7)) + +for i, svm_clf in enumerate(svm_clfs): + plt.subplot(221 + i) + plot_predictions(svm_clf, [-1.5, 2.5, -1, 1.5]) + plot_dataset(X, y, [-1.5, 2.5, -1, 1.5]) + gamma, C = hyperparams[i] + plt.title(r"$\gamma = {}, C = {}$".format(gamma, C), fontsize=16) + +plt.show() + + +# ## Mathematical optimization of convex functions +# +# A mathematical (quadratic) optimization problem, or just optimization problem, has the form + +# $$ +# \begin{align*} +# &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber +# &\mathrm{subject\hspace{0.1cm}to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \wedge \boldsymbol{A}\boldsymbol{\lambda}=f. +# \end{align*} +# $$ + +# subject to some constraints for say a selected set $i=1,2,\dots, n$. +# In our case we are optimizing with respect to the Lagrangian multipliers $\lambda_i$, and the +# vector $\boldsymbol{\lambda}=[\lambda_1, \lambda_2,\dots, \lambda_n]$ is the optimization variable we are dealing with. +# +# In our case we are particularly interested in a class of optimization problems called convex optmization problems. +# In our discussion on gradient descent methods we discussed at length the definition of a convex function. +# +# Convex optimization problems play a central role in applied mathematics and we recommend strongly [Boyd and Vandenberghe's text on the topics](http://web.stanford.edu/~boyd/cvxbook/). +# +# +# +# +# If we use Python as programming language and wish to venture beyond +# **scikit-learn**, **tensorflow** and similar software which makes our +# lives so much easier, we need to dive into the wonderful world of +# quadratic programming. We can, if we wish, solve the minimization +# problem using say standard gradient methods or conjugate gradient +# methods. However, these methods tend to exhibit a rather slow +# converge. So, welcome to the promised land of quadratic programming. +# +# The functions we need are contained in the quadratic programming package **CVXOPT** and we need to import it together with **numpy** as + +# In[4]: + + +import numpy +import cvxopt + + +# This will make our life much easier. You don't need t write your own optimizer. +# +# +# +# We remind ourselves about the general problem we want to solve + +# $$ +# \begin{align*} +# &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}\boldsymbol{x}^T\boldsymbol{P}\boldsymbol{x}+\boldsymbol{q}^T\boldsymbol{x},\\ \nonumber +# &\mathrm{subject\hspace{0.1cm} to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{x} \preceq \boldsymbol{h} \wedge \boldsymbol{A}\boldsymbol{x}=f. +# \end{align*} +# $$ + +# Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem + +# $$ +# \begin{align*} +# &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}x^2+5x+3y \\ \nonumber +# &\mathrm{subject to} \\ \nonumber +# &x, y \geq 0 \\ \nonumber +# &x+3y \geq 15 \\ \nonumber +# &2x+5y \leq 100 \\ \nonumber +# &3x+4y \leq 80. \\ \nonumber +# \end{align*} +# $$ + +# The minimization problem can be rewritten in terms of vectors and matrices as (with $x$ and $y$ being the unknowns) + +# $$ +# \frac{1}{2}\begin{bmatrix} x\\ y \end{bmatrix}^T \begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix}3\\ 4 \end{bmatrix}^T \begin{bmatrix}x \\ y \end{bmatrix}. +# $$ + +# Similarly, we can now set up the inequalities (we need to change $\geq$ to $\leq$ by multiplying with $-1$ on bot sides) as the following matrix-vector equation + +# $$ +# \begin{bmatrix} -1 & 0 \\ 0 & -1 \\ -1 & -3 \\ 2 & 5 \\ 3 & 4\end{bmatrix}\begin{bmatrix} x \\ y\end{bmatrix} \preceq \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +# $$ + +# We have collapsed all the inequalities into a single matrix $\boldsymbol{G}$. We see also that our matrix + +# $$ +# \boldsymbol{P} =\begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} +# $$ + +# is clearly positive semi-definite (all eigenvalues larger or equal zero). +# Finally, the vector $\boldsymbol{h}$ is defined as + +# $$ +# \boldsymbol{h} = \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +# $$ + +# Since we don't have any equalities the matrix $\boldsymbol{A}$ is set to zero +# The following code solves the equations for us + +# In[ ]: + + +# Import the necessary packages +import numpy +from cvxopt import matrix +from cvxopt import solvers +P = matrix(numpy.diag([1,0]), tc=’d’) +q = matrix(numpy.array([3,4]), tc=’d’) +G = matrix(numpy.array([[-1,0],[0,-1],[-1,-3],[2,5],[3,4]]), tc=’d’) +h = matrix(numpy.array([0,0,-15,100,80]), tc=’d’) +# Construct the QP, invoke solver +sol = solvers.qp(P,q,G,h) +# Extract optimal value and solution +sol[’x’] +sol[’primal objective’] + + +# We are now ready to return to our setup of the optmization problem for a more realistic case. Introducing the **slack** parameter $C$ we have + +# $$ +# \frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +# y_2y_1K(\boldsymbol{x}_2,\boldsymbol{x}_1) & y_2y_2K(\boldsymbol{x}_2,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_2,\boldsymbol{x}_n) \\ +# \dots & \dots & \dots & \dots & \dots \\ +# \dots & \dots & \dots & \dots & \dots \\ +# y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +# \end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +# $$ + +# subject to $\boldsymbol{y}^T\boldsymbol{\lambda}=0$. Here we defined the vectors $\boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n]$ and +# $\boldsymbol{y}=[y_1,y_2,\dots,y_n]$. +# With the slack constants this leads to the additional constraint $0\leq \lambda_i \leq C$. +# +# **code will be added** diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5_109_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter5_109_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b1023365e6a29076874180dbc38392c9a8b469dd GIT binary patch literal 5943 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 WcbEd@W&%ZQ5Zdtws`~q&jQ;^^5Y~PG literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5_129_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter5_129_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3348a822788a41bfadd5ac5a27ea79a04838a723 GIT binary patch literal 8219 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 MTK6=|)$O1C8&ef91poj5 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5_129_2.png b/doc/LectureNotes/_build/jupyter_execute/chapter5_129_2.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb5337706db6fd244c9c5e7a5ea5e6c1bca20e0 GIT binary patch literal 13629 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5_129_3.png b/doc/LectureNotes/_build/jupyter_execute/chapter5_129_3.png new file mode 100644 index 0000000000000000000000000000000000000000..85dec16bbd11feceaa22b88a24435f50ceeffadf GIT binary patch literal 22986 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5_129_4.png b/doc/LectureNotes/_build/jupyter_execute/chapter5_129_4.png new file mode 100644 index 0000000000000000000000000000000000000000..25457b8da562dcc93ab98fcd632e6ab9a6d4363d GIT binary patch literal 28714 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter5_129_6.png b/doc/LectureNotes/_build/jupyter_execute/chapter5_129_6.png new file mode 100644 index 0000000000000000000000000000000000000000..63cefda048aeca0e18d4d05aa5f9342f7357e008 GIT binary patch literal 52979 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�AN0rPI4Vn}F8R2-x&r-3d$_Yq&;aD3>&7>N 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter6.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter6.ipynb new file mode 100644 index 000000000..f2e5c356c --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter6.ipynb @@ -0,0 +1,1559 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Decision trees, overarching aims\n", + "\n", + "\n", + "We start here with the most basic algorithm, the so-called decision\n", + "tree. With this basic algorithm we can in turn build more complex\n", + "networks, spanning from homogeneous and heterogenous forests (bagging,\n", + "random forests and more) to one of the most popular supervised\n", + "algorithms nowadays, the extreme gradient boosting, or just\n", + "XGBoost. But let us start with the simplest possible ingredient.\n", + "\n", + "Decision trees are supervised learning algorithms used for both,\n", + "classification and regression tasks.\n", + "\n", + "\n", + "The main idea of decision trees\n", + "is to find those descriptive features which contain the most\n", + "**information** regarding the target feature and then split the dataset\n", + "along the values of these features such that the target feature values\n", + "for the resulting underlying datasets are as pure as possible.\n", + "\n", + "The descriptive features which reproduce best the target/output features are normally said\n", + "to be the most informative ones. The process of finding the **most\n", + "informative** feature is done until we accomplish a stopping criteria\n", + "where we then finally end up in so called **leaf nodes**. \n", + "\n", + "## Basics of a tree\n", + "\n", + "A decision tree is typically divided into a **root node**, the **interior nodes**,\n", + "and the final **leaf nodes** or just **leaves**. These entities are then connected by so-called **branches**.\n", + "\n", + "The leaf nodes\n", + "contain the predictions we will make for new query instances presented\n", + "to our trained model. This is possible since the model has \n", + "learned the underlying structure of the training data and hence can,\n", + "given some assumptions, make predictions about the target feature value\n", + "(class) of unseen query instances.\n", + "\n", + "\n", + "## General Features\n", + "\n", + "The overarching approach to decision trees is a top-down approach.\n", + "\n", + "* A leaf provides the classification of a given instance.\n", + "\n", + "* A node specifies a test of some attribute of the instance.\n", + "\n", + "* A branch corresponds to a possible values of an attribute.\n", + "\n", + "* An instance is classified by starting at the root node of the tree, testing the attribute specified by this node, then moving down the tree branch corresponding to the value of the attribute in the given example.\n", + "\n", + "This process is then repeated for the subtree rooted at the new\n", + "node.\n", + "\n", + "\n", + "\n", + "In simplified terms, the process of training a decision tree and\n", + "predicting the target features of query instances is as follows:\n", + "\n", + "1. Present a dataset containing of a number of training instances characterized by a number of descriptive features and a target feature\n", + "\n", + "2. Train the decision tree model by continuously splitting the target feature along the values of the descriptive features using a measure of information gain during the training process\n", + "\n", + "3. Grow the tree until we accomplish a stopping criteria create leaf nodes which represent the *predictions* we want to make for new query instances\n", + "\n", + "4. Show query instances to the tree and run down the tree until we arrive at leaf nodes\n", + "\n", + "Then we are essentially done!" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2nd degree coefficients:\n", + "zero power: -0.8109933929265623\n", + "first power: 0.24486673084465208\n", + "second power: -0.0010332696198715212\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter6_1_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter6_1_2.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.preprocessing import PolynomialFeatures\n", + "from sklearn.linear_model import LinearRegression\n", + "\n", + "steps=250\n", + "\n", + "distance=0\n", + "x=0\n", + "distance_list=[]\n", + "steps_list=[]\n", + "while x" + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter6_24_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.datasets import load_iris\n", + "from sklearn import tree\n", + "X, y = load_iris(return_X_y=True)\n", + "tree_clf = tree.DecisionTreeClassifier()\n", + "tree_clf = tree_clf.fit(X, y)\n", + "# and then plot the tree\n", + "tree.plot_tree(tree_clf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, the tree can also be exported in textual format with the function exporttext.\n", + "This method doesn’t require the installation of external libraries and is more compact:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "|--- petal width (cm) <= 0.80\n", + "| |--- class: 0\n", + "|--- petal width (cm) > 0.80\n", + "| |--- petal width (cm) <= 1.75\n", + "| | |--- class: 1\n", + "| |--- petal width (cm) > 1.75\n", + "| | |--- class: 2\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.datasets import load_iris\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.tree import export_text\n", + "iris = load_iris()\n", + "decision_tree = DecisionTreeClassifier(random_state=0, max_depth=2)\n", + "decision_tree = decision_tree.fit(iris.data, iris.target)\n", + "r = export_text(decision_tree, feature_names=iris['feature_names'])\n", + "print(r)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Algorithms for Setting up Decision Trees\n", + "\n", + "Two algorithms stand out in the set up of decision trees:\n", + "1. The CART (Classification And Regression Tree) algorithm for both classification and regression\n", + "\n", + "2. The ID3 algorithm based on the computation of the information gain for classification\n", + "\n", + "We discuss both algorithms with applications here. The popular library\n", + "**Scikit-Learn** uses the CART algorithm. For classification problems\n", + "you can use either the **gini** index or the **entropy** to split a tree\n", + "in two branches.\n", + "\n", + "### The CART algorithm for Classification\n", + "\n", + "For classification, the CART algorithm splits the data set in two subsets using a single feature $k$ and a threshold $t_k$.\n", + "This could be for example a threshold set by a number below a certain circumference of a malign tumor.\n", + "\n", + "How do we find these two quantities?\n", + "We search for the pair $(k,t_k)$ that produces the purest subset using for example the **gini** factor $G$.\n", + "The cost function it tries to minimize is then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(k,t_k) = \\frac{m_{\\mathrm{left}}}{m}G_{\\mathrm{left}}+ \\frac{m_{\\mathrm{right}}}{m}G_{\\mathrm{right}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $G_{\\mathrm{left/right}}$ measures the impurity of the left/right subset and $m_{\\mathrm{left/right}}$\n", + " is the number of instances in the left/right subset\n", + "\n", + "Once it has successfully split the training set in two, it splits the subsets using the same logic, then the subsubsets\n", + "and so on, recursively. It stops recursing once it reaches the maximum depth (defined by the\n", + "$max\\_depth$ hyperparameter), or if it cannot find a split that will reduce impurity. A few other\n", + "hyperparameters control additional stopping conditions such as the $min\\_samples\\_split$,\n", + "$min\\_samples\\_leaf$, $min\\_weight\\_fraction\\_leaf$, and $max\\_leaf\\_nodes$.\n", + "\n", + "\n", + "### The CART algorithm for Regression\n", + "\n", + "The CART algorithm for regression works is similar to the one for classification except that instead of trying to split the\n", + "training set in a way that minimizes say the **gini** or **entropy** impurity, it now tries to split the training set in a way that minimizes our well-known mean-squared error (MSE). The cost function is now" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(k,t_k) = \\frac{m_{\\mathrm{left}}}{m}\\mathrm{MSE}_{\\mathrm{left}}+ \\frac{m_{\\mathrm{right}}}{m}\\mathrm{MSE}_{\\mathrm{right}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here the MSE for a specific node is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{MSE}_{\\mathrm{node}}=\\frac{1}{m_\\mathrm{node}}\\sum_{i\\in \\mathrm{node}}(\\overline{y}_{\\mathrm{node}}-y_i)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\overline{y}_{\\mathrm{node}}=\\frac{1}{m_\\mathrm{node}}\\sum_{i\\in \\mathrm{node}}y_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the mean value of all observations in a specific node.\n", + "\n", + "Without any regularization, the regression task for decision trees, \n", + "just like for classification tasks, is prone to overfitting.\n", + "\n", + "\n", + "\n", + "### Computing the Gini index\n", + "\n", + "The example we will look at is a classical one in many Machine\n", + "Learning applications. Based on various meteorological features, we\n", + "have several so-called attributes which decide whether we at the end\n", + "will do some outdoor activity like skiing, going for a bike ride etc\n", + "etc. The table here contains the feautures **outlook**, **temperature**,\n", + "**humidity** and **wind**. The target or output is whether we ride\n", + "(True=1) or whether we do something else that day (False=0). The\n", + "attributes for each feature are then sunny, overcast and rain for the\n", + "outlook, hot, cold and mild for temperature, high and normal for\n", + "humidity and weak and strong for wind.\n", + "\n", + "The table here summarizes the various attributes and\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    Day Outlook Temperature Humidity Wind Ride
    1 Sunny Hot High Weak 0
    2 Sunny Hot High Strong 1
    3 Overcast Hot High Weak 1
    4 Rain Mild High Weak 1
    5 Rain Cool Normal Weak 1
    6 Rain Cool Normal Strong 0
    7 Overcast Cool Normal Strong 1
    8 Sunny Mild High Weak 0
    9 Sunny Cool Normal Weak 1
    10 Rain Mild Normal Weak 1
    11 Sunny Mild Normal Strong 1
    12 Overcast Mild High Strong 1
    13 Overcast Hot Normal Weak 1
    14 Rain Mild High Strong 0
    \n", + "\n", + "### Simple Python Code to read in Data and perform Classification" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'DataFiles/rideclass.csv'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41354/4192423635.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 35\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimage_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig_id\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m\".png\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'png'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 36\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m \u001b[0minfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_path\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"rideclass.csv\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'r'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 38\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;31m# Read the experimental data with Pandas\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'DataFiles/rideclass.csv'" + ] + } + ], + "source": [ + "# Common imports\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.tree import export_graphviz\n", + "from sklearn.preprocessing import StandardScaler, OneHotEncoder\n", + "from sklearn.compose import ColumnTransformer\n", + "from IPython.display import Image \n", + "from pydot import graph_from_dot_data\n", + "import os\n", + "\n", + "# Where to save the figures and data files\n", + "PROJECT_ROOT_DIR = \"Results\"\n", + "FIGURE_ID = \"Results/FigureFiles\"\n", + "DATA_ID = \"DataFiles/\"\n", + "\n", + "if not os.path.exists(PROJECT_ROOT_DIR):\n", + " os.mkdir(PROJECT_ROOT_DIR)\n", + "\n", + "if not os.path.exists(FIGURE_ID):\n", + " os.makedirs(FIGURE_ID)\n", + "\n", + "if not os.path.exists(DATA_ID):\n", + " os.makedirs(DATA_ID)\n", + "\n", + "def image_path(fig_id):\n", + " return os.path.join(FIGURE_ID, fig_id)\n", + "\n", + "def data_path(dat_id):\n", + " return os.path.join(DATA_ID, dat_id)\n", + "\n", + "def save_fig(fig_id):\n", + " plt.savefig(image_path(fig_id) + \".png\", format='png')\n", + "\n", + "infile = open(data_path(\"rideclass.csv\"),'r')\n", + "\n", + "# Read the experimental data with Pandas\n", + "from IPython.display import display\n", + "ridedata = pd.read_csv(infile,names = ('Outlook','Temperature','Humidity','Wind','Ride'))\n", + "ridedata = pd.DataFrame(ridedata)\n", + "\n", + "# Features and targets\n", + "X = ridedata.loc[:, ridedata.columns != 'Ride'].values\n", + "y = ridedata.loc[:, ridedata.columns == 'Ride'].values\n", + "\n", + "# Create the encoder.\n", + "encoder = OneHotEncoder(handle_unknown=\"ignore\")\n", + "# Assume for simplicity all features are categorical.\n", + "encoder.fit(X) \n", + "# Apply the encoder.\n", + "X = encoder.transform(X)\n", + "print(X)\n", + "# Then do a Classification tree\n", + "tree_clf = DecisionTreeClassifier(max_depth=2)\n", + "tree_clf.fit(X, y)\n", + "print(\"Train set accuracy with Decision Tree: {:.2f}\".format(tree_clf.score(X,y)))\n", + "#transfer to a decision tree graph\n", + "export_graphviz(\n", + " tree_clf,\n", + " out_file=\"DataFiles/ride.dot\",\n", + " rounded=True,\n", + " filled=True\n", + ")\n", + "cmd = 'dot -Tpng DataFiles/cancer.dot -o DataFiles/cancer.png'\n", + "os.system(cmd)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above functions (gini, entropy and misclassification error) are\n", + "important components of the so-called CART algorithm. We will discuss\n", + "this algorithm below after we have discussed the information gain\n", + "algorithm ID3.\n", + "\n", + "In the example here we have converted all our attributes into numerical values $0,1,2$ etc." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# Split a dataset based on an attribute and an attribute value\n", + "def test_split(index, value, dataset):\n", + "\tleft, right = list(), list()\n", + "\tfor row in dataset:\n", + "\t\tif row[index] < value:\n", + "\t\t\tleft.append(row)\n", + "\t\telse:\n", + "\t\t\tright.append(row)\n", + "\treturn left, right\n", + " \n", + "# Calculate the Gini index for a split dataset\n", + "def gini_index(groups, classes):\n", + "\t# count all samples at split point\n", + "\tn_instances = float(sum([len(group) for group in groups]))\n", + "\t# sum weighted Gini index for each group\n", + "\tgini = 0.0\n", + "\tfor group in groups:\n", + "\t\tsize = float(len(group))\n", + "\t\t# avoid divide by zero\n", + "\t\tif size == 0:\n", + "\t\t\tcontinue\n", + "\t\tscore = 0.0\n", + "\t\t# score the group based on the score for each class\n", + "\t\tfor class_val in classes:\n", + "\t\t\tp = [row[-1] for row in group].count(class_val) / size\n", + "\t\t\tscore += p * p\n", + "\t\t# weight the group score by its relative size\n", + "\t\tgini += (1.0 - score) * (size / n_instances)\n", + "\treturn gini\n", + "\n", + "# Select the best split point for a dataset\n", + "def get_split(dataset):\n", + "\tclass_values = list(set(row[-1] for row in dataset))\n", + "\tb_index, b_value, b_score, b_groups = 999, 999, 999, None\n", + "\tfor index in range(len(dataset[0])-1):\n", + "\t\tfor row in dataset:\n", + "\t\t\tgroups = test_split(index, row[index], dataset)\n", + "\t\t\tgini = gini_index(groups, class_values)\n", + "\t\t\tprint('X%d < %.3f Gini=%.3f' % ((index+1), row[index], gini))\n", + "\t\t\tif gini < b_score:\n", + "\t\t\t\tb_index, b_value, b_score, b_groups = index, row[index], gini, groups\n", + "\treturn {'index':b_index, 'value':b_value, 'groups':b_groups}\n", + " \n", + "dataset = [[0,0,0,0,0],\n", + " [0,0,0,1,1],\n", + " [1,0,0,0,1],\n", + " [2,1,0,0,1],\n", + " [2,2,1,0,1],\n", + " [2,2,1,1,0],\n", + " [1,2,1,1,1],\n", + " [0,1,0,0,0],\n", + " [0,2,1,0,1],\n", + " [2,1,1,0,1],\n", + " [0,1,1,1,1],\n", + " [1,1,0,1,1],\n", + " [1,0,1,0,1],\n", + " [2,1,0,1,0]]\n", + "\n", + "split = get_split(dataset)\n", + "print('Split: [X%d < %.3f]' % ((split['index']+1), split['value']))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Entropy and the ID3 algorithm\n", + "\n", + "The ID3 algorithm learns decision trees by constructing\n", + "them in a top down way, beginning with the question **which attribute should be tested at the root of the tree**?\n", + "\n", + "1. Each instance attribute is evaluated using a statistical test to determine how well it alone classifies the training examples.\n", + "\n", + "2. The best attribute is selected and used as the test at the root node of the tree.\n", + "\n", + "3. A descendant of the root node is then created for each possible value of this attribute.\n", + "\n", + "4. Training examples are sorted to the appropriate descendant node.\n", + "\n", + "5. The entire process is then repeated using the training examples associated with each descendant node to select the best attribute to test at that point in the tree.\n", + "\n", + "6. This forms a greedy search for an acceptable decision tree, in which the algorithm never backtracks to reconsider earlier choices. \n", + "\n", + "The ID3 algorithm selects which attribute to test at each node in the\n", + "tree.\n", + "\n", + "We would like to select the attribute that is most useful for classifying\n", + "examples.\n", + "\n", + "What is a good quantitative measure of the worth of an attribute?\n", + "\n", + "Information gain measures how well a given attribute separates the\n", + "training examples according to their target classification.\n", + "\n", + "The ID3 algorithm uses this information gain measure to select among the candidate\n", + "attributes at each step while growing the tree.\n", + "\n", + "\n", + "### Cancer Data again now with Decision Trees and other Methods" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.svm import SVC\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "# Load the data\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "# Logistic Regression\n", + "logreg = LogisticRegression(solver='lbfgs')\n", + "logreg.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Logistic Regression: {:.2f}\".format(logreg.score(X_test,y_test)))\n", + "# Support vector machine\n", + "svm = SVC(gamma='auto', C=100)\n", + "svm.fit(X_train, y_train)\n", + "print(\"Test set accuracy with SVM: {:.2f}\".format(svm.score(X_test,y_test)))\n", + "# Decision Trees\n", + "deep_tree_clf = DecisionTreeClassifier(max_depth=None)\n", + "deep_tree_clf.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Decision Trees: {:.2f}\".format(deep_tree_clf.score(X_test,y_test)))\n", + "#now scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "# Logistic Regression\n", + "logreg.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy Logistic Regression with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "# Support Vector Machine\n", + "svm.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy SVM with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "# Decision Trees\n", + "deep_tree_clf.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy with Decision Trees and scaled data: {:.2f}\".format(deep_tree_clf.score(X_test_scaled,y_test)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Another example, the moons again" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from __future__ import division, print_function, unicode_literals\n", + "\n", + "# Common imports\n", + "import numpy as np\n", + "import os\n", + "\n", + "# to make this notebook's output stable across runs\n", + "np.random.seed(42)\n", + "\n", + "# To plot pretty figures\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.colors import ListedColormap\n", + "plt.rcParams['axes.labelsize'] = 14\n", + "plt.rcParams['xtick.labelsize'] = 12\n", + "plt.rcParams['ytick.labelsize'] = 12\n", + "\n", + "\n", + "from sklearn.svm import SVC\n", + "from sklearn import datasets\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.datasets import make_moons\n", + "from sklearn.tree import export_graphviz\n", + "\n", + "Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=53)\n", + "\n", + "deep_tree_clf1 = DecisionTreeClassifier(random_state=42)\n", + "deep_tree_clf2 = DecisionTreeClassifier(min_samples_leaf=4, random_state=42)\n", + "deep_tree_clf1.fit(Xm, ym)\n", + "deep_tree_clf2.fit(Xm, ym)\n", + "\n", + "\n", + "def plot_decision_boundary(clf, X, y, axes=[0, 7.5, 0, 3], iris=True, legend=False, plot_training=True):\n", + " x1s = np.linspace(axes[0], axes[1], 100)\n", + " x2s = np.linspace(axes[2], axes[3], 100)\n", + " x1, x2 = np.meshgrid(x1s, x2s)\n", + " X_new = np.c_[x1.ravel(), x2.ravel()]\n", + " y_pred = clf.predict(X_new).reshape(x1.shape)\n", + " custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])\n", + " plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)\n", + " if not iris:\n", + " custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])\n", + " plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)\n", + " if plot_training:\n", + " plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", label=\"Iris-Setosa\")\n", + " plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", label=\"Iris-Versicolor\")\n", + " plt.plot(X[:, 0][y==2], X[:, 1][y==2], \"g^\", label=\"Iris-Virginica\")\n", + " plt.axis(axes)\n", + " if iris:\n", + " plt.xlabel(\"Petal length\", fontsize=14)\n", + " plt.ylabel(\"Petal width\", fontsize=14)\n", + " else:\n", + " plt.xlabel(r\"$x_1$\", fontsize=18)\n", + " plt.ylabel(r\"$x_2$\", fontsize=18, rotation=0)\n", + " if legend:\n", + " plt.legend(loc=\"lower right\", fontsize=14)\n", + "plt.figure(figsize=(11, 4))\n", + "plt.subplot(121)\n", + "plot_decision_boundary(deep_tree_clf1, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n", + "plt.title(\"No restrictions\", fontsize=16)\n", + "plt.subplot(122)\n", + "plot_decision_boundary(deep_tree_clf2, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n", + "plt.title(\"min_samples_leaf = {}\".format(deep_tree_clf2.min_samples_leaf), fontsize=14)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "np.random.seed(6)\n", + "Xs = np.random.rand(100, 2) - 0.5\n", + "ys = (Xs[:, 0] > 0).astype(np.float32) * 2\n", + "\n", + "angle = np.pi/4\n", + "rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]])\n", + "Xsr = Xs.dot(rotation_matrix)\n", + "\n", + "tree_clf_s = DecisionTreeClassifier(random_state=42)\n", + "tree_clf_s.fit(Xs, ys)\n", + "tree_clf_sr = DecisionTreeClassifier(random_state=42)\n", + "tree_clf_sr.fit(Xsr, ys)\n", + "\n", + "plt.figure(figsize=(11, 4))\n", + "plt.subplot(121)\n", + "plot_decision_boundary(tree_clf_s, Xs, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n", + "plt.subplot(122)\n", + "plot_decision_boundary(tree_clf_sr, Xsr, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# Quadratic training set + noise\n", + "np.random.seed(42)\n", + "m = 200\n", + "X = np.random.rand(m, 1)\n", + "y = 4 * (X - 0.5) ** 2\n", + "y = y + np.random.randn(m, 1) / 10" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeRegressor\n", + "\n", + "tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42)\n", + "tree_reg.fit(X, y)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.tree import DecisionTreeRegressor\n", + "\n", + "tree_reg1 = DecisionTreeRegressor(random_state=42, max_depth=2)\n", + "tree_reg2 = DecisionTreeRegressor(random_state=42, max_depth=3)\n", + "tree_reg1.fit(X, y)\n", + "tree_reg2.fit(X, y)\n", + "\n", + "def plot_regression_predictions(tree_reg, X, y, axes=[0, 1, -0.2, 1], ylabel=\"$y$\"):\n", + " x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1)\n", + " y_pred = tree_reg.predict(x1)\n", + " plt.axis(axes)\n", + " plt.xlabel(\"$x_1$\", fontsize=18)\n", + " if ylabel:\n", + " plt.ylabel(ylabel, fontsize=18, rotation=0)\n", + " plt.plot(X, y, \"b.\")\n", + " plt.plot(x1, y_pred, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n", + "\n", + "plt.figure(figsize=(11, 4))\n", + "plt.subplot(121)\n", + "plot_regression_predictions(tree_reg1, X, y)\n", + "for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n", + " plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n", + "plt.text(0.21, 0.65, \"Depth=0\", fontsize=15)\n", + "plt.text(0.01, 0.2, \"Depth=1\", fontsize=13)\n", + "plt.text(0.65, 0.8, \"Depth=1\", fontsize=13)\n", + "plt.legend(loc=\"upper center\", fontsize=18)\n", + "plt.title(\"max_depth=2\", fontsize=14)\n", + "\n", + "plt.subplot(122)\n", + "plot_regression_predictions(tree_reg2, X, y, ylabel=None)\n", + "for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n", + " plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n", + "for split in (0.0458, 0.1298, 0.2873, 0.9040):\n", + " plt.plot([split, split], [-0.2, 1], \"k:\", linewidth=1)\n", + "plt.text(0.3, 0.5, \"Depth=2\", fontsize=13)\n", + "plt.title(\"max_depth=3\", fontsize=14)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "tree_reg1 = DecisionTreeRegressor(random_state=42)\n", + "tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)\n", + "tree_reg1.fit(X, y)\n", + "tree_reg2.fit(X, y)\n", + "\n", + "x1 = np.linspace(0, 1, 500).reshape(-1, 1)\n", + "y_pred1 = tree_reg1.predict(x1)\n", + "y_pred2 = tree_reg2.predict(x1)\n", + "\n", + "plt.figure(figsize=(11, 4))\n", + "\n", + "plt.subplot(121)\n", + "plt.plot(X, y, \"b.\")\n", + "plt.plot(x1, y_pred1, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n", + "plt.axis([0, 1, -0.2, 1.1])\n", + "plt.xlabel(\"$x_1$\", fontsize=18)\n", + "plt.ylabel(\"$y$\", fontsize=18, rotation=0)\n", + "plt.legend(loc=\"upper center\", fontsize=18)\n", + "plt.title(\"No restrictions\", fontsize=14)\n", + "\n", + "plt.subplot(122)\n", + "plt.plot(X, y, \"b.\")\n", + "plt.plot(x1, y_pred2, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n", + "plt.axis([0, 1, -0.2, 1.1])\n", + "plt.xlabel(\"$x_1$\", fontsize=18)\n", + "plt.title(\"min_samples_leaf={}\".format(tree_reg2.min_samples_leaf), fontsize=14)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pros and cons of trees, pros\n", + "\n", + "* White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines)\n", + "\n", + "* Trees are very easy to explain to people. In fact, they are even easier to explain than linear regression!\n", + "\n", + "* No feature normalization needed\n", + "\n", + "* Tree models can handle both continuous and categorical data (Classification and Regression Trees)\n", + "\n", + "* Can model nonlinear relationships\n", + "\n", + "* Can model interactions between the different descriptive features\n", + "\n", + "* Trees can be displayed graphically, and are easily interpreted even by a non-expert (especially if they are small)\n", + "\n", + "### Disadvantages\n", + "\n", + "* Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches\n", + "\n", + "* If continuous features are used the tree may become quite large and hence less interpretable\n", + "\n", + "* Decision trees are prone to overfit the training data and hence do not well generalize the data if no stopping criteria or improvements like pruning, boosting or bagging are implemented\n", + "\n", + "* Small changes in the data may lead to a completely different tree. This issue can be addressed by using ensemble methods like bagging, boosting or random forests\n", + "\n", + "* Unbalanced datasets where some target feature values occur much more frequently than others may lead to biased trees since the frequently occurring feature values are preferred over the less frequently occurring ones. \n", + "\n", + "* If the number of features is relatively large (high dimensional) and the number of instances is relatively low, the tree might overfit the data\n", + "\n", + "* Features with many levels may be preferred over features with less levels since for them it is *more easy* to split the dataset such that the sub datasets only contain pure target feature values. This issue can be addressed by preferring for instance the information gain ratio as splitting criteria over information gain\n", + "\n", + "However, by aggregating many decision trees, using methods like\n", + "bagging, random forests, and boosting, the predictive performance of\n", + "trees can be substantially improved." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter6.py b/doc/LectureNotes/_build/jupyter_execute/chapter6.py new file mode 100644 index 000000000..1b9ee13f5 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter6.py @@ -0,0 +1,1037 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Decision trees, overarching aims +# +# +# We start here with the most basic algorithm, the so-called decision +# tree. With this basic algorithm we can in turn build more complex +# networks, spanning from homogeneous and heterogenous forests (bagging, +# random forests and more) to one of the most popular supervised +# algorithms nowadays, the extreme gradient boosting, or just +# XGBoost. But let us start with the simplest possible ingredient. +# +# Decision trees are supervised learning algorithms used for both, +# classification and regression tasks. +# +# +# The main idea of decision trees +# is to find those descriptive features which contain the most +# **information** regarding the target feature and then split the dataset +# along the values of these features such that the target feature values +# for the resulting underlying datasets are as pure as possible. +# +# The descriptive features which reproduce best the target/output features are normally said +# to be the most informative ones. The process of finding the **most +# informative** feature is done until we accomplish a stopping criteria +# where we then finally end up in so called **leaf nodes**. +# +# ## Basics of a tree +# +# A decision tree is typically divided into a **root node**, the **interior nodes**, +# and the final **leaf nodes** or just **leaves**. These entities are then connected by so-called **branches**. +# +# The leaf nodes +# contain the predictions we will make for new query instances presented +# to our trained model. This is possible since the model has +# learned the underlying structure of the training data and hence can, +# given some assumptions, make predictions about the target feature value +# (class) of unseen query instances. +# +# +# ## General Features +# +# The overarching approach to decision trees is a top-down approach. +# +# * A leaf provides the classification of a given instance. +# +# * A node specifies a test of some attribute of the instance. +# +# * A branch corresponds to a possible values of an attribute. +# +# * An instance is classified by starting at the root node of the tree, testing the attribute specified by this node, then moving down the tree branch corresponding to the value of the attribute in the given example. +# +# This process is then repeated for the subtree rooted at the new +# node. +# +# +# +# In simplified terms, the process of training a decision tree and +# predicting the target features of query instances is as follows: +# +# 1. Present a dataset containing of a number of training instances characterized by a number of descriptive features and a target feature +# +# 2. Train the decision tree model by continuously splitting the target feature along the values of the descriptive features using a measure of information gain during the training process +# +# 3. Grow the tree until we accomplish a stopping criteria create leaf nodes which represent the *predictions* we want to make for new query instances +# +# 4. Show query instances to the tree and run down the tree until we arrive at leaf nodes +# +# Then we are essentially done! + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import numpy as np +import matplotlib.pyplot as plt +from sklearn.preprocessing import PolynomialFeatures +from sklearn.linear_model import LinearRegression + +steps=250 + +distance=0 +x=0 +distance_list=[] +steps_list=[] +while x +# +# Day Outlook Temperature Humidity Wind Ride +# +# +# 1 Sunny Hot High Weak 0 +# 2 Sunny Hot High Strong 1 +# 3 Overcast Hot High Weak 1 +# 4 Rain Mild High Weak 1 +# 5 Rain Cool Normal Weak 1 +# 6 Rain Cool Normal Strong 0 +# 7 Overcast Cool Normal Strong 1 +# 8 Sunny Mild High Weak 0 +# 9 Sunny Cool Normal Weak 1 +# 10 Rain Mild Normal Weak 1 +# 11 Sunny Mild Normal Strong 1 +# 12 Overcast Mild High Strong 1 +# 13 Overcast Hot Normal Weak 1 +# 14 Rain Mild High Strong 0 +# +# +# +# ### Simple Python Code to read in Data and perform Classification + +# In[6]: + + +# Common imports +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.tree import DecisionTreeClassifier +from sklearn.model_selection import train_test_split +from sklearn.tree import export_graphviz +from sklearn.preprocessing import StandardScaler, OneHotEncoder +from sklearn.compose import ColumnTransformer +from IPython.display import Image +from pydot import graph_from_dot_data +import os + +# Where to save the figures and data files +PROJECT_ROOT_DIR = "Results" +FIGURE_ID = "Results/FigureFiles" +DATA_ID = "DataFiles/" + +if not os.path.exists(PROJECT_ROOT_DIR): + os.mkdir(PROJECT_ROOT_DIR) + +if not os.path.exists(FIGURE_ID): + os.makedirs(FIGURE_ID) + +if not os.path.exists(DATA_ID): + os.makedirs(DATA_ID) + +def image_path(fig_id): + return os.path.join(FIGURE_ID, fig_id) + +def data_path(dat_id): + return os.path.join(DATA_ID, dat_id) + +def save_fig(fig_id): + plt.savefig(image_path(fig_id) + ".png", format='png') + +infile = open(data_path("rideclass.csv"),'r') + +# Read the experimental data with Pandas +from IPython.display import display +ridedata = pd.read_csv(infile,names = ('Outlook','Temperature','Humidity','Wind','Ride')) +ridedata = pd.DataFrame(ridedata) + +# Features and targets +X = ridedata.loc[:, ridedata.columns != 'Ride'].values +y = ridedata.loc[:, ridedata.columns == 'Ride'].values + +# Create the encoder. +encoder = OneHotEncoder(handle_unknown="ignore") +# Assume for simplicity all features are categorical. +encoder.fit(X) +# Apply the encoder. +X = encoder.transform(X) +print(X) +# Then do a Classification tree +tree_clf = DecisionTreeClassifier(max_depth=2) +tree_clf.fit(X, y) +print("Train set accuracy with Decision Tree: {:.2f}".format(tree_clf.score(X,y))) +#transfer to a decision tree graph +export_graphviz( + tree_clf, + out_file="DataFiles/ride.dot", + rounded=True, + filled=True +) +cmd = 'dot -Tpng DataFiles/cancer.dot -o DataFiles/cancer.png' +os.system(cmd) + + +# The above functions (gini, entropy and misclassification error) are +# important components of the so-called CART algorithm. We will discuss +# this algorithm below after we have discussed the information gain +# algorithm ID3. +# +# In the example here we have converted all our attributes into numerical values $0,1,2$ etc. + +# In[ ]: + + +# Split a dataset based on an attribute and an attribute value +def test_split(index, value, dataset): + left, right = list(), list() + for row in dataset: + if row[index] < value: + left.append(row) + else: + right.append(row) + return left, right + +# Calculate the Gini index for a split dataset +def gini_index(groups, classes): + # count all samples at split point + n_instances = float(sum([len(group) for group in groups])) + # sum weighted Gini index for each group + gini = 0.0 + for group in groups: + size = float(len(group)) + # avoid divide by zero + if size == 0: + continue + score = 0.0 + # score the group based on the score for each class + for class_val in classes: + p = [row[-1] for row in group].count(class_val) / size + score += p * p + # weight the group score by its relative size + gini += (1.0 - score) * (size / n_instances) + return gini + +# Select the best split point for a dataset +def get_split(dataset): + class_values = list(set(row[-1] for row in dataset)) + b_index, b_value, b_score, b_groups = 999, 999, 999, None + for index in range(len(dataset[0])-1): + for row in dataset: + groups = test_split(index, row[index], dataset) + gini = gini_index(groups, class_values) + print('X%d < %.3f Gini=%.3f' % ((index+1), row[index], gini)) + if gini < b_score: + b_index, b_value, b_score, b_groups = index, row[index], gini, groups + return {'index':b_index, 'value':b_value, 'groups':b_groups} + +dataset = [[0,0,0,0,0], + [0,0,0,1,1], + [1,0,0,0,1], + [2,1,0,0,1], + [2,2,1,0,1], + [2,2,1,1,0], + [1,2,1,1,1], + [0,1,0,0,0], + [0,2,1,0,1], + [2,1,1,0,1], + [0,1,1,1,1], + [1,1,0,1,1], + [1,0,1,0,1], + [2,1,0,1,0]] + +split = get_split(dataset) +print('Split: [X%d < %.3f]' % ((split['index']+1), split['value'])) + + +# ## Entropy and the ID3 algorithm +# +# The ID3 algorithm learns decision trees by constructing +# them in a top down way, beginning with the question **which attribute should be tested at the root of the tree**? +# +# 1. Each instance attribute is evaluated using a statistical test to determine how well it alone classifies the training examples. +# +# 2. The best attribute is selected and used as the test at the root node of the tree. +# +# 3. A descendant of the root node is then created for each possible value of this attribute. +# +# 4. Training examples are sorted to the appropriate descendant node. +# +# 5. The entire process is then repeated using the training examples associated with each descendant node to select the best attribute to test at that point in the tree. +# +# 6. This forms a greedy search for an acceptable decision tree, in which the algorithm never backtracks to reconsider earlier choices. +# +# The ID3 algorithm selects which attribute to test at each node in the +# tree. +# +# We would like to select the attribute that is most useful for classifying +# examples. +# +# What is a good quantitative measure of the worth of an attribute? +# +# Information gain measures how well a given attribute separates the +# training examples according to their target classification. +# +# The ID3 algorithm uses this information gain measure to select among the candidate +# attributes at each step while growing the tree. +# +# +# ### Cancer Data again now with Decision Trees and other Methods + +# In[ ]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.svm import SVC +from sklearn.linear_model import LogisticRegression +from sklearn.tree import DecisionTreeClassifier + +# Load the data +cancer = load_breast_cancer() + +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) +print(X_train.shape) +print(X_test.shape) +# Logistic Regression +logreg = LogisticRegression(solver='lbfgs') +logreg.fit(X_train, y_train) +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) +# Support vector machine +svm = SVC(gamma='auto', C=100) +svm.fit(X_train, y_train) +print("Test set accuracy with SVM: {:.2f}".format(svm.score(X_test,y_test))) +# Decision Trees +deep_tree_clf = DecisionTreeClassifier(max_depth=None) +deep_tree_clf.fit(X_train, y_train) +print("Test set accuracy with Decision Trees: {:.2f}".format(deep_tree_clf.score(X_test,y_test))) +#now scale the data +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) +# Logistic Regression +logreg.fit(X_train_scaled, y_train) +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Support Vector Machine +svm.fit(X_train_scaled, y_train) +print("Test set accuracy SVM with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Decision Trees +deep_tree_clf.fit(X_train_scaled, y_train) +print("Test set accuracy with Decision Trees and scaled data: {:.2f}".format(deep_tree_clf.score(X_test_scaled,y_test))) + + +# ### Another example, the moons again + +# In[ ]: + + +from __future__ import division, print_function, unicode_literals + +# Common imports +import numpy as np +import os + +# to make this notebook's output stable across runs +np.random.seed(42) + +# To plot pretty figures +import matplotlib +import matplotlib.pyplot as plt +from matplotlib.colors import ListedColormap +plt.rcParams['axes.labelsize'] = 14 +plt.rcParams['xtick.labelsize'] = 12 +plt.rcParams['ytick.labelsize'] = 12 + + +from sklearn.svm import SVC +from sklearn import datasets +from sklearn.tree import DecisionTreeClassifier +from sklearn.datasets import make_moons +from sklearn.tree import export_graphviz + +Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=53) + +deep_tree_clf1 = DecisionTreeClassifier(random_state=42) +deep_tree_clf2 = DecisionTreeClassifier(min_samples_leaf=4, random_state=42) +deep_tree_clf1.fit(Xm, ym) +deep_tree_clf2.fit(Xm, ym) + + +def plot_decision_boundary(clf, X, y, axes=[0, 7.5, 0, 3], iris=True, legend=False, plot_training=True): + x1s = np.linspace(axes[0], axes[1], 100) + x2s = np.linspace(axes[2], axes[3], 100) + x1, x2 = np.meshgrid(x1s, x2s) + X_new = np.c_[x1.ravel(), x2.ravel()] + y_pred = clf.predict(X_new).reshape(x1.shape) + custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0']) + plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap) + if not iris: + custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50']) + plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8) + if plot_training: + plt.plot(X[:, 0][y==0], X[:, 1][y==0], "yo", label="Iris-Setosa") + plt.plot(X[:, 0][y==1], X[:, 1][y==1], "bs", label="Iris-Versicolor") + plt.plot(X[:, 0][y==2], X[:, 1][y==2], "g^", label="Iris-Virginica") + plt.axis(axes) + if iris: + plt.xlabel("Petal length", fontsize=14) + plt.ylabel("Petal width", fontsize=14) + else: + plt.xlabel(r"$x_1$", fontsize=18) + plt.ylabel(r"$x_2$", fontsize=18, rotation=0) + if legend: + plt.legend(loc="lower right", fontsize=14) +plt.figure(figsize=(11, 4)) +plt.subplot(121) +plot_decision_boundary(deep_tree_clf1, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False) +plt.title("No restrictions", fontsize=16) +plt.subplot(122) +plot_decision_boundary(deep_tree_clf2, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False) +plt.title("min_samples_leaf = {}".format(deep_tree_clf2.min_samples_leaf), fontsize=14) +plt.show() + + +# In[ ]: + + +np.random.seed(6) +Xs = np.random.rand(100, 2) - 0.5 +ys = (Xs[:, 0] > 0).astype(np.float32) * 2 + +angle = np.pi/4 +rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]]) +Xsr = Xs.dot(rotation_matrix) + +tree_clf_s = DecisionTreeClassifier(random_state=42) +tree_clf_s.fit(Xs, ys) +tree_clf_sr = DecisionTreeClassifier(random_state=42) +tree_clf_sr.fit(Xsr, ys) + +plt.figure(figsize=(11, 4)) +plt.subplot(121) +plot_decision_boundary(tree_clf_s, Xs, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False) +plt.subplot(122) +plot_decision_boundary(tree_clf_sr, Xsr, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False) + +plt.show() + + +# In[ ]: + + +# Quadratic training set + noise +np.random.seed(42) +m = 200 +X = np.random.rand(m, 1) +y = 4 * (X - 0.5) ** 2 +y = y + np.random.randn(m, 1) / 10 + + +# In[ ]: + + +from sklearn.tree import DecisionTreeRegressor + +tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42) +tree_reg.fit(X, y) + + +# In[ ]: + + +from sklearn.tree import DecisionTreeRegressor + +tree_reg1 = DecisionTreeRegressor(random_state=42, max_depth=2) +tree_reg2 = DecisionTreeRegressor(random_state=42, max_depth=3) +tree_reg1.fit(X, y) +tree_reg2.fit(X, y) + +def plot_regression_predictions(tree_reg, X, y, axes=[0, 1, -0.2, 1], ylabel="$y$"): + x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1) + y_pred = tree_reg.predict(x1) + plt.axis(axes) + plt.xlabel("$x_1$", fontsize=18) + if ylabel: + plt.ylabel(ylabel, fontsize=18, rotation=0) + plt.plot(X, y, "b.") + plt.plot(x1, y_pred, "r.-", linewidth=2, label=r"$\hat{y}$") + +plt.figure(figsize=(11, 4)) +plt.subplot(121) +plot_regression_predictions(tree_reg1, X, y) +for split, style in ((0.1973, "k-"), (0.0917, "k--"), (0.7718, "k--")): + plt.plot([split, split], [-0.2, 1], style, linewidth=2) +plt.text(0.21, 0.65, "Depth=0", fontsize=15) +plt.text(0.01, 0.2, "Depth=1", fontsize=13) +plt.text(0.65, 0.8, "Depth=1", fontsize=13) +plt.legend(loc="upper center", fontsize=18) +plt.title("max_depth=2", fontsize=14) + +plt.subplot(122) +plot_regression_predictions(tree_reg2, X, y, ylabel=None) +for split, style in ((0.1973, "k-"), (0.0917, "k--"), (0.7718, "k--")): + plt.plot([split, split], [-0.2, 1], style, linewidth=2) +for split in (0.0458, 0.1298, 0.2873, 0.9040): + plt.plot([split, split], [-0.2, 1], "k:", linewidth=1) +plt.text(0.3, 0.5, "Depth=2", fontsize=13) +plt.title("max_depth=3", fontsize=14) + +plt.show() + + +# In[ ]: + + +tree_reg1 = DecisionTreeRegressor(random_state=42) +tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10) +tree_reg1.fit(X, y) +tree_reg2.fit(X, y) + +x1 = np.linspace(0, 1, 500).reshape(-1, 1) +y_pred1 = tree_reg1.predict(x1) +y_pred2 = tree_reg2.predict(x1) + +plt.figure(figsize=(11, 4)) + +plt.subplot(121) +plt.plot(X, y, "b.") +plt.plot(x1, y_pred1, "r.-", linewidth=2, label=r"$\hat{y}$") +plt.axis([0, 1, -0.2, 1.1]) +plt.xlabel("$x_1$", fontsize=18) +plt.ylabel("$y$", fontsize=18, rotation=0) +plt.legend(loc="upper center", fontsize=18) +plt.title("No restrictions", fontsize=14) + +plt.subplot(122) +plt.plot(X, y, "b.") +plt.plot(x1, y_pred2, "r.-", linewidth=2, label=r"$\hat{y}$") +plt.axis([0, 1, -0.2, 1.1]) +plt.xlabel("$x_1$", fontsize=18) +plt.title("min_samples_leaf={}".format(tree_reg2.min_samples_leaf), fontsize=14) + +plt.show() + + +# ## Pros and cons of trees, pros +# +# * White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines) +# +# * Trees are very easy to explain to people. In fact, they are even easier to explain than linear regression! +# +# * No feature normalization needed +# +# * Tree models can handle both continuous and categorical data (Classification and Regression Trees) +# +# * Can model nonlinear relationships +# +# * Can model interactions between the different descriptive features +# +# * Trees can be displayed graphically, and are easily interpreted even by a non-expert (especially if they are small) +# +# ### Disadvantages +# +# * Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches +# +# * If continuous features are used the tree may become quite large and hence less interpretable +# +# * Decision trees are prone to overfit the training data and hence do not well generalize the data if no stopping criteria or improvements like pruning, boosting or bagging are implemented +# +# * Small changes in the data may lead to a completely different tree. This issue can be addressed by using ensemble methods like bagging, boosting or random forests +# +# * Unbalanced datasets where some target feature values occur much more frequently than others may lead to biased trees since the frequently occurring feature values are preferred over the less frequently occurring ones. +# +# * If the number of features is relatively large (high dimensional) and the number of instances is relatively low, the tree might overfit the data +# +# * Features with many levels may be preferred over features with less levels since for them it is *more easy* to split the dataset such that the sub datasets only contain pure target feature values. This issue can be addressed by preferring for instance the information gain ratio as splitting criteria over information gain +# +# However, by aggregating many decision trees, using methods like +# bagging, random forests, and boosting, the predictive performance of +# trees can be substantially improved. diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter6_1_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter6_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..78a1aed18db0581eb6f7dd79f5252d6e61224acb GIT binary patch literal 28437 zcmYIv1z40_)a?LDD?@|ifOL0BICQrl($ZbhEg_xKohscREh$~nC5aj|lKqDwT64fzf5y?4M{@(6&9X{V}~90{B~!T#^A2 z4A1S)r+=EGLXYQxR|t80e@q^pKa~~~u8R$?9kLa`p$?j*58AOdougB_--DwbiJ_|U zHf*ZQl7qLu{V|0tl`0tZ4*uy1j@q!8#Ka}TuprAoXjVrK>qdl0l_-qZIT-p6=Q9gykhb{?OB8h2vW$yeDRhkw)@=-v2!gH^K=WFl#);6idgxjj zH19*+u~0A+N#S4+4OWijLPH(bKjZsBxU^G$pK?4vyL^@uB#7fj-MS5mCj21dd9PBkZ7os!Fbn zjERJfMB;x2M=kE2kzsg1az$jL5xhk|EJ@@XIc;KfAU{N;MQ{#={&2A)hGOEOd`B`s zgXz5dRziJrzGKCugnL*kL;~T;rqe>@}GaKQQhSk zDDoI)8vN7YpG0w4r2Ibd4hooXPM#_M7SZ>|4fB;IfACemvBgtH0RCmu^Q?9R4U+J- z1I3mg_6dV2cUoo()}bhOLR8(w7#eI5myGH2gfM64liG0`9tKkcZgqtaMH01vl8)vM zZdee8&bH570sAnU8-uCWBn{uV0;id`+Be?u8*2+L|L(KRWHn#g?+<1Src50q{3y33 zg7?{p$Ilo{9cxwZ6l#`4vE2graqgl`RxV215kc@VVtNB13xcu)L8CivEVhDtz9t$3 znW^mr@y;s|GHmjw```vaN8q2VI{tRVGY>pZ^Vk9BkE)7zNm+w0%g~U+P!iAqqg8NeI`#hEMV08z4mDz}-{!gTE`9DFTYk*g5DBN>kB29vN{6)wH?!BZA_+_k{O<5%-vuDojFOr*Kp z#%DDK4kT-mAD9YT;sf5bMw*#5A>2OqHv8jHGq7!8S9UQ@@K(#bs_mzR86isT0Tsm7 zc9r#zYaY&Ific-xA`L89}h_ZN#v@<%p#t~iWN zWUy{HH{YOJg2(BGWX9MzZQ^U^-?#X~b#HR}T@%q{{>u-%d!G$JzG>(k zGc(Cup;!wFZ$N5tC%}e3DRg-y-Rd6%ZR>FEc%Ab_Rv_iGM4U!BF?|p}a}dAx_DCja zf+kpY)(0mA1XLE;en!KTM9#(ezXgfT1&MXwg-+;egPaeR5v~wVjoyKWZirtgA!oU) z>M>X=VyI8on2Gz}Q^Bd}TKu2r@D|jl4cOym>Vy(h6HKnu)h9`U%j3oLhea7a8>4!a zg$F0)BD*2Fe4z~sawlsv5l=RIB{|H>dUqxZFWQ z%PHjAbKtp^42(n>RDB*^T??pBLYGzK#B%!;LCoKvSCeB6(iNkORm&3yW55ev6ifBT z6BtXEDp6L=*I1Rp@P^)F9!cH0<2$Jr^L6 zZ>w5^KYO6Y9ZDAK(cLu&!SJ|~$9$@a*oAn+vJsJ}2Fxa0SBe258EuTpku$T)A(sy# z9$r%7B4a{-0Aaw4fyHVm&tQ zA!ImsEAmr7$Vj@~-}lz>H&z7Gm*f&HR@rYV8@7+hOvr3T&Q1d+H9YcSj&% z?@-u-Uc{hkydZI}>3itv;i_(uMjWAvT~4@-(d?FyO?wO3 z*xn6K#Einli`L?wxb##0#U)@3Q}9^8`4Dy$vrV!|TsPY2A zKaw5|fiuoA?nx+$`gjS|(_{ROxz4$7e+Td;bYGV(VHmPraC<#ZU8vm6GebtleD;!^ zJGS1}Hi1;@h8j;GfD?hCdZ@5c-v5K^L-&Srzx3C@LR8EeJ7mKw29s%LdKfH#gwGC2 zPCf#>+0oIlb8-@wjg2iMBZE`ZT#93`ZTupS1d9Gp$$oeido^)haEPF~#cE zMiR9X!!hmS;Y51WT19OuJDm!)o^e4Y`$gHgq50f8$LIyU;JS15wj?CHHmhT~;u*qT zNjp1zgt7nr{rjrh#K~hdmE&=;RcpUOt~`1=^O94}U4g%Wd>N6FQ3SoCI_F>UNtg0= zUz_y}^Cnw}et~DzpE=f0xY46CByqS6rK&=F1x0;@&q_2+k;IW4E1kgy!_%?(7*um4 z!Z)MIg$E*uxwPwTh*ecp8=IO`+kJh~c&tO(+eL%X@qhgK^*JSlXn(m?UPT4k7frT4 zD*9m38TfQ|VPUe?QhnL`MDe@JZeV`?`;djtIE3PCh^vO%Vl5oY$AsLHUuJga+-$Qq z8(~v9c>X_%{yVCG+yFdR7KPW_fy8ZZDkgCW$fRUUWYV(4z!~bsG%BgD6oKQ#760;^ zgjPUwsoiAn|7%^oAWR&-ej`~AG3j5uTJ{wy>6bO6$l$1^lj_jWOaIMhr#nxrre`Q(L) zi4%6X0xLZKDhgtuUnHP(uGG@Js~2KNGyo3i3$PFQWY*0tEYX+j?6KI?QYv3ma+&LX zE-z<2CljnR9VEEFzp-c3_|g#z6aS)FLg00=U-vBA zsd{G#qN(tJP8(7U=jr5C?!}a=tU;4ou#U5pBlVh8{P%-bE#g-PgX%VN97&nFNrm-{ z$E=UG9W?ipJD*(4>{j^hDsPvtQSf{9{SVKvCG?~!lzlIf5G_+i!t`JNz z!NmUle(s6|S4)zI#mi9f87zc(%ns#k>4<8UlrdvOvQx5@c{4@>-Ul3ie`5p%JD$|! zk~W*LgxZqu!+6sfoV2+mXsooin245*pfwFf%Z;H&?zf{^xNxiA04Z!FhZ4oAi}?tkth?rmY;i z{d28eZX;R3gF*)_UBH=8QBfZ~`Kx}yqAd^b^H!x85ZkFqqPu&>gI%v(xsPlSE#@Yq zrYHhNBt!L!x3@l~linO?#|y^K=+((+*1gH;=l-9KRmublBNoLHEnjSg+rVw&JrkIc z66loGfc4oKe19gKvx0KxG!#nFF+3b)IayR?yTEH~Y-}-G2?M3G0!L1!$M_7?xU$h- z=SDbn(6+5nKvpm8udAC=ahtNw|GyE>Tzl#3gRgz`QMyfTJ!p?7fbcyM*cPHly_9yKRcQK(@6toQQiLXMR>JU_w-DM4Jjw}hI z6qG_vv(o-r$Y`J%sT#etilMT9%xdx=(Wkm1C`LAQ$&>EqW|U``*32ZaytDZA4L=xz z@bQMV)??56Z_8Kr#EK`Y?3M%{-E5*z{_DF2Rzfx_G9M6KjLErzh?vP5>z37i;!DcW zQl4y8C5|xRO&dBtr3^{|g$GLz|L2`qZCLjQSU1OHNoyIX^pVBCzy|aE+)a*U?ATCd z>#PYgh1{enW@^kw$-RAi97ngyo8-2fbSZ^|grs7~hqs2)n>S8mCy{P%HQb5 zG(;HV4PIZ7Wk6D3+w46|#36c-vMUS;J90Y96Kg{RI|9;Mgc0G<1?$rhGaNimF~$)Q#@<1Jt)sfa|}BJx$T!TJmj|!#`IURo}_k6558mA*Uz|Bx+*K5 zylt&NnKTn3?5drU9J`~$F+l{uf50TarqV_0YAioqLFXw&Tu# zMiI5(!#CexuY9!DGxz<2b^HiL<>de!E&r<&59w{;bIyec+c5nK z^N0I8jZ&SsBk{hjW$Da|tP(HI78N^I`)E8Xju;vpcQ;pu-r}4X0K+&X?Lq>HsDj+_ z`7vAA3Kbmj9!8`5YDbt6&7NgTws~J&{;g;~ zJU{nsX$hskpdvVAKhHHa5e5*0AY1!ZdoHB#MfFYH(j1k!4j!v6Q8EJSA#@h8dHbNZ zDTiwuO{aS_^3eO|_MG9Y*kCnFK;M$wa8U!DC2fKG_x>`;Rf+&7F^B{1C2d`x+JJ!C zfDU*83mkzR;Z4VWrq5x>o!M=2IzX4MAP+8tIEWO2sIm+kK}2748#xQnld4<35tfYrM7J2xmdxT*)YH1-1;V?$ zzZ*n!^ePo(26ne|T@jLV;@&6kL;m2vS4}GZIm)~m;Hzjxg)wg@GJT=q0!x6xUuKQE zJyj}v^X6#77?o#r^N%EK8$PF&ojrne-VybYkA9*MmCRr##n*#;SOT60Z=`U3;0R7k zD31^OoCgh*O`zqlTjVET(UBO<5)KOs`>E0DnJMxUlhTnS!Ape!Z#o{=E@#mH&c7W> zrHy(d$S#ZOsD|o@Xn~B`P)8cRM^{y1<_bMkhT0%~>o^h4Qf}}L@P0}k-~Op^y@olO z_FV$|U<$5T{Dx3|Fx30_C!Ip3;OAc@T9bwH$#@A91pqL|Jdoe^feiqmjOOQsoobL3 zOgrwiO&cn6p|?PAm$R*pLGVA22rRZ1nBV>R?)vYA_%cyoW&>HTQZJ@$id+W6kT)|2 zNQJZl_VPp3DF>EYOKvMYAi^RbA&=ErYxzFhxn*RQ4Q67-B+l2%FMQ(brL%l5peL}2 z{;eO+imsAM-Gm3-!gy_c-Q#LAIV>uwa4jc%)x^gpccTa!R2Hdl)A&S3N0-iGv5`hO zEynV*8A(fx2KcJHuJS%ga+Om;#-s_7ge2=u%G4-a};wq0{X9JkZ{aL z(C|O^=#3^DTyFJB753uQWPI~er4=~5oy6j*(VjS>I1+FS(oyrG?im91hfnmlydLQzgXyR9%lKjeSswHGc`m_M`fn3y96q z_sxoKirhaC4@bP%Q!k@9f zXS&)EFq9#XAbNlK@e!QO&d$0V{NCCKX-MbeqgYf}L$vB0?K-I9iO!C`?d~t5=31td z%zC}~XI5+7Lc!CZ2h91_uPKUn|jF_`Pqx0 zaSN0FSlH>_TmnARn}T$2U)>rTpb1X z(iZq56~*})#K|+CKU}R#rwTK$!i{0Rm6y!Sk;CbH38L-w2@M(Lr1>N<_20>{2(f(s zoT`7{#5o}T0&2xSPxJF(%nDwTlCQmQ^OF--_b|)LSJ(3H&Q4#lGeffjMVNgYzy5MU zYPmaKAc~S&_Sh!#Jp0pA(SDy+gyY`Y`?p1Z{S0rE#`Qy)US9p?9kB2qso=HUKdG=e zy#J64F8-2q+lr&Ea_!Y`(E`Hy7prQwsXw|jP zl)skwG`(vcOQE;dq}74uYYh<*S>3+a(QJG5GQub^C09H&J~p=F@ORhM%ENu%T2F+d zL;t1UV7C{7Rq~hNkFzL?-VV59(=?y}E(ij}ET-d0ry|ulRZZ8+R{pG03ZnjPq{>6ybyo z8RWb+M4(FZzWg1^FDO`T*on9|d{Ki_v+&g;vn#_NxwaK;G+DvV0JIZwfe(on)Xxp* z6eMC2vHJr9Rrugy>2yS8vy8b=-`VDKxZ*eOsHL@6qWRwW?6!a4v-{>Ino1QF9uum&z#ff&aIX+utYAw z9kfNRHgHMF$gZxov#SREZGP(M;j+0i9Z*VIJ-QwAZPdfb$*5?J$B9|n!@bw(HS<2~ zQ`orRjp+TD;JtjBHDjT?HTAXUS*=!`)#_@;V(@TSbj;Rg0+wpm6^VkB-NEsrIJ7Ue zc^X9H;||9!_vVoN9-djx{J6cEZ~CT5yp)UNSkc;0;Vl~o~y3#D(N;mUVYF6eX3%T}e)Z#5+l+oCtzeyZQ_%Zk9+Jg!B17-04}FIzU# zR|Bht$yL(QazBAl$;im`S9%~Z@VvWk@u>6`kdUz8y|!D*@p7}R%|199HuyRI_mn_u zEVdttET7Dp_a8sh6-R(z^l0llGp-Zl0aKHs2sD49R ziJjKrcG}U(eWt&0G29%v4qL$pAC$CH+3&K2wJxA4%#>X-51=|Neb*3O^}bK7zVvhE zX4yM-OB{`F1uPk?dfz@=r}J5FZw-Gu|5x_s7WTEoWY9q8czimBb1LL3O3{R=2cf?1 z5mlz&zoF8u8fMm}HWXR@CIpXN$qbyu4zJjYnithY_QK7>&hD@!9k5nKAs?#2oV zm9@>SmBP_KA{i|{@qZ*sa8;Q74^tfGSuFde<=?TGYGvrZ9v0yFbuC6N4O(fMx|ppp z8643JWkr=aCxMuHUJv&^AT?d$!X`WGn)6Lr486nW~+e?RTmqT9;vwapv?6|a|);GtezO!;nv z^bz@)ar}6{x$V3K*@Hhq8p`;BeOEAsY`NvzdK$tI-POx?eFEUaZMG*YNLHAJ4}WiX zt`0J)5_uYgk2oZk#R04M#)zDO_sllUIH#tTNZ6B`&wkltIF0A4y$k0Hqv01Rg7~fn z(|gzUEePTvV!`NdahHSU6l%cH#X26Obc~5Hx@+d>j9VpMFvq~A{9#jKF>=Dyl5HEP zuoRB>$RM0V-dvfJiaum;u)O=RHC+8lk`O%pp^JpK6YkH zR9neq3BcLCG18YA`f@P}(q^iFGp%^&^Fr5u^D%^Dy1emo|u`+ZgH5Lr7X!sa7osVxbzLa-i&`dCxW zubJ+i9u9|9F}Xzg&da0qgzPC@N~SkKTKeO>?^q1VuSVK0$nh8xTc5E5{EHTY*5F-V zkHl?G!WC0_=i-~>Sv^$1+#g4M1uDT@3)Rat3|qPrEYXgC3u9k# zr@kVQ@V+WS#gWF~IoLw}EJ0fVP|FWS%-j%6`};IbQ}kk`Ok=>QG&VO|qZ9_=Gu1}7 z`}sMzh5jn3i&A52J+({R%N%*4emcEZyLGo_Euh0^Yy_A zbmLxsIOM2-H&oRYDuoH^w)%bExr{9SqVb9Z1bms~{zjQ{Y2DG-uj_XgE7GW)ZYw^; zQA!5x2x&Z%f<;#+b=ZD=(F}I8)ihhY8Z2t~*@4sMXf-AzC-eygSvJlHbvV+}(n)Lv zN}Dc7?Lv)mN6ys3RsQ4P1G7W@YPQ))t$6bIn zRvhbAhw=0Xq~2!k$2ZLqB4Ohvg=QmDa1M|*aOteb)Z2Y|`OXTYj7i!+xU1WqRs*aN zx87Ld-`_I`mnT26y&E^XUd}uXL00>2XqmB>=`W48Yug0Lc%h`ERI1w)&ucr+4j`v5 z0Kt72n}aA_A(qyR2QA{`_mc>u;oQx?noiEOleir43i;Jt4j3Ag88Bt=@`_4UF-Rr!)L4i+J@WkU+vH#wg z9U3tiATNh|@EE)}r2s6!HgDMU#n1kxmi)2~(({#1ILYlwpXCY1&J z?q8Akdm|tmF4)fpZr}!f%tTUOPLnwP|oovvtlC9r|%O0ew;)Qff37l+#MvrjJc{@jyT7*<6iC;*lZJ|jW zLo-(1^?qm-5Z6$v%0?MPS+ggxT>Dw6oq%lq@OS#?2L>Cv#TaFgQf8X506+$SonKr- zFkkW0eD~?%V*A%mzp9<&Pzl}1Y0s(s)s~L{ce;QFRq!}XkIi{%je)v)pkAzv?#=DV zZA!x3??_w|u3v1MD2Kxen^U0VBk(TknVU=1EO|2yc)JiRijiak-z)9Z?)F^$;?RN5 zMi+J?KBt2JFdeQ@+;BGb1zeY9m4UQ)Hyc?d4HY z0cV&wJAtX8eN0yYAl#pqhZubukaC!Ca!Dibtrt3-Jg)r}_u zPYPrbUT(#pVAUQzV{3h~IoMV8e$j3vizC}t4p`wXVC44E)1MAyuAdJsFs!SFgzMw8 zDy0E}H^$YP#RENK39$dRU~k6{j@$dq z_A2e7FZl(%AawPlap| zVeu>LY;Hhq_52$D4C3fFysv@TBcp5RY4I343DKFEWRpdTUBIToaOs=?f+1kll@Y6g zpf?lvmU@FahLG25qTQ%}G8iCof9a1y=EW9N<=*wsdv^M0eU zRqj)}g?dF2Vnjg087{YYJeC-jH#ghmId5NPi;G0Jf5;%g=KG>kz_`7ig|xbQ_EEVM z!@?64c6t4`Vtm)d`*d77C^-0NkgZ*1?9S0`Ia}ynp@k#shT{T(pTg@Sa{Fx_%?j}= zB1A+$^W>TilG;6Xw{T;rJ{TMCu%9XW-tr(?{hHwXkSh2P6!atnlNb&tx<`w0(i*Y( z0m$(6iKruoqe_=c5+puE<#LQKJdca~k4~7Y4$jK-jE7z|$`=yKs-N5xV;^6Z%m2K(GM*MMa;Bb6npJd<^JP?@Fkg8(--H`n|2s1MN3 zDf+FRn|V3);-~>24^{54?*-{a2Yc7kEPem*9vrf6tLJA>*E_)8Dj9M43byz0eQav# ztTsLT*HGzNMlgM|H%A()V3$807N3*+aGD+G3lbck;LNK+C(dU4|nRV zhw0>7uA+bhm>vTKkL%uSC+N;u0yg~-xxY6ZN?$W^QjdYMd-K~Yq37lv-k#`85cjA@ z4CDJljkErfUuopM7ld^az=Hl$8932Tz+ea>mtyja6JM}NU-esNnlUNa-1Gb1^4FLR zuYo23>UM73jV0g1%VN-W+FNQS1Yc>qwgV%XLJ1iclUGOV`>+S$OSVn) zG~Qpwn3vb^n{#&OqB6-hv!60j5SStJv_iZ%v$Ta%NDB(t_)U`T{4V>L>O~eD-n@2C zGWV~n;;w*$#+qku&^Iy%a=U8o0jVXxE3;xe~5 zJdv?*)7@f5$;)in17&U9mbs3qxvB|JmG{qrXoVJuwJki`p*zOb0(f5?){(jGFw=Q0 zshfzoI>zH1n|qJCL`DBEg$QBR`<@7zcZX*)2J63%_LS#`!Vli2Bcw3At$qpio(};5 zq2+QdB5BXqtS8w{L&eQay9RmL3#;uxfAHG%p)IQLjR_M24O;&`;VMRk-078m^@)+C zt`L+Tlay8So5s1hT>oH(0JZ5?HMQ?evP~W}o0a1hiRA|02XIyrW8b?)epZtsCMRcY zZEZCLO+!;S9BwC@kuT9B`BS9iy1yf~W09bzNJ2uQA2c`Q#gtMxC3|VQWkcCWH~Lwq z%PLGpNEygT3rgQ84*Z?5r7NXUKdhw| zmcB1d zJrV$BCd-rz@3_B{74&oGKI2Ol8OatM1>sj35cQySViz4zQYpM8lV{&@gbeZ>4aZ;O zMh7}mzHtr9r5CRILH#loW02=$)nTRKdtFwbi$c#5WMS!fKo!(Ku%G?GU%*Yzz|fZ9 zkD5skh2IqK@l+|A*M(IU=}&gH``r(o1&J*uBSMYezjGS>2qGnT6PEy5#9UtIHjn+= za=X@nU4ddigbr)d)LB{H$eY7a=h>OhQW5>CP1(z}7#S?&n8cgu>`eg|yS)YOF) z6&0mwh2fDA5rZ%zd}YLR%=DLRl)=zy$MxQ0;7Y_58}~j8={yN)s0@DB3^&0V+Rwf+ zBfhgn43AUO*$RZCqKL8di##KWVz(jkKKq>1Z8}cn;G%F64+_%LEKk7Ob$@2kx&(2@ z(ZPM~?kV2fC&0m5b#_!BSKF_Mr19B#1h9;f>grEaB$snt zawqs_1)v5DS@wk9gQ+#<7E@oaJ3BjHee&r5Y~Qrz##-J#{GAEO1!i8$c$S_wCQw)z z>OaPyN+f+09VEnA%vZ~j*3sKtzmOd2;8bVYq4 zNxUq2g3qhD+B-**A>{V_Ktfdv-y@WftHj}Y#1gVsF}Hr5&LoLWn7emay)n7@{%(+% z2&uQnQlNnA@)ct>3alHO!L)3nuPk$>8FEsPD4NPx!$%e|B!Z1UCk015{a12lp3aXg zay#}%{uvCJ|LOMgtoI<)e>)lND*acNH0h?~d^{~HGIxZQK&ZHt-$voMS;OT1Ty8Fa zQj?U-=*ZYs>hNkCikqKG^BJdKvy=zHR{Zbba3kbhjRC1-lB|rs@15bUS_(T%JX5qI zEC;s|?c1*}z3=Q>O-YFHm7i|9Z0>BVge_}&0W7fIaUJzn);+f4A8~_#b-y9Mg_qam zmAU(gB1_fKY}FiFEtR--2_&O1ksv>Nx3$DpLd_&C=n0GE%~}t;@2kim_sG_(m7!3X zOUrZR+2R`goPLr^ywlF{5p3}<0dP}{&Jr>1TAT5BCarRlQcfWumMx8kdz~LwN9(qf zRX=n}H6d8RP@W-*ASh1&rXUKFP5Ag1mP=Nhg1f#K!h&6zkKOEiKhmE3Fq98gzp4Ua z!;7&2e>^5;n_!5xs)^c8p_D+Yh>DIrpdIY$%5ENAFU4aPsY5g(2`=5`zY+v(4u&=d zY<57?WefX>)T}1|JjJN(spELhsVnL2{mQ=ej3D|c+1HcsKeza@pwDT9%JV85sza)O zbI$XltIHC!HyiAhz}3&s+5JRXZaKYAvAr+!&N0el2utw%6OSo!5ZO_QFf|g@$g2ts z(V60Kq$0;`O7f+x(J65i(s`ra_eI0z(HN7yqzuCuvs{PX{&*A@RazT`Z?M5le#_k7 zo+y_av@50a+M;4$3~CnwemU~2hmeQQ^s_c?-%lC##(6QGRe@DgSa(T1wrm`%?OJYd zQqYAyk|dd-BD|wR>=7yq*0Y4MP}~glwriP?i)K;)if^y&J4tIXIcW0(>Ile2KymcU zd^D>NFh0Ns*x%y|@mn;72z{8q8D!S8N=K$w>z>yZYlo=&hggK?@E)cpf29h&`i*i4 zXq+U$58pI1AIh1UQ=Cnna~yGaAI_jGdN_nCvAI!2^XDx{eRO|?QVBQmr3H@%6cC}y z>h>HcbymN^f%L@jaP>9lXUQojDD*PAxdd$v=E~v@`*?JP>=78mp-=B4eR--eup4C% z&aGVy5ahU&lJm9|hV`4ne*yM$jvgqWc~rEQ{i7_if#2(rd1NUA%@H+M|EK2^tNudo z52h?$E5ZuJ*7!5j7_{x4a5g94LIe`bkIklIq0M5DWri|^l4tb2qCf z-0wV|8?0h7?|Wz8(&J|P3!Xt``bziJ?8UXn;P%d?1%x$3uK=)ikjHuywCA~OX4yes ztM_zw5}TMqmViDdIL2;PMV_t6noy%8sqCN1%bs~22-|8T)VKy}oOxv`---9N(v9tO zCzrJQdx+8N`;1a{*X`}rvmfVOr zjGq9~X|;LC{Tz=WFY5kednT|S035P4Mzzj);tuV1=(&~gC)+#;%3syyWqu037w`z| z`WPlVwpW8PP3|8-xgdL};_4^a%g*GVh|{N>!5^2CL%Hnt;3M~$QSxGciR+EW?!@7Y z!PpnJBbcWm`WJ zdmB?dyYRJ9G(6I1nJnXlzP|n=S^^yvAU}&g5=MmRHCr_Y`90_@9DeD4Q@V^wTZs8& zuP_l!ZQx2w9Ym$EShWSxlkMzz)}Ms>{Te&~O2^0>CC|3n^BoDTAK7nVY32a&mp^a3 zIz1;K47R1ZpON<#Emz&#+|+>TJ(@yv#JZwYs_50v6(21x#Z2_cB2#_Cp7+3k(2S9=V9K1hnVK6x}x@_5+HHeYv}#4!@c>9fri71oHaY zI(%>`%u7bU%jxGg>k9x1kV)p5ay_BP+;880*9&-w)TVTwlPF#iA`#v6XY|#fi8xQ` z{16He%yS@z#D^>@BWcz(C!dSse>~hbCn+>*v9WyhqD}R%DB9pMIV<{AnAw`CTW9$> zGCU&wrhGp^P0r(VOO^Nqahf8W=@>`ajx;V(viwym=Tfy)zUuvf-$R1GF3=Wj*^@x)f5tCjy8mxm3)q-i3%$&iOIq#2s)I?6$+R=z+oA% zn)bG@{L)-t(Jf6$dVkp)6*-eD6Ih3yV~^f``0M%d9ERU}dqZIBki}xig+E0{k6bE7;EgAWxi=O)$oEnvfS);;NOir#7pI;p69h_I zmgIVqoiwFP!J~0$3Jw5YUvOJ=0NG>w5sBMArhzXSg&(HoHw!;}V%lM1|3pq1xh7l- zw7sPH=+$&FS+QqyH3?z3b*jUSjyi#n%#?*2pu9BOj?NrId-2OUQJ9kv?`LH%J~s_e zR4K3bMtPhJ^9lG|yKLEsIK4dGFQb9$H1j%t*l;Y>L%Jk!Ab=-A>JcgsFl=Zvvfi&t z**=*p(JFGfqTOyjXj|XT_A9zrT~^Tx_E4F9ep2%}3!Ew`Dd{CB@EqOTihV>#AGk|UA}7ucvNv1d9=b+#rnbkY2*Ns5g*q!8-3NvF-3K6~ z66eF*3?9`t?EZx9ak1*-R1^b>vm4b|6^Ysu^F4twqI-MzdXeUnwUu>-6L zqvPKChPcs}GJF3LFQ1$9Zq)_3oT9(u3@O!>GFZ`&m9^6B86NYOvTRds7E|)Rd5au4 zsw&nFQcG5+HU8J5Lzv6oq7T<4TILM1zkp&qwaN^cIY{lkP`l9q_TDw7v!^q7ZNH~R z)dCC-5Ia77%JTAx`N@j%Lj22u)&j9}ilw*mLpSzU4JYb?P#HwnISzlCO zCqNSdf3yyG0cK5nJiP7!RVGIVhn(BP z<6F9Wq*~R~@RR&X93pIsQc65Q01cXO!Fwyuzbt?@ zy}Wg1@lB%An^-_$|8?r-Q|$v`q}F~jTZggiXRy%E>12}h?Yq+^x?(yn4X zQ}6(I(3eEGjYO`ha}W5ubgf@@e#eC#82ReTQzpd8P z|Lzh7Vz0x&vT%1v;5?62K2U(+xrXK3yzZv${zmNoW6Pu)pZf?^q-o;I^tTrp!BNh9 zYRsiXN4@SYtbzcY(C_HRg1w&9;$~%?_e_JP34JgzDVk5zlCh`gz@A*u>mXi@{7G6X z|Bcy*n2uE`;vWU^S4nPW70OA?Oc9?naQDO2P9%a-eX&5dN9`V%F95f$zB_gm^MEke zC`;+SM(RRzbQ~jaOo-V6g6>=-JT}#gl9LL!%Y@1%_{3iYMbiO`tzWowwe;VuiXFZc zm?PrAKUKj$HFpTC213`Op=*J(dwHS<+x$|q z+hnDYI1n(+wfP8Lc^@Op`w^V@rF5UG15y%f!W7gvC(IuA$y(KMhze44c{KCe>Y)DS zxJr&)h}6N?hWROph5C7&j1V|=;ndr!;`)V)VZPs+$y|EF)uw}wf>6+HFa`95##fzS+=kj`>|4Z;j-n1lej$D) zLY3fQ4pC=1`|Ov?MA;j!XWP^PXM& zOQjPUR@n0~GsqV4o^-xQAWo&@AF05Pbr1H_v^iCV<|u$#mYnw4rRg8CTh{<;HFa0d zx3B0tI1QKlZA$oxWh>kq64jO!eO2Tty9+9~LsjOHS5!q)wDep&ffygQdG26Wt7gH5f0!o6>#__iZpc zF;=8VQlyajW5K?CxZZZ*@bvVFq2HnJi)6c@G<|C*oHEEzag;~FS}3Y1bIa^&D|&EU z=}ueV8`F1=l$T=h*hgTt!9wF3_T;?Mdz}T#p+D>qS(=`lb^kQ<%kCK;VI1&J8HR*L zmKhe!WQy(kPm#%>Ccw%cw-88<+sVgc`BsKPgvoB9QeTGh*nlO$))5K3>%6Hc99g7n zU23UHePzz_49s!`K_&fJ;Gdk;2HJ56WB(tq$E2m@tafaqbbB>+CJwqgIK+gYPN*Bd z*cne-@|)wNHxTK%02DOOBeOO>K0cJr7XwP5VW*K-b^F?F)SxfZKx(gA|CD8*zFz?s zKU`t_iwpH*T1b+A*9aKG_@{DCY}e#&)Cb4#D?;~Ty9rzI&*)lfQ7`N(cP^|30x8V&4yPem5uha|M@)JzqPBldbmBI z$$sny#TzPgERTo`o^5gO4nw|Sz<#K^OF}ejJe?UfpG~eTbR39fmQGvB4`HYSv zxuJXliXzX;50~p$DX-ox`+7xvDc)BR|uQ2hcntPKxLyZZDSQ~`!#`G1WvH!kzH{_$>c_S(iq;u=o~6bbRQfL;@GtwL@;IVhc0 zO%6_H6$I+G)lrSmsKGi{Ew*LABoaB3R-=Ov(4qH%8I-VDqBw!45FOUvH1ey90_>6$ z!^|M~f|x(xWrb9OnO>L$by7q~Swqw0Yh{#YXdhyETl(8+*7PL~AS$#D4C)#yf(#y3wm?-dpVyixy!mQ?CY2$XSp`R{Zz_K=txG0FPmF9&O+U$IrA_!F3f9)p zcdjQCgZ=;(>eNsDs2IvDk%SJv1cCT+_x8~BqPM40au|~JVJJV^)%Rbl3~R8S=N`XU zpM!m`oxGvJ(pv10nZ1Ow2VwwxnB&xbLK8w?17X({7Gsgf*Za5`w50bFh)1trX2aOvv0ui`iC^v_I$ zpZ)FN+2LRBmVfU>7LQ^1_0iRsLlfOUWx1aAbX)v&k^0N$q=(f$a+AJ7H$r3{r*&ZI z!#zd!?DJF)y3{RC;Ce&!2~fa)Rfjuka0b1&{GCm4`FG7g>6cuxMRzY4dn0~ItRYAq*2z$nf{lk@h=pY!?a`5qp>1~I?!pyqQQ zum7e%uu%Js_DqgPhDu#qg9yxXf~Ku|-r?jGHa~iwAH;41%Y=bSu)##@A($a?vOc7bhn{e(io*eVL-dndz-n)!UG_n$!FXZfA zkf-Q)IiU2~uusZP!Qog;`+%X9oM@XDCar|ViGXE}^&_tfj9ikdL$(--!Bj)m%OSfA zv*exAEM-47zkP4RJLFL?gwfQx#Vg53_;2<<9N**4^E~%`f3D9p&-47K z0n|d3{SvK!@xVJdeCCq!^71i)O@hx4>Q z@9){+tznXG3>lzwbNpK`Z)red)@!4>qZXSmAG8O(Ql zgo5t_Zh-T~hNxmqvce#a00;a*7Of*jEa$!ER~~TyY$;!BK145@`B`x3S!Y}%q5+O} zpormO9X)T!RnDJ; z`@7@fgnG?4q>=DYK*>t#^Uh!ZG8i#4u6Y@gb~sr`)PAw&_1hjVt9-@x@7%-B!t(UA z`5NkHP^luJ$(=gaE;IaL;+>+CH_k|(!p6@dT8)tD zn#M%;pMu@F5I?n3JxtR@WwvwApOg}$>p_s1>Q}|Ax_QI%z4)1O)BLkKEr4$3fp;~; z^EeapnDF=P8c^mAt%J}5-H@UuzI;z6h@~d>3OH6xcD9(yQ?&1oDZ0%CT`)sA;=FZn~8A78^8yrj#AKbzX36g^5vvRB11nIXrD67r% zyw++K{4dnlO`%g)JWW=JnsP)We%SlJ4H`Z6WuZkMvMq>#VAI}tSdaD+ti+)$wxw`zZ_tU$r`Q`_` zXbM&GMXS-X(WFBJi@_bs?F%?LY;0^}1N-^0akI6?s?497N-n}X-1|$z?eN9kMSt5? zCJUTSJ1@06#eNdo^~vpuv_)9ofLjsq{Ku3>^xCp3j|;itX(q<}iW#PU zFI{oT=!l9NqV~43wt{CE`2VG>JkDc9xaA3CA(C6p!^uuS^qTsS0aUb6pN7TFtVU7) zRS|&pcyav}G@v(FUYkjUmvz~C|AcC%&2UVgqG?7dAfZp3aqdk_PK*&sw~V~zI(`|0QPIms;y$;pA4 zd;_|7e=0?!zlOLE)@vN*zP@wEHb0A2(2?eZVKmKfX)C5BkxlKo9JLyMlG@mhx-(!$ zUWHP3#&`D;H#fKI%Fi(8g-$2n86#~QA-l1r%z*O;rKW9Vr>mt=V#TOveD3<3;F|mQ#Z+ps8=!wI@mX~Cugs}@ zqOFg@nWK^<8l$hF=|5M!*5H)VB1|#|$o0JD*BV9@MOp;k;|hM^G4{*jg^$FYZ?bq` z2quV7RE>9SevhGZT^)&m41^Crz6~dTIh1Zm1YV*O>W75ni^pa!OpSrWal9eYmloJf zDh19!-AO$OZD4Hud+y^o9%*wZf!@pN*lXpkMu5Hhq0d@N<=^wc6CFvN_o}6F(^EE-nLTi z0bWeNZtUe?foi$!Fgvi2GIDqExSCheMP0_edhi$p{Bs+j%Ou#T!z@{AxODsG1DMm@ z)-{myBRaMX$}#l0q?p*@YI@iT&KCa*qq$cmm3M|=TI$VKr{igh%2SLUt=p3SRC#-NDtpbP@Mp=m#<7nZrx~045y6 zJC?Az@>*IHn)%8&0|O{LN1sC70D%uJiiBwyQi(N-9_$W&oIRu6=g3 zxU#?0zRYS?a62S%gSaV|Nr={t+DHyGNg(>xDx%Or+N$-;rrO!~cx;q`*8VzA5M0 z!ON4kK}g$+Ztl3;0)22KSs6*hM*GU$nrMlx*C5q9?Cf~A+~@EaP&iFrcLOmiOQ+cI zY^#M-bb~UnfHH90aMW;yp?@vJ@U!6%yJ1&+UPq&`D3@(kK>?MJP#Uj9Ap8S`Gk2o< zNGL<0Kh@zhbNRXR;ZWW?DFNN*7^dU}oU1pX9SwK+i5AHVfndi#^f zxx_G3s-E9gHH}#L_~H|;s7gn;Hy~7g(OQM`M` zTdEu=;NHMA?M<>xEb!#ASd46RKQM!tcACTvrG2IO;ub<})IH)u#B8nk`4U%GF5|ua zf$4#G(k!Qy@7j6MT5LP)T%8qJL8@4^iMEnIFj-cH-%(FiJGA#&KmRA~^NjA-t3YMOdKft>0%%br?6U_YpW*Me%jJMqMEu=px51F?xoV3oQnG_zr-`W&!) zs;9s;=(u!rG~+hP2}GP@V0_Cvr50uIQg!{@x#!KkuA)mQ*^-6AH7qCp5|hB1OllnGl}07lCIA#|RT-PzTtK+~Ak&bPj+xYuegD$YZ!DGG45bj;VciPr%b9)$ zG#_<}zqhrum7TvFf1d>e#Mbuq=YW-jG^Au+xQe~c>DG^O!X{wi6W6DdDJ=|t)Kh*r zQY6^N7$&`~tOo4>P{Zi-*{p9bz0|I7Bp#GXWa&J+ful&xnPEKiN z8(Q<#0G3PP_Y-wC3RPBs^83P^sQbi^s;2pCabwpTkI~^~ zh3YxDTzVB*YT43p+~ zK7XLtM-FJeSU0t6=zw3|#Ogw@)jg5`1 z<%$|cq=_zV(xw(S^{Mh-i=)X2i*}ey5+6Pxqi5*uu)l#Yp!V+O(8Vks$M?A$^ghE&Wj5x`9n+n$UTMcwJ=B-Ba$p`F)Lupa6ZKIq2;ehc}rxvU7|5k1pF zwH7mGtL{vtnq-vm>B2flad2iTC66AErHeR$fW^gH4}AGS6RG6gEb^@~vUl-C8y@%0 z?hI@X#0hM+MmjD;S)O=BQ58|3%^Vz5B_&Y+8qS7>-7m;K_5VI8F~*Ql7M~t(1J@3b zCwgHwl;BGIO|r+0{`WHOxRoj917@Za+`qu)Xt9w*XChh#_>gF$1~DWQ!X;Im-a^d+ za+=ibu>&tE9v&_i$T3=q8KBGgP*^R~BX0&QZloM$@|*>$7-eVf?r zS1CpZ61K7b-rRIZ#R#;27rdBHtw!)$?_J+F$*K9UP%^BbAQVIaMgIxg_)o2eK01>t zcfFkRS2c6HVFE64FjHz*#1B9a;5}7-@vZmX7jgQ7jRNMH=~#)0teo8JpFcoU-rYVt zv;v7Kgecq5p}=iervM3Xs(=kS3R%`-gf4YN!1?j>_wU(|dJ7p!KuD=|n!^Q7YD-sF^tHS0xwkjXk$e#5+8{h|MN2ROI0^iE!nFM- zC7p8YRv&9>MX?lY+7!gyCI4R?lf53p;_W-5;YKZ1Gicqf+AjY%AM^bqqEw|MARw@t ztm-k9E>z3LM6mbraSRJE+4&7ZR#l1jz^=NId6wpXBybuvqyx6v35Gx7r)&HN8&fdV z&=+x8e35qsG;B{uwnSkG{Z95~Gd!kC(}{?P%uWy1eE}lpx;FM|w&l6Y$({|^-49?q zGbEJ54qBV6j)P^)8C~@{KVBLK#Xhx%scDi^(0b9wcl5PyffqdR$+Uq&^nR2ss65wsTvK5sh94aFE zcdF?(?%sT7lXWeJmz`3@c8VK1uCH=#6mDu}wmqSC@oBZ^Cay<3VyHibVlv^AEuffn zzUI&xdNjXyD!ekE`Q6zJYKE_6~t0{q~kb`h#3;6fbOdTqwMOrcEN+`Y~ZK|hSmdg4f@P=h5nIJgFM z#sKKhCN{P_Ud~F*ZGaNcj1jdtyf{CUKydR)Prz1W@uh}8JVNVLumNQar{d;KozDi$ zOiWCXbx0?6ror##&6{e)hWGvs6}Et62r?Rh9n?NPP80G?5=2-K38T`|(!!I`IN-W| zaa-lH>ZSkKSlr4SrvsA|sJ|oP;(&IZ2LBfhl2-TJV=5OYnnDQxo)RX0Mj_;&QvM#A zo?*KZ;x%00@9yWk`kiGAs$#}hZo9bPZjokDODBS4F-Co$n^65+^^CMJlkdenk-WD@ zQrmkbhFE|bzAhv*QijWG*?kq<&Uf&Wy5OtGCEUtw@G9iykB&T>ygk0RE_Az%kB_qy zjzapc;b7X$9|&(x9i9!MXJl-wC2VM_(+kknqTw^gXH|V`egJvu$rxBb8fd|h(bC$! z{)GZ#&V#|5L4$89S~I@{6tPs&MWn#XXw=2QgWZav7?AFC7>_r-?)9{PRdBM=3uQ_K zb2A0>To7}UHZ{2{Ezb?^ax*EyPE`K-hna;CEFoS z3RX*yTj|b}$ON-Mh-e^T-7Aq_32c6%;wru*^L=(9njwOynpt3AI8(2DSh$3O8p#KrZ!8(@J(yt`h zY_)m8DC*|}IhA8(`qh@p8uf;KP`i0<{SJC4+eJqxiLYRW6(gOkHkN48(ln}*hND|b zWswg6C6qy}bK5P`g-icwl-EXkdOfKl@x_e>l1=VG>1nA$w=q? zvt0nWD=Kn-M|{i746=Ia+0r<`{ff8G&M!w8WoX?JCSY8Fzv_pz2Kha^Nc9SrC6$Bq z$>c5#_IS1OTYIZ`ngzD%1V6v^_Qpc@4#a_^U(u3~kRatCB2$TlM*=1!ag*Rr(xW8K z$IZaAL<0Kp&H}(P*CO@aYD7f5_z9p#7$JU#05JB&jRSz{reIU>JgS^V{)J)h9#AN; zb15cs+n3WwzEvbF?!XAY6hiUN$TBhzW#5`e2u2Cv9!u{iIEs?P8B`eAAAOJo&L1*y zz3aaA8;VZ^bACUD_A(`98vt~_r}A69*DW=T`f8OhH$UH+`ygR!cXtk?4j_HX0PHhA z>?u<-Gvo_EBd--EU=UIG0BjjW%@b=_%xcu&+nsVd1Y%Y8;0gd8*g%5Q7*JV=F3+!8 z7d#yu9siRRRzy`12sjAozQ%i>J*#c8+VXH6UM;{Q2mu_9>~5eym3wZRB2q4(YG^(@ zT2yj-dYacZv5Kn13{L>8+zF(GM*#nKMIGRcVw$jeVL9?~8r2&)L*x(`kyZorZh?uC zS?;!~?GM5eFd*i-aoWnv__G;q{qOKcmyKVdAV;d(;42E4%QisZK^v^x{0F&SmEDgT zr@14bn<0QqQ0{{_Fs0EB2v%e%4h{~WP7VgPLiXsYC_pu#XKV@4yY6)3D>3XX0Mk3~ z|9yl&8OO`57!#}jm7b)KbI*IPgpB}hdl~?J028=++fe);GtuJaK| z@=TPlraeXa)tsVSWmgb|T_xHZZu+|bZZq`VmIH3LVh|<{XZu&TRa{BPi?}pbAcdMV zsa(FXsT1x?>C^6vG)c}qxN%Y`JuEJ%|w3G!JO8<&$;K*&(*d=7fzP1jkjK4A9 zzTv$wB)QzaeH#(15{#tb5EDy}h`@)?kF`z06WP$#qLa>g7So#WDz`A#Q`4_jkBW1)x_DwRcB!C_gU@;1H zORod@KHp)cK^Zte4^n3a2`{xxls?PcBVp&NPg;Ef9qtcaCG-D_y^B8!KDQMAP)_m4F-B4FELadD)O z1mpl94s;cM#&-z|2qXew0Ezh^p$UYR8{*<`AwS5|HG=obrkVeOWxgUY9@2fReh~4q z>`pO3r^UxB#I??*Q>rpaHzlGSSE)d~^+Ox9aGN2y<$MtS-$JS011nkp=(!2JQ>x?+ zFuz={9^i0;lf!^}F#DPNV5m@&b+`=DzHH#GY87gPfdpik`?{WF^ooT4nWtX$vxl(J z5d@(qid60vLpir%~_i#;)_(uFwbE0=>9z3gWEbPb_=h zyq?|6gZk_YC~)AXO5nDLjle(r9S+%;s(jLX@h{o*GQdGVgv8#-wL@j+zKC_$Lv`jr z#wFMQAZ2@*kx>;=1BfjWPrkbM*q7SHdQqGoSEM%23qQlc z#1sg=MJ->M2B8#8UPr&x+Vl2Y<$|%WhzGa4LlIRFB_SOzbfSJyNo@<c)w2C zVNNpJon?vm=U0;yXiP>w?5875Z|{k^>x0>Y#P|c~cyM`j<1tE-6!ozG=l)eOKY!Mn z-oe7F5U3LUzrH=UznVwuGw}_1X@m40hXTY3vjQ&8DbO0wH2H8-l!2C35pv4@)%^+} z`;?UMN>1v&_AEx?ZjoNi{{DU*yg98Rz1Kh>+5W+rsoN|(FGNJendLa!oK#PS6sbVl zp94unTw~a91k^{!|+BZ ztWN@uZgXB6k(9Q8LNAq2|0NZ~9_5Fu9R`3x*L;!M0JftPSOIm{PY@M`9nf9?Dg!X+ z@HtpB8G5gdLQ>QGhiQmE0=HyIK$T1j@D#u+5iv3{O3TOqzg`)tTj-{eUAZCyi+&6M zFN~|g&*+tsIFZI7NH#-K{v+b@4eN;t^#1Co6$p*G{vC>hZ`}cXt8H*hb#-;R&;@{q zV^HULyRBqkrPTNvCd5W%_}jAH}AUoaD zOq)_fqaepZyq^9t(2Q&SPKA*6>2@16SoRpXgB4^xKzD?A=nklrAkbKboTPbR;C9bR z&$cfyF4p1ZOuI3!<8nW9ZX$Ab;1lT}-hfYRgS0*}F0KHa!4U9MHQMWa4iN=YP$v?w z`59XIbW{Uc!=MDyyF8GSD(t`j(OLPnovSl)i6Mb*7Vz;;2|RTm?Y`sox0Q&eP7?fi z`NG#nV=wQxW$6oZY4<}CSyS@x86rEO|G**l{N`Y`3?5Y3@}R}Zrjd&e483>eKjK#m ztw;)XK#Fo3`R|uYABLU?KA4HDEH(thD%k^gO0)P?SUZ9ysJ)@3Pf?^-iCNK+1FzO5 zJVr$Ys*(ikSNbK!L9dH+#GGC*7OxYf@M1Ll8@W{tx-{F$nibaSkoQJbR|_K^1US8g zNrKN~!rNu!3+}`3KnaxXd%UB7MiN+uhGWZkz8Sy6CvV(RT4a>ah;BA8!c?8b#l*yh zO9rB>Qlcm;&%Q~VWm!ycJYom6BG}7)0?^hmoox<7aT?V0$M*@}m1dFf+=8AH9*9X& z!$+;5$Gp4PGY3~t295q1&`?H7REXEAuC4;43}U}Q8dkYfJRl%o<5#VjItmseUEJ?Z zPssp{RM>NW!s9jm_06$Tp+ZB%Fup+st&DU%Kne!x0(1Bb3c*Nn=~rcqu8x;kM7Q0@ zhj5G-dte|67Vd4fkKogh7l>ObP`L&hyA70vFu1}4z#t2CiWv}x4{i~P1tdzsy2?Us zzcNxp2i{llwpc|%!WCeI&gaC5zk{qEoTzU67nr}@xv}?mI2!ixE-aoCbh#0~ilg{C zxO!&f5B7Ldh*DUHwmA(YrifqnY&Hy1Y<|_;c3JE$y+gV^80t-B*8~bn1#wBzeCp3u zUcA&3v95$c=R68bZXR0mvhwnS5F4$^c6G+^d3eU^#&1310KYenf=Z#s{xU^WJ0hrJ zH*3Sk!fqGhjr&&ISq@HN_)f_DnTRcW`CAl;)oPR(iO|N}J8IEY^5Vxx$mBcTlWJ_u;9B9J$&CL|# z6j+^D7U1pn!S6rs?&R#t7?@a=C%6zwCV>$!rbq&xQ_EHU{0TWiA}>++A>&uff={&@ zAc+O%?MS886;V%oy1|n@kuI!e-%Dqn*ORAtCxs)MDU_@cg<*Xwi=!zmk|MZh!%HL& z-CzE~)@53g0hTuYswswFU}MO3$K*f`I%45L2a48mNpffX?^pVyWqxq% zhu8xTu=A4`ITnc`@_&y<@{)!dn;>NFC1S=5BfH_E&!Eo~T5~;A#3t&q_n50PYv|bZ zP~MdDd|Kx@nUrCxle&ftZ`;L5}IGp>rY6p*P%7xWh_NK4Z7~4+rpXwJ3 zSf-tic$wg;;o&E07{+US$85yRaCw}c{*J$-f6t$}pXE^Y#~nax2lbmj*L-Sb^;-vR z@gi}Dk1XPVQ|wXh&&456?FnB^#pB`?KWs-Twr~7r@U4qO9Z5nCBv-|lz)^j=`SMCcz^{L`P~u|pF_pDs4ga)W-06P%%2IB&5?;^qBU&FyjN z;LfBlA}C_-MK=@!cw8{hy=hW9;(INZ8uu>e#fAjtLVt7NFYJcf*8=k4vyNEW7%jPp zvo@3uXU8oLc!rhfvgwMP~#QdvgGib#6vi2y3-@~>O%%?8$(rNK}bfXycp=8IQWEQA< zj%?KPUGCi(S&^*+u9=ZSM9kQ{)FK>tXF>yoRtME8MLj|nMJ_)3cb{vIP39DRFv7mS zR3#>4ZS+_mE^w~N#)S?;)tJth_uudWh=|xN@m1J3(of(o?^jGjB>661cVw_mp4_oA zOAEkI!DLmw7IerzvKVf?_~J?vXmtN8M^*<}b9RbQu={!So#6ita-l%O@d5u`fFcR@ zvRKrALe?x;ZK26lMg+%lsNIwSp4SnT zHGAHR%hI0Na`97mL-88ZJ&!ObqwJ)S12)>XaW@pvW+>%r{vKH(B{KM>Sd#bydibSA z_}j&B(v~JYwac^cNa+Zf{N&6PPg3SqG;^yHbL&j)pa8JJ5TwV=mZ4Xh7zRN_P0r{A zZst}>WjN{Kld<3gN%wOQWC--t=;Tpe@Q>Hft~1t)LCNJpe;bXwjj@8@Hd6(4lV%#zE% z>0k{Ni4f}G>m$FFMiDI;ZRsV(N}HpW8?J|~%~qD$8r=p5|46^00=+3%S}zK~^ZmEN l$nh=z-=p3Bvxjq1{kLYkm*}uA!4Y++2XZR1pQVk1{|`W5?kS1%W9d3gUr}4 z?6`MdO5i1b;=dHY$1(Q)G>@8EN|gdr#A-pLW$E7VKoSmS1K3VW)C?WtC%OR++q+k%!gu;FR0SNQ7?#% ziV%uYSSRYMNUIk^@3e)r`G1}xH<~s4OxcFvK?sSW_c-hJRWa01Xt2D|%s(t>^m1YK z5b$VUH73!O&K~L zH$(*%W`mf<4Jkv;5`)>MAG2M+$?V-tKDT3#+JQ%Ln^=W+*&L9wc=$nM==qk!tY-Lg}Fdlz`7RvZnzI|~|j%JQ2jA$j8!^(1I z6i4zJ*!v@bToH}~0t=&zy!591K_G-NbgFe=*{v%@pND($I&9ArL;)%W?H~&x7X&Bf zJ}XE2jQoUbLI!5GB{Bph)X1q=hDoC6&RsMhU!rjSK6JzlLci~o*s1E4hkP*7c?J1} z-i)e8Yo&jTj2+IeZF{ysK(v@8Dji-vtQCle|@DQHX|bRdHbPh|g*MuO&!Kx+V#6jH1|Z1sT!^C(CzGKvGquQ z;5pKi$l=}D=UsF9HH}~(fp$NVEdOeO2f;Ns!^=fa?;;HgNxey<@aXxnf z-RCwZ?rYG%?_5Ttrwd^L;_FwxuIl_rLNfp*HmXOzG#Ag9K?$i<#l@&*FcDYpa1O_n z{^%>2TB~oD$?9^MQp`+%;dH6E;54#sUc3{DplOg~K!4N4*@F0dd@hcbzBbv(ua`19 zc4*mkPF0tL-=_%)Z+=}-d@e1e+h&{-fc$A1Yi?(fA#COT<6&khve=H+j70fLa|0p- zyB*F?IR6SlBwN@SybRN$zO`96n4M4;uLxVIzkdBTY!+FW`_q*Oc~ATsg6Q}3kYY=3 zRL^knZtlDogh0J1?$qZfw6b27$;)ztDD2{?)Pc3Ucs5P^98colTY!i9siGr>Q<+hm z8fkIg)k>Ih(EO|hYy;+<8GLX^I7p~{k!!8<HJ zTp<|z9KAisdS1_5Qo0jej2<#}5L6+%3AwAE4gU$@naeqFW``I*e0&gHV8BmJFcq#j zAO^v_&AoMqpfA7YxOI??OcAP?H0=LXIbnz!+PVbhdIY)&0lU9bXcx~|U@)`q_a|-E zfc{cuRfY+o#D%*<2yG>&O-Z8`@naS64UfEqe8K!F}6wgvTSpr#1^)z-3(1RCb@Szv0j(OOA zjP>#;6CjN6V`d5D6E~3)$(l<>DgEv1|AjFlV5jH?%|^y8H_Kbhm>*0JIc zWBHl!G-#D;jt6;g54ZXhw$bSZC3bXH@k53=K+y|Zhe#&qF51(k5%x{_0cHZj&vE#P zYf_P)z95q13`k|XEaV8#WpKXPeR;!KWG*Z zLmeDg;>b7?>&XG@L%*XZ;d_#~6|o0Uuhh*{!eWn=RpHC4{W#->n~o7{n)e>l@|r89WCc^(*l^eQ+x zSG%FA%hCqb95_es0)F%V+m?8URr1mJZ-VEWT-EDr#@eec4;NBCeX?G3223uf?#;Ny zR$*~*ozrig^^J}16BClVeg*~7;gkf2x}sg|`!Fdikfa39+TFIo3GQZUm*^zL%@AX0?pc zu&Pt=9`mXh^G^??6_Ot|?)t=5w5AvuBwR8q>m% z4|~VyaLkjy)qA&TSGZV!5&PC^n9VF7>($MT;h8YsF#%c|Ru5hFH#4RJkKB!n7{_Ir3d(g3L5ah78q`3YDc&}(MWS z#35WRd^Mni0F0bJCr2(Xe|>|K57DN_w6x$MhrFI6j)J#i++%uylPe$|alwBKl+x3n zg`eO-E}_nNqa?}J-LF@9VGle;9ux>rjgNYuk7}Tga$0|nEH=_yi>Ix|^iF3(U`0yQfaiVnZS zNWHrcuDh(cU*F=R_yw=mw>N+P!;I^n*T$2s=n(k=!3}s~0__Ep?^rP9V?6*D^V2{4 z4$}5OU0aeg{|6<|f6kf&OUs*a(FiWeEu3h$Sr8K?i)wz^dn8vJv)`50{l6$_?1wOd zq>gHg_U;SRT1E~VO3BpEUP?MWhSxp1>$FU`W>0-a3pJ9ei#ij<;v>hAlO})NJtJeN zUmyHaardq4TTrvR)+$Sv{LJenZwVI`ug4;kOubsmXJo$Z&5Jt}IOxFSMS&We6%Q%u z>7SB=jvdd9Gm+rJG`;op_Wg-y=eGeBdZsR9Wmv{&no5qF9iS+6H` zKY!p6etU;~R6IM_VR!6;-<>4+NS;Ca3RCIm9c34^esES&R%T5dT(Mnge;mH_9W^^a({4EjBL zCEVvt+NJQ1afg+qS)190{4eR*Q_)IwAu9nQ9Y10(aTn@ND-)Lg-dEhP*|mi=>$v}2 zndw^GqA_xNpL_R!gXhK|G~#{qv!~!dWl=Fj{WI4=x%pP5s1cPx5WIu-xZ*5ezi=vl zi=Cad^UJ7)WvsS}gADsd;dt?fJGwpZQhBFyJuF|6brGY^<{9r28Kn>`f7Y|Sd+fZP zfqBWwSFZXd&^@)i6zDH|MR4f?LH0ic=R;Ce5g-Y6NN^@r?y7ijqh)_mYhgwyeqReg z^M+M{Yxm!O{WHI~6rDZ*JHJ{uU7@C0@n~OEnlbyY3hu`}bL$gwo8o-Z&S0H6!YNze zaJmz;54LsO%h7C7LM%!KN)9$r3FaH(ZVjktQnDo2W;jX_X}vu0+jWC+;;v<%mkpPK z>gbm=r2m1l-K+pbt$cghDdCdM@!;oE5V0cr9l3HuGGRVJLR z!Bhq%E3gJ$PLg~9IWudv;)}{4NKa=mYM4Z{&x`Zx&Pc*!PqblUAy_gOj9K(>#V|=) zj0ph8A8y+>rNQpVoJeV)rSN3PFY$N}3Km6u;J?`_{)+MG)+z46y?*7ad_iZo7u3cz z*CIfOV9e=;YfXS=%J$@7?4V@~4*XKL==X#}eSa^UMqmR!E#+l2)%A~Fz58yJnZBHR z7E%*LLqFb@Y-vKDki0p|7m51?sK1QtQcFoi9E}a=fh5MILAR zqm*H}%qg;F_$P^#K_uaBk5$~fdq>&VQi9fgNaF}TK^$*dI=A+w1j1sAcA2H zt{xs93Q>F?lYn_@J8q>68%UsxDa@%|R3=XOP9yzNP)*{yY|J3Pyy6uVZ2dz|XUamo z{YFLG7Y=UZ2bx#LeqIN2;4n&;_7`4+Dn(4UUNanXhMce5@bH4EZ}-z;;mkzLk34W4o2NOuHy{N4?O~$M!N| zVGu4auWi5dmAh*?2+N1~hpVIHUOh)>eEhrWgLUhJ+=g6}+^a9&U#TJr)nxu^I2$>` z6_jC1=Aj*gdb^AZkh~OlJw_waEb=TY86J(b>OX|JSQA z;Xr#YS6?#gi@x?2gdyhHl0ymkn$h+x%?bSvS!mCo}cIE4E_Q1S@Puz>ycBpa$HjDs({RbgB8Hz0TlaMr;ER8KF2EwF9xY^5$7-F2o zy&d02UmsN-M>bk9GSFVra^C*rF+wLM+_c!s9p89Dc z2q=S$ml<(X{x4#~ek;*I%HVT5ohid_o)hAOCu_YjI=VVKq=5GZSmIOz7o|vI(9DtX z$b846sH~|7)j_uudae7DT&-uV41=rU5lbs}SWDN~mRZlY>gkOU|H1JBR%87JM-s`+ zdjc-gNOzaV7~Q*Gs~#=(izQ%PV{cf^z2mHYAmO-yR#GO$6SvhF za?szO@+QyssG5Ei4L%}SB*j$FtO&g8)l5a{A_}OGOg{P^+HOh6i%wPKcFu6UBPqi| zR8!-2*zlv(+irwk`xyg6!wbKV8?;t$QD%R8Y@tIPA#X;Nkc*XrV$R|-GK#vF$gg$c zRpV`V1wRaD7V-!?U5r{Y$nu$i(uhX#|Gl@;KwXUIpYZ}d%W=iQorbsJO;S(nT*nDq zm|OvT?cl@+-2A+Gr;of)VGQRKg*Z~Ky}n;>J{fnvEY#=a`zr2)-f~Hy(89&zp%X|C1s?#WD}VCcJ^3C$AfxnKdA5oqJl z^m^}R!f1#yLY_Cz-RXMo)Ov$OFB5y#7-N=Cbhp}aAK5P$>&VA>E$IaxcktijuXH$X z;$oR>F>^rM3Kzzb_Ejtwt-f$lgdMXT)F&;iCTeyABHKHCO<^@q>HJ@HFH092F`};# zuH@0q==y@$I*&Q^BwCmiD2LPV&*S-+`%A#z|2Ew&@NdaC$}O?sY9(C2n6k!mdk?uo+)lJcr3a<5lT8gpU+*Z z@ZQfp#IgZs=+98Z8IhvY(xwe;*oRN~0}}kH-Nl zOZ%3Ul@+Mk>31!WwQNtO# zijD0@0|R}eBZkQ$IfDppxDl^^6E%QZ#HKxH~}UQn(S7NaD~7Aku?`^IefF4~`?< zjV7VioTQ&5x5SckUOP!odis}Cw?sMyB(gMxOx(ZP(^}!C;W0|WPhv1t!Qp%g@KB!> zr!y>eIWceeOQozEDi||nat|Gf27C3?6qM*JHgM{ke<9!qm*^>?)Aq)zu7b|%A`GlT zjY0L#bRVJ-y#;iOiA>9}j!#5l+qKo;Z^CdXzim_K+bnlsHoK;NyBkT!&Ov{{?JPM<^1t&Z;V{T@4d>)f18{ci5Yc_*;Dt1%OA?qw*31o zY1AsG^)}s?R2E$V2oILySwJ=V+^53-M4J#E6d{y*s0g<?Fmw;=WeE!yBOL3l86r%)PX z=_3XD$e)Vbp1Z)-7sBB z+FHi&+MpR;O50m5TPJk>fj6VUjN8g}LBcZe_imoh`{h1^{YKsyb6e&QqHbL zfp%}`C%ybdZy|oiEO(|8wMRd}*t-dq)NOz9ANS#_SmVRBM``B0JqsY2uOL##Fo}i$ z@nP~WcoT%PH`zPq4-Id&L%-v9iozcb#W*qsSNy+zg~{(ROugDpSfAOBntm4av~%22 z(d$h0PEz||&VMIM_tW}w2;2^r;_>2eL6?lvgvy@VfkW~hw3CH`f?<#wp6z1Q%5NpYcknz+Aq+ zQPnxnL(-#%3tS}Ze6$lbu(Hsch{gm#1VlTZFTAX3$D_`Jx4E!BR z|KigNZJ}U^yT3TER8=_H{bFrHf{G5#M&UerKn_5|T$`lWphIav&bgG*P_T#aIg3ml z7}_Cn@ovZSnW+nxVTuFFe+KYi^+%`47ZvQyU4qL9w!?!6Gq>nT#E1-&wJiXELkjRw z-?Y|~Xxcba->f7co5_qvD=27N`&sY>uEWxT@D&fXF*nNSw(nOrZb$XSR;(qBqbu>g zObRj-l??V33TUUR<$6K#>5#&z$b!aXjfl--dtw;n&gUB(|C4a*VCZv6v?rEXqZu(C zuB#FssSd12U$059P#+fk(<^=A2UD_zqe>^xK?~Km?4u1L9<0bcrvf_XK2^un<%)=Y zAbd+bQE8{%zW3pHI=IP;%PX`?^hR*=+-5lQ{w7v3a8k5uCgYy+%)e{w&gq~P9LB({ z8o@dD4@~oXG~cF^&Qi* zXXj%Lg)maKNYBkV(+gI0w)`D64MLKM>FFmk%*CDl@XJRt&B1~&nN-R#uM(a$5X;4Q z5gve~&Nro^B&Gr%@gZ_%C~?Hi5h7g|m~9u(n4#*E?N-&RDagH4ltdMyV#vVx8DZ<+ zUN>bFO%Wx8CfiXq8}T2|*CdHTbfUGtg6Nj+$-`cz@av2O-fxmJUHu(eqK<+|vPKv#mz-m@-p@2e1&LbhP@~t|zQTYP@iqH~(&n zw67@|Z}~BC0kic=5ACNmOtSBY5C}M2Us^oDhbSSnhESc`LVnWZ-;mnz5Le>W#W-23 z3V1nLGDhUbpBgZQQ?;IWItP3cG;GBc5SD z3BE%s#a7V&fIJl>NEv?8yi)SaMIfTTZj@g_GRO5-S8O$3v>VY!AX)mVyG1J0jO~XE zEKN7Ba~sjx%i)RfV^lq7rrT9wrD@(i1f0wbsnvs$?rd-CNWGNt*PxT^Vh6SD9a^aF z^Q$~sdsw}FM?iD+FZ-KJ`gPbXXWa^x2?G&Vaj_-C+b2~v(Zy7N;b;0Xy^OW@;QkQ%gyh0COBt7t^e3p^u>3OB*BbO(uVEO1)rrj{Av z;eo|05wO)5_t|*}dX$g+bLz{7-5R;axhT09%$fP`G;%RLYHDiY4@mwHQaZ5o#DY;> zSP#n6AMp57^N6Dm%N!70B$OJ4WJVO)(k<5ecCKOD61iq!aOC_!a7ngM9}=>Q`-TPv zug(~Vv2U=CxB0r&d{pfvNX1=)+lsIxxX%73e%HTrAole&KLnw^5#eTTXgPPDJ2ns27Fy z@^+>5%Q;D5lLCg>oq63{brJZ0r6{$V1$-k1tre?s!?Gy}DKTu>nG6ICagHVd%C0~M zQ6U!#Z`N~s$!#}E_jvMy*6*NWa40hqBWuoF;%Sh!A_Z{p9iI7o2nf>q$^}I`QoSHQ z+1~{@2{*p#`9%&<3~KXBeDwH8b0bbiJBJ@5A%XfNR?{2wYppl^!uh9ab)`V()fHBg zTlC&r(kwqhr+b49OeG6A->&Dc?}2kq1>;V%tY`pWxR|hUMN)uzXW5bapW~nIC|9+ zmdEa*iyl);(WEv_m-W2*nE%-#lK_ZqR^xi@ed%48=3SjXEB~<;muxK|W3It@@lOhw zvM+x>I;FPHXfEcIV(?;^pL`R=SVQ*>zc_h6#TeU8;=g?TBKl9^R2d^Fkio=1!9FR2 zZ@z>7RyU>OrpJt=?Q^%l>!~9)*z@z5kJIlb?*I68`4}A?R9xmj1apoeL9qyfFA}+| z;lPxC=0h%nYGWeL@xEN+L@zV)?TLW*>ZT+7ngg>Kn z&olJAiP2vsuJ~we(F$(XfL-|!YI_&J?~$&t{1~!&o+DCCU7tQJX_eE3N+#ULHtBYa zr3~i2+$P%>h-D-Rd(G`4fWrtcbzGu7^kDOK=5Rm#Igr$xxS#%OL|P{%!A3Rcqb9Jb zFJO2y+Wfjui{6(hFJ2Qnv7UrHy6pL~u^J4l&Gqtq0mtbOy;$jMyL=Z7FaJT2w69RXRM9U8yH=Bo{}XF^lq6oXxF zl=ZP7>|x5dNb9Vc`EV~Ji4#Q;v>}aY+u$>to_D$(-_<@>A~HxyCkVtSFP-wxQYEuV zY9rW-U0*!41+B;0UWF}DDb(jYqv)GXC`^xb7y?4Q=Mwi(cb~Ghgg4(umYCU;e@Xji z>8T~yqDuA*=%}TjS=|C=(YfW4C41Exv#yvbZ_JagJXf}ZV~@e=#x)RA7N8qjGV^Dqx$XArSDa@C&ipCYHBl34U?}7r7Cl7mqR<4>x}-%jiA;`(|+Z1Zx|Os)s#gRfyhv~N+n zOhACh|IKrdNd6oJT={O^i00c+-ARA%E=*<15+?9->5{!Sd5W?1y1^1%@K`-EpVSE> zwf&`vxUX9bn>_BrP&{hkzW@5cjP&%q1{*G3^)D0%)s_E-9Mz69!R=oC8Zp8J_Z`+2 z;dhB|85W5a@p}Eyun85+6pdc`W}6#4@HNe37-;2eihdW^G11~qxD0KtjL}=~fh?#7 zSk>z-h@s8{KDECal?`=5I&0_hpAj(-2XaPpb3c#BGbVHN+IzWq=Zp)37G6n{L*Vl- zpplPH6htZcRPbQa*v~Eu2Hd)pq*^Wj_x=&(w9<-aNu}PR(#Uy$Xz**hZ}`7%q_T1p zJc}}8bw)px_5Wicv;1U|KZBuD|DG#qr^f`qj0pp;_zl6@YRa_>ywnIOMyIx0D7 zDEs#CH1az<($lR!oGry`;)|0fG!ns=T8YO(Y9oS%$kk7)k7p!y+jKb6s~M3BzkepA z(FO{ac-Gd|-XAYxBvy(Jr_JhLol++pt#0LWo@>O#_*t$}{_DoYIfzyNI5#LKe?2{z zpdkzh2499~iluo9gA8ewds4I5g^Xu@n2#m$e4tqEL-Nx*k{88Q%im(H0dx@1n4)x!)@dDz#EHWh8Rs)@z|^sXW7OQcR=b486I zlHF1Xe`VwhYG1SsB~yDo*J=y8jO^~u4)(6EdNf{y*hC{k&i@!;1B1^iOLwBaN2q3= z1w^O)XO?FfK1X~yjr9Tncp|v-&lxlIwSeo~}*DEW!^*94Pk zxVZo~2`OnUP*@1$!g>vo^4I$Y2PcbEDJ?9OeGA-8j&#d+X7YAkC=E1TTJMKf6n+@K zo!M9Xor^4G5=6t9eMK1R^^lw+8lY)5s45tR4mc-Bm9HJ^->0O>i0>t*>h>DV%vr^bg;(<%wK z9;B}?_{h=TU=NKTgmkS^!*bjHgEsc(6d$;gauNXCH zKg+b+Iq~+khC|=uWf~a;Aoei`vz=SY_s0NH3<$jZYK;{**IQw`tmN@PXX&2_Fex7E zC-HQz%`IwOCFRRenkv|pSTK1bFxdgH!#+__P|ot}q7LBchl>?5VAAd|~4f+^e zhg?Ku`S^?yNI$Zfw5J!TW~SZ&j4lJW)ewO}g9EIzHstP5(53xU&gW<`ws*~JG@X0V zd)9a>6(d0*AWDviI~c69KGQtp~Fdpc$wzog4?3+>D8XmqrGPUpa2DCa{LB$^AuiRF&K=R8)J#o0a-mV=41!66&I%lt|9TB1Qpb&0XE+iP5#5ZKKE4J7@LbG~3$TqUnF0y@ab%tk7qcljIpZ~!gCIac zWd9`A5pc1dW*YKrkJ0sa?W>N!D|9+$=2(}d)*9!9#=LQMMV!5C&g+_sq#(m5Ly6#1 zEs&9X#ifcf-=|qZ(~X9{+4My}o;wcMw@`PXa4-&gutU#8ID2%Q`3IaD^J5afYt;YVh! zA3Jw~QY#?q1SC?FxP=DC;^dd??5aqr%F5X3G)(G3*Uig=pH&+}w2$e73r;Bm)Q&y> zevek)(=OWME81mk|6+R~#CnZftg3}J&02+%`vcJ$aIr^Z%GN-9tNYw(zFsj~t(e2K z)5w@3?eb{J5D;*MOOv7PcvdMOj}{s+KMibbY#7Y@^5D0KMIR<`)M6BH`P+8?@9ty+ zpkyMxM~h(>i~c*=A|dyFFxbQ2Np+GR01;r^5zv4~DWHOlg{2LxHmr*@NQvrA(=ri6%j?B@W0~*l);L9Af-b_~;ls zalBE6P(x)v{(HC}_=Q&+U?u?GBWsf(&#JXcY^~e!D!6c(ev@qLe6e7{f4}SRFXfwq zx(OBrdDyr#)NM=q?(%SVx{M4Y9`M)fWc3>y6HrSCP^%S*fzRVG#WYi47z5YPv&$f+ z!ovVo{`!=by7j?a4GuXMof);~_Ne*o-(8SV!0uN*2dj$Hr|nGF>)qm9Az(_7gnSOj zftrQ$)X*{hS%9+<9if8B(H^26=L z$mlVCOpjJ?F0$EfGtQ+a&C_Bh(T5K|=(WObH$mJISK963gd_QshT(7S@T4>ePrY-H zR$bd>KU7)@A2F>C2fM%ji{25Yt{IS0?=SZKt&4)v8Rw6aH7;wVxATO2mzoO??su`y z6v~l@xXl+&OBBl@y-+9+-@7!e_{I(4tm1U*N;{#=-v+s&I8})}W0j*5M0z!e(n5&I zpYw@+W#T5shCMS|`w8G|hIP%@4Yv)7$76A$@M3!Jme$-fw6*(Io*sSwy`Rl!x-^i_ ziA2Xe+cs@-p^lA>by_jGbl!JW4@dkHFiq(FDOR>=Ev{N|$`^qGB$AwjDM9VoluOlAr*k|_v z#j=^Nw?A0!pbQJXyR7lAvkvraTUzE>3BEE$$Ez2~Ei8PAM=N1ew3q{ieovDZE@5d} z^uS(f_1;(xJZ7Iz*UXB>O=j=zC;a&Awy!zUY{1lT!c^YIX3dY=^pcRRO0a&}Z^m<#A*nHZGoCWGns&sS7 zi$2gXVlNHi!5W6>#0pAm=mY9_d1ilt-}AoQd`g{oXU@vBXuN3Ypt3<8F#boeWBj5= zr)jWnGyd5r7FOLTN!Z9((}M8r`qz8V68oP3UF-956O6O__6ZdL{raX=-XJC@7ds zBVYgo#-QU;oP5Ke1-VVC3cBxCG-)=u7>C@S4q`PqF1P!)KU^;S-J6aB>=Nkl_~|hz zUnVBCt2&*0JN_~J?E>j9zc-e8NKH9Dtb!&!^cRoTOLtW!mn@&%JTN}{iGe$#UNFlD zJ-nN==Waneh-Uci{DOI{@IEoXy8@quF*E((S;*p=>6W(Bvz9tPgZdW+k)!CqJWc~v zPTnBi;^1>_9DnEut!w@yYqnjm<9_w@L&LeF#Ughhtx~bMX74bWkT=Wy|BRcQ9m~$s}bJboqrI7Rqx`sxc%Q0rQI$QkRBb@l? zA}A!@;q7d7GnHg1yN@=#*<|#@ljziRk-%AOkg}FOKrkr+*X= zVc<_O?OE$e{(p&=z7O|zR=3W_@?D1yb`pq|V6JxWKskbCRVca)DtMuAv*TF&7|BI_ zqBC2Z_R##zgzTnk?KUOy;gb7+0akZiex;xJ8tsLeDQ`AOn{M?(82_=CN|Jk@HS^g; z;0&+hLwWTGfkQlJ5my1)%%qY^FZo`5JtGcL1?6u_A`z+!M6|jzIgwV2|M{4pKL8N# zzT%Q|g#oq4rHj_En4dClt6gO#f{*>LSP}{URfD4M@a4HpJUe%KeTBN`Q?lRXSG-lA zXk^WVIbFTj%dt=~G*)a7Xx1utoLEpAxj~t<;U?MXF-7v3;WBD0G+hLkTcmS$^Pezn!7RLL@?syl?qmmWu>c8F*oScdp$NGX-jC( zy#(c=OS8+slDO}~D>pe|dIS>2y7?3em)*3#QT2U9*bT)&lS^vu<-;hevI)}a<>JDw zf^Di~u5=8BjO&Q58IfhUqk9~s{G`=J!2p4~SW$kc)nlYwCM9>X9Ty%Il01Q#|BI9B z@Bl!3O2&|*cy~=GIH8GuyJdXBeaIUgaC*TcVibk=u;_q%VL`^jqvA>Mtn1Z#Zhn+2 z0p;^U$>!W`b~ewm-bvc+kxo;&>|VM8Ix4)9{m>x;ikoNelq5p$w`~j#UA1f;>lzP> z9>``QM{0U!a08~8ms^vzb_x)1Oz(}2ht#!93^lQuk77H`ZOmQNU8G^+7gwuH@iB7* z;@tfMJ=Ny<%p)3Y)$&-Pjfbma#VebyIoMKFxifr23bP;w=`~=6^vfBKAA{VXVA^UA*ltj&jFZUpyTPye*1y zV>Y!zE_;SC=7{PxiO6yA>GWC>G;yK8|3~P6-{&d7>bJlKi#QebP*V?M@auXtR+y5%Gs1#?>(s6J=_!bzgbcUo2rBP1Q zPCHMyTJ8!fSJZPIp81NZm6H?3th#0W+2b?H+!9+;Q@%vx9RF;Be+LAh^c@WKUuW@) zo?kQA-ZPeCx}JVoiijJL&%T7%irDw{s&wt9(x&u$~+WnvdoULzwOLjdG`Y6*8 z@EGipKr5LOj)L(aIr%^7F`!eVk%WE>+Mw=s|MP#W(dB}x?eItDMZb-N&8@AUZN9EK z0ej3myu8mPL&N}=1@iB!E^%YUouUDxQuJ%Bo^f{F^8i;~K0O?VMxJf6KyaS(pn}Z- zpE&+GF9S}O+ci@Wo!FCLp!OOI=HzEr^-oADDr<}6lpOKEn}4E^p7WV)K6IzLew0$! zR6NL5Q27un91K)RMzpR^ZTk_NZ;utg%5(t#C=;8r{e7izo5#5D&c^^X?;c%gKNS^5 zIRf*5kNEYc6ExBvTf(a-fTSK;=_pmyj;a?|~qaw36xJAVXx z{U%01D|18IZ=3rwzvI9sU6b!UZ?OxMq=_>NFVoWx_?lS7uzL2_>AR_*d;wnkSYN1! zshQVT@iAhZsp9U41=+6}URHA9G37=G30>2jcjc=0oTi9trl!q((Q9?xAMfKl7pFpP# zjJGRR5hnb%OU7hHT`@SNWO9A;>;5Bv;L!d4nGUyK!)%7;d>X0 zfJ|Zgi`SwdbIAZb0piG{odcY*c04`7f@9USz{D>8MO_oGSD|w^7^&q(uanE*gD*1# z{~rBI;YMExxa}7aGBBZ_{3Qnhs)pN0;4mh&w>-k*iE?(`houbQi@m{DM+p4d6h3bmS%J8YO}3KO5PVYRbBh`hQ?Hkk^ERQD&jaudi!#T2B-Hto1fbC^E2OY+gj(;0D%&9@%7RrL0B#trS z6{me9>Rf+)`{|EK1UNTo>Df53>^tu7;D}0Xf2c6n9$N+7z-;VJU3+>*Y4bU15RTt~ z!z8R>w2gTYycHsH&WOiZ@6>*J)tB<5B5_A?XxZ0^h3<`yR9V0gqHv8Q-yZ3isGkDI z*rDFs376FB3JngJ*r(?H&7!0l&qOxtM=<@?u1$@XsA%%U&eDhBxR2WNtZ`dMv>c-h z&6Z=e{3-jb=*-v++D`7r3EDVy!_nlg^5ncWIH6q+$BXZMBCqD6go&=V-?|Q^r%In4 zf7m@WPx`^f1pP?*hJ({TMsV)@etdcxh1?3B4$+D-XC5lS25}6Vky1o^a|nPTmf9jga-XR1Q3S1F zYI=HnV&D(65<)qe+-}YUqP2?e?>}lE=q>m96OT91lvn=oMw3;3*RDJl`HeDfWKG20 zzD0&=Ib=Pq!Sv*Bd~pVkg_8AWO>3wZNea9Wxfto`+_M?rrBE7CLSfS|q+xQDc%*h# zsh+ozXy8+Dl#CsBD_WrBilNvNGhf@$CX5$d#`zVE;O?ErYPpL>&*0SXHtX+5eh&qg z_oH||dT&-Eg66N{>5SGzn4jL`$>=S1^8|}ded}??mih4+@xlTNh>63K!rEXL8nL~~ zVZ<Z~+K)IJv0H;vJmVLX(JxoW%D7^PD z53v)>Dg)#w;C&X%G0X^&j!k#dxB36WgK5K9x7(VL%R__2b#08FpZI;_cAWJvax#L& zT5*xH$k=1`*wUu-VFJYo+KiPDGD7-;CkJ3N4MyU36R#ihftx<4CnjdDsh)_*{kJbD zN<7eB%v|q#naK_v~>Di=l(BqkR9=*M77I4A8)o*e-u@~c>8rxfe_(GVBG3;+Pd!6VpQ+4G~ZSyf~XNa(l-tH zjxr&pb@22{xTsEWp%r((J!RO{J1|ZiBY5~>apI_OiA_=ewTepoY!ysJ1qYDpI60%^ z=PL8i^^mTARi1z9O7Y2pL%@s1Ek#a&-jt3{ovF_L3wGCAgb|>RI@o zbI+Wad%xTdnf)ni&m?=V^}f&hJU`OOXcMM?60~}$En~6-AX+Q?`}?O7sI21S<6FNm znEY%GBGD^1C9<=#JL|)gIQ$YO>O4iPBG4D+*6TLrM=C4^N(_?4vA*$wMzxzjs`%_W z_jvNv43&1VZc9h(RlVxx*(S+YAKbdtY)9hZ{S`IIPdiU3~4>nb3`&jaR$Q&u_UrQ2269zmb4+X(WVD zvq`;=yNsx&(uyeIj62=sMf}9HR+vKtJ zHtVG|kYWdPG;gW@#{s_S3)zQ?YAwB|Fy%5&8JZYvM%1EX_0;RfqE^GxPbH|o2 zH>{mc*=AKqBXzpx*h`N3CdF)${Sv)3HdL=Qj(=>SG=xZ~bBj=}!14|z*Y zeS0&h9HGTsalSxONdw70jsQb%HiR!bp|jIuqL8{&Ow4I4M>Ss~`IbqkV6rm!l}bJ- z#b{TJmx$PO4Pb6H8D3}}h-&zu=`u!1!#QGnW3|mER6qz*n^ZpR` z-nI1uf5%a$FIKnS7tK86vHZ_j)8eM6$;9W3SYC6%+&J2EL=)`CPun^Vj$HyI5k?9i} zl@wFx6tB zvreybij*o`E)1-QzZYZreABSO4dY)8g`1mse8Uj+jAxX0og6i{K5tR%k=iYFfA^aF zt!y8T%EP(9=&WppnD}l%f$Es&wKH$kd5P|hqpo0oG%$p)woFJt@l^U^p%i@UJgr+8 zmu4~t5@TSKy{219)KhZKQ2k(iGs4`vNns>@VD18`Wq}qc?L~7i!vVt^0aGT#t4qzG zS_PxG_VtM*AHrYJa>p9tB14|_Y>V@8qi-Tfv(E;wP{m$-L%3njv)`u~W029g4@FeN z5Z4nDTg36|5+pQCP#W?>ad8m04LcJFL)pE?VN$|!eGo`j3t z%GP>vCc8zmhNBooPoxBvn%*kPvwxgRNm@;*elssFmOpMl=dw{MP^TMT8Pd8(?WSk^ z?JyyhBg%5IMA5D;UjRZ|_MxL7AZq$!G#v$8Gfi9v3`5@@_n4mLi`UwAusFO?QL*Q& zdTNTCE`exT?h2-2<~!cLRVR^8ccg$%8awu53(FsHlgd*JMa_6@N>0SX4&VL5beC1nBWDD6 zA=&28Cqf{Cd!d4L8HH4g>=o$9Kwx@Bl_KZd+oZ!B=#@^Ae3x-WYBLnfBva2A>?G|_ zQqRq+jzo9L%zB?h@^Kq*zI$CRS&tWTP%7K=cX^9u_uESvq_ncl>IWHWD(<|XL0NVq zEB8ssI=97p$rq9rif3kD{d}wqJ)Za(Czyhkn5D)JlVMjI8uToKTJ^0;c413ej7>9}xv zOs+qPB~MS-vMSfvV%sm?%c0G{*Y$w+_wyMls|3J)u;<#78nkF`BeKl57P;llj+6B_ z$?c?l8=OJE4XV#dbiX!ayLN%7{FWET#_5_L4^}+Yi=j(;$xz@K=&2?51~iCnuD8vj zejU9$QG=jtt;ITngNb#B3@$oZVPpLu)#gUkmkq1i?oXuD{=T!C*Kxr%Ok$=zYUT%T zCgm&N`Jbu9#zt#b=b8DMfnRDAWk;J1SQaRfpHjl^i-_NBfyAM7YI#{b-ky?1tVyk4 zE!f~qsk7SyQ>*H}_^7sjXe8h`xZ0=X3N7;vlqEO@73}fkX{2X%Ce>BF$LX<4W5<6G z*t%>m69y1l%_^Gk7vVHXJ?aywl5RY$Ayl8hZV#Xp>QOJk-sD;&SMGGEdI*j_n!M$8 zL_o>AnRXF*e_32w^KA55X2DnEYY<`X_n}GK&m~u*QW1$-f?w~IaNHdTFH{^SbF#aP zB@G0cqwRQ>fD;Q!v@@Gt#Oy0+?aQUFPzJ;1G4#-MFldFNz(D$}p)0Lj=8I;R?K~pv z{OIhQZaiGS3dkB%EMoXyHbRg#DGNKW&fauM_!7M0Af>um!lkLd+_*KqYbWH60P0Q< zuW_&^lYff&r9p4#pO!kKhB$`|s@N+xZ=OvGKwr#fG^8ef+y?e0K)yKr2?h;%s1E&m z5?}&LFQDI6X@yxFDq$&WI*~d)#M$6C{~R4+Ppy~wa$hd?w7AHUU~ zj(Dx6f5&5rn>O*DNjnd^$-nv-rvUfLWZP`ZC(fT;ON-Y=rXII|(^vlaT%wLQ$sb$=j%xg$sM5}o0o(<5G1J~U9@cKA~mkSDn{4!Jn0SMilEkwmj{+6 z-WD>Q3n5?#7J7C|AU(bR_>oJFFiQ(O1DHRpp>|;Q4@w1<)Z5=ymg{oT*AxhpWETU0A?996^>Z|oBvcfQW*ku+5mS>Vzg2e@?|iza&OW2xx?TU^DG1vECi-(D>(XOo&fT**JfX&2NDrI8BkE?KMws+H35wUy#ljkR7|E|;& z_r#t!N^qk!g}jR4|G}0d8>Hm)$1%Q_hTvX`)AsRf)-Cw!tltKFwrrU@HK_AlcB<=- z8bX`$P7iKqIb*_4cyVXX5%?nns@ z7h0=NJh&7YsLIu644)2k2#Sjw{v61%HmG7lbPn^3IwbA>lZcnPw8F#r9_n*NDVpeq z@O6l_*^}?}*~lXJto9+ksCl7T-Bk8DOelKSfo5xKYjvV78Q81vM$YzO{K!t=bqSA& zi9uZt5wb9U#)4!652)ir?cgd$LHqxB$`tF0`_%Umtj%vr7g7yIgFz+8c5>JWQ-2&6k@jjLH4i3orBa zwib6XiOXmvmKdart|uz}6Nx!zKQq^Si1aqp5;yzCF8PUXmXe!jj5VylkKT1eL*Od1;s|@h)arwi&D_nI@YxR! zDPU&y+vou3A|!`IIxv5Am$@H&lT?m)U3*Y5*J>|bTVsrMf5mW|u1!0uq#GyJyifk) zvbLss-EkvJN|5O6Z*DFDqE*~PY`l;osl7#1!#=WBS<48yOlCau)+_q~N)K*cA=L?F zkqOn(-r-S`^rC60VGn2p`QkOMwfonotLZx;%2lo?{oBq!T-;{Aa$S1-`qWIvLq=_4 zv@k`rHhekkp-&cVxe)PoFsqu9og4QMI)u5$y5e<06Ls;^!F)gJ!I2f#f?ry$8CPW$ zIhGiNU=CW%WK*#ZF|>JNh}USO8B=*@ziQU`O{#Jbk7BjcyE)p0D-Rh9)>V62l`!;R zisrDk3@R9oI=bSxGv0i`v}QsNReZyVjLbY$If+DhZMY}RH$&OZZKUk;3-mvPs{s$% zc!2I=BnH@mv+EIvg8!da^}FykE1zCNZZ1GmGp4z*C(q4Q$mMFJ^}|+36IePaLn7Q% zw19Yd?)jCWv0WvM1TWngeuWO0V#yStG_hBaX^T6@u;K~AlOR}el*;-2Khm1+jbZ$d zTB7vw`sl9BFe)laeC0#r<^EmN7 z+19dCqzr+y!Sx|;vP1rCOELd#11d1)v1?*8l(j literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter6_24_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter6_24_1.png new file mode 100644 index 0000000000000000000000000000000000000000..572004dc77cc682931a2bd2f11eca1d5d1129ee1 GIT binary patch literal 14736 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter7.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter7.ipynb new file mode 100644 index 000000000..dcf2314ec --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter7.ipynb @@ -0,0 +1,1605 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Ensemble Methods: From a Single Tree to Many Trees and Extreme Boosting, Meet the Jungle of Methods\n", + "\n", + "As stated previously and seen in many of the examples discussed in the previous chapter about\n", + "a single decision tree, we often end up overfitting our training\n", + "data. This normally means that we have a high variance. Can we reduce\n", + "the variance of a statistical learning method?\n", + "\n", + "This leads us to a set of different methods that can combine different\n", + "machine learning algorithms or just use one of them to construct\n", + "forests and jungles of trees, homogeneous ones or heterogenous\n", + "ones. These methods are recognized by different names which we will\n", + "try to explain here. These are\n", + "\n", + "1. Voting classifiers\n", + "\n", + "2. Bagging and Pasting\n", + "\n", + "3. Random forests\n", + "\n", + "4. Boosting methods, from adaptive to Extreme Gradient Boosting (XGBoost)\n", + "\n", + "We discuss these methods here.\n", + "\n", + "### An Overview of Ensemble Methods\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Bagging\n", + "\n", + "The **plain** decision trees suffer from high\n", + "variance. This means that if we split the training data into two parts\n", + "at random, and fit a decision tree to both halves, the results that we\n", + "get could be quite different. In contrast, a procedure with low\n", + "variance will yield similar results if applied repeatedly to distinct\n", + "data sets; linear regression tends to have low variance, if the ratio\n", + "of $n$ to $p$ is moderately large. \n", + "\n", + "**Bootstrap aggregation**, or just **bagging**, is a\n", + "general-purpose procedure for reducing the variance of a statistical\n", + "learning method. \n", + "\n", + "\n", + "Bagging typically results in improved accuracy\n", + "over prediction using a single tree. Unfortunately, however, it can be\n", + "difficult to interpret the resulting model. Recall that one of the\n", + "advantages of decision trees is the attractive and easily interpreted\n", + "diagram that results.\n", + "\n", + "However, when we bag a large number of trees, it is no longer\n", + "possible to represent the resulting statistical learning procedure\n", + "using a single tree, and it is no longer clear which variables are\n", + "most important to the procedure. Thus, bagging improves prediction\n", + "accuracy at the expense of interpretability. Although the collection\n", + "of bagged trees is much more difficult to interpret than a single\n", + "tree, one can obtain an overall summary of the importance of each\n", + "predictor using the MSE (for bagging regression trees) or the Gini\n", + "index (for bagging classification trees). In the case of bagging\n", + "regression trees, we can record the total amount that the MSE is\n", + "decreased due to splits over a given predictor, averaged over all $B$ possible\n", + "trees. A large value indicates an important predictor. Similarly, in\n", + "the context of bagging classification trees, we can add up the total\n", + "amount that the Gini index is decreased by splits over a given\n", + "predictor, averaged over all $B$ trees." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'np' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41362/2572495066.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mheads_proba\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.51\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mcoin_tosses\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10000\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0mheads_proba\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mint32\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mcumulative_heads_ratio\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcumsum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoin_tosses\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m10001\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfigsize\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m8\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m3.5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcumulative_heads_ratio\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'np' is not defined" + ] + } + ], + "source": [ + "heads_proba = 0.51\n", + "coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32)\n", + "cumulative_heads_ratio = np.cumsum(coin_tosses, axis=0) / np.arange(1, 10001).reshape(-1, 1)\n", + "plt.figure(figsize=(8,3.5))\n", + "plt.plot(cumulative_heads_ratio)\n", + "plt.plot([0, 10000], [0.51, 0.51], \"k--\", linewidth=2, label=\"51%\")\n", + "plt.plot([0, 10000], [0.5, 0.5], \"k-\", label=\"50%\")\n", + "plt.xlabel(\"Number of coin tosses\")\n", + "plt.ylabel(\"Heads ratio\")\n", + "plt.legend(loc=\"lower right\")\n", + "plt.axis([0, 10000, 0.42, 0.58])\n", + "save_fig(\"votingsimple\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.datasets import make_moons\n", + "\n", + "X, y = make_moons(n_samples=500, noise=0.30, random_state=42)\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)\n", + "\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.ensemble import VotingClassifier\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.svm import SVC\n", + "\n", + "log_clf = LogisticRegression(solver=\"liblinear\", random_state=42)\n", + "rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n", + "svm_clf = SVC(gamma=\"auto\", random_state=42)\n", + "\n", + "voting_clf = VotingClassifier(\n", + " estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n", + " voting='hard')\n", + "\n", + "voting_clf.fit(X_train, y_train)\n", + "\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n", + " clf.fit(X_train, y_train)\n", + " y_pred = clf.predict(X_test)\n", + " print(clf.__class__.__name__, accuracy_score(y_test, y_pred))\n", + "\n", + "log_clf = LogisticRegression(solver=\"liblinear\", random_state=42)\n", + "rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n", + "svm_clf = SVC(gamma=\"auto\", probability=True, random_state=42)\n", + "\n", + "voting_clf = VotingClassifier(\n", + " estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n", + " voting='soft')\n", + "voting_clf.fit(X_train, y_train)\n", + "\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n", + " clf.fit(X_train, y_train)\n", + " y_pred = clf.predict(X_test)\n", + " print(clf.__class__.__name__, accuracy_score(y_test, y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.datasets import make_moons\n", + "\n", + "X, y = make_moons(n_samples=500, noise=0.30, random_state=42)\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.ensemble import VotingClassifier\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.svm import SVC\n", + "\n", + "log_clf = LogisticRegression(random_state=42)\n", + "rnd_clf = RandomForestClassifier(random_state=42)\n", + "svm_clf = SVC(random_state=42)\n", + "\n", + "voting_clf = VotingClassifier(\n", + " estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n", + " voting='hard')\n", + "voting_clf.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.metrics import accuracy_score\n", + "\n", + "for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n", + " clf.fit(X_train, y_train)\n", + " y_pred = clf.predict(X_test)\n", + " print(clf.__class__.__name__, accuracy_score(y_test, y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "log_clf = LogisticRegression(random_state=42)\n", + "rnd_clf = RandomForestClassifier(random_state=42)\n", + "svm_clf = SVC(probability=True, random_state=42)\n", + "\n", + "voting_clf = VotingClassifier(\n", + " estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n", + " voting='soft')\n", + "voting_clf.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.metrics import accuracy_score\n", + "\n", + "for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n", + " clf.fit(X_train, y_train)\n", + " y_pred = clf.predict(X_test)\n", + " print(clf.__class__.__name__, accuracy_score(y_test, y_pred))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bagging Examples" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import BaggingClassifier\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "bag_clf = BaggingClassifier(\n", + " DecisionTreeClassifier(random_state=42), n_estimators=500,\n", + " max_samples=100, bootstrap=True, n_jobs=-1, random_state=42)\n", + "bag_clf.fit(X_train, y_train)\n", + "y_pred = bag_clf.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.metrics import accuracy_score\n", + "print(accuracy_score(y_test, y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "tree_clf = DecisionTreeClassifier(random_state=42)\n", + "tree_clf.fit(X_train, y_train)\n", + "y_pred_tree = tree_clf.predict(X_test)\n", + "print(accuracy_score(y_test, y_pred_tree))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from matplotlib.colors import ListedColormap\n", + "\n", + "def plot_decision_boundary(clf, X, y, axes=[-1.5, 2.5, -1, 1.5], alpha=0.5, contour=True):\n", + " x1s = np.linspace(axes[0], axes[1], 100)\n", + " x2s = np.linspace(axes[2], axes[3], 100)\n", + " x1, x2 = np.meshgrid(x1s, x2s)\n", + " X_new = np.c_[x1.ravel(), x2.ravel()]\n", + " y_pred = clf.predict(X_new).reshape(x1.shape)\n", + " custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])\n", + " plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)\n", + " if contour:\n", + " custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])\n", + " plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)\n", + " plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", alpha=alpha)\n", + " plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", alpha=alpha)\n", + " plt.axis(axes)\n", + " plt.xlabel(r\"$x_1$\", fontsize=18)\n", + " plt.ylabel(r\"$x_2$\", fontsize=18, rotation=0)\n", + "plt.figure(figsize=(11,4))\n", + "plt.subplot(121)\n", + "plot_decision_boundary(tree_clf, X, y)\n", + "plt.title(\"Decision Tree\", fontsize=14)\n", + "plt.subplot(122)\n", + "plot_decision_boundary(bag_clf, X, y)\n", + "plt.title(\"Decision Trees with Bagging\", fontsize=14)\n", + "save_fig(\"baggingtree\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Making your own Bootstrap: Changing the Level of the Decision Tree\n", + "\n", + "Let us bring up our good old boostrap example from the linear regression lectures. We change the linerar regression algorithm with\n", + "a decision tree wth different depths and perform a bootstrap aggregate (in this case we perform as many bootstraps as data points $n$)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.pipeline import make_pipeline\n", + "from sklearn.utils import resample\n", + "from sklearn.tree import DecisionTreeRegressor\n", + "\n", + "n = 100\n", + "n_boostraps = 100\n", + "maxdepth = 8\n", + "\n", + "# Make data set.\n", + "x = np.linspace(-3, 3, n).reshape(-1, 1)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n", + "error = np.zeros(maxdepth)\n", + "bias = np.zeros(maxdepth)\n", + "variance = np.zeros(maxdepth)\n", + "polydegree = np.zeros(maxdepth)\n", + "X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", + "\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "\n", + "# we produce a simple tree first as benchmark\n", + "simpletree = DecisionTreeRegressor(max_depth=3) \n", + "simpletree.fit(X_train_scaled, y_train)\n", + "simpleprediction = simpletree.predict(X_test_scaled)\n", + "for degree in range(1,maxdepth):\n", + " model = DecisionTreeRegressor(max_depth=degree) \n", + " y_pred = np.empty((y_test.shape[0], n_boostraps))\n", + " for i in range(n_boostraps):\n", + " x_, y_ = resample(X_train_scaled, y_train)\n", + " model.fit(x_, y_)\n", + " y_pred[:, i] = model.predict(X_test_scaled)#.ravel()\n", + "\n", + " polydegree[degree] = degree\n", + " error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) )\n", + " bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 )\n", + " variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) )\n", + " print('Polynomial degree:', degree)\n", + " print('Error:', error[degree])\n", + " print('Bias^2:', bias[degree])\n", + " print('Var:', variance[degree])\n", + " print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n", + " \n", + "mse_simpletree= np.mean( np.mean((y_test - simpleprediction)**2)\n", + "print(mse_simpletree)\n", + "plt.xlim(1,maxdepth)\n", + "plt.plot(polydegree, error, label='MSE')\n", + "plt.plot(polydegree, bias, label='bias')\n", + "plt.plot(polydegree, variance, label='Variance')\n", + "plt.legend()\n", + "save_fig(\"baggingboot\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Random forests\n", + "\n", + "Random forests provide an improvement over bagged trees by way of a\n", + "small tweak that decorrelates the trees. \n", + "\n", + "As in bagging, we build a\n", + "number of decision trees on bootstrapped training samples. But when\n", + "building these decision trees, each time a split in a tree is\n", + "considered, a random sample of $m$ predictors is chosen as split\n", + "candidates from the full set of $p$ predictors. The split is allowed to\n", + "use only one of those $m$ predictors. \n", + "\n", + "A fresh sample of $m$ predictors is\n", + "taken at each split, and typically we choose" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "m\\approx \\sqrt{p}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In building a random forest, at\n", + "each split in the tree, the algorithm is not even allowed to consider\n", + "a majority of the available predictors. \n", + "\n", + "The reason for this is rather clever. Suppose that there is one very\n", + "strong predictor in the data set, along with a number of other\n", + "moderately strong predictors. Then in the collection of bagged\n", + "variable importance random forest trees, most or all of the trees will\n", + "use this strong predictor in the top split. Consequently, all of the\n", + "bagged trees will look quite similar to each other. Hence the\n", + "predictions from the bagged trees will be highly correlated.\n", + "Unfortunately, averaging many highly correlated quantities does not\n", + "lead to as large of a reduction in variance as averaging many\n", + "uncorrelated quantities. In particular, this means that bagging will\n", + "not lead to a substantial reduction in variance over a single tree in\n", + "this setting.\n", + "\n", + "\n", + "The algorithm described here can be applied to both classification and regression problems.\n", + "\n", + "We will grow of forest of say $B$ trees.\n", + "1. For $b=1:B$\n", + "\n", + " * Draw a bootstrap sample from the training data organized in our $\\boldsymbol{X}$ matrix.\n", + "\n", + " * We grow then a random forest tree $T_b$ based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached\n", + "\n", + "1. we select $m \\le p$ variables at random from the $p$ predictors/features\n", + "\n", + "2. pick the best split point among the $m$ features using for example the CART algorithm and create a new node\n", + "\n", + "3. split the node into daughter nodes\n", + "\n", + "\n", + "\n", + "4. Output then the ensemble of trees $\\{T_b\\}_1^{B}$ and make predictions for either a regression type of problem or a classification type of problem." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.svm import SVC\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.ensemble import BaggingClassifier\n", + "\n", + "# Load the data\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "# Logistic Regression\n", + "logreg = LogisticRegression(solver='lbfgs')\n", + "logreg.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Logistic Regression: {:.2f}\".format(logreg.score(X_test,y_test)))\n", + "# Support vector machine\n", + "svm = SVC(gamma='auto', C=100)\n", + "svm.fit(X_train, y_train)\n", + "print(\"Test set accuracy with SVM: {:.2f}\".format(svm.score(X_test,y_test)))\n", + "# Decision Trees\n", + "deep_tree_clf = DecisionTreeClassifier(max_depth=None)\n", + "deep_tree_clf.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Decision Trees: {:.2f}\".format(deep_tree_clf.score(X_test,y_test)))\n", + "#now scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "# Logistic Regression\n", + "logreg.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy Logistic Regression with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "# Support Vector Machine\n", + "svm.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy SVM with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "# Decision Trees\n", + "deep_tree_clf.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy with Decision Trees and scaled data: {:.2f}\".format(deep_tree_clf.score(X_test_scaled,y_test)))\n", + "\n", + "\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.model_selection import cross_validate\n", + "# Data set not specificied\n", + "#Instantiate the model with 500 trees and entropy as splitting criteria\n", + "Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion=\"entropy\")\n", + "Random_Forest_model.fit(X_train_scaled, y_train)\n", + "#Cross validation\n", + "accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score']\n", + "print(accuracy)\n", + "print(\"Test set accuracy with Random Forests and scaled data: {:.2f}\".format(Random_Forest_model.score(X_test_scaled,y_test)))\n", + "\n", + "\n", + "import scikitplot as skplt\n", + "y_pred = Random_Forest_model.predict(X_test_scaled)\n", + "skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n", + "plt.show()\n", + "y_probas = Random_Forest_model.predict_proba(X_test_scaled)\n", + "skplt.metrics.plot_roc(y_test, y_probas)\n", + "plt.show()\n", + "skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Recall that the cumulative gains curve shows the percentage of the\n", + "overall number of cases in a given category *gained* by targeting a\n", + "percentage of the total number of cases.\n", + "\n", + "Similarly, the receiver operating characteristic curve, or ROC curve,\n", + "displays the diagnostic ability of a binary classifier system as its\n", + "discrimination threshold is varied. It plots the true positive rate against the false positive rate.\n", + "\n", + "\n", + "### Compare Bagging on Trees with Random Forests" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "bag_clf = BaggingClassifier(\n", + " DecisionTreeClassifier(splitter=\"random\", max_leaf_nodes=16, random_state=42),\n", + " n_estimators=500, max_samples=1.0, bootstrap=True, n_jobs=-1, random_state=42)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "bag_clf.fit(X_train, y_train)\n", + "y_pred = bag_clf.predict(X_test)\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1, random_state=42)\n", + "rnd_clf.fit(X_train, y_train)\n", + "y_pred_rf = rnd_clf.predict(X_test)\n", + "np.sum(y_pred == y_pred_rf) / len(y_pred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Boosting, a Bird's Eye View\n", + "\n", + "The basic idea is to combine weak classifiers in order to create a good\n", + "classifier. With a weak classifier we often intend a classifier which\n", + "produces results which are only slightly better than we would get by\n", + "random guesses.\n", + "\n", + "This is done by applying in an iterative way a weak (or a standard\n", + "classifier like decision trees) to modify the data. In each iteration\n", + "we emphasize those observations which are misclassified by weighting\n", + "them with a factor.\n", + "\n", + "\n", + "\n", + "Boosting is a way of fitting an additive expansion in a set of\n", + "elementary basis functions like for example some simple polynomials.\n", + "Assume for example that we have a function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f_M(x) = \\sum_{i=1}^M \\beta_m b(x;\\gamma_m),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\beta_m$ are the expansion parameters to be determined in a\n", + "minimization process and $b(x;\\gamma_m)$ are some simple functions of\n", + "the multivariable parameter $x$ which is characterized by the\n", + "parameters $\\gamma_m$.\n", + "\n", + "As an example, consider the Sigmoid function we used in logistic\n", + "regression. In that case, we can translate the function\n", + "$b(x;\\gamma_m)$ into the Sigmoid function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma(t) = \\frac{1}{1+\\exp{(-t)}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $t=\\gamma_0+\\gamma_1 x$ and the parameters $\\gamma_0$ and\n", + "$\\gamma_1$ were determined by the Logistic Regression fitting\n", + "algorithm.\n", + "\n", + "As another example, consider the cost function we defined for linear regression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{y},\\boldsymbol{f}) = \\frac{1}{n} \\sum_{i=0}^{n-1}(y_i-f(x_i))^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case the function $f(x)$ was replaced by the design matrix\n", + "$\\boldsymbol{X}$ and the unknown linear regression parameters $\\boldsymbol{\\beta}$,\n", + "that is $\\boldsymbol{f}=\\boldsymbol{X}\\boldsymbol{\\beta}$. In linear regression we can \n", + "simply invert a matrix and obtain the parameters $\\beta$ by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\beta}=\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In iterative fitting or additive modeling, we minimize the cost function with respect to the parameters $\\beta_m$ and $\\gamma_m$.\n", + "\n", + "\n", + "### Iterative Fitting, Regression and Squared-error Cost Function\n", + "\n", + "The way we proceed is as follows (here we specialize to the squared-error cost function)\n", + "\n", + "1. Establish a cost function, here $\\cal{C}(\\boldsymbol{y},\\boldsymbol{f}) = \\frac{1}{n} \\sum_{i=0}^{n-1}(y_i-f_M(x_i))^2$ with $f_M(x) = \\sum_{i=1}^M \\beta_m b(x;\\gamma_m)$.\n", + "\n", + "2. Initialize with a guess $f_0(x)$. It could be one or even zero or some random numbers.\n", + "\n", + "3. For $m=1:M$\n", + "\n", + "a. minimize $\\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\\beta b(x;\\gamma))^2$ wrt $\\gamma$ and $\\beta$\n", + "\n", + "b. This gives the optimal values $\\beta_m$ and $\\gamma_m$\n", + "\n", + "c. Determine then the new values $f_m(x)=f_{m-1}(x) +\\beta_m b(x;\\gamma_m)$\n", + "\n", + "\n", + "We could use any of the algorithms we have discussed till now. If we\n", + "use trees, $\\gamma$ parameterizes the split variables and split points\n", + "at the internal nodes, and the predictions at the terminal nodes.\n", + "\n", + "\n", + "\n", + "To better understand what happens, let us develop the steps for the iterative fitting using the above squared error function.\n", + "\n", + "For simplicity we assume also that our functions $b(x;\\gamma)=1+\\gamma x$. \n", + "\n", + "This means that for every iteration $m$, we need to optimize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\beta_m,\\gamma_m) = \\mathrm{argmin}_{\\beta,\\lambda}\\hspace{0.1cm} \\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\\beta b(x;\\gamma))^2=\\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\\beta(1+\\gamma x_i))^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We start our iteration by simply setting $f_0(x)=0$. \n", + "Taking the derivatives with respect to $\\beta$ and $\\gamma$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\cal{C}}{\\partial \\beta} = -2\\sum_{i}(1+\\gamma x_i)(y_i-\\beta(1+\\gamma x_i))=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\cal{C}}{\\partial \\gamma} =-2\\sum_{i}\\beta x_i(y_i-\\beta(1+\\gamma x_i))=0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then rewrite these equations as (defining $\\boldsymbol{w}=\\boldsymbol{e}+\\gamma \\boldsymbol{x})$ with $\\boldsymbol{e}$ being the unit vector)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\gamma \\boldsymbol{w}^T(\\boldsymbol{y}-\\beta\\gamma \\boldsymbol{w})=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which gives us $\\beta = \\boldsymbol{w}^T\\boldsymbol{y}/(\\boldsymbol{w}^T\\boldsymbol{w})$. Similarly we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta\\gamma \\boldsymbol{x}^T(\\boldsymbol{y}-\\beta(1+\\gamma \\boldsymbol{x}))=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which leads to $\\gamma =(\\boldsymbol{x}^T\\boldsymbol{y}-\\beta\\boldsymbol{x}^T\\boldsymbol{e})/(\\beta\\boldsymbol{x}^T\\boldsymbol{x})$. Inserting\n", + "for $\\beta$ gives us an equation for $\\gamma$. This is a non-linear equation in the unknown $\\gamma$ and has to be solved numerically. \n", + "\n", + "The solution to these two equations gives us in turn $\\beta_1$ and $\\gamma_1$ leading to the new expression for $f_1(x)$ as\n", + "$f_1(x) = \\beta_1(1+\\gamma_1x)$. Doing this $M$ times results in our final estimate for the function $f$. \n", + "\n", + "\n", + "\n", + "### Iterative Fitting, Classification and AdaBoost\n", + "\n", + "Let us consider a binary classification problem with two outcomes $y_i \\in \\{-1,1\\}$ and $i=0,1,2,\\dots,n-1$ as our set of\n", + "observations. We define a classification function $G(x)$ which produces a prediction taking one or the other of the two values \n", + "$\\{-1,1\\}$.\n", + "\n", + "The error rate of the training sample is then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{\\overline{err}}=\\frac{1}{n} \\sum_{i=0}^{n-1} I(y_i\\ne G(x_i)).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The iterative procedure starts with defining a weak classifier whose\n", + "error rate is barely better than random guessing. The iterative\n", + "procedure in boosting is to sequentially apply a weak\n", + "classification algorithm to repeatedly modified versions of the data\n", + "producing a sequence of weak classifiers $G_m(x)$.\n", + "\n", + "Here we will express our function $f(x)$ in terms of $G(x)$. That is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f_M(x) = \\sum_{i=1}^M \\beta_m b(x;\\gamma_m),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "will be a function of" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "G_M(x) = \\mathrm{sign} \\sum_{i=1}^M \\alpha_m G_m(x).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In our iterative procedure we define thus" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f_m(x) = f_{m-1}(x)+\\beta_mG_m(x).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The simplest possible cost function which leads (also simple from a computational point of view) to the AdaBoost algorithm is the\n", + "exponential cost/loss function defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{y},\\boldsymbol{f}) = \\sum_{i=0}^{n-1}\\exp{(-y_i(f_{m-1}(x_i)+\\beta G(x_i))}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We optimize $\\beta$ and $G$ for each value of $m=1:M$ as we did in the regression case.\n", + "This is normally done in two steps. Let us however first rewrite the cost function as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{y},\\boldsymbol{f}) = \\sum_{i=0}^{n-1}w_i^{m}\\exp{(-y_i\\beta G(x_i))},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined $w_i^m= \\exp{(-y_if_{m-1}(x_i))}$.\n", + "\n", + "\n", + "\n", + "First, for any $\\beta > 0$, we optimize $G$ by setting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "G_m(x) = \\mathrm{sign} \\sum_{i=0}^{n-1} w_i^m I(y_i \\ne G_(x_i)),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is the classifier that minimizes the weighted error rate in predicting $y$.\n", + "\n", + "We can do this by rewriting" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\exp{-(\\beta)}\\sum_{y_i=G(x_i)}w_i^m+\\exp{(\\beta)}\\sum_{y_i\\ne G(x_i)}w_i^m,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which can be rewritten as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\exp{(\\beta)}-\\exp{-(\\beta)})\\sum_{i=0}^{n-1}w_i^mI(y_i\\ne G(x_i))+\\exp{(-\\beta)}\\sum_{i=0}^{n-1}w_i^m=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which leads to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_m = \\frac{1}{2}\\log{\\frac{1-\\mathrm{\\overline{err}}}{\\mathrm{\\overline{err}}}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have redefined the error as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{\\overline{err}}_m=\\frac{1}{n}\\frac{\\sum_{i=0}^{n-1}w_i^mI(y_i\\ne G(x_i)}{\\sum_{i=0}^{n-1}w_i^m},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which leads to an update of" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f_m(x) = f_{m-1}(x) +\\beta_m G_m(x).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This leads to the new weights" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "w_i^{m+1} = w_i^m \\exp{(-y_i\\beta_m G_m(x_i))}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Adaptive boosting: AdaBoost, Basic Algorithm\n", + "\n", + "The algorithm here is rather straightforward. Assume that our weak\n", + "classifier is a decision tree and we consider a binary set of outputs\n", + "with $y_i \\in \\{-1,1\\}$ and $i=0,1,2,\\dots,n-1$ as our set of\n", + "observations. Our design matrix is given in terms of the\n", + "feature/predictor vectors\n", + "$\\boldsymbol{X}=[\\boldsymbol{x}_0\\boldsymbol{x}_1\\dots\\boldsymbol{x}_{p-1}]$. Finally, we define also a\n", + "classifier determined by our data via a function $G(x)$. This function tells us how well we are able to classify our outputs/targets $\\boldsymbol{y}$. \n", + "\n", + "We have already defined the misclassification error $\\mathrm{err}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{err}=\\frac{1}{n}\\sum_{i=0}^{n-1}I(y_i\\ne G(x_i)),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the function $I()$ is one if we misclassify and zero if we classify correctly. \n", + "\n", + "\n", + "With the above definitions we are now ready to set up the algorithm for AdaBoost.\n", + "The basic idea is to set up weights which will be used to scale the correctly classified and the misclassified cases.\n", + "1. We start by initializing all weights to $w_i = 1/n$, with $i=0,1,2,\\dots n-1$. It is easy to see that we must have $\\sum_{i=0}^{n-1}w_i = 1$.\n", + "\n", + "2. We rewrite the misclassification error as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{\\overline{err}}_m=\\frac{\\sum_{i=0}^{n-1}w_i^m I(y_i\\ne G(x_i))}{\\sum_{i=0}^{n-1}w_i},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Then we start looping over all attempts at classifying, namely we start an iterative process for $m=1:M$, where $M$ is the final number of classifications. Our given classifier could for example be a plain decision tree.\n", + "\n", + "a. Fit then a given classifier to the training set using the weights $w_i$.\n", + "\n", + "b. Compute then $\\mathrm{err}$ and figure out which events are classified properly and which are classified wrongly.\n", + "\n", + "c. Define a quantity $\\alpha_{m} = \\log{(1-\\mathrm{\\overline{err}}_m)/\\mathrm{\\overline{err}}_m}$\n", + "\n", + "d. Set the new weights to $w_i = w_i\\times \\exp{(\\alpha_m I(y_i\\ne G(x_i)}$.\n", + "\n", + "\n", + "5. Compute the new classifier $G(x)= \\sum_{i=0}^{n-1}\\alpha_m I(y_i\\ne G(x_i)$.\n", + "\n", + "For the iterations with $m \\le 2$ the weights are modified\n", + "individually at each steps. The observations which were misclassified\n", + "at iteration $m-1$ have a weight which is larger than those which were\n", + "classified properly. As this proceeds, the observations which were\n", + "difficult to classifiy correctly are given a larger influence. Each\n", + "new classification step $m$ is then forced to concentrate on those\n", + "observations that are missed in the previous iterations.\n", + "\n", + "\n", + "\n", + "\n", + "Using **Scikit-Learn** it is easy to apply the adaptive boosting algorithm, as done here." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.ensemble import AdaBoostClassifier\n", + "\n", + "ada_clf = AdaBoostClassifier(\n", + " DecisionTreeClassifier(max_depth=1), n_estimators=200,\n", + " algorithm=\"SAMME.R\", learning_rate=0.5, random_state=42)\n", + "ada_clf.fit(X_train, y_train)\n", + "\n", + "from sklearn.ensemble import AdaBoostClassifier\n", + "\n", + "ada_clf = AdaBoostClassifier(\n", + " DecisionTreeClassifier(max_depth=1), n_estimators=200,\n", + " algorithm=\"SAMME.R\", learning_rate=0.5, random_state=42)\n", + "ada_clf.fit(X_train_scaled, y_train)\n", + "y_pred = ada_clf.predict(X_test_scaled)\n", + "skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n", + "plt.show()\n", + "y_probas = ada_clf.predict_proba(X_test_scaled)\n", + "skplt.metrics.plot_roc(y_test, y_probas)\n", + "plt.show()\n", + "skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent\n", + "\n", + "Gradient boosting is again a similar technique to Adaptive boosting,\n", + "it combines so-called weak classifiers or regressors into a strong\n", + "method via a series of iterations.\n", + "\n", + "In order to understand the method, let us illustrate its basics by\n", + "bringing back the essential steps in linear regression, where our cost\n", + "function was the least squares function.\n", + "\n", + "\n", + "We start again with our cost function $\\cal{C}(\\boldsymbol{y}m\\boldsymbol{f})=\\sum_{i=0}^{n-1}\\cal{L}(y_i, f(x_i))$ where we want to minimize\n", + "This means that for every iteration, we need to optimize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\hat{\\boldsymbol{f}}) = \\mathrm{argmin}_{\\boldsymbol{f}}\\hspace{0.1cm} \\sum_{i=0}^{n-1}(y_i-f(x_i))^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We define a real function $h_m(x)$ that defines our final function $f_M(x)$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f_M(x) = \\sum_{m=0}^M h_m(x).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the steepest decent approach we approximate $h_m(x) = -\\rho_m g_m(x)$, where $\\rho_m$ is a scalar and $g_m(x)$ the gradient defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "g_m(x_i) = \\left[ \\frac{\\partial \\cal{L}(y_i, f(x_i))}{\\partial f(x_i)}\\right]_{f(x_i)=f_{m-1}(x_i)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the new gradient we can update $f_m(x) = f_{m-1}(x) -\\rho_m g_m(x)$. Using the above squared-error function we see that\n", + "the gradient is $g_m(x_i) = -2(y_i-f(x_i))$.\n", + "\n", + "Choosing $f_0(x)=0$ we obtain $g_m(x) = -2y_i$ and inserting this into the minimization problem for the cost function we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\rho_1) = \\mathrm{argmin}_{\\rho}\\hspace{0.1cm} \\sum_{i=0}^{n-1}(y_i+2\\rho y_i)^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Optimizing with respect to $\\rho$ we obtain (taking the derivative) that $\\rho_1 = -1/2$. We have then that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f_1(x) = f_{0}(x) -\\rho_1 g_1(x)=-y_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then proceed and compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "g_2(x_i) = \\left[ \\frac{\\partial \\cal{L}(y_i, f(x_i))}{\\partial f(x_i)}\\right]_{f(x_i)=f_{1}(x_i)=y_i}=-4y_i,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and find a new value for $\\rho_2=-1/2$ and continue till we have reached $m=M$. We can modify the steepest descent method, or steepest boosting, by introducing what is called **gradient boosting**. \n", + "\n", + "\n", + "Steepest descent is however not much used, since it only optimizes $f$ at a fixed set of $n$ points,\n", + "so we do not learn a function that can generalize. However, we can modify the algorithm by\n", + "fitting a weak learner to approximate the negative gradient signal. \n", + "\n", + "Suppose we have a cost function $C(f)=\\sum_{i=0}^{n-1}L(y_i, f(x_i))$ where $y_i$ is our target and $f(x_i)$ the function which is meant to model $y_i$. The above cost function could be our standard squared-error function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{y},\\boldsymbol{f})=\\sum_{i=0}^{n-1}(y_i-f(x_i))^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The way we proceed in an iterative fashion is to\n", + "1. Initialize our estimate $f_0(x)$.\n", + "\n", + "2. For $m=1:M$, we\n", + "\n", + "a. compute the negative gradient vector $\\boldsymbol{u}_m = -\\partial C(\\boldsymbol{y},\\boldsymbol{f})/\\partial \\boldsymbol{f}(x)$ at $f(x) = f_{m-1}(x)$;\n", + "\n", + "b. fit the so-called base-learner to the negative gradient $h_m(u_m,x)$;\n", + "\n", + "c. update the estimate $f_m(x) = f_{m-1}(x)+h_m(u_m,x)$;\n", + "\n", + "\n", + "4. The final estimate is then $f_M(x) = \\sum_{m=1}^M h_m(u_m,x)$.\n", + "\n", + "## Gradient Boosting, Examples of Regression" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.ensemble import GradientBoostingRegressor\n", + "from sklearn.preprocessing import StandardScaler\n", + "import scikitplot as skplt\n", + "from sklearn.metrics import mean_squared_error\n", + "\n", + "n = 100\n", + "maxdegree = 6\n", + "\n", + "# Make data set.\n", + "x = np.linspace(-3, 3, n).reshape(-1, 1)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n", + "\n", + "error = np.zeros(maxdegree)\n", + "bias = np.zeros(maxdegree)\n", + "variance = np.zeros(maxdegree)\n", + "polydegree = np.zeros(maxdegree)\n", + "X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "\n", + "for degree in range(1,maxdegree):\n", + " model = GradientBoostingRegressor(max_depth=degree, n_estimators=100, learning_rate=1.0) \n", + " model.fit(X_train_scaled,y_train)\n", + " y_pred = model.predict(X_test_scaled)\n", + " polydegree[degree] = degree\n", + " error[degree] = np.mean( np.mean((y_test - y_pred)**2) )\n", + " bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 )\n", + " variance[degree] = np.mean( np.var(y_pred) )\n", + " print('Max depth:', degree)\n", + " print('Error:', error[degree])\n", + " print('Bias^2:', bias[degree])\n", + " print('Var:', variance[degree])\n", + " print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n", + "\n", + "plt.xlim(1,maxdegree-1)\n", + "plt.plot(polydegree, error, label='Error')\n", + "plt.plot(polydegree, bias, label='bias')\n", + "plt.plot(polydegree, variance, label='Variance')\n", + "plt.legend()\n", + "save_fig(\"gdregression\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Gradient Boosting, Classification Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "import scikitplot as skplt\n", + "from sklearn.ensemble import GradientBoostingClassifier\n", + "from sklearn.model_selection import cross_validate\n", + "\n", + "# Load the data\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "#now scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "\n", + "gd_clf = GradientBoostingClassifier(max_depth=3, n_estimators=100, learning_rate=1.0) \n", + "gd_clf.fit(X_train_scaled, y_train)\n", + "#Cross validation\n", + "accuracy = cross_validate(gd_clf,X_test_scaled,y_test,cv=10)['test_score']\n", + "print(accuracy)\n", + "print(\"Test set accuracy with Random Forests and scaled data: {:.2f}\".format(gd_clf.score(X_test_scaled,y_test)))\n", + "\n", + "import scikitplot as skplt\n", + "y_pred = gd_clf.predict(X_test_scaled)\n", + "skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n", + "save_fig(\"gdclassiffierconfusion\")\n", + "plt.show()\n", + "y_probas = gd_clf.predict_proba(X_test_scaled)\n", + "skplt.metrics.plot_roc(y_test, y_probas)\n", + "save_fig(\"gdclassiffierroc\")\n", + "plt.show()\n", + "skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n", + "save_fig(\"gdclassiffiercgain\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## XGBoost: Extreme Gradient Boosting\n", + "\n", + "\n", + "[XGBoost](https://github.com/dmlc/xgboost) or Extreme Gradient\n", + "Boosting, is an optimized distributed gradient boosting library\n", + "designed to be highly efficient, flexible and portable. It implements\n", + "machine learning algorithms under the Gradient Boosting\n", + "framework. XGBoost provides a parallel tree boosting that solve many\n", + "data science problems in a fast and accurate way. See the [article by Chen and Guestrin](https://arxiv.org/abs/1603.02754).\n", + "\n", + "The authors design and build a highly scalable end-to-end tree\n", + "boosting system. It has a theoretically justified weighted quantile\n", + "sketch for efficient proposal calculation. It introduces a novel sparsity-aware algorithm for parallel tree learning and an effective cache-aware block structure for out-of-core tree learning.\n", + "\n", + "It is now the algorithm which wins essentially all ML competitions!!!\n", + "\n", + "## Regression Case" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split\n", + "import xgboost as xgb\n", + "from sklearn.preprocessing import StandardScaler\n", + "import scikitplot as skplt\n", + "from sklearn.metrics import mean_squared_error\n", + "\n", + "n = 100\n", + "maxdegree = 6\n", + "\n", + "# Make data set.\n", + "x = np.linspace(-3, 3, n).reshape(-1, 1)\n", + "y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)\n", + "\n", + "error = np.zeros(maxdegree)\n", + "bias = np.zeros(maxdegree)\n", + "variance = np.zeros(maxdegree)\n", + "polydegree = np.zeros(maxdegree)\n", + "X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "\n", + "for degree in range(maxdegree):\n", + " model = xgb.XGBRegressor(objective ='reg:squarederror', colsaobjective ='reg:squarederror', colsample_bytree = 0.3, learning_rate = 0.1,max_depth = degree, alpha = 10, n_estimators = 200)\n", + "\n", + " model.fit(X_train_scaled,y_train)\n", + " y_pred = model.predict(X_test_scaled)\n", + " polydegree[degree] = degree\n", + " error[degree] = np.mean( np.mean((y_test - y_pred)**2) )\n", + " bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 )\n", + " variance[degree] = np.mean( np.var(y_pred) )\n", + " print('Max depth:', degree)\n", + " print('Error:', error[degree])\n", + " print('Bias^2:', bias[degree])\n", + " print('Var:', variance[degree])\n", + " print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))\n", + "\n", + "plt.xlim(1,maxdegree-1)\n", + "plt.plot(polydegree, error, label='Error')\n", + "plt.plot(polydegree, bias, label='bias')\n", + "plt.plot(polydegree, variance, label='Variance')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As you will see from the confusion matrix below, XGBoots does an excellent job on the Wisconsin cancer data and outperforms essentially all agorithms we have discussed till now." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.preprocessing import LabelEncoder\n", + "from sklearn.model_selection import cross_validate\n", + "import scikitplot as skplt\n", + "import xgboost as xgb\n", + "# Load the data\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "#now scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "\n", + "xg_clf = xgb.XGBClassifier()\n", + "xg_clf.fit(X_train_scaled,y_train)\n", + "\n", + "y_test = xg_clf.predict(X_test_scaled)\n", + "\n", + "print(\"Test set accuracy with Random Forests and scaled data: {:.2f}\".format(xg_clf.score(X_test_scaled,y_test)))\n", + "\n", + "import scikitplot as skplt\n", + "y_pred = xg_clf.predict(X_test_scaled)\n", + "skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n", + "save_fig(\"xdclassiffierconfusion\")\n", + "plt.show()\n", + "y_probas = xg_clf.predict_proba(X_test_scaled)\n", + "skplt.metrics.plot_roc(y_test, y_probas)\n", + "save_fig(\"xdclassiffierroc\")\n", + "plt.show()\n", + "skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n", + "save_fig(\"gdclassiffiercgain\")\n", + "plt.show()\n", + "\n", + "\n", + "xgb.plot_tree(xg_clf,num_trees=0)\n", + "plt.rcParams['figure.figsize'] = [50, 10]\n", + "save_fig(\"xgtree\")\n", + "plt.show()\n", + "\n", + "xgb.plot_importance(xg_clf)\n", + "plt.rcParams['figure.figsize'] = [5, 5]\n", + "save_fig(\"xgparams\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter7.py b/doc/LectureNotes/_build/jupyter_execute/chapter7.py new file mode 100644 index 000000000..8d356f544 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter7.py @@ -0,0 +1,1091 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Ensemble Methods: From a Single Tree to Many Trees and Extreme Boosting, Meet the Jungle of Methods +# +# As stated previously and seen in many of the examples discussed in the previous chapter about +# a single decision tree, we often end up overfitting our training +# data. This normally means that we have a high variance. Can we reduce +# the variance of a statistical learning method? +# +# This leads us to a set of different methods that can combine different +# machine learning algorithms or just use one of them to construct +# forests and jungles of trees, homogeneous ones or heterogenous +# ones. These methods are recognized by different names which we will +# try to explain here. These are +# +# 1. Voting classifiers +# +# 2. Bagging and Pasting +# +# 3. Random forests +# +# 4. Boosting methods, from adaptive to Extreme Gradient Boosting (XGBoost) +# +# We discuss these methods here. +# +# ### An Overview of Ensemble Methods +# +# +# +# +# +# ## Bagging +# +# The **plain** decision trees suffer from high +# variance. This means that if we split the training data into two parts +# at random, and fit a decision tree to both halves, the results that we +# get could be quite different. In contrast, a procedure with low +# variance will yield similar results if applied repeatedly to distinct +# data sets; linear regression tends to have low variance, if the ratio +# of $n$ to $p$ is moderately large. +# +# **Bootstrap aggregation**, or just **bagging**, is a +# general-purpose procedure for reducing the variance of a statistical +# learning method. +# +# +# Bagging typically results in improved accuracy +# over prediction using a single tree. Unfortunately, however, it can be +# difficult to interpret the resulting model. Recall that one of the +# advantages of decision trees is the attractive and easily interpreted +# diagram that results. +# +# However, when we bag a large number of trees, it is no longer +# possible to represent the resulting statistical learning procedure +# using a single tree, and it is no longer clear which variables are +# most important to the procedure. Thus, bagging improves prediction +# accuracy at the expense of interpretability. Although the collection +# of bagged trees is much more difficult to interpret than a single +# tree, one can obtain an overall summary of the importance of each +# predictor using the MSE (for bagging regression trees) or the Gini +# index (for bagging classification trees). In the case of bagging +# regression trees, we can record the total amount that the MSE is +# decreased due to splits over a given predictor, averaged over all $B$ possible +# trees. A large value indicates an important predictor. Similarly, in +# the context of bagging classification trees, we can add up the total +# amount that the Gini index is decreased by splits over a given +# predictor, averaged over all $B$ trees. + +# In[1]: + + +heads_proba = 0.51 +coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32) +cumulative_heads_ratio = np.cumsum(coin_tosses, axis=0) / np.arange(1, 10001).reshape(-1, 1) +plt.figure(figsize=(8,3.5)) +plt.plot(cumulative_heads_ratio) +plt.plot([0, 10000], [0.51, 0.51], "k--", linewidth=2, label="51%") +plt.plot([0, 10000], [0.5, 0.5], "k-", label="50%") +plt.xlabel("Number of coin tosses") +plt.ylabel("Heads ratio") +plt.legend(loc="lower right") +plt.axis([0, 10000, 0.42, 0.58]) +save_fig("votingsimple") +plt.show() + + +# In[ ]: + + +from sklearn.model_selection import train_test_split +from sklearn.datasets import make_moons + +X, y = make_moons(n_samples=500, noise=0.30, random_state=42) +X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) + +from sklearn.ensemble import RandomForestClassifier +from sklearn.ensemble import VotingClassifier +from sklearn.linear_model import LogisticRegression +from sklearn.svm import SVC + +log_clf = LogisticRegression(solver="liblinear", random_state=42) +rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42) +svm_clf = SVC(gamma="auto", random_state=42) + +voting_clf = VotingClassifier( + estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)], + voting='hard') + +voting_clf.fit(X_train, y_train) + +from sklearn.metrics import accuracy_score + +for clf in (log_clf, rnd_clf, svm_clf, voting_clf): + clf.fit(X_train, y_train) + y_pred = clf.predict(X_test) + print(clf.__class__.__name__, accuracy_score(y_test, y_pred)) + +log_clf = LogisticRegression(solver="liblinear", random_state=42) +rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42) +svm_clf = SVC(gamma="auto", probability=True, random_state=42) + +voting_clf = VotingClassifier( + estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)], + voting='soft') +voting_clf.fit(X_train, y_train) + +from sklearn.metrics import accuracy_score + +for clf in (log_clf, rnd_clf, svm_clf, voting_clf): + clf.fit(X_train, y_train) + y_pred = clf.predict(X_test) + print(clf.__class__.__name__, accuracy_score(y_test, y_pred)) + + +# In[ ]: + + +from sklearn.model_selection import train_test_split +from sklearn.datasets import make_moons + +X, y = make_moons(n_samples=500, noise=0.30, random_state=42) +X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) +from sklearn.ensemble import RandomForestClassifier +from sklearn.ensemble import VotingClassifier +from sklearn.linear_model import LogisticRegression +from sklearn.svm import SVC + +log_clf = LogisticRegression(random_state=42) +rnd_clf = RandomForestClassifier(random_state=42) +svm_clf = SVC(random_state=42) + +voting_clf = VotingClassifier( + estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)], + voting='hard') +voting_clf.fit(X_train, y_train) + + +# In[ ]: + + +from sklearn.metrics import accuracy_score + +for clf in (log_clf, rnd_clf, svm_clf, voting_clf): + clf.fit(X_train, y_train) + y_pred = clf.predict(X_test) + print(clf.__class__.__name__, accuracy_score(y_test, y_pred)) + + +# In[ ]: + + +log_clf = LogisticRegression(random_state=42) +rnd_clf = RandomForestClassifier(random_state=42) +svm_clf = SVC(probability=True, random_state=42) + +voting_clf = VotingClassifier( + estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)], + voting='soft') +voting_clf.fit(X_train, y_train) + + +# In[ ]: + + +from sklearn.metrics import accuracy_score + +for clf in (log_clf, rnd_clf, svm_clf, voting_clf): + clf.fit(X_train, y_train) + y_pred = clf.predict(X_test) + print(clf.__class__.__name__, accuracy_score(y_test, y_pred)) + + +# ## Bagging Examples + +# In[ ]: + + +from sklearn.ensemble import BaggingClassifier +from sklearn.tree import DecisionTreeClassifier + +bag_clf = BaggingClassifier( + DecisionTreeClassifier(random_state=42), n_estimators=500, + max_samples=100, bootstrap=True, n_jobs=-1, random_state=42) +bag_clf.fit(X_train, y_train) +y_pred = bag_clf.predict(X_test) + + +# In[ ]: + + +from sklearn.metrics import accuracy_score +print(accuracy_score(y_test, y_pred)) + + +# In[ ]: + + +tree_clf = DecisionTreeClassifier(random_state=42) +tree_clf.fit(X_train, y_train) +y_pred_tree = tree_clf.predict(X_test) +print(accuracy_score(y_test, y_pred_tree)) + + +# In[ ]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +from matplotlib.colors import ListedColormap + +def plot_decision_boundary(clf, X, y, axes=[-1.5, 2.5, -1, 1.5], alpha=0.5, contour=True): + x1s = np.linspace(axes[0], axes[1], 100) + x2s = np.linspace(axes[2], axes[3], 100) + x1, x2 = np.meshgrid(x1s, x2s) + X_new = np.c_[x1.ravel(), x2.ravel()] + y_pred = clf.predict(X_new).reshape(x1.shape) + custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0']) + plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap) + if contour: + custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50']) + plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8) + plt.plot(X[:, 0][y==0], X[:, 1][y==0], "yo", alpha=alpha) + plt.plot(X[:, 0][y==1], X[:, 1][y==1], "bs", alpha=alpha) + plt.axis(axes) + plt.xlabel(r"$x_1$", fontsize=18) + plt.ylabel(r"$x_2$", fontsize=18, rotation=0) +plt.figure(figsize=(11,4)) +plt.subplot(121) +plot_decision_boundary(tree_clf, X, y) +plt.title("Decision Tree", fontsize=14) +plt.subplot(122) +plot_decision_boundary(bag_clf, X, y) +plt.title("Decision Trees with Bagging", fontsize=14) +save_fig("baggingtree") +plt.show() + + +# ### Making your own Bootstrap: Changing the Level of the Decision Tree +# +# Let us bring up our good old boostrap example from the linear regression lectures. We change the linerar regression algorithm with +# a decision tree wth different depths and perform a bootstrap aggregate (in this case we perform as many bootstraps as data points $n$). + +# In[ ]: + + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.pipeline import make_pipeline +from sklearn.utils import resample +from sklearn.tree import DecisionTreeRegressor + +n = 100 +n_boostraps = 100 +maxdepth = 8 + +# Make data set. +x = np.linspace(-3, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) +error = np.zeros(maxdepth) +bias = np.zeros(maxdepth) +variance = np.zeros(maxdepth) +polydegree = np.zeros(maxdepth) +X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2) + +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) + +# we produce a simple tree first as benchmark +simpletree = DecisionTreeRegressor(max_depth=3) +simpletree.fit(X_train_scaled, y_train) +simpleprediction = simpletree.predict(X_test_scaled) +for degree in range(1,maxdepth): + model = DecisionTreeRegressor(max_depth=degree) + y_pred = np.empty((y_test.shape[0], n_boostraps)) + for i in range(n_boostraps): + x_, y_ = resample(X_train_scaled, y_train) + model.fit(x_, y_) + y_pred[:, i] = model.predict(X_test_scaled)#.ravel() + + polydegree[degree] = degree + error[degree] = np.mean( np.mean((y_test - y_pred)**2, axis=1, keepdims=True) ) + bias[degree] = np.mean( (y_test - np.mean(y_pred, axis=1, keepdims=True))**2 ) + variance[degree] = np.mean( np.var(y_pred, axis=1, keepdims=True) ) + print('Polynomial degree:', degree) + print('Error:', error[degree]) + print('Bias^2:', bias[degree]) + print('Var:', variance[degree]) + print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree])) + +mse_simpletree= np.mean( np.mean((y_test - simpleprediction)**2) +print(mse_simpletree) +plt.xlim(1,maxdepth) +plt.plot(polydegree, error, label='MSE') +plt.plot(polydegree, bias, label='bias') +plt.plot(polydegree, variance, label='Variance') +plt.legend() +save_fig("baggingboot") +plt.show() + + +# ## Random forests +# +# Random forests provide an improvement over bagged trees by way of a +# small tweak that decorrelates the trees. +# +# As in bagging, we build a +# number of decision trees on bootstrapped training samples. But when +# building these decision trees, each time a split in a tree is +# considered, a random sample of $m$ predictors is chosen as split +# candidates from the full set of $p$ predictors. The split is allowed to +# use only one of those $m$ predictors. +# +# A fresh sample of $m$ predictors is +# taken at each split, and typically we choose + +# $$ +# m\approx \sqrt{p}. +# $$ + +# In building a random forest, at +# each split in the tree, the algorithm is not even allowed to consider +# a majority of the available predictors. +# +# The reason for this is rather clever. Suppose that there is one very +# strong predictor in the data set, along with a number of other +# moderately strong predictors. Then in the collection of bagged +# variable importance random forest trees, most or all of the trees will +# use this strong predictor in the top split. Consequently, all of the +# bagged trees will look quite similar to each other. Hence the +# predictions from the bagged trees will be highly correlated. +# Unfortunately, averaging many highly correlated quantities does not +# lead to as large of a reduction in variance as averaging many +# uncorrelated quantities. In particular, this means that bagging will +# not lead to a substantial reduction in variance over a single tree in +# this setting. +# +# +# The algorithm described here can be applied to both classification and regression problems. +# +# We will grow of forest of say $B$ trees. +# 1. For $b=1:B$ +# +# * Draw a bootstrap sample from the training data organized in our $\boldsymbol{X}$ matrix. +# +# * We grow then a random forest tree $T_b$ based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached +# +# 1. we select $m \le p$ variables at random from the $p$ predictors/features +# +# 2. pick the best split point among the $m$ features using for example the CART algorithm and create a new node +# +# 3. split the node into daughter nodes +# +# +# +# 4. Output then the ensemble of trees $\{T_b\}_1^{B}$ and make predictions for either a regression type of problem or a classification type of problem. + +# In[ ]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.svm import SVC +from sklearn.linear_model import LogisticRegression +from sklearn.tree import DecisionTreeClassifier +from sklearn.ensemble import BaggingClassifier + +# Load the data +cancer = load_breast_cancer() + +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) +print(X_train.shape) +print(X_test.shape) +# Logistic Regression +logreg = LogisticRegression(solver='lbfgs') +logreg.fit(X_train, y_train) +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) +# Support vector machine +svm = SVC(gamma='auto', C=100) +svm.fit(X_train, y_train) +print("Test set accuracy with SVM: {:.2f}".format(svm.score(X_test,y_test))) +# Decision Trees +deep_tree_clf = DecisionTreeClassifier(max_depth=None) +deep_tree_clf.fit(X_train, y_train) +print("Test set accuracy with Decision Trees: {:.2f}".format(deep_tree_clf.score(X_test,y_test))) +#now scale the data +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) +# Logistic Regression +logreg.fit(X_train_scaled, y_train) +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Support Vector Machine +svm.fit(X_train_scaled, y_train) +print("Test set accuracy SVM with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Decision Trees +deep_tree_clf.fit(X_train_scaled, y_train) +print("Test set accuracy with Decision Trees and scaled data: {:.2f}".format(deep_tree_clf.score(X_test_scaled,y_test))) + + +from sklearn.ensemble import RandomForestClassifier +from sklearn.preprocessing import LabelEncoder +from sklearn.model_selection import cross_validate +# Data set not specificied +#Instantiate the model with 500 trees and entropy as splitting criteria +Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion="entropy") +Random_Forest_model.fit(X_train_scaled, y_train) +#Cross validation +accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score'] +print(accuracy) +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(Random_Forest_model.score(X_test_scaled,y_test))) + + +import scikitplot as skplt +y_pred = Random_Forest_model.predict(X_test_scaled) +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) +plt.show() +y_probas = Random_Forest_model.predict_proba(X_test_scaled) +skplt.metrics.plot_roc(y_test, y_probas) +plt.show() +skplt.metrics.plot_cumulative_gain(y_test, y_probas) +plt.show() + + +# Recall that the cumulative gains curve shows the percentage of the +# overall number of cases in a given category *gained* by targeting a +# percentage of the total number of cases. +# +# Similarly, the receiver operating characteristic curve, or ROC curve, +# displays the diagnostic ability of a binary classifier system as its +# discrimination threshold is varied. It plots the true positive rate against the false positive rate. +# +# +# ### Compare Bagging on Trees with Random Forests + +# In[ ]: + + +bag_clf = BaggingClassifier( + DecisionTreeClassifier(splitter="random", max_leaf_nodes=16, random_state=42), + n_estimators=500, max_samples=1.0, bootstrap=True, n_jobs=-1, random_state=42) + + +# In[ ]: + + +bag_clf.fit(X_train, y_train) +y_pred = bag_clf.predict(X_test) +from sklearn.ensemble import RandomForestClassifier +rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1, random_state=42) +rnd_clf.fit(X_train, y_train) +y_pred_rf = rnd_clf.predict(X_test) +np.sum(y_pred == y_pred_rf) / len(y_pred) + + +# ## Boosting, a Bird's Eye View +# +# The basic idea is to combine weak classifiers in order to create a good +# classifier. With a weak classifier we often intend a classifier which +# produces results which are only slightly better than we would get by +# random guesses. +# +# This is done by applying in an iterative way a weak (or a standard +# classifier like decision trees) to modify the data. In each iteration +# we emphasize those observations which are misclassified by weighting +# them with a factor. +# +# +# +# Boosting is a way of fitting an additive expansion in a set of +# elementary basis functions like for example some simple polynomials. +# Assume for example that we have a function + +# $$ +# f_M(x) = \sum_{i=1}^M \beta_m b(x;\gamma_m), +# $$ + +# where $\beta_m$ are the expansion parameters to be determined in a +# minimization process and $b(x;\gamma_m)$ are some simple functions of +# the multivariable parameter $x$ which is characterized by the +# parameters $\gamma_m$. +# +# As an example, consider the Sigmoid function we used in logistic +# regression. In that case, we can translate the function +# $b(x;\gamma_m)$ into the Sigmoid function + +# $$ +# \sigma(t) = \frac{1}{1+\exp{(-t)}}, +# $$ + +# where $t=\gamma_0+\gamma_1 x$ and the parameters $\gamma_0$ and +# $\gamma_1$ were determined by the Logistic Regression fitting +# algorithm. +# +# As another example, consider the cost function we defined for linear regression + +# $$ +# C(\boldsymbol{y},\boldsymbol{f}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-f(x_i))^2. +# $$ + +# In this case the function $f(x)$ was replaced by the design matrix +# $\boldsymbol{X}$ and the unknown linear regression parameters $\boldsymbol{\beta}$, +# that is $\boldsymbol{f}=\boldsymbol{X}\boldsymbol{\beta}$. In linear regression we can +# simply invert a matrix and obtain the parameters $\beta$ by + +# $$ +# \boldsymbol{\beta}=\left(\boldsymbol{X}^T\boldsymbol{X}\right)^{-1}\boldsymbol{X}^T\boldsymbol{y}. +# $$ + +# In iterative fitting or additive modeling, we minimize the cost function with respect to the parameters $\beta_m$ and $\gamma_m$. +# +# +# ### Iterative Fitting, Regression and Squared-error Cost Function +# +# The way we proceed is as follows (here we specialize to the squared-error cost function) +# +# 1. Establish a cost function, here $\cal{C}(\boldsymbol{y},\boldsymbol{f}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-f_M(x_i))^2$ with $f_M(x) = \sum_{i=1}^M \beta_m b(x;\gamma_m)$. +# +# 2. Initialize with a guess $f_0(x)$. It could be one or even zero or some random numbers. +# +# 3. For $m=1:M$ +# +# a. minimize $\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\beta b(x;\gamma))^2$ wrt $\gamma$ and $\beta$ +# +# b. This gives the optimal values $\beta_m$ and $\gamma_m$ +# +# c. Determine then the new values $f_m(x)=f_{m-1}(x) +\beta_m b(x;\gamma_m)$ +# +# +# We could use any of the algorithms we have discussed till now. If we +# use trees, $\gamma$ parameterizes the split variables and split points +# at the internal nodes, and the predictions at the terminal nodes. +# +# +# +# To better understand what happens, let us develop the steps for the iterative fitting using the above squared error function. +# +# For simplicity we assume also that our functions $b(x;\gamma)=1+\gamma x$. +# +# This means that for every iteration $m$, we need to optimize + +# $$ +# (\beta_m,\gamma_m) = \mathrm{argmin}_{\beta,\lambda}\hspace{0.1cm} \sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\beta b(x;\gamma))^2=\sum_{i=0}^{n-1}(y_i-f_{m-1}(x_i)-\beta(1+\gamma x_i))^2. +# $$ + +# We start our iteration by simply setting $f_0(x)=0$. +# Taking the derivatives with respect to $\beta$ and $\gamma$ we obtain + +# $$ +# \frac{\partial \cal{C}}{\partial \beta} = -2\sum_{i}(1+\gamma x_i)(y_i-\beta(1+\gamma x_i))=0, +# $$ + +# and + +# $$ +# \frac{\partial \cal{C}}{\partial \gamma} =-2\sum_{i}\beta x_i(y_i-\beta(1+\gamma x_i))=0. +# $$ + +# We can then rewrite these equations as (defining $\boldsymbol{w}=\boldsymbol{e}+\gamma \boldsymbol{x})$ with $\boldsymbol{e}$ being the unit vector) + +# $$ +# \gamma \boldsymbol{w}^T(\boldsymbol{y}-\beta\gamma \boldsymbol{w})=0, +# $$ + +# which gives us $\beta = \boldsymbol{w}^T\boldsymbol{y}/(\boldsymbol{w}^T\boldsymbol{w})$. Similarly we have + +# $$ +# \beta\gamma \boldsymbol{x}^T(\boldsymbol{y}-\beta(1+\gamma \boldsymbol{x}))=0, +# $$ + +# which leads to $\gamma =(\boldsymbol{x}^T\boldsymbol{y}-\beta\boldsymbol{x}^T\boldsymbol{e})/(\beta\boldsymbol{x}^T\boldsymbol{x})$. Inserting +# for $\beta$ gives us an equation for $\gamma$. This is a non-linear equation in the unknown $\gamma$ and has to be solved numerically. +# +# The solution to these two equations gives us in turn $\beta_1$ and $\gamma_1$ leading to the new expression for $f_1(x)$ as +# $f_1(x) = \beta_1(1+\gamma_1x)$. Doing this $M$ times results in our final estimate for the function $f$. +# +# +# +# ### Iterative Fitting, Classification and AdaBoost +# +# Let us consider a binary classification problem with two outcomes $y_i \in \{-1,1\}$ and $i=0,1,2,\dots,n-1$ as our set of +# observations. We define a classification function $G(x)$ which produces a prediction taking one or the other of the two values +# $\{-1,1\}$. +# +# The error rate of the training sample is then + +# $$ +# \mathrm{\overline{err}}=\frac{1}{n} \sum_{i=0}^{n-1} I(y_i\ne G(x_i)). +# $$ + +# The iterative procedure starts with defining a weak classifier whose +# error rate is barely better than random guessing. The iterative +# procedure in boosting is to sequentially apply a weak +# classification algorithm to repeatedly modified versions of the data +# producing a sequence of weak classifiers $G_m(x)$. +# +# Here we will express our function $f(x)$ in terms of $G(x)$. That is + +# $$ +# f_M(x) = \sum_{i=1}^M \beta_m b(x;\gamma_m), +# $$ + +# will be a function of + +# $$ +# G_M(x) = \mathrm{sign} \sum_{i=1}^M \alpha_m G_m(x). +# $$ + +# In our iterative procedure we define thus + +# $$ +# f_m(x) = f_{m-1}(x)+\beta_mG_m(x). +# $$ + +# The simplest possible cost function which leads (also simple from a computational point of view) to the AdaBoost algorithm is the +# exponential cost/loss function defined as + +# $$ +# C(\boldsymbol{y},\boldsymbol{f}) = \sum_{i=0}^{n-1}\exp{(-y_i(f_{m-1}(x_i)+\beta G(x_i))}. +# $$ + +# We optimize $\beta$ and $G$ for each value of $m=1:M$ as we did in the regression case. +# This is normally done in two steps. Let us however first rewrite the cost function as + +# $$ +# C(\boldsymbol{y},\boldsymbol{f}) = \sum_{i=0}^{n-1}w_i^{m}\exp{(-y_i\beta G(x_i))}, +# $$ + +# where we have defined $w_i^m= \exp{(-y_if_{m-1}(x_i))}$. +# +# +# +# First, for any $\beta > 0$, we optimize $G$ by setting + +# $$ +# G_m(x) = \mathrm{sign} \sum_{i=0}^{n-1} w_i^m I(y_i \ne G_(x_i)), +# $$ + +# which is the classifier that minimizes the weighted error rate in predicting $y$. +# +# We can do this by rewriting + +# $$ +# \exp{-(\beta)}\sum_{y_i=G(x_i)}w_i^m+\exp{(\beta)}\sum_{y_i\ne G(x_i)}w_i^m, +# $$ + +# which can be rewritten as + +# $$ +# (\exp{(\beta)}-\exp{-(\beta)})\sum_{i=0}^{n-1}w_i^mI(y_i\ne G(x_i))+\exp{(-\beta)}\sum_{i=0}^{n-1}w_i^m=0, +# $$ + +# which leads to + +# $$ +# \beta_m = \frac{1}{2}\log{\frac{1-\mathrm{\overline{err}}}{\mathrm{\overline{err}}}}, +# $$ + +# where we have redefined the error as + +# $$ +# \mathrm{\overline{err}}_m=\frac{1}{n}\frac{\sum_{i=0}^{n-1}w_i^mI(y_i\ne G(x_i)}{\sum_{i=0}^{n-1}w_i^m}, +# $$ + +# which leads to an update of + +# $$ +# f_m(x) = f_{m-1}(x) +\beta_m G_m(x). +# $$ + +# This leads to the new weights + +# $$ +# w_i^{m+1} = w_i^m \exp{(-y_i\beta_m G_m(x_i))} +# $$ + +# ### Adaptive boosting: AdaBoost, Basic Algorithm +# +# The algorithm here is rather straightforward. Assume that our weak +# classifier is a decision tree and we consider a binary set of outputs +# with $y_i \in \{-1,1\}$ and $i=0,1,2,\dots,n-1$ as our set of +# observations. Our design matrix is given in terms of the +# feature/predictor vectors +# $\boldsymbol{X}=[\boldsymbol{x}_0\boldsymbol{x}_1\dots\boldsymbol{x}_{p-1}]$. Finally, we define also a +# classifier determined by our data via a function $G(x)$. This function tells us how well we are able to classify our outputs/targets $\boldsymbol{y}$. +# +# We have already defined the misclassification error $\mathrm{err}$ as + +# $$ +# \mathrm{err}=\frac{1}{n}\sum_{i=0}^{n-1}I(y_i\ne G(x_i)), +# $$ + +# where the function $I()$ is one if we misclassify and zero if we classify correctly. +# +# +# With the above definitions we are now ready to set up the algorithm for AdaBoost. +# The basic idea is to set up weights which will be used to scale the correctly classified and the misclassified cases. +# 1. We start by initializing all weights to $w_i = 1/n$, with $i=0,1,2,\dots n-1$. It is easy to see that we must have $\sum_{i=0}^{n-1}w_i = 1$. +# +# 2. We rewrite the misclassification error as + +# $$ +# \mathrm{\overline{err}}_m=\frac{\sum_{i=0}^{n-1}w_i^m I(y_i\ne G(x_i))}{\sum_{i=0}^{n-1}w_i}, +# $$ + +# 1. Then we start looping over all attempts at classifying, namely we start an iterative process for $m=1:M$, where $M$ is the final number of classifications. Our given classifier could for example be a plain decision tree. +# +# a. Fit then a given classifier to the training set using the weights $w_i$. +# +# b. Compute then $\mathrm{err}$ and figure out which events are classified properly and which are classified wrongly. +# +# c. Define a quantity $\alpha_{m} = \log{(1-\mathrm{\overline{err}}_m)/\mathrm{\overline{err}}_m}$ +# +# d. Set the new weights to $w_i = w_i\times \exp{(\alpha_m I(y_i\ne G(x_i)}$. +# +# +# 5. Compute the new classifier $G(x)= \sum_{i=0}^{n-1}\alpha_m I(y_i\ne G(x_i)$. +# +# For the iterations with $m \le 2$ the weights are modified +# individually at each steps. The observations which were misclassified +# at iteration $m-1$ have a weight which is larger than those which were +# classified properly. As this proceeds, the observations which were +# difficult to classifiy correctly are given a larger influence. Each +# new classification step $m$ is then forced to concentrate on those +# observations that are missed in the previous iterations. +# +# +# +# +# Using **Scikit-Learn** it is easy to apply the adaptive boosting algorithm, as done here. + +# In[ ]: + + +from sklearn.ensemble import AdaBoostClassifier + +ada_clf = AdaBoostClassifier( + DecisionTreeClassifier(max_depth=1), n_estimators=200, + algorithm="SAMME.R", learning_rate=0.5, random_state=42) +ada_clf.fit(X_train, y_train) + +from sklearn.ensemble import AdaBoostClassifier + +ada_clf = AdaBoostClassifier( + DecisionTreeClassifier(max_depth=1), n_estimators=200, + algorithm="SAMME.R", learning_rate=0.5, random_state=42) +ada_clf.fit(X_train_scaled, y_train) +y_pred = ada_clf.predict(X_test_scaled) +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) +plt.show() +y_probas = ada_clf.predict_proba(X_test_scaled) +skplt.metrics.plot_roc(y_test, y_probas) +plt.show() +skplt.metrics.plot_cumulative_gain(y_test, y_probas) +plt.show() + + +# ## Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent +# +# Gradient boosting is again a similar technique to Adaptive boosting, +# it combines so-called weak classifiers or regressors into a strong +# method via a series of iterations. +# +# In order to understand the method, let us illustrate its basics by +# bringing back the essential steps in linear regression, where our cost +# function was the least squares function. +# +# +# We start again with our cost function $\cal{C}(\boldsymbol{y}m\boldsymbol{f})=\sum_{i=0}^{n-1}\cal{L}(y_i, f(x_i))$ where we want to minimize +# This means that for every iteration, we need to optimize + +# $$ +# (\hat{\boldsymbol{f}}) = \mathrm{argmin}_{\boldsymbol{f}}\hspace{0.1cm} \sum_{i=0}^{n-1}(y_i-f(x_i))^2. +# $$ + +# We define a real function $h_m(x)$ that defines our final function $f_M(x)$ as + +# $$ +# f_M(x) = \sum_{m=0}^M h_m(x). +# $$ + +# In the steepest decent approach we approximate $h_m(x) = -\rho_m g_m(x)$, where $\rho_m$ is a scalar and $g_m(x)$ the gradient defined as + +# $$ +# g_m(x_i) = \left[ \frac{\partial \cal{L}(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x_i)=f_{m-1}(x_i)}. +# $$ + +# With the new gradient we can update $f_m(x) = f_{m-1}(x) -\rho_m g_m(x)$. Using the above squared-error function we see that +# the gradient is $g_m(x_i) = -2(y_i-f(x_i))$. +# +# Choosing $f_0(x)=0$ we obtain $g_m(x) = -2y_i$ and inserting this into the minimization problem for the cost function we have + +# $$ +# (\rho_1) = \mathrm{argmin}_{\rho}\hspace{0.1cm} \sum_{i=0}^{n-1}(y_i+2\rho y_i)^2. +# $$ + +# Optimizing with respect to $\rho$ we obtain (taking the derivative) that $\rho_1 = -1/2$. We have then that + +# $$ +# f_1(x) = f_{0}(x) -\rho_1 g_1(x)=-y_i. +# $$ + +# We can then proceed and compute + +# $$ +# g_2(x_i) = \left[ \frac{\partial \cal{L}(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x_i)=f_{1}(x_i)=y_i}=-4y_i, +# $$ + +# and find a new value for $\rho_2=-1/2$ and continue till we have reached $m=M$. We can modify the steepest descent method, or steepest boosting, by introducing what is called **gradient boosting**. +# +# +# Steepest descent is however not much used, since it only optimizes $f$ at a fixed set of $n$ points, +# so we do not learn a function that can generalize. However, we can modify the algorithm by +# fitting a weak learner to approximate the negative gradient signal. +# +# Suppose we have a cost function $C(f)=\sum_{i=0}^{n-1}L(y_i, f(x_i))$ where $y_i$ is our target and $f(x_i)$ the function which is meant to model $y_i$. The above cost function could be our standard squared-error function + +# $$ +# C(\boldsymbol{y},\boldsymbol{f})=\sum_{i=0}^{n-1}(y_i-f(x_i))^2. +# $$ + +# The way we proceed in an iterative fashion is to +# 1. Initialize our estimate $f_0(x)$. +# +# 2. For $m=1:M$, we +# +# a. compute the negative gradient vector $\boldsymbol{u}_m = -\partial C(\boldsymbol{y},\boldsymbol{f})/\partial \boldsymbol{f}(x)$ at $f(x) = f_{m-1}(x)$; +# +# b. fit the so-called base-learner to the negative gradient $h_m(u_m,x)$; +# +# c. update the estimate $f_m(x) = f_{m-1}(x)+h_m(u_m,x)$; +# +# +# 4. The final estimate is then $f_M(x) = \sum_{m=1}^M h_m(u_m,x)$. +# +# ## Gradient Boosting, Examples of Regression + +# In[ ]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.ensemble import GradientBoostingRegressor +from sklearn.preprocessing import StandardScaler +import scikitplot as skplt +from sklearn.metrics import mean_squared_error + +n = 100 +maxdegree = 6 + +# Make data set. +x = np.linspace(-3, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) + +error = np.zeros(maxdegree) +bias = np.zeros(maxdegree) +variance = np.zeros(maxdegree) +polydegree = np.zeros(maxdegree) +X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2) +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) + +for degree in range(1,maxdegree): + model = GradientBoostingRegressor(max_depth=degree, n_estimators=100, learning_rate=1.0) + model.fit(X_train_scaled,y_train) + y_pred = model.predict(X_test_scaled) + polydegree[degree] = degree + error[degree] = np.mean( np.mean((y_test - y_pred)**2) ) + bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 ) + variance[degree] = np.mean( np.var(y_pred) ) + print('Max depth:', degree) + print('Error:', error[degree]) + print('Bias^2:', bias[degree]) + print('Var:', variance[degree]) + print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree])) + +plt.xlim(1,maxdegree-1) +plt.plot(polydegree, error, label='Error') +plt.plot(polydegree, bias, label='bias') +plt.plot(polydegree, variance, label='Variance') +plt.legend() +save_fig("gdregression") +plt.show() + + +# ## Gradient Boosting, Classification Example + +# In[ ]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +import scikitplot as skplt +from sklearn.ensemble import GradientBoostingClassifier +from sklearn.model_selection import cross_validate + +# Load the data +cancer = load_breast_cancer() + +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) +print(X_train.shape) +print(X_test.shape) +#now scale the data +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) + +gd_clf = GradientBoostingClassifier(max_depth=3, n_estimators=100, learning_rate=1.0) +gd_clf.fit(X_train_scaled, y_train) +#Cross validation +accuracy = cross_validate(gd_clf,X_test_scaled,y_test,cv=10)['test_score'] +print(accuracy) +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(gd_clf.score(X_test_scaled,y_test))) + +import scikitplot as skplt +y_pred = gd_clf.predict(X_test_scaled) +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) +save_fig("gdclassiffierconfusion") +plt.show() +y_probas = gd_clf.predict_proba(X_test_scaled) +skplt.metrics.plot_roc(y_test, y_probas) +save_fig("gdclassiffierroc") +plt.show() +skplt.metrics.plot_cumulative_gain(y_test, y_probas) +save_fig("gdclassiffiercgain") +plt.show() + + +# ## XGBoost: Extreme Gradient Boosting +# +# +# [XGBoost](https://github.com/dmlc/xgboost) or Extreme Gradient +# Boosting, is an optimized distributed gradient boosting library +# designed to be highly efficient, flexible and portable. It implements +# machine learning algorithms under the Gradient Boosting +# framework. XGBoost provides a parallel tree boosting that solve many +# data science problems in a fast and accurate way. See the [article by Chen and Guestrin](https://arxiv.org/abs/1603.02754). +# +# The authors design and build a highly scalable end-to-end tree +# boosting system. It has a theoretically justified weighted quantile +# sketch for efficient proposal calculation. It introduces a novel sparsity-aware algorithm for parallel tree learning and an effective cache-aware block structure for out-of-core tree learning. +# +# It is now the algorithm which wins essentially all ML competitions!!! +# +# ## Regression Case + +# In[ ]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +import xgboost as xgb +from sklearn.preprocessing import StandardScaler +import scikitplot as skplt +from sklearn.metrics import mean_squared_error + +n = 100 +maxdegree = 6 + +# Make data set. +x = np.linspace(-3, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) + +error = np.zeros(maxdegree) +bias = np.zeros(maxdegree) +variance = np.zeros(maxdegree) +polydegree = np.zeros(maxdegree) +X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2) +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) + +for degree in range(maxdegree): + model = xgb.XGBRegressor(objective ='reg:squarederror', colsaobjective ='reg:squarederror', colsample_bytree = 0.3, learning_rate = 0.1,max_depth = degree, alpha = 10, n_estimators = 200) + + model.fit(X_train_scaled,y_train) + y_pred = model.predict(X_test_scaled) + polydegree[degree] = degree + error[degree] = np.mean( np.mean((y_test - y_pred)**2) ) + bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 ) + variance[degree] = np.mean( np.var(y_pred) ) + print('Max depth:', degree) + print('Error:', error[degree]) + print('Bias^2:', bias[degree]) + print('Var:', variance[degree]) + print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree])) + +plt.xlim(1,maxdegree-1) +plt.plot(polydegree, error, label='Error') +plt.plot(polydegree, bias, label='bias') +plt.plot(polydegree, variance, label='Variance') +plt.legend() +plt.show() + + +# As you will see from the confusion matrix below, XGBoots does an excellent job on the Wisconsin cancer data and outperforms essentially all agorithms we have discussed till now. + +# In[ ]: + + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.preprocessing import LabelEncoder +from sklearn.model_selection import cross_validate +import scikitplot as skplt +import xgboost as xgb +# Load the data +cancer = load_breast_cancer() + +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) +print(X_train.shape) +print(X_test.shape) +#now scale the data +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) + +xg_clf = xgb.XGBClassifier() +xg_clf.fit(X_train_scaled,y_train) + +y_test = xg_clf.predict(X_test_scaled) + +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(xg_clf.score(X_test_scaled,y_test))) + +import scikitplot as skplt +y_pred = xg_clf.predict(X_test_scaled) +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) +save_fig("xdclassiffierconfusion") +plt.show() +y_probas = xg_clf.predict_proba(X_test_scaled) +skplt.metrics.plot_roc(y_test, y_probas) +save_fig("xdclassiffierroc") +plt.show() +skplt.metrics.plot_cumulative_gain(y_test, y_probas) +save_fig("gdclassiffiercgain") +plt.show() + + +xgb.plot_tree(xg_clf,num_trees=0) +plt.rcParams['figure.figsize'] = [50, 10] +save_fig("xgtree") +plt.show() + +xgb.plot_importance(xg_clf) +plt.rcParams['figure.figsize'] = [5, 5] +save_fig("xgparams") +plt.show() + diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter8.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter8.ipynb new file mode 100644 index 000000000..935c33daa --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter8.ipynb @@ -0,0 +1,1734 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Basic ideas of the Principal Component Analysis (PCA)\n", + "\n", + "The principal component analysis deals with the problem of fitting a\n", + "low-dimensional affine subspace $S$ of dimension $d$ much smaller than\n", + "the total dimension $D$ of the problem at hand (our data\n", + "set). Mathematically it can be formulated as a statistical problem or\n", + "a geometric problem. In our discussion of the theorem for the\n", + "classical PCA, we will stay with a statistical approach. \n", + "Historically, the PCA was first formulated in a statistical setting in order to estimate the principal component of a multivariate random variable.\n", + "\n", + "We have a data set defined by a design/feature matrix $\\boldsymbol{X}$ (see below for its definition) \n", + "* Each data point is determined by $p$ extrinsic (measurement) variables\n", + "\n", + "* We may want to ask the following question: Are there fewer intrinsic variables (say $d << p$) that still approximately describe the data?\n", + "\n", + "* If so, these intrinsic variables may tell us something important and finding these intrinsic variables is what dimension reduction methods do. \n", + "\n", + "A good read is for example [Vidal, Ma and Sastry](https://www.springer.com/gp/book/9780387878102).\n", + "\n", + "\n", + "\n", + "## Introducing the Covariance and Correlation functions\n", + "\n", + "Before we discuss the PCA theorem, we need to remind ourselves about\n", + "the definition of the covariance and the correlation function. These are quantities \n", + "\n", + "Suppose we have defined two vectors\n", + "$\\hat{x}$ and $\\hat{y}$ with $n$ elements each. The covariance matrix $\\boldsymbol{C}$ is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " \\mathrm{cov}[\\boldsymbol{y},\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{y},\\boldsymbol{y}] \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where for example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] =\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})(y_i- \\overline{y}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With this definition and recalling that the variance is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{var}[\\boldsymbol{x}]=\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we can rewrite the covariance matrix as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} \\mathrm{var}[\\boldsymbol{x}] & \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " \\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}] & \\mathrm{var}[\\boldsymbol{y}] \\\\\n", + " \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The covariance takes values between zero and infinity and may thus\n", + "lead to problems with loss of numerical precision for particularly\n", + "large values. It is common to scale the covariance matrix by\n", + "introducing instead the correlation matrix defined via the so-called\n", + "correlation function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}]=\\frac{\\mathrm{cov}[\\boldsymbol{x},\\boldsymbol{y}]}{\\sqrt{\\mathrm{var}[\\boldsymbol{x}] \\mathrm{var}[\\boldsymbol{y}]}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The correlation function is then given by values $\\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}]\n", + "\\in [-1,1]$. This avoids eventual problems with too large values. We\n", + "can then define the correlation matrix for the two vectors $\\boldsymbol{x}$\n", + "and $\\boldsymbol{y}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{K}[\\boldsymbol{x},\\boldsymbol{y}] = \\begin{bmatrix} 1 & \\mathrm{corr}[\\boldsymbol{x},\\boldsymbol{y}] \\\\\n", + " \\mathrm{corr}[\\boldsymbol{y},\\boldsymbol{x}] & 1 \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above example this is the function we constructed using **pandas**.\n", + "\n", + "\n", + "In our derivation of the various regression algorithms like **Ordinary Least Squares** or **Ridge regression**\n", + "we defined the design/feature matrix $\\boldsymbol{X}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{0,0} & x_{0,1} & x_{0,2}& \\dots & \\dots x_{0,p-1}\\\\\n", + "x_{1,0} & x_{1,1} & x_{1,2}& \\dots & \\dots x_{1,p-1}\\\\\n", + "x_{2,0} & x_{2,1} & x_{2,2}& \\dots & \\dots x_{2,p-1}\\\\\n", + "\\dots & \\dots & \\dots & \\dots \\dots & \\dots \\\\\n", + "x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \\dots & \\dots x_{n-2,p-1}\\\\\n", + "x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \\dots & \\dots x_{n-1,p-1}\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$, with the predictors/features $p$ refering to the column numbers and the\n", + "entries $n$ being the row elements.\n", + "We can rewrite the design/feature matrix in terms of its column vectors as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix} \\boldsymbol{x}_0 & \\boldsymbol{x}_1 & \\boldsymbol{x}_2 & \\dots & \\dots & \\boldsymbol{x}_{p-1}\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with a given vector" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_i^T = \\begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \\dots & \\dots x_{n-1,i}\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With these definitions, we can now rewrite our $2\\times 2$\n", + "correaltion/covariance matrix in terms of a moe general design/feature\n", + "matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$. This leads to a $p\\times p$\n", + "covariance matrix for the vectors $\\boldsymbol{x}_i$ with $i=0,1,\\dots,p-1$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}] = \\begin{bmatrix}\n", + "\\mathrm{var}[\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_0] & \\mathrm{var}[\\boldsymbol{x}_1] & \\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{cov}[\\boldsymbol{x}_2,\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_2,\\boldsymbol{x}_1] & \\mathrm{var}[\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{cov}[\\boldsymbol{x}_2,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\mathrm{cov}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_1] & \\mathrm{cov}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_{2}] & \\dots & \\dots & \\mathrm{var}[\\boldsymbol{x}_{p-1}]\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the correlation matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{K}[\\boldsymbol{x}] = \\begin{bmatrix}\n", + "1 & \\mathrm{corr}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] & \\mathrm{corr}[\\boldsymbol{x}_0,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{corr}[\\boldsymbol{x}_0,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{corr}[\\boldsymbol{x}_1,\\boldsymbol{x}_0] & 1 & \\mathrm{corr}[\\boldsymbol{x}_1,\\boldsymbol{x}_2] & \\dots & \\dots & \\mathrm{corr}[\\boldsymbol{x}_1,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\mathrm{corr}[\\boldsymbol{x}_2,\\boldsymbol{x}_0] & \\mathrm{corr}[\\boldsymbol{x}_2,\\boldsymbol{x}_1] & 1 & \\dots & \\dots & \\mathrm{corr}[\\boldsymbol{x}_2,\\boldsymbol{x}_{p-1}]\\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\mathrm{corr}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_0] & \\mathrm{corr}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_1] & \\mathrm{corr}[\\boldsymbol{x}_{p-1},\\boldsymbol{x}_{2}] & \\dots & \\dots & 1\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Numpy function **np.cov** calculates the covariance elements using\n", + "the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have\n", + "the exact mean values. The following simple function uses the\n", + "**np.vstack** function which takes each vector of dimension $1\\times n$\n", + "and produces a $2\\times n$ matrix $\\boldsymbol{W}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{W} = \\begin{bmatrix} x_0 & y_0 \\\\\n", + " x_1 & y_1 \\\\\n", + " x_2 & y_2\\\\\n", + " \\dots & \\dots \\\\\n", + " x_{n-2} & y_{n-2}\\\\\n", + " x_{n-1} & y_{n-1} & \n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which in turn is converted into into the $2\\times 2$ covariance matrix\n", + "$\\boldsymbol{C}$ via the Numpy function **np.cov()**. We note that we can also calculate\n", + "the mean value of each set of samples $\\boldsymbol{x}$ etc using the Numpy\n", + "function **np.mean(x)**. We can also extract the eigenvalues of the\n", + "covariance matrix through the **np.linalg.eig()** function." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.0002942160582751197\n", + "4.00052889196957\n", + "[[ 0.98796327 3.01543719]\n", + " [ 3.01543719 10.32805094]]\n" + ] + } + ], + "source": [ + "# Importing various packages\n", + "import numpy as np\n", + "n = 100\n", + "x = np.random.normal(size=n)\n", + "print(np.mean(x))\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "print(np.mean(y))\n", + "W = np.vstack((x, y))\n", + "C = np.cov(W)\n", + "print(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Correlation Matrix\n", + "\n", + "The previous example can be converted into the correlation matrix by\n", + "simply scaling the matrix elements with the variances. We should also\n", + "subtract the mean values for each column. This leads to the following\n", + "code which sets up the correlations matrix for the previous example in\n", + "a more brute force way. Here we scale the mean values for each column of the design matrix, calculate the relevant mean values and variances and then finally set up the $2\\times 2$ correlation matrix (since we have only two vectors)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.07929988282837133\n", + "1.7932442350489923\n", + "[[1. 0.73341296]\n", + " [0.73341296 1. ]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n = 100\n", + "# define two vectors \n", + "x = np.random.random(size=n)\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "#scaling the x and y vectors \n", + "x = x - np.mean(x)\n", + "y = y - np.mean(y)\n", + "variance_x = np.sum(x@x)/n\n", + "variance_y = np.sum(y@y)/n\n", + "print(variance_x)\n", + "print(variance_y)\n", + "cov_xy = np.sum(x@y)/n\n", + "cov_xx = np.sum(x@x)/n\n", + "cov_yy = np.sum(y@y)/n\n", + "C = np.zeros((2,2))\n", + "C[0,0]= cov_xx/variance_x\n", + "C[1,1]= cov_yy/variance_y\n", + "C[0,1]= cov_xy/np.sqrt(variance_y*variance_x)\n", + "C[1,0]= C[0,1]\n", + "print(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the matrix elements along the diagonal are one as they\n", + "should be and that the matrix is symmetric. Furthermore, diagonalizing\n", + "this matrix we easily see that it is a positive definite matrix.\n", + "\n", + "The above procedure with **numpy** can be made more compact if we use **pandas**.\n", + "\n", + "\n", + "We whow here how we can set up the correlation matrix using **pandas**, as done in this simple code" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[-0.10930155 -1.1338364 ]\n", + " [-0.6920137 -2.69228568]\n", + " [-0.53097963 -2.40628649]\n", + " [ 0.24840796 1.93747285]\n", + " [ 0.92770442 1.6461709 ]\n", + " [ 0.08676516 -0.44739247]\n", + " [ 1.19071059 4.74041166]\n", + " [-0.51742846 -1.20249594]\n", + " [ 0.42773158 1.69914412]\n", + " [-1.03159637 -2.14090254]]\n", + " 0 1\n", + "0 -0.109302 -1.133836\n", + "1 -0.692014 -2.692286\n", + "2 -0.530980 -2.406286\n", + "3 0.248408 1.937473\n", + "4 0.927704 1.646171\n", + "5 0.086765 -0.447392\n", + "6 1.190711 4.740412\n", + "7 -0.517428 -1.202496\n", + "8 0.427732 1.699144\n", + "9 -1.031596 -2.140903\n", + " 0 1\n", + "0 1.000000 0.926512\n", + "1 0.926512 1.000000\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "n = 10\n", + "x = np.random.normal(size=n)\n", + "x = x - np.mean(x)\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "y = y - np.mean(y)\n", + "X = (np.vstack((x, y))).T\n", + "print(X)\n", + "Xpd = pd.DataFrame(X)\n", + "print(Xpd)\n", + "correlation_matrix = Xpd.corr()\n", + "print(correlation_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We expand this model to the Franke function discussed above." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0 1 2 3 4 5 6 7 \\\n", + "0 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "1 0.0 0.083403 0.081638 0.077851 0.082580 0.087054 0.067084 0.071565 \n", + "2 0.0 0.081638 0.080709 0.074672 0.079689 0.084583 0.063463 0.067994 \n", + "3 0.0 0.077851 0.074672 0.078363 0.081885 0.084933 0.070663 0.074634 \n", + "4 0.0 0.082580 0.079689 0.081885 0.085926 0.089543 0.073100 0.077437 \n", + "5 0.0 0.087054 0.084583 0.084933 0.089543 0.093801 0.074991 0.079706 \n", + "6 0.0 0.067084 0.063463 0.070663 0.073100 0.074991 0.065650 0.068858 \n", + "7 0.0 0.071565 0.067994 0.074634 0.077437 0.079706 0.068858 0.072376 \n", + "8 0.0 0.076363 0.072899 0.078763 0.081991 0.084705 0.072111 0.075976 \n", + "9 0.0 0.081449 0.078169 0.082995 0.086714 0.089952 0.075344 0.079591 \n", + "10 0.0 0.057455 0.053810 0.062394 0.064081 0.065219 0.059216 0.061789 \n", + "11 0.0 0.061207 0.057508 0.066002 0.067937 0.069315 0.062322 0.065136 \n", + "12 0.0 0.065262 0.061534 0.069835 0.072056 0.073717 0.065576 0.068658 \n", + "13 0.0 0.069644 0.065922 0.073897 0.076451 0.078448 0.068971 0.072353 \n", + "14 0.0 0.074378 0.070704 0.078190 0.081129 0.083523 0.072494 0.076211 \n", + "\n", + " 8 9 10 11 12 13 14 \n", + "0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 \n", + "1 0.076363 0.081449 0.057455 0.061207 0.065262 0.069644 0.074378 \n", + "2 0.072899 0.078169 0.053810 0.057508 0.061534 0.065922 0.070704 \n", + "3 0.078763 0.082995 0.062394 0.066002 0.069835 0.073897 0.078190 \n", + "4 0.081991 0.086714 0.064081 0.067937 0.072056 0.076451 0.081129 \n", + "5 0.084705 0.089952 0.065219 0.069315 0.073717 0.078448 0.083523 \n", + "6 0.072111 0.075344 0.059216 0.062322 0.065576 0.068971 0.072494 \n", + "7 0.075976 0.079591 0.061789 0.065136 0.068658 0.072353 0.076211 \n", + "8 0.079963 0.084013 0.064343 0.067950 0.071764 0.075789 0.080018 \n", + "9 0.084013 0.088554 0.066811 0.070696 0.074827 0.079211 0.083851 \n", + "10 0.064343 0.066811 0.054272 0.056896 0.059614 0.062413 0.065274 \n", + "11 0.067950 0.070696 0.056896 0.059722 0.062661 0.065702 0.068826 \n", + "12 0.071764 0.074827 0.059614 0.062661 0.065843 0.069150 0.072567 \n", + "13 0.075789 0.079211 0.062413 0.065702 0.069150 0.072753 0.076497 \n", + "14 0.080018 0.083851 0.065274 0.068826 0.072567 0.076497 0.080606 \n" + ] + } + ], + "source": [ + "# Common imports\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "\n", + "def FrankeFunction(x,y):\n", + "\tterm1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))\n", + "\tterm2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))\n", + "\tterm3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))\n", + "\tterm4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)\n", + "\treturn term1 + term2 + term3 + term4\n", + "\n", + "\n", + "def create_X(x, y, n ):\n", + "\tif len(x.shape) > 1:\n", + "\t\tx = np.ravel(x)\n", + "\t\ty = np.ravel(y)\n", + "\n", + "\tN = len(x)\n", + "\tl = int((n+1)*(n+2)/2)\t\t# Number of elements in beta\n", + "\tX = np.ones((N,l))\n", + "\n", + "\tfor i in range(1,n+1):\n", + "\t\tq = int((i)*(i+1)/2)\n", + "\t\tfor k in range(i+1):\n", + "\t\t\tX[:,q+k] = (x**(i-k))*(y**k)\n", + "\n", + "\treturn X\n", + "\n", + "\n", + "# Making meshgrid of datapoints and compute Franke's function\n", + "n = 4\n", + "N = 100\n", + "x = np.sort(np.random.uniform(0, 1, N))\n", + "y = np.sort(np.random.uniform(0, 1, N))\n", + "z = FrankeFunction(x, y)\n", + "X = create_X(x, y, n=n) \n", + "\n", + "Xpd = pd.DataFrame(X)\n", + "# subtract the mean values and set up the covariance matrix\n", + "Xpd = Xpd - Xpd.mean()\n", + "covariance_matrix = Xpd.cov()\n", + "print(covariance_matrix)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We note here that the covariance is zero for the first rows and\n", + "columns since all matrix elements in the design matrix were set to one\n", + "(we are fitting the function in terms of a polynomial of degree $n$). We would however not include the intercept\n", + "and wee can simply\n", + "drop these elements and construct a correlation\n", + "matrix without them. \n", + "\n", + "\n", + "\n", + "We can rewrite the covariance matrix in a more compact form in terms of the design/feature matrix $\\boldsymbol{X}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}] = \\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X}= \\mathbb{E}[\\boldsymbol{X}^T\\boldsymbol{X}].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see this let us simply look at a design matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{2\\times 2}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{00} & x_{01}\\\\\n", + "x_{10} & x_{11}\\\\\n", + "\\end{bmatrix}=\\begin{bmatrix}\n", + "\\boldsymbol{x}_{0} & \\boldsymbol{x}_{1}\\\\\n", + "\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we then compute the expectation value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}[\\boldsymbol{X}^T\\boldsymbol{X}] = \\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{00}^2+x_{01}^2 & x_{00}x_{10}+x_{01}x_{11}\\\\\n", + "x_{10}x_{00}+x_{11}x_{01} & x_{10}^2+x_{11}^2\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is just" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] = \\boldsymbol{C}[\\boldsymbol{x}]=\\begin{bmatrix} \\mathrm{var}[\\boldsymbol{x}_0] & \\mathrm{cov}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] \\\\\n", + " \\mathrm{cov}[\\boldsymbol{x}_1,\\boldsymbol{x}_0] & \\mathrm{var}[\\boldsymbol{x}_1] \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we wrote $$\\boldsymbol{C}[\\boldsymbol{x}_0,\\boldsymbol{x}_1] = \\boldsymbol{C}[\\boldsymbol{x}]$$ to indicate that this the covariance of the vectors $\\boldsymbol{x}$ of the design/feature matrix $\\boldsymbol{X}$.\n", + "\n", + "It is easy to generalize this to a matrix $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$.\n", + "\n", + "\n", + "\n", + "## Towards the PCA theorem\n", + "\n", + "We have that the covariance matrix (the correlation matrix involves a simple rescaling) is given as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}] = \\frac{1}{n}\\boldsymbol{X}^T\\boldsymbol{X}= \\mathbb{E}[\\boldsymbol{X}^T\\boldsymbol{X}].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let us now assume that we can perform a series of orthogonal transformations where we employ some orthogonal matrices $\\boldsymbol{S}$.\n", + "These matrices are defined as $\\boldsymbol{S}\\in {\\mathbb{R}}^{p\\times p}$ and obey the orthogonality requirements $\\boldsymbol{S}\\boldsymbol{S}^T=\\boldsymbol{S}^T\\boldsymbol{S}=\\boldsymbol{I}$. The matrix can be written out in terms of the column vectors $\\boldsymbol{s}_i$ as $\\boldsymbol{S}=[\\boldsymbol{s}_0,\\boldsymbol{s}_1,\\dots,\\boldsymbol{s}_{p-1}]$ and $\\boldsymbol{s}_i \\in {\\mathbb{R}}^{p}$.\n", + "\n", + "Assume also that there is a transformation $\\boldsymbol{S}^T\\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{S}=\\boldsymbol{C}[\\boldsymbol{y}]$ such that the new matrix $\\boldsymbol{C}[\\boldsymbol{y}]$ is diagonal with elements $[\\lambda_0,\\lambda_1,\\lambda_2,\\dots,\\lambda_{p-1}]$. \n", + "\n", + "That is we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{y}] = \\mathbb{E}[\\boldsymbol{S}^T\\boldsymbol{X}^T\\boldsymbol{X}T\\boldsymbol{S}]=\\boldsymbol{S}^T\\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{S},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "since the matrix $\\boldsymbol{S}$ is not a data dependent matrix. Multiplying with $\\boldsymbol{S}$ from the left we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{S}\\boldsymbol{C}[\\boldsymbol{y}] = \\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{S},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and since $\\boldsymbol{C}[\\boldsymbol{y}]$ is diagonal we have for a given eigenvalue $i$ of the covariance matrix that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{S}_i\\lambda_i = \\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{S}_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the derivation of the PCA theorem we will assume that the eigenvalues are ordered in descending order, that is\n", + "$\\lambda_0 > \\lambda_1 > \\dots > \\lambda_{p-1}$. \n", + "\n", + "\n", + "The eigenvalues tell us then how much we need to stretch the\n", + "corresponding eigenvectors. Dimensions with large eigenvalues have\n", + "thus large variations (large variance) and define therefore useful\n", + "dimensions. The data points are more spread out in the direction of\n", + "these eigenvectors. Smaller eigenvalues mean on the other hand that\n", + "the corresponding eigenvectors are shrunk accordingly and the data\n", + "points are tightly bunched together and there is not much variation in\n", + "these specific directions. Hopefully then we could leave it out\n", + "dimensions where the eigenvalues are very small. If $p$ is very large,\n", + "we could then aim at reducing $p$ to $l << p$ and handle only $l$\n", + "features/predictors.\n", + "\n", + "### The Algorithm before theorem\n", + "\n", + "Here's how we would proceed in setting up the algorithm for the PCA, see also discussion below here. \n", + "* Set up the datapoints for the design/feature matrix $\\boldsymbol{X}$ with $\\boldsymbol{X}\\in {\\mathbb{R}}^{n\\times p}$, with the predictors/features $p$ referring to the column numbers and the entries $n$ being the row elements." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix}\n", + "x_{0,0} & x_{0,1} & x_{0,2}& \\dots & \\dots x_{0,p-1}\\\\\n", + "x_{1,0} & x_{1,1} & x_{1,2}& \\dots & \\dots x_{1,p-1}\\\\\n", + "x_{2,0} & x_{2,1} & x_{2,2}& \\dots & \\dots x_{2,p-1}\\\\\n", + "\\dots & \\dots & \\dots & \\dots \\dots & \\dots \\\\\n", + "x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \\dots & \\dots x_{n-2,p-1}\\\\\n", + "x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \\dots & \\dots x_{n-1,p-1}\\\\\n", + "\\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Center the data by subtracting the mean value for each column. This leads to a new matrix $\\boldsymbol{X}\\rightarrow \\overline{\\boldsymbol{X}}$.\n", + "\n", + "* Compute then the covariance/correlation matrix $\\mathbb{E}[\\overline{\\boldsymbol{X}}^T\\overline{\\boldsymbol{X}}]$.\n", + "\n", + "* Find the eigenpairs of $\\boldsymbol{C}$ with eigenvalues $[\\lambda_0,\\lambda_1,\\dots,\\lambda_{p-1}]$ and eigenvectors $[\\boldsymbol{s}_0,\\boldsymbol{s}_1,\\dots,\\boldsymbol{s}_{p-1}]$.\n", + "\n", + "* Order the eigenvalue (and the eigenvectors accordingly) in order of decreasing eigenvalues.\n", + "\n", + "* Keep only those $l$ eigenvalues larger than a selected threshold value, discarding thus $p-l$ features since we expect small variations in the data here.\n", + "\n", + "### Writing our own PCA code\n", + "\n", + "We will use a simple example first with two-dimensional data\n", + "drawn from a multivariate normal distribution with the following mean and covariance matrix (we have fixed these quantities but will play around with them below):" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu = (-1,2) \\qquad \\Sigma = \\begin{bmatrix} 4 & 2 \\\\\n", + "2 & 2\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the mean refers to each column of data. \n", + "We will generate $n = 10000$ points $X = \\{ x_1, \\ldots, x_N \\}$ from\n", + "this distribution, and store them in the $1000 \\times 2$ matrix $\\boldsymbol{X}$. This is our design matrix where we have forced the covariance and mean values to take specific values.\n", + "\n", + "The following Python code aids in setting up the data and writing out the design matrix.\n", + "Note that the function **multivariate** returns also the covariance discussed above and that it is defined by dividing by $n-1$ instead of $n$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from IPython.display import display\n", + "n = 10000\n", + "mean = (-1, 2)\n", + "cov = [[4, 2], [2, 2]]\n", + "X = np.random.multivariate_normal(mean, cov, n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we are going to implement the PCA algorithm. We will break it down into various substeps.\n", + "\n", + "\n", + "The first step of PCA is to compute the sample mean of the data and use it to center the data. Recall that the sample mean is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu_n = \\frac{1}{n} \\sum_{i=1}^n x_i\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the mean-centered data $\\bar{X} = \\{ \\bar{x}_1, \\ldots, \\bar{x}_n \\}$ takes the form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\bar{x}_i = x_i - \\mu_n.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you are done with these steps, print out $\\mu_n$ to verify it is\n", + "close to $\\mu$ and plot your mean centered data to verify it is\n", + "centered at the origin! \n", + "The following code elements perform these operations using **pandas** or using our own functionality for doing so. The latter, using **numpy** is rather simple through the **mean()** function." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "df = pd.DataFrame(X)\n", + "# Pandas does the centering for us\n", + "df = df -df.mean()\n", + "# we center it ourselves\n", + "X_centered = X - X.mean(axis=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we could use the functions we discussed\n", + "earlier for scaling the data set. That is, we could have used the\n", + "**StandardScaler** function in **Scikit-Learn**, a function which ensures\n", + "that for each feature/predictor we study the mean value is zero and\n", + "the variance is one (every column in the design/feature matrix). You\n", + "would then not get the same results, since we divide by the\n", + "variance. The diagonal covariance matrix elements will then be one,\n", + "while the non-diagonal ones need to be divided by $2\\sqrt{2}$ for our\n", + "specific case.\n", + "\n", + "\n", + "Now we are going to use the mean centered data to compute the sample covariance of the data by using the following equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\Sigma_n = \\frac{1}{n-1} \\sum_{i=1}^n \\bar{x}_i^T \\bar{x}_i = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\mu_n)^T (x_i - \\mu_n)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the data points $x_i \\in \\mathbb{R}^p$ (here in this example $p = 2$) are column vectors and $x^T$ is the transpose of $x$.\n", + "We can write our own code or simply use either the functionaly of **numpy** or that of **pandas**, as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0 1\n", + "0 3.996236 1.996506\n", + "1 1.996506 1.988768\n", + "[[3.99623571 1.99650629]\n", + " [1.99650629 1.98876836]]\n" + ] + } + ], + "source": [ + "print(df.cov())\n", + "print(np.cov(X_centered.T))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the way we define the covariance matrix here has a factor $n-1$ instead of $n$. This is included in the **cov()** function by **numpy** and **pandas**. \n", + "Our own code here is not very elegant and asks for obvious improvements. It is tailored to this specific $2\\times 2$ covariance matrix." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Centered covariance using own code\n", + "[[3.99623571 1.99650629]\n", + " [1.99650629 1.98876836]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABvmUlEQVR4nO39e3RUdZr3DX9+u6pyPhgrMVChNCYhREMHSg6xEYQGxxPaTZzpsRuau1FEZMbFfbfTPf2o9/Os53nnRe++ewbXw3JeRFSYoaXH6RmgW2iVaWwQTMvJQJpoiKkYTFIhJkVMQkKSqtr7/WPX3lRVKicI5MDvsxaLVNWuXb/aVXXta1+H7yU0TUMikUgk4xdltBcgkUgkkqtDGnKJRCIZ50hDLpFIJOMcacglEolknCMNuUQikYxzrKPxounp6Vp2dvZovLREIpGMW06ePNmiaVpG5P2jYsizs7M5ceLEaLy0RCKRjFuEEOei3S9DKxKJRDLOkYZcIpFIxjnSkEskEsk4RxpyiUQiGedIQy6RSCTjHGnIJRKJ5Cp47ZCbUndL2H2l7hZeO+S+bmuQhlwikUiugqIpqTy7s8w05qXuFp7dWUbRlNTrtoZRqSOXSCSSicK83HReXe7i2Z1l/Kj4Vn519CteXe5iXm76dVuD9MglEonkKpmXm86Pim9l04fV/Kj41utqxEEacolEIrlqSt0t/OroV6xfnMevjn7VJ2Z+rZGGXCKRjDnGQgJxqBgx8VeXu3ju/mlmmOV6GnNpyCUSyYgyEkZ4pBKI1+OEUF7fFhYTN2Lm5fVtI/YagyENuUQiGVFCjfBrh9xsPewOM8Kl7hZWbTs2oIENTSBu3H/W9HiHG3u+HhUlzyzM7bOuebnpPLMwd8ReYzCkIZdIJCNKqBE+e76Dl/ZVsm5RDvNy001Dek+efVADOxIJxJE6IYx1ZPmhRCIZcUKNcIkri80Ha+i45A8rzSt0pLJ6+wkenD6JQ1XN5v2l7hbK69sompIalkC8O9d+xcbcWMv6xXkTzoiD9MglEsk1ILSK41BVMwvz0/t41vNy03lw+iR2lzWwMD8jzGO3KIxYAnG0K0quB9Ijl0gkI0poFce83HSS4628tK+SEpcjzLMudbdwqKqZElcWe8oaAI1DVS1morC/BOJwPOrItdyda5+Q4RVpyCWSccZrh9wUTUkNM0RGOOJ6Jtj6I9QIl7pb2HywhheWFhBQ4fuznTy7s4x1i3LYfLAmxKBq7C7zUOJyMC83PaqR7e/+oa7F2MeVnBDGOtKQSyTjDKMSI9RYGrdHE+MEE3oyefe0hwcKM1mz4PJ9ry538fpHNWHrP1TVQonLwftnmvj+7JYRM7LRTmxXckIY6whN0677i86ePVuTMzslkivHMN6jpe0x0JoeKMzk0RkOgLATTOQVw2uH3FgUwjzzrYfdbNz/BW+umj3q72csIoQ4qWna7Mj7ZbJTIhmHjLa2R39renW5i73ljTy5/Thrd5w0jXi02u2iKals3P9FWGni5oM1PHf/1OvaTDMRkKEViWQcElmJcaWledG4mhj8vNx0npiXzaYPqwH4xO3t94phXm46b66azbM7y/qUJkqGh/TIJZJxxrXW9hhuN2RoG7xxgilxZeEPaINeMYzFK4vxiDTkEsk442q0PYaiPTLcbkjD8But+OsW5fCHz5uwWQRxNoVtpbX9nmRuhBrv64E05BLJOGMo2h79Gez3zjSydsfJMA967Y6TnPN2hj0v1FNemJ8x4EnCMPwb93+hN/4c0MMqb66aQ4kriznZaX08fON1Rls1cKIgDblEMgHpLzzySNFkANbuOMnG/WdZu+MkgFllEupdGyGSPWUNWAaxFPNy01mz4HZ2l3n4VlYqW1bOory+jZyMRE7VtbFuUQ7l9W1sPexm9fYTFE1J7ffK4vWPasaNhO1YQRpyiWQMMhz51WjbAjxQmNknPLJmQS5bVs7CF1DZ9GE1voDKlpWzwozpukU5vLSvkoX56RyqauaFpQVsPtjXuEauzQiRVJ7vAPSTwuaDNWbzz9nz7by0r5Ln7p9qXkFEu7J4+t6cUZ+BOd6QhlwiGYMMJ+HY37aPznAMmkhU1fA+kud3lfPWkVruyUtnd5mHHxXfSqEjlZnOVP7n7jNRTy7P7yqPGiIBvfln88Ea8jIS2V3mYZnLEdYcFI0bRbFwJJENQRLJGGU4TT/RtgWi3meEU+67I5M9ZQ3E2RTeXDXHfKzHF8AX0FjmyuIPnzfhD6hYLQrrl+SFNe9ENgD1V674k3dOsbusgbnZaVQ3dw7ZKG/cf9ZULHzu/mlXdSwnCte8IUgIYRFClAkh9o7UPiWSicxg4ZPhlObNy02nYFKyuS1gVpAkxFpND/eNwzUAbFk5i1cen8kLSwvo9qls2Pc5z+4sY/2SPGJtFuJsCu+daaTbF6Dbp7J+SR5rFuRG9ZRffqyoz9oMGdqth93sKWugxJXF5+c7mOkMv3ro7xg8v6v8mlWzjKcxckNlJEMr/x34fAT3J5FMaAYLnwynNK/U3cKfG9qwKoKth2t497THjE1blMsli6pGWEx8zYJclrkcVHja+VHxrQRU/fE1C3Lo9qlBz9xBQNVfZ6gnl6IpqazdcZJfvl/FC0sL+P7sKQAcr201E5/9HYO1O06yt7yRV5e7SIi1sm5R35j51Rjd6zE16HozIqEVIcQU4F+ADcBzmqY9MtD2MrQikej0Fz6JlF+NvB1tH68ud1HhaWPDvkosCiTEWM1wyLpFOQTUviJS/YVkVm07jqZpWBSBzaKwZeUsQBfB+qCiaUjhnud3lbO3vJEn5mWH7TuyQzRyDaGhGuMxY/2RgmEjfdzHOv2FVkbKkP8H8DKQDPw0miEXQjwNPA1w6623zjp37txVv65EMhGIFgseSpu8sc3rH9VwT56dNQtyKXW38MKuP1Pr7SIxxkKszRJFMvby/iJPFmt3nMQfdL+NuPimA9Vh9xke/UAnl4He23C3K3W3BCcJZZp65aGThK5Uunc8xuCvWYxcCPEI8LWmaScH2k7TtNc1TZutadrsjIyMq31ZiWRC0F/4pL/SPOM5cNk7zbopjo37v2DrYTdrd5ykqb0bi4DO3gAZybFRjThE7xB9pGgy+ZOSeXPVHLasnMXmgzXcd0cmqgb5k5L7lCo+UJjJu6c9wOXYc2jDz7bSWu7JtQ8YGhoshKRPEspkd5mHhfnpYSeRKw2HTLSO0pEQzboH+K4Q4mEgDkgRQvxK07QfjcC+JZIJRainHRk2MBKJkUbXeE55fRvHvvTyz3+sZv2SPAIqPDQ9k7eP1pFtT+ClfZXYLAKrRSEh1orjpnjOnu9gfl50/e1IT/a1Q24eneHg5ceKzPsW5mewu6yhX6/10RmOYKljC+e8nWw68AX+gMb3Z2fxz3+sJqBq3GpPYFFBBqu3n+gjTzuUCT6heuV7yjyACJvxOVwm4tSgq/bINU17XtO0KZqmZQM/AD6URlwiiU5ooq28vs0MexjGPZpmivEci6InC3v9Khv2VXLkixZ2Hq3DqghqvV1kpcXTG9BQNY31S/Jo7uhhfl46R6pb2Hp48ORgZBLQqDjJTInljSNfhnmtWw+7WbXtWFjNd7dPpas3gBDwzvF6ev0qFkWQk5HYrzztYLoxoUb3lcddLHNlhc34vBKuRqtmrDKideRCiEX0EyMPRSY7JTcC0eLcz+8qp6m9m4+qWrg7x85nje2mR25R4ONqL9ufmNtnX4ZBW5ifzp4yD0KAqoFVEcTHWLjvjlvYU+bhTkcKX7Z0YlGEGQYZzrAG43Ump8bxmaedF5YWALBhXyWxVoXH7soiJyORl/ZV8sLSArO5x4g3l7iygmWLeky9xOUIi2tf6TEsr28zh1AszM/g/TPnee7+qVETuBOZ6zJYQtO0g4MZcYlkPDOcGuRoZW57yxs5XttKwaRkjlS34EiNY/PBGuoudPLSvkruybNHfV2j7G93mYf8SUkYDZl+VeO7MyZzqKqFF5YW0NjWzd05N4c9d82CXN5cNdv0OAd6D8brVHjasVoEhY5U1izIZUWxkx6/yh8+a+pjxEPjzX/4vMlcm1URZnfolXrPRq7AosBL+ypZtyiHVx6fyXP3T+WlYHWORLboSyTDYjg1yKFhh+VbP2HtjpNsWTmL9UvyqPC0k5Fk44ynncQYCzuP1oUZx0gMYzk/z87Z8xexKgJFgE0R/OZkA+sW5bBmQS7rFuWYteKhhjt0P0aN9/O7ysNa7IumpPL8rnK2ldayfnEecTYLT2w7zo/eOMquTz0UZCbRfLGX/ElJZl15aOij+WIPvX6VXr/K/Lx0/KqGVRG8dqjGfK3I9zTUevCAiqn5snH/2bCBzhJpyCWSYTFcHRDDwy11e/EFVCo8bWw+qJcLNl/0kRJnoa71EvmTkgY04kZS9HhtK7FWhfgYCz+c68SvaqBp1DR3mqPSnr43J0zWNjTG/uzOMio8uoH/7SkP/+3NY/z2lMes8d5b3og/oNJ8sYctK2cRUFWOVLeQmRrL2aaLTJuUxNnzF6m7oMvehsabm9q76fGrLCnI4OS5VlYU6+u705HM3vK+8rnDqTp5ZmEuaxbkhjUjrVmQe0OFVQZCGnKJZJgMp3U+NOxgsyj88v0q7pyczMfVXqY7UmjvDuBMi+fs+Yv9JiQNYxlQ4bG7stj2hF4a6Lw5UY9hC8E5b1e/JxXj5KPHl9N5aV9lsKRQw6/qyVHjddYvycNqUdhb3shvTtQTUCEtwUZtSxe3JMfi+aabFcVOdh6tY+vhy/FrgLm323lxaQGl7gs8OD2T98408eLSAh6cPpktK2fxSNHkqxLCGomSwYnYng9yZqdkAnM1sycHYqjzMo3ORiPMsX5JHr947yxHqr1kJsdyxtOOy5nKuQuXWFHsZMO+Sv7k9vLWqvBkp7HW/urKOy75zURjtPcKuldunHzmZqexu6wBqyJYvziPbaW1rN1x0uzA3LJyFr85Uc/uoEZKa1cvLR09nPG0E2NVWFrkIDs9kb3ljWw+WMMDhZk8v6vc7MY01lPoSAlLRs7LTScj6XITznCNeH8lg4auy1A+58jO0ND9jmekRy6ZsFytpkY0723rYTf/7c1jrFuUEybZuvWwe0CvTp8YX4Vf1ci2J9B8sQeAh4sm80BhJp/UXMCq6J61sdbnd5Xz/K7yAfdb6m5h6+EvmZ9nZ09Zg+nVGwMcznk7sSi6quG20lpKXA6O1bYCIIDkeGuYPvnC/AzePe3h/TPnKXFlcaiqmXvy7HjauilxOQgENFZvP07HJT91Fy7x6nIXORmJ/PuJelZvP87Ww262ldYSYxFUeNo59qU3bK1X6lEPVDJ4pXmLiSSRK2VsJROaq9HUiNbC/uO3jnHv1HTK6i4blhd3l/PO8Xr+dfVcc9/G1QAQLOeLpcLTgVUR/M2iXLaV1tLjC4AQTL0liQpPOzEWQazNwvoleWzcX4UvoBEfYzHLCCOvMJ7fVc5vT3m4O+dmTtW1cdvN8ZTVtZFtT+Cct8ssHfzlB1VYhP6e/KqGL6ARYxF8f/YUdh6tY3mxk9+dbuTWmxP4zNNuytoapYsb9lUy05nK3z9YYGq5ABQ6UiiaksoHFU1mYxKgNyUpwkx2GhK5V6qZMtiV1WuH3GZpovE596ctYzAe2/PhOpUfSiRXykjHLq9k9mQk0by3v39wGmXB0WXP7izjJ++UsfNoHT9/aFqYoTEMFcAdk5Kp8OhTcwyp2RlTUkEIHKlxphG3KIJuX4AN+yq55FNRRLhSoUWB1dtPmMepqb2brt4A386180BhJhWedgBqvV0sc2UBsHH/F8zPs2O1KNiTYvEFNEpcDrY/ORfnzYksL3by9tE67rvjFhrbuvlOQQbWkJq+gAorip185ukwdcxjrfrjFZ529pQ18OpyF86bE8m2JwDgC2howF/PnoKqwS/erwxTYzROcA8UZg441s34DM95O81EqXGlEjpn1JhEtDA/Pfg5p4e9TiQTrT0fpCGXjBFGWlr0SmdPhp5QjJPIwvwMM7FZ6EjlgcLMqFNvQp9rnASe+pcT/KlGDy8oAs542nGmxXOk2kvh5GTOebsocWURa7PQ49dlYw0URfDG4cule0Z35BPbjrN002FO1bXxYrAkr+5CF73B5yoC9pQ1sGFfJY/d5eCtVXOZMSWV+tZLpMRZef9ME6B7q6oGhY5ks9577u121i/JMw3sMwtzWVrk4C9nZdETPMn4AipWRXfxfQGNCk8bdRc6qfV2EbybHp/K70438tMH8qlp7mR3WQObDlSHDbx4dIZjwLFuhgHPyUgEYPX246zadpzfnKgHLs8ZNcbT7SnzMDc7jT1l+kkjmqcfepU1kQY+y9CKZMww0tKiWw+7eWlfJcuC3YX9qQBGW4NhcFZvP063TzWn5fT4VH72YD6feTrMqTefn+/gkaLJPDrDwertJ3ju/qmsWZBrhiUAM9wBoAEZSTE0X+zVk5wlRWHbAsRYRLCiBDPksmXlLCo8bfyv31cS0KDElcUrj8/kJ++UsbtMF66KsSr4A6rZlGOzCDKSYvG0dZv7djlTqfB04Lw5nsa2biyKMBOdD03PZNenHp67fyob93/BY3c52PWph8fucvDO8Xq93DFIYbCLtNsXQNX0E0jo/zEWwc8enMbBymY+dnuJsyk8vSCnz2c7kJTv5WlGt4S9x+1PzOnzfEMXptCRwlcXusKuZiITvyOdAL9eXFMZ2+EiDbmkP0YydvnaITdnz7ezu8xj7m8oP9rIdvg4m8KaBTlsK60loGoEVI0ev0pJ0LgHVM1sia/wtJknj9+e8mBR9JCJpsHUzCTONLQTaxH0BDQyU2JZXHALALs+baDHryLQDb0ChPa6xFgEUzOTzRj2g9Mns6esgXvy0vm4WvcmbRbB3NvtHKnu37t0OVMpq2vTL8WDBvfFYCOSceJbXuzkvTNN3Dk5mSPBMskKTzsWBfwhi4oPrmN3WQMK+hWEYejn59k5WnMBBHpj0bxsXj9co08bWpxHQqw1zKAan/u8XDs719xtfn4WBf5pf5XZ8g96x2hkPiI0Rm58Tt+bqQuADUVud7wgY+SSMc9Ixy6LpqRyqKolbH+hjTL9EdoOv8zl4K5b09j0YTVPzMvmJ38xFX9AN9xVTXrc26II1i/J493THgIqLHM52F3mQSDwBTQSYiw40+I509COIqA3aMSb2nvYU9ZAZWM7PX6V3IxEkuKspCXYUIGkWAs2i8ASfI7RNv/mqjm88vhMCh0pHKlu4TZ7Ai8sLUAIwZHqFqY7Uvp9b39uaEegnyRuvTmBxQUZbDpQzU/eOcU/flDFdwoyUDWCEgJepk1K5kww9u5XIdseT7xNId6m0BvQzBJF580J+FUNi6Ib2hPnWlEUgUDwSNFkkuOt2CwKcTaFbaW11F3o5L+9eYythy/L3cbZFE7VfcPzu8rNz0/XQr/sbMZYBDFWJay5yIiRG+GSLStnYVEEe8sbJ1RlykBIQy4ZE4x07HIo+zNi2qGx7ed3lbPknw6y9XAN9+Ta2Vd+nmNfXkAR8NpHNdQ0d/KDuVPQNN2w3nfHLWxZOYua5k4+qGjCosChqhZS460ENI35eXbaL/mobtYTc0IIZjpTaWrvwZ5oo9evUdGoS83WNHdiT4yhtcsHwMWeAMW334wQl99XIBiTfnL7Mc542om3KXx1oYs/ub0EVA0h4GKP34xVR+JX9UQk6ElRAXT1+Nld1oAvoHLO28Wesgb+3NBGiSuLqvMdpMRZ0QBnWhy13kusWZDDc/fnI9CN9t7THhrbLmGzCFQV7s6x0+1T6fHrYShDZGtudhrTJiUzJzuNnUfrWJifzoZ9lazadhyAv7s/3zTAxucRUPWmJaPqxmpR+MlfTAUwddCjlSZuWTmLb2WlDqlpayIgQyuSMcFIN+8MZX+hre/GOLRX/usLunoDgF6t8R8n9ZCHUVIXUDV6AxqxVoWHvzWJPWUeM34+JzuNU8GKlk0HqukJ6o5k2xOoDcbHjZCJIzUOT5veJflxtdd8HPR4en3rJVRNQx3k52mEYgQQH2PhluRYM+moaTDcX7dh/5cXO3V9lUlJlNW1kZZgo7XLx3RHClVfXyTWqk8P+pPby4eVzYBezfJXs7LYebTOVGd0OVN5YPpkjn/p5UBlM/Pz0sMUH9893UCFp4O52WlUN3eGjYM75+1kb3kjt94cT4WngxKXgz98/rWZjxjouzFeR7kNhoyRS8YFoQY4tBbb+NFebWIq0sAbCTWjhvrOkASepulxZyH0GHdmSgx1rd0IMGutjQ5IAeRkJPKDuU7zMr/C08Yv3juLX9WIsSr0+sMVnlYUO/n1sbo+xloJWueh6kEZxtwI1xhG90oQQG5GIg3fdJOZop8UHKlxNHX0INDwq/rjX7Z0EmtVWObKotunmsdAn/EpWObKQhHw9tE6CjKTONt0kXuC2uih+Ypnd5aRl5HIsdpWM3lrcCX14RC9/n+ihFdkjFwyLggtQzRU+tbuOEnRlNR+SxKvRloWCIpZtTMnO40KTztPzb+debl2NPTY9Np7c8jPTKKutZs4qzCN++rtx3nvTKPu/QKeby5RE+JVbjqgT8gBPbYbydtHLxtxi6LXlAt0T3Y4on4auvFvau9BEdDR7aefyEq/9wOI4PuoaekkzqZQ6+1iUope8ZISZ0UIgUAPyVgVgarpJ68/fN5EZkosGnroZs2CHG6zJ5KdnkhGUgyVTRfJn5TE6fpvzLFvWw+7zauh6uZOszw0VG9GnzhUHRYe23Sg2qwfj8Zrh9y8e9rTx2g/UJg5rgdHDIbUWpGMKUKbcH5UfKt5/ydub7+XyMPRz4jc/7bSWmwWhdyMJI7XtlLoSGHzITeCy57upg+rAd0jb7/kD5b3BcIqOJYUZHCk2svecn2owt5yDxlJsXT7AvgCGhd7AgO+74CqhZUIDhfjhKBqmCJY0Rjo+lvTMEMihkd/vl2XEmjt8qEI/YTjVzW+68riTkcyL+2rxGoRZjgqxqonM787Y7LZ6WkoJsZaFf52cR6gNzY9dpcjrBz0TkcyG/d/QaEj9Yo9Z2MYtVFjPpG88YGQoRXJqNJfLPufP6zmY7eX9cEf/mAlicONiRrlbnE2hb+7P9+cFK9q0BO00NaIcrsVxU7+7Xg9akjC0EAR8PzDBbzx0Zc0dfSYJXtxNv2i95JvfAtnGyc1m0XwSJGD3WUNZNsTaPjmEr6Ahs0iUISeQ7AnxtDUoZ8ALAoUTEqh6nwHPlXjxaUFFDpSefe0h8a2blNy16C/PMZwYt0TNT4OMrQiGaNE6+hcu+Mk5Q1tpjKfMehgoJLE4UjLGsMT7sm1Y7Mo1DR3sn5JHvmTkgmoGmkJNiDciIMeCom1iDAjHhsMmagaHDrbwtcdPcRYBFVfX2SmM5WAqg3biA8U/hhNbBa9nLLtUi/THSnUervQNJgXPI6K0GvJDSOel5HId2dkUeFpRyiCFcVO9pY3ml2dd+dEn4YUynA+16t5znhHGnLJqBKpZ2J08m1ZOYu7cy//0O/OtQ9YkjjUGnRj3BrA3y7OY8vKWfznpw1s3F/FI0WTsVoErV0+bCG/DGdanPl3V4hRtgjoCdY4C+BIdQt3OlL42YPTiLUq/Lmh3WybHw7X6hrZ0l9N4hDQgHunphNvUzh4tjmktlwjMyUOfyBYYaNdlgk4d6GLd097zETvOW8XVecvmh7yQLIMRt4j9HPdVlpr1pgPxETUUhkMGSOXjDqhHtS8XDvPBrWqXzvkZsvKWcDlqhVDujTycrw/repIb6y8vs3c57M7y7hjUjJoGmrQD7ZZdKMT6kTXtUaPXYfaaOPPqvMdbNxfRWZKHLXdXVGfN1oEBqtljIIRUgE4UNlMWoLNvMJYUezkdF0bu8samO5I4YynHZtF1zjffMht6sasX5TLp1+1cqTay/y8y9rtkfmKyDBI6EkdYFtpLXvLG83Sw2ghuXdPe/igomlI34WJhPTIJdecwapKQj2oyvMd5jbG4N3QbsxonZmvf1QTJpJkiCi9/lFNn7UY+yyvb2Nhfjofu70oiuCvZmXx0r5KEmMs/dZuZ6bEDvg+LQr4gqGU0LrwONvI/MyuwqG+YowadQMjCbq4IIPzbd2c8bQz3ZHCZ43txFoV4mwW/XnBY2g0UhlG/OS5b8K+C/2FQeblpvNI0WRAT3Q/u7OMLStnmUM6+vPmgX51yycy0pBLrjkDXUIPtaOzv5PBqm3HuCfPzuaDl+VQtx52s3H/Fzx9b06/z7cosLvMQ7Y9HptF4Z3j9QihV2kIdEGqSLvZ3NEzYPzamZbQ5z5FEKYTcjVcgUMdFaPe2/h7oO3gsshXKCfPtXKgspklBRnsXb+Ax+c4ibEq3HfHLWz6sBqrRfDi0gLumJxCr18lxqrwN9/J481Vs/t8F3519CvuybWzrbQ27DN6dIaDoojuTONE3t+AiJcfK4o6SWk8CGJdDbJqRXJFDLcTs79KgqHuJzJ8YoxRW78kz+zK3HSg2mzsiZxIH1mSuHbHSXPiu9GoYhBjERQ6UiirG7oXZxHhoZaxSpxNMU8shiLjlS47MUah4v/zkHnbOIHedetNwVJOXYd9adFks/M1M0XPN9xmTwwrG4W+oRTjtqHMGC08Ml4HRFwpsmpFMqIMVz889BK6YFKyeb/hXYWGWqJ5UPNy03mgMJO1O06ycf9ZM2EJerPHpgPVdPX6qfC0c0+evY8RL69vM5//6ofVdPUG+KtZWX2MOOh6KMMx4jA+jDhcvjoQMKgRtygCW0Q8JzHmssno7FV5cvsxAFMv/c1Vs3l7zd18f3YWZXVtCAHfnz2F9Uvy+GNlM3vKGnh0hoNnFuaGaaQY+igAr35YHWbU+7tSuxGTmv0hDbnkihju7MPQH92fG9rC1OuGOkTi0RkOc7bkE/OyWb8kj5f2VdLtU+n2BQioMG2SPqHe6BAM3bfx/FK3l/SkGN4+WseR6pY+4YWeyLrDARih8Pd1J86mDOqJO9PiSY4Pr4fo7L18IhDAh5XNvLi73DxRgn7MG77pxhUsv1yx9Si//KCKOJvCt3PtlNe3hQ3gMJiXm84T87IpdXv5VlZqmJ54ZKx7og6IuFLG6ddQMhYYar1u6I8uIdbK+iV6k4/hXa966zgznX3DK4aHvmrbMdMw2ywKVkXwzwfdvPz7Spa5soLKfRqFjhSaO3qY6Uxlw75KfvTGJ+brvnvawy/fr8QX0LAqeju7wUAGLS5Ka30o47XPZ7Da9qRYC7XeLi506snNaAlbDb1W/NfH6rAo+ui5lW8eY/X24zx9bw4PF0021RZ7/SqzbtNFxSwKUU/c/SW9DUKv1AYaxgwjPzpwrCMNueSKGeqlbeiPztCOXr8kz0xkIeB4bWu/Hvo9eXY27KvkqX85wZaVsygINu5oGvz+z41mNUdmSiwPTc/ks8YOFAFHqr2kxFn5P/ec4Tcn6iira6MoKwVtGC033eMlZjKCxNmUMEkBR2pcn4Sthp4X+Kr1Ej+c62TDvkqOVHuxBJO7vzlRz6YD1dgsl5OqR6q93Dk5xWzLB8Iql4bjYRshuVBCDf1Ijw4c68hkp+SKuBqFOaN70xfQjYPNophJy/7aqp/cfowPK5tN3Y5QaVibRZgt8b0BjbyMRGq9XWFjyeDydBzJyBFjVVCDx9mvaqxfnEdd6yVTDVFDnxZ0pNprPqfE5eD7s51h35eRljE2nj/RWvWvWbJTCOEUQvxRCPG5EKJCCPHfr3afkrHP1V7a+gIq3T6VpxfksGXlrOAU9Iw+yVCDpxbkkBhj4ez5i0yblMQP5t5qTsLxBfThDL0BDUVAdXNnH+EoRRBmxAeJmEjQh0ZYo1iIlDi9Vlygh0z8weEPJS4H20preT9EETI7PYHPGnUtcYM9pzx60jnECQAG9LCvhBupVX8kQit+4O80TbsDuBv4WyHEnSOwX8kYZqiXtsYE+NBL2zcO16BpmCEZgHWLcnj/zHkzGbrqreNhCcvV24/T2RtAAGfPX+T4l17OXegygySRWt/GEOA4m4JVCa/BHi+lgtcSyxB++X5V63Oc4iyC9u4AaQm2sNyCTRH89pSHS71+LvlUYq2KrsfS0kWcVeFQVQsrip2A3ixkJJSvZcjjRqpqGfHQihDit8Crmqb9V3/byNDKjUFoCEXT4KcP5APw0r5KXghRwTNKCY0qhVJ3C0/9ywm6egOUuLJ4/0wjl3wq8TaF5+7P5xfvVeJXdXXChfkZHAhOqImG0XU4Us00E4HQWvKBMKcPicudmqHPNx7Py0ikurnTvG1V4PuzdaP9Hyfr8QX0kXen69vwB1RyMpKo8LRT6EimprmL5+6fGrVc9Gq88Yk6XOK61JELIbIBF3A0ymNPCyFOCCFONDf3/8OTTBzK69u4745Mun0qmqbxT/ur+N/vn+U7BRkUOlJNFbxHiibzSNHksDDNGz+eTaEjhd1lDcRY9WG/b66aw5oFuRTfrotpBTTMMWP9ccbTziikgcY03T51SKEl47AZnaBGyWG3TzVDJ5kpsTR8082SggwURZCZEktA1bf5oKKJf3lyLiUuB0eqvfgCKm+umsO+9QsocTmo8HQw67abwrpyR8pDHyz0N9EYMUMuhEgC/hP4H5qmtUc+rmna65qmzdY0bXZGRsZIvaxkEEazDMuiwJ7glHVFEXT7VHwBjdT4mLCOvtvsibz8WFHYc9897eGrC13MzU6j7ZKfB6dPAuB7/3zElLgNFXQaCGnH+zKc0JKq6YJb8TEWlgfDI8YVTlN7D7Nuu4kDlc0syk/n6Av3mSWhjpvi+MX7lRyqajElg0H//r1/psnUXlm3KIdnd5bxk3dOsXr7iRHxmgcL/U00RiS0IoSwAXuBDzRN2zjY9jK0cv0YrUvM0MHGmw5Um5NyDObn2fmb7+SZa6nwtPFxtZe7c+xYFMznWBXBrNvS9NI2BSxCH7M2JS0ed3P4yC8Z+x5ZQqtNbIogf1IyFZ5wHy0jKYbmi724nKmcqmsz532mxls5365rs29/ci7zctPZetjNLz+oMgc3G9IKmw/WcOfkZI5Ue/vM7ZSEcy2rVgTwJvD5UIy45Poy3A7MkcK4tC10pOILqGac1Bos+j5S7eWJbcdNI/7SvkruybNTNCWVjfu/IC8jEYHeuHKstlU30qpeofJXs7L6GHGQRnykOV7byrxcO7FWBb+mhRlxRehhluaLvWTbE6hu7jQrhtKTbJxv78GigDXEC998sIb5eXYeKZrMmgW6JLFuxFNMI36oqnlCJyWvFSMRWrkHWAksFkKcCv57eAT2KxkhRqMMy7i0ffe0B5tFocTl4ONqLz9/aJpZitbjV/l/3v2MDfsqWV7sZM0C/TlvrprNGU87AVXDqgh6/SpTb0kC9DDJ/oqma77+Gxmji7PHr3J7eoIeDw85SSpCvzLS0A1IrbeLS70BQOBMi6OutZu52WnsWF2MRRH884fVpgPx1qq5ZhhtXm46C/N1rZsSl4NXHp95w7faXylXbcg1TTuiaZrQNK1I07SZwX+/H4nFSUaG61GGZcTiQ2PyWw+72VPmYf2SPFq7fHynIINfvHeWDyqaWL84D4sQnD3fQWq8lV2feszn/597zqBpeumbX9WItylUNl0kzqaPE2u+2Bt1DbI2fGTo9qnYE/Vxd78+VtdHe0bTdN31eJvC94InZb+qccfkZOpauynI1AdZV3jaeGJeNh+7vdwxKbmPA2HEyktcDg5V6SWqEz0pea2QLfoTnOslLmTUjRs6GoakqTEp/el7c/h2rh2/qtHtC+Dt7CEQdPPaLvmxWnTtlbPn23E3d5rzMo3wCugGZqAyQhlaGTm8nT6S4/QhG6HH3KYEhzArgsfuyuK3pzyA/jmd8bSTl5FIQ1u3qXez5aMa4mwK5Q1tYd8543v55qrZvPK4K+x7OZGTktcK2aI/wbkWrc/9Yfw4F+ZnsKesgWVBTyu0DfuDM41mh6VVESgCc66lInSjYVHEFY0lk4wO8TaFhBgL3k4fMRahlyoKPSSmATtWzwW45i35NwL9JTulIZcMicgf3muH3FgUPQFp/PBK3S08/59/5tyFLqakxVPfeon1i/O4OyhdWjRFbwD69bE6c78xVkUfYuzXve3I5hMDBRinQoPjEqsi+mjVgK5rI7h88hVgarpPz0rh7PkO7nSkkBhjpdTtDRv4IA311SMHS0iuGMNoh4Zk6i50smFfJXUX9OoRo4uzvrULRUB96yVsFsHWwzU89S8nOPalPncxJyOR2BABj16/yrxcO6qmG4/+/AppxK8v0Yw4YOYujBZ/DThS3UJGUgxnGvSqFntiDJXnO/rkZGTI5NphHXwTyY2OEf82GjeM0MmSggx2Hq2jq1flD5834Q+oWBRBb0AzjbIR3/6oqoWF+en84wdVBFQtzPM+UNlMSpyFju7AAKuQXA/688QN9NyFRqxVQVVVs9mq+WIvVkUvD/2k5gJv/Hj2DTXFfrSRHrlkUIxKgs0Ha8jLSGR3WQPLXFm8uWqu2cWXGm/DalH4y1lTeHFpAYrQvTqjkCQ51sqBymacafFYonje7d0BNCAtwTYMtXDJSNOfEU+KtYTd7gnGv0M/K78KyXFWenwBKjx6HmRebjoPTc/k7/79tNlNfKMNfbgeSEMuiUrkj21ebjp3Tk7mWG0rc7PTOFTVzNbDbg5VNTM3O4361kvcd8ctvPxYEYWOVLPSQQPSk2JoveRDEVDT0okvoJrDICJp7fKZTUOSscPFngCZKbGIiI/mTkeKacwVdAGtgAYv/76S53eVs/Wwm51H6/imq9fUT7nRhj5cD2SyUxKVyFb+F3eX8/bROubn2fmssYOHpmey82gdy4udvHemiYX56ewp87C82MnvTjfS4wuY+uD9XakPVYVPMnpkpsTS1N5DWoKN1i5fVH0b4zNWBCTGWpmbnRamSGkInhkSEeX1bZzzdrK3vJEn5mWbQx8AmQwdBJnslAyL0Nb+n7xzireP1rGi2MmvnrqbV5e72PWph8UFGez61MOry11Mm5TC8mIn/3a8Hn9A5Q5HCi5n6oB139KIjx1sFsGLSwtwpMaF3d/U3kO2PYHOXj1/YXRzznRe9p5VDZYUZKBqcKk3wOEvvDjT4s3HH5w+KUznJ3QQttFtDNHneEqGhjTkkn4xWvt3BxUMN5QUmXHMN1fNJqDp/wOc83ay61MPRVkpLHNlMd2RQlldG/Hjdcz8DYQidN32//3+WTxt3QCkxeudnQK9Bd/4FJNiLajA7emJWIIhsEJHCnNut1PiyjI7cetaL5nhs91lHn7yzqk+SU+bRSHOpvD64ZqwiUGS4SN/ZZJ+k0/P7yo3W/sNMSMjvgmw/Ym5vHtaH9v16AwHz90/lbK6Nv5c38bOo3WkxFkGndYuGX1UTR+DZ6hT2iyCzt4ALy4tMHVXuv16235nT4D5eXZ2l3nQNH1GZ2NbNxYF/vB5E6lxVtq6/SgCfvVUMS8uLQBgd1kDC/MzwjzzLStn8fSCnKC8sfyeXA3SkEuiJp/W7jjJ3vLGPq39gPn38q2f8B8n9VAK6M1BmSmxnPG0Y1X0kWDDQaY4R5/MlFj8AQ2rRfCZpyOs8cfb6aMwK8WUtlU18Hb2sG5RDhv2VdLrV+no8ZMUo7f2V3jaKHSkYrMI0hJsvH/mvBkjX7coh3dPe0xHwWZRePe0ZxTf+fhGJjslQN+J4w8UZgLw6AyHebn7/K5ymtq7UTVIS4hhd1kDVgWE0MsJk+OstHb5zH0anZ+S8UVeRiKTUuM4Uu1FAJNT4/jmks8ctKwImDElFQ04VddGtj2BxrZuc/jElpWzqPC08cv3q4i19dUeNzTqIXy8n6w3HxyZ7LzBGG6t7rzcdAomJZvJJ0Nq9MdvHmPJPx2k1N1CTkYiH1Y2U3W+g91lDWTbEwioerefX9XMqgaAWKsgoMov2FhloApPd3MnR6q9TEqJRQO8nb1YFMG0ScmAfuKubu7k7x8sYH6enVpvFxnJsaYRn5ebzpoFufzlrKw+2uML89PZuP8LHimabG4LE38U27VG/s4mINFa6rcedrN6+4l+qwJK3S2cPNeKIuCNI1+ahtunaribO1n5xlE27q/CZhF42rpRBJzzdnFPnp1QlVMNSI2z0uPXr/SkQz42UTU9XBLNoBufYW9AY6YzFU2D786YTIWnnWmTkgmoGnOy0wA4Xd9m6urcd8ctYd70y48VhWmP64lzD2sW3M7LjxXdUKPYrjWyRX+CECpqZcS8H5qeyertJ3hw+iT2lDXwwtKCqJetpe4WfvzWMe6dms6fai7Q1Rtg5ZvHQNPMuuFASLu9VdG7+OZmp5nx0tB6cSPZNZiAoU0BmQsdPTQg1qLQ7e/7IbR1+8m2J/DVhUt8f3YW7xyvZ3pWCmca2pmfZ+d4bSsfVx9HDX7IJS4He8o83OlIYc2CvsY4UhP/7ly7DKGMINIjH0cMFC4JTVjOy01n3aIc3j5aR3qSHsu+J8/OmgW5PL+rnOd3lYeFWd497WG6I4UPK5spcTmIsSoEVF0cSQiIiZjYIISgxJXFsdpW877nHy4gLyPRvD0UFVppxEcfw4hHi7TUert4aHomzpsTeXzOFCqCRvzjai8JMRZ6/CpWi2DLylm88riLF5YWsHH/F1G/o8/uLOOBwkzuzrWHaY/L1vyRQSY7xxGDDVKOTFg6UuM442nHmRZPXesllhRkcKy2FX9AxWrRk1A1zZ18UNEUNjsTwrv3ogkpxVgEanCCT6xV0OPXhjzVXjI+yEyJ4ZsuPz99ID8sSRlnVWi+2EtSjIX//hdTTQ+81N3CG4drUDW9NNXAcDTgsiY56A6E8d2T3vnQ6C/ZKUMr44jQbkvDWIf+CEJncxqe0/y8dD6ubiHbnsCBymay7Ql4O3vxB1T+aX8V/oDGvfnp5j5ElJCIX9WwKILM5Fga27rR0PWo5+fZ+byxHW+nXqkijfjEQAB3OpI5e/4iNoswy1ArPG1c7PHT0Y05m3Pj/ioAapr1lnvQK1FCCY17h35/pREfOWRoZZwx0CBlIw5Z4nJwpNrL8mInv3qqmGUuB7XeLlLjLNR6u3DcFI+G3iIvhD4tvdTdwi/frwwz4qHt2hYBTe3dYcb6SLXXNOKS8UWk+FUoFkWwzJWFQFc5rGzs4Dcn6tiwrxItOMHpm0t+VhQ7ueRT2bCvkv84WQ8QVokSjdEYBH4jIA35OMMw1vfk2tlWWtunieeBwkymTUrhxaUFvHemKahQ2ML8PDtt3QGcafGcPd9Bj0/FZhHE2SysX5LHU/9ygrK6NhQBLy4tYEWxE09bNy5nKhZF4Lgp3pyJKRt3JgADXD5ZFKF72sGrM6si2F3mQaALYP1gzhR6/Sr/+WmDqVTpC2g8MS97UMN8PQaB34hIQz6OCI2J/+3iPEAfWFzqbjG74h6d4eCZhbmsWZDLukU5bNz/BesW5fBZYwcrip3Ut14yY9mahtmsYUzt+d5MBx9Xe2ls62ZFsZO2S36+nXMztd4u4m0K2fYEGUIZx6Ql6BoqA32GAVWl26+iaZiCWfE2BQ0omJTMe2eaePhbk+n2qWiaRpxN10wJdSyicb0Ggd+ISEM+TnjtkJt3T3vMmOK83HTWL8mj16/y6ofVfFDR1OeyNqAGxa1UWLcoh/fONDHTmUqMVWF+nj7R/pX/+oI7JyfT2uWjJDgsOeumOP5Y2UxjWzep8VazxPCST6XW2zVah0AywkQUI6EI/WrLr+oneQ2Nc94unGnxXPKpCPROzoemZ/KHz5vMhPff3Z/PW6vmAJcdi2iU17f1yenIJqCRQRrycULRlFQ+qGgyb5e6W9h8sIaHvzWZUrd3wHjjMwtzTWNe3dzJY3dl8aun7ubFpQV0+wIcqfZS4srilcddvLrcxXtnmlhe7OTDymZz4r1NDnsY16Ql2ExNcdAbfgIRbrkigjK1gmAJqi6z0Hyxx3zsNnsCuz718EjRZP5y1hReWFrA5oM1gB4ff6Rocr+G+ZmFubIJ6Bohq1bGCdEqVgztimhNFqHdna8ud/HMwlye3H6MHr/KozMcAEFBI4W8W5J4/8x52i4d46kFOThvjqexrZvEGIupQ+0bSmG4ZEySFGsJ08AR6A0/BmkJNh7+1iTePloHwKJpGWSmxLHr0wZ6/Cp+VSXOpjD7tps5Ut3CimInG0qKzOcXOlLNgRAyeTk6SEM+jgjN+Je4HGw+WGNeqkYOue07MDmdP1Y2m92dRrxy2xP65Jath91s2FfJkS9a+P7sKeaPWjJ+SLAp+FQNX0DDkRrH1x09BFSNiz2XVSgFhA2+Bn28XmMwsd3e7Wfu7XaeWZhLU3s3h842I4TAZlH4m+/ksnCarpWytMgRFiKRBnx0kaGVcURoxv/9M02sW5TDvNx0szMuMt7ovDmeTQeqgwOTPSxzOSh0pPLaITevf1QT9vxCRypLCjLoDWj8+pg04uONGIugN6BhVQQrip183dGD1SLCkppGklsNqT5KjrOyotjJn9wX+NmDBRz4u0U8szCXUncLp+ra+Os5Tv519Vy2rJzFszvLKHSk8uaq2TKuPcaQnZ3jhIG6Ot897WFveSNbVs6ivL4NiwKbDlQzJzuNI1+00BvQmJIWT9sl/fLaaNgIff6esgYCGuTfksQZT/tovlXJFaIANyXaAMEtSTFUNl0ccPsSVxbfnz3FvHILqJebd0K1ewwMLXEZ0x49+uvsHBFDLoR4EPh/AQvwhqZp/2ug7aUhHz4D/bCKpqSydsdJAO674xZ2l3lIiLFQ4nKYIZIYq4JFgNWihGlAr95+glm33cSRau+QhK4kYxOL0IXNBJA/KYmz5y8OKJmQbU+gvdsvhx6PM66ZIRdCWIAq4C+AeuA48ENN0z7r7znSkI88pe4Wntx+nG6fahptX0DDZhE8OH0Su8s8WBXB43Om4Lw50fzR/uiNoxypbjGnpUsmBoYRj3ZyToqxEGOzmMly2SY/friWgyXmAtWaptVomtYL/BvwvRHYr+QKUQTkZCThVzUenD6ZQ1UtrF+chwB+fawOS/BT33rYzcfVLaQl2KQRnwCkxFnMvzV0Y24Y8cSYyz/1i70BHpqeSUDFDK1JBcLxzUgY8iwgNDtWH7wvDCHE00KIE0KIE83NzSPwshKD53eV89/ePIYiBOsX56EIQYWnnUkpsewua2Ddohyeu38af//QNFQNNuyr5EdvHOWlfZUoAr6JKE2TjB5Xc/zbuwNhzzcccSUYdjG6dxUBvznZYCoSflDR1O/AEcn4YCQMebTvXp94jaZpr2uaNlvTtNkZGRkj8LISg6b2bvyqhqZpJMdbMcJlTe09LCnIYPPBGkrdLaxZkMuKYicCOFLdomuNW8O/AtECbfZE27V/ExLg6hUkjecbH2teRiJ3TE6h26ey9t4cXlxawLempCKADfs+75NAl575+GQkDHk94Ay5PQWQ47CvAf0NllA1XejKalF4+feV+AIq8TaF7xRkUBZsqX79oxqe31XOrk8bsAV/5aoGuRlJg76uVDgcu1j7+QU/PsdJvE3hS28XFZ52SlxZ/OroVxQ6Uvnt387n4W/po9sW5meEVUGFeubDnfsqGT1GwpAfB6YKIW4XQsQAPwB+NwL7lUQQOgUILpckPn1vDmsW5PLEvOzgsAd4cPpk3lo115wU5A+o7Clr0Me1aRoxVgUBnPG0MzlErlYy9gmdtRk5pU2gh1DePlqHL6ASUDUWF2TwyuMzeXW5iye2Heeuf9jPoapmSlxZ7Clr4CfvlEWdYN/f902GYcYeV93ZqWmaXwjxLPABevnhW5qmVVz1yiYoV1OfO9Bgied3lbOnrMH8ge8pa6Dsq1Y833STbU/gSLWXtAQbPX6V3oCGRWgoikDTNBrbuq/lW5aMIIqAH851suvTBnOGqoFVEfz8oWlsOlCNL6CaRt44Ue8r95gt9ztWFwe/gxq7yzyUuBxRdVAGGmQiGTuMSGenpmm/1zQtX9O0XE3TNozEPicqQ/Vy+rusLa9v6yPMX+puYU9ZA90+le9MyzDbr2u9XfgCumJhtj2B1i6fWcUQ0EBVNVk3Po5IirWgCMG/H6+nN6ChCIgLia0oAv7xgyrsiTGoGhQ6UoixCN4+Wsesf9jP20frcDlTTSNe6m7hUFULJS4H759piqpaKAdBjA9ki/51JtTL2bj/bNRLWujf4FsU+gjzl9e3scyVxXeCMzkLHSlo6E0iRhlafeulsP0banYgR7SNRWwRGrNWRdDZE+DxOVO41Z5AQNUQQtDtV5melQLoOY+Aqp+4YyyCF5fewV/OmgLoeQ57oo3dfzsf0CudjO/eK4+7eHPV7Kja4HIQxPhAGvJRYCheTjSDP9OZyqYD1aYw/wOFmazefpxz3k5efqyIzJQ4unoDnPG0Y0+MMTv9NOgzPFl64mMXJdjMZWBoxysK/O50I3Nvv5n5eekEVF1bZfG0W0iI0WvIhRAUOlKItVlYu+Mkf6rRteRjLQJvp4+Sfz7CszvLAMyuztcOuaNqg8tBEOMHachHgaF6OZEGPzMlPCl57MsLXPKpNLXrMW5FQCBoob2dvaYRH2g+o2T0SYq1hN0OPclOz0ox5RMW5mcwJzuNzxrbOXmulRKXLke86cNqHijMJD7Gwl/NmsKLS+/gkaLJdPUGqG3pIjs9gcQ4G9n2BMrq2rjt5nhefkyXoQ0N60Vqg8tBEOMHKZp1nRlI/CrSMzceC000AeZ9bxz5kq7gGK6UOBtNHf13ZybFWsLkTCVjn1CtFEM759+O1xNjEbwZnMizevtxLvlUFAHPP1xAoeOyfPFL+yq5JTkWn6qxMD+d3WUesu0JfHWhi2e/kyeTl+OQa9miLxkGQ/Vy+rusBUwv/an5t/Pi0gLdKw8a8ViL6OOBK4J+jbhFfgPGLKEu1l23pvH20TputydgtShUeNp4dmcZz92fT7xNwaII/ml/FWt3nDQ1VN5eU8zRF+9j3aIc9gQrU9q7/XxvZpZMXk4wpEc+RumvTPHd0x4+qGgKmxL00u8rGYWPUXKdMDzz+XnpzJ+qDw1Zvf0ED07P5FBVC68ud/GJ28umD6uZl2vn3vwMznk7zUlQhode09xJU3s3f6xsZpkri0NVzdIjH2dIj3yc0d/YrA8qmkwvfaYzlQ37dCN+JR+kDJ2PD4w8x/HaC5zzdjIvN501C25nd5mHOyYlA5crmSrPd1A0JZVHZzh4dmeZObC70JHK3vJGjte28sLSAqZNSpbJywmENORXyUi0MUfbx/O7yvnePx8Ju//d0x5mOlP5n7vPsPWwm9bOXgBmOlOZ4Rx+t5104scHNotAAD1+vTt362E3rx2qIcaq8OlXrazdcZJXl7u4O9fOA4WZYVUpe8o8/OZEPc/uLOORoslsWTmLQsfl5KZMXk4MpCG/SkaijTnaPvaWN1J1voO1O05S6m4x7zte28q3c29mw75Kmtp7WFHspKrpojntfjAsAjKTY4f/RiWjxrTMZFRNH+emavCL985itQhirQrfzrUDmDHzR2c4TOM8Lzc9qEXfwML8jCFVqkjGJzJGPgJEqy4ZbtzR2EfBpGT+3NBmjmNbu+Ok3lYdUImzWXjjx7OZl5vOi7vLeftoXdik++EgpwGNL4yxbD955xRN7T2sX5xnDtxemJ/O+2eaeHPV7D45Ff3xDPaUNbDM5TBj6jIuPj6RMfJryEi0MRv7KHV78QVU87777sik16+iaqCGnHSXFjlQBMMy4qExcWnExzYKkJmiXzklxlg4VNXMvnIPX7f3mEqGoFcw7S7z8OD0SWHfu62H3azefiLYuTmTOx3J7C7zsDD/8sR7qWQ4cbhq0SxJ3wafu3PtUY35qm3HuCfPzpoFly9ltx528+ujdfyw2GnuY1tpLau3HycnI5EKTwcxVgVFgCIEa3ec5Il52bxx5EtUjQHnMhoY20jbfe0ZyudhkJkSy9ftPVG3V9H15NMSbLR2+bg9PZG3j9axotjJ0iIHcTbFnNNqqBje6UhmzYJcSt0tbNz/Bc/dP5Xy+jYqPG18deESMVaFfeXnudPhpqa500ycS8Y/0pBfJZENPcblbrTL13vy7Ly0rxKAgAp1FzrZebSOxQUZvLSvkuXFThJiraxfkseGfZWmEd/+hN78YYRZNn1YDehJzrPnO/AFtD4t+KFIA379GM6xnpebzu6yBkCvSomMcjpS4/jHv57Bqm3HOeNpZ7ojBVW7XE4I8EjRZF5+rIg7Hcm8tK+SzzztHKpqMcMsWw+7eWlfJS8s1ZuFnvqXE2zYV0lCzOUwnWT8Iw35VTJQg0/kj8TwxF/aV2lOOl9R7MR5cyKTUuPYebSOZa4s/vB5E4qA1Dgr/uCPe15uOt+dMZl/O1Zvdmn+uaGdhfnpfOXtorq587q+b8nVs7usAasiCKgamqY3ZwVClGkXTsvg3dMeLMFJTpXnOzh3oYv1S/L4uNrLlpWzzO/YmgW5fOZpZ3eZh/WL88z7Ayq8sLSAzQdr+FHxrWZ4bqbzJmnEJxAyRn6VRKv3HqgSIKDCtEzdiE+blMR7Z5o4e76dXZ96WObKYndZA76AyvMPFyAUhfVL8li9/QSrtx9j59E6/o+Hp3Hm/3mQvIxEAqrGHyub+zXiiiwUH3NkJMWE3Q6omunFO9MSgMu5jONfXmBveSNWi8LSb03Gr2r0+AJsOlDN0/fm9ElsGkO2Q/V7nlmYy5oFuWYOBzDrzWX9+MRBGvLrTN2FTiqbLlKQmUTV+Ys4UuPYXeZh1m03caiqmdvsCShCUOhI5dXlLjYfrCH3lkQOVDazvNhJQNXj6he6fEwPytX2h0xojj2eXphDTIhErcblxKahG//2mmJczlSqmzuZm53GnOw09pQ1MDc7DV9AY052WtTqlP5UCkvdLWwrrSXOpmCzKNyda5fNQBMMacivAf01CT0Z9KpXFDv5+mIvhVkpnPG0k21P4ONqL+sW5fDyY9/CoggzkbUwP4MzDe3Mz7Oz61MPR75o4aV9lTw0PRN3cyepcTI6NpawKhBv6/9n9dpBN0IIXM5ULIrAZhFhic1z3i4qPG3s/tv5rCh28sezzRyvbWWZy8Gx4P+n6trCvl8DhfcMI/9I0WTeWjWHLStnhTUMyWagiYGsI78G9Kdw6Lw5nkeKJrNmQS4/eecUu8samJ6VQldPgB8WO9l8sMasIli74yS33pzAZ552lrmyeP/MeXIzEs2k1xlPu1nRMJxKCcm1xWjaCU0+R9bs52UkUt3cyYpiJ6fq2qjwtAP6AO0/ub18WNlMSbDm+4HCTBQBuz71sGbB7aa+TkBlSI08VzNaUDL26K+OXLpz14DIWYdbD3/Jc/dPNZOdpe4W9pU3UuhIwfNNt2nwCx2p5g/svjtuMWcpvvL4TBJi9Aag7PQEznjaSYxRaO3Sp9tLIz42EEBvQAur119R7OTfj9ebSUZ7oo3q5k5czlR2Hq0zP7sYi6CmuZOnFuTwUVWLmbRMjreaVSdrFuSGVUUNhWjGel5uukx0TjCkIb8ChuLlhDYJlbgcbNz/BQA1zZ3sKWsg1qawzOWgprmTtTtOmmVk5fVtbD3s5t3TjWTbE/jD519T8s9H+KyxA5czlbK6NhJjFDp7VdmdOcaYnBpHS2cvvSGj7f9Y2Ywv+CFlJsfS1NHD/Dw7H1d7zZLDGKvCzx7IZ+P+L/i6vZuAqmGzCF4/XENA1fhOQYbpBAxUFSW5cZEx8itgKPoqoU1Ch6paeOwuBy/tq+RPbi/dPpXvzpjM5oM15GQkhu3boujlidOzUqhvvURnj5+yujZ8AZXTwXhmZ69uKAz9DZAVKtebyMOdl5FIS2cv/mD9oPG4p60bRegStE0dPUyblMSRai/pSfqA5LnZacRaFTYdqA5Laq9bmEu3T8UX0Ew9FQOpjyKJRHrkV0Bk6CRSX6W/JqHb7AnUeruYNinJrBn/5QdVONPiTe3ogArLi528E7wcNzzu/jzv3oCGMsDjkmuLABRFhJWApifFcKGz12zwUTU4Ut1Ctj2BqvMXzRzH/Dw7nzV2sH5JHr9476yZ1P7d6UZ8AZUYi0BDv4qTSAZCeuRXyED6KkYVwesf1bD1sD7Ydt2iHBrbuhHA2fMXSU+KYXdZA5qm0djWzdodJ9l62M05bye/O92ICIZNLP0M3EwMqYxQo24huZZo6Eb8haUFYWqSGUk2LnT2mifW0AlM9a1dLC92csbTTl5GIp81drBuUQ6bDlRjUQRWRfDpV9/Q7QvQ7VNRFMHfPziNDyqaZJmgZECkIb9CIvVVnt9VHtaEMS83nayb4tiwr5IXd5ez+WAN8/PspgFovqhriWsalLgc+AMqG/ZV8h8n6+nxBVCEoMSVRaCfqqJOnzTfo40G/LbMw9cd3eZ9zRd9phEXgBryMcXHWFA1vTxxzu038+pyl+ltF0xO5ucPTaPXr4dTDA3ymuZOWSYoGRRZfjgMjCQnEFY58O5pD3vLGwHMtmkjvPLQ9EzePlqHMy2eutZLLCnI4ONgnFwRYLMo9Pj7Ji5XFDv5zYl6egNX9/nI0sRrR+ixXVKQweEvWszPKzFGoceva+CUuLJ4/0wjvoBGfIwlrLX+tUP6VVhTezef1FzAF9ANebY9gYZvLiEQbH9yjkxsSgApYzsiGElOY3wWYIr5b1k5i0eKJvPszjI27j9rGvoNJUVMCRrxjKQYNHTjXehIwaIIJqfGAeFGPMYi+MzTTm9Aw6pcTpxdSUJTGvGRJ9ueoHvMIZ9Hj18zjbhAT0hbFMH6xXn84fMmcjKS8Ksa38oKr3Z6ZmEuj85wcLy2lW5fAF9AY9qkJGq9XQjgZw/mS29cMijSkA8DI8n5QUUTn7i9YQnNebnpvPxYUZ+4+dbDbhpaL2FR9HDKh5XN5GYkUtN8EU3TqPV2EdKxjVURIARldW04UuMozErlB3OduJypMqE5RjByHZoG8/PsKEJPZgJhsgk9fhVvZw/+gMpnnnZKXI6oGifzctNZvyRPn70q9ByKVYFYm4VCR2pYhcpIjBaUTDykIR8mAyU5I+PmL+4uZ0NQnnbH6mLdSAOn6tr0qT+q/sONt1nMfWho9PpVMpNj9dI14OXHini4aLK5TaRjLisPry/+gIrVorC82Mnx2lbzfj35eQeLCzIAvW7818fqsFqU4MDjlH41TgIq3JOXbp6srRZdMC3SGx+J0YKSicdVGXIhxC+FEJVCiHIhxG4hxE0jtK4xS6SxjvxBhQoXvXO8niUFGbx3pgmAv1mke1YCPZRiVQRTM5O52BtguiMFa1DGVAho6ujBquhG/yfvlPHL98+aa4h0zKWjPjLYFDFo+CotwQZCcHt6Ir873UiMVeHxOU5eXFrAD+Y6Wb39BN/OtVPictDU0cO3c+ysX5JnttT3N/DYosDH1S3YLII4m4IANh2o7mOgQ0tfQ0N4MoZ+Y3NVyU4hxP3Ah5qm+YUQvwDQNO3ngz1vvCY7+9NQMX6Y0bo9X/+ohnvy7Gw6UI0voI9s6/WrZAdrykGXNm275NNrwkOSnlZFcHfOzRyp9gJ9E5c2RZhdg5LhMVBXrMuZSuX5Di71UxlkfHbzcu08uzgPwOzq3XrYzT9+UEWMVeGJedlsK60FCEtwRlLqbmHVtuNYBLy56vIQEX9AZZkryxyaHMrG/WfZ9GE16xfn8dz904b57iXjlWuS7NQ0bb+maf7gzU+AKVezv7FOqMqcEZM0jLgRxwyNVc7LTefpe/U64Z5gbTCaRrxNobHtcsnaha6+RhwgoGmUur1m6CQuQlVPGvErp79Dlxpv5c8NbaYRj+ah13q7mJ9np/J8hzm93vCcCx2pxFiH97Mqr2/jL+/K4s1Vc8x8y5aVs1jmyuI2e2Kf7fu7KpTcuIxY+aEQ4l3gHU3TfjXYtuPVIw9lIO880vN6cvsx/ljZTFZaPA2tl1he7OQ/TjZwT56dXr/KkWqvacQFEGtTCAQ001DbLIJpk5I509AedS32RBveTt+1fssTgqGWYyrADGcqnzV2MDk1jlpvF2kJNrp6A9w5OZnT9W3cenMC57xdpqBVqbuF/7n7DD8sdtJxyW96zMnxVn59tI7/b8n0q1YhHM73TjLxuGKPXAjxByHEmSj/vheyzYuAH3h7gP08LYQ4IYQ40dzcfKXv47oyUIXAUGOVpe4WTtW1sczloL71EstcDnZ96uGnD+Tz1IIcPmvsYG52mukhasBdt6YxPSvF3IcvoHGmob3fpKY04kPHougnvsHISInljKednz6Qj7ezlzibQmdvgJ8+kM/PHizAalGo9XZxT146AfWygf1hsZNNB6rZVlprDtLedKCaHxY7RyRJOZD2uOTG5ao9ciHEj4FngCWapnUN5TnX0yO/Gj3m53eVs7e8MazJJ1SpEAaPVb52yI1FgY37v+DB6Zkcqmph3aIcapo72VveyJzsNE7VtaGpGq2XfGTbE/jqQheqpgsxeTt7aO3ym/uTiofXj+mOFDxt3WEa8b6AikCvKrnvjkz2lDWwLKgdHrod0CdGDvSrzwNSO1wyONckRi6EeBD4OfDdoRrx683VlGsZQlZrd5xk4/6z5g/UuL+/WGWoJ180JZXNB2t47C4He8sbeWh6JpsP1nDsywv0+lX+5PYy05mKX9OwKYKvLlw+jNXNnWFGHKQRHwzLML7RqfF9NeNCm6+qvr7IukU5prf7xLxsU5Fw/ZI8pk1KZpnLwe4yDwvz9dh2eX0bW1bO4ol52Wz6sJon5mWzZeUsU3a2v9JVkKWFkivnauvIXwWSgf8SQpwSQrw2AmsaUa6kXMswxEbSyRdQ2fRhNZd6A31a8KPNSQz9QZbXt7FuUQ67PvVw79R0dh6t487JydS3XsIXUOkJalevX5JHXIyFOJuFW29O6LOm7PS+90n6EhiiBI0Q0HbJHxauSo2zmlo4ihDMz7Oz+WANFkU/mW8rrWVerh2bRQSFruBQVQslLgfvn9GFrQzPOfQED3rp4WBJSllaKLlSrrZqJU/TNKemaTOD/54ZqYWNJIN5QpFEekaGF6yElDC8/lEN6xblhMUq1y3K4fWPasJ+kF09fjYfrOG5+6dSVtfGPXl2jlR7yU5PRNP0dv1St5dNB6rZsnIWDxROotbb1cdbrG0Zkxc8Y5YBxmYCmF2URtesRRG0dftJD8ooTM9KYe7t9jBhK4DZt6VhtSj4AyqbDlTz6nIXrzzu4s1Vs3l2ZxlbD7ujnuD7uz+aMR/Od1UigRuks3O45VqGIV674ySrth2n169S4nIQa1VYu+Mkpe4Wnr43h80Ha8IugzcfrOHpe3MAPSm1MD/D/EGuWZDLQ9MzOVLtxZ5o4+z5Dm6zJ5B3SyLdPpVLvQF+c6KOPWUNpCXYaLvkH2iJkhBiI8r90hJsaFFSw860+LDbqgY5GYk8XDSZgKphVQSbfujixaUFnK5rw6Lo34Xb7Il9wiXLXFk8UjS5T9Lx42pv1GRkf/dHJillaaHkSpjw6oeDlWsNlGB697SHCk87Ja4sXnl8Js/vKg8mt/QmDaORY+otSTS2dYe9xhuHa/iwstkcHvDQ9Ex2Hq3jlpRYmtp7cKbFUdd6uZbcKIsLLY+zKQK/qsnOzUEQYB5XCE8Ix9kUenyqeQyNx9LibfQEVLp6A2Qmx9Le7TPruAG2HnbzcbWX7U/MBS5/j/pLVI4EsrRQMhg3rPrhYOVa/SWYLIquBV3iyuJQVTOl7hYeneHAGsymvXbITYWnDU3TqPC0szA/nXdPe3hy+zHW7jjJ8dpWVhQ7+bjaS0qclbeP1pGbkUhTew+ZybHUtXabzSZW5bLx1tCNjcuZii9oxAdL4A0WRhhrxFn6K6TUGY52jADzuLqcqab8AeiCVqqm1+HHWhWSYy1YFEGMRdDlC/CTv5hKjFWhqaOHNQtywozlmgW53J1jp9TdEmZQ786180BhZtSwyNUiSwslV8qE98iHgvFDLZiUzJ8b2li/JI/NB2vC9MY/qGgKk65dmJ/B7rIGEmIsPFCYyZ4yD5agVsp3CjJ4aoEeYvnxW8fwBTQykmJovtjLimInS4sc/OiNo6iaXuL2WWP75WEEAiwC/CpmAwqAX1WHnMi7EbAqAg2NgKqf6BbmZ/DtXDsb9lWiCD3cssyVxaMzHGb7+123plHe0GaWAho68kVZqXx+vqOP52t8Lx4ozDQrlUJ16GVZoOR6c8N65EPBSDCVur34Aqo5lQUu642HTi7/UfGt7C5rIMaqYFEEzjRdn9qvwj15dk7VtfGJ28vaHSeJs1mYNimZ5ou9TM9KwXlzIvvKPaZoVoVHN+KK0MMAhhHPSIqhtcvH5NQ4evwqFiEG9VQVMTGVENMS+jbw+FUN44gEVKhp6WTDvkoWF2Twq6eKeXPVHD6o0MXKtj8xh1uS4/jY7eWJedmmsd5b3sgjRZN5e83dUZOPg8kWSyMuGStIQ054gslmUdhb3tjvD9fY9p5cO7FWhfvuuIVNH1ajKPpotpPnvmFhfjqbPtRFstYvyaO5o4f5eXbONLTzb8e+4u2jdawodvLoDIcZUvnhXCd/d38+gaC0bfPFXnPAgMuZSmGIzjVEN9iqBrfZE65oAMX1YrhLswho7QrvXHUEh3H4Q4rqa1u6mO5I4a1Vc83PKzQscaFL787cVlpLqbuFd097gMs9Af2FMWQViWQ8cMMb8sh68EeKJtPjV8N+uEZbfui2b6+5m/VL8thd5iHGqmCzKHx/9hSeu38qe8o8FDpSEMA/flDFTGcqf/OdPObn2an1dpFtT+Dfj9fz21MNWIJhgMa2bjbu/4LFBRnYLArZ9gTOnr9Itj2Bzxo7+HNDO4rQuz2hf70QY7LMWGW4gTyjGUYJhpwUAZ4QwTEDqwLnLnSFNWUZz392Z1mw/t9Oty/Ak9uPmx27odtG87JlFYlkPNC3te0GIzLBlJORSK9fpdCRzK+OfkVyvNWMl4dua5QbLi7IIDMljkdnOMzOzxeWFhBQ4Zy3kz1lDfzJ7eWjqhZUTQuTrwVdErXHpwtn3ZoWz4eVzSwuyOBYbSuZKbHUertIibOQGBvDk/Oz2bj/C5JiLFwMxs6BYMu4wBccNXaVYz6HxLWeBaoEX6Csrs08ZvPz0jld/w0d3eGlmRlJMfy/P3TxxuEaVm8/wZurZpsG/IHCTDNMdry2FQF0+1TuujUNCI95RxJZNXJ3rl1WkUjGJDLZGYLxw123SK8RX5ifwZ6yBlPdLpRoZYvP7yoHCNOPDi1FNIg0gnkZiaa+ikCXp1WE3l0IGn6VPmWM0zKTqGy6eA2OwtjBagx6EIKptyRR4WnvcyI0NNldzlTOXbjEukU5BFTdEzeS1EbJ4LpFOaYuPOjNWAPphEvtE8lYQyY7h4Dhca9ZkGsmNJe5sqJWixjTXkJ5+bGiPkMA5uWmM/d2OyWuLPM+o8QQ9JDAV62XTD3yrGDTiqpBQNVQFIX5wW7Qhfn6tKGZzlTONl3EmRY3ou9/tBD9/D0lLR6E4I7Jycx0pqIIwow46Ce9zJRYyuracDlTWbMg1/TGH53hMOPbC/PT2Xywhi0rZ/H0gpygZkr4Bxupdtmfxrw04pKxhjTkIRjGOTQueqiqeciiRa8dcvP8rvIwY1DqbuE3J+rYW+4xR3iBbqgzkmKwWpTgxKB4egNamKHSgPxbkjhd30Zmciy/O+3hoemZVDd3YrOIsIai8YwW8bdxkqv1dnFrWjwKsPNoHZEXj7FWBasiaGrvYbojhUNVLWEaJXBZ8+T9M02sW5QTdp/NophJT5CiVZLxiwytRHA13XWGzC1cli1dvf24OW1mRXCghCGUBRBjESiKIKBqZozbwAjBKEIPM/hVDSEEP5gzhX87XjfqdeVJsRYu9gQG33CYCPT3G9A0s77eFrytafoxsSqCx+dM0UXIHCk0tnWbtf3rF+f1iWdHfjb9fbbXo4NTIrlS+gutSEMewXDjopHbl7pbWL39OL6AhtUi0DQ9RJBtT+BAME4eYxGkJ8Wa1RfTHSmc8USf/mMQYxFB7z0QrDsXYeV3FhE9yRlrEfQGhtbmP1gCMynWQo9PveIRc1ZFvxIZ6OmhMXDjPSXFWujsCZAQo9DZq+JMi6flYg+qBj99IN9sCnppXyXLgp24RhPPUHIYkZ+tnIcpGavIGPkQiRb7HiguGnk5Drox9Ksa3T6Vtffm8A/LplPqvkBaUNFwadFkWrt8rCh2MtOZyhlPuxlOEESvtdaAu3NuBgSqBo/OmBz2uBCClDhL2H0WBXoC2oDF20ZZn/Ea0ZpvDC72BMiflBymzDjUJqTEGAW/itkiH4lAD5XUeruYNikJ0I34tEnJXOwJkBJnDRrxODp7A3w7106MVaHQkWpqvr+wtIBpk5LNJp5I+sthAGHhlF8d/YoSVxZbD38pyw0l4wLpkY8AoZfjWz6qQdM0U/JW0+CvZmXR2NbNHyubmZOdxrHaVhYH2/if3VnGTGcqn9RcIKBq9PhVUuOstEWU2ClCr7LQNJh7+80cqW5hpjOV8vq2Kx424XKm6tOJCPeEIz3zzBBBqmgYYZ/BsARDSJFT6g0P2x/QzDCTogh6gyEoQ94gIymGgIZZVWRUqAADXkUNdpUVWa0U+b8Mr0jGCjK0co1ZvvUTSt1erEG9lReWFgDw8u8rUTU9NLK0yGG29sdaFR4pmmxe/htj5eKsCs0Xe/t9nRXFTnZ96uGxuxz87nQj/oBKd4i6X4xFkJOe2G9polXRJQCE0E8yhm88KTWOxiiNNqCfRBJjrWH120OtIzfi6IkxFjp7A0zPSqHq/EXudCRzqq7NfHymM5Wz5zsAcNykV+4YwzdUTT/ReNq6mR+UQDCM+FAqSIaS99BDYifMcXyh28pyQ8lYQRrya4iRSLvUG0AI+OvZU/jd6UZzvmNaQgzNF3uwBL10m0Vh/ZK8PoboR298wpFqL7Zgc080YxljEfzlrClmA1JeRiJldZfbyh1BgxxrU+gOerzWoJdr7CsvI5Fab1cfL9ow7tFQACO32t/c0ND1hv0d3O/8PDt/qvFiVfQri589mE+hI5Ufv3UMNFiQrxvV47WtdPUG9CsbIfhWVgrVzZ30+AIgBD8LxsWvZPr8QElMGRuXjHVkjPwa8Nohtzn5ZcvKWfzr6rlYFcE7x+vp9gXMDsIn5mdjUQTdPpWnF+SwfkkeG/d/EVbWtvWwmyPVXubn2VGE3ggTaiuNGHpvQCMnI5Hy+ja+O2Myp+ra9ESooktIedq6uSUllm6fanrbATV8zEKttysYqhHYQuLVA53TVWBJQQZxNuXyxKSQtbmcqdwcnE5vUUSY9K5Af61Pai5gVRRUVWP+VLvZZLVgajp+VaOpvYdTdW3MyU4jxiKwKPr6FkzNwB9QEcHxazXNnWFG3JBQGIjBNFNkK75kPCMN+VVQNCWVjfu/CBv5ZiQ6A6rG+sV5lDe08Yv3zqJpcE+unW2ltWw6UM1z9081BZpK3S1s3P8FLy4tYP7UDP5qVpY5iszAUEuMtyn8ye3lkxovn9RcIM6msP3JuXx/9hTT429q76HE5eCFpQXmCUEFYqx6c5Ff1egNevxxNgvz8+yDvlerIvhTzQXUEFdcRfeyNQ3+3NCOt9PHkoIMAqrejQq6969qUHz7zfhVDV9AxWoRZKbEmV7yUwtyWObKosLTTl5GIqfq2nhz1Rz+5cm5aMCmD6vRgG1PzOGpBTl8UNE07FrvgQz1QPNXJZLxgDTkgxDZ7QeXPcB5uem8uWo2mw/WsHH/WdbuOGl6n5oGyfFW1i/Jwx9MYt6SEmvuo9CRanqV5fVtvLlqttmVuOtTD4sLMoIt+uE8dlcWH1Y2801XL+e8XTx2VxbzctPJyUg0QyWpcVb+8PnXvPJfX4SfDFSNk+dasQbv7A1ofHfGZE7Xt0WtJDHITInFZhF09QboDWqrE3yff/OdPJa5HPhVjWx7PKsX5BATHL1mEfDVhUvmgI252Wmm15+RFBvWuHOoqpm5wUSwMZE+GlcyoHgwQy0HOkjGOzJGPgj9JcpC65SN2GqMRXCHI4WfP1hAhaeNDfsqybYn8HVHD7enJwbHxjmIs1m4zZ7YJ8b72iE357yd5GQk8sv3q0BgVm4IwGbVwxIxVoXvzXSQk5HIhn2VzM+z80nNBdOQhw5dAN0TV1XNfDzeppCToWuXGOWAj92VxdtH6/q8/7yMRKqbO83/jeoW433dnXMzf3JfYNZtN/FJzQWE0L38rNQ4Kpsu6lcRMRbuu+MWdpd5KHE5eO/Mebp9aljjzmV9m3T2lHlYXuzkd6cbAXhiXjbbSmuBy808w4lnS80UyURBxsivkP48wEdnOMzp6L86+hWFjhR8Ac0cyLtmQa4pW3vXrTfR2NZNicvBnjIPORl9jTjooZq95Y288l9foKGZRtymCDR0o+5XNX7yF1N5+bEi8zWOVHsJBI30dEcKfvVyR6RVEWx/Yg7fnz3F9M6/nWtn3/oFLC7IQNM0pk1K5jcnG7BFCJlbgjowSwoyqPV2saLYSVN7Dy8uLcDb2Ys/oPLHymYeu8vB6Xq9jNEX0JibncbZpovMz9Nj37ckx3KoqoX1i/P4w+dfI9DDTL86+hXvnvaElfm98riLF5YW8OtjdQRUjS0rZ/Hc/dPCpvoMN5493N4AiWS8MWEM+UAhkKslWqJsXm466xbl8NK+SianxvHVhS5eWFrA5oM1lLpb2HrYzclz35iG9s7JuhZI6DbRXmfLyln0+lW9aiVoV/96zmUjHGMR1DR3ApivkZ4UgwZkJNk442ln2qRkNA0mp8bxr6v1QQsvP1bE43OcLC7IYO7tekz8qQU5WC0KX7f36MnSECEvRehllFZFcEuKvh/nzYlmCGjLylnc4UghzqZw5Asv/oCKVRFkpsRyoLKZ5cVO5k9NZ0WxE3dzJzOdqdydq7+u1aLwt4vzzMYdYyKTYWzXLMjl8TlOvjfTERbuMIy5jGdLJOFMGEN+LQWP+vMAAyrc6UihwtOOL6BS6Ejl1eUu/vf7lWzYV8lz909l/tQM5uelc6S6hYX5uqceGn9dte0YT24/FtEZqrvTRsne20frsFkUYiy6Z763vJEXd5fz0r5KHrvLgaqBMy2O5os+MpJiOHu+g/l5dlPTxaiuuc2eyFur5ppNMOX1bfzsgXy90iU5FoRgRbETq0WvTMlMjuXunJu5zZ4Y5sEa+YHf/u181izI4dyFLjTg4W9Npqm9B0XA7043UjQl1ayh93b2Ul6vz8vcsnKWOTbv1eUuc/+hvPxYEbfZE/uMXgN4oDBTxrMlkhAmjCG/kiTYUBgoUVY0JZWvLnSZqoZrd5zkNyfqOFXXxopip5m8/KxRj42/f0avtgg1ivfk2fljZTOrtx+n1N3CL9+vDBPD+lONl1irwpS0eCyKXmbY1Rtg59E6FhdksOtTPTTR1N5LWrzNnA36cbWXh6ZnUl7fZuqQGCWBoSe5NQtyKXE5qPV2MXNKKr873ajXuS/Oo8sX4Hhtq3kyjDw5hp7gBLCnrIGCzCRUTQ8DfeL2sre8kVibhZ8/WGCGOELf/3DkD0rdLXxQ0WSOZwv97GWYRHIjM+GSnSPd1NFfoswYWmBUXazdcZKuXj8BFUpcDl553GV2Cz53/1TWLMg1uzdDm4GMwRN/rGxGhDTavBjsDA2dCm+1KGbSUKAnMf9qVpbZ4Wm1KHx3xmSz83Pn0TqWuRwcqmox49CRDTGGcc7LSORYbSsxFsH2J+f2UQx8Yl521OeFvv9uXwBfQDPDSaAPlH5r1ZwrPqFKNUKJ5DI3RLLzWjR19Jcou82eGDaY+b47MgmoutLhoaoWM3Tx3P1T2bj/C7Ye1mP1Pb4Av/ygCouiq/Gt3XGSzJQ45mSnmUa8xJXFmgW5ZjJT1fQRdOuX5LGnzINFuSxv+2WLro+yzJXFlpWz2FBSxJurZuO8OZFlLge7yzz8qPhWc1hG5CxSo2KkurnTTNhWeNrM3MKWlbMoykoNDmfIMEMYoSV75fVtrF+SR5zNwj25dk7Xt5kljleLHH4skQzOhDHk17upI9TAbz3sZk9ZAyWuLLp6A6xblBMWunju/qm8tK+Sugtduua4pvFP+6vYU9YA6Ab5eG2rGfp4/0wjpW79ZPBZYwclLgefeTr4X7/XwyO615+FBpS6vRRlpfLyY0VhceOiKalmpcivjn5lVteEnuTK69vCKkb2rV/AC0sL2Lj/CyyKnlSs8LTx+fkOSlxZ7ClrMNf4zMJcyuvbzBCTMX1nUUEG3b0BAqpGiSsLm0Vh7Y6TV/w5yI5LiWRwRiS0IoT4KfBLIEPTtEF/adcitDJatcKR4ZNQLzdUD+Qn75Sxu8zDtElJnD2vC1rF2RTumJRMWV0b8TaFZa4sFAFvH63DokBCjNUMw7x72kNFULO8xJXFHz5vosena5PHx1jCZk9G1r5vPezmpX2V5uzR0MfL69v6PW6XNb7DwzP91dQDrHrrOFaL4Cd/MdWcnbl2x0keKZrcR0J2KMf2Sod8SCQTkWsmmiWEcAJvAAXArNEy5KOFcQIJNYiGIQy9PzQObYhOxdkUsm6K55y3i58/NI1Ch270enwBkuKszHTeZCr9bTpQTY9fNRuCfAEVf0DjhaUF1DR3sre80TTmrx1ym567IeMaehuGdpJbte0Y/oDKkWqvmXPYetjNx9Vetj8x19xPaAw72kCHKz2hykYeiSScaxkjfwX4e4amajrhMEIsoRUWobeNEMW6RTl8fr7DnJIzPy8dm0Xh644efv7QNDYfrOETt54gjLVZ+FHxbaYR33ywhkeKJrP9iTn86+q5Zp35MpeDgIrpDRvzJ41QR2jpZagkwECE1uPfk2fn46CQ19bDX7L1sJtfvHeWrJsuD32el5vOnZOTzRh2aIgndJsrMbyykUciGRpXZciFEN8FGjRNOz1C6xm39Ff+GFAvD0KYk51GfIyVFcVOTp5rZU52GgFVo6a500zo3XdHJt8KJhd/VHwrARVeXe4KM5DxMRbm5do5VNVieqxbVs7ig4qmqKWXw6mxN7bdetjN5oM1LA/qpMy6LY2X9lWyMD+dnUfrzOTti7vLTdVGGcOWSEaHQUMrQog/AJOiPPQi8AJwv6ZpbUKIWmB2f6EVIcTTwNMAt95666xz585dzbrHLNHKH/sLv7x72sPe8kbmZKdxqq6NyalxVHjaSYix8NT82/nV0a/CYu2DxYwHKr0cThnf5SELkzhU1czC/PSgTkoW0yYlm7Hz/EnJnD3fwYpiJxtKimQMWyK5xvQXWrFG2zgUTdPu62eH3wJuB04Lvbd7CvCpEGKupmnno+zndeB10GPkw1v++CCywuLuXHuf5hcDo2wxJyPRTCi+f0Y/bJqmcXeuneR4q5mkhMslf0YJYGhXY4Wnja2Hv+zz2qGvZ3j96xfnDWhoda2Y29n0YTUlwWHGxn6/P3sK83LT+a+KJo7VtjJtUjIbSor6rEcaconk+nHFoRVN0/6sadotmqZla5qWDdQDd0Uz4jcCV1r+GFAx673vujWNF5cWYLUovPphtTlQ2Oj07C8eb3jIz90/td/XHk4ZX+gA4j1lDaxblBO23xd3l3O8tpW52WlUne8wwywgY9gSyWgwYerIR5sr0bQ2qkmMeu/PgzMri7JSKXV7zUaeSMMYGY/fuP8Ls7Qw2msP5yQTuu20SclhIl/zctN5aHombx+t44WlBfz7M/N4YWkBL+2rDDPmEonk+jJoaGWoBL3yG5ZoXqgRPukPw5M2jLARSomzKf2GSEL3HRoqMYy4gRGPN/42WulfO+TmmYW5UUMghh56aMdqqbuFBwozzW0bvunmxZCThvH/x9XePmuQSCTXB+mRjyIBFdPj3bj/LJsOVBMXbAyK9JwjZXpL3S1sK601db0jvevQ8ItxkgmtVIkWAimaksoHFU1hr/HszjIeneEwt93+xNw+BnvNglyzrlwikVx/Jpxo1njEqDaZl2vn2YhEZGhzUaRIFdBHozvyucMVnJIiVRLJ2OWKq1Yk15bIJGQkoeEZw0MvmJQMENaWHy1UMpxKlat5jkQiGV1kaGUUGW6li2FkS91enpiX3cdoR4ZKrkRwSopUSSTjD2nIR5GhVLqExsZDywK3Hv5y0BLC4ZZDXm8FSYlEMjLIGPkYJ1RNcfPBmj7/9xfDvhLBKSlSJZGMba6Z+uGVIA358LjcMp/JoaqWsBZ9aWQlkhuHG2JC0ETFaJk3pv2EhmKkEZdIJNKQD0Jk/TZg1nVfL2QCUiKRDIQ05IMwHAnYa4Ex1zM0Abl2x0me31V+XV5fIpGMfWQdeQSRCb95uemsW5TD6u0nWLPgdtkkI5FIxhzSkEcQ2kFpJBQ3H6zhwemZo9Ik8/JjRTw6wxHWbRnaCCSRSCQytBJBtEk/6xblhE2kv94x6tBuy9Bkp0QikYA05FEJNZwL8zPMeu3RapKRyU6JRDIQ0pBHIdRwvn/mPOsW5QxLZ3yk1yK7LSUSyUDIGHkEkXMn78618+zOMgod4QnQ6xXeGKiNX4ZYJBIJyM7OPsg2dYlEMlaRLfqS64Y8GUok1wbZoi+5box2E5VEcqMhY+SSESe0hFNOGpJIrj3SI5dcE2Ttu0Ry/ZCGXHJNkLXvEsn1QxpyyYgja98lkuuLNOSSEWcoI+wkEsnIIcsPJRKJZJwgyw8lEolkgiINuUQikYxzpCGXSCSScY405BKJRDLOkYZcIpFIxjmjUrUihGgGzo3ArtKB8VqcPF7XLtd9/Rmva5frHnlu0zQtI/LOUTHkI4UQ4kS0UpzxwHhdu1z39We8rl2u+/ohQysSiUQyzpGGXCKRSMY5492Qvz7aC7gKxuva5bqvP+N17XLd14lxHSOXSCQSyfj3yCUSieSGRxpyiUQiGeeMK0MuhHhHCHEq+K9WCHGqn+1qhRB/Dm43JmQWhRD/txCiIWT9D/ez3YNCiLNCiGohxP9xvdcZZT2/FEJUCiHKhRC7hRA39bPdmDjmgx0/obMp+Hi5EOKu0VhnxJqcQog/CiE+F0JUCCH+e5RtFgkh2kK+P//XaKw1GoN99mP0mE8LOZanhBDtQoj/EbHNmD3mfdA0bVz+A/4J+L/6eawWSB/tNUas6f8GfjrINhbADeQAMcBp4M5RXvf9gDX49y+AX4zVYz6U4wc8DLwHCOBu4OgY+G5MBu4K/p0MVEVZ9yJg72iv9Uo++7F4zKN8b86jN9uMi2Me+W9ceeQGQggB/DXw69FeywgzF6jWNK1G07Re4N+A743mgjRN269pmj948xNgymiuZxCGcvy+B/yrpvMJcJMQYvL1XmgomqY1apr2afDvDuBzIGs01zTCjLljHsESwK1p2kh0m48K49KQAwuAJk3TvujncQ3YL4Q4KYR4+jquazCeDV5aviWESIvyeBZQF3K7nrH1g34S3bOKxlg45kM5fmP6GAshsgEXcDTKw98WQpwWQrwnhCi8visbkME++zF9zIEf0L9TOFaPeRjW0V5AJEKIPwCTojz0oqZpvw3+/UMG9sbv0TTNI4S4BfgvIUSlpmkfjfRaIxlo7cBm4B/Qv/T/gB4aejJyF1Gee83rQ4dyzIUQLwJ+4O1+djMqxzyCoRy/UTnGQ0EIkQT8J/A/NE1rj3j4U/RL/4vB/MoeYOp1XmJ/DPbZj+VjHgN8F3g+ysNj+ZiHMeYMuaZp9w30uBDCCjwGzBpgH57g/18LIXajX3Jfc6My2NoNhBBbgb1RHqoHnCG3pwCeEVjagAzhmP8YeARYogWDh1H2MSrHPIKhHL9ROcaDIYSwoRvxtzVN2xX5eKhh1zTt90KI/58QIl3TtFEXdxrCZz8mj3mQh4BPNU1rinxgLB/zSMZjaOU+oFLTtPpoDwohEoUQycbf6Mm6M9dxfVGJiAmWEH1Nx4GpQojbg57CD4DfXY/19YcQ4kHg58B3NU3r6mebsXLMh3L8fgf8t2Alxd1Am6Zpjdd7oaEEcz5vAp9rmraxn20mBbdDCDEX/bfrvX6rjM4QP/sxd8xD6Pfqfqwe82iMOY98CPSJZwkhHMAbmqY9DGQCu4PH3wrs1DTt/eu+yr78byHETPRLylpgLYSvXdM0vxDiWeAD9Ez6W5qmVYzSeg1eBWLRL5kBPtE07ZmxeMz7O35CiGeCj78G/B69iqIa6AKeuN7rjMI9wErgz+JySe0LwK1grvuvgHVCCD9wCfhBf1dH15mon/04OOYIIRKAvyD4WwzeF7rusXrM+yBb9CUSiWScMx5DKxKJRCIJQRpyiUQiGedIQy6RSCTjHGnIJRKJZJwjDblEIpGMc6Qhl0gkknGONOQSiUQyzvn/AyLoCXDFuRFAAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter8_65_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# extract the relevant columns from the centered design matrix of dim n x 2\n", + "x = X_centered[:,0]\n", + "y = X_centered[:,1]\n", + "Cov = np.zeros((2,2))\n", + "Cov[0,1] = np.sum(x.T@y)/(n-1.0)\n", + "Cov[0,0] = np.sum(x.T@x)/(n-1.0)\n", + "Cov[1,1] = np.sum(y.T@y)/(n-1.0)\n", + "Cov[1,0]= Cov[0,1]\n", + "print(\"Centered covariance using own code\")\n", + "print(Cov)\n", + "plt.plot(x, y, 'x')\n", + "plt.axis('equal')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Depending on the number of points $n$, we will get results that are close to the covariance values defined above.\n", + "The plot shows how the data are clustered around a line with slope close to one. Is this expected? Try to change the covariance and the mean values. For example, try to make the variance of the first element much larger than that of the second diagonal element. Try also to shrink the covariance (the non-diagonal elements) and see how the data points are distributed. \n", + "\n", + "### Diagonalize the sample covariance matrix to obtain the principal components\n", + "\n", + "Now we are ready to solve for the principal components! To do so we\n", + "diagonalize the sample covariance matrix $\\Sigma$. We can use the\n", + "function **np.linalg.eig** to do so. It will return the eigenvalues and\n", + "eigenvectors of $\\Sigma$. Once we have these we can perform the \n", + "following tasks:\n", + "\n", + "* We compute the percentage of the total variance captured by the first principal component\n", + "\n", + "* We plot the mean centered data and lines along the first and second principal components\n", + "\n", + "* Then we project the mean centered data onto the first and second principal components, and plot the projected data. \n", + "\n", + "* Finally, we approximate the data as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "x_i \\approx \\tilde{x}_i = \\mu_n + \\langle x_i, v_0 \\rangle v_0\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $v_0$ is the first principal component. \n", + "\n", + "Collecting all these steps we can write our own PCA function and\n", + "compare this with the functionality included in **Scikit-Learn**. \n", + "\n", + "The code here outlines some of the elements we could include in the\n", + "analysis. Feel free to extend upon this in order to address the above\n", + "questions." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigenvalues of Covariance matrix\n", + "5.227120271910939\n", + "0.7578837984963434\n", + "First eigenvector\n", + "[0.85122693 0.52479779]\n", + "Second eigenvector\n", + "[-0.52479779 0.85122693]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Eigenvector of largest eigenvalue\n", + "[0.85122693 0.52479779]\n" + ] + } + ], + "source": [ + "# diagonalize and obtain eigenvalues, not necessarily sorted\n", + "EigValues, EigVectors = np.linalg.eig(Cov)\n", + "# sort eigenvectors and eigenvalues\n", + "#permute = EigValues.argsort()\n", + "#EigValues = EigValues[permute]\n", + "#EigVectors = EigVectors[:,permute]\n", + "print(\"Eigenvalues of Covariance matrix\")\n", + "for i in range(2):\n", + " print(EigValues[i])\n", + "FirstEigvector = EigVectors[:,0]\n", + "SecondEigvector = EigVectors[:,1]\n", + "print(\"First eigenvector\")\n", + "print(FirstEigvector)\n", + "print(\"Second eigenvector\")\n", + "print(SecondEigvector)\n", + "#thereafter we do a PCA with Scikit-learn\n", + "from sklearn.decomposition import PCA\n", + "pca = PCA(n_components = 2)\n", + "X2Dsl = pca.fit_transform(X)\n", + "print(\"Eigenvector of largest eigenvalue\")\n", + "print(pca.components_.T[:, 0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This code does not contain all the above elements, but it shows how we can use **Scikit-Learn** to extract the eigenvector which corresponds to the largest eigenvalue. Try to address the questions we pose before the above code. Try also to change the values of the covariance matrix by making one of the diagonal elements much larger than the other. What do you observe then? \n", + "\n", + "\n", + "## Classical PCA Theorem\n", + "\n", + "We assume now that we have a design matrix $\\boldsymbol{X}$ which has been\n", + "centered as discussed above. For the sake of simplicity we skip the\n", + "overline symbol. The matrix is defined in terms of the various column\n", + "vectors $[\\boldsymbol{x}_0,\\boldsymbol{x}_1,\\dots, \\boldsymbol{x}_{p-1}]$ each with dimension\n", + "$\\boldsymbol{x}\\in {\\mathbb{R}}^{n}$.\n", + "\n", + "\n", + "\n", + "The PCA theorem states that minimizing the above reconstruction error\n", + "corresponds to setting $\\boldsymbol{W}=\\boldsymbol{S}$, the orthogonal matrix which\n", + "diagonalizes the empirical covariance(correlation) matrix. The optimal\n", + "low-dimensional encoding of the data is then given by a set of vectors\n", + "$\\boldsymbol{z}_i$ with at most $l$ vectors, with $l << p$, defined by the\n", + "orthogonal projection of the data onto the columns spanned by the\n", + "eigenvectors of the covariance(correlations matrix).\n", + "\n", + "\n", + "\n", + "\n", + "To show the PCA theorem let us start with the assumption that there is one vector $\\boldsymbol{s}_0$ which corresponds to a solution which minimized the reconstruction error $J$. This is an orthogonal vector. It means that we now approximate the reconstruction error in terms of $\\boldsymbol{w}_0$ and $\\boldsymbol{z}_0$ as\n", + "\n", + "\n", + "\n", + "We are almost there, we have obtained a relation between minimizing\n", + "the reconstruction error and the variance and the covariance\n", + "matrix. Minimizing the error is equivalent to maximizing the variance\n", + "of the projected data.\n", + "\n", + "\n", + "We could trivially maximize the variance of the projection (and\n", + "thereby minimize the error in the reconstruction function) by letting\n", + "the norm-2 of $\\boldsymbol{w}_0$ go to infinity. However, this norm since we\n", + "want the matrix $\\boldsymbol{W}$ to be an orthogonal matrix, is constrained by\n", + "$\\vert\\vert \\boldsymbol{w}_0 \\vert\\vert_2^2=1$. Imposing this condition via a\n", + "Lagrange multiplier we can then in turn maximize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "J(\\boldsymbol{w}_0)= \\boldsymbol{w}_0^T\\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{w}_0+\\lambda_0(1-\\boldsymbol{w}_0^T\\boldsymbol{w}_0).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking the derivative with respect to $\\boldsymbol{w}_0$ we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial J(\\boldsymbol{w}_0)}{\\partial \\boldsymbol{w}_0}= 2\\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{w}_0-2\\lambda_0\\boldsymbol{w}_0=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "meaning that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{w}_0=\\lambda_0\\boldsymbol{w}_0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**The direction that maximizes the variance (or minimizes the construction error) is an eigenvector of the covariance matrix**! If we left multiply with $\\boldsymbol{w}_0^T$ we have the variance of the projected data is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{w}_0^T\\boldsymbol{C}[\\boldsymbol{x}]\\boldsymbol{w}_0=\\lambda_0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to maximize the variance (minimize the construction error)\n", + "we simply pick the eigenvector of the covariance matrix with the\n", + "largest eigenvalue. This establishes the link between the minimization\n", + "of the reconstruction function $J$ in terms of an orthogonal matrix\n", + "and the maximization of the variance and thereby the covariance of our\n", + "observations encoded in the design/feature matrix $\\boldsymbol{X}$.\n", + "\n", + "The proof\n", + "for the other eigenvectors $\\boldsymbol{w}_1,\\boldsymbol{w}_2,\\dots$ can be\n", + "established by applying the above arguments and using the fact that\n", + "our basis of eigenvectors is orthogonal, see [Murphy chapter\n", + "12.2](https://mitpress.mit.edu/books/machine-learning-1). The\n", + "discussion in chapter 12.2 of Murphy's text has also a nice link with\n", + "the Singular Value Decomposition theorem. For categorical data, see\n", + "chapter 12.4 and discussion therein.\n", + "\n", + "For more details, see for example [Vidal, Ma and Sastry, chapter 2](https://www.springer.com/gp/book/9780387878102).\n", + "\n", + "\n", + "## Geometric Interpretation and link with Singular Value Decomposition\n", + "\n", + "For a detailed demonstration of the geometric interpretation, see [Vidal, Ma and Sastry, section 2.1.2](https://www.springer.com/gp/book/9780387878102).\n", + "\n", + "\n", + "Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm.\n", + "First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it.\n", + "\n", + "The following Python code uses NumPy’s **svd()** function to obtain all the principal components of the\n", + "training set, then extracts the first two principal components. First we center the data using either **pandas** or our own code" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    01234
    0-1.5744650.2591531.1973700.1474000.649382
    10.6895190.137652-1.0257090.210340-0.076938
    2-0.2827270.351636-0.5392611.2166830.340782
    30.070889-0.6148081.074067-0.038300-1.450257
    41.7942821.458078-0.207545-0.442600-0.147420
    51.1123830.6474731.4058900.073598-0.276263
    60.397700-1.526744-0.7120181.2162900.418506
    7-0.2806471.106095-1.646283-0.956563-1.564374
    8-0.369139-0.7516990.051649-0.2131030.967809
    9-1.557795-1.0668370.401842-1.2137431.138775
    \n", + "
    " + ], + "text/plain": [ + " 0 1 2 3 4\n", + "0 -1.574465 0.259153 1.197370 0.147400 0.649382\n", + "1 0.689519 0.137652 -1.025709 0.210340 -0.076938\n", + "2 -0.282727 0.351636 -0.539261 1.216683 0.340782\n", + "3 0.070889 -0.614808 1.074067 -0.038300 -1.450257\n", + "4 1.794282 1.458078 -0.207545 -0.442600 -0.147420\n", + "5 1.112383 0.647473 1.405890 0.073598 -0.276263\n", + "6 0.397700 -1.526744 -0.712018 1.216290 0.418506\n", + "7 -0.280647 1.106095 -1.646283 -0.956563 -1.564374\n", + "8 -0.369139 -0.751699 0.051649 -0.213103 0.967809\n", + "9 -1.557795 -1.066837 0.401842 -1.213743 1.138775" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0 1 2 3 4\n", + "0 0.0 0.0 0.0 0.0 0.0\n", + "1 0.0 0.0 0.0 0.0 0.0\n", + "2 0.0 0.0 0.0 0.0 0.0\n", + "3 0.0 0.0 0.0 0.0 0.0\n", + "4 0.0 0.0 0.0 0.0 0.0\n", + "5 0.0 0.0 0.0 0.0 0.0\n", + "6 0.0 0.0 0.0 0.0 0.0\n", + "7 0.0 0.0 0.0 0.0 0.0\n", + "8 0.0 0.0 0.0 0.0 0.0\n", + "9 0.0 0.0 0.0 0.0 0.0\n", + "[[-1.5378811 -0.94639099]\n", + " [ 0.86145244 0.89288636]\n", + " [-0.00445655 0.81633628]\n", + " [ 0.07145103 -1.00433417]\n", + " [ 2.03707133 -0.48476997]\n", + " [ 0.72174172 -1.4557763 ]\n", + " [-0.55854694 1.60673226]\n", + " [ 1.6999536 0.43766686]\n", + " [-1.10405456 0.31718909]\n", + " [-2.18673098 -0.17953942]]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "from IPython.display import display\n", + "np.random.seed(100)\n", + "# setting up a 10 x 5 vanilla matrix \n", + "rows = 10\n", + "cols = 5\n", + "X = np.random.randn(rows,cols)\n", + "df = pd.DataFrame(X)\n", + "# Pandas does the centering for us\n", + "df = df -df.mean()\n", + "display(df)\n", + "\n", + "# we center it ourselves\n", + "X_centered = X - X.mean(axis=0)\n", + "# Then check the difference between pandas and our own set up\n", + "print(X_centered-df)\n", + "#Now we do an SVD\n", + "U, s, V = np.linalg.svd(X_centered)\n", + "c1 = V.T[:, 0]\n", + "c2 = V.T[:, 1]\n", + "W2 = V.T[:, :2]\n", + "X2D = X_centered.dot(W2)\n", + "print(X2D)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "PCA assumes that the dataset is centered around the origin. Scikit-Learn’s PCA classes take care of centering\n", + "the data for you. However, if you implement PCA yourself (as in the preceding example), or if you use other libraries, don’t\n", + "forget to center the data first.\n", + "\n", + "Once you have identified all the principal components, you can reduce the dimensionality of the dataset\n", + "down to $d$ dimensions by projecting it onto the hyperplane defined by the first $d$ principal components.\n", + "Selecting this hyperplane ensures that the projection will preserve as much variance as possible." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "W2 = V.T[:, :2]\n", + "X2D = X_centered.dot(W2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## PCA and scikit-learn\n", + "\n", + "Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The\n", + "following code applies PCA to reduce the dimensionality of the dataset down to two dimensions (note\n", + "that it automatically takes care of centering the data):" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1.5378811 -0.94639099]\n", + " [-0.86145244 0.89288636]\n", + " [ 0.00445655 0.81633628]\n", + " [-0.07145103 -1.00433417]\n", + " [-2.03707133 -0.48476997]\n", + " [-0.72174172 -1.4557763 ]\n", + " [ 0.55854694 1.60673226]\n", + " [-1.6999536 0.43766686]\n", + " [ 1.10405456 0.31718909]\n", + " [ 2.18673098 -0.17953942]]\n" + ] + } + ], + "source": [ + "#thereafter we do a PCA with Scikit-learn\n", + "from sklearn.decomposition import PCA\n", + "pca = PCA(n_components = 2)\n", + "X2D = pca.fit_transform(X)\n", + "print(X2D)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After fitting the PCA transformer to the dataset, you can access the principal components using the\n", + "components variable (note that it contains the PCs as horizontal vectors, so, for example, the first\n", + "principal component is equal to" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-0.62373464, -0.5303329 , 0.317367 , 0.01873344, 0.47815203])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pca.components_.T[:, 0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another very useful piece of information is the explained variance ratio of each principal component,\n", + "available via the $explained\\_variance\\_ratio$ variable. It indicates the proportion of the dataset’s\n", + "variance that lies along the axis of each principal component. \n", + "\n", + "## Back to the Cancer Data\n", + "We can now repeat the above but applied to real data, in this case our breast cancer data.\n", + "Here we compute performance scores on the training data using logistic regression." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Train set accuracy from Logistic Regression: 0.95\n", + "Train set accuracy scaled data: 0.99\n", + "Train set accuracy scaled and PCA data: 0.96\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/MortenImac/anaconda3/lib/python3.8/site-packages/sklearn/linear_model/_logistic.py:814: ConvergenceWarning: lbfgs failed to converge (status=1):\n", + "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n", + "\n", + "Increase the number of iterations (max_iter) or scale the data as shown in:\n", + " https://scikit-learn.org/stable/modules/preprocessing.html\n", + "Please also refer to the documentation for alternative solver options:\n", + " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n", + " n_iter_i = _check_optimize_result(\n" + ] + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.linear_model import LogisticRegression\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "\n", + "logreg = LogisticRegression()\n", + "logreg.fit(X_train, y_train)\n", + "print(\"Train set accuracy from Logistic Regression: {:.2f}\".format(logreg.score(X_train,y_train)))\n", + "# We scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "# Then perform again a log reg fit\n", + "logreg.fit(X_train_scaled, y_train)\n", + "print(\"Train set accuracy scaled data: {:.2f}\".format(logreg.score(X_train_scaled,y_train)))\n", + "#thereafter we do a PCA with Scikit-learn\n", + "from sklearn.decomposition import PCA\n", + "pca = PCA(n_components = 2)\n", + "X2D_train = pca.fit_transform(X_train_scaled)\n", + "# and finally compute the log reg fit and the score on the training data\t\n", + "logreg.fit(X2D_train,y_train)\n", + "print(\"Train set accuracy scaled and PCA data: {:.2f}\".format(logreg.score(X2D_train,y_train)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that our training data after the PCA decomposition has a performance similar to the non-scaled data. \n", + "\n", + "\n", + "Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to\n", + "choose the number of dimensions that add up to a sufficiently large portion of the variance (e.g., 95%).\n", + "Unless, of course, you are reducing dimensionality for data visualization — in that case you will\n", + "generally want to reduce the dimensionality down to 2 or 3.\n", + "The following code computes PCA without reducing dimensionality, then computes the minimum number\n", + "of dimensions required to preserve 95% of the training set’s variance:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "pca = PCA()\n", + "pca.fit(X)\n", + "cumsum = np.cumsum(pca.explained_variance_ratio_)\n", + "d = np.argmax(cumsum >= 0.95) + 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You could then set $n\\_components=d$ and run PCA again. However, there is a much better option: instead\n", + "of specifying the number of principal components you want to preserve, you can set $n\\_components$ to be\n", + "a float between 0.0 and 1.0, indicating the ratio of variance you wish to preserve:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "pca = PCA(n_components=0.95)\n", + "X_reduced = pca.fit_transform(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Incremental PCA\n", + "\n", + "One problem with the preceding implementation of PCA is that it requires the whole training set to fit in\n", + "memory in order for the SVD algorithm to run. Fortunately, Incremental PCA (IPCA) algorithms have\n", + "been developed: you can split the training set into mini-batches and feed an IPCA algorithm one minibatch\n", + "at a time. This is useful for large training sets, and also to apply PCA online (i.e., on the fly, as new\n", + "instances arrive).\n", + "\n", + "\n", + "### Randomized PCA\n", + "\n", + "Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic\n", + "algorithm that quickly finds an approximation of the first d principal components. Its computational\n", + "complexity is $O(m \\times d^2)+O(d^3)$, instead of $O(m \\times n^2) + O(n^3)$, so it is dramatically faster than the\n", + "previous algorithms when $d$ is much smaller than $n$.\n", + "\n", + "\n", + "### Kernel PCA\n", + "\n", + "The kernel trick is a mathematical technique that implicitly maps instances into a\n", + "very high-dimensional space (called the feature space), enabling nonlinear classification and regression\n", + "with Support Vector Machines. Recall that a linear decision boundary in the high-dimensional feature\n", + "space corresponds to a complex nonlinear decision boundary in the original space.\n", + "It turns out that the same trick can be applied to PCA, making it possible to perform complex nonlinear\n", + "projections for dimensionality reduction. This is called Kernel PCA (kPCA). It is often good at\n", + "preserving clusters of instances after projection, or sometimes even unrolling datasets that lie close to a\n", + "twisted manifold.\n", + "For example, the following code uses Scikit-Learn’s KernelPCA class to perform kPCA with an" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from sklearn.decomposition import KernelPCA\n", + "rbf_pca = KernelPCA(n_components = 2, kernel=\"rbf\", gamma=0.04)\n", + "X_reduced = rbf_pca.fit_transform(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Other techniques\n", + "\n", + "\n", + "There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn.\n", + "\n", + "Here are some of the most popular:\n", + "* **Multidimensional Scaling (MDS)** reduces dimensionality while trying to preserve the distances between the instances.\n", + "\n", + "* **Isomap** creates a graph by connecting each instance to its nearest neighbors, then reduces dimensionality while trying to preserve the geodesic distances between the instances.\n", + "\n", + "* **t-Distributed Stochastic Neighbor Embedding** (t-SNE) reduces dimensionality while trying to keep similar instances close and dissimilar instances apart. It is mostly used for visualization, in particular to visualize clusters of instances in high-dimensional space (e.g., to visualize the MNIST images in 2D).\n", + "\n", + "* Linear Discriminant Analysis (LDA) is actually a classification algorithm, but during training it learns the most discriminative axes between the classes, and these axes can then be used to define a hyperplane onto which to project the data. The benefit is that the projection will keep classes as far apart as possible, so LDA is a good technique to reduce dimensionality before running another classification algorithm such as a Support Vector Machine (SVM) classifier discussed in the SVM lectures." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter8.py b/doc/LectureNotes/_build/jupyter_execute/chapter8.py new file mode 100644 index 000000000..4f7082919 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter8.py @@ -0,0 +1,862 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Basic ideas of the Principal Component Analysis (PCA) +# +# The principal component analysis deals with the problem of fitting a +# low-dimensional affine subspace $S$ of dimension $d$ much smaller than +# the total dimension $D$ of the problem at hand (our data +# set). Mathematically it can be formulated as a statistical problem or +# a geometric problem. In our discussion of the theorem for the +# classical PCA, we will stay with a statistical approach. +# Historically, the PCA was first formulated in a statistical setting in order to estimate the principal component of a multivariate random variable. +# +# We have a data set defined by a design/feature matrix $\boldsymbol{X}$ (see below for its definition) +# * Each data point is determined by $p$ extrinsic (measurement) variables +# +# * We may want to ask the following question: Are there fewer intrinsic variables (say $d << p$) that still approximately describe the data? +# +# * If so, these intrinsic variables may tell us something important and finding these intrinsic variables is what dimension reduction methods do. +# +# A good read is for example [Vidal, Ma and Sastry](https://www.springer.com/gp/book/9780387878102). +# +# +# +# ## Introducing the Covariance and Correlation functions +# +# Before we discuss the PCA theorem, we need to remind ourselves about +# the definition of the covariance and the correlation function. These are quantities +# +# Suppose we have defined two vectors +# $\hat{x}$ and $\hat{y}$ with $n$ elements each. The covariance matrix $\boldsymbol{C}$ is defined as + +# $$ +# \boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} \mathrm{cov}[\boldsymbol{x},\boldsymbol{x}] & \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] \\ +# \mathrm{cov}[\boldsymbol{y},\boldsymbol{x}] & \mathrm{cov}[\boldsymbol{y},\boldsymbol{y}] \\ +# \end{bmatrix}, +# $$ + +# where for example + +# $$ +# \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +# $$ + +# With this definition and recalling that the variance is defined as + +# $$ +# \mathrm{var}[\boldsymbol{x}]=\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})^2, +# $$ + +# we can rewrite the covariance matrix as + +# $$ +# \boldsymbol{C}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} \mathrm{var}[\boldsymbol{x}] & \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] \\ +# \mathrm{cov}[\boldsymbol{x},\boldsymbol{y}] & \mathrm{var}[\boldsymbol{y}] \\ +# \end{bmatrix}. +# $$ + +# The covariance takes values between zero and infinity and may thus +# lead to problems with loss of numerical precision for particularly +# large values. It is common to scale the covariance matrix by +# introducing instead the correlation matrix defined via the so-called +# correlation function + +# $$ +# \mathrm{corr}[\boldsymbol{x},\boldsymbol{y}]=\frac{\mathrm{cov}[\boldsymbol{x},\boldsymbol{y}]}{\sqrt{\mathrm{var}[\boldsymbol{x}] \mathrm{var}[\boldsymbol{y}]}}. +# $$ + +# The correlation function is then given by values $\mathrm{corr}[\boldsymbol{x},\boldsymbol{y}] +# \in [-1,1]$. This avoids eventual problems with too large values. We +# can then define the correlation matrix for the two vectors $\boldsymbol{x}$ +# and $\boldsymbol{y}$ as + +# $$ +# \boldsymbol{K}[\boldsymbol{x},\boldsymbol{y}] = \begin{bmatrix} 1 & \mathrm{corr}[\boldsymbol{x},\boldsymbol{y}] \\ +# \mathrm{corr}[\boldsymbol{y},\boldsymbol{x}] & 1 \\ +# \end{bmatrix}, +# $$ + +# In the above example this is the function we constructed using **pandas**. +# +# +# In our derivation of the various regression algorithms like **Ordinary Least Squares** or **Ridge regression** +# we defined the design/feature matrix $\boldsymbol{X}$ as + +# $$ +# \boldsymbol{X}=\begin{bmatrix} +# x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +# x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +# x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +# \dots & \dots & \dots & \dots \dots & \dots \\ +# x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +# x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +# \end{bmatrix}, +# $$ + +# with $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$, with the predictors/features $p$ refering to the column numbers and the +# entries $n$ being the row elements. +# We can rewrite the design/feature matrix in terms of its column vectors as + +# $$ +# \boldsymbol{X}=\begin{bmatrix} \boldsymbol{x}_0 & \boldsymbol{x}_1 & \boldsymbol{x}_2 & \dots & \dots & \boldsymbol{x}_{p-1}\end{bmatrix}, +# $$ + +# with a given vector + +# $$ +# \boldsymbol{x}_i^T = \begin{bmatrix}x_{0,i} & x_{1,i} & x_{2,i}& \dots & \dots x_{n-1,i}\end{bmatrix}. +# $$ + +# With these definitions, we can now rewrite our $2\times 2$ +# correaltion/covariance matrix in terms of a moe general design/feature +# matrix $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$. This leads to a $p\times p$ +# covariance matrix for the vectors $\boldsymbol{x}_i$ with $i=0,1,\dots,p-1$ + +# $$ +# \boldsymbol{C}[\boldsymbol{x}] = \begin{bmatrix} +# \mathrm{var}[\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_1] & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_2] & \dots & \dots & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_{p-1}]\\ +# \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_0] & \mathrm{var}[\boldsymbol{x}_1] & \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_2] & \dots & \dots & \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_{p-1}]\\ +# \mathrm{cov}[\boldsymbol{x}_2,\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_2,\boldsymbol{x}_1] & \mathrm{var}[\boldsymbol{x}_2] & \dots & \dots & \mathrm{cov}[\boldsymbol{x}_2,\boldsymbol{x}_{p-1}]\\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \mathrm{cov}[\boldsymbol{x}_{p-1},\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_{p-1},\boldsymbol{x}_1] & \mathrm{cov}[\boldsymbol{x}_{p-1},\boldsymbol{x}_{2}] & \dots & \dots & \mathrm{var}[\boldsymbol{x}_{p-1}]\\ +# \end{bmatrix}, +# $$ + +# and the correlation matrix + +# $$ +# \boldsymbol{K}[\boldsymbol{x}] = \begin{bmatrix} +# 1 & \mathrm{corr}[\boldsymbol{x}_0,\boldsymbol{x}_1] & \mathrm{corr}[\boldsymbol{x}_0,\boldsymbol{x}_2] & \dots & \dots & \mathrm{corr}[\boldsymbol{x}_0,\boldsymbol{x}_{p-1}]\\ +# \mathrm{corr}[\boldsymbol{x}_1,\boldsymbol{x}_0] & 1 & \mathrm{corr}[\boldsymbol{x}_1,\boldsymbol{x}_2] & \dots & \dots & \mathrm{corr}[\boldsymbol{x}_1,\boldsymbol{x}_{p-1}]\\ +# \mathrm{corr}[\boldsymbol{x}_2,\boldsymbol{x}_0] & \mathrm{corr}[\boldsymbol{x}_2,\boldsymbol{x}_1] & 1 & \dots & \dots & \mathrm{corr}[\boldsymbol{x}_2,\boldsymbol{x}_{p-1}]\\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \dots & \dots & \dots & \dots & \dots & \dots \\ +# \mathrm{corr}[\boldsymbol{x}_{p-1},\boldsymbol{x}_0] & \mathrm{corr}[\boldsymbol{x}_{p-1},\boldsymbol{x}_1] & \mathrm{corr}[\boldsymbol{x}_{p-1},\boldsymbol{x}_{2}] & \dots & \dots & 1\\ +# \end{bmatrix}, +# $$ + +# The Numpy function **np.cov** calculates the covariance elements using +# the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have +# the exact mean values. The following simple function uses the +# **np.vstack** function which takes each vector of dimension $1\times n$ +# and produces a $2\times n$ matrix $\boldsymbol{W}$ + +# $$ +# \boldsymbol{W} = \begin{bmatrix} x_0 & y_0 \\ +# x_1 & y_1 \\ +# x_2 & y_2\\ +# \dots & \dots \\ +# x_{n-2} & y_{n-2}\\ +# x_{n-1} & y_{n-1} & +# \end{bmatrix}, +# $$ + +# which in turn is converted into into the $2\times 2$ covariance matrix +# $\boldsymbol{C}$ via the Numpy function **np.cov()**. We note that we can also calculate +# the mean value of each set of samples $\boldsymbol{x}$ etc using the Numpy +# function **np.mean(x)**. We can also extract the eigenvalues of the +# covariance matrix through the **np.linalg.eig()** function. + +# In[1]: + + +# Importing various packages +import numpy as np +n = 100 +x = np.random.normal(size=n) +print(np.mean(x)) +y = 4+3*x+np.random.normal(size=n) +print(np.mean(y)) +W = np.vstack((x, y)) +C = np.cov(W) +print(C) + + +# ## Correlation Matrix +# +# The previous example can be converted into the correlation matrix by +# simply scaling the matrix elements with the variances. We should also +# subtract the mean values for each column. This leads to the following +# code which sets up the correlations matrix for the previous example in +# a more brute force way. Here we scale the mean values for each column of the design matrix, calculate the relevant mean values and variances and then finally set up the $2\times 2$ correlation matrix (since we have only two vectors). + +# In[2]: + + +import numpy as np +n = 100 +# define two vectors +x = np.random.random(size=n) +y = 4+3*x+np.random.normal(size=n) +#scaling the x and y vectors +x = x - np.mean(x) +y = y - np.mean(y) +variance_x = np.sum(x@x)/n +variance_y = np.sum(y@y)/n +print(variance_x) +print(variance_y) +cov_xy = np.sum(x@y)/n +cov_xx = np.sum(x@x)/n +cov_yy = np.sum(y@y)/n +C = np.zeros((2,2)) +C[0,0]= cov_xx/variance_x +C[1,1]= cov_yy/variance_y +C[0,1]= cov_xy/np.sqrt(variance_y*variance_x) +C[1,0]= C[0,1] +print(C) + + +# We see that the matrix elements along the diagonal are one as they +# should be and that the matrix is symmetric. Furthermore, diagonalizing +# this matrix we easily see that it is a positive definite matrix. +# +# The above procedure with **numpy** can be made more compact if we use **pandas**. +# +# +# We whow here how we can set up the correlation matrix using **pandas**, as done in this simple code + +# In[3]: + + +import numpy as np +import pandas as pd +n = 10 +x = np.random.normal(size=n) +x = x - np.mean(x) +y = 4+3*x+np.random.normal(size=n) +y = y - np.mean(y) +X = (np.vstack((x, y))).T +print(X) +Xpd = pd.DataFrame(X) +print(Xpd) +correlation_matrix = Xpd.corr() +print(correlation_matrix) + + +# We expand this model to the Franke function discussed above. + +# In[4]: + + +# Common imports +import numpy as np +import pandas as pd + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +def create_X(x, y, n ): + if len(x.shape) > 1: + x = np.ravel(x) + y = np.ravel(y) + + N = len(x) + l = int((n+1)*(n+2)/2) # Number of elements in beta + X = np.ones((N,l)) + + for i in range(1,n+1): + q = int((i)*(i+1)/2) + for k in range(i+1): + X[:,q+k] = (x**(i-k))*(y**k) + + return X + + +# Making meshgrid of datapoints and compute Franke's function +n = 4 +N = 100 +x = np.sort(np.random.uniform(0, 1, N)) +y = np.sort(np.random.uniform(0, 1, N)) +z = FrankeFunction(x, y) +X = create_X(x, y, n=n) + +Xpd = pd.DataFrame(X) +# subtract the mean values and set up the covariance matrix +Xpd = Xpd - Xpd.mean() +covariance_matrix = Xpd.cov() +print(covariance_matrix) + + +# We note here that the covariance is zero for the first rows and +# columns since all matrix elements in the design matrix were set to one +# (we are fitting the function in terms of a polynomial of degree $n$). We would however not include the intercept +# and wee can simply +# drop these elements and construct a correlation +# matrix without them. +# +# +# +# We can rewrite the covariance matrix in a more compact form in terms of the design/feature matrix $\boldsymbol{X}$ as + +# $$ +# \boldsymbol{C}[\boldsymbol{x}] = \frac{1}{n}\boldsymbol{X}^T\boldsymbol{X}= \mathbb{E}[\boldsymbol{X}^T\boldsymbol{X}]. +# $$ + +# To see this let us simply look at a design matrix $\boldsymbol{X}\in {\mathbb{R}}^{2\times 2}$ + +# $$ +# \boldsymbol{X}=\begin{bmatrix} +# x_{00} & x_{01}\\ +# x_{10} & x_{11}\\ +# \end{bmatrix}=\begin{bmatrix} +# \boldsymbol{x}_{0} & \boldsymbol{x}_{1}\\ +# \end{bmatrix}. +# $$ + +# If we then compute the expectation value + +# $$ +# \mathbb{E}[\boldsymbol{X}^T\boldsymbol{X}] = \frac{1}{n}\boldsymbol{X}^T\boldsymbol{X}=\begin{bmatrix} +# x_{00}^2+x_{01}^2 & x_{00}x_{10}+x_{01}x_{11}\\ +# x_{10}x_{00}+x_{11}x_{01} & x_{10}^2+x_{11}^2\\ +# \end{bmatrix}, +# $$ + +# which is just + +# $$ +# \boldsymbol{C}[\boldsymbol{x}_0,\boldsymbol{x}_1] = \boldsymbol{C}[\boldsymbol{x}]=\begin{bmatrix} \mathrm{var}[\boldsymbol{x}_0] & \mathrm{cov}[\boldsymbol{x}_0,\boldsymbol{x}_1] \\ +# \mathrm{cov}[\boldsymbol{x}_1,\boldsymbol{x}_0] & \mathrm{var}[\boldsymbol{x}_1] \\ +# \end{bmatrix}, +# $$ + +# where we wrote $$\boldsymbol{C}[\boldsymbol{x}_0,\boldsymbol{x}_1] = \boldsymbol{C}[\boldsymbol{x}]$$ to indicate that this the covariance of the vectors $\boldsymbol{x}$ of the design/feature matrix $\boldsymbol{X}$. +# +# It is easy to generalize this to a matrix $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$. +# +# +# +# ## Towards the PCA theorem +# +# We have that the covariance matrix (the correlation matrix involves a simple rescaling) is given as + +# $$ +# \boldsymbol{C}[\boldsymbol{x}] = \frac{1}{n}\boldsymbol{X}^T\boldsymbol{X}= \mathbb{E}[\boldsymbol{X}^T\boldsymbol{X}]. +# $$ + +# Let us now assume that we can perform a series of orthogonal transformations where we employ some orthogonal matrices $\boldsymbol{S}$. +# These matrices are defined as $\boldsymbol{S}\in {\mathbb{R}}^{p\times p}$ and obey the orthogonality requirements $\boldsymbol{S}\boldsymbol{S}^T=\boldsymbol{S}^T\boldsymbol{S}=\boldsymbol{I}$. The matrix can be written out in terms of the column vectors $\boldsymbol{s}_i$ as $\boldsymbol{S}=[\boldsymbol{s}_0,\boldsymbol{s}_1,\dots,\boldsymbol{s}_{p-1}]$ and $\boldsymbol{s}_i \in {\mathbb{R}}^{p}$. +# +# Assume also that there is a transformation $\boldsymbol{S}^T\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{S}=\boldsymbol{C}[\boldsymbol{y}]$ such that the new matrix $\boldsymbol{C}[\boldsymbol{y}]$ is diagonal with elements $[\lambda_0,\lambda_1,\lambda_2,\dots,\lambda_{p-1}]$. +# +# That is we have + +# $$ +# \boldsymbol{C}[\boldsymbol{y}] = \mathbb{E}[\boldsymbol{S}^T\boldsymbol{X}^T\boldsymbol{X}T\boldsymbol{S}]=\boldsymbol{S}^T\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{S}, +# $$ + +# since the matrix $\boldsymbol{S}$ is not a data dependent matrix. Multiplying with $\boldsymbol{S}$ from the left we have + +# $$ +# \boldsymbol{S}\boldsymbol{C}[\boldsymbol{y}] = \boldsymbol{C}[\boldsymbol{x}]\boldsymbol{S}, +# $$ + +# and since $\boldsymbol{C}[\boldsymbol{y}]$ is diagonal we have for a given eigenvalue $i$ of the covariance matrix that + +# $$ +# \boldsymbol{S}_i\lambda_i = \boldsymbol{C}[\boldsymbol{x}]\boldsymbol{S}_i. +# $$ + +# In the derivation of the PCA theorem we will assume that the eigenvalues are ordered in descending order, that is +# $\lambda_0 > \lambda_1 > \dots > \lambda_{p-1}$. +# +# +# The eigenvalues tell us then how much we need to stretch the +# corresponding eigenvectors. Dimensions with large eigenvalues have +# thus large variations (large variance) and define therefore useful +# dimensions. The data points are more spread out in the direction of +# these eigenvectors. Smaller eigenvalues mean on the other hand that +# the corresponding eigenvectors are shrunk accordingly and the data +# points are tightly bunched together and there is not much variation in +# these specific directions. Hopefully then we could leave it out +# dimensions where the eigenvalues are very small. If $p$ is very large, +# we could then aim at reducing $p$ to $l << p$ and handle only $l$ +# features/predictors. +# +# ### The Algorithm before theorem +# +# Here's how we would proceed in setting up the algorithm for the PCA, see also discussion below here. +# * Set up the datapoints for the design/feature matrix $\boldsymbol{X}$ with $\boldsymbol{X}\in {\mathbb{R}}^{n\times p}$, with the predictors/features $p$ referring to the column numbers and the entries $n$ being the row elements. + +# $$ +# \boldsymbol{X}=\begin{bmatrix} +# x_{0,0} & x_{0,1} & x_{0,2}& \dots & \dots x_{0,p-1}\\ +# x_{1,0} & x_{1,1} & x_{1,2}& \dots & \dots x_{1,p-1}\\ +# x_{2,0} & x_{2,1} & x_{2,2}& \dots & \dots x_{2,p-1}\\ +# \dots & \dots & \dots & \dots \dots & \dots \\ +# x_{n-2,0} & x_{n-2,1} & x_{n-2,2}& \dots & \dots x_{n-2,p-1}\\ +# x_{n-1,0} & x_{n-1,1} & x_{n-1,2}& \dots & \dots x_{n-1,p-1}\\ +# \end{bmatrix}, +# $$ + +# * Center the data by subtracting the mean value for each column. This leads to a new matrix $\boldsymbol{X}\rightarrow \overline{\boldsymbol{X}}$. +# +# * Compute then the covariance/correlation matrix $\mathbb{E}[\overline{\boldsymbol{X}}^T\overline{\boldsymbol{X}}]$. +# +# * Find the eigenpairs of $\boldsymbol{C}$ with eigenvalues $[\lambda_0,\lambda_1,\dots,\lambda_{p-1}]$ and eigenvectors $[\boldsymbol{s}_0,\boldsymbol{s}_1,\dots,\boldsymbol{s}_{p-1}]$. +# +# * Order the eigenvalue (and the eigenvectors accordingly) in order of decreasing eigenvalues. +# +# * Keep only those $l$ eigenvalues larger than a selected threshold value, discarding thus $p-l$ features since we expect small variations in the data here. +# +# ### Writing our own PCA code +# +# We will use a simple example first with two-dimensional data +# drawn from a multivariate normal distribution with the following mean and covariance matrix (we have fixed these quantities but will play around with them below): + +# $$ +# \mu = (-1,2) \qquad \Sigma = \begin{bmatrix} 4 & 2 \\ +# 2 & 2 +# \end{bmatrix} +# $$ + +# Note that the mean refers to each column of data. +# We will generate $n = 10000$ points $X = \{ x_1, \ldots, x_N \}$ from +# this distribution, and store them in the $1000 \times 2$ matrix $\boldsymbol{X}$. This is our design matrix where we have forced the covariance and mean values to take specific values. +# +# The following Python code aids in setting up the data and writing out the design matrix. +# Note that the function **multivariate** returns also the covariance discussed above and that it is defined by dividing by $n-1$ instead of $n$. + +# In[5]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from IPython.display import display +n = 10000 +mean = (-1, 2) +cov = [[4, 2], [2, 2]] +X = np.random.multivariate_normal(mean, cov, n) + + +# Now we are going to implement the PCA algorithm. We will break it down into various substeps. +# +# +# The first step of PCA is to compute the sample mean of the data and use it to center the data. Recall that the sample mean is + +# $$ +# \mu_n = \frac{1}{n} \sum_{i=1}^n x_i +# $$ + +# and the mean-centered data $\bar{X} = \{ \bar{x}_1, \ldots, \bar{x}_n \}$ takes the form + +# $$ +# \bar{x}_i = x_i - \mu_n. +# $$ + +# When you are done with these steps, print out $\mu_n$ to verify it is +# close to $\mu$ and plot your mean centered data to verify it is +# centered at the origin! +# The following code elements perform these operations using **pandas** or using our own functionality for doing so. The latter, using **numpy** is rather simple through the **mean()** function. + +# In[6]: + + +df = pd.DataFrame(X) +# Pandas does the centering for us +df = df -df.mean() +# we center it ourselves +X_centered = X - X.mean(axis=0) + + +# Alternatively, we could use the functions we discussed +# earlier for scaling the data set. That is, we could have used the +# **StandardScaler** function in **Scikit-Learn**, a function which ensures +# that for each feature/predictor we study the mean value is zero and +# the variance is one (every column in the design/feature matrix). You +# would then not get the same results, since we divide by the +# variance. The diagonal covariance matrix elements will then be one, +# while the non-diagonal ones need to be divided by $2\sqrt{2}$ for our +# specific case. +# +# +# Now we are going to use the mean centered data to compute the sample covariance of the data by using the following equation + +# $$ +# \Sigma_n = \frac{1}{n-1} \sum_{i=1}^n \bar{x}_i^T \bar{x}_i = \frac{1}{n-1} \sum_{i=1}^n (x_i - \mu_n)^T (x_i - \mu_n) +# $$ + +# where the data points $x_i \in \mathbb{R}^p$ (here in this example $p = 2$) are column vectors and $x^T$ is the transpose of $x$. +# We can write our own code or simply use either the functionaly of **numpy** or that of **pandas**, as follows + +# In[7]: + + +print(df.cov()) +print(np.cov(X_centered.T)) + + +# Note that the way we define the covariance matrix here has a factor $n-1$ instead of $n$. This is included in the **cov()** function by **numpy** and **pandas**. +# Our own code here is not very elegant and asks for obvious improvements. It is tailored to this specific $2\times 2$ covariance matrix. + +# In[8]: + + +# extract the relevant columns from the centered design matrix of dim n x 2 +x = X_centered[:,0] +y = X_centered[:,1] +Cov = np.zeros((2,2)) +Cov[0,1] = np.sum(x.T@y)/(n-1.0) +Cov[0,0] = np.sum(x.T@x)/(n-1.0) +Cov[1,1] = np.sum(y.T@y)/(n-1.0) +Cov[1,0]= Cov[0,1] +print("Centered covariance using own code") +print(Cov) +plt.plot(x, y, 'x') +plt.axis('equal') +plt.show() + + +# Depending on the number of points $n$, we will get results that are close to the covariance values defined above. +# The plot shows how the data are clustered around a line with slope close to one. Is this expected? Try to change the covariance and the mean values. For example, try to make the variance of the first element much larger than that of the second diagonal element. Try also to shrink the covariance (the non-diagonal elements) and see how the data points are distributed. +# +# ### Diagonalize the sample covariance matrix to obtain the principal components +# +# Now we are ready to solve for the principal components! To do so we +# diagonalize the sample covariance matrix $\Sigma$. We can use the +# function **np.linalg.eig** to do so. It will return the eigenvalues and +# eigenvectors of $\Sigma$. Once we have these we can perform the +# following tasks: +# +# * We compute the percentage of the total variance captured by the first principal component +# +# * We plot the mean centered data and lines along the first and second principal components +# +# * Then we project the mean centered data onto the first and second principal components, and plot the projected data. +# +# * Finally, we approximate the data as + +# $$ +# x_i \approx \tilde{x}_i = \mu_n + \langle x_i, v_0 \rangle v_0 +# $$ + +# where $v_0$ is the first principal component. +# +# Collecting all these steps we can write our own PCA function and +# compare this with the functionality included in **Scikit-Learn**. +# +# The code here outlines some of the elements we could include in the +# analysis. Feel free to extend upon this in order to address the above +# questions. + +# In[9]: + + +# diagonalize and obtain eigenvalues, not necessarily sorted +EigValues, EigVectors = np.linalg.eig(Cov) +# sort eigenvectors and eigenvalues +#permute = EigValues.argsort() +#EigValues = EigValues[permute] +#EigVectors = EigVectors[:,permute] +print("Eigenvalues of Covariance matrix") +for i in range(2): + print(EigValues[i]) +FirstEigvector = EigVectors[:,0] +SecondEigvector = EigVectors[:,1] +print("First eigenvector") +print(FirstEigvector) +print("Second eigenvector") +print(SecondEigvector) +#thereafter we do a PCA with Scikit-learn +from sklearn.decomposition import PCA +pca = PCA(n_components = 2) +X2Dsl = pca.fit_transform(X) +print("Eigenvector of largest eigenvalue") +print(pca.components_.T[:, 0]) + + +# This code does not contain all the above elements, but it shows how we can use **Scikit-Learn** to extract the eigenvector which corresponds to the largest eigenvalue. Try to address the questions we pose before the above code. Try also to change the values of the covariance matrix by making one of the diagonal elements much larger than the other. What do you observe then? +# +# +# ## Classical PCA Theorem +# +# We assume now that we have a design matrix $\boldsymbol{X}$ which has been +# centered as discussed above. For the sake of simplicity we skip the +# overline symbol. The matrix is defined in terms of the various column +# vectors $[\boldsymbol{x}_0,\boldsymbol{x}_1,\dots, \boldsymbol{x}_{p-1}]$ each with dimension +# $\boldsymbol{x}\in {\mathbb{R}}^{n}$. +# +# +# +# The PCA theorem states that minimizing the above reconstruction error +# corresponds to setting $\boldsymbol{W}=\boldsymbol{S}$, the orthogonal matrix which +# diagonalizes the empirical covariance(correlation) matrix. The optimal +# low-dimensional encoding of the data is then given by a set of vectors +# $\boldsymbol{z}_i$ with at most $l$ vectors, with $l << p$, defined by the +# orthogonal projection of the data onto the columns spanned by the +# eigenvectors of the covariance(correlations matrix). +# +# +# +# +# To show the PCA theorem let us start with the assumption that there is one vector $\boldsymbol{s}_0$ which corresponds to a solution which minimized the reconstruction error $J$. This is an orthogonal vector. It means that we now approximate the reconstruction error in terms of $\boldsymbol{w}_0$ and $\boldsymbol{z}_0$ as +# +# +# +# We are almost there, we have obtained a relation between minimizing +# the reconstruction error and the variance and the covariance +# matrix. Minimizing the error is equivalent to maximizing the variance +# of the projected data. +# +# +# We could trivially maximize the variance of the projection (and +# thereby minimize the error in the reconstruction function) by letting +# the norm-2 of $\boldsymbol{w}_0$ go to infinity. However, this norm since we +# want the matrix $\boldsymbol{W}$ to be an orthogonal matrix, is constrained by +# $\vert\vert \boldsymbol{w}_0 \vert\vert_2^2=1$. Imposing this condition via a +# Lagrange multiplier we can then in turn maximize + +# $$ +# J(\boldsymbol{w}_0)= \boldsymbol{w}_0^T\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0+\lambda_0(1-\boldsymbol{w}_0^T\boldsymbol{w}_0). +# $$ + +# Taking the derivative with respect to $\boldsymbol{w}_0$ we obtain + +# $$ +# \frac{\partial J(\boldsymbol{w}_0)}{\partial \boldsymbol{w}_0}= 2\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0-2\lambda_0\boldsymbol{w}_0=0, +# $$ + +# meaning that + +# $$ +# \boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0=\lambda_0\boldsymbol{w}_0. +# $$ + +# **The direction that maximizes the variance (or minimizes the construction error) is an eigenvector of the covariance matrix**! If we left multiply with $\boldsymbol{w}_0^T$ we have the variance of the projected data is + +# $$ +# \boldsymbol{w}_0^T\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0=\lambda_0. +# $$ + +# If we want to maximize the variance (minimize the construction error) +# we simply pick the eigenvector of the covariance matrix with the +# largest eigenvalue. This establishes the link between the minimization +# of the reconstruction function $J$ in terms of an orthogonal matrix +# and the maximization of the variance and thereby the covariance of our +# observations encoded in the design/feature matrix $\boldsymbol{X}$. +# +# The proof +# for the other eigenvectors $\boldsymbol{w}_1,\boldsymbol{w}_2,\dots$ can be +# established by applying the above arguments and using the fact that +# our basis of eigenvectors is orthogonal, see [Murphy chapter +# 12.2](https://mitpress.mit.edu/books/machine-learning-1). The +# discussion in chapter 12.2 of Murphy's text has also a nice link with +# the Singular Value Decomposition theorem. For categorical data, see +# chapter 12.4 and discussion therein. +# +# For more details, see for example [Vidal, Ma and Sastry, chapter 2](https://www.springer.com/gp/book/9780387878102). +# +# +# ## Geometric Interpretation and link with Singular Value Decomposition +# +# For a detailed demonstration of the geometric interpretation, see [Vidal, Ma and Sastry, section 2.1.2](https://www.springer.com/gp/book/9780387878102). +# +# +# Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm. +# First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it. +# +# The following Python code uses NumPy’s **svd()** function to obtain all the principal components of the +# training set, then extracts the first two principal components. First we center the data using either **pandas** or our own code + +# In[10]: + + +import numpy as np +import pandas as pd +from IPython.display import display +np.random.seed(100) +# setting up a 10 x 5 vanilla matrix +rows = 10 +cols = 5 +X = np.random.randn(rows,cols) +df = pd.DataFrame(X) +# Pandas does the centering for us +df = df -df.mean() +display(df) + +# we center it ourselves +X_centered = X - X.mean(axis=0) +# Then check the difference between pandas and our own set up +print(X_centered-df) +#Now we do an SVD +U, s, V = np.linalg.svd(X_centered) +c1 = V.T[:, 0] +c2 = V.T[:, 1] +W2 = V.T[:, :2] +X2D = X_centered.dot(W2) +print(X2D) + + +# PCA assumes that the dataset is centered around the origin. Scikit-Learn’s PCA classes take care of centering +# the data for you. However, if you implement PCA yourself (as in the preceding example), or if you use other libraries, don’t +# forget to center the data first. +# +# Once you have identified all the principal components, you can reduce the dimensionality of the dataset +# down to $d$ dimensions by projecting it onto the hyperplane defined by the first $d$ principal components. +# Selecting this hyperplane ensures that the projection will preserve as much variance as possible. + +# In[11]: + + +W2 = V.T[:, :2] +X2D = X_centered.dot(W2) + + +# ## PCA and scikit-learn +# +# Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The +# following code applies PCA to reduce the dimensionality of the dataset down to two dimensions (note +# that it automatically takes care of centering the data): + +# In[12]: + + +#thereafter we do a PCA with Scikit-learn +from sklearn.decomposition import PCA +pca = PCA(n_components = 2) +X2D = pca.fit_transform(X) +print(X2D) + + +# After fitting the PCA transformer to the dataset, you can access the principal components using the +# components variable (note that it contains the PCs as horizontal vectors, so, for example, the first +# principal component is equal to + +# In[13]: + + +pca.components_.T[:, 0] + + +# Another very useful piece of information is the explained variance ratio of each principal component, +# available via the $explained\_variance\_ratio$ variable. It indicates the proportion of the dataset’s +# variance that lies along the axis of each principal component. +# +# ## Back to the Cancer Data +# We can now repeat the above but applied to real data, in this case our breast cancer data. +# Here we compute performance scores on the training data using logistic regression. + +# In[14]: + + +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.linear_model import LogisticRegression +cancer = load_breast_cancer() + +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) + +logreg = LogisticRegression() +logreg.fit(X_train, y_train) +print("Train set accuracy from Logistic Regression: {:.2f}".format(logreg.score(X_train,y_train))) +# We scale the data +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) +# Then perform again a log reg fit +logreg.fit(X_train_scaled, y_train) +print("Train set accuracy scaled data: {:.2f}".format(logreg.score(X_train_scaled,y_train))) +#thereafter we do a PCA with Scikit-learn +from sklearn.decomposition import PCA +pca = PCA(n_components = 2) +X2D_train = pca.fit_transform(X_train_scaled) +# and finally compute the log reg fit and the score on the training data +logreg.fit(X2D_train,y_train) +print("Train set accuracy scaled and PCA data: {:.2f}".format(logreg.score(X2D_train,y_train))) + + +# We see that our training data after the PCA decomposition has a performance similar to the non-scaled data. +# +# +# Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to +# choose the number of dimensions that add up to a sufficiently large portion of the variance (e.g., 95%). +# Unless, of course, you are reducing dimensionality for data visualization — in that case you will +# generally want to reduce the dimensionality down to 2 or 3. +# The following code computes PCA without reducing dimensionality, then computes the minimum number +# of dimensions required to preserve 95% of the training set’s variance: + +# In[15]: + + +pca = PCA() +pca.fit(X) +cumsum = np.cumsum(pca.explained_variance_ratio_) +d = np.argmax(cumsum >= 0.95) + 1 + + +# You could then set $n\_components=d$ and run PCA again. However, there is a much better option: instead +# of specifying the number of principal components you want to preserve, you can set $n\_components$ to be +# a float between 0.0 and 1.0, indicating the ratio of variance you wish to preserve: + +# In[16]: + + +pca = PCA(n_components=0.95) +X_reduced = pca.fit_transform(X) + + +# ### Incremental PCA +# +# One problem with the preceding implementation of PCA is that it requires the whole training set to fit in +# memory in order for the SVD algorithm to run. Fortunately, Incremental PCA (IPCA) algorithms have +# been developed: you can split the training set into mini-batches and feed an IPCA algorithm one minibatch +# at a time. This is useful for large training sets, and also to apply PCA online (i.e., on the fly, as new +# instances arrive). +# +# +# ### Randomized PCA +# +# Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic +# algorithm that quickly finds an approximation of the first d principal components. Its computational +# complexity is $O(m \times d^2)+O(d^3)$, instead of $O(m \times n^2) + O(n^3)$, so it is dramatically faster than the +# previous algorithms when $d$ is much smaller than $n$. +# +# +# ### Kernel PCA +# +# The kernel trick is a mathematical technique that implicitly maps instances into a +# very high-dimensional space (called the feature space), enabling nonlinear classification and regression +# with Support Vector Machines. Recall that a linear decision boundary in the high-dimensional feature +# space corresponds to a complex nonlinear decision boundary in the original space. +# It turns out that the same trick can be applied to PCA, making it possible to perform complex nonlinear +# projections for dimensionality reduction. This is called Kernel PCA (kPCA). It is often good at +# preserving clusters of instances after projection, or sometimes even unrolling datasets that lie close to a +# twisted manifold. +# For example, the following code uses Scikit-Learn’s KernelPCA class to perform kPCA with an + +# In[17]: + + +from sklearn.decomposition import KernelPCA +rbf_pca = KernelPCA(n_components = 2, kernel="rbf", gamma=0.04) +X_reduced = rbf_pca.fit_transform(X) + + +# ## Other techniques +# +# +# There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn. +# +# Here are some of the most popular: +# * **Multidimensional Scaling (MDS)** reduces dimensionality while trying to preserve the distances between the instances. +# +# * **Isomap** creates a graph by connecting each instance to its nearest neighbors, then reduces dimensionality while trying to preserve the geodesic distances between the instances. +# +# * **t-Distributed Stochastic Neighbor Embedding** (t-SNE) reduces dimensionality while trying to keep similar instances close and dissimilar instances apart. It is mostly used for visualization, in particular to visualize clusters of instances in high-dimensional space (e.g., to visualize the MNIST images in 2D). +# +# * Linear Discriminant Analysis (LDA) is actually a classification algorithm, but during training it learns the most discriminative axes between the classes, and these axes can then be used to define a hyperplane onto which to project the data. The benefit is that the projection will keep classes as far apart as possible, so LDA is a good technique to reduce dimensionality before running another classification algorithm such as a Support Vector Machine (SVM) classifier discussed in the SVM lectures. diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter8_65_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter8_65_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9ee1d6c6ecc331bc16884ff6084e816f0ddab1 GIT binary patch literal 28716 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 RI&AL4yQ!cmUxYFC{eQTq%*Fr! literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter9.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter9.ipynb new file mode 100644 index 000000000..d2bfe8ddf --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter9.ipynb @@ -0,0 +1,1357 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 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.\n", + "\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", + "metadata": {}, + "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", + "metadata": {}, + "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.\n", + "\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.\n", + "\n", + "\n", + "### 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.\n", + "\n", + "\n", + "\n", + "### 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.\n", + "\n", + "### 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.\n", + "\n", + "### 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.\n", + "\n", + "\n", + "## 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).\n", + "\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.\n", + "\n", + "\n", + "\n", + "The output $y$ is produced via the activation function $f$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y = f\\left(\\sum_{i=1}^n w_ix_i + b_i\\right) = f(z),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function receives $x_i$ as inputs.\n", + "Here the activation $z=(\\sum_{i=1}^n w_ix_i+b_i)$. \n", + "In an FFNN of such neurons, the *inputs* $x_i$ are the *outputs* of\n", + "the neurons in the preceding layer. Furthermore, an MLP is\n", + "fully-connected, which means that each neuron receives a weighted sum\n", + "of the outputs of *all* neurons in the previous layer.\n", + "\n", + "\n", + "First, for each node $i$ in the first hidden layer, we calculate a weighted sum $z_i^1$ of the input coordinates $x_j$," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} z_i^1 = \\sum_{j=1}^{M} w_{ij}^1 x_j + b_i^1\n", + "\\label{_auto1} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here $b_i$ is the so-called bias which is normally needed in\n", + "case of zero activation weights or inputs. How to fix the biases and\n", + "the weights will be discussed below. The value of $z_i^1$ is the\n", + "argument to the activation function $f_i$ of each node $i$, The\n", + "variable $M$ stands for all possible inputs to a given node $i$ in the\n", + "first layer. We define the output $y_i^1$ of all neurons in layer 1 as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^1 = f(z_i^1) = f\\left(\\sum_{j=1}^M w_{ij}^1 x_j + b_i^1\\right)\n", + "\\label{outputLayer1} \\tag{3}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we assume that all nodes in the same layer have identical\n", + "activation functions, hence the notation $f$. In general, we could assume in the more general case that different layers have different activation functions.\n", + "In this case we would identify these functions with a superscript $l$ for the $l$-th layer," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^l = f^l(u_i^l) = f^l\\left(\\sum_{j=1}^{N_{l-1}} w_{ij}^l y_j^{l-1} + b_i^l\\right)\n", + "\\label{generalLayer} \\tag{4}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $N_l$ is the number of nodes in layer $l$. When the output of\n", + "all the nodes in the first hidden layer are computed, the values of\n", + "the subsequent layer can be calculated and so forth until the output\n", + "is obtained.\n", + "\n", + "\n", + "\n", + "\n", + "The output of neuron $i$ in layer 2 is thus," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^2 = f^2\\left(\\sum_{j=1}^N w_{ij}^2 y_j^1 + b_i^2\\right) \n", + "\\label{_auto2} \\tag{5}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = f^2\\left[\\sum_{j=1}^N w_{ij}^2f^1\\left(\\sum_{k=1}^M w_{jk}^1 x_k + b_j^1\\right) + b_i^2\\right]\n", + "\\label{outputLayer2} \\tag{6}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have substituted $y_k^1$ with the inputs $x_k$. Finally, the ANN output reads" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^3 = f^3\\left(\\sum_{j=1}^N w_{ij}^3 y_j^2 + b_i^3\\right) \n", + "\\label{_auto3} \\tag{7}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = f_3\\left[\\sum_{j} w_{ij}^3 f^2\\left(\\sum_{k} w_{jk}^2 f^1\\left(\\sum_{m} w_{km}^1 x_m + b_k^1\\right) + b_j^2\\right)\n", + " + b_1^3\\right]\n", + "\\label{_auto4} \\tag{8}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can generalize this expression to an MLP with $l$ hidden\n", + "layers. The complete functional form is," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "y^{l+1}_i = f^{l+1}\\left[\\!\\sum_{j=1}^{N_l} w_{ij}^3 f^l\\left(\\sum_{k=1}^{N_{l-1}}w_{jk}^{l-1}\\left(\\dots f^1\\left(\\sum_{n=1}^{N_0} w_{mn}^1 x_n+ b_m^1\\right)\\dots\\right)+b_k^2\\right)+b_1^3\\right] \n", + "\\label{completeNN} \\tag{9}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which illustrates a basic property of MLPs: The only independent\n", + "variables are the input values $x_n$.\n", + "\n", + "\n", + "This confirms that an MLP, despite its quite convoluted mathematical\n", + "form, is nothing more than an analytic function, specifically a\n", + "mapping of real-valued vectors $\\hat{x} \\in \\mathbb{R}^n \\rightarrow\n", + "\\hat{y} \\in \\mathbb{R}^m$.\n", + "\n", + "Furthermore, the flexibility and universality of an MLP can be\n", + "illustrated by realizing that the expression is essentially a nested\n", + "sum of scaled activation functions of the form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " f(x) = c_1 f(c_2 x + c_3) + c_4\n", + "\\label{_auto5} \\tag{10}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the parameters $c_i$ are weights and biases. By adjusting these\n", + "parameters, the activation functions can be shifted up and down or\n", + "left and right, change slope or be rescaled which is the key to the\n", + "flexibility of a neural network.\n", + "\n", + "\n", + "We can introduce a more convenient notation for the activations in an A NN. \n", + "\n", + "Additionally, we can represent the biases and activations\n", + "as layer-wise column vectors $\\hat{b}_l$ and $\\hat{y}_l$, so that the $i$-th element of each vector \n", + "is the bias $b_i^l$ and activation $y_i^l$ of node $i$ in layer $l$ respectively. \n", + "\n", + "We have that $\\mathrm{W}_l$ is an $N_{l-1} \\times N_l$ matrix, while $\\hat{b}_l$ and $\\hat{y}_l$ are $N_l \\times 1$ column vectors. \n", + "With this notation, the sum becomes a matrix-vector multiplication, and we can write\n", + "the equation for the activations of hidden layer 2 (assuming three nodes for simplicity) as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\hat{y}_2 = f_2(\\mathrm{W}_2 \\hat{y}_{1} + \\hat{b}_{2}) = \n", + " f_2\\left(\\left[\\begin{array}{ccc}\n", + " w^2_{11} &w^2_{12} &w^2_{13} \\\\\n", + " w^2_{21} &w^2_{22} &w^2_{23} \\\\\n", + " w^2_{31} &w^2_{32} &w^2_{33} \\\\\n", + " \\end{array} \\right] \\cdot\n", + " \\left[\\begin{array}{c}\n", + " y^1_1 \\\\\n", + " y^1_2 \\\\\n", + " y^1_3 \\\\\n", + " \\end{array}\\right] + \n", + " \\left[\\begin{array}{c}\n", + " b^2_1 \\\\\n", + " b^2_2 \\\\\n", + " b^2_3 \\\\\n", + " \\end{array}\\right]\\right).\n", + "\\label{_auto6} \\tag{11}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Matrix-vector notation and activation\n", + "\n", + "The activation of node $i$ in layer 2 is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y^2_i = f_2\\Bigr(w^2_{i1}y^1_1 + w^2_{i2}y^1_2 + w^2_{i3}y^1_3 + b^2_i\\Bigr) = \n", + " f_2\\left(\\sum_{j=1}^3 w^2_{ij} y_j^1 + b^2_i\\right).\n", + "\\label{_auto7} \\tag{12}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is not just a convenient and compact notation, but also a useful\n", + "and intuitive way to think about MLPs: The output is calculated by a\n", + "series of matrix-vector multiplications and vector additions that are\n", + "used as input to the activation functions. For each operation\n", + "$\\mathrm{W}_l \\hat{y}_{l-1}$ we move forward one layer.\n", + "\n", + "\n", + "\n", + "### 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\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", + "metadata": {}, + "source": [ + "$$\n", + "f(x) = \\frac{1}{1 + e^{-x}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the *hyperbolic tangent* function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(x) = \\tanh(x)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter9_29_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter9_29_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter9_29_2.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter9_29_3.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "\"\"\"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", + "metadata": {}, + "source": [ + "## The multilayer perceptron (MLP)\n", + "\n", + "The multilayer perceptron is a very popular, and easy to implement approach, to deep learning. It consists of\n", + "1. A neural network with one or more layers of nodes between the input and the output nodes.\n", + "\n", + "2. The multilayer network structure, or architecture, or topology, consists of an input layer, one or more hidden layers, and one output layer.\n", + "\n", + "3. The input nodes pass values to the first hidden layer, its nodes pass the information on to the second and so on till we reach the output layer.\n", + "\n", + "As a convention it is normal to call a network with one layer of input units, one layer of hidden\n", + "units and one layer of output units as a two-layer network. A network with two layers of hidden units is called a three-layer network etc etc.\n", + "\n", + "For an MLP network there is no direct connection between the output nodes/neurons/units and the input nodes/neurons/units.\n", + "Hereafter we will call the various entities of a layer for nodes.\n", + "There are also no connections within a single layer.\n", + "\n", + "The number of input nodes does not need to equal the number of output\n", + "nodes. This applies also to the hidden layers. Each layer may have its\n", + "own number of nodes and activation functions.\n", + "\n", + "The hidden layers have their name from the fact that they are not\n", + "linked to observables and as we will see below when we define the\n", + "so-called activation $\\hat{z}$, we can think of this as a basis\n", + "expansion of the original inputs $\\hat{x}$. The difference however\n", + "between neural networks and say linear regression is that now these\n", + "basis functions (which will correspond to the weights in the network)\n", + "are learned from data. This results in an important difference between\n", + "neural networks and deep learning approaches on one side and methods\n", + "like logistic regression or linear regression and their modifications on the other side.\n", + "\n", + "\n", + "### From one to many layers, the universal approximation theorem\n", + "\n", + "A neural network with only one layer, what we called the simple\n", + "perceptron, is best suited if we have a standard binary model with\n", + "clear (linear) boundaries between the outcomes. As such it could\n", + "equally well be replaced by standard linear regression or logistic\n", + "regression. Networks with one or more hidden layers approximate\n", + "systems with more complex boundaries.\n", + "\n", + "As stated earlier, \n", + "an important theorem in studies of neural networks, restated without\n", + "proof here, is the [universal approximation\n", + "theorem](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.441.7873&rep=rep1&type=pdf).\n", + "\n", + "It states that a feed-forward network with a single hidden layer\n", + "containing a finite number of neurons can approximate continuous\n", + "functions on compact subsets of real functions. The theorem thus\n", + "states that simple neural networks can represent a wide variety of\n", + "interesting functions when given appropriate parameters. It is the\n", + "multilayer feedforward architecture itself which gives neural networks\n", + "the potential of being universal approximators.\n", + "\n", + "\n", + "\n", + "## Deriving the back propagation code for a multilayer perceptron model\n", + "\n", + "\n", + "\n", + "As we have seen now in a feed forward network, we can express the final output of our network in terms of basic matrix-vector multiplications.\n", + "The unknowwn quantities are our weights $w_{ij}$ and we need to find an algorithm for changing them so that our errors are as small as possible.\n", + "This leads us to the famous [back propagation algorithm](https://www.nature.com/articles/323533a0).\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?\n", + "\n", + "To derive these equations let us start with a plain regression problem\n", + "and define our cost function as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "{\\cal C}(\\hat{W}) = \\frac{1}{2}\\sum_{i=1}^n\\left(y_i - t_i\\right)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the $t_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 $\\hat{x}$ are given by $y_i$. Below we will demonstrate\n", + "how the basic equations arising from the back propagation algorithm\n", + "can be modified in order to study classification problems with $K$\n", + "classes.\n", + "\n", + "\n", + "With our definition of the targets $\\hat{t}$, the outputs of the\n", + "network $\\hat{y}$ and the inputs $\\hat{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", + "metadata": {}, + "source": [ + "$$\n", + "z_j^l = \\sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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 here illustrates this equation. We can rewrite this in a more\n", + "compact form as the matrix-vector products we discussed earlier," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{z}^l = \\left(\\hat{W}^l\\right)^T\\hat{a}^{l-1}+\\hat{b}^l.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the activation values $\\hat{z}^l$ we can in turn define the\n", + "output of layer $l$ as $\\hat{a}^l = f(\\hat{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", + "metadata": {}, + "source": [ + "$$\n", + "a_j^l = f(z_j^l) = \\frac{1}{1+\\exp{-(z_j^l)}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Derivatives and the chain rule\n", + "\n", + "From the definition of the activation $z_j^l$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial z_j^l}{\\partial w_{ij}^l} = a_i^{l-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial z_j^l}{\\partial a_i^{l-1}} = w_{ji}^l.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With our definition of the activation function we have that (note that this function depends only on $z_j^l$)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial a_j^l}{\\partial z_j^{l}} = a_j^l(1-a_j^l)=f(z_j^l)(1-f(z_j^l)).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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", + "metadata": {}, + "source": [ + "$$\n", + "{\\cal C}(\\hat{W^L}) = \\frac{1}{2}\\sum_{i=1}^n\\left(y_i - t_i\\right)^2=\\frac{1}{2}\\sum_{i=1}^n\\left(a_i^L - t_i\\right)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The derivative of this function with respect to the weights is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\left(a_j^L - t_j\\right)\\frac{\\partial a_j^L}{\\partial w_{jk}^{L}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The last partial derivative can easily be computed and reads (by applying the chain rule)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "metadata": {}, + "source": [ + "### Bringing it together, first back propagation equation\n", + "\n", + "We have thus" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\left(a_j^L - t_j\\right)a_j^L(1-a_j^L)a_k^{L-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Defining" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\delta_j^L = a_j^L(1-a_j^L)\\left(a_j^L - t_j\\right) = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and using the Hadamard product of two vectors we can write this as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\delta}^L = f'(\\hat{z}^L)\\circ\\frac{\\partial {\\cal C}}{\\partial (\\hat{a}^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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$.\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", + "$f'(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", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\delta_j^La_k^{L-1}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is also easy to see that our previous equation can be written as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "metadata": {}, + "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", + "metadata": {}, + "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", + "metadata": {}, + "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. \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\n", + "\n", + "**The starting equations.**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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{_auto8} \\tag{13}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\delta_j^L = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)},\n", + "\\label{_auto9} \\tag{14}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\delta_j^L = \\frac{\\partial {\\cal C}}{\\partial b_j^L},\n", + "\\label{_auto10} \\tag{15}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "An interesting consequence of the above equations is that when the\n", + "activation $a_k^{L-1}$ is small, the gradient term, that is the\n", + "derivative of the cost function with respect to the weights, will also\n", + "tend to be small. We say then that the weight learns slowly, meaning\n", + "that it changes slowly when we minimize the weights via say gradient\n", + "descent. In this case we say the system learns slowly.\n", + "\n", + "Another interesting feature is that is when the activation function,\n", + "represented by the sigmoid function here, is rather flat when we move towards\n", + "its end values $0$ and $1$ (see the above Python codes). In these\n", + "cases, the derivatives of the activation function will also be close\n", + "to zero, meaning again that the gradients will be small and the\n", + "network learns slowly again.\n", + "\n", + "\n", + "\n", + "We need a fourth equation and we are set. We are going to propagate\n", + "backwards in order to the determine the weights and biases. In order\n", + "to do so we need to represent the error in the layer before the final\n", + "one $L-1$ in terms of the errors in the final output layer.\n", + "\n", + "### Final back propagating equation\n", + "\n", + "We have that (replacing $L$ with a general layer $l$)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\delta_j^l =\\frac{\\partial {\\cal C}}{\\partial z_j^l}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "metadata": {}, + "source": [ + "and recalling that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "metadata": {}, + "source": [ + "with $M_l$ being the number of nodes in layer $l$, we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\delta_j^l =\\sum_k \\delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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.\n", + "\n", + "\n", + "### 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", + "\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=2,3,\\dots,L$.\n", + "\n", + "\n", + "\n", + "Thereafter we compute the ouput error $\\hat{\\delta}^L$ by computing all" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\delta_j^L = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we compute the back propagate error for each $l=L-1,L-2,\\dots,2$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\delta_j^l = \\sum_k \\delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\\dots,2$ and update the weights and biases according to the rules" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "w_{jk}^l\\leftarrow = w_{jk}^l- \\eta \\delta_j^la_k^{l-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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", + "metadata": {}, + "source": [ + "The parameter $\\eta$ is the learning parameter discussed in connection with the gradient descent methods.\n", + "Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter9.py b/doc/LectureNotes/_build/jupyter_execute/chapter9.py new file mode 100644 index 000000000..0defee811 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter9.py @@ -0,0 +1,847 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # 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. +# +# +# 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} \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. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs), +# +# 3. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and +# +# 4. neural networks for unsupervised learning such as Deep Boltzmann Machines. +# +# 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. +# +# +# 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). +# +# +# 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. +# +# +# +# The output $y$ is produced via the activation function $f$ + +# $$ +# y = f\left(\sum_{i=1}^n w_ix_i + b_i\right) = f(z), +# $$ + +# This function receives $x_i$ as inputs. +# Here the activation $z=(\sum_{i=1}^n w_ix_i+b_i)$. +# In an FFNN of such neurons, the *inputs* $x_i$ are the *outputs* of +# the neurons in the preceding layer. Furthermore, an MLP is +# fully-connected, which means that each neuron receives a weighted sum +# of the outputs of *all* neurons in the previous layer. +# +# +# First, for each node $i$ in the first hidden layer, we calculate a weighted sum $z_i^1$ of the input coordinates $x_j$, + +# +#
    +# +# $$ +# \begin{equation} z_i^1 = \sum_{j=1}^{M} w_{ij}^1 x_j + b_i^1 +# \label{_auto1} \tag{2} +# \end{equation} +# $$ + +# Here $b_i$ is the so-called bias which is normally needed in +# case of zero activation weights or inputs. How to fix the biases and +# the weights will be discussed below. The value of $z_i^1$ is the +# argument to the activation function $f_i$ of each node $i$, The +# variable $M$ stands for all possible inputs to a given node $i$ in the +# first layer. We define the output $y_i^1$ of all neurons in layer 1 as + +# +#
    +# +# $$ +# \begin{equation} +# y_i^1 = f(z_i^1) = f\left(\sum_{j=1}^M w_{ij}^1 x_j + b_i^1\right) +# \label{outputLayer1} \tag{3} +# \end{equation} +# $$ + +# where we assume that all nodes in the same layer have identical +# activation functions, hence the notation $f$. In general, we could assume in the more general case that different layers have different activation functions. +# In this case we would identify these functions with a superscript $l$ for the $l$-th layer, + +# +#
    +# +# $$ +# \begin{equation} +# y_i^l = f^l(u_i^l) = f^l\left(\sum_{j=1}^{N_{l-1}} w_{ij}^l y_j^{l-1} + b_i^l\right) +# \label{generalLayer} \tag{4} +# \end{equation} +# $$ + +# where $N_l$ is the number of nodes in layer $l$. When the output of +# all the nodes in the first hidden layer are computed, the values of +# the subsequent layer can be calculated and so forth until the output +# is obtained. +# +# +# +# +# The output of neuron $i$ in layer 2 is thus, + +# +#
    +# +# $$ +# \begin{equation} +# y_i^2 = f^2\left(\sum_{j=1}^N w_{ij}^2 y_j^1 + b_i^2\right) +# \label{_auto2} \tag{5} +# \end{equation} +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# = f^2\left[\sum_{j=1}^N w_{ij}^2f^1\left(\sum_{k=1}^M w_{jk}^1 x_k + b_j^1\right) + b_i^2\right] +# \label{outputLayer2} \tag{6} +# \end{equation} +# $$ + +# where we have substituted $y_k^1$ with the inputs $x_k$. Finally, the ANN output reads + +# +#
    +# +# $$ +# \begin{equation} +# y_i^3 = f^3\left(\sum_{j=1}^N w_{ij}^3 y_j^2 + b_i^3\right) +# \label{_auto3} \tag{7} +# \end{equation} +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# = f_3\left[\sum_{j} w_{ij}^3 f^2\left(\sum_{k} w_{jk}^2 f^1\left(\sum_{m} w_{km}^1 x_m + b_k^1\right) + b_j^2\right) +# + b_1^3\right] +# \label{_auto4} \tag{8} +# \end{equation} +# $$ + +# We can generalize this expression to an MLP with $l$ hidden +# layers. The complete functional form is, + +# +#
    +# +# $$ +# \begin{equation} +# y^{l+1}_i = f^{l+1}\left[\!\sum_{j=1}^{N_l} w_{ij}^3 f^l\left(\sum_{k=1}^{N_{l-1}}w_{jk}^{l-1}\left(\dots f^1\left(\sum_{n=1}^{N_0} w_{mn}^1 x_n+ b_m^1\right)\dots\right)+b_k^2\right)+b_1^3\right] +# \label{completeNN} \tag{9} +# \end{equation} +# $$ + +# which illustrates a basic property of MLPs: The only independent +# variables are the input values $x_n$. +# +# +# This confirms that an MLP, despite its quite convoluted mathematical +# form, is nothing more than an analytic function, specifically a +# mapping of real-valued vectors $\hat{x} \in \mathbb{R}^n \rightarrow +# \hat{y} \in \mathbb{R}^m$. +# +# Furthermore, the flexibility and universality of an MLP can be +# illustrated by realizing that the expression is essentially a nested +# sum of scaled activation functions of the form + +# +#
    +# +# $$ +# \begin{equation} +# f(x) = c_1 f(c_2 x + c_3) + c_4 +# \label{_auto5} \tag{10} +# \end{equation} +# $$ + +# where the parameters $c_i$ are weights and biases. By adjusting these +# parameters, the activation functions can be shifted up and down or +# left and right, change slope or be rescaled which is the key to the +# flexibility of a neural network. +# +# +# We can introduce a more convenient notation for the activations in an A NN. +# +# Additionally, we can represent the biases and activations +# as layer-wise column vectors $\hat{b}_l$ and $\hat{y}_l$, so that the $i$-th element of each vector +# is the bias $b_i^l$ and activation $y_i^l$ of node $i$ in layer $l$ respectively. +# +# We have that $\mathrm{W}_l$ is an $N_{l-1} \times N_l$ matrix, while $\hat{b}_l$ and $\hat{y}_l$ are $N_l \times 1$ column vectors. +# With this notation, the sum becomes a matrix-vector multiplication, and we can write +# the equation for the activations of hidden layer 2 (assuming three nodes for simplicity) as + +# +#
    +# +# $$ +# \begin{equation} +# \hat{y}_2 = f_2(\mathrm{W}_2 \hat{y}_{1} + \hat{b}_{2}) = +# f_2\left(\left[\begin{array}{ccc} +# w^2_{11} &w^2_{12} &w^2_{13} \\ +# w^2_{21} &w^2_{22} &w^2_{23} \\ +# w^2_{31} &w^2_{32} &w^2_{33} \\ +# \end{array} \right] \cdot +# \left[\begin{array}{c} +# y^1_1 \\ +# y^1_2 \\ +# y^1_3 \\ +# \end{array}\right] + +# \left[\begin{array}{c} +# b^2_1 \\ +# b^2_2 \\ +# b^2_3 \\ +# \end{array}\right]\right). +# \label{_auto6} \tag{11} +# \end{equation} +# $$ + +# ### Matrix-vector notation and activation +# +# The activation of node $i$ in layer 2 is + +# +#
    +# +# $$ +# \begin{equation} +# y^2_i = f_2\Bigr(w^2_{i1}y^1_1 + w^2_{i2}y^1_2 + w^2_{i3}y^1_3 + b^2_i\Bigr) = +# f_2\left(\sum_{j=1}^3 w^2_{ij} y_j^1 + b^2_i\right). +# \label{_auto7} \tag{12} +# \end{equation} +# $$ + +# This is not just a convenient and compact notation, but also a useful +# and intuitive way to think about MLPs: The output is calculated by a +# series of matrix-vector multiplications and vector additions that are +# used as input to the activation functions. For each operation +# $\mathrm{W}_l \hat{y}_{l-1}$ we move forward one layer. +# +# +# +# ### 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 +# +# 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) +# $$ + +# 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* + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +"""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() + + +# ## The multilayer perceptron (MLP) +# +# The multilayer perceptron is a very popular, and easy to implement approach, to deep learning. It consists of +# 1. A neural network with one or more layers of nodes between the input and the output nodes. +# +# 2. The multilayer network structure, or architecture, or topology, consists of an input layer, one or more hidden layers, and one output layer. +# +# 3. The input nodes pass values to the first hidden layer, its nodes pass the information on to the second and so on till we reach the output layer. +# +# As a convention it is normal to call a network with one layer of input units, one layer of hidden +# units and one layer of output units as a two-layer network. A network with two layers of hidden units is called a three-layer network etc etc. +# +# For an MLP network there is no direct connection between the output nodes/neurons/units and the input nodes/neurons/units. +# Hereafter we will call the various entities of a layer for nodes. +# There are also no connections within a single layer. +# +# The number of input nodes does not need to equal the number of output +# nodes. This applies also to the hidden layers. Each layer may have its +# own number of nodes and activation functions. +# +# The hidden layers have their name from the fact that they are not +# linked to observables and as we will see below when we define the +# so-called activation $\hat{z}$, we can think of this as a basis +# expansion of the original inputs $\hat{x}$. The difference however +# between neural networks and say linear regression is that now these +# basis functions (which will correspond to the weights in the network) +# are learned from data. This results in an important difference between +# neural networks and deep learning approaches on one side and methods +# like logistic regression or linear regression and their modifications on the other side. +# +# +# ### From one to many layers, the universal approximation theorem +# +# A neural network with only one layer, what we called the simple +# perceptron, is best suited if we have a standard binary model with +# clear (linear) boundaries between the outcomes. As such it could +# equally well be replaced by standard linear regression or logistic +# regression. Networks with one or more hidden layers approximate +# systems with more complex boundaries. +# +# As stated earlier, +# an important theorem in studies of neural networks, restated without +# proof here, is the [universal approximation +# theorem](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.441.7873&rep=rep1&type=pdf). +# +# It states that a feed-forward network with a single hidden layer +# containing a finite number of neurons can approximate continuous +# functions on compact subsets of real functions. The theorem thus +# states that simple neural networks can represent a wide variety of +# interesting functions when given appropriate parameters. It is the +# multilayer feedforward architecture itself which gives neural networks +# the potential of being universal approximators. +# +# +# +# ## Deriving the back propagation code for a multilayer perceptron model +# +# +# +# As we have seen now in a feed forward network, we can express the final output of our network in terms of basic matrix-vector multiplications. +# The unknowwn quantities are our weights $w_{ij}$ and we need to find an algorithm for changing them so that our errors are as small as possible. +# This leads us to the famous [back propagation algorithm](https://www.nature.com/articles/323533a0). +# +# 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? +# +# To derive these equations let us start with a plain regression problem +# and define our cost function as + +# $$ +# {\cal C}(\hat{W}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - t_i\right)^2, +# $$ + +# where the $t_i$s are our $n$ targets (the values we want to +# reproduce), while the outputs of the network after having propagated +# all inputs $\hat{x}$ are given by $y_i$. Below we will demonstrate +# how the basic equations arising from the back propagation algorithm +# can be modified in order to study classification problems with $K$ +# classes. +# +# +# With our definition of the targets $\hat{t}$, the outputs of the +# network $\hat{y}$ and the inputs $\hat{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 here 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. +# $$ + +# With the activation values $\hat{z}^l$ we can in turn define the +# output of layer $l$ as $\hat{a}^l = f(\hat{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 = f(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)=f(z_j^l)(1-f(z_j^l)). +# $$ + +# 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}(\hat{W^L}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - t_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - t_i\right)^2, +# $$ + +# The derivative of this function with respect to the weights is + +# $$ +# \frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \left(a_j^L - t_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}, +# $$ + +# ### Bringing it together, first back propagation equation +# +# We have thus + +# $$ +# \frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \left(a_j^L - t_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 - t_j\right) = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, +# $$ + +# and using the Hadamard product of two vectors we can write this as + +# $$ +# \hat{\delta}^L = f'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\hat{a}^L)}. +# $$ + +# 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$. +# +# 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 +# $f'(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}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. +# $$ + +# 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. +# +# 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 +# +# **The starting equations.** + +# +#
    +# +# $$ +# \begin{equation} +# \frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, +# \label{_auto8} \tag{13} +# \end{equation} +# $$ + +# and + +# +#
    +# +# $$ +# \begin{equation} +# \delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, +# \label{_auto9} \tag{14} +# \end{equation} +# $$ + +# and + +# +#
    +# +# $$ +# \begin{equation} +# \delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, +# \label{_auto10} \tag{15} +# \end{equation} +# $$ + +# An interesting consequence of the above equations is that when the +# activation $a_k^{L-1}$ is small, the gradient term, that is the +# derivative of the cost function with respect to the weights, will also +# tend to be small. We say then that the weight learns slowly, meaning +# that it changes slowly when we minimize the weights via say gradient +# descent. In this case we say the system learns slowly. +# +# Another interesting feature is that is when the activation function, +# represented by the sigmoid function here, is rather flat when we move towards +# its end values $0$ and $1$ (see the above Python codes). In these +# cases, the derivatives of the activation function will also be close +# to zero, meaning again that the gradients will be small and the +# network learns slowly again. +# +# +# +# We need a fourth equation and we are set. We are going to propagate +# backwards in order to the determine the weights and biases. In order +# to do so we need to represent the error in the layer before the final +# one $L-1$ in terms of the errors in the final output layer. +# +# ### 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 have + +# $$ +# \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}f'(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=2,3,\dots,L$. +# +# +# +# Thereafter we compute the ouput error $\hat{\delta}^L$ by computing all + +# $$ +# \delta_j^L = f'(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,2$ as + +# $$ +# \delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l). +# $$ + +# Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\dots,2$ 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, +# $$ + +# The parameter $\eta$ is the learning parameter discussed in connection with the gradient descent methods. +# Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training. diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter9_29_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter9_29_0.png new file mode 100644 index 0000000000000000000000000000000000000000..365106fcfbd71e1b164f1e92c6611501b01d1210 GIT binary patch literal 9884 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 E0J%_O%K!iX literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapteroptimization.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapteroptimization.ipynb new file mode 100644 index 000000000..70f42c800 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapteroptimization.ipynb @@ -0,0 +1,3114 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Optimization, the central part of any Machine Learning algortithm\n", + "\n", + "Almost every problem in machine learning and data science starts with\n", + "a dataset $X$, a model $g(\\beta)$, which is a function of the\n", + "parameters $\\beta$ and a cost function $C(X, g(\\beta))$ that allows\n", + "us to judge how well the model $g(\\beta)$ explains the observations\n", + "$X$. The model is fit by finding the values of $\\beta$ that minimize\n", + "the cost function. Ideally we would be able to solve for $\\beta$\n", + "analytically, however this is not possible in general and we must use\n", + "some approximative/numerical method to compute the minimum.\n", + "\n", + "\n", + "\n", + "\n", + "In our discussion on Logistic Regression we studied the \n", + "case of\n", + "two classes, with $y_i$ either\n", + "$0$ or $1$. Furthermore we assumed also that we have only two\n", + "parameters $\\beta$ in our fitting, that is we\n", + "defined probabilities" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "p(y_i=1|x_i,\\boldsymbol{\\beta}) &= \\frac{\\exp{(\\beta_0+\\beta_1x_i)}}{1+\\exp{(\\beta_0+\\beta_1x_i)}},\\nonumber\\\\\n", + "p(y_i=0|x_i,\\boldsymbol{\\beta}) &= 1 - p(y_i=1|x_i,\\boldsymbol{\\beta}),\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{\\beta}$ are the weights we wish to extract from data, in our case $\\beta_0$ and $\\beta_1$. \n", + "\n", + "\n", + "\n", + "Our compact equations used a definition of a vector $\\boldsymbol{y}$ with $n$\n", + "elements $y_i$, an $n\\times p$ matrix $\\boldsymbol{X}$ which contains the\n", + "$x_i$ values and a vector $\\boldsymbol{p}$ of fitted probabilities\n", + "$p(y_i\\vert x_i,\\boldsymbol{\\beta})$. We rewrote in a more compact form\n", + "the first derivative of the cost function as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}} = -\\boldsymbol{X}^T\\left(\\boldsymbol{y}-\\boldsymbol{p}\\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we in addition define a diagonal matrix $\\boldsymbol{W}$ with elements \n", + "$p(y_i\\vert x_i,\\boldsymbol{\\beta})(1-p(y_i\\vert x_i,\\boldsymbol{\\beta})$, we can obtain a compact expression of the second derivative as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{\\partial^2 \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}\\partial \\boldsymbol{\\beta}^T} = \\boldsymbol{X}^T\\boldsymbol{W}\\boldsymbol{X}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This defines what is called the Hessian matrix.\n", + "\n", + "\n", + "\n", + "If we can set up these equations, Newton-Raphson's iterative method is normally the method of choice. It requires however that we can compute in an efficient way the matrices that define the first and second derivatives. \n", + "\n", + "Our iterative scheme is then given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\beta}^{\\mathrm{new}} = \\boldsymbol{\\beta}^{\\mathrm{old}}-\\left(\\frac{\\partial^2 \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}\\partial \\boldsymbol{\\beta}^T}\\right)^{-1}_{\\boldsymbol{\\beta}^{\\mathrm{old}}}\\times \\left(\\frac{\\partial \\mathcal{C}(\\boldsymbol{\\beta})}{\\partial \\boldsymbol{\\beta}}\\right)_{\\boldsymbol{\\beta}^{\\mathrm{old}}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or in matrix form as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\beta}^{\\mathrm{new}} = \\boldsymbol{\\beta}^{\\mathrm{old}}-\\left(\\boldsymbol{X}^T\\boldsymbol{W}\\boldsymbol{X} \\right)^{-1}\\times \\left(-\\boldsymbol{X}^T(\\boldsymbol{y}-\\boldsymbol{p}) \\right)_{\\boldsymbol{\\beta}^{\\mathrm{old}}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The right-hand side is computed with the old values of $\\beta$. \n", + "\n", + "If we can compute these matrices, in particular the Hessian, the above is often the easiest method to implement. \n", + "\n", + "\n", + "Let us quickly remind ourselves how we derive the above method.\n", + "\n", + "Perhaps the most celebrated of all one-dimensional root-finding\n", + "routines is Newton's method, also called the Newton-Raphson\n", + "method. This method requires the evaluation of both the\n", + "function $f$ and its derivative $f'$ at arbitrary points. \n", + "If you can only calculate the derivative\n", + "numerically and/or your function is not of the smooth type, we\n", + "normally discourage the use of this method.\n", + "\n", + "\n", + "\n", + "The Newton-Raphson formula consists geometrically of extending the\n", + "tangent line at a current point until it crosses zero, then setting\n", + "the next guess to the abscissa of that zero-crossing. The mathematics\n", + "behind this method is rather simple. Employing a Taylor expansion for\n", + "$x$ sufficiently close to the solution $s$, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "f(s)=0=f(x)+(s-x)f'(x)+\\frac{(s-x)^2}{2}f''(x) +\\dots.\n", + " \\label{eq:taylornr} \\tag{1}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For small enough values of the function and for well-behaved\n", + "functions, the terms beyond linear are unimportant, hence we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(x)+(s-x)f'(x)\\approx 0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "yielding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "s\\approx x-\\frac{f(x)}{f'(x)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Having in mind an iterative procedure, it is natural to start iterating with" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "x_{n+1}=x_n-\\frac{f(x_n)}{f'(x_n)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above is Newton-Raphson's method. It has a simple geometric\n", + "interpretation, namely $x_{n+1}$ is the point where the tangent from\n", + "$(x_n,f(x_n))$ crosses the $x$-axis. Close to the solution,\n", + "Newton-Raphson converges fast to the desired result. However, if we\n", + "are far from a root, where the higher-order terms in the series are\n", + "important, the Newton-Raphson formula can give grossly inaccurate\n", + "results. For instance, the initial guess for the root might be so far\n", + "from the true root as to let the search interval include a local\n", + "maximum or minimum of the function. If an iteration places a trial\n", + "guess near such a local extremum, so that the first derivative nearly\n", + "vanishes, then Newton-Raphson may fail totally\n", + "\n", + "\n", + "\n", + "\n", + "Newton's method can be generalized to systems of several non-linear equations\n", + "and variables. Consider the case with two equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{array}{cc} f_1(x_1,x_2) &=0\\\\\n", + " f_2(x_1,x_2) &=0,\\end{array}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which we Taylor expand to obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{array}{cc} 0=f_1(x_1+h_1,x_2+h_2)=&f_1(x_1,x_2)+h_1\n", + " \\partial f_1/\\partial x_1+h_2\n", + " \\partial f_1/\\partial x_2+\\dots\\\\\n", + " 0=f_2(x_1+h_1,x_2+h_2)=&f_2(x_1,x_2)+h_1\n", + " \\partial f_2/\\partial x_1+h_2\n", + " \\partial f_2/\\partial x_2+\\dots\n", + " \\end{array}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Defining the Jacobian matrix $\\boldsymbol{J}$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{J}=\\left( \\begin{array}{cc}\n", + " \\partial f_1/\\partial x_1 & \\partial f_1/\\partial x_2 \\\\\n", + " \\partial f_2/\\partial x_1 &\\partial f_2/\\partial x_2\n", + " \\end{array} \\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we can rephrase Newton's method as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\begin{array}{c} x_1^{n+1} \\\\ x_2^{n+1} \\end{array} \\right)=\n", + "\\left(\\begin{array}{c} x_1^{n} \\\\ x_2^{n} \\end{array} \\right)+\n", + "\\left(\\begin{array}{c} h_1^{n} \\\\ h_2^{n} \\end{array} \\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\left(\\begin{array}{c} h_1^{n} \\\\ h_2^{n} \\end{array} \\right)=\n", + " -\\boldsymbol{J}^{-1}\n", + " \\left(\\begin{array}{c} f_1(x_1^{n},x_2^{n}) \\\\ f_2(x_1^{n},x_2^{n}) \\end{array} \\right).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need thus to compute the inverse of the Jacobian matrix and it\n", + "is to understand that difficulties may\n", + "arise in case $\\boldsymbol{J}$ is nearly singular.\n", + "\n", + "It is rather straightforward to extend the above scheme to systems of\n", + "more than two non-linear equations. In our case, the Jacobian matrix is given by the Hessian that represents the second derivative of cost function. \n", + "\n", + "\n", + "\n", + "\n", + "## Steepest descent\n", + "\n", + "The basic idea of gradient descent is\n", + "that a function $F(\\mathbf{x})$, \n", + "$\\mathbf{x} \\equiv (x_1,\\cdots,x_n)$, decreases fastest if one goes from $\\bf {x}$ in the\n", + "direction of the negative gradient $-\\nabla F(\\mathbf{x})$.\n", + "\n", + "It can be shown that if" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{x}_{k+1} = \\mathbf{x}_k - \\gamma_k \\nabla F(\\mathbf{x}_k),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $\\gamma_k > 0$.\n", + "\n", + "For $\\gamma_k$ small enough, then $F(\\mathbf{x}_{k+1}) \\leq\n", + "F(\\mathbf{x}_k)$. This means that for a sufficiently small $\\gamma_k$\n", + "we are always moving towards smaller function values, i.e a minimum.\n", + "\n", + "\n", + "The previous observation is the basis of the method of steepest\n", + "descent, which is also referred to as just gradient descent (GD). One\n", + "starts with an initial guess $\\mathbf{x}_0$ for a minimum of $F$ and\n", + "computes new approximations according to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{x}_{k+1} = \\mathbf{x}_k - \\gamma_k \\nabla F(\\mathbf{x}_k), \\ \\ k \\geq 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The parameter $\\gamma_k$ is often referred to as the step length or\n", + "the learning rate within the context of Machine Learning.\n", + "\n", + "\n", + "Ideally the sequence $\\{\\mathbf{x}_k \\}_{k=0}$ converges to a global\n", + "minimum of the function $F$. In general we do not know if we are in a\n", + "global or local minimum. In the special case when $F$ is a convex\n", + "function, all local minima are also global minima, so in this case\n", + "gradient descent can converge to the global solution. The advantage of\n", + "this scheme is that it is conceptually simple and straightforward to\n", + "implement. However the method in this form has some severe\n", + "limitations:\n", + "\n", + "In machine learing we are often faced with non-convex high dimensional\n", + "cost functions with many local minima. Since GD is deterministic we\n", + "will get stuck in a local minimum, if the method converges, unless we\n", + "have a very good intial guess. This also implies that the scheme is\n", + "sensitive to the chosen initial condition.\n", + "\n", + "Note that the gradient is a function of $\\mathbf{x} =\n", + "(x_1,\\cdots,x_n)$ which makes it expensive to compute numerically.\n", + "\n", + "\n", + "\n", + "\n", + "The gradient descent method \n", + "is sensitive to the choice of learning rate $\\gamma_k$. This is due\n", + "to the fact that we are only guaranteed that $F(\\mathbf{x}_{k+1}) \\leq\n", + "F(\\mathbf{x}_k)$ for sufficiently small $\\gamma_k$. The problem is to\n", + "determine an optimal learning rate. If the learning rate is chosen too\n", + "small the method will take a long time to converge and if it is too\n", + "large we can experience erratic behavior.\n", + "\n", + "Many of these shortcomings can be alleviated by introducing\n", + "randomness. One such method is that of Stochastic Gradient Descent\n", + "(SGD), see below.\n", + "\n", + "\n", + "\n", + "## Convex functions\n", + "\n", + "Ideally we want our cost/loss function to be convex(concave).\n", + "\n", + "First we give the definition of a convex set: A set $C$ in\n", + "$\\mathbb{R}^n$ is said to be convex if, for all $x$ and $y$ in $C$ and\n", + "all $t \\in (0,1)$ , the point $(1 − t)x + ty$ also belongs to\n", + "C. Geometrically this means that every point on the line segment\n", + "connecting $x$ and $y$ is in $C$ as discussed below.\n", + "\n", + "The convex subsets of $\\mathbb{R}$ are the intervals of\n", + "$\\mathbb{R}$. Examples of convex sets of $\\mathbb{R}^2$ are the\n", + "regular polygons (triangles, rectangles, pentagons, etc...).\n", + "\n", + "\n", + "\n", + "**Convex function**: Let $X \\subset \\mathbb{R}^n$ be a convex set. Assume that the function $f: X \\rightarrow \\mathbb{R}$ is continuous, then $f$ is said to be convex if $$f(tx_1 + (1-t)x_2) \\leq tf(x_1) + (1-t)f(x_2) $$ for all $x_1, x_2 \\in X$ and for all $t \\in [0,1]$. If $\\leq$ is replaced with a strict inequaltiy in the definition, we demand $x_1 \\neq x_2$ and $t\\in(0,1)$ then $f$ is said to be strictly convex. For a single variable function, convexity means that if you draw a straight line connecting $f(x_1)$ and $f(x_2)$, the value of the function on the interval $[x_1,x_2]$ is always below the line as illustrated below.\n", + "\n", + "\n", + "In the following we state first and second-order conditions which\n", + "ensures convexity of a function $f$. We write $D_f$ to denote the\n", + "domain of $f$, i.e the subset of $R^n$ where $f$ is defined. For more\n", + "details and proofs we refer to: [S. Boyd and L. Vandenberghe. Convex Optimization. Cambridge University Press](http://stanford.edu/boyd/cvxbook/, 2004).\n", + "\n", + "**First order condition.**\n", + "\n", + "Suppose $f$ is differentiable (i.e $\\nabla f(x)$ is well defined for\n", + "all $x$ in the domain of $f$). Then $f$ is convex if and only if $D_f$\n", + "is a convex set and $$f(y) \\geq f(x) + \\nabla f(x)^T (y-x) $$ holds\n", + "for all $x,y \\in D_f$. This condition means that for a convex function\n", + "the first order Taylor expansion (right hand side above) at any point\n", + "a global under estimator of the function. To convince yourself you can\n", + "make a drawing of $f(x) = x^2+1$ and draw the tangent line to $f(x)$ and\n", + "note that it is always below the graph.\n", + "\n", + "\n", + "\n", + "**Second order condition.**\n", + "\n", + "Assume that $f$ is twice\n", + "differentiable, i.e the Hessian matrix exists at each point in\n", + "$D_f$. Then $f$ is convex if and only if $D_f$ is a convex set and its\n", + "Hessian is positive semi-definite for all $x\\in D_f$. For a\n", + "single-variable function this reduces to $f''(x) \\geq 0$. Geometrically this means that $f$ has nonnegative curvature\n", + "everywhere.\n", + "\n", + "\n", + "\n", + "This condition is particularly useful since it gives us an procedure for determining if the function under consideration is convex, apart from using the definition.\n", + "\n", + "\n", + "\n", + "The next result is of great importance to us and the reason why we are\n", + "going on about convex functions. In machine learning we frequently\n", + "have to minimize a loss/cost function in order to find the best\n", + "parameters for the model we are considering. \n", + "\n", + "Ideally we want the\n", + "global minimum (for high-dimensional models it is hard to know\n", + "if we have local or global minimum). However, if the cost/loss function\n", + "is convex the following result provides invaluable information:\n", + "\n", + "**Any minimum is global for convex functions.**\n", + "\n", + "Consider the problem of finding $x \\in \\mathbb{R}^n$ such that $f(x)$\n", + "is minimal, where $f$ is convex and differentiable. Then, any point\n", + "$x^*$ that satisfies $\\nabla f(x^*) = 0$ is a global minimum.\n", + "\n", + "\n", + "\n", + "This result means that if we know that the cost/loss function is convex and we are able to find a minimum, we are guaranteed that it is a global minimum.\n", + "\n", + "\n", + "### Some simple problems\n", + "\n", + "1. Show that $f(x)=x^2$ is convex for $x \\in \\mathbb{R}$ using the definition of convexity. Hint: If you re-write the definition, $f$ is convex if the following holds for all $x,y \\in D_f$ and any $\\lambda \\in [0,1]$ $\\lambda f(x)+(1-\\lambda)f(y)-f(\\lambda x + (1-\\lambda) y ) \\geq 0$.\n", + "\n", + "2. Using the second order condition show that the following functions are convex on the specified domain.\n", + "\n", + " * $f(x) = e^x$ is convex for $x \\in \\mathbb{R}$.\n", + "\n", + " * $g(x) = -\\ln(x)$ is convex for $x \\in (0,\\infty)$.\n", + "\n", + "\n", + "3. Let $f(x) = x^2$ and $g(x) = e^x$. Show that $f(g(x))$ and $g(f(x))$ is convex for $x \\in \\mathbb{R}$. Also show that if $f(x)$ is any convex function than $h(x) = e^{f(x)}$ is convex.\n", + "\n", + "4. A norm is any function that satisfy the following properties\n", + "\n", + " * $f(\\alpha x) = |\\alpha| f(x)$ for all $\\alpha \\in \\mathbb{R}$.\n", + "\n", + " * $f(x+y) \\leq f(x) + f(y)$\n", + "\n", + " * $f(x) \\leq 0$ for all $x \\in \\mathbb{R}^n$ with equality if and only if $x = 0$\n", + "\n", + "\n", + "Using the definition of convexity, try to show that a function satisfying the properties above is convex (the third condition is not needed to show this).\n", + "\n", + "\n", + "## Standard steepest descent\n", + "\n", + "\n", + "Before we proceed, we would like to discuss the approach called the\n", + "**standard Steepest descent** (different from the above steepest descent discussion), which again leads to us having to be able\n", + "to compute a matrix. It belongs to the class of Conjugate Gradient methods (CG).\n", + "\n", + "[The success of the CG method](https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf)\n", + "for finding solutions of non-linear problems is based on the theory\n", + "of conjugate gradients for linear systems of equations. It belongs to\n", + "the class of iterative methods for solving problems from linear\n", + "algebra of the type" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}\\boldsymbol{x} = \\boldsymbol{b}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the iterative process we end up with a problem like" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{r}= \\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\boldsymbol{r}$ is the so-called residual or error in the iterative process.\n", + "\n", + "When we have found the exact solution, $\\boldsymbol{r}=0$.\n", + "\n", + "\n", + "\n", + "The residual is zero when we reach the minimum of the quadratic equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "P(\\boldsymbol{x})=\\frac{1}{2}\\boldsymbol{x}^T\\boldsymbol{A}\\boldsymbol{x} - \\boldsymbol{x}^T\\boldsymbol{b},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with the constraint that the matrix $\\boldsymbol{A}$ is positive definite and\n", + "symmetric. This defines also the Hessian and we want it to be positive definite. \n", + "\n", + "\n", + "We denote the initial guess for $\\boldsymbol{x}$ as $\\boldsymbol{x}_0$. \n", + "We can assume without loss of generality that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_0=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or consider the system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}\\boldsymbol{z} = \\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x}_0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "instead.\n", + "\n", + "\n", + "One can show that the solution $\\boldsymbol{x}$ is also the unique minimizer of the quadratic form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(\\boldsymbol{x}) = \\frac{1}{2}\\boldsymbol{x}^T\\boldsymbol{A}\\boldsymbol{x} - \\boldsymbol{x}^T \\boldsymbol{x} , \\quad \\boldsymbol{x}\\in\\mathbf{R}^n.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This suggests taking the first basis vector $\\boldsymbol{r}_1$ (see below for definition) \n", + "to be the gradient of $f$ at $\\boldsymbol{x}=\\boldsymbol{x}_0$, \n", + "which equals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}\\boldsymbol{x}_0-\\boldsymbol{b},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and \n", + "$\\boldsymbol{x}_0=0$ it is equal $-\\boldsymbol{b}$.\n", + "\n", + "\n", + "We can compute the residual iteratively as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{r}_{k+1}=\\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x}_{k+1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which equals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{b}-\\boldsymbol{A}(\\boldsymbol{x}_k+\\alpha_k\\boldsymbol{r}_k),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x}_k)-\\alpha_k\\boldsymbol{A}\\boldsymbol{r}_k,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which gives" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\alpha_k = \\frac{\\boldsymbol{r}_k^T\\boldsymbol{r}_k}{\\boldsymbol{r}_k^T\\boldsymbol{A}\\boldsymbol{r}_k}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "leading to the iterative scheme" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_{k+1}=\\boldsymbol{x}_k-\\alpha_k\\boldsymbol{r}_{k},\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41406/483257001.py:18: MatplotlibDeprecationWarning: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4. Starting two minor releases later, gca() will take no keyword arguments. The gca() function should only be used to get the current axes, or if no axes exist, create new axes with default keyword arguments. To create a new axes with non-default arguments, use plt.axes() or plt.subplot().\n", + " ax = fig.gca(projection=\"3d\")\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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s9x0002sXbt2xL3ajuMUiO55XuFEP12EOZ9eOh/yxhAUyxw7dowVK1aM6DTOT/fo6OgobHCni7wPF1JK9u7di67rZyT2Sy+9xIMPPsjTTz894S3Bo4wiuUcTiUSCxx9/nMcee4zu7m5uvPFG1q1bN+JKtbzcUHt7O7ZtF174fO13fijg+ZBegmDWdL6G/lzM7PwG19HRUajzH2nNe57YmqYxd+7cIX9u8+bN3H///fzsZz+bcI34MUCR3GOFrq4unnzySTZu3EhbWxvXX389t912GwsXLhxRQGlwBDqTyRAOh0mn06xcuXLC00sQVMF1dnaybNmyUc3tD/69h1vzng+CKopyxg1127ZtfPzjH+fxxx8/YwT9AkWR3OOB3t5ennrqKR577DGampp4xzvewbp161i+fPmIiH7s2DEOHz5MLBYjk8mMeZPHmXD48GF6e3tZtmzZmEbA8/PRE4kEfX19lJSUFNRm8huKlJLGxkaklMyfP3/I72Pnzp185CMfYcOGDcybN2/M1j3BKJJ7vJFMJtm0aRMbN25k3759XHvttaxdu5ZLLrlkSIIcPXq0cELqul544dvb2wsjhWtqasZNKXRw19t4p7b6+voKxUL5Ro++vj6AMxJ7z549fOhDH+KnP/3puOh8TyCK5J5IDO5J3759O29961tZu3Yta9asOeFEOlOdeH6kcHt7O729vYWTbSxyyvm0YH766EQXp6RSKfbu3UsmkyEejw8ZeW9sbOT9738/P/7xj1m6dOkErHhccWGS+7Of/SxPPfUUpmkye/ZsfvSjH034CJ5zRS6X4/nnn2fDhg1s2bKFK664gltvvZVNmzZx1113cemllw6LSPmTrb29ne7u7sLs8KqqqnP2ifOmr+/7Y1a3PtL1HDhwANd1WbhwYSG1eKrIe1NTE+95z3v493//91MOjRwNPPvss3zqU5/C930+8pGPFAQUJwgXJrmfe+45rrnmGnRd53Of+xwAf//3f3+ulz1v4DgOzz//PJ/+9KeJRCKsWrWK2267jauuumpEVW1SSvr7+wsmbF72eSh996GutXfvXhRFOaPpOx7IWxC2bbNo0aLXrSevsNPQ0MAXv/hFXNflb/7mb7j33nvHZO2+7zNv3jyef/556urquPTSS/mv//qviTT9x+QBjbkDdt111xVezjVr1tDS0jLWtxxXmKbJgQMH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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_56_2.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import numpy.linalg as la\n", + "\n", + "import scipy.optimize as sopt\n", + "\n", + "import matplotlib.pyplot as pt\n", + "from mpl_toolkits.mplot3d import axes3d\n", + "\n", + "def f(x):\n", + " return 0.5*x[0]**2 + 2.5*x[1]**2\n", + "\n", + "def df(x):\n", + " return np.array([x[0], 5*x[1]])\n", + "\n", + "fig = pt.figure()\n", + "ax = fig.gca(projection=\"3d\")\n", + "\n", + "xmesh, ymesh = np.mgrid[-2:2:50j,-2:2:50j]\n", + "fmesh = f(np.array([xmesh, ymesh]))\n", + "ax.plot_surface(xmesh, ymesh, fmesh)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then as countor plot" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_58_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pt.axis(\"equal\")\n", + "pt.contour(xmesh, ymesh, fmesh)\n", + "guesses = [np.array([2, 2./5])]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Find guesses" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "x = guesses[-1]\n", + "s = -df(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run it!" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 1.33333333 -0.26666667]\n" + ] + } + ], + "source": [ + "def f1d(alpha):\n", + " return f(x + alpha*s)\n", + "\n", + "alpha_opt = sopt.golden(f1d)\n", + "next_guess = x + alpha_opt * s\n", + "guesses.append(next_guess)\n", + "print(next_guess)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What happened?" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_64_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pt.axis(\"equal\")\n", + "pt.contour(xmesh, ymesh, fmesh, 50)\n", + "it_array = np.array(guesses)\n", + "pt.plot(it_array.T[0], it_array.T[1], \"x-\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conjugate gradient method\n", + "In the CG method we define so-called conjugate directions and two vectors \n", + "$\\boldsymbol{s}$ and $\\boldsymbol{t}$\n", + "are said to be\n", + "conjugate if" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{s}^T\\boldsymbol{A}\\boldsymbol{t}= 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The philosophy of the CG method is to perform searches in various conjugate directions\n", + "of our vectors $\\boldsymbol{x}_i$ obeying the above criterion, namely" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_i^T\\boldsymbol{A}\\boldsymbol{x}_j= 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Two vectors are conjugate if they are orthogonal with respect to \n", + "this inner product. Being conjugate is a symmetric relation: if $\\boldsymbol{s}$ is conjugate to $\\boldsymbol{t}$, then $\\boldsymbol{t}$ is conjugate to $\\boldsymbol{s}$.\n", + "\n", + "An example is given by the eigenvectors of the matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{v}_i^T\\boldsymbol{A}\\boldsymbol{v}_j= \\lambda\\boldsymbol{v}_i^T\\boldsymbol{v}_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is zero unless $i=j$. \n", + "\n", + "Assume now that we have a symmetric positive-definite matrix $\\boldsymbol{A}$ of size\n", + "$n\\times n$. At each iteration $i+1$ we obtain the conjugate direction of a vector" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_{i+1}=\\boldsymbol{x}_{i}+\\alpha_i\\boldsymbol{p}_{i}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We assume that $\\boldsymbol{p}_{i}$ is a sequence of $n$ mutually conjugate directions. \n", + "Then the $\\boldsymbol{p}_{i}$ form a basis of $R^n$ and we can expand the solution \n", + "$ \\boldsymbol{A}\\boldsymbol{x} = \\boldsymbol{b}$ in this basis, namely" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x} = \\sum^{n}_{i=1} \\alpha_i \\boldsymbol{p}_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The coefficients are given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{A}\\mathbf{x} = \\sum^{n}_{i=1} \\alpha_i \\mathbf{A} \\mathbf{p}_i = \\mathbf{b}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Multiplying with $\\boldsymbol{p}_k^T$ from the left gives" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{p}_k^T \\boldsymbol{A}\\boldsymbol{x} = \\sum^{n}_{i=1} \\alpha_i\\boldsymbol{p}_k^T \\boldsymbol{A}\\boldsymbol{p}_i= \\boldsymbol{p}_k^T \\boldsymbol{b},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and we can define the coefficients $\\alpha_k$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\alpha_k = \\frac{\\boldsymbol{p}_k^T \\boldsymbol{b}}{\\boldsymbol{p}_k^T \\boldsymbol{A} \\boldsymbol{p}_k}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we choose the conjugate vectors $\\boldsymbol{p}_k$ carefully, \n", + "then we may not need all of them to obtain a good approximation to the solution \n", + "$\\boldsymbol{x}$. \n", + "We want to regard the conjugate gradient method as an iterative method. \n", + "This will us to solve systems where $n$ is so large that the direct \n", + "method would take too much time.\n", + "\n", + "We denote the initial guess for $\\boldsymbol{x}$ as $\\boldsymbol{x}_0$. \n", + "We can assume without loss of generality that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{x}_0=0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or consider the system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}\\boldsymbol{z} = \\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x}_0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "instead.\n", + "\n", + "One can show that the solution $\\boldsymbol{x}$ is also the unique minimizer of the quadratic form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(\\boldsymbol{x}) = \\frac{1}{2}\\boldsymbol{x}^T\\boldsymbol{A}\\boldsymbol{x} - \\boldsymbol{x}^T \\boldsymbol{x} , \\quad \\boldsymbol{x}\\in\\mathbf{R}^n.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This suggests taking the first basis vector $\\boldsymbol{p}_1$ \n", + "to be the gradient of $f$ at $\\boldsymbol{x}=\\boldsymbol{x}_0$, \n", + "which equals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}\\boldsymbol{x}_0-\\boldsymbol{b},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and \n", + "$\\boldsymbol{x}_0=0$ it is equal $-\\boldsymbol{b}$.\n", + "The other vectors in the basis will be conjugate to the gradient, \n", + "hence the name conjugate gradient method.\n", + "\n", + "Let $\\boldsymbol{r}_k$ be the residual at the $k$-th step:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{r}_k=\\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x}_k.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that $\\boldsymbol{r}_k$ is the negative gradient of $f$ at \n", + "$\\boldsymbol{x}=\\boldsymbol{x}_k$, \n", + "so the gradient descent method would be to move in the direction $\\boldsymbol{r}_k$. \n", + "Here, we insist that the directions $\\boldsymbol{p}_k$ are conjugate to each other, \n", + "so we take the direction closest to the gradient $\\boldsymbol{r}_k$ \n", + "under the conjugacy constraint. \n", + "This gives the following expression" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{p}_{k+1}=\\boldsymbol{r}_k-\\frac{\\boldsymbol{p}_k^T \\boldsymbol{A}\\boldsymbol{r}_k}{\\boldsymbol{p}_k^T\\boldsymbol{A}\\boldsymbol{p}_k} \\boldsymbol{p}_k.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also compute the residual iteratively as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{r}_{k+1}=\\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x}_{k+1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which equals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{b}-\\boldsymbol{A}(\\boldsymbol{x}_k+\\alpha_k\\boldsymbol{p}_k),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\boldsymbol{b}-\\boldsymbol{A}\\boldsymbol{x}_k)-\\alpha_k\\boldsymbol{A}\\boldsymbol{p}_k,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which gives" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{r}_{k+1}=\\boldsymbol{r}_k-\\boldsymbol{A}\\boldsymbol{p}_{k},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Revisiting our Linear Regression Solvers\n", + "\n", + "We will use linear regression as a case study for the gradient descent\n", + "methods. Linear regression is a great test case for the gradient\n", + "descent methods discussed in the lectures since it has several\n", + "desirable properties such as:\n", + "\n", + "1. An analytical solution.\n", + "\n", + "2. The gradient can be computed analytically.\n", + "\n", + "3. The cost function is convex which guarantees that gradient descent converges for small enough learning rates\n", + "\n", + "We revisit an example similar to what we had in the first homework set. We had a function of the type" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "m = 100\n", + "x = 2*np.random.rand(m,1)\n", + "y = 4+3*x+np.random.randn(m,1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $x_i \\in [0,1] $ is chosen randomly using a uniform distribution. Additionally we have a stochastic noise chosen according to a normal distribution $\\cal {N}(0,1)$. \n", + "The linear regression model is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "h_\\beta(x) = \\boldsymbol{y} = \\beta_0 + \\beta_1 x,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "such that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{y}_i = \\beta_0 + \\beta_1 x_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let $\\mathbf{y} = (y_1,\\cdots,y_n)^T$, $\\mathbf{\\boldsymbol{y}} = (\\boldsymbol{y}_1,\\cdots,\\boldsymbol{y}_n)^T$ and $\\beta = (\\beta_0, \\beta_1)^T$\n", + "\n", + "It is convenient to write $\\mathbf{\\boldsymbol{y}} = X\\beta$ where $X \\in \\mathbb{R}^{100 \\times 2} $ is the design matrix given by (we keep the intercept here)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "X \\equiv \\begin{bmatrix}\n", + "1 & x_1 \\\\\n", + "\\vdots & \\vdots \\\\\n", + "1 & x_{100} & \\\\\n", + "\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The cost/loss/risk function is given by (" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\beta) = \\frac{1}{n}||X\\beta-\\mathbf{y}||_{2}^{2} = \\frac{1}{n}\\sum_{i=1}^{100}\\left[ (\\beta_0 + \\beta_1 x_i)^2 - 2 y_i (\\beta_0 + \\beta_1 x_i) + y_i^2\\right]\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and we want to find $\\beta$ such that $C(\\beta)$ is minimized.\n", + "\n", + "\n", + "Computing $\\partial C(\\beta) / \\partial \\beta_0$ and $\\partial C(\\beta) / \\partial \\beta_1$ we can show that the gradient can be written as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\nabla_{\\beta} C(\\beta) = \\frac{2}{n}\\begin{bmatrix} \\sum_{i=1}^{100} \\left(\\beta_0+\\beta_1x_i-y_i\\right) \\\\\n", + "\\sum_{i=1}^{100}\\left( x_i (\\beta_0+\\beta_1x_i)-y_ix_i\\right) \\\\\n", + "\\end{bmatrix} = \\frac{2}{n}X^T(X\\beta - \\mathbf{y}),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $X$ is the design matrix defined above.\n", + "\n", + "\n", + "The Hessian matrix of $C(\\beta)$ is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{H} \\equiv \\begin{bmatrix}\n", + "\\frac{\\partial^2 C(\\beta)}{\\partial \\beta_0^2} & \\frac{\\partial^2 C(\\beta)}{\\partial \\beta_0 \\partial \\beta_1} \\\\\n", + "\\frac{\\partial^2 C(\\beta)}{\\partial \\beta_0 \\partial \\beta_1} & \\frac{\\partial^2 C(\\beta)}{\\partial \\beta_1^2} & \\\\\n", + "\\end{bmatrix} = \\frac{2}{n}X^T X.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This result implies that $C(\\beta)$ is a convex function since the matrix $X^T X$ always is positive semi-definite.\n", + "\n", + "\n", + "\n", + "We can now write a program that minimizes $C(\\beta)$ using the gradient descent method with a constant learning rate $\\gamma$ according to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_{k+1} = \\beta_k - \\gamma \\nabla_\\beta C(\\beta_k), \\ k=0,1,\\cdots\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use the expression we computed for the gradient and let use a\n", + "$\\beta_0$ be chosen randomly and let $\\gamma = 0.001$. Stop iterating\n", + "when $||\\nabla_\\beta C(\\beta_k) || \\leq \\epsilon = 10^{-8}$. **Note that the code below does not include the latter stop criterion**.\n", + "\n", + "And finally we can compare our solution for $\\beta$ with the analytic result given by \n", + "$\\beta= (X^TX)^{-1} X^T \\mathbf{y}$.\n", + "\n", + "\n", + "\n", + "Here is our simple example" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0.29631711 4.78130338]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[[3.84537096]\n", + " [3.16173603]]\n", + "[[3.84537096]\n", + " [3.16173603]]\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_118_2.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "# Importing various packages\n", + "from random import random, seed\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from matplotlib import cm\n", + "from matplotlib.ticker import LinearLocator, FormatStrFormatter\n", + "import sys\n", + "\n", + "# the number of datapoints\n", + "n = 100\n", + "x = 2*np.random.rand(n,1)\n", + "y = 4+3*x+np.random.randn(n,1)\n", + "\n", + "X = np.c_[np.ones((n,1)), x]\n", + "# Hessian matrix\n", + "H = (2.0/n)* X.T @ X\n", + "# Get the eigenvalues\n", + "EigValues, EigVectors = np.linalg.eig(H)\n", + "print(EigValues)\n", + "\n", + "beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y\n", + "print(beta_linreg)\n", + "beta = np.random.randn(2,1)\n", + "\n", + "eta = 1.0/np.max(EigValues)\n", + "Niterations = 1000\n", + "\n", + "for iter in range(Niterations):\n", + " gradient = (2.0/n)*X.T @ (X @ beta-y)\n", + " beta -= eta*gradient\n", + "\n", + "print(beta)\n", + "xnew = np.array([[0],[2]])\n", + "xbnew = np.c_[np.ones((2,1)), xnew]\n", + "ypredict = xbnew.dot(beta)\n", + "ypredict2 = xbnew.dot(beta_linreg)\n", + "plt.plot(xnew, ypredict, \"r-\")\n", + "plt.plot(xnew, ypredict2, \"b-\")\n", + "plt.plot(x, y ,'ro')\n", + "plt.axis([0,2.0,0, 15.0])\n", + "plt.xlabel(r'$x$')\n", + "plt.ylabel(r'$y$')\n", + "plt.title(r'Gradient descent example')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we can use **Scikit-Learn** as done here" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[4.1138489 ]\n", + " [3.01456784]]\n", + "[4.10064565] [3.02802357]\n" + ] + } + ], + "source": [ + "# Importing various packages\n", + "from random import random, seed\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.linear_model import SGDRegressor\n", + "\n", + "n = 100\n", + "x = 2*np.random.rand(n,1)\n", + "y = 4+3*x+np.random.randn(n,1)\n", + "\n", + "X = np.c_[np.ones((n,1)), x]\n", + "beta_linreg = np.linalg.inv(X.T @ X) @ (X.T @ y)\n", + "print(beta_linreg)\n", + "sgdreg = SGDRegressor(max_iter = 50, penalty=None, eta0=0.1)\n", + "sgdreg.fit(x,y.ravel())\n", + "print(sgdreg.intercept_, sgdreg.coef_)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have also discussed Ridge regression where the loss function contains a regularized term given by the $L_2$ norm of $\\beta$," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C_{\\text{ridge}}(\\beta) = \\frac{1}{n}||X\\beta -\\mathbf{y}||^2 + \\lambda ||\\beta||^2, \\ \\lambda \\geq 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to minimize $C_{\\text{ridge}}(\\beta)$ using GD we only have adjust the gradient as follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\nabla_\\beta C_{\\text{ridge}}(\\beta) = \\frac{2}{n}\\begin{bmatrix} \\sum_{i=1}^{100} \\left(\\beta_0+\\beta_1x_i-y_i\\right) \\\\\n", + "\\sum_{i=1}^{100}\\left( x_i (\\beta_0+\\beta_1x_i)-y_ix_i\\right) \\\\\n", + "\\end{bmatrix} + 2\\lambda\\begin{bmatrix} \\beta_0 \\\\ \\beta_1\\end{bmatrix} = 2 (X^T(X\\beta - \\mathbf{y})+\\lambda \\beta).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can easily extend our program to minimize $C_{\\text{ridge}}(\\beta)$ using gradient descent and compare with the analytical solution given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_{\\text{ridge}} = \\left(X^T X + \\lambda I_{2 \\times 2} \\right)^{-1} X^T \\mathbf{y}.\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[3.72971699]\n", + " [3.17051654]]\n", + "[[3.66618522]\n", + " [3.21902669]]\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_127_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from random import random, seed\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from matplotlib import cm\n", + "from matplotlib.ticker import LinearLocator, FormatStrFormatter\n", + "import sys\n", + "\n", + "# the number of datapoints\n", + "n = 100\n", + "x = 2*np.random.rand(n,1)\n", + "y = 4+3*x+np.random.randn(n,1)\n", + "\n", + "X = np.c_[np.ones((n,1)), x]\n", + "XT_X = X.T @ X\n", + "\n", + "#Ridge parameter lambda\n", + "lmbda = 0.001\n", + "Id = lmbda* np.eye(XT_X.shape[0])\n", + "\n", + "beta_linreg = np.linalg.inv(XT_X+Id) @ X.T @ y\n", + "print(beta_linreg)\n", + "# Start plain gradient descent\n", + "beta = np.random.randn(2,1)\n", + "\n", + "eta = 0.1\n", + "Niterations = 100\n", + "\n", + "for iter in range(Niterations):\n", + " gradients = 2.0/n*X.T @ (X @ (beta)-y)+2*lmbda*beta\n", + " beta -= eta*gradients\n", + "\n", + "print(beta)\n", + "ypredict = X @ beta\n", + "ypredict2 = X @ beta_linreg\n", + "plt.plot(x, ypredict, \"r-\")\n", + "plt.plot(x, ypredict2, \"b-\")\n", + "plt.plot(x, y ,'ro')\n", + "plt.axis([0,2.0,0, 15.0])\n", + "plt.xlabel(r'$x$')\n", + "plt.ylabel(r'$y$')\n", + "plt.title(r'Gradient descent example for Ridge')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using gradient descent methods, limitations\n", + "\n", + "* **Gradient descent (GD) finds local minima of our function**. Since the GD algorithm is deterministic, if it converges, it will converge to a local minimum of our cost/loss/risk function. Because in ML we are often dealing with extremely rugged landscapes with many local minima, this can lead to poor performance.\n", + "\n", + "* **GD is sensitive to initial conditions**. One consequence of the local nature of GD is that initial conditions matter. Depending on where one starts, one will end up at a different local minima. Therefore, it is very important to think about how one initializes the training process. This is true for GD as well as more complicated variants of GD.\n", + "\n", + "* **Gradients are computationally expensive to calculate for large datasets**. In many cases in statistics and ML, the cost/loss/risk function is a sum of terms, with one term for each data point. For example, in linear regression, $E \\propto \\sum_{i=1}^n (y_i - \\mathbf{w}^T\\cdot\\mathbf{x}_i)^2$; for logistic regression, the square error is replaced by the cross entropy. To calculate the gradient we have to sum over *all* $n$ data points. Doing this at every GD step becomes extremely computationally expensive. An ingenious solution to this, is to calculate the gradients using small subsets of the data called \"mini batches\". This has the added benefit of introducing stochasticity into our algorithm.\n", + "\n", + "* **GD is very sensitive to choices of learning rates**. GD is extremely sensitive to the choice of learning rates. If the learning rate is very small, the training process take an extremely long time. For larger learning rates, GD can diverge and give poor results. Furthermore, depending on what the local landscape looks like, we have to modify the learning rates to ensure convergence. Ideally, we would *adaptively* choose the learning rates to match the landscape.\n", + "\n", + "* **GD treats all directions in parameter space uniformly.** Another major drawback of GD is that unlike Newton's method, the learning rate for GD is the same in all directions in parameter space. For this reason, the maximum learning rate is set by the behavior of the steepest direction and this can significantly slow down training. Ideally, we would like to take large steps in flat directions and small steps in steep directions. Since we are exploring rugged landscapes where curvatures change, this requires us to keep track of not only the gradient but second derivatives. The ideal scenario would be to calculate the Hessian but this proves to be too computationally expensive. \n", + "\n", + "* GD can take exponential time to escape saddle points, even with random initialization. As we mentioned, GD is extremely sensitive to initial condition since it determines the particular local minimum GD would eventually reach. However, even with a good initialization scheme, through the introduction of randomness, GD can still take exponential time to escape saddle points.\n", + "\n", + "## Stochastic Gradient Descent\n", + "\n", + "Stochastic gradient descent (SGD) and variants thereof address some of\n", + "the shortcomings of the Gradient descent method discussed above.\n", + "\n", + "The underlying idea of SGD comes from the observation that the cost\n", + "function, which we want to minimize, can almost always be written as a\n", + "sum over $n$ data points $\\{\\mathbf{x}_i\\}_{i=1}^n$," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\mathbf{\\beta}) = \\sum_{i=1}^n c_i(\\mathbf{x}_i,\n", + "\\mathbf{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This in turn means that the gradient can be\n", + "computed as a sum over $i$-gradients" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\nabla_\\beta C(\\mathbf{\\beta}) = \\sum_i^n \\nabla_\\beta c_i(\\mathbf{x}_i,\n", + "\\mathbf{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Stochasticity/randomness is introduced by only taking the\n", + "gradient on a subset of the data called minibatches. If there are $n$\n", + "data points and the size of each minibatch is $M$, there will be $n/M$\n", + "minibatches. We denote these minibatches by $B_k$ where\n", + "$k=1,\\cdots,n/M$.\n", + "\n", + "\n", + "\n", + "As an example, suppose we have $10$ data points $(\\mathbf{x}_1,\\cdots, \\mathbf{x}_{10})$ \n", + "and we choose to have $M=5$ minibathces,\n", + "then each minibatch contains two data points. In particular we have\n", + "$B_1 = (\\mathbf{x}_1,\\mathbf{x}_2), \\cdots, B_5 =\n", + "(\\mathbf{x}_9,\\mathbf{x}_{10})$. Note that if you choose $M=1$ you\n", + "have only a single batch with all data points and on the other extreme,\n", + "you may choose $M=n$ resulting in a minibatch for each datapoint, i.e\n", + "$B_k = \\mathbf{x}_k$.\n", + "\n", + "The idea is now to approximate the gradient by replacing the sum over\n", + "all data points with a sum over the data points in one the minibatches\n", + "picked at random in each gradient descent step" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\nabla_{\\beta}\n", + "C(\\mathbf{\\beta}) = \\sum_{i=1}^n \\nabla_\\beta c_i(\\mathbf{x}_i,\n", + "\\mathbf{\\beta}) \\rightarrow \\sum_{i \\in B_k}^n \\nabla_\\beta\n", + "c_i(\\mathbf{x}_i, \\mathbf{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Thus a gradient descent step now looks like" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\beta_{j+1} = \\beta_j - \\gamma_j \\sum_{i \\in B_k}^n \\nabla_\\beta c_i(\\mathbf{x}_i,\n", + "\\mathbf{\\beta})\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $k$ is picked at random with equal\n", + "probability from $[1,n/M]$. An iteration over the number of\n", + "minibathces (n/M) is commonly referred to as an epoch. Thus it is\n", + "typical to choose a number of epochs and for each epoch iterate over\n", + "the number of minibatches, as exemplified in the code below." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np \n", + "\n", + "n = 100 #100 datapoints \n", + "M = 5 #size of each minibatch\n", + "m = int(n/M) #number of minibatches\n", + "n_epochs = 10 #number of epochs\n", + "\n", + "j = 0\n", + "for epoch in range(1,n_epochs+1):\n", + " for i in range(m):\n", + " k = np.random.randint(m) #Pick the k-th minibatch at random\n", + " #Compute the gradient using the data in minibatch Bk\n", + " #Compute new suggestion for \n", + " j += 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking the gradient only on a subset of the data has two important\n", + "benefits. First, it introduces randomness which decreases the chance\n", + "that our opmization scheme gets stuck in a local minima. Second, if\n", + "the size of the minibatches are small relative to the number of\n", + "datapoints ($M < n$), the computation of the gradient is much\n", + "cheaper since we sum over the datapoints in the $k-th$ minibatch and not\n", + "all $n$ datapoints.\n", + "\n", + "\n", + "\n", + "A natural question is when do we stop the search for a new minimum?\n", + "One possibility is to compute the full gradient after a given number\n", + "of epochs and check if the norm of the gradient is smaller than some\n", + "threshold and stop if true. However, the condition that the gradient\n", + "is zero is valid also for local minima, so this would only tell us\n", + "that we are close to a local/global minimum. However, we could also\n", + "evaluate the cost function at this point, store the result and\n", + "continue the search. If the test kicks in at a later stage we can\n", + "compare the values of the cost function and keep the $\\beta$ that\n", + "gave the lowest value.\n", + "\n", + "\n", + "\n", + "Another approach is to let the step length $\\gamma_j$ depend on the\n", + "number of epochs in such a way that it becomes very small after a\n", + "reasonable time such that we do not move at all.\n", + "\n", + "As an example, let $e = 0,1,2,3,\\cdots$ denote the current epoch and let $t_0, t_1 > 0$ be two fixed numbers. Furthermore, let $t = e \\cdot m + i$ where $m$ is the number of minibatches and $i=0,\\cdots,m-1$. Then the function $$\\gamma_j(t; t_0, t_1) = \\frac{t_0}{t+t_1} $$ goes to zero as the number of epochs gets large. I.e. we start with a step length $\\gamma_j (0; t_0, t_1) = t_0/t_1$ which decays in *time* $t$.\n", + "\n", + "In this way we can fix the number of epochs, compute $\\beta$ and\n", + "evaluate the cost function at the end. Repeating the computation will\n", + "give a different result since the scheme is random by design. Then we\n", + "pick the final $\\beta$ that gives the lowest value of the cost\n", + "function." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "gamma_j after 500 epochs: 9.97108e-05\n" + ] + } + ], + "source": [ + "import numpy as np \n", + "\n", + "def step_length(t,t0,t1):\n", + " return t0/(t+t1)\n", + "\n", + "n = 100 #100 datapoints \n", + "M = 5 #size of each minibatch\n", + "m = int(n/M) #number of minibatches\n", + "n_epochs = 500 #number of epochs\n", + "t0 = 1.0\n", + "t1 = 10\n", + "\n", + "gamma_j = t0/t1\n", + "j = 0\n", + "for epoch in range(1,n_epochs+1):\n", + " for i in range(m):\n", + " k = np.random.randint(m) #Pick the k-th minibatch at random\n", + " #Compute the gradient using the data in minibatch Bk\n", + " #Compute new suggestion for beta\n", + " t = epoch*m+i\n", + " gamma_j = step_length(t,t0,t1)\n", + " j += 1\n", + "\n", + "print(\"gamma_j after %d epochs: %g\" % (n_epochs,gamma_j))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Program for stochastic gradient" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Own inversion\n", + "[[3.90430807]\n", + " [3.09991356]]\n", + "sgdreg from scikit\n", + "[3.95756103] [3.17001387]\n", + "theta from own gd\n", + "[[3.90430807]\n", + " [3.09991356]]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta from own sdg\n", + "[[3.87292885]\n", + " [3.09590629]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEWCAYAAAB1xKBvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAArz0lEQVR4nO3dd5xcdb3/8ddnk02nZROSkLAbSgwJXUIVBC5ZpQgqYsGACGIQf3qxoJdyBRtwxX69IkalaAIWRCyguAubRkhgEwKkAUlII72XDdn2+f0xs2Gy2Zk5M3tmzszs+/l4zCMzZ075zNmT7+ec7/ec79fcHRERkXTKog5ARESKgxKGiIgEooQhIiKBKGGIiEggShgiIhKIEoaIiASihCEly8y+aWYTo44jTGZ2npmtijoO6ZqUMCSvzGyZme02s51mttbMHjKzflHHJSLpKWFIFC51937AScDJwK3RhtM1mVn3qGOQ4qKEIZFx97XA08QSBwBmdouZLTGzHWa2wMw+nPDdp81supn9wMy2mNmbZnZRwvdHmNmU+LI1wIDE7ZnZZWY238y2mtlkMxuV8N0yM/uamb1iZrvM7DdmNsjM/hlfX62ZHdLR72irJjKzr5rZejNbY2bXJnw/2cyub/87Ej67mX3ezN6Ib+s7ZnaUmT1vZtvN7I9m1qPdNm8zs43xuMclTO8Z3z8rzGydmd1vZr3bxflfZrYWeNDMBpjZP+L7ZLOZTTMzlQvSIR0YEhkzGwZcBCxOmLwEOAc4CPgWMNHMhiR8fzrwGrFkcC/wGzOz+HePALPj330HuCZhW+8CHgW+BAwEngL+3q4g/ghQDbwLuBT4J3BbfH1lwH+m+DmD4zEPBT4D/DxZgkniQuAU4Azg68AEYBxwOHAccGW7bQ2Ib+saYIKZjYx/9714/CcBR8fnuaPdsv2BKmA88FVgFbF9Mij+e9VfkHRICUOi8ISZ7QBWAuuBO9u+cPc/uftqd2919z8AbwCnJSy73N1/5e4twMPAEGCQmVUCpwLfcPc97j4V+HvCch8HnnT3GndvAn4A9AbOSpjnZ+6+zt3fAqYBs9z9JXffA/yFWPVZMk3At929yd2fAnYCI1PM39733H27u88H5gH/dvel7r6NWOJqv+223zkFeBL4WDxxfhb4srtvdvcdwN3AJxKWawXujC+7Ox73EKAqHvs0VwdzkoQShkThQ+5+AHAecAwJVUdm9ikzmxuvItlK7Ow6sWppbdsbd2+Iv+0HHAZscfddCfMuT3h/WOJnd28llrCGJsyzLuH97g4+p2qc3+TuzQmfG9LM314m2+7odx5G7CqhDzA7Yf/9Kz69zQZ3fzvh8/eJXeH928yWmtktGcQsXYwShkQmfnb8ELGzfcysCvgV8AWgwt0PJna2bUlWkWgNcIiZ9U2YVpnwfjWxahji2zJi1T1vZf8LAttFrCBvM7iT6+vod64GNhJLLse6+8Hx10HxGwza7HP14O473P2r7n4ksWq4r5jZBZ2MT0qUEoZE7SdAtZmdBPQlVqBtAIg3HB8XZCXuvhyoB75lZj3M7GxiBWCbPwKXmNkFZlZOrO5+DzAjpN+RylzgcjPrY2ZHE2vj6Ky233kO8AHgT/Grpl8BPzazQwHMbKiZvT/ZSszsA2Z2dDyBbgda4i+R/ShhSKTcfQPwW2J18guAHwLPE6uSOR54LoPVfZJYo/hmYu0iv03YzmvAVcDPiJ2JX0rs9t7GEH5GOj8GGon9poeBSZ1c31pgC7GriknA59x9Ufy7/yJWxTTTzLYDtaRuSxkRn2cnsf1+n7tP7mR8UqJM7VsiIhKErjBERCQQJQwREQlECUNERAJRwhARkUCKqvOxAQMG+PDhw6MOQ0SkqMyePXujuw9MP2dqRZUwhg8fTn19fdRhiIgUFTNbnn6u9FQlJSIigShhiIhIIEoYIiISiBKGiIgEooQhIiKBKGGIiEggShgiIhKIEoaIiASihCEiIoEoYYiISCA5Txhm9oCZrTezeR18d7OZuZkNyHUcIiLSOfm4wngIuLD9RDM7HKgGVuQhBhER6aScJwx3n0psjOX2fgx8HdAYsSIiRSCSNgwzuwx4y91fDjDveDOrN7P6DRs25CE6ERHpSN4Thpn1AW4H7ggyv7tPcPcx7j5m4MBOd+cuIiJZiuIK4yjgCOBlM1sGDAPmmNngCGIREZGA8j6Akru/Chza9jmeNMa4+8Z8xyIiIsHl47baR4HngZFmtsrMPpPrbYqISPhyfoXh7lem+X54rmMQEZHO05PeIiISiBKGiIgEooQhIiKBKGGIiEggShgiIhKIEoaIiASihCEiIoEoYYiISCBKGCIiEogShoiIBKKEISIigShhiIhIIEoYIiISiBKGiIgEooQhIiKBKGGIiEggShgiIhKIEoaIiASihCEiIoEoYYiISCA5Txhm9oCZrTezeQnTvm9mi8zsFTP7i5kdnOs4RESkc/JxhfEQcGG7aTXAce5+AvA6cGse4hARkU7IecJw96nA5nbT/u3uzfGPM4FhuY5DREQ6pxDaMK4D/pnsSzMbb2b1Zla/YcOGPIYlIiKJIk0YZnY70AxMSjaPu09w9zHuPmbgwIH5C05ERPbRPaoNm9k1wAeAC9zdo4pDRESCiSRhmNmFwH8B57p7QxQxiIhIZvJxW+2jwPPASDNbZWafAf4POACoMbO5ZnZ/ruMQEZHOycddUle6+xB3L3f3Ye7+G3c/2t0Pd/eT4q/P5ToOEZGcmDQJhg+HsrLYv5OSNskWvcjaMEREit6kSTB+PDTEa9aXL499Bhg3Lrq4cqQQbqsVESlOt9/+TrJo09AQm56NAr9a0RWGiEi2VqzIbHoqRXC1oisMEZFsVVZmNj2VsK9WckAJQ0QkW3fdBX367DutT5/Y9Exlc7WS5yosJQwRkWyNGwcTJkBVFZjF/p0wIbsqpEyvVtqqsJYvB/d3qrBymDSsmB6yHjNmjNfX10cdhohI+Nq3YUDsaiVZAho+PJYk2quqgmXL9plkZrPdfUxnQ9QVhohIIcj0aiXMBveAdJeUiEihGDcueHVWZWXHVxjZNLgHpCsMEZFiFGaDe0BKGCIiQRTaQ3VhNrgHpCopEZF0CvWhukyqsEKgKwwRkXSK4KG6fFDCEBFJJ4I7kgqREoaISDphdgFSxJQwRETSieCOpEKkhCEikk4EdyQVIt0lJSISRJ7vSCpEusIQEZFAlDBERCSQnCcMM3vAzNab2byEaf3NrMbM3oj/e0iu4xCRIlVoT1gXkZWzVvPgddNCW18+rjAeAi5sN+0W4Bl3HwE8E/8sIrKvCMZ8KGbbV23nr7fN4gsnTOGYnkupPOMwrnvwnNDWn5fxMMxsOPAPdz8u/vk14Dx3X2NmQ4DJ7j4y3Xo0HoZIF5PBmA9dUVNDE7MeWkjNHzZT+1J/Zu0YTQvd6cMuzh24gOqzdlF9zVCOv/xdoYyHEdVdUoPcfQ1APGkcmmxGMxsPjAeo7GIPyYh0eXrCeh/e6ix6aik1D66i9rleTF43ih2cwCf5HY/ZJxnMWvYcMpjuP7iH7tddE/r2C77R290nuPsYdx8zcODAqMMR6RoKpd1AT1izbt4GJn3+OT599HQOL1/L6EuP4qbHz2Xh5kGMGz2XWZd8i4m9b2CIr8Fwem1ZQ/cvfj4nf7OorjDWmdmQhCqp9RHFISLtFVLPrHfd1fGwpSX8hHXDxgam3r+Amid2Ujt/CK+8PRIYSIVt4oJhrzH2vDeoHn8kw88eDgyH4Z+C3bvbrSTeMWLIf6+o2jC+D2xy9/8xs1uA/u7+9XTrURuGSB4UWrvBpEmxwm/FitiVxV13ldQDdC2NLcx59DVqJq2n5sWDmLF1NI30pCdvc/YhCxh72naqrxrEyZ8YSVn3DiqFyspiNwS0ZwatrfG34YzpnfOEYWaPAucBA4B1wJ3AE8AfgUpgBfBRd9+cbl1KGCJ5EKAAks5ZOnkFNb9aRs2Ucp5dfQwX+lPcze1UsoJtPQ5l5Qe/wNH3fYU+A/qkX1mABB9Wwsh5lZS7X5nkqwtyvW0RyUIEY0WXus1LtvDsfYuoeaqJ2sVVLG2uAio5vNtb/M+hP+a6TffSvXkPAIc0ruOQJ++Bp48IdiWVx2q7gm/0FpEMhNFYrZ5ZO23P9j3U/eglbjtrMqf2XcCAow/ioz86k98vOpHjB6zl/z46hUVPLWX5Q5MZv/Huvclir0wGZ8pjx4h5acMIi6qkRFJo31gNsYI+m8KjxNsNwuatzquPv0HNw6upeb4fUzeNZjd96E4TZxy4gOpTtjD24xWcds0ouveKV+x09PdKFGIVYNG0YYRJCUMkhUJrrC5xq15cQ+0vl1BTa9SueBfrPXbb/6geS6getYqxl/bmvBtHccBhB3S8gmR/rzYh/t2Kpg1DRPJED7nl1PZV25nyy0XU/G03NYuGsajxKGAIg8rWU131OtVjX+OC8Ucx7NSjgKNiVxBnfSz5VVqqv0uBVgEqYYiUilSN1apiylhTQxMv/m4RNb/fRM3s/szaMYpmTqM3DZw7YD6fPWslY68+jOMvH4GVteusIsizLMn+Xt26FezgTKqSEikVydowrrkGHn54/7ryigr46U8LsmCKgrc6rz/9JjUPrKRmei/q1o5iBwditDKm70KqT9zA2I8cxFnXj6bngT1TryxI9WCYbU5phFUlhbsXzeuUU05xkaIwcaJ7VZW7WezfiROj225VlXvsyYr9X3365C+2ArRu3np/5AvP+bUjpvrh3Vbt3S1Hdl/mN4ya4o/dPMM3Ld6c+YrNOt7fZvvOl+1xkuFyQL2HUAZHngQyeSlhSFGYODFWEBdKwZys8Gp7VVVFE1cEdm3Y5U/fXe83j6nzE3st2rsLDrHNfsXQGf7LcVN8Sd3y5CsIWlAnS9Jh7Ossji8lDJFClcvCIsx4kp315loer75aHvqtv10xxFsxX1M22D/Fgw7uPXjbzz94jt/9vjp/8eH53rynOVjcQQvqXJ40ZHF8KWGIFKqg1RH50lHhFVUiy8PV19IpK3zC1VP8J4fc6bvovc+29lhPn3vFt33Xhl2ZrzjTgjpXiTGL4yushKFGb5GwFeLzEJMmwU03waZN+07PUSNrUjnYN1ve3Mqz9y2k9qkmal6vYklzFQArGcYw3gpvW4XSx1YW+zCsRm91DSIStkLsWmPcONi4ESZOzEsXEkmF8KzInu17mPyTufz32ZM5vd88Bhx5AFf84EwmLTiJ0RVr+d+PTGHhk0sZaqs7va19FMrYHFEeX2FcpuTrpSopKRpBqyOiupsqKlnUv7e2tPorj73mP7yszi8a+IL3YaeDezea/KwDXvY7z63z6fe97I27Gju9rZQK6WYG3SWlhCFdTCEVQPkS8De/NXuNP3T9NL/qiGk+uGzt3llH9ljiXzh+sv/1tpm+beW2ULaVcfxFmODDShhqwxCJSiG2deRC+6fML74Ynnpqn6fOd5x/GVPuX0jt33dTs3AoC/YcDcBA28DYytep/o9Wxt5wFIeffljntt1Fn3BX54Mixa5QGlFzKcnTzC0/v58XGk+i5vebqJ19CM9vH00z5fSmgfdWLGDsGTup/tQQjr98RMejzElG1OgtErXOjj2RTSNqGONd5NPtt+/fJUlDA29deztn3XA836x7Lw3N5dx8xnM884OX2LyljH9tHMPN/ziPEz+WZEjSQlJsf4/OCqNeK18vtWFIwQijfjzTdRRZm8f6BRu8lY6fGWjF/I9fnuEbX98UdZjZK6K/B2r0FolQWHfgZNKIGuUT5AHibNjU4P++p96/dmqd31p+r79JlbcWwsOCuVJoT/SnoIQhEqVcPM2drlCO6gnyJGfSLb/9nc+euMD/esLtvrZssLeCN9HNW8FbkiWKXJ+F5/MupkJ7oj+FkkgYwJeB+cA84FGgV6r5lTCkYERxj39UZ7RJtruCYX4lE30nKbod6SjWXCaLfFYR6Qojr8liKPAm0Dv++Y/Ap1Mto4QhBSPswilI4RNBnfmWZVtTtkPs6DcoeLLI9Zl3vgvwLtiGEfUtCN2B3mbWHegDJHmWX6TAjBsX61YjrG42gnSZEfY2O9C4s5GpP3uZb5wzmTP6zaNieD+W0/FdW1ZVSb9d64OvPNddaOR7iNo8/D0KThhZJ9sXcBOwE9gATEoyz3igHqivrKwMNetKF1PIT+lGVL3R2tLq8554w3/8ocl+8cAXvC87HGLdbpzZ7xW/4711vvBTd3tr7yRn0um6Ts/nmXcm+7CQj4UcoASqpA4BngUGAuXAE8BVqZZRlZRkrdCrD4LEl1jIVVTEXlkUeKtfWuu/vWGaX33kNB9Stmbv5t5VvtT/3/GT/S+3zPSty7fuH19HBWyqrtPbGoXzVSAH/RsX+rGQA6WQMD4K/Cbh86eA+1Ito4QhWSuGBspUZ73pxrRIUeDtWLPDn/zmC/6lkyf7sT1f9yuZ6G9S5S2Yr+82yOvO+YYvn7Gq83GDe7du+U0SyWJJlUiL4VgIWVgJI7KuQczsdOAB4FRgN/BQ/Ef9LNky6hpEslbs3XAk63cqUbwPqua3m5k9aRE1j26kpv5gnt82miZ60Ivd3NH3h9y8+7uUt+55Z7l8j4kRtWI/FrJQ9F2DuPss4DFgDvBqPJYJUcUjJa5QxjLIVoCGW1++gssPm8mA3rs44/rjuOOZ97KzsSdfOX0GtffOYcsW49YBv943WUCs647bb89R4AWo2I+FCEV6l5S73+nux7j7ce5+tbvvSb+UlJR89cVTiIMaZSJAYbacSuasH8ZHR77MH740g/WLtjC7YRT/M/M8Lvjau+l1cK9gdxKVev9IxX4sRCldnRVQC5wYRv1XZ19qwygxmTb0ttVJZ3uHSxHfGbNnwoPeXN4raRtGY7eevubWn3hrS2vqFaWrv+8qDcJFfCxkg3w1egPvJnY304PAkDA2mu1LCaNEpLsdM1XhVV7u3qNHyRdoLU0tPueRhX7vxXVe3b/ee9HgVzLRl1HpLZjv6n6gN/Y9yFuzSZqpEkIXbBDuCsJKGIEbvc3sI8AdwOPAve6+O/zrndTU6F0COhofob22xscgDb1tSmDQoRXPv0XNL5dSW9eNZ1aOYIMPBODYnm9QPXo11R/sw3tvGEW/wf06t6FUgwp1wQbhriCvAyiZmQHHAmcD3wXeBm519991NoBMKGGUgAzu9klaeHWkCAu0bSu2UfeLRdQ++TY1iyp5vekIAIaUrWXs8MVUV8PYz41gyEmD8hdUVxkFsIsJK2F0D7Ch6cCRxDoJnAl8GlgE3GRm57j7+M4GIV1Iurt9+vSJDeE5fHjwZAFFcYdLU0MTMx9YQO2ftlAzp4IXdo6ihdPpy07OHbiQG9+zgupPD2X0pUdhZYOTryiXw47edRdcdx00Nr4zrUcPNQgLECBhAJ8D5vv+lyJfNLOFOYhJSlllZfIrjKqqWLJ4+OHkVVbl5bGricQCrUDvcPFWZ+E/llDz0FvUPtebyetHsZMTKaOF0/ot4Nazp1P9sUM449pR9Oh3arCVtq/SW7489hnCSxrt/6tnkriltHWmAQQ4MoyGlKCvLtfoXYp3cmTb6Jr49HAB75c1L6/z331uul9z1DQ/rGz13tCPLn/Tbzx2ij/+9ed9y7Kt2a184sR3nqTOVaO0Gr1LEsX+pHc2ulQbRkeNw6XyRG4JNbruWr+LqfcvoPZvu6iZfxivvv0uACpsExcMe43q81sY+9kjGH72sM5tKN3NAmHtnyLb/xJMXhu9C0WXShhdtfFxwADYtGn/6RUVsHFj/uNpp6WxJdbtxiMbqK0/iBlbR9NIT3ryNuf0n8/Y03ZQfdUgTvr4SMq6Z/hcbKpEmu5mgbCOi6563JW4sBJG3qqTwnh1qSqpKIYALQQVFR3/7oqKyEJa/Mwy/8WVU/zyw573g23L3pBO7r3Av3Zqnf/7nnpv2NTQuY2kq6pLdjwk7p8w/p5d5cG9LoZi7602m1eXShj5HgK0UJJJAYyTvPH1Tf7HL8/wzx4zxY/ovnxvCId3W+XXjZjqj37xOV+/YEO4G0339w4y7kRYBXuhHAsSGiWMUpfPIUAL6awygkbXt7e97c/8YI7fckadj+kz340WB/cD2eofGvK8/99HJ/tr/1qavtuNzkiXKNN1b67GaUlBCaMrCPNML1WBVEh3xuQhebU0tfjcPyzy719S5++reNF7s8vBvTuNfs6Bc/1b59f5jF++4k27m0LbZlpBx/RuOx6SJYw8XolJ8VDCkMykKpAKoBpoHzmoEln5wmp/4NqpfmXVdD/U1u/9iaN7vuE3nTTZ//6NWb79re2d3k7WMk2UmSZ5VTN1aUoYkplUBVIhXWGEZNvKbf7X22b6F46f7CN7LNn7kwaXrfWrjpjmD10/zVe9uDr9ivJZ0GayrUwSTCFVOUoklDAkc5mMy1xkBUrjrkafft/Lfue5dX7WAS97N5piP4OdftHAF/yHl9X5K4+9llk7RKHvl6AJpgRPCCQzYSUMPYchMbnsnygHvNV57V9vUvPASmqm92LyulHs4EDKaGFM34VUn7SRsVcczJnXjaLngT2z20ipPJOgh/G6vKIfojVypT6qWKbGjYsVgq2tsX/TJYsI9t+6eRt45P89x7UjplHZYw2jLjmS//zzuSzYNJhxo+fy56/NZOPSHczaeRzfnX4e5w2cT88TRmYfY5DR6YqBhiSVsIRxmZKvV2hVUhMn7j8IT48ehVPVUOhyXVUTr2ppNfOGgwb7xOG3+wm9Fu3dVH/b5B8dNsMnXD3Fl05ZEU6MHVXvlEpVThh/LzWaFzXUhtEJBfg0ceQyKRByVJA272n2JTd8z/eU9dxnvTvp49/t812/5/11/uLD8715T3P6lWUSY7IC9cYbC7sNIxOdKfALvS2nI0pw+yiJhAEcDDxGbHyNhcCZqeYPLWEku4cdwll/scm0QAjxNtwldcv9l+Om+BVDZ3h/2+RvUhVOMsokxnQPNXa24Cn2wqvYrrSKMcHlWKkkjIeB6+PvewAHp5pfCSNHMi0QOlGAbFq82R+7eYbfMGqKH9l92d5Fh3V7y68dMdVbCSkZZRJjLp9DKYXCq9Ce00mn2BJcHhR9wgAOBN4k3mNukJeqpJLo7BlspgVCBoXg29ve9rofv+S3nVXnp/ad52U0O7gfwDa/bPBM/9kVk33hk0veud01rP/smRTUuSxgSqHwKrbfUGwJLg9KIWGcBLwAPAS8BPwa6NvBfOOBeqC+srIynL03caJ7efm+B1N5eXGd9bUJ4ww2mwIhSZJqbWn1l//0mv/wsjq/cMAL3oedDu7daPL3HPCyf/O8On/u/le8cVdj7n5Pmhhzus32SqHwKrarpGJLcHlQCgljDNAMnB7//FPgO6mWCfXBvWKvV24Txn+OThYIq15c7Q9dP83HDZ/ug8rW7V3FMT0W+xdPmOx/++9Zvm3ltsziyfXfpv02brxx/22GEUepFF7F9P+l2BJcHpRCwhgMLEv4fA7wZKpl9KR3B8I6g82gQNj+1nb/23/P8v88cbKP6rF47yYPtfX+yarp/uBnpvnKFwJ0uxGVIAVKWIWOCq9oFFOCy4OiTxix38A0YGT8/TeB76eaXwmjA3k4g23a3eTP3f+Kf+v8Oj/7wLnenUYH997s8vdXvOg/+ECdv/yn17ylqSX7jeTzP3iQfRbmflXhJRELK2FE2jWImZ1ErO2iB7AUuNbdtySbX12DdCAHY397q/P607FuN2qn96Ju7TFs5yCMVk7ps4jqE9dTfcVBnHX96Oy73cjxb0gpSFcZ6k5DSoiGaC00Eyfue/dVWENmBt12J89gt937C995wCBvxXwlQ/1KJjq432Q/9Y3dY9ObDxvWcV1/Z+W7nj/fVxgiEaMUqqQyfRVswujoriso6O5GGjY1+NN31/vNY+r8lvJ7fSf71rM3duvpWz94dfpR3sKoj8/3nUT5bMMQKQBKGIUk1XjLBXJG2tLU4vW/W+D3vL/OLzhktvdkt4N7OXt8jQ3pOPZu3VIni7B+YxRn80GuytT2ICUirISh7s3DkKy+GyKt8142fRU1E5ZSO7k7z6waySavAOCEXq8x9tg1VH+oH+eMH0XfwQckjz+Izv7GfLdhiHQxYbVhdA8jmC6vsrLjcRPavsuTrcu38ezPF1LzZCO1b1SyuGk4MIzDytbwgSMXUv0+44LPjWDwCSOBkfvG2FH83bpBS0v6Dffv37nA25JCEY3HIdIVdd3xMDKVOP7DgAGxV9s4CxdfDOXl+y/To0es4MuRxp2NLLj6brb0GkyrlbFt+Ak89v0lTFxwMqP6r+Onl09hwd+XsKppMA8tPptx972HwSccuv+K7rordkafqE+f2Fl/++kd2bGj8+NhZDoeh4jkXxj1Wvl6RdaG0VEDaPvG0BtvzPldUq0trf7q46/7jz5Y5xcPfME/zW/2a6xuLu/lTQ88nN1vTDZ8a9v0ZH1wFVBbjYjsD7Vh5FGyoToT5WjYztVz1lJ7/2JqaqF2+QjWtg4CYGSPpczws+jftC5vsaTcD8X4fEKRDUsrki21YeRaYmESJKmGNGznzrU7mXL/Qmr+2kDNwqEs2HM0MJiBtoGxla8z9vzXGTv+SCrPPBLK1uc0lozWW2zDfbZvaF++PPYZlDREkgnjMiVfr7xVSaWrggqxSqZpd5M//6tX/dv/UefnJHS70YsGf1/Fi/79S+r8pd8v6rjbjWRVRImxhHlraLLbX83yc8tpPn6LqtakBKHnMDohXcGT6rmKbB9eSxinuvHQof70Gbf7h4Y87wexNVbm0uKn9Jnvt5xR57X3zvbdW3anX1+6hwXDfviso/WZxdpvci3s31IK3Y6LBKSEka0gBU+ywqStQKmoiL0Cnuluu/cX3tR933GqWzB/mKv9s8dM8T9+eYZvWLQxs9+RLKklDgKVi7PoqB5mC/u36ApDuhAljGzloR+hhk0NXvO92f710+r85N4Lko5T3Rq0KqejQjrIGXIpnUWH/VvU9Yd0IUoY2e+59AVPhoVJS1OLz3lkoX/vojof27/ee9HgEOt249yDXko+TnWQJJQsliDtF6V0Fl1KV0sieaaEkY1UZ+btC540hcmy6Sv919dM9Y8f/pwPsA17V3Ncz9f9y++u86e+9YLvWLMjNnOqNpF0Z8ipqp7StScU61l0R/u+WH+LSAFQwshGJ+7y2bJsq//llpn++eMm+4jypXsXHVK2xj915DSfdsEd3jRkWMcJJpNE1V6qqpgbb9z/+456Xe3MWXS+z8JTJQZdEYhkRQkjG6kas9vZs2OPT/3ZXP/GOXV+Rr9XvIxmB/e+7PBLDp3lP/nwZJ/3xBve2tIa7Oy3o8K97XOqwi9VVUyuq5yiOKsvpWo0kQKhhJGNFIVRa0urz3viDf/Jhyf7JYfO8r7scHAvo9nP6PeKf+OcOp/6s7m+Z8eejNa7j7Yz5MRkka4gTlVo57pRO4rCu5Qa6kUKhBJGNjoofJu69/T7Bn7DDytbvXfyiPKl/vnjJvtfbpnpW5ZtTb/eTAu5TAviZFUxuS7Qoyi8dYUhEjoljCzsXLfT51z+bd9UPshbMH+TKr+SiT7ANvjHD3/Of33NVF82fWXmK860kAurIM51lVFUAxupcVskVEoYATTvafaZv37Vvzu2zs896CUvZ4+De092+9j+9f69i+p8ziMLO+52IxM33thxwZrsCehkBXG3bpk36OayITiqwluN2yKhCithRN5brZl1A+qBt9z9A6nmTddbrbc6S+pWUPPr5dRO7cGza45hqx8MwMm9F1J9/DqqP3Ig77l+FL379w7vRyTrxTVZr7EdjTDXXqGMOKceXUWKXin1VnsTsBA4MJuFN72xmWfuW0Ttv5qpWXwEy5qrgCoqu63iIyNe5TNHPMNpr/yGbmvfgnWVMPQu6P/u7KPtqABN1otrsuntR5grK9t/ZLuGhtj3URfO48ZFH4OIFIRIrzDMbBjwMHAX8JUgVxjTa6fz3K8WUPPn7dS+eihzGo7BKeMgtnH+kIVUv3cP1Z+p4ugLqrBHH4HrroPGxndW0qMHPPBAdoVgsrGne/eGTZv2nz/ouBTJxgQvxjEmRKTghHWFEXXCeAy4BzgAuLmjhGFm44HxAP3KRp7S3PoSb9Ob7jRx5oELqB6zheorBzDmqmPo3qvdBdOAAR0X5BUVsHFj5gEnq3qqqIDdu/dPJEGrlDKt0hIRyUBYCSOyMb3N7APAenefnWo+d5/g7mPcfUyzl3PDSS/wjztfZMuaPUzddiLfeOY8zrj+uP2TBXScLFJNTydZFdPmzbHkUFUVuyqoqsqs/SHZmNo5HA9cRCRTkV1hmNk9wNVAM9CLWBvG4+5+VbJlMh6i1Sz5d9n87lxeCahxWURypOivMNz9Vncf5u7DgU8Az6ZKFlmpqMhsejq5vBIYNy6WdFpbY/8qWYhIgYksYWRl9uzYWf6kScHm/+lPobx832nl5bHp2Rg3rnNVTyIiRSzy5zAyMcbM6yGzBmVV9YhIF1cSd0llam/CAN1BJCISUNG3YXRasjuWREQkJ4o3YVRWRh2BiEiXUpwJI+xnFCZNijWml5Vl1qje2WVFRIpI8SWMIHcmZVKIt3X3sXx57NmM5ctjn4MU/J1ZVkSkyBRXo3eQB/eS9feUmGQS75zqqOM/CNaori49RKQIdM27pIIkjHSFeJCuxSFYx3/qNFBEioDukkomXVfjt9+ePllAsEb1ZPOoQV5ESlDpJYx0hXiQ23GDNqqr00AR6UJKL2GkK8STJZRu3TLv7kNdhYhIF1J6CSNdIZ4soTz8cHYd/6nTQBHpIgphiNbwpRpWtP3wqOpfSkQkkNJMGOlonGoRkYyVXpWUiIjkhBKGiIgEooQhIiKBKGGIiEggShgiIhKIEoaIiASihCEiIoFEljDM7HAzqzOzhWY238xuiioWERFJL8oH95qBr7r7HDM7AJhtZjXuviDCmEREJInIrjDcfY27z4m/3wEsBIZGFY+IiKRWEG0YZjYcOBmY1cF3482s3szqN2zYkPfYREQkJvKEYWb9gD8DX3L37e2/d/cJ7j7G3ccMHDgw/wGKiAgQccIws3JiyWKSuz8eZSwiIpJalHdJGfAbYKG7/yiqOEREJJgorzDeA1wN/IeZzY2/Lo4wHhERSSGy22rdfTpgUW1fREQyE3mjt4iIFAclDBERCUQJQ0REAlHCEBGRQJQwREQkECUMEREJRAlDREQCUcIQEZFAlDBERCQQJQwREQlECUNERAJRwhARkUCUMEREJBAlDBERCUQJQ0REAlHCEBGRQJQwREQkECUMEREJRAlDREQCUcIQEZFAIk0YZnahmb1mZovN7JYoYxERkdQiSxhm1g34OXARMBq40sxGRxWPiIikFuUVxmnAYndf6u6NwO+BD0YYj4iIpNA9wm0PBVYmfF4FnN5+JjMbD4yPf9xjZvPyEFtnDQA2Rh1EAIozPMUQIyjOsBVLnCPDWEmUCcM6mOb7TXCfAEwAMLN6dx+T68A6S3GGqxjiLIYYQXGGrZjiDGM9UVZJrQIOT/g8DFgdUSwiIpJGlAnjRWCEmR1hZj2ATwB/izAeERFJIbIqKXdvNrMvAE8D3YAH3H1+msUm5D6yUCjOcBVDnMUQIyjOsHWpOM19v2YDERGR/ehJbxERCUQJQ0REAimIhJGuixCL+d/496+Y2buDLpvnOMfF43vFzGaY2YkJ3y0zs1fNbG5Yt7h1Is7zzGxbPJa5ZnZH0GXzHOfXEmKcZ2YtZtY//l1e9qeZPWBm65M9/1NAx2a6OAvl2EwXZ6Ecm+niLIRj83AzqzOzhWY238xu6mCecI9Pd4/0RazBewlwJNADeBkY3W6ei4F/Ent24wxgVtBl8xznWcAh8fcXtcUZ/7wMGFAg+/M84B/ZLJvPONvNfynwbAT7873Au4F5Sb6P/NgMGGfkx2bAOCM/NoPEWSDH5hDg3fH3BwCv57rsLIQrjCBdhHwQ+K3HzAQONrMhAZfNW5zuPsPdt8Q/ziT2bEm+dWafFNT+bOdK4NEcxZKUu08FNqeYpRCOzbRxFsixGWR/JlNQ+7OdqI7NNe4+J/5+B7CQWA8aiUI9PgshYXTURUj7H51sniDLhiXTbX2GWGZv48C/zWy2xbo7yZWgcZ5pZi+b2T/N7NgMlw1D4G2ZWR/gQuDPCZPztT/TKYRjM1NRHZtBRX1sBlYox6aZDQdOBma1+yrU4zPKrkHaBOkiJNk8gboXCUngbZnZ+cT+U56dMPk97r7azA4FasxsUfwsJoo45wBV7r7TzC4GngBGBFw2LJls61LgOXdPPOPL1/5MpxCOzcAiPjaDKIRjMxORH5tm1o9YwvqSu29v/3UHi2R9fBbCFUaQLkKSzZPP7kUCbcvMTgB+DXzQ3Te1TXf31fF/1wN/IXZJGEmc7r7d3XfG3z8FlJvZgCDL5jPOBJ+g3SV/HvdnOoVwbAZSAMdmWgVybGYi0mPTzMqJJYtJ7v54B7OEe3zmumEmQMNNd2ApcATvNL4c226eS9i34eaFoMvmOc5KYDFwVrvpfYEDEt7PAC6MMM7BvPPQ5mnAivi+Laj9GZ/vIGJ1yX2j2J/xbQwneSNt5MdmwDgjPzYDxhn5sRkkzkI4NuP75bfAT1LME+rxGXmVlCfpIsTMPhf//n7gKWKt/YuBBuDaVMtGGOcdQAVwn5kBNHusJ8tBwF/i07oDj7j7vyKM8wrgRjNrBnYDn/DYUVRo+xPgw8C/3X1XwuJ5259m9iixO3cGmNkq4E6gPCHGyI/NgHFGfmwGjDPyYzNgnBDxsQm8B7gaeNXM5san3Ubs5CAnx6e6BhERkUAKoQ1DRESKgBKGiIgEooQhIiKBKGGIiEggShgiIhKIEoaIiASihCEiIoEoYYh0Qnw8gur4+++a2f9GHZNIrkT+pLdIkbsT+Ha8o7mTgcsijkckZ/Skt0gnmdkUoB9wnsfGJRApSaqSEukEMzue2Mhne5QspNQpYYhkKT5y2SRiI5XtMrP3RxySSE4pYYhkIT7S2uPAV919IfAd4JuRBiWSY2rDEBGRQHSFISIigShhiIhIIEoYIiISiBKGiIgEooQhIiKBKGGIiEggShgiIhLI/wer3atKtvOrzQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_141_2.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Importing various packages\n", + "from math import exp, sqrt\n", + "from random import random, seed\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.linear_model import SGDRegressor\n", + "\n", + "m = 100\n", + "x = 2*np.random.rand(m,1)\n", + "y = 4+3*x+np.random.randn(m,1)\n", + "\n", + "X = np.c_[np.ones((m,1)), x]\n", + "theta_linreg = np.linalg.inv(X.T @ X) @ (X.T @ y)\n", + "print(\"Own inversion\")\n", + "print(theta_linreg)\n", + "sgdreg = SGDRegressor(max_iter = 50, penalty=None, eta0=0.1)\n", + "sgdreg.fit(x,y.ravel())\n", + "print(\"sgdreg from scikit\")\n", + "print(sgdreg.intercept_, sgdreg.coef_)\n", + "\n", + "\n", + "theta = np.random.randn(2,1)\n", + "eta = 0.1\n", + "Niterations = 1000\n", + "\n", + "\n", + "for iter in range(Niterations):\n", + " gradients = 2.0/m*X.T @ ((X @ theta)-y)\n", + " theta -= eta*gradients\n", + "print(\"theta from own gd\")\n", + "print(theta)\n", + "\n", + "xnew = np.array([[0],[2]])\n", + "Xnew = np.c_[np.ones((2,1)), xnew]\n", + "ypredict = Xnew.dot(theta)\n", + "ypredict2 = Xnew.dot(theta_linreg)\n", + "\n", + "\n", + "n_epochs = 50\n", + "t0, t1 = 5, 50\n", + "def learning_schedule(t):\n", + " return t0/(t+t1)\n", + "\n", + "theta = np.random.randn(2,1)\n", + "\n", + "for epoch in range(n_epochs):\n", + " for i in range(m):\n", + " random_index = np.random.randint(m)\n", + " xi = X[random_index:random_index+1]\n", + " yi = y[random_index:random_index+1]\n", + " gradients = 2 * xi.T @ ((xi @ theta)-yi)\n", + " eta = learning_schedule(epoch*m+i)\n", + " theta = theta - eta*gradients\n", + "print(\"theta from own sdg\")\n", + "print(theta)\n", + "\n", + "plt.plot(xnew, ypredict, \"r-\")\n", + "plt.plot(xnew, ypredict2, \"b-\")\n", + "plt.plot(x, y ,'ro')\n", + "plt.axis([0,2.0,0, 15.0])\n", + "plt.xlabel(r'$x$')\n", + "plt.ylabel(r'$y$')\n", + "plt.title(r'Random numbers ')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Momentum based GD\n", + "\n", + "The stochastic gradient descent (SGD) is almost always used with a\n", + "*momentum* or inertia term that serves as a memory of the direction we\n", + "are moving in parameter space. This is typically implemented as\n", + "follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{v}_{t}=\\gamma \\mathbf{v}_{t-1}+\\eta_{t}\\nabla_\\theta E(\\boldsymbol{\\theta}_t) \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + "\\boldsymbol{\\theta}_{t+1}= \\boldsymbol{\\theta}_t -\\mathbf{v}_{t},\n", + "\\label{_auto1} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have introduced a momentum parameter $\\gamma$, with\n", + "$0\\le\\gamma\\le 1$, and for brevity we dropped the explicit notation to\n", + "indicate the gradient is to be taken over a different mini-batch at\n", + "each step. We call this algorithm gradient descent with momentum\n", + "(GDM). From these equations, it is clear that $\\mathbf{v}_t$ is a\n", + "running average of recently encountered gradients and\n", + "$(1-\\gamma)^{-1}$ sets the characteristic time scale for the memory\n", + "used in the averaging procedure. Consistent with this, when\n", + "$\\gamma=0$, this just reduces down to ordinary SGD as discussed\n", + "earlier. An equivalent way of writing the updates is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\Delta \\boldsymbol{\\theta}_{t+1} = \\gamma \\Delta \\boldsymbol{\\theta}_t -\\ \\eta_{t}\\nabla_\\theta E(\\boldsymbol{\\theta}_t),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined $\\Delta \\boldsymbol{\\theta}_{t}= \\boldsymbol{\\theta}_t-\\boldsymbol{\\theta}_{t-1}$.\n", + "\n", + "\n", + "\n", + "Let us try to get more intuition from these equations. It is helpful\n", + "to consider a simple physical analogy with a particle of mass $m$\n", + "moving in a viscous medium with drag coefficient $\\mu$ and potential\n", + "$E(\\mathbf{w})$. If we denote the particle's position by $\\mathbf{w}$,\n", + "then its motion is described by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "m {d^2 \\mathbf{w} \\over dt^2} + \\mu {d \\mathbf{w} \\over dt }= -\\nabla_w E(\\mathbf{w}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can discretize this equation in the usual way to get" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "m { \\mathbf{w}_{t+\\Delta t}-2 \\mathbf{w}_{t} +\\mathbf{w}_{t-\\Delta t} \\over (\\Delta t)^2}+\\mu {\\mathbf{w}_{t+\\Delta t}- \\mathbf{w}_{t} \\over \\Delta t} = -\\nabla_w E(\\mathbf{w}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rearranging this equation, we can rewrite this as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\Delta \\mathbf{w}_{t +\\Delta t}= - { (\\Delta t)^2 \\over m +\\mu \\Delta t} \\nabla_w E(\\mathbf{w})+ {m \\over m +\\mu \\Delta t} \\Delta \\mathbf{w}_t.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that this equation is identical to previous one if we identify\n", + "the position of the particle, $\\mathbf{w}$, with the parameters\n", + "$\\boldsymbol{\\theta}$. This allows us to identify the momentum\n", + "parameter and learning rate with the mass of the particle and the\n", + "viscous drag as:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\gamma= {m \\over m +\\mu \\Delta t }, \\qquad \\eta = {(\\Delta t)^2 \\over m +\\mu \\Delta t}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Thus, as the name suggests, the momentum parameter is proportional to\n", + "the mass of the particle and effectively provides inertia.\n", + "Furthermore, in the large viscosity/small learning rate limit, our\n", + "memory time scales as $(1-\\gamma)^{-1} \\approx m/(\\mu \\Delta t)$.\n", + "\n", + "Why is momentum useful? SGD momentum helps the gradient descent\n", + "algorithm gain speed in directions with persistent but small gradients\n", + "even in the presence of stochasticity, while suppressing oscillations\n", + "in high-curvature directions. This becomes especially important in\n", + "situations where the landscape is shallow and flat in some directions\n", + "and narrow and steep in others. It has been argued that first-order\n", + "methods (with appropriate initial conditions) can perform comparable\n", + "to more expensive second order methods, especially in the context of\n", + "complex deep learning models.\n", + "\n", + "These beneficial properties of momentum can sometimes become even more\n", + "pronounced by using a slight modification of the classical momentum\n", + "algorithm called Nesterov Accelerated Gradient (NAG).\n", + "\n", + "In the NAG algorithm, rather than calculating the gradient at the\n", + "current parameters, $\\nabla_\\theta E(\\boldsymbol{\\theta}_t)$, one\n", + "calculates the gradient at the expected value of the parameters given\n", + "our current momentum, $\\nabla_\\theta E(\\boldsymbol{\\theta}_t +\\gamma\n", + "\\mathbf{v}_{t-1})$. This yields the NAG update rule" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{v}_{t}=\\gamma \\mathbf{v}_{t-1}+\\eta_{t}\\nabla_\\theta E(\\boldsymbol{\\theta}_t +\\gamma \\mathbf{v}_{t-1}) \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + "\\boldsymbol{\\theta}_{t+1}= \\boldsymbol{\\theta}_t -\\mathbf{v}_{t}.\n", + "\\label{_auto2} \\tag{3}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One of the major advantages of NAG is that it allows for the use of a larger learning rate than GDM for the same choice of $\\gamma$.\n", + "\n", + "\n", + "\n", + "In stochastic gradient descent, with and without momentum, we still\n", + "have to specify a schedule for tuning the learning rates $\\eta_t$\n", + "as a function of time. As discussed in the context of Newton's\n", + "method, this presents a number of dilemmas. The learning rate is\n", + "limited by the steepest direction which can change depending on the\n", + "current position in the landscape. To circumvent this problem, ideally\n", + "our algorithm would keep track of curvature and take large steps in\n", + "shallow, flat directions and small steps in steep, narrow directions.\n", + "Second-order methods accomplish this by calculating or approximating\n", + "the Hessian and normalizing the learning rate by the\n", + "curvature. However, this is very computationally expensive for\n", + "extremely large models. Ideally, we would like to be able to\n", + "adaptively change the step size to match the landscape without paying\n", + "the steep computational price of calculating or approximating\n", + "Hessians.\n", + "\n", + "Recently, a number of methods have been introduced that accomplish\n", + "this by tracking not only the gradient, but also the second moment of\n", + "the gradient. These methods include AdaGrad, AdaDelta, RMS-Prop, and\n", + "ADAM.\n", + "\n", + "\n", + "### RMS prop\n", + "\n", + "In RMS prop, in addition to keeping a running average of the first\n", + "moment of the gradient, we also keep track of the second moment\n", + "denoted by $\\mathbf{s}_t=\\mathbb{E}[\\mathbf{g}_t^2]$. The update rule\n", + "for RMS prop is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\mathbf{g}_t = \\nabla_\\theta E(\\boldsymbol{\\theta}) \n", + "\\label{_auto3} \\tag{4}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{s}_t =\\beta \\mathbf{s}_{t-1} +(1-\\beta)\\mathbf{g}_t^2 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\theta}_{t+1}=\\boldsymbol{\\theta}_t - \\eta_t { \\mathbf{g}_t \\over \\sqrt{\\mathbf{s}_t +\\epsilon}}, \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\beta$ controls the averaging time of the second moment and is\n", + "typically taken to be about $\\beta=0.9$, $\\eta_t$ is a learning rate\n", + "typically chosen to be $10^{-3}$, and $\\epsilon\\sim 10^{-8} $ is a\n", + "small regularization constant to prevent divergences. Multiplication\n", + "and division by vectors is understood as an element-wise operation. It\n", + "is clear from this formula that the learning rate is reduced in\n", + "directions where the norm of the gradient is consistently large. This\n", + "greatly speeds up the convergence by allowing us to use a larger\n", + "learning rate for flat directions.\n", + "\n", + "### ADAM optimizer\n", + "\n", + "A related algorithm is the ADAM optimizer. In ADAM, we keep a running\n", + "average of both the first and second moment of the gradient and use\n", + "this information to adaptively change the learning rate for different\n", + "parameters. In addition to keeping a running average of the first and\n", + "second moments of the gradient\n", + "(i.e. $\\mathbf{m}_t=\\mathbb{E}[\\mathbf{g}_t]$ and\n", + "$\\mathbf{s}_t=\\mathbb{E}[\\mathbf{g}^2_t]$, respectively), ADAM\n", + "performs an additional bias correction to account for the fact that we\n", + "are estimating the first two moments of the gradient using a running\n", + "average (denoted by the hats in the update rule below). The update\n", + "rule for ADAM is given by (where multiplication and division are once\n", + "again understood to be element-wise operations below)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\mathbf{g}_t = \\nabla_\\theta E(\\boldsymbol{\\theta}) \n", + "\\label{_auto4} \\tag{5}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{m}_t = \\beta_1 \\mathbf{m}_{t-1} + (1-\\beta_1) \\mathbf{g}_t \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{s}_t =\\beta_2 \\mathbf{s}_{t-1} +(1-\\beta_2)\\mathbf{g}_t^2 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\mathbf{m}}_t={\\mathbf{m}_t \\over 1-\\beta_1^t} \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\mathbf{s}}_t ={\\mathbf{s}_t \\over1-\\beta_2^t} \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\theta}_{t+1}=\\boldsymbol{\\theta}_t - \\eta_t { \\boldsymbol{\\mathbf{m}}_t \\over \\sqrt{\\boldsymbol{\\mathbf{s}}_t} +\\epsilon}, \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + "\\label{_auto5} \\tag{6}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\beta_1$ and $\\beta_2$ set the memory lifetime of the first and\n", + "second moment and are typically taken to be $0.9$ and $0.99$\n", + "respectively, and $\\eta$ and $\\epsilon$ are identical to RMSprop.\n", + "\n", + "Like in RMSprop, the effective step size of a parameter depends on the\n", + "magnitude of its gradient squared. To understand this better, let us\n", + "rewrite this expression in terms of the variance\n", + "$\\boldsymbol{\\sigma}_t^2 = \\boldsymbol{\\mathbf{s}}_t -\n", + "(\\boldsymbol{\\mathbf{m}}_t)^2$. Consider a single parameter $\\theta_t$. The\n", + "update rule for this parameter is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\Delta \\theta_{t+1}= -\\eta_t { \\boldsymbol{m}_t \\over \\sqrt{\\sigma_t^2 + m_t^2 }+\\epsilon}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Practical tips\n", + "\n", + "* **Randomize the data when making mini-batches**. It is always important to randomly shuffle the data when forming mini-batches. Otherwise, the gradient descent method can fit spurious correlations resulting from the order in which data is presented.\n", + "\n", + "* **Transform your inputs**. Learning becomes difficult when our landscape has a mixture of steep and flat directions. One simple trick for minimizing these situations is to standardize the data by subtracting the mean and normalizing the variance of input variables. Whenever possible, also decorrelate the inputs. To understand why this is helpful, consider the case of linear regression. It is easy to show that for the squared error cost function, the Hessian of the cost function is just the correlation matrix between the inputs. Thus, by standardizing the inputs, we are ensuring that the landscape looks homogeneous in all directions in parameter space. Since most deep networks can be viewed as linear transformations followed by a non-linearity at each layer, we expect this intuition to hold beyond the linear case.\n", + "\n", + "* **Monitor the out-of-sample performance.** Always monitor the performance of your model on a validation set (a small portion of the training data that is held out of the training process to serve as a proxy for the test set. If the validation error starts increasing, then the model is beginning to overfit. Terminate the learning process. This *early stopping* significantly improves performance in many settings.\n", + "\n", + "* **Adaptive optimization methods don't always have good generalization.** Recent studies have shown that adaptive methods such as ADAM, RMSPorp, and AdaGrad tend to have poor generalization compared to SGD or SGD with momentum, particularly in the high-dimensional limit (i.e. the number of parameters exceeds the number of data points). Although it is not clear at this stage why these methods perform so well in training deep neural networks, simpler procedures like properly-tuned SGD may work as well or better in these applications.\n", + "\n", + "## Automatic differentiation\n", + "\n", + "[Automatic differentiation (AD)](https://en.wikipedia.org/wiki/Automatic_differentiation), \n", + "also called algorithmic\n", + "differentiation or computational differentiation,is a set of\n", + "techniques to numerically evaluate the derivative of a function\n", + "specified by a computer program. AD exploits the fact that every\n", + "computer program, no matter how complicated, executes a sequence of\n", + "elementary arithmetic operations (addition, subtraction,\n", + "multiplication, division, etc.) and elementary functions (exp, log,\n", + "sin, cos, etc.). By applying the chain rule repeatedly to these\n", + "operations, derivatives of arbitrary order can be computed\n", + "automatically, accurately to working precision, and using at most a\n", + "small constant factor more arithmetic operations than the original\n", + "program.\n", + "\n", + "Automatic differentiation is neither:\n", + "\n", + "* Symbolic differentiation, nor\n", + "\n", + "* Numerical differentiation (the method of finite differences).\n", + "\n", + "Symbolic differentiation can lead to inefficient code and faces the\n", + "difficulty of converting a computer program into a single expression,\n", + "while numerical differentiation can introduce round-off errors in the\n", + "discretization process and cancellation\n", + "\n", + "\n", + "\n", + "Python has tools for so-called **automatic differentiation**.\n", + "Consider the following example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f(x) = \\sin\\left(2\\pi x + x^2\\right)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which has the following derivative" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f'(x) = \\cos\\left(2\\pi x + x^2\\right)\\left(2\\pi + 2x\\right)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using **autograd** we have" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAdwAAAEWCAYAAADM0CYnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABDhklEQVR4nO3dd3hUZdrH8e+dRggJIZDQO9IhBAgCFrBgwQIqFhQFK7ouln2ti2vbteuuXVGxN1QQBVFRVLDREgih9xZCCYFAKCEked4/zgHHmE4yz5T7c125MjPnzJnfeebMc582c8QYg1JKKaVqVojtAEoppVQw0IKrlFJKeYEWXKWUUsoLtOAqpZRSXqAFVymllPICLbhKKaWUF1gpuCJysoisrKFpjxWR8TUx7UAnIu+IyCNlDH9ERHaKyDZv5gpEInKKiGTYzmGTiBgROe4Yp7FURE4pY/hMEbn+GKb/kIh8UNXne8uxtKWIfCMio47x9a8WkV8rMf4GERlUxddqKSL7RCS0Ks8vZ9ojROS76p7uEeUWXLdhDopIrojkiMjvInKTiFS5WBtjfjHGdKzq8z2y/aXTMsY8Zoyp8gfMn1VHB1bGtFsAdwBdjDGNa+I1Kpjjanc+L63k88pcmVD+yRjT1RgzE469OAbDSlBJbWSMGWyMeddWpsoyxmwyxkQbYwqPZToi0trtS8I8pv2hMebMY09ZsooWzfONMTFAK+AJ4B7gzaq8oOfMKb/SCsg2xuwoaaAX39dRwC73v0/QZVrbQHmH3y9nxpgy/4ANwKBijx0PFAHd3Pu1gGeATcB2YBxQ2x12CpCBU6S3Ae8fecwdfi8wsdj0nwdecG9fAywHcoF1wI3u43WAg26Ofe5fU+Ah4AN3nG+BMcWmvQi4yL3dCfgepwNfCVxaRjvUB94GMoHdwBcew24A1rjTmQI09RhmgJuB1e48/AdoB8wG9gKfAhHF2mossNNt+xEe05oJXO9x/2rgV/f2z+5r7Xfb4jL38fOANCAH+B1I9Hh+T2CBm+sTYALwSAnzPqhYW78DtHZf7zr3ff8ZZwXuX8BGYAfwHhDrTuPI+NcAm902vAnoA6S7+V4qZ1ls5WYYBhQAjUpqi2JtfxwwGjgM5Lv5p7rDO7ttmgMsBYZ4PLcBMNV9j+YDj3hO35323933db3HcrvZfU4qcLLH+LXddtsNLAPuwv0MlDKvXflj2dwOjPX4rD2HsxxmurdrFVt+7nbbfytwAXAOsMqd1liP13gImOi+97nustDDY/i9wFp32DLgwmLt/RvwrDvdRyijH3Cfc5ebKRO49sj7U8K8nwos9rg/A5jncf9X4ALP/gk4231/D7vv8SKPz8x/3Ky5wHdAfAmvWVZ/8inOspzrLifJHs9rCkwCsoD1wK1lvKfnAgvd5WMz8JDHsNZue4xy228ncF+xPnc2zrK6FXgJt98otqz3cds+zGPYMJw+oKw28uxXbuCPPncZ0KuCy8OvZcz7VTj9QjZwHx51BaffODLtbLe96xdrF89+5shjYcBwIKXYa/0DmFKBNt/kTufI+92fP/ep44Bnik37S+D/KvveH31+uSOUUHA9wv7Nvf0cTqGpD8TgdFSPe3QCBcCTOB/I2vy54LYCDgB13fuh7gLVz6PB2gECDHTH7eUx7YxiuR7ij4I7EvjNY1gXnAW2Fs4HbDNOAQgDeuEs5F1LaYdpOB1THBAODHQfP819Xi93ui8CPxf7IEwB6uJ0ooeAH4C2QCzOgjuqWFv9z53WQJwC2rGUD8bRhcPzQ+dxvxdOx9vXbddR7vtZC4jA+QD8w52fi3E+iH8puCW1NX8s9O+5bVkbpxNd485bNPA58H6x8ccBkcCZQB7wBdAQaOZmHVjGsng/bscLLMZd8Ev7wHu2B06xe8RjWLibdazbFqfhdCRH2nqC+xeFs9xsLqGtv8dZ5o+sXF6JU6jDcHa/bwMi3WFPAL+447cAllBKwcX5DG11pxHp3u/rDvs3MMdtswSclaj/FFt+HnDn7waczuAjdxpd3TZv6/FZOey+9+HAnTgdR7g7/BKcTiUEuAxnWWzi0d4FwC3u/Nam7H7gbJxC0A1nefmI0gtuJE7xi3envQ2nSMe4r3MQaFC8f8Ljs+8xrZk4HXkH97kzgScqsox7TDMPZ6UlFHgcmONRKFLd9o7AWe7XAWeVMf3u7vMS3fY4suLQ2m2PN9ycPXD6is7u8N5AP7c9WuMUxNtLWdaXAYM9hk0G7iinja73eM+34BRuwSnirSq4PJRYcHE+P/uAATh9z/9wlp0j79vtOMt0c3f4a8DHZfQzRx4Lw/l85gLtPV5vPjC8Em3uuXJydD7cvJsBce/H4Sx7R9qgwu/90emXNbD4Al3s8Tk4ayriNnw7j2H9+WOt/xSctarIMjrvX4GR7u0zgLVl5PkCuK2cD8iRghvjZjuywDwKvOXevgz4pdhzXwMeLOE1m+Cs+caVMOxN4CmP+9E4nVhrjw/CiR7DU4F7PO7/F3iuWIdZx2P4p8D9xT8YJS3k/LXgvorbGXs8thKnkA/A6cTEY9jvVL7gtvV47AfgZo/7Hd22CPMYv5nH8GzcLXH3/iQ8OpESMqw+Mhz4J+4aemkfeMouuCfjdOQhHo997C4/oW7ujh7DStrCPa2cz85u3C1GnA/j2R7DRlN6wb0cWFjKsLXAOR73zwI2eLxHB4FQj+Xf4BZrj+XvSIfzEG7xcO+H4BT6k0t57TRgqEd7b/IYVl4/8BYehQ6nAJZYcN3hvwAX4RSZ73A+B2fjbP2me4y3gfIL7r887t8MfFuRZdxjmjM87ncBDrq3+3q2gcdy+XZZy4XHuM8Bzxb7PDX3GD4Pt3CU8NzbgcmlLOv3AB+6t+vjbKQ08ZifsgrudNz+tQL5iy8PpRXcB4AJHvfr4NSEI+/bcuB0j+FN+Gu/4dnPHHkszL3/AfCAe7s9TgGOqkSbl1ZwBWfDcoB7/wbgx2N574/lLOVmOLuSEnDWMlLdk6pycHblJniMm2WMyStjWh/hdDIAV7j3ARCRwSIyR0R2udM+B2fNt1zGmFycLdPh7kPDgQ/d262Avkcyu9MeAZR0QlALYJcxZncJw5ribCkeec19OIWkmcc42z1uHyzhfrTH/d3GmP0e9ze6r1EVrYA7is1jC3d6TYEtxl1SPF6rsjZ73P5TW7i3w4BGHo9Vpi2OEpETgTY4W53gLCPdRSSpCpmPZN1sjCkqlrcZzrIbxp/nzfN2iY+JyB0islxE9rhtHcsfy2rTYuOX1dYtcAprabmLt7Hn8pFt/jiZ5KD7v6w2PprJbYuMI9MTkZEikuax7HTjz589z/kprx+ozPwDzMIpgAPc2zNxVhQHuvcrw/Os+gOUsoxV4vmR7rHEVkDTYp+vsfx5eT9KRPqKyE8ikiUie3AOqRTvy0rMKiIdROQrEdkmInuBx0p47hEfAOeLSDRwKc6GxdYKzmupy14FlofS/Om9d/u3bI/hrYDJHtNdDhTy53Ys6fN3RPH68YUx5oCbuSJtXiK3b5xQbNqe9aPC7/0RVSq4ItIHp2P6FWd36kGcXbH13L9YY4znQm1Kmo6Hz4BTRKQ5cCFuwRWRWjhbPc/gHK+rB3yNs+ZRkemCs9VyuYj0x9kd8ZP7+GZglkfmesY58+1vJUxjM1BfROqVMCwTp/FxM9fB2a24pQLZShLnTuOIlu5rgLMFEeUxrLyzhTcDjxabxyhjzMc4WzLNREQ8xm9Zhbye78Gf2sKdXgF/7vCrahTO+57mfi1prvv4SPf/n9pGRIq3TfFlJRNoUexs+5Y471uWm7u5x7AWJWQ6Ok0RORlny+JSnD0h9YA9/LGsbi02jbLaejPOYZSSlNTGmaWMWxFHM7lt0RzIFJFWOLs3x+Dsvq2Hsxvcc3nxbNPy+oHKzD/8teDOovyCW5H+oCyVff5mnC14z89XjDHmnFLG/whnl3sLY0wszuEVKWXc4l4FVuDsOq2L07mX+FxjzBac470X4hw7fd9zcAXm6S/LXgWXh9L86b0XkSicPtLzNQcXa8dIdz4qkvs7IN5d+b4cjw02ym7zitaPi93574tTj45krsx7D1Sy4IpIXRE5D6fqf2CMWeyuFb8BPCsiDd3xmonIWRWdrjEmC2cN9m13Jpa7gyJw9ulnAQUiMhjn2N8R24EGIhJbxuS/xumg/g184rFF8xXQQUSuEpFw96+PiHQuId9W4BvgFRGJc8cd4A7+CLhGRJLcFYTHgLnGmA0Vnf8SPCwiEW4nfh7OCgk4u3AuEpEo9+s/1xV73nacYwlHvAHc5K7liYjUEZFzRSQG5wNZANwqImEichHOiRnH4mPgHyLSxl27fgynzQuOZaIiEolTyEYDSR5/twAj3K2NRUBX932IxNl15ql428zFKdJ3u+/nKcD5OLu+CnGOPz/ktnUn/ijspYnBac8sIExEHsA5bn/Ep8A/3eWnuZu9NF8BjUXkdhGpJSIxItLXHfYx8C8RSRCReJzddcfyPdHeInKR24a34xw3nIOz28+484OIXIOzRVOiCvQDnwJXi0gXt8N9sJxcv+Mckjge57j9Uty9UjgnzpRkO9Baqv6VxYr0J57mAXtF5B4RqS0ioSLSzd0gKUkMzp6yPBE5HmeLqaJicE782ecujyVtGHh6D+fkue44x3CPKK+NxgN3ikhvt884zi02lVoeipkInCciJ4lIBE5f7Pn644BH3dfBXbaHVnDauP3LROBpnF3o33sMLqvNs3AOFXr2C8WnvdAdbzww3RiT4w6q7HsPVLzgThWRXJyqfh/OQe9rPIbfg3MCyhxxdnfMwPmwVMZHOGcbHl07cXcJ34rzYd2N01hTPIavwOmA1rmb9X/Z9WqMOYTTeZY07TNxdjNn4uzKOXJiV0muwjmusALn5J7b3en8gHMyzyScNbl2/LELuyq24cxrJs7ui5vc+QTnjNB8nA/Nu/yxe+OIh4B33ba41BiTgnPc4SV3mmtwjlFgjMnHOUZ2tTvsMpx2OhZv4axN/4xz8k0eZReWiroAZ+vpPWPMtiN/OMfPQ3GOja7C+SDPwDnWW/xL+G8CXdy2+cKd/yHAYJyts1dwziM40tZjcHYJHzmz/mOcYlSa6TgrZatwdpfm8efdYA+7j6/HWSN/v/gEjnCXzTNwVgC2ufNzqjv4ESAF58zuxThnFh/L94u/xHnvd+Ms4xcZYw4bY5bhnF8wG2d5645zpm9ZSu0HjDHf4Bw/+9Ed58eyJuTudlwALHXfK9wsG00pX03jjxXTbBFZUE7Wkl6z3P6k2PiFOO9REs77uhOnYy6tYN8M/NvtSx/A6dcq6k6c/i8XZ8Xmk3LGn4y7q7bYIaoy28gY8xnOuS4fua/1Bc4Zw1VZHo5McynOGf0f4fSRu3EOXRzxPE6//p3bNnNwVqwq40j9+KzYCn6pbe7udn4U+M19v/uVMu2P+Wv9qOx7D/xx9pXyAe5W1gfGmObljKq8TESeBBobY0bZzlJdROQhnBNtrrSdRVU/EVmL8zXKGbazKIf+lrJSJRCRTiKS6O5WOx5n9/3k8p6nlC8QkWE4u4DL3JOgvMu/f7VDqZoTg7MrqSnOIYT/4ux+VcqnichMnK8vXVXsLHxlme5SVkoppbxAdykrpZRSXqC7lMsQHx9vWrdubTuGUkr5ldTU1J3GmITyxwwuWnDL0Lp1a1JSUmzHUEopvyIiVfnVuoCnu5SVUkopL9CCq5RSSnmBFlyllFLKC7TgKqWUUl6gBVcppZTyAi24SimllBcEVcEVkX+IyFIRWSIiH7uXcVNKKaVqXNB8D1dEmuFc6q+LMeagiHyKcxm9d6wGU0oFnYLD+WxcsYBd6xZQmLsDk38AqRVNWL0mJLTrTfPjEgkNC5ruOWgE2zsaBtQWkcNAFM41Z5VSqsaZoiIWz/qc/IUf02nPb7STg7QracT5kE0saxqcQtyJ19Kh1yleTqpqStAUXGPMFhF5BtiEczHz74wx3xUfT0RGA6MBWrZs6d2QSqmAY4qKWPDtu9RPeZbEoo3kEM2y+qcR0nYgCR36EteoBVF1Yti/by/ZW9ayc/U8QtfOoPvOb4ma8iVLv+1O6JkP0yn5dNuzoo5R0FwtSETigEnAZUAO8Bkw0RjzQWnPSU5ONvrTjkqpqtq0Ko29k26j26E0NoS0JKvH3+hx9rVE1Cr/9JF9e3ezZOoLtFv9NgnsZl69c+g46kVi4+K9kPzYiEiqMSbZdg5fE0wnTQ0C1htjsowxh4HPgRMsZ1JKBSBTVMS8Sc/S8MNBtDy0mrmdx9Ji7EL6DL25QsUWILpuHP1GPEjUHWnMbnIlPXdP58Dz/Vgxf0YNp1c1JZgK7iagn4hEiYgApwPLLWdSSgWYvIP7SXl+OMcvfojVkd3Iv2kOfS+7p8onQdWJqUf/G19m3fkTMSK0++pS5n/xcjWnVt4QNAXXGDMXmAgsABbjzPvrVkMppQLKnl1ZrHv2LPrsmc7sljfS5a4ZxDeunnNBOiafRp1bZ7Mysjt90sYy+627MUVF1TJt5R1Bcwy3KvQYrlKqonZu28y+18+haeEW0o9/kuRzb6iR18k/lMeiV0bRZ8+3zG46kn7XP4+E+Na2kx7DLZlvvUtKKeWHdmdtJff1c2lYuJ1Vg96usWILEFErkuTbPmZug6H0z3yPOe/cW2OvpaqXFlyllDoGe3bvJHvcuTQtzGTdoDfodvLQGn9NCQmhz81vM7/eYPpveo25nzxR46+pjp0WXKWUqqL8Q3lkvHohLQs2sOKUV71SbI8ICQ2l15gPWBh1AsnLniD9p4lee21VNVpwlVKqCkxREWmvXkPX/HTSez9Gj1Mv8XqG0LAwOvztYzaEtaHNzDFsXJ7q9Qyq4rTgKqVUFcz96GGOz/maOc2vI3nITdZy1ImpR/Q1EzkkteCzUezPzbGWRZVNC65SSlXSkl+ncPzq51kQPZDjr3nadhwaNW/HtkEv0qIwg2Xjb9CvC/koLbhKKVUJO7dtpvGMW9gc2oyON75HSGio7UgAdDtpCHNb3UCfPd8x/8uXbMdRJdCCq5RSFVRUWMjWt0cSbfZTNOwt6sTUsx3pT44f+ThLI7rTJe0xtm1abTuOKkYLrlJKVdC89++n+6EFpHcfS5uufW3H+YvQsDDqDX+DEIrI+lB3LfsaLbhKKVUBa9N/p/f6caTGnEqfi263HadUzdp2ZnHXO+l+aCHzJv3PdhzlQQuuUkqVI/9QHnx5M3skhnajxvncTykW12fYHSyplUS3JU+zPWOt7TjK5dtLjVJK+YDUD/5Fu8L1bD7hUerFN7Ydp1whoaHEXTaOUArJmPB/tuMolxZcpZQqw9r030ne9BYpdQfR88wrbcepsGZtO7Ow1bX03jeTxT9/aTuOQguuUkqVqrCggMIpt7FHYmg/6hXbcSqt5+UPkiGNqffTvRzKO2A7TtDTgquUUqVImfwcHQpWsaHXP4lt0Mh2nEqLrF2HXQMepYXJZOGnj9uOE/TCbAcIRHM/+y/Rq78gvCiP8KJDFEg4h0Nrcyg8lkPRLZD6bajXrg+tu/WjVmSU7bhKqRLs2rGFTkv/x9KIRHqfN9p2nCpLPPVi0ua9QZd148nZ+Xe/OAYdqLTg1oTCfEJMIXlhddkfUosQc5iwwoPUP7iRRvvmErn9MCyH/KlhLK3VmdxWZ9Ci/8U0a9vVdnKllGvNR3fS0+QRfeFzPn9WcnnihjxGnQmnM//T++l38xu24wQtMcbYzuA1IlIPGA90AwxwrTFmdmnjJycnm5SUlGrNYIqK2L5lHVuX/cah9XNptOM32hRtAGBZeDf2d72C7meOIjIqulpfVylVcSvmfU+nry9mdpMr6X/jy7bjVIt5L1xJUvbXZI36pcZX7kUk1RiTXKMv4oeCreC+C/xijBkvIhFAlDEmp7Txa6LgliRz/Qo2/vIhzddPpIXJZCf1WHPcNXQfervP/XScUoGuqLCQNY/3I7Ygm+g7FgTMZ3Bn5kaiXuvDiph+9LpzSo2+lhbckvn3fpJKEJG6wADgTQBjTH5ZxdabmrbpRP+R/6H5/UtZMuh9ttVqTb81z5L/3+7M/eQJCg7n246oVNBY8M2bdChYxaaedwZMsQWIb9qKRS1H0mvfLFYtmGU7TlAKmi1cEUkCXgeWAT2AVOA2Y8z+YuONBkYDtGzZsvfGjRu9nNSxYv4MCmb8h26H0lgf0poDgx6n6wnnWMmiVLDIO7if3U/2YH9oXdqOne8zVwKqLrl7dlH4bHc21u5Cj3u+r7HX0S3ckgXNFi7OCWK9gFeNMT2B/cC9xUcyxrxujEk2xiQnJCR4O+NRnfoMous9P7Gw/wtEFu2n63eXM/elaziwb4+1TEoFurTPnqAJWeSd+lDAFVuAmNj6LG8zih4H57Ey5UfbcYJOMBXcDCDDGDPXvT8RpwD7LAkJoedZo4i7O405jS6nT9Zkdv23Lyvmz7AdTamAsztrK13XvsGi2n3pdtIQ23FqTPcL72I3MRya8ZjtKEEnaAquMWYbsFlEOroPnY6ze9nnRUZF0+9v41h+1keEUEi7ry5lzseP6qW3lKpGqz79F1HkUW9IYP9ARHTdOFa0vYbEvPm68u5lQVNwXbcAH4pIOpAE+NUqXtcTziH6tjksqdOXfiufIvXZi3UXs1LVIHPDSnrumExKg/Np1bm37Tg1LvHCO9hNXfJ/8Ksu0O8FVcE1xqS5x2cTjTEXGGN2285UWXXrNaDHHV8xp/Xf6bX3RzKfPZWd2zbZjqWUX8v44iEMIbQZ9m/bUbyiTkw9VrS9msS8VFan/WI7TtAIqoIbKEJCQ+l39WMsHjiOpgUZHB53GhtXLLAdSym/tHnNYnrt/paFjS6kYbM2tuN4Tdcht5NrarN3xjO2owQNLbh+rMdpw9lywUTCOUzchPP0eIxSVbB9ykMcJozjLrrfdhSvqluvAUuaDiMpdxZb1i21HScoaMH1c+17DiD/6u/YK3Vp8dUIls+dbjuSUn5j4/JUeu35gUVNLiG+cUvbcbzuuPPvopBQMqY9ZTtKUNCCGwCatu5IxPXfkB3agFZfX8XS36bZjqSUX8ie9jAHqUXHYcG1dXtEQtPWpNU/ix47p5G9PcN2nICnBTdANGzWhqjR37IjtCFtv7tai65S5Vi/dC699s0ivfnlxCU0sR3HmsaD7yaCAlZN0WO5NU0LbgCJb9ySujdNZ3toI1p9d52efahUGXZ9+wT7TSRdLvqn7ShWteyQxKLoE+m65VP9mmEN04IbYOo3bEbUdVPJlWjiv7iCTavSbEdSyudsXrOYpL0/kd70YmIbNLIdx7rIAbdSl/0s/kavlVuTtOAGoIbN2lBw5WSKECI+Gsb2jLW2IynlU7ZOe5zDhNF+6F9+Tj0odepzBmtC29Fo+Tv6C3Y1SAtugGpxXHdyLppAtNnPvrcvZn9uju1ISvmEbZvXkLTrWxYlnE984xa24/gECQlhV7draF20maW/TbUdJ2BpwQ1g7RJPYN0pL9G6YD2rXr2cwoIC25GUsm7D1CcRoOX5unXrKfHsa9lFXQ7PHmc7SsDSghvgEk+9mJTO99DzwO/MH3+r7ThKWbVrxxZ6bP+CtLgzadKqY/lPCCKRteuwsvnF9Ng/my3rltuOE5C04AaBvsP/ydz4YfTb9iHzJj1nO45S1qz88ilqcZhG5+jWbUnaDb6VQkLYPP1521ECkhbcINH7xnGkRyaTlP4fVi2YZTuOUl63NyebbhmfkBYzgJYdkmzH8UkNm7Uhve5Aumz/Us/7qAFacINEWHgErW74iGyJo+6Ua9mdtdV2JKW8atnU54mRg9Q9427bUXxanQF/py4HWDrjfdtRAo4W3CAS26AR+y54mzizh4zxV+hJVCpoHM4/RJu1H7A0ogfH9TjJdhyf1rH3aSw7awLJQ262HSXgaMENMu2TTmZR4n10P7SA+e/omr4KDou+fZtGZFPQT4tIeSQkhC79BxMSGmo7SsAJuoIrIqEislBEvrKdxZY+F97GvHrn0C/jTRb/PNl2HKVqlCkqot6i19kY0pzuAy+xHUcFsaAruMBtQFCf8y4hIXS/4XU2hrSg8Y//YNeOLbYjKVVjls6exnGFa9ne5TrdalNWBVXBFZHmwLnAeNtZbKtdJ4aCC8cTa3LZ9M51+nNuKmAV/voiu6hL4rk32o6iglxQFVzgOeBuQKsL0K57PxZ0/AdJB2Yz77OnbcdRqtptXLGAHgfnsrLlcCJr17EdRwW5oCm4InIesMMYk1rOeKNFJEVEUrKysryUzp6+w8eyKLIPPZY9zfpl823HUapabf/uf+SZcDqed7vtKEoFT8EFTgSGiMgGYAJwmoh8UHwkY8zrxphkY0xyQkKCtzN6nYSE0Ozqt9kvUZiJ15N/KM92JKWqRfb2DHpkf8uiBoOp37CZ7ThKBU/BNcb80xjT3BjTGhgO/GiMudJyLJ8Q37gFm098grZFG0j94D7bcZSqFqumvUAtOUzjs+6wHUUpIIgKripb0hlXkFL3DJI3vc2aRb/ZjqPUMck/lEf7TZ+QHtmHVh2TbMdRCgjSgmuMmWmMOc92Dl/TftTL7JEYQr68WXctK7+WPuN94snBHD/adhSljgrKgqtKFtugERknObuWF7w/1nYcpaosOu0tMqQJ3QcOsx1FqaO04Ko/SRp0OfNjzyR589usWfSr7ThKVdqaRb/S6fAyMtqP0B+6UD5FC676iw6jXmG3xCJTxlBwON92HKUqZfdPL3HA1KLLOfq7ycq3aMFVfxFbP4GM/g/TrnA9KZ88ZjuOUhW2a8cWEnfPYHH8YOrWa2A7jlJ/ogVXlSjpjKtYGHUCiatfIXPDSttxlKqQld+87HwVaNCttqMo9RdacFWJJCSEJsNfACDrkzH6W8vK5xUczqfN+k9YUiuJVp17246j1F9owVWlatyyPekdxtDj4DwWTn/XdhylyrT4x49pzE4O977BdhSlSqQFV5Up+dJ7WRPajhZzH2ZvTrbtOEqVKiJ1PJnSkMTThtuOolSJtOCqMoWFR2DOf576JoflH9xpO45SJVq/dC5d89PZ1PZyQsPCbMdRqkRacFW52iedTErCRSRnTWbt4jm24yj1Fzt+eIk8E06nwfpVIOW7tOCqCul0xZPslRgOTblDT6BSPmXP7p10z55Oev0zqRff2HYcpUqlBVdVSGz9BFZ3+wddDi8hddobtuModdSK6W8QJYeIG/g321GUKpMWXFVhvS+4ldWhx9Ey9Qn25+bYjqMUpqiIRqs+YlVYB9onnWw7jlJl0oKrKiw0LIzCwU/RkF2kf3S/7ThKsXL+DFoXbSKn8wjbUZQqlxZcVSmdkk9nfuzZ9M78kM2rF9mOo4Lcvt9eJ9fUpttZ19iOolS5tOCqSmtz+dPkE8GuSXoClbInZ+c2uu+ZybKEc4iKjrUdR6lyacFVlRbfuCVLOvyNHnnzSZ/5qe04KkitmP4ateQwDU/Tk6WUfwiagisiLUTkJxFZLiJLReQ225n8Wa+L72GzNKXer4/oJfyU15miIpqtmcDy8C606dLHdhylKiRoCi5QANxhjOkM9AP+LiJdLGfyWxG1ItnZ/z5aFW0mdfJztuOoILP0969oYTLZ1+0q21GUqrCgKbjGmK3GmAXu7VxgOdDMbir/ljToCpZGdKfDshf1d5aVVx2a8yY5RNP9jJG2oyhVYUFTcD2JSGugJzDXchS/JiEhRJzzOHHsZeknD9mOo4LEzm2bScz9hRWNzicyKtp2HKUqLOgKrohEA5OA240xe0sYPlpEUkQkJSsry/sB/Uz7pJOZH3sWvTM/0gvVK69YPf1VwqWQpqffZDuKUpUSVAVXRMJxiu2HxpjPSxrHGPO6MSbZGJOckJDg3YB+quUlj1NICFsn3Ws7igpwRYWFtNrwGUsjetCyQ5LtOEpVStAUXBER4E1guTHmf7bzBJJGzduR1uJKeuf+yIqUH2zHUQFsyc+TaWp2kJc0ynYUpSotaAoucCJwFXCaiKS5f+fYDhUoul/6ADupB9/epz+GoWpM4fw3ySaW7qfrTzkq/xM0BdcY86sxRowxicaYJPfva9u5AkV03TjWdbuNTgXLSfv+fdtxVADanrGW7vvnsKrpUCJqRdqOo1SlBU3BVTWv19AxbAxpToO5T+qPYahqt+67cYRgaDlILzKv/JMWXFVtwsIjyO57Ly2LtrBgysu246gAUnA4n3abJrKkdm+ate1sO45SVaIFV1WrnmeMYGVYJ1ovfoG8A/tsx1EBYsnMiTRkF4W99KpAyn9pwVXVSkJCKDjtQRqyi7SJT9qOowKEpL7FDurT/dRLbUdRqsq04Kpq1/WEc1gU2Ycu695kzy798RB1bDI3rKT7wRTWtriIsPAI23GUqjItuKpGRJ/7CNHmAMs++7ftKMrPbfz+FQzQ5ky9DJ/yb1pwVY1o170fC2JPp2fmx+zYst52HOWn8g/l0X7LFyyu04/GLY6zHUepY6IFV9WYphc+SghFbJh0v+0oyk8t/uFj4slBkq+1HUWpY6YFV9WYpm06saDhRfTKnsamVWm24yg/VGvRO2wlgW4DLrIdRaljpgVX1aj2Fz/EISLY+aVu5arK2bx6Ed0OpbGh9cWEhoXZjqPUMdOCq2pUg0bNSW95Fb32/8zqtF9sx1F+ZMuMVzlsQmmvJ0upAKEFV9W4bhePJYdoDkzXM5ZVxeQd3E/H7V+xOOZE4pu2sh1HqWqhBVfVuJjY+qxoey09Ds5jxbzvbcdRfmDJ9+8TRy7hx19vO4pS1UYLrvKKxIvuZCf1KJzxH9tRlB+os/g9MqQJXU88z3YUpaqNTxZcERkjInG2c6jqExUdy5qOo+mav4glv06xHUf5sA3LU+h8eCkZbS8lJDTUdhylqo1PFlygMTBfRD4VkbNFRGwHUscu6YLb2U4DwmY+phepV6Xa/uOr5JswOp6tJ0upwOKTBdcY8y+gPfAmcDWwWkQeE5F2VoOpYxJZuw4bu42hU8Fy0md+ajuO8kEH9+fSOetr0mNPIS6hie04SlUrnyy4AMYYA2xz/wqAOGCiiDxV1Wm6W8srRWSNiNxbTVFVJfQc8ne2SCPq/PYURYWFtuMoH7P4u7epywGiTrjBdhSlqp1PFlwRuVVEUoGngN+A7saYvwG9gWFVnGYo8DIwGOgCXC4iXaopsqqg8IhaZCbdznGFa0n7/n3bcZSPqbf0fTaEtKDz8WfajqJUtfPJggvEAxcZY84yxnxmjDkMYIwpAqp62uLxwBpjzDpjTD4wARhaPXFVZfQ6dzQbQ1rQYN4zFBYU2I6jfMSaRb/SoWAV29pfjoT4atekVNX55FJtjHnAGLOxlGHLqzjZZsBmj/sZ7mN/IiKjRSRFRFKysvRarjUhNCyM7D530KpoMwu/fsN2HOUjsme9xkETQeezRtuOolSN8MmCW0NKOtPZ/OUBY143xiQbY5ITEhK8ECs4JZ05krWhbWm88DkO5x+yHUdZlrtnF92zp7M4bhCx9fVzpwJTMBXcDKCFx/3mQKalLEEvJDSU3BPuobnZxsIpL9uOoyxbNv1NouQQ9QbcaDuKUjUmmArufKC9iLQRkQhgOKC/wGBRj1MvZWVYJ1oteYm8g/ttx1GWmKIi4ld+yNrQtrRPGmA7jlI1JmgKrjGmABgDTAeWA58aY5baTRXcJCSEwwPH0ohs0r54znYcZcnKBT/RrnA9OzuN0JOlVEALqqXbGPO1MaaDMaadMeZR23kUdD3xfJZGJHLcytc5uD/XdhxlQe4vr7PfRNL1rOtsR1GqRgVVwVW+R0JCCDn9X8STw6LPn7YdR3nZnl1ZdM/5gSXxZxNdV38+XQU2LbjKus59zyI9MpmOa99i397dtuMoL1r+7WtEymHiB+rJUirwacFVPiHyzAeII5fFk56wHUV5iSkqosmaj1kZ1pF2iSfYjqNUjdOCq3xCh14DWRh1Al03vseeXfqDI8Fg2ZxvaVWUwZ6uV9mOopRXaMFVPiP2nIeoywGWff6Y7SjKCw7OHs9eouh+5tW2oyjlFVpwlc9o260vqdGnkLj5I3bt2GI7jqpB2dszSNw7k2UJ51K7ToztOEp5hRZc5VPiz3uQSA6x6nP91lYgWz39NSKkkCan6UXmVfDQgqt8SqtOvVhQ70yStn7KzswSr1+h/FxhQQEt1n/CsvButOrc23YcpbxGC67yOU2HPkgYhayd/G/bUVQNWPLzRJqZ7RxMusZ2FKW8Sguu8jnN2nZlQYNz6bnjC7ZtWm07jqpu88aTRRzdB11pO4lSXqUFV/mklhc8CMCmLx62nERVp4w1S+iRN581LS8holak7ThKeZUWXOWTGrdsz8KEofTM/pot6/QaE4Ei4/uXOGxCaX/2GNtRlPI6LbjKZ7W76EEKCSHzS93KDQQH9+fSZfsU0usOIL5pK9txlPI6LbjKZ8U3bUVak0vplfMdG1cssB1HHaPF346nLvupfeJNtqMoZYUWXOXTOlx0H3nUYudXupXrz0xREQ2Wvcu6kNZ0Pv5M23GUskILrvJp9Rs2I7355fTeN5N1S+bajqOqaMX872lXuJ6sziP1IvMqaOmSr3xel2H3sZco9nz9kO0oqooO/DrO+d3kwdfbjqKUNUFRcEXkaRFZISLpIjJZROrZzqQqLrZ+AktbjaTngd9ZtWCW7TiqknZmbiRx7yyWNTyfqOhY23GUsiYoCi7wPdDNGJMIrAL+aTmPqqTuw+5lNzHkfae/PuVvVn/7MuFSSLMzb7EdRSmrgqLgGmO+M8YUuHfnAM1t5lGVF103jpXtriUxL4Xlc6fbjqMq6HD+IY7b9CnpkX1ocVx323GUsiooCm4x1wLflDZQREaLSIqIpGRl6YXQfUmPi+5iJ/Uo+uE/mKIi23FUBaR//z4J7Kaojx67VSpgCq6IzBCRJSX8DfUY5z6gAPiwtOkYY143xiQbY5ITEhK8EV1VUO06MazpOJqu+YtZ+ttU23FUBUQvfJ0MaULiKZfYjqKUdQFTcI0xg4wx3Ur4+xJAREYB5wEjjDHGblpVVUkX3M52GhA263HdyvVxK+bPoGPBSrZ0HEVIaKjtOEpZFzAFtywicjZwDzDEGHPAdh5VdZG167Ch69/pVLCc9JkTbcdRZdg/60X2EkW3c/Ui80pBkBRc4CUgBvheRNJEZJztQKrqeg0dwxZpRJ3fntCtXB+1bdNqeuT+zLLGF1Inpp7tOEr5hKAouMaY44wxLYwxSe6f/pirHwuPqEVmj1s5rnAtad+/bzuOKsGGr58FoPU5/7CcRCnfERQFVwWenueOZlNIM+LmPkNhQUH5T1Besz83hy7bJrMoZgCNW7a3HUcpn6EFV/mlsPAIsnr/H62LNrHw27dsx1Eelkx7lbocoM4pt9qOopRP0YKr/FbPs69hfUhrGqU+S8HhfNtxFFBUWEizle+yMqwjnZJPtx1HKZ+iBVf5rZDQUHL63UULk8mCKa/YjqOA9B8/obnZyr6eo21HUcrnaMFVfi1p0BWsDOtI68XPc3B/ru04QS98/qtsI54eZ460HUUpn6MFV/k1CQmh8PSHacgu0iY+YTtOUFu1YBZd89PZcNyVhIVH2I6jlM/Rgqv8Xpf+g0mr3Y+u698iZ+c223GC1r4fnmEvUXQ9/zbbUZTySVpwVUCoN+RR6piDrPjsQdtRgtLm1YtI2vcLS5teQkxsfdtxlPJJWnBVQGjdOZnUuMH02jaRzA0rbccJOlu/forDhNF+yF22oyjls7TgqoDR6uJHKELI/Hys7ShBZWfmRpJ2fUta/LnEN25hO45SPksLrgoYjZq3Y2HTy0neO4M1i36zHSdorJ76FKEU0vzcu21HUcqnacFVAaXLpQ+SQzQHvrnfdpSgsDcnm26Zk0iLGUiztl1tx1HKp2nBVQElNi6eFe1Hk5iXyuKfv7QdJ+AtnfIcMXKQ2DP02K1S5dGCqwJOz2F3sZUEas96mKLCQttxAtbB/bm0X/cei2v15LgeJ9mOo5TP04KrAk6tyCi29LqD4wrXkjpVL31cUxZ9+Tzx5BB6yj22oyjlF7TgqoDU69zRrArrQKu0Z9ifm2M7TsDJO7ifdqvGszSiO136D7YdRym/oAVXBaSQ0FCKznqchuwi/ZOHbccJOIumvEgCuzEDdetWqYoKqoIrIneKiBGReNtZVM3r1GcQKTGn03Pz+2zdqD+GUV0O5R2g9fLXWR7ela79z7UdRym/ETQFV0RaAGcAm2xnUd7T/NKnMAiZE++1HSVgpE15mUZkU3DyXUhI0HQhSh2zYPq0PAvcDRjbQZT3NG5xHGktR9I790dWzP3Odhy/l38oj1bLXmNFWGe6nTTUdhyl/EpQFFwRGQJsMcYsqsC4o0UkRURSsrKyvJBO1bQelz3ADuoT+v1Y/ZrQMVo45WUak0X+iXfq1q1SlRQwnxgRmSEiS0r4GwrcBzxQkekYY143xiQbY5ITEhJqNrTyiqjoWDb1upv2BatJnfqq7Th+K+/APtosfYmVYZ3oPvAi23GU8jsBU3CNMYOMMd2K/wHrgDbAIhHZADQHFohIY5t5lXf1Onc0K8M60SbtafbmZNuO45fSPn+Ghuyi4NQHdOtWqSoI+E+NMWaxMaahMaa1MaY1kAH0MsbolcqDSEhoKCHnPUOc2cPyD/VH9isrd88uOq4ZT3pkb7qeqGcmK1UVAV9wlTqifdLJpCRcSPKOSXo1oUpaMvFR4sil9tn6nWalqiroCq67pbvTdg5lR6cRT5MjdSmc+g89gaqCdu3YQuKmD1gQPYD2SSfbjqOU3wq6gquCW2xcPOt63kvHgpWkTH7edhy/sGriw0RyiAbn/8d2FKX8mhZcFXSSz7+JZRHd6bDkv+zO2mo7jk/LWLOEXtsnklr/HFp1TLIdRym/pgVXBR0JCaH2Bc9Sxxxk9Ud32I7j07I+v5sCwmh7yeO2oyjl97TgqqDUpksfUpsM5/jd01j62zTbcXzSkt+m0vPAb6S3uZ74pq1sx1HK72nBVUGrx1VPskUaETvj/zi4P9d2HJ9SWFBA7R8fYBsJJF061nYcpQKCFlwVtGrXiWH3oP/S3Gxj0ft6mTlPC6a8TLvCdWT0uYfIqGjbcZQKCFpwVVDrduL5zK0/hD5bP2LVglm24/iEfXt30yb9f6wI60zvwdfZjqNUwNCCq4Je55HPkS1xhH91C/mH8mzHsW7JB/dQ3+wh5Jwn9CcclapGYbYD+JvDhw+TkZFBXp52zFURGRlJ8+bNCQ8Ptx3lqLr1GrDu5MdJ+uVGZn9wH/2v+6/tSNasWfQbfbZ/yvz4ofTtdYrtOEoFFC24lZSRkUFMTAytW7dGRGzH8SvGGLKzs8nIyKBNmza24/xJ0unDmZ8+iT6b3mJlyrl0TD7NdiSvKywooGjq7eRIXTqNeMZ2HKUCju4vqqS8vDwaNGigxbYKRIQGDRr47N6BjteMY6c0oM60m9mfm2M7jtelfP4sHQpWsb7XWGLr66UplapuWnCrQItt1fly29Wt14DsM1+gadE2lrx9i+04XrVz2yY6L/sfS2ol0fu80bbjKBWQtOAq5aHrCecwt+kI+u6aQtqMj23H8QpTVMTm926kljlM3WHP64lSStUQ/WQFgS+++IJly5Z5/XUfeughnnnG/44F9hr1NGtD29Dy17vJytxgO06NS/3qdXoe+J2F7cfQskOS7ThKBSwtuEGgOgtuQUFBtUzHl9WKjCLskreINIfIensEBYfzbUeqMTszN9J+wb9ZEd6FPsP/ZTuOUgFNz1I+Bg9PXcqyzL3VOs0uTevy4Pldyx3vggsuYPPmzeTl5XHbbbcxevRooqOj2bdvHwATJ07kq6++YvTo0UyZMoVZs2bxyCOPMGnSJHJzc7nppps4cOAA7dq146233iIuLo758+dz3XXXUadOHU466SS++eYblixZwjvvvMO0adPIy8tj//79TJkyhaFDh7J7924OHz7MI488wtChQwF49NFHee+992jRogUJCQn07t27WtvHW1p16kVK8n9ITr2b2W/9g/43vmw7UrUzRUVkfHAjnUw+dS4dR2iYdgdK1STdwvVTb731FqmpqaSkpPDCCy+QnZ1d4ngnnHACQ4YM4emnnyYtLY127doxcuRInnzySdLT0+nevTsPP/wwANdccw3jxo1j9uzZhIaG/mk6s2fP5t133+XHH38kMjKSyZMns2DBAn766SfuuOMOjDGkpqYyYcIEFi5cyOeff878+fNrvB1qUvL5NzK3wQX03/oBad9/ZDtOtZv32VMkHZhNWsfbadG+h+04SgW8oFmlFZFbgDFAATDNGHP3sU6zIluiNeWFF15g8uTJAGzevJnVq1dX6Hl79uwhJyeHgQMHAjBq1CguueQScnJyyM3N5YQTTgDgiiuu4Kuvvjr6vDPOOIP69esDzvdpx44dy88//0xISAhbtmxh+/bt/PLLL1x44YVERUUBMGTIkGqbX1t6XP8Ka55ZTNvf7mRLu540a9vZdqRqsTb9d3oue5pFUX3pO1wvTqCUNwTFFq6InAoMBRKNMV0B/zuTx8PMmTOZMWMGs2fPZtGiRfTs2ZO8vLw/feWmst91NcaUObxOnTpHb3/44YdkZWWRmppKWloajRo1Ovp6vvy1n6qIrF2HqCs/wgCHP7iEvTkl70nwJ/tzcwj/4npypC4trnlbz0pWykuC5ZP2N+AJY8whAGPMDst5jsmePXuIi4sjKiqKFStWMGfOHAAaNWrE8uXLKSoqOrr1CxATE0NurnP5udjYWOLi4vjll18AeP/99xk4cCBxcXHExMQcndaECRPKfP2GDRsSHh7OTz/9xMaNGwEYMGAAkydP5uDBg+Tm5jJ16tQamX9va9qmE5vPeI1mhZlsGHeZX59EZYqKWP7G9TQvzGTHGS9Qv2Ez25GUChrBUnA7ACeLyFwRmSUifUobUURGi0iKiKRkZWV5MWLFnX322RQUFJCYmMj9999Pv379AHjiiSc477zzOO2002jSpMnR8YcPH87TTz9Nz549Wbt2Le+++y533XUXiYmJpKWl8cADDwDw5ptvMnr0aPr3748xhtjY2BJff8SIEaSkpJCcnMyHH35Ip06dAOjVqxeXXXYZSUlJDBs2jJNPPrmGW8J7up14Pgu7/4vEvPmkvPF323GqbO5H/yZ57/fMbX0j3U4833YcpYKKlLcr0V+IyAygcQmD7gMeBX4EbgP6AJ8AbU05M5+cnGxSUlL+9Njy5cvp3DkwjuMVt2/fPqKjnWufPvHEE2zdupXnn3++2l/Hn9twziuj6bfjE+Z0vJt+l99nO06lpM+cRNefrmNR9Mkk/d8XhBQ7MU6p6iIiqcaYZNs5fE3AnDRljBlU2jAR+RvwuVtg54lIERAP+OYmrCXTpk3j8ccfp6CggFatWvHOO+/YjuRz+ox+hYX/y6DfyqdImVKf5CF/sx2pQjavXkTrmbewMbQVHW96X4utUhYETMEtxxfAacBMEekARAA7rSbyQZdddhmXXXaZ7Rg+LTQsjM63fMbSZweTlDqWtDpxJJ0+3HasMmVlbiDsw2EUEErkyE+pE1PPdiSlglKwHMN9C2grIkuACcCo8nYnK1WayNp1aDXmS9aHt6PTz2NInznJdqRS7dmVxb7xQ6hrcsm+4COatu5oO5JSQSsoCq4xJt8Yc6Uxppsxppcx5kfbmZR/i64bR/yNU9kS1oJOP41m4Xcf2I70F7l7drH11SE0K9zC+kGv0z4pcE5iU8ofBUXBVaomxCU0If7v37EhvC3dfruV1GnjbUc6as+uLLa+eBbt8ley9IT/0e3kobYjKRX0tOAqdQxi6yfQ5JbprI7oTO/5dzDnvfsxRUVWM2VvzyDr5bNofXgdS096iZ5njbKaRynl0IIbxN555x3GjBlT7jiZmZlH719//fVWLvXny2Ji69P2H9NJjTmVfuteYP4LI8g/VLlf+qou65fN59C4U2lesInlp4wj6YwrrORQSv2VFlxVpuIFd/z48XTp0sViIt8UGRVNz9snMbv5tRyf8zUbnj6ZLeuWezXDoh8nkPDJ+YSbw2waOokep17i1ddXSpUtWL4WVDO+uRe2La7eaTbuDoOfKHe00i7Pd9ttt/HVV19Ru3ZtvvzySxo1asTUqVN55JFHyM/Pp0GDBnz44Yc0atTo6LRyc3NJTExk1apVhIeHs3fvXhITE3n66adJSUlhxIgR1K5dm9mzZzN48GCeeeYZkpOT+fbbbxk7diyFhYXEx8fzww8/VG9b+JmQ0FD6X/8sC6b34rjZ9yDvnkpK74fofd7oGv294kN5B1j41u302/EJa8LaEXPNZ3Ro3q7GXk8pVTW6heunSro83/79++nXrx+LFi1iwIABvPHGGwCcdNJJzJkzh4ULFzJ8+HCeeuqpP00rJiaGU045hWnTpgHO7ygPGzaMSy655OjPN6alpVG7du2jz8nKyuKGG25g0qRJLFq0iM8++8x7M+/jep11Ffuv+YktEW1IXnAPi58axJZ1S2vktZbPnU7mU/3ot+MT5sYPo/mdv9BIi61SPkm3cI9FBbZEa0pJl+eLiIjgvPPOA6B37958//33AGRkZHDZZZexdetW8vPzadOmzV+md/311/PUU09xwQUX8Pbbbx8t1qWZM2cOAwYMODqtI5fuU44mrTrS8J5fmDvxabouf57wdwcyp/Ew2l90Pw0aNT/m6W9Zt5zMLx+kz57pbCOetJNfo6+P/wCHUsFOt3D9UGmX5wsPDz96ebzQ0FAKCgoAuOWWWxgzZgyLFy/mtddeK/HSfSeeeCIbNmxg1qxZFBYW0q1btzIzGGMC7lJ81S00LIy+w//JgdGzSa93On22fULtV3ox98WRrE3/vdLTM0VFrJj3PfOfvZRG755AYs6PzG5yJTF3pPr8r10ppXQL1y+Vdnm+ssZv1sy5DNu7775b6ngjR47k8ssv5/777z/6mOel/Tz179+fv//976xfv542bdqwa9cu3cotRcNmbWj4j0/YtCqN7V8/QY+dXxP5+Zds/KI5WxsOJLL9AJp07EPDpm3+dKy3qLCQHZnr2bYqhbxVP9Fsx890MpkcMLVIaXQJ7S4YS/+mre3NmFKqUrTg+qGzzz6bcePGkZiYSMeOHY9enq80Dz30EJdccgnNmjWjX79+rF+/vsTxRowYwb/+9S8uv/zyo49dffXV3HTTTUdPmjoiISGB119/nYsuuoiioiIaNmx4dBe2KlnLDkm07DCBPbuyWPTdeKLWT6fX1glEbPsQfoFDJpw9EkO+1CLCHCLG7KOx5NMYZ9iqyG5s63gTnQeNpF/dONuzo5SqpIC5PF9NCLbL802cOJEvv/yS999/v0ZfJ5DbsLL25+awedk89qxPxeRsJiRvNyGFhygKrUVRrVgk/jiim3WhXc+BRNauYzuuUhWil+crmW7hKsA5zvvNN9/w9ddf244SVOrE1KNT3zOh75m2oyilapgWXAXAiy++aDuCUkoFND1LuQp0N3zVadsppYKVFtxKioyMJDs7WwtHFRhjyM7OJjIy0nYUpZTyOt2lXEnNmzcnIyODrKws21H8UmRkJM2bH/sPPyillL/RgltJ4eHhJf5Sk1JKKVUW3aWslFJKeYEWXKWUUsoLtOAqpZRSXqC/NFUGEckCNlbx6fHAzmqM4w90noODznNwOJZ5bmWMSajOMIFAC24NEZGUYPtpM53n4KDzHByCcZ5rmu5SVkoppbxAC65SSinlBVpwa87rtgNYoPMcHHSeg0MwznON0mO4SimllBfoFq5SSinlBVpwlVJKKS/QgnuMRORsEVkpImtE5N4ShouIvOAOTxeRXjZyVqcKzPMId17TReR3EelhI2d1Km+ePcbrIyKFInKxN/NVt4rMr4icIiJpIrJURGZ5O2N1q8ByHSsiU0VkkTvP19jIWZ1E5C0R2SEiS0oZHnD9l1XGGP2r4h8QCqwF2gIRwCKgS7FxzgG+AQToB8y1ndsL83wCEOfeHhwM8+wx3o/A18DFtnPX8HtcD1gGtHTvN7Sd2wvzPBZ40r2dAOwCImxnP8b5HgD0ApaUMjyg+i/bf7qFe2yOB9YYY9YZY/KBCcDQYuMMBd4zjjlAPRFp4u2g1ajceTbG/G6M2e3enQP4+/X4KvI+A9wCTAJ2eDNcDajI/F4BfG6M2QRgjAmGeTZAjIgIEI1TcAu8G7N6GWN+xpmP0gRa/2WVFtxj0wzY7HE/w32ssuP4k8rOz3U4a8j+rNx5FpFmwIXAOC/mqikVeY87AHEiMlNEUkVkpNfS1YyKzPNLQGcgE1gM3GaMKfJOPGsCrf+ySq+He2ykhMeKf8+qIuP4kwrPj4icilNwT6rRRDWvIvP8HHCPMabQ2QDyaxWZ3zCgN3A6UBuYLSJzjDGrajpcDanIPJ8FpAGnAe2A70XkF2PM3hrOZlOg9V9WacE9NhlAC4/7zXHWfis7jj+p0PyISCIwHhhsjMn2UraaUpF5TgYmuMU2HjhHRAqMMV94JWH1quhyvdMYsx/YLyI/Az0Afy24FZnna4AnjHNwc42IrAc6AfO8E9GKQOu/rNJdysdmPtBeRNqISAQwHJhSbJwpwEj3bL9+wB5jzFZvB61G5c6ziLQEPgeu8uMtHk/lzrMxpo0xprUxpjUwEbjZT4stVGy5/hI4WUTCRCQK6Ass93LO6lSRed6Es0WPiDQCOgLrvJrS+wKt/7JKt3CPgTGmQETGANNxznJ8yxizVERucoePwzlj9RxgDXAAZy3Zb1Vwnh8AGgCvuFt8BcaPrzpSwXkOGBWZX2PMchH5FkgHioDxxpgSv1riDyr4Hv8HeEdEFuPsar3HGOPXl+wTkY+BU4B4EckAHgTCITD7L9v0px2VUkopL9BdykoppZQXaMFVSimlvEALrlJKKeUFWnCVUkopL9CCq5RSSnmBFlyllFLKC7TgKqWUUl6gBVcpP+JebzddRCJFpI57XdZutnMppcqnP3yhlJ8RkUeASJyLBmQYYx63HEkpVQFacJXyM+5v/c4H8oATjDGFliMppSpAdykr5X/q41wAPQZnS1cp5Qd0C1cpPyMiU4AJQBugiTFmjOVISqkK0KsFKeVHRGQkztWXPhKRUOB3ETnNGPOj7WxKqbLpFq5SSinlBXoMVymllPICLbhKKaWUF2jBVUoppbxAC65SSinlBVpwlVJKKS/QgquUUkp5gRZcpZRSygv+H5eG7m/qSqURAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_177_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The max absolute difference is: 1.77636e-15\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "\n", + "# To do elementwise differentiation:\n", + "from autograd import elementwise_grad as egrad \n", + "\n", + "# To plot:\n", + "import matplotlib.pyplot as plt \n", + "\n", + "\n", + "def f(x):\n", + " return np.sin(2*np.pi*x + x**2)\n", + "\n", + "def f_grad_analytic(x):\n", + " return np.cos(2*np.pi*x + x**2)*(2*np.pi + 2*x)\n", + "\n", + "# Do the comparison:\n", + "x = np.linspace(0,1,1000)\n", + "\n", + "f_grad = egrad(f)\n", + "\n", + "computed = f_grad(x)\n", + "analytic = f_grad_analytic(x)\n", + "\n", + "plt.title('Derivative computed from Autograd compared with the analytical derivative')\n", + "plt.plot(x,computed,label='autograd')\n", + "plt.plot(x,analytic,label='analytic')\n", + "\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "plt.legend()\n", + "\n", + "plt.show()\n", + "\n", + "print(\"The max absolute difference is: %g\"%(np.max(np.abs(computed - analytic))))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we\n", + "experiment with what kind of functions Autograd is capable\n", + "of finding the gradient of. The following Python functions are just\n", + "meant to illustrate what Autograd can do, but please feel free to\n", + "experiment with other, possibly more complicated, functions as well." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The gradient of f1 evaluated at a = 1 using autograd is: 3\n", + "The gradient of f1 evaluated at a = 1 by finding the analytic expression is: 3\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "\n", + "def f1(x):\n", + " return x**3 + 1\n", + "\n", + "f1_grad = grad(f1)\n", + "\n", + "# Remember to send in float as argument to the computed gradient from Autograd!\n", + "a = 1.0\n", + "\n", + "# See the evaluated gradient at a using autograd:\n", + "print(\"The gradient of f1 evaluated at a = %g using autograd is: %g\"%(a,f1_grad(a)))\n", + "\n", + "# Compare with the analytical derivative, that is f1'(x) = 3*x**2 \n", + "grad_analytical = 3*a**2\n", + "print(\"The gradient of f1 evaluated at a = %g by finding the analytic expression is: %g\"%(a,grad_analytical))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To differentiate with respect to two (or more) arguments of a Python\n", + "function, Autograd need to know at which variable the function if\n", + "being differentiated with respect to." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Evaluating at x1 = 1, x2 = 3\n", + "------------------------------\n", + "The derivative of f2 w.r.t x1: 12\n", + "The analytical derivative of f2 w.r.t x1: 12\n", + "\n", + "The derivative of f2 w.r.t x2: -4\n", + "The analytical derivative of f2 w.r.t x2: -4\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "def f2(x1,x2):\n", + " return 3*x1**3 + x2*(x1 - 5) + 1\n", + "\n", + "# By sending the argument 0, Autograd will compute the derivative w.r.t the first variable, in this case x1\n", + "f2_grad_x1 = grad(f2,0)\n", + "\n", + "# ... and differentiate w.r.t x2 by sending 1 as an additional arugment to grad\n", + "f2_grad_x2 = grad(f2,1)\n", + "\n", + "x1 = 1.0\n", + "x2 = 3.0 \n", + "\n", + "print(\"Evaluating at x1 = %g, x2 = %g\"%(x1,x2))\n", + "print(\"-\"*30)\n", + "\n", + "# Compare with the analytical derivatives:\n", + "\n", + "# Derivative of f2 w.r.t x1 is: 9*x1**2 + x2:\n", + "f2_grad_x1_analytical = 9*x1**2 + x2\n", + "\n", + "# Derivative of f2 w.r.t x2 is: x1 - 5:\n", + "f2_grad_x2_analytical = x1 - 5\n", + "\n", + "# See the evaluated derivations:\n", + "print(\"The derivative of f2 w.r.t x1: %g\"%( f2_grad_x1(x1,x2) ))\n", + "print(\"The analytical derivative of f2 w.r.t x1: %g\"%( f2_grad_x1(x1,x2) ))\n", + "\n", + "print()\n", + "\n", + "print(\"The derivative of f2 w.r.t x2: %g\"%( f2_grad_x2(x1,x2) ))\n", + "print(\"The analytical derivative of f2 w.r.t x2: %g\"%( f2_grad_x2(x1,x2) ))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the grad function will not produce the true gradient of the function. The true gradient of a function with two or more variables will produce a vector, where each element is the function differentiated w.r.t a variable." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The computed gradient of f3 is: [ 2. 3. 5. 7. 88.]\n", + "The analytical gradient of f3 is: [ 2. 3. 5. 7. 88.]\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "def f3(x): # Assumes x is an array of length 5 or higher\n", + " return 2*x[0] + 3*x[1] + 5*x[2] + 7*x[3] + 11*x[4]**2\n", + "\n", + "f3_grad = grad(f3)\n", + "\n", + "x = np.linspace(0,4,5)\n", + "\n", + "# Print the computed gradient:\n", + "print(\"The computed gradient of f3 is: \", f3_grad(x))\n", + "\n", + "# The analytical gradient is: (2, 3, 5, 7, 22*x[4])\n", + "f3_grad_analytical = np.array([2, 3, 5, 7, 22*x[4]])\n", + "\n", + "# Print the analytical gradient:\n", + "print(\"The analytical gradient of f3 is: \", f3_grad_analytical)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that in this case, when sending an array as input argument, the\n", + "output from Autograd is another array. This is the true gradient of\n", + "the function, as opposed to the function in the previous example. By\n", + "using arrays to represent the variables, the output from Autograd\n", + "might be easier to work with, as the output is closer to what one\n", + "could expect form a gradient-evaluting function." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The computed derivative of f4 at x = 2.7 is: 13.8759\n", + "The analytical gradient of f4 at x = 2.7 is: 13.8759\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "def f4(x):\n", + " return np.sqrt(1+x**2) + np.exp(x) + np.sin(2*np.pi*x)\n", + "\n", + "f4_grad = grad(f4)\n", + "\n", + "x = 2.7\n", + "\n", + "# Print the computed derivative:\n", + "print(\"The computed derivative of f4 at x = %g is: %g\"%(x,f4_grad(x)))\n", + "\n", + "# The analytical derivative is: x/sqrt(1 + x**2) + exp(x) + cos(2*pi*x)*2*pi\n", + "f4_grad_analytical = x/np.sqrt(1 + x**2) + np.exp(x) + np.cos(2*np.pi*x)*2*np.pi\n", + "\n", + "# Print the analytical gradient:\n", + "print(\"The analytical gradient of f4 at x = %g is: %g\"%(x,f4_grad_analytical))" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The computed derivative of f5 at x = 2.7 is: 5.4\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "def f5(x):\n", + " if x >= 0:\n", + " return x**2\n", + " else:\n", + " return -3*x + 1\n", + "\n", + "f5_grad = grad(f5)\n", + "\n", + "x = 2.7\n", + "\n", + "# Print the computed derivative:\n", + "print(\"The computed derivative of f5 at x = %g is: %g\"%(x,f5_grad(x)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1\n", + "8\n", + " \n", + "<\n", + "<\n", + "<\n", + "!\n", + "!\n", + "C\n", + "O\n", + "D\n", + "E\n", + "_\n", + "B\n", + "L\n", + "O\n", + "C\n", + "K\n", + " \n", + " \n", + "p\n", + "y\n", + "c\n", + "o\n", + "d" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The analytical derivative of f6 at x = 2.7 is: 37732.5\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "# Both of the functions are implementation of the sum: sum(x**i) for i = 0, ..., 9\n", + "# The analytical derivative is: sum(i*x**(i-1)) \n", + "f6_grad_analytical = 0\n", + "for i in range(10):\n", + " f6_grad_analytical += i*x**(i-1)\n", + "\n", + "print(\"The analytical derivative of f6 at x = %g is: %g\"%(x,f6_grad_analytical))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The computed derivative of f7 at n = 2 is: 1\n", + "The analytical derivative of f7 at n = 2 is: 1\n" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "\n", + "def f7(n): # Assume that n is an integer\n", + " if n == 1 or n == 0:\n", + " return 1\n", + " else:\n", + " return n*f7(n-1)\n", + "\n", + "f7_grad = grad(f7)\n", + "\n", + "n = 2.0\n", + "\n", + "print(\"The computed derivative of f7 at n = %d is: %g\"%(n,f7_grad(n)))\n", + "\n", + "# The function f7 is an implementation of the factorial of n.\n", + "# By using the product rule, one can find that the derivative is:\n", + "\n", + "f7_grad_analytical = 0\n", + "for i in range(int(n)-1):\n", + " tmp = 1\n", + " for k in range(int(n)-1):\n", + " if k != i:\n", + " tmp *= (n - k)\n", + " f7_grad_analytical += tmp\n", + "\n", + "print(\"The analytical derivative of f7 at n = %d is: %g\"%(n,f7_grad_analytical))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that if n is equal to zero or one, Autograd will give an error message. This message appears when the output is independent on input.\n", + "\n", + "\n", + "Autograd supports many features. However, there are some functions that are not supported (yet) by Autograd.\n", + "\n", + "Assigning a value to the variable being differentiated with respect to is an example thereof." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "#import autograd.numpy as np\n", + "#from autograd import grad\n", + "#def f8(x): # Assume x is an array\n", + "# x[2] = 3\n", + "# return x*2\n", + "\n", + "#f8_grad = grad(f8)\n", + "\n", + "#x = 8.4\n", + "\n", + "#print(\"The derivative of f8 is:\",f8_grad(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here, Autograd tells us that an 'ArrayBox' does not support item assignment. The item assignment is done when the program tries to assign x[2] to the value 3. However, Autograd has implemented the computation of the derivative such that this assignment is not possible." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'ArrayBox' object has no attribute 'dot'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41406/546166676.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0.0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"The derivative of f9 is:\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mf9_grad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/wrap_util.py\u001b[0m in \u001b[0;36mnary_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margnum\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 20\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0munary_operator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0munary_f\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mnary_op_args\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mnary_op_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 21\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnary_f\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnary_operator\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/differential_operators.py\u001b[0m in \u001b[0;36mgrad\u001b[0;34m(fun, x)\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0marguments\u001b[0m \u001b[0;32mas\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbut\u001b[0m \u001b[0mreturns\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mgradient\u001b[0m \u001b[0minstead\u001b[0m\u001b[0;34m.\u001b[0m \u001b[0mThe\u001b[0m \u001b[0mfunction\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m`\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;31m`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m should be scalar-valued. The gradient has the same type as the argument.\"\"\"\n\u001b[0;32m---> 25\u001b[0;31m \u001b[0mvjp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mans\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_make_vjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 26\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mans\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msize\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 27\u001b[0m raise TypeError(\"Grad only applies to real scalar-output functions. \"\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/core.py\u001b[0m in \u001b[0;36mmake_vjp\u001b[0;34m(fun, x)\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mmake_vjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mstart_node\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mVJPNode\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnew_root\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0mend_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend_node\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstart_node\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mend_node\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvjp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mvspace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/tracer.py\u001b[0m in \u001b[0;36mtrace\u001b[0;34m(start_node, fun, x)\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mtrace_stack\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnew_trace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mstart_box\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnew_box\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstart_node\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0mend_box\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstart_box\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misbox\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mend_box\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mend_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_trace\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mstart_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_trace\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mend_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_value\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mend_box\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_node\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.8/site-packages/autograd/wrap_util.py\u001b[0m in \u001b[0;36munary_f\u001b[0;34m(x)\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0msubargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msubvals\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0msubargs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 16\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0margnum\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0margnum\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41406/546166676.py\u001b[0m in \u001b[0;36mf9\u001b[0;34m(a)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mf9\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# Assume a is an array with 2 elements\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1.0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2.0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mf9_grad\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgrad\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf9\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: 'ArrayBox' object has no attribute 'dot'" + ] + } + ], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "def f9(a): # Assume a is an array with 2 elements\n", + " b = np.array([1.0,2.0])\n", + " return a.dot(b)\n", + "\n", + "f9_grad = grad(f9)\n", + "\n", + "x = np.array([1.0,0.0])\n", + "\n", + "print(\"The derivative of f9 is:\",f9_grad(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we are told that the 'dot' function does not belong to Autograd's\n", + "version of a Numpy array. To overcome this, an alternative syntax\n", + "which also computed the dot product can be used:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import autograd.numpy as np\n", + "from autograd import grad\n", + "def f9_alternative(x): # Assume a is an array with 2 elements\n", + " b = np.array([1.0,2.0])\n", + " return np.dot(x,b) # The same as x_1*b_1 + x_2*b_2\n", + "\n", + "f9_alternative_grad = grad(f9_alternative)\n", + "\n", + "x = np.array([3.0,0.0])\n", + "\n", + "print(\"The gradient of f9 is:\",f9_alternative_grad(x))\n", + "\n", + "# The analytical gradient of the dot product of vectors x and b with two elements (x_1,x_2) and (b_1, b_2) respectively\n", + "# w.r.t x is (b_1, b_2)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The documentation recommends to avoid inplace operations such as" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "a += b\n", + "a -= b\n", + "a*= b\n", + "a /=b" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "More examples will be added, in particular how to compare autograd with own codes for the gradients." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/chapteroptimization.py b/doc/LectureNotes/_build/jupyter_execute/chapteroptimization.py new file mode 100644 index 000000000..e368e574f --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapteroptimization.py @@ -0,0 +1,1769 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Optimization, the central part of any Machine Learning algortithm +# +# Almost every problem in machine learning and data science starts with +# a dataset $X$, a model $g(\beta)$, which is a function of the +# parameters $\beta$ and a cost function $C(X, g(\beta))$ that allows +# us to judge how well the model $g(\beta)$ explains the observations +# $X$. The model is fit by finding the values of $\beta$ that minimize +# the cost function. Ideally we would be able to solve for $\beta$ +# analytically, however this is not possible in general and we must use +# some approximative/numerical method to compute the minimum. +# +# +# +# +# In our discussion on Logistic Regression we studied the +# case of +# two classes, with $y_i$ either +# $0$ or $1$. Furthermore we assumed also that we have only two +# parameters $\beta$ in our fitting, that is we +# defined probabilities + +# $$ +# \begin{align*} +# p(y_i=1|x_i,\boldsymbol{\beta}) &= \frac{\exp{(\beta_0+\beta_1x_i)}}{1+\exp{(\beta_0+\beta_1x_i)}},\nonumber\\ +# p(y_i=0|x_i,\boldsymbol{\beta}) &= 1 - p(y_i=1|x_i,\boldsymbol{\beta}), +# \end{align*} +# $$ + +# where $\boldsymbol{\beta}$ are the weights we wish to extract from data, in our case $\beta_0$ and $\beta_1$. +# +# +# +# Our compact equations used a definition of a vector $\boldsymbol{y}$ with $n$ +# elements $y_i$, an $n\times p$ matrix $\boldsymbol{X}$ which contains the +# $x_i$ values and a vector $\boldsymbol{p}$ of fitted probabilities +# $p(y_i\vert x_i,\boldsymbol{\beta})$. We rewrote in a more compact form +# the first derivative of the cost function as + +# $$ +# \frac{\partial \mathcal{C}(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} = -\boldsymbol{X}^T\left(\boldsymbol{y}-\boldsymbol{p}\right). +# $$ + +# If we in addition define a diagonal matrix $\boldsymbol{W}$ with elements +# $p(y_i\vert x_i,\boldsymbol{\beta})(1-p(y_i\vert x_i,\boldsymbol{\beta})$, we can obtain a compact expression of the second derivative as + +# $$ +# \frac{\partial^2 \mathcal{C}(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}\partial \boldsymbol{\beta}^T} = \boldsymbol{X}^T\boldsymbol{W}\boldsymbol{X}. +# $$ + +# This defines what is called the Hessian matrix. +# +# +# +# If we can set up these equations, Newton-Raphson's iterative method is normally the method of choice. It requires however that we can compute in an efficient way the matrices that define the first and second derivatives. +# +# Our iterative scheme is then given by + +# $$ +# \boldsymbol{\beta}^{\mathrm{new}} = \boldsymbol{\beta}^{\mathrm{old}}-\left(\frac{\partial^2 \mathcal{C}(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}\partial \boldsymbol{\beta}^T}\right)^{-1}_{\boldsymbol{\beta}^{\mathrm{old}}}\times \left(\frac{\partial \mathcal{C}(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}\right)_{\boldsymbol{\beta}^{\mathrm{old}}}, +# $$ + +# or in matrix form as + +# $$ +# \boldsymbol{\beta}^{\mathrm{new}} = \boldsymbol{\beta}^{\mathrm{old}}-\left(\boldsymbol{X}^T\boldsymbol{W}\boldsymbol{X} \right)^{-1}\times \left(-\boldsymbol{X}^T(\boldsymbol{y}-\boldsymbol{p}) \right)_{\boldsymbol{\beta}^{\mathrm{old}}}. +# $$ + +# The right-hand side is computed with the old values of $\beta$. +# +# If we can compute these matrices, in particular the Hessian, the above is often the easiest method to implement. +# +# +# Let us quickly remind ourselves how we derive the above method. +# +# Perhaps the most celebrated of all one-dimensional root-finding +# routines is Newton's method, also called the Newton-Raphson +# method. This method requires the evaluation of both the +# function $f$ and its derivative $f'$ at arbitrary points. +# If you can only calculate the derivative +# numerically and/or your function is not of the smooth type, we +# normally discourage the use of this method. +# +# +# +# The Newton-Raphson formula consists geometrically of extending the +# tangent line at a current point until it crosses zero, then setting +# the next guess to the abscissa of that zero-crossing. The mathematics +# behind this method is rather simple. Employing a Taylor expansion for +# $x$ sufficiently close to the solution $s$, we have + +# +#
    +# +# $$ +# f(s)=0=f(x)+(s-x)f'(x)+\frac{(s-x)^2}{2}f''(x) +\dots. +# \label{eq:taylornr} \tag{1} +# $$ + +# For small enough values of the function and for well-behaved +# functions, the terms beyond linear are unimportant, hence we obtain + +# $$ +# f(x)+(s-x)f'(x)\approx 0, +# $$ + +# yielding + +# $$ +# s\approx x-\frac{f(x)}{f'(x)}. +# $$ + +# Having in mind an iterative procedure, it is natural to start iterating with + +# $$ +# x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}. +# $$ + +# The above is Newton-Raphson's method. It has a simple geometric +# interpretation, namely $x_{n+1}$ is the point where the tangent from +# $(x_n,f(x_n))$ crosses the $x$-axis. Close to the solution, +# Newton-Raphson converges fast to the desired result. However, if we +# are far from a root, where the higher-order terms in the series are +# important, the Newton-Raphson formula can give grossly inaccurate +# results. For instance, the initial guess for the root might be so far +# from the true root as to let the search interval include a local +# maximum or minimum of the function. If an iteration places a trial +# guess near such a local extremum, so that the first derivative nearly +# vanishes, then Newton-Raphson may fail totally +# +# +# +# +# Newton's method can be generalized to systems of several non-linear equations +# and variables. Consider the case with two equations + +# $$ +# \begin{array}{cc} f_1(x_1,x_2) &=0\\ +# f_2(x_1,x_2) &=0,\end{array} +# $$ + +# which we Taylor expand to obtain + +# $$ +# \begin{array}{cc} 0=f_1(x_1+h_1,x_2+h_2)=&f_1(x_1,x_2)+h_1 +# \partial f_1/\partial x_1+h_2 +# \partial f_1/\partial x_2+\dots\\ +# 0=f_2(x_1+h_1,x_2+h_2)=&f_2(x_1,x_2)+h_1 +# \partial f_2/\partial x_1+h_2 +# \partial f_2/\partial x_2+\dots +# \end{array}. +# $$ + +# Defining the Jacobian matrix $\boldsymbol{J}$ we have + +# $$ +# \boldsymbol{J}=\left( \begin{array}{cc} +# \partial f_1/\partial x_1 & \partial f_1/\partial x_2 \\ +# \partial f_2/\partial x_1 &\partial f_2/\partial x_2 +# \end{array} \right), +# $$ + +# we can rephrase Newton's method as + +# $$ +# \left(\begin{array}{c} x_1^{n+1} \\ x_2^{n+1} \end{array} \right)= +# \left(\begin{array}{c} x_1^{n} \\ x_2^{n} \end{array} \right)+ +# \left(\begin{array}{c} h_1^{n} \\ h_2^{n} \end{array} \right), +# $$ + +# where we have defined + +# $$ +# \left(\begin{array}{c} h_1^{n} \\ h_2^{n} \end{array} \right)= +# -\boldsymbol{J}^{-1} +# \left(\begin{array}{c} f_1(x_1^{n},x_2^{n}) \\ f_2(x_1^{n},x_2^{n}) \end{array} \right). +# $$ + +# We need thus to compute the inverse of the Jacobian matrix and it +# is to understand that difficulties may +# arise in case $\boldsymbol{J}$ is nearly singular. +# +# It is rather straightforward to extend the above scheme to systems of +# more than two non-linear equations. In our case, the Jacobian matrix is given by the Hessian that represents the second derivative of cost function. +# +# +# +# +# ## Steepest descent +# +# The basic idea of gradient descent is +# that a function $F(\mathbf{x})$, +# $\mathbf{x} \equiv (x_1,\cdots,x_n)$, decreases fastest if one goes from $\bf {x}$ in the +# direction of the negative gradient $-\nabla F(\mathbf{x})$. +# +# It can be shown that if + +# $$ +# \mathbf{x}_{k+1} = \mathbf{x}_k - \gamma_k \nabla F(\mathbf{x}_k), +# $$ + +# with $\gamma_k > 0$. +# +# For $\gamma_k$ small enough, then $F(\mathbf{x}_{k+1}) \leq +# F(\mathbf{x}_k)$. This means that for a sufficiently small $\gamma_k$ +# we are always moving towards smaller function values, i.e a minimum. +# +# +# The previous observation is the basis of the method of steepest +# descent, which is also referred to as just gradient descent (GD). One +# starts with an initial guess $\mathbf{x}_0$ for a minimum of $F$ and +# computes new approximations according to + +# $$ +# \mathbf{x}_{k+1} = \mathbf{x}_k - \gamma_k \nabla F(\mathbf{x}_k), \ \ k \geq 0. +# $$ + +# The parameter $\gamma_k$ is often referred to as the step length or +# the learning rate within the context of Machine Learning. +# +# +# Ideally the sequence $\{\mathbf{x}_k \}_{k=0}$ converges to a global +# minimum of the function $F$. In general we do not know if we are in a +# global or local minimum. In the special case when $F$ is a convex +# function, all local minima are also global minima, so in this case +# gradient descent can converge to the global solution. The advantage of +# this scheme is that it is conceptually simple and straightforward to +# implement. However the method in this form has some severe +# limitations: +# +# In machine learing we are often faced with non-convex high dimensional +# cost functions with many local minima. Since GD is deterministic we +# will get stuck in a local minimum, if the method converges, unless we +# have a very good intial guess. This also implies that the scheme is +# sensitive to the chosen initial condition. +# +# Note that the gradient is a function of $\mathbf{x} = +# (x_1,\cdots,x_n)$ which makes it expensive to compute numerically. +# +# +# +# +# The gradient descent method +# is sensitive to the choice of learning rate $\gamma_k$. This is due +# to the fact that we are only guaranteed that $F(\mathbf{x}_{k+1}) \leq +# F(\mathbf{x}_k)$ for sufficiently small $\gamma_k$. The problem is to +# determine an optimal learning rate. If the learning rate is chosen too +# small the method will take a long time to converge and if it is too +# large we can experience erratic behavior. +# +# Many of these shortcomings can be alleviated by introducing +# randomness. One such method is that of Stochastic Gradient Descent +# (SGD), see below. +# +# +# +# ## Convex functions +# +# Ideally we want our cost/loss function to be convex(concave). +# +# First we give the definition of a convex set: A set $C$ in +# $\mathbb{R}^n$ is said to be convex if, for all $x$ and $y$ in $C$ and +# all $t \in (0,1)$ , the point $(1 − t)x + ty$ also belongs to +# C. Geometrically this means that every point on the line segment +# connecting $x$ and $y$ is in $C$ as discussed below. +# +# The convex subsets of $\mathbb{R}$ are the intervals of +# $\mathbb{R}$. Examples of convex sets of $\mathbb{R}^2$ are the +# regular polygons (triangles, rectangles, pentagons, etc...). +# +# +# +# **Convex function**: Let $X \subset \mathbb{R}^n$ be a convex set. Assume that the function $f: X \rightarrow \mathbb{R}$ is continuous, then $f$ is said to be convex if $$f(tx_1 + (1-t)x_2) \leq tf(x_1) + (1-t)f(x_2) $$ for all $x_1, x_2 \in X$ and for all $t \in [0,1]$. If $\leq$ is replaced with a strict inequaltiy in the definition, we demand $x_1 \neq x_2$ and $t\in(0,1)$ then $f$ is said to be strictly convex. For a single variable function, convexity means that if you draw a straight line connecting $f(x_1)$ and $f(x_2)$, the value of the function on the interval $[x_1,x_2]$ is always below the line as illustrated below. +# +# +# In the following we state first and second-order conditions which +# ensures convexity of a function $f$. We write $D_f$ to denote the +# domain of $f$, i.e the subset of $R^n$ where $f$ is defined. For more +# details and proofs we refer to: [S. Boyd and L. Vandenberghe. Convex Optimization. Cambridge University Press](http://stanford.edu/boyd/cvxbook/, 2004). +# +# **First order condition.** +# +# Suppose $f$ is differentiable (i.e $\nabla f(x)$ is well defined for +# all $x$ in the domain of $f$). Then $f$ is convex if and only if $D_f$ +# is a convex set and $$f(y) \geq f(x) + \nabla f(x)^T (y-x) $$ holds +# for all $x,y \in D_f$. This condition means that for a convex function +# the first order Taylor expansion (right hand side above) at any point +# a global under estimator of the function. To convince yourself you can +# make a drawing of $f(x) = x^2+1$ and draw the tangent line to $f(x)$ and +# note that it is always below the graph. +# +# +# +# **Second order condition.** +# +# Assume that $f$ is twice +# differentiable, i.e the Hessian matrix exists at each point in +# $D_f$. Then $f$ is convex if and only if $D_f$ is a convex set and its +# Hessian is positive semi-definite for all $x\in D_f$. For a +# single-variable function this reduces to $f''(x) \geq 0$. Geometrically this means that $f$ has nonnegative curvature +# everywhere. +# +# +# +# This condition is particularly useful since it gives us an procedure for determining if the function under consideration is convex, apart from using the definition. +# +# +# +# The next result is of great importance to us and the reason why we are +# going on about convex functions. In machine learning we frequently +# have to minimize a loss/cost function in order to find the best +# parameters for the model we are considering. +# +# Ideally we want the +# global minimum (for high-dimensional models it is hard to know +# if we have local or global minimum). However, if the cost/loss function +# is convex the following result provides invaluable information: +# +# **Any minimum is global for convex functions.** +# +# Consider the problem of finding $x \in \mathbb{R}^n$ such that $f(x)$ +# is minimal, where $f$ is convex and differentiable. Then, any point +# $x^*$ that satisfies $\nabla f(x^*) = 0$ is a global minimum. +# +# +# +# This result means that if we know that the cost/loss function is convex and we are able to find a minimum, we are guaranteed that it is a global minimum. +# +# +# ### Some simple problems +# +# 1. Show that $f(x)=x^2$ is convex for $x \in \mathbb{R}$ using the definition of convexity. Hint: If you re-write the definition, $f$ is convex if the following holds for all $x,y \in D_f$ and any $\lambda \in [0,1]$ $\lambda f(x)+(1-\lambda)f(y)-f(\lambda x + (1-\lambda) y ) \geq 0$. +# +# 2. Using the second order condition show that the following functions are convex on the specified domain. +# +# * $f(x) = e^x$ is convex for $x \in \mathbb{R}$. +# +# * $g(x) = -\ln(x)$ is convex for $x \in (0,\infty)$. +# +# +# 3. Let $f(x) = x^2$ and $g(x) = e^x$. Show that $f(g(x))$ and $g(f(x))$ is convex for $x \in \mathbb{R}$. Also show that if $f(x)$ is any convex function than $h(x) = e^{f(x)}$ is convex. +# +# 4. A norm is any function that satisfy the following properties +# +# * $f(\alpha x) = |\alpha| f(x)$ for all $\alpha \in \mathbb{R}$. +# +# * $f(x+y) \leq f(x) + f(y)$ +# +# * $f(x) \leq 0$ for all $x \in \mathbb{R}^n$ with equality if and only if $x = 0$ +# +# +# Using the definition of convexity, try to show that a function satisfying the properties above is convex (the third condition is not needed to show this). +# +# +# ## Standard steepest descent +# +# +# Before we proceed, we would like to discuss the approach called the +# **standard Steepest descent** (different from the above steepest descent discussion), which again leads to us having to be able +# to compute a matrix. It belongs to the class of Conjugate Gradient methods (CG). +# +# [The success of the CG method](https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf) +# for finding solutions of non-linear problems is based on the theory +# of conjugate gradients for linear systems of equations. It belongs to +# the class of iterative methods for solving problems from linear +# algebra of the type + +# $$ +# \boldsymbol{A}\boldsymbol{x} = \boldsymbol{b}. +# $$ + +# In the iterative process we end up with a problem like + +# $$ +# \boldsymbol{r}= \boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}, +# $$ + +# where $\boldsymbol{r}$ is the so-called residual or error in the iterative process. +# +# When we have found the exact solution, $\boldsymbol{r}=0$. +# +# +# +# The residual is zero when we reach the minimum of the quadratic equation + +# $$ +# P(\boldsymbol{x})=\frac{1}{2}\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x} - \boldsymbol{x}^T\boldsymbol{b}, +# $$ + +# with the constraint that the matrix $\boldsymbol{A}$ is positive definite and +# symmetric. This defines also the Hessian and we want it to be positive definite. +# +# +# We denote the initial guess for $\boldsymbol{x}$ as $\boldsymbol{x}_0$. +# We can assume without loss of generality that + +# $$ +# \boldsymbol{x}_0=0, +# $$ + +# or consider the system + +# $$ +# \boldsymbol{A}\boldsymbol{z} = \boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}_0, +# $$ + +# instead. +# +# +# One can show that the solution $\boldsymbol{x}$ is also the unique minimizer of the quadratic form + +# $$ +# f(\boldsymbol{x}) = \frac{1}{2}\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x} - \boldsymbol{x}^T \boldsymbol{x} , \quad \boldsymbol{x}\in\mathbf{R}^n. +# $$ + +# This suggests taking the first basis vector $\boldsymbol{r}_1$ (see below for definition) +# to be the gradient of $f$ at $\boldsymbol{x}=\boldsymbol{x}_0$, +# which equals + +# $$ +# \boldsymbol{A}\boldsymbol{x}_0-\boldsymbol{b}, +# $$ + +# and +# $\boldsymbol{x}_0=0$ it is equal $-\boldsymbol{b}$. +# +# +# We can compute the residual iteratively as + +# $$ +# \boldsymbol{r}_{k+1}=\boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}_{k+1}, +# $$ + +# which equals + +# $$ +# \boldsymbol{b}-\boldsymbol{A}(\boldsymbol{x}_k+\alpha_k\boldsymbol{r}_k), +# $$ + +# or + +# $$ +# (\boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}_k)-\alpha_k\boldsymbol{A}\boldsymbol{r}_k, +# $$ + +# which gives + +# $$ +# \alpha_k = \frac{\boldsymbol{r}_k^T\boldsymbol{r}_k}{\boldsymbol{r}_k^T\boldsymbol{A}\boldsymbol{r}_k} +# $$ + +# leading to the iterative scheme + +# $$ +# \boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\alpha_k\boldsymbol{r}_{k}, +# $$ + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import numpy as np +import numpy.linalg as la + +import scipy.optimize as sopt + +import matplotlib.pyplot as pt +from mpl_toolkits.mplot3d import axes3d + +def f(x): + return 0.5*x[0]**2 + 2.5*x[1]**2 + +def df(x): + return np.array([x[0], 5*x[1]]) + +fig = pt.figure() +ax = fig.gca(projection="3d") + +xmesh, ymesh = np.mgrid[-2:2:50j,-2:2:50j] +fmesh = f(np.array([xmesh, ymesh])) +ax.plot_surface(xmesh, ymesh, fmesh) + + +# And then as countor plot + +# In[2]: + + +pt.axis("equal") +pt.contour(xmesh, ymesh, fmesh) +guesses = [np.array([2, 2./5])] + + +# Find guesses + +# In[3]: + + +x = guesses[-1] +s = -df(x) + + +# Run it! + +# In[4]: + + +def f1d(alpha): + return f(x + alpha*s) + +alpha_opt = sopt.golden(f1d) +next_guess = x + alpha_opt * s +guesses.append(next_guess) +print(next_guess) + + +# What happened? + +# In[5]: + + +pt.axis("equal") +pt.contour(xmesh, ymesh, fmesh, 50) +it_array = np.array(guesses) +pt.plot(it_array.T[0], it_array.T[1], "x-") + + +# ## Conjugate gradient method +# In the CG method we define so-called conjugate directions and two vectors +# $\boldsymbol{s}$ and $\boldsymbol{t}$ +# are said to be +# conjugate if + +# $$ +# \boldsymbol{s}^T\boldsymbol{A}\boldsymbol{t}= 0. +# $$ + +# The philosophy of the CG method is to perform searches in various conjugate directions +# of our vectors $\boldsymbol{x}_i$ obeying the above criterion, namely + +# $$ +# \boldsymbol{x}_i^T\boldsymbol{A}\boldsymbol{x}_j= 0. +# $$ + +# Two vectors are conjugate if they are orthogonal with respect to +# this inner product. Being conjugate is a symmetric relation: if $\boldsymbol{s}$ is conjugate to $\boldsymbol{t}$, then $\boldsymbol{t}$ is conjugate to $\boldsymbol{s}$. +# +# An example is given by the eigenvectors of the matrix + +# $$ +# \boldsymbol{v}_i^T\boldsymbol{A}\boldsymbol{v}_j= \lambda\boldsymbol{v}_i^T\boldsymbol{v}_j, +# $$ + +# which is zero unless $i=j$. +# +# Assume now that we have a symmetric positive-definite matrix $\boldsymbol{A}$ of size +# $n\times n$. At each iteration $i+1$ we obtain the conjugate direction of a vector + +# $$ +# \boldsymbol{x}_{i+1}=\boldsymbol{x}_{i}+\alpha_i\boldsymbol{p}_{i}. +# $$ + +# We assume that $\boldsymbol{p}_{i}$ is a sequence of $n$ mutually conjugate directions. +# Then the $\boldsymbol{p}_{i}$ form a basis of $R^n$ and we can expand the solution +# $ \boldsymbol{A}\boldsymbol{x} = \boldsymbol{b}$ in this basis, namely + +# $$ +# \boldsymbol{x} = \sum^{n}_{i=1} \alpha_i \boldsymbol{p}_i. +# $$ + +# The coefficients are given by + +# $$ +# \mathbf{A}\mathbf{x} = \sum^{n}_{i=1} \alpha_i \mathbf{A} \mathbf{p}_i = \mathbf{b}. +# $$ + +# Multiplying with $\boldsymbol{p}_k^T$ from the left gives + +# $$ +# \boldsymbol{p}_k^T \boldsymbol{A}\boldsymbol{x} = \sum^{n}_{i=1} \alpha_i\boldsymbol{p}_k^T \boldsymbol{A}\boldsymbol{p}_i= \boldsymbol{p}_k^T \boldsymbol{b}, +# $$ + +# and we can define the coefficients $\alpha_k$ as + +# $$ +# \alpha_k = \frac{\boldsymbol{p}_k^T \boldsymbol{b}}{\boldsymbol{p}_k^T \boldsymbol{A} \boldsymbol{p}_k} +# $$ + +# If we choose the conjugate vectors $\boldsymbol{p}_k$ carefully, +# then we may not need all of them to obtain a good approximation to the solution +# $\boldsymbol{x}$. +# We want to regard the conjugate gradient method as an iterative method. +# This will us to solve systems where $n$ is so large that the direct +# method would take too much time. +# +# We denote the initial guess for $\boldsymbol{x}$ as $\boldsymbol{x}_0$. +# We can assume without loss of generality that + +# $$ +# \boldsymbol{x}_0=0, +# $$ + +# or consider the system + +# $$ +# \boldsymbol{A}\boldsymbol{z} = \boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}_0, +# $$ + +# instead. +# +# One can show that the solution $\boldsymbol{x}$ is also the unique minimizer of the quadratic form + +# $$ +# f(\boldsymbol{x}) = \frac{1}{2}\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x} - \boldsymbol{x}^T \boldsymbol{x} , \quad \boldsymbol{x}\in\mathbf{R}^n. +# $$ + +# This suggests taking the first basis vector $\boldsymbol{p}_1$ +# to be the gradient of $f$ at $\boldsymbol{x}=\boldsymbol{x}_0$, +# which equals + +# $$ +# \boldsymbol{A}\boldsymbol{x}_0-\boldsymbol{b}, +# $$ + +# and +# $\boldsymbol{x}_0=0$ it is equal $-\boldsymbol{b}$. +# The other vectors in the basis will be conjugate to the gradient, +# hence the name conjugate gradient method. +# +# Let $\boldsymbol{r}_k$ be the residual at the $k$-th step: + +# $$ +# \boldsymbol{r}_k=\boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}_k. +# $$ + +# Note that $\boldsymbol{r}_k$ is the negative gradient of $f$ at +# $\boldsymbol{x}=\boldsymbol{x}_k$, +# so the gradient descent method would be to move in the direction $\boldsymbol{r}_k$. +# Here, we insist that the directions $\boldsymbol{p}_k$ are conjugate to each other, +# so we take the direction closest to the gradient $\boldsymbol{r}_k$ +# under the conjugacy constraint. +# This gives the following expression + +# $$ +# \boldsymbol{p}_{k+1}=\boldsymbol{r}_k-\frac{\boldsymbol{p}_k^T \boldsymbol{A}\boldsymbol{r}_k}{\boldsymbol{p}_k^T\boldsymbol{A}\boldsymbol{p}_k} \boldsymbol{p}_k. +# $$ + +# We can also compute the residual iteratively as + +# $$ +# \boldsymbol{r}_{k+1}=\boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}_{k+1}, +# $$ + +# which equals + +# $$ +# \boldsymbol{b}-\boldsymbol{A}(\boldsymbol{x}_k+\alpha_k\boldsymbol{p}_k), +# $$ + +# or + +# $$ +# (\boldsymbol{b}-\boldsymbol{A}\boldsymbol{x}_k)-\alpha_k\boldsymbol{A}\boldsymbol{p}_k, +# $$ + +# which gives + +# $$ +# \boldsymbol{r}_{k+1}=\boldsymbol{r}_k-\boldsymbol{A}\boldsymbol{p}_{k}, +# $$ + +# ## Revisiting our Linear Regression Solvers +# +# We will use linear regression as a case study for the gradient descent +# methods. Linear regression is a great test case for the gradient +# descent methods discussed in the lectures since it has several +# desirable properties such as: +# +# 1. An analytical solution. +# +# 2. The gradient can be computed analytically. +# +# 3. The cost function is convex which guarantees that gradient descent converges for small enough learning rates +# +# We revisit an example similar to what we had in the first homework set. We had a function of the type + +# In[6]: + + +m = 100 +x = 2*np.random.rand(m,1) +y = 4+3*x+np.random.randn(m,1) + + +# with $x_i \in [0,1] $ is chosen randomly using a uniform distribution. Additionally we have a stochastic noise chosen according to a normal distribution $\cal {N}(0,1)$. +# The linear regression model is given by + +# $$ +# h_\beta(x) = \boldsymbol{y} = \beta_0 + \beta_1 x, +# $$ + +# such that + +# $$ +# \boldsymbol{y}_i = \beta_0 + \beta_1 x_i. +# $$ + +# Let $\mathbf{y} = (y_1,\cdots,y_n)^T$, $\mathbf{\boldsymbol{y}} = (\boldsymbol{y}_1,\cdots,\boldsymbol{y}_n)^T$ and $\beta = (\beta_0, \beta_1)^T$ +# +# It is convenient to write $\mathbf{\boldsymbol{y}} = X\beta$ where $X \in \mathbb{R}^{100 \times 2} $ is the design matrix given by (we keep the intercept here) + +# $$ +# X \equiv \begin{bmatrix} +# 1 & x_1 \\ +# \vdots & \vdots \\ +# 1 & x_{100} & \\ +# \end{bmatrix}. +# $$ + +# The cost/loss/risk function is given by ( + +# $$ +# C(\beta) = \frac{1}{n}||X\beta-\mathbf{y}||_{2}^{2} = \frac{1}{n}\sum_{i=1}^{100}\left[ (\beta_0 + \beta_1 x_i)^2 - 2 y_i (\beta_0 + \beta_1 x_i) + y_i^2\right] +# $$ + +# and we want to find $\beta$ such that $C(\beta)$ is minimized. +# +# +# Computing $\partial C(\beta) / \partial \beta_0$ and $\partial C(\beta) / \partial \beta_1$ we can show that the gradient can be written as + +# $$ +# \nabla_{\beta} C(\beta) = \frac{2}{n}\begin{bmatrix} \sum_{i=1}^{100} \left(\beta_0+\beta_1x_i-y_i\right) \\ +# \sum_{i=1}^{100}\left( x_i (\beta_0+\beta_1x_i)-y_ix_i\right) \\ +# \end{bmatrix} = \frac{2}{n}X^T(X\beta - \mathbf{y}), +# $$ + +# where $X$ is the design matrix defined above. +# +# +# The Hessian matrix of $C(\beta)$ is given by + +# $$ +# \boldsymbol{H} \equiv \begin{bmatrix} +# \frac{\partial^2 C(\beta)}{\partial \beta_0^2} & \frac{\partial^2 C(\beta)}{\partial \beta_0 \partial \beta_1} \\ +# \frac{\partial^2 C(\beta)}{\partial \beta_0 \partial \beta_1} & \frac{\partial^2 C(\beta)}{\partial \beta_1^2} & \\ +# \end{bmatrix} = \frac{2}{n}X^T X. +# $$ + +# This result implies that $C(\beta)$ is a convex function since the matrix $X^T X$ always is positive semi-definite. +# +# +# +# We can now write a program that minimizes $C(\beta)$ using the gradient descent method with a constant learning rate $\gamma$ according to + +# $$ +# \beta_{k+1} = \beta_k - \gamma \nabla_\beta C(\beta_k), \ k=0,1,\cdots +# $$ + +# We can use the expression we computed for the gradient and let use a +# $\beta_0$ be chosen randomly and let $\gamma = 0.001$. Stop iterating +# when $||\nabla_\beta C(\beta_k) || \leq \epsilon = 10^{-8}$. **Note that the code below does not include the latter stop criterion**. +# +# And finally we can compare our solution for $\beta$ with the analytic result given by +# $\beta= (X^TX)^{-1} X^T \mathbf{y}$. +# +# +# +# Here is our simple example + +# In[7]: + + + +# Importing various packages +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import sys + +# the number of datapoints +n = 100 +x = 2*np.random.rand(n,1) +y = 4+3*x+np.random.randn(n,1) + +X = np.c_[np.ones((n,1)), x] +# Hessian matrix +H = (2.0/n)* X.T @ X +# Get the eigenvalues +EigValues, EigVectors = np.linalg.eig(H) +print(EigValues) + +beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y +print(beta_linreg) +beta = np.random.randn(2,1) + +eta = 1.0/np.max(EigValues) +Niterations = 1000 + +for iter in range(Niterations): + gradient = (2.0/n)*X.T @ (X @ beta-y) + beta -= eta*gradient + +print(beta) +xnew = np.array([[0],[2]]) +xbnew = np.c_[np.ones((2,1)), xnew] +ypredict = xbnew.dot(beta) +ypredict2 = xbnew.dot(beta_linreg) +plt.plot(xnew, ypredict, "r-") +plt.plot(xnew, ypredict2, "b-") +plt.plot(x, y ,'ro') +plt.axis([0,2.0,0, 15.0]) +plt.xlabel(r'$x$') +plt.ylabel(r'$y$') +plt.title(r'Gradient descent example') +plt.show() + + +# Alternatively, we can use **Scikit-Learn** as done here + +# In[8]: + + +# Importing various packages +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt +from sklearn.linear_model import SGDRegressor + +n = 100 +x = 2*np.random.rand(n,1) +y = 4+3*x+np.random.randn(n,1) + +X = np.c_[np.ones((n,1)), x] +beta_linreg = np.linalg.inv(X.T @ X) @ (X.T @ y) +print(beta_linreg) +sgdreg = SGDRegressor(max_iter = 50, penalty=None, eta0=0.1) +sgdreg.fit(x,y.ravel()) +print(sgdreg.intercept_, sgdreg.coef_) + + +# We have also discussed Ridge regression where the loss function contains a regularized term given by the $L_2$ norm of $\beta$, + +# $$ +# C_{\text{ridge}}(\beta) = \frac{1}{n}||X\beta -\mathbf{y}||^2 + \lambda ||\beta||^2, \ \lambda \geq 0. +# $$ + +# In order to minimize $C_{\text{ridge}}(\beta)$ using GD we only have adjust the gradient as follows + +# $$ +# \nabla_\beta C_{\text{ridge}}(\beta) = \frac{2}{n}\begin{bmatrix} \sum_{i=1}^{100} \left(\beta_0+\beta_1x_i-y_i\right) \\ +# \sum_{i=1}^{100}\left( x_i (\beta_0+\beta_1x_i)-y_ix_i\right) \\ +# \end{bmatrix} + 2\lambda\begin{bmatrix} \beta_0 \\ \beta_1\end{bmatrix} = 2 (X^T(X\beta - \mathbf{y})+\lambda \beta). +# $$ + +# We can easily extend our program to minimize $C_{\text{ridge}}(\beta)$ using gradient descent and compare with the analytical solution given by + +# $$ +# \beta_{\text{ridge}} = \left(X^T X + \lambda I_{2 \times 2} \right)^{-1} X^T \mathbf{y}. +# $$ + +# In[9]: + + +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import sys + +# the number of datapoints +n = 100 +x = 2*np.random.rand(n,1) +y = 4+3*x+np.random.randn(n,1) + +X = np.c_[np.ones((n,1)), x] +XT_X = X.T @ X + +#Ridge parameter lambda +lmbda = 0.001 +Id = lmbda* np.eye(XT_X.shape[0]) + +beta_linreg = np.linalg.inv(XT_X+Id) @ X.T @ y +print(beta_linreg) +# Start plain gradient descent +beta = np.random.randn(2,1) + +eta = 0.1 +Niterations = 100 + +for iter in range(Niterations): + gradients = 2.0/n*X.T @ (X @ (beta)-y)+2*lmbda*beta + beta -= eta*gradients + +print(beta) +ypredict = X @ beta +ypredict2 = X @ beta_linreg +plt.plot(x, ypredict, "r-") +plt.plot(x, ypredict2, "b-") +plt.plot(x, y ,'ro') +plt.axis([0,2.0,0, 15.0]) +plt.xlabel(r'$x$') +plt.ylabel(r'$y$') +plt.title(r'Gradient descent example for Ridge') +plt.show() + + +# ## Using gradient descent methods, limitations +# +# * **Gradient descent (GD) finds local minima of our function**. Since the GD algorithm is deterministic, if it converges, it will converge to a local minimum of our cost/loss/risk function. Because in ML we are often dealing with extremely rugged landscapes with many local minima, this can lead to poor performance. +# +# * **GD is sensitive to initial conditions**. One consequence of the local nature of GD is that initial conditions matter. Depending on where one starts, one will end up at a different local minima. Therefore, it is very important to think about how one initializes the training process. This is true for GD as well as more complicated variants of GD. +# +# * **Gradients are computationally expensive to calculate for large datasets**. In many cases in statistics and ML, the cost/loss/risk function is a sum of terms, with one term for each data point. For example, in linear regression, $E \propto \sum_{i=1}^n (y_i - \mathbf{w}^T\cdot\mathbf{x}_i)^2$; for logistic regression, the square error is replaced by the cross entropy. To calculate the gradient we have to sum over *all* $n$ data points. Doing this at every GD step becomes extremely computationally expensive. An ingenious solution to this, is to calculate the gradients using small subsets of the data called "mini batches". This has the added benefit of introducing stochasticity into our algorithm. +# +# * **GD is very sensitive to choices of learning rates**. GD is extremely sensitive to the choice of learning rates. If the learning rate is very small, the training process take an extremely long time. For larger learning rates, GD can diverge and give poor results. Furthermore, depending on what the local landscape looks like, we have to modify the learning rates to ensure convergence. Ideally, we would *adaptively* choose the learning rates to match the landscape. +# +# * **GD treats all directions in parameter space uniformly.** Another major drawback of GD is that unlike Newton's method, the learning rate for GD is the same in all directions in parameter space. For this reason, the maximum learning rate is set by the behavior of the steepest direction and this can significantly slow down training. Ideally, we would like to take large steps in flat directions and small steps in steep directions. Since we are exploring rugged landscapes where curvatures change, this requires us to keep track of not only the gradient but second derivatives. The ideal scenario would be to calculate the Hessian but this proves to be too computationally expensive. +# +# * GD can take exponential time to escape saddle points, even with random initialization. As we mentioned, GD is extremely sensitive to initial condition since it determines the particular local minimum GD would eventually reach. However, even with a good initialization scheme, through the introduction of randomness, GD can still take exponential time to escape saddle points. +# +# ## Stochastic Gradient Descent +# +# Stochastic gradient descent (SGD) and variants thereof address some of +# the shortcomings of the Gradient descent method discussed above. +# +# The underlying idea of SGD comes from the observation that the cost +# function, which we want to minimize, can almost always be written as a +# sum over $n$ data points $\{\mathbf{x}_i\}_{i=1}^n$, + +# $$ +# C(\mathbf{\beta}) = \sum_{i=1}^n c_i(\mathbf{x}_i, +# \mathbf{\beta}). +# $$ + +# This in turn means that the gradient can be +# computed as a sum over $i$-gradients + +# $$ +# \nabla_\beta C(\mathbf{\beta}) = \sum_i^n \nabla_\beta c_i(\mathbf{x}_i, +# \mathbf{\beta}). +# $$ + +# Stochasticity/randomness is introduced by only taking the +# gradient on a subset of the data called minibatches. If there are $n$ +# data points and the size of each minibatch is $M$, there will be $n/M$ +# minibatches. We denote these minibatches by $B_k$ where +# $k=1,\cdots,n/M$. +# +# +# +# As an example, suppose we have $10$ data points $(\mathbf{x}_1,\cdots, \mathbf{x}_{10})$ +# and we choose to have $M=5$ minibathces, +# then each minibatch contains two data points. In particular we have +# $B_1 = (\mathbf{x}_1,\mathbf{x}_2), \cdots, B_5 = +# (\mathbf{x}_9,\mathbf{x}_{10})$. Note that if you choose $M=1$ you +# have only a single batch with all data points and on the other extreme, +# you may choose $M=n$ resulting in a minibatch for each datapoint, i.e +# $B_k = \mathbf{x}_k$. +# +# The idea is now to approximate the gradient by replacing the sum over +# all data points with a sum over the data points in one the minibatches +# picked at random in each gradient descent step + +# $$ +# \nabla_{\beta} +# C(\mathbf{\beta}) = \sum_{i=1}^n \nabla_\beta c_i(\mathbf{x}_i, +# \mathbf{\beta}) \rightarrow \sum_{i \in B_k}^n \nabla_\beta +# c_i(\mathbf{x}_i, \mathbf{\beta}). +# $$ + +# Thus a gradient descent step now looks like + +# $$ +# \beta_{j+1} = \beta_j - \gamma_j \sum_{i \in B_k}^n \nabla_\beta c_i(\mathbf{x}_i, +# \mathbf{\beta}) +# $$ + +# where $k$ is picked at random with equal +# probability from $[1,n/M]$. An iteration over the number of +# minibathces (n/M) is commonly referred to as an epoch. Thus it is +# typical to choose a number of epochs and for each epoch iterate over +# the number of minibatches, as exemplified in the code below. + +# In[10]: + + +import numpy as np + +n = 100 #100 datapoints +M = 5 #size of each minibatch +m = int(n/M) #number of minibatches +n_epochs = 10 #number of epochs + +j = 0 +for epoch in range(1,n_epochs+1): + for i in range(m): + k = np.random.randint(m) #Pick the k-th minibatch at random + #Compute the gradient using the data in minibatch Bk + #Compute new suggestion for + j += 1 + + +# Taking the gradient only on a subset of the data has two important +# benefits. First, it introduces randomness which decreases the chance +# that our opmization scheme gets stuck in a local minima. Second, if +# the size of the minibatches are small relative to the number of +# datapoints ($M < n$), the computation of the gradient is much +# cheaper since we sum over the datapoints in the $k-th$ minibatch and not +# all $n$ datapoints. +# +# +# +# A natural question is when do we stop the search for a new minimum? +# One possibility is to compute the full gradient after a given number +# of epochs and check if the norm of the gradient is smaller than some +# threshold and stop if true. However, the condition that the gradient +# is zero is valid also for local minima, so this would only tell us +# that we are close to a local/global minimum. However, we could also +# evaluate the cost function at this point, store the result and +# continue the search. If the test kicks in at a later stage we can +# compare the values of the cost function and keep the $\beta$ that +# gave the lowest value. +# +# +# +# Another approach is to let the step length $\gamma_j$ depend on the +# number of epochs in such a way that it becomes very small after a +# reasonable time such that we do not move at all. +# +# As an example, let $e = 0,1,2,3,\cdots$ denote the current epoch and let $t_0, t_1 > 0$ be two fixed numbers. Furthermore, let $t = e \cdot m + i$ where $m$ is the number of minibatches and $i=0,\cdots,m-1$. Then the function $$\gamma_j(t; t_0, t_1) = \frac{t_0}{t+t_1} $$ goes to zero as the number of epochs gets large. I.e. we start with a step length $\gamma_j (0; t_0, t_1) = t_0/t_1$ which decays in *time* $t$. +# +# In this way we can fix the number of epochs, compute $\beta$ and +# evaluate the cost function at the end. Repeating the computation will +# give a different result since the scheme is random by design. Then we +# pick the final $\beta$ that gives the lowest value of the cost +# function. + +# In[11]: + + +import numpy as np + +def step_length(t,t0,t1): + return t0/(t+t1) + +n = 100 #100 datapoints +M = 5 #size of each minibatch +m = int(n/M) #number of minibatches +n_epochs = 500 #number of epochs +t0 = 1.0 +t1 = 10 + +gamma_j = t0/t1 +j = 0 +for epoch in range(1,n_epochs+1): + for i in range(m): + k = np.random.randint(m) #Pick the k-th minibatch at random + #Compute the gradient using the data in minibatch Bk + #Compute new suggestion for beta + t = epoch*m+i + gamma_j = step_length(t,t0,t1) + j += 1 + +print("gamma_j after %d epochs: %g" % (n_epochs,gamma_j)) + + +# ### Program for stochastic gradient + +# In[12]: + + +# Importing various packages +from math import exp, sqrt +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt +from sklearn.linear_model import SGDRegressor + +m = 100 +x = 2*np.random.rand(m,1) +y = 4+3*x+np.random.randn(m,1) + +X = np.c_[np.ones((m,1)), x] +theta_linreg = np.linalg.inv(X.T @ X) @ (X.T @ y) +print("Own inversion") +print(theta_linreg) +sgdreg = SGDRegressor(max_iter = 50, penalty=None, eta0=0.1) +sgdreg.fit(x,y.ravel()) +print("sgdreg from scikit") +print(sgdreg.intercept_, sgdreg.coef_) + + +theta = np.random.randn(2,1) +eta = 0.1 +Niterations = 1000 + + +for iter in range(Niterations): + gradients = 2.0/m*X.T @ ((X @ theta)-y) + theta -= eta*gradients +print("theta from own gd") +print(theta) + +xnew = np.array([[0],[2]]) +Xnew = np.c_[np.ones((2,1)), xnew] +ypredict = Xnew.dot(theta) +ypredict2 = Xnew.dot(theta_linreg) + + +n_epochs = 50 +t0, t1 = 5, 50 +def learning_schedule(t): + return t0/(t+t1) + +theta = np.random.randn(2,1) + +for epoch in range(n_epochs): + for i in range(m): + random_index = np.random.randint(m) + xi = X[random_index:random_index+1] + yi = y[random_index:random_index+1] + gradients = 2 * xi.T @ ((xi @ theta)-yi) + eta = learning_schedule(epoch*m+i) + theta = theta - eta*gradients +print("theta from own sdg") +print(theta) + +plt.plot(xnew, ypredict, "r-") +plt.plot(xnew, ypredict2, "b-") +plt.plot(x, y ,'ro') +plt.axis([0,2.0,0, 15.0]) +plt.xlabel(r'$x$') +plt.ylabel(r'$y$') +plt.title(r'Random numbers ') +plt.show() + + +# ## Momentum based GD +# +# The stochastic gradient descent (SGD) is almost always used with a +# *momentum* or inertia term that serves as a memory of the direction we +# are moving in parameter space. This is typically implemented as +# follows + +# $$ +# \mathbf{v}_{t}=\gamma \mathbf{v}_{t-1}+\eta_{t}\nabla_\theta E(\boldsymbol{\theta}_t) \nonumber +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{\theta}_{t+1}= \boldsymbol{\theta}_t -\mathbf{v}_{t}, +# \label{_auto1} \tag{2} +# \end{equation} +# $$ + +# where we have introduced a momentum parameter $\gamma$, with +# $0\le\gamma\le 1$, and for brevity we dropped the explicit notation to +# indicate the gradient is to be taken over a different mini-batch at +# each step. We call this algorithm gradient descent with momentum +# (GDM). From these equations, it is clear that $\mathbf{v}_t$ is a +# running average of recently encountered gradients and +# $(1-\gamma)^{-1}$ sets the characteristic time scale for the memory +# used in the averaging procedure. Consistent with this, when +# $\gamma=0$, this just reduces down to ordinary SGD as discussed +# earlier. An equivalent way of writing the updates is + +# $$ +# \Delta \boldsymbol{\theta}_{t+1} = \gamma \Delta \boldsymbol{\theta}_t -\ \eta_{t}\nabla_\theta E(\boldsymbol{\theta}_t), +# $$ + +# where we have defined $\Delta \boldsymbol{\theta}_{t}= \boldsymbol{\theta}_t-\boldsymbol{\theta}_{t-1}$. +# +# +# +# Let us try to get more intuition from these equations. It is helpful +# to consider a simple physical analogy with a particle of mass $m$ +# moving in a viscous medium with drag coefficient $\mu$ and potential +# $E(\mathbf{w})$. If we denote the particle's position by $\mathbf{w}$, +# then its motion is described by + +# $$ +# m {d^2 \mathbf{w} \over dt^2} + \mu {d \mathbf{w} \over dt }= -\nabla_w E(\mathbf{w}). +# $$ + +# We can discretize this equation in the usual way to get + +# $$ +# m { \mathbf{w}_{t+\Delta t}-2 \mathbf{w}_{t} +\mathbf{w}_{t-\Delta t} \over (\Delta t)^2}+\mu {\mathbf{w}_{t+\Delta t}- \mathbf{w}_{t} \over \Delta t} = -\nabla_w E(\mathbf{w}). +# $$ + +# Rearranging this equation, we can rewrite this as + +# $$ +# \Delta \mathbf{w}_{t +\Delta t}= - { (\Delta t)^2 \over m +\mu \Delta t} \nabla_w E(\mathbf{w})+ {m \over m +\mu \Delta t} \Delta \mathbf{w}_t. +# $$ + +# Notice that this equation is identical to previous one if we identify +# the position of the particle, $\mathbf{w}$, with the parameters +# $\boldsymbol{\theta}$. This allows us to identify the momentum +# parameter and learning rate with the mass of the particle and the +# viscous drag as: + +# $$ +# \gamma= {m \over m +\mu \Delta t }, \qquad \eta = {(\Delta t)^2 \over m +\mu \Delta t}. +# $$ + +# Thus, as the name suggests, the momentum parameter is proportional to +# the mass of the particle and effectively provides inertia. +# Furthermore, in the large viscosity/small learning rate limit, our +# memory time scales as $(1-\gamma)^{-1} \approx m/(\mu \Delta t)$. +# +# Why is momentum useful? SGD momentum helps the gradient descent +# algorithm gain speed in directions with persistent but small gradients +# even in the presence of stochasticity, while suppressing oscillations +# in high-curvature directions. This becomes especially important in +# situations where the landscape is shallow and flat in some directions +# and narrow and steep in others. It has been argued that first-order +# methods (with appropriate initial conditions) can perform comparable +# to more expensive second order methods, especially in the context of +# complex deep learning models. +# +# These beneficial properties of momentum can sometimes become even more +# pronounced by using a slight modification of the classical momentum +# algorithm called Nesterov Accelerated Gradient (NAG). +# +# In the NAG algorithm, rather than calculating the gradient at the +# current parameters, $\nabla_\theta E(\boldsymbol{\theta}_t)$, one +# calculates the gradient at the expected value of the parameters given +# our current momentum, $\nabla_\theta E(\boldsymbol{\theta}_t +\gamma +# \mathbf{v}_{t-1})$. This yields the NAG update rule + +# $$ +# \mathbf{v}_{t}=\gamma \mathbf{v}_{t-1}+\eta_{t}\nabla_\theta E(\boldsymbol{\theta}_t +\gamma \mathbf{v}_{t-1}) \nonumber +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# \boldsymbol{\theta}_{t+1}= \boldsymbol{\theta}_t -\mathbf{v}_{t}. +# \label{_auto2} \tag{3} +# \end{equation} +# $$ + +# One of the major advantages of NAG is that it allows for the use of a larger learning rate than GDM for the same choice of $\gamma$. +# +# +# +# In stochastic gradient descent, with and without momentum, we still +# have to specify a schedule for tuning the learning rates $\eta_t$ +# as a function of time. As discussed in the context of Newton's +# method, this presents a number of dilemmas. The learning rate is +# limited by the steepest direction which can change depending on the +# current position in the landscape. To circumvent this problem, ideally +# our algorithm would keep track of curvature and take large steps in +# shallow, flat directions and small steps in steep, narrow directions. +# Second-order methods accomplish this by calculating or approximating +# the Hessian and normalizing the learning rate by the +# curvature. However, this is very computationally expensive for +# extremely large models. Ideally, we would like to be able to +# adaptively change the step size to match the landscape without paying +# the steep computational price of calculating or approximating +# Hessians. +# +# Recently, a number of methods have been introduced that accomplish +# this by tracking not only the gradient, but also the second moment of +# the gradient. These methods include AdaGrad, AdaDelta, RMS-Prop, and +# ADAM. +# +# +# ### RMS prop +# +# In RMS prop, in addition to keeping a running average of the first +# moment of the gradient, we also keep track of the second moment +# denoted by $\mathbf{s}_t=\mathbb{E}[\mathbf{g}_t^2]$. The update rule +# for RMS prop is given by + +# +#
    +# +# $$ +# \begin{equation} +# \mathbf{g}_t = \nabla_\theta E(\boldsymbol{\theta}) +# \label{_auto3} \tag{4} +# \end{equation} +# $$ + +# $$ +# \mathbf{s}_t =\beta \mathbf{s}_{t-1} +(1-\beta)\mathbf{g}_t^2 \nonumber +# $$ + +# $$ +# \boldsymbol{\theta}_{t+1}=\boldsymbol{\theta}_t - \eta_t { \mathbf{g}_t \over \sqrt{\mathbf{s}_t +\epsilon}}, \nonumber +# $$ + +# where $\beta$ controls the averaging time of the second moment and is +# typically taken to be about $\beta=0.9$, $\eta_t$ is a learning rate +# typically chosen to be $10^{-3}$, and $\epsilon\sim 10^{-8} $ is a +# small regularization constant to prevent divergences. Multiplication +# and division by vectors is understood as an element-wise operation. It +# is clear from this formula that the learning rate is reduced in +# directions where the norm of the gradient is consistently large. This +# greatly speeds up the convergence by allowing us to use a larger +# learning rate for flat directions. +# +# ### ADAM optimizer +# +# A related algorithm is the ADAM optimizer. In ADAM, we keep a running +# average of both the first and second moment of the gradient and use +# this information to adaptively change the learning rate for different +# parameters. In addition to keeping a running average of the first and +# second moments of the gradient +# (i.e. $\mathbf{m}_t=\mathbb{E}[\mathbf{g}_t]$ and +# $\mathbf{s}_t=\mathbb{E}[\mathbf{g}^2_t]$, respectively), ADAM +# performs an additional bias correction to account for the fact that we +# are estimating the first two moments of the gradient using a running +# average (denoted by the hats in the update rule below). The update +# rule for ADAM is given by (where multiplication and division are once +# again understood to be element-wise operations below) + +# +#
    +# +# $$ +# \begin{equation} +# \mathbf{g}_t = \nabla_\theta E(\boldsymbol{\theta}) +# \label{_auto4} \tag{5} +# \end{equation} +# $$ + +# $$ +# \mathbf{m}_t = \beta_1 \mathbf{m}_{t-1} + (1-\beta_1) \mathbf{g}_t \nonumber +# $$ + +# $$ +# \mathbf{s}_t =\beta_2 \mathbf{s}_{t-1} +(1-\beta_2)\mathbf{g}_t^2 \nonumber +# $$ + +# $$ +# \boldsymbol{\mathbf{m}}_t={\mathbf{m}_t \over 1-\beta_1^t} \nonumber +# $$ + +# $$ +# \boldsymbol{\mathbf{s}}_t ={\mathbf{s}_t \over1-\beta_2^t} \nonumber +# $$ + +# $$ +# \boldsymbol{\theta}_{t+1}=\boldsymbol{\theta}_t - \eta_t { \boldsymbol{\mathbf{m}}_t \over \sqrt{\boldsymbol{\mathbf{s}}_t} +\epsilon}, \nonumber +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# \label{_auto5} \tag{6} +# \end{equation} +# $$ + +# where $\beta_1$ and $\beta_2$ set the memory lifetime of the first and +# second moment and are typically taken to be $0.9$ and $0.99$ +# respectively, and $\eta$ and $\epsilon$ are identical to RMSprop. +# +# Like in RMSprop, the effective step size of a parameter depends on the +# magnitude of its gradient squared. To understand this better, let us +# rewrite this expression in terms of the variance +# $\boldsymbol{\sigma}_t^2 = \boldsymbol{\mathbf{s}}_t - +# (\boldsymbol{\mathbf{m}}_t)^2$. Consider a single parameter $\theta_t$. The +# update rule for this parameter is given by + +# $$ +# \Delta \theta_{t+1}= -\eta_t { \boldsymbol{m}_t \over \sqrt{\sigma_t^2 + m_t^2 }+\epsilon}. +# $$ + +# ## Practical tips +# +# * **Randomize the data when making mini-batches**. It is always important to randomly shuffle the data when forming mini-batches. Otherwise, the gradient descent method can fit spurious correlations resulting from the order in which data is presented. +# +# * **Transform your inputs**. Learning becomes difficult when our landscape has a mixture of steep and flat directions. One simple trick for minimizing these situations is to standardize the data by subtracting the mean and normalizing the variance of input variables. Whenever possible, also decorrelate the inputs. To understand why this is helpful, consider the case of linear regression. It is easy to show that for the squared error cost function, the Hessian of the cost function is just the correlation matrix between the inputs. Thus, by standardizing the inputs, we are ensuring that the landscape looks homogeneous in all directions in parameter space. Since most deep networks can be viewed as linear transformations followed by a non-linearity at each layer, we expect this intuition to hold beyond the linear case. +# +# * **Monitor the out-of-sample performance.** Always monitor the performance of your model on a validation set (a small portion of the training data that is held out of the training process to serve as a proxy for the test set. If the validation error starts increasing, then the model is beginning to overfit. Terminate the learning process. This *early stopping* significantly improves performance in many settings. +# +# * **Adaptive optimization methods don't always have good generalization.** Recent studies have shown that adaptive methods such as ADAM, RMSPorp, and AdaGrad tend to have poor generalization compared to SGD or SGD with momentum, particularly in the high-dimensional limit (i.e. the number of parameters exceeds the number of data points). Although it is not clear at this stage why these methods perform so well in training deep neural networks, simpler procedures like properly-tuned SGD may work as well or better in these applications. +# +# ## Automatic differentiation +# +# [Automatic differentiation (AD)](https://en.wikipedia.org/wiki/Automatic_differentiation), +# also called algorithmic +# differentiation or computational differentiation,is a set of +# techniques to numerically evaluate the derivative of a function +# specified by a computer program. AD exploits the fact that every +# computer program, no matter how complicated, executes a sequence of +# elementary arithmetic operations (addition, subtraction, +# multiplication, division, etc.) and elementary functions (exp, log, +# sin, cos, etc.). By applying the chain rule repeatedly to these +# operations, derivatives of arbitrary order can be computed +# automatically, accurately to working precision, and using at most a +# small constant factor more arithmetic operations than the original +# program. +# +# Automatic differentiation is neither: +# +# * Symbolic differentiation, nor +# +# * Numerical differentiation (the method of finite differences). +# +# Symbolic differentiation can lead to inefficient code and faces the +# difficulty of converting a computer program into a single expression, +# while numerical differentiation can introduce round-off errors in the +# discretization process and cancellation +# +# +# +# Python has tools for so-called **automatic differentiation**. +# Consider the following example + +# $$ +# f(x) = \sin\left(2\pi x + x^2\right) +# $$ + +# which has the following derivative + +# $$ +# f'(x) = \cos\left(2\pi x + x^2\right)\left(2\pi + 2x\right) +# $$ + +# Using **autograd** we have + +# In[13]: + + +import autograd.numpy as np + +# To do elementwise differentiation: +from autograd import elementwise_grad as egrad + +# To plot: +import matplotlib.pyplot as plt + + +def f(x): + return np.sin(2*np.pi*x + x**2) + +def f_grad_analytic(x): + return np.cos(2*np.pi*x + x**2)*(2*np.pi + 2*x) + +# Do the comparison: +x = np.linspace(0,1,1000) + +f_grad = egrad(f) + +computed = f_grad(x) +analytic = f_grad_analytic(x) + +plt.title('Derivative computed from Autograd compared with the analytical derivative') +plt.plot(x,computed,label='autograd') +plt.plot(x,analytic,label='analytic') + +plt.xlabel('x') +plt.ylabel('y') +plt.legend() + +plt.show() + +print("The max absolute difference is: %g"%(np.max(np.abs(computed - analytic)))) + + +# Here we +# experiment with what kind of functions Autograd is capable +# of finding the gradient of. The following Python functions are just +# meant to illustrate what Autograd can do, but please feel free to +# experiment with other, possibly more complicated, functions as well. + +# In[14]: + + +import autograd.numpy as np +from autograd import grad + +def f1(x): + return x**3 + 1 + +f1_grad = grad(f1) + +# Remember to send in float as argument to the computed gradient from Autograd! +a = 1.0 + +# See the evaluated gradient at a using autograd: +print("The gradient of f1 evaluated at a = %g using autograd is: %g"%(a,f1_grad(a))) + +# Compare with the analytical derivative, that is f1'(x) = 3*x**2 +grad_analytical = 3*a**2 +print("The gradient of f1 evaluated at a = %g by finding the analytic expression is: %g"%(a,grad_analytical)) + + +# To differentiate with respect to two (or more) arguments of a Python +# function, Autograd need to know at which variable the function if +# being differentiated with respect to. + +# In[15]: + + +import autograd.numpy as np +from autograd import grad +def f2(x1,x2): + return 3*x1**3 + x2*(x1 - 5) + 1 + +# By sending the argument 0, Autograd will compute the derivative w.r.t the first variable, in this case x1 +f2_grad_x1 = grad(f2,0) + +# ... and differentiate w.r.t x2 by sending 1 as an additional arugment to grad +f2_grad_x2 = grad(f2,1) + +x1 = 1.0 +x2 = 3.0 + +print("Evaluating at x1 = %g, x2 = %g"%(x1,x2)) +print("-"*30) + +# Compare with the analytical derivatives: + +# Derivative of f2 w.r.t x1 is: 9*x1**2 + x2: +f2_grad_x1_analytical = 9*x1**2 + x2 + +# Derivative of f2 w.r.t x2 is: x1 - 5: +f2_grad_x2_analytical = x1 - 5 + +# See the evaluated derivations: +print("The derivative of f2 w.r.t x1: %g"%( f2_grad_x1(x1,x2) )) +print("The analytical derivative of f2 w.r.t x1: %g"%( f2_grad_x1(x1,x2) )) + +print() + +print("The derivative of f2 w.r.t x2: %g"%( f2_grad_x2(x1,x2) )) +print("The analytical derivative of f2 w.r.t x2: %g"%( f2_grad_x2(x1,x2) )) + + +# Note that the grad function will not produce the true gradient of the function. The true gradient of a function with two or more variables will produce a vector, where each element is the function differentiated w.r.t a variable. + +# In[16]: + + +import autograd.numpy as np +from autograd import grad +def f3(x): # Assumes x is an array of length 5 or higher + return 2*x[0] + 3*x[1] + 5*x[2] + 7*x[3] + 11*x[4]**2 + +f3_grad = grad(f3) + +x = np.linspace(0,4,5) + +# Print the computed gradient: +print("The computed gradient of f3 is: ", f3_grad(x)) + +# The analytical gradient is: (2, 3, 5, 7, 22*x[4]) +f3_grad_analytical = np.array([2, 3, 5, 7, 22*x[4]]) + +# Print the analytical gradient: +print("The analytical gradient of f3 is: ", f3_grad_analytical) + + +# Note that in this case, when sending an array as input argument, the +# output from Autograd is another array. This is the true gradient of +# the function, as opposed to the function in the previous example. By +# using arrays to represent the variables, the output from Autograd +# might be easier to work with, as the output is closer to what one +# could expect form a gradient-evaluting function. + +# In[17]: + + +import autograd.numpy as np +from autograd import grad +def f4(x): + return np.sqrt(1+x**2) + np.exp(x) + np.sin(2*np.pi*x) + +f4_grad = grad(f4) + +x = 2.7 + +# Print the computed derivative: +print("The computed derivative of f4 at x = %g is: %g"%(x,f4_grad(x))) + +# The analytical derivative is: x/sqrt(1 + x**2) + exp(x) + cos(2*pi*x)*2*pi +f4_grad_analytical = x/np.sqrt(1 + x**2) + np.exp(x) + np.cos(2*np.pi*x)*2*np.pi + +# Print the analytical gradient: +print("The analytical gradient of f4 at x = %g is: %g"%(x,f4_grad_analytical)) + + +# In[18]: + + +import autograd.numpy as np +from autograd import grad +def f5(x): + if x >= 0: + return x**2 + else: + return -3*x + 1 + +f5_grad = grad(f5) + +x = 2.7 + +# Print the computed derivative: +print("The computed derivative of f5 at x = %g is: %g"%(x,f5_grad(x))) + + +# 1 +# 8 +# +# < +# < +# < +# ! +# ! +# C +# O +# D +# E +# _ +# B +# L +# O +# C +# K +# +# +# p +# y +# c +# o +# d + +# In[19]: + + +import autograd.numpy as np +from autograd import grad +# Both of the functions are implementation of the sum: sum(x**i) for i = 0, ..., 9 +# The analytical derivative is: sum(i*x**(i-1)) +f6_grad_analytical = 0 +for i in range(10): + f6_grad_analytical += i*x**(i-1) + +print("The analytical derivative of f6 at x = %g is: %g"%(x,f6_grad_analytical)) + + +# In[20]: + + +import autograd.numpy as np +from autograd import grad + +def f7(n): # Assume that n is an integer + if n == 1 or n == 0: + return 1 + else: + return n*f7(n-1) + +f7_grad = grad(f7) + +n = 2.0 + +print("The computed derivative of f7 at n = %d is: %g"%(n,f7_grad(n))) + +# The function f7 is an implementation of the factorial of n. +# By using the product rule, one can find that the derivative is: + +f7_grad_analytical = 0 +for i in range(int(n)-1): + tmp = 1 + for k in range(int(n)-1): + if k != i: + tmp *= (n - k) + f7_grad_analytical += tmp + +print("The analytical derivative of f7 at n = %d is: %g"%(n,f7_grad_analytical)) + + +# Note that if n is equal to zero or one, Autograd will give an error message. This message appears when the output is independent on input. +# +# +# Autograd supports many features. However, there are some functions that are not supported (yet) by Autograd. +# +# Assigning a value to the variable being differentiated with respect to is an example thereof. + +# In[21]: + + +#import autograd.numpy as np +#from autograd import grad +#def f8(x): # Assume x is an array +# x[2] = 3 +# return x*2 + +#f8_grad = grad(f8) + +#x = 8.4 + +#print("The derivative of f8 is:",f8_grad(x)) + + +# Here, Autograd tells us that an 'ArrayBox' does not support item assignment. The item assignment is done when the program tries to assign x[2] to the value 3. However, Autograd has implemented the computation of the derivative such that this assignment is not possible. + +# In[22]: + + +import autograd.numpy as np +from autograd import grad +def f9(a): # Assume a is an array with 2 elements + b = np.array([1.0,2.0]) + return a.dot(b) + +f9_grad = grad(f9) + +x = np.array([1.0,0.0]) + +print("The derivative of f9 is:",f9_grad(x)) + + +# Here we are told that the 'dot' function does not belong to Autograd's +# version of a Numpy array. To overcome this, an alternative syntax +# which also computed the dot product can be used: + +# In[ ]: + + +import autograd.numpy as np +from autograd import grad +def f9_alternative(x): # Assume a is an array with 2 elements + b = np.array([1.0,2.0]) + return np.dot(x,b) # The same as x_1*b_1 + x_2*b_2 + +f9_alternative_grad = grad(f9_alternative) + +x = np.array([3.0,0.0]) + +print("The gradient of f9 is:",f9_alternative_grad(x)) + +# The analytical gradient of the dot product of vectors x and b with two elements (x_1,x_2) and (b_1, b_2) respectively +# w.r.t x is (b_1, b_2). + + +# The documentation recommends to avoid inplace operations such as + +# In[ ]: + + +a += b +a -= b +a*= b +a /=b + + +# More examples will be added, in particular how to compare autograd with own codes for the gradients. diff --git a/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_118_2.png b/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_118_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fe5ec5ba5754193b16ac2e0b11b57c119dbda927 GIT binary patch literal 11731 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 m)#w-V-_J#8}^! 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 Lf@GQaXTSdk9a)P_ literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_58_0.png b/doc/LectureNotes/_build/jupyter_execute/chapteroptimization_58_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b1441ecf45660ca6870991f6ba7d6442d68619ff GIT binary patch literal 27781 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�=3&U(i$FS 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/linalg.ipynb b/doc/LectureNotes/_build/jupyter_execute/linalg.ipynb new file mode 100644 index 000000000..a581feb6f --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/linalg.ipynb @@ -0,0 +1,1557 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Linear Algebra, Handling of Arrays and more Python Features\n", + "\n", + "## Introduction\n", + "\n", + "The aim of this set of lectures is to review some central linear algebra algorithms that we will need in our \n", + "data analysis part and in the construction of Machine Learning algorithms (ML). \n", + "This will allow us to introduce some central programming features of high-level languages like Python and \n", + "compiled languages like C++ and/or Fortran. \n", + "\n", + "As discussed in the introductory notes, these series of lectures focuses both on using\n", + "central Python packages like **tensorflow** and **scikit-learn** as well\n", + "as writing your own codes for some central ML algorithms. The\n", + "latter can be written in a language of your choice, be it Python, Julia, R,\n", + "Rust, C++, Fortran etc. In order to avoid confusion however, in these lectures we will limit our\n", + "attention to Python, C++ and Fortran. \n", + "\n", + "\n", + "## Important Matrix and vector handling packages\n", + "\n", + "There are several central software packages for linear algebra and eigenvalue problems. Several of the more\n", + "popular ones have been wrapped into ofter software packages like those from the widely used text **Numerical Recipes**. The original source codes in many of the available packages are often taken from the widely used\n", + "software package LAPACK, which follows two other popular packages\n", + "developed in the 1970s, namely EISPACK and LINPACK. We describe them shortly here.\n", + "\n", + " * LINPACK: package for linear equations and least square problems.\n", + "\n", + " * LAPACK:package for solving symmetric, unsymmetric and generalized eigenvalue problems. From LAPACK's website it is possible to download for free all source codes from this library. Both C/C++ and Fortran versions are available.\n", + "\n", + " * BLAS (I, II and III): (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. Blas I is vector operations, II vector-matrix operations and III matrix-matrix operations. Highly parallelized and efficient codes, all available for download from .\n", + "\n", + "When dealing with matrices and vectors a central issue is memory\n", + "handling and allocation. If our code is written in Python the way we\n", + "declare these objects and the way they are handled, interpreted and\n", + "used by say a linear algebra library, requires codes that interface\n", + "our Python program with such libraries. For Python programmers,\n", + "**Numpy** is by now the standard Python package for numerical arrays in\n", + "Python as well as the source of functions which act on these\n", + "arrays. These functions span from eigenvalue solvers to functions that\n", + "compute the mean value, variance or the covariance matrix. If you are\n", + "not familiar with how arrays are handled in say Python or compiled\n", + "languages like C++ and Fortran, the sections in this chapter may be\n", + "useful. For C++ programmer, **Armadillo** is widely used library for\n", + "linear algebra and eigenvalue problems. In addition it offers a\n", + "convenient way to handle and organize arrays. We discuss this library\n", + "as well. Before we proceed we believe it may be convenient to repeat some basic features of \n", + " matrices and vectors.\n", + "\n", + "\n", + "## Basic Matrix Features\n", + "\n", + "Matrix properties reminder" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{A} =\n", + " \\begin{bmatrix} a_{11} & a_{12} & a_{13} & a_{14} \\\\\n", + " a_{21} & a_{22} & a_{23} & a_{24} \\\\\n", + " a_{31} & a_{32} & a_{33} & a_{34} \\\\\n", + " a_{41} & a_{42} & a_{43} & a_{44}\n", + " \\end{bmatrix}\\qquad\n", + "\\mathbf{I} =\n", + " \\begin{bmatrix} 1 & 0 & 0 & 0 \\\\\n", + " 0 & 1 & 0 & 0 \\\\\n", + " 0 & 0 & 1 & 0 \\\\\n", + " 0 & 0 & 0 & 1\n", + " \\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The inverse of a matrix is defined by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{A}^{-1} \\cdot \\mathbf{A} = I\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    Relations Name matrix elements
    $A = A^{T}$ symmetric $a_{ij} = a_{ji}$
    $A = \\left (A^{T} \\right )^{-1}$ real orthogonal $\\sum_k a_{ik} a_{jk} = \\sum_k a_{ki} a_{kj} = \\delta_{ij}$
    $A = A^{ * }$ real matrix $a_{ij} = a_{ij}^{ * }$
    $A = A^{\\dagger}$ hermitian $a_{ij} = a_{ji}^{ * }$
    $A = \\left (A^{\\dagger} \\right )^{-1}$ unitary $\\sum_k a_{ik} a_{jk}^{ * } = \\sum_k a_{ki}^{ * } a_{kj} = \\delta_{ij}$
    \n", + "### Some famous Matrices\n", + "\n", + " * Diagonal if $a_{ij}=0$ for $i\\ne j$\n", + "\n", + " * Upper triangular if $a_{ij}=0$ for $i > j$\n", + "\n", + " * Lower triangular if $a_{ij}=0$ for $i < j$\n", + "\n", + " * Upper Hessenberg if $a_{ij}=0$ for $i > j+1$\n", + "\n", + " * Lower Hessenberg if $a_{ij}=0$ for $i < j+1$\n", + "\n", + " * Tridiagonal if $a_{ij}=0$ for $|i -j| > 1$\n", + "\n", + " * Lower banded with bandwidth $p$: $a_{ij}=0$ for $i > j+p$\n", + "\n", + " * Upper banded with bandwidth $p$: $a_{ij}=0$ for $i < j+p$\n", + "\n", + " * Banded, block upper triangular, block lower triangular....\n", + "\n", + "Some Equivalent Statements. For an $N\\times N$ matrix $\\mathbf{A}$ the following properties are all equivalent\n", + "\n", + " * If the inverse of $\\mathbf{A}$ exists, $\\mathbf{A}$ is nonsingular.\n", + "\n", + " * The equation $\\mathbf{Ax}=0$ implies $\\mathbf{x}=0$.\n", + "\n", + " * The rows of $\\mathbf{A}$ form a basis of $R^N$.\n", + "\n", + " * The columns of $\\mathbf{A}$ form a basis of $R^N$.\n", + "\n", + " * $\\mathbf{A}$ is a product of elementary matrices.\n", + "\n", + " * $0$ is not eigenvalue of $\\mathbf{A}$.\n", + "\n", + "## Numpy and arrays\n", + "[Numpy](http://www.numpy.org/) provides an easy way to handle arrays in Python. The standard way to import this library is as" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-0.92284111 -0.27350656 0.31342027 0.30853164 1.12784756 0.45531478\n", + " -0.70488878 -1.07470608 -1.59514533 -1.01260678]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "n = 10\n", + "x = np.random.normal(size=n)\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we have defined a vector $x$ with $n=10$ elements with its values given by the Normal distribution $N(0,1)$.\n", + "Another alternative is to declare a vector as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 2 3]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "x = np.array([1, 2, 3])\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we have defined a vector with three elements, with $x_0=1$, $x_1=2$ and $x_2=3$. Note that both Python and C++\n", + "start numbering array elements from $0$ and on. This means that a vector with $n$ elements has a sequence of entities $x_0, x_1, x_2, \\dots, x_{n-1}$. We could also let (recommended) Numpy to compute the logarithms of a specific array as" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1.38629436 1.94591015 2.07944154]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "x = np.log(np.array([4, 7, 8]))\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we have used Numpy's unary function $np.log$. This function is\n", + "highly tuned to compute array elements since the code is vectorized\n", + "and does not require looping. We normaly recommend that you use the\n", + "Numpy intrinsic functions instead of the corresponding **log** function\n", + "from Python's **math** module. The looping is done explicitely by the\n", + "**np.log** function. The alternative, and slower way to compute the\n", + "logarithms of a vector would be to write" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 1 2]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from math import log\n", + "x = np.array([4, 7, 8])\n", + "for i in range(0, len(x)):\n", + " x[i] = log(x[i])\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We note that our code is much longer already and we need to import the **log** function from the **math** module. \n", + "The attentive reader will also notice that the output is $[1, 1, 2]$. Python interprets automacally our numbers as integers (like the **automatic** keyword in C++). To change this we could define our array elements to be double precision numbers as" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1.38629436 1.94591015 2.07944154]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "x = np.log(np.array([4, 7, 8], dtype = np.float64))\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or simply write them as double precision numbers (Python uses 64 bits as default for floating point type variables), that is" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (2775623201.py, line 3)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41413/2775623201.py\"\u001b[0;36m, line \u001b[0;32m3\u001b[0m\n\u001b[0;31m print(x)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "x = np.log(np.array([4.0, 7.0, 8.0])\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To check the number of bytes (remember that one byte contains eight bits for double precision variables), you can use simple use the **itemsize** functionality (the array $x$ is actually an object which inherits the functionalities defined in Numpy) as" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "x = np.log(np.array([4.0, 7.0, 8.0])\n", + "print(x.itemsize)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Having defined vectors, we are now ready to try out matrices. We can define a $3 \\times 3 $ real matrix $\\hat{A}$\n", + "as (recall that we user lowercase letters for vectors and uppercase letters for matrices)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "A = np.log(np.array([ [4.0, 7.0, 8.0], [3.0, 10.0, 11.0], [4.0, 5.0, 7.0] ]))\n", + "print(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we use the **shape** function we would get $(3, 3)$ as output, that is verifying that our matrix is a $3\\times 3$ matrix. We can slice the matrix and print for example the first column (Python organized matrix elements in a row-major order, see below) as" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "A = np.log(np.array([ [4.0, 7.0, 8.0], [3.0, 10.0, 11.0], [4.0, 5.0, 7.0] ]))\n", + "# print the first column, row-major order and elements start with 0\n", + "print(A[:,0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can continue this was by printing out other columns or rows. The example here prints out the second column" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "A = np.log(np.array([ [4.0, 7.0, 8.0], [3.0, 10.0, 11.0], [4.0, 5.0, 7.0] ]))\n", + "# print the first column, row-major order and elements start with 0\n", + "print(A[1,:])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Numpy contains many other functionalities that allow us to slice, subdivide etc etc arrays. We strongly recommend that you look up the [Numpy website for more details](http://www.numpy.org/). Useful functions when defining a matrix are the **np.zeros** function which declares a matrix of a given dimension and sets all elements to zero" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "n = 10\n", + "# define a matrix of dimension 10 x 10 and set all elements to zero\n", + "A = np.zeros( (n, n) )\n", + "print(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or initializing all elements to" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "n = 10\n", + "# define a matrix of dimension 10 x 10 and set all elements to one\n", + "A = np.ones( (n, n) )\n", + "print(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or as unitarily distributed random numbers (see the material on random number generators in the statistics part)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "n = 10\n", + "# define a matrix of dimension 10 x 10 and set all elements to random numbers with x \\in [0, 1]\n", + "A = np.random.rand(n, n)\n", + "print(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As we will see throughout these lectures, there are several extremely useful functionalities in Numpy.\n", + "As an example, consider the discussion of the covariance matrix. Suppose we have defined three vectors\n", + "$\\hat{x}, \\hat{y}, \\hat{z}$ with $n$ elements each. The covariance matrix is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\Sigma} = \\begin{bmatrix} \\sigma_{xx} & \\sigma_{xy} & \\sigma_{xz} \\\\\n", + " \\sigma_{yx} & \\sigma_{yy} & \\sigma_{yz} \\\\\n", + " \\sigma_{zx} & \\sigma_{zy} & \\sigma_{zz} \n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where for example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma_{xy} =\\frac{1}{n} \\sum_{i=0}^{n-1}(x_i- \\overline{x})(y_i- \\overline{y}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Numpy function **np.cov** calculates the covariance elements using the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have the exact mean values. For a more in-depth discussion of the covariance and covariance matrix and its meaning, we refer you to the lectures on statistics. \n", + "The following simple function uses the **np.vstack** function which takes each vector of dimension $1\\times n$ and produces a $ 3\\times n$ matrix $\\hat{W}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{W} = \\begin{bmatrix} x_0 & y_0 & z_0 \\\\\n", + " x_1 & y_1 & z_1 \\\\\n", + " x_2 & y_2 & z_2 \\\\\n", + " \\dots & \\dots & \\dots \\\\\n", + " x_{n-2} & y_{n-2} & z_{n-2} \\\\\n", + " x_{n-1} & y_{n-1} & z_{n-1}\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which in turn is converted into into the $3 times 3$ covariance matrix\n", + "$\\hat{\\Sigma}$ via the Numpy function **np.cov()**. In our review of\n", + "statistical functions and quantities we will discuss more about the\n", + "meaning of the covariance matrix. Here we note that we can calculate\n", + "the mean value of each set of samples $\\hat{x}$ etc using the Numpy\n", + "function **np.mean(x)**. We can also extract the eigenvalues of the\n", + "covariance matrix through the **np.linalg.eig()** function." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# Importing various packages\n", + "import numpy as np\n", + "\n", + "n = 100\n", + "x = np.random.normal(size=n)\n", + "print(np.mean(x))\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "print(np.mean(y))\n", + "z = x**3+np.random.normal(size=n)\n", + "print(np.mean(z))\n", + "W = np.vstack((x, y, z))\n", + "Sigma = np.cov(W)\n", + "print(Sigma)\n", + "Eigvals, Eigvecs = np.linalg.eig(Sigma)\n", + "print(Eigvals)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from scipy import sparse\n", + "eye = np.eye(4)\n", + "print(eye)\n", + "sparse_mtx = sparse.csr_matrix(eye)\n", + "print(sparse_mtx)\n", + "x = np.linspace(-10,10,100)\n", + "y = np.sin(x)\n", + "plt.plot(x,y,marker='x')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Other Matrix and Vector Operations\n", + "\n", + "The following examples show how to compute various quantities like the **mean** value of a matrix or a vector and how to use functions like **reshape** and **ravel**. These are all useful quantities when scaling the data and preparing the data for various machine learning algorithms and when calculating quantities like the mean squared error or the variance." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "\"\"\"\n", + "Simple code that tests various numpy functions\n", + "\"\"\"\n", + "\n", + "import numpy as np\n", + "# Simple test-matrix of dim 3 x 4\n", + "a = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9],[10, 11, 12]],dtype=np.float64)\n", + "print(f\"The test matrix:{a}\")\n", + "# This is the total mean summed over all elements, which here has to be 6.5\n", + "print(f\"This is the total mean summed over all elements:{np.mean(a,dtype=np.float64)}\")\n", + "# This is the mean for each column, it returns an array with the mean values for each column. It returns a row-like vector\n", + "print(f\"This is the mean for each column:{np.mean(a, axis=0, keepdims=True,dtype=np.float64)}\")\n", + "# This is the mean value for each row, it returns an array via the keepdims option which is a column-like vector if\n", + "# keepdims=True. Else it return a row-like vector\n", + "# Try setting keepdims=False\n", + "print(f\"This is the mean value for each row:{np.mean(a, axis=1, keepdims=True,dtype=np.float64)}\")\n", + "# We print then the mean value for each row by setting keepdims=False\n", + "print(f\"This is the mean value for each row with keepdims false:{np.mean(a, axis=1, keepdims=False,dtype=np.float64)}\")\n", + "\n", + "# Ravel return a contiguous flattened array.\n", + "print(f\"Flatten the matrix:{np.ravel(a)}\")\n", + "# It is the same as reshaping the matrix into a one-dimensional array\n", + "print(f\"Reshape the matrix to a one-dim array:{a.reshape(-1)}\")\n", + "# ‘C’ means to index the elements in row-major, C-style order, with the last axis index changing fastest, back to the first axis index changing slowest.\n", + "# ‘F’ means to index the elements in column-major, Fortran-style order, with the first index changing fastest, and the last index changing slowest \n", + "print(np.ravel(a, order='F'))\n", + "# When order is ‘A’, it will preserve the array’s ‘C’ or ‘F’ ordering\n", + "# ‘A’ means to read the elements in Fortran-like index order if a is Fortran contiguous in memory, C-like order otherwise.\n", + "# ‘K’ means to read the elements in the order they occur in memory, except for reversing the data when strides are negative. By default, ‘C’ index order is used.\n", + "# Transposing it\n", + "print(np.ravel(a.T))\n", + "print(np.ravel(a.T, order='A'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Gaussian Elimination\n", + "\n", + "We start with the linear set of equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{A}\\mathbf{x} = \\mathbf{w}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We assume also that the matrix $\\mathbf{A}$ is non-singular and that the\n", + "matrix elements along the diagonal satisfy $a_{ii} \\ne 0$. Simple $4\\times 4 $ example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{bmatrix}\n", + " a_{11}& a_{12} &a_{13}& a_{14}\\\\\n", + " a_{21}& a_{22} &a_{23}& a_{24}\\\\\n", + " a_{31}& a_{32} &a_{33}& a_{34}\\\\\n", + " a_{41}& a_{42} &a_{43}& a_{44}\\\\\n", + " \\end{bmatrix} \\begin{bmatrix}\n", + " x_1\\\\\n", + " x_2\\\\\n", + " x_3 \\\\\n", + " x_4 \\\\\n", + " \\end{bmatrix}\n", + " =\\begin{bmatrix}\n", + " w_1\\\\\n", + " w_2\\\\\n", + " w_3 \\\\\n", + " w_4\\\\\n", + " \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{11}x_1 +a_{12}x_2 +a_{13}x_3 + a_{14}x_4=w_1 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{21}x_1 + a_{22}x_2 + a_{23}x_3 + a_{24}x_4=w_2 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{31}x_1 + a_{32}x_2 + a_{33}x_3 + a_{34}x_4=w_3 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{41}x_1 + a_{42}x_2 + a_{43}x_3 + a_{44}x_4=w_4. \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The basic idea of Gaussian elimination is to use the first equation to eliminate the first unknown $x_1$\n", + "from the remaining $n-1$ equations. Then we use the new second equation to eliminate the second unknown\n", + "$x_2$ from the remaining $n-2$ equations. With $n-1$ such eliminations\n", + "we obtain a so-called upper triangular set of equations of the form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b_{11}x_1 +b_{12}x_2 +b_{13}x_3 + b_{14}x_4=y_1 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b_{22}x_2 + b_{23}x_3 + b_{24}x_4=y_2 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b_{33}x_3 + b_{34}x_4=y_3 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "b_{44}x_4=y_4. \\nonumber\n", + "\\label{eq:gaussbacksub} \\tag{1}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can solve this system of equations recursively starting from $x_n$ (in our case $x_4$) and proceed with\n", + "what is called a backward substitution. \n", + "\n", + "\n", + "This process can be expressed mathematically as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " x_m = \\frac{1}{b_{mm}}\\left(y_m-\\sum_{k=m+1}^nb_{mk}x_k\\right)\\quad m=n-1,n-2,\\dots,1.\n", + "\\label{_auto1} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To arrive at such an upper triangular system of equations, we start by eliminating\n", + "the unknown $x_1$ for $j=2,n$. We achieve this by multiplying the first equation by $a_{j1}/a_{11}$ and then subtract\n", + "the result from the $j$th equation. We assume obviously that $a_{11}\\ne 0$ and that\n", + "$\\mathbf{A}$ is not singular.\n", + "\n", + "\n", + "Our actual $4\\times 4$ example reads after the first operation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{bmatrix}\n", + " a_{11}& a_{12} &a_{13}& a_{14}\\\\\n", + " 0& (a_{22}-\\frac{a_{21}a_{12}}{a_{11}}) &(a_{23}-\\frac{a_{21}a_{13}}{a_{11}}) & (a_{24}-\\frac{a_{21}a_{14}}{a_{11}})\\\\\n", + "0& (a_{32}-\\frac{a_{31}a_{12}}{a_{11}})& (a_{33}-\\frac{a_{31}a_{13}}{a_{11}})& (a_{34}-\\frac{a_{31}a_{14}}{a_{11}})\\\\\n", + "0&(a_{42}-\\frac{a_{41}a_{12}}{a_{11}}) &(a_{43}-\\frac{a_{41}a_{13}}{a_{11}}) & (a_{44}-\\frac{a_{41}a_{14}}{a_{11}}) \\\\\n", + " \\end{bmatrix} \\begin{bmatrix}\n", + " x_1\\\\\n", + " x_2\\\\\n", + " x_3 \\\\\n", + " x_4 \\\\\n", + " \\end{bmatrix} \n", + " =\\begin{bmatrix}\n", + " y_1\\\\\n", + " w_2^{(2)}\\\\\n", + " w_3^{(2)} \\\\\n", + " w_4^{(2)}\\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "or" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "b_{11}x_1 +b_{12}x_2 +b_{13}x_3 + b_{14}x_4=y_1 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a^{(2)}_{22}x_2 + a^{(2)}_{23}x_3 + a^{(2)}_{24}x_4=w^{(2)}_2 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a^{(2)}_{32}x_2 + a^{(2)}_{33}x_3 + a^{(2)}_{34}x_4=w^{(2)}_3 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a^{(2)}_{42}x_2 + a^{(2)}_{43}x_3 + a^{(2)}_{44}x_4=w^{(2)}_4, \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + "\\label{_auto2} \\tag{3}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The new coefficients are" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " b_{1k} = a_{1k}^{(1)} \\quad k=1,\\dots,n,\n", + "\\label{_auto3} \\tag{4}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where each $a_{1k}^{(1)}$ is equal to the original $a_{1k}$ element. The other coefficients are" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "a_{jk}^{(2)} = a_{jk}^{(1)}-\\frac{a_{j1}^{(1)}a_{1k}^{(1)}}{a_{11}^{(1)}} \\quad j,k=2,\\dots,n,\n", + "\\label{_auto4} \\tag{5}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with a new right-hand side given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "y_{1}=w_1^{(1)}, \\quad w_j^{(2)} =w_j^{(1)}-\\frac{a_{j1}^{(1)}w_1^{(1)}}{a_{11}^{(1)}} \\quad j=2,\\dots,n.\n", + "\\label{_auto5} \\tag{6}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have also set $w_1^{(1)}=w_1$, the original vector element.\n", + "We see that the system of unknowns $x_1,\\dots,x_n$ is transformed into an $(n-1)\\times (n-1)$ problem.\n", + "\n", + "\n", + "\n", + "This step is called forward substitution.\n", + "Proceeding with these substitutions, we obtain the\n", + "general expressions for the new coefficients" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " a_{jk}^{(m+1)} = a_{jk}^{(m)}-\\frac{a_{jm}^{(m)}a_{mk}^{(m)}}{a_{mm}^{(m)}} \\quad j,k=m+1,\\dots,n,\n", + "\\label{_auto6} \\tag{7}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $m=1,\\dots,n-1$ and a\n", + "right-hand side given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " w_j^{(m+1)} =w_j^{(m)}-\\frac{a_{jm}^{(m)}w_m^{(m)}}{a_{mm}^{(m)}}\\quad j=m+1,\\dots,n.\n", + "\\label{_auto7} \\tag{8}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This set of $n-1$ elimations leads us to an equations which is solved by back substitution.\n", + "If the arithmetics is exact and the matrix $\\mathbf{A}$ is not singular, then the computed answer will be exact.\n", + "\n", + "Even though the matrix elements along the diagonal are not zero,\n", + "numerically small numbers may appear and subsequent divisions may lead to large numbers, which, if added\n", + "to a small number may yield losses of precision. Suppose for example that our first division in $(a_{22}-a_{21}a_{12}/a_{11})$\n", + "results in $-10^{-7}$ and that $a_{22}$ is one.\n", + "one. We are then\n", + "adding $10^7+1$. With single precision this results in $10^7$.\n", + "\n", + "\n", + "\n", + "\n", + " * Gaussian elimination, $O(2/3n^3)$ flops, general matrix\n", + "\n", + " * LU decomposition, upper triangular and lower tridiagonal matrices, $O(2/3n^3)$ flops, general matrix. Get easily the inverse, determinant and can solve linear equations with back-substitution only, $O(n^2)$ flops\n", + "\n", + " * Cholesky decomposition. Real symmetric or hermitian positive definite matrix, $O(1/3n^3)$ flops.\n", + "\n", + " * Tridiagonal linear systems, important for differential equations. Normally positive definite and non-singular. $O(8n)$ flops for symmetric. Special case of banded matrices.\n", + "\n", + " * Singular value decomposition\n", + "\n", + " * the QR method will be discussed in chapter 7 in connection with eigenvalue systems. $O(4/3n^3)$ flops.\n", + "\n", + "The LU decomposition method means that we can rewrite\n", + "this matrix as the product of two matrices $\\mathbf{L}$ and $\\mathbf{U}$\n", + "where" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{bmatrix}\n", + " a_{11} & a_{12} & a_{13} & a_{14} \\\\\n", + " a_{21} & a_{22} & a_{23} & a_{24} \\\\\n", + " a_{31} & a_{32} & a_{33} & a_{34} \\\\\n", + " a_{41} & a_{42} & a_{43} & a_{44}\n", + " \\end{bmatrix}\n", + " = \\begin{bmatrix}\n", + " 1 & 0 & 0 & 0 \\\\\n", + " l_{21} & 1 & 0 & 0 \\\\\n", + " l_{31} & l_{32} & 1 & 0 \\\\\n", + " l_{41} & l_{42} & l_{43} & 1\n", + " \\end{bmatrix}\n", + " \\begin{bmatrix}\n", + " u_{11} & u_{12} & u_{13} & u_{14} \\\\\n", + " 0 & u_{22} & u_{23} & u_{24} \\\\\n", + " 0 & 0 & u_{33} & u_{34} \\\\\n", + " 0 & 0 & 0 & u_{44}\n", + " \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "LU decomposition forms the backbone of other algorithms in linear algebra, such as the\n", + "solution of linear equations given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{11}x_1 +a_{12}x_2 +a_{13}x_3 + a_{14}x_4=w_1 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{21}x_1 + a_{22}x_2 + a_{23}x_3 + a_{24}x_4=w_2 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{31}x_1 + a_{32}x_2 + a_{33}x_3 + a_{34}x_4=w_3 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{41}x_1 + a_{42}x_2 + a_{43}x_3 + a_{44}x_4=w_4. \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above set of equations is conveniently solved by using LU decomposition as an intermediate step.\n", + "\n", + "The matrix $\\mathbf{A}\\in \\mathbb{R}^{n\\times n}$ has an LU factorization if the determinant\n", + "is different from zero. If the LU factorization exists and $\\mathbf{A}$ is non-singular, then the LU factorization\n", + "is unique and the determinant is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "det\\{\\mathbf{A}\\}=det\\{\\mathbf{LU}\\}= det\\{\\mathbf{L}\\}det\\{\\mathbf{U}\\}=u_{11}u_{22}\\dots u_{nn}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are at least three main advantages with LU decomposition compared with standard Gaussian elimination:\n", + "\n", + " * It is straightforward to compute the determinant of a matrix\n", + "\n", + " * If we have to solve sets of linear equations with the same matrix but with different vectors $\\mathbf{y}$, the number of FLOPS is of the order $n^3$.\n", + "\n", + " * The inverse is such an operation \n", + "\n", + "With the LU decomposition it is rather\n", + "simple to solve a system of linear equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{11}x_1 +a_{12}x_2 +a_{13}x_3 + a_{14}x_4=w_1 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{21}x_1 + a_{22}x_2 + a_{23}x_3 + a_{24}x_4=w_2 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{31}x_1 + a_{32}x_2 + a_{33}x_3 + a_{34}x_4=w_3 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "a_{41}x_1 + a_{42}x_2 + a_{43}x_3 + a_{44}x_4=w_4. \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This can be written in matrix form as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{Ax}=\\mathbf{w}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\mathbf{A}$ and $\\mathbf{w}$ are known and we have to solve for\n", + "$\\mathbf{x}$. Using the LU dcomposition we write" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{A} \\mathbf{x} \\equiv \\mathbf{L} \\mathbf{U} \\mathbf{x} =\\mathbf{w}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The previous equation can be calculated in two steps" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{L} \\mathbf{y} = \\mathbf{w};\\qquad \\mathbf{Ux}=\\mathbf{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To show that this is correct we use to the LU decomposition\n", + "to rewrite our system of linear equations as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{LUx}=\\mathbf{w},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and since the determinant of $\\mathbf{L}$ is equal to 1 (by construction\n", + "since the diagonals of $\\mathbf{L}$ equal 1) we can use the inverse of\n", + "$\\mathbf{L}$ to obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{Ux}=\\mathbf{L^{-1}w}=\\mathbf{y},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which yields the intermediate step" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{L^{-1}w}=\\mathbf{y}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and as soon as we have $\\mathbf{y}$ we can obtain $\\mathbf{x}$\n", + "through $\\mathbf{Ux}=\\mathbf{y}$.\n", + "\n", + "\n", + "For our four-dimentional example this takes the form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "y_1=w_1 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "l_{21}y_1 + y_2=w_2\\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "l_{31}y_1 + l_{32}y_2 + y_3 =w_3\\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "l_{41}y_1 + l_{42}y_2 + l_{43}y_3 + y_4=w_4. \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "u_{11}x_1 +u_{12}x_2 +u_{13}x_3 + u_{14}x_4=y_1 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "u_{22}x_2 + u_{23}x_3 + u_{24}x_4=y_2\\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "u_{33}x_3 + u_{34}x_4=y_3\\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "u_{44}x_4=y_4 \\nonumber\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This example shows the basis for the algorithm\n", + "needed to solve the set of $n$ linear equations.\n", + "\n", + "\n", + "\n", + "The algorithm goes as follows\n", + "\n", + " * Set up the matrix $\\bf A$ and the vector $\\bf w$ with their correct dimensions. This determines the dimensionality of the unknown vector $\\bf x$.\n", + "\n", + " * Then LU decompose the matrix $\\bf A$ through a call to the function `ludcmp(double a, int n, int indx, double &d)`. This functions returns the LU decomposed matrix $\\bf A$, its determinant and the vector indx which keeps track of the number of interchanges of rows. If the determinant is zero, the solution is malconditioned.\n", + "\n", + " * Thereafter you call the function `lubksb(double a, int n, int indx, double w)` which uses the LU decomposed matrix $\\bf A$ and the vector $\\bf w$ and returns $\\bf x$ in the same place as $\\bf w$. Upon exit the original content in $\\bf w$ is destroyed. If you wish to keep this information, you should make a backup of it in your calling function.\n", + "\n", + "### LU Decomposition, the inverse of a matrix\n", + "\n", + "If the inverse exists then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{A}^{-1}\\mathbf{A}=\\mathbf{I},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the identity matrix. With an LU decomposed matrix we can rewrite the last equation as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{LU}\\mathbf{A}^{-1}=\\mathbf{I}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we assume that the first column (that is column 1) of the inverse matrix\n", + "can be written as a vector with unknown entries" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{A}_1^{-1}= \\begin{bmatrix}\n", + " a_{11}^{-1} \\\\\n", + " a_{21}^{-1} \\\\\n", + " \\dots \\\\\n", + " a_{n1}^{-1} \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "then we have a linear set of equations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{LU}\\begin{bmatrix}\n", + " a_{11}^{-1} \\\\\n", + " a_{21}^{-1} \\\\\n", + " \\dots \\\\\n", + " a_{n1}^{-1} \\\\\n", + " \\end{bmatrix} =\\begin{bmatrix}\n", + " 1 \\\\\n", + " 0 \\\\\n", + " \\dots \\\\\n", + " 0 \\\\\n", + " \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In a similar way we can compute the unknow entries of the second column," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbf{LU}\\begin{bmatrix}\n", + " a_{12}^{-1} \\\\\n", + " a_{22}^{-1} \\\\\n", + " \\dots \\\\\n", + " a_{n2}^{-1} \\\\\n", + " \\end{bmatrix}=\\begin{bmatrix}\n", + " 0 \\\\\n", + " 1 \\\\\n", + " \\dots \\\\\n", + " 0 \\\\\n", + " \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and continue till we have solved all $n$ sets of linear equations." + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/linalg.py b/doc/LectureNotes/_build/jupyter_execute/linalg.py new file mode 100644 index 000000000..047ca0439 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/linalg.py @@ -0,0 +1,863 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Linear Algebra, Handling of Arrays and more Python Features +# +# ## Introduction +# +# The aim of this set of lectures is to review some central linear algebra algorithms that we will need in our +# data analysis part and in the construction of Machine Learning algorithms (ML). +# This will allow us to introduce some central programming features of high-level languages like Python and +# compiled languages like C++ and/or Fortran. +# +# As discussed in the introductory notes, these series of lectures focuses both on using +# central Python packages like **tensorflow** and **scikit-learn** as well +# as writing your own codes for some central ML algorithms. The +# latter can be written in a language of your choice, be it Python, Julia, R, +# Rust, C++, Fortran etc. In order to avoid confusion however, in these lectures we will limit our +# attention to Python, C++ and Fortran. +# +# +# ## Important Matrix and vector handling packages +# +# There are several central software packages for linear algebra and eigenvalue problems. Several of the more +# popular ones have been wrapped into ofter software packages like those from the widely used text **Numerical Recipes**. The original source codes in many of the available packages are often taken from the widely used +# software package LAPACK, which follows two other popular packages +# developed in the 1970s, namely EISPACK and LINPACK. We describe them shortly here. +# +# * LINPACK: package for linear equations and least square problems. +# +# * LAPACK:package for solving symmetric, unsymmetric and generalized eigenvalue problems. From LAPACK's website it is possible to download for free all source codes from this library. Both C/C++ and Fortran versions are available. +# +# * BLAS (I, II and III): (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. Blas I is vector operations, II vector-matrix operations and III matrix-matrix operations. Highly parallelized and efficient codes, all available for download from . +# +# When dealing with matrices and vectors a central issue is memory +# handling and allocation. If our code is written in Python the way we +# declare these objects and the way they are handled, interpreted and +# used by say a linear algebra library, requires codes that interface +# our Python program with such libraries. For Python programmers, +# **Numpy** is by now the standard Python package for numerical arrays in +# Python as well as the source of functions which act on these +# arrays. These functions span from eigenvalue solvers to functions that +# compute the mean value, variance or the covariance matrix. If you are +# not familiar with how arrays are handled in say Python or compiled +# languages like C++ and Fortran, the sections in this chapter may be +# useful. For C++ programmer, **Armadillo** is widely used library for +# linear algebra and eigenvalue problems. In addition it offers a +# convenient way to handle and organize arrays. We discuss this library +# as well. Before we proceed we believe it may be convenient to repeat some basic features of +# matrices and vectors. +# +# +# ## Basic Matrix Features +# +# Matrix properties reminder + +# $$ +# \mathbf{A} = +# \begin{bmatrix} a_{11} & a_{12} & a_{13} & a_{14} \\ +# a_{21} & a_{22} & a_{23} & a_{24} \\ +# a_{31} & a_{32} & a_{33} & a_{34} \\ +# a_{41} & a_{42} & a_{43} & a_{44} +# \end{bmatrix}\qquad +# \mathbf{I} = +# \begin{bmatrix} 1 & 0 & 0 & 0 \\ +# 0 & 1 & 0 & 0 \\ +# 0 & 0 & 1 & 0 \\ +# 0 & 0 & 0 & 1 +# \end{bmatrix} +# $$ + +# The inverse of a matrix is defined by + +# $$ +# \mathbf{A}^{-1} \cdot \mathbf{A} = I +# $$ + +# +# +# +# +# +# +# +# +# +# +# +#
    Relations Name matrix elements
    $A = A^{T}$ symmetric $a_{ij} = a_{ji}$
    $A = \left (A^{T} \right )^{-1}$ real orthogonal $\sum_k a_{ik} a_{jk} = \sum_k a_{ki} a_{kj} = \delta_{ij}$
    $A = A^{ * }$ real matrix $a_{ij} = a_{ij}^{ * }$
    $A = A^{\dagger}$ hermitian $a_{ij} = a_{ji}^{ * }$
    $A = \left (A^{\dagger} \right )^{-1}$ unitary $\sum_k a_{ik} a_{jk}^{ * } = \sum_k a_{ki}^{ * } a_{kj} = \delta_{ij}$
    +# ### Some famous Matrices +# +# * Diagonal if $a_{ij}=0$ for $i\ne j$ +# +# * Upper triangular if $a_{ij}=0$ for $i > j$ +# +# * Lower triangular if $a_{ij}=0$ for $i < j$ +# +# * Upper Hessenberg if $a_{ij}=0$ for $i > j+1$ +# +# * Lower Hessenberg if $a_{ij}=0$ for $i < j+1$ +# +# * Tridiagonal if $a_{ij}=0$ for $|i -j| > 1$ +# +# * Lower banded with bandwidth $p$: $a_{ij}=0$ for $i > j+p$ +# +# * Upper banded with bandwidth $p$: $a_{ij}=0$ for $i < j+p$ +# +# * Banded, block upper triangular, block lower triangular.... +# +# Some Equivalent Statements. For an $N\times N$ matrix $\mathbf{A}$ the following properties are all equivalent +# +# * If the inverse of $\mathbf{A}$ exists, $\mathbf{A}$ is nonsingular. +# +# * The equation $\mathbf{Ax}=0$ implies $\mathbf{x}=0$. +# +# * The rows of $\mathbf{A}$ form a basis of $R^N$. +# +# * The columns of $\mathbf{A}$ form a basis of $R^N$. +# +# * $\mathbf{A}$ is a product of elementary matrices. +# +# * $0$ is not eigenvalue of $\mathbf{A}$. +# +# ## Numpy and arrays +# [Numpy](http://www.numpy.org/) provides an easy way to handle arrays in Python. The standard way to import this library is as + +# In[1]: + + +import numpy as np +n = 10 +x = np.random.normal(size=n) +print(x) + + +# Here we have defined a vector $x$ with $n=10$ elements with its values given by the Normal distribution $N(0,1)$. +# Another alternative is to declare a vector as follows + +# In[2]: + + +import numpy as np +x = np.array([1, 2, 3]) +print(x) + + +# Here we have defined a vector with three elements, with $x_0=1$, $x_1=2$ and $x_2=3$. Note that both Python and C++ +# start numbering array elements from $0$ and on. This means that a vector with $n$ elements has a sequence of entities $x_0, x_1, x_2, \dots, x_{n-1}$. We could also let (recommended) Numpy to compute the logarithms of a specific array as + +# In[3]: + + +import numpy as np +x = np.log(np.array([4, 7, 8])) +print(x) + + +# Here we have used Numpy's unary function $np.log$. This function is +# highly tuned to compute array elements since the code is vectorized +# and does not require looping. We normaly recommend that you use the +# Numpy intrinsic functions instead of the corresponding **log** function +# from Python's **math** module. The looping is done explicitely by the +# **np.log** function. The alternative, and slower way to compute the +# logarithms of a vector would be to write + +# In[4]: + + +import numpy as np +from math import log +x = np.array([4, 7, 8]) +for i in range(0, len(x)): + x[i] = log(x[i]) +print(x) + + +# We note that our code is much longer already and we need to import the **log** function from the **math** module. +# The attentive reader will also notice that the output is $[1, 1, 2]$. Python interprets automacally our numbers as integers (like the **automatic** keyword in C++). To change this we could define our array elements to be double precision numbers as + +# In[5]: + + +import numpy as np +x = np.log(np.array([4, 7, 8], dtype = np.float64)) +print(x) + + +# or simply write them as double precision numbers (Python uses 64 bits as default for floating point type variables), that is + +# In[6]: + + +import numpy as np +x = np.log(np.array([4.0, 7.0, 8.0]) +print(x) + + +# To check the number of bytes (remember that one byte contains eight bits for double precision variables), you can use simple use the **itemsize** functionality (the array $x$ is actually an object which inherits the functionalities defined in Numpy) as + +# In[ ]: + + +import numpy as np +x = np.log(np.array([4.0, 7.0, 8.0]) +print(x.itemsize) + + +# Having defined vectors, we are now ready to try out matrices. We can define a $3 \times 3 $ real matrix $\hat{A}$ +# as (recall that we user lowercase letters for vectors and uppercase letters for matrices) + +# In[ ]: + + +import numpy as np +A = np.log(np.array([ [4.0, 7.0, 8.0], [3.0, 10.0, 11.0], [4.0, 5.0, 7.0] ])) +print(A) + + +# If we use the **shape** function we would get $(3, 3)$ as output, that is verifying that our matrix is a $3\times 3$ matrix. We can slice the matrix and print for example the first column (Python organized matrix elements in a row-major order, see below) as + +# In[ ]: + + +import numpy as np +A = np.log(np.array([ [4.0, 7.0, 8.0], [3.0, 10.0, 11.0], [4.0, 5.0, 7.0] ])) +# print the first column, row-major order and elements start with 0 +print(A[:,0]) + + +# We can continue this was by printing out other columns or rows. The example here prints out the second column + +# In[ ]: + + +import numpy as np +A = np.log(np.array([ [4.0, 7.0, 8.0], [3.0, 10.0, 11.0], [4.0, 5.0, 7.0] ])) +# print the first column, row-major order and elements start with 0 +print(A[1,:]) + + +# Numpy contains many other functionalities that allow us to slice, subdivide etc etc arrays. We strongly recommend that you look up the [Numpy website for more details](http://www.numpy.org/). Useful functions when defining a matrix are the **np.zeros** function which declares a matrix of a given dimension and sets all elements to zero + +# In[ ]: + + +import numpy as np +n = 10 +# define a matrix of dimension 10 x 10 and set all elements to zero +A = np.zeros( (n, n) ) +print(A) + + +# or initializing all elements to + +# In[ ]: + + +import numpy as np +n = 10 +# define a matrix of dimension 10 x 10 and set all elements to one +A = np.ones( (n, n) ) +print(A) + + +# or as unitarily distributed random numbers (see the material on random number generators in the statistics part) + +# In[ ]: + + +import numpy as np +n = 10 +# define a matrix of dimension 10 x 10 and set all elements to random numbers with x \in [0, 1] +A = np.random.rand(n, n) +print(A) + + +# As we will see throughout these lectures, there are several extremely useful functionalities in Numpy. +# As an example, consider the discussion of the covariance matrix. Suppose we have defined three vectors +# $\hat{x}, \hat{y}, \hat{z}$ with $n$ elements each. The covariance matrix is defined as + +# $$ +# \hat{\Sigma} = \begin{bmatrix} \sigma_{xx} & \sigma_{xy} & \sigma_{xz} \\ +# \sigma_{yx} & \sigma_{yy} & \sigma_{yz} \\ +# \sigma_{zx} & \sigma_{zy} & \sigma_{zz} +# \end{bmatrix}, +# $$ + +# where for example + +# $$ +# \sigma_{xy} =\frac{1}{n} \sum_{i=0}^{n-1}(x_i- \overline{x})(y_i- \overline{y}). +# $$ + +# The Numpy function **np.cov** calculates the covariance elements using the factor $1/(n-1)$ instead of $1/n$ since it assumes we do not have the exact mean values. For a more in-depth discussion of the covariance and covariance matrix and its meaning, we refer you to the lectures on statistics. +# The following simple function uses the **np.vstack** function which takes each vector of dimension $1\times n$ and produces a $ 3\times n$ matrix $\hat{W}$ + +# $$ +# \hat{W} = \begin{bmatrix} x_0 & y_0 & z_0 \\ +# x_1 & y_1 & z_1 \\ +# x_2 & y_2 & z_2 \\ +# \dots & \dots & \dots \\ +# x_{n-2} & y_{n-2} & z_{n-2} \\ +# x_{n-1} & y_{n-1} & z_{n-1} +# \end{bmatrix}, +# $$ + +# which in turn is converted into into the $3 times 3$ covariance matrix +# $\hat{\Sigma}$ via the Numpy function **np.cov()**. In our review of +# statistical functions and quantities we will discuss more about the +# meaning of the covariance matrix. Here we note that we can calculate +# the mean value of each set of samples $\hat{x}$ etc using the Numpy +# function **np.mean(x)**. We can also extract the eigenvalues of the +# covariance matrix through the **np.linalg.eig()** function. + +# In[ ]: + + +# Importing various packages +import numpy as np + +n = 100 +x = np.random.normal(size=n) +print(np.mean(x)) +y = 4+3*x+np.random.normal(size=n) +print(np.mean(y)) +z = x**3+np.random.normal(size=n) +print(np.mean(z)) +W = np.vstack((x, y, z)) +Sigma = np.cov(W) +print(Sigma) +Eigvals, Eigvecs = np.linalg.eig(Sigma) +print(Eigvals) + + +# In[ ]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import numpy as np +import matplotlib.pyplot as plt +from scipy import sparse +eye = np.eye(4) +print(eye) +sparse_mtx = sparse.csr_matrix(eye) +print(sparse_mtx) +x = np.linspace(-10,10,100) +y = np.sin(x) +plt.plot(x,y,marker='x') +plt.show() + + +# ## Other Matrix and Vector Operations +# +# The following examples show how to compute various quantities like the **mean** value of a matrix or a vector and how to use functions like **reshape** and **ravel**. These are all useful quantities when scaling the data and preparing the data for various machine learning algorithms and when calculating quantities like the mean squared error or the variance. + +# In[ ]: + + +""" +Simple code that tests various numpy functions +""" + +import numpy as np +# Simple test-matrix of dim 3 x 4 +a = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9],[10, 11, 12]],dtype=np.float64) +print(f"The test matrix:{a}") +# This is the total mean summed over all elements, which here has to be 6.5 +print(f"This is the total mean summed over all elements:{np.mean(a,dtype=np.float64)}") +# This is the mean for each column, it returns an array with the mean values for each column. It returns a row-like vector +print(f"This is the mean for each column:{np.mean(a, axis=0, keepdims=True,dtype=np.float64)}") +# This is the mean value for each row, it returns an array via the keepdims option which is a column-like vector if +# keepdims=True. Else it return a row-like vector +# Try setting keepdims=False +print(f"This is the mean value for each row:{np.mean(a, axis=1, keepdims=True,dtype=np.float64)}") +# We print then the mean value for each row by setting keepdims=False +print(f"This is the mean value for each row with keepdims false:{np.mean(a, axis=1, keepdims=False,dtype=np.float64)}") + +# Ravel return a contiguous flattened array. +print(f"Flatten the matrix:{np.ravel(a)}") +# It is the same as reshaping the matrix into a one-dimensional array +print(f"Reshape the matrix to a one-dim array:{a.reshape(-1)}") +# ‘C’ means to index the elements in row-major, C-style order, with the last axis index changing fastest, back to the first axis index changing slowest. +# ‘F’ means to index the elements in column-major, Fortran-style order, with the first index changing fastest, and the last index changing slowest +print(np.ravel(a, order='F')) +# When order is ‘A’, it will preserve the array’s ‘C’ or ‘F’ ordering +# ‘A’ means to read the elements in Fortran-like index order if a is Fortran contiguous in memory, C-like order otherwise. +# ‘K’ means to read the elements in the order they occur in memory, except for reversing the data when strides are negative. By default, ‘C’ index order is used. +# Transposing it +print(np.ravel(a.T)) +print(np.ravel(a.T, order='A')) + + +# ## Gaussian Elimination +# +# We start with the linear set of equations + +# $$ +# \mathbf{A}\mathbf{x} = \mathbf{w}. +# $$ + +# We assume also that the matrix $\mathbf{A}$ is non-singular and that the +# matrix elements along the diagonal satisfy $a_{ii} \ne 0$. Simple $4\times 4 $ example + +# $$ +# \begin{bmatrix} +# a_{11}& a_{12} &a_{13}& a_{14}\\ +# a_{21}& a_{22} &a_{23}& a_{24}\\ +# a_{31}& a_{32} &a_{33}& a_{34}\\ +# a_{41}& a_{42} &a_{43}& a_{44}\\ +# \end{bmatrix} \begin{bmatrix} +# x_1\\ +# x_2\\ +# x_3 \\ +# x_4 \\ +# \end{bmatrix} +# =\begin{bmatrix} +# w_1\\ +# w_2\\ +# w_3 \\ +# w_4\\ +# \end{bmatrix}. +# $$ + +# or + +# $$ +# a_{11}x_1 +a_{12}x_2 +a_{13}x_3 + a_{14}x_4=w_1 \nonumber +# $$ + +# $$ +# a_{21}x_1 + a_{22}x_2 + a_{23}x_3 + a_{24}x_4=w_2 \nonumber +# $$ + +# $$ +# a_{31}x_1 + a_{32}x_2 + a_{33}x_3 + a_{34}x_4=w_3 \nonumber +# $$ + +# $$ +# a_{41}x_1 + a_{42}x_2 + a_{43}x_3 + a_{44}x_4=w_4. \nonumber +# $$ + +# The basic idea of Gaussian elimination is to use the first equation to eliminate the first unknown $x_1$ +# from the remaining $n-1$ equations. Then we use the new second equation to eliminate the second unknown +# $x_2$ from the remaining $n-2$ equations. With $n-1$ such eliminations +# we obtain a so-called upper triangular set of equations of the form + +# $$ +# b_{11}x_1 +b_{12}x_2 +b_{13}x_3 + b_{14}x_4=y_1 \nonumber +# $$ + +# $$ +# b_{22}x_2 + b_{23}x_3 + b_{24}x_4=y_2 \nonumber +# $$ + +# $$ +# b_{33}x_3 + b_{34}x_4=y_3 \nonumber +# $$ + +# +#
    +# +# $$ +# b_{44}x_4=y_4. \nonumber +# \label{eq:gaussbacksub} \tag{1} +# $$ + +# We can solve this system of equations recursively starting from $x_n$ (in our case $x_4$) and proceed with +# what is called a backward substitution. +# +# +# This process can be expressed mathematically as + +# +#
    +# +# $$ +# \begin{equation} +# x_m = \frac{1}{b_{mm}}\left(y_m-\sum_{k=m+1}^nb_{mk}x_k\right)\quad m=n-1,n-2,\dots,1. +# \label{_auto1} \tag{2} +# \end{equation} +# $$ + +# To arrive at such an upper triangular system of equations, we start by eliminating +# the unknown $x_1$ for $j=2,n$. We achieve this by multiplying the first equation by $a_{j1}/a_{11}$ and then subtract +# the result from the $j$th equation. We assume obviously that $a_{11}\ne 0$ and that +# $\mathbf{A}$ is not singular. +# +# +# Our actual $4\times 4$ example reads after the first operation + +# $$ +# \begin{bmatrix} +# a_{11}& a_{12} &a_{13}& a_{14}\\ +# 0& (a_{22}-\frac{a_{21}a_{12}}{a_{11}}) &(a_{23}-\frac{a_{21}a_{13}}{a_{11}}) & (a_{24}-\frac{a_{21}a_{14}}{a_{11}})\\ +# 0& (a_{32}-\frac{a_{31}a_{12}}{a_{11}})& (a_{33}-\frac{a_{31}a_{13}}{a_{11}})& (a_{34}-\frac{a_{31}a_{14}}{a_{11}})\\ +# 0&(a_{42}-\frac{a_{41}a_{12}}{a_{11}}) &(a_{43}-\frac{a_{41}a_{13}}{a_{11}}) & (a_{44}-\frac{a_{41}a_{14}}{a_{11}}) \\ +# \end{bmatrix} \begin{bmatrix} +# x_1\\ +# x_2\\ +# x_3 \\ +# x_4 \\ +# \end{bmatrix} +# =\begin{bmatrix} +# y_1\\ +# w_2^{(2)}\\ +# w_3^{(2)} \\ +# w_4^{(2)}\\ +# \end{bmatrix}, +# $$ + +# or + +# $$ +# b_{11}x_1 +b_{12}x_2 +b_{13}x_3 + b_{14}x_4=y_1 \nonumber +# $$ + +# $$ +# a^{(2)}_{22}x_2 + a^{(2)}_{23}x_3 + a^{(2)}_{24}x_4=w^{(2)}_2 \nonumber +# $$ + +# $$ +# a^{(2)}_{32}x_2 + a^{(2)}_{33}x_3 + a^{(2)}_{34}x_4=w^{(2)}_3 \nonumber +# $$ + +# $$ +# a^{(2)}_{42}x_2 + a^{(2)}_{43}x_3 + a^{(2)}_{44}x_4=w^{(2)}_4, \nonumber +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# \label{_auto2} \tag{3} +# \end{equation} +# $$ + +# The new coefficients are + +# +#
    +# +# $$ +# \begin{equation} +# b_{1k} = a_{1k}^{(1)} \quad k=1,\dots,n, +# \label{_auto3} \tag{4} +# \end{equation} +# $$ + +# where each $a_{1k}^{(1)}$ is equal to the original $a_{1k}$ element. The other coefficients are + +# +#
    +# +# $$ +# \begin{equation} +# a_{jk}^{(2)} = a_{jk}^{(1)}-\frac{a_{j1}^{(1)}a_{1k}^{(1)}}{a_{11}^{(1)}} \quad j,k=2,\dots,n, +# \label{_auto4} \tag{5} +# \end{equation} +# $$ + +# with a new right-hand side given by + +# +#
    +# +# $$ +# \begin{equation} +# y_{1}=w_1^{(1)}, \quad w_j^{(2)} =w_j^{(1)}-\frac{a_{j1}^{(1)}w_1^{(1)}}{a_{11}^{(1)}} \quad j=2,\dots,n. +# \label{_auto5} \tag{6} +# \end{equation} +# $$ + +# We have also set $w_1^{(1)}=w_1$, the original vector element. +# We see that the system of unknowns $x_1,\dots,x_n$ is transformed into an $(n-1)\times (n-1)$ problem. +# +# +# +# This step is called forward substitution. +# Proceeding with these substitutions, we obtain the +# general expressions for the new coefficients + +# +#
    +# +# $$ +# \begin{equation} +# a_{jk}^{(m+1)} = a_{jk}^{(m)}-\frac{a_{jm}^{(m)}a_{mk}^{(m)}}{a_{mm}^{(m)}} \quad j,k=m+1,\dots,n, +# \label{_auto6} \tag{7} +# \end{equation} +# $$ + +# with $m=1,\dots,n-1$ and a +# right-hand side given by + +# +#
    +# +# $$ +# \begin{equation} +# w_j^{(m+1)} =w_j^{(m)}-\frac{a_{jm}^{(m)}w_m^{(m)}}{a_{mm}^{(m)}}\quad j=m+1,\dots,n. +# \label{_auto7} \tag{8} +# \end{equation} +# $$ + +# This set of $n-1$ elimations leads us to an equations which is solved by back substitution. +# If the arithmetics is exact and the matrix $\mathbf{A}$ is not singular, then the computed answer will be exact. +# +# Even though the matrix elements along the diagonal are not zero, +# numerically small numbers may appear and subsequent divisions may lead to large numbers, which, if added +# to a small number may yield losses of precision. Suppose for example that our first division in $(a_{22}-a_{21}a_{12}/a_{11})$ +# results in $-10^{-7}$ and that $a_{22}$ is one. +# one. We are then +# adding $10^7+1$. With single precision this results in $10^7$. +# +# +# +# +# * Gaussian elimination, $O(2/3n^3)$ flops, general matrix +# +# * LU decomposition, upper triangular and lower tridiagonal matrices, $O(2/3n^3)$ flops, general matrix. Get easily the inverse, determinant and can solve linear equations with back-substitution only, $O(n^2)$ flops +# +# * Cholesky decomposition. Real symmetric or hermitian positive definite matrix, $O(1/3n^3)$ flops. +# +# * Tridiagonal linear systems, important for differential equations. Normally positive definite and non-singular. $O(8n)$ flops for symmetric. Special case of banded matrices. +# +# * Singular value decomposition +# +# * the QR method will be discussed in chapter 7 in connection with eigenvalue systems. $O(4/3n^3)$ flops. +# +# The LU decomposition method means that we can rewrite +# this matrix as the product of two matrices $\mathbf{L}$ and $\mathbf{U}$ +# where + +# $$ +# \begin{bmatrix} +# a_{11} & a_{12} & a_{13} & a_{14} \\ +# a_{21} & a_{22} & a_{23} & a_{24} \\ +# a_{31} & a_{32} & a_{33} & a_{34} \\ +# a_{41} & a_{42} & a_{43} & a_{44} +# \end{bmatrix} +# = \begin{bmatrix} +# 1 & 0 & 0 & 0 \\ +# l_{21} & 1 & 0 & 0 \\ +# l_{31} & l_{32} & 1 & 0 \\ +# l_{41} & l_{42} & l_{43} & 1 +# \end{bmatrix} +# \begin{bmatrix} +# u_{11} & u_{12} & u_{13} & u_{14} \\ +# 0 & u_{22} & u_{23} & u_{24} \\ +# 0 & 0 & u_{33} & u_{34} \\ +# 0 & 0 & 0 & u_{44} +# \end{bmatrix}. +# $$ + +# LU decomposition forms the backbone of other algorithms in linear algebra, such as the +# solution of linear equations given by + +# $$ +# a_{11}x_1 +a_{12}x_2 +a_{13}x_3 + a_{14}x_4=w_1 \nonumber +# $$ + +# $$ +# a_{21}x_1 + a_{22}x_2 + a_{23}x_3 + a_{24}x_4=w_2 \nonumber +# $$ + +# $$ +# a_{31}x_1 + a_{32}x_2 + a_{33}x_3 + a_{34}x_4=w_3 \nonumber +# $$ + +# $$ +# a_{41}x_1 + a_{42}x_2 + a_{43}x_3 + a_{44}x_4=w_4. \nonumber +# $$ + +# The above set of equations is conveniently solved by using LU decomposition as an intermediate step. +# +# The matrix $\mathbf{A}\in \mathbb{R}^{n\times n}$ has an LU factorization if the determinant +# is different from zero. If the LU factorization exists and $\mathbf{A}$ is non-singular, then the LU factorization +# is unique and the determinant is given by + +# $$ +# det\{\mathbf{A}\}=det\{\mathbf{LU}\}= det\{\mathbf{L}\}det\{\mathbf{U}\}=u_{11}u_{22}\dots u_{nn}. +# $$ + +# There are at least three main advantages with LU decomposition compared with standard Gaussian elimination: +# +# * It is straightforward to compute the determinant of a matrix +# +# * If we have to solve sets of linear equations with the same matrix but with different vectors $\mathbf{y}$, the number of FLOPS is of the order $n^3$. +# +# * The inverse is such an operation +# +# With the LU decomposition it is rather +# simple to solve a system of linear equations + +# $$ +# a_{11}x_1 +a_{12}x_2 +a_{13}x_3 + a_{14}x_4=w_1 \nonumber +# $$ + +# $$ +# a_{21}x_1 + a_{22}x_2 + a_{23}x_3 + a_{24}x_4=w_2 \nonumber +# $$ + +# $$ +# a_{31}x_1 + a_{32}x_2 + a_{33}x_3 + a_{34}x_4=w_3 \nonumber +# $$ + +# $$ +# a_{41}x_1 + a_{42}x_2 + a_{43}x_3 + a_{44}x_4=w_4. \nonumber +# $$ + +# This can be written in matrix form as + +# $$ +# \mathbf{Ax}=\mathbf{w}. +# $$ + +# where $\mathbf{A}$ and $\mathbf{w}$ are known and we have to solve for +# $\mathbf{x}$. Using the LU dcomposition we write + +# $$ +# \mathbf{A} \mathbf{x} \equiv \mathbf{L} \mathbf{U} \mathbf{x} =\mathbf{w}. +# $$ + +# The previous equation can be calculated in two steps + +# $$ +# \mathbf{L} \mathbf{y} = \mathbf{w};\qquad \mathbf{Ux}=\mathbf{y}. +# $$ + +# To show that this is correct we use to the LU decomposition +# to rewrite our system of linear equations as + +# $$ +# \mathbf{LUx}=\mathbf{w}, +# $$ + +# and since the determinant of $\mathbf{L}$ is equal to 1 (by construction +# since the diagonals of $\mathbf{L}$ equal 1) we can use the inverse of +# $\mathbf{L}$ to obtain + +# $$ +# \mathbf{Ux}=\mathbf{L^{-1}w}=\mathbf{y}, +# $$ + +# which yields the intermediate step + +# $$ +# \mathbf{L^{-1}w}=\mathbf{y} +# $$ + +# and as soon as we have $\mathbf{y}$ we can obtain $\mathbf{x}$ +# through $\mathbf{Ux}=\mathbf{y}$. +# +# +# For our four-dimentional example this takes the form + +# $$ +# y_1=w_1 \nonumber +# $$ + +# $$ +# l_{21}y_1 + y_2=w_2\nonumber +# $$ + +# $$ +# l_{31}y_1 + l_{32}y_2 + y_3 =w_3\nonumber +# $$ + +# $$ +# l_{41}y_1 + l_{42}y_2 + l_{43}y_3 + y_4=w_4. \nonumber +# $$ + +# and + +# $$ +# u_{11}x_1 +u_{12}x_2 +u_{13}x_3 + u_{14}x_4=y_1 \nonumber +# $$ + +# $$ +# u_{22}x_2 + u_{23}x_3 + u_{24}x_4=y_2\nonumber +# $$ + +# $$ +# u_{33}x_3 + u_{34}x_4=y_3\nonumber +# $$ + +# $$ +# u_{44}x_4=y_4 \nonumber +# $$ + +# This example shows the basis for the algorithm +# needed to solve the set of $n$ linear equations. +# +# +# +# The algorithm goes as follows +# +# * Set up the matrix $\bf A$ and the vector $\bf w$ with their correct dimensions. This determines the dimensionality of the unknown vector $\bf x$. +# +# * Then LU decompose the matrix $\bf A$ through a call to the function `ludcmp(double a, int n, int indx, double &d)`. This functions returns the LU decomposed matrix $\bf A$, its determinant and the vector indx which keeps track of the number of interchanges of rows. If the determinant is zero, the solution is malconditioned. +# +# * Thereafter you call the function `lubksb(double a, int n, int indx, double w)` which uses the LU decomposed matrix $\bf A$ and the vector $\bf w$ and returns $\bf x$ in the same place as $\bf w$. Upon exit the original content in $\bf w$ is destroyed. If you wish to keep this information, you should make a backup of it in your calling function. +# +# ### LU Decomposition, the inverse of a matrix +# +# If the inverse exists then + +# $$ +# \mathbf{A}^{-1}\mathbf{A}=\mathbf{I}, +# $$ + +# the identity matrix. With an LU decomposed matrix we can rewrite the last equation as + +# $$ +# \mathbf{LU}\mathbf{A}^{-1}=\mathbf{I}. +# $$ + +# If we assume that the first column (that is column 1) of the inverse matrix +# can be written as a vector with unknown entries + +# $$ +# \mathbf{A}_1^{-1}= \begin{bmatrix} +# a_{11}^{-1} \\ +# a_{21}^{-1} \\ +# \dots \\ +# a_{n1}^{-1} \\ +# \end{bmatrix}, +# $$ + +# then we have a linear set of equations + +# $$ +# \mathbf{LU}\begin{bmatrix} +# a_{11}^{-1} \\ +# a_{21}^{-1} \\ +# \dots \\ +# a_{n1}^{-1} \\ +# \end{bmatrix} =\begin{bmatrix} +# 1 \\ +# 0 \\ +# \dots \\ +# 0 \\ +# \end{bmatrix}. +# $$ + +# In a similar way we can compute the unknow entries of the second column, + +# $$ +# \mathbf{LU}\begin{bmatrix} +# a_{12}^{-1} \\ +# a_{22}^{-1} \\ +# \dots \\ +# a_{n2}^{-1} \\ +# \end{bmatrix}=\begin{bmatrix} +# 0 \\ +# 1 \\ +# \dots \\ +# 0 \\ +# \end{bmatrix}, +# $$ + +# and continue till we have solved all $n$ sets of linear equations. diff --git a/doc/LectureNotes/_build/jupyter_execute/statistics.ipynb b/doc/LectureNotes/_build/jupyter_execute/statistics.ipynb new file mode 100644 index 000000000..df5a29988 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/statistics.ipynb @@ -0,0 +1,3003 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Elements of Probability Theory and Statistical Data Analysis\n", + "\n", + "\n", + "## Domains and probabilities\n", + "Consider the following simple example, namely the tossing of two dice, resulting in the following possible values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\{2,3,4,5,6,7,8,9,10,11,12\\}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These values are called the *domain*. \n", + "To this domain we have the corresponding *probabilities*" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\{1/36,2/36/,3/36,4/36,5/36,6/36,5/36,4/36,3/36,2/36,1/36\\}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tossing the dice\n", + "The numbers in the domain are the outcomes of the physical process of tossing say two dice.\n", + "We cannot tell beforehand whether the outcome is 3 or 5 or any other number in this domain.\n", + "This defines the randomness of the outcome, or unexpectedness or any other synonimous word which\n", + "encompasses the uncertitude of the final outcome. \n", + "\n", + "The only thing we can tell beforehand\n", + "is that say the outcome 2 has a certain probability. \n", + "If our favorite hobby is to spend an hour every evening throwing dice and \n", + "registering the sequence of outcomes, we will note that the numbers in the above domain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\{2,3,4,5,6,7,8,9,10,11,12\\},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "appear in a random order. After 11 throws the results may look like" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\{10,8,6,3,6,9,11,8,12,4,5\\}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stochastic variables\n", + "\n", + "**Random variables are characterized by a domain which contains all possible values that the random value may take. This domain has a corresponding probability distribution function(PDF)**.\n", + "\n", + "\n", + "\n", + "\n", + "## Stochastic variables and the main concepts, the discrete case\n", + "There are two main concepts associated with a stochastic variable. The\n", + "*domain* is the set $\\mathbb D = \\{x\\}$ of all accessible values\n", + "the variable can assume, so that $X \\in \\mathbb D$. An example of a\n", + "discrete domain is the set of six different numbers that we may get by\n", + "throwing of a dice, $x\\in\\{1,\\,2,\\,3,\\,4,\\,5,\\,6\\}$.\n", + "\n", + "The *probability distribution function (PDF)* is a function\n", + "$p(x)$ on the domain which, in the discrete case, gives us the\n", + "probability or relative frequency with which these values of $X$\n", + "occur" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x) = \\mathrm{Prob}(X=x).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stochastic variables and the main concepts, the continuous case\n", + "In the continuous case, the PDF does not directly depict the\n", + "actual probability. Instead we define the probability for the\n", + "stochastic variable to assume any value on an infinitesimal interval\n", + "around $x$ to be $p(x)dx$. The continuous function $p(x)$ then gives us\n", + "the *density* of the probability rather than the probability\n", + "itself. The probability for a stochastic variable to assume any value\n", + "on a non-infinitesimal interval $[a,\\,b]$ is then just the integral" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{Prob}(a\\leq X\\leq b) = \\int_a^b p(x)dx.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Qualitatively speaking, a stochastic variable represents the values of\n", + "numbers chosen as if by chance from some specified PDF so that the\n", + "selection of a large set of these numbers reproduces this PDF.\n", + "\n", + "\n", + "\n", + "\n", + "## The cumulative probability\n", + "Of interest to us is the *cumulative probability\n", + "distribution function* (**CDF**), $P(x)$, which is just the probability\n", + "for a stochastic variable $X$ to assume any value less than $x$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "P(x)=\\mathrm{Prob(}X\\leq x\\mathrm{)} =\n", + "\\int_{-\\infty}^x p(x^{\\prime})dx^{\\prime}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The relation between a CDF and its corresponding PDF is then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x) = \\frac{d}{dx}P(x).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Properties of PDFs\n", + "\n", + "There are two properties that all PDFs must satisfy. The first one is\n", + "positivity (assuming that the PDF is normalized)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "0 \\leq p(x) \\leq 1.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Naturally, it would be nonsensical for any of the values of the domain\n", + "to occur with a probability greater than $1$ or less than $0$. Also,\n", + "the PDF must be normalized. That is, all the probabilities must add up\n", + "to unity. The probability of \"anything\" to happen is always unity. For\n", + "both discrete and continuous PDFs, this condition is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\sum_{x_i\\in\\mathbb D} p(x_i) & = 1,\\\\\n", + "\\int_{x\\in\\mathbb D} p(x)\\,dx & = 1.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Important distributions, the uniform distribution\n", + "The first one\n", + "is the most basic PDF; namely the uniform distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "p(x) = \\frac{1}{b-a}\\theta(x-a)\\theta(b-x).\n", + "\\label{eq:unifromPDF} \\tag{1}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For $a=0$ and $b=1$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{array}{ll}\n", + "p(x)dx = dx & \\in [0,1].\n", + "\\end{array}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The latter distribution is used to generate random numbers. For other PDFs, one needs normally a mapping from this distribution to say for example the exponential distribution.\n", + "\n", + "\n", + "\n", + "\n", + "## Gaussian distribution\n", + "The second one is the Gaussian Distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x) = \\frac{1}{\\sigma\\sqrt{2\\pi}} \\exp{(-\\frac{(x-\\mu)^2}{2\\sigma^2})},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with mean value $\\mu$ and standard deviation $\\sigma$. If $\\mu=0$ and $\\sigma=1$, it is normally called the **standard normal distribution**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x) = \\frac{1}{\\sqrt{2\\pi}} \\exp{(-\\frac{x^2}{2})},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following simple Python code plots the above distribution for different values of $\\mu$ and $\\sigma$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/statistics_29_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "from math import acos, exp, sqrt\n", + "from matplotlib import pyplot as plt\n", + "from matplotlib import rc, rcParams\n", + "import matplotlib.units as units\n", + "import matplotlib.ticker as ticker\n", + "rc('text',usetex=True)\n", + "rc('font',**{'family':'serif','serif':['Gaussian distribution']})\n", + "font = {'family' : 'serif',\n", + " 'color' : 'darkred',\n", + " 'weight' : 'normal',\n", + " 'size' : 16,\n", + " }\n", + "pi = acos(-1.0)\n", + "mu0 = 0.0\n", + "sigma0 = 1.0\n", + "mu1= 1.0\n", + "sigma1 = 2.0\n", + "mu2 = 2.0\n", + "sigma2 = 4.0\n", + "\n", + "x = np.linspace(-20.0, 20.0)\n", + "v0 = np.exp(-(x*x-2*x*mu0+mu0*mu0)/(2*sigma0*sigma0))/sqrt(2*pi*sigma0*sigma0)\n", + "v1 = np.exp(-(x*x-2*x*mu1+mu1*mu1)/(2*sigma1*sigma1))/sqrt(2*pi*sigma1*sigma1)\n", + "v2 = np.exp(-(x*x-2*x*mu2+mu2*mu2)/(2*sigma2*sigma2))/sqrt(2*pi*sigma2*sigma2)\n", + "plt.plot(x, v0, 'b-', x, v1, 'r-', x, v2, 'g-')\n", + "plt.title(r'{\\bf Gaussian distributions}', fontsize=20)\n", + "plt.text(-19, 0.3, r'Parameters: $\\mu = 0$, $\\sigma = 1$', fontdict=font)\n", + "plt.text(-19, 0.18, r'Parameters: $\\mu = 1$, $\\sigma = 2$', fontdict=font)\n", + "plt.text(-19, 0.08, r'Parameters: $\\mu = 2$, $\\sigma = 4$', fontdict=font)\n", + "plt.xlabel(r'$x$',fontsize=20)\n", + "plt.ylabel(r'$p(x)$ [MeV]',fontsize=20)\n", + "\n", + "# Tweak spacing to prevent clipping of ylabel \n", + "plt.subplots_adjust(left=0.15)\n", + "plt.savefig('gaussian.pdf', format='pdf')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exponential distribution\n", + "Another important distribution in science is the exponential distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x) = \\alpha\\exp{-(\\alpha x)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Expectation values\n", + "Let $h(x)$ be an arbitrary continuous function on the domain of the stochastic\n", + "variable $X$ whose PDF is $p(x)$. We define the *expectation value*\n", + "of $h$ with respect to $p$ as follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\langle h \\rangle_X \\equiv \\int\\! h(x)p(x)\\,dx\n", + "\\label{eq:expectation_value_of_h_wrt_p} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Whenever the PDF is known implicitly, like in this case, we will drop\n", + "the index $X$ for clarity. \n", + "A particularly useful class of special expectation values are the\n", + "*moments*. The $n$-th moment of the PDF $p$ is defined as\n", + "follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x^n \\rangle \\equiv \\int\\! x^n p(x)\\,dx\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stochastic variables and the main concepts, mean values\n", + "The zero-th moment $\\langle 1\\rangle$ is just the normalization condition of\n", + "$p$. The first moment, $\\langle x\\rangle$, is called the *mean* of $p$\n", + "and often denoted by the letter $\\mu$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x\\rangle = \\mu \\equiv \\int x p(x)dx,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for a continuous distribution and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x\\rangle = \\mu \\equiv \\sum_{i=1}^N x_i p(x_i),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "for a discrete distribution. \n", + "Qualitatively it represents the centroid or the average value of the\n", + "PDF and is therefore simply called the expectation value of $p(x)$.\n", + "\n", + "\n", + "\n", + "\n", + "## Stochastic variables and the main concepts, central moments, the variance\n", + "\n", + "A special version of the moments is the set of *central moments*, the n-th central moment defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle (x-\\langle x\\rangle )^n\\rangle \\equiv \\int\\! (x-\\langle x\\rangle)^n p(x)\\,dx\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The zero-th and first central moments are both trivial, equal $1$ and\n", + "$0$, respectively. But the second central moment, known as the\n", + "*variance* of $p$, is of particular interest. For the stochastic\n", + "variable $X$, the variance is denoted as $\\sigma^2_X$ or $\\mathrm{Var}(X)$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\sigma^2_X &=\\mathrm{Var}(X) = \\langle (x-\\langle x\\rangle)^2\\rangle =\n", + "\\int (x-\\langle x\\rangle)^2 p(x)dx\\\\\n", + "& = \\int\\left(x^2 - 2 x \\langle x\\rangle^{2} +\\langle x\\rangle^2\\right)p(x)dx\\\\\n", + "& = \\langle x^2\\rangle - 2 \\langle x\\rangle\\langle x\\rangle + \\langle x\\rangle^2\\\\\n", + "& = \\langle x^2 \\rangle - \\langle x\\rangle^2\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The square root of the variance, $\\sigma =\\sqrt{\\langle (x-\\langle x\\rangle)^2\\rangle}$ is called the \n", + "**standard deviation** of $p$. It is the RMS (root-mean-square)\n", + "value of the deviation of the PDF from its mean value, interpreted\n", + "qualitatively as the \"spread\" of $p$ around its mean.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Probability Distribution Functions\n", + "\n", + "The following table collects properties of probability distribution functions.\n", + "In our notation we reserve the label $p(x)$ for the probability of a certain event,\n", + "while $P(x)$ is the cumulative probability. \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    Discrete PDF Continuous PDF
    Domain $\\left\\{x_1, x_2, x_3, \\dots, x_N\\right\\}$ $[a,b]$
    Probability $p(x_i)$ $p(x)dx$
    Cumulative $P_i=\\sum_{l=1}^ip(x_l)$ $P(x)=\\int_a^xp(t)dt$
    Positivity $0 \\le p(x_i) \\le 1$ $p(x) \\ge 0$
    Positivity $0 \\le P_i \\le 1$ $0 \\le P(x) \\le 1$
    Monotonic $P_i \\ge P_j$ if $x_i \\ge x_j$ $P(x_i) \\ge P(x_j)$ if $x_i \\ge x_j$
    Normalization $P_N=1$ $P(b)=1$
    \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Probability Distribution Functions\n", + "With a PDF we can compute expectation values of selected quantities such as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x^k\\rangle=\\sum_{i=1}^{N}x_i^kp(x_i),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "if we have a discrete PDF or" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x^k\\rangle=\\int_a^b x^kp(x)dx,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "in the case of a continuous PDF. We have already defined the mean value $\\mu$\n", + "and the variance $\\sigma^2$.\n", + "\n", + "\n", + "\n", + "\n", + "## The three famous Probability Distribution Functions\n", + "\n", + "There are at least three PDFs which one may encounter. These are the\n", + "\n", + "**Uniform distribution**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x)=\\frac{1}{b-a}\\Theta(x-a)\\Theta(b-x),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "yielding probabilities different from zero in the interval $[a,b]$.\n", + "\n", + "**The exponential distribution**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x)=\\alpha \\exp{(-\\alpha x)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "yielding probabilities different from zero in the interval $[0,\\infty)$ and with mean value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu = \\int_0^{\\infty}xp(x)dx=\\int_0^{\\infty}x\\alpha \\exp{(-\\alpha x)}dx=\\frac{1}{\\alpha},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with variance" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma^2=\\int_0^{\\infty}x^2p(x)dx-\\mu^2 = \\frac{1}{\\alpha^2}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Probability Distribution Functions, the normal distribution\n", + "Finally, we have the so-called univariate normal distribution, or just the **normal distribution**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x)=\\frac{1}{b\\sqrt{2\\pi}}\\exp{\\left(-\\frac{(x-a)^2}{2b^2}\\right)}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with probabilities different from zero in the interval $(-\\infty,\\infty)$.\n", + "The integral $\\int_{-\\infty}^{\\infty}\\exp{\\left(-(x^2\\right)}dx$ appears in many calculations, its value\n", + "is $\\sqrt{\\pi}$, a result we will need when we compute the mean value and the variance.\n", + "The mean value is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu = \\int_0^{\\infty}xp(x)dx=\\frac{1}{b\\sqrt{2\\pi}}\\int_{-\\infty}^{\\infty}x \\exp{\\left(-\\frac{(x-a)^2}{2b^2}\\right)}dx,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which becomes with a suitable change of variables" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu =\\frac{1}{b\\sqrt{2\\pi}}\\int_{-\\infty}^{\\infty}b\\sqrt{2}(a+b\\sqrt{2}y)\\exp{-y^2}dy=a.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Probability Distribution Functions, the normal distribution\n", + "Similarly, the variance becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma^2 = \\frac{1}{b\\sqrt{2\\pi}}\\int_{-\\infty}^{\\infty}(x-\\mu)^2 \\exp{\\left(-\\frac{(x-a)^2}{2b^2}\\right)}dx,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and inserting the mean value and performing a variable change we obtain" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma^2 = \\frac{1}{b\\sqrt{2\\pi}}\\int_{-\\infty}^{\\infty}b\\sqrt{2}(b\\sqrt{2}y)^2\\exp{\\left(-y^2\\right)}dy=\n", + "\\frac{2b^2}{\\sqrt{\\pi}}\\int_{-\\infty}^{\\infty}y^2\\exp{\\left(-y^2\\right)}dy,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and performing a final integration by parts we obtain the well-known result $\\sigma^2=b^2$.\n", + "It is useful to introduce the standard normal distribution as well, defined by $\\mu=a=0$, viz. a distribution\n", + "centered around zero and with a variance $\\sigma^2=1$, leading to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " p(x)=\\frac{1}{\\sqrt{2\\pi}}\\exp{\\left(-\\frac{x^2}{2}\\right)}.\n", + "\\label{_auto1} \\tag{3}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Probability Distribution Functions, the cumulative distribution\n", + "\n", + "The exponential and uniform distributions have simple cumulative functions,\n", + "whereas the normal distribution does not, being proportional to the so-called\n", + "error function $erf(x)$, given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "P(x) = \\frac{1}{\\sqrt{2\\pi}}\\int_{-\\infty}^x\\exp{\\left(-\\frac{t^2}{2}\\right)}dt,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which is difficult to evaluate in a quick way.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Probability Distribution Functions, other important distribution\n", + "\n", + "Some other PDFs which one encounters often in the natural sciences are the binomial distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x) = \\left(\\begin{array}{c} n \\\\ x\\end{array}\\right)y^x(1-y)^{n-x} \\hspace{0.5cm}x=0,1,\\dots,n,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $y$ is the probability for a specific event, such as the tossing of a coin or moving left or right\n", + "in case of a random walker. Note that $x$ is a discrete stochastic variable. \n", + "\n", + "The sequence of binomial trials is characterized by the following definitions\n", + "\n", + " * Every experiment is thought to consist of $N$ independent trials.\n", + "\n", + " * In every independent trial one registers if a specific situation happens or not, such as the jump to the left or right of a random walker.\n", + "\n", + " * The probability for every outcome in a single trial has the same value, for example the outcome of tossing (either heads or tails) a coin is always $1/2$.\n", + "\n", + "\n", + "\n", + "\n", + "## Probability Distribution Functions, the binomial distribution\n", + "\n", + "In order to compute the mean and variance we need to recall Newton's binomial\n", + "formula" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(a+b)^m=\\sum_{n=0}^m \\left(\\begin{array}{c} m \\\\ n\\end{array}\\right)a^nb^{m-n},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which can be used to show that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sum_{x=0}^n\\left(\\begin{array}{c} n \\\\ x\\end{array}\\right)y^x(1-y)^{n-x} = (y+1-y)^n = 1,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the PDF is normalized to one. \n", + "The mean value is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu = \\sum_{x=0}^n x\\left(\\begin{array}{c} n \\\\ x\\end{array}\\right)y^x(1-y)^{n-x} =\n", + "\\sum_{x=0}^n x\\frac{n!}{x!(n-x)!}y^x(1-y)^{n-x},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "resulting in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu = \n", + "\\sum_{x=0}^n x\\frac{(n-1)!}{(x-1)!(n-1-(x-1))!}y^{x-1}(1-y)^{n-1-(x-1)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which we rewrite as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu=ny\\sum_{\\nu=0}^n\\left(\\begin{array}{c} n-1 \\\\ \\nu\\end{array}\\right)y^{\\nu}(1-y)^{n-1-\\nu} =ny(y+1-y)^{n-1}=ny.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The variance is slightly trickier to get. It reads $\\sigma^2=ny(1-y)$. \n", + "\n", + "\n", + "## Probability Distribution Functions, Poisson's distribution\n", + "\n", + "Another important distribution with discrete stochastic variables $x$ is \n", + "the Poisson model, which resembles the exponential distribution and reads" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "p(x) = \\frac{\\lambda^x}{x!} e^{-\\lambda} \\hspace{0.5cm}x=0,1,\\dots,;\\lambda > 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case both the mean value and the variance are easier to calculate," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu = \\sum_{x=0}^{\\infty} x \\frac{\\lambda^x}{x!} e^{-\\lambda} = \\lambda e^{-\\lambda}\\sum_{x=1}^{\\infty}\n", + "\\frac{\\lambda^{x-1}}{(x-1)!}=\\lambda,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the variance is $\\sigma^2=\\lambda$.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Probability Distribution Functions, Poisson's distribution\n", + "An example of applications of the Poisson distribution could be the counting\n", + "of the number of $\\alpha$-particles emitted from a radioactive source in a given time interval.\n", + "In the limit of $n\\rightarrow \\infty$ and for small probabilities $y$, the binomial distribution\n", + "approaches the Poisson distribution. Setting $\\lambda = ny$, with $y$ the probability for an event in\n", + "the binomial distribution we can show that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\lim_{n\\rightarrow \\infty}\\left(\\begin{array}{c} n \\\\ x\\end{array}\\right)y^x(1-y)^{n-x} e^{-\\lambda}=\\sum_{x=1}^{\\infty}\\frac{\\lambda^x}{x!} e^{-\\lambda}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Meet the covariance!\n", + "An important quantity in a statistical analysis is the so-called covariance. \n", + "\n", + "Consider the set $\\{X_i\\}$ of $n$\n", + "stochastic variables (not necessarily uncorrelated) with the\n", + "multivariate PDF $P(x_1,\\dots,x_n)$. The *covariance* of two\n", + "of the stochastic variables, $X_i$ and $X_j$, is defined as follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\mathrm{Cov}(X_i,\\,X_j) = \\langle (x_i-\\langle x_i\\rangle)(x_j-\\langle x_j\\rangle)\\rangle \n", + "\\label{_auto2} \\tag{4}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + "=\\int\\cdots\\int (x_i-\\langle x_i\\rangle)(x_j-\\langle x_j\\rangle)P(x_1,\\dots,x_n)\\,dx_1\\dots dx_n,\n", + "\\label{eq:def_covariance} \\tag{5}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x_i\\rangle =\n", + "\\int\\cdots\\int x_i P(x_1,\\dots,x_n)\\,dx_1\\dots dx_n.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Meet the covariance in matrix disguise\n", + "If we consider the above covariance as a matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C_{ij} =\\mathrm{Cov}(X_i,\\,X_j),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "then the diagonal elements are just the familiar\n", + "variances, $C_{ii} = \\mathrm{Cov}(X_i,\\,X_i) = \\mathrm{Var}(X_i)$. It turns out that\n", + "all the off-diagonal elements are zero if the stochastic variables are\n", + "uncorrelated.\n", + "\n", + "\n", + "\n", + "\n", + "## Covariance" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.326171395345407\n", + "[[ 3.69846953 8.87161644 5.79706052 2.59295941 7.13844186 6.52942692\n", + " 5.82300984 12.46990394 8.66836341 6.39053163]\n", + " [ 8.87161644 21.28058041 13.90556201 6.21980014 17.12316883 15.66230861\n", + " 13.96780733 29.91188756 20.793032 15.32913683]\n", + " [ 5.79706052 13.90556201 9.08643708 4.06426023 11.18894698 10.23436389\n", + " 9.1271106 19.54559506 13.58697885 10.01665644]\n", + " [ 2.59295941 6.21980014 4.06426023 1.8178975 5.00468906 4.57771487\n", + " 4.08245303 8.74252295 6.07730151 4.4803368 ]\n", + " [ 7.13844186 17.12316883 11.18894698 5.00468906 13.77795648 12.60249248\n", + " 11.23903195 24.06824865 16.73086873 12.33440972]\n", + " [ 6.52942692 15.66230861 10.23436389 4.57771487 12.60249248 11.52731299\n", + " 10.28017586 22.01487013 15.30347753 11.28210167]\n", + " [ 5.82300984 13.96780733 9.1271106 4.08245303 11.23903195 10.28017586\n", + " 9.16796618 19.6330868 13.64779809 10.06149389]\n", + " [12.46990394 29.91188756 19.54559506 8.74252295 24.06824865 22.01487013\n", + " 19.6330868 42.04401385 29.22659172 21.54656538]\n", + " [ 8.66836341 20.793032 13.58697885 6.07730151 16.73086873 15.30347753\n", + " 13.64779809 29.22659172 20.31665356 14.97793888]\n", + " [ 6.39053163 15.32913683 10.01665644 4.4803368 12.33440972 11.28210167\n", + " 10.06149389 21.54656538 14.97793888 11.04210653]]\n" + ] + } + ], + "source": [ + "# Importing various packages\n", + "from math import exp, sqrt\n", + "from random import random, seed\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def covariance(x, y, n):\n", + " sum = 0.0\n", + " mean_x = np.mean(x)\n", + " mean_y = np.mean(y)\n", + " for i in range(0, n):\n", + " sum += (x[(i)]-mean_x)*(y[i]-mean_y)\n", + " return sum/n\n", + "\n", + "n = 10\n", + "\n", + "x=np.random.normal(size=n)\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "covxy = covariance(x,y,n)\n", + "print(covxy)\n", + "z = np.vstack((x, y))\n", + "c = np.cov(z.T)\n", + "\n", + "print(c)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Meet the covariance, uncorrelated events\n", + "\n", + "Consider the stochastic variables $X_i$ and $X_j$, ($i\\neq j$). We have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "Cov(X_i,\\,X_j) &= \\langle (x_i-\\langle x_i\\rangle)(x_j-\\langle x_j\\rangle)\\rangle\\\\\n", + "&=\\langle x_i x_j - x_i\\langle x_j\\rangle - \\langle x_i\\rangle x_j + \\langle x_i\\rangle\\langle x_j\\rangle\\rangle\\\\\n", + "&=\\langle x_i x_j\\rangle - \\langle x_i\\langle x_j\\rangle\\rangle - \\langle \\langle x_i\\rangle x_j \\rangle +\n", + "\\langle \\langle x_i\\rangle\\langle x_j\\rangle\\rangle \\\\\n", + "&=\\langle x_i x_j\\rangle - \\langle x_i\\rangle\\langle x_j\\rangle - \\langle x_i\\rangle\\langle x_j\\rangle +\n", + "\\langle x_i\\rangle\\langle x_j\\rangle \\\\\n", + "&=\\langle x_i x_j\\rangle - \\langle x_i\\rangle\\langle x_j\\rangle\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If $X_i$ and $X_j$ are independent (assuming $i \\neq j$), we have that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x_i x_j\\rangle = \\langle x_i\\rangle\\langle x_j\\rangle,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "leading to" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "Cov(X_i, X_j) = 0 \\hspace{0.1cm} (i\\neq j).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Numerical experiments and the covariance\n", + "\n", + "Now that we have constructed an idealized mathematical framework, let\n", + "us try to apply it to empirical observations. Examples of relevant\n", + "physical phenomena may be spontaneous decays of nuclei, or a purely\n", + "mathematical set of numbers produced by some deterministic\n", + "mechanism. It is the latter we will deal with, using so-called pseudo-random\n", + "number generators. In general our observations will contain only a limited set of\n", + "observables. We remind the reader that\n", + "a *stochastic process* is a process that produces sequentially a\n", + "chain of values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\{x_1, x_2,\\dots\\,x_k,\\dots\\}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Numerical experiments and the covariance\n", + "We will call these\n", + "values our *measurements* and the entire set as our measured\n", + "*sample*. The action of measuring all the elements of a sample\n", + "we will call a stochastic *experiment* (since, operationally,\n", + "they are often associated with results of empirical observation of\n", + "some physical or mathematical phenomena; precisely an experiment). We\n", + "assume that these values are distributed according to some \n", + "PDF $p_X^{\\phantom X}(x)$, where $X$ is just the formal symbol for the\n", + "stochastic variable whose PDF is $p_X^{\\phantom X}(x)$. Instead of\n", + "trying to determine the full distribution $p$ we are often only\n", + "interested in finding the few lowest moments, like the mean\n", + "$\\mu_X^{\\phantom X}$ and the variance $\\sigma_X^{\\phantom X}$.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Numerical experiments and the covariance, actual situations\n", + "In practical situations however, a sample is always of finite size. Let that\n", + "size be $n$. The expectation value of a sample $\\alpha$, the **sample mean**, is then defined as follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\langle x_{\\alpha} \\rangle \\equiv \\frac{1}{n}\\sum_{k=1}^n x_{\\alpha,k}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The *sample variance* is:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathrm{Var}(x) \\equiv \\frac{1}{n}\\sum_{k=1}^n (x_{\\alpha,k} - \\langle x_{\\alpha} \\rangle)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with its square root being the *standard deviation of the sample*.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Numerical experiments and the covariance, our observables\n", + "You can think of the above observables as a set of quantities which define\n", + "a given experiment. This experiment is then repeated several times, say $m$ times.\n", + "The total average is then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\langle X_m \\rangle= \\frac{1}{m}\\sum_{\\alpha=1}^mx_{\\alpha}=\\frac{1}{mn}\\sum_{\\alpha, k} x_{\\alpha,k},\n", + "\\label{eq:exptmean} \\tag{6}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the last sums end at $m$ and $n$.\n", + "The total variance is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma^2_m= \\frac{1}{mn^2}\\sum_{\\alpha=1}^m(\\langle x_{\\alpha} \\rangle-\\langle X_m \\rangle)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which we rewrite as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\sigma^2_m=\\frac{1}{m}\\sum_{\\alpha=1}^m\\sum_{kl=1}^n (x_{\\alpha,k}-\\langle X_m \\rangle)(x_{\\alpha,l}-\\langle X_m \\rangle).\n", + "\\label{eq:exptvariance} \\tag{7}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Numerical experiments and the covariance, the sample variance\n", + "\n", + "We define also the sample variance $\\sigma^2$ of all $mn$ individual experiments as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\sigma^2=\\frac{1}{mn}\\sum_{\\alpha=1}^m\\sum_{k=1}^n (x_{\\alpha,k}-\\langle X_m \\rangle)^2.\n", + "\\label{eq:sampleexptvariance} \\tag{8}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These quantities, being known experimental values or the results from our calculations, \n", + "may differ, in some cases\n", + "significantly, from the similarly named\n", + "exact values for the mean value $\\mu_X$, the variance $\\mathrm{Var}(X)$\n", + "and the covariance $\\mathrm{Cov}(X,Y)$.\n", + "\n", + "\n", + "\n", + "\n", + "## Numerical experiments and the covariance, central limit theorem\n", + "\n", + "The central limit theorem states that the PDF $\\tilde{p}(z)$ of\n", + "the average of $m$ random values corresponding to a PDF $p(x)$ \n", + "is a normal distribution whose mean is the \n", + "mean value of the PDF $p(x)$ and whose variance is the variance\n", + "of the PDF $p(x)$ divided by $m$, the number of values used to compute $z$.\n", + "\n", + "The central limit theorem leads then to the well-known expression for the\n", + "standard deviation, given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma_m=\n", + "\\frac{\\sigma}{\\sqrt{m}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In many cases the above estimate for the standard deviation, in particular if correlations are strong, may be too simplistic. We need therefore a more precise defintion of the error and the variance in our results.\n", + "\n", + "\n", + "\n", + "\n", + "## Definition of Correlation Functions and Standard Deviation\n", + "Our estimate of the true average $\\mu_{X}$ is the sample mean $\\langle X_m \\rangle$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu_{X}^{\\phantom X} \\approx X_m=\\frac{1}{mn}\\sum_{\\alpha=1}^m\\sum_{k=1}^n x_{\\alpha,k}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then use Eq. ([7](#eq:exptvariance))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma^2_m=\\frac{1}{mn^2}\\sum_{\\alpha=1}^m\\sum_{kl=1}^n (x_{\\alpha,k}-\\langle X_m \\rangle)(x_{\\alpha,l}-\\langle X_m \\rangle),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and rewrite it as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma^2_m=\\frac{\\sigma^2}{n}+\\frac{2}{mn^2}\\sum_{\\alpha=1}^m\\sum_{k\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\kappa_d = \\frac{f_d}{\\sigma^2}\n", + "\\label{eq:autocorrelformal} \\tag{9}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which gives us a useful measure of the correlation pair correlation\n", + "starting always at $1$ for $d=0$.\n", + "\n", + "\n", + "\n", + "\n", + "## Definition of Correlation Functions and Standard Deviation, sample variance\n", + "\n", + "The sample variance of the $mn$ experiments can now be\n", + "written in terms of the autocorrelation function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\sigma_m^2=\\frac{\\sigma^2}{n}+\\frac{2}{n}\\cdot\\sigma^2\\sum_{d=1}^{n-1}\n", + "\\frac{f_d}{\\sigma^2}=\\left(1+2\\sum_{d=1}^{n-1}\\kappa_d\\right)\\frac{1}{n}\\sigma^2=\\frac{\\tau}{n}\\cdot\\sigma^2\n", + "\\label{eq:error_estimate_corr_time} \\tag{10}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and we see that $\\sigma_m$ can be expressed in terms of the\n", + "uncorrelated sample variance times a correction factor $\\tau$ which\n", + "accounts for the correlation between measurements. We call this\n", + "correction factor the *autocorrelation time*" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\tau = 1+2\\sum_{d=1}^{n-1}\\kappa_d\n", + "\\label{eq:autocorrelation_time} \\tag{11}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "For a correlation free experiment, $\\tau$\n", + "equals 1.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Definition of Correlation Functions and Standard Deviation\n", + "From the point of view of\n", + "Eq. ([10](#eq:error_estimate_corr_time)) we can interpret a sequential\n", + "correlation as an effective reduction of the number of measurements by\n", + "a factor $\\tau$. The effective number of measurements becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "n_\\mathrm{eff} = \\frac{n}{\\tau}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To neglect the autocorrelation time $\\tau$ will always cause our\n", + "simple uncorrelated estimate of $\\sigma_m^2\\approx \\sigma^2/n$ to\n", + "be less than the true sample error. The estimate of the error will be\n", + "too \"good\". On the other hand, the calculation of the full\n", + "autocorrelation time poses an efficiency problem if the set of\n", + "measurements is very large. The solution to this problem is given by \n", + "more practically oriented methods like the blocking technique.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Code to compute the Covariance matrix and the Covariance" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.013391595241121325\n", + "3.928048747812062\n", + "0.2541339370909452\n", + "1.120378514037707 10.63959298552584 24.566354783521803\n", + "3.3052535182278904 4.0111040481640226 11.762555560696963\n", + "[[ 1.12037851 3.30525352 4.01110405]\n", + " [ 3.30525352 10.63959299 11.76255556]\n", + " [ 4.01110405 11.76255556 24.56635478]]\n", + "[32.11909624 0.07655085 4.13067919]\n" + ] + } + ], + "source": [ + "# Importing various packages\n", + "from math import exp, sqrt\n", + "from random import random, seed\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Sample covariance, note the factor 1/(n-1)\n", + "def covariance(x, y, n):\n", + " sum = 0.0\n", + " mean_x = np.mean(x)\n", + " mean_y = np.mean(y)\n", + " for i in range(0, n):\n", + " sum += (x[(i)]-mean_x)*(y[i]-mean_y)\n", + " return sum/(n-1.)\n", + "\n", + "n = 100\n", + "x = np.random.normal(size=n)\n", + "print(np.mean(x))\n", + "y = 4+3*x+np.random.normal(size=n)\n", + "print(np.mean(y))\n", + "z = x**3+np.random.normal(size=n)\n", + "print(np.mean(z))\n", + "covxx = covariance(x,x,n)\n", + "covyy = covariance(y,y,n)\n", + "covzz = covariance(z,z,n)\n", + "covxy = covariance(x,y,n)\n", + "covxz = covariance(x,z,n)\n", + "covyz = covariance(y,z,n)\n", + "print(covxx,covyy, covzz)\n", + "print(covxy,covxz, covyz)\n", + "w = np.vstack((x, y, z))\n", + "#print(w)\n", + "c = np.cov(w)\n", + "print(c)\n", + "#eigen = np.zeros(n)\n", + "Eigvals, Eigvecs = np.linalg.eig(c)\n", + "print(Eigvals)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Random Numbers\n", + "\n", + "Uniform deviates are just random numbers that lie within a specified range\n", + "(typically 0 to 1), with any one number in the range just as likely as any other. They\n", + "are, in other words, what you probably think random numbers are. However,\n", + "we want to distinguish uniform deviates from other sorts of random numbers, for\n", + "example numbers drawn from a normal (Gaussian) distribution of specified mean\n", + "and standard deviation. These other sorts of deviates are almost always generated by\n", + "performing appropriate operations on one or more uniform deviates, as we will see\n", + "in subsequent sections. So, a reliable source of random uniform deviates, the subject\n", + "of this section, is an essential building block for any sort of stochastic modeling\n", + "or Monte Carlo computer work.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Random Numbers, better name: pseudo random numbers\n", + "\n", + "A disclaimer is however appropriate. It should be fairly obvious that \n", + "something as deterministic as a computer cannot generate purely random numbers.\n", + "\n", + "Numbers generated by any of the standard algorithms are in reality pseudo random\n", + "numbers, hopefully abiding to the following criteria:\n", + "\n", + " * they produce a uniform distribution in the interval [0,1].\n", + "\n", + " * correlations between random numbers are negligible\n", + "\n", + " * the period before the same sequence of random numbers is repeated is as large as possible and finally\n", + "\n", + " * the algorithm should be fast.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG\n", + " The most common random number generators are based on so-called\n", + "Linear congruential relations of the type" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "N_i=(aN_{i-1}+c) \\mathrm{MOD} (M),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which yield a number in the interval [0,1] through" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "x_i=N_i/M\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The number \n", + "$M$ is called the period and it should be as large as possible \n", + " and \n", + "$N_0$ is the starting value, or seed. The function $\\mathrm{MOD}$ means the remainder,\n", + "that is if we were to evaluate $(13)\\mathrm{MOD}(9)$, the outcome is the remainder\n", + "of the division $13/9$, namely $4$.\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG and periodic outputs\n", + "\n", + "The problem with such generators is that their outputs are periodic;\n", + "they \n", + "will start to repeat themselves with a period that is at most $M$. If however\n", + "the parameters $a$ and $c$ are badly chosen, the period may be even shorter.\n", + "\n", + "Consider the following example" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "N_i=(6N_{i-1}+7) \\mathrm{MOD} (5),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with a seed $N_0=2$. This generator produces the sequence\n", + "$4,1,3,0,2,4,1,3,0,2,...\\dots$, i.e., a sequence with period $5$.\n", + "However, increasing $M$ may not guarantee a larger period as the following\n", + "example shows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "N_i=(27N_{i-1}+11) \\mathrm{MOD} (54),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which still, with $N_0=2$, results in $11,38,11,38,11,38,\\dots$, a period of\n", + "just $2$.\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG and its period\n", + "Typical periods for the random generators provided in the program library \n", + "are of the order of $\\sim 10^9$ or larger. Other random number generators which have\n", + "become increasingly popular are so-called shift-register generators.\n", + "In these generators each successive number depends on many preceding\n", + "values (rather than the last values as in the linear congruential\n", + "generator).\n", + "For example, you could make a shift register generator whose $l$th \n", + "number is the sum of the $l-i$th and $l-j$th values with modulo $M$," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "N_l=(aN_{l-i}+cN_{l-j})\\mathrm{MOD}(M).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Random number generator RNG, other examples\n", + "Such a generator again produces a sequence of pseudorandom numbers\n", + "but this time with a period much larger than $M$.\n", + "It is also possible to construct more elaborate algorithms by including\n", + "more than two past terms in the sum of each iteration.\n", + "One example is the generator of [Marsaglia and Zaman](http://dl.acm.org/citation.cfm?id=187154)\n", + "which consists of two congruential relations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " N_l=(N_{l-3}-N_{l-1})\\mathrm{MOD}(2^{31}-69),\n", + "\\label{eq:mz1} \\tag{12}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "followed by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " N_l=(69069N_{l-1}+1013904243)\\mathrm{MOD}(2^{32}),\n", + "\\label{eq:mz2} \\tag{13}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which according to the authors has a period larger than $2^{94}$.\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG, other examples\n", + "Instead of using modular addition, we could use the bitwise\n", + "exclusive-OR ($\\oplus$) operation so that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "N_l=(N_{l-i})\\oplus (N_{l-j})\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the bitwise action of $\\oplus$ means that if $N_{l-i}=N_{l-j}$ the result is\n", + "$0$ whereas if $N_{l-i}\\ne N_{l-j}$ the result is\n", + "$1$. As an example, consider the case where $N_{l-i}=6$ and $N_{l-j}=11$. The first\n", + "one has a bit representation (using 4 bits only) which reads $0110$ whereas the \n", + "second number is $1011$. Employing the $\\oplus$ operator yields \n", + "$1101$, or $2^3+2^2+2^0=13$.\n", + "\n", + "In Fortran90, the bitwise $\\oplus$ operation is coded through the intrinsic\n", + "function $\\mathrm{IEOR}(m,n)$ where $m$ and $n$ are the input numbers, while in $C$\n", + "it is given by $m\\wedge n$.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG, RAN0\n", + "\n", + "We show here how the linear congruential algorithm can be implemented, namely" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "N_i=(aN_{i-1}) \\mathrm{MOD} (M).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, since $a$ and $N_{i-1}$ are integers and their multiplication \n", + "could become greater than the standard 32 bit integer, there is a trick via \n", + "Schrage's algorithm which approximates the multiplication\n", + "of large integers through the factorization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "M=aq+r,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "q=[M/a],\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "r = M\\hspace{0.1cm}\\mathrm{MOD} \\hspace{0.1cm}a.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the brackets denote integer division. In the code below the numbers \n", + "$q$ and $r$ are chosen so that $r < q$.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG, RAN0\n", + "\n", + "To see how this works we note first that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "(aN_{i-1}) \\mathrm{MOD} (M)= (aN_{i-1}-[N_{i-1}/q]M)\\mathrm{MOD} (M),\n", + "\\label{eq:rntrick1} \\tag{14}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "since we can add or subtract any integer multiple of $M$ from $aN_{i-1}$.\n", + "The last term $[N_{i-1}/q]M\\mathrm{MOD}(M)$ is zero since the integer division \n", + "$[N_{i-1}/q]$ just yields a constant which is multiplied with $M$.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG, RAN0\n", + "We can now rewrite Eq. ([14](#eq:rntrick1)) as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "(aN_{i-1}) \\mathrm{MOD} (M)= (aN_{i-1}-[N_{i-1}/q](aq+r))\\mathrm{MOD} (M),\n", + "\\label{eq:rntrick2} \\tag{15}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "which results\n", + "in" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "(aN_{i-1}) \\mathrm{MOD} (M)= \\left(a(N_{i-1}-[N_{i-1}/q]q)-[N_{i-1}/q]r)\\right)\\mathrm{MOD} (M),\n", + "\\label{eq:rntrick3} \\tag{16}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "yielding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "(aN_{i-1}) \\mathrm{MOD} (M)= \\left(a(N_{i-1}\\mathrm{MOD} (q)) -[N_{i-1}/q]r)\\right)\\mathrm{MOD} (M).\n", + "\\label{eq:rntrick4} \\tag{17}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Random number generator RNG, RAN0\n", + "The term $[N_{i-1}/q]r$ is always smaller or equal $N_{i-1}(r/q)$ and with $r < q$ we obtain always a \n", + "number smaller than $N_{i-1}$, which is smaller than $M$. \n", + "And since the number $N_{i-1}\\mathrm{MOD} (q)$ is between zero and $q-1$ then\n", + "$a(N_{i-1}\\mathrm{MOD} (q))< aq$. Combined with our definition of $q=[M/a]$ ensures that \n", + "this term is also smaller than $M$ meaning that both terms fit into a\n", + "32-bit signed integer. None of these two terms can be negative, but their difference could.\n", + "The algorithm below adds $M$ if their difference is negative.\n", + "Note that the program uses the bitwise $\\oplus$ operator to generate\n", + "the starting point for each generation of a random number. The period\n", + "of $ran0$ is $\\sim 2.1\\times 10^{9}$. A special feature of this\n", + "algorithm is that is should never be called with the initial seed \n", + "set to $0$.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Random number generator RNG, RAN0 code" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " /*\n", + " ** The function\n", + " ** ran0()\n", + " ** is an \"Minimal\" random number generator of Park and Miller\n", + " ** Set or reset the input value\n", + " ** idum to any integer value (except the unlikely value MASK)\n", + " ** to initialize the sequence; idum must not be altered between\n", + " ** calls for sucessive deviates in a sequence.\n", + " ** The function returns a uniform deviate between 0.0 and 1.0.\n", + " */\n", + " double ran0(long &idum)\n", + " {\n", + " const int a = 16807, m = 2147483647, q = 127773;\n", + " const int r = 2836, MASK = 123459876;\n", + " const double am = 1./m;\n", + " long k;\n", + " double ans;\n", + " idum ^= MASK;\n", + " k = (*idum)/q;\n", + " idum = a*(idum - k*q) - r*k;\n", + " // add m if negative difference\n", + " if(idum < 0) idum += m;\n", + " ans=am*(idum);\n", + " idum ^= MASK;\n", + " return ans;\n", + " } // End: function ran0() \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Properties of Selected Random Number Generators\n", + "\n", + "As mentioned previously, the underlying PDF for the generation of\n", + "random numbers is the uniform distribution, meaning that the \n", + "probability for finding a number $x$ in the interval [0,1] is $p(x)=1$.\n", + "\n", + "A random number generator should produce numbers which are uniformly distributed\n", + "in this interval. The table shows the distribution of $N=10000$ random\n", + "numbers generated by the functions in the program library.\n", + "We note in this table that the number of points in the various\n", + "intervals $0.0-0.1$, $0.1-0.2$ etc are fairly close to $1000$, with some minor\n", + "deviations. \n", + "\n", + "Two additional measures are the standard deviation $\\sigma$ and the mean\n", + "$\\mu=\\langle x\\rangle$.\n", + "\n", + "\n", + "\n", + "\n", + "## Properties of Selected Random Number Generators\n", + "For the uniform distribution, the mean value $\\mu$ is then" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mu=\\langle x\\rangle=\\frac{1}{2}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "while the standard deviation is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma=\\sqrt{\\langle x^2\\rangle-\\mu^2}=\\frac{1}{\\sqrt{12}}=0.2886.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Properties of Selected Random Number Generators\n", + "The various random number generators produce results which agree rather well with\n", + "these limiting values. \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    $x$-bin ran0 ran1 ran2 ran3
    0.0-0.1 1013 991 938 1047
    0.1-0.2 1002 1009 1040 1030
    0.2-0.3 989 999 1030 993
    0.3-0.4 939 960 1023 937
    0.4-0.5 1038 1001 1002 992
    0.5-0.6 1037 1047 1009 1009
    0.6-0.7 1005 989 1003 989
    0.7-0.8 986 962 985 954
    0.8-0.9 1000 1027 1009 1023
    0.9-1.0 991 1015 961 1026
    $\\mu$ 0.4997 0.5018 0.4992 0.4990
    $\\sigma$ 0.2882 0.2892 0.2861 0.2915
    \n", + "\n", + "\n", + "\n", + "\n", + "## Simple demonstration of RNGs using python\n", + "The following simple Python code plots the distribution of the produced random numbers using the linear congruential RNG employed by Python. The trend displayed in the previous table is seen rather clearly." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/statistics_178_0.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#!/usr/bin/env python\n", + "import numpy as np\n", + "import matplotlib.mlab as mlab\n", + "import matplotlib.pyplot as plt\n", + "import random\n", + "\n", + "# initialize the rng with a seed\n", + "random.seed() \n", + "counts = 10000\n", + "values = np.zeros(counts) \n", + "for i in range (1, counts, 1):\n", + " values[i] = random.random()\n", + "\n", + "# the histogram of the data\n", + "n, bins, patches = plt.hist(values, 10, facecolor='green')\n", + "\n", + "plt.xlabel('$x$')\n", + "plt.ylabel('Number of counts')\n", + "plt.title(r'Test of uniform distribution')\n", + "plt.axis([0, 1, 0, 1100])\n", + "plt.grid(True)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Properties of Selected Random Number Generators\n", + "Since our random numbers, which are typically generated via a linear congruential algorithm,\n", + "are never fully independent, we can then define \n", + "an important test which measures the degree of correlation, namely the so-called \n", + "auto-correlation function defined previously, see again Eq. ([9](#eq:autocorrelformal)).\n", + "We rewrite it here as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C_k=\\frac{f_d}\n", + " {\\sigma^2},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "with $C_0=1$. Recall that \n", + "$\\sigma^2=\\langle x_i^2\\rangle-\\langle x_i\\rangle^2$ and that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "f_d = \\frac{1}{nm}\\sum_{\\alpha=1}^m\\sum_{k=1}^{n-d}(x_{\\alpha,k}-\\langle X_m \\rangle)(x_{\\alpha,k+d}-\\langle X_m \\rangle),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The non-vanishing of $C_k$ for $k\\ne 0$ means that the random\n", + "numbers are not independent. The independence of the random numbers is crucial \n", + "in the evaluation of other expectation values. If they are not independent, our\n", + "assumption for approximating $\\sigma_N$ is no longer valid.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Autocorrelation function\n", + "This program computes the autocorrelation function as discussed in the equation on the previous slide for random numbers generated with the normal distribution $N(0,1)$." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.02199760234666908 0.988308050529955\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/MortenImac/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/statistics_184_1.png" + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Importing various packages\n", + "from math import exp, sqrt\n", + "from random import random, seed\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def autocovariance(x, n, k, mean_x):\n", + " sum = 0.0\n", + " for i in range(0, n-k):\n", + " sum += (x[(i+k)]-mean_x)*(x[i]-mean_x)\n", + " return sum/n\n", + "\n", + "n = 1000\n", + "x=np.random.normal(size=n)\n", + "autocor = np.zeros(n)\n", + "figaxis = np.zeros(n)\n", + "mean_x=np.mean(x)\n", + "var_x = np.var(x)\n", + "print(mean_x, var_x)\n", + "for i in range (0, n):\n", + " figaxis[i] = i\n", + " autocor[i]=(autocovariance(x, n, i, mean_x))/var_x \n", + "\n", + "plt.plot(figaxis, autocor, \"r-\")\n", + "plt.axis([0,n,-0.1, 1.0])\n", + "plt.xlabel(r'$i$')\n", + "plt.ylabel(r'$\\gamma_i$')\n", + "plt.title(r'Autocorrelation function')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As can be seen from the plot, the first point gives back the variance and a value of one. \n", + "For the remaining values we notice that there are still non-zero values for the auto-correlation function.\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Correlation function and which random number generators should I use\n", + "The program here computes the correlation function for one of the standard functions included with the c++ compiler." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " // This function computes the autocorrelation function for \n", + " // the standard c++ random number generator\n", + " \n", + " #include \n", + " #include \n", + " #include \n", + " #include \n", + " using namespace std;\n", + " // output file as global variable\n", + " ofstream ofile; \n", + " \n", + " // Main function begins here \n", + " int main(int argc, char* argv[])\n", + " {\n", + " int n;\n", + " char *outfilename;\n", + " \n", + " cin >> n;\n", + " double MCint = 0.; double MCintsqr2=0.;\n", + " double invers_period = 1./RAND_MAX; // initialise the random number generator\n", + " srand(time(NULL)); // This produces the so-called seed in MC jargon\n", + " // Compute the variance and the mean value of the uniform distribution\n", + " // Compute also the specific values x for each cycle in order to be able to\n", + " // the covariance and the correlation function \n", + " // Read in output file, abort if there are too few command-line arguments\n", + " if( argc <= 2 ){\n", + " cout << \"Bad Usage: \" << argv[0] << \n", + " \t \" read also output file and number of cycles on same line\" << endl;\n", + " exit(1);\n", + " }\n", + " else{\n", + " outfilename=argv[1];\n", + " }\n", + " ofile.open(outfilename); \n", + " // Get the number of Monte-Carlo samples\n", + " n = atoi(argv[2]);\n", + " double *X; \n", + " X = new double[n];\n", + " for (int i = 0; i < n; i++){\n", + " double x = double(rand())*invers_period; \n", + " X[i] = x;\n", + " MCint += x;\n", + " MCintsqr2 += x*x;\n", + " }\n", + " double Mean = MCint/((double) n );\n", + " MCintsqr2 = MCintsqr2/((double) n );\n", + " double STDev = sqrt(MCintsqr2-Mean*Mean);\n", + " double Variance = MCintsqr2-Mean*Mean;\n", + " // Write mean value and standard deviation \n", + " cout << \" Standard deviation= \" << STDev << \" Integral = \" << Mean << endl;\n", + " \n", + " // Now we compute the autocorrelation function\n", + " double *autocor; autocor = new double[n];\n", + " for (int j = 0; j < n; j++){\n", + " double sum = 0.0;\n", + " for (int k = 0; k < (n-j); k++){\n", + " \t sum += (X[k]-Mean)*(X[k+j]-Mean); \n", + " }\n", + " autocor[j] = sum/Variance/((double) n );\n", + " ofile << setiosflags(ios::showpoint | ios::uppercase);\n", + " ofile << setw(15) << setprecision(8) << j;\n", + " ofile << setw(15) << setprecision(8) << autocor[j] << endl;\n", + " }\n", + " ofile.close(); // close output file\n", + " return 0;\n", + " } // end of main program \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Which RNG should I use?\n", + "* C++ has a class called **random**. The [random class](http://www.cplusplus.com/reference/random/) contains a large selection of RNGs and is highly recommended. Some of these RNGs have very large periods making it thereby very safe to use these RNGs in case one is performing large calculations. In particular, the [Mersenne twister random number engine](http://www.cplusplus.com/reference/random/mersenne_twister_engine/) has a period of $2^{19937}$. \n", + "\n", + "* Add RNGs in Python\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## How to use the Mersenne generator\n", + "The following part of a c++ code (from project 4) sets up the uniform distribution for $x\\in [0,1]$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " /*\n", + " \n", + " // You need this \n", + " #include \n", + " \n", + " // Initialize the seed and call the Mersienne algo\n", + " std::random_device rd;\n", + " std::mt19937_64 gen(rd());\n", + " // Set up the uniform distribution for x \\in [[0, 1]\n", + " std::uniform_real_distribution RandomNumberGenerator(0.0,1.0);\n", + " \n", + " // Now use the RNG\n", + " int ix = (int) (RandomNumberGenerator(gen)*NSpins);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Why blocking?\n", + "**Statistical analysis.**\n", + "\n", + " * Monte Carlo simulations can be treated as *computer experiments*\n", + "\n", + " * The results can be analysed with the same statistical tools as we would use analysing experimental data.\n", + "\n", + " * As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors.\n", + "\n", + "A very good article which explains blocking is H. Flyvbjerg and H. G. Petersen, *Error estimates on averages of correlated data*, [Journal of Chemical Physics 91, 461-466 (1989)](http://scitation.aip.org/content/aip/journal/jcp/91/1/10.1063/1.457480).\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "\n", + "## Why blocking?\n", + "**Statistical analysis.**\n", + "\n", + " * As in other experiments, Monte Carlo experiments have two classes of errors:\n", + "\n", + " * Statistical errors\n", + "\n", + " * Systematical errors\n", + "\n", + "\n", + " * Statistical errors can be estimated using standard tools from statistics\n", + "\n", + " * Systematical errors are method specific and must be treated differently from case to case. (In VMC a common source is the step length or time step in importance sampling)\n", + "\n", + " \n", + "\n", + "\n", + "\n", + "## Code to demonstrate the calculation of the autocorrelation function\n", + "The following code computes the autocorrelation function, the covariance and the standard deviation\n", + "for standard RNG. \n", + "The [following file](https://github.com/CompPhysics/ComputationalPhysics2/tree/gh-pages/doc/Programs/LecturePrograms/programs/Blocking/autocorrelation.cpp) gives the code." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " // This function computes the autocorrelation function for \n", + " // the Mersenne random number generator with a uniform distribution\n", + " #include \n", + " #include \n", + " #include \n", + " #include \n", + " #include \n", + " #include \n", + " #include \n", + " #include \n", + " using namespace std;\n", + " using namespace arma;\n", + " // output file\n", + " ofstream ofile;\n", + " \n", + " // Main function begins here \n", + " int main(int argc, char* argv[])\n", + " {\n", + " int MonteCarloCycles;\n", + " string filename;\n", + " if (argc > 1) {\n", + " filename=argv[1];\n", + " MonteCarloCycles = atoi(argv[2]);\n", + " string fileout = filename;\n", + " string argument = to_string(MonteCarloCycles);\n", + " fileout.append(argument);\n", + " ofile.open(fileout);\n", + " }\n", + " \n", + " // Compute the variance and the mean value of the uniform distribution\n", + " // Compute also the specific values x for each cycle in order to be able to\n", + " // compute the covariance and the correlation function \n", + " \n", + " vec X = zeros(MonteCarloCycles);\n", + " double MCint = 0.; double MCintsqr2=0.;\n", + " std::random_device rd;\n", + " std::mt19937_64 gen(rd());\n", + " // Set up the uniform distribution for x \\in [[0, 1]\n", + " std::uniform_real_distribution RandomNumberGenerator(0.0,1.0);\n", + " for (int i = 0; i < MonteCarloCycles; i++){\n", + " double x = RandomNumberGenerator(gen); \n", + " X(i) = x;\n", + " MCint += x;\n", + " MCintsqr2 += x*x;\n", + " }\n", + " double Mean = MCint/((double) MonteCarloCycles );\n", + " MCintsqr2 = MCintsqr2/((double) MonteCarloCycles );\n", + " double STDev = sqrt(MCintsqr2-Mean*Mean);\n", + " double Variance = MCintsqr2-Mean*Mean;\n", + " // Write mean value and variance\n", + " cout << \" Sample variance= \" << Variance << \" Mean value = \" << Mean << endl;\n", + " // Now we compute the autocorrelation function\n", + " vec autocorrelation = zeros(MonteCarloCycles);\n", + " for (int j = 0; j < MonteCarloCycles; j++){\n", + " double sum = 0.0;\n", + " for (int k = 0; k < (MonteCarloCycles-j); k++){\n", + " sum += (X(k)-Mean)*(X(k+j)-Mean); \n", + " }\n", + " autocorrelation(j) = sum/Variance/((double) MonteCarloCycles );\n", + " ofile << setiosflags(ios::showpoint | ios::uppercase);\n", + " ofile << setw(15) << setprecision(8) << j;\n", + " ofile << setw(15) << setprecision(8) << autocorrelation(j) << endl;\n", + " }\n", + " // Now compute the exact covariance using the autocorrelation function\n", + " double Covariance = 0.0;\n", + " for (int j = 0; j < MonteCarloCycles; j++){\n", + " Covariance += autocorrelation(j);\n", + " }\n", + " Covariance *= 2.0/((double) MonteCarloCycles);\n", + " // Compute now the total variance, including the covariance, and obtain the standard deviation\n", + " double TotalVariance = (Variance/((double) MonteCarloCycles ))+Covariance;\n", + " cout << \"Covariance =\" << Covariance << \"Totalvariance= \" << TotalVariance << \"Sample Variance/n= \" << (Variance/((double) MonteCarloCycles )) << endl;\n", + " cout << \" STD from sample variance= \" << sqrt(Variance/((double) MonteCarloCycles )) << \" STD with covariance = \" << sqrt(TotalVariance) << endl;\n", + " \n", + " ofile.close(); // close output file\n", + " return 0;\n", + " } // end of main program \n", + " \n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## What is blocking?\n", + "**Blocking.**\n", + "\n", + " * Say that we have a set of samples from a Monte Carlo experiment\n", + "\n", + " * Assuming (wrongly) that our samples are uncorrelated our best estimate of the standard deviation of the mean $\\langle \\mathbf{M}\\rangle$ is given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma=\\sqrt{\\frac{1}{n}\\left(\\langle \\mathbf{M}^2\\rangle-\\langle \\mathbf{M}\\rangle^2\\right)}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* If the samples are correlated we can rewrite our results to show that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\sigma=\\sqrt{\\frac{1+2\\tau/\\Delta t}{n}\\left(\\langle \\mathbf{M}^2\\rangle-\\langle \\mathbf{M}\\rangle^2\\right)}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $\\tau$ is the correlation time (the time between a sample and the next uncorrelated sample) and $\\Delta t$ is time between each sample\n", + "\n", + " \n", + "\n", + "\n", + "## What is blocking?\n", + "**Blocking.**\n", + "\n", + " * If $\\Delta t\\gg\\tau$ our first estimate of $\\sigma$ still holds\n", + "\n", + " * Much more common that $\\Delta t<\\tau$\n", + "\n", + " * In the method of data blocking we divide the sequence of samples into blocks\n", + "\n", + " * We then take the mean $\\langle \\mathbf{M}_i\\rangle$ of block $i=1\\ldots n_{blocks}$ to calculate the total mean and variance\n", + "\n", + " * The size of each block must be so large that sample $j$ of block $i$ is not correlated with sample $j$ of block $i+1$\n", + "\n", + " * The correlation time $\\tau$ would be a good choice\n", + "\n", + "\n", + "\n", + "\n", + "## What is blocking?\n", + "**Blocking.**\n", + "\n", + " * Problem: We don't know $\\tau$ or it is too expensive to compute\n", + "\n", + " * Solution: Make a plot of std. dev. as a function of blocksize\n", + "\n", + " * The estimate of std. dev. of correlated data is too low $\\to$ the error will increase with increasing block size until the blocks are uncorrelated, where we reach a plateau\n", + "\n", + " * When the std. dev. stops increasing the blocks are uncorrelated\n", + "\n", + "\n", + "\n", + "\n", + "## Implementation\n", + " * Do a Monte Carlo simulation, storing all samples to file\n", + "\n", + " * Do the statistical analysis on this file, independently of your Monte Carlo program\n", + "\n", + " * Read the file into an array\n", + "\n", + " * Loop over various block sizes\n", + "\n", + " * For each block size $n_b$, loop over the array in steps of $n_b$ taking the mean of elements $i n_b,\\ldots,(i+1) n_b$\n", + "\n", + " * Take the mean and variance of the resulting array\n", + "\n", + " * Write the results for each block size to file for later\n", + " analysis\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "## Actual implementation with code, main function\n", + "When the file gets large, it can be useful to write your data in binary mode instead of ascii characters.\n", + "The [following python file](https://github.com/CompPhysics/MachineLearning/blob/master/doc/Programs/Sampling/analysis.py) reads data from file with the output from every Monte Carlo cycle." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "ename": "IndentationError", + "evalue": "unexpected indent (4258989918.py, line 2)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"/var/folders/jy/g42mrgv128v34gnnhxwk9nrc0000gp/T/ipykernel_41418/4258989918.py\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m @timeFunction\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" + ] + } + ], + "source": [ + "# Blocking\n", + " @timeFunction\n", + " def blocking(self, blockSizeMax = 500):\n", + " blockSizeMin = 1\n", + "\n", + " self.blockSizes = []\n", + " self.meanVec = []\n", + " self.varVec = []\n", + "\n", + " for i in range(blockSizeMin, blockSizeMax):\n", + " if(len(self.data) % i != 0):\n", + " pass#continue\n", + " blockSize = i\n", + " meanTempVec = []\n", + " varTempVec = []\n", + " startPoint = 0\n", + " endPoint = blockSize\n", + "\n", + " while endPoint <= len(self.data):\n", + " meanTempVec.append(np.average(self.data[startPoint:endPoint]))\n", + " startPoint = endPoint\n", + " endPoint += blockSize\n", + " mean, var = np.average(meanTempVec), np.var(meanTempVec)/len(meanTempVec)\n", + " self.meanVec.append(mean)\n", + " self.varVec.append(var)\n", + " self.blockSizes.append(blockSize)\n", + "\n", + " self.blockingAvg = np.average(self.meanVec[-200:])\n", + " self.blockingVar = (np.average(self.varVec[-200:]))\n", + " self.blockingStd = np.sqrt(self.blockingVar)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The Bootstrap method\n", + "\n", + "The Bootstrap resampling method is also very popular. It is very simple:\n", + "\n", + "1. Start with your sample of measurements and compute the sample variance and the mean values\n", + "\n", + "2. Then start again but pick in a random way the numbers in the sample and recalculate the mean and the sample variance.\n", + "\n", + "3. Repeat this $K$ times.\n", + "\n", + "It can be shown, see the article by [Efron](https://projecteuclid.org/download/pdf_1/euclid.aos/1176344552)\n", + "that it produces the correct standard deviation.\n", + "\n", + "This method is very useful for small ensembles of data points. \n", + "\n", + "\n", + "## Bootstrapping\n", + "Given a set of $N$ data, assume that we are interested in some \n", + "observable $\\theta$ which may be estimated from that set. This observable can also be for example the result of a fit based on all $N$ raw data. \n", + "Let us call the value of the observable obtained from the original \n", + "data set $\\hat{\\theta}$. One recreates from the sample repeatedly \n", + "other samples by choosing randomly $N$ data out of the original set. \n", + "This costs essentially nothing, since we just recycle the original data set for the building of new sets. \n", + "\n", + "\n", + "## Bootstrapping, recipe\n", + "Let us assume we have done this $K$ times and thus have $K$ sets of $N$ \n", + "data values each. \n", + "Of course some values will enter more than once in the new sets. For each of these sets one computes the observable $\\theta$ resulting in values $\\theta_k$ with $k = 1,...,K$. Then one determines" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{\\theta} = \\frac{1}{K} \\sum_{k=1}^K \\theta_k,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "sigma^2_{\\tilde{\\theta}} = \\frac{1}{K} \\sum_{k=1}^K \\left(\\theta_k-\\tilde{\\theta}\\right)^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These are estimators for $\\angle\\theta\\rangle$ and its variance. They are not unbiased and therefore \n", + "$\\tilde{\\theta}\\neq\\hat{\\theta}$ for finite K. \n", + "\n", + "The difference is called bias and gives an idea on how far away the result may be from \n", + "the true $\\angle\\theta\\rangle$. As final result for the observable one quotes $\\angle\\theta\\rangle = \\tilde{\\theta} \\pm \\sigma_{\\tilde{\\theta}}$ .\n", + "\n", + "\n", + "\n", + "## Bootstrapping, [code](https://github.com/CompPhysics/MachineLearning/blob/master/doc/Programs/Sampling/analysis.py)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # Bootstrap\n", + " @timeFunction\n", + " def bootstrap(self, nBoots = 1000):\n", + " bootVec = np.zeros(nBoots)\n", + " for k in range(0,nBoots):\n", + " bootVec[k] = np.average(np.random.choice(self.data, len(self.data)))\n", + " self.bootAvg = np.average(bootVec)\n", + " self.bootVar = np.var(bootVec)\n", + " self.bootStd = np.std(bootVec)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Jackknife, [code](https://github.com/CompPhysics/MachineLearning/blob/master/doc/Programs/Sampling/analysis.py)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " # Jackknife\n", + " @timeFunction\n", + " def jackknife(self):\n", + " jackknVec = np.zeros(len(self.data))\n", + " for k in range(0,len(self.data)):\n", + " jackknVec[k] = np.average(np.delete(self.data, k))\n", + " self.jackknAvg = self.avg - (len(self.data) - 1) * (np.average(jackknVec) - self.avg)\n", + " self.jackknVar = float(len(self.data) - 1) * np.var(jackknVec)\n", + " self.jackknStd = np.sqrt(self.jackknVar)\n" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/statistics.py b/doc/LectureNotes/_build/jupyter_execute/statistics.py new file mode 100644 index 000000000..d46d27034 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/statistics.py @@ -0,0 +1,1852 @@ +#!/usr/bin/env python +# coding: utf-8 + +# # Elements of Probability Theory and Statistical Data Analysis +# +# +# ## Domains and probabilities +# Consider the following simple example, namely the tossing of two dice, resulting in the following possible values + +# $$ +# \{2,3,4,5,6,7,8,9,10,11,12\}. +# $$ + +# These values are called the *domain*. +# To this domain we have the corresponding *probabilities* + +# $$ +# \{1/36,2/36/,3/36,4/36,5/36,6/36,5/36,4/36,3/36,2/36,1/36\}. +# $$ + +# ## Tossing the dice +# The numbers in the domain are the outcomes of the physical process of tossing say two dice. +# We cannot tell beforehand whether the outcome is 3 or 5 or any other number in this domain. +# This defines the randomness of the outcome, or unexpectedness or any other synonimous word which +# encompasses the uncertitude of the final outcome. +# +# The only thing we can tell beforehand +# is that say the outcome 2 has a certain probability. +# If our favorite hobby is to spend an hour every evening throwing dice and +# registering the sequence of outcomes, we will note that the numbers in the above domain + +# $$ +# \{2,3,4,5,6,7,8,9,10,11,12\}, +# $$ + +# appear in a random order. After 11 throws the results may look like + +# $$ +# \{10,8,6,3,6,9,11,8,12,4,5\}. +# $$ + +# ## Stochastic variables +# +# **Random variables are characterized by a domain which contains all possible values that the random value may take. This domain has a corresponding probability distribution function(PDF)**. +# +# +# +# +# ## Stochastic variables and the main concepts, the discrete case +# There are two main concepts associated with a stochastic variable. The +# *domain* is the set $\mathbb D = \{x\}$ of all accessible values +# the variable can assume, so that $X \in \mathbb D$. An example of a +# discrete domain is the set of six different numbers that we may get by +# throwing of a dice, $x\in\{1,\,2,\,3,\,4,\,5,\,6\}$. +# +# The *probability distribution function (PDF)* is a function +# $p(x)$ on the domain which, in the discrete case, gives us the +# probability or relative frequency with which these values of $X$ +# occur + +# $$ +# p(x) = \mathrm{Prob}(X=x). +# $$ + +# ## Stochastic variables and the main concepts, the continuous case +# In the continuous case, the PDF does not directly depict the +# actual probability. Instead we define the probability for the +# stochastic variable to assume any value on an infinitesimal interval +# around $x$ to be $p(x)dx$. The continuous function $p(x)$ then gives us +# the *density* of the probability rather than the probability +# itself. The probability for a stochastic variable to assume any value +# on a non-infinitesimal interval $[a,\,b]$ is then just the integral + +# $$ +# \mathrm{Prob}(a\leq X\leq b) = \int_a^b p(x)dx. +# $$ + +# Qualitatively speaking, a stochastic variable represents the values of +# numbers chosen as if by chance from some specified PDF so that the +# selection of a large set of these numbers reproduces this PDF. +# +# +# +# +# ## The cumulative probability +# Of interest to us is the *cumulative probability +# distribution function* (**CDF**), $P(x)$, which is just the probability +# for a stochastic variable $X$ to assume any value less than $x$ + +# $$ +# P(x)=\mathrm{Prob(}X\leq x\mathrm{)} = +# \int_{-\infty}^x p(x^{\prime})dx^{\prime}. +# $$ + +# The relation between a CDF and its corresponding PDF is then + +# $$ +# p(x) = \frac{d}{dx}P(x). +# $$ + +# ## Properties of PDFs +# +# There are two properties that all PDFs must satisfy. The first one is +# positivity (assuming that the PDF is normalized) + +# $$ +# 0 \leq p(x) \leq 1. +# $$ + +# Naturally, it would be nonsensical for any of the values of the domain +# to occur with a probability greater than $1$ or less than $0$. Also, +# the PDF must be normalized. That is, all the probabilities must add up +# to unity. The probability of "anything" to happen is always unity. For +# both discrete and continuous PDFs, this condition is + +# $$ +# \begin{align*} +# \sum_{x_i\in\mathbb D} p(x_i) & = 1,\\ +# \int_{x\in\mathbb D} p(x)\,dx & = 1. +# \end{align*} +# $$ + +# ## Important distributions, the uniform distribution +# The first one +# is the most basic PDF; namely the uniform distribution + +# +#
    +# +# $$ +# \begin{equation} +# p(x) = \frac{1}{b-a}\theta(x-a)\theta(b-x). +# \label{eq:unifromPDF} \tag{1} +# \end{equation} +# $$ + +# For $a=0$ and $b=1$ we have + +# $$ +# \begin{array}{ll} +# p(x)dx = dx & \in [0,1]. +# \end{array} +# $$ + +# The latter distribution is used to generate random numbers. For other PDFs, one needs normally a mapping from this distribution to say for example the exponential distribution. +# +# +# +# +# ## Gaussian distribution +# The second one is the Gaussian Distribution + +# $$ +# p(x) = \frac{1}{\sigma\sqrt{2\pi}} \exp{(-\frac{(x-\mu)^2}{2\sigma^2})}, +# $$ + +# with mean value $\mu$ and standard deviation $\sigma$. If $\mu=0$ and $\sigma=1$, it is normally called the **standard normal distribution** + +# $$ +# p(x) = \frac{1}{\sqrt{2\pi}} \exp{(-\frac{x^2}{2})}, +# $$ + +# The following simple Python code plots the above distribution for different values of $\mu$ and $\sigma$. + +# In[1]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +import numpy as np +from math import acos, exp, sqrt +from matplotlib import pyplot as plt +from matplotlib import rc, rcParams +import matplotlib.units as units +import matplotlib.ticker as ticker +rc('text',usetex=True) +rc('font',**{'family':'serif','serif':['Gaussian distribution']}) +font = {'family' : 'serif', + 'color' : 'darkred', + 'weight' : 'normal', + 'size' : 16, + } +pi = acos(-1.0) +mu0 = 0.0 +sigma0 = 1.0 +mu1= 1.0 +sigma1 = 2.0 +mu2 = 2.0 +sigma2 = 4.0 + +x = np.linspace(-20.0, 20.0) +v0 = np.exp(-(x*x-2*x*mu0+mu0*mu0)/(2*sigma0*sigma0))/sqrt(2*pi*sigma0*sigma0) +v1 = np.exp(-(x*x-2*x*mu1+mu1*mu1)/(2*sigma1*sigma1))/sqrt(2*pi*sigma1*sigma1) +v2 = np.exp(-(x*x-2*x*mu2+mu2*mu2)/(2*sigma2*sigma2))/sqrt(2*pi*sigma2*sigma2) +plt.plot(x, v0, 'b-', x, v1, 'r-', x, v2, 'g-') +plt.title(r'{\bf Gaussian distributions}', fontsize=20) +plt.text(-19, 0.3, r'Parameters: $\mu = 0$, $\sigma = 1$', fontdict=font) +plt.text(-19, 0.18, r'Parameters: $\mu = 1$, $\sigma = 2$', fontdict=font) +plt.text(-19, 0.08, r'Parameters: $\mu = 2$, $\sigma = 4$', fontdict=font) +plt.xlabel(r'$x$',fontsize=20) +plt.ylabel(r'$p(x)$ [MeV]',fontsize=20) + +# Tweak spacing to prevent clipping of ylabel +plt.subplots_adjust(left=0.15) +plt.savefig('gaussian.pdf', format='pdf') +plt.show() + + +# ## Exponential distribution +# Another important distribution in science is the exponential distribution + +# $$ +# p(x) = \alpha\exp{-(\alpha x)}. +# $$ + +# ## Expectation values +# Let $h(x)$ be an arbitrary continuous function on the domain of the stochastic +# variable $X$ whose PDF is $p(x)$. We define the *expectation value* +# of $h$ with respect to $p$ as follows + +# +#
    +# +# $$ +# \begin{equation} +# \langle h \rangle_X \equiv \int\! h(x)p(x)\,dx +# \label{eq:expectation_value_of_h_wrt_p} \tag{2} +# \end{equation} +# $$ + +# Whenever the PDF is known implicitly, like in this case, we will drop +# the index $X$ for clarity. +# A particularly useful class of special expectation values are the +# *moments*. The $n$-th moment of the PDF $p$ is defined as +# follows + +# $$ +# \langle x^n \rangle \equiv \int\! x^n p(x)\,dx +# $$ + +# ## Stochastic variables and the main concepts, mean values +# The zero-th moment $\langle 1\rangle$ is just the normalization condition of +# $p$. The first moment, $\langle x\rangle$, is called the *mean* of $p$ +# and often denoted by the letter $\mu$ + +# $$ +# \langle x\rangle = \mu \equiv \int x p(x)dx, +# $$ + +# for a continuous distribution and + +# $$ +# \langle x\rangle = \mu \equiv \sum_{i=1}^N x_i p(x_i), +# $$ + +# for a discrete distribution. +# Qualitatively it represents the centroid or the average value of the +# PDF and is therefore simply called the expectation value of $p(x)$. +# +# +# +# +# ## Stochastic variables and the main concepts, central moments, the variance +# +# A special version of the moments is the set of *central moments*, the n-th central moment defined as + +# $$ +# \langle (x-\langle x\rangle )^n\rangle \equiv \int\! (x-\langle x\rangle)^n p(x)\,dx +# $$ + +# The zero-th and first central moments are both trivial, equal $1$ and +# $0$, respectively. But the second central moment, known as the +# *variance* of $p$, is of particular interest. For the stochastic +# variable $X$, the variance is denoted as $\sigma^2_X$ or $\mathrm{Var}(X)$ + +# $$ +# \begin{align*} +# \sigma^2_X &=\mathrm{Var}(X) = \langle (x-\langle x\rangle)^2\rangle = +# \int (x-\langle x\rangle)^2 p(x)dx\\ +# & = \int\left(x^2 - 2 x \langle x\rangle^{2} +\langle x\rangle^2\right)p(x)dx\\ +# & = \langle x^2\rangle - 2 \langle x\rangle\langle x\rangle + \langle x\rangle^2\\ +# & = \langle x^2 \rangle - \langle x\rangle^2 +# \end{align*} +# $$ + +# The square root of the variance, $\sigma =\sqrt{\langle (x-\langle x\rangle)^2\rangle}$ is called the +# **standard deviation** of $p$. It is the RMS (root-mean-square) +# value of the deviation of the PDF from its mean value, interpreted +# qualitatively as the "spread" of $p$ around its mean. +# +# +# +# +# +# +# ## Probability Distribution Functions +# +# The following table collects properties of probability distribution functions. +# In our notation we reserve the label $p(x)$ for the probability of a certain event, +# while $P(x)$ is the cumulative probability. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +#
    Discrete PDF Continuous PDF
    Domain $\left\{x_1, x_2, x_3, \dots, x_N\right\}$ $[a,b]$
    Probability $p(x_i)$ $p(x)dx$
    Cumulative $P_i=\sum_{l=1}^ip(x_l)$ $P(x)=\int_a^xp(t)dt$
    Positivity $0 \le p(x_i) \le 1$ $p(x) \ge 0$
    Positivity $0 \le P_i \le 1$ $0 \le P(x) \le 1$
    Monotonic $P_i \ge P_j$ if $x_i \ge x_j$ $P(x_i) \ge P(x_j)$ if $x_i \ge x_j$
    Normalization $P_N=1$ $P(b)=1$
    +# +# +# +# +# +# ## Probability Distribution Functions +# With a PDF we can compute expectation values of selected quantities such as + +# $$ +# \langle x^k\rangle=\sum_{i=1}^{N}x_i^kp(x_i), +# $$ + +# if we have a discrete PDF or + +# $$ +# \langle x^k\rangle=\int_a^b x^kp(x)dx, +# $$ + +# in the case of a continuous PDF. We have already defined the mean value $\mu$ +# and the variance $\sigma^2$. +# +# +# +# +# ## The three famous Probability Distribution Functions +# +# There are at least three PDFs which one may encounter. These are the +# +# **Uniform distribution** + +# $$ +# p(x)=\frac{1}{b-a}\Theta(x-a)\Theta(b-x), +# $$ + +# yielding probabilities different from zero in the interval $[a,b]$. +# +# **The exponential distribution** + +# $$ +# p(x)=\alpha \exp{(-\alpha x)}, +# $$ + +# yielding probabilities different from zero in the interval $[0,\infty)$ and with mean value + +# $$ +# \mu = \int_0^{\infty}xp(x)dx=\int_0^{\infty}x\alpha \exp{(-\alpha x)}dx=\frac{1}{\alpha}, +# $$ + +# with variance + +# $$ +# \sigma^2=\int_0^{\infty}x^2p(x)dx-\mu^2 = \frac{1}{\alpha^2}. +# $$ + +# ## Probability Distribution Functions, the normal distribution +# Finally, we have the so-called univariate normal distribution, or just the **normal distribution** + +# $$ +# p(x)=\frac{1}{b\sqrt{2\pi}}\exp{\left(-\frac{(x-a)^2}{2b^2}\right)} +# $$ + +# with probabilities different from zero in the interval $(-\infty,\infty)$. +# The integral $\int_{-\infty}^{\infty}\exp{\left(-(x^2\right)}dx$ appears in many calculations, its value +# is $\sqrt{\pi}$, a result we will need when we compute the mean value and the variance. +# The mean value is + +# $$ +# \mu = \int_0^{\infty}xp(x)dx=\frac{1}{b\sqrt{2\pi}}\int_{-\infty}^{\infty}x \exp{\left(-\frac{(x-a)^2}{2b^2}\right)}dx, +# $$ + +# which becomes with a suitable change of variables + +# $$ +# \mu =\frac{1}{b\sqrt{2\pi}}\int_{-\infty}^{\infty}b\sqrt{2}(a+b\sqrt{2}y)\exp{-y^2}dy=a. +# $$ + +# ## Probability Distribution Functions, the normal distribution +# Similarly, the variance becomes + +# $$ +# \sigma^2 = \frac{1}{b\sqrt{2\pi}}\int_{-\infty}^{\infty}(x-\mu)^2 \exp{\left(-\frac{(x-a)^2}{2b^2}\right)}dx, +# $$ + +# and inserting the mean value and performing a variable change we obtain + +# $$ +# \sigma^2 = \frac{1}{b\sqrt{2\pi}}\int_{-\infty}^{\infty}b\sqrt{2}(b\sqrt{2}y)^2\exp{\left(-y^2\right)}dy= +# \frac{2b^2}{\sqrt{\pi}}\int_{-\infty}^{\infty}y^2\exp{\left(-y^2\right)}dy, +# $$ + +# and performing a final integration by parts we obtain the well-known result $\sigma^2=b^2$. +# It is useful to introduce the standard normal distribution as well, defined by $\mu=a=0$, viz. a distribution +# centered around zero and with a variance $\sigma^2=1$, leading to + +# +#
    +# +# $$ +# \begin{equation} +# p(x)=\frac{1}{\sqrt{2\pi}}\exp{\left(-\frac{x^2}{2}\right)}. +# \label{_auto1} \tag{3} +# \end{equation} +# $$ + +# ## Probability Distribution Functions, the cumulative distribution +# +# The exponential and uniform distributions have simple cumulative functions, +# whereas the normal distribution does not, being proportional to the so-called +# error function $erf(x)$, given by + +# $$ +# P(x) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^x\exp{\left(-\frac{t^2}{2}\right)}dt, +# $$ + +# which is difficult to evaluate in a quick way. +# +# +# +# +# +# ## Probability Distribution Functions, other important distribution +# +# Some other PDFs which one encounters often in the natural sciences are the binomial distribution + +# $$ +# p(x) = \left(\begin{array}{c} n \\ x\end{array}\right)y^x(1-y)^{n-x} \hspace{0.5cm}x=0,1,\dots,n, +# $$ + +# where $y$ is the probability for a specific event, such as the tossing of a coin or moving left or right +# in case of a random walker. Note that $x$ is a discrete stochastic variable. +# +# The sequence of binomial trials is characterized by the following definitions +# +# * Every experiment is thought to consist of $N$ independent trials. +# +# * In every independent trial one registers if a specific situation happens or not, such as the jump to the left or right of a random walker. +# +# * The probability for every outcome in a single trial has the same value, for example the outcome of tossing (either heads or tails) a coin is always $1/2$. +# +# +# +# +# ## Probability Distribution Functions, the binomial distribution +# +# In order to compute the mean and variance we need to recall Newton's binomial +# formula + +# $$ +# (a+b)^m=\sum_{n=0}^m \left(\begin{array}{c} m \\ n\end{array}\right)a^nb^{m-n}, +# $$ + +# which can be used to show that + +# $$ +# \sum_{x=0}^n\left(\begin{array}{c} n \\ x\end{array}\right)y^x(1-y)^{n-x} = (y+1-y)^n = 1, +# $$ + +# the PDF is normalized to one. +# The mean value is + +# $$ +# \mu = \sum_{x=0}^n x\left(\begin{array}{c} n \\ x\end{array}\right)y^x(1-y)^{n-x} = +# \sum_{x=0}^n x\frac{n!}{x!(n-x)!}y^x(1-y)^{n-x}, +# $$ + +# resulting in + +# $$ +# \mu = +# \sum_{x=0}^n x\frac{(n-1)!}{(x-1)!(n-1-(x-1))!}y^{x-1}(1-y)^{n-1-(x-1)}, +# $$ + +# which we rewrite as + +# $$ +# \mu=ny\sum_{\nu=0}^n\left(\begin{array}{c} n-1 \\ \nu\end{array}\right)y^{\nu}(1-y)^{n-1-\nu} =ny(y+1-y)^{n-1}=ny. +# $$ + +# The variance is slightly trickier to get. It reads $\sigma^2=ny(1-y)$. +# +# +# ## Probability Distribution Functions, Poisson's distribution +# +# Another important distribution with discrete stochastic variables $x$ is +# the Poisson model, which resembles the exponential distribution and reads + +# $$ +# p(x) = \frac{\lambda^x}{x!} e^{-\lambda} \hspace{0.5cm}x=0,1,\dots,;\lambda > 0. +# $$ + +# In this case both the mean value and the variance are easier to calculate, + +# $$ +# \mu = \sum_{x=0}^{\infty} x \frac{\lambda^x}{x!} e^{-\lambda} = \lambda e^{-\lambda}\sum_{x=1}^{\infty} +# \frac{\lambda^{x-1}}{(x-1)!}=\lambda, +# $$ + +# and the variance is $\sigma^2=\lambda$. +# +# +# +# +# +# +# ## Probability Distribution Functions, Poisson's distribution +# An example of applications of the Poisson distribution could be the counting +# of the number of $\alpha$-particles emitted from a radioactive source in a given time interval. +# In the limit of $n\rightarrow \infty$ and for small probabilities $y$, the binomial distribution +# approaches the Poisson distribution. Setting $\lambda = ny$, with $y$ the probability for an event in +# the binomial distribution we can show that + +# $$ +# \lim_{n\rightarrow \infty}\left(\begin{array}{c} n \\ x\end{array}\right)y^x(1-y)^{n-x} e^{-\lambda}=\sum_{x=1}^{\infty}\frac{\lambda^x}{x!} e^{-\lambda}. +# $$ + +# ## Meet the covariance! +# An important quantity in a statistical analysis is the so-called covariance. +# +# Consider the set $\{X_i\}$ of $n$ +# stochastic variables (not necessarily uncorrelated) with the +# multivariate PDF $P(x_1,\dots,x_n)$. The *covariance* of two +# of the stochastic variables, $X_i$ and $X_j$, is defined as follows + +# +#
    +# +# $$ +# \begin{equation} +# \mathrm{Cov}(X_i,\,X_j) = \langle (x_i-\langle x_i\rangle)(x_j-\langle x_j\rangle)\rangle +# \label{_auto2} \tag{4} +# \end{equation} +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# =\int\cdots\int (x_i-\langle x_i\rangle)(x_j-\langle x_j\rangle)P(x_1,\dots,x_n)\,dx_1\dots dx_n, +# \label{eq:def_covariance} \tag{5} +# \end{equation} +# $$ + +# with + +# $$ +# \langle x_i\rangle = +# \int\cdots\int x_i P(x_1,\dots,x_n)\,dx_1\dots dx_n. +# $$ + +# ## Meet the covariance in matrix disguise +# If we consider the above covariance as a matrix + +# $$ +# C_{ij} =\mathrm{Cov}(X_i,\,X_j), +# $$ + +# then the diagonal elements are just the familiar +# variances, $C_{ii} = \mathrm{Cov}(X_i,\,X_i) = \mathrm{Var}(X_i)$. It turns out that +# all the off-diagonal elements are zero if the stochastic variables are +# uncorrelated. +# +# +# +# +# ## Covariance + +# In[2]: + + +# Importing various packages +from math import exp, sqrt +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt + +def covariance(x, y, n): + sum = 0.0 + mean_x = np.mean(x) + mean_y = np.mean(y) + for i in range(0, n): + sum += (x[(i)]-mean_x)*(y[i]-mean_y) + return sum/n + +n = 10 + +x=np.random.normal(size=n) +y = 4+3*x+np.random.normal(size=n) +covxy = covariance(x,y,n) +print(covxy) +z = np.vstack((x, y)) +c = np.cov(z.T) + +print(c) + + +# ## Meet the covariance, uncorrelated events +# +# Consider the stochastic variables $X_i$ and $X_j$, ($i\neq j$). We have + +# $$ +# \begin{align*} +# Cov(X_i,\,X_j) &= \langle (x_i-\langle x_i\rangle)(x_j-\langle x_j\rangle)\rangle\\ +# &=\langle x_i x_j - x_i\langle x_j\rangle - \langle x_i\rangle x_j + \langle x_i\rangle\langle x_j\rangle\rangle\\ +# &=\langle x_i x_j\rangle - \langle x_i\langle x_j\rangle\rangle - \langle \langle x_i\rangle x_j \rangle + +# \langle \langle x_i\rangle\langle x_j\rangle\rangle \\ +# &=\langle x_i x_j\rangle - \langle x_i\rangle\langle x_j\rangle - \langle x_i\rangle\langle x_j\rangle + +# \langle x_i\rangle\langle x_j\rangle \\ +# &=\langle x_i x_j\rangle - \langle x_i\rangle\langle x_j\rangle +# \end{align*} +# $$ + +# If $X_i$ and $X_j$ are independent (assuming $i \neq j$), we have that + +# $$ +# \langle x_i x_j\rangle = \langle x_i\rangle\langle x_j\rangle, +# $$ + +# leading to + +# $$ +# Cov(X_i, X_j) = 0 \hspace{0.1cm} (i\neq j). +# $$ + +# ## Numerical experiments and the covariance +# +# Now that we have constructed an idealized mathematical framework, let +# us try to apply it to empirical observations. Examples of relevant +# physical phenomena may be spontaneous decays of nuclei, or a purely +# mathematical set of numbers produced by some deterministic +# mechanism. It is the latter we will deal with, using so-called pseudo-random +# number generators. In general our observations will contain only a limited set of +# observables. We remind the reader that +# a *stochastic process* is a process that produces sequentially a +# chain of values + +# $$ +# \{x_1, x_2,\dots\,x_k,\dots\}. +# $$ + +# ## Numerical experiments and the covariance +# We will call these +# values our *measurements* and the entire set as our measured +# *sample*. The action of measuring all the elements of a sample +# we will call a stochastic *experiment* (since, operationally, +# they are often associated with results of empirical observation of +# some physical or mathematical phenomena; precisely an experiment). We +# assume that these values are distributed according to some +# PDF $p_X^{\phantom X}(x)$, where $X$ is just the formal symbol for the +# stochastic variable whose PDF is $p_X^{\phantom X}(x)$. Instead of +# trying to determine the full distribution $p$ we are often only +# interested in finding the few lowest moments, like the mean +# $\mu_X^{\phantom X}$ and the variance $\sigma_X^{\phantom X}$. +# +# +# +# +# +# ## Numerical experiments and the covariance, actual situations +# In practical situations however, a sample is always of finite size. Let that +# size be $n$. The expectation value of a sample $\alpha$, the **sample mean**, is then defined as follows + +# $$ +# \langle x_{\alpha} \rangle \equiv \frac{1}{n}\sum_{k=1}^n x_{\alpha,k}. +# $$ + +# The *sample variance* is: + +# $$ +# \mathrm{Var}(x) \equiv \frac{1}{n}\sum_{k=1}^n (x_{\alpha,k} - \langle x_{\alpha} \rangle)^2, +# $$ + +# with its square root being the *standard deviation of the sample*. +# +# +# +# +# +# ## Numerical experiments and the covariance, our observables +# You can think of the above observables as a set of quantities which define +# a given experiment. This experiment is then repeated several times, say $m$ times. +# The total average is then + +# +#
    +# +# $$ +# \begin{equation} +# \langle X_m \rangle= \frac{1}{m}\sum_{\alpha=1}^mx_{\alpha}=\frac{1}{mn}\sum_{\alpha, k} x_{\alpha,k}, +# \label{eq:exptmean} \tag{6} +# \end{equation} +# $$ + +# where the last sums end at $m$ and $n$. +# The total variance is + +# $$ +# \sigma^2_m= \frac{1}{mn^2}\sum_{\alpha=1}^m(\langle x_{\alpha} \rangle-\langle X_m \rangle)^2, +# $$ + +# which we rewrite as + +# +#
    +# +# $$ +# \begin{equation} +# \sigma^2_m=\frac{1}{m}\sum_{\alpha=1}^m\sum_{kl=1}^n (x_{\alpha,k}-\langle X_m \rangle)(x_{\alpha,l}-\langle X_m \rangle). +# \label{eq:exptvariance} \tag{7} +# \end{equation} +# $$ + +# ## Numerical experiments and the covariance, the sample variance +# +# We define also the sample variance $\sigma^2$ of all $mn$ individual experiments as + +# +#
    +# +# $$ +# \begin{equation} +# \sigma^2=\frac{1}{mn}\sum_{\alpha=1}^m\sum_{k=1}^n (x_{\alpha,k}-\langle X_m \rangle)^2. +# \label{eq:sampleexptvariance} \tag{8} +# \end{equation} +# $$ + +# These quantities, being known experimental values or the results from our calculations, +# may differ, in some cases +# significantly, from the similarly named +# exact values for the mean value $\mu_X$, the variance $\mathrm{Var}(X)$ +# and the covariance $\mathrm{Cov}(X,Y)$. +# +# +# +# +# ## Numerical experiments and the covariance, central limit theorem +# +# The central limit theorem states that the PDF $\tilde{p}(z)$ of +# the average of $m$ random values corresponding to a PDF $p(x)$ +# is a normal distribution whose mean is the +# mean value of the PDF $p(x)$ and whose variance is the variance +# of the PDF $p(x)$ divided by $m$, the number of values used to compute $z$. +# +# The central limit theorem leads then to the well-known expression for the +# standard deviation, given by + +# $$ +# \sigma_m= +# \frac{\sigma}{\sqrt{m}}. +# $$ + +# In many cases the above estimate for the standard deviation, in particular if correlations are strong, may be too simplistic. We need therefore a more precise defintion of the error and the variance in our results. +# +# +# +# +# ## Definition of Correlation Functions and Standard Deviation +# Our estimate of the true average $\mu_{X}$ is the sample mean $\langle X_m \rangle$ + +# $$ +# \mu_{X}^{\phantom X} \approx X_m=\frac{1}{mn}\sum_{\alpha=1}^m\sum_{k=1}^n x_{\alpha,k}. +# $$ + +# We can then use Eq. ([7](#eq:exptvariance)) + +# $$ +# \sigma^2_m=\frac{1}{mn^2}\sum_{\alpha=1}^m\sum_{kl=1}^n (x_{\alpha,k}-\langle X_m \rangle)(x_{\alpha,l}-\langle X_m \rangle), +# $$ + +# and rewrite it as + +# $$ +# \sigma^2_m=\frac{\sigma^2}{n}+\frac{2}{mn^2}\sum_{\alpha=1}^m\sum_{k +#
    +# +# $$ +# \begin{equation} +# \kappa_d = \frac{f_d}{\sigma^2} +# \label{eq:autocorrelformal} \tag{9} +# \end{equation} +# $$ + +# which gives us a useful measure of the correlation pair correlation +# starting always at $1$ for $d=0$. +# +# +# +# +# ## Definition of Correlation Functions and Standard Deviation, sample variance +# +# The sample variance of the $mn$ experiments can now be +# written in terms of the autocorrelation function + +# +#
    +# +# $$ +# \begin{equation} +# \sigma_m^2=\frac{\sigma^2}{n}+\frac{2}{n}\cdot\sigma^2\sum_{d=1}^{n-1} +# \frac{f_d}{\sigma^2}=\left(1+2\sum_{d=1}^{n-1}\kappa_d\right)\frac{1}{n}\sigma^2=\frac{\tau}{n}\cdot\sigma^2 +# \label{eq:error_estimate_corr_time} \tag{10} +# \end{equation} +# $$ + +# and we see that $\sigma_m$ can be expressed in terms of the +# uncorrelated sample variance times a correction factor $\tau$ which +# accounts for the correlation between measurements. We call this +# correction factor the *autocorrelation time* + +# +#
    +# +# $$ +# \begin{equation} +# \tau = 1+2\sum_{d=1}^{n-1}\kappa_d +# \label{eq:autocorrelation_time} \tag{11} +# \end{equation} +# $$ + +# +# +# For a correlation free experiment, $\tau$ +# equals 1. +# +# +# +# +# +# +# ## Definition of Correlation Functions and Standard Deviation +# From the point of view of +# Eq. ([10](#eq:error_estimate_corr_time)) we can interpret a sequential +# correlation as an effective reduction of the number of measurements by +# a factor $\tau$. The effective number of measurements becomes + +# $$ +# n_\mathrm{eff} = \frac{n}{\tau} +# $$ + +# To neglect the autocorrelation time $\tau$ will always cause our +# simple uncorrelated estimate of $\sigma_m^2\approx \sigma^2/n$ to +# be less than the true sample error. The estimate of the error will be +# too "good". On the other hand, the calculation of the full +# autocorrelation time poses an efficiency problem if the set of +# measurements is very large. The solution to this problem is given by +# more practically oriented methods like the blocking technique. +# +# +# +# +# +# +# ## Code to compute the Covariance matrix and the Covariance + +# In[3]: + + +# Importing various packages +from math import exp, sqrt +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt + +# Sample covariance, note the factor 1/(n-1) +def covariance(x, y, n): + sum = 0.0 + mean_x = np.mean(x) + mean_y = np.mean(y) + for i in range(0, n): + sum += (x[(i)]-mean_x)*(y[i]-mean_y) + return sum/(n-1.) + +n = 100 +x = np.random.normal(size=n) +print(np.mean(x)) +y = 4+3*x+np.random.normal(size=n) +print(np.mean(y)) +z = x**3+np.random.normal(size=n) +print(np.mean(z)) +covxx = covariance(x,x,n) +covyy = covariance(y,y,n) +covzz = covariance(z,z,n) +covxy = covariance(x,y,n) +covxz = covariance(x,z,n) +covyz = covariance(y,z,n) +print(covxx,covyy, covzz) +print(covxy,covxz, covyz) +w = np.vstack((x, y, z)) +#print(w) +c = np.cov(w) +print(c) +#eigen = np.zeros(n) +Eigvals, Eigvecs = np.linalg.eig(c) +print(Eigvals) + + +# ## Random Numbers +# +# Uniform deviates are just random numbers that lie within a specified range +# (typically 0 to 1), with any one number in the range just as likely as any other. They +# are, in other words, what you probably think random numbers are. However, +# we want to distinguish uniform deviates from other sorts of random numbers, for +# example numbers drawn from a normal (Gaussian) distribution of specified mean +# and standard deviation. These other sorts of deviates are almost always generated by +# performing appropriate operations on one or more uniform deviates, as we will see +# in subsequent sections. So, a reliable source of random uniform deviates, the subject +# of this section, is an essential building block for any sort of stochastic modeling +# or Monte Carlo computer work. +# +# +# +# +# +# ## Random Numbers, better name: pseudo random numbers +# +# A disclaimer is however appropriate. It should be fairly obvious that +# something as deterministic as a computer cannot generate purely random numbers. +# +# Numbers generated by any of the standard algorithms are in reality pseudo random +# numbers, hopefully abiding to the following criteria: +# +# * they produce a uniform distribution in the interval [0,1]. +# +# * correlations between random numbers are negligible +# +# * the period before the same sequence of random numbers is repeated is as large as possible and finally +# +# * the algorithm should be fast. +# +# +# +# +# +# ## Random number generator RNG +# The most common random number generators are based on so-called +# Linear congruential relations of the type + +# $$ +# N_i=(aN_{i-1}+c) \mathrm{MOD} (M), +# $$ + +# which yield a number in the interval [0,1] through + +# $$ +# x_i=N_i/M +# $$ + +# The number +# $M$ is called the period and it should be as large as possible +# and +# $N_0$ is the starting value, or seed. The function $\mathrm{MOD}$ means the remainder, +# that is if we were to evaluate $(13)\mathrm{MOD}(9)$, the outcome is the remainder +# of the division $13/9$, namely $4$. +# +# +# +# +# ## Random number generator RNG and periodic outputs +# +# The problem with such generators is that their outputs are periodic; +# they +# will start to repeat themselves with a period that is at most $M$. If however +# the parameters $a$ and $c$ are badly chosen, the period may be even shorter. +# +# Consider the following example + +# $$ +# N_i=(6N_{i-1}+7) \mathrm{MOD} (5), +# $$ + +# with a seed $N_0=2$. This generator produces the sequence +# $4,1,3,0,2,4,1,3,0,2,...\dots$, i.e., a sequence with period $5$. +# However, increasing $M$ may not guarantee a larger period as the following +# example shows + +# $$ +# N_i=(27N_{i-1}+11) \mathrm{MOD} (54), +# $$ + +# which still, with $N_0=2$, results in $11,38,11,38,11,38,\dots$, a period of +# just $2$. +# +# +# +# +# ## Random number generator RNG and its period +# Typical periods for the random generators provided in the program library +# are of the order of $\sim 10^9$ or larger. Other random number generators which have +# become increasingly popular are so-called shift-register generators. +# In these generators each successive number depends on many preceding +# values (rather than the last values as in the linear congruential +# generator). +# For example, you could make a shift register generator whose $l$th +# number is the sum of the $l-i$th and $l-j$th values with modulo $M$, + +# $$ +# N_l=(aN_{l-i}+cN_{l-j})\mathrm{MOD}(M). +# $$ + +# ## Random number generator RNG, other examples +# Such a generator again produces a sequence of pseudorandom numbers +# but this time with a period much larger than $M$. +# It is also possible to construct more elaborate algorithms by including +# more than two past terms in the sum of each iteration. +# One example is the generator of [Marsaglia and Zaman](http://dl.acm.org/citation.cfm?id=187154) +# which consists of two congruential relations + +# +#
    +# +# $$ +# \begin{equation} +# N_l=(N_{l-3}-N_{l-1})\mathrm{MOD}(2^{31}-69), +# \label{eq:mz1} \tag{12} +# \end{equation} +# $$ + +# followed by + +# +#
    +# +# $$ +# \begin{equation} +# N_l=(69069N_{l-1}+1013904243)\mathrm{MOD}(2^{32}), +# \label{eq:mz2} \tag{13} +# \end{equation} +# $$ + +# which according to the authors has a period larger than $2^{94}$. +# +# +# +# +# ## Random number generator RNG, other examples +# Instead of using modular addition, we could use the bitwise +# exclusive-OR ($\oplus$) operation so that + +# $$ +# N_l=(N_{l-i})\oplus (N_{l-j}) +# $$ + +# where the bitwise action of $\oplus$ means that if $N_{l-i}=N_{l-j}$ the result is +# $0$ whereas if $N_{l-i}\ne N_{l-j}$ the result is +# $1$. As an example, consider the case where $N_{l-i}=6$ and $N_{l-j}=11$. The first +# one has a bit representation (using 4 bits only) which reads $0110$ whereas the +# second number is $1011$. Employing the $\oplus$ operator yields +# $1101$, or $2^3+2^2+2^0=13$. +# +# In Fortran90, the bitwise $\oplus$ operation is coded through the intrinsic +# function $\mathrm{IEOR}(m,n)$ where $m$ and $n$ are the input numbers, while in $C$ +# it is given by $m\wedge n$. +# +# +# +# +# +# ## Random number generator RNG, RAN0 +# +# We show here how the linear congruential algorithm can be implemented, namely + +# $$ +# N_i=(aN_{i-1}) \mathrm{MOD} (M). +# $$ + +# However, since $a$ and $N_{i-1}$ are integers and their multiplication +# could become greater than the standard 32 bit integer, there is a trick via +# Schrage's algorithm which approximates the multiplication +# of large integers through the factorization + +# $$ +# M=aq+r, +# $$ + +# where we have defined + +# $$ +# q=[M/a], +# $$ + +# and + +# $$ +# r = M\hspace{0.1cm}\mathrm{MOD} \hspace{0.1cm}a. +# $$ + +# where the brackets denote integer division. In the code below the numbers +# $q$ and $r$ are chosen so that $r < q$. +# +# +# +# +# +# +# ## Random number generator RNG, RAN0 +# +# To see how this works we note first that + +# +#
    +# +# $$ +# \begin{equation} +# (aN_{i-1}) \mathrm{MOD} (M)= (aN_{i-1}-[N_{i-1}/q]M)\mathrm{MOD} (M), +# \label{eq:rntrick1} \tag{14} +# \end{equation} +# $$ + +# since we can add or subtract any integer multiple of $M$ from $aN_{i-1}$. +# The last term $[N_{i-1}/q]M\mathrm{MOD}(M)$ is zero since the integer division +# $[N_{i-1}/q]$ just yields a constant which is multiplied with $M$. +# +# +# +# +# +# ## Random number generator RNG, RAN0 +# We can now rewrite Eq. ([14](#eq:rntrick1)) as + +# +#
    +# +# $$ +# \begin{equation} +# (aN_{i-1}) \mathrm{MOD} (M)= (aN_{i-1}-[N_{i-1}/q](aq+r))\mathrm{MOD} (M), +# \label{eq:rntrick2} \tag{15} +# \end{equation} +# $$ + +# which results +# in + +# +#
    +# +# $$ +# \begin{equation} +# (aN_{i-1}) \mathrm{MOD} (M)= \left(a(N_{i-1}-[N_{i-1}/q]q)-[N_{i-1}/q]r)\right)\mathrm{MOD} (M), +# \label{eq:rntrick3} \tag{16} +# \end{equation} +# $$ + +# yielding + +# +#
    +# +# $$ +# \begin{equation} +# (aN_{i-1}) \mathrm{MOD} (M)= \left(a(N_{i-1}\mathrm{MOD} (q)) -[N_{i-1}/q]r)\right)\mathrm{MOD} (M). +# \label{eq:rntrick4} \tag{17} +# \end{equation} +# $$ + +# ## Random number generator RNG, RAN0 +# The term $[N_{i-1}/q]r$ is always smaller or equal $N_{i-1}(r/q)$ and with $r < q$ we obtain always a +# number smaller than $N_{i-1}$, which is smaller than $M$. +# And since the number $N_{i-1}\mathrm{MOD} (q)$ is between zero and $q-1$ then +# $a(N_{i-1}\mathrm{MOD} (q))< aq$. Combined with our definition of $q=[M/a]$ ensures that +# this term is also smaller than $M$ meaning that both terms fit into a +# 32-bit signed integer. None of these two terms can be negative, but their difference could. +# The algorithm below adds $M$ if their difference is negative. +# Note that the program uses the bitwise $\oplus$ operator to generate +# the starting point for each generation of a random number. The period +# of $ran0$ is $\sim 2.1\times 10^{9}$. A special feature of this +# algorithm is that is should never be called with the initial seed +# set to $0$. +# +# +# +# +# +# ## Random number generator RNG, RAN0 code + +# /* +# ** The function +# ** ran0() +# ** is an "Minimal" random number generator of Park and Miller +# ** Set or reset the input value +# ** idum to any integer value (except the unlikely value MASK) +# ** to initialize the sequence; idum must not be altered between +# ** calls for sucessive deviates in a sequence. +# ** The function returns a uniform deviate between 0.0 and 1.0. +# */ +# double ran0(long &idum) +# { +# const int a = 16807, m = 2147483647, q = 127773; +# const int r = 2836, MASK = 123459876; +# const double am = 1./m; +# long k; +# double ans; +# idum ^= MASK; +# k = (*idum)/q; +# idum = a*(idum - k*q) - r*k; +# // add m if negative difference +# if(idum < 0) idum += m; +# ans=am*(idum); +# idum ^= MASK; +# return ans; +# } // End: function ran0() +# + +# ## Properties of Selected Random Number Generators +# +# As mentioned previously, the underlying PDF for the generation of +# random numbers is the uniform distribution, meaning that the +# probability for finding a number $x$ in the interval [0,1] is $p(x)=1$. +# +# A random number generator should produce numbers which are uniformly distributed +# in this interval. The table shows the distribution of $N=10000$ random +# numbers generated by the functions in the program library. +# We note in this table that the number of points in the various +# intervals $0.0-0.1$, $0.1-0.2$ etc are fairly close to $1000$, with some minor +# deviations. +# +# Two additional measures are the standard deviation $\sigma$ and the mean +# $\mu=\langle x\rangle$. +# +# +# +# +# ## Properties of Selected Random Number Generators +# For the uniform distribution, the mean value $\mu$ is then + +# $$ +# \mu=\langle x\rangle=\frac{1}{2} +# $$ + +# while the standard deviation is + +# $$ +# \sigma=\sqrt{\langle x^2\rangle-\mu^2}=\frac{1}{\sqrt{12}}=0.2886. +# $$ + +# ## Properties of Selected Random Number Generators +# The various random number generators produce results which agree rather well with +# these limiting values. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +#
    $x$-bin ran0 ran1 ran2 ran3
    0.0-0.1 1013 991 938 1047
    0.1-0.2 1002 1009 1040 1030
    0.2-0.3 989 999 1030 993
    0.3-0.4 939 960 1023 937
    0.4-0.5 1038 1001 1002 992
    0.5-0.6 1037 1047 1009 1009
    0.6-0.7 1005 989 1003 989
    0.7-0.8 986 962 985 954
    0.8-0.9 1000 1027 1009 1023
    0.9-1.0 991 1015 961 1026
    $\mu$ 0.4997 0.5018 0.4992 0.4990
    $\sigma$ 0.2882 0.2892 0.2861 0.2915
    +# +# +# +# +# ## Simple demonstration of RNGs using python +# The following simple Python code plots the distribution of the produced random numbers using the linear congruential RNG employed by Python. The trend displayed in the previous table is seen rather clearly. + +# In[4]: + + +#!/usr/bin/env python +import numpy as np +import matplotlib.mlab as mlab +import matplotlib.pyplot as plt +import random + +# initialize the rng with a seed +random.seed() +counts = 10000 +values = np.zeros(counts) +for i in range (1, counts, 1): + values[i] = random.random() + +# the histogram of the data +n, bins, patches = plt.hist(values, 10, facecolor='green') + +plt.xlabel('$x$') +plt.ylabel('Number of counts') +plt.title(r'Test of uniform distribution') +plt.axis([0, 1, 0, 1100]) +plt.grid(True) +plt.show() + + +# ## Properties of Selected Random Number Generators +# Since our random numbers, which are typically generated via a linear congruential algorithm, +# are never fully independent, we can then define +# an important test which measures the degree of correlation, namely the so-called +# auto-correlation function defined previously, see again Eq. ([9](#eq:autocorrelformal)). +# We rewrite it here as + +# $$ +# C_k=\frac{f_d} +# {\sigma^2}, +# $$ + +# with $C_0=1$. Recall that +# $\sigma^2=\langle x_i^2\rangle-\langle x_i\rangle^2$ and that + +# $$ +# f_d = \frac{1}{nm}\sum_{\alpha=1}^m\sum_{k=1}^{n-d}(x_{\alpha,k}-\langle X_m \rangle)(x_{\alpha,k+d}-\langle X_m \rangle), +# $$ + +# The non-vanishing of $C_k$ for $k\ne 0$ means that the random +# numbers are not independent. The independence of the random numbers is crucial +# in the evaluation of other expectation values. If they are not independent, our +# assumption for approximating $\sigma_N$ is no longer valid. +# +# +# +# +# +# ## Autocorrelation function +# This program computes the autocorrelation function as discussed in the equation on the previous slide for random numbers generated with the normal distribution $N(0,1)$. + +# In[5]: + + +# Importing various packages +from math import exp, sqrt +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt + +def autocovariance(x, n, k, mean_x): + sum = 0.0 + for i in range(0, n-k): + sum += (x[(i+k)]-mean_x)*(x[i]-mean_x) + return sum/n + +n = 1000 +x=np.random.normal(size=n) +autocor = np.zeros(n) +figaxis = np.zeros(n) +mean_x=np.mean(x) +var_x = np.var(x) +print(mean_x, var_x) +for i in range (0, n): + figaxis[i] = i + autocor[i]=(autocovariance(x, n, i, mean_x))/var_x + +plt.plot(figaxis, autocor, "r-") +plt.axis([0,n,-0.1, 1.0]) +plt.xlabel(r'$i$') +plt.ylabel(r'$\gamma_i$') +plt.title(r'Autocorrelation function') +plt.show() + + +# As can be seen from the plot, the first point gives back the variance and a value of one. +# For the remaining values we notice that there are still non-zero values for the auto-correlation function. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# ## Correlation function and which random number generators should I use +# The program here computes the correlation function for one of the standard functions included with the c++ compiler. + +# // This function computes the autocorrelation function for +# // the standard c++ random number generator +# +# #include +# #include +# #include +# #include +# using namespace std; +# // output file as global variable +# ofstream ofile; +# +# // Main function begins here +# int main(int argc, char* argv[]) +# { +# int n; +# char *outfilename; +# +# cin >> n; +# double MCint = 0.; double MCintsqr2=0.; +# double invers_period = 1./RAND_MAX; // initialise the random number generator +# srand(time(NULL)); // This produces the so-called seed in MC jargon +# // Compute the variance and the mean value of the uniform distribution +# // Compute also the specific values x for each cycle in order to be able to +# // the covariance and the correlation function +# // Read in output file, abort if there are too few command-line arguments +# if( argc <= 2 ){ +# cout << "Bad Usage: " << argv[0] << +# " read also output file and number of cycles on same line" << endl; +# exit(1); +# } +# else{ +# outfilename=argv[1]; +# } +# ofile.open(outfilename); +# // Get the number of Monte-Carlo samples +# n = atoi(argv[2]); +# double *X; +# X = new double[n]; +# for (int i = 0; i < n; i++){ +# double x = double(rand())*invers_period; +# X[i] = x; +# MCint += x; +# MCintsqr2 += x*x; +# } +# double Mean = MCint/((double) n ); +# MCintsqr2 = MCintsqr2/((double) n ); +# double STDev = sqrt(MCintsqr2-Mean*Mean); +# double Variance = MCintsqr2-Mean*Mean; +# // Write mean value and standard deviation +# cout << " Standard deviation= " << STDev << " Integral = " << Mean << endl; +# +# // Now we compute the autocorrelation function +# double *autocor; autocor = new double[n]; +# for (int j = 0; j < n; j++){ +# double sum = 0.0; +# for (int k = 0; k < (n-j); k++){ +# sum += (X[k]-Mean)*(X[k+j]-Mean); +# } +# autocor[j] = sum/Variance/((double) n ); +# ofile << setiosflags(ios::showpoint | ios::uppercase); +# ofile << setw(15) << setprecision(8) << j; +# ofile << setw(15) << setprecision(8) << autocor[j] << endl; +# } +# ofile.close(); // close output file +# return 0; +# } // end of main program +# + +# ## Which RNG should I use? +# * C++ has a class called **random**. The [random class](http://www.cplusplus.com/reference/random/) contains a large selection of RNGs and is highly recommended. Some of these RNGs have very large periods making it thereby very safe to use these RNGs in case one is performing large calculations. In particular, the [Mersenne twister random number engine](http://www.cplusplus.com/reference/random/mersenne_twister_engine/) has a period of $2^{19937}$. +# +# * Add RNGs in Python +# +# +# +# +# +# ## How to use the Mersenne generator +# The following part of a c++ code (from project 4) sets up the uniform distribution for $x\in [0,1]$. + +# /* +# +# // You need this +# #include +# +# // Initialize the seed and call the Mersienne algo +# std::random_device rd; +# std::mt19937_64 gen(rd()); +# // Set up the uniform distribution for x \in [[0, 1] +# std::uniform_real_distribution RandomNumberGenerator(0.0,1.0); +# +# // Now use the RNG +# int ix = (int) (RandomNumberGenerator(gen)*NSpins); +# + +# ## Why blocking? +# **Statistical analysis.** +# +# * Monte Carlo simulations can be treated as *computer experiments* +# +# * The results can be analysed with the same statistical tools as we would use analysing experimental data. +# +# * As in all experiments, we are looking for expectation values and an estimate of how accurate they are, i.e., possible sources for errors. +# +# A very good article which explains blocking is H. Flyvbjerg and H. G. Petersen, *Error estimates on averages of correlated data*, [Journal of Chemical Physics 91, 461-466 (1989)](http://scitation.aip.org/content/aip/journal/jcp/91/1/10.1063/1.457480). +# +# +# +# +# +# +# ## Why blocking? +# **Statistical analysis.** +# +# * As in other experiments, Monte Carlo experiments have two classes of errors: +# +# * Statistical errors +# +# * Systematical errors +# +# +# * Statistical errors can be estimated using standard tools from statistics +# +# * Systematical errors are method specific and must be treated differently from case to case. (In VMC a common source is the step length or time step in importance sampling) +# +# +# +# +# +# ## Code to demonstrate the calculation of the autocorrelation function +# The following code computes the autocorrelation function, the covariance and the standard deviation +# for standard RNG. +# The [following file](https://github.com/CompPhysics/ComputationalPhysics2/tree/gh-pages/doc/Programs/LecturePrograms/programs/Blocking/autocorrelation.cpp) gives the code. + +# // This function computes the autocorrelation function for +# // the Mersenne random number generator with a uniform distribution +# #include +# #include +# #include +# #include +# #include +# #include +# #include +# #include +# using namespace std; +# using namespace arma; +# // output file +# ofstream ofile; +# +# // Main function begins here +# int main(int argc, char* argv[]) +# { +# int MonteCarloCycles; +# string filename; +# if (argc > 1) { +# filename=argv[1]; +# MonteCarloCycles = atoi(argv[2]); +# string fileout = filename; +# string argument = to_string(MonteCarloCycles); +# fileout.append(argument); +# ofile.open(fileout); +# } +# +# // Compute the variance and the mean value of the uniform distribution +# // Compute also the specific values x for each cycle in order to be able to +# // compute the covariance and the correlation function +# +# vec X = zeros(MonteCarloCycles); +# double MCint = 0.; double MCintsqr2=0.; +# std::random_device rd; +# std::mt19937_64 gen(rd()); +# // Set up the uniform distribution for x \in [[0, 1] +# std::uniform_real_distribution RandomNumberGenerator(0.0,1.0); +# for (int i = 0; i < MonteCarloCycles; i++){ +# double x = RandomNumberGenerator(gen); +# X(i) = x; +# MCint += x; +# MCintsqr2 += x*x; +# } +# double Mean = MCint/((double) MonteCarloCycles ); +# MCintsqr2 = MCintsqr2/((double) MonteCarloCycles ); +# double STDev = sqrt(MCintsqr2-Mean*Mean); +# double Variance = MCintsqr2-Mean*Mean; +# // Write mean value and variance +# cout << " Sample variance= " << Variance << " Mean value = " << Mean << endl; +# // Now we compute the autocorrelation function +# vec autocorrelation = zeros(MonteCarloCycles); +# for (int j = 0; j < MonteCarloCycles; j++){ +# double sum = 0.0; +# for (int k = 0; k < (MonteCarloCycles-j); k++){ +# sum += (X(k)-Mean)*(X(k+j)-Mean); +# } +# autocorrelation(j) = sum/Variance/((double) MonteCarloCycles ); +# ofile << setiosflags(ios::showpoint | ios::uppercase); +# ofile << setw(15) << setprecision(8) << j; +# ofile << setw(15) << setprecision(8) << autocorrelation(j) << endl; +# } +# // Now compute the exact covariance using the autocorrelation function +# double Covariance = 0.0; +# for (int j = 0; j < MonteCarloCycles; j++){ +# Covariance += autocorrelation(j); +# } +# Covariance *= 2.0/((double) MonteCarloCycles); +# // Compute now the total variance, including the covariance, and obtain the standard deviation +# double TotalVariance = (Variance/((double) MonteCarloCycles ))+Covariance; +# cout << "Covariance =" << Covariance << "Totalvariance= " << TotalVariance << "Sample Variance/n= " << (Variance/((double) MonteCarloCycles )) << endl; +# cout << " STD from sample variance= " << sqrt(Variance/((double) MonteCarloCycles )) << " STD with covariance = " << sqrt(TotalVariance) << endl; +# +# ofile.close(); // close output file +# return 0; +# } // end of main program +# +# +# + +# ## What is blocking? +# **Blocking.** +# +# * Say that we have a set of samples from a Monte Carlo experiment +# +# * Assuming (wrongly) that our samples are uncorrelated our best estimate of the standard deviation of the mean $\langle \mathbf{M}\rangle$ is given by + +# $$ +# \sigma=\sqrt{\frac{1}{n}\left(\langle \mathbf{M}^2\rangle-\langle \mathbf{M}\rangle^2\right)} +# $$ + +# * If the samples are correlated we can rewrite our results to show that + +# $$ +# \sigma=\sqrt{\frac{1+2\tau/\Delta t}{n}\left(\langle \mathbf{M}^2\rangle-\langle \mathbf{M}\rangle^2\right)} +# $$ + +# where $\tau$ is the correlation time (the time between a sample and the next uncorrelated sample) and $\Delta t$ is time between each sample +# +# +# +# +# ## What is blocking? +# **Blocking.** +# +# * If $\Delta t\gg\tau$ our first estimate of $\sigma$ still holds +# +# * Much more common that $\Delta t<\tau$ +# +# * In the method of data blocking we divide the sequence of samples into blocks +# +# * We then take the mean $\langle \mathbf{M}_i\rangle$ of block $i=1\ldots n_{blocks}$ to calculate the total mean and variance +# +# * The size of each block must be so large that sample $j$ of block $i$ is not correlated with sample $j$ of block $i+1$ +# +# * The correlation time $\tau$ would be a good choice +# +# +# +# +# ## What is blocking? +# **Blocking.** +# +# * Problem: We don't know $\tau$ or it is too expensive to compute +# +# * Solution: Make a plot of std. dev. as a function of blocksize +# +# * The estimate of std. dev. of correlated data is too low $\to$ the error will increase with increasing block size until the blocks are uncorrelated, where we reach a plateau +# +# * When the std. dev. stops increasing the blocks are uncorrelated +# +# +# +# +# ## Implementation +# * Do a Monte Carlo simulation, storing all samples to file +# +# * Do the statistical analysis on this file, independently of your Monte Carlo program +# +# * Read the file into an array +# +# * Loop over various block sizes +# +# * For each block size $n_b$, loop over the array in steps of $n_b$ taking the mean of elements $i n_b,\ldots,(i+1) n_b$ +# +# * Take the mean and variance of the resulting array +# +# * Write the results for each block size to file for later +# analysis +# +# +# +# +# +# +# +# +# ## Actual implementation with code, main function +# When the file gets large, it can be useful to write your data in binary mode instead of ascii characters. +# The [following python file](https://github.com/CompPhysics/MachineLearning/blob/master/doc/Programs/Sampling/analysis.py) reads data from file with the output from every Monte Carlo cycle. + +# In[6]: + + +# Blocking + @timeFunction + def blocking(self, blockSizeMax = 500): + blockSizeMin = 1 + + self.blockSizes = [] + self.meanVec = [] + self.varVec = [] + + for i in range(blockSizeMin, blockSizeMax): + if(len(self.data) % i != 0): + pass#continue + blockSize = i + meanTempVec = [] + varTempVec = [] + startPoint = 0 + endPoint = blockSize + + while endPoint <= len(self.data): + meanTempVec.append(np.average(self.data[startPoint:endPoint])) + startPoint = endPoint + endPoint += blockSize + mean, var = np.average(meanTempVec), np.var(meanTempVec)/len(meanTempVec) + self.meanVec.append(mean) + self.varVec.append(var) + self.blockSizes.append(blockSize) + + self.blockingAvg = np.average(self.meanVec[-200:]) + self.blockingVar = (np.average(self.varVec[-200:])) + self.blockingStd = np.sqrt(self.blockingVar) + + +# ## The Bootstrap method +# +# The Bootstrap resampling method is also very popular. It is very simple: +# +# 1. Start with your sample of measurements and compute the sample variance and the mean values +# +# 2. Then start again but pick in a random way the numbers in the sample and recalculate the mean and the sample variance. +# +# 3. Repeat this $K$ times. +# +# It can be shown, see the article by [Efron](https://projecteuclid.org/download/pdf_1/euclid.aos/1176344552) +# that it produces the correct standard deviation. +# +# This method is very useful for small ensembles of data points. +# +# +# ## Bootstrapping +# Given a set of $N$ data, assume that we are interested in some +# observable $\theta$ which may be estimated from that set. This observable can also be for example the result of a fit based on all $N$ raw data. +# Let us call the value of the observable obtained from the original +# data set $\hat{\theta}$. One recreates from the sample repeatedly +# other samples by choosing randomly $N$ data out of the original set. +# This costs essentially nothing, since we just recycle the original data set for the building of new sets. +# +# +# ## Bootstrapping, recipe +# Let us assume we have done this $K$ times and thus have $K$ sets of $N$ +# data values each. +# Of course some values will enter more than once in the new sets. For each of these sets one computes the observable $\theta$ resulting in values $\theta_k$ with $k = 1,...,K$. Then one determines + +# $$ +# \tilde{\theta} = \frac{1}{K} \sum_{k=1}^K \theta_k, +# $$ + +# and + +# $$ +# sigma^2_{\tilde{\theta}} = \frac{1}{K} \sum_{k=1}^K \left(\theta_k-\tilde{\theta}\right)^2. +# $$ + +# These are estimators for $\angle\theta\rangle$ and its variance. They are not unbiased and therefore +# $\tilde{\theta}\neq\hat{\theta}$ for finite K. +# +# The difference is called bias and gives an idea on how far away the result may be from +# the true $\angle\theta\rangle$. As final result for the observable one quotes $\angle\theta\rangle = \tilde{\theta} \pm \sigma_{\tilde{\theta}}$ . +# +# +# +# ## Bootstrapping, [code](https://github.com/CompPhysics/MachineLearning/blob/master/doc/Programs/Sampling/analysis.py) + +# # Bootstrap +# @timeFunction +# def bootstrap(self, nBoots = 1000): +# bootVec = np.zeros(nBoots) +# for k in range(0,nBoots): +# bootVec[k] = np.average(np.random.choice(self.data, len(self.data))) +# self.bootAvg = np.average(bootVec) +# self.bootVar = np.var(bootVec) +# self.bootStd = np.std(bootVec) +# + +# ## Jackknife, [code](https://github.com/CompPhysics/MachineLearning/blob/master/doc/Programs/Sampling/analysis.py) + +# # Jackknife +# @timeFunction +# def jackknife(self): +# jackknVec = np.zeros(len(self.data)) +# for k in range(0,len(self.data)): +# jackknVec[k] = np.average(np.delete(self.data, k)) +# self.jackknAvg = self.avg - (len(self.data) - 1) * (np.average(jackknVec) - self.avg) +# self.jackknVar = float(len(self.data) - 1) * np.var(jackknVec) +# self.jackknStd = np.sqrt(self.jackknVar) +# diff --git a/doc/LectureNotes/_build/jupyter_execute/statistics_178_0.png b/doc/LectureNotes/_build/jupyter_execute/statistics_178_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ce80d84ad198af62a258756bae444c34d04f8d47 GIT binary patch literal 5167 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 OK!mN6O^wy*OaBG&6mj+d literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/statistics_184_1.png b/doc/LectureNotes/_build/jupyter_execute/statistics_184_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6f8f3cde9c61fe854c768f7aee8c5923f02acc99 GIT binary patch literal 9877 zcmcI~cT`i~wr-FnN(aG0(WoFIp!8lOv`CRAN>`fHPy$E|f=Xy2(m|?(DxlI6ARsCo zq)Q2*x6nHYNnZS&bKX7ooO{L_jJhh+r008GX{%ll$j1Lz90D&_)AT^U0 zA2u)nXq}9N+7zO)$3-AD_vCPii`BydoJw5E$>Zb z_?~E3%_FUI$BR)&;B(0xzis7b7d3yucP__=W!!4(zUJKrAs365AOA zfQvlEpOTFB%Cg>UJ_L^lBc|8qzFL`!USsM_o=9B;%N&R@GMh+)O9TLV;F1jXR9AgL z4FpGmG+^U(v$|!5hCMX>{k`)oya0XCA-r<3H?oBLsb{WtDeY%~>OgwPJBFP1kHQC8 zQymc|R;)bTd72<^;CtaAJiz1zW;o`q?87HCmkj8`#|TEUA>G z^!Zhw2)N`h7i}eUa5gN%wq8#tnInPLQA5C(Jt4*Rw|!5WhP}rx6^X|N&}KiUAYP!j z)Z=oQK9eu9-Tm~oOEUUw2_;}5K-wk7AZM0Zah%4+qsk2zfv? z&CSR|MS`eTh}vaM6yX6#Uq=`-O!&N@x+pF$d)+;}PZDWtD#@mbl4xXanFVlB$tQ9q z7_%?Ap2fTBd3uA|<7nUc^nK#~QQ+XXopt$HVe

    {}bjSbm6N5fhY^C>@lJ29k?h{ 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 b&-{?%c>1Y=f1$t=h8R3u{an^LB{Ts5FT>b& literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/gaussian.pdf b/doc/LectureNotes/gaussian.pdf index 06ef5caa5b5a391b04cf23dc708f9154a466bc7d..ec6e8510498ade13e6cd22bed19162d94eef8fe8 100644 GIT binary patch delta 1502 zcmZuwO=uHA6lP{AY1g(wf1?yTwv^H$&CI;nomnXr5d#&W(5tk?`Uf6TX(I@2T5G&& z(*_*8D4x9t0i!62coYhr3m&|9*MnEzZqk}ex|g@S{pOqRd+*yf#qNV*cj@~n!8lu4 zzUxmxmAe_^6HxqejV&DYppx>_lmung zSs-EgMdu<3?U#0MvNGQFdzC2rbcYO<#luk&*r^mTJrLi-W@e5Ubmis4Qnd6(@Xh z1534|)O2X?;A8>uZp_kz0x(ACdv z-Wgnj{gLttRB^k|?k!`jqO6WJ^cpYH{#^G)Ym?U$w7sz54PP>euuN7m8P;Ec$v8pt zER$7C90CFcs@@G5B$4woS-0dop5oCW9&)cPAf73<5Uwp`#*iqa&crr#^}St|Ica- kc4^xi!arhT+e;70IQVP%>#O-B_BizjxIZ>_c`ob!0|Pr;yZ`_I delta 1499 zcmZvc-AhzK7{-}7n7aqFk5$*ebTmW^YUksenRChnkrt$A!N8kPNHWrkU064WQdij^ z2+WVYm_MNqieRbJMHJM1)NN6C-DO=wUG>g!S9i~PZf1CS<~Ps#%*^>#YJXX3-~7@= z2_?DN1$$(Kq{gz@Tw#&iAk$kvKO$Cnfzq)qRuypSIrd!kmJu^v>9xBta`f0X;(8{D zyUS~B0=eZ^Z8ON#r?>EM<{R`Dp5v=oCX`MD1pHhSi5L=<6t6F z>eR|c*N_Nt!E+n^d5BoZd%FQVZg}2FlSaKk?gVEyQ5Qzi;Fgfm@3zr248~M2UPhTU zXxg~i>A(Y^3Mo#M;swc0+=2DZIu83BGLcOnrk^G8Gz=l_TsL02i@6`-KCAB+v2EcL(VeUyi-(n3^!#^Uz@b&R6+!1_lv62`vgq{*Q z7PA(x@O2?(&6*Ja!vTt0yZLJ1e;-)2z_E~eYRT#wSD~j=niK9;r-E>ES0+g+?GRQI zxI~C*RTA!-shvtI!i0XaWPO4jA1zybFg#thNSt!XITxwEIIUmH)>yYVFNW)G z&At5GZJQE@=_@N1ElM9w&3q(FY%_B1Iik7datP9VbvntxXSC)VqLbjfUT5YKI;T|s zTd|Ho{JlkMs0b%-zS<7p#obfY)dW{QoJFHfFxp%b9HMK`3GSP`8){MsR@D{vHx|N? zO^ZcSR8%U*fj3kS1Sb$+V-0k^io`;t$7!RPB8A0{Ir|2nkb*^kp!3~G$BYW5;0i_7 zHXAe@M|sej@{7^MiuqA9hjk1~oyJZmJEUVKJ?2N#@;$0*drTbMK;E>m?@1oHmCW}% zr?&WDt#YY;yk_;dd%vU9WG+`A)wgwh{{9?Xee)a^3pewH@G-!F`Bd41gO@XD`#*~Q BVZi_Z

    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 Kqf-X!_x%Hk!973# literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_51_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_51_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a724a04f1136a919da8ad2ed50a54325f114feab GIT binary patch literal 164639 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 R!dx<?vj!Je*seSqT~Po literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_57_3.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_57_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1af159ab110925caefc08337b1de60e11bd7b990 GIT binary patch literal 29188 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 R7;a=FsU6o=PFJ$<`5!MIy9fXP literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter4_57_4.png b/doc/LectureNotes/_build/jupyter_execute/chapter4_57_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8305ed43393362ddc27010295350a5ffa42514ef GIT binary patch literal 30423 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 W^#o;l!2cfsdHGCHCRa-T)BgutlUn2e literal 17112 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 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_13_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_13_1.png index 70c77209133a17ea9e10bb3f9d62d9f8d0430fe6..87b4e44539b260493df6c49b385060ac48a6224a 100644 GIT binary patch delta 9311 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 literal 9258 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 INdMLU0w5CK-2eap literal 18622 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 literal 25198 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 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_201_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_201_1.png index ae4e0eca5aee8ceb9ea191577cbf0fae28a6e264..b42fbb010b4780c68975d9deeb7da005db1765cd 100644 GIT binary patch literal 96941 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 LRk;G$2T%VG-LvHE diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_218_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_218_0.png index 3bac81a35ac243c91d96d70bc3b05240cf1c9182..b7762d17b9743c9f39efc5ed927de7084640a9f9 100644 GIT binary patch literal 22667 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 RW8p&s{0_qQx<5t!<=+T1KA`{r diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_27_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_27_0.png index 98d42c76e600e6ea8e7cf5f09747267114dcf5ed..a8f17d04a25e78628a004b6cb35d221f1d10020f 100644 GIT binary patch literal 14638 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 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_3_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_3_0.png index b3a3118436ac096c566ad79e7dc43bbc4ba8c754..34532cc95e42928dd83e5a17c1721823f5bec323 100644 GIT binary patch literal 10172 zcmdUVhgVZi*DeH*-lV9gfPe~8B~+0rNbgNLiUbg(7pWmgQ#wCdsL}+a6R81$AfgZm zf`E~PDk3dGDM3P#8{hlB-@WVJ@BRUIt#el9WM=m4bM`ZPKQnt?SeWUvvk0)z(9p0O z8t7Wl(9kAOZ+@n8)PH>0voX{k)lj_$q1FMQ(1?e@o;0QpLj(N+Lj8Om35R|ov0Z|RT-U0pFmpF$svh{((X7J3m8)jBO zbPi~mZb;MjO(wB~Q5(p^=q|go)MEx(;j(_As$y|0^r~JUI3R+KLd!;z46vueD|I+e zen9rwKKrSLTPh56c4Hu`y^BrLt#kmk6W*9Y+F7Tw;PNug5{4 z1CK!gP&A?#9S1rtf;KC|DxeNo!y#G9unkanKD1d0HVRT|u+m2Eu7i&Apv{t{mFZi% zB@Gr!2P_*dz95PZXny;bY!NzP*n?1v{%Dtlbq7tb;C;)XS7*1|1B%hINWVU4Go!|` zYcGcMbj53^vbpQ_dt{sss1fOx19ib{x4VMEqbr?Rk-LqcuKv08w8>o-VD!1K-XJV; z_v3JolNZRm1pVu2=EU%@S6BUsY7v@<++7_;uRH+~eM&qCgTs^vAWZ1Oc;9;@c@)|A zR^tcg7^@R`0g6r(uPCf}4uJGC`AOQ`;XyWm6BkMWS2(UP$M6-MGXW&iRYOpnQMjcc zEuFLzJj4fdOzyg@02_&Sf`I9dY2s+kJ|Ls)h#wsPs07jnG6miV41QQq0cZheu(JWk zG-ow)J7k0U9!8o7fTl9c#ZjGXxN>0#r)3l-sikBG*fYdRM{iq(Q1%(H% zUSFm;rafjbqo0z3p;5F#lDlBpm58Cvq~CE2C$&)aTf4;j?g?-LT_&LXmfyM?gcwgA zk{gCTRHe}F+KHorhR{Rb?XtiZpF#E=z>FvOd0P7!Q;6^;CRSaJBXA{U=oXNe0o|LM zni$-}?OJAAxq_yP3xRG!2vVX`W+90ujs3Khr4J_R+)Zb#%+YgihRGsYOnAST$T$a+hf0 zo(xBc=XvqVT_}3+3>WVH7J3v+$WKCXxUi&n z+XFOGK?I>bqS8vZyWBMuLmmrZE*8GkO>FGNN&D+1^#0zR2*r4A$Dc*$jU<1lGHVw8zV|PF z>9jUHzK@7YoF^^j0X`YH8f6RE5vUl>L+ z;>g8t@Mmla*HpHDSDBYb^Xt$b777V+C(@T*X=R6i!rd!3)SC7QfjY|v>tUG5InaEy zMQ_}dlSt_18J7wQso|$B1SA$gk9@u0>PWvryY7}UsRb~teKC4@D4MRSj!$rh(T~B7 zmO6EJhFZ!nWDXXrqGWssrlJN|W09jkY|w`;#1+hg>p;3L@F5cYkU8G9QWZ_T{Um&VkL6XNcx zplP8kxF86xkP~+aGNO87Q8rgMJtkMGg+$Iiz_~O~e2KW$^>|hmS@nc{bO22po%0$l zZG3l4#9g$FtH|`?T}0O zerzw|axY0sZXRntHVEYA-r@~of06p#*~*JPP2AL!2!WeR9+ZYK&u;&mtwXIc3Vu~E z6wuQZ@L%eWY{bS|D7Kp3;$jOT@PWE+%CYu*#0oVWp0#_7onm@JJY)+~4eW~0{ZGc+ zc(w$B34BRlx0}eA6N~diKJJ{%Q9&jaNnIizg|k%mL64}2h(z}L!_Ncp6zRt`d*?7) zID%N48#nh0;bScegVtyR43V2VXWRR48@maK*MvuTEBIjMGmRO*3W9YJvN`RL6fvs>00BH?%LYV*T)le8PoK1-^|YdHp^K{l#&pIQp{jFlj1Ku z!JhF`Ou99yCQvIDfF8AqSbKv?duFZ_$n0TA=b=>lDWq_V-ibiyzNT`b$%orEKe5qc z#3%v>!Pu1dUtNpoXJ5bjnB&e*E>kk48x4Eqa8G3B?hR9`Q6aiA?*AJF^hV3sP6AT= z+_eE8RsS}aQT`WD#AEOM3pM}EBZ&Ql!K*{|-df_FvzlQd^0F0hNmMg*jfWpHtL|*O&@oke=S4??RW81zW*?z9$ zE+d=NkF|7nx&2pAb-J@0x%+_;03u(`Tf=)`VvXT7z4ym^tINkA){V!O4(DOX z`qyOiIb!INOBoIzy=&$ zoM6Qw&XsBqR%Q2kRHjCG>FY1D`mwh&INIzSq}ob2d)H{hW>hN85n8aL1Ngbv9rV0K z^%8xi(eu$<(@RtG&|A{dl~rzi3Z={@Wqk*~OlO6IlIP?fG-(N=^WHgJGc~Tz6H%a| zOL~&Ukn?D)t{eb){0}IpCgpV9+8mg`G6*02%rci} z^XZj;hD^M{thd_r&Z2s@(AU>YO{vJStd)p<{n%;PtNiLY01&>6A8NZFQZQ zy~qDv9x$O5u&fND+=jht&({^(Q@C!MI~@;1anM2Fluy_(x(GT#5n7pLL6HB`1yjR( zF@+T*aE6MIOZ$L8)shPUsvCN>>89>hmvWafvV{?Nuq0nxTsIuCi@QKO_TH`|>T{v77-=T_Au(#lMEwg@ zjpB~1V)P(xuq|_gcDpFnrXf|Y_+9}p?}iPhq7>2liuS7(1-w&@>f^{K{$4wk^In{E zjLA+&bpf=iL+OTWp+Q0VMN4wJFspTlTJ+ORYJIaT{?fY9v0tmye1AaBkL(`}y`7oB z@YjNGLLE?5MNtYJSD9wcHqPhdzBQX{9up4t+O8BI;0rqR?up*^PZ5giS(rTB!innl zl_Y`d%v+bc^u!kLXNGcKb01s$m{YcB_9d!*hAgssxoF3BzPAt5o@#L2r7v;2TN>6@ zP_rb{L*w6D`+I#4sWhWVb&zY>hbrsom-2jnz2i2+Z4^6rU$QcZczi8 zP41y^crB0}cFfqc(Aw(LEkJd@hH1f#*^}d0)@*`og{~|>ui;(v*ZJnZRX$N0Q(Cta z=j~e(C0pVZeOG=@_w9p34t$}`LRwmE*^ z+GyiQzAE_s{Y63bJM^@$s}&1yWz4hnXzf>a?Ti56Wq%N7F&Y3Y2>=zoA3&K*MD@Am zL>U@CZx{&Xbs{Yj1xo{Uyf?tx)`6R4fhVh#CEjTHp7qQJj7=VRfm_a-&)TSJ?i$3Yg@N(@u8>sIV5v(VD5&{?L2UNuQuQYf*yM z7-EFn9KRbb6DTvpL;-|8IBBM~#6?&x3%Pq66)Aii1?(NVchB#*D zZJb(jTp+;*r!kKm;}B2~Z+N6wAuf4!c1HQuQ5{ODxW@Wk&j_pR(9yz(;mxE$vb8xj zGP^rW)#^Nb{Ns)+02UGrnW(ypXhG}4>IY1cXY1eu+<-^d@X|njm?G;T`hMa2_HR9( zNjNwbad@3zS#3mA{V7bCkO@Ih;s}fW#=F4kcI-*hKwJ%9utg!)u=-AIyCli+1(hy;)e_fB)q(K2jKO-A4 z1CNT;+4&c=o_|8uqLd;_l-}LrOhT(uVI$d^NaVcRrZBSk)uYl2mCVm$rSV`F2V?eP z$fak$;Z>-y__+Tp*nm+z1jGcu_w&4ti94(gM0-~L7E*lkxwc8NS!znar5p&KIYcY1 zzY43BN05{-A)L-Jw|5cX9+zNdDd&rJCri-*A2$ycmy=n?9!oLNsP@=+3U2)_Mdv4@ zx-Ky`PvrMTM-Xm%U?R}h&#;Y!#P=_7%GmGZamfsspgPNui`rE?Ok&smxuHm|TF!N` ze!bgc#Xr1k{knz_9kG$GRv0-^kiE2;!0NvCetKcK(cWWx!JSGfCaa$IB|IvZFz5pK zA3kcX=a-RU|1INWM^;_zddIFT=G4MV^=1Yz@7C+(HAc^8UHTNlkt<~pD}%(92{#T{ z)bS#xOuwAe;r2r7nXke$hd7tPlES*Mm!+fQ+Qzx&Yj0cBSJQja_}@(`r`YyK@6z6^ zVC%-5KNlL%L+cvD?HVP4DJ*~-E4&F0yf#&GF6}!1q{>IMV=aSc^e*=@O>phIt$9Mk zp5vf%kW^^&=2e0N41+lHB+zk6?fEXpVrBcMNf8KE$vCwGSNQ}5S@FhX{yamencSQX z#|Oiy}_wfQzJ~JG_%|_btpy-$`$G?F4Zb)f(Tc)$}-bMkZ9wEm!M%A6<~7 z&~bc>ZA7RynBBgXD_~t$(AriUIV3mrmdCQ&rD@lxqQRu>TO8Nde$}_9X)YQEn<+#B znsG`)&4#=_);L#@_k{7nTE9=*gGc{#(vGMw4($x=)f!{L`*Z~J*zth?H*i20p7~}E z7$1#8X$r~57}-vbKgvn%=-TeH^1Y(7bLR=`0B|w0uT0v>eX7*TjS_-NBI>78LyA=A zDe-vExwi(Va9=oAF{3|__+@ubCF|Nt^FO!rr)MMzWE{b2BPplO5}P_t5)36+*K#i&ceNJ z|H?T^89s5GLMP4N`q2ZLaw*yH`X z-?=U-u}!HmmdBi*QlX1GYHTZ5g)pvEkeSIp0*WP>w4(k>nPTdws%5xg&Y}6ON_i<> zHs;!yCS$XJME#fonom-v5&XlXNRf3Z2Ke@LEaQ0qSS^&8E{Kici@WagY5j{Z3%$c_ z&+$y{SKbFdLN{L&o>KS8Q1i|EUp;CgN#^Q&I3am@Gc{?Ovzw(faGXH&ugfBvg|u_- zL3TEd3@nrRI@-Cg;El{?a@fu*Uwf6)pEGO~&pD^esP@h%^|8I#$;R)SE-d-Yw>K}k z2|9b*IIPQ`{ou6D1TwM?b5~K0zt^4(J80a{&_opCld5Vk4H-W9D7p zeL^AW#O}cj@)v8z$;C?&<*+%-D?7MaI9kxaVmG$lnHL0>YhHl!mvv$yQN-u7tOuT}-PXwfZNa%>TY2_vRXiN?W+uw7o1Z#B zLEP;W6sEV*_z_BdB3it^?RH%@O z-0lRD^idSsI{1zB=_a=OX(J_WR%Z0zpoGCuf7(c0k~>zl(SC1}YvDG&{%#OM#nVNd z4eF$->`-RK`>YIcu{k@928$hDZf-6}RVHTuv@HiDbELqk>oyacTw}M*@4RYt z-HY2S!+Di$Xn1EM7PcwVDHy~bQ^L*iK+3PIu-9nE+ge=%P{qE-ore4HIxPzuypdR= z+f>ioZ`Jof$aRjNi(S3cmbeAyb#hKtPsG+5zIm4nN3d$1F1X36yLlC>O+2ZVd`GDL zPhT^_Gjn_2KUcQHkWL6h@M5E4Pm{xX+=2_vt730(v%GfiYEU9^0f8f*tY5?4E5+Y7 z?hv@b<7e{v4i`-~pp_1#7i;>2I=4?Z(uuKDJ-$@?ZFE`g5FRZm5h4#TtpoF<`f8)U z2E}L+dZ*_O77+Ir3#Jq%Cf44wm2vl9V9I3RFc#x_Z~1O(0v*{I$I&TxV1#dlZ8*R_ zkm@wUC}*2k!nel5Z|xpf#IYhlU#J5c84682 zIj(cK_nD41P=>k<7=^qGZL;_eBKwsn&)c z_3vABz8PR~<#Fx557C;LxcUPnYkLOs8Yz&TZgulM0w0uA&S{2vR~z3tDo8fgnLnR? z!_+8jbh!WkshMyJc!vkOy*VqCW+e#4$T^2QcpnLc~5D)%bAUf-3 zaY&Pyc~*W_SL$bdD6r05cm1|m%@<@tuU(Jm7 z+|(EDNr7D6Z#}o)o>HloU=&l=Q&s}!CBOx@E4Ro&>tD7DuiC0v>p!XD<*^bPwWAOa zoHxtp>CO$^)ZjiBm!?hQj=iIDXmL@~Ra+~(Aapzx#C3h{eg-eoj2MKozeUME5spum zjb)}1LXJD)$X$oQD>8jd$C!}Kg&OruBi_klRmFcAtVfEpd@q$X@E8UmAAic7{_5Bv zcIJY|J9irAuJ>=qkLm&+(_^WKPP%|WP+|%Hm<8j}Fq1|e*3U?|FSMw=9?DqHi=4edxCF$=_I->+kc@~L zD>MXS*)RmbmC(K1;=kyiHW|>>2v>B9^wcl=`BH4sr@pawL!K*-IHcA$H=|6NF~%t` z{nU7vK$L+e?j3D!XarReO_h5QzsEB@C#*bO(?FL+Kdz~mF6o|;B)A^y?Qr%#V;;@) zw{!|GQR+pNZpHl?#S!stQ6w@E?iT!ls7^@S%#*YR+Qt}qzaFXwCSdBXb9uL^G~Z%B z-#OcE&eW&17om+12Zpe3c5;H$~sx-O4ZNlBOHW-2T`8lv}^x4?`~eiN_rUC6G5*|+ZF ze@tFe+YB1Zr}E`Mt&97{R#&!|*9>N-(;I}u94=8Zz2_~8JIgvP4R6~XECv+H%=LI0 z7ySZyTNE+mg>uDPkVn%-c;`mbc4qrBMMr8Jqi481m6{D8!px)Np}*F$>ky*2RS{e> zJhLNjTP0H>!)L;y)n;z1y5TKfgRi(*iSkIPYAwD0-xb7Ul{CMvv}j#xyW#9`gF?Pu z@I9A%J{>WtXZtDpTjnXYz3XEm)J6MJ^hgBaa>Bc-5qXZ+UEuc@Tl!SK6~3Nd%9Bvb zV)k53xSQ*6N3?#fK)TkBf`snx!dA(vBUC`GkELi(f~z=g?4-Yn3>8V~HyHRCMQ<2= zG-ovmrjXj=)I;%tG9Sozir_5@XN>T-760~8$5JTJUF)LI*Z$taE9~Big*Cw+)4sd_ zX!AOC4S8hcpYKsWFzEq*m7{J0P5-9+)R*i&Rg?Fb$#l8cS7j42vBnT7Hv2`<=F>~Q zK$Lpr?+Qi9x2Nzh)@JhBbpib>e`KDSp(aC!VNqZ5_QRcd>f*y(^D0j04zHP}`oAgs zx39rQA>PpiH*+8T;h>ka$9>%fA56-nd0|v~aD5hkgkstpNg}yEliW<(VZ{Ssl6T3^ zd|nZ#L6^WO$X4;kq+t%R=zk=QNHus_tI74H*kreJ;qNj78Th#%Y)7Y&QeVBYOqRAG zdwi&$lU1|UM10rl^f6xV-^)(!gEe?``-fEk$708M2_qbm>R|i;_NI9_Q%569BTGlYd_IU^qR;>RrzF4p;F~Y5dl?t^;S!ES zOc{fRhY2Z9#ctaWsL{MUhIBOjlcnx6(Y!Hzv!!si;X2oQjo2^9K7cIXCSU@h38)Am zY)TG*Qnsq|t;TSj7h-;;RZe&<_0N!EPZLW?3(j;T;sQS7eeLIlpvwc4w=>)BKJq>& z#lveWo)K<8aU~FVy!rjOu--52G+>fs%#Ks7?SS58<>BV;WT;lqPd~d)ndQqr4?krr zfgNk5OBxK)b5%r7*aBa|E38k5QY$04xQ8X1Wvr#F({vxMFfCn;@`Ft7tWLT->|R@z zT$!6|JLk@J1#>m(Ef&xJ^^EPV6N(_ubuK+VXZ}|F9X~e~_f;O8ZH|WX7fd8 z%oB4$hwfOV?pPJ|dXIc#HkPfsFdgjvtPznyD|!BFYig=)wyyArXd42WArBKA@`5b? zC*#&~En@iz=mLNMaDg~sW8)ZQOZX#ti&Hc8UaebHd00{}tD|-U&tpq&Zo^C&TZ#W1 zXjy2Z=CA6C(5#^24k#%EIyQ;)m%2+%hhCje4Zd-0xV^|mS7q4d zt-G!+0}fC9Upo3HYOmYJ$1{|4`+DKoi55^a17yRZSAA{Q9&cR!T+orpM>) zNKP7HJW8Pt!+z$v%W;=8UHojot9k-E%Y zV3uC=mNRBC=TF)hv*_R@=#?7Q;&_g%B)H}_&X*OeVfG*`N6&IL$C>`@{4@1W!`G$8 z+fUS1>~Vvjy#lVOLzG->e4~7sk0}{2;Yb?j4|MaY z_=lk^wt}LSdgAb9mHHhjhbVMp$#=nuI(hg}S}iaz`XllO6pen7FXLdDIchqjojCdi z1t{!^7KG8+*#;Spk4JaFc8Ud1g+EneVx87$RD zn?fhV5Jj5>MX%$?k1$Eb5Ar;MZJ&{Xv>exJVo|x` zV~^wm%Th9b7f$+d2MX^$me(`Mc(XluKa5?^Q0>>{mEB?SlboRv+@Snc!i`rW9uGmH z@ouzUo^72AjwxfqSp8n2#@|#W>q-LKIoj0Y%YPID)1hHN*wRo6gn_vb$V}D5Y8c85 z>bkHW=l-y&)+B{0Ke?3qS<+h`P`K;rFNz3~32M;u27N>4J*qTyY;9*qaA-2AVBZeq z{$VtAOymO9LJ@B6AOa1FW)ULP8;$l!nv_~2thqrJsq{~W@R1K!-h223bj-8z%>5Nq znsJaeH09g2X>HNpoMHjL`P}8;AK(+RLitps^hx>(wHLe2r)HDz} zhOXxW@|a$ODW>Y(26w|{s>B!dfedYfL%(ojyXpy1E7@&<^Dl;w9Our_;cqb+%u~}- zp|1jy>iCD}DwK-RpV(z`4P2;6@we64OMmQ#HgJRS*&Dx0*roFf%6!tbbj3D9@Bcpz jo&9I#{?Ais6rqs>SYS{pmWz6lj>b^WOt(eHJ>h=<%9BK} literal 9744 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 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_59_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_59_0.png index ef03a15ab492c6b9b3b1ecae4f5b13cbe453db57..b54e282f904563c2557e3929e48b099c44c9719e 100644 GIT binary patch literal 19472 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 w@gY|!PSEs|i=Pv>IrboFyt=akR{0Ee{!WdHyG literal 19739 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%0DA8|Hhe34KwpJ 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 ZI8`SqSsoV$8@-4e)<3#GL(lHYzXAKWZW;gp literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter2.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter2.ipynb new file mode 100644 index 000000000..a3edcafe9 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/chapter2.ipynb @@ -0,0 +1,4856 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Ridge and Lasso Regression\n", + "\n", + "\n", + "\n", + "## Mathematical Interpretation of Ordinary Least Squares\n", + "\n", + "What is presented here is a mathematical analysis of various regression algorithms (ordinary least squares, Ridge and Lasso Regression). The analysis is based on an important algorithm in linear algebra, the so-called Singular Value Decomposition (SVD). \n", + "\n", + "\n", + "We have shown that in ordinary least squares (OLS) the optimal parameters $\\beta$ are given by" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\hat{\\boldsymbol{\\beta}}_{\\mathrm{OLS}} = \\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The **hat** over $\\boldsymbol{\\beta}$ means we have the optimal parameters after minimization of the cost function.\n", + "\n", + "This means that our best model is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{\\boldsymbol{y}}=\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}} = \\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now define a matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}=\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can rewrite" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\tilde{\\boldsymbol{y}}=\\boldsymbol{X}\\hat{\\boldsymbol{\\beta}} = \\boldsymbol{A}\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The matrix $\\boldsymbol{A}$ has the important property that $\\boldsymbol{A}^2=\\boldsymbol{A}$. This is the definition of a [projection matrix](https://en.wikipedia.org/wiki/Projection_matrix).\n", + "We can then interpret our optimal model $\\tilde{\\boldsymbol{y}}$ as being represented by an orthogonal projection of $\\boldsymbol{y}$ onto a space defined by the column vectors of $\\boldsymbol{X}$. In our case here the matrix $\\boldsymbol{A}$ is a square matrix. If it is a general rectangular matrix we have an oblique projection matrix.\n", + "\n", + "\n", + "\n", + "\n", + "We have defined the residual error as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\epsilon}=\\boldsymbol{y}-\\tilde{\\boldsymbol{y}}=\\left[\\boldsymbol{I}-\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T\\right]\\boldsymbol{y}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The residual errors are then the projections of $\\boldsymbol{y}$ onto the orthogonal component of the space defined by the column vectors of $\\boldsymbol{X}$.\n", + "\n", + "\n", + "If the matrix $\\boldsymbol{X}$ is an orthogonal (or unitary in case of complex values) matrix, we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{X}^T\\boldsymbol{X}=\\boldsymbol{X}\\boldsymbol{X}^T = \\boldsymbol{I}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case the matrix $\\boldsymbol{A}$ becomes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{A}=\\boldsymbol{X}\\left(\\boldsymbol{X}^T\\boldsymbol{X}\\right)^{-1}\\boldsymbol{X}^T)=\\boldsymbol{I},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and we have the obvious case" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{\\epsilon}=\\boldsymbol{y}-\\tilde{\\boldsymbol{y}}=0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This serves also as a useful test of our codes. \n", + "\n", + "\n", + "\n", + "\n", + "## The singular value decomposition\n", + "\n", + "\n", + "The examples we have looked at so far are cases where we normally can\n", + "invert the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$. Using a polynomial expansion where we fit of various functions leads to\n", + "row vectors of the design matrix which are essentially orthogonal due\n", + "to the polynomial character of our model. Obtaining the inverse of the\n", + "design matrix is then often done via a so-called LU, QR or Cholesky\n", + "decomposition.\n", + "\n", + "\n", + "As we will also see in the first project, \n", + "this may\n", + "however not the be case in general and a standard matrix inversion\n", + "algorithm based on say LU, QR or Cholesky decomposition may lead to singularities. We will see examples of this below.\n", + "\n", + "There is however a way to circumvent this problem and also\n", + "gain some insights about the ordinary least squares approach, and\n", + "later shrinkage methods like Ridge and Lasso regressions.\n", + "\n", + "This is given by the **Singular Value Decomposition** (SVD) algorithm,\n", + "perhaps the most powerful linear algebra algorithm. The SVD provides\n", + "a numerically stable matrix decomposition that is used in a large\n", + "swath oc applications and the decomposition is always stable\n", + "numerically.\n", + "\n", + "In machine learning it plays a central role in dealing with for\n", + "example design matrices that may be near singular or singular.\n", + "Furthermore, as we will see here, the singular values can be related\n", + "to the covariance matrix (and thereby the correlation matrix) and in\n", + "turn the variance of a given quantity. It plays also an important role\n", + "in the principal component analysis where high-dimensional data can be\n", + "reduced to the statistically relevant features.\n", + "\n", + "\n", + "\n", + "\n", + "One of the typical problems we encounter with linear regression, in particular \n", + "when the matrix $\\boldsymbol{X}$ (our so-called design matrix) is high-dimensional, \n", + "are problems with near singular or singular matrices. The column vectors of $\\boldsymbol{X}$ \n", + "may be linearly dependent, normally referred to as super-collinearity. \n", + "This means that the matrix may be rank deficient and it is basically impossible to \n", + "to model the data using linear regression. As an example, consider the matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\mathbf{X} & = \\left[\n", + "\\begin{array}{rrr}\n", + "1 & -1 & 2\n", + "\\\\\n", + "1 & 0 & 1\n", + "\\\\\n", + "1 & 2 & -1\n", + "\\\\\n", + "1 & 1 & 0\n", + "\\end{array} \\right]\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The columns of $\\boldsymbol{X}$ are linearly dependent. We see this easily since the \n", + "the first column is the row-wise sum of the other two columns. The rank (more correct,\n", + "the column rank) of a matrix is the dimension of the space spanned by the\n", + "column vectors. Hence, the rank of $\\mathbf{X}$ is equal to the number\n", + "of linearly independent columns. In this particular case the matrix has rank 2.\n", + "\n", + "Super-collinearity of an $(n \\times p)$-dimensional design matrix $\\mathbf{X}$ implies\n", + "that the inverse of the matrix $\\boldsymbol{X}^T\\boldsymbol{X}$ (the matrix we need to invert to solve the linear regression equations) is non-invertible. If we have a square matrix that does not have an inverse, we say this matrix singular. The example here demonstrates this" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "\\boldsymbol{X} & = \\left[\n", + "\\begin{array}{rr}\n", + "1 & -1\n", + "\\\\\n", + "1 & -1\n", + "\\end{array} \\right].\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see easily that $\\mbox{det}(\\boldsymbol{X}) = x_{11} x_{22} - x_{12} x_{21} = 1 \\times (-1) - 1 \\times (-1) = 0$. Hence, $\\mathbf{X}$ is singular and its inverse is undefined.\n", + "This is equivalent to saying that the matrix $\\boldsymbol{X}$ has at least an eigenvalue which is zero.\n", + "\n", + "\n", + "\n", + "If our design matrix $\\boldsymbol{X}$ which enters the linear regression problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "

    pu^!0qo_u#{_b}Jl95`1zT3Qj#LkRxj6`D@v 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 jxxr^GzpRfJSwj{)xN=r`zqjCAYIm-okR|8a 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 +ysP?fX4a(;sN%Gi2+$@UIq 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