머신러닝 세계 최대 커뮤니티인 ‘레딧 머신러닝’(Reddit Machine Learning)에서 역대 랭킹 6위를 기록한 딥러닝 기반 이미지 생성기술이 개발자들 사이에서 큰 화제가 됐다.
이 기술은 딥러닝을 활용해 하나의 이미지만으로 머리색, 피부색, 성별, 연령대까지 바꿀 수 있단 점에서 큰 관심을 모았다.
하지만 더 화제가 된 부분은 따로 있었다. 이 기술을 주도적으로 개발한 주인공이 이제 25세에 불과한 인턴 사원이란 점이다.
화제의 주인공 최윤제 씨는 고려대학교 대학원에서 컴퓨터공학을 전공하고 있는 학생이다. 최 씨는 지난 6월 네이버의 클로바 연구 조직(Clova AI Research)의 인턴으로 참여했다.
딥러닝/AI 연구개발에 집중할 수 있는 네이버 클로바 연구조직의 인턴십 제도를 이용, 수준급 개발자들의 멘토링을 받았다. 또 다양한 현실 데이터를 갖고 충분한 GPU를 사용해 딥러닝과 AI 연구개발에 집중했다.
최윤제 씨는 인턴 기간 동안 하나의 모델로 여러 도메인 간 이미지 변환이 가능한 'StarGAN'이라는 딥러닝 기반 이미지 생성기술을 주도적으로 개발했다.
■GAN에서 한 발 더 나간 딥러닝 기반 이미지 생성기술
GAN(Generative Adversarial Network)은 상반되는 목적을 가진 두 모듈(판별망, 생성망)이 대결하는 구조를 통해 이미지 생성을 학습하는 이미지 생성 기술의 한 종류다.
이 중 판별망(Discriminator)은 주어진 이미지가 실제인지, 거짓인지 판별하는 법을 학습한다. 이를 통해 실제와 거짓 이미지를 잘 구분해 내는 것이 궁극적인 목표다.
반면 생성망(Generator)은 판별망을 속여 실제와 구분이 가지 않을 정도의 진짜 같은 이미지를 생성하도록 학습해 실제에 가까운 이미지를 만들어내는 것이 목적이다.
얼마 전 엔비디아는 ‘향상된 품질, 안전성 및 변형을 위한 GAN의 점진적 성장’이라는 논문을 'ICLR2018' 학회지에 게재해 주목을 받았다. 인공지능(AI)으로 가짜 유명인사 사진을 빠르고 정교하게 만들 수 있는 기술을 선보인 것이다.
최윤제 씨가 개발한 StarGAN은 여러 도메인 간의 이미지 변환을 하는 것에 특화된 GAN의 발전된 형태다. 유명인사들의 머리 색상, 성별, 표정들을 원하는 대로 바꿀 수 있는데, 일반적인 GAN과는 다른 구조로 학습 과정이 이뤄진다.
GAN은 앞서 설명한 대로 판별망과 생성망 두 모듈로 구성돼 있는데, StarGAN은 구성이 다소 복잡하다.
StarGAN의 a판별망은 진짜와 가짜 이미지를 구별할 뿐 아니라, 진짜 이미지에 대해 머리색과 성별과 같은 특징(Domain)들을 판별할 수 있도록 학습한다. 또 b생성망은 원본 이미지뿐 아니라, 바꾸고 싶은 특징들을 입력 값으로 받아 가짜 이미지를 생성한다. 여기에 c생성망은 자신이 생성한 가짜 이미지와 원본 이미지가 갖는 특징들을 입력 값으로 받아 다시 원본 이미지로 복원할 수 있도록 학습한다.
이 학습과정을 거쳐 생성망은 원본 이미지로부터 가짜 이미지를 생성할 때 원본 이미지의 생김새를 최대한 유지하는 방향으로 가짜 이미지를 생성할 수 있게 된다.
끝으로 d생성망은 자신이 생성한 가짜 이미지로 판별망을 속일 수 있도록 학습한다. 예를 들어 생성망이 갈색 머리를 가진 여성 이미지를 입력으로 받아 ‘흑발의 남성’ 이미지를 생성했다면, 판별망이 이 사진은 ‘진짜’고 ‘흑발의 남성’이라고 판별하도록 생성망은 학습한다. 이 같은 학습이 반복되면 생성망은 원하는 특징(그림상 Target domain)에 따라 이미지를 원하는 대로 변환할 수 있게 된다.
최윤제 씨에 따르면 기존의 GAN 방식들은 모든 이미지 도메인 쌍마다 독립적으로 서로 다른 모델들이 구축돼야 하기 때문에 여러 도메인들을 처리하기 위한 확장성이 제한돼 있었다.
반면 StarGAN은 도메인의 개수에 상관없이 하나의 모델만으로 모든 도메인을 처리할 수 있다. 이를 ‘멀티 도메인’이라 부르는데, 이처럼 여러 도메인을 동시에 변환하는 기술은 그간 GAN 관련 기술들이 해결하지 못했던 부분을 한방에 해결한 것이다.
그림에서처럼 여러 도메인들을 연결하는 것이 별 모양을 띄어 이름을 StarGAN으로 지었다는 것이 최윤제 씨의 설명이다.
■ 딥러닝 커뮤니티 사이서 화제 일으킨 ‘StarGAN’
일반인들은 이 같은 연구 성과를 이해하기 어렵고, 실제로 활용할 일도 없지만 딥러닝 관련 개발자들은 최 씨의 논문을 높이 평가했다.
GAN의 창시자인 이안 굿펠로우(Ian Goodfellow)도 자신의 트위터에 StarGAN에 대한 특징을 소개했으며, StarGAN은 머신러닝 커뮤니티인 레딧에도 역대 랭킹 6위에 이름을 올렸다.
최윤제 씨는 딥러닝 라이브러리인 파이토치(PYTORCH)로 구현된 StarGAN의 코드를 오픈소스로 공개했다. 일반 개발자들도 쉽게 사용할 수 있도록 코드의 사용법과 내부 알고리즘을 모두 담았다.
공개한 지 이틀 만에 코드 공유 사이트 깃허브(GitHub)에서 별(Star) 1천개를 돌파했으며, 현재는 1천800개가 넘는 별을 받은 상태다.
■ “한국에서 AI로 성공하고 싶다”
고려대학교 대학원에 재학 중이던 최 씨가 네이버 클로바 AI리서치 인턴 자격을 얻게된 건 딥러닝 라이브러리 파이토치의 튜토리얼을 만들어 유명세를 탔기 때문이다.
네이버 AI 인턴십 프로그램을 총괄하는 김성훈 교수의 추천으로 지난 6월 하순에 참여했고, 최종 관련 논문을 쓰겠다는 목표를 정하고 이미지 변환을 공부했다. 일주일에 이미지 변환과 관련된 논문 한편씩을 파이토치로 구현하는 과정을 4~5주간 거쳤고, 나머지 4~5주를 자신의 아이디어 기반으로 다양한 실험을 진행했다. 이 때 StarGAN의 아이디어를 얻게 돼 8월부터 논문을 쓰기 시작, 기대 이상의 성과를 얻게 됐다.
최윤제 씨는 “StarGAN은 기존의 GAN보다 이미지 품질이 좋고 확장성이 뛰어나다”며 “사진 한 장으로 여러 도메인을 만들 수 있다는 점이 특징”이라고 설명했다.
또 “네이버 클로바 연구조직에서 원격으로 GPU 지원을 받아 못해도 30배는 더 걸렸을 개발 연구 기간을 효율적으로 단축시킬 수 있었다”면서 “자유로운 출퇴근과 업무 환경 속에서 내가 하고 싶은 걸 할 수 있었던 게 네이버 AI 인턴의 최대 강점”이라고 덧붙였다.
최윤제 씨는 뒤늦게 관심을 갖기 시작한 AI 기술을 더 발전시켜 자신들의 가족뿐 아니라 주변 친구와 이웃들을 돕겠다는 계획이다. 또 사람의 일자리를 뺏는 것이 아니라 조력자 역할을 하는 AI를 개발하고 싶다는 생각이다.
관련기사
- 똑똑해진 네이버앱…“안녕, 네이버?”로 깨워요2017.12.26
- 네이버i-클로바 통합…“쇼핑, 이제는 말로 하는 시대”2017.12.26
- 네이버 '동시 통역 무선 이어폰' CES 최고상 수상2017.12.26
- 말로 다 되는 ‘보이스 퍼스트’ 세상 열릴까2017.12.26
나아가 대학원 졸업과 병역특례를 마치고, 네이버에 입사할 생각도 있냐는 질문에는 “한국에서 AI로 성공하는 선례를 남기고 싶다”는 말로 긍정적인 답변을 했다.
최 씨는 “나중에 스타트업을 하고 경제적으로 성공해 주변사람을 돕고 싶은 꿈이 있다”며 “다들 외국으로 나가려 하지만 구글이나 페이스북에 가지 않고 나 같은 개발자들을 롤 모델 삼아 네이버에 올 수 있는 환경을 만들고 싶다. 구글 페이스북도 좋은 회사지만 한국에서도 할 수 있다는 걸 보여주고 싶다”고 강조했다.