世界を動かす技術を、日本語で。

関数はベクトルである (2023)

概要

  • 関数 を無限次元ベクトルとして捉えることで、 線形代数 の手法を幅広い問題へ応用可能。
  • 関数空間 は、加算やスカラー倍などの演算を持つベクトル空間として扱える。
  • 線形演算子 は、有限次元の行列に相当し、関数へ作用する無限次元の変換。
  • この視点は、 画像処理機械学習 など多様な分野で活用される。
  • 直感的な理解を重視し、無限次元空間の厳密な証明は省略。

関数をベクトルとして捉える

  • ベクトル は通常、実数のリスト(例:(\mathbf{v} = \begin{bmatrix}x\y\z\end{bmatrix}))として学ぶ。
  • ベクトル空間には、実数リスト以外にも複素数リストやグラフのサイクルなど多様な例が存在。
  • これらは全て 有限次元 ベクトル空間であり、各ベクトルは長さ(N)のリストとして表現可能。
  • ベクトルは「インデックスから値への写像」としても捉えられる。
  • 次元数を増やすと、ベクトルは 関数 に近づく。

可算無限次元の場合

  • 自然数(\mathbb{N})上の関数をベクトルとみなせば、リストを無限に拡張できる。
  • 例:(\mathbf{v}_i = i)は、(f(x) = x)を表現。

非可算無限次元の場合

  • 実数(\mathbb{R})上の関数は、非可算無限次元となり、リストとして書き下せない。
  • この場合、ベクトルは任意の 関数 そのもの。
  • 関数解析学がこの枠組みの厳密な理論を提供。

関数のベクトル空間

  • ベクトル空間は、ベクトル集合(\mathcal{V})、スカラー体(\mathbb{F})、ゼロベクトル(\mathbf{0})で定義。
    • 通常(\mathbb{F})は(\mathbb{R})や(\mathbb{C})。
  • 加法スカラー倍 の演算規則が必要。
    • 加法:((f + g)[x] = f[x] + g[x])
    • スカラー倍:((\alpha f)[x] = \alpha f[x])
  • 上記定義により、関数の集合はベクトル空間の公理を満たす。

ベクトル空間の公理(例)

  • 加法の可換性:(\mathbf{u} + \mathbf{v} = \mathbf{v} + \mathbf{u})
  • 加法の結合性:((\mathbf{u} + \mathbf{v}) + \mathbf{w} = \mathbf{u} + (\mathbf{v} + \mathbf{w}))
  • ゼロベクトルの存在:(\mathbf{0} + \mathbf{u} = \mathbf{u})
  • 逆元の存在:(\mathbf{u} + (-\mathbf{u}) = \mathbf{0})
  • スカラー倍の単位元:(1\mathbf{u} = \mathbf{u})
  • スカラー倍の結合性:((\alpha\beta)\mathbf{u} = \alpha(\beta\mathbf{u}))
  • 分配法則:(\alpha(\mathbf{u} + \mathbf{v}) = \alpha\mathbf{u} + \alpha\mathbf{v})

関数の標準基底

  • 通常、ベクトルは 標準基底 で表現((\mathbb{R}^2)では(\mathbf{e}_1, \mathbf{e}_2))。
  • 関数空間では、各点(\alpha)に対して(\mathbf{e}_\alpha[x] = 1)((x = \alpha)のとき)、それ以外は0の関数が基底。
  • 任意の関数(f)は、これらの基底関数の線形結合として(理論的には)表現可能。

線形演算子

  • 有限次元ベクトルでは、 行列 が線形変換を表現。
  • 関数空間では、無限次元の行列に相当するものを 線形演算子(Linear Operator) と呼び、(\mathcal{L})で表す。
  • 線形演算子も、線形性(加法・スカラー倍の分配)を満たす。
  • 例:(\mathcal{L}f = f_1\mathbf{f} + f_2\mathbf{g} + f_3\mathbf{h} + \cdots)
  • 直感的には、関数を別の関数へ変換する操作。

応用例と今後の展開

  • この無限次元ベクトルの視点は、 画像圧縮幾何処理曲線近似機械学習 などに応用。
  • Fourier級数やスペクトル定理など、関数空間の解析の基礎となる理論もこの枠組みで理解可能。

まとめ

  • 関数=無限次元ベクトル という発想で、線形代数の手法を関数解析や応用分野へ拡張可能。
  • 線形演算子や基底の概念も、有限次元と同様に扱える。
  • この視点が、現代の画像処理や機械学習の理論的土台を支える。

Hackerたちの意見

当時の議論 https://news.ycombinator.com/item?id=36921446

前の議論で、特に関数について重要な点が抜けてたと思う。一般的に言われるのはハリネズミの概念だけど、無限次元の関数はこの動画の8:00あたりで考えるともっと効果的だよ。https://youtu.be/q8gng_2gn70 あの動画は特別なものじゃないけど、固定点についての直感を育てるのに役立つと思う。次元が平面で関数を表現するために必要な点であって、直交次元についてあまり関係ないって説明するのが大事。特に固定点や非拡張写像に関してね。誰かの直感を育てる助けになればいいな。

すごい!数学のアイデアについて読んで、もっと知りたいって強く思ったのは初めてだ。

球面調和関数から一般メッシュ上の固有関数へのジャンプ、そして選ばれた特定のメッシュの例は、今十年で見た中で一番の数学ジョークかもしれない。

他の人のためにそのジョークを説明してくれない?

TFAのこの脚注に関連してる? >「すべての実関数の集合がヒルベルト空間を形成しないという事実に驚いているなら、あなたはおそらくこの投稿のターゲットオーディエンスではないでしょう。」 動画: https://youtu.be/q8gng_2gn70?t=8m3s ありがとう、https://news.ycombinator.com/item?id=44481933

いいね!変数lとmの値を使えば、化学の軌道が得られるよ。(ここでこのページの数学の少なくとも半分を学んだんだ:理論化学。)

応用量子力学とも呼ばれてるね。

これって逆じゃない?ベクトルは入力空間が離散次元の関数だよ。自然数から実数に行くのが「簡単」だなんて思わないでおこう。実数は魅力的で明白じゃない数学の発見だからね。それに、いくつかの数からすべての自然数(アレフ0)への移行も明白じゃない。だから、基本的にN次元ベクトルを実数上の関数に変換するための二つのアレフの移行があるってことだ。

ベクトルは必ずしも離散的な定義域を持つわけじゃないよ。ベクトル空間の性質を満たすものはすべてベクトルだからね。

ベクトルは抽象的な概念だよね。もし2つの集合と、ベクトル空間の定義を満たす2つの演算があれば、それはベクトル空間になる。で、そのベクトル空間内のベクトル集合の要素を「ベクトル」と呼ぶんだ。ここでの観察は、実数の集合と実値関数の集合、そして実数による関数の加算と乗算の自然な概念がベクトル空間の定義を満たすってこと。結果として、線形代数のすべての結果が実値関数に適用できる。確かに、どんなベクトル空間も関数がベクトルであるベクトル空間と同型であるけど、この記事が話していることとは少し違うね。

ベクトルは、入力空間が離散次元の関数だ。これも 正しい。でも、有限次元の実ベクトルが集合論的関数の特別なケースや、離散有限空間の実関数の特別なケースとして見なせるっていうのは、逆の方が多分役に立つかも。実関数の集合はベクトル空間の構造を持っていて、有限次元でも無限次元でもベクトル空間に関する素晴らしい定理を使えるんだ。まあ、少なくともこの記事は後者の方向についてだね。

読んでいていくつかの疑問が浮かんできたんだけど、答える資格は全然ないな。- 「ファジー」な実数で作業した場合、この構造はどれくらい残るんだろう?うまくいくかな?ここで言う「ファジー」は特定の技術的な意味じゃなくて、誤差や長さのスケールまで定義される数のことを指してる。これは「有限主義」や、機械学習の「自動微分」、物理学の「UVカットオフ」と似てると思う。正確な定義が、どれだけベクトル構造が残るかを決めるんだろうね。明らかな答えは、通常のフーリエ変換のように機能するけど、ローパスフィルターが適用されるってことだと思うけど、これが唯一の答えじゃないかもしれない。- もしこれが可能なら、逆のアナロジーを持っていけるかな?「ファジーベクトル」の相当するものは何だろう?- もし不可能なら、ファジー数に対して「ローパスフィルターが事前に適用されたフーリエ解析」の明らかな終点に到達するための、どんな似たような構造があるんだろう?- 論点はラプラシアンの直交正規化を考慮することでフーリエ解析に至る。線形代数では、SVDは対角化よりも一般的に適用されるけど、関数の「SVD」ってあるのかな?

うーん、たぶん「非線形性」として因数分解されると思う。これは、有限範囲のシステムのクリッピング非線形性に類似した何らかの形のハーモニック歪みとして特徴付けられるかも?もしかしたら、ある領域の有限範囲と別の領域の有限解像度の間に、こういった非線形性がスペクトル応答に与える影響に関して、共役関係が確立できるかもしれないね。

ファジーベクトルってガウス分布のこと?1次元、2次元、3次元、n次元でどうなるか考えてみてる。

  1. 微分方程式や積分方程式を解くための数値的手法は、無限次元の演算子方程式を離散化して生じる代数方程式(ベクトル解)を解くためのアルゴリズムなんだ。これらの手法が機能するかどうかを話すとき、通常はその一貫性や安定性について考えるよ。ここでいくつかの段階があって、まず元の方程式(例えばPDE)の適切さについて話し、その後数学的離散化の収束を見て、最後にこれをコンピュータでプログラムしようとしたときに何が起こるかを調べるんだ。通常、これらのアルゴリズムは数値線形代数の「上に」実装されることが多い。ガウス消去法やさまざまな反復解法が、浮動小数点の丸め誤差の観点から非常に注意深く研究されているからね。このことは「曖昧な」実数についての懸念を包含しているよ。ダブル精度の場合、もし「1.0」が「1メートル」を表すなら、マシンイプシロンは原子スケールになるからね。だから、全体のプロセスは「うまくいく」と考えてもいいかも… 2/3. 君の質問の意味がよくわからないけど… もし「フィルターが事前に適用されたフーリエ解析」をやりたいなら、バンドリミテッド関数の空間の中で作業することになると思うよ。N個のフーリエモードの周りだけ気にするなら、そのモード数を超える操作をするたびに、結果を元のサイズに戻さなきゃいけないね。4. この文脈では、君が興味を持っているのは演算子のSVDだよ。その点で、関与するすべての空間について注意深く考えれば、君の演算子にSVDのさまざまな定義を拡張しようとすることができると思う。少なくとも1つの「演算子SVD」が存在して、広く研究されているはずだよ… 例えば、SVDの変分定義を拡張しようとするのも面白いかも… SVDを計算するためのアルゴリズムも、関数空間でうまく機能すると思うよ。

ディラックデルタとの畳み込みは、f(0)の正確なサンプルを得ることができるし、原則として遅延したデルタ信号の組み合わせとして全信号を構築できるけど、ほとんどの空間では正確なデルタ信号を実現できないから、近似しかできないんだ。その結果、有限の解像度とスペクトルの切り捨てが生じる。だから「事前に適用されたローパスフィルターを使ったフーリエ解析」は、サンプリングされた信号の解析になるよ。フィルターはサンプリングカーネル(デルタ近似器)とDFTの特性によって決まるんだ。でも、サンプリングカーネルが良ければ(これが実際の用語)、これらの曖昧な補間の極限としてfを正確に形成できるよ。「単位の解像度」という用語は、デルタがほとんどの関数空間に存在しない事実に関連していて、代わりに近似しなければならないことを示している。良いサンプリングカーネルは、欠けている(畳み込みの)単位を「解決」するんだ。この用語を、これらの演算子が解像度まで良い単位のように振る舞うという意味でも考えるのが好きだよ。

実数を有理数に置き換えても、ベクトル構造は維持できるよ。もっと量子化されたものが欲しいなら、何かの長さの単位dを選んで、実数を {... -2d, -d, 0, d, 2d,... } に置き換えることができる。この構造は、標準的な加算、減算、乗算の概念を持つ「環」として知られている(ただし、除算の概念はない)。これをRの代わりに使うとベクトル構造は失われるけど、少し一般的な「モジュール」の概念の例にはなるよ。ベクトル空間のための多くの線形代数の結果は、モジュールにも適用されるんだ。> もしそれが不可能なら、曖昧な数に対してどのような類似の構造が「事前に適用されたローパスフィルターを使ったフーリエ解析」の明白な終点に到達できるのか?もしそこにたどり着きたいなら、ほぼそこから始められるよ。すべての実数値関数にローパスフィルターを適用してフーリエ解析を行うと、結果の集合はまだベクトル空間を形成するんだ。ただ、フーリエ変換前に関数を操作してこのベクトル空間に到達する特別な方法は見当たらないけどね。

何を聞きたいのか、ちょっと分からないけど、確かにMLには関数をベクトルとして考える技術があるよね。思いつくのはAnyboostかな。これはブースティングを関数空間での「勾配降下」として捉えていて、各「勾配ステップ」は普通のベクトル(例えばニューラルネットで見るような)じゃなくて、実際には基本分類器に対応する関数なんだ。あと、すごく人気があるのがガウス過程で、これを考える一つの方法は、関数を無限次元のガウスからのサンプルとしてモデル化することだね(少なくともそのうちのいくつかは)。

そうだね、関数空間はベクトル空間の一例だよね。

この前のスレッドも良かったよ:「関数はベクトル」 - 2023年7月(120コメント)

エンジニアリングや信号処理の観点から言うと、無限の列が一般的な関数を近似するって記事に書いてあったよね(スライダーの例を参照)。信号処理の応用では、関数はバンドリミットされると考えられる(または強制される)から、もっと低次の表現(つまりベクトル)が十分なんだ。- バンドリミット関数の部分空間は、完全なL^2空間よりもずっと小さい - 可算な直交基底を持ってる(例えば、シフトされたシンク関数) - 関数は(シンク関数を使って)次のように書ける:x(t) = \sum_{n=-\infty}^{\infty} f(nT) \cdot \text{sinc}\left( \frac{t - nT}{T} \right) - これは、有限次元部分空間で基底(例えばシンク)を使ってベクトルを表現するのに似てる。離散時間信号処理は、音声、SDR、トレーディングデータなどのコンピュータサイエンスの応用に役立つよ。

フル $L_2$ も可算の直交基底を持ってるよ。エルミート関数がその一例ね。

このアイデアは有限要素法(およびDGなどの他のガレルキン法)の核心でもあって、これは物理学や工学で使われる偏微分方程式(PDE)の解を近似するための最も広く普及した方法だと思う。基本的には、次元Nの有限次元関数空間V_Nを定義して、Nを任意の大きさに成長させることができるようにするんだ。PDE(元々は無限次元の関数空間V、例えばH^1で定義されている)を解くのではなく、V_Nの関数だけを扱うように離散化されたものを解くんだ。そうすると、PDEは単に線形システムになり、解くのが簡単になるよ。そして、例えば楕円型PDEの場合、離散問題の解はPDEの真の解(V内)をV_Nに直交投影したものだと証明できる(Céaの補題)。最後に、この投影によって生じる誤差の推定をNの関数として生成できるから、Nが無限大に近づくときにアルゴリズムが真の解に収束するという理論的保証を与えることができるんだ。(この場合のNは、V_Nの基底関数を定義するために使用されるメッシュの頂点数だよ)

著者は素晴らしい教育者でありコンピュータ科学者のようで、彼の仕事には敬意を表します。でも、私が感じるに、無限サイズの行列についてもっと学びたいのに、この記事では何も証明していないし、示していないと思う。彼が書いたことは全く真実じゃなくて、ただのアナロジーで厳密な数学ではないよ。関数はベクトルじゃないけど、有限多項式はベクトルだね、これは明らかだよ。

https://thenumb.at/Functions-are-Vectors/#proofs これは特に面白い証明ではないけど、著者は実数値関数がベクトルであることを証明しているよ。記事の大部分は証明についてではなく、上記の結果がどのように役立つかを示すことに焦点を当てているね。