のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

強化学習とは何か、調べてみた

Sponsored Links

皆さんこんにちは
お元気ですか。私は元気です。

今日は強化学習の勉強がてらメモを書いてみました。
個人的には最近、注目している分野で、ゴールがあるような(クラス分類や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

所謂解きたい問題でしょうか。状態とそれに対するアクションがどういった形式で
定義できるのか。

つまり、これらを絵にするとこんな感じでしょうか。

f:id:tereka:20160530212129p:plain

強化学習で解ける問題

強化学習では解ける問題は以下のような問題です。

ロボットの動作最適化
強化学習 - 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」