読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

コンピュータ碁

囲碁AIアプリの作り方4

追記(2019/02/19) 猛烈に勘違いしていました。 AlphaZeroは、バリューネットワークの出力には[-1,1]レンジを使っていますが、MCTSでは[0,1]レンジだそうです。 talkchess.com 今までのいくつかの謎が氷解しました。 これに合わせてコードのコメントとオリジ…

囲碁AIアプリの作り方4

今日は碁盤描画周りです。間口の一番広いウェブアプリを対象にします。 JavaScriptの碁盤描画のライブラリをまずご紹介します。 eidogo: HTML5以前では事実上のデファクトスタンダードだったオープンソースのウェブアプリです。DOMで描画します。耳赤サイト…

囲碁AIアプリの作り方3

今日はちょっと変わったところで、SGFファイルを扱う方法です。SGFというのは、様々なプラットフォーム上で販売されているSmartGoというアプリケーションのファイルフォーマットです。Smart Game Formatの略で、囲碁以外のボードゲームにも対応可能なフォー…

囲碁AIアプリの作り方2

今日はニューラルネットワーク周りのご紹介です。 前回同様、技術的な話ではないです。どういう材料が利用可能かご紹介します。AlphaGo Zeroは、MCTS、ニューラルネットワーク、強化学習という組み合わせで、0から人類を遥かに超えて学習するAIです。 「莫大…

囲碁AIアプリの作り方1

1日遅れですが、一人アドベントカレンダーを始めます。 (ご協力いただける方、お声がけください) 題して「囲碁AIアプリの作り方」です。 念のため、「囲碁AIの作り方」ではありません。囲碁AI自体を作りたい方はAlphaGo論文などを読んで頑張ってください。 …

AWS LambdaでGnuGo

[追記 2018-11-27] デフォルトの設定では中盤でのGnuGoのestimateがAmazon API Gatewayのタイムアウトである29秒以内に完了しなかったです。AWS Lambdaはメモリを増やすとCPUパワーも増える仕様なので、256MBに増やしたところ、estimateできました。メモリ最…

「囲碁の師匠」絶賛?発売中!

自作のiPadアプリ「囲碁の師匠」が11月16日に発売になりました。以下は紹介ベージです。 https://new3rs.github.io/a_master_of_go/index.ja.html ご興味お持ちいただけたら幸いです。

クラウドでLeela Zeroを動かしてローカルのLizzieで見る

以前、VPSサービスGPUEaterでLeela ZeroとLizzie動かす方法を紹介しました。nextliteracy.hatenablog.comVPSにVNCで繋いて、VPS側でLizzieを動かす方法でしたが、この方法だとVPS側にデスクトップ関連のインストールする必要があってその時間が比較的長く、…

SwiftでSGFをパースしたりその逆をしたりするライブラリを公開しました

github.com

Leela ZeroのウェイトをCore MLで計算させる

AZ.jsをSwiftに移植しました。その際に、Leela ZeroのウェイトをCore ML上に移す作業があったのですが、ハマり所があったので、備忘録です。Leela Zeroのウェイトは、leela-zeroレポジトリのtraining/tfフォルダ以下のスクリプトを使って、TensorFlowに読み…

囲碁AI A19.js

以前にA9.jsというブラウザ上で遊べる9路盤囲碁AIを公開しました。 今日は、これの19路盤版、A19.jsを公開しました。 FacebookのELF OpenGoのニューラルネットワークを使っています。iMac Late 2012(GTX-660M)でニューラルネットワークの評価は380ms前後でし…

AlphaGo Zeroの研究開発に使われたリソースを見積もってみる

表題の中身 2018/01/30 追記その3 私の「論文のTPUはTPU1を示す」説に対してDeepZenGo代表の加藤英樹さんから「Google の misleading にマンマと騙されている。TPUはTPU2である」というご指摘があったので、なぜこんなことになってしまったのかと思いながら…

SGFパーサ

Rustでコンピュータ碁に取り組むプロジェクト「きり」、ちょっと地味ですが初めての成果公開します。 SGFパーサを作ってcrate.ioに公開しました。 レポジトリは y-ich/rust-sgf: Smart Game Format parser in Rust rust-pegを使って書きました。

GoGui付属のツール

コンピュータ碁の開発者の多くが、GoGuiをUIや開発ツールとして利用しているようです。 GoGuiにはコンピュータ碁の開発開発用ツール(スクリプト)が付属されているので、どんなものがあるかメモってみました。 http://gogui.sourceforge.net/doc/tools.html g…

オープンソースのコンピュータ囲碁

昔オープンソースのコンピュータ囲碁にどんなものがあるのか調査したメモを公開します。 他にご存知の方、教えてください。 KataGo レポジトリ: https://github.com/lightvector/KataGo 言語: C++, Python ライセンス: 独自(著作権と許可の表記義務) コメン…

kombiloをMacで使う

kombiloは検索時の領域指定にマウスの右ボタンを押しながらドラッグという操作を要求します。 私はMacでMagic Trackpadを使っているのでこの操作はできません。 そんなユーザーのためのオプションも用意されていました。 kombiloを初めて起動して終了すると…

kombiloをOS Xにインストールする

kombiloは棋譜データベースプログラムです。以下からソースをダウンロードできます。 http://www.u-go.net/kombilo/ cd kombilo sudo easy_install configobj setuptools pyttk pip brew install boost brew tap homebrew/science brew install pmw export P…

珍瓏を解くウェブアプリ

珍瓏というのは元々は詰碁を示す昔の中国語でしたが、近年では盤全体を使った詰碁やシチョウ問題を示します。 ここではシチョウ問題という意味で使っています。 コンピュータがシチョウを追いかけて取れるかどうか判定し、その手順を示すアプリを作りました…

Pachiの使い方

1月31日に囲碁電王戦が発表されましたね。2012年から電聖戦という電気通信大学と日本棋院提携でコンピュータ碁の進歩を確認するためのプロ棋士との置き碁戦が始まっていたのですが、やはり、(将棋)電王戦で大きな盛り上がりの実績のあるニコ生が取り組むとな…