LoginSignup
16
17

More than 3 years have passed since last update.

機械学習で用いる尺度を整理した① (Abs、Norm、Coding)

Last updated at Posted at 2021-03-30

0. 概要

機械学習では活性化関数や損失関数で計算処理を行う際に、1次処理として変数を様々な尺度(絶対値など)へ変換することが多い。今回はその変換方法の一部を整理した。

他の記事:
機械学習で用いる行列の単語を整理した①(固有値、直行行列、正規直交基底等)
機械学習で用いる行列の単語を整理した② (分散共分散行列、相関行列)

1. Absolute

definition

実数xの絶対値は、その符号を無視して得られる非負の値を言う。ABSとも略される。

|x|

example

+x = |x| = -x \\
|3| = 3 \\
|-3| = 3 \\
|0| = 0 \\

2. Norm

definition

平面あるいは空間における幾何学的ベクトルの長さを一般化したもの。約まるところ、長さ。
場合によっては絶対値や賦値(附値、付値)と呼ばれることもある。

||v||

総和ノルム (L1 Norm)

各次元/変数の値の絶対値の和である。すなわち、マンハッタン距離。

||x||_{1} := \left| x_{1}\right|+\ldots +\left| x_{n}\right|

ユークリッドノルム (L2 Norm)

ユークリッド距離のことであり、ピタゴラスの定理によって与えられる。ピタゴラス軽量ともいう。

||x||_{2} := \sqrt {\left| x_{1}\right| ^{2}+\ldots +\left| x_{n}\right| ^{2}}

ユークリッドノルム (直積空間)

距離空間、すなわちノルム空間 $(X, |\bullet|_x)$ 及び $(Y, |\bullet|_y)$が与えられたとき、直積集合$X \times Y$は以下となる。

||(x, y)|| := \sqrt {||x||_{X}^{2}+\ldots +||y||_{Y}^{2}} \quad \quad (x\in X, y\in Y)

最大値ノルム (L∞ Norm)

\left\| x\right\| _{\infty } := {\rm max}({\left| x_{1}\right|, \ldots ,\left| x_{n}\right|})

p次平均ノルム

\left\| x\right\| _{p} :=
\left( \sum ^{n}_{i=1}\left| x_{i}\right| ^{p}\right) ^{\dfrac {1}{p}}
= \sqrt [p]{\left| x_{1}\right| ^{p}+\ldots +\left| x_{n}\right| ^{p}}
\quad \quad \{p, \quad {\rm if}(1 \leq p < \inf)

Super scriptとSubscript

上付き文字、下付き文字の違いは以下である。

  • Subscript
\left\| x\right\| _{p} :=
\left( \sum ^{n}_{i=1}\left| x_{i}\right| ^{p}\right) ^{\dfrac {1}{p}}
  • Super scriptとSubscript
\left\| x\right\|^{p}_{p} := \sum ^{n}_{i=1}\left| x_{i}\right|^{p}

ようは、$p=2$の場合はルートを取る必要がなくなる。

3. Coding

definition

符号化、量子化等を用い局所特徴量を抽出して、少ない特徴から元の入力を再構築するコーディングについて説明する。
こちらも、重要な特徴と重要ではない特徴をある尺度に置きなおしていると考えられる。

Sparse coding

スパースコーディングは観測信号$x$を、辞書と呼ばれる$m$個の基底ベクトル$\bf{D}=\left[ d_{1}, d_{2}, \ldots, d_{m}\right]$及びスパースな重み$\bf{W}$を用いて線形結合することにより復元する符号化手法である。

y \simeq \bf{DW} 

辞書$D$はデータから最適化計算を通して構築する。学習データの個数を$n$、学習データを$\bf{X}=\left[ x_{1}, x_{2}, \ldots, x_{n}\right]$、スパースな重みを$\bf{W}=\left[ w_{1}, w_{2}, \ldots, w_{n}\right]$とした時、損失関数は以下のようになる。

\bf{W}_{t} = {\rm arg} \min_{\bf{W}} \dfrac{1}{2} ||\bf{x}-\bf{D_{t-1}W}||^{2}_{2} + \lambda||W||_{1}

これは$\bf{W}$の更新式であり、通常、この後に$\bf{D}_{t}$の最適化も行われる。右項がスパースの制約項である。
制約項なので、オッカムの剃刀的な働きをしている。すなわち、より少ない加工($\bf{W}$)で最適化を行えという制約である。

Hard-assignment coding

ハードのため、重み係数はOne-hot vectorとなる。
変数はSparse codingの説明に同じ。

w_{ij} = 
\begin{cases}
1 \quad {\rm if} \quad j = {\rm arg} \min_{j=1, \ldots, n} || x_i - d_j ||^{2}_{2} {\rm ,}\\
0 \quad {\rm otherwise}.
\end{cases}

Soft-assignment coding

ハードだとOne-hotになってしまうため、特徴が鮮明になるものの、曖昧な特徴を見逃してしまう。そこで、Soft-assignmentの出番である。

変数はSparse codingの説明に同じ。

w_{ij} = 
\dfrac
{{\rm exp}(-\beta ||x_i - d_j||^2_2)}
{\sum^{n}_{k=1} {\rm exp}(-\beta ||x_i - d_k||^2_2)}

$\beta$は平滑化の度合いである。
ようは、ある誤差を誤差の総和で割ることで、誤差の比率を求めているだけである。
転じて、ある$x_i$に対して、どの$d_k$が最も関連度が強いかの計算となる。

example

$x_1 = 6$、$\bf{D}=\left[5, 10, 15\right]$、$\beta=0.01$の条件で計算すると以下のようになる。
image.png

なお、$w_{11}$は以下のように計算する。

w_{11} = 
\dfrac
{{\rm exp}(-\beta ||x_i - d_j||^2_2)}
{\sum^{n}_{k=1} {\rm exp}(-\beta ||x_i - d_k||^2_2)}
=
\dfrac
{{\rm exp}(-0.01 ||6 - 5||^2_2)}
{{\rm exp}(-0.01 ||6 - 5||^2_2) + {\rm exp}(-0.01 ||6 - 10||^2_2) + {\rm exp}(-0.01 ||6 - 15||^2_2)}

$\beta=0.1$にすると、平滑化が弱まり以下のようになる。

image.png
$x_1 = 6$は$w_{11}$から$d_1$が最も関連度が高いということである。

16
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
17