今日の反省
木曜日は1限から5限までフルにあってつらい曜日だ。
1限は画像処理の中間試験。勉強していないのでできは良くない。持ち込み可の試験だったが、自分のノートの文字が汚すぎて解読できないんだよな。
2限はOSについて。排他制御かなんかをやってるっぽい。コンピュータ将棋にかまけてあまり聞いていなかった。
3限は要件定義とかについて。コンピュータ将棋にかまけてあまり聞いていなかった。
4限は条件付き確率とかについて。コンピュータ将棋にかまけてあまり聞いていなかった。
5限はコンパイラについて。コンピュータ将棋にかまけてあまり聞いていなかった。
いや、ちゃんと講義受けろよな……。2~4限はまぁわかっている内容な気がするのでいいとしても、コンパイラは完全についていけなくなっていて非常にまずい。単位落としそう。なのに真面目に聞かないアホ。なんなんだ。
コンピュータ将棋
さてコンピュータ将棋。今日の進捗は、まずvectorで取ってた評価パラメータを配列で取るように変更した。方々の記事限り、やっぱりvectorの読みだしアクセスもちょっと遅いらしい。
それに伴って三角化していたのもやめた。やっぱりppにアクセスするたびにifでどっちが大きいかを判定しているのはダメだろう。
反転に対応したところをどうすればいいのか悩んでいたんだけど、パラメータを更新する直前のタイミングで勾配をガチャガチャいじろうとしていたのが間違いで、そもそも勾配を足すタイミングで反転と、順番入れ替えに足していけば簡単だった(たぶん間違ってないと思うけど……)。頭が悪い。
あとはAdaDeltaを実装した。しかしパラメータが動く量が小さすぎて、何か勘違いをしている気がする。イプシロンをいじれば値の動く量を調整できるっぽいけど、それはもとの役割(0除算を避ける)からするとおかしい気がするし、結局手で調整するなら学習率をいじるのと変わらないじゃん。
というわけでSGDも再実装。次元下げの分でちょっとは効率よくなっているのでは? と期待するけど、どうなるかはわからない。
RMSpropまでは実装したい。Adamはどうかな。まだ式の意味が全然わかってないんだよね。
それよりも探索をやるべきというのはわかっているが、まぁより興味がわくのはこっちの話なんですよねー。
その他
こんな日記じゃなくて真面目なブログをやっていくべきなんだろうという感覚が日に日に強くなっている。アドベントカレンダーを一人でやるみたいな、そういう熱量を発揮していくべきなんだよな。電王トーナメントとか、DDCCとかの記事も書こうと思えば書けたわけで、それをスルーしてしまっているからなぁ。根本的に長い文章書けないのかもしれない。
Twitter依存がちょっとひどい気もする。呟いてないときでもたいてい開きっぱなしにしてしまっているし、良くない。
まぁとりあえず明日を乗り切ることだけを考えていきましょう。