마르코프 목걸이는 무엇입니까?
12092 단어 algorithmsbeginners
마르코프 체인은 가능한 사건의 랜덤 프로세스 (랜덤 프로세스) 이다.
그래서 만약 당신이 정보나 데이터를 제공한다면 사건의 변화를 바꿀 수 있다.
이제 어떻게 작동하는지 봅시다.
예를 들어, 다음과 같은 세 가지 입력이 있습니다.
우리 는 한 걸음 한 걸음 알고리즘 의 작용 을 배웁시다
건축 사슬
["I", "am", "Sam."]
["I", "am", "Kevin."]
["I", "do"]
우리는 모든 표기된 문장을 교체해야 한다.
교체 목록을 나열합니다.
[["I", "am", "Sam."], ["I", "am", "Kevin."], ["I", "do"]]
이 목록에서 교체될 때, 우리는 우리의 체인을 만들어야 한다.
"I"{
"I": {
}
}
보시다시피 "I"만이 문장을 생성합니다.그래서 너는
"I I I I I I"이라는 출력만 얻을 수 있어!"am"{
"I": {
"am": 1
},
"am": {
}
}
"am"개의 단어가 "I"개의 뒤에 있기 때문에 우리는 그것을 추가했다"I" 노드에서1이 1 / 1으로 변했다.있다"I"개의 단어 이후에 한 가지 가능성만 나타날 수 있다.우리"am" 이외에 가능한 단어를 위한 또 다른 "I" 만들기이것은
"am" 이후에 발생할 수 있다."Sam."{
"I": {
"am": 1
},
"am": {
"Sam.": 1
},
"Sam.": {
}
}
"Sam."을 "am"에 추가합니다. "am" 이후이기 때문입니다.우리는
"am" 이외에 가능한 단어를 위해 다른 노드를 만들었다이것은
"Sam." 이후에 발생할 수 있다.간단히 말하면, 우리는 이전의
"am"과 같은 일을 했다.우리의 문장은 이미 끝났으니 다른 문장을 계속해라.
"I"우리는 어떤 일도 할 필요가 없다. 왜냐하면 "I"은 이미 존재하기 때문이다.그것은 어떤 노드에도 없다.
"am"두 번째 문장, 첫 번째 단어의 과정은 같다."Kevin.{
"I": {
"am": 1
},
"am": {
"Sam.": 0.5,
"Kevin.": 0.5
},
"Sam.": {
},
"Kevin.": {
}
}
"am" 노드에 추가했지만 값은 0.5입니다.왜?... 때문에두 가지 가능한 단어가 있는데,
"Sam"과 "Kevin."이다.따라서 이 값은
1 / 2 = 0.5이어야 한다.노드를 만들었습니다."am" 이외에, 우리가 모든 새로운 노드를 위해 한 것처럼."I"아무것도 없다그 어떠한 노드에도 존재하지 않기 때문이다."do"{
"I": {
"am": 0.666666667,
"do": 0.333333333
},
"am": {
"Sam.": 0.5,
"Kevin.": 0.5
},
"Sam.": {
},
"Kevin.": {
},
"do": {
}
}
현재 왜 "am"이 0.666666667과 "do" 0.333333333으로 바뀌었습니까?간단한 계산을 합시다.지금, 두 가지 가능한 단어가 있다
"I", "am", "do" 이후.따라서 값은 0.5에서 0.5이어야 한다.하지만
"am" 노드 뒤에 단어가 있을 수 있다.계수가 2니까"am"의 값은 1 - (1 / (1 + 2))이어야 한다.하지만 "do"은 그렇습니다.아니오, 그래서 금액을 바꾸지 않을 거예요.그래서 만약에
"am"의 금액이...1 - (1 / (1 + 2)) = 0.666666667, "do"은1 - 0.666666667 = 0.333333333 .
문장 만들기
만약 우리가 지금 세 단어의 문장을 만들어야 한다고 가정하자.
그래서 우리는 3개의 랜덤 단어를 선택할 것이다. 그러나 그것들은
어떤 말로 올 수 있겠는가!우리 시작합시다!
우리가 작성한 데이터는 다음과 같습니다.
{
"I": {
"am": 0.666666667,
"do": 0.333333333
},
"am": {
"Sam.": 0.5,
"Kevin.": 0.5
},
"Sam.": {
},
"Kevin.": {
}
}
단계는 다음과 같습니다.응, 우리의 행운의 노드는...
I ! II 노드에 진입합니다.가능한 문자는 다음과 같습니다.am do 0.666666667에 am을 곱한 목록을 만듭니다.0.333333333 곱하기 do..이제 우리의 행운의 노드를 선택하자!우리의 행운의 노드는...
do ! 이것은 매우 낮은 기회다.문장:
I dodo 노드에 진입합니다.가능하다, ~할 수 있다,...우리는 지금 무엇을 해야 합니까?우리 문장은 여기까지인가요?아니오
우리 다시 무작위로 노드를 선택하자.
Kevin. !문장:
I do Kevin.이것은 우리의 세 글자의 문장: I do Kevin..우리의 알고리즘은 계속 이렇게 될 것이다.
만약 우리가 모든 가능한 문장의 수량을 계산하려고 한다면:
2^len(data)
따라서, 만약 우리의 데이터에 4개의 유일한 단어가 있다면, 계수는2^4 = 16구.그렇습니다!읽어주셔서 감사합니다!
Reference
이 문제에 관하여(마르코프 목걸이는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lyfolos/what-is-markov-chain-16o6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)