Shogi Castle将棋城
詰今日の詰将棋3手詰 · 毎日一問、全員同じ問題解く →

エンジン · Mino AI

人間のように指す将棋AI。

通常の将棋エンジンは「最善手は何か」を答えるために作られています。しかし上達のために対局する相手としては、それは適した問いではありません。将棋城の Mino AI が答えるのは別の問いです。「この棋力の人なら、実際に何を指すか」。学習しているのは、lishogi.org で人が指した実際の棋譜です。

このページの内容 8なぜ Mino AI を作ったか返ってくるもの仕組み登っていける階段対局のあとに何から学んだか見たことのない対局者で試す役割に応じたエンジンを
Mino が学習した棋譜から六局。実際にはこれが数十万局あります。
Mino が学習した棋譜から六局。実際にはこれが数十万局あります。
美濃囲い

美濃囲い

美濃囲い。玉を2八に収め、金銀三枚で囲う形。多くの人が最初に覚える囲いです。

なぜ Mino AI を作ったか

弱いことと、人間らしいことは違います。

強いエンジンを弱くするのは簡単です。読みを浅くする、時々4番目の候補手を指させる。確かに負けやすくはなります。しかし初心者の指し方にはなりません。二十手は完璧に指し、突然理由もなく駒をただで取らせ、また完璧に戻る。そんな相手は現実にいないので、そこから学べることもありません。

人間の間違いには形があります。初心者は合法手を無作為に選んでいるのではありません。突く歩を間違え、開いた筋を下りてくる香車を見落とし、玉が少し薄いことにまだ気づいていない。これらは具体的で、しかも学習できます。同じ間違いを何百万人もが棋譜の中で残しているからです。

弱くしたエンジン

  1. 最善手を探す
  2. 読みを削る、または悪手を強制する
  3. 好手のあとに突然の大悪手
  4. 弱いが、人間ではない

Mino AI

  1. 人の指し手の選び方を学習する
  2. 棋力を条件として与える
  3. 実際に指されている手から選ぶ
  4. 人が弱いのと同じ形で弱い

返ってくるもの

Mino が返すのは一つの手ではありません。すべての合法手に対する確率、つまり「その棋力の人がこの手を指す可能性」の分布です。対局相手はそこからの一引き。同じ序盤に二度ならない理由です。

▲3六歩34%
▲4七銀22%
▲6八金14%
▲1六歩9%
その他21%

実際の一局面。エンジンなら最善を一つ挙げて終わりますが、人はこの中から選びます。

仕組み

ひとつのモデルで、あらゆる棋力を。

Mino は局面だけでなく、誰が指しているかも一緒に読み込みます。指し手の棋力、相手の棋力、そして何手目か。返すのは一つの答えではありません。すべての合法手に対する確率、つまり「その棋力の人がこの手を指す可能性はどのくらいか」の分布です。

将棋城の対局相手は、この分布から作られています。上位のレベルは強い棋力の指し手の分布から、より決定的に選びます。下位のレベルは弱い棋力の分布から、より揺らぎを持って選びます。どの手も、実際の対局で人が指している手です。一番弱い相手も、無作為ではなく、ありうる相手です。

登っていける階段

Mino の強さは読みを壊すことではなく分布そのものから来るので、レベルの差はなめらかです。どのレベルも一つ下より確実に強く、どのレベルも将棋として成立しています。

レベル1-3まだ形を覚えている段階。駒はありうる場所へ行きますが、構想は続かず、浮いた駒が一手二手そのまま残ることもあります。
レベル4-6定型の構想を指す。囲いを作り、攻めを準備し、浮いた駒は取り、短い手筋は見えます。間違えるのは終盤です。
レベル7-8自然で強い将棋。機械ではなく、強い人の手の選び方をします。
レベル9-12サーバー上の探索エンジン。レート対局で当たる相手と同じで、通信が必要です。オフラインではレベル1〜8が指せます。ある強さから先に必要なのは、より人間らしい相手ではなく、より強い相手だからです。

対局のあとに

同じ一手を、二通りに読む。

探索エンジンは「その手で180点損した」とは言えますが、それが悪手なのか、その棋力の人なら普通に指す手なのかは区別できません。助言すべき内容は両者で違います。そこで一局は二度読まれます。一度は探索で損得を、もう一度は Mino でその手の指されやすさを。振り返りの文面は、二つの答えがどこで食い違うかで決まります。

みんながやる間違い損をした手で、同じ棋力の人の多くも同じように損をします。ここは覚える価値があります。
らしくない間違い損をした手ですが、その棋力の人はあまり指しません。癖ではなく、たまたまです。
よく見つけた手互角を保った手で、その棋力ではあまり指されない手です。
自然な一手正しく、そしてここで多くの人が指す手。直すところはありません。
一段上の発想逃した手は、上位の人は指すがその棋力ではほとんど指されない手です。ミスではなく、学びどころです。

同じ局面での棋力別の一手も並べます。分岐点ごとに、1000・1400・1700・2000 前後の人がいちばん指しそうな手と、その割合。全部同じなら、そこは問題ではなかったということ。行ごとに答えが変わるなら、そこが調べる価値のある一手です。

学習から除外した対局者で測ると、Mino がその人の実際の指し手を第一候補に挙げる割合は、棋力が高いほど上がります。強い人ほど互いに一致するからで、この読みが意味を持つために必要な向きです。

何から学んだか

Mino は、公開されている人間の対局棋譜から取った数百万局面で学習しています。初心者から高段者まで、幅広い棋力が含まれます。

学習の目的は単純です。局面を見せ、手番の棋力を伝え、その人が実際に指した手を当てさせる。「最善」という概念は入りません。Mino が将棋について知っていることは、すべて人の対局から学んだものです。

見たことのない対局者で試す

学習した棋譜を覚えただけのモデルは、数字の上では優秀に見えて、何の役にも立ちません。そのため Mino の評価は、学習から完全に外した対局者に対して行います。局面単位ではなく対局ごと丸ごと除外し、その対局者自身の指し手だけを採点します。

この条件で、実際に指された手を当てる割合はおよそ半分で、強い人ほど少し高くなります。強い人の手ほど読みやすいからです。確かめられるのはこの数字で、狙いはその先にあります。どの段階でも、手加減した強いエンジンではなく、その棋力の人間のように指すことです。

役割に応じたエンジンを

Mino は最強を目指して作られたものではなく、そう主張もしません。人の手を予測するモデルが読みの深さでエンジンに勝てるはずはなく、その必要もありません。

ですから将棋城は両方を使います。人間らしさが大切な対局相手は Mino が担当します。正確さがすべてである高段者向けの対局と解析は、従来のエンジンが担当します。

学習には、オープンソースの将棋サーバー lishogi.org で指された人間同士の棋譜を使用しています。

Mino と対局する

将棋城の対局相手は、レベル1から8が Mino AI、9から12が探索エンジンです。好きな強さで対局できます。

Google Play無料ダウンロードApp Store無料ダウンロード