비지도 학습의 대표적인 선두주자, GAN
Written by Jung Eun
11 minute read
지도학습과 비지도학습의 궁극적인 목표 중 하나는 데이터를 기반으로 미래를 예측하는 것이다. 하지만 지도학습은 정답이 주어진 데이터만을 사용할 수 있기 때문에 사용할 수 있기 때문에 사용할 수 있는 데이터 양의 한계가 있다. 따라서 대부분의 인공지능 전문가들은 미래의 인공지능 기술은 지도학습이 아닌, 비지도학습이 선도하게 될 것이라고 전망한다. 이러한 비지도학습의 대표적인 선두주자로 Generative Adversarial Network(GAN)이 있다.
비지도학습 GAN은 원 데이터가 가지고 있는 확률 분포를 추정 인공신경망이 그 분포를 만들어 낼 수 있도록 한다는 점에서 단순한 군집화 기반의 비지도학습과 차이가 있다.
GAN은 ‘생상적 적대적 신경망의 약자로, 생성자와 식별자가 서로 경쟁(Adversarial)하며 데이터를 생성하는 모델을 의미한다. 그리고 GAN은 ‘비지도학습’ 이다.
GAN을 이해하기 위해서는 먼저 확률 분포의 개념을 알아야한다.
📌확률분포
Random Variable
)📌GAN의 개념
GAN은 판별자 D와 생성자 G로 구성되어 있다.
GAN은 판별자 D와 생성자 G가 서로의 성능을 개선해 적대적으로 경쟁해가는 모델이다.
EX)
쉽게 말해 경찰과 지폐 위조범의 대립과 같은 방식이다.
[GAN에서 학습을 통해 확률분포를 맞추어 나가는 과정 - Ian.J.Goodfellow의 'Generative Adversarial Networks' 논문 인용]
위 그래프에서 원 데이터의 확률분포에 대한 학습이 거듭 진행됨에 따라 GAN이 만들어내는 확률 분포가 거의 동일해지는 것을 확인할 수 있다. 이렇게 되면 파란색 점섬(분류자 D)는 더 이상 분류를 해도 의미가 없는 0.5라는 확률 값을 뱉어내게 된다. 이것은 동전을 던져 앞면과 뒷면을 맞추는 확률이 0.5인 것처럼 GAN에 의한 만들어진 데이터가 진짜인지 가짜인지 맞출 확률이 0.5가 되면서 분류자가 의미 없게 되는 것이다.
여기서 경찰은 분류 모델, 위조지폐범은 생성모델을 의미하며, GAN은 최대한 진짜 같은 데이터를 생성하려는 생성모델과 진짜와 가짜를 판별하려는 분류 모델이 각각 존재하여 서로 적대적 학습합니다.
적대적 학습에서 분류 모델을 먼저 학습시킨 후, 생성 모델을 학습시키는 과정에서 서로 주고 받으면서 반복 진행한다.
📌분류 모델의 학습
분류 모델을 학습시킨 다음에 학습된 분류 모델을 속이는 방향으로 생성 모델을 학습시켜야한다.
📌생성 모델의 학습
결과적으로, 생성 모델은 진짜 데이터와 완벽히 유사한 가짜 데이터를 만들 수 있게 되고 이에 따라 분류 모델은 진짜 데이터와 가짜 데이터를 구분할 수 없게 된다. 즉, GAN은 생성 모델은 분류에 성공할 확률을 낮추려 하고, 분류 모델은 분류에 성공할 확률을 높이려 하면서 서로가 서로를 경쟁적으로 발전시키는 구조를 이루고 있다.
📌GAN의 손실함수 - Minmax Problem
[첫번째 항] x~pdata(x)
[두번째 항] z~pz(z)
위 수식 속,
우선 D가 V(D,G)를 최대화하는 관점에서 생각해보자. 위 수식을 최대화하기 위해서는
즉, V(D,G)가 최대화하는 방향으로 분류자 D를 학습하고 V(D, G)를 최소화하는 방향으로 생성자를 학습하는 것을 Minmax Problem이라고 한다.
이때, 생성 모델로서의 GAN이 데이터를 우연히 만들어 내는 것인지, 데이터를 완벽히 이해하고 있는 가치 있는 모델인지 알아보는 것이 중요하다.
이를 위해 생성자로서 메커니즘을 자세히 살펴봐야한다.
📌생성자로서 메커니즘
이 결과 생성자는 학습한 딥러닝 매핑 (z → G(z))이 단순히 불연속적인 1:1 매칭이 아니라, 정확히 영상의 의미를 이해하고 영상이라는 데이터의 확률분포를 정확히 표현하고 있어서, 입력에서의 약간의 변화가 출력에서도 부드러운 변화로 표현가능하다는 놀라운 사실을 보여준다.
이러한 GAN의 놀라운 개념을 증명시켜주는 유명한 사례에는 이미지의 산술적인 연산이 있다. ‘안경을 쓴 남자’ 이미지를 생성하는 z에서 ‘안경을 쓰지 않은 남자’ 이미지의 입력인 z를 빼고 ‘안경을 쓰지 않은 여자’ 이미지에 해당하는 z를 생성자 G에 넣어주면 ‘안경을 쓴 여자’ 이미지가 아래 그림처럼 생성된다는 것을 밝혀냈다.
이는 GAN의 생성자의 결과물이 우리가 원하는 데로 마음껏 조작할 수 있다는 가능성을 확인한 것이며, 단순한 데이터의 분류로서의 이해가 아닌 새로운 것을 창조할 능력을 가지게 된 것이다.
📌GAN의 한계점
lan Goodfellow가 제안한 GAN은 근본적으로 3가지 정도의 한계를 가지고 있다.
위 한계점 중 첫 번째 한계를 극복하기 위해 GAN의 훈련 성능을 높이기 위한 다양한 연구가 진행되고 있다.
대표적인 것이 DCGAN(Deep Convolutional GAN)이다.
📌DCGAN
DCGAN의 생성자 구조도(100차원 latent vector z가 64*64 픽셀의 이미지를 생성)
이러한 구조를 통해 DCGAN은 GAN의 학습에 대한 문제점을 상당 부분 극복해내면서 주목을 받았다.
DCGAN의 등장으로 성능이 향상된 GAN을 통해 더 완벽한 가짜 데이터를 만들어내는 모델이 속속 연구됨에 따라 GAN의 활용 범위 역시 더욱 넓어지고 있다. 특히, 2017년 워싱턴대학교 연구팀은 영상 합성에 GAN을 적용하여 만든 ‘오바바 전 미국 대톡령의 가짜 영상’을 공개해 화제가 됐다. 그들은 오바마 대통령의 실제 연설에서 음성을 추출한 후, 음성에 맞게 입 모양을 생성하도로고 GAN을 학습하여 가짜 영상을 만들었다. 진짜처럼 보이는 아래 사진들은 모두 GAN을 이용해 만들어낸 가짜 영상의 일부분이다.
GAN을 통해 합성한 오바마 전 미국 대통령의 연설 영상
즉, latent vector의 산술적 연산을 통해 ‘안경을 새로 씌울 수 있는’ GAN의 근본적인 개념과 마찬가지로, 오바마의 얼굴을 만들어낸 latent vector에서 입술에 해당하는 부분만 벡터 연산을 통해 산술적으로 대체해주면 얼마든지 창조적으로 얼굴을 조작할 수 있다.
📌Real-eye-opener
이러한 GAN의 뛰어난 능력을 이용한 대표적인 사례로 페이스백에서 개발한 Real-eye-opene이 있다. 사진을 찍는 순산 실수로 눈을 감아 사진을 망친 경험이 있는 사람이면 누구나 공감할 만한 기술이다.
위 사진에서 (a)/(b)는 각각 사람이 눈을 뜨고/감고 있는 실제 사진이며, 목표는 (b)의 사진에 (a)의 논 모양을 합성하는 것이다. (c)는 단순히 포토샵을 이용해 (b)에 (a)의 눈을 합성한 결과이며, (d)는 GAN을 이용해 합성한 결과이다. (c)는 합성한 눈과 얼굴 사이의 경계가 부자연스러운데 비해 (d)는 훨씬 자연스럽고 실제 사람의 사진과 유사하다.
📌Image translation
cycleGAN을 통한 Image Translation
위 사진은 2017년 UC 버클리에서 GAN을 Image translation에 적용하기 위해 GAN 구조에 원래 이미지의 형태를 잘 유지할 수 있는 조건을 추가한 cycleGAN 모델의 결과이다.
최근 GAN은 음성신호 및 자연어 처리 등으로 영역이 확대되어 다양한 분야에 적용되며 빠르게 발전하고 있어 가장 유망한 인공신경망 알고리즘으로 곽광받는 중이다. 하지만 가장 기본적인 해결과제인 학습 안정화가 남아있다. DCGAN을 통해 어느 정도 안정된 학습을 진행할 수 있게 됐지만, 더 다양한 분야에 활용하고 정밀한 성능을 얻기 위해서는 향상된 신경망 구조 개발 등의 후속 연구가 필요해보인다. 그 외에도 GAN은 지도학습 모델을 추가 적용하여 성능을 높이고, 강화 학습 및 또 다른 비지도학습 알고리즘과 결합하는 방향으로 계속해서 발전해 나갈 것이다.
References
[새로운 인공지능 기술 GAN] ① 스스로 학습하는 인공지능
[새로운 인공지능 기술 GAN] ② GAN의 개념과 이해
[새로운 인공지능 기술 GAN] ③ GAN의 활용 사례와 발전방향