質問

研究のために、4 つの値 (input_array)、その値に応じて出力 (応答) 信号が生成されます。

Block diagram

input_array 指定された個別の範囲を持つ 4 つの実数値 (パラメータ P1 ~ 4) が含まれます。出力信号の品質は、信号対雑音比 (SNR) を計算することによって測定されます。それぞれ input_array バリアントは 3 秒ごとにシステムに適用できます (3 秒を超えない)。

最適なものを見つけなければなりません input_array これにより、最大の SNR (できれば最小限の時間で) が得られます。つまり、SNR を最大化する 4 つの実際の値の組み合わせです (最適なソリューションで十分です。絶対的な解決策は歓迎されますが、必ずしも必須ではありません)。解決策を見つけるのに役立つ場合は、4 つのパラメーターを離散化できますが、その範囲には数百もの可能な (離散的な) 値が含まれます。

値は独立していると見なすことができ、その範囲以外には事前知識はなく、SNR に対する個々の影響は不明です。SNR はノイズの影響を受ける実際の値です (したがって、同じ input_array 連続して適用すると、異なる (ただし近い) 値を持つことができます)。

この問題にはどのような解決策を適用できますか?

  1. 思いつく最も簡単な解決策は、次のことを実行することです。パラメータドメインの徹底的な検索, ですが、所要時間が長くなるので該当しません。

  2. 当初は応募を考えていましたが、 強化学習各パラメーターを個別のアクションと見なし、SNRが増加/減少したときに正/負の報酬を返すことにより、連続アクションスペースのアルゴリズム(+/- 1)。しかし、彼らは時間がかかりすぎると思います。それにもかかわらず、私はいつでも学習プロセスを停止することができます input_array 許容可能なSNRを生成します。

  3. さらに考えた後、この問題は検索の問題のように思えたので、私はそれが (ヒューリスティック) 検索アルゴリズム 適切かもしれません。

この問題に対する最も適切な解決策を知っている人はいますか?

役に立ちましたか?

解決

機能があるようです $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 大臣.

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top