問題タブ [convergence]

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.

0 投票する
4 に答える
190 参照

c++ - 強く依存するクラスにもかかわらず柔軟な設計

私は、本質的に非常に柔軟である必要があるコードに取り組んでいます。つまり、後で他の人が拡張するのも非常に簡単です。しかし、私は今、適切に対処する方法を原則として知らない問題に直面しています:

私はかなり複雑な を持っていAlgorithmますが、これはある時点で収束するはずです。しかし、その複雑さのために、収束をチェックするためのいくつかの異なる基準があり、状況 (または入力) に応じて、異なる収束基準を有効にしたいと考えています。また、アルゴリズム自体に手を加えることなく、新しい収束基準を簡単に作成できるはずです。したがって、理想的には、ConvergenceChecker継承できる抽象クラスを持ち、アルゴリズムにそれらのベクトルを持たせたいと思います。たとえば、次のようになります。

これに関する問題は、それぞれConvergenceCheckerが現在実行中の について何かを知る必要があることですAlgorithmが、それぞれがアルゴリズムとはまったく異なることを知る必要があるかもしれません。各サイクルで と を変更するとしますが、可能なものAlgorithm_foo _bar、もう 1 つは、を知るだけでよく、いつの日か必要なものが実装される可能性があります。これを解決するために私がすでに試みたいくつかの方法を次に示します。_fooBarConvergenceChecker_foo_foo_barConvergenceChecker_fooBar

  1. isConverged()関数に大きな引数リスト ( _foo_bar、およびを含む) を与え_fooBarます。短所: 引数として使用される変数のほとんどはほとんどの場合使用されず、Algorithm別の変数によって拡張される (または同様のアルゴリズムが変数から継承していくつかの変数を追加する) 場合、かなりのコードを変更する必要があります。-> 可能だが醜い
  2. 関数自体 (または関数へのポインター) を引数として指定しますisConverged()Algorithm問題: 循環依存。
  3. isConverged()フレンド関数として宣言します。問題 (とりわけ): 異なるConvergenceCheckerのメンバー関数として定義できません。
  4. 関数ポインターの配列を使用します。問題をまったく解決しません。また、それらをどこで定義しますか?
  5. (この質問を書いているときにこれを思いつきました)データを保持する別のクラスを使用し、たとえばフレンドクラスとしてAlgorithmData持ってから、関数の引数として提供します。2. と同様ですが、循環依存の問題を回避することもできます。(これはまだテストしていません。)AlgorithmAlgorithmData

これに関する解決策 (および 5. で発生する問題) を教えていただければ幸いです。

その他の注意事項:

  • 質問のタイトル: 「強く依存するクラス」が、おそらくコードの設計で非常に間違ったことをしている可能性が高いとすでに言っていることは承知していますが、それでも多くの人がその問題を抱えてしまう可能性があり、その可能性を聞きたいと思っています。それは避けるので、その醜い表現を維持したいと思います。
  • 簡単すぎる?: 実は、ここで提示した問題は完全ではありませんでした。Algorithm相互に継承するコードには多くの異なる がありConvergenceChecker、新しい が登場した場合でも、 はもちろん、それ以上の変更を加えることなく、適切なケースで理想的に機能するはずですAlgorithm。これについても気軽にコメントしてください。
  • 質問スタイル: 質問が抽象的すぎず、特殊すぎず、長くなりすぎず、理解できるものであることを願っています。ですから、私がこの質問をする方法についてコメントすることを躊躇しないでください。
0 投票する
1 に答える
476 参照

opengl - 3D グリッドの遠近感を弱めます (収束を減らします)

次の画像をご覧ください。

ここに画像の説明を入力

このようなグリッドの収束を軽減する数学的方法または POV-Ray/OpenGL コマンドはどれですか? (グリッドの収束が速すぎます。この目的のために、 theta は中心線に一致する 90 度である必要があります。)

パースペクティブは依然として必要ですが、距離が短かったり、望遠レンズを使用したりした場合と同様に、収束はより遅い速度で発生するはずです。

この画像は Blender のものですが、使用されている方法は OpenGL と POV-Ray であるため、いずれかの方法での解決策があれば幸いです。

OpenGL と POV-Ray でモデル化された行がいくつかあります。

私は、POV-Ray でlocationlook -- atanglerightおよびupを試しました。これには、 rotatescaletranslate、およびmatrixなどのカメラ変換が含まれます。

OpenGL では、 gluPerspective 、 glFrustumglDepthRange試しました。

誰でもこの問題の解決策を持っていますか?

(また、この場合、グリッドを見下ろすことはオプションではありません)

0 投票する
1 に答える
2276 参照

r - 反復のサブセットのみに対する Gelman と Rubins の収束統計の計算 (coda パッケージ)

Rパッケージを使用して現在Rで実行しているJAGS分析のGelmanとRubinの収束診断を計算しようとしていますrjags

たとえば、パラメーター の収束診断を評価したいと考えていますbeta。これを行うために、ライブラリ coda とコマンドを使用しています。

複数のチェーンを持つout_2MCMCMCMC リスト オブジェクトであるため、エラー メッセージなどのない正しい出力が得られます。ただし、バーンインとして大量の反復を使用したため、反復のサブセットのみ (バーンイン後の部分のみ!) の収束診断を計算したいと思います。

これを行うために、私は試しました:

これにより、次のエラーが発生しました。

したがって、私は試しました:

しかし、驚くべきことに、これにより次のエラーが発生しました。

これは、JAGS 分析から取得したものと同じ MCMC リスト オブジェクトであり、すべての反復の収束診断を評価するときに使用しているものと同じであるため (これは完璧に機能します)、ここに問題はありません。

関数自体は、収束診断の計算でシリーズ (反復) の後半を使用するオプションのみを提供します。私のバーンインフェーズはそれよりも長いので、残念ながらこれでは十分ではありません。

私が見逃しているのは非常に明白なことだと思います。誰か提案やヒントはありますか?

コードが多いため、完全な 2MCMC-JAGS 分析を実行するための R コードは提供しませんでした。上記のコードが問題を十分に示していることを願っています。誰かが以前に同じ問題に遭遇したか、私の構文の間違いを認識した可能性があります。ただし、私の問題を理解するために完全なコードが必要だと思われる場合は、2MCM JAGS 分析を実行するサンプル コードを提供できます。

0 投票する
4 に答える
26707 参照

r - ニューラルネット: アルゴリズムの非収束を克服する

R のパッケージ「neuralnet」を使用してニューラル ネットワークをトレーニングしたいと考えています。トレーニング データ セットは、8 つの予測変数 (x1、x2、x3、...、x8) と 1 つの応答変数 (y) のデータ フレームです。データは以下のとおりです。

モデルの仕様は次のとおりです。

実行が完了すると、次のような警告メッセージが生成されます。

ネットワークをプロットしようとすると、エラー メッセージが表示されます。

各層で、1 から 10 までの範囲で、10 をはるかに超える数のさまざまな数の隠れニューロンを使用しました。モデルは、hidden の値が 1 と 2 に等しい場合に生成されましたが、他の場合はそうではありませんでした。また、結果を滑らかにするためにさまざまなアクティベーション関数を使用しようとしました。データには NA 値がありません。これがなぜなのか、どのように解決できるのかを理解するのを手伝ってもらえますか?

0 投票する
1 に答える
150 参照

java - ニューラル ネットワークの収束をテストできません

分類には Weka 多層パーセプトロン分類器を使用しています。ニューラル ネットワークが収束する正確なエポック数を知りたい (重みはそれ以上更新されない)。

私はその Java API を使用していますが、重み変数を取得し、それらがまだ変化しているかどうかをループでテストする方法がわかりません。

0 投票する
1 に答える
201 参照

statistics - SAS NLIN での非収束の記録

SAS-proc nlin について質問があります。

10000回のシミュレーションの手順を実行しています。それらの多くは収束せず、間違った結果をもたらします。

この反復が収束しなかったことを示すバイナリ変数を出力テーブルに追加したいと考えています。

誰もそれを行う方法を知っていますか?

どうもありがとう、

ペリー

0 投票する
1 に答える
2459 参照

python - Statsmodels の警告を例外に変える方法

Python とパンダの初心者です。統計モデルを使用してロジスティック回帰を当てはめ、有権者が投票する確率を計算しようとしています。私は地区レベルで働いています。そのため、関数が収束しない場合があり、次のエラーが表示されます: 警告: 最大反復回数を超えました。

私はすでに反復の最大数を 1000 に増やしました。次に、その「警告」を例外に変えようとしました。警告をインポートし、 warnings.simplefilter('error', Warning) を含めてキャプチャしようとしましたが、真の Python 警告ではないようです。むしろ、反復の最大数に達したときに statsmodels が出力するものです。

だから今、私は言う方法があるかどうか疑問に思っています:

0 投票する
2 に答える
2700 参照

algorithm - K-means クラスタリングの解の一意性

k-means クラスタリング アルゴリズムは常に同じ解を生成しますか? 初期化はランダムであるはずですが、クラスタリングは初期化に関係なく同じ結果に収束しますか?