1

テキストに従っていて、MATLAB でコードの一部を実装したいと考えていますが、その方法がわかりません。目標は、入力に基づいて出力をより適切に予測する値の配列を最適化することです。

関数は次のとおりです。

ここに画像の説明を入力

私はすでにL関数を実装しています。「d」が非常に小さな変更を意味することは理解していますが、これを MATLAB に実装する方法が正確にはわかりません。この値を指定する必要がありますか? もしそうなら、変化は一方向にしか進むことができませんか?

背景については、次の論文を参照してください

4

1 に答える 1

0

多次元関数http://en.wikipedia.org/wiki/Newton 's_method_in_optimizationを最適化するためのニュートンの方法を実装しているように見えますが、式はそのリンクに示されているものとは異なります。とにかく、角括弧内の項は、それ自体がコスト関数 L の 2 次偏導関数の行列である Hessian の逆です。最後の項は、コスト関数 L の 1 次偏導関数のベクトルである勾配です。勾配とヘッシアンの両方を個別の関数として実装することは簡単ではありません。次に、ヘッセ行列の逆を取得して勾配を掛ける代わりに、Matlab でバックスラッシュ演算子を使用できinv(A)*xますA\x

于 2013-02-26T19:27:53.330 に答える