일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- deep learning
- OoDD
- 딥러닝
- Federated Learning
- FedAvg
- q-FFL
- PPML
- convergence
- ML
- value shaping
- Federated Transfer Learning
- 머신러닝
- OOD
- Machine learning
- Differential Privacy
- FL
- ordered dropout
- FedProx
- Agnostic FL
- Analysis
- 개인정보
- OSR
- free rider
- Open Set Recognition
- q-FedAvg
- 기계학습
- data maximization
- DP
- Fairness
- 연합학습
- Today
- Total
Federated Learning
[CVPR 2018] Evidential Deep Learning - (1) 본문
[CVPR 2018] Evidential Deep Learning - (1)
pseudope 2023. 4. 29. 01:30논문 제목: Evidential Deep Learning to Quantify Classification Uncertainty
출처: https://arxiv.org/abs/1806.01768
지난 포스트에서 OSR 기법 중 한 가지인 PROSER를 다루면서, overconfidence에 관하여 잠시 언급하였습니다. (이전 글 보기) 이번 포스트에서는 Bayesian의 관점을 한 번 다루어보려고 합니다. Bayesian들은 overconfidence 문제를 어떻게 해결하고자 하였는지, 그리고 이들은 model에게 아는 것과 모르는 것을 올바르게 구분하도록 어떻게 유도하였는지 확인해보도록 하겠습니다.
1. Softmax Classifier가 문제다?
$\theta$를 parameter로 가지고 있는 neural net $f(\cdot)$을 이용하여 $K$개의 class에 대한 multinomial classification을 진행하는 상황을 가정해봅시다. 이때 각 class에 대한 datum $(X, y)$의 likelihood function은 다음과 같습니다:
$$\mathbb{P} (y | X, \theta) = \text{Mult} (y | \sigma (f_1 (X, \theta)), \cdots, \sigma(f_K (X, \theta)))$$
여기에서 $\sigma(x_k) := \frac {\exp(x_k)} {\sum_{i=1}^K \exp(x_i)}$ 는 softmax function으로, 우리가 multinomial classification을 할 때에 늘상 사용하는 classifier입니다. 그리고 이 Softmax Classifier를 사용할 때에는 다음과 같이 정의된 Categorical Cross-Entropy Loss를 objective function으로 사용하는 것이 일반적입니다:
$$\mathcal{L}_\text{CE} := - \sum_{k=1}^K y_k \log (\sigma(x_k))$$
저자들은 이 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 \in [1, \cdots, K]$에 대하여, 주어진 datum $(X, y)$가 class $k$에 속할 확률을 $p_k := b_k + a_k u$로 정의하겠습니다. 이때, $b_k := \frac {e_k} {S}$는 belief mass라고 불리며, $S:= \sum_{k=1}^K (e_k + 1)$입니다. $e_k \geq 0$는 class $k$에 대한 evidence로 정의하며, 해당 paper에서는 (softmax를 대체할 어떠한) nonnegative activation function의 output에 해당합니다. $a_k$는 해당 $k$의 base rate distribution인데, 일반적으로는 uniform을 상정하여 $k$에 상관 없이 $a_k = \frac {1} {K}$로 지정합니다. 즉, $p_k := b_k + \frac {1} {K} u$이며, $u \geq 0$는 model의 uncertainty를 나타냅니다. 이를 직관적으로 보면, 해당 class로 분류되는 확률 = 믿음을 갖고 해당 class를 택한 확률 + 확신 없이 해당 class를 택한 확률로 이해할 수 있습니다.
그리고 $p_k$는 확률이므로, $1 = \sum_{k=1}^K p_k = \sum_{k=1}^K (b_k + \frac {1} {K} u) = u + \sum_{k=1}^K b_k$을 만족합니다. 따라서, $u + \sum_{k=1}^K b_k = 1$이며, 이는 저자들이 의도한 대로 classifier에 의하여 확률이 "squashed"되는 일을 해결하였음을 보여줍니다. ($u$가 $(K + 1)$번째 class의 역할을 하고 있다고 볼 수도 있겠으나, $u$가 classifier에서 class 한 개의 자리를 차지하고 있지 않습니다.) 또한,
$$ 1 = u + \sum_{k=1}^K b_k = u + \sum_{k=1}^K \frac{e_k} {S} = u + \frac {\sum_{k=1}^K (e_k + 1) - K} {S} = u + 1 - \frac {K} {S} $$
이므로, $u = \frac {K} {S}$입니다. ($K$는 class 개수이므로, $S$만 계산하면 uncertainty를 구할 수 있다는 의미입니다.)
다음으로, 각 class에 대한 probability mass functions $\textbf{p} := [\textbf{p}_1, \cdots, \textbf{p}_K]$와 Dirichlet strength vector $\pmb{\alpha} := [\alpha_1, \cdots, \alpha_K]$에 대하여, Dirichlet Distribution을 다음과 같이 정의합니다:
\begin{equation} \text{Dir} (\textbf{p} | \pmb{\alpha}) := \begin{cases} \frac {1} {B (\alpha)} \prod_{k=1}^K \textbf{p}_k^{\alpha_k - 1} & \text{for $\textbf{p} \in S_K$} \\ 0 & \text{elsewhere} \end{cases}, \\ \text{where } S_K := \left\{ \textbf{p} | \sum_{k = 1}^K \textbf{p}_k = 1 \land 0 \leq \textbf{p}_1, \cdots, \textbf{p}_K \leq 1 \right\} \text{ is the $K$-dimensional unit simplex} \\ \text{and } B(\alpha) := \frac {\prod_{k=1}^K \Gamma(a_k)} {\Gamma \left(\sum_{k=1}^K \alpha_k \right)} \text{is the $K$-dimensional multinomial beta function.} \end{equation}
(주의: notation이 다소 복잡합니다. $p_k$는 주어진 datum이 class $k$로 분류될 "확률"이고, $\textbf{p}_k$는 class $k$에 대한 pmf입니다.)
여기에서 $\alpha_k := e_k + 1$이며, $\pmb{\alpha}$가 Dirichlet strength vector이므로, 앞서 정의한 $S := \sum_{k=1}^K (e_k + 1) = \sum_{k=1}^K \alpha_k$를 Dirichlet strength라고 부릅니다. 그리고 $\hat{p}_k := \mathbb{E} [\textbf{p}_k] = \frac {\alpha_k} {S}$로 $p_k$를 추정합니다. (따라서, 굳이 $b_k$를 계산할 필요는 없습니다.)
3. 작동 예시
직관적인 예시 한 가지를 살펴보겠습니다. ($K = 10$인 상황을 가정합시다.) 학습을 시작하기 전에는 어떠한 evidence도 없으므로, 임의의 $k \in [1, \cdots, K]$에 대하여 $e_k = 0$이고, 따라서 $b_k = 0$입니다. 그리고 $u + \sum_{k=1}^K b_k = 1$이므로, $u = 1$입니다. 이는 "학습 과정이 전혀 없었으므로 uncertainty가 최대치"라는 우리의 직관에 부합합니다. 또한, $p_k = b_k + \frac {1} {K} u$로부터, $p_k = \frac {1} {K} u$임을 알 수 있는데, 이는 "unifrom initialization"으로, 즉, 학습이 전혀 되지 않은 상황에서 모든 class에 동일한 확률을 할당한 것으로 이해할 수 있습니다. 같은 상황을 Dirichlet distribution의 관점에서 보면, $\alpha_k = e_k + 1$이므로 $\pmb{\alpha} = [1, \cdots, 1] =: \textbf{1}$이고, 따라서 $\text{Dir} (\textbf{p} | \pmb{\alpha}) = \text{Dir} (\textbf{p} | \textbf{1})$입니다. 이는 앞서 확인한 unifrom initialization이라는 결과와 일맥상통하는 부분입니다.
다음으로, 일정 정도 학습이 진행된 결과 $b_0 = 0.8$이 되었다고 가정합시다. (다른 $b_{k \neq 0}$들은 그대로 $0$입니다.) 그러면 $u + \sum_{k=1}^K b_k = 1$으로부터 $u = 0.2$임을 알 수 있고, $u = \frac {K} {S}$이므로 $S = \frac {K} {u} = \frac {10} {0.2} = 50$입니다. 따라서, $b_k = \frac {e_k} {S}$로부터 $e_0 = b_0 \times S = 0.8 \times 50 = 40$이며, 이때의 Dirichlet distribution은 $\text{Dir} (\textbf{p} | \langle 41, 1, \cdots, 1 \rangle)$입니다.
다음 포스트에서 해당 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 |