問題タブ [markov]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - マルコフ連鎖をシミュレートする確率の数が正しくありません
私の遷移確率行列はこのようなものです
それから一次MCをシミュレートするコードは
しかし、これは非正方行列であるため、確率の不一致のエラーが発生しています。これを解決する方法はありますか
r - R を使用した離散時間での Gillespie 確率的シミュレーション
疫学の確率的シミュレーションをシミュレートしています。離散時間でシミュレートするにはどうすればよいですか? 以下のコーディングを使用して、連続時間を取得することができました。
離散時間を取得するには、コーディングをどのように変更すればよいですか? 事前に感謝します。
matlab - MATLAB における不正確な行列の累乗
暇だったので、マルコフ連鎖の遷移行列を再評価する定常定理を調べてみました。だから私は単純なものを定義しました、例えば:
定常定理によると、遷移行列を非常に高い累乗で計算すると、行に主成分を持つ定常行列が得られます。それでは、試してみましょう:
これまでのところすべて良い。続けましょう:
いいよ。ゼロをもう 1 つ取りましょう。
??? 何かが変わった....もっと試してみましょう:
ここで何が起こっているのか、行の合計でも 1 ではなくなりました
ああ、それはなくなった。
R2011aで試してみました。バックラウンドには、この高べき行列を近似するいくつかの凝ったアルゴリズムがあると思います。しかし、これはどのように起こりますか?このような計算を高速に実行し、このような極端な状況でこの種の誤動作を引き起こすアルゴリズムはどれですか?
machine-learning - 強化学習でのガンマとラムダの設定
一般化された時間差分 (SARSA、Q 学習など) を使用する標準的な強化学習アルゴリズムのいずれかで、特定のタスクのラムダおよびガンマ ハイパーパラメーターにどの値を使用するかという問題が生じます。
ラムダは適格性トレースの長さに関連付けられており、ガンマは将来の報酬をどれだけ割引するかとして解釈できることを理解していますが、特定のタスクに対してラムダ値が低すぎるか、ガンマが高すぎるかをどのように知ることができますか?
これらの質問には明確に定義された答えがないことは承知していますが、不適切な値を持つための「危険信号」を知っておくと非常に役立ちます。
たとえば、標準的なカートポールまたは倒立振子のタスクを考えてみましょう。タスクを失敗させるには多くのステップが必要なため、ガンマを高く設定する必要がありますか?それとも、状態情報が完全にマルコフ的であるため、ガンマを低く設定する必要がありますか? そして、ラムダ値の合理性さえ理解できません...
machine-learning - 予測に隠れマルコフ モデルを使用する
一連の観測があるとします[1,2,3,5,5,5,2,3,2,3, ..., 3, 4]
。Scikit-learn の HMM の現在の実装を使用して、この観測シーケンスの次の値を予測しようとしています。これに関して2つ質問があります。
一連の観測が与えられた場合、(上記のように) 次の観測を予測するにはどうすればよいですか?
n 個の観測値のシーケンスが多数あり、それらのシーケンスの n+1 個の観測値がある場合、HMM を使用して n 個の観測値の新しいシーケンスの (n+1) 番目の観測値を予測できますか? もしそうなら、どのように?
ドキュメントからこれについて多くを把握できませんでした。
可能性のある重複を見つけましたが、Scikit-learn で HMM を使用してシーケンス内の次の値を予測する方法については指定されていません。
algorithm - このクラスの MDP には効率的なソリューションがありますか?
私はゲーム ソルバーの作成に約 1 か月間取り組んでおり、さまざまな戦略を試していますが、そのほとんどはブルート フォースに重点を置いています。これは、ゲームの単純なケースでは機能しますが、より複雑なケース (ゲーム ツリーの深さが高い) では失敗します。以下は、ゲームの抽象的な定式化です。
1) 実行可能な一連のアクションがあります。A.
2) 状態にアクションを適用すると、可能な状態の確率分布が生成されます。apply(A, s) = [[s1, p1], [s2, p2], [s3, p3]]
3) ゴール状態に到達するとゲームは終了します。
4) 各状態には、それに関連付けられたスコアがあります。
3) 目標状態には、状態のスコアが前の状態のスコアである「成功」状態と、スコアが 0 である「失敗」状態の 2 種類があります。
5) 目標は、ゲーム終了時の平均スコアを最大化する戦略を作成することです。
6) サイクルはありません。すべてのパスには有限の長さがあります。
私はこのゲームを可能な限り抽象的な意味で定式化しました。私の現在の戦略は、作業の重複を防ぐために一意の状態をキャッシュする単純な深さ優先検索です。これは、メモリが不足する約 2 億の一意の状態まで機能します。最適化を見つけるために下位レベルの詳細を分解する前に、ゲームの一般的なケースに適した巧妙なアルゴリズムがあるかどうかを知りたい. 状態遷移がどのように生成されるかの詳細に興味がある場合は、提供できます。問題を既知の問題に減らすいくつかの方法を次に示します。
1) 状態報酬関数が非ゴール状態の場合は 0 であり、それ以外の場合はゴール状態のスコアである確率的マルコフ決定プロセス。MDP の一般的なアルゴリズムがあまり効率的でないことはわかっていますが、MDP の特定のクラスには効率的なソリューションがあります。この問題は、これらの特定のクラスのいずれかに当てはまりますか?
2) 辺の重みが負の有向非巡回グラフにおける確率的最長経路問題。
clojure - clojure シンプルなマルコフデータ変換
たとえば ["john" "said"... "john" "walked"...] のような単語のベクトルがあり、各単語のハッシュ マップと次の単語の出現回数を作成したい場合{"ジョン" {"言った" 1 "歩いた" 1 "蹴った" 3}}
私が思いついた最善の解決策は、リストをインデックスごとに再帰的にウォークスルーし、assoc を使用してハッシュマップを更新し続けることでしたが、それは本当に厄介なようです。これを行うためのより慣用的な方法はありますか?