Top > 近似法 > 04.MLSA
Last-modified: Fri, 30 May 2008 12:11:26 JST

移動最小二乗近似

移動最小自乗近似とも書かれる*1。移動という言葉は、移動平均の移動に近い。英語はMoving Least Square Approximation(MLS,MLSA)だろう。

さて、前ページの重み付き最小二乗近似まで理解してもらえただろうか。 重み付き最小二乗近似を用いれば、重要なデータに大きな重みを与えることで局所的に(大きな重みを与えた位置で) 誤差の少ない近似関数が得られるということを示した。ここではこの考え方を拡張して移動最小二乗近似という手法を説明してみる。以下、英名Moving Least Square Approximationを略してMLSAと表記する。

重みを、節点の近くで大きく、節点から遠い位置で小さくなるようにとる。すなわち、重みを図()に示すような、位置についての関数としてみる。

前述のWLSAの手順と同様に、重み付き二乗誤差が最小になるように近似関数を定める。ここで、重みが定数ではなく、関数になったということで、式()のw_iw_i(\mathbb{x})と書き換えておく。 さらに、重みが関数になったことから、係数a_iも位置についての関数となる。よってこれも\mathbb{a}\mathbb{a}(\mathbb{x})と書き換える。すると、重み付き二乗誤差は次式で表される。

J\left({\mathbb{a}(\mathbb{x})}\right)= \sum^{N}_{i=1} w_i(\mathbb{x}) \left( \mathbb{p}^T(\mathbb{x}_i) \mathbb{a}(\mathbb{x}) - \bar{u}_i \right)^2

さて、係数\mathbb{a}(\mathbb{x})を求める。これまた、係数と重みが位置についての関数となるだけで、WLSAと同じだ。すなわち、ベクトル表記で

J(\mathbb{a})=(\mathbb{Q}^T \mathbb{a}(\mathbb{x})-\mathbb{\bar{u}})^T \mathbb{W}(\mathbb{x}) (\mathbb{Q}^T \mathbb{a}(\mathbb{x})-\mathbb{\bar{u}})

a_i(\mathbb{x})で偏微分し、整理すると、

\mathbb{a}(\mathbb{x})=\left( \mathbb{Q}^T \mathbb{W}(\mathbb{x}) \mathbb{Q} \right)^{-1} \mathbb{Q}^T \mathbb{W}(\mathbb{x}) \mathbb{\bar{u}}

となる。近似された関数はu(\mathbb{x})=\mathbb{p}^T(\mathbb{x}) \mathbb{a}(\mathbb{x})に代入して、

u(\mathbb{x})=\mathbb{p}^T(\mathbb{x}) \left( \mathbb{Q}^T \mathbb{W}(\mathbb{x}) \mathbb{Q} \right)^{-1} \mathbb{Q}^T \mathbb{W}(\mathbb{x}) \mathbb{\bar{u}}

で表される。ここで注意しておくことは、係数a_iは関数となったことから、 例えば一次元の話で、近似解をu(x)=a_0+a_1 xと仮定したとしても、求まる近似解は一次式ではないということだ。 形状関数は

\mathbb{\phi}(\mathbb{x})=\mathbb{p}^T(\mathbb{x}) \left( \mathbb{Q}^T \mathbb{W}(\mathbb{x}) \mathbb{Q} \right)^{-1} \mathbb{Q}^T \mathbb{W}(\mathbb{x})

である。

逆行列\left( \mathbb{Q}^T \mathbb{W}(\mathbb{x}) \mathbb{Q} \right)^{-1}が存在する条件は、\mathbb{x}に対して、\mathbb{W}(\mathbb{x})の対角成分が\mathbb{a}(\mathbb{x})の要素数よりも多いことである。

MLSAの特徴を示しておく。ひとつは連続性に関する内容、もうひとつは局所性に関する内容である。

u(\mathbb{x})=a_0(\mathbb{x})と置いたとき、すなわち、\mathbb{p}=\begin{Bmatrix}1\end{Bmatrix}かつ\mathbb{a}=\begin{Bmatrix}a_0(\mathbb{x})\end{Bmatrix}とした場合をシェパード関数(Shepard Function)という。\mathbb{a}の要素がa_0(\mathbb{x})しかなくとも、w_i(\mathbb{x})の複雑さによって、u(\mathbb{x})はいくらでも複雑な関数と成り得る。

冒頭に、移動平均という用語を持ち出した。LSA、WLSA、MLSAと見てきたが、これらの拡張は、平均(Average)、重み付き平均(Weighted Average)、移動平均(Moving Average)の拡張とよく似ている。

すなわち、平均は(より細かく言えば、相加平均や算術平均)、

u=\frac{1}{N}\sum^{N}_{i=1} \bar{u}_i

重み付き平均は

u=\frac{\sum^{N}_{i=1} w_i \bar{u}_i}{\sum^{N}_{i=1} w_i}

そして、今回のような拡張を行えば、

u(x)=\frac{\sum^{N}_{i=1} w_i(x_i) \bar{u}_i}{\sum^{N}_{i=1} w_i(x_i)}

規定節点値の扱い

LSA、WLSA、MLSAと見てきた。どの近似手法も各節点位置での誤差の和が最小になるように定めているので、 一般的に、得られる近似関数は、節点位置で節点値とならない(書き換えればu(\mathbb{x}_i)\not=\bar{u}_i)。 ある位置で、正確な値がわかっている場合、その条件を満たすように近似解を求めることを考える。

ひとつの解決方法は、近似解の仮定に条件を含めてしまってもいいだろう。一次元の問題で、 u(x)=a_0+a_1 xと仮定するのではなく、u(x)= 1+a_1 xと仮定すれば、u(0)=1の条件は必ず満たされる。 もっと一般的な場合にも対応できる手法が提案されている。が、どれも計算コストは小さくない。

逆行列を使う

逆問題を解くことに置き換える。 この方法には致命的な欠陥がある。 原因から先に書くと、MLSAの形状関数は数学的に一次独立であることがまったく保証できていないことに起因する。 det|R|=0 となる場合は簡単に示すことができる。 これの意味するところは、式中に現れる逆行列 R^{-1} が存在する保証が無い、ということである。 支持領域を小さくする、重み関数を工夫することで、この問題はある程度回避できるけれど、 数学的な保証がないのだから、はっきりしたことは当然言えない。 本節冒頭で「まったく保証できていない」という表現を使った理由は、 制約を加えれば一次独立にできる、などという保証も(今のところ?)無い、ということだ。 使う目的によるだろうけど、ある程度の制約があってもいいので、一次独立性が保証されればMLSAは使いやすい近似手法なのかもしれない。

\section{特異値分解を用いる}

特異値分解を使った方法がある。逆行列を使う方法と本質的には同じだ。実際、逆行列を使う方法は特異値分解を用いる場合の特別な場合である。 特異値分解を用いると、擬似逆行列というものが得られるのをご存知だろうか。これでピンとくる方には以下の説明は不要かもしれない。



*1 移動最小二乗法、移動最小二乗近似法など、さまざま


コメント

適当に書いて頂いて構いません。スパム対策があるので、書き込めない場合があります。また、ボタンを押した後にしばらく時間がかかります。

新規コメント(ラジオボタンで親コメント選択可)
お名前

現在、コメントはありません