Google Colaboratory上でAlphaZeroを使って三目並べを学習させてみました。
AlphaZeroについては、以前書いた記事で少し紹介しています。
今回はGoogle Colaboratory上で三目並べをAlphaZeroを使って学習させます。
Google Colaboratoryについては以前書いた記事で紹介しましたが、画像などが消えてしまったので、改めて導入方法についても書いてみます。
関連リンク
Pythonで書かれたAlphaZeroを動かして三目並べを学習させてみる - どん底から這い上がるまでの記録
Google Colaboratory
Google Colaboratoryの導入方法について書いていきます。
導入
Google ColaboratoryはGoogle Drive上で使うことができます。
Google Driveを開いて左上にある新規
をクリックします。
そのあとは、その他
ー>アプリを追加
で以下の画面が開きます。

アプリを検索
のところにColabratory
と入力して検索すると、以下の画面が出るので接続(connect)
をクリックします。
これで、自分のGoogle Drive上でGoogle Colaboratoryが使えるようになります。
Google Colaboratoryを開くには、Google Drive左上にある新規
ー>その他
でGoogle Colaboratoryが選択できるようになっているはずです。
AlphaZero
Google Colaboratoryを使う用意ができたので、三目並べをkerasで実装されたAlphaZeroを使って学習させてみます。AlphaZeroの導入方法については以下の記事で紹介しています。
導入
AlphaZeroの導入については以下の手順です。
1と2ができたらディレクトリごとGoogle Driveにアップロードするだけです。
Google Colaboratory上で学習させる。
ディレクトリのアップロード
用意したAlphaZeroのディレクトリをGoogle Driveにアップロードします。
私はGoogle Colaboratoryを使うときは、マイドライブ
にあるcolab
フォルダにプロジェクト別にフォルダを用意しています。
今回は以下の画像のようにcolab
の下に、AlphaZero
というフォルダを作って、必要なプログラムをそこにアップロードします。
面倒なんで全部アップロードしました。
データのアップロードが完了してもこのままではGoogle Colaboratoryからプログラムをインポートしたり、ファイルの操作はできません。
これを可能にするには、Google Colaboratoryで必要な設定を行う必要があります。
それについては、この後に書いています。
Google ColaboratoryでNotebookを開く。
Google ColaboratoryはJupyter Notebook上で作業します。さっきアップロードしたrun.ipynb
をGoogle Colaboratory上で開いて作業することはできますが、今回はNotebookを新しく作ってAlphaZeroを動かしてみます。
私の場合、マイドライブ
にあるcolab
フォルダの中のAlpaaZero
というフォルダで作業します。そのため、作業フォルダにいる状態でGoogle Colaboratoryを新規作成します。
新規作成すると、このような画面が開きます。名前をNotebook.ipynbに変えときます。
Colaboratoryの設定
AlphaZeroのプログラムを動かす前に、いくつか設定をする必要があります。
ランタイムの変更
まず、ランタイムを変更します。Google Colaboratoryで新規に作ったNotebookはデフォルトでpython 2が使われています。今回はpython 3を使いたいのでNotebookの上にあるランタイムー>ランタイムのタイプの変更からランタイムのタイプをPython 2からPython3、ハードウェアアクセラレータをNoneからGPUに変更します。
ランタイムのタイプの変更を開くと以下の画面が出る。
ファイルの設定
次に、アップロードしたファイルを利用できるようにします。
以下のコマンドをセルにコピペして実行します。
セルの▷か、shift-enter
で実行できます。
実行してから、しばらくたつと下の方にURLと入力フォームが出てきます。出てきたURLにアクセスすると、Google Cloud SDKがGoogle アカウントへのアクセスをリクエストしています。と表示されるので許可します。すると、このコードをコピーし、アプリケーションに切り替えて貼り付けてください。と書かれたページに移動します。
そのコードをさっきNotebookに表示された入力フォームにコピペします。この作業を2回します。
次に、以下のコマンドをセルにコピペして実行します。
!mkdir -p drive !google-drive-ocamlfuse drive
これで、アップロードしたファイルにアクセスできるようなりました。
ここで、やっていることはdrive
というフォルダを作って、それを自分のGoogle Driveのマイドライブと紐付けています。
ディレクトリの移動
今回私はNotebookをGoogle Driveのマイドライブ
にあるcolab
フォルダの中のAlphaZero
というフォルダで作成し作業しています。しかし、下の画像を見て分かるようにカレントディレクトリはAlphaZero
ではありません。そのため、作業フォルダに移動する必要があります。(※ディレクトリの移動するときは!は先頭につけないみたいです。)
ライブラリのインストール
AlphaZeroを動かすために、pydot
とgraphviz
が必要になるので以下のコマンドをセルにコピペ&実行してインストールします。
!pip install -q pydot
!apt-get -qq install -y graphviz
AlphaZeroを動かす
Colaboratoryの設定が完了したので、AlphaZeroを使って学習させてみます。
アップロードしたファイルの中にrun.ipynb
というNotebookがあります。このNotebookの上2つのセルを自分が作業しているNotebookにコピペして実行すると、学習を開始します。
学習が進んでいくと、学習モデルができます。できたモデルは作業フォルダにあるrun/models
にあります。 学習したモデルはtkinterで実装した三目並べで対戦することができます。