ChunPom’s diary

数学、物理、機械学習に関する話題。あと院試、資格、大学入試まで。

制御と強化学習

友人に「強化学習って何なん?」と尋ねられたので、手法の本質を簡潔に説明できるか考えてみた。

 

強化学習は、めっちゃ簡単に言うと、

「制御理論の一種で、環境の情報(ハミルトニアンなど)を知らなくても、経験的にそれを獲得し、最適な制御方法を学習する手法」

である。

 

通常の制御では、あらかじめ環境の従うハミルトニアンがわかっている。したがって、それから計算されるベルマン方程式を頼りに、制御方法を決定することができる。

 

一方、強化学習が対象とするのは、環境の情報が未知の場合。ハミルトニアンがわからないため、現在の制御方法が、どれだけのエネルギー(=-(価値))を持っているかわからない。しかし、最適な制御方法を得るには、制御のもつエネルギーを最小にする必要がある。では、どうすればいいのか??

 

答えは、環境とのやりとりを通して、経験的にハミルトニアン(=-(価値関数))を獲得すればいい。獲得のプロセスとしては、

1 とりあえず価値の高そうな行動をしてみる

2 制御対象の状態が変化する

3 この結果に対する報酬をもらう

4 ベルマン方程式により、価値関数を更新

5 1に戻る。価値関数が収束するまで、操作を繰り返す。

つまり、キーワードは行動・状態・報酬で、報酬の値から価値関数を推定&更新していく。

 

見ればわかるように、この強化学習は、通常の教師あり学習と全く異なる種類のものである。教師あり学習は、入力と出力のデータからその相関を学習する手法。一方で強化学習は、 入力(行動)のデータはあるが、出力(価値)のデータは直接取得できない。このため、強化学習は、教師なし学習の一種である。

ただし、全く出力の情報がゼロと言うわけではなく、それのヒントとなる報酬&ベルマン方程式が存在することから、間をとって半教師あり学習とも呼ばれている。