E資格のシラバスにある応用数学の線形代数で重要な特異値分解とは

E資格のシラバスにある応用数学の線形代数で重要な特異値分解とは

E資格を受験してディープラーニングに強いエンジニアになろうと考えたら、試験の出題範囲を確認するためにシラバスを確認することになるでしょう。その内容を見てみると応用数学、機械学習、深層学習、開発・運用設計という大項目があるのに気づきます。この記事ではその中でも応用数学に含まれている線形代数の特異値分解について紹介します。

シラバスにある応用数学とは何か

特異値分解について触れるにあたってシラバスに大項目として記載されている応用数学について勉強を始める前に簡単に理解しておきましょう。シラバスに挙げられている項目は全てE資格の試験の出題範囲になっていて、難易度的には全てカバーできていないとE資格を取得することができません。応用数学ではディープラーニングのプロとしてエンジニアが仕事をするために必要な数学的知識を問う問題になっています。

数学に対して苦手意識を持っているエンジニアも多いことから、JDLA(日本ディープラーニング協会)の認定プログラムでも講座があり、ディープラーニングやE資格試験に特化した参考書も販売されています。応用数学は線形代数、確率・統計、情報理論の三つの中項目に分けられていて、それぞれの項目から必ず出題されています。

応用数学の線形代数とは何か

応用数学の中でも線形代数はシラバスの最も上位に挙げられているもので、E資格対策をするときにもまずここから手を付けるという人が多いものです。特異値分解について理解するためには、前提として線形代数とは何かを把握しておくと役に立ちます。

線形代数とはしばしば空間の数学とも呼ばれるもので、2次元、3次元、4次元、そしてn次元といった線形空間を数学的に扱うための代数学です。実際に使用するツールとしては行列や行列式、連立方程式などが代表例になります。線形代数には多くの数字を同時に取り扱う演算ができるのが特徴で、数字が互いに関連しあっていても式によって関連付けることが可能で同時に複数の処理を行えます。

特に行列を使うことによってn次元のものも取り扱うことができるため、行列を使う数学が線形代数だという理解をしている人も少なくありません。実践的にも行列理論が産業分野で広く活用されていることから、線形代数を使った仕事をする上では行列を習得することが欠かせません。ディープラーニングにおいても例外ではなく、行列の基本的な演算を学んで使いこなせるようになることが必要です。

線形代数における特異値分解とは何か

AI(人工知能)を使ったプログラムを記述できるようになるためには線形代数の中の特異値分解を簡単にできる程度のスキルが求められます。そのため、E試験のシラバスの線形代数の中で唯一小項目に挙げられているのが特異値分解なのです。換言すれば、特異値分解を理解していなければ検定に合格するのは難しいと考えた方が良いでしょう。

特異値分解とは行列における特異値を求めることに相当します。特異値について理解するためには特異値分解の定義を確認する必要がありますが、一般的には次のように定義されます。
次元mxnのrank=kの実数行列Aがあるときに、次元mxrの直交行列Vと次元rxnの直交行列Uに対して、次元rxrの対角行列Sが存在し、A=US[V]という関係を満たすというものです。ここで[V]はVの逆行列を指します。このとき、Sの対角成分は0より大きな値を示し、Aの特異値分解によって算出された特異値となります。
また、Uを左特異ベクトル、Vを右特異ベクトルと呼ぶというのが定義です。

特異値分解はPythonを使って表記することも可能です。実際にディープラーニングで使用するときには特異値分解を理解しているだけでは不十分でコードを記述して組み込めなければなりません。E資格の試験でもPythonを使用したコードは出題範囲に含まれているので特異値分解を記述できるようになっておくのが大切です。
Pythonではsvdという関数を用いることによって簡単に特異値分解を実行することができます。実際にnp.arrayなどで定義した実数行列Aを定義してコードを書くと、A=US[V]という特異値分解は次のようになります。
u, s, vh = svd(A)
これによってsに特異値が格納され、uに左特異ベクトル、vhに右特異ベクトルが入ることになります。

特異値分解を行うことによってできることはたくさんあります。例えば、最小二乗法近似をするのは色々な分野で行われていることですが、ディープラーニングにおいても同じ考え方で次元を減らす目的で活用されるシーンが多いでしょう。特異値分解をすることによって特異値を算出すると行が下の方、あるいは列が右の方になるほど数値を小さくするように並べられます。

このようにした際に下の方の行や列の右の方は全体に与える影響が少ないと考えられるため、省略して近似することが可能です。このようにして次元を減らすことにより重要な要素を落とさないようにしつつ、演算速度を向上させることが可能です。

特異値分解を究めて合格を目指そう

E資格の試験に合格するためには応用数学の線形代数に含まれている唯一の小項目である特異値分解を究めることが必須です。基本的な計算方法を覚えて使えるようにしておくだけでなく、Pythonでの記述も合わせて理解しておくのが効果的です。必ず出題される部分なのでどのような形で出題されても動じないようにJDLA認定講座も活用して対策をしておきましょう。