もっと線形代数

何かの測定量yについての、一般化線形モデル
y = Σ a_i f_i(x) (i = 1 ~ n)
の係数a_iを決める問題について考えたい。f_iはべき関数でも、負べきでも、三角関数でもなんでもよい。係数aについてyが線形になっていれば、問題はこの形に帰着する。

これを解くのには最小2乗法を用いることになるが、その実際は見かけほど単純ではない。測定からデータを集めてフィッティングすることになるが、xを変化させyを測定することになる。測定点を指数j = 1~mで表すことにすると、データは y_j = Σ a_i f_i(x_j)と書ける。行列で次のように書くこともできる:y = Fa
ここでyはm次の列ベクトル、Fはm行n列行列、aはn次列ベクトルである。最小2乗問題は、正規方程式を解くことで得られる。行列Fの転置行列F^tを用いて正規方程式はF^t Fa = F^t yとなる。あとはF^t Fの逆行列を求め、両辺に左からかければ解決する。しかしながら求まる係数ベクトルaは測定値に対して鋭敏性を持つ場合がある。解析にはけっこう細かな注意が必要だ。
鋭敏性は(F^t F)^-1の特異値の大きさで決まる。この特異値は、Fの特異値の逆数でもある。最小の特異値をΔとする。非常に大ざっぱにいって、測定値yがΔだけ変化すると、unity程度、求めたいaが変化してしまう。誤差をともなう測定について解析する際には気を付けなくてはいけない。驚いたことに単純な線形フィッティングの問題でも、これに似た状況がよく出てくる。

問題を回避する具体的な処方箋が知られている。ティコノフの正規化がその一つだ。ティコノフの正規化ではダンピングパラメータを導入し、誤差に対する鋭敏性を鈍化させる。この辺りの問題は逆問題として知られているようで、チラホラ書店でも解説本も見かけるようになった。

線形代数は非常に良く使うので、つい知っている気になっていたのだけれど、考えてみると大学教養で習った以上のことはあまり知らなかった。もっと実践的な応用的ツールについても勉強しなきゃなと最近思う。