Розділ 10

МНК і машинне навчання

Лінійна регресія — «hello world» машинного навчання, і це той самий МНК. Але ML додає три речі, яких класична геодезія довго не потребувала: навчання кроками, коли формула недоступна; штраф за складність; стійкість до брудних даних. У цьому розділі — усі три.

10.1. Навіщо ще щось, якщо є формула?

Проблема
  1. Нормальні рівняння для мільйона параметрів — це матриця мільйон на мільйон. Її не вмістити в пам'ять, не кажучи вже про розв'язання.
  2. Перенавчання з розділу 7 нікуди не зникло: гнучка модель підлаштовується під шум.
  3. Один промах псує весь МНК-розв'язок (розділи 8–9), а в реальних даних промахи трапляються завжди.

10.2. Градієнтний спуск: кулька котиться всерйоз

Замість того щоб розв'язувати $\nabla S = 0$ одразу, можна йти до мінімуму кроками проти градієнта:

$$\boldsymbol\theta_{t+1} = \boldsymbol\theta_t - \eta\,\nabla\,\mathrm{MSE}(\boldsymbol\theta_t),\qquad \nabla\,\mathrm{MSE} = -\frac{2}{n}A^\mathsf{T}(\mathbf y - A\boldsymbol\theta).$$

Кожен крок потребує лише множення на матрицю, без розв'язання системи. Параметр $\eta$ — крок навчання (learning rate). А якщо градієнт рахувати не по всіх даних, а по одному випадковому прикладу чи невеликій пачці, отримаємо стохастичний градієнтний спуск (SGD), на якому навчаються всі сучасні нейромережі.

Спуск по чаші MSE (40 точок, пряма)

Оберіть метод і крок. Крок задано частками від межі стійкості $2/L$, де $L$ — найбільше власне число гессіана. Ліворуч — лінії рівня й шлях спуску, праворуч — наскільки ми ще далеко від дна (логарифмічна шкала).

Метод:

10.3. Ridge: штраф за великі параметри

Пам'ятаєте многочлен, що дико розгойдувався в розділі 7, і коефіцієнти, що «розхитувалися» в розділі 6? Спільна риса: величезні параметри протилежних знаків. Гребенева регресія (ridge, регуляризація Тихонова) додає до суми квадратів штраф за їхню величину:

$$\min_{\boldsymbol\theta}\ \Bigl(|\mathbf y - A\boldsymbol\theta|^2 + \lambda\,|\boldsymbol\theta|^2\Bigr)\quad\Longrightarrow\quad \bigl(A^\mathsf{T}A + \lambda I\bigr)\,\hat{\boldsymbol\theta} = A^\mathsf{T}\mathbf y.$$

Нормальні рівняння майже ті самі, лише до діагоналі додано $\lambda$. Геодезист упізнає тут старий прийом: псевдовиміри. Штраф $\lambda\theta_j^2$ — це те саме, що додати до системи «уявний вимір» $\theta_j = 0$ з вагою $\lambda$. Саме так рахує інтерактив: звичайним МНК з кількома додатковими рядками.

Многочлен 9-го степеня через 12 точок + ridge

Рухайте λ. Помаранчеві кружечки — нові дані для перевірки, пунктир — справжня залежність.

Та сама ідея вже траплялася нам тричі. Доданок $\lambda I$ був у методі Левенберга — Марквардта (розділ 8). Обрізання малих сингулярних чисел (розділ 6) — «жорстка» версія того самого, а ridge — «м'яка». А в розділі 9 ridge виявився оцінкою максимальної апостеріорної ймовірності за гауссового апріорного припущення про параметри.

10.4. Промахи: Губер, L1, RANSAC і тест Баарди

МНК чутливий до промахів, бо квадрат «штрафує» велику нев'язку непропорційно сильно: промах тягне пряму до себе з силою, пропорційною своїй нев'язці. Є два підходи. Можна зменшити вплив великих нев'язок (стійкі функції втрат). А можна знайти й виключити промахи.

Чотири методи й два промахи

Точки можна тягти. Зелена смуга — поріг RANSAC навколо його прямої, обведені кружечки — точки, які RANSAC відкинув. Шум справжніх вимірів $\sigma = 0{,}2$.

Дані:

δ — поріг Губера, t — поріг RANSAC.

10.5. Карта відповідностей: МНК ↔ ML

Геодезія / МНКМашинне навчанняРозділ
надлишкові виміри, $n > k$навчальна вибірка, прикладів більше за параметри1
критерій якості $\sum r_i^2$функція втрат MSE2
поверхня $S(a, b)$, еліпсиландшафт функції втрат3
нормальні рівнянняnormal equation, закрита форма4
проєкція, $R^2$передбачення як проєкція, метрика $R^2$5
QR, SVD, обумовленістьвсередині lstsq і LinearRegression, масштабування ознак6
базисні функціїознаки, feature engineering, перенавчання7
ваги, Гаусс — Ньютонsample_weight, нелінійні моделі, $J^\mathsf{T}\mathbf r$ і backprop8
максимальна правдоподібність, $\sigma^2(A^\mathsf{T}A)^{-1}$втрати як −log правдоподібності, невизначеність9
ітераційне зрівнюванняградієнтний спуск, SGD10
псевдовиміри, апріорні даніridge-регуляризація, MAP10
пошук промахів, стійке зрівнюваннястійкі втрати (Huber), RANSAC, очищення даних10

10.6. Що обрати на практиці

Інструменти scikit-learn
🔍 Хочете більше подробиць? Збіжність спуску, Adam, ridge через SVD, LASSO, точка зламу, надійність за Баардою

Швидкість градієнтного спуску

Для квадратичної функції з гессіаном, власні числа якого від $\mu$ до $L$, спуск з оптимальним постійним кроком зменшує відстань до мінімуму щонайменше в $\frac{\kappa - 1}{\kappa + 1}$ разів за крок, де $\kappa = L/\mu$ — те саме число обумовленості з розділів 3 і 6. За $\kappa = 1000$ це 0,998, тобто потрібні тисячі кроків. Імпульс (momentum, метод Нестерова) і спряжені градієнти покращують залежність до $\sqrt\kappa$. Алгоритм Adam, стандарт для нейромереж, поєднує імпульс з окремим кроком для кожного параметра. Це грубе наближення до стандартизації, яку ви вмикали галочкою.

Крок SGD має зменшуватися

Зі сталим кроком SGD вічно тремтить навколо мінімуму: шум градієнта не зникає. Щоб збігтися, крок зменшують так, щоб $\sum \eta_t = \infty$, але $\sum \eta_t^2 < \infty$ (умови Роббінса — Монро, 1951), наприклад $\eta_t \propto 1/t$. На практиці використовують розклади кроку (learning rate schedules) і усереднення параметрів.

Ridge мовою SVD

Якщо $A = U\Sigma V^\mathsf{T}$, то розв'язок ridge — $\hat{\boldsymbol\theta} = \sum_i \frac{\sigma_i}{\sigma_i^2 + \lambda}\,(\mathbf u_i^\mathsf{T}\mathbf y)\,\mathbf v_i$. Порівняйте з розділом 6: там було $1/\sigma_i$. Для великих $\sigma_i$ нічого не змінюється, а малі $\sigma_i$, які підсилювали шум, тепер «м'яко» гасяться множником $\sigma_i^2/(\sigma_i^2 + \lambda)$. Сума цих множників — ефективна кількість параметрів моделі.

Чому LASSO обнуляє коефіцієнти

Мінімізувати суму квадратів за обмеження $|\boldsymbol\theta|_1 \le c$ означає шукати, де еліпси рівня $S$ (розділ 3) уперше торкаються ромба L1 (розділ 2). Ромб має гострі кути на осях, і дотик найчастіше припадає саме на кут, де частина координат нульова. Коло L2 (ridge) кутів не має, тож коефіцієнти зменшуються, але не обнуляються.

Точка зламу

Найменша частка промахів, яка може зсунути оцінку як завгодно далеко, — точка зламу (breakdown point). У МНК і середнього вона дорівнює 0: одного промаху досить. У медіани — 50%. У Губера — теж 0 з погляду теорії (промах з великим важелем усе одно шкодить), хоча на практиці він значно стійкіший за МНК. RANSAC і методи на кшталт найменшої медіани квадратів (LMedS) витримують до 50%.

Надійність мережі за Баардою

Баарда поставив і обернене питання: який найменший промах тест гарантовано помітить (minimal detectable bias)? Відповідь залежить від $1 - h_{ii}$, частки виміру, що «потрапляє» в нев'язку. Якщо вимір майже нічим не контролюється ($h_{ii} \approx 1$, як у точки з великим важелем), промах у ньому може бути величезним і все одно непомітним. Геодезисти проєктують мережі так, щоб кожен вимір мав достатній контроль. Це повертає нас до надлишкових вимірів з розділу 1. Стійкі методи зрівнювання в геодезії теж є: «данський метод» Крарупа й Кубіка (1980-ті) — це по суті той самий IRLS.

10.7. Код

Python: градієнтний спуск з різними кроками, SGD, ridge, Губер (IRLS), RANSAC і покроковий тест Баарди. JavaScript: ті самі стійкі методи на прямій з двома промахами й перевірка межі стійкості кроку градієнтного спуску.

10.8. Перевірте себе

Найбільше власне число гессіана функції втрат $L = 10$. Яка межа кроку $\eta$, за якої спуск ще не розбігається?

Модель $y = \theta x$ без вільного члена, $\sum xy = 10$, $\sum x^2 = 10$. Яке $\hat\theta$ дає ridge з $\lambda = 10$?

Поріг Губера $\delta = 1$. Яку вагу в IRLS отримає точка з нев'язкою $r = 3$? (десятковим дробом)

Половина точок — промахи. Скільки спроб RANSAC (пар точок) потрібно, щоб з імовірністю 99% хоча б раз витягти пару без промахів? (ціле число)

Далі: підсумок

Ми пройшли шлях від трьох вимірів рулеткою до градієнтного спуску, регуляризації й стійких методів. В останньому розділі зберемо все в шпаргалку, розв'яжемо кілька задач наскрізно й подивимося, куди рухатися далі: фільтр Калмана (МНК, що оновлюється з кожним новим виміром) і bundle adjustment (МНК на мільйонах невідомих).