2

Q ラーニング アルゴリズムを使用して、デバイスの電源管理に取り組んでいます。デバイスには、アイドルとスリープの 2 つの電力モードがあります。デバイスがスリープ状態の場合、処理の要求はキューにバッファリングされます。Q 学習アルゴリズムは、即時の消費電力とアクションによって発生する遅延の加重合計であるコスト関数を最小化するように探します。

c(s,a)=lambda*p_avg+(1-lambda)*avg_latency

各状態で、学習アルゴリズムはアクション (タイムアウト値の実行) を実行し、次の状態で実行されたアクションの効果を評価します (上記の式を使用)。アクションは、事前定義されたタイムアウト値のプールから特定のタイムアウト値を実行することによって実行されます。上記の式のパラメーターlambdaは、電力性能パラメーター ( 0 _< lambda < 1 ) です。アルゴリズムが省電力 (ラムダ --> 1) を探すか、レイテンシの最小化 (ラムダ --> 0) を探すかを定義します。各リクエストのレイテンシーは、queuing-time + execution-timeとして計算されます。
問題は、学習アルゴリズムがスリープ状態でのタイムアウト値を常に小さくすることです。これは、タイムアウト値が小さい場合の平均レイテンシが常に低く、そのためコストも小さいためです。ラムダの値を低い値から高い値に変更しても、最終的な出力ポリシーに何の影響も見られません。ポリシーは常に、各状態でのベスト アクションとして小さいタイムアウト値を選択します。各状態の平均電力と平均レイテンシの代わりに、全体の平均消費電力と全体の平均レイテンシを使用して、状態とアクションのペアのコストを計算しようとしましたが、役に立ちません。また、各状態とアクションのペアでコストを計算するためのすべての要求によって経験される総エネルギー消費量と総待ち時間を使用しようとしましたが、どちらも役に立ちません。私の質問は次のとおりです。このシナリオのより良いコスト関数は何ですか? 次のように Q 値を更新します。

Q(s,a)=Q(s,a)+alpha*[c(s,a)+gamma*min_a Q(s',a')-Q(s,a)]

ここで、 alphaは学習率 (ゆっくりと減少) であり、gamma=0.9は割引係数です。

4

1 に答える 1

2

コメントで寄せられた質問に答えるには:

各状態 (s,a) のコストを計算するために、すべての要求の消費電力とレイテンシ全体を使用する必要がありますか?

いいえ。Q ラーニングでは、報酬は通常、単一の状態とアクションのペアに関連付けられた瞬間的な信号と見なされます。報酬に関するサットンとバルトのページをご覧ください。示されているように、瞬間報酬関数 (r_t+1) はタイム ステップで添字付けされています。これは、実際に瞬間的であることを示しています。期待されるリターンである R_t は、報酬の履歴 (時刻 t から t_0 まで) を考慮していることに注意してください。したがって、累積されたレイテンシーと消費電力を明示的に追跡する必要はありません (そうすることは逆効果になる可能性があります)。

それとも、状態 s のアクション a によって引き起こされる即時の電力消費と平均遅延を使用する必要がありますか?

はい。上記の説明を強調するには、ここで4 ページの MDP の定義を参照してください。関連するビット:

報酬関数は、現在の状態とアクションの関数として期待される瞬間的な報酬を指定します

上記のコメントで示したように、報酬が「失われる」または「洗い流される」問題は、一時的なクレジットの割り当てがより効果的に実行されるため、Q(ラムダ) 実装でより適切に解決される可能性があります。ここで、TD(ラムダ) メソッドに関するサットンとバルトの章をご覧くださいいくつかの良い例と実装もここで見つけることができます。

于 2012-08-13T02:50:58.250 に答える