주의
- 이 글은 설명 글이 아님.
- 단순히 어떤 느낌을 봐야한다는 관점을 짧게 정리한 글임.
- 그런데 이 관점도 틀릴 수도 있음.
- VAE 에 대해 어느 정도 이해해야 이 글을 읽을 수 있음.
reparameterization trick
VAE 에 대해 공부하다가, 'reparameterization trick' 을 알게 되었다. 다행히 정말 잘 정리된 글이 있어서, 수식을 완전히 이해할 수 있다면 이 글은 보물 그 자체다.
https://jaejunyoo.blogspot.com/2017/05/auto-encoding-variational-bayes-vae-3.html
하지만 난 바보라서 이 글을 친구랑 둘이서 토론하며 읽었다. 수식을 완전히 뜯어볼 줄 몰라서 대다수의 과정을 식이 아닌 글로 이해했다. 그러다가 번뜩이는 관점을 얻어서 이 글에 남기고자 한다. 완벽한 이해를 하고 싶다면, 저 글을 보라. 하지만 대강 왜 trick 인지 알고 싶다면 내 관점을 한번 읽어보면 좋겠다. (참고로 위에서 말했듯이 내 관점도 틀릴 수 있다.)
왼쪽: 왜 기존에는 미분이 안 되었던 것이지?
내가 이해한 바로는 이렇다.
input 단계도 아니고 encoder 를 통과하는 과정에서 sampling 이 들어가잖아.
sampling 은 분포에서 뽑는 걸 의미해, 즉 매번 달라질 것이고 이건 미분 가능한 연산이 아니야.
deep learning 의 핵심 backward 인데, 미분이 불가능하면 학습이 안 되잖아.
오른쪽: 그럼 왜 오른쪽은 미분이 되는 거야?
위 그림에서 달라진 건 'ε' 존재다. 저거 하나 추가했다고 왜 갑자기 sampling 이 아니라고 볼 수 있는 것이고, 미분 불가능이 해결되는 것일까. 난 코드를 봐야 이해가 빨라서 VAE 코드를 찾아다녔고, 좋은 글을 발견할 수 있었다.
여기서 봐야할 것은 함수 'reparameterize' 다.
return 부분을 보면 eps 가 곱해져있다. 실제 코드로도 저거 하나 곱한 게 전부라는 걸 확인할 수 있었다.
실제 원리를 설명하는 그림에서도 저거 하나의 차이였다. 그럼 대체 뭘까. 수식의 특별함은 전혀 없다. 이건 해석, 그러니까 우리가 관점을 아예 다르게 봐야 한다. 내가 이해한 관점은 바로 이것이다.
왼쪽식: mu(x) + std
이건 누가봐도 sampling 식이야. 이건 위에서 말했듯이 model 자체에 stochasticity 가 생겨나서 미분이 안된다고.
오른쪽식: mu(x) + std * eps
이건 sampling 식으로 봐선 안돼. 그저 A(X) + B, 즉 feed forward network 처럼 봐줘. sampling 이 절대 아니야. 그냥 하나의 학습가능한 연산으로 보면 된다고.
말장난 같다고 느껴지면, 정상이다. 괜히 'trick' 이라고 부르는 게 아니다. 해석의 차이다. 하지만 또 동시에 sampling 의 효과를 취할 수 있다. 보면 식이 sampling 과 다른 게 거의 없기 때문이다.
오른쪽식: mu(x) + std * eps
이건 sampling 식으로 봐선 안 된다고 했지만, 우연히 닮아 있어서 sampling 한 효과를 얻어갈 수 있어. 즉, 가우시안 분포를 따른다는 가정도 지킬 수 있어서 VAE 가 원하는 목적도 이룰 수가 있겠는걸?
결론
- 이름처럼 'trick', 말장난이라는 걸 명심해야 함.
- 'mu(x) + std → mu(x) + std * eps' 으로 바꿈으로서 미분할 때는 sampling 이 아니라서 가능하지만, 운좋게 sampling 식을 닮았으니 가우시안 분포를 따른다는 가정도 지켜냄.
참고 자료
https://cumulu-s.tistory.com/25
https://jaejunyoo.blogspot.com/2017/05/auto-encoding-variational-bayes-vae-3.html
'NLP > 용어정리' 카테고리의 다른 글
[용어정리] SC: Self-Consistency (1) | 2024.01.09 |
---|---|
[용어정리] MSE loss vs Cross Entropy loss (0) | 2023.04.11 |
[용어정리] ELBO (0) | 2023.01.02 |
[용어정리] ML(Maximum Likelihood) vs MAP(Maximum A Posterior) (0) | 2022.12.30 |
[용어정리] semicolon notation in probability (0) | 2022.12.30 |