안녕하세요. 정말 오랜만에 논문 리뷰를 하게 되었습니다. 오늘 리뷰할 논문은 Data Augmentation에서 아주 유명한 논문입니다. 바로 mixup이라는 논문인데요. 간단하게 설명을 해보도록 하겠습니다.
일단 기본적으로 신경망의 특징은 2가지로 정리해볼 수 있습니다.
- 훈련 데이터셋에 대한 평균 에러를 최소화함으로써 신경망 최적화
- 이전에 나왔던 SOTA 성능의 신경망은 훈련 데이터셋의 크기에 선형적으로 비례하여 그 규모가 커짐
이때, 첫번째 특징을 Empirical Risk Minimization(ERM) principle이라고도 합니다. 즉, 저희가 현재 볼 수 있는 데이터인 empirical distribution을 통해서 risk(error)를 최소화한다는 것이죠. 이는 사실 당연하다고 볼 수 있습니다. 애초에 훈련 데이터는 이 세상에 있는 모든 특징들을 포함하고 있지 않기 때문에 저희가 학습한 모델은 데이터셋에 편향되기 때문이죠. 또한 훈련 데이터셋의 규모가 커질수록 ERM의 수렴성이 보장된다고 이미 이전 논문에서 보여주었습니다.
하지만 ERM 기반의 학습에는 훈련 데이터는 "기억(memorize)"하여 강한 규제(regularization) 방법을 쓰더라도 훈련 데이터에 과적합되는 현상이 발생한다는 단점이 있습니다. 따라서, ERM을 기반으로 학습한 신경망은 OOD(Out Of Distribution) 데이터에 취약할 수 밖에 없습니다. 이는 ERM 기반의 학습이 신경망의 일반화(Generalization)을 오직 훈련 데이터셋과 약간 다른 분포를 가진 시험 데이터셋에서만 달성할 수 있다는 결론을 낼 수 있습니다.
그리하여 새로운 방법인 Vicinal Risk Minimization(VRM) principle이 등장하게 되었습니다. VRM 기반의 학습과 ERM 기반의 학습의 가장 큰 차이점은 훈련 데이터셋만 학습하는 것이 아니라 훈련 데이터셋의 근방(vicinal) 분포도 함께 활용한다는 것입니다. 그렇다면 저희는 어떻게 근방 분포를 얻을 수 있을 까요? 사실 답은 간단합니다. 주어진 데이터가 아닌 새로운 데이터이지만 훈련 데이터와 그렇게 크게 다르지 않은 학습전략....바로 데이터 증강(Data Augmentation)입니다. 즉, VRM 기반의 학습은 어떤 가상의 데이터를 근방 분포로부터 샘플링하여 신경망 학습의 도움을 주는 전략이지만 이는 정확히 데이터 증강과 동일한 방법을 취하고 있습니다. 이는 곧 데이터 증강을 사용한다는 것은 신경망의 일반화에 더 큰 도움을 줄 수 있다는 것을 의미합니다.
하지만, 아직 뭔가 설명이 약간 모자라기 때문에 논문에 나온 수식을 바탕으로 설명을 진행하도록 하겠습니다. 일단 $f \in \mathcal{F}$는 결합 확률분포 $P(X, Y)$에서 샘플링된 $(x, y)$ 사이의 관계를 의미하는 함수라고 가정하겠습니다.(아니면 그냥 임의의 딥 러닝 모델이라고 가정하더라도 충분히 이해가 가능합니다.) 그리고 $l(\cdot, \cdot)$을 $f(x)$와 $y$ 사이의 차이를 모델링하는 어떤 손실 함수라고 했을 때, 저희는 모든 훈련 데이터셋에 대한 손실 함수의 평균을 최소화함으로써 $(x, y)$ 사이의 관계를 정확하게 모델링하는 함수를 찾을 수 있습니다.
따라서 저희는 전체 훈련 데이터 분포에서 손실 함수에 대한 평균을 정의해야하는 데, 스틸체스 적분을 활용하여 손실 함수의 기댓값이 아래와 같이 정의될 수 있습니다.
$$R(f) = \int l(f(x), y) \; dP(x, y)$$
이제부터 정의된 $R(f)$를 기대 위험이라고 하겠습니다. 그런데 저희가 항상 $R(f)$를 계산할 수 있을까요? 아쉽지만 기대 위험을 계산하기 위해서는 반드시 $P(x, y)$를 알고 있어야하지만 저희는 대부분의 상황에서 데이터의 분포가 어떤 분포인지 모릅니다. 따라서 그나마 현재 저희가 가지고 있는 훈련 데이터만이라도 기대 위험을 계산할 수 있는 지 보도록 하겠습니다.
저희가 가지고 있는 데이터가 $D = \{(x_{i}, y_{i})\}_{i=1}^{n}$이라고 했을 때, $(x_{i}, y_{i}) \sim P$를 따른다고 하겠습니다. 즉, $D$는 훈련 데이터가 되겠죠. 이제 이를 기반으로 경험 분포(Empirical Distribution)을 정의하면 아래와 같습니다.
$$P_{\delta}(x, y) = \frac{1}{n}\sum_{i=1}^{n}\delta(x=x_{i}, y=y_{i})$$
여기서 $\delta(x = x_{i}, y = y_{i})$는 다이락-델타 함수(Dirac-Delta function)으로 $(x_{i}, y_{i})$에서만 1이고 나머지 점에서는 0인 함수입니다. 이를 통해서 경험적 기대 위험(Empirical Expected Risk)를 얻을 수 있습니다.
$$R_{\delta}(f) = \int l(f(x), y) \; dP_{\delta}(x, y) = \frac{1}{n}\sum_{i=1}^{n} l(f(x_{i}), y_{i})$$
이때, $R_{\delta}(f)$를 최소화하게 되면 이전에 제가 말씀드렸던 ERM 기반의 학습이 되는 것입니다. 이를 VRM 기반의 학습으로 확장시켜보도록 하겠습니다. 먼저, $\nu$를 훈련 데이터의 feature-target 쌍 $(x_{i}, y_{i})$ 근방에서 가상의 feature-target 쌍 $(\tilde{x}, \tilde{y})$를 찾을 확률을 재는(measure) 근방 분포(vicinal distribution)라고 정의하도록 하겠습니다. 이러한 근방 분포를 이용해서 데이터에 대한 분포를 아래와 같이 모델링 할 수 있습니다.
$$P_{\nu}(\tilde{x}, \tilde{y}) = \frac{1}{n}\sum_{i=1}^{n} \nu(\tilde{x}, \tilde{y}|x_{i}, y_{i})$$
훈련 데이터에 대한 분포를 포함하는 $P_{\nu}(\tilde{x}, \tilde{y})$를 모델링하였기 때문에 저희는 이에 대한 새로운 기대 위험을 계산할 수 있습니다.
$$R_{\nu}(f) = \frac{1}{m}\sum_{i=1}^{m} l(f(\tilde{x}_{i}), \tilde{y}_{i})$$
만약 $R_{\nu}(f)$를 이용해서 최소화하게 되면 VRM 기반의 학습이 됩니다. 본 논문에서 제안하는 mixup 데이터 증강 기법은 VRM 학습의 한 종류라고 볼 수 있습니다.
mixup은 코드 단위에서 아주 쉽게 구현할 수 있습니다. 심지어 논문에서 의사코드를 제공하고 있기 때문에 더욱 쉽게 구현해보실 수 있을 것이라고 생각이 듭니다.
위의 그림에서 오른쪽 그림은 ERM 기반으로 학습한 것과 mixup을 이용해서 학습한 결과의 decision boundary차이를 보여주고 있습니다. ERM은 두 클래스간의 decision boundary가 매우 뚜렸하여 정확하게 분리됩니다. 하지만 mixup은 두 클래스 간의 decision boundary가 ERM에 비해서 부드럽습니다. 이는 실제로 mixup이 ERM에 비해서 과적합이 덜 발생한다는 것으로 이해할 수 있으며 mixup이 regularization의 역할도 한다고 볼 수 있습니다.