이번에 알아볼 내용은 AutoAugment이다.
일반적으로 우리가 알고 있는 내용은 Data Augmentation인데, 어떻게 하면 특정 데이터에 잘 맞는 Augmentation 기법을 찾아 적용할 수 있을지를 다룬 Autoaugment 기술에 대해 알아보도록 하자.
1. Data Augmentation
Data Augmentation이란 보유하고 있는 데이터를 여러 방법으로 변형하여 더 많은 데이터를 만들어 내는 방법으로 학습 데이터가 부족한 경우 이를 보완하기 위해 주로 사용한다. 이미지 데이터의 경우 기본적으로 사용할 수 있는 Rotate, Flip 등 외에도 아래 기법들이 존재한다.
- Cutout
- Mixup
- Cutmix
- Augmix
Text 데이터의 경우에는 Synonym Replacement, Random Insertion, Random Swap, Random Deletion을, Audio 데이터의 경우 Noise Injection, Shifting, Changing the speed of the tape 등의 방법이 있다.
최근에는 생성 모델을 활용하여 Synthetic Data를 만드는 방법을 Data Augmentation의 일종으로 사용할 수 있는데, 이는 Data Privacy나 Scarcity 문제를 해결하는데 도움을 준다. 물론 Generation Process가 좋지 않으면 Bias가 생겨 Realism이 떨어진다.
2. AutoDA
어떻게하면 현재 데이터에 가장 잘 맞는 Data Augmentation 기법을 자동으로 찾을 수 있을까?
이 질문에 대답하는 여러 기법이 존재한다.
(1) AutoAugment
https://arxiv.org/pdf/1805.09501
NAS와 비슷하게 최적의 Augmentation Policy를 찾으려는 방법이다. 구성을 크게 Search Space, Search Algorithm, Evaluation Function으로 나눌 수 있으며 자세한 설명은 아래와 같다.
- Search Space: Augmentation Hyperparameter의 조합 후보들이 존재하는 영역
- Search Algorithm: 적절한 Augmentation Policy를 검색
- Evaluation Function: Function을 적용하여 Reward를 계산
기본적인 구조는 RNN Controller + PPO(Proximal Policy Optimization)으로 이루어지고 여기서 PPO는 Policy를 업데이트할 때 큰 변화를 방지하는 제약을 의미한다.
(2) PBA(Population-based Augmentation)
https://arxiv.org/pdf/1905.05393
AutoAugment처럼 모든 Augmentation 조합을 평가하는 것이 아니라 일정한 간격을 두고 평가하는 방법으로 Policy Schedule을 사용하여 학습단계마다 Policy를 동적으로 변화시킨다. 성능이 좋은 Policy는 복제, Crossover, Mutation하여 새로운 Policy를 업데이트한다.
(3) FastAA
https://arxiv.org/pdf/1905.00397v2
데이터 분포를 학습하고 베이지안 최적화를 사용하는 방법. Distribution Distance를 최소화하는 Density Matching과 Bayesian Optimization을 같이 활용한다.
(4) RandAugment
https://arxiv.org/pdf/1909.13719
Data Augmentation을 진행하는데 있어 2개의 파라미터를 사용하여 학습한다. 증강의 종류와 강도를 무작위로 선택한다.
- N: 적용할 Augmentation 개수
- M: 증강 강도의 크기(Magnitude)
(5) OHL-AA(Online Hyperparameter Learning)
https://arxiv.org/pdf/1905.07373
Online-Search, Single pass 기법을 활용하여 Policy Hyperparameter와 Network Weight를 한번에 학습한다. 학습 도중 DA Strategy의 Parameter를 동적으로 최적화한다.
(6) Test-time Augmentation
일반적인 DA처럼 학습을 시작하기 전에 Augmentation을 진행하는 것이 아니라 테스트를 진행할 때 Augmenation을 하는 기법이다. Test Image에 효율적으로 알맞는 Transformation을 선택하는 것이 목적으로 Auxiliary module을 사용하여 Transformation을 할 때마다 가장 Relative Loss가 작은 Transformation을 선택한다.
'AI & CS 지식 > 메타러닝' 카테고리의 다른 글
[메타러닝] 4. Bayesian Meta-Learning (0) | 2024.12.16 |
---|---|
[메타러닝] 3. Meta Reinforcement Learning (1) | 2024.12.16 |
[메타러닝] 2. Meta-Learning Methods (2) | 2024.12.13 |
댓글