エネルギーベースの逆強化学習の論文を再読する

ランニングできず 英語できず

(1) エネルギーベースの逆強化学習の論文を再読する

  「Maximum Entropy Deep Inverse Reinforcement Learning

https://arxiv.org/abs/1507.04888

 T研のMゼミでかなり以前に解説した論文でしたが、敵対的な逆強化学習の提案で読み返してみると殆ど理解できていない事が分りかなり迷惑を掛けた自覚ともに落ち込んでいます。

 この逆強化学習の手法はかなり有名でかなりのHPで散見されますが、記述が追えない箇所があるのにそのまま記載されています。

    この逆強化学習では、行動選択の確率はエネルギー関数で与えられるので、熟練者の辿ったデータで逆に報酬r_{s,a}を求め様とするものです。

  p(\mathcal{D},\theta|r) = \frac{1}{Z(\theta)} \exp \{ -r_{s,a}(\theta)\}

   この対数尤度を負の損失関数とすると   

       - \mathcal{L}(\theta) =\log \frac{1}{N}\sum_{s,a}^N p(\tau(s,a)|r) = \frac{1}{N}\sum_{s,a}^N \{ -r_{s,a}(\theta) - \log Z(\theta)\}

   これを\theta微分すると    

      \frac{\partial \mathcal{L}(\theta) }{\partial \theta} =[ \frac{1}{N} \sum_{s,a} \frac{\partial }{\partial \theta} r_{s,a}(\theta)] - \frac{\partial}{\partial \theta}\log Z(\theta)

   ここで   

        log Z(\theta) = log \sum_{s,a} \exp\{-r_{s,a}(\theta)\} p(\theta) = -\sum_{s,a} r_{s,a}(\theta) p(\theta)

   なので

        \frac{\partial}{\partial \theta}\log Z(\theta) = -\sum_{s,a} \frac{\partial}{\partial \theta} r_{s,a} (\theta) p(\theta)  =- \mathbb{E}_\theta \frac{\partial} {\partial \theta} r_{s,a} (\theta)

 またここで 

       -r(s,a,\theta) = \theta^T f(s,a)\thetaと特徴量f(s,a)内積すると

  -\frac{\partial}{\partial \theta} r_{s,a}(\theta_i) = f(s,a)

     \frac{\partial \mathcal{L}(\theta) }{\partial \theta} = [ \frac{1}{N} \sum_{s,a} f(s,a) ] - \mathbb{E}_\theta f(s,a) = \mathbb{E}_{s,a} f(s,a) - \mathbb{E}_\theta f(s,a)

  よって微分\frac{\partial \mathcal{L}(\theta) }{\partial \theta}は 経路\tau(s,a)での特徴量のデータ平均\mathbb{E}_{s,a} f(s,a)と真の平均 \mathbb{E}_\theta f(s,a)との差となる

 

  プログラムの反映で以下となる 2行目のループ内ので8,9行目で\thetaを改善している。

 このプログラムでは

   \mathbb{E}_{s,a} f(s,a) \to \mu_D

       \mathbb{E}_\theta f(s,a) \to \mathbb{E} [\mu]  

f:id:mabonki0725:20171025173622p:plain