タグ

ブックマーク / qiita.com/ak11 (2)

  • コンピュータ将棋でDeep Learningごっこしてみたまとめ - Qiita

    コンピュータ将棋を題材にdeepなニューラルネットを自作して遊んでみた結果得られたノウハウのメモ。 Deep Learningはfeature engineeringしてくれない まあ当たり前の話ですが、「画像や囲碁にDCNNというモデルがとても効果的だった」+「DCNNへの入力は従来より雑なfeature (ほぼ生の情報やそれ+α)で大丈夫だった」というだけの話で、feature engineeringやネットワークの設計は結局のところ問題に特化して考えないといけないよね、という話。 少なくとも将棋の駒の配置だけを入力にして全結合層をたくさん並べただけでは、現実的な中間層の大きさでは全然予測性能が出ませんでした。 将棋の場合線形性が強いのでdeepである必要はあんまり無さそうに思えます。 全結合よりはDCNNの方がちょっとマシっぽいですが、それにしても3駒に匹敵するようなことにはならなそ

    コンピュータ将棋でDeep Learningごっこしてみたまとめ - Qiita
  • AlphaBeta探索で経路依存の値を判定する方法 - Qiita

    なんぞ? AlphaBeta探索では、ゲーム木を木構造とみなして探索しているけど、現実的には合流があったりするので、それを効率的に処理するため(だけではないけど)に置換表があったりして、しかしゲームによっては辿った経路によって発動したりしなかったりするルールがあったりなんかもして、色々めんどくさいわけです。 そんなわけで、AlphaBeta探索をしていて、その時の評価値が経路に依存したものなのか否かを判定したくなったりすることもあるわけですが、割と頭がこんがらかるので、実装方法をまとめてみました。 どうやるの? ↓こんな感じ。 末端では、それが経路依存な性質を持つか否かでフラグを設定する。 αを超えた場合(βカットを含む)は、αを超えた子ノードがtrueなときだけtrueにする。 αを超えなかった場合は、子ノードがどれか一つでもtrueならtrueにする。 β以上の子ノードがあった場合、そ

    AlphaBeta探索で経路依存の値を判定する方法 - Qiita
  • 1