Jihoon Kim

Deep Unsupervised Learning using Nonequilibrium Thermodynamics

2022년 현재, 생성모델로 diffusion model 인상적인 결과를 보여주며 관련 연구논문이 많이 발표되고 있다. Diffusion model쪽과 직접적으로 관련된 연구를 진행하면서 관련 연구들을 정리하는 차원에서 Diffusion model과 score-based model 논문들을 정리하고자 한다. 여기서 다루는 논문은 비교적 초기에 제시된 논문으로서 이 주제를 다루는데 있어 처음으로 읽기에 좋은 논문이라 생각되어 먼저 정리하고자 한다.

Score-based Generative Model

학습데이터의 data distribution을 학습하여 “실제 있을법한” 데이터를 만들어낼 수 있는 모델을 생성모델(Generative model)이라고하며 이를 달성하기 위해 다양한 방법이 제시되었다. GAN, VAE, Normalizing Flow는 모두 생성모델을 위한 framework으로 각각 발전하며 더 자연스럽고 사실같은 데이터를 생성하기 위해 연구되고 있다. 이 글은 Yang Song이 1저자로 참여한 논문인 “Generative Modeling by Estimating Gradients of the Data Distribution"을 기반으로 한다. 다만 논문리뷰의 형식으로 다루는 것이 아니라 생성모델에 대해 정리하면서 제시된 score-based generative model의 배경과 내용을 전반적으로 파악하는데 집중하고자 한다. 이 글은 Yang Song의 지도교수인 Stefano Ermon교수의 세미나를 기반으로 하였다.

Neural Discrete Representation Learning

VQ-VAE를 제시한 논문으로 이후 생성모델들에 큰 영향을 준 논문이다. 이름에서 알 수 있는 것 처럼 Variational AutoEncoder (VAE)를 기반으로 하고 있는데, 생성모델 관점에서 GAN은 등장이후 엄청나게 다양한 모델들이 파생되면 놀라운 가능성을 보여주었고 Normalizing flow나 Diffusion model과 같은 새로운 방식의 생성모델이 제시되는 반면 VAE는 상대적으로 답보하고 있는 상황이었다. VAE는 여전히 data distribution을 explicit하게 추론한다는 측면에서 유용한 성질이 있었지만 타 방식에 비해 생성품질이 떨어지는 문제가 있었다. 하지만 VQ-VAE를 기반으로 이러한 단점이 크게 개선되었고 이후에 Transformer 모델들과 결합되면서 multi-modal generative model에서 놀라운 결과들을 보여주는데 핵심적인 역할을 하게 된다.

An Image Is Worth 16x16 Words: Transformers for Image Recognition at Scale

자연어처리분야에서 Transformer 아키텍쳐가 등장하며 비약적인 발전이 있어왔다. Vision Transformer (ViT)로 알려진 이 논문은 2021년에 공개되어 Transformer를 어떻게 비전분야에 도입할 수 있는지를 보여주었다. 저자는 논문에서 가능한한 원래의 Transformer, 즉 언어모델을 처리하는 Transformer를 많이 변형하지 않고 사용하려고 했다고 한다. 그렇다면 어떻게 언어를 처리하던 Transformer를 이미지를 처리하는데 사용하였는지 알아보도록 하자.

nn.Embedding

Lookup table은 자료구조로 자주 사용되기도 하지만 그 자체로 학습에 사용되어야 하는 경우도 있다. 대표적인 것이 언어모델에서 token을 만드는 과정이다. 자주 사용되는 만큼 당연히 torch에서도 이를 지원하며 이는 nn.Embedding을 사용하면 된다.

Dictionaries and Hashmaps: Frequency Queries

Key-value 관계를 정의할 때 dictionary를 사용한다. 풀려고 하는 문제가 item들에 대한 정보를 모두 가지고 있어야 한다면 list 와 같은 자료형을 사용할 수 있겠으나 출현빈도와 같은 경우에는 dictionary 를 사용해 효율적으로 처리할 수 있다.

4.5 Singular Vector Decomposition

Singular Vector Decomposition (SVD)는 보통 선형대수학 수업교재의 후반부에 나온다. 앞서 다룬 Eigendecomposition의 일반화된 형태일뿐만 아니라 선형대수학의 기본적인 개념을 종합해서 사용하기 때문일 것이다.

4.4 Eigendecomposition and Diagonalization

행렬의 eigenvalue와 eigenvector를 아는 것은 행렬이 만드는 변환에 대한 다양한 정보를 제공한다. 따라서 어떠한 행렬을 eigenvalue와 eigenvector를 볼 수 있는 형태로 분해할 수 있다면 유용하게 사용할 수 있을 것이다. 여기서는 정사각행렬에 적용할 수 있는 eigendecomposition에 대해 알아본다.

Don't Decay the Learning Rate, Increase the Batch Size

모델의 학습과정에서 learning rate을 줄이는 것은 실용적으로 자주 사용되는 테크닉이다. 직관적으로는 시간이 지나면서 optimal point에 가까워질 것이므로 학습 step을 줄이는 것으로 볼 수 있다. 이러한 상황에서 이 논문은 batch size를 키우는 것이 동일한 효과가 있음을 다양한 실험으로 보여준다.

4.3 Cholesky Decomposition

모든 연산이 그렇지는 않지만 스칼라에서 사용하는 많은 연산들은 행렬의 연산에 대응한다. 역원, 항등원은 물론 제곱과 같은 연산도 행렬에 대응하는 개념이 있다. 그렇다면 제곱근은 어떨까? 한 행렬을 같은 두 행렬의 곱으로 분해할 수 있을까? 이것이 Cholesky decomposition이 다루는 주제이다.