ゲームAI備忘録

ゲームAIに使えそうな知識を備忘録として書き留める

人助けと思って何卒インストールをば! 詰碁/ アルコネ/ 五目並べ

coincheckで仮想通貨を始めてみて気づいたこと

最近何かと話題の仮想通貨を購入して気づいたことをまとめてみました. 何か参考になりそうでしたら幸いです. coincapだと有名どころがひと目で分かる! coincapと呼ばれるサイトで,有名な仮想通貨の現在の価格や取引量がわかります. CoinCap.io 各種仮想…

slackbot経由でkerasを利用しようとした際にバグってしまう問題の回避策

#!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np from slackbot.bot import Bot, listen_to from keras.layers import Dense, Activation from keras.models import Sequential # 適当なモデル model = Sequential() model.add(Dense(out…

mecabでinput-buffer overflow問題の回避策

改行を末尾につけると解決する模様. #!/usr/bin/env python # -*- coding: utf-8 -*- import os message = "Hello World" # 下記警告が出て,同じ分かち書き文章が2回表示される. # input-buffer overflow. The line is split. use -b #SIZE option. print…

gensimのDictionaryクラスでの注意事項

gensimのDictionaryインスタンスを作った段階ではid2token値が生成されていないので注意する. gensim.__version__ == "0.13.2" で確認 items() を呼び出して再度値を代入すれば良いっぽい. >>> texts = [["a", "b", "c"], ["b", "c", "c", "d"]] >>> impor…

gymでパックマンを動かしてみる.

gymとは ピンポンやパックマンや囲碁など強化学習に適したゲームを含んだ強化学習アルゴリズム構築用の統合環境. 自作の強化学習を試しやすいよう設計されており,OpenAI Gymと組み合わせることで他者のAIと比較することも可能. インストール方法 pip inst…

キャリブレーション(Probability Calibration)

キャリブレーション(Probability Calibration)とは モデルによって算出された予測確率を本来の確率に近づける手法.例えば20%の確率で正となるようなデータを学習させてみたとする. 理想の予測確率は0.2ですが,実際は0.3となるなどずれてしまうことがある…

DarkForestをUbuntu14.04にインストール.

先日Facebookがオープンソースとして公開した囲碁AI - DarkForest(darkforestGo)をUbutu 14.04にインストールしてみました. https://github.com/facebookresearch/darkforestGo のREADME.mdで説明されています. darkforestGoのクローン git clone https://…

GTX1080とTITAN Xの速度比較

GTX1080とTITAN Xでの速度を比較してみました. TensorFlowのバージョンはどちらも0.8を利用しています. ベンチマークとして利用したのは,MSRA開発のアルゴリズムResNetの32層版です. TensorFlow版として以前に実装したResNet32層で速度を比較してみます…

Batch Normalization(バッチ正規化)

概要 ニューラルネットワーク内のニューロンの出力値を正規化することで,重みやニューロンの出力の発散を防ぐ. 多層ニューラルネットワークでは必須. 何で必要なのか? ニューラルネットワークは積和の積み重ねによって出力する仕組みになっている. その…

Weight Decay(重み減衰)

効果 損失関数に正則化項を加え過学習を防ぐ qは正の定数(q=1のときL1正則化(Lasso正則化), q=2のときL2正則化(Ridge正則化)と呼ぶ) 単に重み減衰と書かれている場合はL2正則化を意味する. 正則化項にL1, L2両方を足す場合もある. ロジスティック回帰,ニ…

Momentum(移動平均)

確率的最急降下法について考えたとき,目的関数の曲率が大きくなると,ステップ幅(学習率)が大きくなりすぎて収束しづらくなる. そのため,ステップ幅を抑えるために直近のMomentumを足し上げたのがMomentumSGD[1]. E(w): 損失関数(連続的微分可能.ReLUも考…

XgboostのFeature Imporanceをラベル付きで表示する方法

特定の変数や上位N件だけ表示など,plot_importance関数を使わずにFeature Importanceを表示する方法. # plot_feature_importance_with_label.py import operator from sklearn.datasets import load_iris import pandas as pd import matplotlib.pyplot as…

TensorFlow 0.8でのセグフォの回避方法

TensorFlowのバージョンを0.8にしてから,import TensorFlowでセグフォが出るようになった. $ python -c "import tensorflow" I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally I tensorflow/strea…

Kaggleの過去問Predicting a Biological Responseに挑戦

概要 Kaggleの過去問Predicting a Biological Responseを解いた結果です. https://www.kaggle.com/c/bioresponse 38位, Log Loss: 0.38106 でした. Stacked Generalizationと呼ばれる方法を利用しています.コードはこちらになります. github.comStacked …

これなら分かる!Deep Learningの学び始め方

まえおき 仕事半分趣味半分として独学でDeep Learningを学び始めて早3ヶ月が経ちました. CNNの亜種とかを論文片手に構築したりするレベルです. (だいたいはCNN先生で良いんじゃない?と思ったりしますが,しょうがない...)ただ,未だにDeep Learning…

AlphaGo vs. イ・セドルの第四局の感想

第四局の72手目からAlphaGoが崩れ始めたのは以下の理由だと思う.AlphaGoもモンテカルロ碁ベースでできているので,下記A),B)のいずれかの手が採択されるようになっていると考えられます. A). 勝率から考えて有望そうな手 B). 詰碁や手筋のような正解となる…

TensorFlow - 画像を加工してみる.

TensorFlowには画像を加工するための様々な関数が用意されています. CIFAR-10のチュートリアルでも色々と適用しているので画像加工部分のみ切り出してみました. tensorflow/models/image/cifar10/cifar10_input.py - tensorflow - Git at Google 加えた処…

TensorFlow - GPUのちからをかりてみた

TensorFlowでMNISTにCNNを利用してみた際の雑な性能比 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/mnist/convolutional.py スペック 処理速度 終了時間 1 GTX 980 Ti 約13ms/epoch 2分ぐらい 1 GPU (g2.2xlarge) 約25ms…

GPUを使ってTensorFlowで遊んでみる.

EC2でGPUを使えるようにするために,以下の設定を行いました.1. AMIの選択: "Ubuntu Server 14.04 LTS (HVM), SSD Volume Type - ami-9abea4fb"を選択 2. インスタンスタイプの選択: "g2.2xlarge"を選択 3. ストレージの追加: 64GBに増やす. 4. あとは下記…

sklearn風にTensorFlowを使えるライブラリskflowを使ってみる.

TensorFlowをsklearn風に使えるライブラリskflowを発見.GitHub - tensorflow/skflow: Simplified interface for TensorFlow (mimicking Scikit Learn) for Deep Learning インストール方法 pip install git+git://github.com/tensorflow/skflow.git サンプ…

TensorFlow - CIFA10のチュートリアルを試してみる

原文 https://www.tensorflow.org/versions/master/tutorials/deep_cnn/index.html#convolutional-neural-networks 翻訳 http://qiita.com/KojiOhki/items/e218f36840df10ae358d 概要 Cuda-Convnet(CNN)を構築してCIFAR-10の分類 自分で大規模ニューラルネッ…

TensorFlow - MNISTのチュートリアル(専門家向け)を試してみる.

TensorFlow - MNISTのチュートリアル(初心者向け)を試してみる. - ゲームAI備忘録の続きです.MNISTのチュートリアル(専門家向け)を試してみました. https://www.tensorflow.org/versions/master/tutorials/mnist/pros/index.htmlCNNをTensorFlowで構築し…

TensorFlow - MNISTのチュートリアル(初心者向け)を試してみる.

TensorFlowのMNISTチュートリアル(初心者向け)を試してみました. MNIST For ML Beginners MNISTとは 28x28の画像に0〜9のいづれかの数字が書かれている7万枚の画像データセット. 6万枚が訓練データで1万枚が検証データ MNIST handwritten digit database, Y…

MacでGTPを利用した囲碁プログラムの対戦

Macではgogui-twogtpを利用することで囲碁プログラム同士を対戦させることができます. # GNU vs. GNU 試合数:1, 9路盤, SGF形式でgnugo.vs.gnugo.sgfに保存 gogui-twogtp -black "gnugo --mode gtp" -white "gnugo --mode gtp" -games 1 -size 9 -alternate…

囲碁AI記事一覧

囲碁AI記事一覧 囲碁AI - 囲碁AIを作ってみる.#001 - ゲームAI備忘録 囲碁AI - どういうモデルを作ればよいか調べてみる.#002 - ゲームAI備忘録 囲碁AI - 訓練データを作るための前段階を作ってみる #003 - ゲームAI備忘録

囲碁AI - 訓練データを作るための前段階を作ってみる #003

囲碁AI - どういうモデルを作ればよいか調べてみる.#002 - ゲームAI備忘録 の続きです.大量の高段者のデータは手に入ったので,このデータを先ほどの訓練データとして変換する必要がある.とりあえず囲碁AI:gnugoを参考にしてみる.MacへのGoGuiとFuego, G…

囲碁AI - どういうモデルを作ればよいか調べてみる.#002

囲碁AI - 囲碁AIを作ってみる.#001 - ゲームAI備忘録 の続きです.論文[2]をざっと読む限り,KGS Go Serverの棋譜データを訓練データとしてモデルを構築しているらしい.半年ぐらい前に書いた「高段者の囲碁の棋譜データを取得する方法」を利用して棋譜を取…

囲碁AI - 囲碁AIを作ってみる.#001

数年前はモンテカルロ碁が主流だったが,どうやら最近はDeep LearningのひとつCNNを使った囲碁AIが流行りらしい. C.Clark, Teaching Deep Convolutional Neural Networks to Play Go, 2015. URL: http://arxiv.org/pdf/1412.3409.pdf. C.J.Maddison, MOVE E…

「アプリのユーザー獲得チャネルを分析」の測定結果

Google Playのアプリ画面に到達したユーザーがどの程度インストールに至ったかを調べる機能が追加されています. https://support.google.com/googleplay/android-developer/answer/6263332?hl=ja"Google Play Developer Console > ユーザー獲得" から確認で…

Google Play アプリのA/Bテスト part 2

以前の記事で紹介しましたGoogle Play アプリのA/Bテストの続きとなります.Google Playストア掲載情報のA/Bテスト - ゲームAI備忘録tsuwabuki.hatenablog.com下記アプリのアイコン画像を二種類用意してどちらが良いかA/Bテストしてみました. 脳トレ - ポリ…