LoginSignup
2
5

More than 3 years have passed since last update.

深層強化学習1 強化学習概論

Posted at

Aidemy 2020/11/21

はじめに

 こんにちは、んがょぺです!バリバリの文系ですが、AIの可能性に興味を持ったのがきっかけで、AI特化型スクール「Aidemy」に通い、勉強しています。ここで得られた知識を皆さんと共有したいと思い、Qiitaでまとめています。以前のまとめ記事も多くの方に読んでいただけてとても嬉しいです。ありがとうございます!
 今回は、深層強化学習の一つ目の投稿になります。どうぞよろしくお願いします。

*本記事は「Aidemy」での学習内容を「自分の言葉で」まとめたものになります。表現の間違いや勘違いを含む可能性があります。ご了承ください。

今回学ぶこと
・(復習)強化学習について
・強化学習の手法
・DQN

(復習)強化学習について

強化学習は機械学習の一手法である。
・強化学習の構成要素としては次のようなものがある。行動する主体であるエージェント、行動の対象である環境、環境に対する働きかけを行動、それにより変化する環境の各要素が状態である。また、行動により即時に得られる評価のことを報酬、最終的に合計でどれぐらいの報酬を得られたのかを示すのが収益である。
・強化学習の目的は、この収益の総和を最大化することである。
・強化学習のモデルとしては、エージェントの行動選択の方策について、「現在の環境の状態を入力」「行動を出力」として表現する。そしてこの行動は、より高い報酬が得られるようなものを選択する
・この「より高い報酬」について、報酬の内容が全て既知だったら、その中から最も報酬が高いものを選べば良いが、実際にはこれが事前に与えられているケースは少ない。このような時は「探索」を行うことで選択したことのない行動も行って情報を収集することが必要である。これにより情報を集めたら、その中から最も報酬が高いと推測した行動を選択すると良い。これを「利用」という。

強化学習の方策

(復習)greedy手法

・上記で示した探索と利用をどのように行っていくかという方策について、その問題に即した方策をとることが重要になってくる。
・例えば報酬の期待値が全て既知である場合は、期待値の最も大きい行動のみを選択するという「greedy手法」を選択するのが最も良い方策となる。
・しかし先述の通り、一般的には報酬が全て既知であるケースは少ないため、このような時は、得られる報酬が少ないと分かっていても別の行動を選択する必要がある。この方策の一つに「ε-greedy手法」がある。これは確率εで探索を行い1-εで利用を行うというものである。試行回数に基づいてεの値を小さくすることで、利用の割合が増えていくため、効率よく探索できるようになる。

ボルツマン選択

・ε-greedy手法はある程度確率的に行動を選択する方策であった。これと同じようなものとして「ボルツマン選択」という方策がある。
・ボルツマン選択は選択確率が以下のボルツマン分布に従うためこのように呼ばれる。

スクリーンショット 2020-11-18 11.58.34.png

・この式のうち「T」温度関数と呼ばれるもので、「時間経過とともに0に収束する関数」のことである。この時、T→無限の極限で全ての行動を同じ確率で選択し、T→0の極限報酬の期待値が最大のものを選びやすくなるというものである。
・つまり、初めのうちはTが大きいため行動選択がランダムであるが、時間経過によりTが0に近づくとgreedy手法のように選択するようになる。

DQN

DQNとは、Q学習のQ関数を深層学習で表したものである。Q関数とは「行動価値関数」のことであり、Q学習はこれを推定する強化学習のアルゴリズムである。
行動価値関数「状態sと行動a」を入力として、最適方策を行った時の報酬の期待値を計算する関数である。行われることとしては、試しにある行動を行って得られた行動価値と、一つ先の状態で可能な行動を行って得られた行動価値合算して、今の行動価値とのをとって、少しだけ(学習率を調整して)関数を更新する、ということ行われる。
・実際には状態sと行動aは全ての組み合わせについてテーブル関数で表されるが、問題によってはこの組み合わせの量が膨大になるという恐れがある。
・このような場合に、DQNで、このQ関数を深層学習によって関数近似することで解決できる。

DQNの特徴としては、以下のようなものがある。詳しくは次のChapterでみる。
 ・Experience Replay:データの時系列をシャッフルして時系列の相関に対処する
 ・Target Network:正解との誤差を計算し、モデルが正解に近くなるように調整する。データからランダムにバッチを作成し、バッチ学習を行う
 ・CNN:畳み込みによって画像にフィルタをかけ変換する。
 ・clipping:報酬について、負なら-1、正なら+1、なしなら0とする。

Experience Replay

・例えばゲームをプレイしているエージェントが得られる入力には、時系列の性質がある。時系列の入力には強い相関があるため、学習に時系列の入力をそのまま使うと、学習結果に偏りが生じ、収束性が悪くなる。これを解決するのが、Experience Replayと呼ばれるものである。これは、状態や行動、報酬を入力として、全て、あるいは一定個数記録しておき、そこからランダムに呼び出して学習させる手法である。

スクリーンショット 2020-11-18 12.44.01.png

まとめ

・強化学習では収益の総和を最大化するために、探索利用が行われる。これをどのように行なっていくか、というのが方策である。
・この方策について、報酬の期待値がわかっている状態の時に有効なのが「greedy手法」である。これは、最も期待値の高い行動のみを選択するというものである。
・報酬の期待値が全て既知でない場合にも対応したものが「ε-greedy手法」である。この方策は確率εで探索を、1-εで利用を行うというものである。
・同様の方策として、ボルツマン選択というものがある。時間経過で値が0に収束していく温度関数Tを使ったボルツマン分布に従って選択されるため、最初はランダムに行動が選ばれるが、時間経過につれて最も期待値の高い行動を選択するようになる。
DQNQ関数(行動価値関数)深層学習で表したものである。行動価値関数は状態sと行動aを入力として報酬の期待値を算出するのであるが、sとaは全ての組み合わせをテーブル関数で表すと量が膨大になってしまうため、この手法が使われる。
・DQNの特徴の一つに「Experience Replay」というものがある。これは、入力データの時系列の性質を除去するために、状態、行動、報酬について、ランダムに取り出すということを行う。

今回は異常です。ここまで読んでいただきありがとうございました。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5