強化学習の手法まとめ

強化学習の有名な手法をまとめます。

強化学習とは、知能を、環境によって行動を決定するエージェントと見なして学習する、機械学習の1つです。

 

以前、強化学習の1つである、モンテカルロとQ-Learningは実装したので、そのリンクを貼っておきます。

 

person.hatenablog.jp

 

 

以下の順番で説明します。この他にも、SARSA、DDQN、DuelingDQN、PPOなどいろいろありますが、時間がないので割愛します。

 

1:Q-Learning

2:モンテカルロ

3:DQN

4:A3C

5:UNREAL

 

 

1:Q-Learning

 

Q-LearningはQ関数を利用する手法です。Q関数はある状態sにおける行動aによって決まり、Q(s|a)と表現されます。Q(s|a)はある状態sにおける行動aの適切さを示します。Q(s,a)が一番大きい行動をエージェントは行います。ですから、学習してQ関数の最適なパラメータを得ることで、エージェントは最適な行動がとれるようになります。Q関数は表で表現されます。取り得る状態が10種類、可能な行動が3種類である場合、(10*3)の表です。Q-Learningでは、Q関数は以下の式で更新されます。

Q(s,a)←(1-x)*Q(s,a)+x*(r+y*max(s',a'))

x,yは学習率などのハイパーパラメータです。この式で繰り返し更新することで、適切なQ関数を得ます。

 

2:モンテカルロ

 

Q-Learningと同様に、モンテカルロもある環境のある行動を評価する方法です。しかし、内容はかなり異なります。モンテカルロでは、ある行動を評価する時、実際にその行動が行われたと考えて、報酬が得られるまで、行動を続けます。その結果、得られた報酬をもとにある行動を評価します。オセロであれば、ある一手を評価するために、その一手を打ったとして決着がつくまでゲームをして、これを繰り返すことで勝率を出して、ある一手を評価します。

 

3:DQN(Deep Q-Network)

 

Q-Learningは表で表現されたQ関数を学習する手法です。しかし、表は有限であるため、できることに限りがあります。それを解決するために、Q関数を深層ニューラルネットワークで近似したのがDQNです。

 

4:A3C(Asynchronous Advantage Actor-Critic)

 

DQNにAsynchronous、Adavantage、Actor-Criticを加えた手法です。Adynchronousとは、複数のエージェントを並列に動かして、その結果を集めて学習する方法です。Advantageは数ステップ先まで考慮した報酬の計算方法です。Actor-Criticはある環境である行動をする確率と状態の価値の推定を独立に行うことで、行動が連続的でも対応できるようにする方法です。

 

5:UNREAL(UNsupervised REinforcement and Auxiliary Learning)

 

A3Cのネットワークに直接の目的とは異なる補助タスクを組み込むことで、学習をうまくさせる方法です。DeepMindから発表されたかなり新しい方法です。

 

 

参考にしたリンクを貼っておきます。

 

qiita.com

 

blog.brainpad.co.jp

 

以上、強化学習の手法まとめでした。アドバイス、改善点があればお願いします。