ジョイジョイジョイ

ジョイジョイジョイジョイジョイ

実対称行列が直交行列で対角化できる直感的な証明

English Version

実対称行列の固有値が実数であること、および実対称行列の固有ベクトルで正規直交基底が作れることは様々な領域で非常に重要な役割を果たしています。例えば、主成分分析の導出はこの事実に基づいています。

線形代数の教科書であれば必ず証明が載っているこの定理ですが、その証明は直感的に分かりづらいものばかりです。この記事では、より直感的な説明を試みたいと思います。

おさらい: 典型的な証明

典型的な証明をおさらいします。詳しく知っている人は「ここから本編」まで読み飛ばしてもらってかまいません。この証明ではよく分からんということを伝えたいだけなので、知らない人も深く理解する必要はなく、難しいなぁと思ってもらうだけでよいです。この章の結果は後の章では使いません。

固有値の存在の証明

固有値の存在は自明ではありません。多くの教科書では行列式を経由して固有多項式を定義し、代数学の基本定理から固有多項式の根の存在性を証明しています。

行列式および代数学の基本定理を直感的に理解するのは難しく、これが原因で固有値の存在についても直感的な把握が難しくなっているように思います。

後でみるように実対称行列では行列式代数学の基本定理を経由することなく固有値の存在を示せます。

実対称行列の固有値が実数であることの証明

 A を実対称行列とし、 \lambda A の複素固有値とします。このとき

 \displaystyle A x = \lambda x, x \neq 0

なる複素ベクトル  x が存在します。両辺の複素共役を取ると、 A は実数なので  \bar{A} = A となり

 \displaystyle A \bar{x} = \bar{\lambda} \bar{x}

となります。ここでバーは要素ごとの複素共役を表します。両辺転置を取ると、 A は対称行列なので

 \displaystyle \bar{x}^\top A =  \bar{\lambda} \bar{x}^\top

ここで、

 \displaystyle \bar{\lambda} \bar{x}^\top x = \bar{x}^\top A x = \bar{x}^\top \lambda x = \lambda \bar{x}^\top x

また、 x \neq 0 より

 \displaystyle \bar{x}^\top x = \bar{x}_1 x_1 + \cdots + \bar{x}_n x_n > 0

なので、両辺を  \bar{x}^\top x で割り、 \bar{\lambda} = \lambda が得られ、実数であることが分かります。

異なる固有値に属する固有ベクトルが直交することの証明

 A を実対称行列とし、 \lambda_1 \neq \lambda_2 A の相異なる固有値とし、 x_1, x_2 を対応する実固有ベクトルとします。このとき

 \displaystyle \lambda_1 x_1^\top x_2 = x_1^\top A^\top x_2 = x_1^\top A x_2 = \lambda_2 x_1^\top x_2

よって

 \displaystyle (\lambda_1 - \lambda_2) x_1^\top x_2 = 0

 \lambda_1 \neq \lambda_2 より、 x_1^\top x_2 = 0 となり、 x_1, x_2 は直交することが分かります。

感想

実数行列・ベクトルの議論のはずなのに一度複素数を経由して複素共役を取るという背理法のような流れで分かりづらいうえ、天下り的に計算した結果、突然所望の結果が得られ、狐につままれたような印象を受けます。

直感的な証明(ここから本編)

対称行列の作用素としての意味

対称行列の定義は要素ごとの関係性で与えられます ( A_{ij} = A_{ji})。しかし、これでは行列そのものの性質とうまくリンクしません。ここではまず、対称行列に特有の性質について考えます。

ベクトル  x, y内積 \langle x, y \rangle で表すとします。直感的にはこれは  x, y の類似度をはかっています(cf. コサイン類似度)。

対称行列  A の最も重要な性質は、ふたつのベクトルの内積をはかるとき、どちらに  A を掛けても結果の内積は一致するということです。

証明:  \langle Ax, y \rangle = (Ax)^\top y = x^\top A^\top y = x^\top A y = \langle x, Ay \rangle

いわゆる自己随伴とよばれる性質です。これを満たすことを対称行列の定義と思っても良いです。「対称」という名前も、「対角成分を挟んで鏡像」という意味ではなく、「どちらのベクトルに掛けても同じ」という意味で解釈できます。

実対称行列の自己随伴性については十分に直感的として話を進めます。または、これを定義として自明な性質と思ってください。以降はこの自己随伴の性質が議論の中心となります。

固有値の存在の直感

 x y内積に比べて、 x Ay内積が大きいとします。つまり、 A y に掛けることで  y x に近づきました。

 A x に掛けて  \langle Ax, y \rangle を考えます。 x y内積に比べると、自己随伴性から( y に掛けたのと同じだけ)内積が大きくなります。つまり、 A x に掛けると  y に近づきます。

 A により  x y にはお互い惹かれ合うような逆方向の力が働いたことになります。 直感的には、 x y の「間」を調べると、逆に動かす力が相殺されて、どこかに不動点固有ベクトル)が出てきそうな感じがします。

固有値の存在の証明

実際に構築することで証明します。 \|\cdot\| はベクトルの長さを表すとします。

 A を実対称行列とし、 \|Ax\| が最大となる単位ベクトルを  x とし、 \alpha = \|Ax\| とします。 \{x \mid \|x\| = 1\}閉集合なので最大を取るベクトルは存在します。複数ある場合はどれか一つを適当に取ります。

 x x内積を考えましょう。自己随伴の性質から、回数が同じであればどちら側に  A 掛けても内積の値は変わりません。よって、

 \displaystyle \langle Ax, Ax \rangle = \langle x, AAx \rangle

となります。左辺は  x のとり方から  \alpha^2 です。右辺は  A を掛けると長さが高々  \alpha 倍されることと、 x の長さが  1 であることから高々  \alpha^2 であり、 x AAx が同じ向きを向いているときのみ  \alpha^2 になります。よって、 x AAx は同じ向きを向いています。

つまり、 x A y := Ax に移り、 y A x 方向に移ります。 A x 方向と  y 方向を行ったりきたりするということです。直感的には、 x y の「真ん中」が固有ベクトルになります。

(場合分け 1)  x y の方向が同じとき:  x固有値  \alpha または  -\alpha に属する固有ベクトルになります。

(場合分け2) それ以外のとき:  (y + \alpha x) \neq 0 かつ  A (y + \alpha x) = Ay + \alpha Ax = \alpha^2 x + \alpha y =\alpha (y + \alpha x) より  (y + \alpha x)固有値  \alpha に属する固有ベクトルになります。

よって示されました。

直交性について

 A を実対称行列とし、 v A固有ベクトルとします。

任意に  v に直交するベクトル  u を取ります。直交の定義より  v u内積はゼロです。

 v A をかけて  u との内積  \langle Av, u \rangle をはかると、 A v を同じ方向に伸ばすだけなので、依然として直交し、内積はゼロです。

ここで今度は  A u にかけてみると、自己随伴性から内積  \langle v, Au \rangle はゼロのままです。

つまり、 v と直交するベクトルに  A をかけても結果は  v 方向には影響を与えません。

 v 方向と、 v と直交する部分空間は  A にとっては完全に独立しています。これが直交性です。

具体的に固有ベクトルで直交基底を構成したければ、 v と直交する部分空間内で「実固有値の存在の証明」と同じことをやれば、そこでやった操作は  v 方向にはみ出てこないので  v と直交する固有ベクトルが得られ、さらに一本ずつ直交する固有ベクトルを構成していけばよいです。フォーマルには帰納法を使えば次元の数だけ揃えられることが示せます。

固有ベクトルが直交するということは、その方向が軸に沿うように直交行列で回転してやれば軸方向に伸びる線形写像ということになり、つまり対角行列になるということです。

おわりに

固有値固有ベクトルの議論に固有多項式ではなく作用素の観点から議論するという立場は "Linear Algebra Done Right" から着想を得ています。しかし、"Done Right" では固有値の存在に代数学の基本定理を用いている点で異なります。実は、直感的な説明を求めて "Done Right" を読んだのですが、求めていたものが得られなかったのでこの証明を考えました。

データサイエンスの研究を進めるにつれて、線形代数の基礎をしっかり理解することの重要性を痛感します。僕自身まだまだ直感が足りないなと身にしみて感じます。上記のような直感を他の概念についても養いたいのですが、あまり良いテキストが見つけられていません。線形代数ではなく作用素論の本を読むといいのかな。もし良さそうなテキストを知っている方がいたら twitter: @joisino_ までぜひお知らせください。