機械学習周りのプログラミング中心。 イベント情報
ポケモンバトルAI本電子書籍通販中

2023-10-01から1ヶ月間の記事一覧

ゲームボーイ上で強化学習を行う part8

前回、ソフトが完成しました。今回は実機動作確認です。 ゲームボーイ実機で動作させる せっかくゲームボーイソフトを開発したので、エミュレータ上だけでなく実機でも動作させてみたいです。そのためには、パソコンから書き込めるカートリッジが必要です。 …

ゲームボーイ上で強化学習を行う part7

実装 Q学習とアニメーションの共存 Q学習でQテーブルを更新すると同時に、最新のQテーブルに基づいて車が運動するアニメーションを表示する実装を行います。課題は、学習と表示をどのように並行動作させるかです。もっとも単純に学習過程を表示する方法は、…

ゲームボーイ上で強化学習を行う part6

前回、画面表示に必要な機構を準備しました。今回は車のスプライトを動かします。 実装 学習済みQテーブルの実行 スプライトの動きの実装に集中するため、まずはPCで学習したQテーブルを用いて車の運動を計算し、うまく坂を上るアニメーションを実現します。…

ゲームボーイ上で強化学習を行う part5

実装 グラフィックの実装 前回作成したアセットを画面上に表示するための実装は、以下のようにして行えます。 #include <gb/gb.h> #include <gbdk/console.h> #include <gbdk/platform.h> // .cをincludeする。sizeof()を使いたいため。 #include "bg.c" #include "bg_map.c" #include "sprite.c" // VB</gbdk/platform.h></gbdk/console.h></gb/gb.h>…

ゲームボーイ上で強化学習を行う part4

前回、Q学習のアルゴリズムをゲームボーイ向けビルドしました。今回は、学習した車の動きを画面に表示するための実装を進めます。 実装 ゲームボーイのグラフィックシステム ゲームボーイの画面は幅160px、高さ144pxの液晶です。色はモノクロで、白、明るい…

ゲームボーイ上で強化学習を行う part3

前回、浮動小数点数演算を使わないQ学習アルゴリズムを実装しました。次にこれをゲームボーイ用にビルドしていきます。 実装 Q学習をゲームボーイ用にビルド ゲームボーイ用のmain関数は以下のようになります。PC版との違いは、乱数シードの設定関数がinitra…

ゲームボーイ上で強化学習を行う part2

前回の続きです。前回はQ学習をPC上で動作させ、適切なハイパーパラメータを取得しました。 実装 浮動小数点数演算を回避する 先述のプログラムでは浮動小数点数(double型)の演算を用いていましたが、GBDKのCコンパイラではこれをサポートしていません。ゲ…

ゲームボーイ上で強化学習を行う part1

ゲームボーイは1989年に発売された携帯ゲーム機で、現代では非公式ながら個人でもゲームソフトを開発することができます。そこで(!?)、ゲームボーイ上で強化学習を行うソフトを試作しました。 レトロなゲーム機と言えど任意のコードが実行できる計算機で…

iPhone15Proの冷却とNeural Engineの速度について

Neural EngineによるDNNの推論を連続して行った際に、発熱などの影響により時間が経つにつれ処理速度が低下する現象がみられます。将棋AIの大会にiPhone 15 Proで出場することを想定し、iPhone 15 Proで使えるスマートフォン用冷却ファンを購入したので、冷…