ϵ-greedy法をReinforcementLearning.jlから学んでいく
強化学習を始めようとしたきっかけは弊社の輪読会からなんですよね。
まあ、ぶっちゃけ機械学習自体そこまで習熟してない上に、なんやかんやいろんなものかじってしまって手が付けられない状態に陥ってしまってるのでなんとかしたい。
ϵ-greedy法の目的
まず、ϵ-greedy法を使える場面としては、以下の2点です。
- 遷移関数が未知
- 報酬関数が未知
このとき、まずは適当に動いてみるわけで、そのときに得られる報酬について調査していきます。 調査が目的のため、報酬を最大にすることはout of 眼中であることに注意しましょう。
また、報酬も良いものにしていきたいですが、行動回数に限りがある場合がほとんどなので、報酬獲得には気を配らないと全く調査が進まず終わることがあります。
このトレードオフをいい感じにするのがこのϵ-greedy法の目的です。
アルゴリズム
このアルゴリズムは至ってシンプルです。
調査を目的とする割合をϵとすると、報酬獲得を目的とする割合を1-ϵで実行していくやり方です。
早速疑似コードを書いていきます。
$
\mathrm{ALG}: \epsilon -greedy
\mathrm{INPUT}:
\begin{align}
\ \cdot episode_count \mathrm{\ is \ maximum \ step \ count}
\end{align}
$