「無明」 製作・成長記録

無明と詰め将棋

第7回詰将棋解答選手権チャンピオン戦
http://blog.goo.ne.jp/shogi-problem/e/c697c74659421fed2e8d337a53fb796d

...にチャレンジしてみました。①~⑥だけです。

ラップトップで計測です...

① 6秒
② 1秒
③ 5分経っても検索中...ギブアップ
④ 14秒
⑤ 5分経っても検索中...ギブアップ
⑥ 5分経っても検索中...ギブアップ

...となりました。

玉の周囲に空間があると、途端にムズカシクなるようです。

投稿者: 紫外線 投稿日時: 木, 03/25/2010 - 15:22 categories [ ]

無明のアピール

参加時に推奨されている「アピール文章」です...


「無明」のアピール文章

  • 基本的には固定深度で全幅検索しますが、検索木の末端でモンテカルロ法を使用し、その結果を評価値に織り込むことにより精度・信頼度のUPを図る。
  • 検索の並列化しました。
  • 「詰め検索ルーチン」はオリジナルです...df-pnを使用せず、ムーブオーダリングで高速化しました。もちろん並列検索します。
投稿者: 紫外線 投稿日時: 土, 03/20/2010 - 16:49 categories [ ]

無明の挫折... そして、「プランB」の起動

...と、いろいろ手を尽くしてみましたが、どーも不安定なので残念ながら現時点ではTDを使用した学習は廃棄処分となりました。(2週間前の話ですが)

なので「プランB」の起動(おいおい、今頃かよ!!)となります。

第20回世界コンピュータ将棋選手権のページ
http://www.computer-shogi.org/wcsc20/

投稿者: 紫外線 投稿日時: 日, 03/14/2010 - 17:29 categories [ ]

無明の錯覚...

...ど~も学習の数字が(予想に反して)収束しないので学習プログラムを読み返したら少々バグっていました。(脱力)

てな訳で一週間以上学習したデータはゴミと成りました。ふ~~~~~~~~ この手のプログラムは間違っていてもそれを簡単に検知・察知する方法がないのでやっかいですね。

今が四月下旬ならパニック大爆発のところですがまだ時間があるので「バグ見つかってよがった」と思ってみたり...

投稿者: 紫外線 投稿日時: 日, 02/14/2010 - 15:32 categories [ ]

無明の学習...したかな?

トータルで約50万局ほど流してみましたが(ソーメンではない)、結果から述べるなら「まだまだ」ですね。

(それまでに敗勢になっていなければ)中盤から終盤にかけてはそれなりの手が出せるようです...でもこれは「対局の最終手から初手に向かって学習の情報が浸透していく」ので当然の結果かな?

投稿者: 紫外線 投稿日時: 日, 02/07/2010 - 19:05 categories [ ]

無明の学習修行...

パラメターの数を増やして再学習しました。(パラメターを変えると一から学習し直さなければならないのがこの学習法の痛いところです)

約10万回程学習しました。


9 8 7 6 5 4 3 2 1
ky .. .. .. .. .. .. ke ky a
.. .. .. .. .. TO .. ki oh b
.. .. ke fu .. GI .. .. .. c
fu .. fu .. .. .. .. FU fu d
.. .. .. FU .. .. GI fu .. e
.. FU FU ka .. .. FU .. FU f
FU .. .. .. .. .. KI GI .. g
HI .. .. .. .. .. .. .. .. h
KY KE .. .. .. .. ka OH KY i

[P1]{FU: 0, KY: 0, KE: 0, GI: 0, KI: 1, KA: 0, HI: 1}

投稿者: webMaster 投稿日時: 日, 01/31/2010 - 16:01 categories [ ]

無明の学習開始...です

一ヶ月程遅れましたが、無明の学習が開始しました。ふ~~

設定はこんな感じ...

①三層パーセプトロンを使用... 入力層369、中間層81、出力層2

369個のパラメターを81に凝縮してそれを更に煮詰めた結果が評価関数の「出力」...と言う事です。

なぜ「中間層81」か?中間層のノード数は入力ノードの1割から2割程度に設定するので当初80程度を考えていました...将棋盤のマス目が81なので、なんとなくです。

投稿者: 紫外線 投稿日時: 月, 01/25/2010 - 14:29 categories [ ]

学習の前に...

AIの学習の為にはAIに食わせるデータの質も吟味するべきでしょう...と思い立って例の棋譜集の「詰み逃し」を検査してみました...

[] 内は詰めが発見された手番
() 内は対局の勝者
##/## は 詰め発見地点/総手数

...詰め太郎君(13手読みの設定)を稼動してチェックしてみました。

MATE DETECTED [P2](2) 83/94 = 11
MATE DETECTED [P2](2) 69/94 = 25
MATE DETECTED [P2](2) 55/76 = 21
MATE DETECTED [P1](1) 46/95 = 49
MATE DETECTED [P2](2) 111/128 = 17

投稿者: 紫外線 投稿日時: 日, 01/10/2010 - 18:44 categories [ ]

評価関数 - 何を評価するの?

(注)かなり簡略化しているのでその辺はご容赦を...

しょうこりも無く例の数式を引っ張ってくる...

評価値 = (評価項目① x 比重①) + (評価項目② x 比重②) + (評価項目③ x 比重③)…

投稿者: 紫外線 投稿日時: 日, 01/03/2010 - 17:05 categories [ ]

評価関数 - 評価項目

新年よろしくお願いいたします。

前出の評価関数の基本形は...

評価値 = (評価項目① x 比重①) + (評価項目② x 比重②) + (評価項目③ x 比重③)…

機械学習のゴールは適切な「比重」をトライアル&エラーにより見つけることにあります。

「では、評価項目はどこから来るの???」

①局面そのものを評価項目とする

投稿者: 紫外線 投稿日時: 金, 01/01/2010 - 09:25 categories [ ]

評価関数 - 評価関数の数式

無明の評価関数の母体と成る数式は...

ニューラルネットワーク
http://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%...

パーセプトロン
http://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%...

...これが基本となります。パーセプトロンはパターン認識(特に画像関係)によく使用されます。

将棋(や他のゲームの)評価関数の基本形は...

投稿者: 紫外線 投稿日時: 木, 12/31/2009 - 18:42 categories [ ]

評価関数 - 強化学習とは?

強化学習はAIの学習方法の一つで簡単に書くなら「学習中に起きたイベント(良い事・悪いこと)を未来の行動に反映させる」...ということです。

これは子供が将棋を覚えるプロセスとほぼ同じですね。すなわち...

①まず何でも目に付く手を指してみる

②そして...

結果が良ければ ⇒ (以前より高い確率で)後の対局にも試してみる
結果が悪ければ ⇒ その手は指さない...少なくとも後の対局に使用する確率は低くなる

投稿者: 紫外線 投稿日時: 火, 12/29/2009 - 22:11 categories [ ]

評価関数 - どうしましょ?

...と半年掛けてネチネチと将棋ソフトの部品を書き溜めて来たわけですが、「評価関数」の構築をこれ以上は先送りに出来ないので着手します。(本来はこれを最初にするべきなのでは???)

開発方針としては...

①関数の構築はソフトに任せる ⇒ イワユル自動学習の方向へ、ですね。将棋がヘタッピの我が自分で書くなど恐れ多い話です。

投稿者: 紫外線 投稿日時: 火, 12/29/2009 - 15:29 categories [ ]

詰め将棋エンジン - 詰め太郎の活用

一応、詰め太郎が実用に耐えられる程度に育ったので用途を広げようと企む我でした。

(新用途)

この内どれだけ実装できるか解りませんが...(順番通りに攻略予定)

①自玉の詰みチェック - 敵玉を詰める手順が存在しない場合、自玉の詰み手順は絶対に回避しなくてはなりません。

②詰めろ・必至検索 - 詰めろ・必至が存在する場合、指すべし。自玉の詰めろ・必至は消すべし。

投稿者: 紫外線 投稿日時: 日, 12/27/2009 - 19:34 categories [ ]