PSI3472 (2022): Concepção e Implementação de Sistemas Eletrônicos Inteligentes

Materiais:

Informações sobre o curso (parte 1 do prof. Hae):

Este ano (2022), vou dar aulas presenciais, mas baseadas em apostilas para aulas "ead" que preparei durante a pandemia. Elas procuram ser auto-explicativas e podem ser alteradas até o dia/hora da aula.

Uma aula consiste de uma parte inicial teórica e de uma parte final prática/experimental, onde os alunos deverão resolver uma "lição de casa" em grupos de 2 alunos ou individualmente.

Avaliações:

A avaliação será baseada somente em "lições de casa" (LC) e em "exercício programa" (EP). Na minha parte da disciplina, não haverá prova.

1) "Lições de casa":

No horário final da aula (ou em casa após a aula), cada grupo deverá resolver uma "lição de casa", normalmente um exercício computacional. Essas lições deverão ser feitas em grupos de dois alunos (de preferência) ou individualmente.

1a) Se conseguirem terminar a lição de casa durante a aula, pode mostrá-la ao especialista Maurício Perez que atribuirá imediatamente uma nota. Neste caso, entreguem apenas o código-fonte em edisciplinas (.cpp, .py ou .ipynb). Escrevam no campo "comentários sobre o envio" a frase "lição entregue durante a aula", junto com os nomes da dupla ou a frase "feito individualmente".

1b) Se não terminarem a lição durante a aula, devem entregar a lição até o domingo seguinte em edisciplinas. Devem gravar um vídeo de no máximo 30s (por aula), demonstrando que fizeram a lição. Não pode enviar vídeo com mais de 30s, pois a quantidade de alunos do curso não nos permite corrigi-los - pode haver desconto na nota. É necessário que o vídeo contenha áudio com explicações. Vocês devem convencer o espectador do vídeo (o professor/especialista vai corrigir a sua lição) que fizeram a lição solicitada e que ela está funcionando corretamente. Não precisam explicar teorias. Cada dupla deve enviar um único vídeo (não postem o mesmo vídeo duas vezes). A dupla deve se alternar na gravação de vídeo, isto é, se Fulano gravou vídeo 1, Ciclano deve gravar vídeo 2, etc. É necessário que o vídeo contenha áudio, pois é muito difícil entender um vídeo sem a explicação falada. O vídeo não pode ter sido acelerado para diminuir a duração, pois dificulta entender a fala.

Podem gravar a tela do computador usando celular ou usando algum programa de captura de tela (por exemplo Zoom, Google Meet, ou OBS Studio). Em algum momento, deve aparecer no vídeo o rosto e algum documento do aluno que gravou o vídeo (como a carteira USP, RG, CNH, etc). Vocês podem enviar o vídeo em si (.mkv, .mp4, .avi, etc.) ou um link para o vídeo (youtube, google drive, etc). No segundo caso, deve assegurar que todos os professores (Hae e Maurício - hae.kim@usp.br, mlisboa@usp.br) tenham acesso ao seu vídeo. Não se esqueçam de escrever/falar os nomes da dupla (ou do único aluno, escrevendo: "exercício feito individualmente") em três lugares diferentes: no campo "comentários sobre o envio", no início do vídeo e no início dos programas-fontes. Caso contrário, um dos alunos da dupla pode ficar sem a nota.

A correção será feita em princípio baseado somente nesse vídeo. Quando o professor ficar com alguma dúvida, poderá olhar também os códigos-fontes. Assim, entreguem também os códigos-fontes (.cpp, .py ou .ipynb) das lições. Exercícios entregues com atraso terão desconto de 0,5 ponto por dia de atraso. As lições não podem ser entregues após 16/outubro, para não invadir as aulas do prof. Márcio.

2) Além das lições de casa, haverá um exercício-programa para fazer. As instruções deste exercício programa estarão no seu enunciado.

3) Cálculo da média final:

MHae = (ML + EP) / 2

onde MHae é média final da minha parte da disciplina, ML é a média das lições de casa e EP é a nota do exercício-programa.


Planejamento das aulas (este cronograma pode mudar ao longo do semestre):

1 - (15/08) Introdução. Tensorflow/Keras/PyTorch, Google Colab.
2 - (16/08) Rede neural densa.
3 - (22/08) Rede neural convolucional; LeNet; classificação MNIST.
4 - (23/08) Modelos pré-treinados para ImageNet.
5 - (29/08) Cifar10; data augmentation. redes avançadas: VGG, GoogLeNet, ResNet.
6 - (30/08) Redes avançadas: VGG, GoogLeNet, ResNet.
7 - (19/09) Redes avançadas: VGG, GoogLeNet, ResNet. Transfer learning.
8 - (20/09) Segmentação semântica. Fully convolutional net, U-Net, PSPNet.
9 - (26/09) Class Activation Map e Grad-CAM.
10 - (27/09) Auto-encoder/GAN
11 - (10/10) One-shot learning
12 - (11/10) Yolo

A maior parte das duas primeiras aulas são recordações de PSI3471.

Transparências auxiliares:


Exercícios programas: