アラン・チューリングの限界―自然言語、生命、自動運転に関する考察

この記事は、Turing Advent Calendar 12/19の記事です。

www.turing-motors.com

昨日の記事に引き続き、ルールベース(形式的な手法)との比較のお話です。

情報科学や論理学で重要な考え方として、「形式化」というものがあります。これはプログラムの考え方そのものでもありますが、世界の事象の在り方や働きの「本質」を抽出し、その定義のみからその事象を再現できるように、厳密に定義されたモデルを構築する営みのことです。Turing機械が、人間の知的活動を形式化したモデルであると同時に、計算とは何かを理解するための道具となっているように、我々情報科学に従事する人々はこのような形式化をもって物事を理解しようとすることが多いと思います。また、形式化は自律的なシステムを構築する力も持っています。現代のコンピューターが最たる例であり、それを通じて、物事を(究極的に)客観的に捉えることができるようになります。

私は1年前は(情報科学のFreshmanらしく)こうした形式化の力を信じ切っていたのですが、この1年で経験したことで、現実世界での問いに対して形式化は本当にふさわしい道具なのだろうか、という疑問が生じてきました。この疑問は、この1年間の生成AIの進歩などによってきっと多くの方が思ったことと本質的には同じなのではないかと思いました。そのため、このことについて考えて、まとめることにしました。

自然言語形式意味論

1年前、私は大学院の形式意味論の授業を取っていました。この授業は、自然言語の意味(この「意味」の意味が明らかではないが)を論理式やλ計算の式といった形式的なモデルを用いて捉えるものです。少し(厳密さを欠いた)例をお見せしましょう。Taro is a child and every child plays. という文を考えます。  \lbrack\lbrack\cdot\rbrack\rbrackを、文(の一部)を形式的な表現に写す関数だと考えます。形式意味論では、品詞ごとに型を持つと考える(ことが多い)ですが、ここでは固有名詞(Taro) は型  e (entity, もの)、一般名詞(child)と自動詞(play)は  e を受け取って  t (truth value, 真理値) を返す関数、つまり型  e \to t だと考えることにします。 e \to t の型を持つ関数は  e の集合と同一視できるので、以後集合の記法を用います。さらに

 \displaystyle
\begin{aligned}
\lbrack\lbrack \text{and} \rbrack\rbrack&=\lambda x.\lambda y.x \land y : t \to t \to t\\
\lbrack\lbrack \text{every} \rbrack\rbrack&=\lambda x.\lambda y.x \subseteq y : (e \to t) \to (e \to t) \to t
\end{aligned}

とします。型については、andのほうは真理値を2つ受け取って真理値を返すので、 t \to t \to t で、everyのほうは集合を2つ受け取って真理値を返すので、 (e \to t) \to (e \to t) \to t となります。どうしてそうなる(そうする)のかは、後の計算を見るとお分かりいただけると思います。

 \lbrack\lbrack \text{Taro is a child and every child plays} \rbrack\rbrack は、文の構文木を受け取っているのだと考えます。このことにより、

 \displaystyle
\begin{aligned}
&\lbrack\lbrack \text{Taro is a child and every child plays} \rbrack\rbrack \\
=&\lbrack\lbrack \text{and} \rbrack\rbrack (\lbrack\lbrack\text{Taro is a child}\rbrack\rbrack,\lbrack\lbrack\text{every child plays}\rbrack\rbrack)
\end{aligned}

という計算を許します。これを続けると、

 \displaystyle
\begin{aligned}
&\lbrack\lbrack \text{and} \rbrack\rbrack (\lbrack\lbrack\text{Taro is a child}\rbrack\rbrack,\lbrack\lbrack\text{every child plays}\rbrack\rbrack)\\
=&(\lambda x.\lambda y.x\land y)(\lbrack\lbrack\text{Taro is a child}\rbrack\rbrack,\lbrack\lbrack\text{every child plays}\rbrack\rbrack)\\
=&\lbrack\lbrack\text{Taro is a child}\rbrack\rbrack\land\lbrack\lbrack\text{every child plays}\rbrack\rbrack
\end{aligned}

となります。ここでは  \lbrack\lbrack\text{is}\rbrack\rbrack \lambda x.\lambda y.y\,x \lbrack\lbrack\text{a}\rbrack\rbrackを恒等関数  \lambda x.x だと考えて、さらに計算を続けると、最終的に

 \displaystyle
\lbrack\lbrack\text{child}\rbrack\rbrack(\lbrack\lbrack\text{Taro}\rbrack\rbrack)\land\lbrack\lbrack\text{child}\rbrack\rbrack\subseteq\lbrack\lbrack\text{play}\rbrack\rbrack

となります(気になる方は、自分の手で計算してみてください)。

 \text{play} は、遊ぶ存在の集合を表しているわけで、  \lbrack\lbrack\text{child}\rbrack\rbrack\subseteq\lbrack\lbrack\text{play}\rbrack\rbrackは、確かに Every child plays を表しているというわけです。

このように、自然言語の文を形式的に表して、意味を解析することができます。この形式化の結果を用いて、例えば Taro plays が含意されているかどうかを調べたりすることができるというわけです。

この授業の最終レポートで、私は内包意味論(intensional semantics)という、上の例のように真理値で意味が捉えられない場合(believe thatなど)にアルゴリズムとして意味を捉える論文の解説を行い、優上の評価を頂くことができました。ですが、勉強するにつれて思ったのは、これは自然言語の学問ではないということです。どちらかというと論理学であり、このような意味論を考えるのは、論理学やプログラミング言語では理論上も実用上も重要だと思うのですが、自然言語らしい性質や、自然言語ならではの面白さが現れてくるとは私には思えませんでした。例のように量化子(詞)や接続詞の問題を扱うことが多く、それはそれで非自明な対応関係が見えてきたりするのですが、自然言語に対して驚きを感じるのは、論理的な推論関係(厳密には、合成性が成り立つような意味)というより、やはり豊かな推論や表現の仕方などのほうだというのもあり、仮にこのような形式的な概念を積み上げていって扱える自然言語の現象を広げていったとしても、そうした自然言語の豊かさは、そういった概念に取り上げられない側に常に残り続けてしまうだろうという感覚を持たざるを得ませんでした。

私はその後、友人の勧めでブランダムの「推論主義」について勉強したりしました(つまり、意味論から語用論に関心がシフトしたということです)。こちらはウィトゲンシュタイン後期の思想とかなり同一であるという印象を受けました。体系化は難しいですが、自然言語の理解としては、やはり使用や実践を重視すべきだと感じられてきました。このことは、哲学にまで立ち返らなくても、大規模言語モデルと日常的に接するようになってきて自然にわかってきたことだと思います。使用場面を徹底的に学習したモデルのほうが、本質をつかめていると思われるからです。

人工生命

人工生命について「作って動かすALife」という本を購入し、実装してみたりしました。以前合成生物学の国際大会iGEMに出場した経験もあり、生命をエンジニアリングの対象として捉えたり、それを通じて理解したりすることには興味を持っており、コンピューターベースで人工生命について理解する方法についても学ぼうと考えました。自己複製するセルラーオートマトンを作る話などが面白かったですし、学習ベースの人工生命の話も載っており、この分野の常識を学ぶ上で読むべき本だと思いました。セルラーオートマトンはそれ自体としては面白いのですが、やはりルールを定めるという所にどうしても「ライフ」ゲームとは言えないところがあると思います。生命は、定義されず、それ自体が自己組織化し、進化により変化していくところに本質があると思うので、決められた規則でシミュレーションするような手法ではそのような部分が捉えられず、厳しいです。また、Turingパターン(Turingが考案した、動物の縞々模様のような模様が自発的に現れる偏微分方程式の系)の話もありましたが、それも同じようになぜその式になるのか(生物でも同じ原理なのか)が気になりますし、また模様(や動き)だけではあまり生命らしさは感じ取れませんでした。

ライフゲームに関しては、最近読んだ論文で面白いものがありました。これだけで記事にしても良い気がしてきました。Flow-Leniaというものです。空間、時間、状態が連続化されたセルラーオートマトンで、時間発展の規則を定めるパラメーターは質量保存の法則が制約として与えられる中で、探索により得られるようにしています。すると、ランダム探索でもほとんどの点で空間局在的な模様(SLP; spatially localized pattern)が現れるようになったとのことです。私も自分でセルラーオートマトンをアレンジしてみたことがあるのですが、少し変わったことをするとパターンが非局在化してしまうことが結構あったので、これを安定化させるのはすごいと思いました(質量保存の法則と聞くと確かにそうなる気もしますが)。また、有名なConwayのライフゲームでは時間発展の規則が空間全体で共有されていましたが、Flow-Leniaでは規則が場所によって異なることが許されており、時にはそれらが混ざり合うことも起きます。セルラーオートマトンの規則は、物理法則以上の意味を持っていることが多く、むしろ物質をどのように活用するかという生命が持つ性質のような面があります。この規則の局在化は、複数の種の共存や非生命的な(安定した)ものと空間を共有することを許すもので、実際複数の生命が共存して、淘汰されたりする様子を下のリンクのサポートサイトの動画から見ることができます。不気味の谷に入り始めたような、生命らしい気持ち悪さも多少感じます。生命とは本来そういった気味の悪いものでもあると思います(理論的に、洗練されたものではない!)。

sites.google.com

論文中のFigure 6。キャプションの要旨: (a) 複数種共存でのシミュレーションのサンプルで、色が規則を定めるパラメーターを表している。(b-e) 大きめの空間での複数種共存のシミュレーションのタイムラプス。(f) 環境中に食べ物(青色)を配置したときのシミュレーションのタイムラプス。個体の分裂(赤枠)が観測された。

ライフゲームの良いところは、個としての生命(オブジェクト指向的な世界観)と、その複製を仮定しないところです。その意味で物理学の「場」のような印象を受けます。Flow-Leniaでは、さらにその規則を人間が定めるのではなく、規則を定めるパラメーター空間の多くで自然に生命らしい振る舞いをするようなモデルを、少数の物理法則に類似した前提のみから生み出せたという点が面白いと思います。気になった点としては、複数種のシミュレーションで、最初多くの種が干渉しあわない位置に配置されていて、セットアップがもっとぐちゃぐちゃだとどうなるのかということです。また、時間が経つにつれ多様性が低下していたので、分化を促進するのに変異とかを入れたら良いのでしょうが、確かにそもそも何に変異を入れたらいいのか(規則への変異が「遺伝子」的なものにあたるのか)考える必要があると思いました。論文中で述べられているように食べ物などを不均一に環境中に配置することは進化を促進することができるかもしれません。

形式的な手法について

このように、自然言語と生命という、2つの現実世界に内在する対象について向き合っていたのですが、どちらも似ていたのは、形式的な手法では本質をとらえきれないと思えたことでした。では、どうして本質をとらえきれないのでしょうか。

私は最初、形式的な手法の表現力の低さにその原因があると考えました。自然言語も生命も、複雑な対象です。ですが、形式的な手法は、基本的に少数の規則で(美しく)物事をとらえようとするため、そういった複雑な現象に対しては、次元圧縮のようなことが起こってしまいます。そして、自然言語や生命がその「高次元であること」自体に本質があるのだとすると、射影を取ったとたんに本質が失われてしまうというのは確かに起こり得ると思います。

ですが、本当にそうでしょうか。形式的な手法は、複雑な現象に立ち向かうことができないのでしょうか。それは違うと思います。理論計算機科学は十分に複雑な問題を含んでいますし、数学一般についても形式的な定義から豊かな世界が広がっています。また、私たちの世界であっても、物理的な側面に着目すると、物理学の理論は複雑で豊かな現象に立ち向かうことができていると言えます。

そこで私は、むしろ世界の構造の方に原因があるのだと考えるようになりました。形式的な手法が得意とする世界と、現実世界では世界の構造が大きく異なります。形式的な手法が得意とする世界は、演繹的な世界であり、規則から世界の在り方が導出されるような世界です。そのような世界では、「一般」が問題になります。すなわち、すべての○○がこういう性質を持つかとか、こういう性質を持つものが存在するかといった、一般的な問題です。一方で、我々の現実世界は、もちろんそうやって定義づけられた世界ではなく、問題になるのは、具体的に立ち現れてくるもの、すなわち〈この〉現前している事象です。自動運転の問題で言っても、すべての(一定の条件を満たす)赤コーンに対して止まることができるかを証明しても、その条件を満たさない例外的な状況への対処が求められることになると思いますし、そういう状況こそが現実世界の難しさや、奥深さを象徴しているのではないかと考えます。

形式的な手法が得意とする世界においても、複雑な現象は現れるので、現実世界の複雑な問題を近似的に捉えることができるのではないかと、私を含め多くの人が考えていたのではないかと思います。ですが、演繹的な世界で複雑な現象を扱う時の形式的な手法の威力は、そもそも現実世界には適用しえないと考えます。というのも、そういった数学などの世界では、冒頭で書いた「形式化」の自律性に任せて、人間の理解を離れて、形式がどんどんと先へ行ってしまうことを許すことができ、それこそがその世界で複雑性を生む源泉であると考えているからです。現実世界においては、意外な結果が形式的な体系から現れたとしても、それを称賛するのではなく、むしろそれを 「不具合」だと捉えて、そういったことが起きないように抑圧してしまうことが多いでしょう。これは、この2つの世界の決定的な断絶を表すものであり、なぜ形式的な手法が現実世界の問題に対処できなかったかの根本であると考えます。

そして、現実世界においても、最終的に複雑な問題をとらえることができる手法は、「人間を置いて行って、どんどんと先へ行ってしまう」力を備えたものであるように推測されます。私はこのような流れから、深層学習などの統計的な手法に頼る流れは必然なのではないかと考えます。

自動運転

そして、Lv.5の完全自動運転は、まさに現実世界の、目に見える世界から社会規範までもが入り混じった複雑な問題であると考えています。私はこの意味でEnd-to-endの機械学習でこの問題に取り組むというTURINGの方針に共感しています。LLMやVLMといった、形式化とは異なる手法で、自律的に振る舞い人間を超えていくようなモデルこそがこの問題の解であると考えています。

新交通システムのようなものであれば、形式的な手法の方が合っているかもしれません。その方が、決められた時間に決められた場所に到着する保証が得やすいでしょう。ですが、ゆりかもめなどを見ても、ホームドアは異様に高いですし、走行する場所もほかの往来とは大きく異なっていて、ある意味で仕様から起こる現象がすべて説明できるような、演繹的な世界だといえます。

今後、どういうことがやっていきたいか

先ほど、自然言語や生命などの現実世界での問題について「その『高次元であること』自体に本質があるのだとすると」と書きました。これは本当なのでしょうか。もしそうなのだとすると、先ほどの「理解は低次元への射影を取ることだ」という考え方に基づくと、人間は言語や生命について決して理解することはできないのではないか、「言語とは何か」「生命とは何か」といったことを問うのは無意味ではないかという、虚無主義に陥ってしまわないかと思われるかもしれません。

私は、高次元であること自体に本質があるというのはかなり正しいと考えるようになりました。正直、一番の根拠は大規模モデルのスケーリング則で、それ以外は特に無いです。

ではどうしていけばいいでしょうか。私は理解の仕方や目的を変えれば、逆にチャンスになるのではないかと考えました(特にエンジニアにとっては)。大きな流れとして、人工知能の発展により、哲学的、思弁的な問いが工学的な問いの領域に落とし込まれてきているというのはあると思います。確かに、形式的な手法で人間の活動や実世界について完全理解できるというスタンスは通用しなくなってきたと思いますが、中身についてよく分からない部分があっても、「作ることで理解する」ことができる部分は大きいと思います(人工生命もそういう動機だったと思います)。また、中身についても、モデルの動作はそれ自体の学習にお任せしつつ、モデルについて解析すべきことは多くあると思います。幸いなのか分かりませんが、モデルは人間がエンジニアリングしているものなので、整然としていますし、形式的な手法で解析できることもあるようです。今セメスターの授業で、どうして深層学習の活性化関数にReLUが使われるようになったのかや、どうしてAttentionがあのような形をしているのかを数学的に教えてくれる授業があり、今までは「そういうものなのか」で済ませていた部分に理由付けができて面白かったです。最初に考えられたときはもしかしたら適当で、そういう理解は後付けなのかもしれませんが、それでも面白いですし、そういう種類の解析は単に自分の満足だけではなく、自動運転でも大事なモデルのRobustnessの解析などにもつながってくると思うので、最近は深層学習の理論に興味が出てきました。一方で、モデル自体も自己組織化するような方向への研究もあるらしく、もう人間が置いてきぼりになりそうですが面白いと思っています。

また、スケーリング則に関連して、高次元になりすぎるとカオスになったりしないのかは気になります。現代文の過去問で生命がいられる場所?について「カオスの縁」の話があって、それを思い出しました(確か自由度が低すぎると結晶みたいに規則的なことしかできなくて(形式化の手法に近いですね)、高すぎると動き回りすぎて何も持続できないみたいな話だった気がしましたが、ほとんど忘れました)。もし上界もあるのであれば、高次元なら何でもよいというわけではなく、その次元の特徴づけが意味を成してくるので面白いと思います。現代の計算資源を使って、カオスの上界を探ってみることには興味があります。

まとめ

現実世界の問題を解決する道具としては、形式的な手法は困難だということが分かってきました。このことは、「生命とは何か」「言語とは何か」「人間とは何か」といった大きな問いに対して従来の手法では理解に到達できないことを意味するかもしれませんが、逆にそれらの問題に工学的にアプローチできるようになってきたという捉え方もできると思います。

つまり、これらの問いの今一番近くにいるのはエンジニアだと言えるかもしれません。生成AIのサービスを享受する側に甘んじるのではなく、作る側になりたいです。Lv. 5完全自動運転は、身体性や世界の知識などが必要とされ、人間を作るのに近いと思っているので、今後のTURINGが楽しみです。