o-jill / ruversi

reversi program.
https://o-jill.github.io/ruversi/
1 stars 0 forks source link

bitboardでbackwardv3するのにミスっている説 #76

Closed o-jill closed 1 year ago

o-jill commented 1 year ago

NNの規模を大きくする前に計算が正しいか確認をしていたら変なところを見つけた。 backwardv3bb()(比較用にNoSIMD処理を抜き出し) と backwardv3bb_simd()(比較用にSIMD処理を抜き出し)を作って更新後のweightを文字列で比較した。 奇数番目の重みの値がことごとく違う。eta=0.001で0.0008ぐらい値が違う感じ。更新できていないのか、それともプラスマイナスが違うのか。 奇数番目が違うのは使った盤面が市松模様だからかと思ったら市松模様だとh1とa2が同じ石になるはずなので盤面が問題ではなさそう。そもそも学習結果は盤面に左右されてはいけない。 とにかくなんかやらかしている。

34 で発覚した。

o-jill commented 1 year ago

処理順

o-jill commented 1 year ago

むしろnosimdでbitをシフトしていない気がするのでnosimdが間違っている説。

o-jill commented 1 year ago

bitboardのnosimdとbyteboardのnosimdが同じだったのでやっぱりbitboardのsimdが間違っている説。

o-jill commented 1 year ago

simdありなしでxyのindexが間違っている説

o-jill commented 1 year ago

"h/H/h/H/h/H/h/H w" でなんかわかったりしないか? "aAaAaAaA/aAaAaAaA/aAaAaAaA/aAaAaAaA/aAaAaAaA/aAaAaAaA/aAaAaAaA/aAaAaAaA b"とか。

o-jill commented 1 year ago

やっぱりnosimdが間違ってた。 72b72df

o-jill commented 1 year ago

cargo testに今回やったチェックを入れたほうが良いのかな?

o-jill commented 1 year ago

テストを追加した。 cbbbaf9 デバッグコンパイルだと配列のメモリアライメントが16byte-alignedにならないのでcargo test --releaseでやるようにした。 8a8ee3c