Re: 森下卓九段 vs ツツカナの継盤ありリ... | 山下 | 2015年 1月 1日(木)01時00分27秒
|
Re: 森下卓九段 vs ツツカナの継盤ありリ... | gg | 2015年 1月 1日(木)05時46分55秒
|
▲9四歩 | 森下卓九段 vs ツツカナ | 2015年 1月 2日(金)09時29分26秒
|
Re: ▲9四歩 | 山下 | 2015年 1月 2日(金)23時12分10秒
|
Re: ▲9四歩 | 森下卓九段 vs ツツカナ | 2015年 1月 3日(土)11時42分19秒
|
Re: ▲9四歩 | 山下 | 2015年 1月 3日(土)18時33分34秒
|
局面ペディア、が面白いです | 山下 | 2015年 1月 8日(木)19時47分21秒
|
ShougiGUI使ってみました。 | masatsune | 2015年 1月11日(日)15時48分12秒
|
UEC杯 | 荒木(ark) | 2015年 1月16日(金)17時15分10秒
|
CGOSが13路だけ復活 | 山下 | 2015年 1月24日(土)22時55分30秒
|
コンピュータ将棋選手権の申し込みは今月... | 山下 | 2015年 1月30日(金)02時58分28秒
|
HiraBot の改良 | HiraBot | 2015年 1月31日(土)08時18分15秒
|
ICGA Event 2015 | gg | 2015年 1月31日(土)08時57分56秒
|
Re: HiraBot の改良 | 山下 | 2015年 2月 1日(日)07時38分50秒
|
囲碁クエストが2月15日の囲碁フォーカスで... | 山下 | 2015年 2月 1日(日)09時52分39秒
|
ホームページを移行しました | 山下 | 2015年 2月 2日(月)04時44分9秒
|
Re: HiraBot の改良 | HiraBot | 2015年 2月 2日(月)05時06分19秒
|
perhaps bug, HiraBot2 on KGS today | gg | 2015年 2月 2日(月)11時56分40秒
|
Re: perhaps bug, HiraBot2 on KGS today | HiraBot | 2015年 2月 2日(月)13時40分18秒
|
二段の HiraBot 公開しました | HiraBot | 2015年 2月12日(木)16時18分17秒
|
ゲームプログラミングのリンク集 | 山下 | 2015年 2月17日(火)19時46分0秒
|
電王戦FINALでは定跡を5%ぐらいで使わない... | 山下 | 2015年 2月17日(火)19時47分12秒
|
RE:電王戦FINALでは定跡を5%ぐらいで使わ... | masa | 2015年 2月25日(水)17時54分36秒
|
銀星囲碁15が太田亮初段に3子で勝ち | 山下 | 2015年 2月25日(水)21時18分16秒
|
2局目はプロの勝ち | gg | 2015年 2月28日(土)15時58分17秒
|
caffe での CPU と GPU の速度比較 | HiraBot | 2015年 3月 2日(月)13時51分57秒
|
Re: caffe での CPU と GPU の速度比較 | 山下 | 2015年 3月 3日(火)11時23分1秒
|
deep learning の勉強 | HiraBot | 2015年 3月 4日(水)08時05分57秒
|
Re: deep learning の勉強 | gg | 2015年 3月 4日(水)12時06分11秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月 4日(水)12時30分6秒
|
Re: deep learning の勉強 | gg | 2015年 3月 4日(水)13時51分13秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月 5日(木)10時26分29秒
|
Re: deep learning の勉強 | 山下 | 2015年 3月 5日(木)14時01分39秒
|
Re: deep learning の勉強 | gg | 2015年 3月 5日(木)16時12分37秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月 5日(木)18時47分4秒
|
電王手くんが電王手さんに進化 | 山下 | 2015年 3月 6日(金)20時47分39秒
|
Re: deep learning の勉強 | gg | 2015年 3月 7日(土)09時01分44秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月 7日(土)12時32分38秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月11日(水)05時10分44秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月18日(水)05時02分17秒
|
Re: deep learning の勉強 | 山下 | 2015年 3月18日(水)07時20分46秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月18日(水)09時14分4秒
|
Re: deep learning の勉強 | gg | 2015年 3月18日(水)12時56分25秒
|
Re: deep learning の勉強 | shallow | 2015年 3月26日(木)03時51分30秒
|
将棋ソフトでのスレッ数の設定について、 | masa | 2015年 3月27日(金)19時02分6秒
|
Re: 将棋ソフトでのスレッ数の設定について | 山下 | 2015年 3月27日(金)21時15分37秒
|
Re: 将棋ソフトでのスレッ数の設定について | masa | 2015年 3月28日(土)01時12分9秒
|
Re: deep learning の勉強 | HiraBot | 2015年 3月30日(月)19時35分38秒
|
Re: deep learning の勉強 | HiraBot | 2015年 4月 4日(土)23時31分0秒
|
Re: deep learning の勉強 | 山下 | 2015年 4月 5日(日)15時58分23秒
|
棋譜データの解析 | コロ | 2015年 4月 5日(日)22時08分40秒
|
Re: deep learning の勉強 | gg | 2015年 4月 6日(月)09時17分27秒
|
Re: 棋譜データの解析 | gg | 2015年 4月 6日(月)09時23分18秒
|
Re: deep learning の勉強 | gg | 2015年 4月 6日(月)09時33分19秒
|
Re: 棋譜データの解析 | 山下 | 2015年 4月 6日(月)12時27分48秒
|
Re: 棋譜データの解析 | gg | 2015年 4月 6日(月)17時17分37秒
|
Re: 棋譜データの解析 | コロ | 2015年 4月 6日(月)23時35分50秒
|
棋譜解析によるレーティング推測 | Rira | 2015年 4月 7日(火)02時13分52秒
|
Re: 棋譜解析によるレーティング推測 | 山下 | 2015年 4月 7日(火)16時57分9秒
|
Re: 棋譜データの解析 | 山下 | 2015年 4月 7日(火)17時13分17秒
|
Re:Re: 棋譜データの解析 | コロ | 2015年 4月 7日(火)17時38分58秒
|
Re: deep learning の勉強 | HiraBot | 2015年 4月16日(木)11時48分30秒
|
Re: deep learning の勉強 | 山下 | 2015年 4月18日(土)01時54分44秒
|
Re: deep learning の勉強 | HiraBot | 2015年 4月18日(土)16時04分14秒
|
Re: deep learning の勉強 | 山下 | 2015年 4月19日(日)02時13分39秒
|
Re: deep learning の勉強 | gg | 2015年 4月20日(月)22時43分47秒
|
Re: deep learning の勉強 | HiraBot | 2015年 4月21日(火)08時44分9秒
|
CPUのスレッド数についての実験 | masatsune | 2015年 4月28日(火)00時35分13秒
|
順位順の星取表 | 山下 | 2015年 5月 6日(水)09時48分48秒
|
日経新聞の電王戦の記事 | 山下 | 2015年 5月 6日(水)11時48分21秒
|
Re: deep learning の勉強 | HiraBot | 2015年 5月 7日(木)07時17分22秒
|
Re: deep learning の勉強 | 山下 | 2015年 5月 7日(木)11時09分12秒
|
YSSの決勝でのログ | 山下 | 2015年 5月 7日(木)11時10分35秒
|
mizumonさんの選手権の棋譜解説 | 山下 | 2015年 5月 7日(木)11時12分2秒
|
Re:YSSの決勝でのログ | masatsune | 2015年 5月 8日(金)23時15分58秒
|
Re:YSSの決勝でのログ | 山下 | 2015年 5月 9日(土)05時17分37秒
|
CSA選手権の順位別記録 | 山下 | 2015年 5月 9日(土)05時21分28秒
|
CrazyStoneが金曜夜8時から囲碁クエストに | 山下 | 2015年 5月28日(木)15時14分21秒
|
下坂美織二段対 Zen の三子局於人工知能学... | gg | 2015年 6月 1日(月)01時30分5秒
|
CGOSの9路と19路が復活 | 山下 | 2015年 6月 6日(土)17時19分5秒
|
コンピュータ囲碁講習会のお知らせ | 山下 | 2015年 6月12日(金)06時48分52秒
|
Re:コンピュータ囲碁講習会のお知らせ | masatsune | 2015年 6月12日(金)17時18分34秒
|
Re:コンピュータ囲碁講習会のお知らせ | 山下 | 2015年 6月12日(金)22時59分20秒
|
Re:コンピュータ囲碁講習会のお知らせ | gg | 2015年 6月15日(月)11時48分29秒
|
Re:コンピュータ囲碁講習会のお知らせ | masatsune | 2015年 6月15日(月)22時33分29秒
|
囲碁NHK杯の形勢判断をするBot | 山下 | 2015年 6月19日(金)21時39分30秒
|
Chainer | shallow | 2015年 6月27日(土)07時07分58秒
|
日本神経回路学会主催セミナー「Deep Lea... | 山下 | 2015年 6月27日(土)15時35分32秒
|
Computer Olympiad 2015 Leiden | gg | 2015年 6月30日(火)15時49分48秒
|
Re: Computer Olympiad 2015 Leiden | 山下 | 2015年 7月 1日(水)00時12分19秒
|
Re: Computer Olympiad 2015 Leiden | gg | 2015年 7月 1日(水)00時28分25秒
|
Re: Computer Olympiad 2015 Leiden | gg | 2015年 7月 1日(水)00時34分27秒
|
Re: Computer Olympiad 2015 Leiden | gg | 2015年 7月 1日(水)00時49分6秒
|
Re: Computer Olympiad 2015 Leiden | 山下 | 2015年 7月 1日(水)15時29分5秒
|
Go1.c | masatsune | 2015年 7月 1日(水)22時47分55秒
|
Re: Go1.c | 山下 | 2015年 7月 2日(木)13時29分56秒
|
13x13 Go on CO Leiden | gg | 2015年 7月 2日(木)23時28分55秒
|
Re: 13x13 Go on CO Leiden | gg | 2015年 7月 3日(金)14時59分1秒
|
Re: 13x13 Go on CO Leiden | 山下 | 2015年 7月 3日(金)16時48分59秒
|
19x19 Go in CO Leiden | gg | 2015年 7月 4日(土)10時28分41秒
|
Re: 19x19 Go in CO Leiden | gg | 2015年 7月 4日(土)17時42分58秒
|
Re: 19x19 Go in CO Leiden | gg | 2015年 7月 4日(土)18時33分5秒
|
Re: 19x19 Go in CO Leiden | gg | 2015年 7月 4日(土)22時17分22秒
|
Re: 19x19 Go in CO Leiden | 山下 | 2015年 7月 4日(土)22時43分34秒
|
Re: 19x19 Go in CO Leiden | 山下 | 2015年 7月 4日(土)22時55分44秒
|
Re: 19x19 Go in CO Leiden | 山下 | 2015年 7月 4日(土)23時06分59秒
|
CGFオープン参加者募集 | 荒木(ark) | 2015年 7月 9日(木)00時46分24秒
|
世界の囲碁プロのレーティングを見れるサ... | 山下 | 2015年 7月16日(木)23時14分7秒
|
面白い現象 | masatsune | 2015年 7月17日(金)17時45分22秒
|
deep learning と MCTS の統合 | HiraBot | 2015年 7月18日(土)09時54分16秒
|
Re: 面白い現象 | 山下 | 2015年 7月19日(日)05時27分54秒
|
Re: deep learning と MCTS の統合 | 山下 | 2015年 7月19日(日)05時41分13秒
|
Re: 面白い現象 | masatsune | 2015年 7月19日(日)22時02分11秒
|
Re: deep learning と MCTS の統合 | HiraBot | 2015年 7月21日(火)23時38分11秒
|
Re: deep learning と MCTS の統合 | gg | 2015年 7月22日(水)01時15分33秒
|
Re: deep learning と MCTS の統合 | HiraBot | 2015年 7月22日(水)07時09分55秒
|
Re: deep learning と MCTS の統合 | 山下 | 2015年 7月23日(木)02時01分41秒
|
DCNN が学習しているのは | gg | 2015年 7月23日(木)14時41分2秒
|
Re: DCNN が学習しているのは | HiraBot | 2015年 7月27日(月)03時51分17秒
|
Re: deep learning と MCTS の統合 | gg | 2015年 7月28日(火)16時20分31秒
|
Hajin Lee (3p)さんとAyaが5子で対戦 | 山下 | 2015年 7月29日(水)23時16分20秒
|
FuzzIEEE2015 | gg | 2015年 8月 2日(日)12時03分59秒
|
Re: FuzzIEEE2015 | 山下 | 2015年 8月 3日(月)17時10分27秒
|
Re: FuzzIEEE2015 | gg | 2015年 8月 6日(木)16時14分29秒
|
History of Go Ratings | 山下 | 2015年 8月16日(日)23時13分16秒
|
台湾の8月31日のCIG2015でプロ3人とソフト... | 山下 | 2015年 8月22日(土)21時27分26秒
|
Re: 台湾の8月31日のCIG2015でプロ3人とソ... | 山下 | 2015年 8月31日(月)22時27分2秒
|
平塚の囲碁三段 vector で公開 | HiraBot | 2015年 9月 3日(木)20時13分51秒
|
再掲:CGFオープン参加者募集 | 荒木(ark) | 2015年 9月 6日(日)20時21分7秒
|
Re: 平塚の囲碁三段 vector で公開 | 山下 | 2015年 9月 7日(月)14時02分32秒
|
DetlefさんのDeep Learningを試してみました | 山下 | 2015年 9月 7日(月)14時03分38秒
|
Re:DetlefさんのDeep Learningを試してみ... | 荒木(ark) | 2015年 9月 9日(水)17時17分5秒
|
Re:DetlefさんのDeep Learningを試してみ... | 山下 | 2015年 9月 9日(水)19時56分34秒
|
KGSのSlow大会はabakusが優勝 | 山下 | 2015年 9月 9日(水)20時14分42秒
|
予測率 | HiraBot | 2015年 9月10日(木)08時55分32秒
|
予測率追加データ | HiraBot | 2015年 9月11日(金)11時43分26秒
|
Re: 予測率追加データ | 山下 | 2015年 9月11日(金)17時38分3秒
|
Re: 予測率追加データ | HiraBot | 2015年 9月12日(土)01時11分55秒
|
日本ルールへの対応 | 山下 | 2015年 9月13日(日)14時44分35秒
|
平塚の囲碁ダウンロード不可 | tss | 2015年 9月13日(日)14時46分35秒
|
Re:平塚の囲碁ダウンロード不可 | うさぴょんの育ての親 | 2015年 9月13日(日)14時53分11秒
|
Re:平塚の囲碁ダウンロード不可 | tss | 2015年 9月13日(日)15時18分10秒
|
Detlefさんの学習データをAyaに組み込んで... | 山下 | 2015年 9月18日(金)17時40分19秒
|
Re: Detlefさんの学習データをAyaに組み込... | HiraBot | 2015年 9月19日(土)01時24分11秒
|
Re: Detlefさんの学習データをAyaに組み込... | 山下 | 2015年 9月19日(土)03時25分33秒
|
Re: Detlefさんの学習データをAyaに組み込... | HiraBot | 2015年 9月19日(土)06時24分44秒
|
HiraBot の改良 | HiraBot | 2015年 9月19日(土)10時15分34秒
|
GPU 速度測定 | HiraBot | 2015年 9月19日(土)11時15分34秒
|
Re: GPU 速度測定 | 山下 | 2015年 9月20日(日)06時20分20秒
|
Re: GPU 速度測定 | gg | 2015年 9月20日(日)22時12分16秒
|
25路盤ロボット | HiraBot | 2015年 9月29日(火)06時58分42秒
|
Re: 25路盤ロボット | 山下 | 2015年 9月29日(火)09時50分9秒
|
Re: 25路盤ロボット | gg | 2015年 9月29日(火)10時07分48秒
|
Re: 25路盤ロボット | HiraBot | 2015年 9月29日(火)10時54分29秒
|
CGFオープンが10月3日、4日に電通大で開催... | 山下 | 2015年 9月29日(火)17時49分11秒
|
CGFオープン | masatsune | 2015年 9月30日(水)13時24分51秒
|
Re:CGFオープン | 荒木(ark) | 2015年 9月30日(水)15時19分39秒
|
Re: CGFオープン | 山下 | 2015年 9月30日(水)16時57分41秒
|
Re: 25路盤ロボット | gg | 2015年 9月30日(水)20時22分53秒
|
Re: 25路盤ロボット | HiraBot | 2015年 9月30日(水)20時55分47秒
|
Re: 25路盤ロボット | gg | 2015年10月 1日(木)00時28分28秒
|
Re: 25路盤ロボット | HiraBot | 2015年10月 1日(木)01時55分36秒
|
CGFオープン結果 | 荒木(ark) | 2015年10月 4日(日)22時51分51秒
|
コンピューター将棋「目的達した」終了宣... | 山下 | 2015年10月10日(土)18時22分4秒
|
Re:コンピューター将棋「目的達した」終... | masatsune | 2015年10月10日(土)19時08分57秒
|
Re:コンピューター将棋「目的達した」終... | gg | 2015年10月11日(日)18時25分24秒
|
ニューラルネット | HiraBot | 2015年10月13日(火)10時53分44秒
|
Re: ニューラルネット | 山下 | 2015年10月14日(水)01時53分32秒
|
Re: ニューラルネット | nlp | 2015年10月14日(水)05時41分45秒
|
Re: ニューラルネット | HiraBot | 2015年10月14日(水)06時59分6秒
|
Re: ニューラルネット | nlp | 2015年10月14日(水)07時19分30秒
|
24のレーティングのインフレ実験 | 山下 | 2015年10月15日(木)23時18分26秒
|
Re:24のレーティングのインフレ実験 | masatsune | 2015年10月16日(金)00時14分59秒
|
Re: 24のレーティングのインフレ実験 | 山下 | 2015年10月17日(土)00時39分32秒
|
Re: ニューラルネット | HiraBot | 2015年10月17日(土)11時46分29秒
|
レーティングのインフレ | kappaiota | 2015年10月18日(日)10時36分37秒
|
GTP2NNGSでのGoGuiの使用 | nlp | 2015年10月18日(日)12時56分1秒
|
Re: レーティングのインフレ | 山下 | 2015年10月18日(日)23時23分9秒
|
Re: GTP2NNGSでのGoGuiの使用 | 山下 | 2015年10月18日(日)23時33分50秒
|
Re: GTP2NNGSでのGoGuiの使用 | nlp | 2015年10月19日(月)03時52分7秒
|
千田5段のNHK杯の自戦記が熱いです | 山下 | 2015年10月21日(水)23時25分27秒
|
コンピュータ将棋のアルゴリズム HTML版 | 山下 | 2015年10月22日(木)23時58分16秒
|
ブラウザ将棋アプリ | Osamu | 2015年10月25日(日)11時03分37秒
|
Re: ブラウザ将棋アプリ | 山下 | 2015年10月25日(日)22時52分23秒
|
Re:ブラウザ将棋アプリ | Osamu | 2015年10月26日(月)05時31分1秒
|
Re: ニューラルネット | HiraBot | 2015年10月26日(月)11時20分25秒
|
大阪、新世界の将棋道場「王将」が閉店 | 山下 | 2015年10月28日(水)01時13分43秒
|
Re: ニューラルネット | HiraBot | 2015年10月29日(木)20時17分30秒
|
Re: ニューラルネット | 山下 | 2015年10月30日(金)17時25分20秒
|
Re: ニューラルネット | HiraBot | 2015年11月 6日(金)00時57分43秒
|
Re: ニューラルネット | shallow | 2015年11月 7日(土)15時46分35秒
|
Re: ニューラルネット | HiraBot | 2015年11月 7日(土)22時55分31秒
|
Re: ニューラルネット | shallow | 2015年11月 8日(日)05時28分41秒
|
Re: ニューラルネット | HiraBot | 2015年11月 8日(日)11時50分44秒
|
Re: ニューラルネット | shallow | 2015年11月 8日(日)13時10分43秒
|
Re: ニューラルネット | shallow | 2015年11月 8日(日)13時55分15秒
|
Re: ニューラルネット | HiraBot | 2015年11月 8日(日)18時39分42秒
|
Re: ニューラルネット | shallow | 2015年11月 9日(月)00時40分46秒
|
Re: ニューラルネット | HiraBot | 2015年11月 9日(月)07時40分30秒
|
Re: ニューラルネット | shallow | 2015年11月10日(火)00時58分31秒
|
Re: ニューラルネット | HiraBot | 2015年11月10日(火)10時28分35秒
|
Re: ニューラルネット | shallow | 2015年11月11日(水)01時46分40秒
|
Re: ニューラルネット | HiraBot | 2015年11月11日(水)08時27分58秒
|
Re: ニューラルネット | shallow | 2015年11月12日(木)02時25分48秒
|
Re: ニューラルネット | HiraBot | 2015年11月12日(木)07時52分7秒
|
CGOSを動かしてみました | 山下 | 2015年11月12日(木)14時47分21秒
|
UEC杯の締め切りは12月10日まで | 山下 | 2015年11月12日(木)14時50分56秒
|
Re: ニューラルネット | shallow | 2015年11月13日(金)01時15分58秒
|
北京の大会はDolBaramが優勝 | 山下 | 2015年11月14日(土)12時45分51秒
|
Re: 北京の大会はDolBaramが優勝 | 荒木(ark) | 2015年11月14日(土)15時04分46秒
|
Re: 北京の大会はDolBaramが優勝 | 山下 | 2015年11月14日(土)16時53分38秒
|
CGOS | HiraBot | 2015年11月14日(土)20時23分26秒
|
Re: CGOS | 山下 | 2015年11月15日(日)07時52分35秒
|
Re: 北京の大会はDolBaramが優勝 | 山下 | 2015年11月15日(日)10時51分10秒
|
Re: 北京の大会はDolBaramが優勝 | 山下 | 2015年11月15日(日)11時50分22秒
|
Re: 北京の大会はDolBaramが優勝 | 荒木(ark) | 2015年11月15日(日)12時24分15秒
|
Re: 北京の大会はDolBaramが優勝 | 荒木(ark) | 2015年11月15日(日)18時24分4秒
|
Re: 北京の大会はDolBaramが優勝 | 山下 | 2015年11月15日(日)18時29分19秒
|
Re: CGOS | HiraBot | 2015年11月16日(月)01時39分8秒
|
Facebookの囲碁AI | 山下 | 2015年11月24日(火)13時39分5秒
|
Re: Facebookの囲碁AI | 山下 | 2015年11月24日(火)15時04分20秒
|
囲碁のFloodgate? | 通りすがり | 2015年11月24日(火)23時43分37秒
|
Re: Facebookの囲碁AI | gg | 2015年11月25日(水)00時20分35秒
|
Re: Facebookの囲碁AI | HiraBot | 2015年11月25日(水)00時59分17秒
|
Re: Facebookの囲碁AI | 山下 | 2015年11月25日(水)01時17分38秒
|
Re: 囲碁のFloodgate? | 通りすがり | 2015年11月25日(水)06時39分47秒
|
floodgateの2リーグ制について | ミルショー | 2015年11月25日(水)07時52分1秒
|
Re: 囲碁のFloodgate? | gg | 2015年11月25日(水)11時57分5秒
|
Re: 囲碁のFloodgate? | 通りすがり | 2015年11月25日(水)21時08分23秒
|
Re: Facebookの囲碁AI | 山下 | 2015年11月26日(木)11時49分29秒
|
Re: Facebookの囲碁AI | gg | 2015年11月26日(木)13時49分8秒
|
ponanGO参戦! | osera | 2015年11月27日(金)00時41分24秒
|
Re: ponanGO参戦! | 山下 | 2015年11月27日(金)09時21分22秒
|
Re: Facebookの囲碁AI | 山下 | 2015年11月27日(金)09時27分9秒
|
DolBaramが韓国の新聞記事に | 山下 | 2015年11月27日(金)10時02分39秒
|
Re: ponanGO参戦! | masatsune | 2015年11月27日(金)11時41分12秒
|
Re: Facebookの囲碁AI | gg | 2015年11月27日(金)21時21分3秒
|
(無題) | 通りすがり | 2015年11月27日(金)23時15分42秒
|
囲碁ソフトの作り方 | 山下 | 2015年11月28日(土)18時47分16秒
|
RE: 囲碁ソフトの作り方 | 通りすがり | 2015年11月28日(土)19時21分57秒
|
Re: 囲碁ソフトの作り方 | gg | 2015年11月28日(土)21時26分36秒
|
re:(無題) | masatsune | 2015年11月28日(土)22時07分34秒
|
Re: 囲碁ソフトの作り方 | 山下 | 2015年11月28日(土)23時48分43秒
|
Re: 囲碁ソフトの作り方 | 通りすがり | 2015年11月29日(日)10時31分7秒
|
おすすめの囲碁ソフト | 通りすがり | 2015年11月29日(日)21時26分54秒
|
Re: おすすめの囲碁ソフト | 山下 | 2015年11月30日(月)13時17分29秒
|
gtpモードでのコミ変更について。 | masatsune | 2015年11月30日(月)19時09分7秒
|
Re: gtpモードでのコミ変更について。 | 山下 | 2015年11月30日(月)23時01分20秒
|
Re: gtpモードでのコミ変更について。 | masatsune | 2015年11月30日(月)23時44分11秒
|
Re: おすすめの囲碁ソフト | 黒猫 | 2015年12月 2日(水)21時36分58秒
|
Re: おすすめの囲碁ソフト | 通りすがり | 2015年12月 3日(木)22時28分54秒
|
Re: おすすめの囲碁ソフト | 山下 | 2015年12月 4日(金)20時52分33秒
|
囲碁の評価値に関して | 通りすがり | 2015年12月 4日(金)21時09分43秒
|
Re: 囲碁の評価値に関して | 山下 | 2015年12月 5日(土)11時26分11秒
|
Re: 囲碁の評価値に関して | 通りすがり | 2015年12月 5日(土)14時12分45秒
|
Re: 囲碁の評価値に関して | gg | 2015年12月 6日(日)09時08分4秒
|
Pachiについて | 通りすがりの人 | 2015年12月 7日(月)14時40分20秒
|
Re:Pachiについて | 荒木(ark) | 2015年12月 8日(火)14時25分59秒
|
(無題) | 通りすがりの人 | 2015年12月 8日(火)15時06分54秒
|
Re: | 荒木(ark) | 2015年12月 8日(火)19時48分36秒
|
3月のUEC杯の締め切りは明日10日まで | 山下 | 2015年12月 9日(水)12時33分16秒
|
Re: Pachiについて | 通りすがりの人 | 2015年12月 9日(水)22時44分2秒
|
Re:Re: Pachiについて | 通りすがりの人(Pachi) | 2015年12月10日(木)13時26分6秒
|
(無題) | 通りすがりの人(Pachi) | 2015年12月10日(木)13時51分44秒
|
手の位置 y の位置情報など | 通りすがりの人 | 2015年12月10日(木)15時37分50秒
|
第9回UEC杯コンピュータ囲碁大会 | tss | 2015年12月10日(木)20時24分25秒
|
Re 第9回UEC杯コンピュータ囲碁大会 | masatsune | 2015年12月11日(金)01時44分23秒
|
Re: | 通りすがりの人(Pachi) | 2015年12月11日(金)13時29分38秒
|
掲示板からホームページのリンクが切れて... | tss | 2015年12月11日(金)23時26分12秒
|
Re: 掲示板からホームページのリンクが切... | 山下 | 2015年12月12日(土)01時16分37秒
|
tree_node 構造体の手の位置の情報 | 通りすがりの人 | 2015年12月12日(土)06時21分52秒
|
Re: tree_node 構造体の手の位置の情報 | 通りすがりの人 | 2015年12月12日(土)13時10分6秒
|
Re: | 通りすがりの人(Pachi) | 2015年12月12日(土)16時51分28秒
|
Pachi の uct_playout | 通りすがりの人 | 2015年12月12日(土)23時20分48秒
|
Re: Pachi の uct_playout | 通りすがりの人(Pachi) | 2015年12月13日(日)16時22分12秒
|
Re: Pachi の uct_playout | 通りすがりの人 | 2015年12月14日(月)00時08分32秒
|
Re: Re: Pachi の uct_playout | 通りすがりの人(Pachi) | 2015年12月14日(月)11時50分24秒
|
(無題) | 終わり? | 2015年12月14日(月)19時05分1秒
|
(無題) | 通りすがりの人(Pachi) | 2015年12月17日(木)14時30分16秒
|
Pachiについて | 通りすがりの人(Pachi) | 2015年12月17日(木)16時08分52秒
|
(無題) | 通りすがり | 2015年12月17日(木)16時51分39秒
|
(無題) | 通りすがりの人(Pachi) | 2015年12月18日(金)11時50分54秒
|
追記 | 通りすがりの人(Pachi) | 2015年12月18日(金)12時03分45秒
|
(無題) | 通りすがりの人(Pachi) | 2015年12月18日(金)15時10分9秒
|
CGI1362m_D54_1c | gg | 2015年12月19日(土)13時45分15秒
|
Re: CGI1362m_D54_1c | 山下 | 2015年12月19日(土)14時38分28秒
|
Re: CGI1362m_D54_1c | gg | 2015年12月20日(日)13時17分1秒
|
Re: CGI1362m_D54_1c | 山下 | 2015年12月20日(日)19時25分21秒
|
Caffeでスレッドごとに割り当ても速くはな... | 山下 | 2015年12月20日(日)21時39分25秒
|
Re: Caffeでスレッドごとに割り当ても速く... | gg | 2015年12月21日(月)06時39分29秒
|
(無題) | 通りすがりの人(Pachi) | 2015年12月22日(火)14時42分23秒
|
The Go program terminated unexpectedly. | 通りすがりの人2 | 2015年12月22日(火)16時09分19秒
|
NHKのニュース | auau | 2015年12月23日(水)20時17分30秒
|
13路盤プロアマトーナメント | gg | 2015年12月23日(水)21時54分54秒
|
9路か13路か | masatsune | 2015年12月24日(木)12時15分5秒
|
Re:9路か13路か | 荒木(ark) | 2015年12月24日(木)13時09分0秒
|
Re:9路か13路か | masatsune | 2015年12月24日(木)23時17分49秒
|
playout数だけを増やしてもいまいち? | 山下 | 2015年12月25日(金)21時54分13秒
|
GTX 980での速度 | 山下 | 2015年12月26日(土)20時41分1秒
|
cuDNNを入れてみました | 山下 | 2015年12月27日(日)04時17分22秒
|
囲碁クエストの9路、13路の棋譜 | 山下 | 2015年12月27日(日)12時11分0秒
|
まだ対局は続いています。
ツツカナの評価は+969で後手の森下さん優勢ですが、
ここから勝ちきるにはまだまだ時間がかかりそうです。
疲労との戦いになりそうですが何とか勝ちきってほしいです。
5時半で指し掛け(封じ手)になりました.
大晦日の森下卓vsツツカナの▲9四歩(109)。不可解な手でした。
別アングル2でツツカナの予想手を見ていると直前までは▲9一角成を読んでおり、
△6五桂の着手後は▲2五歩そして▲1四歩を読んでいるのですが・・・
ツツカナに何が起きたのか何らかの推測が可能でしょうか?
YSSに解析させたのですが▲9一角成で+700の評価(7手読み)が時間をかけると+150程度(16手読み)まで
下がっていくので地平線効果で▲9四歩は指してしまったようにも思えます。
ご解析ありがとうございます。
ちなみにYSSから見ると▲9四歩の代わりに何が最善手なのでしょうか?
またどのあたりから形勢が後手持ちになるのでしょうか?
YSSの形勢判断グラフは下のような感じです。
http://www.yss-aya.com/moritutu2014yss.png
▲94歩を△同歩と取った手から後手有利に変わっています。
ただ、97手目の▲79玉あたりから評価値が上がりきらずに下がってますので
ソフトの評価関数の判断がこのあたりを「良し」とと思ってたのが間違っていた
のかもしれません。
> YSSから見ると▲9四歩の代わりに何が最善手なのでしょうか?
2コアで10分ほど考えさせると18手の深さで▲2五歩、評価値は+468でした。
ただ難しい局面のようで深さ10から18までで、
▲2五歩、▲9一角成、▲5四角、▲1四歩、▲4一角
と5種類にころころと変わります。
HIDETCHIさんが作られた「局面ぺディア」が面白いです。
平手の局面から「Go」を押すことで、各局面の手の候補手と勝敗数が表示されます。
http://kyokumen.jp/positions/1
角換わり腰掛銀の基本局面には解説も付いています。
http://kyokumen.jp/positions/647
棋譜は81DojoとFloodgateの棋譜が入っているようです。
特定の局面を指定するには柿木形式の盤面を作って
後手の持駒:角
9 8 7 6 5 4 3 2 1
+---------------------------+
|v香v桂v銀v金v玉v金 ・v桂v香|一
| ・v飛 ・ ・ ・ ・ ・v銀 ・|二
|v歩v歩v歩v歩v歩v歩 ・v歩v歩|三
| ・ ・ ・ ・ ・ ・v歩 ・ ・|四
| ・ ・ ・ ・ ・ 角 ・ ・ ・|五
| ・ ・ 歩 ・ ・ ・ ・ ・ ・|六
| 歩 歩 ・ 歩 歩 歩 歩 歩 歩|七
| ・ ・ ・ ・ ・ ・ ・ 飛 ・|八
| 香 桂 銀 金 玉 金 銀 桂 香|九
+---------------------------+
先手の持駒:なし
手数=5 ▲4五角打 まで
こちらで sfen に変換して (手番を正しく指定する必要があります)
http://sfenreader.appspot.com/
lnsgkg1nl/1r5s1/pppppp1pp/6p2/5B3/2P6/PP1PPPPPP/7R1/LNSGKGSNL w b 5
この文字列を「局面検索」の「SFEN検索」に貼り付けます。
局面ぺディア
http://kyokumen.jp/
紹介twitter
https://twitter.com/HIDETCHI/status/552975062144667649
逆順での棋譜解析や、指定場所からの棋譜解析、複数候補の検討等に対応しており欲しい機能はほぼ実装されています。
これで、GPSFishとWIndowsの相性がよければ、完璧なのですが。
やはり、長時間の思考では、思考エンジンが落ちます。(ShougiGUIの問題ではないです。)
ハッシュメモリ確保(実行時の拡張?)に失敗するのでしょうか?
Windows起動直後や、思考実行前にメモリ開放プログラムを実行すると、落ちにくいです。
荒木です。
UEC杯の参加申し込みが始まっております。
http://jsb.cs.uec.ac.jp/~igo/
今回はDeepLearningを使った囲碁ソフトとかも参加してくるかもしれませんね。
コンピュータ囲碁のプログラム同士を対戦させるCGOSが
13路だけですが、昔のサーバで動いています。
作者のDon Daileyさんが残念ながら亡くなられたので2年ほど止まっていました。
13路
http://cgos.boardspace.net/13x13/standings.html
CGOS
http://cgos.boardspace.net/
お忘れの方はお早目に。
http://www.computer-shogi.org/wcsc25/
私もまだでしたけど。
HiraBot を改良して 1d で playout 120000 の時の勝率が 67% から 76% に成りました
そこで新しいアカウント(HiraMC1)で 2d を目指したところ 2d には成ったのですが
すぐに負けが込んでまた 1d に戻りそうな状況です 76% の勝率では上の段位に上るのは
むつかしいようです。
今年の ICGA Event (Computer Olympiad など) の日程が 6/29〜7/5 に決まりました.
場所はオランダの Leiden です.なお,ACG2015 の投稿締切りは 3/1です.
http://icga.leidenuniv.nl/
> アカウント(HiraMC1)で 2d を目指したところ 2d には成ったのですが
3dにほとんど近いのではないでしょうか?
http://www.gokgs.com/graphPage.jsp?user=HiraMC1
かなり追いつかれてきてUEC杯が楽しみ(不安?)です。
ソースを拝見させていただいたのですが
UCB_RAVE = beta*RAVE + (1-beta)*UCB
この形になってますが、MM法で計算した手のレーティング値(gamma)を
下のように足すことでAyaでは+100Eloほどの改善がありました。
UCB_RAVE = beta*RAVE + (1-beta)*UCB + G*log(1+gamma)*sqrt( K / (K + n));
[Computer-go] Congratulations to AyaMC!
http://computer-go.org/pipermail/computer-go/2014-November/006956.html
http://computer-go.org/pipermail/computer-go/2014-December/006992.html
> 登録者は海外も含め3万人を超え、1日あたり3000人が利用する。
楽しみです。
NHK囲碁フォーカス 2/15 話題沸騰!囲碁対局無料アプリ」
http://cgi2.nhk.or.jp/goshogi/igofocus/
OCNがホームページサービスを2月28日で終了するため下記に移行しました。
http://www.yss-aya.com/index_j.html
山下様、貴重な情報を有難うございました、さっそく試してみます。
話は変わりますが,Computer Go メーリングリストの
"perhaps bug, HiraBot2 on KGS today" のスレッドは読まれました?
Wolfgang さんからメールが来ていたので
HiraBot2 の形勢がわるくて ダメとツギの両方打つ必要があったと返事しておきました。
KGS アカウント HiraMC1 と HiraMC2 が 2d で落ち着いてきたので
"平塚の囲碁 〜二段への道〜" を vector で公開しました
以前のバージョンでは playout を大きくしても強くならなかったので
playout が大きい場合についてチューニングした上で playout 数を
増やしました、playout 数 15000 で 1d、120000 で 2d です
GPS将棋の竹内さんが書かれたリンク集が充実してます。
最初に紹介されている2012年のゲーム情報学特集が面白かったです。
この掲示板も紹介されています。
「私のブックマーク」ゲームプログラミング(将棋を中心に)
http://www.ai-gakkai.or.jp/my-bookmark_vol30-no2/
電王戦FINALに向けて5分ほどの動画がたくさん公開されているのですが、
下の勉強会によると、今回参加する4つのソフトは定跡を5%ぐらいの確率で使わずに
自力で考える対策が入っているようです。
研究がやっかいになるので対人間対策としてはかなり有効そうです。
【電王戦FINALへの道】#38 電王戦勉強会
http://www.nicovideo.jp/watch/1423032968
リンク先の内容楽しむ事ができました。有難うございます。
特に、永瀬-Selene 戦は興味深かったです。
持ち時間が短いほと、定跡を使わない確率を高くすると完璧ですね。
今回の電王戦の規定では、許されていないのでしょうか。
ちょっと、姑息な気もしますが。
プロ棋士の太田亮初段に「銀星囲碁15」が挑戦する3番勝負が
ネット対局場「サンサン」で行われ、
第1局は銀星が中押し勝ちした、とのことです。
ネット対局所「サンサン」
http://www.sansan.co.jp/
太田亮初段
http://kansaikiin.jp/kisi_prof/otaryou.html
2局目は太田初段の中押し勝ちだそうです
deep learning の勉強を始めようと思い
linux マシン(ubuntu 14.04) に caffe をインストールしました
適当なサンプルプログラムで CPU と GPU の速度を比較しました
CPU は i7-3770kx4.2GHz, GPU は GTX-670 です
CPU で 49分かかるトレーニングが GPU では 3分20秒で終わりました
14倍の速度です deep learning では GPU が必須のようです
caffe では CPU 処理はシングルスレッドで処理しているようです。
14倍も違うのですか。
ただ仮に12スレッドで動けばぎりぎり同じくらいの速度になるのかな、とも思いました。
貴重な情報ありがとうございました。
deep learning の勉強を始めました
単純な8層 CNN で 約1000局のトレーニングデータで
12epoch のトレーニングに 15時間かかりました
次の一手の予測精度は 4% 程度で良くありません
データは数万局から数10万局使用するのが普通のようですが
1万局でも 1週間かかることになりどうしようか考えています。
4%というのは流石に悪過ぎます
何か間違っている可能性が高いかと
棋譜を少なくしてちゃんと学習しているか確認しては?
gg さんコメント有難うございます
5000局のデータを流しましたので結果を確認して考えます
3日くらいかかる予定です。
念の為に書いておきますが,棋譜が少ないほど(学習データに対する)予測率は高くなります
4%というのがどちらか分かりませんが,100棋譜程度で学習させて予測率が90%位に届かないようなら
特徴が足りないかどこかバグってると考えた方が良いでしょう
尚,Remiの手法でも特徴を増やせば45%以上の予測率を得ることはできます
更に,Factorization Machineのアイデアを使えば二つの特徴の積も学習できますから
囲碁ソフトにGPUを使っても凄〜く遅いDCNNを使うのが良いかは(個人的にはかなり)疑問です
5M手(約5000局)のデータが出ました、予測率 12.8%となりました
caffe では学習とテストで異なるデータセットを使っているので
データセットを小さくしても予測率は良くなりません
直前手やシチョウなどの特徴データを一切使用しないで
局面だけ与えてのこの予測率は結構良いのではないかと思います
下記のようにデータを増やすと順調に予測率が増大しています
この表から 20M手に増やすと予測率 30%が期待できそうです。
手数 予測率 学習回数 学習時間
200K 0.9% 4epoch 1時間
1M 4% 12epoch 15時間
5M 12.8% 4epoch 1日
時間はかかりますが面白そうです。情報ありがとうございます。
CrazyStoneのRemiもGPUで試しているそうで、私もやってみようかと思ってます。
Oakformの作者は直前手の情報を入れると44%から52%に上がったそうですが
強くはならなかったようです。
http://files.gokgs.com/games/2015/3/3/AyaMC-CrazyStone.sgf (コメントの中で)
MM法とDCNNでは予測率が同じくらいだとしても、
トップの手だけを打ったときの強さは多分、DCNNの方がかなり強く、
予測の性質がかなり違うのかな、とも思ってます。
問題は実行時の遅さです.現状,とても実用にはなりません
#Google辺りが専用ASICを作ってくれれば解決するかも
DCNNはその名の通り,convolution+sigmoidをベースにしているので特徴の非線形な組み合わせを学習してくれるのが
最大のメリットで,予測の性質と言うのはこの辺りに関係した話です
#FMが出てCNNの専売特許ではなくなりましたが
#今のアーキテクチャでは特徴を一つ追加する度にどんどん遅くなるのも問題点の一つです
なお,予測率が上がっても強くならないというのは,多分値の使い方が悪いのでしょう
nicego19n では CNN の計算時間が
GPU 使用で 1.6ms とのことなので
ぎりぎりで許容範囲に入っていると思えます。
今年の電王手くんは駒を吸い付けるのではなく、ちゃんと挟んで持ち上げるように
ヴァージョンアップしています。
駒を成るときのひっくり返す動作も実現していて、動画を見るとかなり複雑な機構になっているようです。
最初は男の子から女の子版になったのか、と思っていたのですが、ぜんぜん違いました。
進化した「電王手さん」将棋電王戦FINALに参戦
http://www.nicovideo.jp/watch/1425450561
現状 1コア辺り 1 kpo/s が一つの目安とすると 1.6 ms では 4コア(共有)位まででしょうか
i7 の最上位が 8コアの時代ですし,トップクラスは 20コア位使ってますからねぇ
まぁ何だかんだ言っても最終的に強くなれば正義なんですが
#市販を考えるなら高性能な GPU 必須というのは余り嬉しくない.ノートPCの人も多いし
投機実行とかポンダリングの工夫とか,私が思いつくアイデアは Aja にも伝えましたが
DCNN を使えば直ぐにトップレベルに追い付くという様なものではないと思われます
20M手(約2万局)のデータが出ました、予測率 13.9%となりました
予想よりかなり小さいのですがネット構成を修正してテストしながら
得られた caffemodel を使う作業に掛ろうと思います
うまくいけば deep learning で囲碁の対局が出来ると思います。
手数 予測率 学習回数 学習時間
200K 0.9% 4epoch 1時間
1M 4.0% 12epoch 15時間
5M 12.8% 4epoch 1日
20M 13.9% 2epoch 2日
ネットの構成を工夫する事で予測率が 13.9%から 27%と倍増しました
caffemodel を使う作業は難航していますが先読みなしの囲碁プログラムを作り
gnugo と対局させる事が出来ました gnugo には負けますが碁らしく見えるようになりました
http://files.gokgs.com/games/2015/3/10/GnuGoBot38-WeakBot-2.sgf
caffemodel を使う作業は順調に進み独自プログラムで
DCNN 計算が出来るようになった(windows でも使える!!!)
速度は cpu処理 1thread で 110ms かかった
8thread AVX命令使用にて 7ms と許容しがたい遅さです
やはり GPU が必要です。
問題は予測率の向上にあります、現状は 27% 程度で
足踏みしています。
Windowsでも動くのですか。Linux必須かと思ってました。
Ajaの論文では128局面を一括処理するのに0.15秒、
実質1局面では0.001秒(1ms)なので毎秒1000〜3万playoutなら
ノードの作成は遅れはあるものの、なんとかなるのかな、という印象でした。
汎用ライブラリを囲碁専用とかにすれば速度はもっと上がる気はするのですが。
Windows で動かすために caffe を全く使わずに(caffemodel のみ使用して)
独自のプログラムで動かしました
遅いのはそのせいかもしれません。
Aja達のは一番速いGPUを4台使った速度ですから
真似するのはかなり大変でしょう#お金も発熱も
おお、久しぶりに見ましたら、Deep Learningで盛り上がってますね。
囲碁は超初心者ですが、趣味でCaffeを動かしているので、そちらは多少知っています。
Caffeは、Linux版が最新なので無難ですが、第三者が Windows インストール版をGitHub公開していたりするので、インストールは可能です。
ご存知かわかりませんが、NVIDIAが、cuDNN というDNN専用のライブラリを公開していてこれを利用すると、場合によっては2倍程度速くなります。
Intel系の Hyper-Threading Technologyの使えるCPUでは、スレッド数の設定を、論理コア数ではなく、実コア数に設定する方が良いという話を良く聞きます。
たとえは、Ponanzaが出た時のやねうら王氏のブログや、woodyring氏のAperyメモ等。
ただ、当方の環境では、たとえば、i7-4770 では、スレッド数を8にした方が、多くの場合、読みの速度(nodes/sec)が大きくなります。
BonanzaV6では、スレッド数7と8では大きな差はなく、飽和している様に見えますが、4よりは7か8の方が nodes/sec の数値は大きくなります。
また最近公開された Apery でも、スレッド数8の方がスレッド数4の場合に比べて nodes/sec の値が大きくなり、スレッド数7と8を比べても飽和している様にはみえません。
1)もし、4スレッドの方が良い設定だとすると、8スレッド時の nodes/sec の表示には、無駄な読みが含まれるという事になるのでしょうか。
2)それとも、単純に、nodes/sec の大きな設定が良い設定なのでしょうか。
3)”実コア数に設定するべき”というのは、4 channel メモリのようなメモリ帯域の大きなM/B での話なのでしょうか。
詳しい方がおられましたら、コメントをいただきたく。
よろしくお願いします。
> 8スレッド時の nodes/sec の表示には、無駄な読みが
ご指摘の通りにスレッド数を増やすと無駄な探索も増えていきます。
そのため、1スレッドで 10000 nps と 2スレッドで 10000 nps では
1スレッドの方が強くなります。
HTでの高速化は1.2倍程度しかならないので、並列化の効率の悪さの方が大きいです。
αβ法を使う将棋ソフトではスレッド数が異なる場合にはnpsの大きさだけで
棋力を比較はできないです。同じスレッド数でしたらnpsは大きいほうが強いです。
> ”実コア数に設定するべき”
HTによる高速化が小さいためで、メモリ帯域はあまり関係ないと思います。
山下様
ご回答有難うございます。当方の環境では、AperyBMI2.exe、10局面の平均で、
4Threads => 3825 NPS
8Threads => 4811 NPS
でした。約1.26倍違いますが、このくらいだと、4thread の方が良いということですね。
すっきりしました。
予測率が 32.5% になり gnugo に初めて勝ちました
http://files.gokgs.com/games/2015/3/30/WeakBot-GnuGoBot38.sgf
記念にプログラムを公開します
http://kiyoshifk.dip.jp/kiyoshifk/apk/DCNN-igo.zip
ただし AVX 命令を使用しているので AVX 命令が使える機種でなければ動きません
URL が間違っていたので修正しました。
予測率 34.5% の deep learning 囲碁に定石データベースを組み合わせて
KGS で運用しています、現在 6k です
7ms で 6k の手が得られるので利用価値があると思います
KGS のアカウントは DCNNigo です応援してやってください。
7msで6kはすごいです。
Ayaは予測率38.8%でGNU Goに勝率6%程度、たぶん11kぐらいじゃないかと思います。
DCNNは予測率は低くてもMM法で計算した予測率よりもはっきり強いのが不思議です。
想像ですが、
局所的な戦いではAyaの予想精度の方が高い。
DCNNは、盤面を広くみたときは高い。
で、棋力に大きく影響するのは盤面を広くみることなのかもしれません。
無知を覚悟で質問します。
最近の放送を機にコンピュータ囲碁への興味が出て来まして、
プログラムを学ぼうという気持ちがふつふつと芽生えたのですが、
わからないことだらけで困ってます。
特にわからないのが、どのようにして棋譜などのデータを取り入れ、解析しているのかということです。
プロの棋譜や定石のデータは、基本的にgokifuなどのサイトから取れるということはわかるのですが、プログラムの周辺知識など皆無の人間のためデータ解析に関してまるでわかっていないという状況です。
細かい部分は、実際に棋譜自体を目でみていると想像していますが、そのほかの統計的なデータ
(たとえば、目外しが実践でどの程度使われているのか、などといった大量のデータからわかるもの)は、どのようにして抽出しているのでしょうか?
やはり、丁寧に手作業でファイルを読み込んでいるのでしょうか?
浅はかな質問でありましたら申し訳ありません。
逆だと思いますよ
DCNNはその名前の通り (localな) convolutionを何段も重ねる形なので
ローカルな手をより正確に再現できるはずです
その結果,死活や攻め合いなどの狭いエリアでの攻防に関して有利になっていると思います
また相手を切り離したり封鎖するのも得意だろうと推測できます
GNU Go相手の場合,これらが非常に有効に働いているのでしょう
コロさんが考えているような解析は(多分ほとんどの開発者は)やっていません
既存の棋譜の解析に関連するものとして広く行われているのは,
強い人が打った手をできるだけ再現するような (静的な)評価関数を機械学習する手法で
move predictionと呼ばれています
小生が翻訳したRemiの論文が参考になるかも
http://www.geocities.jp/hideki_katoh/MMGoPatternsJ.zip
重要なことを書き忘れました
RemiのBTモデルとの比較では非線形性(複数の特徴の組み合わせ)の有無が大きな差です
これによって線形モデルでは表せないレベルの再現性が得られています
#Zenは以前から複数の特徴の組み合わせを使ってます(尾島さんが手作業で取捨選択)
逆に言うと,非線形性を導入したBTモデルであれば同等の能力を持ち得るということです
棋譜を取り込む作業もソフトが行っています。
1万棋譜をメモリに全部取り込んでしまってから、
「目はずし」が何回打たれたか、はソフトが数えてくれます。
これは,そういう(市販)ソフトがあるという話?
それとも自分で作ったプログラムでしょうか?
また,この結果を囲碁ソフトの開発に利用しているのでしょうか?
#定石とか?
そのためのソフトを用意しているのですね。
ggさんが質問されているように、自分もそれが自作のプログラムで如何にして行っているのか知りたいです。
実際に作るとなると、htmlやsgf.コンピュータ囲碁ソフトの言語など
異なる言語を巧みに扱わなければならなくてとても難しい作業に思えるのですが
どうなのでしょうか?
平均悪手からレーティング推測する手法、
最低20棋譜でいいとのことで、将棋の勉強に使わせてもらっています。
ところで、rating = -3148y + 4620 の式でございますが
・20棋譜検討した場合、1局ごとにレーティングを出し、
出てきた20個のレーティングを平等として、平均を取ればいいのでしょうか
(短手数で終わった将棋も、長手数の将棋も平等の扱い)
・それとも、それぞれの棋譜の平均悪手をすべて足し合わせていき
最後に式に入れて、レーティングを出していけばいいのでしょうか
(長手数かかった将棋の重みが大きくなる)
たぶん、前者だとは思うのですが教えてください
> それぞれの棋譜の平均悪手をすべて足し合わせていき
こちらで計算しています。
長手数の将棋の方が影響が大きいです。
試してはいないのですが、1局ごとの平均、とした方が安定した結果が得られるかもしれません。
sgfでしたらKGSの高段者の棋譜が下から落とせます。
http://www.u-go.net/gamerecords/
sgfを読み込む部分はファイル操作になるので言語依存です。
C言語なら下のような感じになります。
C言語 テキストファイルの読み込み
http://simd.jugem.jp/?eid=47
AmazonなどでC言語の入門書を1冊購入すれば、たいがい載っていると思います。
ありがとうございます。
まずは、頑張って分析ツールを作ることを第一に
制作していきたいと思います。
deep learning の Windows プログラムを GPU で動かすことに成功しました
1手あたり 2.9ms かかります(GTX670) cublas を使用しました
予測率は 37% になり KGS の DCNNigo は 5k になりました。
DCNNigo は一度対局してみましたが、ダメの数や直前の手の位置、なども
考慮されてるように感じました。
盤面の石の配置以外にどのような特徴も使われてるのでしょうか?
筋、筋、と来るのですが2眼で活などはまったく分かってないアンバランスさが面白かったです。
DCNNigo では 6面の特徴を使用しています
石の配置に2面、ダメ1の石、ダメ2の石、ダメ3の石、ダメ4の石
直前手の位置は使用していません。
なるほど、そういう感じで情報を渡すのですか。ありがとうございます。
直前手や自分の2手前の位置もいれると予測率は5%ほど上がる気がします。
コウが発生している局面だけ集めて学習とかさせればコウ争いも強くなるのでしょうか・・・。
話変わりますが,DCNN で学習した結果は
異なる大きさの盤にも流用できるのでしょうか?
私は 19x19 しかやったことがありませんが
ファイン・チューニングという手法を使うことになると思います
19x19 10万局で学習しておき 9x9 数100局でファイン・チューニング
するという事になると思います。
Aprey と、GPSFisf(64bit) を使って、以下の実験をおこないました。
CPU i7-haswell 4.45GHz
対局条件:
Aprey 4,5,6 threads,
GPSFish 6 threads 固定
持ち時間、5,6,7,8 sec(設定)
各条件50局、引き分け(千日手)は 0.5勝として計算。
300手で中断、人間がどちらの勝ちか判断。
(判断に悩むケースはなし)
結果、Apery から見て、
Apery 4threads 119勝80負1分 勝率 59.9%
Apery 5threads 131勝64負5分 勝率 67.6%
Apery 6threads 133勝65負2分 勝率 67.3%
総対局数 600局 先手314勝 後手 278勝 8分
先手勝率 53.4% でした。
予備評価で、8threads は、4threads よりも勝率が悪かったです。
対局数は十分ではないですが、i7-haswell の場合、
Thread数は、4よりも5の方がよいかもしれません。
では、では。
順位順の星取表
pona NDF AWA Ape GPS YSS 激指 Sele 勝敗 SB 順位
ponanza ○ ○ ○ ○ ○ ○ ○ 7 -0 1
NineDayFever × = ○ ○ ○ ○ ○ 5.5-1.5 2
AWAKE × = ○ × ○ ○ ○ 4.5-2.5 3
Apery × × × ○ ○ ○ ○ 4 -3 4
GPS将棋 × × ○ × × ○ ○ 3 -4 5.5 5
YSS × × × × ○ ○ ○ 3 -4 4.0 6
激指 × × × × × × ○ 1 -6 7
Selene × × × × × × × 0 -7 8
今年は上位陣が手厚かった印象でした。
ほぼ予選の順位どおりの結果で波乱も少なかったようです。
時間切れの対局が多かったのが少しだけ残念でした。
私自身はソルコフ0.5差で予選8位にすべりこみ連続8位以内記録を更新。
激指と最終戦で通過を決めて争いそうだな、と思ってたらそのとおりになって
負けたにもかかわらず抜けれたのはあきれるほどラッキーでした。
評価関数に王の安全度、駒の取る取られ、歩の進める状態を手番評価してみたら
+100Eloぐらい強くなって、今年は余裕で抜けれるかと思ってたのですが
ギリギリで、ほんとに毎年レベルが上がってるのを痛感します。
日経の電王戦の記事が読み応えがありました。
> 現役プロで最も将棋ソフトに詳しいといわれる五段の千田翔太(21)でさえ、
> 特別な対策をせずに電王戦に出場するような強豪ソフトと真っ向から戦った場合で「勝率は7%」と言う。
「1割」の勝利呼び込む 棋士VS.ソフト(ルポ迫真)
http://www.nikkei.com/article/DGXLASFG27HAG_T00C15A5SHA000/
ただ、持ち時間5時間では5割程度、という永瀬さんの発言は省略されています。
持ち時間を増やしたときに棋力の伸びははっきり人間の方が上だと思います。
千田五段は選手権の2次予選に見学にいらしていました。
お話をうかがったのですが、ものすごくコンピュータ将棋に詳しくて感銘を受けました。
DCNNigo は 5k で停滞していましたが
Detlef Schmicker さんの
http://physik.de/net.tgz
を使用したところ 3k〜4k になりました(DCNNigo2〜DCNNigo4)
しかし計算時間も長くなり CPU 処理(AVX命令使用) で 70ms 程かかります。
よく分かってないのですが、石の配置、白と黒の2つだけを入力として
5kが3kになるほど強くなった、ということでしょうか?
学習させた棋譜数や時間の違い?でこれだけ差が出るのは面白いです。
部分の形を見るのは
7x7が1種類
5x5が6種類
3x3が12種類
あるようですね。何をしているかはさっぱりなのですが。
私も1局打ってみたのですが、部分の死活の2眼で活き、が分かってるような
手を返されて驚きました。
ファイルは74MBあります。
YSSの決勝でのログです。
時間切れで終わったponanza戦の指そうとした手は88手目△47角で評価は-289、
歩1.5枚分ややYSSが不利、という評価でした。おそらくその後
▲62金△同飛▲72金△74角成▲62金△73馬で先手の攻めが切れるかどうか、
という流れになったと思います。
http://www.yss-aya.com/2015yss_final_log.zip
floodgateやソフト戦の解説で一部で有名?なtwitterの mizumon さんが
選手権の棋譜を柿木形式で配布されています。
決勝1回戦のYSS-Awake戦を見てみたのですが、コメントがとても参考になります。
mizumonさんのツイッター
https://twitter.com/mizumon_
選手権の棋譜解説(右上の「ダウンロード」で一括してzipで落とせます)
https://www.dropbox.com/sh/uhzkp1q708porur/AACY5GSMVAleqGNfVLZPxwYia/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E9%81%B8%E6%89%8B%E6%A8%A9%EF%BC%92%EF%BC%90%EF%BC%91%EF%BC%95?dl=0
山下様
大会 お疲れ様でした。
対ponanza戦 で時間切れになった件ですが、これは ネットワークの混雑か何かの影響だったのでしょうか。この対戦のあと、時間をとって運営側が調整を行っていた気配がありました。
この後xx生中継の配信品質が少し落ちた気もしました。
差し支えないようでしたら、コメントをいただけると有り難いです。
では、では。
選手権では内部用のLANと外部接続用のLANの二つの回線があり、
決勝第5局以降は外部接続回線の反応速度が改善されたように思います。
時間切れで負けた原因についてはまだ特定できていません。
清さんに作っていただいている表を更新しました。
竜の卵さんの抜群の安定感がすごいです。
CSA選手権の順位別記録
http://www.yss-aya.com/csa_all.html
CrazyStoneが金曜の夜8時から囲碁クエストの9路に来るそうです。
レーティングは2600近くで、人間最高のspacemanさんの2712点にかなり近い点数です。
ハンドル名は
:crazystonebot
で検索するには先頭に : が要ります。
Ayaも動かしていて 10000playout (5000x2) の AyaXBot が
9路:2200点
13路:2100点
ぐらいです。KGSではAyaMC2 が10000 playout で 2d です。(10分30秒)
盤が小さくなると相対的に強くなるので
13路は2100点で3d、9路は2200点で4d、さらに3分、5分切れ負けのblitzなので、もう1d上がって
13路は2100点で4d
9路は2200点で5d
ぐらいの棋力になっていると思います。
Remiさんのtwitter
https://twitter.com/Remi_Coulom/status/603643375003279360
:crazystonebot
http://wars.fm/go9#user/:crazystonebot
:ayaxbot
http://wars.fm/go9#user/:ayaxbot
下坂二段の中押し勝ち
#結構良い勝負でした
#棋譜はまだ公開されてません
ニュース動画 http://www3.nhk.or.jp/news/html/20150531/k10010098661000.html
3年ほど止まっていたCGOSの9路と19路がNiceGo(oakform)のDetlefさんのサーバで新たに動き出しました。
http://physik.selfhost.eu:8080/
通常のCGOSの設定から、アドレスとポート番号を変更する必要があります。
13路だけは通常のサーバで動いています。
ドイツにある自宅サーバなので着手に1手1秒ぐらい通信にラグがかかるようです。
Nokia N800 という2007年発売のかなり古いタブレットで動いているそうです。
7月25日、8月1日、8月8日、9月12日の4日間、
電通大にてコンピュータ囲碁の講習会が行われます。
私も講師の一人として参加します。
参加費は無料ですのでコンピュータ囲碁を作ってみたいな〜、という方はぜひご応募ください。
7月25日はモンテカルロ木探索の概論を
8月1日はサンプルを見ながらルールどおり打てるまで
8月8日はUCTとplayoutでモンテカルロ木探索をするプログラムの解説
をする予定です。
8月8日には囲碁の知識をplayoutやUCTに付け足しやすいサンプルの解説を
して、各自でそれに工夫をこらしてもらい、9月12日に参加者同士で
対戦してもらい、各自の工夫を意見交換する、といった形を考えています。
これで書ける! 「コンピュータ囲碁講習会」
http://entcog.c.ooco.jp/entcog/cg_koushu.html
参加したい、ものすごく参加したいですが、4日間すべて参加できるかやや不安です。
片道、2.5時間くらい。。。
サンプルプログラムは、TDM-GCC( ver4.92 ) でコンパイル、実行できました。
参加者同士のプログラムでは、通信機能で対戦するのでしょうか。
関連ライブラリが提供されるのでしょうか。
高品質高速乱数ルーチンを持っているので使ってみたい。。。
( ベンチでは xor より、35%高速です。)
少し、悩んでみます。
対戦は参加者同士がノートPC片手に移動して手入力で行う予定です。
コンパイルは通った、とのことでよかったです。
遠距離で大変だと思いますが、参加できそうでしたらぜひお願いします。
一回目(第0回)はコンピュータ囲碁を知らない人も対象なので
お二人の本を読んでいれば(万一 :-)遅れても大丈夫だと思います
二回目以後は午後開始ですから何とかなるんじゃありませんか?
先ほど、登録させていただきました。
gg さんに 背中を押していただいた様で踏ん切りがつきました。
(悩んでいたわけではなく、迷っていただけですね。)
8月8日が特に不安なのですが、がんばります。
家to電気通信大学 だと、待ち時間込みで3時間弱かかりそうです。
では、参加される皆さん、西9号館 でお会いしましょう。
masatsune
twitterで囲碁NHK杯の形勢判断をリアルタイムに3分おきにつぶやくBotを作ってみました。
TV画面から碁盤を認識してAyaで形勢判断をしています。
うまくいけば下の画像のような感じで表示されます。
これは4月26日の向井−寺山戦で、実際は寺山4段の白2目半勝ちなので
7目ぐらい目数判断はずれています。勝率はだいたい正しそうですが。
21日の放送はつぶやく予定です。
囲碁NHK杯の形勢判断Bot
https://twitter.com/nhk_igo_15bai
囲碁NHK杯を15倍楽しむページ
http://www.yss-aya.com/nhk15bai/
![]()
日本発のDeep Learning のフレームワーク
Chainerが公開されています。
http://chainer.org/
Pythonのライブラリベース形式となっていて、Windowsでも使用可能です。
正直Caffe は、言語やデータ形式など寄せ集めのごった煮の印象で、改善の兆候も余りなさそうなので、こちらに乗り換えようと思ってます。
この分野は、日本はかなり遅れているので、是非応援したいところです。
加藤さん情報ですが、電通大で9月1日(火)にDeep Learningのセミナーが開催されるそうです。
無料です。
講習でも「Chainer」が利用されるようですね。
しかしAWSの環境準備が前提とは結構ハードル高そうです・・・。
日本神経回路学会主催セミナー「Deep Learningを使ってみよう!」のご案内
http://www.jnns.org/DeepSeminar2/home.html
初日 9路の 3ラウンドを終えて CGI が
Zen に 1敗 1持碁,Nomitanに 2勝と健闘してます
#EZGOとColdmilkが棄権したため 9路, 13路とも 6チーム,5ラウンドです
CGIは台湾のプログラムらしいですが、UEC杯に出ていたGo Trendとは別のチームですか?
100台繋いでるそうで気合を感じます。
9路は Zen が 9勝 1持碁で優勝,Abakus が 7勝 1持碁で 2位,CGI が
6勝 2持碁で 3位,以下 Nomitan 4勝,MC_ark 2勝,Wingo 0勝でした.
なお Abakus は Gomorra の後継ですが,ほぼゼロから書き直し,
Gomorra の特徴だった TDS ベースの並列は使ってないそうです.
また CGI の C は開発元である台湾の Wu 先生の研究室の名前
(Computer Games and Intelligence; CGI) の,
残りは Go Intelligence の,各頭文字だそうです.
#ややこしいけどフルネームは CGI Go Intelligence.
GoTrend とは別で,金沢と横浜に参加した Amigo の枠組みを使って作った
プログラムです.#GoTrend は 19路だけ参加登録してます.
ハードウェアは台湾の ALPS というスパコンで,CPU は Opteron.
https://www.nchc.org.tw/en/inner.php?CONTENT_ID=537
これを 20ノード使っているとか.
補足: Opteron 6174 が 4個載ってるので 48コアになりそうですが
多分ユーザが使えるのは 36コアまでで,これを 20ノードでトータル
720コアという計算になります.
#2.2 GHz というクロックが悲しい.45 nm 世代なのでしょうがないけど
CGIはGNUみたいな命名ですね・・・。ありがとうございます。
Nomitanが4位とはレベル高いですね。
13路と19路が楽しみです。
36コアで2.2GHzならAmazon EC2のE5-2666 v3、2.9GHz、18コアの方が速いかも・・・。
コンピュータ囲碁講習会用に配布された Go1.c を使って遊んでおります。
先手のみに細工をして、21000 playout で、先手 22勝8敗になりました。
こみ、6.5 です。
一般的な9路盤での先手勝率はどのくらいなのでしょう?
Go1.c の特徴として、
1)切る手の評価が高い。
2)逆に必要がなくても傷を埋める手が好き。
2)乱戦を好む。(割り込むのが好き、地の確保は好きではない?)
気がします。
課題局面をいくつか集めました。
playout数を増やしたときに、これらが改善されると良いのですが、
現在は、21000 playout 以上に設定すると、最後の終局判定時(?)に
プログラムが落ちます。
次の休みに、コードを見直してみます。
では、では。
> 一般的な9路盤での先手勝率はどのくらいなのでしょう?
Aya同士だとコミ6.5だと黒が天元に打てば勝率52%、それ以外の(4,4)、(4,3)だと
黒は47%〜48%ぐらいです。
コンピュータ囲碁界ではだいたい適切なコミは7目だろう、ということで
コミ7.0目(持碁あり)が多く使われています。
> 21000 playout 以上に設定すると、最後の終局判定時(?)に
#define NODE_MAX 10000
を10万とかに増やしていただくと落ちにくいかもしれません。
今しがた最終ラウンドが始まりました.この前のラウンドで Nomitan が
Abakus に勝ったので,このラウンドで Zen が Abakus に勝てば優勝,以下
Nomitan,Abakus の順になり,Abakus が勝てば 3者が 4勝で並んで
play-off です.
Computer Olympiad の公式サイト
http://www.grappa.univ-lille3.fr/icga/event.php?id=45
にも書きましたが,13路は優勝 Zen,2位 Nomitan,3位 Abakus,
以下,CGI,MC_ark,Wingo という結果になりました.
また,今日から 19路が始まりますが,GoTrend と oakfoam が加わり
Wingo が抜けて 7チームでの対戦になります.
公式サイトの追加ありがとうございます。
19路はGoTrendとNiceGoも入ってかなりレベル高そうで楽しみです。
学会の方はAbakusの作者の論文が効果がありそうで読んでいます。
https://www.conftool.net/acg2015/index.php?page=browseSessions&path=adminSessions&print=export&mode=list&presentations=show
Adaptive Playouts in Monte Carlo Tree Search with Policy Gradient Reinforcement Learning
19路は Wingo が抜けて GoTrend 改め Jimmy と Oakfoam が加わり
7チームが総当り 7ラウンドで対局します.
今日は 2ラウンド終了しましたが,Abakus が MC_ark に敗れるという
MC_ark には失礼ですが,ちょっとした波乱がありました.
http://www.grappa.univ-lille3.fr/icga/tournament.php?id=290
ですが bye も 1点貰うことに注意して下さい.
現在リアルタイムで更新中.3位争いが混沌としています.
今日は土曜日なので食堂は休みなのですが
ICGA の方で用意してくれるとのことなので
トーナメントを昼休み無しで続行することになり
今しがた第5ラウンドが始まりました.
2位争いが Nomitan と Abakus との play-off になりました.
あれ、playoffは白のnomitanが再逆転ですか?
ものすごく細かそうですね・・・
nomitan、残念。面白い対局でした。
CGF理事&MC_arkの作者の荒木です。
CGFオープンの参加者募集を開始します。
今年(2015年)のCGFオープンは、
10月3,4日に開催することに決まりました。
種目は例年通り19路と9路の2部構成で、
場所もいつもと同じ電気通信大学西9号館3FのAVホールです。
参加希望の方は 以下のページに書いてあるメールアドレス宛にメールを下さい。
(いつものメーリングリストではありません。詳しくは大会要項をご覧ください。)
・CGFオープンのページ
http://hp.vector.co.jp/authors/VA012620/
・2015年CGFオープン、大会要項のページ
http://hp.vector.co.jp/authors/VA012620/cgf2015/cgf2015.html
なお、GTPからNNGSへの変換スクリプトの新しいバージョンへのリンクが
上記のページにありますが、これは最新のバージョンのRubyでも動くように
したものです。
よろしくお願いします。
CrazyStoneのRemiさんが世界の囲碁のプロ棋士のレーティングを
見れるサイトを作っています。
レーティングの計算にはWHR(Whole History Rating)という方法が使われています。
Eloが1局だけで計算するのに対してWHRはすべての対局を考慮して計算するため、
特に対局数が少ないときの推定が早いです。
井山さんは国際戦を最近はそれほど打ってないのですが、それでも
世界ランキング14位に入っています。
全部英語なので誰だか分かりにくいですがトップ3はこんな感じです。
1 Park Jungwhan 2680 朴廷桓(パク・ジョンファン) 韓国
2 Ke Jie 2665 柯潔 (かけつ) 中国
3 Kang Dongyun 2649 姜東潤(カン・ドンユン) 韓国
レーティングの推移も見れます。
日本の棋士で上位なのは下の6人でしょうか。若手の人は右肩上がりですね。
井山裕太 14位 26歳
http://www.goratings.org/players/698.html
河野臨 58位
http://www.goratings.org/players/509.html
伊田篤史 68位 21歳
http://www.goratings.org/players/1115.html
山下敬吾 74位
http://www.goratings.org/players/434.html
黄翊祖 93位 28歳
http://www.goratings.org/players/804.html
一力遼 101位 18歳
http://www.goratings.org/players/1192.html
Go Ratings
http://www.goratings.org/
Remiさんのtwitterでの紹介
https://twitter.com/Remi_Coulom/status/621664024917319680
コンピュータ囲碁講習会まで約1週間となりました。
運営の方はご苦労かと思いますが、楽しみにしております。
go1.c を改造し色々試しております。
現状は 300k playoutsでもまだまだ悪手がでます。
例えば4手先で味方の石が死ぬ場合でも手抜きをします。
石の安全度を導入する必要がある様に思えます。
先手(黒)のみ改良し100k playoutsで100回対戦させ
効果を計っています。白はオリジナルのままです。
で、面白い現象が出ています。
黒が 0.5差で勝つケースが非常に多いです。(1.5差は少ない)
0.5目差になった場合の、黒勝-白勝 の数ですが、
15-1、18-0、12-1、9-0、16-1 の様になりました。
黒勝が異様に多いです。中国ルールでの判定です。
コミ6.5目ですが、コミ7.5目でも実験してみます。
(中国ルールだと、コミ6.5というのは、5.5に近く、
7.5とは差があるという説明をしているサイトがありました。)
コミ7.5目でも同様の結果だとすると、モンテカルロ法では
優秀な方が0.5差で勝ちやすいのかもしれません。
CGFオープンの9路盤のルールは、
1)中国ルール(プログラム的には終局の判断が易しいため?)
2)コミ7.5、
3)持ち時間10分、(600秒!)
4)同一盤面が出現すると負け
ですね。
3)に対しては、マルチスレッド・クラスター化が必須ですね。
オリジナルから30%くらいは高速化したのですが、NotePCで
1スレッドだと 300k Playoutsで 黒の総思考時間は30分
くらいかかっています。
(まあ、直ぐに大会に出られるレベルではないので。。。)
4)は1盤面の状態を5バイトで表し、先後別に過去6面程記憶
する事にしました。
コウ絡みで結構発生しており、対策は必須のようです。
では、では。
Detlef Schmicker さんの作った deep learning を MCTS に統合してみた
KGS 1d のアカウントで playout 15000 で人間と対戦してデータを取ると
MCTS のみでは 1126勝 946敗 勝率54.3% となり
統合すると 847勝 426敗 勝率66.6% となった
elo レーティングで 90 の向上です、効果があったと判断します
私の作った deep learning ではあまり効果がなかったのですが
Detlef Schmicker さんの作った deep learning では効果があった
この差はネットの規模が約3倍になっている事によると思います
Detlef Schmicker さんの真似をしてネットの規模を大きくして見たのですが
学習がうまく行かなかった、学習時間がかかるのは当然ですが
予測率が良くならないのです、何かノウハウがあるのでしょうか
MCTS との統合は次の様にしています
root node でのみ deep learning 計算をしています、1回の計算に 70ms かかります
まず root node で 点数計算します、1回の計算で 361箇所の点数が全て求まる
その top 10 について点数を割り当てて MCTS と統合しています。
いろいろ試していただいて、ありがとうございます。
黒の0.5目勝ちが多いのは1眼を持つセキができない限り、黒の最小の勝ちは
黒0.5目勝ち、で次が黒2.5目勝ちになるせいかもしれません。
サンプルのplayoutではセキは認識できず、UCTでのみ判断できるので
さらに出現率が低くなっているのかもしれません。
セキの認識は6子以上のアタリに突っ込む手を禁止にする、で
だいたい実現できるのですが、サンプルのデータ構造で認識させるのは
かなり大変かもしれません。
黒1目勝ち 黒3目勝ち
ABCDEFGHJ ABCDEFGHJ
9┌●┬●●●●●● 9┌●┬●●●●●●
8●●●●●●●●● 8●●●●●●●●● 通常は黒1,3,5,7目勝ち、と差が
7●●●●●●●●● 7●●●●●●●●● 奇数になるのでコミ6.5だと
6●●●●●●●●● 6●●●●●●●●●
5●●●●●○○○○ 5●●●●●●○○○ 黒の最小の勝ちは黒0.5目勝ち、
4○○○○○○○○○ 4○○○○○○○○○ 白の最小の勝ちは白1.5目勝ち、
3○○○○○○○○○ 3○○○○○○○○○
2○○○○○○○○○ 2○○○○○○○○○ になります。
1└○┴○○○○○○ 1└○┴○○○○○○
黒0目勝(引分) 黒2目勝ち
ABCDEFGHJ ABCDEFGHJ
9┌●●●●●●●● 9┌●●●●●●●●
8●●●●●●●●● 8●●●●●●●●● 例外は眼を持つセキができたときで
7●●●●●●●●● 7●●●●●●●●● 差が偶数になります。
6●●●●●●●●● 6●●●●●●●●● コミ6.5だと
5●●●●┼○○○○ 5●●●●●┼○○○ 黒の最小の勝ちは黒1.5目勝ち、
4○○○○○○○○○ 4○○○○○○○○○ 白の最小の勝ちは白0.5目勝ち、
3○○○○○○○○○ 3○○○○○○○○○
2○○○○○○○○○ 2○○○○○○○○○ になります。
1└○○○○○○○○ 1└○○○○○○○○
+100 Eloぐらいの向上ですか。最初にDetlefさんが報告したときも
+100ぐらいだったので、GNU Goに圧勝するほど強くなってもplayout
の質が向上しないと予測精度に追いつかない?ような気もします。
(隅の死活を理解する手を選んでも、乱数playoutだと認識できない、のような)
学習に差が出るのはよく分かりません。棋譜数の差でしょうか?
個人的にはものすごく時間がかかったとしてもDeep Learningの予測手で
playoutをさせて、どのくらい棋力が伸びるか、に興味があります。
山下様
詳しいご説明ありがとうございます。
たしかに、黒勝ちの場合は、偶数目+0.5、白勝ちの場合は、奇数目+0.5が多いですね。
出現しやすい"差"は、黒から見ると...+4.5,+2.5,+0.5,-1.5,-3.5... と成り、
モンテカルロ方では、黒0.5目勝ちというのは出やすいと思われます。
このような実験は大好きなのですが、PCが複数台動くと部屋の温度がすぐ上がるので、夏は大変です。。。
deep learningの予測手でplayoutをさせてみました
1手当たり playout数は 100です
GPU 使用にて 1手7分 1局1日 かかります(GTX670)
乱数性を持たせるため playout での
top の手の確率値を 100000000
2番目の手の確率値を 100000000/2
3番目の手の確率値を 100000000/2/2
というふうに点数付けしました
棋譜を下に貼ります(sgf)、白黒ともに deep learning です
playout数 100と少ないせいかおかしな手が結構あります
(;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2]
RU[Chinese]SZ[19]KM[7.50]
PW[WeakBot]PB[HiraMC1]BR[1d]DT[2015-07-20]PC[The KGS Go Server at http://www.gokgs.com/]C[HiraMC1 [1d\]: GTP Engine for HiraMC1 (black): Hiratuka version 10_34F-No10
WeakBot [-\]: GTP Engine for WeakBot (white): Hiratuka version 10_34F-No10
]RE[B+Resign]
;B[pc];W[qp];B[dd];W[cf];B[fc];W[de];B[cd]
;W[cj];B[dk];W[dj];B[ek];W[ck];B[fj];W[dm];B[fm];W[fn]
;B[dq];W[hn];B[em];W[en];B[dl];W[cl];B[gn];W[dn];B[gq]
;W[go];B[fp];W[gm];B[hp];W[iq];B[op];W[mp];B[pm];W[oo]
;B[pp];W[po];B[ei];W[qq];B[ch];W[fe];B[ip];W[jn];B[ge]
;W[jp];B[io];W[gf];B[hf];W[gg];B[fh];W[jq];B[hh];W[hr]
;B[gd];W[bh];B[bg];W[bi];B[bf];W[cq];B[cp];W[no];B[co]
;W[qn];B[pe];W[hg];B[if];W[gh];B[ff];W[fg];B[ig];W[eg]
;B[cg];W[gl];B[gi];W[gr];B[hi];W[ce];B[bm];W[be];B[in]
;W[im];B[cm];W[fr];B[jm];W[kn];B[lo];W[rl];B[jo];W[km]
;B[il];W[hk];B[kl];W[ll];B[jl];W[hm];B[ee];W[ed];B[jj]
;W[fd];B[ec];W[ep];B[fq];W[eq];B[ko];W[dp];B[bq];W[ln]
;B[mm];W[ml];B[mn];W[lm];B[nl];W[mo];B[kq];W[mr];B[mk]
;W[cr];B[lk];W[br];B[bl];W[dg];B[dh];W[eh];B[di];W[ej]
;B[fi];W[fk];B[qk];W[pj];B[pk];W[qj];B[qh];W[rk];B[ri]
;W[ok];B[qm];W[rj];B[rm];W[sm];B[sn];W[sl];B[rn];W[bp]
;B[ol];W[oh];B[ph];W[bo];B[cn];W[of];B[oe];W[mf];B[oi]
;W[ni];B[pi];W[ah];B[ag];W[nh];B[ne];W[pf];B[oj];W[me]
;B[md];W[nk];B[rf];W[nf];B[le];W[kd];B[qe];W[ld];B[mc]
;W[bk];B[ke];W[je];B[lg];W[kg];B[lh];W[jd];B[lf];W[kb]
;B[lb];W[kp];B[lp];W[ro];B[aj];W[lq];B[ak];W[nj];B[ik]
;W[hl];B[hj];W[kh];B[kf];W[li];B[ka];W[rg];B[qg];W[rh]
;B[jf];W[qf];B[re];W[ki];B[pg];W[qi];B[pn];W[jb];B[qo]
;W[rp];B[qn];W[ji];B[ja];W[kr];B[ia];W[hb];B[ib];W[hc]
;B[ic];W[so];B[on];W[id];B[sg];W[si];B[hd];W[sf];B[bj]
;W[se];B[ci];W[rd];B[sd];W[rc];B[qb];W[el];B[do];W[eo]
;B[nn];W[ii];B[ao];W[ij];B[ap];W[aq];B[an];W[ad];B[ih]
;W[kj];B[jk];W[ql];B[pl];W[bc];B[cb];W[db];B[bb];W[eb]
;B[ho];W[cc];B[ab];W[ga];B[fb];W[dc];B[bd];W[fo];B[ed]
;W[gk];B[fl];W[el];B[bn];W[se];B[bq];W[ar];B[mg];W[bp]
;B[ng];W[og];B[kk];W[mj];B[lj];W[mh];B[hq];W[bq];B[la]
;W[er];B[sf];W[bo];B[np];W[mq];B[jg];W[ea];B[sh];W[ca]
;B[ba];W[fa];B[ae];W[ac];B[da];W[gc];B[gb];W[ca];B[ha]
;W[aa];B[af];W[gp];B[gj];W[mi];B[sj];W[ri];B[jh];W[lc]
;B[kc];W[mb];B[nd];W[nb];B[oc];W[ob];B[pb];W[nc];B[na]
;W[od];B[pd];W[he];B[fl];W[em];B[ef];W[cj];B[df];W[ir]
;B[ai];W[pa];B[oa];W[ln];B[kn];W[hc];B[hb];W[jc];B[ma])
勘違いしてたらすみません.DCNN が学習しているのは出現頻度(確率)ですよね?
もしそうなら,それをそのままシミュレーション中の着手確率に使えば良いと思いますが.
DCNN が学習しているのは、正解手を1に、不正解手を0に
近づくようにしていて、出現頻度とは異なると思っておりました
間違っていたらごめんなさい。
実験していただいてありがとうございます。
100playoutで一局、1日もかかるのですか・・・。ちょっと遅さを理解していませんでした。
100局とかで強さは測るのは難しそうですね。
棋譜は並べてみました。予測手のトップだけで打たせた方が強そうですね・・・。
Progressive Windeningを使う場合、Deep Learningでは2眼で活き、といった手が上位に来ることはないので
playoutにDeep Learningを使っても強さは頭打ちになりそうな気がします。
結局、攻め合いや2眼、といった概念を学習させたDeep Learningでないと
1dか2dの壁を越えるのは困難な気がしています。
>DCNN が学習しているのは、正解手を1に、不正解手を0
その場合,正解である確率を学習することになります
着手確率と同一視して構いません
gg さんの意見に従い deep learning の計算値をそのまま
playout の着手確率にして対局させてみました
1手当たり playout数は 100です
GPU 使用にて 1手7分 1局1日 かかります(GTX670)
棋譜を下に貼ります(sgf)、白黒ともに deep learning です
おかしな手が減った様に思います。
(;GM[1]FF[4]CA[UTF-8]AP[CGoban:3]ST[2]
RU[Chinese]SZ[19]KM[7.50]
PW[WeakBot]PB[HiraMC1]BR[1d]DT[2015-07-25]PC[The KGS Go Server at http://www.gokgs.com/]C[HiraMC1 [1d\]: GTP Engine for HiraMC1 (black): Hiratuka version 10_34F-No20-2
WeakBot [-\]: GTP Engine for WeakBot (white): Hiratuka version 10_34F-No20-2
]RE[B+Resign]
;B[op]
;W[qd];B[dc];W[ce];B[dp];W[dd];B[cc];W[ed];B[bd];W[be];B[cj];W[fc]
;B[gd];W[hf];B[hh];W[eb];B[gf];W[hc];B[fe];W[hg];B[hd];W[ic];B[he]
;W[gg];B[db];W[fg];B[ec];W[fa];B[bb];W[gb];B[fd];W[jd];B[dg];W[ef]
;B[ch];W[df];B[je];W[ke];B[jf];W[kf];B[kc];W[kg];B[ie];W[jb];B[jg]
;W[jh];B[ih];W[ji];B[ig];W[hi];B[gh];W[fh];B[fi];W[ii];B[gi];W[ei]
;B[eh];W[ej];B[cm];W[bg];B[gk];W[il];B[hj];W[kd];B[ik];W[jk];B[ff]
;W[jj];B[bh];W[ag];B[eg];W[ee];B[cg];W[jl];B[pd];W[pe];B[qc];W[rd]
;B[pc];W[qf];B[oe];W[of];B[ne];W[pn];B[no];W[qo];B[ae];W[nf];B[rc]
;W[nc];B[nb];W[mf];B[me];W[mc];B[mb];W[cf];B[qq];W[nm];B[oc];W[mq]
;B[jq];W[or];B[oq];W[qr];B[rr];W[qs];B[pr];W[lp];B[ln];W[ko];B[ip]
;W[rs];B[kn];W[sq];B[jo];W[rq];B[ps];W[nr];B[mo];W[dq];B[cq];W[lo]
;B[mm];W[nl];B[hm];W[lc];B[jn];W[eq];B[cr];W[lb];B[lk];W[mj];B[ss]
;W[lj];B[rp];W[qp];B[sp];W[cp];B[bq];W[do];B[ep];W[fp];B[eo];W[fo]
;B[fq];W[jr];B[en];W[ir];B[kq];W[lr];B[kr];W[hl];B[gl];W[cd];B[sd]
;W[re];B[rn];W[gq];B[qn];W[po];B[fr];W[gr];B[er];W[ro];B[ks];W[af]
;B[ad];W[pm];B[sr];W[ql];B[ml];W[so];B[ah];W[ma];B[ob];W[dr];B[ho]
;W[gn];B[gm];W[gc];B[da];W[sc];B[mk];W[hn];B[gp];W[go];B[sb];W[nk]
;B[hp];W[na];B[oa];W[im];B[la];W[ka];B[in];W[ma];B[le];W[ea];B[lf]
;W[se];B[lg];W[nh];B[lh];W[co];B[sc];W[ds];B[nj];W[fs];B[hr];W[kh]
;B[kj];W[li];B[mi];W[ni];B[ki];W[mj];B[oj];W[qj];B[pk];W[pj];B[hq]
;W[iq];B[gs];W[ok];B[mh];W[ng];B[nn];W[ld];B[oi];W[cs];B[bs];W[pi]
;B[lj];W[ph];B[on];W[om];B[oh];W[bn];B[og];W[bp];B[bm];W[ao];B[aq])
>Deep Learningでは2眼で活き、といった手が上位に来ることはないので
これは deep learning の責任ではなく,学習に使う棋譜の問題です
Move prediction 全てに言えることですが
そういう手を含む棋譜で訓練すればそういう手が上位に来るようになります
日本時間の30日、朝の03:00時(18:00 UTC)から
EGC2015のイベントとしてプロ棋士のHajin Lee (3p)さんとAyaが5子で
対戦する予定です。KGSで行われます。持ち時間1時間です。
Ayaは下のハードを使います。
Intel Core i5-4590 3.3ghz, x64, 4 cores
結果はAyaの中押し勝ちでした。
棋譜はこちらです。
http://files.gokgs.com/games/2015/7/29/HayleeEGC-AyaMC.sgf
Live動画がこちらで見られます。
https://www.youtube.com/watch?v=Ka2ilmu7Eo4
EGC2015 Computer Go Tournamentの結果
http://www.gokgs.com/tournEntrants.jsp?sort=s&id=981
Computer Go Tournament Specification
http://pasky.or.cz/iggsc2015/compgo_spec.html
毎年恒例 FuzzyIEEE2015 のイベントで,Zenがアマやプロ棋士と対局します
時刻は今日の午後2時から,場所は KGS の Computer Go Room です
明日以降の予定など,詳細は↓を見て下さい
http://oase.nutn.edu.tw/FUZZIEEE2015/schedule_day1.htm
昨日はアマチュアの6dの人とZenが互先で打ってZenが2勝1敗。
今日は台湾のプロ棋士の Ping-Chiang Chou 5段と4子で打って
プロが2連勝しています。
1日目 Wen-Chih Chen (6D, White)
2日目 Ping-Chiang Chou (5P, White, H4 with Komi 0.5)
棋譜はこちらで見れます。
http://www.gokgs.com/gameArchives.jsp?user=Zen19S
公式結果が公開されてます.
http://oase.nutn.edu.tw/FUZZIEEE2015/result.htm
なお,3日目は KGS を使わず,また Jimmy だけでなく
CGI も 2日目と手合い割りを変えて対局していますが
まだかなりの改良が必要なようです.
Remiさんが囲碁のプロ棋士の年代別レーティングトップ3を作ってます。
http://www.goratings.org/history/
1990年までは趙治勲さんと小林光一さんがトップでしたが
以降25年間、現在までイチャンホ、イセドル、と韓国の棋士がトップみたいです。
中国棋士がトップに入ってないのはやや意外ですが。
8月31日に台湾の学会CIG2015のイベントで
プロ棋士3人と囲碁プログラム3ソフト(Zen、Aya、CGI)の総当り対戦が
行われます。Zenは4子、Ayaは5子、CGIは6子です。
プロ棋士は下の3名です。
Chun-Hsun Chou (周俊勳 9段)
Kai-Hsin Chang (張凱馨 5段) http://www.taiwango.org.tw/showchesser.asp?id=8
Li-Chun Yu ( 初段) http://www.taiwango.org.tw/showchesser.asp?id=358
http://oase.nutn.edu.tw/IEEECIG2015/schedule_day.htm
3人のプロ棋士と3ソフトが総当りで対戦し、下記の結果でした。
勝敗はソフトから見たものです。(1)は1局目、という意味です。
Zenは常に4子置き、同様にAyaは5子、CGIは6子置いています(対アマを除く)。
Chun-Hsun Chou (9P) Kai-Hsin Chang (5P) Li-Chun Yu (1P) アマチュア
Zen 4子 ×(1) ○(3) ×(4) × アマ6段(2)互先 1勝3敗
Aya 5子 ○(4) ○(1) ×(3) ○ アマ6段(2)2子 3勝1敗
CGI 6子 ○(3)※ ×(4) ○(1) × アマ5段(2)2子 2勝2敗
※ おそらくCGIの半目勝ち
Zenの棋譜 http://www.gokgs.com/gameArchives.jsp?user=cigzen
Ayaの棋譜 http://www.gokgs.com/gameArchives.jsp?user=cigaya
CGIの棋譜 http://www.gokgs.com/gameArchives.jsp?user=cigcgi
結果は後日載ると思います
http://oase.nutn.edu.tw/IEEECIG2015/schedule_day.htm
現在 KGS で 3d で打っています
三段設定にした時のアカウントが HiraMC1, HiraMC2
二段設定にした時のアカウントが HiraBot21〜HiraBot28 です
モンテカルロ木探索にニューラルネットを併用しています
ニューラルネットのデータは Detlef Schmicker さんの
http://physik.de/net.tgz
を使用しています
KGS段級位グラフを貼ります
http://www.gokgs.com/graphPage.jsp?user=hiramc1
荒木です。
CGFオープンの参加申し込み締切りまでまだ時間があります。
参加を迷ってらっしゃる方はぜひ参加をお願いします。
http://hp.vector.co.jp/authors/VA012620/
あっさり追いつかれてしまいました。
Deep Learning勉強しないと、というわけで私も少し試してみました。
Detlef Schmickerさんが公開されている学習済みデータを私も動かしてみました。
http://computer-go.org/pipermail/computer-go/2015-April/007573.html
CPU : Xeon W3680 毎秒 4局面, 235ms/1回,
GPU : GTS-450 毎秒57局面, 17ms/1回, ... 13倍速い
GPUは5年前のものですが13倍ほど高速でした。
Caffeに付属の MNIST のサンプルは
CPU : Xeon W3680 (3.3GHz) 17分
GPU : GTS-450 5分 ... 3倍速い
1回にかかる時間は、
CUDAコア数 クロック
GTS 450 17.4 ms 192基 783MHz
GTX 970 1.6 ms 1,664基 1050MHz
GTX 670 1,344基 915MHz
detlefさんのGTX 970と比べると11倍遅く、CUDAのコア数比(8.6倍)とクロック差(1.3倍)
をかけたものにほぼ同じようです。
CPUだけの速度はHiraBotさんのデータと比較すると3倍近く差があります。
AVX命令使用の差?でしょうか。
i7-3770K 4.2GHz 70ms
Xeon W3680 3.3GHz 235ms
一番てこずったのCaffeのインストールでした。
以下は途中でメモった内容です。
ubuntu 14.04 を新規にインストール。GPUはGTS 450。
Caffe導入。この通りに実行。
http://www.nal.ics.es.osaka-u.ac.jp/personal/k-yamanishi/CaffeUbuntu.html
ただし以下はそのまま。
CUDA_DIR := /usr/local/cuda
CUDA_DIR が間違ってるとmakeがエラーで失敗する。
src/caffe/parallel.cpp:135:15: error: 'struct cudaDeviceProp' has no member named 'isMultiGpuBoard'
# CPU_ONLY := 1 をアンコメント、でこのエラーは出ない。
CUDAは別に、
https://developer.nvidia.com/cuda-downloads
から 7.0 の 14.04 用のNetwork installer "deb" を落とす
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1404_7.0-28_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda
環境設定
export CAFFE_ROOT=/home/yama/caffe/
export CUDA_HOME=/usr/local/cuda-7.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export LD_LIBRARY_PATH=/home/yama/caffe/build/lib:$LD_LIBRARY_PATH
PATH=${CUDA_HOME}/bin:${PATH}
export PATH
マシン再起動
$ nvcc -V
Cuda compilation tools, release 7.0, V7.0.27
caffe.pb.h がないと怒られるので
# In the directory you installed Caffe to
$ protoc src/caffe/proto/caffe.proto --cpp_out=.
$ mkdir include/caffe/proto
$ mv src/caffe/proto/caffe.pb.h include/caffe/proto
テストに使ったC++のソースとMakefileは
http://yss-aya.com/20150907detlef_test.zip
出力は黒番で下のような感じになります。
ABCDEFGHJKLMNOPQRST
1┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
2├┼┼┼┼┼┼┼┼┼┼┼┼○●●●┼┤
3├┼┼○┼┼┼┼┼┼┼┼┼●○●○○┤
4├┼┼┼┼┼┼┼┼┼○┼┼○○○●○┤
5├┼┼┼┼┼┼┼┼┼┼┼┼┼┼●●┼┤
6├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼●┼┤
7├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
8├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
9├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
10├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
11├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
12├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
13├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
14├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
15├┼┼┼┼┼┼┼┼┼┼┼┼┼┼●┼┼┤
16├┼┼┼●┼┼┼┼┼┼┼┼┼┼┼┼┼┤
17├┼┼┼┼┼┼┼┼┼┼┼┼┼┼○┼┼┤
18├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
19└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.34 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.63 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
山下さん
荒木です。私もcaffeのインストールが一番苦労しましたね。
最後のスコアですが、たぶん0.00になっている所にも凄く小さい値がついていると思います。
Ayaがこれを使って一気に強くなるのかどうか、楽しみにしています。
荒木さん、
0.001、みたいな小さな値もついていました。3桁目を表示すると長いので切りました。
KGSの大会が終わったらHirabotさんのように上位10手の確率を直接レーティング値に掛ける、みたいな手法で
試してみます。
Remiが少し試したが、あまり効果なかった、という話を聞きました。
CrazyStoneは元から45%くらいあったので、44%の予測率だとパターンの質が
少し上がるだけで効果少ないのかも、と思っています。
Ayaは現在38%程度なので+50ぐらいは上がるかな?と期待しています。
abakusはZenに2連勝!して優勝しました。
September 2015 SLOW bot tournament Players
http://www.gokgs.com/tournEntrants.jsp?sort=s&id=985
abakusは対局中に3x3パターンの値を自動調節する学習で
+140Eloぐらい強くなった論文を出してます。
http://www.yss-aya.com/bbs_log/bbs2015.html#bbs99
私も3x3ではなく、361マスx360の単一テーブル(ここに打たれたらここに打て)
で試したのですがあまりうまくいきませんでした。
HiraBot の予測率を測定してみました、deep learning 無しです
KGS 高段者の棋譜を使用して測定しました
UCT root node での予測率は 38.5% でした (111局でのデータ)
UCT root 以外での予測率は 38.0% でした (1111局でのデータ)
playout での予測率は 30.6% でした (11111局でのデータ)
CrazyStone は 45% Aya は 38% 程度とのことですが
HiraBot も思っていたより良いデータが出て安心しました。
追加データです、111局でのデータです
MCTS+DNN での予測率は 43.8% でした
Detlef Schmicker さんの単体での予測率は 44.6% でした
MCTS との併用により 0.8% 予測率が悪化しています。
Detlefさんのデータだけで打たせると少し弱い?のですよね。
単純に形の真似だけ上手くても死活とかの真似が下手だと
予測率が上でも弱くなってしまう、ということなのでしょうか。
100% DNN で予測した場合の強さは真面目には調べておりませんでした
DNN と平塚を mix する定数の調整を行い強くなったので
満足しておりました。
講習会で少し質問されたので日本ルールへの(その場しのぎな)対応方法を
書いてみます。
2つあって、一番簡単な方法は
1. コミを1目多くとり、相手がパスしたらパスする、です。
黒番でコミ7.5目なら、コミを8.5目に設定し、 白番なら6.5目にします。
1目多く取らずに処理するには、
2. 中国ルールでそのままplayoutで最後まで打ち、最終局面で補正する
という方法です。
白20手 G-1 まで ハマ 黒0子 白0子
ABCDEFGHJ
1┌┬┬┬●┬☆┬┐
2├┼┼┼●┼○┼┤ コミ6.5
3├┼┼┼●┼○┼┤ 黒番
4├┼┼●●○○┼┤
5├┼┼●┼○┼┼┤ 黒の最善はPASSするか、F1,F2,F3, E5,E6,E7,E8,E9
6├┼┼●┼○┼┼┤ のダメに打つ手のみ。
7├┼┼●┼○┼┼┤ (2)の方法でも勝率50%程度で、黒が簡単に勝てる局面、
8├┼┼●┼○┼┼┤ と認識できません。
9└┴┴●┴○┴┴┘
(;GM[1]SZ[9]RE[B+0.5]KM[6.5]RU[Japanese]
;B[di];W[fi];B[dh];W[fh];B[dg];W[fg];B[df];W[ff];B[de];W[fe]
;B[dd];W[fd];B[ed];W[gd];B[ec];W[gc];B[eb];W[gb];B[ea];W[ga])
コードは下のようになります。
-------------------------------------------
if ( last_two_move_is_pass_in_tree ) { // confirmation phase
pass_w_playout = pass_b_playout = 0;
playout_length = 0;
}
game_length = record_length + tree_legth + playout_legnth;
pass_w = pass_w_record + pass_w_tree + pass_w_playout;
pass_b = pass_b_record + pass_b_tree + pass_b_playout;
Margin = 0;
if ( (game_length&1) ) { // 総手数が奇数ならマージンを補正
if ( first_player_is_white ) Margin = -1;
else Margin = +1;
}
minus = (Margin + pass_w - pass_b);
japanese_score = chinese_score - minus;
final_score = japanese_score - komi - handicaps;
-------------------------------------------
playout_length ... playoutの手数
record_length ... 現在局面にいたるまでの棋譜の手数
tree_length ... UCTでplayout開始局面まで探索した手数
game_length ... 棋譜、UCT、playout、 を含めた手数
pass_w_playout ... playout中で白がパスをした回数
pass_w_tree ... UCTの探索中に白がパスをした回数
pass_w_record ... 棋譜の中で白がパスをした回数
handicaps ... 置石の数(置き碁の場合)
last_two_move_is_pass_in_tree ... UCTの最後の2手がパスか?
パス、パスなら必ずplayoutを呼ぶ
first_player_is_white ... 白から打っているか?(置き碁の場合)
final_score がコミと置石補正を含めた最終的な黒の地になります。
特徴は、UCTでパスパスをした場合だけ、playoutの中でパスを
した回数とplayoutの手数の長さを無視する、という点です。
白54手 C-6 まで ハマ 黒0子 白0子
ABCDEFGHJ
1┌●○○┬○●┬┐ 日本ルールではセキ石の地はカウントしないので
2├●●○┼○●┼┤ 補正する必要があります。
3├┼●○○●●┼┤
4├●○○┼○●●┤
5├●○┼┼○○●┤ この図はコミ6.5だと白0.5目勝ち
6├●☆┼┼┼○●● セキのA9,J9は白地にならない
7●●○○○○○●○ (セキの地でずれるケースはほぼ出てこないので無視でもOK)
8○○●●●●●○○
9└○┴●●●┴○┘
(;GM[1]SZ[9]KM[6.5]RU[Japanese]
;B[ch];W[bh];B[dh];W[ah];B[di];W[bi];B[eh];W[cg];B[bg];W[hi]
;B[fh];W[hh];B[gh];W[ih];B[hg];W[gg];B[fi];W[fg];B[ei];W[eg]
;B[hf];W[dg];B[bf];W[ge];B[he];W[ce];B[be];W[fd];B[gc];W[dd]
;B[cc];W[dc];B[cb];W[db];B[gd];W[fe];B[fc];W[cd];B[bd];W[ca]
;B[ba];W[da];B[bb];W[ec];B[ag];W[ig];B[if];W[fb];B[gb];W[fa]
;B[ga];W[gf];B[hd];W[cf])
下はComputerGo MLに投稿したほぼ同じ内容です。
Japanese rule in MC
http://computer-go.org/pipermail/computer-go/2014-March/006564.html
Steenvreter's solution
http://computer-go.org/pipermail/computer-go/2010-April/000233.html
Erica's solution
http://computer-go.org/pipermail/computer-go/2013-February/005757.html
Many Faces' solution
http://computer-go.org/pipermail/computer-go/2013-February/005748.html
Useful link by Fuego team
http://sourceforge.net/p/fuego/wiki/JapaneseRules/
Vectorから平塚の囲碁三段のダウンロードができません。
ダウンロードを中止しました
ファイルへの直接リンクなど、推奨されていないリンク元からのアクセスのため、ダウンロードを中止しました。
と表示されエラーとなります。 ダウンロードできるソフトもあり、なんらかの原因があるようです。
>tssさん
まだ途中まで(60MB程度)ですが、Chrome、プロバイダーは@niftyで、ダウンロード出来ているようです。
何か原因があるのだと思いますが…。
>プロバイダーは@niftyで、ダウンロード出来ているようです。
以前、Vectorでダウンロードできない不具合があり今は復旧しているようですがその時のリンク切れによるものと思ったのですが、
ほかのソフトはダウンロードできるのですが。プロバイダーとかモバイルWiFiによってはエラーになるとかあるのかもしれないですね。
どうも原因はこちらにあるようです。
Detlefさんの学習データをAyaに組み込んで強さを調べてみました。
10000playoutの自己対戦だと9割近く勝ち越すようです。驚きました。
計算時間はGPUが遅いこともあって4倍近くかかっています。
組み込み方は、DCNNが0から1までの着手確率を返すので、
それを1000倍して、個々の手のボーナスに掛けています。(0.64なら640を掛ける)
r *= 1000 というのが1000倍、という意味です。すべてのノード作成時に呼んでいます。
対局数は100局未満と少ないのですが、1000倍でも50倍でもほとんど同じようです。
勝率9割だとEloで+400近いですが、playoutは攻め合いとか分かっていないので
人間相手では+50〜+100程度ではないかと思います。
1手に10000 playout、自己対戦
勝率 勝/対局数
0.943 83/88 r *= 1000
0.897 78/87 r *= 500
0.913 84/92 r *= 200
0.932 82/88 r *= 100
0.914 85/93 r *= 50
個々の手のucb_rave の値の計算。最大の値の手を選ぶ
---------------------------------------------------------------
r = result_DCNN(pos(x,y));
if ( r < 0.001 ) r = 0.001;
r *= 1000;
MM_gamma *= r;
C = 0.31
ucb = moveWins/moveCount + C * sqrt( log(moveSum+1) / moveCount );
rave = raveWins/raveCount + C * sqrt( log((moveSum+1)*175) / ((moveSum+1)*0.48) );
W1 = (1.0 / 0.9); // from fuego
W2 = (1.0 / 20000);
beta = raveCount / (raveCount + moveCount * (W1 + W2 * raveCount));
K = 1200;
bias = 0.01 * log(1 + MM_gamma) * sqrt( K / (K + moveCount));
ucb_rave = beta * rave + (1 - beta) * ucb + bias;
---------------------------------------------------------------
10000playoutだとノードは900回ほど作られます。
GTS 450 だと1回17.4msなので15.6秒ほど余計にかかります。
10000playoutをDCNNなしだと1スレッドで5秒ほどです。5秒が20.5秒なので4倍遅くなります。
GTX 970を使えば1回1.6msなので1.4秒余計にかかり、6.4秒、と1.3倍遅くなります。
仮に12スレッドで毎秒2万playout、1手10秒だと29秒余計にかかり、3.9倍遅くなります。
Amazon EC2の g2.8xlarge だと4つGPUが入ってるので2倍遅いぐらいで済むかもしれません。
余談ですが、GPUを使う設定で同時に6プロセス動かそうとするとエラーになるようです。
5プロセスから同時にGPUにアクセスしてたのですがcaffeでは特に問題ないようでした。
データ興味深く拝見させていただきました
私は、すべてのノード作成時に呼ぶのは試しておりませんでした
10000playout ならぎりぎりで実行可能のように思えます
DNN 無しの HiraBot は 15000playout で 1d でしたので
400elo up すれば 5d になるかもしれませんね。
HiraBotさんはRootノードだけ、とのことですが
2手前の探索結果は利用されてないのでしょうか?
Ayaはハッシュ表を消さずに2手前の結果も利用するようにしたら勝率が5%ほど
上昇した記憶があります。
HiraBot の DNN 利用は root node だけです
root node だけで 90elo 向上しました。
HiraBot もハッシュ表を消さずにいます
勝率が 2〜3% 向上したと思います。
パターンファイルを変更した処、自己対局で 90elo 強くなったので
KGS でデータを取りました、KGS 2d のアカウントで playout 15000 です
旧プログラム 1331勝 744敗 勝率 64.1%
新プログラム 1118勝 469敗 勝率 70.4%
50elo の改良です、人との対局では自己対局の半分くらいの改良になっています
パターンファイルの変更の詳細は
1. 棋譜を KGS 高段者の 17万局に変更、以前はプロの 5万局でした
2. 3x3 のパターンをサイズ 4のハチの巣パターンに変更
3. 5x5 および 7x7 のパターンをサイズ 6のハチの巣パターンに変更
ニューラルネットでの GPU(GTX670) の速度を
Detlef Schmicker さんのデータを使用して測定しました
ubuntu, caffe 使用 7.9ms
Windows, cublas 使用 10.5ms
Windows プログラムは caffe を使用せずに cublas を直接呼び出しており
独自プログラムです、内訳は 6.5ms(cublas)、4.0ms(独自プログラム)
となっており、独自プログラムの性能が悪いようです。
情報ありがとうございます。
GTX670でも7.9msもかかるのですか。2.0msぐらいで終わるのかと思っていました。
HiraBotはDCNNなしでもかなり強くなっていたのですね。
一致率もプロの棋譜よりはKGSの方が高くなる傾向があるようで、
ソフトの棋力的にはプロでなくアマ高段者の棋譜の方がいい?のかもと思っています。
>ソフトの棋力的にはプロでなくアマ高段者の棋譜の方がいい?のかもと思っています。
KGSで走らせるならKGSの(高段の)棋譜
プロ相手の対局ならプロの棋譜が良い結果を産むはずです
もちろん,両者の良いとこ取りができればそれに越したことはありませんが
現在の技術(特徴が足りないのか汎化能力が足りないのかそれとも他?)ではまだ難しいようです
DCNN で全ての層をコンボリューション層にすると盤サイズを変えても
データを流用出来ます、下記 DCNN を 19路盤のデータで学習させて
そのデータを使って 25路盤のロボットを作りました
KGS アカウントは WeakBot です
層数 20、全て 3x3、filter数 128 最終段は 1
さっそく一局打ってみました。
違和感ない感じで自然ですね。
3x3だけなのですか。隅ではきれいな定石を打つので
7x7の範囲くらいまで大きく見てるのかと思っていました。
増やす方は間を繰り返すのだと思いますが,
減らす時はどうするのでしょうか?
19路から9路に縮めるのは無理な気がしますが.
19路盤の場合は、3x3入力のネットを 19x19 個並べます
9路盤の場合は、3x3入力のネットを 9x9 個並べます
論より証拠、WeakBot は今 9路盤になっております。
3日(日)は9路、4日(日)は19路の大会です。
お申し込みは明日30日までとなっています。
ご参加可能な方はぜひお申し込みをお願いします。
CGFオープン
http://hp.vector.co.jp/authors/VA012620/
現在の参加予定者リスト
http://hp.vector.co.jp/authors/VA012620/cgf2015/list2015.html
こんにちは。
見学も可能との事なので、都合がつけば今回は見学させていただきたいと思っております。
よろしくお願いします。
講習会で作成したプログラムは、山下様のコードを大量に流用しているので、”自作プログラムに限る”に抵触しそうです。大量に書き直さないと。
プログラム自体は、持ち時間10分であれば gnugo level 10 といい勝負ができる(勝ち越せる?)ようになっています。ただし、相手は10秒も使いませんが。。。
マシンを担いで会場までいくのはたいへんなので、早くネットワーク経由で自宅のマシンにアクセスする環境を容易しないといけません。その方面の知識はほとんど無いのでこれから勉強です。
では、皆様のご健闘を期待しております。
是非見学にいらして下さい。
他の方も、申し込み締め切りは本日9/30までですので、参加したい方は申し込みをお願いします。
こんにちは。
masatsune様は十分なオリジナルの改良をされていますので
そのままで「自作のプログラム」として参加可能と思います。
現にGNU Goのソースを改良して参加予定の方もいらっしゃいます。
その方は、当日改良点などを口頭で説明していただく予定です。
もしよろしければ、ぜひご参加をお願いします。
CNNの並べ方ではなく,19路で学習した重みをどう間引くか
言い換えるとどの3x3を選ぶのかという質問だったのですが.
同じ層の 3x3 はすべて全く同じデータです。
>同じ層の 3x3 はすべて全く同じデータです。
それは面白い.学習時に束縛しているんですか?
その構造で隅と中央の違いをどうやって獲得しているのか.
可能なら今週の土曜日のCGFの例会で話をして頂きたい位です.
通常は fully connected layer で
隅と中央の違いは処理していますが
今回は fully connected layer がないので
隅と中央の違いは入力データに持たせています
19路盤では入力データは 21x21 を 3面使用しています
2面は局面データ、1面は盤端情報です
盤端情報は、中央の 19x19は 0 盤端は 1 をセットしています
荒木です。
10/3,4とCGFオープンが行われました。結果は以下の通りです。
9路(10/3,総当たり、コミ7.5目、中国ルール、持ち時間10分、黒白はジャンケンで決定)
彩|MC_ark|Ray|caren|迷ぃ碁|勝也|nlp|OKOJO|Melo|Tour|勝敗|順位
彩 |ー|○ |× |○ |○ |○ |○ |○ |○ |○ |8-1 |2位
MC_ark|×|ー |× |○ |○ |○ |× |○ |○ |○ |6-3 |3位
Ray |○|○ |ー |○ |○ |○ |○ |○ |○ |○ |9-0 |1位
caren |×|× |× |ー |○ |○ |○ |○ |○ |○ |6-3 |3位
迷ぃ碁|×|× |× |× |ー |× |× |○ |○ |○ |3-6 |6位
勝也 |×|× |× |× |○ |ー |× |× |○ |○ |3-6 |6位
nlp |×|○ |× |× |○ |○ |ー |○ |○ |○ |6-3 |3位
OKOJO |×|× |× |× |× |○ |× |ー |× |○ |2-7 |8位
Melo |×|× |× |× |× |× |× |○ |ー |× |1-8 |9位
Tour |×|× |× |× |× |× |× |× |○ |ー |1-8 |9位
19路(10/4,スイス式、コミ6.5目、日本ルール、持ち時間30分、黒白は組み合わせプログラムにより決定)
順位|プログラム名|1回戦|2回戦|3回戦|4回戦|5回戦| Pt | SOS | SB |MD
1 | 彩 | 8+ | 4+ | 2+ | 3+ | 6+ | 5.0 |12.0 |12.0 |8.0
2 | Nomitan | 5+ | 3+ | 1- | 4+ | 7+ | 4.0 |14.0 | 9.0 |5.0
3 | Ray | 6+ | 2- | 7+ | 1- | 5+ | 3.0 |14.0 | 5.0 |2.0
4 | MC_ark | 7+ | 1- | 5+ | 2- | 8+ | 3.0 |12.0 | 3.0 |1.0
5 | Kugutsu | 2- | 6+ | 4- | 8+ | 3- | 2.0 |12.0 | 2.0 |0.0
6 | caren | 3- | 5- | 8+ | 7+ | 1- | 2.0 |11.0 | 1.0 |0.0
7 | 勝也 | 4- | 8+ | 3- | 6- | 2- | 1.0 |12.0 | 0.0 |0.0
8 | 迷ぃ碁 | 1- | 7- | 6- | 5- | 4- | 0.0 |13.0 | 0.0 |0.0
今日のNHKの18時5分ごろのニュースで放映されました。
情報処理学会が2010年の清水女流と対戦した「あから2010」
の時に立ち上げたプロジェクトが終了したとのことです。
コンピューター将棋「目的達した」終了宣言へ
http://www3.nhk.or.jp/news/html/20151010/k10010265711000.html
開発者の方々は、囲碁の方へシフトしてくるのでしょうか。
チェスの時は Deep Blue の勝利の後、開発者が減ったと聞いています。
自分はいろいろなアイデアを実装し、実験をしているのですが、裏切られてばかりです。
でも、面白いです。
1年後の CGFオープン には出場し、上位入賞したいと思っています。
WCSCに初参加で優勝したボナンザに相当するオープンソースの囲碁ソフトが
出現すればどっと増える可能性はあると思いますが現状では難しいでしょう.
囲碁はMCシミュレーションが有る分将棋より難しいし,19路ではまだかなり差があるし.
caffe によるニューラルネットの学習に再度挑戦しています、中間結果です
20層で内訳は、7x7-96 1層,3x3-96 2層,3x3-64 2層,3x3-48 14層,全結合層 1層
学習データは 3000万局面、テストデータは 170万局面で 0.1epoch 毎にテストした
以前は accuracy が 37% 程度でしたが 3epoch 学習した所 41.3% まで改善しました。
Detlef さんの予測率は 44% ですからあと少しです
Detlef さんのと対局した所 306勝 194敗 勝率 61% +78elo
勝ち越したのには驚き対局プログラムで予測率を測定した所 41.2% でした
Detlef さんより予測率が悪いので手の予測精度は悪いと思われます
グラフは学習が進むにつれて accuracy が向上する様子を描いたものです
横軸が学習 epoch 数、縦軸が accuracy です
青グラフが 12層、赤グラフが 20層のニューラルネットです
層数を増やすことで accuracy が向上しています
![]()
詳細な実験情報ありがとうございます。
Detlefさんのより強くなった、とのことですごいです。
20層はかなり深い印象を受けます。
12層と比べて1局面あたりの時間はどのくらいかかるのでしょうか?
ただ20層のグラフを見た感じですとこれ以上伸びるのは難しいそうです。
棋譜はKGSを使われていますか?
私がDetlefさんのデータでプロとの一致率を測ると44%ではなく、39.3%で
プロの棋譜の方が一致率は低くなりやすいと思います。
また一致率が低くてもChristopher Clarkのデータではプロの棋譜を使った方が
GNU Go相手だと強い、という結果なので、一致率には眼をつぶってプロの棋譜を
使った方がいいのかも、と思っています。
[Computer-go] Detlef's DCNN data
http://computer-go.org/pipermail/computer-go/2015-October/008031.html
突然の投稿、大変失礼いたします。
私もDCNNによる棋譜学習を試みているのですが、学習データが3000万局面はなかなか手が届きにくい量です(KGS高段者の棋譜全部でしょうか)。1 epochの学習に何時間ぐらいかかるものでしょうか。よろしければご教示下さい。
nlp 様 1epoch の学習に 1日かかりました、ネットワークを拡張すれば更に時間がかかります
時間を測定しました、CPU で 12層 8.3ms, 20層 11.2ms でした
棋譜は学習には 35% くらいプロ 65%くらい KGS です
対局プログラムで予測率を測定したときは 100% KGS です
同じ MCTS に Detlef さんのと私のを組み込んで対戦した所
私のが 94勝 106敗 勝率 47% でした
Detlef さんとの直接対戦では成績が良いのですが MCTS に組み込むと Detlef さん
のほうが良い結果が出ています、この理由を考えてみたのですが
私のは入力データにダメ数情報を持たせているため、石の取りと逃げに敏感になっていて
それが直接対戦には有利に働いたが MCTS ではあまり役に立たなかったと思います
Detlef さんのが 70ms に対して私のが 11ms まだまだ拡張の余地がありそうです。
?HiraBot様、早速貴重な情報ありがとうございました。この条件で1日ならば早いと感じました。
棚瀬さんの24のレートがインフレしている、という仮説を実験してみました。
レート100点差以内の人とだけ対戦しているとインフレしやすい、というものです。
実験は10000人のレート1500の人が1000局対戦した、としています。
無差別に対局するとほぼ1400から1600の範囲に入ります。
150点差以内まではほぼ問題ない感じなのですが100点差以内、とすると
急激にインフレが起こるようです。
50点差以内のみ対局だと、最小 924、最大 2092 まで行きました。
レートの計算は24独自ではなく、Eloを使ってます。
棚瀬さんの元のツイート
https://twitter.com/tanaseY/status/654497230838083584
24のレーティングがインフレ(またはデフレ)する理由、というブログでも書こうかと
思いつつめんどくさいので、要点を書くと、例えば1万人の実力が全く同一の集団が
いたとし、全員1500から始めるとする。そのうちたまたま1600になる人達や1400になる
人達が出てくる。(続く)
すると1600の人達は1400の人達との対局を拒否するようになり、その中でたまたま1700に
なる人達が出てくる、という具合に母集団の大きさの許す限り実力が同一にも関わらず
いくらでもレーティングの分布だけは広くなっていく。これが24で起きた上位陣のインフレの
原因で思われる。(続く)
24のレーティングの例えば200点差から期待される上手の勝率は0.75だが、実際はそんなに
勝てない、つまり下位と対戦するのは不利、ということを皆が学習してしまい、ますます
レーティングの膨張に寄与してしまう。(続く)
誰の挑戦でも受ける人と、上位に挑戦ばかりしている人では同一実力でもレーティングは
何百点も違ってくるし、複数アカウントを持っている人がちょっとした運の差で、一つの
アカウントは3000点、他は2600点とかいうことも普通に起きると思われる。
![]()
実力がレーティングで1300点、1400点、1500点、... 1800点の人が10000人いるという様な初期条件であれば、極端なインフレ、デフレが起こるのは、両端のグループ(1300点と1800点)のみだと思うのですが。。。
で、トップグループでは、インフレが進みます。
実際、チェスでもレーティングのインフレが問題になっており(Wiki のイロレーティングの項から)、グランドマスターの増加の原因ではないかといわれています。
1000局ではなく10000局にしても150点差で拒否、のグラフは変わりませんでした。
10000局で150点以下をもう少し調べると、135点差を拒否、でペタンと下に張り付くようです。
![]()
![]()
ネットワークを拡張する前に 20層の DCNN の学習を続けたらどうなるか試した処
accuracy が 41.3% から 42.9% になりました
この辺で妥協して学習結果を HiraBot に取り込んでも良いのですが
もうひと頑張りしてネットワークを拡張し accuracy 44% を目指したいと思います
次は層数を 16層に減らしてその代わり filter 数を増やしてみます
![]()
1年ちょっと前に81Dojoの開発者さんが下記のブログを書いて
おられましたね。
http://hidetchi81.blog.jp/archives/12993833.html
こちらでは、192点差というのをメルクマールとして、Rの
計算方法を変えているとおっしゃっています。
※ 文中では(インフレではなく)デフレと書かれていますが、
観点の違いだと思います…よくわかりませんが…
NNGSによる通信対局、コンピュータ囲碁フォーラムのホームページで公開されているGTP2NNGSを使用させていただき試したところ、コマンドのやり取りはなんとか出来るようになったようです。しかし観戦ができないので、GoGuiが使用できればありがたいのですが可能でしょうか。
GTP2NNGSのconfig.rbで'command'=>'java -jar /User/user/gogui.jar -program "/User/user/nlp"'
などとしてみましたが、対戦させようとした2つのPCともに空白の碁盤を表示するところまでで(GTPのclear_boardまで)、コマンドをやり取りするところまで至りませんでした。初歩的な質問で恐縮ですが、GoGuiが使用可能でしたら教えていただければ幸いです。
81Dojoの対戦相手を決める仕組みはよく分かってないのですが
点数差が大きいときに計算を変えるだけだと、点数の近い人だけ対戦するインフレ、
は防げないような気がします。
もっとも普通、トップに近い人の数はかなり少ないので、このインフレが
実際どの程度起きてるのかは微妙かもしれません。
goguiを使いつつ、NNGSに繋ぐのは今のところ出来ない、と思います。
ただ、NNGSでの対局を観戦するだけなら、jago を使えば見れます。
CGFオープンやUEC杯の時にもこれで見ています。
jago
http://www.rene-grothmann.de/jago/
山下様、ありがとうございました。jagoを試してみます。
NHK講座テキスト11月号に千田5段が8月の千田−阿久津戦の自戦記を書かれています。
将棋ソフト、Apreyでの分析を中心に書かれており、
「NDFが理想」
「従来の方法(練習、研究)がぬるいものに変わったように思える」
『人間の終盤が正確ではないことが分かった』(兄弟子の言葉)
Aperyとは持ち時間1時間で勝率2割ほど
「勝てなくても挑まなくてどうするのか」
と熱い内容で面白かったです。
題名は「コンピュータに触れた者たち」です。
NHK将棋講座 2015年11月号
http://sp.nhk-book.co.jp/text/detail/index.php?webCode=09191112015
うさぴょんの池さんが著書である「コンピュータ将棋のアルゴリズム」の
HTML版を公開されています。
コンピュータ将棋のアルゴリズム HTML版
http://homepage1.nifty.com/Ike/ComShogi/index.html
池さんのtwitterでの告知
https://twitter.com/YasuhiroIke/status/655706174424125440
コンピュータ将棋のアルゴリズム―最強アルゴリズムの探求とプログラミング
http://www.amazon.co.jp/dp/4777511103
はじめまして。
WebGL対応のブラウザ将棋アプリを作ってみました。
興味のある方はお試しください。
http://earthlovepuzzle.com/
ブラウザだけでこれだけきれいな3D将棋盤が実現できるのですね。
びっくりしました。
ありがとうございます。
コンピュータの強さも、もう少し強くしたいです。
ニューラルネットの学習が思うように進まないので、基本に立ち返って
基礎となるデータを取りました。filter 数を変えて accuracy がどう変わるかを調べた。
構成は 12層で 内訳は、3x3 11層 全結合層 1層で 3x3 の filter 数を 24/32/48/64
と変えた時のグラフです、横軸が学習 epoch 数、縦軸が accuracy です。
filter 数を増やすと見事に accuracy が上昇しています、Detlef さんのは
filter 数 128 でした、128 くらい欲しいのですが学習時間が大問題です。
次は層数を 4/6/8/12/16 と変化させてデータを取る予定です。
![]()
毎日新聞によると新世界の「王将」が25日で閉店になったそうです。
1997年に大田学さんとYSSがTV局の企画で対局したのもこの道場でした。
将棋クラブ:新世界「王将」が投了 「ふたりっ子」でも…
http://mainichi.jp/feature/news/20151026k0000e040208000c.html
大田学さん(真剣師)との通天閣対戦記
http://www.yss-aya.com/oota.html
層数 n, 内訳 3x3-48 n-1層, 全結合層 1層, n=4/6/8/12/16
filter 数を変えた時と異なりはっきり頭打ちになっています
Detlef さんのは 20層でしたが 12層で十分だと思います
filter 数は 128 にするつもりですが
1週間以上学習時間がかかりそうです。
![]()
情報ありがとうございます。
グラフを見ると、層は32層まで増やしても1%ぐらいしか伸びない感じで
filterは増やせば増やすほどまだ比例して上がっていく感じでしょうか。
accuracy 43.7% になりました、44% にはあと一息ですが
一段落の意味で公開します(Windows 専用、CPU処理)
http://kiyoshifk.dip.jp/kiyoshifk/apk/DCNN-windows-cpu-No133.zip
構成は 12層 内訳は 3x3-128 11層 全結合層 1層
出力は黒番で下のような感じになります。
ABCDEFGHJKLMNOPQRST
1┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
2├┼┼┼┼┼┼┼┼┼┼┼┼○●●●┼┤
3├┼┼○┼┼┼┼┼┼┼┼┼●○●○○┤
4├┼┼┼┼┼┼┼┼┼○┼┼○○○●○┤
5├┼┼┼┼┼┼┼┼┼┼┼┼┼┼●●┼┤
6├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼●┼┤
7├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
8├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
9├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
10├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
11├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
12├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
13├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
14├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
15├┼┼┼┼┼┼┼┼┼┼┼┼┼┼●┼┼┤
16├┼┼┼●┼┼┼┼┼┼┼┼┼┼┼┼┼┤
17├┼┼┼┼┼┼┼┼┼┼┼┼┼┼○┼┼┤
18├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤
19└┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘
time=53ms
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0
0 0 0 0 0 0 0 0 0 0 0 0 86 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
HiraBot さん、はじめまして
私は、CNNで画像分類とかをしています。
囲碁は非常に弱くて、良く分からないところもあるのですが、
碁盤を2D平面データに見立てて、そのままCNNに入力するシンプルな構成で、良い結果が出ていることに、驚いています。
HiraBotさんの構成を見まして、画像分類では常套手段の手法が使われていないように見えましたので、
(既に対応されている、もしくは検討中かも知れませんが)気付いた改善手法について、書かせていただきます。
1.prediction時のデータ増量評価
碁盤は、90度回転と、反転で不変な情報だとおもいますので、
この変形で、4x2の8通りにデータが増量できるかと思います。
予測時に、この8通りのデータの結果を平均するだけで多少スコアは伸びると思います。
但し、処理時間も8倍になります。
2.train時のデータ増量
上記と同じで、学習時に、1データ単位、もしくは、mini-batch単位で、乱数で8通りの変形のどれかを選んで、
学習すると、多少学習データを増やすことが出来ます。
但し、元の学習データ内に、既に増量されているものが含まれている場合には、意味のない操作になります。
3.マルチカラムでの評価
CNNの重み係数初期値や、データの取り出し順序などを乱数で変えて、
複数のCNNを作成します。そして、予測時は、その複数のCNN出力値結果を平均し、最終結果とします。
これも、ネットワーク数に比例して処理時間が増えます。
4.Leaky ReLU
一般のReLUは、正側が1の傾きで、負値の入力は0に変換しますが、
これは、負値に対しても、1以下の傾きを持たせるものです。
-0.1 〜 - 0.3 ぐらいで使われていることが多いですが、この辺りは 予測試験で試しながら、
最適値を見つけていくことが一般的です。但し、性能向上は小さいと思います。
以上、ご参考まで
shallow さんご意見有難うございます、いづれも私のやってない事です
簡単に出来る方法として、1.prediction時のデータ増量評価
を最初にやろうと思います。
HiraBotさん、prediction時のデータ増量を試していただけるようで、楽しみにしております。
が、結果がでなかったらスミマセン。
後、Leaky ReLUの負側の傾きを
-0.1 〜 - 0.3
と書いてしましましたが、
0.1 〜 0.3
の間違いです。
囲碁や将棋は手を読む、と言う思考過程を経るものと思っていたのですが、
CNNでは、そのような多分木を辿るような情報処理というよりは、
良くプロなどが「手が見える」と言う多くの経験からくる感覚を再現しているような気がします。
しかしプロでも最終的には、直感で見えた手を読み進めて、妥当性の裏付けを取ると思いますので、
そのあたりに、CNNの限界が出てくるかも知れません。
CNNで評価関数を作成したり、CNNとモンテカルロ法の融合など考えてみるのも調査テーマとして面白そうです。
とは言え、CNN自体、まだまだ進化過程にありますので、画像系で効果が確認されたアルゴリズムのアナロジーで、
行くところまで行ってしまうような気もします。
shallow さん、データ増量評価でのデータを取りました
KGS 高段者の 111局(約20000局面) での手の予測率です
増量評価しない場合 46.1%
増量評価した場合 47.1%
1% 向上しており効果はあったと思います
ただ 8倍の計算時間が掛かるため採用するかどうかの判断は難しいです
Detlef さんのは同一棋譜で 44.6% でしたからやっと Detlef さんを超えました
HiraBotさん、とりあえず、若干の効果があったので、良かったです。
処理時間に関しては、計算コスト対効果は低く、
採用するかどうかは、私が口を挟む話ではありませんので、
最適解をご判断いただければと思います。
prediction時のデータ増量と同様に、Multi Colomn方式も同様の傾向だと思います。
しかし、Multi Column方式で面白いのは、同種のネットワークで構成すると、
効果は、prediction時のデータ増量とそれほど変わらないと思いますが、
異種で構成すると、大きな効果が出ることがあることです。
異種というのは、ネットワークの構成や、データの前処理や、データの情報量などを変えたものです。
個々のネットワークで性能が出なくても、データの特性が補完関係にある場合は、
単一で性能の良いネットワークの同種Multi Column よりも性能が出ることがあります。
モンテカルロ法との融合が面白そうと言いましたのは、この経緯からそう思いました。
ただ、この異種の組み合わせの良し悪しの判断は難しく、カットアンドトライで職人技なところがあり、
時間も大量に使うことになってしまいます。
CNNが進化過程にあると言いましたのは、上記の単純平均する過程や、ネットワーク構成を試行錯誤する点は、
学習で自動最適化する余地があると考えているからです。
過去ログを読んでおりましたら、モンテカルロ法との融合は、既に山下さん、HiraBotさんが検討されていて効果も確認されていたようですね。失礼しました。
各結果の線形和を取る形で十分効果が出ていると思いますが、
更に狙うとすると、モンテカルロ法の出力結果を、
碁盤データに、1ch追加し、CNN学習すると言う手があるかもしれません。
>更に狙うとすると、モンテカルロ法の出力結果を、
>碁盤データに、1ch追加し、CNN学習すると言う手があるかもしれません。
私もこの方法は考えたのですが、3000playout で 3000万局面のデータを用意するには
約3か月の計算時間が掛かるため諦めました。
> 私もこの方法は考えたのですが、3000playout で 3000万局面のデータを用意するには
> 約3か月の計算時間が掛かるため諦めました。
既に考えられていたとは、流石ですね。ただ、計算量がネックになっているとは、残念な限りです。
難しいとなると、尚更結果が気になりますね(笑)。
そうしますと、中間解としては、
何かしらの経験則で融合モデルを考えていく方法があるかと思うのですが、
例えば、分岐の多い序盤ではCNNが有利で、分岐の少ない終盤はモンテカルロ法が有利との仮説が成り立つのであれば、
手数によって、CNNとモンテカルロ法の重みを変えていくモデルもあるのではと思います。
また、CNNの結果候補をモンテカルロ法で評価する方法もあるかと思いましたが、よくよく考えると、線形和を取る方法と結果的には変わらないですね(苦笑)。
モンテカルロと CNN の融合方法として、モンテカルロでは 20〜30 手の候補を挙げて
その候補について読むので CNN で得られた手をこの候補に入れる方法があります
HiraBot では root node でのみ CNN 計算を行い二段から三段になりました
山下さんは全てのノード(10000playout で 900node 程度) で CNN 計算を行い
自己対戦で 9割の勝率を挙げています
私も全てのノードで CNN 計算を行いたいのですが、計算時間がネックになり無理でした。
> モンテカルロと CNN の融合方法として、モンテカルロでは 20〜30 手の候補を挙げて
> その候補について読むので CNN で得られた手をこの候補に入れる方法があります
そうでしたか。ご説明ありがとうございます。過去ログをきちんと読んでおらず失礼しましたm(__)m。
この方法が人間の思考手順に近く、1つの理想形のような気がします。
こちらの場合は、予測時の計算時間がかかるようで、現行のアルゴリズムでは、GPGPU前提なんでしょうね。
後、過去ログに、CNNで盤面の隅と中央の区別の話がありましたが、確かに、畳み込み層では、
局所特徴の相対的な位置関係が抽出されるだけなので、入力から奥深い最後の全結層1層だけで絶対座標の判断をするのは、
心許なくも思いましたが、文献を少し読んでみましたら、
http://machinelearning.wustl.edu/mlpapers/paper_files/icml2015_clark15.pdf
As the networks increased in size using more than one fully connected layer at the top of the network became unhelpful.
とあり、全結層を2層以上にしても、余り効果がないそうで、少し画像系とは違うと思いました。
ただ、層数の少ないネットワークとのマルチカラムで効果が出るかもしれません。
その他、CNN向上の小ネタとして、畳み込み層でDropoutをする方法があります。
http://jmlr.org/papers/volume15/srivastava14a/srivastava14a.pdf
に記載されていますが、例えば、
p = (0.9,0.75,0.75,0.5,0.5,0.5) // p値が大きいと Drop率が下がる
と出力側から離れるに従い、Drop率を下げていく方式です。
一般に、Dropoutをすると収束が遅くなり、また、出力側から離れる程効果も下がりますので、効果は大きくはないと思います。
>一般に、Dropoutをすると収束が遅くなり、また、出力側から離れる程効果も下がりますので、効果は大きくはないと思います。
私の場合1週間の学習で 2〜4epoch しか実行出来ません(1epoch=3000万局面)
このように epoch 数が少ない場合 Dropout は効果がないだろうと思い
試さずにいました。
> 私の場合1週間の学習で 2〜4epoch しか実行出来ません(1epoch=3000万局面)
計算コストのために、十分な学習ができないのは、もどかしいところですね。
学習データが潤沢にあるのは、Deep Learningにはとても好都合ではありますが。
これは、話半分で聞いていただきたいですが、
Batch Normalizationと言う方法があって、Caffeでも恐らく扱えると思うのですが、
学習時miniバッチ単位で、レイヤ間のデータを正規化する方法があり、
http://arxiv.org/abs/1502.03167
学習の収束を早めるとともに、accuracyも向上すると言っているのですが、
私自身はどちらの効果も確認できず、また他の文献で、この手法を利用したものが知る限りありませんので、
特定条件下に対して有効な手法だと考えています。
>Batch Normalizationと言う方法があって、Caffeでも恐らく扱えると思うのですが、
Local Response Normalization (LRN) レイヤーのことでしょうか?
このレイヤーも一度は採用を考えたのですが alpha や beta というパラメータを
いくつぐらいにすればよいか全く見当がつかなかったため見送りました
効果があるのならいづれテストしたいと思います(現在2週間くらいかかる学習中で出来ない)。
> Local Response Normalization (LRN) レイヤーのことでしょうか?
Batch Normalization(BN)は、LRN とは、違いますね。
LRNでは、1データ当たりで、同一座標の異なるチャネル間での正規化で、
画像分類では、テンプレート的存在であった、画像分類コンペILSVRC2012で優勝した、 いわゆるAlexNetで使用されていたものですが、
誰もが知っていたにも関わらず、今日使用されていないのは、余り効果が確認できなかったということだと思います。
私自身効果が良く確認できませんでした。
ちなみに、AlexNetの元論文には、α= 10^-4, β = 0.75 とありました。
http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
後、これは、BNにも言えることなのですが、
囲碁では、pooling は効果がないそうで、
画像のように、多少の幾何変形や、レベル変動にも不変な情報に一般化するアナログ情報というよりも、符号情報的な要素があるので、
絶対値情報が失われてしまう正規化は、馴染まない気がしてます。。
(自分で言い出しておいてスミマセン)
また、今現在の画像分類におけるテンプレート的存在は、ILSVRC2014 分類部門2位の Oxford Zissermanグループの、
VGG16かと思っています(Caffeモデルもあります)。
http://www.robots.ox.ac.uk/~vgg/research/very_deep/
> (現在2週間くらいかかる学習中で出来ない)
2週間かかるのは、根気がいりますねー
良い結果がお聞きできることを期待しております。
>2週間かかるのは、根気がいりますねー
>良い結果がお聞きできることを期待しております。
現在学習中のネットは GoogLeNet にヒントを得たもので
1層につき 1x1-48 と 3x3-48 と 5x5-48 の convolution を計算し
その出力を concatenation して次層に渡すものです
中間結果では accuracy が 0.8% 程度向上しています
グラフは学習 epoch 対 accuracy です赤線が学習中のネットの中間結果
青線が best データ(4epoch で accuracy 43.7%)です。
![]()
Detlefさんの自宅サーバのCGOSが長いこと止まっていたので
私のVPSで9路と19路を走らせてみました。9路は持碁ありのコミ7目にしています。
半年以上は走らせるつもりです。
13路は以前からのものがそのまま動いています。
time server port komi
9x9 5 minutes yss-aya.com 6809 7.0
19x19 15 minutes yss-aya.com 6819 7.5
13x13 10 minutes cgos.boardspace.net 6813 7.5
http://www.yss-aya.com/cgos/
9路 http://www.yss-aya.com/cgos/9x9/standings.html
19路 http://www.yss-aya.com/cgos/19x19/standings.html
CGOSへの繋ぎ方
http://www.yss-aya.com/bbs_log/bbs2009.html#bbs169
来年の3月のUEC杯ですが、申し込み締め切りが今年は
12月10日まで、とかなり早くなっています。
また、今年の電聖戦は小林光一9段に決まっています。
第4回電聖戦対戦棋士決定/プレスリリース
http://www.uec.ac.jp/news/announcement/2015/20151105-2.html
2015年 UEC杯
http://jsb.cs.uec.ac.jp/~igo/
> 現在学習中のネットは GoogLeNet にヒントを得たもので
> 1層につき 1x1-48 と 3x3-48 と 5x5-48 の convolution を計算し
> その出力を concatenation して次層に渡すものです
> 中間結果では accuracy が 0.8% 程度向上しています
既に、GoogleNetのInceptionモジュールに手を出されていたとは、恐れいりました。
しかも明らかな性能向上ですね!
GoogleNetは、性能を出すための調整が難しいと聞いていたので、話題に出しませんでした。
BNは、GoogleNetと相性が良いのですが、、矢張り、前に書いた画像と囲碁データの違いで、うまく行く可能性は高くないと思います。
後、ようやく気付いたのですが、囲碁のDNNで文献では、読んだ限りでは、Dropoutは使用しているとの記載はなく、
pooling が効かないのと同様に、Dropoutも効かないということですかね。
考えてみれば、盤面全体の情報をフルに分析しないと、次の手の判断が出来ない囲碁で、半分データを抜いて、抜いた状態の如何にかかわらず、
同じ判断させてしまうのは無理がある気がしますね。
全結層では、ある程度データが抽象化されているとは思いますが。
また、VGG16の文献を読みなおしましたが、NINを使っていると思い込んでいたのですが、stride 1の畳み込み層を隣接させる構成になっていて、
使用されていませんでした。NINが、画像分類での常套手段とは言い過ぎなので、取り下げさせてください。
VGG16では、予測時の増量動作について、高速処理のために、少し工夫しているところがありまして、入力画像を反転させたりするのではなく、
入力画像の入力は1回で、全結層の入力地点のマップデータを、反転させたりして全結層の処理について増量処理をしているようです。
今、中国の名人、連笑と4子でDolBaramが対戦しています。
一番手直りだそうです。
1st DolBaram
2nd Zen
3rd ManyFaces of Go
4th Ray
棋譜中継
http://51wq.lianzhong.com/yidongwq/index.html
Mylin Valley The World Computer Weiqi Tournament
http://51wq.ourgame.com/icgoaien.aspx
写真付きのニュース
http://51wq.lianzhong.com/Home/NewsDetails?newsID=539&newsCategoryName=%25e7%2584%25a6%25e7%2582%25b9%25e6%2596%25b0%25e9%2597%25bb
今棋譜中継とニュース見たのですが、連笑名人が勝ったように見えます。最終手は黒ですが、形勢は白が大分良いと思います。Operator Resignでしょうか。
形勢は見てもさっぱり分からないのですが
下のページの最後のほうで6子、とか書いてあるので、3番手直りの
最初の4子局は連笑名人が勝ったような雰囲気ですね。
対人間ではマシンスペック制限はないようなのでUEC杯と同じなら
多分DolBaramは16コアのマシンでしょうか。
直接名人がPCを操作してるのが少し意外でした。
http://51wq.lianzhong.com/Home/NewsDetails?newsID=550&newsCategoryName=%25e7%2584%25a6%25e7%2582%25b9%25e6%2596%25b0%25e9%2597%25bb
DCNN-Detlef と DCNN-No133 を CGOS に出場しました
Deep learning で私の学習させたデータが Detlef さんのデータに比べて
どれくらいの強さか調べるためです、山下さんに感謝して使わせてもらっています。
走らせて頂いてありがとうございます。
DCCNはFuegoくらいにも勝っていて論文どおりの強さですね。
何も考えなくても相当強い、というのはなかなかショックです。
ただ、2眼で活がわかってないので、たまにAya1PO6くらいにも必勝から
負けたりしているようです。
http://www.yss-aya.com/cgos/19x19/SGF/2015/11/14/1529.sgf
リストにない対戦の棋譜が探せないのは不便ですので何か探せる方法を
考えてみます(上の棋譜はサーバからgrepで探しました)
HiratukaはKGSの実績どおりさすがの強さで手強いです。
中国の連笑名人(lian xiao)とDolBaramの5子局が行われているようです。
サーバのトラブル?なのか3つ同じようなのがあります。
09:12分開始のものが本物でしょうか。
棋譜中継
http://51wq.lianzhong.com/yidongwq/index.html
連笑名人が5子でも勝ったみたいです。
最後は6子局ですか。いやはや。
棋譜からの判断ですが、連笑名人、5子局の時の方が余裕があったように見えます。たった一局でDolBaramの傾向を見切ったのかもしれません。
6子局が楽しみですね。
6子はDolBaramが勝ちましたね。後半しか見ていなかったのですが、黒地と思われていたところを白がコウで手にして(騙して?)細かくなったかと思ったのですが、名人が負けを見切って投げましたね。
さすがに6子は厳しかったですか。
この対局もサーバトラブル?で対局がやり直しになって
ちょっと名人に気の毒だと思いました。
しかし中国の名人、若いですね。
百数十局打った結果では、DCNN-No133 が DCNN-Detlef より 90elo 程度強いようです
Hiratuka も Detlef さんから自前に乗り換えます
Hiratuka-10k は Aya786l_10k より 90elo 弱いです
Aya には今一歩及びませんね
これらのプログラムはしばらく打たせようと思います。
少し前にFacebookが囲碁を作っている、と話題になっていましたが
論文が出ています。
KGSでdarkforestという名前で動いていてフリー対局で1dか2d程度、
MCTSに組み込むと1000playoutで90%Pachiに勝ち、5000playoutで
10000playoutのpachiに95%勝つそうです。
ただ、ざっと論文を見た感じではAja達のGoogle DeepMindが出した55%の論文と
それほど差はない印象でした。
darkforestは、今日ぐらいからKGSのランクゲームを打ち始めて
今 1k ぐらい、です。
ついに人工知能が囲碁で人間に勝つ? フェイスブックが開発中
http://www.gizmodo.jp/2015/11/aifacebookgo.html
Better Computer Go Player with Neural Network and Long-term Prediction
http://arxiv.org/abs/1511.06410
darkforest
http://www.gokgs.com/gameArchives.jsp?user=darkforest
darkfores1
http://www.gokgs.com/gameArchives.jsp?user=darkfores1
と、見直すとPachiとの対戦成績では明らかにいいですね。
10k playoutのPachiに対してDCNNのみで勝率87%はかなりだと思います。
CGOSの pachi10_Pat_10k が2133点なので、FacebookのDCNNは2460点ぐらいでしょうか。
http://yss-aya.com/cgos/19x19/standings.html
引用されているAja達(Maddison)のFuego 10kに23%、のデータはFuegoの最新版に対するもので
2011年に出されたFuego Version 1.1 に対する勝率は55%ぐらいかと思います。
Move Evaluation in Go Using Deep Convolutional Neural Networks
http://computer-go.org/pipermail/computer-go/2014-December/007094.html
先日の某将棋ソフトトーナメントの優勝者が囲碁ソフトの開発を明言されていたので、
囲碁ソフトに興味がわきました。
ところでみなさまはどこで囲碁ソフトを動作しているのでしょうか。
将棋ソフトでいうところのFloodgateのようなものがあるのでしょうか。
ある特定の囲碁ソフトに対する勝率で評価するのは危険です.
少なくともタイプが違うソフト2種類はないと.
実際,KGS でのランクは 1k 辺りに落ち着きそうです.
シチョウがちゃんと処理できずに 1d になるのは難しいでしょう.
通りすがりさん,囲碁には CGOS と言うのがあります.
将棋の Floodgate はこれを参考に作られたものです.
今は山下さんがホストしている http://www.yss-aya.com/cgos/ がメインですが,
13路だけは http://cgos.boardspace.net/ で動いています.
darkforest の KGS ランクが 1k というのはすごいですね
Detlef さんの DCNN が 3k でしたから 2 ランクアップしています
私の DCNN との違いを調べると
最終層の全結合層がなくてすべて Convolution 層になっています
したがって 9路盤 13路盤および 19路盤が全て同じデータで動きます
filter 数が私のは 128 ですが 384 になっています実に 3倍です
filter 数を 3倍にすると学習時間は約 9倍になります
私のシステムでは学習に 10週間かかる事になりちょっと無理ですね。
今見ると、darkfores1 の方は1dになってますね。
何も考えずに1dですか・・・。
ただ、1回の計算に0.2秒かかるそうで、同時に128局面計算できるとはいえ、
これがかなりネックになりそうです。
filter数にかかる時間は2乗に比例するのですか。
GPWでAja達の論文を追従実験された方がいて、53%までの一致率まで行ったそうですが
学習には一ヶ月間かかったそうです。
一時期、DeltefさんのCGOSの19路でPuego、というのが出てきて、KGS 2dのAya以上の
強さだったのですが、それはFuegoに53%のDCNNを繋げたものだったそうです。
ggさんありがとうございます。
囲碁はNHK杯をちら見するぐらいなのですが、
PCソフトでメジャーなのは19路盤なのでしょうか。
300 :名無し名人:2015/11/25(水) 07:35:42.63 ID:zy2Y5LBH
それにしても、floodgateって2リーグ制にしてもらえんかね。
R2800以上がA級、R2799以下がB級というように。(2weekみても、ソフト数のバランスが良い)
Pona、NDF、Aperyの一流は見たいし、fv_binを超すのが目標の開発者だっている。
だが、マッチネームが決まった時点で勝敗が決まってるような将棋のどこが面白いんだ?
上位の時間切れでレーティングに支障が出る事だってある。
囲碁の話題の最中で申し訳ありませんが、どうかご一考下さい。
>PCソフトでメジャーなのは19路盤なのでしょうか。
何を訊きたいのか今一つ分からないのですが
囲碁自体 19路がメインです.最近の流れだと 13路が入門用,9路は時間が無い人用でしょうか
PCソフトは(ニューラルネットを使ったものを除いて)どの大きさにも対応しています
大会で挙げると,UEC杯は19路ですが,Computer Olympiad は 9路,13路,19路があります
CGF オープンは 9路と 19路,GPW 杯は 9路と 13路と言った様に,目的に応じて色々あります
なるほど。ありがとうございます。
参考になりました。
darkfores1 が 2d になってますね。DCNNだけで2dですか・・・。
darkforest の方も 1d になっています。すさまじいです。
最初 darkfores2 はDCNN+MCTSかと思ってたのですが
これもMCTSなしのDCNN単体のようですね。
darkforest1 より+150 Eloほど強そうですから 3d まで行くかも知れません。
次の1手だけでなく、2手後の相手の手、3手後の自分の手、まで予測させることで
次の1手の一致率は57%ぐらいで変化がなくても強さには大きく差がでる、というのは面白いです。
PV(最善応手手順)を予想するみたいなものでしょうか。
>darkfores1 が 2d になってますね。DCNNだけで2dですか・・・。
人間で考えて見るとノータイムの着手だけでどこまで行けるかになりますが
小学生の強い子やプロなら多分KGSの3dくらいまでは行くでしょうから
決して無茶な話ではありません
#なんせprediction rateが50%を超えているのですから
問題はそこから先で,これが凄く難しい#この展望がないのが大きな問題
ただ,darkforest の戦績や棋譜を見る限り,相手が欠陥を突いてないように感じます
まぁ人間はシチョウを知ってるから無理に逃げ出したりはしないし
死活でも自分がダメだと思ったら動き出したりはしませんからねぇ
そういう意味では正確な棋力の測定というのはそれだけで論文になりそうな難しさがあります
彩迎え撃つ?
https://twitter.com/issei_y
UEC杯に参加されるのですか。楽しみです。
darkforest2 が予定通り? 3d になってますね。
Erikも書いてましたが囲碁が強い人はほとんど考えないで
高度なパターンマッチングをしているだけなのかもしれないですね。
http://www.gokgs.com/gameArchives.jsp?user=darkfores2
韓国の中央日報の日本語版に記事が出ていました。
世界コンピュータ囲碁大会で日本の「ZEN」破った韓国の「トルバラム」(1)
http://japanese.joins.com/article/908/208908.html
名前、決まったのですね。でも、いきなり19路盤ですか。
自分は、9路盤でがんばります。(腕試しは、来年の秋の予定です。)
>darkforest2 が予定通り? 3d になってますね。
流石に KGS の連中も放っておけないようで 2d に戻されて
今はお休みしてるようです
そういえば、囲碁はどうやってソフトを強化しているのでしょうか。
囲碁で将棋のような機械学習があるのかがわかりませんがどうなんでしょうか。
将棋だとプロの棋譜を取り込んでいるとか上位ソフトの棋譜を取り込んでいるとかききますけど。
みなさんはどうされているのですか?
最近の囲碁ソフトもプロの棋譜を使った機械学習をしています。
大きいのは
1. 読む手を絞り込む
2. シミュレーションの精度を上げる
の2つがあり、どちらもプロの棋譜やKGSのアマ高段者の棋譜から
「いかにプロの手を真似できるか」を競っています。
将棋と同様に真似できる精度が上がると強くなっていきます。
将棋の場合は王様と飛車、金の位置関係、といった3駒関係がよくつかわれており
囲碁ではパターンの大きさやダメの数などを学習させます。
最近でここでも話題になっているのはニューラルネットの層を深くした
Deep Learning、と呼ばれるものです。DCNNというのがこれにあたります。
特徴は、今までは3x3や5x5、といった小さな大きさのパターンを学習させてたのが
19x19の盤面全体を丸ごとニューラルネットに放り込むことで、今までの方法より
格段に性能がいいものができ、ブレイクスルーになりそうだと注目されています。
ソフトの棋力がアマ6段程度なのもあり、まだソフトの棋譜から学習する、といったことはあまりされていません。
回答ありがとうございます。なるほど、囲碁にもDeep Learningがあるのですね。
プロの棋譜なのですが将棋の棋譜に比べて囲碁のプロの棋譜の入手は
困難であると聞いたことがあります。
実際に囲碁ソフトの開発をしたりしている際にそのような不便はあるのでしょうか。
Remi の学習アルゴリズムを抜かしちゃ駄目でしょ
Crazy Stone と Zen の二強が使ってるんだから
論文の和訳は http://www.geocities.jp/hideki_katoh/MMGoPatternsJ.zip
これも棋譜から石の配置やダメの数などの特徴を抽出して与えることで
実際に打たれた手を学習するものです
流行の DCNN 違うのは,特徴を自分で色々選び出して与えなければいけない点ですが
速度(学習,実行とも)は二桁位速いという利点があります
通りすがり さんもつくられませんか。
山下さんがモンテカルロを使った雛形と説明資料を公開されており、9路盤なら GnuGoのレベル8-9程度の物は、1−2ヶ月で作れると思います。そこから先が大問題ですが。
自分はここ4−5ヶ月はまっています。面白いですよ。
プロの棋譜はfacebookの論文の中でも使われているのはGoGoD、と呼ばれる
ヨーロッパの愛好家?が集めた棋譜集です。84000局近く入ってます。
値段は15$、2000円程度なのでリーズナブルです。
ほかにはフリーで手に入るのはBadukMoviesというサイトで手に入るものなどがあります。
60000棋譜ほどです。
ただ著作権がらみで微妙なためか、KGSの完全にフリーな棋譜集が論文で
使われることも多いです。
GoGoD
http://gogodonline.co.uk/
Pro game collection
https://badukmovies.com/pro_games
Game records in SGF format (KGSの棋譜集)
http://www.u-go.net/gamerecords/
みなさま回答ありがとうございます。かなりやりこんでらっしゃいますね。
開発には興味あります。大会とかも電王戦とか電聖戦とかを見るとみなさん楽しくやってらっしゃるようですし。
なのですが、私はなんの才能もなく目の前の仕事にただただ時間を搾取される社会人ですので(汗)
開発設備とかいろいろ揃えようとすると資金の方もそこそこかかりますし、
旅費とか運搬費とかも馬鹿になりませんからね。
せっかくの勧誘は名残惜しいですが、今はみなさまが将棋や囲碁で時代のトップ棋士を打倒される夢を見ながら茶の間で拝見させていただくとします。
ソフト開発のほうはとりあえず保留ということで。とりあえず見る将ならぬ
観る碁を始めたいと思います。
Goguiというソフトをダウンロードしてきて彩をさっそく拝見しております。
みなさんは囲碁ソフトを開発するときどのソフトを参考にされていますか?
もしよろしければ教えてください。
Goguiが一番多く使われている囲碁ソフト用のGUIだと思います。
ただ、リアルタイムでの検討機能や棋譜解析機能、など「将棋所」のような
機能はありません。これは思考エンジンとの通信プロトコルのGTPに
まだそれに該当する仕様がない、というせいでもあります。
Goguiで動かす代表的なソフトはGNU GoやFuego、Pachiなどでしょうか。
こんにちは。
タイトルの件、お分かりになる方がおられましたら、お教えください。
gogui-twogtp.exe を使って連続対局をしております。
対戦相手とレフリーは GnuGo3.8 です。
対戦相手とレフリーに、--komi 7.5 を付けておりますが、コミ、6.5 で動作している様に思います。
少なくても、レフリーは、コミ6.5で計算していました。( aya6.34 のコミ6.5の結果と一致しました。 )
以下、~.dat ファイルです。
# Black: GNU Go
# BlackCommand: E:\Igo\gnugo-3.8\gnugo.exe --mode gtp --level 3 --chinese-rules --komi 7.5
# BlackLabel: GNU Go:3.8
:
# Komi: 6.5 <<==
# Openings: E:\Igo\Fuego\sgf\openings\9x9-2stn-300 (300 files)
:
# RefereeCommand: E:\Igo\gnugo-3.8\gnugo.exe --mode gtp --chinese-rules --komi 7.5
# RefereeLabel: GNU Go:3.8
# RefereeVersion: 3.8
# Size: 9
# White: go2-md8020-W-gtp
# WhiteCommand: go2-md8020po-W-30k.exe -po 25 <=自作プログラムです。
(以下略)
Helpによると、
Used with --mode ascii (or other modes for non-interactive settings)
--komi
とありますが、これは、'gtp' モードでは、コミの変更はできないという事でしょうか。
変更する方法があればお教えください。
よろしくお願いします。
以下のようにするとコミを正しく設定できると思います。
gogui-twogtp.exe から動かした場合、起動時のパラメータで設定した komi の値が
GTPコマンドで各プログラムに渡されるため、個々の起動パラメータにつけた
komi の設定は上書きされてしまいます。
gogui-twogtp.exe -black "c:\go\gnugo\gnugo.exe --mode gtp" -white "c:\aya\release\aya.exe --mode gtp" -games 100 -size 9 -alternate -sgffile gnuaya -auto -referee "c:\go\gnugo\gnugo.exe --mode gtp --chinese-rules" -openings "c:\go\gogui\sgf\openings\9x9" -komi 8.5
山下様
お世話になっております。
-komi 7.5
を最後につける事により、意図通り動作させる事ができました。
有難うございました。
囲碁ソフト用のGUIだとEFGobanも二つのソフトを対戦させることができるので観る碁にはなかなかお勧めだと思います
みなさま回答ありがとうございます。
そういえば囲碁ソフトは将棋ソフトみたいに評価値の表示がないのですね。
それとも、たとえばGoguiの結果メニューのようにその局面ごとに領地を
計算させて評価値としているのでしょうか。
最近の強い囲碁ソフトは内部で自分同士を100回対戦させて、65回黒が勝ったから
黒の勝率65%で黒が有利な局面、といった判断をしています。
対戦時には乱数を用いており、モンテカルロ法と呼ばれる手法です。
ですので、一般的には勝率が評価値の代わりとして使われていますが
GoGUIはモンテカルロ法が普及する以前に作られたため、その表示するコマンドを持ちません。
モンテカルロ法を利用した計算でも現在、黒が何目勝っているか、といった
判定はできるのですが、勝率よりも信頼性が下がります。
囲碁と将棋では信頼されている評価方法が違うのですね。
勝率の方が単純に強さを評価できて駒の配置で判定する方は信頼性を評価するのは難しいですね。
そう考えてみると将棋ではやっている3点法の評価みたいなものは特殊なものと考えた方がよいのでしょうか。
将棋で3駒関係が使われているのは、将棋では駒の位置関係が
駒の損得の次に重要らしい、という経験に基づくものだと思います。
囲碁でも下のような形は黒が有利なので+15点、これを盤面全部足し合わせて+341点で黒優勢、
といった評価も可能ですが、(多分)うまくいかず、これよりは陣地の大きさを
適当に調べた方が正確です。
○●┼
○●○
┼●┼
そして現在は、陣地を途中で数えるよりは
最後まで乱数で打ち切った局面を計算した方がより正確、なのが
分かってきたため主流になっています。
将棋・・・その局面の評価値を駒得などで瞬間的に判断
囲碁・・・その局面から最後まで打ち切って評価
こういう違いがあり、どちらかというと駒の位置関係を調べる将棋のやり方の
方が昔からの主流で、囲碁の方が最近出てきた異端です。
ルールは全然違うとはいえ
二人零和有限確定完全情報ゲームに分類される二つのゲームの
解読方法が違うのは面白いですね。
終局の陣地を評価対象にするということになると気になるのは
評価対象とまったく一致しない局面が発生した場合ですね。
将棋ソフトの方は一部の駒の配置という評価方法のため、
機械学習でも探せない未知の局面をカバーすることは可能でしょうけど、
囲碁ソフトは打ち切った局面で評価するということは、
打ち切られたことのない局面、もしくは発見されたことのない局面、
世間で新手と呼ばれるものは評価できない気がします。
そこはどうやっているのでしょうか。
>どちらかというと駒の位置関係を調べる将棋のやり方の
>方が昔からの主流で、囲碁の方が最近出てきた異端です。
完全情報ゲームではそうですが,マージャン,ポーカー,バックギャモン等の
不完全情報ゲームではこちらが主流ですし,
この手法の理論的背景であるモンテカルロサンプリングという手法は
関数の近似計算手法として多方面で広く使われています.
#DRAM の設計にも使われている.
>評価対象とまったく一致しない局面が発生した場合ですね。
囲碁の終局状態の地を計算するのは非常に簡単で,
どんな局面でも正確に求まるのでその心配は無用です.
困っています。
ここで聞いてよいのか分からないのですが、頼れる人がいない状態なので。
Pachiのプログラムに詳しい方いらっしゃいませんか。
「詳しい」というのがどの程度のことを指しているのか分かりませんが、普段Pachiのプログラムを対局実験に使っております。どうしたのですか?
荒木様
返信ありがとうございます。
今現在私は盤面のある部分(例えば天元や星)のucb1値を意図的に大きくし、プレイアウトを多く割り振るようにしたいと考えております。ですが、その限定した範囲のucb1値のみを大きくする方法が私の知識では分からなかったためどのようにすればよいのかを聞きたく書き込みました。
私はPachiを「対局相手のプログラムとして」使っているだけなので、
それはわからないですね…。申し訳ありません。
もちろんソースを読んだことはあるのですが、何ぶん昔のことですし、
「改造」までしたことはないので、そんなあやふやな知識で中途半端に
お答えするのも失礼でしょうし…。申し訳ありません。
今年は例年より申し込み締め切りがかなり早くなって明日までです。
参加できるかもしれない、という方はとりあえず登録しておくと
後からキャンセルするだけなので安心かもしれません。
http://jsb.cs.uec.ac.jp/~igo/
中途半端な答なのを覚悟で大急ぎでバージョン 11 (retsugen) の
ソースを解凍したものを表面的に追ってみて次のようなことを
考えてみました。
例えば、次のことを希望したとします。
UCT で UCB1 値 u に基づいて木を降りて行くときに
現在の盤上の石数 x と次に選ぶ手の位置 y で UCB1 値を変更したい。
変更方法は、関数 f(x,y) を作っておき、u を u + f(x,y) に変える。
目的とする Pachi の UCT ポリシーは、UCB1 + AMAF とする。
Pachi では、手を選ぶための UCB1 値に相当する値の計算は、
uct/policy/ucb1amaf.c 内の関数 void ucb1rave_descend( ... ) で
為されているようです。
この関数の記述の中で使われている uctd_try_node_children( ... )
は、関数呼び出しではなく uct/policy/generic.h で定義されている
マクロです。
このマクロが呼び出された後に変数 urgency を更新していますが、
この urgency が UCB1 値に相当するもので、この値が最大の子が
選ばれるようです。
なので、ここで urgency += f(x, y) のようなことをすればよいように
思います。
石数 x を知るには、現在の盤面 (局面) が必要です。
これは、関数 ucb1rave_descend を呼び出し元の関数 uct_playout
( uct/walk.c 内で定義) で変数 b2 に入っています。
具体的には、 int res = board_play(&b2, &m); で手 m を打った
直後の盤面 (局面) に更新されます。
変数 (tree_node *) n がその盤面に対応するノードなので、構造体
tree_node の定義に石数 x の情報を追加 (例えば、 int ishisu; という
メンバーを追加) しておいて、 int res = board_play(&b2, &m);
の直後に盤面 b2 の石数 x を求めてから n->ishisu = x; を実行すれば
よいと思います。
もし少々誤差があってもよいなら uct_playout の呼び出し元
の uct_playouts (uct_playout の直後で定義) で uct_playout を
呼び出す前に t->root.ishisu を正確に設定しておいて、現在の局面まで
子を辿った回数 (dlen - 1 で良いと思います) を足せば簡単です。
x を石数でなく初手からの手数でよいなら b2->moves がそのまま
使えるように思います。
もし x として b2->moves を使うなら構造体 tree_node の定義に
int ishisu; を加える必要もないはずです。
>荒木様
いえ、わざわざ返信していただきありがとうございました。
>通りすがりの人様
返信ありがとうございます。
ここまで丁寧な回答を頂けるとは思ってもいなかったので大いに参考にさせていただきます。
連投で申し訳ございません。
>通りすがりの人様
ここまで丁寧な回答を頂いておきながら質問なんですけど。
次に選ぶ手の位置 y の位置情報というのは自身でまた別に取得しなければならないのでしょうか?
また位置 y のucb1値を更新したという情報はどこで保持されているのですか?
質問ばかりで申し訳ございません。
> 次に選ぶ手の位置 y の位置情報というのは自身でまた別に取得しなければならないのでしょうか?
int res = board_play(&b2, &m); の直ぐ上の行が
struct move m = { node_coord(n), node_color }; となています。
2つのメンバーをもつ move (手) 型構造体の変数 m に2つのメンバーを
代入していて、最初が選んで降下して辿り着いたノード n の (石を置いた)
座標値で2番目が色 (白か黒) のようです。
move 構造体 ( move.h で定義) の第1メンバーは coord_t 型で、
move.h に typedef int coord_t; があるので整数型のようです。
おそらく盤を1次元的に表していて最初の位置から何番目かを表して
いると想像します。
間違っていたら御免なさい。
> また位置 y のucb1値を更新したという情報はどこで保持されているのですか?
ucb1 値に相当する変数 urgency は、その都度計算されているようで
計算の材料となる値は、 uct/tree.h にある tree_node 構造体の定義を見ると
struct move_stats u;
struct move_stats prior;
/* XXX: Should be way for policies to add their own stats */
struct move_stats amaf;
/* Stats before starting playout; used for distributed engine. */
struct move_stats pu;
/* Criticality information; information about final board owner
* of the tree coordinate corresponding to the node */
struct move_stats winner_owner; // owner == winner
struct move_stats black_owner; // owner == black
この辺りに入っているように見えます。
move_stats 構造体は stats.h で
struct move_stats {
int playouts; // # of playouts
floating_t value; // BLACK wins/playouts
};
となっています。
おそらく、n->amaf.value が RAVE での黒から見た勝率ではないでしょうか。
最後にこちらから質問なのですが、一般的な UCT アルゴリズムの実装では、
「 ucb1 値を更新したという情報」を保持するものなのでしょうか。
恥かしい話、UCT アルゴリズムをよく理解していないもので。
山下先生の本などをもう一度読んで勉強しようと思います。
コンピュータ囲碁がえらいにぎやかになってますね。
ponanGo / 山本一成
Gonanza / 保木邦仁
あたりが初出場初優勝するか、私には興味あるところですが
古株(Crazy Stone,Zen,Aya)にはボコボコでしょうね。(見たんかいなぁー)(^^;
Sandra / 西海枝 昌彦 氏は Selene(将棋)の方ですね。
きふわらべ / 高橋 智史 氏は、きふわらべ(将棋電王戦)の方ですね。
コンピュータ将棋の開発をされていた方の囲碁への参戦が増えてきました。
参加者も多いようですし、見学は無理そうですね。
>通りすがりの人様
またまたご丁寧な返信ありがとうございます。
これも大いに活用させていただきます・
>質問
これはおそらく私の書き方が悪かったために御幣を生んでしまったようなので訂正いたします。
「ucb1値を更新したという情報」というのは、ucb1値を変更しましたよと言う情報ではなく、
更新したurgencyの値は「 y 」という場所のucb1値を更新しましたよという情報をどこで保持しているかという意味です。すなわち、urgencyの中に y という場所の座標情報があるのか、もしくは
別のものにそういう情報があるのか、という意味です。
私の書き方ですと確かに、更新したか否かの情報を保持しているかという風にしか捉えられません。申し訳ございませんでした。
ですので、更新したかどうかの情報は一般的にはいりません、が回答になります。
一瞬、消滅したのかと……(^^A
修正いたしました。
ご指摘ありがとうございました。
board.h によれば盤 bd 上 k 番目の位置の情報は bd.b[k]
求まるようです。
アクセスのためのマクロが色々定義されています。
盤のサイズに相当する bd.size は、実際のサイズ、例えば19路盤の19
よりも2大きくしているようです。
move.h によると、例えば c7 の場所の盤上の情報は、
bd.b[3 + 8 * 21] で求まると思います。
ucb1amaf.c で urgency を更新しながら降りる先の子ノードを
探しているとき、子ノードの候補へのポインタが変数 ni に
入っているようなので (int)ni->coord (マクロで node_coord(ni))
がその子ノードへ行く手で石を置く盤上の位置 (上の bd.b[k] の k)
のはずです。
ただし move.h によると node_coord(ni) が -1 のときはパスを
表している (static coord_t pass = -1;) ようです。
実際に fprintf(stderr, "... %d ...", ...); のような文を
ソースファイルに入れて make し直して pachi を動かして
何が表示されるか見てみるとよいと思います。
恥かしい間違いをしていました。
> move.h によると、例えば c7 の場所の盤上の情報は、
> bd.b[3 + 8 * 21] で求まると思います。
この中の bd.b[3 + 8 * 21] は、bd.b[3 + 7 * 21] の間違いでした。
>通りすがりの人様
色々と教えていただき本当に感謝しています。
これだけ聞いておいて更にお尋ねするのもどうかと思いましたが、
本当に今理解しておきたいので恥を忍んで質問いたします。
walk.cのuct_playoutがどのようになっているのかが分かりません。
そして、b2は現在の盤面状況、b2.movesに現在の手数。
m.coordが手の位置で認識はあっていますか?(全てwalk.cのuct_playout内)
c7の場所の盤面情報はbd.b[3+7*21]とありますが、なぜ3+7*21=150という値がc7の盤面情報となるのでしょうか。
質問ばかりで本当に申し訳ございません。自身の無知学習不足が露呈しており恥ずかしい限りですがよろしくお願いいたします。
> walk.cのuct_playoutがどのようになっているのかが分かりません。
私もよく分からないので色々想像して解釈してみました。
降りる先の子のノードを選ぶときは、 /*** Choose a node to descend to: */
のコメントの下にある
u->policy->descend(u->policy, t, &descent[dlen], parity, b2.moves > pass_limit);
か
u->random_policy->descend(u->random_policy, t, &descent[dlen], parity, b2.moves > pass_limit)
が実行されて選択の動作が為されます。
このとき、u->policy->descend は、uct/policy/ucb1amaf.c にある関数
ucb1rave_descend へのポインタが設定されていると想像しました。
u->random_policy->descend が何に設定されているのかよく分かりませんが、
uct/uct.c には、次の記述があります。
/** UCT behavior and policies */
} else if ((!strcasecmp(optname, "policy")
/* Node selection policy. ucb1amaf is the
* default policy implementing RAVE, while
* ucb1 is the simple exploration/exploitation
* policy. Policies can take further extra
* options. */
|| !strcasecmp(optname, "random_policy")) && optval) {
/* A policy to be used randomly with small
* chance instead of the default policy. */
> そして、b2は現在の盤面状況、b2.movesに現在の手数。
> m.coordが手の位置で認識はあっていますか?(全てwalk.cのuct_playout内)
正しいと思いますが、 m.coord は、降りる先の子が見付かり、その子に
降りた後なので、その子の手の位置になると思います。
降りる先を探している ucb1rave_descend の中でなら node_coord(ni) に
なると思います。
> c7の場所の盤面情報はbd.b[3+7*21]とありますが、なぜ3+7*21=150という値がc7の盤面情報となるのでしょうか。
board 構造体のメンバー b は、
enum stone *b; /* enum stone */
と定義されています。
すなわち、enum stone 型の要素の1次元配列の先頭を指しています。
enum stone は、stone.h で
enum stone {
S_NONE,
S_BLACK,
S_WHITE,
S_OFFBOARD,
S_MAX,
};
と定義されています。
5番目の列挙子 "S_MAX," の意味がよく分からないのですが、enum stone
の各列挙子を2ビットでなく3ビットで表そうという意図でしょうか。
盤の最後にだけ区切りとして S_MAX を置いているかもしれません。
整数値としては、
S_NONE 0, S_BLACK 1, S_WHITE 2, S_OFFBOARD 3, S_MAX 4
になると思います。
以下に盤面 bd.b[] の状況の例を挙げます。
. 空 (S_NONE) / X 黒石 (S_BLACK) / O 白石 (S_WHITE)
/ # 盤外 (S_OFFBOARD)
+--- 最初の盤外は 0 番目、
| C7 の X は 3 + 21 * 7 番目、bd.b[3 + 21 * 7] = S_BLACK
|
V A B C
# # # # # # # # # # # # # # # # # # # # #
1 # . . . . . . . . . . . . . . . . . . . #
2 # . . . . . . . . . . . . . . . . . . . #
3 # . . . . . . . . . . . . . . . . . . . #
4 # . . . . . . . . . . . O . . . . . . . #
5 # . . . . . . . . . . . . . . . . . . . #
6 # . . . . . . . . . . . . . . . . . . . #
7 # . . X . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . X . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# . . . . . . . . . . . . . . . . . . . #
# # # # # # # # # # # # # # # # # # # # #
>正しいと思いますが、 m.coord は、降りる先の子が見付かり、その子に
>降りた後なので、その子の手の位置になると思います。
>降りる先を探している ucb1rave_descend の中でなら node_coord(ni) に
>なると思います
つまり、m.coordもnode_coord(ni)もucb1値を更新しようとしているnode(手の位置)を
示していると考えてよいのでしょうか?
>C7 の X は 3 + 21 * 7 番目、bd.b[3 + 21 * 7] = S_BLACK
1行目のV列から数えれば確かに 3 + 7 * 21番目となるのですが、
これは一番上の行の#は含まなくてよいのでしょうか?
定義で x + y * board_size(board)となっているから 3 + 21 * 7 となるのはわかりました。
しかしV列の#は含めて1行目の上の部分にある#群を含まないのがよくわかりません。
縦棒とVの字で下向きの矢印を作って最初の「盤外記号 #」の位置を
示しました。
以下が参考になれば幸いです。
gtp.c の
else if (!strcasecmp(cmd, "genmove") || !strcasecmp(cmd, "kgs-genmove\
_cleanup")) {
の直後に
{int i, j;
fprintf(stderr, "board->b =\n");
for(j = i = 0; i < 21 * 21 + 1; i++){
fprintf(stderr, " %d", ((int *)board->b)[i]);
if(++j == 21){
fprintf(stderr, "\n");
j = 0;
}
}
exit(1);
}
を挿入してから
make
./pachi
としてから一連の GTP コマンド
boardsize 19
clear_board
play b q16
play w d17
play b q4
play w d4
play b d15
play w c13
play b c17
play w g17
play b f16
play w c18
play b f17
play w d16
play b c14
play w d13
play b c16
play w e15
play b b18
play w e18
play b f18
play w e16
genmove b
を入力したところ、最後に
genmove b
IN: genmove b
board->b =
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 1 2 2 1 0 0 0 0 0 0 0 0 0 1 0 0 0 3
3 0 0 1 2 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 1 2 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
0
が表示されました。
Pachi での盤面は、(32ビット) 整数型の1次元配列として
扱われているようです。
>通りすがりの人様
すみません、私が数え間違いをしておりました。
数々のご丁寧な解説ありがとうございました。
まずは現在の手数b2.movesと更新するnodeの位置node_coord(ni)を用いて、
特定の手数、位置のucb1値を弄っていこうと思います。
将棋ってもうプロ棋士に勝ってみんな開発終了したんですか?
結論としては、評価関数をボナンザメソッドで作成し、単純なminimax(高速化は別として)が強いってことなんでしょうか?
改良したPachiと通常のPachiの対局を試みようとしてみました。
java -jar ./gogui-twogtp.jar -black 'pachi-cus --mode gtp' -white 'pachi' -maxmoves 300 -size 19 -komi 6.5 -referee 'pachi-cus --mode gtp'
-alternate -auto -games 1 -sgffile 'Kifu/pachi'
としたところ、
The Go program terminated unexpectedly.
と、エラーが起こりました。
これは何が原因で起こっているものなのでしょうか?
連投で申し訳ございません。
Pachiの改良版をコンパイルし、実行してgenmoveで打たせ続けていると
*** LOST ON TIME internally! (-253.81, spent 268.81s on last move)
と言って強制終了しました。
これの原因もわかりません。
また、以前に教えていただいた、walk.cのuct_playout関数からb2の手数情報をグローバル宣言したb3にコピーしucb1amaf.cのucb1rave_decsend関数内で現在の手数b3.movesが10〜11手目の間ならと場合分けを行い、また、盤端からの距離によってucb1値を変化させるべくnode_coord(ni)を用いて場合分けを行ったのですが、思うような結果が出ませんでした。
あえて該当する範囲以外のucb1値をurgency = -1000として、範囲外に打たないようにしようとしてみたところ普通に範囲外に手を打ってしまいます。
どのように改善したらよいか教えていただけませんでしょうか。
> *** LOST ON TIME internally! (-253.81, spent 268.81s on last move)
> と言って強制終了しました。
もし時間設定がおかしくなっているなら、GTP の time_settings 0 2 0
あたりを送ったら時間制限がなくなるのでは?
調べてみたところ、make実行時に
../../uct/walk.h:13: 警告: ‘struct time_info’ declared inside parameter list
../../uct/walk.h:13: 警告: its scope is only this definition or declaration, which is probably not what you want
という警告が出ていました。これと関係があるのでしょうか?
連投で申し訳ございません。
先ほどの警告はwalk.h内に
extern struct board b3;
という記述を増やしたところ出るようになりました。
またしても私ですみません。
警告の分は解決しました。お騒がせしました。
その代わりに他の問題が見つかりました。
ucb1amaf.cのucb1reve_descend関数の中の if (vwin > 0 && ni->u.playouts > b->vwin_min_playouts && (child - u->slave_index) % u->max_slaves == 0) などのurgencyを決めるif文の中に全く入っていないことが分かりました。
これは一体なぜそうなるのでしょうか。
pachiを起動しboardsize 19としてgenmove bと入力しprintfで条件文の中の値を確認したところ条件を満たしていないので中に入っていないことがわかりました。
ではどういう時に条件に一致しif文の中に入るのでしょうか。
よろしくお願いいたします。
cgos に台湾の Wu 先生の研究室で開発している CGI の最新版が登場し,
かなり良い結果を出してます.UEC 杯の目になるかも.
http://www.yss-aya.com/cgos/19x19/standings.html
D54、というのが私の表記 Aya786_D54_n600_6c と同じなら
Detlefさんが12月8日に公開した54%の一致率の学習データを使ったものでしょうか。
まだ局数が少ないので何ともですが +400Elo ぐらいは上がってるのかもしれません。
Aya786_D54_n600_6c はノードを作るのは子局面を600回調べたら(通常は33回)
とかなり遅くしてDCNNの速度になるべく合わせるようにしたものです。
複数スレッドで同時にCaffeでDCNNを実行すると落ちるので、ロックをかけて
ロック中ならDCNNは使わずAyaの通常で、という風にしています。
6割くらいはDCNNを利用して作れるのですが、強さはさっぱりですね・・・。
Detlefさんの54%はGTS 450では21ms/回の速度でした(44%のものは17ms)。
Ayaの10000playoutでは54%は44%に83勝61敗(勝率0.58)で、やや勝ちこすのですが
CGOSを見る限りほとんど差はないようです。
GTX 980を買ったのでこれでも試してみます。
CNN with 54% prediction on KGS 6d+ data
http://computer-go.org/pipermail/computer-go/2015-December/008324.html
1コアでかなり強くなってもマルチコアに対応させようとすると
(GPUも同じ数揃えない限り)スケールしてくれないから大変ですね
>複数スレッドで同時にCaffeでDCNNを実行すると落ちるので
マルチスレッド対応のCaffeはないんですか? 無ければ中を調べてもっと細かい単位でロックを
掛けるようにするしかありませんが...
>21ms/回
これはスループットではなくて遅延ですよね? FIFO Queueを使って複数のスレッドから
利用するようにすれば多少儲かるのでは?
GPUでの学習では128局面を同時に処理できる仕組み(minibatch)があるので、
実行時でも128局面ぐらいを別々に処理できるような気がするのですが。
そうすれば32スレッドぐらいでも1台のGPUで別々に処理できて楽なのですが。
まだCaffeの仕組みをよくわかっていません。
少し分かったのはCaffeを作ったスレッド、
Net*p_caffe_net = new Net ("movepredict.prototxt",caffe::TEST);
を実行したスレッド以外で DCNN を実行すると速度が10分の1ぐらいに遅くなります。
排他制御で一つのスレッドしか来ないようにしていても。
仕様なのでしょうが、落ちはしないので気づきにくいです。
なので今 Aya786_D54_id0_6c では最初のスレッド、1つだけでノードを作って
後のスレッドはノードは作らない、としています。ノードはすべてDCNNで作るので
多分 Aya786m_Det54_10k よりは強くなると思います。
> これはスループットではなくて遅延ですよね?
この速度はランダムに局面を1000個作ってかかった時間を計っています。
ルールは無視した局面ですけど。
スレッドごとに独立して割り当てればいいのでは、と思いやってみました。
Net*p_caffe_net[thread_id] = new Net ("movepredict.prototxt",caffe::TEST);
結果は残念ながら、1スレッドが最速で、スレッドを増やしても
1個あたりの処理時間はそれほど落ちないのですが、速くはなりませんでした。
残念。やはりGPUを複数さす必要?がありそうです。
ちなみに7スレッドまでOKで8スレッドはout of memoryで落ちました。
同時に複数スレッドで計算したときに、1局面にかかる時間。
GTS 450 でDetlefさんの44%データを使用
threads 1 17ms
threads 2 37ms (換算 18ms)
threads 3 60ms (換算 20ms)
threads 4 83ms (換算 21ms)
threads 5 106ms (換算 21ms)
threads 6 128ms (換算 21ms)
threads 7 149ms (換算 21ms)
threads 8 --- out of memory, で落ちる
複数スレッドで遅くなるのは(多分)GPUのcontext switchに時間が掛かるためでしょうから
スレッド毎に割り当てるのではなくCaffeを扱う専用のスレッドを用意して,
他の(つまり探索)スレッドはそれの入力queue(共有)に局面をpushする様にしてみては?
出力queueはスレッド毎に用意してCaffeスレッド側で振り分けます
#昔PS3のGGMC Goのクラスタ並列で似た様なことをやったのを思い出しました(笑.
以前に質問した内容で警告と条件文の中に入ることは出来ましたが、gogui-twogtpでの対局が未だうまくいきません。
gnugoとpachiで対局させてみたところ正常に動いたので、私が改良したpachiがおかしいことはわかっています。
改良した点はucb1amaf.cのucb1rave_decend関数内でvwinとurgency += の部分に多くの条件文を付け足したくらいです。
これでgogui-twogtpを用いてgnugoと対局させたところ1局目の途中で
The Go program terminated unexpectedly.
となってしまいます。何が原因なのでしょうか。
このメッセージは、”プログラムが意図せずに落ちた”という事ですので、その原因がわかるのは、そのソースコードを持っている人だけだと思います。
そのプログラムが stderr に 何らかのメッセージを出力するように作成してあれば、GoGui.exe を使って自己対局を行えば ツール->GTPシェル から 落ちた時点でのメッセージを確認できます。
そのメッセージが出てから、次のメッセージを出すまでの何処かで落ちたと考えられます。
または、ログファイルを作成しながら実行し 関数の名前や変数の値を記録しながら実行すれば、何処で落ちたか またその時の状態を確認できると思いますがいかがでしょうか。
(適宜、バッファをフラッシュする必要があると思います。)
こんなニュースをNHKでやってて、ビックリしました。
「プロ出場の囲碁大会にコンピューターが初参加へ」
http://www3.nhk.or.jp/news/html/20151223/k10010350821000.html
どなたか詳細をご存じでしょうか。
日本棋院が発表した話ですから,ここで訊くより日本棋院に問い合わせた方が
よほど確実だと思います.ま,それはそれとして,ググってみたら(予想通り)
https://ja-jp.facebook.com/igo13ro に書き込みがありました.
要するに(名前のとおりの)13路のオープントーナメントに,13路なら
プロに先と逆コミ数目というレベルのコンピュータも混ぜてみようということで
ニコニコの囲碁電王戦では国内トップクラスの江村アマには勝てませんでしたが
普通のアマ相手なら十分戦えるレベルですから,面白い大会になるんじゃないでしょうか
13路盤での大会ですね。<=日本棋院の発表
初心者には9路の方がとっつきやすいですが、13路の方がゲームとしては面白そうです。
来年のCGFオープンは9路19路ではなく、13路19路で開催されるのでしょうか。
まだ何も決まってはいないとは思いますが、13路になる場合、早めに公開されるとありがたいです。
荒木です。
来年のCGFオープンについてはまだ何も決まっていません。
ただ、「CGFオープンは初心者でも気軽に参加出来る大会」という名目も
ありますので、一番開発が簡単な(GNUGoを超えるという意味で)9路は
残すべきかなと個人的には思っています。
メーリングリストでアンケートを取るかもしれませんので、
そのときはよろしくお願いします。
荒木様
運営ご苦労様です。今年も13路での開催を希望されている方がおられましたので気になりました。(時代は13路?)
セミナー以来、PCが2〜3台ほぼ昼夜がんばっており、この冬は暖かくすごせそうです。
鬼が笑いそうな心配事を書き込みましたが、自分はどちらでも大丈夫です。
ただ、当方プログラミングスキルがそれほど高くないので、時間の余裕があるとありがたいです。
学生さんとの交流も楽しみにしております。
では、では。
GPUでのノード作成は1スレッドだけ、で残りの11スレッドはplayoutだけをする
Aya786_D54_6c_12t を走らせてみたのですが弱いですね・・・。
1スレッド+5スレッドの Aya786_D54_id0_6c の方がはっきり強そうです。
原因はよく分からないのですが、
上位のノード展開が間に合わないうちは、展開していない下位の手で
たくさんplayouだけしてしまうため、(ノード展開してないので)信用が低い
下位の手を選んでしまっている、せいかもしれません。
作成しているノード数とplayout速度は下のような感じです。Xeon W3680 3.3GHz、GTS 450
playout速度 探索時間 GPUでの作成ノード数 全ノード作成数 スレッド数
11979/s 5.6秒 233 1643 6 Aya786_D54_id0_6c
20180/s 5.7秒 228 1756 12 Aya786_D54_6c_12t
15311/s 4.8秒 1039 5185 6 (GPUを使わない場合)
Detlefさんの54%はGTS 450だと 21ms/局面なので5.6秒だと266局面作成可能。
6スレッドは233局面なので、スレッド1つはほぼ作成に専念している感じです。
Ayaは1つの子局面で1回playoutをしたらとりあえずノードを作り、33回playoutを
したらノードの子の評価をMM法で行い、UCTで降りていくのを許可、という仕組みになってます。
※12スレッドでの全ノード作成数、756は1756のミスでした。
GTS 450からGTX 980(MSI GTX 980 GAMING 4G)に入れ替えてみました。
Detlef44% Detlef54% CUDAコア数 クロック
GTS 450 17.2ms 21 ms 192基 783MHz
GTX 980 5.1ms 10.1ms 2,048基 1126MHz
GTX 670 7.9ms 1,344基 915MHz (HiraBotさん情報)
Detlefさんの44%のデータでは3.4倍ぐらい高速なのですが、54%では2.1倍程度でした。
54%でも3倍ぐらいはいくかと思ったのですが。
Detlef44%、Detlef54%はともに20層、filter数は128と同じようで、
違うのは入力が2面と13面、の差ですが、ここが大きいのでしょうか。
54%では1.7倍!も速くなりました。ただ44%では逆に遅くなっています。
MNISTの学習は169秒から24秒、と7倍も速くなってます。
Detlef44% Detlef54% CUDAコア数 クロック
GTS 450 17.2ms 21 ms 192基 783MHz
GTX 980 5.1ms 10.1ms 2,048基 1126MHz
GTX 980 6.4ms 5.9ms 2,048基 1126MHz cuDNN
GTX 670 7.9ms 1,344基 915MHz (HiraBotさん情報)
cuda-repo-ubuntu1404_7.0-28_amd64.deb
を入れているのですが、cuDNNの最新版
cudnn-7.0-linux-x64-v4.0-rc.tgz
はmakeがエラーで止るので
cudnn-7.0-linux-x64-v3.0-prod.tgz を使ってます。
作業は
$ tar xvf cudnn-7.0-linux-x64-v3.0-prod.tgz
$ cd cuda
$ sudo cp lib64/* /usr/local/cuda/lib64/
$ sudo cp include/cudnn.h /usr/local/cuda/include/
$ cd ../caffe
$ vi Makefile.config
# USE_CUDNN := 1 を有効に
$ make clean
$ make
棚瀬さんが公開してくださってます。
9路、 8607局。上位50人(一人最大200局まで)
https://twitter.com/tanaseY/status/680934168138665984
13路、 9410局。上位40人(一人最大500局まで)
https://twitter.com/tanaseY/status/680726738813370368
13路、44881局。上位300人
https://twitter.com/tanaseY/status/680930989468565504
9路、 49895局。
https://twitter.com/tanaseY/status/681070970149285889
9路+13路 161032局。 gokif2.tgz
9路+13路 200017局。 gokif3.tgz
https://twitter.com/tanaseY/status/681003388067155969
対局者名の先頭に「:」がついたものはBotです。
※ 9路 約5万局と9路、13路、16万、20万局も追記しました。