2010年09月
2010年09月22日
nngsサーバに自宅PCから接続するメモ
Olympiadでは電源が足りないからサーバ(みたいな)マシンは
持ってこないで下さいね、とのことで初めて自宅のマシンから
会場のnngsサーバにつなげてみることに。
結構大変だったので手順をメモ。
1. sshで myadress.ddo.jp にログイン。cd aya/aya32
2. java -jar gogui-server.jar "/home/hyama/aya/aya32/ayamc -gtp" -port 5555
3. 別のWindowで ssh でvmwareにログイン
4. ssh -N -L 15555:127.0.0.1:5555 myadress.ddo.jp
5. password入力。これでポート15555に5555がトンネルされる
6. さらに別のWindowで ssh で新規にvmwareにログイン
7. cd aya/Ruby_nngs に移動して
8. config.rb で 'command'=>'java -jar /home/hyama/aya/aya32/gogui-client.jar localhost 15555'
9. ruby nngsCUI.rb
10. 黒番ならそのままEnter, 白番なら相手の名前を入力
他には
GTPでlinux版も対局できるように。
ルータでポート22を192.168.xx.yyyに開放。
64bitのdebianをインストール
http://ddo.jp/ でDDNSを登録して
"http://free.ddo.jp/dnsupdate.php?dn=myadress&pw=secret" を定期的に取得するバッチファイルを
などでした。
gogui-server.jar とか立てなくても出来そうな気がするのですが。
持ってこないで下さいね、とのことで初めて自宅のマシンから
会場のnngsサーバにつなげてみることに。
結構大変だったので手順をメモ。
1. sshで myadress.ddo.jp にログイン。cd aya/aya32
2. java -jar gogui-server.jar "/home/hyama/aya/aya32/ayamc -gtp" -port 5555
3. 別のWindowで ssh でvmwareにログイン
4. ssh -N -L 15555:127.0.0.1:5555 myadress.ddo.jp
5. password入力。これでポート15555に5555がトンネルされる
6. さらに別のWindowで ssh で新規にvmwareにログイン
7. cd aya/Ruby_nngs に移動して
8. config.rb で 'command'=>'java -jar /home/hyama/aya/aya32/gogui-client.jar localhost 15555'
9. ruby nngsCUI.rb
10. 黒番ならそのままEnter, 白番なら相手の名前を入力
他には
GTPでlinux版も対局できるように。
ルータでポート22を192.168.xx.yyyに開放。
64bitのdebianをインストール
http://ddo.jp/ でDDNSを登録して
"http://free.ddo.jp/dnsupdate.php?dn=myadress&pw=secret" を定期的に取得するバッチファイルを
などでした。
gogui-server.jar とか立てなくても出来そうな気がするのですが。
2010年09月12日
CSA例会でShuesoの竹内さんの話を聞いてきました
昨日は農工大で選手権で準優勝の習甦の竹内さんの発表がありました。
評価関数の作り方と学習のさせ方が特徴的で面白かったです。
(理解できてないところ多数ですが・・・)
後日、CSA資料集に詳しく載ると思います。
説明するのを放棄した手抜きのメモなどはこちらに。
----------------------------------------------------
8000行
駒番号もなし。81マスサーチして。
静止探索4手。成は歩成りだけ。
npsは100万/秒
dfpnはPVノードだけ。
nll move prunning
history reduction
prob cut 残り深さ4手で。Futulityが面倒そうなのでこちらで。
check +0.5
evasion +0.5
recapture +0.5
詰めろだったら +0.5
線形関数では限界が?
最大6まで。先手の利き3、後手の利き2、を区別している。
各升目の利き数を入力
それに重みをつけて 3つ?のニューロンの中間層に
1. 普通の評価関数(2駒関係)
2. 先手安全度(王の位置ごとに81箇所全部+持駒など)
3. 後手安全度
シグモイド。これ以上安全にして金打っても仕方がない、みたいな。
200万特徴ぐらい。
2. 3. はシグモイド関数を通して、さらに重みをかけて1.と
足し合わせて評価値とする。
駒の価値が王の安全度により変わる。
ニューラルネットに似てる。
自玉が安全な局面では危険な局面よりも
潜在力、将来性を評価すべき
学習
1. ボナメソ
2. 2手深い探索結果に対する評価値の差の自乗を最小化。深さ2と4。
標準偏差/マージン(ProbCut)が目標値となるように 1. 重みを調整。
マージンは王が危険なほど、380 -> 1000 ぐらいに。
戦型別に評価関数。7種類。
定跡が終わった時点の戦型とする。棋譜に戦型が書いてある。
全戦型で学習した後、戦型別に軽く追加学習
・序盤で筋が良くなる?
学習。
1手読みで一致したら、それで。40%
一致しないのは2手。3手、4手。4手で60%。
2,3週間ぐらい。
PVを求めて10回。次は9回・・・・最後は3回まで。
ほんのり羽生名人棋風、羽生さんの棋譜だけ重み2倍。
敗者の棋譜は使わない
棋譜との一致率が数%向上。
----------------------------------------------------
評価関数の作り方と学習のさせ方が特徴的で面白かったです。
(理解できてないところ多数ですが・・・)
後日、CSA資料集に詳しく載ると思います。
説明するのを放棄した手抜きのメモなどはこちらに。
----------------------------------------------------
8000行
駒番号もなし。81マスサーチして。
静止探索4手。成は歩成りだけ。
npsは100万/秒
dfpnはPVノードだけ。
nll move prunning
history reduction
prob cut 残り深さ4手で。Futulityが面倒そうなのでこちらで。
check +0.5
evasion +0.5
recapture +0.5
詰めろだったら +0.5
線形関数では限界が?
最大6まで。先手の利き3、後手の利き2、を区別している。
各升目の利き数を入力
それに重みをつけて 3つ?のニューロンの中間層に
1. 普通の評価関数(2駒関係)
2. 先手安全度(王の位置ごとに81箇所全部+持駒など)
3. 後手安全度
シグモイド。これ以上安全にして金打っても仕方がない、みたいな。
200万特徴ぐらい。
2. 3. はシグモイド関数を通して、さらに重みをかけて1.と
足し合わせて評価値とする。
駒の価値が王の安全度により変わる。
ニューラルネットに似てる。
自玉が安全な局面では危険な局面よりも
潜在力、将来性を評価すべき
学習
1. ボナメソ
2. 2手深い探索結果に対する評価値の差の自乗を最小化。深さ2と4。
標準偏差/マージン(ProbCut)が目標値となるように 1. 重みを調整。
マージンは王が危険なほど、380 -> 1000 ぐらいに。
戦型別に評価関数。7種類。
定跡が終わった時点の戦型とする。棋譜に戦型が書いてある。
全戦型で学習した後、戦型別に軽く追加学習
・序盤で筋が良くなる?
学習。
1手読みで一致したら、それで。40%
一致しないのは2手。3手、4手。4手で60%。
2,3週間ぐらい。
PVを求めて10回。次は9回・・・・最後は3回まで。
ほんのり羽生名人棋風、羽生さんの棋譜だけ重み2倍。
敗者の棋譜は使わない
棋譜との一致率が数%向上。
----------------------------------------------------