流れる空の中で数学を。

とある数学好きの「手作りすうがく」と「気ままな雑記」。

【人工知能】考えるとは何かを考えてみた【知能と世界の関係概論】

Amazon.co.jp: Yoshiki Ueoka:作品一覧、著者略歴

数学関連の絶版本・品切れ本をコチラから購入できます!

考えるということ

考えるとはなんだろうか?

 

「我を思うゆえに我あり」とどこかの誰かがいったのを覚えている。つまり、考えるという行為Tは確かに存在する。

 

考えるという行為が存在する以上、考える対象と考えた結果が存在する。

考える対象を問題世界P、考えた結果を解答世界Sと呼ぶことにしよう。

 

すると、

P\rightarrow T\rightarrow S

という対応関係が考えるということの全容であるとまとめられる。

 

考えるは関数だろうか?

問題世界は、それが実在するかは別として、我々の五感を通して、存在している。ところが、赤いリンゴがひとつあるといっても、人によって、見え方は異なるし、リンゴは1つずつ違う。そこで、問題世界では「要素を考えられない」ということがわかる。つまり、問題世界は集合ではない。同様にして、解答世界も集合ではない。

これは、問題世界や解答世界に曖昧さが残っていることを意味している。

しかし、我々は日常生活を送ることができているのは、ある種の解釈を行っているからだと考えられる。そして、問題世界から解釈された世界への対応関係が存在するわけだ。解釈Iされた世界をモデルと呼ぶことにして、M,M'などと書こう。このモデルは集合だと直感的に考えられる。ここまでをまとめると、考えるということは対応

P\rightarrow I\rightarrow M\rightarrow T\rightarrow M'\rightarrow S

を考えることになる。

こうなってくると、話は違ってくる。つまり、考えるTとはモデルMからモデルM'への関数だと言えるのだ。

T\colon M\rightarrow M'

 

モデルの階層構造

さて、モデルは人によって、状況によって、考えようとしていることによって、臨機応変に変わってくる。つまり、ある種の階層構造を持つと考えられる。そこで、解釈もモデルの数だけ存在することになる。つまり、解釈の列I_1,I_2,\cdots,I_{N-1},J_1,\cdots,J_{L-1}とモデルの列M_1=I,\cdots,M_N,M'_1,\cdots,M'_{L}が存在して、

I_j \colon M_j \rightarrow M_{j+1}

J_j \colon M'_j \rightarrow M'_{j+1}

 となると考えられる。

よって、ここまでの対応関係をまとめると、解答世界が問題世界に影響を及ぼすことまで考慮すると、考えることと世界の関係は、

P\rightarrow M_1\rightarrow \cdots M_N \rightarrow T\rightarrow M'_1\rightarrow \cdots M'_L \rightarrow S \rightarrow P

というループ構造をなすことがわかる。

 

ディープラーニングとは何か素人なりに考えてみた

ディープラーニング人工知能と呼ばれているが、ここで述べたどこの部分に対応するか考えてみよう。画像認識や将棋などでは、考える関数Tの定義域は1つに定められている。つまり、M_Nから始めている。このとき、

 M_N \rightarrow T\rightarrow M'_1\rightarrow \cdots M'_L

の部分がディープラーニングのやっていることにあたると考えられる。ここで、M_N,M'_1,\cdots,M'_{L}は相当に単純化された数学的構造物になっている。特に、最終出力M'_{L}は、単純な数値の集合である場合がほとんどである。

 

何が一番難しいか?

人間が考えるということに限定して、考えるということを考えてみる。すると、最初の問題世界からモデルへの対応は五感ということになる。これは数学的に作ることができるだろう。つまり、問題世界Pから最初のモデルM_1への対応は作れなくない。

しかし、ディープラーニングの例でみたように、難しいのは考える直前に至るモデル化の列の構成方法

P\rightarrow M_1\rightarrow \cdots M_N

である。

 

結局、人間が人工知能として作り得ることとは?

まず、問題世界Pから最初のモデルM_1への対応を疑似的な五感によって、数学的に作れたとする。後は、モデルの解釈の列をいかにして作るかが問題となる。

今一度かんがえるということと世界の対応関係を書いておこう。

P\rightarrow M_1\rightarrow \cdots M_N \rightarrow T\rightarrow M'_1\rightarrow \cdots M'_L \rightarrow S \rightarrow P

モデルは考えることの目的によって、適切に変える必要がある。これが俗に言う臨機応変というやつであって、人間にできて現時点で機械にできないことである。

このことを数学的に表すと、次のセルフコンシステントな関数列をうまく構成することが人工知能を作ることに当たると言える。

 

 

I_j(M,M') \colon M_j \rightarrow M_{j+1}

J_j(M,M') \colon M'_j \rightarrow M'_{j+1}

M=\{ M_1,\cdots,M_N\}

M'=\{ M'_1,\cdots,M'_L\} 

 

この関数とモデルをセルフコンシステントに決定するということが今後の人工知能の課題であると言えると思う。

そして、各モデルの集合としては、できるだけ広く大きなものを取る必要があるということだ。

ディープラーニングでは、この点がどこまで意識されているかはわからないが、多層のネットワークを作ることでモデルと関数をセルフコンシステントに構成しようとしていることだとわかる。しかし、どこまでこのセルフコンシステント性が意識されているかは謎である。

 

これ以上踏み込むと、本格的に研究することになるので、「知能と世界の関係概論」としてはここまでで十分だろう。

具体的に、解釈関数とモデルの列をうまく構成する方法があれば教えていただきたい。