• 締切済み

一般化逆行列と最小二乗法

最小二乗法は割と簡単に理解することができますし、式の誘導も簡単ですが、分数が出てきたら分母がゼロでないとか、逆行列が存在するとか理想的な条件を仮定しているように思います。そこでその理想的な条件が存在しない場合、すなわち逆行列が存在しない場合、”一般化逆行列を用いて計算する”とサラリと書いてある本がありました。データ解析ソフトRなどもそれに対応しているかもしれません。一般化逆行列というのはすんなり受け入れられるものでしょうか。何か別の指標があってそれを最小化するとか何らかのペナルティとか損失を甘受した上で計算していると思うのですが、いきなりピンチヒッターとして出てくることができるみたいに書いてありました。数理統計の本には共線性がある場合とか行列式が極めて小さな値になるとかの場合に出てくるようです。少し読んでみると固有値・固有ベクトル(正規直交行列を構成)で行列を展開したもののような記述もあり、これはこれで普通のことのように思うのですが。一般化逆行列とはどのようなものだと思えばいいでしょうか。

みんなの回答

  • f272
  • ベストアンサー率46% (8535/18273)
回答No.2

Aをm*n行列,bをm*1行列,xをn*1行列とするとき線形連立方程式Ax=bを解くことを考えます。 1. Aが正方でフルランク(rank(A)=m=n)のときは,x=A^(-1)*bです。 2. Aが縦長で列フルランク(rank(A)=n<m)のときは,不能です。 3. Aが横長で行フルランク(rank(A)=m<n)のときは,不定です。 4. Aがランク落ち(rank(A)<min(m,n))のときは,1ー3のどれかに帰着できます。 2.のときは全方程式の2乗誤差が最小となる点を解とします。 つまりx*= (1/2)||Ax-b||^2を最小化するxです。 計算するとx*=(A^t*A)^(-1)*A^t*b 3.のときは全解候補のうちL2ノルムが最小となる点を解とします。 つまりx*= Ax=bを満たすxのうち(1/2)||x||^2を最小化するxです。 計算するとx*=A^t*(A*A^t)^(-1)*b 4.の場合には(A^t*A)^(-1)や(A*A^t)^(-1)が計算できませんが,A=BCただしBはm*r行列,Cはr*n行列でr=rank(A)とすることで計算不能を回避できます。Ax=BCx=bから x*=A-*b=C-*B-*b=C^t*(C*C^t)^(-1)*(B^t*B)^(-1)*B^t*b です。つまりA-=C^t*(C*C^t)^(-1)*(B^t*B)^(-1)*B^tです。これが一般逆行列(ムーア-ペンローズ)です。 通常はB=U,C=Σ*V^tとして計算します(特異値分解)。ただしUはm*m行列,Vはn*n行列,Σはm*n行列でUとVは直交し,Σは対角行列でrまでは非零です。 > 解として認められるとしても限定的ではないかと思うのですが。 多数ある最小2乗点のうちの最小ノルム点を解とする場合に対応します。

skmsk1941093
質問者

お礼

懇篤な回答ありがとうございます。大変参考になりました。2番目の不定解の場合、未知数に対して式が多すぎるという風に見えます。条件が多すぎるので問題をすり替えて最小二乗解を求めることに変更した、と読めます。そういうことでしょうか。そのことを納得するのはデータ解析の回帰曲線の同定で納得できることはできますが、それは数学ではないという感じです。では、3番目はどのように理解すればいいでしょうか。L2ノルムを最小化するというのは小さな解を求める問題に設定変更したということのようですが。4番目は2,3に帰着できるので3番目の理解が壁になっています。

  • f272
  • ベストアンサー率46% (8535/18273)
回答No.1

https://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E9%80%86%E8%A1%8C%E5%88%97 これのことを指している場合がほとんどです。

skmsk1941093
質問者

お礼

回答ありがとうございます。初等線形代数では行列は穏当なものであり、ガウスの消去法のような原始的な方法で解けることが前提でその枠組みから抜け出せないでいたのですが、実際は行列が穏当なものか(正則ってことかもですが、)調べて使えるところで使う(行数、列数が元のものと違う)ということなのかなと思います。一般化逆行列でも解というものは出力されるのだろうと思います(ともかく逆行列と言っているので)。その解はふつうどのように使うのでしょうか。解として認められるとしても限定的ではないかと思うのですが。

関連するQ&A

専門家に質問してみよう