3目並べを利用したAlphaGoの学習 tensorflow-1編
1.概要 この記事は2023年の記事です。3目並べをプログラムすることでAlphaGoの学習をすることが目標でした。Tensorflow-1.0を利用した最適解の計算手順は当時とても苦労をしたので備忘録として残すことにしました。 AlphaGoの勉強過程で3目並べを学んでいます。前回までプログラムロジックを作成していましたが、今回から3目並べの全ての組合せデータを利用してAIでプログラミングに勝てるかを試します。DeepLearningとしてtensorflowの1.xと2.xの両方を試してみます。 DeepLearningでは、3目並べのフィールドを3×3のイメージと考え、手書き文字認識の手法を応用します。本記事では、以下の3つのステップを順に実装していきます。 (1) minimax法の解析を利用して学習用入力データを作成 (2) 作成した学習用入力データを利用して、tensorflowでモデル作成 (3) tensorflowのモデルを利用して実際に対戦 追加部分には、Tesnsorflowをnvidia GPUを利用するために工夫した内容を追記しています。 ・CUDA-10.0を利用する方法 ・nVIDIA Container Toolkitを利用する方法 ・miniconda3を利用する方法 2.詳細 (a) 概要 3目並べのフィールドを3☓3のイメージと考えて、手書き文字認識の手法を利用します。最初に利用する環境はtensorflow-1.15です。入力データはminimax法で活用したすべての手順(9!=362880)の組み合わせの中から勝負が決まった時点の3目並べのフィールド情報と結果(勝ち、負け、引き分け)を利用します。 tensorflowで利用できる形式に変換し、学習をしてモデルを作成し、モデルを利用して3目並べの対戦をします。元情報がminimax法で解析した情報なので、tensorflowによる学習結果がminimax法まで到達できると最高の結果です。大まかな手順は以下の通りです。 (b) 詳細 (1) minimax法の解析を利用して学習用入力データを作成 dlmakedata.pyを作成します。この中で利用するtictactoe.pyはmontecarlo版を利用します。 titactoeのコードは本ブログのTictactoe like...