Gumbel-Softmax Trick
Gumbel Distribution
cdf:
$$F(x;\mu)=e^{-e^{-(x-\mu)}}$$
pdf:
$$f(x;\mu)=e^{-(x-\mu)-e^{-(x-\mu)}}$$
mean:
$$E_{X\sim\text{Gumbel}(\mu)}[X]=\mu+\gamma$$
where
\(\gamma\approx0.5772\) is the Euler-Mascheroni constant.
Sanity Check
comments
Read More
Geodesic Equation 풀어보기
Introduction
In this manuscript, we are going to derive a geodesic curve on the
Euclidean manifold \(\mathbb{R}^{2}\) using polar coordinate chart.
The curve is obviously a straight line but it is a good practice to
check it by hand. Before going into the problem, let us derive the …
comments
Read More
Linear Regression으로 부터 Gaussian Process 유도하기
Gaussian Process (GP)의 정의를 놓고 보면 누가 봐도 Stochastic Process
형태를 띄고 있지만, 사실 GP는 Linear Regression로 부터 유도될 수도 있다.
먼저 Linear Regression을 Bayesian 모델로 확장하여 Bayesian Linear
Regression 모델을 만들 수 있는데, 여기서 등장하는 Inner Product들을
Kernel Trick을 이용해 Kernelize하면 Bayesian Kernel Linear Regression
(?) 모델을 만들 수 …
comments
Read More
Metropolis-Hastings Algorithm의 아이디어
Markov Chain Monte Carlo (MCMC)방법에서는 Sampling 하고자 하는 분포가
있을 때, 임의의 분포의 Sample들로 부터 출발해서 Markov Transition을
반복한다. 그리고 충분한 반복 후에 Sample들이 원하는 분포로 수렴하도록
Markov Chain을 디자인한다. 그런데 이러한 번거로운 방법이 분포를 직접
근사하는 Rejection Sampling에 비해서 과연 어떤 점이 좋은 것일까?
Monte Carlo Sampling에 있어서 …
comments
Read More
Fisher Information과 Negative Log-Likelihood의 Hessian과의 관계
Overcoming catastrophic forgetting in neural
networks 논문의 Elastic Weight
Consolidation 방법을 보면 Neural Network 모델의 Negative
Log-Likelihood의 Hessian Matrix를 Fisher Information Matrix를 이용해서
근사하는 부분이 있다. Hessian Matrix를 계산하기 위해서는 아주 큰
Parameter Vector \(\theta\)에 대한 두 번 미분을 해야 하므로 계산이
어렵지만, Fisher Information은 \(\theta\)에 대해 한 …
comments
Read More
Reproducing Kernel Hilbert Space
설명충 주의: 이 포스트는 설명에 너무 충실한 나머지 분량 조절에 실패했습니다.
Hilbert Space는 Inner Product가 정의된 Vector Space이다(Inner Product 정의에 의해 자연스럽게 따라서 정의되는 Norm에 대해 Complete하다는 조건이 추가로 붙는다). 기계학습에서 Hilbert Space를 처음 접했다면 Kernel Trick에 Infinite Dimension에 뭔가 어려운 이미지가 있는 녀석인데 이 정의를 보면 생각보다 간단하다 …
comments
Read More
Theano 이야기
Theano는 정말 물건인게 함수형 프로그래밍 철학, 보다 정확히는 Symbolic Tensor Algebra를 구현해놔서 기계학습에서 자주 다루게 되는 복잡한 Matrix 연산, 그리고 Matrix 미분을 몇 줄 적는 정도로 끝나는 엄청나게 간단한 레벨로 올려놨다 (Sympy는 Matrix 연산에서는 많이 부족). 이를 이용하면 Neural Network 모델에서 Back Propagation 코드는 한 줄로 끝난다(!!). 게다가 …
comments
Read More
Theano, 헷갈리는 shared variable 및 updates, givens 개념
Theano를 처음 익힐 때 조금 헷갈리는 부분이 shared variable, 그리고 updates, givens 문법인데, 이런 문법이 굳이 왜 필요한지 의문이 들기 때문이다. 여기 링크에 설명이 잘 돼있긴 하지만 좀 더 정리해본다.
2016-04-01 수정
코드에 에러가 있어서 수정했습니다. 그리고 좀 더 자세한 설명이 있는 발표 자료를 첨부합니다. 자료
예제
설명을 위한 …
comments
Read More