본문 바로가기
AI · 인공지능/알기쉬운 AI

[알기쉬운 AI - 19] 머신 러닝의 학습 데이터

by 두우우부 2020. 2. 8.
반응형


효율적으로 공부하기 위해서는 좋은 교재가 필요합니다. 딥러닝의 교재는 학습 데이터입니다. 이번에는 그 학습 데이터의 양과 질에 초점을 두고 설명합니다. 또한, 다운로드 가능한 일반물체 식별 데이터 세트 'ImageNet'과 '기학습 모델', 그리고 ILSVRC에 대해 설명합니다.


학습 데이터의 양은 어느 정도 필요할까?

딥러닝은 대량의 학습 데이터가 필요하다고 잘 알려져 있습니다. 그리고 Google과 Amazon, Facebook 등의 AI 대기업은 전 세계적으로 데이터를 가지고 있으며, 중국은 자국만으로도 방대한 데이터가 있기 때문에 절대로 이길 수 없다고 말하는 사람도 있습니다. 

하지만 모두가 그렇게 말하니까 그냥 그렇게 받아들이는 경향이 있습니다. 과연 잘 알고 하는 말일까요? 예를 들어, '꽃 사진에서 장미를 인식하는 분류기를 만들려면 사진이 얼마나 필요합니까?' 라는 질문을 던져도 제대로 된 답변은 쉽게 돌아오지 않을 것으로 생각됩니다.

신경망은 인간의 뇌를 모방했지만, 반대로 인공 지능을 고려할 때 인간으로 바꿔 생각하면 이미지가 떠오르는 경우도 많습니다. 인간이 장미꽃을 학습하는 모습을 상상해 보십시오. 여러 가지 꽃 사진을 학습하면서, 이것은 장미고 이것은 장미가 아니다, 그렇게 점점 알아가는 것입니다. 전부 장미 사진만 있으면 안 됩니다. 모란이나 동백 등 다른 꽃의 사진도 보여주고 이것은 장미가 아니라고 가르쳐 줘야 장미 고유의 특징을 찾을 수 있습니다. 

장미는 품종이 너무 많아서 난이도가 조금 높지만, 1,000장 정도의 사진을 준비하고 그중 50장 정도가 장미일 때, 5회 정도 반복 학습하면, 보통 사람이라면 잘 구별해 냅니다. 

AI도 크게 다르지 않습니다. 위와 같은 데이터를 준비하고 20회 정도 반복 학습하면 보통 80% 이상의 정답률로 인식할 수 있습니다. 그러나 이것은 나중에 설명할 전이 학습 등의 소량 데이터로 학습하는 기법을 사용한 경우입니다. 4년 전만 해도 대량의 학습 데이터가 없으면 안 되었습니다만, 2018년 무렵 부터 소량의 데이터로 학습할 수 있게 되었습니다.

또한, 더욱 데이터를 학습하면 특이한 장미도 '아, 이것도 장미'라고 인식하게 됩니다. 반대로 지금까지 잘못해서 장미라고 생각했던 꽃도 '이런 놈은 장미가 아닌 것 같아'라고 알아주는 것입니다.

그러나 학습 데이터양에 비례하여 정답률이 높아지는 것은 아니고, 추가 데이터에 비해 정답률이 높아질 비율은 점점 낮아지며, 결국 saturation(포화) 상태에 이릅니다. 소프트웨어의 품질을 어느 정도까지 높이는 비용(시간)에 비해, 완전히 버그를 없앨 때까지의 비용 곡선은 연일 상한가를 치는 주식의 곡선 차트와 비슷하다고 할 수 있습니다.

인간의 경우, 긴 인생에서 다양한 장미를 만나면서 조금씩 정답률이 높아지고 '꽃을 잘 아는 사람'이 될 것입니다만, 인공 지능은 그 분량을 한번에, 지치거나 쉬지도 않고 학습합니다. 그러한 의미에서 역시, 데이터가 많은 쪽이 유리하기는 합니다만, 어느 정도 괜찮은 수준까지 학습시킬 수 있는 데이터만 있으면 충분히 딥러닝을 시작할 수 있습니다(나머지는 활성 학습에서 지도해 주시면 됩니다).


학습 데이터의 품질

사실 학습 데이터의 양보다 품질이 더 중요합니다. 특징을 알기 쉬운 데이터로 학습시키면 향상이 빠른 것은 당연하지만 반대로 저품질 데이터를 학습할수록 정답률이 떨어지게 됩니다. 

여기서 여러분이 이런 질문 하나를 던집니다. '그럼 품질 좋은(표준의) 장미 사진만 학습한다면 다양한 변형이 있는 실전 사진에서는 약한 분류기가 되어 버리는 것이 아닐는지?'

윽, 갑자기 말문이 막힙니다. 확실히 그럴 것 같습니다... 어떻게 대답하면 좋을까요?

사실, 이 질문에는 오해가 포함되어 있습니다, 그것은 '좋은 품질 = 표준' 이라고 정의한 곳에서 발생하고 있습니다. 좋은 품질이 곧 표준이라는 의미는 아닙니다. 특이한 장미도 그것이 현실에 존재하는 장미면 학습시켜서 장미로 인식시키는 것이 좋은 것입니다.

'그렇다면, 학습데이터의 품질이란 게 화질의 좋고 나쁨을 말하는 건가요?' 으음...아닙니다. 인간이 보고 판단할 수 있는 사진이라면 다소 얼룩이 있어도, 초점이 흐려도, 앵글이 나쁘더라도, 그것은 학습시켜야만 할 양질의 자료라고 할 수 있습니다.

여기서 말하는 품질이 나쁘다는 것은 '인간도 판단할 수 없다'는 뜻입니다. 예를 들어, 장미가 풍경에 묻혀서 왠지 판별이 어렵다든지, 빛과 구도에 의해서 어떻게 봐도 라넌큘러스로 보인다거나 인간도 틀릴 것 같은 사진에 대해 '이것은 장미다'라는 라벨을 붙여 학습하면 분류 장치는 '이런 것도 장미구나'라고 잘못 학습해 버립니다. 그리고 인식의 정확도가 떨어지고 마는 것입니다.

데이터 클렌징 자동화

품질이 나쁜 데이터를 분류기에 학습시키면 안 됩니다. 따라서 수집된 데이터 중에서 저품질 데이터를 제거하는 데이터 클렌징(Data Cleanging) 처리 후 학습 데이터로 사용합니다. 

그러나 사실 이 작업이 상당히 힘듭니다. '품질이 나쁘다'의 기준이 '인간도 판단할 수 없다'라면, 결국 인간이 판단해야 하는 작업인 만큼, 좀처럼 작업을 자동화하기 어렵습니다.

근데, 분류작업의 자동화라니... 네, 이것은 인공 지능의 자신 있는 영역입니다. 그렇다는 것은 분류기에 학습시키기 위한 데이터의 클렌징에 분류기 자신을 쓰면 되겠네요? 분류기는 판단 결과에 신뢰도를 백분율로 첨부합니다. 그것을 이용하여 신뢰도가 매우 낮은 결과의 경우 어차피 학습해도 변변한 결과를 얻지 못하니까 제외하는 게 좋습니다.

장미의 이미지 식별의 경우, 이 작전의 단계는 다음과 같습니다(그림 1).

1) 인간이 클렌징한 데이터로 어느 정도 장미의 인식이 가능한 분류기를 생성한다.
2) 나머지 데이터에 대해 그 분류기를 사용하여 신뢰도에 따라 '품질이 좋다/좋지 않다'를 나누는 처리를 한다.
3) 품질이 좋은 데이터만을 사용하여 그 분류기의 학습을 계속한다.
4) 추가 학습 데이터가 있으면, 2) 단계를 다시 반복한다.

 

그림 1 : 데이터 수집과 정리


작전명은 "첫째는 손이 많이 가지만, 둘째는 첫째가 키운다"입니다. 네, 좀 긴가요? 그럼 'First child's present' 로 어떨까요.

수고스럽지만, 장미 인식 분류기를 겸용하지 말고 데이터 품질의 좋고 나쁨만을 판단하는 클렌징 전용 분류기를 따로 만들면 더 효과를 높일 수 있습니다. 이것은 둘째가 셋째를 돌봐주는 작전이므로, 'Second child 's present' 라고 합시다.

 

ImageNet과 ILSVRC

음성 인식과 자연 언어 이해 등 다양한 인공 지능의 응용 분야 중 화상 인식은 AI가 가장 자랑하는 분야입니다. 그 발전에 큰 도움이 된 것이 ImageNet입니다. ImageNet은 2010년에 발족한 컨소시엄이 만든 '일반물체 인식 데이터 세트(generic object recognition)'입니다. 인터넷에서 이미지를 끌어모아서 이것은 사자, 이것은 자전거 등 수작업으로 레이블이 지정된 데이터 세트(이미지와 라벨 세트)를 만든 것입니다.

해마다 이미지와 클래스(라벨)가 늘어나고, 현재는 3.2만 클래스에 1,400만 장이 넘는 데이터 세트로 되어 있습니다 (그중 20% 정도의 이미지는 lost되고 있다고 알려져 있습니다). 2010년 부터 이 데이터 세트를 사용하여 1000 클래스를 인식하는 이미지 인식 경연 대회 (ILSVRC)를 실시하고 있으며, 2012년에 8층의 회선신경망(CNN)을 사용한 Alexnet이라는 모델이 압승한 것이 딥러닝 붐의 계기가 되었습니다.

ImageNet은 공개되어 있어 이미지 및 라벨(클래스)을 내려받을 수 있습니다. 그러나 인터넷에서 이미지 데이터를 주워 온 데이터 이므로 저작권이 무료는 아니고, 연구와 학습에만 사용할 수 있습니다.

ILSVRC는 '천하제일 무도회'같은 존재로, 매년 새롭고 다양한 모델이 참여하고 정확도도 매년 향상되었습니다. 그리고 이 대회를 통해 VGGNet(2014년 준우승)과 GoogLeNet(2014년 우승), ResNet(2015년 우승) 등의 유명한 학습 모델들이 탄생하고 있습니다. 그리고 그 모델의 구조와 매개 변수가 오픈 소스로 공개되어 이를 기학습 모델(Pre-trained models)이라고 합니다.

대회 내용도 조금씩 바뀌어, 2017년도에는 다음의 세 가지 작업이 있었습니다. 

①Object localization  for 1000 categories.
- 2012년 부터 계속해서 이루어지고 있는 1000 클래스의 개체 식별 문제

②Object detection  for 200 fully labeled categories.
 - 2014년 부터 시행, 이미지에서 200 클래스의 객체를 감지하고 식별하는 문제


③Object detection from video  for 30 fully labeled categories.
 - 동영상에서 30 클래스의 객체를 감지하고 식별하는 문제 

회선 신경망(CNN)의 발전에 크게 공헌한 ILSVRC이지만, 학습 모델의 성능이 향상됨에 따라 정밀도의 향상이 줄어들고, 상위 그룹의 차이가 매우 작아졌습니다. 그리고 이 좁은 영역에서의 경쟁보다는 다른 방향에 힘을 쏟자는 목소리가 강해져서 마침내 ILSVRC는 2017년으로 종료되었습니다. 사실 Google도 2014년의 우승 이후 참여하지 않았습니다. 그리고 덧붙여 2016 ~ 2017년은 중국 세력이 매우 강합니다. 2016년 중국 공안부가 RestNet을 개량한 모델에서 ①의 작업에서 오류율 2.99%를 달성하며 우승했지만, 이때 상위 5팀의 차이는 0.3% 이내로 매우 근소한 차이였습니다.

계속해서 2017년 27팀 중 절반 이상을 중국 세력이 차지하며 상위를 독점하고 있습니다. ① 작업에서 WWW라는 중국 중심의 팀이 오류율 2.55%로 우승했고, ②의 작업에서도 DBAT는 중국 중심의 팀이 우승하고 있습니다.


기학습 모델 (Pre-trained models)

조금 옛날 버전입니다만, 이미지 계에서 인기 있는 기학습 모델에는 다음과 같은 것들이 있습니다. Tensorflow와 Pytorch 등 라이브러리가 표준으로 지원하는 모델이 달라서 사용 목적에 따라 사용할 라이브러리와 함께 어느 것이 좋을지 선택하십시오.

· Alexnet 
· VGG11 / 13 / 16 / VGG19 
· BNIncepion 
· Inception-v3 / Inception-v4  
· InceptionRestNetV2 
· ResNet18 / 34 / 50 / 101 / 152 
· ResNeXt101_32x4d / 101_64x4d 
· FBRestNet152 
· MobileNet 
· SqueezeNet1.0 / 1.1 
· NASNet-A-Large 
· DenseNet121 / 161 / 169 / 201 
· Xception 
· Places205 


정리

맨땅에서 이미지 식별 분류기를 만들어야 할 경우, 대량의 이미지 데이터를 모아 부적절한 이미지를 제거하고 크기를 가지런히 하는 등의 전처리를 진행하고, 신경망 라이브러리를 선택하여 몇 번이고 결과를 반복적으로 봐가면서 학습해야 하는 방대한 작업이 필요합니다.

그렇게 생각하면 이미 훈련된 기학습 모델이 준비되어 있다는 것은 행복한 일입니다. 다음 내용 또한 그 감사함이 하느님에 필적하는 이야기입니다. 다음에는 전이 학습 등에 의해 소량의 데이터로 학습이 가능한 방법을 설명합니다.

반응형