(2019)RandAugment: Practical automated data augmentation with a reduced search space

Gyuha Park·2021년 8월 17일
0

Paper Review

목록 보기
16/34
post-custom-banner

0. Abstract

최근에 automated augmentation은 classification과 object detection에서 state-of-the-art의 성능을 보여주고 있다.

하지만 large-scale 모델에 적용 시 search space의 복잡도와 연산량이 늘어난다는 문제가 있다. 게다가 model size와 dataset size에 일반화를 하기 힘들다.

본 논문에서는 두 문제점을 제거하였다. RandAugment는 search space를 엄청나게 줄이고 추가적인 task를 없앴다.

RandAugment는 dataset, work와 상관없이 널리 사용될 수 있는 전략이다. 게다가 기존에 나온 automated augmentation의 성능에 근접하는 결과를 CIFAR-10/100, SVHN, ImageNet에서 보여줬다.

1. Introduction

Data augmentation은 딥러닝 모델의 성닝을 올리는데 적합하지만 전문성과 domain에 대한 사전지식이 필요하다.

이를 해결하기 위해 NAS로 적절한 parmeter를 찾는 방법이 제안 되었으나 하지만 아직도 많은 연산량과 복잡도를 갖고 있다는 것이 사실이다.

본 논문에서는 model size와 dataset size에 상관 없는 전략을 제시했다. Separate search가 필요없으며 RandAugment라고 부른다.

확 줄어든 parameter space는 매우 간단한 grid search만으로 충분한 data augmentation policy를 찾아내며 최고의 성능을 보여준다.

Data augmentation은 deep vision model을 학습하는데 중요한 역할을 해왔다.

MNIST는 elastic distortion, orientation을 적용했을 때 좋은 성능을 보여줬다.

CIFAR-10, ImageNet에서는 무작위로 noise, patch를 제거하고 추가하고, Mixup을 사용함으로 좋은 성능을 보여줬다.

Smart Augmentation은 동일한 class에서 두개의 서로다른 sample을 병합하는 방법이다.

AutoAugment는 reinforcement learning을 사용하여 probability of application과 magnitude를 선택했다. 최근에는 향상된 optimization 알고리즘으로 효율적으로 AutoAugment policy를 찾는 연구가 나왔다. Policy를 탐색하는 시간은 많이 줄었지만 여전히 별도의 search phased가 존재해 활용도가 낮다.

이러한 이유로 인해 본 논문에서는 search phase를 제거한 방법을 제안하였다.

3. Methods

class RandAugment:
    def __init__(self, n, m):
        self.n = n
        self.m = m      # [0, 10]
        self.augment_list = augment_list()

    def __call__(self, img):
        ops = random.choices(self.augment_list, k=self.n)
        for op, minval, maxval in ops:
            val = (float(self.m) / 30) * float(maxval - minval) + minval
            img = op(img, val)

        return img

Parameter space를 줄이기 위해 항상 K개의 augmenter 중에서 N를 고르도록 했다. AutoAugment는 search space가 augmenter의 수에 따라 지수적으로 증가하기 때문에 14가지만으로 제한을 두었다. 그리고 augmenter의 magnitude는 0 ~ 30의 scale로 통일해서 이 범위 안에서 선택하도록 했다. 즉, 14개중 몇 가지를 고를지 선택하는 N과 0 ~ 30 사이의 magnitude M 두 가지의 parameter를 갖는다.

이는 일반적인 data augmentation의 가짓 수보다 적은 편이며, 실제 RandAugment 적용 시에는 더욱 많은 augmenter를 적용할 것을 추천한다.

4. Results

Basline과 기존의 Data Augmentation 알고리즘들과 비교했을 때 경쟁력 있는 성능을 보여주고 있다.

이는 기존 AutoAugment가 sub-optimal solution임을 나타낸다. AutoAugment는 부분 dataset에서 optimal solution을 찾아내고, 이를 전체 dataset에 대한 optimal solution이라고 주장한다.

오직 두 개의 parameter(N,M)만이 존재하기 때문에 grid search 알고리즘이면 충분하다.

post-custom-banner

0개의 댓글