[ Lição 2 >>> ]
Lição 1: Classificação de imagem (23/10/2019 - UnB - Brasília)
Este tópico permite que os membros do Grupo de IA da UnB (Brasília) estudem coletivamente (em reuniões presenciais e on-line) a lição 1 (parte 1) do curso fastai, mas de um jeito aberto para ajudar também pelas questões, respostas e pelos recursos publicados todos os leitores em português interessados em DL.
Portanto, o idioma deste segmento é principalmente o português (o inglês quando permite evitar traduções inúteis).
Use este tópico para fazer e responder às perguntas da lição 1 (parte 1), mas antes de postar, leia o tópico “How to ask for help”.
Curso fastai 2019 (parte 1)
- Sabendo tudo sobre o Practical Deep Learning for Coders 2019
- Existem 7 lições, cada uma com cerca de 2 horas de duração, e você deve passar cerca de 10 horas em tarefas para cada lição.
- Pelo menos, 1 ano de codificação, especialmente em Python (Recommended Python learning resources).
Pré Requisitos
- Python - Pelo menos, 1 ano de codificação, especialmente em Python (recursos de aprendizado recomendados em Python)
-
Numpy, Pandas e Matplotlib - Sabendo codificar também com Numpy e Pandas
- Numpy - Tutorial Numpy + fastai notebook sobre Numpy
- Pandas - Curso de Introdução a Análise de Dados + Pandas Tutorials
- Matplotlib - Tutorial Matplotlib
-
GPU e Terminal - Usando um GPU com o framework fastai e os cadernos do curso
- GCP - “Como Criar e Configurar uma Instância do Google Cloud Platform para Projetos de Deep Learning” (Thiago Dantas)
- Colab - Colab
- Terminal - How to use a Terminal
- Jupyter Notebook - Sabendo usar um Jupyter Notebook and os principais shortcuts:
- Fórum fastai - Cadastre-se no fórum fastai
-
Fórum do grupo - aqui
- Primeiro vídeo - Assistindo ao primeiro vídeo do curso antes da turma (playlist youtube ou no site fastai)
- Recursos da lição 1 - Ler a lista dos recursos sobre a lição 1 (ao final deste parágrafo)
- Blog - Conselho muito de ter um blog e publicar artigos sobre o seu aprendizado do DL. Isso ajuda muito a entender e muito para se fazer conhecer ajudando no mesmo tempo as outras pessoas (no medium.com é fácil, de graças, já há uma comunidade internacional sobre o DL e é bem indexado pelo Google).
- Inglês - Compreendendo o inglês dos vídeos, do fórum e dos documentos online.
Lição 1
O resultado mais importante da lição 1 é que treinamos um classificador de imagens que pode reconhecer raças de animais de estimação com precisão de ponta. A chave para esse sucesso é o uso da transferência de aprendizado (transfer learning), que será uma plataforma fundamental para grande parte deste curso. Também veremos como analisar o modelo para entender seus modos de falha. Nesse caso, veremos que os locais em que o modelo está cometendo erros estão nas mesmas áreas que mesmo os especialistas em criação de animais podem cometer erros.
Training and analyzing a pet breed classifier
Discutiremos a abordagem geral do curso, que é um tanto incomum por ser de cima para baixo em vez de de baixo para cima. Então, em vez de começar com a teoria, e apenas chegarmos a aplicações práticas mais tarde, começamos com aplicações práticas e, gradualmente, nos aprofundamos cada vez mais nelas, aprendendo a teoria conforme necessário. Essa abordagem exige mais trabalho para os professores se desenvolverem, mas foi demonstrada para ajudar muito os alunos, por exemplo, na pesquisa educacional em Harvard por David Perkins.
Também discutimos como definir o hiperparâmetro mais importante ao treinar redes neurais: a taxa de aprendizado, usando o fantástico método localizador de taxas de aprendizado de Leslie Smith.
Principais links sobre a lição 1
- Lesson 1 official resources and updates
- Lesson 1 Discussion
- Video of the lesson 1
- Detailed lesson notes 1.2k - thanks to @hiromi
- Course site, including setup guides for each GPU platform (Colab | GCP)
- Github Course repo
- fastai docs
- fastai datasets
- Notebooks:
Other resources
- Thread on creating your own image dataset
- Original Paper for Oxford-IIIT Pet Dataset
- The Oxford-IIIT Pet Dataset
- What the Regular Expressions in the notebook meant
- Understanding Regular Expressions (12 minute video)
- Visualize Regular Expressions
- Interactive tutorial to learn Regular Expressions
- Beginners Tutorial of Regular Expression
- One-Cycle Policy Fitting paper + learn.fit_one_cycle()
- Visualizing and Understanding Convolutional Networks (paper)
- References in the video and in course page
- Excelente artigo sobre PyTorch vs TensorFlow
- Introduction to the Python Pathlib Module
- regex em Python (module re)
- Accelerate the Training of Deep Neural Networks with Batch Normalization
- Review: ResNet — Winner of ILSVRC 2015 (Image Classification, Localization, Detection)