平均二乗誤差, 分散, L1 正則化, L2  正則化, チェビシェフの不等式などでよくみる「あの積分」の意味

# はじめ
以下のような総和や積分に出くわして, どのような意図なのか理解することができず困惑した方は多いのではないでしょうか. 

```math
\sum_{n}\lvert f_n \rvert^2,\ 
\sum_{n}\lvert f_n \rvert^2p_n,\ 
\int_{\mathbb{R}} \lvert f(x) \rvert^2 dx,  
\int_{\mathbb{R}} \lvert f(x) \rvert^2p(x)dx.  
```

例えば, 平均二乗誤差や分散, $L^2$ 正則化, チェビシェフの不等式のように重要なところで出くわします. しかし, それらではこの積分そのものには特に深入りして説明してくれません. そのせいで計算の目的の理解を妨げられる人も多いと思います. 

結論から言うとこの積分は **$Y$ 軸方向 (縦軸) の重み付き積分** です. 下の図のようにグラフを縦に細分化してそれぞれのブロックに重みを掛けたものの積分の式に変形できます. この記事ではこの式変形の公式を一般化した $r$ 乗でお伝えいたします. 対比として高校で習うブロックを横に並べる積分はここでは$X$ 軸方向の積分と呼びます. 

![Y-axis integration.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/381afc26-e070-0e6e-f5d1-23092e7fc0a1.png)


この式変形の公式を理解することで統計データサイエンスに対する理解の深みが増します. 数学の難しいところは本文で触れません. 統計検定1級程度の知識レベルを対象としています. ぜひ読んでみてください. 


# 事前知識
この記事で述べる公式はかなり広い数理モデルで活用できます. なぜなら, 数学の測度論と呼ばれる分野の公式だからです. 測度論という学問は統一的に積分や確率を論じています. そして, 確率, 長さ, 面積, 体積など何かしらの集合 $A$ を測る尺度を測度という概念で一般化しています[^measure_space]. ここでは確率をイメージしやすくするため $P(A)$ の記号を用いますが, 確率測度以外の測度で同様のことが成り立ちます. さらに, 関数 $f$ の集合 $A$ 上の積分も$\int_{A} f(x)  dP(x)$ で一般化しています. 

この測度や積分の具体例を以下の表でまとめました. ここではこの表の様々な具体例をまとめて記事で述べていると理解してください.

| 例 | 全体集合 $\Omega$ |測度 $P(A)$ (ただし$A\subset\Omega$)[^measure_set] | 積分 $\int_{\Omega} f(x)  dP(x)$ |
|---| --------- | ----------------------- | -------------------------------------- | 
| 1 | $\lbrace 1, 2, 3, ..., N \rbrace$ | $A$ の点の個数      | $\sum^N_{n=1}f_n $ (ただし $f_n=f(n)$) |
| 2 | $\lbrace 1, 2, 3, ..., N\rbrace$   | 事象 $A$ の確率 $P(A)=\sum_{n\in A}p_n $ | $\sum^N_{n=1} f_n  p_n$ (ただし $f_n=f(n)$)  |
| 3 | $\mathbb{R}$           | いわゆる $A$ の長さ[^measure] | $\int_{\mathbb{R}} f(x) dx$   |
| 4 | $\mathbb{R}$           | 事象 $A$ の確率 $P(A)=\int_{A}p(x) dx$ | $\int_{\mathbb{R}} f(x)p(x) dx$   |
| 5 | $\mathbb{R}^2$         | いわゆる $A$ の面積 | $\iint_{\mathbb{R}^2} f(s,t) dsdt$ (ただし$x=(s,t)$) |
| 6 | $\mathbb{R}^3$         | いわゆる $A$ の体積 | $\iiint_{\mathbb{R}^3} f(s,t,u) dsdtdu$ (ただし$x=(s,t,u)$)|

[^measure_space]: 実際には測度 $P$ は完全加法族 $\mathcal{F}$ と呼ばれる集合族上で定義されます. また $A \in \mathcal{F}$ は可測集合と呼びます. 全体集合 $\Omega$, 完全加法族 $\mathcal{F}$ と測度 $P$ の3つ組 $(\Omega, \mathcal{F}, P)$ を測度空間と呼びます. 
[^measure_set]: $A\subset\Omega$ は可測集合です.
[^measure]:厳密には $P$ は実数のルベーグ測度です. 


#  積分をグラフで見ていく
この記事で一番理解が難しいことは $Y$ 軸方向に関数の積分を考えることです. なぜなら, 通常使われる積分である $X$ 軸方向の積分とは積分の向きが異なるためです. なのでこのセクションでは $X$ 軸方向の積分から $Y$ 軸方向の積分への式変形を通してそこの理解を進めていきます. この式変形は関数の積分を $X$ 軸とグラフで囲まれた面積, つまり $XY$ 平面上の図形の面積, として捉えると理解しやすくなります. 

分かりやすくするため, このセクションでは「事前知識」の測度の具体例の表の例３である実数全体の集合 $\mathbb{R}$ 上の連続関数 $y=f(x)$ で考えていきます. 確認すると測度 $P(A)$ は集合 $A \subset \mathbb{R}$ の長さとなります. つまり, 

```math
\int_{\Omega} \lvert f(x) \rvert dP(x)
= \int_{\mathbb{R}} \lvert f(x) \rvert dx. 
```

この $X$ 軸方向の積分を変形して $Y$ 軸方向の積分を導きます. 


##  X 軸方向の積分
まず, 被積分関数 $|f(x)|$ が $X$ 軸からのグラフの高さに対応する関数でもあることを確かめていきます. $x=a$ のときのグラフの高さを表す線分 (下の図の青い線分) は以下のように表せます. 

```math
\{(a, y)|\ |f(a)|>y>0 \} \subset \mathbb{R} \times (0, \infty). 
```

![graph in the xy plane 01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/850b8b9b-b181-694e-9ac1-b543e7d02de7.png)


なので, この集合上で $y$ 軸方向に積分すると青い線分の長さとなり, そしてグラフの高さになります. 

```math
\int_{\{y|\ |f(a)|>y>0 \}} dy = \int^{|f(a)|}_0 dy = |f(a)|. 
```

座標 $a$ はどれでもいいので, 被積分関数 $|f(x)|$ は $X$ 軸の座標 $x$ のときのグラフの高さになります. これを積分に代入すると

```math
\int_{\mathbb{R}} |f(x)| dx
 = \int_{\mathbb{R}} \Big(\int_{\{y|\ |f(x)|>y>0 \}} dy \Big) dx. 
``` 

## グラフの面積
次に,  $X$ 軸方向の積分が $X$ 軸とグラフで囲まれた面積と等しくなることを調べていきます. 前述の右辺の積分範囲は平面上の集合[^measurable]として以下のようになります. 
[^measurable]: 「事前知識」で述べた具体例の範疇ではこの集合は可測関数と呼ばれる関数 $f$ で直積測度空間の可測集合になります. この集合が可測関数 $f$ の単関数近似から得られる矩形集合の和で近似できるためです. 

```math
\{(x, y)|\ x\in \mathbb{R},\ |f(x)|>y>0 \} \subset \mathbb{R} \times (0, \infty). 
```

この集合はグラフの高さを表す直線の $X$ 軸上の軌跡にあたります. つまり, 下の図の青く塗りつぶされた図形にあたります. 

![graph of f in the xy plane.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/6e1265fb-0e83-40aa-5102-54f41d2b3db4.png)


この図形は $X$ 軸とグラフで囲まれた面積そのものです. つまり, 関数 $|f|$ の積分は以下の重積分で表せます. [^Fubini]
[^Fubini]: 「事前知識」で述べた具体例の範疇では領域が可測集合なのでFubiniの定理から積分の順序交換が可能です. 

```math
\int_{\mathbb{R}} |f(x)| dx = \int_{\mathbb{R}} \Big(\int_{\{y |\ |f(x)|>y>0 \}} dy \Big) dx
= \iint_{\{(x,y)|\ |f(x)|>y>0 \}}dxdy. 
```


##  Y 軸方向の積分
さらに $Y$ 軸方向の積分を見ていきます. $y=b$ のときのグラフの幅を表す直線 (下の図の青い直線) は以下のように表せます. 

```math
\{(x, b)|\ |f(x)|>b \} \subset \mathbb{R} \times (0, \infty). 
```

![graph in the xy plane 02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/a2d5048c-acd7-ae81-d315-d62c25ebb217.png)


グラフの幅を表す直線上で積分するとグラフの幅の長さとなり, それは測度 $P$ を用いると以下のような等式が成り立ちます. 

```math
\int_{\{x|\ |f(x)|>b \}} dx=P(\{x|\ |f(x)|>b \}). 
```

$b$ は $0<b<\infty$ の範囲で動き, その範囲を積分すると前述と同様に $X$ 軸とグラフで囲まれた面積となります. 

```math
\iint_{\{(x,y)|\ |f(x)|>y>0 \}}dxdy = \int^{\infty}_0 \Big(\int_{\{x |\ |f(x)|>y \}} dx \Big) dy=\int^{\infty}_0 P(\{x|\ |f(x)|>y\}) dy. 
```


よって $Y$ 軸方向の積分は以下のように表せます. 
 

```math
\int^{\infty}_0 P(\{x|\ |f(x)|>y \}) dy. 
```

## グラフの面積の式変形
最後に以上をまとめると $|f(x)|$ の $X$ 軸方向の積分は $Y$ 軸方向の積分に変形できることが分かります. 

```math
\int_{\mathbb{R}} |f(x)| dP(x)
=\iint_{\{(x, y)|\ |f(x)|>y>0 \}}dxdy
= \int^{\infty}_{0} P(\{x|\ |f(x)|>y \})dy. 
```

左辺が $X$ 軸方向の積分, 途中式でグラフの面積を計算する重積分を通って, 右辺が $Y$ 軸方向の積分になります. 


# Y 軸方向の重み付き積分
$Y$ 軸方向の積分がどのようなものか分かったので, 本題の $r$ 乗の積分 $\int_{\mathbb{R}} |f(x)|^r dx \ (1 \leq r < \infty)$ で考えていきます. その次のセクションにより一般的な積分の形で何なのかを説明したいと思います. 


## 式変形
先ほどの議論と異なる点は被積分関数について考慮する必要がある点です. つまり, $|f(x)|^r$ は $ry^{r-1}$ を $0$ から $|f(x)|$ まで積分した値であるということです. 

```math
|f(x)|^r = \int^{\lvert f(x) \rvert}_0 r y^{r-1} dy. 
```

先ほどの議論は $r=1$のときの $1y^{1-1} \equiv 1$ で計算していました. この等式を用いて先ほどと同様の議論を行うと次のようになります. 
 
```math
\begin{align}
\int_{\mathbb{R}} \lvert f(x) \rvert^r dx
=& \int_{\mathbb{R}} \Bigl( \int^{\lvert f(x) \rvert}_0 r y^{r-1} dy \Bigr) dx  \nonumber \\
=& \int_{\mathbb{R}} \Bigl( \int_{\{y|\ \lvert f(x) \rvert>y>0 \}} r y^{r-1} dy \Bigr) dx \nonumber \\
=& \iint_{\{(x,y) | \ \lvert f(x) \rvert > y > 0 \}} r y^{(r-1)} dxdy \nonumber \\
=& \int^{\infty}_0 \Bigl( \int_{\{x| \ \lvert f(x) \rvert > y \}} r y^{r-1} dx \Bigr) dy \nonumber \\
=& \int^{\infty}_0 r y^{r-1} \Bigl( \int_{\{x| \ \lvert f(x) \rvert > y \}} dx \Bigr) dy \nonumber \\
=& \int^{\infty}_0 r y^{r-1} P(\{x| \ \lvert f(x) \rvert > y \}) dy. \nonumber
\end{align}
```

この積分は重み関数 $ry^{r-1}$ で重みづけた $Y$ 軸方向の重み付き積分と解釈できます. 


## 一般のY軸方向の重み付き積分
一般的に同様の議論で以下の公式が得られます. 

```math
\int_{\Omega} \lvert f(x) \rvert^r dP(x)
= \int^{\infty}_0 r \varepsilon^{r-1} P(\{x|\ \lvert f(x) \rvert> \varepsilon \}) d\varepsilon.
```

統計データサイエンス領域での重要性をより分かりやすくするため, 変数 $y$ を $\varepsilon$ に変えました. 

![Y-axis integration summary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/29115a68-5977-8601-981d-bc053fd51a52.png)

$Y$ 軸方向の重み付き積分は幅 $P(\lbrace x|\ \lvert f(x) \rvert> \varepsilon \rbrace)$ 高さ $d\varepsilon$ の矩形の面積に重み $r\varepsilon^{r-1}$ を掛けて足し合わせるイメージとなります. 


## 重み関数
重み関数 $r\varepsilon^{r-1}$ が$Y$ 軸方向の重み付き積分においてどのような役割を担っているのかを説明します. 

まず, 重み関数 $r\varepsilon^{r-1}$ の $\varepsilon^{r-1}$ の部分は実質的な重みの役割を果たしているとみなせ, $\varepsilon=|f(x)|$ の値がより大きいところでのグラフの幅に対してどれくらいより大きい重みを掛けるかを決めています. 

次に, 重み関数 $r\varepsilon^{r-1}$ の定数 $r$ の役割について考えていきます. 「事前知識」の測度の具体例の表の例１で $N=2$ 考えてみましょう. $Y$ 軸方向の重み付き積分は以下のようになります. 

```math
\int_{\Omega} \lvert f(x) \rvert^r dP(x) = |f_1|^r+|f_2|^r.
```

右辺は平面上の次数 $r$ のミンコフスキー距離の $r$ 乗となっています. このミンコフスキー距離の値を一定にしたまま $r$ の値を変化させてみます.  下の図は次数 $r=1, 2, 4, 8, 16, 32$ でのミンコフスキー距離 $1$ の軌跡, つまり $|f_1|^r+|f_2|^r=1^r$ となる点 $(f_1, f_2)$ の軌跡, になっています. 

![lp norm 02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/eb5f9459-833e-e8eb-9451-15698088fff8.png)

 $r$ を大きくすると同じスケールの正方形に漸近的に近づいている点とどの軌跡でも同じ上下左右の4点を通ってる点が分かると思います. このような意味合いとしてそれぞれで得られた図形のスケールが合っていることが分かると思います[^lp_norm]. もし重み関数 $r\varepsilon^{r-1}$ から $r$ を除外するとこのスケーリングに関する法則性が崩れてしまいます. つまり, 重み関数 $r\varepsilon^{r-1}$ の $r$ の部分はこの値を変化させた時のスケーリングの正規化定数とみなせます. 
[^lp_norm]: 解析学では $L^r$ ノルム $\lVert f \rVert_r=(\int_{\Omega} |f(x)|^r dP(x))^{1/r}$ で考えると様々な場面で整った公式が得られます. 


# 応用例
$Y$ 軸方向の重み付き積分の具体例と公式での応用を説明します. 


## 平均二乗誤差
平均二乗誤差について説明していきます. 重み付き積分に直すと「平均二乗誤差が誤差 $\varepsilon$ について論じていること」がわかりやすくなります. 

説明変数 $x$ と目的変数 $y$ の組の総計 $N$ 個のデータセット $(x_n, y_n)\ (1 \leq n \leq N)$ が得られたとします. そして予測するモデルを $y=f(x)$ とします. このとき, 「事前知識」の測度の具体例の表の例２に対応し, 全体集合 $\Omega$ と測度 $P$ は次のように表せます. 

```math
\Omega = \{1, 2, 3, ..., N \}, \ 
P(A)=\frac{\text{集合} A \text{の点の個数}}{N} \ (A \subset \Omega). 
```

$P$ は標本分布の確率とみなせます. 

```math
\begin{align}
\frac{1}{N} \sum^{N}_{n=1} (f(x_n) -y_n)^2 
=& \sum^{N}_{n=1} (f(x_n) -y_n)^2 \frac{1}{N}   \nonumber \\
=& \sum^{N}_{n=1} (f(x_n) -y_n)^2 P(\{n\})   \nonumber \\
=& \int_{\Omega} \lvert f(x_n) - y_n \rvert^2 dP(n)  \nonumber \\
=& \int^{\infty}_0 2 \varepsilon \ P(\{n|\ \lvert f(x_n)-y_n \rvert> \varepsilon \}) d\varepsilon. \nonumber
\end{align}
```

誤差 $\varepsilon$ に関しての重み付き積分になっています. $P(\lbrace n|\ \lvert f(x_n)-y_n \rvert > \varepsilon \rbrace)$ は予測誤差 $\lvert f(x_n)-y_n \rvert$ が $\varepsilon$ より大きいデータの組 $(x_n,y_n)$ の割合とみなせます. つまり, 平均二乗誤差とはそれに対し重みを付けて積分した式です. 


## 分散
平均二乗誤差と同様のことが分散でも見ることができます. 全体集合 $\Omega=\mathbb{R}$, 確率密度関数 $p(x)$ とします. 測度 $P(A)=\int_{A}p(x)dx$ は 確率となります. つまり, 「事前知識」の測度の具体例の表の例４に対応します. このとき, 平均 $\mu=\int_{\Omega}xp(x)dx$ と表せ, 分散 $\sigma^2$ は以下のように式変形ができます. 

```math
\begin{align}
\sigma^2
=& \int_{\mathbb{R}} (x-\mu)^2 p(x)dx    \nonumber \\
=& \int_{\mathbb{R}} (x-\mu)^2 dP(x)    \nonumber \\
=& \int^{\infty}_0 2 \varepsilon \ P(\{x|\ \lvert x -\mu \rvert> \varepsilon \}) d\varepsilon. \nonumber
\end{align}
```

つまり, 分散は確率変数と平均が誤差より離れる確率に応じて重みを付けて積分した式です. 


## L1正則化とL2正則化
ここでは $L^1$ 正則化と $L^2$ 正則化の性質の違いを説明します. まず,  $L^1$ 正則化と $L^2$ 正則化は機械学習での過学習を防ぐため, 損失関数にモデルのパラメータ $w_n (1 \leq n \leq N)$ に対するペナルティ項を付ける手法です. それぞれの正則化項 $R_1, R_2$ は以下の式で表せます. 

```math
R_1=\sum_{n=1}^N \lvert w_n \rvert ,\ R_2=\sum_{n=1}^N \lvert w_n \rvert^2. 
```

「事前知識」の測度の具体例の表の例1に対応して式変形すると以下のようになります. 

```math
R_1=\int^{\infty}_0 \ P(\{n|\ \lvert w_n \rvert> \varepsilon \}) d\varepsilon  ,\ R_2=\int^{\infty}_0 2 \varepsilon \ P(\{n|\ w_n \rvert> \varepsilon \}) d\varepsilon . 
```

$R_1, R_2$ で式に明確な違いがみられます. それは $R_1$ には重み関数がなく, $R_2$ は重み関数 ($2 \varepsilon$) がある点です. 

重み関数は被積分関数の値の重要度を加味する機能を持ちます. つまり, 重み関数のない$L^1$ 正則化はどのパラメータも等しく扱い, 一定のペナルティを与えます. 逆に $L^2$ 正則化はパラメータに加えるべきペナルティの強さを自身で加味する機能を持ち, 具体的にパラメータの大きさに比例したペナルティを与えます. 

これらのことから「 $L^1$ 正則化は変数選択の効果を持つ」と言われることも説明できます. $L^1$ 正則化はどんな大きい値のパラメータも小さい値のパラメータでも一定のペナルティを与えます. もし損失関数の方から見て重要でないパラメータが存在する場合, 常に一定のペナルティに晒され, パラメータの値が0に近づいていきます. つまり, $L^1$ 正則化は損失関数の都合で正則化し変数選択します. 

逆に $L^2$ 正則化の場合はパラメータの値が小さくなるとペナルティも小さくなり, 損失関数の微弱な抵抗でも影響を受けやすくなります. なので0に近づくとは限りません. つまり, 損失関数の都合と正則化項のペナルティの兼ね合いで正則化します. 

重み関数があるかないかという単純な違いで正則化の効果の違いを説明することができます. 


## チェビシェフの不等式
上の公式を認めるとチェビシェフの不等式が簡単に証明できます. 分散のセクションと同じ記号を用います. 任意の $\delta>0$ に対して

```math
\begin{align}
\sigma^2 &= \int^{\infty}_0 2 \varepsilon \ P(\{x|\ \lvert x -\mu \rvert> \varepsilon \}) d\varepsilon \nonumber \\
& \geq \int^{\delta}_0 2 \varepsilon \ P(\{x|\ \lvert x -\mu \rvert> \varepsilon \}) d\varepsilon \nonumber \\
& \geq \int^{\delta}_0 2 \varepsilon \ P(\{x|\ \lvert x -\mu \rvert> \delta \}) d\varepsilon. \\
\end{align}
```

2つ目の不等式は下の図のように $\varepsilon$ が大きくなるとグラフの幅 $P(\lbrace x|\ \lvert x -\mu \rvert> \varepsilon \rbrace)$ が狭くなること ( $\varepsilon$ に関して広義単調減少であること) を用いています. 

![Comparison of Distribution Functions.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/66cb58ca-c0b4-61df-02f8-712b44cf9bd2.png)

計算を続けると以下のようになります. 

```math
\begin{align}
\int^{\delta}_0 2 \varepsilon \ P(\{x|\ \lvert x -\mu \rvert> \delta \}) d\varepsilon 
&= P(\{x|\ \lvert x -\mu \rvert> \delta \}) \ \int^{\delta}_0 2 \varepsilon d\varepsilon \\
&= P(\{x|\ \lvert x -\mu \rvert> \delta \}) \ \delta^2. 
\end{align}
```

よって, 

```math
P(\{x|\ \lvert x -\mu \rvert> \delta \}) \leq \frac{\sigma^2}{\delta^2}. 
```

チェビシェフの不等式のイメージは下の図のようになります. 

![ Chebyshevs_inequality.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3687236/a60c062a-0d30-b8bc-3ef3-854ec583ecf3.png)

グラフの横幅合わせて $P(\lbrace x|\ \lvert x -\mu \rvert> \delta \rbrace)$, 高さ $\delta$ となる2つの青色の矩形の重み $2 \varepsilon$ の重み付き面積が分散を下から抑えることを表しています.  

# まとめ
関数の絶対値の $r$ 乗を積分しているのは $Y$ 軸方向に重みを掛けたいからということが伝わったと思います. また, 絶対値の中身が何かしらの残差に対応している場合は残差に応じて重みを付けていると考えてください.