[논문 리뷰]Twist-SMC #2.1 Simple Importance Sampling
‣
우리는 앞서 궁극적으로 알고 싶은 ⁍를 구하기 위해,
⁍: **Partition Function or Normalization Constant **를 구해야 한다는 것을 알아봤다.
그러면 이번 #2 Background 에서는 구하기 어려운 ⁍를 구하는 방법을 알아보도록 하겠다.
어려운 확률 분포 P를 구하는 방법
구하기 어려운 ⁍ 을 구하기 위해 우리는 어려운 확률 분포 P를 구하는 방법에 관해 알아볼 것이다.
이는 크게 2가지 해결책이 있다.
모수적 방법 (parametric method): P가 특정한 형태의 확률 분포를 따른다고 “가정”하기- 주로 P에 대한 이론적인 근거가 있을 때 사용
비 모수적 방법 (nonparametric method)=Monte Carlo: P에서 N개의 샘플(particles)을 추출해서 계산- 샘플을 많이 뽑으면 큰 수의 법칙
그리고 논문에서 이야기하는 Importance Sampling과 Sequential Monte Carlo는 “2번 비 모수적 방법”에 대한 이야기다. 확률 분포 P를 구하는 “비 모수적 방법”을 더 자세히 알아보자
확률 분포 P를 구하는 비 모수적 (nonparametric) 방법
1. Monte Carlo
P에서 N개의 샘플(particles)을 추출해서 계산하는 방법이다.
샘플을 많이 뽑으면 큰 수의 법칙이다.
이 때, 문제가 발생한다
[문제]: P에서 샘플을 추출하기 어려운 경우(확률 변수가 여러 개인 경우, Standard 하지 않은 경우… 등)에는?
2. Importance Sampling
이 문제를 해결하기 위해 Importance Sampling이 등장했다
P가 어렵다면, (잘 알고 있는) Q(Proposal distribution)를 도입해 Importance Weight(P/Q)를 만들어, Weight를 업데이트 해가며 P를 추정하는 방법이다.
이렇게만 설명하면 어렵기 때문에, 자세히 알아보자
이는 확률 분포 P(x)를 따르는 변수 x에 대해 함수 f(x)의 기댓값 = ⁍을 구할 때 사용된다.
⁍
⁍
이는 어려운 확률 분포 P를 따르는 함수 f(x)의 기댓값을 구하는 것이 어렵기 때문에
잘 알고 있는 확률 분포 Q를 따르는 함수 ⁍를 가지고 N번 샘플링 해서 이를 추정하는 것이다.
그래서 여기서 ⁍를 Importance Weight라고 한다.
그렇다면 논문의 내용과 allign 시켜보자
2.1. Simple Importance Sampling (in paper)
우리는 ⁍ (⁍은 편의상 dropout)를 구하고 싶고, ⁍는 구하기 어려운 확률 분포이다.
그래서 ⁍ Weight를 도입하였다.
Weight를 사용하면, ⁍ = ⁍ 다음과 같이 표현 할 수 있다.
- ⁍ = ⁍ = ⁍ = ⁍ = ⁍ 따라서, ⁍** = ****⁍**는 결국 q의 확률 분포를 따르는 w의 기댓값을 구하는 것이고, K번 샘플링을 통해 이처럼 근사할 수 있다.

⁍
- ⁍** = ⁍ = ⁍ **⁍
⁍이를 이용해 식을 정리하면 다음과 같이 얻을 수 있는데, 이를 증명해보자.

증명
(1): ⁍ = ⁍
→ ⁍ = ⁍를 대입
(2): ⁍ = ⁍
→ ⁍ 를 대입
(3): ⁍ = ⁍
→ q(x)의 분포에서 K개 샘플링
(4): ⁍ ⁍ ⁍ ⁍ ⁍
→ ⁍에 추정치 ⁍대입 ❗❗
결론: ⁍
→ K sample from ⁍를 통해, ⁍에서의 기대값을 추정 할 수 있다
논문에서는 이와 더불어 더 간단한 방법도 함께 알려준다.
⁍ = ⁍ ⁍ 이다.
따라서 크게 보면 ⁍와 ⁍ 를 비슷하다고 볼 수 있다.

따라서 categorical distribution인 ⁍에서 샘플을 뽑아 ⁍를 근사 할 수 있다는 것이다.
이것이 바로 논문에서 이야기하고 있는 Simple Importance Sampling이다.
이제 우리는 드디어 논문의 2 페이지를 마쳤다..
다음은 2.2 Sequential Monte Carlo다.