投稿

2024の投稿を表示しています

1月の マルレク「大規模言語モデルの数学的構造 II 」の講演ビデオと講演資料、公開しました

   【 1月の マルレク「大規模言語モデルの数学的構造 II 」の講演ビデオと講演資料、公開しました 】 #大規模言語モデルの数学的構造2 1月27日に開催した、マルレク「大規模言語モデルの数学的構造 II 」の講演ビデオと講演資料、公開しました。ご利用ください。 このセミナーは、12月30日に開催した、マルレク「大規模言語モデルの数学的構造 I 」 https://www.marulabo.net/docs/llm-math/  の後編です。この前編・後編二つのセミナーで主要に紹介するのは、大規模言語モデルの不思議な振る舞いを数学的に説明することを目指した、Tai-Danae Bradleyたちの次の論文です。   "An enriched category theory of language: from syntax to semantics"    https://arxiv.org/abs/2106.07890 前編については、今回の「Part 1 第一部のふりかえり」で概要をまとめてあります。 今回公開した後編は、前編で紹介した copresheaf 意味論というカテゴリー論的アプローチを、単位区間 [0,1] をmenrich化して拡大し、言語表現の「継続」に確率を導入し、大規模言語モデルの数学的モデルとして提案するという、前掲の論文の中心部分です。 このセミナーで利用されているカテゴリー論の基礎については、Tai−Danae Bradley らがMIT Pressから出版した"Topology A Categorical Approach" の"0 Preliminaries"  のパートが、とてもいいまとめになっています。オンライン版は、無料で読めます。一読をお勧めします。 https://topology.mitpress.mit.edu/ 以下、今回公開した後編のパートごとに、内容を紹介します。 【 「Part 1 第一部のふりかえり」の概要 】 言語を構成する意味を持つ文字列である、語・フレーズ・文・文の連続 ... を「表現」とします。任意の表現 𝑆, 𝑇 について、表現Sの文字列が表現Tの部分文字列であるとき、𝑆 ≤ 𝑇と順序を定義します。この順序は、反射律と推移律を満

数学的展望

【 AI技術の数学的基礎の革新を目指して 】 ------------------------------ 2/29マルレク「言語の意味の数学テク構造」申し込みページ作成しました。次のページから、受け付けています。 https://meaning-structure.peatix.com/ お申し込み、お待ちしています。 ------------------------------ 【 この論文が明らかにしたこと 】 今回のセッションでは、論文の最後のセクション、"Conclusion: Looking Forward" を紹介します。 前回までのいくつかのセッションは、彼女の言語思想にフォーカスしたもので、数学はあまり表面にでてきませんでしたが、今回は、数学が戻ってきます。 まず、この論文の結論として、概略、次のように語ります。  ⚫️ 純粋にsyntacticalな入力から言語の構造的特徴を抽出できる。  ⚫️ 実際のデータから実数の行列を作り、線形代数的な方法(SVD)で語の埋め込みを理解できる。  ⚫️ 上で得た実行列にカットオフを適用して{0,1}値の行列を作成して、Formal Concept Analysis の手法を利用できる。  ⚫️ これらの手法のそれぞれはいずれも既知のものであるが、両者の間にパラレルな関係があることを示した。 すこし謙遜していますが立派なものだと思います。 ちなみに、embedding とSVDの関係を始めて明らかにしたのは、2014年の次の論文だと思います。 Omer Levy and Yoav Goldberg, Neural word embedding as implicit matrix factorization  https://cseweb.ucsd.edu/~dasgupta/254-deep-ul/ronald.pdf 【 課題と展望 】 こうした到達点を踏まえて、今後の数学的展望を示したのが、このセクションです。 「重要なのは、enriched カテゴリー論の枠組みが、統語論から意味論がどのように生まれるかについての理解を深めることである。」その上で、 「意味論の構造を研究するために、線形代数にヒントを得た新しいツールを提供できる可能性がある。」と語ります。 前者の指摘については、前回

語の構造の抽出

【 これは、本当に意味だろうか? 】 前回のセッションでは、文字の並びのデータから、その背後にある構造を引き出すことができるという話をしました。ただ、文字の集積としてのコーパスから、文字のクラスターを抽出できることは、そんなに驚くべきことではないかもしれません。 それに、見出された子音、母音、および数字等というクラスターそれ自体に、意味があるわけではありません。もっとも、syntacticなものとsemanticなものという対比では、syntacticalなものは、もともと意味を持たないものと想定されています。 Tai−Danaeが、論文で「形式から内容へ」と言うとき、「形式」というのはもともと経験的に与えられる文字列データのことを指していて、「内容」とは、そこから生まれる意味のことをイメージしています。 基本的な問題は、それ自体は意味を持たないように思えるものから、意味の世界が生まれることです。別の言葉で言えば、それ自体は意味を持たない単なる記号の列から、どのように意味が生まれるのかという問題です。 今回は、単なる記号としての文字の並びではなく、語の並びを考えます。重要なことは、文字について言えることは、より高いレベルの言語単位 −− 今回の場合は、語なのですが  −− についても言えるということを、彼女は主張しています。 具体的には、次のようなことをしています。 British National Corpus から、1,000語の最頻単語として選びます。前回と同じように、このコーパスに含まれる単語𝑥の左に現れる語を𝑦_𝑙、右に現れる語を 𝑦_𝑟 として、その語の出現の経験的確率を使って、𝑋𝑌行列𝑀を作り、前回と同じ計算を繰り返します。 驚くべきことに、文字列データの解析が子音・母音・数字のクラスターの存在を発見したように、語列データの解析は、名詞・動詞・形容詞・副詞といったクラスターを発見します。 彼女は言います。 「10個の最大の特異値に対応する 𝑀の特異ベクトルは、名詞、動詞(過去と現在)、形容詞、副詞、場所、量詞、数字、国など、単語のあらゆる構文的・意味的特徴を捉えている。」 これは、意味なのでしょうか? 【 embedding は、空間の一点を表す 】 話は飛ぶのですが、現代のニューラル言語理論では、意味はembedding として多次

Tai-Danaeの言語思想 -- ニューラル言語モデル批判

【 2月は短いです -- 路線転換 】 2月は短いので、あまり多くのセッションを開くことができません。予告では、今回のセッションは、Lawvere についてウンチクを垂れようと思っていたのですが、考えが変わりました。 あと、この論文に対して、僕は、あまり高い評価をしていませんでした。それも、考えを変えました。老人が、若い人のいうことに、いろいろ茶々を入れてもしょうがないと思います。 今回は、あまり細かな数学的な議論に入らないで、彼女が伝えたいと考えていることをストレートに分かりやすく伝えたいと思います。それは、今回のセミナーの意味を明確にすることにつながると思います。 【 Tai-Danaeの言語思想 -- ニューラル言語モデル批判 】 このセッションでは、この論文の後半に集中して記述されている彼女の言語思想を、先に紹介しようと思います。それは、言語思想の大きな流れの中で、現在のニューラル言語モデルの批判を、意図したものです。 彼女の数学モデルは難しいところがあるのですが、今回まとめた彼女の言語についての考え方は、言語学に興味のある人には、とても分かりやすいものだと思います。 以下、主要に、彼女の論文からの引用です。 【 ニューラル言語モデルの成功 】 「ニューラル技術が言語に対するより原理的なアプローチよりも優れている点があるとすれば、それは経験的な言語データに対して驚くほど高い性能を発揮できることである。 今後、どのような形式言語モデルがくるにせよ、現実世界におけるその品質と妥当性を判断することが、決定的な意味を持つことは間違いない。」 彼女は、ニューラル言語モデルが、その性能において大きな成功を収めていることを認めています。 【 しかし、より広範で哲学的な疑問は残る 】 「考えてみれば、文字列としてのコーパスはsyntacticsそのものであるから、言語のsyntacticalな特徴をテキスト・コーパスから抽出できることは驚くべきことではないかもしれない。しかし、より広範で哲学的な疑問は残る。もしそうだとしたら、意味の重要な側面が純粋な形式から生まれるということはあり得るのだろうか?最近のLLMの進歩に伴い、この問題はますます重要になってきている。」 【 意味と形式は分離できない 】 「意味と形式は切り離せないという考え方は新しいものではないが、現在のAIをめ

現実の経験的データからの構造の抽出の試み

【 Tai-Danaiのニューラル言語学批判 】 前回のセッションでは、少し説明の順序を変えました。それはこの論文を通じて彼女が何を主張したかったのかを、あらかじめ明確にしておくほうが、論文の展開を追いやすいと考えたからです。 彼女は、この論文を通じて、現代の主流である「ニューラル言語学」に対して、言語理論と言語へのアプローチの数学的方法の両面で批判を試みています。 今回のセミナーの大事なポイントですので、改めて、彼女の主張を見ておきましょう。 【 言語の形式と意味をめぐって 】 彼女の主張は、次のように始まります。 「意味と形式は切り離せないという考え方は新しいものではないが、現在のAIをめぐる哲学的な議論には浸透していない。」 「厳密な哲学的見地から言えば、カントとヘーゲルの影響力のある著作は、形式と内容は排他的なものではないという原則に立っており、この考え方は、分析哲学の父であるフレーゲの思想の中核にも見出すことができる。」 「さらに重要なことに、形式と意味は独立していないという視点は、フェルディナン・ド・ソシュールの研究と、近代言語学の出現の動機となった構造主義革命によって、言語学の中心となった。」 彼女は、近代言語学の始まりとなった、ソシュールらの「構造主義言語学」の再評価を求めています。 なぜ、構造主義なのか? 彼女の次の指摘は、重要だと思います。 「そして、このような伝統が、特にその構造主義的バージョンにおいて私たちに語っているのは、構文対象の分析において意味が問題になるとすれば、それはすべて言語の形式に反映された構造的特徴に起因するということである。」 意味が問題になるとすれば、それはすべて言語の形式に反映された構造的特徴に起因するということであるという視点が、言語へのアプローチでは重要だといいます。 「しかし、現在のニューラル言語モデルが不十分なのは、まさにこの点である。 というのも、ニューラル言語モデルは、そのタスクを実行する際に必然的に働く構造的特徴を明らかにしていないからである。」 【 今回のセッションで彼女が明らかにしたこと 】 こうした視点から、今回のセッションで彼女が数学的な手法を通じて、あきらかにしようとしたことを見ていきましょう。 それは単純に見える文字列の並びにも、構造が隠れていることを、その構造を抽出する方法とともに示してみせた

Formal concept

【 展開は難しいのか易しいのか? 】 これまでの展開を振り返ってみましょう。 まず、語の意味の埋め込みは行列の分解として解釈できるという話をして、ついで、行列のカテゴリー論的拡大として profunctor を紹介してきました。 前回は、profunctor のnuclei を導入して、そのペアの構造を探るという方向を示して(それはSVD分割での singular ベクトルのペアの構成とパラレルなものでした)、次のように語ります。 「意味的類似性のような言語の特定の意味的側面については、ベクトル空間の構造が適しているが、ベクトル空間の構造を重ね合わせることで、他の意味を覆い隠してしまう可能性がある。」 「 Isbell adjunctionは、言語の他の構造的特徴を明らかにするのに役立つかもしれない、別の構造を提供する。」 【 Formal Concept Analysis のカテゴリー論的解釈は易しい 】 どんな展開が待ち構えているのか、ワクワクドキドキですが、彼女がまず議論の導入の舞台として選んだのは、"Formal Concept Analysis" でした。 確かに、提供されたカテゴリー論的解釈は、二つのオブジェクトからなるカテゴリー 2 = {0,1}でenrich化したものですが、このenrich化は以前に見た 単位区間 [0,1]上でのenrich化より、はるかに簡単なものです。それはオブジェクトXの部分集合を定義するという簡単な役割を持っているだけです。 そうして、XとYとの部分集合間の関数 R^* とR_* が定義されていくのですが、こうした構成は、enrichedカテゴリーを持ち出さなくても、十分、可能です。 行列のSVDでの singular ベクトルのペア、profunctor でのnucleiのペアの構成とパラレルに、ある条件を満たすペアとして Formal concept の数学的定義が与えられるのですが、こうした構成は、singularベクトルやnuclei に触れることなく、まったく初等的に定義できます。 【 Formal Concept Analysisは、意味の「Entity Model」の数学理論 】 Formal Concept Analysis は、数学者の関心を集めているようには見えません。ただ、com

Isbell adjunction

【 数学の宝石 】 このセクションのタイトルが「意味の空間から意味の構造へ 」になっていることに、少し違和感を感じたかたがいらっしゃるかもしれません。 「意味の空間は、embeddingされた語の意味のベクトル空間じゃないの?」 「それ以外に、意味の構造があるの?」 そうなんです。そこがこのセクションの問題提起なのです。答えを先に述べれば、「意味の空間」以外に「意味の構造」があるというのが、彼女の今の考え方なのです。 「今のところ、行列の特異ベクトルから得られる単語の埋め込みは、意味にベクトル空間の構造を重ねる方法として解釈する。」 「意味的類似性のような言語の特定の意味的側面については、ベクトル空間の構造が適しているが、ベクトル空間の構造を重ね合わせることで、他の意味を覆い隠してしまう可能性がある。」 せっかく分析した意味のベクトル空間だったのですが、それは、他の意味の構造を「覆い隠してしまう可能性がある」というのです。 それでは、どうすればいいのでしょうか? 彼女の提案は、意味の奥に隠れている構造を明らかにするために、今回のセッションのテーマである"Isbell adjunction"を使おうというものです。 「Isbell adjunctionは、言語の他の構造的特徴を明らかにするのに役立つかもしれない別の構造を提供する。」  具体的な展開は、この後のセクションに持ち越されます。 Isbell adjunction には、いろいろな名前を持っています。今回のセッションでも参考に紹介した John Baez は Isbell duality と呼んでいます。その他にも、Isbell adjoints, Isabell conjugate まだ他にもあるかと思います。 補足の資料で、Baezの説明を翻訳しました。素晴らしく明快なので、是非、お読みください。前回、前々回の「大規模言語モデルの数学的構造」で紹介した copresheaf, Yoneda embedding の復習に最適だと思います。 Isbell duality は、copresheaf とpresheaf が双対の概念であることを述べたものです。 資料の最後のページURL書くの忘れたのです https://ncatlab.org/nlab/show/Isbell+duality

profunctor

【 profuncor は行列とよく似ている 】 このセッションでは、線形代数の行列に相当するものが、カテゴリー論ではどのようなものになるかを考えます。  2つのカテゴリー𝖢と𝖣が与えられたとき、カテゴリー論での行列の類似物はprofunctorと呼ばれるもので、集合のカテゴリーSet に値を取るfunctor $f : C^{op} \times D \to Set$ になります。 前にも述べたように、肩について「op」はfunctorのvarianceを示すために使われています。正確を期すためには必要なのですが、最初に見るときには無視しても構いません。ここで説明する線形代数とのアナロジーでは、行と列の間の一種の転置を示すものと考えることができます。 もう少し、詳しく見ていきましょう。 もしprofunctor $f : C^{op} \times D \to Set$ の定義域の二つのカテゴリー $C^{op} とD$が離散カテゴリーで有限集合であるならば、profunctorは単に二つの要素のペアでindexされた集合の集まりです。それは数字の代わりに集合をエントリーとする行列です。 簡単なcurrying で、C, D上のオブジェクト c, d に対する 定義、$c \mapsto  f(c, ,-), d \mapsto  f(-,d)$ で、profunctor fは、ペアのfunctor $f(c,−) : C \to (Set^D)^{op}と f(−,d) : D \to Set^{C^{op}}$を定義することがわかります。 ( "op" をないものとしてみれば、このfunctor のペアは、 $f(c,−) : C \to Set^D$ と  $f(−,d) : D \to  Set^C$ のペアになります。確かにこう考えるとわかりやすいです。) functor $f(c,− )$ は行列fのc行目の集合として描くことができます。 このfunctorは functor $D \to Set$を定義し、このfunctorでDのj番目のオブジェクトは、行 $f(c,− )$ のj番目のオブジェクトの集合にマップされます。 同様に、functor $f(− ,d)$は行列fのd列目の集合を表します。 カテゴリーが、Yoneda

12月のマルレク「大規模言語モデルの数学的構造 I」の講演資料と講演ビデオ公開しました

イメージ
 【12月のセミナー「大規模言語モデルの数学的構造 I」の講演資料と講演ビデオ公開しました 】 #大規模言語モデルの数学的構造1 昨年末に開催したマルレク「大規模言語モデルの数学的構造 I」の講演資料と講演ビデオ公開しました。ご利用ください。 「生成AI」技術が、ITの世界だけでなく社会のいろいろな領域に、大きな影響を与えようとしているのは、みなさんご承知の通りです。 「大規模言語モデル」というのは、この「生成AI」技術を生み出している巨大なインフラ(例えば、OpenAIのChatGPTを支えるシステム)とその理論的モデルの両方を指す言葉です。  「生成AI」に対する関心の高まりとともに、その基礎を支える「大規模言語モデル」に対する理論的関心もまた高まっています。活発な議論と研究が行われています。 なぜなら、ChatGPT以降の、いわゆる「生成AI」の働きには、いろいろ不思議な謎があるからです。 【 大規模言語モデルの不思議な振る舞いには理由がある 】 ただ、今回のセミナーを開催した理由は、生成AIのの不思議さを数え上げることではありません。むしろ逆の、「不思議に見えることには理由があるはずだ」という考えからです。 僕は、技術の基礎には科学的な認識があり、さらに進んでその基礎は数学的に表現されうると考えています。大規模言語モデルの不思議な振る舞いにも数学的根拠があるはずです。 そうした研究が切り開くのは、基礎へ掘り進んでいくだけの一方向の認識の「深化」だけではありません。興味深いのは、そうした過程が、全く抽象的な無意味な形式と思われていた数学理論の「応用」の領域の発見として、認識の「豊富化」として現れることがあるということです。 今回紹介するのは、そうした議論の中で、注目されているTai−Danae Bradleyの議論です。 内容的には、コンピュータ上で言葉の意味をどう表現するのかという問題を扱っています。この点では、「言葉の意味は、その言葉を含むすべてのコンテキストで決まっていく」という考えがベースになっています。そのことを了解できれば、理解は進むと思います。 【 「巨人の肩に乗る」 】 カテゴリー論をベースとした数学的な議論がメインで、日頃あまり見慣れない用語や概念が出てくるので、最初はわかりにくいところが多いかもしれません。 ここでの議論のベースになっている

embedding algorithm

 【 embeddingは行列の因数分解として解釈できる 】 mikalovらの「Word2Vec」の論文はいくつかのバージョンがあるのですが、その計算アルゴリズムは、2013年に、Skip−gramとnegative sampling の手法としてまとめられます。 ただ、2014年には、語の埋め込みのアルゴリズムの背後には、もっと深い構造があることが発見されます。それは、語の埋め込みは、ある行列の因数分解として解釈できるという発見です。 対象の言語の語彙Dを辞書式にアルファベット順に並べます。この並びでi番目の語をw_i とします。以前見たように、このi番目の語に、i番目のエントリーだけが1で残りのエントリーはすべて0の1−hotベクトルに対応付けることができます。 これは、Dから実数Rへの関数ですからR^Dのベクトル空間を考えたことになります。これもある意味、DからR^Dへの埋め込みですが、こうしたベクトル表示では、二つの語のベクトルの内積は0になり、言語の意味をうまく表現できないことは、前回見てきた通りです。 そこで、次のような|D|行 ×|D|列の行列Mを考えます(|D|は、Dの大きさです)。 Mの i行 j列の要素は、語w_iと語w_j に対応して、この二つの語がコーパス上で近くに出現する確率を表すものとします。Dが、例えば、3万語からなるとすれば、この行列Mは、3万行×3万列からなる巨大な行列です。 この行列Mが、|D|と比べるとはるかにちいさなdについて、|𝐷|×𝑑のサイズの行列𝜎′ と、𝑑×|𝐷| のサイズの行列𝜎の積の形で M=𝜎′𝜎 と因数分解できたとします。( 行列𝜎′𝜎のサイズが、|D|行 ×|D|列となることを確認ください。) この時、行列𝜎のi列は、語w_i のd次元のembedding を与えると考えることができます。(行列𝜎のサイズは、𝑑×|𝐷| ですので、どんな語w_i についても、i列目は存在します。また、i列目の列ベクトルの次元はdです。) Deep Learning の最適化の手順に則して語れば、Mが与えられた時、‖𝑀 − 𝜎′𝜎‖が最小となるような𝜎′と𝜎を見つける問題として、embedding のアルゴリズムを定式化できます。 -----------------------------

DNN と word embedding

【 embeddingの不思議 】 このセッションから Tai-Danaeらの論文の "Embeddings in Natural Language Processing" 「自然言語処理でのembedding」セクションの紹介に入ります。 ここ10年、計算言語学と自然言語処理(NLP)の研究者たちは、当初はアルファベット順に並べられた集合の構造しか持たなかった単語を、ベクトルに置き換えるというステップを踏んできました。 語をベクトルで置き換えるというステップは、人工知能分野における現在の進歩の主な原動力のひとつです。 もちろん、こうした変化を引き起こした最大の転換点は「Word2Vec」論文の発表なのですが、Tai−Danaeの論文が興味深いのは、この変化を引き起こした背景を分析していることです。  画像認識や音声認識で大きな成功を収めてきたDeep Learning 技術が、次のターゲットとして向かったのは自然言語処理の世界でした。 【 DNNの働きの定式化 】 当時、Deep Learning 技術の発祥の地とも言える、Deep Neural Network の理論的な定式化が進みます。( DNN = Deep Neural Network は、"feed forward network" とか "full connect network" とか、いろんな名前を持っているのですが、それらはみな同じものです。) それは、DNNは、ベクトル空間からベクトル空間への関数の連続した合成、しかもある同一の特徴で記述できる関数の連続した合成として記述できるという認識です。 この認識は、Deep Learning のシステムを構築を支援する様々なフレームワーク(TensorFlow, Keras 等々)登場の基礎として、実践的には非常に大きな意味を持ちました。 【 ある発見 】 そうしたなか、経験的なものですが、ある驚くべき発見がありました。Tai−Danaeの表現を引用します。 「ある言語タスク用に学習を済ましたモデルの第1層(先の図の𝑓_1)を、別の言語タスクを対象とした別のDNNの第1層として使用すると、この二つ目のタスクの性能が大幅に向上するのである。」 Word2Vecは、おそらく、こうした背景の中で生

enriched category

【 単純な例で enriched category を振り返る 】 このセッションでは、2つのオブジェクト間の射の集合𝐶(𝑦,𝑥)がもはや単なる集合でない場合の、カテゴリー論であるenriched category theoryについて考えます。 そこでは、射の集合𝐶(𝑦,𝑥)自身が、部分順序集合であったり、アーベル群であったり、位相空間であったり、他の何かであったりします。つまり、enrich化されたカテゴリーでは、先のCからSetへのfunctorであるpresheafの構成で、𝑆𝑒𝑡を別のカテゴリーに置き換えることになります。これはベクトル空間𝑘^𝑋との類比では、ベースの体𝑘を変えることに似ています。 新しいベースのカテゴリーが十分に良い構造を持っていれば、CをC上のpresheafで置き換えることについて述べたことは、ほとんど一語一語すべて通用します。 前回のセミナーは、言語のカテゴリーL上の copresheaf Set^L から、単位区間 [0,1] でenrich化された copresheaf [0,1]^L を構成したものです。これは結構複雑でした。 【 単純な例 -- 2-enriched presheaf 】 ここでは、もっと簡単な enriched category の例を考えます。 例えば、 𝖲𝑒𝗍 を、0と1という二つのオブジェクトを持ち、同一射以外の射は、0→1 一つだけである 2 というカテゴリーに置き換えると、それは、 2 -valued presheaves というカテゴリーになります。 この場合、𝐶が 𝑋 = 𝑋^𝑜𝑝なる離散カテゴリー𝑋だとすると、 2 ^𝑋のpresheaf は、{0,1}^X と表せて、正確に X上の {0,1}に値を取る関数(characteristic functionです)に等しくなり、それは、Xの部分集合に等しくなります。 2^𝑋の、それが2-enriched presheafであることによって与えられる構造は、以前に述べた部分集合上のBool 代数だということになります。( 0をfalse, 1をtrue と考えます) 前回のセミナーで見た、[0,1]^X は、単位区間[0,1]に値を取るpresheaf ですが、{ 0, 1 }^X は、0か1 かの値

presheaf

【 この部分は、この間のセミナーのまとめになっています 】 今回のセッションで紹介する部分は、この間のセミナーで扱ってきた問題の短かなまとめになっています。この間のセミナーで紹介してきた大規模言語モデルを舞台にして、Tai-Danae が利用した数学的手法を振り返るには、ちょうどいい素材かもしれません。ぜひ、以前の資料を参照ください。 短いセクションなのですが、ストーリーは二つの視点を軸に展開します。 一つは、前回のセッションで紹介した「オブジェクトからオブジェクト上の関数へ」という視点です。このセクションのタイトルは、「Objects Versus Functions on Objects」でした。 もう一つは、そうした展開を、最初のサンプルとして導入した「ベクトル空間」= 線形代数 との対比で位置付けることです。この論文のサブタイトルは、「Parallel Narratives in Linear Algebra and Category Theory 」でした。 この二つを意識してもらうと、いろいろな気づきがあると思います。 一つ注意してもらいたいことがあります。 以前のセミナー「大規模言語モデルの数学的構造」での主要な数学的ツールは、copresheaf でした。ただ、このセクションは、copresheaf のカテゴリー論的「双対」概念である presheaf について論じているということです。 どちらも、あるカテゴリーCから集合のカテゴリーSet へのfunctor です。「オブジェクトからオブジェクト上の関数へ」という視点で見ると、両者は同じようなものです。 ただ、両者の違いを少しまとめてみました。 C上のpresheaf は、𝐶^𝑜𝑝 → 𝑆𝑒𝑡 のcontravariant functorで、 C上のcopresheafは、𝐶 → 𝑆𝑒𝑡 のcovariant functorです。 二つのfunctorのvarianceの違いから、そのrepresentable functorは、次のようになります。 presheafのrepresentableは、ℎ^𝑥 ≔ 𝐶( −, 𝑥 ) で、 copresheafのrepresentableは、ℎ_𝑥 ≔ 𝐶( 𝑥 ,− ) です。 後者の𝐶( 𝑥 ,− )の形が、以前の

ベクトル空間

【 オブジェクトからオブジェクト上の関数へ 】 あまり情報が与えられない、あるいは不完全な構造を持つ数学的対象𝑋が与えられたとしましょう。 Xを直接調べようとしても、それはXの要素・オブジェクトをいろいろ調べることに帰着するのですが、Xについてよくわからないことが起こります。 そう言う時、構造がよくわかっている対象Yをとって、XからYへの関数 Fun(X)を考えます。Fun(X)はYに値をとりますので、XよりはFun(X)の方が構造がわかりやすいということを期待できると言うことです。 「オブジェクトからオブジェクト上の関数へ」と言うのは、 Xだけに注目するのではなくFun(X)にもっと注目しようと言う視点の転換を促すスローガンだと思っていいと思います。 論文の"Objects Versus Functions on Objects"というセクションでは、こうしたオブジェクト上の関数への注目によって構成された数学的対象の例を三つほど挙げています。  ⚫️ ベクトル空間  ⚫️ (co)presheaf  ⚫️ enriched category 【 ベクトル空間 】 このセッションでは、ベクトル空間の例を取り上げます。 ベクトル空間というのは、ある集合X上で定義された体k(例えば、実数 R とか複素数 C とか)に値を取る関数の集合として、k^X という形で定義されます。 ベクトルは、関数なんです。 古典bit {0,1} から 量子bit { |0>, |1> } への移行も、{0,1}を考えるのではなく{0,1}上で定義関数を考えることへの飛躍として理解できます。次のように。  f(0)=1, f(1)=0 ; g(0)=0, g(1)=1である関数 f, g を考えて、 f = |0>, g = |1> と考える。 一般に、関数であるケット|i>は (それはケット|i>はベクトルであるというのと同じ意味です)引数j に対して、|i> (j) = 1 ( i = jの時) あるいは |i> (j) = 0 (i =jでない場合) という値を返します。 この量子ビットの例は定義域が{0,1}の例でしたが、任意の集合Xについて値域が{0,1}となる関数の集合も興味深い性質を持っています。Xの要素の上

中なおり

【 中なおり 】 MacBookの調子がおかしくなったのは、今年に入ってからです。 突然、画面が切れたと思ったら、バッテリーが空になっていました。問題は、充電アダプターを繋げているのに、充電がされないこと。 SMCリセットなどいろいろやってみたのですが、回復せず、泣く泣く諦めました。 本当は諦め切れず、四つのキーの同時押しで手を引き攣らせながら、時々、想い出しては蘇生を試みました。でも、意識は戻りませんでした。 このマシンを惜しんだのには、理由があります。12インチの画面の小型で、重さ1kgを切る軽量のマシンは、僕の仕事のスタイルでは、必要だったからです。 というのも、僕は、この10年以上、ソファーやベッドの上で横になったままで、片手でPCをもったままで仕事をしています。もちろん、もう一方の手で、高速ブラインドタッチができます。というのは大嘘で、一本指でキーを叩いています。 このスタイルだと、寝たきり老人になっても仕事ができるはずなので、近い将来を見越した良いスタイルだと思います。 もう一台、現役のM2−MacBook Air があるのですが、こいつは14インチで大きく、片手で持つにはちょっと重いのです。このところ、何回かやってみたので、腕の筋肉は鍛えられたかもしれません。 しかし、不思議なこともあるもので、MacBookが死んでから二週間ほどたったある日、電源をいれてみたら、MacBookが生き返ったのです。  「これで、寝ながら仕事ができる。」 詳細な蘇生術は省略しますが、この一週間ほど、騙し騙し、MacBookで仕事ができました。 ところが、昨日の発作は強烈だったようで、いろいろ手を尽くしたのですが、意識は戻りません。この一週間は機械の「中なおり」だったのかもしれません。 この文章は、重いMBAをこたつに乗せ、正座して書いています。  (やれば、できるじゃないか。それが普通。)  (でも、寝ている方が、生産性は高いと思う。)  (馬鹿なこと言ってんじゃないよ。)  (じゃ、君も寝ながらで仕事してみろよ。) Apple Storeに連絡しました。 電源回路の故障だろうということですが、基板全体の交換になるそうです。見積もり費用は、7万8千円だそうです。 このマシン7年前のものです。スペックはCPU  i7, メモリー16G、SSD 512Gそんなに悪いものではあ

マルレク 「意味の分散表現とニューラルネットワークの数理」 へのお誘い

【 マルレク 「意味の分散表現とニューラルネットワークの数理」 へのお誘い 】 今度のマルレクのテーマは、「意味の分散表現とニューラルネットワークの数理」です。  前回のセミナーを簡単に振り返りながら、それとの関連を述べてみたいと思います。 【 前回のセミナーの振り返り 】 前回のマルレク「大規模言語モデルの数学的構造」は、大規模言語モデルという巨大な対象が、どのように意味の世界を内部に構築するのかという問題に、「copresheaf 意味論」というカテゴリー論的数学モデルを与えて答えようとしたものです。 そこでは、学習時に入力に与えられる表現の「継続」の確率分布をモデルが学ぶことを言語のカテゴリーの特徴づけに生かそうとします。 以前の言語のカテゴリー L は、表現の「継続」関係を忠実に表現する単なるpreorder のカテゴリーでした。そこでの射 𝑓 : 𝑥  → 𝑦 ∈ 𝐿(𝑥,𝑦) は、単に真か偽の値しか取らない関数でしたが、これを単位区間[0.1]に値を取る確率値を取るようにしたいと言うことです。 そこで用いられたのが、あるカテゴリーCの射を(Cのオブジェクトはそのままで、Cの射だけを)、他のカテゴリーVに置き換えるという手法です。これを、CのカテゴリーV上のenrich化といいます。 この手法によって、もとのpreorder カテゴリーとしての言語のカテゴリーは、[0,1]カテゴリーによってenrich化され、オブジェクト間の射は確率値を取るように拡張されたのです。それが、Syntax カテゴリーです。  【 言語のカテゴリーLと 意味のカテゴリー copresheaf 𝑆𝑒𝑡^𝐿 】 前回のセミナーの一番重要な主張は、言語のカテゴリーLが与えられた時、それに対応する意味のカテゴリーは、Lから集合のカテゴリーSetへのfunctor からなる、functor カテゴリー 𝑆𝑒𝑡^𝐿 とみなすことができるという主張です。𝑆𝑒𝑡^𝐿を、L上のcopresheaf と呼びます。 簡単に言うと、Lのオブジェクトx (それは、xが言語Lのある表現だと言うことです)が与えられた時、L(x,y)の形のすべての関数の集合を考えて(それは、xの継続でありうるすべてのyについてL(x,y)なる関数すべてを考えることです)、それを次のように

浅海ゼミ 第31回の講演ビデオと講演資料公開しました

【 浅海ゼミ 第31回の講演ビデオと講演資料公開しました 】 浅海ゼミ「クラウドアプリケーションのためのオブジェクト指向分析設計講座」第31回の講演ビデオと、講演資料を公開しました。 https://www.marulabo.net/docs/asami31/ 【 2024/1/19 第31回 「実装(2)」】 講座の全体構成はこちらを参照ください。 https://www.marulabo.net/docs/asami/ 【 本講座の概要 】 実装2回目の今回は設計モデルとして作成したScalaプログラムを整理して、実装への展開を考えます。 実装のポイントとTDD(Test-Driven Development)について取り上げました。 【 講演ビデオ https://youtu.be/6EOtO-y0rbs   の構成】   00:00:00 開始   00:01:45 設計の成果物   00:05:20 基本構造   00:12:00 メソッド実装   00:21:53 実装のポイント   00:41:53 TDD (Test-Driven Development)   00:58:29 まとめ 【 講演資料 】 実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】 | PPT https://www.slideshare.net/slideshows/2-31-67e1/265610862

マルレク関連資料 2002年〜2009年

丸山レクチャー関連資料 丸山レクチャー・シリーズ 丸山レクチャー・シリーズ・全アルカイーブ Lecture Note wakhokページ(旧) 丸山レクチャーシリーズ 2008-2009年度 第6回   CloudとSOA 第5回   CloudとRich Client 第4回   ScalabilityとAvailability 第3回   Cloud上の分散データベース ― BigTable、SimpleDB、Azure SDS ― 第2回   MicrosoftのクラウドOS/Windows Azureについて 第1回  クラウド時代の到来 2007-2008年度 第5回   Google Andoroidの世界    第4回   GlassfishとJbossのCluster/Cache技術 第3回  > SCA/Tuscanyの拡張メカニズム SOAへの二つのアプローチ IT技術の適用と ビジネス・バリュー実現 という二つの視点 第2回  JAX-RSとWADL ---JavaEEとRESTfulWebService 第1回   Googleの分散処理技術 2006-2007年度 第5回   古くて新しいNGNとJavaの接点 第4回   Cloud Google File System とAmazon S3/EC2 第3回   Web2.0と新しいネットワーク・メディア    第2回   JavaへのClosureの導入について    第1回   WS-ResourceTransfer  Webサービスは「状態」をどのように扱うか?    2005-2006年度 第5回   SOAとコンポーネント技術 ---SCA入門---    第4回   JAXBとJAX-WS    第3回   SOA技術とGrid   第2回   JBIとServiceMIX    第1回   SOAとは何かを考える     2004-2005年度 第5回   J2EEとSOAの近未来  J2EE6.0のコア技術としての JBI(Java Business Integration)   第4回   Annotationプログラミング入門    第3回   SOAの中核技術としてのBPEL   第2回   GridとSOAをつなぐもの --- WSRFとNotificatio