異なるパラメーターに対する目的関数のさまざまな時間コストを考慮する最適化方法


9

一部の人口統計モデリングソフトウェアの最適化プロセスの改善に取り組んでいるため、人口統計モデルをデータによりよく適合させることができます。最適化時間を短縮したいと思います。

目的関数の評価にかかる時間は、入力値によって大きく異なります。目的関数を評価する時間と入力の関係は既知です。評価するポイントを選択するときに目的関数の相対時間コストを考慮する最適化方法があるかどうか疑問に思っています。

ありがとう!

更新:

Paulが要求したように、この特定の目的関数のいくつかの顕著な特徴は次のとおりです。

  1. パラメータの数は中程度です(〜12ish)
  2. 私たちの問題は非凸であるか、少なくとも目的関数の表面に狭くて平らな「尾根」があります。現時点では、さまざまなポイントから複数の最適化を使用してこれに対処していますが、もっと改善したいと考えています。
  3. 目的関数は非常に滑らかですが、導関数の有限差分近似しか計算できません。
  4. 評価コストは、パラメーター値の滑らかな関数でもあり、非常に予測可能です。おおまかに言えば、各パラメーターの評価コストは、範囲の一端で高く、他端で低くなります。したがって、評価に費用がかかるパラメーターセットの大きな領域がありますが、それらがどこにあるかはわかっています。

2
こんにちはケイト、そしてScicompへようこそ!目的関数の特徴をいくつか教えてください。それはあなたのケースのための特定の方法を特定するのを助けるかもしれません。
ポール

評価するポイントを選択するときに、目的関数(または制約)を明示的に評価するコストを考慮するアルゴリズムについて聞いたことがありません。ただし、オプティマイザによって評価される次のポイントを巧みに選択しようとする、派生物のない最適化アルゴリズムが存在します。関数評価が高価な場合、関数評価の数を最小限に抑える必要があるという前提があります。ただし、導関数なしのアルゴリズムを使用すると、ユースケースに役立つかどうかはわかりません。
Geoff Oxberry 2013年

こんにちは、@ Paul、ようこそ!このコミュニティを見つけたことに興奮しています。特性を追加しました。他に重要な機能があるかどうかをお知らせください。
nova

グローバルミニマイザーに興味があるとあなたの#2から推測してもよろしいですか?それとも「十分な」減少に満足していますか?グローバル最適化はそれ自体の分野であり、グローバルソリューション(存在する場合)を達成するという問題は、費用のかかるトライアルポイントを回避することとは完全に別のものになる可能性があります。
ドミニク

ドミニク、グローバルオプティマイザーは問題に対して遅すぎると想定していたため、ローカルオプティマイザーに満足しました。グローバルオプティマイザーは、今後検討する予定です。
nova

回答:


4

高価な目的関数を扱う一般的なアプローチの1つは、元の目的関数を近似する「応答曲面モデル」を(回帰モデリングなどによって)構築し、元の関数を操作するのではなく、その応答曲面に対して最適化することです。実際には、応答曲面は通常、回帰によって近似する2次モデルにすぎないため、応答曲面の最小値を見つけることは非常に簡単な最適化問題になります。

目的関数の滑らかさや凸性については何も言っていません。関数が滑らかでない、または凸でない場合、これは明らかにはるかに困難になります。

また、高価なポイントがパラメーター空間のどこにあるかについても何も言っていません。それらがパラメーター空間全体にランダムに分布している場合、実験計画法の手法を使用して、高価なポイントを回避しながら応答曲面モデルを構築できます。評価にコストがかかるパラメーター空間のより大きな領域がある場合は、応答曲面モデルの構築に使用するそれらの領域内の点の数を最小限に抑えることを試みることができます。もちろん、最適がそのような領域の真ん中にある場合、高価な領域で関数を評価する運命にあります。


1

さまざまなトライアルポイントで目標を評価する相対的なコストを具体的に比較する方法はわかりませんが、候補者の評価に費用がかかるかどうかを比較的確実に予測できる場合は、直接方式。直接法は、派生物のない方法のファミリーに適合します。問題が非常にスムーズであると思われる場合でも、スムーズな最適化の方法では実現できないある程度の柔軟性を提供できるため、これらを使用することは必ずしも悪いことではありません。

直接的な方法は、現在の反復についての(反復依存の)メッシュと(反復依存の)メッシュの「ステップ」を定義するという考え方です。このメッシュステップに基づいて、メソッドは現在の反復の近傍であるメッシュ上の試行点を決定します(それらはメッシュ上にあり、メッシュステップによって定義された距離にあります)。次に、隣人の目的の評価に進みます。より良い候補が見つかると、それが新しい現在の反復になります。オプションで、すべてのネイバーを評価して、最適なものを選択することもできます。

あなたの場合、そこで目標を評価するコストの見積もりに基づいて隣人を並べることは良い考えかもしれません。この順序でそれらを評価し、最初の成功を次の反復として選択します。直感的に、あなたは安い候補者を支持しています。直接法では、このような順序付けは、ブライアンが言及した応答曲面モデルの概念を一般化する概念である代理モデルのカテゴリーに適合します。

ダイレクトメソッド(C ++)の優れた実装は次のとおりです。http//www.gerad.ca/nomad/Project/Home.html

それが有望な結果をもたらしていると思われる場合は、遠慮なくご連絡ください。他の改善策を提案できる場合があります。

NOMADには、変数近傍検索の概念に基づくグローバル最適化(現在適用しているマルチスタートなど)の機能もあると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.