안녕하세요. 오늘은 컴퓨터 비전 최고 학회 중 하나인 ICCV에 2019년에 억셉된 논문인 "CutMix : Regularization Strategy to Train Strong Classifier with Localizable Features"를 리뷰해보도록 하겠습니다.
서론
지난 포스팅의 CutOut과 같은 입력 영상에서 특정 영역을 지움으로써 정규화를 달성하는 방법을 Regional dropout strategy라고 합니다. 대표적으로 CutOut, DropOut, Regional DropOut 등과 같은 방법들이 있겠죠. 이러한 방법들은 모두 객체의 특정 영역에 너무 집중되지 않도록 하여 모델의 일반화 성능과 객체 지역화 능력을 향상시키는 장점을 가지고 있습니다. 하지만, 단점 역시 존재하죠.
위 그림은 입력 영상과 3개의 데이터 증강 예시를 보여주고 있습니다. CutOut을 보시면 특정 영역을 0으로 채워 삭제한 것을 볼 수 있습니다. 이러한 방법의 가장 큰 단점은 전체 픽셀 정보를 사용하지 않으므로 정보 손실이 발생하고 이는 학습에 효율적이지 않다는 점 입니다. CutMix는 이러한 점을 모티베이션으로 삼아서 정보 손실이 발생하지 않도록 특정 영역을 0으로 채우는 것이 아니라 다른 영역으로 대체하여 학습을 진행하게 됩니다. 위 그림에서는 강아지 사진에 고양이 사진이 부분적으로 추가되는 것을 볼 수 있다. 어떻게 보면 MixUp과도 어느정도 유사한 점을 보이지만 가장 큰 차이점은 MixUp은 모든 영역에 대한 픽셀의 Linear Combination을 적용하지만 CutMix은 특정 영역을 대체할 뿐이죠. 실제로 다양한 실험 결과에서 CutMix는 가장 높은 결과를 보여주고 있습니다.
CutMix
이번에는 CutMix에 대한 자세한 알고리즘에 대해서 보도록 하겠습니다. 기본적으로 CutOut과 유사하게 특정 영역을 선택한다는 점은 동일하지만!! 가장 중요한 점은 두 개의 서로 다른 정답 레이블을 가진 영상이 섞였을 때 어떻게 새로운 정답 레이블을 만들것인지 또는 어떻게 손실함수를 계산할 지 생각해봐야합니다.
기본적으로 CutMix의 수학적 표현은 다음과 같습니다.
$$\begin{align*} &\tilde{x} = \mathbf{M} \odot x_{A} + (\mathbf{1} - \mathbf{M}) \odot x_{B} \\ &\tilde{y} = \lambda y_{A} + (1 - \lambda) y_{B} \end{align*}$$
여기서, $(x_{A}, y_{A})$와 $(x_{B}, y_{B})$는 샘플링된 두 영상과 정답 레이블을 의미합니다. 그리고 $\mathbf{M} \in \{0, 1\}^{W \times H}$는 이진 마스크를 의미합니다. 또한, $\mathbf{1}$은 $\mathbf{M}$과 동일한 크기로 1로 채워진 이진 마스크를 의미합니다.
자, 이제 남은 기호는 $\lambda$입니다. 다시 MixUp으로 돌아가서 생각해보면 두 영상 사이의 Mixing ratio인 $\lambda$를 결정하기 위해 MixUp에서는 Beta 분포를 이용하였습니다. 그렇다면 CutMix 역시 다른 분포를 굳이 사용할 이유없이 Beta 분포를 이용해서 $\lambda$를 샘플링하여 사용하면 되겠네요. 따라서, CutMix에서 $\lambda \sim Beta (\alpha, \alpha)$가 되어 샘플링됩니다. 여기서, $\alpha$는 하이퍼파라미터로 본 논문에서는 $\alpha = 1$로 고정하여 전체 실험을 진행하였음을 밝혔습니다. 따라서, $\lambda \sim Beta(1, 1) = Uniform(0, 1)$이 됩니다.
하지만, 아직 한 가지 문제점이 남았습니다. $\lambda$는 두 영상을 얼마나 섞는 지에 대한 값으로 이 값이 두 영상을 생성하는 수학식에는 포함되어 있지 않습니다. 이제는 $\lambda$를 이용해서 $\mathbf{M}$에 크기를 모델링하는 방법에 대해서 설명해드리도록 하겠습니다.
기본적으로 바운딩 박스를 정의할 때는 좌측하단 좌표값과 가로세로 길이를 이용하기 때문에 4개의 정보가 필요합니다. 이를 $\mathbf{B} = (r_{x}, r_{y}, r_{w}, r_{h})$라고 정의하도록 하겠습니다. 즉, $x_{A}$에서 샘플링된 바운딩 박스 $\mathbf{B}$에 해당하는 작은 영역이 $x_{B}$의 바운딩 박스 $\mathbf{B}$에 추가되는 것이죠. 이를 위해, 먼저 좌측하단 좌표값인 $(r_{x}, r_{y})$를 다음과 같이 샘플링합니다.
$$\begin{align*} &r_{x} \sim Uniform (0, W) \\ &r_{y} \sim Uniform (0, H) \end{align*}$$
즉, 쉽게 생각하면 영상의 정말 임의의 영역을 샘플링하는 것입니다. 애초에 Mixing ratio인 $\lambda$가 영향을 주어야하는 것은 얼마나 섞는 지이지 어디를 섞는 지가 아니기 때문이죠. 따라서, 저희는 바운딩 박스의 크기인 $(r_{w}, r_{h})$에 $\lambda$에 대한 정보를 다음과 같이 넣어주면 됩니다.
$$\begin{align*} &r_{w} = W \sqrt{1 - \lambda} \\ &r_{h} = H \sqrt{1 - \lambda} \end{align*}$$
그러면 바운딩 박스와 영상 사이의 비율은 $\frac{r_{w}r_{h}}{HW} = 1 - \lambda$가 됩니다. 즉, $x_{A}$ 중에서 $1 - \lambda$ 만큼 해당하는 영역이 $x_{B}$에 추가되는 것이라고 해석하면 편할 것 같습니다.
실험
본 논문에서는 CutMix의 효과를 검증하기 위해 3가지 태스크인 영상 분류 (Image Classification), 약지도 객체 탐지 (Weakly-Supervised Object Detection) 그리고 영상 캡셔닝 (Image Captioning)에 대한 실험을 진행하였습니다.
ImageNet-1K은 약 1.2M개의 영상을 가진 중형 데이터셋으로 각 영상에 1,000개의 클래스가 배정된 영상 분류 및 객체 탐지를 위해 사용되는 유명한 데이터셋입니다. 본 논문에서는 공정한 비교를 위해, 일반적으로 사용되는 Resizing, Cropping, Flipping의 전통적인 데이터 증강 기법을 적용하였습니다. 그리고 유명한 정규화 및 데이터 증강 기법인 Stochastic Depth, CutOut, MixUp, Manifold MixUp과 CutMix 사이의 성능을 비교하였습니다. 총 300 에폭으로 실험을 진행하였으며 배치 사이즈는 256입니다. 이때 사용한 분류기는 ResNet-50, ResNet-101, ResNext-101 입니다.
실험적으로 CutMix는 ResNet-50에서 CutOut과 MixUp과 비교했을 때 약 1.53%, 1.18% 향상된 결과를 얻게 됩니다.
ResNet-101에서는 Baseline과 비교했을 때 약 1.60%의 성능 향상, 그리고 ResNext-101에서는 1.71%의 성능을 달성하였습니다. 다만, ResNext-101에서는 다른 데이터 증강을 실험하지 않았기 때문에 다른 네트워크에서도 잘된다는 보장은 할 수 없지만, ResNet 계열에서 더 깊은 네트워크인 ResNet-101에서도 충분히 잘 동작하는 것을 관찰할 수 있습니다.
이번에는 CIFAR 데이터셋에 적용하여 실험을 진행하였습니다. 배치 사이즈는 64, 에폭은 300으로 진행하였습니다. 이 과정에서 PyramidNet-200 모델을 사용하였습니다.
ImageNet-1K 보다는 데이터셋이 작기 때문에 더욱 많은 비교를 한 것을 관찰할 수 있습니다. 결과적으로 ImageNet-1K와 마찬가지로 가장 좋은 결과를 얻을 수 있을뿐만 아니라 다른 데이터 증강 기법 및 정규화 기법과도 함께 이용할 수 있다는 것에 큰 의의가 있습니다.
뿐만 아니라 다른 태스크에서도 좋은 성능이 나오는 것을 관찰할 수 있죠.