強化学習とは何か、調べてみた
皆さんこんにちは
お元気ですか。私は元気です。
今日は強化学習の勉強がてらメモを書いてみました。
個人的には最近、注目している分野で、ゴールがあるような(クラス分類やRegression)
機械学習と異なり、汎用的に色々問題が解けそうだからというのが理由です。
(なんか色々語弊を生みそう)
間違っていれば教えて下さい。
強化学習
強化学習はある環境ないにおけるエージェントが、
現在の状態を観測し、取るべき行動を決定する問題を扱う
機械学習の一種 by wikipedia
この中で登場するのは、「状態」と「行動を決定する」といったところでしょうか。
つまり、「ある状態の時に、どう行動をするか」といったことを解く問題となります。
強化学習における要因
強化学習について考えなければならないことが4点あります。
①ポリシー(policy)・・・どのように行動するか
②報酬関数(reward function)・・・強化学習問題のゴールを定義する関数
③値関数(value function)・・・長期間に渡る評価指標
④環境モデル(model of the environment)・・・アクション・状態の定義
Policy
ある状態が与えられた時、観測された状態からどう行動するか規則のこと。
一番、簡単な方法はLook up table(「この状態の時は、こうする。」が一覧表で決まっている)
Reward Function
強化学習を実施する時に使うゴール部分
イベントに対して、良いか悪いかをagentに伝える
Value function
Value functionは長期的に行動が悪いか良いかを評価する指標
model of the environment
所謂解きたい問題でしょうか。状態とそれに対するアクションがどういった形式で
定義できるのか。
つまり、これらを絵にするとこんな感じでしょうか。
強化学習で解ける問題
強化学習では解ける問題は以下のような問題です。
ロボットの動作最適化
強化学習 - Google 検索
迷路を解く
http://qiita.com/hogefugabar/items/74bed2851a84e978b61c
Alpha Go
AlphaGo - Wikipedia
つまり、状態を持ち、ゴールを持っており、試行錯誤で解ける問題について
解けるといえるでしょう。
また、n-Armed Bandit Problemも含まれ、こういった部分は勉強していきたいと思います。
参考文献
Richard S. Sutton and Andrew G. Barto「Reinforcement Learning: An Introduction」