몬테카를로 방법(Monte Carlo method)은 난수를 이용하여 함수의 값을 확률적으로 계산하는 알고리즘을 부르는 용어이다. 수학이나 물리학 등에 자주 사용되며, 계산하려는 값이 닫힌 형식으로 표현되지 않거나 복잡한 경우에 근사적으로 계산할 때 사용된다. 스타니스와프 울람이 모나코의 유명한 도박의 도시 몬테카를로의 이름을 본따 명명하였다.
1930년 엔리코 페르미가 중성자의 특성을 연구하기 위해 이 방법을 사용한 것으로 유명하다. 맨해튼 계획의 시뮬레이션이나 수소폭탄의 개발에서도 핵심적인 역할을 담당하였다.
알고리즘의 반복과 큰 수의 계산이 관련되기 때문에 몬테카를로는 다양한 컴퓨터 모의 실험 기술을 사용하여 컴퓨터로 계산하는 것이 적합하다.
Monte Carlo 방법(또는 Monte Carlo 실험)은 수학적인 결과를 얻기 위해 반복적으로 무작위 샘플링의 방법을 이용하는 넓은 범위의 컴퓨터 알고리즘이다. 이 알고리즘의 본질적인 생각은 결정론적일 수도 있는 문제를 해결하기 위해 무작위성을 이용하는 것이다. 이 방법은 보통 물리나 수학 문제를 해결하는 데 쓰이며, 다른 방향으로의 접근이 불가능할 때 가장 유용하다. Monte Carlo 방법은 주로 최적화, 수치적 통합, 확률 분포로부터의 도출 등에서 주로 사용된다.
물리 문제에서 Monte Carlo 방법은 유체, 무질서한 물질, 강하게 결합한 고체 및 세포 구조와 같은 많은 결합 자유도를 가진 시스템을 시뮬레이션 하는 데 유용하다. 그 밖의 예로는 사업의 위험성 계산과 같은 입력 값에 상당한 불확실성이 있는 모델링 현상과, 수학에서는 복잡한 경계 조건을 가진 다차원적의 정적분이 있다. 시스템 엔지니어링 문제(우주, 석유 탐사, 항공기 설계 등)에 적용함에 있어 Monte Carlo 방법 기반의 실패 예측, 비용 초과 및 스케줄 초과는 일상적으로 인간의 직관 또는 대안적인 방법보다 낫다.
대체적으로, Monte Carlo 방법은 확률론적 해석을 가진 문제를 해결하기 위해 사용될 수 있다. 대수의 법칙에 의해, 일부 무작위 변수의 예상 값으로 설명되는 전체는 변수의 독립 표본의 평균(샘플 평균)을 취함으로써 근사치를 구할 수 있다. 변수의 확률 분포가 매개변수로 표시될 때 수학자들은 종종 MCMC(Markov chain Monte Carlo) 샘플러를 사용한다 중심 아이디어는 어느 규정된 고정 확률 분포를 가진 현명한 Markov 체인 모델을 설계하는 것이다. 즉, 한계에서 MCMC 방법에 의해 생성되는 샘플은 원하는 (목표) 분포의 샘플이 될 것이다. ergodic 정리에 의해, 고정된 분포는 MCMC 샘플러의 무작위 상태의 측정에 의해 근사된다.
다른 문제에서의 목표는 비선형 진화 방정식을 만족시키는 일련의 확률 분포에서 도출하는 것이다. 이러한 확률 분포의 흐름은 항상 변환 확률이 현재 무작위 상태의 분포에 따라 달라지는 Markov 프로세스의 무작위 상태의 분포로 해석할 수 있다. (McKean – Vlasov 프로세스, 비선형 필터링 방정식 참조). 다른 경우에는 표본 복잡도가 증가하는 확률 분포의 흐름을 받는다(시간 지평선이 증가하는 경로 공간 모델, 온도 매개변수 감소와 관련된 Boltzmann – Gibbs 측정 등). 이 모델들은 또한 비선형 Markov 사슬의 무작위 상태의 법칙의 진화로 볼 수도 있다. 이러한 정교한 비선형 Markov 프로세스를 시뮬레이션 하는 대표적인 방법은 프로세스의 많은 사본을 샘플링하는 것으로, 진화 방정식에서 무작위 상태의 알 수 없는 분포를 샘플링된 경험적 척도로 대체한다. 전통적인 Monte Carlo 및 MCMC 방법론과는 대조적으로, 이러한 평균 전계 입자 기법은 순차적 상호작용 샘플에 의존한다. 용어 평균 필드는 각 표본(예: 입자, 개인, 보행자, 대리인, 생물 또는 표현형)이 프로세스의 경험적 측정과 상호작용한다는 사실을 반영한다. 시스템의 크기가 무한대인 경향이 있을 때, 이러한 무작위적 측정은 비선형 Markov 사슬의 무작위 상태의 결정론적 분포로 수렴되어 입자 사이의 통계적 상호작용이 사라진다.
Monte Carlo 방법은 다양하지만, 특정한 패턴을 따르는 경향이 있다.
1. 가능한 입력의 도메인을 정의한다.
2. 도메인에 대한 확률 분포에서 임의로 입력을 생성한다.
3. 입력에 대한 결정론적인 계산을 수행한다.
4. 결과를 집계한다.
들어 단위 정사각형에 새겨진 사분면(원형 부분)을 생각해 보자. Monte Carlo 방법을 사용해서 파이의 값을 근사치로 추정할 수 있다.
1. 정사각형을 그린 다음, 그 안에 사분면을 삽입한다.
2. 정사각형 위에 일정한 개수의 점을 균일하게 분포한다.
3. 사분면 내부의 점(즉, 원점으로부터 1 미만)의 개수를 센다.
4. 내부의 개수와 전체 개수의 비율은 두 영역의 비율을 나타낸다. 그 값인 에 4를 곱하여 파이를 만든다.
여기서 두 가지의 중요한 점이 있다.
1. 점이 균일하게 분포되지 않으면 근사치가 떨어진다.
2. 평균적으로 더 많은 점을 배치할수록 근사치가 개선된다.
출처:위키백과
몬테카를로 방법과 인공지능
몬테카를로(Monte-Carlo)는 도시국가인 모나코 북부에 있는 지역으로서 카지노, 도박으로 유명한 곳이기도 하다. 수학에서 확률이론의 탄생이 원래 도박에서 비롯되었는데, 과거 도박 도시의 대명사였던 몬테카를로 역시 지금은 확률론과 밀접한 관계가 있는 과학적 방법론을 지칭하기도 한다.
즉 몬테카를로 방법(Monte-Carlo method)이란 무작위 추출된 난수(Random Number)를 이용하여 함수의 값을 계산하는 통계학적 방법으로서, 수치적분이나 최적화 등에 널리 쓰인다. 물리학이나 여러 공학 분야에서 제목에 몬테카를로 방법이라는 대목이 포함된 논문들을 많이 접할 수 있다.
몬테카를로 방법이 무엇인지 간단한 예로서, 원의 면적을 구하는 것을 들면 다음과 같다. 즉 x2+y2=1이라는 함수로 표현되는 원이 면적이 보다 큰, 예를 들어 면적이 4인 정사각형에 완전히 포함되는 경우를 가정하고, 이 공간 안에 무작위로 수많은 난수의 순서쌍(x, y)을 발생시킨다. 그 순서쌍(x, y) 중에는 x2+y2≤1의 관계를 만족하여 원 안에 포함되는 것들도 있을 것이고, 원 밖에 정사각형에 위치한 것들도 있을 것이다. 전체 난수 중에서 원 안에 위치한 순서쌍의 비율을 계산하면 곧 원의 면적을 구할 수 있게 되는 것이다.
물론 이 경우는 원의 면적을 정적분 또는 간단한 공식으로부터 쉽게 계산할 수 있으므로 굳이 몬테카를로 방법을 쓸 필요가 없지만, 해석학적으로 적분하기가 극히 어려운 복잡한 함수의 경우 등에는 이와 같은 확률적인 방법이 큰 힘을 발휘할 수 있다.
일반적으로 난수의 개수를 더욱 많이 발생시킬수록 보다 정확한 값을 얻을 수 있겠지만, 확률적인 방법론이기 때문에 어느 정도 오차가 발생할 수도 있다.
오늘날 다양한 과학기술 분야의 컴퓨터 시뮬레이션, 예측 등에 빈번히 쓰이는 몬테카를로 방법이 적용된 매우 유명한 역사적 사례로서, 미국의 원자폭탄 개발 계획인 맨해튼 프로젝트를 들 수 있다. 바로 몬테카를로 방법이라는 이름이 처음 쓰이게 된 계기이기도 하다.
즉 폴란드 출신의 수학자 스태니슬로 울람(Stanisław Marcin Ulam, 1909-1984)은 컴퓨터의 아버지로 잘 알려진 폰 노이만(Johann Ludwig von Neumann, 1903-1957) 등과 함께 맨해튼 프로젝트에 참여하였다.
예전부터 노이만의 동료였던 울람은 극비의 코드명에 적합하도록 새로운 수학적 방법론을 도박의 도시 이름을 따서 몬테카를로 방법이라 명명하였고, 이 방법은 중성자가 원자핵과 충돌하는 과정을 이해하고 묘사하는 데에 결정적 역할을 하였다.
즉 핵분열의 과정에서 우라늄 원자핵을 때린 중성자 하나가 다시 3개의 중성자를 방출하는데, 이러한 연쇄반응에서 중성자들은 마치 분기하는 나뭇가지들처럼 복잡한 경로를 보인다. 몬테카를로 방법을 적용한 확률적 시뮬레이션을 통하여 이 경로를 파악하고 결과를 추정할 수 있는 것이다.
오늘날 몬테카를로 방법은 인공지능 분야에서도 매우 중요하고 획기적인 계기를 마련해주었다. 특히 몇 년 전 알파고와 이세돌 9단과의 ‘세기의 바둑대결’을 통해서도 몬테카를로 방법의 막강한 위력과 가치가 입증된 바 있다.
IBM 슈퍼컴퓨터에서 작동하는 ‘딥 블루’가 체스 게임에서 인간 세계 챔피언을 꺾은 것은 1997년의 일이지만, 대다수 인공지능 전문가들은 바둑에서 컴퓨터가 인간을 능가하기는 대단히 어려울 것이라고 전망하였다.
체스와는 달리 ‘우주 전체의 원자 숫자보다 더 많은 조합과 배열이 가능하다’고 비유되는 바둑에서는, 제아무리 슈퍼컴퓨터라 한들 그 모든 경우를 계산하기는 불가능하기 때문이다. 따라서 컴퓨터와 인공지능이 인간의 ‘직관’을 따라잡으려면 적어도 100년은 더 걸리지 않겠느냐고 예측하기도 하였다.
그러나 이와 같은 예상을 뒤엎고 구글 딥마인드의 알파고는 이세돌 9단과의 바둑대결에서 4승 1패로 승리했다. 그 비결은 바로 컴퓨터가 스스로 학습하는 딥러닝(Deep Learning)과 함께, 몬테카를로 방법을 적용한 알고리듬이었다.
알파고는 ‘정책망’과 ‘가치망’이라 불리는 2개의 신경망으로 구성되었는데, 정책망이 다음 번 돌을 놓을 여러 경우의 수를 제시하면, 가치망은 그중 가장 적합한 한 가지 예측치를 제시하는 역할을 한다. 이 과정에서 모든 경우의 수를 다 계산하는 것은 불가능하므로, 표본을 추출하여 승률을 어림잡는 몬테카를로 방법을 적용하는 것이다.
물론 그렇다고 하여 알파고가 인간과 똑같은 ‘직관과 추론’을 하여 바둑 게임에서 이겼다고 말하기는 어려울 것이다. 그러나 딥 러닝과 몬테카를로 방법으로 인간의 직관과 추론을 흉내 내었고, 그 성능이 바둑에서 인간을 능가하였다는 점에서 기존 인공지능의 한계를 돌파한 획기적인 사건으로 볼 수 있었다.
알파고 이후에도 인공지능은 여러 분야에서 눈부신 발전을 거듭하고 있는데, 몬테카를로 방법은 앞으로 갖가지 인공지능 알고리듬에서도 더욱 강력한 방법론을 제공해줄 수 있을 것이다.
최성우 (과학평론가) 저작권자 2019.06.14 ⓒ ScienceTimes
출처 : 사이언스타임지
몬테카를로 방법과 인공지능 – Sciencetimes
www.sciencetimes.co.kr
'데이터과학' 카테고리의 다른 글
혼동 행렬, 분류성능평가지표 (0) | 2021.04.22 |
---|---|
RFM 분석 (0) | 2021.04.21 |
탐욕 알고리즘 (Greedy algorithm) (0) | 2021.04.19 |
계층화 분석법 (Aanalytic Hierarchy Process, AHP) (0) | 2021.04.14 |
의사결정나무법(Decision Tree) (0) | 2021.03.29 |