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


12

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

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

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


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)

Усереднення Поляка вказує, що ви можете використовувати для наближення з діапазоном від до . Ви можете спробувати у вашому випадку вибрати кращого для вашої рекурсії.ηn=nαMn11+xnTMn1xnα0.51α


Я думаю, що це також працює, якщо застосувати алгоритм пакетного градієнта:

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


Що робити, якщо я щоразу оновлюю регресора за допомогою пакетних зразків нових даних, де кожна наступна партія виводиться з дещо іншого розподілу? тобто не IID. У цьому випадку я хотів би, щоб регресор врахував нові дані, але не вплинув на його прогнози щодо місцевості старих даних (попередні партії)? Чи можете ви вказати мені на будь-яку літературу, яка може вам здатися корисною?
rnoodle

Добре запитання, але на жаль, я не можу сказати, наскільки це вплине на вашу модель, якщо ви все ще використовуєте формулу градієнта партії у відповіді, або наближаєтеся, застосовуючи безпосередньо матричну форму: eta ^ (- alpha) * X (Y-X 'beta_n), де X, Y - ваші нові зразки партії
lennon310

привіт, здається, що коефіцієнт регуляризації не бере участь у формулі рекурсивного оновлення? чи це має значення лише при ініціалізації зворотної матриці M?
Пен Чжао

4

Точка, до якої ще ніхто не звертався, - це те, що зазвичай не має сенсу тримати параметр регуляризації постійним, оскільки додаються точки даних. Причиною цього є те, що зазвичай росте лінійно з кількістю точок даних, тоді як термін регуляризації не буде. λXβy2λβ2


Це цікавий момент. Але саме чому це "не має сенсу"? Зберігання постійним, безумовно, математично справедливе, тому "не має сенсу" слід розуміти в якомусь статистичному контексті. Але який контекст? Що піде не так? Чи може бути якесь легке виправлення, наприклад, заміна сум квадратів середніми квадратами? λ
whuber

Заміна суми квадратів на зменшену версію (наприклад, середня помилка у квадраті) мала б сенс, але просто використання рекурсивних найменших квадратів цього не виконає.
Брайан Борчер

Що стосується того, що піде не так, залежно від вашого вибору , ви отримаєте дуже недорегульоване рішення з великою кількістю точок даних або дуже надрегульоване рішення з невеликою кількістю точок даних. λ
Брайан Борчерс

Можна було б підозрювати, що, але якщо настроюється спочатку після отримання точок даних, а потім додається більше точок даних, то чи отримані рішення з більшою кількістю точок даних і однаковою будуть надмірно або недостатньо регульовані, залежатиме від тих нових точки даних. Це може бути проаналізовано в припущенні , що точки дані діють як н.о.р. вибірки з багатовимірного розподілу, і в цьому випадку з'являється повинна бути встановлена на на стадії . Це змінило б формули оновлення, але настільки регулярним і простим способом, що ефективне обчислення все-таки можливо. (+1)λ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 обчислює онлайн-оцінки лінійної / гребінної регресії.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.