してみましょうかなりいいです機能をすること(例えば、連続、微分可能ではなく、あまりにも多くの極大値、多分凹形、など)。私はの最大値検索するF値:X ∈ Rの Dになり、F (X )できるだけ大きくします。
任意の入力で正確に評価する手順がある場合、標準の数学的最適化手法を使用できます。山登り、勾配降下(まあ、勾配上昇)などです。しかし、私のアプリケーションでは、正確に評価する方法。代わりに、値を推定する方法があります。f (x )f (x )
特に、任意のと任意の与えられると、推定値を出力するオラクルがあり、その予想誤差は約です。このoracle呼び出しの実行時間は比例します。(これは一種のシミュレーションによって実装されます。シミュレーションの精度は試行回数の平方根で増加します。実行する試行の数を選択できるので、必要な精度を選択できます。)これにより、希望する精度の見積もりを取得する方法ですが、見積もりをより正確にしたいほど、時間がかかります。
このノイズの多いオラクルを考えると、最大値を可能な限り効率的に計算するためのテクニックはありますか?(または、より正確には、おおよその最大値を見つけます。)このモデル内で機能する、山登り、勾配降下などのバリアントはありますか?
もちろん、私は非常に小さい値を修正し、このoracleで山登りまたは勾配降下法を適用して、全体で同じ維持できます。ただし、これは不必要に非効率的である可能性があります。最初にそのような正確な見積もりを必要としない可能性がありますが、解にゼロを合わせるときは、最後に近い精度がより重要です。それでは、最適化プロセスをより効率的にするために、見積もりの精度を動的に制御する私の能力を利用する方法はありますか?この種の問題は以前に研究されたことがありますか?