GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

アイデアメモ

強化学習将棋へのプランニングの導入を検討中

森北出版の「強化学習」によると、環境のモデル*1を用いない手法を「学習」、用いる手法を「プランニング」と呼ぶそうです。 で、今までの私のプログラムは前者だったんですが、他のソフト相手での対局から学習するならプランニングの方が相性いいかもと思っ…

パラメータへのノイズ付加による探査促進

一局終了ごとに、評価関数の全パラメータにそれぞれ独立した小さなノイズを加える ノイズはどんどん累積させていく ノイズには平均0分散0.000001位の正規乱数を用いる 要するに、小さなステップ幅でパラメータをランダムウォークさせようって事です。 こうす…

静止探索0段目用の手生成ルーチン

全幅と静止探索1段目(取る手+成る手)の間にもう一段はさめないかと考えて、それ用の手生成ルーチンを検討中。 んで、「盤上の駒を動かす手」ってのはどうかと考えたものの、ちょっと数が多すぎるかも。中盤〜終盤で50手前後かな? 一局通じての平均が、全…

今の実装よりもうちょっと賢い並列化方式

「今の」というか、GA将のVer.1で実装したやつですが、単純なPVS*1でした。ハッシュの手はシングルスレッドで読んで、それでカットしなかったら残りを並列化ってやり方です。 これは要するに「ハッシュの手でカットしなかったら、Cut Nodeの可能性が高い。だ…

ほぼコスト0でのハッシュクリア

http://d.hatena.ne.jp/ak11/20090514#p1 aki.さんの日記を読んでて思い出したんで、サクッと書いときます。 要点としてはこんな感じです。 ハッシュアクセス時にハッシュ表固有のカウンタをインクリメントしていく ハッシュの各エントリに、最後にアクセス…

探査回数に応じた報酬によるメタ強化学習

現在はメタ強化学習無しで進めていますが、それが失敗した場合のバックアップとして検討中の事をメモ。 まずメタ強化学習の状況ですが、メタエージェント*1の行動が報酬に直結する問題では成功しています。ただ、一時的に損をしても後々得る報酬を増やす、と…

パラメータ使用頻度のリセット方法

えー、最初に書いておきますが、id:tihara:20080601で書かれている内容のパクリです。 まず、パラメータ使用頻度によるボーナス付加の現状の問題点として「対局数増加に伴ってパラメータ使用回数が増加し、探査がほとんど行われない状態になる」というのがあ…

局面評価時のパラメータ使用頻度の利用

現状のボーナスの付加は「学習時に使用した(特徴が非0の)頻度の低いパラメータが出現する局面に向かって行動選択する」という方式ですが、これだと局面評価時の使用頻度を無視しているので、ちょっともったいないです。 という訳で、評価時の情報もなんと…

対局開始直後の指し手をランダムにして探査を促進する方法

アイデアメモってほどじゃないんですが、表題の件を考えていました。 対局開始後数手*1は完全にランダムに指し手を選べば、自然とその後の展開も違ってきて、結果として色々な局面を学習出来るんじゃないかと虫の良い事を考えてます。 強化学習作者: Richard…

昨日の補足

id:streakeagle:20080204:1202127283 「パラメータの使用頻度」と書いたのは「学習時にパラメータを使用した頻度」です。局面評価時の頻度ではなく。 それから、ボーナスの計算式はUCB1にこだわるつもりはなくて、別の方法もありだと思います。まぁ、十中八…

パラメータの使用頻度に応じたボーナスの加算による探査の促進

ざっくり書くと、使用頻度の低いパラメータに対して局面評価時にボーナスを与える事で、使用頻度の低いパラメータを使う局面の出現率を高めよう、という事です。 これだけでは訳分からないので、まずは既存の方式の問題点。 評価関数の駒割を修正する前は、…

UCBとGAを組み合わせた方策による、探索を制御するパラメータの学習

自己対戦による強化学習を前提とします。 評価関数のパラメータはTDLeaf(λ)等のアルゴリズムで学習出来ますが、αβ法での探索を制御するパラメータ*1は微分が難しい*2ので、どうやって学習させればいいか決めかねていました。 で、以下の様な流れで学習できな…

εの変更方法

今は1.0から始めて徐々に小さくしていますが、これをちょっと変えようかとも考えています。 変更のルールは決め打ちで、勝ったら少し小さく、負けたら少し大きくする、という方法。 これだと、勝った後は同じ手を選択して無難に勝ちにいく、負けたらランダム…

Actor-Criticを用いた探索ルーチンの学習

強化学習にも色々あって、TD法の一種にActor-Critic手法というのがあります。 これは、通常のTD法(Sarsa)とは違い、方策*1と行動価値関数*2の独立性が高い手法です。 で、Actor-Criticと遺伝的プログラミングを合わせれば、探索ルーチンの学習が出来ないか…

定跡の構築

せっかく強化学習で何万局も指すならその棋譜から定跡が作れないかな、って考えてたんですが、UCTを応用すれば可能かも。 まぁ、強化学習が上手くいってからの話ですし、来年来年。

評価関数を用いた終盤度の計算

たいしたアイデアじゃなくて、評価関数学習時に“評価値の目標値”ではなく“棋譜での残り手数”を与えてやればいいんじゃないかと。ただそれだけです。 ま、簡単お手軽実装でOKですので、空き時間にやってみます。