From 967fe02f2d5fdeca478b449b74a5f4c15d509888 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Mon, 14 Nov 2022 18:03:58 +0100 Subject: [PATCH] first iteration p3, addition to be made --- .../2022/Project3/html/._Project3-bs000.html | 457 ++++++++++++++ .../2022/Project3/html/Project3-bs.html | 457 ++++++++++++++ doc/Projects/2022/Project3/html/Project3.html | 474 +++++++++++++++ .../2022/Project3/ipynb/Project3.ipynb | 567 ++++++++++++++++++ .../Project3/ipynb/ipynb-Project3-src.tar.gz | Bin 0 -> 193 bytes doc/Projects/2022/Project3/pdf/Project3.p.tex | 437 ++++++++++++++ doc/Projects/2022/Project3/pdf/Project3.pdf | Bin 0 -> 247226 bytes doc/Projects/2022/Project3/pdf/Project3.tex | 409 +++++++++++++ .../Projects/2022/Project3/Project3.do.txt | 283 +++++++++ doc/src/Projects/2022/Project3/clean.sh | 3 + doc/src/Projects/2022/Project3/make.sh | 87 +++ 11 files changed, 3174 insertions(+) create mode 100644 doc/Projects/2022/Project3/html/._Project3-bs000.html create mode 100644 doc/Projects/2022/Project3/html/Project3-bs.html create mode 100644 doc/Projects/2022/Project3/html/Project3.html create mode 100644 doc/Projects/2022/Project3/ipynb/Project3.ipynb create mode 100644 doc/Projects/2022/Project3/ipynb/ipynb-Project3-src.tar.gz create mode 100644 doc/Projects/2022/Project3/pdf/Project3.p.tex create mode 100644 doc/Projects/2022/Project3/pdf/Project3.pdf create mode 100644 doc/Projects/2022/Project3/pdf/Project3.tex create mode 100644 doc/src/Projects/2022/Project3/Project3.do.txt create mode 100755 doc/src/Projects/2022/Project3/clean.sh create mode 100755 doc/src/Projects/2022/Project3/make.sh diff --git a/doc/Projects/2022/Project3/html/._Project3-bs000.html b/doc/Projects/2022/Project3/html/._Project3-bs000.html new file mode 100644 index 000000000..6a86b4453 --- /dev/null +++ b/doc/Projects/2022/Project3/html/._Project3-bs000.html @@ -0,0 +1,457 @@ + + + + + + + +Project 3 on Machine Learning, deadline December 15 (midnight), 2021 + + + + + + + + + + + + + + + + + + + + +
+

 

 

 

+ + +
+
+

Project 3 on Machine Learning, deadline December 15 (midnight), 2021

+
+ + +
+Data Analysis and Machine Learning FYS-STK3155/FYS4155 +
+ +
+Department of Physics, University of Oslo, Norway +
+
+
+

Nov 14, 2022

+
+
+ + +
+

Paths for project 3

+

Defining the data sets to analyze yourself

+ +

For project 3, you can propose own data sets that relate to your research interests or just use existing data sets from say

+
    +
  1. Kaggle
  2. +
  3. The University of California at Irvine (UCI) with its machine learning repository.
  4. +
  5. Or other sources.
  6. +
+

The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:

+
    +
  1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Adversarial Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as Principal Component Analysis and k-means Clustering.
  2. +
+

For Boosting, feel also free to write your own codes.

+ +
    +
  1. For project 3, you should feel free to use your own codes from projects 1 and 2, eventually write your own for SVMs and/or Decision trees/random forests/bagging/boosting' or use the available functionality of Scikit-Learn, Tensorflow, etc.
  2. +
  3. The estimates you used and tested in projects 1 and 2 should also be included, that is the \( R2 \)-score, MSE, confusion matrix, accuracy score, information gain, ROC and Cumulative gains curves and other, cross-validation and/or bootstrap if these are relevant.
  4. +
  5. Similarly, feel free to explore various activations functions in deep learning and various approachs to stochastic gradient descent approaches.
  6. +
  7. If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article?
  8. +
  9. A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.
  10. +
+

All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

+ +

We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.

+ +

This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 42 and/or the textbook by Yadav et al.

+ +

Note: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise.

+

The basic structure of your project

+ +

Here follows a set up on how to structure your report and analyze the data you have opted for.

+

Part a)

+ +

The first part deals with structuring and reading the data, much along the same lines as done in projects 1 and 2. Explain how the data are produced and place them in a proper context.

+

Part b)

+ +

You need to include at least two central algorithms, or as an alternative explore methods from decisions tree to bagging, random forests and boosting. Explain the basics of the methods you have chosen to work with. This would be your theory part.

+

Part c)

+ +

Then describe your algorithm and its implementation and tests you have performed.

+

Part d)

+ +

Then presents your results and findings, link with existing literature and more.

+

Part e)

+ +

Finally, here you should present a critical assessment of the methods you have studied and link your results with the existing literature.

+

Solving partial differential equations with neural networks

+ +

For this variant of project 3, we will assume that you have some +background in the solution of partial differential equations using +finite difference schemes. We will study the solution of the diffusion +equation in one dimension using a standard explicit scheme and neural +networks to solve the same equations. +

+ +

For the explicit scheme, you can study for example chapter 10 of the lecture notes in Computational Physics or alternative sources. For the solution of ordinary and partial differential equations using neural networks, the lectures by Kristine Baluka Hein and included in the lectures of week 42 at this course are highly recommended.

+ +

For the machine learning part you can use your own code from project 2 or the functionality of for example Tensorflow/Keras..

+

Part a), setting up the problem

+ +

The physical problem can be that of the temperature gradient in a rod of length \( L=1 \) at \( x=0 \) and \( x=1 \). +We are looking at a one-dimensional +problem +

+ +$$ +\begin{equation*} + \frac{\partial^2 u(x,t)}{\partial x^2} =\frac{\partial u(x,t)}{\partial t}, t> 0, x\in [0,L] +\end{equation*} +$$ + +

or

+ +$$ +\begin{equation*} +u_{xx} = u_t, +\end{equation*} +$$ + +

with initial conditions, i.e., the conditions at \( t=0 \),

+$$ +\begin{equation*} +u(x,0)= \sin{(\pi x)} \hspace{0.5cm} 0 < x < L, +\end{equation*} +$$ + +

with \( L=1 \) the length of the \( x \)-region of interest. The +boundary conditions are +

+ +$$ +\begin{equation*} +u(0,t)= 0 \hspace{0.5cm} t \ge 0, +\end{equation*} +$$ + +

and

+ +$$ +\begin{equation*} +u(L,t)= 0 \hspace{0.5cm} t \ge 0. +\end{equation*} +$$ + +

The function \( u(x,t) \) can be the temperature gradient of a rod. +As time increases, the velocity approaches a linear variation with \( x \). +

+ +

We will limit ourselves to the so-called explicit forward Euler algorithm with discretized versions of time given by a forward formula and a centered difference in space resulting in

+$$ +\begin{equation*} +u_t\approx \frac{u(x,t+\Delta t)-u(x,t)}{\Delta t}=\frac{u(x_i,t_j+\Delta t)-u(x_i,t_j)}{\Delta t} +\end{equation*} +$$ + +

and

+ +$$ +\begin{equation*} +u_{xx}\approx \frac{u(x+\Delta x,t)-2u(x,t)+u(x-\Delta x,t)}{\Delta x^2}, +\end{equation*} +$$ + +

or

+ +$$ +\begin{equation*} +u_{xx}\approx \frac{u(x_i+\Delta x,t_j)-2u(x_i,t_j)+u(x_i-\Delta x,t_j)}{\Delta x^2}. +\end{equation*} +$$ + +

Write down the algorithm and the equations you need to implement. +Find also the analytical solution to the problem. +

+

Part b)

+ +

Implement the explicit scheme algorithm and perform tests of the solution +for \( \Delta x=1/10 \), \( \Delta x=1/100 \) using \( \Delta t \) as dictated by the stability limit of the explicit scheme. The stability criterion for the explicit scheme requires that \( \Delta t/\Delta x^2 \leq 1/2 \). +

+ +

Study the solutions at two time points \( t_1 \) and \( t_2 \) where \( u(x,t_1) \) is smooth but still significantly curved +and \( u(x,t_2) \) is almost linear, close to the stationary state. +

+

Part c) Neural networks

+ +

Study now the lecture notes on solving ODEs and PDEs with neural +network and use either your own code from project 2 or the +functionality of tensorflow/keras to solve the same equation as in +part b). Discuss your results and compare them with the standard +explicit scheme. Include also the analytical solution and compare with +that. +

+

Part d) Solving eigenvalue problems

+ +

Follow the discussion in the work of Yi et al. in the article from +Computers and Mathematics with Applications 47, 1155 (2004), and +use your differential equation solver with neural networks, set up a +simple square, real and symmetric \( 6\times 6 \) matrix and find the +eigenvalues. Compare with the solution from numerical diagonalization with standard eigenvalue solvers from linear algebra. +

+

Part e)

+ +

Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods.

+

Additonal (optional) exercise, adding 30 more points to final score

+ +

This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like Scikit-Learn, Tensorflow or similar. +

+ +

Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets of algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). However, feel free to venture into a classification problem. +

+ +

You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. +

+ +

Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? +

+ +

Hint: when you use different methods, pay attention to how you represent (and understand) the complexity of the model. For example, when using decision trees you may represent the complexity of your model by the depth of the tree.

+

Introduction to numerical projects

+ +

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

+ + +

Format for electronic delivery of report and programs

+ +

The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report:

+ + +

Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report. +

+

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-2022, "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/2022/Project3/html/Project3-bs.html b/doc/Projects/2022/Project3/html/Project3-bs.html new file mode 100644 index 000000000..6a86b4453 --- /dev/null +++ b/doc/Projects/2022/Project3/html/Project3-bs.html @@ -0,0 +1,457 @@ + + + + + + + +Project 3 on Machine Learning, deadline December 15 (midnight), 2021 + + + + + + + + + + + + + + + + + + + + +
+

 

 

 

+ + +
+
+

Project 3 on Machine Learning, deadline December 15 (midnight), 2021

+
+ + +
+Data Analysis and Machine Learning FYS-STK3155/FYS4155 +
+ +
+Department of Physics, University of Oslo, Norway +
+
+
+

Nov 14, 2022

+
+
+ + +
+

Paths for project 3

+

Defining the data sets to analyze yourself

+ +

For project 3, you can propose own data sets that relate to your research interests or just use existing data sets from say

+
    +
  1. Kaggle
  2. +
  3. The University of California at Irvine (UCI) with its machine learning repository.
  4. +
  5. Or other sources.
  6. +
+

The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:

+
    +
  1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Adversarial Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as Principal Component Analysis and k-means Clustering.
  2. +
+

For Boosting, feel also free to write your own codes.

+ +
    +
  1. For project 3, you should feel free to use your own codes from projects 1 and 2, eventually write your own for SVMs and/or Decision trees/random forests/bagging/boosting' or use the available functionality of Scikit-Learn, Tensorflow, etc.
  2. +
  3. The estimates you used and tested in projects 1 and 2 should also be included, that is the \( R2 \)-score, MSE, confusion matrix, accuracy score, information gain, ROC and Cumulative gains curves and other, cross-validation and/or bootstrap if these are relevant.
  4. +
  5. Similarly, feel free to explore various activations functions in deep learning and various approachs to stochastic gradient descent approaches.
  6. +
  7. If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article?
  8. +
  9. A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.
  10. +
+

All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

+ +

We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.

+ +

This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 42 and/or the textbook by Yadav et al.

+ +

Note: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise.

+

The basic structure of your project

+ +

Here follows a set up on how to structure your report and analyze the data you have opted for.

+

Part a)

+ +

The first part deals with structuring and reading the data, much along the same lines as done in projects 1 and 2. Explain how the data are produced and place them in a proper context.

+

Part b)

+ +

You need to include at least two central algorithms, or as an alternative explore methods from decisions tree to bagging, random forests and boosting. Explain the basics of the methods you have chosen to work with. This would be your theory part.

+

Part c)

+ +

Then describe your algorithm and its implementation and tests you have performed.

+

Part d)

+ +

Then presents your results and findings, link with existing literature and more.

+

Part e)

+ +

Finally, here you should present a critical assessment of the methods you have studied and link your results with the existing literature.

+

Solving partial differential equations with neural networks

+ +

For this variant of project 3, we will assume that you have some +background in the solution of partial differential equations using +finite difference schemes. We will study the solution of the diffusion +equation in one dimension using a standard explicit scheme and neural +networks to solve the same equations. +

+ +

For the explicit scheme, you can study for example chapter 10 of the lecture notes in Computational Physics or alternative sources. For the solution of ordinary and partial differential equations using neural networks, the lectures by Kristine Baluka Hein and included in the lectures of week 42 at this course are highly recommended.

+ +

For the machine learning part you can use your own code from project 2 or the functionality of for example Tensorflow/Keras..

+

Part a), setting up the problem

+ +

The physical problem can be that of the temperature gradient in a rod of length \( L=1 \) at \( x=0 \) and \( x=1 \). +We are looking at a one-dimensional +problem +

+ +$$ +\begin{equation*} + \frac{\partial^2 u(x,t)}{\partial x^2} =\frac{\partial u(x,t)}{\partial t}, t> 0, x\in [0,L] +\end{equation*} +$$ + +

or

+ +$$ +\begin{equation*} +u_{xx} = u_t, +\end{equation*} +$$ + +

with initial conditions, i.e., the conditions at \( t=0 \),

+$$ +\begin{equation*} +u(x,0)= \sin{(\pi x)} \hspace{0.5cm} 0 < x < L, +\end{equation*} +$$ + +

with \( L=1 \) the length of the \( x \)-region of interest. The +boundary conditions are +

+ +$$ +\begin{equation*} +u(0,t)= 0 \hspace{0.5cm} t \ge 0, +\end{equation*} +$$ + +

and

+ +$$ +\begin{equation*} +u(L,t)= 0 \hspace{0.5cm} t \ge 0. +\end{equation*} +$$ + +

The function \( u(x,t) \) can be the temperature gradient of a rod. +As time increases, the velocity approaches a linear variation with \( x \). +

+ +

We will limit ourselves to the so-called explicit forward Euler algorithm with discretized versions of time given by a forward formula and a centered difference in space resulting in

+$$ +\begin{equation*} +u_t\approx \frac{u(x,t+\Delta t)-u(x,t)}{\Delta t}=\frac{u(x_i,t_j+\Delta t)-u(x_i,t_j)}{\Delta t} +\end{equation*} +$$ + +

and

+ +$$ +\begin{equation*} +u_{xx}\approx \frac{u(x+\Delta x,t)-2u(x,t)+u(x-\Delta x,t)}{\Delta x^2}, +\end{equation*} +$$ + +

or

+ +$$ +\begin{equation*} +u_{xx}\approx \frac{u(x_i+\Delta x,t_j)-2u(x_i,t_j)+u(x_i-\Delta x,t_j)}{\Delta x^2}. +\end{equation*} +$$ + +

Write down the algorithm and the equations you need to implement. +Find also the analytical solution to the problem. +

+

Part b)

+ +

Implement the explicit scheme algorithm and perform tests of the solution +for \( \Delta x=1/10 \), \( \Delta x=1/100 \) using \( \Delta t \) as dictated by the stability limit of the explicit scheme. The stability criterion for the explicit scheme requires that \( \Delta t/\Delta x^2 \leq 1/2 \). +

+ +

Study the solutions at two time points \( t_1 \) and \( t_2 \) where \( u(x,t_1) \) is smooth but still significantly curved +and \( u(x,t_2) \) is almost linear, close to the stationary state. +

+

Part c) Neural networks

+ +

Study now the lecture notes on solving ODEs and PDEs with neural +network and use either your own code from project 2 or the +functionality of tensorflow/keras to solve the same equation as in +part b). Discuss your results and compare them with the standard +explicit scheme. Include also the analytical solution and compare with +that. +

+

Part d) Solving eigenvalue problems

+ +

Follow the discussion in the work of Yi et al. in the article from +Computers and Mathematics with Applications 47, 1155 (2004), and +use your differential equation solver with neural networks, set up a +simple square, real and symmetric \( 6\times 6 \) matrix and find the +eigenvalues. Compare with the solution from numerical diagonalization with standard eigenvalue solvers from linear algebra. +

+

Part e)

+ +

Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods.

+

Additonal (optional) exercise, adding 30 more points to final score

+ +

This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like Scikit-Learn, Tensorflow or similar. +

+ +

Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets of algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). However, feel free to venture into a classification problem. +

+ +

You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. +

+ +

Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? +

+ +

Hint: when you use different methods, pay attention to how you represent (and understand) the complexity of the model. For example, when using decision trees you may represent the complexity of your model by the depth of the tree.

+

Introduction to numerical projects

+ +

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

+ + +

Format for electronic delivery of report and programs

+ +

The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report:

+ + +

Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report. +

+

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-2022, "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/2022/Project3/html/Project3.html b/doc/Projects/2022/Project3/html/Project3.html new file mode 100644 index 000000000..0ce8a7793 --- /dev/null +++ b/doc/Projects/2022/Project3/html/Project3.html @@ -0,0 +1,474 @@ + + + + + + + +Project 3 on Machine Learning, deadline December 15 (midnight), 2021 + + + + + + + + + + + + + + +
+

Project 3 on Machine Learning, deadline December 15 (midnight), 2021

+
+ + +
+Data Analysis and Machine Learning FYS-STK3155/FYS4155 +
+ +
+Department of Physics, University of Oslo, Norway +
+
+
+

Nov 14, 2022

+
+
+

Paths for project 3

+

Defining the data sets to analyze yourself

+ +

For project 3, you can propose own data sets that relate to your research interests or just use existing data sets from say

+
    +
  1. Kaggle
  2. +
  3. The University of California at Irvine (UCI) with its machine learning repository.
  4. +
  5. Or other sources.
  6. +
+

The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:

+
    +
  1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among linear regression (including Ridge and Lasso), Logistic Regression, Neural Networks, Convolution Neural Networks, Recurrent Neural Networks, Adversarial Neural Networks, Support Vector Machines and Decision Trees, Random Forests, Bagging and Boosting. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into convolutional neural networks or recurrent neural networks, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as Principal Component Analysis and k-means Clustering.
  2. +
+

For Boosting, feel also free to write your own codes.

+ +
    +
  1. For project 3, you should feel free to use your own codes from projects 1 and 2, eventually write your own for SVMs and/or Decision trees/random forests/bagging/boosting' or use the available functionality of Scikit-Learn, Tensorflow, etc.
  2. +
  3. The estimates you used and tested in projects 1 and 2 should also be included, that is the \( R2 \)-score, MSE, confusion matrix, accuracy score, information gain, ROC and Cumulative gains curves and other, cross-validation and/or bootstrap if these are relevant.
  4. +
  5. Similarly, feel free to explore various activations functions in deep learning and various approachs to stochastic gradient descent approaches.
  6. +
  7. If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article?
  8. +
  9. A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.
  10. +
+

All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..

+ +

We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.

+ +

This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides from week 42 and/or the textbook by Yadav et al.

+ +

Note: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise.

+

The basic structure of your project

+ +

Here follows a set up on how to structure your report and analyze the data you have opted for.

+

Part a)

+ +

The first part deals with structuring and reading the data, much along the same lines as done in projects 1 and 2. Explain how the data are produced and place them in a proper context.

+

Part b)

+ +

You need to include at least two central algorithms, or as an alternative explore methods from decisions tree to bagging, random forests and boosting. Explain the basics of the methods you have chosen to work with. This would be your theory part.

+

Part c)

+ +

Then describe your algorithm and its implementation and tests you have performed.

+

Part d)

+ +

Then presents your results and findings, link with existing literature and more.

+

Part e)

+ +

Finally, here you should present a critical assessment of the methods you have studied and link your results with the existing literature.

+

Solving partial differential equations with neural networks

+ +

For this variant of project 3, we will assume that you have some +background in the solution of partial differential equations using +finite difference schemes. We will study the solution of the diffusion +equation in one dimension using a standard explicit scheme and neural +networks to solve the same equations. +

+ +

For the explicit scheme, you can study for example chapter 10 of the lecture notes in Computational Physics or alternative sources. For the solution of ordinary and partial differential equations using neural networks, the lectures by Kristine Baluka Hein and included in the lectures of week 42 at this course are highly recommended.

+ +

For the machine learning part you can use your own code from project 2 or the functionality of for example Tensorflow/Keras..

+

Part a), setting up the problem

+ +

The physical problem can be that of the temperature gradient in a rod of length \( L=1 \) at \( x=0 \) and \( x=1 \). +We are looking at a one-dimensional +problem +

+ +$$ +\begin{equation*} + \frac{\partial^2 u(x,t)}{\partial x^2} =\frac{\partial u(x,t)}{\partial t}, t> 0, x\in [0,L] +\end{equation*} +$$ + +

or

+ +$$ +\begin{equation*} +u_{xx} = u_t, +\end{equation*} +$$ + +

with initial conditions, i.e., the conditions at \( t=0 \),

+$$ +\begin{equation*} +u(x,0)= \sin{(\pi x)} \hspace{0.5cm} 0 < x < L, +\end{equation*} +$$ + +

with \( L=1 \) the length of the \( x \)-region of interest. The +boundary conditions are +

+ +$$ +\begin{equation*} +u(0,t)= 0 \hspace{0.5cm} t \ge 0, +\end{equation*} +$$ + +

and

+ +$$ +\begin{equation*} +u(L,t)= 0 \hspace{0.5cm} t \ge 0. +\end{equation*} +$$ + +

The function \( u(x,t) \) can be the temperature gradient of a rod. +As time increases, the velocity approaches a linear variation with \( x \). +

+ +

We will limit ourselves to the so-called explicit forward Euler algorithm with discretized versions of time given by a forward formula and a centered difference in space resulting in

+$$ +\begin{equation*} +u_t\approx \frac{u(x,t+\Delta t)-u(x,t)}{\Delta t}=\frac{u(x_i,t_j+\Delta t)-u(x_i,t_j)}{\Delta t} +\end{equation*} +$$ + +

and

+ +$$ +\begin{equation*} +u_{xx}\approx \frac{u(x+\Delta x,t)-2u(x,t)+u(x-\Delta x,t)}{\Delta x^2}, +\end{equation*} +$$ + +

or

+ +$$ +\begin{equation*} +u_{xx}\approx \frac{u(x_i+\Delta x,t_j)-2u(x_i,t_j)+u(x_i-\Delta x,t_j)}{\Delta x^2}. +\end{equation*} +$$ + +

Write down the algorithm and the equations you need to implement. +Find also the analytical solution to the problem. +

+

Part b)

+ +

Implement the explicit scheme algorithm and perform tests of the solution +for \( \Delta x=1/10 \), \( \Delta x=1/100 \) using \( \Delta t \) as dictated by the stability limit of the explicit scheme. The stability criterion for the explicit scheme requires that \( \Delta t/\Delta x^2 \leq 1/2 \). +

+ +

Study the solutions at two time points \( t_1 \) and \( t_2 \) where \( u(x,t_1) \) is smooth but still significantly curved +and \( u(x,t_2) \) is almost linear, close to the stationary state. +

+

Part c) Neural networks

+ +

Study now the lecture notes on solving ODEs and PDEs with neural +network and use either your own code from project 2 or the +functionality of tensorflow/keras to solve the same equation as in +part b). Discuss your results and compare them with the standard +explicit scheme. Include also the analytical solution and compare with +that. +

+

Part d) Solving eigenvalue problems

+ +

Follow the discussion in the work of Yi et al. in the article from +Computers and Mathematics with Applications 47, 1155 (2004), and +use your differential equation solver with neural networks, set up a +simple square, real and symmetric \( 6\times 6 \) matrix and find the +eigenvalues. Compare with the solution from numerical diagonalization with standard eigenvalue solvers from linear algebra. +

+

Part e)

+ +

Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods.

+

Additonal (optional) exercise, adding 30 more points to final score

+ +

This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like Scikit-Learn, Tensorflow or similar. +

+ +

Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets of algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). However, feel free to venture into a classification problem. +

+ +

You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. +

+ +

Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? +

+ +

Hint: when you use different methods, pay attention to how you represent (and understand) the complexity of the model. For example, when using decision trees you may represent the complexity of your model by the depth of the tree.

+

Introduction to numerical projects

+ +

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

+ + +

Format for electronic delivery of report and programs

+ +

The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report:

+ + +

Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report. +

+

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-2022, "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/2022/Project3/ipynb/Project3.ipynb b/doc/Projects/2022/Project3/ipynb/Project3.ipynb new file mode 100644 index 000000000..996f643d5 --- /dev/null +++ b/doc/Projects/2022/Project3/ipynb/Project3.ipynb @@ -0,0 +1,567 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0c2e93c2", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "2dc0413d", + "metadata": { + "editable": true + }, + "source": [ + "# Project 3 on Machine Learning, deadline December 15 (midnight), 2021\n", + "**[Data Analysis and Machine Learning FYS-STK3155/FYS4155](http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html)**, Department of Physics, University of Oslo, Norway\n", + "\n", + "Date: **Nov 14, 2022**\n", + "\n", + "Copyright 1999-2022, [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" + ] + }, + { + "cell_type": "markdown", + "id": "92237bb9", + "metadata": { + "editable": true + }, + "source": [ + "# Paths for project 3" + ] + }, + { + "cell_type": "markdown", + "id": "9b6ca5fb", + "metadata": { + "editable": true + }, + "source": [ + "## Defining the data sets to analyze yourself\n", + "\n", + "For project 3, you can propose own data sets that relate to your research interests or just use existing data sets from say\n", + "1. [Kaggle](https://www.kaggle.com/datasets) \n", + "\n", + "2. The [University of California at Irvine (UCI) with its machine learning repository](https://archive.ics.uci.edu/ml/index.php).\n", + "\n", + "3. Or other sources.\n", + "\n", + "The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is:\n", + "1. Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among **linear regression (including Ridge and Lasso)**, **Logistic Regression**, **Neural Networks**, **Convolution Neural Networks**, **Recurrent Neural Networks**, **Adversarial Neural Networks**, **Support Vector Machines** and **Decision Trees, Random Forests, Bagging and Boosting**. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into **convolutional neural networks** or **recurrent neural networks**, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as **Principal Component Analysis** and **k-means Clustering**.\n", + "\n", + "For Boosting, feel also free to write your own codes.\n", + "\n", + "1. For project 3, you should feel free to use your own codes from projects 1 and 2, eventually write your own for SVMs and/or Decision trees/random forests/bagging/boosting' or use the available functionality of **Scikit-Learn**, **Tensorflow**, etc. \n", + "\n", + "2. The estimates you used and tested in projects 1 and 2 should also be included, that is the $R2$-score, **MSE**, confusion matrix, accuracy score, information gain, ROC and Cumulative gains curves and other, cross-validation and/or bootstrap if these are relevant.\n", + "\n", + "3. Similarly, feel free to explore various activations functions in deep learning and various approachs to stochastic gradient descent approaches.\n", + "\n", + "4. If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article? \n", + "\n", + "5. A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include.\n", + "\n", + "All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc..\n", + "\n", + "We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks.\n", + "\n", + "This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides [from week 42](https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html) and/or the textbook by [Yadav et al](https://www.springer.com/gp/book/9789401798150).\n", + "\n", + "**Note**: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise." + ] + }, + { + "cell_type": "markdown", + "id": "d3d26ef5", + "metadata": { + "editable": true + }, + "source": [ + "## The basic structure of your project\n", + "\n", + "Here follows a set up on how to structure your report and analyze the data you have opted for." + ] + }, + { + "cell_type": "markdown", + "id": "a03830d7", + "metadata": { + "editable": true + }, + "source": [ + "### Part a)\n", + "\n", + "The first part deals with structuring and reading the data, much along the same lines as done in projects 1 and 2. Explain how the data are produced and place them in a proper context." + ] + }, + { + "cell_type": "markdown", + "id": "3bf25ce5", + "metadata": { + "editable": true + }, + "source": [ + "### Part b)\n", + "\n", + "You need to include at least two central algorithms, or as an alternative explore methods from decisions tree to bagging, random forests and boosting. Explain the basics of the methods you have chosen to work with. This would be your theory part." + ] + }, + { + "cell_type": "markdown", + "id": "0ba7777e", + "metadata": { + "editable": true + }, + "source": [ + "### Part c)\n", + "\n", + "Then describe your algorithm and its implementation and tests you have performed." + ] + }, + { + "cell_type": "markdown", + "id": "129fff02", + "metadata": { + "editable": true + }, + "source": [ + "### Part d)\n", + "\n", + "Then presents your results and findings, link with existing literature and more." + ] + }, + { + "cell_type": "markdown", + "id": "da24bb44", + "metadata": { + "editable": true + }, + "source": [ + "### Part e)\n", + "\n", + "Finally, here you should present a critical assessment of the methods you have studied and link your results with the existing literature." + ] + }, + { + "cell_type": "markdown", + "id": "b4d8bd6f", + "metadata": { + "editable": true + }, + "source": [ + "## Solving partial differential equations with neural networks\n", + "\n", + "For this variant of project 3, we will assume that you have some\n", + "background in the solution of partial differential equations using\n", + "finite difference schemes. We will study the solution of the diffusion\n", + "equation in one dimension using a standard explicit scheme and neural\n", + "networks to solve the same equations.\n", + "\n", + "For the explicit scheme, you can study for example chapter 10 of the lecture notes in [Computational Physics](https://github.com/CompPhysics/ComputationalPhysics/blob/master/doc/Lectures/lectures2015.pdf) or alternative sources. For the solution of ordinary and partial differential equations using neural networks, the lectures by [Kristine Baluka Hein and included in the lectures of week 42](https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html) at this course are highly recommended.\n", + "\n", + "For the machine learning part you can use your own code from project 2 or the functionality of for example **Tensorflow/Keras**.." + ] + }, + { + "cell_type": "markdown", + "id": "9fb8b554", + "metadata": { + "editable": true + }, + "source": [ + "### Part a), setting up the problem\n", + "\n", + "The physical problem can be that of the temperature gradient in a rod of length $L=1$ at $x=0$ and $x=1$.\n", + "We are looking at a one-dimensional\n", + "problem" + ] + }, + { + "cell_type": "markdown", + "id": "9c1a12d5", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial^2 u(x,t)}{\\partial x^2} =\\frac{\\partial u(x,t)}{\\partial t}, t> 0, x\\in [0,L]\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "81df663e", + "metadata": { + "editable": true + }, + "source": [ + "or" + ] + }, + { + "cell_type": "markdown", + "id": "3d639530", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "u_{xx} = u_t,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "b4a3d10e", + "metadata": { + "editable": true + }, + "source": [ + "with initial conditions, i.e., the conditions at $t=0$," + ] + }, + { + "cell_type": "markdown", + "id": "e72fff12", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "u(x,0)= \\sin{(\\pi x)} \\hspace{0.5cm} 0 < x < L,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "1448ffdc", + "metadata": { + "editable": true + }, + "source": [ + "with $L=1$ the length of the $x$-region of interest. The \n", + "boundary conditions are" + ] + }, + { + "cell_type": "markdown", + "id": "4a10dc7f", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "u(0,t)= 0 \\hspace{0.5cm} t \\ge 0,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "665a89f8", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "bfb1865c", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "u(L,t)= 0 \\hspace{0.5cm} t \\ge 0.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "caac2a80", + "metadata": { + "editable": true + }, + "source": [ + "The function $u(x,t)$ can be the temperature gradient of a rod.\n", + "As time increases, the velocity approaches a linear variation with $x$. \n", + "\n", + "We will limit ourselves to the so-called explicit forward Euler algorithm with discretized versions of time given by a forward formula and a centered difference in space resulting in" + ] + }, + { + "cell_type": "markdown", + "id": "864c151d", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "u_t\\approx \\frac{u(x,t+\\Delta t)-u(x,t)}{\\Delta t}=\\frac{u(x_i,t_j+\\Delta t)-u(x_i,t_j)}{\\Delta t}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "0e7ee4f9", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "e40b01ba", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "u_{xx}\\approx \\frac{u(x+\\Delta x,t)-2u(x,t)+u(x-\\Delta x,t)}{\\Delta x^2},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "bde8abf8", + "metadata": { + "editable": true + }, + "source": [ + "or" + ] + }, + { + "cell_type": "markdown", + "id": "fbb28a61", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "u_{xx}\\approx \\frac{u(x_i+\\Delta x,t_j)-2u(x_i,t_j)+u(x_i-\\Delta x,t_j)}{\\Delta x^2}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "88fdfd23", + "metadata": { + "editable": true + }, + "source": [ + "Write down the algorithm and the equations you need to implement.\n", + "Find also the analytical solution to the problem." + ] + }, + { + "cell_type": "markdown", + "id": "ae0f5018", + "metadata": { + "editable": true + }, + "source": [ + "### Part b)\n", + "\n", + "Implement the explicit scheme algorithm and perform tests of the solution \n", + "for $\\Delta x=1/10$, $\\Delta x=1/100$ using $\\Delta t$ as dictated by the stability limit of the explicit scheme. The stability criterion for the explicit scheme requires that $\\Delta t/\\Delta x^2 \\leq 1/2$. \n", + "\n", + "Study the solutions at two time points $t_1$ and $t_2$ where $u(x,t_1)$ is smooth but still significantly curved\n", + "and $u(x,t_2)$ is almost linear, close to the stationary state." + ] + }, + { + "cell_type": "markdown", + "id": "64e90ef9", + "metadata": { + "editable": true + }, + "source": [ + "### Part c) Neural networks\n", + "\n", + "Study now the lecture notes on solving ODEs and PDEs with neural\n", + "network and use either your own code from project 2 or the\n", + "functionality of tensorflow/keras to solve the same equation as in\n", + "part b). Discuss your results and compare them with the standard\n", + "explicit scheme. Include also the analytical solution and compare with\n", + "that." + ] + }, + { + "cell_type": "markdown", + "id": "ea02a377", + "metadata": { + "editable": true + }, + "source": [ + "### Part d) Solving eigenvalue problems\n", + "\n", + "Follow the discussion in the work of Yi *et al.* in the article from\n", + "[Computers and Mathematics with Applications 47, 1155 (2004)](https://www.sciencedirect.com/science/article/pii/S0898122104901101), and\n", + "use your differential equation solver with neural networks, set up a\n", + "simple square, real and symmetric $6\\times 6$ matrix and find the\n", + "eigenvalues. Compare with the solution from numerical diagonalization with standard eigenvalue solvers from linear algebra." + ] + }, + { + "cell_type": "markdown", + "id": "57f27bd3", + "metadata": { + "editable": true + }, + "source": [ + "### Part e)\n", + "\n", + "Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods." + ] + }, + { + "cell_type": "markdown", + "id": "684f4cd8", + "metadata": { + "editable": true + }, + "source": [ + "## Additonal (optional) exercise, adding 30 more points to final score\n", + "\n", + "This exercise can be done independently of the other tasks. Here you\n", + "can also choose the data set you want to use. Furthermore, you can use\n", + "your codes from projects 1 and 2 as well as the codes here or simply use\n", + "libraries like **Scikit-Learn**, **Tensorflow** or similar.\n", + "\n", + "Your task is to perform an analysis of the bias-variance tradeoff\n", + "using at least three of the main sets of algorithms we have discussed in this\n", + "course. We will limit ourselves to a regression problem (fitting). However, feel free to venture into a classification problem.\n", + "\n", + "You\n", + "are free to choose between bootstrap for resampling (recommended) or\n", + "cross-validation in order to get the best possible estimates. The\n", + "methods you could study are Linear Regression (OLS, Ridge and Lasso),\n", + "deep learning (feed forward neural networks and/or recurrent neural\n", + "networks), Ensemble methods (decision trees, bagging, random forests\n", + "and boosting) and support vector machines.\n", + "\n", + "Study the bias-variance tradeoff for at least three of these sets of\n", + "algorithms for a data set of your choice as function of the complexity\n", + "of your model. Comment and discuss the results. Discuss the pros and\n", + "cons of the various methods. Are there some methods which provide both\n", + "low variance and low bias?\n", + "\n", + "**Hint**: when you use different methods, pay attention to how you represent (and understand) the complexity of the model. For example, when using decision trees you may represent the complexity of your model by the depth of the tree." + ] + }, + { + "cell_type": "markdown", + "id": "2a6962e8", + "metadata": { + "editable": true + }, + "source": [ + "## Introduction to numerical projects\n", + "\n", + "Here follows a brief recipe and recommendation on how to write a report for each\n", + "project.\n", + "\n", + " * Give a short description of the nature of the problem and the eventual numerical methods you have used.\n", + "\n", + " * 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.\n", + "\n", + " * Include the source code of your program. Comment your program properly.\n", + "\n", + " * If possible, try to find analytic solutions, or known limits in order to test your program when developing the code.\n", + "\n", + " * 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.\n", + "\n", + " * 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.\n", + "\n", + " * Try to give an interpretation of you results in your answers to the problems.\n", + "\n", + " * 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.\n", + "\n", + " * 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." + ] + }, + { + "cell_type": "markdown", + "id": "4c047e8f", + "metadata": { + "editable": true + }, + "source": [ + "## Format for electronic delivery of report and programs\n", + "\n", + "The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report:\n", + "\n", + " * Use Canvas to hand in your projects, log in at with your normal UiO username and password.\n", + "\n", + " * Upload **only** the report file or the link to your GitHub/GitLab or similar typo of repos! For the source code file(s) you have developed please provide us with your link to your GitHub/GitLab or similar domain. The report file should include all of your discussions and a list of the codes you have developed. Do not include library files which are available at the course homepage, unless you have made specific changes to them.\n", + "\n", + " * In your GitHub/GitLab or similar repository, please include a folder which contains selected results. These can be in the form of output from your code for a selected set of runs and input parameters.\n", + "\n", + "Finally, \n", + "we encourage you to collaborate. Optimal working groups consist of \n", + "2-3 students. You can then hand in a common report." + ] + }, + { + "cell_type": "markdown", + "id": "d7750944", + "metadata": { + "editable": true + }, + "source": [ + "## Software and needed installations\n", + "\n", + "If you have Python installed (we recommend Python3) and you feel pretty familiar with installing different packages, \n", + "we recommend that you install the following Python packages via **pip** as\n", + "1. pip install numpy scipy matplotlib ipython scikit-learn tensorflow sympy pandas pillow\n", + "\n", + "For Python3, replace **pip** with **pip3**.\n", + "\n", + "See below for a discussion of **tensorflow** and **scikit-learn**. \n", + "\n", + "For OSX users we recommend also, after having installed Xcode, to install **brew**. Brew allows \n", + "for a seamless installation of additional software via for example\n", + "1. brew install python3\n", + "\n", + "For Linux users, with its variety of distributions like for example the widely popular Ubuntu distribution\n", + "you can use **pip** as well and simply install Python as \n", + "1. sudo apt-get install python3 (or python for python2.7)\n", + "\n", + "etc etc. \n", + "\n", + "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\n", + "1. [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**\n", + "\n", + "2. [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.\n", + "\n", + "Popular software packages written in Python for ML are\n", + "\n", + "* [Scikit-learn](http://scikit-learn.org/stable/), \n", + "\n", + "* [Tensorflow](https://www.tensorflow.org/),\n", + "\n", + "* [PyTorch](http://pytorch.org/) and \n", + "\n", + "* [Keras](https://keras.io/).\n", + "\n", + "These are all freely available at their respective GitHub sites. They \n", + "encompass communities of developers in the thousands or more. And the number\n", + "of code developers and contributors keeps increasing." + ] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/doc/Projects/2022/Project3/ipynb/ipynb-Project3-src.tar.gz b/doc/Projects/2022/Project3/ipynb/ipynb-Project3-src.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f3a85de08ae26ff661515e38477a0a41ec35ee9 GIT binary patch literal 193 zcmV;y06za8iwFSdbaG<=1MSbv3W7io2XN0m#XNzm?yBb?4;=!DUSQ2N*K)^pSID=| z52#boMIzYW<2uT=&DbpmLlSE5B3&RvbMk!-yL}LOZq%n;= zAnTp<(i_Y5cuHG0LK&gn&5dJK^ 0, x\in [0,L] +\end{equation*} +or + +\begin{equation*} +u_{xx} = u_t, +\end{equation*} +with initial conditions, i.e., the conditions at $t=0$, +\begin{equation*} +u(x,0)= \sin{(\pi x)} \hspace{0.5cm} 0 < x < L, +\end{equation*} +with $L=1$ the length of the $x$-region of interest. The +boundary conditions are + +\begin{equation*} +u(0,t)= 0 \hspace{0.5cm} t \ge 0, +\end{equation*} +and + +\begin{equation*} +u(L,t)= 0 \hspace{0.5cm} t \ge 0. +\end{equation*} +The function $u(x,t)$ can be the temperature gradient of a rod. +As time increases, the velocity approaches a linear variation with $x$. + +We will limit ourselves to the so-called explicit forward Euler algorithm with discretized versions of time given by a forward formula and a centered difference in space resulting in +\begin{equation*} +u_t\approx \frac{u(x,t+\Delta t)-u(x,t)}{\Delta t}=\frac{u(x_i,t_j+\Delta t)-u(x_i,t_j)}{\Delta t} +\end{equation*} +and + +\begin{equation*} +u_{xx}\approx \frac{u(x+\Delta x,t)-2u(x,t)+u(x-\Delta x,t)}{\Delta x^2}, +\end{equation*} +or + +\begin{equation*} +u_{xx}\approx \frac{u(x_i+\Delta x,t_j)-2u(x_i,t_j)+u(x_i-\Delta x,t_j)}{\Delta x^2}. +\end{equation*} + +Write down the algorithm and the equations you need to implement. +Find also the analytical solution to the problem. + +\paragraph{Part b).} +Implement the explicit scheme algorithm and perform tests of the solution +for $\Delta x=1/10$, $\Delta x=1/100$ using $\Delta t$ as dictated by the stability limit of the explicit scheme. The stability criterion for the explicit scheme requires that $\Delta t/\Delta x^2 \leq 1/2$. + +Study the solutions at two time points $t_1$ and $t_2$ where $u(x,t_1)$ is smooth but still significantly curved +and $u(x,t_2)$ is almost linear, close to the stationary state. + +\paragraph{Part c) Neural networks.} +Study now the lecture notes on solving ODEs and PDEs with neural +network and use either your own code from project 2 or the +functionality of tensorflow/keras to solve the same equation as in +part b). Discuss your results and compare them with the standard +explicit scheme. Include also the analytical solution and compare with +that. + +\paragraph{Part d) Solving eigenvalue problems.} +Follow the discussion in the work of Yi \emph{et al.} in the article from +\href{{https://www.sciencedirect.com/science/article/pii/S0898122104901101}}{Computers and Mathematics with Applications 47, 1155 (2004)}, and +use your differential equation solver with neural networks, set up a +simple square, real and symmetric $6\times 6$ matrix and find the +eigenvalues. Compare with the solution from numerical diagonalization with standard eigenvalue solvers from linear algebra. + +\paragraph{Part e).} +Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods. + +\subsection{Additonal (optional) exercise, adding 30 more points to final score} + +This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like \textbf{Scikit-Learn}, \textbf{Tensorflow} or similar. + +Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets of algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). However, feel free to venture into a classification problem. + +You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. + +Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? + +\textbf{Hint}: when you use different methods, pay attention to how you represent (and understand) the complexity of the model. For example, when using decision trees you may represent the complexity of your model by the depth of the tree. + +\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{Format for electronic delivery of report and programs} + +The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report: + +\begin{itemize} + \item Use Canvas to hand in your projects, log in at \href{{https://www.uio.no/english/services/it/education/canvas/}}{\nolinkurl{https://www.uio.no/english/services/it/education/canvas/}} with your normal UiO username and password. + + \item Upload \textbf{only} the report file or the link to your GitHub/GitLab or similar typo of repos! For the source code file(s) you have developed please provide us with your link to your GitHub/GitLab or similar domain. The report file should include all of your discussions and a list of the codes you have developed. Do not include library files which are available at the course homepage, unless you have made specific changes to them. + + \item In your GitHub/GitLab or similar repository, please include a folder which contains selected results. These can be in the form of output from your code for a selected set of runs and input parameters. +\end{itemize} + +\noindent +Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report. + +\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/2022/Project3/pdf/Project3.pdf b/doc/Projects/2022/Project3/pdf/Project3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..408fa87378589bc758352b8220eb777b44133169 GIT binary patch literal 247226 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%0A~Lg`EECzpH<$4FY(ad1h7e4& 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

2IXh1R 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 literal 0 HcmV?d00001 diff --git a/doc/Projects/2022/Project3/pdf/Project3.tex b/doc/Projects/2022/Project3/pdf/Project3.tex new file mode 100644 index 000000000..f29685e09 --- /dev/null +++ b/doc/Projects/2022/Project3/pdf/Project3.tex @@ -0,0 +1,409 @@ +%% +%% Automatically generated file from DocOnce source +%% (https://github.com/doconce/doconce/) +%% doconce format latex Project3.do.txt --print_latex_style=trac --latex_admon=paragraph +%% + + +%-------------------- begin preamble ---------------------- + +\documentclass[% +oneside, % oneside: electronic viewing, twoside: printing +final, % draft: marks overfull hboxes, figures with paths +10pt]{article} + +\listfiles % print all files needed to compile this document + +\usepackage{relsize,makeidx,color,setspace,amsmath,amsfonts,amssymb} +\usepackage[table]{xcolor} +\usepackage{bm,ltablex,microtype} + +\usepackage[pdftex]{graphicx} + +\usepackage[T1]{fontenc} +%\usepackage[latin1]{inputenc} +\usepackage{ucs} +\usepackage[utf8x]{inputenc} + +\usepackage{lmodern} % Latin Modern fonts derived from Computer Modern + +% Hyperlinks in PDF: +\definecolor{linkcolor}{rgb}{0,0,0.4} +\usepackage{hyperref} +\hypersetup{ + breaklinks=true, + colorlinks=true, + linkcolor=linkcolor, + urlcolor=linkcolor, + citecolor=black, + filecolor=black, + %filecolor=blue, + pdfmenubar=true, + pdftoolbar=true, + bookmarksdepth=3 % Uncomment (and tweak) for PDF bookmarks with more levels than the TOC + } +%\hyperbaseurl{} % hyperlinks are relative to this root + +\setcounter{tocdepth}{2} % levels in table of contents + +% --- fancyhdr package for fancy headers --- +\usepackage{fancyhdr} +\fancyhf{} % sets both header and footer to nothing +\renewcommand{\headrulewidth}{0pt} +\fancyfoot[LE,RO]{\thepage} +% Ensure copyright on titlepage (article style) and chapter pages (book style) +\fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[C]{{\footnotesize \copyright\ 1999-2022, "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}} +% \renewcommand{\footrulewidth}{0mm} + \renewcommand{\headrulewidth}{0mm} +} +% Ensure copyright on titlepages with \thispagestyle{empty} +\fancypagestyle{empty}{ + \fancyhf{} + \fancyfoot[C]{{\footnotesize \copyright\ 1999-2022, "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}} + \renewcommand{\footrulewidth}{0mm} + \renewcommand{\headrulewidth}{0mm} +} + +\pagestyle{fancy} + + +% prevent orhpans and widows +\clubpenalty = 10000 +\widowpenalty = 10000 + +% --- end of standard preamble for documents --- + + +% insert custom LaTeX commands... + +\raggedbottom +\makeindex +\usepackage[totoc]{idxlayout} % for index in the toc +\usepackage[nottoc]{tocbibind} % for references/bibliography in the toc + +%-------------------- end preamble ---------------------- + +\begin{document} + +% matching end for #ifdef PREAMBLE + +\newcommand{\exercisesection}[1]{\subsection*{#1}} + + +% ------------------- main content ---------------------- + + + +% ----------------- title ------------------------- + +\thispagestyle{empty} + +\begin{center} +{\LARGE\bf +\begin{spacing}{1.25} +Project 3 on Machine Learning, deadline December 15 (midnight), 2021 +\end{spacing} +} +\end{center} + +% ----------------- author(s) ------------------------- + +\begin{center} +{\bf \href{{http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html}}{Data Analysis and Machine Learning FYS-STK3155/FYS4155}} +\end{center} + + \begin{center} +% List of all institutions: +\centerline{{\small Department of Physics, University of Oslo, Norway}} +\end{center} + +% ----------------- end author(s) ------------------------- + +% --- begin date --- +\begin{center} +Nov 14, 2022 +\end{center} +% --- end date --- + +\vspace{1cm} + + +\section*{Paths for project 3} + +\subsection*{Defining the data sets to analyze yourself} + +For project 3, you can propose own data sets that relate to your research interests or just use existing data sets from say +\begin{enumerate} +\item \href{{https://www.kaggle.com/datasets}}{Kaggle} + +\item The \href{{https://archive.ics.uci.edu/ml/index.php}}{University of California at Irvine (UCI) with its machine learning repository}. + +\item Or other sources. +\end{enumerate} + +\noindent +The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is: +\begin{enumerate} +\item Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among \textbf{linear regression (including Ridge and Lasso)}, \textbf{Logistic Regression}, \textbf{Neural Networks}, \textbf{Convolution Neural Networks}, \textbf{Recurrent Neural Networks}, \textbf{Adversarial Neural Networks}, \textbf{Support Vector Machines} and \textbf{Decision Trees, Random Forests, Bagging and Boosting}. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into \textbf{convolutional neural networks} or \textbf{recurrent neural networks}, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as \textbf{Principal Component Analysis} and \textbf{k-means Clustering}. +\end{enumerate} + +\noindent +For Boosting, feel also free to write your own codes. + +\begin{enumerate} +\item For project 3, you should feel free to use your own codes from projects 1 and 2, eventually write your own for SVMs and/or Decision trees/random forests/bagging/boosting' or use the available functionality of \textbf{Scikit-Learn}, \textbf{Tensorflow}, etc. + +\item The estimates you used and tested in projects 1 and 2 should also be included, that is the $R2$-score, \textbf{MSE}, confusion matrix, accuracy score, information gain, ROC and Cumulative gains curves and other, cross-validation and/or bootstrap if these are relevant. + +\item Similarly, feel free to explore various activations functions in deep learning and various approachs to stochastic gradient descent approaches. + +\item If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article? + +\item A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include. +\end{enumerate} + +\noindent +All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc.. + +We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks. + +This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides \href{{https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html}}{from week 42} and/or the textbook by \href{{https://www.springer.com/gp/book/9789401798150}}{Yadav et al}. + +\textbf{Note}: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise. + +\subsection*{The basic structure of your project} + +Here follows a set up on how to structure your report and analyze the data you have opted for. + +\paragraph{Part a).} +The first part deals with structuring and reading the data, much along the same lines as done in projects 1 and 2. Explain how the data are produced and place them in a proper context. + +\paragraph{Part b).} +You need to include at least two central algorithms, or as an alternative explore methods from decisions tree to bagging, random forests and boosting. Explain the basics of the methods you have chosen to work with. This would be your theory part. + +\paragraph{Part c).} +Then describe your algorithm and its implementation and tests you have performed. + +\paragraph{Part d).} +Then presents your results and findings, link with existing literature and more. + +\paragraph{Part e).} +Finally, here you should present a critical assessment of the methods you have studied and link your results with the existing literature. + +\subsection*{Solving partial differential equations with neural networks} + +For this variant of project 3, we will assume that you have some +background in the solution of partial differential equations using +finite difference schemes. We will study the solution of the diffusion +equation in one dimension using a standard explicit scheme and neural +networks to solve the same equations. + +For the explicit scheme, you can study for example chapter 10 of the lecture notes in \href{{https://github.com/CompPhysics/ComputationalPhysics/blob/master/doc/Lectures/lectures2015.pdf}}{Computational Physics} or alternative sources. For the solution of ordinary and partial differential equations using neural networks, the lectures by \href{{https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html}}{Kristine Baluka Hein and included in the lectures of week 42} at this course are highly recommended. + +For the machine learning part you can use your own code from project 2 or the functionality of for example \textbf{Tensorflow/Keras}.. + +\paragraph{Part a), setting up the problem.} +The physical problem can be that of the temperature gradient in a rod of length $L=1$ at $x=0$ and $x=1$. +We are looking at a one-dimensional +problem + +\begin{equation*} + \frac{\partial^2 u(x,t)}{\partial x^2} =\frac{\partial u(x,t)}{\partial t}, t> 0, x\in [0,L] +\end{equation*} +or + +\begin{equation*} +u_{xx} = u_t, +\end{equation*} +with initial conditions, i.e., the conditions at $t=0$, +\begin{equation*} +u(x,0)= \sin{(\pi x)} \hspace{0.5cm} 0 < x < L, +\end{equation*} +with $L=1$ the length of the $x$-region of interest. The +boundary conditions are + +\begin{equation*} +u(0,t)= 0 \hspace{0.5cm} t \ge 0, +\end{equation*} +and + +\begin{equation*} +u(L,t)= 0 \hspace{0.5cm} t \ge 0. +\end{equation*} +The function $u(x,t)$ can be the temperature gradient of a rod. +As time increases, the velocity approaches a linear variation with $x$. + +We will limit ourselves to the so-called explicit forward Euler algorithm with discretized versions of time given by a forward formula and a centered difference in space resulting in +\begin{equation*} +u_t\approx \frac{u(x,t+\Delta t)-u(x,t)}{\Delta t}=\frac{u(x_i,t_j+\Delta t)-u(x_i,t_j)}{\Delta t} +\end{equation*} +and + +\begin{equation*} +u_{xx}\approx \frac{u(x+\Delta x,t)-2u(x,t)+u(x-\Delta x,t)}{\Delta x^2}, +\end{equation*} +or + +\begin{equation*} +u_{xx}\approx \frac{u(x_i+\Delta x,t_j)-2u(x_i,t_j)+u(x_i-\Delta x,t_j)}{\Delta x^2}. +\end{equation*} + +Write down the algorithm and the equations you need to implement. +Find also the analytical solution to the problem. + +\paragraph{Part b).} +Implement the explicit scheme algorithm and perform tests of the solution +for $\Delta x=1/10$, $\Delta x=1/100$ using $\Delta t$ as dictated by the stability limit of the explicit scheme. The stability criterion for the explicit scheme requires that $\Delta t/\Delta x^2 \leq 1/2$. + +Study the solutions at two time points $t_1$ and $t_2$ where $u(x,t_1)$ is smooth but still significantly curved +and $u(x,t_2)$ is almost linear, close to the stationary state. + +\paragraph{Part c) Neural networks.} +Study now the lecture notes on solving ODEs and PDEs with neural +network and use either your own code from project 2 or the +functionality of tensorflow/keras to solve the same equation as in +part b). Discuss your results and compare them with the standard +explicit scheme. Include also the analytical solution and compare with +that. + +\paragraph{Part d) Solving eigenvalue problems.} +Follow the discussion in the work of Yi \emph{et al.} in the article from +\href{{https://www.sciencedirect.com/science/article/pii/S0898122104901101}}{Computers and Mathematics with Applications 47, 1155 (2004)}, and +use your differential equation solver with neural networks, set up a +simple square, real and symmetric $6\times 6$ matrix and find the +eigenvalues. Compare with the solution from numerical diagonalization with standard eigenvalue solvers from linear algebra. + +\paragraph{Part e).} +Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods. + +\subsection*{Additonal (optional) exercise, adding 30 more points to final score} + +This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like \textbf{Scikit-Learn}, \textbf{Tensorflow} or similar. + +Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets of algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). However, feel free to venture into a classification problem. + +You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. + +Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? + +\textbf{Hint}: when you use different methods, pay attention to how you represent (and understand) the complexity of the model. For example, when using decision trees you may represent the complexity of your model by the depth of the tree. + +\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*{Format for electronic delivery of report and programs} + +The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report: + +\begin{itemize} + \item Use Canvas to hand in your projects, log in at \href{{https://www.uio.no/english/services/it/education/canvas/}}{\nolinkurl{https://www.uio.no/english/services/it/education/canvas/}} with your normal UiO username and password. + + \item Upload \textbf{only} the report file or the link to your GitHub/GitLab or similar typo of repos! For the source code file(s) you have developed please provide us with your link to your GitHub/GitLab or similar domain. The report file should include all of your discussions and a list of the codes you have developed. Do not include library files which are available at the course homepage, unless you have made specific changes to them. + + \item In your GitHub/GitLab or similar repository, please include a folder which contains selected results. These can be in the form of output from your code for a selected set of runs and input parameters. +\end{itemize} + +\noindent +Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report. + +\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/2022/Project3/Project3.do.txt b/doc/src/Projects/2022/Project3/Project3.do.txt new file mode 100644 index 000000000..03ef970eb --- /dev/null +++ b/doc/src/Projects/2022/Project3/Project3.do.txt @@ -0,0 +1,283 @@ +TITLE: Project 3 on Machine Learning, deadline December 15 (midnight), 2021 +AUTHOR: "Data Analysis and Machine Learning FYS-STK3155/FYS4155":"http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html" {copyright, 1999-present|CC BY-NC} at Department of Physics, University of Oslo, Norway +DATE: today + + +======= Paths for project 3 ======= + +===== Defining the data sets to analyze yourself ===== + +For project 3, you can propose own data sets that relate to your research interests or just use existing data sets from say +o "Kaggle":"https://www.kaggle.com/datasets" +o The "University of California at Irvine (UCI) with its machine learning repository":"https://archive.ics.uci.edu/ml/index.php". +o Or other sources. + +The approach to the analysis of these new data sets should follow to a large extent what you did in projects 1 and 2. That is: +o Whether you end up with a regression or a classification problem, you should employ at least two of the methods we have discussed among _linear regression (including Ridge and Lasso)_, _Logistic Regression_, _Neural Networks_, _Convolution Neural Networks_, _Recurrent Neural Networks_, _Adversarial Neural Networks_, _Support Vector Machines_ and _Decision Trees, Random Forests, Bagging and Boosting_. You could for example explore all of the approaches from decision trees, via bagging and voting classifiers, to random forests, boosting and finally XGboost. If you wish to venture into _convolutional neural networks_ or _recurrent neural networks_, or extensions of neural networkds, feel free to do so. You can also study unsupervised methods, although we in this course have mainly paid attendtion to supervised learning. The methods we have explored as _Principal Component Analysis_ and _k-means Clustering_. + +For Boosting, feel also free to write your own codes. + +o For project 3, you should feel free to use your own codes from projects 1 and 2, eventually write your own for SVMs and/or Decision trees/random forests/bagging/boosting' or use the available functionality of _Scikit-Learn_, _Tensorflow_, etc. + +o The estimates you used and tested in projects 1 and 2 should also be included, that is the $R2$-score, _MSE_, confusion matrix, accuracy score, information gain, ROC and Cumulative gains curves and other, cross-validation and/or bootstrap if these are relevant. + +o Similarly, feel free to explore various activations functions in deep learning and various approachs to stochastic gradient descent approaches. + +o If possible, you should link the data sets with exisiting research and analyses thereof. Scientific articles which have used Machine Learning algorithms to analyze the data are highly welcome. Perhaps you can improve previous analyses and even publish a new article? + +o A critical assessment of the methods with ditto perspectives and recommendations is also something you need to include. + +All in all, the report should follow the same pattern as the two previous ones, with abstract, introduction, methods, code, results, conclusions etc.. + +We propose also an alternative to the above. This is a project on using machine learning methods (neural networks mainly) to the solution of ordinary differential equations and partial differential equations, with a final twist on how to diagonalize a symmetric matrix with neural networks. + +This is a field with a large interest recently, spanning from studies of turbulence in fluid mechanics and meteorology to the solution of quantum mechanical systems. As reading background you can use the slides "from week 42":"https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html" and/or the textbook by "Yadav et al":"https://www.springer.com/gp/book/9789401798150". + + +_Note_: Project 3 has an additional exercise which can give you an additional score of 30 (thirty) points. These are added to the total score from all projects. See below for the additional exercise. + +===== The basic structure of your project ===== + +Here follows a set up on how to structure your report and analyze the data you have opted for. + +=== Part a) === + +The first part deals with structuring and reading the data, much along the same lines as done in projects 1 and 2. Explain how the data are produced and place them in a proper context. + +=== Part b) === + +You need to include at least two central algorithms, or as an alternative explore methods from decisions tree to bagging, random forests and boosting. Explain the basics of the methods you have chosen to work with. This would be your theory part. + + +=== Part c) === + +Then describe your algorithm and its implementation and tests you have performed. + +=== Part d) === + +Then presents your results and findings, link with existing literature and more. + +=== Part e) === + +Finally, here you should present a critical assessment of the methods you have studied and link your results with the existing literature. + +===== Solving partial differential equations with neural networks ===== + +For this variant of project 3, we will assume that you have some +background in the solution of partial differential equations using +finite difference schemes. We will study the solution of the diffusion +equation in one dimension using a standard explicit scheme and neural +networks to solve the same equations. + +For the explicit scheme, you can study for example chapter 10 of the lecture notes in "Computational Physics":"https://github.com/CompPhysics/ComputationalPhysics/blob/master/doc/Lectures/lectures2015.pdf" or alternative sources. For the solution of ordinary and partial differential equations using neural networks, the lectures by "Kristine Baluka Hein and included in the lectures of week 42":"https://compphysics.github.io/MachineLearning/doc/pub/week42/html/week42.html" at this course are highly recommended. + +For the machine learning part you can use your own code from project 2 or the functionality of for example _Tensorflow/Keras_.. + +=== Part a), setting up the problem === + +The physical problem can be that of the temperature gradient in a rod of length $L=1$ at $x=0$ and $x=1$. +We are looking at a one-dimensional +problem + +!bt +\begin{equation*} + \frac{\partial^2 u(x,t)}{\partial x^2} =\frac{\partial u(x,t)}{\partial t}, t> 0, x\in [0,L] +\end{equation*} +!et +or + +!bt +\begin{equation*} +u_{xx} = u_t, +\end{equation*} +!et +with initial conditions, i.e., the conditions at $t=0$, +!bt +\begin{equation*} +u(x,0)= \sin{(\pi x)} \hspace{0.5cm} 0 < x < L, +\end{equation*} +!et +with $L=1$ the length of the $x$-region of interest. The +boundary conditions are + +!bt +\begin{equation*} +u(0,t)= 0 \hspace{0.5cm} t \ge 0, +\end{equation*} +!et +and + +!bt +\begin{equation*} +u(L,t)= 0 \hspace{0.5cm} t \ge 0. +\end{equation*} +!et +The function $u(x,t)$ can be the temperature gradient of a rod. +As time increases, the velocity approaches a linear variation with $x$. + +We will limit ourselves to the so-called explicit forward Euler algorithm with discretized versions of time given by a forward formula and a centered difference in space resulting in +!bt +\begin{equation*} +u_t\approx \frac{u(x,t+\Delta t)-u(x,t)}{\Delta t}=\frac{u(x_i,t_j+\Delta t)-u(x_i,t_j)}{\Delta t} +\end{equation*} +!et +and + +!bt +\begin{equation*} +u_{xx}\approx \frac{u(x+\Delta x,t)-2u(x,t)+u(x-\Delta x,t)}{\Delta x^2}, +\end{equation*} +!et +or + +!bt +\begin{equation*} +u_{xx}\approx \frac{u(x_i+\Delta x,t_j)-2u(x_i,t_j)+u(x_i-\Delta x,t_j)}{\Delta x^2}. +\end{equation*} +!et + +Write down the algorithm and the equations you need to implement. +Find also the analytical solution to the problem. + +=== Part b) === + +Implement the explicit scheme algorithm and perform tests of the solution +for $\Delta x=1/10$, $\Delta x=1/100$ using $\Delta t$ as dictated by the stability limit of the explicit scheme. The stability criterion for the explicit scheme requires that $\Delta t/\Delta x^2 \leq 1/2$. + +Study the solutions at two time points $t_1$ and $t_2$ where $u(x,t_1)$ is smooth but still significantly curved +and $u(x,t_2)$ is almost linear, close to the stationary state. + + +=== Part c) Neural networks === + +Study now the lecture notes on solving ODEs and PDEs with neural +network and use either your own code from project 2 or the +functionality of tensorflow/keras to solve the same equation as in +part b). Discuss your results and compare them with the standard +explicit scheme. Include also the analytical solution and compare with +that. + + +=== Part d) Solving eigenvalue problems === + +Follow the discussion in the work of Yi *et al.* in the article from +"Computers and Mathematics with Applications 47, 1155 (2004)":"https://www.sciencedirect.com/science/article/pii/S0898122104901101", and +use your differential equation solver with neural networks, set up a +simple square, real and symmetric $6\times 6$ matrix and find the +eigenvalues. Compare with the solution from numerical diagonalization with standard eigenvalue solvers from linear algebra. + +=== Part e) === + +Finally, present a critical assessment of the methods you have studied and discuss the potential for the solving differential equations and eigenvalue problems with machine learning methods. + + +===== Additonal (optional) exercise, adding 30 more points to final score ===== + +This exercise can be done independently of the other tasks. Here you +can also choose the data set you want to use. Furthermore, you can use +your codes from projects 1 and 2 as well as the codes here or simply use +libraries like _Scikit-Learn_, _Tensorflow_ or similar. + +Your task is to perform an analysis of the bias-variance tradeoff +using at least three of the main sets of algorithms we have discussed in this +course. We will limit ourselves to a regression problem (fitting). However, feel free to venture into a classification problem. + +You +are free to choose between bootstrap for resampling (recommended) or +cross-validation in order to get the best possible estimates. The +methods you could study are Linear Regression (OLS, Ridge and Lasso), +deep learning (feed forward neural networks and/or recurrent neural +networks), Ensemble methods (decision trees, bagging, random forests +and boosting) and support vector machines. + +Study the bias-variance tradeoff for at least three of these sets of +algorithms for a data set of your choice as function of the complexity +of your model. Comment and discuss the results. Discuss the pros and +cons of the various methods. Are there some methods which provide both +low variance and low bias? + +_Hint_: when you use different methods, pay attention to how you represent (and understand) the complexity of the model. For example, when using decision trees you may represent the complexity of your model by the depth of the tree. + + + + +===== Introduction to numerical projects ===== + +Here follows a brief recipe and recommendation on how to write a report for each +project. + + * Give a short description of the nature of the problem and the eventual numerical methods you have used. + + * 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. + + * Include the source code of your program. Comment your program properly. + + * If possible, try to find analytic solutions, or known limits in order to test your program when developing the code. + + * 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. + + * 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. + + * Try to give an interpretation of you results in your answers to the problems. + + * 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. + + * 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. + + + + + + +===== Format for electronic delivery of report and programs ===== + +The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report: + + * Use Canvas to hand in your projects, log in at URL:"https://www.uio.no/english/services/it/education/canvas/" with your normal UiO username and password. + + * Upload _only_ the report file or the link to your GitHub/GitLab or similar typo of repos! For the source code file(s) you have developed please provide us with your link to your GitHub/GitLab or similar domain. The report file should include all of your discussions and a list of the codes you have developed. Do not include library files which are available at the course homepage, unless you have made specific changes to them. + + * In your GitHub/GitLab or similar repository, please include a folder which contains selected results. These can be in the form of output from your code for a selected set of runs and input parameters. + + +Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report. + + + +===== 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. + + + + diff --git a/doc/src/Projects/2022/Project3/clean.sh b/doc/src/Projects/2022/Project3/clean.sh new file mode 100755 index 000000000..2e5da2c72 --- /dev/null +++ b/doc/src/Projects/2022/Project3/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +doconce clean +rm -rf *.pdf *.tex ipynb*.tar.gz *.html ._*.html *~ reveal.js Trash README.txt diff --git a/doc/src/Projects/2022/Project3/make.sh b/doc/src/Projects/2022/Project3/make.sh new file mode 100755 index 000000000..19fc2f11f --- /dev/null +++ b/doc/src/Projects/2022/Project3/make.sh @@ -0,0 +1,87 @@ +#!/bin/sh +set -x + +function system { + "$@" + if [ $? -ne 0 ]; then + echo "make.sh: unsuccessful command $@" + echo "abort!" + exit 1 + fi +} + +if [ $# -eq 0 ]; then +echo 'bash make.sh slides1|slides2' +exit 1 +fi + +name=$1 +rm -f *.tar.gz + +opt="--encoding=utf-8" +opt= + +rm -f *.aux + + + +# Plain HTML documents +html=${name} +system doconce format html $name --pygments_html_style=default --html_style=bloodish --html_links_in_new_window --html_output=$html $opt +system doconce split_html $html.html --method=space10 + +# Bootstrap style +html=${name}-bs +system doconce format html $name --html_style=bootstrap --pygments_html_style=default --html_admon=bootstrap_panel --html_output=$html $opt +system doconce split_html $html.html --method=split --pagination --nav_button=bottom + +# IPython notebook +system doconce format ipynb $name $opt + + +# Ordinary plain LaTeX document +system doconce format pdflatex $name --print_latex_style=trac --latex_admon=paragraph $opt +system doconce ptex2tex $name envir=verbatim +# Add special packages +doconce subst "% Add user's preamble" "\g<1>\n\\usepackage{simplewick}" $name.tex +doconce replace 'section{' 'section*{' $name.tex +pdflatex -shell-escape $name +pdflatex -shell-escape $name +mv -f $name.pdf ${name}.pdf +cp $name.tex ${name}.tex + +# Publish +dest=../../../../Projects/2022 +if [ ! -d $dest/$name ]; then +mkdir $dest/$name +mkdir $dest/$name/pdf +mkdir $dest/$name/html +mkdir $dest/$name/ipynb +fi +cp ${name}*.tex $dest/$name/pdf +cp ${name}*.pdf $dest/$name/pdf +cp -r ${name}*.html ._${name}*.html $dest/$name/html + +# Figures: cannot just copy link, need to physically copy the files +if [ -d fig-${name} ]; then +if [ ! -d $dest/$name/html/fig-$name ]; then +mkdir $dest/$name/html/fig-$name +fi +cp -r fig-${name}/* $dest/$name/html/fig-$name +fi + +cp ${name}.ipynb $dest/$name/ipynb +ipynb_tarfile=ipynb-${name}-src.tar.gz +if [ ! -f ${ipynb_tarfile} ]; then +cat > README.txt <