Deep Thoughtの学習
« ボード検討 | トップページ | 香港・深セン行ってきましたー »
「将棋プロセサ」カテゴリの記事
- ボンクラーズの開発過程について書いた記事が掲載されました(2019.03.07)
- 「浅い評価値を深い評価値に近づける学習法」誕生の背景(2016.10.06)
- 塚田九段の対ボンクラーズ練習棋譜を公開します(2013.09.07)
- Puella α ソース公開(2013.08.28)
- クラスタ並列の解説記事を公開します(2013.08.22)
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
« ボード検討 | トップページ | 香港・深セン行ってきましたー »
« ボード検討 | トップページ | 香港・深セン行ってきましたー »
実際には使われなかったので確立されたは微妙で、近いことも試みられていたくらいですかねえ。最小二乗法でまたペナルティのようなものが不在なので、この路線では難しいかと思います。
投稿: kaneko | 2009年7月 5日 (日) 19時05分
あれ、実際に使われたのではないでしょうか?十分な検証まではされてない感じなので「確立された」はたしかに微妙かもしれませんが。
私のとこでも実質ペナルティなしでそこそこ動いてるので、やり方(特徴の取り方?)によってはペナルティなしでもうまく行くんじゃないかという気がしてます(気だけ)。最小二乗法の長短は私はわからないのでコメント控えます^^;
投稿: 伊藤@A級 | 2009年7月 6日 (月) 17時40分
金子さんが書いた方がいいんでしょうけれど、最小二乗法だと、例外的データにめっちゃ弱いんで、ちょっと…な感じです。
まぁ、パラメータ数が少なければそこそこうまく行くかも。
ボナメソの場合、10000とかの特徴があっても元データに多少矛盾(ノイズと言い換えても可)があっても学習出来てしまうところが優れているわけで。
将棋を例にして、Eloレーティングで駒の価値を求めるとかだと、結構古い時代に研究があります。中原さんだと桂馬>香車なんだけど、羽生さんは桂馬と香車がほとんど同価値とかそんなのを見た記憶が。
…何が本当の意味で新しいのかって言うのはなかなか難しい…。全部の過去論文にあたってみないといけないのかな?
<私自身はそこまで網羅的に論文読んではいないと思う。学生時代は完全情報ゲームに興味なかったしなぁ(--;
投稿: うさぴょんの育ての親 | 2009年7月 6日 (月) 23時59分
>ボナメソの場合、10000とかの特徴があっても元データに多少矛盾(ノイズと言い換えても可)があっても学習出来てしまうところが優れているわけで。
なるほど、そういうことですか。(と言いつつ、私はなぜそうなのかがわかってないですが^^;)
Aリーグはパラメタ200個程度ですし、Deep Thoughtもハードなんでそんなに多くないでしょう。ペナルティなしで済んでるのもそのせいなのかなぁ?
投稿: 伊藤@A級 | 2009年7月 7日 (火) 19時41分
必ずしもパラメータが少ないからペナルティが要らないとも言い切れないと思います。
ただ、駒割で、歩の価値を固定するだけでも、定数倍した別解は除去できますし、パラメータ同士の独立性が高い=重ね合わせとかが少ない、なら、ペナルティなしでも行ける気はします。
投稿: うさぴょんの育ての親 | 2009年7月10日 (金) 03時10分
文章へたっぴの我ですが興味を持っていただき光栄でございます。(゚ー゚;
将棋ソフトの開発にはチェスソフトからまだまだ学ぶものが多いと思われます。
DeepThoughtの学習方法を挙げたのは「誰が本家」かというより(広義な意味で本当の「本家」はまた別にあるのでしょう)、ボナンザがこの学習方法を使うまで将棋ソフトにおいてこのアイデアが10年以上野ざらしであった…ってことです。
…独自のアイデアを練るのは当然ですが、改良への鍵は意外と身近に放置されているのかもしれません。
投稿: 紫外線 | 2009年7月12日 (日) 16時29分
これって探索末端を利用して学習しているんでしょうか?
局面から最小二乗法ならオセロでやってる方法ですよね?
将棋やchessではうまく行かないから、
野ざらしになったのでは?
囲碁のモンテカルロも強くならないから
野ざらしになっただけで、
UCTを使うアイデアがあって初めて成功したと思います。
まるで10年前から棋譜からの学習ができていた
みたいな言い方は誤解をまねきませんか?
投稿: komiya | 2009年7月12日 (日) 21時51分
>ボナンザがこの学習方法を使うまで将棋ソフトにおいてこのアイデアが1
棋譜から学習することがbonanzaのアイデアじゃないですよね?
棋譜から学習なら昔から皆取り組んでましたよね?
うまく行かなかったものを改良して
うまく行くようにしたのが、BonanzaMethoのアイデアでは?
棋譜から学習させること自体がボナメソのアイデアと思われているのでしょうか?
投稿: komiya | 2009年7月12日 (日) 21時54分
>棋譜から学習
…は「評価関数・パラメーターは白紙状態で棋譜をもとに学習させソフト自身が棋理を構築」といった印象もありますが、このことではありません…と但し書きをまずしておいて…
将棋ソフト評価関数をチューニングするにおいて一番明快で手軽な方法(ボナ以前)はパラメターを変えて(手動・自動)対局、強くなったら万歳、弱くなったらやり直し…以上を繰り返し。これでは結果として強くなっても人間ライクな指しまわしは夢のまた夢でしょう。
ボナ学習法は人間の棋士が出した「次の一手」の模範解答を導き出せるようにパラメーターを自動調整…と理解しています。でもそれはDeepThoughtのチューニングソフトにおいてすでに実践されていたテクである…と言う事です。
”the tuning program that was used by
Deep Thought to adjust its evaluation function parameters based on a set
of some 868 grand-master games.”
現在はマシンが速くなり以前では「有効とわかっていても時間がかかり過ぎて無理」といったこともできます。DT以来の研究・開発を考慮すればこの調整法に改良が施されるのは当然でしょう。
投稿: 紫外線 | 2009年7月13日 (月) 00時49分
駒の関係を利用した将棋の評価関数
http://www.graco.c.u-tokyo.ac.jp/~kaneko/papers/gpw03.pdf
ボナメソの発表以前にも、プロの次の1手を
模範にした学習はは論文が提出されています。
序盤は学習できたけど、
駒がぶつかるとうまく行かなかったようです。
この論文を読んだときはボナメソと同じじゃん!
と私も同じように思ったのですが、
私の理解だと、静止探索で静かな局面を対象に
学習するというのも、
ボナメソが終盤を学習できたアイデアの一つ
と思います。(TDleafなどはあったようですが)
>マシンが速くなり以前では「有効とわかっていても時間がかかり過ぎて無理
これですと、PCが遅かっただけで、
速ければ上手く行ったように思えますが、
そうなのでしょうか?
自己対戦で勝率が○%上がったなどの
実験結果があれば解るのですが、
本当にチューニングが上手く行ったのでしょうか?
chessの歴史は勉強不足ですが、
10年前から学習が上手く行っていたのなら
crafyやfruitが採用していない理由が分かりません
投稿: komiya | 2009年7月13日 (月) 20時10分
>これですと、PCが遅かっただけで、
>速ければ上手く行ったように思えますが、
>そうなのでしょうか?
マシンが速ければ…
当然もっと深く読める…これだけでも違ってきます。実際にマルチプロセッサー対応のチェスソフトのレーテングは1CPUの同ソフトより確実に高いです。
普通は手が出しにくいアルゴリズム…Singular Extensionも(有効性は別として)可能になってきます。
>crafyやfruitが採用していない理由が分かりません
crafyは大学の研究の一環として作られたものです。開発の方向がそもそもちがうのでは?
fruitはオープンソースのチェスソフトですね。開発の方向はいかにして深く・早く読むかでしょう。チューニングのような「地味」な努力は対象外かと…
…そもそも棋譜から学習しただけで強くなれるなら将棋ソフトを開発する理由が希薄になりますね(ずーっと学習だけすれば良い)。
投稿: 紫外線 | 2009年7月14日 (火) 05時46分
>マシンが速ければ…
>当然もっと深く読める…
繰り返して書いても仕方ないので、
よく読んでほしいのですが、
引き合いに出して申し訳ないのですが、
GPSチームの論文が出た時はマシンは十分に速いのです。
仮に現在の高速PCでもアルゴリズムが確立してなければ中盤以降の学習ができないのですから、
マシンの速さは関係ないですよね。
fruitは欧米の選手権で2位に入った実績があると記憶があります
かなり強いソフトなのは確かです。
評価関数の学習が成功(=強くなった)したなら採用しているはずです。
DeepBlueで棋譜からの学習型評価関数が使われていたなんて
話は聞いたことがないんですよねえ。
大金が掛かってるので強くできる方法なら採用していると思うのですが?
誤差を定義して学習させるなんてことは誰でも思いつきますよね?
問題は本当に強くできたか?(成功したか?)
ではないでしょうか?
投稿: komiya | 2009年7月14日 (火) 23時48分
あら、盛り上がっていたのですね。
実際にDeepBlueの評価関数がどのように作られていたかは、大学の方でしたら、以下の文献をお読みください。
http://portal.acm.org/citation.cfm?id=512152
検索すると以下も出てきますが、これの出自は不明です。
http://sjeng.org/ftp/deepblue.pdf
研究レベルでは、このような文献もあります。(6章)
http://books.google.co.jp/books?id=0Q_RBtFGMc4C&lpg=PA117&ots=Kt9pEmd4NE&dq=G.%20Tesauro.%20Comparison%20training%20of%20chess%20evaluation%20functions&hl=en&pg=PA129
チェスに源流がなかったというのは言い過ぎですが、確立していたという表現も同様に乱暴に思います。
ただ、半自動と全自動違いとか、最小化する関数の定式化の違いが、どれほど重要かというのは、外から見ると分かりにくいかもしれません。一例としては、単に強い人の棋譜に近づけることを目標にするという手法でしたら、Deep Thoughtより前に遡れます。
投稿: kaneko | 2009年7月21日 (火) 16時42分