Severity: Warning
Message: mkdir(): Permission denied
Filename: libraries/Common.php
Line Number: 202
Backtrace:
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 202
Function: mkdir
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 236
Function: getLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/controllers/ver3/Contents.php
Line: 585
Function: parseLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/controllers/ver3/Contents.php
Line: 425
Function: initBoardView
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/index.php
Line: 315
Function: require_once
Severity: Warning
Message: file_put_contents(/DATA/upload/polymath/latex/4fc04058e88ca4a39857126a14499f35.gif): failed to open stream: No such file or directory
Filename: libraries/Common.php
Line Number: 213
Backtrace:
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 213
Function: file_put_contents
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/libraries/Common.php
Line: 236
Function: getLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/controllers/ver3/Contents.php
Line: 585
Function: parseLatexImg
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/application/controllers/ver3/Contents.php
Line: 425
Function: initBoardView
File: /volume1/web/PhpstormProjects/www_polymath_co_kr/index.php
Line: 315
Function: require_once
Mathematics for AI #14
알파고가 인간을 이긴 비결, 몬테카를로 방법!
*출제자의 한 마디*
저번 시간에는 행렬로 네트워크의 연결관계를 표현하는 방법에 대하여 간단히 살펴보았습니다. 수많은 인공 뉴런들의 연결망으로 구성되어있는 인공신경망은, 점(노드)과 선(링크)의 구조를 가진 네트워크로 시각적으로 표현하였을 때 엄청나게 복잡한 그물처럼 보입니다. 이러한 점과 선의 수학적 구조를 행렬로 표현하면, 아무리 복잡한 네트워크라고 하더라도 보다 더 쉽게 연결 관계를 분석할 수 있습니다.
이번 시간에는 몬테카를로 방법으로 모의실험을 하는 법에 대하여 간단히 살펴봅시다.
--------------
알파고가 인간을 이긴 비결, 몬테카를로 방법!
인공지능(AI)은 어떻게 사람처럼 추론하고 판단할까요? 2016년 3월 바둑 인공지능 ‘알파고’가 이세돌 9단과 대결해 4승 1패로 승리를 거둬 큰 관심을 받았죠. 구글의 자회사인 ‘딥마인드’가 개발한 알파고는 ‘정책을 제시하는 신경망’(정책망)과 ‘가치를 제시하는 신경망’(가치망)으로 구성돼 있습니다. 정책망은 다음 수를 둘 때 바둑판의 어느 위치에 자신의 돌을 놓으면 유리할지를 예측하고, 가치망은 현 상황에서의 승률을 계산하는 역할을 합니다.
GIB
2016년 구글 자회사 딥마인드가 개발한 바둑 인공지능 알파고는 이세돌 9단과 5번 대결해 4번을 이겼다.
가로와 세로가 각 19줄씩 구성된 바둑판 위에 돌을 놓는 경우의 수는 우주 전체의 원자 개수보다 많을 정도로 바둑에서는 많은 조합이 가능하다고 합니다. 달리 말하면, 바둑에서 경우의 수를 일일이 계산하는 것은 사실상 불가능에 가깝습니다. 이런 문제를 해결하기 위해 알파고는 몬테카를로 방법을 활용했습니다. 이 방법을 이해하려면 먼저 추출을 통해 확률을 계산하는 방법을 살펴봐야 합니다.
확률은 어떤 사건이 일어날 가능성을 수치화해 나타내는 개념으로, 0과 1 사이의 값을 갖습니다. 사건이 일어날 확률을 분석하려면 먼저 어떤 사건이 가능한지를 알아야 합니다. 예를 들어 1부터 6까지 쓰인 공이 들어있는 주머니에서 공을 하나 뽑을 때 일어날 수 있는 사건은 {1, 2, 3, 4, 5, 6}으로 나타낼 수 있습니다. 이렇게 가능한 사건의 집합을 ‘표본 공간’이라고 합니다. 이 주머니에서 무작위로 공을 빼는 일을 ‘추출’이라 하고 이때 1이 쓰인 공이 나올 확률은 입니다.
몬테카를로 방법은 표본 공간에서 추출을 통해 확률을 어림잡아 계산하는 방법입니다. 알파고는 컴퓨터의 가장 큰 장점인 뛰어난 연산능력을 바탕으로 무수히 많은 모의실험을 진행해 이길 확률이 가장 높은 지점에 바둑돌을 둬서 승리했습니다.
--------------
문제
1부터 6까지 쓰인 주사위를 1만 번 굴려서 나오는 수의 평균은 3.5다. 이를 몬테카를로 방법으로 모의실험 해보자.
풀이에 필요한 SageMath 코딩 명령어
①
Number = 10000
시행 횟수를 1만 번으로 정한다.
②
Dice = sample(c(1, 2, 3, 4, 5, 6), Number, replace = TRUE)
1부터 6까지 있는 주사위를 시행 횟수만큼 굴린다.
③
mean_dice = cumsum(Dice)/(1:Number)
주사위를 굴려 나오는 값의 평균을 계산한다.
④
plot(mean_dice, type = "l")
dev.off()
위에서 구한 값을 선 그래프로 나타내고, 실행을 종료한다.
*코딩창의 언어를 ‘R’로 바꾼 뒤 명령어를 입력하세요.
-끝-