-
Flow-Based Generative Model (2) | 패스트캠퍼스 챌린지 46일차딥러닝 2022. 3. 10. 21:08
Flow 생성 모델은 데이터로 부터 invertible하고 미분 가능한 노이즈로의 매핑으로부터 역함수를 취해 원래 데이터를 근사해 내는 방법이다. 이를 학습하는 과정은 여타 모델과 마찬가지로 최대 가능도 추정을 사용한다. 이 때, 확률은 노이즈의 역함수 값 x의 pdf(확률밀도함수)로, 이 확률의 총 적분값은 노이즈의 총 적분값과 같은 1이 된다. 여기에서 확률의 수식을 구할 수 있다. 이 때, change of variable 규칙에 의해 함수의 Jacobian 행렬의 값을 대각선으로 곲한 determinant 값으로 이 값을 표현할 수 있다.
이러한 Flow는 여러가지 sequential한 연산으로 구성될 수 있다. 즉, 한 번에 데이터에서 노이즈 까지의 flow로 가는 대신 여러번의 flow 함수를 거쳐 노이즈로 갈 수 있는 것이다. 이 때, 모든 함수는 invertible하고 미분 가능해야 한다. 그렇다면 노이즈로부터 역함수 연산을 여러번 취해 데이터를 복구해 낼 수 있다. 이렇게 Flow를 쪼개서 표현하는 것응ㄹ composition of flows/flows of transformation이라 부르는데, 이를 통해 모델이 여러가지 형태로 변환될 수 있으므로 expressiveness를 높일 수 있다. 이러한 flow의 성능은 변환 행렬의 invertible 여부와 더불어 Jacobian determinanat의 계산이 얼마나 쉬운가와 연관되어 있다.
이러한 Flow 모델은 여러가지 방법으로 구현될 수 있따. 그 중 첫번째로 Affine Flow(Multivariate Gaussian Flow)를 살펴보면 affine transformation을 기반으로 한 flow이다. 이 떄, f의 Jacobian은 행렬 A의 역행렬이 되는데, 행렬 역함수 연산은 Big O가 O(n^3)으로 매우 값이 비싼 축에 속한다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다. https://bit.ly/37BpXiC
'딥러닝' 카테고리의 다른 글
Flow-Based Generative Model (4) | 패스트캠퍼스 챌린지 48일차 (0) 2022.03.12 Flow-Based Generative Model (3) | 패스트캠퍼스 챌린지 47일차 (0) 2022.03.11 Flow-Based Generative Model (1) | 패스트캠퍼스 챌린지 45일차 (0) 2022.03.09 Pre-trained Big Transformers (3) | ALBERT, RoBERTa 등 | 패스트캠퍼스 챌린지 44일차 (0) 2022.03.08 Pre-trained Big Transformers (2) | GPT-3, BERT | 패스트캠퍼스 챌린지 43일차 (0) 2022.03.07