From 4da18852c42ea569e6b923b3d5802e981ced8192 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Tue, 24 Aug 2021 22:52:34 +0200 Subject: [PATCH] updating week 35 --- doc/pub/week34/html/week34-bs.html | 2 +- doc/pub/week34/html/week34-reveal.html | 56 +++++++++------- doc/pub/week34/html/week34-solarized.html | 56 +++++++++------- doc/pub/week34/html/week34.html | 56 +++++++++------- .../ipynb/Results/FigureFiles/Masses2016.png | Bin 16191 -> 16565 bytes .../Results/FigureFiles/Masses2016Trees.png | Bin 21619 -> 21472 bytes doc/pub/week34/ipynb/ipynb-week34-src.tar.gz | Bin 103349 -> 103349 bytes doc/pub/week34/ipynb/week34.ipynb | 62 +++++++++++------- doc/src/week34/week34.do.txt | 56 +++++++++------- 9 files changed, 174 insertions(+), 114 deletions(-) diff --git a/doc/pub/week34/html/week34-bs.html b/doc/pub/week34/html/week34-bs.html index 7e1e9edca..93dca0db3 100644 --- a/doc/pub/week34/html/week34-bs.html +++ b/doc/pub/week34/html/week34-bs.html @@ -239,7 +239,7 @@ MathJax.Hub.Config({
[2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

-

Aug 23, 2021

+

Aug 24, 2021


diff --git a/doc/pub/week34/html/week34-reveal.html b/doc/pub/week34/html/week34-reveal.html index 44723bd74..947448e2a 100644 --- a/doc/pub/week34/html/week34-reveal.html +++ b/doc/pub/week34/html/week34-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({

[2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

 
-

Aug 23, 2021

+

Aug 24, 2021


@@ -334,7 +334,7 @@ Projects are handed in using Canvas. We use Github as repository for code

-In addition to the electure notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below. +In addition to the lecture notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below.

  1. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, https://www.springer.com/gp/book/9780387310732.
  2. @@ -374,7 +374,19 @@ Python is the recurring programming language.

    -This course aims at giving you insights and knowledge about many of the central algorithms used in Data Analysis and Machine Learning. The course is project based and through various numerical projects, normally three, you will be exposed to fundamental research problems in these fields, with the aim to reproduce state of the art scientific results. Both supervised and unsupervised methods will be covered. The emphasis is on a frequentist approach, although we will try to link it with a Bayesian approach as well. You will learn to develop and structure large codes for studying different cases where Machine Learning is applied to, get acquainted with computing facilities and learn to handle large scientific projects. A good scientific and ethical conduct is emphasized throughout the course. More specifically, after this course you will +This course aims at giving you insights and knowledge about many of +the central algorithms used in Data Analysis and Machine Learning. +The course is project based and through various numerical projects, +normally three, you will be exposed to fundamental research problems +in these fields, with the aim to reproduce state of the art scientific +results. Both supervised and unsupervised methods will be covered. The +emphasis is on a frequentist approach, although we will try to link it +with a Bayesian approach as well. You will learn to develop and +structure large codes for studying different cases where Machine +Learning is applied to, get acquainted with computing facilities and +learn to handle large scientific projects. A good scientific and +ethical conduct is emphasized throughout the course. More +specifically, after this course you will

    • Learn about basic data analysis, statistical analysis, Bayesian statistics, Monte Carlo sampling, data optimization and machine learning;
    • @@ -386,7 +398,7 @@ This course aims at giving you insights and knowledge about many of the central

    • Learn about support vector machines and kernel transformations;
    • Reduction of data sets, from PCA to clustering;
    • Autoencoders and Reinforcement Learning;
    • -

    • Work on numerical projects to illustrate the theory. The projects play a central role and you are expected to know modern programming languages like Python or C++ and/or Fortran (Fortran2003 or later).
    • +

    • Work on numerical projects to illustrate the theory. The projects play a central role and you are expected to know modern programming languages like Python or C++ and/or Fortran (Fortran2003 or later) or Julia or other.
    @@ -441,7 +453,7 @@ The following topics will be covered

  3. Support vector machines
  4. Bayesian linear and logistic regression
  5. Boltzmann Machines
  6. -

  7. Unsupervised learning Dimensionality reduction, from PCA to cluster models
  8. +

  9. Unsupervised learning Dimensionality reduction, from PCA to clustering
  10. @@ -462,7 +474,7 @@ Hands-on demonstrations, exercises and projects aim at deepening your understand

  11. GIT for version control, and GitHub or GitLab as repositories, highly recommended. This will be discussed during the first exercise session
  12. -

  13. Anaconda and other Python environments, see intro slides and first exercise session
  14. +

  15. Anaconda and other Python environments, see intro slides and links to programming resources at https://computationalscienceuio.github.io/RefreshProgrammingSkills/intro.html
  16. @@ -476,7 +488,7 @@ The link here STK2100 Machine learning and statistical methods for prediction and classification. -

  17. IN3050 Introduction to Artificial Intelligence and Machine Learning. Introductory course in machine learning and AI with an algorithmic approach.
  18. +

  19. IN3050/4050 Introduction to Artificial Intelligence and Machine Learning. Introductory course in machine learning and AI with an algorithmic approach.
  20. STK-INF3000/4000 Selected Topics in Data Science. The course provides insight into selected contemporary relevant topics within Data Science.
  21. IN4080 Natural Language Processing. Probabilistic and machine learning techniques applied to natural language processing.
  22. STK-IN4300 Statistical learning methods in Data Science. An advanced introduction to statistical and machine learning. For students with a good mathematics and statistics background.
  23. @@ -862,14 +874,14 @@ $$

    - + - - - - - + + + + +
    Relations Name matrix elements
    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} \)
    \( 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}^{ < em>} \)
    \( A=A^{\dagger} \) hermitian \( a_{ij}=a_{ji}^{ < /em>} \)
    \( A=\left(A^{\dagger}\right )^{-1} \) unitary \( \sum_k a_{ik}a_{jk}^{ < em>}=\sum_k a_{ki}^{ < /em> } a_{kj}=\delta_{ij} \)
    @@ -885,17 +897,17 @@ $$

  24. Diagonal if \( a_{ij}=0 \) for \( i\ne j \)
  25. -

  26. Upper triangular if \( a_{ij}=0 \) for \( i > j \)
  27. +

  28. Upper triangular if \( a_{ij}=0 \) for \( i>j \)
  29. Lower triangular if \( a_{ij}=0 \) for \( i < j \)
  30. -

  31. Upper Hessenberg if \( a_{ij}=0 \) for \( i > j+1 \)
  32. +

  33. Upper Hessenberg if \( a_{ij}=0 \) for \( i>j+1 \)
  34. Lower Hessenberg if \( a_{ij}=0 \) for \( i < j+1 \)
  35. -

  36. Tridiagonal if \( a_{ij}=0 \) for \( |i -j| > 1 \)
  37. +

  38. Tridiagonal if \( a_{ij}=0 \) for \( |i -j|>1 \)
  39. -

  40. Lower banded with bandwidth \( p \): \( a_{ij}=0 \) for \( i > j+p \)
  41. +

  42. Lower banded with bandwidth \( p \): \( a_{ij}=0 \) for \( i>j+p \)
  43. Upper banded with bandwidth \( p \): \( a_{ij}=0 \) for \( i < j+p \)
  44. @@ -1005,7 +1017,7 @@ or simply write them as double precision numbers (Python uses 64 bits as default
    import numpy as np
    -x = np.log(np.array([4.0, 7.0, 8.0])
    +x = np.log(np.array([4.0, 7.0, 8.0]))
     print(x)
     

    @@ -1014,7 +1026,7 @@ To check the number of bytes (remember that one byte contains eight bits for dou

    import numpy as np
    -x = np.log(np.array([4.0, 7.0, 8.0])
    +x = np.log(np.array([4.0, 7.0, 8.0]))
     print(x.itemsize)
     
    @@ -1327,7 +1339,7 @@ pretty close the basic mathematical expressions.

    Our first data set is going to be a classic from nuclear physics, namely all -available data on binding energies. Don't be intimidated if you are not familiar with nuclear physics. It serves simply as an example here of a data set. +available data on binding energies. Don't be intimidated if you are not familiar with nuclear physics. It serves merely as an example here of a data set.

    We will show some of the @@ -1571,7 +1583,7 @@ 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 +\( \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(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, @@ -1642,7 +1654,7 @@ ways of dealing with outliers. The Huber cost function is defined as

     
    $$ -H_{\delta}(a)={\begin{cases}{\frac {1}{2}}{a^{2}}&{\text{for }}|a|\leq \delta ,\\\delta (|a|-{\frac {1}{2}}\delta ),&{\text{otherwise.}}\end{cases}}}. +H_{\delta}(a)=\left\{\begin{array}\frac{1}{2}{a^{2}}&{\text{for }}|a|\leq \delta ,\\ \delta (|a|-{\frac {1}{2}}\delta ),&{\text{otherwise.}\end{array}\right. $$

     
    diff --git a/doc/pub/week34/html/week34-solarized.html b/doc/pub/week34/html/week34-solarized.html index 2589481a4..292477361 100644 --- a/doc/pub/week34/html/week34-solarized.html +++ b/doc/pub/week34/html/week34-solarized.html @@ -191,7 +191,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Aug 23, 2021

    +

    Aug 24, 2021












    @@ -366,7 +366,7 @@ Projects are handed in using Canvas. We use Github as repository for code

  45. The lecture notes are collected as a jupyter-book at https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/intro.html.
-In addition to the electure notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below. +In addition to the lecture notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below.
  1. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, https://www.springer.com/gp/book/9780387310732.
  2. @@ -406,7 +406,19 @@ Python is the recurring programming language.

    -This course aims at giving you insights and knowledge about many of the central algorithms used in Data Analysis and Machine Learning. The course is project based and through various numerical projects, normally three, you will be exposed to fundamental research problems in these fields, with the aim to reproduce state of the art scientific results. Both supervised and unsupervised methods will be covered. The emphasis is on a frequentist approach, although we will try to link it with a Bayesian approach as well. You will learn to develop and structure large codes for studying different cases where Machine Learning is applied to, get acquainted with computing facilities and learn to handle large scientific projects. A good scientific and ethical conduct is emphasized throughout the course. More specifically, after this course you will +This course aims at giving you insights and knowledge about many of +the central algorithms used in Data Analysis and Machine Learning. +The course is project based and through various numerical projects, +normally three, you will be exposed to fundamental research problems +in these fields, with the aim to reproduce state of the art scientific +results. Both supervised and unsupervised methods will be covered. The +emphasis is on a frequentist approach, although we will try to link it +with a Bayesian approach as well. You will learn to develop and +structure large codes for studying different cases where Machine +Learning is applied to, get acquainted with computing facilities and +learn to handle large scientific projects. A good scientific and +ethical conduct is emphasized throughout the course. More +specifically, after this course you will

    @@ -476,7 +488,7 @@ The following topics will be covered
  3. Support vector machines
  4. Bayesian linear and logistic regression
  5. Boltzmann Machines
  6. -
  7. Unsupervised learning Dimensionality reduction, from PCA to cluster models
  8. +
  9. Unsupervised learning Dimensionality reduction, from PCA to clustering
  10. Hands-on demonstrations, exercises and projects aim at deepening your understanding of these topics. @@ -497,7 +509,7 @@ Hands-on demonstrations, exercises and projects aim at deepening your understand @@ -512,7 +524,7 @@ The link here STK2100 Machine learning and statistical methods for prediction and classification. -
  11. IN3050 Introduction to Artificial Intelligence and Machine Learning. Introductory course in machine learning and AI with an algorithmic approach.
  12. +
  13. IN3050/4050 Introduction to Artificial Intelligence and Machine Learning. Introductory course in machine learning and AI with an algorithmic approach.
  14. STK-INF3000/4000 Selected Topics in Data Science. The course provides insight into selected contemporary relevant topics within Data Science.
  15. IN4080 Natural Language Processing. Probabilistic and machine learning techniques applied to natural language processing.
  16. STK-IN4300 Statistical learning methods in Data Science. An advanced introduction to statistical and machine learning. For students with a good mathematics and statistics background.
  17. @@ -880,14 +892,14 @@ $$

    - + - - - - - + + + + +
    Relations Name matrix elements
    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} \)
    \( 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}^{ < em>} \)
    \( A=A^{\dagger} \) hermitian \( a_{ij}=a_{ji}^{ < /em>} \)
    \( A=\left(A^{\dagger}\right )^{-1} \) unitary \( \sum_k a_{ik}a_{jk}^{ < em>}=\sum_k a_{ki}^{ < /em> } a_{kj}=\delta_{ij} \)
    @@ -901,12 +913,12 @@ $$

    @@ -1007,7 +1019,7 @@ or simply write them as double precision numbers (Python uses 64 bits as default
    import numpy as np
    -x = np.log(np.array([4.0, 7.0, 8.0])
    +x = np.log(np.array([4.0, 7.0, 8.0]))
     print(x)
     

    @@ -1016,7 +1028,7 @@ To check the number of bytes (remember that one byte contains eight bits for dou

    import numpy as np
    -x = np.log(np.array([4.0, 7.0, 8.0])
    +x = np.log(np.array([4.0, 7.0, 8.0]))
     print(x.itemsize)
     

    @@ -1321,7 +1333,7 @@ pretty close the basic mathematical expressions.

    Our first data set is going to be a classic from nuclear physics, namely all -available data on binding energies. Don't be intimidated if you are not familiar with nuclear physics. It serves simply as an example here of a data set. +available data on binding energies. Don't be intimidated if you are not familiar with nuclear physics. It serves merely as an example here of a data set.

    We will show some of the @@ -1556,7 +1568,7 @@ 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 +\( \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(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, $$ @@ -1616,7 +1628,7 @@ ways of dealing with outliers.

    The Huber cost function is defined as $$ -H_{\delta}(a)={\begin{cases}{\frac {1}{2}}{a^{2}}&{\text{for }}|a|\leq \delta ,\\\delta (|a|-{\frac {1}{2}}\delta ),&{\text{otherwise.}}\end{cases}}}. +H_{\delta}(a)=\left\{\begin{array}\frac{1}{2}{a^{2}}&{\text{for }}|a|\leq \delta ,\\ \delta (|a|-{\frac {1}{2}}\delta ),&{\text{otherwise.}\end{array}\right. $$ Here \( a=\boldsymbol{y} - \boldsymbol{\tilde{y}} \). diff --git a/doc/pub/week34/html/week34.html b/doc/pub/week34/html/week34.html index e90b09b95..59e5c7f86 100644 --- a/doc/pub/week34/html/week34.html +++ b/doc/pub/week34/html/week34.html @@ -196,7 +196,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Aug 23, 2021

    +

    Aug 24, 2021












    @@ -371,7 +371,7 @@ Projects are handed in using Canvas. We use Github as repository for code

  18. The lecture notes are collected as a jupyter-book at https://compphysics.github.io/MachineLearning/doc/LectureNotes/_build/html/intro.html.
-In addition to the electure notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below. +In addition to the lecture notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below.
  1. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, https://www.springer.com/gp/book/9780387310732.
  2. @@ -411,7 +411,19 @@ Python is the recurring programming language.

    -This course aims at giving you insights and knowledge about many of the central algorithms used in Data Analysis and Machine Learning. The course is project based and through various numerical projects, normally three, you will be exposed to fundamental research problems in these fields, with the aim to reproduce state of the art scientific results. Both supervised and unsupervised methods will be covered. The emphasis is on a frequentist approach, although we will try to link it with a Bayesian approach as well. You will learn to develop and structure large codes for studying different cases where Machine Learning is applied to, get acquainted with computing facilities and learn to handle large scientific projects. A good scientific and ethical conduct is emphasized throughout the course. More specifically, after this course you will +This course aims at giving you insights and knowledge about many of +the central algorithms used in Data Analysis and Machine Learning. +The course is project based and through various numerical projects, +normally three, you will be exposed to fundamental research problems +in these fields, with the aim to reproduce state of the art scientific +results. Both supervised and unsupervised methods will be covered. The +emphasis is on a frequentist approach, although we will try to link it +with a Bayesian approach as well. You will learn to develop and +structure large codes for studying different cases where Machine +Learning is applied to, get acquainted with computing facilities and +learn to handle large scientific projects. A good scientific and +ethical conduct is emphasized throughout the course. More +specifically, after this course you will

    @@ -481,7 +493,7 @@ The following topics will be covered
  3. Support vector machines
  4. Bayesian linear and logistic regression
  5. Boltzmann Machines
  6. -
  7. Unsupervised learning Dimensionality reduction, from PCA to cluster models
  8. +
  9. Unsupervised learning Dimensionality reduction, from PCA to clustering
  10. Hands-on demonstrations, exercises and projects aim at deepening your understanding of these topics. @@ -502,7 +514,7 @@ Hands-on demonstrations, exercises and projects aim at deepening your understand @@ -517,7 +529,7 @@ The link here STK2100 Machine learning and statistical methods for prediction and classification. -
  11. IN3050 Introduction to Artificial Intelligence and Machine Learning. Introductory course in machine learning and AI with an algorithmic approach.
  12. +
  13. IN3050/4050 Introduction to Artificial Intelligence and Machine Learning. Introductory course in machine learning and AI with an algorithmic approach.
  14. STK-INF3000/4000 Selected Topics in Data Science. The course provides insight into selected contemporary relevant topics within Data Science.
  15. IN4080 Natural Language Processing. Probabilistic and machine learning techniques applied to natural language processing.
  16. STK-IN4300 Statistical learning methods in Data Science. An advanced introduction to statistical and machine learning. For students with a good mathematics and statistics background.
  17. @@ -885,14 +897,14 @@ $$

    - + - - - - - + + + + +
    Relations Name matrix elements
    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} \)
    \( 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}^{ < em>} \)
    \( A=A^{\dagger} \) hermitian \( a_{ij}=a_{ji}^{ < /em>} \)
    \( A=\left(A^{\dagger}\right )^{-1} \) unitary \( \sum_k a_{ik}a_{jk}^{ < em>}=\sum_k a_{ki}^{ < /em> } a_{kj}=\delta_{ij} \)
    @@ -906,12 +918,12 @@ $$

    @@ -1012,7 +1024,7 @@ or simply write them as double precision numbers (Python uses 64 bits as default
    import numpy as np
    -x = np.log(np.array([4.0, 7.0, 8.0])
    +x = np.log(np.array([4.0, 7.0, 8.0]))
     print(x)
     

    @@ -1021,7 +1033,7 @@ To check the number of bytes (remember that one byte contains eight bits for dou

    import numpy as np
    -x = np.log(np.array([4.0, 7.0, 8.0])
    +x = np.log(np.array([4.0, 7.0, 8.0]))
     print(x.itemsize)
     

    @@ -1326,7 +1338,7 @@ pretty close the basic mathematical expressions.

    Our first data set is going to be a classic from nuclear physics, namely all -available data on binding energies. Don't be intimidated if you are not familiar with nuclear physics. It serves simply as an example here of a data set. +available data on binding energies. Don't be intimidated if you are not familiar with nuclear physics. It serves merely as an example here of a data set.

    We will show some of the @@ -1561,7 +1573,7 @@ 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 +\( \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(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} \sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, $$ @@ -1621,7 +1633,7 @@ ways of dealing with outliers.

    The Huber cost function is defined as $$ -H_{\delta}(a)={\begin{cases}{\frac {1}{2}}{a^{2}}&{\text{for }}|a|\leq \delta ,\\\delta (|a|-{\frac {1}{2}}\delta ),&{\text{otherwise.}}\end{cases}}}. +H_{\delta}(a)=\left\{\begin{array}\frac{1}{2}{a^{2}}&{\text{for }}|a|\leq \delta ,\\ \delta (|a|-{\frac {1}{2}}\delta ),&{\text{otherwise.}\end{array}\right. $$ Here \( a=\boldsymbol{y} - \boldsymbol{\tilde{y}} \). diff --git a/doc/pub/week34/ipynb/Results/FigureFiles/Masses2016.png b/doc/pub/week34/ipynb/Results/FigureFiles/Masses2016.png index 10b85e2caf3c0429bc45761f2959f7a731bfa9a4..b8976c975be470aba5146a39aa9335f0d7f94c32 100644 GIT binary patch literal 16565 zcmeIabx>Ac_%Hgtlz?=13y6SpmxO?nG)Q-MH-dDDC`f~V2ucakDXDaKcX!uaFMiK& z=FZ%iGiT=B|L*9X4eq`6T2FnRSkE%zwW2gSDhVnC0zsFRkyL>|;KU#hXf!es_!kZ> za#L{Qca_p|Rdq0T^)PZagD4oeI@&t8+FBV?xtlq=SUK2pvVuR%RFfwi5DT%Ly=_SO(yeVJHEP?!7o zv^c_~B*7C&s>hQIf9N<9CX>p2llu4LI6417T7ImjCLDX~60R`2^!XkoC;J*4-`OUz zcTmyL(5Oi5d?S7M!5&o%_PZNiproW^?iM2?B0OAXR2hPUjU8W@1EB*C)uo{_;9+4b z-23qGa5Zv7Dr{`*0)hX3;Qx&|q;BxBZhCsb(mM?#Bts`>v1DcEf*A!R7_nE|&HvrV zpZkr@=;FHJ{uRg1;&9eu*rHcMI~{FN4j||IUpIBL|8wSB(n zFv%S~9@}J~Gp(Uf>>Djf)AGHf@%OsOIU)he8{dgtA^its zAq(oHym#p1U-zZ(J9$CCTEAI3Uy_p(EP9n=V`-HvuB619dC|tI$GqD>HR%xkbb zrqd*+I!tHZbenm(e}DI!wdv;7)U?OYz(Ci^9~RuXXUK4{XEm#d0UecgtPLm5WYVPE zdvY)}WE!IFw=>!xNA2}W>VoC}sN);K1}~oWAW*+ zV!dGY&_@*2apKfUc6Q{Nx`&Ijd8uWsMCBU+=lcB>o@)eCS#bfNK@f`W1g?jr8~g4*EnZzkNp^t6OPI&lDN zdLQ`lxOjJaW1@Y#q^ZN;cC^>DT>Ea#q46a%!7@DM#lqm`d(>PAT_>IiT8Z71#Qt-4 z97^QL(ni8i_?h~U1YSNb$H#^~hS#BX{=Ai#Pbn*}{j{hJ4KedXbpm(I!^yv%+}Ra} zkXE(4oti@E2o)z982S9=D{Jhh(y|Xc?n6ws$>0Y9cjuGCk1^?PrR6;C<|qB{#&E(V z7sZ}&OSdK{i70X;8!vb8Mzk9X9d!l!-W}iL25t^pK;HL`vDv-ZbXQP7r=`scR^hdq z5(7fpvYNTI=c8a66X+WmJ;NDBpFo#~$3Duv`%=OXOZC`E9$J6pycDWHaMN3h0^&l7* zhpdP3#Y)Y%F+E*O^nd!jCo#I9^AgS6$mxc#%l<4<#^fi3nl2iWKYXuw2&`KOr)(vPF;1O z@+M@@OgN1nja1S-r9(@9@%AgRm5PGX**htDoJtRj@*

    i5*>s0 z-NtyMW8pj~)zts2^HA)bq z(`ll?hqtJR6Z6o)*H;DdA%~R=gVCPl^@MI#HGkZ=M%(@gTXqX3T1}9WQUFCDq?E-n zCDEJ?|AU<(o7EeVgv#*I>S}Hb_ZZc}j>scMCyc}=FGX*=F2cB}{CBvJ0J*bypy5)HFvyJ({=+poPvMti@Jwm6)A7N{WO z#&6(9N!=Y%-e+hr^W05T+UXP&6)jWVEm9uT2ll4&{`5S=@jr~RAR;5nEwUqx6F$3# zA+60=eV@9fU+BL7IS-7FzVrD7RyeWC2RW3t446WWl;swg%@UZx%^AXaH^-s@VYRj1 zcSp~gS|ai1&HjEYcxTj=m!yyJv2acFW-;B>b!Y7l17)Y1UZ2o0v$f53_1V;R^=_qu zvcbHVfx+|4+nx2CtxA&*X3^}*yh~bRquictbKh%f*1{X-%b3V8x=Oke0_@)1q>$4?=+_UwPtPtq{lo2aTu)-L zJjg#dg^iM)FH8`y#8{2lZ?_*ySP!wgyQAaA@%N;p8M#bDH2MZU$PbkZhUo;-GxWW- zc&kN0UxyMZ7&XyKtv%nunpmioY#Qy$-h2#SPerGRjNIBF8ruPVj;@#^=j@zjOtSSg z&oVjT$=HgDD6PVemUibKg_m;zI3t>mq;K68Vv`!J?TaI7QOvSY-;-g_71K;pOiL{C z(wf!<`Wc@(4$_XBE-HCw#dXS*OO+J|Ix&BU;ET0$`dcrX*68SLx~ud=S0yJ$X;N+W zVwo^=PQc%1aL0qf<-TDUW6vd|{e7t@714b^!_H$ycOSgkNW5C1EB7@cy4ZIX^xj_ogXNs9gTz@(&FQR?liIoXb1mqcY{+^=apIRhz`d`hH9>p+W0T4N z?P50J>jEB{AjOt(H+)?(w`nPJR}J)*;Z1H|k4oCI>qh|GoQ-XSrv)D+ z^X6pyIW72h|Ed$e`{!rwyije`S0<;uNxSJj1EOk%0A;2tE%%9xb8}?8+rHQwV}&Tj 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 NSt&)yVsXQu{|k@BAddh5 literal 16191 zcmeIZbx>8&+dq0J2?1#jN`tf@(v1RwNC{HX97K?AknZko0RahV>6Gr4?v(D1-#YmH z-S>Ux-kCeUnfvEu*uy#Oz1Du#)6Zu;D?naW0t@2_1_T1ZdMhcW0D&NiKp+UgXb-@D zUaFGngFndDuit(^13%7a`u^ZMx`m{gH3aey4}KvG&$?cNfAZLftJ)}<8`#+ET780; z>e^VCnA?~b=~38yva&WZH)Cgc$->4=VQ6Dx!Nc~98DJ_^NCEwVRe z(ovW^EIeT{WpdBezVl>m;7p$whDil}I9o$&5a1tTvLQ6^?-B@-Vq#)nLJ`CL{ryKt zP$+P5adUYwM8G`-YXWz0@B11(B*5QavhO_v4;MEgG4uZ)_}`gR^`3jdVSJk3YE&yf zm!YqzY2v+8eS)+Lr{HE$OHM-~*~$1~5`)XwpV*KZbi#BDd6eoxd|UiH-^(vwN45Rr z{`Z4O6PX z4;_w@22gc+Vjov+74jRI@9F61xIc2;XSJL?e0J@Dy1PDqcQb$9(^wZ;HsE@+vL$%6 z&3?V95(ZNvk`p{JE^NHT?@bk4_n+ofyw``i2WPWq`2D==08XJ-e6_Vr%mcjq~(v2DWFEgjVtYwAWuMys*vw=rqgD}EYZ|E}8D?xg4D z2B?)8$T|MhFpIvsX}k-1YJSZOF&@{Fc5!LJt+b?tYhFa&@r{I*e#hKm=4E2g)RyBF zFCEFB_1(GIEFJWZnxIGX^rlwsbpXo8vT4*A%Km9QAMP_zWOhHOsBUe%aZg;B;UPb zg5;~Db=RNW#=m2&PYw;Owz275WztsT&N6MhUS*Zc8g|}N*QQGwC^H;FuUma?9Hu4F z2f+}r(s;_`a2!UEFdLoi_PuG)FyN0bO_KeiVPOsZ#ck$#QO5@ofd#6A-dj^Ehh)}? zBLefhA}Z#goJ1zCsbDYsZP6U%0)sc+1UnwQkfaIJ2{8>t6MsA z*CR)7-Oj7|JA{U#6!XKfw43NKw`)a#>wUS4gD|(wKtiVK<Mwfw=aH1ye#tTlN>&3 z-JE&99no$-&07j(H0Xrf#olBS3wyVjqU(+9`0tSE1rZk)M3^WWrlFB+gsDI5nMuL- zkd*RnH#+daCxygK;1ldK$#!svCikuVYh!e=42!CmMA%|8>K=81bcyYjfnEu8{_a+@ zZqMZo-@V#;9U;6+|L+FT~mYE6Z7LlcH-`-&}SGz>NOM#DXEmD$Z zV{2LtSVZGR-$>nGna_=z<2=j3ocF`(8qMdm`h~7${<`L~CnAQESnINUE6Fd@^R0f7o?%om zSt3&Y{X1|{l|@HQ=lw0a>*HxeBvESdKp*#^2t0K=OuS0w$k3J}R&0^31qU4`gX=J# z<%`uXQK+FRtqh)u9LsKA>h8@$c-u^FKj*v}_IAC@_7+8|r+C7pnj<;Rb8+o*-s}$- zH(<}KL9?5)VQ*ufF(n%Q2#R_eBO327R`h}KU~=I0u2rw3tHW-0=9P;J(%rG#o%cG5 z$$UeMQoiz0koI+OLjX>z~@YGcI)UQT-rApE`W>|1Q4Q@x-++0NF z=|@x3$;`{I9r-UF%TIjxw%-f&3303|v_g3RgF+b;j$gmDW&4_p*OCza8b5kd_irB2 zHj$qX(-WRgN>1WejM~Qs*ErJ^8)Q)GT|Sy+Y&rAUFqnF;ne5SZKZ1ZTO;Tt{4!4BB zTCs&P=`_Dz$)WFL7tPJpVU@U{(pnY!bz|;_rSReP`6#4}}V2&tL>n2&v=? zD3lj^B2cpP`5~T#tY#y-xBY>NQlg>~fs;Y(tsga>tY-yqR;z|8vG4uNeDyCfaw}fu z{e1q^7N7AoAq6jEUHvn=x!SZP^Y+eTMAWuTjV|hWy~P1r2ZXQ^t{??b++|f7d`pt) zrShzw1!`UN(h<@{X!bg{rR@lZl>L=%yL?<=+aS_t##{YqRiI2WEZjD zKiys;RIdn?8sS#QU-+Zvd-@ZHsIkm?BAR6u9sf3xrRQvQ%-{L(%31PS%!|AFW$=uH z7R#$94yHEUaB<}!kw#M`#_=5u4NjE&sV6wv_wJ>W(Swnt@YJ~0KE6aZ z8Y=ck#PB*Q7-pF1cD6i*!$_C4MWFAj{n_D?{aJ~{sE%5=J(90%xnxRAdilg+IlemE z1J@c??x3|%>!s^Ab|=BbHd@qWPZZy~y<-pjq{f^a^=UErP}ODn8R{AtW(d)w@Q0>~ z=QTAF#9J&8WMvz(LQ*9i)Pe@OSja090!x`9aRc%yj(C?8qT9r24LcJ=CBdSUNOno@ zzLdR-u{2#dV55r`DR!R5un5IGFw+J!Czgv|0dwro^h8adNa(0i|b zT07EXz9qMIC}bG;+w(+?BgeJd`mudMa-E=?a`x}%alX=eR=hXpJBn^x_{L;4sE6C+ z-OJFR)RfGXGlH(*Nz9$zWqT(Y2}&*QNUL6CC7t@8{{l61~n--F}+e?!8-2Z#9N`T3Ft%%f~d!I2sy${TL-!{G(s2#_U@A}JW-_bW>GW?k6LUz#=(Vw0=@!E47L6MTfdaHr0Cf+E^; zO;A>pEWY;p>&>6%MFFH`ZwKU>oh8#EbZ=jgKYT~|sz}brJm5N&>i9C)h6uXT3&Zkp zaFsODhFmp0!c5iHGBQl2YV+0l`jpv@`}c?`c7o5_M56H$2P5i`1mvzN<)34bsRMQq zZeO=6-Ih4M%gV5C73Dlub)H}E(Z1!LJB;N%LUpqsuADjC!^Au;`_yBw;3sgV;du6$ zw}BoqR;Aa!+-N=_d1LN**oB*q$9%bhUiJK|ac7Bchv{~;rJnWj=uZZ@NORIVRaMM` zTES}H}jS$yutJX!e~Aurn(&dxy| zGo9;3*%YcCtdYEO%(TvQEvdilE#v&k^V~Cz9OG%IkHeMJs>P_1p3P^Ep?<__O-GDO zp#w6}D%K`9yLbd&VhA6M3pj`Z!8bj_n6^hzt+JfR36NT?v5YU=vr>IScJ0K*RcncN zk6@U!cD8S(h!TV}|9+8&KH0rkdsyyT=^n#Q@KmSkJs{|;h1k4m!Lrm=W-nNn?^F4J^4)$#` z+9aZR+xIR!IjJcHe`I&!<@4B2B|6Q&;{?s7SI>raXKM}3%qUa-ICn1xAj)G+UFfjN z+;P6yXz6r@)=>5B6%6h6Dx@&?{5G|;RM%KbQRoop{@m@;J~$%S-dQM6pCmy%5!*6F zzHsaled(Mm^sT6M@Tj_LJg{T?P^yF0Z?q1%a%;a$(ejUQa8gT94!TPim*vfi;eAmu%UO&feBn zV$VzeWlDL#$}YQG^8VD#k-WN2?ks`G_--7J#cU9lP(l64OLSQ+0ihYEc8?B0;qPu$ zBDpv(>X_v2{=D}zBQMJL9$$@sa`0p#v<*QjV(i<+L_Z z-+pzCT)W8aN(W)X6&Qv8^(Bc*|IxyBZ(YznZJ8!@eV%`r+rk#Oru+ zZ%_jw&7xdZuAk9~k_?(BS;t+5q2 zoq$bL^q~svBkb1h39-~}m;Oky>pkAsveiWC|Rue!FD0 z22tuTa*nji478=GL7;{IFnGI@y@oxka-e1V=*1OMK{L+h7vGB~Gn>%ro9vooC*!&N z&S!uYqT^ZPm$T$&+FFv@{SH`CCrGgT!U)MyU;y=DW@hH-_&7TkS9|HFo(!`;Y>H2g z&d27>C?}2gYPXZ#o)2habTRSDLopRJ!Zg$k^iI~ZGH1EK+=LMv6 z?QzY`1B$2poY7J!+hoJ2R+YX8LWtsNpH@=K0@rw73iJ3%rjg7uMUr%#O z4RbxtoN+mutt#xv5xy}pnO@5zzuBNnTfRalbaK8^=HyXWc{r~o*Zb>YgZyW+rOBo1 zXoq#$tn8U#>Wg zo(B%Fah;zK_1dwSvP|N)dkxJXn;va;{%Nx`Nm{!^4#kd(d7_|5_zi$ZPo6#ncvR)= zpFiz$^-kI+yhunAd*A9|za&~K1Vy6*g|esw8h^#D)%DD=?oe^Bl`LxnDVZmWGcK0u zy@HKxzh_fC9r-~3Ah-O}2CL7!y-A$5xL$0&dfEZ0&v~u*j|l7@6K^r=d_~;$fQ*p8 zc0*5PjkueHUL363(xwkW+GrmZb+!MsV0(_;RgJ#6saF-+cOCk`GZGX)9G~z<$JAMLk1I{GW;mT1BSPy_X<+smy?vp=|7q}_6JbJJ1O*KZJ( ziBDPm(zA#je*XN3d5fiv$mjiQ2pZ(YDKzUV)Uk18vN_LKdDv8u$V=?JJjcK7^G(QJ--qF@6Jt@xy#lCA8zOH zbSYb*`8lL)wK56AF z56QCLauK4H$d2)#tVN{0Cb>M@(^bo)N*QXMvp1V*e4DAxB zu26xO!Zv3AG&0TY>^0+~QcNSw9lUFhIA$7>ZY@schor`M68gdye6 zb2IBXWwv>=4XN0p5anaGo-#gi>)Qz%s+p#K{P5x;1NVB@is9>Rfpl~qegtuADf0}` zv4XAHBum=Og4UsF407(b0yCgcE812EPHlIoYh#j3UdVM zLUL;z@=1_FIdflla$J*R;+;>l)cKOpl%VS?Jm5)&bPpR zxeax}+^1ULAv*XjT1PDlehuCSX15suFWx$}Ji%}?P3I?v@FNg2m|${7Ep^&@?U0LP zI-|@u{-W_EP<5<5L*;V-3G3#VY^sdDZ_F_3UVg@^Gq6T^S+N4$Vvd|vqL^97CFelq zO}i!{uLvHx+Na=WwlE2b-@-AsEcx6a`CM|asw%YiH_bsPk8Duhn?ozG(C-^4QI%&W zA-G}uG^s4_xxc)({}NeKW(+%G#7&r7V)Mh7HCywJN}?lwDB5B;muY;4hBV#LxySP2 zj~d0qRuq(j#@G2!Q^6nz>CosGyDRr)I*3@uo^5)BAGdb22`UDFUMqV|0XER zd&8cJC{M@`oBiP1`O&kNqTyPR6gLlkp5jGJE%R~7Od^9{=H#zp{^Z`rScDtX+;4Q{ zA|gmpFlu`wya$)@u~AiL5p3e1li^6;qO2yYBDqdY;#TUAb1%?eK2#iK1ra8^Rn~Cw zR{9&{gE$5%%D4LZ%;bIfi`(rUb)_3zTu1crl7!i0mOZ};tIdwUEcZDNftK3C6+0rp zI*{ou?VMO#y`Cw7XkpSfsFD;B$Ea~l^s$tjLQ6t<{$9NO82icaV{&`>pWewOc2BSt zUI#Sh25y>J)6Q~Q!@6R&-^v00AJW8Tbmz7)d;6Obk;0zBItiWMe0_Lq-osXx>0D(} zJl=AAUghCAww5F1 za`_$4deJ;JEj4~hWftQvXt4shgmYMN(nPjNA1iM5dj1Iftucrsn0-WSU@dnA{#t0!?U{$jm_7wVP=3RMd)>* zQrr~C4ckfnl)_K?xw9lLmO*4qIyF@`VYHB(Oa7FYVW|F7{Nj$IRSF7*Q{cIipr=Q; zf?L2+6cUH2R5+8v=rb57W0^aCn+7e04sZtk>Yy{9R#R8X%oG9EN>Gmj*-}|OYJB;4 zRAQ0@7nc`v(jA+Y5Hl+Q(G|ZcF7d2v*|RjbJ;;UUh>zl&*E=e z(8aFkH1zpJulhu5b_!CRDn{`&l}wg9elp(@(u1$gOGv)G{#euq&4wOJe-2q&MD0)6 z?u6rX+CC5_VgvpwFr#oZ>J*y>)s(&bS{CI0p<0@;J?3#5nmcT|&T^H6Yj=B{d-`&N zoMCw2MQ{2wY7;c^C-S=)jvZQrSp-{Bbj?RvNbq^+FPSI4SdNe$n7_RFc z0RNS-fx=N|Xh9Nmyv6~d;=!gLwn{YVn_{_vjb0K;ly7JkuR86?X1ehQ>>IaX0017?O&#jG^3jfyV?2$m zeR2zSf_YzKh~RFLGn7`cc05e+QY0hqk8v=(AtTdh{Crq4%*kf=9Fv7w)5LFA zz0qVoxO>KdYrpBH#MAFix*CxK{)h^E1DjVN4NHX!^1aa4^0ib+q4 z&=wid=7h(knXOiO;gceSjf5C~ZW zycb}IS3WNAZxcTtI#Wbt1dUV!;ZQprk>Dw(_YJ};5{y2>^LJumEA;OnfrHKXX^*rn zg)D2$%pDDx&uW1b>7sg-Tv7SR4bD>xAV`@6BpZ1Y zL%r8FHRCwQl$mASXG#cgHt+%ZIBe0jzr|?3@+X8UxU33#KG^J8q*u?u0KEX6L*D=g z_7^_wFOFi!TR{pS7+8brF%YGDX%WF^&V^hku0yiEcAp*nB%-c9fPCkLw+%@608#c* zGK#q3MD9MHCo^WcBegb7L81jriKYiUlec!iZVKP!R3!@TD}}_5$2ON11XjKm6Vs<1 zHrmINA)3K9-h?r<;EJ^_OLFEDaM$4M8ktyumcp+`;Mw7K*btUlC zF%W+9@@>+)>Zx2l!Xq?~0!RYZVQ$5Q!Czx6~+I^9va zs=Iz9g4Mjt1R7x2{lB=Kee))@0HAl$_b^RLG>e(F2r#9*V zw0GOr&8}j|f4kSK-q8;b3{Q7Cx62XdiyrOv3R9NGYby=z8WuEdUE;d=jg_7$O4#N0{x<-Ku453?IahkdV5gl)c~rLDpHcA*k2=J`I(gBPU~! zXN+CH4*ob;YvixcMK`Zs95fd_@RO5uhsn|Qf3#jGF;Ny~Bg(^I)Z?1=q};PM_%bpw zpgrNJ`H}03($hK{!ua`RUCihw6w9Nd8{dHzhyxr0v1%hD2!3UlJ$PYD7{Bi4AV}5@ z4LlkA@lOsLj8D_Om_&39_noAGbn1P!4C&w|2@?kXkqZw$Lh zz6~8BwSBm7?Hvny1MER{NQvvUB9n;kV3WJ15LN?kl7F5Wm;s(5deg2!CM%T45FcWB zg@&1`bBrAMuQdig_$j(a zMEa$9{%QZv`Wzn@WXy0M!-it0n}-cy#Zo0Q#p>F4@(gqqA>H3Vj%Ar@g>h-|q7G&M z<3<+XMwhsb7ecOgkc!G2(vM&7|8egv;OXM|%NOhf;j&c@w&6d6qJoXhYT%aqoypXj zmQlpu1r4#is+AS~^UvjC)AWGlPvABlet^sYb^lay9Zj^krk`mV4aAEzh@BppIP32S=p?n5gQ@S-`+Nu$Ij>AnpeBEkLJ%Z&8CbEg2ALJp1E)RfLafe$LD}okBk%WA#cp0dSdVHjK-jEr8k?=#i4!JtPT8&HKQqG7E<{;Y^SqcZr_AnVnyq zGA=?{Ncfz(xS3xRT4g)JZHcYwh$h{$06ZXL?ia*CZ&v5Uht6lU^H~iIWbTTxygvQ? z{r>8lF6nGK*ae6qIPrkw)eo8wL_=faBr9REFp1H~@qTErV6kX1K9OA=qZ;adB>wQi;& z{f znC<#{U3k5)c31Cctq*M7Jab;>pVz&;zJP0M!UXygX6F06gE0?~QN5n}PF?*eh%)@= z3#h{WpVSC~#4F5ZF`9<6-cg$^9!nP@wkV*$E%bLDEu>A44Fr>mZk2}LDvg(8T_dCE zbxDUvj|6aZx3XC=JLq1i>*V~xFaM9;e%)_I%{2S{o=`yu1F0NS>wYO~-B*(XuCXUu z;}WyMne9+^AymnzZ*T?s`K7R~CysSJU;Bpfv8D|!_lyP7BcXE&@YYR(dV?qlUDepw zX1F6z9mDj{w43~-0j_ANXRaW29|Fs^7?I&FalWtujW)0Qh3}jblaeyc)^s1<6l)+z zxyO`en1uq$WO5UMm6C;7&pEEkkonf=wmi7KYP?G-a$aS+-uDv@uCn!G?e&AiSNVKm zfctFVcf#tE?WT-0>}PF9FobQ@eVy~$im9ZX8BxiwzQWW$tvev`S)D*oE}|(bRkpa*%#xU z;c0%vCiwxVt|9$o^9szWsoCXOV+zpXnOI5C zDOy7!KW|#u0p4h0Vj|x+4fgh4;u(r#2pcf+E9g9cei6=(gzt`8T<7Y~=6XQd7O?IJ zm&VHQJ61tu837u0WuYEvYk0=YSd@n}SfEx`b-onDKoqn+T^V+9v`+r#h^66N4_r&I znHrVPhp#St?|nm?k}c$NqC==X^4U8J64ahjhuJNy$F@<}Nesbh25ALdDQI9)Dy1<5 z!;{Ui>#nrxx1)UyGPGw1Qg3E(;9=+kATvUOOxMC9`~xFO)0m1jsbx@hx+=DaGU%hZ z7yKr~1~`0~xx$L0a%m%HG-fT$9U>65(et<EUOydw7zDmvHaJzMOUAK2dbq{&U{bnZdFB?dyEB?a?Q^@6T zTth4SfIv$K_Z(Uiz}TtGhB$!U=_zS?gES*o3Pioa`qPhQ)vH7hsVuzDsgAVZT3hL0 zt=Y)5RLSuKtHq)l`1HFg++Qod&^zosut|TE-aG{kz`#2XT?BRS_nv#B8W%!Vie}>=U4J zQ=q8!=qhXCKnKjB0qr!nFWL?niw|W7-&ca%^!q7zo6aFUri>?0!vJsaDv*#8OZ>At zkjx>lS7S)?zXIM=>=k@!eQXo&A8+A0MwkQcF8jDs+BDl9Qv(CY<}}+q_esktDCU|7u-@FSgeo)N968uthcNzra14BU zMa-V4Z<-b+H*nKqlu?<-VE1VD#?gDhRdvrh1xpMOLIbJQs0Go-#mqkufo2A{Bg*?E zD4@0DOssmz+Y;Sp8UTr#Xk~*MI3t$JdOZfD3ZQ($;J3iZ<9bB^hJZ}oCx%G`M0jHq z`13S2D1|TZfdD4&1E!cb!jIp<+Jz9}ry8c7psa+8OzL5`wR<-qg>54kKyW|cr5eI8 z8x(GS0N~+h6hK8&M@@$dMOLsUffisx6O)xhRyje`)pVqKn=t)vJnRt7AVY}rl(bF?Vdy6A3&4&5%2>_ zZBrKeFCG5L@Qn=0x3PQ`xoUD>%G?imr6FiM#kd*whD`(ZhDf)83tvyR?$_;#d&4fTrJN@0nZB4L83P|()HGp_A+ zV}3JpUn1Iq5)tzxY!QwhMUpcO-FN1@(SkZO&pi9pe?=DdtfDW^TE}LXXW$(Q5@e3v zPtB@4=H|5i6lrS@6`9leHj$*DfHEKNzKj;SVkW=c_XFJxITs+4h21W(-g-XPb}lIm zfusit~u0-*fE^zOkk%1?cC4=d4pQPgvYkDx5bPN4U ze}R$w_$}?ALuaUR1rOZt@59)94||8+!=)E7NLck7lqw$|umVbmfvAuAUPXPo$ILPS z+OE4Ag41_S^4}#NyodB%30@RNyocnK>p0UH{*y&;VG|*jBT>Am5pf+*6EOmJ#^*eS z)MD@>9}$vZPibP5S7g%_e4*dK&@hS;)%h=l>utq}|IZRLz)RbOL8-fg1S$?Zbg-D- z^K9pqiegS=IJba0Vm$P+f>`Nc2m>PC10sqo>JatsgN4`|u-ezG$W4Fl(W_4I*7*Ab zGb0B~iy!sPR7DfMP(n=~CX)Q3F2LtoOa~-ct~OAuoM@vlHBW)eh}FXDqI|*F$|9!ou%3zX#n> z3iBynfYtv1M1`Ycw!2$W6o%jcsRCzUfkHfw^Tex!A{$;C0txys{m?*o2~~#|f;3Wq z9xx&u0p^wef8FmqM`aYT{1599<)5KQE4y>tbBGj-?mT~hFZ;oL^aReLA*Cu$X`Tj* z-Us9F$Kl>hTxAi1k<|<{iFJnQs$A(Mr_!+@-#fvh{3d?Bj$Qvf(NkK!MW_vn5ka5ojo?r`OkQdz<{3>1Rc z{bLqA@Kxc$S_oGEAq0r_kZv84I}O+M?@X2`j`)NW|2%>ec%$?EYI#{Uq%>aLp34r( zYTUD&zWP1)w_!4ukd;Q4yFe+_DLiiH* zz#-YVs6JNv_AsvQAjG_&bNs9xs1)p;{`YygOb5PLPd7F;D9FN)EZT`b?+=PTQrg~< zL#Ck9Qk-Q0c-BmAE|aCUHaV!+qR!Y8FkM_+VvOC*A^!jLFfZG;2~g6xY87=RAt3=y zr8thQb8u!^YOeoqzF9p=nwZ`$F?>Z0@1#CVWKXy>{GW$)?r|#q9gdos8u}Qi)@94o zubT|uT!nq(ruBmd?V(fSMRIM#Z)<|r-T}OdUfW~Pz68>!IA*zu1>cqdZ+ zM|4X7cq!x(xSiR%bqIqRc^LHV9Io~-aUncu0#08o^uBr!%gsi_X`1|;)(0-qzQ?TQ zNZz(KZ$^P{S>YTunZZc>0l5d1BmwNq*opiE9({PpfF=)$L0;dd3~;G`>v}s__|GWr zzhQ*`yw}%fz^@E5!j*p+?5?56$a?;{uZrQ5{aD<7fJaB;&noj~7R0BBL}lxzly7qX z{-(Vi+q8n)%e`0o|NJCbEL*$SEE-Vn2&wyG?*HYC8aRgajY!~fBXh=n-le>}Tt|&) zT*F#sREBRC4tdf4ZWU2>YgB5TS&?K7>MZQt0SZ)s^sb~&BYa9H$t&(*l3mD>nUHd7sz0=fpOFE{gf zueQrPrgn?|A7kgx)fOR1UeWPfp5B|#+>#QuGP|9Rip)eIZ0#D>eVl7U667ION*!r% zpn}zDdzt*M>S8F&RX><*%>$L}1wbt|vyyBz&Or`sLgui5a0E)ftEe#2JadpK>dXP) zgcugg5F@pg5ybLRR8%y^+{PPFsP*^eQ}E>$Koz*o=H2dAZUAo5Dsa@x{?)DCQ}iTe zPJQg1s7}Yk|J{_tr++LDuJt9URhp4jf@5X+ci=QpOS0?bUyhZ z8$s7S7mNrY725a?4o0uUhuD1a6^EjA4{N25{A!q;Y=p)_EW1q z5#Um?bB|g;agud5&cyRU+XIjz1;|m=)}D`c3;t)axD^}c$G2yVX&{NfM@HCl9B}%P zpPw{rpCIjv}oOWYdvrE>Q@`(b<2GrQdh%&B6W{#YcG%G9X z*>57!H02^KEcay|P`mkdkh?ic&4+}B0(|7#KKrh`%gD^kb?KS9wYBw!J^?d$rf$QB z)%0|3{{flPHXGz*ysCrDDHx1P-YRM&8@$>Yt1E}=ffj~H$AnQ%${Q7x$5{&K?m4Mn z1CIuTg{R(-ey%W`ZcnkF<8^df?@wV?Ep|WZ=MMwW1JWueZtIRRzARa;1CGa5*7*Ri z9fi~-kJ9e0*Xy=4_mFB=f*iBZw&%2UdR zK%YKc7Tj}u^jO2fV@{jZ@<+qhgSN*fb9oB)F+jokJ|z90dYuUB!<8txQh>MYHeBt3 zlQICX*jj;s1C9jn6gG6jR`{%X;NTP-j_Xc~lI06%yhv)~9i|PEi~)Vv5#!95qGojm zZ{P@PvC&92IPtii>J$o;(|X?JOh%{zzy~00cI;f&uxLhUJh8poEV>PZ7miVGbH~}- zB@PFALYG5fWR^+d-}yi!>NGyxF?UNsc}TPmLPrwl%DeT~HV3sR93@&gas+%vi54B| z0y{CSMS_cPw*^O+0M1d1okNhT%lA=TOe+d5n49^#lp?pAEzt7*5a2U`X=mw=T>Mk` z?HiUl8g6#Xqoir+_RMFhBJ9B_K@FQBad3d}=K62iEyGi8vz5ahR$)fdTY$n1z@ZFM z`eKHXWpHz40lyCufoIZQ08f3Mt8;|HK*-ykt&KZ9J&kjjTcjtz*q$iyg0l;N zJ~G_1t>iaD;l;zy*X(iGE4>o|L#+e#!;feqUlJ`%F+)^gX zKFgg=gVs1Www?{fnt}sUDI8o}hhF612=>6yM7hyO58~jWvOAaQRBN5%5pV>{pr%f* ztxbYw@297BrIXvy>n;FTORaNhMtQssFWHr*Ye7}ra5cMU)j?`sSKvaWkOYuZ{VB7W zzqCRJ0djEQTUyAj1&e$C`e*=dR-d}p$;?nT7OI8*+!@b@no=WsLISa6a3Y4$@K#h% zGjJ3zD5kg!J)*;}6PwrqKFz@pms^2akN54G@i^z z9p}SyVPu^B=hGE!M;E~z%a;7+(_E)6ZjQT_B$X3?uY{x+%zrketrH&!NNA3;$&Bon zk#sZS@hlC*XDG`^oc-QC^Yb>_zR{NH=O zoGE>}m65%ZuB{@hiwNH_`H*Q6xL zza!Vz`aeF4`!Pow%=LHpAhS8`&0O}xes!_yt3FpjYhiwZg@qMBrc{aw`wt2yA{p#E z*JB}aa&l~&XWqiX!Y`L-AOZgV;;nKJY%HvB|8&Sp@JB2$s5tl|c_`d>e}8{rqW?eN z*kS1iC1;-<%KYGRHfcOrWkXTtcHYj6_V@2!JOOvEacwVt48P^F(EH^u!K0&YrsI9D z`|Fr%kDJ2|dhPlI>SXt$GOhheUrbVIQ`1+F=?aS$W;C@5a}*&ZC7fihJC~^XIji1y z&M;+dk0{L=$H6)`CwBqT$;nAHg4h0C5!CwSN@4fwny#CflF0&zM!j*dnt|fN#dyBD zF`8e+rOsP01+90>$B(v)8uTisySlrV=iK(&j7kr;@`{qiqRVvgsx%mvmY2h-ljrxd z^Yeq%%1slG%!s?bqCAaZH^YHo@*O|~lEc=)!xVS)Wnc>4e9uwH{%z2O4Pj+ttKLWp za^5NFz~gn?!S}k&l~qv@-<>M&WqkKi?_=0KLBI%eKtKTBaSz+gK?|n)$)H%a1AS1N z?aTqZPU&PW-wkBO<9s&zWFmGXL*l7grDg9QhiyrhTZPmE3T!O`xTh=$6VtZJYM;MOyqMZaXYXOH1AhvQuRy!`56x2yoEC>NSEs?sX!|`b(p+ zLe1_hsd$L<{q1=yn=u9p3yZLr7@N(KFc9KXYUzw$zx?lS_q`wn#>U4J`eEVm@j>I; ztAFW=40>W%b|y>xc=u}~%FV`)df57zz3$x4_GY_>Wdx zJg-dXaZowpL;OfRxn7q!lHYg=o^Fq0&I*nldS0&LlDMp3B}h|SOjj5lul261uG-9d zoFDF1&L4GACtLTjj~6>^D~%PXcU0LdSKXdXyMT>Wsj`0ISd)0RJ8cKnyll@SAtSS1 z(m?{>xPELiX&BAoxTEsBwA5wcGqQEf?1j64FB*Qc6z6O!TR&e5&`oVBnIxjElH3bb zAkCLlR7V@>VLyKSXg=8-zU=q9YuWca=M4-DoG8|XC+2lD_!~(}J;Ol`hevMP&Y)dC z^JzFMWbxFM&cX{kV+a<7C{RQ^!Mls}!E6~)3To;OX0#UPwOHd|pt^+MPrOchum3ph zTN)S`z^(-1V~6b@FaioTwqe+4x_G{ew$;G`9#?plmD8}>k9#>oxb4=yn&PnCBjM307v|gd$Ozt!fE!}C?XnI#1n&;3_K)wb_c`~f*OOW* z8cv2jh~D4bh9o2qwd|i0_6uC+m)NaKr>j?5in_Y~0rMW7OrMymeg$w{Zd)g}U)oPFo~6&AGI9 zka`ihT3(;+zS}jz^R)q6hv#+CLW-8$Z=8{xO;~E&&#~5@Y=uTDFhfI2%L4b=+oprq z3Ge=9T@W2i#=BQVG2)1fLBwoXwTJ|SqYvcX9*oZhdy=IkJ^h=D!ziuvC3fXP4U?1I zY0i_<1F%`cRcBLXbmhmtE;d@-2uqYL%IV8x431eiwV8(ii2={qlx7u#q z_U>{$A~F&Ifx68Tpc9^N69A{T+0u#PA3ngRe28Y8aam9FBkngUg*MIk3=PQ_)?b-2 zR5r{dFQ(JEY8F`X@lH#4)$su>wK~2?><~ zrM;T{`T;l7!8Aljw1zDT>}Ie!oxwDb*7o+HB5gqk5+;eHqaz1U2>z`@J3G5rW?eW6 zu~4+S{lK|WePXNLIQEs56=uEGN06yXE3ek1tT#SLx}}q!z?jk6p4@ipeXC1BOjJ}< zNI`AQl+hZ^HTv#%|to_Tv* zpM@tS^#R=UUKo&g|NgOyi_6Y*CDVzaN~&>xk{>Y>4^JGJDITBAh}mK5BUoWi-T9o` zgx&e>G_tITo4ovxuAR{kN=nL+LQURhBrotjN@v`K3Est! zdR{;wmD9v=JpwLA26q7W>}DOtc*&^c#>BqhENhg8n$1@z9rQ^%uX`lO-By^vM)x3bUS0A<$zMBRQ_jv(d)9bQZ zyK42PdW@i#K;?`rD$s$JRa+L_W&|q9m_}ge7stu>k{zMM?_OLC=qnSUk})x1rVJ%e zVR7@rT+yE)yEKNpfBzn4=Qhgocbfq0`6aufp{U9NABVbQ<1IqtWqnT3ELgzuRawN#uiFgBc^Z*z5S z%Rpu-^tBgDLFN<1&_@{hJVY456dD0Ak4Ufj`{lDQYki3y=IcG)=_(3KCl|uMwDl$4 zeCwZ?nF;VKLGWe~Gm7ym7jTwyF6+c;>FG9HL^r!uUg^NDAnxb0PN{5J;I}RSWNdg6 zQ%f7KPBvQrmN_p4PvJ&Y9w!FBS?$;Wisa=WQ-013T_9yyl)@e2MLMA&&VV?2MbN9$=~La5YO5Ptq!Kl zim-t6G9)4<%1oYG)n8K4($YRyq>D7UtvLw3u@8@qkLh}^tHB1xa@mmkAfdAs(O_|> zzeb=U$J(#I-a|#_EKsiu&CjR*Tt4MB3WrAJiFI)>etMzgSCpIBrP{;Bj>HS3q zRzJei@VIyHbRJ@Q*a-iR@O=$JET*I+7e!3R!t%4W_Qxw;Evc*u9&Xd3r`i8Lloh64 zv9sS@@Qy;ZppPkPW*u)55oFa9>C49h6x0)m9zGPA{x78rpBR|A^Hx`zDlC+EoG`v8 zSsGqD((O)PUmmwEKFZ%eMhYt4$3yC_W4!wQ)5JhmHxqAHf8`Tm3t1&2Zu9wSJL1%7 zZBLgK(se>ht{7)*Y&5k>44qPZFhkgod}n7dtL~R*3}QINdm~}tmHZ6I%dE-kO393_A2A%eT#|UB+39BErH@ap^hzZjz-4 zi({E>yi<&k1t|H2h zdiupQ!)lEh^V^QXDs3BopGwRK46Ra6H&piCjoIf1!(cl0XG zj$@_veLFn|VSc}hx0{y*I?RrbBzxErc!8%9UJ<5+i2RCC&R)K-?2-_)GE6jwBZjxP z8(mA3ntjE;c8K8T;K|!n#au_YSGUUoiKgQUqaK^ahW9z!#IHSh@3l3GKJcfvi7}2Q z8@;llfAa4>CWfDCe$yg-3naeI9j_0YXzb|vuV00E2S3ph^M>E7*5j(7;ghi?bnUE; zZ4*yj_s$C%vYq$v zB3vH2G_?QJq{6<#=DgpC3>oj~A5y1I{TzBD@kK8mrz3AEYE9{oa$;WY6W&yhQsR)! z%1qMj^T|)@k)Ev{^a$dHScgQHhiqN-M&%%zPH=eUP5zyonlMQBiMT}S#{NBD&N|~1 z&o})0S|6jy-nVuEVI7S+QX2TY8c2z}m%t=sY-mSzC&RzQoQGW`@Hptv&~V+|M8~}< zx#_pU7cI{2T>T;vw6im9tSggfsPTJ4Loev+yF_w237b#e#7}wAqzIf%T~Gb zYX>b_LuB`p3k4#aAjGh7nPV>xknB2Ynnn;-N(3=ThiM*M~7W}Iv);$lp&icF22|oc)X3o^G8%vTbfjm|GN|(jb3ZZCPwSVIKjtmhe)4I9Y_>2FCDD#0!bM-Jzru^Z0K@ zNRZFn-7)1v$+hyL|8Qe$tqIX3K=L>10#N$TSGJ5bRlG`L0^8t-dAGiNSv;E@O)mMg zJfy$>daE-Yox-``r5`ct{ch7`IePr__kj$N)joBChM71stCb%<_>6PsZu`Afe#~Zc zgKG6@$iZ4Gwhem+A8o-Rncw{Bdq3Xu&0OP}--A=rpI`Pe zIerA2G>1;JiFe+|xWbQB3}4l6r+5_^dZjJR}qH z>~kmw@~_SDCZ-5QTwL4ko~OKs>a7G0#dO8eE+o}DUz-pqZYC<&TP~LI?%dadstCt0 z(JNKqaHh;nWNIvSt*>_NCHBSRJs7O75~D(Axl7p+*)WrNS1M{;><+UNyl%zSFdUcs z1%epeUy_f0foVu2a*B`({rX?Q0MI2ZSop-~u2 zf|avj)LlN=CM49~utbX7Q*+)*{qC872F304J<}jeEmmGytgB3@ijMGO+3M`y`DlA?H!pY? zBvMD~l}4C;^;d5b_>uHq7qf65a+^!d32lys;PK>Al*{L<p7AmWiy;=PG@39q zTB6<~a>Aby$X>M52TwUP-%XKYXF#5rp!w|YitwG>Nv74xT@*Aaj5QEl6VKtaN$z;1 zcOkx)THfV^taAnx8}8-*)*nM8(NMNwLcYLyl;p1T_Ni^UzH{OB6W^O7-lZ89t{apc zrs~jJ%BZmA@~D!GZ9;Ra;@qLLr42rf5^hLY*XNvMpSo8?d&MqK`$V*tNgVXd>H@?^ z6(E7H+uHJjHl=W_4!oAeyrT-b0($DNJ3q+#Clvmu*-JM+;iA{Fn$Rl6`ChA!qhA@? zhF#3Ov#uL_sf#u^=d(UO4aY&S&aw7Iv6ATQ1_D*$)b35n;5XsDcDY zJ1XnO+tVVEYnKx>oA0hHcSKoN`Bmx{v=2#`a!QAF9S`m}7KAiN<{ec+1jl@OO=UHv z+onDXV*7Jvoaf~Siz+v53*H77Qohn70dp^%BVU-eD_vdozewK`W!#(_-uWTi$Ag2K z;ZPCIK?(KlXCq)U-J?mXMV48t#KUpTJl7lfE7ux@s9YU(+A2RD)l>C+U72U@^F8{~ zx{;vrl+rWJRt0pyS!^xaLdWNMrE@mpJDOyetG)rJ}FB$YzMEKUo z(9n>@ZcXwhlXmE+DM;lkbr+kz1ru=}UC0!MqWSbb-6PYTW->3$8nQZukK_un8TE=i zyj7Dka`Ye{6%P8U)G?n!GLU*iMWOTk-0(#;z9$Azaj{)?R4pH>gVSA5`?V|9dML%5 zab`!w%ZZ-|-uKT13qRo+hO!!QxI|y&wD^B08(#UrrFPHwxJF@|4Lj#C)^l$?Jv~qh z1u2>7c%hVp1WJKA>20(5sOH#I?~0clK4Sao%J`fV-}li4L5)g%C?fxT|IU%HDPPd& z+oAof?+9gZSJ75Z(x+^8gW`^kR${ zpTwYUGkE?sH7=_5_Y{eW`4oU;c z${=|StJ(V#G&1sWYrIHiI7_ORG4DNnLX3<#JR$r(4_D6R^}VOe2PbRd%!wV2NS?nN zCnxAD_U`^dKE6g#ugG_KY~~e^+#5)K@e%EINO*r5qsl%Itr2hzpf2GG-@~8H(UuiF zp*BD<=%b-(QF^bm#G_Guwp9A3>%E$o+zg|s3;)gL`s{04d}r}%_ zBifjQpWYYzTH`REXlxC58q4d%2{*klyW54@7a*pJoND> zP;Ke3?Z_jLxS@t0-HuSc+wP=mL}U<=iypank>W`W`iC7)dK}WRsn`j<(h`;1i5*Mp zXsl=#@4`esJ=F`ts9MGFQbplY$nJbY^4G5jJ7){i(o#}}`*U?2?$TOXT`Z)6_&GU; z28PcSCl6oUysq&#Aj1)y@BN##+<7E1i~Oa@;$6+^j>*U55*bZrQLTGPE(Hrkg`7I+ z8P#DWtNZiFWVM=`{STj4-F}wPda=!EI@Sg)9}pM6D-5}cH^WjlrRI%pkBcY>V2i%JQgm3Kf^UV-8$AO?TPS11Q)1j z8%Q9%H7{)@Pi)qn(~uiW&imeOP8WMw!<`kkkUF_&@Ll$m?sU%tmD0qOF_^SIZ^K%3 z9CFvDFpX|oI^q5lHyoM8?I(#c5sAFg)UiN)VO)?Nd5dy=sD8U6IoVbJ)dLTQ&f&+@ zaKR)VHX-*W7f0L#g65)lpC>RZP|^tFJMy12{K$Pj=2Q34FfZ`)%dy=_AvGmb2v4xN zzPus1UImvik<9(#J+U3BRZdeDqT!11MX}d8&b;fmf_a`)Bxhh*{%h>Or~XHxaz(`? zCaNZovYGqoJhyE4;xjqi57R{k`Zc|1#B9Nb@S=(CgE*)Y6kFR8k}1i>1Z0fcI*`D= z>!^7zcjP&AC6aTgEM`Zh5)Y&&EKlo%S2DQu=H5gwSs$y^P?mXqB|TzCIb^2Jl!Dt`P3Rpw!s>WV+x}_q#oi5e+ID34%{VV!i34$D zq>#D!^LlPrpp}c?eRn(IXpT8MFPI(a+8QCp=|feq_Z>Y`i0lf&@K;H$XdZea#vkY3 z8LJBlbjAak%rwq|Pnai8Bcet2?}c{8r%mcA*(H>y-@kTVGo8#cyqVcCw%rLU zDeE98bhSbZ5ls$a8w_kqEA7uPrG+R`;3#8liw0A-Ie1H7#zHO#?op~9`|&55d3q$k z@hHTfPISMA((JJY##a4&24&IZ?#0t&K(;m zz*2VYL2nblgQzVX3@6L}+iX~1YY5FdY%f8yX3XUEW+g_^=!ZNnK{3zLj}dgwu(%y) z6Vt>upMA4X;l$8j@#b#9?z(QVxTu#QbJVoZJ8v7%Gb2Y2(kr>Nu%8*laC{Emc7S5Q zN7Pu1XD%bq=({%kNZ5sY-~tkxI8@S(h&Sy)v^;GVfQcdx$rXK%@$9Q*(dCJ0ovKNjNqUDnpLP)>meAReoN|op7O7wg%)C*;seY1T9ZqTUzVPcI zxo3h$7bbPuEPi19@^R`!e=O9sg(VgsvdKM4ZDL+O{KXygE0;+)zHD5Q>P=VQ7W-KU z@h^<>6RHkAy1^mC3C>btCXyW^u4QPleyeJHP}Xi$629~vinIi$q4lfkt6ENaq=VGB z+!~F(cC$dm_;r-J(!TyhAMpe&uTc(5k!1QxQUIP!c!|5PR2t-C$VDK=9XZE*ypX-> zGYHDN*C&+Z>>mb$y%cUL#TL1?9V!KzmM?FS`g^^?LI}t7Pt`Ym*P&XRmo@EGDm0`B z)D63l{ytxY(Emp0%-0kq`zs?SPm8R!{v>LnW2_d>%?+33KDG^Uem}KKMsSJv^-APi zc8nPG7r`Me^4rRIW5jj1)s8i`o%7k=R}#W2J;iD$uRrAdZc+6Pa3ZZgOV<@TbH%K| zjkeXne3nn!R_aB0xF5-`Fmiy1qL0H*;h%mI>P_;^^L!s?f_x?d&*W zWInBYAQuIINvpMT{eI{sFABf@F+ivEItcvxn zHHfx_MY?t5?#TLevY7 z=uq&XKKTwLw&RASOXY5z6%Ih45sqXbKatgjQc@VvA8!qD-s@hCYF;pSewa@ooc&m3xA zr`?aBuNW|pomZ#_SSSVE?94th5S1%_0qyT|4y^OcH&h~6WlyU>rm-2i5n@o$!qxg* za9VNHSsWibw|b*cKUH3&iR|vtmovqQ4+SWR<;Ub)?JV{djpG|B7S^!K^;!0w8~#Y* zkqjh`L^pZ2d@O_fGpJeiG3w~WUp}SWZkVu_lG!x#lGr;W+ z^7OlXr67)7wEt1(fGaGfJXjNm1^~&wh45xERAOxNCpo#X&yw37^%Gpbwp}W!sW&E* zi%pp%2SS+)o;v7S=l$+y4pv*MW$9<3W>EjXmlSkQ{Yq1=9~YV|l5?D07raG++}3lhhzD z*^A6Q;|0$kV(3v1({4oAGP;d|n!G>IZ?2GTm z1S$u0W|jJE<}Y!H6BgE-5Q`YM?3|mGQvj6U{}*{)Rs3R(xh8hHRL=~ z$O;J_5<1|Pt7lfC0Z+&V8}0!4T}X@elf~T_IoE{Mty?ioZ1^>NhWx=!=aT*iy zL=i^=nf_I|QcUhsEUcVrFwC=GkA$GedqX~{9sAr|{n;x*FCaFVP0tr1)WwUf8 zn9kLhB;}T~8rovv6yYeHS3Cw=-cztVng!0cl|goam;%<~%)ft5PW*P}hq&0NP7tXz zD8Zf`T(dDilJcYW9S%1?7xAMS-oTyH8i;k%{MuR%zWkAjc? z(MX!TleMR;Nl%k5E8x>{J3JPmVueG7|K6cU@WbRUUKbaAGXn;j2zM20;#flM&u*<-W=bi6|kWw|o)B3X& z`b0sH(Y*~2^hR|4_bmJ0QD02KRSZ~&HNG)@qYsgvBGDk$0&G3$M7Zy5IYXu#;0%9UI{xk0$ zdvWA})NXAq4>`!l`v6QQn4)66fp$vzA&}(>RzY&-NgGuK5Pl9YcLnDHxtQ`HlCcr< zASl(}h^Xq)al| zrFyqaGP)=a#LNUaa3ze1hSs7pmahs3M6eU^=gJzoT5rI5-CQ8HxKVKbE`0+oJ=>XV ziDNf&2Be38u&{L)({Rz68E_xc1*lnAaB60i4B0cXNNTH6Prtulb^|J8%J=g~aq(73 zJJW+gE~DW-BJ+&L#xyS?{o!MaA`MQqK&>1`>Nz}YA{|KLcl)i^7O0Pu0y|H3yB!&E z{{6TA2#y(p8+~ri=|_~Ju#FZAL?FI$s6KqH(t@%h>%Zf%XBLoCwu+3X>VU(0NPloA}@cc|>3y z2A5KhS3L}$k8%WkHDTn~6-hY=>!209tW7BDhqjq@|M*0p(AWaN(thJb#W!$OKDt?* ze&E>l;USVey{$n0Mc;q`6ts6~K#T$`ENer3Ot=AEXzz<&{@ucFLY!;?0@w;f=6_TD zzR9|r6)~J}Z=!oUoyLv?EXg(th9Z^xLITRPC?XEfU&G~@_>@4Igb~2-ijrT>)c-QM z#>7h0-B2Ms8n}-8Or`W-fWX9lkwc<{5tY5qE$Lc}CMKebqa&}vO9+a9sR4_U{K$gf zNM^zhG2y*N-ltxRQHlVH{t_sdKW_g%$IMn%ck5z8rT8Dam3*f5n1TaGISdR1B6fjwPR^27 zV7+lNFo?x{TQ;?;aj>qnGWOTlAxM*ph$Dgy<~kC++fD%ZLl0)jQw({)v=Wb)JSJu~+Yaj+JUz$3w z3b-Ez{Kx<|z`dT(q94ZZ*yEApx|PGMsNnD#8R%6j(WoBA03ezjI`ehRtQUFRn#JVi z@T9&d{?rQvYKoF=I(WKp>gsZ_=ob(aqz@=T_B#`Y#U7@kxrT2Iv$NBXJF(IMtq?2R zIu{4Jk&~T7&cG0|vttf8L)|bM3m_=9b%s;qXx3Crt|qdor|4nGMm~fw!aq&1yn!h~ z!~wHK#_I||{q4z9&Utq>KrCAT2E|NID#tlRLa0YuvK$KAaNWP1c!%*8n#`OwScNuW;H*z^Fum5 zdj#EkeoL?~31*<9;5q_UgGYcoJ8#2d)~A85ZBmR(ql5BqH&=3S#-Xl&@@o3=0(ubX z0%fN6{kPsEu-;c|mw?7-4OllF34@;Pv(=T^~tpm;}TTQ;g5(D}f#N-k1_AhU86(PCGMIGF>cj7`gj*27YqC4j?rcUIXDt2st{SW~AWhY926pp&E;BvW-;eEBXGeB2M3kO4Cq5H!slO|mn{AvrMH0HT$GN2AbF-&#?AT zU-2}EK5VWd7V8BTQLIseLtCyRY#xeD(d^wM=ELg5D>XHnqMU z)x$m+Y{nF-w49Z`a#qNe&V1*Gku5j4iTdF6W3s?rWPXSyaY_zEln*nWt91b!eV_Ia z!emR;Y)V-h9K452V^N90x3T`_=mQcOo^_804uhI7AP|OC_X9@fB#2v_<~=y$IV^Zm z$E78M+bk=Iy*i#o#t~q8&l2<``L;c>i1<6gNG-POur#9dpN~}27>OBPT z^-5IUhAGbMPnB=mgdKzBEZOtKa@$eCKm>430ggm~9*DbN{axL3+`CtF8CmTSQHluO zH6y49evPjxy59IzL=h!VZMWtWNQZ)t(a4Ix$S2AGEC*8G#R_=vKrAccfBpKUz|+T2 zIfMOY*Rck0>$r_BxFgUK5rMPQi!)_G-WX7rFRDHI`#!AhaxI?Pqn4@u;!6~r@^7PF z0)fkwh+&5PNW8m1NX9=bR$_4VMqAclk|2}iX6{KAyw7m6@jS1YKdhO*EqwK!*HBdG z!3!AW;P4Ci^<8qGaD2oN8|`W$N!e0u03hf98vy`c(@Iyw=1eskU|~AfX%S%{TRW5G zGNO6891K2yi;u^lwMBEZ9WMs>?;N-O3)fCw2l$gZlEfO zL?#Q8BK-_@r)qP0{N;0~`1phK6agpW{gMwx-;LFq(%y|NEFlRYjStLQf1-ptR z1n#>8y{OBu8Q@&{i%&d^z%Qhf_ix$%xvl2Ex8*~5Ar&+=|9lDwklw^AI9YIv3Cb?Q z%YOI;v0?D&Q>WSXh}UcLjIP9N7pJZlXW7BGvOaHBy- z+xOoqKpdloZ5sO!tgL`wC192mO{gT`pQUGkA&o)SbAD+bmjam51h}3BI5F@kr zza-z0;FN|p$GAX)c*lOK<^I&XN8tEyA{Rbi|0r_K-^#@+~ltytLy7_gCe*r_8YPg7>yU!&j6Y! zn$^To=(*0Rb^fjBoiJhwNYXz3A$^449}s}zM(oS<#NFdT-DAkp;0973Kof&V9B|Xa zs=+9nhl<>2&lbEI4g!YoLv)BI()g1n1@c>!>L9U#F+%SJMq3&p=bC%;JwBq8(32Xr`IPbv99C0o4_Eox~C2V3w_m{q2j@wLjI7uEc5 zsSU>0hPgxoL&Fjfx*g!kd0vvX7=67j2R8KbH{1Z=^;c~d)~M7tGK_1vF~BJGfW-aC zjreC^j-VpvZyK7pC;c?h9kPhp&x@2f-pvXN1xA&1?jl$bk6vNDARu5Lk`?r5M zUM{7)BRAly(Ew*LO8)1C71E#w!P1_fo5PurffMX(qc=go+(6=uFeYSuR?7aq6lT>u zDG&oV^~)zQ{8PIB9q>87&_jNPr2tI5aSaoR)Ghcw_7Opq8q=sW2mkCjt_AD{_Hob# z;S7S3gG=|5Jr4}aNFOj$Epm`BCIf#5H8I`e$8U%cddWSaV?=?tV42E>CB~F3e!qo@@ zJ)(N?V3&Qhd4++Cc}2Nr+eRC*r2F;iuJ8K`v>TwHb!9D(t}xAM-;Rc!eqpc1DjWQ_ zYT*m2%W70~)uOK;ysVOvW9x0k6|nU;ZBJAr-!eqd0kh=;-AaZR2SKWJSJa-jr?}=E zyqA|QVl(65Jby|imlW6r7qE?j6&2X!+{e=8*=v$2C3@T>VSbu5tX+M5dPgf_2d;I% zt5KJQjhePGqg7bWHgAmz5<3Xy%)xB?0MV~eFCx?v=L@JxB!v);mjc3htripDtrGyr zC---JV5)nor9~2i>(wiGe~Aeg7$M!OdWTCz_|SLdXiCz}dTJZ{?_x$}svUOmu5 z=7?on`k>iLpt#`Xxca-gs~=J}J&Yc&x&4_KbQ8KqRd`5c|G&xt@(L8og6ll!0zDes zP1+b?z3B%a1JJ`pOkt+$LPsJ??)?wEe1OvQ1pW?${trZf+G2A){XC*~e=f`wV3pE9 zzNxC}qNKobAS_Vi{1#gSN&p37+J2${kNfDskjGVD^04wA(k;HnLb^&yPj;Y3Q?n14 zr)UB?{bp=Bdg)aT4rxjC&vu;NRpK(<1TVJuB@Ees_QMuM<&foyY0D+>qc>I7kZdc( z9#x1yY?PF?K)L9_0SiUsBS1H#Z=q&Q@)(Oz{~e~XhRt(Gi*Ja|T2HjhrOLR59Y3z7 z{ieyNLImsyD`_TfIQOCO&j9>UE9Sovs|r{2*3g)epLLd?Du3Kl?zVrAYVBf{7A+-f^vKF`#as zzrYT}G5|Q<8m(ar4XLr}HlOw+-@o{eO@K~}VbJ;o0c9o&4vQ&qo06dHWKU>(Z+oqa zoyu>6L)~(aoYI#4xCQOGpkWI1_Sh_bYcZLtZ8Irz?oEe0GrAknIXIkt4jgh{Mi3K8 z7wFb_8_%&@wUuiY`+Ae){f8j%p_?V`krYMeMaEvv2-3?o({fgaExUY`l7zckGT7{&Ais`)!yY<3+wNr}W zY?;-~?Bw+sJLKc#FuJO{D?(`1T3k0ivkn=U#&9g3^DQ*1*&Djf;(5a^ncz&VUSXc4 zS#uUl!XG-A-a&j?NB#1pZ3{Z*aGJ;mP?dspD>XLU-(nmdhL`lT1;|1kmwHcQde3Kp zwCW`*Q4uguvyopc5F4Ar*XDS&#H6G$fX?KwJ+=(O-Fnbq**>C<;XI1Etn_wNDGETBN0bGXi} zU%%`lD0@8Sl(F7bZ7F2`BqH1cvd!84c&j@N*QJgAj-kXhmZ8b*(38Hki9Qw%+ zZ!-Hw>XM^dw}{uM2ejzet-RnS8#x~RZAb@tf>l+K-@dbh@h>e`?UKJnp(hPig0Un1rLKq)wEC%tEyoyRAP|%IZQcloo{RE^m z93cekAkm9|@y^#bY5mkSmVFx?2A##a6mRPUK|ApBsB-pGAV;G$Y0wCl?9Q4zRxs_m zwLg?e=y+YyP!HO^I@GP|q_@W`Cd%m|2(4;kuTBX+dQd3q5Y15`JVUsmZ{knD@eK9#5A$;^AmfWzj(%EgBK~t0Z>kb0$g4r;23de7k3p5nz~|zZy5}x711y-6qH#U zETF==EEn}h@|2T7gK1&zhX{oft3~G0OJc}`KG6dRQZEm1^U2?u5K;B)cp4w!Kue=@M0nYciBI=gpM!`j7to@OFuaP_si{hS{)>Pa0m9l{e1Xz%aI;FYf%6A$ zLV$6qk(|!7Cl{_LYd9dTP&EBNqAU*mMGR;cCIE3A73_zx!F|MJR1uu%e2X2%MHkYG zFn~Q!cWz@S@Eqb@btA-#10qo>VEn!#&ClErZkli?A!Ee2_o(m5<+H#rO7sbrXSfSvv90_tt6odimls4{VDn#eW1aZ)EiX8;-%s_8}z$}j1aFdVDrb)lY5r7=m$(JOabrl6{pfr!u-rrnBK~|5ekD%$^rH|iR($Oc|#0A4&`15kJG>y&O^!er|B z4?tgP-VnO-gv^8vE$`5h%iH~bN7pB6C?sV39;kFm^v1n$qt1MmdiwgIRoXzQxj^)9(zr<1?&qOb4?4Z`X zeYL#+PF*N zuX(qarI^QoMqn=hAhmt@u-Kq0?ftdlL>+GgD15=|lptiUSx)|r1+Wuol~)VL-x$LZ z&0^FO?ze)$?zHEH&%V{_8b}@jCyV!dubVo~na>dL9o~`E=ojLQFPn9j^YdXxC z1I$D#4dRM7gmFJhe%2mfbtw>(P&lyR-ntq_5m!>Z|34w7DxoASzT|O$S^oQ@FSB_9 z@g1;ax)tsEd|!Wah%%Lgh9%6mvAI+8Ny5!ed5sio&!orFM6~79)GlBCZ1Q2^${Ft7 z9?k2IkP%QG&FrEDzMZ0o4tDTV1cSZKE*^V~u#a8@aHtg863iDD76Shu6C5z=KBGZJ zO7@<$`j-$%0V9OlTR?Gwx;6ew>EppJslLj(ua5e*1<0||bZz!eQBGU|i& z+(i!?t4qYPghdZkSg6loHP=JzG}8n8Ve%0OFg-c#-4>hs!3$41X^A_Q4-aPSWDdvF zi;jU$yx7WPlCI8*dzID)N5{ah8ZJh%2#^iDzr*%=xAOS*e15n{yP>$Ye$*KCj@SaV zdpp2C0o_rf9C2J3hKE(D=gv206nox$wM}4 zz1K__ei0xQg@UwU-%Bvga@G|z%G;`)j=ls(lOSAq2a2*bJU*Jt{H`ZDAh*>;6#_o0 zx?m7%bcdWg>*8cMEQVz{IhfRoeREU2v!7`pEr`*uEpUGl_)z2ITV7OLPiaw69tnvq zkoZTt?I#L@Z%nn!-(q6$NZb$PsHAIy!YRbqTu;Ks=i=D6r9e?vG@6lkvYsCt)DXZG zTd4Ew*B;}5>bG7;=&pv_E@{c+&doAuKX_%v=12}IP)6|&X5iH;<7{4cepMPGwRcx& zpm$tyzWx^KykA#2S!P1f*2V}x3=xoLffLj1`qAb$I#i-h4c-jVZ(wBPJNB}4dKbL7 zLE=3-YaaE^2B&@LHE|dmU|U;Smu}E5<9Ye0nX4GFh0h0*H)GM?jOgxWM(! zQ}7a%4n<|n?hJ`@Sv9qu3<*p&hppp$jZ65P90z=MQ+jYzoTHGe-xj!fvM=}@MB7Q~ zR<}=K+1bV6IJ5c00Y!a#g@yX%Qjm`8hxN48#Ya;QJu{MHa|&_ z`fx42=toRU=iV&u;dM=T9Dxi-EuCg;c>DR!iL^aV6+f*kR4NtDd^lb+N#y`XVcds@ zgJ7&ui)kg#TL*Ua%0k$iby{1ez%QSYl1k+%^}g#jnd1ZR9;r*PlXm)F#hhtWlUEwY zLsIOxAOmF^K*}JF76h>fB1Z5;gJBHQ$%Tg#?4G|UDGzQ8pFc9YdV*738%;~53z&V^G?|bfj-}~JAJpcc_zX;o7g)`;S zB3O1R84{W}@upqQ3e*kN*w??=uX3y;5m`o~|A}4+|6suRE;%fN6GE0q2hmU%Dbwki zFD(kk7>5>94~HDHyIqb4C?68MOK$VfmfGM!uOT^x71zD z!pT1Vl~q8}@l_Z~A-(rQI0b|p8)i!<7+Vk>m4vKeb-JI*^S1TT!eB`r!e`E z&6;z}l`9=@#xQ?78^3%+e&Uy%2PBa zg^t9AsrNSfOliX;;FqfzC8@w6+?YfFi6#fKT3OsMV#^h=_9PeQdzCI*K)(;eRcM8) zOG*eO#Fb(z|3u&9q(`1?5OynGXOA@Kcm(PcoiD)w35i~^wSkH|5@7&R*s56*uV*( zRjXH{JSXY;#iac3iwX6MZf|0Rlw8oxUnFo-aJNW%qkLHg=LP%0U#W+2qz3Q~RH>&t zStNlDax0cACfi-NtScYMPc!=1VR6a}$wfahQQJ|#U}Cbl-m{9*)=W56J$lw`H;xPt ziA>mq`k*5jY>(PjTs`4J0Dy2Vr5--|#ofk7aQn=4JG+-<*A})t^Hj@a>xRe8&D4nJ zjOg2dSLp*s74k}%uCYE7{|yQs5Y@m|0x*F))xDY4*9}O>2jECg`N%!yZn=H?1OM|H z(nyv+=MRcCzNKt6phLcY9Zzn%u}>X1iioKFq4{8vS;I~OTuUcB7kb_K(cb%%THe2g zu132RwNdNR)W1R0^UEy)s_i;$5s)FE1K|l0I4lHmx+F*?@6_8-0w|)ex%!$hqB;f% zXbj{G>rdz7fv8Y1sSzU;e1vDX=Pf0L1XRYp#a`dL9F5+4T*||!3aB0#F5(Yuq(Akn zdVzVd5B5~(Q1j(WUwuXXN3VBRDmL1b2m}I`CB1j+UT_dS^c%;;*PgJcR3AKV?K*ha z9qFxEnZKW(p{lAXEMEn0@rlvMu-W$Q740(@c$x8_xv@dmfV4FZvdb9Z(IX3W9pR>L zd9d(h3gvyIp-nfGqk}_3IG>%-7Ke4{aZ8Jh=xB#wk2moY_TO*<(`bU|955e~onD@h z=T)XjIe`GPXzA*vjo$aO{4y)cz37#qv(QzSgoRz4IQYf6d{_RnrB@E))gRU@BgiV^6(Z*q(@CCsiNnEw0CsOy*R5*dwT*K zDge0A+s64Le83fFMr=84#-%RQH*1Wjc&l)1uVV=U!Q?nB@nyu^rQ0#3iPPceE!Em} zmpKu*c&sGC-G-)BB8>>&a;EMkFlOu29cGOW9XeDLAfCs71hxq5IvW!7KEQ^YFuGgJ zb|Fl?Vau=FRTJE>7SX#3&8B>-sfZ=cqz%vB!%D3k%cWdVgS8B_{R~pq8a!6icg5TEpvz?mxk%g78ny zD=0W8x?OVxsJbQei8xM~nwqMmr4<7b4!!xZ`@Ul$$Yd_AuFf7F>~|8xy8P!7Mx;ni zBRqdhnaev?elHg>*4w8lb^{S)(A(JAurdA);Yz?Ir;t1y=1hq}f+>)lz5cf^*sa&x zF>_VPZ;75%9={93cu5bgCS#KJm-8Y#O; zaD{;j3Tw+tkrsZ=P`eI0IP~JwR6KEW8jbwnr&AgvNC}ucuvdV=Zx0_ciS35vU{DEY zpx*WnFLo&xO}<@~X=hIS|_gUuqNd+(L~g_gnKzuRT8 j*KpY#`~Nc|hnFacYx5lp&KlQ(wn=iPd+aTy9Xa!FkU~`E literal 21619 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 ZcKTw8&`+Cz!2k$_87wEeQk#nje*#hfNZ|kg diff --git a/doc/pub/week34/ipynb/ipynb-week34-src.tar.gz b/doc/pub/week34/ipynb/ipynb-week34-src.tar.gz index f0990de93951364b8a9e83e51309b73c43bf0921..744ad83f85cd73ebfde868e3e5feb0f9b69f6a2b 100644 GIT binary patch delta 21 dcmdnGoNeoJHg@@L4u-$cs*UVh*%{YO1^`v82Y~

    *%{YO1^`h52L}KE diff --git a/doc/pub/week34/ipynb/week34.ipynb b/doc/pub/week34/ipynb/week34.ipynb index 9ff666182..9cfc3d56e 100644 --- a/doc/pub/week34/ipynb/week34.ipynb +++ b/doc/pub/week34/ipynb/week34.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Aug 23, 2021**\n", + "Date: **Aug 24, 2021**\n", "\n", "Copyright 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -151,7 +151,7 @@ "\n", "1. The lecture notes are collected as a jupyter-book at \n", "\n", - "In addition to the electure notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below.\n", + "In addition to the lecture notes, we recommend the books of Bishop and Goodfellow et al. We will follow these texts closely and the weekly reading assignments refer to these two texts. The text by Hastie et al is also widely used in the Machine Learning community. Finally, we also recommend the hands-on text by Geron, see below.\n", "\n", "1. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, \n", "\n", @@ -181,7 +181,19 @@ "\n", "\n", "\n", - "This course aims at giving you insights and knowledge about many of the central algorithms used in Data Analysis and Machine Learning. The course is project based and through various numerical projects, normally three, you will be exposed to fundamental research problems in these fields, with the aim to reproduce state of the art scientific results. Both supervised and unsupervised methods will be covered. The emphasis is on a frequentist approach, although we will try to link it with a Bayesian approach as well. You will learn to develop and structure large codes for studying different cases where Machine Learning is applied to, get acquainted with computing facilities and learn to handle large scientific projects. A good scientific and ethical conduct is emphasized throughout the course. More specifically, after this course you will\n", + "This course aims at giving you insights and knowledge about many of\n", + "the central algorithms used in Data Analysis and Machine Learning.\n", + "The course is project based and through various numerical projects,\n", + "normally three, you will be exposed to fundamental research problems\n", + "in these fields, with the aim to reproduce state of the art scientific\n", + "results. Both supervised and unsupervised methods will be covered. The\n", + "emphasis is on a frequentist approach, although we will try to link it\n", + "with a Bayesian approach as well. You will learn to develop and\n", + "structure large codes for studying different cases where Machine\n", + "Learning is applied to, get acquainted with computing facilities and\n", + "learn to handle large scientific projects. A good scientific and\n", + "ethical conduct is emphasized throughout the course. More\n", + "specifically, after this course you will\n", "\n", "* Learn about basic data analysis, statistical analysis, Bayesian statistics, Monte Carlo sampling, data optimization and machine learning;\n", "\n", @@ -201,7 +213,7 @@ "\n", "* Autoencoders and Reinforcement Learning;\n", "\n", - "* Work on numerical projects to illustrate the theory. The projects play a central role and you are expected to know modern programming languages like Python or C++ and/or Fortran (Fortran2003 or later).\n", + "* Work on numerical projects to illustrate the theory. The projects play a central role and you are expected to know modern programming languages like Python or C++ and/or Fortran (Fortran2003 or later) or Julia or other.\n", "\n", "\n", "\n", @@ -251,7 +263,7 @@ "\n", "* Boltzmann Machines\n", "\n", - "* Unsupervised learning Dimensionality reduction, from PCA to cluster models\n", + "* Unsupervised learning Dimensionality reduction, from PCA to clustering\n", "\n", "Hands-on demonstrations, exercises and projects aim at deepening your understanding of these topics.\n", "\n", @@ -264,7 +276,7 @@ "\n", " * GIT for version control, and GitHub or GitLab as repositories, highly recommended. This will be discussed during the first exercise session\n", "\n", - " * Anaconda and other Python environments, see intro slides and first exercise session\n", + " * Anaconda and other Python environments, see intro slides and links to programming resources at \n", "\n", "\n", "\n", @@ -278,7 +290,7 @@ "\n", "1. [STK2100 Machine learning and statistical methods for prediction and classification](http://www.uio.no/studier/emner/matnat/math/STK2100/index-eng.html). \n", "\n", - "2. [IN3050 Introduction to Artificial Intelligence and Machine Learning](https://www.uio.no/studier/emner/matnat/ifi/IN3050/index-eng.html). Introductory course in machine learning and AI with an algorithmic approach. \n", + "2. [IN3050/4050 Introduction to Artificial Intelligence and Machine Learning](https://www.uio.no/studier/emner/matnat/ifi/IN3050/index-eng.html). Introductory course in machine learning and AI with an algorithmic approach. \n", "\n", "3. [STK-INF3000/4000 Selected Topics in Data Science](http://www.uio.no/studier/emner/matnat/math/STK-INF3000/index-eng.html). The course provides insight into selected contemporary relevant topics within Data Science. \n", "\n", @@ -638,14 +650,14 @@ "source": [ "\n", "\n", - "\n", + "\n", "\n", "\n", - "\n", - "\n", - "\n", - "\n", - "\n", + "\n", + "\n", + "\n", + "\n", + "\n", "\n", "
    Relations Name matrix elements
    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}$
    $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", "\n", @@ -655,19 +667,19 @@ "\n", " * Diagonal if $a_{ij}=0$ for $i\\ne j$\n", "\n", - " * Upper triangular if $a_{ij}=0$ for $i > j$\n", + " * Upper triangular if $a_{ij}=0$ for $i>j$\n", "\n", - " * Lower triangular if $a_{ij}=0$ for $i < j$\n", + " * Lower triangular if $a_{ij}=0$ for $i j+1$\n", + " * Upper Hessenberg if $a_{ij}=0$ for $i>j+1$\n", "\n", - " * Lower Hessenberg if $a_{ij}=0$ for $i < j+1$\n", + " * Lower Hessenberg if $a_{ij}=0$ for $i 1$\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", + " * 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", + " * Upper banded with bandwidth $p$: $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$ + * Upper triangular if $a_{ij}=0$ for $i>j$ + * Lower triangular if $a_{ij}=0$ for $ij+1$ + * Lower Hessenberg if $a_{ij}=0$ for $i1$ + * Lower banded with bandwidth $p$: $a_{ij}=0$ for $i>j+p$ + * Upper banded with bandwidth $p$: $a_{ij}=0$ for $i