가장 좋은 data augmentation이 있을까?(random 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처럼 늘어나는 효과를 볼 수 있다
'딥러닝 > Computer Vision' 카테고리의 다른 글
변형된 모델 학습방법 - semi-supervised training과 self-training (0) | 2022.03.08 |
---|---|
semantic segmentation task와 Fully convolutional network, deconvolution 간단하게 알아보기 (0) | 2022.02.20 |
컴퓨터비전에서 사용하는 기본적인 data augmentation 1 (0) | 2022.02.12 |
ResNet의 핵심 아이디어인 skip connection과 Residual learning (0) | 2022.02.10 |
1*1 convolution은 왜 중요한가? (0) | 2022.02.08 |