問題タブ [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.
java - 遺伝的アルゴリズム - 収束
遺伝的アルゴリズムと GA 全体についていくつか質問があります。
曲線にポイントを指定すると、この曲線を生成した関数を見つけようとする GA を作成しました。
例は次のとおりです。 ポイント
関数
関数をまったく生成しないポイントを与える場合もあれば、関数を生成する場合もあります。初期ツリーの深さに依存することさえあります。
いくつかの質問:
- ポイントを評価して満足のいく関数を生成しようとする際に、ツリーの深さが重要なのはなぜですか?
- 時期尚早の収束が発生し、サイクルの場合に GA が発生しないのはなぜですか?
- 早期収束を防ぐにはどうすればよいですか?
- アニーリングはどうですか?どのように使用できますか?
私のコードを簡単に見て、何か明らかに問題があるか教えていただけますか? (これはテスト コードです。コードをクリーンアップする必要があります。)
ソース:http://www.gp-field-guide.org.uk/
編集:トーマスの提案がうまくいったように見えます。非常に高速な結果が得られ、早期収束が少なくなります。遺伝子プールを増やすとより良い結果が得られるように感じますが、実際に世代ごとに改善されているのか、それともランダムであるという事実が正しい解決策を見つけることを可能にしているのかは正確にはわかりません.
編集 2: トーマスの提案に従って、適切に機能させることができました。生存者の取得と遺伝子プールの拡大に問題があったようです。また、他の誰かが見たい場合は、最近 GA テストに定数を追加しました。
chef-infra - 収束中にナイフを使用してノード run_list を更新する方法
以下にシナリオを示します。
- 私たちのノードには、「ロール a」と「ロール b」の run_list があります。ノードが収束し、run_list を実行します。
- ステップ 1 のノード収束実行中に、knife コマンドを使用して、別の「ロール c」をノード run_list に追加しようとしています。knife コマンドの出力に従って正常に追加されます。
- ノードの収束が完了した後、ナイフノードのステータスを確認すると。ステップ 2 で追加した「ロール c」は、ノード run_list に追加されていません。
ノード収束実行中にナイフ コマンドを使用してノード run_list を更新する方法は?
r - Rのニューラルネットワークの特定の繰り返し回数でアルゴリズムが収束しない
R のニューラル ネットワークは初めてです。Java でニューロフを使用して実装された次の動作をエミュレートしようとしています。
タイプ - 多層パーセプトロン、入力 - 7、出力 - 1、非表示 - 5 ニューロン、伝達関数 - シグモイド、学習規則 - 逆伝播、最大誤差 - 0.01、学習率 - 0.2
以下は私が実装したRコードです。
データは比較的小さく (120 行)、以下は使用されたトレーニング データのサンプルです。入力は正規化され、0 ~ 1 の間でスケーリングされることに注意してください。
以下は、上記のコマンドを実行したときに表示される警告です。
なぜこれが起こっているのかについての説明はありますか?
matlab - whileループを使用しないMatlabでの収束のための反復
マッハ数 (M0) の初期推定を行うプロセスを反復する必要があります。この最初の推定値から、2 つの方程式 (Mn) を使用してマッハ数の別の推定値が得られます。最終的には、M0 と Mn の誤差が小さくなるまでこのプロセスを繰り返したいと考えています。次のコードがあり、実際にはwhileループでうまく機能します。
ただし、while ループは特定の入力に対して多くの反復と計算時間がかかるのではないかと心配しています。
したがって、私の質問は次のとおりです。whileループを参照せずにMatlab内でこのプロセスを反復するにはどうすればよいですか? 私が今実装しているコードは次のとおりです。
どうもありがとう
matlab - matlabでの収束時にベクトルのすべての要素の反復を停止しますか?
マトリックス内のすべての要素を反復処理し、すべての要素の値が収束したときに停止するようにします。私はコード(以下)を書きましたが、間違った値を与えており、値が実際にループに入るかどうかはわかりません。
centering - 予測子の参照グループを変更したところ、モデルが実行されなくなりました
ちょっと変わった質問があります。予測子の 1 つとして「Valence.c」を含む次のモデルを実行しました。これは、'0' または '1' としてコード化された予測値であり、'正' と '負' を表します。予測子は中央に配置されたので、実際には「-0.5」と「0.5」です。
次の出力が得られました。
Valence.c の固定効果は負だったので、正が「0.5」、負が「-0.5」になるように変数を再コーディングしてみようと思いました。インシデント率の増加は、減少を説明するよりも簡単に説明できると思いました。したがって、呼び出すデータファイルのコーディングが逆であることを除いて、同じモデルを実行しました。
次の警告メッセージが表示されました。
参照グループを変更すると、モデルが収束しないことを意味するのはなぜですか?? 正と負の観測数は同じです。どんな助けでも素晴らしいでしょう!
ありがとう
newtons-method - ニュートン法が収束しない場合は中断する
関数のゼロを見つけるために多項式のニュートン法を実装しようとしています。しかし、関数にルートがない場合を予測する必要があります。メソッドが発散する瞬間を検出して手順を停止するにはどうすればよいですか?
事前に助けてくれてありがとう
c++ - ニュートン法はいくつかの多項式で発散する
多項式にニュートン法を実装しようとしました。お気に入り:
ここg(w, n, xn)
で、関数の値をdg(w, n, xn)
計算し、導関数を計算します。
シュトゥルムの定理を使用して見つけたx0
出発点を使用します。M
私の問題は、この方法が のようないくつかの多項式に対して発散していることですx^4+2x^3+2x^2+2x+1
。規則的ではないかもしれませんが、方程式の解が負の数の場合に発生することに気付きました。どこで説明を探すことができますか?
編集:dg
ここで、n は多項式の次数です。