割り込み作業が終わって少し余裕が出てきました。囲碁開発にフルコミット!というわけには行きませんが、少しずつ進めていければと思います。
■前回までの成果
・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とか全く分からないです英語の勉強も(以下略)。
コメント
お年寄り向けに、操作しやすくて、気品があり、そして必ず勝てるアプリを開発してくださいますと、ありがたいです。
かつて将棋・囲碁ファンだった方が、喜んで対局できるようなものを。
二枚落ちで勝っても自信になりませんし、負けてるとガッカリしてしまいますので……。