俺人〜OREGIN〜俺、バカだから人工知能に代わりに頑張ってもらうまでのお話

俺って、おバカさんなので、とっても優秀な人工知能を作って代わりに頑張ってもらうことにしました。世界の端っこでおバカな俺が夢の達成に向けてチマチマ頑張る、そんな小さなお話です。現在はG検定、E資格に合格し、KaggleやProbSpaceのコンペに参画しながら、Pythonや機械学習、統計学、Dockerなどの勉強中です。学習したことをブログにアウトプットすることで、自分の身に着けていきたいと思います。まだまだ道半ばですが、お時間がありましたら見て行ってください。

E資格対策振り返り(応用数学-固有値、固有ベクトル、固有値分解)

E資格(JDLA Deep Learning for ENGINEER 2019 #2)対策の振り返りです。今回は、応用数学の分野のうち、固有値固有ベクトル固有値分解を振り返ります。

固有値分解は、過去問に言及されている受験者の方のサイト等を拝見する限りでは、次回掲載予定の特異値分析とともに頻出問題のようです。

受験される方は、認定講座が必修だと思いますので、なるべく、認定講座とは別に取り組んできた内容をご紹介していければと思っています。

 固有値分解

1.固有値固有ベクトル

正方行列A、スカラーλ、ベクトルx(≠0)の時に以下が成り立つとき、λを行列Aの固有値、xを行列Aの固有ベクトルといいます。

f:id:kanriyou_h004:20190907011412p:plain・・・・(1)

Aが4行4列の行列の場合、xは4要素になります。

xは行列Aをかけた場合も、1要素ずつλ倍した場合も、同じベクトルとなる不思議なベクトルです。

ちなみに、固有値の求め方は以下の通りです。

(1)式を左辺に寄せて

f:id:kanriyou_h004:20190907222705p:plain・・・・(2)

f:id:kanriyou_h004:20190907234529p:plain・・・・(3)※Eは単位行列

よって、

f:id:kanriyou_h004:20190907234408p:plain・・・(4)


内積がゼロになるλを求める。

f:id:kanriyou_h004:20190907224424p:plain・・・・(5)

この方程式は、λの二次方程式となるので、解くことで、2つの固有値λ1,λ2が求められます。

(3)の式にλ1を代入してλ1に対応する固有ベクトルx1が求まります。

同様に、λ2を代入してλ2に対応する固有ベクトルx2を求めることができます。

 

【実例】

例えば以下のような行列Aの固有値を求めます。

f:id:kanriyou_h004:20190907225113p:plain

まず、(4)式にあてはめて

f:id:kanriyou_h004:20190907234236p:plain

この内積がゼロになるλを求める。

f:id:kanriyou_h004:20190907234838p:plain

f:id:kanriyou_h004:20190907235254p:plain

f:id:kanriyou_h004:20190907235341p:plain

f:id:kanriyou_h004:20190907235532p:plain

(3)式にあてはめて、λ1=1のときの固有ベクトルを求める。

f:id:kanriyou_h004:20190908001536p:plain

f:id:kanriyou_h004:20190908001621p:plainの整数倍

同様に、λ2=4のときの固有ベクトルを求める。

f:id:kanriyou_h004:20190908091806p:plain

f:id:kanriyou_h004:20190908091958p:plainの整数倍

 

2.固有値分解

上記のようなAがn行n列(n次元)の正方行列があったときに、異なる固有値の集合λ1,λ2,...,λnに対して、固有ベクトルx1,x2,....,xnが存在するとき、以下の通りとなる。

f:id:kanriyou_h004:20190908110834p:plain・・・・(6)

※λiはスカラー量なので後ろからかけても同じ

固有ベクトルxi を列として並べた行列(x1 x2 ... xn)をPと置くと、以下の通りに変化できる。

f:id:kanriyou_h004:20200112164642p:plain・・・・(7)

なお、Λは、λiを降順に対角に並べた以下の対角行列です。

f:id:kanriyou_h004:20190906223357j:image

(7) の式の両辺から、Pの逆行列P^{-1}をかけると左辺からPが消えて、以下の式が得られます。

f:id:kanriyou_h004:20190908111820p:plain・・・・(8)

このように分解することを、固有値分解といいます。

3.固有値分解の使い方

固有値分解時に、Λをλiの降順に並べた対角行列としましたが、下の方の、小さい値の固有値λiは行列全体に与える影響が小さいので、省略することで制度をあまり落とさずに次元削減ができます。

とんでもなく次元数の高い行列計算を扱うディープラーニングでは、次元削減は非常にありがたい戦略なので固有値分解が試験でもよく出題されるものと思われます。

 

ただ、固有値分解は、Aが正方行列の時にのみ有効な戦略になります。

次回は、m行n列の行列に拡張した特異値分解を振り返りたいと思います。

 

2019年3月31日(土)にE資格を受験しました。

E資格対策として勉強の進め方や、参考書などをまとめました。

これから受験される方がいらっしゃいましたらご参考まで。

oregin-ai.hatenablog.com 

 

 2019年3月9日(土)にG検定を受験し、見事合格できました!

受験の体験記や勉強法などを別のブログにまとめました。

これから受験される方がいらっしゃいましたらご参考まで。

g-kentei.hatenablog.com

 【E資格対策に使った参考書】