본문 바로가기

NLP/용어정리

[용어정리] reparameterization trick

주의

  • 이 글은 설명 글이 아님.
  • 단순히 어떤 느낌을 봐야한다는 관점을 짧게 정리한 글임.
  • 그런데 이 관점도 틀릴 수도 있음.
  • VAE 에 대해 어느 정도 이해해야 이 글을 읽을 수 있음.

reparameterization trick

VAE 에 대해 공부하다가, 'reparameterization trick' 을 알게 되었다. 다행히 정말 잘 정리된 글이 있어서, 수식을 완전히 이해할 수 있다면 이 글은 보물 그 자체다.

 

https://jaejunyoo.blogspot.com/2017/05/auto-encoding-variational-bayes-vae-3.html

 

초짜 대학원생의 입장에서 이해하는 Auto-Encoding Variational Bayes (VAE) (3)

Machine learning and research topics explained in beginner graduate's terms. 초짜 대학원생의 쉽게 풀어 설명하는 머신러닝

jaejunyoo.blogspot.com

 

하지만 난 바보라서 이 글을 친구랑 둘이서 토론하며 읽었다. 수식을 완전히 뜯어볼 줄 몰라서 대다수의 과정을 식이 아닌 글로 이해했다. 그러다가 번뜩이는 관점을 얻어서 이 글에 남기고자 한다. 완벽한 이해를 하고 싶다면, 저 글을 보라. 하지만 대강 왜 trick 인지 알고 싶다면 내 관점을 한번 읽어보면 좋겠다. (참고로 위에서 말했듯이 내 관점도 틀릴 수 있다.)

 

왼쪽: 왜 기존에는 미분이 안 되었던 것이지?

https://jaejunyoo.blogspot.com/2017/05/auto-encoding-variational-bayes-vae-3.html

내가 이해한 바로는 이렇다.

input 단계도 아니고 encoder 를 통과하는 과정에서 sampling 이 들어가잖아.
sampling 은 분포에서 뽑는 걸 의미해, 즉 매번 달라질 것이고 이건 미분 가능한 연산이 아니야.
deep learning 의 핵심 backward 인데, 미분이 불가능하면 학습이 안 되잖아.

 

오른쪽: 그럼 왜 오른쪽은 미분이 되는 거야?

https://jaejunyoo.blogspot.com/2017/05/auto-encoding-variational-bayes-vae-3.html

위 그림에서 달라진 건 'ε' 존재다. 저거 하나 추가했다고 왜 갑자기 sampling 이 아니라고 볼 수 있는 것이고, 미분 불가능이 해결되는 것일까. 난 코드를 봐야 이해가 빨라서 VAE 코드를 찾아다녔고, 좋은 글을 발견할 수 있었다.

 

https://cumulu-s.tistory.com/25

여기서 봐야할 것은 함수 'reparameterize' 다. 

https://cumulu-s.tistory.com/25

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

 

2. Auto-Encoding Variational Bayes(VAE) - code review

해당 논문의 paper review : cumulu-s.tistory.com/24 2. Auto-Encoding Variational Bayes (VAE) - paper review 두 번째로 다뤄볼 논문은 VAE라는 이름으로 잘 알려진 Auto-Encoding Variational Bayes라는 논문입니다. 너무 유명한

cumulu-s.tistory.com

 

https://jaejunyoo.blogspot.com/2017/05/auto-encoding-variational-bayes-vae-3.html

 

초짜 대학원생의 입장에서 이해하는 Auto-Encoding Variational Bayes (VAE) (3)

Machine learning and research topics explained in beginner graduate's terms. 초짜 대학원생의 쉽게 풀어 설명하는 머신러닝

jaejunyoo.blogspot.com