351 Views
February 24, 26
スライド概要
・イベントページ:https://ue-hiroshima.connpass.com/event/379637
ゲームプログラマー
UEで強化学習! Learning Agentsで遊んでみた話 ツバサムス @tsubasamusu
自己紹介 フリーランスでUnityやUnreal Engine などを使ったお仕事をしています! 前職ではUE5を使ってノンゲームのモ バイルアプリを開発してました。 「ツバサムスBlog」という技術ブログ もやってます! Twitter X ツバサムスBlog
Learning Agentsとは Unreal Engineで強化学習や模倣学習を 行えるプラグイン! 機械学習によって常に最適な行動をと るNPCを作ったりできる! C++を触らずにブループリントだけでい ける! まずは公式チュートリアルをやってみ るのがオススメ! https://dev.epicgames.com/community/learning/cou rses/GAR/unreal-engine-learning-agents-55/bZnJ/unreal-engine-learning-agents-5-5
そもそも強化学習って何? 得られる報酬を最大化するための 行動をひたすら試行錯誤して学習 するという、機械学習の方法の1つ 右に進んだら報酬が増えて左に進んだら報 酬が減ったんやが! もうこれは右に進むしかないやろ! 車の自動運転やロボットの制御な どのノンゲームでも使われている 周囲の状況をAIに伝える処理の作成 や報酬の計算が難しく、学習に時 間がかかるといった特徴もある 報酬アップ⤴ AI 報酬ダウン⤵ ゴール
Learning Agentsでの強化学習の仕組み なんか目の前に障害物な いっすか? ジャンプした方がよくな いっすか? お! ゴールに近づいたやん! 報酬やるわ! ま、とりあえず右に 進むかぁ Reward (報酬) Action (Agentの行動) Interactor AddAgent() でAgentをManagerに登録する Manager Agent ID Agent Observation (周囲の状況など) Training Environment
今回チャレンジしたこと Learning Agentsの強化学習を使って「Side Scroller」をAIにクリアさせよう! 「Side Scroller」とはUE 5.6から追加された横 スクロール型のテンプレートプロジェクト! ゴール スタート ※これは人間がプレイしてます
環境 UE 5.6.1(ランチャー版) Windows 11 Learning Agents 0.2(Experimental)
つまづきポイント
Agentを取得できない問題 InteractorやTraining Environment でAgentを取得できてないっぽい... InteractorやTraining Environment で GetAgent() するときに「Agent Id」の接続を忘れがち... 公式チュートリアルのページからブ ループリントをコピペするときにこ 参考にさせていただいた動画でも同様のミスが発生していました... のミスが起こりやすい! (https://youtu.be/Xdz7uuXnJFA)
Agentが移動してくれない問題 Interactor(周囲の状況を把握してAgentに Actionを指示する人)がAgentに指示した時 だけ移動するような処理だと、Agentがほと んどその場から動いてくれない...
Agentをうまく移動させるには? Interactorに指示された時だけ移動するので はなく、受け取った値を変数に保存して毎フ レームその値だけ移動するようにしよう! この問題に関してはsuzuki takashi様 の記事「LearningAgentで華麗に崖を 飛び越えさせてみたかった」を参考 にさせていただきました!
中盤辺りを越えられない問題 以下の状態で強化学習すると中盤辺りがどうし ても越えられない... Interactorが収集できる情報 (Observation)はAgentの速度のみ Agentがとれる行動(Action)は左右移動 とジャンプのみ 前回報酬を計算した時よりもゴールに近付 いたなら報酬UP ※あまりにも重いのでワイヤーフレーム表 示にしてます
Observationを増やしてみた 正面の障害物の高さ 正面の障害物までの距離 頭上にあるオブジェクトの種類 正面が崖かどうか 接地しているかどうか などをObservationに追加してみた が、やっぱり中盤辺りを越えられな い... ※これはAIがプレイしてます
結果 コースの中盤部分を少し改造したら一応はゴールまで辿り着けた! ※プレイしているのは『強化学習モード』 のAI
推論モード 推論モード(Inference Mode)はこれまで の学習結果をもとに実践するモード。 このモード中は新たに学習はしない。 パッケージ化後は推論モードで動かす。 ※プレイしているのは『推論モード』 の AI
Tips
Visual Logger ObservationやReward、Action などの値を確認したいときは Visual Loggerに出すのがオスス メ! レコード後に時間を巻き戻して特 定の時点での値を視覚的に分かり やすく確認できる! ※Visual LoggerはUE標準の機能
Agentの数 Agentが多ければ 多いほど学習効率 が上がる! ※もちろんAgent が多いほど重くな ります 1台のみで15分間強化学習させた場合 32台で15分間強化学習させた場合
まとめ・感想 Learning Agentsを使った強化学習はC++不要で、公式チュートリアル もあり、手軽に試せる! 初めのうちはスムーズに動けなかったAIが徐々に上手く動けるようにな っていくという過程を観察できるのは最高に面白い!! (今回はゲーム寄りな検証内容でしたが、 )ノンゲームでも活かせるの で、ぜひLearning Agentsで遊んでみよう!
参考記事・参考動画など 【UE5】5時間学習した強化学習AIとピザ宅配バトルしてみた Learning Agents | Unreal Fest 2024 Learning Agents (5.5)(概要編) Learning Agents (5.5)(実践編) LearningAgentで華麗に崖を飛び越えさせてみたかった