日記

日記です

0519

大学

 9時半ごろに研究室へ。

 午前中はコンピュータ将棋をちらちらとやったりやらなかったり。そこそこプログラミングしたけど集中力はなかった。

 14時からはこれを観ていた。kivantium氏、素晴らしいオタクで見てて(聞いてて)飽きない。スープジョークでダダ滑りしていたのが面白かった。いやでもプレイヤーの方々は初めて見た? 問題に対して1時間できっちり動くもの作れるのすごいですね。質疑でもかなり本質的な指摘をしていたし。

 午後はプロ野球観たり将棋観たりしながら学習を眺めていたりしたんだけど、ネットの海をさまよっていたら違う研究室の強い先輩が書いたサーベイスライドが出てきてすごかった。世の中に強い人はたくさんいる。ちょっとだけ話したことがある人なんですが、少し生意気で鼻持ちならない感じの人だったので、複雑な感情が去来したもの確か。

将棋ソフト開発

 Softmax関数の性能を見ていたが、思ったより調整が難しいという感じがする。まぁしかしこれでやっていくしかないかな。

 学習部のバグ、なんか取れたかもしれない。再現しやすい条件を発見して、そこで再現しなくなった。やっぱりマルチスレッドはもっと神経使ってコード書かないと直しにくいバグを無限に生んでしまうなぁ。CPUとメモリの気持ちにならないと。

 まぁ後はもっとコードを見直していくことが大事ですかね。

 そしてVisual Studioで関数のシグネチャを変更する方法を会得した。「署名を変更」っていうの、翻訳? ミスなのでは……。

 二か所で学習を回しているとどっちがどんな評価パラメータだったんだか思い出せなくなってくる。やっぱりJenkinsとかなんとかを導入してみるべきなのかなぁ。よくわからなく、よくわからないという気持ちが強い。

 家で学習か対局かさせていた気がするんだけどさせていなかったか。何も覚えていない。管理できていない。

 しかしゼロベクトルからの学習はできるけどそこから先の学習は上手くいかないなぁ。うーん、一度止めてしまうとダメってことがあるんだろうか。あるいはここで頭打ち……、そんなことないでしょ。

 メモリの使用量は正常だった。僕の頭の方が悪かった。

将棋

 名人戦は青野流の激しい展開に。と思ったら先手が落ちつけてこれはリードですか。角交換角打ちからもうさっさと終盤に行くのかと思ったらこんな局面になるもんなんですね。

 やはり自分で指してない期間は観る方にもいまいち張りが出ない。指す時間を捻出するのは……しばらく無理そうかなぁ。

シャニマス

 一切触ってないし今後も触る予定はないんですが、唯一気になるとしたら月岡恋鐘さん。というか下のツイートということです。

 

 月岡恋鐘さんがどういうキャラクターなのかさっぱり知らないので、まぁそういう意味での興味はあまり……。

 僕は検索窓に[月岡恋鐘 サファイア]なんて打ち込んだりはしないぞ。

その他

 まだ時々くしゃみが出るんだけど、花粉症なのかなぁ。まぁそこまでの頻度ではないので薬を飲むほどでもないんだけど。

0518

大学

 09:30過ぎくらいに研究室着。昨日は本を読んでいて寝るのが遅く(1時半くらいだったか)、なのに5時半くらいに目が覚めてしまい、どうしようもなく眠いという感じ。二度寝が上手くできないんですよね。

 午前中は強化学習のログをプロットするpythonスクリプトを書いた。pythonになれていないのでたったそれだけのことをするのですら結構苦労してしまう。

強化学習

強化学習

  • 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章
  • 出版社/メーカー: 森北出版
  • 発売日: 2000/12/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 5人 クリック: 76回
  • この商品を含むブログ (29件) を見る

 いろいろ考えてはみているんだけど、やっぱりこれをしっかり読んでいかないと始まらないかなぁという気分になってきた。そんな時間があるのかというと微妙なところな気もするけど、この先今以上に余裕があるタイミングなんてないのでは。悩んでいる暇があったら手を付け始めろということである。

 これは昨日のことだけど「分析系の研究は結果が出ないと地獄なのでやめておいた方が良いのでは」という話を先輩たちがしていた。しかしわけもわからずモデルをいじってなんか性能出ましたみたいなの、虚無では? とも思うので、まぁ難しいところですかね。上のはM2の人が話していたことなんだけど、B4も一年で結果出さないといけないのは同じで、まぁちょっと難しいところもあるよなぁ。

 研究より勉強がしたい、頭のいい人間が考えたことを知って「ほえ~」ってなりたいだけでは? そうですね。

 午後はサーベイの発表。論文の読み方が雑だったなぁ。反省点は多いですね。読みがひどいのに口頭では謎の断定をしてしまうゴミ人間なので人々に誤解を植え付けやすい。スライドの作り方ももっとわかりやすくしなくてはダメですね。関数の型を示すのと手順を明確に示すのかなり重要っぽい。あとは新規性がどこなのかちゃんと切り分けるとか。

 パッと先輩に話しかけられたとき、ナチュラルに「うん」って言ってしまい、これだから非体育会系は……とか内心思ったが特に突っ込まれなかった。僕ならぶっ飛ばします(しません)。

 発表の後はかなり朦朧としていたやはり睡眠不足ダメ。

 足元で学習しているマシンが動いているので席がとても暑い。

 何か勉強するときにメモを取ることもあるわけだけど、取るだけ取って見返すことがほとんどない。というか全く? というわけでルーズリーフじゃなくて適当なノートで良いのかなぁという気分にもなってきた。さっさと捨てるということですね。A4サイズのノートがちょっと気になっている。

将棋ソフト開発

 学習部、変更できるように標準入力から受け取りたい情報が多すぎてめちゃくちゃ汚くなる。やっぱりクラスを作った方が良いのかなぁ。staticまみれの邪悪なlearn_self.cppができあがっている。

 しかし2値の要素(○○をするかしないか)を入力から分岐させるとそれを保存する変数がぐちゃぐちゃになる気がしてなぁ。あとはクラス内部で持てるメモリの量? みたいなのもちょっと不安。動的確保をきっちりできれば問題はないんだろうけど。string, stringのmapで確保するというのはありかもしれないなぁ。

 一つしかインスタンスを作らないクラスを作りたくないという気持ちがある。namespaceとかでくくるのかな。でもそれはあまり本質的に思えない。どうしようか……。

 いやしかし学習時にしか使わなくて、そのときだけインスタンス作るみたいに考えるとクラスにするのも合理的なのかな。大幅な変更になるかもしれないけどやってみましょうかぁ。

 あとは探索深さが伸びないことだけど、オーダリングの性能がひどいってことなんだろうか。まぁ手抜きもいいところなのでひどいんだろうけど、オーダリングをカリカリにチューニングする気力が起きない。ここもやはり機械学習様になんとかしてもらうべき領域では? 具体的な方法はわからんけど。

 EvasionMoveにオーダリング入れてなかったことに気づいて入れた。ちょっとは強くなったのでは? こういうのを定量的に測れなくてあれ。

 探索部つらいという感情ばかりが溢れてくる。なんとかならないものか。

 学習部も表示上強くなっているはずなのに弱くなっているという現象がいくらか発生していてもうなにも信じられない。探索深さによってそんなに変わるということか、ランダム性が少なすぎて決まったパターンにハマっているか。多少のランダム要素を上手く入れていく仕組みが必要ですねー。

 とりあえず1手読み(+静止探索)の評価値をもとにsoftmax関数をかけてその確率で指す関数を作った。20手くらいそれで指させてみた局面をいくらか見てみた感じではそれほど極端に形勢差がつかない感じになっていて悪くなさそう。多分フルランダムよりはこっちの方がいいんじゃないかなーという妄想をしてみるが。

 うー、ちゃんと検証プログラム書いてみるべきだな……。明日にしよう。

その他

 藤井七段爆誕。しかし角換わり棒銀なんだかんだ手ごわいのでは。将棋もちゃんとやりたいなぁ。

 時間の配分をもっとちゃんと考えていかないと。コンピュータ将棋、競技プログラミング、将棋、読書くらいがメインで、そこから下に動画視聴とかプロ野球観戦とかがいくらかある感じ。やっていくしかないですね。頑張ろう。

0517

大学

 10:17に研究室着。ダメですねー。気合が足りない。昨日寝るのが遅かった && 二度寝してしまったというコンボでしたね。

 また扇子を持ってくるのを忘れた。まぁ使うかどうかは微妙なところだけど。

 午前中は発表スライドをいくらか作って終わり。

 3限は離散凸解析。マジでなんもわからんという感じだった。マトロイド、劣モジュラあたりで????? ってなった。

 4限は可視化。英語ちょっとわからなくて微妙に理解しきれないところがあった。うーん厳しい。

 5限の後はICPCに向けた競プロの練習会とやらに呼ばれたので顔を出してみた。結構人が多くて驚いた。良いことなんじゃない? 知らんけど。

 20時頃に帰宅して後は野球を観たり(鈴木誠也が決勝ホームランを打ってカープは勝ちました)、本を読んだりしていた。文化的に過ごしたい。

将棋ソフト開発

 なかなか強くなりませんね。そしてコードにはまだ手を付けられていない。打ち歩詰めを正確に実装するの難易度高すぎるので探索部で弾いた方が良いのかなぁ。まだ悩み中。

その他

 だるまブログの文体がキレキレという感じだった。しかし本当に記事が消えていくので一時の楽しみですね。さすがに技術的なことについての記事は残しておいた方が後で学ぶ人には親切だろうとは思うけど、まぁ他人に親切にしなければならない理由もない。

0516

大学

 09:12に研究室着。まぁ悪くない。レポート提出というミッションがあったのでちょっと気持ちに張りがあったおかげということはあるだろうけど。

 すぐイヤホンに手が伸びてしまう。集中力がない。薬中毒みたいな感じでは?

 REINFORCEをちょっと誤解していたかもしれないなぁという気分になってきた。即時報酬による近似、そんなひどい話でもないのか? というかelmo絞りとの関連性が……。モンテカルロ法とかそういうことに近いんだろうか。

 相変わらず読んだ論文をまとめる方法に悩んでいる。数式をスッと書けないと苦しいのはそうなのではてなブログはちょっと厳しいかもしれない。まぁでも[tex:]と入れるだけならまだマシな方なのかもしれないなぁ。Qiitaは数式を書きやすい? らしく、それは人気の理由になりうるだろうなという気持ちになった。

 はてな、微妙にLatexと構文が違って厳しい感じになってきた。もうLatexで書いてしまうのが良いんじゃないか? とか思うけどそれはそれでデータの共有が面倒。うーむ、悩みどころですなぁ。なんだかんだで手書きが一番楽ではとか思い始めてきた。ノートを持ち運べ。

 昼からはさっぱりやる気が出ず、記号接地問題についてつらつらと考えていた。自由意志とか責任とかの観念を人工知能にも与えなくてはならないというような直感はあるわけだけど、それが身体を必然的に要請するものなのかはまだわからない。自分と、外界が明確に区別できれば良いのでは? と思ったりもする。そのために身体が必要ということなのかもしれないけど。

 人工知能のための哲学塾

人工知能のための哲学塾

人工知能のための哲学塾

 買って途中まで読みかけて挫折した覚えがあるんだけど今パッと探した感じでは見つからなかった。買ったストアが違うか、図書館で借りたんだったか。記憶ではなんか問題意識が合いそうで合わないみたいな印象だったが、今読んだらどうかな。

 まぁ哲学の話はどこまで行っても趣味なのであまり時間をかけすぎてもいけない。実践的にはボトムアップに、やれるところからやっていくという方針でなくてはなぁ。だから数学をやらなければならないのだ。

 ここ数日暑くなってきており、扇子を持って来ようと思って毎回忘れている。今は竹不足だかなんだかで扇子が品薄みたいだけど、まぁ物は使ってなんぼでしょという精神の持ち主なので、使ってしまおう。壊れたら困るけど。

 午後にちょっと考えていたんだけど、AlphaZeroはExperience Replayをやっていて、それは方策オフ型の学習しかできないはずだから(ここちょっと怪しい)、Actor-Criticという方策オン型の学習をやっているわけがないのか。やはりExperience Replayが方策オフ型の学習にしか適用できないという言説怪しい気がする。この論文にはそう書いてあるように見えたんだけど、僕の誤読か?

 こういうあれをパッと相談できる先輩とか教授が存在せず厳しい。いや、意外と知っている人がいるんだろうか……? 人との交流が少ないので認知していない。

 まぁきっと方策オンのものについても普通にExperience Replayは使えるということなんでしょう。ある程度間隔を短くとればね。感覚的にはそうだしね。

 早めに来たことに満足して早めに(19時前に)帰ってしまった。意味ないじゃん!

 帰ったあとは小説を読んだ。久しぶりのミステリ。そこそこ面白かった。

将棋ソフト開発

 レート50くらい上がっているはずだけど検証してもかなり微妙。指し手は良くなっている気もするんだけど、なんか中盤でちょっと悪くしてしまっているようにも見える。そういう分析も統計的にちゃんとやっていかないとダメだろうなぁ。

 自己対局中にShogiGUIがなんか配列外参照が発生したとか言ってくるんだけど原因がよくわからない。強化学習中にバグるのと同じ原因だったら良いなぁ。python力が低くて棋譜の結果を読み込むスクリプトをスッと書けない。

 ちょっとだけ強くなったはずのやつをWCSC版と戦わせたら17%しか勝てなくてむしろ弱くなってる……。なにもわかりません。

 自己対局の対局結果をさらってみたら打ち歩詰めやらかしてるのを発見した。これが諸悪の根源だったら話は早いなぁ。

その他

 研究室行って帰って本を一冊読んだら一日が終わっている。ナンデ!?

 人生が厳しい。

0515

大学

 11:13に研究室着。遅すぎ。自害してほしい。

 14時くらいまではなかなかいいペースで作業ができていた。しかしそのあたりで完全に集中力が途切れる。

 5限には講義。グラフの話面白いなぁ。内容は結構高度で大変だけど。

将棋ソフト開発

 50時間くらい学習させたものはWCSC28版に対して61勝 198敗 16分けだった。勝率約25%で、レート差は190ほど。思ったより強くなっているというのが正直なところですかね。まだまだ伸びてくれるとは信じているが、雑な学習部でどこまで行ってくれるかなぁ。

 原因不明バグはいまだ不明でかなり厳しい。std::vectorのメモリ解放でなんか例外出てるっぽいようにも見えるけどそんなん知らんよ。

 まぁ僕のコードがどこかおかしいんでしょうけどね。ひょっとしてメモリ不足とかそういう可能性もあるのかなぁと。想定よりも2倍以上使ってるっぽいしなぁ。メモリ管理は難しい。人間のやることではないのでは?

 学習結果を晒している通り、ここ数日コードは書けてない。気合が足りない。

強化学習

 なんか用語がよくわからなくて混乱してきた。この記事のAdvantageの説明合っているのかなぁ。AdvantageってQ(s,a) - V(s)として行動aの相対的な良さを測っているからそういう呼ばれ方をしていると思っていたんだけど。先を何ステップ使うかって関係なくない?

 あとはREINFORCEとActor-Criticの関係とか。山岡さんのブログでdlshogiはREINFORCEを使っていると書いてあったんだけど、そのほうがいいのかなぁ。せっかくマルチタスク学習しているなら僕がActor-Criticと認識しているものでやればいい気がするんだけど。

その他

 今日中に出そうと思っていたレポートを出していなかったことに気が付いて焦った。明日の午前中には出さないと。

 音楽に頼るの良くない。どうしてもダメな時だけ使いましょう。

 生活が壊れている。汁椀にひびが入って中身が漏れる。新しいのを買わなくちゃいけないんだけど、物を買うというのがなかなかできない。店頭に行ったらAmazonでいいやと思うし、かといって家に帰ったらAmazonを開く気が起きない。そのほかにも買うべきものはたくさんあるはずで……。

 生活や家事と仲良くやっていくことができない。

 早く寝ないと……。

0514

大学

 10:08に研究室着。もう朝遅くて本当にダメ。着いてからもやる気がさっぱり起きずダメ。何もかも無理。上手く眠れていない感覚がある。単に寝るのが遅くなってしまっただけということもある。

 Twitterで流れてきた論文を読んでいたら急速にやる気が回復してきた。外部知識を利用する強化学習みたいなの、教師あり学習である程度事前学習してから強化学習するのとどういう違いがあるのか見えてこないけど、それとは別の部分としてこの論文は面白そう。

 まぁそれはそれとして課題をやらなければならないので、仕方なく音楽を聴きながら手を付けたら意外とすんなりできた。普段はあまり音楽聴きながら何か作業するの好きではないんだけど、モチベーションが上がらないときはこういうのも有効かもしれないなぁ。競技プログラミングとか、コンピュータ将棋とか、将棋とか、自分から進んでやるもののについては音楽聞きながらやることとかはほとんどないんだけどね。

 動画観ながらとかは流石に気が散るという意味でも、研究室だからという意味でも無理ですね。音楽が限界。できればインストの方がいいとは思うんだけど、あんまりないので普通にamazarashiとかを聴いていた。

 ゲームBGMとかは良さそうなのでは。まぁちょっと不純な利用法ではという気もするけど。まぁしかし僕は音楽についてもCDは全く買わず、ダウンロード購入できるもの、というかほとんどApple Musicにあるものしか聴かないのでかなり幅は狭い。

 最近、モチベーションがすべてだなと感じることが多くて、特に手を付け始める段階まで上手く気分を盛り上げていく方法をもっと工夫していくべきなんだろうなと思う。気分を切り替えるとかそういう部分を、テクニックとしてもっと模索していくことが重要なんじゃないかとか。

将棋ソフト開発

 ゼロベクトルから24時間自己対局による強化学習を回したところ、ちょうど9割勝てるようになっていた。まぁでもゼロベクトル(駒割りのみ)なんてめちゃくちゃ弱いわけだからまだまだですね。

 そして自己対局中に謎のバグによって落ちるのは長い時間をかければ再現性があるっぽいけど原因はまだよくわからず。非合法手を指していたり合法手のvectorをコピーするところでバグっていたりと、なんだか見えてこない。一度再現するにも数時間から十数時間かかるのでなかなかデバッグが大変。

 バグった局面をsfen形式で読み込もうとしたらなんか読み込み部自体もバグっているっぽくて地獄。ほとんど初期局面以外の検証はしていないからなぁ。

動画

 剣持刀也さん面白いと思う。しかしこれは単に男性実況、あるいは生主を観ているのと何が違うのか? わからん。

 全体的ににじさんじ勢はそういう危うさを抱えているわけで、些細な違いが、しかし本質的な違いなのだと言い切れる強さを自分の中に持っていないとなかなかファンやっていくのは難しそう。

 ところで自然にゲーム実況し始めるの面白いんですが、権利にはかなり気を使っていそうな発言もみられるので、つまり許可を得ているってことなんでしょうね。なんか時代は変わっているのだなぁ? みたいな気分になってくる。

Twitter

 サービスとしてこのままの感じだとあまり長く持たないんじゃないかなぁという気がしてくる。まぁあまり依存しないようにやっていこう。

その他

 激なにもわかりません状態になってきた。終わりが近い。

 Twitterで中途半端に発散しなければ詩情にまで至るのだろうか。

0513

 今日はダメな日だった。やる気がさっぱり湧いてこず、ずっとにじさんじの動画ばかり観ていた。

 学習はまぁ上手く行っているような雰囲気があるので符号は間違ってない、のかなぁ。間違っていてもなんやかんや学習できてしまうということがありそうで怖い。

 とりあえず駒割のみ(つまりkkp_kppt部分はゼロベクトル)のものよりは強くできた。しかし自己対局だけ(elmo絞り)で強くしていくの大変っぽいなぁ。これは先が長そうだ。やっぱりボナンザメソッドからやった方がいいっていうのはそうだろうけど、どうしましょうかねぇ。一応以前のプログラムをそのまま動かせばある程度はできると思うんだけど。

 あとは原因不明の停止するバグがある。全く分からないのでvisual studio上で動かしてみる。これで止まれば多少わかるはず……。

 計算資源が欲しいなぁ。学習の待ち時間不毛という気がする。新しくデスクトップを買うか、AWSとかを使うか。置く場所もないしAWSかなぁ。しかし手元にマシンが残らないというのは学習失敗していた時に完全なる損失ということで厳しい。さすがにこの段階ではまだ利用は論外ですね。

 もっとソフトを練り上げて、どうしても学習だけがボトルネックとなったらAWS等の利用を考えましょうね。今はまだやれることがたくさんあるはず。