ゲームAI備忘録

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

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

機械学習

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…

キャリブレーション(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://…

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…

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…

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の分類 自分で大規模ニューラルネッ…

囲碁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…

sklearnのロジスティック回帰で求めた重みとバイアスを取得する方法.

scikit-learnはpythonで扱う機械学習のライブラリです. 非常に多くの機械学習に関する関数が提供されており,マニュアルも充実しているので重宝しています. ただ,ロジスティック回帰で学習した後の最適な重みとバイアスだけ取得して,別の言語で予測は行…

相関が高くない場合の分析方法

機械学習で高い精度で予測できるときは良いけど,相関が頑張ってもそこまで上がらない場合ってどうするんだろうという場合の答えが書いてた. 計量時系列分析の立場からビジネスの現場のデータを見てみよう - 30th Tokyo Webmining 計量時系列分析の立場から…