[시계열데이터를 위해] 신기한 논문

논문과 졸업과제로 한동안 리뷰 올리기를 쉬었다. 이번에 읽은 논문은 Phydnet과 Phycell을 제안한 것으로, unsupervised video prediction을 위한 방법이다. 이미지 관련 시계열 데이터를 다루는 데에 실제로 쓸 수 있을 것 같다. 또한 편미분방정식을 다층 CNN구조로 구할 수 있다는 이론을 토대로 알고리즘을 구현한 것으로 보인다. 이에 관한 논문도 읽어볼 예정이다.

Disentangling Physical Dynamics from Unknown Factors for Unsupervised Video Prediction

본 논문이 제안한 것은 two-branch architecture로, unknown complementary information으로 편미분방정식을 풀었다. 전체적인 구조를 간단히 보자면 다음과 같이 정리할 수 있다. 전반적인논문 전반적인 모델의 구조는 seq2seq로 이루어져 있다. 논문에서는 latent space(잠재공간)을 H로 정의했고, 여기서 physical dynamics(왼쪽 branch에서 다룰 것)와 residual factor(오른쪽 branch이 다룰 것)가 선형적으로 분리될 수 있다고 가정한다. H_p는 모델의 왼쪽인 physical dynamics를, H_r은 모델의 오른쪽인 residual information을 추출하는 역할을 한다. 왼쪽 모델에서 논문은 PhyCell이라는 새로운 recurrent physical cell을 고안했다.
먼저 왼쪽 모델을 살펴보자. PhyCell은 모델 파라미터 수를 억제하기 위해 physical constraint를 이용하고, 학습을 정규화하며 일반화를 향상시킨다.식은 다음과 같은데, h(t,x)의 미분값이 physical predictor와 correction term의 합으로 정의됨을 볼 수 있다. physical predictor는 잠재적 역학을 모델링한 것이고, correction은 잠재 상태와 input의 상호작용을 모델링한 것이다. phycell 설명 phycell 설명 phycell 설명

오일러공식 dh(t)/dt = h(t+1) - h(t)을 이용해 위 공식을 이산화할 수 있는데, 이를 정리하면 다음과 같은 식을 도출할 수 있다. phycell 설명 여기서 E(u_t)는 입력에 대한 encoding 값, ~h(t+1)은 h(t)에 physical predictor(Conv를 이용해 도출한 h(t)의 편미분값)을 더한 것이다. 이부분이 진짜 신기한데, 관련 논문도 읽어봐야겠다. K_t는 칼만 gain인데, 이것도 신기하게 CNN으로 뽑는다. 공식은 아래와 같다.논문에서 모델이 prediction만 할 경우 K ==0으로 둬서 physical predictor에만 의존하게 한다고 한다. phycell 설명 전체적인 phycell 그림은 아래와 같다. assimilation(동화) 부분이 식(7)의 correction 이라 보면 된다. phycell 설명
오른쪽 branch는 ConvLSTM으로 이미지의 위치를 학습한다고 생각하면 되는데, 비교적 덜 중요한 정보로 학습한다고 해서 fine-grained라고 한다. 왼쪽 phycell은 논문에서 coarse라고 언급했는데, 주요 부분이라고 생각하면 될 듯 하다.
학습에 필요한 objective function은 다음과 같은데, loss 함수를 설명한 듯 하다. L_image는 L2 loss를 사용했고, L_moment는 필터 미분을 통해 구했다. mommentmatrix 부분은 논문 supplementary 1.2에 있는데, 완전히 이해하지 못했다. phycell 설명


저자의 원본코드를 보면 encoding decoding 과정은 DCGAN을 통해 했다. 아래는 Phycell에 대한 저자 코드를 정리한 것이다. K를 구할 때 논문에는 tanh를 사용한다 되어있는데 코드엔 sigmoid로 구현되어 있었다. 또한 해당 코드에 loss function을 MSELoss를 쓴 걸 알 수 있다. phycell 설명 저자 코드 링크는 다음과 같다. 저자코드


본 논문에서는 PDE dynamics를 modeling하기 위한 recurrent physical cell을 도입하였고, prediction과 correction을 분리했다. 논문에서는 phycell을 1개만 썼는데, stacked RNN처럼 몇개 더 쌓아서 실험하는 것도 좋을 듯 하다.