늦깎이 공대생의 인공지능 연구실

1000배 더 빠른 데이터 증강(Population Based Augmentation) 본문

BAIR

1000배 더 빠른 데이터 증강(Population Based Augmentation)

Justin T. 2024. 1. 7. 13:27

이미지에 적용된 Population Based Augmentation의 효과는 학습에 적용하는 비율에 따라 다름.

 

 

이 블로그 게시물에서는 신경망 학습을 위한 데이터 증강에 대한 최적의 방법으로 데이터를 빠르고 효율적으로 학습하는 알고리즘인 Population Based Augmentation(PBA)을 소개합니다. PBA는 CIFAR 및 SVHN의 이전 최고 결과와 일치하지만 컴퓨팅 사용량은 1,000배나 적기 때문에 연구원 및 현업 사용자가 단일 워크스테이션 GPU를 사용하여 새로운 증강 정책을 효과적으로 학습할 수 있습니다. PBA는 이미지 인식 작업에서 딥 러닝 성능을 개선하는 데 광범위하게 사용할 수 있습니다.

여기에서는 PBA 결과를 살펴본 후, Tune 프레임워크의 새로운 데이터에서 PBA를 직접 쉽게 실행하는 방법을 보여드리겠습니다.

 

데이터 증강에 관심을 가져야 하는 이유는?

 딥러닝 모델의 최근 발전은 최근 몇 년 동안 수집된 데이터의 규모와 다양성 덕분입니다. 데이터 증강은 실질적으로 새로운 데이터를 수집하지 않고도 실무자들이 모델 학습에 사용할 수 있는 데이터의 다양성을 크게 늘릴 수 있는 전략입니다. 자르기(Cropping), 채우기(Padding), 수평 뒤집기(Horizontal Flip)와 같은 데이터 증강 기법은 일반적으로 대규모 신경망을 학습시키는 데 사용됩니다. 하지만 신경망 학습에 사용되는 대부분의 접근 방식은 기본적인 유형의 증강만 사용합니다. 신경망 아키텍처는 심도 있게 연구되어 왔지만, 데이터 보강 기법을 통해 데이터 불변성을 포착하는 강력한 데이터 보강 유형과 데이터 보강 정책을 발견하는 데는 상대적으로 소홀했습니다.

숫자 "3"의 원본 형태와 일반적인 증강 기능이 적용된 이미지.

 

 Google은 새로운 자동 데이터 증강 기술인 AutoAugment을 통해 CIFAR-10과 같은 데이터셋의 정확도를 크게 향상시킬 수 있었습니다. AutoAugment는 수평 뒤집기나 채우기 및 자르기와 같은 고정된 변환 방식을 적용한 이전 작업의 잠재적 성능을 보여주었습니다. AutoAugment는 16개의 기하학 및 색상 기반 변환을 도입하고, 특정 크기 수준에서 최대 2개의 변환을 선택하여 각 데이터 배치에 적용하는 증강 정책을 형식화합니다. 이러한 고성능 증강 정책은 강화 학습을 사용하여 데이터에 대해 직접 모델을 학습함으로써 이루어집니다.

어떤 문제가 있을까요?

 AutoAugment 강화 학습 기반 정책을 위한 충분한 샘플을 생성하기 위해 15,000개의 모델을 학습시켜야 하는 매우 고비용의 알고리즘입니다. 샘플 간에 계산이 공유되지 않으며, ImageNet 증강 정책을 학습하는 데는 NVIDIA Tesla P100 GPU 15,000시간, CIFAR-10 정책을 학습하는 데는 5, 000시간이 소요됩니다. 예를 들어, Google Cloud On-demand P100 GPU를 사용하는 경우 CIFAR 정책을 학습하는 데는 약 7,500달러, ImageNet 정책을 학습하는 데는 37,500달러가 소요됩니다! 따라서 새로운 데이터 세트에 대해 학습할 때 더 일반적인 사용 사례는 기존에 공개된 정책을 사용하는 것이며, 저자들은 이 방법이 비교적 잘 작동한다고 설명합니다.

Population Based Augmentation(PBA)

 데이터 증강 정책 검색의 한 가지 방법인 Population Based Augmentation(PBA)은 다양한 신경망 모델에서 비슷한 수준의 테스트 정확도를 달성하면서도 3배나 적은 컴퓨팅을 사용합니다. 소규모 모델의 여러 복사본을 CIFAR-10 데이터로 학습시켜 증강 정책을 배우는데, 이 작업은 NVIDIA Titan XP GPU를 사용하여 5시간이 소요됩니다. 이 정책은 더 큰 모델 아키텍처에 대해 처음부터 학습할 때나 CIFAR-100 데이터로 학습할 때 강력한 성능을 발휘합니다.

 대규모 CIFAR-10 신경망을 훈련하는 데 며칠이 걸리는 것과 비교하면, PBA를 미리 실행하는 데 드는 비용은 거의 들지 않으며 결과도 크게 향상됩니다. 예를 들어, CIFAR-10에서 PyramidNet 모델을 학습하는 데는 NVIDIA V100 GPU에서 7일 이상이 걸리므로 PBA 정책을 학습하면 사전 계산 학습 시간 오버헤드가 2%만 추가됩니다. 이 오버헤드는 SVHN의 경우 1% 미만으로 훨씬 더 낮아집니다.

WideResNet, Shake-Shake, PyramidNet+ShakeDrop 모델에서 PBA, AutoAugment, 수평 뒤집기, 채우기, 자르기만 사용하는 기준점 사이에서 발생하는 CIFAR-10 테스트셋 오차. PBA는 기준점보다 훨씬 우수하며 AutoAugment과 동등한 수준임.

 

 PBA는 Population Based Training 알고리즘을 활용하여 현재 학습 중인 epoch에 따라 적응할 수 있는 증강 정책 스케줄을 생성합니다. 이는 현재 epoch 수에 관계없이 동일한 변환을 적용하는 고정된 증강 정책과는 대조적입니다.

 따라서 일반 워크스테이션 사용자도 검색 알고리즘과 증강 작업을 쉽게 실험할 수 있습니다. 흥미로운 사용 사례 중 하나는 특정 데이터셋이나 이미지 양식을 대상으로 하는 새로운 증강 연산을 도입하고 고성능의 맞춤형 증강 일정을 신속하게 생성할 수 있는 것입니다. 우리는 증강 연구를 통해 학습된 하이퍼파라미터와 스케줄 순서가 좋은 결과를 위해 중요하다는 것을 발견했습니다.

증강 스케줄은 어떻게 결정되나요?

우리는 16개의 작은 WideResNet 모델로 구성된 모집단에서 Population Based Training을 사용합니다. 모집단의 각 작업자는 서로 다른 후보 하이퍼파라미터 스케줄을 학습합니다. 가장 성능이 좋은 스케줄을 처음부터 더 큰 모델을 훈련하기 위해 전송하고, 이를 통해 테스트 오류 측정 지표를 도출합니다.

신경망의 모집단을 훈련하여 하이퍼파라미터 스케줄을 발견하는 Population Based Training에 대한 개요입니다. 무작위 검색(explore)과 성능이 우수한 작업자로부터 모델 가중치 복사(exploit)를 결합합니다.

 

 모집단 모델은 모든 증강 하이퍼파라미터가 0으로 설정된 상태(증강이 적용되지 않음)에서 시작하여 관심 있는 대상 데이터셋에 대해 학습됩니다. 'Exploit-Explore' 프로세스는 빈번한 간격으로 성능이 우수한 작업자의 모델 가중치를 성능이 낮은 작업자에게 복사하여 '활용(Exploit)'한 다음, 해당 작업자의 하이퍼파라미터를 변형하여 '탐색(Explore)'합니다. 이 프로세스를 통해 학습자 간에 컴퓨팅을 많이 공유하고 학습 영역에 따라 서로 다른 증강 하이퍼파라미터를 타겟팅할 수 있습니다. 따라서 PBA는 고성능을 달성하기 위해 수천 개의 모델을 학습시켜 융합하는 데 드는 비용을 피할 수 있습니다.

 

 

참고자료:

https://github.com/arcelien/pba

 

GitHub - arcelien/pba: Efficient Learning of Augmentation Policy Schedules

Efficient Learning of Augmentation Policy Schedules - GitHub - arcelien/pba: Efficient Learning of Augmentation Policy Schedules

github.com

 

http://dmqm.korea.ac.kr/uploads/seminar/DMQA_Open_Seminar_20220708_%ED%99%A9%EC%84%B1%EC%A7%84.pdf

 

반응형