숨겨진 Markov 모델과 신경망의 차이점은 무엇입니까?


40

통계에 발이 젖었으므로이 질문이 이해가되지 않으면 죄송합니다. Markov 모델을 사용하여 숨겨진 상태 (불공정 카지노, 주사위 롤 등) 및 신경망을 예측하여 사용자가 검색 엔진에서 클릭 한 클릭을 연구했습니다. 둘 다 우리가 관측 값을 사용하여 알아 내려고 애썼던 상태를 숨겼습니다.

이해하기 위해 둘 다 숨겨진 상태를 예측하므로 신경망에서 Markov 모델을 언제 사용할지 궁금합니다. 그들은 비슷한 문제에 대한 다른 접근 방식입니까?

(나는 학습에 관심이 있지만 또 다른 동기 부여가 있습니다. 숨겨진 Markov 모델을 사용하여 해결하려고하지만 문제가 생길 수 있으므로 문제가있어 다른 것을 사용하도록 전환 할 수 있는지 확인하는 데 관심이있었습니다.)


2
당신은 여기에서 볼 수도 있습니다 : stats.stackexchange.com/questions/4498/...
Nucular에게

답을 선택하거나 원하는 것을 더 명확하게 설명 하시겠습니까?
포식자

답변:


27

숨겨진 것과 관찰되는 것

숨겨진 Markov 모델에 숨겨진 것은 개별 혼합 모델에 숨겨진 것과 동일하므로 명확성을 위해 숨겨진 상태의 역학을 잊고 유한 혼합 모델을 예로들 수 있습니다. 이 모델에서 '상태'는 각 관측을 유발 한 구성 요소의 정체성입니다. 이러한 유형의 모델에서 이러한 원인은 결코 관찰 되지 않으므로 , '숨겨진 원인'은 통계적으로 관찰 된 데이터가 소스 구성 요소를 알 때 제거되는 한계 의존성을 갖는다는 주장으로 변환됩니다. 그리고 소스 구성 요소는이 통계적 관계를 충족시키는 것으로 추정됩니다.

S 자형 중간 단위를 갖는 피드 포워드 다층 신경망에 숨겨진 것은 추론의 대상이되는 출력이 아니라 해당 단위의 상태입니다. 네트워크의 출력이 분류, 즉 가능한 출력 카테고리에 대한 확률 분포 인 경우, 이러한 숨겨진 단위 값은 카테고리를 분리 할 수있는 공간을 정의합니다. 이러한 모델을 학습하는 요령은 문제가 선형 인 (입력 장치에서 매핑을 조정하여) 숨겨진 공간을 만드는 것입니다. 결과적으로 시스템 전체에서 비선형 결정 경계가 가능합니다.

생성 대 차별

혼합 모델 (및 HMM)은 데이터 생성 프로세스의 모델로, 가능성 또는 '전달 모델'이라고도합니다. 각 상태의 사전 확률에 대한 몇 가지 가정과 함께 베이 즈 정리 (생성 접근법)를 사용하여 숨겨진 상태의 가능한 값에 대한 분포를 유추 할 수 있습니다. '선점'이라고 불리는 반면, 가능성의 이전 및 매개 변수는 일반적으로 데이터에서 학습됩니다.

혼합 모델 (및 HMM)과 달리 신경망은 출력 범주에 대한 사후 분포를 직접 배웁니다 (차별적 접근). 이는 추정 동안 출력 값이 관찰 되었기 때문에 가능합니다. 그리고 그것들이 관찰 되었기 때문에, 혼합물과 같은 가능성에 대한 이전 및 특정 모델로부터 사후 분포를 구성 할 필요가 없습니다. 후자는 데이터에서 직접 학습되므로 더 효율적이며 모델에 덜 의존합니다.

믹스 앤 매치

상황을 좀 더 혼란스럽게 만들기 위해, 이러한 접근법은 혼합 모델 (또는 HMM) 상태가 실제로 관찰되는 경우와 같이 혼합 될 수 있습니다. 그것이 사실 일 때, 그리고 여기에 관련이없는 다른 상황에서, 다른 생성 모델에서 차별적으로 훈련하는 것이 가능합니다. 유사하게, HMM의 혼합 모델 매핑을보다 유연한 순방향 모델, 예를 들어 신경망으로 대체 할 수 있습니다.

질문

따라서 두 모델 모두 숨겨진 상태를 예측하는 것은 사실이 아닙니다. HMM 사용하면 포워드 모델이 기대하는 종류 일지라도 숨겨진 상태를 예측할 있습니다. 신경망은 아직 관측되지 않은 상태, 예를 들어 예측자가 이용 가능한 미래 상태 를 예측하는데 사용될 수있다 . 이러한 종류의 상태는 원칙적으로 숨겨져 있지 않으며 아직 관찰되지 않았습니다.

언제 다른 것을 사용하지 않습니까? 신경망은 내 경험상 다소 어색한 시계열 모델을 만듭니다. 또한 출력을 관찰했다고 가정합니다. HMM은 그렇지 않지만 실제로 숨겨진 상태를 제어 할 수는 없습니다. 그럼에도 불구하고 그것들은 적절한 시계열 모델입니다.


2
+1 매우 좋습니다. 으로 Similarly it is possible to replace the mixture model mapping of an HMM with a more flexible forward model, e.g., a neural network., 방출 확률 p (Observed | Hidden)을 피드 포워드 NN으로 대체한다는 의미입니까? 나는 몇몇 곳에서 이것을 보았지만 아무도 설명하지 않았다. 그들은 단지 그것을 구현했다고 언급합니다. 나는 그들이 배출을 배우기위한 MLE 단계를 대체한다고 생각하지만 어떻게 이해할 수는 없습니다. 코드 나 설명 예제를 알고 있습니까? 모든 조언을 환영합니다. 감사합니다.
Zhubarb

그것은 그런 식으로 덜 사용되는 것처럼 보입니다 (일부 더 많은 ML 사람이 나를 여기서 교정 할 수 있습니다). Tha는 말했다. 상태 벡터를 출력 조건부로 매핑하는 NN 파라미터를 추정 하는 것은 상태 벡터를 아는 것 (또는 적어도 EM 알고리즘에서와 같이 예상 값을 아는 것)이 관찰 된 입력 및 출력 데이터를 훈련하는 것과 같은 작업이므로 그 부분에 대해 말할 특별한 것은 없습니다.
공역 사전

신경망은 차별적이거나 (피드 포워드 등) 생성 적 (제한된 볼츠만 기계 등) 일 수 있습니다. 또한 LSTM 및 Reservoir Computing 모델과 같은 재귀 신경망은 HMM뿐만 아니라 시계열을 모델링 할 수 있으며, 특히 강력한 비선형 역학 및 긴 상관 관계가있는 시계열의 경우 HMM보다 더 우수합니다.
GuSuku

10

숨겨진 Markov 모델을 사용하여 언어를 생성 할 수 있습니다. 즉, 문자열 패밀리에서 요소를 나열합니다. 예를 들어 시퀀스 세트를 모델링하는 HMM이있는 경우 모델링 할 시퀀스 그룹에 속하는 시퀀스를 나열하여이 패밀리의 멤버를 생성 할 수 있습니다.

신경망, 높은 차원의 공간에서 입력을 가져와 단순히 낮은 차원의 공간에 매핑하십시오 (이 신경망이이 입력을 매핑하는 방식은 훈련, 토폴로지 및 기타 요소를 기반으로합니다). 예를 들어, 64 비트 숫자 이미지를 가져 와서이 숫자가 1인지 0인지를 나타내는 true / false 값으로 매핑 할 수 있습니다.

두 방법 모두 항목이 클래스의 구성원인지 여부를 식별 할 수 있거나 적어도 시도 할 수 있지만 신경망은 위에서 설명한대로 언어를 생성 할 수 없습니다.

사용 가능한 숨겨진 Markov 모델에 대한 대안이 있습니다. 예를 들어, 문제가 HMM의 전원 부족으로 판단되는 경우보다 일반적인 베이지안 네트워크, 다른 토폴로지 또는 확률 적 문맥 자유 문법 (SCFG)을 사용할 수 있습니다 문제를 모델링하십시오. 즉, 더 복잡한 가설을 구별하거나 훨씬 더 복잡한 데이터의 동작을 설명 할 수있는 알고리즘이 필요한 경우입니다.


6
+1 두 번째 단락. 이 답변의 모든 요소를 ​​명확하게 이해하는 사람은 아마도 원래 질문을하지 않을 것임을 지적하고 싶습니다. "나는 단지 통계에 발을 담그고있다"로 시작하는 누군가에게 공식적인 문법을 언급하는 것은 도움이되지 않을 것이다. 여기서 두 번째 단락은 OP가 요구하는 내용의 본질을 포착한다. 첫 번째 단락 대신 HMM은 숨겨진 상태의 조건부 종속성을 모델링합니다. 여기서 각 상태는 관측치에 대한 확률 분포를 갖습니다.
Phillip Cloud

7
이 대답은 단순히 잘못되었습니다. 여기서 신경망은 피드 포워드 인 것으로 가정합니다. 이것은 한 종류의 신경망입니다. 반복 모델은 단순히 단일 입력을 낮은 차원 표현으로 매핑하지 않으며 언어 생성 할 있습니다. 예를 들어 arxiv.org/abs/1308.0850
rd11

연결된 종이에서와 같이 시퀀스를 생성하는 것은 언어를 생성하는 것과 다릅니다. 나는 당신이 그것들을 세트의 요소들 사이에 분별하기 위해 적용 할 수 있다고 생각하지만, 원한다면, 반복되는 모델은 반복적으로 개별 입력에 걸쳐 하나의 큰 입력을 반복하고 하나의 큰 출력을 반환하는 것으로 상상할 수 있습니다. 반복적 인 신경망이 입력없이 출력을 줄 수 있는지 확실하지 않습니다.
Andrew

흠. HMM이 생성 할 수 있다고 생각하고 RNN으로 생성 할 수 없다고 생각하는 예를들 수 있습니까?
rd11

염두에 두는 예는 다음과 같습니다. HMM이 주어지면 HMM이 나타내는 언어에 속하는 일련의 요소를 얻을 수 있습니다. RNN이 그렇게하려면 그 위에 무언가를 추가해야합니다 (예 : 다른 입력을 시도하고 입력을 클래스의 멤버로 표시하는 등). RNN의 경우 여러 입력을보고있을 수 있습니다. (한 번에 하나씩) 단일 "항목"을 나타냅니다. HMM은 언어를 생성하는 목적에보다 자연스럽게 적합합니다.
Andrew

3

내가 찾은 것에서이 질문에 대한 가장 좋은 대답은 이것입니다 : Markov 체인을 심도있게 배우고 있습니다. 이것은 내가 이해 한 것이지만 인터넷의 다른 곳에서 이미 토론이 있었으므로 여기에 링크를 넣었습니다.

마르코프 체인 모델 :

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2)...

RNN은 다음과 같은 모델링을 시도합니다 :

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2,x1)p(x4|x3,x2,x1)...

단일 문자 대신 문자 시퀀스를 입력으로 사용할 수 있습니다. 이렇게하면 상황에 따라 상태를 더 잘 파악할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.