問題タブ [hessian-matrix]
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 - コマンド「Hessian」と「numericHessian」のどちらの結果を信頼する必要がありますか?
私は自分のデータからヘッセ行列を取得しようとしていますが、2 つの結果があります -
- library(numDeriv) のコード Hessian を使用する
- library(maxLik) のコード numericHessian を使用
Hessian の結果は、numericHessian の結果に比べて非常に小さいです。
この場合、どちらの結果を信頼する必要がありますか?
具体的には、私が使用したデータは 350000 から 1100000 の範囲で、合計 18 のデータ値を持つ 9X2 マトリックスでした。
私は一種の標準偏差式を使用し、「numericHessian」の結果は 2X2 行列で 230 から 466 の範囲でしたが、「Hessian」の結果は -3.42e-18 から 1.34e-17 の範囲で、前のもの。
ある種の標準偏差の計算で正しいのはどれだと思いますか?
コードは次のとおりです。
file.txt は次のとおりです。
「numericHessian」の結果は次のとおりです。
次に、「ヘシアン」の結果は次のとおりです。
事前にどうもありがとうございました。
matlab - Newton アルゴリズム - Hessian を計算できませんでした
Matlab で Newton アルゴリズムの実装を作成しようとしています。
式を使用して関数を呼び出すと:
次のエラー メッセージが表示されます。
何が悪いのかわかりません。たぶん、Matlabに詳しい人が私を助けてくれるでしょう。
以下は私のコードです:
Matlab との最初の接触です。
アップデート:
今、私はエラーを持っています:
私が入力した:
performance - ヘッセ行列の計算によるパフォーマンス
[編集] "f" に関する部分が解決されました。これが私がしたことです:使用する代わりに:
私は今使用しています:
これにより、大幅な高速化が実現します。それでも、f の Hessian の問題は残ります。[/編集]
だから、Matlabで解決しようとしている二次最適化問題で、いくつかの深刻なパフォーマンス「問題」を抱えています。問題は最適化自体ではなく、ターゲット関数とヘッシアンの計算です。現在、このようになっています (F と Y はまったくランダムではなく、実際のデータを持ちます。また、必ずしも制約がないわけではありません。その場合、解はもちろん (F'F)^-1*F'*Y になるためです) ):
問題は、f と H の計算に時間がかかることです。
Matlabはこのようなものに最適化されているため、これを大幅に高速化する方法があるとは思っていません。しかし、誰かがいくつかのオープンライセンスソフトウェアを知っているかもしれません。それはMatlabとほぼ同じくらい高速なので、より高速なマシン(残念ながらMatlabライセンスはありません...)でそのソフトウェアを使用してfとHを計算し、Matlabに最適化を任せることができます。
今、私はこれでちょっと迷っています:/
事前にどうもありがとうございました。ここでは、「ソフトウェア xy を探す」のようないくつかのキーワードでも役に立ちます。
c++ - Ptr にヘッセ行列のしきい値を設定する
この特定FeatureDetector
の を使用すると、ヘッセ行列のしきい値を設定する方法がわかりません。
誰でも方法を知っていますか?
python - Python: 複雑な関数で関数 nd.Hessiandiag を使用する方法
Hessiandiag
パッケージの関数( Numdifftools ) を使用して、関数を最小化する最適なパラメーターを使用してヘッセ行列の対角要素を取得したいと考えています。
Hessiandiag
Numdifftools の開発者 Web サイトから取得した の使用法の簡単な例を次に示します。
ヘッセ行列を取得したい関数が複雑すぎて を使用して記述できないとしlambda
ます。私の関数は、(コマンドLatent
を使用して)名前で別のファイルに保存されます。def Latent(x1, x2, x3)
次のことができません。
...これは機能しません...
を使用せずに複雑な関数で nd.Hessdiag を使用するにはどうすればよいlambda
ですか?
更新 私もこれを試しました:
次のエラーが表示されます。