Deep Learning na Unb (Brasília) - Parte 1 - Lição 6

[ <<< Lição 5 | Lição 7 >>> ]

Lesson 6 - Foundations of Convolutional Neural Networks (27/11/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 6 (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.

Lesson Resources

Other Resources

Ementa (27/11/2019 - UnB - Brasília)

  1. [ 20mn ] O que aconteceu online desde a aula precedente
    • Revisão de perguntas publicadas no fórum
    • Site do grupo
    • Novos posts
  2. [ 15mn ] Organização da conferência de dezembro
  3. [ 5mn ] Lista dos projetos
  4. [ 1h40mn ] Apresentações dos aplicativos dos projetos
  5. [ 10mn ] Pontos-chave da turma anterior
  6. [ 30mn ] lição 6 (veja “Videos timeline”)
  7. [ 0mn ] Fotos da aula :slight_smile:

Videos timeline

  • Start [0:00]
  • Finishing up regularization for the Tabular Learner [9:48]
  • Time Series and add_datepart [13:21]
  • Preprocesses [16:52]
  • Preprocessor: Categorify [18:39]
  • Preprocessor: Fill Missing [20:18]
  • Categorical and Continuous Variables [22:23]
  • Reminder about Doc [25:09]
  • y_range [27:12]
  • Dropout [29:47]
  • Dropout and test time [34:47]
  • Batch Normalization [44:28]
  • Data augmentation [56:45]
  • Convolutional Neural Network [1:05:14]
  • Manual Convolutions [1:29:24]
  • Creating Heat Map [1:33:50]
  • Ethics and Data Science [1:49:10]

Recursos

Exercícios até a próxima aula

  • Publique em seu blog sua compreensão:
    • da função add_datepart()?
    • como criar um sub-dataset para testar o seu modelo antes de usar o dataset inteiro (dica: idx = np.random.permutation(range(n))[:2000])?
    • como transformar o tipo das colunas de uma tabela pandas em um tipo categoria (dica: categorify = Categorify(small_cat_vars, small_cont_vars))?
    • como lidar com os dados ausentes (dica: fill_missing = FillMissing(small_cat_vars, small_cont_vars))?
    • como executar todos os pré-processamentos na criação do Databunch (dica: procs=[FillMissing, Categorify, Normalize])?
    • como decidir que variáveis são de tipo categoria ou continuou?
    • como na criação do Databunch transformar um dataset de classificação para regressão linear (dica: label_cls=FloatList)?
    • o que é dropout? por quê usar dropout (dica: overfitting)? a gente aplica dropout nas ativações ou nos parâmetros? que papel apresentou o primeiro o dropout (dica: link)?
    • o que é Batch Normalization (BN)? pode aumentar o Learning Rate usando o BN? quantos parâmetros têm de ser aprendizados por BN? quais são os 2 impactos de usar o BN no treinamento do modelo (dicas: re… e tempo m…)?
    • o que é Data Augmentation (DA)? quais são os parâmetros (lista de transformações) da DA (dica: get_transforms())?
    • o que é um heatmap (dica: show_heatmap())?
    • o que é um modelo ConvNet? o que é uma convolução?
    • como obter a arquitetura e números de parâmetros do seu modelo no fastai (dicas: learn.model e learn.summary())?
    • como criar um minibatch com um item (dica: data.one_item())?
    • o que é um hook no PyTorch e fastai?
  • Execute novamente seus primeiros notebooks sobre classificação de imagens com esses novos truques e tente melhorar o conteúdo de seus modelos (atualize as postagens relacionadas)

Graças à features engineering nas datas (tipo de pré-processamento) através da função add_datepart(), pode tratar muitos tipos de problemas de séries temporais como problemas tabulares regulares.

Por quê? Como o pré-processamento feito no dataset de training é aplicado para o de validação e de teste?

Dropout

Paper (2014): https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf

Batch Normalization

Paper (2015): https://arxiv.org/abs/1502.03167

Paper (2018): https://arxiv.org/abs/1805.11604

Convolução

Site: http://setosa.io/ev/image-kernels/

Arquitetura de um ConvNet por Jeremy Howard

Ethics and Data Science (video)

notes de @hiromi

Ethics and Data Science (Unintended consequences)