Mastodon Mastodon

論理式をベクトルで書こう【ベクトル論理】

ベクトル論理(vector logic)について勉強したことを書く。

en.wikipedia.org

私の理解では、ベクトル論理は論理式をベクトルもしくは行列で表現するものである。 なにが嬉しいかと言うと、おそらく論理的作用素(否定子や論理的結合子)の挙動を細かく制御出来ることだと思う。 これについては、後に詳しく述べる。

導入

ベクトル論理は well-defined であり、真偽値を正規直交ベクトルとして表現する。 本記事では便宜上、ベクトル論理として表わされたベクトルを返す論理式をベクトル論理式と呼ぶ。 古典的な二値論理であれば、真偽値を次のように定義できる。


t = \begin{pmatrix}1 \\ 0 \end{pmatrix} (真), n = \begin{pmatrix}0 \\ 1 \end{pmatrix} (偽)

否定演算子(NOT)は次の行列  N に対応する。 当然  Nt = n, Nn = t 、また  N^2 = E である。


N = \begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix}

論理積(AND)は、次の変換  \text{AND}(p, q) に対応する。


\text{AND}(p, q) = \begin{pmatrix}1 & 0 & 0 & 0 \\ 0 & 1 & 1 & 1\end{pmatrix} (p \otimes q)

排他的論理和(XOR)は、次の変換  \text{XOR}(p, q) に対応する。


\text{XOR}(p, q) = \begin{pmatrix}0 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1\end{pmatrix} (p \otimes q)

 \text{AND}(p, q),  \text{XOR}(p, q) の導出については、後の節に付記する。

分配法則でベクトル論理を実感してみる

ところでブール代数は、和演算を排他的論理和(XOR)、積演算を論理積(AND)としたときに環をなすことが知られており、これをブール環(Boolean ring)という。

en.wikipedia.org

つまり、 R = \langle \{ T, F \}, \text{XOR}, \text{AND} \rangle は環である。 R が環であるならば、それをベクトル上で表現した次のタプルもまた環であることが安易に予想できる。


\langle \left\{ \begin{pmatrix}1 \\ 0 \end{pmatrix}, \begin{pmatrix}0 \\ 1 \end{pmatrix} \right\}, \text{XOR}(p, q) = \begin{pmatrix}0 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1\end{pmatrix} (p \otimes q), \text{AND}(p, q) = \begin{pmatrix}1 & 0 & 0 & 0 \\ 0 & 1 & 1 & 1\end{pmatrix} (p \otimes q)

これが環であるならば、分配法則  p \oplus (q \land r) \iff (p \oplus q) \land (p \oplus r) が成り立つはずである。分配法則は環の定義に含まれているからである。

このことを、ベクトル論理を用いて確かめてみようと思う。

なお、排他的論理和ではなく通常の論理和を用いた分配法則  p \land (q \lor r) \iff (p \land q) \lor (p \land r) が妥当なのは、 \langle \{ T, F \}, \text{OR}, \text{AND} \rangle が分配法則をその定義に含む半環だからである。

 (p, q, r) = (t, f, t) の場合

 (p, q, r) = (t, f, t) の場合、 p \oplus (q \land r) \iff t かつ  (p \oplus q) \land (p \oplus r) \iff t である。 したがって、どちらのベクトル論理式も  t となればよい。



\begin{aligned}

p \oplus (q \land r)

& = \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix} \{ p \otimes ( \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix}
q \otimes r
) \} \\

& = \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix} \{ \begin{pmatrix}
1 \\
0
\end{pmatrix} \otimes ( \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
0 \\
0 \\
1 \\
0
\end{pmatrix} ) \} \\

& = \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 1 & 1
\end{pmatrix} \{ \begin{pmatrix}
1 \\
0
\end{pmatrix} \otimes \begin{pmatrix}
1 \\
0
\end{pmatrix} \} \\

& = \begin{pmatrix}
1 & 1 & 0 & 0 \\
0 & 1 & 1 & 1
\end{pmatrix} \begin{pmatrix}
1 \\
0 \\
0 \\
0
\end{pmatrix} = \begin{pmatrix}
1 \\
0
\end{pmatrix}

\quad(= t)

\end{aligned}

\begin{aligned}

(p \oplus q) \land (p \oplus r)

& = \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix} \{ \(
\begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 1 & 1
\end{pmatrix} p \otimes q \) \otimes \( \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 1 & 1
\end{pmatrix} p \otimes r \) \} \\

& = \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix} \{ \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 1 & 1
\end{pmatrix} \begin{pmatrix}
0 \\
1 \\
0 \\
0
\end{pmatrix} \otimes \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 1 & 1
\end{pmatrix} \begin{pmatrix}
1 \\
0 \\
0 \\
0
\end{pmatrix} \} \\

& = \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix} \{ \begin{pmatrix}
0 \\
1
\end{pmatrix} \otimes \begin{pmatrix}
1 \\
0
\end{pmatrix} \} \\

& = \begin{pmatrix}
0 & 1 & 1 & 0 \\
1 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
0 \\
0 \\
1 \\
0
\end{pmatrix}

=
\begin{pmatrix}
1 \\
0
\end{pmatrix}
\end{aligned}

したがって、 (p, q, r) = (t, f, t) のとき  p \oplus (q \land r) \iff (p \oplus q) \land (p \oplus r) が成り立つことが分かった。 これは一般にも成り立ちそうである。

一般の場合

証明は省略するが(Mathpix で数式をスキャンするのに疲れた)、 P, Q, R \in \{0, 1 \} とすると


p \oplus (q \land r) = (p \oplus q) \land (p \oplus r) = \begin{pmatrix} P(Q+R-2QR) \\ 1 - P(Q+R-2QR) \end{pmatrix}

となり、一般に前述の分配法則が成立することが分かる。さらにこの  P(Q+R-2QR) という値は、通常の論理式の場合に対応している。 したがって、ベクトル論理はきちんと働く。

何がしたいか(減衰を組み入れたい)

パラドクスというものはたくさん存在している。砂山の逆説、フレーム問題や Bradley' regress、Grice の高階意図の無限背進性、などなど。 それらの逆説性は、実に古典論理の性質に起因すると言って差し支えない。古典論理は曖昧性を扱えないのだ。 曖昧性に対処するために、ファジィ論理といったものが開発されてきたという歴史もあるのだが、今回はもっと現在のニューラルネットワークに近い数学を用いて、これらのパラドクスの解決を考えてみよう。

以下のような論理式があると考える。命題  P に否定子が  n (n = 2k, k \in \mathbb{N}) 個付いたものだ。


\lnot \lnot \lnot \dots \lnot P

仮に  P の附値が真だとしよう。果たして、この論理式の「真」性は元の  P の真性と同じなのだろうか。

私にはそうは思われない。なぜならば、論理演算子の適用はコストを伴うからである。元の真理値の完全な「真」性は保存されえない。

ここで、新しい否定行列  N^\prime を導入しよう。  N^\primeは、否定行列  N に 0.9 というスカラーをかけたものである。


N^\prime = 0.9 N = \begin{pmatrix} 0 & 0.9 \\ 0.9 & 0 \end{pmatrix}

これを先の論理式に適用してみよう。すると


(0.9)^n \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \end{pmatrix}
= \begin{pmatrix} (0.9)^n \\ 0 \end{pmatrix}

となり、「真」性が減衰することが分かる。( n = 50 とすると「真」性は 0.005 程度にまでなる。)

このようにベクトル論理は二値的な古典論理を行列に埋め込むことによって、フレームの開発などといったコストを払うことなく、論理式の表現力を高めることが出来るのだ。 先ほど述べた砂山の逆説やフレーム問題、Bradley' regress、Grice の高階意図の無限背進性も、ベクトル論理を用いることで解決することが出来るのかもしれないと私は期待している。

以上! ベクトル論理の紹介でした。

 \text{AND}(p, q),  \text{XOR}(p, q) の導出

ここでは  \text{XOR}(p, q) の導出についてのみ述べる。 排他的論理和を表現する行列を  X とおくと、変換  \text{XOR}(p, q) は次のように表せる。


\text{XOR}(p, q) = X (p \otimes q)

ここで例えば  p = t, q = t とおくと  \text{XOR}(t, t) = n であり


\begin{eqnarray}
\begin{pmatrix}0 \\ 1 \end{pmatrix}  = X (s \otimes s )= X (\begin{pmatrix}1 \\ 0 \end{pmatrix} \otimes \begin{pmatrix} 1 \\ 0 \end{pmatrix} ) = X (\begin{pmatrix}1 \\ 0 \\ 0 \\ 0 \end{pmatrix} )
\end{eqnarray}

他の場合は


s \otimes n =  \begin{pmatrix} 0 \\ 1 \\ 0 \\ 0 \end{pmatrix}, n \otimes s =  \begin{pmatrix} 0 \\ 0 \\ 1 \\ 0 \end{pmatrix}, n \otimes n =  \begin{pmatrix} 0 \\ 0 \\ 0 \\ 1 \end{pmatrix}

である。 X について


X \begin{pmatrix} s \otimes s, s \otimes n, n \otimes s, n \otimes n \end{pmatrix} = \begin{pmatrix} n, t, t, n \end{pmatrix}

となるから


X E_{4} = \begin{pmatrix} 0 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}

したがって


X = \begin{pmatrix} 0 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}

木曜不足『ChatGPTのしくみと哲学』を読んで思ったこと

「図解即戦力」シリーズで ChatGPT の教科書を書かれた著者が、本ではお蔵入りとなった「ChatGPT と哲学」と題された章をブログに立項されていた。

shuyo.hatenablog.com

以下、この項目に対して私が思ったことを書く。

サールの中国語の部屋

この批判への代表的な反論の1つが、AI にはもともと「自己」がないから意識もなく、したがって「中国語の部屋」が意識の有無を判定する必要はないというものです。「自己」とは、世界と自分を区別するもので、そのためには「ここからここまでが自分である」と明示する「身体」がなければならず、AI がそれを持たないことは自明であるという主張です。要するに、「AIには身体がないから知能ではない」ということです。

サールの中国語の部屋は、機械には統語論はあるが意味論がないということが主な眼目であって、自己や身体性の問題は中国語の部屋という問題に含まれていないように思える。

サールの中国語の部屋に対する大規模言語モデル陣営の応答は、たとえば以下の論文1にある。

philpapers.org

Gubelmann によれば、サールの中国語の部屋という思考実験は、彼自身の生物学的自然主義と、統語論/意味論の区別が主眼である。 生物学的自然主義については、後期 Wittgenstein の行動主義的な主張2をその応答として当てている。 言語理解をするシステムの多重実現可能性と言い換えてもよいだろう。

また、機械には統語論はあるが意味論がないというサールの主張については、GOFAI (Good Old Fashioned AI)という記号主義的システムはともかく、大規模言語モデルのようなニューラルネットワークを構成要素とする結合主義システムには、統語論と意味論の区別は存在しない3、したがってその批判は当たらないのだ、とする応答を行っている。 これは尤もかつ核心的な応答だと思う。

そのようなわけで、中国語の部屋の思考実験と自己や身体性の問題はあまり関係がないと私は思う。

意味の使用説と知能?

「意味の使用説」は、意味はその言葉がどのように使用されるかによって定まるという主張です。その主張の解釈はさまざまあるのですが、文字通りに「言葉を使うことで意味が定まる」と解釈するのが一般的です。そして、ChatGPT は言葉を使えている、つまり意味を定め、扱うことが出来ているわけです。この観点においては、大規模言語モデルは「知能」たりえる、と主張することが出来ます。

これはよく分からない。 というのも、知能と言語使用の間の関係がよく分からないからである。 知能があれば言語使用ができるのか? 言語が使用できれば知能があるのか? ここらへんも非常に曖昧模糊としていて、哲学的論証と言えるに耐えるものではないだろう。 (ちなみに、私は知能と言語使用の関係を知らない)

また、「「言葉を使うことで意味が定まる」と解釈するのが"""一般的"""」と言ってしまうのは不味いと思う。 というのは、一般的に Wittgenstein は quiest (沈黙主義者)だからね。 まぁそこらへんは、徳の問題として指摘させて頂きたい。

en.wikipedia.org

(以下は、「後期 Wittgenstein は ChatGPT が有意味な言語を発話している、とは言わなさそう」と診断する山田圭一先生の発表に対する反論記事。)

yudukikun5120.hatenadiary.jp

以上! 出版物に載せなかったのは賢明な判断だと思いました。


  1. Gubelmann, Reto (2023). A Loosely Wittgensteinian Conception of the Linguistic Understanding of Large Language Models like BERT, GPT-3, and ChatGPT. Grazer Philosophische Studien 99 (4):485-523.
  2. あくまで行動主義「的」であることは、業界では常識だろう。
  3. この点は、記号論にもいくらか影響を与えそうである。統語論・意味論・語用論という区別は、Charles Morrisという記号論者によって与えられたのだから。

論文メモ: Large Language Models, Agency, and Why Speech Acts are Beyond Them (For Now) – A Kantian-Cum-Pragmatist Case (2024)

Gubelmann, R. Large Language Models, Agency, and Why Speech Acts are Beyond Them (For Now) – A Kantian-Cum-Pragmatist Case. Philos. Technol. 37, 32 (2024). https://doi.org/10.1007/s13347-024-00696-1

doi.org


優れた論文だった。

論旨としては、認知的自律性/道徳的自律性/物質的自律性に分けられる Kant の自律性概念について、従来のカント主義者は認知的自律性が物質的自律性に付随すると考えてきたものの、現在のTransformerベースの深層学習モデルは自動的な特徴抽出という特性によって認知的自律性を獲得しており、先の図式が崩されることになるというものである。

後期 Wittgenstein の言語ゲームから影響を受けた Austin や Searle は、発話行為としての発話の有意味性を考える(発話行為論)1言語ゲーム概念は言語を生活のなかに埋め込むものであり、発話行為論もまた行為のなかに言語を埋め込むものと約言できる。 行為の哲学における主流な見解によれば、行為には意図が必要とされている。したがって、意図を持たない言語モデル2発話行為を行うことができない。

しかしなぜ、言語モデルは意図を持たないと考えられるのか。 それは、言語モデル有機体/無機体(organism/mechanism)というカント的区分における無機体だからである。 無機体は、外部の主体から行為を与えられるいわば関数のようなものであるのに対して、有機体は自身で自身を駆動する(オートポイエーシス)。 言語モデルは、時計のように人間によって記号の意味が与えられるものなのであり、それに自律性はないのである。

しかしながら、そうではない。 なぜならば、深層学習モデルは機械学習モデルとは異なり、自身で特徴を抽出するからである。 さらに Transformer ベースのモデルは、文法や文の階層構造を自身で抽出し、獲得する。 データを認識し解釈する術は、確率的勾配法によって自動的に獲得されているのだ。

したがって言語モデルは物質的無機体であるにも拘わらず、認知的自律性を保持していると言えるのである。

以上が本論文のざっとした要旨である。


本論の論理上の瑕疵といえば、著者が自身で認めているように、言語を主体の意図のみを引数とする関数(アルキメデス的言語)と見なしている点であろう。

Archimedean language unaffected by any specifically (and to some extent arbitrarily) formed linguistic structure of a natural language and then decides to express these thoughts in a given natural language.

これに反して、Heideggerの〈die Sprache spricht(言葉は言葉が語る)〉や Žižek 、Jakobson といった大陸哲学者や構造主義者らは言語的主体の他律性を主張しており、私もこれに同意する。 特に、Heideggerの〈die Sprache spricht(言葉は言葉が語る)〉というテーゼは、言語モデルの本質をそのまま表していると考えられる。 言語モデルが生成する言語は、訓練データとして投入された言語の模倣であるからだ。 言語モデルは訓練データに言語的主体性を奪われているのであり、まさに与えられる言語によって語らせられている。

ここのあたりの、非分析哲学的伝統にある言語論による言語モデルの考察も興味深いところである。 ポスト解釈学あたりは、かなりコミットできそうな気がする。 (この点で述べると、Wittgenstein は世界と内部モデルを取り違えたことが、自身の理論の足枷となっている感がある。)

本論文は、総じて優れた哲学論文であると言える。


  1. 発話行為論は後期 Wittgenstein の言語ゲーム概念から影響を受けたと言われるが、これはつまり発話行為論を介した言語ゲーム概念が Austin-Searle の Wittgenstein 解釈に基づいているということに他ならない。
  2. 「大規模言語モデル」ではなく「言語モデル」と言うべきなのは、「小規模言語モデル(Small Language Model)」もまたこの議論に適うからである。小規模言語モデルは大規模言語モデルの性能をより少ない計算量で実現しようとするものであり、本論では大規模言語モデルと小規模言語モデルの間に差異は存在しない。

【一味違う】余弦類似度と相関係数のグラフ上の関係

余弦類似度  \cos(x, y) は、Pearson の相関係数  r(x, y) \mathbb{E} [ x ] = \mathbb{E} [ y ] = 0 である特別な場合であることは有名だが、それらの表現であるグラフはそれぞれ非常に異なっているように見える。 おそらく我々が見てきた相関係数のグラフは次のようなものだろう。

引用: https://images.app.goo.gl/HVinRixD76cFc22S9

相関係数のグラフにおいて、基底が2つあることは相関係数の引数が2つの離散確率分布であることを、データ点数は点の数を表している。

また、よく見る余弦類似度のグラフは次のようなものである。

引用:https://images.app.goo.gl/ugAeF8M6Q8XwbFVR6

このグラフにおける各々のベクトル(点)の数と軸(基底)の数の意味は、先程の相関係数のグラフのものとは異なる。 余弦類似度のグラフにおけるベクトルの数は、相関係数のグラフにおける確率分布の数(2つ)に対応している。 余弦類似度の引数は2つのベクトルだからだ。 一方グラフの軸の数は、相関係数におけるデータ点数の個数に対応している。

このように軸の数とデータ点数の数が互いに逆の意味をもつ相関係数余弦類似度の各々のグラフの関係は、次のようにして理解できる。

まず、 n 次元ベクトルで表現されるデータが 2 つ( \boldsymbol{x}, \boldsymbol{y})あるとする。 行列はベクトルの列であるのだから、この2つのベクトルは  n \times 2 型行列として書ける。 つまり

 \displaystyle X = [\boldsymbol{x}, \boldsymbol{y} ]

余弦類似度のグラフは、この行列  X を単に2つの縦ベクトルとして見なしてグラフ表現したものと言える。 反対に相関係数のグラフは、  X を転置した  X^t を、2次元縦ベクトルを  n 個並べたものとして表現したものと言える。

このように相関係数余弦類似度の関係には、その表現であるグラフにおいて、行列の転置を介した関係があると言える。 これは【一味違う】というタイトルに適った主張ではないだろうか。