Hidden Markov Model (HMM)
統計的AIのための隠れマルコフモデル(HMM)について解説します。HMMがアクション認識、シーケンス分析、時間論理においてUltralytics YOLO26とどのように連携するかを学びましょう。
隠れマルコフモデル (HMM) は、内部プロセスが直接見えない(したがって「隠れている」)システムをモデル化するために使用される統計的フレームワークであり、観測可能なイベントのシーケンスを通じて推論することができます。現代のディープラーニングは複雑なシーケンスを処理するように進化していますが、HMMは 統計的AI および確率論における基礎的な概念であり続けます。イベントの順序が重要なコンテキストを提供する 時系列分析 データの分析に特に効果的であり、未来の状態の確率は過去の履歴ではなく現在の状態のみに依存するという中心的な原則に依存しています。
HMMの主要メカニズム#
HMMがどのように機能するかを理解するには、モデルの2つの異なる層である、見えない状態と見える出力とを区別することが不可欠です。モデルは、システムが特定の確率に従って隠れ状態間を遷移し、各ステップで観測を出力すると仮定します。
HMMは、これらの遷移と出力を支配する一連のパラメータによって定義されます。
- 隠れ状態: これらは、特定の時点におけるシステムの根底にある実態を表します。音声モデルにおいて、隠れ状態は特定の音素や単語を表す場合があります。
- 観測可能イベント: これらは、センサーや入力によって実際に収集されるデータポイントです。音声の例では、観測は音声波形やスペクトログラムデータになります。
- 遷移確率: この行列は、ある隠れ状態から別の隠れ状態へ移行する確率を記述します。例えば、天気が「雨」から「晴れ」に変わる確率などです。
- 出力確率: これらは、現在の隠れ状態が与えられた場合に特定の観測が見られる確率を定義します。
- 初期確率: システムが開始する可能性が最も高い状態を決定する分布です。
HMMのトレーニングには通常、トレーニングデータ からこれらのパラメータを推定するための バウム・ウェルチアルゴリズム が含まれます。トレーニングが完了すると、新しい観測値のセットから最も確率の高い隠れ状態のシーケンスをデコードするために ビタビアルゴリズム が一般的に使用されます。
HMMと他のシーケンスモデルの比較#
HMMは他のシーケンス処理ツールと類似点がありますが、アーキテクチャや用途において大きな違いがあります。
- HMM対リカレントニューラルネットワーク (RNN): RNNおよび 長短期記憶 (LSTM) ネットワークは、長範囲の依存関係や非線形パターンをキャプチャできるディープラーニングモデルですが、HMMはマルコフ仮定(短期記憶)によって制限される、よりシンプルで確率的なモデルです。ただし、HMMは大幅に少ないデータを必要とし、はるかに解釈性が高くなります。
- HMM対カルマンフィルター (KF): どちらも状態推定に使用されます。ただし、カルマンフィルターは連続状態(動く車の正確な位置の追跡など)向けに設計されているのに対し、HMMは離散状態(車が「駐車中」、「運転中」、「停止中」のいずれであるかの判定など)に使用されます。
実社会での応用#
ディープラーニング (DL) の台頭にもかかわらず、隠れマルコフモデルはシーケンスに対する確率的推論を必要とするシナリオで依然として広く使用されています。
音声認識と手書き文字認識#
歴史的に、HMMは 音声認識 システムのバックボーンでした。この文脈において、話し言葉は「隠れた」状態であり、マイクによって記録された音声信号は観測値です。HMMは、音声信号を生成した最も確率の高い単語のシーケンスを決定するのに役立ちます。同様に、文字のストローク間の遷移をモデル化することで、筆記体の解読にも役立ちます。
生物学的シーケンス解析#
バイオインフォマティクス の分野では、HMMは遺伝子予測やタンパク質アラインメントに不可欠です。これらはDNAやアミノ酸の配列を分析して、ゲノム内の遺伝子などの機能領域を特定します。「隠れた」状態はコード領域または非コード領域を表し、特定のヌクレオチド(A、C、G、T)が観測として機能します。
コンピュータビジョンにおけるアクション認識#
現代のコンピュータビジョンにおいて、HMMは YOLO26 のようなモデルと組み合わせて 行動認識 を実行できます。YOLOは個々のフレーム内のオブジェクトやポーズを検出し、HMMは時間の経過に伴うこれらのポーズのシーケンスを分析して、「歩行」、「走行」、「転倒」などの行動を分類できます。
ビジョンと状態分析の統合#
データセットとモデルを管理するために Ultralytics プラットフォーム を使用する開発者にとって、シーケンシャルロジックを理解することは極めて重要です。ビジョンモデルは生データの観測(検出)を提供し、それをHMMなどの状態空間モデルに入力して時間的コンテキストを推論することができます。
次の例は、YOLO26 のポーズ推定を使用して観測のシーケンスを生成する方法を示しています。これらのキーポイントは、時間の経過に伴う行動を分類するための、下流のHMMまたは類似のロジックの「観測可能イベント」入力として機能します。
from ultralytics import YOLO
# Load the YOLO26n-pose model for efficient keypoint detection
model = YOLO("yolo26n-pose.pt")
# Run inference on a video source (the 'observable' sequence)
# stream=True creates a generator for memory efficiency
results = model.predict(source="path/to/video.mp4", stream=True)
# Iterate through frames to extract observations
for result in results:
# Each 'keypoints' object is an observation for a potential HMM
keypoints = result.keypoints.xyn.cpu().numpy()
if keypoints.size > 0:
print(f"Observation (Normalized Keypoints): {keypoints[0][:5]}...")
# In a full pipeline, these points would be fed into an HMM decoder現代AIにおける重要性#
トランスフォーマー や大規模言語モデル (LLMs) が 自然言語処理 (NLP) などのタスクでHMMに取って代わったものの、HMMは エッジコンピューティング や低遅延の環境で関連性を保っています。その計算効率により、重い GPU の使用が現実的ではないリソースの限られたシステムに最適です。さらに、透明な確率行列に基づいているため、多くのニューラルネットワークの「ブラックボックス」の性質と比較して、より高い 観測可能性 を提供します。






