--- tags: TrRun2 id: ProbCHL-A08.md --- $\newcommand{\hyp}{\mbox{-}}% \newcommand{\cat}[1]{\mathcal{#1}}% \newcommand{\In}{\mbox{ in }}% \newcommand{\On}{\mbox{ on }}% \newcommand{\Iff}{\Leftrightarrow}% \newcommand{\Imp}{\Rightarrow}% \newcommand{\To}{\Rightarrow}% \newcommand{\Impl}{\Rightarrow}% \newcommand{\R}{ {\bf R} }% \newcommand{\P}{ {\bf P} }% \newcommand{\B}{ {\bf B} }% \newcommand{\N}{ {\bf N} }% \newcommand{\Z}{ {\bf Z} }% \newcommand{\L}{ {\bf L} }% \newcommand{\Set}{ {\bf Set}}% \newcommand{\WeWillDefine}{\mbox{WeWillDefine }}% \newcommand{\WeDefine}{\mbox{WeDefine }}% \newcommand{\For}{\mbox{For }}% \newcommand{\conc}{\mathop {\#}}% \newcommand{\If}{\mbox{if }}% \newcommand{\Then}{\mbox{ then }}% \newcommand{\Else}{\mbox{ else }}$ # 檜山トレラン2 A08 テンソルの導入(語学付き) 助走が長くなりすぎるので、[多次元配列の話](https://hackmd.io/@m-hiyama/SJLxh4bl_) は後にするか、または宿題。今回からテンソルに入る。あと、語学もやる。 - ☆テンソル計算できるようにする。 - 話で聞いた理論は、容易に頭から抜ける。 - トレーニングで得た計算力は、体から抜けにくい。 - 抽象理論の前に、少なくとも同時に、計算トレーニングをしよう。 - ☆語学を真面目にやるキッカケになれば、このセミナーの意義があると思っている。 平叙文・疑問文、肯定文・否定文、主語・述語〈subject, predicate〉、形容詞・修飾語〈adjective, modifier〉、冠詞、単数複数、関係代名詞(such that, which など)、{形容詞 \| 副詞}{句 \| 節}(後置の in, on for, if, where など)、形容詞の名詞転用、名詞の形容詞転用、動詞の形容詞転用(語尾に -ing, -ed とか) ‥‥ 外国語として勉強。 ## これはトレーニングしよう - [B10 タプルの読み書きの練習](https://hackmd.io/@m-hiyama/r1sCHPQbd) ## 語学的注意 既にクドイので、そろそろ繰り返しもやめるが: 1. 概念の把握や論理的推論は確かに暗記ではないが、用語(呼び名)と記法(書き方)は暗記。記憶してくれないと、==とにかくコミュニケーションが成立しない==。僕(伝える側)は、日本語をしゃべれないバイトを雇っているコンビニ店長みたいになる。 2. 用語(呼び名)に対して、国語辞書的意味を==連想しない==。日常感覚で判断しない。 3. 自然言語(散文)から数学用人工言語(論理式やラムダ記法)へと徐々に慣らしていく。 それに伴い、発想法・思考法も変えていく。日常生活では普通な「なんとなくボンヤリと曖昧に」考える習慣から脱却する。 4. 日本語に冠詞と複数形がないのは不利な点なので、名詞を使うときは「{a \| the}{単数形 \| 複数形}」を強く意識する。 例えば「実数」は、a real か the real か the reals = the set of all reals か a set of reals かを意識する。 5. the ☓☓☓ には、<strong style="color:crimson">規準的〈canonical〉</strong>に選んだ the ☓☓☓ と、<strong style="color:crimson">非規準的〈non-canonical〉</strong>に選んだ the ☓☓☓ がある。非規準的選出には何の根拠もないので、いつでも変更できる。 6. 形容詞・修飾語が、 (1)条件を追加する(特殊化) (2)条件を削除する (3)一般化 (4)条件の一部を否定で置き換える (5)意味を変えない (6)まったく無関係になる などの用法があるので、シッカリ区別し、用法ごと暗記する。 ゆるい文法はあるが例外だらけ。 1. 連続関数 → 不連続関数 (条件の一部を否定、排他的) 1. 決定性関数 → 非決定性関数 (条件を削除/一般化、包含的 ⊂) 1. 非決定性関数 → 確率的非決定性関数 (一般化、排他的でも包含的でもない) 1. 関数 → 決定性関数 (同義語、比較と強調の意図) 1. 関数 → 純関数 (同義語、比較と強調の意図) 1. 同型写像 → 準同型写像 (条件を削除、包含的 ⊂) 1. 写像 → 線形写像 (条件を追加、逆包含的 ⊃) 1. 可換環 → 非可換環 (排他的か包含的か不明、人による、包含的がたぶん多数派) 1. 変数 → 確率変数 (まったく無関係) 7. その他の修飾語(接頭辞、接尾辞、形容詞)に、疑〈pseudo-〉、準〈quasi-〉、前〈pre-〉、概〈almost〉、亜〈-oid〉、半〈semi-〉、反〈anti- |\ op- \| un-〉、拡張〈extended〉、一般化〈generalized〉など。個別に用法を確認して覚えるしかない。 8. [語学の問題(文法の自習用)](https://hackmd.io/@m-hiyama/ry12AV5xd#%E8%AA%9E%E5%AD%A6%E3%81%AE%E5%95%8F%E9%A1%8C%EF%BC%88%E6%96%87%E6%B3%95%E3%81%AE%E8%87%AA%E7%BF%92%E7%94%A8%EF%BC%89) も参照。目的語と能動・受動の文法。 8. 名前〈名詞〉の分類。その名前はいったい何を指しているのか? 明確に意識する。 1. 固有名: 特定のモノを指す。例: $\R, \N, \emptyset, \Set$ 2. 種別名: モノ達を分類した種別を指す。文のなかでは述語として、または名詞への形容詞として出現。集合を考えると、特定の集合を指す固有名となる。例: even の用法 $IsEven(n), \mbox{ even number}, Even := \{n\in \N \mid IsEven(n)\}$ 3. 役割名: 組織体・構造・アビタ内での役割を指す。例: $1, 0, {\bf 1}$ [「僕のおとうさん」と「お友達のおとうさん」 (C A4)](https://m-hiyama-second.hatenablog.com/entry/2019/10/21/145416) 参照。 問題: tall, boy, Tom と冠詞を含む文や句の例を考えて、要素と集合、規準性の観点から考察せよ。 問題: 同様に、terminal, object, {0} についてはどうか? 問題: 次の概念に The を付けたとすると、それは規準的Theか非規準的Theか? 問題設定が曖昧ならば、明確化の指針を示せ。 1. 実数値関数の最大値 2. 自然数の非空な部分集合の最小値 3. 平面(2次元ユークリッド空間)の正方向の90度回転 4. 虚数単位 5. 特定された群(これは given)の単位元 集合論・論理で使う記号 - $\in, \subset, \subseteq, \cap, \cup, (\hyp)^c, \times, \setminus, Pow(\hyp)$ - $\land, \lor, \lnot, \Imp, \Iff, \forall, \exists, \exists!, \varepsilon, \varepsilon!$ 数理科学の用語・記法は、省略と乱用で崩れまくる/腐りまくるので、不適切・意味不明語が生まれる。崩れる前/腐る前の状態で理解・記憶する。最初からトンチンカンな用語・記法もあるし。 今回の例で言えば: - 省略の多様性で意味不明 1. 域格子キューブ → 域キューブ → 域 2. 域格子キューブ → 域格子 → 格子 3. 域格子キューブ → 格子キューブ → キューブ - 省略のコンフリクトで意味不明 1. 域階数 → 階数 1. 余域階数 → 階数 1. プロファイル階数〈階数ペア〉 → 階数 1. 総階数 → 階数 残り7回ではあまり語学の話はしないが、語学(=語彙と文法)が不十分な人は各自語学の勉強(単語の暗記と文法の理解)をする。語学的・文化的な質問はいつでも受け付ける。 宿題に、若干語学的な問題を出す予定 → [B13 オール演算と部分け](https://hackmd.io/@m-hiyama/HkE5TxAWu) ## ストランド ![img/mitsuami-black.jpg](https://i.imgur.com/25Ap7GJ.jpg) <https://mamagirl.jp/0000193911> より 我々があつかう射(圏の住人〈インハビタント〉)はストランド図で表現できる。一本のストランドをテキスト表示するために、波矢印〈squiggle arrow〉で書く(ここだけ、一時的ローカルルール [焼畑農業式コミュニケーション](https://m-hiyama-memo.hatenablog.com/entry/2020/03/09/171747) 参照)。 ストランドの枝分かれ〈branching〉/立ち消え〈vanishing〉を認めるので、ストランドの行き先は集合として書く。 - $a \rightsquigarrow \{b\}$ ストランドの行き先は一点だけ。 - $a \rightsquigarrow \{b, c\}$ 枝分かれして行き先は二点。 - $a \rightsquigarrow \{\}$ ストランドが立ち消えて、行き先なし。 集合のブレイス〈中括弧〉は省略可能【文化的障害 悪習】だが、空集合に何も書かないのは誤解・混乱のもと。 - $a \rightsquigarrow b$ - $a \rightsquigarrow b, c$ - $a \rightsquigarrow$ ストランドに重さ【語学的障害】が付いているときは、ストランドの上に値を載せる。 - $a \stackrel{w}{\rightsquigarrow} b$ 枝分かれストランドは枝ごとに重さを載せる。 - $a \stackrel{v}{\rightsquigarrow} b$ - $a \stackrel{w}{\rightsquigarrow} c$ 立ち消えストランドに重さを載せてもいいが、載せた値に関わらず 重さ = 0 となるので意味がない(後述)。 - $a \stackrel{w}{\rightsquigarrow} \{\} = a \stackrel{0}{\rightsquigarrow} \{\}$ 重さの集合は、ここでは次の集合に限る。 1. $\Z$ 2. $\N$ 3. $\R$ 4. $\P = \R_{\ge 0}$ 5. $\B = \{0, 1\}$ いずれも半環構造【語学的障害】を考えるので、足し算と掛け算ができる。どの半環にも(役割としての) 0, 1 があることに注意。 演習: 行列をストランド図で表して、さらに非ゼロなすべてのストランドをテキストで列挙せよ。 $\begin{bmatrix} 1 & 0 & 0 \\ 1 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} 0.1 & 0 & 0.5 \\ 0.9 & 1 & 0.5 \\ \end{bmatrix}$ ## 二部有向グラフ グラフ理論と結び目理論は文化的な違いがあるので言葉も違う。「ストランド」以外の言葉は別に覚えんでもいいが。 | グラフ理論 | 結び目理論 | |-----------|-----------| | 二部{片方向}?有向グラフ | ストランド図 | | {有向}?辺 | ストランド | | 頂点〈vertex〉 | 点〈point〉| | 始点〈source {vertex}?〉 | 始点〈source {point}?〉 | | 終点〈target {vertex}?〉 | 終点〈target {point}?〉 | | 辺ラベル など | 重さ など | 質問: 二部片方向有向グラフの定義を説明せよ。たぶん、こんなことだろうでいいよ。 質問: 二部片方向完全有向グラフの有向辺は何本あるか? ストランド交差に上下の別がないとき(ブレイディングを考えないとき)は、ストランド図は二部片方向有向グラフと同じ。すべてのストランド図は、有向辺〈ストランド〉に重さが載った二部片方向完全有向グラフとみなせる。 二部の(二つに別れた)頂点集合を $\bar{n}, \bar{m}$ として、許されるすべての辺(単純有向辺)を描くと二部{片方向}?完全有向グラフになる。有向辺に重さを載せると、m行n列の行列と同じことになる。 ```graphviz digraph { subgraph cluster_0 { label="source" style=dashed s1[label="1"] s2[label="2"] } subgraph cluster_1 { style=dashed label = "target" t1[label="1"] t2[label="2"] t3[label="3"] } s1 -> t1[label="-1"] s1 -> t2[label="√2"] s1 -> t3[label="0"] s2 -> t1[label="0"] s2 -> t2[label="-5"] s2 -> t3[label="0"] } ``` $$ \begin{bmatrix} -1 & 0 \\ \sqrt{2}& -5 \\ 0 & 0.1 \\ \end{bmatrix} $$ あるいは、 $$ \begin{array}{|c|cc|} & 1 & 2 \\ \hline 1& -1 & 0 \\ 2& \sqrt{2} & -5 \\ 3& 0 & 0.1 \end{array} $$ 重要な描画ルール: - **重さが0のストランド〈辺〉は描かない。** ```graphviz digraph { subgraph cluster_0 { label="source" style=dashed s1[label="1"] s2[label="2"] } subgraph cluster_1 { style=dashed label = "target" t1[label="1"] t2[label="2"] t3[label="3"] } s1 -> t1[label="-1"] s1 -> t2[label="√2"] s2 -> t2[label="0.1"] s2 -> t3[label="-5"] } ``` 演習: 次の図を行列表示せよ。 ```graphviz digraph { subgraph cluster_0 { label="source" style=dashed s1[label="1"] s2[label="2"] } subgraph cluster_1 { style=dashed label = "target" t1[label="1"] t2[label="2"] t3[label="3"] } s1 -> t1[label="-1" style=invis] s1 -> t2[label="√2" style=invis] s2 -> t2[label="0.1" style=invis] s2 -> t3[label="-5" style=invis] } ``` 演習: 追加:次の行列をストランド図で表わせ。 $$ \begin{bmatrix} 0 & 0 & 1 \\ \frac{1}{2} & 0 & \frac{1}{2} \\ 0 & 1 & 0 \end{bmatrix} $$ 描画ツール/描画方法は違うけど、似てるよねー ↓ - [テンソルのメンタルモデル](https://m-hiyama-second.hatenablog.com/entry/2021/01/27/172021) 次のモノ達は、同じ概念を表している。 1. 重さ付きのストランド図 2. 辺に重さがついた二部片方向完全有向グラフ 3. 行列 物理的解釈をするときは、ストランドを粒子〈質点〉の軌道〈奇跡 \| trajectory \| 運動経路〉と考える。ストランドの枝分かれは、粒子の分解=質量の分配、ストランドの立ち消えは粒子の消失を表す。 第0回の押しピン投げ+ガラポンの例: ```graphviz digraph { subgraph cluster_0 { label="Pin result" style=dashed s1[label="H"] s2[label="T"] } subgraph cluster_1 { style=dashed label = "Garapon" t1[label="R"] t2[label="G"] t3[label="B"] } s1 -> t1[label="0.1"] s1 -> t2[label="0.3"] s1 -> t3[label="0.6"] s2 -> t1[label="0.2"] s2 -> t2[label="0.35"] s2 -> t3[label="0.45"] } ``` $$ \begin{array}{|c|cc|} & H & T \\ \hline R& 0.1 & 0.2\\ G& 0.3 & 0.35\\ B& 0.6 & 0.45 \end{array} $$ ストランド図/行列の一部だけを取り出すと、so-called “条件付き確率”(使わん言葉 [B12 曖昧さとインチキ](https://hackmd.io/@m-hiyama/Sy2JbtcZu) 参照) ```graphviz digraph { subgraph cluster_0 { label="Pin result" style=dashed s1[label="H"] } subgraph cluster_1 { style=dashed label = "Garapon" t1[label="R"] t2[label="G"] t3[label="B"] } s1 -> t1[label="0.1"] s1 -> t2[label="0.3"] s1 -> t3[label="0.6"] } ``` $$ \begin{array}{|c|c|} & H \\ \hline R& 0.1 \\ G& 0.3 \\ B& 0.6 \end{array} $$ ## テンソル〈多行列〉学習の注意事項 今はピンと来ない事もあるだろうから、後でも随時見直して肝に銘じる。==落とし穴/沼がほんと多い==。 1. 一般のテンソル/マルコフ・テンソルの全体はそれぞれ圏になる。→ [圏の形式的定義](https://hackmd.io/@m-hiyama/r1VWnPqeO) 2. 一般の(条件がない、形容詞を付けない)テンソルではなくて、マルコフ・テンソル〈保存的テンソル〉から入る。当面、マルコフ・テンソル==だけ==扱う。 3. マルコフ・テンソルは、メンタルモデルとしては拡散現象(質量は保存する)の離散近似と考える。 4. あるいは、記号タプルを送受信する“文字化け有り文字落ち無し通信路”をメンタルに(心の中で)考えてもよい。 5. テンソルは“テンソルの圏”(テンソル圏〈tensor category〉とは呼ばない【語学的障害】)の射だが、「射は写像、対象は集合」ではまったくない! 学習を阻害する病気である集合圏執着症にならないこと。 6. 語学的・文化的障害が色々とある。特に、ペアの書字順序を入れ変えた記法 $(b \mid a) = (a, b)$ と、横着した略記規則 $(\ast, a) \stackrel{\mbox{abbrev}}{\to} (a) \stackrel{\mbox{abbrev}}{\to} a$ に注意。 7. 「階数」という言葉も大きな語学的障害だが、==余計な事を考えずに定義を暗記==する。そう呼ぶのだからしょうがない! 8. 見た目が行列でも、(1, 1)-テンソル、(0, 2)-テンソル、(2, 0)-テンソルの場合があるから注意。単に形だけ見てボンヤリと「行列」と言ってるとハマるし理解も出来ないぞ。なお、(r, s)-テンソルが何を意味するかは分野・コミュニティ依存だから毎回確認のこと([焼畑農業式コミュニケーション](https://m-hiyama-memo.hatenablog.com/entry/2020/03/09/171747) 参照)。 9. テンソルのサイズと階数(いずれも後述)の混同が非常に多い。「サイズと階数は違う」と念仏として100回唱える。 10. ストランド図とストリング図を描く習慣があれば、穴/沼にハマることはあまりない。穴/沼の正体は==腐りきったテキスト記法と語学的障害==。 11. **Category Theory ≒ The Art of Picturing** なので、言葉やテキスト(腐ってる)に依存しない直接理解を目指す。 語学的注意: tensor category は使えないので、category of tensors / category of Markov tensors 。使われ過ぎな tensor をやめて、 category of polymatrices / polymatrix category がいいのだが、辻褄が合った言葉 "polymatrix" が少数派過ぎる(多数派が正しいとは限らない)。 ## 格子とテンソル 「格子」は、自然言語の意味を連想してOK。 ![koushi-do.jpg](https://i.imgur.com/rwvpyBE.jpg) ↑ [岩手・花巻 藤三旅館湯治部〈ふじさんりょかん・とうじぶ〉](https://www.namari-onsen.co.jp/touji/) の格子戸 ![koushi-shoji.jpg](https://i.imgur.com/cEXhIUF.jpg) ↑ [神奈川県・湯河原 富士屋旅館〈ふじやりょかん〉](https://www.ikyu.com/00002647/10945282/10134864/) の障子張り格子 ![igoban.jpg](https://i.imgur.com/W3ADbgt.jpg) ↑ 碁盤の目は格子。 $\Z^n \subset \R^n$ がn次元の<strong style="color:crimson">格子空間</strong>、その点が<strong style="color:crimson">格子点</strong>、格子点を表す座標が<strong style="color:crimson">格子座標</strong>。n次元キューブの離散版が<strong style="color:crimson">n次元格子キューブ</strong>。 1. 1次元格子キューブ=離散区間 $\subset \Z^1$ 1. 2次元格子キューブ=離散矩形 $\subset \Z^2$ 1. 3次元格子キューブ=離散直方体 $\subset \Z^3$ まずは、$\bar{n} = \{1, \cdots, n\}$ の形の離散区間の直積で考えない。(後で一般化する。) <strong style="color:crimson">テンソル</strong>〈<strong style="color:crimson">多行列</strong>〉は、2つの格子キューブのあいだを結ぶ重さ付きストランド図で表されるナニカである。 「ナニカ」の意味は: 1. テンソルとは、「2つの格子キューブのあいだを結ぶ重さ付きストランド図」==そのもの==だと思ってもよい。 2. しかし、別に定義される数学的概念が、「2つの格子キューブのあいだを結ぶ重さ付きストランド図」で表現可能なとき、それも「テンソル」と呼ぶ可能性が高い。 3. 形式的には、「2つの格子キューブのあいだを結ぶ重さ付きストランド図」の圏を定義して、その圏と圏同型な圏(ソックリな圏)は「テンソルの圏」と呼ぶ約束。 4. 抽象化した数学では、圏同型または圏同値なふたつの圏(同じじゃないとしても、本質的な差はない圏)はあまり区別しない(区別する意味がないので)。 5. 実体はどうでもよくて、構造や役割しか問題にしない発想。 6. その意味で、「2つの格子キューブのあいだを結ぶ重さ付きストランド図」は、テンソルの具体的・典型的な実体。最初の導入には実体・具体物が必要だ。実体なしの抽象論は辛い、辛いがそれが現代の数学の普通のやり方。 7. まったく実体に言及しないマルコフ・テンソルの抽象論が、マルコフ圏論。 もう一度参照↓。 - [テンソルのメンタルモデル](https://m-hiyama-second.hatenablog.com/entry/2021/01/27/172021) ## テンソルのプロファイル テンソル $t$ は射だから、必ず**アビタ**(生息地である圏)と**プロファイル**を持つ。次のように書く。 - $t:a \to b \In {\bf Tens}$ プロファイルに出現する $a, b$ は集合である必要はなくて、射 $t$ を特徴づける情報ならば、==何でもいい==(無意味な「‥‥でなくてはならない」という思い込みは捨てる)。$a$ を「域〈domain \| ドメイン〉」、$b$ を「余域〈codomain \| コドメイン〉」と呼ぶが、それはそう呼ぶ習慣だから==しょうがない==。 テンソルの具体的実体は、格子キューブのあいだの重さ付きストランド図なので、その域と余域の実体は格子キューブだが、格子キューブの情報は自然数のリスト $(k_1, \cdots, k_n)$ で表現できる(キューブの集合は $\bar{k_1}\times \cdots\times \bar{k_n}$)ので、プロファイルは: - $t:(自然数のリスト) \to (自然数のリスト) \In {\bf Tens}$ クドイが、域/余域が集合である必要はないので、==射を特徴づける情報==として自然数のリストを使っているのだ。 - 例: $t:(3, 2) \to (3, 2) \In {\bf Tens}$ [拡散確率テーブル](https://hackmd.io/@m-hiyama/Syj342TAv) 参照。 他の例: 1. $t:(3) \to (3, 2) \In {\bf Tens}$ 2. $t:(3, 2) \to (3) \In {\bf Tens}$ 3. $t:(2) \to (2) \In {\bf Tens}$ 4. $t:(3) \to () \In {\bf Tens}$ 5. $t:() \to (3, 2, 4) \In {\bf Tens}$ 丸括弧の省略: 1. $t:3 \to 3, 2 \In {\bf Tens}$ 2. $t:3, 2 \to 3 \In {\bf Tens}$ 3. $t:2 \to 2 \In {\bf Tens}$ 4. $t:3 \to \In {\bf Tens}$ 5. $t: \to 3, 2, 4 \In {\bf Tens}$ または $t:3, 2, 4 \In {\bf Tens}$ (悪習、使うべきではない) **記法の罠**(記法がイイカゲンだと概念把握もイイカゲンになってしまう)にハマらないために、これらが省略記法であることを忘れてはならない。 演習: 上記5つのプロファイルを持つテンソルの具体例をストランド図で描け。 演習: 絵に描いたストランド図のストランドをテキストで列挙せよ。 演習: [拡散の事例](https://hackmd.io/@m-hiyama/Syj342TAv) をストランド図に描け。 $(1, 1) \mapsto \begin{bmatrix} 0.7 & 0.1 & 0.0 \\ 0.1 & 0.1 & 0.0 \end{bmatrix} \\ (2, 1) \mapsto \begin{bmatrix} 0.1 & 0.5 & 0.1 \\ 0.1 & 0.2 & 0.0 \end{bmatrix} \\ (3, 1) \mapsto \begin{bmatrix} 0.0 & 0.0 & 0.0 \\ 0.0 & 1.0 & 0.0 \end{bmatrix} \\ (2, 1) \mapsto \begin{bmatrix} 0.0 & 0.0 & 0.0 \\ 1.0 & 0.0 & 0.0 \end{bmatrix} \\ (2, 2) \mapsto \begin{bmatrix} 0.0 & 0.0 & 0.0 \\ 0.1 & 0.9 & 0.0 \end{bmatrix} \\ (3, 2) \mapsto \begin{bmatrix} 0.0 & 0.2 & 0.4 \\ 0.0 & 0.4 & 0.0 \end{bmatrix}$ 演習: 上記の拡散の事例の、ラベルが0でないストランドをテキストで列挙せよ。 ## テンソルの圏とテンソルの階数 ストランドの重さ(行列なら成分)の集合(正確には半環)が $S$ であるテンソル〈多行列〉の圏を ${\bf Tens}[S]$ と書く。重さの半環〈semiring of weights〉を問題にしないとき、または文脈から明らかなら ${\bf Tens}$ と略してもよい。が、無闇に略記はしない。${\bf Tens}[\B]$ と ${\bf Tens}[\R]$ ではまったく違った圏になる。 $|{\bf Tens}[S]| = List(\N_{\gt 0})$ と定義する。リスト成分から0を除外している理由は: 1. 0が入ると混乱の原因になり、例外処理で煩雑になる。 2. 0を入れてもメリットがあまりない。 確率の計算で0は不要。ただし、線形代数一般の立場からはゼロ空間を除外することになり不自然となる。 テンソルの域・余域となるリストから $(0), (0, 3), (3, 0), (0, 0)$ などは除外するが、空リスト $()$ は除外しない。自然数 0 、空リスト、空集合を区別する。(公理的集合論では、自然数 0 は空集合だが、今はそんな話をしてない。) テンソルの結合は後でやるとして、テンソルの階数を導入する。語学的障害はあるが、割り切って定義を記憶。コミュニティ依存性に注意。 $t$ がテンソル〈多行列〉、つまり $t\in {\bf Tens}[R]$ のとき、 - $length(dom(t))$ を $t$ の<strong style="color:crimson">域階数</strong>〈domain rank〉と呼ぶ。 - $length(cod(t))$ を $t$ の<strong style="color:crimson">余域階数</strong>〈codomain rank〉と呼ぶ。 - ペア $(length(dom(t)), length(cod(t)))$ を $t$ の<strong style="color:crimson">プロファイル階数</strong>〈profile rank〉と呼ぶ。 - 自然数 $length(dom(t)) + length(cod(t))$ を $t$ の<strong style="color:crimson">総階数</strong>〈total rank〉と呼ぶ。 域階数、余域階数、プロファイル階数、総階数、すべて単に「階数」と略称する(悪習)。「テンソルの階数」が何を意味するかは文脈なしでは分からないが、プロファイル階数が一番多い。プロファイル階数が (域階数, 余域階数) か (余域階数, 域階数) かはコミュニティ依存。 注意: 共変の階数、反変の階数を知ってる人は忘れること。ここでは使わない。檜山はアレが嫌いだから金輪際使う気がない。 - 域階数 ≒ 域格子キューブの次元 - 余域階数 ≒ 余域格子キューブの次元 上の箇条書きでイコールでないのは、そもそも「次元」概念が曖昧だから。「データが基本型〈1次元〉かタプルなどの複合型〈多次元〉か?」は自明ではないし、実際は約束で決めているだけ。 プロファイルから格子キューブの<strong style="color:crimson">サイズ</strong>が完全に分かるが、プロファイル階数からは格子キューブの次元しか分からない。プロファイル階数はプロファイルより粗い情報、総階数はさらに粗い情報。 問題:次のテンソルのプロファイル階数と総階数を求めよ。 1. $t:3 \to 3, 2 \In {\bf Tens}$ 2. $t:3, 2 \to 3 \In {\bf Tens}$ 3. $t:2 \to 2 \In {\bf Tens}$ 4. $t:3 \to \In {\bf Tens}$ 5. $t: \to 3, 2, 4 \In {\bf Tens}$ 6. $t: \to 3 \In {\bf Tens}$ 7. $t: 1 \to 2 \In {\bf Tens}$ 8. $t: 2 \to 1 \In {\bf Tens}$ 9. $t: 3 \to \In {\bf Tens}$ 10. $t: \to \In {\bf Tens}$ ## 語学的・文化的注意 コミュニケーションの障害がある。 1. 行列と線形写像は区別するが、多行列(ここでのテンソル)と多線形写像〈polylinear map〉はどちらも「テンソル」で区別しない。意味不明な悪習。 2. ここでのテンソル〈多行列〉の域・余域はリストなので、ストランド図の格子キューブは<strong style="color:crimson">域{格子}?キューブ</strong>、<strong style="color:crimson">余域{格子}?キューブ</strong>と呼ぶことにする。 3. テンソルを総階数で分類することが多い。プロファイル階数ならまだしも、総階数で分類しても意味はない。圏論的に重要な情報が失われていて役に立たない。 4. 特に、総階数2のテンソルを行列と呼ぶ習慣だが、(1, 1)-テンソル, (0, 2)-テンソル、(2, 0)-テンソルはまったく別物。「総階数2」で味噌もクソも一緒にするのはダメ。 5. 格子キューブのサイズはリスト(edge sizes)で完全に記述されるが、サイズリストの成分もサイズと呼ぶ。複合データで表される量と、その複合データの構成素を区別しないで呼ぶのはアルアルだが、語学的障害になる。==日本語の字面では==、a size, the sizes = the list of sizes, the size が==区別できない==。 問題: (1, 1)-テンソル, (0, 2)-テンソル、(2, 0)-テンソルの、適当な具体例をストランド図で描け。