強化学習、マルチエージェント強化学習、その他機械学習全般

機械学習関連のことをまとめていきます。強化学習関連が多いかもしれません

MENU

強化学習

【強化学習】ベルマン方程式

今回はベルマン方程式について紹介します。 ベルマン方程式はマルコフ決定過程(MDP) においての「ある状態$s$の価値$V(s)$とその後の状態$s'$の価値$V(s')$の関係を表現している方程式」になります。 そのベルマン方程式は以下のような方程式になります。 $$…

【強化学習】エージェントとは

強化学習でいうエージェントとは、 「行動する主体」のことを言います。 上述したように定義するとややこしいですが、 エージェントは、単純に人間、ロボット、その他動物など を一般化したものと考えてもらえれば良いです。 鉛筆や本などを「物(オブジェク…

マルコフ決定過程(Markov decision process)

今回はマルコフ決定過程(Markov decision process)を紹介します。 マルコフ決定過程は確率過程の一種で、強化学習のタスクとしてよく用いられます。 Markov decision processの頭文字をとってMDPと呼ばれます。 マルコフ決定過程は、以下の要素から構成され…

【強化学習】greedy選択、greedy方策

今回は強化学習の基本的な用語であるgreedy選択(方策)について紹介しようと思います。 greedyとは「貪欲」という意味で、greedy選択とは、最も利益が高くなるような選択を意味します。 強化学習では、ステップ毎に行動を選択する必要があります。 その時に…

【強化学習、Reward Shaping】Dynamic Potential-Based Reward Shaping

今回はDynamic Potential-based Reward Shapingを紹介します。 Dynamic Potential-Based Reward Shapingとは Potential-based Reward Shapingは以前の記事で紹介しましたが、 以下のように報酬を形成する手法です。 $$ \begin{eqnarray} r_{shaped} = r + \g…

【強化学習】TD学習

今回はTD学習(Temporal Difference Learning)についてお話します。 TD学習は、現在の状態の状態価値関数を更新する時に、 現在より先の状態価値関数を用いる手法の総称になります。 これから詳しく説明していきます。 最もシンプルな強化学習 強化学習におい…

【トップページ】強化学習、マルチエージェント強化学習

強化学習 マルチエージェント強化学習 ライブラリ(keras, keras-rl等) 数学 参考文献 強化学習 強化学習超入門 基礎用語 学習率 方策 状態価値、状態行動価値 行動選択手法 greedy選択 ε-greedy選択 softmax行動選択 USBアルゴリズム N本バンディットプロ…

【強化学習】学習率、ステップサイズパラメータ

今回は学習率について、お話します。 強化学習では学習率をステップサイズパラメータとも言います。 このパラメータは記号で言えば $\alpha$で表記します。 この学習率は 更新量を現在にQ値にどれだけ反映させるか を決定するパラメータになります。 Q学習の…

【強化学習、Reward Shaping】Potential-based reward shapingの特徴(Potential-Based Shaping and Q-Value Initialization are Equivalent)

今回は、Potential-Based Reward Shaping(PBRS)の面白い特徴についてお話しようと思います。 Potential-Based Reward Shapingとは Reward Shaping手法の1つで、通常の環境からの報酬$r$にある値$F(s, s')=\gamma \phi(s')-\phi(s)$を加えて、学習を高速化さ…

【強化学習】方策(ポリシー)とは

強化学習で方策(ポリシー)というのは、 「ある状態$s$での各行動$a$を行う確率分布」を表すものとなります。 平たく言えば、「このような時には、こういう行動するべきだろう」といったものとなります。 まぁ名前の通り、ポリシーになります。 記号では、…

【強化学習、簡易調査】Reinforcement Learning Experience Reuse with Policy Residual Representation(2019)

※ 本当にざっと読んだだけ 概要 強化学習において、経験の再利用は、サンプルの効率を向上させるために 非常に重要なことである。 重要な課題の1つはどのように経験を表現し、保管するかということである。 これまでの多くの研究では、研究は経験をある特徴…

【強化学習】Potential based Reward Shaping を試してみる

今回はPotential based Reward Shapingをgrid world問題上で試してみます。 Potential based reward shaping 試してみるポテンシャル関数 1.ランダム 2. 学習途中の状態価値$\phi(s)=V(s)$ Grid world problem プログラム 実験結果 Potential based reward s…

【open ai gym、強化学習】Acrobotの紹介

今回はAcrobotについて紹介します。 問題の概要 制御値、観測、報酬等について 制御値(行動) 観測 報酬 エピソードの終了判定 ちょっと動かしてみる サンプルコード 実行結果 参考文献 問題の概要 Acrobotは下のイメージ図にあるように 2つのリンクが中間…

【Open AI gym、強化学習】Pendulumの紹介

問題の概要 Pendulumは、 単振り子の問題になります。 以下の振り子に適切な力を加え、 振り子を立たせることが目的となる問題です。 出典:Leaderboard · openai/gym Wiki · GitHub 問題の概要 制御値、観測、報酬等について 制御値(行動) 観測 報酬 エピ…

【Open AI gym、強化学習】MoutainCar(連続値)の紹介

前回の記事でMoutainCar問題を紹介しました。 www.tcom242242.net 今回はMoutainCarの制御値が連続値のバージョンを紹介します。 問題の概要 制御値、観測、報酬等について 制御値(行動) 観測 報酬 エピソードの終了判定 ちょっと動かしてみる サンプルコ…

【Open AI gym、強化学習】CartPoleの紹介

問題の概要 CartPoleは、 棒が設置してある台車があり、 台車を棒が倒れないように うまくコントロールする問題になります。 出典:Leaderboard · openai/gym Wiki · GitHub 問題の概要 制御値、観測、報酬等について 制御値(行動) 観測 報酬 エピソードの…

【深層強化学習、Deep Q Learning】keras-rlでDouble-DQNを試す

今回は、keras-rlを使ってDouble-DQNを試します。 Double-DQNは、DQNの過大評価という課題の緩和のために開発された手法です。 ちなみに私の環境は ubuntu 18.04 python 3.6.0 です。 DDQNについて keras-rlのインストール 解く問題 ソースコード 結果の出力…

状態価値関数と状態行動価値関数について

今回は、強化学習で重要な状態価値と状態行動価値についてお話しようと思います。 状態価値関数$V(s)$とは、名前の通り各状態$s$の価値であり、 状態行動価値関数$Q(s, a)$とは、各状態$s$での各行動$a$の価値を表しています。 ここで言う価値というのは期待…

深層強化学習のライブラリまとめ

とりあえず、深層強化学習ライブラリをまとめてみました。 ただ思ったより数が多いので、とりあえず列挙しておくだけです。 まだ完成していませんが、現状を挙げておきます。 最終的には全部試してみたいと思っています。 tensorforce keras-rl chanear-rl b…

【強化学習、モデルベース強化学習】Dyna-Q

恐らく最もシンプルであり、 最初に考案されたモデルベース強化学習であるDyna-Qについて紹介します。 モデルベース強化学習 Dyna-Q アルゴリズム 実験 プログラム 結果 参考文献 その他 用語 モデルベース強化学習 一言で簡単に言ってしまえば、 モデルベー…

【強化学習】SARSAとQ Learningとの違い

SARSAとQ Learningの違いについて参考文献をもとにお話したいと思います。 SARSAとQ Learningのそれぞれのアルゴリズムとプログラムについては下記の記事で紹介しています。 www.tcom242242.net www.tcom242242.net SARSAとQ Learningの学習方法の違い 崖が…

【強化学習】アクタークリティック

アクタークリティック(actor-critic)とは アクター(actor) クリティック(critic) 終わりに 参考文献 アクタークリティック(actor-critic)とは アクタークリティックは 行動を選択肢するアクター(actor)と、 アクターが選択した行動を評価するクリティック(…

【強化学習】SARSA

SARSAとは 評価用問題 プログラム 結果 SARSAとは sarsaは強化学習の一種で、Q値を以下の式で更新します。 $$ \begin{eqnarray} Q(s, a) \leftarrow Q(s, a) + \alpha (r + \gamma Q(s', a') - Q(s, a)) \end{eqnarray} $$ $Q(s, a)$の更新量は、遷移先状態…

【強化学習】softmax行動選択

softmax行動選択 具体例 実装 参考文献 softmax行動選択 $\epsilon$-greedy と同様によく用いられる「softmax行動選択」についてご紹介します。 この手法は期待報酬値が高い選択肢の選択確率が高くなるように選択確率を決定します。 具体的には、softmax関数…

【サーベイ】Bayesian Policy Reuse

概要 すでに、あるタスクにおいて学習済みの方策$\pi$を現在のタスクに適切(より類似した問題を解いた方策)に適用することは非常に重要 この論文では、学習済みの方策$\pi$の集合があり、その中から現在のタスクに最も適した方策を選択する問題を定義 ベイ…

【強化学習、入門】Q学習、Q Learning

今回は強化学習の代表的アルゴリズムであるQ Learningについて紹介しようと思います。 Q Learning 具体例(迷路問題) スライドを用いて、どのように学習していくかを説明 問題設定 プログラム grid_world.py policy.py qlearning_agent.py run.py 実行結果 Q …

【強化学習】UCBアルゴリズムを使って、多腕バンディット問題を解く

UCBアルゴリズムを実装してマルチアームバンディットプログラムで試してみました。 UCBとは 問題設定 プログラム 実験用プログラム(run.py) 多腕バンディット(multi_arm_bandit.py) エージェント(simple_rl.py) 行動選択方策プログラム(UCB)(policy.py) 結果…

【強化学習】UCBアルゴリズム

UCBアルゴリズム UCBアルゴリズムは、行動選択手法の一つになります。 UCBアルゴリズムは「知らない選択肢は楽観的」にを ポリシーにした行動選択手法です。 UCBではUCB値という値を用いて、行動選択を行います。 選択肢$i$のUCB値は以下のように定義されま…

【マルチエージェント強化学習】Policy Hill Climbing

Q学習のQ値を用いて、方策を山登り的に更新していく手法です。 http://www.cs.cmu.edu/~mmv/papers/01ijcai-mike.pdf Policy Hill Climbing Agent PHCはQ学習を拡張したものになります。 アルゴリズムは以下のようになります。 PHC 通常のQ学習は方策off型で…

【強化学習】ε-greedyアルゴリズムでバンディット問題を解く【2】

進捗2 ε-greedy手法で バンディット問題を解いてみた。 (バンディット問題といってもシンプルなやつです) 前回 www.tcom242242.net 目的 ε-greedy行動選択を実装して試したい ちなみにε-greedy行動選択については以下を参照 進捗 ε-greedy行動選択を行いな…