Monte Carlo Integration (MCMC)
먼저 몬테카를로 방법을 사용하기 위해서는 몇가지 중요한 이론을 알아야 한다.
- 난수와 난수생성
- 큰수의 법칙
- 중심극한정리 (CLT)
몬테카를로 적분법의 기본 원리를 잘 설명하는 대표적인 방법이 "적중법" 이다.
적중법 이란?
특정 범위 안에 들어오는 것을 적중으로 판단 후, 그 갯수를 근사화하는 방법.
범위를 벗어난다면 적중에 실패한 것으로 판단한다.
몬테카를로 방법
: 반복적으로 무작위 추출된 난수 이용하여 함수의 값을 수리적으로 근사하는 알고리즘 방법.
주로 확률 분포에서 확률 변수 값을 생성하는 작업에서 활용된다.
대체적으로 몬테카를로 방법은 확률론적 해석을 가진 문제를 해결하기 위해 사용될 수 있다.
큰 수의 법칙에 의해, 어떤 확률변수의 기댓값으로 설명되는 적분은 랜덤표본의 표본 평균을 취함으로써 근사치를 구할 수 있다.
예를 들어 단위 정사각형에 새겨진 사분원(원형 부분)을 생각해 보자. 몬테카를로 방법을 사용해서 π의 값을 근사치로 추정할 수 있다.
- 정사각형을 그린 다음, 그 안에 사분원을 삽입한다.
- 정사각형 위에 일정한 개수의 점을 균일하게 분포한다.
- 사분원 내부의 점(즉, 원점으로부터 1 미만)의 개수를 센다.
- 내부의 개수와 전체 개수의 비율은 두 영역의 비율을 나타낸다. 그 값에 4를 곱하여 π를 만든다.
> 사분원 내부의 점과 전체 개수의 비율을 바탕으로 대략적인 원의 면적을 구할 수 있다. 전체 개수는 사각형의 넓이가 될테니, 이를 이용하여 계산하면 원의 면적과 함께 π 값의 근사치를 추정할 수 있다.
몬테카를로 방법 적용
몬테카를로 방법은 난수를 활용하여 어떤 값을 확률적으로 계산하거나 근사하는 기법.
- 난수를 사용
- 어떤 확률 분포나 함수의 기대값을 근사하는 데 활용
- 실제 계산을 반복 시행하여 결과를 통계적으로 수렴
이미지 처리 모델 구현단계에서
기존에는 [0,1] 사이의 값으로 예측값을 결정했다면,
이를 몬테카를로 방법을 적용하여 예측값을 결정한다.
top_preds= torch.sigmoid(top_preds)
binary_top_preds= torch.round(top_preds)
> 기존 코드
top_preds= torch.sigmoid(top_preds)
# 유니폼 분포에서 [0, 1] 사이 랜덤 값 생성
random_values = torch.rand_like(top_preds)
# 확률적으로 1 또는 0으로 결정
binary_top_preds = (top_preds > random_values).float()
> 몬테카를로 방법을 적용한 코드
u∼U(0,1) (균일분포 Uniform Distribution에서 난수 u를 생성)
- 난수를 생성하여 시그모이드값을 기준으로 비교한다.
- 시그모이드 출력값을 '이벤트 발생 확률'로 해석하여 난수를 기반으로 값(0 또는 1)을 결정한다.
> 확률적 불확실성 반영 : 모델의 불확실성을 반영한 예측을 할 수 있다.
> 확률적 결정 방법: 예측을 확률적으로 처리함으로써, 모델이 특정 예측에 얼마나 확신을 가지고 있는지, 불확실성이 얼마나 큰지 등 모델의 신뢰도를 정량적으로 측정할 수 있다.
'선형대수학' 카테고리의 다른 글
ISLP Chapter 13 Multiple Testing 2 (1) | 2024.04.18 |
---|---|
ISLP Chapter 13 Multiple Testing 1 (0) | 2024.04.16 |
[선형대수] 0819 (0) | 2023.08.19 |
[선형대수학] 5주차 0812 (수정중) (0) | 2023.08.12 |
[선형대수학] 4주차 0805 (0) | 2023.08.07 |