本日のおしながき
・はじめに
・固有方向とは?
・固有値、固有ベクトルと固有方向の関係
・Numpy, PyTorch, Tensorflowで固有方向を確認してみよう
・(参考) 固有値、固有ベクトルの英語
はじめに
E資格シラバス2022では完全に消え去っていた線形代数が、新シラバス「シラバス2024」で復活します。その中に、固有値、固有ベクトルの話が含まれているのですが、受験勉強する際、固有値、固有ベクトルの計算方法を暗記するだけでなく、その意味・イメージを持つと忘れにくいですよ!というのが本記事でお伝えしたいことになります。
その意味を示すのが「固有方向」です。本稿では、この概念を具体例を使いながら紹介して皆さんの印象に残りやすくしたいと思っております。また、NumPy, PyTorch、Tensorflowを用いて固有値、固有ベクトルの計算、および固有方向の確認を手軽に体験できるプログラム例(添付ファイル)も添付しましたので、ご興味の方はこちらもぜひお試し頂ければ幸いです。
固有方向とは?
ある行列に対して、掛け合わせても方向が変わらないベクトルが存在する場合、そのベクトルの方向を、その行列の「固有方向」と呼びます。
具体例を用いてイメージを作っていきましょう。
ご存じのことと思いますが、 n x n の行列に対してn 次元のベクトルを右から掛け合わせると、 n 次元のベクトルが算出されますが、多くの場合、掛ける前のベクトルと掛けた後のベクトルの「方向」は変わります。
では今度は、以下を計算してみてください。掛け合わせても、その方向が変わらず、単に長くなっているだけになるはずです。
このように、 n x n の行列に対して、掛けても方向が変わらないベクトルが存在する場合があります。このようなベクトルが指し示す方向が、その行列の「固有方向」なのです!
固有値、固有ベクトルと固有方向の関係
既にお気づきの方もいらっしゃるかもしれませんが、ある行列の固有方向は、固有ベクトルの方向そのものです。それは、固有値と固有ベクトルを定義する式を見直せばすぐ理解できます。
この式の右辺は「その方向は変わらない」の数学的表現ですよね?
つまり、固有方向のイメージを数式で表しただけなのです。ですから、固有方向のイメージを持っているととても思い出しやすくなります。これが本日、お伝えしたかったことになります。
ちなみに前章の例では、ベクトル[2, 1]は固有ベクトルのひとつで、そのベクトルに対する固有値は 9 となります。
Numpy、Pytorch、Tensorflowで固有方向を確認してみよう
こちらについては、Google Colabでお試し頂けるEigenDirection_NumPy.ipynb, EigenDirection_PyTorch.ipynb, EigenDirection_Tensorflow.ipynbを圧縮して添付しておきました。
まとめ
固有値、固有ベクトルの式は、
左辺が「行列を固有ベクトルに掛けても」
右辺が「その方向は変わらない」
となっている式です。
これで覚えやすくなりましたでしょうか?このノウハウが皆様のお役に立てば幸いです。
(参考) 固有値、固有ベクトルの英語
ちなみに固有値、固有ベクトルは英語でそれぞれeigenvalue, eigenvectorです。この頭3文字のeigが、NumpyやPyTorchの固有値・固有ベクトル算出ライブラリ関数の名前となっていますので、この機会に覚えておくとよいでしょう。