まず、AIって何でしょう。

抽象的に言うと、「一つの入力に対して、一つの出力を推定して出力することができる装置」ということになるでしょうか。

この一つの入力は、一つの値である必要はなく、多くのパラメータを持っている状態で構いません。出力も一つの値である必要はないのですが、人間が理解するための出力なので、1つの値で出力したほうがよさそうです。場合によってはYes/Noみたいな出力の場合もあるかもしれません。

AI以前は、この入力と出力の関係を関数を定義してやっていたのですが、AIはこの入力と出力値の関係をたくさん集めて教えると、入力と出力の関数をAIが勝手に作り出すということになります。

大切なことは、AIに教えるという行為が必要なのですが、その時に、入力と出力を用意しないといけないということです。

 

将棋の場合、81マス+駒台×2の場所があって、8種類40個のコマの配置、そして先手/後手で入力値が決まるはずなのですが、ここで、AIに教える出力値をどう考えるかという問題が発生します。

プロ棋士なら、大きく外さないだろうし、勝ち負けに直結しているだろうと推測して、その局面と勝ち負けを関係づけると、Ranking法みたいなやり方で、評価値を計算できることになるようなことを考えます。

必ず最善手を指しているのならよいのですが、プロとはいえ、すべて最善手とは限りません。

疑問手みたいなものをどう考えるかということにもなってきます。ただ、同一局面が多くなるのなら、統計的に処理をすれば、評価値の妥当性は上がっていくことになるのでしょう。

 

数学的には入力値はN次元空間に配置されて、その点の値が出力値、そして、その出力値を統計的に求めるということになるでしょうか。

 

ここで注意が必要になります。たとえば、簡単な例で考えてみます。

AIに教える(x,y)の値として、(1,1),(2,2),(3,3),(5,5),(6,6)みたいに用意された場合は、x=4の入力に対して、y=4という推測が十分に成り立つのですが、

AIに教える(x,y)の値が、(3,3)しかないような場合、x=4のyの値はと聞かれても、正しい答えが出せない可能性が高くなります。

つまり、AIの把握するN次元空間の中で、データが欠落している空間では正しい値が出てこないことになります。

 

将棋の局面の数を計算した人がいるようですが、1062~1070の間にありそうという感じです。入力する対局数を10万局、1局あたり、平均100手、同じ局面が現れることが多いので、106程度の局面を知っているとしても、将棋の局面の内の1/1050しかデータがないことになります。スカスカな空間の中で推測するという状態です。悪い局面に誘導することはないので、ありえない局面が多数あるとしても、データは1/1010以下しかないと言ってもよさそうです。つまり、まだまだ局面の可能性があるということのようにも思います。

 

多くの棋譜で登場する局面なら、かなり正しい判定が出ていると思うのですが、少ない局面の場合は、必ずしも正しい判定が出るとは限らないと思われます。局面を読み進めることで、正しい判定に近づけることはできると思いますが、それでも、判定できない空間があるような気がします。