-
Flow-Based Generative Model (3) | 패스트캠퍼스 챌린지 47일차딥러닝 2022. 3. 11. 22:01
Flow 모델은 데이터와 노이즈 사이가 invertible하고 미분 가능한 함수로 이루어 졌을 때 이 성질을 사용하여 noise로 부터 data와 유사한 것을 생성해 내는 모델이다. 지난 시간에는 이러한 flow 모델 중 하나로 Afifine Flow를 살펴보았고, 이 성능이 느림을 살펴보았다. 이번 시간에는 성능이 빠른, 그래서 실제 실시간 서비스 까지 가능한 Flow 모델들을 살펴 볼 것이다.
그 첫번째는 element-wise flow이다. 이는 element-wise affine, CDF flow 등을 활용해서 flow 연산을 element 별로 따로 적용하는 것을 뜻한다. Element wise이기 때문에 Jacobian은 대각선 형태가 되어 determinant를 계산하기가 쉬워진다. 즉, 성능이 빠르다. 이러한 Flow의 대표적인 예는 NICE/RealNVP가 있다(NICE가 먼저 나왔고 RealNVP가 이를 개선한 모델이다). 이 모델은 역함수를 구하지 않아도 invertible한 노이즈와 데이터를 정의하였고, 대각선으로만 값이 있는 Jacobian을 통해 determinant를 구하기가 용이하다는 장점이 있다.
다음 방법은 Normalizing Flow이다. 이를 이해하기 위해서는 directed graphical model에 대해 알고 넘어가야 한다. 이 모델은 방향성이 있는 acayclic graph, 즉 방향을 가지지만 순환하는 사이클을 가지지 않는 그래프 형태로 flow를 구성한다. 그 예시로 Auto-regressive flow를 들 수 있는데, 이는 sampling process가 flow이면서 graph 구성이 auto-regressive한 directed graphical model에 속한다. 여기서 데이터에서 노이즈로 가는 것은 log likelihood 계산으로, 노이즈에서 데이터로 가는 것은 샘플링 연산으로 치환환될 수 있다. 이를발전시켜 Masked Autoregressive Model을 구현하기도 하였다. 이 경우, 한 번만 inference 하면 되기 때문에 연산이 빠르다는 장점이 있다. 마지막으로, Inverse Autoregressive Flow가 있는데, 이는 Autoregressive의 inverse 역시 flow임을 활용하여, 데이터에서 노이즈로를 샘플링으로, 로이즈에서 데이터로는 log likelihood 계산으로 진행하였다. 이 경우 빠른 생성이 가능해 진다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. https://bit.ly/37BpXiC
'딥러닝' 카테고리의 다른 글
Latent Variable Model (1) | 패스트캠퍼스 챌린지 49일차 (0) 2022.03.13 Flow-Based Generative Model (4) | 패스트캠퍼스 챌린지 48일차 (0) 2022.03.12 Flow-Based Generative Model (2) | 패스트캠퍼스 챌린지 46일차 (0) 2022.03.10 Flow-Based Generative Model (1) | 패스트캠퍼스 챌린지 45일차 (0) 2022.03.09 Pre-trained Big Transformers (3) | ALBERT, RoBERTa 등 | 패스트캠퍼스 챌린지 44일차 (0) 2022.03.08