問題タブ [automatic-differentiation]
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.
python - Python モジュール Sympy の行列形式で使用可能な微分演算子
[B]
次の[C]
ような微分演算子の 2 つの行列が必要です。
これは、次のようなベクトル フィールドのカールの計算にも適用できます。
Sympy を使用してこれを解決するには、次の Python クラスを作成する必要がありました。
微分演算子の行列が左側で乗算されている場合、このクラスだけで解決します。ここでdiff
は、微分する関数がわかっている場合にのみ実行します。
微分演算子の行列が右側で乗算されている場合の回避策__mul__
として、コア クラスのメソッドをExpr
次のように変更する必要がありました。
これはかなりうまく機能しますが、これを処理するためのより良いネイティブ ソリューションが Sympy にあるはずです。誰がそれが何であるか知っていますか?
python - Python モジュール Sympy での引数のソートを避ける
私は現在、行列形式で配置できる微分演算子を開発しています。sympy
この場合、オブジェクトargs
を作成するときのリストの順序はMul
、差別化が必要な場所でのみ実行されることを保証するために非常に重要です。
問題は、次の場合です。
(t, x, z)
若干の並び替えがあったので復帰args
。args
ソートされないようにするには?
r - 最適化の問題、非線形: R の目的と制約からの自動分析ヤコビアン/ヘッシアン?
Rでは、最適化問題に目的関数と制約のみを指定すると、ヤコビ/ヘッセ/スパースパターンを分析的に見つけることができますか?
AMPL はこれを行い、MATLAB でもこれを行うことができると聞いていますが、これに Knitro が必要かどうかはわかりません。
ただし、R のすべての最適化ツール (nloptr など) では、勾配と Hessian を自分で入力する必要があるようです。複雑なモデルを扱っているため、これは非常に困難です。
algorithm - バックプロパゲーションは、逆自動微分とどのように同じ (または同じでない) のですか?
バックプロパゲーションのウィキペディアのページには、次の主張があります。
勾配を計算するためのバックプロパゲーション アルゴリズムは何度も再発見されており、逆累積モードでの自動微分と呼ばれるより一般的な手法の特殊なケースです。
誰かがこれについて説明して、素人の言葉で言えますか? 差別化されている機能は何ですか?「特例」とは?使用されるのは随伴値自体ですか、それとも最終的な勾配ですか?
更新:これを書いてから、これがDeep Learning bookのセクション 6.5.9でカバーされていることがわかりました。https://www.deeplearningbook.org/を参照してください。また、Haber と Ruthotto による「深層ニューラル ネットワークの安定したアーキテクチャ」というテーマについては、この論文が有益であることがわかりました。
theano - Theano は変数分割をサポートしていますか?
私の Theano プログラムでは、テンソル行列を 2 つの部分に分割し、それぞれが誤差関数に異なる寄与をするようにしたいと考えています。自動微分がこれをサポートしているかどうか、誰にも教えてもらえますか?
たとえば、テンソル行列変数 M を M1=M[:300,] と M2=M[300:,] に分割したい場合、コスト関数は 0.5* M1 * w + 0.8*M2 として定義されます。 * w. T.grad(cost,w) でグラデーションを取得することはまだ可能ですか?
または、より具体的には、総コストへの貢献度が異なるさまざまな機能を持つオートエンコーダーを構築したいと考えています。
私の質問に答えてくれてありがとう。
haskell - 複雑なデータ型で自動微分を行う方法は?
Vector に基づく非常に単純な Matrix 定義を考えると、次のようになります。
(デモンストレーションの目的で... hmatrixを使用していますが、何らかの問題があると思いました)
エラー関数 ( eq3
):
コンパイラがこれで正しい型を推測できないのはなぜですか?
正確なエラー メッセージは次のとおりです。