Рекурсивный (онлайн) регуляризованный алгоритм наименьших квадратов

12

Может ли кто-нибудь указать мне направление онлайнового (рекурсивного) алгоритма регуляризации Тихонова (регуляризованных наименьших квадратов)?

В автономном режиме я вычисляю β^=(XTX+λI)1XTY используя мой исходный набор данных, где λ находится с помощью n-кратной перекрестной проверки. Новое значение y можно предсказать для данного x используя y=xTβ^ .

В режиме онлайн я постоянно рисую новые точки данных. Как я могу обновить β^ когда я рисую новые дополнительные образцы данных, не выполняя полный пересчет всего набора данных (оригинал + новый)?

rnoodle
источник
1
Ваши регуляризованные по Тихонову наименьшие квадраты, возможно, чаще называют Левенбергом-Марквардтом в статистических кругах, даже когда они применяются к чисто линейным задачам (как здесь). Там в документе об интернете - Левенберге Марквардте здесь . Я не знаю, поможет ли это.
Glen_b

Ответы:

11

β^n=(XXT+λI)1i=0n1xiyi

Пусть Mn1=(XXT+λI)1 , тогда

β^n+1=Mn+11(i=0n1xiyi+xnyn) и

Mn+1Mn=xnxnT , мы можем получить

β^n+1=β^n+Mn+11xn(ynxnTβ^n)

Согласно формуле Вудбери мы имеем

Mn+11=Mn1Mn1xnxnTMn1(1+xnTMn1xn)

Как результат,

β^n+1=β^n+Mn11+xnTMn1xnxn(ynxnTβ^n)

Полякское усреднение показывает, что вы можете использовать для аппроксимации с диапазонами от до . Вы можете попробовать в вашем случае выбрать лучший для вашей рекурсии.M - 1 nηn=nα α0,51αMn11+xnTMn1xnα0.51α


Я думаю, что это также работает, если вы применяете алгоритм пакетного градиента:

β^n+1=β^n+ηnni=0n1xi(yixiTβ^n)

lennon310
источник
Что если я обновляю свой регрессор каждый раз с помощью выборок новых данных, где каждая последующая партия берется из немного другого распределения? т.е. не IID. В этом случае я бы хотел, чтобы регрессор учитывал новые данные, но не влиял на его прогнозы в отношении местоположения старых данных (предыдущие партии)? Можете ли вы указать мне какую-либо литературу, которая вам может пригодиться?
rnoodle
Хороший вопрос, но извините, в настоящее время я не могу сказать, насколько это повлияет на вашу модель, если вы все еще используете формулу пакетного градиента в ответе или приближаетесь, применяя матричную форму напрямую: eta ^ (- alpha) * X (Y-X 'beta_n) где X, Y - ваши новые серийные образцы
lennon310
Привет, кажется, что коэффициент регуляризации не участвует в формуле рекурсивного обновления? или это имеет значение только при инициализации обратной матрицы М?
Пэн Чжао
4

До сих пор никто не обращал внимания на то, что обычно не имеет смысла сохранять параметр регуляризации постоянным при добавлении точек данных. Причина этого в том, что , как правило, будет расти линейно с количеством точек данных, тогда как член регуляризации не будет. X β - y 2λ β 2λXβy2λβ2

Брайан Борхерс
источник
Это интересный момент. Но почему именно это «не имеет смысла»? Сохранение константы безусловно, является математически обоснованным, поэтому «не имеет смысла» следует понимать в некотором статистическом контексте. Но в каком контексте? Что идет не так? Будет ли какое-то легкое исправление, такое как замена сумм квадратов средними квадратами? λ
whuber
Замена суммы квадратов масштабированной версией (например, среднеквадратическая ошибка) будет иметь смысл, но простое использование рекурсивных наименьших квадратов не даст этого.
Брайан Борчерз
Что касается того, что пойдет не так, в зависимости от вашего выбора , вы получите очень нерегулярное решение с большим количеством точек данных или очень нерегулярное решение с небольшим количеством точек данных. λ
Брайан Борчерз
Можно было бы заподозрить, что, но если изначально настроен после получения точек данных, а затем добавлено больше точек данных, то будут ли полученные решения с большим количеством точек данных и одинаковыми чрезмерно или недостаточно регуляризованными, зависеть от этих новых . точки данных Это может быть проанализировано в предположении , что точки данные действуют как н.о.р. выборки из многомерного распределения, и в этом случае появляется должна быть установлена на на стадии . Это изменило бы формулы обновления, но таким регулярным и простым способом, что эффективные вычисления все еще возможны. (+1)n λ λ N / n NλnλλN/nN
whuber
3

Возможно, что-то вроде стохастического градиентного спуска могло бы сработать здесь. Вычислите используя приведенное выше уравнение для начального набора данных, которое будет вашей начальной оценкой. Для каждой новой точки данных вы можете выполнить один шаг градиентного спуска, чтобы обновить оценку параметров.β^

Макс С.
источник
С тех пор я понимаю, что SGD (возможно, мини-пакет) - это способ решения проблем в сети, таких как обновление аппроксимаций функций.
rnoodle
1

В линейной регрессии одной из возможностей является непосредственное обновление QR-разложения , как описано здесь . Я предполагаю, что, если вы не хотите переоценивать после добавления каждого нового элемента данных, нечто очень похожее можно сделать с регрессией гребня.λXλ

Маттео Фазиоло
источник
0

Вот альтернативный (и менее сложный) подход по сравнению с использованием формулы Вудбери. Обратите внимание, что и могут быть записаны как суммы . Так как мы вычисляем вещи онлайн и не хотим, чтобы сумма взорвалась, мы можем альтернативно использовать средства ( и ).XTXXTyXTX/nXTy/n

Если вы напишите и как:Xy

X=(x1TxnT),y=(y1yn),

мы можем записать онлайн-обновления для и (рассчитанные до строки) как:XTX/nXTy/nt

At=(11t)At1+1txtxtT,

bt=(11t)bt1+1txtyt.

Ваша онлайн оценка становитсяβ

β^t=(At+λI)1bt.

Обратите внимание, что это также помогает интерпретировать оставаясь постоянным, когда вы добавляете наблюдения!λ

С помощью этой процедуры https://github.com/joshday/OnlineStats.jl вычисляет онлайн-оценки линейной / ребристой регрессии.

joshday
источник