投稿

commutative monoidal preorder

【 少し困ったこと 】 ここでは、カテゴリーVがenrichするカテゴリーである条件を述べたいと思います。 ただ、少し困ったことがあります。enriched category理論の論文を読むと、その条件は、Vがsymmetric monoidal preorder であることと述べられているのですが、Tai-Danaeらの論文では、Vがcommutative monoidal preorder であるとして議論が展開されています。  symmetric:       𝑦⊗𝑥 ≤ 𝑥⊗𝑦  commutative:   𝑦⊗𝑥 = 𝑥⊗𝑦 の違いだと思います。 その意味では、 symmetric monoidal preorder と commutative monoidal preorder の概念は異なるものです。 symmetric monoidal preorder の方が広い概念です。 ただ、順序がpreorderではなく poset だとすると、 𝑦⊗𝑥 ≤ 𝑥⊗𝑦 かつ 𝑦⊗𝑥 ≤ 𝑥⊗𝑦 から 𝑦⊗𝑥 = 𝑥⊗𝑦 が導かれるので、両者の概念は一致します。 Tai-Danaeらの論文が扱っている言語の文字列表現の順序関係は、もちろん preorderでもありますが、posetです。 ですので、あの論文で、enrich化するカテゴリーとしてcommutative monoidal preorder で議論を進めているのは間違っている訳ではありません。 基本的に、論文の記述に沿って解説を行いたいと思います。 【 commutative monoidal preorder の定義 】 まず、commutative monoidal preorder の定義を見ていきたいと思います。 こんな形です。 commutative monoidal preorder (𝑉,≤,⊗,1) は、preorder (𝑉,≤) 上の、次の条件を満たす commutative monoid (𝑉,⊗,1) である。  𝑥 ≤ 𝑥′  かつ 𝑦 ≤ 𝑦′ ならば、𝑥⊗𝑦 ≤ 𝑥′⊗𝑦′ この条件は、順序だけからなるpreorder (𝑉,≤) の世界を、二項演算だけからなるmonoid (𝑉,⊗,1)の世界を結びつ

enrich以前のカテゴリーと enrich化されたカテゴリーを比較する

【 enrichするカテゴリーの働きを考える 】 今回のセッションでは、enrich化される以前のカテゴリーとenrich化するカテゴリーと enrich化されたカテゴリーの三つのカテゴリーが登場します。 紛らわしいので、次のような名前をつけておこうと思います。  ・C : enrich化される以前のカテゴリー   ・V:enrichするカテゴリー  ・E:enrich化されたカテゴリー 今回は、enrich化される以前のC と enrich化されたE を比較します。その目的は enrich化するVの働きを考える事です。 C と Eとの比較で、最初に確認できるのは、この二つのカテゴリーは同じオブジェクトを持つ事です。もともとは、文字列の表現をオブジェクトとする言語のカテゴリーに確率を導入しようとしているenrich化を考えていたわけで、enrich化されたカテゴリーのオブジェクトも、文字列の表現になるのは、当然です。 カテゴリーの射についてはどうでしょう? ここはCとEでは大きく変わっています。enrich化されたE の射は、元のCの射とは、全く異なるものです。前回は、以前の射にラベルをつけただけのような説明をしていたのですが、本当は違います。 ここに、enrich化するVが登場します。Eの射はVの要素になります。言語のカテゴリーに確率を導入しようとした話に戻れば、確率を表す単位区間[0,1]がVで、Eの射は、この単位区間に値をとることになります。単位区間[0,1]自身が、カテゴリーVとして、ある構造を持っているのです。 enrich化するという事は、CとEでは、射が別のものとして定義されるという事です。 大事なことは、射の定義が置き換わったとしても、CとEは両方ともカテゴリーだということです。そのことは、カテゴリーである元のCの射が持っていた基本的な性質、同一射の存在とか射の合成の結合性、といった性質は、enrich化されたEの射も、Eがカテゴリーである以上、同様に満たさなければならないということです。 問題は、Eの射は、enrich化するVによって定義されたものです。Vは自分の言葉で、同一射の存在とか射の合成の結合性に相当するものを定義し、その働きを再現できなければなりません。 -------------------------------- ショートムービー「

enriched category とは何か ?

【 簡単な例からenriched categoryのイメージを持つ 】 ここでは、enriched categoryのイメージを持ってもらうことから始めたいと思います。 最初に確認したい事は、あるカテゴリーをenrich化するということは、そのカテゴリーのオブジェクトを拡大することではなく、その射を拡大することだという事です。 【 射の集まり hom−set 】 カテゴリーCのオブジェクトXとオブジェクトYの間の射 𝑋→𝑌は、一般には、複数存在します。こうした射の集まりをhom(X,Y)と表し、hom-set と呼びます。 hom(X,Y)は、一般には複数の射を要素とする集合になります。 preorder categoryのように、オブジェクト間にたかだか一つの射しか存在しない場合、それは一つの要素からなる集合になります。 【ベクトル空間の例 】 hom-setは、単なる集合以上の構造を持つことがあります。 ベクトル空間をオブジェクトとし、ベクトル空間の線形写像を射とするカテゴリーVectを考えます。 f,gがベクトル空間Xからベクトル空間Yへの線型写像とすれば、 f+gもベクトル空間Xからベクトル空間Yへの線型写像となり、 kがスカラーなら、kf もベクトル空間Xからベクトル空間Yへの線型写像となります。  𝑓,𝑔 ∈ hom⁡(𝑋,𝑌)なら 𝑓+𝑔 ∈ hom⁡(𝑋,𝑌)で 𝑘𝑓 ∈ hom⁡(𝑋,𝑌) このことは、hom(X,Y)自身がベクトル空間であることを意味します。 【 カテゴリーCのhom-setが カテゴリーVである場合を考える 】 カテゴリーCのhom-setがカテゴリーVである時、CはVによってenrich化されたカテゴリーであると言います。 先に見た例だと、ベクトル空間のカテゴリーVectは、Vect自身によってenrich化されたカテゴリーだということになります。 一般的なCategoryは、hom-setの構造についてそれがSetである以外特に条件を設けていないのですが、CategoryはSetによってenrich化されたカテゴリーだと考えることが出来ます。 (もっとも、すべてのhom(X,Y)が集合となるとは限りません。こうした条件を満たすカテゴリーを”locally small”と言います。) 【 言語のカテ

言語のカテゴリーに確率を導入する

【 第一部のふりかえりと第二部の課題 】 これまでみてきた言語のcategory L では、二つの表現SとTがある時、SがTの部分文字列である時、S → T という射が存在します。 例えば、次のような射が category L には存在します。   red → red firetruck   red → red idea S → T という射を、単なる部分文字列の関係としてではなく、表現Tが表現Sの「継続」であると考えて、その「継続」が出現する確率を次の様に表すとします。   L( red, red firetruck ) = 0.12   L( red, red idea ) = 0.003 この例は仮のものですが、ここでのポイントは、射 red → red firetruck に割り当てられた 0.12という数字が、射 red → red ideaに割り当てられた 0.003という数字より大きいということです。 このことが、「普通の言語使用の局面では、red → red firetruck の方が、red → red idea よりたくさん出現するような気がする」ということを表現していると考えましょう。 もう少しきちんと定義すれば、これらの数字は、   表現Sが現れた時、表現Sの「継続」として表現Tが現れる 条件付き確率 π(T|S) だと考えることができます。 【 大規模言語モデルでの Next Sentence Prediction 導入の意味 】 僕は、翻訳モデルから大規模言語モデルへの飛躍をもたらした最大のものは、文と文の「継続」あるいは「連続」を学習することを可能とする能力の獲得にあったと考えています。 もっともプリミティブなものは、おそらくBERTのpretrainingで導入されたNext Sentence Prediction のフラグだったと思います BERTの例でいえば、category L で次のような射が、ある確率を割り当てられて存在することを意味しています。  the man went to convenience store → the man went to convenience store he bought a gallon of milk ただ、次のような射は存在しません。あるいは、割り当てられる確率はゼロです。  the

「ChatGPTとOpenAIは どう変わろうとしているのか?」の講演ビデオと講演資料を公開しました

【 11月のセミナー「ChatGPTとOpenAIは どう変わろうとしているのか?」の講演ビデオと講演資料の公開です 】 #AIの未来 11月のマルレクはお休みしたのですが、11-12月に、東京を含めていろいろ講演を行いました。今回の情報公開は、それらの講演を「ChatGPTとOpenAIは どう変わろうとしているのか?」というタイトルでまとめたものです。 「ChatGPTとOpenAIは どう変わろうとしているのか?」 https://www.marulabo.net/docs/chatgpt-openai/ いろいろなところで講演はしたのですが、東京で「WiFi難民」になったり、ネット環境がいつもと違って講演はしたものの話しっぱなしで、手元に動画ファイルが残らず困っていました。 ただ、GMOさんで12月に行った社内研究会の動画ファイルの公開を快諾していただきました。助かりました。ありがとうございます。動画は、その時のものです。 【 全体の構成 】 次の四つのパートから構成されています。  ● この一年の間にAIの世界で起きたこと  ● OpenAI について -- 2023年11月の内紛をどう捉えるか  ● 現在の人工知能技術の技術的な焦点 -- AIのマルチモーダル化とカスタム化  ● 近未来のAIの展望 以下、各パートの概略です。 【 この一年の間にAIの世界で起きたこと 】 この一年、AIの世界の起きたことをふりかえってみました。  2022年11月30日 ChatGPT発表  2023年03月14日 GPT-4 リリース  2023年05月01日 ヒントン、Googleを辞める  2023年05月23日 AIのリスクへの警告。OpenAI "GPT-4 System Card" 発表  2023年09月25日 マルチモーダルAIへ。ChatGPT can now see, hear and speak !  2023年10月23日 全人類のAIという理念。Creating safe AGI that benefits for all of humanity.  2023年11月06日 AIがアプリになる。Assistant API 発表  2023年11月17日 Altman 解任  2023年11月21日 Altman 復帰 この一

“red and blue” の意味を考える

【 AND と OR、product と coproduct は dual である 】 前回、"red or blue" という論理的な表現を、copresheaf を意味のカテゴリーとする意味論で扱うことができることを見てきました。 今回は、"red and blue" という論理的な表現も、copresheaf を意味のカテゴリーとする意味論で扱うことができることを見ていきます。 前回の説明とパラレルに議論は進みます。 前回、"red or blue"という意味をfunctor L(red, ~ )とfunctor L(blue, ~ ) のcoproduct で表したように、今回は、 "red and blue"という意味をfunctor L(red, ~ )とfunctor L(blue, ~ ) のproduct で表すことができるということです。 product と coproduct の定義の説明は、今回は立ち入らないということにしていたのですが、ほとんど同じような議論の展開なので、少しだけですが、product と coproduct は、"dual" な概念であると言う説明を追加しました。それは、論理でも、AND と OR は、"dual" であることを反映しています。 もっとも、今回のセッションで見ていることは、product と coproduct の定義がよく似ていて、ただし、射の矢印の向きが、すべて逆になっていると言うことだけです。 後日、きちんと説明しますが、興味がある人はスライドの "Universal property" の説明を読んでいただくと、嬉しいです。 -------------------------------- ショートムービー「 “red and blue” の意味を考える 」を公開しました。 https://youtu.be/I-quXjcEizQ?list=PLQIrJ0f9gMcPmrJ3B0LEXJ_SHPP-ak_hw 「 “red and blue” の意味を考える 」のpdf資料 https://drive.google.com/file/d/10oGc4g87g

“red or blue” の意味を考える

【 “red or blue” の意味を考える 】 このセッションでは、これまで見てきたフレーム上で、言語の論理的な構造を表す、"A or B", "A and B" ... といった表現の意味を扱うことができることを見ていきたいと思います。今回扱うのは、"red or blue" という表現の意味です。  【 集合の和”A∪B”と論理の”A or B” 】 一対の集合A, Bがあるとします。例えば、  集合A:赤い色を持つすべてのものの集合     (赤い口紅、フランス国旗、一時停止標識など)。 集合B:  青い色を持つすべてのものの集合     (コマドリの卵、フランス国旗、ブルーベリーなど)。 赤か青のどちらかを持つすべてのものの集合は何か? それは別の集合、それらの和 A∪B です。集合 A∪B は、”red or blue”という概念に対応する集合です。  【 集合の和に対応するfunctor -- coproduct 】 集合の和を取ることができるように、functorに対しても同様の操作を行うことができます。 それを「集合の和」と呼ぶ代わりに、”coproduct” という別の名前をつけ、’⊔’ という記号で表します。 ”red"と ”blue"を表す2つのfunctorのcoproductは、それらの論理和、つまり ”red or blue"という概念を表すもう1つのfunctorです。 coproductというのは、productの名前が入っていますが、基本的には、和、ユニオン、直和、 ..といった概念の抽象化で、categorical sum と呼ばれることもあります。 coproductの定義を、挙げておきましたが、今回は詳しく説明していません。それについては、後日、limit, colimit といった概念の紹介を予定していますので、その時に触れたいと思います。 【 基本的なアイデア 】 functor L(red, − )は、意味 “red”を表し、 functor L(blue, − )は、意味 “blue”を表します。 そこで、”red or blue” の意味を表すfunctor は、 functor L(red, − ) と functo