どこから見てもメンダコ

軟体動物門頭足綱八腕類メンダコ科

オフライン強化学習② Decision Transformerの系譜

Decision transoformer (2021)は、自然言語モデルGPTにおける次トークン予測の枠組みでオフライン強化学習タスクを解けることを示し新たなパラダイムをもたらしました。最近ではDeepMindの超汎用エージェントGATOなどもDecision Transformerベースのアーキテ…

オフライン強化学習① Conservative Q-Learning (CQL)の実装

オフライン強化学習の有名手法CQLについて、簡単な解説とともにブロック崩し環境向けのtf2実装を紹介します [2006.04779] Conservative Q-Learning for Offline Reinforcement Learning sites.google.com はじめに:オフライン強化学習とは 問題設定:ゲーム…

論文メモ:深層強化学習によるトカマク型核融合炉の制御

DeepMindの深層強化学習による核融合炉制御論文を読んだので論文内容と論文を理解するために調べた技術背景をまとめます。 Accelerating fusion science through learned plasma control www.nature.com 要約 技術背景:核融合炉の仕組み 核分裂エネルギーと…

強化学習 as Inference: Maximum a Posteriori Policy Optimizationの実装

方策が最適である確率の下界をEMアルゴリズムっぽく最大化する強化学習手法 Maximum a Posteriori policy Optimization (ICLR2018) をBipedalWalker-v3向けにtensorflow2で実装します。 openreview.net はじめに 方策勾配法: 劣悪なサンプル効率と不安定…

DreamerV2の実装: 世界モデルベース強化学習でブロック崩し

世界モデル系強化学習の先端手法であるDreamerV2をブロック崩し(BreakoutDeterministic-v4)向けに実装しました。 はじめに 世界モデルベース強化学習とは DreamerV2:Atari環境で初めてモデルフリー手法に並んだ世界モデルベース強化学習 世界モデル(Worl…

スッキリわかるAlphaFold2

注意: Alphafold2の手法解説です。使い方の説明ではありません 構造生物学ドメインにはある程度の説明をつけます アーキテクチャ設計の意図については個人の考察であり、正しさに何ら保証がありません AttentionとTransformerそのものについての説明は行い…

GKE+Rayで実装するマルチノード分散並列強化学習

Google Kubernetes Engine (GKE) とpythonの分散処並列理ライブラリRayで安価に大規模分散並列強化学習(Ape-Xアーキテクチャ)の実行環境をつくるチュートリアルです。GKEのプリエンプティブルインスタンスを活用することで、総リソース 128 vCPU, NVIDIA T…

MuZeroの実装解説(for Breakout)

MuZero = 状態遷移モデル+AlphaZero を簡単に解説しつつ、atari環境のBreakout(ブロック崩し)向けにtensorflow2での実装例を紹介します MuZeroとは アルゴリズムの概要 モンテカルロ木探索 MuZero版モンテカルロ木探索 VAE系世界モデルとの比較 MuZero Re…

スッキリわかるAlphaZero

The game of Go has long been viewed as the most challenging of classic games for artificial intelligence 囲碁はAIにとってもっとも困難なボードゲームの一つと考えられてきました (Mastering the game of Go with deep neural networks and tree sear…

rayで実装する分散強化学習 ④R2D2

Ape-XにRNNを導入することでatari環境において圧倒的SotAを叩き出した分散強化学習手法 R2D2(Recurrent Experience Replay in Distributed Reinforcement Learning)をtensorflow+pythonの分散並列処理ライブラリrayで実装します Recurrent Experience Rep…

深層分布強化学習 ③FQF: Fully Parameterized Quantile Function for Distributional RL

単体でRainbow越えを達成した深層分布強化学習手法FQFをtensorflow2で実装します。 はじめに C51 → QR-DQN → IQN FQFとは:いい感じのτを提案する機構付きのIQN FQFネットワークの実装 FQFアーキテクチャ Feature network:特徴抽出ネットワーク Fraction pr…

深層分布強化学習 ②QR-DQN

QR-DQNをtensorflow2で実装します。 元論文: [1710.10044] Distributional Reinforcement Learning with Quantile Regression はじめに Categorical DQNの分布モデル QR-DQNの分布モデル 分位点回帰 分位点Huberloss QR-DQNの実装 QRネットワークの実装 分…

rayで実装する分散強化学習 ③Ape-X DQN

深層強化学習における超大規模分散並列化の有用性を示したApeX-DQN(Distributed Prioritized Experience Replay)をtensorflow2とrayで実装します。手法の構成要素自体はRainbowとだいたい同じであるため、本記事の焦点は分散並列学習の実装です。 はじめに…

Segment Tree(セグメント木)による重み付きランダムサンプリング

競技プログラミング界隈では一般教養であるらしいセグメント木のSum-tree構造で高速な重み付きサンプリングを実装します。 はじめに A. numpy.choiceによる重み付きランダムサンプリング B. 累積和による重み付きランダムサンプリング C. Sum-tree構造を活用…

DQNの進化史 ④Rainbowの実装

Deep-Q-Network (2013) 以降の深層強化学習(Q学習)の発展を、簡単な解説とtensorflow2での実装例と共に紹介していきます。今回はDQNの改良トリックを全部盛りにしたら強いんでは?という脳筋発想によって生まれた手法であるRainbowを実装します。 DQNシリ…

DQNの進化史 ③優先度付き経験再生, Multi-step learning, C51

Deep-Q-Network以降の深層強化学習(というか深層Q学習)の発展を、簡単な解説とtensorflow2での実装例と共に紹介していきます。今回は経験再生の改良である優先度付き経験再生(Prioritized experience replay)、方策勾配法ではよく使われるMulti-step lea…

DQNの進化史 ②Double-DQN, Dueling-network, Noisy-network

Deep-Q-Network (2013) 以降の深層強化学習(Q学習)の発展を、簡単な解説とtensorflow2での実装例と共に紹介していきます。今回はオリジナルのDQNを微修正するだけで実装可能な改良手法である、Double DQN , Dueling-network, そしてNoisy-network の3つを…

DQNの進化史 ①DeepMindのDQN

DeepMindのDQNからR2D2くらいまでの深層強化学習(Q学習)の発展の歴史を、簡単な解説とtensorflow2での実装例と共に紹介していきます。 まずは深層強化学習の新たな時代を切り開いたDeepMindのDQN(2013)です。論文からはわかりにくいatari環境向けの実装…

CMA-ES(共分散行列適応進化戦略)の Python実装

実用性の高いブラックボックス最適化手法 CMA-ES(共分散行列適応進化戦略) のpython実装例を簡単なアルゴリズム解説とともに紹介します。 はじめに アルゴリズム概要 0. 入力次元数に依存する定数の算出とパラメータ初期化 1. 多変量正規分布に従う個体サン…

深層分布強化学習 ① Categorical DQN(C51)

分布強化学習(distributional reinforcement learning)の概念を深層強化学習へ導入したCategorical DQN(C51)をtensorflow2で実装します。 why restrict ourselves to the mean? ― [1707.06887] A Distributional Perspective on Reinforcement Learning …

rayで実装する分散強化学習 ②A2C(Advantage Actor-Critic)

GPUが一つしかなくても効率よく訓練できる分散強化学習手法A2Cをrayで実装します。 前記事: horomary.hatenablog.com A2Cとは rayによるA2C型同期並列アーキテクチャの実装 A2Cでのネットワーク更新 CartPole-v1での学習結果 次:Apex-DQN A2Cとは A3C論文…

rayで実装する分散強化学習 ①A3C(非同期Advantage Actor-Critic)

Pythonの分散並列処理ライブラリであるRayとTensorflow2を使って分散強化学習の主要な手法を実装していきます。 まずは分散強化学習の草分け的な手法であるA3C (Asynchronous advantage actor-critic、非同期アドバンテージアクタークリティック) です。 は…

Soft Actor-Critic (SAC) ②tensorflow2による実装

連続値制御で大人気の強化学習手法であるSoft-Aactor-Criticのtensorflow2実装を解説します。 対象タスクはPendulum-v0とBipedalWalker-v3。 前記事: horomary.hatenablog.com ここまでの概要 Soft-Q関数について soft-Q関数の更新 ソフトターゲット更新 方…

Soft-Actor-Critic (SAC) ①Soft-Q学習からSACへ

連続値制御のための有力手法である Soft Actor-Critic (SAC) の解説と、tensorflow2での実装例です。実装するだけならDDPGやその後継であるTD3とたいして変わりませんが、しっかり理解しようとするとなかなか苦労する手法です。 注意 Soft-Q学習および最大エ…

ハムスターでもわかるProximal Policy Optimization (PPO)②TF2による実装

PPOをTensorflow2で実装しBipedalWalker-v3を攻略します。手法解説は①を参照ください。 [PPOシリーズ] 【強化学習】ハムスターでもわかるProximal Policy Optimization (PPO)①基本編 - どこから見てもメンダコ ハムスターでもわかるProximal Policy Optimi…

ハムスターでもわかるProximal Policy Optimization (PPO)①基本編

シンプルなようで厄介な強化学習アルゴリズム PPO (Proximal Policy Optimization) を実装レベルの細かいテクニックまで含めて解説します。 [PPOシリーズ] 【強化学習】ハムスターでもわかるProximal Policy Optimization (PPO)①基本編 - どこから見てもメ…

Pythonの分散並列処理ライブラリRayの使い方

いままでありがとうmultiprocessing。そしてこんにちはRay Rayとは 基本的な使い方 並列化していないコード Rayによる並列化コード 待ち合わせ処理: ray.get 逐次処理: ray.wait クラス単位でのサブプロセス化 リソースの設定: ray.init クラスターでの分…

ハムスターでもわかるTRPO ③tensorflow2での実装例

強化学習初学者の鬼門であるTRPO(Trust region policy optimization)を丁寧に解説し、tensorflow2で実装します。その③。 [TRPOシリーズ一覧] ① ハムスターでもわかるTRPO ①基本編 - どこから見てもメンダコ ② ハムスターでもわかるTRPO ②制約付き最適化問題…

ハムスターでもわかるTRPO ②制約付き最適化問題をどう解くか

強化学習初学者の鬼門であるTRPO(Trust region policy optimization)を丁寧に解説し、tensorflow2で実装します(その②)。 [TRPOシリーズ一覧] ① 【強化学習】ハムスターでもわかるTRPO ①基本編 - どこから見てもメンダコ ② 【強化学習】ハムスターでもわか…

ハムスターでもわかるTRPO ①基本編

強化学習初学者の鬼門であるTrust Region Policy Optimization (TRPO、信頼領域ポリシー最適化)を丁寧に解説し、tensorflow2で実装します。 [TRPOシリーズ一覧] ① ハムスターでもわかるTRPO ①基本編 - どこから見てもメンダコ ② ハムスターでもわかるTRPO ②…