人工知能は、学習することでさらに強くなります。学習こそが人工知能の肝であり、人工知能のエネルギーです。

 これまでは将棋プログラムを例に、人工知能のアルゴリズムとして第8回では「評価関数」、第9回では「先読み」、そして前回は「枝刈り」を解説しました。

 ただ、これらのアルゴリズムを単純に取り入れるだけでは、優れた人工知能プログラムはできません。評価関数のパラメータをどのように設定するのか、何手先まで先読みするか、どの手法で枝刈りをするのか、どのタイミングで深読みするのか、そもそもどの思考アルゴリズムを採用するか…こうした自由度の調整が、人工知能の強さや精度を大きく左右します。

 これらの調整のために必要なのが、データに基づき人工知能に自ら学習させる、いわゆる「機械学習」です。

 将棋プログラムにおいて、盤面を評価する評価関数のパラメータを人間が設定する場合、その人間が持っている知識や知能以上のパラメータ設定はできません。しかし、将棋の神様でない限り、人間によるパラメータ設定には限界があります。

 この限界を突破するのに必要なのが、人工知能の一分野である機械学習です。そこで今回は、機械学習によって評価関数を人間以上に強化し、最適な深さの先読みをし、最適な枝刈りを施し、さらに優れた思考プログラムの戦略を決めるための方法を解説します。

 将棋プログラムでの学習は原則として、お手本となる過去の棋譜から学ぶことに加え、コンピュータ同士が対戦する中で切磋琢磨するものです。この学習の様子を見ていくことにしましょう(図1)。

図1●将棋プログラムの学習
図1●将棋プログラムの学習
[画像のクリックで拡大表示]