Fast AutoAugment
2.이미지 어그먼테이션 정책 자동 탐색 알고리즘을 소개합니다
2020/02/05 by 이수경, 김일두

지난 블로그 1편에서는 데이터 어그먼테이션(Augmentation) 기법과 어그먼테이션 정책 자동 탐색 알고리즘인 AutoAugment(이하 AA)에 대해 살펴봤습니다.

AA는 주어진 딥러닝 모델과 데이터셋에 적합한 데이터 증강 기법을 적용하는 것만으로 더 높은 성능을 낼 수 있음을 보여줬습니다. 그러나 상대적으로 규모가 작은 모델과 데이터셋에서조차 대단히 많은 컴퓨팅 자원을 소모할 뿐만 아니라 탐색에 많은 시간을 소비하는 등 계산 복잡도가 높다는 한계를 지니고 있습니다.

[ 그림 1 ] AA의 어그먼테이션 정책 탐색 방식을 도식화했다.

이에 카카오브레인 AutoLearn 연구팀은 더 효율적인 탐색 전략을 펼치는 어그먼테이션 정책 탐색 알고리즘인 ‘Fast AutoAugment(이하 FAA)’를 제안하게 됐습니다. 개선 방향은 다음과 같습니다.

첫번째, 누구나 쉽게 쓸 수 있어야 합니다. AA는 어그먼테이션 정책을 탐색하는 데 강화학습(reinforcement learning)[1] 방식을 도입했습니다. 이말인즉슨, 이미지 분류를 위한 딥러닝 모델뿐만 아니라, 어그먼테이션 정책 탐색을 위한 강화학습 모델도 미세조정(fine tuning)[2]해야 한다는 의미입니다. 개발자마다 미세조정 방식이 다른 만큼, 이중으로 모델을 미세조정함으로 인해 모델의 최종 성능에 큰 편차가 발생할 가능성은 커질 수밖에 없습니다. 아울러 구글(Google)이 AA 코드를 외부에 공개하지 않은 탓에 이를 새로 구현해야 하는 번거로움도 있습니다. 이에 AutoLearn 연구팀은 각자의 개발 환경에 따라 어그먼테이션 정책 탐색 알고리즘을 매우 손쉽게 적용할 방법을 찾는 데 집중했습니다.

두번째, 연산에 드는 비용을 획기적으로 줄일 수 있어야 합니다. 엔비디아 P100 제품을 활용한 AA는 이미지넷(ImageNet)[3]에 적합한 어그먼테이션 기법을 찾는데 최대 15,000 GPU 시간을 요구합니다. 이는 구글 클라우드(Google Cloud) 요금표를 기준으로 대략 3,000만원 가량의 비용 규모에 해당합니다. 만약 해당 정책으로 성능이 획기적으로 향상되지 않는다면 정책 재탐색 비용이 수 배로 늘어날 수 있습니다. 데이터 어그먼테이션 기법을 찾는 데만 이 정도 규모의 연산 자원을 감당할 수 있는 기업 또는 연구실은 거의 없습니다. 따라서 데이터 증강 정책 탐색 알고리즘의 훈련 비용을 합리적인 수준으로 낮출 필요가 있습니다.

세번째, 병렬성을 고도화해 알고리즘 계산 속도를 획기적으로 높일 수 있어야 합니다. 같은 연산량을 요구하는 알고리즘이더라도 병렬화가 가능하다면 연산 시간을 획기적으로 줄일 수 있습니다. 그런데 100개의 GPU를 활용해 이미지넷에 적합한 어그먼테이션 기법을 찾고자 AA를 훈련하는 데만 150시간(6.25일)이 걸립니다. 하지만 최대 8개의 GPU를 동시에 사용하는 일반 컴퓨팅 환경을 고려해본다면, 실제로는 1,875시간(78.125일)이 걸린다는 계산이 나옵니다. AutoLearn 연구팀은 어그먼테이션 정책 탐색 시간을 수 시간으로 줄일 수 있다면 상용화 가능성을 높일 수 있을 거라 판단했습니다.

카카오브레인 AutoLearn 연구팀이 고안한 FAA는 머신러닝 국제학회인 신경정보처리시스템학회(NeurIPS) 2019에 게재 승인됐습니다. 이번 글에서는 AutoLearn 연구팀이 문제에 접근한 방식과 FAA의 성능에 대해 소개해보고자 합니다.


Fast AutoAugment의 핵심은 ‘훈련의 최소화’

일반적으로 딥러닝 모델은 훈련 데이터의 양이 적고 단순할수록 해당 데이터셋에서만 나타나는 패턴이나 노이즈까지도 학습해버립니다. 이렇게 모델이 훈련 데이터를 너무나 완벽하게 추론하게 되면 새로운 데이터에는 제대로 반응하지 못하는 과적합(overfitting)이 더 쉽게 발생하게 됩니다. 따라서 모델의 일반화 성능을 높이기 위해서는 충분한 데이터를 확보하는 게 중요하다고 볼 수 있겠습니다.

하지만 현실적으로는 딥러닝 모델의 일반화 성능을 극대화할 수 있을 정도로 방대하면서도 다양한 데이터를 획득하기가 쉽지가 않습니다. 이에 블로그 1편에서 기존 데이터에 변형을 가하는 다양한 어그먼테이션 기법이 활발하게 활용된다고 설명한 바 있습니다.

문제는 훈련 단계에서 데이터에 변형을 가하면 모델 훈련을 원점부터 다시 시작해야 한다는 점입니다. 훈련 데이터셋 A와 어그먼테이션을 통해 확보한 새로운 데이터셋 A’가 있다고 가정해 봅시다. 직관적으로 보자면 이미 A로 훈련을 마친 모델을 A’로 재훈련하면 되지 않겠느냐고 볼 수 있습니다. 하지만 이 모델은 A를 통해 이미 오차를 최소화하는 가중치 조합에 어느 정도 수렴한 상태로, A’를 통한 훈련에서는 별 성능 개선이 없습니다. 이런 이유로 A로 훈련을 마친 모델을 A’로 재훈련한 케이스는 A와 A’를 합쳐서 처음부터 훈련한 모델보다는 더 낮은 성능을 보이게 됩니다. 특정 어그먼테이션 정책의 유효성을 검증하기 위해 기존 데이터에 증강 데이터를 합쳐서 학습을 처음부터 다시 시도하는 이유입니다.

그런데 AA는 어그먼테이션 정책의 유효성을 빠르게 실험해보고자 대상 모델보다 크기가 작은 모델(Wide- ResNet-40-2)을 사용합니다. 문제는 그 규모를 축소한 모델이더라도 훈련을 1만 5000번이나 반복한다면 정말 큰 비용이 발생할 수밖에 없습니다. 이런 이유로 AutoLearn 연구팀은 모델을 반복 훈련하지 않고도 적절한 어그먼테이션 정책을 추정할 수 있어야 한다고 판단했습니다.

이 판단에 영향을 미친 연구는 ‘테스트 단계에서의 어그먼테이션 적용(Test-Time-Augmentation, 이하 TTA)’입니다([그림 2]). TTA는 각기 서로 다른 어그먼테이션 기법을 적용한 테스트 데이터를 최종 모델(훈련 데이터와 검증 데이터로 학습을 마친 모델)에 입력하는 방식으로 성능을 끌어올리는 방법론을 뜻합니다. 마치 서로 다른 어그먼테이션 기법을 적용한 학습 모델을 앙상블(ensemble)[4]한 것과 비슷한 성능 향상 효과를 기대할 수 있습니다. 테스트 데이터를 모델에 여러 차례 입력하기 때문에 정답을 추론하는 시간은 좀 더 길 수는 있습니다. 하지만 최종 모델의 매개변수를 변경하지 않고도 추론 성능을 높일 수 있어서 시간과 비용을 획기적으로 줄이는데 큰 도움이 되죠.

[ 그림 2 ] TTA 방식을 도식화했다.

AutoLearn 연구팀은 테스트 데이터가 아닌 검증 데이터(validation data)[5]에 이 방식을 적용해보기로 했습니다. 과정은 다음과 같습니다([그림 3]). 우선, 훈련 데이터를 활용해 모델을 훈련합니다. 그런 뒤 일부 후보 어그먼테이션 정책을 활용해 증강한 검증 데이터를 훈련을 마친 모델에 입력합니다. 최종적으로는 가장 높은 추론 정확도를 달성한 어그먼테이션 정책을 선택합니다. 이렇게 찾은 어그먼테이션 정책을 적용해 훈련 데이터를 증강하고 나서, 초기화된 모델을 다시 훈련합니다([그림 4]). 그 결과, 실제로 최종 모델의 성능이 향상됨을 확인해볼 수 있습니다. 성능에 대한 이야기는 다음 단락에서 자세히 이어서 설명하겠습니다.

[ 그림 3 ] FAA의 어그먼테이션 정책 탐색 방식을 도식화했다.


[ 그림 4 ] FAA를 활용한 데이터 어그먼테이션 적용-훈련-검증-테스트 전 과정을 도식화했다.


성능 평가 척도와 성능 비교 결과

AutoLearn 연구팀은 컴퓨터 비전 분류 태스크의 대표 주자로 손꼽히는 데이터셋(CIFAR-10[6], CIFAR-100[7], SVHN[8], 이미지넷)과 주요 딥러닝 모델을 가지고 FAA의 알고리즘의 성능을 비교했습니다. 비교 대상으로는 Cutout[9], AutoAugment, PBA[10]를 선정했습니다.

성능 평가 척도에는 이미지 분류의 성능을 평가하는 top-1 정확도 또는 top-5 정확도를 사용했습니다. top-1 정확도는 가장 높은 확률로 추정된 범주가 실제 정답과 일치하는 정도를 나타내며, top-5 정확도는 가장 높은 확률로 추정된 5개의 범주 중 실제 정답과 일치하는 정도를 나타냅니다.

AutoLearn 연구팀은 AA와 동일한 환경에서 성능을 비교했습니다. 이를 위해 AA가 사용한 작은 모델과 CIFAR-10에서 찾은 어그먼테이션 정책을 다른 모델 및 데이터셋 훈련에 적용했습니다(transfer learning). 그 결과, FAA는 CIFAR-10과 SVHN, 이미지넷을 학습한 모델 대부분을 상대로 AA와 유사한 성능을 기록했습니다. 주어진 모델과 데이터셋에서 찾은 어그먼테이션 정책을 그대로 모델 훈련에 적용하는 실험인 직접 학습(direct learning)을 진행했을 때도 성능이 다소 올라감을 확인해볼 수 있었습니다.

김일두 연구원은 “AA에서는 탐색 비용과 시간이 많이 들기에 연구진은 임의로 그 규모를 축소한 모델을 활용한 전이 학습 실험만 진행했다면, FAA에서는 탐색 시간을 대폭 줄인 탐색 알고리즘 덕분에 직접 학습 실험 결과까지 첨부할 수 있었다”고 말했습니다.

다만 CIFAR-100에서는 AA와 비교해 더 나은 성능을 내지 못했습니다. 이는 모델이 FAA로 찾은 정책으로 증강한 훈련 데이터셋에 과적합됐거나 주어진 데이터셋과 모델을 상대로 어그먼테이션 정책을 충분히 탐색하지 못한 게 원인인 것으로 분석됩니다.

김 연구원은 “FAA로 찾은 어그먼테이션 정책을 적용해 증강한 검증 데이터로 모델을 미세조정하면 최종 모델의 성능이 지금 실험 결과보다 더 올라간다는 사실도 발견했다”며 “다만 공정성을 위해 어그먼테이션 정책 이외의 실험 조건을 모두 동일하게 구현한 상태로 실험을 진행했다”고 설명했습니다.

[ 표 1 ] CIFAR-10 테스트 데이터의 top-1 오류율
[ 표 2 ] CIFAR-100 테스트 데이터의 top-1 오류율
[ 표 3 ] SVHN 테스트 데이터의 top-1 오류율
[ 표 4 ] 이미지넷에서 검증 데이터의 top-1/top-5 오류율

주목해야 할 부분은 성능만이 아닙니다. [표 5]에서처럼 병렬화 기법을 도입하지 않은 동일한 실험 환경에서 FFA가 가 AA와 유사한 성능을 내면서도 최대 1,400배 더 빠르게 데이터 어그먼테이션 정책을 탐색했습니다. 다만 CIFAR-10을 기준으로 비교 대상 모델(Wide-ResNet 40-2)보다 수십 배 큰 모델(Pyramid-Net+ShakeDrop)에서는 780시간 가량 소요된 점은 다소 아쉬운 부분입니다. AA와 비교했을 때 충분히 빠르다고 볼 수 있지만서도, 상용화하기에는 결코 빠르다고 볼 수 없기 때문입니다.

[ 표 5 ] 구글이 제안한 AA와 FAA가 주어진 모델(Wide-ResNet 40-2)과 각 데이터셋에서 어그먼테이션 정책을 탐색하는 데 쓴 GPU 시간을 비교했다.


향후 연구 방향 및 기대 성과

AutoLearn 연구팀은 누구나 자신이 사용하는 데이터셋과 모델에 적합한 데이터 어그먼테이션 정책을 찾을 수 있도록 하고자 파이토치(PyTorch)[11]FAA 라이브러리를 공개했습니다.

오픈소스 코드 공개 배경에 대해 김 연구원은 “우리 연구팀 자체적으로도 학습 모델의 성능 개선을 위해 FAA를 활용하고 있다”며 “컴퓨터 비전 분류 태스크의 대표 주자로 손꼽히는 데이터셋을 상대로 한결같이 좋은 성능을 낸 FAA가 다양한 모델과 데이터를 활용하는 실제 연구・개발 환경에서도 좋은 성과를 내는 데 도움이 됐으면 좋겠다”라고 설명했습니다.

AutoLearn 연구팀은 FAA가 최선의 방법이라고 생각하지는 않습니다. 단적인 예로, [표 6]에서 보는 것처럼 AA에서 구글이 제시한 어그먼테이션 기법 종류는 16가지로 매우 한정적입니다. 최신 어그먼테이션 기법과 표준 어그먼테이션 라이브러리에서 제공하는 다양한 기법은 빠져 있는 셈이죠. 김 연구원은 “구글이 탐색 복잡도를 낮추려는 차원에서 어그먼테이션 기법 가짓수를 제한했다”며 “이로 인해 성능 향상 정도에 한계가 발생한 것으로 판단되고 있다”고 설명했습니다.

[ 표 6 ] 구글이 AutoAugment에서 정의한 16가지 어그먼테이션 기법 종류

현재 방식으로 어그먼테이션 정책 탐색의 효율성을 점진적으로 개선하는 데 한계가 있다고 판단한 AutoLearn 연구팀은 완전히 새로운 방식으로 더 큰 규모의 모델과 데이터셋, 그리고 더 많은 어그먼테이션 기법을 상대로 정책 후보군을 탐색하는 알고리즘 설계를 목표로 하고 있습니다. 연구팀은 이 성과를 토대로 이미지 분류뿐만 아니라 객체 탐지(object detection)[12], 객체 분할(object segmentation) 등 다른 태스크에서도 성능을 좀 더 높이는 방안에 대한 연구도 병행한다는 계획입니다.

김 연구원은 “질병을 진단하는 의료 문제처럼 사람의 생명과 직결된 문제에 대한 정확한 진단이 필요한 문제를 해결하는 데 있어서는 소수점 한자리 수준의 정확도 개선일지라도 그만한 가치가 있다고 생각한다”며 “이런 가치에 공감하는 사람과 함께 AutoML 관련 연구를 지속해나가겠다”고 밝혔습니다.


👏AutoML 및 머신러닝 전문가 모집 영입공고 : https://kakaobrain.com/career


참고
[1] 환경과 에이전트가 상호작용하면서 시도와 실패를 통해 보상을 학습한다. 매 단계에서 에이전트가 행동 α를 수행하면 환경은 보상 r과 다음 상태 s를 반환한다. 에이전트는 한 에피소드(episode)에서 최대 보상을 얻을 수 있는 행동 또는 행동 순서를 선택한다.
[2] 모델의 매개변수(parameter)를 세세하게 조정하는 과정을 가리킨다.
[3] 1000개 종류의 일반 사물을 라벨링한 128만 1167장의 이미지로 구성된 데이터셋
[4] 독립적으로 훈련한 여러 개의 모델의 결과를 종합해 최종 성능을 평가하는 방법을 의미한다. 보통은 다수결의 원칙에 따라 예측 결과를 결정한다.
[5] 초매개변수를 미세조정할 때 사용하는 데이터
[6] 10개의 일반 사물을 라벨링한 6만장의 이미지 데이터셋
[7] 100개의 일반 사물을 라벨링한 6만장의 이미지 데이터셋
[8] 집 번호판을 찍은 1만장의 이미지 데이터셋
[9] AA에서 내세운 비교군 중의 하나로, 이미지의 특정 부분을 가리고 해당 영역의 픽셀 값을 0으로 만든다.
[10] 최신의 데이터 어그먼테이션 정책 자동 탐색 알고리즘 중의 하나로, 훈련 과정에서 어그먼테이션 정책을 실시간으로 변경하는 특징을 지닌다.
[11] 파이썬(Python) 기반 딥러닝 라이브러리
[12] 이미지에서 대상 객체를 배경과 구분하는 기법
이 글을 쓴 사람들
samantha.lee
이수경 | 작성,편집
지난 2016년 3월 알파고와 이세돌 9단이 펼치는 세기의 대결을 취재한 것을 계기로 인공지능 세계에 큰 매력을 느꼈습니다. 인공지능을 알고 싶어하는 사람들을 위한 콘텐츠를 쓰고자 카카오브레인에 합류했습니다. 현재는 분야별 인공지능 전문가와 함께 기술 콘텐츠를 생산하는 재미에 푹 빠져 있습니다. 인공지능을 만드는 사람들의 이야기와 인공지능이 바꿀 미래 사회에 대한 글은 누구보다 쉽고, 재미있게 쓰는 사람이 되고 싶습니다.
curtis.abcd
김일두 | 감수
남들이 해내지 못할 거라 말하는 세상의 중요한 문제를 인공지능으로 풀어보고자 합니다.