前回→VMLS 12.2
テキスト→Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares
12.3 Solving least squares problems
最小二乗法はQR分解を用いて解くことができる。 をQR分解における とする (これは12.3の仮定にもとづく)。疑似逆行列 は と表されるため、次式を得る。
アルゴリズム 12.1 QR分解を用いた最小二乗法の解法
各行が線形独立な 型行列 と 次元ベクトル が与えられたとき、
- のQR分解 を計算する。
- を計算する。
- Back substitution により上三角行列の方程式 を解く。
係数行列が正方行列の場合との比較
係数行列 が正方行列である連立一次方程式 の解は であった。 は のQR分解を用いて と表される ((11.4) 参照)。この方程式は (12.10) と形式的に同一である。(12.10) における唯一の相違点は、 と が正方行列である必要がなく、 が最小二乗解、すなわち、 を一般に満たさないということである。
実際に、アルゴリズム 12.1 は連立方程式をQR分解で解くアルゴリズム 11.2 と同一である (11.2 の唯一の相違点は と が縦長でもよいことである) 。
が正方行列であるとき、方程式 を解くことと最小二乗法 は同値であり、アルゴリズム 11.2 とアルゴリズム 12.1 も同値となる。したがってアルゴリズム 12.1 は が正方行列であるとき方程式 を解くアルゴリズム 11.2 の一般化であると考えることができ、 が縦長であるときの最小二乗解を計算できる。
バックスラッシュ記法
行列を扱ういくつかのソフトウェアパッケージには優決定系の方程式の最小二乗法を計算するためのバックスラッシュ演算が提供されている (209ページ参照)。これらのパッケージでは は が正則であるときの の解 、または が縦長で線形独立な列をもつときの最小二乗解 を意味する (ただしバックスラッシュ記法は数学的に正式な記法ではない)。
複雑性
アルゴリズム 12.1 の最初のステップの複雑性は フロップである。次のステップでは行列とベクトルの積を含むため、複雑性は である。三番目のステップでは フロップを要する。合計フロップ数は
スパース最小二乗法
疎行列 に対する最小二乗法はさまざまな場面に応用され、たとえば、12.1 の一般的なアルゴリズムで疎行列用に工夫したQR分解 (190ページ参照) を用いることでより効率的に解が求まる。
が疎行列であることを活用するもう一つの簡単な手法は正規方程式 を巨大な疎行列を用いて解くことである。
行列の最小二乗法
最小二乗法のシンプルな拡張は方程式 を最小化する 型行列 を求めることである。ここで は 型行列、 は 型行列、ノルムは行列ノルムである。これは行列の最小二乗法 (matrix least squares problem) と呼ばれる。 のとき と はベクトルであり、行列の最小二乗法はもとの最小二乗法となる。
行列の最小二乗法は、実は 個の最小二乗法の組に過ぎない。これを確かめるために、
行列の最小二乗法はアルゴリズム 12.1 が factor-solve アルゴリズムのもう一つの例であるという事実を用いることで効率的に解くことができる。 を解くために我々は のQR分解を行い、アルゴリズム 12.1 のステップ2とステップ3を 個の の各列について実行する。合計の計算コストは フロップである。 が と比較して小さいときは、およそ フロップであり、一つの最小二乗法 (すなわち、右側にベクトルがある場合) の計算コストと等しくなる。
*1:上三角行列を係数行列にもつ連立一次方程式を一番下の行から順に求める手法。