それぞれに最適な順次入力問題はどれですか?入力の次元はどちらがより良い一致を決定しますか?「より長いメモリ」を必要とする問題はLSTM RNNに適していますが、周期的な入力パターン(株式市場、天気)の問題はHMMで簡単に解決できますか?
重複が多いようです。2つの間に微妙な違いが存在することに興味があります。
それぞれに最適な順次入力問題はどれですか?入力の次元はどちらがより良い一致を決定しますか?「より長いメモリ」を必要とする問題はLSTM RNNに適していますが、周期的な入力パターン(株式市場、天気)の問題はHMMで簡単に解決できますか?
重複が多いようです。2つの間に微妙な違いが存在することに興味があります。
回答:
隠れマルコフモデル(HMM)は、リカレントニューラルネットワーク(RNN)よりもはるかに単純であり、常に正しいとは限らない強力な仮定に依存しています。仮定が真である場合、HMMのパフォーマンスが向上する可能性があります。
データセットが非常に大きい場合、RNNのパフォーマンスが向上する可能性があります。これは、複雑さが増すと、データ内の情報をより有効に活用できるためです。これは、HMMの仮定があなたのケースに当てはまる場合でも当てはまります。
最後に、シーケンスタスクのこれら2つのモデルのみに制限されないでください。単純な回帰(たとえば、ARIMA)が勝つことがあり、畳み込みニューラルネットワークなどの他の複雑なアプローチが最適な場合があります。(はい、CNNはRNNと同じように、ある種のシーケンスデータに適用できます。)
いつものように、どのモデルが最適であるかを知る最良の方法は、モデルを作成し、保留されたテストセットのパフォーマンスを測定することです。
状態遷移は現在の状態にのみ依存し、過去の状態には依存しません。
この仮定は、私がよく知っている多くの領域には当てはまりません。たとえば、動きのデータから、その日の毎分、人が起きていたか眠っていたかを予測しようとしているとしましょう。誰かが眠っている状態から起きている状態に移行する可能性は、その人が眠っている状態でいる時間が長くなるほど増加します。RNNは理論的にこの関係を学習し、より高い予測精度のためにそれを利用できます。
たとえば、前の状態を機能として組み込んだり、複合状態を定義したりすることで、これを回避することができますが、複雑さを追加しても、HMMの予測精度が必ずしも向上するわけではなく、計算時間の助けにはなりません。
状態の総数を事前に定義する必要があります。
スリープの例に戻ると、気になる状態が2つしかないように見える場合があります。ただし、覚醒と睡眠の予測のみを考慮している場合でも、運転、シャワーなどの追加の状態を把握することで、モデルにメリットがもたらされる場合があります(たとえば、シャワーは通常、寝る直前に発生します)。繰り返しますが、RNNは、十分な例を示していれば、理論的にはそのような関係を学ぶことができます。
以上のことから、RNNは常に優れているように見えるかもしれません。ただし、特にデータセットが小さい場合やシーケンスが非常に長い場合は、RNNが機能しにくくなる可能性があることに注意してください。一部のデータでRNNをトレーニングするのに個人的に問題があり、公開されているほとんどのRNNメソッド/ガイドラインがテキストデータに調整されているという疑いがあります。非テキストデータでRNNを使用しようとすると、特定のデータセットで良好な結果を得るために、必要以上に広いハイパーパラメーター検索を実行する必要がありました。
場合によっては、シーケンシャルデータの最適なモデルが実際にはUNetスタイル(https://arxiv.org/pdf/1505.04597.pdf)であることがわかりました。信号の完全なコンテキストを考慮に入れます。
まず、HMMとRNNの違いを見てみましょう。
このペーパーから:隠れマルコフモデルと音声認識における選択されたアプリケーションに関するチュートリアルでは、HMMは次の3つの基本的な問題によって特徴付けられるべきであることがわかります。
問題1(尤度):HMMλ=(A、B)と観測シーケンスOが与えられた場合、尤度P(O |λ)を決定します。
問題2(デコード):観測シーケンスOとHMMλ=(A、B)が
与えられた場合、最適な隠れた状態シーケンスQを発見します。問題3(学習):観測シーケンスOとHMMの状態セットが与えられた場合、 HMMパラメータAとBを学習します。
その3つの観点から、HMMとRNNを比較できます。
HMMでの可能性(図A.5)
RNNでの言語モデル
HMMでは、によって尤度を計算します。ここで、はすべての可能な非表示状態シーケンスを表し、確率は実数です。グラフの確率。RNNでは、同等のことは、私が知る限り、である言語モデリングの複雑さの逆です。あり、非表示の状態を合計していないため、正確な確率。
HMMでは、デコードタスクはを、変数のシーケンスがいくつかのシーケンスの基になるソースであるかどうかを決定しますビタビアルゴリズムを使用した観測の結果であり、結果の長さは通常観測と同じです。RNNでは、デコードはあり、の長さは通常、観測値と等しくありません。
HMMの学習は、RNNの学習よりもはるかに複雑です。HMMでは通常、Baum-Welchアルゴリズム(期待値最大化アルゴリズムの特殊なケース)を利用しましたが、RNNでは通常、勾配降下です。
あなたのサブ質問について:
それぞれに最適な順次入力問題はどれですか?
十分なデータがない場合はHMMを使用し、正確な確率を計算する必要がある場合はHMMも適しています(データの生成方法をモデル化する生成タスク)。それ以外の場合は、RNNを使用できます。
入力の次元はどちらがより良い一致を決定しますか?
私はそうは思いませんが、アルゴリズム(前方および後方ビタビ)の複雑さは基本的に離散状態の数の2乗であるため、非表示の状態が大きすぎるかどうかを学習するには、HMMにさらに時間がかかる場合があります。
「より長いメモリ」を必要とする問題はLSTM RNNに適していますが、周期的な入力パターン(株式市場、天気)の問題はHMMで簡単に解決できますか?
HMMでは、現在の状態は以前の状態と観測(親状態による)の影響も受けます。「より長いメモリ」のために2次の隠れマルコフモデルを試すことができます。
私はあなたがRNNを使用してほぼ行うことができると思います
彼らの類似点と相違点についても疑問に思っていたので、この質問を見つけました。隠れマルコフモデル(HMM)には厳密な意味での入力と出力がないことを述べることは非常に重要だと思います。
HMMはいわゆる生成モデルです。HMMがある場合は、HMMからいくつかの観測をそのまま生成できます。これは、RNNとは根本的に異なります。トレーニング済みのRNNがある場合でも、それに入力する必要があります。
これが重要な実際の例は音声合成です。潜在的な隠れマルコフ状態は電話であり、放出される確率イベントは音響です。単語モデルをトレーニングしている場合、必要なだけ多くの異なる実現を生成できます。
ただし、RNNでは、出力を取得するために少なくともいくつかの入力シードを提供する必要があります。HMMでも初期分布を提供する必要があると主張することができるので、それも同様です。しかし、音声合成の例に固執する場合、それは初期分布が固定されるためではありません(常に単語の最初の電話から開始される)。
常に同じ入力シードを使用している場合、RNNを使用すると、トレーニング済みモデルの確定的な出力シーケンスを取得できます。HMMでは、遷移と放出は常に確率分布からサンプリングされるため、そうする必要はありません。