March 16, 2025 — 📝 Paper

[논문 리뷰]Twist-SMC #2.1 Simple Importance Sampling

우리는 앞서 궁극적으로 알고 싶은 ⁍를 구하기 위해,

⁍: **Partition Function or Normalization Constant **를 구해야 한다는 것을 알아봤다.

그러면 이번 #2 Background 에서는 구하기 어려운 ⁍를 구하는 방법을 알아보도록 하겠다.

어려운 확률 분포 P를 구하는 방법

구하기 어려운 ⁍ 을 구하기 위해 우리는 어려운 확률 분포 P를 구하는 방법에 관해 알아볼 것이다.

이는 크게 2가지 해결책이 있다.

  1. 모수적 방법 (parametric method): P가 특정한 형태의 확률 분포를 따른다고 “가정”하기
  2. 주로 P에 대한 이론적인 근거가 있을 때 사용
  3. 비 모수적 방법 (nonparametric method) = Monte Carlo : P에서 N개의 샘플(particles)을 추출해서 계산
  4. 샘플을 많이 뽑으면 큰 수의 법칙

그리고 논문에서 이야기하는 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를 사용하면, ⁍ = ⁍ 다음과 같이 표현 할 수 있다.


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

증명

(1): ⁍ = ⁍

→ ⁍ = ⁍를 대입

(2): ⁍ = ⁍

→ ⁍ 를 대입

(3): ⁍ = ⁍

→ q(x)의 분포에서 K개 샘플링

(4): ⁍ ⁍ ⁍ ⁍ ⁍

→ ⁍에 추정치 ⁍대입 ❗❗

결론: ⁍ → K sample from ⁍를 통해, ⁍에서의 기대값을 추정 할 수 있다


논문에서는 이와 더불어 더 간단한 방법도 함께 알려준다.

⁍ = ⁍ ⁍ 이다.

따라서 크게 보면 ⁍와 ⁍ 를 비슷하다고 볼 수 있다.

따라서 categorical distribution인 ⁍에서 샘플을 뽑아 ⁍를 근사 할 수 있다는 것이다.

이것이 바로 논문에서 이야기하고 있는 Simple Importance Sampling이다.


이제 우리는 드디어 논문의 2 페이지를 마쳤다..

다음은 2.2 Sequential Monte Carlo다.