Hello Computer Vision

몬테카를로 시뮬레이션이란?(Monte Carlo Simulation) 본문

mathematics

몬테카를로 시뮬레이션이란?(Monte Carlo Simulation)

지웅쓰 2022. 11. 5. 21:26

이번에 InfoGAN논문을 보면서 몬테카를로 시뮬레이션 용어가 나와서 처음 보는 용어이고

그냥 넘어갈 수 없다고 생각해 찾아보았고 정리해두려고 합니다.

 

참고한 내용들은 밑에 출처를 남겨두었고 해당 글들을 바탕으로 제 개인적인 이해를 적어두었습니다.

 

 

몬테카를로 시뮬레이션은 확률 분포로부터 난수를 뽑아 반복계산하는 것이다.

제가 시청한 영상에서는 작업을 예시로 들었는데요,

일 하나를 끝마치기 위해서는 작업A -> 작업B -> 작업C 의 과정을 거쳐야한다 했을 때

각각 정규분포를 따른다고 했을 때 

작업A : 6~14분 소요

작업B : 10~30분 소요

작업C : 15~45분 소요

따라서 세개의 작업으로 이루어진 일은 최소 31분 최대 89분이 걸립니다.

 

그렇다면 최소시간과 최대 시간이 어느정도 걸리는지는 알겠는데 이 일의 분포도 알 수 있을까?

3개의 작업소요시간을 시뮬레이션으로 돌려본다면 

(6, 10, 20), (7, 15, 17), (14, 23, 30), (8, 15, 42).... 무수히 많은 작업들을 시뮬레이션 형태로

돌려볼 수 있을 것이다.그리고 이러한 작업들의 총 시간을 한번 나타내본다면

이렇게 정규분포 형태로 나타낼 수 있고

이렇게 누적확률분포를 통해 50분이하 걸릴 확률, 70분이하로 걸릴 확률 또한 근사치로 나타낼 수 있다. 

 

시행횟수가 적다면(시뮬레이션을 적게 돌린다면) 아마 기대한대로 결과값이 나오지 않을 수 있지만

만약 이 시행횟수를 더 늘린다면 기대한대로 정규분포를 따름을 알 수 있습니다.

 

이러한 몬테카를로 시뮬레이션을 제가 현재 관심있는 GAN에 한번 적용해본다면

'학습데이터들은 정규분포의 형태로 가지고 있을 것이고 이에 대해 횟수를 늘려 훈련을 한다면

결국 우리가 이미지를 만드는 generator의 분포도 해당 학습데이터의 분포르 따를 것이다'

이렇게 이해를 하였습니다.

너무 딥하게 하지는 않고 가볍게 알아봤는데요, 틀린 점 지적해주시면 감사하겠습니다.

 

내용 출처

https://www.youtube.com/watch?v=m40JuOUf9Ag 

https://studyingrabbit.tistory.com/33