Safe Exploration in Continuous Action Spaces https://arxiv.org/abs/1801.08757 現実の機器の制御などを考えると、強化学習は安全な範囲で動作する必要があるが、これは訓練時の探索とは相反する面がある。 この安全な強化学習という課題に対して、この論文では元の方策ネットワークの最後にくっついて Safety-Signal の値を範囲内に収めるようアクションを修正する層である Safety Layer というものを提案している。

これはどうやるかというと、まずは Linear Safety-Signal Model として、現在の状態を入力として、「アクション値から系の1ステップでの Safety-Signal の値の変化の線形近似」の係数を返すようなモデルを学習する。 これは過去のデータなどから学習できる。

次に Safety Layer はこの係数を使って、Safety-Signal の値が範囲内であって、元のアクション値からの距離が最小であるようなアクションを求めて出力する。 これは凸最適化なので普通に解くのは可能だけど、問題は Safety Layer を追加したポリシーネットワーク全体を学習するためには微分可能でないといけないこと。 一つの方法は OptNet https://plus.google.com/+MasahiroSakai/posts/4rHUAKeueTH のような微分可能な最適化層を使うことだけど、ここでは最適解では制約条件のうち高々一つしかアクティブ(制約条件の不等号がイコールで成り立つこと)ではないと仮定して、最適解(候補)を解析的に表すことで、この問題を解決している。 この方法は反復法を用いるよりも実時間の制御に向いているという利点もある。

実験では、制約違反が発生するとエピソードが終了してしまうような問題設定で、素のDDPG、DDPGで制約違反をペナルティとして報酬に反映した場合と比較して、それらと異なって全く制約違反せず、かつよりよい報酬のポリシーを学習できた(しかも収束が早い)。

#ns