본문 바로가기
Paper Review

[논문리뷰] Deep Auto Augment (ICLR 2022)

by 3neutronstar 2022. 3. 4.

이번에는 ICLR 2022에 게재된 Deep Auto Augment를 리뷰하려고 합니다. 자세한 내용은 논문을 참조해주세요.

 

Introduction

 

최근 automated data augmentation는 state-of-the-art 한 성능을 보이고 있다. 하지만, design space와 augmentation strategy는 여전히 사람의 prior knowledge가 필요로 했고, 이에 본 논문은 fully automated approach를 제안한다.

 

기존에는 한 번에 여러개의 augmentation layer를 결정해야 했는데, 본 방법은 학습이 진행되면서 augmentation을 순차적으로 convergence에 이를때까지 더한다. 아래 그림처럼 기존 method는 hand picked transformation을 진행하지만, 본 논문은 해당 부분을 자동화 하고 빠르게 하기 위한 method를 취한다.

 

Contribution

- DeepAA, 완전 자동화된 data augmentation policy search method를 제안하며 이는 multi-layer augmentation policy를 scratch(처음부터)부터 찾아 나간다.

- 이때, multi-layer data augmentation search를 사용하면 image가 validation set과 많이 다를 수 있는데 regularized gradient matching problem을 풀어냄으로써 original validation set과 transformed image간의 cosine similarity를 증가시키는 방향 (with low variance)를 통해서 좋은 policy search를 가능하게 했다.

- Multi-layer가 갖는 large search space(exponential하게 증가)를 해결하기 위한 issue를 잘 다루어냈다.

 

Related Work

앞으로 논문 읽을 때 마다 조금씩 게시글로 추가하겠습니다. Automated augmentation method들 ex) AA, Fast AA, Rand AA, AdvAA, UniformAA, TrivialAA 등을 본 논문에서 다뤘습니다.

 

Proposed Method (DeepAA)

- Motivation

   1. Data augmentation method의 목적은 기본적으로 test distribution에 missing data point를 추가해서 학습할 수 있도록 하는 것입니다. 

   2. Augmentation policy search를 deeper augmentation layer일수록 search space가 기하급수적으로 커진다. (Exploration의 comuptational cost가 큼)

 

위의 1., 2. 문제를 해결하기 위해서 다음과 같은 방법을 제시했습니다. (motivation의 1., 2. 와 동일한 내용)

1. policy search를 regularized gradient matching problem으로 정의하고, multiple-transformed training batch와 original validation bath와의 gradient간의 cosine similarity가 일치하는 최적화 문제로 정의합니다. (Lower variance를 통해 우수성을 기대하게 함)

2. Subpolicy를 찾는 것이 기존 method라면 이러한 부분은 computation resource가 많이 필요하므로 모든 augmentation method에 대해서 stacking을 통해서 deeper augmentation layer를 만들도록 한다. 이때, stack하면서 이전 augmentation layer를 통해 변환된 data의 distribution을 따라서 최적화가 되도록 하는 것을 목표로 한다. 그러면 layer갯수의 목표가 k이고, augmentation종류가 T개일 때, T^k을 하나씩 모두 해보아야 하지만, 적절한 T를 기반으로 뒤의 값을 얻고 진행하면, 넓은 space에서 좋은 것을 찾는 것보다 빠르게 찾아낼 수 있다고 합니다.

 

- Search space

$\mathbb{O}$가 augmentation operation $\mathbb{M}$가 augmentation operation magnitude라고할 때, Search space는 $|\mathbb{T}|=|\mathbb{M}|\cdot|\mathbb{O}|$ 가 된다. 그렇다면 augmentation policy P가 depth K를 가진다고 하고 나면 P={p_1,...,p_k}로 구성된다 이때 마지막 layer K에 대한 policy는 $P_k:=p_{\theta_k}(n|\{P_1,P_2,...,P_{k-1}\})$형식의 conditional distribution을 갖게 된다. n은 indices of transformations in $\mathbb{T}.$

 

- Augmentation policy search via regularized gradient matching

Distribution $p_\theta$에 따라서 single data point를 augmentation을 진행한 후 얻은 average gradient를 $g(x,\theta)$ 라고 하면, original single data point의 gradient v와 cosine similarity를 비교하여 distribution parameter $\theta$를 얻는다. Distribution parameter를 각 augmentation에 대해서 계산한 후, 가장 큰 cosine similarity를 갖는 distribution parameter를 가지고 gradient ascent를 진행한다.

 

정리하면 1개의 layer에 대해서

$$g(x,\theta)=\sum^{|\mathbb{T}|}_{n=1}{p_\theta(n)\nabla_{w}L(t_n(x);w)}=G(x)\cdot p_\theta$$

이러한 식으로 g(x,\theta)를 구성한다. ($p_\theta$는 augmentation method's categorical distribution, G(x)는 loss에 대한 jacobian)

즉 cosine similarity에 대한 augmentation의 gradient는 각 transformation에 대한 reward로서 해석될 수 있게 된다.

 

Multiple layer에 대해서는 policy research를 진행하게 되면, average gradient 방식이 효율적이지 않게 된다. 말그대로 T^K의 possible policy가 나와서 research를 진행하게 된다.

이러한 부분을 해결하기 위해서 previous layer에 대해서 transform된 data distribution을 기반으로 augementation하는 것을 추가하는 방식을 제안한다. 그러면 layer k에 대해서 augmentation policy는 k-1 layer의 policy average gradient를 사용하기만 하면 layer k에 대한 average gradient를 얻을 수 있게 된다. 이러한 것을 각각 얻기는 어려우므로 Monte carlo method로 estimate해서 g(x;\theta)를 사용한다. 이렇게 얻어진 것으로 각 layer의 reward를 계산할 수 있다.

 

이렇게 진행이 되면 좋지만, policy가 overfitting에 빠질 수 있다고 한다. 이러한 부분을 막기 위해서 high variance를 갖는 방향으로 optimize하는 것을 막기 위해 regularization을 사용한다. 이때, term은 average reward에서 reward의 standard deviation을 penalize한다.

$$ r^k(x)=(G^k(x))^T({v \over ||g_k(x,;\theta_k)||} - {v^Tg_k(x;\theta_k \over ||g_k(x;\theta_k)^2}\cdot{g_k(x;\theta_k)\over ||g_k(x;\theta_k)||}) $$

이때 expectation은 16개의 sampled image를 활용한다.

 

Experiment and analysis

Cifar에서 성능은 DeepAA가 기존 method와 비교할 때, comparable함.

SOTA는 아니지만 대체로 많은 method보다 빠르고 성능이 좋은 경향을 보인다. Trivial Augmentation의 complexity가 낮은걸 생각하면 고민이 필요한 부분이긴 하다.

Layer는 5개~6개가 optimal한데, 아래 사진을 보면 5개 layer에서 좋은 성능을 보인다.

이를 좀더 자세하게 보니, layer 6는 identity를 선택하는 것을 보아 5개가 최적임을 알 수 있습니다.

 

Conclusion

Augmentation에 대한 prior knowledge없이 multiple layer기반 적절한 policy를 제시하는 augmentation 첫번째 방법이며, fully automated 하다는 점에서 좋은 부분이 있는 것 같다. 아마 trivial augmentation method는 multiple layer가 아니므로 직접 비교가 불가능하다는 점이 있지만, 좋은 성능을 보이는 automated method중에서는 속도가 빨라 의미를 갖는다고 생각이 든다.

댓글