从这一小节开始,我们主要来介绍基于马尔科夫链的近似采样过程。具体如何采样,以及整个采样过程中的思维过程,我们随着这节的内容讲解而逐步展开。
1.再看马尔科夫链的稳态
在基于马尔科夫链的采样过程中,发挥核心关键作用的是马尔科夫链的稳态以及稳态分布。稳态的概念,我们在之前的内容中已经详细的讲解过了,为了充分理解他,用好它,我们在这里动态的演示一下一个指定的马尔科夫链的状态转移以及最终到达稳态的过程。
通过下面这段代码运行出来的实际效果,大家会非常直观的理解马尔科夫链的稳态。
代码片段:
import numpy as np
import matplotlib.pyplot as plt
import seaborn
seaborn.set()
transfer_matrix = np.array([[0.7, 0.1, 0.2],
[0.3, 0.5, 0.2],
[0.1, 0.3, 0.6]], dtype='float32')
start_state_array = np.array([[0.50, 0.30, 0.20],
[0.13, 0.28, 0.59],
[0.10, 0.85, 0.05]], dtype='float32')
trans_step = 10
for i in range(3):
stat