広告
Twitter
Calendar
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< May 2018 >>
New Entries
Recent Comment
Category
Archives
囲碁アプリの開発日記(23) しょぼいなりに出来てきた

WebAssemblyを使ってブラウザ上でAIが動くようにしました。何とも貧相なUIですが一応対局はできます。現状は盤面サイズが5路固定でプレイしても面白くないので、サイズを変えられるようにしてからアップしようと思います。グラフィックも外注してちゃんとしたものに差し替えたいです。ただ、最終的に必要なパーツがまだ分かっていないのでどのタイミングで発注したらよいか難しいんですよね。

 

 

そういえば、WebAssemblyを使っていて今更気が付いたのですが、将皇のWebAssemblyモジュールは最適化オプションが適用されていませんでしたびっくり最適化すれば1.5倍〜2倍くらい早くなりそうです。どこかのタイミングで直したいですね。

 

posted by: ken1-fund | 囲碁 | 16:23 | comments(0) | trackbacks(0) |-
囲碁アプリの開発日記(22) 何となくできてきた

ディープラーニング系の話から一旦離れて従来のAI開発を行っていました。今は自宅から2駅のところに新しいコアワーキングスペースを借りてそこで作業を行っています。静かで集中できる良い場所なのですが、未だに私以外に使っている人を見たことがありません(10席あるのに!)。このまま使い続けて良いのかちょっと罪悪感があります(笑)

 

AIは弱いなりに一通り打てるようになりました。弱いといっても私よりは強いのでまずはこれで十分だと思います。あとは「私がAIより強くなる」→「私より強いAIを作る」の作業を繰り返していく予定です。私が強くなる過程を学習コンテンツの素材にしていけば一石二鳥になります。あと一週間ぐらいでWebで遊べるようにしたいですね。

 

あとは、個人的なモチベーションアップの施策として、囲碁関係のユーザ数や収益を公開していこうと思います。現在は0円です!Web版で1日100円くらい稼げたらいいですね有料1ゼロゼロ

 

posted by: ken1-fund | 囲碁 | 19:38 | comments(0) | trackbacks(0) |-
囲碁アプリの開発日記(21) 亀の歩みで

3か月ぶりの開発日記更新です。ちょっと気を抜くとあっという間に日が過ぎてしまって焦ります。日記を書いていなかっただけでインプット作業は少し行っていたので今回はそれを紹介していきますね。

 

■DeepLearning関係の勉強

DeepLearinngを使うと人間らしい手を打つという囲碁関係者の話を聞いていたので、どうせ作るならスキルアップも兼ねて勉強することにしました。本当に一からの勉強なのでどこから手を付ければよいか分からず悪戦苦闘しています。何冊か買った入門本の中ではこれが一番参考になりました。

 

Google Cloud Platformではじめる機械学習と深層学習

 

DeepLearningのサンプルプログラムを動かすには様々なソフトウェアのインストール必要です。それだけで挫折してしまいます。この本ではGoogle Cloud Platformを使う事で面倒な作業を減らしています。また、理論的な部分も初歩から丁寧に書いてあり何となく分かった気分になりました楽しい

 

次は囲碁プログラムでどのようにDeepLearningを使っているかの勉強です。そのものずばりな本があります。

 

最強囲碁AI アルファ碁 解体新書

 

1年前にこの本を買ったときは、内容が頭に入らずお蔵入りにしていました。DeepLearningの概要を理解してから読む事でようやく内容を理解できました。何となく理解したぐらいのレベルですが・・。余談ですが、この本の著者である大槻和史さんはコンピュータ将棋選手権で準優勝された方です。凄いと思うと同時に知的レベルの差を感じて若干凹みますねくもり

 

…といった感じです。実際にDeepLeariningを使った囲碁AIを作るにはまだ勉強が足りないと思います。ですが、いい加減に飽きてきましたので、途中でストップした囲碁アプリのUIの開発とAI(DeepLearning使わない版)の移植作業を再開する予定です。新しいオフィスを借りたのでそこで黙々と開発しようかなと楽しいブラウザで遊べる最低限の囲碁アプリ公開を目標に頑張ってみます。

 

posted by: ken1-fund | 囲碁 | 17:33 | comments(0) | trackbacks(0) |-
囲碁アプリの開発日記(20) 調べたことまとめ

割り込み作業が終わって少し余裕が出てきました。囲碁開発にフルコミット!というわけには行きませんが、少しずつ進めていければと思います。

 

■前回までの成果

・Pixi.jsを使ってWebアプリで基本的なGUIが作れるようになった

・囲碁の盤面や説明GUIを作成した

・囲碁入門のコンテンツを一部作成した

・C#で作った囲碁AIをC++に途中まで移植した

 

■今後やる事

・囲碁AIの移植を終わらせる

・WebAssemblyを使ってWeb上でコンピュータと対局できるようにする

・開発者の囲碁棋力アップ

・囲碁入門のコンテンツを拡充する

ディープラーニングを勉強して囲碁AIに組み込む

・その他、便利な機能を組み込む

 

ディープラーニングは今まで勉強したことがなく一番時間がかかりそうです。一応補足しておくと、ディープラーニングを使わなくても囲碁アプリを作る事自体はできます。ですが使った方が人間らしい手を打てるという話を聞いており、ぜひチャンレンジしてみたいです。単純に性能が良くて強いAIができるというのもあります。強いAIがあるとヒント機能など便利な機能として生かす事ができます。

 

今は参考書を読んで基本を勉強しています。新しいPCを買ったらtensorflowをインストールしてサンプルプログラムを動かしてみます。囲碁プログラムについては、過去の記事でも紹介したとおり「AQ」開発者である山口さんが公開された「Pyaq」を読んで勉強します。

 

懸案としては、ディープラーニングで学習したモデルをどうやってWeb(将来的にはAndroid、iOS)で動かせばよいか?というのがあります。tensorflowはC++のAPIをサポートしていますが、そのAPIを使うためのセットアップが大変そうです。ライブラリが機能豊富すぎて容量が大きくなるのも心配です。今のところ、tiny-dnn(https://github.com/tiny-dnn/tiny-dnnというC++のヘッダだけで使えるフレームワークを使うことで解決できるのではないかと考えています。日本の個人の方が開発されているフレームワークだそうです!!ただし、tensorflowのモデルをインポートする機能がないので(caffeからのインポートはあるのですが)、そこを自分で何とかする必要があります。C++の文法も再勉強しないとダメですね。C++14とか全く分からないです悲しい英語の勉強も(以下略)。

 

 

 

posted by: ken1-fund | 囲碁 | 17:41 | comments(1) | trackbacks(0) |-
囲碁アプリの開発日記(19) 囲碁作ってる場合じゃないのに

追い込まれることで今までにない集中力を発揮して作業が進みました!本当は囲碁作ってる場合じゃないんですけどね(笑)

 

今回は5路盤で遊べるCPUまで作りました。5路盤ならモンテカルロ木探索を使わなくても、原始モンカルロ法で十分なようです。あとは、このコードを精査してWebAssemblyで動かしてJavaScript側とのインターフェースを繋げばWebアプリとして遊べるものになります。2〜3日あれば・・・って、囲碁作ってる場合ではないのです。マジで。

 

posted by: ken1-fund | 囲碁 | 17:49 | comments(0) | trackbacks(0) |-