Unityで強化学習を勉強するための参考書
UnityのML-Agentsにて強化学習させるために参考にした本はずばり、「Unity ML-Agents 実践ゲームプログラミング v1.1対応版」になります。
というか、Unityで強化学習をする際この本以外の参考書はないです。
この本がなければ二進も三進もいかず、途方に暮れていたと思います。。。
使い方だけでなく、強化学習の実際のサンプルも載っているので非常に良心的です。
この記事では、私が実際に購入してUnityで強化学習を勉強した感想を述べていきます。
「Unity ML-Agents 実践ゲームプログラミング v1.1対応版」の使い方から注意点まで独自の視点で解説します。
Unity ML-Agents 実践ゲームプログラミング v1.1対応版の内容
本書は7章だての構成になっています。
その中でも特に役にたった内容が3つあります。
・強化学習をはじめとする機械学習のアルゴリズム
・ML-Agentsの導入方法
・強化学習の実行サンプル例
強化学習をはじめとする機械学習のアルゴリズム
Unityで強化学習をさせたいということは、機械学習の基礎的な知識が必要となります。
ある程度の知識がないと、うまく学習してくれません。
その点で、本書では、ML-Agentsで強化学習をするときに必要最低限の知識のみをピックアップしてくれているので無駄がなく親切になっています。
ML-Agentsの導入方法
次に、ML-Agentsの導入方法になります。
プログラミングで機械学習を始めるときの最初の壁が環境構築であることはいうまでもありません。
その環境構築を本書では図式化してわかりやすく解説されているので、最初の障壁がなくUnityで強化学習の勉強をすることができます。
こちらのリンクがML-Agentsを始める際のツールキットになるのですが、正直このサイトを見ただけではわからないでしょう。。。
強化学習の実行サンプル例
UnityのML-Agentsにはサンプルプロジェクトが存在しています。
Unity ML-Agents参考書では、各サンプルプロジェクトのコードや報酬、行動などが詳しく記載されています。
自分が強化学習させたい内容に合わせて各サンプルをマネするように使っていくと便利です。
ちなみに立方体のキャラクターの画像は、Unityの強化学習の登竜門である3DBallになります。
四角いキャラクターの頭の上にBallが乗って、落とさないような動作を学習するサンプルプロジェクトです。
こちらのプロジェクトがどのようにして動いているのか、コードがすべて公開されていますので再現性があってすぐに取り組むことが可能です。
Unity ML-Agents 実践ゲームプログラミング v1.1対応版の使い方
私自身、辞書のように扱うことが多く自分が強化学習させたい内容によって対応しているサンプルコードを確認するといった感じで使用しています。
例えば、サッカーゲームを作る際に、対戦相手のAIが必要だったとします。
その時には、サンプルプロジェクトの「soccer」のコードをコピペし、自分のやりたいことを追加してすぐに学習させるといった使い方です。
コードの一部になりますが、ぱっと見でわからないような内容も手厚く解説されています。
Unity ML-Agents 実践ゲームプログラミング v1.1対応版の注意点
実際に「Unity ML-Agents 実践ゲームプログラミング v1.1対応版」を用いて強化学習を行った際にうまくいかなかった点がありました。
ずばり、ML-Agentsのバージョンへの対応です。
こちらの本は2020/8/14に発売されたものなので、現在とてもたくさんのML-Agentsのバージョンが更新され続けており、対応しきれていない場合がございます。
そのため、自分が扱いたいバージョンを合わせる必要があります。
というのも、ML-Agentsは厄介なものでバージョンによって機械学習させる際のコードが異なるのです。
私は、このバージョンによるコードの違いで大変苦労しました。。。
面倒な場合は、本で扱っているML-Agentsのバージョンを扱うとよいです。
その場合は、かなり簡単に実行することができます。
自分が使いたいML-Agentsのバージョンがあるならば、ML-Agentsが更新されるたびに英語にて、変更箇所がGit-Hubにて解説されているため、確認するとよいでしょう。
このサイトではUnityの使い方を専門用語をあまり使わずにわかりやすく解説しておりますので、その他の記事もご参考ください。
また、何か疑問点がございましたらお問い合わせまでご連絡くださいませ。
コメント