논문 리뷰

[Paper] Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles

망나 2019. 4. 17. 10:22
DeepMind에서 작성한 논문 "Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles" 논문에 대한 정리입니다.

Neural Networks에서 불확실성 (Uncertainty)은 아직 완전히 해결되지 않은 문제입니다. 모델의 불확실성을 예측하는 데 있어서 Bayesian NNs (distribution을 weight로서 학습하는 모델)가 현재 가장 좋은 성능을 보이고 있습니다. 하지만, Bayesian NNs은 계산 복잡도가 높고 학습 절차도 수정이 필요합니다. 본 논문에서는 불확실성을 예측하는데 Bayesian NNs을 대체할 수 있도록 구현이 쉽고, 쉽게 병렬화 가능하며 계산 복잡도도 낮은 (낮은 수의 hyperparameter) 방법을 소개합니다.

 

앙상블 (Ensemble) 모델이 모델의 예측 성능을 향상한다는 것은 오래전부터 증명이 되었고 이미 널리 사용되고 있습니다. 하지만 앙상블 기법이 불확실성 예측 평가에도 좋은 성능을 보이는지는 확실치 않습니다. Bayesian model averaging (BMA)는 hypothesis class에 실제 모델이 있다고 가정하고 그 안에서 최적의 단일 모델을 찾기 위한 soft model selection을 수행합니다. 반면에 앙상블은 model combination을 수행합니다 (더 좋은 모델을 얻기 위해 모델을 합친다); 따라서 앙상블 기법은 실제 모델이 hypothesis class에 있지 않을 경우에 더 좋은 성능을 얻을 수 있습니다. 중요한 점은 BMA 조차도 도메인의 이동에 대해서 모델의 예측 결과의 견고함을 보장하지는 못한다는 것입니다.

 

 

- 논문의 Novelty & Significance

현재 NNs의 앙상블 (deep ensembles)은 모델의 예측 정확도를 향상하는데 많이 사용되고 있고, adversarial training 또한 adversarial example에서 모델의 견고함을 향상하기 위해 사용되고 있습니다. 본 논문에서는 ensemble과 adversarial training을 모델의 불확실성 예측을 추정하고 평가하는데 활용하고 그 결과를 비교 분석합니다. 기존의 불확실성을 주로 다루던 Bayesian NNs (e.g. variational inference 또는 MCMC methods)와 비교했을 때, 본 논문에서 제안하는 방법이 더 간단히 구현 가능하기 때문에 대규모의 deep learning application 개발에 대한 활용성이 높을 것입니다. 따라서 논문의 저자들을 이러한 Non-Bayesian 방법에 대한 연구가 더욱 활발해져야 한다고 주장합니다.

 

 

- Deep Ensembles: A Simple Recipe for Predictive Uncertainty Estimation

  1. Problem setup and High-level summary
     Classification(label은 K개의 클래스 중 하나)과 Regression(label은 실수 값) 문제에서 \(N\) 개의 데이터를 포함한 훈련 데이터 \(D\)가 있고 입력 \(x\)가 주어질 때, 우리는 label에 대한 확률 분포 예측을 모델링하기 위해 신경망(neural network)을 사용합니다.
    논문에서 제안하는 방법론은: (1) 모델의 훈련에 적절한 평가 규칙(scoring rules)을 사용합니다, (2) 예측 분포를 부드럽게(smooth) 하기 위해 adversarial training을 사용합니다, (3) 앙상블 기법으로 훈련시킵니다(train an ensemble).
  2. Proper scoring rules
    불확실 예측에 대한 성능을 측정하는 적절한 scoring rule을 사용해야 합니다.
  3. Adversarial training to smooth predictive distributions
    Ian Goodfellow님 께서 adversarial example 생성을 위해 fast gradient sign method를 제안했습니다. 입력 \(x\)와 타깃 \(y\) 그리고 loss \(l(\theta, x, y)\)가 주어질 때, fast gradient sign method는 adversarial example \(x^{'}\)를 생성합니다. Adversarial perturbation은 네트워크의 loss를 증가시키는 방향으로 perturbation을 추가하여 새로운 훈련 예제를 생성합니다. Adversarial example은 \((x^{'}, y)\)를 추가 훈련 데이터로 사용하여 원래의 학습 데이터를 보강할 수 있습니다. 이러한 adversarial training 절차로 우리의 분류기 모델을 더 견고하게 만들 수 있습니다.
  4. Ensembles: training and prediction
    앙상블 기법에는 가장 흔히 decision tree를 사용합니다. 크게 2 종류의 앙상블 기법이 있습니다: randomization 기반의 방법(random forest와 같은)으로 앙상블 멤버 모델들이 상호작용 없이 평행적으로 학습되는 방법이 있고, boosting 기반의 방법으로 앙상블 멤버 모델들이 순차적으로 맞춰져 학습되는 방법이 있습니다. 논문에서는 분산, 병렬 계산에 적합한 randomization 기법을 고려했습니다. 그 중 가장 유명한 방법은 bagging(a.k.a bootstrapping)으로 앙상블 멤버 모델들은 원본 훈련 데이터 셋으로부터 얻은 각자 다른 bootstrap 샘플로 학습을 하는 방법입니다. 앙상블의 개별 모델의 randomization이 부족할 때, bagging은 diversity를 유도하기 좋은 방법입니다. 하지만, 앙상블 모델이 전형적인 NNs의 경우처럼 여러 local optima를 갖고 있으면, 모델은 bootstrap 샘플인 63%의 unique data point만 관찰할 수 있기 때문에 성능을 떨어뜨릴 수 있습니다. (bootstrap 은 dataset으로부터 \(N\) 아이템을 \(N\)번 뽑기 때문에 아이템이 적어도 한번 뽑힐 확률은 \(1-(1-1/N)^{N}\)이 되고 N이 거지면 \(1-e^{-1} \approx 0.632\)가 됩니다. 따라서 bootstrap sample에 의해 unique data point의 개수는 평균 \(0.632 \times N\)이 됩니다).

    논문에서는 네트워크 학습에 전체 훈련 데이터를 모두 사용했습니다. NN parameter를 random 초기화하면, 데이터 포인트의 랜덤 셔플링으로 인해 더 좋은 성능을 얻을 수 있다고 합니다.

 

- Algorithm

논문에서 사용한 알고리즘

 

 

- Experiment Result

  • Regression on toy datasets

    (1) NLL을 사용해서 훈련한 모델의 불확실성 예측이 더 효과적이다.
    (2) 앙상블을 사용하면 성능이 향상된다, 특히 관측된 훈련 데이터에서 멀어질수록 (불확실성이 줄어든다는 의미)

왼쪽부터 차례대로 MSE 결과, NLL 결과, Adversarial training 결과, Ensemble 결과

 

  • Regression on real-world datasets

    Probabilistic backpropagation (PBP) / MC-dropout / Deep Ensembles 비교

 

  • Classification on MNIST, SVHN, and ImageNet

    본 논문의 목적이 예측 성능의 sota를 달성하는 것이 아닌 adversarial training과 ensemble 사용에 따른 모델의 불확실성 예측 성능에 대한 연구이기 때문에 adversarial training의 사용 유무와 ensemble에서의 네트워크 개수에 의한 효과를 검증하는 실험도 진행되었습니다. 결과에서 볼 수 있듯 adversarial training과 ensemble의 네트워크의 개수를 늘리는 것이 불확실성 예측 성능을 향상시킨다는 것을 증명했습니다. 또한, Augmenting with random direction 보다는 adversarial training이 더 좋은 효과를 보이며, random crop과 horizontal flips과 같은 방법으로 훈련 데이터를 증가시키는 것이 adversarial training을 보완하여 더 나은 성능을 보일 수 있습니다.

MNIST dataset using 3-layer MLP
SVHN using VGG-style convnet

 

  • Uncertainty evaluation: test examples from known vs unknown classes

    마지막으로 Out-of-Distribution 데이터에 대한 불확실성 예측 평가입니다. 딥러닝 모델을 실제 응용 프로그램에 사용하여 안정적으로 배포하기 위해서는 Unseen class에 대해서 재대로된 처리가 필요합니다(낮은 신뢰도의 예측을 보여주는 방식으로). 이러한 불확실성 예측에 대한 평가를 위해서 논문에서느 MNIST 데이터를 활용하여 모델을 학습시키고 테스트 데이터로 unknown classes(NotMNIST)를 입력하여 결과를 비교해봤습니다. 여기서 NotMNIST는 MNIST와 같은 크기를 가진 알파벳 이미지 데이터 입니다. 모델이 NotMNIST 데이터를 입력 받으면 높은 불확실성을 보여야 합니다. 이를 평가하기 위해서 논문에서는 예측 분포의 엔트로피를 활용합니다. 결과 그래프를 보면 논문에서 제안하는 방법이 unseen classes 예측에 대해서 MC-dropout보다 더 빨리 엔트로피가 상승하는 것을 확인할 수 있는데, 그 만큼 불확실성에 대한 예측이 잘 된다는 것을 의미합니다.

MNIST - NotMNIST

 

SVHN - CIFAR10