diff --git a/doc/src/Intro2Course/Intro2Course.do.txt b/doc/src/Intro2Course/Intro2Course.do.txt index a62008dd9..926665954 100644 --- a/doc/src/Intro2Course/Intro2Course.do.txt +++ b/doc/src/Intro2Course/Intro2Course.do.txt @@ -10,40 +10,46 @@ DATE: today !bblock * Thursday: First lecture: Presentation of the course, aims and content * Thursday: Second Lecture: Start with simple linear regression and repetition of linear algebra - * Friday: - * Computer lab: Wednesday. First time: Thursday and Friday this week, Presentation of hardware and software at room FV329 first hour of every labgroup and solution of first simple exercises. The first two weeks we focus on simple programming exercises and to set up github and QTcreator. This week we discuss how to set up git and obtain a github account and look at two simple programming exercises and for those interested start with project 1. + * Friday: Linear regression + * Computer lab: Wednesday. First time: Wednesday August 29. !eblock !split ===== Reading suggestions and exercises ===== +The recommended textbooks +* HTF: "Trevor Hastie, Robert Tibshirani, Jerome H. Friedman, The Elements of Statistical Learning, Springer":"https://www.springer.com/gp/book/9780387848570" +* AG: "Aurelien Geron, Hands‑On Machine Learning with Scikit‑Learn and TensorFlow, O'Reilly":"http://shop.oreilly.com/product/0636920052289.do" !bblock - * Read sections - * - * - * + * HTF chapters 1-3 and "lecture notes":"https://compphysics.github.io/MachineLearning/doc/pub/Regression/html/Regression-bs.html" + * AG chapters 1 and 2 !eblock !split ===== Lectures and ComputerLab ===== !bblock - * Lectures: Thursday (8.15am-10am) and Friday (8.15am-10am). + * Lectures: Thursday (12.15pm-2pm) and Friday (12.15pm-2pm). * Weekly reading assignments needed to solve projects. * First hour of each lab session may be used to discuss technicalities, address questions etc linked with projects. * Detailed lecture notes, exercises, all programs presented, projects etc can be found at the homepage of the course. - * Computerlab: Thursday (10am-6pm) and Friday (10am-6pm) room FV329. We may extend to Monday + * Computerlab: Wednesday (10am-6pm), room FV329, four groups (10am-12pm, 12pm-2pm, 2pm-4pm, 4pm-6pm). * Weekly plans and all other information are on the official webpage. - * No final exam, the last three projects are graded. In total five projects which all have to be approved. + * No final exam, three projects that are graded and have to be approved. !eblock !split ===== Course Format ===== !bblock - * Five compulsory projects. Electronic reports only using "devilry":"https://devilry.ifi.uio.no/" to hand in projects and "Git":"https://github.com/" for repository and all your material. - * Evaluation and grading: The last three projects are graded and each counts 1/3 of the final mark. No final written or oral exam. - * The computer lab (room FV329)consists of 16 Linux PCs, but many prefer own laptops. C/C++ is the default programming language, but Fortran2008 and Python are also used. All source codes discussed during the lectures can be found at the webpage and "github address":"https://github.com/CompPhysics/ComputationalPhysics1/tree/master/doc/Programs" of the course. We recommend either C/C++, Fortran2008 or Python as languages. + * Three compulsory projects. Electronic reports only using "devilry":"https://devilry.ifi.uio.no/" to hand in projects and "Git":"https://github.com/" for repository and all your material. + * Evaluation and grading: The three projects are graded and each counts 1/3 of the final mark. No final written or oral exam. + * The last project is organized as a workshop (duration approx 5-6 hours toward the end of the semester) where each group submits a proposal for a data sets to be analyzed with the different methods discussed during the course. + o Each group submits a proposal or works with suggested (by us) proposals for the project. + o Each group makes a poster and presents this to all other participants of the course + o Poster session where all participants can study and discuss the other proposals (the three best posters get additional score) + o Based on feedback etc, each group finalizes the report and submits for grading. + * The computer lab (room FV329)consists of 16 Linux PCs, but many prefer own laptops. Python is the default programming language, but feel free to use C/C++ and/or Fortran. All source codes discussed during the lectures can be found at the webpage and "github address":"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Programs" of the course. !eblock !split @@ -52,21 +58,21 @@ DATE: today !bblock _Teachers :_ -o "Anna Gribovskaya":"https://www.mn.uio.no/fysikk/?vrtx=person-view&uid=annagrib" +o "Kristine B. Heine":"https://www.mn.uio.no/ifi/english/?vrtx=person-view&uid=krisbhei" o "Morten Hjorth-Jensen":"http://mhjgit.github.io/info/doc/web/" -o "Anders Johansson":"https://www.mn.uio.no/fysikk/?vrtx=person-view&uid=anjohan" -o "Mathias M. Vege":"https://www.mn.uio.no/fysikk/?vrtx=person-view&uid=hmvege" -o "Sebastian G. Winther-Larsen":"https://www.mn.uio.no/fysikk/?vrtx=person-view&uid=sebastwi" +o "Bendik Samseth":"https://www.mn.uio.no/fysikk/english/?vrtx=person-view&uid=bendiksa" +o "Øyvind Sigmundson Schøyen":"https://www.mn.uio.no/fysikk/english/?vrtx=person-view&uid=oyvinssc" + |------------------------------------------------------| -| day | teacher | -|---------l-----------------------l--------------------| -| Group 1: Thursday 10am-2pm | Anders, Anna, Mathias, MHJ, Sebastian | -| Group 2: Thursday 2pm-6pm | Anders, Anna, Mathias, MHJ, Sebastian | -| Group 3: Friday 10am-2pm | Anders, Anna, Mathias, MHJ, Sebastian | -| Group 4: Friday 2pm-6pm | Anders, Anna, Mathias, MHJ, Sebastian | -|------------------------------------------------------| +| day | Time | +|----------------------------------------------------| +| Group 1: Wednesday | 10am-12pm | +| Group 2: Wednesday | 12pm-2pm | +| Group 3: Wednesday | 2pm-4pm | +| Group 4: Wednesday | 4pm-6pm | +|-------------------------------------------------| !eblock @@ -75,11 +81,9 @@ o "Sebastian G. Winther-Larsen":"https://www.mn.uio.no/fysikk/?vrtx=person-view& !bblock -o Project 1: September 10 (not graded, only feedback) -o Project 2: October 1 (not graded, only feedback) -o Project 3: October 22 (graded with feedback) -o Project 4: November 12 (graded with feedback) -o Project 5: December 10 (graded with feedback) +o Project 1: October 1 (graded with feedback) +o Project 2: November 5 (graded with feedback) +o Project 3: November 30, tentative (graded with feedback) Projects are handed in using devilry.ifi.uio.no. We use Github as repository for codes, benchmark calculations etc. Comments and feedback on projects only via devilry. @@ -88,81 +92,58 @@ Projects are handed in using devilry.ifi.uio.no. We use Github as repository for !split -===== Topics covered in this course ===== +===== Learning outcomes ===== !bblock +The course introduces a variety of central algorithms and methods essential for studies of data analysis and machine learning. The course is project based and through the various projects, normally three, you will be exposed to fundamental research problems in these fields, with the aim to reproduce state of the art scientific results. You will learn to develop and structure large codes for studying these systems, get acquainted with computing facilities and learn to handle large scientific projects. A good scientific and ethical conduct is emphasized throughout the course. More specifically, after this course you will + +* Learn about basic data analysis, Bayesian statistics, Monte Carlo methods, data optimization and machine learning; +* Be capable of extending the acquired knowledge to other systems and cases; +* Have an understanding of central algorithms used in data analysis and machine learning; +* Gain knowledge of central aspects of Monte Carlo methods, Markov chains, Gibbs samplers and their possible applications, from numerical integration to simulation of stock markets; +* Understand linear methods for regression and classification; +* Learn about neural network, genetic algorithms and Boltzmann machines; +* Work on numerical projects to illustrate the theory. The projects play a central role and you are expected to know modern programming languages like Python or C++. !eblock - !split -===== Syllabus ===== +===== Topics covered in this course: Statistical analysis and optimization of data ===== -!bblock Linear algebra and eigenvalue problems, chapters 6 and 7 - -!eblock - - -!split -===== Syllabus ===== - -!bblock Linear algebra and eigenvalue problems, chapters 6 and 7 - -!eblock - - -!split -===== Syllabus ===== - -!bblock Numerical integration, standard methods and Monte Carlo methods (chapters 4 and 11) - -!eblock - - -!split -===== Syllabus ===== - -!bblock Monte Carlo methods in physics (chapters 12, 13, and 14) - -!eblock - - -!split -===== Syllabus ===== - -!bblock Ordinary differential equations (chapters 8 and 9) - -!eblock - - -!split -===== Syllabus ===== - -!bblock Partial differential equations, chapter 10 - -!eblock - - -!split -===== Overarching aims of this course ===== - - - -!split -===== Additional learning outcomes ===== !bblock +The following topics will be covered +* Basic concepts, expectation values, variance, covariance, correlation functions and errors; +* Simpler models, binomial distribution, the Poisson distribution, simple and multivariate normal distributions; +* Central elements of Bayesian statistics and modeling; +* Central elements from linear algebra +* Cubic splines and gradient methods for data optimization +* Monte Carlo methods, Markov chains, Metropolis-Hastings algorithm, ergodicity; +* Linear methods for regression and classification; +* Estimation of errors using blocking, bootstrapping and jackknife methods; !eblock +!split +===== Topics covered in this course: Machine Learning ===== +!bblock +* Linear and non-linear regression +* Gaussian and Dirichlet processes; +* Boltzmann machines; +* Neural networks; +* Decisions trees and nearest neighbor algorithms +* Support vector machines + +!eblock !split ===== Extremely useful tools, strongly recommended ===== !bblock and discussed at the lab sessions - * GIT for version control (see webpage), this week + * GIT for version control (see webpage) * ipython/jupyter notebook * Devilry for handing in projects, next week + * Anaconda and other Python environments !eblock diff --git a/doc/web/course.do.txt b/doc/web/course.do.txt index dba3f80d7..740ec92f5 100644 --- a/doc/web/course.do.txt +++ b/doc/web/course.do.txt @@ -5,13 +5,14 @@ TITLE: Overview of course material: Computational Physics TOC: off # #else TITLE: Overview of course material: Data Analysis and Machine Learning -AUTHOR: "Morten Hjorth-Jensen":"http://mhjgit.github.io/info/doc/web/" at Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University, USA & Department of Physics, University of Oslo, Norway +AUTHOR: "Morten Hjorth-Jensen":"http://mhjgit.github.io/info/doc/web/" at Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University, USA & Department of Physics (office FV308), University of Oslo, Norway # #endif <% pub_url = 'https://compphysics.github.io/MachineLearning/doc/pub' -published = ['Introduction', 'How2ReadData', 'Linalg', 'Statistics', 'Splines', 'Regression', 'NeuralNet', 'Bayesian', 'DecisionTrees', 'svm', 'BM',] +published = ['Intro2Course', 'Introduction', 'How2ReadData', 'Linalg', 'Statistics', 'Splines', 'Regression', 'NeuralNet', 'Bayesian', 'DecisionTrees', 'svm', 'BM',] chapters = { + 'Intro2Course': 'Basic introduction to the course with schedule etc', 'Introduction': 'Introduction to Data Analysis and Machine Learning', 'How2ReadData': 'Getting started with Machine Learning', 'Linalg': 'Review of central linear algebra elements', diff --git a/doc/web/course.html b/doc/web/course.html index b4d085602..0af1f20fc 100644 --- a/doc/web/course.html +++ b/doc/web/course.html @@ -68,51 +68,55 @@ div { text-align: justify; text-justify: inter-word; }
@@ -152,7 +156,7 @@ MathJax.Hub.Config({@@ -175,7 +179,37 @@ formulas in HTML or ipython notebook files. -
Probability theory and statistical methods play a central role in science. Nowadays we are @@ -611,7 +645,7 @@ tools of probability theory, the aim of this course is to expose you to central This course covers thus topics like Monte Carlo methods and Markov chains, Bayesian statistics, error estimates, various linear methods, optimization of data and error analysis and central algorithms in machine learning. The course has several numerical projects and numerical exercises that are meant to illustrate the theory. -
The course introduces a variety of central algorithms and methods @@ -628,19 +662,19 @@ essential for studies of data analysis and machine learning. The course is proje
Basic knowledge in programming and numerics. Required courses are the equivalents to the University of Oslo mathematics courses MAT1100, MAT1110, MAT1120 and at least one of the corresponding computing and programming courses INF1000/INF1110 or MAT-INF1100/MAT-INF1100L/BIOS1100/KJM-INF1xxx. -
The following topics will be covered @@ -657,7 +691,7 @@ The following topics will be covered
The following topics will be covered @@ -673,14 +707,14 @@ The following topics will be covered All the above topics will be supported by examples, hands-on exercises and project work. -
General learning book on statistical analysis: @@ -702,7 +736,7 @@ All the above topics will be supported by examples, hands-on exercises and proje -
Acronyms for textbooks and references to chapter