Informações administrativas
Titulo | Propagação para a frente |
Duração | 60 |
Módulo | B |
Tipo de aula | Tutorial |
Foco | Técnico — Aprendizagem Aprofundada |
Tópico | Passe para a frente |
Palavras-chave
Passe para a frente, perda,
Objetivos de aprendizagem
- Compreender o processo de um passe para a frente
- Compreender como calcular uma previsão de passe para a frente, bem como perdas desligadas
- Desenvolver um passe avançado sem módulos em Python (exceto Numpy)
- Desenvolver um passe para a frente com Keras
Preparação prevista
Eventos de aprendizagem a serem concluídos antes
Obrigatório para os Estudantes
Nenhuma.
Facultativo para Estudantes
- Multiplicação das matrizes
- Começar a usar Numpy
- Conhecimento da regressão linear e logística ([Lecture: Regressão linear]
Referências e antecedentes para estudantes
- John D. Kelleher e Cérebro McNamee. (2018), Fundamentals of Machine Learning for Predictive Data Analytics, MIT Press.
- Michael Nielsen. (2015), Redes Neurais e Aprendizagem Profunda, 1. Imprensa de determinação, São Francisco CA EUA.
- Charu C. Aggarwal. (2018), Redes Neurais e Aprendizagem Profunda, 1. Springer
- António Gulli, Sujit Pal. Aprendizagem profunda com Keras, Packt, [ISBN: 9781787128422].
Recomendado para professores
Nenhuma.
Materiais das aulas
- [Problema 1 (Imagem)]
- [Problema 2 e problema 3 (HTML)]
- Problema 2 e problema 3 (.ipynb)
Instruções para os professores
- Este tutorial irá apresentar aos alunos os fundamentos da propagação para a frente para uma rede neural artificial. Este tutorial consistirá num passe para a frente com caneta e papel, utilizando o Python com apenas a biblioteca Numpy (para manipulação de matrizes) e depois utilizando o KERAS. Isto irá basear-se na compreensão fundamental do que as funções de ativação se aplicam a contextos de problema específicos e como as funções de ativação diferem na complexidade computacional e na aplicação da caneta e do papel, para codificar a partir do zero usando Numpy e depois usando um módulo de alto nível -> Keras.
- Os alunos serão confrontados com três problemas:
- Problema 1: (Exemplo 1 da palestra -> Imagem sobre o RHS deste WIKI) e pedido para conduzir um passe para a frente usando os seguintes parâmetros (20 minutos para completar):
- Função de ativação sigmoide para a camada oculta
- Função de ativação sigmoide para a camada exterior
- Função de perda de MSE
- Problema 2: (Exemplo 1 da palestra), os alunos serão convidados (com orientação dependendo da experiência de codificação anterior) a desenvolver uma rede neural a partir do zero usando apenas o módulo Numpy, e os pesos e funções de ativação do problema 1 (que são os mesmos que o Exemplo 1 da palestra (20 minutos para concluir).
- Problema 3: (Exemplo 1 da palestra e usando o mesmo exemplo, mas pesos aleatórios), os alunos serão convidados (com orientação dependendo da experiência de codificação anterior) para desenvolver uma rede neural usando o módulo Tensorflow 2.X com o módulo Keras inbuild, e os pesos e funções de ativação do problema 1, e depois usando pesos aleatórios (que são os mesmos que o Exemplo 1 da palestra: 20 minutos a completar).
- Problema 1: (Exemplo 1 da palestra -> Imagem sobre o RHS deste WIKI) e pedido para conduzir um passe para a frente usando os seguintes parâmetros (20 minutos para completar):
- Os subobjetivos para estes três Problemas, é fazer com que os alunos acostumem-se à estrutura e aplicação de conceitos fundamentais (funções de ativação, topologia e funções de perda) para a aprendizagem profunda.
- Keras e TensorFlow 2.X são usados e serão usados para todos os exemplos futuros.
Esboço
Duração (Min) | Descrição |
---|---|
20 | Problema 1: Implementação de um passe para a frente (exemplo da palestra) |
20 | Problema 2: Desenvolver uma rede neural a partir do zero usando Numpy (exemplo da palestra) |
10 | Problema 3: Desenvolver uma rede neural a partir da utilização de Keras (exemplo da palestra com pesos definidos e pesos aleatórios) |
10 | Recapitular sobre o processo de passagem para a frente |
Agradecimentos
O programa de mestrado em IA centrado no ser humano foi cofinanciado pelo Mecanismo Interligar a Europa da União Europeia ao abrigo de subvenções CEF-TC-2020-1 Competências Digitais 2020-EU-IA-0068.