서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
매트랩 코드와 함께 하는 마르코프 체인 몬테카를로 (2024 대한민국학술원 선정 교육부 우수학술도서)
저자 : 이효남
출판사 : 자유아카데미
출판년 : 2023
ISBN : 9791158084295
책소개
CHAPTER 1 마르코프 체인 몬테카를로
1.1 몬테카를로 방법
1.2 마르코프 체인
1.3 왜 마르코프 체인을 사용하는가?
CHAPTER 2 필요한 배경지식
2.1 조건부 확률과 베이즈 법칙
2.2 베이지안 추정
2.3 몬테카를로 적분
2.4 난수
2.5 다변수 확률분포
CHAPTER 3 마르코프 체인과 확률과정
3.1 상태와 확률과정
3.2 마르코프 체인과 천이
3.3 마르코프 체인의 극한 거동과 정상분포
3.4 마르코프 체인의 상세 균형조건과 가역성
CHAPTER 4 기각법(Rejection Sampling)
4.1 기각-채택 알고리즘
4.2 상수 의 영향
CHAPTER 5 중요도추출법(Importance Sampling)
5.1 중요도추출법에 의한 몬테카를로 적분과 분산
5.2 중요도추출법 알고리즘
5.3 몇 가지 예제들
5.4 제안분포의 선택
5.5 중요도가중치의 정규화
5.6 목표분포 표본을 만들기 위한 중요도추출법
CHAPTER 6 메트로폴리스 추출법(Metropolis-Hastings Sampling)
6.1 개요
6.2 M-H 알고리즘 및 M 알고리즘
6.3 표본의 상관관계와 체인의 혼합
6.4 수렴 진단
6.5 무작위보행 M-H 알고리즘
6.6 독립적 M-H 알고리즘
6.7 다변수를 위한 M-H 추출법
6.8 몇 가지 M-H 추출법 예제들
CHAPTER 7 깁스 표본추출법(Gibbs Sampling)
7.1 깁스 알고리즘
7.2 깁스 추출을 위한 조건
7.3 깁스 추출 방법 예제
CHAPTER 8 슬라이스 표본추출법(Slice Sampling)
8.1 슬라이스 추출법 개요
8.2 다변수 슬라이스 추출법
CHAPTER 9 해밀톤 추출법(Hamiltonian Sampling)
9.1 개요
9.2 해밀톤 몬테카를로
9.3 HMC 예제 및 성능 특성
CHAPTER 10 가역도약 추출법(Reversible Jump Sampling)
10.1 공간 사이의 이동과 차원일치
10.2 rjMCMC에서의 상세 균형조건과 수락확률
10.3 간단한 차원 초월 표본추출 문제
10.4 포아송-음이항 모델에서 모델 선택
10.5 회귀분석에서 모델 선택
10.6 광산 사고율 변화시점 추정 (1: 사고율 변화시점의 개수가 고정된 경우)
10.7 광산 사고율 변화시점 추정 (2: 사고율 변화시점의 개수를 모르는 경우)
CHAPTER 11 순차적 몬테카를로(Sequential Monte Carlo)
11.1 상태-공간 모델
11.2 베이지안 필터링
11.3 순차적 중요도추출법(SIS)
11.4 표본 재추출
11.5 순차적 중요도 표본 재추출(SIR)
11.6 베이지안 입자 평활화
11.7 순차적 몬테카를로 몇 가지 예제들
11.8 순차적 몬테카를로에서의 모수 추정
CHAPTER 12 은닉 마르코프 모델(Hidden Markov Model)
12.1 모델 정의
12.2 가능도 추정
12.3 상태 시퀀스 추정 또는 디코딩
12.4 학습 또는 훈련
12.5 매트랩 라이브러리 이용
찾아보기
목차
자연의 모든 현상들은 수식으로 표현할 수 있다고들 한다. 수식은 아름답다. 특히 어렵게 보이는 수식일수록 더욱 그렇다. 철학이 어느 정도 경지에 오른 사람들한테는 간결한 수식을 제쳐두고 미주알고주알 글로 풀어 쓰는 건 지겨운 일일 터. 이런 걸 반영하듯, 몬테카를로 시뮬레이션에 관한 내용을 다루는 대부분의 책들이나 논문들은 아름답기 그지없는 수식으로 가득하다. 문제는 그것을 읽는 우리다. 이 방법이 우리가 마주치는 어려운 문제들을 쉽게 풀 수 있도록 해주는 유용한 도구라는 걸 알지만, 그 내용을 도대체 이해할 수 없다. 아름답다는 수식이 오히려 무섭기까지 하다. 나만 그랬던 것일까……. 시뮬레이션은 또 다른 특성이 있다. 내용을 이해한다고 해서 모두가 실행 가능한 프로그램을 만들 수는 없다. 게다가 만든 프로그램이 맞는 결과를 만들어 내는지 확인하기도 어렵다. 물론 이해한 내용이 실제 문제 해결에 어떻게 적용되는지를 알아야만 이 단계까지라도 올 수 있다. 이러한 이유로 나와 같은 사람을 위한 친절한 안내서가 필요하다고 느꼈다.
이 책에는 새로운 이론이 전혀 없다. 아름다운 수식으로 가득한 책이 넘치도록 많다는 것도 안다. 구글 검색에서 키워드 몇 단어만 입력해도 너무나 많은 정보가 눈 앞에 펼쳐진다. 개중에는 친절한 글도 많다. 하지만 기초지식 없이 그 내용을 읽고 이해하는 것도 만만한 일은 아니다. 매트랩 같은 상용 프로그램이나 무료로 이용 가능한 프로그램 소스, 패키지도 넘쳐난다. 이들 중에는 몇 단어만 입력해도 엄청난 출력들을 보여주는 것도 있다. 문제는, 어떻게 해야 제대로 쓰는 것인가? 내 문제 해결에 어떻게 적용할 것인가? 그 결과는 맞는 것인가? 이 답들을 얻는 것은 자신이 적용하려는 방법의 기초를 이해하지 않고는 불가능하다. 이 책은 이러한 목적으로 쓰였다. 최대한 친철하게, 최대한 덜 아름답게, 했던 말 또 하고 간단한 수식을 너저분하게 풀어 쓰고 그 과정을 프로그램으로 풀어 쓰고, 또 실행시켜 결과를 보여주면서. 이런 방법을 택한 것은 정확한 정보 전달이 모든 책의 최고 목적이라고 믿기 때문이다.
사실 이 책의 챕터 하나하나가, 아니 여기에서 보여주는 예제 하나하나가, 어떤 연구자들에게는 평생을 바친 연구 주제일 것이다. 우리는 그 깊이가 어떤 것인지 감히 짐작하기 어렵다. 견문이 적은 나로서는 이 모든 주제를 다룬다는 것이 무리다. 하지만 그 깊이를 잘 이해하지 못했더라도, 거기에 조금이라도 가깝게 갈 수 있고 현실 문제 해결에 어떻게 적용되는지를 쉽게 풀어서 관심 있는 사람들에게 보여주는 것도 의미 있다고 본다.
여기서 제시하는 소스 코드는 효율적으로 짜인 것이 아니다. 이해를 돕기 위해서 가능한 한 다루고자 하는 알고리즘의 흐름대로 따라가도록 하였다. 내용을 이해한 독자들은 이 볼품없고 지저분한 코드들을 훨씬 우아하게 다시 쓸 수 있을 것이다. 좋은 책을 위해 최선을 다했지만 미흡한 부분이 있을 수 있다. 이 점은 양해를 바라며, 출간 후 나올 수 있는 수정 사항 등은 자유아카데미 홈페이지(www.freeaca.com) 자료실에 제공할 예정이다. 아무쪼록 이 책이 독자 여러분들의 문제 해결에 조금이라도 도움이 되기를 바란다.