LogicalInSpace

将棋の日記

第2回 将棋電王戦 第4局

2013-04-13 23:22:24 | ネットソフト情報
2013/4/13(土)に、第4局が行われました。

先手:Puella α
後手:塚田九段

持将棋より引き分け

将棋ファンは、プロ棋士が勝って欲しいという期待があったので、塚田九段に対する応援があったため、将棋ファンは感動しました。

ただ私は、将棋ソフトのPuella αが持将棋対策のプログラミングをしていないこと自体が、プログラミングのバグです。
プログラマーの世界では、バグとは、3種類あります。
1)コード上のアルゴリズムのバグ
2)仕様上(各部品のコードの連携)のバグ
3)コード上のバグはないけど、期待通り動かないバグ

Puella αが優勢を築いて、そのまま勝ちきれないで、持将棋より引き分けは、3)によるバグです。

バグがある中で、プロ棋士に挑戦すること自体が無謀としか言えないでしょう。


そもそも、将棋ソフトは人工知能も含めて、開発されています。
人工知能に欠陥があれば、何を目的に、将棋ソフト開発をしているのでしょうか?

ロジカルは、今回の棋譜は、将棋ソフトの最悪の棋譜に思えます。

最新の画像もっと見る

14 コメント

コメント日が  古い順  |   新しい順
Unknown ()
2013-04-14 14:39:22
本当に酷いことを書かれますね
私も趣味で将棋ソフトを作っていますが、この発言は本当に許せません

伊藤さんのソフトはソフトの選手権で強かったから選ばれただけなのに
弱い部分があるからと言って、プロ棋士に挑戦すること自体が無謀とは一体どんな神経で言っているのでしょうか?

伊藤さんが自分から挑戦を申し込んだのならまだわかります
しかし伊藤さんはイベントのために挑戦してくれた立場なのを忘れないでください
対局ために沢山準備をし、対局前日も、会社を休まれていました
伊藤さんを侮辱するようなことを書かないでください

伊藤さんは将棋倶楽部24で入玉が弱いのを付かれたことを無視せずに
ちゃんと入玉の対策もされて、24ではほとんど負けなくなりました
もし対策をしていなかったら詰まされて負けていた可能もありました

そこはコンピューター将棋プログラムとしての確実な進歩を見せた場面です
褒められはしても、バグだとか言われるものではないです

元々性質的に最悪のものをここまで少しずつマシにしてきたのですよ
これからもっと改善していくべき点ではあっても「バグ」ではけしてありません
良くした点をバグと言われる開発者の気持ちにもなってみてください

あれほどの時間と情熱をかけたプログラムは開発者にとって当に我が子です
それをバグだというのは
必死に育て、頑張って成長してきた我が子を「欠陥品」と呼ばれるに等しい屈辱です

「バグ」という言葉は開発者にとって、それほど重たい言葉なのです
そこをお願いですから理解して欲しいです

返信する
Unknown (LogicalInSpace)
2013-04-14 17:05:27
★光さんへ

将棋ソフトの開発以前の問題の話です。

将棋のルール上、勝ち、負け、引き分け(千日手、持将棋)があります。
なので、将棋ソフトを開発するならば、そのルールが、プログラミングの仕様になります。

400年の将棋の歴史上、このルールが変わったことはありません。
一般的に、プログラミングの仕様が変わったから、プログラミングの対応が出来なかったということはよくある話です。
しかしながら、数年前からルールが変わっていないので、該当はしません。

コンピューター将棋選手権で上位の将棋ソフトが、電王戦に参加をしていることは、承知しています。
また、将棋ソフトは個人レベルで開発されていることも承知しています。

将棋は、勝ち、負け、引き分けのゲームなので、持将棋については今後の発展課題として考えればいいと思います。

保木さんのボナンザが自動学習の評価関数の開発をしました。
プロ棋士などの棋譜を仮に1万局を集めたとしましょう。
その中に持将棋の将棋は10局しかなかったとしましょう。
持将棋の将棋を、プログラミングの仕様の例外のイレギュラーとして取り扱いますか?
前もってルールが決まっていることに対して、イレギュラーとしては取り扱うことはプログラミングの仕様としてはないです。


アマチュア相手や将棋ソフト同士の対局であれば、無謀という言葉は使わないです。
しかしながら、将棋人生をかけているプロ棋士相手ならば、話は別です。
プログラミングの仕様に対応していない将棋ソフトで、対プロ棋士用として注目を浴びる対局で扱うこと自体が、プロ棋士に対して失礼な話です。

持将棋になって、人間側が駒の点数で24点未満は負けとなるように、プログラミングをすることが、将棋ソフトの開発者としてのプログラミングの仕様です。
その仕様を、おろそかにしていることがバグなのです。

開発者の山下さんは、去年の11月頃からネット将棋(将棋倶楽部24)で持将棋対策をしてました。
そして、今回の電王戦のために準備をしました。
その点を評価しないという話ではありません。

将棋のルールが分かっているのに、つい最近になって対応していること自体を問題視しています。

将棋でなくても、何でもいいです(私の場合はデータベースです)が、きちんと仕様が決まっているのに、その仕様に対応することが、開発者としての基本姿勢ではありませんか?
特定の『山下さんのPualla α』に対してではなくて、将棋ソフト全体に言えることだと思います。


光さんに逆に聞きますが、将棋ルールが分かっていて、そのプログラミングの仕様を無視して、開発することは、許されることですか?
私の目からは、将棋のルールを無視して開発してるようにしか見えませんでしたけど。
無視していることを、バグと書いて何がおかしいのでしょうか?
返信する
Unknown ()
2013-04-14 18:39:36
ルールはその時その時によるじゃないですか
24点法だったり27点法だったり、時にはトライルールだったり
どういう時に入玉とするかだって違います

そしてインタビューで伊藤さんも仰っていましたが
現在のソフトはコンピューター選手権用にチューニングされています
コンピューター選手権は時間切れ負けで持将棋になることは皆無です
皆さんコンピューター選手権用に調整されてきていたのに急に今回の対局用に特別に合わせろという方が無理があります

コンピューターソフト側もプロ棋士と正式な対局をするために作られているわけではないのです
それでも確かに市販のソフトなら、それくらいのルールに準拠できるようになれよと言われてもおかしくありません
しかし伊藤さんのプエラは伊藤さんが趣味で作られたものです

それでも伊藤さんはきちんと入玉に入ったとき、大駒を重視するなどの対策は24からの経験から一応しました
そのおかげで相入玉模様であそこまで戦えたのです

あれ以上は、あまりやり過ぎると他に影響が出るので技術的に困難なのです
特に伊藤さんのプエラはボナンザの評価関数を利用しており
ボナンザの評価関数と入玉用の評価関数を組み合わせて入玉対策をするという方法のため、大胆なことはできないわけです

もし大駒を重視しすぎて詰まされたりすれば、それこそバグです
それに先ほど言ったようにルールなどその時によって違うので、相入玉になりそうな時24点、もしくは31点を守ると言った汎用性の低いロジックは入れにくいのです

その点で伊藤さんは出来る限りのギリギリのチューニングをされました
これ以上はやりたくても難しいことなのです
コンピューター将棋プログラム全般の課題であっても、バグではありません

質問に回答すると
無視はしてないし、課題はあるものの出来る限りのパフォーマンスは出た
前にも書いたように伊藤さんはこのイベントに参加する立場として十分な準備をした
結果イベントも盛り上がった
責任は全うしているので何も批難されることはない
です
返信する
Unknown (LogicalInSpace)
2013-04-14 20:27:45
★光さん

趣味だから、仕様ミスがあっても許されるという理論にしか聞こえないですけど。

個人レベルで開発がされていることは承知していますよ。
技術的に困難だから。 将棋ソフトは、持将棋の引き分けでも、趣味だから別にいいのです。
という理論ですよね。

単純に、持将棋のアルゴリズムが現代では確立されていないから、仕方ないのです。
また、趣味だから別にいいのです。
と理論をすり替えていますよね?
返信する
余計なお世話コメントですが… (ぴょん太)
2013-04-17 01:05:00
通りすがりで失礼します
単なる感情論になっていることが残念です
「ロジカルは、今回の棋譜は、将棋ソフトの最悪の棋譜に思えます」というご意見はもっともで、おそらく、Puella αの開発者の方もそう思っているのではないかと思います
しかし「バグがある中で、プロ棋士に挑戦すること自体が無謀としか言えないでしょう」という文章には、反感を感じる方も多いと思います

私はソフトを開発する立場ではなくそのスキルもありませんので第3者的に見て、感じるだけです
ですが、Puella αの開発者の方も、このコメントにはいい気分はしないと思います
ブログ主さんはおそらく、プログラマーとしての自分の立場から、自分に向けた戒めと言うか決意のような意図でそう書かれたのではないかと邪推します
でもそこまで考えられない人の方が多いのもまた、無理がないことと思います

結果として、ソフト側も、塚田九段も、最悪の棋譜を残す結果となりました
ですがそれが、非常に多くの将棋ファンに感動を与え、塚田九段やソフトを批判する声も少なく、純粋に感動したと、塚田九段とソフトの双方を称える声が多いように思えます
私も非常に感動しました
それが事実だと思います

遠山先生はブログで…

コンピューターがミスを出し始めたのは最後の最後、点数勝負になってからで、そこまでは複雑化した状況下でも安定した強さを示していました。
あの持将棋直前の姿に本質を見出してはいけないのです。

と書かれています

それは、将棋を愛し、プログラマーの方と塚田九段に最大限の敬意を払った、素晴らしい言葉だと思います

ブログ主さんの言いたいことはよくわかっているつもりですが、公開ブログに書かれる言葉としては、ちょっとキツすぎるのかな、というのが正直な感想です

この方は、プロ棋士を尊敬しているのか、他のプログラム開発者の方をどう考えているのか、そして…将棋を愛しているのか…
そこに疑問を持つ人がいても不思議ではない、強烈な一文だったと思います
返信する
Unknown (LogicalInSpace)
2013-04-17 10:51:10
★ぴょん太さん

> しかし「バグがある中で、プロ棋士に挑戦すること自体が無謀としか言えないでしょう」という文章には、反感を感じる方も多いと思います

これは、誰も書いていないのであまり書きたくはないのですが、将棋ソフトは以前から入玉の持将棋が苦手です。
本局は、以前よりは若干修正はしていますが、予想以上には修正はされてませんでした。

この電王戦の5局のシリーズで、全局を持将棋より引き分けという結果もあり得る訳です。
見ている方も、指している方も、面白くない結果になります。

初めから、プロ棋士は入玉の持将棋を狙って指して、将棋ソフトを相手に引き分けにすれば、将棋ソフトの読みの演算能力が人間よりどれだけすごくても、勝ちも負けでもなく、引き分けという結論になります。
全局、持将棋より引き分けになれば、やはりプロ棋士に挑戦することは、無謀な結果になります。


> 結果として、ソフト側も、塚田九段も、最悪の棋譜を残す結果となりました
> ですがそれが、非常に多くの将棋ファンに感動を与え、塚田九段やソフトを批判する声も少なく、純粋に感動したと、塚田九段とソフトの双方を称える声が多いように思えます

現在の世論は、将棋ソフトは強いので、プロ棋士相手に2連勝という流れがあるので、将棋ソフトもすごいなぁという世論の流れがあります。
その流れの中で、塚田九段が負け将棋を引き分けにしたことは、すごく感動した。
そういう世論の流れは、分かります。
繰り返しになりますが、全局とも持将棋で引き分けになると、どうでしょうか?


> ブログ主さんの言いたいことはよくわかっているつもりですが、公開ブログに書かれる言葉としては、ちょっとキツすぎるのかな、というのが正直な感想です

公開ブログですが、それ程アクセス数は多くはないですよ。
逆に、表現の仕方だけでアクセス数が増えるのも変な話だと思います。
Yahoo の検索より「Puella α 持将棋」で検索すると、引っかかるようですね。
ただ、通常の時より、電王戦の記事を書いた後には、4倍ぐらいのアクセス数があります。


> この方は、プロ棋士を尊敬しているのか、他のプログラム開発者の方をどう考えているのか、そして…将棋を愛しているのか…

私は、将棋が好きですよ。 プロ棋士を尊敬していますよ。 将棋ソフトの開発者を尊敬していますよ。
私は、道場認定ですがアマ三段です。
「ゲームのプログラム」とは分野は異なり、「データベースのプログラム」のプログラマーの業務経験者です。

普通にプログラマーとして考えれば、入玉将棋だけのアルゴリズムを考えること自体は、なんら難しいプログラミングではありません。
駒の点数を数えるだけですからね。

持将棋の何が難しいのかと言えば、何手目から入玉将棋として扱うのかと、タイミングが難しいのです。
自玉に詰みがあるかないかを判断しながら、入玉将棋のアルゴリズムの部分が難しい話です。
逆に言えば、その対策をきちんとすることが、プログラマーの本来のコーディングだと思います。

光さんのコメントは、タイミングが難しいからバグではないですと言いたいと思います。
私は、持将棋でも相手を24点未満にコーディングしていない部分をバグと言っています。


コンピューター将棋のブログです。
http://www.computer-shogi.org/blog/2013/04/13/

> プロ棋士同士でも滅多に生じないこの結末が議論を呼ぶことは必至ですが、
> 「敵玉を詰ます」という勝利条件、「24点未満」の敗北条件いずれも満たされなかった以上、引き分けはやむを得ない結末といえます。
> Puella αにとっては圧倒的勝勢に立ちながら勝ち切れず、塚田九段にとっては大苦戦を強いられたうえに引き分けに持ち込むのがやっと、
> 団体戦で勝ち越せないことも決まってしまった、という決着で、「痛み分け」と表現するのが妥当でしょう。

「コンピューター将棋のブログ」でも「この結末が議論を呼ぶことは必至」と書いてある以上は、課題があることは分かっています。
私は、この『「24点未満」の敗北条件』の課題をバグという表現を使っています。

> とはいえ、これ以上はないと思われた第3局を上回る死闘は、社会的にも、またコンピュータ将棋の課題を露呈したという意味で研究的にも、忘れ去られることのない対局となりました。

「コンピューター将棋のブログ」でも「課題を露呈したという意味」と書いてある以上は、プロ棋士相手だと入玉将棋で勝ちは難しいと分かっています。
私は、露呈した課題で、5局とも持将棋で引き分けであれば、無謀だと思います。

私の認識とコンピューター将棋の認識が大きく違う訳ではありません。
ただ、私の「バグ」や「無謀」の表現が、世論の流れからすれば、少し大袈裟に読めると思います。
返信する
レスありがとうございます (ぴょん太)
2013-04-18 01:45:37
>見ている方も、指している方も、面白くない結果になります
>繰り返しになりますが、全局とも持将棋で引き分けになると、どうでしょうか?

このあたり、個人的には疑問に感じました
勝敗がついても凡戦はあります
私の個人的な意見としては、プロが勝つに越したことはないけれど、プロが負けるのを見るよりは持将棋の方がまだいいと思います
あくまで観戦側の立場として…ですが

そして、指している棋士の立場になって考えてみれば…
プロはそれを最後の手段としていますが、使いたくない手段でもあると思います
会見後の塚田九段の涙がそれを物語っています
団体戦でなければ塚田九段も途中で投げていたかも知れません
その点に感動した人は多いと思います

おそらく多くの将棋ファンはこれらの表現に接した時「背景にソフト開発者と塚田九段に対する蔑視が感じられる」と感じたはないでしょうか
光さんもそうだったのではないかと思います

ですが…

>私は、この『「24点未満」の敗北条件』の課題をバグという表現を使っています

この一文を読んで、ブログ主さんの考えていることがわかったような気がしました

>ただ、私の「バグ」や「無謀」の表現が、世論の流れからすれば、少し大袈裟に読めると思います

うん、まさにその通りだと思います

プロ将棋のタイトル戦などのネット中継は、私にとっても楽しみの1つですが、その最大の目的は「感動」したいということにあります
自分には及びもつかないような高度なレベルでの戦いとドラマチックな展開に感動したいのです
(ちなみに私も、熱心に指していた頃は町道場の2段位だったから、主さんといい勝負だと思います。いつかネット対局しましょうか笑)

そういう意味で、電王戦の第3局も第4局も本当に素晴らしかった
それを「バグ」の一言で「最悪の棋譜」と決めつけているのだろう…と誤解していました



最後に…
正直、私が今、将棋ソフトに最も大きく期待することは…
持将棋の部分はバグのままでもいいので、それよりも…

「美しい投了図」を作ることです
それが難しいということは、素人でも十分に分かります
でも、それができなければ、どんなにプロ棋士に対する勝率が上がっても、ソフトは人間を越えられないのではないか…と思います
今のソフトは、勝っても不愉快な気分になることが多々あるから
返信する
個人の意見、いろいろな観点 ()
2013-04-18 10:57:39
 こんにちは。
 私は「バグ」の定義がよく分からないので、記事の主旨とは、ずれたものになってしまうかもしれません。ご容赦ください。

 今回の将棋について、私は「欠陥」「欠点」「弱点」という観点から考えます。
 Puella αや他の将棋ソフトもそうらしいのですが、入玉将棋になると指し手が乱れるようです。
 これを厳しい目で捉えると「欠陥」、緩い目で見ると「弱点」と考えられます。「欠陥」というと、反則など将棋のルールを逸脱する行為(指し手)をするようなことも「欠陥」と考えられますし、単に弱いことも「欠陥」と考えられ、「欠陥」という言葉自体、広い意味があるので文意があいまいになってしまいます。そこで、今回は「欠点」「弱点」をほぼ同義と見て、今回は「弱点」という表現をします。
 さて、今回のPuella αは反則を犯したとか、勝手に勝ち(負けや引き分け)を判定してしまったのではないので、指し手自体はルール内でした。なので、入玉模様の将棋が苦手という弱点であったと私は捉えます。
 もちろん、弱点(苦手)は克服した方がいいと思いますが、直接、弱点を克服するやり方の他に、長所を伸ばして弱点をカバーするといった方法を取った方が有効な場合(特に人間において)があります。(数学的な証明や論理的に将棋の解を求めようとするなら、この方法はだめですが)

 一手一手に心血を注ぐプロ棋士も、そのほとんどが得意でない戦法を持っていて、普通は自分の得意形に持ち込もうとします。
 また、戦法だけでなく、序盤の変化に詳しいが終盤や弱い、光速の寄せだけど入玉は苦手など多少の弱点を抱えています。

 将棋ソフトは発展途上です。勝負を優先するならば、出現頻度が低い入玉将棋は強化の優先順位は低かった。入玉将棋はソフトの今後の課題と考えればいいように思います。

 塚田九段は、そのPuella α弱点を突いたと言えます。しかし、その入玉の仕方が、点数を度外視してとにかく入玉すれば「何とかなるかもしれない」というもので、棋士同士の将棋ではありえない、自ら負けの道を邁進する将棋の精堂を外れたもので疑問を感じます。
 ただ、塚田九段がPuella αの強さを認めて、これしか勝負に持ちこむすべはない。連盟の看板を背負っての指し手だったとしたら、責めるべきものではないかもしれません。

 最後に、ぴょん太さんが仰った「美しい投了図」というのは私も思います。
 勝負が決しているのに、無駄な王手を続けて延命する市販の将棋ソフトは、「欠陥品」だと思います。

 長々と申し訳ありませんでした。
返信する
Unknown (LogicalInSpace)
2013-04-18 20:41:19
★光さんへ

光さんは、将棋ソフトを開発されているとのことですが。
差し支えなれば、開発環境はどんな感じでしょうか?
C言語、C++言語、Windows、Linuxなど。

将棋ソフトの棋力は、どの位でしょうか?

自分の宣伝になってしまいますが、ITのブログもしているので、良かったらご覧になってください。
http://blog.goo.ne.jp/mathit_2007/
返信する
Re:レスありがとうございます (LogicalInSpace)
2013-04-18 21:09:08
★ぴょん太さんへ

> それを「バグ」の一言で「最悪の棋譜」と決めつけているのだろう…と誤解していました

>> バグがある中で、プロ棋士に挑戦すること自体が無謀としか言えないでしょう。
コンピューター将棋のブログの言葉から引用すると。
「24点未満」の敗北条件の課題がある中で、プロ棋士と対局するための社会的な課題を露呈しました。
と言い換えることが出来ます。


>「美しい投了図」を作ることです
これは、「美しい」と表現そのものは、主観的なものなので、定義すら出来ないです。

少し話がそれますが、将棋を知らない方に、この将棋は美しいなぁと言ったことがあります。
その方からすれば、将棋に「美しい」と「汚い」との区別があるの?
とビックリしていました。
私の美しい将棋と言うのは、矢倉の将棋、四間飛車の将棋のことです。
汚い将棋と言うのは、力戦形の将棋のことです。
将棋を知らない方には、将棋が「美しい」ということが新鮮に感じたのでしょうね。
返信する

コメントを投稿