Teachings

Select Academic Year:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
Professor
GIOVANNI PUGLISI (Tit.)
DIEGO ANGELO GAETANO REFORGIATO RECUPERO
Period
Annual 
Teaching style
Convenzionale 
Lingua Insegnamento
INGLESE 



Informazioni aggiuntive

Course Curriculum CFU Length(h)
[60/73]  INFORMATICS [73/00 - Ord. 2017]  PERCORSO COMUNE 6 48

Objectives

KNOWLEDGE AND UNDERSTANDING: The course aims at teaching the student the foundations of machine learning and the evolutions to deep learning technologies, the problems that may be solved using them, the feature engineering process that needs to be performed when solving a classification or regression task. The project delivered (in English) will focus on the resolution via software and using deep learning technologies and frameworks on a research or industrial problem. The student will act autonomously through either personal accounts on dedicated servers managed by the professor or on personal pc and will be able to integrate the appropriate technologies with the deep learning methodologies and to solve certain forecast tasks. Examples of integration of various information technologies with the Keras and Tensorflow frameworks or through the use of NVidia's CUDA architecture for GPUs will be shown in class. Final seminars on various application domains (Semantic Web, Natural Language Processing, Sentiment Analysis, Text Classification, etc.) will show the problems and best practices of real problems.



APPLICATION CAPACITIES: the student must be able to use the proposed frameworks and use the Python programming language to work with them and the supporting libraries (e.g. TensorFlow and Keras to define neural networks for solving a machine learning problem). The student will be able to carry out design and development activities of complex problems tackled with deep learning technologies. Moreover, through Google Colaboratory, each student will be able to use GPUs freely provided by Google remotely.

JUDGMENT AUTONOMY: the course aims to stimulate students by proposing exercises, and problems to be solved by implementing them with the frameworks shown to autonomously judge their work. Baseline methods will be provided to compare and measures the quality performances of students’ solutions. Developed skills concern the students' understanding of the deep learning problems and its analysis, development and solution.

ABILITY IN COMMUNICATION: the student must be able to express with appropriate terminology the fundamental concepts of deep learning, machine learning, and the software that is developed. A final report in English will be given to the professor and must be well organized and easy to read. It will have to contain a link to a software repository with ReadMe file for instructions on how to run the software and what it does. There is the opportunity to extend their work to be published in research papers.

ABILITY TO LEARN: the student will be able to learn some fundamental concepts of the use of deep learning technologies, concepts and frameworks. He/she will be able to tackle a forecast problem by identifying the features to extract from the data in order to define a model and train the neural networks. Using either Colaboratory or other local GPUs, he/she will be able to speed up his/her computation.



EXPECTED SKILLS: General and solid understanding of the fundamentals and application aspects related to the world of deep learning technologies. Knowledge of CUDA, TensorFlow, Keras, Colaboratory, Python language and best practices related to the machine learning domain (features extraction, features engineering, training, testing, precision/recall analysis). Students will learn deep learning technologies focused on applications to Image Processing, Computer Vision, Natural Language Processing and Semantic Web.

Prerequisites

Data mining
Programming skills (Python, Matlab)

Contents

Foundations:
What is Deep Learning and why?
Training, Validation and Test sets
K-cross validation
Data Preprocessing for Neural Networks
Feature Engineering
Overfitting and underfitting
Getting started with Neural Networks
Data representations for Neural Networks
Anatomy of a Neural Network
Advanced Deep-learning Best Practices
6 hours

Deep Learning for Computer Vision:
Convolutional Neural Networks
ConvNet Layers (Convolutional Layer, Pooling Layer, Fully-Connected Layer)
ConvNet Architectures (LeNet / AlexNet / GoogLeNet / VGGNet, ResNet)
Training Neural Networks for Computer Vision
Activation functions, initialization, dropout, batch normalization, update rules, ensembles, data augmentation, transfer learning
Image classification
Semantic segmentation
Object detection
18 hours

Deep Learning for Text and Sequences:
Working with Keras and TensorFlow
Working with Text Data
Understanding n-grams and bag-of-words
One-hot encoding of words and characters
Using Word Embeddings with the Embedding Layer
Creating Word Embeddings
Using Pretrained Word Embeddings
Understanding Recurrent Neural Networks
Understanding LSTM and GRU layers
A concrete LSTM example in Keras
Advanced use of Recurrent Neural Networks
A temperature-forecasting problem
Using recurrent dropout to fight overfitting
Stacking recurrent layers
Using bidirectional RNNs
Using mechanism with attention
A use case within the Sentiment Analysis domain
24 hours

Teaching Methods

Frontal lectures and exercises

Verification of learning

The final grade is computed as weighted average of:
- deployment of a computer vision project (1/2)
- deployment of a natural language processing or Semantic Web project (1/2)

The project must be agreed with the teacher.

The following indicates a classification of the final scores for the subject:
18-20: students know how to use some deep learning technologies for the management of simple tasks without achieving a significant improvement of accuracy with respect to classical machine learning methods

20-22: students know how to use some deep learning technologies for the resolution of advanced tasks without achieving a significant improvement of accuracy with respect to classical machine learning methods

22-24: students know how to use some deep learning technologies to solve simple tasks achieving a small improvement of accuracy with respect to classical machine learning methods

24-26: students know how to use some deep learning technologies to solve simple tasks achieving a substantial improvement of accuracy with respect to classical machine learning methods

26-28: students know how to use some deep learning technologies to solve advanced tasks achieving a substantial improvement of accuracy with respect to classical machine learning methods

28-30 cum laude: students know how to use some deep learning technologies to solve advanced tasks achieving a substantial improvement of accuracy with respect to classical machine learning methods by using complex analysis and extensions of deep learning technologies

Texts

Francois Chollet, “Deep Learning with Python”, Manning Publications, 2017.
Ian Goodfellow, Yoshua Bengio, Aaron Courville, "Deep Learning", MIT Press, 2016.

More Information

Slides, links, software repositories, and various teaching material will be provided along the course

Questionnaire and social

Share on:
Impostazioni cookie