読者です 読者をやめる 読者になる 読者になる

daruma3940の日記

理解や文章に間違い等あればどんなことでもご指摘お願いします

次元下げについてなのじぇ

コンピューター将棋

f:id:daruma3940:20160520223745p:plain

次元下げについてみてみようじぇ

f:id:daruma3940:20160521003616p:plain

昔理解しようとして途中で理解するのあきらめたやつね

f:id:daruma3940:20160520223745p:plain

次元下げとは例えば二つの変数(ここではx,yとする)で値が決まる関数f(x,y)があった時にf(x,y)をただ単に(x,y)の二つの変数の組だけで決定するのではなく(x-y)のようなものも使ってきめるということらしいのじぇ。

f(x,y)=g(x,y)+h(x-y)ということなのじぇ。

f:id:daruma3940:20160520223745p:plain

例として相対位置のことを考えてみようじぇ。

駒1(駒種pt1)が盤上の(x1,y1)にいて駒2(駒種pt2)が盤上の(x2,y2)にいる場合を考えるのじぇ。ここでは二駒関係PPの場合を考えるのじぇ。

この場合絶対PPの要素を指定するためには

absolute_PP[pt1][x1][y1][pt2][x2][y2]

となるのじぇ。

(実際はptとxとyをまとめたf_pawnなどという定数が使われる)

 

相対PPを指定するには

relative_PP[pt1][pt2][x1-x2][y1-y2]

となるのじぇ。

 

このabsolute_PP,relative_PPをPPに織り込むなりして局面評価に利用するのが次元下げを用いた評価方法だということだと思うのじぇ。

 

 

コンピューター将棋

f:id:daruma3940:20160520223745p:plain

ううっ...進行度付き2駒関係全然強くならなかったのじぇ...

学習にかなり時間がかかった上に一致率も低かったのじぇ....

f:id:daruma3940:20160521003616p:plain

えーじゃあどうするのよ

PR文章には進行度をつけたいって書いちゃったでしょ??

f:id:daruma3940:20170324232501p:plain

そうですよ~~頑張って進行度付きでも強くなるようにしましょうよ~~

f:id:daruma3940:20160520223745p:plain

う~~ん 進行度の学習方法は単純な確率的勾配降下法だったので進行度を正しく学習できてないかもしれないとか、

棋譜はソフトの棋譜を用いているので水平線効果の学習を防ぐために進行度が80%を超えたらそこから先は学習させなかったことがあだとなったとか

進行度の取り入れ方、学習のさせ方もまずかったとかいろいろ考えられるけれど、学習にかかる時間的にもう一回予備実験してPPより強くなるような条件を見つけてそこから本学習させて大会に間に合わせるだけの時間的余裕はないのじぇ。

f:id:daruma3940:20160709192554j:plain

まあGPSとか大槻将棋とか技巧とか進行度を見ている強豪ソフトも存在するので進行度を入れるという方針は間違ってはいないとは思うのだけれどっ!

f:id:daruma3940:20160520223745p:plain

まあ今回は仕方ないのじぇ。

ネタが一個減ってしまったのは残念なのじぇ(笑)

 

PR文章書くのじぇ

コンピューター将棋

f:id:daruma3940:20160520223745p:plain

PR文章書いていくのじぇ。

f:id:daruma3940:20170316211042p:plain

 

f:id:daruma3940:20160521003616p:plain

Piece-Piece-Progressはいいとして、"進行度を考慮した"2駒関係なんだからAndではないでしょ....

f:id:daruma3940:20160520223745p:plain

やっぱり??まりちゃもそう思うのじぇ。

f:id:daruma3940:20160521003616p:plain

Piece-Piece-Associated with-Progressか

Piece-Piece-Acompanied by-Progressならワンチャンスあるかも...???

f:id:daruma3940:20160520223745p:plain

英語詳しい人教えて欲しいのじぇ。

まりちゃはこれでいいと思う。

 

 

 

バグ修正なのじぇ

コンピューター将棋

f:id:daruma3940:20160520223745p:plain

すごいバグを見つけたのじぇ。

今までずっとValue形は16bitだったのだけれどそれを32bitに変更するだけで初期局面の反復進化が2深くなったのじぇ。

int16_tをintにしただけwww修正にして4文字なのじぇww

f:id:daruma3940:20160521003616p:plain

なんで16bitから32bitに変えるだけでそんなに変わるの??

f:id:daruma3940:20160520223745p:plain

ビットオーバーフローが原因だと考えているのじぇ。

bitオーバーフローが起こって探索に用いるstatsが壊れていたり、詰みに近い評価値の時にmin(a+b,c)がおかしな値になってしまったりしていたようなのじぇ。

いやー置換表に格納する評価値は16bitなのでValueも16bitで用意しようと思ったのだけれど意外なところに盲点があったものなのじぇ~~

f:id:daruma3940:20160520223530p:plain

置換表ってなんなの?

f:id:daruma3940:20160709192554j:plain

置換表は一度訪れた局面をもう一度探索するのを防ぐために用意するテーブルのようなものだよっ!反復進化やアスピレーションサーチ(探索の範囲を前回の探索の値を中心にだんだん広げながら探索する方法)にとって必須の要素だねっ!

キャッシュに置換表要素を整列させる(置換表がキャッシュラインにまたがってしまうと遅くなるらしいので置換表のサイズはキャッシュラインのサイズで割ることのできるサイズでなければならない)ための関係で、置換表に格納する評価値を16bitにするつもりだったのでValueを16bitにしたみたいだねっ!

f:id:daruma3940:20160520223745p:plain

その通りなのじぇ。いやー神は細部に宿るとはよく言ったものなのじぇ....

 

 

 

 

卒論発表見てきたのじぇ

f:id:daruma3940:20160520223745p:plain

先輩の卒論発表見てきたのじぇ。

f:id:daruma3940:20160709192554j:plain

どうだったの?

f:id:daruma3940:20160520223745p:plain

発表を全部見たわけではないのだけれど卒論の完成度の高い研究室とそうでない研究室の差が激しかったじぇ。うちの学科は光物性系が強い学科なのでその研究室の発表は濃い内容だったし質問も厳しい質問が来ていたのだけれど、他のところはあまりそうでもなかったのじぇ。

f:id:daruma3940:20160521003616p:plain

まりちゃが入ろうとしているところの研究室の発表はどうだったの?

f:id:daruma3940:20160520223745p:plain

とても完成度が高いといえたものではなかったのじぇ。

この研究の新規性は何ですかって質問されて「新規性はないです」って学生が答えて、担当教授が「違います。新規性あります」って答えたり、「このパラメータはどのような理論に基づいて決定したのですか」という質問に対して「他の論文にあったパラメーターそのまま使ったのでわからない」とか、そもそも質問されても何も答えられないとかそんな感じの人が多かったのじぇ。

コンピューター将棋の研究をしていた先輩の発表も意味のある内容に思えなかったのじぇ。

f:id:daruma3940:20160520223745p:plain

来年自分があんな感じにならないようにちゃんと量子力学統計力学、プログラミング勉強しないとなぁ.........

 

ドット絵描いてみたのじぇ

f:id:daruma3940:20160520223745p:plain

ドット絵描いてみたのじぇ。

f:id:daruma3940:20160709192554j:plain

ほぅ...

f:id:daruma3940:20160520223745p:plain

タイトル「闇の魔女」

f:id:daruma3940:20170222215246p:plain

タイトル「鬼神」

f:id:daruma3940:20170223000330p:plain

 正義の女神

f:id:daruma3940:20170223181230p:plain

森の野獣

f:id:daruma3940:20170223181248p:plain

くじら

 

 

f:id:daruma3940:20170223192643p:plainf:id:daruma3940:20170228190705p:plain

 

 

f:id:daruma3940:20170228190728p:plain

 

bonanzaのpenalty項わかんねーのじぇ

コンピューター将棋

f:id:daruma3940:20160520223745p:plain

bonanzaのpenalty項わかんねーのじぇ。

なんなのじぇ

#define FV_PENALTY             ( 0.2 / 32 )

って(;^_^A

 

駒割りパラメータの合計-6500で束縛をするとか、特徴ベクトルの大きさでペナルティをかけるとか進歩本に書いてるけど、特徴ベクトルの大きさの和はprintf()にしか使ってないし実際に使われてるのは ( 0.2 / 32 )だし、この値もどこから出てきた値なのかわからないし...

 

 

 

f:id:daruma3940:20160520223745p:plain

ところで

学習に使う評価値はPVを作成するための探索をしたときの評価値を使っていたけど、PVで末端局面まで移動させてそこでの静的評価値を使ったほうがいいのかもしれないし、あとAperyチームの杉田さんがBonanzaは1iterationで学習用の全棋譜使ってたって言ってたので今やってる1iteration1000棋譜じゃ足りないのかもしれないのじぇ....