CS229: нейросети и обучение без учителя — backprop, k-средних, EM, PCA (конспект)
Пересказ конспектов CS229: нейронная сеть с нуля на примере цен домов, векторизация, обратное распространение, инициализация, SGD с моментом, L2-регуляризация и разделение параметров; кластеризация k-средних, смесь гауссиан и EM-алгоритм через неравенство Йенсена, анализ главных компонент. Плюс короткий обзор части о обучении с подкреплением.
Глубокое обучение
Заголовок раздела «Глубокое обучение»Нейросеть «по кирпичику»
Заголовок раздела «Нейросеть «по кирпичику»»Конспект строит нейросеть из знакомой задачи о ценах домов. Прямая может предсказать отрицательную цену; запретим это: . Это один нейрон с функцией активации ReLU. Дальше добавляем признаки (площадь, число спален, почтовый индекс, благосостояние района) и промежуточные нейроны, каждый из которых вычисляет что-то осмысленное — «размер семьи, которая поместится», «пешая доступность», «качество школ», — а выходной нейрон объединяет их в цену. Главная мысль: такие промежуточные признаки не задают вручную — сеть получает только вход и ответ , а скрытые признаки выучивает сама. Поэтому сети часто называют чёрными ящиками и говорят об сквозном обучении (end-to-end).
Дальше — второй пример (есть ли на картинке футбольный мяч) и обозначения слоёв: , . Конспект подчёркивает: без нелинейных функций активации композиция слоёв осталась бы линейной функцией, и глубина ничего бы не дала. Используются сигмоида, и ReLU.
Векторизация
Заголовок раздела «Векторизация»Вычислять нейроны циклом медленно; вместо этого слой — это одно умножение матрицы на вектор, а пакет из примеров — умножение матрицы на матрицу, где примеры сложены столбцами (). Сдвиг прибавляется ко всем столбцам — это транслирование (broadcasting), как в NumPy.
Обратное распространение
Заголовок раздела «Обратное распространение»Для обучения нужны градиенты потерь по всем . Конспект выводит их по цепному правилу для трёхслойной сети с бинарной кросс-энтропией, начиная с последнего слоя (он ближе к выходу, его влияние на потери проще), и показывает, что для каждого слоя достаточно знать «ошибку» следующего:
где для выходного слоя с сигмоидой и кросс-энтропией . Значения сохраняются при прямом проходе (кэшируются) и переиспользуются при обратном. Интуицию «потока градиентов» подробно разбирает наш перевод конспекта CS231n о backprop.
Как обучать
Заголовок раздела «Как обучать»- Инициализация. Нулями нельзя: все нейроны слоя получат одинаковые градиенты и выучат одно и то же (нарушится симметрия); то же при одинаковых ненулевых значениях. Берут малые случайные значения или схему, сохраняющую дисперсию сигналов от слоя к слою. Конспект называет её «Xavier/He» и даёт формулу с дисперсией .
- Оптимизация. Полный градиентный спуск точен, но дорог; стохастический — шумный; на практике используют мини-батчи. Ускорение — момент: скорость — экспоненциальное среднее градиентов, , а шаг делается по , как машина, которая продолжает ехать по инерции.
- Анализ и регуляризация. Пример конспекта: 96% точности на обучении и 64% на тесте — переобучение. Лекарства: больше данных, регуляризация, менее глубокая модель. L2-регуляризация добавляет , и шаг превращается в — веса на каждом шаге «усыхают» (weight decay).
- Разделение параметров. Логистическая регрессия на пикселях учит отдельный вес для каждой позиции: если мяч ни разу не встречался в левом верхнем углу, его там не найдут. Свёрточный фильтр, скользящий по картинке с одними и теми же весами, решает проблему — это идея CNN (наш перевод конспекта CS231n о свёрточных сетях).
Обучение без учителя
Заголовок раздела «Обучение без учителя»k-средних
Заголовок раздела «k-средних»Даны точки без меток; нужно разбить их на групп. Алгоритм: случайно выбрать центроидов (например, случайных точек выборки), затем повторять до сходимости два шага:
- назначение: каждую точку отнести к ближайшему центроиду, ;
- обновление: каждый центроид сдвинуть в среднее своих точек.
Алгоритм — это покоординатный спуск по функции искажения : шаг 1 минимизирует её по при фиксированных , шаг 2 — по при фиксированных . Значит, монотонно убывает и алгоритм сходится, но только к локальному минимуму: функция невыпукла. Поэтому k-средних запускают несколько раз с разной инициализацией и берут результат с наименьшим .
Смесь гауссиан и EM
Заголовок раздела «Смесь гауссиан и EM»Мягкая версия кластеризации — смесь гауссиан: у каждой точки есть скрытая метка , а при данной метке . Если бы метки были известны, оценка параметров свелась бы к GDA из первого конспекта. Но они скрыты, поэтому EM-алгоритм чередует:
- E-шаг: для каждой точки вычислить «ответственность» каждой компоненты — апостериорную вероятность по формуле Байеса;
- M-шаг: пересчитать параметры как в GDA, но со взвешенными точками: — средняя ответственность, — взвешенное среднее, — взвешенная ковариация.
Это похоже на k-средних, только вместо «жёсткого» назначения точки одному кластеру — «мягкое». И, как k-средних, EM может застрять в локальном оптимуме.
EM в общем виде
Заголовок раздела «EM в общем виде»Общая задача: максимизировать правдоподобие при скрытых . Логарифм суммы неудобен. Ключ — неравенство Йенсена: для выпуклой выполняется (для вогнутого логарифма — наоборот), с равенством, когда величина постоянна. Вводим для каждой точки любое распределение и получаем нижнюю оценку правдоподобия (сейчас её называют ELBO):
Оценка точна, если . Отсюда EM: E-шаг — сделать оценку точной в текущей точке, выбрав равным апостериорному распределению скрытых переменных; M-шаг — максимизировать оценку по . Поскольку оценка касается правдоподобия в текущей точке и лежит ниже него везде, правдоподобие на каждой итерации не убывает. С другой стороны, EM — это покоординатный подъём по нижней оценке . Для смеси гауссиан эта общая схема в точности даёт формулы выше. Та же нижняя оценка — основа вариационных автокодировщиков (урок 9.1.3).
Анализ главных компонент (PCA)
Заголовок раздела «Анализ главных компонент (PCA)»PCA ищет подпространство малой размерности , в котором «живут» данные. Подготовка: центрировать данные (вычесть среднее) и, если признаки в разных единицах, нормировать каждый на его стандартное отклонение. Первая главная компонента — направление (единичный вектор), проекции на которое имеют наибольшую дисперсию:
где — выборочная ковариационная матрица. Максимум достигается на главном собственном векторе ; компонент — это собственных векторов с наибольшими собственными числами, а новое представление точки — её координаты . Эквивалентная формулировка — минимизировать ошибку реконструкции (сумму квадратов расстояний от точек до подпространства). Применения из конспекта: сжатие и визуализация данных, предобработка перед обучением (меньше признаков — меньше переобучения), подавление шума, «собственные лица» (eigenfaces) для распознавания лиц. На практике собственные векторы считают через сингулярное разложение матрицы данных (см. наш перевод MIT 18.06 о SVD).
Коротко: обучение с подкреплением (часть XIII)
Заголовок раздела «Коротко: обучение с подкреплением (часть XIII)»Последний большой конспект вводит марковские процессы принятия решений (состояния, действия, вероятности переходов, награды, коэффициент дисконтирования), уравнения Беллмана, алгоритмы итерации по ценности и итерации по стратегии, обучение модели переходов по опыту и непрерывные состояния — дискретизацию и приближение функции ценности (fitted value iteration). Эти темы подробно разобраны в уроке 6.0.1 «MDP и уравнения Беллмана».
Словарик
Заголовок раздела «Словарик»| EN | RU |
|---|---|
| end-to-end learning | сквозное обучение |
| vectorization, broadcasting | векторизация, транслирование |
| symmetry breaking (initialization) | нарушение симметрии (при инициализации) |
| momentum, weight decay | момент, затухание весов |
| parameter sharing | разделение параметров |
| k-means, distortion function | k-средних, функция искажения |
| mixture of Gaussians, responsibility | смесь гауссиан, ответственность компоненты |
| Jensen’s inequality, lower bound (ELBO) | неравенство Йенсена, нижняя оценка (ELBO) |
| principal components, reconstruction error | главные компоненты, ошибка реконструкции |
| value iteration, policy iteration | итерация по ценности, итерация по стратегии |