UnityとゲームAIと将棋

Unity、Pythonを中心にゲーム開発やゲームAI開発の技術メモ等、たまに将棋も

ゲームAI

【AlphaZeroを理解する】多腕バンディット問題編

概要 囲碁、将棋、チェスなどのボードゲームにおいてルール以外のドメイン知識を利用せずに対戦用AIとしてのState-of-the-art(SOTA)を達成したAlphaZeroを細かく分解しながら理解していこうというシリーズです。今回はモンテカルロ法の基礎となる多腕バン…

【ゲームAI】オセロの結論が引き分けであることが解析されたらしい

結論 オセロの結論は引き分けということが解析されたらしい(弱解決) 詳細 オセロの結論は引き分けであるということを解析したという論文がArxivに投稿されていた。 arxiv.org 上記の論文を読んでみて気になったのが「解かれたゲーム」というのには ultra-w…

【AlphaZeroを理解する】モンテカルロ法編

概要 囲碁、将棋、チェスなどのボードゲームにおいてルール以外のドメイン知識を利用せずに対戦用AIとしてのState-of-the-art(SOTA)を達成したAlphaZeroを細かく分解しながら理解していこうというシリーズです。今回はAlphaZeroの根底にあるモンテカルロ木…

【Unity】MLAgentsでターン制ゲームのAIを実装する時の行動決定方法

結論 RequestDecisionメソッドを使用する 詳細 Unity MLAgentsで自作ゲームのAIを実装する際に、サンプルの実装を参考にすると思いますが、サンプルゲームにはリアルタイム性の強いものが多く、ほとんどが下記の画像ようにDecisionRequesterのコンポーネント…

【LLM】大規模言語モデルを動かすのに必要なGPUメモリ

結論 【推論】 推論時の必要GPUメモリ[GB] = パラメータ数[b] × 2 【学習】 学習時の必要GPUメモリ[GB] = 推論時の必要GPUメモリ[GB] × 4 【n bit 量子化】 量子化時必要GPUメモリ[GB] = 通常時必要GPUメモリ[GB] × ( n / 通常時の bit 数) 【LoRA】 学習時…

ゲーム開発でのゲームAI・機械学習技術の活用

概要 ゲーム開発において、ゲームAI技術や機械学習技術を活用する流れが加速していると日々実感しています。実際の現場でも導入されることが増え、ゲーム開発の様々な部分で効率化が進んでいると思います。ただ、どのようなケースで、どのような技術を使用す…

【Unity】Unity上でニューラルネットを組みたい時に使えるライブラリ候補のメモ

Unityでニューラルネットワークを組みたい場合にPythonでのPytorchやNumpyのように利用できそうなライブラリをメモしておく。 TorchSharp .NETからPytrochを利用できるようにバインドしたライブラリ。.NET公式。モバイル機器での動作には対応していないらし…

【Unity】深層学習用ライブラリ "KelpNet" を使ってみる

本記事の概要 ※Qiitaからはてなブログに引っ越しました! 本記事ではC#向け深層学習用ライブラリKelpNetを使って簡単な学習を行う方法を解説します。 学習のサンプルとしてはFNNでXORの学習を行うコードを作成し、Editor拡張上で学習を実行します。 KelpNet …

【Unity】遺伝アルゴリズム用ライブラリ "GeneticSharp" を使ってみる

本記事の概要 ※Qiitaからはてなブログに引っ越しました! 本記事では、C#向け遺伝アルゴリズム用ライブラリ "GeneticSharp" に関して Unity上に導入する方法 Unity上でのGeneticSharpの使い方 遺伝アルゴリズムを使って簡単な問題を解く方法 をまとめていま…