メモ:半教師付き学習

インターフェース2018/2月号

  • 教師付き学習・・・入力と答えのデータで学習する。Deep Learningやサポートベクタマシン
  • 教師無し学習・・・入力だけから分析するもの。主成分分析、クラスタ分析
  • 半教師つき学習・・・入力に対し、望ましいときにプラス報酬、望ましくないときにマイナス報酬、どちらでもないときは報酬をつけない。Qラーニング

疑問:報酬無し、つまりどちらでもないデータは単に学習に使われないだけで不要でないか
→ Qラーニングについて言えば学習するのは今よい報酬が貰えるかだけでなく将来よい報酬が貰えるかも含んでいる。そのため教師データに報酬無しがあることには意味がある。

                                  • -

強化学習
エージェントと環境の2つがある。エージェントが「行動」することで環境を変化させ、環境から「報酬」が得られる。強化学習は、試行錯誤を通して報酬が最も大きくなる行動を選択する方法を学習する。但し報酬はその行動に対するものだけではなく、将来に渡って得られるものを考慮する。例えば、テトリスのゲームプレイの場合、そのテトロノミノで多く消すだけではなく、テトリス狙いで積み上げた方がスコアは高くなることを学習する。

                                  • -

Qラーニング(Q学習)
Q学習は強化学習の一つでQ値を学習する。Q値は、現在の状態sでアクションaをしたときの有効性を示す値で、Q(s, a) で示される。
例えば迷路を解く問題なら、sが迷路内での位置、aは移動、Qはゴールへの近さとなる。ブロック崩しならsは画面状態、aはジョイスティック操作、Qはスコアなどになる。

Q学習では、状態s1でアクションa1をしたとき状態がs2となり報酬r2がもらえたとする。その結果に基づいてQ値を増減する。
Q(s1, a1) += α(r2 + γ max(Q(s2, a)) - Q(s1, a1))

すなわち、Q(s,a) が高いということはそのアクションしたときによい報酬が貰えるか、将来よい報酬がもらえることが期待できる状態に移れることを意味する。

                                        • -

インタフェース2018/01の記事ではライントレースカーの制御をQラーニングで学習している。状態は、ラインに対する車の位置(黒,黒),(白,白),(白,黒),(黒,白)の4種類、行動は左右の車輪のモーターで、前進、右回転、左回転、右カーブ、左カーブの5つ。報酬はオンラインなら+1、ラインから外れたら-1。10回程度の学習でラインに沿って走れるようになったとのこと