brunch

You can make anything
by writing

C.S.Lewis

by Tak Yeon Lee 이탁연 Oct 31. 2018

Design for AI: 학습 데이터의 생산  

Re-design of an Image Annotation Tool

인공지능 개발 과정에서 디자이너의 역량을 발휘할 수 있는 시점 중 하나는 "학습 데이터의 생산"입니다. 학습 데이터 인간의 행태에서 추출되고, 디자이너는 인터페이스를 통해서 사용자의 행위를 특정 방향으로 유도할 수 있거든요. 사례로 제가 예전에 Crowdflower (현 Figure Eight) 라는 데이터 생성 전문회사에 온사이트 인터뷰를 갔을 때 받았던 문제를 공유하고자 합니다. 문제의 원본은 https://github.com/rmunro/annotation_imagenet에서 다운 받을 수 있습니다. 


문제의 배경

어떤 회사가 대량의 스포츠 관련 사진을 분류하는 모델을 만들려 합니다. 아래와 같은 사진이 주어졌을 때,  Valleyball이라는 태그가 맞게 붙어야 하죠.  회사의 사진 DB에는 스포츠 관련 사진이 아닌 경우도 있는데, 그것들도 가려내려 합니다. 개별 사진에는 TensorFlow ImageNet모델로 추출한 태그가 붙어있지만, 그 태그가 잘못되었을 가능성도 큽니다. 그래서 이 회사는 Amazon Mechanical Turk에서 수 천명의 사람을 고용해 각각의 이미지에 붙은 태그가 정확한지를 검수하려고 합니다.  

"Valleyball"이라는 라벨이 붙어야 함 

디자이너의 손길을 거치지 않은 기본 UI가 아래처럼 주어집니다. 

TensorFlow ImageNet을 써서 추출된 "warplane, military plane"태그가 붙어있습니다. 태그가 맞게 붙었으니, Yes를 눌러야 합니다. 

고용된 사용자들은 사진을 보고, Yes (태그가 정확한 경우) / No (태그가 잘못되었을 경우) / Not Clear (판단 내리기 어려운 경우) 버튼 중 하나를 누르면 다음 사진으로 넘어가겠죠. 적은 비용으로 모델의 성능을 가장 많이 향상 시킬 수 있는 데이터를 모으려면, 이 UI를 어떻게 개선해야 할까요?

 

개선안

저는 약 4시간을 투자해서 기본 UI의 개선을 해 보았습니다.  


1. 버튼과 질문 UI의 개선 

버튼이 너무 작아서 빠르고 반복적인 작업에 적합하지 않음

사진의 크기에 따라 버튼의 위치가 계속 달라짐

현재 (Yes - No - Not Clear)에서 No가 가운데 있는게 이상함. Not clear는 정의상 Yes와 No 사이에 있거나, 아예 분리되어 있는게 더 의미상 맞음

Yes나 No는 사용자들로 하여금 "질문이 뭐였지?"라고 헷갈릴수 있게 함. "Matching", "Not Matching"가이 더 직관적일듯. 

Likert 스케일을 써서 받으면 사용자의 노력 대비 더 정밀한 정보를 얻을 수 있음. 

리디자인 결과. 질문과 선택지를 사진 위쪽에 배치해서 사진의 크기가 달라도 UI의 위치는 고정되도록 했음.  


2. 학습 데이터의 효율 향상 

사용자가 No라고 했을 때, 그 이유를 캐묻자. 예를 들면, "태그가 애매하게 들어맞음", "사진에서 주요 물체를 알아보기가 어려움", 혹은 "사진의 중심부가 아니라 주변에 있는 물체의 태그임". 

사용자가 No라고 했을 때, "그럼 어떤 태그를 다는게 맞을까?"라고 물어보자

리디자인 결과. 사용자가 Not Clear를 선택했을 때 모델을 향상시키기 위한 추가 정보를 요구함  


3. 스포츠 사진이 아닌 것을 미리 걸르기 

회사는 스포츠 관련 사진에만 관심이 있기 때문에 굳이 스포츠가 아닌 사진을 테스트에 포함시킬 필요가 없죠. Sport / Not Sport 필터링을 먼저 하고 나서 메인 테스트를 하는게 훨씬 효과적일 수 있습니다.

필터링 테스크는 한 화면에 엄청 많은 사진을 보여줘도 괜찮습니다. 만일 스포츠 관련 사진이 절대 다수라면, 스포츠와 관련 없는 사진을 고르도록 태스크를 뒤집는 것도 고려해봄직 함.  

사전 필터링 UI.  메인 테스트 전에 스포츠 관련 사진만 추려낼 수 있습니다.

   

4. 그 외 개선안  

현재 UI는 ImageNet에서 추출한 태그의 모든 정보를 사용하지 않습니다. 회사에서 필요로 하는 모델의 스펙에 따라, 학습 데이터는 top-5 태그를 각각 검증하거나, 가장 정확한 태그를 고르게 하거나, 심지어 직접 타이핑 해서 넣을 수 있게 허용할 수도 있죠. 

사진을 하나 하나 테스크할 수도 있지만, Intruder test라는 테크닉을 쓸 수도 있습니다. "탁구공을 포함하지 않은 사진을 찾으세요"라고 하고 여러 사진을 보여주는데, 그 중 탁구공을 포함하지 않은 이미지가 하나 침투해 있는 거죠. 복수의 사용자가 항상 올바른 사진 (i.e., 탁구공 포함하지 않은 사진) 을 고른다면, 그 외 사진들에서 탁구공 태그는 정확했다고 할 수 있습니다. 이 방식의 장점이라면, 사용자들이 피곤해져서 아무 버튼이나 누르는 경우를 효과적으로 검출해 낼 수 있습니다.       


결론

학습 데이터를 만들기 위한 Microtask UI는 전통적인 인터페이스 디자인과 일맥 상통하지만, 특유의 요구 사항과 제약점을 고려해야 합니다. 먼저 태스크의 단위가 아주 작고 반복적이기 때문에,극단적인 효율성을 요구하구요. 사용자가 익숙해지는데 걸리는 시간도 최소화되어야 합니다. 때로는 사용자의 만족과 인공지능 모델의 성능 향상을 통한 사업의 성공이 서로 상충할 수도 있습니다. 그래서 가끔 사용자는 마치 공장 노동자처럼 다루어지기도 합니다. 하지만 그렇다고 너무 불편한 인터페이스나 어려운 태스크를 주면, 데이터의 품질은 급격하게 낮아지고, 심지어 폭동이 발생 (i.e., 클레임이 들어오거나 Turkernation같은 곳에 부정적인 리뷰를 올립니다!) 하기도 하죠. 위에서 제가 제시한 리디자인 안들도 직접 돌려보면 개선점이 쏟아져 나올게 뻔해요.  하지만 그런 시행 착오를 거쳐서 안정적으로 돌아가는 플랫폼이 완성되기만 하면, 고퀄의 학습 데이터가 쭉쭉 뽑아져 나올 수 있습니다. 디자이너는 인공지능 모델을 만드는데 매우 중요한 역할을 맡게 됩니다.   

작가의 이전글 인공지능 디자이너를 위한 조언 2
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari