Рассмотрим стандартную задачу регрессии OLS : У меня есть матрицы и и я хочу найти чтобы минимизировать
Я также могу поставить «обратную» проблему: учитывая и , найдите , который даст , то есть сведет к минимуму \ | \ argmin_ \ B \ {L \} - \ B ^ * \ | ^ 2 . Словом, у меня есть матрица ответов и вектор коэффициентов и я хочу найти матрицу предикторов, которая выдает коэффициенты, близкие к . Это, конечно, также проблема регрессии OLS с решением
Уточнение: как объяснил @ GeoMatt22 в своем ответе, если является вектором (т. Е. Если есть только одна переменная ответа), то этот будет рангом один, а обратная задача в значительной степени недоопределена. В моем случае, на самом деле является матрицей (т.е. есть много переменных ответа, это многомерная регрессия). Таким образом, равно , равно и равно .
Я заинтересован в решении "обратной" проблемы регрессии гребня. А именно, моя функция потерь теперь
«Обратной» проблемой является поиск
Опять же, у меня есть матрица ответов и вектор коэффициентов и я хочу найти матрицу предикторов, которая выдает коэффициенты, близкие к .
На самом деле есть две взаимосвязанные формулировки:
- Найти учетом и и .
- Найдите и учетом и .
У кого-нибудь из них есть прямое решение?
Вот краткая выдержка из 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 (известный параметр гребня). Это также должно помочь в случае 2 (не аналитическое решение, а простая формула и некоторые ограничения).
(Вывод немного длинный, поэтому TL, DR: в конце есть рабочий код Matlab.)
Недоопределенный случай («МНК»)
задача - это где , и . X∈ R п × р B∈ R р × Q Y∈ R п × д
На основе обновленного вопрос, мы будем считать , так находится под определяется с учетом и . Как и в вопросе, мы будем считать « по умолчанию» (минимум -норм) решение , где является Псевдообратным из .B X Y L 2 B = X + Y X + Xn<p<q B X Y L2
Из разложения по сингулярным числам ( 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
Таким образом, прямая задача имеет решение Для дальнейшего использования отмечу, что , где - это вектор сингулярных значений.S 0 = d i a
В обратной задаче задана и . Мы знаем , что пришли из вышеописанного процесса, но мы не знаем . Задача состоит в том, чтобы определить соответствующий .Y B X XB B X X
Как было отмечено в обновленном вопросе, в этом случае мы можем восстановить , используя по существу тот же самый подход, т.е. теперь используется Псевдообратный .X 0 = Y BX B
Переопределенный случай (оценка Риджа)
В случае «OLS» недоопределенная задача была решена путем выбора решения с минимальной нормой , т.е. наше «уникальное» решение было неявно регуляризовано .
Вместо того, чтобы выбирать минимальное решение для нормы, здесь мы вводим параметр чтобы контролировать «насколько мала» норма, т.е. мы используем регрессию гребня .ω
В этом случае у нас есть ряд прямых задач для , , которые задаются как Сбор различных левых и правых векторов в этой коллекции задачи могут быть сведены к следующей проблеме "OLS" где мы ввели расширенные матрицы k = 1 , … , q min β ‖ X β - y k ‖ 2 + ω 2 ‖ β ‖ 2βК k = 1 , … , q
В этом переопределенном случае решение по-прежнему задается псевдообратным но теперь псевдообратное изменение изменяется, в результате чего * где новая матрица "спектра сингулярности" имеет (обратную) диагональ ** (* Несколько сжатые вычисления, необходимые для получения этого, были опущены для краткости. Это похоже на описание здесь для случая . ** Здесь записи вектор выражается через вектор , где все операции вводятся по порядку.)B ω = ( V 0 S - 2 ω U T ) Y σ 2 ω = σ
Теперь в этой задаче мы все еще можем формально восстановить «базовое решение» как но это больше не является верным решением.
Однако аналогия все еще сохраняется в том, что это «решение» имеет SVD с сингулярными значениями приведенными выше.
Таким образом, мы можем вывести квадратное уравнение, связывающее искомые сингулярные значения с восстанавливаемыми сингулярными значениями и параметром регуляризации . Тогда решение будет σ 2 ω ωσ0 σ2ω ω
Демонстрация Matlab ниже (протестирована онлайн через Octave ) показывает, что этот метод решения работает как на практике, так и в теории. Последняя строка показывает, что все сингулярные значения находятся в реконструкции , но я не совсем выяснил, какой корень взять ( = против ). Для это всегда будет root. Это , как правило , кажется, держит для «малых» , в то время как для «больших» в корень , кажется, взять на себя. (Демо ниже установлено в «большой» случай в настоящее время.)Икс σ¯± Δ σ + - ω = 0 + ω ω -
sgn
Я не могу сказать, насколько надежно это решение, поскольку обратные задачи обычно некорректны, а аналитические решения могут быть очень хрупкими. Однако поверхностные эксперименты, загрязняющие гауссовским шумом (т. Е. Так, что он имеет полный ранг сравнению с пониженным рангом ), показывают, что метод достаточно хорошо себя ведет.В п N
Что касается задачи 2 (то есть unknown), приведенное выше дает по крайней мере верхнюю границу для . Чтобы квадратичный дискриминант был неотрицательным, мы должны иметьω ω
Для неоднозначности знака с четырьмя корнями следующий фрагмент кода показывает, что независимо от знака любой даст одно и то же прямое -решение для гребня, даже если отличается от .Икс^ В σ0 S V D [ X]
источник
pinv
не очень хорошая вещь, вы согласны?