최근 심층학습을 활용한 애플리케이션이 속속 등장하고 있다. 인공지능(AI) 활용의 대표적인 최신 사례로는 미국 엔비디아의 ‘GauGAN’을 꼽을 수 있다, 일종의 페인트 소프트웨어로, 바위와 호수, 나무 등을 지정해 간단히 선 처리만 하면 조건에 맞는 사진과 같은 이미지가 몇 초에 생성된다. 건축 디자이너가 건축물이나 주변의 이미지를 화상으로 그려낼 때나 AI 연구자가 자율주행 시스템의 학습을 위해 특수한 입력 화상을 만들 때 활용하는 등 다양한 가능성을 내포하고 있는 것으로 알려져 있다. IT기술 전문매체인 닛케이크로스트렌드는 “화상편집에 있어, 한껏 즐길 수 있는 매력적인 제품”이라며 도쿄대학교대학원 소속 관련 전문가의 의견을 토대로 그 매력을 지탱해주는 기술을 살펴보았다.

■ GauGAN을 이해하기위한 두 가지 관점

GauGAN는 어떤 구조로 돼 있는 것일까. 고성능 서버를 사용해 대량의 데이터를 학습시키는 것은 필요조건은 되지만, 그것만으로는 제대로 되지 않는다. 다른 연구나 애플리케이션과 마찬가지로 지금까지 축적된 심층학습 연구를 기반으로 하고 있다. 그 연구는 크게 두 가지로 나눠 접근해 볼 수 있다.

그 중 한 가지는 화상 변환이다. 이것은 화상 생성 기법의 일종으로 파악된다. 다른 하나는 정규화(normalization, 正規化) 층(層)으로서 수많은 심층학습을 성공으로 이끈 주역 중 하나 다. 현재 많은 연구에서 당연한 것처럼 사용되고 있는 기술이다.

우선, 화상 변환 관련의 유명한 연구로 ‘pix2pix’가 있다. 항공사진을 지도에 사용하는 화상으로 변환하거나, 선화(線畫)를 사진과 같은 이미지로 변환한다든지 할 수 있는, 범용성이 있는 화상변환 기법이다. pix2pix는 제너레이터(generator, 생성기)와 디스크리미네이터(discriminator, 식별장치)라는 2종류의 심층 네트워크를 사용해 화상을 생성하는 GAN(Generative Adversarial Networks, 적대적 생성 네트워크)를 기반으로 하고 있다. pix2pix는 GAN 조건부(컨디셔널) 버전으로 자리해 있다.

식별장치에는 변환 전의 화상과 ‘정확하게’ 변환한 화상의 조합을 학습시킨다. 한편, 생성기는 변환 전의 화상을 조건으로 화상을 생성시킨다. 식별장치는 생성기가 만든 화상과 변환 전의 화상의 조합이 올바른 조합인지 그 확률을 산출한다.

식별장치는 보다 정확하게 식별할 수 있도록, 또 생성기는 (가짜)조합이 식별장치에 의해 ‘진짜’라고 판정되는 화상을 생성할 수 있도록 학습을 진행한다. 이것을 반복하면 생성기는 입력 조건으로 ‘정확하게’ 변환한 화상을 출력할 수 있게 된다. 마지막으로, 조건으로 입력된 화상이 출력화상으로 변환된다.

pix2pix의 후속 버전으로 제안된 것이 ‘pix2pixHD’이다. pix2pix에서는 생성된 화상의 경계선이 흐릿해지는 단점이 있었지만, pix2pixHD보다 고화질의 화상을 지원한다. 식별장치에 의한 진위 판정을 생성 시의 여러 단계에서 실시해 학습에 사용되는 손실함수를 개선했다. 이외에도 개체의 경계를 나타내는 정보인 ‘인스턴스 바운더리 맵(instance boundary map)’의 추가를 비롯해 다양한 연구가 이루어지고 있다.

pix2pixHD의 등장으로 손으로 직접 그리는 얼굴 선화를 실제 인물의 얼굴 사진과 같은 화상으로 변환하는 등 다양한 화상 변환 작업이 가능하게 됐다. 그러나 이처럼 비약적인 진화를 이룬 pix2pixHD이라 해도, 그대로 사용해서는 GauGAN에서 실행하고 싶은 화상 변환 작업을 실현하지 못하는 경우가 있다. 그래서 GauGAN의 새로운 연구로 정규화가 나오는 것이다.

■ 심층학습을 음지에서 뒷받침하는 정규화

기계학습의 정규화라 함은 많은 경우 데이터 집합의 특징량(特徵量, 학습데이터에 어떤 특징이 있는지를 수치화한 것)의 평균을 ‘0’, 분산을 ‘1’이 되도록 변환하는 과정이다. 심층학습에서의 정규화 층은 주로 출력을 정규화한 후, 아핀변환(선형 변환과 평행 이동, 대략적으로 비유하면 1차 함수 ‘y=ax+b’의 다차원 버전)을 행한다. 심층 네트워크를 사용하여 학습할 때 입력 데이터를 그대로 학습시키면 학습이 불안정해질 수 있는데, 정규화 층을 중간에 끼우면 학습을 안정시켜 속도를 높일 수 것으로 알려져 있다.

지금까지 수많은 종류의 정규화 층이 제안됐지만, 가장 유명하면서 널리 사용되고 있는 것이 ‘배치 정규화(batch normalization)’일 것이다. 이는 입력 데이터에 대해 학습 시 배치 단위로 정규화와 아핀 변환을 행하는 것이다. 비교적 대규모의 심층학습 알고리즘에서는 당연한 것처럼 사용되는 기술이고, 심층학습의 실장을 시도해본 사람이라면 사용한 적이 있을 가능성이 높다.

GauGAN에서는 정규화 층으로 ‘SPADE(SPatially-Adaptive DEnormalization)’를 사용한다. SPADE 조건 별로 다른 매개 변수로 아핀 변환을 행하는 조건부 배치 정상화의 일종이며, 아핀 변환에서 사용되는 매개 변수를 그 전용 콘볼루션 신경망(Convolutional Neural Network, CNN)의 요구로 사용하고 있다.

기존의 배치 정규화를 이용한 pix2pixHD을 GauGAN에서 수행하려는 작업에 사용하면 정규화 층에서 조건의 정보가 손실돼버려 지정된 조건대로 변환할 수 없게 될 가능성이 있다. 예를 들어, 출력이 초원이 되도록 지정해도 넓은 바다가 출력될 수도 있다. 그래서 정규화 층에 SPADE를 사용하여 문제를 방지하는 것이다.

SPADE은 종래 제안돼 온 정규화 층에 비해 범용성이 좁아지고 있을지도 모른다. 그러나 GauGAN의 성립에 필요한 진전 작업이 진행된다고는 볼 수 있다. SPADE는 화상 관련 국제학회인 ‘CVPR(IEEE / CVF International Conference on Computer Vision and Pattern Recognition-2919)’에서 발표됐다. 사실은 pix2pix과 pix2pixHD도 이전이 CVPR에서 소개됐다.

저작권자 © 테크데일리(TechDaily) 무단전재 및 재배포 금지