囲碁AIの時代
さて、オセロAIが私が関心を持った時点でもう完成されていたという話をしました。次は囲碁AIの話をしようと思います。
囲碁AIは私が関心を持った時点では発展途上でした。すなわちまだまだ人間には勝てないと思われていました。その理由の一つに探索空間の広さが上げられますが、他にも理由があります。
囲碁は厚みだとか薄みといった、曖昧な表現が多くて、厳密な定義を好むコンピューターとは相性が悪いものでした。
初期の囲碁AIは、こういう盤面ではこううつ、とか、こういう盤面ではこう打つというif thenロジックの塊でした。
なので、詰碁みたいな正解がある局面ではべらぼうに強いけど、全体でみたらまだまだ人間には勝てませんでした。
そこにモンテカルロ法という今までの囲碁AIとはまったく違ったアプローチを取る囲碁AIが登場します。モンテカルロ法を簡単に説明すると膨大なシミュレーションを繰り返し(すなわちプレイアウトと呼ばれる方法で何度も終局まで打ち、かつ割合によって勢局(勝ちやすいか負けやすいか)を判断することです)、次にどこに打てば優勢になるか、または劣勢になるかを判断できる仕組みのことです。
これをそれまでのminmax法と呼ばれる手法と組み合わせることで、囲碁AIは一気に強くなりました。
ここでminmax法について軽く触れましょう。ボードゲームAIの基本はみな同じで、局面ごとの勝つ確率というものを最大化することにあります。自分がある手を打ったときの勝つ確率はどうか。相手が打ち返した時の勝つ確率はどうか。ここで自分の手番のとき勝つ確率が最大化する手を選び、相手の手番のときは自分が勝つ確率が最小になるような手を選びます。こういった手法をminmax法と呼びます。ここで勝つ確率のことを評価関数と呼んだりします。
モンテカルロ法の強みはこの評価関数を自動化できることにありました。
でも面白いことに、モンテカルロ法ではそれまで囲碁AIが強いとされていた、局所的に正解がある局面では下手な手を打ってしまうという弱点がありました。
話がそれました。
その、モンテカルロ法をもってしても、まだまだ囲碁AIはアマチュアの三段から四段の実力と言われていました。