Теперь, когда вопрос сошелся на более точную формулировку интересующей проблемы, я нашел решение для случая 1 (известный параметр гребня). Это также должно помочь в случае 2 (не аналитическое решение, а простая формула и некоторые ограничения).
Резюме: Ни одна из двух формулировок обратной задачи не имеет уникального ответа. В случае 2 , где параметр гребня неизвестен, существует бесконечно много решений для . В случае 1, где задано , существует конечное число решений для из-за неоднозначности в спектре сингулярных значений.X ω ω ∈ [ 0 , ω max ] ω X ωμ≡ω2Xωω∈[0,ωmax]ωXω
(Вывод немного длинный, поэтому TL, DR: в конце есть рабочий код Matlab.)
Недоопределенный случай («МНК»)
задача - это
где , и . X∈ R п × р B∈ R р × Q Y∈ R п × д
minB∥XB−Y∥2
X∈Rn×pB∈Rp×qY∈Rn×q
На основе обновленного вопрос, мы будем считать , так находится под определяется с учетом и . Как и в вопросе, мы будем считать « по умолчанию» (минимум -норм) решение
,
где является Псевдообратным из .B X Y L 2 B = X + Y X + Xn<p<qBXYL2
B=X+Y
X+X
Из разложения по сингулярным числам ( SVD ) для , заданного *
псевдообратное значение можно вычислить как **
(* Первые выражения используют полный SVD, а вторые выражения используют сокращенный SVD. ** Для простоты я предполагаю, что имеет полный ранг, т. существует.)X = U S V T = U S 0 V T 0 X + = V S + U T = V 0 S - 1 0 U TX
X=USVT=US0VT0
X+=VS+UT=V0S−10UT
S - 1 0XS−10
Таким образом, прямая задача имеет решение
Для дальнейшего использования отмечу, что , где - это вектор сингулярных значений.S 0 = d i a
B≡X+Y=(V0S−10UT)Y
σ 0 > 0S0=diag(σ0)σ0>0
В обратной задаче задана и . Мы знаем , что пришли из вышеописанного процесса, но мы не знаем . Задача состоит в том, чтобы определить соответствующий .YB X XBBXX
Как было отмечено в обновленном вопросе, в этом случае мы можем восстановить , используя по существу тот же самый подход, т.е.
теперь используется Псевдообратный .X 0 = Y BX B
X0=YB+
B
Переопределенный случай (оценка Риджа)
В случае «OLS» недоопределенная задача была решена путем выбора решения с минимальной нормой , т.е. наше «уникальное» решение было неявно регуляризовано .
Вместо того, чтобы выбирать минимальное решение для нормы, здесь мы вводим параметр чтобы контролировать «насколько мала» норма, т.е. мы используем регрессию гребня .ω
В этом случае у нас есть ряд прямых задач для , , которые задаются как
Сбор различных левых и правых векторов в
этой коллекции задачи могут быть сведены к следующей проблеме "OLS"
где мы ввели расширенные матрицы
k = 1 , … , q min β ‖ X β - y k ‖ 2 + ω 2 ‖ β ‖ 2βКk = 1 , … , q
минβ∥ Xβ- уК∥2+ ω2∥ β∥2
min B ‖ X ω B - Y ‖ 2Вω= [ β1, … , ΒК],Y= [ у1, ... , уК]
минВ∥ XωB - Y ∥2
Иксω= [ Xω я],Y = [ Y0]
В этом переопределенном случае решение по-прежнему задается псевдообратным
но теперь псевдообратное изменение изменяется, в результате чего *
где новая матрица "спектра сингулярности" имеет (обратную) диагональ **
(* Несколько сжатые вычисления, необходимые для получения этого, были опущены для краткости. Это похоже на описание здесь для случая . ** Здесь записи вектор выражается через вектор , где все операции вводятся по порядку.)B ω = ( V 0 S - 2 ω U T ) Y σ 2 ω = σ
Вω= X+Y
Вω= ( V0S- 2ωUT) Y
p≤nσ2ω= σ20+ ω2σ0
p ≤ nσ 0σωσ0
Теперь в этой задаче мы все еще можем формально восстановить «базовое решение» как
но это больше не является верным решением.
Иксω= YВ+ω
Однако аналогия все еще сохраняется в том, что это «решение» имеет SVD
с сингулярными значениями приведенными выше.
Иксω= US2ωВT0
σ2ω
Таким образом, мы можем вывести квадратное уравнение, связывающее искомые сингулярные значения с восстанавливаемыми сингулярными значениями и параметром регуляризации . Тогда решение будет
σ 2 ω ωσ0σ2ωω
σ0= σ¯± Δ σ,σ¯= 12σ2ω,Δ σ= ( σ¯+ ω ) ( σ¯- ω )------------√
Демонстрация Matlab ниже (протестирована онлайн через Octave ) показывает, что этот метод решения работает как на практике, так и в теории. Последняя строка показывает, что все сингулярные значения находятся в реконструкции , но я не совсем выяснил, какой корень взять ( = против ). Для это всегда будет root. Это , как правило , кажется, держит для «малых» , в то время как для «больших» в корень , кажется, взять на себя. (Демо ниже установлено в «большой» случай в настоящее время.)Иксσ¯± Δ σ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?
Я не могу сказать, насколько надежно это решение, поскольку обратные задачи обычно некорректны, а аналитические решения могут быть очень хрупкими. Однако поверхностные эксперименты, загрязняющие гауссовским шумом (т. Е. Так, что он имеет полный ранг сравнению с пониженным рангом ), показывают, что метод достаточно хорошо себя ведет.ВпN
Что касается задачи 2 (то есть unknown), приведенное выше дает по крайней мере верхнюю границу для . Чтобы квадратичный дискриминант был неотрицательным, мы должны иметь
ωω
ω ≤ ωМаксимум= σ¯N= мин [ 12σ2ω]
Для неоднозначности знака с четырьмя корнями следующий фрагмент кода показывает, что независимо от знака любой даст одно и то же прямое -решение для гребня, даже если отличается от .Икс^Вσ0S V D [ 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