Difference between revisions of "Artificial Neural Networks and Deep Learning"

From Chrome
Jump to: navigation, search
(Detailed course schedule)
(93 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 ;-)
 +
04/01/2021: Updated course syllabus (removed batch normalization)
 +
29/12/2020: An extra point for the students who participate to the second phase of the [https://chrome.deib.polimi.it/index.php?title=Artificial_Neural_Networks_and_Deep_Learning#.5B2020.2F2021.5D Image Segmentation task]!
 +
29/12/2020: The [https://chrome.deib.polimi.it/index.php?title=Artificial_Neural_Networks_and_Deep_Learning#.5B2020.2F2021.5D third challenge] is out! You have until 31st January 2021 to submit it ... no extensions this time ;-)         
 +
29/12/2020: Updated syllabus published
 +
29/12/2020: Past exams published
 +
11/12/2020: Uploaded the material from last week lectures!!!
 +
03/12/2020: Second course challenge is out! Check it [https://chrome.deib.polimi.it/index.php?title=Artificial_Neural_Networks_and_Deep_Learning#.5B2020.2F2021.5D here], you have to deliver it by 20th December 2020
 +
19/11/2020: Uploaded slides for today and the next days and past lectures videos
 +
18/11/2020: Updated schedule to reflect Teams merge fron today on
 +
08/11/2020: First homework challenge published [https://chrome.deib.polimi.it/index.php?title=Artificial_Neural_Networks_and_Deep_Learning#.5B2020.2F2021.5D here]
 +
18/10/2020: Updated links to lectures videos and lab notebooks
 +
14/10/2020: Requested changes of team have been authorized by Presidenza ... stay tuned I will update you on this soon
 +
13/10/2020: IMPORTANT CHANGE !!! -> Tomorrow 14/10/2020 lectures will be issued ONLY ONLINE!!!!
 +
09/10/2020: Uploaded lab notebooks and lab recordings
 +
08/10/2020: Change of schedule on the 15/10/2020 we will have online lecture
 +
08/10/2020: Today's video uploaded and Neural Networks Traning Slides updated in the cross-validation part
 +
06/10/2020: IMPORTANT CHANGE !!! -> Tomorrow 07/10/2020 lectures will be issued ONLY ONLINE!!!!
 +
02/10/2020: Published a guide to install the software which will be used in the labs [https://chrome.deib.polimi.it/index.php?title=Artificial_Neural_Networks_and_Deep_Learning#Lab_software_setup here]
 +
02/10/2020: Published fixed slides about feed forward neural networks
 +
01/10/2020: Pool to request the change of Team is [https://forms.office.com/Pages/ResponsePage.aspx?id=K3EXCvNtXUKAjjCd8ope6ztteKg6OERCsstxb4n43e9UMEw4TzNLTllJTE5UMUxUNUM1NTBYTlJFWC4u here]
 +
23/09/2020: Tomorrow 24/09/2020 we are going to have the online lecture as planned
 +
23/09/2020: Today's lectures published
 +
22/09/2020: Added slides on Perceptron, Hebbian learning and feed forward neural networks
 +
20/09/2020: Added links to the lecture recordings and uploaded slides
 
  14/09/2020: FIX - Team 1 ODD numbers, Team 2 EVEN numbers !!!
 
  14/09/2020: FIX - Team 1 ODD numbers, Team 2 EVEN numbers !!!
 
  14/09/2020: FIX - the hours of the second team were overlapping to the first, now they are correctly one after the other
 
  14/09/2020: FIX - the hours of the second team were overlapping to the first, now they are correctly one after the other
Line 56: Line 80:
 
* Providing an overview of the most successful applications with particular emphasis on models for solving visual recognition tasks.
 
* 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 doublecheck their preparation against before the exam.  
+
We have compiled a detailed syllabus of the course student can use to double check their preparation against before the exam.  
* [[Media:AN2DL_Syllabus.pdf|[2019/2020] Course Syllabus]]: a detailed list of topics covered by the course and which students are expected to know when approaching the exam
+
* [[Media:AN2DL_Syllabus_2021.pdf|[2020/2021] Course Syllabus]]: a detailed list of topics covered by the course and which students are expected to know when approaching the exam
 +
<!--* [[Media:AN2DL_Syllabus.pdf|[2019/2020] 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===
 
===Detailed course schedule===
Line 67: Line 92:
 
  * On Wednesday, in 2.1.2 (EX N.1.2), starts at 17:30, ends at 19:15
 
  * On Wednesday, in 2.1.2 (EX N.1.2), starts at 17:30, ends at 19:15
 
  * On Thursday, in teacher webex room, starts at 16:30, ends at 19:15
 
  * On Thursday, in teacher webex room, starts at 16:30, ends at 19:15
 +
 +
New Note: from November 18th teams are merged and lectures are moved online
 +
* On Wednesday, in teacher webex room, starts at 16:15, ends at 18:15
 +
* On Thursday, in teacher webex room, starts at 16:30, ends at 19:15
 +
  
 
{| border="1" align="center" style="text-align:center;"
 
{| border="1" align="center" style="text-align:center;"
Line 72: Line 102:
 
|Date || Day || Time || Room || Teacher || Topic
 
|Date || Day || Time || Room || Teacher || Topic
 
|-
 
|-
|16/09/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | [Course Introduction]
+
|16/09/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/c68da835820141b18032487d716442b8 Course Introduction]
 
|-
 
|-
 
|16/09/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
 
|16/09/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
 
|-
 
|-
|17/09/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [Perceptron and Hebbian Learning]
+
|17/09/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/5b21d56a672d436ebc3446d2f971658a Introduction to Deep Learning] + [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/8ca39bb673a54e2d976831c99b798633 Perceptron and Hebbian Learning]
 
|-
 
|-
|23/09/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | Python and Hebbian Learning Example
+
|23/09/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/3ecfb0a83eab498e88c7a6c30fef633e Hebbian Learning Example and the XOR Problem]
 
|-
 
|-
 
|23/09/2020 || Wednesday || 17:30 - 19:15 || 2.1.2   
 
|23/09/2020 || Wednesday || 17:30 - 19:15 || 2.1.2   
 
|-
 
|-
|24/09/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Feed forward neural networks + Backprop
+
|24/09/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/b276ff5f0ec24e2dad309705ab2700eb Feed forward neural networks and Backpropagation]
 
|-
 
|-
|30/09/2020 || Wednesday || 15:15 - 17:00 || 2.0.2  || rowspan="2" |  [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | Backpropagation Example (with Hebbian parallel)
+
|30/09/2020 || Wednesday || 15:15 - 17:00 || 2.0.2  || rowspan="2" |  [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/a2b082018a9c44ca95d4b5d4134b0a65 Backpropagation Example]
 
|-
 
|-
 
|30/09/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|30/09/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|-
 
|-
|01/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Error Functions and Weight decay
+
|01/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/cbc25ba1f9d84650b0b8d5c902281707 Error Functions Design]
 
|-
 
|-
|07/10/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS NN - Feed forward neural networks  
+
|07/10/2020 || Wednesday || 15:15 - 17:00 || Virtual Room || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/37c8e22daab748f4925f40ec2714ae05 KERAS NN - Feed forward neural networks (Part 1)][https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/d1f2c43ed1ec4ad887064f53e7c8ec45 (Part 2)]
 
|-
 
|-
|07/10/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
|07/10/2020 || Wednesday || 17:30 - 19:15 || Virtual Room
 
|-
 
|-
|08/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Facing overffitting .. and other training tricks
+
|08/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/d3c37248170341b4b128a8c795b5a288 Overffitting, cross-validation, and Early Stopping]
 
|-
 
|-
|14/10/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS NN - FFNN and Overfitting  
+
|14/10/2020 || Wednesday || 15:15 - 17:00 || Virtual Room|| rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/c4634b880d2c483d90cfee40da2b385b KERAS NN - FFNN and Overfitting]
 
|-
 
|-
|14/10/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
+
|14/10/2020 || Wednesday || 17:30 - 19:15 || Virtual Room  
 
|-
 
|-
|15/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || -- No Lecture Today --
+
|15/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/353566007b4b46d998dd4da3eb9266cc Facing overfitting, network initialization, and other stuff ...]
 
|-
 
|-
|21/10/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | Introduction to Image classification
+
|21/10/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/f81e84afaa734e07b1de3404b0ce1ab3 The Image Classification Problem]
 
|-
 
|-
 
|21/10/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|21/10/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|-
 
|-
|22/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || Convolutional Training Netwroks
+
|22/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/60b0c685bb0544be93232406b93dc216 Convolutional Neural Networks]
 
|-
 
|-
|28/10/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | Famous CNN Architectures
+
|28/10/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/bf739617705646bf992949a52b4e7220 CNN Training, Transfer Learning and Visualization. Fully Convolutional CNN (Part1).]
 
|-
 
|-
 
|28/10/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|28/10/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|-
 
|-
|29/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || Training with data scarcity
+
|29/10/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/47ddba848cac4df287ef38dd5c620a47 CNN Training, Transfer Learning and Visualization. Fully Convolutional CNN (Part2).]
 
|-
 
|-
|04/11/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS NN - Convolutional Neural Networks
+
|04/11/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/ae5d7492ccd84168820295a96f86e797 KERAS NN - Convolutional Neural Networks]
 
|-
 
|-
 
|04/11/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|04/11/2020 || Wednesday || 17:30 - 19:15 || 2.1.2  
 
|-
 
|-
|05/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || Fully Convolutional CNN, CNN for image segmentation
+
|05/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://politecnicomilano.webex.com/recordingservice/sites/politecnicomilano/recording/playback/8a475196b91a4fb5b2ddaac94fb763dd Fully Convolutional CNN, CNN for image segmentation]
 
|-
 
|-
|11/11/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 ||rowspan="2" | --- || rowspan="2" | -- No Lecture (Prove in Itinere) --
+
|11/11/2020 || Wednesday || --- || --- || --- || -- No Lecture (Prove in Itinere) --
 
|-
 
|-
|11/11/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
|12/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=ba034f944508406bb2f8d0ed0dc2c1be CNN for localization and detection]
 
|-
 
|-
|12/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || CNN for localization and detection
+
|18/11/2020 || Wednesday || 16:15 - 18:15 ||Virtual Room || [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=5855e086526f4a38b15a482bbc06aef1 GANs]
 
|-
 
|-
|18/11/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/giacomo.boracchi Giacomo Boracchi] || rowspan="2" | GANs
+
|19/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/webappng/sites/politecnicomilano/recording/2ebf7788731540f1866a9554db5ef379 Recurrent neural networks + LSTM]
 
|-
 
|-
|18/11/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
|25/11/2020 || Wednesday || 16:15 - 18:15 || Virtual Room || [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=5c9d857b4d1aa39d8dda3c50a797fb6d KERAS NN - Autoencoder, classification, segmentation]
 
|-
 
|-
|19/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Recurrent neural networks + LSTM
+
|26/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/webappng/sites/politecnicomilano/recording/b678aafa7fcf486e98ab293e1fc704fc Se2Seq Learning and Word Embedding]
 
|-
 
|-
|25/11/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || rowspan="2" | KERAS NN - Autoencoder, classification, segmentation
+
|02/12/2020 || Wednesday || 16:15 - 18:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/webappng/sites/politecnicomilano/recording/1931bcb8dc344c6dadcdfe1e5e6dc8a9 Attention Mechanisms]
 
|-
 
|-
|25/11/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
|03/12/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/webappng/sites/politecnicomilano/recording/8281dad4cb2a4bd8b974efc7de02066d The Transformer (and challenge presentation in the first 20 minutes)]
 
|-
 
|-
|26/11/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Word Embedding
+
|09/12/2020 || Wednesday || 16:15 - 18:15 || Virtual Room || [https://politecnicomilano.webex.com/join/francesco.lattari Francesco Lattari] || [https://politecnicomilano.webex.com/politecnicomilano/ldr.php?RCID=a48dc7e484038a379edd4ba0e7df7ad3 KERAS NN - Recurrent Neural Networks]
 
|-
 
|-
|02/12/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | Sequence to sequence learning
+
|10/12/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || [https://politecnicomilano.webex.com/webappng/sites/politecnicomilano/recording/620a7db68f5b49f7956cc52141b7281b Questions and Answers]
 
|-
 
|-
|02/12/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
|16/12/2020 || Wednesday || 16:15 - 18:15 || Virtual Room || --- || -- Spare Lecture --
|-
+
|03/12/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Attention Mechanism and Transformer
+
|-
+
|09/12/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || rowspan="2" | KERAS NN
+
|-
+
|09/12/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
|-
+
|10/12/2020 || Thursday || 16:30 - 19:15 || Virtual Room || [https://politecnicomilano.webex.com/join/matteo.matteucci Matteo Matteucci] || Questions and Answers
+
|-
+
|16/12/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 || rowspan="2" | --- || rowspan="2" | -- Spare Lecture --
+
|-
+
|16/12/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
 
|-
 
|-
 
|17/12/2020 || Thursday || 16:30 - 19:15 || Virtual Room || --- || -- Spare Lecture --
 
|17/12/2020 || Thursday || 16:30 - 19:15 || Virtual Room || --- || -- Spare Lecture --
 
|-
 
|-
|23/12/2020 || Wednesday || 15:15 - 17:00 || 2.0.2 ||rowspan="2" | --- || rowspan="2" | -- Spare Lecture --
+
|23/12/2020 || Wednesday || 16:15 - 18:15 || Virtual Room || --- || -- Spare Lecture --
|-
+
|23/12/2020 || Wednesday || 17:30 - 19:15 || 2.1.2
+
 
|-
 
|-
 
|}
 
|}
Line 249: Line 265:
  
 
Slides from the lectures by Matteo Matteucci
 
Slides from the lectures by Matteo Matteucci
*[[Media:AN2DL_00_2019_Course_Introduction.pdf|[2019/2020] Course Introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics.  
+
*[[Media:AN2DL_00_2021_Course_Introduction.pdf|[2020/2021] Course Introduction]]: introductory slides of the course with useful information about the course syllabus, grading, and the course logistics.  
*[[Media:AN2DL_01_2019_Deep_Learning_Intro.pdf|[2019/2020] Machine Learning vs Deep Learning]]: introduction to machine learning paradigms and definition of deep learning with examples
+
*[[Media:AN2DL_01_2021_Deep_Learning_Intro.pdf|[2020/2021] Machine Learning vs Deep Learning]]: introduction to machine learning paradigms and definition of deep learning with examples
*[[Media:AN2DL_02_2019_Prceptron_2_FeedForward.pdf|[2019/2020] 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:AN2DL_02_2021_Prceptron_2_FeedForward_v1.pdf|[2020/2021] 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:AN2DL_03_2019_NeuralNetwroksTraining.pdf|[2019/2020] Neural Networks Training]]: dealing with overfitting (weight decay, early stopping, dropout), vanishing gradient (ReLU and friends), batch normalization  
+
*[[Media:AN2DL_03_2021_NeuralNetwroksTraining_tmp2.pdf|[2020/2021] Neural Networks Training]]: dealing with overfitting (weight decay, early stopping, dropout), vanishing gradient (ReLU and friends), batch normalization  
*[[Media:AN2DL_04_2019_RecurrentNeuralNetworks.pdf|[2019/2020] Recurrent Neural Networks]]: learning with sequences, Recurrent Neural Networks, vanishing gradient, Long Short-Term Memories (LSTM).   
+
*[[Media:AN2DL_04_2021_RecurrentNeuralNetworks.pdf|[2020/2021] Recurrent Neural Networks]]: learning with sequences, Recurrent Neural Networks, vanishing gradient, Long Short-Term Memories (LSTM), seq2seq model.   
*[[Media:AN2DL_05_2019_Sq2SeqLearning.pdf|[2019/2020] Sequence 2 Sequence Learning]]: sequence to sequence learning as an encoder-decoder problem, Neural Turing Machines, attention mechanisms, the Transformer.
+
*[[Media:AN2DL_06_2021_WordEmbedding.pdf|[2020/2021] Word Embedding]]: neural autoencoders, language models, word embedding, word2vec, glove.
*[[Media:AN2DL_06_2019_WordEmbedding.pdf|[2019/2020] Word Embedding]]: neural autoencoders, language models, word embedding, word2vec, glove.
+
*[[Media:AN2DL_07_2021_BeyondSeq2Seq.pdf|[2020/2021] Beyond Sequence 2 Sequence Learning]]: Neural Turing Machines, attention mechanisms, the Transformer.
  
Slides from the lectures by Giacomo Boracchi are available in [http://home.deib.polimi.it/boracchi/teaching/AN2DL.htm his webpage], for you  
+
Slides from the lectures by Giacomo Boracchi are available in [https://boracchi.faculty.polimi.it/teaching/AN2DL.htm his webpage], for you  
* [http://home.deib.polimi.it/boracchi/teaching/AN2DL/2019_AN2DL_Lez1_ImageClassification.pdf Image Classification]: Image classification and related issues, template matching, image classification via nearest neighbors methods, image classification via linear classifiers, image classification via hand-crafted features.  
+
* [https://boracchi.faculty.polimi.it/teaching/AN2DL/2020_AN2DL_Lez1_ImageClassification.pdf Image Classification]: Image classification and related issues, template matching, image classification via nearest neighbors methods, image classification via linear classifiers, image classification via hand-crafted features.
 +
* [https://boracchi.faculty.polimi.it/teaching/AN2DL/2020_AN2DL_Lez2_CNN.pdf Convolutional Neural Networks]: From hand-crafted features to convolutional neural networks.
 +
* [https://boracchi.faculty.polimi.it/teaching/AN2DL/2020_AN2DL_Lez3_4_CNN_TL_Data_Scarcity.pdf Training Convolutional Neural Networks]: How to train CNNs, famous architectures, data augmentation, and the like.
 +
* [https://boracchi.faculty.polimi.it/teaching/AN2DL/2020_AN2DL_Lez5_CNN_Architectures_CNN_for_segmentation.pdf Convolutional Neural Networks for Image Segmentation]: CNN architectures for segmentation and detection.
  
 
Slides from the practicals by Francesco Lattari
 
Slides from the practicals by Francesco Lattari
*[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)
*[2020/2021] Convolutional architectures in Keras]]: How to build, train, and evaluate convolutional models for classification and segmentation in 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)
*[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_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_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_2019_KerasIntroduction.zip|[2019/2020] Introduction to Keras]]: Introduction to Keras and Tensorflow2 (slides + notebook)
 
*[[Media:AN2DL_Lab1_2019_KerasIntroduction.zip|[2019/2020] Introduction to Keras]]: Introduction to Keras and Tensorflow2 (slides + notebook)
Line 269: Line 290:
 
*[[Media:AN2DL_Lab3_2019_KerasRNN.zip|[2019/2020] Recurrent architectures in Keras]]: How to build, train, and evaluate recurrent neural architectures in Keras and Tensorflow2 (slides + notebook)
 
*[[Media:AN2DL_Lab3_2019_KerasRNN.zip|[2019/2020] Recurrent architectures in Keras]]: How to build, train, and evaluate recurrent neural architectures in Keras and Tensorflow2 (slides + notebook)
 
-->
 
-->
 +
 +
===Past Online Exams===
 +
 +
As for the last semester, Politecnico di Milano exams will be held online. We have not yet decided the digital environment we are going to use for the exams, but you can have a flavor of what to expect by looking at past semester exam calls.
 +
 +
*[[Media:AN2DL_20200619.pdf| 19/06/2020 Online Exam]]
 +
*[[Media:AN2DL_20200715.pdf| 15/07/2020 Online Exam]]
 +
*[[Media:AN2DL_20200903.pdf| 03/09/2020 Online Exam]]
 +
 +
'''Note''': this year written exams will be graded 26 points instead of 27. This is because the past year challenges were 5 points while this year they are 6 points worth. This means that the maximum mark is still 26+6=32. You can get an extra point if you participate in the second phase of the Image Segmentation Challenge thus the full mark could reach in principle 33. To get a laude it is required to pass 30.
 +
 +
===Lab software setup===
 +
 +
For the lab in class we suggest you install TensorFlow 2 on you machine so to be able to follow the coding examples step by step. Here what you should do:
 +
 +
* Install Anaconda according to your distro (Windows/Linux), python 3.7 from [https://www.anaconda.com/distribution]
 +
* From terminal (Anaconda Prompt in Windows):
 +
** conda create -n tf_env python=3.7 tensorflow-gpu
 +
** conda activate tf_env
 +
** pip install --upgrade pip
 +
** pip install jupyter
 +
** pip install pillow
 +
* Test your Tensorflow install
 +
** Run python from terminal (Anaconda Prompt in Windows) with «python»
 +
** import tensorflow
 +
** print(tensorflow.__version__) -> your should get version 2.1.0 or higher
 +
* Test your Jupiter install
 +
** From terminal (Anaconda Prompt in Windows) use the command jupyter notebook -> a Jupiter tab should appear in your browser
 +
** On top right click on «New» and select «Python 3» from the menu -> a Jupiter Notebook should appear in a new tab
 +
** Write code 3b and 3c in cell "In [ ]:" and execute clicking on «Run».
  
 
===Kaggle Homeworks===
 
===Kaggle Homeworks===
Line 276: Line 327:
 
====[2020/2021]====
 
====[2020/2021]====
  
Not yet published
+
* [https://www.kaggle.com/t/d475328a2ba74d5a9a49788d5c308d69 Image Classification Homework]: the first homework is about image classification with convolutional neural networks. The deadline to submit the results is November the 22nd.
 +
* [https://competitions.codalab.org/competitions/27176 Image Segmentation Homework]: the second homework is about image segmentation. This competition is open also to external participants so it lasts until January, you are not requested to participate to the two Stages, just at the Development one and your delivery is expected by December 20th. There are different datasets and leaderboards you can decide to participate to any of the leaderboard and to use any approach you prefer for segmentation.
 +
* [https://www.kaggle.com/t/cb49614dda9d4c7cac65be12451ba3cd Visual Question answering Homework]: the third homework is about visual question answering and it mixes feature extraction from images and text in order to solve an multi domain classification tas. This time we do not want to put pressure on you and the deadline is quite relaxed, you have until the 31st of January to submit your solution.
 +
 
 +
* [https://competitions.codalab.org/competitions/27176 '''Extra point ->''' Image Segmentation Homework]: from 19th January 2021 till 22nd January 2021 there will be the second phase of the image segmentation challenge where new data will be released to train you models and participate to the final leaderboard. One extra point for you if you fine tune your models and participate into this!!!
  
 
====[2019/2020]====
 
====[2019/2020]====

Revision as of 11:05, 4 January 2021


The following are last minute news you should be aware of ;-)

04/01/2021: Updated course syllabus (removed batch normalization)
29/12/2020: An extra point for the students who participate to the second phase of the Image Segmentation task!
29/12/2020: The third challenge is out! You have until 31st January 2021 to submit it ... no extensions this time ;-)          
29/12/2020: Updated syllabus published
29/12/2020: Past exams published
11/12/2020: Uploaded the material from last week lectures!!! 
03/12/2020: Second course challenge is out! Check it here, you have to deliver it by 20th December 2020
19/11/2020: Uploaded slides for today and the next days and past lectures videos
18/11/2020: Updated schedule to reflect Teams merge fron today on
08/11/2020: First homework challenge published here
18/10/2020: Updated links to lectures videos and lab notebooks 
14/10/2020: Requested changes of team have been authorized by Presidenza ... stay tuned I will update you on this soon 
13/10/2020: IMPORTANT CHANGE !!! -> Tomorrow 14/10/2020 lectures will be issued ONLY ONLINE!!!! 
09/10/2020: Uploaded lab notebooks and lab recordings
08/10/2020: Change of schedule on the 15/10/2020 we will have online lecture
08/10/2020: Today's video uploaded and Neural Networks Traning Slides updated in the cross-validation part
06/10/2020: IMPORTANT CHANGE !!! -> Tomorrow 07/10/2020 lectures will be issued ONLY ONLINE!!!! 
02/10/2020: Published a guide to install the software which will be used in the labs here
02/10/2020: Published fixed slides about feed forward neural networks
01/10/2020: Pool to request the change of Team is here 
23/09/2020: Tomorrow 24/09/2020 we are going to have the online lecture as planned 
23/09/2020: Today's lectures published
22/09/2020: Added slides on Perceptron, Hebbian learning and feed forward neural networks
20/09/2020: Added links to the lecture recordings and uploaded slides 
14/09/2020: FIX - Team 1 ODD numbers, Team 2 EVEN numbers !!!
14/09/2020: FIX - the hours of the second team were overlapping to the first, now they are correctly one after the other
13/09/2020: The course is about to start ... stay tuned!


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.

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 2.0.2 (EX N.0.2), starts at 15:15, ends at 17:00
* On Wednesday, in 2.1.2 (EX N.1.2), starts at 17:30, ends at 19:15
* On Thursday, in teacher webex room, starts at 16:30, ends at 19:15
New Note: from November 18th teams are merged and lectures are moved online
* On Wednesday, in teacher webex room, starts at 16:15, ends at 18:15
* On Thursday, in teacher webex room, starts at 16:30, ends at 19:15


Date Day Time Room Teacher Topic
16/09/2020 Wednesday 15:15 - 17:00 2.0.2 Matteo Matteucci Course Introduction
16/09/2020 Wednesday 17:30 - 19:15 2.1.2
17/09/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Introduction to Deep Learning + Perceptron and Hebbian Learning
23/09/2020 Wednesday 15:15 - 17:00 2.0.2 Matteo Matteucci Hebbian Learning Example and the XOR Problem
23/09/2020 Wednesday 17:30 - 19:15 2.1.2
24/09/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Feed forward neural networks and Backpropagation
30/09/2020 Wednesday 15:15 - 17:00 2.0.2 Matteo Matteucci Backpropagation Example
30/09/2020 Wednesday 17:30 - 19:15 2.1.2
01/10/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Error Functions Design
07/10/2020 Wednesday 15:15 - 17:00 Virtual Room Francesco Lattari KERAS NN - Feed forward neural networks (Part 1)(Part 2)
07/10/2020 Wednesday 17:30 - 19:15 Virtual Room
08/10/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Overffitting, cross-validation, and Early Stopping
14/10/2020 Wednesday 15:15 - 17:00 Virtual Room Francesco Lattari KERAS NN - FFNN and Overfitting
14/10/2020 Wednesday 17:30 - 19:15 Virtual Room
15/10/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Facing overfitting, network initialization, and other stuff ...
21/10/2020 Wednesday 15:15 - 17:00 2.0.2 Giacomo Boracchi The Image Classification Problem
21/10/2020 Wednesday 17:30 - 19:15 2.1.2
22/10/2020 Thursday 16:30 - 19:15 Virtual Room Giacomo Boracchi Convolutional Neural Networks
28/10/2020 Wednesday 15:15 - 17:00 2.0.2 Giacomo Boracchi CNN Training, Transfer Learning and Visualization. Fully Convolutional CNN (Part1).
28/10/2020 Wednesday 17:30 - 19:15 2.1.2
29/10/2020 Thursday 16:30 - 19:15 Virtual Room Giacomo Boracchi CNN Training, Transfer Learning and Visualization. Fully Convolutional CNN (Part2).
04/11/2020 Wednesday 15:15 - 17:00 2.0.2 Francesco Lattari KERAS NN - Convolutional Neural Networks
04/11/2020 Wednesday 17:30 - 19:15 2.1.2
05/11/2020 Thursday 16:30 - 19:15 Virtual Room Giacomo Boracchi Fully Convolutional CNN, CNN for image segmentation
11/11/2020 Wednesday --- --- --- -- No Lecture (Prove in Itinere) --
12/11/2020 Thursday 16:30 - 19:15 Virtual Room Giacomo Boracchi CNN for localization and detection
18/11/2020 Wednesday 16:15 - 18:15 Virtual Room Giacomo Boracchi GANs
19/11/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Recurrent neural networks + LSTM
25/11/2020 Wednesday 16:15 - 18:15 Virtual Room Francesco Lattari KERAS NN - Autoencoder, classification, segmentation
26/11/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Se2Seq Learning and Word Embedding
02/12/2020 Wednesday 16:15 - 18:15 Virtual Room Matteo Matteucci Attention Mechanisms
03/12/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci The Transformer (and challenge presentation in the first 20 minutes)
09/12/2020 Wednesday 16:15 - 18:15 Virtual Room Francesco Lattari KERAS NN - Recurrent Neural Networks
10/12/2020 Thursday 16:30 - 19:15 Virtual Room Matteo Matteucci Questions and Answers
16/12/2020 Wednesday 16:15 - 18:15 Virtual Room --- -- Spare Lecture --
17/12/2020 Thursday 16:30 - 19:15 Virtual Room --- -- Spare Lecture --
23/12/2020 Wednesday 16:15 - 18:15 Virtual Room --- -- Spare Lecture --


Course Evaluation

Course evaluation is composed of two parts:

  • A written examination covering the whole program graded up to 26/32 ... may be less
  • A home project in the form of a "Kaggle style" competition practicing the topics of the course graded up to 6/32 ... may be more

The final score will sum the grade of the written exam and the grade of the home project.

You can find here one example of the exam text to get a flavor of what to expect in the written examination.

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.

Course Slides

Slides from the lectures by Matteo Matteucci

Slides from the lectures by Giacomo Boracchi are available in his webpage, for you

Slides from the practicals by Francesco Lattari

Past Online Exams

As for the last semester, Politecnico di Milano exams will be held online. We have not yet decided the digital environment we are going to use for the exams, but you can have a flavor of what to expect by looking at past semester exam calls.

Note: this year written exams will be graded 26 points instead of 27. This is because the past year challenges were 5 points while this year they are 6 points worth. This means that the maximum mark is still 26+6=32. You can get an extra point if you participate in the second phase of the Image Segmentation Challenge thus the full mark could reach in principle 33. To get a laude it is required to pass 30.

Lab software setup

For the lab in class we suggest you install TensorFlow 2 on you machine so to be able to follow the coding examples step by step. Here what you should do:

  • Install Anaconda according to your distro (Windows/Linux), python 3.7 from [1]
  • From terminal (Anaconda Prompt in Windows):
    • conda create -n tf_env python=3.7 tensorflow-gpu
    • conda activate tf_env
    • pip install --upgrade pip
    • pip install jupyter
    • pip install pillow
  • Test your Tensorflow install
    • Run python from terminal (Anaconda Prompt in Windows) with «python»
    • import tensorflow
    • print(tensorflow.__version__) -> your should get version 2.1.0 or higher
  • Test your Jupiter install
    • From terminal (Anaconda Prompt in Windows) use the command jupyter notebook -> a Jupiter tab should appear in your browser
    • On top right click on «New» and select «Python 3» from the menu -> a Jupiter Notebook should appear in a new tab
    • Write code 3b and 3c in cell "In [ ]:" and execute clicking on «Run».

Kaggle Homeworks

As part of the evaluation (up to 6 marks in the final grade) we are issuing 3 homeworks in the form of "Kaggle style" competitions. They are meant to practice the course topics on simple image recognition tasks.

[2020/2021]

  • Image Classification Homework: the first homework is about image classification with convolutional neural networks. The deadline to submit the results is November the 22nd.
  • Image Segmentation Homework: the second homework is about image segmentation. This competition is open also to external participants so it lasts until January, you are not requested to participate to the two Stages, just at the Development one and your delivery is expected by December 20th. There are different datasets and leaderboards you can decide to participate to any of the leaderboard and to use any approach you prefer for segmentation.
  • Visual Question answering Homework: the third homework is about visual question answering and it mixes feature extraction from images and text in order to solve an multi domain classification tas. This time we do not want to put pressure on you and the deadline is quite relaxed, you have until the 31st of January to submit your solution.
  • Extra point -> Image Segmentation Homework: from 19th January 2021 till 22nd January 2021 there will be the second phase of the image segmentation challenge where new data will be released to train you models and participate to the final leaderboard. One extra point for you if you fine tune your models and participate into this!!!

[2019/2020]

  • Image Classification Homework: the first homework is about image classification with convolutional neural networks. The deadline to submit the results is November the 30th.
  • Image Segmentation Homework: the second homework is about image segmentation with convolutional neural networks and the like. The deadline to submit the results is December the 17th.
  • Visual Question Answering Homework: the third homework is about visual question answering with convolutional and recurrent neural networks ... plus word2vec. The deadline to submit the results is January the 15th.