E資格(JDLA Deep Learning for ENGINEER 2019 #2)対策として、今回は、応用数学の分野のうち、特異値分解を振り返ります。特異値分解は、過去問に言及されている受験者の方のサイト等を拝見する限りでは、前回掲載した、固有値分解とともに頻出問題のようです。
前回の固有値分解については、こちらをご参照ください。
>>E資格対策振り返り(応用数学-固有値、固有ベクトル、固有値分解)
特異値分解
1.固有値分解から拡張してみる
前回の固有値分解が、
Aは、n行n列の正方行列
Pは、固有ベクトルを列に並べたn行n列の正方行列
Λは、固有値を降順に並べた対角行列
だったので、m行n列に拡張して、以下を求めることを目指します。
この時、U,Vは直交行列、Σは特異値と呼ばれるを降順にi行i列に並べ残りは0となる行列です。
2.各行列をどう求めるのか
試験対策を考えるのであれば、穴埋めになることを想定して、以下を覚えておくと、の回答しやすいと思います。
- U,Vは直交行列である事を利用すると、任意の2列の内積を求めるとゼロになる
1の例
上記のとき、2列目と3列目の内積がゼロになるので、以下でaが求められる。
- また、U,Vの各列は正規直交系なので、各列のL2ノルムは1になる。
2の例
1の例で、3列目のL2ノルムが1になるので、以下でaで求められる。ただし、一意に特定できないので、他の法則と組み合わせる必要がある。
- 固有値の積は、行列式に等しい。
3の例
固有値λ1=1が分かっているとき、以下の行列の残りの固有値λ2を求める。
固有値の積が行列式に等しいので、以下でλ2が求まる。
- の固有値の平方根がΣの対角に降順に並ぶ。
4の例
Aが2行3列であった場合、3の例で求めた固有値を使って、Σは以下の通りとなる。
3.特異値分解の使い方
特異値分解も固有値分解時と同様、Σについてはσiを降順に並べていますが、行列が大きくなる(次元が大きくなる)と、下のほうの値のσiは行列全体に与える影響が小さいので、省略することで制度をあまり落とさずに次元削減ができます。
固有値分解時は、正方行列にしか有効でなかった次元削減が、特異値分解に拡張することで、m行n列の行列についても次元削減ができるようになりました。
とんでもなく次元数の高い行列計算を扱うディープラーニングでは、次元削減は非常にありがたい戦略なので、固有値分解と同様に特異値分解についても試験でもよく出題されるのは頷けます。
今後も、引き続き、復習をかねて、E資格対策を振り返っていきたいと思います。
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エンジニアのための機械学習理論入門 [ 中井悦司 ]