先週末発売のInterface誌で、numpy ライクな GPGPUライブラリ cupy の紹介記事を Interface で書きました。毎月愛読している雑誌に自分の名前が載ってるのは不思議なものですね。記事中のソースコードは許可をもらって GitHub にあげてます。

https://github.com/ShigekiKarita/cupy-examples

掲載記事では最初に cupy で中央値を求めるプログラムを書きながら、基本的な使い方を解説してます。限られた紙面では、CUDAの概念はとても説明できませんでしたが、それでも解きたい問題にシンプルにアプローチできるのが、numpyに由来するcupyの良いところですね。もし、CUDAそのものに興味があれば、CUDA C プロフェッショナル プログラミングをおすすめします。

後半は cupy を使ったニューラルネットワークライブラリの chainer で、方策勾配という少し変わった強化学習法のプログラムを書いています。なんとなく見栄えが良いかなと思って、パックマンの高スコアなゲームAI学習のプログラムを作りましたが、よりシンプルなポールの姿勢制御プログラムもありますので、興味のある方はぜひ、雑誌と併せてご覧ください。方策勾配についても、紙面では全く説明できませんでしたが、そのうちマルコフ決定過程などの基本的な概念と導出をブログで解説できたらと思います。おすすめな学習資料はUCLの講義資料です。Youtubeに講義動画もあります。