コンテンツにスキップ
これは開発版のドキュメントである. 内容は次のリリースまでに変更される可能性がある. 最新のリリース版は 0.9.x を参照.

非線形最小二乗法

件の行列方程式を次の非線形最小二乗問題として解く方法もある,

ここでのパラメータはの位相とである. 反復的に上式を最小化していく方法がいくつか知られている.

ここでは, LM (Levenberg-Marquardt) 法 1 2を紹介する. LM法を用いた例としては 3 4などがある.

後のため, 推定すべきパラメータを

と置き, 最適化問題を

と書く. ここでベクトルに対しては

を意味する. まず, は複素関数であることに注意する. LM法を適用できるようにするため, 実部と虚部に分けると,

となる. ここで, はそれぞれの実部と虚部を表す.

とおくと, は実関数であり

となるので, LM法が適用できる.

この時, のJacobian は

から,

となる. このを用いて, LM法では, 以下の更新式に従いパラメータを更新する.

の決め方にはいくつかのバリエーションが知られている. 例えば, 文献5を参照.

ここで, 計算量を削減するため, をあらかじめ計算しておこう.

であるが,

であるから, 結局,

(はHermite行列なので, 一部省略した. 以下同様.)

ここで, 列ベクトルに対して,

であり, したがって,

となる. なお, はとのHadamard積を意味する. ここで,

と定義すると,

となり,

と計算できる.

次に, を計算しよう.

ここで, なので,

となる. ここで, 列ベクトルに対して,

である. したがって,

は, の各行を最初の列分だけ足したものに等しい. したがって,

ここで, は, の各行を最初の列分だけ足し合わせて得られる列ベクトルである.

なお実際にこのLM法を実装してみるとわかるが, 実は

という風に, 振動子の出力を(一律に)固定してしまうほうが, 再現性の意味でも, 計算量の意味でも性能がいい6. このときは, 例えば, パラメータはとして,

を計算すれば良い.

なお, 更新式を

としたものはGauss-Newton法と呼ばれ,

としたものは勾配降下法 (Gradient-Descent), あるいは, 最急降下法 (Steepest-Descent) と呼ばれる. LM法はこれらの間の子である.

  1. Levenberg, Kenneth. “A method for the solution of certain non-linear problems in least squares.” Quarterly of applied mathematics 2.2 (1944): 164-168. ↩

  2. Marquardt, Donald W. “An algorithm for least-squares estimation of nonlinear parameters.” Journal of the society for Industrial and Applied Mathematics 11.2 (1963): 431-441. ↩

  3. Sakiyama, Emiri, et al. “Midair tactile reproduction of real objects.” International Conference on Human Haptic Sensing and Touch Enabled Computer Applications. Cham: Springer International Publishing, 2020. ↩

  4. Matsubayashi, Atsushi, Yasutoshi Makino, and Hiroyuki Shinoda. “Rendering ultrasound pressure distribution on hand surface in real-time.” Haptics: Science, Technology, Applications: 12th International Conference, EuroHaptics 2020, Leiden, The Netherlands, September 6–9, 2020, Proceedings 12. Springer International Publishing, 2020. ↩

  5. Madsen, Kaj & Nielsen, Hans & Tingleff, O., “Methods for Non-Linear Least Squares Problems (2nd ed.),” 60, 2004. ↩

  6. 詳しいことはまだわかっていないが, 出力に対する制約が入っていないことが原因と考えられる. ↩