【45】将棋電王戦からわかるシステムへの勘違いの多さ
こんにちは、手塚規雄です。
電王戦Final が3月14日~4月11日に行われました。結果は人間側からみて3勝2敗で人間側の初の勝ち越し。私の予想は全然違いましたね。「将棋電王戦とエンジニアの将来」。所詮、アマチュア初段もない級位者のたわごとだっただけ。参加した棋士の皆様、開発者の皆様、運営・関係者の皆様、本当にお疲れ様でした、ありがとうございました。
様々な問題が定義された今回の電王戦
今回の電王戦は全局において問題提起がありました。
第1局:棋譜を汚すのを嫌う棋士、王手ラッシュが慣例のコンピュータ
第2局:角成らずの重大なバグが発覚し、反則負け
第3局:昔も今も入玉対策が下手なコンピュータ
第4局:人間にはありえないと言われた手順で常識を覆したコンピュータ
第5局:多くの人が知っているハメ手を使ったプロ棋士、たった21手で投了した開発者
他にもありましたが、個人的に印象深かったもので、人間同士での対局では絶対に起こらなかった事件ばかりです。これに一つ一つ書いていったら1コラムじゃたらないし、趣味ブログとかわりません。そこでコンピュータ将棋プログラマー視点でもなく一般プログラマーとしての視点で1つ焦点を当ててみました。
バグなんかある状態で出場するな!
第2局、第5局にて多く見られた心ないコメント。今回のレギュレーションでは一回提出した後は二度と修正できないものでした。提出した後に発覚しても直せない。だからこそ、それが対局時に表面化しまったわけです。私は別にレギュレーションにどうこう言いたいわけでもありません。何が言いたいのか?それは未だに
「システムにバグは絶対にない」
という神話を信じ込んでいる人が多いという事実です。
絶対に間違えないと言う棋士&世間と
コンピュータでも全然間違えると言うコンピュータ将棋開発者
「コンピュータ将棋の強みは絶対に間違えない事」とあげる人が多いようですが、開発者に言わせれば絶対に間違えない、なんて事はないようです。実際、毎年5月に開催される世界コンピュータ将棋選手権では簡単な5手詰め(だったと思います)を逃してしまった強豪コンピュータもいました。そのコンピュータソフトはプロ棋士を倒したソフト(GPS将棋)だったと思います。たしかに稀な事例ですけど、間違えてしまう事もあるにある、という事です。
もちろん逆に言えば、今までのコンピュータ将棋の実績が完全神話を創りだしてしまうほど信頼性が上がっていたという視点も間違いなくあります。
システム神話を信じてやまない人たち
ここで私達、システム開発の現場に置き換えてみましょう。私達ITエンジニアはバグが無いシステムは無いと知っています。天下のMicrosoftさん、Appleさん、googleさん、Amazonさんでもシステム障害もあるしバグもあります。ちょっと例を挙げれば思い出す人も多いでしょう。こんな風に言うと分かってくれますが、それでも基本的にはバグもなければシステム障害を起こすなんて大罪だ!と怒る人も大勢います。私達エンジニアもそのように教わりますが、残念ながら軽微な障害なら毎日のようにどこかで発生しています。そしてこの意識、価値観の差は今のところ埋まる気配がありません。これって今のシステム開発での顧客のITに対する感覚と開発者の感覚に似ていると思いました。
納品したシステムは我々の思い通りに動くと信じてやまない顧客。でも実際にはそんな事にはならないケースが大半です。むしろ、「何?この使いにくいシステム…。」と不機嫌になり我慢しつつ使い始め、一度システム障害が発生すれば怒り狂う。そんな顧客の顔、あなたはうっかりその顔を思い浮かべていませんか?(笑)その意識、価値観のすれ違いの大元は「システムは絶対に間違えない完璧なもの」という神話の思い込みからくるものでしょう。表向きにはシステム障害なんてあるように見えません。だからこそ神話に対する思いを強めてしまいますが、今も日本の何処かでエラーログが出力されていることでしょう。それを知る人はシステムに関わる開発者、運用者、責任者ぐらいしかいないのでしょう。
他の業界でも製造業でも不良品率などが存在して、一定の確率で不良品が発生しているのも知られています。食品などにいたってはちょっとしたクレームから全商品回収となり、安全の確認がとれるまで再生産が中止に追い込まれてしまった事件もありました。
意見の対立はどこからくるのか考える
1つの物事に対するか意見の対立、それはもっとも根本的な部分は価値観の違いから来ていることが多いです。理論的に説明しても理解してくれない、納得してくれない時にはお互いの価値観が全然違うこと原因で、それはもうどうしようもない事だと思っています。将棋電王戦第5局においても
・棋士は勝つことが最も大事
・棋士は魅せる将棋をすることに意義がある
という意見の対立がありました。それは正解のない問のため、どちらが正しい、どちらが間違っている、というのはわかりません。
これは将棋だけでなくIT業界でも
・多少のバグを許容して、システムリリースが最優先
・システムは品質最優先で障害を発生させるのは恥
この2つの相反する価値観があります。どちらの言い分が正しいのかわかりませんが、ビジネス的には前者が成功しているように感じる事が多いですが、すべてのシステムでそれが正しいわけでもありません。
表面的な相互理解より価値観の共有
1つの物事に対する価値観が上手に許容して、共有できなければ、意見の対立は深まってしまう。表面的な議論より価値観の認識、許容、共有ができなければお互いを理解しあうのは難しいというわかりやすい例をだしてくれたのが将棋電王戦の1つの側面だったと思いました。
コメント
へっぽこプログラマ
うーん 「システムは間違えない神話」じゃなくて、「金出してんだから完璧に動いて当たり前」ってトコだと思うなあ。それをどう捉えるかっていうのは仕事に対するスタンスの違いであって、ちょっとザックリ言い過ぎな文章に感じました。
ばぐ
①多少のバグを許容して、システムリリースが最優先
②システムは品質最優先で障害を発生させるのは恥
①と②だったら、そりゃ①のが成功例は多いだろう。
ただ、それは運良かっただけ。
今回の第2局でいえば、許容できないレベルのバグだった。
第5局で言えば、バグ(作者の想定外の事態)が発生した責任は、作った自分に
あるのに、対戦相手を批判した点が問題。
興行的にいえば、早めの投了を予見していなかった運営の落ち度。
獏
私は今回の運営のやり方が非常にまずかったと思っています。
数ヶ月もの間プロ棋士に検証させ(これは棋士にとっても負担)、あげく多数の一般人に挑戦させるなら、それはバグなりアラなりが見つかって当然です。しかも一切の修正を認めない。
これではもはや試合興行ではなくてバグ検証・実演大会ですw
回を重ねるごとにルールがひどくなっていたので、Finalでなくても破綻は必然だったでしょう。
個人的には、7番勝負、プロは継ぎ盤あり、プログラムの一般公開・貸出はなし、持ち時間は生理現象や疲労も加味して棋士側を多くする、というルールで見たいですね。
今回の電王戦で最大の誤解は、あれを「バグ」と言っていることだと思います。
第三局のはバグと言えないことはないですが、少なくとも第五局は評価関数上、馬の評価が高いために釣りに引っかかった、というのは相手の先方に引っかかる特性を持っていたというだけで、決して「バグ」ったわけではありません。
URLのほうを見ていただくとわかりますが、巨瀬さんは「Ponanzaが先手なら初手▲7八金、後手なら2手目△3二金としてくることを予想して対策を施していた」人です。
同じように、「AWAKEが角を討死させることを予測して対策を施してきた」棋士を批判する資格はないですし、上記の先手後手のPonanzaの特性をバグとは言わない以上、今回の第五局の件はAWAKEのバグとは言わないでしょう。