AI

High-Resolution Image Synthesis with Latent Diffusion Models

규동이이 2024. 1. 11. 15:37

Distortion-Rate trade-off: 정보이론에서 비롯된 개념이다. 딥러닝에서 input x, label y, prediction y^가 존재한다고 할 때, 결국 학습은 x를 y^으로 가장 효율적이게 '압축' 한다고 생각할 수 있다. 이때 신호 압축과 마찬가지로, 특정한 최대 왜곡수치 D' 이하에서 Rate'(bits/dim - 하나의 dimension을 표현하는데 필요한 bit의 개수)가 최소가 되는 값을 찾아야 한다고 생각할 수 있다.

‘정보’를 ‘놀라움’의 척도로 바라보면 된다. 어떤 사건이 ‘놀랍다’면, 그 사건을 통해서 우리는 많은 ‘정보’를 얻은 것으로 간주할 수 있다. 기존 사고의 흐름에 큰 도전이 되 었기 때문이다. 또 어떤 사건이 얼마나 ‘놀라운’지는, 그 확률로 표현할 수 있다. 높은 확률을 갖고 있는 사건은 ‘덜 놀라운’ 것이고, 비교적 낮은 확률의 사건은 ‘더 놀라운’ 것으로 볼 수 있기 때문이다. 예를 들어 어제 일기예보에서 오늘 비가 올 확률이 100%라고 예측을 했다면, 오늘 비가 내린 것은 ‘놀라움’이 0이고, ‘정보’도 0이다. 반 면 어제 1%의 확률로 오늘 눈이 온다고 했는데, 오늘 눈이 아닌 비가 내렸다면 이는 매우 놀라운 일이며, 이 일로 인해 우리가 얻은 정보량도 그만큼 많다고 볼 수 있다. X Y D R 이런 맥락에서, 우리는 ‘정보’라는 것을 일종의 양함수 (positive function) 라고 바 라볼 수 있다: 여기서 는 사건의 발생 확률 을 ‘놀라움’, 또는 ‘정보(량)’으로 변환해주는 함수라고 생각하면 되겠다. 이 때 가 자연스레 만족해야하는 성질 다섯 가지가 있다: 1. 연속적 (정의역 에서) 2. 음이 아님 (non-negative) 3. 단조 감소 4. 5. Additive (i.e. 어느 두 독립사건의 확률이 각각 일 때, 성립) 그리고 위 다섯 가지 조건을 모두 만족하는 함수는, log 1/p 뿐임이 알려져 있다. 따라서 이제부턴 어떤 사건의 ‘정보(량)’을 알고 싶으면, 를 구하면 된다. 이 때 가 사건 자신의 정보를 알려준다는 의미에서 self-information 이라고 부르기도 한다. 

기존 generative model들은 bit rate가 작고 distortion이 큰 학습을 진행했다. bit rate가 작은부분들은 사람의 눈에는 별로 중요하지 않은 부분들이라 stable diffusion은 bit rate가 보다 큰 perceptual compression에 초점을 맞춘 diffusion model을 제안한다.

왜 bit rate가 작은 곳에 초점을 맞춘 학습을 했는가? image pixel 값을 하나하나 맞추어야 하기 때문에.

stable diffusion은 개개의 pixel 값 말고 image의 latent embedding vector를 예측하는 것으로 발전시켰다.

 

Perceptual Loss

또 다른 방법으로 Perceptual loss가 있다.

이 방식은 output과 ground-truth 이미지 간 high-level perceptural features의 차이를 evaluate한다.

high-level features는 흔히 잘 훈련된 분류 모델(ex. VGG)의 hidden layers를 사용하여 추출되게 된다.

이렇게 학습하는 방식은 output image가 ground-truth image와 비슷한 high-level feature를 갖도록 만들기 때문에 여러 artifacts를 완화하고 perceptual quality를 높여주는 효과를 가져온다.

하지만 이 방식에도 문제점이 있다. 먼저 well-trained classification network에 dependable하다는 것이고, 두번째는 이러한 network의 features가 classification에  focus되어 학습된 결과이므로 몇 몇 image transformation task에서 잘 동작하지 않을 수 있다는 것이다. 

 

text data 활용을 위해 image latent vector와 (pretrained llm을 활용해 vector화 된)text latent vector 사이의 cross attention을 활용.

stable diffusion에서는 text data 말고 다른 condition들(semantic map, images, representations)도 cross attention을 통해 넣을 수 있다.

super resolution(저해상도 -> 고해상도 변환), Inpainting(특정부분 수정 및 채워넣기)도 가능.

vector quantization = vector x를 f로 mapping해서 양자화(여러개의 집합으로 나누기)하는 것이다.

downsample - pooling 등의 기법을 이용해서 해상도를 줄이는 것

논문에서는 vector quantization에서 이전의 1D flatten화 대신 2D에 mild한 압축만을 적용해 latent vector의 내부 구조를 더 잘 살릴 수 있다고 한다.