Machine Learning
This web page gives information on the lecture 'Machine Learning' which is held during winter term 2019/2020 by Andreas Nürnberger. It will be constantly updated during the course.
The course provides an introduction to the principles, techniques, and applications of Machine Learning. Topics covered include among others (subject to change):
- value functions
- concept spaces and concept learning
- instance based learning
- clustering
- decision trees
- neural networks
- Bayesian learning
- reinforcement learning
- association rule learning
- genetic algorithms
This course does not offer the possibility to acquire an extra credit point.
Course Schedule and Room Assignments
Time | Start | Room | Responsible Person | |
Lecture | Tue, 17:00 - 19:00 |
15.10.2019 | G44-H6 | Prof. Dr. Andreas Nürnberger |
Exercises (1st group / 4th group) | Mon, 13:00 - 15:00 | 21.10.2019 | G22A-120 / G16-250 |
Marcus Thiel / Anirban Saha |
Exercises (2nd group) | Wed, 13:00 - 15:00 |
23.10.2019 | G16-250 | Marcus Thiel |
Exercises (3rd group) | Tue, 15:00 - 17:00 | 22.10.2019 | G22A-203 | Saijal Shahania |
Exercises (5th group) | Wed, 15:00 - 17:00 | 23.10.2019 | G05-118 | Saijal Shahania |
Exercises (6th group) | Mon, 9:00 - 11:00 | 28.10.2019 | G16-215 | Marcus Thiel |
Exercises (7th group) | Thu, 11:00 - 13:00 | 24.10.2019 | G22A-211 | Anirban Saha |
Exercises (8th group) | Thu, 17:00 - 19:00 | 24.10.2019 | G10-110 | Saijal Shahania |
Exam | Fri, 13:00 - 15:00 | 21.02.2020 | H1 (with 29-307 as reserve!) | Marcus Thiel |
Exam Preparation |
Tue, 13:00 - 15:00 Thu, 9:00 - 11:00 Thu, 13:00 - 15:00 Mon, 15:00 - 17:00 Fri, 13:00 - 15:00 Mon, 13:00 - 15:00 |
04.02.2020 06.02.2020 06.02.2020 10.02.2020 14.02.2020 17.02.2020 |
G22A-112 G22A-111 G22A-111 G22A-111 G22A-111 G22A-111 |
Marcus Thiel |
Registration
Registration for the individual groups is done via LSF! Registrations will be open from the 16th of September 2019 until the 10th of November 2019.
Warning: If you did not register for any exercise until the 10th of November via the LSF, you will not be allowed to write the exam.
Course Staff
If you have any questions concerning the lectures or assignments please contact (if possible by email):
- Lectures: Andreas Nürnberger
E-Mail: andreas.nuernberger@ovgu.de - Exercises and Exam: Marcus Thiel
E-Mail: marcus.thiel@ovgu.de - Tutors:
- Anirban Saha, E-Mail: anirban.saha@st.ovgu.de
- Saijal Shahania, E-Mail: saijal.shahania@st.ovgu.de
Requirements for the Written Exam and the 'Schein'
All students are required to participate in the exercise classes. Every week, there will be an assignment sheet that will be handed out one week in advance. This sheet has to be prepared by every student and will be discussed in class. There are two different types of assignments: questions of understanding and programming assignments. The programming assignments can be solved in small groups of up to three students and must be sent in before the respective deadline. Prerequisites for a written exam and a 'Schein' is fulfillment of the following criteria:
- Gaining at least 1/2 of all programming points
- Solving at least 2/3 of all questions of understanding
- Presenting at least 1 solution in class.
The exam will be written. For the 'Schein', you have to write the exam as well. The time and date of the exam will be announced later in the course of the semester.
A general reminder: In accordance with the examination rules, we offer each student exactly one examination date (oral or written) each term. The registration for a follow-up examination is only possible in the next term (i.e. after 6 months). As soon as a student has registered for an exam, either by using the LSF for written exams or by filling in the information on an examination list for oral exams (or filling out a registration form), this is counted as the agreed examination date. If it is cancelled, the rule above applies.
General remarks concerning the exam:
- The main focus will be on the topics, that were also discussed in the exercises.
- Theoretical questions (knowledge and understanding) will be from all parts of the lecture.
- Practical tasks will be similar to the exercise assignments.
Materials
Lecture Slides
- Course Information
- Introduction
- Concept Learning
- Decision Tree Learning
- Artificial Neural Networks
- Bayesian Learning
- Instance-based Learning
- Cluster Analysis
- Reinforcement Learning
- Association Rule Learning
Assignment Sheets
- Assignment Sheet 1 (due by 21st/22nd/23rd of October)
- Assignment Sheet 2 (due by 28nd/29th/30th of October Attention: For Thursday exercise attendees, the deadline is already the 24th of October!)
- Assignment Sheet 3 (due by 4th/5th/6th of November)
- Assignment Sheet 4 (due by 11th/12th/13th/14th of November)
- Assignment Sheet 5 (due by 18th/19th/20th/21st of November)
- Assignment Sheet 6 (due by 25th/26th/27th/28th of November)
- Assignment Sheet 7 (due by 2nd/3rd/4th/5th of December)
- Assignment Sheet 8 (due by 9th/10th/11th/12th of December)
- Assignment Sheet 9 (due by 16th/17th/18th/19th of December)
- Assignment Sheet 10 (due by 13th/14th/15th/16th of January 2020)
- Assignment Sheet 11 (due by 20th/21st/22nd/23rd of January 2020)
- Assignment Sheet 12 (due by 27th/28tht/29th/30th of January 2020)
Programming Assignments
- Programming Assignment 1 (due by 3rd of November)
- Programming Assignment 2 (due by 17th of November) extended until the 20th of November 2019
- Programming Assignment 3 (due by 4th of December)
- Programming Assignment 4 (due by 6th of January 2020)
- Programming Assignment 5 (due by 12th of January 2020)
- Programming Assignment 6 (due by 19th of January 2020)
Seminar (only for students doing the the Medical Systems seminar!)
- The paper deadline is the 7th of January 2020, 8am. The usage of the template is mandatory! You have to write exactly 6 pages.
- Paper Template
- For seminar topics and guidance please contact:
Johannes Schwerdt
E-Mail: johannes.schwerdt@ovgu.de
Other Resources
- Exam Example Questions
- Linear Regression Data Sets (for Programming Assignment 1)
- Decision Tree Data Sets (for Programming Assignment 2)
- Perceptron Data Sets (for Programming Assignment 3)
- Naive Bayes Data Sets (for Programming Assignment 4)
- kNN Data Sets (for Programming Assignment 5)
- kMeans Data Sets (for Programming Assignment 6)
Literature
- Machine Learning
Tom Mitchell
McGraw-Hill, 1997. - Artificial Intelligence: A Modern Approach
S. Russel and P. Norvig
Prentice Hall, Englewood Cliffs, 2003 - Introduction to Artificial Intelligence (German version: Grundkurs Künstliche Intelligenz)
Wolfgang Ertel
Springer-Verlag London, 2011 (German version: Springer Vieweg, 2013) - Pattern Recognition and Machine Learning
Christopher M. Bishop
Springer-Verlag New-York, 2006
Frequently Asked Questions
- Question: Do I have to register for the course? If so, where?
Answer: Yes, you have to register for one of the exercises in the LSF! Please make sure to register for the exercise, that you would like to attend, since the capacity (about 40 per exercise date) is limited! - Question: I can not be there for the first exercise! What should I do?
Answer: Missing the first exercise usually is not that big of a problem. You should inform me (Marcus Thiel) about this circumstance though, since I will give unused slots to people on the waiting list otherwise. - Question: Do I really have to do the first assignment for the FIRST exercise?
Answer: Yes, of course. The questions are easy enough to be handled without having heard the lecture. - Question: What is that thing about "voting"?
Answer: It means, that you have to prepare the assignments BEFORE the exercise, in which they are discussed in. A sheet will be given around, where you have to mark all assignments, that you were able to solve. Marking an assignment means, that you are able to present your solution in front of the class. I expect everyone to at least present once, but twice would be best. Your solution does not have to be correct, but if you are not able to explain the assignment at all, all marked tasks for the particular exercise will be removed from your votings. - Question: How many "votings" do I need in order to get my exam admission?
Answer: Please try to solve 2/3 of the tasks. Every task on each assignment sheet basically counts as a single point. I also expect active involvement in the class. If you have shown active involvement, but could NOT solve at least 2/3 of the tasks, we can talk about making an exception. (Hint: There will be about 35 tasks throughout the semester. So you would need 23 solved tasks at least. The total number may change though and is NOT binding.) - Question: I can not solve 2/3 of the tasks, since I can not be there for all exercises. What should I do?
Answer: The short answer would be: Please try to be there at least enough times, so that you can actually reach the 2/3. The course highly rests on understanding the concepts and just learning by yourself (or only visiting the lecture) might not be enough.
The longer answer: We can always try to work something out. If you try really hard and show an active involvement in the classes, that you can actually attend, we can make some exception to the rule. Remember though, that you will still get way less feedback, especially on the tasks that you may have solved. I do not have the time to look over all your assigments individually, therefore I would highly advise to prioritize attending the exercises. - Question: Is this all I need for my admission?
Answer: No! There also the programming assigments, that you have to solve during the semester. Exact information on that will be given at the beginning of the semester. - Question: What exactly are these programming assignments?
Answer: They will focus on the application and understanding of the different methods, that you will learn in the course. A basic understanding of programming is therefore required. - Question: But I'm not from a Computer Science background / I can't program! Can I do something else instead?
Answer: No, sorry. Now would be the best time to learn a bit about programming. You will need that anyways. - Question: I have never heard anything about Data Mining and/or Machine Learning before. Should I visit this course?
Answer: That is totally fine. This course is intended to be a basic course for Machine Learning. You only need some basic knowledge about math (e.g. vectors, matrices, derivations). - Question: My math skills are very rusty, do I need them for this course?
Answer: You need to have basic skills (e.g. derivations, matrices, vectors) in order to understand this course. Those things will only partially be explained again, so you should be ready to fill the gaps yourself. - Question: I really, really like Machine Learning, but the assignments are way too difficult and time consuming! Could we please reduce the amount of work?
Answer: At the moment: No. The assignments may change depending on the feedback though. - Question: How will the exam look like? Will it be oral or written?
Answer: The exam will be written. It will be offered at the end of the semester, probably in mid-February. A follow-up exam will then be again in summer, some time in July or beginning of August.