기계학습, Machine Learning이란 영역은 Data를 활용하여 예측 가능한 알고리즘을 연구하고 구성하는 활동입니다.

그래서 Machine Learning을 위해서는 학습을 위한 Data가 필요하며, 만약 Data가 충분하다면 그 Data를 이용하여 모델 훈련을 하고 모델링을 하는 거죠.

그렇다면 Machine Learning에서 말하는 Data의 형태는 어떻게 생겼을까요?

Data는 인공지능이 학습할 수 있는 형태로 가공되어 있어야 합니다. 인공지능에서 말하는 Data는 이미지 내 Object(Person, Animal, Car 등)에 꼭 맞게 Box를 그리거나 점을 연결하여 Label을 달아놓는 방법 등 기계가 이해할 수 있는 방식으로 정답이 있는 형태를 말합니다. 모델 학습을 위해 필요한 Dataset에 정답을 달아놓는 과정을 흔히 Data Labeling 이라고 말하는데 인공지능이 공부할 수 있는 연습문제와 정답지 세트를 만들어 주는 것이라고 생각하면 쉽습니다. (보통 이미지나 비디오에서는 바운딩 박스(Bounding Box), 폴리곤 세그멘테이션(Polygon Segmentation), 폴리 라인(Polyline), 키포인트(Key point) 등의 어노테이션 유형을 사용합니다)

이러한 Labeling 과정은 굉장히 힘이 듭니다. 정말 많은 시간과 노력이 필요하며 반복적이고 피로도가 높은 작업입니다. 해보신분들은 아시겠지만 흔히들 주변에서 말하는 걸 들어보면 인형의 눈 붙이는 반복적인 작업의 느낌이 나는 고된 작업이라 말합니다.

왜 Labeling 작업은 어려울까?

1. Machine Learning을 위해서는 수많은 Data가 필요

Machine Learning을 위해서는 Data에 매우 의존적입니다. 그렇기에 많은 양질의 Data가 필요합니다. 예를 들면 Classification의 경우는 Task 별로 기본적으로 수만장의 이미지 Data가 필요하고 그것들을 각각 Labeling하는 작업이 필요하죠.

2. 이과정들을 모두 사람이 진행

Segmantation의 경우는 도로, 차, 건물, 하늘 등이 구분이 되어 있는데 저 구분을 모두 사람이 한다고 생각해보시고 저 이미지 1장이 저런데 저런 이미자가 5만장 6만장, 7만장, 100만장 이상의 이미지가 있을때 저 작업을 어떻게 처리 할 것인가 생각해본다면 얼마나 어렵고 괴로운 작업인지 인지가 되실 겁니다.그래서 단순히 개나 고양이를 분류하는 문제를 떠나서 현실세계의 문제를 풀려고 한다면 (자율주행 등) 그 데이터 셋은 풀려고 하는 문제의 복잡성 만큼 증가하게 됩니다.

3. 많은 시간과 비용이 소요

이 고된 일을 사람이 하다보니 많은 시간과 비용이 소요됩니다. 대개 인공지능 개발과정에서 Data 구축이 작업 시간의 80~90% 차지합니다.

4. 일관되고 정확한 Labeled Dataset을 갖추는 것이 어려움

또한 많은 양의 작업량으로 인해 결국 팀이나 외주를 통해 공동 작업을 진행하게 되는데 공동작업을 하게 나오면 발생하는 이슈는 수만장의 이미지를 여러 사람이 작업하다보니 그 라벨링에 대한 결과, 퀄리티를 어떻게 관리하고 유지 할 것인가에 대한 문제가 있습니다.

예를 들면, 고양이를 라벨링하는 작업이라 하겠습니다. A라는 사람은 윤곽에 맞게 매우 잘 라벨링했지만 B라른 사람은 꼬리가 제외되었고 귀도 조금 짤렸네요. 이렇듯 수행하는 사람에 따라 품질이 달라집니다. 

포탈에서 검색 하다보면 이젠 색상으로도 검색이 가능한데요. 만약 특정 상품을 색상으로 분류하여 Labeling 하는 작업을 공동으로 한다면 아마 더 혼라스러울 것입니다. 색상은 정말 다양하고 사람의 눈에 따라 모니터의 상태에 따라 다르게 보일 수 있기때문입니다. (예전에 한 드레스 이미지를 보고 검정과 파랑색이니 흰색과 금색이니 논란이 있었던 재미난 사진도 생각이 납니다)

이렇듯 일관되고 높은 품질로 Labeling을 하는 것은 결코 쉬운 일이 아닙니다.

Labeling 작업의 중요성

위에 설명드린대로 이렇게 힘든 작업임에도 불구하고 왜 Labeling이 중요할까요? Machine Learning을 공부해 보았다면 한번쯤은 Imagenet, COCO, MNIST와 같은 Public Dataset을 보셨을 겁니다. Imagenet 같은 경우는 1,400만장의 이미지가 22,000개의 카테고리로 분류되어 있고 COCO Dataset은  33만개의 이미지가 80개의 카테고리로 분류되어 있습니다. 이러한 Public Dataset은 많은 사람들에 의해 공동 작업으로 만들어졌고 어느정도 퀄리티가 보장되었다고 믿고 사용하고 있습니다. 흔히 발표되는 Machine Learning 연구라는 것은 이런 퀄리티가 보장된 Public Dataset을 바탕으로 어떻게 더 좋은 결과를 내게 할 것인가를 연구하는 활동이라고 보시면 됩니다. 다시말해 '잘 만들어진 Data'를 기반으로 하는 연구활동이죠.

하지만 이렇게 발표된 SOTA 모델들도 자신이 가지고 있는 Dataset으로 모델을 만들었을 때 결과가 그리 썩 좋지 않을 수 있습니다. 여러 이유가 있겠지만 확실한건 자신의 Dataset을 잘 만들었는가에 대해 돌아 볼 필요가 있다는 것입니다.

Machine Learning은 Data에 매우 의존적이며 부정확한 Labeling Data는 모델의 성능에 악영향을 주기때문에 정확한 Labeling은 매우 중요합니다. 좋은 Data가 좋은 성능을 내는 것은 확실하기 때문이죠. 

이제 많은 사람들이 현실의 비즈니스 문제를 인공지능, Machine Learning으로 해결하려고 하고 있습니다. 그러기 위해서는 그 문제에 맞는 자신만의 Dataset이 필요하며 직접 양질의 Dataset으로 만들어야 할 것입니다.


Labeling Tool (UTTU)

반응형

'Insights > IT Trends' 카테고리의 다른 글

Midjourney 사용기 (사용법)  (0) 2022.12.21
ChatGPT 사용기 (사용법)  (0) 2022.12.20
Open Source  (0) 2021.01.29
Machine Learning  (0) 2021.01.29
Digital Transformation(DT) 알아보기  (0) 2021.01.29