※日経ソフトウエア 2018年11月号の記事を再構成

ディープラーニングに代表される機械学習が、数式が苦手な人でも“ざっくり分かる”連載講座。第11回は代表的な機械学習アルゴリズムのうち、ある行列を簡単で扱いやすい3つの行列の積に分解する次元削減手法「特異値分解」を解説する。

特異値分解

 特異値分解とは、ある行列をより簡単で扱いやすい形式の3つの行列の積に分解することだ。主成分分析と同じく、次元削減に使われる手法となる。英語の名称「Singular Value Decompositon」の略で、SVDとも呼ぶ。

 なぜ、行列を分解する必要があるかというと、いわゆるビッグデータなどと呼ばれる世の中のデータは、行列の形にすると整理しやすいからだ。行列はExcelのシートに似ており、横方向に並んでいるのを行、縦方向に並んでいるのを列と呼ぶ。行列データでは、対象を行方向、その属性を列方向に並べることが一般的。例えば、対象が人の場合、属性としては年齢や身長、体重などがある。その場合の行列データは、図1のようになる。行列データでは、列の数(属性の数)を次元と呼ぶ。

図1 ●行列データの例

 行列の特異値分解によって、高次元の行列データを、より次元の低いデータへと次元削減することが可能になるのだ。

第10回
主成分分析とは?|機械学習アルゴリズム10種(8)
第12回
協調フィルタリングとは?|機械学習アルゴリズム10種(10)