すべては対数である
(alexkritchevsky.com)- 対数を数値関数ではなく、底を持たない対数という抽象的な対象の比として見ると、(\log_b N = \log N / \log b) は単位変換のように読める
- (\log 2) は bits、(\log e) は nats のような測定単位になり、底の変換公式は同じ量を別の単位で書く過程に似ている
- (p)-adic valuation、零点・極の位数、微分による成分抽出は、いずれも 対数成分への射影 のように解釈できる
- ベクトルを移動演算子の対数として、次元を有限体上のベクトル空間の大きさの対数として、基底を対数が返す対象として見る、さまざまな対応が続く
- 議論全体は厳密な統一定理というより、記法と構造の重複 をたどる探索であり、座標と単位を分離する数学的視点がこうしたパターンを整理できる
底を持たない対数と単位変換
- 一般的な対数は (\log_b x) のように底 (b) を明示し、(b^y=x) の解を表す
- 底の変換公式 (\log_b x = \log_a x / \log_a b) は 単位変換 に似たものとして解釈できる
- (2 \text{ km} = 2000 \text{ m} / (1000 \text{ m}/1 \text{ km})) と同じ構造である
- 「(x) の中に (b) がいくつ入っているか」は、「(x) の中の (a) の個数」を「(b) の中の (a) の個数」で割った値とみなせる
- (\log N) を数ではなく 抽象的対象 として置くと、底付きの対数は2つの底なし対数の比になる
- (\log_2 N = \log N / \log 2)
- (\log 2) は「bits」という単位のように扱う
- (\log e) は「nats」という単位のように扱う
- この観点では (\log N) 自体は直接の数値的意味を持たず、(\log b) で割ったときに特定の単位での数値になる
- 底を持たない指数 ((*)^{\log N}) のような対応物は、意味のある形にはできないと考える
- 既存の (\log_b N) は (\log N) と (\log b) という2つの単位なし対象の比として整理される
対数とベクトルの類似性
- 座標を持たない 幾何学的ベクトル と、特定の座標系における座標ベクトルを区別するように、(\log N) も特定の底を選ぶ前の対象とみなせる
- ベクトル (\mathbf{v}) を基準ベクトル (\mathbf{x}) で割って成分を測る非標準的な表記と、(\log N / \log 2) で bits 単位の値を得る方法は同じ構造を持つ
- (\mathbf{v}/\mathbf{x}=v_x)
- (\log N / \log 2=\log_2 N)
- 同じ対数を異なる単位で書く式は、同じベクトルを異なる基底で書く式に対応する
- (\log N = \log_2(N)\text{ bits} = \ln(N)\text{ nats})
- (\mathbf{v}=v_x\mathbf{x}=v_{x'}\mathbf{x'})
- 底の変換公式はベクトルの 座標変換 と同じ役割を果たす
- (\log_2 N = \log_2(e)\ln N)
- (v_x = (\mathbf{x'}/\mathbf{x})v_{x'})
対数成分を抽出する演算
- 一般の対数には、偏微分のように特定の成分だけを取り出す 部分射影 の記法がない
- (N=2^a3^b) のとき (\log N/\log 2 = a + b\log_2 3) のように全体が1つの単位で測定される
- (\log 2) 成分と (\log 3) 成分を別々に抽出する標準的な対数記法はない
- 数論の p-adic valuation は、自然数の素因数分解における (\log p) 成分の係数を取り出す演算のように解釈できる
- (\log n = n_2\log2+n_3\log3+n_5\log5+\cdots)
- (\nu_p(n)=n_p)
- (\nu_p(m/n)=\nu_p(m)-\nu_p(n)) のような対数的恒等式も保たれる
- 有理数や根号を含む数まで拡張すると係数は整数または有理数となり、結果として得られる対象は実際のベクトル空間により近づく
- 複素解析における零点または極の位数も、似た 対数比の極限 として表せる
- (\text{ord}a f(z)=\lim{z\to a}\log f(z)/\log(z-a))
- ローラン級数で最も支配的な項の次数を抽出する
- (p)-adic valuation、偏微分、複素解析における位数抽出は互いに似ているが、これらを束ねる統一理論はまだ明確ではない
ベクトルも対数と見なせる場合
- 微分幾何ではベクトルは偏微分演算子の基底として使われ、これを指数化すると 移動演算子 になる
- (T^{\mathbf{v}}=e^{v_x\partial_x+v_y\partial_y})
- (e^{v_x\partial_x+v_y\partial_y}f(x,y)=f(x+v_x,y+v_y))
- 平坦な空間では移動演算子は座標ごとの移動の積に分解される
- (T^{\mathbf{v}}=T_x^{v_x}T_y^{v_y})
- 非平坦空間では異なる座標の移動が可換でないことがあり、より複雑になる
- このときベクトルは移動演算子の対数として表現できる
- (\ln T^{\mathbf{v}}=v_x\partial_x+v_y\partial_y)
- 自然対数の底 (e) に依存するより、一般的な移動の底 (T) を置いて (\mathbf{v}=\log_T T^{\mathbf{v}}) のように書くほうが適切に見える
- 一般の乗法も (\ln a) 座標での移動と見なせるが、この解釈が実際に有用かどうかは明らかでない
対数と導関数の関係
- 自然対数は (\ln x=\lim_{a\to0}(x^a-1)/a) と定義できる
- (x^a=e^{a\ln x}) をテイラー展開すると (\ln x) が現れる
- ((1+x)) を代入すると (\ln(1+x)) のテイラー級数が再現される
- (x-\frac12x^2+\frac13x^3-\cdots)
- この式は導関数のように見え、(\ln x=\partial_y x^y|_{y=0}) と書ける
- (\ln x) は多くの面で (x^0) のように振る舞う
- (\ln x\sim (x^0-1)/0)
- 形式的には (\partial_x\ln x=\partial_x((x^0-1)/0)=1/x) のように見える
- この部分は記事内の他の議論と直接は結びつかないが、対数を (x^0) 近傍での一次変化として見る視点を加えている
次元は対数のように振る舞う
- 有限次元ベクトル空間では (\dim_K) は対数に似た恒等式を持つ
- (\dim_K K^n=n)
- (\dim_K(U\oplus V)=\dim_KU+\dim_KV)
- (\dim_K(U/V)=\dim_KU-\dim_KV)
- (\dim_K(U\otimes V)=\dim_KU\times\dim_KV)
- 有限体 (K) 上の有限次元ベクトル空間 (V\simeq K^n) では、大きさと次元の間に実際の対数関係が成り立つ
- ベクトルは基底の各要素に (K) の係数を割り当てる関数とみなせる
- (|V|=|K|^{\dim_K V})
- したがって (\dim_K V=\log_{|K|}|V|)
- 無限次元や無限体ではこの解釈はあまり堅固ではなく、cardinality の代わりに numerosity) のような別の大きさ概念が必要かもしれない
- 底を持たない次元表記を使うと (\dim K^n=n\dim K)、(\dim_K V=\dim V/\dim K) のように表される
- テンソル積では単純に次元を掛けると (\dim K) がもう一度現れるため、(K) に関するテンソル積 (\otimes_K) がスカラー係数での商を通じてその因子を取り除くと解釈する
基底と span を対数と指数のように見る
- 次元が基底の cardinality であるなら、対数は cardinality ではなく 基底そのもの を返すと考えられる
- (V\simeq K^3) の基底が ((\mathbf{x},\mathbf{y},\mathbf{z})) なら、(\log_K V=(\mathbf{x},\mathbf{y},\mathbf{z})) のように書ける
- (\dim_KV=|\log_KV|)
- 特定の基底を1つ選ぶ問題があるため、(\log_KV) は (V) の可能なすべての基底をまとめて指す対象と見るほうが適切かもしれない
- 任意の基準フレーム (X_0) と (\Lambda\in GL(V)) に対して (X={\Lambda X_0\mid \Lambda\in GL(V)})
- この対象は (GL(V))-torsor とみなせる
- 対数の逆向きの演算は、基底からベクトル空間を復元する span と解釈される
- (\span_K(X)=K^X=V)
- この解釈は記法の乱用が多く、最善かどうかは確かでないが、(\dim) と (\span) を線形代数における (\log) と (\exp) の類似物として考えさせる
- 底を持たない対数の観点からは、(\log K) 自体を「(K) の基底」のように解釈する可能性もあるが、この点はより抽象的な今後の議論に委ねられる
関数と対数の関係についての推測
- 算術演算を集合演算へ持ち上げる手続きを、「setification」に近いものとして扱う
- 自然数の加算、乗算、冪乗はそれぞれ集合の直和、積、関数集合に対応する
- 有限集合では cardinality がこれらの演算をうまく保存する
- たとえば (A={a,b})、(X={x,y}) のとき、((a+b)^{x+y}) を展開すると (X\to A) の関数4個を項として列挙できる
- (a^xb^y) は (x\mapsto a)、(y\mapsto b) である関数のように解釈される
- 変数の一部を (0) や (1) に置くと、関数の評価や制限のように振る舞う
- 階乗や組合せも同様の仕方で、順列や組合せを項として列挙できる
- 通常、関数 (f:X\to A) は関係 ({(x,f(x))\mid x\in X}) としてモデル化されるが、(a^xb^y) 自体は1つの関数なので cardinality は 1 である
- (\log f ? x\log a+y\log b) は関数の関係表現に似ているが、この部分はまだ説明が十分に整理されていない
一般共変性と結論
- 議論全体は、対数を乗法的表現を加法的表現へ変換する 同型 とみなす単純な場合に焦点を当てている
- 複素対数や行列対数のような、より複雑な場合は議論の対象外である
- (\dim)、(\nu_p)、全微分のような複数の数学的演算が、対数と同一または近い構造を持つ
- こうしたつながりには「numerology」に近い側面もあるが、あまりに整っていて無視しがたい、という立場を取る
- 物理学の数学、とりわけ量子力学の演算子形式にも似た構造が現れ、物理学は数学的記法や座標選択に制約を与える
- general covariance とは、対象の性質が座標選択から独立であるべきだという考えであり、底を持たない対数も、乗法的表現と加法的表現の同型を単位選択から切り離そうとする一例とみなせる
1件のコメント
Hacker Newsの意見
ここでいう底のない対数は、単に torsor のことだ [0]
位置、通貨の価値、暦の日付のようなものも torsor と見なせる。値そのものは恣意的で、ある値だけ平行移動したりスケールを変えたりしても、機能的には変わらない。torsor を使えば、そうした恣意的な選択をあらかじめせずに対象を語れる
底のない対数では、土台となる集合は「情報の単位」だ。log 2 はビット、log e は nat、log 10 は digit という具合で、変換係数が torsor の群を成す。特定の単位を特別に選ぶことは、torsor を自明化するにすぎない
ベクトル除算の記法も、長さの単位とまったく同じやり方で g-torsor をエンコードしている
これまでの例はすべてアーベル群の torsor だが、位置を指定するには原点と長さの単位の両方を選ばなければならない。この torsor の群は、平行移動とスケーリングの適切な半直積なので非アーベル群になる
たいていは自明化を暗黙に選んで使っているため、対象とその対象に対する演算を同一視する混乱が生じる。たとえば、ベクトルを位置として見ることと平行移動として見ることを混同してしまう。筆者の幾何代数の問題に関する記事 [1] でもこの点が扱われている
[0]:https://math.ucr.edu/home/baez/torsors.html
[1]:https://alexkritchevsky.com/2024/02/28/geometric-algebra.htm...
残念ながら数学には、一般的な単語を本来の意味と何の関係もない概念名として再利用する長い伝統がある。そのため、些細な事実を述べているだけの数学書や論文でも、その細分野の専門用語に慣れていないと文章が不透明になる
ここにある別のコメントで、私の底付き対数を「GL(V)-torsor」と表現していたが、それは私が手で無理やり言い換えていたものよりずっと簡潔だった
用語は別として、対数をそういうふうに考えたことはなかったので興味深かった
対数はすごい。以前、1920年代の数学教科書を見始めたのだが、あらゆる計算が表形式の対数に依存していた。数を表から対数に変換して演算の次数を下げ、それから通常の表現に戻すというやり方だ
立方根を求めるような演算も除算にまで落とせるし、log-log に変えればさらに減算にまで落としてから元の表記に復元できる。手でやってみると、魔法のワームホールを使っているような気分で本当にすごい
試験中に1、2回くらい対数表が必要になる問題が出た。たとえば除算は lookup(a)-lookup(b) に変えて、その値を逆対数、つまり exp 表で再び探すという具合だ
Charles Petzold の The Lost Art of Logarithms は読みやすい。まだ執筆中の作品だ
https://www.lostartoflogarithms.com/
同じアイデアは物理学にも現れる。量子物理では作用 S が振幅 e^iS/(h^bar) の背後にある対数のような量として現れる
統計力学ではエントロピーは可能な微視的状態数 Omega の対数だ: S = log(Omega)
異なる物理分野から出てきた概念だが、どちらも乗法的関係を加法的関係に変えるために対数を使うという同じ原理を反映している
「底のない対数
log(N)があるなら、『底のない指数』もあるのか?」という問いに対しては、素朴な代数では可能と言える。log(x,base)からbaseを取り除けるなら、pow(base,x)でもbaseを取り除ける。bits=log(2)なのでpow(bits)=2になる。積分のような逆向きの概念とも結びつけられそうだ。遊びで記法いじりをしてみると:
log(freq) = pitchfreq = pow(pitch)octave = log(2)400*Hz = 100*Hz*4 // 400 Hz の周波数は 100 Hz の 4 倍log(400*Hz) = log(100*Hz) + log(4)log(400*Hz) = log(100*Hz) + 2*log(2)log(400*Hz) = log(100*Hz) + 2*octavelog(400*Hz) = log(100*Hz) + 2*octave // 400 Hz の音高は 100 Hz より 2 オクターブ上cent = log(2)/1200A4 = log(440*Hz)B4 = A4 + 200*cent // B4 の音高は A4 より 200 セント上B4 = log(440*Hz) + 200*log(2)/1200B4 = log(440*Hz) + log(2^(2/12))B4 = log(440*Hz * 2^(2/12))pow(B4) = 493.883 Hz // B4 の周波数は 493.883 Hz底のない対数記法が与える直感が気に入っているし、特定の基準点を選ぶ必要も避けられる。任意の底を選んで直接計算することもできる:
pow(log(440*Hz) + 200*log(2)/1200)exp(ln(440) + 200*ln(2)/1200)これを使えば デシベル にも実際の単位を与えられそうだ。
dB_P = log(10)/10dB_F = log(10)/20log(10*V) = log(V) + 20*dB_F // 10 V のレベルは 1 V の電力レベルより 20 dB 高いSPL = 20*10^-6 * Pahearing_damage = log(SPL) + 90*dB_F // 聴覚損傷は SPL を 90 dB_F 上回るところで発生する(A-weighting は無視)pow(hearing_damage) = pow(log(SPL) + 90*dB_F))pow(hearing_damage) = pow(log(SPL) + 90*log(10)/20))pow(hearing_damage) = SPL*pow(90*log(10)/20))pow(hearing_damage) = SPL*31622.7766 // 聴覚損傷圧は SPL の 31622 倍超pow(hearing_damage) = 0.632455532 Pa // 聴覚損傷圧は 0.632 Pa 超本当に便利だ。デシベル接尾辞のばかげた一覧を、統一的な記法にまとめられると想像できる。まず対数を書けば、
+や-の位置もそのまま維持される。log(reference_unit) + value*dB_F (or dB_P)log(reference_unit) - value*dB_F (or dB_P)https://en.wikipedia.org/wiki/Decibel#List_of_suffixes
そう。指数化を単に カリー化 して、それを底のないべき乗と呼べばよさそうだ。きれいな記法は見つけられていない。
この文章には 型システム が必要だ。「log」と書くたびに、それが何の対数なのか、どこへ向かう対数なのかを言うべきだ。
これは、オーディオで人々が「dB」とだけ言って、次の質問に答えたかのように振る舞うのと似ている。何に対する値なのか、どう測定したのか、誰向けに重み付けしたのかが抜けている。
筆者は https://en.wikipedia.org/wiki/Lie_theory を見直すべきだ。
記事で非公式ながらある程度十分に展開されているように、底の変換公式は、底の選択がたいてい重要でないことを示している。異なる底の対数は定数倍まで同等だ。
expのテイラー展開は、指数関数に対してより内在的で一般的な定義を与える。したがって、適切な収束条件が満たされれば、expをさまざまな代数的環境へ構造的に一般化できる。たとえば複素指数とそれに対応する複数の対数、行列指数などがある。0dBでは何が起きるのか?複素対数 で起きていることは、ベクトル空間の取りうるすべての基底集合を出力する対数と本質的に同じに見える。
複素対数は Z-torsor を作り、基底対数は GL(V)-torsor を作る。分岐切断を選ぶことを複素対数の底選択の一部として表現する方法がありそうで、同様に特定の基底を選ぶこともベクトル空間基底対数の底選択の一部と見なせそうだ。
「底のない対数」という用語は本当に意味をなしておらず、使うと大きな誤りになる。
それでも原文の筆者が正しいのは、対数が長さ・面積・体積のような一つの物理量であり、いわゆる「底」を選ぶことは対数の測定単位を選ぶことだ、という点である。
対数は多くの導出物理量の次元式に含まれる。たとえば波が伝播するときの減衰や増幅を説明するには、長さ当たりの対数、時間当たりの対数といった量を使う。
対数の「底」を変えると、あらゆる導出物理量の数値は、長さや時間のような基本測定単位を変えたときとまったく同じ仕方で変化する。
どんな物理量でも、対数の完全な値は測定単位から独立している。数値と測定単位の積だからである。測定単位を変えると数値と単位がともに変わり、積はそのまま保たれる。つまり、どの底で数値を計算しても、対数は同じ比率に対応する。
今日では対数の単位は通常、オクターブ(二進対数)、ネーパー(双曲対数)、ベル(常用対数)のいずれかから選ぶ。
対数の測定単位は底そのものではなく、底の対数である。したがって、たとえば双曲対数の底である数
eの値はどんな計算にも不要である。必要なのはln 2またはその逆数であるlog2 eだけで、これは二進対数と双曲対数(いわゆる自然対数だが、双曲対数が他の対数より「自然」であるわけではない)に対応する測定単位の間で対数値を変換するために使われる。d(logₐx)/dx = 1/(x log(a))
底のない対数とは、似た性質をもつ関数の族にすぎない。筆者が「底のない対数」より「対数的性質」のような言い方をしていれば、より明確だったかもしれないが、それは揚げ足取りに近く、論争的である。
底を変えると数が変わるという話については、高度な線形代数、あるいはもっと具体的には テンソル を学んだことがあるのか気になる。テンソルの核心は、基底に依らず対象に同じ仕方で作用することにある。言い換えれば、a と b が異なる基底で同じ対象を表しているなら、T(x) がテンソルであるとき T(a) と T(b) は等価である。
要点は、どんな数も恣意的な選択であり、それ自体が基盤となる構造を定義するわけではないということだ。ここで筆者が語っているのは 対数構造 である。
だからこそ線形代数では異なる基底とその変換を学ぶ。何らかの意味で、高校で学ぶ極座標とデカルト座標も同じである。構造を学ぶための準備なのである。群に進めば、群 A と B が同型なら同じ数学的構造をもつことを学ぶ。
数が変わってもそうだという意味である。
一般の対数を「based」と呼んでいたのが信じられない。
これらすべてが実際に新しい数学的事実を示す助けになるのなら、ずっと面白かっただろう。今のところ 記法遊び に近い。
これがまさにこの文章だと言いたいわけではないが、今の私たちが置かれている状況は、事実が多すぎる一方で、それらを有用でアクセスしやすくする単純な見方が不足している、という側に近いと思う。
もちろん個人的な考えではある。
そうしたパターンを公開すれば、思考過程を分散できる。別の誰かが洞察を見いだすかもしれない。