Help us understand the problem. What is going on with this article?

DCNNigo論文概要(個人的メモ)

More than 5 years have passed since last update.

Teaching Deep Convolutional Neural Networks to Play Goの概要
(囲碁もコンピュータ囲碁もよくわかってないので、間違っている可能性大)
使われている手法の概要はPFIの海野さんの"Statistical Semantic入門 ~分布仮説からword2vecまで~"が非常に参考になる

Motivation

  • brute forceではなくて、もっと人間的な直感的な指し方ができないと強くなれないのではないか
  • それを実現するためにDCNN(Deep Convolutional Neural Networks)を使用

Contribution

  • Edge Encodingなどの新しい手法を導入したこと

Introduction

  • コンピュータ囲碁で難しい部分は以下の2点
  • (1)選択肢が非常に多い(19*19=361), (2) 勝利につながるヒューリスティックが見つかっていない
  • アルゴリズムの基本は次の一手の予測
  • 囲碁のエキスパートは非常に複雑な思考をしているため、non-linearでnon-smoothな方法が求められる
  • これらを加味してDeep Learningを用いるのが良いと判断

Previous Work

  • 予め石の配置の形状のパターンを用意しておいて、それを特徴として利用する方法で最良のモデルで指し手のaccuracyは41%
  • ニューラルネットワークで学習させたものも過去にあったが、accuracyは25%
  • 一手前の指し手を特徴量に加える場合もあるが、我々は加えていない
  • 理由として、(1)一手前に置いた石の近くを候補にしたがる傾向が出やすくなる, (2)デーム理論では一手前の手には影響を受けないとされており、情報として不要だと判断
  • また、一手前の指し手を考慮することはパフォーマンスの低下につながるという研究も出ている

Approach

Data Representation

  • 盤面は19*19
  • コウの制約をルール(simple-ko constraints)として適用
  • 評価に関しては、盤面を7チャネルに分割
  • 分割は自由度の数、または空のスペースを基準に行う
  • channel1-3はプレイヤー石の数が1~3,またはそれ以上の自由度があるもの
  • channel4-6は敵プレイヤーと同数の石があるもの
  • channel7はsimple-ko制約のみが課されるもの(?)

Basic Archtecture

  • 各畳み込み層にzero埋めを施す
  • これにより、深い層のoutputのサイズを小さくする
  • 経験的に活性化関数としてrectifier functionを使った方がtanh functionを使うより性能がよい

Addidional Design Features

Edge Encoding

  • 0埋めすると1層目で空のグリッドなのか、境界なのかがわからない
  • それを回避するために1チャネル増やして8チャネルとする
  • 第8チャネルの周辺では空を1で表す

Masked Training

  • コウなどで石が置けない部分をマスクする
  • top layerのoutputsでzeroにする

Other

  • 左右反転して同じ配置の場合、weightも同じになる
  • そこに拘束条件をつける(weight tying)

Experiments

詳細割愛

  • 2つのgameデータの棋譜を使用
  • GoGoD(Games of Go on Disk), KGS Go
  • データセットは各81,000、86,000games分の棋譜
  • vanilla gradient descentが効果的であることを発見した
  • l2, l1正則化項はつけていない
  • dropoutは行っていない
  • accuracyは40%を超えている

Future Work

  • もっと層の数やデータを増やして学習
  • パラメタ調整を細微に行う
shima_x
分析とか雑用とかやってます
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした