- 将棋AIで学ぶディープラーニング (山岡忠夫著) の手法を参考にする。 [1]
- 個人で利用するのが現実的な学習リソースとコストで、ディープラーニングモデルを強くするため、Google Colab を積極的に活用する。
将棋以外にも活用するため、 Python を利用する。高速化が見込まれる場合は、 Cython を利用する。- 対局時の高速化のために、dlshogi (Pytorch/TensorRT) を利用する。
- 学習時の高速化のために、dlshogi (Pytorch) を利用する。
Google の AlphaZero の手法をリスペクトするため、Google Colab (GCP) の TPU を利用する。TPU が利用できない場合は、GPU の TensorCore を有効活用するため、AMP (Automatic Mixed Precision) を利用する。TPU のバグを回避するため、ローカルPC または、クラウド の GPU を学習/推論に使用する。- ローカルPC の GPU で実際に対局し、低ノードでの学習モデルの強さを見る。
- クラウド の GPU で大会に出場し、ハードウェアリソース増強で、学習モデルの強さを向上する。
- 費用対効果見合いで、NVIDIA A100 を活用する。
C++の実装をPythonに移植する際の参考。AMP対応して高速化する。Pytorch 1.5 + apex は、issue が多く、安定動作するまで厳しかった。
- Pytorch 1.6 の Automatic Mixed Precision対応が dlshogi (Pytorch) に取り込まれているため、活用する。
- dlshogiのautomatic mixed precision対応
- A PyTorch Extension: Tools for easy mixed precision and distributed training in Pytorch
- Automatic Mixed Precision (AMP) でニューラルネットワークのトレーニングを高速化
- 対決!RTX 2080Ti SLI vs Google Colab TPU ~FP16, MixedPrecision編~
- PyTorchでの学習・推論を高速化するコツ集
- 【NVIDIA直伝】あなたのPyTorchプログラムを高速化するかもしれないTips
- PyTorch Tutorials の Model Optimization では、量子化 (Quantization) に期待。
- INT8 対応することで、推論速度は上がるが精度は下がる。棋力の向上には繋がらない可能性がある。
- 定跡を採用する。MakeBook ソリューションをビルドして、make_book コマンドで定跡を作成する。
- WCSOC 2020 以降のdlshogi の自己対局データで教師あり学習をする。
- 学習データの前処理(floodgate / AobaZero の棋譜)に使用。
対局時に使用。高速化を図るため、Cython でビルド。
- 事前学習用の訓練データ生成に使用。(elmo WCSC28/Apery) [2]
強化学習時のリーグ戦に使用。(elmo WCSC28/やねうら王)リーグ戦のUSIエンジン側として、やねうら王ライブラリを使用する場合は、勝率が50%程度となるように NodesLimit を調整する。Colab では、学習リソース不足が想定されるため、低ノードでの良質な教師データの作成が期待できない。強化学習時のリーグ戦にはやねうら王エンジンではなく、dlshogi (WCSOC 2020) を採用する。
- 初期モデルの学習後、実際の対局で強さを測るために使用。
- ディープラーニングモデルを対局する際に、Lesserkai→技巧2→やねうら王ライブラリ勢に勝利するまでのハードルが高い。
- モデルの学習精度、対局時に使用する将棋ライブラリ/ハードウェアリソースの性能等、棋力の問題点を切り分けにくい。
- 同一ハードウェアで技巧2に勝利できるかが、ディープラーニングモデルの棋力の目安になる。
- Python では、GIL の制約により nps が向上しないため、絶望的だった。
- GCT (WCSC 30) +GTX 1080 では、ローカル対局時に勝利できる気配が無かった。
- C++/dlshogi (Pytorch) +RTX 2070 Max-Q では、nps が不足しているためか、やはりローカル対局時に勝利できる気配が無かった。
- C++/dlshogi (TensorRT)+TensorCore でようやく勝利できるようになった。
- Python では、GIL の制約により nps が向上しないため、絶望的だった。
- 一定以上の棋力のモデルを学習できれば、多少のディープラーニングモデル精度向上よりも、ハードウェア性能による nps 向上の方が、棋力の向上に貢献している可能性がある。
- ただし、GCT (WCSOC 2020) では、dlshogi (WCSOC 2020) 相手に勝てる気配がないため、モデル精度の壁は確かに存在する。
- 強化学習で生成する学習データでは不足するため、自己対戦の棋譜を訓練データに使用する。
- Floodgate Elo rating 3040 以上の 11500000 以降の自己対戦の棋譜を取得する。
- 序盤はdlshogi よりもAobaZero 方が強い可能性があるため、序盤の学習を期待したい。
- 入玉宣言法の教師局面の学習を期待したい。
- AobaZero 棋譜の CSA -> hcpe 形式への変換には、ElmoTeacherDecoder を修正して対応した。
- floodgate の CSA形式とフォーマットが違うため、前処理時には注意が必要。
- 探索結果の評価値を棋譜から取得できない場合、dlshogi (Pytorch) での学習時は、val_lambda=0 で学習する。
- 乱数性なし、先手/後手の初手がほぼ固定の模様。互角局面集の扱いに注意が必要。
学習モデルの序盤の手順が偏ることが想定されるため、定跡を採用する。
- ローカル対局で学習モデルの強さを見るため、活用する。
- dlshogi : やねうら王エンジンの nps 比が 1 : 300 程度の条件で対局する。
- NVIDIA A100 : Ryzen Threadripper 3990X とその後継機種の nps 比率を想定する。
- ハードウェア競争が加熱するのは本意ではないが、仮に激化としても問題ない棋力のモデルを目指す。
- 対局条件
- 1手3秒、5秒、10秒、20秒、30秒、3分1秒、5分2秒、10分2秒
- 思考時間/持ち時間/対局ソフトに関わらず、安定した棋力のモデルを目指す。
- 実際の対局で生成した平手からの棋譜で、教師あり学習する。
- dlshogi : やねうら王エンジンの nps 比が 1 : 300 程度の条件で対局する。
- 世界将棋AI 電竜戦 と電竜戦TSECにおいて、苦手とする局面があった。多様な局面でも安定した棋力のモデルを目指す。
- やねうら互角局面集を初期局面集として活用し、強化学習する。
- 実際の対局で強さを測るために使用。
リーグ戦のUSIエンジン側として、弱点の補強のため、採用を検討したい。弱点の補強のため、同梱の定跡ファイルを利用して、定跡を作成する。- 水匠で作成した教師局面のうち、入玉宣言で終わった局面のデータを活用する。相入玉/入玉宣言の棋譜を教師あり学習する。
- 大会では、水匠の評価関数をベースとして追加学習/レーティング測定をする上位ソフトが多いことを想定する。
- たややん互角局面集を初期局面集として活用し、強化学習する。
- 実際の対局で強さを測るために使用。
- コンピューター同士の対局で出にくい戦型である振り飛車ソフト相手でも、安定した棋力のモデルを目指す。
- 方策ネットワーク(policy network)
- 価値ネットワーク(value network)
- マルチタスク学習
- Residual Network
- Swishあり
- 将棋AIの実験ノート:活性化関数Swishを試す
- Swishありモデルで、強化学習 (make_hcpe_by_self_play) する場合は、onnx モデルである必要がある。pytorch で生成したモデルには対応していない。
Colab が、CUDA 11.0/TensorRT7 以降に対応するまで、Swishありモデルでの強化学習の採用は保留する。
最強囲碁AI アルファ碁 解体新書 増補改訂版 アルファ碁ゼロ対応 [10]
- アルファ碁ゼロに使われているディープラーニングを解き明かす 論文から詳細を紹介 [11]
- コンピュータ将棋におけるディープラーニングの考察 [14]
- 将棋AIの進捗 [15]
- AlphaGo Zeroの論文を読む [16]
- AlphaZero Chess/Shogiの論文を読む [17]
- MCTSnetの論文を読む [18]
- AlphaZeroの論文 [19]
- AlphaStarの論文を読む
- AlphaStarの論文を読む その2(リーグトレーニング)
- AlphaStarの論文を読む その10(リーグ構成)
- MuZeroの論文を読む
- Agent57: Outperforming the Atari Human Benchmarkを読む
- 終局まで含む棋譜で追加学習が必要なため、floodgate の棋譜(2008
2011年~2019年)を使用。 - Rating で絞る(Rating 2500 or 3000以上等)よりは、学習局面数を多くする方が感覚的には強くなる。学習局面数を多くすることで、value network の精度が上がるためか。
- 複数年の学習データをまとめてシャッフルするよりは、年単位に順次学習(2008年→2009年→
2011年→2012年→... →2019年)した方が感覚的には強くなる。年単位のRating の向上を追体験するためか。 - epoch 数を多くして、Policy/Value の精度を上げても、棋力は上がらない。悪手を含めて、過学習するためか。
- 棋譜のフィルタ/重複排除/シャッフル/CSA -> hcpe 形式への変換には、ElmoTeacherDecoder を使う。
- 訓練データには、floodgate を使用する。最大手数:512、最大評価値:5000、最小レーティング:なし(コメントアウト)、重複あり、シャッフルあり。
- テストデータには、floodgate を使用する。最大手数:512、最大評価値:5000、最小レーティング:3500、重複なし、シャッフルあり。
- 疑似リーグ戦として、floodgate/電竜戦本選に放流した自己モデルの対局棋譜を教師あり学習する。
- Ryzen Threadripper 3990X、A100 を利用した高ノードの棋譜を教師あり学習する。
- 技術書典で頒布されたdlshogi の本「ディープラーニングを使った将棋AIの作り方2~大規模学習、高速化編~」を参考にした。 [13]
- elmo_for_learn で生成した訓練データ(約5億局面)で事前学習。
- デフォルトでは、 評価値閾値(3000)で打ち切っているので詰み手順は入っていない。そのため、億単位の局面を学習しても、Lesserkai を詰み切れない。
- 教師データとしては、ランダムなプレイでもいいから、最後まで打って勝敗を判定する必要がある。または、詰み探索を併用する必要がある。
- 生成されたhcpe 形式には局面の繰り返し数と手数が含まれない。 [20]
- AlphaZero Shogi で使用されている繰り返し数と手数は、入力特徴量に加えれない。 [21]
- 評価値閾値(30000)で訓練データ(depth8: 約5億局面、depth10/12: 約1000万局面単位、depth14/16/18: 約100万局面単位)を生成する。
- 1000万局面単位に結合し、シャッフルする。
- Colab の CPU で depth8/10/12 、ローカルPC で depth14/16/18 の訓練データを数ヶ月~半年程度で生成した。
- elmo_for_learn で生成した訓練データのdepth を深くすることで、どこまでAlphaZero に迫れるのか試すのも面白そう。
- c5d.24xlarge(96 vCPU、192 GiB)のスポットインスタンスで、depth12 の訓練データを生成してみたが、お財布的に現実的ではないため、断念した。
- Colab の GPU (T4) では、dlshogi (Pytorch/AMP) で、約1時間40分/1サイクル(1000万局面)/1Epoch の訓練データを学習できる。
- 技術書典で頒布されたdlshogi の本「ディープラーニングを使った将棋AIの作り方~強化学習編~」を参考にした。 [13]
- Python の並列処理では、GIL (Global Interpreter Lock) がボトルネックになる。
- Cython の将棋ライブラリを使用しても、24時間/1000プレイアウト程度かかる見込み。
- C++/Go 他の言語による並列化/高速化が必要と思われる。
- 強化学習の代わりのバリエーションとして、Apery との対局を1手3秒、100局程度を追加学習したところ、悪手を指すようになり、むしろ弱くなった。
- 全く別系統の教師データを追加するとノイズが紛れ込むため、一時的に弱くなる可能性がある。大量の教師データを継続的に学習することで、ノイズが平均化され、結果的に改善に寄与している可能性がある。
- 仕組みの理解や実験にはいいが、Python で強化学習するのは現実的ではないため、採用を見送った。
- 自己対局時の高速化のために、dlshogi (Pytorch/TensorRT) を利用する。
- 自己対局モデルの弱点を見つけるため、USIエンジンを含めたリーグ戦を導入する。
- リーグ戦には、dlshogi (WCSOC 2020) のモデルを採用する。
- 自己対局側は、ルート局面にディリクレノイズを加えている。リーグ戦と同じモデルを採用し、同条件を設定した場合でも弱くなる。
- 1サイクル700万局面単位で用意する。不足分は、elmo の訓練データ (300万局面) を追加した。
- dlshogi は、1サイクルあたりの生成局面数を 250万→500万→600万 と徐々に増やしている。
- dlshogi は、自己対局で生成した局面は過去10サイクル分をすべて学習に使っている。
- Colab では複数サイクルを同時に学習するのはリソース制約により厳しい。過去2~3サイクル程度が現実的か。
- Colab の GPU (T4/P100) では、dlshogi (Pytorch) で5~10万局面/日程度の学習データを生成できる。
- dlshogi (TensorRT) は、Colab の CUDA Driver (10.1) とTensorRT7 以降の対応バージョン (10.0/10.2) の相違で利用できない。
- Colab の CUDA Driver のバージョンは、Tensorflow のテスト済みのビルド構成 と同期を取っている模様。
- 複数サイクルの強化学習をするには、最低限 TensorRT が活用できないと、Colab や低スペックのローカルマシンでは厳しい。
- クラウドリソース (NVIDIA T4/V100/A100) の活用を検討する。
- Colab(T4)、Colab Pro (P100/V100) 、AWS スポットインスタンス(p3.2xlarge)で強化学習する。
-
floodgate(2008年→2009年→ ... →2019年)の訓練データと floodgate のテストデータ
- 将棋のルールと幅広い局面を終局まで学習する。
- floodgate の任意の年のデータを学習することで、Lesserkai とのローカル対局で初勝利した。
-
elmo(depth8→depth10→depth12)の訓練データと floodgate のテストデータ。
- ディープラーニングモデルの自己対局で生成できる局面数が少ないため、疑似強化学習する。
- dlshogi (TensorRT) で高速化することで、技巧2 とのローカル対局で初勝利した。
- AWS の p3.8xlarge (V100×4) のインスタンスで、WCSOC 2020 に出場し、やねうら王ライブラリ使用ソフトに初勝利した。
- 負ける時は、nps 性能が大幅に低下している時に悪手を指していることが多い。
-
自己対局(Swishなし)
+リーグ戦/elmo(depth14/16/18)の訓練データと floodgate のテストデータ- ディープラーニングモデルの自己対局で生成できる局面数が少ないため、elmo の訓練データを混ぜる。
- 強化学習することで、dlshogi (WCSOC 2020) とのローカル対局で初勝利した。
-
AobaZero の訓練データとfloodgate のテストデータ。
- 序盤と入玉宣言法の教師局面の学習を期待する。
- 序盤は強化したが、入玉宣言法での勝利実績はない。
- Miacis は宣言勝ちを学習している模様。
- dlshogiの学習則 との違いによるものか。
- 320 (dlshogi) / 512 (AobaZero) の最大手数の制限の違いによるものか。
- 序盤は強化したが、入玉宣言法での勝利実績はない。
- 教師あり学習することで、水匠2 (WCSOC 2020) とのローカル対局で初勝利した。
- 良質な教師データ(億単位)があれば、十分に棋力が向上する可能性がある。
- ただし、RTX2070 ノート→p3.2xlarge (V100×1)→p3.8xlarge (V100×4) と GPUマシンスペックを向上すると、CPU/メモリの向上により、ローカル対戦相手の棋力も向上する。
適切なマシンスペック(CPU/メモリ/GPU)で、自己の強化学習とリーグ戦 (水匠2) を検討したい。高級スリッパ (Ryzen Threadripper 3990X) に勝つための適切なマシンスペックとは。Ryzen Threadripper 3970X+TITAN V/RTX 2080 Ti の強化学習で勝てないのであれば、少なくともGPU には、V100/A100 が必要か。「鶏が先か、卵が先か」みたいなジレンマ。そのうち考えるのをやめた。
- 「レベルを上げて物理で殴ればいい」の格言のとおり、モデルの精度を向上して、NVIDIA A100 を利用すればいいことがわかった。
- 序盤と入玉宣言法の教師局面の学習を期待する。
-
AobaZero + dlshogi の訓練データと floodgate のテストデータ ※電竜戦本選時点
- 初期局面集を活用した中盤~終盤の教師局面の学習を期待する。
- 事前学習モデルと教師データの質が異なると、精度や棋力が一気に下がる。
- 1サイクルあたり、AobaZero (1100万局面) + dlshogi (600万局面) をマージして、学習する。
-
AobaZero + dlshogi の訓練データと floodgate のテストデータ ※電竜戦本選以降
- AobaZero 棋譜は、以下の加工を施したものに差し替えをする。
- 1サイクル(=1 epoch)ずつ、データ配分を調整する。
- 約100サイクル分を1セットとして学習する。
- 1セット目:AobaZero 1, .. , 100 (1100万局面) + dlshogi 1, .. , 100 (600万局面)
- 2セット目:AobaZero 2, .. , 100 (1100万局面) + dlshogi 1-2, 2-3, .. , 99-100 (1200万局面)
- 3セット目:AobaZero 3, .. , 100 (1100万局面) + dlshogi 1-3, 2-4, .. , 98-100 (1800万局面)
- 4セット目:AobaZero 4, .. , 100 (1100万局面) + dlshogi 1-4, 2-5, .. , 97-100 (2400万局面)
- 5セット目:AobaZero 5, .. , 100 (1100万局面) + dlshogi 1-5, 2-6, .. , 96-100 (3000万局面)
- 苦手な局面を対策するため、以下の教師データを追加する。
- 電竜戦/floodgate の自己モデルでの対局棋譜
- 将棋所の自己モデルでの対局棋譜
- 苦手な局面を対策するため、以下の教師データを追加する。
- 6セット目:AobaZero 6, .. , 100 (1100万局面) + dlshogi 1-6, 2-7, .. , 95-100 (3600万局面)
- 苦手な局面を対策するため、以下の教師データを追加する。
- 電竜戦/floodgate の自己モデルでの対局棋譜
- 将棋所の自己モデルでの対局棋譜。
- 水匠の相入玉局面
- わかりやすい苦手局面が無くなった段階で、強化学習する。順次、以下の教師データを追加する。
- 自己モデルでの強化学習データ
- 苦手な局面を対策するため、以下の教師データを追加する。
- 【秒速で無料GPUを使う】TensorFow(Keras)/PyTorch/Chainer環境構築 on Colaboratory [22]
- 【秒速で無料GPUを使う】深層学習実践Tips on Colaboratory [23]
- Colab にはGPUガチャ(K80/T4/P4/P100)がある
- いつのまにかGoogle ColabのGPUにP100-PCIE-16GBが追加されていた件
- GPU の TensorCore を有効活用する場合は、T4を採用する。
- Colab の利用制限がKaggleへの開放/コロナ禍でのクラウド需要とGCP障害以降、厳しくなってきている。
- 6-8時間/日、15時間程度のインターバルが再利用時に必要。
- Colab Pro に期待
(現在のところ、Colab Pro は米国とカナダでのみのご利用となります。)- Colab Pro登場と、Google ColabユーザーのためのTipsトップ10
- 現在のところ、Colab Pro は米国、カナダ、日本、ブラジル、ドイツ、フランス、インド、英国、タイでのみ利用できます。
- Colab Pro にはGPUガチャ(P100/V100)がある
- 24時間/日、再利用時のインターバルなし
- ランタイムを標準的なVM(約13GB)→ハイメモリVM (約27GB) に変更できる
- G Suite のアカウントでもColab を利用できる。
- 不具合等は、GitHub の Issues を確認する。
- Google Colabの使い勝手を向上させる10の秘訣
- Google Colabのパワーユーザー向けのヒント
- Google Colabをプロ仕様に設定する
- 公式の notebook がある。 [24]
- Cloud TPU チュートリアルがある。 [25]
- Tensorflow/Keras の TPU 対応モデルがGitHubで公開されているが、Tensorflow 1.x では experiment。 [26]
- Tensorflow 2.x からクラウド TPU での Keras の利用をサポートするロードマップになっている。 [27]
- TPU で学習したモデルの推論には不具合があるため、今回はローカルPCのGPUで推論をする。 [28]
- Google Colab から Google Drive をマウントして、学習データ/学習済みモデルのローカル/クラウド間のやり取りができる。 [29]
- Google Colab に SSH接続する場合は、ngrok 経由で Connecting to instance over sshができる。 [30]
- 日本語情報が少ない。Shikoan's ML Blog が参考になる。 [31]
- Google ColabでAlphaZero Shogiのモデルを教師あり学習する
- TensorFlow/Keras のTPUの取り扱い方が変わった。CUDA/cuDNNの最新バージョンの取り込みも遅いため、今後はPytorchを採用した方がいい?
- PyTorch TPU対応
- PyTorch→PyTorch Lightning TPU対応
- TPU v1/v2/v3の比較のまとめ
- Cloud TPU と他のアクセラレータとの違いとMLPerf ベンチマークの結果へのリンク
- Cloud TPU 機械学習のパフォーマンスとベンチマーク
- PyTorch 1.6 で Cloud TPU を公式サポートした。
- TPU v4
- Amazon Web Service (AWS)
- dlshogiをAWSのNVIDIA A100インスタンスで動かす
- 新機能: 機械学習と HPC 向けの GPU 搭載 EC2 P4 インスタンス
- AWS Deep Learning AMI とは
- Release Notes for DLAMI
- 日本語翻訳版の DLAMI のリリースノート は、バージョンが古い場合があるため、AWS のドキュメントは英語版を参照した方がいい。
- AWS Deep Learning AMI (Conda DLAMI) は、ディープラーニングフレームワークのバージョンが古いため、最新版を使用する場合は、Deep Learning Base AMI で環境構築をする。
- Using the Deep Learning AMI と Conda
- Deep Learning Base AMI を使用する
- Oracle Cloud Infrastructure (OCI)
- Oracle Cloud Infrastructure が NVIDIA AI ソフトウェア上での実行に最適化された NVIDIA A100 GPU インスタンスの提供を開始
- GPU–Virtual Machines and Bare Metal
- VM.GPU4.1/4.2/4.4 (Available November 2020)
- BM.GPU4.8 (Available September 30, 2020)
Oracle Cloud のアカウントを作成し、有料アカウントへのアップグレードやサービス制限の引き上げを申請してみたが、残念ながら既存の GPU インスタンスを起動するところまでもたどり着けなかった。
- GPU–Virtual Machines and Bare Metal
- Oracle Cloud Infrastructure が NVIDIA AI ソフトウェア上での実行に最適化された NVIDIA A100 GPU インスタンスの提供を開始
- Google Cloud Platform (GCP)
- 新しい Compute Engine A2 VM - クラウド初の NVIDIA Ampere A100 GPU
- A100×1, 2, 4, 8, 16 台のインスタンスを選択できる。
- 【Part1】NVIDIA DGX™ A100の実力は? ベンチマーク&検証結果
C++/Goによる並列化/高速化/強化学習強化学習+リーグ戦- ...etc
Google Colab がTPU対応した! TPU パワーで手軽に強くなるんじゃね?っと思ったら、そんなうまい話はなかった。Tensorflow/Keras のバージョンで TPU の挙動がよく変わる。GPU で動くコードが TPU で動かないことが多い。デバッグが辛い。とはいえ、Google Colab 上で、TPU が無料で遊べるのは魅力的。使えるところには積極的に使いたい。PFN [32] や 産総研 [33] の大規模GPUクラスタに、個人が対抗する手段として、TPU を活用したい。- ディープラーニング将棋においては、学習リソースよりも、強化学習での訓練データ生成/対局時の推論リソースの調達が課題。
- GCP で、Cloud TPU Pod (v2/v3) を利用することもできるが、NVIDIA GPU で学習 (AMP)/推論 (TensorRT) を活用し、高速化することができる。
- 現状のデータセット/モデルの規模では、NVIDIA A100 のGPU を採用する方が訓練データ生成/学習/推論/対局時の全てに活用できるため、費用対効果が高いと思われる。
- [1] https://book.mynavi.jp/ec/products/detail/id=88752
- [2] https://github.com/mk-takizawa/elmo_for_learn
- [3] https://github.com/Rochester-NRT/RocAlphaGo/
- [4] https://github.com/tensorflow/minigo/
- [5] https://github.com/suragnair/alpha-zero-general/
- [6] https://github.com/AppliedDataSciencePartners/DeepReinforcementLearning/
- [7] https://github.com/TadaoYamaoka/dlshogi-zero
- [8] https://hypertree.blog.so-net.ne.jp/2016-06-17
- [9] https://hypertree.blog.so-net.ne.jp/2016-06-24
- [10] https://www.amazon.co.jp/最強囲碁AI-アルファ碁-アルファ碁ゼロ対応-深層学習、モンテカルロ木探索、強化学習から見たその仕組み-TECHNOLOGY/dp/4798157775
- [11] https://codezine.jp/article/detail/10952
- [12] https://book.mynavi.jp/ec/products/detail/id=102957
- [13] https://techbookfest.org/event/tbf06/circle/46400002
- [14] http://tadaoyamaoka.hatenablog.com/entry/2017/04/06/003219
- [15] http://tadaoyamaoka.hatenablog.com/search?q=将棋AIの進捗
- [16] http://tadaoyamaoka.hatenablog.com/entry/2017/10/20/001735
- [17] http://tadaoyamaoka.hatenablog.com/entry/2017/12/06/210442
- [18] http://tadaoyamaoka.hatenablog.com/entry/2018/03/01/225127
- [19] http://tadaoyamaoka.hatenablog.com/entry/2018/12/08/191619
- [20] http://tadaoyamaoka.hatenablog.com/entry/2019/02/17/184914
- [21] http://tadaoyamaoka.hatenablog.com/entry/2019/03/13/001515
- [22] https://qiita.com/tomo_makes/items/f70fe48c428d3a61e131
- [23] https://qiita.com/tomo_makes/items/b3c60b10f7b25a0a5935
- [24] https://colab.research.google.com/notebooks/tpu.ipynb
- [25] https://cloud.google.com/tpu/docs/tutorials
- [26] https://github.com/tensorflow/tpu/tree/master/models/experimental
- [27] https://www.tensorflow.org/community/roadmap
- [28] https://www.tensorflow.org/api_docs/python/tf/contrib/tpu/TPUEstimator#prediction
- [29] https://colab.research.google.com/notebooks/io.ipynb#scrollTo=c2W5A2px3doP
- [30] https://medium.com/machine-learning-world/useful-snippets-for-google-colaboratory-free-gpu-included-d976d6b3e6de
- [31] https://blog.shikoan.com/tag/tpu/
- [32] https://www.preferred-networks.jp/ja/news/pr20171114
- [33] https://www.aist.go.jp/aist_j/press_release/pr2018/pr20180626/pr20180626.html