思うだけで学ばない日記 2.0

思うだけで学ばない日記から移転しました☆!よろしくお願いします。

5目並べの評価関数

今考えている枠組みでは、結合加重調整時の評価関数は、局面をパーセプトロンの入力(局面の特徴量ベクトル)に変換する前処理関数と、パーセプトロンの2つの部分からなる。
パーセプトロンに何をどう入力するのが最適かを明らかにする一般理論は未だ存在しない(と思う)が、少なくとも、学習の最終目標である「同じものは同じに見えるようにする」を達成する上で必要な情報がとにかく(何らかの形で)パーセプトロンまで伝わる必要があることはわかる。この観点で局面の特徴を取捨選択し、疑わしきは捨てずに残すことにする。
五目並べの形勢は、局面の鏡反転や90度回転に対して不変だから、上下左右の区別はしなくていい。(ただし、2つ以上の量を「区別しない」ことと「混ぜる(1次元として扱う)」ことは別だ。)
石の凝集、線分の色、長さ、両端の状態(そこに打てるのか打てないのか)およびそれら別の分布の違いは形勢と密接に関係するはず。
平行移動に関しては原則不変、ただし壁との位置関係には依存するだろう。だがそれは、線分の両端の状態に織り込まれる情報だと思う。
線分同士の相対位置関係もおそらく極めて重要だがそこでハタと気付く。線分の配置の違いは石同士の距離の分布の違いとして現れるはずだ。結局それに織り込まれる。
結論として、前処理関数は次のようになる。
・白同士のx軸距離(n種類)の分布
・白同士のy軸距離(n種類)の分布
・黒同士のx軸距離(n種類)の分布
・黒同士のy軸距離(n種類)の分布
・白対黒のx軸距離(n種類)の分布
・白対黒のy軸距離(n種類)の分布
・白の線分の長さ×両端の状態(n×3^2 種類)の分布
・黒の線分の長さ×両端の状態(n×3^2 種類)の分布
ここでnは盤の長い辺のマス数、
…というのはどうだろう?
盤のサイズを11×11として、出力の数(特徴量ベクトルの次元)は11*6 + 2*(11*3^2) = 264。

なお実は3日前に挙げた将棋やオセロの評価関数案も同様にして考案したものだったが、表現があいまいだったり抜けがあったり、距離の逆数の和が有効と誤って信じてたりしたので撤回。

264種類の情報の以降の取扱の塩梅は、パーセプトロンにお任せ(何

つか真面目な話、もとい半分真面目な話、パーセプトロンには必然的に詰む局面勝敗が決する局面(すなわち詰み)の論理構造を習得してもらう。結果的にうまく学習されないケースについては仕方なく遺憾ながら探索で補完する。本メソッドにおいては

  • 学習>>>>>>>探索

巻き戻し

、と仮に呼ぶことにするが、対戦して勝敗が決まった後、局面をさかのぼって勝敗が真に決したのは何時だったのかを調べてその局面を学習パターンにすることはすでに述べた。
パーセプトロンは3値にすることも述べた。
だから?

巻き戻しエンジン

、と仮に呼ぶことにするが、上記巻き戻しを実現するには詰みを探索するエンジンが要る。幸い5目並べは局面の循環が発生しないので、df-pn+みたいな高度なアルゴリズムは不要だ(といいナア、
学習の3つのキモの一つなのでこれを早急に片付けねばならないが、漏れの知能程度では実装に1週間ぐらいかかりそうだorz、

詰みの探索について

つか個人的に思うんですけど、詰み将棋の問題を作る能力と、解く能力と、勝負に勝つ能力は実は全然別物じゃないかと思うんですよね。真に勝負強い思考エンジンなら相手に好き勝手やらせはしないし、自身は必勝局面に向かって最短路をとるわけで、詰み将棋の問題が盤上に現れる確率は無視していいんじゃないかな?
(将棋経験者からすると噴飯ものの意見かもしれんが、