CS229: обучение с учителем — линейная и логистическая регрессия, GLM, генеративные модели (конспект)
Пересказ первых конспектов курса Эндрю Ына CS229: линейная регрессия и алгоритм LMS, нормальные уравнения, вероятностный смысл наименьших квадратов, локально взвешенная регрессия, логистическая регрессия, перцептрон и метод Ньютона, экспоненциальное семейство и обобщённые линейные модели, softmax-регрессия, гауссов дискриминантный анализ и наивный Байес.
Постановка: обучение с учителем
Заголовок раздела «Постановка: обучение с учителем»Есть обучающая выборка пар , : например, площадь дома и его цена (сквозной пример конспекта — 47 домов в Портленде). Нужно найти гипотезу , хорошо предсказывающую по . Если непрерывен — это регрессия, если принимает немного дискретных значений — классификация.
Часть I. Линейная регрессия
Заголовок раздела «Часть I. Линейная регрессия»Гипотеза — линейная функция признаков, (с договорённостью , чтобы свободный член вошёл в ). Функция стоимости — наименьшие квадраты:
Алгоритм LMS (градиентный спуск)
Заголовок раздела «Алгоритм LMS (градиентный спуск)»Шаг градиентного спуска для одного примера даёт правило LMS (least mean squares, или правило Уидроу — Хоффа):
Величина обновления пропорциональна ошибке: если предсказание почти верно, параметры почти не меняются. Есть два варианта: пакетный спуск (на каждом шаге — сумма по всей выборке) и стохастический (обновление после каждого примера; быстрее начинает приближаться к минимуму и предпочтителен на больших выборках, хотя «колеблется» вокруг минимума, если не уменьшать шаг). Поскольку — выпуклая квадратичная функция, у неё один глобальный минимум.
Нормальные уравнения
Заголовок раздела «Нормальные уравнения»Минимум можно найти и сразу. Конспект вводит матричное дифференцирование (градиент по матрице, след и его свойства), записывает через матрицу плана (по строке на пример) и, приравняв градиент к нулю, получает нормальные уравнения:
Наш небольшой пример на пяти домах из таблицы конспекта (на всех 47 домах конспект получает , ):
import numpy as np
area = np.array([2104, 1600, 2400, 1416, 3000.]) # площадь, кв. футыprice = np.array([400, 330, 369, 232, 540.]) # цена, тыс. $X = np.c_[np.ones(5), area]
theta = np.linalg.solve(X.T @ X, X.T @ price) # нормальные уравненияprint(theta.round(4)) # [26.7899 0.1651]
# тот же ответ градиентным спуском (признак стандартизован, чтобы шаг был устойчив)mu, sd = area.mean(), area.std()Xs = np.c_[np.ones(5), (area - mu) / sd]th = np.zeros(2)for _ in range(2000): th -= 0.1 * Xs.T @ (Xs @ th - price) / 5print(np.round([th[0] - th[1] * mu / sd, th[1] / sd], 4)) # [26.7899 0.1651]Почему именно квадраты: вероятностный смысл
Заголовок раздела «Почему именно квадраты: вероятностный смысл»Предположим, что , где шум независим и распределён нормально, . Тогда правдоподобие параметров — произведение гауссовых плотностей, а его логарифм равен константе минус . Значит, метод наименьших квадратов — это оценка максимального правдоподобия при гауссовом шуме; ответ к тому же не зависит от . Это не единственное оправдание квадратов, но очень естественное.
Локально взвешенная регрессия
Заголовок раздела «Локально взвешенная регрессия»Выбор признаков — отдельная проблема: прямая может недообучиться (данные явно не на прямой), а полином высокой степени — переобучиться (пройти через все точки, но предсказывать нелепо). Локально взвешенная линейная регрессия (LWR) обходит выбор признаков: для каждого запроса решается своя задача наименьших квадратов с весами
то есть близкие к запросу точки важнее далёких; — ширина окна. LWR — непараметрический алгоритм: для предсказания нужна вся обучающая выборка (в отличие от параметрической линейной регрессии, которой достаточно ).
Часть II. Классификация и логистическая регрессия
Заголовок раздела «Часть II. Классификация и логистическая регрессия»Для бинарной классификации () линейная регрессия плоха: предсказания выходят за . Берём логистическую (сигмоидную) функцию:
Считаем , записываем логарифм правдоподобия и максимизируем его градиентным подъёмом. Удивительно, но правило обновления выглядит точно так же, как LMS: — только теперь нелинейна. Почему так совпало, объяснит часть III.
Отступление: перцептрон. Если вместо сигмоиды взять жёсткий порог ( при , иначе 0), то же правило даёт алгоритм перцептрона (1960-е). Он похож на логистическую регрессию внешне, но у него нет вероятностной интерпретации и он не выводится как оценка максимального правдоподобия.
Метод Ньютона. Другой способ максимизировать — искать ноль его производной методом Ньютона: , где — матрица Гессе. Он сходится квадратично (число верных знаков примерно удваивается на каждой итерации) и обычно требует гораздо меньше итераций, чем градиентный спуск, но каждая итерация дороже: нужно обратить матрицу . Для логистической регрессии это называют методом скоринга Фишера.
Часть III. Обобщённые линейные модели
Заголовок раздела «Часть III. Обобщённые линейные модели»Линейная и логистическая регрессии — частные случаи одной конструкции.
Экспоненциальное семейство — распределения вида
где — естественный параметр, — достаточная статистика (обычно ), — логарифм нормирующей константы. Бернулли и гауссово распределения сюда входят: у Бернулли с параметром естественный параметр , откуда — та самая сигмоида. Также входят мультиномиальное, пуассоновское, гамма, бета, Дирихле и другие.
Обобщённая линейная модель (GLM) строится из трёх допущений: (1) лежит в экспоненциальном семействе; (2) мы хотим предсказывать ; (3) естественный параметр линеен по входу, . Выбор распределения сам задаёт модель:
| Распределение | Что получается | |
|---|---|---|
| Гауссово | обычные наименьшие квадраты | |
| Бернулли | логистическая регрессия | |
| Мультиномиальное ( классов) | softmax-регрессия | |
| Пуассоновское (счётчики) | пуассоновская регрессия |
Функция, выражающая среднее через естественный параметр, называется канонической функцией отклика (обратная к ней — канонической связью). Для всех GLM правило градиентного обновления имеет один и тот же вид «ошибка × признак» — вот почему LMS и логистическая регрессия совпали. Softmax-регрессия обобщает логистическую на классов: вероятность класса равна , а обучение — максимизация логарифма правдоподобия, то есть минимизация кросс-энтропии (подробнее — урок 1.3.2).
Часть IV. Генеративные алгоритмы
Заголовок раздела «Часть IV. Генеративные алгоритмы»Логистическая регрессия — дискриминативный алгоритм: моделирует напрямую. Генеративный алгоритм моделирует, как устроены данные каждого класса, , и априорные вероятности классов , а затем классифицирует по формуле Байеса: .
Гауссов дискриминантный анализ (GDA)
Заголовок раздела «Гауссов дискриминантный анализ (GDA)»Допущение: признаки каждого класса распределены по многомерному нормальному закону с общей ковариационной матрицей: , , . Оценки максимального правдоподобия получаются в явном виде: — доля класса 1, — средние по классам, — общая ковариация отклонений от средних своего класса. Граница решений — линейная.
GDA или логистическая регрессия? Если расписать для модели GDA, получится в точности сигмоида от линейной функции . Обратное неверно: из логистической формы не следует гауссовость. Значит, GDA делает более сильные допущения: если они верны (хотя бы приблизительно), GDA эффективнее по данным — ей нужно меньше примеров, и она асимптотически лучшая. Логистическая регрессия устойчивее: она верна при многих распределениях (например, когда пуассоновские), поэтому на практике её используют чаще, особенно при большом количестве данных.
Наивный Байес
Заголовок раздела «Наивный Байес»Для текстов признаки дискретны и их много: — есть ли в письме каждое слово словаря (пример конспекта — фильтр спама). Моделировать полное невозможно ( значений), поэтому делаем наивное байесовское допущение: слова условно независимы при данном классе, . Допущение заведомо неверно, но классификатор работает удивительно хорошо. Параметры — просто доли: доля спам-писем, в которых встречается слово , и т. д.
Сглаживание Лапласа. Если слово ни разу не встречалось в обучающих письмах, его оценка вероятности равна нулю в обоих классах, и формула Байеса даёт . Лечение — добавить единицу к каждому счётчику (и число исходов к знаменателю): для признака с значениями.
Модели событий для текста. Описанная модель называется многомерной моделью Бернулли (учитывается только наличие слова). Обычно лучше работает мультиномиальная модель событий: письмо — последовательность слов, каждое из которых независимо выбирается из распределения слов своего класса, так что учитывается и сколько раз слово встретилось.
Связь с нашим курсом
Заголовок раздела «Связь с нашим курсом»- Линейная и логистическая регрессия на практике — уроки 2.2.1 и 2.2.2.
- Максимальное правдоподобие и softmax — 1.3.2; градиентный спуск — 1.4.1 и наш перевод конспекта CS231n об оптимизации.
- Следующий конспект — SVM, ядра и теория обучения.
Словарик
Заголовок раздела «Словарик»| EN | RU |
|---|---|
| hypothesis, cost function | гипотеза, функция стоимости |
| LMS / Widrow-Hoff rule | правило LMS (Уидроу — Хоффа) |
| normal equations, design matrix | нормальные уравнения, матрица плана |
| locally weighted regression | локально взвешенная регрессия |
| underfitting, overfitting | недообучение, переобучение |
| exponential family, natural parameter | экспоненциальное семейство, естественный параметр |
| generalized linear model, canonical link | обобщённая линейная модель, каноническая связь |
| discriminative vs generative | дискриминативный и генеративный |
| Laplace smoothing | сглаживание Лапласа |