각각에 가장 적합한 순차적 입력 문제는 무엇입니까? 입력 차원이 더 적합한 항목을 결정합니까? "더 긴 메모리"가 필요한 문제는 LSTM RNN에 더 적합한 반면, 주기적 입력 패턴 (주식 시장, 날씨)의 문제는 HMM에 의해보다 쉽게 해결됩니까?
겹치는 부분이 많은 것 같습니다. 둘 사이에 어떤 미묘한 차이점이 있는지 궁금합니다.
각각에 가장 적합한 순차적 입력 문제는 무엇입니까? 입력 차원이 더 적합한 항목을 결정합니까? "더 긴 메모리"가 필요한 문제는 LSTM RNN에 더 적합한 반면, 주기적 입력 패턴 (주식 시장, 날씨)의 문제는 HMM에 의해보다 쉽게 해결됩니까?
겹치는 부분이 많은 것 같습니다. 둘 사이에 어떤 미묘한 차이점이 있는지 궁금합니다.
답변:
HMM (Hidden Markov Models)은 RNN (Recurrent Neural Networks)보다 훨씬 단순하며 항상 사실이 아닐 수도있는 강력한 가정에 의존합니다. 가정 이 맞으면 작업하기가 덜 까다롭기 때문에 HMM의 성능이 향상 될 수 있습니다.
데이터 집합이 매우 큰 경우 RNN의 성능이 향상 될 수 있습니다. 추가 복잡성으로 인해 데이터의 정보를 더 잘 활용할 수 있기 때문입니다. HMM 가정이 귀하의 경우에 해당되는 경우에도 마찬가지입니다.
마지막으로, 시퀀스 작업을 위해이 두 가지 모델에만 국한되지 말고 때로는 단순한 회귀 (예 : ARIMA)가 이길 수 있으며 때로는 Convolutional Neural Networks와 같은 다른 복잡한 접근법이 가장 좋을 수도 있습니다. (예, CNN은 RNN과 같은 일부 종류의 시퀀스 데이터에 적용될 수 있습니다.)
항상 그렇듯이 어떤 모델이 가장 적합한 지 알 수있는 가장 좋은 방법은 모델을 만들고 보류 된 테스트 세트에서 성능을 측정하는 것입니다.
상태 전이는 과거의 상태가 아니라 현재 상태에만 의존합니다.
이 가정은 내가 잘 알고있는 많은 분야에 적용되지 않습니다. 예를 들어, 사람이 운동 데이터에서 깨어 있는지 또는 잠들 었는지 매일 1 분마다 예측하려고하는 것처럼 가장하십시오 . 누군가 전이의 가능성이 잠 을 깨어 증가는 더 이상 사람이되었습니다 자고있는 상태입니다. RNN은 이론적으로이 관계를 배우고 더 높은 예측 정확도를 위해이를 활용할 수 있습니다.
예를 들어 이전 상태를 기능으로 포함하거나 복합 상태를 정의하여이 문제를 해결할 수 있지만 추가 된 복잡성이 HMM의 예측 정확도를 항상 높이지는 않으며 계산 시간에 도움이되지 않습니다.
총 상태 수를 미리 정의해야합니다.
수면 예제로 돌아가서, 우리가 관심있는 상태가 두 개 뿐인 것처럼 보일 수 있습니다. 그러나, 깨어있는 대 수면을 예측하는 것만 신경 쓰 더라도 , 모델은 운전, 샤워 등의 추가 상태를 파악하는 데 도움이 될 수 있습니다 (예 : 샤워는 일반적으로 수면 직전에옵니다). 다시, RNN은 이론적으로 충분한 예를 보여 주면 그러한 관계를 배울 수 있습니다.
위와 같이 RNN이 항상 우수 할 수 있습니다. 그러나 RNN은 특히 데이터 세트가 작거나 시퀀스가 매우 긴 경우 작동하기 어려울 수 있습니다. 개인적으로 RNN이 내 데이터 중 일부를 훈련시키는 데 어려움을 겪었으며 게시 된 RNN 방법 / 지침이 대부분 텍스트 데이터에 맞춰져 있다는 의혹이 있습니다. 텍스트가 아닌 데이터에 RNN을 사용하려고 할 때 특정 데이터 세트에서 좋은 결과를 얻으려면 내가 관심하는 것보다 더 넓은 하이퍼 파라미터 검색을 수행해야했습니다.
경우에 따라 순차 데이터에 가장 적합한 모델은 실제로 UNet 스타일 ( https://arxiv.org/pdf/1505.04597.pdf )입니다. Convolutional Neural Network 모델은 훈련이 쉽고 빠르며 훈련이 가능하기 때문에 신호의 전체 컨텍스트를 고려합니다.
먼저 HMM과 RNN의 차이점을 살펴 보겠습니다.
에서 본 논문 : 숨겨진 마르코프 모델에 대한 튜토리얼 및 음성 인식에서 선택한 응용 프로그램을 우리는 HMM은 다음과 같은 세 가지 근본적인 문제 특징으로한다 배울 수 있습니다 :
문제 1 (적절성) : HMM λ = (A, B)와 관측 순서 O가 주어지면 가능성 P (O | λ)를 결정합니다.
문제 2 (디코딩) : 관측 시퀀스 O와 HMM λ = (A, B)가
주어지면 최상의 숨겨진 상태 시퀀스 Q를 발견합니다. 문제 3 (학습) : 관측 시퀀스 O와 HMM의 상태 세트가 주어지면, HMM 매개 변수 A와 B를 배우십시오.
이 세 가지 관점에서 HMM과 RNN을 비교할 수 있습니다.
RNN의 HMM (그림 A.5) 언어 모델의 가능성
HMM의 학습은 RNN의 학습보다 훨씬 복잡합니다. HMM에서는 일반적으로 Baum-Welch 알고리즘 (특별한 Expectation-Maximization 알고리즘)을 사용했지만 RNN에서는 일반적으로 기울기 하강입니다.
당신의 하위 질문 :
각각에 가장 적합한 순차적 입력 문제는 무엇입니까?
데이터가 충분하지 않은 경우 HMM을 사용하고 정확한 확률을 계산해야 할 때 HMM이 더 적합합니다 (데이터 생성 방법을 모델링하는 생성 작업). 그렇지 않으면 RNN을 사용할 수 있습니다.
입력 차원이 더 적합한 항목을 결정합니까?
나는 그렇게 생각하지 않지만 알고리즘의 복잡성 (앞으로 뒤로 및 Viterbi)이 기본적으로 이산 상태 수의 제곱이기 때문에 숨겨진 상태가 너무 큰 경우 HMM을 배우는 데 더 많은 시간이 걸릴 수 있습니다.
"더 긴 메모리"가 필요한 문제는 LSTM RNN에 더 적합한 반면, 주기적 입력 패턴 (주식 시장, 날씨)의 문제는 HMM에 의해보다 쉽게 해결됩니까?
HMM에서 현재 상태는 이전 상태 및 관찰 (부모 상태에 의해)의 영향을 받기 때문에 "더 긴 메모리"에 대해 2 차 숨겨진 마르코프 모델을 시도 할 수 있습니다.
RNN을 사용하여 거의 할 수 있다고 생각합니다.
나는 그들의 유사성과 차이점에 대해 궁금해했기 때문에이 질문을 발견했습니다. HMM (Hidden Markov Models)에 가장 엄격한 의미의 입력 및 출력이 없다고 말하는 것이 매우 중요하다고 생각합니다.
HMM은 소위 생성 모델입니다. HMM이있는 경우 그대로 관찰을 생성 할 수 있습니다. 훈련 된 RNN이 있더라도 입력해야하는 것처럼 이는 RNN과 근본적으로 다릅니다.
이것이 중요한 실제 사례는 음성 합성입니다. 숨겨진 숨겨진 Markov 상태는 전화이고 방출 된 확률 이벤트는 음향입니다. 단어 모델이 훈련 된 경우 원하는만큼 다른 실현을 생성 할 수 있습니다.
그러나 RNN을 사용하면 출력을 얻기 위해 적어도 일부 입력 시드를 제공해야합니다. HMM에서는 초기 배포도 제공해야하므로 비슷합니다. 그러나 음성 합성 예제를 고수하더라도 초기 배포가 고정되어 있기 때문은 아닙니다 (항상 첫 번째 전화부터 시작).
RNN을 사용하면 항상 동일한 입력 시드를 사용하는 경우 훈련 된 모델에 대한 결정 론적 출력 시퀀스가 제공됩니다. HMM을 사용하면 전환 및 방출이 항상 확률 분포에서 샘플링되므로 그렇지 않습니다.