Curso
IA do 10.º ano: Aprendizagem profunda e IA multimodal
Constrói e treina redes neuronais em PyTorch para imagens, texto e som.
Faz as lições por ordem. No fim, sabes calcular a saída de um neurónio, comparar ativações e escrever uma passagem para a frente com NumPy. Sabes escolher uma perda, explicar a descida do gradiente e a retropropagação, e escrever um ciclo completo de treino e teste em PyTorch. Sabes treinar uma CNN para classificar imagens, treinar um classificador de sentimento para distinguir críticas positivas de negativas, explicar como a atenção pesa os outros tokens e classificar clipes de áudio curtos. Sabes reduzir o sobreajuste, afinar um modelo pré-treinado em classes novas, agrupar erros e encontrar a causa, e apresentar um monitor de vida selvagem em imagens nunca vistas.
Como usar estas lições
- Começa na lição marcada Faz isto. Segue quando conseguires fazer sozinho a linha por baixo do título.
- Joga os Jogos primeiro. Depois faz os Testes. 8 de 10 certas para passar. As Fichas são em papel. As respostas estão em baixo.
- Cada lição assenta na lição anterior. Toma notas de cada treino: as definições, a curva da perda e a pontuação do teste.
- As lições de código usam Python e PyTorch num caderno online grátis com uma GPU. Chegam modelos pequenos e conjuntos de dados pequenos. Usa só conjuntos abertos que te deixam usar, e nunca treines com fotos de pessoas sem a permissão delas.
Cada lição tem jogos, testes e fichas.
0 de 36
Bases das redes neuronais
- 1NeuróniosCalcula a saída de um neurónio a partir de entradas, pesos e viés.
- Escreve a soma pesada mais o viés.
- Calcula-a à mão para 3 entradas.
- Calcula-a em código com um produto escalar.
- 2AtivaçõesCompara as ativações ReLU, sigmoid e softmax.
- Desenha cada ativação.
- Explica porque é que uma rede precisa de uma ativação não linear.
- Usa softmax para transformar pontuações em probabilidades.
- 3Camadas e redesEmpilha camadas numa rede.
- Escreve uma camada como uma multiplicação de matrizes.
- Acompanha a forma dos dados em cada camada.
- Conta os parâmetros de uma rede.
- 4Uma rede pequenaEscreve uma passagem para a frente com NumPy para uma rede pequena.
- Constrói uma rede de 2 camadas em NumPy.
- Passa um lote de entradas por ela.
- Verifica a forma da saída.
Treinar redes neuronais
- 5PerdaEscolhe uma perda para uma tarefa e calcula-a.
- Usa o erro quadrático médio para a regressão.
- Usa a entropia cruzada para a classificação.
- Diz o que significa uma perda a descer.
- 6Descida do gradienteExplica como os gradientes movem os pesos encosta abaixo.
- Encontra o declive de uma curva da perda.
- Dá passos com uma taxa de aprendizagem.
- Vê o que acontece quando a taxa é demasiado grande ou demasiado pequena.
- 7RetropropagaçãoSegue como o erro volta para trás através da rede na retropropagação.
- Usa a regra da cadeia numa rede pequena.
- Calcula um gradiente à mão.
- Confere-o com a diferenciação automática.
- 8Treina uma redeTreina uma rede pequena e desenha a perda.
- Treina com minilotes.
- Desenha a perda de treino e a perda de validação.
- Para quando a perda de validação deixa de melhorar.
Ferramentas de aprendizagem profunda
- 9TensoresCria e muda a forma de tensores do PyTorch.
- Cria tensores e verifica a forma e o tipo.
- Muda a forma, empilha e corta.
- Move tensores para uma GPU.
- 10MódulosConstrói um modelo com módulos de torch.nn.
- Cria uma subclasse de nn.Module.
- Usa camadas Linear e de ativação.
- Imprime o modelo e a contagem de parâmetros.
- 11OtimizadoresTreina com os otimizadores SGD e Adam.
- Usa zero_grad, backward e step.
- Compara SGD e Adam numa tarefa.
- Usa um calendário da taxa de aprendizagem.
- 12Guião de treinoEscreve um ciclo completo de treino e teste.
- Carrega dados com um DataLoader.
- Treina, valida e testa.
- Guarda o melhor modelo.
Visão por computador
- 13Imagens como tensoresCarrega imagens como tensores e normaliza-as.
- Carrega uma imagem como canais, altura e largura.
- Redimensiona e normaliza.
- Mostra um lote como uma grelha.
- 14ConvoluçõesExplica como um filtro de convolução encontra arestas.
- Desliza à mão um filtro 3×3 sobre uma imagem.
- Aplica filtros de arestas em código.
- Explica stride, padding e pooling.
- 15CNNConstrói uma rede neuronal convolucional, uma CNN.
- Empilha camadas de convolução, ativação e pooling.
- Achata e acrescenta uma cabeça de classificação.
- Acompanha as formas através da rede.
- 16Classificador de imagensTreina uma CNN para classificar imagens.
- Treina num conjunto pequeno de imagens.
- Indica a exatidão no teste.
- Mostra imagens que classificou mal.
Processamento de linguagem natural
- 17TokenizaçãoTransforma texto em tokens e IDs com tokenização.
- Compara tokens de palavra e de subpalavra.
- Constrói um vocabulário.
- Preenche as sequências até ao mesmo comprimento.
- 18EmbeddingsExplica como os embeddings põem palavras parecidas perto umas das outras.
- Usa uma camada de embeddings.
- Encontra as palavras mais próximas de uma palavra.
- Desenha embeddings em 2 dimensões.
- 19Modelos de textoConstrói um modelo de texto que lê uma sequência de tokens.
- Faz a média dos embeddings num vetor.
- Usa uma camada recorrente simples.
- Compara os dois.
- 20Classificador de sentimentoTreina um classificador de sentimento para distinguir críticas positivas de negativas.
- Treina num conjunto de críticas.
- Indica exatidão, precisão e revocação.
- Encontra críticas que o enganam, como o sarcasmo.
Transformers
- 21AtençãoExplica como a atenção pesa os outros tokens.
- Explica query, key e value.
- Calcula os pesos de atenção de uma frase curta.
- Diz porque é que a atenção ajuda o significado à distância.
- 22Blocos transformerNomeia as partes de um bloco transformer.
- Nomeia multi-head attention, feed-forward e camadas de normalização.
- Explica ligações residuais.
- Explica codificações de posição.
- 23Modelos pré-treinadosUsa um transformer pré-treinado numa tarefa.
- Carrega um modelo pré-treinado e um tokenizer.
- Classifica texto com ele.
- Compara-o com o teu classificador de sentimento.
- 24Mapas de atençãoLê uma visualização de um mapa de atenção.
- Desenha os pesos de atenção como um mapa de calor.
- Encontra a que palavras um token presta atenção.
- Diz porque é que a atenção não é uma explicação completa.
Áudio e IA multimodal
- 25Som como dadosTransforma o som numa forma de onda e num espetrograma.
- Carrega o som e desenha a forma de onda.
- Explica a taxa de amostragem.
- Faz um espetrograma.
- 26Classificador de áudioClassifica clipes de áudio curtos.
- Trata espetrogramas como imagens.
- Treina uma CNN neles.
- Testa com ruído de fundo.
- 27Entradas multimodaisExplica como um modelo junta entradas multimodais de imagens e texto.
- Explica codificadores separados para cada entrada.
- Explica um espaço de embeddings partilhado.
- Nomeia 3 aplicações multimodais.
- 28Imagem e textoAssocia imagens a legendas de texto com um modelo pré-treinado.
- Cria embeddings de imagens e legendas.
- Ordena as legendas de cada imagem.
- Procura imagens com uma consulta de texto.
Melhorar o modelo
- 29RegularizaçãoReduz o sobreajuste com regularização: dropout e decaimento dos pesos.
- Acrescenta dropout.
- Acrescenta decaimento dos pesos.
- Compara as curvas de validação.
- 30Aumento de dadosAcrescenta, como aumento de dados, imagens invertidas e recortadas ao conjunto de treino.
- Aplica inversões, recortes e mudanças de cor.
- Faz o aumento de dados só no conjunto de treino.
- Mede a mudança na exatidão do teste.
- 31Aprendizagem por transferênciaAfina um modelo pré-treinado em classes novas com aprendizagem por transferência.
- Congela as camadas pré-treinadas.
- Substitui e treina a cabeça.
- Descongela e afina com uma taxa de aprendizagem pequena.
- 32Análise de errosAgrupa erros e encontra a causa.
- Lê uma matriz de confusão para muitas classes.
- Separa os erros em grupos.
- Escolhe a correção para o grupo maior.
Projeto de aprendizagem profunda
- 33Dados de vida selvagemEscolhe e divide um conjunto aberto de imagens de vida selvagem.
- Escolhe um conjunto aberto de armadilhas fotográficas ou de vida selvagem.
- Escolhe de 5 a 10 espécies.
- Divide por local para o teste ser justo.
- 34Afina o modeloAfina um classificador de imagens em classes de vida selvagem.
- Afina um modelo pré-treinado.
- Acompanha a exatidão de validação.
- Guarda o melhor checkpoint.
- 35Interface de demonstraçãoConstrói uma interface de demonstração que mostra previsões em imagens carregadas.
- Aceita uma imagem carregada.
- Mostra as 3 espécies de topo e as suas pontuações.
- Mostra “não sei” quando a confiança é baixa.
- 36Monitor inteligente de vida selvagemApresenta a exatidão do monitor de vida selvagem em imagens nunca vistas e os principais erros.
- Indica a exatidão em imagens nunca vistas.
- Mostra os principais erros e as suas causas.
- Diz o que mudarias a seguir.