伝統的概念・記法を使った微分計算って快適じゃないよねー。「分かりにくい、間違いやすい、気持ち悪い」。もっと快適でスッキリ・ハッキリした微分計算の体系が欲しい!
ノルムベクトル空間の線形代数と圏論的定式化を基本とした微分計算を紹介しましょう。
内容:
- 過去の記事
- ノルムベクトル空間
- ノルムベクトル空間と連続写像/部分連続写像
- スモールオー関数とスモールオー関数族
- ノルムベクトル空間となめらか写像/部分なめらか写像
- 線形内部適用と線形内部結合
- 線形写像の2つの解釈: 射と要素
- 微分作用素と微分公式
- チェーン法則の分析
- 定数写像と線形写像の微分
- 部分逆写像
- 応用: 部分逆写像の微分公式
- まだ微分公式は残っているんだが
- 補足と展望: ヤコビ微分圏
過去の記事
「線形近似としての微分係数: フレシェ微分」(2019-03-19)において、
この記事は2回の続き物を予定しています。次回がいつか分かりませんが(苦笑)。
[...snip...]
その他の微分公式は次回にします。
今回の記事は、今引用した過去記事の「第2回」といえます。しかし、だいぶ時間がたってしまったこともあって、単純に「続き」ではなくて、先の記事を参照しながら記事タイトルの話題について述べるスタイルです。(微分公式の紹介は今回も終わってないのだけど。)
別な過去記事もあります。
伝統的概念・記法を使った微分計算に対してだいぶ愚痴りながら、ユークリッド空間Rnとその開集合で定義された写像を扱ってます。今回のこの記事は、ユークリッド空間より一般化した設定にします。
ノルムベクトル空間
ベクトル空間Vにノルム V を一緒に考えた (V, V) がノルムベクトル空間〈normed vector space〉です。記号の乱用で、V = (V, V) とも書きます。これから出てくるベクトル空間はすべて(実数体R上の)ノルムベクトル空間です。単にVと書いても、ノルム V が付いているものとします。
ノルムベクトル空間は距離空間とみなせます。そして、距離空間は位相空間とみなせるので、ノルムベクトル空間のあいだの連続写像〈continuous map〉を定義できます。V, W をノルムベクトル空間として、f:V→W が連続写像であることは、イプシロン・デルタ論法で定義すればOKです。
ノルムベクトル空間Vの部分集合 X⊆V が開集合〈open set〉であることも、ノルム距離による開球体〈open ball〉を使って定義できます。開集合 X⊆V 上で定義された写像 f:X→W に対しても、その連続性が定義できます。
V, W がノルムベクトル空間だとして、V×W と VW は同じノルムベクトル空間を表します。ただし、解釈が少し違って、
- V×W は、集合の直積 V×W にノルムベクトル空間の構造を入れたもの。
- VW は、(ベクトル空間の圏における)VとWの双積(直積でもあり直和でもある)ノルムベクトル空間。
V×W = VW のノルムは:
V×W = VW は、VとWの直積ノルムベクトル空間〈direct product normed vector space〉または直和ノルムベクトル空間〈direct sum normed vector space〉と呼びます。
V, W がノルムベクトル空間だとして、BL(V, W) は、有界線形写像〈bounded linear map〉の集合だとします(有界線形写像については、「線形近似としての微分係数: フレシェ微分 // 有界線形写像」参照)。次が成立します。
- f∈BL(V, W) ⇔ fは線形かつ連続
BL(V, W) は、よく知られた方法でベクトル空間とみなせます。それだけではなくて、BL(V, W) にはノルムを定義できます。次のように定義します。
ノルムベクトル空間とみなした BL(V, W) を [V, W] と書きます。[V, W] は内部ホム・ノルムベクトル空間〈internal-hom normed vector space〉と呼びます*1。内部ホム [V, W] はこの後多用されます。
ノルムベクトル空間と連続写像/部分連続写像
対象がノルムベクトル空間で、射がノルムベクトル空間のあいだの連続写像〈continuous map between normed vector spaces〉である圏を ContNVS とします。
- 対象: Obj(ContNVS) = |ContNVS| = (すべてのノルムベクトル空間)
- ホムセット: ContNVS(V, W) = {f:V→W | fは連続写像}
- 射の結合: 連続写像の結合〈合成〉
- 恒等射: 恒等写像
ContNVSが圏になることは次の2つの事実から示せます。
通常の習慣に従い、ホムセット ContNVS(V, W) を C(V, W) または C0(V, W) とも書きます。
次に部分連続写像の圏も定義しておきましょう。fが、VからWへの部分連続写像〈partial continuous map〉だとは、
- X⊆V は、Vの開集合である。
- f:X→V は(通常の意味の)連続写像である。
fが、VからWへの部分連続写像のとき、f:V⊇→W と書きます。Vの開集合Xは、fの定義域〈domain of definition〉と呼び、def(f) と書きます。部分連続写像では、域〈domain〉と定義域〈domain of definition〉が一致するとは限りません。fの定義域Xがハッキリしているときは、f:V⊇X→W とも書きます。
2つの部分連続写像 f:V⊇→W, g:W⊇→Z の結合は、“結合できるところだけ結合した”連続写像です。定義域に関して次が成立します。
- def(gf) = f-1(def(g))
gf は反図式順結合〈anti-diagrammatic order composition〉で、f-1(-) は逆像集合を表します。
ノルムベクトル空間のあいだの部分連続写像の全体も圏 ParContNVS をなします。
- 対象: Obj(ParContNVS) = |ParContNVS| = (すべてのノルムベクトル空間)
- ホムセット: ParContNVS(V, W) = {f:V⊇→W | fは部分連続写像}
- 射の結合: 部分連続写像の結合〈合成〉
- 恒等射: 恒等写像
ParContNVSのホムセットは次のようにも書きます。
- ParContNVS(V, W) = C0(V⊇, W) = C(V⊇, W)
定義域がXである部分連続写像の全体は次のように書きます。
- ParContNVS(V⊇X, W) = ParContNVSV(X, W)
- C0(V⊇X, W) = C0V(X, W) = C(V⊇X, W) = CV(X, W)
ContNVSとParContNVSは同じ対象類を持ち、ContNVSはParContNVSの部分圏です*2。
スモールオー関数とスモールオー関数族
スモールオー関数については、「線形近似としての微分係数: フレシェ微分 // スモールオー関数」で述べています。少し変更をします。
- スモールオー関数は、部分連続写像でよいとする。
- o(V, W) と書いていたが、視認性が悪いので、SmallO(V, W) に変更する。
fがスモールオー関数〈small-o function〉だ(f∈SmallO(V, W))とは:
- f∈ParContNVS(V, W)
- 0∈def(f) かつ f(0) = 0
スモールオー関数のパラメータ族に相当する概念も定義しておきます。V, W はノルムベクトル空間、X⊆V を開集合として、次のような部分連続写像gを考えます。
- g:X×V⊇→W つまり g∈C0(X×V⊇, W)
- 任意の x∈X に対して、λv∈V.g(x, v) : V⊇→W として(定義可能な部分だけ)定義される部分連続写像はスモールオー関数である。
このとき、gをスモールオー関数族〈small-o function family | family of small-o functions〉と呼びます。なぜなら、g(x, v) = gx(v) と書いたとき、x gx は、Xでインデックス付けられたスモールオー関数の族とみなせるからです。
ノルムベクトル空間となめらか写像/部分なめらか写像
微分はすべてフレシェ微分として考えます。フレシェ微分については「線形近似としての微分係数: フレシェ微分」に書いてあります。
部分連続写像 f:V⊇X→W が1回〈1階〉だけ連続フレシェ微分可能〈continuously Fréchet differentiable〉だとは、部分連続写像 f':V⊇X→[V, W] とスモールオー関数族 g:X×V⊇→W があって、次の等式が成立することです。
- a∈X, v∈V に対して、(a + v)∈X ならば、
f(a + v) = f(a) + f'(a)v + g(a, v)
f':X→[V, W] をfのフレシェ微分〈Fréchet derivative | フレシェ導関数〉と呼び、D(f) とも書きます。スモールオー関数族 g:X×V⊇→W は(フレシェ微分の)残余〈remainder〉と呼びます。f' = D(f) も、gも連続であることに注意してください。
フレシェ導関数 D(f):X→[V, W] が再びフレシェ微分可能で、D(D(f)):X→[V, [V, W]] が存在するとき、2回〈2階〉連続フレシェ微分可能といいます。何回でも連続フレシェ微分可能な写像〈関数〉をなめらか写像〈関数〉〈smooth {map | function}〉と呼びます。部分なめらか写像〈なめらかな部分写像 | partial smooth map | smooth partial map〉も同様に定義できます。
ノルムベクトル空間と、そのあいだの(全域的な)なめらか写像は圏を形成します。この圏をSmoothNVSとします。
- 対象: Obj(SmoothNVS) = |SmoothNVS| = (すべてのノルムベクトル空間)
- ホムセット: SmoothNVS(V, W) = {f:V→W | fはなめらか写像}
- 射の結合: なめらか写像の結合〈合成〉
- 恒等射: 恒等写像
また、ノルムベクトル空間と、そのあいだの部分なめらか写像も圏を形成します。この圏をParSmoothNVSとします。
- 対象: Obj(ParSmoothNVS) = |ParSmoothNVS| = (すべてのノルムベクトル空間)
- ホムセット: ParSmoothNVS(V, W) = {f:V⊇→W | fは部分なめらか写像}
- 射の結合: 部分なめらか写像の結合〈合成〉
- 恒等射: 恒等写像
快適な微分計算のための圏とは、SmoothNVS と ParSmoothNVS のことです。|SmoothNVS| = |ParSmoothNVS| = (すべてのノルムベクトル空間) であり、SmoothNVS は ParSmoothNVS の部分圏になっています。
線形内部適用と線形内部結合
伝統的概念・記法を使った微分計算が「分かりにくい、間違いやすい、気持ち悪い」原因のひとつに、なめらか写像の計算と、線形写像の計算を識別してないことがあるでしょう。そこで、内部ホム・ノルムベクトル空間 [V, W] に関わる計算のために、新しい演算子記号を準備することにします。
ノルムベクトル空間 [V, W] の要素は、VからWへの(有界/連続)線形写像でした。なので、[V, W]×V∋ (f, v) f(v) ∈W という写像があります。この写像を線形内部適用〈linear internal application〉と呼ぶことにします。また、線形写像の(反図式順の)結合を行う写像 [W, Z]×[V, W]∋ (g, f) gf ∈[V, Z] もあります。これは線形内部結合〈linear internal composition〉と呼びましょう。
線形内部適用も線形内部結合も、連続な双線形写像になっています。連続双線形写像はなめらかになる(後述 -- のつもりが書いてないけど、そうなります)ので、線形内部適用/線形内部結合は、圏SmoothNVSの(したがって、圏ParSmoothNVSの)射となっていることに注意してください。「内部」という言い方をしているのは、圏の内側に存在する射だからです。
線形内部適用と線形内部結合に対して、次の中置演算子記号を割り当てます。
二項演算 | 演算子記号 | 使用例 |
---|---|---|
線形内部適用 | ||
線形内部結合 |
v∈V, f∈[V, W], g∈[W, Z], h∈[Z, U] に対して次の法則が成立します。以下で、IV はとりあえず idV(恒等写像)と同じと思ってください、詳しくは後述します。
線形内部適用と線形内部結合に対して、通常とは別な中置演算子記号を使うことは、微分公式を明確に記述するために役に立ちます。例えば、フレシェ導関数 Df の値 Df(a) は内部ホム・ノルムベクトル空間に入るので、連続微分可能性を表す等式は次のように書けます。
演算子記号の優先順位を仮定せず、括弧を省略しないで書けば:
演算子記号や括弧をフルで書くと煩雑ですが、逆に省略が過ぎると非常に分かりにくくなります。 も も単なる併置にすることが多いので、 を と書く程度の省略は実際に使われます。
線形写像の2つの解釈: 射と要素
今回この記事で強調したいことは、「通常の適用/結合と、線形内部適用/線形内部結合を区別しよう」ということです。そのために、新しい演算子記号も導入しました。
通常 | 線形内部 | |
---|---|---|
適用 | ||
結合 |
事情をもっとハッキリさせるために、線形写像に2つの解釈があることを説明します。
ノルムベクトル空間と連続線形写像からなる圏をCLinNVSとしましょう。"continuous linear map between normed vector spaces"のつもりです。定義から明らかに、CLinNVSはContNVSの部分圏です。線形写像に関しては、有界=連続 だったので、有界線形写像の集合 BL(V, W) は、ホムセット CLinNVS(V, W) と同じです。
今導入した圏CLinNVSを使うと、次のように言えます。
- fは(連続な)線形写像である ⇔ fは、CLinNVSの射である
あるいは、
- fはVからWへの(連続な)線形写像である ⇔ f:V→W in CLinNVS
一方、内部ホム・ノルムベクトル空間 [V, W] の要素もまた線形写像と解釈できます。つまり、
- fはVからWへの(連続な)線形写像である ⇔ f∈[V, W]
「線形写像」とは言いながら、上記の2つの解釈は異なります。そこで、射としての連続線形写像 f:V→W に対応する [V, W] の要素を と書くことにします*3。
この書き方で、次が成立します。
これを使うと次のような計算ができます。
f:V→W が(射としての)線形写像のとき、その微分は次のように書けます。
なぜなら、 と書けるからです。これは、残余がゼロの線形近似(近似ではなく、そのものズバリだが)になっています(詳しくは後述)。
導関数の値〈微分係数〉は線形写像ですが、要素としての線形写像、つまり内部ホム・ノルムベクトル空間の要素です。要素としての線形写像の値を求めるには、線形内部適用演算子 を使います。
ここから先、内部ホム・ノルムベクトル空間の要素は、通常の線形写像とは区別して、φ, ψ などで表すことにします。
微分作用素と微分公式
ここからは次の簡潔な記法を使うことにします。
- C∞(V, W) = SmoothNVS(V, W)
- C∞V(X, W) = ParSmoothNVSV(X, W) = ParSmoothNVS(V⊇X, W)
記号'D'は、関数〈写像〉にそのフレシェ導関数を対応させる写像を表すのでした。
- D:C∞(V, W)→C∞(V, [V, W])
- D:C∞V(X, W)→C∞V(X, [V, W])
同じ'D'で表していますが、ほんとは、V, W, X ごとに違う写像です。次のように書くべきでしょう。
- DV, W:C∞(V, W)→C∞(V, [V, W])
- DV⊇X, W:C∞V(X, W)→C∞V(X, [V, W])
さすがに、上付き 'V, W', 'V⊇X, W' は煩雑なので、ほとんどの場合省略されますが。
DV, W, DV⊇X, W で表される写像は微分作用素〈differential operator〉と呼びます。正確には、1階の全微分作用素と言うべきかも知れませんが、まーいいでしょう。微分作用素達は、圏SmoothNVS、圏ParSmoothNVSに「微分ができる」という構造を与えます。圏が備える構造と考えた微分作用素達を、微分コンビネータ〈differential combinator〉と呼ぶことがあります(「コンピュータ科学や組み合わせ論を“微分幾何”とみなす:CADGの夢」参照)。
ベースとなる圏 SmoothNVS, ParSmoothNVS と、微分作用素達との関係を記述する等式が微分公式です。微分公式は次のことを教えてくれます。
- 圏のホムセットの線形構造(足し算とスカラー乗法)と、微分作用素との関係
- 圏の射の結合と、微分作用素との関係
- 圏の射のペアリング/タプリングと、微分作用素との関係
- 直積の上で定義された関数の導関数
- 基本的な関数の導関数
1番目の微分公式は、微分作用素の線形性〈linearity of differential operators〉を主張するもので、次のように書けます。(ドットはRによるスカラー乗法です。)
2番目の微分公式は、「線形近似としての微分係数: フレシェ微分 // チェーン法則」で述べたチェーン法則〈chain rule | 合成関数の微分公式〉です。次のように書けます(より正確な記述は次節)。
より丁寧に書けば:
は、 と置いて、 のように略記できます。簡略で便利ですが、何をやっているのかを読み取るのは困難になっています。
上のように省略無しで書いた公式を一度理解しておけば、次のような省略した形にも対応できるでしょう。
チェーン法則の分析
伝統的概念・記法を使った微分計算では、出現する写像(部分なめらか写像)の域・定義域・余域などをハッキリさせないことが多いようです。これも、「分かりにくい、間違いやすい、気持ち悪い」につながります。
前節のチェーン法則で出現した写像達の、域・定義域・余域をハッキリさせておきましょう。def(g f) = f-1(Y) = T と置きます。
これらを見れば、 と は(部分写像として)結合可能で、その定義域はTであることが分かります。
- ]
部分写像の定義域の制限を縦棒、同じ定義域を持つ部分写像のペアリングを山形括弧で表すとすると:
3番目の写像の、点 a∈T での値は次のように計算されます。丸括弧の多用による混乱を避けるために、要素のペアリングも山形括弧を使い続けることにします。
二項演算子記号 で表せる写像を、Haskell風に と書くことにします。
と はこの順で結合可能で、
チェーン法則の左辺〈Left Hand Side〉と右辺〈Right Hand Side〉は、次のような部分なめらか写像です。
つまり、
前節の記述は、定義域の制限を省略して、 を中置演算子記号で書いたものでした。
今やったように、射(部分なめらか写像)の域・定義域・余域を追いかけるのは、面倒でちょっと辛いのですが、曖昧なままにしておくと、「分かりにくい、間違いやすい、気持ち悪い」となります。
定数写像と線形写像の微分
前節の箇条書きの順番とは前後しますが、「基本的な関数の導関数」を求めます。ここでの基本的な関数〈写像〉は定数写像と線形写像です。定数写像/線形写像は基本的で簡単な関数です。その微分も簡単なのですが、ちゃんと書いてみると、意外と面倒かも知れません。
少し準備をします。ノルムベクトル空間Vに対して、idV は恒等写像で、もちろん連続線形写像になります。次の対応があるのでした。
を と書きます。 は、内部ホム・ノルムベクトル空間 [V, V] の要素です。
ノルムベクトル空間VからWへのゼロ写像を 0V,W:V→W と書きます。ゼロ写像も連続線形写像になります。よって、次の対応があります。
を と書きます。 は、内部ホム・ノルムベクトル空間 [V, W] の要素です。
CLinNVSの射と、内部ホム・ベクトル空間の要素との対応をまとめると:
CLinNVSの射 | 内部ホムの要素 |
---|---|
さて、Wの要素bが指定されたとして、値がbである V⊇X→W の定数写像〈constant map〉を ConstV⊇X,W[b] : V⊇X→W と書きます。
「ちゃんと書いてみると、意外と面倒」とは、こういうことです。でも、定数写像の微分公式の証明は、微分可能性の等式と見比べれば簡単です。
次に、f:V→W を線形写像とします。前々節で述べたように、線形写像fを微分すると:
線形写像の微分は定数写像です。その定数値は です。値を渡すと:
線形写像fを開集合Xに制限しても、同様な微分公式が成立します*4。
部分逆写像
通常の写像の可逆性の定義は簡単ですが、部分写像に関する可逆性は少し面倒です。まず、部分写像 f:V⊇→W の像〈image〉 img(f) は次のように定義します。
- img(f) = {y∈W | y = f(x) となる x∈def(f) が存在する}
部分写像 f:V⊇→W が部分可逆〈partially invertible〉とは、部分逆写像〈partial inverse map〉g:W⊇→V を持つことです。より詳しくは:
- img(f) = def(g) かつ img(g) = def(f)
- gf = iddef(f)
- fg = iddef(g)
fが部分可逆のとき、fの部分逆写像を、通常の(全域的)逆写像と同じ記号 f-1 で表すことにします。
部分可逆写像を部分同型写像〈partial isomorphism〉とも呼びます。部分同型写像が同型写像であるとは限りません。圏ParSmoothNVSのなかで、部分同型写像の全体を次の記号で表します。
- ParSmoothNVSparIso(V, W) = ParIsoC∞(V⊇, W) = {f:V⊇→W | fは部分同型写像}
- ParSmoothNVSVparIso(X, W) = ParIsoC∞V(X, W) = {f:V⊇→W | def(f) = X かつ fは部分同型写像}
ParIsoC∞(V⊇, W), ParIsoC∞V(X, W) は空になることもあります。例えば、ParIsoC∞R((0, 1), R2) は空集合です。部分なめらか写像の定義域は開集合であることを思い出してください。
内部ホム・ノルムベクトル空間 [V, W] において、“逆”を対応させる写像を定義します。 は次の性質を持つ部分写像です。
- f:V→W in CLinNVS が可逆なら、
と 、 に関して次が成立します。
の逆写像を とすると:
射(部分なめらか写像)に対する通常の演算と、内部ホム・ノルムベクトル空間の要素に対する線形内部演算の対応を再度まとめると:
通常 | 線形内部 | |
---|---|---|
適用 | ||
結合 | ||
逆 |
通常の(外部の)演算と線形内部演算の関係も、もう一度書いておきます。
応用: 部分逆写像の微分公式
f:V⊇X→W, g:W⊇Y→V が互いに部分逆であるとします。つまり、次が成立しています。
このとき、fの微分(導関数)とgの微分(導関数)には次の関係があります -- 部分逆写像の微分公式〈differentiation formula of partial inverse map〉です。
ここで注意! 射の逆 と線形内部逆 を区別しないで、 と書いていると、 と変形してしまい、ワケが分からなくなったりします。 の意味は:
つまり、次が成立します。
と は、レベルが違い(外部と線形内部)単項演算子としてまったく違った挙動をします。今述べたような間違い/勘違いが起きてしまうのが、省略やオーバーロードの危険性です。十分に慣れるまでは、省略やオーバーロードを避けるのが無難です。
さて、部分逆写像の微分公式を示しましょう。この節冒頭の等式の両辺を微分して変形します。
a∈X, b∈Y での値を取ると:
特に、b = f(a), a = g(b) のときは、
つまり、
- と は互いに線形内部の意味で逆
- と は互いに線形内部の意味で逆
これらの等式は、任意の a∈X, b∈Y に対して成立するので、次が成立します。
まだ微分公式は残っているんだが
まだ、述べてない微分公式に次のものがあります。
今回は微分公式が主題なので、これらの微分公式も述べる予定だったのですが、息切れしました。
フレシェ微分の定義に従って、これらの微分公式を証明していくのは難しくはありませんが、基本となる微分公式を公理系として抽出して、他の微分公式達を公理系から示していくほうが、事情がハッキリするでしょう。例えば、ライプニッツ法則は、双線形写像の微分公式とチェーン法則から出ます。双線形写像の微分公式は、もっと基本的な公理から出ます。
微分計算の公理的定式化としては、ヤコビ微分圏(次節)がふさわしいだろうと思っています。
補足と展望: ヤコビ微分圏
2017年に次の記事を書きました。
ヤコビ微分圏〈Jacobian differential category〉は、デカルト微分圏(「コンピュータ科学や組み合わせ論を“微分幾何”とみなす:CADGの夢」参照)よりも、通常の微分計算に近い計算体系を目指したものです。「はじまり」の記事を書いただけで、「続き」が全然ありません。
でも、ヤコビ微分圏のことをまったく忘れたわけではなくて、折に触れて考えています。基本的なアイディアや方針は、2017年時点とほとんど変わっていません。ヤコビ微分圏は、具体的に構成するものではなくて、公理的に定義される構造付きの圏です。その構造により、微分計算をサポートする心づもりです。
ノルムベクトル空間のあいだの部分なめらか写像の圏は、ヤコビ微分圏の実例を意識しています。今回扱った(具体的な)圏は、部分写像を使って定式化していますが。部分写像の扱いはちょっと煩雑でギゴチないですね。部分逆とかは、だいぶゴタゴタしてます。部分写像より全域写像を中心にしたほうが、スッキリする気がします*5。ヤコビ微分圏の(公理的な)定義も、全域写像に相当する射を中心にするのが良さそうです。
今回取り残してしまった微分公式(前節参照)について、もし述べる機会があるのなら、ヤコビ微分圏の枠内で論じることになるでしょう -- いつになるかは分からんけど。
[追記]ヤコビ微分圏に関する記事:
[/追記]
*1:hom(V, W) := [V, W] と定義すると、ノルムベクトル空間と有界線形写像〈連続線形写像〉の圏は、自分自身で豊饒化された圏になります。しかし、ノルムベクトル空間のテンソル積を構成するのが難しいので、豊饒圏としては扱いません。
*2:親の圏と同じ対象類を持つ部分圏は、広い部分圏({broad, wide} subcategory)といいます。広い部分圏の話は「包含付き圏:対象を集合っぽく扱うために」とか「骨格的な圏と圏の骨格」にあります。
*3:はカリー化です。f:V→W を f:1×V→W とみなして右カリー化すれば、1→[V, W] という射が得られます。これを [V, W] の要素とみなしたものがです。