Brain’s Pick
유튜브 8M 챌린지 도전기(aka.삽질기)
2018/10/18 by 이수경 김은솔 김종석

카카오브레인이 서울대학교 장병탁 교수님 연구실 학생들(온경운, 허유정, 최성호, 이현동)과 함께 팀(KANU)을 이뤄 출전한 Youtube 8M Challenge(이하 유튜브 챌린지)에서 최종 5위에 올랐습니다. 블로그를 통해 자세한 후기를 소개하도록 한다고 했었는데요, 이에 KANU 멤버였던 카카오브레인의 김은솔 연구원과 김종석 연구원을 취재했습니다.

[ 그림 1 ] (왼쪽부터) 김은솔 연구원과 김종석 연구원

챌린지에 제출한 논문발표자료는 각각 링크를 클릭해 보실 수 있습니다.


유튜브 챌린지란?

유튜브 챌린지는 Google AI Perception 그룹에서 주최하는 대용량 비디오 분류 대회입니다. 지난해 1억 원 상금 규모로 열린 첫 대회에 전세계 600팀 이상이 참가했습니다. 올해는 총상금 2500만 원 규모로 6월부터 2달간 진행됐으며, 400여 개 팀이 참가했습니다.

이번 과제는 600만 개의 비디오 클립을 학습시켜 3,800여 개의 클래스 라벨(class label)로 분류하기였습니다. 여기에는 최종 모델 크기를 1기가바이트(GB)로 제한하는 규정이 새로 마련됐습니다. 지난해처럼 많은 수의 모델을 앙상블(ensemble)[1]하며 성능을 높이기보다는, 단일 모델만으로도 표현(representation)[2]을 잘 뽑아내는 팀을 찾으려는 목적이었던 것으로 풀이됩니다.

[ 그림 2 ] 구글이 유튜브 챌린지에서 제공한 비디오 데이터에 관한 정보


챌린지에 참가 계기와 목표

김은솔 연구원은 학위 기간에 멀티모달 순차 데이터(multimodal sequential data) 학습 및 추론을 연구했습니다. 멀티모달 순차 데이터는 이종(heterogeneous)의 시계열 데이터를 가리킵니다. 대표적으로 비디오 데이터는 이미지, 소리, 텍스트 각각의 시계열 데이터가 결합해 의미를 구성하죠. 웨어러블 기기(wearable device)를 활용한 상황인식이나 행동 분류, 혹은 비디오 질의응답(QA) 같은 작업에 이 데이터가 활용됩니다.

멀티모달 시계열 데이터를 학습하면서 비디오 데이터에 관심을 두기 시작한 김 연구원은 지난해 유튜브 챌린지가 열린다는 소식을 전해 들었습니다. 800만 개와 4000여 개의 클래스 라벨, 1.5테라바이트(TB) 크기의 방대한 데이터로 모델을 훈련시킬 수 있다는 사실에 매력을 느꼈습니다. 김 연구원은 “제약조건을 두고 모은 파일럿 데이터에서 벗어나, 유튜브 비디오처럼 실제 세상에서 만들어지는 데이터를 활용해 실용 문제를 풀어보고 싶었다”고 설명합니다.

하지만 학교에서 제공하는 자원으로는 대회에 참가하기가 어려웠습니다. 일반적인 학교 연구실의 딥러닝 연구 환경은 열악한 축에 속합니다. 컴퓨팅 성능이 떨어지고 이마저도 연구실에 놓인 컴퓨터 한 대를 연구원들이 돌아가며 사용하는 경우가 허다하죠. 새로운 주제로 연구를 진행할 때마다 개발 환경을 세팅하는 데 많은 시간을 들여야 하는 일도 부지기수입니다. 다행히 김 연구원은 브레인 클라우드의 컴퓨팅 파워를 지원받아 더 다양한 실험을 빠르게 이어나갈 수 있을 것 같다는 판단하에 유튜브 챌린지 참가를 결정했습니다.

(자세히 보기 : 브레인 클라우드)

팀을 꾸리는 데 있어서 큰 어려움은 없었습니다. 카카오브레인에서 인턴 중인 김종석 연구원 또한 챌린지 참가에 관심을 표했습니다. 여기에 더해 서울대 연구실 쪽에서도 챌린지 참가 의사를 밝혔죠. 지난 6월 초 서울대학교에서 열린 첫 모임에서 서로 인사를 나누고 진행 계획을 공유하는 기회가 마련됐습니다. 공동 연구팀은 챌린지를 통해 대용량 비디오에 대한 이해도를 높이고 비디오 분류를 위한 새로운 알고리즘을 고안하는 것을 목표 삼았습니다.


KANU가 과제를 해결한 방법

전년도 챌린지에서 발표된 모델 구조와 논문, 구글에서 제공한 데이터를 철저히 분석한 공동 연구팀은 멀티모달 데이터 학습과 멀티레이블 추론에 관한 문제를 풀고자 했습니다.

김은솔 연구원은 자신이 연구한 시간 주의 기법(temporal attention) 기법을 활용하고자 했습니다. 시간 주의는 학습에 필요한 정보를 가지고 있는 부분에 집중하고 그렇지 않은 부분은 제외하는 기술을 의미합니다. 시계열 데이터가 지나치게 세세한 정보를 저장하고 있기에 이런 기법이 나왔습니다. 현실에는 초당 프레임 수(frames per second, f/s)는 30, 편당 1시간가량 분량의 비디오가 많습니다. 그런데 이런 이미지를 모두 다 학습에 활용하기에는 효용성 측면에서 한계가 있습니다. 학습 목적에 따라서는 필요한 이미지만 취사 선택하는 결단이 필요한 이유죠.

연구팀은 이 시간 주의 기법과 서울대 연구팀이 개발한 양선형 풀링(bilinear pooling)[3] 기반 주의 기법을 조합했습니다. 김 연구원은 "주최 측에서 표현 학습(representation learning)을 더 잘할 수 있는 기발한 모델이 나왔으면 좋겠다고 주문했다”며 "새롭게 고안한 주의 기법과 이를 이용한 멀티모달 학습 알고리즘을 통해 표현을 효과적으로 학습할 거라 기대했다”고 부연했습니다.

[ 그림 3 ] 공동 연구팀이 고안한 주의(attention) 알고리즘

한편, 다중라벨 분류(multilabel classification)와 관련해서는 양쪽 연구진 모두 깊게 고민해본 적은 없었습니다. 다만 기준 모델(baseline model)[4]에서 비교적 단순하게 사용되고 있었던 만큼, 다중라벨 분류를 개선해야 큰 성능 향상을 기대할 수 있을 거라 판단했습니다.

“하나의 비디오를 설명하는 라벨이 C개가 있다고 가정했을 때 이 라벨은 의미상 서로 연관된 관계에 놓여 있다고 볼 수 있습니다. 예를 들어, (탈 것, 자동차, 세단, 벤츠)라는 데이터 라벨을 보면 분명 의미적인 연관 관계가 존재하죠. 그런데 기준 모델에서는 이 관계 정보를 잘 활용되지 못했습니다(김은솔 연구원)."

이에 공동 연구팀은 체이닝(chaining) 기반 다중라벨 분류 알고리즘을 새로 고안하기로 했습니다. (탈 것)을 먼저 예측해 이를 기반으로 다시 (자동차), 그다음 (세단)을 순차적으로 예측하는 방식이라고 보시면 됩니다.

[ 그림 4 ] 공동 연구팀이 고안한 체이닝(chaining) 알고리즘

다시 정리하자면, 연구팀은 구글에서 제공한 기준 모델과 전년도 챌린지에 제출된 모델, 비디오 분류에서 많이 쓰이는 모델 분석했습니다. 그런 뒤 자신들이 개선해야 할 부분을 3가지 기준(criteria)으로 하고 방법(methods)을 고민했습니다. 여기에 계층 정규화(layer normalization)[5], 스킵 커넥션(skip connection)[6], 드롭아웃(dropout)[7], 기울기 다듬기(gradient clipping)[8]와 같은 추가 모듈을 조합하며 실험을 반복했습니다.

[ 표 1 ] 챌린지 과제 해결을 위한 3가지 기준과 성능 향상을 위해 추가로 도입한 모듈에 관한 목록


“유튜브 챌린지, 최종 5위에 올랐습니다”

모델의 크기를 제한하는 요건이 신설된 만큼, 적은 수의 매개변수(parameter)를 가지고도 더 좋은 성능을 내는 초매개변수(hyperparameter)[9] 조정(tunning)이 이뤄졌습니다. 김종석 연구원은 “기존 비디오 데이터나 시퀀스 데이터에 주로 적용되는 NetVLAD[10], BLSTM(Bidirectional LSTM)[11]이나 Dilated CNN[12] 등 일반적으로 생각할 수 있는 간단한 모델을 사용했다”고 덧붙였습니다.

이처럼 김종석 연구원이 과제 수행에 근간이 되는 기본 실험을 충실하게 해낸 덕에, 김은솔 연구원은 앞서 소개한 시간 주의 알고리즘과 체이닝 알고리즘을 적용하는 새로운 시도를 해볼 수 있었습니다. 다만 1.5TB 규모의 데이터로 모델 하나 학습하는 데 2~3일이 걸리기에 챌린지 기간 동안 많은 모델을 테스트해볼 수 없었던 것은 아쉬웠다는 후문입니다.

“새로 고안해낸 몇 가지 아이디어를 반영하고 챌린지에 참가하자마자 바로 7등에 올랐습니다. 성능 지표를 신경 써가며 심혈을 기울이지 않을 수가 없는 기대 이상의 성과였죠. 챌린지 기간 동안 10등 내외의 순위를 기록하다가 챌린지 막판에는 15등으로 내려갔습니다. 이에 앙상블 등 여러 가지 기술을 적용해 소수점 네 번째 자릿수까지 성능을 올리는 인고의 과정 끝에 10등 안에 드는 성과를 낼 수 있었습니다.(김은솔 연구원).”

[ 그림 5 ] 리더보드(leaderboard) 캡처 화면

높은 성능을 내는 데 있어서 앙상블이 미치는 영향이 매우 큽니다. 앙상블 하는 모델의 개수를 늘리면 늘릴수록 성능이 올라갈 수밖에 없는 구조를 띱니다. 작년 챌린지에서 상위권을 차지한 일부 팀이 많게는 50개의 모델을 앙상블한 이유가 바로 여기에 있죠. 면밀히 따져 보자면 앙상블은 모델의 성능을 약간 더 높이려는 목적에서 미세조정(fine tuning)[13]한 것에 가깝기 때문에 데이터를 잘 이해했다고 보기는 어렵습니다. 그래서 주최 측에서 모델 크기에 제한을 둔 거죠.

공동 연구팀은 규정을 숙지하고 이를 특별히 신경 쓴 덕분에 유효한 모델을 제출할 수 있었습니다. 김은솔 연구원은 “상위권 4팀이 규정을 따르지 않아 탈락했다는 이야기를 전해 들었다”며 “챌린지 마감 시점 당시 9등이었던 저희 팀은 최종적으로 5등에 오르게 됐다”고 말했습니다.

[ 그림 6 ]왼쪽부터 Paul Natsev 매니저(구글), 김종석 연구원, 김은솔 연구원(카카오브레인), 허유정, 최성호, 온경운(서울대학교), 이준석 연구원(구글)이 기념사진을 촬영하고 있다.


“최적의 알고리즘을 만드는 건 매우 고된 작업이죠"

아이디어를 내고, 알고리즘으로 정립하고, 실험하면서 오류를 잡아내고, 이 알고리즘에 포함된 파라미터, 구조 등 여러 요소 간 최적의 조합을 찾아내 좋은 성능을 내는 과정은 시간이 매우 오래 걸립니다.

“새로운 알고리즘을 개발한다는 원대한 꿈은 누구에게나 있습니다. 그러나 높은 성적을 내면서도 기발하고 참신한 알고리즘을 제시하는 일은 생각보다 어렵습니다. 좋은 성능을 내는 알고리즘을 만드는 데 많은 시간이 걸리기 때문입니다. 특히 시한이 정해진 챌린지에서는 이 실험 과정을 찬찬히 되짚어보기가 더욱 어렵죠(김은솔 연구원).”

지난해 챌린지에서 좋은 성과를 거둔 모델과 비교했을 때 더 좋은 것을 만들어내기도 쉽지 않았습니다. 최적의 파라미터 조합을 찾지 못했더라도 지난해 좋은 성과를 거둔 모델만 돌려도 일정 수준 이상의 성능을 낼 수 있었기 때문입니다.

“모든 요소가 톱니바퀴 돌듯이 확실하게 맞아떨어져야 한다는 점에서 딥러닝 실험은 항상 어렵습니다. 데이터 전처리에서 완벽성을 기해야 함은 물론, 구현된 모델에도 버그가 없어야 하죠. 아울러 모델을 훈련할 때 적절한 학습률(learning rate)도 갖춰야 합니다. 초매개변수 설정에 따라서는 학습이 전혀 안될 수도 있기 때문입니다. 자체적으로 만든 알고리즘이 목표한 성능에 도달하지 못하면 우선 잘못 생각한 부분이 있는지, 개선할 부분이 있는지 고민합니다. 그럼에도 불구, 목표한 성능을 내지 못하면 완전히 새로운 접근 방법을 고민해야 합니다. 좌절감은 이 고민의 시간과 비례해서 커지죠(김종석 연구원)."


향후 연구 계획과 방향

카카오브레인은 이번 챌린지를 통해 유튜브 영상을 대상으로 멀티라벨 분류 연구를 진행할 수 있었습니다. 물론 한계가 있었습니다. 자체 개발한 알고리즘이 비디오를 어떻게 이해하는지 알 수 없었고, 주어진 비디오에 대해 개략적인 정보만 알아낼 수 있었기 때문입니다. 연구진은 향후 알고리즘이 이해한 비디오의 내용을 기호(symbolic) 형태로 출력하는 알고리즘 개발과 더불어 영상에서 발생하는 이벤트를 세밀하게 탐지하는 기술을 개발하는 데 매진한다는 계획입니다.


참고
[1] 독립적으로 학습시킨 여러 개의 모델을 결합해 최종 결과를 내는 방법. 보통은 다수결의 원칙에 따라 예측 결과를 결정한다.
[2] 피처(feature)라고 부르기도 한다.
[3] 멀티모달 사이 외적 연산을 적용, 상호 작용(interaction)을 고려해 풍부한 표현(rich representation)을 구성하는 기법
[4] 보통 개발 대회 주최자는 자신이 제시한 데이터 또는 문제가 합리적인지, 풀리는 문제인지를 먼저 확인하고 나서 이를 외부에 공개한다. 이때 문제 해결에 필요한 기본적인 모델을 코드 형태로 제공하는데, 이를 기준 모델이라고 한다.
[5] 중간 은닉층(hidden layer)의 출력을 정규화하는 기법
[6] 중간 계층을 건너뛰는 연결을 추가해 오류를 효율적으로 전파(propergate)할 수 있는 구조
[7] 같은 정보를 학습하거나 아무런 정보도 학습하지 않는 등의 과적합(overfitting)을 방지하기 위함이다. 학습 알고리즘에서 특정 비율의 뉴런을 무작위로 작동하지 않은 상태로 학습을 수행한다.
[8] 기울기 폭발(gradient explosion)을 방지하고자 이 값에 최댓값 또는 최솟값을 설정한다.
[9] 개발자가 머신러닝 알고리즘에서 직접 조정하는 값
[10] 은닉 표현(hidden representation)이 비슷한 이미지 프레임을 그룹핑한 뒤 이 그룹 정보를 활용해 비디오의 표현을 나타내는 방식
[11] LSTM을 양방향(정방향, 역방향)으로 추정하는 방식
[12] CNN의 컨볼루션 층에서는 작은 이미지 영역인 커널(kernel)을 큰 이미지 위에 빙빙 돌려가면서(convolve) 각각 다른 특징 활성값(activation value)를 얻는다. 이처럼 적은 범위만 볼 수 있는 기존 CNN의 한계를 해소하고자 커설 아이의 간격을 넓혀 더 많은 범위의 이미지를 볼 수 있도록 한다.
[13] 모델의 파라미터를 미세하게 조정하는 행위
이 글을 쓴 사람들
samantha.lee
이수경 | samantha.lee@kakaobrain.com
2016년 3월 알파고와 이세돌 9단이 펼치는 세기의 대결을 두 눈으로 목도한 이후 인공지능을 제대로 공부해봐야겠다고 결심했습니다. 인공지능 본진이자 연구소인 카카오브레인으로 걸어들어온 이유죠. 인공지능 기술과 이로 인해 바뀔 미래 사회를 다루는 글을 통해 사람들과 소통하고자 합니다.
epsilon.kim
김은솔 | epsilon.kim@kakaobrain.com
사람의 뇌를 닮은 기계학습 알고리즘을 만들고자, 인지과학, 뇌과학, 기계학습, 인공지능 기술을 (넓고 얕게) 공부했습니다. 실제 생활에서 수집한 비정형화 시계열 데이터 모델링을 연구한 경험을 바탕으로, 카카오브레인에서는 대용량 비디오 데이터를 분석하고 있습니다. 인간의 삶에 도움이 되는 인공지능 기술을 만들고자 오늘도 술 한잔 먹고 힘내려고 해요!
oz.mig
김종석 | oz.mig@kakaobrain.com
‘인공지능'에 치명적인 매력을 느끼며 딥러닝 공부에 뛰어들었습니다. 빠르게 흐르는 학계의 물결 속에서 카카오브레인이라는 멋진 배에 올라탔습니다. 인공지능이 비디오를 사람처럼 볼 수 있도록 하는 연구를 합니다. 인류와 인공지능이 희로애락을 같이 느낄 세상을 그리고자 합니다.