옴니어스 AI 연구원은 무슨 일을 할까?
ICML(International Conference on Machine Learning)은 NeurIPS와 함께 머신러닝 및 인공지능 분야에서 가장 권위 있는 국제 학회입니다. 1980년부터 개최되어 온 ICML은 오는 9일부터 캘리포니아 롱비치에서 2019년의 일주일 일정을 시작하는데요. 옴니어스 공동 창업자 윤훈님께서 이번 ICML에 <Learning What and Where to Transfer>를 주제로 발표합니다.
명성 높은 학회에서 발표되는 이번 논문에는 어떤 내용이 담겨 있는지, 대학원에서 트랜스퍼 러닝을 연구하다 회사를 창업해 패션 AI를 만들게 된 계기는 무엇인지 이번 윤훈님 인터뷰에서 확인하실 수 있습니다.
“윤훈님, 우선 축하드려요!
연구팀 업무에 ICML 발표 준비까지 한창 바쁘시겠어요.”
감사합니다:) 발표 준비는 거의 끝났고 저는 이번 주 일요일에 출국 예정이에요. 바쁘지만 대학원 시절보다는 괜찮은 것 같아요.
“이번에 발표하실 <Learning What and Where to Transfer>에 대해
논문 1저자로서 내용을 살짝 알려주실 수 있을까요?”
머신러닝 모델을 만들려면 데이터셋으로 원하는 행동을 하도록 모델을 학습시켜야 하는데요. 데이터셋에는 입력 데이터 (예: 이미지)는 물론이고 데이터에 대해 학습을 원하는 정답 데이터를 라벨링해야 해요. 우리 옴니어스에서 ‘이 이미지의 데이터는 코트’, ‘이 이미지의 데이터는 점퍼’라고 라벨링하는 것처럼요. AI의 학습을 위해서는 데이터셋이 엄청 많이 필요해서 돈과 시간이 많이 드는데요. 그걸 줄이기 위한 연구 중 하나가 트랜스퍼 러닝(Transfer learning, 전이 학습)입니다.
트랜스퍼 러닝은 큰 데이터셋으로 학습된 모델의 knowledge을 트랜스퍼(전이)해서 상대적으로 적은 데이터셋을 가진 새로운 태스크에서 학습을 잘 시켜 좋은 성능을 낼 수 있게 만들도록 도와줍니다. 이전에는 트랜스퍼 러닝을 위해 기존 지식을 어떻게 트랜스퍼할지 사람이 정해줘야 했었어요. 트랜스퍼를 주고받는 두 모델의 구조가 같아야 하는 제약이 있거나, 구조가 다른 경우에 트랜스퍼를 하더라도 knowledge의 형태를 정해 줘야 한다거나, 어떤 레이어끼리 트랜스퍼할지 정해줘야 한다거나... 이런 것들을 사람이 실험을 통해 찾아야 했죠. 상당히 번거로운 작업인데요.
(이미지 출처 : Jang, Y., Lee, H., Hwang, S., and Shin, J. Learning What and Where to Transfer, ICML 2019)
이런 문제를 해결하기 위해 메타러닝(meta-learning)이라는 방법을 활용했어요. 메타러닝, learning to learn이라고 불리는 이 방법은 학습을 위한 학습, 예를 들면 학습에 사용되는 학습도구를 학습합니다. 즉, 학습과정에서 사람이 정해야 하는 것까지 모델을 학습하여 결정하게 하는데요. 이번 연구에서는 어떤 형태의 knowledge를 트랜스퍼할지, 어떤 레이어에서 어떤 레이어를 트랜스퍼할지 등을 사람이 아닌 학습된 모델이 정하게 만드는 것이 주요 contribution입니다.
윤훈님의 <Learning What and Where to Transfer> 간단 소개
Deep learning model을 학습시키기 위해서는 큰 데이터셋이 필요합니다. 이를 줄이기 위한 방법들 중 하나가 ‘transfer learning’입니다. 이 연구는 meta-learning 기반의 transfer method을 제안하여, 임의의 소스/타겟 task, 모델 구조 사이의 효율적인 transfer을 가능하게 하였습니다. 이를 위해 meta-network을 통하여 새로운 타겟 task의 학습에 유용한 소스의 knowledge를 선택적으로 transfer할 수 있게 하였고, 그러한 meta-network을 빠르게 학습하기 위한 방법을 제안하였습니다.
“이번 연구는 언제부터 진행하신 건가요? 석/박사 과정 때부터?”
저는 2013년부터 석사를 시작했고 2015년에 박사과정을 들어갔어요. 이 연구는 2018년 초부터 진행했었고요.
트랜스퍼와 관련된 연구는 박사 초창기부터 진행했었는데 그때 결과가 잘 나오지 않아 방황의 시절을 보냈어요. 주제를 바꿔 볼까 하다가, 그래도 하던 걸 계속해보자는 교수님의 조언을 듣고 트랜스퍼라는 주제에서 시도해볼 새로운 방향을 계속 고민했어요. 그러다 메타러닝 관련 최근 논문들과 트렌드를 접하면서 이걸 트랜스퍼 러닝에 접목시키면 좋을 것 같아 2018년 초부터 잡기 시작했죠.
“혹시 그 전에는 어떤 연구를 하셨나요?”
제가 석사 과정에 있던 2013년부터 딥러닝 인기가 시작되었어요. 당시에는 Human pose estimation이라는 사람 자세를 찾는 분야가 딥러닝을 통해 접근한 경우가 많지 않아 연구를 진행해 보려 했었어요. 그런데 아쉽게도 구글에서 먼저 냈더라고요. 그래서 구글에서 낸 논문을 바탕으로 그것을 개선하는 연구를 진행했죠. 석사 2년차 때와 박사 초창기엔 형원님(옴니어스 연구원, Co-founder) 및 다른 연구원 분들과 함께 이미지넷 대회(ImageNet Challenge)에 도전했었고요. 그때 트랜스퍼 러닝을 연구했었고, 앞서 말씀드렸듯 방황하다 돌아왔습니다!
“학부 때 물리를 전공하셨다고 들었는데요,
어떻게 인공지능에 관심을 가지게 되셨나요?”
우리 학교는 2학년 때 전공을 정해요. 처음에는 물리학과를 선택했고 3학년 때쯤 AI에 관심이 생겨 전산학과를 복수전공했어요. 대학원은 전자과를 선택해서 AI 연구를 계속했고요.
과학에 관심이 생긴 계기는 평범해요. 중딩 때 교양 과학책을 재밌게 읽으면서 물리와 컴퓨터를 좋아하게 됐어요. 그중 하나였던 물리를 대학 전공으로 선택했던 거고요. 좋은 교수님들을 만나 재밌게 공부했고, 당시에는 세상에 변화를 주는 의미 있는 연구를 하면서 학계에 남아 있으면 좋겠다 생각하기도 했었어요.
그러던 차에 기술 관련 창업가의 세미나를 듣게 되었어요. 주제까지 정확히 기억나진 않지만, 이야기를 들으면서 ‘회사를 하면서 세상을 바꿀 기술로 제품을 만들면서 세상에 더 직접적으로 이로운, 변화를 주는 일을 할 수도 있겠구나’ 하고 생각이 바뀌었어요. 그때 전산학과를 복전해야겠다는 결심이 섰고 3학년 때부터 시작했죠.
학교마다 다르겠지만 카이스트에서는 대학원을 선택하기 전에 연구실을 경험해 볼 기회가 많아요. 저도 대학원을 정하기 전에 물리학과와 머신러닝 연구실을 모두 다녀 보았는데요. 운이 좋아 좋은 교수님들을 만났고 바이오메디컬 이미징과 키넥트를 이용한 영상처리를 각각 연구했었어요. 그때 경험을 바탕으로 저에게 좀 더 맞는 머신러닝 쪽을 선택하게 되었습니다.
(윤훈님이 연구했던 대학원 연구실 건물 사진)
“회사와 연구실에서의 연구는 어떤 차이점이 있을까요?”
연구실에서는 논문을 쓰는 걸 가장 큰 목표로 두고 일해요. 논문에서는 모델의 성능도 중요하지만 논문을 읽는 사람에게 새로운 무언가를 전달할 수 있어야 해요. 성능이 좋지 않더라도 새로운 발견이나 증명이 있었다면 논문을 실을 수 있어서, 성능도 중요하지만 novelty를 갖는 연구에 조금 더 초점을 맞추게 되는 것 같아요. 하지만 회사에서는 무엇보다도 시장이 만족할 만한 성능을 내는 게 중요하잖아요. 그래서 번거롭지만 해야 하는 일들이 있어요. 제 경우에는 연구실에 있을 때보다 모델을 많이 튜닝하고, 데이터셋도 어떤 정해진 데이터셋을 쓰는 게 아니라 직접 수집하고 가공하고 학습에 사용하기 때문에 데이터셋 자체를 보는 일이 더 많구요. 논문에 실릴만한 내용은 아니지만, 성능을 좋게 하기 위해 필요한 여러 방법들을 합쳐서 적용하는 경우도 많아요.
“윤훈님께서는 어떤 점 때문에 회사에서 연구하는 것을 선택하셨나요?
회사에서 연구하는 것의 장점은 무엇인가요?”
앞서 말씀드렸던 것처럼 학부 때 전산과 복전을 시작하면서 스타트업을 창업하거나, 회사에 들어가는 걸 고려하게 되었어요. 많은 사람들이 일상생활에 사용하는 제품을 만들고 사회에 긍정적인 변화를 만들어보는 것을 목표로 하고 있었거든요.
이 과정에서 머신러닝 모델을 실제 활용 가능한 수준으로 완성도 있게 만드는 과정을 거치고 있는데, 어려울 때도 있지만 재미있게 일하고 있습니다. 제가 하는 일이 업무에 바로 반영되고 결과도 빠르게 나오는 점이 재밌기도 하고요. 실제 누군가가 사용하는 제품에 들어가는 기술을 만들고 그에 대한 피드백이 바로바로 오는 점도 재미있어요. 회사에서는 장기 목표(일이 년 정도)와 단기 목표(몇 주에서 몇 달 정도)를 함께 고려하며 일하고 있는데요. 단기 목표로 제품의 성능을 높일 수 있는 기술들을 적용하고 성과를 확인하는 게 특히 재밌어요. 이렇게 열심히 만든 제품을 사람들이 실제로 이용하고, 이에 따라 만들어지는 긍정적인 변화도 직접 보고 싶고요.
“옴니어스에서는 어떤 주제의 연구를 진행하고 계신가요?
연구팀 리더로서 맡고 계신 다른 일도 있으신가요?”
우리 연구팀에서는 옴니어스 패션 AI에 항상 사용되는 detector, classifier를 주로 연구하고 있어요. 그중에서도 classifier를 개선하기 위해 MTL 모델 활용을 실험하는 등 세부 연구들을 진행 중이고요. 전처리를 효과적으로 할 수 있는 연구도 하고 있고, 옷의 카라나 어깨 디테일 등 중요한 랜드마크 포인트를 찾아 디테일하게 분류하는 걸 연구하는 분도 계시고요.
저는 요즘 기존에 연구팀의 업무 효율을 낮추었던 부분들을 개선하려 노력하고 있습니다. 개발팀과 함께 했던 QA를 연구팀에서 독자적으로 진행할 수 있게 해 연구속도를 향상시켰고, 백엔드 쪽과 엮여 있는 모델 배포의 연결고리를 끊어 백엔드와 모델단이 자유롭게 서로 작업을 할 수 있게 했어요. 최근엔 연구팀 시간을 많이 소비하는 모델 튜닝 작업 시간을 단축하기 위해서 하이퍼파라미터 튜닝을 일정 부분 자동화하기 위한 작업을 준철님과 진행 중이고요.
ML 회사에서는 인프라가 굉장히 중요한데, 이런 부분이 어느 정도 정립된 개발 쪽과 다르게 ML 쪽에서는 파이프라인이 조금 부족한 것 같아요. 팀 업무와 제품이 만들어지는 과정의 효율성을 높이는 것이 지금의 목표예요. 처음 하는 일이라 그런지 재밌네요! 좋은 경험을 재밌게 하고 있습니다.
“연구원으로서 본인이 지향하는 목표가 있다면 말씀해 주시겠어요?”
거시적인 목표는 ML을 이용해서 좋은 제품을 만드는 데 기여하는 일을 하는 것입니다. 이번 제품도 그렇고 나중에 다른 일을 하게 되더라도요. 구체적인 ML engineer/researcher로서 저의 정체성, 커리어에 대한 것은 지금도 계속 고민 중이긴 해요.
커리어적으로 머신러닝 리서쳐와 엔지니어 중 어느 쪽이 저와 더 맞을까 고민하고 있어요. 요즘은 엔지니어링 쪽 일을 하는데 이것도 재밌는 것 같아서요. 저희 회사 규모가 아직은 작다 보니 ML 연구와 엔지니어링 업무가 완전히 분리되지 않고 일을 함께 하는 분이 대부분인데요. 회사가 더 커지면서 두 직무가 분리되고 집중할 영역을 선택할 수 있을 때 어떤 걸 더 하고 싶을지, 더 잘할 수 있을지, 그때를 대비해 어떤 공부를 계속해 나갈지 고민이고요. 아직 회사에서의 경험이 많지 않기 때문에 열심히 배우면서 꾸준히 방향성에 대해 생각하며 일하고 있습니다.
요즘은 앞서 말씀드렸던 인프라 구축에 관한 걸 공부하는데 재밌어요. 앞으로 회사의 제품이 늘어날 거고 그에 맞는 연구 플랜도 세워야 하니까 재영님(CEO), 준철님(CTO), 형원님(Co-founder)은 물론 팀원 분들과 이야기하면서 맞춰 보고 있습니다.
“회사가 커지고 있다는 건 팀원분을 뽑고 있다는 이야기이기도 하죠!
연구팀도 지금 채용 중이잖아요, 어떤 분이 들어오시면 좋을까요?”
일반적인 이야기이지만, 연구실에서는 논문을 쓰는 데 활용하는 벤치마크 데이터셋이 정해져 있고 그걸로 연구를 진행하잖아요. 저희는 데이터를 직접 수집하고 들여다봐야 해요. 문제 자체가 명확하지 않은 경우도 많기 때문에 문제를 formulation 하고 해결하는 과정을 잘 해내실 수 있는 분, 즐길 수 있는 분을 찾고 있어요. 대학원 석사 이상의 과정을 밟아 ML 경력이 있는 분이나 회사에서 비슷한 경력을 가진 분이면 좋을 것 같아요. ML 엔지니어로 함께 재밌는 연구를 할 수 있다면 좋겠습니다!