オンライン学習サービス

クロネッカーデルタとは

クロネッカーデルタとは
PCAによる解析結果(赤い矢印:第1主成分方向、青い矢印:第2主成分方向)

📌 行列の乗算

となります.内積の特性には「ベクトル方向の長さを測る」というのがあります.この式はベクトル p を行列 A の正規直交基底ベクトルをつかって成分ごとに長さを測っていることを表しています.例えば,行列 A が回転行列とすると,行列 A は回転された正規直交基底ベクトルの集まりです.これをベクトル p にかけると,回転された座標系でベクトル p を測り直しているわけです.結果的にベクトル p は回転されることになります.一般的に行列 A がベクトル \vec

から \vec

' に 写像 を表しているといいます.

行と列を入れかえた行列を 転置行列 といいます.行列 A の転置行列を <>^tA または A^T と表します.

ある行列 A に別の行列 E を乗算すると A になるとき,行列 E を 単位行列 といいます.これは数字の1に相当します.

AE = A \quad EA = A

行列の乗算で見たとおり,行列の行数と列数によって乗算で得られる行列の行と列の数が異なります.そのため,単位行列は行数と列数が同じ 正方行列 です.正方行列において,左上から右下への対角線上にある成分を 対角成分 といいます.次の行列の場合,対角成分は a_,a_,a_ です.

\delta_ = \begin1 & (i=j)\\0 & (i\neq j)\end

これは クロネッカーのデルタ といいます.この記号は i と j クロネッカーデルタとは クロネッカーデルタとは クロネッカーデルタとは が同じ場合(例えば a_,a_ )に1となり, i と j が異なる場合(例えば a_,a_ )は0になります.これを使うと単位行列は

ある行列 A に別の行列 X を乗算すると単位行列 E になる行列 X を考えます.ちょうど逆数のような働きをします.

\beginap+br = 1\\cp+dr = 0\end \quad \beginaq+bs = 0\\cq+ds = 1\end

p = \frac \quad r = \frac \qquad クロネッカーデルタとは クロネッカーデルタとは q = \frac \quad s = \frac

で与えられます.このような行列を 逆行列 といい,行列 A の逆行列を A^ と表記します.

逆行列は必ず存在するわけではなく,もし ad-bc=0 とすると分母が0になるため,無限大となって逆行列は存在しません.逆行列が存在する行列のことを 正則行列 または 正則 といいます.

「神」はヒルベルト空間に住む

mi(i=0、1、2、…、31)はどれも長さ1であり、「miにとってmiの存在確率は1」であることを意味し、これを<mi|mi>=1と表現します。一方、これら32個の「基底」のうち、異なる2つをmi、mjとすると(i≠j)、miとmjとは必ず第1~5ビットのどれかにおいて、一方は「0」、他方は「1」という矛盾した情報を持っています(第1~5ビットのすべてに矛盾が無ければmi=mjになってしまう)。1つでも矛盾した情報を持っていれば、miの視点に立つ時、同時にmjの視点に立つことはできません。つまり、「miにとってmjの存在確率は0」であり、これを<mi|mj>=0と表現します。i≠jのときmiとmjとは直交しているのだから、ベクトルmiとベクトルmjとの内積<mi|mj>が0だと理解できます。この2つをまとめてこう表記します。
【直交規格化条件】
<mi|mj>=δij〔i=jのとき<mi|mj>=1、i≠jのとき<mi|mj>=0〕
δijは「クロネッカーのデルタ」と呼ばれる記号です。

では、存在し得るすべての心Mxの一般形はどう表されるでしょうか。答は、これら32個の「基底」mi(i=0、1、2、…、31)に特定の重みai(i=0、1、2、…、31)を付けて線形に重ね合わせたものになります。aiは複素数にまで拡張できますが、ここでは実数としておきます。
Mx=a0・m0+a1・m1+a2・m2+ … +a31・m31 クロネッカーデルタとは
=Σ(ai・mi) 〔i=0、1、2、…、31について和を取る〕
重みa0、a1、a2、…、a31は独立して任意の値を取れます。32次元空間内の任意の点をPとし、原点をO=(0、0、0、…、0)とし、Pの座標をP=(a0、a1、a2、…、a31)とすると、MxこそがベクトルOPに対応します。つまり、存在し得る任意の心Mxは、この32次元空間内の点Pに対応するし、逆にこの32次元空間内の任意の点Pは、特定の心Mxに対応します。「神」を「存在し得るすべての心M0、M1、M2、M3、…を要素とする集合」で定義するなら、「神」を「32次元空間内のすべての点の集合」と定義しても良い訳です。

ただ、Mxは特定の心の状態ですから、「MxにとってMxの存在確率は1」すなわち<Mx|Mx>=1は満たしておくべきです。Mx=a0・m0+a1・m1+a2・m2+ … +a31・m31をそのまま使って<Mx|Mx>を計算してみると、こうなります。
<Mx|Mx>=(<a0・m0|+<a1・m1|+<a2・m2|+ … +<a31・m31|)
(|a0・m0>+|a1・m1>+|a2・m2>+ … +|a31・m31>)
=Σ〔i〕Σ〔j〕(ai・aj<mi|mj>)
つまり、ai・aj<mi|mj>を、i=0、1、2、…、31について、かつ、j=0、1、2、…、31について、32^2=1024個すべてを足すことになりますが、i≠jの場合は<mi|mj>=0で無視できるし、i=jのときだけ<mi|mj>=1なので、
=Σ〔i〕(|ai|^2)
=|a0|^2+|a1|^2+|a2|^2+ … +|a31|^2
となります。これを1と定めれば良いことになります。
|a0|^2+|a1|^2+|a2|^2+ … +|a31|^2=1
この条件を満たせば、<Mx|Mx>=1が保証されます。これをMxの「規格化」と呼びます。

具体例として、2つの「基底」であるm9=「01001」とm25=「11001」とを半々の重みで重ね合わせた心をMxとしてみます。Mx=a9・m9+a25・m25とおき、a9=a25とし、「規格化」の条件|a9|^2+|a25|^2=1を要求すると、解の1つはa9=a25=1/√2になります。つまり、
Mx=(1/√2)m9+(1/√2)m25
そこで、
「?」=(1/√2)「0」+(1/√2)「1」
と定義すると(「?」の一般的定義は「?」=a「0」+b「1」、|a|^2+|b|^2=1、aとbは任意の複素数)、
Mx=(1/√2)「01001」+(1/√2)「11001」
=「?1001」
と表現されます。
<Mx|m9>=<(1/√2)m9+(1/√2)クロネッカーデルタとは m25|m9>
=(1/√2)<m9|m9>+(1/√2)<m25|m9>
=(1/√2)×1+(1/√2)×0
=1/√2
<Mx|m25>=<(1/√2)m9+(1/√2)m25|m25>
=(クロネッカーデルタとは 1/√2)<m9|m25>+(1/√2)<m25|m25>
=(1/√2)×0+(1/√2)×1
=1/√2
となります。「Mxの視点に確率1で立つということは、Mxの視点に確率1で立つ、かつ、m9の視点に確率1/2で立つ、かつ、m25の視点に確率1/2で立つ、ということである」を意味します。
m9とm25とは直交していました。だから<m9|m25>=<m25|m9>=0でした。m9とm9、m25とm25とはもちろん平行であり、だから<m9|m9>=<m25|m25>=1でした。Mxとm9、Mxとm25とは45度の角度に傾いており、だから<Mx|m9>=<Mx|m25>=1/√2でした。2つの心MiとMjとが32次元空間内で相対的に角度θで傾いているとき、<Mi|Mj>=<Mj|Mi>=cosθの関係が有ります。そして、「Miの視点に確率1で立っているとき、同時にMjの視点にも確率<Mi|Mj>^2=(cosθ)^2で立っている」あるいは「MiにとってMjの存在確率は<Mi|Mj>^2=(cosθ)^2である」と言えます。

なお、今の話ではN=5だったので2^N=2^5=32次元空間でしたが、N→∞に拡張すれば2^N=2^∞=∞次元空間になります。重みa0、a1、a2、…、a31を複素数にまで拡張する時は、x0軸、x1軸、x2軸、…、x31軸を、実軸x0rと虚軸x0i、実軸x1rと虚軸x1i、実軸x2rと虚軸x2i、…、実軸x31rと虚軸x31iに拡張します。
要するに、存在し得るすべての心M0、M1、M2、M3、…は、無限次元のヒルベルト空間内において存在し得るすべての向きを持った長さ1の単位ベクトルV0、V1、V2、V3、…に例えられ、特定の心Miにとって他の心Mjが「存在する」か「存在する」+「存在しない」か「存在しない」かという違いは、特定のベクトルViにとって他のベクトルVjが「平行」か「45度」か「垂直」かという違いに等しい、ということです。
「神」とは、存在し得るすべての心の状態を体験する、という点に関して全知全能である主体だと見なせます。Mx=「vwxyz…………」という、最大でN=∞ビットの情報を持ち得る心において、すべてのビットが「0」、「1」、「?」(クロネッカーデルタとは クロネッカーデルタとは =a「0」+b「1」)という3つの値を取る3^N=3^∞種類の心すべてをコレクションにし、体験しているのが「神」です。これを、「「神」はヒルベルト空間に住む」と表現できます。

主成分分析とは?[解析例・導出つき]

120人分の数学と理科の点数のダミーデータ

上図はすべての人のスコアをプロットしたものです(データはダミーです)。データの特性として、数学の点数が高ければ、理科の点数も高い傾向があることがわかります。そこで、データのばらつきが最も大きい方向に新たに軸を取り、その軸への射影を考えると、理数系科目の総合力を表すような新たな変数を構成できると考えられます。

PCAによる解析結果(赤い矢印:第1主成分方向、青い矢印:第2主成分方向)

数学的理解

まず、いくつかの変数を定義します。\(p\) 個のパラメータで表される実数のデータ組が \(n\) サンプルだけあるとき、これを \(n\times p\) の行列の形で \(X\) とします。

$$ X = \left( \begin x_ & x_ & \cdots & x_ \\ x_ & x_ & \cdots & x_ \\ \vdots & \vdots & \ddots & \vdots \\ x_ & x_ & \cdots & x_ \end \right) $$

\(x_\) は、\(i\) 番目のサンプルの \(j\) 番目のパラメータの値を表します。

例えば、身長と体重のデータの場合は \(p=2\), 測定した人の数が \(n\) に相当します。

\(j\) 番目のパラメータの平均値を \(\mu_j\,(j=1,2. p)\) とおきます。

\(\mu_j\) を用いて、データの分散共分散行列(variance-covariance matrix)\(S\) を定義します。\(S\) は \(p\times p\) の正方行列です。

$$ \begin &S = \left( \begin s_ & s_ & \cdots & s_ \\ s_ & s_ & \cdots & s_ \\ \vdots & \vdots & \ddots & \vdots \\ s_ & s_ & \cdots & s_ \end \right) \\ &s_ = \dfrac\sum_^n (x_-\mu_k)(x_-\mu_l)\hspace(k,l=1,2. p) \end $$

\(s_\) は \(k\) 番目と \(l\) 番目の変数の共分散(covariance)を表します。なお、\(k=l\) のときは \(k\) 番目の変数の分散(variance)を表します。\(s_\) の定義より、\(s_ = s_\)が成立します。よって、分散共分散行列 \(S\) は実対称行列になります(\(\text\,S = クロネッカーデルタとは クロネッカーデルタとは S^\TT\))。

上式の \(s_\) では、偏差の積を \(n\) で割っていますが、調べたい集団全体(母集団)一部を取り出したサンプル(標本)を用いる場合は、偏差の積の和を \(n-1\) で割って定義される不偏分散(unbiased variance) を用います。 $$ s_ = \dfrac\sum_^n (x_-\mu_k)(x_-\mu_l)\hspace(k,l=1,2. p) $$ 多くの場合、調べたい集団すべてのデータを取ることは困難なので、基本的には不偏分散を用いることになります。

データ解析においては、データの平均値を予め \(\mu_j = 0\) としてから \(S\) を計算することが多いです。このとき、 $$ クロネッカーデルタとは クロネッカーデルタとは s_ = \dfrac\sum_^n x_x_\hspace(k,l=1,2. p) $$ であり、分散共分散行列 \(S\) は $$ S = \dfracX^\TT X $$ と表せます。ただし、\(\TT\) は転置を意味します。

主成分分析では、データを新たな軸に射影したとき、その分散が最も大きくなるように軸の方向を定めます。分散が最大となる方向を第1主成分方向とよびます。分散共分散行列 \(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおいたとき、第1主成分方向は 分散共分散行列 \(S\) の最大固有値 \(\lambda_1\) の固有ベクトル \(\bm_1\) になります。

便宜上、\(i\) 番目のサンプルのデータセットを行ベクトルの形で \(\bm_i := (x_,x_. x_)\) とします。\(クロネッカーデルタとは i\) 番目のサンプルの第1主成分得点 \(t_\) は、\(\bm_i\) と \(\bm_1\) の内積として

第2主成分方向は、第1主成分方向 \(\bm_1\) に直交する条件の下で、データを射影したときのばらつきが最大となる方向として決められ、これは分散共分散行列 \(S\) の第2固有値 \(\lambda_2\) の固有ベクトル \(\bm_2\) に相当します。

一般に、第 \(k\) 主成分方向 \((k=1,2. p)\) は、分散共分散行列 \(S\) の第 \(k\) 固有値の第 \(k\) 固有ベクトル \(\bm_k\)になり、\(i\) 番目のサンプルに関する第 \(k\) 主成分得点 \(t_\) は、\(\bm_i\) \(\bm_k\) の内積で表されます。

最後に、\(S\) の固有値に注目して、寄与率・累積寄与率を紹介します。

\(S\) の固有値 \(\lambda_k\) は、 \(k\) 主成分得点の分散に等しくなります。よって、\(\lambda_k\) が大きければ、 \(k\) 主成分は元のデータの情報を多く含んでいると解釈できます。

それを相対的に評価したのが寄与率(contribution rate)で、第 \(k\) 主成分の寄与率は以下で表されます。

累積寄与率(accumulative contribution rate)は、第1主成分から第 \(k\) 主成分までがどの程度の情報を持っているかを表す指標で、以下で表されます。

データの標準化

主成分分析を適用する前に、データに対して標準化を行う場合があります。具体的には、各変数について 平均 \(0\), 分散 \(1\) となるようにデータを変換することを言います。標準化したデータの行列 \(Z\) は以下で表されます。

$$ Z = \left( \begin z_ & z_ & \cdots & z_ \\ z_ & z_ & \cdots & z_ \\ \vdots & \vdots & \ddots & \vdots \\ z_ & z_ & \cdots & z_ \end \right) $$

\(\mu_j,s_\) はそれぞれ \(j\) 番目のパラメータの平均と分散を表します。

で確かに \(0\) となっています。また、分散は

平均 \(0\), 分散 \(1\) に標準化したデータはz得点(z-score)とも呼ばれます。

標準化したデータにも、分散共分散行列 クロネッカーデルタとは \(S\) に相当するものを考えることができ、それは相関行列 \(R\) と呼ばれます。

$$ \begin R = \left( \begin 1 & r_ & \cdots & r_ クロネッカーデルタとは \\ r_ & 1 & \cdots & r_ \\ \vdots & \vdots & \ddots & \vdots \\ r_ クロネッカーデルタとは クロネッカーデルタとは & r_ & \cdots & 1 \end \right) = \dfracZ^\TT Z \\ r_ = \dfrac\sum_^n z_z_\hspace(k,l=1,2. p) \end $$

対角成分は \(j\) 番目のパラメータの分散を表し、標準化によってすべて \(1\) となっています。また、\(S\) と同様に、\(R\) も実対称行列です。

主成分方向や主成分得点などは、前述した標準化していないデータの分散共分散行列 \(S\) の固有値・固有ベクトルによって求められたのと同様に、相関行列 クロネッカーデルタとは \(R\) の固有値・固有ベクトルによって求められます。しかし、主成分方向や主成分得点は、標準化しなかった場合の結果とは異なるので、注意が必要です。

標準化をすべきか否かについては、4.3節で考察を行いました。筆者の見解が含まれますが、各変数が同じぐらいの情報を持っている場合は標準化すべきで、そうでない場合は必ずしも標準化は必要ない、ということができそうです。また、主成分分析の使用目的やデータの特徴にも依存します。

数学と理科の点数

120人分の数学と理科の点数のデータを作成します。ダミーデータは、数学と理科の相関行列から乱数を生成し、予め定めた平均値・標準偏差を加えることで生成できます。相関行列は半正定値行列(positive semidefinite matrix)でなければなりません。

120人分の数学と理科の点数のダミーデータ

np.std は標準偏差を求める関数で、ddof=1 とした場合は、不偏分散として計算されます。詳しくは公式サイトを参照してください。

分散共分散行列 \(S\) を計算します。\(S\) の対角成分は、各パラメータの分散に等しくなります。

分散共分散行列 \(S\) の固有値・固有ベクトルを求めます。各固有ベクトルを縦ベクトルとして \(クロネッカーデルタとは \bm_1,\bm_2\) とすると、 \(V=(\bm_1,\bm_2)\) のように並んでいます。なお、固有値・固有ベクトルは、固有値の大きい順になるように並び替えています。

固有ベクトルの向きは、必ずしも数学と理科の点数が高くなる方向にはなりません。実際に、第1主成分方向は両方の点数が低くなる方向になっています。軸の方向だけが重要なので、主成分方向の正負を入れ替えても問題ありません

PCAによる解析結果(赤い矢印:第1主成分方向、青い矢印:第2主成分方向)

身長と体重

120人分の身長と体重のダミーデータ

身長と体重では、単位が \(\mathrm\) と \(\mathrm\) で異なります。この場合、各変数を標準化してから解析を行うのが通常です。標準化したデータ \(Z\) は、以下のように算出できます。

標準化した身長と体重のデータ

a.u. は任意単位(arbitrary unit)のことです。身長と体重を標準化したことで、単位がなくなっているため、このように記載しています。

この \(Z\) を用いて、相関行列 \(R\) を求めます。

相関行列 \(R\) の固有値・固有ベクトルを求めます。

各主成分方向をデータと合わせてプロットすると、以下のような図が得られます。第1主成分方向(赤い矢印)は身長と体重が両方とも高くなる方向になっているため、体格の大きさを表す変数として解釈できます。一方で、第2主成分方向(青い矢印)は、身長が低く体重が重い領域から、身長が高く体重が軽い方向にわたっているので、肥満度を表すような変数として解釈することができます。

肥満度を表す指数としてよく使われるBMI(body mass index)は、身長と体重の2変数から肥満度を表す1変数へ次元が減っているので、次元圧縮の例といえます。 $$ \mathrm := \frac\,[\mathrm]><(\text<身長>\,[\mathrm])^2> $$

アヤメの分類

\(X\) は \(150\times 4\) の行列で、\(4\) つのパラメータのデータは、がく片の長さ・幅・花びらの長さ・幅の順で格納されています。

\(Y\) はアヤメの品種をラベル付けしたベクトルで、\(0\) が setosa, \(クロネッカーデルタとは 1\) が versicolor, \(2\) が virginica になります。

標準化を行ったのち、相関行列 \(R\) を求めます。

相関行列 \(R\) の固有値・固有ベクトルを求めます。

第1主成分方向、つまり最大固有値の固有ベクトルを見ると、がく片の長さ・花びらの幅と長さはすべて符号が \(+\) で、がく片の幅のみ \(クロネッカーデルタとは クロネッカーデルタとは -\) になっています。このことから、がく片の細長さと花びらの全体的な大きさを見ることで、アヤメの3品種がおおむね区別できることが予想されます。

第一主成分の寄与率はおよそ \(73.0\,\%\) と高い値を示しています。また、第2主成分までの累積寄与率がおよそ \(95.8\,\%\) であることから、第2主成分までで、データのおおよその特性が説明できるといえます。

各データの第1・第2主成分得点(赤:setosa、緑:versicolor、青:virginica)

各データの第1・第2・第3主成分得点(赤:setosa、緑:versicolor、青:virginica)

1節と同様に、\(p\) 個のパラメータで表される実数のデータ組が \(n\) サンプルだけあるとき、これを \(n\times p\) の行列の形で \(X\) とします。

$$ X = \left( \begin x_ & x_ & \cdots & x_ \\ x_ & x_ & \cdots & x_ \\ \vdots & \vdots & \ddots & \vdots \\ x_ & x_ & \cdots & x_ \end \right) $$

便宜上、\(i\) 番目のサンプルのデータセットを行ベクトルの形で \(\bm_i := (x_,x_. x_)クロネッカーデルタとは \) とします。\(i\) 番目のサンプル \(\bm_i\) の第1主成分得点 \(t_\) は、 \(p\) 次元の縦ベクトル \(\bm_1=(w_1,w_2. w_p)クロネッカーデルタとは ^\TT\) を用いて、

と表せます。主成分分析では、第1主成分得点 \(t_1\) の分散が最大となるように \(\bm_1\) を決めることになります。第1主成分得点の分散 \(\mathrm[t_1]\) は

とできます。ただし、\(\bm <\mu>= \frac(\sum\limits_i x_,\sum\limits_i x_. \sum\limits_i x_)\) は各パラメータの平均値を表す \(p\) 次元の横ベクトルです。\(\mathrm[t_1]\) をさらに変形して、

$$ \begin \mathrm[t_1] &= \dfrac\sum\limits_i (t_ - \bar_1)^2 \\ クロネッカーデルタとは &= \dfrac\sum\limits_i [(\bm_i - \bm<\mu>)\bm_1]^2 \\ &= \bm_1^\TT \left[\dfrac \sum\limits_i (\bm_i - \bm<\mu>)^\TT(\bm_i - \bm<\mu>) \right]\bm_1 \\ &= \bm_1^\TT S \bm_1 \end $$

を得ます。ここで、\(S\) は分散共分散行列で、1.2節で定義したものと同じです。

以上より、第1主成分方向は、\(\mathrm[t_1] = \bm_1^\TT S\bm_1\) を最大とするような \(クロネッカーデルタとは \bm_1\) に相当することがわかりました。現状、\(\bm_1\) が大きくなれば、第1主成分得点の分散 \(\mathrm[t_1]\) はいくらでも大きくなってしまいます。そこで、\(\|\bm_1\|_2 =1\) の制約を課すことで、分散の発散を防ぎます。このような制約付きの極値問題は、ラグランジュの未定乗数法によって求めることができます。ラグランジュ乗数を \(\alpha\) として、目的関数 \(L(\bm_1,\alpha)\) は

と表せ、求める \(\bm_1\) は以下の2式を満たします。

上式の第2式は、\(\bm_1^\TT\bm_1 - 1 = 0\) であり、これは制約条件そのものです。

したがって、求める \(\bm_1\) は、分散共分散行列 \(S\) の固有ベクトルになることがわかります。また、このとき、

より、第1主成分得点の分散は固有値に等しいことがわかります。

以上より、第1主成分方向は、分散共分散行列 \(S\) の最大固有値の固有ベクトルであることがわかりました。

改めて、分散共分散行列 \(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおくと、\(\bm_1 = \bm_1,\,\mathrm(t_1) = \lambda_1\) となります。

第2主成分方向については、第1主成分方向に直交する条件下で、第2主成分得点の分散を最大にする方向として決められます。これは、第1主成分方向を求めた際に用いたラグランジュ未定乗数法の制約条件に、最大固有値の固有ベクトルとの直交性を追加することで求めることができます。ラグランジュ乗数を \(\alpha_1,\alpha_2\) として、目的関数 \(L(\bm_2,\alpha_1,\alpha_2)\) は

$$ L(\bm_2,\alpha_1,クロネッカーデルタとは クロネッカーデルタとは \alpha_2) = \bm_2^\TT S\bm_2 - \alpha_1(\bm_2^\TT\bm_2 - 1) + \alpha_2 \bm_1^\TT\bm_2 $$

と表せます。第1主成分を求めた時と同様に、求める \(\bm_2\) は以下の3式を満たします。

第2式は係数ベクトルの正規化に関する条件 \((\bm_2^\TT\bm_2 クロネッカーデルタとは = 1)\)、第3式は第1主成分方向との直交性を表します \((\bm_1^\TT\bm_2 = 0)\) 。

となります。左から \(\bm_1^\TT\) をかけると、

$$ \begin 2\bm_1^\TT S\bm_2 - 2\alpha_1\bm_1^\TT\bm_2 + \alpha_2 \bm_1^\TT\bm_1 &= 0 \\ 2(S\bm_1)^\TT \bm_2 + \alpha_2 &= 0 \hspace(\because S^\TT = クロネッカーデルタとは S, \bm_1^\TT\bm_2 = 0)\\ 2\lambda_1\bm_1^\TT\bm_2 + \alpha_2 &= 0 \\ \therefore\hspace \alpha_2 &= 0 \end $$

よって、\(\alpha_2 = 0\) となるので、\(\partial L/\partial \bm_2\) は第1主成分方向を求めた時と同じ形であり、第2主成分方向は、\(S\) の第2固有値 \(\lambda_2\) の固有ベクトル \(\bm_2\) となります。

同様に制約条件を増やしていくことで、一般に第 \(k\) 主成分方向は、第 \(k\) 固有値 \(\lambda_k\) の固有ベクトル \(\bm_k\) であることがわかります。

ベクトル微分

まず、\(p=2\) の場合について考えます。目的関数 \(L(\bm,\alpha)\) は

$$ \begin L(\bm,\alpha) &= \bm^\TT S\bm - \alpha(\bm^\TT\bm - 1)\\ &= (w_1,w_2) \left( \begin s_ & s_ \\ s_ & s_ \end \right) \left( \begin w_1 \\ w_2 \end \right) - \alpha(クロネッカーデルタとは w_1^2 + w_2^2-1) \\ &= s_w_1^2 + s_w_2^2 + (s_+s_)w_1 w_2 - \alpha(w_1^2 + w_2^2 - 1) \end $$

\(L(\bm,\alpha)\) の \(w_1,w_2\) の偏微分は、\(s_ = s_\) に注意すると

次に、一般の \(p\geq クロネッカーデルタとは クロネッカーデルタとは 2\) について考えます。\(\partial (\bm^\TT\bm)/\partial \bm = 2\bm\) は \(p=2\) の場合と同様に行うことで容易に導出できるので、ここでは \(\bm^\TT S\bm\) の項のみについて考えます。具体的に展開すると、

$$ \begin \bm^\TT S\bm &= (w_1. w_p) \left( \begin s_ & s_ & \cdots & s_ \\ s_ & s_ & \cdots & s_ \\ \vdots & \vdots & \ddots & \vdots \\ s_ & s_ & \cdots クロネッカーデルタとは & s_ \end \right) \left( \begin w_1 \\ \vdots \\ w_p \end \right) \\ &= \sum_^p \sum_^p s_w_k w_l \end $$

\(\bm^\TT S\bm\) の \(w_q\,(1\leq q\leq p)\) による偏微分を考えます。このとき、シグマの中の \(w_q\) の項だけ \(1\)、それ以外は \(0\) になるので、クロネッカーのデルタ \(\delta_\) を用いて、

クロネッカーのデルタは以下で定義されます。 $$ \delta_ = \begin 1 & (i=j) \\ 0 & (i\neq j) \end $$

となります。最終行は、\(S\bm\) の \(q\) 行目を意味します。以上より、

分散共分散行列の性質

主成分分析は、分散共分散行列の固有値問題として帰着します。その分散共分散行列の性質を詳しく見てみましょう。

分散共分散行列 \(S\) は以下で表されます(再掲)。

$$ \begin &S = \left( \begin s_ & s_ & \cdots & s_ \\ s_ & s_ & \cdots & s_ \\ \vdots & \vdots & \ddots & \vdots \\ s_ & s_ & \cdots & s_ \end \right) \\ &s_ = \dfrac\sum_^n (x_-\mu_k)(クロネッカーデルタとは x_-\mu_l)\hspace(k,l=1,2. p) \end $$

\(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) クロネッカーデルタとは クロネッカーデルタとは とおきます。このとき、以下の性質を満たします。

  1. 固有値は非負の実数(\(\lambda_k\geq 0\))
  2. 異なる固有値の固有ベクトルは直交(\(\bm_k^\TT\bm_l = 0\,(k\neq l)\))

分散共分散行列 \(S\) は平均との偏差の積を計算しているので、データを表す行列 \(X\) の各変数の平均値を予め \(0\) としても、 \(S\) 自体には変化がありません。このとき、\(S\) の第 \(k,l\) 成分は

と表せます。なお、スカラー倍しても固有ベクトルは変わらないので、以下の証明では \(S=X^\TT X\) として考えます。

性質1:固有値は非負の実数

\(S=X^\TT X\) の固有ベクトルを \(\bm_k\,(k=1,2. p)\) 、固有値を \(\lambda_k\) とおくと、

が成立します。左から \(\bm_k^\TT\) をかけて式を変形すると、固有値 \(\lambda_k\) が非負であることが示されます。

$$ \begin \bm_k^\TT X^\TT X\bm_k &= \lambda_k \bm_k^\TT\bm_k \\ \|X\bm_k\|^2 &= \lambda\|\bm_k\|^2 \\ \therefore\hspace\lambda_k &= \dfrac<\|X\bm_k\|^2><\|\bm_k\|^2> \geq 0 \hspace \myqed \end $$

固有値がすべて非負の実数になるのは、半正定値行列について成り立つ性質です。詳しくは、学びTimesさんの記事に詳しく書かれています。

性質2:異なる固有値の固有ベクトルは直交

\(S\) の異なる固有値を \(\lambda_k,\lambda_l\,(k,l=1,2. p;\lambda_k\neq \lambda_l)\)、対応する固有ベクトルを \(\bm_k,\bm_l\) とおきます。

上式に左から \(\bm_l^\TT\) をかけます。

\(S\) が対称行列(\(\text\,S^\TT = S\))であることを用いて

$$ \begin \bm_l^\TT S^\TT\bm_k &= \lambda_k \bm_l^\TT\bm_k \\ (S\bm_l)^\TT\bm_k &= \lambda_k \bm_l^\TT\bm_k \\ \lambda_l\bm_l^\TT\bm_k &= \lambda_k \bm_l^\TT\bm_k \\ (\lambda_l-\lambda_k)\bm_l^\TT\bm_k &= 0 \\ \therefore\hspace\bm_l^\TT\bm_k クロネッカーデルタとは &= 0\hspace(\because\,\lambda_l-\lambda_k\neq0)\hspace\myqed \end $$

したがって、異なる固有値の固有ベクトルの内積は \(0\)、すなわち固有ベクトルは互いに直交することが示されました。

異なる固有値に対応する固有ベクトルが直交するのは、任意の対称行列について成り立つ性質です。詳しくは、学びTimesさんの記事に詳しく書かれています。

標準化の使い分け

1.3節で、データを平均 \(0\), 分散 \(1\) に標準化してから主成分分析を行う場合について説明しました。では、具体的にどういった場合に標準化すべきなのか、考察したいと思います。

標準化においてポイントとなるのは、すべてのパラメータの分散が \(1\) に規格化されるという点です。1節などで説明した通り、主成分分析では、分散を情報量の大きさと捉えています。よって、標準化によって分散の値を \(1\) に規格化することは、各パラメータを平等に扱うことに対応していると考えられます。主成分分析を行う目的やデータの特徴にもよりますが、各変数が同じぐらいの情報を持っている場合は標準化すべきで、そうでない場合は必ずしも標準化は必要ない、ということができそうです。

次に、必ずしも標準化を行うべきとは言えないケースとして、Qiitaの記事より、夕焼けのRGB画像に対して主成分分析を行ったものを紹介します。標準化を行った場合と行わなかった場合を比較すると、標準化した場合の第一主成分の寄与率は、標準化を行わなかった場合と比べておよそ \(11\,\%\) ほど低下してしまいました。これは、元の画像において赤の分散が最も大きいことに起因します。夕焼けの画像に赤が多く含まれることは、捨てるべき情報とは言えないので、必ずしも標準化が必要とはいえません(青・緑の成分について詳しく考えたい場合はその限りではありません)。

このように、標準化が必要かどうかは、データの特徴や主成分分析の使用目的に依存します。まとめると、最初の例のように、データの特性を説明する上で、複数の変数が寄与しており、なおかつ変数間の分散の差が大きい場合は、それらを平等に扱うために標準化が必要です。対して、変数間の分散の差それ自体が重要な情報を持っており、標準化によってその情報が失われてしまう場合は、必ずしも標準化すべきとは言えません

「神」はヒルベルト空間に住む

mi(i=0、1、2、…、31)はどれも長さ1であり、「miにとってmiの存在確率は1」であることを意味し、これを<mi|mi>=1と表現します。一方、これら32個の「基底」のうち、異なる2つをmi、mjとすると(i≠j)、miとmjとは必ず第1~5ビットのどれかにおいて、一方は「0」、他方は「1」という矛盾した情報を持っています(第1~5ビットのすべてに矛盾が無ければmi=mjになってしまう)。1つでも矛盾した情報を持っていれば、miの視点に立つ時、同時にmjの視点に立つことはできません。つまり、「miにとってmjの存在確率は0」であり、これを<mi|mj>=0と表現します。i≠jのときmiとmjとは直交しているのだから、ベクトルmiとベクトルmjとの内積<mi|mj>が0だと理解できます。この2つをまとめてこう表記します。
【直交規格化条件】
<mi|mj>=δij〔i=jのとき<mi|mj>=1、i≠jのとき<mi|mj>=0〕
δijは「クロネッカーのデルタ」と呼ばれる記号です。

では、存在し得るすべての心Mxの一般形はどう表されるでしょうか。答は、これら32個の「基底」mi(クロネッカーデルタとは i=0、1、2、…、31)に特定の重みai(i=0、1、2、…、31)を付けて線形に重ね合わせたものになります。aiは複素数にまで拡張できますが、ここでは実数としておきます。
Mx=a0・m0+a1・m1+a2・m2+ … +a31・m31
=Σ(ai・mi) 〔i=0、1、2、…、31について和を取る〕
重みa0、a1、a2、…、a31は独立して任意の値を取れます。32次元空間内の任意の点をPとし、原点をO=(0、0、0、…、0)とし、Pの座標をP=(a0、a1、a2、…、a31)とすると、MxこそがベクトルOPに対応します。つまり、存在し得る任意の心Mxは、この32次元空間内の点Pに対応するし、逆にこの32次元空間内の任意の点Pは、特定の心Mxに対応します。「神」を「存在し得るすべての心M0、M1、M2、M3、…を要素とする集合」で定義するなら、「神」を「32次元空間内のすべての点の集合」と定義しても良い訳です。

ただ、Mxは特定の心の状態ですから、「MxにとってMxの存在確率は1」すなわち<Mx|Mx>=1は満たしておくべきです。Mx=a0・m0+a1・m1+a2・m2+ … +a31・m31をそのまま使って<Mx|Mx>を計算してみると、こうなります。
<Mx|Mx>=(<a0・m0|+<a1・m1|+<a2・m2|+ クロネッカーデルタとは … +<a31・m31|)
(|a0・m0>+|a1・m1>+|a2・m2>+ … +|a31・m31>)
=Σ〔i〕Σ〔j〕(ai・aj<mi|mj>)
つまり、ai・aj<mi|mj>を、i=0、1、2、…、31について、かつ、j=0、1、2、…、31について、32^2=1024個すべてを足すことになりますが、i≠jの場合は<mi|mj>=0で無視できるし、i=jのときだけ<mi|mj>=1なので、
=Σ〔i〕(|ai|^2)
=|a0|^2+|a1|^2+|a2|^2+ … +|a31|^2
となります。これを1と定めれば良いことになります。
|a0|^2+|a1|^2+|a2|^2+ … +|a31|^2=1
この条件を満たせば、<Mx|Mx>=1が保証されます。これをMxの「規格化」と呼びます。

具体例として、2つの「基底」であるm9=「01001」とm25=「11001」とを半々の重みで重ね合わせた心をMxとしてみます。Mx=a9・m9+a25・m25とおき、a9=a25とし、「規格化」の条件|a9|^2+|a25|^2=1を要求すると、解の1つはa9=a25=1/√2になります。つまり、
Mx=(クロネッカーデルタとは 1/√2)m9+(1/√2)m25
そこで、
「?」=(1/√2)「0」+(1/√2)「1」
と定義すると(「?」の一般的定義は「?」=a「0」+b「1」、|a|^2+|b|^2=1、aとbは任意の複素数)、
Mx=(1/√2)「01001」+(1/√2)クロネッカーデルタとは クロネッカーデルタとは 「11001」
=「?1001」
と表現されます。
<Mx|m9>=<(1/√2)m9+(1/√2)m25|m9>
=(1/√2)<m9|m9>+(1/√2)<m25|m9>
=(1/√2)×1+(1/√2)×0
=1/√2
<Mx|m25>=<(1/√2)m9+(1/√2)m25|m25>
=(1/√2)<m9|m25>+(1/√2)<m25|m25>
=(1/√2)×0+(1/√2)×1
=1/√2
となります。「Mxの視点に確率1で立つということは、Mxの視点に確率1で立つ、かつ、m9の視点に確率1/2で立つ、かつ、m25の視点に確率1/2で立つ、ということである」を意味します。
m9とm25とは直交していました。だから<m9|m25>=<m25|m9>=0でした。m9とm9、m25とm25とはもちろん平行であり、だから<m9|m9>=<m25|m25>=1でした。Mxとm9、Mxとm25とは45度の角度に傾いており、だから<Mx|m9>=<Mx|m25>=1/√2でした。2つの心MiとMjとが32次元空間内で相対的に角度θで傾いているとき、<Mi|Mj>=<Mj|Mi>=cosθの関係が有ります。そして、「Miの視点に確率1で立っているとき、同時にMjの視点にも確率<Mi|Mj>^2=(クロネッカーデルタとは クロネッカーデルタとは cosθ)^2で立っている」あるいは「MiにとってMjの存在確率は<Mi|Mj>^2=(cosθ)^2である」と言えます。

なお、今の話ではN=5だったので2^N=2^5=32次元空間でしたが、N→∞に拡張すれば2^N=2^∞=∞次元空間になります。重みa0、a1、a2、…、a31を複素数にまで拡張する時は、x0軸、x1軸、x2軸、…、x31軸を、実軸x0rと虚軸x0i、実軸x1rと虚軸x1i、実軸x2rと虚軸x2i、…、実軸x31rと虚軸x31iに拡張します。
要するに、存在し得るすべての心M0、M1、M2、M3、…は、無限次元のヒルベルト空間内において存在し得るすべての向きを持った長さ1の単位ベクトルV0、V1、V2、V3、…に例えられ、特定の心Miにとって他の心Mjが「存在する」か「存在する」+「存在しない」か「存在しない」かという違いは、特定のベクトルViにとって他のベクトルVjが「平行」か「45度」か「垂直」かという違いに等しい、ということです。
「神」とは、存在し得るすべての心の状態を体験する、という点に関して全知全能である主体だと見なせます。Mx=「vwxyz…………」という、最大でN=∞ビットの情報を持ち得る心において、すべてのビットが「0」、「1」、「?」(=a「0」+b「1」)という3つの値を取る3^N=3^∞種類の心すべてをコレクションにし、体験しているのが「神」です。これを、「「神」はヒルベルト空間に住む」と表現できます。

3. 計算内容を噛み砕いてみる

直交という言葉を聞いて,最初に思い浮かぶのは2次元平面における2つの線分が直角(90°)に交わるイメージだと思います.
また,xyz座標を用いて表現される3次元空間(直交座標系)も,全ての軸が直交している空間として理解しているでしょう.
(その名の通りなので当たり前ですが.)
これらが確かに直交していることは実際に紙に書いたり造形してみたりして,それを定規や分度器で測ることで確認することができます.

そして,第2.2.1節で説明した特性を「三角関数の直交性」と呼ぶ理由は,異なる三角関数同士の内積が0になることに起因しています.

3.2. 関数の内積

3.2.1. 内積とは?

なお,はの複素共役として用いました.
また,内積を表す記号として,を用いました.
これは「ディラックのブラケット記法」などと呼ばれるもので,「」の部分を「ブラ」,「」の部分を「ケット」とそれぞれ呼びます.
内積を示す際によく用いられる記法は他にも多くあり,などがあります.
今回は,ロボティクスを学ぶ人間にとって最もなじみのなさそうなものを選びました.

さて,定義を見ると,また難しそうな言葉がたくさん出てきました.
ちなみに,というのは単に集合を構成する要素のことです.なじみがないかもしれませんが,シンプルなのでこの説明だけで問題ないでしょう.
元を除くと,すぐに理解できない言葉は以下の3つだと思います.

3.2.2. 直積空間とは?

ここで表れた「順序対」というのは,2つの要素をこの順序で組み合わせたものです.
順序が異なると別の順序対とみなします.つまり,です.
なお,順序対のことを単純に「対」ということもありますが,逆に順序対と対を区別することもあります.この辺りは読んでいる文書などにおける用語の定義をよく確認した方が良いでしょう.個人的には,要素の順番が重要であることを意識して,順序対という言葉を用いる方が良いと思っています.

ここで少し注意があります.
上では順序対の表記をとしました.
しかし実はこの表記は,内積の表記の一例としても挙げたものです.さらに,順序対の表記も]などなど,様々です.これについてもやはり,文書中の用語の定義をよく確認しましょう.
今回はを用いることにします.

3.2.3. 写像とは?

写像の定義

写像という言葉はよく聞くと思いますが,その定義をちゃんと知らないという方は多いと思います.
実は写像というのは非常に広い意味を持っています. それではこれも定義を確認してみましょう.

写像を少し噛み砕いてみる

定義 3では,元に対して定まる別の集合の元はただ1つだと書きました.
わざわざこのように書いたということは,ただ1つではなく,複数定まってしまって,写像とは呼べない場合もあるということです.
そういった場合は,からへの「対応(または関係)」と呼ばれます.
この対応は,直積集合の部分集合(と名づけておきます)として定義できます.以降では部分集合を「対応」と呼んで慣れましょう.
直積集合は集合と集合のあらゆる組み合わせを元とする集合でした.
この部分集合である対応は,この中の一部の組み合わせを元とする集合です.
したがって,集合から何か元を選んできても,それが対応の元では使われていない場合もあります.
ここで,対応の元に使われている集合の元の集合には,「定義域」という名前がつけられています.
数式で整理すると,定義域をとして,以下のように書けます.

定義域の話と同じように,集合の元についても,対応の元に使われているものとそうでないものがあります.使われている元の集合には「像」という名前がついており,次のように書けます.

対応は直積集合の部分集合ですので,その元は順序対です.
したがってが先,が後,のようなイメージがあります.
そのイメージを大事にして,まずを決めます. すると対応から,と何かの組である元を特定することができます.
この元は複数あっても構いませんので,例えばなどのように,とにかくいくつかの元が対応付けられます.
これは同時に,を選んだことによってを間接的に選んだことになります. クロネッカーデルタとは クロネッカーデルタとは
このことが,「対応」という名付けのイメージだと思います.

さて,このように解釈すると,を「定義域」と呼ぶ理由もなんとなく分かると思います.
対応の元が定義されている領域,もしくは対応によって決まるの領域を定義する領域,といったように理解できると思います.
「像」というのは,この定義域を対応によって写した領域といった解釈が良いと思います.

1つ目の条件は,一意であることです.
上の話で出たようにを選んだとき,であればである場合,この対応は一意であるといいます.つまり,に対応するものはだけということです.

2つ目の条件は,定義域が集合と一致することです. つまり,集合の任意の元に対応するが存在することです.

これら2つを合わせると,先に述べた定義 3の通りの内容を指していることが分かると思います. また,定義で書いたように,部分集合ではなく,対応関係自体に注目して,写像と呼ぶこともできます.
このとき,元に対応する集合の元を,と書けます.
以降では,対応させる処理に注目する場合には写像の方を用います.

ここで,集合の元は全て写像に使われることが決まりましたが,集合については何も述べられていません.
したがって,この時点では写像によって対応する元の集合(像ですね)が集合の一部でも良いことになります.
ちなみに,この時の集合を「値域」といいます.
よく「像」と「値域」を混同してしまいますが,分けて用いられることもあるので注意が必要です.

写像の像が集合に一致する場合,その写像を「全射(全写)」といいます.
つまり全射によって,集合の全ての元は集合のいずれかの元に対応付けられます.
なお,この「全射」のことを「の上への写像」ということもあります. なぜこのように呼ぶのかの理由には自信がありませんが,私は写された像がの上を(ぴったりと)覆っているからだと解釈しています.

もう一度,(全射ではない)写像に視点を戻します.
写像の定義では,元に対応する集合の元が1つであることは決めていますが, 同じ元(仮に元とします)に対応する元がただ1つとは決められていません.
つまり,異なる元が同じ元に対応することがあり得ます.
これに対し,に対応する元が等しい,つまりならば,である場合,この写像を「単射(単写)」といいます.
こちらも別の呼び方があり,「は一対一である」といっても同じ意味です.

ここで全射の条件と,単射の条件が両立できることに注目してください.
どちらも両立する場合,写像は「全単射(全単写)」といいます.
この全単射という写像は非常に重要です.
その理由は,が全単射であるならば,となる写像が存在することが分かるためです.
そしてこの写像は必ず全単射であり,またこのような写像はただ1つしか存在しません.
この写像を,写像に対応して「逆写像(または逆関数)」といい,と表記します.

3.2.4. ベクトル空間とは?

3.2.4.1. ベクトル空間の定義

ベクトルと聞いて,まず思い浮かぶのはなんでしょうか?
空間中にある方向を持った矢印や,数の組がまず浮かぶのではないかと思います.
しかし実は,これらはベクトルと呼ばれるもののうちの,ごく一部です.

それは,ベクトルは要素単体だけでは定義されず,その要素が従う演算規則が指定されてはじめて定義されるということです.

演算を行うためには少なくとも2つ以上の要素からなる何かしらの集合が必要になります. したがって,ベクトルを定義するためには,まずそのベクトルが属する集合を定義しなければなりません.
そしてこの集合こそが,「ベクトル空間」です.

それでは,ベクトル空間の定義をみていきましょう. クロネッカーデルタとは
先に述べたように,ベクトル空間を定義するには演算規則を指定する必要があります.
そのため,これまでの定義よりも長い記述になります.

  1. 集合の任意の元に対して,和と呼ばれる集合の新しい元が常に定まり,次の条件を満たす.なお,和をと書く.つまり,である.
    • に対し,が成り立つ.
    • に対し,が成り立つ.
    • 零ベクトルと呼ばれる元がただ1つ存在し,に対してが成り立つ.
    • に対してが存在してが成り立つ.このを逆元と呼び,と書く.なお,はと書ける.

  2. 集合の任意の元と実数の任意の元に対し,との積(もしくはの倍)と呼ばれる集合の新しい元が常に定まり,次の条件を満たす.
    • とに対し,が成り立つ.
    • とに対し,が成り立つ.
    • とに対し,が成り立つ.
    • に対し,が成り立つ.

なお,上の定義中ではという記号を用いました.これは「任意」という意味の記号で,は「集合の任意の元」と同じことを意味します.
「任意の元」という表現も聞き馴染がない場合,ピンとこないかもしれません.
これは集合のどんな元でもいいですよ,何の制限もないですよ,というニュアンスです.
結局,集合の全ての元に共通する性質を述べていることになります.

上の定義で,積の演算には実数の元を用いました.実は実数以外に複素数などの元でも同じように定義することができます.
実数の元や複素数の元などを総称してスカラーと呼ばれるため,定義でと書いた演算には「スカラー倍」という名前がついています.

なお,スカラーが実数である場合のベクトル空間を「実数上のベクトル空間」といい,「実ベクトル空間(実線形空間)」と呼称されます. クロネッカーデルタとは
同様にスカラーが複素数である場合には「複素ベクトル空間(複素線形空間)」という名前がつけられています.

この呼称を見ると,「ベクトル」は「線形であるもの」ということが分かります.
線形性は非常に重要な性質で,制御工学において対象が線形であるか否かによって適切な制御則が大きく異なってきます.
したがって,考える対象がベクトルであるか否かを調べることは非常に重要です.

ここで,定義 4には本節の最初に述べた矢印や数の組のような話は一切でてきていないことに注意してください.
定義 4を満たすものは全て「ベクトル」であり,その中の一例として上の2つがあったのです.

3.2.4.2. ベクトル空間の例

3.2.4.2.1. 次元数ベクトル空間

この空間に対し,スカラー倍を次のように定義します.

3.2.4.2.クロネッカーデルタとは 2. 実数値(複素数値)関数空間

ある区間,例えば上に定義された実数値(複素数値でもいい)関数の全体である空間も,ベクトル空間として定義することができます.
ここで,関数の空間という概念に違和感を感じるかもしれません.
上で述べた条件に当てはまる関数は数多くありますが,ここで指している空間はそのようなたくさんある関数を集めた集合です.
したがって,元は関数となります.
実数値関数空間を例として数学的に表現すると,次のように書けます.

この空間に対して,次のようにスカラー倍を定義します.
なお,をの任意の元とします.また,ここでは便宜上,をの関数としています.

3.2.5. 内積の再考

    で定まるベクトル空間の任意の元を2つ取ってくる
  1. その2つの元を順序を考慮して並べた組を作る
  2. ベクトル空間を定義する際のスカラー倍で用いた空間から,作った組に対応する元をただ一つ定める対応関係を考える
  3. その対応関係が定義 1に記した4つの規則を満たすとき,この対応関係を「内積」と呼ぶ

定義 1を満たしている演算は全て内積なのです
(それが定義なので当然なのですが・・・)

3.3. 関数の内積を考える

なお,ここでの積分区間]には特に制限はありません. クロネッカーデルタとは
また,右辺に定数を掛けたとしても,定義 1の条件を満たすことに変わりありません.
したがって,関数の内積は無数に定義できることが分かります.

さて,ここまでくると式\eqref, \eqref, \eqrefがなぜ三角関数の直交性を示すのか分かってきたのではないでしょうか?
これら3つの式の左辺は全て,三角関数同士の内積を意味しているのです.
そして既に述べたように,内積が0であることを「直交する」といいますので,異なる三角関数同士は全て直交していることが示されている,と分かります.

3.4. フーリエ係数の再考

内積に意識して,フーリエ係数の計算式である式\eqref, \eqref, \eqrefをもう一度みてみましょう.
これらの計算内容は,対象とする関数と,振幅を調べたい三角関数の内積に他なりません.

ここで,空間中の矢印でベクトルを学んだときのことを思い出してみます.
あるベクトルと他のあるベクトルの内積を計算すると,ベクトルをベクトルを含むいくつかのベクトルで表現した際の,ベクトルに関する成分を計算できたと思います.
この成分を仮にとすれば,ということです.
ベクトルを完全に表現するためには,他にも適切なベクトルが必要になります.

このようにして任意のベクトルを表現可能な過不足ないベクトルのまとまりを,「基底」といいます.

4. まとめ

本記事ではラプラス変換と仲良くなることを目指し,その前段階のフーリエ変換のさらにその前のフーリエ級数展開について調べ,まとめてみました.
フーリエ級数展開はある周期的な関数を三角関数の組み合わせで表現する方法でした. ここで使用する三角関数は,対象の関数の周波数の自然数倍の周波数を持つものであり,それらの振幅は三角関数の直交性を利用した関数の内積によって求められました.

また,フーリエ級数展開において重要な関数の内積を理解するために,内積ベクトル空間直積空間写像などの用語とその定義を学びました.
このせいで文章量が凄いことになってしまいましたが,フーリエ係数の計算式をその形だけで見るよりも,多少は仲良くなれたのではないかと思います.

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次
閉じる