Markov Chains 개념 설명 [예제 포함]

게시 됨: 2020-12-18

목차

소개

Markov 체인은 매우 일반적이고 직관적이며 콘텐츠 생성 자동화, 텍스트 생성, 금융 모델링, 순항 제어 시스템 등과 같은 여러 도메인에서 사용되었습니다. 유명 브랜드 Google은 검색 순서를 결정하기 위해 페이지 순위 알고리즘에서 Markov 체인을 사용합니다. .

마르코프 체인은 비교적 간단하며 구현을 위해 수학적 개념이나 고급 통계 지식이 필요하지 않습니다. 마르코프 체인에 대해 잘 이해하고 있다면 확률론적 모델링과 데이터 과학 기술을 배우는 것이 더 쉬워집니다.

이 기사에서는 예제를 통해 Markov 체인이 무엇이며 어떻게 작동하는지 깊이 이해할 수 있습니다.

마르코프 체인이란?

Markov 체인은 이전 이벤트 상태에만 기반하여 다음 상태에 대한 확률 또는 예측을 제공하는 수학적 모델입니다. Markov 체인에 의해 생성된 예측은 해당 시나리오의 전체 이력을 관찰하여 만들어지는 것만큼 좋습니다.

어떤 확률 조건을 기반으로 한 상태에서 다른 상태로의 전환을 경험하는 모델입니다. 마르코프 체인을 정의하는 한 가지 특징은 현재 상태가 어떻게 달성되더라도 미래 상태는 고정되어 있다는 것입니다. 다음 상태의 가능한 결과는 현재 상태와 상태 사이의 시간에만 의존합니다.

읽기: Python 자습서의 Markov 체인

예제가 있는 마르코프 체인 개념

내일의 기상 조건을 예측한다고 가정해 보겠습니다. 그러나 날씨에는 흐림과 맑음의 두 가지 상태만 있을 수 있다는 것을 이미 알고 있습니다. Markov 체인을 사용하여 다음 날 날씨를 어떻게 예측할 수 있습니까?

글쎄, 당신은 현재 날씨 상태를 관찰하기 시작할 것이고 그것은 맑거나 흐릴 수 있습니다. 오늘 날씨가 맑다고 가정해 봅시다. 기후 조건은 항상 여러 전환을 거칩니다. 지난 몇 년간의 날씨 데이터를 수집하고 맑은 날 이후 흐린 날이 올 확률은 0.35로 계산합니다.

또한 맑은 날 이후 맑은 날이 될 확률이 0.65라는 것을 관찰했습니다. 이 분포는 다음날도 맑을 것이라고 예측하는 데 도움이 됩니다. 이것이 현재 날씨 상태가 미래 상태를 예측하는 데 도움이 되는 방식이며 동일한 논리를 적용하여 앞으로의 날씨 상태를 예측할 수 있습니다.

위의 예는 Markov 체인이 메모리가 없다는 Markov의 속성을 보여줍니다. 다음날 기상 조건은 당일 기상 조건으로 이어진 단계에 의존하지 않습니다. 확률 분포는 오늘에서 다음 날로의 전환을 경험해야만 도달합니다.

마르코프 사슬의 또 다른 예는 과일, 야채 또는 고기만 먹는 사람의 식습관입니다. 식사 습관은 다음 규칙에 따라 결정됩니다.

  • 사람은 하루에 한 번만 먹습니다.
  • 사람이 오늘 과일을 먹었다면 내일 그는 같은 확률로 야채나 고기를 먹을 것입니다.
  • 오늘 야채를 먹었다면 내일은 1/10의 확률로 야채, 1/40의 확률로 과일, 1/50의 확률로 고기를 먹을 것입니다.
  • 그가 오늘 고기를 먹었다면 내일 그는 4/10의 확률로 야채를, 6/10의 확률로 과일을 먹을 것입니다. 그는 내일 다시 고기를 먹지 않을 것이다.

마르코프 사슬을 사용하여 그의 식습관을 쉽게 모델링할 수 있습니다. 그 이유는 그가 어제 또는 전날 무엇을 먹었는지에 관계없이 그가 오늘 무엇을 먹었는가에 따라 다음날 선택이 달라지기 때문입니다.

더 읽어보기: 마르코프 체인 소개

마르코프 연쇄 전이 행렬

지금까지 한 상태에서 다른 상태로 전환할 확률을 예측하는 방법을 살펴보았습니다. 그러나 여러 단계에 걸쳐 발생하는 전이의 확률 분포를 찾는 것은 어떻습니까? Markov 연쇄 전이 행렬을 사용하여 여러 단계에 걸친 전이의 확률 분포를 찾을 수 있습니다.

Markov 연쇄 전이 행렬은 한 상태에서 다른 상태로의 전이 확률 분포일 뿐입니다. 다른 가능한 상태 사이의 전환을 표시하기 때문에 전환 매트릭스라고 합니다.

각 상태와 관련된 확률을 해당 상태의 확률 분포라고 합니다. 마르코프 체인을 분석하는데 사용되는 가장 중요한 도구입니다. 예를 들어 N개의 가능한 상태가 있는 경우 전이 행렬(P)은 다음과 같습니다.

P = N x N 행렬

여기서 행(I, J)의 항목은 상태 I에서 상태 J로 전환할 확률을 나타냅니다. 전환 행렬 P의 각 행은 합이 1이어야 합니다.

Markov 체인을 나타내려면 N개의 가능한 상태 각각에서 시작을 설명하는 초기 상태 벡터도 필요합니다. 초기 상태 벡터(X)는 다음과 같이 나타낼 수 있습니다.

X = N x 1 행렬

M 여러 단계를 거쳐 상태 I에서 상태 J로 전환할 확률을 찾고 싶다고 가정합니다. 당신은 강세장, 약세장, 정체된 시장의 세 가지 가능한 상태를 제시했습니다.

위의 예에서 전환 행렬의 첫 번째 열은 강세장 상태, 두 번째 열은 약세장, 세 번째 열은 정체된 시장을 나타냅니다. 행도 비슷한 방식으로 대응합니다.

전이 행렬에서 전이 확률은 P를 단계 수(M)의 거듭제곱으로 올려 계산됩니다. 3단계 전환의 경우 P를 3으로 올려 확률을 결정할 수 있습니다.

위의 P3 행렬을 곱하면 한 상태에서 다른 상태로 전환할 확률 분포를 계산할 수 있습니다.

결론

Markov 체인이 작동하는 방식을 이해했으므로 솔루션에 도달하거나 자동화하기 위해 모든 문제 설명에서 이를 쉽게 구현할 수 있습니다. Markov 체인은 매우 강력하며 다른 고급 모델링 기술의 기반을 제공합니다.

Markov 체인을 이해하면 간단한 모델링 및 샘플링과 같은 여러 기술에 대한 더 깊은 지식을 얻을 수 있습니다.

python, 데이터 과학에 대해 자세히 알고 싶으시면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 전문가와의 멘토링, 업계 멘토와의 1:1 학습, 400시간 이상의 학습 및 최고의 기업과의 취업 지원.

Markov 체인에 대한 흥미로운 실제 사용 사례가 있습니까?

예, 텍스트 생성에서 재무 모델링에 이르기까지 Markov 체인의 흥미로운 실제 사용 사례가 많이 있습니다. 대부분의 텍스트 생성기는 Markov 네트워크를 사용합니다. 체인 시스템은 가짜 텍스트, 대형 기사를 생성하고 연설을 편집하는 데 널리 사용됩니다. 우리가 일반적으로 인터넷에서 볼 수 있는 이름 생성기 역시 Markov 체인을 사용합니다. Markov chains의 또 다른 잘 알려진 응용 프로그램은 다음 단어를 예측하는 것입니다. 자동 완성 및 추천에도 유용합니다. Google PageRank와 Subreddit Simulator는 Markov 체인을 사용하여 전체 하위 레딧의 자료 생산을 자동화하는 대표적인 예입니다.

데이터 과학을 배우는 동안 Markov 체인이 중요합니까?

Markov 체인은 데이터 과학 학습자에게 필수 사항은 아니지만 확률적 모델링 및 데이터 과학 기술을 학습하는 데 탁월한 접근 방식을 제공할 수 있습니다. Markov Chain은 이론적으로 합리적으로 간단하며 복잡한 통계 또는 수학적 아이디어 없이도 구현할 수 있습니다. 데이터 과학의 가장 눈에 띄는 응용 프로그램은 예측을 하는 것이며 데이터 과학자는 이러한 예측을 수행하기 위해 마르코프 체인의 조건부 확률을 사용합니다. 그것은 모든 프로세스의 미래 상태 분포가 해당 프로세스의 현재 상태에 의해서만 결정된다는 스토캐스틱 프로세스의 메모리 없는 기능에서 따온 것입니다.

Markov 체인은 Google의 PageRank 알고리즘에 어떤 도움이 됩니까?

Google의 PageRank 알고리즘은 잘 알려진 링크 기반 순위 알고리즘입니다. 페이지 순위는 콘텐츠를 기반으로 페이지를 평가하는 대신 상호 연결된 구조를 기반으로 순위를 매깁니다. 단순히 현재 상태를 조사함으로써 Markov Chain은 한 상태에서 다른 상태로 전환되는 시스템의 동작을 예측하는 데 도움이 될 수 있습니다.

사용자가 검색 엔진에 쿼리를 입력하면 PageRank 알고리즘은 Markov 네트워크를 사용하여 쿼리 단어와 일치하는 웹 사이트를 식별하고 해당 페이지를 PageRank 순서대로 사용자에게 보여줍니다. PageRank 알고리즘은 페이지의 콘텐츠가 아닌 웹의 링크 구조만을 기반으로 웹사이트의 중요성을 결정합니다.