Hatena::ブログ(Diary)

merom686の日記 このページをアンテナに追加 RSSフィード

2017-11-15

shogi686_sdt5(開発した)

作る過程については前のエントリで書いたので、今回は内容について書く。

ソース

探索はただのアルファベータ法。反復深化と置換表(スコアのみの簡易版)は使っている。持ち駒の優劣判定も入れたけど、置換表との相性がちょっと心配。全体的に手抜き実装しかしてないけど、一応簡単に書ける範囲では速度にも気を使っている。

棋力に関係しない部分だと、USIオプションに関する処理はきっちり書いてある。

2駒関係は差分計算なし(そこまで遅くならない)。

自己対戦による学習が今回の主眼。やってることは、learn関数冒頭のコメントに書いた。自己対戦して1000局面以上溜まったら勾配を対称なやつにも分配して更新を繰り返したまに保存する。保存されたものたちの平均をとってもよい。そこそこ短く書けて動いたのでよかった。

自覚している範囲でダメだった点は、自己対戦の千日手を考えていなかったため256手までずっと千日手のスコアが学習されてたと思われること。自己対戦の並列化がいまいちで、学習する局面数も毎回違っていたので学習に悪影響がありそうだったこと。あと、上手いこと局面をばらけさせるのが存外難しいと感じた。

オプションでLearnを選ぶと詰みボタンでその局面から学習できるようにしてある(行儀は悪いな)。四間に振った局面からちょっと学習させたら▲28飛と戻す手を指したので悲しかった。

2017-11-14

第5回将棋電王トーナメント(参加した)

何も開発しないまま大会2週間前になる。体の調子が悪かったり精神の調子が悪かったりで開発できないと思っていたが、体調がよくなってさあ開発しようとなると、またどうしようもない嫌悪感が襲ってきてコンピュータ将棋のコードは書けないのだった(競プロのコードは書ける)。

もちろん何も書かずにshogi686microのまま出場するわけにはいかないので、頭の中では計画を練っていた。PR文書に書いた学習の実現に必要なのは、2駒関係の実装と学習部の実装、そしてその学習を回すための時間(必要な時間は不明だが、一晩程度、失敗したときのために二晩はほしい)。だが、頭の中でいくら考えても、いざ実装してみると新たな問題が出てくるのがプログラミングというもの。何もせず焦っていた。

2駒関係の計算方法をしっかり頭の中で確認したり、自己対戦の方法を詰めたり、頭の中では頑張っていた。手は動かさないままだった。コードを書き始めたのは11/6ごろだったと思う。ツイートしていないから確かなことがわからない。2駒関係は何回か実装したことがあり、詰まることはあっても本格的な困難はないので自分用のメモにも何も書いてない。完成を最優先とし、差分計算は実装しなかった。

11/7の夕方辺りから学習部を書き始めたと思う。shogi686microは本当に単純なアルファベータ探索なので、学習時の自己対戦も書きやすい。AdaGradは実装経験もある。ただ、さすがに機械学習は難しい部分だということも実感した。体調が回復傾向にあり、本番が近いという緊張感がいい方向に働いたこともあり、1日ちょっとで動くものが出来上がった。ここは我ながらよくやったと思った。発生したバグで大きかったのは、PPの回転対称で符号を逆にしてなかったこと(初期局面で評価値が-3000になったりした)。

depth1で感触を確かめたあと、11/8夜にdepth2の学習を一晩回した。翌朝、sspに一発入れたので「これで出場できる」と安堵した(ただし、実際には終盤が想定外に弱く、このときsspに勝てたのはただのまぐれだった模様)。

探索がやはり弱いということで、1日でできる棋力アップがないか検討し、スコアのみの(hash moveを使わない)置換表を入れた。歩の成り捨てとかも恥ずかしいのでそこも修正した(その晩にまた学習させるつもりだったので、2駒関係の表現力を少しでも稼ぎたい(成り捨てに関する値が少しは付いていたと思われる)という思いもあった)。置換表のスコアの使い方は、必要な処理を忘れていて理解不足を露呈した。

また、どうも棋風が荒いので、出力した20個の評価バイナリ(途中経過)の平均を取るという手段を思い出して実装した。強さはともかく棋風が安定したので(好みだったので)採用した。

11/9夜に最後の学習(追加学習)(11/10夜は狭いところに泊まるので学習はできない)。これがどうも弱い。平均を取ってもダメなので、結局一晩だけ学習させたもので出場することにした。玉の真上に相手の金があるとかには大きい値を付けたいが、玉を含まない関係に大きな値が付いていても困るので、難しいところ(まあ実際には学習の不備なんだろうけど)。

学習が途中で止まるんじゃないかという不安から、11/10の朝はPCのファンの音が小さくなったことで目が覚めた(もちろんパッチリしたというだけで元から覚めてはいたのだろうけど)。実際には、CPUを使い切れない学習部と朝の寒さの組み合わせが原因だった。

11/9は変なツイートばかりしていた。ソフトのほうはなんとか形になったが、熱が出て参加できなかった半年前の選手権を思うと体が心配だ。ツイートはしたいけど、フラグになるようなツイートはしたくなかった。何を気にしてるんだという感じだが、フラグにも相関関係はあるかもしれない。自由意志でツイートしてるつもりでも、体調を崩すときしかフラグになるようなツイートはできないのかもしれない。ツイートできないならいいじゃんて?まあそうなんだけど、怖いんだよ。

11/10は事前準備の日。宿泊・交通のための準備も大変だった。どうにかターゲットの電車に間に合った。13時ちょうどにニコファーレに着くと、まだ開いていなかった(すぐ開けてくれた)。中に入ると、レイアウトは去年と同じ。ちょっと机が小さくなったのかな?案外早い時間帯から人が増えてきた。

テスト対局では、(そうならない仕様のはずなのに)角不成を指してしまった。駒割だけのときにオーダリングをランダムにしていたのだがそれを切り忘れていたのが原因だった。設定のデフォルト値を修正して再コンパイル。電王トーナメントバージョンが出来上がった。

今回は、事前準備で無駄に早く会場入りしたので、PCにVisual Studioインストールした。ネットとSSDがめっちゃ速い。mEssiahさんにソフトマックスの話を聞いたりしていた。18時頃に、僕が糖分補給をしようとしたタイミングでカレー支給され、それがとてもおいしかったので、みなみけ1期3話の「クリームシチューごときが、こんなにも人の心をとろかすものなのか」を思い出していた。

その後、海底さんカツ丼さんきふわらべさんと話をしていつの間にか遅い時間になっていた。早歩きで10分ほどの宿泊先へも無事辿り着き、(あのダメな状態から)ようやくここまで来たという嬉しさがあった。

その他のことはツイートを参照。色々あって、自分にとって楽しいことばかりではないけれど、ものすごく貴重な時間だった。

あんま関係ないけど、あれは「ケンカ」ではないよ。きつい口調で言い合っていると、クラスタ外からはそう見えちゃうのかもしれないけど、内容的にしっかりしていて僕は安心感しか感じなかった。

話を戻す。いやもう人数がめちゃくちゃに多いし、大変なのよ。基本的にはコンピュータ将棋の話をしたくて参加してるんだけど、話しかけていいものかわかんないし、きっかけも思いつかなかったりして。それでも、コンピュータ将棋が好きという共通点があるので、一般のアレよりはずっと楽ではあるのだよね。

余裕がなくて事前にはツイートできなかったけど、僕に対しては誰でも気軽に話しかけてください(ていうか話しかけてもらえるくらいすごいソフトを作ればコミュ力とかそこまで必要じゃなくなるんだよなあ)。まあとにかく、僕は参加したからにはコンピュータ将棋の技術的な話がしたいと表明しておきます。

2017-10-19

秋アニメ第1話

試してないのもあるけどまあ引っ張ってもしょうがないし。もう体調悪すぎて死ぬわ。継続組も含め、安心して楽しめそうなのはうまるちゃんBORUTOくらい。

干物妹!うまるちゃんR

この監督の2期は信用してたけど、それにしても構成がうまい。

結城友奈は勇者である

楽しみにしてたけど話が難しい。髪の色が地味なのが親切じゃない。

3月のライオン 第2シリーズ

漫画には、苦手なシーンは流せばいいというメリットがある。

おそ松さん 第2期

よくできてるけど、合わなさは感じる。2期だからね。

継続組

BORUTO、ここたま、グルグル。BORUTOの安定感が抜けているが、ここたまも悪くはないといったところ。グルグルは見れば面白いのだろうけど溜めてる。

2017-10-02

夏アニメ総括

メイドインアビス

ナナチがかわいいことしか覚えてない。

ノラと皇女と野良猫ハート

この作画(動き)でよく切らなかったな。OPもいい曲だったしね。9話からの尖り方がすごかった。ニコ生一挙も全部見たし、全体的に内容がいい。実はキャラデザもかなりよくて好みだったり。11話でノラもかわいくなったし。

BORUTO

サラダEDになってから3か月経ったとは驚き。内容的にはやや以前のダメNARUTOに近づいている部分も見受けられるが、キャラ描写が積み重なってきたこともあり安定して面白い。サラダのめがねがちゃんと香燐のだったのが嬉しい。

異世界はスマートフォンとともに。

作画の悪さが致命的なレベルだと思うんだけど見られる。バランスがいい。EDの前半部も作りが雑だと思うけど、このアニメはそれで成立している。また高橋ナツコがドハマりしている。クオリティが低いのではなく、抽象度を一段上げてわかりやすく楽しめる。最終回付近では、EDを誰にするかの選び方が素晴らしく、唸らされた。結婚のシーンは、相手らしき9人が映るカットにスゥがいたので満足。赤千夏の力も大きかった。

てーきゅう9期

いつの間にか以前の高速アニメを取り戻してて草。

徒然チルドレン

アニメには最終回が存在するので、いまいち合わなかった感はある。でも途中まではすごくいいアニメ化だったと思う。声優の色々な演技を聴けるのが楽しみだった。好きだったのは鬼頭明里

信長の忍び

気づけば52話。よく続いた。

ヒミツのここたま(96話冒頭まで)

なんか見なくなってしまった。夏休みにのぞみが帰ってきた1クール。待っている時間のほうが幸せだったかもしれない。

魔法陣グルグル(5話まで)

げそいくお監督のグルグルが観たい以外の感情を失った。

2017-08-14

夏アニメ第1話

もう第1話って時期じゃないだろ。夏クールも半分が過ぎようとしている。

継続組についても、クールの境目ということで何かとあるので書く。

メイドインアビス

こどもの体が触ったときべちゃっとした感じなのがいい。

何を食べたらキネマシトラスでアニメ化してもらえるのだろう。

BORUTO

前EDに続いていいED。サラダメインでかなり踏み込んだ内容だったことに驚いた。

魔法陣グルグル

アニメ化。とんでもない作品だ。

ドキドキ伝説のときはいまいちだったけど、今はちゃんと作ってくれそうな感覚がある。ククリの声は違和感あるが、そのうちわかるだろう。

てーきゅう9期

CMのユリちゃんの低い声とか、EDがあるところとか、あと本編もそうだけど雰囲気をちょっとずつ変えてきていて好感が持てる。

かみさまみならい ヒミツのここたま

のぞみ。販促回としてよくできている。

信長の忍び

新OP。寂しさ、という感じでもなくなっているが、前OPと混同しそうな雰囲気は残っている。

徒然チルドレン

あまり好きではないけどアニメ化したらいい感じに丸くなるのでは(適当)。

いくつか候補はあるけど面倒で見てない。