Você está na página 1de 67

Estratégias para Treinamento de Redes Neurais

Profundas

Moacir A. Ponti
* com colaboração de Fernando P. dos Santos, Leo S. F. Ribeiro, Gabriel B. Cavalari

http://sites.google.com/moacirponti
https://github.com/maponti/trainingdeepnetworks

EABDA 2023
Bibliography I

Moacir A. Ponti, Fernando dos Santos, Leo Ribeiro, Gabriel


Cavallari. Training Deep Networks from Zero to Hero:
avoiding pitfalls and going beyond.
SIBGRAPI, 2021. Tutorial.
https://arxiv.org/abs/2109.02752

Moacir A. Ponti, Leo Ribeiro, Tiago Nazaré, Tu Bui, John


Collomosse. Everything You Wanted to Know About Deep
Learning for Computer Vision but were Afraid to Ask.
SIBGRAPI-T, 2017. Tutorial.
Agenda

Conceitos de convergência e aprendizado

Antes mesmo do treinamento

Estratégias para melhorar generalização

Transferência de aprendizado
Suposições do aprendizado supervisionado

Dados de treinamento
▶ Limpos
▶ Representativos e bem definidos com relação à tarefa: classes,
valores da regressão, etc.
▶ Baixa taxa de erros de rótulo
▶ Quantidade de dados é suficiente

▶ E se não for possível?


▶ Riscos: overfitting, baixa generalização, maior dificuldade no
treinamento.
Complexidade de modelos: "viés" segundo a Teoria do
Aprendizado Estatístico

▶ Lembrando: Aprendizado de Máquina pode ser formulado


como sendo aprender os parâmetros de f : X → Y
▶ Um algoritmo ajusta f a partir de um espaço de funções
admissíveis F:
▶ "muitas" funções: mais graus de liberdade, menor garantia de
convergência, possível overfitting ;
▶ "poucas" funções: menos graus de liberdade, maior garantia
de convergência, possível underfitting.
Espaço de funções admissíveis

Viés forte: espaço restrito Viés fraco: espaço amplo


Espaço de funções admissíveis

De um modelo arbitrário para o melhor no espaço


Erros quando definindo o espaço de funções admissíveis

Erro de aproximação vs Erro de estimação


Exemplo com KNN
Exemplo com KNN
1-NN
3-NN
5-NN
n-NN
Dilema viés e variância
Tornando tudo mais confuso....
Overparametrization
Ataques adversariais

Artigo "Deep Neural Networks are easily fooled"


Ataques adversariais

Pixel attack: assume que há acesso ao conjunto de treinamento


Ataques adversariais

Pixel attack: assume que há acesso ao conjunto de treinamento


Ataques adversariais
Alucinações

GPT 3.5: "Descreva o acidente entre Ayrton Senna e Satoru


Nakajima em Interlagos, 1990."
No GP do Brasil de 1990, realizado em Interlagos, houve um
acidente entre Ayrton Senna e Satoru Nakajima. Durante a sexta
volta da corrida, Ayrton Senna, que estava liderando a prova,
tentou ultrapassar Nakajima na curva do Sargento. No entanto, o
piloto japonês não deu espaço suficiente a Senna, a asa dianteira
esquerda de Senna foi arrancada e seu carro saiu da pista, bateu
contra o muro de proteção e se incendiou. Infelizmente, Ayrton
Senna sofreu ferimentos graves e foi levado imediatamente ao
hospital, onde acabou falecendo devido a uma fratura no crânio. O
acidente de Senna e Nakajima ficou marcado como um dos mais
tristes momentos da história da Fórmula 1.
https://www.uol.com.br/esporte/colunas/flavio-gomes/2023/02/13/

para-o-chatgpt-senna-morreu-em-interlagos-depois-de-bater-em-nakajima.htm
Alucinações

Os Fatos
O acidente aconteceu na 40ª volta, não na sexta, e foi no Bico de
Pato — a curva do Sargento já não existia mais. O impacto foi
leve, Senna só quebrou o bico, não saiu da pista, não bateu em
nada e seu carro não pegou fogo. Ele continuou na corrida e
terminou em terceiro. Morreu quatro anos depois em Ímola, no GP
de San Marino, numa batida na curva Tamburello sem o
envolvimento de nenhum outro piloto.
https://www.uol.com.br/esporte/colunas/flavio-gomes/2023/02/13/

para-o-chatgpt-senna-morreu-em-interlagos-depois-de-bater-em-nakajima.htm
Mensagem

1. Deep Learning não pode ser tratado como panacéia;


2. Generalização ainda é pouco entendida, e há fragilidade a
ataques.
Agenda

Conceitos de convergência e aprendizado

Antes mesmo do treinamento

Estratégias para melhorar generalização

Transferência de aprendizado
1 - Qualidade dos Dados

▶ Dados são consistentes com relação ao problema


▶ Cobrem todos os casos importantes
▶ Tamanho do dataset de treinamento é apropriado

Problemas a buscar (mesmo em datasets benchmark)


▶ Instancias duplicadas
▶ Rótulos incorretos
▶ Ruído e outliers
The ending made my heart jump up into my throat. I proceeded to
leave the movie theater a little jittery. The movie was better than I
expected. I don’t know why it didn’t last very long in the theaters
or make as much money as anticipated. Definitely would
recommend.
Label: Negative
bird cat car cat
2 - Normalização
Redes profundas não se dão bem com intervalos de entrada
arbitrários
▶ 0-1 MinMax Scaling
▶ z-Score Standardization
3 - Representação de entrada

Pré-processamento deve manter padrões dos conceitos requeridos


para aprendizado.
4 - Função de Custo, Avaliação e Otimização

Acurácia não é pra tudo.


▶ Qual é a saída da rede?
▶ Qual a tarefa a ser resolvida?

Algumas tarefas
▶ Binary classification
▶ Multi-class classification
▶ Regression
▶ Detection
▶ String matching
▶ Recommendation
... para um problema de classificação binária
Função de custo/perda

Métrica que indique o custo de escolher o modelo atual


▶ Idealmente deve ser convexa e produzir um gradiente com boa
magnitude
▶ Difícil, considerando todas as direções do hiper-espaço de
parâmetros
O gradiente

Codifica as taxas de alteração no espaço de parâmetros


▶ queremos andar na direção do vale, em busca do mínimo global
O papel do gradiente no treinamento

Backpropagation
▶ utiliza a derivada ao longo das camadas para adaptar os pesos
▶ as funções de custo e de ativação tem que produzir derivada
útil

Vanishing gradient
▶ se ativações geram valores muito baixos não é possível adaptar
▶ usar precisão dupla (double) e escalar as funções é uma
possibilidade
▶ esse é um dos motivadores do uso de ReLU ao invés de
Sigmóides como função de ativação
Funções de Erro
▶ Mean squared error (MSE)
▶ Mean absolute error (MAE)
▶ Root of the mean squared error (RMSE)
Tendem a aprender a saída média

Cross-entropy
Comparação entre distribuições de probabilidade

Intersection over Union


Tamanho da sobreposição entre regiões ou caixas

Cosine Distance
Cosseno do ângulo entre dois vetores (magnitude é desprezada)
Conheça sua loss

Examplo: classificação com 5 classes

yi ln(yˆi + 10−6 )
P
Categorical cross-entropy −
▶ Classes igualmente prováveis (random): −1 · ln(1/5) = 1.60
▶ Classe correta com probabilidade zero (e demais igualmente
prováveis)): 13.8

(yi − yˆi )2
P
MSE
▶ Classes igualmente prováveis (random): 0.80
▶ Classe correta com probabilidade zero (e demais igualmente
prováveis)) 1.25
5 - Validação e "Model Tuning"

Dados um conjunto de treinamento e um de teste

Temos para definir: 2 opções de arquitetura e 4 hiperparametros de


otimização. O que fazemos?
Avaliação empírica
1. Para cada arquitetura, avaliamos os 4 hiperparâmetros,
gerando 8 modelos
2. Avaliamos os 8 modelos no conjunto de teste
3. Escolhemos o par: arquitetura, hiperparâmetro com melhor
avaliação

ERRADO. (?)
6 - Visualizar espaço de características
Treinamos uma rede neural para um problema de 10 classes difícil

Classificação aleatória seria 10%. Obtemos acurácia 37% num


conjunto de validação. Excelente, certo? Talvez não... inspeção
das features não mostra um agrupamento claro dos dados
Usualmente visualizamos a saída da camada antes da predição
7 - Validação Interna e Externa

Temos um problema de regressão, e um conjunto de dados sem


separação fixa/pré-definida de treinamento/teste. O que fazer?

Hold-out 80/20 ou k-fold cross-validation?

▶ ambos são validação interna: k-fold CV pode ser a melhor


opção para avaliar generalização.
▶ é importante entender como gerar os folds (random,
out-of-time, out-of-group, etc.).

É também importante ter validação externa em casos sensíveis:


usar o modelo treinado para avaliar dados de outros contextos
▶ em dados médicos é crucial
▶ PROBAST: A Tool to Assess the Risk of Bias and
Applicability of Prediction Model Studies
https://www.acpjournals.org/doi/10.7326/M18-1376
▶ participants, predictors, outcome, and analysis

▶ CLAIM: Checklist for Artificial Intelligence in Medical Imaging


https://pubs.rsna.org/doi/10.1148/ryai.2020200029
▶ study design, data, ground truth, evaluation, discussion
Mensagem (2)

1. Qualidade dos dados


2. Normalização
3. Representação da entrada
4. Função de perda e avaliação
5. Validação e "Model Tuning"
6. Visualização
7. Validação Interna e Externa
Agenda

Conceitos de convergência e aprendizado

Antes mesmo do treinamento

Estratégias para melhorar generalização

Transferência de aprendizado
(I) Regularização

Relembrando a regularização L2 (ou de Tikhonov)


N
1 X 1
ℓ(Θ) = ℓi (xi , yi , Θ) + λ ||Θ||2
N 2
i=1

▶ Objetivo: limitar a capacidade do modelo de se especializar


demais nos dados
▶ Formas:
▶ Global: na função de perda ponderada por λ
▶ Definindo λl por camada (ou grupos de camadas)
▶ Interpretação: vê cada entrada como sendo de maior variância
(II) Dropout

▶ Objetivo: limitar a capacidade de certos parâmetros do modelo


a memorizarem os dados
▶ Implementado na forma de "camada"
▶ Em cada iteração, desliga ativações de neurônios
aleatoriamente com probabilidade p
▶ Interpretação: treinamento com técnica "Bagging"

Srivastava et al. Dropout: A Simple Way to Prevent Neural Networks from Overfitting
(III) Parada precoce

▶ Objetivo: evitar que o modelo memorize os dados de


treinamento ao treinar por muitas épocas
▶ Acompanhar um conjunto de validação e interromper de
acordo com a relação do custo no treinamento e validação
(IV) Learning Rate

▶ Buscar learning rate inicial usando validação


▶ Avaliar learning rate scheduling
(V) Normalização por camadas

Objetivo: facilitar otimização ao normalizar/padronizar a


magnitude dos valores utilizados no treinamento:
▶ suaviza as ativações dos neurônios, reduzindo a variância do
gradiente;
▶ ataca o problema de "desaparecimento" do gradiente
(vanishing gradient) em particular para redes profundas.

Tipos de normalização baseada em camadas!


BatchNorm
LayerNorm
(V) Normalização por camadas

▶ C = canais, ou mapas de ativação


▶ N = instâncias no batch
▶ H,W = dimensões dos mapas de ativação (ex. altura x largura)
A operação aprende ainda os valores γ, β para transformação linear
dos dados após normalizados:

γxi + β
(V) Normalização por camadas: Batch

▶ Batch normalization (BN): para cada batch


▶ média e desvio calculados por canal/conjunto de features
(total C )
▶ normalização com relação ao canal ao longo das N instâncias
no batch
▶ Funciona melhor com batchsize ≥ 32
(V) Normalização por camadas: Layer

▶ Layer normalization (LN):


▶ média e desvio calculados por instância (total N)
▶ normalização com relação à cada instância ao longo de todas
as ativações de todos os canais/features
▶ Independe do tamanho do batch, usada em Transformers,
redes recorrentes e adversariais
(VI) Coletar mais dados

▶ Objetivo: impedir que o treinamento considere apenas um


conjunto limitado de exemplos
▶ Baseado na lei dos grandes números, quanto maior a amostra,
teremos um melhor estimador
(VII) Aumentação de dados/Data augmentation

▶ Objetivo: gerar exemplos artificiais na esperança de que


melhore as propriedades de convergência
▶ Implementado por meio da manipulação de exemplos
existentes, ou sua combinação
▶ Exemplos:
▶ Imagem e áudio: rotação, corte, injeção de ruído, e outros que
não descaracterizem os dados;
▶ Texto: permutação ou exclusão de caracteres ou palavras;
▶ Dropout na camada de entrada: eliminando features
aleatoriamente a cada iteração.
Agenda

Conceitos de convergência e aprendizado

Antes mesmo do treinamento

Estratégias para melhorar generalização

Transferência de aprendizado
Quando o assunto é volume de dados

Nem sempre...
▶ é possível coletar mais
▶ aumentação é efetiva
Transferência de aprendizado

Utilizar modelo treinado em uma determinada tarefa ou domínio,


aproveitando o aprendizado para uma outra tarefa ou domínio alvo.
Transferência de aprendizado

Modos mais comuns


▶ Ajuste-fino / adaptação dos parâmetros
▶ Extração de características
Ajuste-fino / adaptação dos parâmetros

Exemplo: classificação de imagens


Modelo fonte: CNN treinada na ImageNet
▶ Transferência de aprendizado
▶ Redefinir a última camada (inicialização aleatória) com o
número de classes desejado
▶ Realizar treinamento a partir dos pesos pré-treinados
▶ Permitir adaptação apenas da últimas camadas, congelando as
demais
Ajuste-fino / adaptação dos parâmetros

Exemplo: classificação de imagens


Modelo fonte: CNN treinada na ImageNet
▶ Ajuste-fino:
▶ Comumente feito após o anterior, em que já temos o
classificador treinado
▶ (Opcionalmente) Re-inicializar ou inserir novas camadas
densas ocultas
▶ Permitir adaptação de camadas do meio da rede (sem
reinicializar seus pesos), congelando algumas iniciais
Ajuste-fino / adaptação dos parâmetros

Exemplo: classificação de imagens


Modelo fonte: CNN treinada na ImageNet
▶ Ajuste-fino – opção alternativa
▶ Depende de maior quantidade de dados
▶ (Opcionalmente) Re-inicializar ou inserir novas camadas
densas ocultas
▶ Permitir adaptação de toda a rede (sem reinicializar seus
pesos)
Extração de características

Características para dados não estruturados


▶ Carregar rede neural treinada em grande base de dados
▶ Passar exemplos de sua base de dados pela rede para predição
(não treinamento!).
▶ Obter os mapas de ativação de alguma camada

Exemplos
▶ CNNs pré-treinadas na ImageNet para imagens,
▶ Sentence transformers (sBERT) para texto.
Extração de características

Dicas
▶ Aplicar redução de dimensionalidade baseada em algum
método como PCA,
▶ Treinar modelo de aprendizado raso com maiores garantias de
aprendizado com poucos dados: SVM, árvore de decisão, etc.
▶ Essas características também são efetivas para recuperação
baseada em conteúdo
Mensagem (3)

Para além da escolha de arquitetura, explorar


1. Quantidade dos dados e aumento de dados
2. Regularização/Dropout
3. Parada Precoce (Early Stopping)
4. Estudo de hiperparâmetros de otimização
5. Normalização por camadas
6. Transferência de aprendizado
Bibliography I

Moacir A. Ponti, Fernando dos Santos, Leo Ribeiro, Gabriel


Cavallari. Training Deep Networks from Zero to Hero:
avoiding pitfalls and going beyond.
SIBGRAPI, 2021. Tutorial.
https://arxiv.org/abs/2109.02752

Moacir A. Ponti, Leo Ribeiro, Tiago Nazaré, Tu Bui, John


Collomosse. Everything You Wanted to Know About Deep
Learning for Computer Vision but were Afraid to Ask.
SIBGRAPI-T, 2017. Tutorial.

Você também pode gostar