나는 논문을 번역하여 정리하며 모르는 부분을 찾아서 공부한다. 보통 블로깅하기 전에 한번 빠르게 읽는데, 이 논문은 영어 번역이 어렵기보다는 사용되는 개념이 익숙하지 않았다. 초록은 아래와 같다.
NICE는 고차원 확률밀도(high-dimensional densities)를 모델링하는 딥러닝 기반 프레임워크로, 데이터의 비선형 결정론적 변환(non-linear deterministic transformation)을 학습해 단순한 factorized distribution을 따르는 잠재공간(latent space)으로 변환하는 방식이다. 저자들은 Jacobian 행렬의 행렬식을 계산하기 위해 이 변환을 파라미터화하면서도 딥런이 기반의 간단한 블록을 도입해 비선형 변환 능력을 유지시켰다. 학습의 기준은 log-likelihood를 사용했고 샘플링이 쉬우면서 생성 모델이나 이미지 복원(inpainting)으로 사용할 수도 있다.
* deterministic 결정론적 <-> stochastic 확률론적
** factorized distribution: 각 차원이 독립인 확률변수로 표현되는 분포. 확률 밀도를 개별 차원의 곱으로 분해 가능(by chatGPT)
이 논문을 이해하기 위해서는 비선형 결정론 개념과 jacobian 행렬이 가지는 의미, 저자들은 왜 jacobian 행렬이 계산 가능하도록 했는지 등을 이해해야했다.
저자들은 좋은 표현(good representation)이란 무엇인가에 대해서 질문하고 데이터의 분포에 대한 모델링이 쉬운 것이라는 관점을 말하며 논문을 시작한다. 학습기로 $h = f(x)$로 독립적인 값들의 곱으로 표현되는 새로운 공간(factorized distribution)으로 데이터를 변환하는 경우에 대해 다룬다.
학습의 기준은 log-likelihood에서 유도했다. 특히 분포$p_H$에 맞추기 위해 변수의 변화, $h = f(x)$를 고려하고 $f$가 invertible하면서 $h$의 차원이 x 공간에서 같도록 가정했다. x에서 함수 f의 야코비안 행렬 수식은 아래와 같다.
저자들은 야코비안 행렬의 행렬식(determinant)을 계산할 수 있는 함수 $f$를 선택했다. 특히 $f$의 역함수도 계산이 가능해 $p_X(x)$를 샘플링할 수 있도록 했다.
이 연구의 주요한 기여는 변형함수 f가 야코비안 행렬식의 계산용이성(easy determinant of the Jacobian)과 역함수 계산용이성(easy inverse)이다. 이는 복잡한 변형을 학습할 수 있도록 한다. 이를 위한 주요 아이디어로 $x$를 두가지 블록 $(x1, x2)$로 분리하고 두가지 식으로 나눈다. m은 복잡한 함수이다. 아래의 수식은 모든 m에 대한 야코비안 행렬식을 가지며 역으로 계산이 가능하다(아래 수식).
2장 Learning bijective transformations of continous probabilities을 보자.
저자들은 데이터 D에 대한 모수적(parametric) 확률밀도 함수 집합의 모델을 학습하는 것을 고려하였다. 학습을 통해 theta를 조정하여 적합한 확률분포를 찾는 것이다. 미분가능한 비선형 변환함수 f를 학습해 간단한 분포인 maximum likelihood로 바꾼다. 수식은 아래와 같다.
사전 분포가 독립된 차원을 이룬다면(factorial) NICE(non-linear independent components estimation)을 따르게 되고 간단하게 저자들의 생성모델은 간단한 maximun likelihood가 되어 결정론적(deterministic)인 변환이 된다. 이 과정을통해 NICE 데이터의 역변환 가능한 전처리를 학습하는 것이라 할 수 있다.
수식1의 변수 변환 공식에서 야코비안 행렬의 행렬식은 데이터가 없는 부분을 수축(contraction)하여 페널티하고 확장에 영향을 줘 데이터가 많이 존재하는 고밀도(high density)를 유도한다. Bengio 교수가 이야기 한 것처럼 표현학습은 입력의 흥미있는(interesting) 지역에 대한 양을 증가시킨다. 수식2처럼 directed graphical model로 역함수 관계가 주어지면 모델에서 샘플링하는 것이 쉽다.
ARCHITECTURE
Triangular structure
야코비안 행렬식을 구하면서 계산이 용이한 전단사(bijection) 함수의 집합을 얻기위해 모델 구조는 중요하다. 만약에 결합함수(composed transformation) 형태의 변환을 사용한다면 순전파, 역전파 학습시에는 레이어들의 결합에 대한 계산과 같다. 그리고 야코비안 행렬식은 각 층의 야코비안 행렬식의 곱(product)가 된다.
(ChatGPT에 의하면 Normalizing flows 기반 확률모델에서 확률 밀도를 변환할때 중요한 개념이 된다고 한다.)
삼각행렬(triangular matrix)는 행렬의 대각 요소를 곱하여 행렬식을 계산하기에 편리한 방식인데, 테스트시에 계산이 빠른 장점도 있다. 딥러닝에 대각행렬(diagonal matrix)를 적용하려 했으나 깊이나 비선형성등의 표현력에 한계가 있고 삼각행렬형태의 야코비안 행렬을 이용했다.
Coupling layer
저자는 전단사 변환을 위해 삼각 야코비안 행렬을 이용해 행렬실 계산을 쉽게하였다. 역변환도 단순한 연산으로 가능하게 된다. 그리고 입력 벡터를 두 부분으로 나눈다. 아래 수식에서 $y_I2$는 가역적인 g 레이어(coupling law), m 함에 의해 변환되었다.
$I_1, I_2$로 나뉘어진 상황에서 야코비안 함수는 아래와 같다. x의 변화에 대한 y의 변화는 대각요소의 곱 편미분 x_i2의 변화에 대한 y_i2의 변화와 같다.
* 야코비안 행렬은 입력 $x_I$에 대한 출력 $y_I_2$이 얼마나 변하는지를 나타냄. $f(x)$의 기울기를 일반화 한 것
이에 대한 역변환은 아래와 같다.
Additive coupling layer
계산 효율성을 위해 변환할 부분과 변환하지 않을 부분을 나누어 additive coupling law를 구성했다. 역함수 계산의 복잡도도 원함수와 달라지지 않는다. m은 신경망 모델로 d차원의 입력과 D-d 차원의 출력을 갖는다. 행렬식의 곱은 1이라 단위(unit) 야코비안 행렬식을 갖고 이는 확률밀도 함수 변환 공식이 단순해지는 효과가 있다. 곱셈 결합이나 affine coupling law도 있지만 additive 방식을 사용했다.
Combining coupling layers
더 복잡한 변환을 하기 위해 여러층을 결합시키는 방법도 있다. 하나의 coupling layer는 입력을 일부만 변환하기 때문에 모든 차원에 영향을 미치기 위해서는 최소 세개의 층이 필요하고 저자들은 네개를 사용했다.
Allowing rescale
Additive 야코비안 행렬식이 1이기 때문에, 확률밀도 계산의 변형이 없다. 최종 단계에 S 행렬을 추가하여 특정 차원이 더 많은 변화를 특정 차원에는 적은 변화를 학습하도록 한다. 수식은 아래와 같다. S가 크다는 것은 i차원이 덜 중요하다는 뜻이다. 이 과정은 PCA의 eigenspectrum과 유사하다고 한다.
확률모델? 이라는 개념이 잘 이해가 안되었다. 저자들은 사전 분포가 독립적으로 표현되는 분포(factorized)를 사용하여 계산을 쉽게 만들었다. 일반적으로 가우시안 분포나 로지스틱 분포같은 표준분포를 선택했다고 한다.
실험으로는 MNIST, TFD, SVHN, CIFAR-10 데이터셋에서 학습하고 균일한 노이즈를 추가하고 정규화 하였다. 모델은 4개의 커플링 레이어를 사용하고(ReLU 기반) 마지막 층에는 스케일링을 적용했다. 저자들은 생성모델로 이미지에서 빈부분을 채워넣는 인페인팅(inpainting) 태스크도 수행하였다. 사영된 확률 경사를 이용해 관측된 차원인 X_O를를 고정하고 히든 차원인 X_H의 log likelihood를 최대화했다. 경사하강법 업데이트 수식은 아래와 같다.
실험결과는 논문참조.
REFERENCE
https://arxiv.org/abs/1410.8516
https://ffighting.net/deep-learning-paper-review/normalizing-flow/nice/
'papers' 카테고리의 다른 글
Unsupervised Visual Representation Learning by Context Prediction (0) | 2025.03.07 |
---|---|
U-Net: Convolutional Networks for Biomedical Image Segmentation (0) | 2025.02.19 |
Fully Convolutional Networks for Semantic Segmentation (0) | 2025.02.13 |
Distilling the Knowledge in a Neural Network (0) | 2025.01.30 |
You Only Look Once: Unified, Real-Time Object Detection (0) | 2024.12.18 |