1. 서론
1.1. 연구 배경
4차 산업혁명 시대의 시작을 필두로 빅데이터를 이용한 혁신 기술들이 새롭게 출현하여 주목받고 있다. 그 중에서도 심층 학습(Deep Learning)은 기존의 인공지능 분야를 혁신하며 영상, 음성, 자연어 등의 다양한 분야에서 매우 높은 성과를 거두고 있다. 인식, 분류 작업에 주로 사용되던 심층학습은 최근, 새로운 데이터를 생성하는 분야로 그 영역을 확장하고 있다.
영상 생성 모델로서의 심층 학습은 주로 인식, 분류 모델의 학습 데이터 생성에 그 목적이 있었으나 최근, 심층 신경망 기반의 생성 모델은 단순히 새로운 영상을 생성할 뿐만 아니라 영상의 스타일을 학습하여 입력 영상을 채색하거나 색상 및 질감을 변경하는 등 다양한 분야에 접목되며 그 사용 범위를 넓히고 있다.[28]
그러나 인식, 분류에 사용되는 구별 모델로서의 학습과 다르게 생성 모델을 학습시키기는 매우 까다롭다. 그 이유는 생성 모델이 저차원 벡터를 거쳐서 고차원 벡터를 생성하는 방식을 사용하기 때문이다. 따라서 생성 모델은 생성 영상간의 관계를 표현할 수 있는 중간 단계의 저차원 벡터, 즉 잠재 벡터를 구하는 과정이 선행된다. 그리고 이것은 곧, 데이터와 클래스 간의 학습이 간접적으로 이루어진다는 것을 의미한다. 구별 모델과 생성 모델의 학습 과정 차이를 그림 1.1을 통해 간략히 나타내었다.
[그림 1.1] 생성 모델과 구분 모델의 차이
기존의 구별 모델은 고차원 영상으로부터 저차원의 클래스를 직접 도출하기 때문에 입력 영상 데이터의 구성 문제가 적다. 구별 모델과 대조적으로, 생성 모델은 추후에 입력 데이터로 사용될 저차원 벡터인 잠재 벡터와 모델의 원본 영상 간의 관계를 먼저 학습한다. 그리고 잠재 벡터와 생성 영상간의 관계를 간접적으로 학습하게 되는 방식이다. 따라서 생성 모델을 구성할 때 생성 영상들 간의 관계를 표현하는 저차원 벡터를 얻는 과정이 새로운 문제로 제기되었다. 생성 모델에는 두 가지 해결해야 할 요소들이 존재한다.
그 중 첫 번째는 영상 생성의 특징 배치에 대한 정확도이다. 대표적으로, 적대적 생성 신경망(GAN: Generative Adversarial Network)[2]은 선명한 영상을 생성하지만 일부 결과물의 특징 배치가 부자연스러운 단점이 있다. 특정 목적에 부합하는 영상을 생성함에 있어 영상 활용의 신뢰도를 확보하기 위해 각 영상 생성 방법의 단점을 해결하기 위한 노력들이 계속되고 있다.[3][4]
두 번째 요소는 생성 영상의 해상도이다. 대표적으로, VAE(Variational Auto-encoder)[1]는 목표 영상의 특징 배치와 가까운 영상을 생성하지만 생성 영상이 흐릿한 단점이 있다. 자연스러운 영상을 생성하더라도 그 해상도가 너무 낮다면 영상으로서 활용 가치가 떨어진다. 그러나 생성하려는 영상의 해상도를 섣불리 높인다면 목표 벡터의 차원 또한 함께 높아지기 때문에 영상 생성의 정확도를 확보하기 까다로워진다. 따라서 기존의 생성 모델에서 고해상도 영상을 얻기 위한 연구가 활발히 이루어지고 있다.[5]
생성 모델이 채색 및 스타일 이전(Style Transfer)등, 영상 분야뿐만 아니라 번역, 음악 스타일 이전(Musical Style Transfer) 등의 데이터 생성 분야에서 좋은 성과를 거두기 위해서는 생성 모델이 실제 데이터와 유사한 데이터를 생성하도록 성능을 확보하는 것이 필수적이다. 기존의 생성 모델은 앞서 언급한 두 가지 요소를 해결하기 위해 본 논문에서는 영상 생성 모델의 성능을 향상하고 앞서 언급한 두 가지 요소를 해결하기 위한 방안을 제안한다. 영상의 특징 배치 정확도를 확보하기 위해 VAE의 영상 생성부인 디코더를 최적화하였고, 생성 영상의 선명함을 유지하며 높은 해상도를 얻기 위해 VDSR(Very Deep Super Resolution)[6] 구조에 레지듀얼 학습법(Residual Learning)[7]을 추가 적용하여 개선한 초해상도 복원 기법을 사용하였다.
1-2. 연구의 범위 및 내용
본 논문에서는 VAE와 심층 인공 신경망 기반의 초해상도 복원 기법을 이용하여 영상을 생성하는 방법을 제안한다.
VAE는 영상을 저차원 벡터로 표현하는 인코더(Encoder)부와 저차원 벡터를 영상으로 변환하는 디코더(Decoder)부로 나뉜다. 본 논문에서는 VAE의 인코더와 디코더를 동시에 학습하고 영상 생성 시, 학습된 디코더에 임의의 저차원 벡터를 입력하여 저해상도 영상을 생성한다.
고해상도 영상 생성에 주로 사용되는 계층형 적대적 생성 신경망(StackGAN)[5]의 영상 생성 계층과 해상도 개선 계층을 분리하는 아이디어에 착안하여 본 모델에서는 영상을 생성하는 VAE의 디코더 계층과 해상도를 개선하는 신경망 기반의 초해상도 복원 계층을 분리하여 구성하였다.
초해상도 복원 모델은 심층 신경망 기반의 VDSR(Very Deep Super-Resolution)[6]과 SRCNN(Super-Resolution Convolutional Neural Network)[8]의 구조를 개선하여 생성 영상의 초해상도 복원 작업에 적합하도록 설계된 모델을 사용하였다.
VAE와 초해상도 복원 모델의 계층 구조를 구성할 때 현재 심층 학습(Deep Learning)분야에서 우수한 성능을 보이고 있는 컨벌루셔널 뉴럴 네트워크(CNN: Convolutional Neural Network)를 사용하였으며 VAE의 설계에는 배치 정규화(Batch Normalization)를 적용하여 모델의 안정성을 확보하였다. 신경망 기반으로 해상도 개선을 시도할 때 나타나는 Gradient Vanishing/Exploding Gradient 문제를 해결하기 위해 레지듀얼 학습법을 적용하였다.