IA025 - Introdução ao Aprendizado Profundo | Introduction to Deep Learning | Introducción al Aprendizaje Profundo
Turma: A -
Período: 2/2026 -
Tipo Período: 2o. período letivo -
Disciplina: 4 créditos.
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.
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).
Conteudo 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.
Conteudo Programático em Inglês: Foundations of deep learning with a practical focus. Backpropagation algorithm, loss functions, and optimizers. Efficient matrix programming on GPUs/TPUs. Convolutional neural networks for computer vision. Introduction to attention mechanisms and the Transformer model. Strategies for unsupervised pre-training and data augmentation. Evaluation using appropriate performance metrics. Final project development applying the studied concepts.
Conteudo Programático em Espanhol: Fundamentos del aprendizaje profundo con enfoque práctico. Algoritmo de backpropagation, funciones de pérdida y optimizadores. Programación matricial eficiente en GPUs/TPUs. Redes neuronales convolucionales para visión por computador. Introducción a los mecanismos de atención y al modelo Transformer. Estrategias de preentrenamiento no supervisado y aumento de datos. Evaluación utilizando métricas de desempeño apropiadas. Desarrollo de un proyecto final aplicando los conceptos estudiados.
Forma 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.
Ofertar para Graduação:
Sim Número Limite de Alunos de Graduação:
5
Aceita Estudante Especial:
Sim
Número de Alunos Total:
de 5 até 20