自動車業界をはじめ、あらゆる業界から活用方法に注目が高まっている人工知能・AI(artificial intelligence)。そんな中、麻雀AIの開発に挑んでいる大学院生がいる。未来のテクノロジーと言われるAIが、麻雀においても人間を凌駕する日は来るのか。開発者、水上直紀さんに話を聞いた。
水上直紀(みずかみ・なおき)プロフィール
1989年、石川県生まれ。AB型、おうし座。東大大学院工学系研究科電気系工学専攻融合情報学コース。趣味はボードゲームとギター。自身の好きな役はクイタン。麻雀AI『爆打』(ばくうち)が好きな役はリーチ。
麻雀AI開発のきっかけは?
「大学でプログラミングの授業があり、これはしっかり学びたい。そんな直感がありました。でもプログラミングを覚えるために、教科書を読んだりするより、遊び感覚で課題を試せるものがいいなと。そこでパッと浮かんだのが麻雀でした。好きだしよくやっていた麻雀を通じて、アガリ形を見つけたり、役の判定をプログラミングするのがちょうどいい勉強になりそうだと思ったんです」
「そんな矢先、大学3年だった2011年、衝撃を受けたんです。当時、日本将棋連盟の会長だった米長邦雄永世棋聖が、世界コンピューター将棋選手権の優勝ソフト、ボンクラーズと対戦した第一回将棋電王戦です。麻雀でもやれるんじゃないのかと思いました」
麻雀におけるプログラミングとは?
「プログラミングとは、ひとことで言えば〝仕組み作り〟です。こういう処理をしてくださいとコンピュータに入力すると、答えを導き出してくれるというものです。麻雀プログラミングに関して自分の場合はまずアガっているのかアガっていないのかを判定するプログラムを作りました。次にすべての役を判別していくわけですが、七対子はわかりやすい。ピンフは難しい。ピンフは形優先ではなく、成立する条件があるので。しかも麻雀はルールの統一がなく、矛盾や例外も多いのもやっかいでした。ルール作りやシャンテン数作りだけでも1年以上はかかります。そういった基礎的なプログラミングを作っても活用されないと意味が無いので、オンライン対戦麻雀ゲーム『天鳳』のルールに合わせてプログラミングを行っています」
「麻雀AIのメイン、いわゆる脳の働きの中心は〝計算〟になります。盤面を見ることがインプット。打牌はアウトプット。打牌とは視覚に対する反応なので、基本的に計算した上での答えというわけです。だから相手の手牌読み、山読みを推理することも端的に言えば計算です。そういった点では、記憶力は人間より正確になるわけです」
AIを取り巻く現状とは?
「AI分野においては、機械学習(マシーンラーニング)のカテゴリーが注目されています。機械学習とは、人工知能プログラム自身が学習する仕組みです。2016年3月、囲碁界ではAIが、2016年3月に世界チャンピオンだった韓国のイ・セドル九段に勝利し、世界的に話題になりました」
『爆打』ネーミングの由来は?
「自分の所属している研究室の先生が開発されているコンピュータ将棋ソフト『激指』がありまして。麻雀だから『激打』にしようと思ったら、同名のソフトが存在していたんです。それなら『爆打』でというのが由来です(笑)」
『爆打』の打ち筋にはどういった特徴が?
「超攻撃型です。テンパイ後のリーチ率を見てみると24.8%。4回に1回はリーチを打っているわけです。放銃率は12.9%と若干高いかもしれません。でも、アガリ率のほうが断然高いわけです。副露率も高く、全般的にアガりに向かっています。もちろん全ツッパ麻雀ではなく、ベタオリする局もあります。その基準は、攻めるよりもオリたほうが価値が高いと『爆打』が決断しているからです。フリ込んでしまうと持ち点が減るだけなので、オリるほうが賢明だと判断しているわけです」
「また『爆打』はいわゆるモロ引っ掛けを極端に嫌う傾向があります。牌譜から学習しているということは、リーチ宣言牌に関連する牌はアタリ牌となる傾向が多いと判断しているのかもしれません」