E資格(JDLA Deep Learning for ENGINEER 2019 #2)対策の振り返りです。今回は、応用数学の分野のうち、固有値、固有ベクトル、固有値分解を振り返ります。
固有値分解は、過去問に言及されている受験者の方のサイト等を拝見する限りでは、次回掲載予定の特異値分析とともに頻出問題のようです。
受験される方は、認定講座が必修だと思いますので、なるべく、認定講座とは別に取り組んできた内容をご紹介していければと思っています。
固有値分解
1.固有値、固有ベクトル
正方行列A、スカラーλ、ベクトルx(≠0)の時に以下が成り立つとき、λを行列Aの固有値、xを行列Aの固有ベクトルといいます。
・・・・(1)
Aが4行4列の行列の場合、xは4要素になります。
xは行列Aをかけた場合も、1要素ずつλ倍した場合も、同じベクトルとなる不思議なベクトルです。
ちなみに、固有値の求め方は以下の通りです。
(1)式を左辺に寄せて
・・・・(2)
・・・・(3)※Eは単位行列
よって、
・・・(4)
の内積がゼロになるλを求める。
・・・・(5)
この方程式は、λの二次方程式となるので、解くことで、2つの固有値λ1,λ2が求められます。
(3)の式にλ1を代入してλ1に対応する固有ベクトルx1が求まります。
同様に、λ2を代入してλ2に対応する固有ベクトルx2を求めることができます。
【実例】
例えば以下のような行列Aの固有値を求めます。
まず、(4)式にあてはめて
この内積がゼロになるλを求める。
(3)式にあてはめて、λ1=1のときの固有ベクトルを求める。
の整数倍
同様に、λ2=4のときの固有ベクトルを求める。
の整数倍
2.固有値分解
上記のようなAがn行n列(n次元)の正方行列があったときに、異なる固有値の集合λ1,λ2,...,λnに対して、固有ベクトルx1,x2,....,xnが存在するとき、以下の通りとなる。
・・・・(6)
※λiはスカラー量なので後ろからかけても同じ
固有ベクトルxi を列として並べた行列(x1 x2 ... xn)をPと置くと、以下の通りに変化できる。
・・・・(7)
なお、Λは、λiを降順に対角に並べた以下の対角行列です。
(7) の式の両辺から、Pの逆行列をかけると左辺からPが消えて、以下の式が得られます。
・・・・(8)
このように分解することを、固有値分解といいます。
3.固有値分解の使い方
固有値分解時に、Λをλiの降順に並べた対角行列としましたが、下の方の、小さい値の固有値λiは行列全体に与える影響が小さいので、省略することで制度をあまり落とさずに次元削減ができます。
とんでもなく次元数の高い行列計算を扱うディープラーニングでは、次元削減は非常にありがたい戦略なので固有値分解が試験でもよく出題されるものと思われます。
ただ、固有値分解は、Aが正方行列の時にのみ有効な戦略になります。
次回は、m行n列の行列に拡張した特異値分解を振り返りたいと思います。
2019年3月31日(土)にE資格を受験しました。
E資格対策として勉強の進め方や、参考書などをまとめました。
これから受験される方がいらっしゃいましたらご参考まで。
2019年3月9日(土)にG検定を受験し、見事合格できました!
受験の体験記や勉強法などを別のブログにまとめました。
これから受験される方がいらっしゃいましたらご参考まで。
【E資格対策に使った参考書】
- 人工知能は人間を超えるか ディープラーニングの先にあるもの (角川EPUB選書) [ 松尾豊 ]
- 深層学習教科書 ディープラーニング G検定(ジェネラリスト) 公式テキスト (EXAMPRESS) [ 一般社団法人日本ディープラーニング協会 ]
- 徹底攻略ディープラーニングG検定ジェネラリスト問題集 [ 明松真司 ]
- 実践機械学習システム [ ウィリ・リチャート ]
- アルゴリズムクイックリファレンス 第2版 [ George T. Heineman ]
- 深層学習【電子書籍】[ 岩澤 有祐 ]
- 入門Python 3 [ ビル・ルバノビック ]
- PythonによるWebスクレイピング 第2版 [ Ryan Mitchell ]
- Think Stats第2版 プログラマのための統計入門 [ アレン・B.ダウニー ]
- 集合知プログラミング [ トビー・セガラン ]
- ITエンジニアのための機械学習理論入門 [ 中井悦司 ]