AI

マルコフ連鎖とは?仕組み・遷移行列・定常分布とAI実装での使いどころ

AIエンジンの応用分野

マルコフ連鎖とは、次に起こる状態が「一つ前の状態」だけで決まる確率過程です。過去の履歴をすべて覚えていなくても、現在の状態さえ分かれば次の確率が定まる——この無記憶性が、天気予測から強化学習、検索エンジンのランキングまで幅広い技術の土台になっています。この記事では、マルコフ性・遷移行列・定常分布という基本の仕組みを具体例で押さえたうえで、強化学習のマルコフ決定過程、MCMC、言語モデルの系譜といったAI実装での使われ方までを実装者の目線で整理する構成です。最後に、マルコフ連鎖モデルを採用できる条件と、深層学習へ切り替えるべき場面の判断基準まで示します。

目次

まとめ:マルコフ連鎖の要点とAI実装で押さえる判断基準

マルコフ連鎖の核は、未来が現在の状態だけに依存する「マルコフ性」にあります。この前提を遷移行列という数表に落とし込むと、nステップ後の状態分布は行列のn乗で計算でき、条件が整えば時間が経つほど「定常分布」と呼ばれる一定の割合へ収束します。状態が離散的で、遷移が現在の状態だけで説明できる問題では、少ないパラメータで挙動を予測でき、計算も追いやすいのが利点です。

AIの現場では、強化学習の定式化(マルコフ決定過程)、ベイズ推定のサンプリング(MCMC)、初期の言語モデル(nグラム)などにマルコフ連鎖が組み込まれてきました。一方で、長い文脈の記憶が要る課題では単純なマルコフ連鎖は力不足で、そこがTransformerなど深層学習に置き換わった分岐点です。採用の可否は「状態を離散化できるか」「マルコフ性が近似的にでも成り立つか」で見極めます。

マルコフ連鎖の定義と、未来が現在だけで決まるマルコフ性の考え方

まず概念の骨格を押さえます。マルコフ連鎖は、時間とともに状態が確率的に移り変わる「確率過程」の一種で、遷移のルールが単純化されている点に特徴があります。

マルコフ性とは何か:一つ前の状態だけで次が決まる無記憶性の性質

マルコフ性とは、次の時刻の状態の確率が、直前の状態だけで決まり、それより前の履歴には左右されない性質を指します。式で書けば、状態 X が時刻 t+1 に s になる確率は、時刻 t の状態が分かれば t-1 以前を条件に加えても変わりません。すごろくを想像すると分かりやすく、いま何マス目にいるかだけで次に進む確率が決まり、どういう経路でそのマスへ来たかは効いてきません。この「履歴を持たない」割り切りが、モデルを軽くし、解析を可能にします。

状態・遷移確率・状態遷移図というマルコフ連鎖を形づくる構成要素

マルコフ連鎖は三つの部品でできています。取りうる値の集合である「状態」、ある状態から別の状態へ移る確率である「遷移確率」、そしてそれらを丸と矢印で描いた「状態遷移図」です。天気の例なら、状態は晴れと雨の二つ、遷移確率は「晴れの翌日が雨になる確率0.2」といった値になります。状態遷移図では各状態を頂点、遷移確率を矢印のラベルで表し、モデルの全体像を一目で把握できる図です。実装では、この図をそのまま次項の行列に写し取ります。

離散時間と斉時性:時刻が進んでも遷移確率が変わらない前提条件

本記事が扱うのは、時刻を1、2、3と飛び飛びで数える「離散時間マルコフ連鎖」です。加えて多くの実務モデルは、遷移確率が時刻によらず一定である「斉時(時間的一様)」を仮定します。斉時なら遷移行列を一つ用意すれば全時刻を記述でき、計算も単純です。現実には季節で天気の遷移が変わるように、遷移確率が時刻に依存する非斉時な連鎖もあります。まずは斉時・離散時間という扱いやすい設定から入り、必要に応じて条件を緩めるのが定石です。

遷移行列と定常分布から読み解くマルコフ連鎖の確率計算の仕組み

マルコフ連鎖の強みは、確率のふるまいを行列演算に置き換えて計算できる点にあります。ここが実装で最初に手を動かす部分です。

遷移行列(推移確率行列)の作り方と各行の和が一になるという制約

遷移行列は、行に「今の状態」、列に「次の状態」を並べ、その交点に遷移確率を入れた正方行列です。各行は「今この状態にいるとき、次にどこへ行くか」の全確率を表すため、行ごとの合計は必ず1になります。この制約を満たす行列が確率行列です。天気の例を行列にすると次のようになります。

今日の状態 翌日が晴れ 翌日が雨
晴れ 0.8 0.2
0.4 0.6

実装ではこの表をそのまま二次元配列にします。行和が1から外れていたら、それは確率の割り当てミスなので、行列を組んだ直後に各行の合計を検算する癖をつけると事故を防げます。

nステップ後の状態分布は遷移行列のn乗で求まるという計算原理

今日の状態分布を横ベクトルで表し、遷移行列を右から掛けると、翌日の状態分布が得られます。2日後は行列を2回、n日後はn回掛ければよく、遷移行列の n 乗が「nステップ後の遷移確率」をまとめて与える形です。これはチャップマン・コルモゴロフの関係式が保証する性質で、途中の経路をすべて足し上げた結果が行列の積に一致します。先ほどの天気行列なら、今日が晴れのときの数日後の晴れ確率は、行列を繰り返し掛けるだけで数値が求まる仕組みです。ループを回さず線形代数ライブラリの行列積に任せれば、状態数が増えても計算は安定します。

定常分布と極限分布:既約かつ非周期なら一つの分布へ収束する性質

行列を掛け続けると、初期状態が晴れでも雨でも、状態分布がある一定のベクトルへ近づいていきます。これが定常分布で、遷移行列を P、分布ベクトルを π とすると πP=π を満たす分布です。天気の例では π が概ね(晴れ 0.67、雨 0.33)に収束し、初期条件を忘れて長期的な晴天率へ落ち着きます。ただし収束するには条件があり、どの状態からどの状態へも到達できる「既約性」と、周期的にぐるぐる回らない「非周期性」がそろって初めて唯一の定常分布へ収束する点に注意が必要です。実装では固有値1に対応する固有ベクトルを求めるか、行列を十分な回数掛けて収束を確認します。

AIと機械学習の実装でマルコフ連鎖モデルが使われる代表的な場面

ここからが実装者向けの本題です。マルコフ連鎖は単体の予測モデルとしてより、AIの各手法を支える土台として組み込まれてきました。代表例を、重み付けをつけて見ていきます。

強化学習の理論的な基盤となるマルコフ決定過程と方策設計の関係

強化学習の標準的な定式化であるマルコフ決定過程(MDP)は、マルコフ連鎖に「行動」と「報酬」を加えた枠組みです。エージェントが状態で行動を選ぶと、次の状態が遷移確率に従って決まり、報酬が返る——この状態遷移の骨格がまさにマルコフ連鎖です。マルコフ性を仮定するからこそ、価値関数を現在の状態だけの関数として定義でき、ベルマン方程式による逐次計算が成り立ちます。ロボット制御や在庫管理を強化学習で解く設計に入る前に、対象の状態遷移がマルコフ性で近似できるかを最初に確認するのが実装の要点です。実務での位置づけは強化学習の仕組みと実装を整理した解説記事と合わせて押さえると理解が進みます。

MCMCがマルコフ連鎖でサンプリングを進める仕組みと使いどころ

直接サンプリングが難しい複雑な確率分布から標本を得たいとき、目的の分布を定常分布に持つマルコフ連鎖を人工的に設計し、その連鎖を長く歩かせて標本を集める手法がMCMC(マルコフ連鎖モンテカルロ法)です。ベイズ推定で事後分布を近似する場面が典型で、パラメータ空間を確率的に探索しながら、定常分布への収束を利用して分布の形をなぞります。マルコフ連鎖の「十分歩けば定常分布に落ち着く」という性質こそが、サンプリングの正当性の根拠です。アルゴリズムの中身やベイズ推定への当てはめはMCMC(マルコフ連鎖モンテカルロ法)の仕組みを扱った記事で詳述しており、本記事はその前提となる概念の入り口にあたります。

言語モデルの系譜:nグラムのマルコフ連鎖から深層学習への転換

文章生成の初期モデルは、直前の数語から次の語を予測するnグラムモデルで、これは語の並びをマルコフ連鎖とみなす発想です。直前1語だけを見るなら1次のマルコフ連鎖、直前2語なら2次、と履歴の長さを次数で調整します。この方式は軽快ですが、数語より前の文脈を捨てるため、長い依存関係を扱えない弱点を抱えていました。文脈全体を見渡すTransformerやRNNといったニューラルネットワークの基礎を解説した記事が主流になり、大規模言語モデル(LLM)とは何かをまとめた記事で扱う現在のモデルへとつながっていきます。マルコフ連鎖は、その系譜の出発点として押さえる価値があります。

PageRankや隠れマルコフモデルなどの実務システムへの応用例

検索エンジンの初期ランキング指標であるPageRankは、ウェブ上のリンクをたどるランダムサーファーをマルコフ連鎖でモデル化し、その定常分布をページの重要度とみなす仕組みです。音声認識や品詞タグ付けで長く使われてきた隠れマルコフモデル(HMM)は、直接は観測できない内部状態がマルコフ連鎖に従うと仮定し、観測系列から状態系列を推定します。ほかにも顧客の購買状態の遷移分析や、設備の故障状態の推移予測など、状態が離散的で遷移が現在に依存する業務課題が主な対象です。深層学習が主役の領域でも、軽量で説明しやすいマルコフモデルが選ばれる場面は残っています。

マルコフ連鎖モデルを採用できる条件と深層学習へ切り替える判断

独自の観点として、実務でマルコフ連鎖モデルを使うべきか否かの線引きを言い切ります。玉虫色にせず、条件で分けるのが実装判断のコツです。

マルコフ連鎖モデルが有効に働くための前提条件と向いている課題

マルコフ連鎖モデルが力を発揮するのは、次の前提がそろう課題です。第一に、状態を有限個に離散化できること。第二に、次の状態が現在の状態だけでおおむね説明でき、マルコフ性が近似的に成り立つこと。第三に、透明性が求められ、遷移確率という形で挙動を人に説明したいこと。設備の稼働・故障の推移、会員のステージ遷移、天候や需要の粗い予測などが好例です。学習データが少なくても、遷移確率を頻度から素直に推定でき、計算コストも小さく収まります。まず単純なマルコフモデルで当たりをつけ、精度が足りなければ複雑な手法へ進む、という順序が費用の効率化につながります。

長い文脈依存や記憶が必要な課題では深層学習へ切り替える判断基準

逆に、マルコフ連鎖を採用すべきでない場面もはっきりしています。数十語前の主語が結末を左右する文章生成のように、遠い過去の情報を覚えておく必要がある課題では、直前の状態しか見ないマルコフ連鎖は原理的に力不足です。状態数が組み合わせで爆発するケース、遷移が時刻や外部要因で頻繁に変わるケースも不向きで、ここは長期依存を学習できる深層学習へ切り替える判断になります。見極めの目安は、「直前の状態だけで次を説明したとき、許容できる精度に届くか」を小さく検証することです。状態設計やモデル選定、既存業務データからの遷移確率の推定でつまずくなら、AI受託開発・生成AI開発のサービスで要件整理から実装まで相談する選択肢もあります。手法の当たり外れを早い段階で切り分けられれば、無駄な作り込みを避けられます。

よくある質問

マルコフ連鎖について、検索でよく寄せられる疑問に簡潔に答えます。

マルコフ連鎖とマルコフ過程は何が違うのですか?

マルコフ過程はマルコフ性を持つ確率過程の総称で、時間や状態が連続の場合も含みます。そのうち、状態が離散的なものを一般にマルコフ連鎖と呼びます。時間も飛び飛びなら離散時間マルコフ連鎖です。実務で「マルコフ連鎖」と言うときは、状態が有限個で時間が離散のケースを指すことがほとんどです。

マルコフ連鎖の「次数」とは何を表しているのですか?

次数は、次の状態を決めるために何ステップ前までの履歴を見るかを表します。直前1状態だけなら1次、直前2状態を見るなら2次です。高次にすれば表現力は上がりますが、状態の組み合わせが増えて必要なデータ量が跳ね上がります。多くの場面では1次で近似し、精度が足りないときだけ次数を上げます。

定常分布はどんなマルコフ連鎖でも必ず一つに決まりますか?

いいえ。唯一の定常分布へ収束するには、どの状態からもすべての状態へ到達できる既約性と、周期的に循環しない非周期性が必要です。これらが崩れると、初期状態によって収束先が変わったり、分布が振動して収束しなかったりします。実装では収束の有無を数値で確認します。

マルコフ連鎖はPythonでどう実装すればよいですか?

遷移行列を二次元配列で用意し、状態分布ベクトルに行列を掛ける演算を繰り返すのが基本です。数値計算ライブラリの行列積を使えば数行で書け、固有値計算の関数を使えば定常分布を直接求められます。まず各行の和が1かを検算し、次に行列を十分な回数掛けて分布が収束するかを確かめる流れが手堅い進め方です。

マルコフ連鎖と大規模言語モデルはどう関係しますか?

初期の言語モデルは直前数語から次語を予測するnグラム、つまりマルコフ連鎖の考え方でした。現在の大規模言語モデルは文脈全体を見るTransformerを基盤とし、長い依存関係を扱える点でマルコフ連鎖の限界を越えています。系譜としてはマルコフ連鎖が出発点にあり、その制約を解く形で深層学習型のモデルへ発展しました。

関連記事

資料請求

RELATED POSTS 関連記事