リッジ回帰の反転:与えられた応答行列と回帰係数、適切な予測子を見つける


16

標準的なOLS回帰問題:行列\ Y\ Xがあり、L = \ | \ Y- \ X \ B \ | ^ 2を最小化するために\ Bを見つけたいです 解は\ hat \ B = \ argmin_ \ B \ {L \} =(\ X ^ \ top \ X)^ + \ X ^ \ top \ Yで与えられます。YXββ = argmin β { L } = XX + XY

L=YXβ2.
β^=argminβ{L}=(XX)+XY.

「逆」問題を提起することもできます:Y\ B ^ *が与えられると、\ hat \ B \ approx \ B ^ *を生成する\ hat \ Xβ見つけます。つまり、\ | \ argmin_ \ B \ {Lを最小化します。\} - \ B ^ * \ | ^ 2。つまり、応答行列\ Yと係数ベクトル\ B ^ *があり、\ B ^ *に近い係数を生成する予測行列を見つけたいと思います。これはもちろん、解決策OOL回帰問題でもあります\ hat \ X = \ argmin_ \ X \ Big \ {\ | \ argmin_ \ B \ {L \}-\ B ^ * \ | ^ 2 \ Big \} = \ Y \ B ^ \ top(\ B \ B ^ \ top)^ {+}。X^β^βargminβ{L}β2Yββ

X^=argminX{argminβ{L}β2}=Yβ(ββ)+.

明確化の更新: @ GeoMatt22が彼の答えで説明したように、Yがベクトルの場合(つまり、応答変数が1つだけの場合)、このX^はランク1になり、逆問題は大幅に過少決定されます。私の場合、Yは実際には行列です(つまり、多くの応答変数があり、多変量回帰です)。したがって、Xn×pYn×qβp×qです。


リッジ回帰の「逆」問題の解決に興味があります。つまり、損失関数は

L=YXβ2+μβ2
なり、解は
β^=argminβ{L}=(XX+μI)1XY.

「逆」問題は、

X^=argminX{argminβ{L}β2}=?

繰り返しますが、応答行列Yと係数ベクトルβあり、\ B ^ *に近い係数を生成する予測行列を見つけたいと思いますβ

実際には、2つの関連する定式化があります。

  1. \ Y\ B ^ *\ muが与えられた\ hat \ Xを見つけます。X^Yβμ
  2. 検索と与えと。X^μ^Yβ

どちらにも直接的な解決策がありますか?


問題を説明するためのMatlabの簡単な抜粋を次に示します。

% generate some data
n = 10; % number of samples
p = 20; % number of predictors
q = 30; % number of responses
Y = rand(n,q);
X = rand(n,p);
mu = 0;
I = eye(p);

% solve the forward problem: find beta given y,X,mu
betahat = pinv(X'*X + mu*I) * X'*Y;

% backward problem: find X given y,beta,mu
% this formula works correctly only when mu=0
Xhat =  Y*betahat'*pinv(betahat*betahat');

% verify if Xhat indeed yields betahat
betahathat = pinv(Xhat'*Xhat + mu*I)*Xhat'*Y;
max(abs(betahathat(:) - betahat(:)))

このコードmu=0は、そうでなければゼロを出力します。


以来と与えられている、彼らは損失の変動に影響を与えません。したがって、(1)では、まだ OLSを実行しています。(2)同様に単純です。これは、負に任意に負にすることで、比較する制約の制限内で損失を任意に小さくできるためです。これにより、ケース(1)になります。Bμμ^
whuber

@whuberありがとう。私はそれを十分に明確に説明しなかったと思います。(1)を検討してください。とが与えられます(これをと呼びましょう)が、近いリッジ回帰係数をもたらすを見つける必要があります。つまり、最小化するを見つけたいです。これがOLSである理由がわかりません。BμBXBX
argminB{Lridge(X,B)}B2.
アメーバは、モニカを復活させる

私が持っているようなものだ、私は知りたいように近い与えられたのである。を見つけることとはます。f(v,w)vargminwf(v,w)wargminvf(v,w)
アメーバは、モニカーを復活させる

あなたの投稿の説明は、その問題について混乱しています。なぜなら、あなたは実際にを損失関数として使っていないからです。投稿の問題(1)および(2)の詳細について詳しく説明していただけますか?L
whuber

2
@ hxd1011 Xの多くの列は通常「重回帰」と呼ばれ、Yの多くの列は通常「多変量回帰」と呼ばれます。
アメーバは、モニカーを復活させる

回答:


11

問題が対象の問題のより正確な定式化に収束したので、ケース1(既知のリッジパラメーター)の解決策を見つけました。これは、ケース2(正確な分析ソリューションではなく、単純な式といくつかの制約)にも役立ちます。

要約: 2つの逆問題定式化のどちらにも固有の答えはありません。でケース2リッジパラメータ、不明で、無限に多くのソリューションがありますため、。が指定されているケース1では、特異値スペクトルのあいまいさが原因で、有限数の解があります。μω2Xωω[0,ωmax]ωXω

(派生は少し長いので、TL、DR:最後に機能するMatlabコードがあります。)


未決定のケース(「OLS」)

前方問題は ここで、、および。

minBXBY2
XRn×pBRp×qYRn×q

更新された質問に基づいて、であると仮定します。したがって、と与えられた場合、は決定です。質問のように、私たちは「デフォルト」を仮定します(最小ノルム)解 ある擬似逆の。n<p<qBXYL2

B=X+Y
X+X

*で与えられる の特異値分解(SVD)から 、擬似逆は**として計算できます。 (第2の式が減少SVDを使用しながら、*最初の式は、フルSVDを使用**簡単にするために、私が想定しています。フルランクを有する、すなわちが存在します。)X

X=USVT=US0V0T
X+=VS+UT=V0S01UT
S 1 0XS01

順問題は、溶液持つように 将来の参考のために、Iノートその、は特異値のベクトルです。S 0 =はdをI Gσ 0σ 0 > 0

BX+Y=(V0S01UT)Y
S0=diag(σ0)σ0>0

逆問題では、とが与えられます。は上記のプロセスから来たことを知っていますが、ません。タスクは適切なを決定することです。B B X XYBBXX

更新された質問で述べたように、この場合、本質的に同じアプローチを使用してを回復できます。つまり 、逆を使用してなります。X 0 = Y B + BX

X0=YB+
B

過剰決定ケース(リッジ推定器)

「OLS」の場合、最小ノルムのソリューションを選択することで、未決定の問題が解決されました。つまり、「一意の」ソリューションが暗黙的に正則化されました

最小ノルムのソリューションを選択するのではなく、ここでパラメーターを導入して、ノルムの「小ささ」を制御します。つまり、リッジ回帰を使用します。ω

この場合、与えられる、一連の前方問題があります 左右の異なるベクトルを 収集する問題は、次の「OLS」問題に還元できます。 ここで、拡張行列 、K = 1 ... Q 分間βX β - Y K 2βkk=1,,q
B ω = [ β 1··· β K ]

minβXβyk2+ω2β2
BX ω B - Y 2 X ω = [ X ω I ]
Bω=[β1,,βk],Y=[y1,,yk]
minBXωBY2
Xω=[XωI],Y=[Y0]

この過剰決定の場合、解はまだ擬似逆によって与えられ が、擬似逆は現在変更されており、結果は* ここで、新しい「特異点スペクトル」行列は(逆)対角線を持ちます** (*幾分関与計算は、これは簡潔にするために省略されている導出するために必要な。それは博覧会に類似して、ここのためケース。**ここでのエントリベクトルは、ベクトルで表されます。すべての操作はエントリ単位です。B ω = V 0 S - 2 ω U T Y σ

Bω=X+Y
Bω=(V0Sω2UT)Y
σω2=σ02+ω2σ0
σ ω σ 0pnσωσ0

この問題では、として「基本ソリューション」を正式に回復できます が、これはもはや真のソリューションではありません。

Xω=YBω+

ただし、この「解決策」はSVD 持ち、上記の特異値持つという類似性がまだあります 。 σ 2 ω

Xω=USω2V0T
σω2

したがって、目的の特異値を回復可能な特異値および正則化パラメーター関連付ける2次方程式を導出できます。解は σ 2σ0 ωσ0= ˉ σ ±Δσσω2ω

σ0=σ¯±Δσ,σ¯=12σω2,Δσ=(σ¯+ω)(σ¯ω)

以下のMatlabデモ(Octaveを介してオンラインでテスト済み)は、この解決方法が理論と同様に実際に機能するように見えることを示しています。最後の行のショーは、すべての特異値という復興している、私は完全に取るためにどのルート考え出したていない(=対)。それは常になりますルート。これは一般に「小さい」に当てはまるようですが、「大きい」はルートが引き継ぐようです。(以下のデモは現在「大」ケースに設定されています。)ˉ σ ± Δ σ + - ω = 0Xσ¯±Δσsgn+ω=0ω ω -+ωω

% Matlab demo of "Reverse Ridge Regression"
n = 3; p = 5; q = 8; w = 1*sqrt(1e+1); sgn = -1;
Y = rand(n,q); X = rand(n,p);
I = eye(p); Z = zeros(p,q);
err = @(a,b)norm(a(:)-b(:),Inf);

B = pinv([X;w*I])*[Y;Z];
Xhat0 = Y*pinv(B);
dBres0 = err( pinv([Xhat0;w*I])*[Y;Z] , B )

[Uw,Sw2,Vw0] = svd(Xhat0, 'econ');

sw2 = diag(Sw2); s0mid = sw2/2;
ds0 = sqrt(max( 0 , s0mid.^2 - w^2 ));
s0 = s0mid + sgn * ds0;
Xhat = Uw*diag(s0)*Vw0';

dBres = err( pinv([Xhat;w*I])*[Y;Z] , B )
dXerr = err( Xhat , X )
sigX = svd(X)', sigHat = [s0mid+ds0,s0mid-ds0]' % all there, but which sign?

逆問題は一般的に不適切であり、分析的ソリューションは非常に脆弱であるため、このソリューションがどれほど堅牢であるかを言うことはできません。しかし、をガウスノイズで汚染する大雑把な実験(つまり、フルランクと低減ランク持っている)は、メソッドが適切に動作していることを示しているようです。p nBpn

問題2(IE用として不明)、上記少なくとも与え上限に。二次判別式が非負であるためには、 ω ω ω 最大 = ˉ σ N = [ 1ωω

ωωmax=σ¯n=min[12σω2]

二次ルート符号のあいまいさについて、次のコードスニペットは、がと異なる場合でも、符号に関係なく、すべてのが同じ前方リッジ解を与えることを示しています。X^Bσ0SVD[X]

Xrnd=Uw*diag(s0mid+sign(randn(n,1)).*ds0)*Vw0'; % random signs
dBrnd=err(pinv([Xrnd;w*I])*[Y;Z],B) % B is always consistent ...
dXrnd=err(Xrnd,X) % ... even when X is not

1
+11。この質問に答えるためにあなたが注いだすべての努力と、私たちが行ったすべての議論に感謝します。これは私の質問に完全に答えているようです。この場合、単にあなたの答えを受け入れるだけでは十分ではないと感じました。これは、この回答が現在持っている2つ以上の賛成に値します。乾杯。
アメーバは、モニカーを復活させる

@amoebaありがとう!役に立ったことがうれしいです。あなたがリンクするwhuberの答えにコメントを投稿すると思います。彼がそれが適切であると思うかどうか、そして/または使用するより良い答えがあるかどうか尋ねます。(ただし、彼はSVDの議論の前書きに、つまり過剰に決定されたます。)pnX
GeoMatt22

@ GeoMatt22元の質問に対する私のコメントは、使用することpinvは良いことではないと言っています、あなたは同意しますか?
ハイタオデュ

1
@ hxd1011通常、あなたは(ほとんど)行列を数値的に明示的に反転させることを決して望みません。これは疑似逆にも当てはまります。ここで使用した2つの理由は、1)数学方程式+ amoebaのデモコードとの整合性、2)未決定システムの場合、デフォルトのMatlabの「スラッシュ」解はpinvと異なる可能性があることです。私のコードのほとんどすべてのケースは、適切な\または/コマンドで置き換えることができます。これらのコマンドは一般的に推奨されます。(これらにより、Matlabは最も効果的な直接ソルバーを決定できます。)
GeoMatt22

1
@ hxd1011 は、元の質問に関するコメントのリンクから、以前のコメントのポイント2を明確にします。「AのランクがAの列数よりも小さい場合、x = A \ Bは必ずしも最小ではありませんノルム解法。計算量の多いx = pinv(A)* Bは、最小ノルム最小二乗解法を計算します。」
GeoMatt22
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.