LoginSignup
3
3

More than 5 years have passed since last update.

Unity ML-Agents Toolkit v0.7でブロック崩し

Last updated at Posted at 2019-04-16

社内の発表で、Unity ML-Agents Toolkitを使ってブロック崩しをするAgentを書いてみました。最近v0.8がリリースされましたが、使用したバージョンはv0.7になります。

Cap.2019-04-15 23_36_12.gif
左が10,000ステップのトレーニングで、右が800,000ステップになります。

Source Code
https://github.com/fullcorder/BlockGame

実装自体はできたものの、なかなか期待したとうり動いてくれずに苦労しました。
試行錯誤をメモとして残します。

Agent実装クラスのDecision Interval

Decision Intervalを1でトレーニングを行っていたのですが、一向に動く気配がなく、試行錯誤したところこの値を10にした途端、期待するように動くようになりました。

Decision Intervalドキュメントによると

Decision Interval - The number of steps between decision requests. Not used if On Demand Decision, is true.

なかなか理解が難しいですが、何回単位で方策を評価するといったところでしょうか。
トレーニング中のログからも、1ゲームプレイして判断ではなく、10ゲームプレイした結果で評価しているといったように見受けられました。

失敗時AddReward(-1)をする

ブロック崩しで言うところの、ボールを空振りしてしまったときマイナスの報酬を与えると、同じステップのトレーニングでよりよい結果になりました。これをしばらく忘れていました。

感想

Unityのドキュメントが充実しているので、非常に助かりました。(ただし英語)
ただ学習がうまくいかないと割と途方にくれます。Qiitaの記事が非常に参考になりました。
Unity ML-Agentsは想像よりも簡単に強化学習を体験できるので、是非おすすめです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3