最適なパラメータを見つけるにはどのようなソリューションを適用すればよいでしょうか?
質問
研究のために、4 つの値 (input_array
)、その値に応じて出力 (応答) 信号が生成されます。
の input_array
指定された個別の範囲を持つ 4 つの実数値 (パラメータ P1 ~ 4) が含まれます。出力信号の品質は、信号対雑音比 (SNR) を計算することによって測定されます。それぞれ input_array
バリアントは 3 秒ごとにシステムに適用できます (3 秒を超えない)。
最適なものを見つけなければなりません input_array
これにより、最大の SNR (できれば最小限の時間で) が得られます。つまり、SNR を最大化する 4 つの実際の値の組み合わせです (最適なソリューションで十分です。絶対的な解決策は歓迎されますが、必ずしも必須ではありません)。解決策を見つけるのに役立つ場合は、4 つのパラメーターを離散化できますが、その範囲には数百もの可能な (離散的な) 値が含まれます。
値は独立していると見なすことができ、その範囲以外には事前知識はなく、SNR に対する個々の影響は不明です。SNR はノイズの影響を受ける実際の値です (したがって、同じ input_array
連続して適用すると、異なる (ただし近い) 値を持つことができます)。
この問題にはどのような解決策を適用できますか?
思いつく最も簡単な解決策は、次のことを実行することです。パラメータドメインの徹底的な検索, ですが、所要時間が長くなるので該当しません。
当初は応募を考えていましたが、 強化学習各パラメーターを個別のアクションと見なし、SNRが増加/減少したときに正/負の報酬を返すことにより、連続アクションスペースのアルゴリズム(+/- 1)。しかし、彼らは時間がかかりすぎると思います。それにもかかわらず、私はいつでも学習プロセスを停止することができます
input_array
許容可能なSNRを生成します。さらに考えた後、この問題は検索の問題のように思えたので、私はそれが (ヒューリスティック) 検索アルゴリズム 適切かもしれません。
この問題に対する最も適切な解決策を知っている人はいますか?
解決
機能があるようです $f:\mathbb{R}^4 o \mathbb{R}$ そしてあなたは見つけたい $x$ それは最大化します $f(x)$, 、しかし計算はできません $f$ 直接;その値のノイズを含む推定値を取得することしかできません。
多くの 最適化手法 この設定に適応させることができます。あなたが試すことができる簡単なことは、次のような反復的な方法です。 勾配上昇 または ニュートン法, ただし、ノイズを考慮して反復回数が増えます。十分な反復を行うとノイズが平均化されるという考え方です。
たとえば、勾配上昇では勾配を計算できる必要があります。 $ abla f (x)$ お好みのポイントに。あなたの場合、これは推定することで行うことができます
$$ abla f(x) = ((f(x+e_1)-f(x-e_1))/2, \dots, (f(x+e_4)-f(x-e_4))/2), $$
どこ $e_1=(1,0,0,0)$, $e_2=(0,1,0,0)$, 、 等々。計算能力が与えられました $f$ 計算により、選択した点で $f$ 8 つの入力で推定できます $ abla f(x)$ そして、勾配上昇の 1 歩を踏みます。そして収束するまで繰り返します。
より洗練されたアプローチは、次のようなベイズ最適化を使用してみることです。 Google 大臣.