Resumo: Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles


(Christian S. Perone) #1

Para quem estiver interessado em modelagem de incerteza em Deep Learning, segue resumo do artigo:

Artigo: Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles
Autor: Balaji Lakshminarayanan, Alexander Pritze, Charles Blundell
ArXiv: 1612.01474

Uma das grandes limitações em Deep Learning hoje é a falta de incerteza. Muita gente confunde a probabilidade da saída do softmax com a incerteza do modelo, mas um modelo pode ter uma alta probabilidade de predição para determinada classe (no exemplo de classificação) mesmo com grande incerteza. Para quem tiver mais interesse, a tese do Yarin Gal fala bastante sobre isso, na Figura 1.3 da tese ele mostra esse efeito do softmax:

image

Incerteza é extremamente útil em várias áreas, principalmente na área médica onde é muito útil não só ter uma predição mas também ter a incerteza dessa predição (ex: um modelo produz uma predição com 95% de probabilidade para uma nova amostra (out of sample) e determinada classe, mas sem incerteza é difícil saber o quão certo está o modelo sobre esta predição). Incerteza também é muito importante durante a decisão de explore/exploit que é comum em Bandits e Reinforcement Learning. A incerteza também é essencial para Active Learning, dado que maior parte dos métodos requer a seleção de amostras em que o modelo está com maior incerteza, portanto a incerteza do modelo é uma estimativa natural nesses casos.

Muitos trabalhos tentaram formar uma aproximação Bayesiana através do Dropout, um dos trabalhos mais interessantes (e simples de implementar) é do próprio Yarin:
Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning, onde o formalismo se dá através de Gaussian Processes. Todavia ainda existe suspeita sobre essa aproximação utilizando Dropout e no artigo deste resumo eles mostram que o MC Dropout geralmente produz incerteza com excesso de confiança (o qual também já vi em outras tasks).

No artigo, os autores propõe um método simples utilizando ensemble para estimar a incerteza:

  1. Uso de um critério apropriado para o treino;
  2. Uso de treino adversário (mas não obrigatório, visto que se pode obter bons resultados mesmo sem);
  3. Treino de um ensemble de modelos;

Para fazer avaliação da técnica, e comparar também com MC Dropout, eles utilizam a entropia da distribuição das predições. Nessa avaliação eles encontraram:

  1. Para classes conhecidas, tanto a técnica com ensembles quanto MC Dropout mostraram baixa entropia (linha de cima da imagem abaixo);
  2. Para classes desconhecidas (linha de baixo da figura), o método com ensembles se mostrou muito mais robusto para estimar a incerteza;

Existem outras avaliações no artigo para quem estiver interessado em se aprofundar mais. É interessante notar também que Dropout tem uma ligação com ensembles, mas usando pesos compartilhados.

Alguns links interessantes sobre o assunto:

Alguém mais tem experimentado com diferentes técnicas de incerteza ?


(Roberto Pereira Silveira) #2

Muito legal a publicação, esse tema de incerteza é muito interessante e também muito importante na área de ML.
Segue abaixo uma implementação desse paper em PyTorch, para regressão. Ainda está faltando incluir a parte de Adversarial Inputs, mas de resto tá batento com os resultados do paper.
Segue ai:
Input Signal
input_signal
Start of Regression (Input + mean)
post_2
Uncertainty using ensemble (higher in areas w/ less points)
post_3
Regression w/ Uncertainty (ensemble k=10) using Negative Log Likelihood loss (NLLLoss)
post_4


(Christian S. Perone) #3

Muito legal os plots, tem um outro artigo que um amigo indicou, onde eles colocam prior (em regularização) nos parâmetros dos modelos do ensemble para resolver o dilema de overfitting/diversidade:

Ali na imagem onde tem unconstrained é sem regularização onde o modelo não generaliza bem e tem o regularised que é quando se adiciona regularização e não se tem diversidade no ensemble. Eles resolvem adicionado regularização mas baseado nos valores da inicialização ao invés de centralizar em zero (L2).

Comparações:

Imagens do paper Bayesian Inference with Anchored Ensembles of Neural Networks, and Application to Exploration in Reinforcement Learning.

Achei bem simples de implementar e com bons resultados (e como sempre, o MC Dropout não convence muito).