Ficha Unidade Curricular (FUC)

Informação Geral / General Information


Código :
03723
Acrónimo :
03723
Ciclo :
1.º ciclo
Línguas de Ensino :
Português (pt)
Língua(s) amigável(eis) :
Português

Carga Horária / Course Load


Semestre :
1
Créditos ECTS :
6.0
Aula Teórica (T) :
0.0h/sem
Aula Teórico-Prática (TP) :
54.0h/sem
Aula Prática e Laboratorial (PL) :
0.0h/sem
Trabalho de Campo (TC) :
0.0h/sem
Seminario (S) :
0.0h/sem
Estágio (E) :
0.0h/sem
Orientação Tutorial (OT) :
1.0h/sem
Outras (O) :
0.0h/sem
Horas de Contacto :
55.0h/sem
Trabalho Autónomo :
95.0
Horas de Trabalho Total :
150.0h/sem

Área científica / Scientific area


Matemática

Departamento / Department


Departamento de Matemática

Ano letivo / Execution Year


2024/2025

Pré-requisitos / Pre-Requisites


Os alunos devem estar familiarizados com os fundamentos do cálculo diferencial e integral em R^n e com noções básicas de álgebra linear. Os tópicos finais da cadeira (redes neuronais) também requerem conhecimentos básicos de teoria das probabilidades, como os lecionados no início da cadeira Probabilidades e Processos Estocásticos.

Objetivos Gerais / Objectives


Apreender conceitos e técnicas fundamentais de análise de Fourier, e de regressão e classificação com redes neuronais, com vista a aplicações em tratamento e processamento de sinal/imagem, análise de dados e aprendizagem automática.

Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes


No final da UC o aluno deverá ser capaz de: OA1. Representar algumas funções em séries de Fourier. OA2. Determinar transformadas de Fourier contínuas e discretas. OA3. Conhecer e aplicar algumas propriedades básicas das séries e transformadas de Fourier OA4. Utilizar métodos e propriedades de análise de Fourier no contexto de processamento de sinal, tratamento de imagem e compressão de dados. OA5. Implementar em python (numpy) exemplos concretos das aplicações referidas no ponto anterior. OA6. Determinar arquiteturas básicas de redes neuronais para aplicar em problemas de regressão e classificação. OA7. Aplicar algoritmos de otimização numérica no contexto de problemas de aprendizagem automática com redes neuronais. OA8. Implementar em python (numpy e Keras) o descrito nos últimos dois pontos.

Conteúdos Programáticos / Syllabus


CP1. Números complexos e produto interno. 1.1. Números complexos 1.2. Funções complexas de variável real. 1.3. Produto interno e ortogonalidade. 1.4. Regressão linear; implementação em python. CP2. Análise de Fourier e aplicações. 2.1. Séries de Fourier. 2.2. Transformada de Fourier. 2.3. Convolução (contínua). 2.4. Filtros; implementação em python. CP3. A transformada de Fourier discreta. 3.1. A transformada de Fourier discreta e FFT. 3.2. Convolução discreta. 3.3. Programação dinâmica. 3.4. Wavelets e JPEG. 3.5. Tratamento e compressão de imagem; implementação em python. CP4. Redes Neuronais: 4.1. Arquitetura básica, funções de ativação e funções de custo. 4.2. Problemas de regressão e problemas de classificação. 4.3. Teoremas de aproximação universal. 4.4. Otimização numérica: descida do gradiente e variantes. 4.5. O algoritmo Backpropagation. 4.6. Reconhecimento de imagem; implementação em python (numpy e Keras).

Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes


O CP1 aborda números complexos e produto interno, estabelecendo a base matemática necessária para a análise de Fourier (OA1, OA2, OA3). CP2 expande este conhecimento com séries e transformadas de Fourier e convolução, crucial para o processamento de sinal (OA1, OA2, OA3, OA4). A implementação em Python (OA5) é incentivada desde o início, preparando os alunos para a prática computacional. O CP3 foca-se na transformada de Fourier discreta, FFT, e aplicações em processamento de imagem e compressão de dados (OA2, OA4, OA5). CP4 introduz redes neuronais e técnicas de otimização, alinhando-se com problemas de regressão e classificação (OA6, OA7). A implementação prática de métodos de aprendizagem automática em Python cria uma ligação explicita entre CP4.6 e OA8. Assim, cada conteúdo programático está diretamente vinculado a pelo menos um objetivo de aprendizagem, garantindo uma formação abrangente e coerente.

Avaliação / Assessment


Aprovação com classificação não inferior a 10 valores numa das modalidades: - Avaliação ao longo do semestre versão 1: 4 testes (75%) + 4 mini-projetos em python (25%), ou - Avaliação ao longo do semestre versão 2: Exame realizado na primeira época (75%) + 4 mini-projetos em python (25%), ou - Avaliação por Exame (100%), em qualquer uma das épocas de exame. - Aprovação em avaliação ao longo do semestre v1 requer uma nota mínima de 8.5 em 20 na média de cada um dos pares de testes T1+T2 e T3+T4. - Aprovação em avaliação ao longo do semestre v2 requer uma nota mínima de 8.5 em 20 no exame. - No caso da avaliação longo do semestre v1, os alunos poderão realizar pela primeira vez, ou repetir, 1 dos testes, e apenas 1, durante as épocas de exame. Caso faltem a 2 ou mais testes serão excluídos da avaliação periódica v1. - A apresentação de trabalho extra através da resolução de "desafios", que vão ser propostos ao longo do semestre, resultará numa possível bonificação até 1 valor. - Os mini-projetos serão realizados em grupos, formados idealmente por 3 alunos. No caso dos mini-projetos conterem uma componente competitiva, parte da sua avaliação irá refletir a classificação relativa dos grupos nessa competição. - Notas superiores ou iguais a 19, em qualquer das modalidades anteriores, poderão estar sujeitas a uma defesa de nota.

Metodologias de Ensino / Teaching methodologies


As aulas dividem-se entre aulas de carácter teórico-prático TP e aulas em laboratório. Desenrolam-se de acordo com as seguintes metodologias de ensino-aprendizagem (MEA): MEA1. Exposição e discussão MEA2. Resolução de exercícios MEA3. Trabalho autónomo do aluno O aluno deve dedicar aproximadamente 4 horas semanais em trabalho autónomo para (i) leitura da bibliografia indicada e revisão da matéria, (ii) resolução de exercícios/problemas e na realização de experiências computacionais em python.

Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes


Metodologias de Ensino-Aprendizagem (MEA): MEA1. Exposição e discussão: Este método facilita a introdução teórica e conceptual dos temas, proporcionando aos alunos uma compreensão inicial e um espaço para esclarecer dúvidas. Ao discutir conceitos complexos como séries e transformadas de Fourier, e aprendizagem automática com redes neuronais, os alunos podem começar a internalizar os fundamentos necessários para todos os OA. MEA2. Resolução de exercícios: A prática através de exercícios reforça a aprendizagem teórica, permitindo aos alunos aplicarem conceitos em problemas específicos. Isso é crucial para todos os OA. MEA3. Trabalho autónomo do aluno: Incentiva a autossuficiência e o aprofundamento do conhecimento através de estudo individual e prática. Com 4 horas semanais dedicadas a este fim, os alunos têm tempo para rever a bibliografia, resolver exercícios e realizar experiências computacionais em Python, essencial para todos os OA. Aulas Teórico-Práticas (TP) e Laboratoriais: Aulas TP: Integram exposição teórica com resolução de problemas, preparando os alunos para aplicar os conceitos aprendidos em situações práticas, conforme exigido pelos OA. Aulas em laboratório: Focam na implementação prática, principalmente em Python, onde os alunos podem desenvolver e testar algoritmos que surgem como aplicação dos conteúdos programáticos.

Observações / Observations


Bibliografia Principal / Main Bibliography


- João L. Costa, Slides da cadeira.

Bibliografia Secundária / Secondary Bibliography


- Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009. - Goodfellow, I and Bengio, Y and Courville, A, "Deep Learning", MIT press, 2016 - Chollet, F., "Deep Learning with Python: Second Edition", Manning Publications, 2021. - Rousseau, C and Saint-Aubin, Y., "Mathematics and Technology", Springer 2008.

Data da última atualização / Last Update Date


2024-07-20