[AI 이야기]
학습 데이터 라벨링에 막대한 자금·시간 소요…뇌 MRI 영상은 전문의 작업 필요 [한경비즈니스 칼럼=이주열 LG CNS AI빅데이터연구소장, 김명지 책임] 능동 학습(active learning)이라는 기술은 데이터가 많지만 인공지능(AI)을 ‘학습시킬 데이터’를 마련하기 쉽지 않을 때 이용할 수 있는 기술이다. 강아지 이미지와 고양이 이미지를 구별하는 태스크라면 누구나 데이터를 라벨링(labeling)할 수 있어 적은 비용으로도 금방 데이터를 모으겠지만 뇌 자기 공명 영상 장치(MRI)로부터 파킨슨 병 여부를 판단하는 태스크라면 해당 분야의 전문 의사가 아니라면 몹시 어려운 일일 것이다. 게다가 이미지를 한 장씩 보면서 파킨슨 병 여부를 일일이 태깅할 만큼 시간 여유가 있는 뇌 전문의를 구한다는 것 또한 쉬운 일은 아니다. 하지만 뇌 전문의 다섯 명이 한 달 동안 매일 20장씩만 이미지를 보고 라벨링을 해줄 수 있다면 어떨까. 수많은 뇌 MRI 영상 중 가능한 한 파킨슨 병인지 아닌지 가려내는 데 효과적인 데이터만 뽑아 정답을 알려 달라고 하고 싶지 않을까.
능동 학습은 라벨링을 할 수 있는 인적 자원은 있지만 많은 수의 라벨링을 수행할 수 없을 때 효과적으로 라벨링을 하기 위한 기법이다. 수행하고자 하는 태스크가 너무 특수해 해당 도메인의 전문 인력만이 데이터를 라벨링할 수밖에 없다면 최대한 학습에 효과적인 데이터만 뽑아내는 데 쓰일 수 있다. 뇌 MRI 영상으로부터 파킨슨 병을 진단할 수 있을 만한 대표적인 특징이 있을 것이다. 하지만 누구나 파악할 수 있는 대표적인 특징을 가진 데이터 말고 너무 모호해 전문의가 아니고서는 판단하기 어려운 데이터를 확보할 수 있다면 AI 학습에 도움이 되지 않을까.
수학능력시험을 예로 들어보자. 수능일까지 남은 시간 동안 각 수험생이 풀어볼 수 있는 문제의 수는 한정돼 있다. 고3 수험생 철수와 영희가 있다고 생각해 보자. 철수와 영희는 각각 동일한 문제집 10권을 가지고 있는데 문제집 1권당 문제가 100개씩 있다. 철수와 영희는 이 중 총 500문제를 풀고 난 후 수능을 보게 된다.
철수와 영희의 학습 방법이 과 같을 때 누가 더 효과적으로 학습했을까. 일반적으로 본다면 영희가 더 효과적으로 학습했다고 말할 수 있다. 풀 수 있는 문제가 500개로 제한된 상황이라면 많이 틀리는 유형들의 문제를 중점적으로 공부해 틀리지 않도록 대비하는 것이 효과적인 방법이기 때문이다. 철수의 방법이 AI 모델 학습을 위한 일반적인 데이터 라벨링 방식이라면 영희의 학습 계획이 능동 학습이라고 말할 수 있다. 위의 예시와 같이 풀 수 있는 문제의 수가 제한된 것처럼 라벨링할 수 있는 데이터의 수가 제한된 상황에서는 성능 향상에 효과적인 데이터를 선별하는 과정이 중요하다.
능동 학습은 학습 데이터 중 모델 성능 향상에 효과적인 데이터들을 선별한 후 선별한 데이터를 활용해 학습을 진행하는 방법이다. 학습 데이터를 확보하는 과정은 데이터를 수집하는 것과 수집한 데이터에 라벨을 태깅하는 라벨링 작업으로 구성돼 있다. 일반적으로 라벨링 작업은 많은 시간과 인적 자원 활용 비용이 소요된다. 라벨링 작업에 특정 도메인의 전문성이 요구된다면 더더욱 많은 비용을 필요로 할 것이다. 그렇기에 같은 수의 데이터에 라벨을 붙여 학습할 때 성능이 높게 나올 수 있도록 데이터를 선별한다면 효과적으로 딥러닝 모델을 학습할 수 있다. 이렇게 효과적인 데이터를 선별하는 방법을 연구하는 것이 능동 학습에 대한 연구다. 이와 반대로 주어진 라벨 데이터만 가지고 모델을 학습하는 방법을 수동 학습(passive learning)이라고 한다. 능동 학습의 절차
능동 학습은 크게 4단계로 구성된다.
1. 모델 훈련하기 : 초기 학습 데이터(labeled
data)를 이용해 모델을 학습한다.
2. 쿼리 선택하기 : 라벨이 되지 않은 데이터 풀로
부터 모델에게 도움이 되는 데이터를 선별한다.
3. 라벨링 : 선별한 데이터를 사람이 확인해 라
벨을 태깅한다.
4. 선별한 라벨 데이터를 기존 학습 데이터와
병합한 후 다시 모델을 학습한다.
목표로 하는 성능이 나올 때까지 위의 방법을
반복해 수행한다. 쿼리 전략(query strategy)
능동 학습의 핵심은 성능 향상에 효과적인 데이터를 선별하는 방법이다. 이러한 데이터 선별 방법을 ‘쿼리 전략(query strategy)’이라고 한다.
를 살펴보자. (a)는 2차원 평면에 나타낸 두 집단의 분포다. 여기에서 초록색 네모 집단과 붉은 세모 집단을 구별하는 모형을 만드는 것이 목표다. 이해를 돕기 위해 그림에는 집단이 표시돼 있지만 우리는 이러한 실제 모분포를 알 수 없다. 우리는 두 집단이 있다는 것만 알고 일부 데이터를 샘플링해 이 데이터가 초록 네모인지, 붉은 세모인지 라벨링한 뒤 해당 데이터만으로 두 집단을 구별하는 모델을 만들고자 한다.
(b)는 마구잡이로 데이터를 랜덤으로 추출해 초록 네모인지, 붉은 세모인지 라벨링한 것이다. 검은 점들은 선택되지 않은 데이터(unlabeled data)이기 때문에 어떤 집단인지 알 수 없다. 우리는 알고 있는 초록 네모와 붉은 세모의 샘플만으로 모델을 학습하게 된다. 그 결과 두 집단을 전반적으로 나눌 수 있는 선 하나를 (b)처럼 그려볼 수 있다. 하지만 (b)의 선은 실제 모집단의 분포를 70%만 제대로 분류할 수 있다.
(c)도 마찬가지로 일부 데이터만 샘플링해 라벨링하고 분류 모델을 만들게 되는데 이 경우엔 샘플을 마구잡이로 고르는 것이 아니고 일정 기준에 따라 샘플링하게 된다. 이때의 기준은 ‘어떤 집단에 속하는지 모호하고 헷갈리는 데이터’인데 (c) 그림에서 볼 때 집단 간 경계에 있는 모호한 샘플 위주로 추출된 것을 볼 수 있다. 모델이 헷갈릴 만한 데이터 위주로 추출해 정답을 알려주고 학습한다면 더 정교한 분류 모델이 만들어질 수 있다. 그 결과 (c)의 모델은 모집단의 분포를 90% 제대로 분류할 수 있도록 학습됐다.
쿼리 전략을 어떻게 정하느냐에 따라 선별할 데이터가 달라진다. 대표적인 쿼리 전략에 대해 간단히 알아보자. 1. 불확실성에 기반한 샘플링
불확실성 샘플링(uncertainty sampling) 방식은 가장 단순한 쿼리 전략이다. AI 모델은 가장 불확실하다(least certain)고 생각하는 데이터를 추출해 라벨링이 필요하다고 요청한다. 예를 들어 강아지와 고양이를 분류하는 이진 분류(binary classification) 태스크에서는 모델이 어떤 데이터에 대해 강아지일 확률과 고양이일 확률을 각각 50% 내외로 추론한다면 해당 데이터는 강아지인지 고양이인지 모호한 데이터일 것이다. 이런 데이터를 라벨링해 모델에게 알려준다면 분류 성능을 높이는 데 도움이 될 수 있다.
2. 의견 불일치를 고려한 샘플링
여러 AI 모델 간의 의견 불일치를 종합 고려해 라벨링 대상을 추출하는 방식(query by committee)도 있다. 여러 모델 간 추론한 결과 불일치가 많은 데이터일수록 가장 헷갈리는 데이터, 즉 라벨링을 진행할 대상이 되는 것이다.
강아지와 고양이를 분류하는 모델을 여러 개 학습했다고 하자. 어떤 데이터를 넣었을 때 학습한 모델간 추론 의견이 일치한다면 그 데이터는 확실히 강아지이거나 고양이인 데이터일 것이다. 이런 데이터는 라벨링을 진행하지 않아도 이미 여러 모델이 잘 맞춘다는 뜻이므로 넘어가도 좋다. 하지만 어떤 데이터를 넣었을 때 모델 간 추론 결과가 제각각이라면 그 데이터는 고양이인지 강아지인지 모호한, 정보가 많은 데이터다. 이때 라벨링을 진행해 모델 학습에 이용하면 분류 성능 향상에 도움이 될 수 있다.
이 밖에 다양한 쿼리 전략이 있지만 어떤 방법이든 간에 정보가 가장 많은 데이터를 선정해 라벨링해야 모델 학습에 도움이 될 것이라는 생각은 동일하다.
데이터 자체는 손쉽게 대량으로 확보할 수 있지만 모델이 학습에 사용할 수 있는 ‘유의미한 라벨 정보가 포함된 데이터’는 극소수다. 데이터는 많지만 역설적이게도 AI 모델 학습을 위해 ‘쓸모 있는 데이터’는 많지 않다. 풀고자 하는 태스크를 위한 라벨 정보를 새로 만드는 것은 시간과 비용에 의해 현실적으로 불가능한 것이 대부분이다. 이러한 어려움을 조금이라도 해결하기 위해 연구해 온 방법이 능동 학습이다.
능동 학습은 그 자체로 어떤 딥러닝 기술이라기보다 효과적인 학습을 위한 시스템이라고 보는 것이 맞다. 그리고 그 시스템의 일부분에서 반드시 인간의 라벨링 작업을 필요로 한다. AI는 어떤 식으로든 이와 같이 조금이라도 사람의 도움(라벨링과 같은)을 필요로 한다. 여러 사례들을 보면 능동 학습은 AI 모델 학습을 시작하는 초기 개발 단계에 매우 효과적이다. 어차피 가르쳐 줘야 할 것이라면 조금이라도 효율적으로, 더 도움이 될 수 있는 방향으로 작업을 할 수 있는 것이 좋지 않을까.
능동 학습 방법만으로 데이터에 관한 모든 문제를 해결할 수는 없겠지만 AI 기술이 효율적으로 접목될 새로운 가능성을 열어 줄 수 있다.
[본 기사는 한경비즈니스 제 1308호(2020.12.21 ~ 2020.12.27) 기사입니다.]
© 매거진한경, 무단전재 및 재배포 금지