機械学習技術の一つに、試行錯誤を通じてゲームの解き方を学習する「強化学習」があります。 本書では、強化学習アルゴリズムを30年前のゲーム機であるゲームボーイに実装することを試みます。 動画: https://twitter.com/select766/status/1722943574059413889 本編では、強化学習の入門タスクであるMountainCarを解く実装を通じて、ゲームボーイというレトロなコンピュータの特性に合わせたプログラミング手法を検討します。付録では、プレイヤーがアクションゲームのステージを作れる「マリオメーカー」風のゲームを開発し、プレイヤーが作ったステージを強化学習アルゴリズムにその場で解かせるという応用課題に挑戦します。 プログラミングにはC言語を用います。ゲームボーイ特有の事前知識は必要ありませんのでご安心ください。 第1章 イントロダクション 1.1 開発するソフトウェア 1.2 ゲームボーイの概要 1.3 使用するツール 1.4 MountainCarゲーム 1.5 強化学習アルゴリズム 第2章 実装 2.1 パソコン向けのC言語実装 2.1.1 MountainCar環境の実装 2.1.2 Q学習の実装 2.1.3 ハイパーパラメータ調整 2.2 浮動小数点数演算を回避する 2.3 Q学習をゲームボーイ用にビルド 2.4 ゲームボーイのグラフィックシステム 2.5 画面の構成とアセットの作成 2.6 グラフィックの実装 2.7 printfとの干渉を避ける 2.8 学習済みQ テーブルの実行 2.9 Q学習とアニメーションの共存 2.10 ボタン入力によるモード選択 第3章 ゲームボーイ実機で動作させる 付録A 「マリオメーカー」風ゲームを作る A.1 ステージの仕様 A.2 ゲームの実装 A.2.1 画面構成 A.2.2 ステージ作成画面 A.2.3 ステージプレイ画面 A.2.4 強化学習画面 A.2.5 ゲームボーイカラーの倍速モード A.3 動作結果 A.4 まとめ
もっと見る