マルコフ連鎖とは何か、いつ使うか。 and how they work
Markov chain is quite common, and relatively simple, way to statistically model random process. テキスト生成から金融モデリングまで、多くの異なる領域で使用されてきました。 人気のある例は r/SubredditSimulator で、これはマルコフ連鎖を使用して、サブエディット全体のコンテンツの作成を自動化するものです。 全体として、マルコフ連鎖は概念的に非常に直感的であり、高度な統計や数学の概念を使わずに実装できるという点で、非常に利用しやすいものです。
シナリオ
最初に、非常に一般的な例で説明します。 マルコフ連鎖は基本的に、マルコフ特性を満たす、ある確率分布によって決定される遷移の集合から構成されます。
この例で、確率分布が現在の日から次の日までの遷移を観察することによってのみ得られることを観察してください。 これはマルコフ過程の特徴である、記憶を持たないというマルコフ特性を示しています。 このため、一般に、何らかのトレンドが発生すると予想されるシーケンスをうまく作成することができない。 例えば、マルコフ連鎖は単語の出現頻度から著者の文体を模倣することはできても、深い意味や主題を含むテキストを生成することはできないだろう。 したがって、事前の状態の完全な連鎖を考慮することができないため、文脈依存のコンテンツを生成する能力がありません。
The Model
Formally, a Markov chain is a probabilistic automaton. 状態遷移の確率分布は通常、マルコフ連鎖の遷移行列として表現される。 さらに、遷移行列は確率行列でなければならず、各行のエントリの合計がちょうど 1 になる行列でなければなりません。
なお、, マルコフ連鎖はまた、N×1の行列(ベクトル)で表される初期状態ベクトルを持ち、これはN個の可能な状態のそれぞれから開始する確率分布を記述するものである。 ベクトルのエントリ I は、状態 I で始まるチェーンの確率を記述します。
これら二つのエンティティが、通常マルコフチェーンを表すために必要なすべてである。
ある状態から別の状態に遷移する確率を求める方法はわかりましたが、その遷移が複数のステップで発生する確率を求めるのはどうでしょうか。 これを定式化すると、今度は状態Iから状態JにMステップで移行する確率を求めたい。 結論から言うと、これは実は非常に簡単に求めることができる。 遷移行列Pが与えられたとき、PをMの累乗にした行列のエントリ(I、J)の値を計算すればよいのである。 しかし、M の値が大きい場合、簡単な線形代数に慣れていれば、行列のべき乗を上げるより効率的な方法は、まず行列を対角化することです。
Conclusion
マルコフ連鎖の基本がわかったので、次は好きな言語で簡単に実装できるようになりましょう。 コーディングが得意でない場合は、マルコフ連鎖とマルコフ過程のより高度な特性もたくさんありますので、そちらに飛び込んでみてください。 私の考えでは、理論的なルートは隠れマルコフ過程やMCMCに向かうのが自然な流れだと思います。 単純なマルコフ連鎖は、他のより洗練されたモデリング技術の構成要素ですので、この知識があれば、信念モデリングやサンプリングといったトピックの中のさまざまな技術に進むことができます
。