FC2ブログ

Anaconda 学習:優決定系 って何?

2020-03-11 :  PCクリニック
ひょんなことから、
優決定系の線形方程式の最小二乗解を与える際の式変形(導出)
を見つけた。(2014.03.21 付 と、些か古い記事だが)

  優決定系の線形方程式

  大雑把にいって、優決定系 (overdetermined system) とは
  変数の数に対して制約式が多く、解が存在しないような問題です。

  線形方程式

         A・x = b

  において、行列 A が縦長の場合が優決定系と考えると簡単です。


  最小二乗解

  このような場合、解が存在しないので、近似解を求めることになります。

  そこで、残差 A・x - b を二乗した値が最小になるような近似解を求める
   (最小二乗法、least squares method) ということがよく行われます。
  つまり近似解 x~ を

         x~ = aug min( || A・x - b || ^ 2 )

  と定め、これを求めるようにします。

  結論からいうと、そのような最小二乗解は、線形方程式

         A'・A・x = A'・b

  を解くことで得られます。これは正規方程式とか呼ばれたりするらしいです。

  ・・・・・
  ・・・・・

       (<紙>注) A' とは、行列 A の転置行列を表す。



そこで、“正規方程式”で検索してみると、

線形回帰の Normal Equation(正規方程式)について
が、見つかる。

  ・・・・・
  ・・・・・

  一般化逆行列

  X に対して inv( X'・X ) がいつも存在するかというと、そうとは限りません。
  ただしこれも、Ang 先生は講義で「そうなることは非常に稀だから気にするな」
  と仰っています。
  また万が一そういった場合が発生したとしても、
  例えば Octave なら、pinv( X'・X ) とすれば良い、とも説明しています。

  Octave の pinv は、"Pseudoinverse"(擬逆行列、一般化逆行列とも言う。
  以下、「一般化逆行列」を用いる)を返す関数。
  引数の行列が可逆なら逆行列(に一致する行列)を返し、
  そうでなければある性質を満たす「一般化逆行列」を返す仕組みになっています。

  ・・・・・
  ・・・・・


inv に対して、pinv ですか?


Python では?

numpy.linalg.pinv

  Compute the (Moore-Penrose) pseudo-inverse of a matrix.

  Calculate the generalized inverse of a matrix using
  its singular-value decomposition (SVD) and
  including all large singular values.

===

  行列の(ムーア-ペンローズ)擬似逆行列を計算します。

  特異値分解(SVD)を使用し、
  すべての大きな特異値を含めて、
  行列の一般化逆行列を計算します。

ですネ。


元に戻って、

7年前(2013-08-18)の記事:
Solve と、Findroot」で書いた様な場合(3x3行列)では、
キチントした解が求まるが、

もし、係数行列が4x3とかだったら、
最小二乗近似解を求めることができる。

と云う事ですね。



本日はここまで。


Anaconda ( Python ) 学習も続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒

191218
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

人気blog Ranking



最新記事
カレンダー
06 | 2021/07 | 08
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

FC2 / i2i / Google




Google Analytics
ブックマーク