forked from TadaoYamaoka/python-dlshogi2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
説明書.txt
92 lines (54 loc) · 3.98 KB
/
説明書.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# 概要
python-dlothelloはUSI-Xプロトコルオセロ版対応のオセロAIである。
python-dlshogi2という将棋AIを改造して作った。
python-dlshogi2は「強い将棋ソフトの創りかた」という本のサンプルプログラムである。
このリポジトリを見るような人は絶対に読むべき名著なので、Amazonで探して買って読みましょう。
# USI-Xとは
USI-Xとはやねうらお氏(世界トップクラスの将棋AIのやねうら王の開発者)が提案した「対局ゲーム標準通信プロトコル」である。
詳細はこのリンクを参照のこと: http://yaneuraou.yaneu.com/2022/06/07/standard-communication-protocol-for-games/
USI-Xのオセロ版の詳細については、こちらを参照のこと; https://github.com/YuaHyodo/USI-X-protocol_othello_version
===========================================================
# python-dlothelloのファイルの説明
## USI-Xエンジン
base_player.py: USI-Xプロトコル対応プレーヤー(USI-Xエンジン)の土台
Azisai.py: 基準AI、Azisaiの本体。
Azisai.bat: 基準AI、Azisaiのbatファイル。USI-Xエンジンとして使える。
mcts_player.py: pv-mctsを使ったオセロAI
MCTS.bat: mcts_playerのbatファイル。USI-Xエンジンとして使える
minimax_player.py: ディープラーニング系評価関数とαβ法ベースの探索部を持ったオセロAI
MiniMax.bat; minimax_playerのbatファイル。USI-Xエンジンとして使える。
Endgame_AI.py: 最終盤に特化した終局まで読むAI(mcts_playerなどが呼び出す)
random_kun.py: デバッグなどに使えるランダムムーブをするやつ
random_kun.bat: random_kunのbatファイル。USI-Xエンジンとして使える。
## 学習関係
input_features.py: 入力特徴量関連
gen_data.py: USI-Xエンジン同士を対戦させて教師データを作る
train_NN.py: ニューラルネットを訓練する
## 対局ツール
USI_X_Engine.py: USI-Xエンジン呼び出しツール(簡易)
engine_invoker.py: エンジンを2つ呼び出して連戦させるツール
Human_vs_AI.py: 人間とUSI-Xエンジンが戦うための簡易ツール
## その他
./uct/uct_node.py: mctsで使うノード関連
./model/NN.py: ニューラルネットを定義している
./model/model_files/: モデルファイルを入れておくディレクトリ
./iroiro/Board_to_sfen.py: creversiのBoardをUSI-Xオセロ版のsfenに変換するツール
./iroiro/batファイルの型.txt: この中身をコピペしてbatファイルを作ると便利
./iroiro/make_random_board.py: テストとかに使うランダム局面を生成する。手数を指定できる。
./othello_sfen_viewer/: sfenをグラフィカルに表示してくれるツールに関するディレクトリ
## データ
./data/Azisai_depth4_data/: Azisaiをdepth4設定で自己対局させて生成したデータ
./data/Azisai_depth6_data/: Azisaiをdepth6設定で自己対局させて生成したデータ
./data/random_data/: random_kunで生成したデータ
./data/dlreversi_selfplay_deth4/: dlreversiという作者(兵頭)が別で作っているオセロAIを
depth4設定で自己対局させて生成したデータ
===========================================================
# 使い方
USI-Xエンジン関連ツールを使うか、Human_vs_AIを使うと対局できる。
学習は、ディレクトリに使いたい学習データ(形式はgen_data.pyのコメントを参照の事)を入れて、train_NN.pyを起動し、
学習させたいモデルファイルとさっき用意したデータのディレクトリを指定する事で行える。
===========================================================
# python-dlothelloの今後の予定
1:ローカルで学習を走らせる
2:学習データ・学習済みモデルを公開する
3:リファクタリングしてコードをマシにする