Federated Learning

[CVPR 2018] Evidential Deep Learning - (1) 본문

Machine Learning/Out-of-Distribution Detection

[CVPR 2018] Evidential Deep Learning - (1)

pseudope 2023. 4. 29. 01:30
728x90

논문 제목: Evidential Deep Learning to Quantify Classification Uncertainty

출처: https://arxiv.org/abs/1806.01768

 

 지난 포스트에서 OSR 기법 중 한 가지인 PROSER를 다루면서, overconfidence에 관하여 잠시 언급하였습니다. (이전 글 보기) 이번 포스트에서는 Bayesian의 관점을 한 번 다루어보려고 합니다. Bayesian들은 overconfidence 문제를 어떻게 해결하고자 하였는지, 그리고 이들은 model에게 아는 것과 모르는 것을 올바르게 구분하도록 어떻게 유도하였는지 확인해보도록 하겠습니다.

 

1. Softmax Classifier가 문제다?

 

 θparameter로 가지고 있는 neural net f()을 이용하여 K개의 class에 대한 multinomial classification을 진행하는 상황을 가정해봅시다. 이때 각 class에 대한 datum (X,y)의 likelihood function은 다음과 같습니다:

P(y|X,θ)=Mult(y|σ(f1(X,θ)),,σ(fK(X,θ)))

여기에서 σ(xk):=exp(xk)Ki=1exp(xi) 는 softmax function으로, 우리가 multinomial classification을 할 때에 늘상 사용하는 classifier입니다. 그리고 이 Softmax Classifier를 사용할 때에는 다음과 같이 정의된 Categorical Cross-Entropy Loss를 objective function으로 사용하는 것이 일반적입니다:

LCE:=Kk=1yklog(σ(xk))

저자들은 이 Softmax Classifier에 문제가 있다고 주장하고 있는데, 그 이유는 크게 두 가지입니다.

 

(i) 확률 값을 모두 더한 결과가 1이 되도록 우겨 넣는 구조

 

주어진 data가 model이 알고 있는 어떠한 class에도 속하지 않을 수 있을 것입니다. (이러한 data가 OoD data이고, 우리가 detect 해야 하는 대상이죠.) 하지만 Softmax Classifier는 정의 상 주어진 data의 score를 알고 있는 K개의 class에 합해서 1이 되도록 분배하여야 하고, 이중 가장 높은 score를 보인 class로 predict합니다. 따라서, 각 class에 대한 score가 model의 confidence에 비해 높아지게 되고, 이는 앞서 언급한 overconfidence와 궤를 같이하는 이야기입니다.

 

 사실, 이 부분은 기존의 몇몇 OSR 기법들이 dummy class를 의미하는 (K+1)번째 class를 추가하고 학습 과정에서 outlier에 관한 정보를 함께 주입하면서 해결한 바 있습니다. 기존의 방식이라면 다른 class들로 흩어졌을 score들을 (K+1)번째 class로 보내면서, 각 class에 대한 model의 confidence만을 확인하고자 한 셈이죠. Bayesian들은 이 점을 어떻게 해결하고자 하였는지 잠시 후에 알아보도록 하겠습니다.

 

(ii) CE Loss를 minimizing하는 것은 MLE를 찾는 것과 동치이다.

 

 CE Loss를 minimizing하는 것과 MLE를 찾는 것이 동치라는 사실은 잘 알려져 있습니다. (그리 어려운 이야기가 아니므로 생략하도록 하겠습니다.) 즉, 우리가 objective function을 optimize하면서 얻는 것은 특정한 하나의 point estimate라는 이야기인데, 저자들은 이 지점을 지적하고 있습니다. (이 주장을 그저 "Bayesian의 관점에서 보았을 때 frequentist들의 MLE가 마음에 들지 않았구나" 정도로 생각하고 넘어갈 수도 있겠지만, 수긍할 만한 근거가 있습니다.) point estimation을 했다는 것은, 더 이상 추가적인 분석이 불가능하다는 것을 의미합니다. 우리가 uncertainty를 포착하는 것도 물론 중요하겠지만, uncertainty의 uncertainty에 관한 분석, 즉, "model의 uncertainty가 얼마나 certain한지"에 관한 분석 역시 중요할 것입니다. (해당 분야에서는 이를 second-order uncertainty라고 표현합니다.) 따라서, 저자들은 model의 output을 다른 방식으로 추정해야 한다고 생각하였고, Dirichlet Distribution을 prior로 하여 multinomial distribution을 예측할 것을 제안하였습니다.

 

2. Uncertainty Estimation & Probability Estimation

 

 우선, 저자들은 classifier의 output들을 더했을 때 1이 되는 구조를 바꾸고 싶었습니다. 임의의 k[1,,K]에 대하여, 주어진 datum (X,y)가 class k에 속할 확률을 pk:=bk+aku로 정의하겠습니다. 이때, bk:=ekS는 belief mass라고 불리며, S:=Kk=1(ek+1)입니다. ek0는 class k에 대한 evidence로 정의하며, 해당 paper에서는 (softmax를 대체할 어떠한) nonnegative activation function의 output에 해당합니다. ak는 해당 k의 base rate distribution인데, 일반적으로는 uniform을 상정하여 k에 상관 없이 ak=1K로 지정합니다. 즉, pk:=bk+1Ku이며, u0는 model의 uncertainty를 나타냅니다. 이를 직관적으로 보면, 해당 class로 분류되는 확률 = 믿음을 갖고 해당 class를 택한 확률 + 확신 없이 해당 class를 택한 확률로 이해할 수 있습니다.

 

 그리고 pk는 확률이므로, 1=Kk=1pk=Kk=1(bk+1Ku)=u+Kk=1bk을 만족합니다. 따라서, u+Kk=1bk=1이며, 이는 저자들이 의도한 대로 classifier에 의하여 확률이 "squashed"되는 일을 해결하였음을 보여줍니다. (u(K+1)번째 class의 역할을 하고 있다고 볼 수도 있겠으나, u가 classifier에서 class 한 개의 자리를 차지하고 있지 않습니다.) 또한,

1=u+Kk=1bk=u+Kk=1ekS=u+Kk=1(ek+1)KS=u+1KS

이므로, u=KS입니다. (K는 class 개수이므로, S만 계산하면 uncertainty를 구할 수 있다는 의미입니다.)

 

 다음으로, 각 class에 대한 probability mass functions p:=[p1,,pK]Dirichlet strength vector αα:=[α1,,αK]에 대하여, Dirichlet Distribution을 다음과 같이 정의합니다:

Dir(p|αα):={1B(α)Kk=1pαk1kfor pSK0elsewhere,where SK:={p|Kk=1pk=10p1,,pK1} is the K-dimensional  unit simplexand B(α):=Kk=1Γ(ak)Γ(Kk=1αk)is the K-dimensional multinomial beta function.

(주의: notation이 다소 복잡합니다. pk는 주어진 datum이 class k로 분류될 "확률"이고, pk는 class k에 대한 pmf입니다.)

 

여기에서 αk:=ek+1이며, αα가 Dirichlet strength vector이므로, 앞서 정의한 S:=Kk=1(ek+1)=Kk=1αk를 Dirichlet strength라고 부릅니다. 그리고 ˆpk:=E[pk]=αkSpk를 추정합니다. (따라서, 굳이 bk를 계산할 필요는 없습니다.)

 

3. 작동 예시

 

 직관적인 예시 한 가지를 살펴보겠습니다. (K=10인 상황을 가정합시다.) 학습을 시작하기 전에는 어떠한 evidence도 없으므로, 임의의 k[1,,K]에 대하여 ek=0이고, 따라서 bk=0입니다. 그리고 u+Kk=1bk=1이므로, u=1입니다. 이는 "학습 과정이 전혀 없었으므로 uncertainty가 최대치"라는 우리의 직관에 부합합니다. 또한, pk=bk+1Ku로부터, pk=1Ku임을 알 수 있는데, 이는 "unifrom initialization"으로, 즉, 학습이 전혀 되지 않은 상황에서 모든 class에 동일한 확률을 할당한 것으로 이해할 수 있습니다. 같은 상황을 Dirichlet distribution의 관점에서 보면, αk=ek+1이므로 αα=[1,,1]=:1이고, 따라서 Dir(p|αα)=Dir(p|1)입니다. 이는 앞서 확인한 unifrom initialization이라는 결과와 일맥상통하는 부분입니다.

 

 다음으로, 일정 정도 학습이 진행된 결과 b0=0.8이 되었다고 가정합시다. (다른 bk0들은 그대로 0입니다.) 그러면 u+Kk=1bk=1으로부터 u=0.2임을 알 수 있고, u=KS이므로 S=Ku=100.2=50입니다. 따라서, bk=ekS로부터 e0=b0×S=0.8×50=40이며, 이때의 Dirichlet distribution은 Dir(p|41,1,,1)입니다.

 

다음 포스트에서 해당 mechanism을 어떻게 학습시킬 것인지에 관하여 알아보도록 하겠습니다.

'Machine Learning > Out-of-Distribution Detection' 카테고리의 다른 글

[CVPR 2021] PROSER - (4)  (0) 2023.03.01
[CVPR 2021] PROSER - (3)  (1) 2023.02.28
[CVPR 2021] PROSER - (2)  (0) 2023.02.25
[CVPR 2021] PROSER - (1)  (0) 2023.02.17
Comments