5

Matlab最適化ツールボックスを使用して(fmincon正確には関数を使用して)デバイス設計を最適化しようとしています。私の主張をすばやく理解するために、開始値が{4mm、2mm、1mm、0.5mm}に等しい小さな変数セット{l_m、r_m、l_c、r_c}を提供しています。

Matlabは入力変数の正規化を特に推奨していませんが、私の教授は変数を{l_m、r_m、l_c、r_c}の最大値に正規化するようにアドバイスしました。したがって、変数は0から1までの値を取ります(l_mの場合は3mmから4.5mmではありません)。もちろん、目的関数を変更して適切な値に戻し、計算を行う必要があります。

私の質問はfmincon、入力変数が正規化されている場合、最適化関数はケアのようになりますか?正規化によるパフォーマンスの変化を期待するのは合理的ですか?考慮すべき点は、オプティマイザーがl_mなどの変数をどのように変化させるかです。ある場合は4mmから4.1mmに変更でき、別の場合は0.75から0.76に変更できます。

4

1 に答える 1

6

通常、入力を正規化すると、最適化がはるかに簡単になります。収束速度と出力精度の両方の向上が期待できます。

たとえば、この記事( http://www-personal.umich.edu/~mepelman/teaching/IOE511/Handouts/511notes07-7.pdf )でわかるように、最急降下法の収束率は、ヘッセ行列の最大固有値と最小固有値の比率は小さいです。通常、データが正規化されている場合、この比率は1(最適)です。

于 2012-09-10T16:53:36.837 に答える