COSUMIで多数の小さな改良を行いました(2022年4月)

COSUMIで以前から気になっていた部分を、まとめて大量に追加・修正行いました。

囲碁ブラウザゲーム COSUMI
https://www.cosumi.net/

全て些細なことばかりで大した話は特にないのですが、一応その中で主だったのをここに書いておきます。

まず、対局リプレイページに、そのページのURLが入っている二次元コードを表示するようにしました。何かの時に使えると思います。それと、スライダーを動かしたりして進めたその局面を初期表示とするURLに変更するボタンも用意しました。先ほどの二次元コードやツイートボタンもこの新しいURLでのものになりますので、これも便利な時があると思います。

次に、ただの碁盤で、一番最後の局面で右矢印を連打してもらうと対局リプレイページに行けるようにしました。これ、以前できないかと聞かれたことがあって、その時にどういう仕様で作ればいいかなと考えている内に、もう作った気になっていました…(笑) 本当にすいません。馬鹿みたいにシンプルな作りですが、そこはご容赦ください

それから、オンライン棋譜ビューアのSGFのパーサを改良しました。もうあまりエラーを出さないと思います。

最後に、white shade囲碁ベンチマークのTensorFlow.jsのバージョンを、最新のに上げさせてもらいました。囲碁ベンチマークのベンチマーク結果については、当然、以前のバージョンとは比較不可ですので、こちらもVer. 3.0という新しいバージョンということにしておきました。

話は変わりますが、AWS EC2のC7gインスタンスはまだ使えないんでしょうか? Savings Plansがひとつ切れたので、どうすればいいのか迷ってます。

ナニゴケをアップデートしました (Ver. 1.10.0)

ナニゴケのNNを新しくしました。

ナニゴケ – 苔の種類を判別するWEBアプリ
https://www.nanigoke.net/

今回は、判別可能な種に、「キンシゴケ」、「ススキゴケ」、「ヒメタチゴケ」、「ヒメハイゴケ」、「ミヤマハイゴケ」が追加されました。32000枚だったTrainのデータ数は、36000枚になっています。TensorFlow.jsも最新のバージョンにしておきました。

今回は、それ以外にもいくつかの大きな変更を行いましたので、以下だらだらと書いていきます。

その1。今までは、全面1回、辺の長さ90%で中央1回、辺の長さ80%で一番左上、右上、左下、右下の4回の計6回のpredictの出力を平均して、それをユーザに見せていました。それを今回は、全面を何もしない、左右フリップ、90度回転、270度回転の4回、辺の長さ75%で一番左上、右上、左下、右下の4回、辺の長さ50%で一番左上、右上、左下、右下の4回の計12回としました。また、今までは出力を平均するときに、predictに使用した範囲の「面積(辺の長さ^2)の比」で加重平均していたのですが、これを「辺の長さ^1.5の比」で加重平均するようにしました。狭い範囲でpredictした結果を、今までよりは重視するということです。さらにここまでのことに関連して、predictの回数が増えて重くなったことを緩和するために、NNへの入力の解像度を268×268から236×236へと少し落としました。細部を見ないと判別するのが困難な蘚苔類で、入力の解像度を大きく下げるのは、基本的に私はとても危ないと思っているのですが、今回は、辺の長さ50%というかなり狭い範囲でのpredictを追加しましたので、実質的には今までと同じか、もしくは少ししっかりと細部を見るようになっていると思います。細かい話ですが、今回のこういった変更が可能なように、学習データを作る部分(もう一番分かりやすいところでは、写真の撮り方)でもいろいろ対応をしています。

その2。NNの入力直後の畳み込みを何回か重ねてからAverage Poolingで1/2にダウンサイズしていた箇所に並行して、先にAverage Poolingで1/2にダウンサイズしてから畳み込みを何回か重ねるパスも用意して、後ろで合流させるようにしました。高周波成分を少しとばしてから見てみることも必要かということで、ほんのりOctConv風味、1×1のConv/3×3のConv/2×2のSENet/1×1のSENetの一番真ん中を補完するイメージでもあります。上にも少し書きましたが、蘚苔類の画像分類はもうこれ以上は無いのではと思えるぐらいに、「テクスチャだけ見とけばいいんだよ」なタスクだと私は感じていますが、それはロスなどの数字を改善することだけを目的とした場合に顕著なだけで、実際にユーザが使ってくれる時のことを考えると話はそこまで単純ではありません。ナニゴケみたいなサービスは、「正解したら100点、不正解なら0点」ってことはなく、判別を間違えた時も、その後、ユーザが図鑑を見たりとか他の人に聞いたりとかアクションがあって、そのアクションに良い影響のあるアウトプットをしないといけないと思います。ところが、ナニゴケの間違え方を見ていると、「本当に本当にテクスチャだけしか見てないのね…」って言いたくなるようなことが多くて、これは一般的な人間の感覚とはかなり異なるので、ユーザからナニゴケが間違った理由を推測しづらい。そして、結果的にそれは使いにくいってことになると思います。と言った考えがあるので、数字が悪くならない限り使いたいと思っていたネットワークの構成の変更だったのですが、パラメータが増えたからかなんなのか、数字も少し良くなりましたので迷わず採用しました。また、これに関連して、Data Augmentationで少しぼかしを掛けるようにしました。これはもっと早くやっとけば良かった… なぜだか少し重すぎるような気がしていたのですが、当然ながら別にいうほどではなかったです。

その3。NNの学習時に、今現在119ある「ナニゴケで判別することができる特定の種」を、3%の確率で「このWEBアプリでは未分類の苔」として学習することにしました。ユーザが実際にナニゴケを使ってくれた時に、かなりの確率でそれはナニゴケでは判別できない種であることがあるはずなのですが、今までのNNでは、なかなか「このWEBアプリでは未分類の苔」とは答えてくれなかったので、こういう対応になりました。今までもこの問題はかなり気にしていて、もっと小手先の対策をいくつかしていたのですが、それぞれ、改善する程度が小さすぎる、もしくは別の弊害があるなどと思ったので、もう少し真面目にと(「真面目に」って言って嘘を教えるのですが…(笑))、こういう対策になりました。自分自身でも実際にナニゴケを使ってみて、今後はまた、3%という数字を変更していく可能性があります。

その4。学習時の最適化方法として、SGDなSAM(Sharpness-Aware Minimization)を使用しました。そして、劇的に数字が良くなりました(スゴイ!)。ここ最近は、手元のデータに対するロスがもうそれほど大きくはなかったので、あんまり真剣にこの辺りを探ったりはしていなかったのですが、こいつは大きかった… 今後、ナニゴケを続ける中で、学習方法に関するこれ以上おいしい知見が降ってくることはもう無いでしょう。これにて終了って感じです。ASAM(Adaptive Sharpness-Aware Minimization)も試してみましたが、SAMをはっきり超えるハイパーパラメータが見つかりませんでした。でも、もういいです(笑)。

同じようなことを繰り返し繰り返し書くことがこのブログでは本当に多いのですが、学習データを充実させる以外にできることは、もう本当にほとんど無くなったような気がします。仕方ありませんので、バカは無駄に頭を使わずに、二本付いている足で外を歩いてきたいと思います。

COSUMIが非常に重くなっていたのでサーバを再起動しました

昨日7日14:45ぐらいからでしょうか、COSUMIが非常に重くなっていたので、先ほどの8:45ぐらいにサーバを一度再起動しました。

囲碁ブラウザゲーム COSUMI
https://www.cosumi.net/

とりあえず、今現在は特に問題ないようですが、しばらくの間、不安定な状態が続く可能性があります。原因は現時点ではよくわかっていません。

サーバ再起動した時に、数百局の対局がぶちっといってしまったと思います。どうかお許しください。

[追記 2022/1/8 10:25]
たぶん分かりました。ハードウェアの障害だと思います。今後、どこかのタイミングで比較的長い期間サービスが停止する可能性があります。先ほどの再起動で改善したようにも見えるのですが、おそらく根本的な解決にはなっていません。うう、めんどくさい…(泣)

[追記 2022/1/8 18:10]
メモリ周りのハードの問題で間違いなさそうです。明日9日の早朝にストレージ以外すべて交換してもらえることになりました。メンテの時はいつもそうですし、確定的なことはとても言えませんので、向こうに予告等を載せておいたりはしませんが、一応、4:00ぐらいに新規の対局開始を止めて、5:00ぐらいにサーバを完全に止めて、7:00までにできれば復帰させる予定だと、ここに書いておきます。

[追記 2022/1/9 6:45]
交換作業が終わりました。今のところ、特に問題ないようです。それではベッドに戻ります。オヤスミナサイ…

ナニゴケをアップデートしました (Ver. 1.9.0)

ナニゴケのNNを新しくしました。

ナニゴケ – 苔の種類を判別するWEBアプリ
https://www.nanigoke.net/

今回は、判別可能な種に、「オオカサゴケ」、「オオサナダゴケモドキ」、「カラヤスデゴケ」が追加されました。29200枚だったTrainのデータ数は、32000枚になっています。ネットワークの構造は特に大きな変更はありません。その他についても学習データの作り方を微調整した程度です。例によってTensorFlow.jsは最新のバージョンにしておきました。

ナニゴケを始めた時に最終的な目標は、「判別できる種の数200・Trainに使用したデータ100,000枚」と書きました。この目標設定はなかなか適切だったのではと思っているのですが、それからするとデータ数的に今回のアップデートで三合目を超えたことになります。ここまでナニゴケのためにもろもろトータルで3000時間(!)ぐらい費やしたんじゃないかと思うのですが、ここから7000時間も掛かるとは思いませんので、1日2時間ペースでやれば10年以内には終わるかな…(泣)

来年は、苔を探しに日本全国いろいろなところに行く予定にしています。お金も少し掛かってしまいますが、どうせいつか行くならできるだけ早く行ってしまった方がいい。ナニゴケをリリースしてからだけでも、もう2年半も経ったのですが、未だにスタートラインにつけていないような奇妙な感覚がなぜだかずっと無くならず、せめてそれだけは自分の中から早く消してしまいたいなあと思っています。

ナニゴケをアップデートしました (Ver. 1.8.0)

ナニゴケのNNを新しくしました。

ナニゴケ – 苔の種類を判別するWEBアプリ
https://www.nanigoke.net/

今回は、判別可能な種に、「スズゴケ」、「ホソオカムラゴケ」、「ミズシダゴケ」、「ヤマトフタマタゴケ」が追加されました。26900枚だったTrainのデータ数は、29200枚になっています。ネットワークの構造などは特に大きな変更はありませんが、今回はデータ拡張をめいいっぱい丁寧にやるようにしてみました(とは言え、元々かなり作りこんでいたので、これでどうということもあまり無いと思いますが…)。そして、例によってTensorFlow.jsも最新のバージョンにしています。

コロナが落ち着いたら、日本各地に苔旅行に行きたいな…

7路盤スペシャルバージョンのコミを8目に変更しました

7路盤スペシャルバージョンのコミを、9目から8目に変更しました。

7路盤スペシャルバージョン
https://www.cosumi.net/seven.html

コミを変更した理由については、ぜひこちらをご覧ください。

http://www.perfectsky.net/blog/?p=494

また考えが変わったら、その時再度変更する可能性はありますが、とりあえずはこれで負けないように定石を追加し続けたいと思います。

あと、現時点での最新の定石もこちらで公開しています。

http://www.perfectsky.net/blog/?p=106

[追記 2021/07/11]
難しい変化に飛び込まなくてもよくなったからでしょうか、主だった手順ではもうあんまり負けてないですね。現時点では、日本ルールの7路盤は盤面8目だと、私はかなり強く思っています。12年以上前に始めた7路盤スペシャルバージョン、少し時間が掛かってしまいましたが、これでだいたい一仕事終わりかなとも感じています。

white shadeをアップデートしました(2021年5月)

white shadeをアップデートしました。

white shade – 囲碁ブラウザゲーム COSUMI
https://www.cosumi.net/whiteshade.html

white shadeのVNの構造に、かなり小さな、けれどもたぶんだいぶ良いと思われる変更を加えました。実際、ロスは少し下がったのですが、以前のバージョンと対局させて強さを計測しても全く変わっていなくてちょっと意外… そういうわけなので、使うかどうか迷ったのですが、手がきれいにはなっているだろうと信じて、アップデートすることにしました。さらに、TensorFlow.jsも最新のバージョンに上げておきましたが、それ以外は基本的に以前と同じです。

今回のアップデートで、一応white shadeをいじるのは最後のつもりです。そんなに強くなくても、きれいにちゃんと打ってくれたら嬉しかったのですが、私にはちょっと難しかったですね。ただし、white shade諦める代わりとして、オンライン版の方でKataGoが使えないかを、時間のある時に少し調べてみます。サーバのリソースもできるだけ無駄なく使いたいので、なんとか実現させたいですね。COSUMI始めてからもう13年が経過したのですが、これがCOSUMIでの最後の大きな仕事でしょうか?

それにしても、今回の変更で少しも強くなっていないというのがまだちょっと信じられないので、CGOSでも少し動かしてみたいと思います。

[追記 2021/07/11]
こちらにも追記しましたが、CGOSで動かしてみました。今回の改良は小さい碁盤サイズで有効だと思われるものだったのですが、9路盤ではやはり少し強くなっているように見えます。手元でもう一度確認してみて、いけそうであれば9路盤にレベル6を戻したいと思います。

[追記 2022/4/23]
ここに書くのをずっと忘れたままだったのですが、あの後、手元で調べたところ、やはりあまり強くなっていないようなので、Tensorflow.jsのバージョン以外はなにも変更せず、そのままの状態で今に至ります

ナニゴケをアップデートしました (Ver. 1.7.0)

ナニゴケのNNを新しくしました。

ナニゴケ – 苔の種類を判別するWEBアプリ
https://www.nanigoke.net/

今回は、判別可能な種に、「アツバチョウチンゴケ」、「コゴメゴケ」、「ジンガサゴケ」、「ツクシナギゴケモドキ」が追加されました。24300枚だったTrainのデータ数は、26900枚になっています。ネットワークの構造は、ReLUを使用していた箇所をすべてSwishに変更してみました。とりあえず、悪くなってはないかな? そして、TensorFlow.jsは最新の3系にバージョンを上げました。動かなくなったりしないか少し心配したのですが、特に問題無さそうです。

いろいろあって、SONYのα6400と18135(と70350)を買ってしまいました。今までとは少しテイストの違う写真が撮れそうなので、期待しています。

COSUMIのサーバを変更しました(2021年3月)

ここに書くのが少し遅くなりましたが、3月末に、COSUMIで使用してた専用サーバ1台をAmazon EC2 c6g.4xlargeに変更しました。

囲碁ブラウザゲーム COSUMI
https://www.cosumi.net/

全体としてほんの少しだけ処理能力が下がっていますが、大きな違いはありません。

解約した専用サーバは8年以上も借りていたらしくてびっくり! 元はメインだったのが、後輩の現メインサーバが来てからはサブとして使っていたものです。8c16tが2発でそれだけの期間ですから、冗談抜きに歴史上一番たくさん囲碁のことを考えたコンピュータなのでは? 50億手ぐらい(?)は打っているような気がしますが、それが対局としてなら、対コンピュータなのが普通であって、対人間でこれだけっていうのは価値があると思います。詳しいことは本当によくわかりませんが、優秀な君のことだから、きっと次の仕事もあるのでしょう。頑張ってね。今まで本当にありがとう。

ナニゴケをアップデートしました (Ver. 1.6.0)

ナニゴケのNNを新しくしました。

ナニゴケ – 苔の種類を判別するWEBアプリ
https://www.nanigoke.net/

今回は、判別可能な種に、「キャラハゴケ」、「コツクシサワゴケ」、「トサホラゴケモドキ」、「ノコギリコオイゴケ」、「ホソバミズゼニゴケ」が追加されました。21300枚だったTrainのデータ数は、24300枚になっています。また、前回のバージョンでは選択範囲の中央を中心とした計2回のpredictを行っていましたが、今回は中心もずらしつつ計6回のpredictを行うようにしました。以前にも書きましたが、ナニゴケでは2×2のSENetを使用していてそれのことがあるので、predictする範囲の中心をずらすのは、結構良いのではと考えています。ただし、predictの回数が大幅に増えたので、代わりにNNのサイズは少し小さくしてあります。トータルではかなり重くなっていますが、できるだけ一発で良い判別ができたほうが、結果的にユーザにとっては速いと思うので、これでいいと思います。また、predictの回数が増えたので、断定的なことを言いにくくもなって、これも望ましい動作だと思います。そしていつものように、TensorFlow.jsも最新のバージョンに上げておきました。

年越して1月も終わろうかという時に言うことではないのですが、「この秋は本当に本当にやってやる」と思ってたんですよ… でも、最初の方は暑いし、最後の方は寒いし、冷蔵庫にはビールが入ってるしで(笑)、なかなか目一杯で頑張れませんでした。うーん、これ終わらないですね… 次回のアップデートは、5月6月の苔シーズンの直前を予定しています。

white shadeをCGOSで動かしています

なんとかかんとか、white shadeをTromp-Taylorな終局とPositional Superkoに対応させて、以前から一度は挑戦してみたかったCGOSで、今現在、動かさせていただいています。

Computer Go Server
http://www.yss-aya.com/cgos/

9路盤と13路盤でそれぞれひとつずつ動かしていて、player nameは9路盤がws-201217_9lv5、13路盤がws-201217_13lv6です。

Crosstable for ws-201217_9lv5
http://www.yss-aya.com/cgos/9×9/cross/ws-201217_9lv5.html

Crosstable for ws-201217_13lv6
http://www.yss-aya.com/cgos/13×13/cross/ws-201217_13lv6.html

それぞれ、こちらのレベル設定と同じに、内部の設定を合わせていますが、Tromp-Taylorな終局とPositional Superkoに対応させた関係で、厳密には全く同じ強さとは言えません。また、いろいろと無駄に重くもなっているのですが、まあそれでも、ほとんどノータイムで打つと思います。少し話変わりますが、以前から、入門者の方には純碁よりTromp-Taylorの方がいいのでは、と思っています。個人的には、どんどん推していきたいです。普及において、ルールは本当に本当に重要だと思いますが… あと少し気になったのですが、例えばfloodgateにはhumanがいることもあると思いますが、CGOSは全くいないと思っていいんですよね? 申し訳ないですが、終局は決してきれいではありません…

最初、すんなり動かなくて少し頭を抱えたのですが、どうやら、genmoveに対するレスポンスの末尾が、改行2つではなく3つだった(今の今まで、全く気づかなかったよ…(笑))のが、関係していたようでした。それ以外にも、Stopに対して一局やらかしてしまいましたが、それに関しても修正済みです。できるだけご迷惑が掛からないように、またおかしかったらできるだけすぐに止めれるよう気をつけますので、どうかよろしくお願いいたします。

[追記 2020/12/18]
13路盤でAya786m_10kに一局、時間切れ負けしていますが、ログを見る限りエンジンの問題ではなさそうでしょうか? 続けて次の対局も打てていたみたいですが、一旦OSごと再起動しました。

[追記 2020/12/21]
一旦、止めました。また少し期間を空けてから動かします。9路盤と13路盤の両方とも、最終的には少なくとも1000局は打たせるつもりにしています。

[追記 2021/02/12]
ここ最近も少し動かしていたのですが、とりあえず両方とも1000局を超えました。現時点で、9路盤が1630局打ってレートが2091、13路盤が1535局打ってレートが2474です。多様なプレーヤーがいることが、正確なレートの測定に不可欠だと思いますので、これからも可能であれば、定期的にCGOSでwhite shadeを動かす予定です。

[追記 2021/07/11]
ここ最近も、white shadeをCGOSで動かしていました。できれば最新のバージョンと以前のバージョンの両方を同時期にと思い、コンフィグファイルでpriorityを設定してやったりもしました。あとで見返した時のために書いておくと、現時点で、ws-201217_9lv5が2730局打ってレートが2124、ws-210530_9lv5が2962局打ってレートが2196、ws-201217_13lv6が1940局打ってレートが2468、ws-210530_13lv6が1265局打ってレートが2445です。当たり前ですけど、CGOSって対局数がなかなか稼げなくて辛いですね…

white shadeをアップデートしました(2020年12月)

white shadeをアップデートしました。

white shade – 囲碁ブラウザゲーム COSUMI
https://www.cosumi.net/whiteshade.html

今までのバージョンのwhite shadeが全体的に大きく/重くなりすぎてしまっていたので、今回、大幅に小さく/軽くしました(この変更はいろいろ考えてのことなのですが、COSUMI的には今回のバージョンより多くのリソースを食ってしまうものは基本的にNGだと考えています)。今まで動作が怪しかった環境でも、きちんと動くようになっている可能性が、結構あると思います。ただし、この結果、本当に申し訳ないのですが、9路盤のレベル6に関しては、維持することができなくなったので削除しました。あともう一回ぐらいは頑張ってみようかなと思っているので、その時はまた元に戻せるかもしれませんが、とりあえず今現在は無理です。もともと11路盤と13路盤には少し余裕があったのですが、9路盤にはほとんど無かったので、どうにもなりませんでした。

あと、変なタイミングでパスすることがちょくちょくあるのですが、これが減るように少し変更を加えました。実際にどれぐらい効果があるのかは、また時間があったら調べてみます。

さらに、TensorFlow.jsも最新のバージョンに上げておきました。

それから、かなり長い間ほったらかしだった、囲碁ベンチマークも併せてアップデートしました。詳細はこちらに追記しています。今の時期、スマホで5局ぐらい打たせるといい感じにカイロになりますので、ぜひお試しください(笑)。

ベッドに寝転がって、ぼけーっとベンチマーク動かして眺めていると、自分なんかがGTX 1060一発でよくこんなの作れたなと思います(最近はもやっていたし…)。5年前の自分にwhite shadeを見せてもまず信じてもらえないだろうとか、1060ではなく1070買っていたらもはや別の人生だったのではとか、妄想が捗る…(笑) ちょうど今、年季の入ったメインPCを新調しようかなと少し考えていて、もし新しくしたらそれは間違いなく別の人生ですが、まあとにかく面倒なんですよね。もう壊れるまで今のままでいいかな…

COSUMIのサーバメンテナンスをします(2020年11月26日-)

本日、26日23:00頃から、メンテナンスのためCOSUMIを一時止める予定にしています。

囲碁ブラウザゲーム COSUMI
https://www.cosumi.net/

27日の朝までには、なんとか終わらせるつもりですが、絶対の自信はありません。COSUMIにアクセスできなければそういうことだと思ってください。

[追記 2020/11/27 9:50]
えらく時間が掛かってしまいましたが、一応終わりました。遅くなってすみません。ではでは、オヤスミナサイ…

[追記 2020/11/27 23:00]
今まで使っていたFuegoのバージョンr1670が、今回ビルド出来なかったので、代わりに一番新しいr2038を使うことにしたのですが、それででしょうか、Fuegoがなんか遅いですね。かなり以前に調べた時には、r1670と最新のとで、ほとんど何にも違いが無いように感じていたのですが、そうでもなかったのかな? かなり不味そうなのでこれはすぐに調べます。あと、これはまた別件になりますが、今月の10日~21日あたり、サブのサーバのディスクが溢れていて動いていませんでした…(泣) 本当にごめんなさい。今後は気をつけます。

[追記 2020/11/28]
r1670と最新のとで、ほとんど何にも違いが無いっていうのは、どうやら私の記憶違いだったようで、なにがどう違うのかは、ちゃんと調べてみないとよくわかりませんが、同じplayout数では、r2038の方がはっきり遅そうです。とりあえずr1670のビルドが通ったので、そちらに戻しました。ご迷惑をおかけして申し訳ありませんでした。

RapidSSLからJPRSに乗り換えました

COSUMIで使用していたSSL/TLS証明書の期限が近づいて来ていたので、このタイミングでRapidSSLからJPRSに乗り換えました。

囲碁ブラウザゲーム COSUMI
https://www.cosumi.net/

併せて、TLS 1.0とTLS 1.1を切って、さらにcipher suiteも大幅に制限しました。

# Apache
SSLProtocol    all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

この設定はこちらのIntermediateを参考にしたものです。

Mozilla SSL Configuration Generator
https://ssl-config.mozilla.org/

3年前も同じくIntermediateを参考にしたはずですが、状況がかなり変わったんでしょうね、その時と比較すると大幅に厳格になっているように思います。COSUMIはそんなサイトではありませんので、そこまでカリカリに設定する必要もないのですが、もし仮にこれでアクセスできない環境があっても、そんな環境はそもそも対局ゲームなどはまず動きませんので、これで良いと考えています。

JPRSの証明書はさくらで990円/年と十分に安くて良かったです。逆に、最近は有効期間が1年での証明書しか駄目になったようで、毎年この作業をしなければならないのは、結構面倒ですね。

ナニゴケをアップデートしました (Ver. 1.5.1)

ナニゴケのNNを新しくしました。

ナニゴケ – 苔の種類を判別するWEBアプリ
https://www.nanigoke.net/

今回は、判別可能な種の追加はありません。20700枚だったTrainのデータ数は、21300枚に、ネットワークの構造は、少し気になっていたところがいくつかあったのでそれを修正しました。いつも通り、TensorFlow.jsのバージョンも上げてます。

最初のリリース時から、「学習データの拡充」と「学習方法の改良」の両方を行ってきたわけですが、その内、より多くの労力が掛かったのは、断然、前者の方ですが、実際に精度を上げたのはどちらかといえば後者だったのではと考えています(今思うと、最初の方のバージョンはちょっと雑過ぎたかも(笑))。ところが、気づけば今や、手元のデータに対してのロスはいくらも無くなってしまい、もはや、コードを書いて何とかできる余地はほとんどありません。ここから先は、基本的に「学習データの拡充」のみで精度を上げていかないといけないのかと思うと、だいぶ頭が痛いです… まあ、もう少し涼しくなったらたぶん本気出します。それまではアニメとビールの毎日かな… 次回のアップデートは、かなり先になる予定にしています。