1. VAE(Variational Autoencoder)VAE는 확률적 생성 모델의 대표 주자이다. 단순한 Autoencoder는 입력을 압축했다가 복원하는 데 집중하지만, VAE는 잠재 공간(latent space)을 확률 분포로 학습한다는 점이 다르다. AutoEncoder는 Image를 Encoding 하여 Embedding Vector 즉 latent vector를 만든 후 이를 Decoder의 input으로 넣어 이미지를 reconstruction 한다. VAE는 이러한 AutoEncoder 방식을 사용하여 input 데이터의 분포 자체를 학습하여 데이터를 생성한다. 구조 Encoder: 입력 이미지를 평균과 분산(μ, σ²)으로 표현Decoder: 샘플링된 latent vector로부터..
1. StyleGANStyleGAN(A Style-Based Generator Architecture for Generative Adversarial Networks), CVPR 2019에 소개되었으며 추후 다양한 후속 연구 및 생성 모델 연구에 큰 기여를 한 논문이다. PGGAN의 논문의 저자들이 progressive growing의 아이디어와 함게 style transfer의 architecture로부터 영감을 받아 혁신적인 generator를 고안해냈다. 1-1 PGGAN GAN을 이용해 고해상도 이미지를 생성하는 것은 쉽지 않다. 따라서 latent vector에서 한번에 고해상도의 이미지를 생성하기보다는, 낮은 해상도의 이미지(4x4)를 생성하는 것부터 학습해서 점진적으로(progressive..
conditional GAN은 많은 발전을 해왔지만 SOTA 모델(SAGAN)조차 아직 실제 이미지(ImageNet)와 차이가 크며, 실제 이미지의 Inception Score인 233에 비교해 SAGAN은 52.5의 Inception Score에 그친다. 우선 BigGAN의 구조가 되는 SAGAN에 대해 설명한다.1. SAGAN(Self-Attention GAN)SAGAN은 convolution을 self-attention으로 대체해 long-range dependency 모델링이 가능하도록 제안된 모델이다. 전통적인 GAN들은 낮은 해상도 feature map들 안 공간적인 지역 포인트만을 함수로 쓰는 고해상도 디테일을 생성한다. 그러나 SAGAN을 통해 모든 feature 지역들로부터 단서들을 ..
1. PGGAN(Progressive Growing of GAN)PGGAN은 고해상도의 이미지를 생성하기 위해 제안된 획기적인 기술이다. 이미지를 해상도 별로 학습시켜 비교적 고해상도에서도 안정적인 학습이 가능하다. 왜 Progressive하게 학습시킬까? 일반 GAN을 곧장 고해상도로 학습하면 Discriminator은 초반부터 세밀한 픽셀 잡음까지 구분하려고 해서 학습이 불안정 해지며, Generator은 전역 구조를 배우기도 전에 세부 노이즈에 과적합이 된다. 따라서 PGGAN를 통해 먼저 큰 모양부터 질감의 순서로 배우게 하여 안정화와 성능을 동시에 얻는다. PGGAN에는 크게 4가지 아이디어가 있다, 1. Progressive Growing : 점진적으로 해상도를 높여가며 학습2. Pixel ..
1. CycleGANimage to image translation이란 이미지 데이터셋을 사용하여 input 이미지와 output 이미지를 mapping하는 것을 목표로 하는 생성 모델의 한 분야다. 대표적 모델로 Pix-2-Pix, Cycle GAN, Style GAN 등이 있다. Pix-2-Pix가 처음 등장하였고 이후 Pix-2-Pix의 단점을 해결하기 위해 Cycle GAN이 등장하였다. 또한 Style GAN은 Cycle GAN을 베이스로 하여 개발되었다. 이해를 돕기 위해 간단하게 Pix-2-Pix에 대해 먼저 알아본다. 1-1 Pix-2-Pix Pix2Pix는 image를 image로 변환하도록 generator을 학습한다. 예를 들어, generator의 입력값으로 스케치 그림을 입력하면..
1. WGAN(Wasserstein GAN)WGAN, 즉 Wasserstein GAN은 전통적인 GAN(Generative Adversarial Network)의 학습 안정성 문제를 해결하기 위해 제안된 모델이다. WGAN의 가장 중요한 특징은 목적 함수와 판별자(discriminator)를 수정하여, 생성자(generator)와 판별자 사이의 경쟁이 더 안정적으로 이루어지도록 한 점에 있다. WGAN의 핵심 개념은 세 가지가 있다,1. Wasserstein 거리 사용 2. Discriminator의 마지막 층에서 시그모이드 활성화 함수 제거, critic으로 기능( 크리틱의 목적은 실제 이미지에 대해서는 높은 값을, 생성된 이미지에 대해서는 낮은 값을 출력한다. 즉, critic은 단순히 '진짜/가짜'..
1. Conditional GAN (cGAN) Conditional GAN(CGAN)은 GAN의 확장 모델로, 데이터 생성 시 조건을 입력으로 추가해 보다 제어 가능한 생성 결과를 만들어낸다. 위 수식은 기존 GAN의 수식이다. 반면 CGAN의 경우, G와 D가 추가 정보 y">y라는 조건이 붙는다면 조건부 생성모델을 만들 수 있다. y">y는 어떤 보조 정보라도 될 수 있는데, class label이나 다른 modality의 데이터 등이다. 우리는 y">y를 G와 D의 input layer에 추가로 같이 집어넣음으로써 이를 수행할 수 있다. G에서는 input noise pz(z)">pz(z)와 y">y가 합쳐진 형태가 된다. 이 적대적 학습 framework는 이 hidden representati..
1. DCGAN(Deep Convolution GAN)DCGAN은 위 GAN에서 직접적으로 파생된 모델로, 생성자와 구분자에서 합성곱 신경망(convolution)과 전치 합성곱 신경망(convolution-transpose)을 사용했다는 것이 차이점이다. 이 모델을 사용한 후 화질이 개선되었고, 간단하면서도 잘 작동한다. CNN을 사용해서 Discriminator를 구현하고, deconvolutional network(fearure map 크기 증가)를 통해 Generator를 만든 모델이다. Fully connected layer와 Pooling layer를 최대한 배제하고 Strided Convolution과 Transposed Convolution으로 네트워크 구조를 만들었다. Fully con..
1. GAN(Generative Adversarial Networks) GAN(생성적 적대 신경망)은 2014년 Ian Goodfellow에 의해 발표된 기술로, 딥러닝 분야에서 매우 중요한 위치를 차지하고 있다. GAN은 구조 자체의 이해가 어렵지 않기 때문에, 다양한 분야에서 많은 연구자들에 의해 연구가 되어왔다. 아래 이미지는 GAN이 제시된 2014년부터 2020년까지 GAN을 주제로 한 논문 수를 나타내는 차트로, 상당히 빠른 속도로 많은 사람들에게 연구가 되어오고 있음을 확인할 수 있다. 1-1 GAN 기본 개념 위에 그림은 GAN을 설명할 때 자주 등장하는 그림이다. 지폐 위조범은 최대한 진짜같은 지폐를 만들어 경찰을 속이고, 경찰은 위조지폐범이 만들어낸 지폐와 진짜 지폐를 대조하면서 둘을..
1. OCR(Optical Character Recognition)1-1 OCR이란?OCR(광학 문자 인식)은 자동화된 데이터 추출을 사용하여 텍스트 이미지를 기계가 읽을 수 있는 형식으로 빠르게 변환하는 기술이다. OCR 모델의 구조는 text detection(글자 위치 찾기)와 text recognition(어떤 글자 인지를 인식) 이렇게 두 개로 구성되어있다. OCR은 스캐너를 사용하여 문서의 물리적 형태를 편집 가능한 디지털 텍스트로 재처리한다. 그 순서는 아래와 같다 : 이미지 획득 : 모든 문서 페이지를 복사한 다음 OCR 엔진이 디지털 문서를 2색 또는 흑백 버전으로 변환 후, 밝은 영역과 어두운 영역 분석한다. 전처리 : 디지털 이미지를 정리하여 외부 픽셀을 제거한다. 텍스트 인식 : 어..