2018년 1월 2일 화요일

Stochastic Mechanics


지반공학을 위한 수치해석, 정말 쉽게 한번 접근해 보자.


시작하긴 겁나지만 그 막강함에 안할수가 없는 Stochastics에 대해 요점정리 해본다.



Fundamental concepts: 기본 개념


Stochastic? Monte Carlo? Markov-chain? Bayesian? Probabilistic? Uncertainty? Reliability?????

천천히 시작해보기 위해 wikipedia에서 정의부터 확인해 보자.


Definition

Stochastics =  Theory of statistical inference

: 추계학 = 추측 통계학 =  "모집단에서 임의로 추출한 표본에 따라 모집단의 상태를 추측하는 학문"

어렵다. 정작 필요한 Uncertainty 혹은 Reliability의 개념을 정의로부터 찾을 수 없기 때문에 필자도 Stochastics의 시작이 너무 어려웠다. 하여 다시금 EZ하게 설명해본다.

EZ Definition

Stochastic: Modeling 결과값의 Uncertainty를 구하기 위해 random number를 활용하는 학문

여기서...
Modeling이란 "A model is a theoretical way of understanding a concept or idea."
Uncertainty란 통계학적 정규분포(Normal distribution) 상의 표준편차(Standard deviation)
Reliability란 확률에 입각한 mechanical analysis의 결과이자 최종 목표이다.

정의에서 알 수 있듯이 Stochastic의 핵심은 modeling parameter가 random하다는 것이다. 이 random variable을 백만번 modeling 돌리게 되면 결과값이 정규분포를 띄게 되고 거기서 표준편차값을 구해 Reliability를 계산하는 것이다. 하여, 모델링을 백만번 돌리기 위한 알고리즘이 Markov-chain Monte Calro (MCMC) method이고 이 MCMC에 대한 이해가 정말 중요하다.

Algorithm: MCMC method


MCMC의 이해 또한 wikipedia에서부터 시작해 보자.

"마르코프 연쇄 구성에 기반한 확률 분포로부터 원하는 분포의 정적 분포를 갖는 표본으 추출하는 알고리즘"

이게 뭔 소린가. 차라리 영어로 다시 보자.

"MCMC methods are a class of algorithms for sampling from a probability distribution based on constructing a Markov chain that has the desired distribution as its equilibrium distribution."

즉, 우리가 원하는 Markov chain을 만들기 위해 확률적으로 sampling하는 방법이라는 얘기다. 다시금 EZ하게 설명해보자면

EZ MCMC method

MCMC: 원하는 Markov-chain을 만들기 위한 Monte Carlo, 즉 random number 활용한 반복 연산 방법

여기서...
Monte Carlo method란 random number를 활용한 수천만번의 모집단 생성 방법이고
Markov-chain Monte Carlo란 모집단이 너무 많으니 확률적으로 일부만 추려내자는 것(sampling) 이며
Bayesian probability가 그 추려내는 과정에서의 척도가 되는 것이다.


다시금 정리해 보자면,

Monte Carlo의 randomness와 Bayes' rule의 probability를 결합하여 Markov-chain을 만들어 내는 것이 MCMC method이고, 이 알고리즘을 활용해서 모델링의 Uncertainty를 확인하고 그에 따른 Reliability를 계산하는 것이 Stochastic Mechanics가 된다.


Bayesian Inference

베이지안을 또한 wikipedia에서 검색해보면
"통계적 추론의 한 방법으로, 추론 대상의 사전 확률과 추가적인 정보를 통해 해당 대상의 사후 확률을 추론하는 방법이다." 라고하고 영어로는
"Statistical inference in which Bayes' theorem is used to update the probability for a hypothesis as more evidence or information becomes available."이란다.

한마디로, Bayesian은 조건부 확률을 통한 추측이다.

예를 들자면,
  • 산사태가 일어날 확률이 그냥 추측이고
  • 내일 비가 오는데 산사태가 일어날 확률이 조건부 확률을 통한 추측이다.

그래서 다음의 세가지를 필요로 한다.
  • Prior : 사전 정보, 즉 내일 비가 온다는 정보, 사면 기울기, 토질 저항력 등등
  • Likelihood : 조건식, 즉 토질의 특정 함수비 상태에서의 산사태 확률
  • Posterior : 베이지안의 주 목적 결과값, 즉 비 올 때 산사태 확률

따라서, Posterior는 기존 경험상의 Prior에서 데이터상의 Likelihood를 접목시킨 가장 믿을만한 새로운 기준이 되고, 이 기준에 맞춰서 수천만개의 모집단 중 일부만 추려서 sampling할 수 있게 된다.

Sampling

sampling은 MCMC 알고리즘의 일부 테크닉으로서 여러가지 방법이 있지만, 다음 두가지가 널리 쓰인다.
  • Metropolis-Hastings(MH) sampling algorithm
  • Gibbs sampling algorithm

간단히 얘기해서 MH가 일반적인 알고리즘이고, Gibbs는 특정 조건에 특화된 간단한 알고리즘이다. MH sampling에서는 한가지, probability of acceptance (alpha)를 알아야 한다. 이 alpha는 Bayesian에서 계산되어 나오고, 그 값이 램덤상수 r값을 통해 확률적으로 accept되게 만든 것이다. 물론, 이 accept된 값들은 Markov-chain으로서 저장되어 우리가 원하는 결과값을 만들 수 있게 된다는 말이다.


한 가지 tip: Normal Distribution(정규분포)

알고보니 모든 확률적 방법론들은 모집단이 정규분포임을 가정하고 변수들을 조정한다. 따라서 Stochastics에 대한 개념이해가 됐다면 이미 알고 있다고 간과해버렸던 Normal distribution의 개념 또한 확실히 하고 예제를 다뤄볼 필요가 있다.

정규분포의 가장 중요한 특성은 2개의 매개 변수 (평균, 표준편차)에 의해 모양이 결정되는 연속 확률 분포라는 것이다.  따라서, 수식 몇개만 유념하고 넘어가자.

Notation of normal distribution is:

The probability density of the normal distributions is:

이때, 정규분포가 다차원 공간에 대해 확장된다면,

Notation of multivariate normal distribution is:

The probability density function(PDF) is:

이 PDF가 정말 중요하고 많이 쓰이고 어려워 보이지만 유심히 보면 일반 정규분포 식이랑 거의 똑같다. 당연하다. 다만 분산(variance = standard deviation^2) 이 공분산(covariance) matrix로 바뀌었을 뿐이다.

그럼 covariance matrix는 무엇이냐?

공분산은 2개의 확률변수의 상관정도를 나타내는 값인데 + 혹은 - 값을 가지고 0 이면 두 변수는 독립이라는 말이다. 물론, 상관관계를 나타내기에 부적절해서 -1 과 +1 사이값으로 표준화 시켜놓은 상관계수 (correlation)를 우리는 암암리에 쓰고 있지만 말이다.

쉬운 산수 계산 예를 들자면,
Xi = [0, 1, 2, 3, 4] 이고 Xj = [2, 3, 2, 1, 2] 일 때, 평균은 각각 mi = 2, mj = 2 이다.
이때 Xi의 population 분산 = (4+1+0+1+2)/5 = 2 이고 sample 분산 = (4+1+0+1+2)/4 = 2.5 이다.
공분산 cov(Xi,Xj) = [[-2 -1 0 1 2],[0 1 0 -1 0]] * [[-1 0],[-1 1],[0 0],[1 -1],[2 0]] 로서 사이즈가 (2x5)x(5x2) = (2x2) 매트릭스인 [[2.5 -0.5],[-0.5 0.5]]가 나온다.

그러니까 우선은 이렇게만 알고 넘어가자. ㅡ.ㅡ;;



EZ Example


기본 개념을 이해했다면 MCMC algorithm의 코딩을 위해 Bayes' rule에 입각하여 쉬운 예제를 이해해보자.

To be updated



Probabilistic Inversion


MCMC 실질적 활용은 크게 세가지라고 생각한다.
  • Uncertainty and Reability against structural failure, 왜? 모든 재료는 균질하지 않기 때문에
  • Regression: 회귀분석, 왜냐? 마더네이쳐는 Non-linear 라서
  • Inversion: 역산, 왜냐? 역산은 원래 non-uniquness 라서 ill-posed problem 때문에

이중 필자의 연구와 가장 가까운 Inversion(역산)에 대해 상세하게 다시 설명해보고자 한다. MCMC inversion의 key point는 MCMC 자체의 이해도 이해지만, 본인이 원하는 forward modeling을 MCMC 안에 제대로 접목시키는 것이다.

즉, 코딩을 위한 알고리즘은 실측 데이터(d_obs)의 포맷 확인 후, 그에 맞는 forward modeling code의 테스트로부터 시작되어야 하며, initial 모델링 결과값과의 비교대조 후, MCMC를 적용시켜야 한다.
  1. check observed data (d_obs)
    1. d_obs는 측정을 통한 실측 데이터값이다.
  2. test forward modeling
    1. d = g(m)이 기본 개념으로서 수학적으로 결국 y = f(x)와 같은 개념이다.
    2. 이때 d = d_pred로 모델링을 통한 예상 데이터 값이다.
    3. 결국, 우리는 d_obs와 가장 유사한 d_pred를 만들어서 실제 m값을 추정하는 것이다.
  3. MCMC algorithm
    1. nsampling 값을 정하고 그에 맞춰 모든 변수들의 memory allocation
    2. initial modeling으로부터의 d_pred값을 Markov-chain의 첫 element(m0)로 설정
    3. start constructing candidate model(m')
      1. 이때 보통의 MCMC는 move 혹은 perturb parameter만 이뤄지지만
      2. rj-MCMC의 경우는 birth/death 개념까지 포함된다.
      3. perturbation: m' = m_(k-1)+dm_(k)
    4. compute the probability of acceptance(alpha) of m' from Bayes' rule
      1. likelihood
      2. prior
      3. posterior: P(m_(k)|d)
    5. M-H sampling: random number(r) < alpha 일때만 m'을 accept
      1. r의 적용을 통해서 확률적으로 accept하기 때문에,
      2. local minima에 빠지지 않고 나올 수 있게 된다. (optimization 관련)
      3. 아무튼 m'이 accept되면 m_(k) = m' 하고 k=k+1
    6. inversion의 수렴 확인 후, burn-in point 이후부터 nsampling만큼 Markov-chain 형성
  4. Post processing


친절한 review

통계학과 Bayesian Modeling and Inference 수업의 친절한 syllabus를 통해 우리가 빠트린 부분을 보충해보자.


Bayesian Modeling and Inference - Course topic

  1. Review of distribution theory and basic sampling methods
  2. Fundamentals of Bayesian inference
  3. Conjugate priors in one-parameter families
    1. Conjugate prior 란: posterior distribution 과 same family distribution 을 갖는 prior 이다.
    2. 하지만 이게 왜 중요할까???
  4. Bayesian inference, Credible sets, Marginal likelihood & Bayes factor, Hypothesis testing
  5. Posterior computation with non-conjugate priors
    1. Laplace approximation, Importance sampling, Metropolis-Hastings algorithms
    2. Markov chain Monte Carlo methods, Gibbs & slice sampling, MCMC diagnostics
  6. Bayesian linear & generalized linear model
  7. Bayesian model selection & model averaging
  8. Hierarchical models, Mixure models and dynamic models
    1. Hierarchical modeling 이란: Bayesian method를 사용하여 multiple level로 이루어진 posterior distribution 의 parameters 를 estimate 하는 stastical model 이란다.
    2. 그래서 뭘까???
  9. Decision theory & asymptotics