Skip to main content
深層強化学習 DDPG

throough(スルー)に導入予定の深層強化学習 DDPG (Deep Deterinistic Policy Gradient)の解説

Miyamoto


1 はじめに

この記事では強化学習における手法の一つであるDDPGについて紹介します。対応するワードはDQNやQテーブルなどです。これらと並列の単語として、DDPGが存在します。

Deep Deterinistic Policy Gradientの略で、その名の通り決定論的(Deterministic)\(^{\ast 1}\)(Policy Gradient)を、深層ニューラルネット(Deep)で行います。

DQN(Deep Q Network)については解説しません。DQNについては下記リンクをご覧ください。


\(^{\ast 1}\)確率要素のない。

2 方策勾配について。DQN等との比較

DQNなどでは、状態行動価値関数と方策関数はひとまとめにされていました。すなわち、


(1)

\[\pi (s) := \underset{a}{\mathrm{arg \max Q}}(s,a)\]


という形で方策関数が定義されました。すなわち\(Q\)関数の構成が即方策関数の構成になっていたわけです。しかし、方策勾配型は異なります。

\(\pi\)という関数を、行動ごとの確率が出力される関数ではなく、\(\pi : S \to \mathbb{R}^n\)という、行動(今回は決定された値段)し、何らかの手段(一般的には深層ニューラルネット)を用いて構成します。

2.1 DDPGにおけるランダム性

リンクでも解説した通り、強化学習においては、ランダムな行動決定の導入が必要となります。これを探索という。DDPGにおける探索は、毎回生成した正規乱数\(\epsilon\)を使います。


(2)

\[a = \pi(s)+\sigma \epsilon\]


\(\sigma\)はあらかじめ固定しておいた数字です。\(2\)や\(1\)や\(0.5\)くらいがおすすめです

2.2 学習について

\(Q\) 関数の更新についてはリンクをご覧ください。DQNと同じく\(Q\)関数を更新していきますが、今回は \(Q\) と独立した\(\pi\)という関数を用意したため、こちらについても更新をしていく必要があります。最大化したいのは当然 \(Q\) 値\(^{\ast 2}\)


(3)

\[E [\sum_{i=0}^{\infty}\gamma ^t rt]\]


ですので、 \(Q\) 関数を利用して更新していきます。 \(^{\ast 3}\)

\(\pi\) のパラメータを\(\theta\)と置きます。通常の回帰や分類問題は、これを損失関数という、パラメータの悪さを評価する関数\(L\)と学習率\(\alpha\)を用いて


(4)

\[\theta \leftarrow \theta – \alpha \nabla L(\theta)\]


という形でパラメータを更新していきます。これは数学的な感覚になってしまうのですが、\(L\)が小さくなる方向に関数を更新していきます。

一方で、この方策関数\(\pi\)のパラメータを更新するときは\(J (\theta)\)という、\( \theta \)のよさを評価する関数を用いて、


(5)

\[\theta \leftarrow \theta + \alpha \nabla J(\theta)\]


という形で更新していきます。これは上の逆で、\(J\)が大きくなるようにパラメータを更新していきます。\(^{\ast 4}\)


\(^{\ast 2}\)累積報酬和の期待値。

\(^{\ast 3}\)GANと同じように交互に二段階最適化していきます。

\(^{\ast 4}\)分類問題などでは悪さを評価するのに、強化学習では良さを評価するのは、タスクの特徴によって、それぞれ悪さと良さを評価しやすいからです。

2.21 J の構成について

パラメータの良さを評価する関数\(J\)については、最大化したいタスクに合わせて構成します。

今の状態を\(s\)として


(6)

\[J(\theta):= E[Q(s,\pi_\theta(s))]\]


とするのが妥当でしょう。

2.21 方策勾配定理

実際に勾配を計算するときは、この定理を使います。

定理1 方策勾配定理


(7)

\[\nabla J(\theta) = E[\nabla _\theta\pi (\theta)\nabla_a Q(s,a)| {a=\pi_\theta(s)}]\]


この期待値というのはReply Memoly などの確率要素に対するものです。ぱっとみただの連鎖律ですが、確率要素が入るため結構ややこしくなります。

3 専門:方策勾配定理について

方策勾配定理について、いくら調べてもろくな証明が出てこなかったので、我々が自力で証明しました。

たぶんこれは見つけられなかっただけであり、すでに厳密な証明がされているはずなので、\( Q \)関数収束に関する論文のふろくにおまけという形で書いています。[2]\(^{\ast 5}\)


\(^{\ast 5}\)国際学会IDS-2020 に弊社が出したこの論文が採択されました!

定理2 方策勾配定理の厳密な証明

\(Q\)関数と\(\pi\)はニューラルネットによる構成をされているものとする。すなわち


(8)

\[f_i(x):=V_i\eta(W_ix+b_i)+a_i\]


ただし\(V_i,W_i\) は行列。 \( a_i, b_i \) はベクトル、 \( \eta\)は活性化関数であるとする。

\(Q(x)=f_{n} \circ f_{n-1} \circ \ldots \ldots . \circ f_{1}(x)\)、\(\pi\)も別の\(f_i\)を用いて同様の定義がなされているものとする。このとき、次が成り立つ。


(9)

\[\nabla J(\theta) = E[\nabla _\theta\pi(\theta)\nabla_aQ(s,a)| _{a=\pi_\theta(s)}]\]


ルベーグ積分論に基づく実解析の見地から厳密な証明を行いました。ぜひご覧ください。

ニューラルネットで実装が行われているということが重要。これにより入力や各パラメータに対して、各々の関数がリプシッツ連続になります。ここが証明のカギ。

4 弊社における取り組み

ダイナミックプライシングツールの throough(スルー)
ダイナミックプライシングツール
throough(スルー)

弊社ソフトウェアthroough(スルー)に、このDDPG の技術を用いた強化学習アルゴリズムを準備中です。このDDPG を用いることにより、1円単位での値付けが可能となります。

DQN と比べて大きなメリットは「ネットワークが順番を認識できる」という点にあります。

例えば、100円と120円と140円という選択肢があったとして、DQN では100円と120円、100円と140円の差の違いを認識できませんが、DDPG はそれを認識して最適化することができます。

参考文献

[1] Timothy P Lillicrap, Jonathan J Hunt, Alexander Pritzel, Nicolas Heess, Tom Erez, Yuval Tassa,
David Silver, and Daan Wierstra. Continuous control with deep reinforcement learning. arXiv preprint
arXiv:1509.02971, 2015.

[2] Konatsu Miyamoto, Masaya Suzuki, Yuma Kigami, Kodai Satake,Convergence of Q-value in case of Gaus-
sian rewards,arXiv preprint arxiv:2003.03526,2020

この記事をシェアする