2017년 3월 8일 수요일

GAN 그리고 Unsupervised Learning

이 글은 테크M에 기고한 글을 백업한 글입니다. 

머신러닝 분야 세계 최고 학회중 하나인 NIPS에서 중국 바이두의  인공지능연구소장, 앤드류 응은 최근 머신러닝 트렌드를 이렇게 진단했다.
“이미지 인식, 음성 인식 등 이제까지 구글 같은 거대기업에 돈을 벌어 준 딥러닝 기술은 컨볼루셔널 신경망(CNN)이나 재귀신경망(RNN) 같은 지도학습 기술이었습니다. 하지만 올해 나온 많은 논문들이 보여주는 것처럼, 미래의 딥러닝을 이끌 기술은 생성적 적대신경망(GAN)과 같은 비지도 학습이 그 주인공이 될 것입니다.”
이러한 견해를 보이는 것은 응 교수만이 아니다. 많은 딥러닝 연구자들이 꾸준히 제기하고 있는 이야기이기도 하다. 지도학습은 많은 데이터의 지원을 받는 환경에서는  좋은 성능을 내지만, 그것은 미래 인공지능이 다뤄야 할 ‘경험의 진정한 이해’와는 큰 차이가 있다는 것이다. 
“내가 다시 창조할 수 없는 것은 내가 이해한 것이 아니다.”      (물리학자 리처드 파인만) 
많은 인공지능 전문가들이 미래를 이끌 것으로 전망하는 비지도 학습은 생성 모델(generative model)과 긴밀히 연결돼 있다. 기존의 CNN과 RNN은 이미지를 구별하고 음성을 인식하지만 이미지나 음성을 만들지는 못했다.
하지만 미래의 생성 모델을 활용하면 직접 이미지와 음성을 만들어낼 수 있다. 단순히 알아보기만 하던 것에서 한 발 나아가 직접 그림을 그릴 수 있는 것으로의 진보, 그 중심에는 2014년 처음 발표된 GAN이 있다.
GAN의 개발자이자 오픈AI의 수석연구원인 이안 굿 펠로우. 그는 캐나다 몬트리올대학 벤지오 교수의 애제자이기도 하다.
GAN의 개발자이자 오픈AI의 수석연구원인 이안 굿 펠로우. 그는 캐나다 몬트리올대학 벤지오 교수의 애제자이기도 하다.

지도 학습과 생성 모델

그럼 우선 지도학습(supervised learning)과 비지도 학습(unsupervised learning)의 차이를 알아보자. 
지금까지 머신러닝의 주류를 이뤘던  지도학습은 데이터와 라벨(이름)의 짝을 집중 학습하는 방법이었다. 컴퓨터를 아이라고 가정하면, 여러 개의 사물을 보여주면서  ‘이것은 개’, ‘이것은 고양이’, ‘이것은 식탁’ 하고 사물 X와 이름 Y의 쌍을 지속적으로 학습시키는 것이다.
이렇게 수많은 (X, Y)의 함수를 알게 되면 전혀 알지 못하는 미지의 사물 X에 대해서도 적절한 예측 Y를 내놓을 수 있게 된다. 구글과 페이스북 등에서 사용하는 얼굴인식이나 사물인식, 음성인식 모두 이러한 지도학습 방법을 이용한 기술들이었다. 

하지만 이 방법에는 한계가 있다. 누군가 일일이 각 사물의 ‘정답(label)’을 알려 줘야 만 학습이 가능하기 때문이다. 페이스북에 인물사진을 올리면 사진에 있는 얼굴이 누구인지 이용자들이 직접 써 넣도록 유도하는 데, 이러한 라벨링은 결국 특정 인물을 인식하게 하는 큰 원동력이 된다. 반대로 얘기하자면, 이러한 라벨링이 없다면 지식을 얻을 수 없고 학습도 할 수 없다는 게 현재 지도학습의 한계다. 

하지만 아이가 사물들을 알아가는 방식을 생각해보자.  아이들은 꼭 누가 일일이 그 사물이 무엇인지 알려줘야만 사물에 대해 배우는 것은 아니다. 다양한 모양의 장난감 블록을 주고 가지고 놀게 하면, 아이는 스스로 네모와 세모, 동그라미의 차이를 터득하게 된다. 
궁극적인 인공지능을 구현하려면 이렇게 누군가 정답을 가르쳐주지 않더라도 인공지능 스스로 사물의 특성을 파악할 수 있는 능력이 있어야 한다. 이렇게 라벨 없이 데이터 그 자체에서 지식을 얻는 방법을 비지도 학습이라고 한다. 

비지도 학습이 미래 기술로서 주목 받는 이유는, 세상에는 (라벨링이 된 데이터의 양에 비해) 엄청나게 많은 라벨 없는 데이터들이 존재하기 때문이다. 사진만 해도 그렇다. 우리는 수많은 사진을 찍지만 사진 속 얼굴이 누구이고 이 사물이 무엇인지 라벨링을 해주는 경우는 극소수에 불과하다.
지금까지 지도학습 기반의 딥러닝 기술이 이렇게 발전할 수 있었던 것도 이미지넷이나 CIFAR 같은 라벨링이 잘 돼 있는 공공데이터의 존재 덕분이었다. 그런데 이 딥러닝의 혜택을 실제 세계에 옮겨오려면 (세상에 존재하는 수많은 라벨 없는 데이터들을 이용하려면) 비지도 학습의 발전이 없으면 불가능하다.

그 미래 기술의 물꼬를 튼 기술이 바로 GAN(Generative Adversarial Network) 이었다. 이전에도 제한 볼츠만 머신(RBM)이나 자동 엔코더 같은 비지도 학습 방법이 있기는 했다. 하지만 이 방법은 지도학습을 위한 사전 처리의 용도 외에는 활용하기가 쉽지 않았다.
하지만  ‘지도학습 같은 비지도 학습’인  GAN은 놀라운 성능과 함께 지도학습 못지 않은 활용도를 보여 머신러닝 연구의  중심에 섰다. 페이스북의 얀 르쿤이 “지난 10년간 있었던 머신러닝 연구 중 가장 재미있는 아이디어”라고 평했던 GAN은 대체 어떤 기술일까?

모조품과의 경쟁을 통해 배운다

GAN은 그동안 좋은 성과를 냈던 지도학습의 훈련방법을 비지도 학습에도 적용했다. ‘정답’에 대한 정보가 없는 상황에서 어떻게 지도학습의 방법을 차용했을까?

먼저 최대한 진짜 같은 샘플을 만드는 것을 목표로 한다. (앞의 ‘이해한다는 것은 새로 창조할 수 있다는 말이다’란 명언을 기억하자.) 비지도 학습법은 실제 데이터로 대강의 함수를 표현하고 이를 다시 적당히 일반화 해 새 데이터를 만들 수는 있었다.
예를 들어 10살과 20살의 얼굴 모습이 있다면, 이 변화과정을 적절히 모델링 해 15살의 얼굴을 만드는 것이다. 하지만 이 방법은 확률모델에 많은 가정을 해야 하고 다양한 데이터들이 평균점을 향해 섞여 결과적으로는 ‘뭉개진(blurry)’ 이미지를 만들어낸다는 단점을 가지고 있었다.

하지만 GAN은 ‘만드는 사람(generator)’과 ‘구별하는 사람(discriminator)’이 서로 경쟁하는 게임으로 바꿔 모델 학습을 시도했다. 비유를 하자면 화폐위조범(=generator)은 최대한 진짜 같은 화폐를 만들기 위해 노력하고, 감별사(=discriminator)는 진짜와 가짜 화폐를 구분하기 위해 노력함으로써 서로의 발전을 꾀하는 것이다(라이벌은 서로를 발전시킨다!).

GAN은 생성자(모조품 제작자)와 구별자(진품 감별사) 사이의 경쟁적 발전을 통해 좀 더 진짜에 가까운 샘플을 만든다.
GAN은 생성자(모조품 제작자)와 구별자(진품 감별사) 사이의 경쟁적 발전을 통해 좀 더 진짜에 가까운 샘플을 만든다.
여기서 구별하는 사람은 기존 지도학습 방법의 ‘인식 기술’과 같은 기술을 사용한다. 따라서 구별하는 사람을 속이려면 매우 좋은 품질의 위조품을 만들어야 하고, 결과적으로 스스로가 뛰어난 만드는 사람이 되는 학습을 하게 되는 것이다.
‘학습’을 ‘경쟁게임’으로 바꾼 GAN의 아이디어는 기존 비지도 학습의 난제를 피하면서도 지도학습의 기술들을 활용할 수 있는 매우 똑똑한 아이디어라 할 수 있다.

이 결과, GAN은 기존의 생성모델처럼 뭉개지지 않는, 더 생생한 이미지들을 만들어 낼 수 있었다. 뿐만 아니라, 사용자가 입력한 조건에 가장 가까운 샘플을 생성할 수도 있다. 사용자가 대충 스케치를 하면 진짜 같은 그림을 생성해주는 이미지 편집의 기능도 구현할 수 있게 해준 것이다. 또 흐려진 이미지에 대해 ‘진짜 같아지는 학습’을 통해 더욱 선명한 이미지로 복원하는 기능을 제공했고, 위성사진을 지도사진으로 변환하는 등 사진과 사진의 전환(image to image transfer)도 가능하게 해주었다.

GAN을 이용한 이미지 복원(위)과 GAN을 이용한 사진과 사진의 전환 (아래)
GAN을 이용한 이미지 복원(위)과 GAN을 이용한 사진과 사진의 전환 (아래)

DC-GAN을 이용해 생성된 침실 이미지들. 모두 실제 사진들 같아 보이지만 몇몇 사진들은 논리적으로 맞지 않는 침실모습을 갖고 있다.
DC-GAN을 이용해 생성된 침실 이미지들. 모두 실제 사진들 같아 보이지만 몇몇 사진들은 논리적으로 맞지 않는 침실모습을 갖고 있다.


GAN과 인공지능의 미래

GAN의 등장으로 인해 인공지능은 ‘수동적 인식’에서 벗어나 ‘능동적 행동’을 할 수 있는 인공지능으로 진일보하고 있다. 이안 굿 펠로우가 GAN을 발표한지 채 2년 밖에 되지 않았지만, GAN은 이미지 생성부터 편집, 변환, 복원 등 다양한 어플리케이션에서 그 효용을 보여주고 있다. 2017년에는 이미지 데이터를 넘어 음성이나 자연어 등의 데이터에도 GAN이 적용될 전망이다. 이를 이용하면 음성 생성과 편집, 음성 변환이나 복원 등도 가능하지 않을까 기대해본다.
이론적으로는 ‘학습’에서 ‘경쟁게임’으로 전환하여 푸는 방식이 매우 흥미로운 접근법이었는데, 최적화를 기반으로 한 학습에 치우쳐 있던 머신러닝의 기법들이 ‘경쟁게임’을 활용해 어떠한 방향으로 발전해 나갈지 기대가 크다.

GAN의 가장 큰 약점은 만드는 쪽과 구별하는 쪽을 균형 있게 훈련시키기가 기존의 최적화에 비해 매우 어렵다는 것이다. 게임을 하는 두 사람 간의 실력 차가 크다면 서로의 발전을 기대하기는 어렵다.  GAN의 학습도 이러한 ‘실력 차’에 의한 불균형이 종종 발생해 훈련을 어렵게 하곤 한다. 
하지만 현재 이를 피하기 위한 여러 가지 트릭이 제시되고 있으며, 이와 함께 적대적 게임관계의 효율적 수렴을 위한 이론적 연구가 앞으로 많이 진행될 전망이다. 또 아직까지 정적인 데이터인 이미지에만 주로 사용되는 GAN을 음성이나 자연어 등에 확장시키려면 순서(sequence) 데이터를 고려한 알고리즘의 변형이 필요할 것으로 보인다. 

인공지능은 GAN을 통해 수동적 존재에서 능동적 존재로의 첫 발을 내디뎠다. 비록 아직은 데이터로 재미있는 변화들을 만들어내는 수준에 불과하지만, 이들을 통해 스스로 새로운 지식을 쌓고 학습하는데(self-learning)까지 얼마가 더 걸릴지는 모르는 일이다. 
인간이 데이터를 제공하는 것에서 벗어나 스스로 환경과 상호작용하며 경험을 축적하는 능동적 인공지능을 개발하려면 지식을 탐닉하는 에이전트가 필요하다. 이를 위해선 현재 게임에 많이 적용되고 있는 강화학습(reinforcement learning)과의 결합이 필요해 보인다.