브레인 스토리
[AutoML]1.데이터 어그먼테이션 연구 동향을 소개합니다.
2019/06/20 by 이수경, 김일두

심층 신경망(deep neural networks)은 은닉층(hidden layer)을 많이 쌓아 매개변수(parameter)를 늘리는 방식으로 모델의 표현력을 높였습니다. 많게는 수백만 개에 이르는 매개변수를 제대로 훈련하기 위해서는 정말 많은 데이터가 필요한데요, 여기에는 데이터가 현실을 충분히 잘 반영할 정도로 다양하며 그 품질이 우수해야 한다는 단서가 붙습니다.

[ 그림 1 ] 데이터의 양과 알고리즘 성능 간의 관계. 딥러닝에서는 데이터가 많을수록 그 성능이 비례해 증가하는 경향이 있다. © Arjun Kava

매개변수를 훈련할 충분한 학습 데이터를 확보하지 않으면 모델의 성능을 저해하는 과적합(overfitting) 문제가 상대적으로 더 쉽게 발생합니다([그림 2]). 과적합은 모델이 훈련 데이터에만 지나치게 적응해 테스트 데이터 또는 새로운 데이터에는 제대로 반응하지 못하는 현상을 가리킵니다. 좀 더 쉽게 설명하자면, 고양이의 정면 사진만 배운 네트워크는 고양이의 옆면 사진을 입력받으면 이를 고양이로 인식하지 못하는 거라고 보면 되겠습니다. 어떤 사진으로도 고양이를 잘 인식할 수 있도록 하기 위해선 다양하고 많은 데이터로 네트워크를 훈련하는 게 무엇보다 중요한 이유입니다.

하지만 양질의 데이터를 대량 확보하는 데 비용이 큰 걸림돌이 될 때가 많습니다. 데이터 종류에 따라서는 확보할 수 있는 분량에도 제약이 따를 수도 있습니다. 대표적으로, 의료 영상 데이터는 의사가 의료영상에서 어느 부분이 장기이고 종양인지를 일일이 기록한 정답 데이터(ground truth data) 획득 비용이 많이 들어 다량의 학습 데이터셋을 구축하기가 쉽지 않습니다.

이처럼 딥러닝 모델을 충분히 훈련하는 데 필요한 데이터를 확보하는 기법 중 하나로 어그먼테이션(Augmentation)이 소개되고 있습니다. 어그먼테이션은 [그림 3]에서처럼 적은 양의 훈련 데이터에 인위적인 변화를 가해 새로운 훈련 데이터를 대량 확보하는 방법론을 의미합니다. 예를 들어, 이미지를 상하좌우로 뒤집거나(flipping) 자르는(cropping) 방식으로 새로운 이미지 데이터를 확보하는 거죠. 현실 세계에서도 실제로 존재할 법한 데이터를 생성함으로써 좀 더 일반화된 모델을 얻는 걸 목표로 합니다.

[ 그림 2 ] 데이터가 많아질수록 과적합 문제가 발생할 가능성이 낮아진다. © Julien Despois

[ 그림 3 ] 다양한 방식으로 변형해 새로 획득한 이미지를 학습 데이터로 활용한다.

실제로 어그먼테이션이 모델 훈련에 효과적이라는 사실은 널리 잘 알려져 있습니다. ILSVRC(ImageNet Large Scale Visual Recognition Challenge)[1]을 비롯한 다양한 비전(vision) 문제를 해결하는 SOTA(state-of-the-art, 현재 최고 수준의) 성능을 내는 여러 방법론에서 라벨링 데이터를 신규 확보하거나 사전 훈련(pre-training)[2]을 도입하고, 또는 데이터 어그먼테이션 정교화에 주력하는 배경이죠.

김일두 카카오브레인 연구원은 "캐글(Kaggle)[3]에 참여해본 결과, 모델 아키텍처나 초매개변수(hyperparameter) 등을 미세 조정(fine-tuning)[4]함으로써 얻은 결과에서는 참여자 간 성능 차가 크게 나지 않았다”며 "그보다는 데이터 전처리(preprocessing)나 어그먼테이션 기법에 따라 성능이 10~30% 정도로 눈에 띄게 오르는 것을 확인할 수 있었다"고 설명했습니다.

단백질 이미지 분류 대회(Protein Image Classification Challenge)는 현미경으로 촬영한 세포 내 단백질 형태를 인식하는 과제입니다. 특정 클래스(범주)에 해당하는 이미지가 지나치게 적고, 의료용 스캐너 촬영 방식이나 세포 염색 방법이 제각기 달랐습니다. 세포핵을 찾는 문제인 데이터 사이언스 볼(Data Science Bowl) 2018에서도 마찬가지의 문제가 존재했습니다. 이에 어그먼테이션으로 실제로 존재할 법한 세포 사진을 다량 생산해 훈련해 좀 더 일반화된 모델을 얻을 수 있었죠.”

[ 그림 4 ] 단백질 이미지 분류 대회에서 어그먼테이션 한 이미지 예제. 원본 이미지(1)를 위아래로 뒤집고(2), 좌우로 뒤집고(3), 색깔을 바꾸거나(4) 그 밝기를 변경(5)했다.

“한편, 구글 텐서플로 음성 인식 대회(Google Tensorflow Speech Recognition Challenge)는 대상 데이터가 이미지는 아닙니다만, 음성 역시 발화자마다 특성이 다르고 데이터를 획득한 환경이 다양해 잡음(noise)이 섞여 있는 데이터가 많을 수밖에 없습니다. 잡음을 제거하는 어그먼테이션과 잡음을 생성하는 어그먼테이션 등 현실 세계의 다양한 녹음 환경을 반영하는 기법을 통한 일반화가 역시 핵심이었습니다."

문제는 데이터에 최적화된 어그먼테이션 방법론을 탐색하기가 하늘의 별 따는 수준만큼 힘들다는 데 있습니다. 현실과 너무 동떨어지거나 기존 특징을 왜곡할 수도 있는 기법은 오히려 학습 난이도와 성능에 좋지 않은 영향을 끼칠 수도 있죠. 예를 들어, 글자를 인식하는 문제에서는 글자 이미지를 좌우 또는 상하로 뒤집는 기법은 적당하지 않습니다. 글자가 지닌 의미가 왜곡될 가능성이 크기 때문입니다. 마찬가지 이유로 심장을 촬영한 영상도 뒤집기 기법은 적절치 않습니다. 반면, 일반 이미지에서는 이미지가 지닌 의미를 바꾸지 않는 좌우로 뒤집기 기법은 매우 효과적입니다.

데이터를 취득하는 방식이 다른 점도 어그먼테이션 기법에 많은 영향을 미칩니다. 만약 이미지를 촬영할 때마다 대상 물체의 크기가 달라진다면 이미지를 여러 크기로 자동 조절하는 기법이 큰 도움이 됩니다. 반면, 의료 영상처럼 장기의 크기는 거의 바뀌지는 않아도 데이터를 획득하는 방식이나 환자의 상태에 따라 장기에 변이가 있는 경우 노이즈를 적절하게 생성해주는 기법이 필요합니다.

정리하자면, 경험과 지식을 갖춘 머신러닝 엔지니어조차 데이터에 적합한 어그먼테이션 기법을 탐색하는 데 큰 비용과 시간을 쏟아 붓습니다. 데이터 취득 방식에 따른 데이터 속성을 심층적으로 분석할 수 있는 전문성을 갖추는 일에도 어려움이 따르죠. 심지어 이렇게 많은 시간과 비용을 들여서 찾은 어그먼테이션 기법이 최고라는 확신도 없습니다.

이런 문제를 해결하고자 업계에서는 머신러닝으로 데이터 수를 늘리는 자동화 방법을 찾는 연구에 관심을 기울이고 있는데요, 지난해 구글(Google)이 발표한 AutoAugment가 대표적인 선행 연구입니다. AutoAugment는 강화학습(reinforcement learning)[5]을 통해 이미지 데이터셋에 가장 적합한 어그먼테이션 정책(policy)[6]을 자동으로 찾아주는 알고리즘입니다. 대단히 많은 GPU 자원을 토대로 어그먼테이션 방법을 최적화했을 때 다양한 태스크에서 SOTA 성능을 내는 결과를 보였습니다.

[ 그림 5 ] 이미지넷에서의 잘 작동하는 정책 중 한 예시. 이미지넷에서 잘 작동하는 정책은 주로 이미지의 색깔을 변형하는 방법론을 택하고 있다.

구글 연구진은 탐색 공간(search space)[7]을 다음처럼 정의했습니다. 여기서는 데이터에 적합한 어그먼테이션 기법을 다양하게 찾으려는 목적에서 하나의 정책을 5개의 하위 정책(sub-policy)으로 구성합니다. 하위 정책은 2개의 이미지 오퍼레이션(operation)으로 구성됩니다. 각 오퍼레이션은 어그먼테이션 기법(T={반전, 대비, 밝기, …, 첨예도}, n(T)=16)을 어떤 확률(P={0, 0.1, …, 1}, n(P)=11)로, 어느 수준의 강도(M={0, 1, …, 9}, n(M)=10)로 실행할지를 결정합니다. 한 하위 정책이 생성하는 어그먼테이션 기법은 총 (오퍼레이션)×(오퍼레이션)=(기법×확률×강도)2=(16×11×10)2개입니다. 따라서 결과적으로 AutoAugment에서 정의된 이미지 어그먼테이션에는 총 ((16×11×10)2)5≈2.9×1032개의 후보군이 있습니다.

이 정도 규모가 되는 어그먼테이션 기법의 모든 가짓수에 대한 딥러닝 성능을 일일이 확인하는 건 절대적으로 불가능한 일입니다. 김일두 연구원은 “지구에 존재하는 원자 수보다 많은 경우의 수를 탐색해야 하는 바둑에서처럼 매우 많은 경우의 수를 탐색해야 한다”고 설명했습니다. 따라서 탐색 깊이와 너비를 획기적으로 줄일 수 있는 알고리즘 구축이 관건입니다.

AutoAugment는 임의로 선택한 어그먼테이션 기법으로 훈련 데이터를 증강하고 네트워크를 훈련합니다. 초기에는 성능이 좋은 기법과 그렇지 않은 것 모두를 골고루 탐색하겠죠. 그러다가 모델의 성능을 높이는 방향으로 보상을 획득해가며 AutoAugment는 점점 더 좋은 성능을 내는 어그먼테이션 기법을 찾아가게 됩니다.

[ 도표 1 ] 5개 데이터셋에 대한 오류율(%)을 비교한 도표. 서로 다른데이터셋과 다양한 모델에서 AutoAugment로 찾은 데이터 증강 기법만으로도 좋은 성능을 내고 있다.

기존의 SOTA 방법론이 주로 네트워크 구조나 최적화 방법으로 성능 개선을 이뤘다고 한다면, AutoAugment는 동일한 모델 구조와 최적화 기술을 활용할 때 학습에 적합한 데이터 증강 기법을 적용하는 것만으로 성능을 개선했다는 점에서 의의가 있다고 볼 수 있겠습니다.

아울러 AutoAugment는 데이터셋 규모를 축소했을 때 더 큰 성능 개선 효과를 냈습니다. 비라벨링 데이터(unlabeled data)를 사용한 기존의 준감독학습(semi-supervised learning)과는 달리, 되려 데이터 규모를 축소한 상태에서 AutoAugment가 찾아낸 방법론은 그 성능이 훨씬 도드라집니다. 김 연구원은 “학습 데이터가 충분히 않은 상황에서는 데이터를 증강했을 때 학습 효과가 클 수밖에 없었을 것”이라고 분석했습니다.

하지만 계산복잡도가 높다는 점에서 AutoAugment를 일반적인 연구 환경에 적용하기 어렵다는 한계가 존재합니다. 수많은 어그먼테이션 기법 중 하나로 증강한 데이터로 모델을 훈련하고 그 성능을 평가하는 데에는 대단히 많은 컴퓨팅 자원(그래픽처리장치(GPU))이 소모되기 때문입니다. [도표 2]를 보면 엔비디아 P100 제품을 기준으로 이미지넷에 적합한 어그먼테이션 기법을 찾는데 15,000 GPU 시간이 소요됩니다. 비용으로 추산하면 대략 3,000만원 규모입니다. 이마저도 성능이 획기적으로 향상되지 않는다면 같은 실험을 반복하느라 비용이 몇 배 더 늘어날 가능성도 높습니다. 이런 이유로 구글 수준으로 규모가 큰 회사가 아니라면 어마한 모델 훈련 비용을 감당하기가 어렵습니다.

[ 도표 2 ] 5가지 데이터셋에서 최상의 결과값(오류율)을 비교한 표. 이미지넷에서 잘 동작하는 데이터 어그먼테이션 기법을 찾는데 15,000 GPU 시간이 소모됨을 확인할 수 있다.

이에 카카오브레인 연구팀은 누구나 쉽게 활용할 수 있으며 연산에 드는 GPU 자원 수를 획기적으로 줄이고, 병렬 계산을 고도화해 더 빠르게 어그먼테이션 기법을 탐색하는 알고리즘인 Fast AutoAugment를 제안했습니다. 해당 연구 논문은 국제기계학습학술대회(International Conference on Machine Learning, ICML) 워크샵에 실렸습니다. Fast AutoAugment에 대한 자세한 이야기는 2편(공개 예정)에서 이어서 하겠습니다.


참고
[1] 대용량 영상을 분류하고 객체를 검출하는 연구를 활성화하려는 목적으로 2010년 시작된 워크샵이다. 2012년도 이후로 성적이 좋은 상위팀은 대부분 CNN 기반 기법을 이용했고, 2015년도 대회에서 우승한 마이크로소프트 리서치(Microsoft Research)의 ResNet은 1,000개의 클래스로 분류하는 문제의 top5 오차율을 3.54%까지 낮추었다.
[2] 한 태스크에 특화된 모델 훈련(training)에 필요한 지식을 미리 가르치는 기법을 말한다. 훈련에 사용되는 것과 유사한 데이터로 모델을 미리 가르치면 훈련에 효과적인 초기값 확보에 큰 도움이 된다.
[3] 데이터 과학 및 머신러닝 등 인공지능과 관련한 글로벌 경진대회
[4] 개발자가 머신러닝 알고리즘에서 직접 조정하는 값. 필터 수나 네트워크 레이어 수 조절 등이 여기에 해당한다.
[5] 환경과 에이전트가 상호작용하면서 시도와 실패를 통해 보상을 학습한다. 매 단계에서 에이전트가 행동 α를 수행하면 환경은 보상 r과 다음 상태 s를 반환한다. 에이전트는 이를 반복하여 한 에피소드(episode)에서 얻을 수 있는 보상을 최대로 하는 것을 목표로 한다.
[6] 주어진 상태 s에서 어떤 행동 α을 결정하는 함수
[7] 문제를 푸는 가능한 해를 모두 모아둔 집합
이 글을 쓴 사람들
samantha.lee
이수경 | 글,정리
2016년 3월 알파고와 이세돌 9단이 펼치는 세기의 대결을 두 눈으로 목도한 이후 인공지능을 제대로 공부해봐야겠다고 결심했습니다. 인공지능 본진이자 연구소인 카카오브레인으로 걸어들어온 이유죠. 인공지능 기술과 이로 인해 바뀔 미래 사회를 다루는 글을 통해 사람들과 소통하고자 합니다.
curtis.abcd
김일두 | 기술감수
남들이 해내지 못할 거라 말하는 세상의 중요한 문제를 인공지능으로 풀어보고자 합니다.