問題タブ [markov-chains]
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.
matlab - Matlab - 疎行列システムの解像度
タイプ のシステムの解決に関与していますAx = b
。ここで、A は正方スパース行列、x は未知数のベクトル (計算する必要があります)、b は最後の要素を除くすべてゼロのベクトルです。は 1 です。行列 A の最後の行は正規化に使用されるため、1 で満たされます。
このシステムの解は確率であるため、条件0<x(i)<1
を尊重する必要があります。
システムを解決するために、Matlab コマンドx = A \ b;
が使用されます。
この方法はうまく機能しているように見えますが、ベクトル x にも負の値が含まれる特殊なケースがあります。マトリックス A の任意の要素に非常に小さな値 (10^-6) を追加すると、解像度が条件を満たすように戻ります。
私は数学者ではないので、コードの問題なのか、解がすべて 0 と 1 の間にあることを保証するために行列 A がいくつかのプロパティを尊重する必要があるのかどうかはわかりません。
artificial-intelligence - マルコフ連鎖 (または類似のもの) を使用して IRC ボットを作成する
私はグーグルを試してみましたが、理解できるものはほとんど見つかりませんでした。
マルコフ連鎖が非常に基本的なレベルにあることを理解しています。これは、状態を変更するための以前の入力のみに依存する数学的モデルです..さまざまな基準ではなく、重み付けされたランダムチャンスを持つFSMのようなものですか?
それらを使用して、種類の辞書として使用する既存の単語の文を指定して、半知的なナンセンスを生成できると聞きました。
これを見つけるための検索用語が思いつかないので、リンクを貼ったり、半知的な答えを出す方法を教えてくれませんか? (パイについて聞いても、聞いていたベトナム戦争については話さない)
私は計画しています:
- このボットを IRC チャンネルでしばらくアイドル状態にする
- 文字列からユーザー名を取り除き、文などとして保存します
- 時間をかけて、これを上記の基礎として使用してください。
java - マルコフ連鎖理論の助けを借りて無限線を生成する
それでは、私の問題をもう少し詳しく説明させてください (この質問をもう一度開いてください)。地形を構築するための手続き型の線を生成する方法を考えていたときに、マルコフ連鎖理論のことを聞きました。
生成される主なものは、無限に拡張できるマップです。最初に、さまざまな地形機能を多数備えたパーリン ベースの手続き型マップを使用してデモを作成しました。Sentinel のように等尺性であることさえ意図されていました。これは、私が念頭に置いていた動きの仕組みで遊ぶには混乱しすぎることがわかりました. よりシンプルなタイル ベースのシステムに縮小する必要がありました。握りやすくナビゲートしやすいだけでなく、見た目もずっと良くなっています。
マップは、マルコフ連鎖を使用して生成されます。アルゴリズムには、人間が作成した短い地形シーケンスが供給されます。次に、入力の構造を模倣した任意のサイズのマップを生成します。
したがって、視覚的な出力の例は、次の画像のようになります。
実際、私はこのランダムな行で終わる引用に記載されている同様のことを経験しました:
そこで、このランダムな線を使用する代わりに、最初の写真から小さな峡谷を作成する解決策を探します。マルコフ連鎖について初めて読んだとき、うわー、入力として人間が作った線を取り、アルゴリズムを進めさせて、素晴らしい音だと思いました。
では、マルコフ連鎖理論は実際にこの種の地形の作成にどのように役立つのでしょうか? これを行うためのより良い方法があると思われる場合は、提案してください。
マップは、マルコフ連鎖を使用して生成されます。
...私を混乱させ、実際にはマルコフ連鎖アルゴリズムだと思いました。
java - マルコフ連鎖の操作時に ArrayIndexOutOfBoundsException を取得する
線を描画するための一連の座標を格納する配列があります。ここにいくつかの例の座標があります
次のステップは、2 次元のマルコフ行列を作成することです。
最初に、左の列のポイントの後に上の列のポイントが続く回数を数えます。線が必要なので、各ポイントの後に別の単一のポイントが続きます。つまり、入力として {10,20} がある場合、次のポイントである {55,80} の確率は 100% です。
これについてはよくわからないので、訂正してください!
これが私のマトリックスです
私のアルゴリズム:
私の問題は、ArrayOutOfBoundsException:7
plotMatrix と markovMatrix の両方にアクセスしようとするとエラーが発生することです。ただし、出力は各ループの最後で 0 に設定されます。その問題を解決する方法はありますか?
c++ - グラフィカル インターフェイスを使用して C++ で離散マルコフ連鎖シミュレーションを実装する
プロジェクトに関しては、トランスポートモデルをシミュレートし、そのインターフェイスも開発できる必要があるため、マルコフモデリングとグラフィカルグラフ表現をサポートするライブラリまたはライブラリへのポインターがあるかどうかを知りたかっただけです。私は比較的C ++に慣れていません。
java - マルコフ連鎖: SQL データベースと Java の表現
さて、この質問は少しあいまいです。ユーザーが入力したテキストを解析して生成したテキストベースのマルコフ連鎖があります。これは、意味不明のほぼ一貫した文字列を生成するために使用され、シーケンス内の現在の単語に基づいて、特定の単語がテキスト シーケンス内の次の単語である確率を格納することによって機能します。JavaScript では、このオブジェクトは次のようになります。
したがって、たとえば、現在の単語が変圧器である場合、生成される次の単語は、映画である可能性が 95%、猫または犬である可能性が 2.5% になります。
私の質問は 2 つあります。
- このオブジェクトを Java で表現する最良の方法は何ですか? 高速アクセスについて 50%、メモリ使用量について 50% を気にするのがベスト
- このオブジェクトを単一のデータベース テーブル (MySQL など) に格納するにはどうすればよいですか?
更新: @biziclop の回答と @SanjayTSharma のコメントに応えて、私のクラスの下に書きました (これは進行中の作業であり、MIT ライセンスです。現在、一次マルコフ連鎖のみを生成します。
programming-languages - 一次論理をCNFに変換する
一次ロジックを CNF に変換するための C/c++/Java の既存の実装はありますか?
nlp - 現在有名な17歳のマルコフ連鎖ベースの情報検索アルゴリズム「Apodora」の再構築
私たち全員が親指をいじっている間に、17歳のカナダ人の少年が、次のような情報検索アルゴリズムを見つけたようです。
a)現在の広く使用されているベクトル空間モデルの2倍の精度で実行します
b)類似した単語を識別するのに「かなり正確」である。
c)マイクロサーチをより正確にする
これが良いインタビューです。
残念ながら、まだ公開されている論文はありませんが、数年前に受講したグラフィカルモデルと機械学習のクラスで覚えているスナッチから、彼の提出物の要約と彼の内容から再構築できるはずだと思います。インタビューでそれについて言います。
インタビューから:
一部の検索では、同様のコンテキストで表示される単語が見つかります。それはかなり良いことですが、それは最初の程度の関係に従っています。私のアルゴリズムは、接続をさらに追跡しようとします。密接な接続は、より価値があると見なされます。理論的には、それは無限の程度まで接続に従います。
そして、要約はそれを文脈に置きます:
「アポドラ」と呼ばれる新しい情報検索アルゴリズムが導入され、マルコフ連鎖のような行列の制限力を使用してドキュメントのモデルを決定し、単語のセマンティクスに関するコンテキスト統計的推論を行います。システムが実装され、ベクトル空間モデルと比較されます。特にクエリが短い場合、新しいアルゴリズムは約2倍の精度で結果を出し、マイクロサーチに興味深いアプリケーションを提供します。
マルコフ連鎖のような行列や情報検索を知っている人なら、すぐに自分のしていることに気付くことができると思います。
だから:彼は何をしているのですか?
javascript - JavaScript でのグラフィカルなマルコフ連鎖
JavaScriptでグラフィカルに表現したいマルコフ連鎖があります。ノード、リンク、遷移確率を表す必要があります。おそらく、次の 2 つの図のいずれかのようなものです。
優れた画像ライブラリ (Raphael など) を見つけることは問題ではありません。私にとっての問題は、ノードが適切にレイアウトされ、他のノードまたはラインの前で交差するラインが最小限になるようにする方法を見つけることです。OmniGraffle の「ダイアグラムのレイアウト」オプションのようなものです (Visio にも同様の機能があるはずです)。
私のためにこれを行うことができるJSライブラリはありますか? 私のマルコフ連鎖は、上記の例よりもはるかに複雑になる可能性が高いことに注意してください。
c# - 関数の妥当性を計算するアルゴリズム / モンテカルロ法
この記事の冒頭で説明したアルゴリズムを複製しようとするプログラムを作成しています。
http://www-stat.stanford.edu/~cgates/PERSI/papers/MCMCRev.pdf
F は char から char への関数です。Pl(f) がその関数の「妥当性」尺度であると仮定します。アルゴリズムは次のとおりです。
関数の予備的な推測から始めて、たとえば f と、新しい関数 f* を作成します。
- Pl(f) を計算します。
- f が 2 つのシンボルに割り当てる値をランダムに転置して、f* に変更します。
- Pl(f*) を計算します。これが Pl(f) より大きい場合は、f* を受け入れます。
- そうでない場合は、Pl(f)/Pl(f*) コインを 1 枚投げます。表が出たら、f* を受け入れます。
- コイントスで裏が出た場合は、f にとどまります。
次のコードを使用してこれを実装しています。私はc#を使用していますが、誰にとってもやや単純化しようとしました。これに関するより良いフォーラムがあれば、私に知らせてください。
私の質問は基本的に、これがそのアルゴリズムを実装するための最適なアプローチのように見えるかどうかです。この方法を実装しているにもかかわらず、極大値/極小値で動けなくなっているようです。
編集- これは基本的に Transpose() メソッドの背後にあるものです。候補関数が特定の char -> char 変換を調べるために使用する << char, char >> 型の辞書/ハッシュ テーブルを使用します。そのため、転置メソッドは、関数の動作を指示するディクショナリ内の 2 つの値を単純に交換します。
基になる辞書を使用する候補関数は、基本的に次のとおりであることに注意してください。
そして、これは Pl(f) を計算する関数です: