EA098 - Tópicos em Engenharia de Computação
Turma: A -
Período: 2/2026 -
Tipo Período: 2o. semestre -
Disciplina:
Eletiva 4 créditos.
-
Idioma: Português
Acompanha Pós:
IA025
- Introdução ao Aprendizado Profundo
Tema:
Ementa: Curso introdutório ao aprendizado profundo com teoria e prática baseadas em problemas de processamento de imagens (PI) e de linguagem natural (PLN). Redes neurais profundas são hoje aplicadas em inúmeras áreas que envolvem processamento de imagens, tais como robótica industrial, diagnóstico de imagens médicas e carros autônomos. Similarmente, redes neurais profundas são o estado da arte em diversas tarefas de Processamento de Linguagem Natural, tais como tradução automática, perguntas e respostas, e busca de documentos. Neste curso aprenderemos os fundamentos do aprendizado profundo, como backpropagation, funções de custo, otimizadores, programação matricial eficiente em GPUs/TPUs, redes convolucionais, mecanismo de atenção, transformers, pré-treinamento não supervisionado, aumento de dados, e métricas de desempenho. O curso utiliza programação no PyTorch e requer conhecimentos básicos de álgebra linear e probabilidade.
Conteúdo Programático: Algoritmo de backpropagation, funções de perda e otimizadores. Programação matricial eficiente em GPUs/TPUs. Redes neurais convolucionais para visão computacional. Introdução ao mecanismo de atenção e ao modelo Transformer. Estratégias de pré-treinamento não supervisionado e aumento de dados. Avaliação com métricas de desempenho apropriadas. Desenvolvimento de projeto final com aplicação dos conceitos estudados.
Plano de Desenvolvimento:
Conforme IN CCG nº 02/2025 - Cláusula de Honestidade e Lisura Acadêmica
Todas as atividades relacionadas às disciplinas devem ser realizadas em conformidade com as orientações fornecidas pelos docentes e com o devido rigor ético.
Caso o(a) docente responsável, no exercício de sua liberdade de cátedra, forme convicção acerca da ausência de lisura ou de condições adequadas para a realização da atividade avaliativa, poderá atribuir nota zero, seja para a atividade única ou, conforme o caso, para o conjunto de atividades do semestre. A ocorrência deverá ser fundamentada e comunicada à Coordenação de Curso de Graduação, podendo o(a) estudante estar sujeito a processo administrativo.
Bibliografia: LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep learning." nature 521.7553 (2015): 436-444. Nielsen, Michael A. Neural networks and deep learning. Vol. 2018. San Francisco, CA: Determination press, 2015. Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Communications of the ACM 60.6 (2017): 84-90. Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017. Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).
Critério de Avaliação: O curso segue uma estratégia teórico-prática, baseada em exercícios de programação e em análises de artigos. Alunos irão precisar preparar resumos de artigos importantes relacionados à história do Aprendizado Profundo e entregar exercícios de programação semanais. Uma parte significativa do curso é destinada ao projeto final (individual ou em dupla), que corresponde à maior parte da nota. Durante a fase de projeto final, professores e pesquisadores externos podem ser convidados para participar como mentores, com a possibilidade de convite dos melhores projetos para submissão de artigos. A aula típica, totalmente presencial, se dá na seguinte ordem: teste síncrono referenciando o tema e o exercício da aula passada; discussão com participação dos alunos da leitura da semana; discussão com participação dos alunos das entregas de exercícios práticos. A seguir, exposição teórica sobre o assunto do próximo exercício. O exercício a ser feito em casa e entregue na próxima aula é postado numa planilha, na qual cada aluno pode ver a solução do colega, o que permite que o exercício seja feito de forma colaborativa. Adicionalmente, qualquer consulta é permitida. Existe um canal Slack em que os alunos são incentivados a tirar dúvidas durante a semana. Nota-se a natureza parcialmente similar à estratégia de “sala de aula invertida”, onde o aprendizado se dá pelo cometimento de erros na execução das atividades e pelas discussões dos mesmos em sala de aula. A participação na discussão da leitura da semana e dos exercícios pode envolver o sorteio de um aluno para iniciar a discussão. O projeto final envolve apresentações e um relatório final no formato de artigo. O curso usará o Google Classroom, com notas de 0 a 100 para cada atividade. Atividades incluem: testes síncronos, exercícios, resumos de artigos e projeto final, com os seguinte pesos para a nota final: Nota Final (0-100): 10% testes 30% exercícios 10% resumos 50% projeto final Conceito: A: >= 85 B: >= 70 C: >= 50 D: < 50 E: Reprovado por frequência (obrigatória frequência > 75%) Como o curso é bastante prático e as explicações em classe só fazem sentido para quem conseguiu ou tentou fazer o exercício, o atraso na entrega do exercício não é tolerado, sendo que o aluno recebe zero caso não consiga entregar o exercício. Consequentemente, o acesso a um ambiente computacional com acesso à internet para a realização dos exercícios em casa é mandatório para a participação no curso. Adicionalmente, não são permitidos ouvintes, em razão do foco na resolução das atividades práticas semanais. A natureza focada na prática de programação também justifica o número limitado de vagas, uma vez que os exercícios semanais são avaliados individualmente.
Bibliografia complementar: N/A