2024-01-01から1年間の記事一覧

2024年このブログの振り返り

取り組みへの振り返り 今年は、週に1回はなにかしらの更新をするというルールでやっていた。1,2時間程度で書ける雑なもので良いからとにかく1記事は書くつもりだったが、8月中旬の引っ越しの週では1回だけ落としてしまった。本当に1時間分も余裕が無かったと…

Action Value Gradientを読み、試す

Action Value Gradientという手法を提案している論文があり、NeurIPS 2024に通っている。 https://openreview.net/forum?id=DX5GUwMFFb 基本的にはSoft Actor-Critic(SAC)を拡張した手法であり、リプレイバッファやバッチ更新を行わないオンライン強化学習の…

VLAなど

最近いろいろ考えていると、結局、計算資源貧者としては、既存のものをFine-Tuningするということになるのだろうなぁと感じる。 そうなるとVision-and-Languageモデルから派生して行動を取れるようにする、Vision-Language-Actionモデルとして使うのが一番実…

世界モデルと内発報酬

結局MineRLでどういう方向のやり方を試していきたいのだろうと考えたときに、どうも「世界モデルを使った内発報酬」としてまとめるのが良いのではないかと感じられてきた。今回は具体的な実装というよりも、アイデア出しと調査という感じになった。 アイデア…

MineRL学習 その9 バッチ教師あり学習へ戻る

前回まで一通りMineRLで各種学習が(性能はともかく)回ることは確認できた。 おおむね バッチでの教師あり学習 バッチサイズ1、シャッフルなしでのstream教師あり学習 連続データでのstream強化学習 という3種類のものでそれぞれ検証していくことができそう…

DiffusionDriveを読んだメモ

https://arxiv.org/abs/2411.15139 概要 自動運転のPolicy(軌跡出力)として拡散モデルを使うことを考える。 既存手法と合わせて分類すると以下のようになる。 (a) 一つの軌跡を回帰する(Transfuser, UniAD, VAD) (b) 予め用意した軌跡候補から選択する(VAD…

MineRL学習 その8 ShortcutModelの実装

前回は、オンラインで学習できそうなことを確認した。 しかし、結局毎ステップで完全に次状態予測をしなければ、そこでの損失を行動学習に利用できない。(フローマッチングの学習自体は次状態の予測とは異なる) 次状態の生成に何回も推論をする必要がある…

MineRL学習 その7 オンライン学習

前回はバッチサイズが1、およびデータのシャッフルなしで学習できることを確認した。記事の最後でstep学習にしたときバグる問題があると言っていたが、これは単純なミスですぐに修正できた。 今回はこれMineRLとのオンライン相互作用から学習できるように実…

適格度トレース(方策)

前回は、価値関数について「前方観測と後方観測は1エピソードでの更新量の和が一致するのではないか」ということを追った。 Sutton, Barto『強化学習(第2版)』の第13章 方策勾配法 p.296では、アクタークリティックに対しても同じように適格度トレースを適用…

適格度トレース

※内容が合っている保証は全くありません。 前方観測 価値関数が重みベクトル で関数近似されているものとする。 ステップ収益を考える。 これらを ] を使って重み付けして足し合わせた 収益を考える。 これをターゲットとして重みの更新を考えると、更新され…

MineRL 世界モデル学習 その6 バッチサイズ変更

前回はMambaを用いて時系列入力をしたときに上手く学習できることを確認した。 今回は、今後ストリーム学習(データをバッファに溜めてランダムサンプルするのではなく、その場ですぐ学習して捨てること)をするにあたって、これは (1)バッチサイズが1である…

Streaming Deep Reinforcement Learning Finally Worksを読んだメモ

強化学習モデルの中で、過去の長い系列を用いるようにすると、リプレイバッファからサンプリングするというのもやや大変になる。オンライン的に学習できるならそれに越したことはない。そのような方法の調査として一つ論文を見つけたので内容をまとめる。 導…

MineRL 世界モデル学習 その5

前回、Inventoryボタンの長押し問題に対処して、行動に応じた予測ができていそうなことを確認した。 今回は、過去16ステップ分の状態・行動履歴をMamba2を使って集約させることで、長押しに対する特別な処理なしでも学習できるようになるかを実験した。 実装…

MineRLでInventoryを開くタイミングが一致するように修正

前回まで、行動(特にInventoryボタンを押すこと)が上手く生成の条件付けに反映されなくて首をひねっていたが、結果的にデータが想定していたのとちょっと違っていたことが明らかになった。 Inventoryに相当する行動が0,1のどちらかを取り、1がボタン押下で…

アーキテクチャ断想/MineRLでのFlowMatching

最近「自分の考えた最強のアーキテクチャ」を表明するのが流行っているので自分も便乗する。 まず思想として、自分は方策ネットワークを最も重視したい。結局、なにかしらの報酬を最大化する行動決定を行うという部分が一番重要で、他のあらゆるモジュールは…

Flow Matchingの実装テストなど

直線Flow Matchingの実装 ちょうど山岡さんもやっていたのでかなり真似して直線Flow Matchingの実装およびMNIST~STL10データでの学習を行った。 両端を固定しているわけではない、かつReFlowは行っていないので、これをRectified Flowと呼ぶべきなのかどうか…

MineRLシリーズその3

週末にかけて体調を崩していたのもあり、あまりハッキリとした進捗はない。 MineRL 画像サイズを256x256 → 128x128にした 前回は、256x256サイズで35000ステップほど進むと損失が急に落ちて、なんとなく気配は感じられる画像が出てくることがわかった。しか…

MineRL学習推移

前回はランダムな動作をするエージェントとVAEを動かせることを確認した。18000フレームの行動-状態(画像)のペアを得ることができるようになっている。これを何度か繰り返すことでデータセットを作れる。 これに対して、まず状態と行動から次状態を予測する…

MineRL導入テスト

いろいろ試してみるのにMinecraftを題材にしてみたくなったのでMineRLを導入した。Dockerコンテナで適当にライブラリを入れていくだけで無事入った。 ドキュメントにあまり明記されていない感じだったが、MineRLObtainDiamondShovel-v0 環境だと入出力は以下…

Mastering Chess with a Transformer Modelを読んだメモ

位置エンコーディングを工夫することで従来より軽量なTransformerで強くすることができたのことなので読んでみる。著者が「The Leela Chess Zero Team」という肩書なのでそこまで雑な検証で言っているわけでもないだろうという読み。 コードも公開されている…

拡散モデル関連の漁り

『コンピュータビジョン最前線 Autumn 2024』を読んだら正規化フローの話が載っていたので、そこから気になって拡散モデルおよびフローマッチング周りの話を漁っていた。論文読むというよりは、解説をしてくれているWebページとかを探し回った。 フロー系の…

探索フェーズ

最近、ややモチベーションが落ち気味なのもあって、具体的な作業をやる道筋も立たず、ぼんやりと方向性を考えるようなことに時間を使っている。いくらか本などを読んだのでそれに触れながら文章として書き残す。 哲学探求(鬼界彰夫訳) 言語モデルとか、言…

RECRUIT 日本橋ハーフマラソン 2024夏(AtCoder Heuristic Contest 036)

結果 暫定439位。 様々な事情からあまり時間が取れず、計10時間もいかないくらい。 考察 案1 : いくつか固定 いくつかのノードをBの前半 LB - 1 個に固定して、一番最後のところだけを進みたいノードに入れ替えつつ最短経路を進んでいく。当然のようにスコア…

論文読み

Advances in Preference-based Reinforcement Learning: A Review 強化学習の問題点の一つとして報酬関数の設計がパフォーマンスに大きく影響してしまう点がある。PbRLでは、絶対的なスコアでの報酬ではなくペアの良し悪しという形で暗黙的な報酬信号を用い…

継続学習あたりの軽い調査

論文1 : Decision-RWKV この論文ではLifelong Learningの問題に対してDecision-RWKVを使って対処しようとしている。Decision-RWKV自体の理解もしたいとはいえちょっと後回しにして、まずは「2.4 Related Work on Lifelong Robot Learning」に触れる。ここで…

ABC365復習

あまりの惨敗だったので久しぶりに復習。 レートに上向き矢印が付いたことで1700台から1600台へ落ちることに降格感が強く出るようになっている。 D - AtCoder Janken 3 補足みたいなケースになかなか気づかなくてWAを何回か出してしまった。どうすれば察知で…

glimを動かす

Dockerイメージが準備されているのでそれを使ってみる。 ドキュメントの通りに進めると $ docker run -it --rm --net=host --ipc=host --pid=host --gpus all -e=DISPLAY -e=ROS_DOMAIN_ID -v $(realpath config):/glim/config koide3/glim_ros2:humble_cuda…

ALGO ARTIS プログラミングコンテスト2024 夏(AtCoder Heuristic Contest 035)

順位 172nd / 1743 パフォーマンス 1854 レーティング 1992 → 2003 (+11) Highest更新! 段級位 1 級 → 初段 上手く出来たという感触はなく、ギリギリなんとか乗っかった。そもそも2回前のAHCまで調子がよくレートが伸びて黄色まで残り+9になっていたが、AHC…

AWSIM西新宿データでstreet-gaussians-nsで動かす

前回で空モデルが直ってある程度の推論が回せるようになった。なのでrosbag形式のデータから学習を回していけるように整えていく。 データとしてはいつものAWSIMて取った西新宿データを使う。まだカメラが信号機認識用の前方1台分しかないのであまりちゃんと…

WayveScenes101データセットをstreet-gaussians-nsで動かす(3)

前回は歪み補正の問題を解消して10シーン分の検証を行い、まず空モデルの回転方向のバグ修正に取り組む方針を決めた。 空モデルの修正 前回のシーン008がわかりやすかったので再掲。 主に空部分を担当する空モデルが、自車の回転に伴って変な方向に回転して…