スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« とりあえず、組み込んだ | トップページ | パブリックドメイン版はヤメ »

10手目以降は強いかも

今は、新しいリバーシプログラムの開発フェーズで、とりあえず、新評価関数の精度をMasterReversiを使って検証しているのだが、10手目までBookを使わせると、WZebraには勝ち越し、EdaxGUIで動作する昔のEdax(Ver3.3.2)にも、勝ち越せる? といった感じにはなる。

何故、10手目までBookを使わせているのか、というと、一つには、様々な展開に対して評価関数が正しく機能するか、というのを見たいという事もあるのだが、新評価関数を使って負けた対局のログを見てみると、8手目だとか10手目みたいな、極端な初期局面で、ミスしている場合が多かったからだ。

と、いう事で、新評価関数は、今の所、10手目くらいまでの着手でミスする事が多いのだが、これは、新評価関数では、純粋なパターン評価になるのは33手目からなので、24手読みのレベル5でも、10手目くらいまでは、従来の評価関数+一部のパターン評価による局面評価値が使われる事になるから、かもしれない。

つまり、従来の評価関数が混在すると、局面評価値の誤差が大きくなり、その結果として、本来なら-2と評価されるべき局面が+0と評価されたりして、その結果としては、その着手進行を選択して負けてしまう、という事になるかもしれない。

だとすると、やはり、従来の評価関数による評価結果を使うのはマズイ、という事になるのだが、もう一つの考え方としては、その程度の局面では、パターン評価による評価値が信用ならないので、その結果として、評価ミスが発生している、という考え方も出来る訳だ。

と、いう事で、今の所、どちらが悪いのかは判らないのだが、もし、パターン評価の方に問題があるのなら、現行版のパターン評価オンリーの評価関数でも、同様の問題は発生する筈だ、という声も聞こえてきそうだ。

しかし、パターン評価オンリーの評価関数の場合、結構な数の重み係数が存在するので、学習データにマッチした評価値を出力出来る様に、忖度した重み係数が設定される可能性も高くなる訳だ。

つまり、学習データにある局面に対しては、評価誤差は少なくなるものの、別の局面にそのパターンが現れた場合には、そのパターンの本当の評価値が設定されていなかった場合には、大きな評価誤差が発生する可能性も出てくる訳だ。

なので、現行版の評価関数では、10手目までのBookは必要ない、という事になったとしても、あまり安心は出来ないのだが、傾向的には、現行版でも、初期局面での評価ミスは結構あったので、学習データを追加して、それなりの評価結果が得られる様にした、みたいな事はあった様な気がする。

と、いう事で、いずれにしても、パターン評価というのは、学習データに、そのパターンが発生している事象が少ない筈の、早い局面では、重み係数が信用できない、という問題はある筈だ。

なので、新しい評価関数を作ってみている訳なのだが、新しい評価関数では、従来型の評価関数に良くある、石差・着手差・潜在的着手差・パリティを考慮対象としているのだが、どうみても、それだけでは足りなかったので、辺と隅絡みのパターン評価も追加している。

このため、結局、重み係数の問題は残っているのだが、前向き枝刈りが安定した為か、10手目以降の着手については、安心して見ていられる感じになっている。

と、いう事で、後は、10手目までを何とか出来れば良い感じなのだが、その為には、学習データを追加するか、学習方法を変更する必要がありそうだ。学習方法の変更というのは、具体的には、スムージングの方法を検討する、という事になる。

つまり、信用ならない重み係数が設定されてしまうのは、その重み係数を使用するパターンの発生頻度が少ない事が影響する筈なのだが、普通に鑑みれば、そんな発生頻度が少ないパターンの重み係数なんて、間違っていても、確率的には無問題な訳だ。

にも関わらず問題となっているのは、実際には、そんなパターンも、結構、発生しているにも関わらず、その影響度を学習させる事に失敗している、のかもしれない訳だ。

具体的には、問題のパターンが普通は40手目くらいに現れる事が多いにも関わらず、たまたま、30手目で発生した場合には、学習データには、その局面で発生した事象が稀なので、その局面用としては、とんでもない重み係数が設定されている可能性がある。

なので、より後の局面用の重み係数を使って、より早い局面用の重み係数を修正する格好にしておけば、問題の発生は防げる可能性もある訳だ。

と、いう事なので、少し、学習方法を変更してみようか、と、思っているのだが、真面目な学習をさせるのには時間がかかるので、結果が出るのは数日後かもしれない。

ちなみに、Edaxの最近のバージョンは4.x.xになっているにも関わらず、何故、昔の3.x.xを使っているのかというと、MasterReversiでエンジン対局させているからだ。

つまり、作者的には、GUIで動作するEdaxが必要なので、EdaxGUIを使った訳なのだが、手元にあるソレは4.x.xには対応していない感じだったので、致し方なく、Edaxは3.x.xを使う事にした訳だ。

もっとも、4.x.xを使ってGUIで動作するモノとしては、Booby Reversiの作者である所の奥原氏によるedax+Unified Book 2010がある。

しかし、Unified Book付きのEdaxとの対局では、新しい評価関数に勝ち目はない筈なので、作者的には、コレを使う事は出来なかった訳だ。

その結果として、3.x.x系のEdaxを使う事になったのだが、これでは流石にアンフェアなので、その内、作者的にも、新しいリバーシプログラム用のGUIを使って、最新のEdaxを動作させる事が出来る様にするつもりではある。

« とりあえず、組み込んだ | トップページ | パブリックドメイン版はヤメ »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/66402504

この記事へのトラックバック一覧です: 10手目以降は強いかも:

« とりあえず、組み込んだ | トップページ | パブリックドメイン版はヤメ »

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google