가장 좋은 data augmentation이 있을까?

1. random augmentation

 

 

하나의 train dataset에서도 여러가지 수많은 augmentation 방법을 사용할 수 있는데

 

사람의 욕심은 어떠한 augmentation 방법을 써야 가장 좋은 성능을 낼 수 있을지 찾고 싶음

 

그래서 가능한 후보 augmentation 기법 K개를 선정함

 

 

예를 들어 위와 같은 augmentation 기법만 사용하겠다고 후보군을 만들었고

 

그런데 여기서 연산량을 더욱 줄이고 싶어서 이 후보들 중 random하게 augmentation의 기법 N개를 선정하고

 

선정한 N개의 모든 augmentation 기법의 강도를 M이라고 하자.

 

이 때 개별 augmentation 기법 별로 서로 다른 강도를 적용하는 것이 아니고

 

모든 augmentation 기법 강도를 동일하게 M으로 정하는 것 같다

 

 

논문에서 보여준 변환 기법 policy의 예시

 

강도 M같은 것도 논문 제안자들은 여러가지 setting에서 실험해보았다

 

 

random한 강도를 사용했나 상수 강도를 사용했나 등등

 

무엇을 사용하든 정확도는 큰 차이 없다는 것이 재미있는 부분

 

아무튼 random으로 선정한 N개의 (augmentation 기법, 강도 M)의 쌍은 여러개 만들 수 있는데 각 sample 하나를 policy라고 부른다

 

각 policy를 data에 적용하여 학습해보면서 가장 성능이 좋은 policy를 사용하겠다는 것이 random augmentation이다.

 

 

이 방법을 사용하면 거의 대부분의 실험에서 높은 성능을 보인다

 

-------------------------------------------------------------------------------------------------------------------------

 

2. offline augmentation과 online augmentation

 

학습 전에 미리 데이터를 augmentation 시켜놓고 따로 저장한 뒤 전체 학습을 시키는 offline augmentation이 있고

 

학습 과정에서 배치마다 그 때 그 때 augmentation을 시켜서 학습을 시키는 online augmentation이 있다.

 

일반적으로 online augmentation이 효과적이라고 알려져있다. 생각해보면 당연할 것 같다

 

기본적으로 매 iteration마다 데이터가 random하게 변형되어 학습하니까 offline에서 보지 못한 데이터를 학습할 수 있다는 점

 

대규모 데이터의 경우 변형된 데이터를 사전에 저장하여 전체 학습을 시키는 offline 방식은 메모리에서도 불리함

 

epoch가 늘어날수록 절대적인 데이터 수는 offline처럼 늘어나는 효과를 볼 수 있다

TAGS.

Comments