Difference between revisions of "Artificial Neural Networks and Deep Learning"
(→Detailed course schedule) |
|||
(75 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
The following are last-minute news you should be aware of ;-) | The following are last-minute news you should be aware of ;-) | ||
− | + | 06/03/2021: Grades for the [[Media:AN2DL2122Homeworks.pdf|2021/2021 homeworks are available here!]] | |
+ | 24/11/2021: Lecture on 09/12/2021 moved to 16/12/2021 | ||
+ | 24/11/2021: Change of classroom on the 15/12 from T2.1 to B4.3 | ||
+ | 12/11/2021: [https://codalab.lisn.upsaclay.fr/competitions/226 Here is the link to the First Homework!!!] (read the registration rules, they have been updated) | ||
+ | 12/11/2021: First homework is coming out! [https://docs.google.com/document/d/1T0EXf5I8knJQjK4wveewKsOxkV1IyVRlLrKs7S7yO0M/edit?usp=sharing Register to submit your solutions!] | ||
+ | 07/11/2021: We have restructured the notebooks from the labs, please check the new organization and material | ||
+ | 13/10/2021: Final grade for 2020/2021 year are [[Media:AN2DL_Grades_20210830.pdf|here]] | ||
+ | 30/09/2021: Video and slides updated + notebooks published | ||
+ | 24/09/2021: Removed last year practicals, this year they will be different!!! Python crash course moved at the end of the material | ||
+ | 22/09/2021: Added colab crash course on Python 3 in the material session | ||
+ | 18/09/2021: We skip exercising on 22/09 and added exercising on 15/12 I updated the schedule! | ||
+ | 16/09/2021: Updated material on the first lectures + added reference to python tutorials in the material section | ||
15/09/2021: Lectures start today! | 15/09/2021: Lectures start today! | ||
14/09/2021: Website under maintenance ... come back later | 14/09/2021: Website under maintenance ... come back later | ||
Line 114: | Line 125: | ||
* Team 2: even Codice Persona | * Team 2: even Codice Persona | ||
+ | For a google calendar you might [https://boracchi.faculty.polimi.it/teaching/AN2DLCalendar.htm look here!] | ||
{| border="1" align="center" style="text-align:center;" | {| border="1" align="center" style="text-align:center;" | ||
Line 119: | Line 131: | ||
|Date || Day || Time || Room || Teacher || Topic | |Date || Day || Time || Room || Teacher || Topic | ||
|- | |- | ||
− | |15/09/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team1 ) || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | Course Introduction + Deep Learning Intro | + | |15/09/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team1 ) || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=243171f0d60ccb6507e5d097b3c55131 Course Introduction + Deep Learning Intro] |
|- | |- | ||
|15/09/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |15/09/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |16/09/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || | + | |16/09/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=48eb781c6c832ebe5d1a65aa60aa80f8 From Perceptrons to Feed Forward Neural Networks] |
|- | |- | ||
− | |22/09/2021 || Wednesday || | + | |22/09/2021 || Wednesday || -- || -- || rowspan="2" | -- || rowspan="2" | -- No Lecture -- |
|- | |- | ||
− | |22/09/2021 || Wednesday || | + | |22/09/2021 || Wednesday || -- || -- |
|- | |- | ||
− | |23/09/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] ||Feed forward neural networks and Backpropagation | + | |23/09/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=d6326382b3d5b22cc9c82cc2094fc7d9 Feed forward neural networks and Backpropagation] |
|- | |- | ||
− | |29/09/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1) || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS: Tensorflow and FNN | + | |29/09/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1) || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=7e07badcc1bdb91e76d9c42fb46a44dd KERAS: Numpy, Tensorflow and FNN] |
|- | |- | ||
|29/09/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |29/09/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |30/09/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Error Functions Design | + | |30/09/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=62460aac13f46ceb85f365ef3af13da9 Error Functions Design] |
|- | |- | ||
− | |06/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1) || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | | + | |06/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1) || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=866cd6c1a612bdf9fb92e8de7630ccaa Overfitting, cross-validation, and Early Stopping] |
|- | |- | ||
|06/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |06/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
Line 143: | Line 155: | ||
|07/10/2021 || Thursday || --- || --- || --- || No Lectures (Graduation) | |07/10/2021 || Thursday || --- || --- || --- || No Lectures (Graduation) | ||
|- | |- | ||
− | |13/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS: FFNN and Overfitting | + | |13/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=3c4494b4865929a682d8b7773deeb06b KERAS: FFNN and Overfitting] |
|- | |- | ||
|13/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |13/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |14/10/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Training tricks: activation functions, network initialization, and other stuff... | + | |14/10/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=bfb3b4478f89834a3fe8908ef38a9a20 Training tricks: activation functions, network initialization, and other stuff...] |
|- | |- | ||
− | |20/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | The Image Classification Problem | + | |20/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | [https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3D001aa81af4155e482b36449d5bf740a2&sa=D&source=calendar&usd=2&usg=AOvVaw27hVczu4cbwbSFkbbWSUHm The Image Classification Problem] |
|- | |- | ||
|20/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |20/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |21/10/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || Convolutional Neural Networks | + | |21/10/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3D7ce22e50e0e54055ba5c767ae7139032&sa=D&source=calendar&usd=2&usg=AOvVaw3mgWsYDB-P59366MxvLunC Convolutional Neural Networks] |
|- | |- | ||
− | |27/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1) || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS: Convolutional Neural Networks | + | |27/10/2021 || Wednesday || 15:15 - 17:00 || T.2.1 (Team 1) || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=b25749461c701879e3814e26b937177d KERAS: Convolutional Neural Networks] |
|- | |- | ||
|27/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |27/10/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |28/10/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || Training with data | + | |28/10/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3De2757215c853530566cd3cf46833e75c&sa=D&source=calendar&usd=2&usg=AOvVaw3vsxZOjD-e_iXzVTPT0k88 Training with data scarcity] |
|- | |- | ||
− | |03/11/2021 || Wednesday || 15:15 - 17:00 ||T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS: Convolutional Neural Networks | + | |03/11/2021 || Wednesday || 15:15 - 17:00 ||T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=495e5d7661d0849fb027a9451ffc4f26 KERAS: Convolutional Neural Networks] |
|- | |- | ||
|03/11/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |03/11/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |04/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || Famous CNN architectures | + | |04/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3Dfdfcf0d638238f240ebbd7aed018d318&sa=D&source=calendar&usd=2&usg=AOvVaw0zahxjvCI_hEMxKktO_sQ- Famous CNN architectures] |
|- | |- | ||
|10/11/2021 || Wednesday || --- || --- || --- || -- No Lecture (Prove in Itinere) -- | |10/11/2021 || Wednesday || --- || --- || --- || -- No Lecture (Prove in Itinere) -- | ||
|- | |- | ||
− | |11/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || Fully Convolutional CNN, CNN for image segmentation | + | |11/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3D9bfed46fbc5949d7618be69c2fa50457&sa=D&source=calendar&usd=2&usg=AOvVaw34G9ChAVef06M6iBpN9mXQ Fully Convolutional CNN, CNN for image segmentation (part 1)][https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3Dfa883d62a806513b461540a98830152c&sa=D&source=calendar&usd=2&usg=AOvVaw1A9z3vpzEAkQAO_Bjq0o8p (part 2)] |
|- | |- | ||
− | |17/11/2021 || Wednesday || 15:15 - 17:00 ||T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | | + | |17/11/2021 || Wednesday || 15:15 - 17:00 ||T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | [https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3D997f9eb198cd2897a4f7171638a7380e&sa=D&source=calendar&usd=2&usg=AOvVaw1Wyc4KPyTxm40V8-jvU0sd GANs] |
|- | |- | ||
|17/11/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |17/11/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |18/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || | + | |18/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://www.google.com/url?q=https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID%3D8879f77fc8c8d6de57149a6716c9ecc5&sa=D&source=calendar&usd=2&usg=AOvVaw2oVvMyZwpZQAnoz5D-cr2Y CNN for localization and detection] |
|- | |- | ||
− | |24/11/2021 || Wednesday || 15:15 - 17:00 ||T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS: | + | |24/11/2021 || Wednesday || 15:15 - 17:00 ||T.2.1 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ee50aa7ae9d63a876746701aec8d1947 KERAS: reconstruction and segmentation] |
|- | |- | ||
|24/11/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | |24/11/2021 || Wednesday || 17:30 - 19:15 || T.2.1 (Team 2) | ||
|- | |- | ||
− | |25/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Recurrent neural networks + LSTM | + | |25/11/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=dbc4844003d98778777ca3e06e9cb961 Recurrent neural networks + LSTM] |
|- | |- | ||
− | |01/12/2021 || Wednesday || 15:15 - 17:00 || | + | |01/12/2021 || Wednesday || 15:15 - 17:00 || E.Gatti - ed.20 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=fb8a6ed405eb1812e92783631d1b9de9 KERAS: learning with time series] |
|- | |- | ||
− | |01/12/2021 || Wednesday || 17:30 - 19:15 || | + | |01/12/2021 || Wednesday || 17:30 - 19:15 || E.Gatti - ed.20 (Team 2) |
|- | |- | ||
− | |02/12/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Sequence to sequence learning and Word Embedding | + | |02/12/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=8f5ee66f75748e65b463160f2a06091a Sequence to sequence learning and Word Embedding] |
|- | |- | ||
|08/12/2021 || Wednesday || --- || --- || --- || -- No Lecture (Holiday) -- | |08/12/2021 || Wednesday || --- || --- || --- || -- No Lecture (Holiday) -- | ||
|- | |- | ||
− | |09/12/2021 || Thursday || | + | |09/12/2021 || Thursday || --- || --- || --- || -- No Lecture --- |
|- | |- | ||
− | |15/12/2021 || Wednesday || | + | |15/12/2021 || Wednesday || 15:15 - 17:00 ||B.4.3 (Team 1)|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=8c0a4d5119dfc174e6eacbfa96fd3361 KERAS: learning with text] |
|- | |- | ||
− | |16/12/2021 || Thursday || 16:30 - 19:15 || Virtual Room || | + | |15/12/2021 || Wednesday || 17:30 - 19:15 || B4.3 (Team 2) |
+ | |- | ||
+ | |16/12/2021 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=87be019018382204732ff85b47e64ba8 Attention Mechanism and Transformer] | ||
|- | |- | ||
|} | |} | ||
Line 351: | Line 365: | ||
Course evaluation is composed of two parts: | Course evaluation is composed of two parts: | ||
− | * A written examination covering the whole program graded up to | + | * A written examination covering the whole program graded up to 20/30 |
− | * 2 home projects in the form of a "Kaggle style" challenge practicing the topics of the course graded up to | + | * 2 home projects in the form of a "Kaggle style" challenge practicing the topics of the course graded up to 5/30 each |
The final score will sum the grade of the written exam and the grade of the home projects. Home projects are not compulsory and they are issued only once a year. | The final score will sum the grade of the written exam and the grade of the home projects. Home projects are not compulsory and they are issued only once a year. | ||
Line 365: | Line 379: | ||
* [http://www.deeplearningbook.org/ Deep Learning]. Ian Goodfellow, Yoshua Bengio, and Aaron Courville, MIT Press, 2016. | * [http://www.deeplearningbook.org/ Deep Learning]. Ian Goodfellow, Yoshua Bengio, and Aaron Courville, MIT Press, 2016. | ||
<!-- The remaining material about the course is available through [http://webeep.polimi.it WeBeep].--> | <!-- The remaining material about the course is available through [http://webeep.polimi.it WeBeep].--> | ||
+ | |||
+ | Regarding the python programming language, we will provide you the basics about numpy and python scripting in case you want some introductory material you can check here | ||
+ | |||
+ | * [https://docs.python.org/3/tutorial/ Python tutorials]: these are the official python tutorials, we suggest 3.An Informal Introduction to Python (Numbers, Strings, Lists), 4.More Control Flow Tools (if, for, range, functions), 5.Data Structures (More on lists, Dictionaries), 9.Classes. | ||
===Course Slides=== | ===Course Slides=== | ||
Slides from the lectures by Matteo Matteucci | Slides from the lectures by Matteo Matteucci | ||
− | *[[Media: | + | *[[Media:AN2DL_00_2121_Course_Introduction.pdf|[2021/2022] Course Introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics. |
− | *[[Media: | + | *[[Media:AN2DL_01_2122_Deep_Learning_Intro.pdf|[2021/2022] Machine Learning vs Deep Learning]]: introduction to machine learning paradigms and definition of deep learning with examples |
− | *[[Media: | + | *[[Media:AN2DL_02_2122_Perceptron_2_FeedForward.pdf|[2021/2022] From Perceptrons to Feed Forward Neural Networks]]: the original Perceptron model, Hebbian learning, feed-forward architecture, backpropagation and gradient descent, error functions and maximum likelihood estimation |
− | *[[Media: | + | *[[Media:AN2DL_03_2122_NeuralNetwroksTraining.pdf|[2021/2022] Neural Networks Training]]: dealing with overfitting (weight decay, early stopping, dropout), vanishing gradient (ReLU and friends), batch normalization |
− | *[[Media: | + | *[[Media:AN2DL_04_2122_RecurrentNeuralNetworks.pdf|[2021/2022] Recurrent Neural Networks]]: learning with sequences, Recurrent Neural Networks, vanishing gradient, Long Short-Term Memories (LSTM), seq2seq model. |
− | *[[Media: | + | *[[Media:AN2DL_05_2021_WordEmbedding.pdf|[2021/2022] Word Embedding]]: neural autoencoders, language models, word embedding, word2vec, glove. |
− | *[[Media: | + | *[[Media:AN2DL_06_2021_BeyondSeq2Seq.pdf|[2021/2022] Beyond Sequence 2 Sequence Learning]]: Neural Turing Machines, attention mechanisms, the Transformer. |
+ | |||
+ | Slides from the lectures by Giacomo Boracchi are available in [https://boracchi.faculty.polimi.it/teaching/AN2DL.htm his webpage]; for your convenience I am giving pointers to the slide here for you (in case you note discrepancies please notify me) | ||
+ | * [2021/2022] [https://boracchi.faculty.polimi.it/teaching/AN2DL/2021_AN2DL_Lez1_ImageClassification.pdf The Image Classification Problem] | ||
+ | * [2021/2022] [https://boracchi.faculty.polimi.it/teaching/AN2DL/2021_AN2DL_Lez2_CNN.pdf Convolutional Neural Networks] | ||
+ | * [2021/2022] [https://boracchi.faculty.polimi.it/teaching/AN2DL/2021_AN2DL_Lez3_CNN_TL_Data_Scarcity.pdf CNN Parameters and Training with Data Scarcity] | ||
+ | * [2021/2022] [https://boracchi.faculty.polimi.it/teaching/AN2DL/2021_AN2DL_Lez4_CNN_for_segmentation.pdf Fully Convolutional CNN and CNN for Semantic Segmentation] | ||
+ | * [2021/2022] [https://boracchi.faculty.polimi.it/teaching/AN2DL/2021_AN2DL_Lez5_CNN_Localization_Explanations_Famous_Architectures.pdf CNN for Localization, CNN Explanations and Famous Architectures] | ||
+ | * [2021/2022] [https://boracchi.faculty.polimi.it/teaching/AN2DL/2021_AN2DL_Lez7_Generative_Models.pdf Autoencoders and Generative Adversarial Networks] | ||
+ | * [2021/2022] [https://boracchi.faculty.polimi.it/teaching/AN2DL/2021_AN2DL_Lez6_CNN_for_object_detection_Metric_Learning.pdf Object Detction Networks and Metric Learning] | ||
+ | |||
+ | Slides from the practicals by Francesco Lattari and Eugenio Lomurno | ||
+ | * [https://drive.google.com/drive/folders/1zO_E89H3mjc7nysBkGUt_MmCn1Mb2DzP?usp=sharing Python and convolutions]: a Colab notebook with a crash course on Python 3 to prepare for the practicals and extra material about convolutions! | ||
+ | * [https://drive.google.com/drive/folders/1-WFu2S-MBOrNsFRy1IWEptF_hTMLmic9?usp=sharing Feed Forward Neural Networks]: NumPy Arrays, TensorFlow2 Tensors, and Feed Forward Neural Network | ||
+ | * [https://drive.google.com/drive/folders/1-gaItYI8i01STVPrUcqZ8vxK27yGFENn?usp=sharing Dealing with Overfitting]: Hold Out, Early Stopping and Cross-Validation | ||
+ | * [https://drive.google.com/drive/folders/10H60DRdcFCbwCKHExZdPfLdrtbnmCaRE?usp=sharing Convolutional Neural Networks]: 2D Convolutions and their meaning, Convolutional Neural Networks with Keras | ||
+ | * [https://drive.google.com/drive/folders/10D876SqauR27hB5BUIcckKf3v4CrA_x4?usp=sharing Augmentation and Fine Tuning]: Data Augmentation, Transfer Learning, and Fine Tuning | ||
+ | * [https://drive.google.com/drive/folders/1dxfaXo68dWnrS6xHY0yLvUDjTwDPFN6h?usp=sharing Autoencoders and Segmentation]: Exercises on Autoencoders and Multiclass Segmentation | ||
+ | * [https://drive.google.com/drive/folders/1rZQUrs6Rb1dGg5-KLg-y9tT1yw09gr7G?usp=sharing Dealing with Time Series]: Recurrent Neural Networks, Long Short-Term Memories, and other models. | ||
+ | |||
+ | === External Sources === | ||
+ | * [https://towardsdatascience.com/back-to-basics-deriving-back-propagation-on-simple-rnn-lstm-feat-aidan-gomez-c7f286ba973d Deriving Back Propagation on simple RNN/LSTM]: a tutorial step by step to derive the backpropagation formulas | ||
+ | * [https://karpathy.github.io/2019/04/25/recipe/ A Recipe for Training Neural Networks]: a neat post on Andrej Karpathy blog about do's and don'ts in training neural networks | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <!--*[[Media:AN2DL_Lab1_2020_KerasIntroduction.zip|[2020/2021] Introduction to Keras]]: Introduction to Keras and Tensorflow2 (slides + notebook) | |
− | *[[Media:AN2DL_Lab1_2020_KerasIntroduction.zip|[2020/2021] Introduction to Keras]]: Introduction to Keras and Tensorflow2 (slides + notebook) | + | |
*[[Media:AN2DL_Lab1_2020_KerasOverfitting.zip|[2020/2021] Facing overfitting in Keras]]: Techniques to limit overfitting in Keras and Tensorboard use (slides + notebook) | *[[Media:AN2DL_Lab1_2020_KerasOverfitting.zip|[2020/2021] Facing overfitting in Keras]]: Techniques to limit overfitting in Keras and Tensorboard use (slides + notebook) | ||
*[[Media:AN2DL_Lab1_2020_KerasCNN.zip|[2020/2021] Convolutional architectures in Keras]]: How to build, train, and evaluate convolutional models for image classification in Keras and Tensorflow2 (slides + notebook) | *[[Media:AN2DL_Lab1_2020_KerasCNN.zip|[2020/2021] Convolutional architectures in Keras]]: How to build, train, and evaluate convolutional models for image classification in Keras and Tensorflow2 (slides + notebook) | ||
*[[Media:AN2DL_Lab1_2020_KerasSegmentation.zip|[2020/2021] Image Segmentation in Keras]]: How to build, train, and evaluate convolutional models for image segmentation in Keras and Tensorflow2 (slides + notebook) | *[[Media:AN2DL_Lab1_2020_KerasSegmentation.zip|[2020/2021] Image Segmentation in Keras]]: How to build, train, and evaluate convolutional models for image segmentation in Keras and Tensorflow2 (slides + notebook) | ||
− | *[[Media:AN2DL_Lab1_2020_KerasRecurrentNeuralNetworks.zip|[2020/2021] Recurrent architectures in Keras]]: How to build, train, and evaluate recurrent neural architectures in Keras and Tensorflow2 (slides + notebook) | + | *[[Media:AN2DL_Lab1_2020_KerasRecurrentNeuralNetworks.zip|[2020/2021] Recurrent architectures in Keras]]: How to build, train, and evaluate recurrent neural architectures in Keras and Tensorflow2 (slides + notebook)--> |
<!-- | <!-- |
Latest revision as of 01:43, 7 February 2022
The following are last-minute news you should be aware of ;-)
06/03/2021: Grades for the 2021/2021 homeworks are available here! 24/11/2021: Lecture on 09/12/2021 moved to 16/12/2021 24/11/2021: Change of classroom on the 15/12 from T2.1 to B4.3 12/11/2021: Here is the link to the First Homework!!! (read the registration rules, they have been updated) 12/11/2021: First homework is coming out! Register to submit your solutions! 07/11/2021: We have restructured the notebooks from the labs, please check the new organization and material 13/10/2021: Final grade for 2020/2021 year are here 30/09/2021: Video and slides updated + notebooks published 24/09/2021: Removed last year practicals, this year they will be different!!! Python crash course moved at the end of the material 22/09/2021: Added colab crash course on Python 3 in the material session 18/09/2021: We skip exercising on 22/09 and added exercising on 15/12 I updated the schedule! 16/09/2021: Updated material on the first lectures + added reference to python tutorials in the material section 15/09/2021: Lectures start today! 14/09/2021: Website under maintenance ... come back later
Contents
Course Aim & Organization
Neural networks are mature, flexible, and powerful non-linear data-driven models that have successfully been applied to solve complex tasks in science and engineering. The advent of the deep learning paradigm, i.e., the use of (neural) network to simultaneously learn an optimal data representation and the corresponding model, has further boosted neural networks and the data-driven paradigm.
Nowadays, deep neural network can outperform traditional hand-crafted algorithms, achieving human performance in solving many complex tasks, such as natural language processing, text modeling, gene expression modeling, and image recognition. The course provides a broad introduction to neural networks (NN), starting from the traditional feedforward (FFNN) and recurrent (RNN) neural networks, till the most successful deep-learning models such as convolutional neural networks (CNN) and long short-term memories (LSTM).
The course major goal is to provide students with the theoretical background and the practical skills to understand and use NN, and at the same time become familiar and with Deep Learning for solving complex engineering problems.
Teachers
The course is composed of a blending of lectures and exercises by the course teachers and a teaching assistant.
- Matteo Matteucci: the course teacher and this is his webex room
- Giacomo Boracchi: the course co-teacher and this is his webex room
- Francesco Lattari: the course teaching assistant and this is his webex room
- Eugenio Lomurno: the course teaching assistant and this is his webex room
Course Program and Syllabus
This goal is pursued in the course by:
- Presenting major theoretical results underpinning NN (e.g., universal approx, vanishing/exploding gradient, etc.)
- Describing the most important algorithms for NN training (e.g., backpropagation, adaptive gradient algorithms, etc.)
- Illustrating the best practices on how to successfully train and use these models (e.g., dropout, data augmentation, etc.)
- Providing an overview of the most successful Deep Learning architectures (e.g., CNNs, sparse and dense autoencoder, LSTMs for sequence to sequence learning, etc.)
- Providing an overview of the most successful applications with particular emphasis on models for solving visual recognition tasks.
We have compiled a detailed syllabus of the course student can use to double check their preparation against before the exam.
- [2020/2021] Course Syllabus: a detailed list of topics covered by the course and which students are expected to know when approaching the exam
Detailed course schedule
A detailed schedule of the course can be found here; topics are just indicative while days and teachers are correct up to some last minute change (I will notify you by email). Please note that not all days we have lectures!!
Note: Lecture timetable interpretation * On Wednesday, in T.2.1, Team 1, starts at 15:15, ends at 17:00 * On Wednesday, in T.2.1, Team 2, starts at 17:30, ends at 19:15 * On Thursday, in teacher webex room, starts at 16:30, ends at 19:15
Note: Teams division is based on your Codice Persona (and should minimize overlap) * Team 1: odd Codice Persona * Team 2: even Codice Persona
For a google calendar you might look here!
Date | Day | Time | Room | Teacher | Topic |
15/09/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team1 ) | Matteo Matteucci | Course Introduction + Deep Learning Intro |
15/09/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
16/09/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Matteo Matteucci | From Perceptrons to Feed Forward Neural Networks |
22/09/2021 | Wednesday | -- | -- | -- | -- No Lecture -- |
22/09/2021 | Wednesday | -- | -- | ||
23/09/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Matteo Matteucci | Feed forward neural networks and Backpropagation |
29/09/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Francesco Lattari | KERAS: Numpy, Tensorflow and FNN |
29/09/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
30/09/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Matteo Matteucci | Error Functions Design |
06/10/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Matteo Matteucci | Overfitting, cross-validation, and Early Stopping |
06/10/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
07/10/2021 | Thursday | --- | --- | --- | No Lectures (Graduation) |
13/10/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Francesco Lattari | KERAS: FFNN and Overfitting |
13/10/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
14/10/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Matteo Matteucci | Training tricks: activation functions, network initialization, and other stuff... |
20/10/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Giacomo Boracchi | The Image Classification Problem |
20/10/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
21/10/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Giacomo Boracchi | Convolutional Neural Networks |
27/10/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Francesco Lattari | KERAS: Convolutional Neural Networks |
27/10/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
28/10/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Giacomo Boracchi | Training with data scarcity |
03/11/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Francesco Lattari | KERAS: Convolutional Neural Networks |
03/11/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
04/11/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Giacomo Boracchi | Famous CNN architectures |
10/11/2021 | Wednesday | --- | --- | --- | -- No Lecture (Prove in Itinere) -- |
11/11/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Giacomo Boracchi | Fully Convolutional CNN, CNN for image segmentation (part 1)(part 2) |
17/11/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Giacomo Boracchi | GANs |
17/11/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
18/11/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Giacomo Boracchi | CNN for localization and detection |
24/11/2021 | Wednesday | 15:15 - 17:00 | T.2.1 (Team 1) | Francesco Lattari | KERAS: reconstruction and segmentation |
24/11/2021 | Wednesday | 17:30 - 19:15 | T.2.1 (Team 2) | ||
25/11/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Matteo Matteucci | Recurrent neural networks + LSTM |
01/12/2021 | Wednesday | 15:15 - 17:00 | E.Gatti - ed.20 (Team 1) | Francesco Lattari | KERAS: learning with time series |
01/12/2021 | Wednesday | 17:30 - 19:15 | E.Gatti - ed.20 (Team 2) | ||
02/12/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Matteo Matteucci | Sequence to sequence learning and Word Embedding |
08/12/2021 | Wednesday | --- | --- | --- | -- No Lecture (Holiday) -- |
09/12/2021 | Thursday | --- | --- | --- | -- No Lecture --- |
15/12/2021 | Wednesday | 15:15 - 17:00 | B.4.3 (Team 1) | Francesco Lattari | KERAS: learning with text |
15/12/2021 | Wednesday | 17:30 - 19:15 | B4.3 (Team 2) | ||
16/12/2021 | Thursday | 16:30 - 19:15 | Virtual Room | Matteo Matteucci | Attention Mechanism and Transformer |
Course Evaluation
Course evaluation is composed of two parts:
- A written examination covering the whole program graded up to 20/30
- 2 home projects in the form of a "Kaggle style" challenge practicing the topics of the course graded up to 5/30 each
The final score will sum the grade of the written exam and the grade of the home projects. Home projects are not compulsory and they are issued only once a year.
Teaching Material (the textbook)
Lectures will be based on material from different sources, teachers will provide their slides to students as soon they are available. As a general reference you can check the following text, but keep in mind that teachers will not follow it strictly
- Deep Learning. Ian Goodfellow, Yoshua Bengio, and Aaron Courville, MIT Press, 2016.
Regarding the python programming language, we will provide you the basics about numpy and python scripting in case you want some introductory material you can check here
- Python tutorials: these are the official python tutorials, we suggest 3.An Informal Introduction to Python (Numbers, Strings, Lists), 4.More Control Flow Tools (if, for, range, functions), 5.Data Structures (More on lists, Dictionaries), 9.Classes.
Course Slides
Slides from the lectures by Matteo Matteucci
- [2021/2022] Course Introduction: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics.
- [2021/2022] Machine Learning vs Deep Learning: introduction to machine learning paradigms and definition of deep learning with examples
- [2021/2022] From Perceptrons to Feed Forward Neural Networks: the original Perceptron model, Hebbian learning, feed-forward architecture, backpropagation and gradient descent, error functions and maximum likelihood estimation
- [2021/2022] Neural Networks Training: dealing with overfitting (weight decay, early stopping, dropout), vanishing gradient (ReLU and friends), batch normalization
- [2021/2022] Recurrent Neural Networks: learning with sequences, Recurrent Neural Networks, vanishing gradient, Long Short-Term Memories (LSTM), seq2seq model.
- [2021/2022] Word Embedding: neural autoencoders, language models, word embedding, word2vec, glove.
- [2021/2022] Beyond Sequence 2 Sequence Learning: Neural Turing Machines, attention mechanisms, the Transformer.
Slides from the lectures by Giacomo Boracchi are available in his webpage; for your convenience I am giving pointers to the slide here for you (in case you note discrepancies please notify me)
- [2021/2022] The Image Classification Problem
- [2021/2022] Convolutional Neural Networks
- [2021/2022] CNN Parameters and Training with Data Scarcity
- [2021/2022] Fully Convolutional CNN and CNN for Semantic Segmentation
- [2021/2022] CNN for Localization, CNN Explanations and Famous Architectures
- [2021/2022] Autoencoders and Generative Adversarial Networks
- [2021/2022] Object Detction Networks and Metric Learning
Slides from the practicals by Francesco Lattari and Eugenio Lomurno
- Python and convolutions: a Colab notebook with a crash course on Python 3 to prepare for the practicals and extra material about convolutions!
- Feed Forward Neural Networks: NumPy Arrays, TensorFlow2 Tensors, and Feed Forward Neural Network
- Dealing with Overfitting: Hold Out, Early Stopping and Cross-Validation
- Convolutional Neural Networks: 2D Convolutions and their meaning, Convolutional Neural Networks with Keras
- Augmentation and Fine Tuning: Data Augmentation, Transfer Learning, and Fine Tuning
- Autoencoders and Segmentation: Exercises on Autoencoders and Multiclass Segmentation
- Dealing with Time Series: Recurrent Neural Networks, Long Short-Term Memories, and other models.
External Sources
- Deriving Back Propagation on simple RNN/LSTM: a tutorial step by step to derive the backpropagation formulas
- A Recipe for Training Neural Networks: a neat post on Andrej Karpathy blog about do's and don'ts in training neural networks