From b9ec8b8d32c7ac5e85393cbd8224c3af53622450 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Mon, 7 May 2018 14:04:36 -0400 Subject: [PATCH] Update on project 1 --- .../2017/Project/html/Project-bs.html | 364 ++++++++++++++++++ doc/Projects/2017/Project/html/Project.html | 305 +++++++++++++++ .../Project/ipynb/ipynb-Project-src.tar.gz | Bin 0 -> 211 bytes doc/Projects/2017/Project/pdf/Project.p.tex | 349 +++++++++++++++++ doc/Projects/2017/Project/pdf/Project.pdf | Bin 0 -> 195510 bytes doc/Projects/2017/Project/pdf/Project.tex | 321 +++++++++++++++ doc/src/Projects/2017/Project/Project.do.txt | 286 +++++--------- 7 files changed, 1431 insertions(+), 194 deletions(-) create mode 100644 doc/Projects/2017/Project/html/Project-bs.html create mode 100644 doc/Projects/2017/Project/html/Project.html create mode 100644 doc/Projects/2017/Project/ipynb/ipynb-Project-src.tar.gz create mode 100644 doc/Projects/2017/Project/pdf/Project.p.tex create mode 100644 doc/Projects/2017/Project/pdf/Project.pdf create mode 100644 doc/Projects/2017/Project/pdf/Project.tex diff --git a/doc/Projects/2017/Project/html/Project-bs.html b/doc/Projects/2017/Project/html/Project-bs.html new file mode 100644 index 000000000..4e70bbda1 --- /dev/null +++ b/doc/Projects/2017/Project/html/Project-bs.html @@ -0,0 +1,364 @@ + + + + + + + +Project on Machine Learning + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

 

 

 

+ + + + + + +
+

Project on Machine Learning

+ +

+ + +

+Data Analysis and Machine Learning FYS-STK3155/FYS4155 +
+ +

+ + +

Department of Physics, University of Oslo, Norway
+
+

+

May 2018

+
+

+

+ +

Machine learning (ML) approaches to data from Ising model calculations

+ +

Introduction

+ +

+The aim of this project is to use an already developed Monte Carlo program for the one-dimensional and two-dimensional Ising model, in order to produce the spin configurations for a series of energies \( E_i \) (10000 in total) for a system of \( L=40 \) spins in one dimension and \( L=40\times 40 \) in two dimensions at three different temperatures. +In its simplest form +the energy of the Ising model is expressed as, without an externally applied magnetic field, +$$ +E=-J\sum_{< kl >}^{N}s_ks_l +$$ + +with +\( s_k=\pm 1 \). The quantity \( N \) represents the total number of spins and \( J \) is a coupling +constant expressing the strength of the interaction between +neighboring spins. The symbol \( < kl> \) indicates that we sum over +nearest neighbors only. We will assume that we have a ferromagnetic +ordering, viz \( J> 0 \). We will use periodic boundary conditions and +the Metropolis algorithm only. + +

+We will use the Ising model to generate our training data and will focus mainly on supervised training. We will follow closely the recent article of Mehta et al, arXiv 1803.08823. This article stands out as an excellent review of machine learning (ML) algorithms applied to typical physics problems. The added benefit is that each figure and model presented in this article is accompanied by its jupyter notebook. This means that we can start using these and compare with our own results. In case you wish to use their data for the Ising model, thir data can be downloaded from the same link which lists to the jupyter notebooks. See also at the end of the project description for more information on how to install various Python packages. + +

+With the abovementioned configurations we will determine, using first various +regression methods, the value of the coupling constant for the energy +of the one-dimensional Ising model. Thereafter, we will use the +two-dimensional data, but now computed at different temperatures, in +order to classify the phase of the Ising model. Below the critical +temperature, the system will be in so-called ferromagnetic +phase. Close to the critical temperature, the final magnetizations +starts becoming close to zero while above the critical temperature, +the net magnetization is zero. The latter case, that is the +two-dimensional Ising model, will be studied using a random forest +algorithm and deep neural networks. + +

+You should try to program at least one of these methods yourself (choose the one you prefer). +Feel free to use the notebooks to benchmark your code. If you wish to write your C++ or Fortran program for say a simple neural network model, please feel free to do so. +You can then benchmark your results against the above jupyter notebooks. More information can also be found at the link for the lecture notes of FYS-STK4155. + +

+We recommend that you form groups of 2-3 students and try to +collaborate on the notebooks, develop your own software and discuss +the final presentations. You can collaborate on all these topics. The +final presentation should include an overview of popular machine +learning algorithms as introduction and motivation. Thereafter you +discuss the explicit Ising model data and how you have implemented the +ML algorithms discussed here, discuss their pros and cons and try to +develop your own code for at least one of these algorithms. You are +encouraged to use the abovementioned notebooks as starting point and +guidance. The duration of your presentation should at most be 30 +mins. Allow for approximately 15 mins for discussions and questions. + +

Part a): Producing the data

+ +

+You can use the Ising model data from the article of Mehta et al., or generate your own data. +If you opt for using your own Ising model code, you need to generate \( 10000 \) energy configurations with their spin orientations after the system has reached its most likely state. These energies and their corresponding spin orientations +represent then your data. +We will use a fixed lattice of \( L\times L = 40 \times 40 \) spins in two dimensions and \( L=40 \) spins in one dimension. +Make sure the calculations have been equilibrated. For the two-dimensional system, compute the configurations +for three values of the temperature, namely \( T=0.75 \) (ordered phase), \( T=2.3 \) (near the critical point) and \( T=4.0 \) (disordered phase). +For the one-dimensional system it suffices to compute the various configurations for one temperature only, say \( T=2.0 \). +These are the data you will use to study different ML algorithms. +We generate our data with \( J=1 \). + +

Part b): Estimating the coupling constant of the one-dimensional Ising model

+ +

+We start with the one-dimensional Ising model and use the data we have generated with \( J=1 \). Use linear regression, Lasso and Ridge regression as described section 6 and in Notebook 4 of Mehta *et al.*. Discuss the methods and how they perform in computing the coupling constant \( J \). Give a critical analysis and discuss how to evaluate the cost function. You should feel free to write your own code, see also +the lecture notes of FYS-STK4155, in particular te material on least square methods. You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +

Part c): Determine the phase of the two-dimensional Ising model

+ +

+We switch now to binary classification methods and use logistic regression to define the phases of the Ising model. +Use described section 7 and in Notebook 6 of Mehta *et al.*. Discuss the methods and how they perform. Give a critical analysis and discuss how to evaluate the cost function. You should feel free to write your own code. Use thereafter the random forests algorithm to classify the same phases as done with logistic regression and discuss the pros and cons of these methods. For random forests you can use notebook 9 of Mehta et al. + +

+You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +

Part d): Classifying the Ising model phase using neural networks

+ +We end the classification problem of the phases of the Ising model by emplpying feed-forward deep neural networks (see section 9 of Mehta et al.). The method is described in notebook 12. + +

+You can use tensorflow to perform these analyses. See below for instruction on how to install tensorflow. + +

Part e): Summary

+ +

+You should make a summary of the various methods and their pros and cons. For the final presentation, you should have at least coded one of these methods yourself and discussed the evaluation of the cost function. + +

Background literature

+ +

+On Machine Learning we recommend strongly the article of Mehta et al. +Textbooks on Machine Learning can be found at the Github address of FYS-STK4155, see in particular Marsland's text. + +

+ +If you wish to read more about the Ising model and statistical physics here are three suggestions. + + + +

Introduction to numerical projects

+ +

+Here follows a brief recipe and recommendation on how to write a report for each +project. + +

+ +

Software and needed installations

+ +

+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 tensorflow sympy pandas pillow
  2. +
+ +For Python3, replace pip with pip3. + +

+See below for a discussion of tensorflow and scikit-learn. + +

+For OSX users we recommend also, after having installed Xcode, to install brew. Brew allows +for a seamless installation of additional software via for example + +

    +
  1. brew install python3
  2. +
+ +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)
  2. +
+ +etc etc. + +

+If you don't want to install various Python packages with their dependencies separately, we recommend two widely used distrubutions which set up all relevant dependencies for Python, namely + +

    +
  1. Anaconda Anaconda 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
  2. +
  3. Enthought canopy is a Python distribution for scientific and analytic computing distribution and analysis environment, available for free and under a commercial license.
  4. +
+ +Popular software packages written in Python for ML are + + + +These are all freely available at their respective GitHub sites. They +encompass communities of developers in the thousands or more. And the number +of code developers and contributors keeps increasing. + +

+ +

+ + +
+ + + + + + + +
+ © 1999-2018, "Data Analysis and Machine Learning FYS-STK3155/FYS4155":"http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html". Released under CC Attribution-NonCommercial 4.0 license +
+ + + + + + diff --git a/doc/Projects/2017/Project/html/Project.html b/doc/Projects/2017/Project/html/Project.html new file mode 100644 index 000000000..349676896 --- /dev/null +++ b/doc/Projects/2017/Project/html/Project.html @@ -0,0 +1,305 @@ + + + + + + + +Project on Machine Learning + + + + + + + + + + + + + + + + + + + + + + + +

Project on Machine Learning

+ +

+ + +

+Data Analysis and Machine Learning FYS-STK3155/FYS4155 +
+ +

+ + +

Department of Physics, University of Oslo, Norway
+
+

+

May 2018

+
+ +

Machine learning (ML) approaches to data from Ising model calculations

+ +

Introduction

+ +

+The aim of this project is to use an already developed Monte Carlo program for the one-dimensional and two-dimensional Ising model, in order to produce the spin configurations for a series of energies \( E_i \) (10000 in total) for a system of \( L=40 \) spins in one dimension and \( L=40\times 40 \) in two dimensions at three different temperatures. +In its simplest form +the energy of the Ising model is expressed as, without an externally applied magnetic field, +$$ +E=-J\sum_{< kl >}^{N}s_ks_l +$$ + +with +\( s_k=\pm 1 \). The quantity \( N \) represents the total number of spins and \( J \) is a coupling +constant expressing the strength of the interaction between +neighboring spins. The symbol \( < kl> \) indicates that we sum over +nearest neighbors only. We will assume that we have a ferromagnetic +ordering, viz \( J> 0 \). We will use periodic boundary conditions and +the Metropolis algorithm only. + +

+We will use the Ising model to generate our training data and will focus mainly on supervised training. We will follow closely the recent article of Mehta et al, arXiv 1803.08823. This article stands out as an excellent review of machine learning (ML) algorithms applied to typical physics problems. The added benefit is that each figure and model presented in this article is accompanied by its jupyter notebook. This means that we can start using these and compare with our own results. In case you wish to use their data for the Ising model, thir data can be downloaded from the same link which lists to the jupyter notebooks. See also at the end of the project description for more information on how to install various Python packages. + +

+With the abovementioned configurations we will determine, using first various +regression methods, the value of the coupling constant for the energy +of the one-dimensional Ising model. Thereafter, we will use the +two-dimensional data, but now computed at different temperatures, in +order to classify the phase of the Ising model. Below the critical +temperature, the system will be in so-called ferromagnetic +phase. Close to the critical temperature, the final magnetizations +starts becoming close to zero while above the critical temperature, +the net magnetization is zero. The latter case, that is the +two-dimensional Ising model, will be studied using a random forest +algorithm and deep neural networks. + +

+You should try to program at least one of these methods yourself (choose the one you prefer). +Feel free to use the notebooks to benchmark your code. If you wish to write your C++ or Fortran program for say a simple neural network model, please feel free to do so. +You can then benchmark your results against the above jupyter notebooks. More information can also be found at the link for the lecture notes of FYS-STK4155. + +

+We recommend that you form groups of 2-3 students and try to +collaborate on the notebooks, develop your own software and discuss +the final presentations. You can collaborate on all these topics. The +final presentation should include an overview of popular machine +learning algorithms as introduction and motivation. Thereafter you +discuss the explicit Ising model data and how you have implemented the +ML algorithms discussed here, discuss their pros and cons and try to +develop your own code for at least one of these algorithms. You are +encouraged to use the abovementioned notebooks as starting point and +guidance. The duration of your presentation should at most be 30 +mins. Allow for approximately 15 mins for discussions and questions. + +

Part a): Producing the data

+ +

+You can use the Ising model data from the article of Mehta et al., or generate your own data. +If you opt for using your own Ising model code, you need to generate \( 10000 \) energy configurations with their spin orientations after the system has reached its most likely state. These energies and their corresponding spin orientations +represent then your data. +We will use a fixed lattice of \( L\times L = 40 \times 40 \) spins in two dimensions and \( L=40 \) spins in one dimension. +Make sure the calculations have been equilibrated. For the two-dimensional system, compute the configurations +for three values of the temperature, namely \( T=0.75 \) (ordered phase), \( T=2.3 \) (near the critical point) and \( T=4.0 \) (disordered phase). +For the one-dimensional system it suffices to compute the various configurations for one temperature only, say \( T=2.0 \). +These are the data you will use to study different ML algorithms. +We generate our data with \( J=1 \). + +

Part b): Estimating the coupling constant of the one-dimensional Ising model

+ +

+We start with the one-dimensional Ising model and use the data we have generated with \( J=1 \). Use linear regression, Lasso and Ridge regression as described section 6 and in Notebook 4 of Mehta *et al.*. Discuss the methods and how they perform in computing the coupling constant \( J \). Give a critical analysis and discuss how to evaluate the cost function. You should feel free to write your own code, see also +the lecture notes of FYS-STK4155, in particular te material on least square methods. You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +

Part c): Determine the phase of the two-dimensional Ising model

+ +

+We switch now to binary classification methods and use logistic regression to define the phases of the Ising model. +Use described section 7 and in Notebook 6 of Mehta *et al.*. Discuss the methods and how they perform. Give a critical analysis and discuss how to evaluate the cost function. You should feel free to write your own code. Use thereafter the random forests algorithm to classify the same phases as done with logistic regression and discuss the pros and cons of these methods. For random forests you can use notebook 9 of Mehta et al. + +

+You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +

Part d): Classifying the Ising model phase using neural networks

+ +We end the classification problem of the phases of the Ising model by emplpying feed-forward deep neural networks (see section 9 of Mehta et al.). The method is described in notebook 12. + +

+You can use tensorflow to perform these analyses. See below for instruction on how to install tensorflow. + +

Part e): Summary

+ +

+You should make a summary of the various methods and their pros and cons. For the final presentation, you should have at least coded one of these methods yourself and discussed the evaluation of the cost function. + +

Background literature

+ +

+On Machine Learning we recommend strongly the article of Mehta et al. +Textbooks on Machine Learning can be found at the Github address of FYS-STK4155, see in particular Marsland's text. + +

+ +If you wish to read more about the Ising model and statistical physics here are three suggestions. + + + +

Introduction to numerical projects

+ +

+Here follows a brief recipe and recommendation on how to write a report for each +project. + +

+ +

Software and needed installations

+ +

+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 tensorflow sympy pandas pillow
  2. +
+ +For Python3, replace pip with pip3. + +

+See below for a discussion of tensorflow and scikit-learn. + +

+For OSX users we recommend also, after having installed Xcode, to install brew. Brew allows +for a seamless installation of additional software via for example + +

    +
  1. brew install python3
  2. +
+ +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)
  2. +
+ +etc etc. + +

+If you don't want to install various Python packages with their dependencies separately, we recommend two widely used distrubutions which set up all relevant dependencies for Python, namely + +

    +
  1. Anaconda Anaconda 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
  2. +
  3. Enthought canopy is a Python distribution for scientific and analytic computing distribution and analysis environment, available for free and under a commercial license.
  4. +
+ +Popular software packages written in Python for ML are + + + +These are all freely available at their respective GitHub sites. They +encompass communities of developers in the thousands or more. And the number +of code developers and contributors keeps increasing. + + + + +
+ © 1999-2018, "Data Analysis and Machine Learning FYS-STK3155/FYS4155":"http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html". Released under CC Attribution-NonCommercial 4.0 license +
+ + + + + + diff --git a/doc/Projects/2017/Project/ipynb/ipynb-Project-src.tar.gz b/doc/Projects/2017/Project/ipynb/ipynb-Project-src.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..81f14bbbcb2548af5671a665e2047aad8ff22fcb GIT binary patch literal 211 zcmV;^04)C>iwFSEl<-;r1MSbxY63A3$8pa-#XP~1?5?|KK@U9?r1S-1H@Z=q*d#*t z?du}^{N}s_ks_l +\] +with +$s_k=\pm 1$. The quantity $N$ represents the total number of spins and $J$ is a coupling +constant expressing the strength of the interaction between +neighboring spins. The symbol $$ indicates that we sum over +nearest neighbors only. We will assume that we have a ferromagnetic +ordering, viz $J> 0$. We will use periodic boundary conditions and +the Metropolis algorithm only. + + +We will use the Ising model to generate our training data and will focus mainly on supervised training. We will follow closely the recent article of \href{{https://arxiv.org/abs/1803.08823}}{Mehta et al, arXiv 1803.08823}. This article stands out as an excellent review of machine learning (ML) algorithms applied to typical physics problems. The added benefit is that each figure and model presented in \href{{https://physics.bu.edu/~pankajm/MLnotebooks.html}}{this article is accompanied by its jupyter notebook}. This means that we can start using these and compare with our own results. In case you wish to use their data for the Ising model, thir data can be downloaded from the same link which lists to the jupyter notebooks. See also at the end of the project description for more information on how to install various Python packages. + + + +With the abovementioned configurations we will determine, using first various +regression methods, the value of the coupling constant for the energy +of the one-dimensional Ising model. Thereafter, we will use the +two-dimensional data, but now computed at different temperatures, in +order to classify the phase of the Ising model. Below the critical +temperature, the system will be in so-called ferromagnetic +phase. Close to the critical temperature, the final magnetizations +starts becoming close to zero while above the critical temperature, +the net magnetization is zero. The latter case, that is the +two-dimensional Ising model, will be studied using a \textbf{random forest} +algorithm and deep neural networks. + +You should try to program at least one of these methods yourself (choose the one you prefer). +Feel free to use the notebooks to benchmark your code. If you wish to write your C++ or Fortran program for say a simple neural network model, please feel free to do so. +You can then benchmark your results against the above jupyter notebooks. More information can also be found at the link for the lecture notes of \href{{https://compphysics.github.io/MachineLearning/doc/web/course.html}}{FYS-STK4155}. + + +We recommend that you form groups of 2-3 students and try to +collaborate on the notebooks, develop your own software and discuss +the final presentations. You can collaborate on all these topics. The +final presentation should include an overview of popular machine +learning algorithms as introduction and motivation. Thereafter you +discuss the explicit Ising model data and how you have implemented the +ML algorithms discussed here, discuss their pros and cons and try to +develop your own code for at least one of these algorithms. You are +encouraged to use the abovementioned notebooks as starting point and +guidance. The duration of your presentation should at most be 30 +mins. Allow for approximately 15 mins for discussions and questions. + + + +\paragraph{Part a): Producing the data.} +You can use the Ising model data from the article of Mehta \emph{et al.}, or generate your own data. +If you opt for using your own Ising model code, you need to generate $10000$ energy configurations with their spin orientations after the system has reached its most likely state. These energies and their corresponding spin orientations +represent then your data. +We will use a fixed lattice of $L\times L = 40 \times 40$ spins in two dimensions and $L=40$ spins in one dimension. +Make sure the calculations have been equilibrated. For the two-dimensional system, compute the configurations +for three values of the temperature, namely $T=0.75$ (ordered phase), $T=2.3$ (near the critical point) and $T=4.0$ (disordered phase). +For the one-dimensional system it suffices to compute the various configurations for one temperature only, say $T=2.0$. +These are the data you will use to study different ML algorithms. +We generate our data with $J=1$. + +\paragraph{Part b): Estimating the coupling constant of the one-dimensional Ising model.} +We start with the one-dimensional Ising model and use the data we have generated with $J=1$. Use linear regression, Lasso and Ridge regression as described section 6 and in Notebook 4 of \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVI-linreg_ising.html}}{Mehta *et al.*}. Discuss the methods and how they perform in computing the coupling constant $J$. Give a critical analysis and discuss how to evaluate the \emph{cost function}. You should feel free to write your own code, see also +the lecture notes of \href{{https://compphysics.github.io/MachineLearning/doc/web/course.html}}{FYS-STK4155}, in particular te material on least square methods. You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +\paragraph{Part c): Determine the phase of the two-dimensional Ising model.} +We switch now to binary classification methods and use logistic regression to define the phases of the Ising model. +Use described section 7 and in Notebook 6 of \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVII-logreg_ising.html}}{Mehta *et al.*}. Discuss the methods and how they perform. Give a critical analysis and discuss how to evaluate the \emph{cost function}. You should feel free to write your own code. Use thereafter the \emph{random forests} algorithm to classify the same phases as done with logistic regression and discuss the pros and cons of these methods. For \emph{random forests} you can use \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVIII-randomforests_ising.html}}{notebook 9} of Mehta \emph{et al.} + +You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +\paragraph{Part d): Classifying the Ising model phase using neural networks.} +We end the classification problem of the phases of the Ising model by emplpying feed-forward deep neural networks (see section 9 of Mehta \emph{et al.}). The method is described in \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CIX-DNN_ising_TFlow.html}}{notebook 12}. + +You can use tensorflow to perform these analyses. See below for instruction on how to install tensorflow. + + +\paragraph{Part e): Summary.} +You should make a summary of the various methods and their pros and cons. For the final presentation, you should have at least coded one of these methods yourself and discussed the evaluation of the cost function. + +\subsection{Background literature} + +On Machine Learning we recommend strongly the article of Mehta \emph{et al.} +Textbooks on Machine Learning can be found at the \href{{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Textbooks}}{Github address of FYS-STK4155}, see in particular Marsland's text. + +\begin{itemize} + \item \href{{https://arxiv.org/abs/1803.08823}}{Mehta et al, arXiv 1803.08823}, \emph{A high-bias, low-variance introduction to Machine Learning for physicists}, ArXiv:1803.08823. +\end{itemize} + +\noindent +If you wish to read more about the Ising model and statistical physics here are three suggestions. + +\begin{itemize} + \item \href{{http://www.worldscientific.com/worldscibooks/10.1142/5660}}{M. Plischke and B. Bergersen}, \emph{Equilibrium Statistical Physics}, World Scientific, see chapters 5 and 6. + + \item \href{{http://www.cambridge.org/no/academic/subjects/physics/computational-science-and-modelling/guide-monte-carlo-simulations-statistical-physics-4th-edition?format=HB}}{D. P. Landau and K. Binder}, \emph{A Guide to Monte Carlo Simulations in Statistical Physics}, Cambridge, see chapters 2,3 and 4. + + \item \href{{https://global.oup.com/academic/product/monte-carlo-methods-in-statistical-physics-9780198517979?cc=no&lang=en&}}{M. E. J. Newman and T. Barkema}, \emph{Monte Carlo Methods in Statistical Physics}, Oxford, see chapters 3 and 4. +\end{itemize} + +\noindent +\subsection{Introduction to numerical projects} + +Here follows a brief recipe and recommendation on how to write a report for each +project. + +\begin{itemize} + \item Give a short description of the nature of the problem and the eventual numerical methods you have used. + + \item Describe the algorithm you have used and/or developed. Here you may find it convenient to use pseudocoding. In many cases you can describe the algorithm in the program itself. + + \item Include the source code of your program. Comment your program properly. + + \item If possible, try to find analytic solutions, or known limits in order to test your program when developing the code. + + \item Include your results either in figure form or in a table. Remember to label your results. All tables and figures should have relevant captions and labels on the axes. + + \item Try to evaluate the reliabilty and numerical stability/precision of your results. If possible, include a qualitative and/or quantitative discussion of the numerical stability, eventual loss of precision etc. + + \item Try to give an interpretation of you results in your answers to the problems. + + \item Critique: if possible include your comments and reflections about the exercise, whether you felt you learnt something, ideas for improvements and other thoughts you've made when solving the exercise. We wish to keep this course at the interactive level and your comments can help us improve it. + + \item Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning. +\end{itemize} + +\noindent +\subsection{Software and needed installations} + +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 \textbf{pip} as +\begin{enumerate} +\item pip install numpy scipy matplotlib ipython scikit-learn tensorflow sympy pandas pillow +\end{enumerate} + +\noindent +For Python3, replace \textbf{pip} with \textbf{pip3}. + +See below for a discussion of \textbf{tensorflow} and \textbf{scikit-learn}. + +For OSX users we recommend also, after having installed Xcode, to install \textbf{brew}. Brew allows +for a seamless installation of additional software via for example +\begin{enumerate} +\item brew install python3 +\end{enumerate} + +\noindent +For Linux users, with its variety of distributions like for example the widely popular Ubuntu distribution +you can use \textbf{pip} as well and simply install Python as +\begin{enumerate} +\item sudo apt-get install python3 (or python for python2.7) +\end{enumerate} + +\noindent +etc etc. + +If you don't want to install various Python packages with their dependencies separately, we recommend two widely used distrubutions which set up all relevant dependencies for Python, namely +\begin{enumerate} +\item \href{{https://docs.anaconda.com/}}{Anaconda} Anaconda 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 \textbf{conda} + +\item \href{{https://www.enthought.com/product/canopy/}}{Enthought canopy} is a Python distribution for scientific and analytic computing distribution and analysis environment, available for free and under a commercial license. +\end{enumerate} + +\noindent +Popular software packages written in Python for ML are + +\begin{itemize} +\item \href{{http://scikit-learn.org/stable/}}{Scikit-learn}, + +\item \href{{https://www.tensorflow.org/}}{Tensorflow}, + +\item \href{{http://pytorch.org/}}{PyTorch} and + +\item \href{{https://keras.io/}}{Keras}. +\end{itemize} + +\noindent +These are all freely available at their respective GitHub sites. They +encompass communities of developers in the thousands or more. And the number +of code developers and contributors keeps increasing. + + +% ------------------- end of main content --------------- + +% #ifdef PREAMBLE +\end{document} +% #endif + diff --git a/doc/Projects/2017/Project/pdf/Project.pdf b/doc/Projects/2017/Project/pdf/Project.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aab4cc230e055990761a30b7acc440e65b087c36 GIT binary patch literal 195510 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 +\] +with +$s_k=\pm 1$. The quantity $N$ represents the total number of spins and $J$ is a coupling +constant expressing the strength of the interaction between +neighboring spins. The symbol $$ indicates that we sum over +nearest neighbors only. We will assume that we have a ferromagnetic +ordering, viz $J> 0$. We will use periodic boundary conditions and +the Metropolis algorithm only. + + +We will use the Ising model to generate our training data and will focus mainly on supervised training. We will follow closely the recent article of \href{{https://arxiv.org/abs/1803.08823}}{Mehta et al, arXiv 1803.08823}. This article stands out as an excellent review of machine learning (ML) algorithms applied to typical physics problems. The added benefit is that each figure and model presented in \href{{https://physics.bu.edu/~pankajm/MLnotebooks.html}}{this article is accompanied by its jupyter notebook}. This means that we can start using these and compare with our own results. In case you wish to use their data for the Ising model, thir data can be downloaded from the same link which lists to the jupyter notebooks. See also at the end of the project description for more information on how to install various Python packages. + + + +With the abovementioned configurations we will determine, using first various +regression methods, the value of the coupling constant for the energy +of the one-dimensional Ising model. Thereafter, we will use the +two-dimensional data, but now computed at different temperatures, in +order to classify the phase of the Ising model. Below the critical +temperature, the system will be in so-called ferromagnetic +phase. Close to the critical temperature, the final magnetizations +starts becoming close to zero while above the critical temperature, +the net magnetization is zero. The latter case, that is the +two-dimensional Ising model, will be studied using a \textbf{random forest} +algorithm and deep neural networks. + +You should try to program at least one of these methods yourself (choose the one you prefer). +Feel free to use the notebooks to benchmark your code. If you wish to write your C++ or Fortran program for say a simple neural network model, please feel free to do so. +You can then benchmark your results against the above jupyter notebooks. More information can also be found at the link for the lecture notes of \href{{https://compphysics.github.io/MachineLearning/doc/web/course.html}}{FYS-STK4155}. + + +We recommend that you form groups of 2-3 students and try to +collaborate on the notebooks, develop your own software and discuss +the final presentations. You can collaborate on all these topics. The +final presentation should include an overview of popular machine +learning algorithms as introduction and motivation. Thereafter you +discuss the explicit Ising model data and how you have implemented the +ML algorithms discussed here, discuss their pros and cons and try to +develop your own code for at least one of these algorithms. You are +encouraged to use the abovementioned notebooks as starting point and +guidance. The duration of your presentation should at most be 30 +mins. Allow for approximately 15 mins for discussions and questions. + + + +\paragraph{Part a): Producing the data.} +You can use the Ising model data from the article of Mehta \emph{et al.}, or generate your own data. +If you opt for using your own Ising model code, you need to generate $10000$ energy configurations with their spin orientations after the system has reached its most likely state. These energies and their corresponding spin orientations +represent then your data. +We will use a fixed lattice of $L\times L = 40 \times 40$ spins in two dimensions and $L=40$ spins in one dimension. +Make sure the calculations have been equilibrated. For the two-dimensional system, compute the configurations +for three values of the temperature, namely $T=0.75$ (ordered phase), $T=2.3$ (near the critical point) and $T=4.0$ (disordered phase). +For the one-dimensional system it suffices to compute the various configurations for one temperature only, say $T=2.0$. +These are the data you will use to study different ML algorithms. +We generate our data with $J=1$. + +\paragraph{Part b): Estimating the coupling constant of the one-dimensional Ising model.} +We start with the one-dimensional Ising model and use the data we have generated with $J=1$. Use linear regression, Lasso and Ridge regression as described section 6 and in Notebook 4 of \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVI-linreg_ising.html}}{Mehta *et al.*}. Discuss the methods and how they perform in computing the coupling constant $J$. Give a critical analysis and discuss how to evaluate the \emph{cost function}. You should feel free to write your own code, see also +the lecture notes of \href{{https://compphysics.github.io/MachineLearning/doc/web/course.html}}{FYS-STK4155}, in particular te material on least square methods. You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +\paragraph{Part c): Determine the phase of the two-dimensional Ising model.} +We switch now to binary classification methods and use logistic regression to define the phases of the Ising model. +Use described section 7 and in Notebook 6 of \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVII-logreg_ising.html}}{Mehta *et al.*}. Discuss the methods and how they perform. Give a critical analysis and discuss how to evaluate the \emph{cost function}. You should feel free to write your own code. Use thereafter the \emph{random forests} algorithm to classify the same phases as done with logistic regression and discuss the pros and cons of these methods. For \emph{random forests} you can use \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVIII-randomforests_ising.html}}{notebook 9} of Mehta \emph{et al.} + +You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +\paragraph{Part d): Classifying the Ising model phase using neural networks.} +We end the classification problem of the phases of the Ising model by emplpying feed-forward deep neural networks (see section 9 of Mehta \emph{et al.}). The method is described in \href{{https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CIX-DNN_ising_TFlow.html}}{notebook 12}. + +You can use tensorflow to perform these analyses. See below for instruction on how to install tensorflow. + + +\paragraph{Part e): Summary.} +You should make a summary of the various methods and their pros and cons. For the final presentation, you should have at least coded one of these methods yourself and discussed the evaluation of the cost function. + +\subsection*{Background literature} + +On Machine Learning we recommend strongly the article of Mehta \emph{et al.} +Textbooks on Machine Learning can be found at the \href{{https://github.com/CompPhysics/MachineLearning/tree/master/doc/Textbooks}}{Github address of FYS-STK4155}, see in particular Marsland's text. + +\begin{itemize} + \item \href{{https://arxiv.org/abs/1803.08823}}{Mehta et al, arXiv 1803.08823}, \emph{A high-bias, low-variance introduction to Machine Learning for physicists}, ArXiv:1803.08823. +\end{itemize} + +\noindent +If you wish to read more about the Ising model and statistical physics here are three suggestions. + +\begin{itemize} + \item \href{{http://www.worldscientific.com/worldscibooks/10.1142/5660}}{M. Plischke and B. Bergersen}, \emph{Equilibrium Statistical Physics}, World Scientific, see chapters 5 and 6. + + \item \href{{http://www.cambridge.org/no/academic/subjects/physics/computational-science-and-modelling/guide-monte-carlo-simulations-statistical-physics-4th-edition?format=HB}}{D. P. Landau and K. Binder}, \emph{A Guide to Monte Carlo Simulations in Statistical Physics}, Cambridge, see chapters 2,3 and 4. + + \item \href{{https://global.oup.com/academic/product/monte-carlo-methods-in-statistical-physics-9780198517979?cc=no&lang=en&}}{M. E. J. Newman and T. Barkema}, \emph{Monte Carlo Methods in Statistical Physics}, Oxford, see chapters 3 and 4. +\end{itemize} + +\noindent +\subsection*{Introduction to numerical projects} + +Here follows a brief recipe and recommendation on how to write a report for each +project. + +\begin{itemize} + \item Give a short description of the nature of the problem and the eventual numerical methods you have used. + + \item Describe the algorithm you have used and/or developed. Here you may find it convenient to use pseudocoding. In many cases you can describe the algorithm in the program itself. + + \item Include the source code of your program. Comment your program properly. + + \item If possible, try to find analytic solutions, or known limits in order to test your program when developing the code. + + \item Include your results either in figure form or in a table. Remember to label your results. All tables and figures should have relevant captions and labels on the axes. + + \item Try to evaluate the reliabilty and numerical stability/precision of your results. If possible, include a qualitative and/or quantitative discussion of the numerical stability, eventual loss of precision etc. + + \item Try to give an interpretation of you results in your answers to the problems. + + \item Critique: if possible include your comments and reflections about the exercise, whether you felt you learnt something, ideas for improvements and other thoughts you've made when solving the exercise. We wish to keep this course at the interactive level and your comments can help us improve it. + + \item Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning. +\end{itemize} + +\noindent +\subsection*{Software and needed installations} + +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 \textbf{pip} as +\begin{enumerate} +\item pip install numpy scipy matplotlib ipython scikit-learn tensorflow sympy pandas pillow +\end{enumerate} + +\noindent +For Python3, replace \textbf{pip} with \textbf{pip3}. + +See below for a discussion of \textbf{tensorflow} and \textbf{scikit-learn}. + +For OSX users we recommend also, after having installed Xcode, to install \textbf{brew}. Brew allows +for a seamless installation of additional software via for example +\begin{enumerate} +\item brew install python3 +\end{enumerate} + +\noindent +For Linux users, with its variety of distributions like for example the widely popular Ubuntu distribution +you can use \textbf{pip} as well and simply install Python as +\begin{enumerate} +\item sudo apt-get install python3 (or python for python2.7) +\end{enumerate} + +\noindent +etc etc. + +If you don't want to install various Python packages with their dependencies separately, we recommend two widely used distrubutions which set up all relevant dependencies for Python, namely +\begin{enumerate} +\item \href{{https://docs.anaconda.com/}}{Anaconda} Anaconda 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 \textbf{conda} + +\item \href{{https://www.enthought.com/product/canopy/}}{Enthought canopy} is a Python distribution for scientific and analytic computing distribution and analysis environment, available for free and under a commercial license. +\end{enumerate} + +\noindent +Popular software packages written in Python for ML are + +\begin{itemize} +\item \href{{http://scikit-learn.org/stable/}}{Scikit-learn}, + +\item \href{{https://www.tensorflow.org/}}{Tensorflow}, + +\item \href{{http://pytorch.org/}}{PyTorch} and + +\item \href{{https://keras.io/}}{Keras}. +\end{itemize} + +\noindent +These are all freely available at their respective GitHub sites. They +encompass communities of developers in the thousands or more. And the number +of code developers and contributors keeps increasing. + + +% ------------------- end of main content --------------- + +\end{document} + diff --git a/doc/src/Projects/2017/Project/Project.do.txt b/doc/src/Projects/2017/Project/Project.do.txt index 106d271cd..f7573e6e5 100644 --- a/doc/src/Projects/2017/Project/Project.do.txt +++ b/doc/src/Projects/2017/Project/Project.do.txt @@ -3,11 +3,11 @@ AUTHOR: "Data Analysis and Machine Learning FYS-STK3155/FYS4155":"http://www.uio DATE: May 2018 -===== Machine learning approaches to data from Ising model calculations ===== +===== Machine learning (ML) approaches to data from Ising model calculations ===== === Introduction === -The aim of this project is to use an already developed Monte Carlo program for the one-dimensional and two-dimensional "Ising model":"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Programs/IsingModel", in order to produce the spin configurations for a series of energies $E_i$ (10000 in total) for a system of $20$ spins in one dimension and $20\times 20$ in two dimensions at three different temperatures. +The aim of this project is to use an already developed Monte Carlo program for the one-dimensional and two-dimensional "Ising model":"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Programs/IsingModel", in order to produce the spin configurations for a series of energies $E_i$ (10000 in total) for a system of $L=40$ spins in one dimension and $L=40\times 40$ in two dimensions at three different temperatures. In its simplest form the energy of the Ising model is expressed as, without an externally applied magnetic field, !bt @@ -23,210 +23,83 @@ nearest neighbors only. We will assume that we have a ferromagnetic ordering, viz $J> 0$. We will use periodic boundary conditions and the Metropolis algorithm only. -With these configurations we will determine, using first various + +We will use the Ising model to generate our training data and will focus mainly on supervised training. We will follow closely the recent article of "Mehta et al, arXiv 1803.08823":"https://arxiv.org/abs/1803.08823". This article stands out as an excellent review of machine learning (ML) algorithms applied to typical physics problems. The added benefit is that each figure and model presented in "this article is accompanied by its jupyter notebook":"https://physics.bu.edu/~pankajm/MLnotebooks.html". This means that we can start using these and compare with our own results. In case you wish to use their data for the Ising model, thir data can be downloaded from the same link which lists to the jupyter notebooks. See also at the end of the project description for more information on how to install various Python packages. + + + +With the abovementioned configurations we will determine, using first various regression methods, the value of the coupling constant for the energy -of the one-dimensional Ising model. Thereafter +of the one-dimensional Ising model. Thereafter, we will use the +two-dimensional data, but now computed at different temperatures, in +order to classify the phase of the Ising model. Below the critical +temperature, the system will be in so-called ferromagnetic +phase. Close to the critical temperature, the final magnetizations +starts becoming close to zero while above the critical temperature, +the net magnetization is zero. The latter case, that is the +two-dimensional Ising model, will be studied using a _random forest_ +algorithm and deep neural networks. + +You should try to program at least one of these methods yourself (choose the one you prefer). +Feel free to use the notebooks to benchmark your code. If you wish to write your C++ or Fortran program for say a simple neural network model, please feel free to do so. +You can then benchmark your results against the above jupyter notebooks. More information can also be found at the link for the lecture notes of "FYS-STK4155":"https://compphysics.github.io/MachineLearning/doc/web/course.html". + + +We recommend that you form groups of 2-3 students and try to +collaborate on the notebooks, develop your own software and discuss +the final presentations. You can collaborate on all these topics. The +final presentation should include an overview of popular machine +learning algorithms as introduction and motivation. Thereafter you +discuss the explicit Ising model data and how you have implemented the +ML algorithms discussed here, discuss their pros and cons and try to +develop your own code for at least one of these algorithms. You are +encouraged to use the abovementioned notebooks as starting point and +guidance. The duration of your presentation should at most be 30 +mins. Allow for approximately 15 mins for discussions and questions. - Alternatively we can use the supplied variational Monte Carlo program which solves Schroedinger's equation for two interacting electrons in a harmonic oscillator trap. Both codes can be found at the webpage of the "course under programs":"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Programs/". === Part a): Producing the data === -If we opt for the Ising model code, we need to generate for every span over the lattice and output of the total energy and the magnetic moment (if we wish to study this quantity as well), that is compute and write to file as function of temperature -$\langle E\rangle$ and $\langle \vert M\vert \rangle$. -We will use a fixed lattice siste of $L\times L = 40 \times 40$. Make sure the calculations have been equilibrated and compute these expectation values for -for $T\in [1.0,3.0]$ with a step in -temperature $\Delta T=0.1$ or smaller. This are the data you will use to estimate the standard deviation in the next part of the project. -You should keep a file for the different temperatures as you will need to compute the standard deviation for each temperature. +You can use the Ising model data from the article of Mehta *et al.*, or generate your own data. +If you opt for using your own Ising model code, you need to generate $10000$ energy configurations with their spin orientations after the system has reached its most likely state. These energies and their corresponding spin orientations +represent then your data. +We will use a fixed lattice of $L\times L = 40 \times 40$ spins in two dimensions and $L=40$ spins in one dimension. +Make sure the calculations have been equilibrated. For the two-dimensional system, compute the configurations +for three values of the temperature, namely $T=0.75$ (ordered phase), $T=2.3$ (near the critical point) and $T=4.0$ (disordered phase). +For the one-dimensional system it suffices to compute the various configurations for one temperature only, say $T=2.0$. +These are the data you will use to study different ML algorithms. +We generate our data with $J=1$. + +=== Part b): Estimating the coupling constant of the one-dimensional Ising model === + +We start with the one-dimensional Ising model and use the data we have generated with $J=1$. Use linear regression, Lasso and Ridge regression as described section 6 and in Notebook 4 of "Mehta *et al.*":"https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVI-linreg_ising.html". Discuss the methods and how they perform in computing the coupling constant $J$. Give a critical analysis and discuss how to evaluate the *cost function*. You should feel free to write your own code, see also +the lecture notes of "FYS-STK4155":"https://compphysics.github.io/MachineLearning/doc/web/course.html", in particular te material on least square methods. You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +=== Part c): Determine the phase of the two-dimensional Ising model === + +We switch now to binary classification methods and use logistic regression to define the phases of the Ising model. +Use described section 7 and in Notebook 6 of "Mehta *et al.*":"https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVII-logreg_ising.html". Discuss the methods and how they perform. Give a critical analysis and discuss how to evaluate the *cost function*. You should feel free to write your own code. Use thereafter the *random forests* algorithm to classify the same phases as done with logistic regression and discuss the pros and cons of these methods. For *random forests* you can use "notebook 9":"https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CVIII-randomforests_ising.html" of Mehta *et al.* + +You can use scikit-learn to perform these analyses. See below for instruction on how to install scikit-learn. + +=== Part d): Classifying the Ising model phase using neural networks === +We end the classification problem of the phases of the Ising model by emplpying feed-forward deep neural networks (see section 9 of Mehta *et al.*). The method is described in "notebook 12":"https://physics.bu.edu/~pankajm/ML-Notebooks/HTML/NB_CIX-DNN_ising_TFlow.html". + +You can use tensorflow to perform these analyses. See below for instruction on how to install tensorflow. -=== Part b): Estimating the standard deviation === - - -=== Part c): Fitting the data using regression analysis and other methods === - -With the data from part b), with a proper determination of the standard deviation, the task here is to find a fit to the data using regression methods. Here we will focus on the least square method with a straight line fit first and thereafter using singular value decomposition to fit a function that reproduces the data. - -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 -!bt -\[ -y=y(x) \rightarrow y(x_i)=\tilde{y}_i+\epsilon_i=\sum_{j=0}^{n-1} \beta_i x_i^j+\epsilon_i, -\] -!et -where $\epsilon_i$ is the error in our approximation. - -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 parametrized values $\tilde{y}_i$, namely -!bt -\[ -Q(\hat{\beta})=\sum_{i=0}^{n-1}\left(y_i-\tilde{y}_i\right)^2=\left(\hat{y}-\hat{\tilde{y}}\right)^T\left(\hat{y}-\hat{\tilde{y}}\right), -\] -!et -or using the matrix $\hat{X}$ as -!bt -\[ -Q(\hat{\beta})=\left(\hat{y}-\hat{X}\hat{\beta}\right)^T\left(\hat{y}-\hat{X}\hat{\beta}\right). -\] -!et - -The function -!bt -\[ -Q(\hat{\beta})=\left(\hat{y}-\hat{X}\hat{\beta}\right)^T\left(\hat{y}-\hat{X}\hat{\beta}\right), -\] -!et -can be linked to the variance of the quantity $y_i$ if we interpret the latter as the mean value of for example a numerical experiment. When linking below with the maximum likelihood approach below, we will indeed interpret $y_i$ as a mean value -!bt -\[ -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, -\] -!et -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. - -Introducing the standard deviation $\sigma_i$ for each measurement $y_i$, we define now the $\chi^2$ function as -!bt -\[ -\chi^2(\hat{\beta})=\sum_{i=0}^{n-1}\frac{\left(y_i-\tilde{y}_i\right)^2}{\sigma_i^2}=\left(\hat{y}-\hat{\tilde{y}}\right)^T\frac{1}{\hat{\Sigma^2}}\left(\hat{y}-\hat{\tilde{y}}\right), -\] -!et -where the matrix $\hat{\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(\hat{\beta})$ by requiring -!bt -\[ -\frac{\partial \chi^2(\hat{\beta})}{\partial \beta_j} = \frac{\partial }{\partial \beta_j}\left[ \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, -\] -!et -which results in -!bt -\[ -\frac{\partial \chi^2(\hat{\beta})}{\partial \beta_j} = -2\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, -\] -!et -or in a matrix-vector form as -!bt -\[ -\frac{\partial \chi^2(\hat{\beta})}{\partial \hat{\beta}} = 0 = \hat{A}^T\left( \hat{b}-\hat{A}\hat{\beta}\right). -\] -!et -where we have defined the matrix $\hat{A} =\hat{X}/\hat{\Sigma}$ with matrix elements $a_{ij} = x_{ij}/\sigma_i$ and the vector $\hat{b}$ with elements $b_i = y_i/\sigma_i$. - - -We can rewrite -!bt -\[ -\frac{\partial \chi^2(\hat{\beta})}{\partial \hat{\beta}} = 0 = \hat{A}^T\left( \hat{b}-\hat{A}\hat{\beta}\right), -\] -!et -as -!bt -\[ -\hat{A}^T\hat{b} = \hat{A}^T\hat{A}\hat{\beta}, -\] -!et -and if the matrix $\hat{A}^T\hat{A}$ is invertible we have the solution -!bt -\[ -\hat{\beta} =\left(\hat{A}^T\hat{A}\right)^{-1}\hat{A}^T\hat{b}. -\] -!et -If we then introduce the matrix -!bt -\[ -\hat{H} = \hat{A}^T\hat{A}, -\] -!et -we have then the following expression for the parameters $\beta_j$ (the matrix elements of $\hat{H}$ are $h_{ij}$) -!bt -\[ -\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} -\] -!et -We state without proof the expression for the uncertainty in the parameters $\beta_j$ as -!bt -\[ -\sigma^2(\beta_j) = \sum_{i=0}^{n-1}\sigma_i^2\left( \frac{\partial \beta_j}{\partial y_i}\right)^2, -\] -!et -resulting in -!bt -\[ -\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}! -\] -!et - - -The first step here is to approximate the function $y$ with a first-order polynomial, that is we write -!bt -\[ -y=y(x) \rightarrow y(x_i) \approx \beta_0+\beta_1 x_i. -\] -!et -By computing the derivatives of $\chi^2$ with respect to $\beta_0$ and $\beta_1$ show that these are given by -!bt -\[ -\frac{\partial \chi^2(\hat{\beta})}{\partial \beta_0} = -2\left[ \sum_{i=0}^{1}\left(\frac{y_i-\beta_0-\beta_1x_{i}}{\sigma_i^2}\right)\right]=0, -\] -!et -and -!bt -\[ -\frac{\partial \chi^2(\hat{\beta})}{\partial \beta_0} = -2\left[ \sum_{i=0}^{1}x_i\left(\frac{y_i-\beta_0-\beta_1x_{i}}{\sigma_i^2}\right)\right]=0. -\] -!et -Define then -!bt -\[ -\gamma = \sum_{i=0}^{1}\frac{1}{\sigma_i^2}, -\] -!et - -!bt -\[ -\gamma_x = \sum_{i=0}^{1}\frac{x_{i}}{\sigma_i^2}, -\] -!et -!bt -\[ -\gamma_y = \sum_{i=0}^{1}\left(\frac{y_i}{\sigma_i^2}\right), -\] -!et -!bt -\[ -\gamma_{xx} = \sum_{i=0}^{1}\frac{x_ix_{i}}{\sigma_i^2}, -\] -!et -!bt -\[ -\gamma_{xy} = \sum_{i=0}^{1}\frac{y_ix_{i}}{\sigma_i^2}, -\] -!et -and show that -!bt -\[ -\beta_0 = \frac{\gamma_{xx}\gamma_y-\gamma_x\gamma_y}{\gamma\gamma_{xx}-\gamma_x^2}, -\] -!et -!bt -\[ -\beta_1 = \frac{\gamma_{xy}\gamma-\gamma_x\gamma_y}{\gamma\gamma_{xx}-\gamma_x^2}. -\] -!et -Find these parameters for your data set and compare the fitted function $y=y(x) \rightarrow y(x_i) \approx \beta_0+\beta_1 x_i$ and find the error in the parameters $\beta_0$ and $\beta_1$ as well. -How does your parametrization compare with the input data $y_i$? Give a critical discussion of the method. - -Develop now a program where you extract the parameters $\beta_i$ and their corresponding errors using the general Least Square method (LSM), with polynomials of degree $p=2$ and $p=3$. Which polyomials gives the best fit to your data? Here you should prepare an input file with the number of data points in your training data set, the corresponding standard deviation $\sigma_i$ as well as the degree $p$ of the polynomial you want to fit. - -The LSM 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 in the lecture notes on regression analysis. Here you should use the "SVD programs":"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Programs/SVD" and use the same input file you used for the general LSM. In the main functions you should specifiy which function you wish to approximate the date with. The example programs discussed above show you examples on how to use these codes as well as how to write the functional form of the polynomial or fitting function. - - -=== Part d): Introducing Bayesian statistics === +=== Part e): Summary === +You should make a summary of the various methods and their pros and cons. For the final presentation, you should have at least coded one of these methods yourself and discussed the evaluation of the cost function. ===== Background literature ===== +On Machine Learning we recommend strongly the article of Mehta *et al.* +Textbooks on Machine Learning can be found at the "Github address of FYS-STK4155":"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Textbooks", see in particular Marsland's text. + + * "Mehta et al, arXiv 1803.08823":"https://arxiv.org/abs/1803.08823", *A high-bias, low-variance introduction to Machine Learning for physicists*, ArXiv:1803.08823. + If you wish to read more about the Ising model and statistical physics here are three suggestions. * "M. Plischke and B. Bergersen":"http://www.worldscientific.com/worldscibooks/10.1142/5660", *Equilibrium Statistical Physics*, World Scientific, see chapters 5 and 6. @@ -260,10 +133,35 @@ project. * Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning. +===== Software and needed installations ===== +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 +o pip install numpy scipy matplotlib ipython scikit-learn tensorflow sympy pandas pillow +For Python3, replace _pip_ with _pip3_. +See below for a discussion of _tensorflow_ and _scikit-learn_. +For OSX users we recommend also, after having installed Xcode, to install _brew_. Brew allows +for a seamless installation of additional software via for example +o 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 +o sudo apt-get install python3 (or python for python2.7) +etc etc. +If you don't want to install various Python packages with their dependencies separately, we recommend two widely used distrubutions which set up all relevant dependencies for Python, namely +o "Anaconda":"https://docs.anaconda.com/" Anaconda 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_ +o "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. +Popular software packages written in Python for ML are + +* "Scikit-learn":"http://scikit-learn.org/stable/", +* "Tensorflow":"https://www.tensorflow.org/", +* "PyTorch":"http://pytorch.org/" and +* "Keras":"https://keras.io/". +These are all freely available at their respective GitHub sites. They +encompass communities of developers in the thousands or more. And the number +of code developers and contributors keeps increasing.