2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

自然非言語処理(一人)Advent Calendar 2017

Day 18

自然非言語処理第18日目:環境から自律的に機械が学ぶ強化学習

Last updated at Posted at 2017-12-24

AF425586-E13A-439A-AE63-719069CD14D0.jpeg

人生は試行錯誤しながら生きていくものです。

右の道がダメだったら左の道ヘいき、
左の道がダメだったら右の道ヘいく。

生きていれば、たまには嬉しいこともあったり悲しいこともあるでしょう。

人生だけではなく、人とのコミュニケーションにも距離感が大切です。
ヤマアラシのジレンマを知っていますか。
2匹のヤマアラシが近づきすぎても、相手を傷つけてしまうし、
遠すぎても寂しい気持ちになってしまいます。

そんなこと感じなことを機械学習に活かしたのが強化学習です。

今回は人間が行う試行錯誤による学習のメカニズムと
それをモデル化した強化学習という手法をあわせて説明します。

その後、強化学習を使ったシンプルな問題を問いてみましょう。

試行錯誤による人間の学習のメカニズム

人間は試行錯誤をするときには何かを目標として行動することが多いでしょう。
目標に達成できればうれしいですし、快感も得られますがが、
不思議な事に目標を達成しようと夢中になっているときも快感も得られるようになっています。
たとえば、あなたがゲームをしているとしましょう。
さらに言えば、テトリスをやっているとしましょう。
テトリスをうまく積んで積んで積んで、とやっている最中も夢中になると思いますが、4つの縦棒が来た時の感動は誰しもが感じたことがあるでしょう。

この試行錯誤のメカニズムは行動主義心理学ではオペラント条件づけとして説明されます。オペラント条件づけとは報酬と罰を与えることで自立的な学習を生物に行わせる実験手法のことです。主にスキナー箱という特殊な環境でマウスに対して実験は行われます。人間にも適用可能です。たとえば、先ほどのテトリスの場合、オペラント条件づけで説明すると表のようになります。

用語 用語の説明 テトリスでの具体例
オペラント行動 反射ではない研究対象とする行動 ゲームをプレイする
強化 オペラント行動の自発頻度が高まること ゲームをより夢中にプレイしている状態
弱化 オペラント行動の自発頻度が低くなること ゲームをやらなくなること
強化子 オペラント行動の自発頻度を高める刺激 スコアの上昇
弱化子 オペラント行動の自発頻度を低くする刺激 ゲームオーバーになること

表を見ると、テトリスをプレイすること、ハマる要因、つまり強化子となるのはスコアの上昇なのがわかります。

また、神経科学では、この試行錯誤の仕組みは大脳基底核が関わっているとされています。たとえば、覚せい剤を一回使うと永遠に使ってしまうのは、覚せい剤により大脳基底核が放出するドーパミンが快感をひきおこすためです。覚せい剤が非常に強い強化子になっているわけです。

生物の学習過程を応用した学習アルゴリズム、強化学習

強化学習とは、このオペラント条件づけをモチーフにした機械学習アルゴリズムです。強化学習の強化はオペラント条件づけの強化から取られています。

まず、強化学習の世界観を図1に示します。
3EB26564-F90B-436E-8464-976E61033520.png
図1 強化学習の世界観。sは状態、rは報酬、aは行動を表す変数である。([1]より引用)

強化学習では研究対象となる生物をエージェントモデルで説明できると仮定します。また、そのエージェントモデルで説明されるエージェント(以下、エージェント)は環境の中にいると仮定します。エージェントはセンサなどを通じて、環境に関する情報や自身に関する情報を状態sとして記憶します。エージェントは状態sに応じて、報酬rが得られるように行動aを実行し、自分を含む環境に影響を与えます。つまり、強化学習とは報酬を最大化するように自立的に環境に応じて行動する存在を作り出す技術になります。具体的なアルゴリズムとしてQ学習が挙げられます。

強化学習は作る側の価値観が大きく関わって来ます。エージェントの報酬、つまり、欲求を何にするかを人間側が決めなければならないからです。ゲームのスコアが報酬となら穏やかですが、たとえば、人を⚪︎した数にしてしまうと、⚪︎人機械が生まれます。作り手の倫理観が試されます。

実装: ゲームを学習する

今回はアタリのクソゲーゲームを元にゲームを強化学習するプログラムを作りましょう。

(今回は時間の都合上、割愛します。)

感想

今回はゲームを機械に学ばせることを中心に教えました。
こうやって学んだ機械と人間はいい勝負をするでしょう。
ゲームという遊びを通じて、コミュニケーションを行うこともまた、非言語コミュニケーションの1つと言えます。

応用例

ゲームに対する強化学習といえば、Google のAlphaGoがあります。
人で例えると1000年分の試行錯誤を繰り返して、人を超える棋力を得ました。

まとめ

今回は試行錯誤を学習方法とした強化学習の仕組みを整理しました。
次回はヤマアラシのジレンマで出てくる距離感ってなんでしょうという話をします。

参考文献

[1] https://qiita.com/Hironsan/items/56f6c0b2f4cfd28dd906
[2] これからの強化学習

2
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?