tノート

いろいろ勉強したことをまとめていきます

MENU

【強化学習】シンプルな強化学習の例

2-armed bandit problemを取り上げます.

2つのアームがあり,各々当たりが出る確率が違います.

エージェントは当たりやすいアームがどちらかを学習することが目標となるゲームです.

この例を用いて,強化学習の学習過程を見ていきます.

ちなみ「状態」がない強化学習ですので,本当にシンプルな例になります.

f:id:ttt242242:20171203102145j:plain


f:id:ttt242242:20171203102150j:plain


f:id:ttt242242:20171203102153j:plain


f:id:ttt242242:20171203102156j:plain


f:id:ttt242242:20171203102159j:plain


f:id:ttt242242:20171203102202j:plain


f:id:ttt242242:20171203102205j:plain

Q学習

Q学習概要(詳細は後述)

  • 強化学習のアルゴリズムの一種

  • 行動価値を更新する際に、遷移先の状態の最大の行動価値 を用いて更新するのが特徴

Q学習のアルゴリズム

  1. エージェントは現在の状態sの行動価値Q(s)に基づいて行動選択(例ε-greedy 詳細は参考文献参照)

  2. 行動の実行

  3. 環境から現在の状態s'と報酬rを得る

  4. 得られたs'、rを元にQ(s,a)を以下の更新式により学習。ここでは、遷移先(s')の状態の最大の行動価値も用いる

\begin{equation} Q(s,a) = (1 - \alpha)Q(s,a) + \alpha(r + max_{a' \in A}Q(s',a')) \end{equation}

ちなみに式変形するとよく見るQ学習の式になる

\begin{equation} Q(s,a) = Q(s,a) + \alpha(r + max_{a' \in A}Q(s',a')-Q(s,a)) \end{equation}

Q学習についてのその他補足

  • モデルフリーの強化学習

    • 環境のモデルがいらない
  • off-policy

参考文献

www.tcom242242.net

【編集中】EMアルゴリズム

※編集中

概要

  • 2つの変数からなる確率分布p(x,z)が与えられている.

  • しかし、我々が観測可能なのはXのみ観測可能であり、Zは実際には見えない。

  • Xしか観測できないが、p(x,y)の推定を行う

  • 尤度関数 $l(\theta)$ の最大化を行う

\begin{align} l(\theta) &= \sum_{i} \ln p(x^i;\theta) \\ &= \sum_{i} \ln \sum_{z^i} p(x^i,z^i;\theta) \end{align}

  • z が観測できないため、上記の尤度関数を単純に最大化することが難しい

  • そこで、以下のような方法を用いる

  • アルゴリズムの概略

    • $l(\theta)$ の最大化を _一度_ で行わず、$l(\theta)$ の _下限_ を求める.

    • 下限を最大化するようなパラメータを求める.

    • 求めたパラメータでその他のパラメータを更新する.

    • 上記の3つの方法を収束するまで繰り返す.

  • EMアルゴリズムを簡易的なイメージを用いて説明してくれてるスライドがあった

http://yagays.github.io/blog/2013/12/15/mlac-2013-em-algorithm/

もう少し詳しく

\begin{equation} l(\theta) = \sum_{i} \ln \sum_{z^i} p(x^i,z^i;\theta) \end{equation}

確率分布 $Q_i(z^i)$ を考える

\begin{equation} l(\theta) = \sum_{i} \ln \sum_{z^i} Q_i(z^i) \frac{p(x^i,z^i;\theta)}{Q_i(z^i)} \end{equation}

次にイェンゼンの不等式を用いると、尤度の下限を求めることができる。

\begin{equation} l(\theta) \geq \sum_{i}\sum_{z^i} Q_i(z^i) \ln \frac{p(x^i,z^i;\theta)}{Q_i(z^i)} \end{equation}

上記の尤度 _$l(\theta)$_ の下限を最大化する。

EMアルゴリズム

Eステップ

$Q_i(z^i)$ は、

\begin{equation} Q_i(z^i) = \frac{p(x^i,z^i;\theta)}{\sum_z p(x^i,z;\theta)} \end{equation}

Mステップ

尤度関数の下限を最大化するパラメータを求める

\begin{equation} \theta := arg max_{\theta} \sum_{i}\sum_{z^i} Q_i(z^i) \ln \frac{p(x^i,z^i;\theta)}{Q_i(z^i)} \tag{2.1} \end{equation}

EステップとMステップを対数尤度関数の下限、もしくは上記のパラメータが収束するまで、繰り返す.

簡単な証明

尤度が単調増加することを簡単に説明

\begin{equation} l(\theta^{(t+1)}) \geq \sum_{i}\sum_{z^i} Q_i(z^i) \ln \frac{p(x^i,z^i;\theta^{(t+1)})}{Q_i(z^i)} \end{equation}

(2.1) から

\begin{equation} \geq \sum_{i}\sum_{z^i} Q_i(z^i) \ln \frac{p(x^i,z^i;\theta^{t})}{Q_i(z^i)} \\ = l(\theta^{(t)}) \end{equation}

よって、尤度は単調に増加していく

【編集中】LSTMについて

※編集中

LSTMの処理の大まかな流れ

①忘却候補の決定

②新たな情報の判定

③実際にセルの状態の忘却と新しい記憶

④出力する値の決定

メモ

  • どの値を残すか決定するW_f なども逆伝搬により学習する

参考

http://s0sem0y.hatenablog.com/entry/2017/05/06/182757 http://colah.github.io/posts/2015-08-Understanding-LSTMs/

強化学習の枠組み

強化学習は一言で言うと、試行錯誤しながら、最適な行動を学習する学習アルゴリズム です。

何かしらの行動をし、その行動に対する報酬(正解ではない)を受け取り、その行動を 報酬値によって「強化」 していきます。

一番シンプルな強化学習のフレームワークとしては、以下のようになります。

1. 行動の選択(高い報酬を貰えそうな行動を優先的に)

などの多くの手法があります。

2. 実際に行動

3. 行動によって変化した状態と、報酬を受け取る

4. 報酬から学習する

  • Q学習
  • actor-critic

などの多くの手法があります。

5. 上記を繰り返し、報酬値が最大になるような行動を学習する