今回はValue-Decomposition Networks(VDN)について紹介しようと思います。
Value-Decomposition Networksは完全協調型のマルチエージェント深層強化学習に適用できる手法となります。
VDNでは、最大化する\(Q(\textbf{s}, \textbf{a})\)を以下のように表現します。
Q(\textbf{s}, \textbf{a}) = \sum_{i}^{N}Q_i(h_i, a_i)
\end{aligned}$$
\(N\)はエージェント数、 \(\textbf{s}\)は全エージェントの状態の集合\(\textbf{s} = { s_1,\cdots,s_N }\)、 \(\textbf{a}\)は全エージェントの状態の集合\(\textbf{a} = a_1,\cdots,a_N \)、 \(h_i\)はエージェント\(i\)の観測情報\(o\)のhistory(観測情報\(o\)の系列)、
となります。 (\(h\)を用いることで、部分観測問題を緩和しています。)
本当に単純に総和をとっただけですね。シンプルな手法となります。
VDNでは、このQ値の最大化を目指して学習していきます。
そして、各エージェントは各々のQ値\(Q_i\)を元に行動選択します。
図を使って少し通常のILsとVDNとの比較をしてみます。 論文から図を使わせてもらいます。
出典:Value-Decomposition Networks For Cooperative Multi-Agent Learning
左が通常のIndependet Q Learner、右がVDNです。
VDNでは各エージェントのQ値を最後につなげています。
このつないたQ値の値を最大化することによって協調型の学習を行うと言ったものです。
補足
このVDNが使える設定は、完全協調型のマルチエージェント強化学習です。
ですので全エージェントが受け取る報酬は同じときです。 つまり、
R_1 = R_2 = \cdots = R_N = R
\end{aligned}$$
さらに、注意すべき点としては、VDNでは報酬関数\(R\)は
各エージェントのローカルな報酬値の総和で表現できると仮定しています。
つまり、
R(\textbf{s}, \textbf{a}) = \sum_{i}^{N}R_i(o_i, a_i)
\end{aligned}$$
ですので、すべての問題で使用できるわけではありません。
そこには注意する必要があります。
参考文献
Value-Decomposition Networks For Cooperative Multi-Agent Learning
コメント