-
Presentation
Presentation
This course aims to introduce the fundamentals of deep learning, covering the theoretical, computational, and practical principles underlying the development of models based on deep neural networks. The course examines the main deep learning architectures, including fully connected, convolutional, recurrent, and generative models, as well as optimisation algorithms, activation functions, loss functions, training and regularisation techniques, and methodologies for model selection and hyperparameter optimisation. The course also emphasises the importance of data quality and the proper construction of training, validation, and test datasets. By the end of the course, students will be able to select the most appropriate architectures and loss functions for different problems, implement, train, and optimise models using modern deep learning libraries, and critically evaluate their performance and the quality of the results obtained.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 5
-
Year | Nature | Language
Year | Nature | Language
3 | Optional | Português
-
Code
Code
ULHT46-27708
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
1. Introduction: fundamentals of deep learning, nonlinear transformations and overfitting. 2. Artificial neural networks, backpropagation. and deep feedforward networks. 3. Implementation and training of deep neural networks 4. Optimization and regularization of feedforward networks. Training, testing and cross validation. 5. Convolution networks, theory and practice 6. Unsupervised deep learning with autoencoders 7. Representation and transfer learning 8. Generative models 9. Recurrent networks and problems with sequential data 10. Reinforcement learning 11. Practical aspects of deep network selection, application and optimization 12. Large Language Models
-
Objectives
Objectives
Understand: - The foundations of deep learning. - Fundamentals of deep network computing. - Optimization algorithms, activation functions, objective functions. - Different deep network architectures and their usefulness: Dense, convolution, recurrent, generative models. - Training and regularization of deep networks. - The importance of data characteristics and of training, validation and test sets Be able to: - Select appropriate models and loss functions for different problems. - Use modern libraries for deep learning. - Implement deep networks, optimize their hyper-parameters and train them. - Evaluate the training of the models and the quality of the results. Know: - Types of problems solved with deep networks. - Architectures and regularization of deep networks. - Model selection methods and hyper-parameters.
-
Teaching methodologies
Teaching methodologies
The syllabus's contents are presented in the lectures using presentations and case studies, stimulating the discussion between students and professors. In practical classes, students develop data analysis practices that focus on problems with progressive transitions of complexity.
-
References
References
- Zhang, A., Lipton, Z. C., Li, M., & Smola, A. J. (2023). Dive into deep learning. CUP, https://d2l.ai - Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning . MIT Press. https://deeplearningbook.org - Sutton R. S., & Barto, A. G. (2018). Reinforcement learning: An introduction. MIT Press. - François-Lavet, V., Henderson, P., Islam, R., Bellemare, M. G., & Pineau, J. (2018). An introduction to deep reinforcement learning. Foundations and Trends(r) in Machine Learning, 11(3-4), 219-354. - Bronstein, M. M., Bruna, J., Cohen, T., & Veli¿kovi¿, P. (2021). Geometric deep learning: Grids, groups, graphs, geodesics, and gauges. arXiv preprint arXiv:2104.13478. - https://sebastianraschka.com/blog/2021/dl-course.html
-
Assessment
Assessment
A disciplina é teórico-prática, havendo uma alternância entre a componente expositiva e participativa. As aulas teóricas seguem o programa definido, apresentando os conceitos teóricos sustentados por exemplos práticos. A aprendizagem dos conceitos é validada através de pequenos exercícios em papel feitos durante a aula, que permitem ao professor aferir da eficácia das suas explicações. Nas aulas práticas os alunos aplicam os conceitos teóricos na resolução de exercícios de programação feitos em computador, de forma individual ou em grupo (máximo 3 elementos por grupo). As aulas práticas decorrem sempre em sintonia com as aulas teóricas da semana anterior.
Avaliação Contínua:
30% - 1 teste com nota mínima de 9.5 valores (componente teórica).
70% - Projeto em grupos de 2/3 com defesa presencial em grupo. A nota do projeto tem nota mínima de 9.5 (componente prática).
Época de recurso/especial:
50% - Exame 50% - Project. É necessário ter 9.5 de nota mínima em cada componente para aprovar à disciplina.
-
Mobility
Mobility
No





