公開！週末研究ノート０２　ー　関数ベクトル空間①（理論編）

# はじめに　ー　週末研究ノートとは？

個人的に研究的な活動をやるにあたり、オープンにしてみたら面白いかもと思い、自分が興味を持っている ざっくりテーマについて、これから、ゆるい週末研究を公開していこうと思います。（有識者の方のアドバイスも、ちょっとというかかなり期待してます！笑）

どこかの権威的な学会やジャーナルなどで発表する予定はないため、万が一、私の記事を利用する際には自己責任でお願いします。そんな人はいないと思いますが、念のため。



# 今回のサマリ （TL; DR）

今回は、関数ベクトル空間について、理論的に整理します。
どこまで理論的にOKなのかを把握して、応用につなげるためです。

- 関数ベクトルと普通のベクトルとの関係の整理
- 関数集合がベクトル空間になること
- 関数ベクトル空間の基底
    - $\\{ \frac{1}{\sqrt{2}}, \cos(kx), \sin(kx) \\}_{k \in \mathbb{N}}$ が関数ベクトルの基底になること

極力、計算過程がわかるように記載していきます。

[公開？週末研究ノート ー 関数ベクトル空間②（検証編）](https://qiita.com/tkosht/items/2811876902fff5904a41) もご参照ください。

# 環境

- なし


# 今回の週末研究ノート

## 関数ベクトルと普通のベクトルの関係

普通のベクトル空間として、$n$ 次元実ベクトル空間 $\mathbb{R}^n$ を取り上げます。
$n$ 次元実ベクトル空間の要素 $x\in \mathbb{R}^n$ は、$x = (x_1, ..., x_n)$ として表現されます。

では、関数ベクトルについて考えてみるとどうなるか
実数から実数の関数 $f: \mathbb{R} \rightarrow \mathbb{R}$ について考えます。
言い換えると、$\mathcal{F} := \\{f | f: \mathbb{R} \rightarrow \mathbb{R} \\}$ を空間として考え、ベクトル空間にするにはどうするか、を考えます。

関数 $f$ の実数 $x \in \mathbb{R}$ に対応する次元の成分として、$f(x) \in \mathbb{R}$ を考えると、関数 $f$ は、$f = ( f(x) )_{x \in \mathbb{R}} = ( , ..., f(-0.01)...,f(0), ..., f(0.01), ...,f(1), ..., f(1.01), ... )$
という 濃度 $\aleph$ （アレフ）の成分を持つ 無限次元ベクトルとして表現できそうです。

実際、$\mathcal{F}$ が、実数（体） $\mathbb{R}$ 上のベクトル空間になることを確認します。

$\forall f, \forall g \in \mathcal{F}$ に対して、

```math
\begin{align}
f + g &= (f(x))_{x \in \mathbb{R}} + (g(x))_{x \in \mathbb{R}} \\
      &= (f(x) + g(x))_{x \in \mathbb{R}} ... ☆ \\
      &= ( (f+g)(x))_{x \in \mathbb{R}} ... ★ \\
\end{align}
```
よって、$f+g \in \mathcal{F}$

また、$\forall f \in \mathcal{F}, \forall \alpha \in \mathbb{R}$ に対して、

```math
\begin{align}
\alpha f &= \alpha (f(x))_{x \in \mathbb{R}} \\
         &= (\alpha f(x))_{x \in \mathbb{R}} ... ☆ \\
         &= ((\alpha f)(x))_{x \in \mathbb{R}} ... ★ \\
\end{align}
```
よって、$\alpha f \in \mathcal{F}$

以上により、$\mathcal{F}$ が、要素間の加法とスカラー倍について閉じていることから、$\mathcal{F}$ が、ベクトル空間であることが示されました。

ここで、☆と★　の補足をします。

☆： 選択公理を仮定している点に注意します
　　つまり、無限濃度の次元から、特定の（$x$ に対する）次元を選べることを前提としていることで、成分同志の加算が可能になっている点に注意します

★： 関数上の加算とスカラー倍について、以下のように定義している点に注意します
$\forall f, \forall g \in \mathcal{F}, \alpha \in \mathbb{R}$ に対して、

```math
\begin{align}
(f + g)(x) &:= f(x) + g(x), \forall x \in \mathbb{R} \\
(\alpha f)(x) &:= \alpha f(x), \forall x \in \mathbb{R} \\
\end{align}
```

という、一般的な定義を用いています。


## 関数ベクトル空間の基底

関数の集合に演算や成分を定義すると、無限次元のベクトル空間になることがわかりました。
では、関数ベクトル空間を構成する最低限のベクトル集合、いわゆる基底ベクトルは何か？という点について触れます。

アプローチとしては、関数を級数展開できる関数族（関数を要素とする集合）を探してきて、それらが基底になっているかを確認する、というアプローチをとります。つまり、基底の条件である全域性と線形独立性を満たすものを探すときに、全域性を満たす（級数展開できる）関数族を探してきて、その関数族が線形独立性を満たすかを確認する・示す、という流れをとります。

この週末研究では、フーリエ級数展開を考えます。

ここで、$\mathcal{F}$ を再定義しておきます。

```math
\mathcal{F} := \{ f | \int_{-\pi}^{\pi} |f(x)|dx < \infty \}
```

つまり、$\mathcal{F}$ は、 区間 $(-\pi, \pi)$ でルベーグ可積分である関数の集合とする、ということです。


### フーリエ級数展開

$\forall f \in \mathcal{F}, \forall x \in (-\pi, \pi)$ に対して、

```math
\begin{align}
f(x) &= \frac{a_0}{2} + \sum_{n=1}^{\infty} a_n \cos nx + b_n \sin nx \\
     &= (\frac{a_0}{2} + \sum_{n=1}^{\infty} a_n \cos n + b_n \sin n)(x) \\
\end{align}
```

と級数展開できることが、フーリエ級数展開です。

つまり、関数ベクトル$f$は、

```math
\begin{align}
f &= \frac{a_0}{2} + \sum_{n=1}^{\infty} a_n \cos n + b_n \sin n \\
\end{align}
```
と、関数ベクトル集合 $\\{ 1, \cos n(\cdot), \sin n(\cdot) \\}$ をうまく合成して作ることができることがわかります。（全域性）
※　細かいことを言うと、定数と定数関数を同じ記号で表記しています。 ($\frac{a_0}{2}, \frac{1}{2}$)


右辺に現れる $\\{ 1, \cos(kx), \sin(kx) \\}_{k \in \mathbb{N}}$ が基底になることを確認していきます。上記により、全域性はOKなので、線形独立性を確認します。


### 線形独立性

```math
\begin{align}
a_0 + \sum_{n=1}^{\infty} a_n \cos n + b_n \sin n = 0 \\
\end{align}
```


の時、各係数 $\\{ a_0, a_n, b_n \\}_{n \in \mathbb{N}}$ のすべてが $０$ になることを示します。

関数ベクトルの成分表示を使って表現すると、

```math
\begin{align}
(a_0 + \sum_{n=1}^{\infty} a_n \cos nx + b_n \sin nx)_{x \in \mathbb{R}} = (0)_{x \in \mathbb{R}} \\
\end{align}
```

つまり、$\forall x \in \mathbb{R}$ に対して、

```math
\begin{align}
a_0 + \sum_{n=1}^{\infty} a_n \cos nx + b_n \sin nx = 0 \\
\end{align}
```

が成り立つということである。

まず、両辺の積分をとると

```math
\begin{align}
  & \int_{-\pi}^{\pi} ( a_0 + \sum_{n=1}^{\infty} a_n \cos nx + b_n \sin nx )dx = 0 \\
= & \int_{-\pi}^{\pi} ( a_0 + \sum_{n=1}^{\infty} a_n \cos nx )dx \\
= & a_0*2\pi + \sum_{n=1}^{\infty} a_n [\sin nx]_{-\pi}^{\pi} \\
= & a_0*2\pi + \sum_{n=1}^{\infty} a_n * 0 \\
= & 2 \pi a_0 \\
\therefore a_0 = & 0 \\
\end{align}

```

次に、 $\forall k \in \mathbb{N}$ に対して、$\cos kx$ との積を積分を取る ( $a_0 = 0$ を使う)

```math
\begin{align}
  & \int_{-\pi}^{\pi} \Big( a_0 + \sum_{n=1}^{\infty} a_n \cos nx + b_n \sin nx \Big) \cos kx dx = 0 \\
 =& \sum_{n=1}^{\infty} \Big( a_n  \int_{-\pi}^{\pi} (\cos nx \cos kx )dx + b_n \int_{-\pi}^{\pi} (\sin nx \cos kx )dx \Big) \\
 =& \sum_{n=1}^{\infty} \Big( a_n * \pi \delta_{nk}  + b_n * 0 \Big) \\
 =& \pi a_k \\
\therefore a_k = & 0 \\
\end{align}
```
 
同様に、 $\forall k \in \mathbb{N}$ に対して、$\sin kx$ との積を積分を取る ( $a_0 = 0$ を使う)

```math
\begin{align}
  & \int_{-\pi}^{\pi} \Big( a_0 + \sum_{n=1}^{\infty} a_n \cos nx + b_n \sin nx \Big) \sin kx dx = 0 \\
 =& \sum_{n=1}^{\infty} \Big( a_n  \int_{-\pi}^{\pi} (\cos nx \sin kx )dx + b_n \int_{-\pi}^{\pi} (\sin nx \sin kx )dx \Big) \\
 =& \sum_{n=1}^{\infty} \Big( a_n * 0  + b_n * \pi \delta_{nk} \Big) \\
 =& \pi b_k \\
\therefore b_k = & 0 \\
\end{align}
```

以上により、線形結合が 0 ベクトル （0 関数）のとき、の時、各係数 $\\{ a_0, a_n, b_n \\}_{n \in \mathbb{N}}$ のすべてが ０ になるとわかりました。つまり、線形独立性が成り立ちます。

よって、$\\{ 1, \cos(kx), \sin(kx) \\}_{k \in \mathbb{N}}$ が基底になります。

ここで、上記積分の計算には、以下の性質を用いていたことに注意します。（場合分けをつかって、積和の公式を使って示せます。）

```math
\begin{align}
  & \int_{-\pi}^{\pi} \cos nx \cos kx dx = \pi \delta_{nk} \\
  & \int_{-\pi}^{\pi} \sin nx \sin kx dx = \pi \delta_{nk} \\
  & \int_{-\pi}^{\pi} \cos nx \sin kx dx = 0 \\
\end{align}
```


### 関数ベクトルの正規直交基底

基底 $\\{ \frac{1}{\sqrt{2}}, \cos(kx), \sin(kx) \\}_{k \in \mathbb{N}}$ は、正規直交基底になります。

つまり、関数ベクトル空間上の内積を $\langle \cdot, \cdot \rangle$ とした時、以下が成り立ちます。

$\forall n, \forall k \in \mathbb{N}$ に対して、

```math
\begin{align}
\langle \frac{1}{\sqrt{2}}, \frac{1}{\sqrt{2}} \rangle & = 1 \\
\langle \frac{1}{\sqrt{2}}, \cos nx \rangle & = 0 \\
\langle \frac{1}{\sqrt{2}}, \sin nx \rangle & = 0 \\
\langle \cos nx, \cos kx \rangle & = \delta_{nk} \\
\langle \sin nx, \sin kx \rangle & = \delta_{nk} \\
\langle \cos nx, \sin kx \rangle & = 0 \\
\end{align}
```

つまり、同じ基底の内積が 1, 異なる基底間の内積が 0 になります。




#### （補足）関数ベクトル空間上の内積

ここで、内積 $\langle \cdot, \cdot \rangle$ を以下のように定義します。

$\forall f, \forall g \in \mathcal{F}$ に対して、

```math
\begin{align}
\langle f, g \rangle & := \frac{1}{\pi} \int_{-\pi}^{\pi} f(x)g(x) dx \\
\end{align}
```

この定義は、$n$ 次元実ベクトル空間上の成分をつかった内積の定義 $\langle x, y \rangle := \sum_{k=1}^{n} x_k y_k$ の 無限次元成分への拡張になっています。（となりへの次元との差分を、dx で表現している。）

この定義により、基底 $\\{ \frac{1}{\sqrt{2}}, \cos(kx), \sin(kx) \\}_{k \in \mathbb{N}}$ は、正規直交基底になります。



# まとめ

- 今回は、関数ベクトルについて調査・整理をした
    - $n$ 次元ベクトル空間の無限次元への拡張としての関数ベクトル（成分）
    - 成分による定義によって、関数集合がベクトル空間になる
    - $\\{ \frac{1}{\sqrt{2}}, \cos(kx), \sin(kx) \\}_{k \in \mathbb{N}}$ が、正規直交基底になる
    - つまり、無限濃度 $\aleph$ の成分を持つ無限次元ベクトルが、加算無限個の関数ベクトル基底で表現（近似）できる
        - もっというと、NN/DL を使って関数を分解・近似できるだけでなく、分解した基底自体がベクトルの性質を持つことを意味している（つまり、加法・スカラー倍に意味がある）



# 参考文献

- [Wikipedia　- 基底 (線型代数学)#関数概念](https://ja.wikipedia.org/wiki/%E5%9F%BA%E5%BA%95_(%E7%B7%9A%E5%9E%8B%E4%BB%A3%E6%95%B0%E5%AD%A6)#%E9%96%A2%E9%80%A3%E6%A6%82%E5%BF%B5)
- [ベクトルと関数のおはなし](http://www.natural-science.or.jp/article/20120306220904.php)
- [正規直交系のフーリエ級数を徹底的に解説してみた](https://univ-study.net/fourie-series-of-orthorogy/)