Machine Learning
lecture: Fridays, 13.15--15.00, A-1/204;
lab: Fridays, 15.15--16.55, C-11/4.09.
Time slots for the 'oral exam' (Zoom meeting data above):
- Monday, Jan 30, 6--7 pm., on Zoom -- five time slots 12 minutes each;
- Thursday, Feb 2, 11:15 am -- 12:45 pm., in 2.04/A1, during lecture -- six time slots 15 minutes each;
- Friday, Feb 3, 8--9 am., on Zoom -- five time slots 12 minutes each;
Monday, Feb 6, 6--8 pm., on Zoom -- ten time slots 12 minutes each;-- canceled- Friday, Feb 10 -- up to ten 12-minutes slots starting at 7 pm.
- Monday, Feb 13 -- up to five 15-minutes slots starting at 11.45 am.
- Tuesday, Feb 14 -- up to five 12-minutes slots starting at 10.30 am.
- Wednesday, Feb 15 -- up to five 12-minutes slots starting at 5 pm.
- Thursday, Feb 16 -- up to three 14-minutes slots starting at 7.30 pm.
- Friday, Feb 17 -- up to three 14-minutes slots starting at 7.30 pm.
- (new) Friday, Feb 17 -- up to five 12-minutes slots starting at noon.
- (last chance): Monday, Feb 20 -- 14-minute slots starting at 6 pm.
Learning materials
- You may watch at least two first videos from Neural networks by 3blue1brown.
- A (freely available as a pdf) book An Introduction to Statistical Learning with Applications in R, by Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani, will be used for a large part of the lecture.
- Calculations (source) for forward and backward propagation in a neural network with dense layers. These are the calculations that I have shown in the lecture 3 (Oct, 14), but with a better notation, more details and a softmax case.
Files/links used in lectures
- Oct 21: neural network with 2 layers, 2 neurons each -- shown the output for each neuron
- Oct 28: Bias-Variance tradeoff
- Nov 4: Convolutional Neural Networks, courtesy of Dr. Kamil Bogus
- Nov 18: ImageNet classification with deep convolutional neural networks, aka AlexNet;
estimates of the number of multiplications in layers of AlexNet;
DarkForest, a Go engine using a CNN;
a thread about a purely convolutional NN by Detlef Schmicker. - Nov 25: SqueezeNet, ResNet, GoogLeNet (inception), Rethinking Inception, MobileNets.
- Dec 9: Recurrent Neural Networks, courtesy of Dr. Kamil Bogus
- Dec 14: encoder-decoder, GloVe, sample python program for playing with GloVe, Man is to...
- Dec 16: Attention, Attention is All You Need and the annotated version
- Jan 13:
Alpha-Beta explained in Chess Programming Wiki,
example position that has analysed using
chess.com and this 'fen':
4r1k1/1q3pp1/4b2p/RQ6/8/R7/5PPP/5K2 w - - 0 1
- Jan 20: Pachi homepage, Petr Baudis' master thesis, Shih-Chieh Huang’s PhD thesis, MCTS in Sensei's library
- Jan 27: Original Alpha Go and Alpha Go Zero papers. A book 'Deep learning and the game of Go' by Max Pumperla and Kevin Ferguson, Manning 2019 is a good and easy to understand source about AlphaGo and AlphaZero -- and it is available as an ebook in our library.
Office hours
tba
Assignment 1
linear regression (0.5 points) and Ridge (iterative method: 0.5 points). Deadline: labs during the week 17--21 October.
Assignment 2
Write neural network from scratch to deal with a classification problem of your choice.
It is enough to implement a 2-layer dense neural network and play with some of the hyperparameters. With a good implementation you may easily take more layers and experiment with the number of layers as well,
but it is not obligatory.
Suggestions: use the MNIST database with handwritten digits (see below); use Layer as a basic building block so that you may use efficient matrix operations.
You may look at the forward pass/backpropagation example, sort of hand-calculated using very small 2x2 network (corrected on Jan 13, there were some numerical mistakes at dL/dW).
Database with handwritten digits:
you may take the files mnist_loader.py and mnist.pkl.gz from
this repository. Please read the documentation in mnist_loader.py to learn how to use it (it's simple!).
Assignment 3
Perform some experiments with convolutional neural networks, for example using Keras.
Deadline: January 13.
Assignment 4
Perform some experiments with recurrent neural networks, for example using Keras.
Deadline: January 20.
Assignment 5
Implement alpha-beta algorithm, or Monte Carlo Tree Search, or Nalimov tables (one of these) for a game of your choice (not every game is suitable).
If you prefer, you may also do something else concerning Machine Learning, on the subject of your choice -- however, the subject has to be accepted by me *beforehand* (by email).
Deadline: February 3.
Rules
- There will be at least 5 assignments for the labs, each worth 1 point.
Failing to deliver the solution before the deadline will result in multiplying the score (between 0 and 1) by a factor (1 - 0.1 * delay in weeks).
You are supposed both to discuss your solution with the instructor and to send your code e.g. by email. Only the one that you do first is taken into account when considering delay.
You need to come to the labs to discuss your solution, apart from that your attendance is voluntary. You are always welcome to come, ask questions, etc. However, if you do not intend to ask questions or discuss your solutions it might be better (for you) if you do not come. It is also allowed to leave the labs at any time you wish, you do not have to ask for a permission - in fact it is better if you leave as quietly as possible. - At the end there will be a sort of an oral exam. Before that a list of methods (from the lecture), which you should know for the exam, will be given. During the exam a student marks the methods they know and will be asked questions only about those. For the answers a score p between 0 and 1 will be given. The final exam score will be calculated as p*(0.2 + (number of methods marked) / (number of all methods)). Cheating will result in 0 points and 2.0 as a final mark.
- To obtain a positive mark it is sufficient and necessary to obtain at least 2.5 points total, including at least 0.5 from the 'exam'. For the marks 3.0, 3.5, ..., 5.0 one needs to obtain at least: 0.5; 0.575; 0.65; 0.725; 0.8 points from the exam AND at least: 2.5; 3.25; 3.75; 4.25; 4.75 points total, respectively. For example for 4.5 (aka 4+), it suffices to obtain 4.25 points total, including at least 0.725 from the 'exam'.