SGN-41007 Pattern Recognition and Machine Learning
- First lecture will be on January 8th at 10:15-12:00 in room RI207.
- The registration for weekly exercise groups open on January 8th (13:00) and closes just before the first exercise group (Monday 15th at 12:59). Reserve your seat early enough.
- Register your competition team by Sunday 21.1. at the latest.
- Check out the course blog. Updated after every lecture.
- Exercise scores here.
- Competition groups have been emailed to all registered students. First (leftmost) name shall contact the others and propose time and place for the first meeting.
Email me if you are not in the list or are in two groups.
- First of the two competition tasks is now published. Due date for this first report is 12.2. Recommended to name the team as "TUT Group XX".
- A questions session of the competition is organized at 30.1. at 16:00-17:00 in TC303. No registration required.
- The last exercise session of the week is overcrowded (38 students). We may need to remove non-registered students from now on.
- Second one of the two competition tasks is now published. Due date for this first report is 2.3.
There are two lectures every week (total 14 lectures: first time 8.1.2017, last time 21.2.2017):
- Mondays at 10-12 in SA207 (S4)
- Wednesdays at 12-14 in SA207 (S4)
A video recording of each lecture will be provided below. Links to slides
and videos appear after each lecture.
- Monday 8.1.2018: Course organization, Introduction to Python. [slides] [video pt 1, video pt 2]
- Wednesday 10.1.2018: Estimation Theory. [slides] [video]
- Monday 15.1.2018: Estimation Theory. Detection Theory. [video]
- Wednesday 17.1.2018: Detection Theory. ROC and AUC. [slides] [video]
- Monday 22.1.2018: Classification. K-NN classifier. Using
Scikit-learn. [slides] [video]
- Wednesday 24.1.2018: Linear Classifiers. The LDA and the SVM. Kernel trick for the SVM. Logistic Regression.[video]
- Monday 29.1.2018: Random Forest. Other ensemble methods in sklearn:
ExtraTreesClassifier, AdaBoostClassifier and
GradientBoostingClassifier. [slides] [video]
- Wednesday 31.1.2018: Neural networks. [slides] [video]
- Monday 5.2.2018: Convolutional networks and deep learning. [video]
- Wednesday 7.2.2018: Convolutional networks, Recurrent nets. [slides] [video]
- Monday 12.2.2018: Convolutional networks, Recurrent nets. [video]
- Wednesday 14.2.2018:Performance assessment: Cross-validation,
leave-one-out, etc.[slides] [video]
- Monday 19.2.2018: Regularization, feature selection. [video]
- Wednesday 21.2.2018: Prep for exam (check this old exam from 2017). Visiting lectures from Dain Studios and Futurice. [video]
Exercises will appear here, and sessions are once every week. First exercises will be held on 15.1.2018, but a Moodle exercise set is already due on 10.1.
- Exercise 8.1. - 10.1.: Three Python tasks at course moodle page (http://moodle.tut.fi/). Return by noon at 10.1. at the latest. Solutions shown on the Wednesday lecture.
- Exercise 15.1. - 19.1.: Questions.
- Exercise 22.1. - 26.1.: Questions.
- Exercise 29.1. - 2.2.: Questions.
- Exercise 5.2. - 9.2.: Questions. (Coefficient C
accidentally missing from the question 2).
- Exercise 11.2 - 15.2.: Questions.
- Exercise 18.2 - 22.2.: Questions.
Exercise scores here.
There are 10
exercise groups, of
which you choose one.
Registration for the groups is required. Registration ends in POP
on Jan 15th at 12:59 (1 min before first exercise group).
- Monday 13-15 in TC303 Antti Happonen
- Monday 16-18 in TC303 Wenzhu Xing
- Tuesday 10-12 in TC303 Antti Happonen
- Tuesday 12-14 in TC303 Bishwo Adhikari
- Tuesday 14-16 in TC303 Konstantin Malysh
- Wednesday 10-12 in TC303 Wenzhu Xing
- Wednesday 16-18 in TC303 Pedram Ghazi
- Thursday 10-12 in TC303 Pedram Ghazi
- Thursday 16-18 in TC303 Konstantin Malysh
- Friday 14-16 in TC303 Bishwo Adhikari
Exercises consist of theory and computer exercises. You can use the classroom computer or your own
laptop. Installation of necessary software is straightforward: Anaconda Python distribution should contain all necessary packages.
Course requirements also include a programming assignment, which is
organized as a competition.
The exact requirements are defined later during the course. However, this is know at the moment:
- The task will be to learn to categorize 10 second audio sequences into 15 categories (office, car, cafe, forest path,...).
- The competition is open at https://www.kaggle.com/c/acoustic-scene-2018/.
- You are required to participate in teams of four students. Please, form and register the teams soon at this Google Form.
Registered teams of less than 4 will be merged together into 4-person teams.
- The group has to return 3 reports:
- A report of applying classical machine learning (selection of scikit-learn tools) for the problem. Instructions and deadline defined later.
- A report of applying deep learning (Keras + Tensorflow) for the problem. Instructions and deadline defined later.
- Final report of what you eventually did to win the competition.
The following are required to pass the course:
- 60% of exercise assignments solved. (70% -> +1 exam point; 80% -> +2
exam points; 90% -> +3 exam points).
- Project assignment, which is organized in the form of a pattern recognition
- Written exam (max. 30 pts; 15 to pass).
- Many topics of the course are also covered in Hastie et al., The
Elements of Statistical Learning, Springer 2009. Free PDF here.
- Scikit-learn documentation.
- If you forgot to register for the course, send email to the teacher (email@example.com)
- If you are unable to attend some exercises, it is possible to request a special permission to submit solutions via email. This can only happen for a good reason, and must be requested before the course starts by email (firstname.lastname@example.org). After the course starts (Jan 8, at 10:00), it's not possible to join this arrangement anymore.
- If you are unable to attend ANY exercises, request a separate assignment via email (email@example.com).