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

この記事は、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が楽しみです。

人間の理解やものづくりと、進化が生み出す物について考えていたこと

この記事は、ISer Advent Calender 2022 12/19の記事になります。

adventar.org

とは言っても、実は書いたのは結構昔になります。下書きにたまっていました。書いただけで自分としては満たされて公開しなかったパターンですね。さすがに2日連続で記事を書くのはきつかったので(連投してる人すごすぎる)、ちょっと直しつつこれを放出しようと思います(前日の記事はこちらです)。ポエムなのですがどうか許してください…。

みなさんこんにちは。お久しぶりです。
2Sセメスターももう終わろうとしていますね。

このセメスターは取った授業は少ないもののiGEMや未踏で本当にバタバタしていました。このことについてはまた今度書くかもしれません(書かない気がします)(12/19注: 書きませんでした)。

本当はこんな記事も書いている時間も無いはずなんですが、進振りも近いですし「自分が何をやりたいのか/やるべきなのか」を考える機会が多く、この辺りで一回まとめて、自分でも自分のことを分かっておいたほうがいいだろうと思って書くことにしました。

また、このようにブログ記事として公開するのは、他の人とも共有したいという気持ちもあるからです(12/19注: 公開してなかった人が何を言っているんだ)。私としては自分が興味を持っていることはもっと多くの分野で普遍的/本質的なことかもしれないと思っています。文学部に行った友人と話してみたら話が合ってしまったこともありました。この記事を通じて、異分野の人でも興味を持っていただけると嬉しいです。

「硬いプログラム」と「やわらかいプログラム」

私は「硬いプログラム」と「やわらかいプログラム」を対比的に捉えるのが好きです。どちらかというと、やわらかいプログラムのほうが好きで、それを硬いプログラムと比較することで、それがどんな性質を持っているものなのか浮かび上がらせることに興味があります。まずは「硬いプログラム」「やわらかいプログラム」が何を指しているのかについて説明しようと思います。大まかに言うと「硬いプログラム」はコンピューターで「やわらかいプログラム」は生物に当たると考えていただいて構いませんが、少し違う面もあります。

硬いプログラム

「硬い」という言葉で私が想定しているのは、物事を分解的に見て、できるだけ厳密な論理で理解しようとしたり、何かを作り上げようとしたりすることです。コンピューターはこのような営みの最たる成果だと思います。チューリングマシンは「計算」という人間の行為を厳密に観察し、定義したものです。それを元に緻密に設計し、正確に動くよう作られたものがコンピューターだと思います。少し範囲を広げると、形式論理や型理論も「硬い」という言葉で捉えています。情報科学との関連もそうですが、自然言語などにみられる論理構造を分解し、厳密に理解しようとしたものが形式論理でしょうし、型理論は数学を厳密な論理で構築していく上で有用になっていると思います。

やわらかいプログラム

「やわらかい」という言葉で私が思い浮かべているのは、誰が設計したわけでもなくて、よくわからないものだけど、なんか上手くいっているようなものです。更に、環境との相互作用を活発に行い、それ自体が変容していくようなものです。生物が最たる例でしょう。生物と言ってもいろんなレベルで当てはまると思いますが、私が一番思い浮かべやすいのはDNAレベルです。iGEMでは合成生物学をやっていて、今年は酵母のゲノムを「プログラム」して目的の機能を実現させようとしています。合成生物学の場合はこのように目的を持って生物をプログラムをしようとするのですが(その意味では生物を「硬い」設計論理に従わせようと頑張っているのですが)、本来酵母のゲノムは誰が設計したわけでもありません。厳密に、正確に、パーツを組み上げて設計されたコンピューターとは大違いです。それなのに生物が上手くいっていることは身の回りでよく分かることで、大変興味深いです。またそのように設計者はいないものの、塩基配列はまさに「プログラム」と言えるような制御構造が現れており、下のツイートで述べたようにある意味でイベントドリブンプログラミングだともいえ、面白いです。

自然言語も同じように、「日本語とは、これこれこういうものとする」と誰かが定義したようなものでもないのにこれほど豊かで、さらに言葉のやり取りによってどんどん変容していく対象であり、面白いと思います。

硬いプログラムとやわらかいプログラムの対比

この2つを対比的に捉えている分野は様々あると思います。いくつかを挙げたいと思います。

コンピューターと生物

コンピューターと生物がこの対比に重ねられることは先ほど書いた通りです。ここではそれらを融合したアプローチをいくつか紹介したいと思います。コンピューターで生物を模倣するものは、機械学習遺伝的アルゴリズムなど有名なものが多いと思うので詳しくは省略します。生物でコンピューターを模倣する、つまり生物に「硬さ」を持ち込もうとするものは、合成生物学がまさにそうですが、より私が詳しく興味を持っているものだと次のようなものがあります。

CRISPR-Cas9という生物のシステムがあり、ゲノム編集などに活用されているのですが、それを少し改変したものでdCas9というものがあり、これは遺伝子の転写制御に使えます。モジュール性が高く、これにより複雑な回路をシンプルなパーツの組み合わせで構築することができます。NORゲートを比較的簡単に構築することができ、これを組み合わせることでAND, OR, NAND等の様々なゲートを生物の中で構築することが出来ます。このアウトプットは「遺伝子の発現」にすることができるので、「こういう環境の条件の時に、この機能を生物に持たせたい」といったことをより精密に行うことが可能になります。

(このツイートはXORでなくNORでした、ごめんなさい)
このツイートの画像ではアウトプットはGFP(緑色蛍光タンパク質)の発現なので、電子工作で言えばLEDを光らせるみたいな感じです。

元論文はNature Communicationsにあるので、どなたでも読むことが出来ます。
Digital logic circuits in yeast with CRISPR-dCas9 NOR gates | Nature Communications

「これで加算器をつくれないか」と友人に言われました。現段階では組み合わせられるゲート数に制限がある(徐々に誤差が溜まってしまう)ためできませんが、将来的にはできるようになるかもしれません。夢がありますね。

他にも、生物の遺伝子発現を記述するプログラミング言語を作るという取り組みもあります。MITのVoigt研などがやっているそうです。紹介ページにも「The first is focused on the development of a programming language for cells.」と書かれています。私もiGEMで生物版スクラッチのようなものを開発中で、とある高校向けの授業で用いたり、iGEMで知り合った方と協力して開発したりしています(これについては今度書くかもしれません、書かないかもしれない)(12/19注: これはいずれ書こうという意志があります)。

この前退官された理学部情報科学科の萩谷先生が専門の「自然計算」も近いのかもしれません。DNAコンピューターなどを研究されていたそうです。ただ、「生物で」というより「DNA分子で」と計算をするという印象があります。

情報認知科学

2Sで取っていた授業ですが、そこでも知能を「硬いもの」として捉えるか「やわらかいもの」として捉えるか、に近い話題がありました。前者は「計算と表象」に基づいた古典的なフレームワークで、知能をコンピューターメタファーの中で捉えます。脳の中に記憶装置、処理装置などがあると仮定していく立場でした。そして固定された表象に計算を施していくという風に人間の知能をとらえていました。この立場だと、「環境との相互作用」や「知能が変化していくさま」が上手く掴めないので「生物学的シフト」が生じて、後者のように考えられるようになりました。知識は予めStaticに貯蔵されているのではなく、使われるたびに環境との相互作用の中で構築されるという「生成性」や、またその構築のされ方も「もの」として作られるというより、様々な感覚の活性パターンによって生じるという「イベント的な知識観」などが印象的でした。

自然言語処理

自然言語にもこの対比は当てはまると思います。自然言語処理の界隈では「古典的計算主義⇔コネクショニズム」という軸があるようです。昔の人工知能研究では、「自然言語の諸現象は形式的な論理で説明できる」と考えられていることが多いイメージがあります。ですがそれだとなかなかうまくいかないことが判明したようです。膨大な数の規則が必要という問題もあるほか、言葉の意味はどんどん変わっていくので、そのような変化に対しいちいち「各単語固有の文法規則」をアップデートしていくのは無理があります。また、そもそも自然言語で形式的に表現できる部分はサブセットに過ぎなかったという話もあるそうです。そのため、統計的な自然言語処理ディープラーニングベースの、コネクショニズム的な手法が今の主流なのだと思います。ですがそれだと今度は論理的な意味の把握に弱くなってしまったので、「硬いアプローチ」と「やわらかいアプローチ」の融合が模索されている、と聞きます。

(この分野については知らないことが多すぎたので、自然言語処理専門の先輩に教えていただきました。)

ウィトゲンシュタイン?

ウィトゲンシュタインの思想にも、「硬い理解」⇔「やわらかい理解」という対比が見て取れる気がします。そんな書けるほど詳しくないので出しゃばりすぎないようにしますが、前期の思想では自然言語の文は(自然言語処理の古典的計算主義に似てる気がしますが)世界を記述する命題として捉えられているイメージがあります。その上「論理空間」などの概念を緻密に定めて「語りえないもの」を導出しようとしている印象があります。そのため「硬い」イメージがします。後期の思想は「言語ゲーム」という、日常での言語使用の場面場面を重視し、その中で習得していくものとして言語を捉えているような気がして、環境との相互作用などを重視しているイメージから「やわらかい」感じがします。

まとめ

今よくやっていること等の関係で情報と生物の内容が多くなってしまいましたが、それ以外の分野でもこの対比は当てはまるということが分かっていただけたのではないでしょうか。

ほかの分野の専門の方にはあまりにも緩いアナロジーになってしまったかもしれず、申し訳ないです。興味はあるので、詳しく教えていただけると嬉しいです。

12/19追記

今読み返すと、対比だけ構築しておいてあとは何するつもりなんだ…!みたいな感じで、ちょっと消化不良の方もいるかもしれません。ごめんなさい。

今の私の興味としては、「硬い」「やわらかい」のどちらかにつくというよりは、両方を通貫するようなことを研究してみたいなという興味があります。

具体的には、「記号列」はまさにそうだと思います。プログラミング言語のように厳密に定義されたもの(硬いもの)もそうですが、やわらかそうな自然言語やDNAも同様に形式言語として捉えられる側面が大きいです(塩基配列でいうとRNAの構造解析などに役立つらしく、「実用的」でもありちょっと驚きました)。形式言語理論の授業が始まってみると、思いのほか面白かったというのは大きいです。今リアルタイムでは群論の言語の話がかなり自分の中で来ています(昨日書いたMuller-Schuppの定理はアツいですね、本当に)。これは「硬い」方だと自分では思います。

また、(「硬い」設計論理で重要になってくる)「理解」とは何なのか、必要なことなのか、といったことにも興味があります。これは最近もよく考えていることなので、考えがまとまったら記事にしたいです。進化は「理解する」主体者のようなもの無しで物を生み出しているわけで、それでもこんなに上手くいっているのはやはり不思議です。理解するという営みは、高次元の現象を低次元に圧縮してコンパクトにするようなことなのかなあ、という風に考えています。だから、高次元のまま何かができればそれに越したことはないのかもしれないです。私としても、頭で理解しようとして逆に動きや直観が悪くなるようなことはたまにあります。ここら辺のことは今頭に浮かんだことを書き連ねているだけであまり論理的ではないですが、いずれうまく言語化できるようになってきたらまとめたいです(それも低次元化して理解しようとした結果ということではあるのですが)。

理解と記号列の話は別々の話ではないです。記号列の形でものを認識するということは人間が何かを理解するということと深くつながっているような気がします。プログラムや自然言語など人間の生み出すものや認識するものが記号列の形を成しているのは人間の理解可能な範囲に収まる必要性からなのかもしれない("1次元"の記号列として)と考えていて、そのように考えることは可能なのかとちょっと考えています。ですがDNAも1次元の記号列の形をとっているのは不思議ですよね。もっと複雑な構造で塩基配列を記憶していても良かったのに。これらのものが1次元の記号列の形になっているのは、もっと他の制約(理解などとは別)からきていることも多いのかもしれません。

今までのブログなどの記事では書かないくらいのスピードで頭の中に浮かんだことを書いたので、だいぶ色んなことが飛んで行ったりしているかもしれないのですが、ここら辺のことはまたいずれ整理して書きたいです。その時はまた、お付き合いいただきたいです。

有限生成群上の形式言語がどんなオートマトンで受理できるかを考える

こんにちは。finalです。
これは ISer Advent Calendar 2022の12/18の記事です。

adventar.org

なんか1日早いんですけど、まだ明日も書くつもりでいます()
Advent Calendarに面白そうな数学の記事があったので、僕も数学の話がしたくなってしまったのです。

早速ですが、万物の根源は何でしょうか。有限の記号列ですよね。
人間の世界は、有限の記号列から出来ているといっても過言ではありません。
人間の話す言葉、プログラム、等々、世界は有限の記号列からできています。数学も例外ではありません。
数学で問題となる対象は、何らかの有限の記号列で表現されている必要があると思います。

また逆に、ある対象が複数の有限の記号列で表現されることがあります。
例えば、「7」という数は、7,3+4,2+5,1+2+4,1+1+1+1+1+1+1など、複数の記号列がそれを表します。
このような記号列を全部集めると、「整数上で7という数字を表す言語」が作れそうですよね。なんだか形式言語っぽい話になってきました。

有限生成群上の「言語」を考える

 Gを群として、 S\subset G\,(|S|\lt\infty)によって Gが生成されているとします。すなわち、任意の g\in Gは、 s_1,s_2,\ldots,s_n\in Sが存在して g=s_1s_2\cdots s_nと表せます。
そこで、次のような言語(#)を考えます。 g\in Gに対し、

 \displaystyle
L_g=\{\sigma\in S^*\mid\bar{\sigma}=g\}

とします*1。ここで、 S^*の*はKleene starで、 Sをアルファベットとしてみた時そのアルファベットの有限列(空列含む)全体からなる集合です。 \sigma\in S^*に対し、 \sigma は記号列を表しますが、 \bar{\sigma}でその記号列が指し示す群の元を指すことにします。

例えば、 G=\mathbb{Z}, S=\{1,2\}とします。演算が積でないのはややこしいですが、 3=1+1+1=1+2=2+1なので、

 \displaystyle
L_3=\{111,12,21\}

となります。

モチベーションについて

有限生成群上の言語(#)を集合としては定義できましたが、具体的にその言語がどのようなクラスに属しているかは気になります。
正則なのか、文脈自由なのか、…ということです。

もし、比較的簡単なクラスに属していたとすれば、それは興味深い事実です。
「群」というのは非常に豊かな対象で、演算も多様な意味で定義されています。
ですが、そのような群上の言語を受理するオートマトンや、言語を生成する規則などは、そのような「豊かな意味」がどんなに豊かなのかを知らなくても、有限の規則に従って演算を処理するだけで「2つの表記が群の中で同じものを指すかどうか」を判定することができる、ということになるのです。

そんなことができるのか、という風に思われるかもしれません。 この問題は「Dehn's problem」や「Word problem」とも呼ばれていて、Wikipediaにも載っています
実際、ある有限生成群についてこの言語が計算可能にはならないことが示されています。この話はどこかで書きたいです。

いくつかの種類の群の言語(#)については、計算可能ですし、きれいな言語クラスに属します。
以下のような定理が存在します。

有限生成群 Gについて次の(1)(2)は同値である*2
(1)  GはVirtually free groupである。
(2)  Gについての言語(#)は文脈自由言語である。

(2)⇒(1)は、おそらく難しいと思います。言語に属する記号列に対応するケイリーグラフ上のパスに g^{-1}をかけて閉路にしたものに対角線を引いて三角形に分割していくとき、Chomsky 標準形をうまく使うと対角線の長さに上限を与えることができます。そこからよく意味の分からないことをやると、示せるみたいですね…()(参考文献に証明があるので、どなたか教えてください)。
ここでは、(1)⇒(2)を示そうと思います。

有限生成なVirtually free group

Virtually free groupは自由群を正規部分群に持つ群で、さらに指数が有限になっているもののことです。
すなわち、  F(X)\lhd G,H=F(X)\backslash G (右剰余類)とすると、 |H|\lt\infty で任意の g\in Gは、 x\in F(X),h\in Hを用いて、

 \displaystyle
g=xh

と表すことができます。

そして、さらに Gは有限生成なので、有限集合 S\subset Gを用いて \langle S\rangle=Gとなっているとします。

 H, Sともに有限集合であり、 \forall h\in H,\forall s\in Sについて、それぞれ次のような x'\in F(X),h'\in Hが定まるというわけです( x'は簡約済み)。

 \displaystyle
hs=x'h'

この関係式は有限個しか存在しません。そのため、予め全ての h\in H,s\in Sについてこの関係を用意しておきます。

なんだか、プッシュダウンオートマトンに使えそうな気がします。

プッシュダウンオートマトンを構成する

気持ちとしては、 Hのケイリーグラフに判定用のグラフをちょっと付け加えたようなものとしてプッシュダウンオートマトンを作ります。

プッシュダウンオートマトン M=(Q,\Sigma,\Gamma,\delta,q_0, Z_0)を次のように構成します。

  •  Q: 状態の有限集合。ここでは、 Q=H\cup Aとする( Aは後述)。
  •  \Sigma: 入力アルファベットの有限集合。ここでは、 \Sigma=Sとする。
  •  \Gamma: スタックアルファベットの有限集合。ここでは、 \Gamma=X\cup X^{-1}\cup\{Z_0\}とする*3
  •  \delta\subset( Q\times (\Sigma\cup\{\varepsilon\})\times\Gamma)\times(Q\times\Gamma^*): 遷移関係。後で定義。
  •  q_0\in Q: 初期状態。ここでは、 q_0=e\in Hとする( e: H単位元)。
  •  Z_0: 初期スタック記号。

記号列 \sigma=s_1s_2\cdots s_n\in S^*を受理することを考えます。 gを一致するか判定したい目的の元とします( L_g g)。 g g=xh,x\in F(X),h\in Hと(簡約すれば)一意的に表せるので、まず、 \bar{\sigma}=gの時(またその時に限って)、

 \displaystyle
(e, \sigma, Z_0) \vdash^* (h, \varepsilon, Z_0x)

となるように遷移関係を設定したいです(括弧内は時点表示:ID を表す3つ組で、現状態、残り文字列、スタックの記号列を表します)。そのためには、次のようにすればよいことがわかります。

状態 hにいて、記号 s\in Sを次に認識する状況を考えます。この時、 hs=x'h' となるとします。  x'の1番目の文字を x_1'\in Xとします。 もしスタックの一番上の文字が x_1'^{-1}ならば、これをスタックからpopして、2文字目以降があればそれをpush(またはpop)していって、状態 h'に移ります(注:  x'は複数文字のこともあるので、その場合は遷移をいくつかに分けて(中間状態( \in A)を用意して)、繰り返しスタックの一番上の文字を見ていくことになります。ですがそれでも遷移と状態は有限個で確定します)。一番上の文字が x_1'^{-1}以外ならば、スタックに x'をpushします。
さきほど有限個用意しておいた hs=x'h'の関係をもとに、これらの遷移関係を全部 \deltaに入れます。

そうすると、 \bar{\sigma}=\overline{s_1s_2\cdots s_n}=gで、 es_1=x_1 h_1,h_1s_2=x_2h_2,h_2s_3=x_3h_3,\ldotsとなっているとすれば、この遷移に従うことで、

 \displaystyle
(e, s_1s_2\cdots s_n, Z_0) \vdash (h_1, s_2s_3\cdots s_n, Z_0\pi(x_1))\vdash(h_2,s_3\cdots s_n, Z_0\pi(x_1x_2))\vdash\cdots\vdash (h_n,\varepsilon, Z_0\pi(x_1x_2\cdots x_n))

となります( \pi(\cdot)は簡約結果を表す。例: \pi(zyzxx^{-1}z^{-1})=zy)。さらに g=\overline{s_1 s_2\cdots s_n}=x_1 x_2\cdots x_n h_nなので、うまく遷移関係を設定できたことになります。
popとpushをうまく使い分けることで、簡約ができるのがポイントですね。

さて、 (h, \varepsilon, Z_0x) という状況になったとします( g=xh)。この状態になったときに限って、ある状態  q において、IDが (q, \varepsilon, \varepsilon)となるようにしたいです。
そのためには、 xの語の長さを lとして、新たに状態を l Aに追加します。それは、状態 hから一本道で、 \varepsilon遷移するごとに、スタックの一番上のアルファベットを見て、それが xのものとして正しい場合に限ってpopするように定めればよいです。その道の終点から、さらにもう1つ状態を追加して、そこで初期記号 Z_0 もpopできるようにします。これにより言語(#)は受理できました。

まとめ

知らない世界でしたが、群論形式言語がつながっている世界で、色々な論文を読んでいると本当にワクワクしてきました。
早く(2)⇒(1)が理解したいです。

参考文献

  • Word problem for groups (Wikipedia)
  • The Word Problem in the Chomsky Hierarchy
    • Word Problemの全体像(どんなクラスのものがどんな種類の群に対応しているか)について書かれています。
  • 群の語の問題と Muller–Schupp の定理
    • 文脈自由言語とVirtually Free Groupの対応が説明されています。日本語ありがたい…
  • Muller, D. E., & Schupp, P. E. (1983). Groups, the theory of ends, and context-free languages. Journal of Computer and system sciences, 26(3), 295-310.
    • 文脈自由言語とVirtually Free Groupの対応の証明です。こちらの場合、(2)⇒(1)はThe theory of endsなるものやStalling structure theoremを用いています。
  • Diekert, V., & Weiß, A. (2017). Context-free groups and Bass–Serre theory. In Algorithmic and geometric topics around free groups and automorphisms (pp. 43-110). Birkhäuser, Cham.
    • 同じく文脈自由言語とVirtually Free Groupの対応の証明なのですが、こちらのほうが分かりやすい気がしました。長くて全部は読めていないのですが、(2)⇒(1)の証明がMuller, Schupp, 1983とは少し違いそうです。

謝辞

このような分野の存在を教えてくださった線形演習でお世話になったN先生に感謝します。

*1:一般的には、それぞれの群に対して「単位元を表す文字列全体」という形でこの言語は定義されるのですが、ここではより問題意識に近い形で定義をしてみました。

*2:注釈*1 の言語に置き換えたものは、Muller-Schuppの定理と呼ばれています。

*3: 本当は X が有限であることを示す必要があります。 G が有限生成であることから示すことができます。

想像力について学んだこと

こんにちは。ついに期末試験が終わりましたね。 モチベーションを下げたくないので、流れでブログを書きます。

Aセメは楽しい授業が多かったです。特に、英語中級・哲学Ⅱ・先進科学Ⅱαでは「想像力」についての話がありました。

ここでは英語中級向けに書いたレポートを抜粋・編集してそれについて書いていこうかと思います。

「未来学入門」

英語中級の授業内容は、Jacob Bronowski氏の『A Sense of the Future』を読んでいくというものでした。この本自体が面白いですし、さらに本の内容を時間や範囲を気にせず掘り下げて考えていくスタイルが(英語一列と違って)好きでした。もうちょっとあの授業をやっていたかったですね。

レポートを紹介する前に一応本の内容をざっくりと説明します。次のような感じです。

  • Chapter 1 A SENSE OF THE FUTURE: 科学が大事にする価値とは何か(=非常に人間的で、民主主義的な価値)。そのような科学の姿勢が未来に立ち向かう上でふさわしい。
  • Chapter 2 THE CREATIVE PROCESS: 科学と芸術における「創造」とは何か(=全人格的に、無秩序の中から新しい「つながり」を生み出すこと)。
  • Chapter 3 ON ART AND SCIENCE: 科学と芸術の違いは何か(=「創造」のプロセスにはそこまで違いはない。創作物への追体験のされ方が異なる。科学は厳密に元の体験と一致するが、芸術はそのようなことはない)。
  • Chapter 4 THE REACH OF IMAGINATION: 科学や芸術における創造と、想像力の関係。人間固有な想像力の在り方。
  • Chapter 5 あるけど読んでいない

レポートはChapter 4の「想像力」の在り方に主眼をおいて書きました。この「想像力」は先ほど書いたようにAセメで受けた他の授業でもよく取り上げられていました。哲学Ⅱでも「想像力とはなにか」というテーマで議論が進められていましたし、先進科学Ⅱαも、ヒトにしか出来ない行動の源泉として「想像力」が挙げられていました。そのため、想像力について書いたレポートを振り返ることは、Aセメの多くの授業にわたって学んだことを振り返ることに繋がるので、書きたいなと思った次第です。

レポート紹介

人間の想像力と人工知能(AI)の持つ力を対比的に考えていくレポートです。

ここで用意するcounterpartはAIである。本文中では、「現在のみを生きることができる」動物と対照的に、想像力によって過去や未来について意識を働かせることが出来る人間の在り方が提示されている。だが、これは本当に人間だけなのか。AIも未来について「予測」することが出来る。「株価予想」などと言ってよくAIが使われている通りだ。他にも様々な「予測」が出来る。本文中で上げられている「チェスの手の想像」について言えば、今やAIのほうがよほど得意なようである。

想像力が無ければ「現在のみを生きる」ことになってしまいます。この話は先進科学Ⅱαとつながってうおーとなりました。Ⅱαではチンパンジーに「交換」が出来ないというのを学びました。交換をするには、一時的に自分の物を差し出すことで不利益を被る必要があります。「後で利益が返ってくる」ということを認識するには想像力が必要です。

レポート中で本文について触れていますので、その部分の補足をします。次のように動物と人間の在り方が対照的に説明されています。括弧内は引用者による追記・省略を表しています。強調も引用者によるものです。

  • The direct (≒physical) gesture of attention and readiness is perhaps the only symbolic device that the dog commands to hold on to the past, and thereby to guide itself into the future.

犬の記憶力を試す実験が紹介されており、犬はどうやら「自分の身体を使って」記憶を保持する(ライトが光った方向に前足を向けておく、など)しか方法が無いようです。

  • the most important images for human beings are simply words, which are abstract symbols.

それに対し、人間には「言語」があります。

  • The (linguistic) images play out for events which are not present to our senses, and thereby guard the past and create the future (...). By contrast, the lack of symbolic ideas, or their rudimentary poverty, cuts off an animal from the past and the future alike, and imprisons it in the present.

人間は想像力によって、過去や未来に意識を向けることが出来ます。一方動物にはそれはできないということが、確かに述べられています。
想像力と言語には密接な関係があると思います。言語を持たないものは想像力も持ちえないと考えます。このことについてはAIの例を通じてこれから書いていきます。

レポートの内容を続けます。再びAIの予測と人間の想像の比較です。

 確かに、「予測」と「想像」は違うのだと言われるかもしれない。最初に書いたように「想像」は人間らしい「創造」の基盤となり、予測は一見そうは思えない。だが、AIが人間らしい創造を出来るようになってきているのは事実である。AIが小説、音楽、絵画などを作ったという話をよく聞く。例えば、AIが文章の続きを補完して小説を書いてくれる「AIのべりすと」は有名であり、よくTwitterのフォロワーが使って遊んでいるのを見かける。

「最初に書いた」部分をブログ上では省略したんですけど、想像は創造の基盤となります。本文に「創造=chaosからのunityの発見」と書かれていました。その発見を支えているのが想像力でしょう。AIに我々のような想像力があるようには思えませんが、それでも似た創造活動が出来るようになってきています。

AIの行う創造が人間らしい創造に近づいてきている事態は、Bronowskiの議論を踏まえれば皮肉なことである。なぜなら、AIにはpersonalityが一切ないからだ。本文にあるように「理性・感情含め全人格を詰め込んで」創造を行っているなんて持っての外で、きわめてdeductiveかつmechanicalな方法で、人間に近い創造ができるということになってしまうのだ。

Bronowskiは、さらに本文中で創造の在り方として「全人格を詰め込む活動」というのを挙げていました。そしてそのような創造は、演繹的な推論、つまり何が導かれるかが前提から決まってしまうような推論ではなく、現実から帰納的に、ある程度の主観的な判断が介在してなされる推論により成り立っているものです。それなのに、それと真逆な位置にいるAIが、創造をそれなりにシミュレートすることが出来ています。

とすると、personalityを持った存在である人間の行う創造と、AIの行う創造に原理的な違いはないのか気になってくる。それを明らかにするため、いくつか定義づけを行う。以前から述べてきたように人間の創造は「想像」によるとし、AIの創造は「予測」によるとする。そして「想像」は人間がpersonalかつinductiveに「unity」を見つけることとし、「予測」はAIがmechanicalかつdeductiveに「trend」を見つけることとする。その上で、想像と予測の違い、特に「人間の創造を人間らしいものたらしめている『想像』の、『予測』との違い」について考えていきたい。

問いを立てるのが難しいという話をよく聞きますが、やはりそうでした。AIと人間の創造の在り方を比べていると、上のような問いに行きつきました。

レポートの中間の部分は省略します。

私は想像が「言語」によって行われる営みである点に、それ(=上に述べた「違い」)を見出せると考える。本文では動物が身体に束縛された仕方でしか記憶を保持できないとされて、言語という記号を操れる人間と対比されていたが、この対比はAIに対しても拡張が出来る。AIの「予測」は言語に拠っているのではなく、数値に拠っている。もっといえば、少なくとも現状AIは数値を記憶するデバイスによってしか記憶を保持することが出来ない。

想像力と言語の話に戻ってきました。AIの創造は確かに人間の創造に近づいてきてはいますが、決定的に違うのはこの点なのではないでしょうか。AIは言語を有していません。人間は言語を有していて、それが想像力の基盤となっています。さらに想像力が創造の基盤となっているので、創造に原理的に違いが出てくるのではないかということです。

非言語的な想像もあるのではないか、という指摘がされるかもしれません。ここで指している言語はもう少し広いニュアンスで、記号全般と捉えてもいいと思います。例えば数学の問題を解くとき空間を想像しますが、その空間も記号として捉えることができそうです。そのため以下に出てくる言語という言葉は記号と置き換えてもらっても構いません。

人間の扱う言語の特徴として、2つ考えられる。1つは表現力の高さである。ウィトゲンシュタインが言うように、人間の言語はあらゆることを表現できる極大の表現力を持つとされる。本当に極大なのかは若干怪しいが、少なくともAIの扱う数値よりは表現力が高い。なぜなら、数値の場合「それが何を意味するか」を人間により規則として定められてしまうため、表現力がその規則の範囲内になってしまうからだ。言語は外から制限されるようなことが無い。文法規則などが考案されても、それは常に言語の運用に遅れて発明されるものであり、実際の言語使用では規則からはみ出ることもよくあるだろう。その「本質的な規則の無さ」がまさに「芸術は爆発だ」というような突拍子もない、想定外の閃きを(芸術のみならず科学においても)支えているのかもしれない。もう1つは、言語の記号性である。言葉はそれ自体が固定的な意味を持つわけではない。外部から情報を受け取る際、受け取り側においてそれをどの意味に当てはめるかについて選択の余地が残されている。そのため、解釈の仕方にpersonalityを介在させることが出来る。AIの場合、数値は与えられた規則の下で一定の意味から切り離すことが出来ない。シンプルな例だと、(255,0,0)という3次元ベクトルの値はRGBというルールが与えられていれば赤と解釈するしかできず、緑だ、青だなどと勝手に値を変えることはできない。人間もAIも同じように「過去の蓄積」が大事だとしても、ストックする際にデータが機械的に処理されるか、解釈を伴って記憶されるかに違いが出てくるのだ。これらの点が、人間の想像とAIの予測の本質的な違いであり、この違いによってこそ人間は全人格を投入して創造をすることが出来るのではないかと考える。

最近読んだ本、レポートに引用しがち。鬼界彰夫さんの『ウィトゲンシュタインはこう考えた』という本を読みました。面白かったです。

記号性についての議論は哲学Ⅱの授業で聞いた話に近いです。AIの扱っている数値は、AIにとっては記号にはなりえないのかもしれないですね。AIにとっては数値を特定の意味(≒文脈、規則)から切り離すことが出来ないので。

先ほど非言語的な場合も記号として捉えていいと書きましたが、今哲学Ⅱのレジュメを振り返ったらこれはまさにそう書いてありました。デリダは『声と現象』において「意識そのものに記号の不透明性が見いだせる」と言っています(表現はレジュメから引用)。ここでいう不透明性とは記号が本質的に持ちうる「一定の意味に留めておくことの不可能性」だと思います。この主張を導くには意識についての説明のステップが必要だと思いますが、簡略化して言えば、意識において重要なのが「自分自身に語り掛けること(自己触発)」であり、語り掛けるうえでその内容が記号性を伴うからということだと思います。

このデリダの言説を踏まえれば、上に書いた言語の特徴、言語的な想像の特徴は我々の意識そのものの特徴に当てはまると言えるでしょう。そして、そのような「不透明性」ゆえに我々は意識そのものに「自分らしさ」の自覚を介在させることができるのかもしれません。AIにはそのようなものを介在させる余地が無い(厳密に規則、コードが定まってしまっているため)から、オリジナリティが生まれないと言ってもいいのかもしれません。オリジナリティは創造のみならず我々が自分らしく在ることの源泉だと考えられるので、自分らしさの源泉として記号的な意識の不透明性を取り上げてもいいかもしれないですね。

以上の議論をまとめる。現代において考えれば、AIも「予測」により人間に近い創造が可能になってきている。今後更に創造力が上がり、人間の創造物と同じように、ある人の心を動かす作品を作るようになるかもしれない。だが、人間の創造のpersonalityの源は「想像」の「言語性」であり、それを有していないAIが人間の創造に近づくのには限界があるのではないだろうか。この点において、人間の創造の営みを機械の営みから区分けできるかもしれない。

こういうことを書きました。レポートでは創造に絞って書きましたが、上に書いたように、このようにして意識そのものについて機械から区別することができるかもしれないです。

創造に関して言えば、実際に人間の創造とAIの創造の成果物的な比較が出来たら面白そうですね。言語あり/なしでどう異なるかみたいなのを知りたい。

あと、これに関する話を先輩としたとき、次のような意見が出ました。

その意味で言語と同等の表現力のある数学的対象を作れないでしょうか

これは面白いと思います。ただ、今まで数学が追求してきたものと逆の方向にありそうですよね。

数学的対象は自然言語の曖昧性などを出来る限りそぎ落として、議論を厳密化するために導入されてきたと思います。

「曖昧さ」を取り入れたような概念、つまり不透明性を持つ概念を扱えるようになったら強そうですね。

謝辞

1学期間お世話になった英語中級のT先生、哲学ⅡのK先生、先進ⅡαのI先生に感謝します。

学業レポートを書きました

こんにちは。早いもので2021年ももうあと少しですね。
さて、今日はちょうど奨学金のレポートで学業を振り返るというものがあったので、
せっかくだしそのレポートをブログにしようかなと思います。

実際、レポートに皆さんとの交流もたくさん書いたので、皆さんと一緒に振り返りたいな(小並)と思ってます。 レポート実況みたいな感じで書いていこうと思います。

奨学会の方へ

いつも本当にお世話になっております。 提出されたレポートを調べたらほとんど同じ内容の記事があった、と思われるかもしれませんが、 そのレポートを提出したのは僕です。送信時間をご覧いただくと、こっちの公開のほうが遅いはずです。

ひたすら頑張ったSセメ

私の大学生活はAセメスター(秋学期)から始まった。というのもSセメスター(春学期)は受験の延長線のように過ごしていたからだ。Sセメスターはとにかく成績を重視して、些細な努力も怠らなかった。東大では進学選択があるので成績がとにかく大事であり、また自分が東大という集団の中で全力を出したらどのくらいの成績が取れるのかを確かめたかったというのもある。母集団が優秀なので正直東大受験よりも大変だった。受験は合格ラインに達すれば良いが、この場合は天井がなく、頑張れるなら頑張っただけ良い結果になるというシステムで辛かった。だが、この努力の結果、かなり良い成績を取ることが出来た。

Sセメ、マジで勉強以外何してたんだろう()

転機

だが、それで良いのだろうかと思うようになった。もう受験は終わっていて、成績や点数がすべてではないのである。東大には本当にすごい人がたくさんいる。試験のため・成績のための勉強ではなく、自分の興味や、将来必要となるだろうことを考えて、独学で勉強している人がたくさんいる。国際物理学オリンピックに出場した人などと話すと、その人がどれだけ私の知らないことを自分で勉強しているかがよくわかる。

ほんとTwitterやサークルを通じてたくさんのつよつよの方々に出会うことができ、それが価値観の変化につながりました。ありがとうございます。

確かに、Sセメスターの成績が高い人ということで少し有名になったらしく、それで各方面に強い人とやり取りをできる機会に恵まれたのは良かった。また、高い成績を取れたことで、Aセメスター・2年のSセメスターは成績をそこまで気にしなくても進学選択で行きたい所に行けるようになったというのは大きい。Aセメスターからは、高い成績によって得られたこれらのメリットを生かして、成績目当ての勉強をやめるようにした。成績を取るための勉強となると、本質的でない箇所を暗記したり、必要以上に課題に時間を費やしたりする必要があるのだが、それをやめた。

やめました。

思いのままに過ごしたAセメ

それにより空いた時間に、自分の興味で行う勉強として、理学部数学科に進学した学生が3年で履修する代数学の内容(群・環・体論とガロア理論)を学習した。今までの勉強よりずっと難しかった。もちろん内容が難しいというのもあるが、それよりも「そもそも何を学べばいいのか分からない」という、自分で学ぶならではの難しさがあった。授業だと先生が内容を大事さに応じて取捨選択してくださるが、自分で教科書を読んでいるとそのような「価値判断」が出来ないため、漫然と学んでいっても分かった気になれないということがよくあった(よくいう「お気持ちわからん」の状態である)。修行のような期間が長かったのだ。また、テストのような明確なゴールがないので、モチベーションを維持しづらい辛さもあった。それでも勉強を続けて、少しずつ勉強の成果が見えてきた。勉強をしていると感じてくる「世界の解像度が上がる感覚」が徐々に代数学においても持ててきている。例えば必修の授業の線形代数の内容について、より深いところで関連を考えたりすることが出来るようになってきており、楽しい(行列の相似は代数学でいう共役類を成しているのだな(厳密には行列全体は群を成していないので違いはあるが、実際線形写像の合成とみるとそれなりに近い)、行列の最小多項式の考えはイデアルという環論の概念が念頭にあるのだな、など)。また、代数学の内容についてさらに進んだ知識を得ている人が同学年にやはりいた(強すぎる)ので、その人と話題を共有できたのもとても刺激になった。

高校生活でもあまり自分で範囲外のことを積極的に勉強しようみたいに思ったことはあまりなく、それよりは授業で習ったことを丁寧に理解しようという立場でした。まあそれで良かった面もあると思います。それもそれで深めていく道がありましたし、1つ1つの物を丁寧に考える姿勢とか、そういう勉強の面白さとかはそれで知った面もあると思っています。

大学に入ってからはあまり授業の内容の細部に興味が持てなくなってたんですよね。なぜか。それでSセメは受験期みたいにひたすら問題演習するとか暗記するとかを重視していた気がします。Aセメからは力点をそこから自学に移した感じです。

ただ時間をフルで勉強に回せたわけではないんですよね…もっと時間を有意義に使えるようになりたい、これは大きな目標です()

選択授業を取る際も、成績の取りやすさを考えるのではなく、自分の興味で選ぶようにした。哲学に興味があり、文科生向けの哲学Ⅱの必修授業を聞いているほか、現代思想の授業を取っている。問題意識が日頃私が抱いている物に非常に近く、それに答えが与えられるまでではないが、それに対する他の人の考えたことを読み解くことが出来るのは楽しい。どうして人間の認識を超えたような世界まで人間の営為である自然科学が予測しうるのか、人間の思考を離れたような真理は存在するか、数学や哲学はそれに到達できているのか、などである。哲学というとカントの思想を緻密に読み解いていくなどが主流なのかと思っていた(それも面白そうだが)ので、少し意外だった。哲学は同時代の自然科学の影響を受けざるにはいられない、と先生はおっしゃっていたが、現に哲学の研究者もそのように考えているのだということに驚いた。先生方との議論・雑談もよくさせていただいており、非常に刺激的で楽しい。現代思想の授業では授業後にその先生と議論させていただき、人文科学系の方の考え方などを直接学ばせていただいている。線形代数演習では、ほぼ毎週授業後に数時間にわたって雑談や議論にお付き合いいただいており、本当にありがたい。話の内容も、数学に留まらずそれに関連した哲学の話などであり、分野の垣根なく物事を考える姿勢が身についてきている。

Aセメは本当に多くの先生にお世話になりました。英語中級も「artとscienceの違い」みたいな話をひたすら論じていて、これは哲学と数学という対比と重なるところが多いのでまたたくさん議論させていただけました。時にはあまりうまく質問がまとめられなかったり意見が言えなかったり議論についていけなかったりしたこともあったんですが、お時間を取っていただけて本当にうれしかったです。ありがとうございました。

あと、Aセメを通して議論する姿勢そのものも変わった気がします。最初は緊張しましたし僕なんかが…いいのか…?みたいな風に思って自信が持てませんでした。段々あまり気にならなくなってきました。慣れは大事ですね。

教養課程を楽しみたい

勉強していると数学と哲学にあまり区別がないことが実感されてくる。文理融合型・分野横断型の教育などと最近言われているが、むしろ文理や分野を分けるほうが本来難しいのかもしれない。ある問題に答えを求めようとする際、その問いを十分に理解するためには、思考を一分野に留めておく方が難しい。こう書くともっともに見えるが、受験期に各科目ごとに勉強していた頃にはこのような感覚は真に得ていなかっただろうし(だからこそ文理融合などの言葉が高校教育で注目されていたのだろう)、Sセメスターでも依然そうであった。この実感を持ち始めてきたことをもって、私は大学での勉強の始まりとしたいのである。

Aセメから僕の大学生活が始まったと書きましたが、本当にそう思っています。

実は、私は数学に進もうとも哲学に進もうとも思っていないのだが、それらを学ぶことで、どんなことを考えるときにも基礎となるような物を得られているという実感がある。それは先ほど書いた、世界の解像度が上がるような感覚である。これこそが教養学部での前期課程の意義であると考えるし、このような勉強によってこそ享受できていると考える。

某先生もおっしゃっていましたが、進振りというシステムが最も教養教育を不可能にしている諸悪の根源だと思います。本当に教養を身につけさせたいなら、点数化をして、それを競争させるようなのはダメだと思います。全科目初ゼミ理科みたいに合否しかつかない世界になってほしい。

言い訳

おそらくAセメスターでは成績は前より落ちるだろう。だがそれは手を抜いたからというわけではなく、このような事情だということをご理解いただきたい。

これは前の記事にも書いた通りです。 →実はそんなに落ちませんでした(-0.3になった)

まとめ

最後までお読みいただきありがとうございました。
みなさんのおかげで、充実したAセメスターを過ごすことが出来ました。本当にありがとうございました。

Aセメの成績は投稿しないことにしました【ご報告】

こんにちは。今日はご報告動画ならぬご報告記事です。
僕はSセメの成績をツイッターにあげたのですが、Aセメの成績に関してはツイートはしないようにします。

こう言うと、Aセメで成績があまり良くならないかもしれないから保険をかけているのではないかと言われるかもしれないのですが、
たしかにそれもあります()
AセメはSセメに比べて良い成績が取りやすい授業が少なく、またSセメほど頑張って成績を稼ぎに行っていないです。

ですが、それ以上にあるのが、 成績によるアイデンティティから脱したいという所です。
Sセメの成績をあげた後ffも増えましたし、「#いいねした人に一言」にファボするとだいたい成績の事を言われるようになりました。
それは確かに嬉しいことで、ありがたいことだと思うのですが、一方で「成績がいい人」という事で色々言われてしまっていいのかと思うようになりました。
実際「強い人」と言われると毎回ちょっと申し訳ない気持ちになります。僕はガチプロつよつよ国際なんとかオリンピック日本代表ではないので…
そのため、成績のための勉強よりも自分の好きな勉強をやって、それを通じて色んなつよつよ東大生と交流できるようになりたいと思うようになりました。

ただ、そうはいっても、「そうやって渡り合っていくうえでも成績レッテルに甘んじることはあるんでしょう」と言われるかもしれません。
確かにそうだと思います。実際、成績のおかげでそういった機会に恵まれやすくなっている事は起きていると思います。
これに関してはうーんどうしようか色々考えたんですが、どうすることもできないですし実際ありがたいことなので、ちょっとラッキーだったという事にさせてください()すみません。
今後は気を付けます。そのいただけた機会に見合う人になれるよう、勉強をしていきたいです。

ちょっと前に「成績が自己肯定感になっている」とツイートしましたね()これに関しても、実際そういう面はありますので、「本当に投稿しないでいられるの?」と言われても仕方がありません。

ですが、一生人生に成績がつくわけではないですし、つくのはやっぱいやです。いつかは変えないと大変なことになります。
頑張るしかないですね…()

というわけで、Aセメでは成績を投稿しないよう頑張ります(?)
ご報告動画は基本的にコメ欄だけ見て本編見ない派です。世の中のご報告動画が短くなって欲しいです。

存在しないものを生み出す力

こんにちは。

最近、先生の勧めもあり、ガロア理論の本を読んでいます。 抽象的な概念は扱っているとワクワクしてきますが、やはり理解するのが難しいですね。

読んでいて色々考えたことなどがあったので、書いてみようと思います。

存在しないものを取り込んでしまっても良いのか?

はじめに、虚数を学んだ時の気持ちを思い出してみたいと思います。

それまでは、x^{2}+1=0を満たすxは、存在しないとされていたと思います。

もし、i^{2}=-1を満たすようなiを導入したら、上の方程式を満たすxは存在することになります。

最初にiが導入されたとき、僕は割と違和感がありました。そんなことしちゃっていいのか?それができるんだったら、もっといろいろやばいこともできてしまうのではないか?という風に思いました(例えば、x^{2}-1=0を満たすxであっても、1,-1以外にも任意に定義できちゃったりしないだろうか、そうしたら恣意的にどんどん解を作りだせて危険にならないか、と思いました)。

このような違和感、ある意味では不安を感じた人はきっと僕以外にもいると思います。

そして、このような気持ちは、数の存在性に対する理解につながっているのではないかと今は思います。

多くの人は、実数は存在すると考えていると思います。そして、2乗して-1になるような数は存在しないと思っていたのだと思います。だから、存在しないものを取り込んで考えることに対する違和感や、それにより議論が空虚なものに陥る不安を感じるのではないかと考えます。

当初はこのような違和感を持っていましたが、そのまま勉強を進めていくにつれ、その感覚を置き去りにしてしまっていました。 ですが、最近ガロア理論に関する本を読んで、この違和感に対する答えを見つけることができました。

体論における、存在しないものを生み出す力

議論を追っていくと、体K上では既約な多項式(2次以上)に対して、その根\alphaKの外側では存在することを認めたうえ、体K(\alpha)を考えるという場面が多くありました。 iを知った時と同じ感覚になりました。Kはあると考えていますが、\alphaKには存在しないはずです。なのに、それを存在するものとして考えてしまっている。これは良いのでしょうか。

ArtinのGalois TheoryのII.C. Algebraic Elementsのセクションを参考に説明します。説明の仕方を変えた場所があります。

まず、Kを体とし、Kの拡大体をEとします。K上で代数的な\alpha\in Eをとります(\alphaK上代数的であるとは、K上の多項式\alphaを根にもつものが存在することをいいます)。

つまり、最初は\alphaKの外(E)に存在することを仮定して議論を進めるわけです。

\alphaを根に持つK上の多項式のうち、次数が最小のもので最高次の係数が1のものをf(x)とします。f(x)は一意に定まります。f(x),g(x)が条件を満たす2つの多項式として、f(x)\neq g(x)ならh(x)=f(x)-g(x)は次数がf,gより真に小さくh(\alpha)=0を満たすからです。また、実はf(x)K上既約であることも言えます。f(x)の次数をnとして、

f(x)=x^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0

とします。そして、次のような元からなる部分集合E_0\subset Eを考えます。

\displaystyle \theta=b_0+b_1\alpha+\cdots+b_{n-1}\alpha^{n-1}

ただし、b_0,b_1,\cdots,b_{n-1}\in Kとします。

これは、Kの元と\alphaの和・積で表される元全体を表しています。\alpha^{n}のような元はどうなるのか、と思われるかもしれませんが、f(\alpha)=0なことから、


\alpha^n=-a_{n-1}\alpha^{n-1}-\cdots-a_1\alpha-a_0\tag{*}

と表すことが出来るからです。 E_0上の演算をうまく考えれば、E_0Kの拡大体と考えられるようになるかもしれません。E_0K1,\alpha,\cdots,\alpha^{n-1}で生成されるベクトル空間と見ることができ、このような加法について閉じています。乗法については、積を取った後に(*)を用いて次数を直せば閉じた演算が定義できます。

E_0が体となることを厳密に考える前に、もう1つの体E_1を考えます。 E_1で特徴的なのは、\alphaの存在を仮定しないという点です。予め存在が分かっている、Kf(x)のみからE_1を作り出します。

E_1多項式からなる体です。具体的には、Kn-1次以下の多項式を元に持ちます。 加法としては通常の多項式の加法を考えます。乗法は、通常の多項式の乗法で得られた多項式f(x)で割った余りを考えます。 Kの元を定数項のみからなる多項式と見れば、K\subset E_1だと言えます。

E_1の元はすべて乗法において逆元を持ちます。この証明はやや込み入っているので、最後に書くことにします。
E_1は剰余体としてK(x)/(f(x))として表記できます。

他の体の公理も満たしていることが容易に確認できるので、E_1Kを内包する体です。

そして、E_1E_0と同型であることを示します。 E_1の元g(x)E_0の元g(\alpha)に移す写像\sigmaを考えます。\sigma全単射で、\sigma(g+h)=\sigma(g)+\sigma(h)\sigma(g\cdot h)=\sigma(g)\cdot\sigma(h)を容易に確認することが出来ます。実際、E_0上の乗法はf(\alpha)を用いて次数下げをしていますが、これは\alpha不定元とみた多項式において、f(\alpha)で割った余りを考えていることに他なりません(Artinの本ではE_0においても多項式の剰余を用いて乗法が定義されていましたが、そうするとE_0とは別にE_1を考える意義が分かりにくくなってしまうと思ったため変えました)。これらのことから、E_1E_0間の同型写像(上への同型写像)が存在することが確認できました。

同型であることが示せたので、E_0E_1と同一視できます。E_0は存在するかわからない\alphaというものを用いて構成していましたが、これと同型な体E_1を、存在するものだけから構成できたので、E_0のような体も安心して考えることが出来ます。このことによって、多項式の根というものを自由に考えることが出来るわけです。

このようなことから、次のような定理(拡大体の存在に関するKroneckerの定理)を導くことができます。

f(x)を体Kにおける1次以上の多項式としたとき、E\supset Kf(x)がその中で根をもつものが存在する。

この定理は味わい深いと思います。K上に根が存在しない時でも、それが存在するような拡大体を考えることが出来るからです。

iの違和感に答える

Kとして\mathbf{R}を考えましょう。そして、f(x)=x^{2}+1とします。

すると、先ほどの例ではE_0=\mathbf{C},E_1=\mathbf{R}(x)/(x^{2}+1)のように考えることが出来ます。先ほど示したようにこれらは同型となります。 実際、E_1iに対応するものはxです。通常の多項式の演算でx^{2}=(x^{2}+1)-1なので、E_1x^{2}=-1を確かに満たします。このようにしてiを構成できました。

余談ですが、E_0=\mathbf{C},E_1=\mathbf{R}(x)/(x^{2}+1)が同型であることは準同型定理から示せます。\phi:\mathbf{R}(x)\to\mathbf{C}として\phi(f(x))=f(i)とすれば、\mathrm{Ker}f=(x^{2}+1)なので、\mathbf{R}(x)/(x^{2}+1)\cong\mathbf{C}です。

まとめ

このような仕方で存在しないものを存在するものから構成できるのは面白いなと思います。 iがあまりimaginaryなものに思えなくなってきました。

存在するものとは何か、という問いには興味があります。他の哲学系の授業でも、よく認識論との関係としても話題になります。 数学的対象に関してはこのように剰余によってアプローチできるのは良いですが、他の分野にも応用出来たりするのでしょうかね。

また、こうなってくると\mathbf{R}多項式は存在するのか?と気になってきます。\mathbf{R}は某切断により集合から構成でき、多項式写像から構成できるそうです。集合や写像はプリミティブな物に思えますが、これらはどう根拠づけられたものなのでしょうか。気になるところです。

参考文献

E_1の逆元について

任意のg(x)\in E_1に対し、g(x)h(x)=1となるh(x)\in E_1が存在することを示す。 g(x)h(x)=1を、h(x)の係数に関する一次連立方程式A\bf{x}=\bf{b}とみる。対応する同次連立方程式A\bf{x}=\bf{0}を考える。 これは、g(x)h(x)=0をいっており、通常の多項式の積を考えればg(x)h(x)f(x)で割り切れるということである。 h(x)\neq0とする。g(x)h(x)=k(x)f(x)とおく。以下、h(x)はこのような関係を満たすもののうち次数が最小であるとする。 f(x)=q(x)h(x)+r(x)と書ける(q(x)は商、r(x)は余り)。f(x)は既約なので、r(x)\neq0r(x)=f(x)-q(x)h(x)であり、r(x)g(x)=f(x)h(x)-q(x)h(x)g(x)=f(x)h(x)-q(x)k(x)f(x)=f(x)\{h(x)-q(x)k(x)\}となる。\mathrm{deg} r \lt \mathrm{deg} hより、hの取り方に矛盾。 よって、h(x)=0である。A\bf{x}=\bf{0}は自明解しか持たない。よって、A\bf{x}=\bf{b}はただ1つ解を持ち、逆元が定まる。