통계적 인공지능을 위한 숨겨진 마르코프 모델(HMM)을 탐구하세요. 행동 인식, 시퀀스 분석, 시간 논리를 위해 Ultralytics 함께 HMM이 작동하는 방식을 알아보세요.
숨겨진 마르코프 모델(HMM) 은 내부 과정이 직접 관측되지 않으므로 '숨겨진' 상태이지만, 관측 가능한 사건들의 시퀀스를 통해 추론할 수 있는 시스템을 모델링하는 데 사용되는 통계적 프레임워크입니다. 현대 딥러닝이 복잡한 시퀀스 처리를 위해 진화했음에도, HMM은 통계적 AI와 확률 이론의 기초 개념으로 남아 있습니다. 이 모델은 사건의 순서가 중요한 맥락을 제공하는 시계열 분석 데이터 분석에 특히 효과적이며, 미래 상태의 확률은 오직 현재 상태에만 의존하고 선행된 역사에는 의존하지 않는다는 핵심 원리에 기반합니다.
HMM의 작동 방식을 이해하려면 모델의 두 가지 별개의 계층, 즉 보이지 않는 상태와 보이는 출력을 구분하는 것이 필수적이다. 이 모델은 시스템이 특정 확률에 따라 숨겨진 상태 사이를 이동하며 각 단계마다 관측값을 배출한다고 가정한다.
HMM은 이러한 상태 전환과 상태 발현을 제어하는 매개변수 집합으로 정의됩니다:
HMM 훈련은 일반적으로 훈련 데이터로부터 이러한 매개변수를 추정하기 위해 Baum-Welch 알고리즘을 사용합니다. 훈련이 완료되면, 새로운 관측값 집합으로부터 가장 가능성이 높은 숨겨진 상태 시퀀스를 해독하기 위해 Viterbi 알고리즘이 흔히 사용됩니다.
HMM은 다른 시퀀스 처리 도구와 유사점을 공유하지만, 아키텍처와 적용 측면에서 크게 다릅니다:
딥 러닝(DL)의 부상에도 불구하고, 시퀀스에 대한 확률적 추론이 필요한 시나리오에서는 여전히 숨겨진 마르코프 모델이 널리 사용된다.
역사적으로 HMM은 음성 인식 시스템의 핵심이었습니다. 이 맥락에서 발화된 단어들은 "숨겨진" 상태이며, 마이크로폰이 기록한 오디오 신호는 관측값입니다. HMM은 오디오 신호를 생성한 가장 가능성이 높은 단어 순서를 결정하는 데 도움을 줍니다. 마찬가지로, 문자 획 사이의 전환을 모델링함으로써 필기체 해독에도 기여합니다.
생물정보학 분야에서 HMM은 유전자 예측과 단백질 정렬에 핵심적 역할을 합니다. 이들은 DNA 또는 아미노산 서열을 분석하여 게놈 내 유전자와 같은 기능적 영역을 식별합니다. "숨겨진" 상태는 코딩 영역 또는 비코딩 영역을 나타낼 수 있으며, 특정 뉴클레오티드(A, C, G, T)는 관측값으로 작용합니다.
현대 컴퓨터 비전 분야에서 HMM은 다음과 같은 모델과 결합될 수 있다 YOLO26 과 결합되어 동작 인식을 수행할 수 있습니다. YOLO 개별 프레임에서 객체 또는 자세를 YOLO 반면, HMM은 시간에 따른 이러한 자세의 시퀀스를 분석하여 "걷기", "달리기" 또는 "넘어지기"와 같은 classify 수 있습니다.
개발자를 위한 Ultralytics 데이터셋과 모델을 관리하는 개발자에게는 순차적 논리를 이해하는 것이 매우 중요합니다. 비전 모델은 원시 관측값(검출)을 제공하며, 이를 HMM과 같은 상태 공간 모델에 입력하여 시간적 맥락을 추론할 수 있습니다.
다음 예시는 YOLO26 자세 추정법을 사용하여 관측 시퀀스를 생성하는 방법을 보여줍니다. 이러한 키포인트는 하류 HMM 또는 유사한 로직에 대한 "관측 가능한 이벤트" 입력으로 활용되어 시간에 따른 classify 수 있습니다.
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
변압기와 대규모 언어 모델(LLM)이 자연어 처리(NLP)와 같은 작업에서 HMM을 능가했지만, HMM은 에지 컴퓨팅 및 저지연 환경에서 여전히 유효합니다. 계산 효율성 덕분에 제한된 자원을 가진 시스템에서 무거운 GPU 사용이 불가능한 시스템에 이상적입니다. 또한, 투명한 확률 행렬을 기반으로 하기 때문에 많은 신경망의 "블랙박스" 특성에 비해 더 높은 관측 가능성을 제공합니다.