Вероятностное машинное обучение [Кэвин П. Мэрфи] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Tlgm: @it_boooks

Tlgm: @it_boooks

Кэвин П. Мэрфи

Вероятностное
машинное обучение
Введение

Tlgm: @it_boooks

Kevin P. Murphy

Probabilistic
Machine Learning
An Introduction

Cambridge, Massachusetts
London, England

Tlgm: @it_boooks

Кэвин П. Мэрфи

Вероятностное
машинное обучение
Введение

Москва, 2022

Tlgm: @it_boooks

УДК 004.048
ББК 32.972
М97

Мэрфи К. П.
М97 Вероятностное машинное обучение: введение / пер. с англ. А. А. Слинки‑
на. – М.: ДМК Пресс, 2022. – 940 с.: ил.
ISBN 978-5-93700-119-1
Данный классический труд содержит современное введение в машинное
обучение, рассматриваемое сквозь призму вероятностного моделирования
и байесовской теории принятия решений. Включен базовый математический
аппарат (в том числе элементы линейной алгебры и теории оптимизации), основы
обучения с учителем (включая линейную и логистическую регрессию и глубокие
нейронные сети), а также более глубокие темы (в частности, перенос обучения
и обучение без учителя).
Упражнения в конце глав помогут читателям применить полученные знания.
В приложении приводится сводка используемых обозначений.
Книга будет полезна специалистам в области машинного обучения и студентам
профильных специальностей.

УДК 004.048
ББК 32.972

Copyright Original English language edition published by The MIT Press Cambridge, MA.
Copyright © 2021 Kevin P. Murphy. Russian-language edition copyright © 2022 by DMK Press.
All rights reserved. The rights to the Russian-language edition obtained through Alexander
Korzhenevski Agency (Moscow). Права на издание получены при помощи агентства Алек‑
сандра Корженевского (Москва).
Все права защищены. Любая часть этой книги не может быть воспроизведена в ка‑
кой бы то ни было форме и какими бы то ни было средствами без письменного разрешения
владельцев авторских прав.

ISBN 978-0-2620468-2-4 (англ.)
ISBN 978-5-93700-119-1 (рус.)

© Kevin P. Murphy, 2021
© Перевод, оформление, издание,
ДМК Пресс, 2022

Tlgm: @it_boooks

Содержание
От издательства....................................................................................................30
Предисловие ..........................................................................................................31
Глава 1. Введение ................................................................................................34
1.1. Что такое машинное обучение? ........................................................................34
1.2. Обучение с учителем ..........................................................................................35
1.2.1. Классификация.............................................................................................35
1.2.1.1. Пример: классификация ирисов ........................................................35
1.2.1.2. Разведочный анализ данных ..............................................................37
1.2.1.3. Обучение классификатора ..................................................................38
1.2.1.4. Минимизация эмпирического риска ................................................39
1.2.1.5. Неопределенность ................................................................................41
1.2.1.6. Оценка максимального правдоподобия ...........................................42
1.2.2. Регрессия .......................................................................................................43
1.2.2.1. Линейная регрессия .............................................................................44
1.2.2.2. Полиномиальная регрессия ................................................................45
1.2.2.3. Глубокие нейронные сети ...................................................................46
1.2.3. Переобучение и обобщаемость .................................................................47
1.2.4. Теорема об отсутствии бесплатных завтраков........................................48
1.3. Обучение без учителя .........................................................................................48
1.3.1. Кластеризация ..............................................................................................49
1.3.2. Обнаружение латентных «факторов изменчивости» .............................50
1.3.3. Самостоятельное обучение ........................................................................51
1.3.4. Оценка обучения без учителя ....................................................................52
1.4. Обучение с подкреплением ...............................................................................53
1.5. Данные ..................................................................................................................55
1.5.1. Некоторые широко известные наборы изображений ............................55
1.5.1.1. Небольшие наборы изображений ......................................................55
1.5.1.2. ImageNet.................................................................................................56
1.5.2. Некоторые широко известные наборы текстовых данных ...................57
1.5.2.1. Классификация текста .........................................................................58
1.5.2.2. Машинный перевод .............................................................................59
1.5.2.3. Другие задачи типа seq2seq ................................................................59
1.5.2.4. Языковое моделирование ...................................................................59
1.5.3. Предобработка дискретных входных данных .........................................60
1.5.3.1. Унитарное кодирование ......................................................................60
1.5.3.2. Перекрестные произведения признаков ..........................................60
1.5.4. Предобработка текстовых данных ............................................................61
1.5.4.1. Модель мешка слов ..............................................................................61
1.5.4.2 TF-IDF ......................................................................................................62

Tlgm: @it_boooks

6  Содержание
1.5.4.3. Погружения слов...................................................................................63
1.5.4.4. Обработка новых слов .........................................................................63
1.5.5. Обработка отсутствующих данных ...........................................................64
1.6. Обсуждение ..........................................................................................................65
1.6.1. Связь МО с другими дисциплинами .........................................................65
1.6.2. Структура книги ...........................................................................................66
1.6.3. Подводные камни ........................................................................................66

Часть I. ОСНОВАНИЯ .......................................................................................68
Глава 2. Вероятность: одномерные модели ..........................................69
2.1. Введение ...............................................................................................................69
2.1.1. Что такое вероятность? ...............................................................................69
2.1.2. Типы неопределенности.............................................................................70
2.1.3. Вероятность как обобщение логики .........................................................70
2.1.3.1. Вероятность события ...........................................................................70
2.1.3.2. Вероятность конъюнкции двух событий ..........................................71
2.1.3.3. Вероятность объединения двух событий ..........................................71
2.1.3.4. Условная вероятность одного события при условии другого ........71
2.1.3.5. Независимость событий ......................................................................72
2.1.3.6. Условная независимость событий .....................................................72
2.2. Случайные величины .........................................................................................72
2.2.1. Дискретные случайные величины ............................................................72
2.2.2. Непрерывные случайные величины .........................................................73
2.2.2.1. Функция распределения......................................................................73
2.2.2.2. Функция плотности распределения ..................................................74
2.2.2.3. Квантили ................................................................................................75
2.2.3. Множества связанных случайных величин .............................................75
2.2.4. Независимость и условная независимость ..............................................76
2.2.5. Моменты распределения ............................................................................77
2.2.5.1. Среднее распределения .......................................................................78
2.2.5.2. Дисперсия распределения ..................................................................78
2.2.5.3. Мода распределения ............................................................................79
2.2.5.4. Условные моменты ...............................................................................80
2.2.6. Ограничения сводных статистик* ............................................................81
2.3. Формула Байеса ...................................................................................................83
2.3.1. Пример: тестирование на COVID-19 .........................................................84
2.3.2. Пример: парадокс Монти Холла ................................................................86
2.3.3. Обратные задачи* ........................................................................................88
2.4. Распределение Бернулли и биномиальное распределение ..........................89
2.4.1. Определение .................................................................................................89
2.4.2. Сигмоидная (логистическая) функция .....................................................90
2.4.3. Бинарная логистическая регрессия ..........................................................92
2.5. Категориальное и мультиномиальное распределение .................................93
2.5.1. Определение .................................................................................................93
2.5.2. Функция softmax ..........................................................................................94

Tlgm: @it_boooks

Содержание  7

2.5.3. Многоклассовая логистическая регрессия ...............................................95
2.5.4. Логарифмирование, суммирование, потенцирование ..........................96
2.6. Одномерное гауссово (нормальное) распределение .....................................97
2.6.1. Функция распределения .............................................................................98
2.6.2. Функция плотности вероятности ..............................................................99
2.6.3. Регрессия .....................................................................................................100
2.6.4. Почему гауссово распределение так широко используется? ..............101
2.6.5. Дельта-функция Дирака как предельный случай .................................102
2.7. Другие часто встречающиеся одномерные распределения* ......................102
2.7.1. Распределение Стьюдента ........................................................................102
2.7.2. Распределение Коши .................................................................................104
2.7.3. Распределение Лапласа .............................................................................105
2.7.4. Бета-распределение...................................................................................105
2.7.5. Гамма-распределение ...............................................................................106
2.7.6. Эмпирическое распределение .................................................................107
2.8. Преобразования случайных величин* ...........................................................108
2.8.1. Дискретный случай ...................................................................................109
2.8.2. Непрерывный случай ................................................................................109
2.8.3. Обратимые преобразования (биекции) .................................................109
2.8.3.1. Замена переменных: скалярный случай.........................................109
2.8.3.2. Замена переменных: многомерный случай ...................................110
2.8.4. Моменты линейного преобразования....................................................112
2.8.5. Теорема о свертке ......................................................................................113
2.8.6. Центральная предельная теорема...........................................................115
2.8.7. Аппроксимация Монте-Карло..................................................................115
2.9. Упражнения........................................................................................................116

Глава 3. Вероятность: многомерные модели ......................................120
3.1. Совместные распределения нескольких случайных величин....................120
3.1.1. Ковариация .................................................................................................120
3.1.2. Корреляция .................................................................................................121
3.1.3. Некоррелированные не значит независимые .......................................122
3.1.4. Из коррелированности не следует наличие
причинно-следственной связи ..........................................................................122
3.1.5. Парадокс Симпсона ...................................................................................123
3.2. Многомерное гауссово (нормальное) распределение .................................126
3.2.1. Определение ...............................................................................................126
3.2.2. Расстояние Махаланобиса ........................................................................127
3.2.3. Маргинальные и условные распределения для многомерного
нормального распределения* ............................................................................129
3.2.4. Пример: обусловливание двумерного гауссова распределения .........130
3.2.5. Пример: подстановка отсутствующих значений* ................................131
3.3. Линейные гауссовы системы* .........................................................................132
3.3.1. Формула Байеса для гауссовых распределений ....................................132
3.3.2. Вывод* .........................................................................................................133
3.3.3. Пример: вывод неизвестного скаляра ....................................................134
3.3.4. Пример: вывод неизвестного вектора ....................................................136

Tlgm: @it_boooks

8  Содержание
3.3.5. Пример: слияние показаний датчиков...................................................137
3.4. Экспоненциальное семейство распределений* ...........................................139
3.4.1. Определение ...............................................................................................139
3.4.2. Пример ........................................................................................................140
3.4.3. Логарифмическая функция разбиения является производящей
функцией полуинвариантов ..............................................................................141
3.4.4. Вывод максимальной энтропии экспоненциального семейства .......141
3.5. Смесовые модели ..............................................................................................142
3.5.1. Модель гауссовой смеси............................................................................143
3.5.2. Модели бернуллиевой смеси ...................................................................145
3.6. Графовые вероятностные модели*.................................................................146
3.6.1. Представление............................................................................................146
3.6.1.1. Пример: оросительная система .......................................................147
3.6.1.2. Пример: марковская цепь .................................................................148
3.6.2. Вывод ...........................................................................................................149
3.6.3. Обучение .....................................................................................................149
3.6.3.1. Блочная нотация .................................................................................150
3.7. Упражнения ........................................................................................................151

Глава 4. Статистика............................................................................................153
4.1. Введение .............................................................................................................153
4.2. Оценка максимального правдоподобия (MLE).............................................153
4.2.1. Определение ...............................................................................................154
4.2.2. Обоснование MLE ......................................................................................155
4.2.3. Пример: MLE для распределения Бернулли ..........................................156
4.2.4. Пример: MLE для категориального распределения .............................157
4.2.5. Пример: MLE для одномерного гауссова распределения ....................158
4.2.6. Пример: MLE для многомерного гауссова распределения ..................159
4.2.6.1. MLE среднего .......................................................................................159
4.2.6.2. MLE ковариационной матрицы .......................................................160
4.2.7. Пример: MLE для линейной регрессии ...................................................161
4.3. Минимизация эмпирического риска (ERM) .................................................162
4.3.1. Пример: минимизации частоты неправильной классификации.......163
4.3.2. Суррогатная потеря ...................................................................................163
4.4. Другие методы оценивания* ...........................................................................165
4.4.1. Метод моментов ........................................................................................165
4.4.1.1. Пример: MOM для одномерного гауссова распределения ...........165
4.4.1.2. Пример: MOM для равномерного распределения .........................166
4.4.2. Онлайновое (рекурсивное) оценивание ................................................167
4.4.2.1. Пример: рекурсивная MLE среднего гауссова распределения ....167
4.4.2.2. Экспоненциально взвешенное скользящее среднее ....................167
4.5. Регуляризация ...................................................................................................169
4.5.1. Пример: оценка MAP для распределения Бернулли ............................170
4.5.2. Пример: оценка MAP для многомерного гауссова распределения* ...171
4.5.2.1. Оценка усадки .....................................................................................171
4.5.3. Пример: уменьшение весов .....................................................................172
4.5.4. Подбор регуляризатора с помощью контрольного набора .................173

Tlgm: @it_boooks

Содержание  9

4.5.5. Перекрестная проверка ............................................................................174
4.5.5.1. Правило одной стандартной ошибки ..............................................175
4.5.5.2. Пример: гребневая регрессия ...........................................................176
4.5.6. Ранняя остановка .......................................................................................176
4.5.7. Больше данных ...........................................................................................177
4.6. Байесовские статистики* .................................................................................178
4.6.1. Сопряженные априорные распределения .............................................179
4.6.2. Бета-биномиальная модель .....................................................................180
4.6.2.1. Правдоподобие Бернулли .................................................................180
4.6.2.2. Биномиальное правдоподобие ........................................................180
4.6.2.3. Априорное распределение ................................................................181
4.6.2.4. Апостериорное распределение ........................................................181
4.6.2.5. Пример .................................................................................................181
4.6.2.6. Апостериорная мода (оценка MAP) .................................................182
4.6.2.7. Апостериорное среднее .....................................................................183
4.6.2.8. Апостериорная дисперсия ................................................................183
4.6.2.9. Апостериорное прогнозное распределение ...................................184
4.6.2.10. Маргинальное правдоподобие .......................................................187
4.6.2.11. Смеси сопряженных априорных распределений ........................187
4.6.3. Дирихле-мультиномиальная модель......................................................189
4.6.3.1. Правдоподобие ...................................................................................189
4.6.3.2. Априорное распределение ................................................................189
4.6.3.3. Апостериорное распределение ........................................................191
4.6.3.4. Апостериорное прогнозное распределение ...................................192
4.6.3.5. Маргинальное правдоподобие .........................................................192
4.6.4. Гауссова-гауссова модель .........................................................................193
4.6.4.1. Одномерный случай ...........................................................................193
4.6.4.2. Многомерный случай ........................................................................195
4.6.5. За пределами сопряженных априорных распределений ....................196
4.6.5.1. Неинформативные априорные распределения.............................197
4.6.5.2. Иерархические априорные распределения....................................197
4.6.5.3. Эмпирические априорные распределения ....................................197
4.6.6. Байесовские доверительные интервалы ................................................198
4.6.7. Байесовское машинное обучение ............................................................200
4.6.7.1. Подстановочная аппроксимация .....................................................201
4.6.7.2. Пример: скалярный вход, бинарный выход ...................................201
4.6.7.3. Пример: бинарный вход, скалярный выход ...................................203
4.6.7.4. Вертикальное масштабирование .....................................................205
4.6.8. Вычислительные трудности .....................................................................205
4.6.8.1. Сеточная аппроксимация..................................................................206
4.6.8.2. Квадратичная аппроксимация (Лапласа) .......................................206
4.6.8.3. Вариационная аппроксимация ........................................................207
4.6.8.4. Аппроксимация методом Монте-Карло по схеме
марковских цепей ...........................................................................................208
4.7. Частотная статистика* ......................................................................................208
4.7.1. Выборочное распределение .....................................................................209
4.7.2. Гауссова аппроксимация выборочного распределения MLE...............210

Tlgm: @it_boooks

10  Содержание
4.7.3. Бутстрэпная аппроксимация выборочного распределения
любого оценивателя ............................................................................................211
4.7.3.1. Бутстрэп – апостериорное распределение «для бедных» .............211
4.7.4. Доверительные интервалы .......................................................................212
4.7.5. Предостережения: доверительные интервалы и байесовские
доверительные интервалы не одно и то же .....................................................214
4.7.6. Компромисс между смещением и дисперсией......................................215
4.7.6.1. Смещение оценки ...............................................................................215
4.7.6.2. Дисперсия оценки ..............................................................................216
4.7.6.3. Компромисс между смещением и дисперсией ..............................216
4.7.6.4. Пример: оценка MAP среднего гауссова распределения ..............217
4.7.6.5. Пример: оценка MAP для линейной регрессии .............................218
4.7.6.6. Применение компромисса между смещением и дисперсией
для классификации .........................................................................................220
4.8. Упражнения........................................................................................................220

Глава 5. Теория принятия решений ..........................................................225
5.1. Байесовская теория принятия решений........................................................225
5.1.1. Основы.........................................................................................................225
5.1.2. Проблемы классификации .......................................................................227
5.1.2.1. Бинарная потеря .................................................................................228
5.1.2.2. Классификация с учетом стоимости ...............................................228
5.1.2.3. Классификация с возможностью отклонения примера ...............229
5.1.3. ROC-кривые ................................................................................................230
5.1.3.1. Матрицы неточностей классификации ..........................................230
5.1.3.2. Обобщение ROC-кривой в виде скаляра .........................................233
5.1.3.3. Несбалансированность классов ........................................................233
5.1.4. Кривые точность–полнота .......................................................................233
5.1.4.1. Вычисление точности и полноты .....................................................234
5.1.4.2. Обобщение кривых точность–полнота в виде скаляра ................234
5.1.4.3. F-мера...................................................................................................235
5.1.4.4. Несбалансированность классов ........................................................235
5.1.5. Задачи регрессии .......................................................................................236
5.1.5.1. 𝓁2-потеря ..............................................................................................236
5.1.5.2 𝓁1-потеря ...............................................................................................237
5.1.5.3. Функция потерь Хьюбера ..................................................................237
5.1.6. Задачи вероятностного предсказания....................................................238
5.1.6.1. Расхождение КЛ, перекрестная энтропия
и логарифмическая потеря ............................................................................238
5.1.6.2. Правила верной оценки ....................................................................239
5.2. Байесовская проверка гипотез........................................................................240
5.2.1. Пример: проверка симметричности монеты ........................................241
5.2.2. Байесовский выбор модели ......................................................................242
5.2.2.1. Пример: полиномиальная регрессия ..............................................243
5.2.3. Бритва Оккама ...........................................................................................244
5.2.4. Связь между перекрестной проверкой и маргинальным
правдоподобием ..................................................................................................246

Tlgm: @it_boooks

Содержание  11

5.2.5. Информационные критерии....................................................................246
5.2.5.1. Байесовский информационный критерий (BIC) ...........................247
5.2.5.2. Информационный критерий Акаике ..............................................247
5.2.5.3. Минимальная длина описания (MDL) .............................................248
5.3. Частотная теория принятий решений ...........................................................248
5.3.1. Вычисление риска оценки ........................................................................248
5.3.1.1. Пример .................................................................................................249
5.3.1.2. Байесовский риск ...............................................................................250
5.3.1.3. Максимальный риск ..........................................................................251
5.3.2. Состоятельные оценки ..............................................................................251
5.3.3. Допустимые оценки ..................................................................................252
5.4. Минимизация эмпирического риска .............................................................253
5.4.1. Эмпирический риск...................................................................................253
5.4.1.1. Ошибка аппроксимации и ошибка оценивания ...........................254
5.4.1.2. Регуляризированный риск ................................................................255
5.4.2. Структурный риск......................................................................................255
5.4.3. Перекрестная проверка ............................................................................256
5.4.4. Статистическая теория обучения* ..........................................................257
5.4.4.1. Нахождение границы ошибки обобщения .....................................257
5.4.4.2. VC-размерность ..................................................................................258
5.5. Частотная проверка гипотез* ..........................................................................258
5.5.1. Критерий отношения правдоподобия....................................................259
5.5.1.1. Пример: сравнение гауссовых средних ..........................................259
5.5.1.2. Простые и сложные гипотезы...........................................................260
5.5.2. Проверка значимости нулевой гипотезы ..............................................260
5.5.3. p-значения ..................................................................................................261
5.5.4. О вреде p-значений ...................................................................................261
5.5.5. Почему же не все исповедуют байесовский подход? ...........................264
5.6. Упражнения........................................................................................................266

Глава 6. Теория информации .......................................................................268
6.1. Энтропия ............................................................................................................268
6.1.1. Энтропия дискретных случайных величин ...........................................268
6.1.2. Перекрестная энтропия ............................................................................271
6.1.3. Совместная энтропия................................................................................271
6.1.4. Условная энтропия.....................................................................................272
6.1.5. Перплексия .................................................................................................273
6.1.6. Дифференциальная энтропия непрерывных случайных
величин*................................................................................................................274
6.1.6.1. Пример: энтропия гауссова распределения ...................................274
6.1.6.2. Связь с дисперсией.............................................................................275
6.1.6.3. Дискретизация ....................................................................................275
6.2. Относительная энтропия (расхождение KL)* ...............................................275
6.2.1. Определение ...............................................................................................276
6.2.2. Интерпретация...........................................................................................276
6.2.3. Пример: расхождение КЛ между двумя гауссовыми
распределениями.................................................................................................276

Tlgm: @it_boooks

12  Содержание
6.2.4. Неотрицательность расхождения КЛ ......................................................277
6.2.5. Расхождение КЛ и оценка максимального правдоподобия ................278
6.2.6. Прямое и обратное расхождение КЛ.......................................................279
6.3. Взаимная информация* ...................................................................................280
6.3.1. Определение ...............................................................................................280
6.3.2. Интерпретация...........................................................................................280
6.3.3. Пример ........................................................................................................282
6.3.4. Условная взаимная информация.............................................................282
6.3.5. Взаимная информация как «обобщенный коэффициент
корреляции» .........................................................................................................283
6.3.6. Нормированная взаимная информация ................................................284
6.3.7. Максимальный коэффициент информации ..........................................285
6.3.8. Неравенство обработки данных ..............................................................287
6.3.9. Достаточные статистики ..........................................................................288
6.3.10. Неравенство Фано* ..................................................................................288
6.4. Упражнения........................................................................................................289

Глава 7. Линейная алгебра ............................................................................292
7.1. Введение .............................................................................................................292
7.1.1. Обозначения ...............................................................................................292
7.1.1.1. Векторы ................................................................................................292
7.1.1.2. Матрицы ...............................................................................................293
7.1.1.3. Тензоры ................................................................................................294
7.1.2. Векторные пространства...........................................................................295
7.1.2.1. Сложение векторов и умножение вектора на скаляр ....................295
7.1.2.2. Линейная независимость, линейная оболочка и базисы..............296
7.1.2.3. Линейные отображения и матрицы.................................................296
7.1.2.4. Образ и ядро матрицы .......................................................................297
7.1.2.5. Линейная проекция ............................................................................297
7.1.3. Нормы вектора и матрицы .......................................................................298
7.1.3.1. Нормы вектора ....................................................................................298
7.1.3.2. Нормы матрицы ..................................................................................299
7.1.4. Свойства матриц ........................................................................................300
7.1.4.1. След квадратной матрицы ................................................................300
7.1.4.2. Определитель квадратной матрицы ................................................300
7.1.4.3. Ранг матрицы ......................................................................................301
7.1.4.4. Числа обусловленности ......................................................................301
7.1.5. Специальные типы матриц ......................................................................303
7.1.5.1. Диагональная матрица ......................................................................303
7.1.5.2. Треугольные матрицы........................................................................304
7.1.5.3. Положительно определенные матрицы ..........................................304
7.1.5.4. Ортогональные матрицы...................................................................305
7.2. Умножение матриц ...........................................................................................306
7.2.1. Умножение векторов .................................................................................307
7.2.2. Произведение матрицы на вектор ..........................................................307
7.2.3. Произведение матриц ...............................................................................308
7.2.4. Приложение: манипулирование матрицами данных ..........................310

Tlgm: @it_boooks

Содержание  13

7.2.4.1. Суммирование срезов матрицы .......................................................310
7.2.4.2. Масштабирование строк и столбцов матрицы...............................311
7.2.4.3. Матрица сумм квадратов и матрица рассеяния ............................311
7.2.4.4. Матрица Грама ....................................................................................312
7.2.4.5. Матрица расстояний ..........................................................................313
7.2.5. Произведения Кронекера* ........................................................................313
7.2.6. Суммирование Эйнштейна* .....................................................................314
7.3. Обращение матриц ...........................................................................................315
7.3.1. Обращение квадратной матрицы............................................................315
7.3.2. Дополнения Шура* .....................................................................................316
7.3.3. Лемма об обращении матрицы* ..............................................................317
7.3.4. Лемма об определителе матрицы* ..........................................................318
7.3.5. Приложение: вывод условных распределений
для многомерного гауссова распределения ....................................................319
7.4. Спектральное разложение ...............................................................................320
7.4.1. Основные сведения....................................................................................320
7.4.2. Диагонализация .........................................................................................321
7.4.3. Собственные значения и собственные векторы симметричных
матриц ...................................................................................................................322
7.4.3.1. Проверка на положительную определенность ...............................322
7.4.4. Геометрия квадратичных форм ...............................................................323
7.4.5. Стандартизация и отбеливание данных .................................................323
7.4.6. Степенной метод ........................................................................................324
7.4.7. Понижение порядка ...................................................................................326
7.4.8. Собственные векторы оптимизируют квадратичные формы.............326
7.5. Сингулярное разложение (SVD) ......................................................................327
7.5.1. Основные сведения....................................................................................327
7.5.2. Связь между сингулярным и спектральным разложением .................328
7.5.3. Псевдообратная матрица ..........................................................................329
7.5.4. SVD и образ и ядро матрицы* ..................................................................330
7.5.5. Усеченное сингулярное разложение .......................................................331
7.6. Другие матричные разложения* .....................................................................332
7.6.1. LU-разложение ...........................................................................................332
7.6.2. QR-разложение ...........................................................................................333
7.6.3. Разложение Холески ..................................................................................334
7.6.3.1. Приложение: выборка из многомерного гауссова
распределения .................................................................................................334
7.7. Решение систем линейных уравнений* .........................................................335
7.7.1. Решение квадратных систем ....................................................................336
7.7.2. Решение недоопределенных систем (оценка по наименьшей
норме) ....................................................................................................................336
7.7.3. Решение переопределенных систем (оценка по методу
наименьших квадратов) .....................................................................................338
7.8. Матричное исчисление .....................................................................................339
7.8.1. Производные ..............................................................................................339
7.8.2. Градиенты ...................................................................................................340
7.8.3. Производная по направлению .................................................................340

Tlgm: @it_boooks

14  Содержание
7.8.4. Полная производная* ................................................................................341
7.8.5. Якобиан........................................................................................................341
7.8.5.1. Умножение якобиана на вектор .......................................................342
7.8.5.2. Якобиан композиции .........................................................................342
7.8.6. Гессиан .........................................................................................................342
7.8.7. Градиенты часто встречающихся функций ............................................343
7.8.7.1. Функции, отображающие скаляры в скаляры.................................343
7.8.7.2. Функции, отображающие векторы в скаляры ................................343
7.8.7.3. Функции, отображающие матрицы в скаляры ...............................344
7.9. Упражнения ........................................................................................................345

Глава 8. Оптимизация ......................................................................................346
8.1. Введение .............................................................................................................346
8.1.1. Локальная и глобальная оптимизация ...................................................346
8.1.1.1. Условия оптимальности для локальных и глобальных
оптимумов ........................................................................................................347
8.1.2. Условная и безусловная оптимизация ....................................................348
8.1.3. Выпуклая и невыпуклая оптимизация ...................................................349
8.1.3.1. Выпуклые множества .........................................................................349
8.1.3.2. Выпуклые функции ............................................................................350
8.1.3.3. Характеристика выпуклых функций ...............................................351
8.1.3.4. Сильно выпуклые функции ..............................................................352
8.1.4. Гладкая и негладкая оптимизация ..........................................................353
8.1.4.1. Субградиенты ......................................................................................354
8.2. Методы первого порядка .................................................................................355
8.2.1. Направление спуска ..................................................................................356
8.2.2. Размер шага (скорость обучения)............................................................356
8.2.2.1. Постоянный размер шага ..................................................................356
8.2.2.2. Линейный поиск .................................................................................358
8.2.3. Скорость сходимости ................................................................................359
8.2.4. Метод имульса ............................................................................................360
8.2.4.1. Импульс................................................................................................360
8.2.4.2. Момент Нестерова ..............................................................................361
8.3. Методы второго порядка .................................................................................362
8.3.1. Метод Ньютона ..........................................................................................362
8.3.2. BFGS и другие квазиньютоновские методы ..........................................364
8.3.3. Методы на основе доверительных областей .........................................365
8.4. Стохастический градиентный спуск ..............................................................366
8.4.1. Приложение к задачам с конечной суммой ..........................................367
8.4.2. Пример: СГС для обучения модели линейной регрессии ....................368
8.4.3. Выбор размера шага (скорости обучения) .............................................369
8.4.4. Итеративное усреднение ..........................................................................371
8.4.5. Уменьшение дисперсии* ..........................................................................372
8.4.5.1. SVRG .....................................................................................................372
8.4.5.2. SAGA .....................................................................................................373
8.4.5.3. Применение в глубоком обучении ..................................................373
8.4.6. Предобусловленный СГС ..........................................................................374

Tlgm: @it_boooks

Содержание  15

8.4.6.1. AdaGrad ................................................................................................374
8.4.6.2. RMSProp и AdaDelta ............................................................................375
8.4.6.3. Adam .....................................................................................................376
8.4.6.4. Проблемы, связанные с адаптивной скоростью обучения ..........376
8.4.6.5. Недиагональные матрицы предобусловливания ..........................377
8.5. Условная оптимизация .....................................................................................377
8.5.1. Множители Лагранжа ................................................................................378
8.5.1.1. Пример: двумерная квадратичная целевая функция
с одним линейным ограничением в виде равенства .................................379
8.5.2. Условия Каруша–Куна–Таккера ...............................................................380
8.5.3. Линейное программирование .................................................................381
8.5.3.1. Симплекс-метод .................................................................................382
8.5.3.2. Приложения.........................................................................................382
8.5.4. Квадратичное программирование..........................................................382
8.5.4.1. Пример: квадратичная целевая функция в двумерном
случае с линейными ограничениями в виде равенств ..............................383
8.5.4.2. Приложения.........................................................................................384
8.5.5. Смешанно-целочисленное программирование* ..................................384
8.6. Проксимальный градиентный метод*...........................................................384
8.6.1. Спроецированный градиентный спуск ..................................................385
8.6.2. Проксимальный оператор для регуляризатора по норме 𝓁1 ...............387
8.6.3. Применение проксимального оператора в случае квантования .......388
8.6.4. Инкрементные (онлайновые) проксимальные методы ......................389
8.7. Граничная оптимизация*.................................................................................389
8.7.1. Общий алгоритм ........................................................................................389
8.7.2. EM-алгоритм ...............................................................................................391
8.7.2.1. Нижняя граница ..................................................................................392
8.7.2.2. E-шаг .....................................................................................................392
8.7.2.3. M-шаг ....................................................................................................393
8.7.3. Пример: EM-алгоритм для смеси гауссовых распределений ..............394
8.7.3.1. E-шаг .....................................................................................................394
8.7.3.2. M-шаг ....................................................................................................394
8.7.3.3. Пример .................................................................................................395
8.7.3.4. Оценка MAP .........................................................................................395
8.7.3.5. Невыпуклость NLL ..............................................................................398
8.8. Оптимизация черного ящика и оптимизация без использования
производных .............................................................................................................399
8.9. Упражнения........................................................................................................399

Часть II. ЛИНЕЙНЫЕ МОДЕЛИ ................................................................400
Глава 9. Линейный дискриминантный анализ....................................401
9.1. Введение .............................................................................................................401
9.2. Гауссов дискриминантный анализ .................................................................401
9.2.1. Квадратичные решающие границы ........................................................402
9.2.2. Линейные решающие границы ...............................................................403

Tlgm: @it_boooks

16  Содержание
9.2.3. Связь между ЛДА и логистической регрессией .....................................403
9.2.4. Обучение модели .......................................................................................405
9.2.4.1. Связанные ковариационные матрицы ...........................................406
9.2.4.2. Диагональные ковариационные матрицы .....................................406
9.2.4.3. Оценка MAP .........................................................................................406
9.2.5. Классификатор по ближайшему центроиду ..........................................407
9.2.6. Линейный дискриминантный анализ Фишера* ...................................407
9.2.6.1. Нахождение оптимального одномерного направления ..............409
9.2.6.2. Обобщение на большую размерность и несколько классов ........411
9.3. Наивные байесовские классификаторы ........................................................412
9.3.1. Примеры моделей......................................................................................413
9.3.2. Обучение модели .......................................................................................413
9.3.3. Байесовская интерпретация наивной байесовской модели ...............415
9.3.4. Связь между наивной байесовской моделью и логистической
регрессией.............................................................................................................416
9.4. Порождающие и дискриминантные классификаторы ................................417
9.4.1. Преимущества дискриминантных классификаторов ..........................417
9.4.2. Преимущества порождающих классификаторов..................................418
9.4.3. Обработка отсутствующих признаков....................................................419
9.5. Упражнения........................................................................................................419

Глава 10. Логистическая регрессия ..........................................................420
10.1. Введение ...........................................................................................................420
10.2. Бинарная логистическая регрессия..............................................................420
10.2.1. Линейные классификаторы ...................................................................421
10.2.2. Нелинейные классификаторы ...............................................................422
10.2.3. Оценка максимального правдоподобия ..............................................423
10.2.3.1. Целевая функция ..............................................................................423
10.2.3.2. Оптимизация целевой функции ....................................................424
10.2.3.3. Вывод градиента...............................................................................425
10.2.3.4. Вывод гессиана .................................................................................426
10.2.4. Стохастический градиентный спуск .....................................................427
10.2.5. Алгоритм перцептрона ...........................................................................427
10.2.6. Метод наименьших квадратов с итеративным пересчетом
весов.......................................................................................................................428
10.2.7. Оценка MAP ..............................................................................................430
10.2.8. Стандартизация .......................................................................................431
10.3. Мультиномиальная логистическая регрессия ............................................432
10.3.1. Линейные и нелинейные классификаторы .........................................433
10.3.2. Оценка максимального правдоподобия ..............................................433
10.3.2.1. Целевая функция ..............................................................................434
10.3.2.2. Оптимизация целевой функции ....................................................434
10.3.2.3. Вывод градиента...............................................................................434
10.3.2.4. Вывод гессиана .................................................................................435
10.3.3. Градиентная оптимизация .....................................................................436
10.3.4. Граничная оптимизация.........................................................................436
10.3.5. Оценка MAP ..............................................................................................438

Tlgm: @it_boooks

Содержание  17

10.3.6. Классификаторы максимальной энтропии .........................................439
10.3.7. Иерархическая классификация..............................................................440
10.3.8. Работа с большим числом классов ........................................................440
10.3.8.1. Иерархическая softmax-модель......................................................441
10.3.8.2. Несбалансированность классов и длинный хвост .......................441
10.4. Робастная логистическая регрессия* ...........................................................443
10.4.1. Смесовая модель правдоподобия..........................................................443
10.4.2. Дважды смягченная потеря ...................................................................444
10.5. Байесовская логистическая регрессия* .......................................................447
10.5.1. Аппроксимация Лапласа ........................................................................447
10.5.2. Аппроксимация апостериорного прогнозного распределения .......449
10.5.2.1. Аппроксимация Монте-Карло ........................................................451
10.5.2.2. Пробит-аппроксимация ..................................................................451
10.6. Упражнения......................................................................................................452

Глава 11. Линейная регрессия ....................................................................455
11.1. Введение ...........................................................................................................455
11.2. Линейная регрессия по методу наименьших квадратов ..........................455
11.2.1. Терминология ...........................................................................................455
11.2.2. Оценивание по методу наименьших квадратов .................................457
11.2.2.1. Обыкновенный метод наименьших квадратов ...........................457
11.2.2.2. Геометрическая интерпретация метода наименьших
квадратов ..........................................................................................................458
11.2.2.3. Алгоритмические проблемы..........................................................460
11.2.2.4. Метод взвешенных наименьших квадратов ................................461
11.2.3. Другие подходы к вычислению MLE .....................................................461
11.2.3.1. Нахождение смещения и углового коэффициента
по отдельности .................................................................................................461
11.2.3.2. Простая линейная регрессия (одномерные входные
данные) .............................................................................................................462
11.2.3.3. Частная регрессия ............................................................................462
11.2.3.4. Рекурсивное вычисление MLE ........................................................462
11.2.3.5. Вывод MLE с порождающей точки зрения ...................................464
11.2.3.6. Вывод MLE для σ2 ................................................................................................................. 465
11.2.4. Измерение степени согласия оценки ...................................................465
11.2.4.1. Графики невязок ...............................................................................465
11.2.4.2. Точность предсказания и R2............................................................466
11.3. Гребневая регрессия ...................................................................................467
11.3.1. Вычисление оценки MAP ........................................................................467
11.3.1.1. Решение с использованием QR-разложения ................................468
11.3.1.2. Решение с использованием сингулярного разложения .............469
11.3.2. Связь между гребневой регрессией и PCA ...........................................469
11.3.3. Выбор силы регуляризатора ..................................................................471
11.4. Регрессия lasso .................................................................................................471
11.4.1. Оценка MAP с априорным распределением Лапласа
(𝓁1-регуляризация) ...............................................................................................472
11.4.2. Почему 𝓁1-регуляризация дает разреженные решения? ...................473

Tlgm: @it_boooks

18  Содержание
11.4.3. Жесткие и мягкие пороги .......................................................................474
11.4.4. Путь регуляризации ................................................................................476
11.4.5. Сравнение методов наименьших квадратов, lasso, гребневой
регрессии и выбора подмножеств .....................................................................478
11.4.6. Согласованность выбора переменных..................................................479
11.4.7. Групповое lasso .........................................................................................481
11.4.7.1. Приложения .......................................................................................481
11.4.7.2. Штрафование по норме 𝓁2 ...............................................................482
11.4.7.3. Штрафование по норме 𝓁¥ ..............................................................482
11.4.7.4. Пример ...............................................................................................483
11.4.8. Эластичная сеть (комбинация гребневой регрессии и lasso) ............484
11.4.9. Алгоритмы оптимизации .......................................................................485
11.4.9.1. Покоординатный спуск ...................................................................485
11.4.9.2. Спроецированный градиентный спуск ........................................486
11.4.9.3. Проксимальный градиентный спуск .............................................486
11.4.9.4. LARS ....................................................................................................486
11.5. Регрессионные сплайны*...............................................................................487
11.5.1. B-сплайны в качестве базисных функций ...........................................488
11.5.2. Обучение линейно модели с помощью сплайнового базиса ............489
11.5.3. Сглаживающие сплайны .........................................................................490
11.5.4. Обобщенные аддитивные модели ........................................................490
11.6. Робастная линейная регрессия*....................................................................491
11.6.1. Правдоподобие Лапласа .........................................................................491
11.6.1.1. Вычисление MLE методами линейного программирования .....492
11.6.2. t-правдоподобие Стьюдента ..................................................................493
11.6.3. Функция потерь Хьюбера .......................................................................493
11.6.4. RANSAC ......................................................................................................494
11.7. Байесовская линейная регрессия* ................................................................494
11.7.1. Априорные распределения.....................................................................494
11.7.2. Апостериорные распределения .............................................................495
11.7.3. Пример .......................................................................................................495
11.7.4. Вычисление апостериорного прогнозного распределения...............497
11.7.5. Преимущество центрирования ..............................................................498
11.7.6. Мультиколлинеарность ...........................................................................499
11.7.7. Автоматическое определение релевантности (ARD)* ........................501
11.8. Упражнения......................................................................................................502

Глава 12. Обобщенные линейные модели* .........................................505
12.1. Введение ...........................................................................................................505
12.2. Примеры ...........................................................................................................506
12.2.1. Линейная регрессия ................................................................................506
12.2.2. Биномиальная регрессия ........................................................................506
12.2.3. Регрессия Пуассона ..................................................................................507
12.3. GLM с неканоническими функциями связи ...............................................508
12.4. Оценка максимального правдоподобия......................................................509
12.5. Рабочий пример: предсказание обращений за страховыми
выплатами.................................................................................................................510

Tlgm: @it_boooks

Содержание  19

Часть III. ГЛУБОКИЕ НЕЙРОННЫЕ СЕТИ ........................................513
Глава 13. Нейронные сети для структурированных данных ......514
13.1. Введение ...........................................................................................................514
13.2. Многослойные перцептроны (МСП) ............................................................516
13.2.1. Задача XOR ................................................................................................516
13.2.2. Дифференцируемые МСП ......................................................................517
13.2.3. Функции активации ................................................................................518
13.2.4. Примеры моделей....................................................................................519
13.2.4.1. МСП для классификации двумерных данных
по двум категориям ........................................................................................519
13.2.4.2. МСП для классификации изображений ........................................520
13.2.4.3. МСП для классификации текстов ...................................................522
13.2.4.4. МСП для гетероскедастической регрессии ...................................523
13.2.5. Важность глубины ....................................................................................524
13.2.6. Революция глубокого обучения .............................................................525
13.2.7. Связи с биологией ....................................................................................526
13.3. Обратное распространение ...........................................................................529
13.3.1. Прямой и обратный режим дифференцирования..............................530
13.3.2. Дифференцирование в обратном режиме для многослойных
перцептронов .......................................................................................................531
13.3.3. Произведение вектора на якобиан для типичных слоев ...................533
13.3.3.1. Слой перекрестной энтропии.........................................................533
13.3.3.2. Поэлементная нелинейность..........................................................534
13.3.3.3. Линейный слой .................................................................................535
13.3.3.4. Соберем все вместе ..........................................................................536
13.3.4. Графы вычислений ..................................................................................536
13.4. Обучение нейронных сетей ...........................................................................538
13.4.1. Настройка скорости обучения ...............................................................539
13.4.2. Исчезающие и взрывные градиенты ....................................................539
13.4.3. Функции активации без насыщения ....................................................540
13.4.3.1. ReLU ....................................................................................................542
13.4.3.2. ReLU без насыщения ........................................................................542
13.4.3.3. Другие варианты ..............................................................................543
13.4.4. Остаточные связи ....................................................................................544
13.4.5. Инициализация параметров ..................................................................545
13.4.5.1. Эвристические схемы инициализации .........................................545
13.4.5.2. Инициализации, управляемые данными .....................................546
13.4.6. Параллельное обучение ..........................................................................546
13.5. Регуляризация .................................................................................................548
13.5.1. Ранняя остановка .....................................................................................548
13.5.2. Уменьшение весов ...................................................................................548
13.5.3. Разреженные ГНС ....................................................................................548
13.5.4. Прореживание ..........................................................................................549
13.5.5. Байесовские нейронные сети ................................................................551
13.5.6. Эффекты регуляризации, порождаемые стохастическим
градиентным спуском* .......................................................................................551

Tlgm: @it_boooks

20  Содержание
13.6. Другие виды сетей прямого распространения* .........................................553
13.6.1. Сети радиально-базисных функций .....................................................553
13.6.1.1. RBF-сеть для регрессии....................................................................554
13.6.1.2. RBF-сеть для классификации..........................................................554
13.6.2. Смесь экспертов .......................................................................................555
13.6.2.1. Смесь линейных экспертов .............................................................558
13.6.2.2. Глубокие сети экспертов..................................................................558
13.6.2.3. Иерархические смеси экспертов ....................................................559
13.7. Упражнения ......................................................................................................559

Глава 14. Нейронные сети для изображений .....................................561
14.1. Введение ...........................................................................................................561
14.2. Наиболее употребительные слои ..................................................................563
14.2.1. Сверточные слои ......................................................................................563
14.2.1.1. Свертка в одномерном случае ........................................................563
14.2.1.2. Свертка в двумерном случае...........................................................564
14.2.1.3. Свертка как умножение матрицы на вектор ................................565
14.2.1.4. Граничные условия и дополнение .................................................566
14.2.1.5. Свертка с шагом................................................................................568
14.2.1.6. Несколько входных и выходных каналов .....................................568
14.2.1.7. Свертка 1´1 (поточечная) ...............................................................569
14.2.2. Пулинговые слои ......................................................................................569
14.2.3. Соберем все вместе..................................................................................571
14.2.4. Слои нормировки ....................................................................................571
14.2.4.1. Пакетная нормировка ......................................................................572
14.2.4.2. Другие виды слоя нормировки.......................................................573
14.2.4.3. Сети без нормировки .......................................................................575
14.3. Распространенные архитектуры классификации изображений .............575
14.3.1. LeNet ..........................................................................................................575
14.3.2. AlexNet .......................................................................................................577
14.3.3. GoogLeNet..................................................................................................578
14.3.4. ResNet ........................................................................................................579
14.3.5. DenseNet ....................................................................................................581
14.3.6. Поиск архитектуры нейронной сети ....................................................581
14.4. Другие формы свертки* .................................................................................582
14.4.1. Дырявая свертка ......................................................................................582
14.4.2. Транспонированная свертка ..................................................................583
14.4.3. Пространственная раздельная свертка ................................................584
14.5. Решение других дискриминантных задач компьютерного зрения
с помощью СНС* ......................................................................................................585
14.5.1. Аннотирование изображений................................................................586
14.5.2. Определение объектов ............................................................................586
14.5.3. Сегментация экземпляров .....................................................................588
14.5.4. Семантическая сегментация ..................................................................589
14.5.5. Оценивание позы человека....................................................................590
14.6. Генерирование изображений посредством инвертирования СНС* ........591

Tlgm: @it_boooks

Содержание  21

14.6.1. Преобразование обученного классификатора в порождающую
модель....................................................................................................................592
14.6.2. Априорные распределения изображений............................................592
14.6.2.1. Гауссово априорное распределения ..............................................593
14.6.2.2. Априорное распределение на основе полной вариации ...........594
14.6.3. Визуализация признаков, обученных с помощью СНС .....................595
14.6.4. Deep Dream................................................................................................595
14.6.5. Нейронный перенос стиля .....................................................................597
14.6.5.1. Как это работает ...............................................................................598
14.6.5.2. Ускорение метода .............................................................................600

Глава 15. Нейронные сети для последовательностей....................602
15.1. Введение ...........................................................................................................602
15.2. Рекуррентные нейронные сети (РНС) ..........................................................602
15.2.1. Vec2Seq (генерирование последовательностей) .................................602
15.2.1.1. Модели ...............................................................................................603
15.2.1.2. Приложения.......................................................................................604
15.2.2. Seq2Vec (классификация последовательностей) .................................606
15.2.3. Seq2Seq (трансляция последовательностей) .......................................607
15.2.3.1. Выровненный случай .......................................................................607
15.2.3.2. Невыровненный случай ..................................................................608
15.2.4. Принуждение со стороны учителя ........................................................609
15.2.5. Обратное распространение во времени ..............................................610
15.2.6. Исчезающие и взрывные градиенты ....................................................612
15.2.7. Вентильная и долгосрочная память ......................................................612
15.2.7.1. Управляемые рекуррентные блоки (GRU) .....................................612
15.2.7.2. Долгая краткосрочная память (LSTM) ...........................................613
15.2.8. Лучевой поиск ..........................................................................................615
15.3. Одномерные СНС ............................................................................................617
15.3.1. Применение одномерных СНС для классификации
последовательностей ..........................................................................................618
15.3.2. Применение каузальных одномерных СНС для генерирования
последовательностей ..........................................................................................618
15.4. Модель внимания ............................................................................................620
15.4.1. Механизм внимания как мягкий поиск в словаре .............................620
15.4.2. Ядерная регрессия как непараметрическое внимание .....................622
15.4.3. Параметрическое внимание ..................................................................623
15.4.4. Модель Seq2Seq с вниманием ................................................................624
15.4.5. Модель Seq2vec с вниманием (классификация текста)......................626
15.4.6. Модель Seq+Seq2Vec с вниманием (классификация пар
предложений) .......................................................................................................627
15.4.7. Мягкое и жесткое внимание ...................................................................629
15.5. Трансформеры .................................................................................................629
15.5.1. Самовнимание .........................................................................................630
15.5.2. Многопутевое внимание ........................................................................632
15.5.3. Позиционное кодирование ....................................................................632
15.5.4. Соберем все вместе..................................................................................634

Tlgm: @it_boooks

22  Содержание
15.5.5. Сравнение трансформеров, СНС и HYC................................................636
15.5.6. Применение трансформеров для изображений* ................................636
15.5.7. Другие варианты трансформеров* ........................................................638
15.6. Эффективные трансформеры* ......................................................................639
15.6.1. Фиксированные необучаемые локализованные паттерны
внимания ..............................................................................................................639
15.6.2. Обучаемые паттерны разреженного внимания ..................................640
15.6.3. Методы с добавлением памяти и рекуррентные методы .................640
15.6.4. Низкоранговые и ядерные методы .......................................................640
15.7. Языковые модели и обучение представлений без учителя ......................643
15.7.1. ELMo ...........................................................................................................643
15.7.2. BERT............................................................................................................644
15.7.2.1. Замаскированная языковая модель ...............................................645
15.7.2.2. Задача предсказания следующего предложения .........................645
15.7.2.3. Дообучение BERT для приложений NLP ........................................647
15.7.3. GPT .............................................................................................................649
15.7.3.1. Приложения GPT ...............................................................................649
15.7.4. T5 ................................................................................................................649
15.7.5. Обсуждение ...............................................................................................650

Часть IV. НЕПАРАМЕТРИЧЕСКИЕ МОДЕЛИ ..................................652
Глава 16. Методы на основе эталонов ...................................................653
16.1. Классификация методом K ближайших соседей (KNN) ............................653
16.1.1. Пример ......................................................................................................654
16.1.2. Проклятие размерности .........................................................................655
16.1.3. Снижение требований к скорости и памяти .......................................656
16.1.4. Распознавание открытого множества ..................................................657
16.1.4.1. Онлайновое обучение, обнаружение посторонних
и распознавание открытого множества.......................................................657
16.1.4.2. Другие задачи открытого мира ......................................................658
16.2. Обучение метрик ............................................................................................658
16.2.1. Линейные и выпуклые методы..............................................................659
16.2.1.1. Метод ближайших соседей с большим зазором ..........................659
16.2.1.2. Анализ компонентов соседства......................................................660
16.2.1.3. Анализ латентных совпадений ......................................................660
16.2.2. Глубокое обучение метрики ...................................................................661
16.2.3. Потери классификации ...........................................................................662
16.2.4. Потери ранжирования ............................................................................662
16.2.4.1. Попарная (сопоставительная) потеря и сиамские сети..............663
16.2.4.2. Триплетная потеря ...........................................................................663
16.2.4.3. N-парная потеря ...............................................................................664
16.2.5. Ускорение оптимизации потери ранжирования ................................665
16.2.5.1. Добычные методы ............................................................................665
16.2.5.2. Методы на основе представителей ................................................665
16.2.5.3. Оптимизация верхней границы.....................................................666

Tlgm: @it_boooks

Содержание  23

16.2.6. Другие приемы глубокого обучения метрики .....................................668
16.3. Ядерные оценки плотности ...........................................................................669
16.3.1. Ядра плотности ........................................................................................669
16.3.2. Оконная оценка плотности Парцена ....................................................670
16.3.3. Как выбирать полосу пропускания .......................................................672
16.3.4. От KDE к KNN-классификации ..............................................................672
16.3.5. Ядерная регрессия ...................................................................................673
16.3.5.1. Оценка среднего Надарая–Ватсона ...............................................673
16.3.5.2. Оценка дисперсии ............................................................................675
16.3.5.3. Локально взвешенная регрессия....................................................675

Глава 17. Ядерные методы*..........................................................................676
17.1. Ядра Мерсера....................................................................................................676
17.1.1. Теорема Мерсера ......................................................................................678
17.1.2. Некоторые популярные ядра Мерсера..................................................678
17.1.2.1. Стационарные ядра для вещественных векторов .......................678
17.1.2.2. Создание новых ядер из существующих .......................................681
17.1.2.3. Комбинирование ядер с помощью сложения и умножения ......682
17.1.2.4. Ядра для структурированных входов ............................................683
17.2. Гауссовы процессы ..........................................................................................683
17.2.1. Незашумленные наблюдения.................................................................684
17.2.2. Зашумленные наблюдения .....................................................................685
17.2.3. Сравнение с ядерной регрессией ..........................................................686
17.2.4. Пространство весов и пространство функций.....................................687
17.2.5. Численные проблемы ..............................................................................688
17.2.6. Оценивание параметров ядра................................................................688
17.2.6.1. Эмпирическая байесовская оценка ...............................................689
17.2.6.2. Байесовский вывод ...........................................................................691
17.2.7. Применение гауссовых процессов для классификации .....................692
17.2.8. Связи с глубоким обучением ..................................................................694
17.2.9. Масштабирование ГП на большие наборы данных ............................694
17.2.9.1. Разреженные аппроксимации ........................................................694
17.2.9.2. Распараллеливание с использованием структуры ядерной
матрицы ............................................................................................................694
17.2.9.3. Аппроксимация случайными признаками ...................................695
17.3. Метод опорных векторов ...............................................................................696
17.3.1. Классификаторы с широким зазором ...................................................697
17.3.2. Двойственная задача ...............................................................................699
17.3.3. Классификаторы с мягким зазором ......................................................701
17.3.4. Ядерный трюк ...........................................................................................702
17.3.5. Преобразование выходов SVM в вероятности .....................................703
17.3.6. Связь с логистической регрессией ........................................................704
17.3.7. Многоклассовая классификация с применением SVM .......................705
17.3.8. Как выбирать регуляризатор C ..............................................................706
17.3.9. Ядерная гребневая регрессия .................................................................707
17.3.10. Применение SVM для регрессии..........................................................708
17.4. Метод разреженных векторов .......................................................................711

Tlgm: @it_boooks

24  Содержание
17.4.1. Метод релевантных векторов.................................................................711
17.4.2. Сравнение разреженных и плотных ядерных методов .....................711
17.5. Упражнения ......................................................................................................715

Глава 18. Деревья, леса, бэггинг и бустинг ...........................................716
18.1. Деревья классификации и регрессии ...........................................................716
18.1.1. Определение модели ...............................................................................716
18.1.2. Обучение модели .....................................................................................717
18.1.3. Регуляризация ..........................................................................................719
18.1.4. Обработка отсутствующих входных признаков .................................720
18.1.5. Плюсы и минусы ......................................................................................720
18.2. Ансамблевое обучение ...................................................................................721
18.2.1. Стековое обобщение ...............................................................................722
18.2.2. Ансамблевое обучение не то же, что байесовское усреднение
моделей .................................................................................................................722
18.3. Бэггинг ..............................................................................................................723
18.4. Случайные леса................................................................................................724
18.5. Бустинг ..............................................................................................................725
18.5.1. Прямое поэтапное аддитивное моделирование .................................726
18.5.2. Квадратичная потеря и бустинг наименьших квадратов ..................727
18.5.3. Экспоненциальная потеря и AdaBoost .................................................727
18.5.4. LogitBoost ..................................................................................................731
18.5.5. Градиентный бустинг ..............................................................................732
18.5.5.1. Градиентный бустинг деревьев ......................................................734
18.5.5.2. XGBoost ..............................................................................................734
18.6. Интерпретация ансамблей деревьев ...........................................................736
18.6.1. Важность признаков ................................................................................736
18.6.2. Графики частичной зависимости ..........................................................738

Часть V. ЗА ПРЕДЕЛАМИ ОБУЧЕНИЯ С УЧИТЕЛЕМ ................739
Глава 19. Обучение при меньшем числе помеченных
примеров ...............................................................................................................740
19.1. Приращение данных.......................................................................................740
19.1.1. Примеры....................................................................................................740
19.1.2. Теоретическое обоснование...................................................................741
19.2. Перенос обучения ...........................................................................................742
19.2.1. Дообучение ...............................................................................................742
19.2.2. Адаптеры ...................................................................................................744
19.2.3. Предобучение с учителем.......................................................................745
19.2.4. Предобучение без учителя (самостоятельное обучение) ..................746
19.2.4.1. Задачи подстановки .........................................................................747
19.2.4.2. Замещающие задачи ........................................................................748
19.2.4.3. Сопоставительные задачи...............................................................748
19.2.4.4. SimCLR................................................................................................748
19.2.4.5. CLIP .....................................................................................................751

Tlgm: @it_boooks

Содержание  25

19.2.5. Адаптация домена ...................................................................................752
19.3. Обучение с частичным привлечением учителя .........................................753
19.3.1. Самообучение и псевдопометка ...........................................................754
19.3.2. Минимизация энтропии.........................................................................755
19.3.2.1. Кластерное допущение ....................................................................756
19.3.2.2. Взаимная информация между входом и выходом ......................757
19.3.3. Совместное обучение ..............................................................................758
19.3.4. Распространение меток на графах........................................................759
19.3.5. Регуляризация по согласованности ......................................................760
19.3.6. Глубокие порождающие модели* ..........................................................762
19.3.6.1. Вариационные автокодировщики .................................................763
19.3.6.2. Порождающие состязательные сети..............................................765
19.3.6.3. Нормализующие потоки .................................................................766
19.3.7. Сочетание самостоятельного обучения и обучения
с частичным привлечением учителя ................................................................767
19.4. Активное обучение .........................................................................................768
19.4.1. Подход на основе теории принятия решений .....................................769
19.4.2. Теоретико-информационный подход ..................................................769
19.4.3. Пакетное активное обучение .................................................................770
19.5. Метаобучение ..................................................................................................770
19.5.1. Метаобучение, не зависящее от модели (MAML) ................................771
19.6. Обучение на малом числе примеров ...........................................................772
19.6.1. Сопоставляющие сети .............................................................................773
19.7. Обучение со слабым учителем ......................................................................774
19.8. Упражнения......................................................................................................775

Глава 20. Понижение размерности ..........................................................776
20.1. Метод главных компонент ............................................................................776
20.1.1. Примеры....................................................................................................777
20.1.2. Вывод алгоритма .....................................................................................779
20.1.2.1. Базовый случай .................................................................................779
20.1.2.2. Оптимальный вектор весов максимизирует дисперсию
спроецированных данных .............................................................................780
20.1.2.3. Шаг индукции ...................................................................................781
20.1.3. Вычислительные трудности ...................................................................782
20.1.3.1. Ковариационная матрица и корреляционная матрица .............782
20.1.3.2. Работа с данными высокой размерности .....................................783
20.1.3.3. Вычисление PCA с использованием SVD ......................................783
20.1.4. Выбор числа латентных измерений .....................................................784
20.1.4.1. Ошибка реконструкции ...................................................................784
20.1.4.2. Графики каменистой осыпи ...........................................................785
20.1.4.3. Правдоподобие профиля.................................................................785
20.2. Факторный анализ* ........................................................................................787
20.2.1. Порождающая модель .............................................................................787
20.2.2. Вероятностный PCA.................................................................................789
20.2.3. EM-алгоритм для ФА/PPCA ....................................................................790
20.2.3.1. EM-алгоритм для ФА ........................................................................791

Tlgm: @it_boooks

26  Содержание
20.2.3.2. EM-алгоритм для (P)PCA .................................................................791
20.2.3.3. Преимущества ...................................................................................792
20.2.4. Неидентифицируемость параметров ...................................................794
20.2.5. Нелинейный факторный анализ ...........................................................795
20.2.6. Смеси факторных анализаторов ...........................................................795
20.2.7. Факторный анализ экспоненциального семейства ............................797
20.2.7.1. Пример: бинарный PCA ...................................................................798
20.2.7.2. Пример: категориальный PCA ........................................................798
20.2.8. Модели факторного анализа для парных данных ..............................799
20.2.8.1. PCA с учителем..................................................................................799
20.2.8.2. Метод частичных наименьших квадратов ...................................800
20.2.8.3. Канонический корреляционный анализ ......................................801
20.3. Автокодировщики ...........................................................................................802
20.3.1. Автокодировщики с сужением ..............................................................802
20.3.2. Шумоподавляющие автокодировщики ................................................804
20.3.3. Сжимающие автокодировщики.............................................................806
20.3.4. Разреженные автокодировщики ...........................................................806
20.3.5. Вариационные автокодировщики ........................................................808
20.3.5.1. Обучение VAE ....................................................................................809
20.3.5.2. Перепараметризация .......................................................................809
20.3.5.3. Сравнение VAE с автокодировщиками .........................................811
20.4. Обучение многообразий* ..............................................................................813
20.4.1. Что такое многообразие?........................................................................813
20.4.2. Гипотеза многообразия ..........................................................................814
20.4.3. Подходы к обучению многообразий .....................................................815
20.4.4. Многомерное шкалирование .................................................................816
20.4.4.1. Классическое ММШ ..........................................................................816
20.4.4.2. Метрическое ММШ ...........................................................................817
20.4.4.3. Неметрическое ММШ.......................................................................818
20.4.4.4. Отображение Саммона ....................................................................818
20.4.5. Isomap ........................................................................................................819
20.4.6. Ядерный PCA ............................................................................................820
20.4.7. Максимальное раскрытие дисперсии ...................................................822
20.4.8. Локально линейное погружение ...........................................................823
20.4.9. Лапласовы собственные отображения .................................................824
20.4.9.1. Использование собственных векторов лапласиана графа
для вычисления погружений .........................................................................824
20.4.9.2. Что такое лапласиан графа? ............................................................825
20.4.10. t-SNE ........................................................................................................827
20.4.10.1. Стохастическое погружение соседей...........................................827
20.4.10.2. Симметричное SNE ........................................................................829
20.4.10.3. SNE с t-распределением ................................................................829
20.4.10.4. Выбор линейного масштаба..........................................................830
20.4.10.5. Вычислительные проблемы ..........................................................831
20.4.10.6. UMAP ................................................................................................831
20.5. Погружения слов .............................................................................................832
20.5.1. Латентно-семантический анализ и индексирование ........................832

Tlgm: @it_boooks

Содержание  27

20.5.1.1. Латентно-семантическое индексирование ..................................832
20.5.1.2. Латентно-семантический анализ ..................................................833
20.5.1.3. Поточечная взаимная информация ..............................................834
20.5.2. Word2vec ....................................................................................................835
20.5.2.1. Модель Word2vec CBOW...................................................................835
20.5.2.2. Скипграммная модель Word2vec....................................................835
20.5.2.3. Отрицательная выборка ..................................................................836
20.5.3. GloVE ..........................................................................................................837
20.5.4. Аналогичные слова ..................................................................................838
20.5.5. Модель погружений слов RAND-WALK .................................................839
20.5.6. Контекстуальные погружения слов.......................................................840
20.6. Упражнения......................................................................................................840

Глава 21. Кластеризация ................................................................................843
21.1. Введение ...........................................................................................................843
21.1.1. Оценивание выхода методов кластеризации .....................................843
21.1.1.1. Чистота ...............................................................................................844
21.1.1.2. Индекс Рэнда.....................................................................................844
21.1.1.3. Взаимная информация ....................................................................845
21.2. Иерархическая агломеративная кластеризация ........................................846
21.2.1. Алгоритм ...................................................................................................847
21.2.1.1. Одиночная связь ...............................................................................848
21.2.1.2. Полная связь......................................................................................848
21.2.1.3. Средняя связь ....................................................................................849
21.2.2. Пример ......................................................................................................849
21.2.3. Расширения ..............................................................................................850
21.3. Кластеризация методом K средних ..............................................................851
21.3.1. Алгоритм ...................................................................................................851
21.3.2. Примеры....................................................................................................852
21.3.2.1. Кластеризация точек на плоскости ...............................................852
21.3.2.2. Кластеризация временных рядов экспрессии генов
дрожжей ............................................................................................................852
21.3.3. Векторное квантование ..........................................................................853
21.3.4. Алгоритм K-means++ ...............................................................................854
21.3.5. Алгоритм K медоидов .............................................................................855
21.3.6. Способы ускорения..................................................................................856
21.3.7. Выбор числа кластеров K ........................................................................857
21.3.7.1. Минимизация искажения................................................................857
21.3.7.2. Максимизация маргинального правдоподобия ..........................857
21.3.7.3. Силуэтный коэффициент ................................................................858
21.3.7.4. Инкрементное увеличение количества компонент смеси .........860
21.3.7.5. Методы разреженного оценивания ...............................................860
21.4. Кластеризация с помощью смесовых моделей ..........................................860
21.4.1. Смеси гауссовых распределений ...........................................................860
21.4.1.1. Метод K средних – частный случай EM-алгоритма.....................861
21.4.1.2. Неидентифицируемость и переключение метки ........................861
21.4.1.3. Байесовский выбор модели ............................................................864

Tlgm: @it_boooks

28  Содержание
21.4.2. Смеси распределений Бернулли............................................................865
21.5. Спектральная кластеризация* ......................................................................865
21.5.1. Нормализованные разрезы ....................................................................866
21.5.2. Собственные векторы лапласиана графа кодируют
кластеризацию .....................................................................................................866
21.5.3. Пример ......................................................................................................867
21.5.4. Связь с другими методами .....................................................................868
21.5.4.1. Связь с kPCA ......................................................................................868
21.5.4.2. Связь с анализом случайного блуждания .....................................868
21.6. Бикластеризация* ...........................................................................................869
21.6.1. Базовая бикластеризация .......................................................................869
21.6.2. Модели вложенного разбиения (Crosscat) ...........................................870

Глава 22. Рекомендательные системы ...................................................873
22.1. Явная обратная связь .....................................................................................873
22.1.1. Наборы данных ........................................................................................874
22.1.2. Коллаборативная фильтрация ...............................................................874
22.1.3. Матричная факторизация ......................................................................875
22.1.3.1. Вероятностная матричная факторизация ....................................876
22.1.3.2. Пример: Netflix .................................................................................876
22.1.3.3. Пример: MovieLens ...........................................................................877
22.1.4. Автокодировщики ...................................................................................878
22.2. Неявная обратная связь .................................................................................879
22.2.1. Байесовское персонализированное ранжирование ...........................880
22.2.2. Машины факторизации ..........................................................................881
22.2.3. Нейронная матричная факторизация ..................................................882
22.3. Использование побочной информации ......................................................882
22.4. Компромисс между исследованием и использованием ............................884

Глава 23. Погружения графов* ...................................................................885
23.1. Введение ...........................................................................................................885
23.2. Погружение графа как задача о кодировщике и декодере .......................887
23.3. Поверхностные погружения графов ............................................................889
23.3.1. Обучение погружений без учителя .......................................................889
23.3.2. На основе расстояния: евклидовы методы ..........................................890
23.3.3. На основе расстояния: неевклидовы методы......................................890
23.3.4. На основе внешнего произведения: методы матричной
факторизации.......................................................................................................891
23.3.5. На основе внешнего произведения: скипграммные методы ...........892
23.3.6. Обучение погружений с учителем ........................................................894
23.3.6.1. Распространение меток...................................................................894
23.4. Графовые нейронные сети.............................................................................895
23.4.1. Графовые нейронные сети передачи сообщений ...............................895
23.4.2. Спектральные свертки графов...............................................................897
23.4.3. Пространственные свертки графов ......................................................897
23.4.3.1. Выборочные пространственные методы ......................................898

Tlgm: @it_boooks

Содержание  29

23.4.3.2. Пространственные методы на основе механизма внимания ....898
23.4.3.3. Геометрические пространственные методы ................................899
23.4.4. Неевклидовы графовые свертки ...........................................................899
23.5. Глубокие погружения графов ........................................................................900
23.5.1. Обучение погружений без учителя. ......................................................900
23.5.1.1. Структурное погружение с помощью глубокой сети ..................900
23.5.1.2. Вариационные графовые автокодировщики ...............................901
23.5.1.3. Итеративное порождающее моделирование графов
(Graphite) ...........................................................................................................902
23.5.1.4. Методы на основе сопоставительных потерь ..............................902
23.5.2. Обучение погружений с частичным привлечением учителя ...........903
23.5.2.1. SemiEmb .............................................................................................903
23.5.2.2. Planetoid .............................................................................................903
23.6. Приложения .....................................................................................................904
23.6.1. Приложения без учителя ........................................................................904
23.6.1.1. Реконструкция графа .......................................................................904
23.6.1.2. Предсказание связей........................................................................905
23.6.1.3. Кластеризация ..................................................................................906
23.6.1.4. Визуализация ....................................................................................906
23.6.2. Приложения с учителем..........................................................................907
23.6.2.1. Классификация вершин ..................................................................907
23.6.2.2. Классификация графов ....................................................................907

Приложение А. Обозначения .......................................................................909
A.1. Введение ............................................................................................................909
A.2. Общепринятые математические символы ...................................................909
A.3. Функции .............................................................................................................910
A.3.1. Функции с одним аргументом ................................................................910
A.3.2. Функции двух аргументов .......................................................................910
A.3.3. Функции более двух аргументов.............................................................911
A.4. Линейная алгебра .............................................................................................911
A.4.1. Общие обозначения ..................................................................................911
A.4.2. Векторы.......................................................................................................911
A.4.3. Матрицы .....................................................................................................912
A.4.4. Матричное исчисление ............................................................................912
A.5. Оптимизация ....................................................................................................913
A.6. Вероятность .......................................................................................................913
A.7. Теория информации .........................................................................................914
A.8. Статистика и машинное обучение .................................................................915
A.8.1. Обучение с учителем ................................................................................915
A.8.2. Обучение без учителя и порождающие модели ...................................915
A.8.3. Байесовский вывод ...................................................................................916
A.9. Аббревиатуры....................................................................................................916

Предметный указатель ...................................................................................918

Tlgm: @it_boooks

От издательства
Отзывы и пожелания
Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете
об этой книге, – что понравилось или, может быть, не понравилось. Отзывы
важны для нас, чтобы выпускать книги, которые будут для вас максимально
полезны.
Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на
страницу книги и оставив комментарий в разделе «Отзывы и рецензии».
Также можно послать письмо главному редактору по адресу dmkpress@gmail.
com; при этом укажите название книги в теме письма.
Если вы являетесь экспертом в какой-либо области и заинтересованы в на‑
писании новой книги, заполните форму на нашем сайте по адресу http://
dmkpress.com/authors/publish_book/ или напишите в издательство по адресу
dmkpress@gmail.com.

Список опечаток
Хотя мы приняли все возможные меры для того, чтобы обеспечить высо‑
кое качество наших текстов, ошибки все равно случаются. Если вы найдете
ошибку в одной из наших книг, мы будем очень благодарны, если вы сооб‑
щите о ней главному редактору по адресу dmkpress@gmail.com. Сделав это,
вы избавите других читателей от недопонимания и поможете нам улучшить
последующие издания этой книги.

Нарушение авторских прав
Пиратство в интернете по-прежнему остается насущной проблемой. Издатель‑
ство «ДМК Пресс» очень серьезно относится к вопросам защиты авторских прав
и лицензирования. Если вы столкнетесь в интернете с незаконной публикацией
какой-либо из наших книг, пожалуйста, пришлите нам ссылку на интернет-ре‑
сурс, чтобы мы могли применить санкции.
Ссылку на подозрительные материалы можно прислать по адресу электронной почты dmkpress@gmail.com.
Мы высоко ценим любую помощь по защите наших авторов, благодаря
которой мы можем предоставлять вам качественные материалы.

Tlgm: @it_boooks

Предисловие
В 2012 году я опубликовал 1200-страничную книгу под названием «Machine
Learning: A Probabilistic Perspective», в которой сложившаяся на тот момент
дисциплина машинного обучения (МО) достаточно полно рассматривалась
сквозь объединяющую призму вероятностного моделирования. Книга была
хорошо принята и получила премию де Грута (https://bayesian.org/project/
degroot-prize/) в 2013 году.
2012-й такжепринято считать началом «революции глубокого обучения».
Термином «глубокое обучение» называют раздел МО, основанный на ней‑
ронных сетях с большим количеством слоев (отсюда и слово «глубокий»).
Хотя базовая технология к тому времени существовала уже много лет, имен‑
но в 2012 году в работе [KSH12] глубокие нейронные сети (ГНС) выиграли
конкурс по классификации изображений ImageNet с таким отрывом, что
это привлекло внимание профессионального сообщества. Примерно в то
же время был достигнут прогресс в таких трудных задачах, как распознава‑
ние речи (см., например, [Cir+10; Cir+11; Hin+12]). Эти прорывы стали воз‑
можными благодаря достижениям в развитии оборудования (в частности,
перепрофилированию быстрых графических процессоров, GPU, с видеоигр
на МО), технологиях сбора данных (в частности, применению краудсор‑
синговых инструментов типа «Механического турка» от Amazon для сбора
больших размеченных наборов данных, как в ImageNet), а также различным
новым алгоритмическим идеям; некоторые из них мы рассмотрим в этой
книге.
Начиная с 2012 года, область глубокого обучения развивалась лавинообразно, новые результаты появлялись со все возрастающей скоростью.
Столь же лавинообразно рос и интерес к этой области, подогреваемый ком‑
мерческим успехом технологии. Поэтому в 2018 году я решил написать вто‑
рое издание своей книги и попытаться подвести какой-то итог.
К марту 2020 года черновой вариант второго издания разросся до 1600 стра‑
ниц, а еще много тем оставались неосвещенными. В результате издательство
MIT Press порекомендовало мне разбить книгу на два тома. Но тут разразилась пандемия COVID-19. Я решил на время отвлечься от написания книги
и поучаствовать в разработке алгоритма оценки рисков для разрабатыва‑
емого Google приложения, уведомляющего о подверженности заражению
[MKS21], а также в других проектах, связанных с прогнозированием [Wah+21].
Однако к осени 2020 года я решил вернуться к работе над книгой.
Чтобы наверстать упущенное, я попросил нескольких коллег помочь мне
в написании различных разделов (см. благодарности ниже). В результате
появились две новые книги «Вероятностное машинное обучение: введение»,
которую вы сейчас читаете, и «Вероятностное машинное обучение: допол‑
нительные вопросы», которая является ее продолжением [Mur22]. Надеюсь,
что в совокупности они дают довольно полное представление о состоянии
дел в МО в 2021 году – сквозь ту же объединяющую призму вероятностного

Tlgm: @it_boooks

32  Предисловие
моделирования и байесовской теории принятия решений, которая исполь‑
зовалась в книге 2012 года.
Почти весь материал первого издания сохранен, но теперь он более-ме‑
нее равномерно распределен между двумя новыми книгами. Кроме того,
в каждую книгу включено много дополнительных тем из области глубокого
обучения и других разделов теории, например порождающие модели, вариационный вывод и обучение с подкреплением.
Чтобы сделать эту вводную книгу более замкнутой и полезной студентам,
я добавил ряд сведений по базовым дисциплинам, в частности оптимизации
и линейной алгебре, которых за скудостью места не было в издании 2012 года. Материал повышенной сложности, который можно опустить в курсе вво‑
дного уровня, помечен звездочкой * в названии раздела или главы. В конце
некоторых глав имеются упражнения. Решения упражнений, помеченных
звездочкой, могут быть предоставлены преподавателям при обращении
к издательству MIT Press; решения остальных упражнений можно найти
в сети. Дополнительные учебные материалы (например, рисунки и слайды)
см. на сайте книги probml.ai (https://probml.github.io/pml-book/).
Еще одно существенное изменение – использование Python вместо Matlab
во всех примерах программ. (В будущем мы, возможно, создадим версию кода
на Julia.) В новом коде используются такие стандартные Python-библиотеки,
как NumPy (https://numpy.org/), Scikit-learn (https://scikit-learn.org/stable/), JAX
(https://github.com/google/jax), PyTorch (https://pytorch.org/), TensorFlow (https://
www.tensorflow.org/), PyMC3 (https://docs.pymc.io/en/v3/) и др. О том, как ис‑
пользовать код, см. на странице по адресу https://probml.github.io/pml-book/.

Благодарности
Я выражаю благодарность следующим людям, помогавшим мне при напи‑
сании книги:
 Зико Колтеру (Zico Kolter), помогавшему писать части главы 7 («Ли‑
нейная алгебра»);
 Фредерику Кунстнеру (Frederik Kunstner), Си И Менгу (Si Yi Meng),
Аарону Мишкину (Aaron Mishkin), Шарану Васвани (Sharan Vaswani)
и Марку Шмидту (Mark Schmidt), помогавшим писать части главы 8
(«Оптимизация»);
 Матью Блонделю (Mathieu Blondel), помогавшему писать раздел 13.3
(«Обратное распространение»);
 Кшиштофу Хоромански (Krzysztof Choromanski), помогавшему писать
раздел 15.6 («Эффективные преобразователи»*);
 Колину Раффелю (Colin Raffel), помогавшему писать раздел 19.2 («Пе‑
ренос обучения») и раздел 19.3 («Обучение с частичным привлечением
учителя»);
 Брайану Пероцци (Bryan Perozzi), Сами Абу Эль Хайджа (Sami Abu-ElHaija) и Инес Чами (Ines Chami), помогавшим писать главу 23 («Погру‑
жения графов»*);
 Джону Фэнсу (John Fearns) и Питеру Черно (Peter Cerno) за вниматель‑
ную вычитку книги;

Tlgm: @it_boooks

Предисловие  33

 многочисленных членов сообщества github за поиск опечаток и других
ошибок (см. перечень таковых по адресу https://github.com/probml/pmlbook/issues?q=is:issue);
 четырем анонимным рецензентам, выбранным MIT Press;
 Махмуду Солиману (Mahmoud Soliman), который написал весь код, свя‑
зующий latex, colab, github и пр., и поведал мне о GCP и TPU;
 всей когорте студентов, работавших над кодом книги на Google Sum‑
mer of Code 2021 года; это Алейна Кара (Aleyna Kara), Срикар Джилугу
(Srikar Jilugu), Дришти Патель (Drishti Patel), Минь Лиан Анг (Ming Liang
Ang), Жерардо Дюран-Мартен (Gerardo Durán-Martín) (см. перечень их
трудов по адресу https://probml.github.io/pml-book/gsoc2021.html);
 многочисленным членам сообщества github за предложенный ими код
(см. https://github.com/probml/pyprobml#acknowledgements);
 авторам работ [Zha+20], [Gér17] и [Mar18], разрешившим мне использо‑
вать или модифицировать части открытого исходного кода, включен‑
ного в их замечательные книги;
 моему начальнику в Google, Дугу Эку (Doug Eck), который позволил мне
тратить принадлежащее компании время на написание этой книги;
 своей жене Маргарет, позволившей мне тратить принадлежащее семье
время на эту книгу.

Об обложке
На обложке изображена нейронная сеть (глава 13), которая используется для
отнесения рукописной цифры x к одному из десяти классов меток y Î {0, 1,
…, 9}. Гистограмма справа – вывод модели, соответствующий условному рас‑
пределению вероятности p(y|x).
Кэвин Патрик Мэрфи
Паль-Альто, Калифорния
август 2021

Глава

Tlgm: @it_boooks

1

Введение
1.1. Что такое машинное обуЧение?
Популярное определение машинного обучения, или МО, принадлежащее
Тому Митчеллу [Mit97], звучит следующим образом:
Говорят, что компьютерная программа обучается на опыте E относи‑
тельно некоторого класса задач T и меры качества P, если ее качество на
задачах, принадлежащих T, измеренное в соответствии с P, улучшается
с увеличением опыта E.
Таким образом, существует много видов машинного обучения, зависящих
от природы задачи T, решению которой мы хотим обучить систему, приро‑
ды меры качества P, используемой для оценки работы системы, и природы
обучающего сигнала, или опыта E, на котором обучается система.
В этой книге мы будем рассматривать наиболее распространенные типы
МО, но с вероятностной точки зрения. Грубо говоря, это означает, что
все неизвестные переменные (например, предсказания будущего значения
некоторой величины, скажем температуры на завтра или параметров не‑
которой модели) рассматриваются как случайные величины, имеющие
распределение вероятностей, которое описывает взвешенное множество
возможных значений переменной (см. краткое введение в основы теории
вероятностей в главе 2).
Есть две основные причины, чтобы отдать предпочтение вероятностно‑
му подходу. Во-первых, он оптимален для принятия решений в условиях
неопределенности, это будет объяснено в разделе 5.1. Во-вторых, вероят‑
ностное моделирование – язык, используемый в большинстве других обла‑
стей науки и техники, так что мы получаем единую систему понятий. Шакир
Мохамед (научный сотрудник компании DeepMind)1 говорил:
Почти все машинное обучение можно представить в вероятностных тер‑
минах, так что вероятностный подход является фундаментальным. Та‑
кое представление, конечно, не единственное. Но именно оно позволяет
1

Источник: слайд 2 на странице https://bit.ly/3pyHyPn.

Tlgm: @it_boooks

Обучение с учителем  35

связать машинное обучение с другими областями вычислительных наук,
будь то стохастическая оптимизация, теория управления, исследование
операций, эконометрика, теория информации, статистическая физика
или биостатистика. Уже по этой причине умение рассуждать в вероят‑
ностных терминах обязательно.

1.2. обуЧение с уЧителем
Самая распространенная форма МО – обучение с учителем. В этом случае
задача T заключается в том, чтобы обучиться отображению f множества вхо‑
дов x Î 𝒳 в множество выходов y Î 𝒴. Входы x называются также признаками,
ковариатами или предикторами; часто это числовой вектор фиксирован‑
ной размерности, например рост и вес человека или пиксели изображения.
В таком случае 𝒳 = ℝD, где D – размерность вектора (т. е. количество входных
признаков). Выход y называется также меткой, целью или откликом1. Опыт
E задается в виде множества N пар вход–выход 𝒟 = {(xn, yn)}Nn=1, которое на‑
зывает обучающим набором (а N – размером выборки). Мера качества P
зависит от типа предсказываемого выхода, мы обсудим это ниже.

1.2.1. Классификация
В задачах классификации пространство выходов C неупорядочено, а метки
называются классами, 𝒴 = {1, 2, …, C}. Проблема предсказания метки класса
заданного входа называется также распознаванием образов. (Если имеется
всего два класса, часто обозначаемых y Î {0, 1} или y Î {-1, +1}, то говорят
о бинарной классификации.)

1.2.1.1. Пример: классификация ирисов
В качестве примера рассмотрим проблему классификации ирисов с отнесе‑
нием к трем видам: щетинистый (Setosa), разноцветный (Versicolor) и вир‑
гинский (Virginica). На рис. 1.1 показано по одному примеру из каждого
класса.
В задаче классификации изображений пространством входов 𝒳 явля‑
ется множество изображений, имеющее очень высокую размерность: для
цветного изображения с C = 3 каналами (например, в формате RGB) и D1 ´ D2
пикселями имеем 𝒳 = ℝD, где D = C ´ D1 ´ D2. (На практике яркость пикселя
представлена целым числом, обычно в диапазоне {0, 1, …, 255}, но для про‑
стоты обозначений мы предполагаем, что входы – вещественные числа.)
Обучиться отображению f : 𝒳 ® 𝒴 изображений в метки очень трудно, как
легко видеть из рис. 1.2. Однако эту задачу все же можно решить с помощью
1

Иногда (например, в Python пакете statsmodels [https://www.statsmodels.org/devel/
endog_exog.html]) входы x называются экзогенными переменными, а выходы
y – эндогенными переменными.

Tlgm: @it_boooks

36  Введение
функций специального вида, например сверточной нейронной сети (СНС)
(convolutional neural network – CNN), которую мы будем обсуждать в разде‑
ле 14.1.

(a)

(b)

(c)

Рис. 1.1  Три типа ирисов: щетинистый (Setosa),
разноцветный (Versicolor) и виргинский (Virginica).
Печатается с разрешения Денниса Крэмба и компании SIGNA

Что видит компьютер

классификация изображения

82 % кошка
15 % собака
2 % шляпа
1 % кружка

Рис. 1.2  Иллюстрация к проблеме классификации изображений.
Взято с сайта https://cs231n.github.io/.
Печатается с разрешения Андрея Карпатого

К счастью для нас, ботаники уже выделили 4 простых, но весьма информа‑
тивных числовых признака – длину чашелистика, ширину чашелистика, длину
лепестка и ширину лепестка, – с помощью которых можно различить три вида
ирисов. В этом разделе мы для простоты будем использовать именно такое
пространство входов куда более низкой размерности: 𝒳 = ℝ4. Набор данных
Iris представляет собой совокупность 150 помеченных примеров ирисов, по
50 каждого вида, описываемых этими четырьмя признаками. Он широко ис‑

Tlgm: @it_boooks

Обучение с учителем  37

пользуется в качестве примера, потому что невелик и прост для понимания.
(Далее в книге нам встретятся наборы данных побольше и посложнее.)
Небольшие наборы признаков часто хранят в виде матрицы плана раз‑
мера N´D, в которой строки представляют примеры, в столбцы – признаки,
см. пример в табл. 1.11.
Таблица 1.1. Подмножество матрицы плана для ирисов.
Признаки: длина чашелистика (sl), ширина чашелистика (sw),
длина лепестка (pl), ширина лепестка (pw). В каждом классе по 50 примеров
Индекс
sl
0
5.1
1
4.9

50
7.0

149
5.9

sw
3.5
3.0

pl
1.4
1.4

0.2
0.2

Метка
Setosa
Setosa

3.2

4.7

1.4

Versicolor

3.0

5.1

1.8

Virginica

pw

Набор данных Iris – пример табличных данных. Если размер входных
данных переменный (например, последовательности слов или социальные
сети), в отличие от векторов фиксированной длины, то данные обычно хра‑
нятся в формате, отличном от матрицы плана. Однако такие данные ча‑
сто преобразуются в представление с признаками фиксированного размера
(этот процесс называется фичеризацией), т. е. неявно создается матрица
плана для последующей обработки. Пример такого рода мы приведем в раз‑
деле 1.5.4.1, когда будем обсуждать «представление» последовательностей
в виде «мешка слов».

1.2.1.2. Разведочный анализ данных
Прежде чем применять к какой-то задаче МО, полезно провести разведочный анализ данных и выяснить, есть ли очевидные закономерности (их
наличие может подсказать, какой метод выбрать) или очевидные проблемы
(например, зашумленные метки или выбросы).
Для табличных данных с небольшим числом признаков часто строят график парных отношений, на котором панель (i, j) содержит диаграмму рассе‑
яния величин i и j, а диагональные элементы (i, i) показывают маргинальную
плотность величины i; дополнительно все графики могут быть окрашены
цветом, кодирующим метку классу, см. пример на рис. 1.3.
Для данных более высокой размерности зачастую сначала выполняют понижение размерности, а затем визуализируют данные в двух или трех из‑
мерениях. Методы понижения размерности мы будем обсуждать в главе 20.
1

В этой конкретной матрице плана N = 150 строк и D = 4 столбцов, т. е. она высокая
и узкая, поскольку N >> D. Встречаются также наборы данных (например, в геноми‑
ке), в которых признаков больше, чем примеров, т. е. D >> N; для них матрица плана
низкая и широкая. Термин «большие данные» обычно означает, что N велико,
а термин «широкие данные» – что D велико (по сравнению с N).

Tlgm: @it_boooks

ширина
лепестка (см)

длина
лепестка (см)

38  Введение

ширина
длина чашелистика (см)
чашелистика (см)

метка
setosa
versicolor
virginica

длина
лепестка (см)

ширина
лепестка (см)

длина
чашелистика (см)

ширина
чашелистика (см)

Рис. 1.3  Визуализация набора данных Iris в виде попарной диаграммы рассеяния. На главной диагонали приведены графики маргинального распределения1 каждого признака для каждого класса. Элементы вне диагонали содержат
диаграммы рассеяния всех возможных пар признаков. Построено программой
по адресу figures.probml.ai/book1/1.3

1.2.1.3. Обучение классификатора
Из рис. 1.3 видно, что класс Setosa довольно легко отличить от двух осталь‑
ных. Например, можно создать такое решающее правило:
(1.1)
Это очень простой пример классификатора; мы разбили пространство
входов на две области, разделенные одномерной решающей границей
xдлина лепестка = 2.45. Точки слева от этой границы классифицируются как Se‑
tosa, а точки справа – как Versicolor или Virginica.
1

Ранее в русскоязычной литературе термин marginal distribution переводился как
«частное распределение», сейчас более употребителен перевод «маргинальное
распределение». – Прим. перев.

Tlgm: @it_boooks

Обучение с учителем  39

Мы видим, что это правило абсолютно точно классифицирует примеры
Setosa, но не примеры Virginica и Versicolor. Для улучшения качества мы
можем рекурсивно разбить те области пространства, в которых классифи‑
катор допускает ошибки. Например, можно добавить еще одно решающее
правило, применяемое к входным данным, которые не прошли первого теста, и проверить, меньше ли ширина лепестка, чем 1.75 см (в таком случае
мы предсказываем класс Versicolor), или больше (и тогда мы предсказываем
Virginica). Эти вложенные правила можно организовать в виде древовидной
структуры, называемой решающим деревом, как показано на рис. 1.4a.
Это дерево индуцирует двумерную решающую поверхность, показанную
на рис. 1.4b.

True

False

примеров = 50
значение = [50, 0, 0]
класс = setosa

ширина лепестка (см) 0).
Построено программой по адресу figures.probml.ai/book1/2.10

Подставляя определение сигмоидной функции в формулу (2.78), получаем:
(2.81)
(2.82)

Tlgm: @it_boooks

92  Вероятность: одномерные модели
Величина a равна логарифму отношения шансов,

где p =

p(y = 1|x; θ). Чтобы убедиться в этом, заметим, что
(2.83)
Логистическая, или сигмоидная, функция переводит логарифм отно‑
шения шансов a в p:
(2.84)
Обратная к ней функция называется logit и переводит p в логарифм от‑
ношения шансов a:
(2.85)
Полезные свойства этих функций приведены в табл. 2.3.

2.4.3. Бинарная логистическая регрессия
В этом разделе мы используем условную модель Бернулли с линейным пре‑
диктором вида f(x; θ) = w⟙x, т. е. модель описывается формулой:
p(y|x, θ) = Ber(y|σ(w⟙x + b)).

(2.86)

Иными словами,
(2.87)
Это называется логистической регрессией.
Например, рассмотрим одномерную версию набора данных Iris с двумя
классами, в которой положительным является класс «виргинский», а отри‑
цательным – класс «не виргинский». В качестве признака x будем использо‑
вать ширину лепестка. Мы аппроксимировали этот набор данных моделью
логистической регрессии и показали результаты на рис. 2.11. Решающая
граница соответствует значению x* такому, что p(y = 1|x = x*; θ) = 0.5. Мы
видим, что в этом примере x* ≈ 1.7. Когда x удаляется от этой границы, клас‑
сификатор начинает более уверенно предсказывать метку класса.
Из этого примера должно быть ясно, почему линейная регрессия не годит‑
ся для задач бинарной классификации. В такой модели вероятности стано‑
вились бы больше 1, когда мы уходим достаточно далеко вправо, и меньше
0, когда мы уходим достаточно далеко влево.
Более подробное обсуждение логистической регрессии см. в главе 10.

Tlgm: @it_boooks

Вероятность

Категориальное и мультиномиальное распределение  93

Ирис виргинский
Не ирис виргинский
Решающая граница
Ширина лепестка (см)

Рис. 2.11  Логистическая регрессия применительно к одномерной версии
набора данных Iris с двумя классами. Построено программой по адресу figures.
probml.ai/book1/2.11. За основу взят рис. 4.23 из работы [Gér19]

2.5. категориальное и мультиномиальное
распределение
Чтобы представить распределение конечного множества меток, y Î {1, …,C},
мы можем воспользоваться категориальным распределением, обобщаю‑
щим распределение Бернулли на C > 2 значений.

2.5.1. Определение
Категориальным распределением называется дискретное распределение ве‑
роятностей, в котором каждому классу соответствует один параметр:
(2.88)
Иными словами, p(y = c|θ) = θc. Отметим, что параметры ограничены:
0 £ θc £ 1 и åCc=1 θc = 1, т. е. всего имеется C - 1 независимых параметров.
Мы можем записать категориальное распределение по-другому, преобра‑
зовав дискретную величину y в унитарный вектор с C элементами, которые
все равны 0, кроме элемента, соответствующего метке класса. (Английский
термин «one-hot», который переводится на русский как «унитарный», берет
начало в электротехнике, где бинарные векторы кодируются электрическими
токами на множестве проводов, которые могут быть активными («горячими»,
англ. hot) или неактивными («холодными», англ. cold).) Например, если C = 3,
то классы 1, 2, 3 кодируются как (1, 0, 0), (0, 1, 0) и (0, 0, 1). Вообще, можно
закодировать классы с помощью единичных векторов ec, все элементы ко‑
торых равны 0, за исключением того, что соответствует измерению c. (Такая
кодировка называется еще индикаторной.) Применив унитарную кодиров‑
ку, мы можем записать категориальное распределение следующим образом:
(2.89)

Tlgm: @it_boooks

94  Вероятность: одномерные модели
Категориальное распределение является частным случаем мультиномиального распределения. Предположим, что наблюдаем исходы N категори‑
альных испытаний, yn ~ Cat(·|θ), n = 1, …, N. Для определенности пусть это
будет бросание C-гранной кости N раз. Обозначим s вектор, содержащий
счетчики выпадения каждой грани, т. е. sc åNn=1 𝕀(yn = c). (Эквивалентно, если
воспользоваться унитарным кодированием, то s = ån yn.) Распределение s
называется мультиномиальным и описывается следующей формулой:
(2.90)
где θc – вероятность выпадения грани c, а
(2.91)
– мультиномиальный коэффициент, равный числу способов разбить мно‑
жество размера N = åCc=1sc на подмножества размеров от s1 до sC. При N = 1
мультиномиальное распределение совпадает с категориальным.

2.5.2. Функция softmax
В условном случае можно определить
p(y|x, θ) = Cat(y|f(x, θ)),

(2.92)

что можно записать также в виде:
p(y|x, θ) = Mu(y|1, f(x, θ)).

(2.93)

Мы требуем, чтобы 0 £ fc(x; θ) £ 1 и åCc=1fc(x; θ) = 1.
Обычно мы не хотим требовать, чтобы f прямо представляла вектор ве‑
роятности, поэтому передаем результаты f функции softmax [Bri90], назы‑
ваемой также мультиномиальной logit. Определяется она следующим об‑
разом:
(2.94)
Эта функция отображает ℝC в [0, 1]C и удовлетворяет ограничениям 0 £
𝒮(a)c £ 1 и åCc=1𝒮(a)c = 1. Входы функции softmax, a = f(x; θ), называются
логитами и являются обобщениями логарифмического отношения шансов.
Название softmax связано с тем, что эта функция немного напоминает
функцию argmax. Чтобы убедиться в этом, разделим каждый элемент ac на
постоянную T, называемую температурой1. Тогда при T ® 0 имеем
1

Эта терминология пришла из статистической физики. Распределение Больцмана,

Tlgm: @it_boooks

Категориальное и мультиномиальное распределение  95

(2.95)
Иначе говоря, при низких температурах масса вероятности сосредоточена
главным образом в самом вероятном состоянии (т. е. победитель забирает
все), тогда как при высоких температурах масса распределена равномерно
(см. рис. 2.12).

Рис. 2.12  Распределение softmax S(a/T), где a = (3, 0, 1) при температурах T = 100, T = 2 и T = 1. Когда температура высокая (слева), распределение равномерное, а когда низкая (справа), в нем имеются пики,
и большая часть массы сосредоточена в наибольшем элементе. Построено программой по адресу figures.probml.ai/book1/2.12

2.5.3. Многоклассовая логистическая регрессия
Если использовать линейный предиктор вида f(x; θ) = Wx + b, где W – матри‑
ца размера C´D, в b – C-мерный вектор смещения, то окончательная модель
принимает вид:
p(y|x; θ) = Cat(y|𝒮(Wx + b)).

(2.96)

Пусть a = Wx + b - C-мерный вектор логитов. Тогда формулу выше можно
переписать следующим образом:
(2.97)
Эта формула называется мультиномиальной логистической регрессией.
Если классов всего два, то она сводится к бинарной логистической регрес‑
сии. Чтобы убедиться в этом, заметим, что
(2.98)

определенное для состояний, имеет такую же форму, как функция softmax.

Tlgm: @it_boooks

96  Вероятность: одномерные модели

Ширина лепестка

так что мы можем просто обучить модель предсказывать, что a = a1 - a0. Это
можно сделать с помощью всего одного вектора весов w; а в многоклассовой
постановке будет два вектора весов, w0 и w1. Такая модель перепараметризована, что может негативно сказаться на интерпретируемости, но пред‑
сказания будут одинаковы.
Мы обсудим этот вопрос подробнее в разделе 10.3, а пока просто при‑
ведем пример. На рис. 2.13 показано, что происходит при аппроксимации
этой моделью набора данных об ирисах с тремя классами при использовании
всего двух признаков. Мы видим, что решающие границы между классами
линейны. Можно создать и нелинейные границы, преобразовав признаки
(например, с помощью полиномов), мы поговорим об этом в разделе 10.3.1.

Длина лепестка

Рис. 2.13. Логистическая регрессия для версии набора
данных Iris с двумя признаками и тремя классами. На основе рис. 4.25 из работы [Gér19]. Построено программой
по адресу figures.probml.ai/book1/2.13

2.5.4. Логарифмирование, суммирование,
потенцирование
В этом разделе мы обсудим одну важную практическую деталь, на которую
нужно обращать внимание при работе с распределением softmax. Пусть тре‑
буется вычислить нормированную вероятность pc = p(y = c|x) по формуле
(2.99)
где a = f(x; θ) – логиты. При вычислении функции разбиения (partition
function)1 Z мы можем столкнуться с численными проблемами. Например,
пусть имеется 3 класса с логитами a = (0, 1, 0). Тогда мы находим Z = e0 +
e1 + e0 = 4.71. А теперь предположим, что a = (1000, 1001, 1000); тогда Z = ¥,
потому что даже на компьютере с точностью 64 бита np.exp(1000)=inf. Точно
так же предположим, что a = (-1000, -999, -1000); тогда Z = 0, потому что
1

В статистической механике аналогичная величина называется статистической
суммой. – Прим. перев.

Tlgm: @it_boooks

Одномерное гауссово (нормальное) распределение  97

np.exp(-1000)=0. Чтобы избежать численных трудностей, мы воспользуемся
следующим тождеством:
(2.100)
справедливым для любого m. Обычно полагают m = maxc ac, чтобы наиболь‑
ший показатель степени был равен нулю. Так мы точно избежим переполне‑
ния и даже в случае потери значимости ответ будет разумным. Этот прием
называется трюком log-sum-exp (логарифмирование, суммирование, по‑
тенцирование). Мы воспользуемся им при реализации функции lse:
(2.101)
Описанный прием можно применить для вычисления вероятностей по
логитам:
p(y = c|x) = exp(ac - lse(a)).

(2.102)

Затем результат можно передать функции потерь перекрестной энтропии,
определенной формулой (5.41).
Но чтобы уменьшить объем вычислений и гарантировать численную
устойчивость, потерю перекрестной энтропии часто модифицируют, так что
она принимает на входе логиты, а не вектор вероятностей p. Рассмотрим,
к примеру, бинарный случай. Потеря перекрестной энтропии для одного
примера равна
ℒ = -[𝕀(y = 0)log p0 + 𝕀(y = 1)log p1],

(2.103)

где

(2.104)
log p0 = 0 - lse([0; +a]).

(2.105)

2.6. одномерное гауссоВо (нормальное)
распределение
Из всех распределений вещественной случайной величины y Î ℝ самым из‑
вестным и широко используемым является нормальное распределение,
которое часто называют также гауссовым (о происхождении этих названий
см. раздел 2.6.4).

Tlgm: @it_boooks

98  Вероятность: одномерные модели

2.6.1. Функция распределения
Определим функцию распределения (англ. cdf) непрерывной случайной
величины Y следующим образом:
(2.106)
(Обратите внимание на прописную букву P, так обозначается функция рас‑
пределения). С ее помощью мы можем вычислить вероятность попадания
в любой интервал:
Pr(a < Y £ b) = P(b) - P(a).

(2.107)

Любая функция распределения является монотонно неубывающей.
Функция гауссова распределения имеет вид
(2.108)
где z = (y - μ)/σ, а функция ошибок erf(u) определена следующим образом:
(2.109)
Эта функция включена в большинство программных пакетов. Ее график
приведен на рис. 2.2a.
Параметр μ равен среднему значению распределения и совпадает с модой,
потому что распределение унимодальное. Параметр σ2 равен дисперсии.
(Иногда встречается термин точность гауссова распределения, это величина,
обратная дисперсии: λ = 1/σ2.) Если μ = 0 и σ = 1, то говорят о стандартном
нормальном распределении.
Если P – функция распределения Y, то P-1(q) – это такое значение yq, что
p(Y £ yq) = q; оно называется q-м квантилем P. Значение P-1(0.5) называется
медианой распределения, половина массы вероятности находится слева от
нее, а половина – справа. Значения P-1(0.25) и P-1(0.75) называются нижним
и верхним квартилями.
Например, пусть Φ – функция гауссова распределения 𝒩(0, 1) и Φ-1 – об‑
ратная функция распределения, называемая также пробит-функцией. Тогда
точки слева от Φ-1(α/2) содержат массу вероятности α/2, как показано на
рис. 2.2b. В силу симметрии точки справа от Φ-1(1 - α/2) также содержат мас‑
су вероятности α/2. Поэтому центральный интервал (Φ-1(α/2), Φ-1(1 - α/2))
содержит массу 1 - α. Если положить α = 0.05, то 95 % массы будет сосредо‑
точено в центральном интервале:
(Φ-1(0.025), Φ-1(0.975)) = (-1.96, 1.96).

(2.110)

Для распределения 𝒩(μ, σ2) 95%-ный интервал принимает вид (μ - 1.96σ,
μ + 1.96σ). Часто его аппроксимируют и записывают в виде μ ± 2σ.

Tlgm: @it_boooks

Одномерное гауссово (нормальное) распределение  99

2.6.2. Функция плотности вероятности
Функция плотности вероятности (ФПВ, англ. pdf) определяется как про‑
изводная функции распределения:
(2.111)
ФПВ гауссова распределения имеет вид
(2.112)
– нормировочная постоянная, необходимая, для того чтобы полная
где
плотность была равна 1 (см. упражнение 2.12). График этой функции показан
на рис. 2.2b.
Зная ФПВ, мы можем вычислить вероятность нахождения непрерывной
случайной величины в конечном интервале:
(2.113)
Устремляя длину интервала к нулю, можно написать:
Pr(y £ Y £ y + dy) » p(y)dy.

(2.114)

Интуитивно это означает, что вероятность попадания Y в малую окрест‑
ность y равна произведению плотности в точке y на длину интервала. Из это‑
го результата вытекает важное следствие: ФПВ в точке может быть больше 1.
Например, 𝒩(0|0, 0.1) = 3.99.
ФПВ можно использовать для вычисления среднего, или математического, ожидания распределения:
(2.115)
Для гауссова распределения имеем хорошо знакомый результат:
𝔼[𝒩(·|μ, σ2)] = μ.

(Отметим, однако, что для некоторых распределений этот интеграл расхо‑
дится, а значит, среднее не определено.)
ФПВ может также использовать для вычисления дисперсии распреде‑
ления. Это мера разброса, которая часто обозначается σ2 и определяется
следующим образом:
(2.116)
(2.117)

Tlgm: @it_boooks

100  Вероятность: одномерные модели
откуда вытекает полезный результат:
𝔼[Y 2] = σ2 + μ2.

(2.118)

Стандартное отклонение по определению равно:
(2.119)
(Стандартное отклонение проще интерпретировать, чем дисперсию, потому
что оно измеряется в тех же единицах, что сама Y.) Для гауссова распределе‑
ния имеет место знакомый результат: std[𝒩(·|μ, σ2)] = σ.

2.6.3. Регрессия
До сих пор мы рассматривали безусловное гауссово распределение. Но в не‑
которых случаях полезно сделать параметры гауссианы функциями входных
величин, т. е. создать модель условной плотности вида
p(y|x; θ) = 𝒩(y|fμ(x; θ); fσ(x; θ)2),

(2.120)

p(y|x; θ) = 𝒩(y|w⟙x + b; σ2),

(2.121)

где fμ(x; θ) Î ℝ предсказывает среднее, а fσ(x; θ) Î ℝ+ предсказывает диспер‑
сию.
Обычно предполагают, что дисперсия фиксирована и не зависит от вход‑
ных данных. Такая модель называется гомоскедастической регрессией.
Также часто предполагают, что среднее линейно зависит от входных дан‑
ных – такая модель называется линейной регрессией.

где θ = (w, b, σ2). На рис. 2.14a эта модель показана в одномерном случае,
а в разделе 11.2 описана более подробно.

(a)

(b)

Рис. 2.14  Линейная регрессия с использованием гауссова распределения со
средним μ(x) = b + wx и (a) фиксированной дисперсией σ2 (гомоскедастическое)
и (b) дисперсией, зависящей от входных данных σ(x)2 (гетероскедастическое).
Построено программой по адресу figures.probml.ai/book1/2.14

Но дисперсия может и зависеть от входных данных, такая модель назы‑
вается гетероскедастической регрессией. В линейной постановке имеем

Tlgm: @it_boooks

Одномерное гауссово (нормальное) распределение  101

p(y|x; θ) = 𝒩(y|wμ⟙x + b; σ+(wσ⟙x)),

(2.122)

σ+(a) = log(1 + ea)

(2.123)

где θ = (wμ, wσ) – два вида весов регрессии, а

– функция softplus, которая отображает ℝ в ℝ+, чтобы стандартное откло‑
нение было гарантированно неотрицательным. В одномерном случае эта
модель показана на рис. 2.14b.
Отметим, что на рис. 2.14 показан 95%-ный прогностический интервал,
[μ(x) - 2σ(x); μ(x) + 2σ(x)]. Это неопределенность предсказанного наблюдения
y при данном x, она улавливает изменчивость синих точек. С другой сторо‑
ны, неопределенность истинной (незашумленной) функции представлена
не содержащей члена σ; теперь неопределенность
величиной
сосредоточена в параметрах θ, а не в выходе y. О моделировании неопреде‑
ленности параметров см. раздел 11.7.

2.6.4. Почему гауссово распределение так широко
используется?
Гауссово распределение используется чаще любого другого в статистике
и машинном обучении. Тому есть несколько причин. Во-первых, у него два
параметра, которые легко интерпретировать и которые отражают важней‑
шие свойства распределения: среднее и дисперсию. Во-вторых, согласно
центральной предельной теореме (раздел 2.8.6), сумма независимых слу‑
чайных величин имеет приближенно гауссово распределение, что делает
его удобным средством для моделирования невязок или «шума». В-третьих,
гауссово распределение делает наименьшее число допущений (имеет мак‑
симальную энтропию) среди всех распределений с заданным средним и дис‑
персией, как будет показано в разделе 3.4.4, поэтому во многих случаях оно
является хорошим выбором по умолчанию. Наконец, у него простая мате‑
матическая форма, что ведет к простым в реализации, но при этом весьма
эффективным методам, в чем мы убедимся в разделе 3.2.
Стоит заметить, что исторически термин «гауссово распределение» нето‑
чен, поскольку, как пишет Джейнс [Jay03, стр. 241], «фундаментальная при‑
рода этого распределения и его основные свойства были отмечены Лапла‑
сом, когда Гауссу было всего шесть лет, а само распределение было известно
Муавру еще до рождения Лапласа». Однако именно Гаусс популяризировал
использование этого распределения в 1800-е годы, поэтому термин «гауссо‑
во» широко применяется в науке и технике.
Название «нормальное распределение», похоже, возникло в связи с нор‑
мальными уравнениями линейной регрессии (см. раздел 11.2.2.2). Однако мы
предпочитаем не использовать слово «нормальное», потому что оно пред‑
полагает, что другие распределения «аномальны», тогда как, по замечанию
Джейнса [Jay03], именно гауссово распределение аномально в том смысле,
что обладает многими специальными свойствами, нетипичными для рас‑
пределений общего вида.

Tlgm: @it_boooks

102  Вероятность: одномерные модели

2.6.5. Дельта-функция Дирака как предельный
случай
Когда дисперсия гауссова распределения стремится к 0, распределение ста‑
новится бесконечно узким и бесконечно высоким с «пиком» в среднем зна‑
чении. Это можно записать следующим образом:
(2.124)
где δ – дельта-функция Дирака:
(2.125)
где
(2.126)
Это определение можно немного модифицировать:
(2.127)
Отметим, что
δy(x) = δ(x - y).

(2.128)

Дельта-функция обладает следующим фильтрующим свойством, кото‑
рое пригодится нам ниже:
(2.129)

2.7. другие Часто ВстреЧающиеся одномерные
распределения*
В этом разделе мы кратко упомянем некоторые другие одномерные распре‑
деления, встречающиеся в этой книге.

2.7.1. Распределение Стьюдента
Гауссово распределение очень чувствительно к выбросам. Робастной аль‑
тернативой гауссову распределению является t-распределение Стьюдента,

Tlgm: @it_boooks

Другие часто встречающиеся одномерные распределения  103

которое мы для краткости будем называть просто распределением Стьюдента1. Его ФПВ имеет вид
(2.130)
где μ – среднее, σ > 0 – параметр масштаба (не стандартное отклонение),
а υ > 0 называется числом степеней свободы (хотя правильнее было бы го‑
ворить о степени нормальности [Kru13], поскольку при больших значениях
υ распределение становится похожим на гауссово).
Мы видим, что плотность вероятности полиномиально, а не экспоненци‑
ально зависит от квадрата расстояния от центра, поэтому в хвостах сосредо‑
точено больше массы вероятности, чем в случае гауссова распределения (см.
рис. 2.15). Говорят, что у распределения Стьюдента тяжелые хвосты, из-за
чего оно более робастно к выбросам.

(a)

(b)

Рис. 2.15  (a) ФПВ для 𝒩(0, 1), 𝒯(μ = 0, σ = 1, υ = 1), 𝒯(μ = 0, σ = 1, υ = 2)
и Lap(0, 1/ 2). Для распределений Гаусса и Лапласа среднее равно 0, а дисперсия равна 1. При υ = 1 распределение Стьюдента совпадает с распределением
Коши, для которого среднее и дисперсия не определены. (b) Логарифмы этих
ФПВ. Отметим, что распределение Стьюдента не является логарифмически выпуклой функцией при любом значении параметра, в отличие от распределения
Лапласа. Тем не менее оба они унимодальны. Построено программой по адресу
figures.probml.ai/book1/2.15

Для иллюстрации робастности распределения Стьюдента рассмотрим
рис. 2.16. Слева показано, как распределения Гаусса и Стьюдента аппрокси‑
мируют данные без выбросов. Справа же мы добавили несколько выбросов.
Мы видим, что на гауссово распределение это оказало сильное влияние,
а распределение Стьюдента почти не изменилось. Как воспользоваться рас‑
1

У этого названия колоритная этимология. Впервые его опубликовал в 1908 году
Уильям Сили Госсет, который работал на пивоварне Гиннесса в Дублине, Ирландия.
Поскольку работодатель не разрешил ему публиковаться под собственным име‑
нем, Госсет назвал его распределением «Стьюдента». Буква t, вероятно, появилась
в контексте таблиц распределения Стьюдента, которые Фишер использовал при
разработке основ классического статистического вывода. Дополнительные исто‑
рические детали см. в статье http://jeff560.tripod.com/s.html.

Tlgm: @it_boooks

104  Вероятность: одномерные модели
пределением Стьюдента для робастной линейной регрессии, мы обсудим
в разделе 11.6.2.

(a)

(b)

Рис. 2.16  Влияние выбросов на аппроксимацию распределениями Гаусса,
Стьюдента и Лапласа. (a) Без выбросов (кривые распределений Гаусса и Стьюдента совпадают). (b) С выбросами. Как видим, распределение Гаусса в большей
степени подвержено влиянию выбросов, чем распределения Стьюдента и Лапласа. На основе рис. 2.16 из работы [Bis06]. Построено программой по адресу
figures.probml.ai/book1/2.16

На будущее отметим, что распределение Стьюдента обладает следующими
свойствами:
среднее = μ, мода = μ, дисперсия =

(2.131)

Среднее определено, только если υ > 1. Дисперсия определена, если υ > 2.
При υ ≫ 5 распределение Стьюдента быстро приближается к гауссову и те‑
ряет свойства робастности. Чаще всего берут υ = 4, поскольку это значение
дает хорошее качество для широкого круга задач [LLT89].

2.7.2. Распределение Коши
При υ = 1 распределение Стьюдента называется распределением Коши или
Лоренца. Его ФПВ имеет вид:
(2.132)
Это распределение обладает очень тяжелыми хвостами по сравнению
с гауссовым. Например, для стандартного нормального распределения 95 %
массы вероятности сосредоточено в интервале между -1.96 и 1.96, а для
стандартного распределения Коши – в интервале между -12.7 и 12.7. При‑
чина такой тяжести хвостов заключается в том, что интеграл, определяющий
среднее, расходится. Половинное распределение Коши – это вариант рас‑
пределения Коши (с μ = 0), «сложенный вдвое», так что вся плотность вероят‑

Tlgm: @it_boooks

Другие часто встречающиеся одномерные распределения  105

ности приходится на положительные вещественные числа. Поэтому функция
плотности вероятности имеет вид:
(2.133)
Это полезно в байесовском моделировании, где мы хотим иметь распре‑
деление положительных вещественных чисел с тяжелыми хвостами, но с ко‑
нечной плотностью в начале координат.

2.7.3. Распределение Лапласа
Еще одним распределением с тяжелыми хвостами является распределение
Лапласа1, известное также под названием двойного экспоненциального
распределения. Его ФПВ имеет вид:
(2.134)
График этой функции показан на рис. 2.15. Здесь μ – параметр сдвига,
а b > 0 – параметр масштаба. Это распределение обладает следующими свой‑
ствами:
среднее = μ, мода = μ, дисперсия = 2b2.

(2.135)

В разделе 11.6.1 мы обсудим, как использовать распределение Лапласа для
робастной линейной регрессии, а в разделе 11.4 – для разреженной линейной
регрессии.

2.7.4. Бета-распределение
Бета-распределение определено на интервале [0, 1] следующим образом:
(2.136)
Здесь B(a, b) – бета-функция:
(2.137)
где Γ(a) – гамма-функция:
1

Пьер-Симон Лаплас (1749–1827) – французский математик, сыгравший важную
роль в создании байесовской статистики как научной дисциплины.

Tlgm: @it_boooks

106  Вероятность: одномерные модели
(2.138)
Графики нескольких бета-распределений показаны на рис. 2.17a.
Бета-распределения

Гамма-распределения

(а)

(b)

Рис. 2.17  (a) Бета-распределения. Если a < 1, то имеет место пик слева,
а если b < 1, то пик справа; при a = b = 1 распределение равномерное. Если
a > 1 и b > 1, то распределение унимодальное. Построено программой по адресу
figures.probml.ai/book1/2.17. (b) Гамма-распределения. Если a £ 1, то мода находится в точке 0, в противном случае вдали от 0. Увеличение коэффициента
b приводит к уменьшению горизонтального масштаба, т. е. график сжимается
влево и вверх. Построено программой по адресу figures.probml.ai/book1/2.17

Мы требуем выполнения условий a, b > 0, чтобы распределение было
интегрируемым (это необходимое условие существования B(a, b)). Если a =
b = 1, то получается равномерное распределение. Если a и b меньше 1, то
получается бимодальное распределение с пиками в точках 0 и 1; если a и b
больше 1, то распределение унимодальное.
Для справки отметим, что распределение обладает следующими свойства‑
ми (упражнение 2.8):
(2.139)

2.7.5. Гамма-распределение
Гамма-распределение определено для положительных вещественных слу‑
чайных величин, x > 0. У него имеется два параметра: форма (shape) a > 0
и коэффициент (rate) b > 0:
(2.140)
Иногда это распределение параметризуется формой a и масштабом (scale)
s = 1/b:

Tlgm: @it_boooks

Другие часто встречающиеся одномерные распределения  107

(2.141)
На рис. 2.17b приведены графики нескольких ФПВ гамма-распределения.
Для справки отметим, что распределение обладает следующими свойства‑
ми:
(2.142)
Ниже обсуждается несколько частных случаев гамма-распределения.
 Экспоненциальное распределение. Определено следующим образом:
(2.143)
Это распределение описывает промежутки времени между событиями
в пуассоновском процессе, т. е. процессе, в котором события возникают
непрерывно и независимо с постоянной средней скоростью λ.
 Распределение хи-квадрат. Определено следующим образом:
(2.144)
где υ называется числом степеней свободы. Это распределение суммы
квадратов гауссовых случайных величин. Точнее, если Zi ~ 𝒩(0, 1) и S =
åυi=1Z i2, то S ~ χυ2.
 Обратное гамма-распределение определено следующим образом:
(2.145)
Оно обладает следующими свойствами:
(2.146)
Среднее существует, только если a > 1. Дисперсия существует, толь‑
ко если a > 2. Примечание: если X ~ Ga(shape = a, rate = b), то 1/X ~
IG(shape = a, scale = b). (Отметим, что в этом случае b играет две разные
роли.)

2.7.6.Эмпирическое распределение
Пусть имеется выборка 𝒟 = {x(1), …, x(N)} объема N из распределения p(X), где
X Î ℝ. Мы можем аппроксимировать ФПВ множеством дельта-функций (раз‑
дел 2.6.5) с «пиками» в точках из этой выборки:

Tlgm: @it_boooks

108  Вероятность: одномерные модели
(2.147)
Это называется эмпирическим распределением набора данных 𝒟. При‑
мер для N = 5 показан на рис. 2.18a.
Соответствующая функция распределения имеет вид
(2.148)
где uy(x) – ступенчатая функция:
(2.149)
Это можно визуализировать в виде «лестницы», как показано на рис. 2.18b,
где в каждом примере имеет место ступенька высоты 1/N.
(a)

(b)
1.0

1.0

0.8

0.8

0.6

0.6

p̂N (x)

F̂N (x)
0.4

0.4

0.2

0.2

0.0

0.0
х(1) х(2)

х(3) х(4)

x

х(5)

х(1) х(2)

х(3) х(4)

х(5)

x

Рис. 2.18  (a) ФПВ эмпирического распределения и (b) функция эмпирического распределения для выборки объемом N = 5. Взято из https://bit.ly/3hFgi0e.
Печатается с разрешения Мауро Эскудеро

2.8. преобразоВания слуЧайных ВелиЧин*
Пусть x ~ p() – случайная величина, а y = f(x) – ее детерминированное пре‑
образование. В этом разделе мы обсудим, как вычислить p(y).

Tlgm: @it_boooks

Преобразования случайных величин  109

2.8.1. Дискретный случай
Если X – дискретная случайная величина, то мы можем вывести ФПВ Y, про‑
сто просуммировав массу вероятности всех x, для которых f(x) = y:
(2.150)
Например, если f(X) = 1, когда X четно, и f(X) = 0 в противном случае, а px(X)
равномерное распределение на множестве {1, …, 10}, то py(1) = åxÎ{2,4,6,8,10}
px(x) = 0.5, а потому также p(0) = 0.5. Заметим, что в этом примере f функция
типа «многие к одному».

2.8.2. Непрерывный случай
Если X непрерывна, то мы можем воспользоваться формулой (2.150), потому
что px(x) – плотность, а не ФПВ, а суммировать плотности нельзя. Вместо
этого мы будем работать с функциями распределения следующим образом:
(2.151)
Если f обратима, то вывести ФПВ y можно путем дифференцирования
функции распределения, как будет показано ниже. Если же f необратима, то
можно воспользоваться численным интегрированием или аппроксимацией
методом Монте-Карло.

2.8.3. Обратимые преобразования (биекции)
В этом разделе мы рассмотрим случай монотонной, а потому обратимой
функции. (Отметим, что функция обратима тогда и только тогда, когда она
является биекцией.) В этом предположении существует простая формула
для ФПВ y, как мы увидим ниже. (Ее можно обобщить на обратимые, но не‑
монотонные функции, однако этот случай мы рассматривать не будем.)

2.8.3.1. Замена переменных: скалярный случай
Начнем с примера. Пусть x ~ Unif(0, 1) и y = f(x) = 2x + 1. Эта функция рас‑
тягивает и сдвигает распределение вероятностей, как показано на рис. 2.19a.
Рассмотрим ее в точке x и в другой бесконечно близкой точке x + dx. Мы ви‑
дим, что этот интервал отображается в (y, y + dy). Масса вероятности в этих
интервалах должна быть одинаковой, поэтому p(x)dx = p(y)dy и, следова‑
тельно, p(y) = p(x)dx/dy. Однако, поскольку не имеет значения (в терминах
сохранения вероятности), будет ли dx/dy > 0, или dx/dy < 0, имеем:
(2.152)

Tlgm: @it_boooks

110  Вероятность: одномерные модели

(a)

(b)

Рис. 2.19  (a) Отображение равномерной ФПВ посредством функции f(x) =
2x + 1. (b) Как две близкие точки, x и x + dx, преобразуются отображением f. Если
dy/dx > 0, то функция локально возрастает, а если dy/dx < 0, то локально убывает.
Взято из работы [Jan18]. Печатается с разрешения Эрика Янга

Теперь рассмотрим общий случай для любой px(x) и любой монотонной
функции f : ℝ ® ℝ. Пусть g = f -1, т. е. y = f(x) и x = g(y). Предположив, что
f : ℝ ® ℝ монотонно возрастает, имеем:
Py(y) = Pr( f(X) £ y) = Pr(X £ f -1(y)) = Px( f -1(y)) = Px(g(y)).

(2.153)

Дифференцируя, получаем:
(2.154)
Мы можем вывести аналогичное выражение (но с противоположным зна‑
ком) для случая, когда f монотонно убывает. В общем случае возьмем абсо‑
лютную величину:
(2.155)
Это называется формулой замены переменных.

2.8.3.2. Замена переменных: многомерный случай
Полученные выше результаты можно обобщить на многомерные распреде‑
ления. Пусть f – обратимая функция, отображающая ℝn в ℝn, а g – обратная
к ней функция. Пусть требуется вычислить ФПВ распределения y = f(x). По
аналогии со скалярным случаем имеем
py(y) = px(g(y))|det[Jg(y)]|,

(2.156)

Tlgm: @it_boooks

Преобразования случайных величин  111

где Jg = dg(y)/dy⟙ – якобиан g, а |detJ(y)| – абсолютная величина определи‑
теля J, вычисленная в точке y. (Обсуждение якобианов см. в разделе 7.8.5.)
В упражнении 3.6 мы воспользуемся этой формулой для вывода нормиро‑
вочной постоянной многомерного гауссова распределения.
На рис. 2.20 этот результат показан для двумерного случая, когда f(x) =
Мы видим, что отношение площади параллелограмма

Ax + b, где A =

к площади квадрата равно det(A) = ad - bc.

(a)

(b)

Рис. 2.20  Применение аффинного преобразования f(x) = Ax + b к единичному квадрату. (a) Здесь A = I. (b) Здесь b = 0. Взято из работы [Jan18]. Печатается
с разрешения Эрика Янга

Рассмотрим другой пример: преобразование плотности из декартовых ко‑
ординат x = (x1, x2) в полярные y = f(x1, x2), так что g(r, θ) = (r cosθ, r sinθ). Тогда

(2.157)

|det(Jg)| = |r cos2θ + r sin2θ| = |r|.

(2.158)

Отсюда
(2.159)
Чтобы геометрически интерпретировать эту формулу, заметим, что пло‑
щадь закрашенного участка на рис. 2.21 равна:
Pr(r £ R £ r + dr, θ £ Θ £ θ + dθ) = pr,θ(r, θ)drdθ.

(2.160)

Tlgm: @it_boooks

112  Вероятность: одномерные модели

Рис. 2.21  Замена декартовых координат полярными.
Площадь закрашенного участка равна r dr dθ.
На основе рис. 3.16 из работы [Ric95]

В пределе это выражение равно плотности в центре участка, умноженной
на его площадь, равную r dr dθ. Поэтому
(2.161)

2.8.4. Моменты линейного преобразования
Пусть f – аффинная функция, т. е. y = Ax + b. В этом случае легко вычислить
среднее и ковариацию y. Среднее вычисляется так:
𝔼[y] = 𝔼[Ax + b] = Aμ + b,

(2.162)

𝔼[a⟙x + b]= a⟙μ + b.

(2.163)

Cov[y] = Cov[Ax + b] = AΣA⟙,

(2.164)

где μ = 𝔼[x]. Если f – скалярная функция, f(x) = a⟙x + b, то соответствующий
результат имеет вид:
Что касается ковариации, то имеем

где Σ = Cov[x]. Оставляем доказательство этого факта в качестве упражнения.
В частном случае, когда y = a⟙x + b, получаем:
𝕍[y] = 𝕍[a⟙x + b]= a⟙Σa.

(2.165)

Например, чтобы вычислить дисперсию суммы двух скалярных случайных
величин, мы можем положить a = [1, 1], тогда
(2.166)
(2.167)

Tlgm: @it_boooks

Преобразования случайных величин  113

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

2.8.5. Теорема о свертке
Пусть y = x1 + x2, где x1 и x2 – независимые случайные величины. Если эти
величины дискретны, то функцию вероятности их суммы можно вычислить
следующим образом:
(2.168)
где j = …, -2, -1, 0, 1, 2, … .
Если ФПВ x1 и x2 равны соответственно p1(x1) и p2(x2), то каково распреде‑
ление y? Функция распределения для y описывается формулой
(2.169)
где интегрирование производится по области R, определенной неравенством
x1 + x2 < y*. Таким образом, ФПВ для y имеет вид:
(2.170)
где мы воспользовались правилом дифференцирования под знаком интеграла:
(2.171)
Формулу (2.170) можно переписать в виде:
p = p 1 ⊛ p 2,

(2.172)

где ⊛ обозначает оператор свертки. Для векторов конечной длины инте‑
гралы заменяются суммами, а операция свертки иллюстрируется в табл. 2.4.
Формула (2.170) называется теоремой о свертке.
Например, предположим, что бросаются две кости, так что дискретные
случайные величины p1 и p2 имеют равномерное распределение над множе‑
ством {1, 2, …, 6}. Обозначим y = x1 + x2 сумму, выпавшую на костях. Имеем
(2.173)
(2.174)


(2.175)

Tlgm: @it_boooks

114  Вероятность: одномерные модели
Таблица 2.4. Дискретная свертка x = [1, 2, 3, 4] с y = [5, 6, 7]; в результате
получается to yield z = [5, 16, 34, 52, 45, 28]. В общем случае zn = å¥
k=–¥xkyn–k.
Мы видим, что эта операция состоит из почленного умножения элемента x
на «дополнительный» элемент y и сложения результатов

7







6
7





1
5
6
7




2

5
6
7



3


5
6
7


4



5
6
7






5
6







5

z0
z1
z2
z3
z4
z5

5
x1y0
x1y1
x2y1
x3y1
28

x0y0
x0y1
x0y2
x1y2
x2y2
x3y2

16
x2y0
x3y0
45

34
52

Продолжая таким образом, находим p(y = 4) = 3/36, p(y = 5) = 4/36, p(y = 6) =
5/36, p(y = 7) = 6/36, p(y = 8) = 5/36, p(y = 9) = 4/36, p(y = 10) = 3/36, p(y = 11) =
2/36 и p(y = 12) = 1/36. Графически это показано на рис. 2.22. Мы видим, что
распределение похоже на гауссово, причины этого будут объяснены в раз‑
деле 2.8.6.
6
36

p(S)
0.16
0.14

5
36

0.12

4
36

0.10

3
36

0.08
0.06

2
36

0.04

1
36

0.02
2

3

4

5

6

7
S

8

9

10

11

12

Рис. 2.22  Распределение суммы очков на двух костях, т. е. функция p(y), где y = x1 + x2 и xi ∼ Unif({1, 2, …, 6}). Взято из статьи https://
en.wikipedia.org/wiki/Probability_distribution. Печатается с разрешения
автора «Википедии» Тима Стеллмаха

Мы также можем вычислить ФПВ суммы двух непрерывных случайных ве‑
личин. Например, в случае двух гауссовых распределений, когда x1 ~ 𝒩(μ1, σ12)
и x2 ~ 𝒩(μ2, σ22), можно показать (см. упражнение 2.4), что для y = x1 + x2
p(y) = 𝒩(x1|μ1, σ12) Ä 𝒩(x2|μ1, σ22) = 𝒩(y|μ1 + μ2, σ12 + σ22).

(2.176)

Поэтому свертка двух гауссовых распределений является гауссовым рас‑
пределением.

Tlgm: @it_boooks

Преобразования случайных величин  115

2.8.6. Центральная предельная теорема
Теперь рассмотрим N случайных величин с ФПВ (необязательно гауссовыми)
pn(x) с одинаковыми средними μ и дисперсиями σ2. Предполагается, что все
величины независимы и одинаково распределены, т. е. Xn ~ p(X) – неза‑
висимые примеры, выбранные из одного и того же распределения. Обозна‑
чим SN = åNn=1 Xn случайных величин. Можно показать, что при увеличении
N распределение этой суммы стремится к
(2.177)
Поэтому распределение величины
(2.178)
сходится к стандартному нормальному, где = SN /N – выборочное среднее.
Этот результат называется центральной предельной теоремой. Доказа‑
тельство см., например, в книгах [Jay03, стр. 222] или [Ric95, стр. 169].
На рис. 2.23 приведен пример вычисления выборочного среднего случай‑
ных величин, выбранных из бета-распределения. Мы видим, что распреде‑
ление этого среднего быстро сходится к гауссову.

(a)

(b)

Рис. 2.23  Центральная предельная теорема в картинках. Мы изобразили
гистограмму μ̂Ns = (1/N)åNn=1xns, где xns ∼ Beta(1, 5), s = 1, …, 10 000. При N ® ¥
распределение сходится к гауссову. (a) N = 1. (b) N = 5. На основе рис. 2.6 из
работы [Bis06]. Построено программой по адресу figures.probml.ai/book1/2.23

2.8.7. Аппроксимация Монте-Карло
Пусть x – случайная величина, а y = f(x) – некоторая функция от x. Часто
трудно вычислить индуцированное распределение p(y) аналитически. Про‑
стая, но действенная альтернатива – произвести большую выборку из рас‑
пределения x и использовать эти примеры (вместо самого распределения)
для аппроксимации p(y).

Tlgm: @it_boooks

116  Вероятность: одномерные модели
Например, предположим, что x ~ Unif(-1, 1) и y = f(x) = x2. Чтобы аппрок‑
симировать p(y), мы можем выбрать много примеров из p(x) (с помощью
генератора случайных чисел), возвести их в квадрат и вычислить эмпи‑
рическое распределение:
(2.179)
Это просто взвешенная с одинаковыми весами «сумма пиков» с центрами
в каждом из примеров (см. раздел 2.7.6). Имея достаточно примеров, мы
сможем аппроксимировать p(y) с приемлемой точностью (см. иллюстрацию
на рис. 2.24).
Этот подход называется аппроксимацией Монте-Карло распределения.
(Термин «Монте-Карло» – отсылка к знаменитому казино в Монако.) Метод
Монте-Карло впервые был разработан для целей статистической физики –
в частности, при создании атомной бомбы, – но теперь широко используется
в статистике и машинном обучении. Дополнительные сведения можно найти
во втором томе этой книги, [Mur22], а также в книгах, специально посвящен‑
ных этой теме, например [Liu01; RC04; KTB11; BZ20].

Рис. 2.24  Вычисление распределения y = x2, где p(x) – равномерное распределение (слева). Аналитический результат показан в центре, а аппроксимация Монте-Карло справа. Построено программой по адресу figures.probml.ai/
book1/2.24

2.9. упражнения
Упражнение 2.1 [условная независимость*].
(Источник: Коллер.)
a. Пусть H Î {1, …, K} – дискретная случайная величина, а e1 и e2 – наблю‑
даемые значения двух других случайных величин E1 и E2. Требуется
вычислить вектор:

Tlgm: @it_boooks

Упражнения  117

Каких из следующих наборов чисел достаточно для вычисления?
i. P(e1, e2), P(H), P(e1|H), P(e2|H).
ii. P(e1, e2), P(H), P(e1, e2|H).
iii. P(e1|H), P(e2|H), P(H).
b. Теперь предположим, что E1 ⊥ E2|H (т. е. E1 и E2 условно независимы при
условии H). Тогда каких из этих трех наборов достаточно?
Представьте вычисления и конечный результат. Указание: воспользуй‑
тесь формулой Байеса.
Упражнение 2.2 [из попарной независимости не следует взаимная неза‑
висимость].
Говорят, что две случайные величины попарно независимы, если
p(X2|X1) = p(X2)

(2.180)

и, следовательно,
p(X2, X1) = p(X1)p(X2|X1) = p(X1)p(X2).

(2.181)

Говорят, что n случайных величин взаимно независимы, если
p(Xi|XS) = p(Xi) ∀S Í {1, …, n} \ {i}

(2.182)

и, следовательно,
(2.183)
Покажите, что из попарной независимости всех пар случайных вели‑
чин необязательно следует взаимная независимость. Достаточно привести
контрпример.
Упражнение 2.3 [условная независимость равносильна факторизуемости
совместного распределения*].
В основном тексте мы дали такое определение: X ⊥ Z, если
p(x, y|z) = p(x|z)p(y|z)

(2.184)

для всех x, y, z таких, что p(z) > 0. Докажите, что X ⊥ Y|Z тогда и только тогда,
когда существуют функции g и h такие, что
p(x, y|z) = g(x, z)h(y, z)

(2.185)

для всех x, y, z таких, что p(z) > 0, т. е. оба определения эквивалентны.
Упражнение 2.4 [свертка двух гауссовых распределений является гауссовым
распределением].
Покажите, что свертка двух гауссовых распределений является гауссовым
распределением, т. е.
p(y) = 𝒩(x1|μ1, σ12) Ä 𝒩(x2|μ2, σ22) = 𝒩(y|μ1 + μ2, σ12 + σ22),

где y = x1 + x2, x1 ~ 𝒩(μ1, σ12) и x2 ~ 𝒩(μ2, σ22).

(2.186)

Tlgm: @it_boooks

118  Вероятность: одномерные модели
Упражнение 2.5 [математическое ожидание минимума двух случайных ве‑
личин*].
Пусть X, Y – две точки, случайно и равномерно выбранные из интервала
[0, 1]. Каково ожидаемое местоположение левой точки?
Упражнение 2.6 [дисперсия суммы].
𝕍[X + Y] = 𝕍[X] + 𝕍[Y] + 2Cov[X, Y],

(2.187)

где Cov [X, Y] – ковариация X и Y.

Упражнение 2.7 [вывод плотности обратного гамма-распределения*].
Пусть X ~ Ga(a, b) и Y = 1/X. Выведите распределение Y.
Упражнение 2.8 [среднее, мода и дисперсия бета-распределения].
Пусть θ ~ Beta(a, b). Покажите, что среднее, мода и дисперсия равны:
(2.188)
(2.189)
(2.190)
Упражнение 2.9 [формула Байеса в медицинской диагностике].
По результатам ежегодного обследования у врача есть для вас хорошая
и плохая новость. Плохая – что ваш тест на серьезное заболевание оказался
положительным, и верность этого теста составляет 99 % (т. е. вероятность
положительного теста при условии, что вы больны, равна 0.99, как и вероят‑
ность отрицательного теста при условии, что вы не больны). Хорошая но‑
вость – что это редкое заболевание, которое обнаруживается у одного чело‑
века из 10 000. Каковы шансы, что вы действительно больны? (Представьте
вычисления и конечный результат.)
Упражнение 2.10 [судебное разбирательство].
(Источник: Питер Ли.) Совершено преступление. На месте преступления най‑
дены следы крови, которым нет безобидного объяснения. Такая группа крови
встречается у 1 % людей.
a. Прокурор говорит: «Вероятность, что у обвиняемого была бы найден‑
ная на месте преступления группа крови, если бы он был невиновен,
равна 1 %. Следовательно, с вероятностью 99 % он виновен». Это рас‑
суждение называется ошибкой прокурора. Что в нем не так?
b. Защитник говорит: «Преступление совершено в городе с населением
800 000 человек. Такая группа крови встречается примерно у 8000 че‑
ловек. Следовательно, вероятность виновности обвиняемого равна
всего 1 к 8000, это пренебрежимо мало». Это рассуждение называется
ошибкой защитника. Что в нем не так?

Tlgm: @it_boooks

Упражнения  119

Упражнение 2.11 [вероятность зависит от формы вопроса, на который тре‑
буется дать ответ*].
(Источник: Минка.) У моего соседа двое детей. В предположении, что пол
ребенка можно уподобить исходу подбрасывания монеты, априорная веро‑
ятность, что у соседа мальчик и девочка, равна 1/2. Другие варианты – два
мальчика или две девочки – имеют вероятность 1/4 и 1/4.
a. Предположим, что в ответ на вопрос, есть ли у него мальчики, сосед
отвечает да. Какова вероятность, что один ребенок – девочка?
b. Предположим, что я видел одного из соседских детей, и это был маль‑
чик. Какова вероятность, что другой ребенок – девочка?
Упражнение 2.12 [нормировочная постоянная для одномерного гауссова
распределения].
Нормировочная постоянная для гауссова распределения с нулевым сред‑
ним равна
(2.191)
где a = -¥ и b = ¥. Для вычисления рассмотрим ее квадрат:
(2.192)
Перейдем от декартовых координат (x, y) к полярным (r, θ), совершив заме‑
ну переменных x = r cosθ, y = r sinθ. Поскольку dxdy = r dr dθ и cos2θ + sin2θ =
1, имеем
(2.193)
Указание 1: пред‑
Вычислите этот интеграл и покажите, что
ставьте интеграл в виде произведения двух сомножителей, один из которых
(включающий dθ) постоянный, так что вычислить его легко. Указание 2: если
2
2
2
2
u = e-r /2σ , то du/dr = -(1/σ2) re-r /2σ , так что второй интеграл тоже берется
легко (поскольку ò u¢(r)dr = u(r)).

Глава

3

Tlgm: @it_boooks

Вероятность:
многомерные модели
3.1. соВместные распределения нескольких
слуЧайных ВелиЧин
В этом разделе мы обсудим различные способы измерения зависимости
одной или нескольких случайных величин друг от друга.

3.1.1. Ковариация
Ковариация случайных величин X и Y измеряет степень их (линейной) за‑
висимости и определяется следующим образом:
(3.1)
Если x – D-мерный случайный вектор, то его ковариационной матрицей
называется следующая симметричная положительно полуопределенная матрица:
(3.2)

(3.3)

Из этого определения следует важный результат:
𝔼[xx⟙] = Σ + μμ⟙.

(3.4)

Cov[Ax + b] = ACov[x]A⟙,

(3.5)

Еще один полезный результат состоит в том, что ковариация линейного
преобразования удовлетворяет соотношению:
как показано в упражнении 3.4.

Tlgm: @it_boooks

Совместные распределения нескольких случайных величин  121

Взаимная ковариация двух случайных векторов определяется как
Cov[x, y] = 𝔼[(x - 𝔼[x])(y - 𝔼[y])⟙].

(3.6)

3.1.2. Корреляция

Ковариация изменяется от минус до плюс бесконечности. Иногда удобнее
использовать нормированную меру с конечной нижней и верхней границей.
Коэффициент корреляции Пирсона между X и Y определяется как
(3.7)
Можно показать (упражнение 3.2), что -1 £ ρ £ 1.
Также можно показать, что corr [X, Y] = 1 тогда и только тогда, когда Y =
aX + b (и a > 0) для некоторых параметров a и b, т. е. когда между X и Y существует линейная зависимость (см. упражнение 3.3). Интуитивно кажет‑
ся, что коэффициент корреляции как-то связан с наклоном регрессионной
прямой, т. е. с коэффициентом a в выражении Y = aX + b. Однако, как будет
показано в формуле (11.27), коэффициент регрессии на самом деле равен
a = Cov[X, Y] / 𝕍[X]. На рис. 3.1 видно, что коэффициент корреляции может
быть равен 0 при наличии сильной, но нелинейной зависимости (сравните
с рис. 6.6). Поэтому лучше представлять коэффициент корреляции как степень линейности (см. демонстрацию этой идеи программой по адресу code.
probml.ai/book1/correlation2d).

Рис. 3.1  Несколько наборов точек (x, y) и коэффициент корреляции x и y
для каждого набора. Отметим, что корреляция отражает зашумленность и направление линейной зависимости (верхний ряд), но не отражает ее угловой
коэффициент (средний ряд), а также многие аспекты нелинейных связей (нижний ряд). (Примечание: на рисунке в центре угловой коэффициент равен 0, но
в этом случае коэффициент корреляции не определен, потому что дисперсия Y
нулевая.) Взято из статьи https://en.wikipedia.org/wiki/Pearson_correlation_coefficient. Печатается с разрешения автора «Википедии» Imagecreator

Tlgm: @it_boooks

122  Вероятность: многомерные модели
В случае, когда x — вектор взаимосвязанных случайных величин, корреляционная матрица определяется как

(3.8)

Это можно более компактно записать в виде
(3.9)
где Kxx — автоковариационная матрица:
Kxx = Σ = 𝔼[(x - 𝔼[x])(x - 𝔼[x])⟙] = Rxx - μμ⟙,

(3.10)

а Rxx = 𝔼[xx⟙] — автокорреляционная матрица.

3.1.3. Некоррелированные не значит
независимые
Если X и Y независимы, т. е. p(X, Y) = p(X)p(Y), то Cov[X, Y] = 0 и, значит,
corr[X, Y] = 0. Поэтому из независимости вытекает некоррелированность. Од‑
нако обратное неверно: из некоррелированности не следует независимость.
Например, путь X ~ U(-1, 1) и Y = X 2. Очевидно, что Y зависит от X (более
того, Y однозначно определено X), но можно показать (упражнение 3.1), что
corr[X, Y] = 0. Некоторые поразительные примеры этого факта показаны
на рис. 3.1. Мы видим несколько наборов данных, для которых наличие за‑
висимости между X и Y не вызывает сомнения, а коэффициент корреляции
тем не менее равен 0. Более общей мерой зависимости между случайными
величинами является взаимная информация, рассматриваемая в разделе 6.3.
Она равна 0 только тогда, когда величины действительно независимы.

3.1.4. Из коррелированности не следует наличие
причинно-следственной связи
Хорошо известно, что «коррелированность не означает причинно-следственную связь». Например, рассмотрим рис. 3.2. Красным цветом изобра‑
жен график x1:T, где xt – объем продаж мороженого в месяце t. Желтым цветом
изображен график y1:T, где yt – частота насильственных преступлений в меся‑
це t. (Величины приведены к общему масштабу, так чтобы графики наклады‑
вались друг на друга.) Мы наблюдаем сильную корреляцию между сигналами.

Tlgm: @it_boooks

Совместные распределения нескольких случайных величин  123

Иногда по этой причине заявляют, что «поедание мороженого провоцирует
преступления» [Pet13]. Конечно, это всего лишь ложная корреляция, вы‑
званная общей скрытой причиной, а именно погодой. Когда жарко, есте‑
ственно, растет потребление мороженого. Но жара также приводит к росту
насильственных преступлений; почему это так – предмет (кхе-кхе) жарких
споров; одни считают, что жара провоцирует гнев [And01], другие – что дело
в том, что люди чаще выходят на улицу [Ash18], где и происходят убийства.

Рис. 3.2  Примеры ложных корреляций между временными рядами, не имеющими причинно-следственной связи. Потребление мороженого (красная кривая) и частота насильственных преступлений (желтая кривая) в зависимости
от времени года. Взято из статьи http://icbseverywhere.com/blog/2014/10/thelogic-of-causal-conclusions/. Печатается с разрешения Барбары Дрешер

Еще один знаменитый пример касается положительной корреляции между
рождаемостью и наличием аистов. Он породил городскую легенду о том, что
аисты приносят детей [Mat00]. Конечно, истинная причина корреляции свя‑
зана, скорее, со скрытыми факторами, например повышением жизненного
уровня и, следовательно, обилием пищи. Много других забавных примеров
ложной корреляции приведено в работе [Vig15].
Эти примеры служат предупреждением о том, что не следует рассматри‑
вать способность x предсказывать y как признак того, что x является при‑
чиной y.

3.1.5. Парадокс Симпсона
Парадокс Симпсона говорит, что статистический тренд или связь, наблю‑
даемая в нескольких группах данных, может исчезнуть или изменить знак,

Tlgm: @it_boooks

124  Вероятность: многомерные модели
когда эти группы объединяются. Это приводит к противоречащему интуи‑
ции поведению, если ошибочно воспринять статистическую зависимость как
причинно-следственную связь. Визуализация этого парадокса показана на
рис. 3.3. Мы видим, что в целом y уменьшается с ростом x, но внутри каждой
подгруппы у увеличивается.
(a)

(b)

Рис. 3.3  Парадокс Симпсона. (a) В целом y уменьшается с ростом x.
(b) В каждой группе y увеличивается с ростом x. Взято из статьи https://
en.wikipedia.org/wiki/Simpson%27s_paradox. Печатается с разрешения
автора «Википедии» Pace svwiki

Tlgm: @it_boooks

Совместные распределения нескольких случайных величин  125

Реальный пример парадокса Симпсона в контексте COVID-19 представлен
на рис. 3.4a. Здесь показано, что в Италии коэффициент смертности (case
fatality rate – CFR) от COVID-19 меньше, чем в Китае, в каждой возрастной
группе, но в целом смертность выше. Причина в том, что в Италии больше
пожилых людей, как показано на рис. 3.4b. Иными словами, рис. 3.4a пока‑
зывает p(F = 1|A, C), где A – возраст, C – страна, а F = 1 – событие, заключаю‑
щееся в смерти от COVID-19. А рис. 3.4b показывает p(A|C), т. е. вероятность
оказаться в возрастной группе A в стране C. Объединяя то и другое, находим
p(F = 1|C = Италия) > p(F = 1|C = Китай). Дополнительные сведения см.
в работе [KGS20].
(a)

(b)

Рис. 3.4  Парадокс Симпсона на примере COVID-19. (a) Коэффициенты смертности (CFR) в Италии и в Китае в разрезе возрастных групп и в агрегированной
форме (последние два столбика, «Total») за период до момента публикации
отчета (см. надписи). (b) Доля всех подтвержденных случаев, включенных в (a)
в каждой возрастной группе по странам. Рисунок 1 из работы [KGS20]. Печатается с разрешения Юлиуса фон Кюгельгена

Tlgm: @it_boooks

126  Вероятность: многомерные модели

3.2. многомерное гауссоВо (нормальное)
распределение
Самым распространенным из совместных распределений непрерывных слу‑
чайных величин является многомерное гауссово, или нормальное, распределение (multivariate normal – MVN). Объясняется это в первую очередь
математическим удобством, но также и тем, что предположение о гауссово‑
сти во многих случаях вполне разумно (см. обсуждение в разделе 2.6.4).

3.2.1. Определение
Плотность MVN по определению равна
(3.11)
где μ = 𝔼[y] Î ℝD – вектор средних, а Σ = Cov[y] – ковариационная матрица
размера D´D, определенная следующим образом:
(3.12)

(3.13)

где
(3.14)
и 𝕍[Yi] = Cov[Yi, Yi]. Из (3.12) получаем важный результат:
𝔼[yy⟙] = Σ + μμ⟙.

(3.15)

Нормировочная постоянная в формуле (3.11) Z = (2π)D/2|Σ|1/2 нужна для
того, чтобы интеграл ФПВ был равен 1 (см. упражнение 3.6).
В двумерном случае многомерное нормальное распределение называется
двумерным гауссовым распределением. Его ФПВ имеет вид y ~ 𝒩(μ, Σ), где
y Î ℝ 2, μ Î ℝ2 и
(3.16)

где ρ – коэффициент корреляции, равный

Tlgm: @it_boooks

Многомерное гауссово (нормальное) распределение  127

(3.17)
Можно показать (упражнение 3.2), что -1 £ corr[Y1, Y2] £ 1.Обобщение ФПВ
на двумерный случай дает следующий устрашающий результат:

(3.18)
На рис. 3.5 и 3.6 изображены графики плотности двумерного гауссова рас‑
пределения для нескольких вариантов ковариационной матрицы. В полной
ковариационной матрице имеется D(D + 1)/2 параметров (на 2 делится,
потому что матрица Σ симметрична). (Почему форма линий уровня эллипти‑
ческая, объясняется в разделе 7.4.4 при обсуждении геометрии квадратичных
форм.) В диагональной ковариационной матрице D параметров, а все
внедиагональные элементы равны 0. Сферическая ковариационная матрица, называемая также изотропной ковариационной матрицей, имеет
вид Σ = σ2ID, так что свободный параметр только один, а именно σ2.
Полная

Диагональная

Сферическая

(a)

(b)

(c)

Рис. 3.5  Визуализация плотности двумерного гауссова распределения
в виде поверхности. (a) Распределение с полной ковариационной матрицей
можно ориентировать под любым углом. (b) Распределение с диагональной ковариационной матрицей должно быть параллельно оси. (c) Распределение со
сферической ковариационной матрицей должно быть симметрично. Построено
программой по адресу figures.probml.ai/book1/3.5

3.2.2. Расстояние Махаланобиса
В этом разделе мы постараемся пролить свет на геометрическую форму
функции плотности вероятности многомерного гауссова распределения. Для
этого рассмотрим форму линий уровня постоянной (логарифмической) ве‑
роятности.

Tlgm: @it_boooks

128  Вероятность: многомерные модели
Полная

Диагональная

Сферическая

(a)

(b)

(c)

Рис. 3.6. Визуализация плотности двумерного гауссова распределения в терминах линий уровня постоянной плотности вероятности. (a) В случае полной
ковариационной матрицы контуры эллиптические. (b) В случае диагональной
ковариационной матрицы оси эллипса параллельны осям координат. (c) В случае сферической ковариационной матрицы линии уровня – окружности. Построено программой по адресу figures.probml.ai/book1/3.6

Логарифмическая вероятность в точке y равна
(3.19)
Зависимость от y можно выразить в терминах расстояния Махаланобиса
D между y и μ, квадрат которого определяется формулой:
(3.20)
Поэтому линии постоянной (логарифмической) вероятности эквивалент‑
ны линиям постоянного расстояния Махаланобиса.
Чтобы понять, как выглядят линии постоянного расстояния Махаланобиса,
воспользуемся тем фактом, что Σ, а значит, и Λ = Σ-1 – положительно опреде‑
ленные матрицы (по предположению). Рассмотрим следующее спектральное
разложение (см. раздел 7.4) матрицы Σ:
(3.21)
Точно так же можно написать:
(3.22)
Определим zd u⟙d (y - μ), так что z = U(y - μ). Тогда расстояние Махалано‑
биса можно переписать в виде:
(3.23)

Tlgm: @it_boooks

Многомерное гауссово (нормальное) распределение  129

(3.24)
Как мы увидим в разделе 7.4.4, это означает, что расстояние Махаланобиса
можно интерпретировать как евклидово расстояние в новой системе коор‑
динат z, в которой y повернуто на U и масштабировано на Λ.
Например, в двумерной системе координат рассмотрим множество точек
(z1, z2), удовлетворяющих уравнению:
(3.25)
Поскольку для этих точек расстояние Махаланобиса одинаково, они соот‑
ветствуют точкам равной вероятности. Таким образом, мы видим, что линии
равной плотности вероятности двумерного гауссова распределения имеют
форму эллипсов. Это показано на рис. 7.6. Собственные векторы определяют
ориентацию эллипса, а собственные значения – его вытянутость.

3.2.3. Маргинальные и условные распределения
для многомерного нормального распределения*
Пусть y = (y1, y2) имеют совместное гауссово распределение с параметрами
(3.26)
где Λ – матрица точности. Тогда маргинальные распределения определя‑
ются формулами:
p(y1) = 𝒩(y1|μ1, Σ11);
p(y2) = 𝒩(y2|μ2, Σ22),

(3.27)

а апостериорное условное распределение – формулами:
p(y1|y2) = 𝒩(y1|μ1|2, Σ1|2);

μ1|2 = μ1 + Σ12Σ-1
22 (y2 - μ2)
-1
= μ1 - Λ 11Λ12(y2 - μ2)
= Σ1|2(Λ11μ1 - Λ12(y2 - μ2));

(3.28)

–1
Σ1|2 = Σ11 – Σ12Σ–1
22 Σ21 = Λ 11.

Важность этих формул настолько велика, что мы обвели их рамочкой, что‑
бы потом было проще найти. Вывод этих результатов (опирающийся на до‑
полнение Шура Σ/Σ22 = Σ11 - Σ12Σ-1
22 Σ21) см. в разделе 7.3.5.

Tlgm: @it_boooks

130  Вероятность: многомерные модели
Как видим, маргинальные и условные распределения сами являются гаус‑
совыми. В случае маргинальных распределений мы просто выделяем строки
и столбцы, соответствующие y1 или y2. В случае условного распределения
придется поработать побольше. Впрочем, и это не сложно: условное среднее
является линейной функцией от y2, а условная ковариация – постоянная
матрица, не зависящая от y2. Мы приводим три разных (но эквивалентных)
выражения для апостериорного среднего и два разных (но эквивалентных)
выражения для апостериорной ковариации; все они полезны в определен‑
ных обстоятельствах.

3.2.4. Пример: обусловливание двумерного
гауссова распределения
Рассмотрим двумерный случай. Ковариационная матрица имеет вид:
(3.29)
Маргинальное распределение p(y1) является одномерным гауссовым и по‑
лучается проецированием совместного распределения на ось y1:
p(y1) = 𝒩(y1|μ1, σ12).

(3.30)

Предположим, что наблюдается Y2 = y2; условное распределение p(y1|y2)
получается «прорезанием» совместного распределения прямой Y2 = y2:
(3.31)
Если σ1 = σ2 = σ, то получаем:
p(y1|y2) = 𝒩(y1|μ1 + ρ(y2 - μ2), σ2(1 - ρ2)).

(3.32)

Например, предположим, что ρ = 0.8, σ1 = σ2 = 1, μ1 = μ2 = 0 и y2 = 1. Мы
видим, что 𝔼[y1|y2 = 1] = 0.8; это имеет смысл, т. к. ρ = 0.8 означает нашу веру
в то, что если y2 увеличивается на 1 (от среднего), то y1 увеличивается на 0.8.
Мы также видим, что 𝕍[y1|y2 = 1] = 1 - 0.82 = 0.36. Это тоже имеет смысл:
наша неуверенность в значении y1 снизилась, поскольку мы что-то узнали
о y1 (косвенно) из наблюдения y2. Если ρ = 0, то получаем p(y1|y2) = 𝒩(y1|μ1, σ12),
потому что y2 не несет никакой информации о y1, если они некоррелированы
(и, стало быть, независимы).

Tlgm: @it_boooks

Многомерное гауссово (нормальное) распределение  131

3.2.5. Пример: подстановка отсутствующих
значений*
В качестве примера применения описанных выше результатов предполо‑
жим, что наблюдаются некоторые части (измерения) y, а остальные части
отсутствуют или не наблюдаемы. Мы можем воспользоваться корреляцией
между измерениями (представленной ковариационной матрицей), чтобы
вывести отсутствующие значения; это называется подстановкой отсутствующих значений.
На рис. 3.7 приведен простой пример. Мы выбрали N векторов из D =
10-мерного гауссова распределения, а затем сознательно «скрыли» 50 % дан‑
ных в каждом примере (строке). Затем мы вывели отсутствующие значения,
зная наблюдаемые значения и истинные параметры модели1. Точнее, для
каждой строки n матрицы данных мы вычисляем p(yn,h|yn,v, θ), где v – индексы
видимых элементов данной строки, h – индексы остальных, скрытых, эле‑
ментов и θ = (μ, Σ). Далее вычисляем маргинальное распределение каждой
отсутствующей переменной i Î h, p(yn,i|yn,v, θ). А зная маргинальное распре‑
деление, вычисляем апостериорное среднее n,i = 𝔼[yn,i|yn,v, θ].

(а)

(b)

Рис. 3.7  Подстановка данных с использованием многомерного гауссова
распределения. (a) Визуализация матрицы данных. Пустые ячейки означают,
что данные отсутствуют. (Это так называемая диаграмма Хинтона, названная
в часть Джеффри Хинтона, хорошо известного специалиста по МО.) (b) Истинная
матрица данных (скрытая). (c) Среднее апостериорного прогнозного распределения, основанное на частично наблюдаемых данных в строке и истинных параметрах модели. Построено программой по адресу figures.probml.ai/book1/3.7

Апостериорное среднее представляет нашу «лучшую гипотезу» об истин‑
ном значении элемента в том смысле, что оно минимизирует ожидаемую
квадратичную ошибку, как объясняется в главе 5. Мы можем использовать
1

На практике следовало бы оценить параметры по частично наблюдаемым данным.
К сожалению, оценка максимального правдоподобия (MLE) из раздела 4.2.6 здесь
неприменима, но можно воспользоваться EM-алгоритмом для аппроксимации
MLE в условиях отсутствия части данных. Детали см. во втором томе.

Tlgm: @it_boooks

132  Вероятность: многомерные модели
𝕍[yn,i|yn,v, θ] как меру уверенности в этой гипотезе, хотя на рисунке это не по‑
казано. С другой стороны, мы могли бы выбрать несколько апостериорных
примеров из распределения p(yn,h|yn,v, θ); это называется множественной
подстановкой и дает более робастную оценку для последующих алгоритмов,
потребляющих «подставленные» данные.

3.3. линейные гауссоВы системы*
В разделе 3.2.3 мы выводили апостериорное распределение скрытых частей
гауссова случайного вектора, используя в качестве условия незашумленные
наблюдения. Сейчас мы обобщим этот подход на зашумленные наблюдения.
Пусть z Î ℝL – неизвестный вектор значений, а y Î ℝD – зашумленное измере‑
ние z. Мы предполагаем, что эти величины связаны следующим совместным
распределением:
p(z) = 𝒩(z|μz, Σz);

p(y|z) = 𝒩(y|Wz + b, Σy),

(3.33)
(3.34)

где W – матрица размера D´L. Это пример линейной гауссовой системы.
Соответствующее совместное распределение, p(z, y) = p(z)p(y|z), является
(L + D)-мерным гауссовым, а его среднее и ковариация равны соответственно:
(3.35)

(3.36)
Применив формулу гауссова обусловливания (3.28) к совместному рас‑
пределению p(y, z), мы сможем вычислить апостериорное распределение
p(z|y), как будет объяснено ниже. Это можно интерпретировать как обраще‑
ние стрелки z ® y в порождающей модели, так что она ведет от латентных
значений к наблюдаемым.

3.3.1. Формула Байеса для гауссовых
распределений
Апостериорное распределение латентных значений имеет вид:
p(z|y) = 𝒩(z|μz|y, Σz|y);
-1
⟙ -1
Σ-1
z|y = Σz + W Σy W;
⟙ –1
μz|y = Σz|y[W Σy (y – b) + Σz–1μz].

(3.37)

Tlgm: @it_boooks

Линейные гауссовы системы  133

Эти выражения называются формулой Байеса для гауссовых распределений. Нормировочная постоянная апостериорного распределения равна:
(3.38)
Мы видим, что гауссово априорное распределение p(z) в сочетании с га‑
уссовым правдоподобием p(y|z) дает гауссово апостериорное распределение
p(z|y). Таким образом, множество гауссовых распределений замкнуто от‑
носительно байесовского обусловливания. Чтобы описать этот факт более
общим образом, будем говорить, что гауссово априорное распределение
является сопряженным априорным для гауссова правдоподобия, пото‑
му что апостериорное распределение имеет тот же тип, что априорное. Мы
обсудим понятие сопряженных априорных распределений более подробно
в разделе 4.6.1.
В разделах ниже приведены различные применения этого результата. Но
сначала выведем его.

3.3.2. Вывод*
Выведем формулы (3.37). Основная идея заключается в том, чтобы вывести
совместное распределение p(z, y) = p(z)p(y|z), а затем воспользоваться ре‑
зультатами из раздела 3.2.3 для вычисления p(y|z).
Будем рассуждать следующим образом. Логарифм совместного распреде‑
ления имеет вид (опуская несущественные постоянные):
(3.39)
Очевидно, что это совместное гауссово распределение, потому что оно
является экспонентой квадратичной формы.
Раскрывая квадратичные члены, содержащие z и y, и игнорируя линейные
и постоянные члены, получаем:
(3.40)
(3.41)
(3.42)
где матрица точности определена как
(3.43)

Tlgm: @it_boooks

134  Вероятность: многомерные модели
Из (3.28) и того факта, что μy = Wμz + b, имеем
p(z|y) = 𝒩(μz|y, Σz|y);

-1
Σz|y = Λxx
= (Σz-1 + WTΣy-1W)-1;

(3.45)

μz|y = Σz|y(Λxx μz - Λxy(y - μy))
= Σz|y(Σz-1μz + WTΣy-1Wμz + WTΣy-1(y - μy))
= Σz|y(Σz-1μz + WTΣy-1(Wμz + y - μy))
= Σz|y(Σz-1μz + WTΣy-1(y - b)).

(3.46)
(3.47)
(3.48)
(3.49)

(3.44)

3.3.3. Пример: вывод неизвестного скаляра
Предположим, что мы произвели N зашумленных измерений yi некоторой
величины z; предположим также, что шум измерений имеет фиксированную
точность λy = 1/σ2, так что правдоподобие равно:
p(yi|z) = 𝒩(yi|z, λy-1).

(3.50)

p(z) = 𝒩(z|μ0, λ0-1).

(3.51)

p(z|y) = 𝒩(z|μN, λN-1);

(3.52)

Теперь используем гауссово априорное распределение для значения не‑
известного источника:

Мы хотим вычислить p(z|y1, …, yN, σ2). Преобразуем это к виду, который
позволит применить формулу Байеса для гауссовых распределений, для чего
определим y = (y1, …, yN), W = 1⟙N (вектор-строка 1´N, состоящий из единиц)
и åy-1 = diag(λyI). Тогда получаем:

λN = λ0 + Nλy;

(3.53)
(3.54)

Эти формулы интуитивно понятны: апостериорная точность λN является
априорной точностью λ0 плюс N единиц точности измерений λy. Кроме того,
апостериорное среднее μN является выпуклой комбинацией оценки макси‑
мального правдоподобия (MLE) и априорного среднего μ0. Отсюда понят‑
но, что апостериорное среднее – это компромисс между MLE и априорным
средним. Если априорное среднее мало, по сравнению с силой сигнала (μ0
мало относительно λy), то мы назначаем больший вес MLE. Если же априорное
среднее велико, по сравнению с силой сигнала (μ0 велико относительно λy),
то больший вес назначается априорному среднему. Это показано на рис. 3.8.
Заметим, что апостериорное среднее записывается в терминах Nλy , так
что наличие N измерений с точностью λy каждое сопоставимо с наличием
одного измерения со значением и точностью Nλy.

Tlgm: @it_boooks

Линейные гауссовы системы  135

(а)

(b)

Рис. 3.8  Вывод z по зашумленному наблюдению y = 3. (a) Сильное априорное распределение 𝒩(0, 1). Апостериорное среднее, «усевшее» в сторону
априорного среднего, равного 0. (b) Слабое априорное распределение 𝒩(0, 5).
Апостериорное среднее близко к MLE. Построено программой по адресу figures.probml.ai/book1/3.8

Мы можем переписать результаты в терминах апостериорной дисперсии,
а не апостериорной точности:
p(z|𝒟, σ2) = 𝒩(z|μN, τ2N);

(3.55)
(3.56)

(3.57)
где τ02 = 1/λ0 – априорная дисперсия, а τ2N = 1/λN – апостериорная дисперсия.
Мы также можем вычислять апостериорное распределение последова‑
тельно, обновляя его после каждого наблюдения. Если N = 1, то после одного
наблюдения можно переписать апостериорное распределение следующим
образом (где Σy = σ2, Σ0 = τ20 и Σ1 = τ12 – дисперсии правдоподобия, априорного
и апостериорного распределения):
p(z|y) = 𝒩(z|μ1, Σ1);

(3.58)

(3.59)

(3.60)

Tlgm: @it_boooks

136  Вероятность: многомерные модели
Апостериорное среднее можно переписать тремя разными способами:
(3.61)
(3.62)
(3.63)
Первое равенство – выпуклая комбинация априорного распределения
и данных, второе – априорное среднее, скорректированное в сторону дан‑
ных, а третье – данные, скорректированные в сторону априорного среднего
(это называется усадкой). Все три формы – эквивалентные способы выра‑
жения компромисса между правдоподобием и априорным распределением.
Если Σ0 мало, по сравнению с Σy, что соответствует сильному априорному
распределению, то величина усадки велика (см. рис. 3.8a). Если же Σ0 велико,
по сравнению с Σy, что соответствует слабому априорному распределению,
то величина усадки мала (см. рис. 3.8b).
Величину усадки можно также выразить в терминах отношения сигнал–
шум, которое определено следующим образом:
(3.64)
где z ~ 𝒩(μ0, Σ0) – истинный сигнал, y = z + ε – наблюдаемый сигнал, а ε ~
𝒩(0, Σy) – шум.

3.3.4. Пример: вывод неизвестного вектора

Пусть имеется неизвестная величина z Î ℝD, для которой мы предположим
априорное гауссово распределение p(z) = 𝒩(μz, Σz). Если мы ничего не знаем
о z заранее, то можем положить Σz = ¥I, это означает, что мы абсолютно не
уверены в том, каково должно быть значение z. (На практике можно исполь‑
зовать большую, но конечную ковариацию). В силу симметрии представля‑
ется разумным положить μz= 0.
Теперь предположим, что произведено N зашумленных, но независимых
измерений z, yn ~ 𝒩(z, Σy), размера D каждое. Тогда правдоподобие можно
записать в виде:
(3.65)
Заметим, что N наблюдений можно заменить их средним , компенсиро‑
вав это умножением ковариации на 1/N. Положив W = I, b = 0, мы можем
воспользоваться формулой Байеса для гауссова распределения и вычислить
апостериорное распределение z:

Tlgm: @it_boooks

Линейные гауссовы системы  137

(3.66)
(3.67)
(3.68)
где и – параметры апостериорного распределения.
На рис. 3.9 приведен пример для двумерного случая. Можно считать, что
z представляет истинное, но неизвестное положение объекта на двумерной
плоскости, например ракеты или самолета, а yn – зашумленные наблюде‑
ния, например радиолокационные отметки. Чем больше отметок, тем точнее
мы можемлокализовать источник. (Во втором томе, [Mur22], обсуждается
фильтр Калмана, который обобщает эту идею на временную последователь‑
ность наблюдений.)

(а)

(b)

(c)

Рис. 3.9  Байесовский вывод для двумерного гауссова случайного вектора z.
(a) Данные сгенерированы в соответствии с распределением yn ∼ 𝒩(z, Σy), где
z = [0.5, 0.5]⟙ и Σy = 0.1[2, 1; 1, 1]). Предполагается, что ковариация шума в датчиках Σy известна, но z неизвестно. Черные крестики представляют z. (b) Априорное распределение имеет вид p(z) = 𝒩(z|0, 0.1I2). (c) Показано апостериорное
распределение после наблюдения 10 точек. Построено программой по адресу
figures.probml.ai/book1/3.9

Апостериорная неопределенность каждой компоненты вектора z зависит
от надежности показаний датчика при каждом измерении. В нашем приме‑
ре шум измерений в направлении 1 больше, чем в направлении 2, поэтому
апостериорная неопределенность z1 (по горизонтальной оси) больше, чем z2
(по вертикальной оси).

3.3.5. Пример: слияние показаний датчиков
В этом разделе мы обобщим результаты из раздела 3.3.4 на случай несколь‑
ких измерений от разных датчиков с различной надежностью. То есть модель
имеет вид:
(3.69)

Tlgm: @it_boooks

138  Вероятность: многомерные модели
где M – количество датчиков (измерительных устройств), Nm – количество
наблюдений, произведенных m-м датчиком, а y = y1:N;1:M Î ℝK. Наша цель –
объединить имеющиеся факты и вычислить p(z|y). Это называется слиянием
показаний датчиков.
Теперь приведем простой пример, когда имеется всего два датчика y1 ~
𝒩(z, Σ1) и y2 ~ 𝒩(z, Σ2). Схематически этот пример можно представить в виде
y1 ¬ z ® y2. Мы можем объединить y1 и y2 в один вектор y и представить
модель в виде z ® [y1, y2], где p(y|z) = 𝒩(y|Wz, Σy), где W = [I; I] и Σy = [Σ1, 0;
0, Σ2] – блочные матрицы. Затем можно применить формулу Байеса для га‑
уссовых распределений и вычислить p(y|z).
На рис. 3.10a приведен пример для двумерного случая, где мы положили
Σ1 = Σ2 = 0.01I2, т. е. оба датчика одинаково надежны. В этом случае апостери‑
орное среднее расположено посередине между двумя наблюдениями, y1 и y2.
На рис. 3.10b мы положили Σ1 = 0.05I2 и Σ2 = 0.01I2, т. е датчик 2 надежнее,
чем датчик 1. В этом случае апостериорное среднее расположено ближе к y2.
На рис. 3.10(c) мы положили
(3.70)
т. е. датчик 1 дает более надежные измерения второй компоненты (в верти‑
кальном направлении), а датчик 2 – первой (в горизонтальном направлении).
В этом случае апостериорное среднее заимствует вертикальную компоненту
y1 и горизонтальную компоненту y2.

(a)

(b)

(c)

Рис. 3.10  Мы наблюдаем y1 = (0, –1) (красный крестик) и y2 = (1, 0) (зеленый
крестик) и оцениваем 𝔼[z|y1, y2] (черный крестик). (a) Датчики одинаково надежны, поэтому оценка апостериорного среднего расположена посередине между
двумя окружностями. (b) Датчик 2 надежнее, поэтому оценка сдвинута ближе
к зеленой окружности. (c) Датчик 1 надежнее в вертикальном направлении,
а датчик 2 – в горизонтальном. Оценка является комбинацией обоих измерений. Построено программой по адресу figures.probml.ai/book1/3.10

Tlgm: @it_boooks

Экспоненциальное семейство распределений  139

3.4. Экспоненциальное семейстВо
распределений*
В этом разделе мы определим экспоненциальное семейство распределений, включающее много распространенных распределений вероятностей.
Оно играет весьма важную роль в статистике и машинном обучении. В этой
книге мы в основном используем его в контексте обобщенных линейных
моделей, обсуждаемых в главе 12. Другие приложения экспоненциального
семейства распределений мы встретим во втором томе.

3.4.1. Определение
Рассмотрим семейство распределений вероятностей с параметром η Î ℝK
с фиксированным носителем 𝒴D ⊆ ℝD. Говорят, что распределение p(y|η)
является экспоненциальным семейством распределений, если его плот‑
ность можно записать в виде:
(3.71)
где h(y) – масштабная постоянная (ее также называют базовой мерой, и ча‑
сто она равна 1), 𝒯(y) Î ℝK – достаточные статистики, η – естественные,
или канонические, параметры, Z(η) – нормировочная постоянная, назы‑
ваемая также функцией разбиения, а A(η) = log Z(η) – логарифмическая
функция разбиения. Можно показать, что A – выпуклая функция, опреде‑
ленная на выпуклом множестве Ω {η Î ℝK : A(η) < 1}.
Удобно, когда естественные параметры независимы. Формально мы го‑
ворим, что экспоненциальное семейство минимально, если не существует
такого η Î ℝK \ {0}, что η⟙𝒯(y) = 0. Последнее условие может быть нарушено
в случае мультиномиальных распределений из-за того, что сумма значений
параметров должна быть равна 1; однако распределение легко перепараме‑
тризовать, взяв K - 1 независимых параметров, как показано ниже.
Формулу (3.71) можно обобщить, определив η = f(ϕ), где ϕ – некоторое,
возможно меньшее, множество параметров. В этом случае распределение
имеет вид:
p(y|ϕ) = h(y)exp[ f(ϕ)⟙𝒯(y) - A( f(ϕ))].

(3.72)

p(y|η) = h(y)exp[η⟙y - A(η)].

(3.73)

Если отображение ϕ в η нелинейно, то мы говорим об искривленном
экспоненциальном семействе. Если η = f(ϕ) = ϕ, то говорят, что модель
имеет каноническую форму. Если, кроме того, 𝒯(y) = y, то говорят, что это
естественное экспоненциальное семейство (natural exponential family –
NEF). В таком случае его можно записать в виде:

Tlgm: @it_boooks

140  Вероятность: многомерные модели

3.4.2. Пример
В качестве простого примера рассмотрим распределение Бернулли. Его мож‑
но записать в виде экспоненциального семейства следующим образом:
Ber(y|μ) = μy(1 - μ)1-y
= exp[ylog(μ) + (1 - y)log(1 - μ)]
= exp[𝒯(y)⟙η],

(3.74)
(3.75)
(3.76)

где 𝒯(y) = [𝕀(y = 1), 𝕀(y = 0)], η = [log(μ), log(1 - μ)], а μ – параметр, определя‑
ющий среднее. Однако это сверхполное представление, поскольку суще‑
ствует линейная зависимость между признаками. В этом можно убедиться
следующим образом:
1⟙𝒯(y) = 𝕀(y = 0) + 𝕀(y = 1) = 1.

(3.77)

Если представление сверхполное, то η определено неоднозначно. Обычно
используют минимальное представление, когда с распределением ассоци‑
ировано единственное η. В таком случае мы просто определяем:
(3.78)
Это можно превратить в экспоненциальное семейство, определив
(3.79)
𝒯(y) = y;

(3.80)

A(η) = -log(1 - μ) = log(1 + eη);

(3.81)

h(y) = 1.

(3.82)

Мы можем восстановить параметр среднего μ по каноническому параметру η, положив
(3.83)
В этой формуле мы узнаем логистическую (сигмоидную) функцию.
Другие примеры см. во втором томе, [Mur22].

Tlgm: @it_boooks

Экспоненциальное семейство распределений  141

3.4.3. Логарифмическая функция разбиения
является производящей функцией
полуинвариантов
Первым и вторым полуинвариантами распределения являются его среднее
𝔼[Y] и дисперсия 𝕍[Y], а первым и вторым моментами – 𝔼[Y] и 𝔼[Y 2]. Можно
также вычислить полуинварианты (и моменты) высших порядков. Важное
свойство экспоненциального семейства заключается в том, что производные
логарифмической функции разбиения можно использовать для порождения
всех полуинвариантов достаточных статистик. В частности, первый и второй
полуинварианты равны соответственно
ÑA(η) = 𝔼[𝒯(y)];

Ñ2A(η) = Cov[𝒯(y)].

(3.84)
(3.85)

Из этого результата мы видим, что гессиан – положительно определенная
матрица, а потому A(η) – выпуклая относительно η функция. Поскольку ло‑
гарифмическое правдоподобие имеет вид log p(y|η) = η⟙𝒯(y) - A(η) + const,
оно является выпуклой функцией и, следовательно, оценка максимального
правдоподобия имеет глобальный максимум.

3.4.4. Вывод максимальной энтропии
экспоненциального семейства
Пусть требуется найти распределение p(x), описывающее данные, а знаем мы
только математические ожидания (Fk) некоторых признаков, или функций
fk(x):
(3.86)
Например, f1 могла бы вычислять x, а f2 - x2, так что F1 – эмпирическое
среднее, а F2 – эмпирический второй момент. Априорно мы полагаем, что
распределение описывается функцией q(x).
Чтобы формализовать понятие «наименьшего числа допущений», будем
искать распределение, которое максимально близко к априорному распре‑
делению q(x) в смысле расхождения Кульбака–Лейблера (КЛ) (раздел 6.2)
и удовлетворяет нашим ограничениям:
p = argminp 𝕂𝕃(p||q) с ограничениями.

(3.87)

p = argmaxp ℍ(p) с ограничениями.

(3.88)

Если используется равномерное априорное распределение q(x) µ 1, то ми‑
нимизация расхождения КЛ эквивалентна максимизации энтропии (раз‑
дел 6.1):

Tlgm: @it_boooks

142  Вероятность: многомерные модели
Результат называется моделью максимальной энтропии.
Для минимизации расхождения КЛ при ограничениях (3.86) и при условии,
что p(x) ³ 0 и åx p(x) = 1, воспользуемся множителями Лагранжа (см. раз‑
дел 8.5.1). Лагранжиан равен:
(3.89)
Чтобы взять производные по функции p, можно было бы применить вари‑
ационное исчисление, но мы поступим проще и будем рассматривать p как
вектор фиксированной длины (поскольку предполагается, что величина x
дискретная). Тогда имеем:
(3.90)
Приравнивая ¶J/¶pc нулю для каждого c, получаем
(3.91)
где по определению Z e1+λ0. Вспоминая, что сумма вероятностей должна
быть равна 1, получаем
(3.92)
Поэтому нормировочная постоянная равна:
(3.93)
Это в точности форма экспоненциального семейства, где f(x) – вектор до‑
статочных статистик, -λ – естественные параметры, а q(x) – базовая мера.
Например, если признаками являются f1(x) = x и f2(x) = x2 и мы ищем совпа‑
дения с первым и вторым моментами, то получается гауссово распределение.

3.5. смесоВые модели
Один из способов создания более сложных вероятностных моделей – взять
выпуклую комбинацию простых распределений. Это называется смесовой
моделью. Такая модель имеет вид
(3.94)

Tlgm: @it_boooks

Смесовые модели  143

где pk – k-я компонента смеси, а πk – веса компонент, удовлетворяющие ус‑
ловиям 0 £ πk £ 1 и åKk=1 πk = 1.
Эту модель можно по-другому выразить в виде иерархической модели,
в которую мы введем дискретную латентную переменную z Î {1, …, K},
определяющую, какое распределение использовать для порождения вы‑
хода y. Априорное распределение этой латентной переменной имеет вид
p(z = k) = πk, а условное – p(y|z = k) = pk(y) = p(y|θk). То есть мы определяем
следующую совместную модель:
p(z|θ) = Cat(z|π);

(3.95)

p(y|z = k, θ) = p(y|θk).

(3.96)

«История порождения» данных выглядит так: сначала делаем выборку
из конкретной компоненты z, а затем порождаем наблюдения y, используя
параметры, выбранные в зависимости от значения z. Исключая z, приходим
к формуле (3.94):
(3.97)
Можно создавать различные виды смесовых моделей, варьируя базовое
распределение pk, как показано ниже.

3.5.1. Модель гауссовой смеси
Модель гауссовой смеси (Gaussian mixture model – GMM), называемая так‑
же смесью гауссиан (mixture of Gaussians – MoG), определена следующим
образом:
(3.98)
На рис. 3.11 показана плотность смеси трех двумерных гауссиан. Каждая
компонента смеси представлена своим множеством эллиптических линий
уровня. При достаточно большом числе компонент смеси GMM может ап‑
проксимировать любое гладкое распределение на ℝD.
GMM часто используются для кластеризации без учителя вещественных
выборочных данных yn Î ℝD. Делается это в два этапа. Сначала мы обучаем
модель, например вычисляя MLE θ̂ = argmax log p(𝒟|θ), где 𝒟 = {yn : n = 1 … N}.
(Мы обсудим, как вычисляется эта MLE в разделе 8.7.3.) Затем ассоцииру‑
ем с каждой точкой yn дискретную латентную (скрытую) переменную zn Î
{1, …, K}, которая задает номер компоненты смеси или кластер, который был
использован для порождения yn. Эти латентные переменные неизвестны, но
мы можем вычислить их апостериорное распределение по формуле Байеса:

Tlgm: @it_boooks

144  Вероятность: многомерные модели
(3.99)

(a)

(b)

Рис. 3.11  Смесь трех двумерных гауссовых распределений. (a) Показаны
линии постоянной вероятности для каждой компоненты смеси. (b) Поверхность
суммарной плотности. На основе рис. 2.23 из работы [Bis06]. Построено программой по адресу figures.probml.ai/book1/3.11

Величина rnk называется ответственностью кластера k за точку данных
n. Зная ответственности, мы можем вычислить самый вероятный кластер:
(3.100)
Это называется жесткой кластеризацией. (Если ответственности исполь‑
зуются для частичного отнесения каждой точки к разным кластерам, то го‑
ворят о мягкой кластеризации.) Пример показан на рис. 3.12.

(a)

(b)

Рис. 3.12  (a) Двумерные данные.
(b) Возможная кластеризация с K = 5 кластерами, вычисленная с помощью GMM.
Построено программой по адресу figures.probml.ai/book1/3.12

Если имеется равномерное априорное распределение zn и используются
сферические гауссовы распределения с Σk = I, то задача жесткой кластери‑
зации сводится к

Tlgm: @it_boooks

Смесовые модели  145

(3.101)
Иными словами, мы сопоставляем каждой точке ближайший к ней (в смыс‑
ле евклидова расстояния) центроид. Эта идея лежит в основе кластеризации
методом K средних, который мы обсудим в разделе 21.3.

3.5.2. Модели бернуллиевой смеси
Если данные двоичные, то можно использовать модель бернуллиевой смеси, или BMM (ее также называют смесью распределений Бернулли), каж‑
дая компонента которой имеет вид:
(3.102)
Здесь μdk – вероятность, что бит d поднят в кластере k.
В качестве примера аппроксимируем смесью BMM с K = 20 компонента‑
ми набор данных MNIST (раздел 3.5.2). (Для обучения модели применялся
EM-алгоритм, похожий на EM-алгоритм для GMM, рассматриваемый в разде‑
ле 8.7.3, однако можно также использовать стохастический градиентный спуск,
более эффективный для больших наборов данных1.) Получившиеся параметры
каждой компоненты смеси (т. е. μk и πk) показаны на рис. 3.13. Мы видим, что
модель «обнаружила» представление каждой цифры. (Некоторые цифры пред‑
ставлены несколько раз, потому что модель не знала «истинное» количество
классов. О том, как выбирать K для смесовых моделей, см. раздел 21.3.7.)

Рис. 3.13  Мы аппроксимируем набор бинаризованных данных о рукописных цифрах MNIST смесью 20 распределений Бернулли. Показаны оценки средних кластеров μ̂k. Числа над каждым изображением представляют оценки весов в смеси π̂k. При
обучении модели никакие метки не использовались. Построено
программой по адресу figures.probml.ai/book1/3.13
1

Код с использованием СГС см. по адресу code.probml.ai/book1/mix_bernoulli_sgd_
mnist.

Tlgm: @it_boooks

146  Вероятность: многомерные модели

3.6. граФоВые Вероятностные модели*
Мне известно два основных принципа упрощения сложных систем: прин‑
цип модульности и принцип абстрагирования. Я приверженец применения
вычисления вероятностей в машинном обучении, потому что верю, что те‑
ория вероятностей реализует оба принципа глубокими и неожиданными
способами, а именно с помощью факторизации и усреднения. Максимально
полное использование этих двух механизмов представляется мне дорогой
вперед в машинном обучении.
— Майкл Джордан, 1997 (цитируется по изданию [Fre98])

Мы познакомились с несколькими простыми строительными блоками, осно‑
ванными на теории вероятностей. В разделе 3.3 мы продемонстрировали, как
построить многомерное гауссово распределение p(y) из более простых частей: маргинального распределения p(y1) и условного распределения p(y2|y1).
Эту идею можно обобщить и определить совместные распределения многих
случайных величин. Ключевое предложение будет заключаться в том, что не‑
которые величины условно независимы от других. Мы будем представлять
предположения об условной независимости (CI) в виде графов, как описано
ниже. (Дополнительные сведения см. во втором томе этой книги, [Mur22].)

3.6.1. Представление
Графовая вероятностная модель (probabilistic graphical model – PGM) –
это совместное распределение вероятностей, представленное в виде графа,
в котором закодированы предположения об условной независимости. Если
граф ориентированный и ациклический (directed acyclic graph – DAG), то
модель иногда называют байесовской сетью, хотя ничего специфически
байесовского в таких моделях нет.
Основная идея PGM заключается в том, что каждая вершина графа пред‑
ставляет случайную величину, а каждое ребро – прямую зависимость. Точнее,
отсутствие ребра означает, что величины условно независимы. В случае DAG
мы можем занумеровать вершины в топологическом порядке (родители
предшествуют потомкам), а затем соединить их так, что каждая вершина бу‑
дет условно независима от всех своих предшественников при условии своих
родителей:
Yi ⟘ Ypred(i)\pa(i)|Ypa(i),

(3.103)

где pa(i) – родители вершины i, а pred(i) – предшественники вершины i в дан‑
ном порядке (это называется упорядоченным марковским свойством).
Следовательно, совместное распределение можно представить следующим
образом:
(3.104)
где V – число вершин графа.

Tlgm: @it_boooks

Графовые вероятностные модели  147

3.6.1.1. Пример: оросительная система
Пусть требуется смоделировать зависимости между 4 случайными величина‑
ми: C (сезон ненастный или нет), R (идет ли дождь), S (включен ли ороситель)
и W (трава мокрая или нет). Мы знаем, что если сезон ненастный, то дождь
более вероятен, поэтому добавляем ребро C ® R. Известно также, что в не‑
настный сезон включать оросители приходится реже, поэтому добавляем
ребро C ® S. Наконец, мы знаем, что когда идет дождь или работают ороси‑
тели, трава мокрая, поэтому добавляем ребра S ® W и R ® W.
Формально эти предположения определяют следующее совместное рас‑
пределение:
(3.105)
где вычеркнуты члены, ненужные в силу свойств условной независимости.
Каждый член p(Yi|Ypa(i)) называется условным распределением вероятностей (conditional probability distribution – CPD) для вершины i. Распреде‑
ление может быть любым. На рис. 3.14 предполагается, что все CPD – услов‑
ные категориальные распределения, которые можно представить таблицей
условных вероятностей (conditional probability table – CPT). Мы можем
представить i-ю CPT следующим образом:
(3.106)
P(С = F)

P(С = T)

0.5

0.5
Ненастно

C

P(S = F)

P(S = T)

F

0.5

0.5

T

0.9

0.1

Ороситель

Дождь

C

P(R = F)

P(R = T)

F

0.8

0.2

T

0.2

0.1

Трава
мокрая
S

R

P(W = F)

P(W = T)

F

F

1.0

0.0

T

F

0.1

0.9

F

T

0.1

0.9

T

T

0.01

0.99

Рис. 3.14  Графовая вероятностная модель оросительной системы
с бинарными таблицами условных вероятностей. Буквы T и F означают
true (истина) и false (ложь)
i
θijk = 1 для
Такое представление обладает свойствами 0 £ θijk £ 1 и åKk=1
каждой строки j. Здесь i – индекс вершины, i Î [V]; k – индекс состояния вер‑

Tlgm: @it_boooks

148  Вероятность: многомерные модели
шины, k Î [Ki], где Ki – число состояний вершины i; j – индекс совместного
состояния родителей, j Î [Ji], где Ji = ÕpÎpa(i) Kp. Например, вершина «трава
мокрая» имеет двух бинарных родителей, поэтому всего имеется четыре со‑
вместных состояния родителей.

3.6.1.2. Пример: марковская цепь
Пусть требуется создать совместное распределение вероятностей последова‑
тельностей переменной длины, p(y1:T). Если каждая величина yt представляет
слово из словаря, содержащего K возможных значений, т. е. yt Î {1, …, K}, то
результирующая модель представляет распределение возможных последо‑
вательностей длины T; часто ее называют языковой моделью.
Согласно цепному правилу, любое совместное распределение T случайных
величин можно представить следующим образом:
(3.107)
К сожалению, число параметров, необходимых для представления каждого
условного распределения p(yt|y1:t-1) растет экспоненциально с ростом t. Но до‑
пустим, что имеет место предположение условной независимости, т. е. будущее
yt+1:T не зависит от прошлого, y1:t-1, при условии настоящего yt. Оно называется
марковским условием первого порядка и представляется PGM на рис. 3.15a.
В этом предположении совместное распределение можно записать так:
(3.108)

Рис. 3.15  Авторегрессионные модели (марковские)
первого и второго порядка

Это называется марковской цепью, марковской моделью или авторегрессионной моделью первого порядка. Функция p(yt|yt-1) называется
переходной функцией, переходным ядром или марковским ядром. Это
просто условное распределение состояний в момент t при условии состоя‑
ния в момент t - 1, а потому для нее справедливы соотношения p(yt|yt-1) ³ 0
и åKk=1 p(yt = k|yt-1 = j) = 1. Мы можем представить эту CPT в виде стохастической матрицы, Ajk = p(yt = k|yt-1 = j), в которой сумма элементов в каждой
строке равна 1. Эта матрица называется матрицей переходных вероятностей. Мы предполагаем, что она одинакова для всех временных шагов,
и соответствующая модель называется однородной, стационарной или не
зависящей от времени. Это пример связывания параметров, потому что
один и тот же параметр разделяется несколькими случайными величинами.

Tlgm: @it_boooks

Графовые вероятностные модели  149

Это предположение позволяет моделировать произвольное число случайных
величин с использованием фиксированного числа параметров.
Марковское предположение первого порядка довольно сильное. К счастью,
модели первого порядка легко обобщить, так что они будут зависеть от по‑
следних M наблюдений, и таким образом создать модель порядка M (сколь
угодно большого):
(3.109)
Это называется марковской моделью порядка M. Например, если M = 2,
то yt зависит от yt-1 и yt-2, как показано на рис. 3.15b. Это называется триграммной моделью, потому что она моделирует распределение троек слов.
При M = 1 мы получаем биграммную модель, которая моделирует распре‑
деление пар слов.
Для словарей большого размера число параметров, необходимых для оценки
условных распределений в M-граммных моделях с большим M, может оказать‑
ся непомерно большим. В таком случае нужно вводить дополнительные пред‑
положения вдобавок к условной независимости – например, что p(yt|yt‑M:t-1)
можно представить матрицей низкого ранга или какой-то нейронной сетью.
Это называется нейронной языковой моделью. Подробности см. в главе 15.

3.6.2. Вывод
PGM определяет совместное распределение вероятностей. Поэтому можно
использовать правила маргинализации и обусловливания для вычисления
p(Yi|Yj = yj) для любых переменных i и j. Эффективные алгоритм такого вы‑
числения обсуждаются во втором томе этой книги.
Например, рассмотрим пример оросительной системы на рис. 3.14. Апри‑
орно мы полагаем, что вероятность дождя равна p(R = 1) = 0.5. Если мы
видим, что трава мокрая, то апостериорная вероятность, что был дождь,
становится равной p(R = 1|W = 1) = 0.7079. Допустим, мы еще заметили, что
ороситель был включен, тогда вероятность, что был дождь, уменьшается до
p(R = 1|W = 1, S = 1) = 0.3204. Это отрицательное взаимное влияние несколь‑
ких причин наблюдаемых результатов называется оправданием и известно
также как парадокс Берксона (см. код по адресу code.probml.ai/book1/sprinkler_pgm, который воспроизводит эти вычисления).

3.6.3. Обучение
Если параметры CPD неизвестны, то мы можем рассматривать их как до‑
полнительные случайные величины, добавить соответствующие им вершины
в граф, а затем рассматривать как подлежащие выводу скрытые переменные. На рис. 3.16a приведен простой пример, в котором имеется N незави‑
симых и одинаково распределенных случайных величин yn, выбранных из
одного и того же распределения с параметром θ. (Закрашенные вершины

Tlgm: @it_boooks

150  Вероятность: многомерные модели
представляют наблюдаемые значения, а незакрашенные – латентные пере‑
менные, или параметры.)
Точнее, модель описывает следующую «историю порождения» данных:
θ ~ p(θ);

(3.110)

yn ~ p(y|θ),

(3.111)

где p(θ) – некоторое (неуказанное) априорное распределение параметров,
а p(y|θ) – некоторая заданная функция правдоподобия. Соответствующее
совместное распределение имеет вид:
p(𝒟, θ) = p(θ)p(𝒟|θ),

(3.112)

где 𝒟 = (y1, …, yN). В силу предположения о независимости и одинаковом рас‑
пределении правдоподобие можно записать следующим образом:
(3.113)
Заметим, что порядок векторов данных для определения этой модели не‑
важен, т. е. можно изменить нумерацию листовых узлов в PGM. Если это
свойство имеет место, то данные называются взаимозаменяемыми.

3.6.3.1. Блочная нотация
На рис. 3.16a мы видим, что вершины y повторяются N раз. Чтобы избежать
загромождения рисунка, часто используется синтаксический сахар, назы‑
ваемый блоками (plate). Заключается он в том, что мы обводим повторяю‑
щиеся переменные прямоугольником, понимая, что при разворачивании мо‑
дели вершины внутри этого прямоугольника будут повторяться. А в правом
нижнем углу блока записывается число повторений. Пример приведен на
рис. 3.16b. Эта нотация широко используется для изображения некоторых
видов байесовских моделей.

Рис. 3.16  Слева: точки yn условно независимы при условии θ. Справа: та же
модель в блочной нотации. Представлена та же модель, что слева, но повторяющиеся вершины yn помещены в блок, а число N в правом нижнем углу блока
равно количеству повторений вершины yn

Tlgm: @it_boooks

Упражнения  151

На рис. 3.17 показан более интересный пример, где GMM (раздел 3.5.1)
представлена в виде графовой модели, которая кодирует совместное рас‑
пределение:
(3.114)
Мы видим, что латентные переменные zn, а равно не‑
известные параметры θ = (π, μ1:K, Σ1:K), изображены не‑
закрашенными вершинами.

3.7. упражнения
Упражнение 3.1 [некоррелированность не означает не‑
зависимости*].
Пусть X ~ U(-1, 1) и Y = X2. Очевидно, что Y зависит
от X (более того, Y однозначно определено X). Покажите,
что тем не менее ρ(X, Y) = 0. Указание: если X ~ U(a, b),
то 𝔼[X] = (a + b)/2 и 𝕍[X] = (b - a)2/12.

Упражнение 3.2 [коэффициент корреляции – число от
-1 до +1].
Докажите, что -1 £ ρ(X, Y) £ 1.

Упражнение 3.3 [коэффициент корреляции линейно
связанных величин равен ±1*].
Покажите, что если Y = aX + b для некоторых a > 0 и b,
то ρ(X, Y) = 1. Покажите также, что если a < 0, то ρ(X, Y) =
-1.

Рис. 3.17  Модель
гауссовой смеси,
представленная
графовой моделью

Упражнение 3.4 [линейные комбинации случайных величин].
Пусть x – случайный вектор со средним m и ковариационной матрицей Σ.
Пусть A и B – матрицы.
a. Выведите ковариационную матрицу Ax.
b. Покажите, что tr(AB) = tr(BA).
c. Выведите выражение для 𝔼[x⟙Ax].

Упражнение 3.5 [гауссово и совместное гауссово распределение].
Пусть X ~ 𝒩(0, 1) и Y = WX, где p(W = -1) = p(W = 1) = 0.5. Ясно, что X и Y
не являются независимыми, поскольку Y – функция от X.
a. Покажите, что Y ~ 𝒩(0, 1).
b. Покажите, что Cov[X, Y] = 0. Таким образом, X и Y некоррелированы,
но зависимы, хотя и являются гауссовыми.
Указание: воспользуйтесь определением ковариации
Cov[X, Y] = 𝔼[XY] - 𝔼[X] 𝔼[Y]

и правилом повторного математического ожидания

(3.115)

Tlgm: @it_boooks

152  Вероятность: многомерные модели
𝔼[XY] = 𝔼[𝔼[XY|W]].

(3.116)

Упражнение 3.6 [нормировочная постоянная для многомерного гауссова
распределения].
Докажите, что нормировочная постоянная для d-мерного гауссова рас‑
пределения равна:
(3.117)
Указание: диагонализируйте Σ и воспользуйтесь тем фактом, что |Σ| = Õi λi,
чтобы записать функцию плотности совместного распределения в виде
произведения одномерных гауссиан в преобразованной системе коорди‑
нат. (Нужно будет применить формулу замены переменных.) Наконец, ис‑
пользуйте нормировочную постоянную для одномерных гауссовых рас‑
пределений.
Упражнение 3.7 [слияние датчиков с известными дисперсиями в одномер‑
ном случае].
Имеется два датчика с известными (и различными) дисперсиями v1 и v2,
но с неизвестным (и одинаковым) средним μ. Предположим, что имеется n1
наблюдений yi(1) ~ 𝒩(μ, v1) первого датчика и n2 наблюдений yi(2) ~ 𝒩(μ, v2)
второго датчика. (Например, μ – истинная температура на улице, и датчик 1 –
точное (с низкой дисперсией) цифровое устройство измерения температуры,
а датчик 2 – неточный (с высокой дисперсией) ртутный термометр.) Пусть 𝒟
представляет все данные с обоих датчиков. Каково апостериорное распре‑
деление p(μ|𝒟) в предположении, что априорное распределение μ неинфор‑
мативно (это можно смоделировать гауссовым распределением с точностью
0)? Приведите явные выражение для среднего и дисперсии апостериорного
распределения.
Упражнение 3.8 [представление распределения Стьюдента в виде бесконеч‑
ной смеси гауссовых распределений].
Покажите, что распределение Стьюдента можно записать в виде:
(3.118)
где Ga – гамма-распределение точности α. Это можно рассматривать как бес‑
конечную смесь гауссовых распределений с разными точностями.

Глава

Tlgm: @it_boooks

4

Статистика

4.1. ВВедение
В главах 2 и 3 мы предполагали, что все параметры θ наших вероятностных
моделей известны. В этой главе мы обсудим, как обучить эти параметры на
основе данных.
Процесс оценивания θ по 𝒟 называется обучением модели и составляет
содержание машинного обучения. Есть много методов получения таких оце‑
нок, но большинство сводится к задаче оптимизации вида
(4.1)
где ℒ(θ) – функция потерь, или целевая функция. В этой главе мы обсудим
несколько функций потерь. Иногда возможно решение задачи оптимизации
в замкнутой форме. Но в общем случае необходим какой-то общий алгоритм
оптимизации, это тема главы 8.
Помимо вычисления точечной оценки θ̂, мы обсудим, как моделировать
неопределенность или достоверность этой оценки. В статистике процесс
количественного оценивания неопределенности оценки неизвестной ве‑
личины по конечной выборке данных называется выводом. Мы обсудим
байесовский и частотный подходы к выводу1.

4.2. оценка максимального праВдоподобия
(MLE)
Самый распространенный подход к оцениванию параметров – выбрать такие
параметры, при которых обучающим данным назначается наибольшая веро‑
1

В глубоком обучении термин «вывод» означает то, что мы называем «предсказа‑
нием», т. е. вычисление p(y|x, θ̂).

Tlgm: @it_boooks

154  Статистика
ятность; это называется оценкой максимального правдоподобия (maxi‑
mum likelihood estimation – MLE). Сначала обсудим это понятие подробнее,
а затем приведем ряд примеров.

4.2.1. Определение
MLE определяется следующим образом:
(4.2)
Обычно предполагается, что обучающие примеры независимо выбраны
из одного и того же распределения, так что (условное) правдоподобие при‑
нимает вид:
(4.3)
Это предположение о независимости и одинаковом распределении
в англоязычной литературе называется iid (independent and identically dis‑
tributed). Обычно мы имеем дело с логарифмическим правдоподобием:
(4.4)
Оно представляется в виде суммы членов, по одному на каждый пример.
Таким образом, MLE принимает вид:
(4.5)
Поскольку большинство алгоритмов оптимизации (в частности, те, что
обсуждаются в главе 8) предназначены для минимизации функции стоимо‑
сти, мы можем переопределить целевую функцию, выбрав в этом качестве
(условное) отрицательное логарифмическое правдоподобие (negative log
likelihood – NLL):
(4.6)
Минимизация этого выражения дает MLE. Если модель безусловная (без
учителя), то MLE принимает вид
(4.7)

Tlgm: @it_boooks

Оценка максимального правдоподобия (MLE)  155

так как мы имеем выходы yn, но не имеем входов xn1.
Но бывает так, что нужно максимизировать совместное правдоподобие
входов и выходов. Тогда MLE принимает вид:
(4.8)

4.2.2. Обоснование MLE
Существует несколько обоснований MLE. Одно из них – рассматривать MLE
как простую точечную аппроксимацию байесовского апостериорного рас‑
пределения p(θ|𝒟), когда априорное распределение равномерное (см. раз‑
дел 4.6.7.1).
В частности, предположим, что апостериорное распределение аппрок‑
симируется дельта-функцией p(θ|𝒟) = δ(θ - θ̂ map), где θ̂ map – апостериорная
мода:
(4.9)
Если мы пользуемся равномерным априорным распределением p(θ) µ 1,
то оценка MAP оказывается равной MLE, θ̂ map = θ̂ mle.
Другое обоснование MLE заключается в том, что результирующее про‑
гнозное распределение p(y|θ̂ mle) максимально близко (в определенном ниже
смысле) к эмпирическому распределению данных. В безусловном случае
эмпирическое распределение определяется так:
(4.10)
Мы видим, что эмпирическое распределение – это ряд дельта-функций,
или «пиков», в наблюдаемых обучающих данных. Мы хотим создать модель,
распределение которой q(y) = p(y|θ) похоже на p𝒟(y).
Стандартный способ измерения сходства распределений вероятностей p
и q – расхождение Кульбака–Лейблера (КЛ). Детали мы приведем в раз‑
деле 6.2, а пока ограничимся определением:
(4.11)
1

В статистике принято использовать букву y для обозначения величин, для которых
моделируется порождающее распределение, а букву x для обозначения экзоген‑
ных данных, которые подаются на вход, но не порождаются. Поэтому предметом
обучения с учителем является обучение условных моделей вида p(y|x), а обучение
без учителя – это частный случай, когда x = ∅, т. е. мы обучаем безусловное рас‑
пределение p(y). В литературе по МО при обучении с учителем y рассматривается
как сгенерированные данные, а x – как заданные, но при обучении с учителем x,
напротив, обозначает сгенерированные переменные.

Tlgm: @it_boooks

156  Статистика
(4.12)

где ℍ(p) – энтропия p (см. раздел 6.1), а ℍ(p, q) – перекрестная энтропия p
и q (см. раздел 6.1.2). Можно показать, что 𝕂𝕃(p|q) ³ 0, причем равенство до‑
стигается тогда и только тогда, когда p = q.
Если определить q(y) = p(y|θ) и положить p(y) = p𝒟(y), то расхождение КЛ
принимает вид:
(4.13)
(4.14)
(4.15)
Здесь первый член – постоянная, которую можно отбросить, оставив толь‑
ко NLL. Следовательно, минимизация расхождения КЛ эквивалентна мини‑
мизации NLL, что эквивалентно вычислению MLE по формуле (4.7).
Приведенные выше результаты можно обобщить на обучение с учителем
(условное), воспользовавшись следующим эмпирическим распределением:
(4.16)
Тогда математическое ожидание расхождения КЛ равно:
(4.17)
(4.18)
(4.19)
Минимизация этого выражения эквивалентна минимизации условного
NLL в формуле (4.6).

4.2.3. Пример: MLE для распределения Бернулли
Пусть Y – случайная величина, описывающая подбрасывание монеты: со‑
бытие Y = 1 соответствует выпадению орла, а Y = 0 – выпадению решки.
Обозначим θ = p(Y = 1) вероятность выпадения орла. Эта случайная вели‑
чина имеет распределение Бернулли, с которым мы познакомились в раз‑
деле 2.4.

Tlgm: @it_boooks

Оценка максимального правдоподобия (MLE)  157

NLL для распределения Бернулли имеет вид:
(4.20)
(4.21)
(4.22)
,

(4.23)

где N1 = åNn=1 𝕀(yn = 1) и N0 = åNn=1 𝕀(yn = 0) представляют число выпадений
орла и решки соответственно. (NLL для биномиального распределения та‑
кое же, как для распределения Бернулли, с точностью до несущественного
постоянного члена

, не зависящего от θ.) Эти два числа называются до-

статочными статистиками данных, так как в них заключено все, что нам
необходимо знать о 𝒟. Сумма N = N0 + N1 называется размером выборки.
Для нахождения MLE нужно решить уравнение

NLL(θ) = 0. Производная

NLL равна
(4.24)
и значит, MLE равно:
(4.25)
Как видим, это просто эмпирическая доля орлов, что вполне согласуется
с интуицией.

4.2.4. Пример: MLE для категориального
распределения
Допустим, что мы бросаем K-гранную кость N раз. Обозначим Yn Î {1, …, K}
исход n-го испытания, где Yn ~ Cat(θ). Мы хотим оценить вероятности θ на
основе набора данных 𝒟 = {yn : n = 1 … N}. NLL равно
(4.26)

где Nk – сколько раз наблюдалось событие Y = k. (NLL для мультиномиального
распределения такое же с точностью до несущественных множителей.)

Tlgm: @it_boooks

158  Статистика
Для вычисления MLE необходимо минимизировать NLL при ограничении
K
åk=1
θk = 1. Для этого воспользуемся методом множителей Лагранжа (см.
раздел 8.5.1)1. Лагранжиан имеет вид:
(4.27)
Взятие производных по λ дает исходное ограничение:
(4.28)
Взятие производных по θk дает
(4.29)
Это уравнение можно решить относительно λ, воспользовавшись тем фак‑
том, что сумма вероятностей должна быть равна 1:
(4.30)
Таким образом, MLE равна
(4.31)
а это не что иное, как эмпирическая доля событий k.

4.2.5. Пример: MLE для одномерного гауссова
распределения
Пусть Y ~ 𝒩(μ, σ2) и 𝒟 = {yn : n = 1 … N} – независимая и одинаково распреде‑
ленная выборка размера N. Параметры θ = (μ, σ2) можно оценить с помощью
MLE следующим образом. Сначала выведем NLL, равное
(4.32)
(4.33)

1

Нет необходимости явно накладывать ограничение θk ³ 0, потому градиент
лагранжиана имеет вид -Nk /θk - λ, поэтому отрицательные значения θk увеличивали
бы целевую функцию, а не уменьшали ее. (Разумеется, это не запрещает полагать
θk = 0, и на самом деле такое решение является оптимальным, если Nk = 0.)

Tlgm: @it_boooks

Оценка максимального правдоподобия (MLE)  159

Минимум этой функции должен удовлетворять следующим условиям, ко‑
торые мы объясним в разделе 8.1.1.1:
(4.34)
Так что нам нужно только найти эту стационарную точку. Простое вычис‑
ление (упражнение 4.1) показывает, что решение имеет вид:
(4.35)

(4.36)
(4.37)
Величины и s2 называются достаточными статистиками данных, по‑
тому что их достаточно для вычисления MLE без потери информации по
сравнению с самими исходными данными. Отметим, что вы, возможно, при‑
выкли к такой записи оценки дисперсии:
(4.38)
где производится деление не на N, а на N - 1. Это не MLE, а другая оценка,
которая, кстати, является несмещенной (в отличие от MLE); детали см. в раз‑
деле 4.7.6.1.

4.2.6. Пример: MLE для многомерного гауссова
распределения
В этом разделе мы выведем оценку максимального правдоподобия для па‑
раметров многомерного гауссова распределения.
Сначала запишем логарифмическое правдоподобие, опустив несущественные постоянные:
(4.39)
где Λ = Σ-1 – матрица точности (обратная ковариационная матрица).

4.2.6.1. MLE среднего
После подстановки zn = yn - μ применения формулы производной квадратич‑
ной формы (7.264) и правила дифференцирования сложной функции имеем

Tlgm: @it_boooks

160  Статистика
(4.40)
(4.41)
так как ¶zn/¶μ⟙ = -I. Отсюда
(4.42)
(4.43)
Таким образом, MLE μ – это просто эмпирическое среднее.

4.2.6.2. MLE ковариационной матрицы
Мы можем воспользоваться свойством следа (формула (7.36)) и переписать
логарифмическое правдоподобие в терминах матрицы точности Λ = Σ-1 сле‑
дующим образом:
(4.44)
(4.45)
(4.46)
где S–y – матрица рассеяния с центром в .
Матрицу рассеяния можно переписать более компактно:
S–y = Y ⟙Y = Y⟙C⟙N CN Y = Y⟙CNY,

(4.47)

где
(4.48)
– центрируюшая матрица, которая преобразует Y в Y путем вычитания
среднего = (1/N)Y⟙1N из каждой строки.
Пользуясь результатами из раздела 7.8, мы можем вычислить производные
функции потерь по Λ:
(4.49)
(4.50)

Tlgm: @it_boooks

Оценка максимального правдоподобия (MLE)  161

(4.51)
Таким образом, MLE ковариационной матрицы – это эмпирическая кова‑
риационная матрица (см. пример на рис. 4.1a).

(a)

(b)

Рис. 4.1  (a) Ковариационная матрица для признаков в наборе данных об ирисах
из раздела 1.2.1.1. (b) Корреляционная матрица. Мы показали только нижний треугольник, потому что матрица симметричная, а на диагонали находятся единицы.
Сравните с рис. 1.3. Построено программой по адресу figures.probml.ai/book1/4.1

Иногда удобнее работать с корреляционной матрицей, определенной фор‑
мулой (3.8). Вычислим ее:
(4.52)
здесь diag(Σ)-½ – диагональная матрица элементами 1/σi на диагонали (см.
пример на рис. 4.1b).
Заметим, однако, что MLE может оказаться переобученной или численно
неустойчивой, особенно когда число примеров N мало по сравнению с чис‑
лом измерений D. Основная проблема заключается в том, что Σ содержит
O(D2) параметров, поэтому для надежной оценки нужно очень много данных.
В частности, как видно из формулы (4.51), MLE полной ковариационной матрицы сингулярна, если N < D. И даже если N > D, матрица MLE может быть
плохо обусловлена, т. е. близка к сингулярной. Мы обсудим решение этой
проблемы в разделе 4.5.2.

4.2.7. Пример: MLE для линейной регрессии
Мы кратко упоминали линейную регрессию в разделе 2.6.3. Напомним, что
она соответствует следующей модели:
p(y|x; θ) = 𝒩(y|w⟙x, σ2),

(4.53)

где θ = (w, σ2). Предположим пока, что σ2 фиксировано, и займемся оценкой
весов w. Отрицательное логарифмическое правдоподобие (NLL) равно:

Tlgm: @it_boooks

162  Статистика

(4.54)
Отбрасывая несущественные постоянные слагаемые, получаем следую‑
щую упрощенную целевую функцию, которая называется суммой квадратов невязок (residual sum of squares – RSS):
(4.55)
где rn – n-я невязка. Умножение на число примеров N дает среднеквадратическую ошибку (СКО, англ. MSE):
(4.56)
Наконец, извлечение квадратного корня дает корень из среднеквадратической ошибки (RMSE):
(4.57)
Мы можем вычислить MLE, минимизировав NLL, RSS, MSE или RMSE. Во
всех случаях результат будет один и тот же, поскольку целевая функция оди‑
накова с точностью до несущественных постоянных.
Сосредоточимся на целевой функции RSS. В матричных обозначениях ее
можно записать следующим образом:
(4.58)
В разделе 11.2.2.1 мы докажем, что оптимум, достигаемый, когда Ñw RSS(w) =
0, удовлетворяет следующему уравнению:
(4.59)
Эта оценка обыкновенных наименьших квадратов (ordinary least
squares – OLS) эквивалентна MLE.

4.3. минимизация ЭмпириЧеского риска (ERM)
Мы можем обобщить MLE, заменив член логарифма (условной) потери в фор‑
муле (4.6), 𝓁(yn, θ; xn) = -log p(yn|xn, θ) другой функцией потерь:

Tlgm: @it_boooks

Минимизация эмпирического риска (ERM)  163

(4.60)
Такая постановка называется минимизацией эмпирического риска
(empirical risk minimization – ERM), поскольку это ожидаемая потеря, где
математическое ожидание берется относительно эмпирического распреде‑
ления. Детали см. в разделе 5.4.

4.3.1. Пример: минимизации частоты
неправильной классификации
При решении задачи классификации иногда используется бинарная функция
потерь:
(4.61)
где f(x; θ) – какой-то предиктор. Эмпирический риск принимает вид:
(4.62)
Это просто частота неправильной классификации на обучающем на‑
боре.
Отметим, что для бинарных задач частоту неправильной классификации
можно переписать в следующих обозначениях. Пусть y Î {-1, +1} – истинная
метка и ŷ Î {-1, +1} = f(x; θ) – наше предсказание. Определим бинарную
функцию потерь следующим образом:
(4.63)
Соответствующий эмпирический риск принимает вид:
(4.64)
где зависимость от xn и θ неявная.

4.3.2. Суррогатная потеря
К сожалению, бинарная потеря из раздела 4.3.1 – негладкая функция, как
показано на рис. 4.2, поэтому оптимизировать ее трудно. (На самом деле это
NP-трудная задача [BDEL03].) В этом разделе мы рассмотрим суррогатную
функцию потерь [BJM06]. Обычно в качестве суррогата выбирается макси‑
мально близкая выпуклая верхняя граница, которую минимизировать легко.

Tlgm: @it_boooks

164  Статистика
Например, рассмотрим вероятностный бинарный классификатор, кото‑
рый порождает следующее распределение меток:
(4.65)
где η = f(x; θ) – логарифм отношения шансов. Тогда логарифмическая потеря
равна:
(4.66)
На рис. 4.2 показано, что это гладкая верхняя граница пороговой поте‑
ри. Мы построили график зависимости потери от величины y η, называемой
зазором, потому что она определяет «безопасный отступ» от порогового
значения 0. Таким образом,мы видим, что минимизация отрицательного
логарифмического правдоподобия эквивалентна минимизации (довольно
точной) верхней границы эмпирической бинарной потери.

Рис. 4.2  Различные функции потерь для бинарной
классификации. По горизонтальной оси отложен зазор z =
y η, по вертикальной – потеря. В логарифмической потере
логарифм берется по основанию 2. Построено программой по адресу figures.probml.ai/book1/4.2

Еще одна выпуклая верхняя граница бинарной функции потерь – кусочнолинейная потеря (hinge loss), определенная следующим образом:
(4.67)
Ее график показан на рис. 4.2; мы видим, что она выглядит, как полурас‑
крытая дверная петля. Это выпуклая верхняя граница бинарной функции
потерь, хотя она дифференцируема не везде.

Tlgm: @it_boooks

Другие методы оценивания  165

4.4. другие методы оцениВания*
4.4.1. Метод моментов
Для вычисления MLE необходимо решить уравнение Ñθ NLL(θ) = 0. Иногда
это вычислительно трудная задача. В таких случаях можно использовать
более простой подход, называемый методом моментов (method of mo‑
ments – MOM). Он заключается том, что мы приравниваем теоретические
моменты распределения эмпирическим моментам и решаем получившую‑
ся систему K уравнений, где K – число параметров. Теоретические моменты
по определению равны μk = 𝔼[Y k], k = 1 … K, а эмпирические определяются
формулой:
(4.68)
так что нужно лишь решить уравнение μk = μ̂ k для каждого k. Ниже мы при‑
ведем несколько примеров.
Метод моментов прост, но с точки зрения теории уступает подходу на
основе MLE, потому что не позволяет использовать все данные так же эф‑
фективно. (Дополнительные сведения о теоретических результатах см.,
например, в работе [CB02].) Кроме того, он иногда дает несогласованные
результаты (см. раздел 4.4.1.2). Однако в тех случаях, когда порождаемые
оценки правильны, его можно использовать для инициализации итератив‑
ных алгоритмов оптимизации NLL (см., например, [AHK12]) и тем самым
объединить вычислительную эффективность MOM со статистической точ‑
ностью MLE.

4.4.1.1. Пример: MOM для одномерного гауссова
распределения
Рассмотрим одномерное гауссово распределение. Из раздела 4.2.5 мы знаем,
что
μ1 = μ = ,

(4.69)

μ 2 = σ 2 + μ 2 = s 2,

(4.70)

где – эмпирическое среднее, а s2 – эмпирическая средняя сумма квадратов,
т. е. μ̂ = и σ̂ 2 = s2 - 2. В этом случае MOM дает такую же оценку, как MLE,
но так бывает не всегда.

Tlgm: @it_boooks

166  Статистика

4.4.1.2. Пример: MOM для равномерного распределения
В этом разделе мы рассмотрим применение MOM к равномерному распре‑
делению. В своем изложении мы следуем статье из «Википедии» 1. Пусть
Y ~ Unif(θ1, θ2) – равномерно распределенная случайная величина, т. е.:
(4.71)
Первые два момента равны:
(4.72)
(4.73)
Решая эту систему уравнений, получаем
(4.74)
К сожалению, эта оценка иногда неверна. Например, предположим, что
𝒟 = {0, 0, 0, 0, 1}. Эмпирические моменты равны μ̂ 1 = 1/5, μ̂ 2 = 1/5, поэтому
оценки параметров равны θ̂ 1 = 1/5 - 2 /5 = -0.493 и θ̂ 2 = 1/5 + 2 /5 =
0.893. Однако это никак не может быть верно, потому что если θ2 = 0.893, то
любой сгенерированный пример был бы меньше 1.
С другой стороны, рассмотрим MLE. Пусть y(1) £ y(2) £ … £ y(N) – порядковые статистики данных (т. е. значения, отсортированные в порядке возрас‑
тания). Положим θ = θ2 - θ1. Тогда правдоподобие равно:
p(𝒟|θ) = (θ)-N𝕀(y(1) ³ θ1)𝕀(y(N) £ θ2).

(4.75)

В допустимом для θ диапазоне производная логарифмического правдо‑
подобия равна:
(4.76)
Поэтому правдоподобие – убывающая функция от θ, т. е. мы должны вы‑
брать
θ̂ 1 = y(1); θ̂ 2 = y(N).

(4.77)

В примере, рассмотренном выше, получаем θ̂ 1 = 0 и θ̂ 2 = 1, что и следовало
ожидать.

1

https://en.wikipedia.org/wiki/Method_of_moments_(statistics).

Tlgm: @it_boooks

Другие методы оценивания  167

4.4.2. Онлайновое (рекурсивное) оценивание
Если весь набор данных доступен до начала обучения, то говорят, что про‑
изводится пакетное обучение. Но в некоторых случаях данные поступают
последовательно, так что 𝒟 = {y1, y2, … } – неограниченный поток. В таком
случае необходимо выполнить онлайновое обучение.
Пусть θ̂ t-1 – наша оценка (например, MLE) при известном отрезке 𝒟1:t-1.
Чтобы алгоритм обучения гарантированно обрабатывал один пример за по‑
стоянное время, мы должны найти правило обучения вида:
θt = f(θ̂ t-1; yt).

(4.78)

Это называется рекурсивным обновлением. Ниже мы приведем при‑
меры таких методов онлайнового обучения.

4.4.2.1. Пример: рекурсивная MLE среднего гауссова
распределения
Вернемся к примеру из раздела 4.2.5, где мы вычисляли MLE для одномерно‑
го гауссова распределения. Мы знаем, что пакетная оценка среднего равна:
(4.79)
Это просто сумма данных с нарастающим итогом, поэтому ее легко пре‑
образовать в рекурсивную оценку:
(4.80)
(4.81)
Это называется скользящим средним.
Из формулы (4.81) мы видим, что новая оценка равна сумме старой и по‑
правочного члена. Размер поправки со временем уменьшается (по мере по‑
лучение новых примеров). Однако если распределение меняется, то нужно
придать больший вес недавно полученным примерам. Как это делается, мы
обсудим в разделе 4.4.2.2.

4.4.2.2. Экспоненциально взвешенное скользящее среднее
Формула (4.81) показывает, как вычислить скользящее среднее сигнала.
В этом разделе мы покажем, как уточнить эту формулу, чтобы придавать
больше веса недавним примерам. В частности, мы вычислим следующее экспоненциально взвешенное скользящее среднее (exponentially weighted
moving average – EWMA), которое иногда называют просто экспоненциальным скользящим средним (EMA):

Tlgm: @it_boooks

168  Статистика
μt = βμt-1 + (1 - β)yt,

(4.82)

где 0 < β < 1. Вклад примера, отстоящего на k шагов в прошлом, умножается
на вес βk(1 - β). То есть имеем
μ̂ t = βμt-1 + (1 - β)yt

(4.83)

= β2μt-2 + β(1 - β)yt-1 + (1 - β)yt

(4.84)

= β y0 + (1 - β)β

(4.85)

t

t-1

y1 + … + (1 - β)βyt-1 + (1 - β)yt.

Сумма геометрической прогрессии равна:
(4.86)
Поэтому
(4.87)
Поскольку 0 < β < 1, имеем βt+1 ® 0 при t ® 1, поэтому при малых β про‑
шлое забывается быстрее, и, соответственно, быстрее происходит адаптация
к новым данным. Это показано на рис. 4.3.

(a)

(b)

Рис. 4.3  Экспоненциально взвешенное скользящее среднее с коррекцией
и без коррекции смещения. (a) С короткой памятью: β = 0:9. (a) С долгой памятью: β = 0:99. Построено программой по адресу figures.probml.ai/book1/4.3

Поскольку начальная оценка равна μ̂0 = 0, то существует начальное сме‑
щение. Это можно исправить, добавив масштабирование (см. [KB15]):
(4.88)
(Отметим, что обновление, описываемое формулой (4.82), по-прежнему при‑
меняется к нескорректированному EMA, μ̂t-1, т. е. до коррекции на текущем
временном шаге.) Достигаемое улучшение показано на рис. 4.3.

Tlgm: @it_boooks

Регуляризация  169

4.5. регуляризация
Фундаментальная проблема, присущая MLE и ERM, заключается в том, что
алгоритм старается выбрать параметры, минимизирующие потерю на обуча‑
ющем наборе, но в результате может не получиться модель с низкой потерей
на будущих данных. Это называется переобучением.
Предположим, к примеру, что мы хотим предсказывать вероятность вы‑
падения орла при подбрасывании монеты. Мы подбрасываем N = 3 раза и на‑
блюдаем три выпадения орла. MLE равна θ̂ mle = N1/(N0 + N1) = 3/(3 + 0) = 1
(см. раздел 4.2.3). Но если для предсказания использовать распределение
Ber(y|θ̂ mle), то мы будем предсказывать выпадение орла при любом будущем
подбрасывания, что крайне маловероятно.
Проблема в том, что параметров модели достаточно для точной аппрок‑
симации наблюдаемых обучающих данных, поэтому она идеально совпадает
с эмпирическим распределением. Однако в большинстве случаев эмпири‑
ческое распределение не совпадает с истинным, поэтому, сосредоточив всю
массу вероятности в наблюдаемом наборе N примеров, мы не оставляем
ничего для будущих данных. То есть модель не обобщается.
Наиболее распространенным решением проблемы переобучения является
регуляризация, т. е. включение в NLL (или эмпирический риск) штрафующе‑
го члена. Таким образом, требуется оптимизировать целевую функцию вида
(4.89)
где λ ³ 0 – параметр регуляризации, а C(θ) – штраф за сложность.
Чаще всего в качестве штрафа за сложность используется C(θ) = -log p(θ),
где p(θ) – априорное распределение θ. Если 𝓁 – логарифмическая потеря, то
регуляризированная целевая функция принимает вид:
(4.90)
Полагая λ = 1 и соответственно масштабируя p(θ), мы можем выбрать эк‑
вивалентную функцию для минимизации:
(4.91)
Ее минимизация эквивалентна максимизации логарифмического апосте‑
риорного распределения:
(4.92)
Это называется оценкой апостериорного максимума (maximum a pos‑
teriori estimation – MAP).

Tlgm: @it_boooks

170  Статистика

4.5.1. Пример: оценка MAP для распределения
Бернулли
Снова рассмотрим подбрасывание монеты. Если наблюдается только один
орел, то MLE равна θmle = 1. Чтобы избежать такой оценки, мы можем при‑
бавить к θ штраф за «крайние» значения типа θ = 0 или θ = 1. Для этого
можно воспользоваться бета-распределением в качестве априорного, p(θ) =
Beta(θ|a, b), где a, b > 1 поощряет выбор значений θ, близких к a/(a + b) (де‑
тали см. в разделе 2.7.4). Сумма логарифмов правдоподобия и априорной
вероятности становится равна:
LL(θ) = log p(𝒟|θ) + log p(θ)
= [N1log θ + N0log(1 - θ)] + [(a - 1)log(θ) + (b - 1)log(1 - θ)].

(4.93)
(4.94)

Применяя метод из раздела 4.2.3, находим оценку MAP:
(4.95)
Если положить a = b = 2 (что отдает слабое предпочтение значениям,
близким к 0.5), то оценка примет вид:
(4.96)
Такое сглаживание прибавлением единицы (add-one smoothing) – про‑
стая, но широко применяемая техника, позволяющая избежать проблемы
нулевого счетчика (см. также раздел 4.6.2.9).
Проблема нулевого счетчика и более общая проблема переобучения анало‑
гична тому, что в философии называют парадоксом черного лебедя. В его
основе лежит старое убеждение Запада, будто все лебеди белые. В этом кон‑
тексте черный лебедь – метафора того, чего не может быть. (Австралийские
черные лебеди были открыты европейскими исследователями в XVII веке.)
Термин «парадокс черного лебедя» ввел в обиход знаменитый специалист
в области философии науки Карл Поппер; он также вынесен в название не‑
давно вышедшей популярной книги [Tal07]. Этот парадокс использовался
для иллюстрации проблемы индукции, т. е. формулирования общих выводов
о будущем на основе частных наблюдений за прошлым. Чтобы разрешить
парадокс, необходимо признать, что в общем случае индукция невозможна
и что лучшее, на что можно рассчитывать, – строить правдоподобные гипо‑
тезы о том, что сулит будущее, сочетая эмпирические данные с априорным
знанием.

Tlgm: @it_boooks

Регуляризация  171

4.5.2. Пример: оценка MAP для многомерного
гауссова распределения*
В разделе 4.2.6 мы показали, что MLE среднего многомерного гауссова рас‑
пределения совпадает с эмпирическим средним, μ̂mle = . Мы также показали,
что MLE ковариации совпадает с эмпирической ковариацией
Для большей размерности оценка Σ легко может оказаться сингулярной.
Одно из решений этой проблемы – вычислять оценку MAP, как описано ниже.

4.5.2.1. Оценка усадки
В качестве априорного распределения для Σ удобно взять обратное распреде‑
ление Уишарта. Оно определено на множестве положительно определенных
матриц, а его параметры выражаются в терминах априорной матрицы рас‑
сеяния и размера априорной выборки, или силы . Можно показать, что
результирующая оценка MAP имеет вид
(4.97)
где λ = /( + N) контролирует степень регуляризации.
В качестве априорной матрицы рассеяния часто выбирают (см., например,
[FR07, стр. 6]) матрицу = diag(Σ̂mle). При таком выборе находим следующую
оценку MAP для Σ:
(4.98)
Таким образом, мы видим, что диагональные элементы равны своим оцен‑
кам максимального правдоподобия, а внедиагональные «усаживаются» к 0.
Поэтому такой метод называется оценкой усадки (shrinkage estimation).
Нам также нужно задать параметр λ, который управляет степенью регу‑
ляризации (усадкой к MLE). Обычно его задают с помощью перекрестной
проверки (раздел 4.5.5). Можно вместо этого воспользоваться замкнутой
формулой, приведенной в работах [LW04a; LW04b; SS05], которая дает опти‑
мальную частотную оценку, если используется квадратичная потеря. Этот
способ реализован в библиотеке sklearn (см. https://scikitlearn.org/stable/modules/generated/sklearn.covariance.LedoitWolf.html).
Преимущества этого подхода показаны на рис. 4.4. Мы рассматриваем ап‑
проксимацию 50-мерного гауссова распределения по N = 100, N = 50 и N =
25 точкам. Видно, что оценка MAP всегда хорошо обусловлена, в отличие от
MLE (обсуждение чисел обусловленности см. в разделе 7.1.4.4). В частности,
мы видим, что спектр собственных значений оценки MAP гораздо ближе
к спектру истинной матрицы, чем к спектру MLE. Однако на собственные
векторы это не влияет.

Tlgm: @it_boooks

172  Статистика

Рис. 4.4  Оценка ковариационной матрицы для D = 50 измерений на основе N Î {100, 50, 25} примеров. Мы нанесли на график в порядке убывания
собственные значения истинной ковариационной матрицы (сплошная черная
линия) и оценки MLE (пунктирная синяя линия) и MAP (пунктирная красная линия), воспользовавшись формулой (4.98) с λ = 0.9. В надписи мы также указали
число обусловленности каждой матрицы. Видно, что MLE часто бывает плохо
обусловлена, тогда как оценка MAP численно устойчива. На основе рис. 1 из
работы [SS05]. Построено программой по адресу figures.probml.ai/book1/4.4

4.5.3. Пример: уменьшение весов
На рис. 1.7 мы видели, что использование полиномиальной регрессии слиш‑
ком высокой степени может приводить к переобучению. Для решения проблемы можно уменьшить степень полинома. Однако более общее решение –
штрафовать за величину весов (коэффициентов регрессии). Для этого можно
воспользоваться гауссовым априорным распределением p(w) с нулевым
средним. Получающаяся оценка MAP имеет вид
(4.99)
D
где ||w||22 = åd=1
wd2. (Мы используем букву w, а не θ, потому что штрафовать
имеет смысл только за абсолютную величину весовых векторов, а не за дру‑
гие параметры, например смещение или дисперсию шума.)
Формула (4.99) называется 𝓁2-регуляризацией или уменьшением весов.
Чем больше λ, тем больше параметры штрафуются за излишнюю величину
(отклонение от априорного распределения с нулевым средним) и, следова‑
тельно, тем меньшей гибкостью обладает модель.
В случае линейной регрессии такая схема штрафования называется гребневой регрессией. Например, рассмотрим пример полиномиальной регрес‑
сии из раздела 1.2.2.2, когда предиктор имеет вид:

(4.100)
Предположим, что используется полином большой степени, например
D = 14, хотя набор данных мал и содержит всего N = 21 пример. Применение

Tlgm: @it_boooks

Регуляризация  173

MLE для оценивания параметров даст модель, которая аппроксимирует дан‑
ные очень хорошо, поскольку веса тщательно подбираются, но результирую‑
щая функция чрезмерно «извилиста», т. е. налицо переобучение. На рис. 4.5
показано, как увеличение λ снижает степень переобучения. Дополнительные
сведения о гребневой регрессии см. в разделе 11.3.

(a)

(b)

(c)

(d)

Рис. 4.5  (a–c) Аппроксимация полинома степени 14 гребневой регрессией
по 21 точке. (d) Сравнение MSE и силы регуляризатора. Степень регуляризации
увеличивается слева направо, так что сложность модели убывает тоже слева
направо. Построено программой по адресу figures.probml.ai/book1/4.5

4.5.4. Подбор регуляризатора с помощью
контрольного набора
При использовании регуляризации ключевой вопрос – как выбрать силу ре‑
гуляризатора λ: малое значение означает, что мы больше заинтересованы
в минимизации эмпирического риска, что может привести к переобучению,
а большое – что мы хотим оставаться близко к априорному распределению,
что может стать причиной недообученности модели.
В этом разделе мы опишем простой, но широко применяемый метод вы‑
бора λ. Идея в том, чтобы разбить данные на два непересекающихся набора:
обучающий 𝒟train и контрольный 𝒟valid. (Часто под обучающий набор отво‑
дится примерно 80 % данных, а под контрольный – 20 %.) Мы обучаем модель

Tlgm: @it_boooks

174  Статистика
на наборе 𝒟train (для каждого значения λ), а потом оцениваем ее качество на
наборе 𝒟valid. Затем берется значение λ, при котором качество на контроль‑
ном наборе наилучшее. (Этот метод оптимизации – одномерный пример
поиска на сетке, рассматриваемого в разделе 8.8.)
Для более подробного объяснения метода необходимо ввести обозначе‑
ния. Определим регуляризированный эмпирический риск на наборе данных
следующим образом:
(4.101)
Для каждого λ вычисляем оценку параметров:
(4.102)
Затем вычисляем риск на контрольном наборе:
(4.103)
Это оценка риска на генеральной совокупности – ожидаемая потеря
при истинном распределении p*(x, y). Наконец, выбираем:
(4.104)
(Для этого требуется обучить модель по одному разу для каждого значения λ
в 𝒮, хотя в некоторых случаях можно поступить и более эффективно.)
Выбрав λ*, мы можем заново аппроксимировать моделью весь набор дан‑
ных 𝒟 = 𝒟train ∪ 𝒟valid и в результате получим:
(4.105)

4.5.5. Перекрестная проверка
Описанная в разделе 4.5.4 техника может работать очень хорошо. Однако
если размер обучающего набора мал, то при резервировании 20 % данных
под контрольный набор может получиться ненадежная оценка параметров
модели.
Простое, но популярное решение – воспользоваться перекрестной проверкой (cross validation – CV). Идея такова: разбиваем обучающий набор
на K групп, затем для каждого k Î {1, …, K} обучаем модель на всех группах,
кроме k-й, и проверяем на k-й. И так по кругу, как показано на рис. 4.6. Фор‑
мально имеем
(4.106)

Tlgm: @it_boooks

Регуляризация  175

где 𝒟k – данные, попавшие в k-ю группу, а 𝒟-k – все остальные данные. Эта
величина называется перекрестным риском. На рис. 4.6 эта процедура
показана для K = 5. При K = N получается метод перекрестной проверки
с исключением по одному, поскольку мы всегда проводим обучение на
N - 1 примере и проверяем на одном оставшемся.

Рис. 4.6  Схема 5-групповой перекрестной проверки

Оценку CV можно использовать в качестве целевой функции в составе
процедуры оптимизации для выбора оптимального гиперпараметра λ̂ =
argminλ Rλcv. Наконец, мы объединяем все имеющиеся данные (обучающие
и контрольные) и заново оцениваем параметры модели по формуле θ̂ =
argminθ Rλ̂(θ, 𝒟). Дополнительные сведения см. в разделе 5.4.3.

4.5.5.1. Правило одной стандартной ошибки

Перекрестная проверка дает оценку R̂λ, но не дает никаких сведений о нео‑
пределенности. Стандартная частотная мера неопределенности оценки – это
стандартная ошибка среднего, т. е. среднее выборочного распределения
оценки (см. раздел 4.7.1). Ее можно вычислить следующим образом. Сначала
обозначим Ln = 𝓁(yn, f(xn, θ̂ λ(𝒟-n)) потерю на n-м примере, используя оценки
параметров, полученные на любой обучающей группе, в которую этот при‑
мер не входит. (Отметим, что Ln зависит от λ, но эта зависимость в обозначе‑
ниях не отражена.) Далее обозначим μ̂ = (1/N)åNn=1 Ln эмпирическое среднее,
а σ̂ 2 = (1/N)åNn=1 (Ln - μ̂)2 эмпирическую дисперсию. Теперь в качестве оценки
возьмем μ̂, а в качестве стандартной ошибки этой оценки se(μ̂) = σ̂/
. За‑
метим, что σ измеряет внутренне присущую вариативность Ln на выборке,
а se(μ̂) – нашу неуверенность в среднем μ̂.
Предположим, что мы применили перекрестную проверку к набору мо‑
делей и вычислили среднее и стандартную ошибку оцененных рисков. Для
выбора одной модели часто используется такая эвристика: из этих зашум‑
ленных оценок выбрать значение, соответствующее самой простой модели,
риск которой превышает риск наилучшей модели не более чем на одну стан‑
дартную ошибку. Это называется правилом одной стандартной ошибки
[HTF01, p216].

Tlgm: @it_boooks

176  Статистика

4.5.5.2. Пример: гребневая регрессия
В качестве примера рассмотрим выбор силы 𝓁2-регуляризатора для задачи
гребневой регрессии из раздела 4.5.3. На рис. 4.7a приведен график зависи‑
мости ошибки от log(λ) на обучающем наборе (синяя линия) и на тестовом
наборе (красная линия). Мы видим, что кривая ошибки на тестовом наборе
имеет U-образную форму, т. е. сначала уменьшается с ростом степени регуля‑
ризации, а затем начинает возрастать, что свидетельствует о недообученно‑
сти. На рис. 4.7b приведен график зависимости оценки ошибки на тестовом
наборе при 5-групповой перекрестной проверке от log(λ). Мы видим, что ми‑
нимальная ошибка CV близка к оптимальному значению на тестовом наборе
(хотя пик ошибки на тестовом наборе для больших λ недооценен вследствие
малого размера выборки).

(a)

(b)

Рис. 4.7  Аппроксимация полинома степени 14 гребневой регрессией по
21 точке, показанная на рис. 4.5 для разных значений силы регуляризатора λ.
Степень регуляризации увеличивается слева направо, так что сложность модели
убывает тоже слева направо. (a) Зависимость MSE на обучающем (синий) и тестовом (красный) наборе от log(λ). (b) 5-групповая оценка перекрестной проверки на тестовом наборе; «Усы» показывают стандартную ошибку среднего.
Вертикальная прямая соответствует точке, выбранной по правилу одной стандартной ошибки. Построено программой по адресу figures.probml.ai/book1/4.7

4.5.6. Ранняя остановка
Очень простая форма регуляризации, которая на практике часто оказывается
весьма эффективной (особенно для сложных моделей) – ранняя остановка.
При этом используется тот факт, что алгоритмы оптимизации итеративные,
поэтому им требуется много шагов, чтобы уйти далеко от начальных оце‑
нок параметров. Если мы начинаем замечать признаки переобучения (при
наблюдении за качеством на контрольном наборе), то можем остановить
процесс оптимизации, чтобы не дать модели запомнить слишком много
информации об обучающем наборе (см. иллюстрацию на рис. 4.8).

Tlgm: @it_boooks

Регуляризация  177

(a)

(b)

Рис. 4.8  Качество классификатора текста (нейронной сети, примененной
к мешку погружений слов с использованием пулинга усреднением) в зависимости от числа эпох обучения на наборе данных IMDB. Синяя линия = обучение,
красная линия = контроль. (a) Потеря перекрестной энтропии. Ранняя остановка
происходит примерно на 25-й эпохе. (b) Верность классификации. Построено
программой по адресу figures.probml.ai/book1/4.8

4.5.7. Больше данных
По мере того как объем данных растет, шансы переобучения (для модели
фиксированной сложности) уменьшаются (в предположении, что данные
содержат достаточно информативные примеры и не слишком избыточны).
Это показано на рис. 4.9. Приведены СКО на обучающем и тестовом набо‑
рах для четырех разных моделей (полиномов возрастающей степени) в виде
функции от размера обучающего набора N. (График зависимости ошибки от
размера обучающего набора называется кривой обучения.) Горизонтальная
черная прямая представляет байесовскую ошибку, т. е. ошибку оптималь‑
ного предиктора (истинной модели) вследствие собственных шумов. (В этом
примере истинная модель – полином второй степени, а дисперсия шума
равна σ2 = 4; это называется минимальным уровнем шума, потому что
уменьшить его невозможно.)
Можно обратить внимание на несколько интересных моментов. Во-первых,
ошибка на тестовом наборе для полинома степени 1 остается высокой даже
при увеличении N, поскольку модель слишком проста для улавливания ис‑
тинного положения вещей; это называется недообучением. Для других мо‑
делей ошибка на тестовом наборе уменьшается до оптимального уровня
(минимального уровня шума), но чем проще модель, тем быстрее происхо‑
дит уменьшение, потому что нужно оценивать меньше параметров. Разрыв
между ошибками на тестовом и обучающем наборах больше для сложных
моделей, но уменьшается с ростом N.
Еще один интересный момент – тот факт, что ошибка на обучающем на‑
боре (синяя линия) сначала возрастает с ростом N, по крайней мере, для
достаточно гибких моделей. Причина в следующем: по мере увеличения раз‑
мера набора данных мы наблюдаем больше различных комбинаций входов
и выходов, поэтому задача аппроксимации данных усложняется. Но в конеч‑

Tlgm: @it_boooks

178  Статистика
ном итоге обучающий набор становится больше похож на тестовый, и частота
ошибок сходится к пределу, отражающему оптимальное качество модели.

(a)

(b)

(c)

(d)

Рис. 4.9  Зависимость СКО на обучающем и тестовом наборах от размера
обучающего набора для данных, сгенерированных из полинома степени 2 с гауссовым шумом, имеющим дисперсию σ2 = 4. Мы аппроксимируем эти данные
полиномиальными моделями разной степени. Построено программой по адресу figures.probml.ai/book1/4.9

4.6. байесоВские статистики*
До сих пор мы обсуждали способы оценивания параметров по данным. Од‑
нако при этом игнорировалась неопределенность оценок, а это может быть
важно в таких приложениях, как активное обучение, а также для того что‑
бы избежать переобучения или просто знать, в какой мере можно доверять
оценке некоторой существенной для науки величины. В статистике моде‑
лирование неопределенности параметров с помощью распределения веро‑
ятностей (в отличие от вычисления простой точечной оценки) называется
выводом.
В этом разделе мы воспользуемся апостериорным распределением для
представления неопределенности. Это подход, применяемый в байесовской
статистике. Здесь мы приведем лишь краткое введение, а детали можно
найти во втором томе этой книги, [Mur22], а также в других хороших книгах,
например [McE20; Gel+14].

Tlgm: @it_boooks

Байесовские статистики  179

Для вычисления апостериорного распределения начнем с априорного рас‑
пределения p(θ), отражающего наши знания до знакомства с данными. За‑
тем мы определим функцию правдоподобия p(𝒟|θ), отражающую данные
о параметрах, которые мы ожидаем увидеть. И применим формулу Байеса,
чтобы обусловить априорное распределение наблюдаемыми данными и вы‑
числить апостериорное распределение p(θ|𝒟):
(4.107)
Знаменатель p(𝒟) называется маргинальным правдоподобием, по‑
скольку вычисляется маргинализацией неизвестной величины θ (или ее
исключением путем интегрирования). Его можно интерпретировать как
среднюю вероятность данных относительно априорного распределения. За‑
метим, однако, что p(𝒟) – постоянная, не зависящая от θ, поэтому мы часто
будем игнорировать ее, когда требуется только вывести относительные ве‑
роятности значений θ.
Формула (4.107) аналогична формуле Байеса для тестирования на COVID-19
из раздела 2.3.1. Разница в том, что неизвестные соответствуют параметрам
статистической модели, а не неизвестному состоянию пациента. Кроме того,
условием обычно является набор наблюдений 𝒟, а не одно наблюдение (ре‑
зультат одного теста). В частности, для модели обучения с учителем (услов‑
ной) наблюдаемые данные имеют вид 𝒟 = {(xn, yn) : n = 1 … N}, а для модели
обучения без учителя (безусловной) – 𝒟 = {(yn) : n = 1 … N}.
Вычислив апостериорное распределение параметров, мы можем вычис‑
лить апостериорное прогнозное распределение выходов при известных
входах, исключив неизвестные параметры путем маргинализации.
В случае обучения с учителем (условном) это выглядит так:
(4.108)
Это можно рассматривать как форму байесовского усреднения модели
(Bayes model averaging – BMA), потому что мы делаем предсказания, поль‑
зуясь бесконечным множеством моделей (значений параметров), каждой из
которых назначен вес – ее правдоподобие. BMA уменьшает шансы получить
переобученную модель (раздел 1.2.3), потому что мы не ограничиваемся
одной наилучшей моделью.

4.6.1. Сопряженные априорные распределения
В этом разделе мы рассмотрим множество пар (априорное распределение,
правдоподобие), для которого апостериорное распределение можно вычис‑
лить в замкнутой форме. Конкретно априорные распределения будут «сопря‑
женными» правдоподобию. Говорят, что априорное распределение p(θ) Î ℱ
является сопряженным априорным для функции правдоподобия p(𝒟|θ),
если апостериорное распределение принадлежит тому же параметрическо‑

Tlgm: @it_boooks

180  Статистика
му семейству, что априорное, т. е. p(θ|𝒟) Î ℱ. Иными словами, ℱ замкнуто
относительно байесовского обновления. Если семейство ℱ является экспо‑
ненциальным (см. раздел 3.4), то вычисления можно произвести в замкнутой
форме.
В следующих разделах мы приведем примеры такой схемы, которые будут
использоваться далее в книге. Для простоты ограничимся безусловными мо‑
делями (когда имеются только выходы, или метки y, но нет входных данных,
или признаков x); мы ослабим это ограничение в разделе 4.6.7.

4.6.2. Бета-биномиальная модель
Предположим, что монета подбрасывается N раз и требуется вывести вероят‑
ность выпадения орла. Обозначим yn = 1 событие, когда на n-м испытании
выпал орел, а yn = 0 событие выпадения решки, и пусть 𝒟 = {yn : n = 1 … N} –
все множество данных. Мы предполагаем, что yn ~ Ber(θ), где θ Î [0, 1] – па‑
раметр (вероятность выпадения орла). В этом разделе мы обсудим, как вы‑
числить p(θ|𝒟).

4.6.2.1. Правдоподобие Бернулли
Мы предполагаем, что данные независимы и одинаково распределены. По‑
этому правдоподобие имеет вид
(4.109)
где N1 = åNn=1 𝕀(yn = 1) и N0 = åNn=1 𝕀(yn = 0) – количество выпадений орла
и решки соответственно. Эти числа называются достаточными статистиками данных, поскольку это все, что необходимо знать о 𝒟 для вывода θ. Сумма
N = N0 + N1 называется размером выборки.

4.6.2.2. Биномиальное правдоподобие
Можно также рассмотреть модель биномиального правдоподобия, в которой
мы производим N испытаний и наблюдаем число выпадений орла y, а не по‑
следовательность подбрасываний монеты. Тогда правдоподобие имеет вид:
(4.110)

Масштабный коэффициент

не зависит от θ, поэтому его можно про‑

игнорировать. Таким образом, это правдоподобие пропорционально прав‑
доподобию Бернулли (4.109), так что вывод θ одинаков для обеих моделей.

Tlgm: @it_boooks

Байесовские статистики  181

4.6.2.3. Априорное распределение
Чтобы упростить вычисления, будем предполагать, что априорное распре‑
деление p(θ) Î ℱ является сопряженным априорным для функции правдопо‑
добия p(y|θ). Это означает, что апостериорное распределение принадлежит
тому же параметрическому семейству, что априорное, т. е. p(θ|𝒟) Î ℱ.
Чтобы это свойство выполнялось при использовании правдоподобия Бер‑
нулли (или биномиального), мы должны использовать априорное распреде‑
ление вида:
(4.111)
В этом выражении нетрудно узнать функцию плотности вероятности бетараспределения (см. раздел 2.7.4).

4.6.2.4. Апостериорное распределение
Если умножить правдоподобие Бернулли (4.109) на априорное бета-распре‑
деление (2.136), то получится апостериорное бета-распределение:
(4.112)
(4.113)
(4.114)
где
+ N1 и
+ N0 – параметры апостериорного распределения.
Апостериорное распределение имеет такую же функциональную форму, как
априорное, поэтому можно заключить, что бета-распределение является со‑
пряженным априорным правдоподобию Бернулли.
Параметры априорного распределения называются гиперпараметрами.
Ясно, что (в этом примере) гиперпараметры играют такую же роль, как до‑
статочные статистики, поэтому их называют псевдосчетчиками. Мы видим,
что для вычисления апостериорного распределения нужно просто сложить
наблюдаемые счетчики (из функции правдоподобия) и псевдосчетчики (из
априорного распределения).
Сила априорного распределения управляется величиной = + , кото‑
рая называется эквивалентным размером выборки, потому что играет ту
же роль, что наблюдаемый размер выборки N = N0 + N1.

4.6.2.5. Пример
Пусть, например, = = 2. Это значит, что мы верим, что видели два орла
и две решки еще до наблюдения фактических данных; это очень слабо выра‑
женное предпочтение значению θ = 0.5. Что получается при использовании
такого априорного распределения, показано на рис. 4.10a. Мы видим, что
апостериорное распределение (синяя линия) – «компромисс» между апри‑
орным распределением (красная линия) и правдоподобием (черная линия).

Tlgm: @it_boooks

182  Статистика

(a)

(b)

Рис. 4.10  Обновление априорного бета-распределения в случае правдоподобия Бернулли с достаточными статистиками N1 = 4, N0 = 1. (a) Априорное
распределение Beta(2,2). (b) Равномерное априорное распределение Beta(1,1).
Построено программой по адресу figures.probml.ai/book1/4.10

Если положить =
будет равномерным:

= 1, то соответствующее априорное распределение

p(θ) = Beta(θ|1, 1) µ θ0(1 - θ)0 = Unif(θ|0, 1).

(4.115)

Результат выбора такого априорного распределения показан на рис. 4.10b.
Мы видим, что апостериорное распределение имеет точно такую же форму,
как правдоподобие, так как априорное распределение было «неинформативным».

4.6.2.6. Апостериорная мода (оценка MAP)
Наиболее вероятное значение параметра дает оценка MAP:
(4.116)
(4.117)
(4.118)
Можно показать, что это выражение равно:
(4.119)
Если в качестве априорного распределения взять Beta(θ|2, 2), то это сво‑
дится к сглаживанию прибавлением единицы:
(4.120)
Если в качестве априорного распределения взять равномерное p(θ) µ 1, то
оценка MAP совпадает с MLE, потому что log p(θ) = 0:

Tlgm: @it_boooks

Байесовские статистики  183

(4.121)
При использовании в качестве априорного равномерного бета-распреде‑
ления с = = 1 оценка MAP сводится к MLE:
(4.122)
Если N1 = 0, то мы получим оценку p(Y = 1) = 0.0, которая означает, что
в будущем мы не предсказываем ни одного наблюдения, равного 1. Такая экс‑
тремальная оценка вызвана недостаточностью данных. Эту проблему можно
решить, воспользовавшись оценкой MAP с более сильным априорным рас‑
пределением или приняв полностью байесовский подход, при котором θ не
оценивается, а исключается путем маргинализации, как было объяснено
в разделе 4.6.2.9.

4.6.2.7. Апостериорное среднее
Апостериорная мода может давать плохую сводную информацию о распреде‑
лении, потому что соответствует всего одной точке. Апостериорное среднее
дает более робастную оценку, потому что вычисляется по всему пространству.
Если p(θ|𝒟) = Beta(θ| , ), то апостериорное среднее равно:
(4.123)
где = + – сила (эквивалентный размер выборки) апостериорного рас‑
пределения.
Теперь мы покажем, что апостериорное среднее равно выпуклой комби‑
+ – сила априорного рас‑
нации априорного среднего, m = / (где
пределения) и MLE: θ̂ mle = N1/N:

(4.124)
где λ = / – отношения априорного эквивалентного размера выборки
к апостериорному. Таким образом, чем слабее априорное распределение,
тем меньше λ и тем, следовательно, ближе апостериорное среднее к MLE.

4.6.2.8. Апостериорная дисперсия
Чтобы уловить неопределенность оценки, обычно вычисляют стандартную
ошибку оценки, которая является не чем иным, как стандартным отклоне‑
нием апостериорного распределения:

Tlgm: @it_boooks

184  Статистика
(4.125)
Для модели Бернулли мы показали, что апостериорным является бета-рас‑
пределение. Дисперсия апостериорного бета-распределения равна:
(4.126)
где

=

+ N1 и

=

+ N0. Если N ≫

+ , то это выражение упрощается:
(4.127)

где θ̂ – оценка максимального правдоподобия, MLE. Следовательно, стан‑
дартная ошибка равна:
(4.128)
Мы видим, что неопределенность уменьшается со скоростью 1/
. Так‑
же видно, что неопределенность (дисперсия) достигает максимума, когда
θ̂ = 0.5, и минимума, когда θ̂ близко к 0 или к 1. Это и понятно, потому что
проще удостовериться в том, что монета несимметрична, чем в том, что она
симметрична.

4.6.2.9. Апостериорное прогнозное распределение
Предположим, что требуется предсказать будущие наблюдения. Очень распро‑
страненный подход – сначала вычислить оценку параметров на основе обучаю‑
щих данных, θ̂(𝒟), а затем подставить эти параметры в модель и использовать
p(y|θ̂) для предсказания будущего; это называется подстановочной аппроксимацией (plug-in approximation). Но иногда при этом возможно переобуче‑
ние. Например (это крайний случай), предположим, что мы наблюдали подряд
N = 3 выпадений орла. Тогда MLE равна θ̂ = 3/3 = 1. Однако если использовать
эту оценку, то следовало бы предсказать, что выпадение решки невозможно.
Возможное решение – вычислить оценку MAP и подставить ее, как обсуж‑
далось в разделе 4.5.1. Здесь мы обсудим полностью байесовское решение,
в котором θ исключается путем маргинализации.

Модель Бернулли
Для модели Бернулли результирующее апостериорное прогнозное распре‑
деление имеет вид:
(4.129)
(4.130)

Tlgm: @it_boooks

Байесовские статистики  185

В разделе 4.5.1 мы должны были использовать априорное распределение
Beta(2,2), чтобы прийти к сглаживанию прибавлением единицы, но такое
априорное распределение неестественно. При байесовском подходе мы мо‑
жем добиться того же эффекта, воспользовавшись равномерным априорным
распределением p(θ) = Beta(θ|1, 1), поскольку прогнозное распределение
принимает вид:
(4.131)
Это называется правилом следования Лапласа. На рис. 4.11 приведена
его иллюстрация в последовательной формулировке.

Рис. 4.11  Последовательное байесовское обновление
для модели бета-Бернулли. Каждый цветной квадратик
представляет прогнозное распределение p(xt |ht ), где ht =
(N1,t , N0,t ) – достаточная статистика, выведенная на основе
истории наблюдений до момента t, а именно общего числа выпадений орла и решки. Вероятность выпадения орла
(синяя полоса) равна p(xt = 1|ht ) = (N1,t + 1) = (t + 2) в предположении, что мы начинали с равномерного априорного
бета-распределения Beta(θ|1, 1). На основе рис. 3 из работы
[Ort+19]. Печатается с разрешения Педро Ортега

Биномиальная модель
Теперь предположим, что требуется предсказать, сколько раз выпадет орел
при M > 1 будущих подбрасываниях монеты, т. е. используется биномиальная
модель, а не модель Бернулли. Апостериорное распределение θ такое же, как
раньше, но апостериорное прогнозное распределение другое:
(4.132)
(4.133)

Tlgm: @it_boooks

186  Статистика
В этом интеграле мы узнаем нормировочную постоянную для распреде‑
ления Beta( + y, M - y + ). Поэтому
(4.134)
Таким образом, мы получаем, что апостериорное прогнозное распределе‑
ние является (составным) бета-биномиальным и описывается следующей
формулой:
(4.135)
На рис. 4.12a показана плотность апостериорного прогнозного распре‑
деления для M = 10 после наблюдения N1 = 4 выпадений орла и N0 = 1 вы‑
падений решки при равномерном априорном распределении Beta(1,1). На
рис. 4.12b показана подстановочная аппроксимация:
(4.136)
(4.137)
где θ̂ – оценка MAP. Глядя на рис. 4.12, мы видим, что у байесовского пред‑
сказания более длинные хвосты, т. е. масса вероятности размазана по более
широкой области, а значит, модель менее подвержена переобучению и па‑
радоксам типа черного лебедя. (Отметим, что в обоих случаях априорное
распределение равномерно, так что различие обусловлено не выбором апри‑
орного распределения, а тем фактом, что при байесовском подходе неиз‑
вестные параметры исключаются путем интегрирования при выполнении
предсказаний.)

(a)

(b)

Рис. 4.12  (a) Апостериорные прогнозные распределения для 10 будущих испытаний
после наблюдения N1 = 4 выпадений орла и N0 = 1 выпадений решки. (b) Подстановочная
аппроксимация по тем же данным. В обоих случаях используется равномерное априорное распределение. Построено программой по адресу figures.probml.ai/book1/4.12

Tlgm: @it_boooks

Байесовские статистики  187

4.6.2.10. Маргинальное правдоподобие
Маргинальное правдоподобие модели ℳ определяется как:

(4.138)

При выводе параметров конкретной модели мы можем игнорировать этот
член, потому что он не зависит от θ. Однако эта величина играет важную роль
при выборе модели, о чем мы будем говорить в разделе 5.2.2. Она также по‑
лезна для оценивания гиперпараметров на основе данных (этот подход назы‑
вается эмпирическим байесовским оцениванием); это тема раздела 4.6.5.3.
В общем случае вычислить маргинальное правдоподобие трудно. Но в слу‑
чае бета-бернуллиевой модели оно пропорционально отношению апосте‑
риорной нормировочной постоянной к априорной. Чтобы убедиться в этом,
вспомним, что апостериорное распределение бета-биномиальной модели
имеет вид p(θ|𝒟) = Beta(θ|a¢, b¢), где a¢ = a + N1, b¢ = b + N0. Мы знаем, что
нормировочная постоянная апостериорного распределения равна B(a¢, b¢).
Следовательно,
(4.139)
(4.140)
(4.141)
Поэтому
(4.142)

(4.143)
Маргинальное правдоподобие бета-бернуллиевой модели такое же, как
и раньше, только отсутствует член

.

4.6.2.11. Смеси сопряженных априорных распределений
Бета-распределение является сопряженным априорным для биномиального
правдоподобия, что, как мы видели, позволяет легко вычислить апостериор‑
ное распределение в замкнутой форме. Однако это априорное распределе‑
ние довольно ограничительно. Например, предположим, что требуется пред‑
сказать исход подбрасывания монеты в казино, и мы полагаем, что монета
с равным успехом может быть как симметричной, так и асимметричной,

Tlgm: @it_boooks

188  Статистика
смещенной в сторону более частого выпадения орла. Это предположение
нельзя представить априорным бета-распределением. По счастью, его можно
представить смесью бета-распределений. Например, можно было бы взять
p(θ) = 0.5 Beta(θ|20, 20) + 0.5 Beta(θ|30, 10).

(4.144)

Если θ выбирается из первого распределения, то монета симметрична,
а если из второго, то орел выпадает чаще.
Смесь можно представить, введя латентную индикаторную переменную
h, где h = k означает, что θ выбирается из k-й компоненты смеси. Априорное
распределение имеет вид
(4.145)
где каждое p(θ|h = k) сопряженное, а p(h = k) называются (априорными) веса‑
ми смеси. Можно показать (упражнение 4.6), что апостериорное распреде‑
ление также может быть записано в виде смеси сопряженных распределений
следующим образом:
(4.146)
где p(h = k|𝒟) – апостериорные веса смеси:
(4.147)
Здесь величина p(𝒟|h = k) – маргинальное правдоподобие k-й компоненты
смеси (см. раздел 4.6.2.10).
Вернемся к примеру выше. Если имеется априорное распределение (4.144)
и мы наблюдаем N1 = 20 выпадений орла и N0 = 10 выпадений решки, то по
формуле (4.143) апостериорное распределение имеет вид:
p(θ|𝒟) = 0.346 Beta(θ|40, 30) + 0.654 Beta(θ|30, 20).

(4.148)

Смотрите иллюстрацию на рис. 4.13.
Мы можем вычислить апостериорную вероятность смещения монеты
в сторону орла следующим образом:
(4.149)
В случае единственного априорного распределения Beta(20,20) мы полу‑
чили бы чуть меньшее значение Pr(θ > 0.5|𝒟) = 0.8858. Так что, если бы мы
изначально подозревали, что казино может использовать асимметричную
монету, то подтвердить свои опасения могли бы быстрее, чем если бы под‑
ходили непредвзято.

Tlgm: @it_boooks

Байесовские статистики  189

Рис. 4.13  Смесь двух бета-распределений.
Построено программой по адресу figures.probml.ai/book1/4.13

4.6.3. Дирихле-мультиномиальная модель
В этом разделе мы обобщим результаты из раздела4.6.2, перейдя от би‑
нарных случайных величин (например, подбрасывание монеты) к K-арным
(например, бросание кости).

4.6.3.1. Правдоподобие
Пусть Y ~ Cat(θ) – дискретная случайная величина, выбранная из категори‑
ального распределения. Правдоподобие описывается формулой:
(4.150)
где Nc = ån 𝕀(yn = c).

4.6.3.2. Априорное распределение
Сопряженным априорным к категориальному распределению является распределение Дирихле – многомерное обобщение бета-распределения. Но‑
сителем его является вероятностный симплекс, определенный следующим
образом:
(4.151)
Функция плотности распределения Дирихле имеет вид:
(4.152)

Tlgm: @it_boooks

190  Статистика
где B( ) – многомерная бета-функция:
(4.153)
На рис. 4.14 изображено несколько графиков плотности распределения
Дирихле при K = 3. Мы видим, что = åk k определяет силу распределения
(выраженность его пика), а k – местоположение пика. Например, Dir(1, 1, 1) –
равномерное распределение, Dir(2, 2, 2) – широкое распределение с центром
в точке (1/3, 1/3, 1/3), а Dir(20, 20, 20) – узкое распределение с центром в точке
(1/3, 1/3, 1/3). Dir(3, 3, 20) – асимметричное распределение, плотность кото‑
рого сосредоточена в одном из углов. Если k < 1 для всех k, то мы получаем
пики в узлах симплекса. Выборка из распределения с k < 1 будет разрежен‑
ной, как показано на рис. 4.15.

(a)

(b)

(c)

(d)

Рис. 4.14  (a) Распределение Дирихле при K = 3 определяет распределение
на симплексе, которое можно представить тетраэдром. Точки на поверхности
тетраэдра удовлетворяют условиям 0 £ θk £ 1 и å3k=1 θk = 1. Построено программой по адресу figures.probml.ai/book1/4.14. (b) График плотности распределения Дирихле для = (20, 20, 20). (c) График плотности распределения Дирихле
для = (3, 3, 20). (d) График плотности распределения Дирихле для = (0.1, 0.1,
0.1). Построено программой по адресу figures.probml.ai/book1/4.14

Tlgm: @it_boooks

Байесовские статистики  191

(a)

(b)

Рис. 4.15  Выборка из 5-мерного симметричного распределения Дирихле
для различных значений параметров. (a) = (0.1, 0.1, 0.1). Это приводит к очень
разреженным распределениям со многими нулями. (b) = (1, …, 1). Это приводит
к более равномерным (и плотным) распределениям. Построено программой по
адресу figures.probml.ai/book1/4.15

4.6.3.3. Апостериорное распределение
Мы можем объединить мультиномиальное правдоподобие и априорное рас‑
пределение Дирихле и вычислить апостериорное распределение следующим
образом:
(4.154)
(4.155)
(4.156)
(4.157)
где k = k + Nk – параметры апостериорного распределения. Как видно,
апостериорное распределение можно вычислить, прибавив эмпирические
счетчики к априорным.
Среднее апостериорного распределения равно:
(4.158)
Мода апостериорного распределения, соответствующая оценке MAP, равна:
(4.159)
Если взять k, соответствующие равномерному априорному распределе‑
нию, то оценка MAP превращается в MLE:
(4.160)
(Более прямой вывод этого результата см. в разделе 4.2.4.)

Tlgm: @it_boooks

192  Статистика

4.6.3.4. Апостериорное прогнозное распределение
Апостериорное прогнозное распределение описывается формулой:
(4.161)
(4.162)
Иначе говоря,


p(y|𝒟) = Cat(y|θ ),

(4.163)



где θ 𝔼[θ|𝒟] – параметры апостериорного среднего. Если вместо этого под‑
ставить оценку MAP, то мы получим неприятную проблему нулевого счетчи‑
ка. Единственный способ получить такой же эффект, как при сглаживании
прибавлением единицы, – использовать оценку MAP с с = 2.
Формула (4.162) дает вероятность одиночного будущего события при ус‑
ловии прошлых наблюдений y = (y1, …, yN). Иногда мы хотим знать вероят‑
ность наблюдения группы будущих данных, скажем y = (y 1, …, y M). Ее можно
вычислить следующим образом:
(4.164)
В знаменателе находится маргинальное правдоподобие обучающих дан‑
ных, а в числителе – маргинальное правдоподобие обучающих и будущих
тестовых данных. Как вычислить эти маргинальные правдоподобия, мы об‑
судим в разделе 4.6.3.5.

4.6.3.5. Маргинальное правдоподобие
Рассуждая так же, как в разделе 4.6.2.10, можно показать, что маргинальное
правдоподобие для Дирихле-категориальной модели имеет вид:
(4.165)
где
(4.166)
Следовательно, приведенный выше результат можно переписать в форме,
которая обычно встречается в литературе:
(4.167)

Tlgm: @it_boooks

Байесовские статистики  193

4.6.4. Гауссова-гауссова модель
В этом разделе мы выведем апостериорное распределение параметров га‑
уссова распределения. Для простоты будем предполагать, что дисперсия из‑
вестна (общий случай рассматривается во втором томе этой книги, а также
в других стандартных учебниках по байесовской статистике).

4.6.4.1. Одномерный случай
Если σ2 – известная постоянная, то правдоподобие μ имеет вид:
(4.168)
Можно показать, что сопряженное априорное распределение тоже являет‑
ся гауссовым, 𝒩(μ| , 2). Применяя формулу Байеса для гауссовых распреде‑
лений, как в разделе 4.6.4.1, находим, что соответствующее апостериорное
распределение описывается формулой:
(4.169)
(4.170)

(4.171)
где
(1/N)åNn=1 yn – эмпирическое среднее.
Этот результат будет проще понять, если работать в терминах параметров
точности, т. е. величин, обратных дисперсии. Именно, пусть κ = 1/σ2 – точ‑
ность наблюдения, а = 1/ 2 – точность априорного распределения. Тогда
можно переписать апостериорное распределение следующим образом:
(4.172)
(4.173)
(4.174)
Эти формулы интуитивно понятны: апостериорная точность равна апри‑
орной точности плюс N единиц измерения точности κ. А апостериорное
среднее является выпуклой комбинацией эмпирического среднего и апри‑
орного среднего . Отсюда ясно, что апостериорное среднее – компромисс
между эмпирическим и априорным средним. Если априорное среднее сла‑
бое, по сравнению с силой сигнала ( мало по сравнению с κ), то мы назна‑
чаем больший вес эмпирическому среднему. А если априорное среднее силь‑

Tlgm: @it_boooks

194  Статистика
ное, по сравнению с силой сигнала ( велико по сравнению с κ), то больший
вес назначается априорному среднему. Это показано на рис. 4.16. Заметим
также, что апостериорное среднее записывается в терминах Nκ , поэтому
наличие N измерений с точностью κ каждое эквивалентно наличию одного
измерения со значением точностью Nκ.

(a)

(b)

Рис. 4.16  Вывод среднего одномерного гауссова распределения с известным σ2 при наличии наблюдения y = 3. (a) Используется сильное априорное распределение p(μ) = 𝒩(μ|0, 1). (b) Используется слабое априорное распределение
p(μ) = 𝒩(μ|0, 5). Построено программой по адресу figures.probml.ai/book1/4.16

Апостериорное распределение после наблюдения N = 1 примера

Чтобы лучше прочувствовать эти формулы, рассмотрим апостериорное рас‑
пределение после наблюдения единственной точки y (т. е. N = 1). Тогда апосте‑
риорное среднее можно записать следующими эквивалентными способами:
(4.175)
(4.176)
(4.177)
В первом случае мы имеем выпуклую комбинацию априорного среднего
и данных, во втором – априорное среднее, сдвинутое в сторону данных y,
а в третьем – данные, сдвинутые к априорному среднему, это называется
оценкой усадки. Будет проще, если мы определим вес w = / , т. е. отношение
априорной точности к апостериорной. Тогда
(4.178)
Заметим, что для гауссова распределения апостериорное среднее совпа‑
дает с апостериорной модой. Поэтому мы можем использовать эти формулы
для вычисления оценки MAP. Простой пример см. в упражнении 4.2.

Tlgm: @it_boooks

Байесовские статистики  195

Апостериорная дисперсия
Помимо апостериорного среднего или моды μ, нас может интересовать апо‑
стериорная дисперсия, дающая степень уверенности в нашей оценке. Квадратный корень из нее называется стандартной ошибкой среднего:
(4.179)
Предположим, что мы используем неинформативное априорное распреде‑
ление для μ, положив = 0 (см. раздел 4.6.5.1). В этом случае апостериорное
среднее равно MLE, = . Дополнительно предположим, что σ2 аппроксими‑
руется выборочной дисперсией:
(4.180)
Отсюда
вид:

так что стандартная ошибка среднего принимает

(4.181)
Таким образом, мы видим, что неопределенность μ убывает со скоростью
.
Кроме того, мы можем воспользоваться тем фактом, что 95 % массы гаус‑
сова распределения сосредоточено в интервале шириной 2 стандартных от‑
клонения вокруг среднего, который аппроксимирует 95%-ный байесовский
доверительный интервал μ:

1/

(4.182)

4.6.4.2. Многомерный случай
Для D-мерных данных правдоподобие имеет вид:
(4.183)
(4.184)
(4.185)
где = 1/N åNn=1 yn. Таким образом, мы можем заменить множество наблю‑
дений их средним и поделить ковариацию на N.
Для простоты будем использовать сопряженное априорное распределение,
которое в данном случае является гауссовым, а именно:

Tlgm: @it_boooks

196  Статистика
(4.186)
Мы можем вывести апостериорное гауссово распределение μ, опираясь на
результаты из раздела 3.3.1. Получаем
(4.187)
(4.188)
.

(4.189)

На рис. 4.17 приведен пример в двумерном случае.

(a)

(b)

(c)

Рис. 4.17  Байесовский вывод для среднего двумерного гауссова распределения. (a) Данные выбираются из распределения yn ∼ 𝒩(μ, Σ), где μ = [0.5, 0.5]⟙
и Σ = 0.1[2, 1; 1, 1]. (b) Априорное распределение имеет вид p(μ) = 𝒩(μ|0, 0.1I2).
(c) Показано апостериорное распределение после наблюдения 10 точек. Построено программой по адресу figures.probml.ai/book1/4.17

4.6.5. За пределами сопряженных априорных
распределений
Мы видели различные примеры сопряженных априорных распределений,
и все они принадлежали экспоненциальному семейству (см. раздел 3.4). Пре‑
имуществом этих априорных распределений является простота интерпрета‑
ции (в терминах достаточных статистик на основе виртуального априорного
набора данных) и простота вычислений. Однако для большинства моделей
в экспоненциальном семействе не существует априорного распределения,
сопряженного правдоподобию. Более того, даже если такое сопряженное
априорное распределение существует, предположение о сопряженности мо‑
жет оказаться чрезмерно ограничительным. Поэтому в следующих разделах
мы кратко обсудим другие виды априорных распределений.

Tlgm: @it_boooks

Байесовские статистики  197

4.6.5.1. Неинформативные априорные распределения
Если мы ничего или почти ничего не знаем о предметной области, то же‑
лательно использовать неинформативное, или объективное априорное
распределение, чтобы «данные говорили сами за себя». Например, если мы
хотим вывести вещественную величину, скажем параметр сдвига μ Î ℝ, то
можем использовать плоское априорное распределение p(μ) µ 1. Его мож‑
но рассматривать как «бесконечно широкое» гауссово распределение.
К сожалению, неинформативное распределение не единственно, и все они
на самом деле кодируют какие-то знания. Поэтому лучше использовать тер‑
мин диффузное, минимально информативное или подразумеваемое
по умолчанию априорное распределение. Дополнительные сведения см. во
втором томе этой книги.

4.6.5.2. Иерархические априорные распределения
Байесовские модели требуют априорного распределения параметров p(θ).
Параметры априорного распределения называются гиперпараметрами
и обозначаются ϕ. Если они неизвестны, то можно задать для них априор‑
ное распределение; тем самым определяется иерархическая байесовская
модель, или многоуровневая модель, которую можно визуализировать
следующим образом: ϕ ® θ ® 𝒟. Мы предполагаем, что априорное распре‑
деление гиперпараметров фиксировано (т. е. можно использовать какое-то
минимально информативное априорное распределение), так что совместное
распределение имеет вид:
p(ϕ, θ, 𝒟) = p(ϕ)p(θ|ϕ)p(𝒟|θ).

(4.190)

Мы надеемся, что сможем обучить гиперпараметры, рассматривая сами
параметры как данные. Это полезно, когда имеется несколько взаимосвя‑
занных параметров, подлежащих оцениванию (например, взятых из раз‑
личных частей генеральной совокупности или из нескольких задач); это
подает обучающий сигнал верхнему уровню модели. Детали см. во втором
томе, [Mur22].

4.6.5.3. Эмпирические априорные распределения
В разделе 4.6.5.2 мы обсудили иерархические байесовские модели как способ
вывода параметров из данных. К сожалению, вывод апостериорного распре‑
деления в таких моделях может столкнуться с вычислительными трудностя‑
ми. В этом разделе мы обсудим вычислительно удобную аппроксимацию,
в которой сначала вычисляется точечная оценка гиперпараметров ϕ̂, а затем
вычисляется условное апостериорное распределение, p(θ|ϕ̂, 𝒟), а не совмест‑
ное апостериорное распределение, p(θ, ϕ|𝒟).
Для оценивания гиперпараметров мы можем максимизировать марги‑
нальное правдоподобие:
(4.191)

Tlgm: @it_boooks

198  Статистика
Этот метод называется оценкой максимального правдоподобия типа II,
поскольку оптимизируются гиперпараметры, а не сами параметры. Оценив
ϕ̂, мы можем вычислить апостериорное распределение p(θ|ϕ̂, 𝒟) обычным
образом.
Поскольку параметры априорного распределения оцениваются по дан‑
ным, этот подход называется эмпирическим байесовским (EB) [CL96]. Он
нарушает принцип, согласно которому априорное распределение следует
выбирать независимо от данных. Однако его можно рассматривать как вы‑
числительно недорогую аппроксимацию вывода в полной иерархической
байесовской модели, точно так же как оценка MAP рассматривалась в каче‑
стве аппроксимации вывода в одноуровневой модели θ ® 𝒟. На самом деле
можно построить иерархию, при которой чем длиннее интеграл, тем «более
байесовской» является модель (см. ниже).
Метод

Определение

Максимальное правдоподобие

θ̂

argmaxθ p(𝒟|θ)

Оценка MAP

θ̂

argmaxθ p(𝒟|θ)p(θ|ϕ)

ML-II (эмпирическая байесовская) ϕ̂

argmaxϕ p(𝒟|θ)p(θ|ϕ)dθ

MAP-II

ϕ̂

argmaxϕ p(𝒟|θ)p(θ|ϕ)p(ϕ)dθ

Полная байесовская

p(θ, ϕ|𝒟)

p(𝒟|θ)p(θ|ϕ)p(ϕ)

Заметим, что у ML-II меньше шансов оказаться переобученной, чем у «ре‑
гулярной» модели максимального правдоподобия, потому что обычно гипер‑
параметров ϕ меньше, чем параметров θ. Детали см. во втором томе.

4.6.6. Байесовские доверительные интервалы
Апостериорное распределение обычно является многомерным объектом,
который трудно визуализировать и с которым нелегко работать. Стандарт‑
ный способ обобщить такое распределение состоит в том, чтобы вычислить
точечную оценку, например апостериорное среднее или моду, а затем вы‑
числить байесовский доверительный интервал, который количественно
характеризует неопределенность этой оценки. (Байесовский доверительный
интервал (credible interval) не то же самое, что доверительный интервал
(confidence interval), который является понятием из частотной статистики
и обсуждается в разделе 4.7.4.)
Точнее, мы определим 100(1 - α)-процентный байесовский доверитель‑
ный интервал как непрерывную область C = (𝓁, u) (нижняя и верхняя грани‑
цы), в которой сосредоточено 1 - α массы апостериорной вероятности, т. е.:
Cα(𝒟) = (ℓ, u) : P(ℓ £ θ £ u|𝒟) = 1 - α.

(4.192)

Может существовать много интервалов, удовлетворяющих условию
(4.192), поэтому обычно мы выбираем такой, для которого в каждом хвосте
сосредоточена масса (1 - α)/2; он называется центральным интервалом.

Tlgm: @it_boooks

Байесовские статистики  199

Если апостериорное распределение имеет известную функциональную фор‑
му, то центральный интервал можно вычислить по формулам 𝓁 = F-1(α/2)
и u = F-1(1 - α/2), где F – функция апостериорного распределения, а F-1 –
обратная к ней. Например, если апостериорное распределение гауссово,
p(θ|𝒟) = 𝒩(0, 1) и α = 0.05, то имеем 𝓁 = Φ-1(α/2) = -1.96 и u = Φ-1(1 α/2) = 1.96, где Φ обозначает функцию гауссова распределения. Это показано
на рис. 2.2b и является обоснованием распространенной практики представ‑
ления байесовского доверительного интервала в виде μ ± 2σ, где μ – апосте‑
риорное среднее, σ – апостериорное стандартное отклонение, а 2 – хорошая
аппроксимация 1.96.
В общем случае вычислить обратную функцию апостериорного распре‑
деления зачастую бывает трудно. Тогда имеется простая альтернатива –
произвести выборку из апостериорного распределения и использовать ап‑
проксимацию Монте-Карло для вычисления апостериорных квантилей: мы
просто сортируем S примеров и берем тот, который оказался в позиции α/S
отсортированного списка. При S ® ¥ эта процедура сходится к истинному
квантилю (см. демонстрацию с помощью программы по адресу code.probml.
ai/book1/beta_credible_int_demo).
С центральными интервалами связана одна проблема: вне центрального
интервала могут существовать точки, в которых вероятность выше, чем во
внутренних точках, как показано на рис. 4.18a. Поэтому вводится альтерна‑
тивная величина – область наивысшей апостериорной плотности (highest
posterior density – HPD), т. е. множество точек, в которых вероятность превы‑
шает некоторый порог. Точнее, мы ищем порог p* такой, что
(4.193)
а затем определяем HPD:
Cα(𝒟) = {θ : p(θ|𝒟) ³ p*}.

(a)

(4.194)

(b)

Рис. 4.18  (a) Центральный интервал (CI) и (b) область наивысшей апостериорной плотности (HPD) для апостериорного распределения Beta(3,9). CI занимает
интервал (0.06, 0.52), а HPD – интервал (0.04, 0.48). На основе рис. 3.6 из работы
[Hof09]. Сгенерировано программой по адресу figures.probml.ai/book1/4.18

Tlgm: @it_boooks

200  Статистика
В одномерном случае область HPD иногда называют интервалом наивысшей плотности (highest density interval – HDI). Например, на рис. 4.18b по‑
казан 95%-ный HDI распределения Beta(3, 9), равный (0.04, 0.48). Мы видим,
что он уже центрального интервала, хотя все равно содержит 95 % массы;
кроме того, для любой точки внутри него плотность выше, чем для любой
внешней точки.
Для унимодального распределения HDI будет самым узким интервалом
вокруг моды, содержащим 95 % массы. Чтобы убедиться в этом, представьте
«заливку водой» наоборот, когда сначала все находится под водой, а потом
мы понижаем уровень, пока 95 % массы не окажется сверху и лишь 5 % под
водой. Эта метафора дает простой алгоритм вычисления HDI в одномерном
случае; просто найти такие точки, что интервал содержит 95 % массы и имеет
минимальную ширину. Это можно сделать с помощью методов одномерной
численной оптимизации, если известна обратная функция распределения,
или посредством поиска среди отсортированных примеров при наличии
выборки (см. код по адресу code.probml.ai/book1/betaHPD).
Если апостериорное распределение мультимодальное, то HDI может даже
не быть связной областью, см., например, рис. 4.19b. Однако искать обоб‑
щающие характеристики мультимодальных апостериорных распределений
всегда трудно.

(a)

(b)

Рис. 4.19  (a) Центральный интервал и (b) область HPD для гипотетического
мультимодального апостериорного распределения. На основе рис. 2.2 из работы [Gel+04]. Построено программой по адресу figures.probml.ai/book1/4.19

4.6.7. Байесовское машинное обучение
До сих пор мы имели дело с безусловными моделями вида p(y|θ). В машинном
обучении с учителем используются условные модели вида p(y|x, θ). Апостери‑
орное распределение параметров теперь имеет вид p(θ|𝒟), где 𝒟 = {(xn, yn) :
n = 1 … N}. Для вычисления этого апостериорного распределения можно
воспользоваться рассмотренными выше принципами. Этот подход называ‑
ется байесовским машинным обучением, поскольку мы «по-байесовски»
относимся к параметрам модели.

Tlgm: @it_boooks

Байесовские статистики  201

4.6.7.1. Подстановочная аппроксимация
Вычислив апостериорное распределение параметров, мы можем вычислить
апостериорное прогнозное распределение выходов при известных входах,
исключив неизвестные параметры путем маргинализации:
(4.195)
Конечно, вычисление этого интеграла чаще всего является вычислительно
неразрешимой задачей. Очень простая аппроксимация предполагает, что
существует единственная наилучшая модель, θ̂, например MLE. Это эквива‑
лентно аппроксимации апостериорного распределения бесконечно узким
и бесконечно высоким пиком в выбранной точке. Это можно записать сле‑
дующим образом:
(4.196)
где δ – дельта-функция Дирака (см. раздел 2.6.5). Если воспользоваться этой
аппроксимацией, то прогнозное распределение можно получить, просто
подставив точечную оценку в правдоподобие:
(4.197)
Это следует из фильтрующего свойства дельта-функции (формула (2.129)).
Подход, предлагаемый формулой (4.197), называется подстановочной аппроксимацией (plug-in approximation). Он эквивалентен стандартному под‑
ходу, применяемому в большей части машинного обучения, когда мы сначала обучаем модель (т. е. вычисляем точечную оценку θ̂), а затем используем
ее для предсказания. Однако стандартный (подстановочный) подход может
быть подвержен переобучению и излишней уверенности, как объяснялось
в разделе 1.2.3. Байесовский же подход избегает этих напастей благодаря
исключению параметров с помощью маргинализации, но это может дорого
стоить. К счастью, даже простые аппроксимации путем усреднения по не‑
скольким правдоподобным значениям параметров могут повысить качество.
Ниже будут приведены соответствующие примеры.

4.6.7.2. Пример: скалярный вход, бинарный выход
Пусть требуется выполнить бинарную классификацию, т. е. y Î {0, 1}. Будем
использовать модель вида
p(y|x, θ) = Ber(y|σ(w⟙x + b)),

(4.198)

где
(4.199)

Tlgm: @it_boooks

202  Статистика
– сигмоидная, или логистическая, функция, отображающая ℝ ® [0, 1],
а Ber(y|μ) – распределение Бернулли со средним μ (детали см. в разделе 2.4).
Иными словами,
(4.200)
Эта модель называется логистической регрессией. (Мы обсудим ее под‑
робнее в главе 10.)
Применим эту модель к задаче ответа на вопрос, относится ли ирис к типу
Setosa или Versicolor, yn Î {0, 1}, если известна длина чашелистика, xn. (Опи‑
сание набора данных об ирисах см. в разделе 1.2.1.1.)
Сначала обучим модель одномерной логистической регрессии вида
p(y = 1|x, θ) = σ(b + wx)

(4.201)

на наборе данных 𝒟 = {(xn, yn)}, применив оценку максимального правдопо‑
добия. (О том, как вычисляется MLE для этой модели, см. раздел 10.2.3.) На
рис. 4.20a показана подстановочная аппроксимация апостериорного про‑
гнозного распределения p(y = 1|x, θ̂), где θ̂ – MLE параметров. Мы видим, что
уверенность в принадлежности цветка типа Versicolor возрастает по мере
увеличения длины чашелистика; это представлено сигмоидной (S-образной)
логистической функцией.

(a)

(b)

Рис. 4.20  (a) Логистическая регрессия для классификации ирисов по типу
Versicolor (y = 1) или Setosa (y = 0) с использованием единственного входного признака x – длины чашелистика. Помеченные точки слегка разнесены по
вертикали, чтобы избежать чрезмерного наложения. Вертикальная прямая является решающей границей. Построено программой по адресу figures.probml.
ai/book1/4.20. (b) То же, что (a), но показано апостериорное распределение. На
основе рис. 4.4 из работы [Mar18]. Построено программой по адресу figures.
probml.ai/book1/4.20

Решающей границей по определению называется такое входное значение x*, для которого p(y = 1|x*; θ̂) = 0.5. Решая это уравнение, получаем:

Tlgm: @it_boooks

Байесовские статистики  203

(4.202)
(4.203)
(4.204)
На рис. 4.20a видно, что x* ≈ 5.5 см.
Однако описанный подход не позволяет смоделировать неопределенность
нашей оценки параметров, а значит, игнорирует индуцированную неопреде‑
ленность выходных вероятностей и положения решающей границы. Чтобы
отразить эту дополнительную неопределенность, мы можем применить бай‑
есовский подход и аппроксимировать апостериорное распределение p(θ|𝒟)
(детали см. в разделе 10.5). Зная его, мы можем найти приближенное апо‑
стериорное прогнозное распределение с помощью аппроксимации МонтеКарло:
(4.205)
где θs ~ p(θ|𝒟) – выборка из апостериорного распределения. На рис. 4.20b
показаны графики среднего и 95%-го байесовского доверительного интер‑
вала этой функции. Мы видим, что теперь для каждого входного значения
имеется диапазон предсказанных вероятностей. Применив аппроксимацию
Монте-Карло, можно также вычислить распределение местоположения ре‑
шающей границы:
(4.206)
где (bs, ws) = θs. 95%-ный байесовский доверительный интервал для этого
распределения представлен широкой вертикальной полосой на рис. 4.20b.
Хотя такое тщательное моделирование неопределенности в данном при‑
ложении не особенно обязательно, оно может быть важно в приложениях,
связанных с рисками, например в здравоохранении и финансах. Мы обсудим
это в главе 5.

4.6.7.3. Пример: бинарный вход, скалярный выход
Теперь рассмотрим задачу о предсказании времени доставки бандероли,
y Î ℝ, компаниями A и B. Идентификатор компании можно представить
бинарным признаком x Î {0, 1}, где x = 0 означает компанию A, а x = 1 – ком‑
панию B. Будем использовать для решения этой задачи следующую дискри‑
минантную модель:
p(y|x, θ) = 𝒩(y|μx, σx2),

(4.207)

Tlgm: @it_boooks

204  Статистика
где 𝒩(y|μ, σ2) – гауссово распределение

(4.208)

а θ = (μ0, μ1, σ0, σ1) – параметры модели. Эту модель можно обучить, применив
оценку максимального правдоподобия, как было описано в разделе 4.2.5;
альтернативно можно применить байесовский подход, рассмотренный в раз‑
деле 4.6.4.
Преимущество байесовского подхода в том, что, улавливая неопределен‑
ность параметров θ, мы также улавливаем неопределенность наших предска‑
заний p(y|x, 𝒟), тогда как подстановочная аппроксимация p(y|x, θ̂) не включа‑
ет эту неопределенность. Например, предположим, что мы воспользовались
услугами каждой компании всего по одному разу, так что обучающий набор
имеет вид 𝒟 = {(x1 = 0, y1 = 15), (x2 = 1, y2 = 20)}. Как было показано в разде‑
ле 4.2.5, MLE среднего совпадает с эмпирическим средним, μ̂ 0 = 15 и μ̂ 1 = 20,
но MLE стандартного отклонения будет равно нулю, σ̂ 0 = σ̂ 1 = 0, так как име‑
ется лишь один пример из каждого «класса». В результате подстановочное
предсказание вообще не улавливает неопределенность.
Чтобы понять, почему моделирование неопределенности так важно, рас‑
смотрим рис. 4.21. Мы видим, что ожидаемое время доставки (ETA) для ком‑
пании A меньше, чем для компании B, однако дисперсия распределения A
выше, что делает ее выбор рискованным, если нам нужна уверенность в том,
что бандероль прибудет вовремя. (Дополнительные сведения о выборе опти‑
мальных действий в условиях неопределенности см. в главе 5.)

Рис. 4.21  Распределение времени доставки для двух транспортных компаний. ETA – ожидаемое время прибытия. Распределение для A имеет более высокую неопределенность, так что выбор этой компании сулит большие риски.
Взято из статьи https://bit.ly/39bc4XL. Печатается с разрешения Брендана Хаса

Конечно, это нереалистичный пример, потому что мы взяли всего по одно‑
му примеру для каждой транспортной компании. Но такого рода проблемы
встречаются и при наличии нескольких примеров входов определенного

Tlgm: @it_boooks

Байесовские статистики  205

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

4.6.7.4. Вертикальное масштабирование
Оба описанных выше примера были очень простыми: одномерный вход
и выход и всего 2–4 параметра. В большинстве встречающихся на практике
задач входные данные многомерные, выходные тоже иногда многомерные,
поэтому количество параметров моделей велико. К сожалению, вычисление
апостериорного распределения p(θ|𝒟) и апостериорного прогнозного рас‑
пределения p(y|x, 𝒟) для многих моделей сталкивается с вычислительными
трудностями. Мы обсудим эту проблему в разделе 4.6.8.

4.6.8. Вычислительные трудности
Если известны правдоподобие p(𝒟|θ) и априорное распределение p(θ), то
апостериорное распределение p(θ|𝒟) можно вычислить по формуле Байе‑
са. Однако это вычисление обычно практически неосуществимо, если не
считать простых частных случаев, например сопряженных моделей (раз‑
дел 4.6.1) или моделей, в которых все латентные переменные берутся из
небольшого конечного множества допустимых значений. Поэтому апосте‑
риорное распределение необходимо аппроксимировать. Существует много
методов приближенного апостериорного вывода, отличающихся тем,
чему отдается предпочтение: верности, простоте или скорости. Ниже мы
кратко опишем некоторые алгоритмы, а детали оставим до второго тома,
[Mur22] (см. также работу [MFR20], где приведен обзор методов приближен‑
ного вывода, начиная с оригинального метода Байеса, датируемого 1763
годом).
В качестве сквозного примера будем использовать задачу аппроксимации
апостериорного распределения в бета-бернуллиевой модели. Точнее, наша
цель – аппроксимировать
(4.209)
где 𝒟 содержит 10 выпадений орла и 1 выпадение решки (общее число на‑
блюдений N = 11), а априорное распределение равномерное. В данном слу‑
чае апостериорное распределение можно вычислить точно (см. рис. 4.22)
с помощью метода из раздела 4.6.2, но у этого примера имеется полезная
педагогическая задача – сравнить аппроксимацию с точным ответом. Кро‑
ме того, поскольку целевое распределение одномерное, результаты легко
визуализировать. (Заметим, однако, что проблема не совсем тривиальна,
потому что апостериорное распределение сильно асимметрично вследствие
дисбаланса выборки: 10 орлов и 1 решка.)

Tlgm: @it_boooks

206  Статистика

(a)

(b)

Рис. 4.22  Аппроксимация апостериорного распределения бета-бернуллиевой модели. (a) Сеточная аппроксимация на сетке с 20 точками. (b) Аппроксимация Лапласа. Построено программой по адресу figures.probml.ai/book1/4.22

4.6.8.1. Сеточная аппроксимация
Простейший подход к аппроксимации вывода апостериорного распределе‑
ния – разбить пространство возможных значений неизвестных на конечное
множество θ1, …, θK, а затем аппроксимировать апостериорное распределе‑
ние полным перебором:
(4.210)
Это называется сеточной аппроксимацией. На рис. 4.22a этот метод по‑
казан применительно к нашей одномерной задаче. Как видим, он легко по‑
зволяет уловить асимметричность распределения. К сожалению, этот подход
не масштабируется на задачи размерности больше 2 или 3, потому что число
узлов сетки экспоненциально растет с увеличением числа измерений.

4.6.8.2. Квадратичная аппроксимация (Лапласа)
В этом разделе мы обсудим простой способ аппроксимации апостериорного
распределения с применением многомерного гауссова распределения; он
называется аппроксимацией Лапласа или квадратичной аппроксимацией (см., например, [TK86; RMC09]).
Для вывода запишем апостериорное распределение в следующем виде:
(4.211)
где Ψ(θ) = -log p(θ, 𝒟) называется функцией энергии, а Z = p(𝒟) – нормировочная постоянная. Раскладывая в ряд Тейлора в окрестности моды θ̂
(т. е. состояния с минимальной энергией), получаем

Tlgm: @it_boooks

Байесовские статистики  207

(4.212)
где g – градиент в точке моды, а H – гессиан. Поскольку θ̂ – мода, градиент
обращается в ноль. Следовательно,
(4.213)
(4.214)
(4.215)
Последняя строчка вытекает из нормировочной постоянной многомерно‑
го гауссова распределения.
Аппроксимацию Лапласа легко применять, потому что можно восполь‑
зоваться имеющимися алгоритмами оптимизации для вычисления оценки
MAP, а затем останется только вычислить гессиан в точке моды. (В много‑
мерных пространствах можно использовать диагональную аппроксимацию.)
На рис. 4.22b показано применение этого метода к нашей одномерной
задаче. К сожалению, аппроксимация получилась не особенно хорошей. Объ‑
ясняется это тем, что апостериорное распределение асимметрично, а гаус‑
сиана симметрична. Кроме того, интересующий нас параметр находится
в ограниченном интервале θ Î [0, 1], тогда как гауссово распределение пред‑
полагает неограниченное пространство θ Î ℝ. По счастью, вторую проблему
можно решить с помощью замены переменной. Например, в данном случае
можно применить аппроксимацию Лапласа к α = logit(θ). Это стандартный
прием для упрощения вывода.

4.6.8.3. Вариационная аппроксимация
В разделе 4.6.8.2 мы обсуждали аппроксимацию Лапласа, в которой для
нахождения оценки MAP используется процедура оптимизации, а затем
кривизна апостериорного распределения в этой точке аппроксимируется
с помощью гессиана. В этом разделе мы обсудим вариационный вывод
(variational inference – VI) – другой основанный на оптимизации подход
к выводу апостериорного распределения, обладающий гораздо большей
гибкостью с точки зрения моделирования (а потому дающий гораздо более
точную аппроксимацию).
В VI делается попытка аппроксимировать не поддающееся прямому вы‑
числению распределение вероятностей, например p(θ|𝒟), распределением,
допускающим вычисление, q(θ), так чтобы доставить минимум некоторому
расхождению D между распределениями:
(4.216)

Tlgm: @it_boooks

208  Статистика
где 𝒬 – вычислимое семейство распределений (например, многомерных га‑
уссовых). Если определить D как расхождение КЛ (см. раздел 6.2), то можно
будет вывести нижнюю границу логарифмического маргинального правдо‑
подобия; это величина называется вариационной нижней оценкой (evi‑
dence lower bound – ELBO). Максимизируя ELBO, мы можем улучшить каче‑
ство аппроксимации апостериорного распределения. Детали см. во втором
томе этой книги, [Mur22].

4.6.8.4. Аппроксимация методом Монте-Карло по схеме
марковских цепей
Хотя VI – быстрый метод на основе оптимизации, он может давать сме‑
щенную оценку апостериорного распределения, так как ограничен кон‑
кретной функциональной формой q Î 𝒬. Более гибкий подход – использо‑
вать непараметрическую аппроксимацию в терминах множества примеров,
Это называется аппроксимацией Монте-Карло

апостериорного распределения. Основная проблема – как эффективно про‑
извести выборку из апостериорного распределения θs ~ p(θ|𝒟), не прибегая
к вычислению нормировочной постоянной p(𝒟) = ò p(θ, 𝒟)dθ. Стандартный
подход к решению этой проблемы называется методом Монте-Карло по
схеме марковских цепей (Markov chain Monte Carlo – MCMC). Если допол‑
нить этот алгоритм основанной на градиенте информацией, выведенной из
Ñlog p(θ, 𝒟), то метод можно существенно ускорить; он называется гамильтоновым методом Монте-Карло (Hamiltonian Monte Carlo – HMC). Детали
см. во втором томе этой книги.

4.7. Частотная статистика*
Подход к статистическому выводу, описанный в разделе 4.6, называется бай‑
есовской статистикой. В нем параметры модели рассматриваются как любые
другие неизвестные случайные величины, и для вывода их из данных при‑
меняются правила теории вероятностей. Были предприняты попытки при‑
думать такие подходы к статистическому выводу, которые позволили бы
избежать трактовки параметров как случайных величин, а значит, избежать
использования априорных распределений и формулы Байеса. Этот альтер‑
нативный подход называется частотной статистикой, классической или
ортодоксальной статистикой.
Основная идея (формализованная в разделе 4.7.1) – представить неопре‑
деленность, вычислив, как будет изменяться величина, оцененная на основе
данных (например, параметр или предсказанная метка), если изменятся сами
данные. Именно эта вариативность при повторных испытаниях лежит в ос‑
нове моделирования неопределенности в рамках частотного подхода. Что же
касается байесовского подхода, то в нем вероятность рассматривается в тер‑
минах информации, а не повторных испытаний. Это позволяет вычислить

Tlgm: @it_boooks

Частотная статистика  209

вероятность однократных событий, о чем была сказано в разделе 2.1.1. Но,
быть может, еще важнее, что байесовский подход позволяет избежать некото‑
рых парадоксов, преследующих частотный подход (см. разделы 4.7.5 и 5.5.4).
Эти патологии заставили известного статистика Джорджа Бокса сказать:
Я полагаю, что было бы очень трудно убедить здравомыслящего чело‑
века в разумности современной [частотной] статистической практи‑
ки, но куда меньше трудностей возникло бы с объяснением подхода,
основанного на правдоподобии и теореме Байеса (Джордж Бокс, 1962
(цитируется по изданию [Jay76])).
Тем не менее знакомство с частотной статистикой полезно, потому что
она широко используется, а некоторые ее ключевые идеи имеет смысл знать
даже сторонникам байесовского подхода [Rub84].

4.7.1. Выборочное распределение
В частотной статистике неопределенность представляется не апостериор‑
ным распределением случайной величины, а выборочным распределением оценивателя (оба эти термина мы определим ниже).
Как объясняется в разделе о теории принятия решений 5.1, оцениватель –
это процедура, описывающая, какое действия предпринять на основе наблю‑
даемых данных. В контексте оценивания параметров, где действием являет‑
ся возврат вектора параметров, мы будем обозначать его θ̂ = π(𝒟). Например,
θ̂ могла бы быть оценкой максимального правдоподобия, оценкой MAP или
оценкой метода моментов.
Выборочным распределением оценивателя называется распределение
результатов, которое мы увидели бы, если бы применили оцениватель не‑
сколько раз к различным наборам данных, выбранным из некоторого рас‑
пределения; в контексте оценивания параметров это распределение оценки
θ̂, рассматриваемой как случайная величина, зависящая от случайной вы‑
борки 𝒟. Раскроем эту мысль. Представьте, что вы производите выборку из
S различных наборов данных размера N каждый, порожденных некоторой
истинной моделью p(x|θ*), и получаете
𝒟 (s) = {xn ~ p(xn|θ*) : n = 1 : N}.

(4.217)

Для краткости обозначим это соотношение 𝒟(s) ~ θ*. Применив оценива‑
тель к каждой выборке 𝒟(s), мы получим множество оценок, {θ̂(𝒟(s))}. Если
устремить S ® ¥, то распределение, индуцированное этим множеством,
и будет выборочным распределением оценивателя. Точнее, имеем
(4.218)
В некоторых случаях это выражение можно вычислить аналитически, и мы
обсудим это в разделе 4.7.2, но чаще приходится применять аппроксимацию
Монте-Карло (см. раздел 4.7.3).

Tlgm: @it_boooks

210  Статистика

4.7.2. Гауссова аппроксимация выборочного
распределения MLE
Чаще всего в качестве оценивателя применяется MLE. При большом размере
выборки выборочное распределение MLE для некоторых моделей становится
гауссовым. Это называется асимптотической нормальностью выборочно‑
го распределения. Формально имеет место следующий результат.
Теорема 4.7.1. Если параметры допускают идентификацию, то
p(π(𝒟 ) = θ̂|𝒟 ~ θ*) ® 𝒩(θ̂|θ*, (N F(θ*))-1),

(4.219)

где F(θ*) – информационная матрица Фишера, определенная формулой
(4.220).
Информационная матрица Фишера измеряет кривизну поверхности лога‑
рифмического правдоподобия в ее пике, что будет показано ниже.
Более формально информационная матрица Фишера (FIM) определя‑
ется как ковариация градиента логарифмического правдоподобия (называ‑
емого также функцией вклада):
(4.220)
Следовательно, элемент в позиции (i, j) имеет вид:
(4.221)
Можно доказать следующий результат.
Теорема 4.7.2. Если функция log p(x|θ) дважды дифференцируема, то при некоторых условиях регулярности FIM равна математическому ожиданию гессиана
NLL, т. е.
(4.222)
Таким образом, мы можем интерпретировать FIM как гессиан NLL.
Это поможет понять результат (4.219): функция логарифмического прав‑
доподобия с большой кривизной (большим гессианом) дает оценку с низкой
дисперсией, так как параметры «хорошо определены» данными и, следова‑
тельно, робастную относительно повторной выборки.

Tlgm: @it_boooks

Частотная статистика  211

4.7.3. Бутстрэпная аппроксимация выборочного
распределения любого оценивателя
В случаях, когда оцениватель является сложной функцией от данных (не
просто MLE) или размер выборки мал, мы можем аппроксимировать его
выборочное распределение с помощью метода Монте-Карло, называемого
бутстрэп.
Идея проста. Если бы мы знали истинные параметры θ*, то могли бы сге‑
нерировать (скажем, S) фиктивных наборов данных размера N каждый с ис‑
тинным распределением: 𝒟 (s) = {xn ~ p(xn|θ*) : n = 1 … N}. Затем мы могли
бы вычислить оцениватель на каждой выборке θ̂ s = π(𝒟 (s)) и использовать
эмпирическое распределение результирующих θ̂ s как оценку выборочного
распределения, как в формуле (4.218). Поскольку θ* неизвестно, то идея параметрического бутстрэпа заключается в том, чтобы генерировать каждый
выборочный набор данных с помощью θ̂ = π(𝒟), а не θ*, т. е. мы используем
𝒟 (s) = {xn ~ p(xn|θ̂) : n = 1 … N} в формуле (4.218). Это подстановочная аппрок‑
симация выборочного распределения.
Альтернатива, называемая непараметрическим бутстрэпом, заключает‑
ся в том, чтобы произвести выборку с возвращением N примеров из исходных
данных. В результате создается новое распределение 𝒟(s) того же размера,
что исходное. Однако количество уникальных точек в бутстрэпной выборке
в среднем будет равно всего 0.632 ´ N (чтобы убедиться в этом, заметим, что
вероятность выбрать элемент хотя бы один раз равна (1 - (1 - 1/N)N), что
приближенно равно 1 - e-1 » 0.632 для больших N).
На рис. 4.23a–b показан пример, когда с помощью параметрического бут‑
стрэпа вычисляется выборочное распределение MLE для распределения Бер‑
нулли. (Непараметрический бутстрэп дает примерно такие же результаты.)
При N = 10 мы видим, что выборочное распределение асимметрично, а по‑
тому довольно далеко от гауссова, но при N = 100 распределение больше
напоминает гауссово, как и предсказывает теория (см. раздел 4.7.2).

4.7.3.1. Бутстрэп – апостериорное распределение
«для бедных»
Возникает естественный вопрос: есть ли связь между оценками параметров
θ̂ sπ(𝒟 (s)), вычисленными методом бутстрэпа, и значениями параметров, вы‑
бранными из апостериорного распределения, θs ~ p(·|𝒟)? Концептуально они
абсолютно различны. Но в часто встречающемся случае, когда в роли оце‑
нивателя выступает MLE, а априорное распределение не очень сильное, они
могут быть весьма похожи. Например, на рис. 4.23c-d показан пример, когда
апостериорное распределение вычисляется для равномерного априорного
распределения Beta(1,1), а затем из него производится выборка. Как видно,
апостериорное и выборочное распределения похожи. Так что можно считать,
что бутстрэпное распределение – это апостериорноне распределение «для
бедных» [HTF01, стр. 235].

Tlgm: @it_boooks

212  Статистика

(a)

(b)

(c)

(d)

Рис. 4.23  Сравнение бутстрэпа (верхний ряд) и байесовского подхода (нижний ряд). N примеров данных были выбраны из распределения Ber(θ = 0:7). Левый столбец: N = 10. Правый столбец: N = 100. (a–b) Бутстрэпная аппроксимация
выборочного распределения MLE для распределения Бернулли. Показана гистограмма, построенная по B = 10 000 бутстрэпных примеров. (с-d) Гистограмма,
построенная по 10 000 примеров из апостериорного распределения с равномерным априорным распределением. Построено программой по адресу figures.
probml.ai/book1/4.23

Однако, как это ни кажется удивительным, бутстрэп может оказаться мед‑
леннее, чем выборка из апостериорногораспределения. Причина в том, что
бутстрэп должен сгенерировать S выборочных наборов, а затем обучить мо‑
дель на каждом из них. (В работе [Kle+11] обсуждаются некоторые методы
ускорения бутстрэпа в случае применения к большим наборам данных.)

4.7.4. Доверительные интервалы
В частотной статистике вариативность, индуцированная выборочным рас‑
пределением, используется с целью оценки неопределенности оценок пара‑
метров. Точнее, мы определяем 100(1 - α)%-ный доверительный интервал
(confidence interval) для оценки параметра θ как любой интервал I(𝒟 ) = (𝓁(𝒟 ),
u(𝒟 )), выведенный на основе гипотетического набора данных 𝒟 , такой что
Pr(θ Î I(𝒟 )|𝒟 ~ θ) = 1 - α.

(4.223)

Tlgm: @it_boooks

Частотная статистика  213

Обычно полагают θ = 0.05, что дает 95%-ный доверительный интервал. Это
означает, что если многократно производить выборку данных и для каждого
построенного таким образом набора данных вычислять I(𝒟 ), то примерно
95 % таких интервалов будут содержать истинное значение параметра θ.
Заметим, однако, что формула (4.223) не означает, что для любого набора
данных θ Î I(𝒟) с вероятностью 95 %; такие доверительные интервалы вы‑
числяются в байесовской статистике и называются байесовскими (credible
interval) (см. раздел 4.6.6), а не в частотной статистике. Дополнительные
сведения об этом важном различии см. в разделе 4.7.5.
Отложим в сторону «философские» споры и обсудим, как вычислить дове‑
рительный интервал. Предположим, что θ̂ – оценка параметра θ. Обозначим
θ* его истинное, но неизвестное значение. Также предположим, что выбо‑
рочное распределение D = θ̂ - θ* известно. Обозначим δ и δ его квантили
α/2 и 1 - α/2. Тогда
Pr(δ £ θ̂ - θ* £ δ) = 1 - α.

(4.224)

Изменяя порядок членов, получаем
Pr(θ̂ - δ £ θ* £ θ̂ - δ) = 1 - α.

(4.225)

И следовательно,
I(𝒟 ) = (θ̂(𝒟 ) - δ(𝒟 ), θ̂(𝒟 ) + δ(𝒟 ))

(4.226)

является 100(1 - α)%-ным доверительным интервалом.
В некоторых случаях распределение D = θ̂ - θ* можно вычислить аналити‑
чески. Это можно использовать для вывода точных доверительных интерва‑
лов. Однако чаще предполагают гауссово приближение к выборочному рас‑
пределению, как в разделе 4.7.2. В этом случае имеем
Поэтому приближенный доверительный интервал можно вычислить по фор‑
муле:
(4.227)
– оцен‑
где zα/2 квантиль α/2 функции гауссова распределения, а
ка стандартной ошибки. Если положить α = 0.05, то будем иметь zα/2 = 1.96,
что оправдывает часто применяемую аппроксимацию θ̂ ± 2se
ˆ.
Если гауссова аппроксимация не подходит, то можно использовать бут‑
стрэпную аппроксимацию (см. раздел 4.7.3). Конкретно мы производим вы‑
борку S наборов данных из θ̂(𝒟) и применяем к каждому оценивателю, чтобы
получить θ̂(𝒟(s)); затем используем эмпирическое распределение θ̂(𝒟) θ̂(𝒟(s)) как аппроксимацию выборочного распределения D.

Tlgm: @it_boooks

214  Статистика

4.7.5. Предостережения: доверительные
интервалы и байесовские доверительные
интервалы не одно и то же
95%-ный частотный доверительный интервал для параметра θ определяется
как любой интервал I(𝒟 ) такой, что Pr(θ Î I(𝒟 )}𝒟 ~ θ) = 0.95 (см. раздел 4.7.4).
Это не означает, что параметр с вероятностью 95 % находится в таком интер‑
вале при условии наблюдаемых данных. Эта величина – которую мы обычно
и хотим вычислить – описывается байесовским доверительным интервалом
p(θ Î I|𝒟), как было объяснено в разделе 4.6.6. Это совершенно разные по‑
нятия: при частотном подходе θ рассматривается как неизвестная фиксиро‑
ванная постоянная, а данные трактуются как случайные величины. При байе‑
совском подходе данные считаются фиксированными (поскольку известны),
а параметр – случайной величиной (поскольку неизвестен).
Это противоречащее интуиции определение доверительных интервалов
может приводить к странным результатам. Рассмотрим следующий пример
из работы [Ber85, стр. 11]. Пусть имеется два целых числа 𝒟 = (y1, y2), вы‑
бранных из распределения:
(4.228)
Если θ = 39, то мы ожидаем следующих исходов с вероятностью 0.25 каж‑
дый:
(39, 39), (39, 40), (40, 39), (40, 40).

(4.229)

Обозначим m = min(y1, y2) и определим следующий интервал:
[ℓ(𝒟), u(𝒟)] = [m, m].

(4.230)

Для приведенной выше выборки это дает
[39, 39], [39, 39], [39, 39], [40, 40].

(4.231)

Следовательно, (4.230), очевидно, является 75%-ным доверительным ин‑
тервалом, поскольку 39 содержится в 3/4 всех интервалов. Однако если мы
наблюдаем 𝒟 = (39, 40), то p(θ = 39|𝒟) = 1/0, т. е. мы точно знаем, что θ
должно быть равно 39, но «уверенность» в этом факте составляет всего 75 %.
Мы видим, что доверительный интервал «покрывает» истинный параметр
только в 75 % случаев, если вычислять несколько ДИ по различным случайно
выбранным наборам данных, но если взять всего один наблюдаемый набор
данных, а значит, единственный ДИ, то частотная вероятность «покрытия»
может полностью сбить с толку.

Tlgm: @it_boooks

Частотная статистика  215

Приведем еще один, не такой искусственный, пример. Пусть требуется
оценить параметр θ распределения Бернулли. Обозначим

=

вы‑

борочное среднее. MLE равна θ̂ = . Приближенный 95%-ный доверительный
интервал для параметра распределения Бернулли равен
(он называется интервалом Вальда и основан на гауссовой аппроксимации
распределения Бернулли; сравните с формулой (4.128)). Теперь рассмотрим
одиночное испытание: N = 1 и y1 = 0. MLE равна 0, что означает переобучение, как мы видели в разделе 4.5.1. Но наш 95%-ный доверительный ин‑
тервал тоже равен (0, 0), что выглядит еще хуже. Можно возразить, что этот
дефект вызван тем, что мы аппроксимировали истинное выборочное рас‑
пределение гауссовым, или тем, что размер выборки слишком мал, или тем,
что параметр «слишком экстремальный». Однако интервал Вальда может
вести себя плохо даже для больших N и совсем не экстремальных параметров
[BCD01]. С другой стороны, байесовский доверительный интервал с неин‑
формативным априорным распределением Джеффриса ведет себя именно
так, как мы ожидаем.
Еще несколько интересных примеров вместе с кодом на Python можно
найти в работе [Van14]. Смотрите также работы [Hoe+14; Mor+16; Lyu+20;
Cha+19b], из которых следует, что многие люди, включая профессиональных
статистиков, неправильно понимают и используют частотные доверитель‑
ные интервалы на практике, тогда как байесовские доверительные интерва‑
лы не подвержены этим проблемам.

4.7.6. Компромисс между смещением
и дисперсией
Оцениватель – это применяемая к данным процедура, которая возвращает
оцениваемую величину. Пусть θ̂() – оцениватель, а θ̂(𝒟) – оцениваемая ве‑
личина. В частотной статистике мы рассматриваем данные как случайную
величину, выбираемую из истинного, но неизвестного распределения, p*(𝒟);
оно индуцирует распределение оцениваемой величины, p*(θ̂(𝒟)), называ‑
емое выборочным распределением (см. раздел 4.7.1). В этом разделе мы
обсудим два важных свойства этого распределения: смещение и дисперсию.

4.7.6.1. Смещение оценки
Смещение оценивателя определяется следующим образом:
(4.232)
где θ* – истинное значение параметра, а математическое ожидание берется
относительно «природного распределения» p(𝒟|θ*). Если смещение равно
нулю, то оценка называется несмещенной. Например, оценка MLE среднего
гауссова распределения несмещенная:

Tlgm: @it_boooks

216  Статистика
(4.233)
где —
x – выборочное среднее.
Однако MLE дисперсии гауссова распределения

не

2

является несмещенной оценкой σ . Действительно, можно показать (упраж‑
нение 4.7), что
(4.234)
так что оценка максимального правдоподобия немного меньше истинной
дисперсии. Интуитивно это можно объяснить тем, что мы «истратили» одну
из точек на оценку среднего, поэтому для выборки размера 1 оценка дис‑
персии будет равна 0. Но если μ известно, то оценка MLE будет несмещенной
(см. упражнение 4.8).
Теперь рассмотрим следующую оценку:
(4.235)
То, что она несмещенная, легко доказывается:
(4.236)

4.7.6.2. Дисперсия оценки
Интуитивно понятно, что мы хотим, чтобы оценка была несмещенной. Одна‑
ко этого недостаточно. Например, пусть требуется оценить среднее гауссова
распределения по выборке 𝒟 = {x1, …, xN}. Оценка по одной только первой
точке данных, θ̂(𝒟) = x1, несмещенная, но обычно отстоит от θ* дальше, чем
эмпирическое среднее —
x (тоже несмещенная оценка). Так что важна еще
и дисперсия.
Дисперсия оценки определяется следующим образом:
(4.237)
где математическое ожидание берется относительно p(𝒟|θ*). Она измеряет,
как сильно будет изменяться оценка при изменении данных. Это понятие
можно обобщить на ковариационную матрицу для векторных оценок.

4.7.6.3. Компромисс между смещением и дисперсией
В этом разделе мы обсудим фундаментальный компромисс, на который при‑
ходится идти при выборе метода оценивания параметров, в предположении,

Tlgm: @it_boooks

Частотная статистика  217

что наша цель – минимизировать среднеквадратическую ошибку (СКО, англ.

MSE) оценки. Обозначим θ̂ = θ̂(𝒟) оценку, а θ = 𝔼[θ̂] математическое ожида‑
ние оценки (при изменении 𝒟). (Все математические ожидания и дисперсии
берутся относительно p(𝒟|θ*), но, чтобы не загромождать формулы, явное
обусловливание мы опускаем.) Тогда имеем
(4.238)
(4.239)
(4.240)
(4.241)
Словами:
СКО = дисперсия + смещение2.

(4.242)

Это называется компромиссом между смещением и дисперсией (см.,
например, [GBD92]). А означает он, что иногда разумнее использовать сме‑
щенную оценку, коль скоро она уменьшает дисперсию на величину, большую
квадрата смещения, – в предположении, что целью является минимизация
среднеквадратической ошибки.

4.7.6.4. Пример: оценка MAP среднего гауссова
распределения
Приведем пример, взятый из работы [Hof09, стр. 79]. Пусть требуется оценить
среднее гауссова распределения по выборке x = (x1, …, xN). Мы предполагаем,
что данные выбраны из распределения xn ~ 𝒩(θ* = 1, σ2). Очевидной оценкой
является MLE. У нее нулевое смещение, а дисперсия равна:
(4.243)
Но можно было бы использовать также оценку MAP. В разделе 4.6.4.2 было
показано, что оценка MAP при априорном гауссовом распределении вида
𝒩(θ0, σ2/κ0) имеет вид:

(4.244)

где 0 £ w £ 1 определяет, в какой мере мы доверяем MLE по сравнению с апри‑
орным распределением. Смещение и дисперсия, соответственно, равны:
(4.245)
(4.246)

Tlgm: @it_boooks

218  Статистика
Поскольку оценка MAP смещена (в предположении, что w < 1), ее диспер‑
сия меньше.
Предположим, что наше априорное распределение задано не совсем вер‑
но, а именно что мы используем θ0 = 0, тогда как в действительности is θ* = 1.
На рис. 4.24a мы видим, что выборочное распределение оценки MAP для
θ0 > 0 смещено в сторону от истины, но имеет меньшую дисперсию (уже),
чем для оценки MLE.

На рис. 4.24b показана зависимость mse(x)/mse(x ) от N. Мы видим, что
для оценки MAP среднеквадратическая ошибка меньше, чем для MLE при
κ0 Î {1, 2}. Случай κ0 = 0 соответствует MLE, а случай κ0 = 3 – сильному апри‑
орному распределению, которое ухудшает качество, потому что априорное
среднее неверно. Как видим, при условии, что сила априорного распреде‑
ления хорошо «настроена», оценка MAP может превосходить по качеству
оценку MLE с точки зрения минимизации СКО.

(a)

(b)

Рис. 4.24  Слева: выборочное распределение оценки MAP (эквивалентной
апостериорному среднему) при априорных распределениях 𝒩(θ0 = 0, σ2/κ0)
с различной силой κ0. (Если положить κ = 0, то оценка MAP сведется к MLE.)
В качестве данных взято n = 5 примеров из распределения 𝒩(θ* = 1, σ2 = 1).
Справа: зависимость отношения СКО апостериорного среднего относительно
к СКО MLE от размера выборки. На основе рис. 5.6 из работы [Hof09]. Построено программой по адресу figures.probml.ai/book1/4.24

4.7.6.5. Пример: оценка MAP для линейной регрессии
Еще один важный пример компромисса между смещением и дисперсией
дает гребневая регрессия, рассматриваемая в разделе 11.3. Вкратце это со‑
ответствует оценке MAP для линейной регрессии при гауссовом априорном
распределении, p(w) = 𝒩(w|0, λ-1I). Априорное распределение с нулевым
средним поощряет выбор малых весов, что уменьшает переобученность мо‑
дели; член точности λ управляет силой априорного распределения. При λ = 0

Tlgm: @it_boooks

Частотная статистика  219

получаем MLE; при λ > 0 – смещенную оценку. Чтобы проиллюстрировать
влияние на дисперсию, рассмотрим простой пример обучения одномерной
модели гребневой регрессии с двумя разными значениями λ. На рис. 4.25
слева показаны отдельные аппроксимирующие кривые, а справа – средняя
кривая. Как видим, при увеличении силы регуляризатора дисперсия умень‑
шается, но смещение растет. Смотрите также рис. 4.26, где схематически
изображен компромисс между смещением и дисперсией в терминах слож‑
ности модели.

Рис. 4.25  Иллюстрация компромисса между смещением и дисперсией для гребневой регрессии. Мы генерируем 100 наборов данных на основе истинной функции, показанной сплошной зеленой линией. Слева:
показаны графики регуляризированной аппроксимации для 20 разных
наборов данных. Используется линейная регрессия с разложением по
гауссовым радиально-базисным функциям с 25 центрами, равномерно
распределенными в интервале [0, 1]. Справа: показан график, усредненный по всем 100 наборам данных. Верхний ряд: сильная регуляризация;
отдельные кривые похожи друг на друга (низкая дисперсия), но средняя
далека от истинной (высокое смещение). Нижний ряд: слабая регуляризация; отдельные кривые заметно различаются (высокая дисперсия),
но средняя близка к истинной (низкое смещение). На основе рис. 3.5
из работы [Bis06]. Построено программой по адресу figures.probml.ai/
book1/4.25

Tlgm: @it_boooks

220  Статистика

Рис. 4.26  Схематическая иллюстрация компромисса между смещением
и дисперсией. Взято со страницы http://scott.fortmann-roe.com/docs/BiasVariance.html. Печатается с разрешения Скотта Фортманна-Роу

4.7.6.6. Применение компромисса между смещением
и дисперсией для классификации
Если вместо квадратичной ошибки использовать пороговую потерю, то частотный риск уже нельзя будет выразить в виде суммы квадрата смещения
и дисперсии. На самом деле можно показать (упражнение 7.2 в книге [HTF09]),
что смещение и дисперсия комбинируются мультипликативно. Если оцен‑
ка расположена по правильную сторону решающей границы, то смещение
отрицательно, а убывание дисперсии приводит к уменьшению частоты не‑
правильной классификации. Но если оценка расположена по другую сторо‑
ну, то смещение положительно, поэтому имеет смысл увеличить дисперсию
[Fri97a]. Этот малоизвестный факт ясно показывает, что компромисс между
смещением и дисперсией не особенно полезен для классификации. Лучше
сконцентрировать внимание на ожидаемой потере, а не на самих смеще‑
нии и дисперсии. Ожидаемую потерю можно аппроксимировать с помощью
перекрестной проверки, как описано в разделе 4.5.5.

4.8. упражнения
Упражнение 4.1 [MLE для одномерного гауссова распределения*].
Покажите, что MLE для одномерного гауссова распределения описывается
формулами:
(4.247)
(4.248)

Tlgm: @it_boooks

Упражнения  221

Упражнение 4.2 [Оценка MAP для одномерного гауссова распределения*].
(Источник: Яккола.)
Рассмотрим выборку x1, …, xn из гауссова распределения с известной дис‑
персией σ2 и неизвестным средним μ. Предположим, что априорное распре‑
деление среднего тоже гауссово и имеет вид μ ~ 𝒩(m, s2) с фиксированным
средним m и фиксированной дисперсией s2. Таким образом, единственное
неизвестное – это μ.
a. Вычислите оценку MAP μ̂ MAP. Можете привести только результат, без
доказательства. Или, проделав куда больше работы, вычислите произ‑
водные логарифма апостериорного распределения, приравняйте нулю
и решите систему уравнений.
b. Покажите, что при увеличении числа примеров n оценка MAP сходится
к оценке максимального правдоподобия.
c. Предположим, что n мало и фиксировано. К чему сходится оценка MAP
при увеличении дисперсии априорного распределения s2?
d. Предположим, что n мало и фиксировано. К чему сходится оценка MAP
при уменьшении дисперсии априорного распределения s2?
Упражнение 4.3 [байесовский доверительный интервал гауссова апостери‑
орного распределения].
(Источник: Де Гроот.) Пусть X ~ 𝒩(μ, σ2 = 4), где μ неизвестно, но имеет
априорное распределение 𝒩(μ0, σ02 = 9). Апостериорное распределение по‑
сле наблюдения n примеров имеет вид 𝒩(μn, σn2) (это так называемый байе‑
совский доверительный интервал). Насколько велико должно быть n, чтобы
гарантированно выполнялось условие:
p(ℓ £ μn £ u|D) ³ 0.95,

(4.249)

где (𝓁, u) – интервал (с центром в μn) шириной 1, а 𝒟 – данные? Указание:
вспомните, что 95 % массы вероятности гауссова распределения находится
на расстоянии ±1.96σ от среднего.
Упражнение 4.4 [BIC для гауссовых распределений*].
(Источник: Яккола.)
Байесовский информационный критерий (Bayesian information criterion –
BIC) – это функция логарифмического правдоподобия со штрафом, которую
можно использовать для выбора модели. Определяется он следующим об‑
разом:
(4.250)
где d – число параметров модели, а N – число примеров. В этом упражнении
мы увидим, как использовать BIC для выбора между гауссовым распределе‑
нием с полной и с диагональной ковариационной матрицей. Очевидно, что
у гауссова распределения с полной ковариационной матрицей правдопо‑
добие больше, но, быть может, увеличение числа параметров не окупается,
если улучшение, по сравнению с диагональной ковариационной матрицей,
слишком мало. Поэтому мы используем критерий BIC для выбора модели.

Tlgm: @it_boooks

222  Статистика
Можно написать:
(4.251)
(4.252)
где Ŝ – матрица рассеяния (эмпирическая ковариация), след матрицы (tr) –
это сумма ее диагональных элементов, и мы воспользовались свойством
следа.
a. Выведите BIC для D-мерного гауссова распределения с полной кова‑
риационной матрицей. Максимально упростите свой ответ, восполь‑
зовавшись формой MLE. Не забудьте задать число свободных параметров d.
b. Выведите BIC для D-мерного гауссова распределения с диагональной
ковариационной матрицей. Не забудьте задать число свободных па‑
раметров d. Указание: в диагональном случае оценка максимального
правдоподобия Σ совпадает с Σ̂ML с тем отличием, что внедиагональные
члены равны нулю:
(4.253)
Упражнение 4.5 [BIC для двумерно дискретного распределения].
(Источник: Яккола.)
Обозначим x Î {0, 1} результат подбрасывания монеты (x = 0 – орел, x =
1 – решка). Монета может быть асимметричной, так что орел выпадает с ве‑
роятностью θ1. Предположим, что кто-то еще наблюдает за подбрасыванием
монеты и сообщает вам исход, y. Но этот человек ненадежен и правильно
сообщает результат только с вероятностью θ2, т. е. распределение p(y|x, θ2)
описывается таблицей:

x=0

y=0
θ2

x=1

1 - θ2

y=1
1 - θ2
θ2

Предположим, что θ2 не зависит от x и θ1.
a. Выпишите совместное распределение вероятностей p(x, y|θ) в виде таблицы 2´2 в терминах θ = (θ1, θ2).
b. Предположим, что имеется следующий набор данных: x = (1, 1, 0, 1, 1,
0, 0), y = (1, 0, 0, 0, 1, 0, 1). Каковы оценки MLE для θ1 и θ2? Поясните
свой ответ. Указание: обратите внимание, что функция правдоподобия
распадается в произведение:
p(x, y|θ) = p(y|x, θ2)p(x|θ1).

(4.254)

Что представляет собой p(𝒟|θ̂, M2), где M2 обозначает эту модель с 2 па‑
раметрами? (Если хотите, можете оставить ответ в дробной форме.)

Tlgm: @it_boooks

Упражнения  223

c. Теперь рассмотрим модель с 4 параметрами, θ = (θ0,0, θ0,1, θ1,0, θ1,1),
представляющую p(x, y|θ) = θx,y. (Только три из этих параметров сво‑
бодны, так как их сумма должна быть равна 1.) Какова MLE θ? Что
представляет собой p(𝒟|θ̂, M4), где M4 обозначает эту модель с 4 пара‑
метрами?
d. Предположим, что мы не уверены, какая модель правильна. Мы вы‑
числяем логарифмическое правдоподобие с перекрестной проверкой
и исключением по одному для двухпараметрической и четырехпара‑
метрической модели следующим образом:
(4.255)
где θ̂(𝒟-i)) обозначает MLE, вычисленную для 𝒟 с исключенной i-й стро‑
кой. Какая модель будет выбрана в результате перекрестной проверки
и почему? Указание: обратите внимание, как изменяется таблица счет‑
чиков, когда обучающие примеры исключаются по одному.
e. Напомним, что альтернативой перекрестной проверке является кри‑
терий BIC, определенный следующим образом:
(4.256)
где dof(M) – число свободных параметров модели. Вычислите BIC для
обеих моделей (используя логарифм по основанию e). Какую модель
предпочитает BIC?
Упражнение 4.6 [смесь сопряженных априорных распределений является
сопряженным распределением*].
Рассмотрим смесовое априорное распределение:
(4.257)
где каждое p(θ|z = k) является сопряженным правдоподобию. Докажите, что
это сопряженное априорное распределение.
2
Упражнение 4.7 [оценка максимального правдоподобия σmle
смещенная].

Покажите, что

– смещенная оценка σ2, т. е. пока‑

жите, что

Указание: заметьте, что X1, …, XN независимы, и воспользуйтесь тем фак‑
том, что математическое ожидание произведения независимых случайных
величин равно произведению их математических ожиданий.

Tlgm: @it_boooks

224  Статистика
Упражнение 4.8 [оценивание σ2, когда μ известно*].
Пусть имеется выборка x1, …, xN ~ 𝒩(μ, σ2), где μ – известная постоянная.
Выведите выражение оценки максимального правдоподобия σ2 в этом слу‑
чае? Является ли оценка несмещенной?
Упражнение 4.9 [дисперсия и СКО оценок дисперсии гауссова распределения*].
Докажите, что стандартная ошибка MLE дисперсии гауссова распределе‑
ния равна:
(4.258)
Указание: воспользуйтесь тем фактом, что
(4.259)
2
и что 𝕍[χ2N-1] = 2(N - 1). Наконец, покажите, что MSE(σunb
) =
2
и MSE(σmle
)=

Глава

Tlgm: @it_boooks

5

Теория принятия
решений
5.1. байесоВская теория принятия решений
Байесовский вывод предлагает оптимальный способ обновить наши пред‑
положения о скрытых величинах H на основе наблюдаемых данных X = x
путем вычисления апостериорного распределения p(H|x). Однако рано или
поздно необходимо перейти от предположений к действиям, которые мож‑
но выполнить в реальном мире. И как решить, какое действие лучшее? Тут-то
и вступает в игру байесовская теория принятия решений. Эта глава яв‑
ляется кратким введением в нее. Подробнее см., например, работы [DeG70;
KWW22].

5.1.1. Основы
В теории принятия решений мы предполагаем, что принимающий решения
агент располагает набором возможных действий, 𝒜, из которых произво‑
дит выбор. Например, рассмотрим случай, когда гипотетический врач лечит
пациента, который, возможно, подхватил COVID-19. Предположим, что есть
два возможных действия: не делать ничего или выписать пациенту дорогое
лекарство, которое имеет тяжелые побочные эффекты, но может спасти ему
жизнь.
С каждым из этих действий ассоциированы затраты и выгоды, которые
зависят от состояния природы H Î ℋ. Эту информацию можно закодиро‑
вать в виде функции потерь 𝓁(h, a), описывающей, какие мы понесем по‑
тери, если предпримем действие a Î 𝒜, когда природа находится в состоянии
h Î ℋ.
Например, предположим, что состояние определяется возрастом пациента
(молодой или старый) и тем, болен он COVID-19 или нет. Заметим, что воз‑
раст можно наблюдать непосредственно, но состояние заболевания следует
выводить из зашумленных наблюдений, как обсуждалось в разделе 2.3. Та‑
ким образом, это состояние частично наблюдаемо.

Tlgm: @it_boooks

226  Теория принятия решений
Предположим, что затраты, ассоциированные с приемом лекарства, оди‑
наковы и не зависят от состояния пациента. Но вот выгоды различаются. Если
пациент молодой, то мы ожидаем, что он проживет долго, поэтому затраты,
которые придется понести, если не выписать ему лекарство, когда он болен,
высоки. Если же пациент старый, то жить ему осталось меньше, поэтому
стоимость отказа от лекарства в случае заболевания ниже (особенно ввиду
побочных эффектов), хотя с этим можно спорить. В медицинских кругах
общепринятой единицей стоимости является год жизни с поправкой на
качество (quality-adjusted life year – QALY). Предположим, что ожидаемый
индекс QALY для молодого человека равен 60, а для старого 10.
Предположим, что затраты, ассоциированные с приемом лекарства, со‑
ставляют 8 QALY вследствие боли и страданий, вызванных побочными эф‑
фектами. Получающаяся матрица потерь показана в табл. 5.1.
Таблица 5.1. Гипотетическая матрица потерь для лица,
принимающего решения; имеется 4 состояния природы
и 2 возможных действия
Состояние
Нет COVID-19, молодой
COVID-19, молодой
Нет COVID-19, старый
COVID-19, старый

Ничего
0
60
0
10

Лекарство
8
8
8
8

Эти числа отражают относительные затраты и выгоды и зависят от многих
факторов. Их можно вывести, задавая лицу, принимающему решение, вопро‑
сы о предпочтениях, связанных с возможными исходами. В теории при‑
нятия решений есть теорема, утверждающая, что любое непротиворечивое
множество предпочтений можно преобразовать к порядковой шкале затрат
(см., например, https://en.wikipedia.org/wiki/Preference_(economics)).
Задав функцию потерь, мы можем вычислить апостериорную ожидаемую потерю или риск для каждого возможного действия:
(5.1)
Оптимальная политика (называемая также байесовской оценкой) опи‑
сывает, какое действие предпринять для каждого возможного наблюдения,
чтобы минимизировать риск:
(5.2)
Существует альтернативная, но эквивалентная формулировка этого ре‑
зультата. Определим функцию полезности U(h, a) как желательность каж‑
дого возможного действия в каждом возможном состоянии. Если положить
U(h, a) = -𝓁(h, a), то оптимальная политика выглядит следующим образом:

Tlgm: @it_boooks

Байесовская теория принятия решений  227

(5.3)
Это называется принципом максимальной ожидаемой полезности.
Вернемся к примеру с COVID-19. Наблюдение x включает возраст (молодой
или старый) и результат тестирования (положительный или отрицательный).
Пользуясь результатами из раздела 2.3.1 о формуле Байеса для диагностики
COVID-19, мы можем преобразовать результат тестирования в распределе‑
ние состояний заболевания (т. е. вычислить вероятность того, что пациент
болен или не болен). Зная эти предположения и матрицу потерь в табл. 5.1,
мы можем вычислить оптимальную политику для каждого возможного на‑
блюдения; она показана в табл. 5.2.
Таблица 5.2. Оптимальная политика лечения пациентов с COVID-19 для каждого
из возможных наблюдений
тест
0
0
1
1

возраст
0
1
0
1

pr(covid)
0.01
0.01
0.80
0.80

затраты-ничего
0.84
0.14
47.73
7.95

затраты-лекарство
8.00
8.00
8.00
8.00

действие
0
0
1
0

Из табл. 5.2 видно, что лекарство следует выписывать только молодым
людям с положительным тестом. Но если снизить затраты, ассоциированные
с лекарством, с 8 до 5 единиц, то оптимальная политика изменится: лекар‑
ство следует давать всем имеющим положительный тест. Политика может
измениться также в зависимости от надежности теста. Например, если повы‑
сить чувствительность с 0.875 до 0.975, то вероятность заболевания COVID-19
при положительном тесте увеличится с 0.80 до 0.81, и в результате оптималь‑
ной станет политика, предписывающая давать лекарство всем пациентам
с положительным тестом, даже при затратах 8 QALY. (Соответствующий код
находится по адресу code.probml.ai/book1/dtheory).
До сих пор мы предполагали, что агент безразличен к риску. Это озна‑
чает, что на его решение не влияет степень уверенности в множестве исхо‑
дов. Например, такому агенту не важно, получит ли он 50 долл. наверняка,
100 долл. с вероятностью 50 % или ничего не получит. Напротив, избегающий риска агент выберет первый вариант. Байесовскую теорию принятия
решений можно обобщить на приложения, чувствительные к риску, но
здесь мы этим вопросом заниматься не будем (см., например, [Cho+15]).

5.1.2. Проблемы классификации
В этом разделе мы воспользуемся байесовской теорией принятия решений
для предсказания оптимальной метки класса при наличии наблюдаемых
входных данных x Î 𝒳.

Tlgm: @it_boooks

228  Теория принятия решений

5.1.2.1. Бинарная потеря
Предположим, что состояниям природы соответствуют метки классов, т. е.
ℋ = 𝒴 = {1, …, C}. Еще предположим, что действиям также соответствуют мет‑
ки классов, т. е. 𝒜 = 𝒴. В такой формулировке часто применяется бинарная
функция потерь 𝓁01(y*, ŷ), определенная следующим образом:
ŷ = 0

ŷ = 1

y =0

0

1

y* = 1

1

0

*

(5.4)

Это можно записать короче:
ℓ01(y*; ŷ) = 𝕀(y* ¹ ŷ).

(5.5)

R(ŷ|x) = p(ŷ ¹ y*|x) = 1 - p(y* = ŷ|x).

(5.6)

В таком случае апостериорная ожидаемая потеря равна:

Поэтому чтобы минимизировать ожидаемую потерю, нужно выбрать наи‑
более вероятную метку:
(5.7)
Это решение соответствует моде апостериорного распределения и назы‑
вается оценкой апостериорного максимума, или оценкой MAP.

5.1.2.2. Классификация с учетом стоимости
Рассмотрим проблему бинарной классификации со следующей функцией
потерь 𝓁(y*, ŷ):
(5.8)

Обозначим p0 = p(y* = 0|x) и p1 = 1 - p0. Таким образом, мы должны вы‑
бирать метку ŷ = 0 тогда и только тогда, когда
ℓ00p0 + ℓ10p1 < ℓ01p0 + ℓ11p1.

Если 𝓁00 = 𝓁11 = 0, то это условие упрощается:

(5.9)

(5.10)

Теперь предположим, что 𝓁10 = c𝓁01, т. е. ложноотрицательный результат
обходится в c раз дороже, чем ложноположительный. Тогда решающее пра‑
вило упрощается еще сильнее: выбирать a = 0 тогда и только тогда, когда
p1 < 1/(1 + c). Например, если стоимость ложноотрицательного результата

Tlgm: @it_boooks

Байесовская теория принятия решений  229

в два раза больше стоимости ложноположительного, т. е. c = 2, то порог объ‑
явления положительного результата равен 1/3.

5.1.2.3. Классификация с возможностью отклонения
примера
Иногда мы можем сказать «не знаю», вместо того чтобы возвращать ответ,
в котором не уверены; это называется отклонением (см., например, [BW08]).
Это особенно важно в таких областях, как медицина и финансы, когда следует
избегать риска.
Формализовать возможность отклонения можно следующим образом.
Предположим, что имеются состояния природы ℋ = 𝒴 = {1, …, C} и множе‑
ство действий 𝒜 = 𝒴 ∪ {0}, где действие 0 представляет отклонение. Опре‑
делим функцию потерь:
(5.11)
где λr – стоимость отклонения, а λe – стоимость ошибки классификации.
В упражнении 5.1 вам будет предложено доказать, что оптимальное дей‑
ствие заключается в том, чтобы выбрать отклонение, если вероятность наи‑
более вероятного класса меньше λ* = 1 - λr /λe; в противном случае следует
выбрать наиболее вероятный класс. Иными словами, оптимальная политика
выглядит так:
(5.12)
где
(5.13)
(5.14)
(5.15)
Смотрите иллюстрацию на рис. 5.1.
Интересное применение отклонения возникает в телеигре Jeopardy1. В этой
игре участники должны отвечать на различные вопросы, но, дав неверный
ответ, теряют деньги. В 2011 году IBM продемонстрировала компьютерную
систему Watson, которая победила чемпиона-человека. В Watson использу‑
1

Российский аналог называется «Своя игра». – Прим. перев.

Tlgm: @it_boooks

230  Теория принятия решений
ется целый ряд интересных методов [Fer+10], но к теме нашего обсуждения
относится модуль, который оценивает степень уверенности в ответе. Систе‑
ма «нажимает на кнопку», только если достаточно уверена в правильности
ответа.
Описание других методов и приложений см., например, в работах [Cor+16;
GEY19].

Рис. 5.1  Для некоторых областей пространства входов, где степень
определенности апостериорного класса невысока, мы можем предпочесть не выбирать класс 1 или 2, а отклонить пример и отказаться от
действия. На основе рис. 1.26 из работы [Bis06]

5.1.3. ROC-кривые
В разделе 5.1.2.2 мы показали, что можем выбрать оптимальную метку в про‑
блеме бинарной классификации, задав порог вероятности τ, зависящий от
относительной стоимости ложноположительных и ложноотрицательных ре‑
зультатов. Но можно выбрать не один, а несколько порогов и сравнить полу‑
чающее качество решения. Этот подход мы и обсудим ниже.

5.1.3.1. Матрицы неточностей классификации
Для любого фиксированного порога τ рассмотрим решающее правило:
ŷ τ(x) = 𝕀(p(y = 1|x) ³ 1 - τ).

(5.16)

Tlgm: @it_boooks

Байесовская теория принятия решений  231

Мы можем следующим образом вычислить эмпирическое количество лож‑
ноположительных результатов (FP), возникающих при применении этой по‑
литики к множеству N помеченных примеров:
(5.17)
Аналогично можно вычислить эмпирическое количество ложноотрица‑
тельных (FN), истинно положительных (TP) и истинно отрицательных (TN)
результатов. Эти величины можно сохранить в матрице неточностей классификации C размера 2´2, элемент Cij которой показывает, сколько раз при‑
мер с истинной меткой класса i был классифицирован как принадлежащий
классу с меткой j. В случае бинарной классификации получающая матрица
выглядит, как показано в табл. 5.3.
Таблица 5.3. Матрица неточностей для проблемы бинарной классификации.
TP – количество истинно положительных результатов, FP – ложноположительных,
TN – истинно отрицательных, FN – ложноотрицательных, P – истинное
количество положительных результатов, P̂ – предсказанное количество
положительных результатов, N – истинное количество отрицательных
результатов, N̂ – предсказанное количество отрицательных результатов
Оценка
0
1
Сумма по столбцу

Истина

0
TN
FN


1
FP
TP


Сумма по строке
N
P

Имея такую таблицу, мы можем вычислить p(ŷ|y) или p(y|ŷ) в зависимо‑
сти от того, что нормируется: строки или столбцы. Для этих распределений
можно подсчитать различные сводные статистики, показанные в табл. 5.4
и 5.5. Например, частота истинно положительных результатов (TPR), она
же чувствительность, полнота или частота попаданий, определяется как
(5.18)
а частота ложноположительных результатов (FPR), она же частота ложных тревог или частота ошибок первого рода, определяется как
(5.19)
Теперь можно построить график зависимости TPR от FPR в виде неявной
функции от τ. Он называется рабочей характеристикой приемника (re‑
ceiver operating characteristic), или ROC-кривой (см. пример на рис. 5.2a).

Tlgm: @it_boooks

232  Теория принятия решений
Таблица 5.4. Матрица неточностей для проблемы бинарной классификации,
нормированная по строкам для получения p(ŷ|y). Сокращения: TNR = частота
истинно отрицательных результатов, Spec = специфичность, FPR = частота
ложноположительных результатов, FNR = частота ложноотрицательных
результатов, Miss = частота непопаданий, TPR = частота истинно
положительных результатов, Sens = чувствительность.
Отметим, что FNR=1–TPR и FPR=1–TNR
Оценка
0
Истина

1

0

TN/N = TNR = Spec

FP/N = FPR = Тип I

1

FN/P = FNR = Miss = Тип II

TP/P = TPR = Sens = полнота

Таблица 5.5. Матрица неточностей для проблемы бинарной классификации,
нормированная по столбцам для получения p(y|ŷ ).
Сокращения: NPV = прогностическая ценность отрицательного результата,
FDR = частота ложных обнаружений, FOR = частота ложных пропусков,
PPV = прогностическая ценность положительного результата, Prec = точность.
Отметим, что FOR=1–NPV и FDR=1–PPV
Оценка
Истина

0

1

0

TN/N̂ = NPV

FP/P̂ = FDR

1

FN/N̂ = FOR

TP/P̂ = Prec = PPV

(а)

(b)

Рис. 5.2  (a) ROC-кривые для двух гипотетических систем классификации. Красная
кривая для системы A лучше синей кривой для системы B. Изображен график зависимости частоты истинно положительных результатов (TPR) от частоты ложноположительных результатов (FPR) при изменении порога τ. Отмечен также коэффициент
равных ошибок (EER) – красная и синяя точки. Серым цветом для классификатора B
показана площадь под кривой (area under the curve – AUC). Построено программой
по адресу figures.probml.ai/book1/5.2. (b) Кривая точность–полнота для двух гипотетических систем классификации. Красная кривая для системы A лучше синей кривой
для системы B. Построено программой по адресу figures.probml.ai/book1/5.2

Tlgm: @it_boooks

Байесовская теория принятия решений  233

5.1.3.2. Обобщение ROC-кривой в виде скаляра
Качество ROC-кривой часто выражают одним числом – площадью под кривой, или AUC. Чем больше AUC, тем лучше; максимальное значение, очевид‑
но, равно 1. Еще одна часто используемая сводная статистика – коэффициент равных ошибок (equal error rate – EER), определяется как значение,
удовлетворяющее условию FPR = FNR. Поскольку FNR = 1–TPR, мы можем
вычислить EER, проведя прямую из левого верхнего в правый нижний угол
и найдя ее точки пересечения с ROC-кривой (см. точки A и B на рис. 5.2a).
Чем меньше EER, тем лучше; минимальное значение, очевидно, равно 0 (со‑
ответствует левому верхнему углу).

5.1.3.3. Несбалансированность классов
В некоторых задачах имеется значительная несбалансированность классов. Например, в системах информационного поиска множество отрица‑
тельных (нерелевантных) результатов обычно гораздо больше множества
положительных (релевантных) результатов. На ROC-кривую несбалансиро‑
ванность классов не влияет, поскольку TPR и FPR – доли положительных
и отрицательных результатов соответственно. Однако в таких случаях по‑
лезность ROC-кривой снижается, потому что значительное изменение абсо‑
лютного числа ложноположительных результатов не приводит к существен‑
ному изменению частоты ложноположительных результатов, так как FPR
делится на FP+TN (см., например, обсуждение в [SR15]). Таким образом, все
«действие» сосредоточено в крайней левой части кривой. При таких обстоя‑
тельствах можно выбрать другие способы обобщения матрицы неточностей
классификации, например кривые точность–полнота, которые мы обсудим
в разделе 5.1.4.

5.1.4. Кривые точность–полнота
В некоторых задачах понятие «отрицательный» не имеет четкого определе‑
ния. Рассмотрим, к примеру, обнаружение объектов в изображениях: если
в основу детектора положена классификация участков изображения (патчей),
то количество исследованных патчей, а значит, и число истинно отрицатель‑
ных результатов, является параметром алгоритма, а не частью постановки
задачи. Аналогично в системах информационного поиска обычно выбирают
начальное множество потенциальных результатов, которые затем ранжиру‑
ются по релевантности; задав порог отсечения, мы можем выделить множе‑
ство положительных и отрицательных результатов, но заметим, что размер
множества отрицательных результатов зависит от общего числа отобранных
кандидатов, а это параметр алгоритма, а не часть постановки задачи.
В таких случаях мы можем использовать в качестве обобщенной характе‑
ристики качества системы кривую точность–полнота, описанную ниже.
(Более подробное обсуждение вопроса о связи между ROC-кривыми и кри‑
выми точность–полнота см. в работе [DG06]).

Tlgm: @it_boooks

234  Теория принятия решений

5.1.4.1. Вычисление точности и полноты
Ключевая идея заключается в том, чтобы заменить FPR величиной, вычис‑
ленной только по положительным результатам, а именно:
(5.20)
Точность измеряет, какая доля полученных результатов действительно по‑
ложительна. Ее можно сравнить с полнотой (то же самое, что TPR), которая
измеряет долю положительных результатов среди полученных:
(5.21)
Если ŷ n Î {0, 1} – предсказанная метка, а yn Î {0, 1} – истинная метка, то
точность и полноту можно оценить так:
(5.22)

(5.23)
Теперь можно построить график зависимости точности от полноты при
изменении порога τ (см. рис. 5.2b). Держаться ближе к правому верхнему
углу – лучшее, что можно сделать.

5.1.4.2. Обобщение кривых точность–полнота
в виде скаляра
Кривую точность–полнота (PR-кривая) можно обобщенно охарактеризовать
одним числом несколькими способами. Во-первых, можно взять точность
для фиксированного уровня полноты, например точность на K = 10 элемен‑
тах с наибольшей полнотой. Это называется точностью на K элементах.
Можно вместо этого вычислить площадь под PR-кривой. Однако точность
необязательно монотонно убывает при возрастании полноты. Например,
предположим, что классификатор имеет точность 90 % при полноте 10 %
и точность 96 % при полноте 20 %. В таком случае измерять нужно не точ‑
ность при полноте 10 %, а максимальную точность, которой можно достичь
при полноте не менее 10 % (она должна быть равна 96 %). Это называется интерполированной точностью. Результат усреднения интерполированных
точностей называется усредненной точностью (average precision – AP); она
равна площади под интерполированной PR-кривой, но может быть не равна
площади под исходной PR-кривой1. Средняя усредненная точность (mean
1

Детали см. в статье по адресу https://sanchom.wordpress.com/tag/average-precision/.

Tlgm: @it_boooks

Байесовская теория принятия решений  235

average precision – mAP) – это средняя AP, вычисленная по множеству раз‑
личных PR-кривых.

5.1.4.3. F-мера
Для фиксированного порога, соответствующего одной точке на PR-кривой,
мы можем вычислить значения точности и полноты, которые обозначим 𝒫
и ℛ. Часто они объединяются в одну статистику Fβ, которая придает полноте
в β > 0 раз больший вес, чем точности:
(5.24)
или эквивалентно
(5.25)
При β = 1 мы получаем среднее гармоническое полноты и точности:
(5.26)
(5.27)

Чтобы понять, почему используется среднее гармоническое, а не сред‑
нее арифметическое (𝒫 + ℛ) / 2, рассмотрим следующий сценарий. Пред‑
положим, что отобраны все потенциальные элементы, т. е. ŷ n = 1 для всех
n и ℛ = 1. В таком случае точность 𝒫 определяется распространенностью,

Предположим, что распространенность низкая,

скажем p(y = 1) = 10-4. Среднее арифметическое 𝒫 и ℛ равно (𝒫 + ℛ)/2 =
(10-4 + 1)/2 » 50 %. С другой стороны, среднее гармоническое этой стратегии
равно только (2´10-4´1)/(1 + 10-4) » 0.2 %. В общем случае среднее гармони‑
ческое более консервативно и требует, чтобы большими были как точность,
так и полнота.
При использовании в качестве оценки F1 точности и полноте назначается
одинаковый вес. Но если полнота важнее, то можно брать β = 2, а если важнее
точность, то β = 0.5.

5.1.4.4. Несбалансированность классов
ROC-кривые чувствительны к несбалансированности классов, а PR-кривые –
нет, как отмечено в работе [Wil20]. Чтобы убедиться в этом, обозначим долю
положительных примеров в наборе данных π = P/(P + N) и определим от‑
ношение r = P/N = π/(1 - π). Пусть n = P + N – размер генеральной совокуп‑

Tlgm: @it_boooks

236  Теория принятия решений
ности. На ROC-кривые изменение r не влияет, потому что TPR определена как
отношение внутри множества положительных примеров, а FPR как отноше‑
ние внутри множества отрицательных примеров. Это означает, что неважно,
какой класс мы считаем положительным, а какой отрицательным.
Теперь рассмотрим PR-кривые. Точность можно записать в виде:
(5.28)

Таким образом, Prec ® 1 при π ® 1 и r ® ¥ и Prec ® 0 при π ® 0 и r ® 0.
Например, если перейти от сбалансированной задачи, в которой r = 0.5, к не‑
сбалансированной, в которой r = 0.1 (т. е. положительные примерывстреча‑
ются реже), то точность при любом пороге снизится, а полнота (она же TPR)
останется неизменной, так что вся PR-кривая пройдет ниже. Стало быть, если
имеется несколько бинарных задач с разной распространенностью (напри‑
мер, обнаружение часто или редко встречающихся объектов), то следует быть
осторожнее при усреднении их точностей [HCD12].
На F-меру также влияет несбалансированность классов. Чтобы убедиться
в этом, перепишем F-меру следующим образом:
(5.29)

(5.30)
(5.31)

5.1.5. Задачи регрессии
До сих пор мы считали, что множества действий 𝒜 и состояний природы ℋ
конечны. В этом разделе мы рассмотрим случай, когда оба множества совпа‑
дают с вещественной прямой, 𝒜 = ℋ = ℝ, и различные функции потерь, часто
используемые в этом случае (который обобщается на ℝD, если вычислять по‑
терю поэлементно). Получающиеся в результате решающие правила можно
применить для вычисления оптимальных параметров оценки, оптимального
действия робота и т. д.

5.1.5.1. ฀2-потеря
Чаще всего для непрерывных состояний и действий используется 𝓁2-потеря,
называемая также квадратической ошибкой или квадратичной потерей:
ℓ2(h, a) = (h - a)2.

(5.32)

Tlgm: @it_boooks

Байесовская теория принятия решений  237

В этом случае риск равен:
R(a|x) = 𝔼[(h - a)2|x]= 𝔼[h2|x] - 2a𝔼[h|x] + a2.

(5.33)

Оптимальное действие должно быть таким, чтобы производная риска
(в соответствующей точке) обращалась в нуль (как объясняется в главе 8).
Следовательно, оптимальное действие заключается в выборе апостериор‑
ного среднего:
(5.34)
Это часто называется оценкой минимума среднеквадратической ошибки, или оценкой MMSE.

Рис. 5.3  Функций потерь 𝓁2, 𝓁1 и Хьюбера с δ = 1.5.
Построено программой по адресу figures.probml.ai/book1/5.3

5.1.5.2 ฀1-потеря
𝓁2-потеря штрафует за отклонение от истины квадратично и потому чув‑
ствительна к выбросам. Более робастной является 𝓁1-потеря, штрафующая
за абсолютную величину отклонения от истины:
ℓ1(h, a) = |h - a|.

(5.35)

Это схематически изображено на рис. 5.3. В упражнении 5.4 вам будет
предложено доказать, что оптимальная оценка совпадает с апостериорной
медианой, т. е. таким значением, что Pr(h < a|x) = Pr(h ³ a|x) = 0.5. Мы
можем использовать эту потерю для робастной регрессии, как обсуждается
в разделе 11.6.1.

5.1.5.3. Функция потерь Хьюбера
Также робастной является функция потерь Хьюбера [Hub64], определенная
следующим образом:

Tlgm: @it_boooks

238  Теория принятия решений

(5.36)
где r = h - a. Она эквивалентна 𝓁2, когда ошибка меньше δ, и 𝓁1 в противном
случае. Ее график изображен на рис. 5.3. В разделе 11.6.3 обсуждается, как
использовать такую потерю для робастной регрессии.

5.1.6. Задачи вероятностного предсказания
В разделе 5.1.2 мы предполагали, что множество возможных действий сво‑
дится к выбору одной метки класса (или, возможно, действия «не знаю»).
В разделе 5.1.5 предполагалось, что действие заключается в выборе веще‑
ственного скалярного значения. В этом разделе мы будем предполагать,
что действие – это выбор распределения вероятностей интересующего нас
значения. То есть мы хотим произвести вероятностное предсказание, или
вероятностный прогноз, а не просто предсказать конкретное значение.
Точнее, мы предполагаем, что истинное «состояние природы» – распределение, h = p(Y |x), действие – тоже распределение, a = q(Y |x), и мы хотим вы‑
брать q, доставляющее минимум математическому ожиданию 𝔼[𝓁(p, q)] для
заданного x. Ниже мы обсудим возможные функции потерь для этого случая.

5.1.6.1. Расхождение КЛ, перекрестная энтропия
и логарифмическая потеря
Для сравнения двух распределений часто применяется расхождение Кульбака–Лейблера (КЛ), определяемое следующим образом:
(5.37)
(Ради упрощения обозначений мы предположили, что величина y дискрет‑
ная, но определение обобщается и на вещественные величины.) В разде‑
ле 6.2 мы покажем, что расхождение КЛ обладает следующим свойством:
𝕂𝕃(p||q) ³ 0, и равенство достигается только в случае p = q. Заметим, что это
несимметричная функция своих аргументов.
Расхождение КЛ можно преобразовать следующим образом:
(5.38)
(5.39)
;

(5.40)
(5.41)

Tlgm: @it_boooks

Байесовская теория принятия решений  239

Член ℍ(p) называется энтропией. Это мера неопределенности или дис‑
персии p; она достигает максимума для равномерного распределения p
и равна 0, если p вырождено, т. е. является детерминированной дельта-функ‑
цией. Энтропия часто применяется в теории информации, занимающейся
оптимальными способами сжатия и передачи данных (см. главу 6). В схеме
оптимального кодирования под часто встречающиеся символы (например,
значения из Y с большой вероятностью p(y)) отводится меньше битов, а под
встречающиеся реже – больше битов. Ключевой результат заключается в том,
что количество битов, необходимых для сжатия набора данных, выбранных
из распределения p, не может быть меньше ℍ(p); поэтому энтропия дает ниж‑
нюю границу степени сжатия данных без потери информации. Член ℍ(p, q)
называется перекрестной энтропией. Он измеряет ожидаемое количество
битов, необходимых для сжатия набора данных, выбранных из распределе‑
ния p, если при проектировании кода используется распределение q. Таким
образом, расхождение КЛ – это дополнительное число битов, необходимых
потому, что при проектировании кода использовалось неправильное распре‑
деление q. Если расхождение КЛ равно нулю, значит, мы можем правильно
предсказывать вероятности всех возможных будущих событий, т. е. обучи‑
лись предсказывать будущее так же хорошо, как «оракул», имеющий доступ
к истинному распределению p.
Чтобы найти оптимальное распределение для предсказания будущих дан‑
ных, необходимо минимизировать 𝕂𝕃(p|q). Поскольку ℍ(p) постоянна от‑
носительно q, ее можно проигнорировать и минимизировать только пере‑
крестную энтропию:
(5.42)
Теперь рассмотрим частный случай, когда истинное состояние природы
описывается вырожденным распределением, вся масса которого сосредото‑
чена в одном исходе, скажем c, т. е. h = p(Y|x) = 𝕀(Y = c). Такое распределе‑
ние часто называют унитарным (one-hot), потому что оно «делает горячим
(hot)» только c-й элемент вектора, а все остальные оставляет «холодными»,
как показано на рис. 2.1. В этом случае энтропия принимает вид:
(5.43)
Это называется логарифмической потерей прогнозного распределения
q при заданной целевой метке c.

5.1.6.2. Правила верной оценки
Потеря перекрестной энтропии очень часто применяется для вероятностно‑
го прогнозирования, но это не единственная возможная метрика. Желатель‑
ное для нас свойство заключается в том, чтобы функция потерь достигала
минимума тогда и только тогда, когда лицо, принимающее решение, вы‑
бирает распределение q, совпадающее с истинным распределением p, т. е.

Tlgm: @it_boooks

240  Теория принятия решений
𝓁(p, p) £ 𝓁(p, q) и равенство имеет место тогда и только тогда, когда p = q.
Такая функция потерь 𝓁 называется правилом верной оценки (proper scor‑
ing rule) [GR07].
Можно показать, что потеря перекрестной энтропии является правилом
верной оценки в силу того, что 𝕂𝕃(p||p) £ 𝕂𝕃(p||q). Однако член log p(y)/q(y)
может оказаться очень чувствительным к ошибкам из-за маловероятных
событий [QC+06]. Широко применяемой альтернативой является оценка
Бриера [Bri50], определенная следующим образом (для дискретного рас‑
пределения с множеством значений C):
(5.44)
Это просто квадратическая ошибка прогнозного распределения относи‑
тельного истинного, когда оба распределения рассматриваются как векторы.
Будучи основана на квадратической ошибке, оценка Бриера менее чувстви‑
тельна к чрезвычайно редко или чрезвычайно часто встречающимся клас‑
сам. К счастью, она также является правилом верной оценки.

5.2. байесоВская проВерка гипотез
Предположим, что имеется две гипотезы или модели, которые обычно на‑
зываются нулевой гипотезой, M0, и альтернативной гипотезой, M1, а мы
хотим узнать, какая из них имеет больше шансов оказаться верной. Это на‑
зывается проверкой гипотез.
Если мы пользуемся бинарной потерей, то оптимальным будет решение
выбрать альтернативную гипотезу тогда и только тогда, когда p(M1|𝒟) >
p(M0|𝒟), или, эквивалентно, когда p(M1|𝒟)/p(M0|𝒟) > 1. Если априорное рас‑
пределение равномерное, p(M0) = p(M1) = 0.5, то решающее правило при‑
нимает вид: выбрать M1 тогда и только тогда, когда p(𝒟|M1)/p(𝒟|M0) > 1. Эта
величина, являющаяся отношением маргинальных правдоподобий обеих
моделей, называется коэффициентом Байеса:
(5.45)
Она похожа на отношение правдоподобия, но параметры исключены
в результате интегрирования, что позволяет сравнивать модели разной
сложности в силу байесовской интерпретации принципа бритвы Оккама,
обсуждаемой в разделе 5.2.3.
Если B1,0 > 1, то мы предпочитаем модель 1, иначе модель 0. Конечно, мо‑
жет случиться, что B1,0 лишь немного больше 1. В таком случае мы не вполне
уверены, что модель 1 лучше. Джеффрис [Jef61] предложил шкалу силы сви‑
детельства для интерпретации величины коэффициента Байеса, показанную
в табл. 5.6. Это байесовская альтернатива частотной концепции p-значения
(см. раздел 5.5.3).

Tlgm: @it_boooks

Байесовская проверка гипотез  241

Пример вычисления коэффициентов Байеса приведен в разделе 5.2.1.
Таблица 5.6. Шкала Джеффриса силы свидетельства для интерпретации
коэффициента Байеса
BF < 1/100

Коэффициент Байеса BF(1,0)

Интерпретация
Решительное свидетельство в пользу M0

BF < 1/10

Сильное свидетельство в пользу M0

1/10 < BF < 1/3

Умеренное свидетельство в пользу M0

1/3 < BF < 1

Слабое свидетельство в пользу M0

1 < BF < 3

Слабое свидетельство в пользу M1

3 < BF < 10

Умеренное свидетельство в пользу M1

BF > 10

Сильное свидетельство в пользу M1

BF > 100

Решительное свидетельство в пользу M1

5.2.1. Пример: проверка симметричности монеты
Предположим, что мы несколько раз подбрасываем монету и хотим понять,
были ли наблюдаемые данные порождены симметричной монетой, θ = 0.5,
или несимметричной, для которой θ может быть любым значением в ин‑
тервале [0, 1]. Обозначим первую модель M0, а вторую M1. Маргинальное
правдоподобие в случае истинности модели M0 равно просто
(5.46)
где N – число подбрасываний монеты. Из формулы (4.143) получаем, что мар‑
гинальное правдоподобие в случае истинности модели M1 при априорном
бета-распределении равно:
(5.47)
На рис. 5.4a показан график зависимости log p(𝒟|M1) от числа выпадений
орла N1 в предположении, что N = 5 и априорное распределение равно‑
мерное, α1 = α0 = 1. (Форма кривой не особенно чувствительна к α1 и α0
при условии, что априорное распределение симметрично, т. е. α0 = α1.) Если
наблюдается 2 или 3 орла, то гипотеза M0 о симметричной монете более ве‑
роятна, чем M1, потому что модель M0 проще (в ней нет свободных параме‑
тров) – было бы подозрительным совпадением, если бы при подбрасывании
асимметричной монеты орел и решка выпали в точности поровну. Однако,
по мере того как счетчики смещаются в ту или другую сторону, мы начинаем
отдавать предпочтение гипотезе об асимметричной монете. Заметим, что
график коэффициента Байеса, log B1,0, имел бы точно такую же форму, потому
что log p(𝒟|M0) – постоянная.

Tlgm: @it_boooks

242  Теория принятия решений

(a)

(b)

Рис. 5.4  (a) Зависимость логарифмического маргинального правдоподобия от
количества выпадений орла при подбрасывании монеты. (b) Аппроксимация BIC.
(Шкала по вертикали произвольна, потому что N фиксировано.) Построено программой по адресу figures.probml.ai/book1/5.4

5.2.2. Байесовский выбор модели
Теперь предположим, что имеется множество ℳ, содержащее больше 2 мо‑
делей, а нам нужно выбрать наиболее вероятную. Это называется выбором
модели. Можно считать, что это задача на принятие решений, в котором
действие состоит в выборе одной модели m Î ℳ. В случае пороговой потери
оптимальное действие – выбор самой вероятной модели:
(5.48)

где
(5.49)
– апостериорное распределение моделей. Если априорное распределение
моделей равномерное, p(m) = 1/|ℳ|, то модель MAP описывается формулой:
(5.50)
Величина p(𝒟|m) равна:
(5.51)
Она называется маргинальным правдоподобием, или свидетельством
в пользу модели m. Интуитивно понятно, что это правдоподобие данных,
усредненное по всем возможным значениям параметров с весами, опреде‑
ляемыми априорным распределением p(θ|m). Если при любой комбинации
параметров θ вероятность данных высока, то, наверное, это хорошая модель.

Tlgm: @it_boooks

Байесовская проверка гипотез  243

5.2.2.1. Пример: полиномиальная регрессия
В качестве примера байесовского выбора модели рассмотрим одномерную
полиномиальную регрессию. На рис. 5.5 показано апостериорное распреде‑
ление трех разных моделей, соответствующих полиномам степени 1, 2 и 3,
для аппроксимации N = 5 точек. Мы будем считать, что априорное распре‑
деление моделей равномерное, и воспользуемся эмпирической байесовской
оценкой априорного распределения весов регрессии (см. раздел 11.7.7). За‑
тем мы вычислим свидетельство в пользу каждой модели (о том, как это
делается, см. раздел 11.7). Мы видим, что данных для обоснованного выбора
сложной модели недостаточно, поэтому в качестве модели MAP выбирается
m = 1. На рис. 5.6 показан аналогичный график для N = 30 точек. Теперь
моделью MAP будет m = 2; имея выборку большего размера, мы можем без
опаски выбрать более сложную модель.

(а)

(c)

(b)

(d)

Рис. 5.5  Байесовский выбор модели полиномиальной регрессии. (a–c) N = 5
точек аппроксимируются полиномами степени 1, 2 и 3. Сплошная зеленая кривая – истинная функция, штриховая красная кривая – предсказания (пунктирные синие линии представляют интервал ±σ вокруг среднего). (d) Построен
график апостериорного распределения моделей p(m|𝒟) в предположении, что
априорное распределение равномерно, p(m) µ 1. Построено программой по
адресу figures.probml.ai/book1/5.5

Tlgm: @it_boooks

244  Теория принятия решений

(а)

(c)

(b)

(d)

Рис. 5.6  То же, что на рис. 5.5, но теперь N = 30.
Построено программой по адресу figures.probml.ai/book1/5.6

5.2.3. Бритва Оккама
Рассмотрим две модели: простую m1 и более сложную m2. Предположим, что
обе могут объяснить данные, если подобрать параметры правильно, т. е. так,
что обе вероятности p(𝒟|θ̂ 1, m1) и p(𝒟|θ̂ 2, m2) велики. Интуитивно понятно,
что следует предпочесть m1, поскольку она проще, но не хуже m2. Этот прин‑
цип называется бритвой Оккама.
Теперь посмотрим, как ранжирование моделей на основе маргинального
правдоподобия, подразумевающего усреднение правдоподобия относитель‑
но априорного распределения, приводит именно к такому поведению. Слож‑
ная модель придает меньше априорной вероятности «хорошим» параметрам,
объясняющим данные, θ̂ 2, потому что интеграл априорного распределения
по всему пространству параметров должен быть равен 1. Таким образом, при
усреднении она рассматривает части пространства параметров с низким
правдоподобием. С другой стороны, у простой модели меньше параметров,
поэтому априорное распределение сосредоточено в меньшем объеме, сле‑

Tlgm: @it_boooks

Байесовская проверка гипотез  245

довательно, усреднение производится преимущественно по хорошей части
пространства параметров, в окрестности θ̂ 1. Поэтому маргинальное правдо‑
подобие отдает предпочтение более простой модели. Это называется байесовской интерпретацией бритвы Оккама [Mac95; MG05].
По-другому понять байесовскую интерпретацию бритвы Оккама мож‑
но, сравнив относительную прогностическую способность простой и слож‑
ной модели. Поскольку сумма вероятностей должна быть равна 1, имеем
å𝒟¢p(𝒟¢|m) = 1, где суммирование производится по всем возможным на‑
борам данных. Сложные модели, способные предсказывать много исходов,
вынуждены размазывать массу вероятности тонким слоем, а потому не могут
назначить никакому набору такой высокой вероятности, как модели по‑
проще. Иногда это называют законом сохранения массы вероятности, он
иллюстрируется на рис. 5.7. По горизонтальной оси откладываются все воз‑
можные наборы данных в порядке возрастания сложности (измеряемой както абстрактно), а по вертикальной – предсказания трех различных моделей:
простой, M1, средней, M2, и сложной, M3. Вертикальная прямая обозначает
фактически наблюдаемые данные. Модель 1 слишком проста и назначает
𝒟0 низкую вероятность. Модель 3 также назначает 𝒟0 сравнительно низкую
вероятность, потому что умеет предсказывать много наборов данных и, сле‑
довательно, размазывает доступную вероятность тонким и широким слоем.
Модель 2 – как раз «то, что надо»: она предсказывает наблюдаемые данные
с разумной степенью уверенности, но не предсказывает слишком много лиш‑
него. Поэтому модель 2 является наиболее вероятной.

Рис. 5.7  Схематическая иллюстрация байесовской интерпретации
бритвы Оккама. Широкая (зеленая) кривая соответствует сложной модели, узкая (синяя) – простой модели, а средняя (красная) – «правильной»
модели. На основе рис. 3.13 из работы [Bis06]. Смотрите также [MG05,
рис. 2], где похожий график приведен для реальных данных

Tlgm: @it_boooks

246  Теория принятия решений

5.2.4. Связь между перекрестной проверкой
и маргинальным правдоподобием
Мы видели, как маргинальное правдоподобие помогает выбрать модель
«правильной» сложности. В небайесовских подходах к выбору модели стан‑
дартным приемом для достижения той же цели является перекрестная про‑
верка (раздел 4.5.5).
Оказывается – мы это сейчас покажем, – что маргинальное правдоподобие
тесно связано с перекрестной проверкой с исключением по одному (leaveone-out cross-validation – LOO-CV). Начнем с маргинального правдоподобия,
которое запишем в последовательной форме:
(5.52)
где
(5.53)
Применим к этому распределению подстановочную аппроксимацию:
(5.54)
Тогда получаем:
(5.55)
Это очень похоже на оценку правдоподобия методом перекрестной про‑
верки с исключением по одному, только вычисляемой последовательно.
Сложная модель переобучится на «ранних» примерах и будет плохо пред‑
сказывать остальные, поэтому мы получим низкое маргинальное правдо‑
подобие и низкую оценку перекрестной проверки. Дальнейшее обсуждение
см. в работе [FH20].

5.2.5. Информационные критерии
Маргинальное правдоподобие, p(𝒟|m) = ò p(𝒟|θ, m)p(θ)dθ, необходимое для
байесовского выбора модели, рассмотренного в разделе 5.2.2, бывает трудно
вычислить, потому что требуется интегрирование по всему пространству
параметров. К тому же, результат может сильно зависеть от выбора априор‑
ного распределения. В этом разделе мы обсудим другие метрики для выбора
модели, называемые информационными критериями. Наше обсуждение
будет кратким, дополнительные сведения см., например, в [GHV14].

Tlgm: @it_boooks

Байесовская проверка гипотез  247

5.2.5.1. Байесовский информационный критерий (BIC)
Байесовский информационный критерий (BIC) [Sch78] можно представ‑
лять себе как простую аппроксимацию логарифмического маргинального
правдоподобия. В частности, если взять гауссову аппроксимацию апосте‑
риорного распределения, обсуждавшуюся в разделе 4.6.8.2, то из формулы
(4.215) получим:
(5.56)
где H – гессиан отрицательного логарифмического совместного распреде‑
ления log p(𝒟, θ), вычисленного в точке θ̂ map, соответствующей оценке MAP.
В формуле (5.56) мы видим логарифмическое правдоподобие плюс штра‑
фующие члены. Если априорное распределение равномерное, p(θ) µ 1, то
соответствующий член можно отбросить и заменить оценку MAP оценкой
MLE, θ̂, что дает
(5.57)
Теперь сосредоточимся на члене log |H|, который иногда называют коэффициентом Оккама, поскольку он является мерой P сложности модели (объ‑
ем апостериорного распределения). Имеем H = åNi=1 Hi, где Hi = ÑÑlog p(𝒟|θ).
Аппроксимируем каждое Hi фиксированной матрицей Ĥ. Тогда будем иметь
(5.58)
где D = dim(θ), и мы предположили, что матрица H полного ранга. Член log
|Ĥ| можно отбросить, потому что он не зависит от N и потому будет прене‑
брежимо мал по сравнению с правдоподобием. Собирая все вместе, получаем
оценку BIC, которую нужно максимизировать:
(5.59)
Можно также определить потерю BIC, подлежащую минимизации, умно‑
жив на -2:
(5.60)
(Масштабный коэффициент 2 выбран, чтобы упростить выражение при ис‑
пользовании модели с гауссовым правдоподобием.)

5.2.5.2. Информационный критерий Акаике
Информационный критерий Акаике [Aka74] тесно связан с BIC. Он имеет
вид:

Tlgm: @it_boooks

248  Теория принятия решений
(5.61)
Эта метрика штрафует сложные модели не так сильно, как BIC, потому что
член регуляризации не зависит от N. Эту оценку можно вывести, встав на
частотную точку зрения.

5.2.5.3. Минимальная длина описания (MDL)
Проблему сравнительной оценки различных моделей можно рассматривать
в терминах теории информации (глава 6). Цель отправителя – передать дан‑
ные получателю. Сначала отправитель должен определить, какую модель
m будет использовать; это требует C(m) = -log p(m) битов (см. раздел 6.1).
Затем получатель может обучить модель, вычислив θ̂ m, и таким образом
приближенно реконструировать данные. Для точной реконструкции данных
отправитель должен передать невязки, которые нельзя объяснить моделью;
это требует -L(m) = -log p(𝒟|θ̂, m) = -ån log p(yn|θ̂, m) битов. Полная стои‑
мость равна:
(5.62)
Как видим, общая форма такая же, как в критериях BIC/AIC. Выбор моде‑
ли, доставляющей минимум J(m), называется принципом минимальной
длины описания (minimum description length – MDL). Детали см., например,
в работе [HY01].

5.3. Частотная теория принятий решений
В этом разделе мы обсудим частотную теорию принятий решений. Она
похожа на байесовскую, обсуждавшуюся в разделе 5.1, но отличается отсут‑
ствием априорного, а значит, и апостериорного распределения неизвест‑
ных состояний природы. Следовательно, мы не можем определить риск как
апостериорную ожидаемую потерю. В разделе 5.3.1 мы рассмотрим другие
определения.

5.3.1. Вычисление риска оценки
Определим частотный риск оценки π при условии неизвестного состояния
природы θ как математическое ожидание потери в случае применения этой
оценки к данным x, выбранным из функции правдоподобия p(x|θ):
(5.63)
Пример приведен в разделе 5.3.1.1.

Tlgm: @it_boooks

Частотная теория принятий решений  249

5.3.1.1. Пример
Наш пример заимствован из работы [BS94]. Рассмотрим задачу оценки
среднего гауссова распределения. Предполагается, что данные выбраны из
распределения xn ~ 𝒩(θ*, σ2 = 1). Если использовать квадратичную потерю
𝓁2(θ, θ̂) = (θ - θ̂)2, то соответствующей функцией риска будет СКО.
Рассмотрим пять оценок для вычисления θ:

 π1(𝒟) = x , выборочное среднее;
 π2(𝒟) = median(𝒟), выборочная медиана;
 π3(𝒟) = θ0, фиксированное значение;
 πκ(𝒟), апостериорное среднее при априорном распределении 𝒩(θ|θ0,
σ2/κ):
(5.64)
Для πκ мы берем θ0 = 0 и рассматриваем слабое априорное распределение
с κ = 1 и более сильное с κ = 5.
Пусть θ̂ = θ̂(x) = π(x) – оцениваемый параметр. Риск этой оценки определя‑
ется СКО. В разделе 4.7.6.3 мы показали, что СКО можно представить в виде
суммы квадрата смещения и дисперсии:
MSE(θ̂|θ*) = 𝕍[θ̂] + bias2(θ̂),

(5.65)

где смещение определено как bias(θ̂) = 𝔼[θ̂ - θ*]. Теперь воспользуемся этим
выражением, чтобы вывести риск каждой оценки.
π1 – выборочное среднее. Это несмещенная оценка, поэтому ее риск равен:
(5.66)
π2 – выборочная медиана. Это также несмещенная оценка. Кроме того,
можно показать, что ее дисперсия приближенно равна π/(2N), так что риск
равен:
(5.67)
π3 возвращает постоянную θ0, так что ее смещение равно (θ* - θ0), а дис‑
персия нулевая. Поэтому риск равен:
(5.68)
Наконец, π4 – апостериорное среднее при априорном гауссовом распреде‑
лении. Его СКО можно вывести следующим образом:
(5.69)
(5.70)

Tlgm: @it_boooks

250  Теория принятия решений
(5.71)
(5.72)
Графики этих функций показаны на рис. 5.8 для N Î {5, 20}. Мы видим, что
в общем случае наилучшая оценка зависит от значения θ*, которое нам не‑
известно. Если θ* очень близко к θ0, то π3 (которая просто предсказывает θ0)
наилучшая. Если θ* принадлежит разумному диапазону вокруг θ0, то наи‑
лучшей оценкой будет апостериорное среднее, которое сочетает априорную
гипотезу θ0 с фактическими данными. Если θ* далеко от θ0, то наилучшей
оценкой будет MLE.

(a)

(b)

Рис. 5.8  Функции риска для оценивания среднего гауссова распределения.
Каждая кривая представляет график зависимости R(θ̂i (·), θ*) от θ*, где i – индекс
оценки. Каждая оценка применяется к N примерам, выбранным из 𝒩(θ*, σ2 = 1).
Синяя горизонтальная прямая – выборочное среднее (MLE); красная горизонтальная прямая – выборочная медиана, черная кривая – оценка θ̂ = θ0 = 0; зеленая кривая – апостериорное среднее при κ = 1; голубая кривая – апостериорное среднее при κ = 5. (a) N = 5 примеров. (b) N = 20 примеров. На основе рис. B.1
из работы [BS94]. Построено программой по адресу figures.probml.ai/book1/5.8

5.3.1.2. Байесовский риск
В общем случае истинное состояние природы θ, порождающее данные x, не‑
известно, поэтому мы не можем вычислить риск в формуле (5.63). Возможное
решение – высказать гипотезу об априорном распределении ρ для θ, а затем
произвести по нему усреднение. Это дает нам байесовский риск, который
называют также интегральным риском:
(5.73)
Решающее правило, заключающееся в минимизации байесовского риска,
называется байесовской оценкой. Это эквивалент оптимальной политики,
рекомендуемой байесовской теорией принятия решений (5.2), поскольку

Tlgm: @it_boooks

Частотная теория принятий решений  251

(5.74)
Таким образом, мы видим, что выбор оптимального действия отдельно
для каждого случая (как при байесовском подходе) является оптимальным
в среднем (как при частотном подходе). Иными словами, байесовский под‑
ход – это хороший способ достижения частотных целей. Дальнейшее обсуж‑
дение этого вопроса см. в работе [BS94, стр. 448].

5.3.1.3. Максимальный риск
Разумеется, использование априорного распределения может показаться
нежелательным в контексте частотной статистики. Поэтому мы можем сле‑
дующим образом определить максимальный риск:
(5.75)
Решающее правило, которое требует минимизировать максимальный
риск, называется минимаксной оценкой и обозначается πMM. Например,
на рис. 5.9 показано, что для π1 риск в худшем случае меньше, чем для π2, на
всех возможных значениях θ, так что это минимаксная оценка.
Минимаксные оценки в чем-то привлекательны. Но вычислять их трудно.
И, кроме того, они очень пессимистичны. На самом деле можно показать, что
все минимаксные оценки эквивалентны байесовским оценкам при наименее выгодном априорном распределении. В большинстве статистических
задач (за исключением теоретико-игровых) предположение о враждебном
поведении природы неразумно.

Рис. 5.9  Функции риска для двух решающих процедур, π1 и π2. Поскольку риск π1 в худшем случае меньше, она является минимаксной
оценкой, пусть даже для π2 риск меньше для большинства значений θ.
Таким образом, минимаксные оценки чрезмерно консервативны

5.3.2. Состоятельные оценки
Пусть имеется набор данных 𝒟 = {xn : n = 1 … N}, где примеры xn Î 𝒳 порож‑
дены распределением p(x|θ*), а θ* Î Θ – истинные параметры. Предположим

Tlgm: @it_boooks

252  Теория принятия решений
еще, что параметры идентифицируемые, т. е. p(𝒟|θ) = p(𝒟|θ¢) тогда и только
тогда, когда θ = θ¢ для любого набора данных 𝒟. Тогда говорят, что оценка
π : 𝒳N ® Θ состоятельная, если θ̂(𝒟) ® θ, когда N ® ¥ (где стрелка означает
сходимость вероятностей). Иными словами, процедура π восстанавливает
истинные параметры (или их подмножество) в пределе, когда данных стано‑
вится бесконечно много. Это эквивалентно минимизации пороговой потери,
ℒ(θ*, θ̂) = 𝕀(θ* ¹ θ̂). Пример состоятельной оценки дает оценка максимального
правдоподобия (MLE).
Отметим, что оценка может быть несмещенной, но при этом несостоятель‑
ной. Например, рассмотрим оценку π({x1, …, xN}) = xN. Это несмещенная оцен‑
ка среднего, потому что 𝔼[π(𝒟)] = 𝔼[x]. Но выборочное распределение π(𝒟) не
сходится к фиксированному значению, поэтому не может сходиться к точке θ*.
Хотя состоятельность – желательное свойство, ее полезность на практике
ограничена, потому что большинство реальных наборов данных не проис‑
ходит из выбранного нами семейства моделей (т. е. не существует такого θ*,
что p(·|θ*) порождает наблюдаемые данные 𝒟). На практике полезнее искать
оценки, которые минимизируют некоторую меру различия между эмпири‑
ческим распределением p𝒟(x|𝒟) и оценкой распределения p(x|θ̂). Если в ка‑
честве меры различия взять расхождение КЛ, то оценкой оказывается MLE.

5.3.3. Допустимые оценки
На рис. 5.8 видно, что выборочная медиана (пунктирная красная линия) всег‑
да имеет больший риск, чем выборочное среднее (сплошная черная линия),
по крайней мере, при гауссовой модели правдоподобия. Поэтому говорят, что
выборочное среднее мажорирует выборочную медиану в качестве оценки.
Говорят, что π1 мажорирует π2, если R(θ, π1) £ R(θ, π2) для всех θ. Мажо‑
рирование называется строгим, если это неравенство строгое для какого-то
θ. Оценка называется допустимой, если не существует другой строго мажо‑
рирующей ее оценки.
На рис. 5.8 видно, что выборочная медиана (пунктирная красная линия)
всегда имеет больший риск, чем выборочное среднее (сплошная черная ли‑
ния). Поэтому выборочная медиана не является допустимой оценкой средне‑
го. Однако это заключение применимо только к гауссовой модели правдо‑
подобия. Если истинная модель p(x|θ) характеризуется тяжелыми хвостами,
как распределение Лапласа или Стьюдента, или является смесью гауссовых
распределений, то выборочная медиана, скорее всего, будет иметь меньший
риск, потому что более робастна к выбросам.
Удивительнее другой факт – можно показать, что выборочное среднее тоже
не всегда является допустимой оценкой, даже в случае гауссовой модели
правдоподобия с квадратичной ошибкой в качестве функции потерь (это
называется парадоксом Штейна [Ste56]).
Естественно сосредоточить внимание только на допустимых оценках.
В работе [Wal47] доказан следующий важный результат (известный под на‑
званием теоремы о полном классе), который по существу означает, что тем
самым мы ограничиваемся только байесовскими оценками.

Tlgm: @it_boooks

Минимизация эмпирического риска  253

Теорема 5.3.1 (Вальд). Любое допустимое частотное решающее правило является байесовским решающим правилом при некотором, возможно несобственном, априорном распределении.
Однако полезность понятия допустимости ограничена. Например, в сле‑
дующем примере показано, как легко построить допустимые, но «глупые»
оценки.
Теорема 5.3.2. Пусть X ~ 𝒩(θ, 1). Рассмотрим оценку θ с квадратичной функцией потерь. Пусть π1(x) = θ0 – постоянная, не зависящая от данных. Эта
оценка допустима.
Доказательство. Предположим, что это не так. Тогда существует другая
оценка π2 с меньшим риском такая, что R(θ*, π2) £ R(θ*, π1), причем неравен‑
ство должно быть строгим хотя бы для одного θ*. Рассмотрим риск при θ* = θ0.
Имеем R(θ0, π1) = 0:
(5.76)
Поскольку 0 £ R(θ*, π2) £ R(θ*, π1) для всех θ* и R(θ0, π1) = 0, имеем R(θ0, π2) =
0, а значит, π2(x) = θ0 = π1(x). Таким образом, есть лишь одна возможность,
при которой риск π2 в точке θ0 не выше, чем риск π1, – когда π2 совпадает с π1.
Следовательно, не существует другой оценки π2 со строго меньшим риском,
и значит, π1 допустима.

Заметим, что оценка π1(x) = θ0 эквивалентна байесовскому решающему
правилу относительно априорного распределения, достоверно сосредото‑
ченного в θ0, именно поэтому она глупая.

5.4. минимизация ЭмпириЧеского риска
В этом разделе мы рассмотрим, как применять частотную теорию принятия
решений в контексте обучения с учителем.

5.4.1. Эмпирический риск
В стандартных изложениях частотной теории принятия решений в учеб‑
никах математической статистики существует единственное неизвестное
«состояние природы», соответствующее неизвестным параметрам θ* неко‑
торой модели, а риск определяется, как в формуле (5.63): R(π, θ*) = 𝔼p(𝒟|θ*)
[𝓁(θ*, π(𝒟))].
В обучении с учителем у нас имеется другое неизвестное состояние при‑
роды (именно, выход y) для каждого входа x, а оценкой π является прогнозная
функция ŷ = f(x) и состояние природы – это истинное распределение p*(x, y).
Таким образом, риск оценки равен:

Tlgm: @it_boooks

254  Теория принятия решений
(5.77)
Эта величина называется риском на генеральной совокупности (popula‑
tion risk), потому математическое ожидание берется относительно истинно‑
го совместного распределения p*(x, y). Конечно, p* неизвестно, но мы можем
аппроксимировать его эмпирическим распределением N примеров:
(5.78)
где p𝒟(x, y) = ptrain(x, y). Подстановка этого распределения дает эмпирический риск:
(5.79)
Отметим, что здесь R( f, 𝒟) – случайная величина, т. к. она зависит от об‑
учающего набора. Естественно выбрать предиктор следующим образом:
(5.80)
где оптимизация производится по конкретному функциональному пространству гипотез ℋ. Это называется минимизацией эмпирического
риска (empirical risk minimization – ERM).

5.4.1.1. Ошибка аппроксимации и ошибка оценивания
В этом разделе мы проанализируем теоретическое качество аппроксимиру‑
ющих функций, выбираемых в соответствии с принципом ERM. Пусть f ** =
argminf R( f ) – функция, доставляющая минимум риску на генеральной со‑
вокупности при оптимизации на множестве всех возможных функций. Ко‑
нечно, мы не можем рассмотреть все вообще функции, поэтому определим
f * = argminfÎℋR( f ) как наилучшую функцию в нашем пространстве гипотез
ℋ. К сожалению, мы не можем вычислить f *, потому что не можем вычислить
риск на генеральной совокупности, поэтому окончательно остановимся на
определении функции-предиктора, которая минимизирует эмпирический
риск на пространстве гипотез:
(5.81)
Можно показать [BB08], что риск разности между выбранным нами и наи‑
лучшим возможным предиктором можно разложить в сумму двух членов:
(5.82)

Tlgm: @it_boooks

Минимизация эмпирического риска  255

Первый член, �app(ℋ), – ошибка аппроксимации, которая показывает,
насколько точно ℋ может смоделировать истинную оптимальную функцию
f **. Второй член, �est(ℋ, N), – ошибка оценивания, или ошибка обобщения,
она измеряет разность между оценками рисков в силу конечности обучаю‑
щего набора. Ее можно аппроксимировать разностью между ошибкой на обу‑
чающем наборе и ошибкой на тестовом наборе, используя два эмпирических
распределения, выбранных из p*:
(5.83)
Эту разность часто называют разрывом обобщения.
Мы можем уменьшить ошибку аппроксимации, воспользовавшись более
выразительным семейством функций ℋ, но обычно при этом увеличивает‑
ся ошибка обобщения из-за переобучения. Как разрешить эту дилемму, мы
обсудим ниже.

5.4.1.2. Регуляризированный риск
Чтобы избежать переобучения, обычно прибавляют к целевой функции
штраф за сложность, получая в результате регуляризированный эмпирический риск:
Rλ( f, 𝒟) = R(f, 𝒟) + λC( f ),

(5.84)

Rλ(θ, 𝒟) = R(θ, 𝒟) + λC(θ).

(5.85)

где C( f ) измеряет сложность функции-предиктора f(x, θ), а величина λ ³ 0,
называемая гиперпараметром, управляет величиной штрафа за сложность
(как выбирать λ, мы обсудим в разделе 5.4.2).
На практике обычно работают с параметрическими функциями и приме‑
няют регуляризатор к самим параметрам. В результате получается целевая
функция такого вида:

Отметим, что если используется логарифмическая потеря, а регуляриза‑
тором является отрицательное логарифмическое априорное распределение,
то регуляризированный риск имеет вид:
(5.86)
Его минимизация эквивалентна вычислению оценки MAP.

5.4.2. Структурный риск
Естественный способ оценить гиперпараметры – минимизировать наимень‑
ший достижимый эмпирический риск:
(5.87)

Tlgm: @it_boooks

256  Теория принятия решений
Это пример двухуровневой, или вложенной, оптимизации. К сожале‑
нию, такой метод работать не будет, потому что он всегда выбирает наимень‑
шую степень регуляризации, т. е. λ̂ = 0. Чтобы убедиться в этом, заметим, что
(5.88)
а эта величина достигает минимума, когда λ = 0. Проблема в том, что эм‑
пирический риск является заниженной оценкой риска на генеральной со‑
вокупности, что приводит к переобучению при выборе λ. Это называется
оптимистичностью ошибки на обучающем наборе.
Если бы мы знали регуляризированный риск на генеральной совокупности
Rλ(θ) вместо регуляризированного эмпирического риска Rλ(θ, 𝒟), то могли
бы использовать его для выбора модели правильной сложности (например,
значения λ). Это называется минимизацией структурного риска [Vap98].
Существует два основных способа оценки риска на генеральной совокупно‑
сти для данной модели (значения λ): перекрестная проверка (раздел 5.4.3)
и статистическая теория обучения (раздел 5.4.4).

5.4.3. Перекрестная проверка
В этом разделе мы обсудим простой способ оценки риска на генеральной
совокупности в контексте обучения с учителем. Мы просто разбиваем на‑
бор данных на две части, одна используется для обучения модели, а другая,
называемая контрольным набором или зарезервированным набором,
используется для оценки риска. Мы можем обучить модель на обучающем
наборе, а затем использовать ее результаты на контрольном наборе в каче‑
стве приближения к риску на генеральной совокупности.
Для более подробного описания метода нам понадобится ввести некото‑
рые обозначения. Сначала выразим явно зависимость эмпирического риска
от набора данных:
(5.89)
Определим также θ̂ λ(𝒟) = argminθ Rλ(𝒟, θ). Наконец, обозначим 𝒟train и 𝒟valid
части набора 𝒟. (Часто под обучающий набор отводится 80 % данных, а под
контрольный 20 %.)
Любую модель λ мы сначала обучаем на обучающем наборе и вычисляем
θ̂ λ(𝒟train). Затем мы используем нерегуляризированный эмпирический риск
на контрольном наборе в качестве оценки риска на генеральной совокуп‑
ности:
(5.90)
Отметим, что для обучения и оценки модели используются разные данные.
Описанная техника может работать очень хорошо. Однако если количество
обучающих примеров мало, то возникают проблемы, потому что модели

Tlgm: @it_boooks

Минимизация эмпирического риска  257

не хватает данных для обучения, и объем данных для получения надежной
оценки качества работы на будущих данных тоже недостаточен.
Простое, но популярное решение этой проблемы – воспользоваться перекрестной проверкой (cross validation – CV). Идея такова: обучающие данные
разбиваются на K групп; затем для каждой группы k Î {1, …, K} мы обучаем
модель на всех данных, кроме k-й группы, и проверяем на k-й группе, как
показано на рис. 4.6. Формально имеем
(5.91)
где 𝒟k – данные в k-й группе, а 𝒟-k – все остальные данные. Это называется
перекрестным риском (cross-validated risk). На рис. 4.6 эта процедура по‑
казана для K = 5. Для K = N метод называется перекрестной проверкой
с исключением по одному, потому что мы всегда обучаем на N - 1 примере
и проверяем на оставшемся.
Оценку CV можно использовать в качестве целевой функции внутри
процедуры оптимизации для выбора оптимального гиперпараметра λ̂ =
argminλ Rλcv. В самом конце мы можем объединить все имеющиеся данные
(обучающие и контрольные) и еще раз оценить параметры модели θ̂ =
argminθ Rλ̂(θ, 𝒟).

5.4.4. Статистическая теория обучения*

Принципиальная проблема перекрестной проверки – низкая скорость, по‑
скольку модель приходится обучать несколько раз. Поэтому возникает же‑
лание аналитически вычислить аппроксимации или границы риска на ге‑
неральной совокупности. Это предмет статистической теории обучения
(СТО, англ. SLT) (см., например, [Vap98]).
Точнее, целью СТО является вычисление верхней границы ошибки обоб‑
щения с некоторой вероятностью. Если эта граница удовлетворяется, то
есть уверенность, что для гипотезы, выбранной методом минимизации эм‑
пирического риска, риск на генеральной совокупности тоже будет низким.
В случае бинарных классификаторов это означает, что гипотеза будет давать
правильные предсказания; в таком случае мы говорим, что она вероятно
приближенно корректна (probably approximately correct – PAC), а класс ги‑
потез называется PAC-обучаемым (детали см., например, в [KV94]).

5.4.4.1. Нахождение границы ошибки обобщения
В этом разделе мы выведем условия, при которых можно доказать, что класс
гипотез является PAC-обучаемым. Сначала рассмотрим случай конечного
пространства гипотез размером dim(ℋ) = |ℋ|. Иными словами, мы выбираем
гипотезу из конечного списка, а не оптимизируем вещественные параметры.
Тогда можно доказать следующую теорему.
Теорема 5.4.1. Для любого распределения данных p* и любого набора данных 𝒟
размера N, выбранного из p* вероятность того, что ошибка обобщения бинарного классификатора будет больше ε в худшем случае, ограничена сверху значением

Tlgm: @it_boooks

258  Теория принятия решений
(5.92)
где R(h, 𝒟) = (1/N)åNi=1 𝕀(f(xi) ¹ yi*) – эмпирический риск, а R(h) = 𝔼[𝕀(f(x) ¹ y*)] –
риск на генеральной совокупности.

Доказательство. Прежде чем приступать к доказательству, приведем два
полезных результата. Первый – неравенство Хёфдинга, утверждающее, что
если E1, …, EN ~ Ber(θ), то для любого ε > 0
(5.93)


где E = (1/N)åNi=1 Ei – эмпирическая частота ошибок, а θ – истинная часто‑
та ошибок. Второй – граница объединения – утверждает, что если A1, …,
d
Ai) £ ådi=1 P(Ai). Применяя эти результаты,
Ad – множество событий, то P(∪i=1
имеем:
(5.94)

(5.95)
(5.96)


Эта граница говорит, что оптимистичность оценки на обучающем наборе
возрастает с увеличением dim(ℋ), но убывает с увеличением N = |𝒟|, как
и следовало ожидать.

5.4.4.2. VC-размерность
Если пространство гипотез ℋ бесконечно (т. е. параметры вещественные),
то использовать dim(ℋ) = |ℋ| невозможно. Вместо этого используется VCразмерность класса гипотез, названная так в честь Вапника и Червоненкиса;
она измеряет количество степеней свободы (эффективное число параметров)
класса гипотез. Детали см., например, в работе [Vap98].
К сожалению, вычислить VC-размерность многих интересных моделей
трудно, а ее верхние границы обычно очень нестрогие, так что практическая
ценность этого подхода ограничена. Однако недавно были предложены дру‑
гие, более практичные, оценки ошибки обобщения, особенно для глубоких
нейронных сетей (см., например, [Jia+20]).

5.5. Частотная проВерка гипотез*
Пусть имеется две гипотезы, нулевая H0 и альтернативная H1, и на основе
набора данных 𝒟 требуется выбрать предположительно правильную. Можно
было бы воспользоваться байесовским подходом и вычислить коэффициент

Tlgm: @it_boooks

Частотная проверка гипотез 259

Байеса p(H0|𝒟)/p(H1|𝒟), как было описано в разделе 5.2. Однако для этого не‑
обходимо проинтегрировать по всем возможным параметризациям моделей
H0 и H1, что может быть трудно с вычислительной точки зрения, а кроме
того, результат может сильно зависеть от выбора априорного распределения.
В этом разделе мы рассмотрим частотный подход к решению этой проблемы.

5.5.1. Критерий отношения правдоподобия
Если использовать бинарную потерю и предположить, что p(H0) = p(H1),
то оптимальным будет решение принять H0 тогда и только тогда, когда
p(𝒟|H0)/p(𝒟|H1) > 1. Это называется критерием отношения правдоподобия. Ниже приводятся примеры.

5.5.1.1. Пример: сравнение гауссовых средних
Предположим, мы хотим знать, стоит ли за данными гауссово распределение
со средним μ0 или μ1. (Предполагается, что дисперсия σ2 одинакова и из‑
вестна.) Это показано на рис. 5.10a, где изображены графики p(x|H0) и p(x|H1).
Отношение правдоподобия вычисляется следующим образом:

(5.97)

(5.98)
Как видим, это отношение зависит только от наблюдаемых данных че‑
рез их среднее —
x . Это пример критериальной статистики τ(𝒟) – достаточ‑
ной скалярной статистики для проверки гипотез. Из рис. 5.10a видно, что

p(𝒟|H0)/p(𝒟|H1) > 1 тогда и только тогда, когда x < x*, где x* – точка пересече‑
ния двух функций плотности вероятности (предполагается, что такая точка
единственна).

(a)

(b)

Рис. 5.10  (a) Парадигма проверки гипотез Неймана–Пирсона. (b) Две гипотетически двусторонние кривые мощности критерия. На основе рис. 6.3.5 из
работы [LM86]. Построено программой по адресу figures.probml.ai/book1/5.10

Tlgm: @it_boooks

260  Теория принятия решений

5.5.1.2. Простые и сложные гипотезы
В разделе 5.5.1.1 параметры нулевой и альтернативной гипотез либо задава‑
лись полностью (μ0 и μ1), либо были общими (σ2). Это называется проверкой
простых гипотез. В общем случае могут быть заданы не все параметры
гипотезы; это называется сложной гипотезой. В таком случае неизвестные
параметры следует исключить путем интегрирования, как в байесовском
подходе, потому что гипотеза с большим числом параметров всегда будет
иметь более высокое правдоподобие. В качестве приближения можно ис‑
ключить их путем взятия максимума, что дает критерий максимального
отношения правдоподобия:
(5.99)

5.5.2. Проверка значимости нулевой гипотезы
Вместо того чтобы предполагать пороговую потерю, обычно проектируют ре‑
шающее правило, так чтобы частота ошибок первого рода (вероятность по
ошибке отвергнуть нулевую гипотезу H0) была равна α. (Подробнее о частотах
ошибок бинарных решающих правил см. раздел 5.1.3.) Частота ошибок α на‑
зывается значимостью критерия. А подход в целом называется проверкой
значимости нулевой гипотезы (null hypothesis significance testing – NHST).
В примере с гауссовым средним (рис. 5.10a) частота ошибок первого рода
обозначена заштрихованной синим цветом областью:
α(μ0) = p(отвергнуть H0|H0 истинна)

(5.100)
(5.101)
(5.102)

Отсюда x* = zασ/
+ μ0, где zα – верхний α-квантиль стандартного нор‑
мального распределения.
Частота ошибок второго рода – это вероятность ошибочно принять нуле‑
вую гипотезу, хотя истинна альтернативная:
β(μ1) = p(ошибка второго рода)
= p(принять H0|H1 истинна) = p(τ(𝒟 ) < τ*|𝒟 ~ H1).

(5.103)

Эта величина показана заштрихованной красным цветом области на
рис. 5.10a. Мощность (power) критерия по определению равна 1 - β(μ1); это
вероятность отвергнуть гипотезу H0 при условии, что истинна H1. Иными сло‑
вами, это способность критерия правильно распознавать, что нулевая гипо‑
теза ложна. Очевидно, что наименьшая мощность имеет место, когда μ1 = μ0
(кривые налагаются друг на друга); в этом случае имеем 1 - β(μ1) = α(μ0).

Tlgm: @it_boooks

Частотная проверка гипотез  261

Чем дальше отстоят друг от друга μ1 и μ0, тем ближе мощность к 1 (поскольку
красная область уменьшается, β ® 0). Если имеется два критерия, A и B, где
power(B) ³ power(A) при одной и той же частоте ошибок первого рода, то
говорят, что B мажорирует A (см. рис. 5.10b). Критерий самой большой мощ‑
ности в предположении справедливости H1 среди всех критериев с уровнем
значимости α называется наиболее мощным критерием. Оказывается,
что наиболее мощным является критерий отношения правдоподобия; этот
результат известен как теорема Неймана–Пирсона.

5.5.3. p-значения
Когда H0 отвергается, часто говорят, что результат статистически значим
при уровне α. Однако результат может быть статистически, но не практиче‑
ски значимым, все зависит от того, насколько далеко от решающей границы
находится критериальная статистика.
Вместо того чтобы объявлять результат значимым или незначимым, лучше
указать p-значение. Так называется вероятность, в предположении справед‑
ливости нулевой гипотезы, наблюдать критериальную статистику, большую
или равную фактически наблюдаемой:
(5.104)
Иначе говоря, pval(τobs) Pr(τnull ³ τobs), где τobs = τ(𝒟), τnull = τ(𝒟 ), а 𝒟 ~
H0 – гипотетические будущие данные. Чтобы стала ясна связь с проверкой
гипотез, предположим, что выбран такой порог принятия решения t*, что
Pr(τ(𝒟 ) ³ t*|H0) = α. Если положить t* = τ(𝒟), то α = pval(τ(𝒟)).
Следовательно, принимая только гипотезы, для которых p-значение мень‑
ше α = 0.05, мы в 95 % случаев будем правильно отвергать нулевую гипотезу.
Однако это не значит, что альтернативная гипотеза H1 истинна с вероятно‑
стью 0.95. На самом деле даже специалисты в большинстве своем неправиль‑
но интерпретируют p-значения1. Величина, которую чаще всего хотелось
бы вычислить, – это байесовская апостериорная вероятность p(H1|𝒟) = 0.95.
Подробнее об этом важном различии см. раздел 5.5.4.

5.5.4. О вреде p-значений
p-значение часто интерпретируют как правдоподобие данных в предполо‑
жении справедливости нулевой гипотезы, считая, что малые значения якобы
означают, что H0 маловероятна, а H1, следовательно, вероятна. При этом рас‑
суждение строится так:
Если H0 истинна, то такая критериальная статистика, скорее всего, не
имела бы места. Но она имеет место. Следовательно, H0, скорее всего,
ложна.
1

См., например, https://fivethirtyeight.com/features/not-even-scientists-can-easily-explain-p-values/.

Tlgm: @it_boooks

262  Теория принятия решений
Однако это рассуждение неверно. Чтобы понять, почему, рассмотрим сле‑
дующий пример (взят из работы [Coh94]):
Если человек американец, то, скорее всего, он не является членом Кон‑
гресса. Этот человек член Конгресса. Следовательно, он, скорее всего,
не американец.
Очевидно, что это рассуждение ошибочно. Для сравнения приведем логи‑
чески верное рассуждение:
Если человек марсианин, то он не является членом Конгресса. Этот че‑
ловек член Конгресса. Следовательно, он не марсианин.
Разница между этими двумя случаями в том, что в примере с марсиани‑
ном используется дедукция, т. е. рассуждение от логического определения
к его следствиям. Точнее, в этом примере используется логическое правило
modus tollens, когда мы начинаем с определения вида P ⇒ Q и, наблюдая
¬Q, заключаем, что ¬P. Наоборот, в примере с американцем используется
индукция, т. е. рассуждение в обратном направлении – от наблюдаемого
факта к вероятным (но необязательно истинным) причинам – с применени‑
ем статистических закономерностей, а не логически точных определений.
Для выполнения индукции необходимо использовать вероятностный вы‑
вод (детали подробно объясняются в работе [Jay03]). В частности, чтобы вы‑
числить вероятность нулевой гипотезы, нужно применить формулу Байеса:
(5.105)
Если априорное распределение равномерное, т. е. p(H0) = p(H1) = 0.5, то
ее можно переписать в терминах отношения правдоподобия LR = p(𝒟|H0)/
p(𝒟|H1) следующим образом:
(5.106)
В примере с американским Конгрессом 𝒟 является наблюдением, согласно
которому человек является членом Конгресса. Нулевая гипотеза H0 утверж‑
дает, что человек американец, а альтернативная гипотеза H1 – что он не
американец. Мы предполагаем, что вероятность p(𝒟|H0) мала, потому что
большинство американцев не являются членами Конгресса. Однако и вероят‑
ность p(𝒟|H1) тоже мала – на самом деле в этом примере она равна 0, потому
что только американцы могут быть членами Конгресса. Поэтому LR = ¥, так
что p(H0|𝒟) = 1.0, как и подсказывает интуиция. Заметим, однако, что при
проверке значимости нулевой гипотезы p(𝒟|H1) игнорируется, равно как
и априорная вероятность p(H0), поэтому результаты получаются неверны‑
ми – и не только в этой, а и во многих других задачах.
В общем случае различие между p-значениями и p(H0|𝒟) может быть очень
велико. Так, в работе [SBB01] показано, что, даже если p-значение равно всего

Tlgm: @it_boooks

Частотная проверка гипотез  263

0.05, апостериорная вероятность H0 может достигать 30 % и более, даже если
априорное распределение равномерное.
Солнце только что
взорвалось?
(Сейчас ночь, так что мы не уверены)
Детектор нейтрино измеряет,
стало ли Солнце новой
Затем он бросает две
кости. Если на обеих выпала
шестерка, то детектор лжет
нам, в противном случае
говорит правду
Попробуем.
Детектор,
Солнце стало
новой?
Бросает

ДА

Частотный статистик
Вероятность, что этот
результат - чистая
случайность, равна 1/36 =
0.0027; 10 - Поскольку
p < 0.05, я делаю вывод,
что Солнце взорвалось

Байесовский статистик
Ставлю
50 долларов,
что нет

Рис. 5.11  Иллюстрация различия между частотным и байесовским подходом. (Слова p < 0.05 объясняются в разделе 5.5.4.
Слова о «ставке» – отсылка к теореме о голландской книге, которая по существу доказывает, что байесовский подход к азартным
играм (и другим задачам теории принятия решений) является
оптимальным, как объясняется, например, в работе [Háj08].) Взято со страницы https://xkcd.com/1132/. Печатается с разрешения
Рэндалла Монро (автора xkcd)

Рассмотрим конкретный пример из [SAM04, стр. 74]. Предположим, что
произведено 200 клинических испытаний некоторого лекарства. И мы про‑
веряем статистический критерий, чтобы понять, имеет лекарство значимый
эффект или нет. В этом критерии частота ошибок первого рода α = 0.05,

Tlgm: @it_boooks

264  Теория принятия решений
а частота ошибок второго рода β = 0.2. Получившиеся данные показаны
в табл. 5.7.
Таблица 5.7. Некоторые статистики гипотетического
клинического испытания [SAM04, стр. 74]
«Не значимо»
«Значимо»

Неэффективно
171
9
180

Эффективно
4
16
20

175
25
200

Мы можем следующим образом вычислить вероятность неэффективно‑
сти лекарства при условии, что результаты предположительно «значимы»
(significant):
(5.107)
(5.108)

(5.109)
Если у нас имеются априорные знания, основанные на прошлом опы‑
те, что большинство (скажем, 90 %) лекарств неэффективно, то находим
p(H0|‘significant’) = 0.36, что гораздо больше, чем вероятность 5 %, которую
люди обычно ассоциируют с p-значением α = 0.05.
Таким образом, мы не должны доверять заявлениям о статистической зна‑
чимости, если они идут вразрез с нашим прошлым опытом.

5.5.5. Почему же не все исповедуют байесовский
подход?
В разделах 4.7.5 и 5.5.4 мы видели, что вывод, основанный на частотных
принципах, может демонстрировать интуитивно неочевидное поведение,
которое иногда вступает в противоречие со здравым смыслом. На это об‑
ращено внимание в многочисленных статьях (см., например, [Mat98; MS11;
Kru13; Gel16; Hoe+14; Lyu+20; Cha+19b]).
Фундаментальная причина заключается в том, что частотный вывод на‑
рушает принцип правдоподобия [BW88], который гласит, что вывод должен
быть основан на правдоподобии наблюдаемых данных, а не на гипотети‑
ческих будущих данных, которые мы не наблюдали. Байесовский подход,
очевидно, удовлетворяет принципу правдоподобия и, следовательно, не под‑
вержен таким патологиям.

Tlgm: @it_boooks

Частотная проверка гипотез  265

Учитывая фундаментальные изъяны частотной статистики и тот факт, что
байесовские методы такими изъянами не страдают, возникает естествен‑
ный вопрос: «Почему же не все исповедуют байесовский подход»? Статистик
(приверженец частотного подхода) Брэдли Эфрон написал статью, которую
так и назвал [Efr86]. Она коротенькая, и ее стоит прочитать всем интересую‑
щимся этим вопросом. Ниже процитировано ее начало:
Вопрос, вынесенный в заголовок, имеет смысл по меньшей мере по
двум причинам. Прежде всего, все когда-то были «байесовцами». Ла‑
плас всей душой поддерживал байесовскую постановку проблемы вы‑
вода, и большинство ученых XIX века были с ним солидарны. Включая
Гаусса, работы которого по статистике обычно изложены в частотных
терминах.
Второй, более важный, момент – убедительность байесовской аргумен‑
тации. Современные статистики, идя по стопам Сэвиджа и де Финетти, вы‑
двинули мощные теоретические аргументы в пользу байесовского выво‑
да. Побочным продуктом этой работы стал обескураживающий перечень
противоречий, свойственных частотной точке зрения.
И тем не менее не все исповедуют байесовский подход. Наше время
(1986 год) – первое столетие, в котором статистика широко используется
в научных работах, и так сложилось, что статистика XX века преиму‑
щественно не байесовская. Однако Линдли (1975) предсказывает, что
в XXI веке это положение изменится.
Время покажет, был ли Линдли прав. Однако похоже, все идет к тому. На‑
пример, некоторые журналы запретили использовать p-значения [TM15;
AGM19], а журнал The American Statistician (издаваемый Американской ста‑
тистической ассоциацией) посвятил целый выпуск предупреждениям отно‑
сительно использования p-значений и NHST [WSL19].
Традиционно барьером на пути использования байесовских методов была
сложность вычислений, но в наши дни это уже не такая серьезная проблема,
поскольку компьютеры стали быстрее, а алгоритмы качественнее (мы об‑
судим это во втором томе книги, [Mur22]). Другое, более фундаментальное,
затруднение заключается в том, что байесовский подход правилен лишь на‑
столько, насколько правильны лежащие в основе модели предположения.
Однако это замечание в равной мере относится и к частотным методам,
так как выборочное распределение оценивателя должно выводиться с ис‑
пользованием предположений о механизме порождения данных. (На самом
деле в работе [BT73] показано, что выборочные распределения для оценки
MLE в типичных моделях идентичны апостериорным распределениям при
неинформативном априорном.) По счастью, мы можем проверить правиль‑
ность предположений эмпирически с помощью перекрестной проверки (раз‑
дел 4.5.5), калибровки и байесовской проверки моделей. Мы обсудим эти
вопросы во втором томе.

Tlgm: @it_boooks

266  Теория принятия решений
Подводя итоги, стоит процитировать Дональда Рубина, который написал
статью [Rub84] под названием «Bayesianly Justifiable and Relevant Frequency
Calculations for the Applied Statistician»1. В ней он пишет:
Прикладной статистик должен иметь байесовский склад ума в принципе
и поверять его реальным миром на практике. Он должен стремиться
использовать такие спецификации, которые приводят к приближенно
калиброванным процедурам при разумных отклонениях [от исходных
предположений]. Он должен избегать моделей, существенно противоре‑
чащих наблюдаемым данным, – частотные вычисления для гипотетиче‑
ских репликаций могут смоделировать адекватность модели и оказать
содействие в выборе более подходящих моделей.

5.6. упражнения
Упражнение 5.1 [бинарные классификаторы с возможностью отклонения].
(Источник: [DHS01, Q2.13].)
Во многих задачах классификации есть возможность либо отнести x к клас‑
су j, либо, если нет уверенности, отклонить пример. Если стоимость отклоне‑
ния меньше, чем стоимость неправильной классификации объекта, то такое
действие может оказаться оптимальным. Пусть αi означает, что выбрано
действие i из диапазона 1 … C + 1, где C – число классов, а C + 1 – отклоне‑
ние. Пусть Y = j – истинное (но неизвестное) состояние природы. Определим
следующую функцию потерь:

(5.110)
Иными словами, мы несем нулевую потерю 0 в случае правильной класси‑
фикации, потерю λr, если пример отклонен, и потерю λs в случае неправиль‑
ной классификации.
a. Покажите, что минимальный риск достигается, когда мы принимаем
решение Y = j, если p(Y = j|x) ³ p(Y = k|x) для всех k (т. е. j – самый
вероятный класс) и если p(Y = j|x) ³ 1 - λr /λs, а в противном случае от‑
клоняем пример.
b. Качественно опишите, что происходит, когда λr /λs увеличивается от 0
до 1 (т. е. относительная стоимость отклонения растет).
Упражнение 5.2 [проблема продавца газет*].
Рассмотрим следующую классическую задачу теории принятия решений
и экономики. Требуется решить, какое количество Q некоторого продукта
(например, газет) купить, чтобы максимизировать прибыль. Оптимальное
1

Байесовское обоснование и релевантные частотные вычисления для прикладного
статистика.

Tlgm: @it_boooks

Упражнения  267

количество зависит от предполагаемого спроса D на продукт, от ваших за‑
трат на его приобретение C и назначенной вами продажной цены P. Пред‑
положим, что D – неизвестная величина, но известны ее функция плотности
вероятности f(D) и функция распределения F(D). Мы можем вычислить ожи‑
даемую прибыль, рассмотрев два случая: если D > Q, то мы продаем все Q
экземпляров и получаем прибыль π = (P - C)Q; если же D < Q, то мы продаем
только D экземпляров, получаем прибыль (P - C)D, но несем убытки в раз‑
мере C(Q - D) на нераспроданных экземплярах. Таким образом, ожидаемая
прибыль при закупке Q единиц продукта равна:

(5.111)
Упростите это выражение, затем возьмите производные по Q и покажите,
что оптимальная величина Q* (которая доставляет максимум ожидаемой
прибыли) удовлетворяет условию:
(5.112)
Упражнение 5.3 [коэффициенты Байеса и ROC-кривые*].
Пусть B = p(D|H1)/p(D|H0) – коэффициент Байеса в пользу модели 1. Пред‑
положим, что мы построили графики двух ROC-кривых, одна из которых
вычислена путем задания порога B, а другая – путем задания порога p(H1|D).
Они будут одинаковыми или разными? Объясните свой ответ.
Упражнение 5.4 [апостериорная медиана – оптимальная оценка при 𝓁1-потере].
Докажите, что апостериорная медиана является оптимальной оценкой
в случае 𝓁1-потери.

Tlgm: @it_boooks

Глава

6
Теория информации

В этой главе мы познакомимся с основами теории информации. Дополни‑
тельные сведения можно найти в других книгах, например [Mac03; CT06],
а также во втором томе этой книги, [Mur22].

6.1. Энтропия
Энтропию распределения вероятностей можно интерпретировать как меру
неопределенности или непредсказуемости случайной величины, выбранной
из этого распределения.
Мы можем воспользоваться энтропией, чтобы определить собственную
информацию источника данных. Например, предположим, что наблюдается
последовательность символов Xn ~ p, порожденная распределением p. Если
энтропия p высока, то предсказать значение каждого наблюдения Xn будет
трудно. Поэтому говорят, что набор данных 𝒟 = (X1, …, Xn) имеет высокую
собственную информацию. Напротив, если p – вырожденное распределение
с нулевой энтропией (минимально возможное значение), то все Xn будут
одинаковы, поэтому 𝒟 содержит мало информации. (Все сказанное можно
формализовать в терминах сжатия данных, но это будет обсуждаться во вто‑
ром томе.)

6.1.1. Энтропия дискретных случайных величин
Энтропия дискретной случайной величины X, имеющей K состояний с рас‑
пределением p, определяется формулой:
(6.1)
(Отметим, что ℍ(X) обозначает энтропию случайной величины с распре‑
делением p, точно так же как 𝕍[X] обозначает дисперсию распределения,
ассоциированного с X; можно было бы вместо этого писать ℍ(p).) Обычно
логарифм берется по основанию 2, и тогда единицы энтропии называют‑
ся битами (сокращение от binary digit – двоичная цифра). Например, если

Tlgm: @it_boooks

Энтропия  269

X Î {1, …, 5}, а гистограмма распределения имеет вид p = [0.25, 0.25, 0.2, 0.15,
0.15], то H = 2.29 бит. Если в качестве основания берется e, то единица из‑
мерения называется нат.
Дискретным распределением с максимальной энтропией является рав‑
номерное распределение. Следовательно, для K-арной случайной величины
максимум энтропии достигается, когда p(x = k) = 1/K; в этом случае, ℍ(X) =
log2 K. Чтобы убедиться в этом, заметим, что
(6.2)
Наоборот, распределением с минимальной (нулевой) энтропией является
любая дельта-функция, для которой вся масса вероятности сосредоточена
в одном состоянии. У такого распределения нет никакой неопределенности.
В частном случае бинарных случайных величин X Î {0, 1} мы можем на‑
писать p(X = 1) = θ и p(X = 0) = 1 - θ. Поэтому энтропия принимает вид:
ℍ(X) = -[p(X = 1)log2p(X = 1) + p(X = 0)log2p(X = 0)]
= -[θlog2θ + (1 - θ)log2(1 - θ)].

(6.3)
(6.4)

Это называется функцией двоичной энтропии и также обозначается
ℍ(θ). График этой функции показан на рис. 6.1. Как видим, максимальное
значение, равное 1 биту, достигается, когда распределение равномерное,
θ = 0.5. Чтобы определить состояние симметричной монеты, достаточно
одного вопроса, предполагающего ответ «да» или «нет».

Рис. 6.1  Энтропия бернуллиевой случайной величины как
функция от θ. Максимальная энтропия равна log22 = 1. Построено
программой по адресу figures.probml.ai/book1/6.1

В качестве интересного применения энтропии рассмотрим задачу о пред‑
ставлении мотива последовательности ДНК – распределения коротких
строк ДНК. Это распределение можно оценить, выровняв множество после‑
довательностей ДНК (например, разных видов), а затем оценив эмпириче‑
ское распределение возможных нуклеотидов, представленных алфавитом из
четырех букв, – X ~ {A, C, G, T}, в каждой позиции t i-й последовательности:

Tlgm: @it_boooks

270  Теория информации
(6.5)
θ̂ t = Nt /N.

(6.6)

Здесь Nt – вектор длины 4, содержащий число вхождений каждой из че‑
тырех букв в t-й позиции последовательностей из данного множества. Это
распределение θ̂ t называется мотивом. Мы также можем вычислить самую
вероятную букву в каждой позиции; это называется консенсусной последовательностью.
Один из способов визуального обобщения этих данных – логотип последовательности, показанный на рис. 6.2b. Мы рисуем буквы A, C, G и T, так что
самая вероятная буква оказывается сверху; высота t-го столбца равна 2 - Ht,
где Ht – энтропия θ̂ t (отметим, что 2 – максимально возможная энтропия рас‑
пределения 4 букв). Таким образом, высокие столбцы соответствуют почти
детерминированным распределениям, т. е. позициям, оказавшимся консер‑
вативными в ходе эволюции (например, потому что они части кодирующей
области гена). В этом примере мы видим, что столбец 13 состоит только из
букв G и, значит, имеет высоту 2.

(a)

(b)

Рис. 6.2  (a) Несколько выровненных последовательностей ДНК. Каждая
строка – последовательность, а столбец – позиция внутри последовательности. (b) Соответствующая матрица весов позиций, представленная в виде
логотипа последовательности. Каждый столбец представляет распределение вероятностей алфавита {A, C, G, T} для соответствующей позиции последовательности. Размер буквы пропорционален вероятности. Высота столбца t равна 2 - Ht, где 0 £ Ht £ 2 – энтропия (в битах) распределения pt.
Таким образом, детерминированные распределения (с нулевой энтропией,
соответствующие консервативным позициям) имеют высоту 2, а равномерные распределения (с энтропией 2) – высоту 0. Построено программой по
адресу figures.probml.ai/book1/6.2

Для оценки энтропии случайной величины, имеющей много возможных
состояний, нужно оценить ее распределение, для чего может понадобиться
много данных. Например, пусть X представляет идентификатор слова в ан‑
глоязычном документе. Поскольку имеется длинный хвост редких слов, да
еще постоянно возникают новые слова, трудно дать надежную оценку p(X),
а значит, и ℍ(X). Одно из возможных решений этой проблемы приведено
в работе [VV13].

Tlgm: @it_boooks

Энтропия  271

6.1.2. Перекрестная энтропия
Перекрестной энтропией распределений p и q называется величина:
(6.7)
Можно показать, что перекрестная энтропия равна математическому ожи‑
данию числа битов, необходимых для сжатия примеров данных, выбранных
из распределения p, с помощью кода, основанного на распределении q. Она
достигает минимума, когда q = p, и в этом случае ожидаемое число битов
оптимального кода равно ℍ(p, p) = ℍ(p) – это утверждение называется теоремой Шеннона о кодировании источника (см., например, [CT06]).

6.1.3. Совместная энтропия
Совместной энтропией двух случайных величин X и Y называется
(6.8)
Например, рассмотрим выбор целого числа от 1 до 8, n Î {1, …, 8}. Пусть
X(n) = 1, если n четно, а Y(n) = 1, если n – простое число:
n
X
Y

1
0
0

2
1
1

3
0
1

4
1
0

5
0
1

6
1
0

7
0
1

8
1
0

Совместное распределение имеет вид
p(X, Y)

Y=0

X=0
X=1

1/8
3/8

Y=1
3/8
1/8

поэтому совместная энтропия равна:
(6.9)
Очевидно, что маргинальные вероятности распределены равномерно:
p(X = 1) = p(X = 0) = p(Y = 0) = p(Y = 1) = 0.5, поэтому ℍ(X) = ℍ(Y) = 1. Отсюда
ℍ(X, Y) = 1.81 бит < ℍ(X) + ℍ(Y) = 2 бита. На самом деле эта верхняя граница
совместной энтропии имеет место и в общем случае. Если X и Y независи‑
мы, то ℍ(X, Y) = ℍ(X) + ℍ(Y), так что оценка неулучшаемая. Это интуитивно
понятно: когда части каким-то образом коррелированы, число «степеней
свободы» в системе уменьшается, поэтому снижается и суммарная энтропия.

Tlgm: @it_boooks

272  Теория информации
А какова нижняя граница ℍ(X, Y)? Если Y – детерминированная функция
от X, то ℍ(X, Y) = ℍ(X). Поэтому
ℍ(X, Y) ³ max{ℍ(X), ℍ(Y)} ³ 0.

(6.10)

Интуитивно это означает, что комбинирование величин не уменьшает
энтропию: нельзя уменьшить неопределенность, просто добавляя в задачу
новые неизвестные, необходимо наблюдать какие-то данные; этот вопрос
мы обсудим в разделе 6.1.4.
Определение совместной энтропии очевидным образом обобщается на
n случайных величин.

6.1.4. Условная энтропия
Условной энтропией Y при условии X называется неопределенность Y,
остающаяся после наблюдения X, усредненная по всем возможным значе‑
ниям X:
(6.11)
(6.12)
(6.13)
(6.14)
= H(X, Y) - H(X).

(6.15)

Если Y – детерминированная функция от X, то знание X полностью опре‑
деляет Y, так что ℍ(Y|X) = 0. Если X и Y независимы, то знание X ничего не
говорит о Y, поэтому ℍ(Y|X) = ℍ(Y). Так как ℍ(X, Y) £ ℍ(Y) + ℍ(X), имеем
ℍ(Y|X) £ ℍ(Y),

(6.16)

ℍ(X1, X2) = ℍ(X1) + ℍ(X2|X1).

(6.17)

причем равенство достигается тогда и только тогда, когда X и Y независимы.
Это значит, что в среднем обусловливание данными никогда не увеличива‑
ет неопределенность. Оговорка «в среднем» необходима, потому что после
любого конкретного наблюдения (значения X) «неожиданность» может воз‑
расти (т. е. ℍ(Y|x) > ℍ(Y)). Однако с точки зрения математического ожидания
ознакомление с данными – вещь хорошая (см. также раздел 6.3.8).
Формулу (6.15) можно переписать следующим образом:

Она обобщается в цепное правило для энтропии:
(6.18)

Tlgm: @it_boooks

Энтропия  273

6.1.5. Перплексия
Перплексией дискретного распределения вероятностей p называется ве‑
личина
(6.19)
Часто ее интерпретируют как меру предсказуемости. Например, пусть p –
равномерное распределение K состояний. В этом случае перплексия равна K.
Очевидно, что нижняя граница перплексии равна 20 = 1, и достигается она,
когда распределение позволяет точно предсказывать исходы.
Теперь предположим, что имеется эмпирическое распределение, основан‑
ное на данных 𝒟:
(6.20)

Мы можем измерить, насколько хорошо p предсказывает 𝒟, вычислив

(6.21)

Перплексия часто используется для оценки качества статистических язы‑
ковых моделей, т. е. моделей, порождающих последовательности лексем.
Предположим, что в роли данных выступает один большой документ x дли‑
ны N, а p – простая униграммная модель. В этом случае член перекрестной
энтропии имеет вид:
(6.22)
а значит, перплексия равна:
(6.23)
Иногда это выражение называют экспоненциальной перекрестной
энтропией. Как видим, это среднее геометрическое обратных вероят‑
ностей.
В случае языковых моделей при предсказании следующего слова мы обыч‑
но обусловливаем вероятность предыдущими словами. Например, в би‑
граммной модели используется марковская модель второго порядка вида
p(xi|xi-1). Определим коэффициент ветвления языковой модели как число
допустимых слов, которые могут следовать за данным словом. Таким об‑
разом, перплексия интерпретируется как средневзвешенный коэффициент
ветвления. Например, предположим, что модель предсказывает все слова
с равной вероятностью независимо от контекста, т. е. p(xi|xi-1) = 1/K. Тог‑
да перплексия равна ((1/K)N)-1/N = K. Если одни символы вероятнее других

Tlgm: @it_boooks

274  Теория информации
и модель правильно отражает этот факт, то ее перплексия будет меньше K.
Однако, как будет показано в разделе 6.2, имеет место неравенство ℍ(p*) £
ℍ(p*, p), так что мы никогда не сможем сделать перплексию меньше энтропии
порождающего случайного процесса p*.
Продолжение обсуждения перплексии и ее использования в языковых мо‑
делях см. в работе [JM08, стр. 96].

6.1.6. Дифференциальная энтропия непрерывных
случайных величин*
Если X – непрерывная случайная величина и p(x) – ее функция плотности
распределения, то дифференциальная энтропия определяется следующим
образом:
(6.24)
в предположении, что этот интеграл существует. Например, предположим,
что X ~ U(0, a). Тогда
(6.25)
Заметим, что, в отличие от дискретного случая, дифференциальная энтро‑
пия может быть отрицательной, поскольку функция плотности вероятности
может быть больше 1. Например, если X ~ U(0, 1/8), то h(X) = log2(1/8) = -3.
Чтобы лучше понять, что такое дифференциальная энтропия, вспомните,
что вещественные величины представимы лишь с конечной точностью.
Можно показать [CT91, стр. 228], что энтропия n-битовой дискретизации
непрерывной случайной величины X приближенно равна h(X) + n. Напри‑
мер, предположим, что X ~ U(0, 1/8). Тогда в двоичном представлении X
первые 3 бита справа от двоичной точки должны быть равны 0 (потому
что число £ 1/8). Поэтому, чтобы описать X с точностью n битов, необхо‑
димо только n - 3 бита, что согласуется с приведенным выше результатом
h(X) = -3.

6.1.6.1. Пример: энтропия гауссова распределения
Энтропия d-мерного гауссова распределения равна:
(6.26)
В одномерном случае это выражение принимает вид:
(6.27)

Tlgm: @it_boooks

Относительная энтропия (расхождение KL)  275

6.1.6.2. Связь с дисперсией
Энтропия гауссова распределения монотонно возрастает с ростом дисперсии.
Однако так бывает не всегда. Например, рассмотрим смесь двух одномерных
гауссовых распределений с центрами в точках -1 и +1. При раздвигании
средних, например в точки -10 и +10, дисперсия увеличивается (потому что
среднее расстояние до полного среднего становится больше). Однако энтро‑
пия остается более-менее постоянной, так как мы по-прежнему не уверены,
куда попадет пример, даже если знаем, что он будет вблизи -10 или +10.
(Точную энтропию смеси гауссовых распределений вычислить трудно, но спо‑
соб вычисления верхней и нижней границы представлен в работе [Hub+08].)

6.1.6.3. Дискретизация
В общем случае вычислить дифференциальную энтропию непрерывной
случайной величины трудно. Для получения простой аппроксимации мож‑
но произвести дискретизацию, или квантование величины. Есть разные
методы (см., например, [DKS95; KK06], где приведен обзор), но самый про‑
стой – раскидать распределение по интервалам на основе эмпирических
квантилей. Важнейший вопрос – сколько брать интервалов [LM04]. В работе
[Sco79] предложена следующая эвристика:
(6.28)
где σ(𝒟) – эмпирическое стандартное отклонение данных, а N = |𝒟| – коли‑
чество точек в эмпирическом распределении. Однако такая техника дискре‑
тизации плохо масштабируется, когда X – многомерный случайный вектор,
из-за проклятия размерности.

6.2. относительная Энтропия
(расхождение KL)*
Если даны два распределения p и q, то часто бывает полезно определить метрику, измеряющую их «близость» или «похожесть». На самом деле мы рас‑
смотрим более общий случай и определим меру расхождения D(p, q), которая
количественно выражает расстояние между q и p, не требуя, чтобы D была
метрикой в строгом смысле слова. Точнее, будем говорить, что D является
расхождением, если D(p, q) ³ 0, причем равенство достигается тогда и толь‑
ко тогда, когда p = q; напомним, что определение метрики требует, чтобы
функция D была симметричной и удовлетворяла неравенству треугольника
D(p, r) £ D(p, q) + D(q, r). Существует много разных мер расхождения. В этом
разделе мы будем рассматривать расхождение Кульбака–Лейблера (КЛ),
называемое также информационным выигрышем или относительной
энтропией распределений p и q.

Tlgm: @it_boooks

276  Теория информации

6.2.1. Определение
Для дискретных распределений расхождение КЛ определяется следующим
образом:
(6.29)
Это определение естественно обобщается на непрерывные распределения:
(6.30)

6.2.2. Интерпретация
Мы можем переписать расхождение КЛ в таком виде:
(6.31)

В первом члене мы узнаем отрицательную энтропию, а во втором пере‑
крестную энтропию. Можно показать, что перекрестная энтропия ℍ(p, q)
является нижней границей числа битов, необходимых для сжатия данных,
порожденных распределением p, с помощью кода, основанного на распре‑
делении q; поэтому расхождение КЛ можно интерпретировать как «дополни‑
тельное число битов», т. е. штраф, который придется уплатить, если в каче‑
стве основы для схемы кодирования выбрано неправильное распределение
q вместо истинного распределения p.
Существуют и другие интерпретации расхождения КЛ (см. второй том этой
книги, [Mur22]).

6.2.3. Пример: расхождение КЛ
между двумя гауссовыми распределениями
Можно показать, что расхождение КЛ между двумя многомерными гауссо‑
выми распределениями равно:

(6.32)
В скалярном случае это выражение принимает вид:
(6.33)

Tlgm: @it_boooks

Относительная энтропия (расхождение KL)  277

6.2.4. Неотрицательность расхождения КЛ
В этом разделе мы докажем, что расхождение КЛ всегда неотрицательно.
Для этого нам понадобится неравенство Йенсена, которое утверждает,
что для любой выпуклой функции f
(6.34)
где λi ³ 0 и åni=1 λi = 1. Иначе говоря, функция f от среднего меньше, чем
среднее функций f. Это очевидно для n = 2, потому что выпуклая кривая рас‑
положена выше прямой, соединяющей ее крайние точки (см. раздел 8.1.3).
Доказательство для общего случая можно провести по индукции.
Например, если f(x) = log(x) (это вогнутая функция), то имеем:
log(𝔼x g(x)) ³ 𝔼xlog(g(x)).

(6.35)

Ниже мы воспользуемся этим результатом.
Теорема 6.2.1 (информационное неравенство). 𝕂𝕃(p||q) ³ 0, причем равенство
достигается тогда и только тогда, когда p = q.

Доказательство. Мы проведем доказательство, следуя работе [CT06,
стр. 28]. Пусть A = {x : p(x) > 0} – опора p(x). Пользуясь вогнутостью логариф‑
ма и неравенством Йенсена (раздел 6.2.4), получаем:
(6.36)
(6.37)
(6.38)

Поскольку log(x) – строго вогнутая функция (-log(x) выпуклая), равенство
в (6.37) достигается тогда и только тогда, когда p(x) = cq(x) для некоторого
c, что описывает часть всего пространства 𝒳, содержащуюся в A. Равенство
в (6.38) достигается тогда и только тогда, когда åxÎA q(x) = åxÎ𝒳 q(x) = 1, откуда
следует, что c = 1. Поэтому 𝕂𝕃(p||q) = 0 тогда и только тогда, когда p(x) = q(x)
для всех x.

У этой теоремы много важных следствий, с которыми мы не раз встретим‑
ся в этой книге. Например, можно показать, что равномерное распределение
доставляет максимум энтропии.

Следствие 6.2.1 (равномерное распределение доставляет максимум энтропии). ℍ(X) £ log |𝒳|, где |𝒳| – число состояний 𝒳, причем равенство достигается
тогда и только тогда, когда распределение p(x) равномерное.

Tlgm: @it_boooks

278  Теория информации
Доказательство. Обозначим u(x) = 1/|𝒳|. Тогда
(6.39)

6.2.5. Расхождение КЛ и оценка максимального
правдоподобия



Пусть требуется найти распределение q, максимально близкое к p в терминах
расхождения КЛ:
(6.40)
Теперь предположим, что p – эмпирическое распределение, вся масса ко‑
торого равномерно сосредоточена в наблюдаемых обучающих данных:
(6.41)
Применив фильтрующее свойство дельта-функции, получаем:
(6.42)
(6.43)
,

(6.44)

где C = ò p(x)log p(x) – постоянная, не зависящая от q. Это так называемая
целевая функция перекрестной энтропии, которая равна среднему отрица‑
тельному логарифмическому правдоподобию q на обучающем наборе. Таким
образом, мы видим, что минимизация расхождения КЛ с эмпирическим рас‑
пределением эквивалентна максимизации правдоподобия.
Эта точка зрения делает явным дефект обучения на основе правдоподобия,
а именно то, что оно наделяет обучающий набор слишком большим весом.
В большинстве приложений мы на самом деле не верим, что эмпирическое
распределение является хорошим представлением истинного распределе‑
ния, поскольку оно всего лишь расставляет «пики» в конечном множестве
точек и оставляет плотность нулевой в других местах. Даже если набор дан‑
ных велик (скажем, миллион изображений), генеральная совокупность, из
которой выбираются данные, обычно еще больше (например, мощность мно‑
жества «всех естественных изображений» куда больше миллиона). Можно
было бы сгладить эмпирическое распределение, воспользовавшись ядерной
оценкой плотности (раздел 16.3), но тогда потребовалось бы похожее ядро на

Tlgm: @it_boooks

Относительная энтропия (расхождение KL)  279

пространстве изображений. Альтернативный алгоритмический подход – вос‑
пользоваться приращением данных, применяя к наблюдаемым примерам
возмущение, которое, как мы полагаем, имитирует «естественную вариа‑
цию». Применение оценки MLE к такому пополненному набору данных часто
дает прекрасные результаты, особенно при обучении моделей с большим
числом параметров (см. раздел 19.1).

6.2.6. Прямое и обратное расхождение КЛ
Пусть требуется аппроксимировать распределение p более простым распре‑
делением q. Для этого можно минимизировать либо 𝕂𝕃(q||p), либо 𝕂𝕃(p||q).
При этом получается разное поведение.
Сначала рассмотрим прямое расхождение КЛ, называемое также включающим, которое определяется следующим образом:
(6.45)
Его минимизация относительно q называется M-проекцией или проекцией момента.
Получить представление об оптимальном q можно, рассмотрев входные
данные x, для которых p(x) > 0, но q(x) = 0. В этом случае член log p(x)/q(x) бес‑
конечен. Следовательно, минимизация расхождения КЛ вынуждает q вклю‑
чить все области пространства, где вероятность p ненулевая. По-другому
можно сказать, что q избегает нулей или покрывает моды, и обычно оно
дает завышенную оценку носителя p. На рис. 6.3a показано покрытие моды,
когда p – бимодальное, а q – унимодальное распределение.

(a)

(b)

(c)

Рис. 6.3  Прямое и обратное расхождение КЛ для бимодального распределения. Синие кривые – линии уровня истинного распределения p, красные –
линии уровня унимодальной аппроксимации q. (a) Минимизация прямого
расхождения КЛ, 𝕂𝕃(p||q), относительно q заставляет q «покрывать» p. (b-c) Минимизация обратного расхождения КЛ, 𝕂𝕃(q||p), относительно q заставляет q
«фиксироваться» на одной из двух мод p. На основе рис. 10.3 из работы [Bis06].
Построено программой по адресу figures.probml.ai/book1/6.3

Теперь рассмотрим обратное расхождение КЛ, называемое также исключающим:

Tlgm: @it_boooks

280  Теория информации
(6.46)
Его минимизация относительно q называется I-проекцией или информационной проекцией.
Чтобы лучше понять природу оптимального q, рассмотрим входные дан‑
ные, для которых p(x) = 0, но q(x) > 0. В этом случае член log q(x)/p(x) бес‑
конечен. Следовательно, минимизация расхождения КЛ вынуждает q ис‑
ключить все области пространства, где вероятность p нулевая. Сделать это
можно, например, сосредоточив всю массу вероятности q в очень немногих
частях пространства; это называется форсированием нулей или поиском
мод. В таком случае q обычно занижает опору p. Поиск мод в случае, когда p
бимодальное, а q унимодальное, показан на рис. 6.3b–c.

6.3. Взаимная инФормация*
Расхождение КЛ дает способ измерения схожести двух распределений. А как
измерить, насколько зависимы две случайных величины? Можно свести во‑
прос об измерении зависимости случайных величин к вопросу о схожести их
распределений. Это приводит к понятию взаимной информации (mutual
information – MI) двух случайных величин.

6.3.1. Определение
Взаимной информации случайных величин X и Y называется следующая
функция:
(6.47)
(Мы пишем 𝕀(X; Y), а не 𝕀(X, Y) на случай, если X и/или Y представляют на‑
боры переменных; например, можно написать 𝕀(X; Y, Z), чтобы представить
взаимную информацию X и (Y, Z).) Для непрерывных случайных величин
нужно просто заменить суммы интегралами.
Легко видеть, что MI всегда неотрицательна, даже для непрерывных слу‑
чайных величин, потому что
𝕀(X; Y) = 𝕂𝕃(p(x, y)||p(x)p(y)) ³ 0.

(6.48)

6.3.2. Интерпретация

Зная, что взаимная информация – это расхождение КЛ между совместным
и разложенным на множители маргинальным распределением, мы можем
сказать, что MI измеряет информационный выигрыш от замены модели,

Tlgm: @it_boooks

Взаимная информация  281

которая рассматривает обе величины как независимые, p(x)p(y), моделью,
в которой используется их истинное совместное распределение p(x, y).
Чтобы лучше понять смысл MI, перепишем его в терминах совместной
и условной энтропий:
𝕀(X; Y) = ℍ(X) - ℍ(X|Y) = ℍ(Y) - ℍ(Y|X).

(6.49)

𝕀(X; Y) = ℍ(X, Y) - ℍ(X|Y) - ℍ(Y|X).

(6.50)

𝕀(X; Y) = ℍ(X) + ℍ(Y) - ℍ(X, Y).

(6.51)

Таким образом, мы можем интерпретировать взаимную информацию X
и Y как уменьшение неопределенности X после наблюдения Y или, в силу
симметрии, уменьшение неопределенности Y после наблюдения X. Кстати
говоря, это дает другое доказательство того, что обусловливание в среднем
уменьшает энтропию. Именно, имеем 0 £ 𝕀(X; Y) = ℍ(X) - ℍ(X|Y), откуда
ℍ(X|Y) £ ℍ(X).
Возможна и другая интерпретация. Можно показать, что
И наконец, можно показать, что

На рис. 6.4 эти формулы выражены в терминах информационных диаграмм. (Формально это мера – положительная или отрицательная – сопо‑
ставляющая теоретико-множественным выражениям их теоретико-инфор‑
мационные аналоги [Yeu91].)
Энтропия

Совместная энтропия

Взаимная информация

Условная энтропия

Рис. 6.4  Маргинальная энтропия, условная энтропия и взаимная информация, представленные с помощью информационных диаграмм. Печатается с разрешения Кэти Эверетт

Tlgm: @it_boooks

282  Теория информации

6.3.3. Пример
Вернемся к примеру простых и четных чисел из раздела 6.1.3. Напомним,
что ℍ(X) = ℍ(Y) = 1. Условное распределение p(Y|X) получается нормировкой
каждой строки:
X
X

0
1

Y 0
1/4
3/4

Y1
3/4
1/4

Отсюда условная энтропия равна:
,

(6.52)

а взаимная информация равна:
𝕀(X; Y) = ℍ(Y) - ℍ(Y|X) = (1 - 0.81) бита = 0.19 бита.

(6.53)

ℍ(X; Y) = ℍ(X|Y) + 𝕀(X; Y) + ℍ(Y|X)
= (0.81 + 0.19 + 0.81) бита = 1.81 бита.

(6.54)
(6.55)

Легко проверить, что

6.3.4. Условная взаимная информация
Определение условной взаимной информации очевидно:
𝕀(X; Y|Z)

𝔼p(Z)[𝕀(X; Y)|Z]
= ℍ(X|Z) + ℍ(Y|Z) - ℍ(X; Y|Z)
= ℍ(X|Z) - ℍ(X|Y, Z) = ℍ(Y|Z) - ℍ(Y|X, Z)
= ℍ(X, Z) + ℍ(Y, Z) - ℍ(Z) - ℍ(X, Y, Z)
= 𝕀(Y; X, Z) - 𝕀(Y; Z).

(6.56)
(6.57)
(6.58)
(6.59)
(6.60)
(6.61)

Последнее равенство означает, что условная взаимная информация – это
избыточная (остаточная) информация, которую X сообщает о Y, за вычетом
того, что мы уже знали о Y, имея только Z.
Формулу (6.61) можно переписать следующим образом:
𝕀(Z, Y; X) = 𝕀(Z; X) + 𝕀(Y; X|Z).

(6.62)

Обобщая на N случайных величин, получаем цепное правило для взаимной информации:

Tlgm: @it_boooks

Взаимная информация  283

(6.63)

6.3.5. Взаимная информация как «обобщенный
коэффициент корреляции»
Пусть пара (x, y) имеет совместное гауссово распределение:
(6.64)
Сейчас мы покажем, как вычислить взаимную информацию между X и Y.
Из формулы (6.26) находим, что энтропия равна:
(6.65)
Так как X и Y – по отдельности нормально распределенные случайные
величины с дисперсий σ2, имеем:
(6.66)
Отсюда
(6.67)

I(X, Y) = h(X) + h(Y) - h(X, Y)

(6.68)
(6.69)
.

(6.70)

Теперь обсудим некоторые интересные частные случаи.
1. ρ = 1. В этом случае X = Y и 𝕀(X, Y) = 1, что имеет смысл. Наблюдение
Y сообщает нам бесконечный объем информации о X (поскольку мы
точно знаем ее истинное значение).
2. ρ = 0. В этом случае X и Y независимы и 𝕀(X, Y) = 0, что тоже имеет
смысл. Наблюдение Y ничего не сообщает нам о X.
3. ρ = -1. В этом случае X = -Y и 𝕀(X, Y) = 1, что опять-таки имеет смысл.
Наблюдение Y позволяет предсказать X с бесконечной точностью.
Теперь рассмотрим случай, когда X и Y – скалярные величины, но их со‑
вместное распределение не гауссово. В общем случае трудно вычислить вза‑
имную информацию между непрерывными случайными величинами, по‑
тому что необходимо оценить совместную плотность p(X, Y). Для скалярных

Tlgm: @it_boooks

284  Теория информации
величин можно в качестве простой аппроксимации применить дискретизацию, или квантование, разделив области значений каждой величины
на интервалы и вычислив, сколько значений попадает в каждый интервал
гистограммы [Sco79]. Затем можно легко вычислить взаимную информацию,
пользуясь эмпирической функцией вероятности.
К сожалению, результат может существенно зависеть от количества ин‑
тервалов и положения их границ. Избежать этого можно, воспользовавшись
расстояниями до K ближайших соседей, чтобы оценить плотности непа‑
раметрическим адаптивным способом. Это основа оценки KSG взаимной
информации, предложенной в работе [KSG04]. Она реализована в функции
sklearn.feature_selection.mutual_info_regression. Подробнее об этой оценке
см. в работах [GOV18; HN19].

6.3.6. Нормированная взаимная информация
В некоторых приложениях удобно иметь нормированную меру зависимости,
изменяющуюся от 0 до 1. Сейчас мы обсудим один из способов построения
такой меры.
Прежде всего, отметим, что
𝕀(X; Y) = ℍ(X) - ℍ(X|Y) £ ℍ(X),
= ℍ(Y) - ℍ(Y|X) £ ℍ(Y),

(6.71)
(6.72)

0 £ 𝕀(X; Y) £ min(ℍ(X), ℍ(Y)).

(6.73)

так что

Поэтому определить нормированную взаимную информацию можно
следующим образом:
(6.74)
Эта величина принимает значения от 0 до 1. Если NMI(X, Y) = 0, то имеем
𝕀(X; Y) = 0, т. е. X и Y независимы. Если NMI(X; Y) = 1 и ℍ(X) < ℍ(Y), то
𝕀(X; Y) = ℍ(X) - ℍ(X|Y) = ℍ(X) Þ ℍ(X|Y) = 0,

(6.75)

т. е. X – детерминированная функция от Y. Например, предположим, что
X – дискретная случайная величина с функцией вероятности [0.5, 0.25, 0.25].
Имеем MI(X, X) = 1.5 (мы используем логарифм по основанию 2) и ℍ(X) = 1.5,
т. е. нормированная MI равна 1, как и следовало ожидать.
Для непрерывных случайных величин нормировать взаимную информа‑
цию труднее, потому что необходимо оценить дифференциальную энтро‑
пию, а это сильно зависит от уровня квантования. Дальнейшее обсуждение
см. в разделе 6.3.7.

Tlgm: @it_boooks

Взаимная информация  285

6.3.7. Максимальный коэффициент информации
Как было сказано в разделе 6.3.6, полезно иметь нормированную оценку вза‑
имной информации, но для вещественных данных вычислить ее трудно. Воз‑
можный подход, известный под названием максимальный коэффициент
информации (maximal information coefficient – MIC) [Res+11], заключается
в том, чтобы определить следующую величину:
(6.76)
где G – множество двумерных сеток, (X, Y)|G представляет дискретизацию
величин на сетке G, ||G|| равно min(Gx, Gy), где Gx – число ячеек сетки в на‑
правлении x, а Gy – число ячеек сетки в направлении y. (Максимальное разре‑
шение сетки зависит от размера выборки n; авторы предлагают ограничить
сетки, так чтобы GxGy £ B(n), где B(n) = nα, а α = 0.6.) В знаменателе находится
энтропия равномерного совместного распределения; деление на нее гаран‑
тирует, что 0 £ MIC £ 1.
Интуитивно эта статистика означает следующее: если существует связь
между X и Y, то должно существовать какое-то разбиение двумерного про‑
странства входов, улавливающее эту связь. Поскольку мы не знаем, какую
именно сетку использовать, MIC производит поиск на сетках с разным раз‑
решением (например, 2´2, 2´3 и т. д.), а также с разным расположением
границ. Зная сетку, легко дискретизировать данные и вычислить MI. Мы
определим характеристическую матрицу M(k, l) как максимальную вза‑
имную информацию, достижимую на любой сетке размера (k, l), нормиро‑
ванную на log(min(k, l)). Тогда MIC – максимальный элемент этой матрицы,
maxkl£B(n)M(k, l). Этот процесс наглядно изображен на рис. 6.5.

Рис. 6.5  Как вычисляется максимальный коэффициент информации (MIC).
(a) Производится поиск на сетках с разным разрешением и местоположением
ячеек и для каждой сетки вычисляется MI. (b) Для каждого разрешения сетки
(k, l) определяем матрицу M(k, l) как максимальную MI для любой сетки этого
размера, нормированную на log(min(k, l)). (c) Визуализируем матрицу M. Максимальный элемент (обозначенный звездочкой) по определению и есть MIC.
На основе рис. 1 из работы [Res+11]. Печатается с разрешения Дэвида Решефа

Tlgm: @it_boooks

286  Теория информации
В работе [Res+11] показано, что у этой величины имеется свойство равноценности (equitability), т. е. она дает похожие оценки одинаково зашумлен‑
ным связям независимо от типа связи (линейная, нелинейная, нефункцио‑
нальная и т. п.).
В работе [Res+16] предложена улучшенная оценка, названная MICe, кото‑
рую можно вычислить более эффективно и которая требует оптимизации
только по одномерным сеткам, что можно сделать за время O(n), применив
динамическое программирование.
Авторы предлагают также величину TICe (total information content – пол‑
ная собственная информация), которая обладает большей способностью
обнаруживать связи по выборкам небольшого размера, но меньшей равно‑
ценностью. Эффективную реализацию обеих метрик см. в работе [Alb+18].
Нулевой MIC можно интерпретировать как отсутствие связи между ве‑
личинами, а MIC, равный 1, как незашумленную связь любого вида. Это по‑
казано на рис. 6.6. В отличие от коэффициентов корреляции, MIC способен
находить не только линейные связи. Поэтому MIC называли «корреляцией
XXI века» [Spe11].

Рис. 6.6  Диаграммы некоторых двумерных распределений и соответствующие оценки коэффициента корреляции R2 и максимального коэффициента информации (MIC). Сравните с рис. 3.1. Построено программой по адресу figures.
probml.ai/book1/6.6

На рис. 6.7 приведен более интересный пример, взятый из работы [Res+11].
Данные состоят из 357 величин, измеряющих различные показатели в об‑
ласти социального устройства, экономики, здравоохранения и политики,
собранные Всемирной организацией здравоохранения (ВОЗ). В левой части
рисунка мы видим зависимость коэффициента корреляции (CC) от MIC для
всех 63 546 пар величин. В правой части приведены диаграммы рассеяния
для конкретных пар величин, которые мы сейчас и обсудим.
 В точке C (рядом с 0,0 на графике) коэффициенты CC и MIC малы. Из
соответствующей диаграммы рассеяния видно, что между этими ве‑

Tlgm: @it_boooks

Взаимная информация  287

личинами (процент смертей из-за травм и плотность зубных врачей
в популяции) нет никакой связи.
 В точках D и H коэффициенты CC (по абсолютной величине) и MIC ве‑
лики, потому что они представляют почти линейные связи.
 В точках E, F и G CC низкий, а MIC высокий. Это говорит о том, что
связи между величинами нелинейные (а иногда, как в точках E и F,
и нефункциональные, т. е. типа один ко многим).

Рис. 6.7  Слева: зависимость коэффициента корреляции от
максимального коэффициента информации (MIC) для всех попарных связей в данных ВОЗ. Справа: диаграммы рассеяния для
некоторых пар величин. Красные линии – кривые непараметрической сглаживающей регрессии, построенные отдельно для
каждого тренда. На основе рис. 4 из работы [Res+11]. Печатается
с разрешения Дэвида Решеффа

6.3.8. Неравенство обработки данных
Пусть имеется неизвестная величина X и мы наблюдаем зашумленную функ‑
цию от нее, которую назовем Y. Если в результате обработки зашумленных
наблюдений создается новая величина Z, то интуитивно очевидно, что мы
не можем таким образом увеличить количество информации о неизвестной
величине X. Этот факт называется неравенством обработки данных. Сфор‑
мулируем его формально, а затем и докажем.
Теорема 6.3.1. Пусть X ® Y ® Z – марковская цепь, т. е. X ⊥ Z|Y. Тогда 𝕀(X; Y)
³ 𝕀(X; Z).
Доказательство. В силу цепного правила для взаимной информации (фор‑
мула (6.62)) взаимную информацию можно раскрыть двумя способами:
𝕀(X; Y, Z) = 𝕀(X; Z) + 𝕀(X; Y|Z)
= 𝕀(X; Y) + 𝕀(X; Z|Y).

(6.77)
(6.78)

Tlgm: @it_boooks

288  Теория информации
Поскольку X ⊥ Z|Y, имеем 𝕀(X; Z|Y) = 0, так что

𝕀(X; Z) + 𝕀(X; Y|Z) = 𝕀(X; Y).

(6.79)

Поскольку 𝕀(X; Y|Z) ³ 0, имеем 𝕀(X; Y) ³ 𝕀(X; Z). Аналогично можно дока‑
зать, что 𝕀(Y; Z) ³ 𝕀(X; Z).


6.3.9. Достаточные статистики

Из неравенства обработки данных вытекает важное следствие. Пусть имеется
цепь θ ® 𝒟 ® s(𝒟). Тогда
𝕀(θ; s(𝒟)) £ 𝕀(θ; 𝒟).

(6.80)

θ ® s(𝒟) ® s¢(𝒟) ® 𝒟.

(6.81)

Если имеет место равенство, то говорят, что s(𝒟) – достаточная статистика данных 𝒟 для вывода θ. В этом случае можно эквивалентно написать θ ®
s(𝒟) ® 𝒟, потому что мы можем реконструировать данные, зная s(𝒟), так же
точно, как зная θ.
Примером достаточной статистики являются сами данные, s(𝒟) = 𝒟, но
это не очень полезно, т. к. в этом случае нет никакого обобщения данных.
Поэтому мы определим минимальную достаточную статистику s(𝒟) как
такую, которая не содержит избыточной информации о θ; таким образом,
s(𝒟) максимально сжимает данные 𝒟 без потери информации, существенной
для предсказания θ. Формально говорят, что s – минимальная достаточная
статистика для 𝒟, если для любой достаточной статистики s¢(𝒟) существует
функция f такая, что s(𝒟) = f(s¢(𝒟)). Эту ситуацию можно кратко выразить
следующим образом:

Здесь s¢(𝒟) берет s(𝒟) и добавляет к ней избыточную информацию, соз‑
давая тем самым отображение один ко многим. Например, минимальной
достаточной статистикой для множества N испытаний Бернулли является
просто N и N1 = ån𝕀(Xn = 1), т. е. число успехов. Иными словами, не нужно
запоминать всю последовательность орлов и решек, достаточно знать лишь
общее число тех и других. Аналогично для вывода среднего гауссова рас‑
пределения с известной дисперсией достаточно эмпирического среднего
и количества примеров.

6.3.10. Неравенство Фано*
Популярный метод отбора признаков – взять входные признаки Xd, имею‑
щие высокую взаимную информацию с выходной величиной Y. Ниже мы объ‑
ясним, почему этот подход разумен. В частности, мы докажем неравенство
Фано, которое дает оценку сверху вероятности неправильной классифика‑
ции (любым методом) в терминах взаимной информации между признаками
X и меткой класса Y.

Tlgm: @it_boooks

Упражнения  289

Теорема 6.3.2 (неравенство Фано). Рассмотрим оценку Ŷ = f(X) такую, что
Y ® X ® Ŷ – марковская цепь. Обозначим E событие Ŷ ¹ Y, означающее, что
произошла ошибка, и пусть Pe = P(Y ¹ Ŷ) – вероятность ошибки. Тогда
ℍ(Y|X) £ ℍ(Y|Ŷ) £ ℍ(E) + Pe log|𝒴|.

(6.82)

1 + Pe log|𝒴| ³ H(Y|X),

(6.83)

Поскольку ℍ(E) £ 1, как мы видели на рис. 6.1, этот результат можно ослабить:
откуда

(6.84)
Таким образом, минимизация ℍ(Y|X) (эквивалентная максимизации 𝕀(X; Y))
дает также минимизацию нижней границы Pe.

Доказательство. (Заимствовано из [CT06, стр. 38].) Применяя цепное пра‑
вило для энтропии, получаем:
(6.85)
(6.86)

Поскольку обусловливание уменьшает энтропию (см. раздел 6.2.4), имеем
ℍ(E|Ŷ) £ ℍ(E). Последний член можно ограничить следующим образом:

(6.87)
(6.88)

Отсюда
(6.89)
Наконец, в силу неравенства обработки данных, имеем 𝕀(Y; Ŷ) £ 𝕀(Y; X),
поэтому ℍ(Y|X) £ ℍ(Y|Ŷ), откуда и вытекает неравенство (6.82).


6.4. упражнения

Упражнение 6.1 [выражений взаимной информации в терминах энтропий*].
Докажите следующие тождества:
I(X; Y) = H(X) - H(X|Y) = H(Y) - H(Y|X)

(6.90)

Tlgm: @it_boooks

290  Теория информации
и
(6.91)

H(X, Y) = H(X|Y) + H(Y|X) + I(X; Y).
Упражнение 6.2 [связь между D(p||q) и статистикой χ2].
(Источник: [CT91, Q12.2].)
Покажите, что если p(x) » q(x), то

(6.92)
где
(6.93)
Указание: напишите
(6.94)
(6.95)
и воспользуйтесь разложением log(1 + x) в ряд Тейлора:
(6.96)
для -1 < x £ 1.
Упражнение 6.3 [ох уж эти энтропии*].
(Источник: Маккей.) Рассмотрим совместное распределение p(X, Y).
x

y

1
2
3
4

1
1/8
1/16
1/16
¼

2
1/16
1/8
1/16
0

3
1/32
1/32
1/16
0

4
1/32
1/32
1/16
0

a. Чему равна совместная энтропия H(X, Y)?
b. Чему равны маргинальные энтропии H(X) и H(Y)?
c. Энтропия X при условии конкретного значения y определяется как
(6.97)
Вычислите H(X|y) для каждого значения y. Возрастает ли когда-нибудь
апостериорная энтропия X при условии наблюдения Y?

Tlgm: @it_boooks

Упражнения  291

d. Условная энтропия определяется как
(6.98)
Вычислите ее. Возрастает или убывает апостериорная энтропия X при
усреднении по всем возможным значениям Y?
e. Чему равна взаимная информация между X и Y?
Упражнение 6.4 [прямое и обратное расхождение КЛ].
(Источник: упражнение 33.7 из [Mac03].)
Рассмотрим аппроксимацию совместного распределения p(x, y) произве‑
дением q(x, y) = q(x)q(y). Покажите, что для минимизации прямого расхож‑
дения КЛ 𝕂𝕃(p||q) следует положить q(x) = p(x) и q(y) = p(y), т. е. оптимальная
аппроксимация является произведением маргинальных распределений.
Теперь рассмотрим следующее совместное распределение, где строки
представляют y, а столбцы – x.
1
2
3
4

1
1/8
1/8
0
0

2
1/8
1/8
0
0

3
0
0
1/4
0

4
0
0
0
1/4

Покажите, что обратное расхождение КЛ 𝕂𝕃(q||p) для этого p имеет три
разных точки минимума. Найдите эти точки минимума и вычислите 𝕂𝕃(q||p)
в каждой из них. Чему будет равно значение 𝕂𝕃(q||p), если положить q(x, y) =
p(x)p(y)?

Tlgm: @it_boooks

Глава

7
Линейная алгебра

Эта глава написана в соавторстве с Зико Колтером.

7.1. ВВедение
Линейная алгебра изучает векторы и матрицы. В этой главе собран лишь
материал, который понадобится нам далее в книге. Гораздо больше инфор‑
мации можно найти в других источниках, например [Str09; Kle13; Mol04;
TB97; Axl15; Tho17; Agg20].

7.1.1. Обозначения
В этом разделе мы введем некоторые обозначения.

7.1.1.1. Векторы
Вектором x Î ℝn называется список n чисел, обычно записываемый в виде
столбца:
(7.1)

Вектор, состоящий из одних единиц, обозначается 1. Вектор, состоящий
из одних нулей, обозначается 0.
Единичным вектором ei называется вектор, все элементы которого рав‑
ны 0, за исключением элемента i, равного 1:
ei = (0, …, 0, 1, 0, …, 0).
Такой вектор также называется унитарным.

(7.2)

Tlgm: @it_boooks

Введение  293

7.1.1.2. Матрицы
Матрицей A Î ℝm´n с m строками и n столбцами называется двумерный
массив чисел, организованный следующим образом:
(7.3)

Если m = n, то матрица называется квадратной.
Мы используем нотацию Aij или Ai,j для обозначения элемента A, находя‑
щегося на пересечении i-й строки и j-го столбца. Ai,: обозначает всю i-ю стро‑
ку, а A:,j – весь j-й столбец. По умолчанию рассматриваются векторы-столбцы
(т. е. Ai,: трактуется как вектор-столбец с n элементами). Заглавными полу‑
жирными буквам обозначаются матрицы, строчными полужирными бука‑
ми – векторы, а простыми буквами – скаляры.
Матрицу можно рассматривать как множество столбцов, расположенных
вдоль горизонтальной оси:
(7.4)
Для краткости это записывается в виде:
(7.5)
Можно также рассматривать матрицу как множество строк, расположен‑
ных вдоль вертикальной оси:

(7.6)

Для краткости это записывается в виде:
(7.7)
(Обратите внимание на использование точки с запятой.)
Транспонированием матрицы называется операция замены строк на
столбцы. Если дана матрица A Î ℝm´n, то транспонированная в ней матрица
A⟙ Î ℝn´m имеет вид:
(A⟙)ij = Aji.

(7.8)

Tlgm: @it_boooks

294  Линейная алгебра
Легко проверить следующие свойства операции транспонирования:
(A⟙)⟙ = A;

(7.9)

(AB)⟙ = B⟙A⟙;

(7.10)

(A + B)⟙ = A⟙ + B⟙.

(7.11)

Квадратная матрица, обладающая свойством A = A⟙, называется симметричной. Множество всех симметричных матриц размера n обозначается 𝕊n.

7.1.1.3. Тензоры

Тензор (в машинном обучении) – это просто обобщение двумерного массива
на большее число измерений, как показано на рис. 7.1. Элементы трехмерно‑
го тензора обозначаются Aijk. Число измерений называется порядком, или
рангом тензора1. В математике тензоры можно рассматривать как способ
определения мультилинейных отображений – точно так же, как матрицы
можно использовать для определения линейных функций, хотя нам такая
интерпретация не понадобится.
Вектор
Матрица

Тензор

ℝ8×8

ℝ4×4×4

ℝ64

Рис. 7.1  Одномерный вектор, двумерная матрица, трехмерный тензор. Цветом обозначены отдельные элементы вектора; этот список чисел
можно также сохранить в виде двумерной матрицы, как показано на
среднем рисунке. (В этом примере матрица организована по столбцам,
а не по строкам, как в Python.) Можно также представить вектор в виде
трехмерного тензора, показанного на правом рисунке

Матрицу можно преобразовать в вектор, расположив столбцы друг под
другом, как показано на рис. 7.1. Это обозначается так:
vec(A) = [A:,1; …; A:,n] Î ℝmn´1.

(7.12)

Наоборот, вектор можно преобразовать в матрицу, причем двумя спосо‑
бами: по строкам (как в языках Python и C++) или по столбцам (как в языках
Julia, Matlab, R и Fortran). Различие показано на рис. 7.2.
1

Заметим, однако, что ранг двумерной матрицы – это другое понятие, оно обсуж‑
дается в разделе 7.1.4.3.

Tlgm: @it_boooks

Введение  295
Порядок по строкам

Порядок по столбцам

(a)

(b)

Рис. 7.2  (a) Порядок по строкам и (b) порядок по столбцам. Взято со
страницы https://commons.wikimedia.org/wiki/File:Row_and_column_major_order.svg. Печатается с разрешения автора «Википедии» Cmglee.

7.1.2. Векторные пространства
В этом разделе мы обсудим ряд фундаментальных понятий линейной алгебры.

7.1.2.1. Сложение векторов и умножение вектора на скаляр
Мы можем считать, что вектор x Î ℝn определяет точку в n-мерном евкли‑
довом пространстве. Векторным пространством называется множество
таких векторов, на котором определены операции сложения и умножения
на скаляр (вещественное число), позволяющие создавать новые точки. Эти
операции определяются поэлементно очевидным образом: x + y = (x1 + y1,
…, xn + yn) и cx = (cx1, …, cxn), где c Î ℝ (см. иллюстрацию на рис. 7.3a).

(a)

(b)

Рис. 7.3  (a) Сверху: вектор v (синий) складывается с вектором w
(красным). Снизу: w умножается на 2, что дает сумму v + 2w. Взято со
страницы https://en.wikipedia.org/wiki/Vector_space. Печатается с разрешения автора «Википедии» IkamusumeFan. (b) Вектор v в ℝ2 (синий)
выражен в двух разных базисах: в стандартном базисе ℝ2, v = xe1 + ye2
(черные), и в другом, неортогональном базисе: v = f1 + f2 (красные). Взято со страницы https://en.wikipedia.org/wiki/Vector_ space. Печатается
с разрешения автора «Википедии» Jakob.scholbach

Tlgm: @it_boooks

296  Линейная алгебра

7.1.2.2. Линейная независимость, линейная оболочка
и базисы
Множество векторов {x1, x2, …, xn} называется линейно независимым, если
никакой вектор нельзя представить в виде линейной комбинации остальных.
Вектор, который можно представить в виде линейной комбинации других
векторов, называется линейно зависимым от них. Например, если
(7.13)
для каких-то {α1, …, αn-1}, то xn линейно зависит от {x1, …, xn-1}; в противном
случае он линейно независим от {x1, …, xn-1}.
Линейной оболочкой множества векторов {x1, x2, …, xn} называется мно‑
жество всех векторов, которые можно представить линейными комбинаци‑
ями {x1, …, xn}. То есть:
(7.14)
Можно показать, что если {x1, …, xn} – множество n линейно независимых
векторов, где все xi Î ℝn, то span({x1, …, xn}) = ℝn. Иными словами, любой век‑
тор v Î ℝn можно записать в виде линейной комбинации векторов x1, …, xn.
Базисом ℬ называется множество линейно независимых векторов, ли‑
нейной оболочкой которых является все пространство, т. е. span(ℬ) = ℝn.
Часто можно выбирать один из нескольких базисов, как показано на рис. 7.3b.
Стандартный базис образован координатными векторами e1 = (1, 0, …, 0),
… en = (0, 0, …, 0, 1). Это позволяет переходить от трактовки вектора в ℝ2 как
«стрелки на плоскости», исходящей из начала координат, к трактовке как
упорядоченного списка чисел (коэффициентов в некотором базисе).

7.1.2.3. Линейные отображения и матрицы
Линейным отображением или линейным преобразованием называется
функция f : 𝒱 ® 𝒲 такая, что f(v + w) = f(v) + f(w) и f(av) = af(v) для любых v,
w Î 𝒱 . После выбора базиса 𝒱 линейное отображение f : 𝒱 ® 𝒲 полностью
определяется заданием образов базисных векторов, потому что любой эле‑
мент 𝒱 однозначно представляется в виде их линейной комбинации.
Пусть 𝒱 = ℝn и 𝒲 = ℝm. Мы можем вычислить f(vi) Î ℝm для любого вектора
из базиса 𝒱 и сохранить результаты в столбцах матрицы A размера m´n. За‑
тем мы можем вычислить y = f(x) Î ℝm для любого вектора x Î ℝn следующим
образом:
(7.15)
Это соответствует умножению вектора x на матрицу A:

Tlgm: @it_boooks

Введение  297

(7.16)

y = Ax.
Детали см. в разделе 7.2.
Если функция обратима, то можно записать:
x = A-1y.

(7.17)

Детали см. в разделе 7.3.

7.1.2.4. Образ и ядро матрицы
Рассмотрим матрицу A Î ℝm´n как множество m векторов в ℝn. Образом (или
пространством столбцов)1 этой матрицы называется линейная оболочка
столбцов A. Иначе говоря,
range(A)

{v Î ℝm : v = Ax, x Î ℝn}.

(7.18)

{x Î ℝn : Ax = 0}.

(7.19)

Образ можно рассматривать как множество векторов, которые можно «по‑
родить» или которых можно «достичь» с помощью A; это подпространство
ℝm, размерность которого равна рангу A (см. раздел 7.1.4.3). Ядром (или ну‑
левым пространством) матрицы A Î ℝm´n называется множество векторов,
которые при умножении на A переходят в нулевой вектор, т. е.
nullspace(A)

Линейная оболочка строк A является дополнением к ядру A.
На рис. 7.4 иллюстрируется образ и ядро матрицы. Как вычислять их, мы
обсудим в разделе 7.5.4 ниже.

7.1.2.5. Линейная проекция

Проекцией y Î ℝm на линейную оболочку {x1, …, xn} (здесь предполагается,
что xi Î ℝm) называется вектор v Î span({x1, …, xn}) такой, что v максимально
близко к y в смысле евклидовой нормы ||v - y||2. Мы будем обозначать про‑
екцию Proj(y; {x1, …, xn}) и можем определить ее формально как
(7.20)
Для матрицы (полного ранга) A Î ℝm´n, где m ³ n, можно определить про‑
екцию вектора y Î ℝm на образ A:
Proj(y; A) = argminvÎℛ(A)||v - y||2 = A(A⟙A)-1A⟙y.

(7.21)

Это то же самое, что нормальные уравнения из раздела 11.2.2.2.

1

Автор употребляет термины range (область значения) и nullspace (нулевое про‑
странство), тогда как в русскоязычной литературе обычно говорят об образе и ядре
матрицы и обозначают их соответственно Im и Ker. Мы оставили обозначения
автора, но употребляем русскоязычную терминологию. – Прим. перев.

Tlgm: @it_boooks

298  Линейная алгебра

Ядро

Образ

Рис. 7.4  Визуализация ядра и образа матрицы A размера m´n. Здесь
y1 = Ax1 и y2 = Ax4, так что y1 и y2 принадлежат образу A (достижимы из
некоторого x). Кроме того, Ax2 = 0 и Ax3 = 0, так что x2 и x3 принадлежат
ядру A (отображаются в 0). Как видим, образ часто является подмножеством области определения отображения

7.1.3. Нормы вектора и матрицы
В этом разделе мы обсудим, как можно измерить «размер» вектора и матрицы.

7.1.3.1. Нормы вектора
Нормой вектора ||x|| неформально называется мера его «длины». Более фор‑
мально норма – это любая функция f : ℝn ® ℝ, обладающая четырьмя свой‑
ствами:
 для любого x Î ℝn f(x) ³ 0 (неотрицательность);
 f(x) = 0 тогда и только тогда, когда x = 0 (определенность);
 для любых x Î ℝn, t Î ℝ f(tx) = |t|f(x) (однородность по абсолютной ве‑
личине);
 для любых x, y Î ℝn f(x + y) £ f(x) + f(y) (неравенство треугольника).
Приведем несколько примеров:
p-норма ||x||p = (åni=1 |xi|p)1/p, p ³ 1.

n
xi2 , называемая также евклидовой нормой. Отметим,
2-норма ||x||2 = åi=1

2
что ||x||2 = x x.
n
|xi|
1-норма ||x||1 = åi=1
Max-норма ||x||¥ = maxi |xi|.
n
0-норма ||x||0 = åi=1
𝕀(|xi| > 0). Это псевдонорма, потому что она не удов‑
летворяет условию однородности. Она равна количеству ненулевых элемен‑
n
xi0.
тов x. Если определить 00 = 0, то ее можно записать в виде ||x||0 = åi=1

Tlgm: @it_boooks

Введение  299

7.1.3.2. Нормы матрицы
Будем считать, что матрица A Î ℝm´n определяет линейную функцию f(x) =
Ax. Определим индуцированную норму A как максимальное удлинение
входного вектора единичной нормы при воздействии f:
(7.22)
Обычно p = 2 и в этом случае
(7.23)
где σi – i-е сингулярное число.
Ядерная, или следовая норма определяется следующим образом:
(7.24)
где
– квадратный корень из матрицы. Поскольку сингулярные числа
всегда неотрицательны, имеем:
(7.25)
Использование этой нормы в качестве регуляризатора поощряет обра‑
щение многих сингулярных чисел в ноль, что дает матрицу низкого ранга.
В общем случае можно определить p-норму Шаттена:
(7.26)
Если рассматривать матрицу как вектор, то можно определить норму матрицы в терминах нормы вектора, ||A|| = ||vec(A)||. Если в качестве нормы
вектора берется 2-норма, то соответствующая норма матрицы называется
нормой Фробениуса:
(7.27)
Если вычисление A обходится дорого, а вычисление Av дешево (для слу‑
чайного вектора v), то можно предложить стохастическую аппроксимацию
нормы Фробениуса, воспользовавшись оценкой следа Хатчинсона из фор‑
мулы (7.37):
||A||F2 = tr(A⟙A) = 𝔼[v⟙A⟙Av] = 𝔼[||Av||22],

где v ~ 𝒩(0, I).

(7.28)

Tlgm: @it_boooks

300  Линейная алгебра

7.1.4. Свойства матриц
В этом разделе мы обсудим различные скалярные свойства матриц.

7.1.4.1. След квадратной матрицы
Следом квадратной матрицы A Î ℝn´n, обозначаемым tr(A), называется сум‑
ма ее диагональных элементов:
(7.29)
След обладает следующими свойствами, где c Î ℝ – скаляр, а A, B Î ℝn´n –
квадратные матрицы:
tr(A) = tr(A⟙);

(7.30)

tr(A + B) = tr(A) + tr(B);

(7.31)

tr(cA) = ctr(A);

(7.32)

tr(AB) = tr(BA);

(7.33)

где λi – собственные значения A.

(7.34)

Имеет место также следующее свойство циклической перестановки:
если матрицы A, B, C таковы, что произведение ABC – квадратная матрица,
то
tr(ABC) = tr(BCA) = tr(CAB).

(7.35)

Отсюда следует свойство следа, позволяющее записать скалярное произ‑
ведение x⟙Ax в виде:
x⟙Ax = tr(x⟙Ax) = tr(xx⟙A).

(7.36)

Иногда вычислять матрицу A дорого, но можно дешево вычислить про‑
изведения матрицы на вектор Av. Пусть v – случайный вектор такой, что
𝔼[vv⟙] = I. В таком случае мы можем создать аппроксимацию Монте-Карло
tr(A), воспользовавшись следующим тождеством:
tr(A) = tr(A𝔼[vv⟙]) = 𝔼[tr(Avv⟙)]= 𝔼[tr(v⟙Av)].

(7.37)

Это называется оценкой следа Хатчинсона [Hut90].

7.1.4.2. Определитель квадратной матрицы
Определитель квадратной матрицы, det(A) или |A|, измеряет, как изменя‑
ется единичный объем под воздействием линейного преобразования, опи‑

Tlgm: @it_boooks

Введение  301

сываемого данной матрицей. (Формальное определение довольно сложное
и нам здесь не нужно.)
Определитель обладает следующими свойствами (A, B Î ℝn´n):
|A| = |A⟙|;

(7.38)

|cA| = cn|A|;

(7.39)

|AB| = |A||B|;

(7.40)

|A| = 0 тогда и только тогда, когда A сингулярная;

(7.41)

|A-1| = 1/|A|, если A не сингулярная;

(7.42)

где λi – собственные значения A.

(7.43)

Положительно определенную матрицу A можно записать в виде разло‑
жения Холески A = LL⟙, где L – нижнетреугольная матрица. В таком случае
det(A) = det(L)det(L⟙) = det(L)2,

(7.44)

так что
(7.45)

7.1.4.3. Ранг матрицы
Столбцовым рангом матрицы A называется размерность пространства, на‑
тянутого на ее столбцы (иначе говоря, линейной оболочки столбцов), а строковым рангом – размерность пространства, натянутого на ее строки. Од‑
ним из важных результатов линейной алгебры является тот факт (его можно
доказать с помощью сингулярного разложения, рассматриваемого в разде‑
ле 7.5), что для любой матрицы A columnrank(A) = rowrank(A), поэтому обе
величины обозначаются просто как rank(A) и называются рангом A. Ниже
перечислены основные свойства ранга:
 для любой A Î ℝm´n rank(A) £ min(m, n). Если rank(A) = min(m, n), то
говорят, что матрица A полного ранга, в противном случае, что она
неполного ранга;
 для любой A Î ℝm´n rank(A) = rank(A⟙) = rank(A⟙A) = rank(AA⟙);
 для любых A Î ℝm´n, B Î ℝn´p rank(AB) £ min(rank(A), rank(B));
 для любых A, B Î ℝm´n rank(A + B) £ rank(A) + rank(B).
Можно показать, что квадратная матрица обратима тогда и только тогда,
когда она имеет полный ранг.

7.1.4.4. Числа обусловленности
Число обусловленности матрицы A является мерой ее численной устойчи‑
вости при вычислениях. Оно определяется следующим образом:

Tlgm: @it_boooks

302  Линейная алгебра
κ(A)

||A|| · ||A-1||,

(7.46)

где ||A|| – норма матрицы. Можно показать, что κ(A) ³ 1. (Число обусловлен‑
ности зависит от используемой нормы; мы будем предполагать 𝓁2-норму,
если не оговорено противное.)
Говорят, что A хорошо обусловлена, если κ(A) мало (близко к 1), и плохо
обусловлена, если κ(A) велико. Большое число обусловленности означает,
что A почти сингулярна. Эта величина является лучшим показателем близо‑
сти к сингулярности, чем величина определителя. Например, предположим,
что A = 0.1I100´100. Тогда det(A) = 10-100, и это позволяет предположить, что
A почти сингулярна, но κ(A) = 1, т. е. A хорошо обусловлена, что и неудиви‑
тельно, поскольку оператор Ax просто умножает все элементы x на 0.1.
Чтобы лучше понять смысл числа обусловленности, рассмотрим линейную
систему уравнений Ax = b. Если A не сингулярная, то у этой системы есть
единственное решение x = A-1b. Заменим b на b + Db; как это повлияет на x?
Новое решение должно удовлетворять уравнению:
A(x + Dx) = b + Db,

(7.47)

где
Dx = A-1Db.

(7.48)

Мы говорим, что A хорошо обусловлена, если небольшое изменение Db
приводит к небольшому изменению Dx; в противном случае мы говорим,
что A плохо обусловлена.
Например, рассмотрим матрицу:
(7.49)
Для b = (1, 1) решением является x = (1, 1). Если изменить b на Db, то ре‑
шение изменится на
(7.50)
Таким образом, небольшое изменение b может привести к сколь угодно
большому изменению x, потому что A плохо обусловлена (κ(A) = 2´1010).
В случае 𝓁2-нормы число обусловленности равно отношению наибольшего
сингулярного числа к наименьшему (определены в разделе 7.5), а сингуляр‑
ные числа равны квадратным корням из собственных значений:
(7.51)
Еще глубже проникнуть в смысл чисел обусловленности можно, рассмо‑
трев квадратичную целевую функцию f(x) = x⟙Ax. Линии уровня этой функ‑
ции эллиптические, как показано в разделе 7.4.4. При увеличении числа об‑

Tlgm: @it_boooks

Введение  303

условленности A эллипсы становятся все более вытянутыми вдоль некоторых
осей, соответствующих очень узкой долине в пространстве функций. Если
κ = 1 (минимально возможное значение), то линии уровня будут круговыми.

7.1.5. Специальные типы матриц
В этом разделе мы рассмотрим некоторые специальные виды матриц с раз‑
личной структурой.

7.1.5.1. Диагональная матрица
Диагональной называется матрица, все элементы которой, расположенные
все главной диагонали, равны 0. Обычно она обозначается:

(7.52)

Единичной матрицей, обозначаемой I Î ℝn´n, называется квадратная
матрица, в которой на главной диагонали находятся единицы, а все осталь‑
ные элементы равны 0, I = diag(1, 1, …, 1). Она обладает тем свойством, что
AI = A = IA,

(7.53)

где размер I определяется размерами A, так чтобы умножение матриц было
возможно.
Операция d = diag(D) извлекает из матрицы вектор диагональных эле‑
ментов. Операция D = diag(d) преобразует вектор в диагональную матрицу.
Блочно-диагональной называется матрица, которая содержит матрицы
на главной диагонали и нули во всех остальных местах, например:
(7.54)
Ленточной называется матрица, в которой ненулевые элементы нахо‑
дится на главной диагонали и не далее, чем в k позициях по обе стороны от
нее, где k – ширина ленты. Например, тридиагональная матрица размера
6´6 имеет вид:

(7.55)

Tlgm: @it_boooks

304  Линейная алгебра

7.1.5.2. Треугольные матрицы
В верхнетреугольной матрице ненулевые элементы находятся только на
диагонали и над ней. В нижнетреугольной матрице ненулевые элементы
находятся только на диагонали и под ней.
У треугольных матриц есть полезное свойство: диагональные элементы A
являются ее собственными значениями, поэтому определитель равен про‑
изведению диагональных элементов: det(A) = Õi Aii.

7.1.5.3. Положительно определенные матрицы
Для квадратной матрицы A Î ℝn´n скалярное значение x⟙Ax называется квадратичной формой. В явном виде:
(7.56)
Заметим, что
(7.57)
Поэтому часто неявно предполагается, что матрицы, входящие в квадра‑
тичную форму, симметричны.
Дадим следующие определения.
 Симметричная матрица A Î 𝕊n называется положительно определенной, если для любого ненулевого вектора x Î ℝn x⟙Ax > 0. Обычно это
записывают в виде A ≻ 0 (или просто A > 0). Если может случиться, что
x⟙Ax = 0, то говорят, что матрица положительно полуопределенная.
Множество всех положительно определенных матриц обозначает 𝕊n++.
 Симметричная матрица A Î 𝕊n называется отрицательно определенной (A ≺ 0 или просто A < 0), если для любого ненулевого вектора x Î ℝn
x⟙Ax < 0. Если может случиться, что x⟙Ax = 0, то говорят, что матрица
отрицательно полуопределенная.
 Симметричная матрица A Î 𝕊n называется неопределенной, если она
не является ни положительно полуопределенной, ни отрицательно по‑
луопределенной, т. е. если существуют такие x1, x2 Î ℝn, что x1⟙Ax1 > 0
и x2⟙Ax2 < 0.
Очевидно, что если A положительно определенная, то -A отрицательно
определенная, и наоборот. Аналогично если A положительно полуопределен‑
ная, то -A отрицательно полуопределенная, и наоборот. Можно показать, что
положительно и отрицательно определенные матрицы обратимы.
В разделе 7.4.3.1 будет показано, что симметричная матрица является по‑
ложительно определенной тогда и только тогда, когда ее собственные зна‑
чения положительны. Отметим, что, если все элементы A положительны,
это еще не значит, что A положительно определенная. Например,

Tlgm: @it_boooks

Введение  305

не является положительно определенной. С другой стороны, положительно
определенная матрица может иметь отрицательные элементы, например,

Достаточным условием положительной определенности (вещественной
симметричной) матрицы является диагональное преобладание, т. е. в каж‑
дой строке абсолютная величина диагонального элемента должна быть боль‑
ше суммы абсолютных величин все остальных элементов. Точнее,
для всех i.

В двумерном случае вещественная симметричная матрица 2´2

(7.58)

яв‑

ляется положительно определенной тогда и только тогда, когда a > 0, d > 0
и ad > b2.
Наконец, один частный случай положительно определенных матриц
встречается настолько часто, что заслуживает особого упоминания. Для лю‑
бой матрицы A Î ℝm´n (необязательно симметричной или даже квадратной)
матрица Грама G = A⟙A всегда положительно полуопределена. Более того,
если m ³ n (и для удобства предполагается, что матрица A полного ранга),
то G = A⟙A является положительно определенной.

7.1.5.4. Ортогональные матрицы
Два вектора x, y Î ℝn называются ортогональными, если x⟙y = 0. Вектор
x Î ℝn называется нормированным, если ||x||2 = 1. Множество попарно ор‑
тогональных и нормированных векторов называется ортонормированным.
Квадратная матрица U Î ℝn´n называется ортогональной, если множество
ее столбцов ортонормировано. (Обратите внимание на различный смысл
термина «ортогональный» применительно к векторам и матрицам.) Если
элементы U – комплексные числа, то матрицу называют не ортогональной,
а унитарной.
Из определения ортогональности и нормированности сразу следует, что U
ортогональна тогда и только тогда, когда
U⟙U = I = UU⟙.

(7.59)

Иными словами, матрицей, обратной к ортогональной, является транс‑
понированная. Заметим, что если U не квадратная, т. е. U Î ℝm´n, где n < m,
но ее столбцы все равно ортонормированы, то U⟙U = I, но UU⟙ ¹ I. Мы будем
использовать термин «ортогональная» только в случае, когда U квадратная.
Примером ортогональной матрицы является матрица поворота (см.
упражнение 7.1). Например, поворот в трехмерном пространстве на угол α
вокруг оси z описывается матрицей:

Tlgm: @it_boooks

306  Линейная алгебра

(7.60)
Если α = 45°, то эта матрица принимает вид

(7.61)

где 1/ 2 = 0.7071. Как видим, R(-α) = R(α)-1 = R(α)⟙, т. е. это ортогональная
матрица.
Одним из замечательных свойств ортогональных матриц является то, что
умножение вектора на такую матрицу не изменяет его евклидовой нормы,
т. е.
||Ux||2 = ||x||2

(7.62)

для любого ненулевого x Î ℝn и ортогональной матрицы U Î ℝn´n.
Аналогично можно показать, что угол между двумя векторами сохраняется
после преобразования их ортогональной матрицей. Косинус угла между x и y
равен:
(7.63)
так что
(7.64)
Короче говоря, преобразования с помощью ортогональных матриц являют‑
ся обобщениями вращения (если det(U) = 1) и отражения (если det(U) = -1),
поскольку они сохраняют длины и углы.
Заметим, что существует метод ортогонализации Грама–Шмидта, позво‑
ляющий сделать любую квадратную матрицу ортогональной, но здесь мы его
не рассматриваем.

7.2. умножение матриц
Произведением двух матриц A Î ℝm´n и B Î ℝn´p является матрица:
C = AB Î ℝm´p,

(7.65)

Tlgm: @it_boooks

Умножение матриц  307

где
(7.66)
Заметим, что для существования произведения число столбцов A должно
быть равно числу строк B.
Умножение матриц занимает время O(mnp), хотя существуют более бы‑
стрые способы. Кроме того, для значительного ускорения умножения можно
воспользоваться специализированным оборудованием, например графиче‑
скими (GPU) и тензорными (TPU) процессорами, которые позволяют выпол‑
нять операции над строками (или столбцами) параллельно.
Полезно знать некоторые основные свойства умножения матриц:
 умножение матриц ассоциативно: (AB)C = A(BC);
 умножение матриц дистрибутивно относительно сложения: A(B + C) =
AB + AC;
 в общем случае умножение матриц не коммутативно, т. е. AB ¹ BA.
(Во всех случаях предполагается, что размеры матриц совместимы.)
Ниже мы обсудим важные частные случаи умножения матриц.

7.2.1. Умножение векторов
Скалярным, или внутренним, произведением двух векторов x, y Î ℝn на‑
зывается вещественное число:
(7.67)
Заметим, что всегда x⟙y = y⟙x.
Внешним произведением векторов x Î ℝm, y Î ℝn (необязательно одина‑
кового размера) называется следующая матрица:
(7.68)

7.2.2. Произведение матрицы на вектор
Произведением матрицы A Î ℝm´n на вектор x Î ℝn называется вектор y =
Ax Î ℝm. Есть два способа интерпретировать умножение матрицы на вектор,
и мы рассмотрим оба.
Если записать A по строкам, то y = Ax можно выразить следующим об‑
разом:

Tlgm: @it_boooks

308  Линейная алгебра

(7.69)

Иными словами, i-й элемент y равен скалярному произведению i-й строки
A и x, yi = ai⟙x.
С другой стороны, давайте запишем A по столбцам. В таком случае

(7.70)

Иными словами, y – линейная комбинация столбцов A, где коэффициента‑
ми являются элементы x. Столбцы A можно рассматривать как векторы ба‑
зиса, определяющего линейное подпространство. Мы можем строить в этом
подпространстве векторы в виде линейных комбинаций базисных векторов.
Детали см. в разделе 7.1.2.

7.2.3. Произведение матриц
Далее мы рассмотрим четыре разных (но, конечно, эквивалентных) способа
интерпретации произведения матриц C = AB.
Сначала будем рассматривать произведение матриц как множество про‑
изведений векторов. Самая очевидная точка зрения, вытекающая непосред‑
ственно из определения, заключается в том, что элемент (i, j) матрицы C
равен скалярному произведению i-й строки A и j-го столбца B. Символически
это выглядит так:

(7.71)

Напомним, что поскольку A Î ℝm´n и B Î ℝn´p, то ai Î ℝn и bj Î ℝm, поэтому
эти скалярные произведения имеют смысл. Это самое «естественное» пред‑
ставление – когда A записана по строкам, а B по столбцам (см. иллюстрацию
на рис. 7.5).
Альтернативно можно записать A по столбцам, а B по строкам, тогда AB
будет интерпретироваться как сумма внешних произведений. В символиче‑
ском виде:

Tlgm: @it_boooks

Умножение матриц  309

(7.72)

Рис. 7.5  Умножение матриц.
Взято со страницы https://en.wikipedia.org/wiki/Matrix_multiplication.
Печатается с разрешения автора «Википедии» Bilou

Иначе говоря, AB равно сумме по всем i внешних произведений i-го столб‑
ца A на i-ю строку B. Так как в этом случае ai Î ℝm и bi Î ℝp, размерность
внешнего произведения aibi⟙ равна m´p, что совпадает с размерностью C.
Можно также рассматривать произведение матриц как множество произ‑
ведение матрицы на вектор. Именно, если записать B по столбцам, то можно
рассматривать столбцы C произведения матрицы A на столбцы B. В симво‑
лическом виде:
(7.73)
Здесь i-й столбец C равен произведению матрицы A на вектор справа,
ci = Abi. Эти произведения матрицы на вектор в свою очередь могут быть
интерпретированы обоими способами, описанными в предыдущем разделе.
Наконец, аналогичную интерпретацию мы получаем, записывая A по
строкам и рассматривая строки C как произведения строк A на матрицу B.
В символическом виде:

Tlgm: @it_boooks

310  Линейная алгебра

(7.74)

Здесь i-я строка C равна произведению матрицы на вектор слева, ci⟙ =
ai B. Может показаться перебором уделять так много внимания умножению
матриц, тем более что все интерпретации непосредственно вытекают из
первоначального определения, данного в начале раздела. Однако практиче‑
ски вся линейная алгебра так или иначе связана с перемножением матриц,
поэтому стоило потратить некоторое время, чтобы выработать интуитивное
понимание различных точек зрения.
И напоследок еще пара слов о нотации. Мы используем A2 как сокращен‑
ную запись AA, т. е. произведения матриц. Для обозначения поэлементного
возведения матрицы вквадрат мы пишем A⊙2 = [A2ij]. (Если A – диагональная
матрица, то A2 = A⊙2.)
Можно также определить операцию, обратную к A2 – матричный квадратный корень: мы говорим, что A =
, если A2 = M. Для обозначения


поэлементного квадратного корня из матрицы применяется нотация

7.2.4. Приложение: манипулирование матрицами
данных
Рассмотрим случай, когда X – матрица плана N´D, строки которой представ‑
ляют примеры данных. К этой матрице можно применить разнообразные
операции предобработки, которые мы опишем ниже. (Запись этих опера‑
ций в матричной форме полезна, потому что нотация получается компакт‑
ной и позволяет быстро реализовывать методы с помощью кода для работы
с матрицами.)

7.2.4.1. Суммирование срезов матрицы
Пусть X – матрица N´D. Мы можем просуммировать ее элементы по строкам,
умножив слева на матрицу 1´N, составленную из единиц, в результате чего
получится матрица 1´D:
(7.75)
Отсюда можно найти среднее векторов данных:
(7.76)
Чтобы просуммировать элементы матрицы по столбцам, умножим ее
справа на матрицу D´1, составленную из единиц, и получим матрицу N´1:

Tlgm: @it_boooks

Умножение матриц  311

(7.77)

Чтобы просуммировать все элементы матрицы, умножим ее слева и справа
на вектор единиц:
(7.78)
Таким образом, среднее по всем элементам равно:
(7.79)

7.2.4.2. Масштабирование строк и столбцов матрицы
Часто требуется масштабировать строки или столбцы матрицы данных (на‑
пример, чтобы стандартизировать их). Покажем, как записать это в матрич‑
ной нотации.
Умножив X слева на диагональную матрицу S = diag(s), где s – вектор
длины N, мы умножим каждую строку X на соответствующий масштабный
коэффициент:
(7.80)
Умножая X справа на диагональную матрицу S = diag(s), где s – вектор
длины D, мы умножаем каждый столбец X на соответствующий масштабный
коэффициент:
(7.81)
Таким образом, операцию стандартизации из раздела 10.2.8 можно запи‑
сать в матричной форме следующим образом:
standardize(X) = (X - 1N μ⟙)diag(σ)-1,

(7.82)

где μ = x— – эмпирическое среднее, а σ – вектор эмпирических стандартных
отклонений.

7.2.4.3. Матрица сумм квадратов и матрица рассеяния
Матрицей сумм квадратов называется матрица размера D´D, определен‑
ная следующим образом:

Tlgm: @it_boooks

312  Линейная алгебра

(7.83)

Матрицей рассеяния называется матрица размера D´D, определенная
следующим образом:
(7.84)
Как видим, это матрица сумм квадратов, примененная к центрированным
данным. Точнее, обозначим X матрицу, получающуюся из X вычитанием
среднего x— = (1/N)X⟙1N из каждой строки. Тогда центрированная матрица
данных вычисляется по формуле:
(7.85)
где
(7.86)
называется центрирующей матрицей. Теперь матрицу рассеяния можно
вычислить следующим образом:
(7.87)
где мы воспользовались тем фактом, что CN симметрична и идемпотентна,
т. е. CkN = CN для k = 1, 2, … (так как после вычитания среднего повторное вы‑
читание не приводит ни к каким изменениям).

7.2.4.4. Матрица Грама
Матрица XX⟙ размера N´N, состоящая из скалярных произведений, назы‑
вается матрицей Грама:

(7.88)

Иногда мы хотим вычислить скалярные произведения центрированных
векторов данных, K = X X ⟙. Однако, работая с матрицей сходства признаков,
а не с исходными признаками, мы имеем только доступ к K, но не к X. (При‑
меры будут приведены в разделах 20.4.4 и 20.4.6.) К счастью, можно вычис‑
лить K по K, применив двойное центрирование:

Tlgm: @it_boooks

Умножение матриц  313

(7.89)
Здесь мы вычитаем из K средние по строкам и по столбцам и прибавляем
глобальное среднее, которое было вычтено дважды, чтобы средние K по
строкам и по столбцам были равны нулю.
Чтобы убедиться в справедливости (7.89), перепишем эту формулу в ска‑
лярном виде:
(7.90)
(7.91)

7.2.4.5. Матрица расстояний
Пусть X – матрица данных размера Nx´D, а Y – другая матрица данных раз‑
мера Ny´D. Мы можем вычислить квадраты попарных расстояний между
элементами этих матриц:
Dij = (xi - yj)⟙(xi - yj) = ||xi||2 - 2xi⟙yj + ||yj||2.

(7.92)

Теперь запишем это в матричной форме. Обозначим x̂ = [||x1||2, …, ||xNx||2] =
diag(XX⟙) вектор, каждый элемент которого является квадратом нормы при‑
мера из X. Аналогично определим ŷ. Тогда имеем:
(7.93)
В случае, когда X = Y, имеем:
(7.94)
Это векторное вычисление зачастую оказывается гораздо быстрее, чем
использование циклов for.

7.2.5. Произведения Кронекера*
Если A – матрица m´n, а B – матрица p´q, то произведением Кронекера
A Ä B называется блочная матрица размера mp´nq:
(7.95)

Tlgm: @it_boooks

314  Линейная алгебра
Например,

(7.96)

Приведем два полезных тождества:
(A Ä B)-1 = A-1 Ä B-1;

(7.97)

(AB)vec(C) = vec(BCA ).

(7.98)



Дополнительные свойства см. в работе [Loa00].

7.2.6. Суммирование Эйнштейна*
Суммирование Эйнштейна, или einsum, – краткая нотация для работы
с тензорами. Это соглашение было введено Эйнштейном [Ein16, раздел 5],
который позднее шутил: «Я сделал выдающееся открытие в математике –
опустил знак суммы всюду, где суммирование должно производиться по
индексу, встречающемуся дважды…» [Pai05, стр. 216]. Например, вместо того
чтобы записывать произведение матриц в виде Cij = åk AikBkj, мы можем про‑
сто написать Cij = AikBkj, опустив åk.
В качестве более сложного примера рассмотрим трехмерный тензор Sntk,
где n индексирует примеры в пакете, t – позиции внутри последовательности,
а k – слова в унитарном представлении. Обозначим Wkd матрицу погруже‑
ний, которая отображает разреженные унитарные векторы, принадлежащие
ℝk в плотные векторы, принадлежащие ℝd. Мы можем преобразовать пакет
последовательностей унитарных векторов в пакет последовательностей по‑
гружений следующим образом:
(7.99)
Вычислить сумму векторов погружений для каждой последовательности
(и получить глобальное представление каждого мешка слов) можно так:
(7.100)
Наконец, мы можем подвергнуть представление каждого вектора последо‑
вательности еще одному линейному преобразованию Vdc с целью отобразить
его в логиты над классификатором с c метками:
(7.101)

Tlgm: @it_boooks

Обращение матриц  315

В нотации суммирования Эйнштейна можно написать Lnc = SntkWkdVdc.
Здесь производится суммирование по k и d, потому что эти индексы встре‑
чаются дважды в правой части. А суммирование по t производится, потому
что этот индекс не встречается в левой части.
Суммирование Эйнштейна реализовано в NumPy, Tensorflow, PyTorch
и т. д. Особенно полезно то, что оно позволяет выполнять тензорное умно‑
жение в сложных выражениях в оптимальном порядке, минимизирующем
время и расход промежуточной памяти1. В программе code.probml.ai/book1/
einsum_demo имеются хорошие примеры работы с библиотекой.
Заметим, что быстродействие einsum зависит от порядка, в котором вы‑
полняются операции, а он зависит от форм релевантных аргументов. При
оптимальном порядке минимизируется ширина результирующего графа
вычислений, как объяснено в работе [GASG18]. В общем случае время вы‑
числения оптимального порядка экспоненциально возрастает с увеличени‑
ем числа аргументов, поэтому обычно применяют жадную аппроксимацию.
Однако если мы ожидаем, что одно и то же вычисление будет повторяться
много раз с тензорами одинаковой формы, но, быть может, разного содер‑
жания, то можно один раз вычислить оптимальный порядок и использовать
его многократно.

7.3. обращение матриц
В этом разделе мы обсудим, как обращать матрицы разных видов.

7.3.1. Обращение квадратной матрицы
Обратной матрицей для квадратной матрицы A Î ℝn´n называется одно‑
значно определенная матрица A-1 такая, что
A-1A = I = AA-1.

(7.102)

Заметим, что A-1 существует тогда и только тогда, когда det(A) ¹ 0. Если
det(A) = 0, то матрица называется сингулярной.
Ниже перечислены свойства обратной матрицей, везде предполагается,
что A, B Î ℝn´n – несингулярные матрицы:
(A-1)-1 = A;

(7.103)

(AB)-1 = B-1A-1;

(7.104)

(A-1)⟙ = (A⟙)-1
1

A-T.

(7.105)

Эти оптимизации реализованы в библиотеке opt-einsum [GASG18]. Ее основная
функциональность включается в функции einsum пакетов NumPy и JAX, если задан
параметр optimize=True.

Tlgm: @it_boooks

316  Линейная алгебра
В случае матриц 2´2 выражение для A-1 настолько простое, что обратную
матрицу можно выписать в явном виде. Имеем
(7.106)
Для блочно-диагональной матрицы обратная получается обращением
каждого блока по отдельности, например:
(7.107)

7.3.2. Дополнения Шура*
В этом разделе мы дадим обзор некоторых полезных результатов, касающих‑
ся матриц с блочной структурой.
Теорема 7.3.1 (обращение клеточной матрицы). Рассмотрим клеточную
матрицу общего вида
(7.108)
где E и H предполагаются обратимыми. Имеем
(7.109)
(7.110)
где
M=H

E - FH-1G;

(7.111)

M=E

H - GE-1F.

(7.112)

Мы говорим, что M/H является дополнением Шура матрицы M относительно H, а M/E – дополнением Шура матрицы M относительно E. (Причины
такой нотации будут объяснены в формуле (7.133).)
Формулы (7.109) и (7.110) называются формулами обращения клеточных
матриц.
Доказательство. Если бы мы могли преобразовать M к блочно-диагональ‑
ному виду, то обратить ее было бы проще. Чтобы обнулить правый верхний
блок M, можно умножить его слева на матрицу, как показано ниже:

Tlgm: @it_boooks

Обращение матриц  317

(7.113)
Аналогично, чтобы обнулить левый нижний блок, можно умножить его
справа на матрицу, как показано ниже:
(7.114)
Собирая все вместе, получаем:
(7.115)

Теперь обратим обе части:
Z-1M-1X-1 = W-1;
M

-1

-1

= ZW X.

(7.116)
(7.117)

Подстановка определений дает
(7.118)
(7.119)
(7.120)
Альтернативно можно было бы разложить матрицу M в терминах E и M/E =
(H - GE-1F), что дает
(7.121)

7.3.3. Лемма об обращении матрицы*
Приравняв левый верхний блок первой матрицы в формуле (7.119) и левый
верхний блок матрицы в формуле (7.121), получаем:
(M/H)-1 = (E - FH-1G)-1 = E-1 + E-1F(H - GE-1F)-1GE-1.

(7.122)

Это утверждение называется леммой об обращении матрицы или формулой Шермана–Моррисона–Вудбери. Ее типичное приложение к ма‑

Tlgm: @it_boooks

318  Линейная алгебра
шинному обучению выглядит следующим образом. Пусть X – матрица N´D,
а Σ – диагональная матрица N´N. Тогда имеем (подставляя E = Σ, F = G⟙ = X
и H-1 = -I) следующий результат:
(Σ + XX⟙)-1 = Σ-1 - Σ-1X(I + X⟙Σ-1X)-1X⟙Σ-1.

(7.123)

Для вычисления левой части нужно время O(N 3), а для вычисления правой
части – время O(D 3).
Еще одно приложение касается вычисления модификации первого ранга обратной матрицы. Пусть E = A, F = u, G = v⟙, H = -1. Тогда имеем:
(A + uv⟙)-1 = A-1 + A-1u(-1 - v⟙A-1u)-1v⟙A-1,

(7.124)
(7.125)

Это тождество называется формулой Шермана–Моррисона.

7.3.4. Лемма об определителе матрицы*
Теперь мы воспользуемся приведенными выше результатами для эффектив‑
ного вычисления определителя матрицы с блочной структурой.
Из формулы (7.115) имеем:
(7.126)
(7.127)
(7.128)
(7.129)
Как видим, M/H действует как оператор деления.
Далее имеем:
(7.130)
(7.131)
(7.132)
Отсюда (полагая E = A, F = -u, G = v⟙, H = 1) получаем:
|A + uv⟙| = (1 + v⟙A-1u)|A|.
Это тождество называется леммой об определителе матрицы.

(7.133)

Tlgm: @it_boooks

Обращение матриц  319

7.3.5. Приложение: вывод условных
распределений для многомерного гауссова
распределения
Рассмотрим совместное гауссово распределение вида p(x1, x2) = 𝒩(x|μ, σ), где
(7.134)

В разделе 3.2.3 мы говорили, что
(7.135)
Сейчас мы выведем этот результат с помощью дополнений Шура.
Разложим совместное распределение p(x1, x2) в произведение p(x2)p(x1|x2)
следующим образом:
(7.136)
После применения формулы (7.118) это выражение принимает вид:
(7.137)
(7.138)
(7.139)
(7.140)
Это выражение имеет вид:
exp(квадратичная форма от x1, x2) ´ exp(квадратичная форма от x2). (7.141)
Таким образом, мы успешно разложили совместное распределение в про‑
изведение:
p(x1, x2) = p(x1|x2)p(x2)
= 𝒩(x1|μ1|2, Σ1|2)𝒩(x2|μ2, Σ22),

(7.142)
(7.143)

где параметры условного распределения можно получить из приведенных
выше формул:

Tlgm: @it_boooks

320  Линейная алгебра
μ1|2 = μ1 + Σ12Σ-1
22 (x2 - μ2);

(7.144)

Σ1|2 = Σ/Σ22 = Σ11 - Σ12Σ-1
22 Σ21.

(7.145)

Мы также можем воспользоваться тем фактом, что |M| = |M/H| |H|, и про‑
верить, что нормировочные постоянные правильны:
(7.146)
(7.147)
где d1 = dim(x1) и d2 = dim(x2).

7.4. спектральное разложение
В этом разделе мы вкратце изложим стандартные факты, относящиеся
к спектральному разложению квадратных (вещественных) матриц.

7.4.1. Основные сведения
Говорят, что λ Î ℝ является собственным значением квадратной матрицы
A Î ℝn´n, а u Î ℝn – соответствующим ему собственным вектором, если
Au = λu; u ¹ 0.

(7.148)

Интуитивно понятно, что означает это определение: умножение A на век‑
тор u порождает вектор того же направления, но умноженный на коэффи‑
циент λ. Например, если A – матрица поворота, то u направлен вдоль оси
вращения и λ = 1.
Отметим, что для любого собственного вектора u Î ℝn и скаляра c Î ℝ
A(cu) = cAu = cλu = λ(cu).

(7.149)

Следовательно, cu также является собственным вектором. Поэтому из всех
собственных векторов, ассоциированных с собственным значением λ, мы
обычно выделяем нормированный, т. е. имеющий длину 1 (это тоже не до
конца устраняет неопределенность, потому что нормированными являются
оба вектора u и -u, но с этим мы готовы смириться).
Мы можем переписать уравнение выше и сказать, что (λ, x) образуют пару
(собственное значение, собственный вектор) A, если
(λI - A)u = 0, u ¹ 0.

(7.150)

Уравнение (λI - A)u = 0 имеет ненулевое решение тогда и только тогда,
когда ядро матрицы (λI - A) непусто, т. е. эта матрица сингулярна или

Tlgm: @it_boooks

Спектральное разложение  321

det(λI - A) = 0.

(7.151)

Это так называемое характеристическое уравнение A (см. упражне‑
ние 7.2) n решений этого уравнения (возможно, комплексных) дают n соб‑
ственных значений λi и соответствующих им собственных векторов ui. При‑
нято сортировать собственные векторы в порядке убывания абсолютной
величины их собственных значений.
Собственные значения и собственные векторы обладают следующими
свойствами:
 след матрицы равен сумме ее собственных значений:
(7.152)
 определитель A равен произведению ее собственных значений:
(7.153)
 ранг A равен числу ненулевых собственных значений A;
 если A не сингулярна, то 1/λi – собственное значение A-1, которому со‑
ответствует собственный вектор ui, т. е. A-1ui = (1/λi)ui;
 собственные значения диагональной или треугольной матрицы совпа‑
дают с ее диагональными элементами.

7.4.2. Диагонализация
Мы можем записать все уравнения собственных векторов одновременно
в виде
AU = UΛ,

(7.154)

где столбцы U Î ℝn´n – собственные векторы A, а Λ – диагональная матрица,
элементами которой являются собственные значения A, т. е.
(7.155)
Если собственные векторы A линейно независимы, то матрица U обрати‑
ма, так что
A = UΛU-1.

(7.156)

Матрица, которую можно записать в таком виде, называется диагонализируемой.

Tlgm: @it_boooks

322  Линейная алгебра

7.4.3. Собственные значения и собственные
векторы симметричных матриц
Можно показать, что если матрица A вещественная и симметричная, то все
ее собственные значения вещественны, а собственные векторы ортонор‑
мированы, т. е. ui⟙uj = 0, если i ¹ j, и ui⟙ui = 1, где ui – собственные векторы.
В матричной форме это записывается в виде U⟙U = UU⟙ = I, т. е. что U – ор‑
тогональная матрица.
Поэтому мы можем представить A в виде:

(7.157)

(7.158)
Следовательно, умножение на симметричную матрицу A можно интерпре‑
тировать как умножение на матрицу поворота U⟙, матрицу масштабирова‑
ния Λ и матрицу поворота в обратном направлении U.
Диагонализированную матрицу легко обратить. Поскольку A = UΛU⟙, где

U = U-1, имеем:
(7.159)
Это соответствует повороту, отмене масштабирования и обратному по‑
вороту.

7.4.3.1. Проверка на положительную определенность
Свойство диагонализации можно использовать также для того, чтобы пока‑
зать, что симметричная матрица положительно определена тогда и только
тогда, когда все ее собственные значения положительны. Чтобы убедиться
в этом, заметим, что
(7.160)
где y = U⟙x. Поскольку yi2 всегда неотрицательно, знак этого выражения за‑
висит только от коэффициентов λi. Если все λi > 0, то матрица является по‑
ложительно определенной; если все λi ³ 0, то положительно полуопреде‑
ленной. Аналогично, если все λi < 0 или λi £ 0, то A является соответственно
отрицательно определенной или полуопределенной. Наконец, если A имеет

Tlgm: @it_boooks

Спектральное разложение  323

как положительные, так и отрицательные собственные значения, то она не‑
определенная.

7.4.4. Геометрия квадратичных форм
Квадратичной формой называется функция, которую можно записать
в виде
f(x) = x⟙Ax,

(7.161)

где x Î ℝn, а A – положительно определенная симметричная матрица размера
n´n. Пусть A = UΛU⟙ – диагонализация A (см. раздел 7.4.3). Тогда
(7.162)
где yi = x⟙ui и λi > 0 (так как A положительно определенная). Линии уровня f(x)
являются гиперэллипсоидами. Например, на двумерной плоскости имеем
λ1y12 + λ2y22 = r

(7.163)

– уравнение эллипса (см. иллюстрацию на рис. 7.6). Собственные векторы
определяют ориентацию эллипса, а собственные значения – его вытянутость.

Рис. 7.6  Линии уровня квадратичной формы (x - μ)⟙A(x - μ)
на плоскости. Большая и малая оси эллипса определены первыми двумя собственными векторами A, u1 и u2. На основе рис. 2.7
из работы [Bis06]. Построено программой по адресу figures.
probml.ai/book1/7.6

7.4.5. Стандартизация и отбеливание данных
Пусть имеется набор данных X Î ℝN´D. Часто данные подвергают предва‑
рительной обработке, так чтобы в каждом столбце было нулевое среднее
и единичная дисперсия. Эта процедура называется стандартизацией дан‑
ных и будет обсуждаться в разделе 10.2.8. Хотя стандартизация приводит
дисперсию к 1, она не устраняет корреляцию между столбцами. Для этого

Tlgm: @it_boooks

324  Линейная алгебра
данные необходимо отбелить. Обозначим ковариационную матрицу Σ =
(1/N)X⟙X и пусть Σ = EDE⟙ – ее диагонализация. Иначе говоря, пусть [U, S,
V] – сингулярное разложение X (так что E = V, а D = S2, см. раздел 20.1.3.3).
Теперь определим
(7.164)
Это называется матрицей PCA-отбеливания. (Метод PCA мы обсудим
в разделе 20.1.) Пусть y = Wpcax – преобразованный вектор. Мы можем про‑
верить, что его ковариация отбелена, следующим образом:
(7.165)
Матрица отбеливания определена не однозначно, поскольку любой пово‑
рот W = RWpca сохраняет свойство отбеливания, т. е. W⟙W= Σ-1. Например,
взяв R = E, получим:
(7.166)
Это так называемое отбеливание Махаланобиса, или ZCA (ZCA озна‑
чает «zero-phase component analysis» – метод нуль-фазовых компонент, он
был впервые описан в работе [BS97]). Преимущество ZCA-отбеливания пе‑
ред PCA-отбеливанием заключается в том, что получающиеся в результате
преобразования данные максимально близки к оригинальным (в смысле
наименьших квадратов) [Amo17]. Это показано на рис. 7.7. Применительно
к изображениям векторы данных после преобразования ZCA продолжают
выглядеть как изображения. Это полезно, когда метод применяется как часть
системы глубокого обучения.

7.4.6. Степенной метод
Теперь мы опишем простой итеративный метод вычисления собственно‑
го вектора, соответствующего наибольшему собственному значению ве‑
щественной симметричной матрицы, – степенной метод. Он может быть
полезен, когда матрица очень большая, но разреженная. Например, он ис‑
пользуется в алгоритме Google PageRank для вычисления стационарного
распределения матрицы переходов во Всемирной паутине (ее размер при‑
близительно 3´3 млрд!). В разделе 7.4.7 мы увидим, как использовать этот
метод для вычисления последующих собственных векторов и собственных
значений.
Пусть A – матрица с ортонормированными собственными векторами ui
и собственными значениями |λ1| > |λ2| ³ … ³ |λm| ³ 0, так что A = UΛU⟙. Обо‑
значим v(0) произвольный вектор в образе A, т. е. Ax = v(0) для некоторого x.
Тогда можно записать v(0) в виде
v0 = U(ΛU⟙x) = a1u1 + … + amum

(7.167)

Tlgm: @it_boooks

Спектральное разложение  325

для некоторых постоянных ai. Теперь можно повторно умножать v на A, пере‑
нормируя на каждом шаге:
vt µ Avt-1.

(7.168)

(Перенормирование нужно для обеспечения численной устойчивости.)

(a)

(c)

(b)

(d)

Рис. 7.7  (a) Данные о росте и весе. (b) Стандартизованные. (c) Отбеленные
методом PCA. (d) Отбеленные методом ZCA. Числа относятся к первым 4 точкам,
но всего точек 73. Построено программой по адресу figures.probml.ai/book1/7.7

Поскольку vt – кратное Atv0, имеем:
vt µ a1λt1u1 + a2λt2u2 + … + amλtmum
= λt1(a1u1 + a1(λ2 /λ1)tu2 + … + am(λm /λ1)tum)
® λt1a1u1,

(7.169)
(7.170)
(7.171)

так как |λk|/|λ1| < 1 для k > 1 (в предположении, что собственные значения
отсортированы в порядке убывания). Таким образом, мы видим, что после‑
довательность сходится к u1, хотя и не очень быстро (ошибка уменьшается
приблизительно в |λ2|/|λ1 раз на каждой итерации). Единственное требование
состоит в том, чтобы начальное значение удовлетворяло условию v0⟙u1 ¹ 0,
что для случайно выбранного v0 с большой вероятностью верно.
Теперь обсудим, как вычислить соответствующее собственное значение λ1.
Определим отношение Рэлея:

Tlgm: @it_boooks

326  Линейная алгебра
(7.172)
Отсюда
(7.173)
Таким образом, мы легко можем вычислить λ1, зная u1 и A (см. демонстра‑
ционную программу code.probml.ai/book1/power_method_demo).

7.4.7. Понижение порядка
Предположим, что мы вычислили первый собственный вектор u1 и его соб‑
ственное значение λ1 степенным методом. Теперь опишем, как вычислить
последующие собственные векторы и значения. Поскольку собственные век‑
торы ортонормированы, а собственные значения вещественны, мы можем
исключить из матрицы компоненту u1 следующим образом:
A(2) = (I - u1u1⟙)A(1) = A(1) - u1u1⟙A(1) = A(1) - λ1u1u1⟙.

(7.174)

Это называется понижением порядка матрицы. Затем можно применить
степенной метод к A(2) и найти второе по величине собственное значение
и соответствующий ему собственный вектор в подпространстве, ортогональ‑
ном u1.
В разделе 20.1.2 мы покажем, что оптимальная оценка Ŵ для модели PCA
(описана в разделе 20.1) дается первыми K собственными векторами эмпи‑
рической ковариационной матрицы. Поэтому для реализации PCA можно
использовать метод понижения порядка. Его также можно модифицировать
для реализации разреженного PCA [Mac09].

7.4.8. Собственные векторы оптимизируют
квадратичные формы
Мы можем воспользоваться исчислением матриц для решения задачи оп‑
тимизации способом, который непосредственно приводит к анализу соб‑
ственных значений и векторов. Рассмотрим следующую задачу условной
оптимизации с ограничением в виде равенства:
(7.175)
для симметричной матрицы A Î 𝕊n. Стандартный способ решения задач оп‑
тимизации с ограничениями в виде равенств – построить лагранжиан, т. е.
целевую функцию, включающую ограничения (см. раздел 8.5.1). В данном
случае лагранжиан имеет вид

Tlgm: @it_boooks

Сингулярное разложение (SVD)  327

ℒ(x, λ) = x⟙Ax + λ(1 - x⟙x),

(7.176)

Ñx ℒ(x, λ) = 2A⟙x - 2λx = 0.

(7.177)

где λ называется множителем Лагранжа, ассоциированным с ограничением
в виде равенства. Можно показать, что, для того чтобы x* была точкой оп‑
тимума, градиент лагранжиана в точке x* должен быть равен нулю (это не
единственное, но обязательное условие). Таким образом,

Заметим, что это простое линейное уравнение вида Ax = λx. Это пока‑
зывает, что единственные точки, которые могут доставлять максимум (или
минимум) форме x⟙Ax, в предположении, что x⟙x = 1, – собственные векторы
матрицы A.

7.5. сингулярное разложение (SVD)
Теперь обсудим сингулярное разложение (SVD), которое обобщает спек‑
тральное разложение на прямоугольные матрицы.

7.5.1. Основные сведения
Любую вещественную матрицу A размера m´n можно разложить в произ‑
ведение

(7.178)
где U – матрица m´m с ортонормированными столбцами (т. е. U⟙U = Im),
V – матрица n´n с ортонормированными строками и столбцами (т. е. V⟙V =
VV⟙ = In), а S – матрица m´n, содержащая r = min(m, n) сингулярных чисел
σi ³ 0 на главной диагонали и нули во всех остальных позициях. Столбцы U
называются левыми сингулярными векторами, а столбцы V – правыми
сингулярными векторами. Пример показан на рис. 7.8.
Из рис. 7.8a ясно, что если m > n, то существует не более n сингулярных
чисел, поэтому последние m - n столбцов U несущественны (т. к. они будут
умножены на 0). В экономном SVD, называемой также тощим SVD, эти
ненужные элементы не вычисляются. Иными словами, если записать матри‑
цу U в виде U = [U1, U2], то вычислять нужно только U1. На рис. 7.8b показан
противоположный случай, когда m < n; мы представили V в виде [V1, V2]
и вычисляем только V1.
Стоимость вычисления SVD имеет порядок O(min(mn2, m2n)). Подробнее
об этом методе можно прочитать в стандартных учебниках линейной ал‑
гебры.

Tlgm: @it_boooks

328  Линейная алгебра

(а)

(b)

Рис. 7.8  Сингулярное разложение матрицы, A = USV⟙.
Закрашенные части каждой матрицы в экономной версии не вычисляются.
(a) Высокая узкая матрица. (b) Низкая широкая матрица

7.5.2. Связь между сингулярным и спектральным
разложением
Если A – вещественная, симметричная, положительно определенная матри‑
ца, то сингулярные числа равны собственным значениям, а левые и правые
сингулярные векторы совпадают с собственными векторами (с точностью
до знака):
A = USV⟙ = USU⟙ = USU-1.

(7.179)

Заметим, однако, что NumPy всегда возвращает сингулярные числа в по‑
рядке убывания, тогда как собственные значения могут быть не отсортиро‑
ваны.
В общем случае для любой вещественной матрицы A если A = USV⟙, то
имеем:
A⟙A = VS⟙U⟙USV⟙ = V(S⟙S)V⟙.

(7.180)

Отсюда
(A⟙A)V = VDn,

(7.181)

поэтому собственные векторы A⟙A совпадают с V, правыми сингулярными
векторами A, а собственные значения A⟙A образуют диагональную матрицу
Dn = S⟙S размера n´n, содержащую квадраты сингулярных чисел. Аналогично

Tlgm: @it_boooks

Сингулярное разложение (SVD)  329

AA⟙ = USV⟙VS⟙U⟙ = U(SS⟙)U⟙,

(7.182)

(AA⟙)U = UDm,

(7.183)

так что собственные векторы AA⟙ совпадают с U, левыми сингулярными
векторами A, а собственные значения AA⟙ образуют диагональную матрицу
Dm = SS⟙ размера m´m, содержащую квадраты сингулярных чисел. Резюми‑
руем:
U = evec(AA⟙), V = evec(A⟙A), Dm = eval(AA⟙), Dn = eval(A⟙A).

(7.184)

Если мы просто используем вычисленные (ненулевые) части в экономном
SVD, то можем определить:
D = S2 = S⟙S = SS⟙.

(7.185)

Заметим также, что спектральное разложение существует не всегда, даже
для квадратных матриц A, тогда как сингулярное разложение имеется всегда.

7.5.3. Псевдообратная матрица
Псевдообратная матрица Мура–Пенроуза, обозначаемая A†, – это одно‑
значно определенная матрица, обладающая следующими четырьмя свой‑
ствами:
AA†A = A, A†AA† = A†, (AA†)⟙ = AA†, (A†A)⟙ = A†A.

(7.186)

Если A квадратная и несингулярная, то A† = A-1.
Если m > n (высокая узкая матрица) и столбцы A линейно независимы (т. е.
A имеет полный ранг), то
A† = (A⟙A)-1A⟙

(7.187)

– то же выражение, которое возникает в нормальных уравнениях (см. раз‑
дел 11.2.2.1). В этом случае матрица A† – левая обратная для A, потому что
A†A = (A⟙A)-1A⟙A = I,

(7.188)

но правой обратной она не является, потому что матрица
AA† = A(A⟙A)-1A⟙

(7.189)

имеет только ранг n и, значит, не может быть единичной матрицей размера
m´m.
Если m < n (низкая широкая матрица) и строки A линейно независимы
(т. е. A имеет полный ранг), то псевдообратная матрица имеет вид:
A† = A⟙(AA⟙)-1.
В этом случае A† является правой обратной для A.

(7.190)

Tlgm: @it_boooks

330  Линейная алгебра
Мы можем вычислить псевдообратную матрицу, воспользовавшись SVDразложением A = USV⟙. В частности, можно показать, что
A† = V[diag(1/σ1, …, 1/σr, 0, …, 0)]U⟙,

(7.191)

A† = A-1 = (USV⟙)-1 = VS-1U⟙,

(7.192)

где r – ранг матрицы. Таким образом, A† играет роль обратной матрицы для
неквадратных матриц:

где по определению S-1 = diag(σ1-1, …, σr-1, 0, …, 0).

7.5.4. SVD и образ и ядро матрицы*
В этом разделе мы покажем, что левые и правые сингулярные векторы об‑
разуют ортонормированный базис образа и ядра соответственно.
Из формулы (7.178) имеем
(7.193)
где r – ранг A. Следовательно, любой вектор Ax можно записать в виде ли‑
нейной комбинации левых сингулярных векторов u1, …, ur, так что образ A
имеет вид
range(A) = span({uj : σj > 0})

(7.194)

и размерность r.
Чтобы найти базис ядра, определим второй вектор y Î ℝn, являющийся
линейной комбинацией только правых сингулярных векторов с ненулевыми
сингулярными числами:
(7.195)
Поскольку vj ортонормированы, имеем:

(7.196)

Поэтому правые сингулярные векторы образуют ортонормированный ба‑
зис ядра:
nullspace(A) = span({vj : σj = 0})

(7.197)

Tlgm: @it_boooks

Сингулярное разложение (SVD)  331

размерности n - r. Мы видим, что
dim(range(A)) + dim(nullspace(A)) = r + (n - r) = n.

(7.198)

Словами это часто выражают так:
ранг + дефект = n.

(7.199)

Это утверждение называется теоремой о ранге и дефекте. Из нее следует,
что ранг матрицы равен количеству ненулевых сингулярных чисел.

7.5.5. Усеченное сингулярное разложение
Пусть A = USV⟙ – сингулярное разложение A и ÂK = UKSKV⟙K, где использу‑
ются первые K столбцов U и V. Можно показать, что это оптимальная ап‑
проксимация ранга K в том смысле, что она доставляет минимум величине
||A - ÂK||2F .
Если K = r = rank(A), то это разложение не вносит никакой ошибки. Но
при K < r, когда сингулярное разложение усеченное, какая-то ошибка воз‑
никает. Если сингулярные значения быстро убывают, что характерно для
естественных данных (см., например, рис. 7.10), то ошибка будет небольшой.
Общее число параметров, необходимых для представления матрицы N´D
с помощью аппроксимации ранга K, равно:
NK + KD + K = K(N + D + 1).

(7.200)

В качестве примера рассмотрим изображение с разрешением 200´320 пик‑
селей на рис. 7.9 (слева вверху). Для его описания нужно 64 000 чисел. Мы
видим, что аппроксимация ранга 20, описываемая всего (200 + 320 + 1)´20 =
10 420 числами, дает хорошее качество.
rank 200

rank 2

(a)

(b)

rank 5

rank 20

(c)

(d)

Рис. 7.9  Аппроксимации изображения с низким рангом. Слева вверху: оригинальное изображение размера 200´320, имеющее ранг 200.
Последующие изображения имеют ранг 2, 5 и 20. Построено программой по адресу figures.probml.ai/book1/7.9

Tlgm: @it_boooks

332  Линейная алгебра

Рис. 7.10  Первые 100 логарифмов сингулярных чисел для изображения
клоуна (красная линия) и для матрицы данных, полученной случайной перетасовкой пикселей (синяя линия). Построено программой по адресу figures.
probml.ai/book1/7.10. На основе рис. 14.24 из работы [HTF09]

Можно показать, что ошибка этой аппроксимации равна
(7.201)
где σk – k-е сингулярное значение A. Кроме того, можно показать, что SVD –
лучшая аппроксимация матрицы, имеющая ранг K (в смысле минимизации
нормы Фробениуса).

7.6. другие матриЧные разложения*
В этом разделе мы кратко опишем еще некоторые полезные матричные раз‑
ложения.

7.6.1. LU-разложение
Мы можем разложить любую квадратную матрицу A в произведение нижне‑
треугольной матрицы L и верхнетреугольной матрицы U. Например,
(7.202)
В общем случае перед созданием такого разложения может потребоваться
переставить элементы матрицы. Для демонстрации предположим, что a11 =
0. Так как a11 = l11u11, то либо l11, либо u11 (либо оба вместе) должны быть

Tlgm: @it_boooks

Другие матричные разложения  333

равны 0, но тогда L или U была бы сингулярной. Чтобы избежать этого, на
первом шаге алгоритма можно просто переставить строки, так чтобы первый
элемент стал не равен нулю. Это повторяется и на последующих шагах. Обо‑
значим этот процесс
PA = LU,

(7.203)

где P – матрица перестановки, т. е. квадратная бинарная матрица, в которой
Pij = 1, если строка j переставляется со строкой i. Это называется выбором
ведущего элемента.

7.6.2. QR-разложение
Пусть имеется матрица A Î ℝm´n, представляющая множество линейно не‑
зависимых базисных векторов (так что m ³ n), и мы хотим найти последо‑
вательность ортонормированных векторов q1, q2, …, на которую натянуты
подпространства span(a1), span(a1, a2) и т. д. Иначе говоря, мы хотим найти
векторы qj и коэффициенты rij такие, что

(7.204)

Это можно записать в виде:
a1 = r11q1,

(7.205)

a2 = r12q1 + r22q2,

(7.206)

an = r1nq1 + … + rnnqn,

(7.207)

т. е. на q1 натянуто пространство a1, на q1 и q2 – пространство {a1, a2} и т. д.
В матричной нотации имеем
A = Q̂ R̂,

(7.208)

где Q̂ – матрица размера m´n с ортонормированными столбцами, а R̂ – верхнетреугольная матрица размера n´n. Это называется редуцированным, или
экономным, QR-разложением A; см. рис. 7.11.
При полном QR-разложении в конец Q̂ дописывается еще m - n ортонор‑
мированных столбцов, так что получается квадратная ортогональная матри‑
ца Q, удовлетворяющая равенствам QQ⟙ = Q⟙Q = I. Кроме того, мы добавляем
составленные из нулей строки в конец R̂, так что получается матрица размера
m´n, по-прежнему верхнетреугольная, которая обозначается R: см. рис. 7.11.
Нулевые элементы R сводят на нет новые столбцы Q, поэтому результат полу‑
чается такой же, как при вычислении Q̂R̂.

Tlgm: @it_boooks

334  Линейная алгебра
QR-разложение часто используется при решении систем линейных урав‑
нений (см. раздел 11.2.2.3).

(а)

(b)

Рис. 7.11  QR-разложение, A = QR, где Q⟙Q = I и R – верхнетреугольная
матрица. (a) Высокая узкая матрица. Закрашенные части в экономной версии
не вычисляются, потому что не нужны. (b) Низкая широкая матрица

7.6.3. Разложение Холески
Любую симметричную положительно определенную матрицу можно раз‑
ложить в произведение A = R⟙R, где R – верхнетреугольная матрица с ве‑
щественными положительными элементами на диагонали. (Это разложе‑
ние можно записать также в виде A = LL⟙, где L = R⟙ – нижнетреугольная
матрица.) Это разложение Холески, или квадратный корень из матрицы. А NumPy оно реализовано в модуле np.linalg.cholesky. Вычислительная
сложность этой операции составляет O(V 3), где V – число переменных, но
для разреженных матриц может быть и меньше. Ниже описано несколько
применений этого разложения.

7.6.3.1. Приложение: выборка из многомерного гауссова
распределения
Разложение Холески ковариационной матрицы можно использовать для вы‑
борки из многомерного гауссова распределения. Пусть y ~ 𝒩(μ, Σ) и Σ = LL⟙.
Сначала выбираем x ~ 𝒩(0, I), это легко, потому что нужно лишь произвести
выборку из d раздельных одномерных гауссовых распределений. Затем по‑
ложим y = Lx + μ. Это допустимо, потому что
Cov[y] = LCov[x]L⟙ = LIL⟙ = Σ.
Код приведен по адресу code.probml.ai/book1/cholesky_demo.

(7.209)

Tlgm: @it_boooks

Решение систем линейных уравнений  335

7.7. решение систем линейных ураВнений*
Важное применение линейной алгебры – изучение систем линейных урав‑
нений. Например, рассмотрим систему из трех уравнений:
3x1 + 2x2 - x3 = 1,

(7.210)

2x1 - 2x2 + 4x3 = -2,

(7.211)

-x1 + x2 - x3 = 0.

(7.212)

Ее можно представить в матричной форме следующим образом:
(7.213)

Ax = b,
где

(7.214)

Решением является вектор x = [1, -2, -2].
В общем случае, когда имеется m уравнений и n неизвестных, A будет матрицей размера m´n, а b – вектором m´1. Если m = n (и матрица A полного
ранга), существует единственное решение. Если m < n, то система недоопределенная, поэтому решение не единственно. Если m > n, то система переопределенная, потому что ограничений больше, чем неизвестных, и не все
прямые пересекаются в одной точке (см. иллюстрацию на рис. 7.12). Ниже мы
обсудим, как вычислять решения в каждом из этих случаев.

(a)

(b)

Рис. 7.12  Решение системы m линейных уравнений с n = 2 переменными. (a) m = 1 < n, т. е. система недоопределенная. Решение с минимальной нормой показано синей точкой. (Красный пунктирный отрезок
ортогонален синей прямой, а его длина равна расстоянию до начала
координат.) (b) m = n = 2, поэтому решение существует и единственно. (c)
m = 3 > n, поэтому точного решения не существует. Показано решение по
методу наименьших квадратов

(c)

Tlgm: @it_boooks

336  Линейная алгебра

7.7.1. Решение квадратных систем
В случае m = n решение x можно найти, вычислив LU-разложение, A = LU,
а затем поступив следующим образом:
Ax = b,

(7.215)

LUx = b,

(7.216)

Ux = L-1b

y,

x = U-1y.

(7.217)
(7.218)

Здесь важно, что обе матрицы L и U треугольные, поэтому можно обойтись
без вычисления обратных матриц, а использовать метод обратного хода.
Именно, найти решение y = L-1b без обращения матриц можно следую‑
щим образом. Сначала запишем:

(7.219)

Начинаем с решения уравнения L11y1 = b1, из которого находим y1 и под‑
ставляем в уравнение
L21y1 + L22y2 = b2,

(7.220)

из которого находим y2. Эта процедура повторяется рекурсивно и зачастую
обозначается оператором обратной косой черты, y = L\b. Найдя y, мы
можем точно так же, обратным ходом, найти x = U-1y.

7.7.2. Решение недоопределенных систем
(оценка по наименьшей норме)
В этом разделе мы рассмотрим недоопределенные системы, когда m < n1.
Предполагается, что строки линейно независимы, т. е. матрица A полного
ранга.
Если m < n, то существует несколько возможных решений, и все они имеют
вид
{x : Ax = b} = {xp + z : z Î nullspace(A)},

(7.221)

где xp – какое-то решение. Принято выбирать решение с минимальной 𝓁2‑
нормой:
1

Наше изложение частично основано на заметках к лекциям Стивена Бойда по
адресу http://ee263.stanford.edu/lectures/min-norm.

Tlgm: @it_boooks

Решение систем линейных уравнений  337

(7.222)
Вычислить решение с минимальной нормой можно, воспользовавшись
правой псевдообратной матрицей:
xpinv = A⟙(AA⟙)-1b.

(7.223)

Чтобы убедиться в этом, предположим, что x – какое-то другое решение,
т. е. Ax = b и A(x - xpinv) = 0. Тогда
(x - xpinv)⟙xpinv = (x - xpinv)⟙A⟙(AA⟙)-1b

= (A(x - xpinv))⟙(AA⟙)-1b = 0,

а потому (x - xpinv) ⊥ xpinv. По теореме Пифагора, норма x равна:
||x||2 = ||xpinv + x - xpinv||2 = ||xpinv||2 + ||x - xpinv||2 ³ ||xpinv||2.

(7.224)

(7.225)

Таким образом, любое решение, отличное от xpinv, имеет большую норму.
Решить задачу оптимизации с ограничениями (7.222) можно и по-другому – минимизировав следующую целевую функцию без ограничений:
ℒ(x, λ) = x⟙x + λ⟙(Ax - b).

(7.226)

Ñx ℒ = 2x + A⟙λ = 0; Ñλ ℒ = Ax - b = 0.

(7.227)

Ax = - AA⟙λ = b,

(7.228)

В разделе 8.5.1 показано, что условия оптимальности имеют вид:

Из первого условия находим x = -A⟙λ/2. Подставляя во второе уравнение,
получаем

откуда следует, что λ = -2(AA⟙)-1b. Отсюда x = A⟙(AA⟙)-1b, а это и есть ре‑
шение в виде правой псевдообратной матрицы.
Существует интересная связь с регуляризированным методом наимень‑
ших квадратов. Положим, J1 = ||Ax - b||22 и J2 = ||x||22. Решение с минимальной
нормой минимизирует J2 при ограничении J1 = 0. Теперь рассмотрим следу‑
ющую целевую функцию в виде взвешенной суммы:
ℒ(x) = J2 + λJ1 = ||x||22 + λ||b - Ax||22.

(7.229)

Ñx ℒ(x) = 2x - 2λA⟙(b - Ax) = 0 Þ x(I + λA⟙A) = λA⟙b.

(7.230)

x̂ = (A⟙A)-1A⟙b,

(7.231)

Поскольку это выпуклая задача, лагранжиан достигает минимума, когда
градиент равен нулю, так что

При λ ® ¥ получаем

Tlgm: @it_boooks

338  Линейная алгебра
где (A⟙A)-1A⟙ – левая псевдообратная матрица для A. Альтернативно (но
эквивалентно) можно назначить вес μ 𝓁2-регуляризатору ||x||22 и устремить
его к нулю. Из приведенной выше формулы получаем:
(μI + A⟙A)-1A⟙ ® A⟙(AA⟙)-1.

(7.232)

Итак, решение по методу регуляризированных наименьших квадратов
в пределе, когда регуляризация отсутствует, сходится к решению по мини‑
мальной норме.

7.7.3. Решение переопределенных систем
(оценка по методу наименьших квадратов)
Если m > n, то мы имеем переопределенную систему, которая, как правило,
не имеет точного решения, но можно попытаться найти решение, которое
как можно лучше удовлетворяет всем ограничениям, представленным в фор‑
ме Ax = b. Это можно сделать путем минимизации следующей целевой
функции метода наименьших квадратов:
(7.233)
Используя результаты матричного исчисления из раздела 7.8, находим
градиент:
(7.234)
Для нахождения оптимума следует решить уравнение g(x) = 0, т. е.
A⟙Ax = A⟙b.

(7.235)

Эти уравнения называются нормальными, потому что в точке оптимума
вектор b - Ax нормален (ортогонален) образу A, как объясняется в разде‑
ле 11.2.2.2. Соответствующее решение x̂, полученное методом обыкновенных наименьших квадратов (ordinary least squares – OLS), имеет вид:
x̂ = (A⟙A)-1A⟙b.

(7.236)

Величина A† = (A⟙A)-1A⟙ – левая псевдообратная матрица для (неквадрат‑
ной) матрицы A (детали см. в разделе 7.5.3).
Можно убедиться, что это решение единственное, показав, что гессиан
положительно определен. В данном случае гессиан имеет вид:
(7.237)
Если матрица A полного ранга (т. е. столбцы A линейно независимы), то H
положительно определенная, т. к. для любого v > 0 имеем:

Tlgm: @it_boooks

Матричное исчисление  339

v⟙(A⟙A)v = (Av)⟙(Av) = ||Av||2 > 0.

(7.238)

Следовательно, для матриц полного ранга целевая функция метода наи‑
меньших квадратов имеет единственный глобальный минимум.

7.8. матриЧное исЧисление
Предмет анализа, или исчисления (бесконечно малых) – вычисление «ско‑
рости изменения» функций при изменении их аргументов. Это чрезвычайно
важно для машинного обучения, как и почти для всех численных методов.
В этом разделе мы приведем краткую сводку некоторых стандартных ре‑
зультатов. Иногда мы будем использовать понятия и обозначения матрич‑
ной алгебры, введенные в главе 7. Дополнительные сведения с точки зрения
глубокого обучения см. в работе [PH18].

7.8.1. Производные
Рассмотрим функцию скалярного аргумента f : ℝ ® ℝ. Определим ее производную в точке a как величину
(7.239)
в предположении, что предел существует. Эта величина измеряет скорость
изменения выхода при перемещении на малое расстояние от x в простран‑
стве входов. f ¢(x) – можно интерпретировать как угол наклона касательной
к графику f(x) и потому
f(x + h) » f(x) + f ¢(x)h

(7.240)

для малых h.
Мы можем вычислить конечноразностную аппроксимацию производной, взяв конечный размер шага h:

(7.241)

Чем меньше размер шага h, тем лучше оценка. Но если h слишком мало, то
возможны ошибки из-за сокращения чисел.
Дифференцирование можно рассматривать как оператор, отображающий
функции в функции, D(f) = f ¢, где f ¢(x) вычисляет производную в точке x
(в предположение, что производная в этой точке существует). Использование

Tlgm: @it_boooks

340  Линейная алгебра
записи со штрихом f ¢ для обозначения производной называется нотацией
Лагранжа. Вторая производная, измеряющая скорость изменения градиен‑
та, обозначается f ². n-я производная обозначается f (n).
Имеется альтернативная нотация Лейбница, когда функция обозначает‑
ся y = f(x), а ее производная –

или

Чтобы обозначить вычисление

производной в точке a, пишут

7.8.2. Градиенты
Понятие производной можно обобщить на функции векторного аргумента,
f : ℝn ® ℝ, определив частную производную f по xi:
(7.242)

где ei – i-й единичный вектор.
Градиентом функции в точке x называется вектор, составленный из ее
частных производных:

(7.243)

Указать, в какой точке вычисляется градиент, можно следующим образом:
(7.244)
Как видим, оператор Ñ (произносится «набла») отображает функцию f : ℝn
® ℝ в другуюфункцию g : ℝn ® ℝn. Поскольку g() – просто векторная функ‑
ция, ее называют векторным полем. А производную f¢ иногда называют
скалярным полем.

7.8.3. Производная по направлению
Производная по направлению измеряет скорость изменения функции f :
ℝn ® ℝ вдоль направления v в пространстве. Она определяется следующим
образом:
(7.245)

Tlgm: @it_boooks

Матричное исчисление  341

Ее можно аппроксимировать численно с помощью двух обращений к функ‑
ции f независимо от n. С другой стороны, для численной аппроксимации
стандартного градиента требуется n + 1 обращений (или 2n при использо‑
вании центральных разностей).
Заметим, что производная по направлению v является скалярным произ‑
ведением градиента g и вектора v:
Dv f(x) = Ñf(x) · v.

(7.246)

7.8.4. Полная производная*
Предположим, что одни аргументы функции зависят от других. Конкретно,
предположим, что функция имеет вид f(t, x(t), y(t)). Определим полную производную f по t следующим образом:
(7.247)
Если умножить обе части на дифференциал dt, то получим полный дифференциал:
(7.248)
Он измеряет, насколько изменяется f при изменении t – как вследствие
прямого влияния t на f, так и влияния t на x и y.

7.8.5. Якобиан
Рассмотрим функцию, которая отображает один вектор в другой, f : ℝn ® ℝm.
Якобиан (или матрица Якоби) этой функции – это матрица размера m´n,
составленная из частных производных:

(7.249)

Заметим, что мы расположили все частные производные одной компо‑
ненты функции по разным переменным в строках матрицы; такую запись
иногда называют по строкам (numerator) или нотацией Якоби1.

1

Гораздо более полное рассмотрение нотации см. в статье https://en.wikipedia.org/
wiki/Matrix_calculus.

Tlgm: @it_boooks

342  Линейная алгебра

7.8.5.1. Умножение якобиана на вектор
Произведение якобиана на вектор (JVP) определяется как результат ум‑
ножения справа матрицы Якоби J Î ℝm´n на вектор v Î ℝn:
(7.250)

Как видим, эту величину можно численно аппроксимировать с помощью
всего двух обращений к f.
Произведение вектора на якобиан (VJP) определяется как результат
умножения слева матрицы Якоби J Î ℝm´n на вектор v Î ℝm:
(7.251)

Вычисление JVP более эффективно, когда m ³ n, а вычисление VJP – когда
m £ n. О том, как этим можно воспользоваться для автоматического диф‑
ференцирования в графе вычислений в глубоких нейронных сетях, см. раз‑
дел 13.3.

7.8.5.2. Якобиан композиции
Иногда приходится вычислять якобиан композиции двух функций. Пусть
h(x) = g( f(x)). В силу правила дифференцирования сложной функции имеем:
Jh(x) = Jg( f(x))Jf (x).

(7.252)

Например, предположим, что f : ℝ ® ℝ2 и g : ℝ2 ® ℝ2. Тогда
(7.253)

(7.254)

7.8.6. Гессиан
Если функция f : ℝn ® ℝ дважды дифференцируема, то гессиан (или матрица
Гесса) определяется как (симметричная) матрица, составленная из вторых
частных производных:

Tlgm: @it_boooks

Матричное исчисление  343

(7.255)

Как видим, гессиан является якобианом градиента.

7.8.7. Градиенты часто встречающихся функций
В этом разделе мы приведем без доказательства градиенты некоторых ши‑
роко распространенных функций.

7.8.7.1. Функции, отображающие скаляры в скаляры
Рассмотрим дифференцируемую функцию f : ℝ ® ℝ. Вот несколько полезных
тождеств из одномерного вещественного анализа, с которыми вы, должно
быть, хорошо знакомы:
(7.256)
(7.257)
(7.258)
(7.259)
(7.260)
(7.261)
Формула (7.261) называется правилом дифференцирования сложной
функции.

7.8.7.2. Функции, отображающие векторы в скаляры
Рассмотрим дифференцируемую функцию f : ℝn ® ℝ. Вот несколько полезных
тождеств1:
1

Некоторые из этих тождеств взяты со страницы http://www.cs.nyu.edu/~roweis/notes/
matrixid.

Tlgm: @it_boooks

344  Линейная алгебра
(7.262)
(7.263)
(7.264)
Эти тождества легко доказываются, если раскрыть соответствующую ква‑
дратичную форму и применить формулы скалярного анализа.

7.8.7.3. Функции, отображающие матрицы в скаляры
Рассмотрим функцию f : ℝm´n ® ℝ, отображающую матрицу в скаляр. Мы
пользуемся следующей естественной организацией матрицы производных:

(7.265)

Ниже приведены некоторые полезные тождества.

Тождества, включающие квадратичные формы
Можно доказать следующие результаты:
(7.266)
(7.267)

Тождества, включающие след матрицы
Можно доказать следующие результаты:
(7.268)
(7.269)
(7.270)
(7.271)

Tlgm: @it_boooks

Упражнения  345

Тождества, включающие определитель матрицы
Можно доказать следующие результаты:
(7.272)
(7.273)

7.9. упражнения
Упражнение 7.1 [ортогональные матрицы].
a. Поворот в трехмерном пространстве на угол α вокруг оси z описывается
следующей матрицей:
(7.274)
Докажите, что матрица R ортогональная, т. е. R⟙R = I для любого α.
b. Найдите единственный собственный вектор v матрицы R с собствен‑
ным значением 1.0 и единичной нормой (т. е. ||v||2 = 1)? (Ответ должен
быть одинаковым для любого α.) Указание: подумайте о геометриче‑
ской интерпретации собственных векторов.
Упражнение 7.2 [нахождение собственных векторов вручную*].
Найдите собственные значения и собственные векторы следующей матрицы:
(7.275)
Вычислите результаты вручную и проверьте их с помощью программы на
Python.

Tlgm: @it_boooks

Глава

8
Оптимизация

В написании этой главы участвовали Фредерик Кунстнер, Си И Мень, Аарон
Мишкин, Шаран Васвани и Марк Шмидт.

8.1. ВВедение
В главе 4 мы видели, что главной задачей машинного обучения является
оценивание параметров (или обучение модели). Для этого требуется решить
задачу оптимизации, т. е. найти значения множества переменных θ Î Θ,
доставляющие минимум скалярной функции потерь, или функции стоимости ℒ : Θ ® ℝ:
(8.1)

Будем предполагать, что пространство параметров Θ ⊆ ℝD, где D – число
переменных, по которым производится оптимизация. Таким образом, нас
будет интересовать непрерывная, а не дискретная оптимизация.
Если мы хотим максимизировать функцию оценки, или функцию вознаграждения R(θ), то можем вместо этого минимизировать функцию
ℒ(θ) = -R(θ). Мы будем употреблять общий термин целевая функция для
обозначения функции, которую требуется максимизировать или минимизи‑
ровать. Алгоритм нахождения оптимума целевой функции часто называют
решателем.
Далее в этой главе мы обсудим различные виды решателей для разных
целевых функций, обращая особое внимание на методы, применяемые в со‑
обществе машинного обучения. Дополнительные сведения об оптимиза‑
ции вообще можно найти в таких прекрасных учебниках, как [KW19b, BV04,
NW06, Ber15, Ber16], а также в обзорных статьях, например [BCN18, Sun+19b,
PPS18, Pey20].

8.1.1. Локальная и глобальная оптимизация
Точка, удовлетворяющая условию (8.1), называется глобальным оптимумом. Нахождение такой точки называется глобальной оптимизацией.

Tlgm: @it_boooks

Введение  347

В общем случае задача нахождения глобального оптимума вычислитель‑
но неразрешима [Neu04]. В таких случаях мы пытаемся найти локальный
оптимум. Для непрерывных задач он определяется как точка θ*, в которой
стоимость меньше (или равна) стоимости в «близких» точках. Формально
говорят, что θ* является локальным минимумом, если
$δ > 0, ∀θ Î Θ такое, что ||θ - θ*|| < δ, ℒ(θ*) £ ℒ(θ).

(8.2)

$δ > 0, "θ Î Θ, θ ¹ θ* : ||θ - θ*|| < δ, ℒ(θ*) < ℒ(θ).

(8.3)

Локальный минимум может быть окружен другими локальными мини‑
мумами той же целевой функции, в таком случае он называется плоским.
Говорят, что точка является точкой строгого локального минимума, если
целевая функция в ней строго меньше, чем в соседних точках:

Локальный максимум (в том числе строгий) определяется аналогично
(см. иллюстрацию на рис. 8.1a).

(a)

(b)

Рис. 8.1  (a) Локальный и глобальный минимум в одномерном случае. Построено программой по адресу figures.probml.ai/book1/8.1. (b) Седловая точка
в трехмерном пространстве. Построено программой по адресу figures.probml.
ai/book1/8.1

И последнее замечание о терминологии: если алгоритм гарантированно
сходится к стационарной точке, начав работу из любой точки, то говорят, что
он глобально сходящийся. Но это не означает, что он сходится к глобально‑
му оптимуму (что вносит некоторую путаницу), а означает лишь сходимость
к некоторой стационарной точке.

8.1.1.1. Условия оптимальности для локальных
и глобальных оптимумов
Для непрерывных, дважды дифференцируемых функций можно точно оха‑
рактеризовать точки, соответствующие локальным минимумам. Обозначим
g(θ) = Ñℒ(θ) вектор градиента, а H(θ) = Ñ2ℒ(θ) – гессиан. (Если вы забыли, что

Tlgm: @it_boooks

348  Оптимизация
означают эти понятия, обратитесь к разделу 7.8.) Рассмотрим точку θ* Î ℝD,
и пусть g* = g(θ)|θ* – градиент в этой точке, а H* = H(θ)|θ* – соответствующий
гессиан. Можно показать, что следующие условия характеризуют любой ло‑
кальный минимум:
 необходимое условие: если θ* – локальный минимум, то должно быть
g* = 0 (т. е. θ* должна быть стационарной точкой) и H* должна быть
положительно определенной;
 достаточное условие: если g* = 0 и H* положительно определенная, то
θ* является локальным оптимумом.
Чтобы понять, почему первое условие необходимо, предположим, что мы
находимся в точке θ*, в которой градиент отличен от нуля: в такой точке
можно было бы уменьшить функцию, сдвинувшись на небольшое расстояние
в направлении отрицательного градиента, поэтому она не была бы опти‑
мальной. Поэтому градиент должен быть равен нулю. (Для негладких функ‑
ций необходимое условие заключается в том, что в точке минимума в нуль
должен обращаться локальный субградиент.) Чтобы понять, почему условие
нулевого градиента недостаточно, заметим, что стационарная точка может
быть локальным минимумом, локальным максимумом или седловой точкой, в которой одни направления ведут вверх, а другие вниз (см. рис. 8.1b).
Точнее, в седловой точке часть собственных значений гессиана будет по‑
ложительна, а часть отрицательна. Однако если в некоторой точке гессиан
положительно полуопределен, то могут быть только направления, ведущие
вверх, и плоские направления. Это означает, что целевую функцию нельзя
уменьшить в окрестности данной точки, т. е. мы обязательно имеем локаль‑
ный минимум. Если же гессиан строго положительно определен, то мы на‑
ходимся в нижней точке «миски», где все направления ведут вверх; этого
достаточно, чтобы точка была минимумом.

8.1.2. Условная и безусловная оптимизация
В задаче безусловной оптимизации мы ищем в пространстве параметров
Θ любое значение, минимизирующее потерю. Однако часто имеется набор
ограничений на допустимые значения. Обычно весь набор ограничений 𝒞
разбивается на ограничения в виде неравенств, gj(θ) £ 0 для j Î ℐ, и ограничения в виде равенств, hk(θ) = 0 для k Î ℰ. Например, можно записать
ограничение «сумма должна быть равна единице» в виде равенства h(θ) =
(1 - åDi=1 θi) = 0, а ограничение неотрицательности параметров с помощью
D неравенств gi(θ) = -θi £ 0.
Определим допустимое множество как подмножество пространства па‑
раметров, удовлетворяющее ограничениям:
𝒞 = {θ : gj(θ) £ 0 : j Î ℐ, hk(θ) = 0 : k Î ℰ} Í ℝD.

(8.4)

Теперь задача условной оптимизации принимает вид:
(8.5)

Tlgm: @it_boooks

Введение  349

Если 𝒞 = ℝD, то мы имеем задачу безусловной оптимизации.
При добавлении ограничений может измениться количество оптимумов
функции. Например, функция, которая раньше была неограниченной (и по‑
тому не имела корректно определенных глобального максимума или мини‑
мума) может «обрести» несколько максимумов или минимумов после до‑
бавления ограничений, как показано на рис. 8.2. Но если добавить слишком
много ограничений, то может оказаться, что допустимое множество пусто.
Задача нахождения хотя бы одной точки, принадлежащей допустимому мно‑
жеству, называется задачей существования, она сама по себе может быть
трудной проблемой.
Единственный
глобальный максимум

Два глобальных максимума

(a)

(b)

Нет глобального максимума

(c)

Рис. 8.2  Условная максимизация невыпуклой функции одной переменной.
Область между пунктирными вертикальными прямыми – допустимое множество. (a) Существует единственный глобальный максимум, потому что функция
выпукла на допустимом множестве. (b) Существует два глобальных максимума,
оба на границе допустимого множества. (c) В случае безусловной оптимизации
эта функция не имеет глобального максимума, потому что неограниченна

Стандартная стратегия решения задач условной оптимизации – завести
штрафующие члены, которые измеряют степень нарушения ограничения.
Эти члены прибавляются к целевой функции, после чего решается задача
безусловной оптимизации. Частным случаем такой комбинированной целе‑
вой функции является лагранжиан (детали см. в разделе 8.5).

8.1.3. Выпуклая и невыпуклая оптимизация
В случае выпуклой оптимизации мы требуем, чтобы целевая функция была
определена на выпуклом множестве и выпукла на нем (определение этих
терминов см. в разделе 8.1.3). В таких задачах локальный минимум одно‑
временно является глобальным. Поэтому многие модели проектируются так,
чтобы обучаемая целевая функция была выпуклой.

8.1.3.1. Выпуклые множества
Множество 𝒮 называется выпуклым, если для любых x, x¢ Î 𝒮 имеет место
λx + (1 - λ)x¢ Î 𝒮, "λ Î [0, 1].

(8.6)

То есть все точки отрезка, соединяющего x и x¢, лежат внутри множества.
Примеры выпуклых и невыпуклых множеств приведены на рис. 8.3.

Tlgm: @it_boooks

350  Оптимизация

Выпуклые

Невыпуклые

Рис. 8.3  Выпуклые и невыпуклые множества

8.1.3.2. Выпуклые функции
Функция f называется выпуклой, если ее надграфик (множество точек, рас‑
положенных выше графика функций, см. рис. 8.4a) является выпуклым мно‑
жеством. Эквивалентное определение: функция f(x) называется выпуклой,
если она определена на выпуклом множестве 𝒮 и для любых x, y Î 𝒮 и для
любого 0 £ λ £ 1 имеет место неравенство:
f(λx + (1 - λ)y) £ λf(x) + (1 - λ)f(y).

(8.7)

f(x)

epi f(x)

x1

x2
(а)

(b)

Рис. 8.4  (a) Надграфик функции. (b) Для выпуклой функции f(x) надграфик
можно представить в виде пересечения полупространств, нижние линейные
границы которых определены сопряженной функцией f *(λ) = maxx λx - f(x)

Пример выпуклой функции на вещественной прямой приведен на рис. 8.5a.
Функция называется строго выпуклой, если это неравенство строгое. Функ‑
ция f(x) называется вогнутой, если -f(x) выпукла, и строго вогнутой, если
-f(x) строго выпукла. Пример функции, не являющейся ни выпуклой, ни
вогнутой, приведен на рис. 8.5b.

Tlgm: @it_boooks

Введение  351

(a)

(b)

Рис. 8.5  (a) Выпуклая функция. Хорда, соединяющая точки (x, f(x)) и (y, f(y)),
расположена выше функции. (b) Функция, не являющаяся ни выпуклой, ни вогнутой. A – локальный минимум, B – глобальный минимум

Приведем несколько примеров выпуклых функций одной переменной:
x 2;
eax;
-log x;
xa, a > 1, x > 0;
|x|a, a ³ 1;
x log x, x > 0.

8.1.3.3. Характеристика выпуклых функций
Интуитивно понятно, что выпуклая функция выглядит как миска. Формально
можно доказать следующий важный результат.
Теорема 8.1.1. Предположим, что функция f : ℝn ® ℝ дважды дифференцируе­
ма в своей области определения. Тогда f выпукла тогда и только тогда, когда
матрица H = Ñ2f(x) положительно полуопределенная (раздел 7.1.5.3) для всех
x Î dom( f ). При этом f строго выпукла, если H положительно определенная.
Например, рассмотрим квадратичную форму:
f(x) = x⟙Ax.

(8.8)

Эта функция выпукла, если A положительно полуопределенная, и строго
выпукла, если A положительно определенная. Она не является ни выпуклой,
ни вогнутой, если собственные значения A имеют разные знаки (см. рис. 8.6).

Tlgm: @it_boooks

352  Оптимизация

f(x)

f(x)
x2

x2
x1

x1

(а)

(b)

f(x)

f(x)
x2

x2
x1
(c)

x1
(d)

Рис. 8.6  Квадратичная форма f(x) = x⟙Ax с двумя переменными. (a) A положительно определенная, поэтому f выпуклая. (b) A отрицательно определенная,
поэтому f вогнутая. (c) A положительно полуопределенная, но сингулярная, поэтому f выпуклая, но не строго выпуклая. Обратите внимание на долину постоянной ширины в середине. (d) A неопределенная, поэтому f не является ни
выпуклой, ни вогнутой. Стационарная точка в середине поверхности является
седловой точкой. На основе рис. 5 из [She94]

8.1.3.4. Сильно выпуклые функции
Функция f называется сильно выпуклой с параметром m > 0, если для любых
x, y в области определения f имеет место неравенство:
(Ñf(x) - Ñf(y))⟙(x - y) ³ m||x - y||22.

(8.9)

Сильно выпуклая функция является также строго выпуклой, но обратное
неверно.
Если функция f дважды непрерывно дифференцируема, то она сильно вы‑
пукла с параметром m тогда и только тогда, когда Ñ2f(x) ≽ mI для любого x
в области определения, где I – единичная матриц, Ñ2f – гессиан, а символ
≽ означает, что матрица Ñ2f(x) - mI положительно полуопределенная. Это
эквивалентно условию, что минимальное собственное значение Ñ2f(x) не
меньше m для всех x. Если областью определения является вещественная
прямая, то Ñ2f(x) – это просто вторая производная f ²(x), поэтому условие
принимает вид f ²(x) ³ m. Если m = 0, значит, гессиан положительно полуопре‑
делен (а если область определения – вещественная прямая, значит, f ²(x) ³ 0),
откуда следует, что функция выпуклая и, быть может, строго выпуклая, но не
сильно выпуклая.

Tlgm: @it_boooks

Введение  353

Различие между выпуклостью, строгой выпуклостью и сильной выпуклостью
довольно тонкое. Чтобы лучше разобраться в этом вопросе, рассмотрим случай,
когда f определена на вещественной прямой и дважды непрерывно дифферен‑
цируема. Тогда эти различия можно охарактеризовать следующим образом:
 f является выпуклой тогда и только тогда, когда f ²(x) ³ 0 для всех x;
 f является строго выпуклой, если f ²(x) > 0 для всех x (примечание: это
условие достаточно, но не необходимо);
 f является сильно выпуклой тогда и только тогда, когда f ²(x) ³ m > 0
для всех x.
Можно показать, что функция f сильно выпукла с параметром m тогда
и только тогда, когда функция
(8.10)
является выпуклой.

8.1.4. Гладкая и негладкая оптимизация
В случае гладкой оптимизации целевая функция и ограничения являются
непрерывно дифференцируемыми функциями. Степень гладкости гладких
функций можно количественно охарактеризовать с помощью постоянной
Липшица. В одномерном случае так называется любая постоянная L ³ 0 та‑
кая, что для любых вещественных x1 и x2 имеет место неравенство:
|f(x1) - f(x2)| £ L|x1 - x2|.

(8.11)

Это показано на рис. 8.8: для заданной постоянной L значение функции не
может измениться более чем на L при изменении аргумента на одну единицу.
Это понятие можно обобщить на функции с векторным аргументом при ис‑
пользовании подходящей нормы.

(a)

(b)

Рис. 8.7  (a) Гладкая функция одной переменной. (b) Негладкая функция одной переменной (имеется точка негладкости в начале координат). Построено
программой по адресу figures.probml.ai/book1/8.7

Tlgm: @it_boooks

354  Оптимизация

Рис. 8.8  Для липшицевой функции f существует двойной конус (белого цвета), вершину которого можно перемещать вдоль графика функции
f, так что весь график будет оставаться вне конуса. Из статьи https://
en.wikipedia.org/wiki/Lipschitz_continuity. Печатается с разрешения автора «Википедии» Taschee

В случае негладкой оптимизации существуют точки, в которых градиент
целевой функции или ограничений не определен (см. пример на рис. 8.7).
В некоторых задачах оптимизации целевую функцию можно разбить на две
части: содержащую только гладкие члены и содержащую негладкие члены:
ℒ(θ) = ℒs(θ) + ℒr(θ),

(8.12)

где ℒs – гладкая (дифференцируемая), а ℒr – негладкая функция. Часто такую
целевую функцию называют составной. В машинном обучении ℒs – обычно
потеря на обучающем наборе, а ℒк – регуляризатор, например 𝓁1-норма θ.
Такую составную структуру можно задействовать в различных алгоритмах.

8.1.4.1. Субградиенты
В этом разделе мы обобщим понятие производной на функции, имеющие
локальные негладкости. В частности, для выпуклой функции нескольких пе‑
ременных, f : ℝn ® ℝ, говорят, что g Î ℝn является субградиентом f в точке
x Î dom( f ), если для любой точки z Î dom(f):
f(z) ³ f(x) + g⟙(z - x).

(8.13)

Заметим, что субградиент может существовать, даже если f не дифферен‑
цируема в точке, как показано на рис. 8.9.

Tlgm: @it_boooks

Методы первого порядка  355

Рис. 8.9  Субградиенты. В точке x1 выпуклая функция f дифференцируема,
а g1 (производная f в x1) - однозначно определенный субградиент в x1. В точке x2 f не дифференцируема, потому что существует «угол». Однако в ней имеется много субградиентов, из которых на рисунке показано только два. Взято из
https://web.stanford.edu/class/ee364b/lectures/subgradients_slides. Печатается
с разрешения Стивена Бойда

Функция f называется субдифференцируемой в точке x, если в x существует хотя бы один субградиент. Множество таких субградиентов называется
субдифференциалом f в x и обозначается ¶f(x).
Например, рассмотрим функцию модуля f(x) = |x|. Ее субдифференциал
имеет вид

(8.14)
где [-1, 1] обозначает отрезок между -1 и 1 включительно (см. иллюстрацию
на рис. 8.10).

Рис. 8.10  Функция модуля (слева) и ее субдифференциал (справа).
Взято из https://web.stanford.edu/class/ee364b/lectures/subgradients_slides.
Печатается с разрешения Стивена Бойда

8.2. методы перВого порядка
В этом разделе мы рассмотрим итеративные методы оптимизации, в кото‑
рых используются первые производные целевой функции, т. е. они могут
вычислять направления, указывающие «вниз», но игнорируют информацию

Tlgm: @it_boooks

356  Оптимизация
о кривизне. Во всех этих алгоритмах пользователь должен задать начальную
точку θ0. Затем на каждой итерации t выполняется обновление вида:
θt+1 = θt + ρt dt,

(8.15)

где ρt называется размером шага или скоростью обучения, а dt – направ‑
ление спуска, например противоположное градиенту, который равен gt =
Ñθ ℒ(θ)|θt. Такие шаги обновления продолжаются, пока метод не достигнет
стационарной точки, в которой градиент равен нулю.

8.2.1. Направление спуска
Говорят, что направление d является направлением спуска, если существует
достаточно малое (но ненулевое) ρ такое, что при перемещении на величину
ρ в направлении d значение функции гарантированно уменьшается. Фор‑
мально мы требуем, чтобы существовало ρmax > 0 такое, что
ℒ(θ + ρd) < ℒ(θ)

(8.16)

для всех 0 < ρ < ρmax. Градиент на текущей итерации
gt

Ñℒ(θ)|θt = Ñℒ(θt) = g(θt)

(8.17)

направлен в сторону максимального увеличения f, поэтому противополож‑
ное направление (отрицательного градиента) является направлением спу‑
ска. Можно показать, что направлением спуска является также любое на‑
правление d, для которого угол θ между d и -gt меньше 90° и удовлетворяется
условие:
d⟙gt = ||d|| ||gt|| cos(θ) < 0.

(8.18)

На первый взгляд, лучше всего было бы выбрать направление dt = -gt.
Оно называется направлением скорейшего спуска. Однако при таком вы‑
боре алгоритм может работать очень медленно. Ниже мы рассмотрим более
быстрые варианты.

8.2.2. Размер шага (скорость обучения)
В машинном обучении последовательность размеров шагов {ρt} называется
планом изменения скорости обучения (learning rate schedule). Есть не‑
сколько широко используемых методов выбора такого плана, некоторые из
них мы обсудим ниже (см. также раздел 8.4.3, где обсуждаются планы для
стохастической оптимизации).

8.2.2.1. Постоянный размер шага
Проще всего использовать постоянный размер шага, ρt = ρ. Однако если шаг
слишком велик, то метод может вообще не сойтись, а если слишком мал,

Tlgm: @it_boooks

Методы первого порядка  357

то сходимость будет очень медленной. Например, рассмотрим выпуклую
функцию:
ℒ(θ) = 0.5(θ12 - θ2)2 + 0.5(θ1 - 1)2.

(8.19)

Выберем в качестве направления спуска dt = -gt. На рис. 8.11 показано,
что происходит, когда мы движемся в этом направлении с шагом постоян‑
ного размера, начав из точки (0, 0). На рис. 8.11a выбран малый размер шага
ρ = 0.1; как видим, осуществляется медленное перемещение вдоль долины.
На рис. 8.11b взят больший размер шага ρ = 0.6; теперь наблюдается осцил‑
ляция – переход с одного склона долины на другой, – и алгоритм вообще не
сходится к оптимуму, хотя это выпуклая задача.

(a)

(b)

Рис. 8.11  Скорейший спуск для простой выпуклой функции, начинающийся
из точки (0, 0); показано 20 шагов постоянного размера. Глобальный минимум
находится в точке (1, 1). (a) ρ = 0.1. (b) ρ = 0.6. Построено программой по адресу
figures.probml.ai/book1/8.11

В некоторых случаях можно вывести теоретическую верхнюю границу
максимально допустимого размера шага. Например, рассмотрим квадратич‑
ную целевую функцию ℒ(θ) = ½θ⟙Aθ + b⟙θ + c, где A ≽ 0. Можно показать,
что метод скорейшего спуска сходится к глобальному оптимуму тогда и толь‑
ко тогда, когда размер шага удовлетворяет условию
(8.20)
где λmax(A) – наибольшее собственное значение A. Интуитивно понять при‑
чину этого результата можно, представив себя мяч, скатывающийся в долину.
Мы хотим, чтобы шаг не превышал угловой коэффициент в направлении
самого крутого спуска, а именно это и измеряет наибольшее собственное
значение (см. раздел 3.2.2).
Вообще, соблюдение условия ρ < 2/L, где L – постоянная Липшица градиен‑
та (раздел 8.1.4), гарантирует сходимость. Поскольку эта постоянная в общем
случае неизвестна, обычно приходится адаптировать размер шага, и ниже
мы обсудим такую методику.

Tlgm: @it_boooks

358  Оптимизация

8.2.2.2. Линейный поиск
Для нахождения оптимального размера шага можно поискать значение, ко‑
торое максимально уменьшает целевую функцию в выбранном направлении,
для чего решить одномерную задачу оптимизации:
(8.21)
Это называется линейным поиском, потому мы ищем вдоль прямой,
определенной вектором dt.
Если функция потерь выпуклая, то эта подзадача также выпуклая, потому
что ϕt(ρ) = ℒ(θt + ρdt) – выпуклая функция от аффинной функции ρ при фик‑
сированных θt и dt. Например, рассмотрим квадратичную потерю:
(8.22)
Вычисление производной ϕ дает:
(8.23)
= d⟙A(θ + ρd) + d⟙b
= d⟙(Aθ + b) + ρd⟙Ad.

(8.24)
(8.25)

Решая уравнение dϕ(ρ)/dρ = 0, получаем:
(8.26)
Использование оптимального размера шага называется точным линейным поиском. Но обычно такой точности не требуется. Существует не‑
сколько методов, например метод поиска с возвратом Армихо, которые
пытаются обеспечить достаточное уменьшение целевой функции, не тратя
слишком много времени на решение уравнения (8.21). В частности, мы мо‑
жем начать с текущего размера шага (или какого-нибудь максимального
значения), а затем уменьшать его, умножая на 0 < β < 1 на каждой итерации,
пока не будет выполнено условие Армихо–Голдстейна:
ℒ(θt + ρdt) £ ℒ(θt) + cρdt⊤Ñℒ(θt),

(8.27)

где c Î [0, 1] – постоянная, обычно c = 10-4. На практике начальное значение
линейного поиска и конкретный алгоритм возврата могут заметно влиять
на качество алгоритма. Детали см. в [NW06, раздел 3.1].

Tlgm: @it_boooks

Методы первого порядка  359

8.2.3. Скорость сходимости
Нас интересуют алгоритмы оптимизации, которые быстро сходятся к (ло‑
кальному) оптимуму. Для некоторых выпуклых задач, в которых градиент
ограничен постоянной Липшица, можно показать, что градиентный спуск
сходится с линейной скоростью. Это означает, что существует такое число
0 < μ < 1, что
|ℒ(θt+1) - ℒ(θ*)| £ μ|ℒ(θt) - ℒ(θ*)|.

(8.28)

Здесь μ называется скоростью сходимости.
Для некоторых простых задач скорость сходимости можно вычислить в яв‑
ном виде. Например, рассмотрим квадратичную целевую функцию ℒ(θ) =
½θ⟙Aθ + b⟙θ + c, где A ≻ 0. Предположим, что используется метод скорей‑
шего спуска с точным линейным поиском. Можно показать (см., например,
[Ber15]), что скорость сходимости равна:
(8.29)
где λmax – наибольшее, а λmin – наименьшее собственное значение A. Это
можно переписать в виде

где κ = λmax/λmin – число обусловлен‑

ности A. Интуитивно понятно, что число обусловленности измеряет степень
«асимметрии» поверхности, т. е. ее отличия от симметричной «миски» (до‑
полнительные сведения о числах обусловленности см. в разделе 7.1.4.4).
На рис. 8.12 показано влияние числа обусловленности на скорость схо‑
димости. Слева приведен пример, в котором A = [20, 5; 5, 2], b = [-14; -6]
и c = 10, так что κ(A) = 30.234. В примере справа A = [20, 5; 5, 16], b = [-14; -6]
и c = 10, так что κ(A) = 1.8541. Мы видим, что метод скорейшего спуска схо‑
дится гораздо быстрее для задачи с меньшим числом обусловленности.
В более общем случае неквадратичных функций целевая функция часто
бывает локально квадратичной в окрестности локального оптимума. Поэто‑
му скорость сходимости зависит от числа обусловленности гессиана, κ(H),
в этой точке. Нередко скорость сходимости можно улучшить, оптимизируя на
каждом шаге суррогатную целевую функцию (или модель), гессиан которой
близок к гессиану истинной целевой функции (см. обсуждение в разделе 8.3).
Хотя линейный поиск работает хорошо, на рис. 8.12 видно, что траектория
скорейшего спуска с точным линейным поиском зигзагообразная, что не‑
эффективно. Эту проблему можно решить с помощью метода сопряженных
градиентов (см., например, [She94]).

Tlgm: @it_boooks

360  Оптимизация

(a)

(b)

Рис. 8.12  Влияние числа обусловленности κ на скорость сходимости скорейшего спуска с точным линейным поиском. (a) Большое κ. (b) Малое κ. Построено программой по адресу figures.probml.ai/book1/8.12

8.2.4. Метод имульса
Градиентный спуск может продвигаться очень медленно на плоских участках
поверхности функции потери, как показано на рис. 8.11. Ниже мы обсудим
некоторые решения этой проблемы.

8.2.4.1. Импульс
Простая эвристика – метод тяжелого шарика, или метод импульса [Ber99], –
заключается в том, чтобы продвигаться быстрее в направлениях, которые
раньше оказались хорошими, и замедлять движение в направлениях, где
градиент внезапно изменился, – как ведет себя шарик, скатывающийся по
склону. Это можно реализовать следующим образом:
mt = βmt-1 + gt-1;

(8.30)

θt = θt-1 - ρt mt,

(8.31)

где mt – импульс (масса, умноженная на скорость) и 0 < β < 1. Типичное
значение β равно 0.9. При β = 0 метод сводится к градиентному спуску.
Мы видим, что mt напоминает экспоненциально взвешенное скользящее
среднее прошлых градиентов (см. раздел 4.4.2.2):
(8.32)
Если все прошлые градиенты постоянны, скажем равны g, то выражение
упрощается:
(8.33)
Масштабный коэффициент представляет собой геометрическую прогрес‑
сию, сумма которой в пределе равна:

Tlgm: @it_boooks

Методы первого порядка  361

(8.34)
Таким образом, в пределе градиент умножается на 1/(1 - β). Например,
если β = 0.9, то мы будем умножать на 10.
Поскольку при обновлении параметров используется среднее градиентов
mt-1, а не просто последний градиент, gt-1, то прошлые градиенты влияют на
текущий. Кроме того, ниже мы увидим, что в сочетании со стохастическим
градиентным спуском, рассматриваемым в разделе 8.4, метод импульса по‑
зволяет имитировать эффект большого мини-пакета без сопутствующих вы‑
числительных затрат.

8.2.4.2. Момент Нестерова
Одна из проблем стандартного метода моментов – то, что он недостаточно
замедляется на дне долины, что приводит к осцилляции. Ускоренный метод
градиентов Нестерова [Nes04] модифицирует метод градиентного спуска,
включая шаг экстраполяции:
θt+1 = θt + βt(θt - θt-1);

(8.35)

θt+1 = θt+1 - ρtÑℒ(θt+1).

(8.36)

По существу, это «заглядывание вперед» на один шаг, но оно может сни‑
зить величину осцилляции, как показано на рис. 8.13.
Стоимость

θ2
Начальная
точка

ηÑ1

βm

ηÑ1
ηÑ2

Стандартное
обновление
момента

Обновление
Нестерова

θ1
Рис. 8.13  Обновление Нестерова.
На основе рис. 11.6 из работы [Gér19]

Метод Нестерова можно переписать в таком же виде, как стандартный
метод импульса. В этом случае член импульса обновляется с использованием
градиента в предсказанной новой точке:
mt+1 = βmt - ρtÑℒ(θt + βmt);

(8.37)

θt+1 = θt + mt+1.

(8.38)

Tlgm: @it_boooks

362  Оптимизация
Это объясняет, почему ускоренный метод градиентов Нестерова иногда
называют импульсом Нестерова, а также показывает, из-за чего он может
оказаться быстрее стандартного метода импульса: вектор импульса уже
указывает приблизительно в правильном направлении, поэтому измерение
градиента в новой точке, θt + βmt, может оказаться точнее, чем в текущей
точке θt.
Можно доказать, что ускоренный метод градиентов Нестерова быстрее
метода скорейшего спуска для выпуклых функций, когда β и ρt выбираются
правильно. Он называется «ускоренным» именно из-за этой улучшенной
скорости сходимости, оптимальной для градиентных методов, в которых
используется только информация первого порядка, когда целевая функция
выпукла и ее градиенты липшицевы. На практике, однако, метод Нестерова
может оказаться медленнее скорейшего спуска и даже бывает неустойчивым,
если β или ρt заданы неудачно.

8.3. методы Второго порядка
Алгоритмы оптимизации, в которых используется только градиент, назы‑
ваются методами первого порядка. Их достоинство в том, что вычисление
и хранение градиента обходится дешево, но они не учитывают кривизну
поверхности, а потому могут сходиться медленно, как было показано на
рис. 8.12. Методы оптимизации второго порядка включают в рассмотрение
кривизну разными способами (например, с помощью гессиана), что может
ускорить сходимость. Некоторые из этих методов мы обсудим ниже.

8.3.1. Метод Ньютона
Классическим методом второго порядка является метод Ньютона. Обнов‑
ление в нем имеет вид
θt+1 = θt - ρtHt-1gt,

(8.39)

где предполагается, что матрица
Ht

Ñ2ℒ(θ)|θt = Ñ2ℒ(θt) = H(θt)

(8.40)

положительно определенная и, следовательно, обновление определено
корректно. Псевдокод метода Ньютона приведен в алгоритме 1. Интуитивно
понятно, почему он работает быстрее градиентного спуска: обратная матри‑
ца H-1 «исправляет» асимметрию в локальной кривизне, преобразуя тополо‑
гию, показанную на рис. 8.12a, в топологию на рис. 8.12b.
Этот алгоритм можно вывести следующим образом. Разложим ℒ(θ) в ряд
Тейлора с точностью до двух членов в окрестности θt:
ℒquad(θ) = ℒ(θt) + gt⟙(θ - θt) + (θ - θt)⟙Ht(θ - θt).

(8.41)

Tlgm: @it_boooks

Методы второго порядка  363

Алгоритм 1. Метод Ньютона минимизации функции
1
2
3
4
5
6
7

Инициализировать θ0;
for t = 1, 2, … до достижения сходимости do
Вычислить gt = Ñℒ(θt);
Вычислить Ht = Ñ2ℒ(θt);
Решить уравнение Ht dt = -gt относительно dt;
Воспользоваться линейным поиском для нахождения размера шага ρt вдоль dt;
θt+1 = θt + ρt dt;

Минимум ℒquad достигается в точке:

θ = θt - Ht-1gt.

(8.42)

Таким образом, если квадратичная аппроксимация приемлема, то следу‑
ет выбирать в качестве направления спуска dt = -Ht-1gt (см. иллюстрацию
на рис. 8.14a). Заметим, что в «чистом» методе Ньютона размер шага ρt = 1.
Однако ничто не мешает использовать линейный поиск для нахождения наи‑
лучшего размера шага; это дает более устойчивый алгоритм, потому что при
ρt = 1 он не всегда сходится глобально.

(a)

(b)

Рис. 8.14  Применение метода Ньютона для минимизации функции одной
переменной. (a) Сплошная кривая – график функции ℒ(x). Пунктирная кривая
ℒquad(θ) – аппроксимация ее второй производной в точке θt. Приращение dt
необходимо прибавить к θt для приближения к минимуму ℒquad(θ). На основе
рис. 13.4 из работы [Van06]. Построено программой по адресу figures.probml.
ai/book1/8.14. (b) Применение метода Ньютона к невыпуклой функции. Мы
аппроксимируем исходную функцию квадратичной в окрестности текущей
точки θt и приближаемся к ее стационарной точке θt+1 = θt + dt. К сожалению,
это приводит нас к локальному максимуму, а не минимуму f. Это означает, что
нужно аккуратнее выбирать область квадратичной аппроксимации. На основе
рис. 13.11 из работы [Van06]. Построено программой по адресу figures.probml.
ai/book1/8.14

Если применить этот метод к линейной регрессии, то мы придем к опти‑
муму за один шаг, потому что (как показано в разделе 11.2.2.1) H = X⟙X и g =
X⟙Xw - X⟙y, так что обновление Ньютона принимает вид

Tlgm: @it_boooks

364  Оптимизация
w1 = w0 - H-1g = w0 - (X⟙X)-1(X⟙Xw0 - X⟙y)
= w0 - w0 + (X⟙X)-1X⟙y,

(8.43)

что является оценкой по методу обыкновенных наименьших квадратов. Од‑
нако в случае применения этого метода к логистической регрессии может
потребоваться несколько итераций для сходимости к глобальному оптимуму
(мы обсудим это в разделе 10.2.6).

8.3.2. BFGS и другие квазиньютоновские методы
Квазиньютоновские методы, иногда называемые методами с переменной
метрикой, итеративно строят приближение к гессиану, используя информа‑
цию, почерпнутую из вектора градиента на каждом шаге. Самый известный
из таких методов – BFGS (названный по фамилиям авторов, Бройден, Флет‑
чер, Гольдфарб и Шанно), в нем аппроксимация гессиана Bt » Ht имеет вид:
(8.45)
st = θt - θt-1;

(8.45)

yt = gt - gt-1.

(8.46)

Это обновление ранга 2 матрицы. Если B0 положительно определена и раз‑
мер шага ρ выбран с помощью линейного поиска и удовлетворяет как усло‑
вию Армихо (8.27), так и следующему условию на кривизну:
Ñℒ(θt + ρdt) ³ c2 ρdt⟙Ñℒ(θt),

(8.47)

– то Bt+1 останется положительно определенной. Постоянная c2 выбирается
из интервала (c, 1), где c – настраиваемый параметр в формуле (8.27). Оба
условия на величину шага называются условиями Вульфа. Обычно начи‑
нают с диагональной аппроксимации, B0 = I. Таким образом, BFGS можно
рассматривать как аппроксимацию гессиана в виде «диагональная матрица
плюс матрица низкого ранга».
В BFGS можно вместо этого итеративно обновлять аппроксимацию обрат‑
ного гессиана, Ct » Ht-1, следующим образом:
(8.48)
Поскольку для хранения аппроксимации гессиана по-прежнему нужна
память объемом O(D2), при решении очень больших задач можно приме‑
нять алгоритм BFGS с ограниченной памятью, или L-BFGS, в котором
ранг аппроксимации контролируется посредством использования только
M последних пар (st, yt), а более старая информация игнорируется. Вместо
того чтобы хранить Bt явно, мы просто храним эти векторы в памяти, а за‑
тем аппроксимируем Ht-1gt, вычисляя последовательность скалярных про‑

Tlgm: @it_boooks

Методы второго порядка  365

изведений с хранимыми векторами st и yt. Тогда размер потребной памяти
уменьшается до O(MD). Как правило, выбор M в диапазоне 5–20 достаточен
для хорошей производительности [NW06, стр. 177].
Отметим, что в библиотеке sklearn LBFGS является решателем по умолча‑
нию для задач логистической регрессии1.

8.3.3. Методы на основе доверительных областей
Если целевая функция невыпуклая, то гессиан Ht может не быть положитель‑
но определенным, так что dt = -Ht-1gt необязательно является направлением
спуска. Для функции одной переменной это показано на рис. 8.14b – как
видим, метод Ньютона может находить локальный максимум вместо локаль‑
ного минимума.
Вообще говоря, когда квадратичная аппроксимация в методе Ньютона
недопустима, мы сталкиваемся с проблемой. Однако обычно существует
локальная область вокруг текущей итерации, где целевую функцию можно
безопасно аппроксимировать квадратичной. Обозначим эту область ℛt, а мо‑
дель (или аппроксимацию) целевой функции – M(δ), где δ = θ - θt. Тогда на
каждом шаге мы можем решить задачу:
(8.49)
Это называется оптимизацией в доверительной области. (Это можно
считать «противоположностью» линейному поиску в том смысле, что мы
сначала выбираем расстояние, на которое хотим сместиться, определяемое
ℛt, и затем находим оптимальное направление, а не наоборот – сначала вы‑
брать направление, а затем найти оптимальное расстояние.)
Обычно предполагается, что Mt(δ) является квадратичной аппроксима‑
цией:
Mt(δ) = ℒ(θt) + gt⟙δ + δ⟙Htδ,

(8.50)

где gt = Ñθ ℒ(θ)|θt – градиент, а Ht = Ñθ2ℒ(θ)|θt – гессиан. Кроме того, обычно
предполагается, что ℛt – шар радиуса r, т. е. ℛt = {δ : ||δ||2 £ r}. При таких
условиях мы можем преобразовать условную оптимизацию в безусловную
следующим образом:
(8.51)
для некоторого множителя Лагранжа λ > 0, зависящего от радиуса r (см. обсуж‑
дение множителей Лагранжа в разделе 8.5.1). Эту задачу можно решить, взяв
δ = -(H+ λI)-1g.
1

(8.52)

См. https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html.

Tlgm: @it_boooks

366  Оптимизация
Это называется регуляризацией Тихонова, см. иллюстрацию на рис. 8.15.

Рис. 8.15  Подход на основе доверительной области. Пунктирные кривые – это линии уровня исходной невыпуклой целевой функции. Кругами
представлены последовательные квадратичные аппроксимации. На основе
рис. 4.2 из работы [Pas14]. Печатается с разрешения Развана Паскану

Заметим, что если прибавить к H матрицу λI с достаточно большим λ, то ре‑
зультирующая матрица гарантированно будет положительно определенной.
При λ ® 0 этот метод сводится к методу Ньютона, но при достаточно больших
λ все отрицательные собственные значения станут положительными (а все
нулевые – равными λ).

8.4. стохастиЧеский градиентный спуск
В этом разделе мы рассмотрим стохастическую оптимизацию, цель кото‑
рой – минимизировать среднее значение функции
ℒ(θ) = 𝔼q(z)[ℒ(θ, z)],

(8.53)

θt+1 = θt - ρtÑℒ(θt, zt) = θt - ρt gt.

(8.54)

где z – случайная величина, являющаяся аргументом целевой функции. Это
может быть «шум», вносимый окружающей средой, или обучающий пример,
случайно выбранный из обучающего набора, как будет объяснено ниже.
Предполагается, что на каждой итерации наблюдается ℒt(θ) = ℒ(θ, zt), где
zt ~ q. Также предполагается, что имеется способ вычисления несмещенной
оценки градиента ℒ. Если распределение q(z) не зависит от оптимизируемых
параметров, то можно взять gt = Ñθ ℒt(θt). В таком случае алгоритм можно за‑
писать следующим образом:
Этот метод называется стохастическим градиентным спуском, или СГС
(англ. SGD). При условии, что оценка градиента несмещенная, он сходится
к стационарной точке, коль скоро размер шага ρt уменьшается с некоторой
скоростью (см. обсуждение в разделе 8.4.3).

Tlgm: @it_boooks

Стохастический градиентный спуск  367

8.4.1. Приложение к задачам с конечной суммой
СГС применяется в машинном обучении очень широко. Чтобы понять, по‑
чему это так, вспомним (см. раздел 4.3), что многие процедуры обучения мо‑
делей основаны на минимизации эмпирического риска, что подразумевает
минимизацию следующей функции потерь:
(8.55)
Это называется задачей с конечной суммой. Градиент такой целевой
функции имеет вид:
(8.56)
Для его вычисления необходимо просуммировать по всем N обучающим
примерам, а при больших N это может занять много времени. По счастью,
можно аппроксимировать эту процедуру, выбрав мини-пакет, содержащий
B ≪ N примеров, и вычислив
(8.57)

где ℬt – множество случайно выбранных примеров, используемых на ите‑
рации t1. Это несмещенная аппроксимация эмпирического среднего (8.56).
Следовательно, мы можем безопасно использовать ее вместе с СГС.
Хотятеоретическая скорость сходимости СГС меньше, чем для пакетного
ГС (в частности, скорость сходимости СГС сублинейна), на практике СГС
обычно работает быстрее, т. е. время выполнения одного шага значительно
меньше [BB08; BB11]. Чтобы понять, почему СГС может продвигаться к цели
быстрее, чем градиентный спуск на полном пакете, предположим, что име‑
ется набор данных, состоящий всего из одного примера, повторенного K раз.
Время обучения на таком пакете будет по крайней мере в K раз больше, чем
для СГС, потому что будет расходоваться на вычисление градиента для по‑
вторяющихся примеров. Даже при отсутствии дубликатов, пакетное обуче‑
ние может оказаться расточительным, так как на ранних этапах обучения
у параметров еще нет хороших оценок, так что тратить время на точное
вычисление градиента не имеет смысла.

1

На практике обычно применяется выборка ℬt без возвращения. Однако по исчер‑
пании набора данных (т. е. после одной эпохи обучения) можно случайно пере‑
тасовать примеры, чтобы все мини-пакеты в следующей эпохе отличались от пре‑
дыдущих. Этот вариант СГС анализируется в работе [HS19].

Tlgm: @it_boooks

368  Оптимизация

8.4.2. Пример: СГС для обучения модели
линейной регрессии
В этом разделе мы покажем, как использовать СГС для обучения модели ли‑
нейной регрессии. Напомним (см. раздел 4.2.7), что целевая функция имеет
вид:
(8.58)
Градиент равен:
(8.59)
Теперь рассмотрим применение СГС с размером мини-пакета B = 1. Об‑
новление принимает вид
θt+1 = θt - ρt(θt⟙xn - yn)xn,

(8.60)

где n = n(t) – индекс примера, выбранного на итерации t. Алгоритм в це‑
лом называется алгоритмом наименьших средних квадратов (least mean
squares – LMS), а также дельта-правилом, или правилом Видроу–Хоффа.
На рис. 8.16 показаны результаты применения этого алгоритма к дан‑
ным на рис. 11.2. Алгоритм начинает работу с θ = (-0.5, 2) и сходится (в том
смысле, что величина ||θt - θt-1||22 становится ниже порога 10-2) примерно
за 26 итераций. Заметим, что СГС (а значит, и LMS) может потребовать не‑
скольких проходов по данным для нахождения минимума.

Рис. 8.16  Алгоритм LMS. Слева: мы начинаем с θ = (-0.5, 2) и медленно
сходимся к решению по методу наименьших квадратов θ̂ = (1.45, 0.93) (красный крестик). Справа: график зависимости целевой функции от времени. Отметим, что она не убывает монотонно. Построено программой по адресу figures.
probml.ai/book1/8.16

Tlgm: @it_boooks

Стохастический градиентный спуск  369

8.4.3. Выбор размера шага (скорости обучения)
При использовании СГС нужно осторожно выбирать скорость обучения, не‑
обходимую для сходимости. Так, на рис. 8.17 приведен график зависимости
потери от скорости обучения в случае применения СГС к обучению класси‑
фикатора на основе нейронной сети (детали см. в главе 13). Мы видим, что
кривая имеет U-образную форму: при слишком малой скорости обучения
модель оказывается недообученной, а при слишком большой – неустойчивой
(ср. с рис. 8.11b); в обоих случаях она не сходится к локальному оптимуму.
Для выбора хорошей скорости обучения можно применить эвристику,
предложенную в работе [Smi18], – начать с малой скорости и постепенно
увеличивать ее, оценивая качество на небольшом числе мини-пакетов. За‑
тем строится график типа показанного на рис. 8.17 и выбирается скорость
обучения, которой соответствует наименьшая потеря. (На практике лучше
выбирать чуть меньшую скорость, чтобы гарантировать устойчивость.)

Рис. 8.17  Зависимость потери от скорости обучения (по горизонтальной
оси). График зависимости потери на обучающем наборе от скорости обучения
небольшого многослойного перцептрона на наборе данных FashionMNIST
с применением стандартного СГС. (Исходная потеря показана синим цветом,
сглаженная по методу EWMA – оранжевым.) Построено программой по адресу
figures.probml.ai/book1/8.17

Вместо того чтобы выбирать одну постоянную скорость обучения, можно
использовать план изменения скорости обучения, предусматривающий
корректировку размера шага со временем. Теоретически СГС будет сходиться,
если план скоростей обучения удовлетворяет условиям Роббинса–Монро:
(8.61)

Tlgm: @it_boooks

370  Оптимизация
Ниже перечислено несколько типичных планов скоростей обучения:
ρt = ρi, если ti £ t £ ti+1 кусочно-постоянный;

(8.62)

ρt = ρ0e-λt с экспоненциальным затуханием;

(8.63)

ρt = ρ0(βt + 1)-α с полиномиальным затуханием.

(8.64)

Для кусочно-постоянного плана ti – множество моментов времени, в ко‑
торые изменяется скорость обучения. Например, можно положить ρi = ρ0γ i,
так что начальная скорость обучения будет уменьшаться в γ раз при про‑
хождении каждого порога. На рис. 8.18a это показано для ρ0 = 1 и γ = 0.9. Это
называется ступенчатым затуханием. Иногда моменты смены скорости
вычисляются адаптивно, для чего оценивается момент выхода на плато поте‑
ри на обучающем или контрольном наборе; это называет уменьшением при
выходе на плато. Экспоненциальное затухание обычно уменьшает скорость
обучения очень быстро, как показано на рис. 8.18b. Чаще всего выбирается
полиномиальное затухание с α = 0.5 и β = 1, как показано на рис. 8.18c; это
соответствует плану по закону квадратного корня,

(a)

(b)

(c)

Рис. 8.18  Некоторые широко распространенные планы скоростей обучения.
(a) Кусочно-постоянный. (b) Экспоненциальное затухание. (c) Полиномиальное
затухание. Построено программой по адресу figures.probml.ai/book1/8.18

В глубоком обучении встречается еще один план – быстро увеличить ско‑
рость обучения, а затем постепенно снижать ее, как показано на рис. 8.19a.
Это называется прогревом скорости обучения или однофазным планом
скоростей обучения [Smi18]. Обоснование такое: в начале параметры могут
находиться в плохо обусловленной части поверхности функции потерь, по‑
этому большой шаг может привести к чрезмерной «болтанке» (см. рис. 8.11b)
и невозможности спуститься вниз по склону. Однако при медленной скоро‑
сти обучения алгоритм может обнаружить более плоские области поверхно‑
сти, где уместно использовать больший шаг. Оказавшись там, можно будет
продвигаться к цели быстрее. Но, чтобы гарантировать сходимость к точке,
мы должны уменьшить скорость обучения до 0. Более подробное обсуждение
см. в [Got+19].

Tlgm: @it_boooks

Стохастический градиентный спуск  371
max lr

lr decay

min lr
(а)

Half cycle
(b)

Рис. 8.19  (a) Линейный разогрев с косинусоидальным охлаждением.
(b) Циклический план скоростей обучения

Можно также увеличивать и уменьшать скорость обучения несколько раз,
циклически. Этот циклический план скоростей обучения [Smi18] был по‑
пуляризирован в курсе fast.ai. На рис. 8.19b показан его вариант с треу‑
гольной формой циклов. Обоснование заключается в том, что этот подход
позволяет уйти от локальных минимумов. Минимальную и максимальную
скорость обучения можно найти в ходе описанного выше начального «хо‑
лостого прогона», а величину полупериода выбрать исходя из того, сколько
перезапусков допускает бюджет времени, отведенного на обучение. Сходный
подход, получивший название стохастический градиентный спуск с теплым перезапуском, был описан в работе [LH17], авторы которой предложи‑
ли сохранять все контрольные точки, посещенные после каждого охлажде‑
ния, и использовать их в качестве членов ансамбля моделей (об ансамблевом
обучении см. раздел 18.2).
Альтернативой использованию эвристик для оценки скорости обучения
является линейный поиск (раздел 8.2.2.2). В случае СГС это непросто, по‑
тому что из-за зашумленных градиентов вычислить условие Армихо трудно
[CS20]. Однако в работе [Vas+19] показано, что это можно сделать, если дис‑
персия шума градиента стремится к нулю со временем. Такое возможно, если
модель настолько гибкая, что может идеально интерполировать обучающий
набор.

8.4.4. Итеративное усреднение
Оценки параметров, порождаемые СГС, могут быть очень неустойчивыми
во времени. Чтобы уменьшить дисперсию оценки, мы можем вычислить
среднее:
(8.65)
где θt – обычные итерации СГС. Это называется итеративным усреднением, или усреднением Поляка–Рупперта [Rup88].

Tlgm: @it_boooks

372  Оптимизация


В работе [PJ92] доказано, что оценка θ t дает наилучшую возможную асим‑
птотическую скорость сходимости среди всех алгоритмов СГС, сопоставимую
по качеству с методами, использующими информацию второго порядка, на‑
пример гессианы. У такого усреднения могут быть и статистические преиму‑
щества. Например, в работе [NR18] доказано, что в случае линейной регрес‑
сии этот метод эквивалентен 𝓁2-регуляризации (т. е. гребневой регрессии).
Вместо экспоненциального скользящего среднего в итерациях СГС в мето‑
де стохастического усреднения весов (Stochastic Weight Averaging – SWA)
[Izm+18] используется обычное среднее в сочетании с модифицированным
планом скоростей обучения. В отличие от стандартного усреднения Поля‑
ка–Рупперта, целью которого являлось повышение скорости сходимости,
в SWA пологость в целевых функциях используется для обучения глубоких
нейронных сетей с целью найти решения, допускающие лучшее обобщение.

8.4.5. Уменьшение дисперсии*
В этом разделе мы обсудим различные способы уменьшения дисперсии
в СГС. Иногда это позволяет повысить теоретическую скорость сходимости
от сублинейной до линейной (т. е. такой же, как в градиентном спуске с пол‑
ным пакетом) [SLRB17; JZ13; DBLJ14]. Эти методы уменьшают дисперсию
градиентов, а не самих параметров и предназначены для работы на задачах
с конечной суммой.

8.4.5.1. SVRG
Основная идея стохастического градиента с уменьшенной регрессией
(stochastic variance reduced gradient – SVRG) [JZ13] – использовать управ‑
ляющую переменную для хранения оценки опорного значения градиента
на основе полного пакета, с которой затем сравниваются стохастические
градиенты.
Точнее, мы периодически (например, один раз за эпоху) вычисляем пол‑
ный градиент в точке «моментального снимка» параметров модели, θ; со‑
ответствующий «точный» градиент равен, следовательно, Ñℒ(θ). На шаге t
мы вычисляем обычный стохастический градиент при текущих параметрах,
Ñℒt(θt), а также при параметрах снимка, Ñℒt(θ), которые используются как
эталон для сравнения. Затем можно использовать следующую улучшенную
оценку градиента:
gt = Ñℒt(θt) - Ñℒt(θ ) + Ñℒ(θ )

(8.66)

для вычисления θt+1. Эта оценка несмещенная, так как 𝔼[Ñℒt(θ)] = Ñℒ(θ).
Кроме того, для обновления нужно вычислить только два градиента, по‑
скольку Ñℒ(θ) достаточно вычислить один раз за эпоху. В конце эпохи мы
обновляем параметры снимка θ, опираясь на последнее значение θt или на
скользящее среднее по всем итерациям, и обновляем ожидаемое опорное
значение. (Снимки можно вычислять реже, но тогда опорное значение не

Tlgm: @it_boooks

Стохастический градиентный спуск  373

будет коррелировать с целевой функцией, что может негативно отразиться
на качестве модели, как показано в работе [DB18].)
Итерации SVRG вычислительно быстрее, чем в случае градиентного спуска
с полным пакетом, но тем не менее SVRG может достигать той же теоретиче‑
ской скорости сходимости, что ГС.

8.4.5.2. SAGA
В этом разделе мы опишем алгоритм стохастического усредненного
ускоренного градиента (stochastic averaged gradient accelerated – SAGA)
[DBLJ14]. В отличие от SVRG, он требует только одного вычисления градиен‑
та на полном пакете, в самом начале работы. Однако за экономию времени
приходится расплачиваться дополнительным потреблением памяти. Точнее,
необходимо хранить N векторов градиента. Это позволяет динамически пе‑
ресчитывать аппроксимацию глобального градиента, удаляя старый локаль‑
ный градиент из общей суммы и заменяя его новым локальным градиентом.
Это называется методом агрегированного градиента.
Точнее, сначала мы инициализируем алгоритм, вычисляя gnlocal = Ñℒn(θ0)
для всех n и среднее g avg = (1/N)åNn=1 gnlocal. Затем на t-й итерации мы исполь‑
зуем оценку градиента
gt = Ñℒn(θt) - gnlocal + g avg,

(8.67)

где n ~ Unif{1, …, N} – индекс примера. Далее мы выполняем обновление
gnlocal = Ñℒn(θt) и g avg, заменяя старое gnlocal новым значением.
Преимущество перед SVRG достигается за счет того, что нужно выполнить
лишь один проход по всему пакету в самом начале. (На самом деле и на‑
чальный проход необязателен, потому что мы можем вычислять g avg «лени‑
во», включая только те градиенты, которые уже видели ранее.) Недостатком
является заметный дополнительный расход памяти. Однако если признаки
(а значит, и градиенты) разрежены, то затраты на память приемлемы. В дей‑
ствительности алгоритм SAGA рекомендуется в sklearn для логистической
регрессии, когда N велико, а x разрежен1.

8.4.5.3. Применение в глубоком обучении
Методы уменьшения дисперсии широко применяются для обучения моде‑
лей МО с выпуклыми целевыми функциями, например линейных моделей.
Однако использование SVRG в практике традиционного глубокого обуче‑
ния наталкивается на различные трудности. Например, нормировка пакета
(раздел 14.2.4.1), приращение данных (раздел 19.1) и прореживание (раз‑
дел 13.5.4) нарушают предположения метода, так как различия в потере будут
случайными и зависящими не только от параметров и индекса примера n.
Дополнительные сведения см., например, в работах [DB18; Arn+19].
1

См. https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression.

Tlgm: @it_boooks

374  Оптимизация

8.4.6. Предобусловленный СГС
В этом разделе мы рассмотрим предобусловленный СГС с таким обновле‑
нием:
θt+1 = θt - θt Mt-1gt,

(8.68)

где Mt – матрица предобусловливания, или просто предобусловливатель,
обычно выбирается положительно определенной. К сожалению, зашумлен‑
ность оценок градиента затрудняет надежную оценку гессиана, из-за чего
становится сложно использовать методы, описанные в разделе 8.3. Кроме
того, искать направление обновления для полной матрицы предобусловли‑
вания вычислительно дорого. Поэтому на практике чаще всего используют
диагональный предобусловливатель Mt. Такие предобусловливатели необя‑
зательно используют информацию второго порядка, но часто дают уско‑
рение, сравнимое с настоящим СГС. (Вероятностную интерпретацию этих
эвристик см. в [Roo+21].)

8.4.6.1. AdaGrad
Метод AdaGrad (сокращение от «adaptive gradient» – «адаптивный градиент»),
описанный в работе [DHS11], первоначально был разработан для оптимиза‑
ции выпуклых целевых функций, когда многие элементы вектора градиента
равны нулю; они могут соответствовать признакам, редко присутствующим
во входных данных, например редким словам. Обновление производится по
следующей формуле:
(8.69)
где
(8.70)
– сумма квадратов градиента, а ε > 0 – малый член, предотвращающий деле‑
ние на ноль. Эквивалентно обновление можно записать в векторной форме:
(8.71)
где извлечение квадратного корня и деление производятся поэлементно.
Если рассматривать этот метод как предобусловленный СГС, то это эквива‑
лентно матрице Mt = diag(st + ε)½. Это пример адаптивной скорости обучения; общий размер шага ρt все же нужно выбрать, но результат не так сильно
зависит от него, как в стандартном ГС. Конкретно, обычно полагают ρt = ρ0.

Tlgm: @it_boooks

Стохастический градиентный спуск  375

8.4.6.2. RMSProp и AdaDelta
Определяющим свойством AdaGrad является тот факт, что знаменатель рас‑
тет со временем, поэтому эффективная скорость обучения падает. Это необ‑
ходимо, чтобы гарантировать сходимость, но может негативно отразиться на
производительности, если знаменатель убывает слишком быстро.
Альтернатива – использовать экспоненциально взвешенное скользящее
среднее (EWMA, раздел 4.4.2.2) прошлых квадратов градиента:
2
st+1,d = βst,d + (1 - β)g t,d
.

(8.72)

На практике обычно берут β ~ 0.9, т. е. назначают больший вес недавним
примерам. В этом случае
(8.73)
где RMS означает «root mean squared» (корень из среднеквадратического
значения). Поэтому и метод (основанный на более раннем методе RPROP
из работы [RB93]) называется RMSProp [Hin14]. Обновление в RMSProp опи‑
сывается формулой:
(8.74)
Метод AdaDelta был независимо предложен в работе [Zei12] и похож на
RMSprop. Однако в дополнение к накапливанию EWMA градиентов в ŝ он еще
и хранит EWMA обновлений δt, чтобы можно было использовать обновление
вида
(8.75)
где
δt = βδt-1 + (1 - β)(Dθt)2,

(8.76)

а st такое же, как в RMSProp. Преимуществом является тот факт, что «единицы
измерения» числителя и знаменателя сокращаются, так что мы просто по‑
элементно умножаем градиент на скаляр. Это устраняет необходимость на‑
страивать скорость обучения ρt, а значит, можно просто положить ρt = 1, хотя
в популярных реализациях AdaDelta ρt все равно является настраиваемым
гиперпараметром. Однако, поскольку эти адаптивные скорости обучения
необязательно уменьшаются со временем (если только явно не выбирать
ρt соответствующим образом), нельзя дать гарантию, что метод сойдется
к решению.

Tlgm: @it_boooks

376  Оптимизация

8.4.6.3. Adam
Можно объединить RMSProp с методом моментов. Именно, вычислим EWMA
градиентов (как в методе моментов) и квадраты градиентов (как в RMSProp):
mt = β1mt-1 + (1 - β1)gt;

(8.77)

st = β2st-1 + (1 - β2)gt2.

(8.78)

Затем произведем такое обновление:
(8.79)
Получающийся в итоге метод называется Adam (adaptive moment estima‑
tion – оценка адаптивного момента) [KB15]. Стандартные значения постоян‑
ных таковы: β1 = 0.9, β2 = 0.999, ε = 10-6. (Если положить β1 = 0 и отказаться
от корректировки смещения, то мы вернемся к RMSProp без использования
момента). В качестве общей скорости обучения часто используют фиксиро‑
ванное значение, например ρt = 0.001. Как и в предыдущем случае, адаптив‑
ная скорость обучения необязательно уменьшается со временем, поэтому
сходимость не гарантируется (см. раздел 8.4.6.4).
Если инициализировать m0 = s0 = 0, то начальные оценки будут смещены
в сторону малых значений. Поэтому авторы рекомендуют использовать мо‑
менты со скорректированным смещением, которые увеличивают значения
на ранних стадиях процесса оптимизации. Эти оценки имеют вид:
m̂ t = mt = (1 - β1t );

(8.80)

ŝt = st = (1 - β2t ).

(8.81)

Преимущество корректировки смещения показано на рис. 4.3.

8.4.6.4. Проблемы, связанные с адаптивной скоростью
обучения
При использовании методов диагонального масштабирования общая ско‑
рость обучения равна ρ0 Mt-1 и изменяется со временем. Поэтому такие мето‑
ды часто называют методами с адаптивной скоростью обучения. Однако
они все равно требуют задания базовой скорости обучения ρ0.
Поскольку методы на основе EWMA обычно применяются в стохастиче‑
ской постановке, когда оценки градиентов зашумленные, адаптация скоро‑
сти обучения в них может стать причиной расходимости даже в выпуклых за‑
дачах [RKK18]. Были предложены различные решения этой проблемы, в том
числе AMSGrad [RKK18], Padam [CG18; Zho+18] и Yogi [Zah+18]. Например,
в Yogi обновление отличается от выполняемого в Adam заменой
st = β2st-1 + (1 - β2)gt2 = st-1 + (1 - β2)(gt2 - st-1)

(8.82)

Tlgm: @it_boooks

Условная оптимизация  377

на
st = st-1 + (1 - β2)gt2 ⨀ sgn(gt2 - st-1).

(8.83)

8.4.6.5. Недиагональные матрицы предобусловливания
Хотя рассмотренные выше методы способны адаптировать скорость обуче‑
ния каждого параметра, они не решают более фундаментальную проблему
плохой обусловленности из-за корреляции параметров, а потому не всегда
дают такое ускорение по сравнению со стандартным СГС, на которое мы
рассчитывали.
Один из способов ускорить сходимость – воспользоваться следующей матрицей предобусловливания (соответствующий метод называется полноматричным Adagrad [DHS11]):
(8.84)
где
Gt = [gt, …, g1].

(8.85)

Здесь gi = Ñv c(vi) – D-мерный вектор градиента, вычисленный на шаге i.
К сожалению, Mt – матрица размера D´D, поэтому ее хранение и обращение
обходятся дорого.
В алгоритме Shampoo [GKS18] производится аппроксимация M блочнодиагональной матрицей, по одному разу в каждом слое модели, а затем
структура произведения Кронекера используется для ее эффективного об‑
ращения. (Метод называется «шампунь», потому что в нем используется
«кондиционер» – обусловливатель). В недавней работе [Ani+20] этот метод
был масштабирован и успешно применен для обучения очень больших глу‑
боких моделей за рекордное время.

8.5. услоВная оптимизация
В этом разделе мы рассмотрим следующую задачу условной оптимизации:
(8.86)
где допустимое множество, или множество ограничений имеет вид:
𝒞 = {θ Î ℝD : hi(θ) = 0, i Î ℰ, gj(θ) £ 0, j Î ℐ},

(8.87)

где ℰ – множество ограничений в виде равенств, а ℐ – множество ограничений в виде неравенств.
Например, пусть имеется квадратичная целевая функция ℒ(θ) = θ12 + θ22
с ограничением (связью) в виде линейного равенства h(θ) = 1 - θ1 - θ2 = 0.

Tlgm: @it_boooks

378  Оптимизация
На рис. 8.20(a) показаны линии уровня h, а также отрезок, представляющий
поверхность связи. Мы пытаемся найти точку θ* на этом отрезке, располо‑
женную как можно ближе к началу координат. Из геометрии задачи ясно, что
оптимальным решением является точка θ = (0.5, 0.5), обозначенная черным
кружочком.

(a)

(b)

Рис. 8.20  Некоторые задачи условной оптимизации. Красные окружности –
линии уровня целевой функции ℒ(θ). Оптимальное решение, удовлетворяющее
ограничениям, показано черным кружочком. (a) Синий отрезок – ограничение
в виде равенства h(θ) = 0. (b) Синие отрезки описывают ограничения в виде неравенства |θ1| + |θ2| £ 1 (сравните с рис.11.8 (слева))

В следующих разделах мы кратко опишем теорию и алгоритмы, лежащие
в основе условной оптимизации. Дополнительные сведения можно найти
в других книгах, например [BV04; NW06; Ber15; Ber16].

8.5.1. Множители Лагранжа
В этом разделе мы обсудим, как решать задачи оптимизации с ограничения‑
ми в виде равенств. Сначала предположим, что есть всего одно ограничение,
h(θ) = 0.
Прежде всего отметим, что для любой точки, лежащей на поверхности
связи, вектор Ñh(θ) будет ортогонален поверхности связи. Действительно,
рассмотрим другую, близко расположенную точку θ + ε, тоже лежащую на
поверхности. Воспользовавшись разложением в ряд Тейлора с точностью до
членов первого порядка в окрестности θ, получим
h(θ + ε) » h(θ) + ε⟙Ñh(θ).

(8.88)

Поскольку и θ, и θ + ε лежат на поверхности связи, то должно быть h(θ) =
h(θ + ε), а значит, ε⟙Ñh(θ) » 0. Так как ε параллелен поверхности связи, Ñh(θ)
должен быть перпендикулярен ей.
Мы ищем такую точку θ* на поверхности связи, которая доставляет мини‑
мум ℒ(θ). Мы только что показали, что она должна удовлетворять условию
ортогональности Ñh(θ*) к поверхности связи. Кроме того, для такой точки

Tlgm: @it_boooks

Условная оптимизация  379

Ñℒ(θ) тоже должен быть ортогонален поверхности связи, поскольку иначе
мы могли бы уменьшить ℒ(θ), сдвинувшись на короткое расстояние вдоль
поверхности связи. Так как Ñh(θ) и Ñℒ(θ) ортогональны поверхности связи
в точке θ*, они должны быть параллельны (или антипараллельны) друг другу.
Следовательно, должна существовать постоянная λ*Î ℝ такая, что
Ñℒ(θ*) = λ*Ñh(θ*).

(8.89)

(Мы не можем просто приравнять векторы градиентов, потому что у них мо‑
гут быть разные модули.) Постоянная λ* называется множителем Лагранжа,
она может быть положительна, отрицательна или равна нулю. Последний
случай имеет место, когда Ñf(θ*) = 0.
Мы можем следующим образом преобразовать (8.89) в целевую функцию,
называемую лагранжианом, для которой требуется найти стационарную
точку:
ℒ(θ, λ)

ℒ(θ) + λh(θ).

(8.90)

В стационарной точке лагранжиана имеем
Ñθ,λ ℒ(θ, λ) = 0 Û λÑθ h(θ) = Ñℒ(θ), h(θ) = 0.

(8.91)

Эта точка называется критической и удовлетворяет исходному ограни‑
чению h(θ) = 0 и условию (8.89).
Если имеется m > 1 ограничений, то можно построить из них новую функ‑
цию ограничения следующим образом:
(8.92)
Теперь у нас имеется D + m уравнений от D + m неизвестных, и мы можем
использовать стандартные методы безусловной оптимизации для нахожде‑
ния стационарной точки. Примеры будут приведены ниже.

8.5.1.1. Пример: двумерная квадратичная целевая функция
с одним линейным ограничением в виде равенства
Рассмотрим минимизацию функции ℒ(θ) = θ12 + θ22 при ограничении θ1 + θ2 = 1
(эта задача показана на рис. 8.20(a)). Лагранжиан имеет вид:
L(θ1, θ2, λ) = θ12 + θ22 + λ(θ1 + θ2 - 1).

(8.93)

Имеем следующие условия в стационарной точке:
(8.94)
(8.95)

Tlgm: @it_boooks

380  Оптимизация
(8.96)
Из уравнений (8.94) и (8.95) находим 2θ1 = -λ = 2θ2, откуда θ1 = θ2. Из
уравнения (8.96) находим 2θ1 = 1. Таким образом, θ* = (0.5, 0.5), как мы и ут‑
верждали ранее. Более того, этот минимум глобальный, потому что целевая
функция выпуклая, а ограничение аффинное.

8.5.2. Условия Каруша–Куна–Таккера
В этом разделе мы обобщим множители Лагранжа на ограничения в виде
неравенств.
Сначала рассмотрим случай одного неравенства g(θ) £ 0. Чтобы найти оп‑
тимум, мы будем рассматривать задачу без ограничений, в которую добавим
штраф в виде функции с бесконечной ступенькой:
ℒ̂(θ) = ℒ(θ) + ¥𝕀(g(θ) > 0).

(8.97)

ℒ(θ, μ) = ℒ(θ) + μg(θ).

(8.98)

Однако это разрывная функция, которую трудно оптимизировать.
Вместо этого мы создадим нижнюю границу вида μg(θ), где μ ³ 0. Это даст
нам следующий лагранжиан:

Заметим, что ступенчатую функцию можно восстановить:
(8.99)
Таким образом, наша задача оптимизации принимает вид:
(8.100)
Теперь рассмотрим общий случай, когда имеется несколько ограниче‑
ний в виде неравенств, g(θ) £ 0, и несколько ограничений в виде равенств,
h(θ) = 0. Обобщенный лагранжиан имеет вид:
(8.101)
(Мы вправе заменить -λjhj на +λjhj, потому что знак может быть любым.) За‑
дача оптимизации принимает вид:
(8.102)
Если ℒ и g выпуклы, то все критические точки этой задачи должны удов‑
летворять следующему критерию (при некоторых условиях, см. [BV04, раз‑
дел 5.2.3]):

Tlgm: @it_boooks

Условная оптимизация  381

 все ограничения выполнены (это называется допустимостью):
g(θ) £ 0, h(θ) = 0;

(8.103)

 решение является стационарной точкой:
(8.104)
 штраф за ограничения в виде неравенств указывает в правильном на‑
правлении (это называется допустимостью для двойственной задачи):
μ ³ 0;

(8.105)

 множители Лагранжа выбирают всю слабину в неактивных ограниче‑
ниях, т. е. либо μi = 0, либо
μ ⨀ g = 0.

(8.106)

Это называется условием дополняющей нежесткости.
Чтобы понять, почему выполняется последнее условие, рассмотрим (для
простоты) случай одного ограничения в виде неравенства, g(θ) £ 0. Оно либо
активно, т. е. g(θ) = 0, либо неактивно, т. е. g(θ) < 0. В первом случае решение
лежит на границе связи и g(θ) = 0 становится ограничением типа равенства;
тогда мы имеем Ñℒ = μÑg для некоторой постоянной μ ¹ 0 в силу (8.89). Во
втором случае решение не лежит на границе связи; мы по-прежнему имеем
Ñℒ = μÑg, но теперь μ = 0.
Это так называемые условия Каруша–Куна–Такера (ККТ). Если ℒ – вы‑
пуклая функция и ограничения определяют выпуклое множество, то условия
RRN необходимы и достаточны для (глобальной) оптимальности.

8.5.3. Линейное программирование
Рассмотрим оптимизацию линейной функции при линейных ограничениях.
В стандартной форме эта задача представляется следующим образом:
(8.107)
Допустимое множество является выпуклым политопом, т. е. выпуклым
множеством, образованным пересечением полупространств. Пример на пло‑
скости показан на рис. 8.21a. На рис. 8.21b показана линейная функция стои‑
мости, которая убывает в направлении правого нижнего угла. Мы видим, что
самой нижней точкой допустимого множества является вершина политопа.
На самом деле можно доказать, что точка оптимума всегда совпадает с вер‑
шиной политопа в предположении, что решение единственно. Если решений
несколько, то прямая будет параллельна какой-то грани. Может случиться
и так, что в допустимом множестве нет точек оптимума, тогда говорят, что
задача неразрешима.

Tlgm: @it_boooks

382  Оптимизация

(a)

(b)

Рис. 8.21  (a) Выпуклый политоп на плоскости, определенный пересечением
линейных ограничений. (b) Изображение допустимого множества, а также линейной целевой функции. Красные прямые – линии уровня целевой функции,
а стрелки указывают направление ее улучшения. Мы видим, что оптимальное
решение совпадает с одной из вершин политопа

8.5.3.1. Симплекс-метод
Можно показать, что точки оптимума в задаче линейного программирования
(ЛП) находятся в вершинах политопа, определяющего допустимое множество
(см. пример на рис. 8.21b). Симплекс-метод решает задачу ЛП, для чего
переходит от одной вершины к другой и на каждом шаге ищет ребро, которое
лучше остальных улучшает целевую функцию.
В худшем случае время работы симплекс-метода экспоненциально зави‑
сит от D, хотя на практике он обычно очень эффективен. Существуют также
различные алгоритмы с полиномиальным временем работы, например ме‑
тод внутренней точки, но на практике они часто оказываются более мед‑
ленными.

8.5.3.2. Приложения
У линейного программирования много приложений в науке, технике и биз‑
несе. Оно также полезно в некоторых задачах машинного обучения. Напри‑
мер, в разделе 11.6.1.показано, как с его помощью решить задачу робастной
линейной регрессии. Полезно оно и для оценки состояний в графовых моде‑
лях (см., например, [SGJ11]).

8.5.4. Квадратичное программирование
Рассмотрим задачу минимизации квадратичной целевой функции при ли‑
нейных ограничениях в виде равенств и неравенств. Такие задачи называ‑
ются квадратичным программированием (quadratic programming – QP)
и могут быть записаны в виде:

Tlgm: @it_boooks

Условная оптимизация  383

(8.108)
Если матрица H положительно полуопределенная, то это задача выпуклой
оптимизации.

8.5.4.1. Пример: квадратичная целевая функция
в двумерном случае с линейными ограничениями в виде
равенств
В качестве конкретного примера минимизируем функцию
(8.109)
где H = 2I и c = -(3, 1/4), при ограничении
|θ1| + |θ2| £ 1.

(8.110)

Смотрите иллюстрацию на рис. 8.20b.
Ограничения можно переписать в виде
θ1 + θ2 £ 1, θ1 - θ2 £ 1, -θ1 + θ2 £ 1, -θ1 - θ2 £ 1

(8.111)

или более компактно в виде
Aθ - b £ 0,

(8.112)

где b = 1 и

(8.113)

Это и есть стандартная форма QP.
Из геометрии задачи, показанной на рис. 8.20b, видно, что ограниче‑
ния, соответствующие обеим левым граням ромба, неактивны (поскольку
мы пытаемся подобраться как можно ближе к центру окружности, которая
находится вне допустимой области и справа от нее). Если обозначить gi(θ)
ограничение в виде неравенства, соответствующее строке i матрицы A, то
это означает, что g3(θ*) > 0 и g4(θ*) > 0 и, следовательно, в силу условий до‑
полняющей нежесткости μ*3 = μ*4 = 0. Поэтому эти неактивные ограничения
можно исключить.
Из условий ККТ мы знаем, что
Hθ + c + A⟙μ = 0.

(8.114)

Tlgm: @it_boooks

384  Оптимизация
Применяя их к подзадаче с активными ограничениями, получаем

(8.115)

Следовательно, решение имеет вид:
θ* = (1, 0)⟙, μ* = (0.625, 0.375, 0, 0)⟙.

(8.116)

Заметим, что оптимальное значение θ совпадает с одной из вершин «шара»
по норме 𝓁1 (имеющего форму ромба).

8.5.4.2. Приложения

У квадратичного программирования есть несколько приложений в МО. В раз‑
деле 11.4 мы покажем, как его использовать для разреженной линейной ре‑
грессии, а в разделе 17.3 – применим в методе опорных векторов.

8.5.5. Смешанно-целочисленное
программирование*
В задаче целочисленного линейного программирования (ЦЛП) требуется
минимизировать линейную целевую функцию при линейных ограничениях,
но переменные являются целыми, а не вещественными числами. В стандарт‑
ной форме задача имеет вид:
при условиях Aθ £ b, θ ³ 0, θ Î ℤD,

(8.117)

где ℤ – множество целых чисел. Если некоторые переменных могут быть
вещественными, то говорят о задаче смешанно-целочисленного программирования (СЦЛП). (Если все переменные вещественные, то мы возвраща‑
емся к стандартной задаче ЛП.)
СЦЛП имеет много применений, в том числе в маршрутизации транспорт‑
ных потоков, планировании и упаковке в контейнеры. Оно также полезно в не‑
которых задачах МО, например для формальной верификации поведения неко‑
торых видов глубоких нейронных сетей [And+18] и для доказательства свойств
устойчивости ГНС к враждебному вмешательству (в худшем случае) [TXT19].

8.6. проксимальный градиентный метод*
Часто нас интересует оптимизация целевой функции вида
ℒ(θ) = ℒs(θ) + ℒr(θ),

(8.118)

Tlgm: @it_boooks

Проксимальный градиентный метод  385

где ℒs – дифференцируемая (гладкая) функция, а ℒr – выпуклая, но необяза‑
тельно дифференцируемая функция (т. е. она может быть негладкой). На‑
пример, ℒs может быть отрицательным логарифмическим правдоподобием
(NLL), а ℒr – индикаторной функцией, бесконечной в случае нарушения огра‑
ничения (см. раздел 8.6.1), или же 𝓁1-нормой некоторых параметров (см. раз‑
дел 8.6.2) или измерять, насколько далеко параметры отстоят от допустимых
дискретизированных значений (см. раздел 8.6.3).
Один из подходов к решению таких задач – проксимальный градиентный метод (см., например, [PB+14; PSW15]). Грубо говоря, его идея заклю‑
чается в том, чтобы сделать шаг размера ρ в направлении градиента, а затем
спроецировать получившееся обновление параметров в пространство с уче‑
том ℒr. Точнее, обновление имеет вид
(8.119)

где proxρf (θ) – проксимальный оператор ℒr (масштабированный на η), вы‑
численный в точке θ:
(8.120)
(Множитель ½ – произвольное соглашение.) Мы можем переписать прокси‑
мальный оператор как решение задачи условной оптимизации:
при условии ||z - θ||2 £ ρ,

(8.121)

где граница ρ зависит от масштабного коэффициента η. Таким образом, мы
видим, что проксимальная проекция минимизирует функцию, оставаясь при
этом близкой (т. е. проксимальной) к текущей итерации. Примеры будут
приведены ниже.

8.6.1. Спроецированный градиентный спуск
Пусть требуется решить задачу
при условии θ £ 𝒞,

(8.122)

где 𝒞 – выпуклое множество. Например, могут быть ограничения вида 𝒞 =
{θ : l £ θ £ u}, когда задаются нижняя и верхняя граница каждого элемента.
Для некоторых элементов границы могут быть бесконечными, если мы не
хотим налагать никаких ограничений в данном направлении. Так, если мы
просто хотим, чтобы параметры были неотрицательными, то полагаем ld = 0
и ud = ¥ для всех направлений d.
Мы можем преобразовать эту задачу условной оптимизации в безуслов‑
ную, прибавив штрафующий член к исходной целевой функции:
ℒ(θ) = ℒs(θ) + ℒr(θ),

(8.123)

Tlgm: @it_boooks

386  Оптимизация
где ℒr(θ) – индикаторная функция для выпуклого множества 𝒞:

(8.124)

Для решения задачи (8.123) можно воспользоваться проксимальным гра‑
диентным спуском. Проксимальный оператор для индикаторной функции
эквивалентен проекции на множество 𝒞:
(8.125)

Этот метод называется спроецированным градиентным спуском (см.
иллюстрацию на рис. 8.22). Например, рассмотрим ограничения 𝒞 = {θ : l £ θ
£ u}. Оператор проецирования в этом случае можно вычислить поэлементно
путем обрезания на границах:

(8.126)
Например, если мы хотим гарантировать, что все элементы неотрицатель‑
ны, то можно взять такой оператор:
proj𝒞(θ) = θ+ = [max(θ1, 0), …, max(θD, 0)].

(8.127)

Рис. 8.22  Спроецированный градиентный спуск. w – текущая
оценка параметра, w¢ – обновление после шага в направлении
градиента, а P𝒞(w¢) проецирует его на множество ограничений 𝒞.
Взято из статьи https://bit.ly/3eJ3BhZ. Печатается с разрешения
Мартина Джагги

О применении этого метода к разреженной линейной регрессии см. раз‑
дел 11.4.9.2.

Tlgm: @it_boooks

Проксимальный градиентный метод  387

8.6.2. Проксимальный оператор
для регуляризатора по норме 𝓁1

Рассмотрим линейный предиктор вида f(x, θ) = åDd=1 θd xd. Если θd = 0 для
какого-то измерения d, то соответствующий признак xd можно игнорировать.
Такая форма отбора признаков может быть полезна и для уменьшения пе‑
реобучения, и как способ улучшить интерпретируемость модели. Мы можем
поощрить выбор нулевых (а не просто малых) весов, штрафуя по норме 𝓁1:
(8.128)

Это называется регуляризатором, стимулирующим разреженность.
Чтобы понять, почему он стимулирует разреженность, рассмотрим два
возможных вектора параметров, один из которых разрежен, θ = (1, 0), а дру‑
гой не разрежен, θ¢ = (1/ 2, 1/ 2). Норма 𝓁2 в обоих случаях одинакова:

(8.129)

Следовательно, 𝓁2-регуляризация (раздел 4.5.3) не дает предпочтения
разреженному решению перед плотным. Но при использовании 𝓁1-регуляризации разреженное решение оказывается дешевле, потому что
(8.130)
Дополнительные сведения о разреженной регрессии см. в разделе 11.4.
Если объединить этот регуляризатор с нашей гладкой потерей, то получим
ℒ(θ) = NLL(θ) + λ||θ||1.

(8.131)

Эту целевую функцию можно оптимизировать методом проксимального
градиентного спуска. Ключевой вопрос – как вычислить оператор prox для
функции f(θ) = ||θ||1. Поскольку эта функция разлагается по d измерениям,
проксимальную проекцию можно вычислять покомпонентно. Из формулы
(8.120) с ρ = 1 имеем
(8.132)
В разделе 11.4.3 мы покажем, что решение этой задачи имеет вид:
(8.133)

Tlgm: @it_boooks

388  Оптимизация
Оно называется оператором мягкого порога, потому что значения,
меньшие λ по абсолютной величине, обнуляются, но без разрывов. Отметим,
что этот оператор можно записать более компактно в виде
SoftThreshold(θ, λ) = sign(θ)(|θ| - λ)+,

(8.134)

где θ+ = max(θ, 0) – положительная часть θ. В векторном случае его можно
применять поэлементно:
SoftThreshold(θ, λ) = sign(θ) ⨀ (|θ| - λ)+.

(8.135)

О применении этого метода к разреженной линейной регрессии см. раз‑
дел 11.4.9.3 .

8.6.3. Применение проксимального оператора
в случае квантования
В некоторых приложениях (например, при обучении глубоких нейронных
сетей для работы на оконечных устройствах с ограниченной памятью, на‑
пример мобильных телефонах) мы хотим, чтобы параметры были квантованы. Так, в крайних случаях, когда каждый параметр может принимать только
значения -1 или +1, пространство состояний имеет вид 𝒞 = {-1, +1}D.
Определим регуляризатор, который измеряет расстояние до ближайшего
квантованного значения вектора параметров:
(8.136)
(Можно было использовать также норму 𝓁2.) В случае, когда 𝒞 = {-1, +1}D, это
выражение принимает вид:
(8.137)
Определим соответствующий оператор квантования:
q(θ) = proj𝒞(θ) = argmin ℒr(θ) = sign(θ).

(8.138)

Основная трудность обучения с квантованием состоит в том, что кванто‑
вание – недифференцируемая операция. Распространенное решение этой
проблемы – использовать сквозной оцениватель (straight-through esti‑
mator), в котором применяется аппроксимация

(см., например,

[Yin+19]). Соответствующее обновление можно произвести за два шага: сна‑
чала вычислить вектор градиента в точке, совпадающей с квантованными
значениями текущих параметров, а затем обновить не связанные ограниче‑
ниями параметры, пользуясь приближенным градиентом:

Tlgm: @it_boooks

Граничная оптимизация  389

θt = proj𝒞(θt) = q(θt),
θt+1 = θt - ρtÑℒs(θt).

(8.139)
(8.140)

Применительно к множеству 𝒞 = {-1, +1}D этот метод называется бинарной связью (binary connect) [CBD15].
Мы можем улучшить результаты, воспользовавшись проксимальным гра‑
диентным спуском, рассматривая квантование как регуляризатор, а не жест‑
кое ограничение; этот вариант называется ProxQuant [BWL19]. Обновление
имеет вид:
θt = proxλℒr(θt - ρtÑℒs(θt)).

(8.141)

В случае, когда 𝒞 = {-1, +1}D, можно показать, что проксимальный опера‑
тор является обобщением оператора мягкого порога (8.135):
proxλℒr(θ) = SoftThreshold(θ, λ, sign(θ))
= sign(θ) + sign(θ - sign(θ)) ⨀ (|θ - sign(θ)| - λ)+.

(8.142)
(8.143)

Эта идея допускает обобщения и на другие формы квантования, детали
см. в работе [Yin+19].

8.6.4. Инкрементные (онлайновые)
проксимальные методы
Во многих задачах МО встречается целевая функция в виде суммы потерь,
по одному слагаемому на каждый пример. Такие задачи можно решать ин‑
крементно, это частный случай онлайнового обучения. На эту постановку
обобщаются и проксимальные методы. О вероятностном взгляде на такие
методы (в терминах фильтров Калмана) см. работы [AEM18; Aky+19].

8.7. граниЧная оптимизация*
В этом разделе мы рассмотрим класс алгоритмов, известных под названием
граничная оптимизация (bound optimization) или MM-алгоритмы. В кон‑
тексте минимизации MM означает «majorize-minimize» (мажорированиеминимизация). Мы обсудим частный случай – математическое ожиданиемаксимизация (expectation-maximization), или EM, в разделе 8.7.2.

8.7.1. Общий алгоритм
В этом разделе мы дадим краткий обзор MM-методов. (Дополнительные
сведения можно найти, например, в работах [HL04; Mai15; SBP17; Nad+19].)
Чтобы не отходить от принятых в литературе традиций, будем предполагать,

Tlgm: @it_boooks

390  Оптимизация
что наша цель – максимизировать некоторую функцию LL(θ), например лога‑
рифмическое правдоподобие, относительно ее параметров θ. Базовый под‑
ход в MM-алгоритмах – построить суррогатную функцию Q(θ, θt), которая яв‑
ляется точной нижней границей LL(θ), такую, что Q(θ, θt) £ LL(θ) и Q(θt, θt) =
LL(θt). Если эти условия выполнены, то говорят, что Q минорирует LL. Затем
на каждом шаге выполняется следующее обновление:
(8.144)
Это гарантирует монотонное возрастание исходной целевой функции:
LL(θt+1) ³ Q(θt+1, θt) ³ Q(θt, θt) = LL(θt),

(8.145)

где первое неравенство следует из того, что Q(θt+1, θ¢) – нижняя граница
LL(θt+1) для любого θ¢, второе неравенство – из (8.144), а последнее равен‑
ство – из точности границы.
Из этого результата вытекает, что если вы не наблюдаете монотонного
возрастания целевой функции, значит, в расчетах и (или) в коде имеется
ошибка. Это на удивление эффективная техника отладки.
Этот процесс схематически изображен на рис. 8.23. Штрихпунктирная
красная кривая – график исходной функции (например, логарифмического
правдоподобия наблюдаемых данных). Сплошная синяя кривая – нижняя
граница, вычисленная в точке θt; она касается целевой функции в θt. Затем
мы полагаем θt+1 равным точке максимума нижней границы (синей кривой)
и строим новую аппроксимацию в этой точке (пунктирная зеленая кривая).
Точка максимума новой границы становится равной θt+2 и т. д.

Рис. 8.23  Алгоритм граничной оптимизации.
На основе рис. 9.14 из работы [Bis06].
Построено программой по адресу figures.probml.ai/book1/8.23.

Если Q – квадратичная нижняя граница, то мы получаем подобие метода
Ньютона, который итеративно ищет, а затем оптимизирует квадратичную
аппроксимацию, как показано на рис. 8.14a. Разница в том, что оптимиза‑
ция Q гарантированно ведет к улучшению целевой функции, даже если она

Tlgm: @it_boooks

Граничная оптимизация  391

не выпукла, тогда как метод Ньютона может «дать перелет» или привести
к уменьшению целевой функции, как показано на рис. 8.24, поскольку это
квадратичная аппроксимация, а не граница.

(a) Перелет

(b) Нахождение не того корня

Рис. 8.24  Квадратичная нижняя граница в MM-алгоритме (сплошная кривая) и квадратичная аппроксимация вметоде Ньютона (пунктирная кривая). Начальные точки обоих алгоритмов отмечены кружочком. Квадратик обозначает
результат одного обновления в MM-алгоритме. Ромбик обозначает результат
одного обновления в алгоритме Ньютона. (a) Метод Ньютона дает «перелет»,
проскакивая глобальный максимум. (b) Метод Ньютона приводит к уменьшению целевой функции. На основе рис. 4 из работы [FT05]. Печатается с разрешения Карло Томаси

8.7.2. EM-алгоритм
В этом разделе мы обсудим алгоритм математического ожидания-максимизации (EM) [DLR77; MK97] – алгоритм граничной оптимизации, пред‑
назначенный для вычисления оценки параметров MLE или MAP в вероят‑
ностных моделях с частично отсутствующими данными и (или) скрытыми
переменными. Обозначим yn видимые данные для примера n, а zn – скрытые
данные.
Основная идея EM-алгоритма – попеременно оценивать скрытые пере‑
менные (или отсутствующие значения) на E-шаге (шаге вычисления мате‑
матического ожидания), а затем использовать полные наблюдаемые данные
для вычисления оценки максимального правдоподобия (MLE) на M-шаге
(шаге максимизации). Разумеется, этот процесс необходимо повторять, по‑
тому что ожидаемые значения зависят от параметров, а параметры в свою
очередь зависят от ожидаемых значений.
В разделе 8.7.2.1 мы покажем, что EM действительно является MM-алгоритмом, откуда следует, что эта итеративная процедура сходится к локально‑
му максимуму логарифмического правдоподобия. Скорость сходимости за‑
висит от количества отсутствующих данных, что влияет на точность оценки
[XJ96; MD97; SRG03; KKS20].

Tlgm: @it_boooks

392  Оптимизация

8.7.2.1. Нижняя граница
Цель EM-алгоритма – максимизировать логарифмическое правдоподобие
наблюдаемых данных:
(8.146)
где yn – видимые, а zn – скрытые переменные. К сожалению, эту функцию
трудно оптимизировать, потому что логарифм нельзя перенести под знак
суммы.
EM-алгоритм обходит эту проблему следующим образом. Сначала рассмотрим множество произвольных распределений qn(zn) каждой скрытой пере‑
менной zn. Логарифмическое правдоподобие наблюдаемых данных можно
записать в виде:
(8.147)
Пользуясь неравенством Йенсена (6.34), мы можем перенести логарифм
(являющийся вогнутой функцией) под знак суммы и получить следующую
нижнюю границу логарифмического правдоподобия:
(8.148)
(8.149)
(8.150)
где ℍ(q) – энтропия распределения вероятностей q, а ℰ(θ, {qn}|𝒟) называет‑
ся вариационной нижней оценкой, или свидетельствующей нижней
границей (evidence lower bound – ELBO), поскольку это нижняя граница
логарифмического маргинального правдоподобия log p(y1:N|θ), которое на‑
зывается также свидетельством. Оптимизация этой границы лежит в основе
вариационного вывода, обсуждавшегося в разделе 4.6.8.3.

8.7.2.2. E-шаг
Мы видим, что нижняя граница представляет собой сумму N членов следу‑
ющего вида:
(8.151)
(8.152)

Tlgm: @it_boooks

Граничная оптимизация  393

(8.153)
(8.154)
где 𝕂𝕃(q||p)

åz q(z) log

– расхождение Кульбака–Лейблера (КЛ) между

распределениями вероятностей q и p. Мы подробно обсуждали его в раз‑
деле 6.2, а сейчас напомним основное нужное нам свойство: 𝕂𝕃(q||p) ³ 0,
причем равенство достигается тогда и только тогда, когда q = p. Поэтому
мы можем максимизировать нижнюю границу ℰ(θ, {qn}|𝒟) относительно по‑
следовательности {qn}, положив каждый ее член равным q*n = p(zn|yn, θ). Это
называется E-шагом. Он гарантирует, что ELBO является точной нижней
границей:
(8.155)
Чтобы понять, как это связано с граничной оптимизацией, определим
Q(θ, θt) = ℰ(θ, {p(zn|yn, θt)}).

(8.156)

Тогда имеем Q(θ, θt) £ LL(θ) и Q(θt, θt) = LL(θt), как и требуется.
Однако если даже мы не можем вычислить апостериорные распределеня
p(zn|yn; θt) точно, то все же можем использовать приближенное распределение
q(zn|yn; θt); это дает неточную нижнюю границу логарифмического правдопо‑
добия. Обобщенный вариант EM-алгоритма называется вариационным EM
[NH98]. Дополнительные сведения см. во втором томе этой книги, [Mur22].

8.7.2.3. M-шаг
На M-шаге мы должны максимизировать ℰ(θ, {qnt }) относительно θ, где qnt –
распределения, вычисленные на E-шаге итерации t. Поскольку члены энтропии ℍ(qn) постоянны относительно θ, мы можем опустить их на M-шаге.
Остается
(8.157)
Эта функция называется ожидаемым полным логарифмическим правдоподобием данных. Если совместная вероятность принадлежит экспонен‑
циальному семейству (раздел 3.4), то мы можем переписать ее в виде
(8.158)
где 𝔼[𝒯(yn, zn)] – ожидаемые достаточные статистики.
На M-шаге мы максимизируем ожидаемое полное логарифмическое прав‑
доподобие данных и получаем

Tlgm: @it_boooks

394  Оптимизация
(8.159)
В случае экспоненциального семейства задачу максимизации можно ре‑
шить в замкнутой форме, приравняв моменты ожидаемых достаточных ста‑
тистик.
Из вышеизложенного видно, что E-шаг на самом деле не обязан возвра‑
щать полный набор апостериорных распределений {q(zn)}, а может вернуть
только сумму ожидаемых достаточных статистик, ån 𝔼q(zn)[𝒯(yn, zn)]. Это ста‑
нет яснее из приведенных ниже примеров.

8.7.3. Пример: EM-алгоритм для смеси гауссовых
распределений
В этом разделе мы покажем, как применить EM-алгоритм для вычисления
оценок MLE и MAP параметров модели смеси гауссовых распределений (GMM).

8.7.3.1. E-шаг
На E-шаге вычисляется ответственность кластера k за порождение точки
данных n, оцененная с помощью текущих оценок параметров θ(t):
(8.160)

8.7.3.2. M-шаг
На M-шаге максимизируется ожидаемое полное логарифмическое правдо‑
подобие данных:
(8.161)
(8.162)
(8.163)

,

(8.164)

где znk = 𝕀(zn = k) – унитарное кодирование категориальных значений zn. Эта
целевая функция не что иное, как взвешенная версия стандартной задачи
вычисления оценок MLE многомерного гауссова распределения (см. раз‑
дел 4.2.6).

Tlgm: @it_boooks

Граничная оптимизация  395

Можно показать, что новые оценки параметров имеют вид:
;

(8.165)

(8.166)
(t)
где rk(t) ån rnk
– взвешенное число точек, отнесенных к кластеру k. Среднее
кластера k – это просто взвешенное среднее всех точек, отнесенных к кластеру k, а ковариация пропорциональна взвешенной эмпирической матрице
рассеяния.
M-шаг для весов смеси – это просто взвешенная форма обычной MLE:

(8.167)

8.7.3.3. Пример
Пример алгоритма в действии показан на рис. 8.25, где 25 точек на плоско‑
сти аппроксимируются двухкомпонентной моделью GMM. Набор данных,
заимствованный из [Bis06], получен на основе измерений гейзера Старый
служака в Йеллоустоунском национальном парке. Конкретно, на графике
представлена зависимость момента следующего извержения в минутах от
продолжительности извержения в минутах. Перед обработкой данные были
стандартизированы путем вычитания среднего и деления на стандартное
отклонение; часто это улучшает сходимость. Были выбраны следующие на‑
чальные значения: μ1 = (-1, 1), Σ1 = I, μ2 = (1, -1), Σ2 = I. Затем показаны
отнесение к кластерам и соответствующие компоненты смеси на различных
итерациях.
Дополнительные сведения о применении GMM для кластеризации см.
в разделе 21.4.1.

8.7.3.4. Оценка MAP
Вычисление MLE для GMM часто подвержено численным проблемам и пере‑
обучению. Чтобы понять, почему это так, предположим для простоты, что
Σk = σk2I для всех k. Можно получить бесконечное правдоподобие, отнеся один
из центров, скажем μk, к одной точке данных, скажем yn, потому что тогда
правдоподобие этой точки будет равно
(8.168)

Tlgm: @it_boooks

396  Оптимизация

Рис. 8.25  Иллюстрация EM для модели GMM применительно к данным
о гейзере Старый служака. Уровень «красноты» показывает степень уверенности в принадлежности точки к красному кластеру и аналогично для синего; таким образом, фиолетовые точки могут принадлежать обоим кластерам с вероятностью примерно 50/50. На основе рис. 9.8 из [Bis06]. Построено программой
по адресу figures.probml.ai/book1/8.25

Следовательно, мы можем устремить этот член к бесконечности, положив
σk ® 0, как показано на рис. 8.26(a). Это называется «проблемой коллапси‑
рующей дисперсии».
Простое решение этой проблемы – вычислять оценку MAP. По счастью, для
ее нахождения можно использовать все тот же EM-алгоритм. Наша цель –
максимизировать сумму ожидаемого полного логарифмического правдопо‑
добия данных и логарифмического априорного распределения:

(8.169)
Отметим, что E-шаг вообще не изменяется, но M-шаг необходимо моди‑
фицировать, как описано ниже.
В качестве априорного распределения весов смеси естественно использо‑
вать распределение Дирихле (раздел 4.6.3.2), π ~ Dir(α), так как оно является
сопряженным к категориальному распределению. Оценка MAP имеет вид:
(8.170)
Если использовать равномерное априорное распределение, αk = 1, то она
сводится к MLE.
В качестве априорного распределения компонент смеси рассмотрим со‑
пряженное априорное распределение вида
(8.171)

Tlgm: @it_boooks

Граничная оптимизация  397

Оно называется нормальным обратным распределением Вишарта (см.
второй том этой книги, [Mur22]). Пусть для гиперпараметров μ выбрано =
0, так что μk не регуляризированы; таким образом, априорное распределение
повлияет только на нашу оценку Σk. В этом случае оценки MAP имеют вид:
(8.172)
(8.173)
где μ̂k – MLE для μk из формулы (8.165), а Σ̂ k – MLE Σk из формулы (8.166).

(a)

(b)

Рис. 8.26  (a) Как могут возникать сингулярности в функции правдоподобия моделей GMM. Здесь K = 2, но первая компонента смеси – узкий пик (с σ1 ≈ 0) с центром в точке x1. На основе рис. 9.7 из [Bis06]. Построено программой по адресу
figures.probml.ai/book1/8.26. (b) Преимущество оценки MAP перед оценкой максимального правдоподобия при аппроксимации моделью гауссовой смеси. Показана
зависимость доли случаев (в пяти случайных испытаниях), когда каждый метод сталкивался с численными проблемами, от размерности задачи при N = 100 примерах.
Сплошная красная линия (верхняя кривая): MLE. Пунктирная черная линия (нижняя
кривая): MAP. Построено программой по адресу figures.probml.ai/book1/8.26

Теперь обсудим, как задать априорную ковариацию, . Одна из возмож‑
ностей (предложенная в [FR07, стр. 163]) – взять
(8.174)
где sd = (1/N)åNn=1(xnd - —
x d)2 – объединенная дисперсия по измерению d. Па‑
раметр управляет силой нашей веры в это априорное распределение. Са‑
мое слабое априорное распределение, которое все еще можно использовать,
получается, если положить = D + 2, поэтому такой выбор наиболее рас‑
пространен.
Теперь продемонстрируем преимущества использования оценки MAP
вместо MLE в контексте GMM. Мы применяем EM-алгоритм к некоторым

Tlgm: @it_boooks

398  Оптимизация
синтетическим данным с N = 100 примерами в D измерениях, используя одну
из двух оценок: MLE или MAP. Мы считаем испытание «неудачным», если при
вычислениях возникли проблемы из-за сингулярных матриц. Для каждой
размерности производится 5 случайных испытаний. Результаты показаны на
рис. 8.26b. Мы видим, что даже при умеренно больших D оценка MLE терпит
крах, тогда как оценка MAP с подходящим априорным распределением редко
сталкивается с численными проблемами.

8.7.3.5. Невыпуклость NLL
Правдоподобие смесовой модели равно
(8.175)
В общем случае она будет иметь несколько мод, а значит, единственного
глобального оптимума не будет. На рис. 8.27 это показано для смеси двух одно‑
мерных гауссовых распределений. Мы видим два одинаково хороших глобаль‑
ных оптимума, соответствующих двум разным пометкам кластеров; в одном
левый пик соответствует z = 1, а в другом – z = 2. Это называется проблемой
переключения меток; дополнительные сведения см. в разделе 21.4.1.2.

(a)

(b)

Рис. 8.27  Слева: N = 200 точек, выбранных из смеси двух одномерных гауссовых распределений с πk = 0.5, σk = 5, μ1 = -10 и μ2 = 10. Справа: поверхность правдоподобия p(𝒟|μ1, μ2), когда все остальные параметры имеют истинные значения.
Мы видим две симметричных моды, что отражает невозможность идентификации
параметров. Построено программой по адресу figures.probml.ai/book1/8.27

На вопрос, сколько мод имеется в функции правдоподобия, ответить труд‑
но. Существует K! возможных способов пометки, но некоторые пики могут
сливаться в зависимости от того, насколько далеко отстоят μk. Тем не ме‑
нее число мод может расти экспоненциально. Следовательно, нахождение
глобального оптимума – NP-трудная задача [Alo+09; Dri+04]. Поэтому мы
вынуждены довольствоваться локальным оптимумом. Чтобы найти хоро‑
ший локальный оптимум, можно воспользоваться методом Kmeans++ (раз‑
дел 21.3.4) для инициализации EM-алгоритма.

Tlgm: @it_boooks

Упражнения  399

8.8. оптимизация Черного ящика
и оптимизация без использоВания
произВодных
В некоторых задачах оптимизации целевая функция представляет собой
черный ящик, т. е. ее функциональная форма неизвестна. Это значит, что
для ее оптимизации невозможно применить градиентные методы. Вместо
этого такие задачи требуют методов оптимизации черного ящика (black‑
box optimization – BBO), которые также называют оптимизацией без использования производных (derivative free optimization – DFO).
В МО такие задачи часто возникают при выборе модели. Например, пред‑
положим, что имеются некоторые гиперпараметры, λ Î Λ, управляющие ти‑
пом или сложностью модели. Часто целевая функция ℒ(λ) определяется как
потеря на контрольном наборе (см. раздел 4.5.4). Поскольку потеря зави‑
сит от оптимальных параметров модели, которые вычисляются с помощью
сложного алгоритма, эта целевая функция по существу является черным
ящиком1. Простой подход к решению таких задач – воспользоваться поиском на сетке, когда мы оцениваем каждую точку в пространстве параметров
и выбираем ту, для которой потеря наименьшая. К сожалению, этот способ
не масштабируется на большое число измерений из-за проклятия размер‑
ности. Кроме того, даже при низкой размерности он может оказаться до‑
рогостоящим, если вычисление целевой функции черного ящика обходится
дорого (например, если прежде чем вычислить потерю на контрольном на‑
боре, необходимо обучить модель). Были предложены различные решения
этой проблемы. Дополнительные сведения см. во втором томе книги, [Mur22]

8.9. упражнения
Упражнение 8.1 [субдифференциал кусочно-линейной функции потерь*].
Пусть f(x) = (1 - x)+ – кусочно-линейная функция потерь, где (z)+ = max(0, z).
Чему равны ¶f(0), ¶f(1) и ¶f(2)?
Упражнение 8.2 [EM-алгоритм для распределения Стьюдента].
Выведите уравнения EM-алгоритма для вычисления MLE многомерного
распределения Стьюдента. Отдельно рассмотрите случаи, когда параметр
dof известен и неизвестен. Указание: запишите распределение Стьюдента
как масштабированную смесь гауссовых распределений.
1

Если оптимальные параметры вычисляются градиентным методом, то мы можем
«развернуть» шаги вычисления градиента и создать глубокую цепь, которая ото‑
бражает обучающие данные в оптимальные параметры и, следовательно, в потерю
на контрольном наборе. Затем ее можно оптимизировать (см., например, [Fra+17]).
Однако такая техника применима далеко не всегда.

Часть

II

Tlgm: @it_boooks

ЛИНЕЙНЫЕ МОДЕЛИ

Tlgm: @it_boooks

Глава

9
Линейный
дискриминантный
анализ

9.1. ВВедение
В этой главе мы рассмотрим модели классификации вида:
(9.1)
Член p(y = c; θ) – априорное распределение меток класса, а член p(x|y =
c; θ) называется условной плотностью класса c.
Модель в целом называется порождающим классификатором, пото‑
му что она описывает способ порождения признаков x для каждого класса
c путем выборки из распределения p(x|y = c; θ). C другой стороны, дискриминантный классификатор непосредственно моделирует апостериорное
распределение классов p(y|x; θ). Мы обсудим плюсы и минусы этих подходов
к классификации в разделе 9.4.
Если выбрать условные плотности классов специальным образом, то ре‑
зультирующее апостериорное распределение классов будет линейной функ‑
цией от x, т. е. log p(y = c|x; θ) = w⟙x + const, где w выведено из θ. Поэтому ме‑
тод называется линейным дискриминантным анализом (ЛДА, англ. LDA)1.

9.2. гауссоВ дискриминантный анализ
В этом разделе мы рассмотрим порождающий классификатор, в котором
условные плотности классов – многомерные гауссовы распределения:
1

Этот термин ведет к некоторой путанице по двум причинам. Во-первых, ЛДА от‑
носится к порождающим классификаторам. А во-вторых, английская аббревиатура
LDA означает также latent Dirichlet allocation – латентное размещение Дирихле –
популярную порождающую модель без учителя для мешков слов [BNJ03].

Tlgm: @it_boooks

402  Линейный дискриминантный анализ
p(x|y = c, θ) = 𝒩(x|μc, Σc).

(9.2)

p(y = c|x, θ) µ πc 𝒩(x|μc, Σc),

(9.3)

Поэтому соответствующее апостериорное распределение классов имеет
вид

где πc = p(y = c) – априорная вероятность метки c. (Заметим, что нормиро‑
вочную постоянную в знаменателе апостериорного распределения можно
игнорировать, потому что она не зависит от c.) Эта модель называется гауссовым дискриминантным анализом, или GDA.

9.2.1. Квадратичные решающие границы
Из формулы (9.3) видно, что логарифмическое апостериорное распределение
меток классов имеет вид:
(9.4)
Это называется дискриминантной функцией. Мы видим, что решающая
граница между двумя классами, скажем c и c¢, будет квадратичной функцией
от x. Поэтому такой метод называется квадратичным дискриминантным
анализом (QDA).
Например, рассмотрим двумерные данные, принадлежащие трем разным
классам, на рис. 9.1a. Мы аппроксимировали условные плотности классов
гауссовыми распределениями с полной ковариациационной матрицей (ме‑
тодом, описанным в разделе 9.2.4) и представили результаты на рис. 9.1b. Мы
видим, что признаки синего класса в какой-то мере коррелированы, тогда
как признаки зеленого класса независимы, а признаки красного класса неза‑
висимы и изотропны (сферическая ковариация). На рис. 9.2a видно, что по‑
лучившиеся решающие границы являются квадратичными функциями от x.

(a)

(b)

Рис. 9.1  (a) Двумерные данные, принадлежащие трем разным классам.
(b) Аппроксимация каждого класса двумерным гауссовым распределением.
Построено программой по адресу figures.probml.ai/book1/9.1

Tlgm: @it_boooks

Гауссов дискриминантный анализ  403

(a)

(b)

Рис. 9.2  Аппроксимация данных на рис. 9.1 с помощью гауссова дискриминантного анализа. (a) Ничем не ограниченные ковариации индуцируют
квадратичные решающие границы. (b) Связанные ковариации индуцируют
линейные решающие границы. Построено программой по адресу figures.
probml.ai/book1/9.3

9.2.2. Линейные решающие границы
Теперь рассмотрим частный случай гауссова дискриминантного анализа,
когда ковариационные матрицы связаны или разделяются всеми класса‑
ми, т. е. Σc = Σ. Если Σ не зависит от c, то выражение (9.4) можно упростить
следующим образом:
(9.5)
(9.6)
(9.7)
Последний член не зависит от c, поэтому является несущественной ад‑
дитивной постоянной, которую можно опустить. Таким образом, дискри‑
минантная функция является линейной функцией от x, так что решающие
границы будут линейными. Поэтому метод называется линейным дискриминантным анализом, или ЛДА (см. пример на рис. 9.2b).

9.2.3. Связь между ЛДА и логистической
регрессией
В этом разделе мы выведем интересную связь между ЛДА и логистической
регрессией, введенной в разделе 2.5.3. Благодаря формуле (9.7) мы можем
написать:

Tlgm: @it_boooks

404  Линейный дискриминантный анализ
(9.8)
где wc = [γc, βc]. Мы видим, что формула (9.8) имеет такой же вид, как мо‑
дель мультиномиальной логистической регрессии. Ключевое отличие за‑
ключается в том, что в ЛДА мы сначала обучаем гауссовы распределения
(и априорные распределения классов), чтобы максимизировать совместное
правдоподобие p(x, y|θ), как обсуждалось в разделе 9.2.4, а затем выводим w
из θ. А в логистической регрессии мы оцениваем w непосредственно с целью
максимизировать условное правдоподобие p(y|x, w). В общем случае резуль‑
таты получаются разными (см. упражнение 10.3).
Чтобы лучше понять смысл формулы (9.8), рассмотрим бинарный случай,
когда апостериорное распределение имеет вид
(9.9)
(9.10)
где σ(η) обозначает сигмоидную функцию.
Тогда
(9.11)
(9.12)
Поэтому, если определить
(9.13)
(9.14)
то будем иметь w⟙x0 = -(γ1 - γ0) и потому
p(y = 1|x, θ) = σ(w⟙(x - x0)).

(9.15)

Это уравнение имеет такую же форму, как бинарная логистическая регрес‑
сия. Поэтому решающее правило MAP имеет вид
ŷ(x) = 1 тогда и только тогда, когда w⟙x > c,

(9.16)

где c = w⟙x0. Если π0 = π1 = 0.5, то пороговую величину можно упростить:
c = ½w⟙(μ1 + μ0).
Чтобы интерпретировать это уравнение геометрически, предположим, что
Σ = σ2I. В этом случае вектор w = σ-2(μ1 - μ0) параллелен прямой, соединя‑
ющей оба центроида, μ0 и μ1. Поэтому, чтобы классифицировать точку, мы

Tlgm: @it_boooks

Гауссов дискриминантный анализ  405

можем спроецировать ее на эту прямую, а затем проверить, к какому центроиду, μ0 или μ1, она ближе (см. рис. 9.3). Вопрос о том, насколько близко она
должна быть, зависит от априорного распределения классов. Если π1 = π0,
то x0 = ½(μ1 + μ0), т. е. посередине между средними. Если взять π1 > π0, то
для выбора класса 0 точка должна быть ближе к π0, чем средняя точка. Для
π0 > π1 дело обстоит ровно наоборот. Таким образом, мы видим, что апри‑
орное распределение классов меняет только порог принятия решения, но не
общую форму решающей границы. (Аналогичное рассуждение применимо
и к случаю нескольких классов.)

Рис. 9.3  Геометрия ЛДА в случае 2 классов,
когда Σ1 = Σ2 = I

9.2.4. Обучение модели
Теперь обсудим, как обучить модель GDA с помощью оценки максимального
правдоподобия. Функция правдоподобия выглядит следующим образом:
(9.17)
Поэтому логарифмическое правдоподобие имеет вид:
(9.18)
Таким образом, мы видим, что оптимизировать члены π и (μc, Σc) можно
по отдельности.
Из раздела 4.2.4 мы знаем, что MLE априорного распределения классов
имеет вид π̂c = Nc /N. Пользуясь результатами из раздела 4.2.6, можно вывести
следующие MLE для гауссовых распределений:

Tlgm: @it_boooks

406  Линейный дискриминантный анализ
(9.19)
(9.20)
К сожалению, оценка MLE Σ̂ c подвержена переобучению (т. е. может ока‑
заться плохо обусловленной), если Nc мало по сравнению с D – размерности
пространства входных признаков. Ниже мы обсудим некоторые решения
этой проблемы.

9.2.4.1. Связанные ковариационные матрицы
Если Σc = Σ, т. е. ковариационные матрицы связаны, то, как уже было по‑
казано, мы имеем линейные решающие границы. Обычно это дает более
надежную оценку параметров, так как мы можем объединить все примеры
из разных классов:
(9.21)

9.2.4.2. Диагональные ковариационные матрицы
Если постулировать, что матрица Σc диагональная, то количество параметров
уменьшается с O(CD2) до O(CD), так что проблемы переобучения удается из‑
бежать. Однако при этом мы теряем возможность уловить корреляцию между
признаками. (Это называется наивным байесовским предположением, и мы
еще обсудим его в разделе 9.3.) Но, несмотря на такую аппроксимацию, этот
подход хорошо масштабируется на большое число измерений.
Мы можем еще сильнее ограничить емкость модели, воспользовавшись
связанной диагональной ковариационной матрицей. Такая постановка на‑
зывается «диагональным ЛДА» [BL04].

9.2.4.3. Оценка MAP
Диагональность ковариационной матрицы – довольно сильное предположе‑
ние. Альтернативный подход – вычислить не MLE, а оценку MAP гауссова рас‑
пределения с полной (разделяемой) ковариационной матрицей. Опираясь на
результаты из раздела 4.5.2, находим, что оценка MAP имеет вид
Σ̂ map = λdiag(Σ̂ mle) + (1 - λ)Σ̂ mle,

(9.22)

где λ контролирует степень регуляризации. Эта техника называется регуляризированным дискриминантным анализом, или RDA [HTF09,
стр. 656].

Tlgm: @it_boooks

Гауссов дискриминантный анализ  407

9.2.5. Классификатор по ближайшему центроиду
Если предположить, что априорное распределение классов равномерное, то
можно вычислить метку наиболее вероятного класса следующим образом:
(9.23)
Это называется классификатором по ближайшему центроиду, или
классификатором по ближайшему среднему классов (nearest class mean
classifier – NCM), поскольку мы относим x к классу с ближайшим μc, где под
расстоянием понимается квадрат расстояния Махаланобиса.
Мы можем заменить его любой другой метрикой и получить решающее
правило:
(9.24)
В разделе 16.2 мы обсудим, как выбирать метрики с помощью обучения,
но можно поступить по-простому и положить
d2(x, μc) = ||x - μc||2W = (x - μc)⟙(WW⟙)(x - μc) = ||W(x - μc)||2.

(9.25)

Соответствующее апостериорное распределение классов принимает вид:

(9.26)

Мы можем оптимизировать W, применив градиентный спуск к дискрими‑
нантной потере. Это называется обучением метрики ближайшего среднего классов [Men+12]. Преимущество этой техники в том, что ее можно ис‑
пользовать для обучения новым классам на одном примере, так как нужно
увидеть всего один помеченный прототип μc для каждого класса (в предпо‑
ложении, что мы уже обучили хорошую матрицу W).

9.2.6. Линейный дискриминантный анализ
Фишера*
Дискриминантный анализ – это порождающий подход к классификации,
который требует аппроксимировать признаки многомерным гауссовым рас‑
пределением (MVN). Как уже было сказано, при большой размерности это
может оказаться проблематичным. Альтернативный подход – понизить раз‑
мерность признаков x Î ℝD, а затем подобрать MVN, аппроксимирующее

Tlgm: @it_boooks

408  Линейный дискриминантный анализ
признаки меньшей размерности z Î ℝK. Самое простое – воспользоваться
матрицей линейного проецирования z = Wx, где W – матрица размера K´D.
Один из способов нахождения W дает метод главных компонент (principal
components analysis – PCA) (раздел 20.1). Однако PCA – это метод обучения
без учителя, который не принимает в расчет метки классов. Поэтому полу‑
чающиеся признаки низкой размерности необязательно оптимальны для
классификации, что иллюстрируется на рис. 9.4.

(а)

(b)

(c)

(d)

Рис. 9.4  Линейный дискриминантный анализ применительно к двухклассовому двумерному набору данных, представляющему (стандартизованные) рост
и вес взрослых мужчин и женщин. (a) Направление PCA. (b) Направление FLDA.
(c) Проекция на направление PCA дает плохое разделение на классы. (d) Проекция на направление FLDA дает хорошее разделение на классы. Построено
программой по адресу figures.probml.ai/book1/9.4

Другой подход – воспользоваться градиентными методами для оптими‑
зации логарифмического правдоподобия, которое выводится из апостери‑
орного распределения классов в пространстве низкой размерности, как об‑
суждалось в разделе 9.2.5.
Третий подход (опирающийся на спектральное разложение, а не на гра‑
диентный оптимизатор) – найти матрицу W такую, что низкоразмерные

Tlgm: @it_boooks

Гауссов дискриминантный анализ  409

данные можно классифицировать настолько хорошо, насколько возможно,
с помощью модели гауссовой условной плотности классов. Предположение
о гауссовости разумно, потому что мы вычисляем линейные комбинации
(потенциально негауссовых) признаков. Этот подход называется линейным
дискриминантным анализом Фишера (FLDA).
FLDA – интересный гибрид дискриминантного и порождающего подхода.
Недостаток его в том, что он ограничен использованием K £ C - 1 измерений
вне зависимости от D по причинам, которые мы объясним позже. В случае
двух классов это означает, что мы ищем один вектор w, на который можно
спроецировать данные. Ниже мы найдем оптимальный w для двух классов.
Затем мы обобщим решение на случай нескольких классов и, наконец, дадим
вероятностную интерпретацию этой техники.

9.2.6.1. Нахождение оптимального одномерного
направления
Теперь найдем оптимальное направление w для случая двух классов, сле‑
дуя изложению в книге [Bis06, раздел 4.1.4]. Определим условное среднее
классов:
(9.27)
Обозначим mk = w⟙μk проекцию каждого среднего на прямую w, а zn =
w xn проекцию данных на эту прямую. Дисперсия спроецированных точек
пропорциональна:


(9.28)
Наша цель – найти такое направление w, которое максимизирует рассто‑
яние между средними, m2 - m1, гарантируя в то же время компактность кла‑
стеров, что можно сделать, минимизировав их дисперсию. Тогда естественно
взять следующую целевую функцию:
(9.29)
Правую часть можно переписать в терминах w:
(9.30)
где SB – матрица межклассового рассеяния:
SB = (μ2 - μ1)(μ2 - μ1)⟙,
а SW – матрица внутриклассового рассеяния:

(9.31)

Tlgm: @it_boooks

410  Линейный дискриминантный анализ
(9.32)
Чтобы убедиться в этом, заметим, что
w⟙SBw = w⟙(μ2 - μ1)(μ2 - μ1)⟙w = (m2 - m1)(m2 - m1)

(9.33)

и
(9.34)
(9.35)
Выражение (9.30) – отношение двух скаляров; мы можем взять его произ‑
водную по w и приравнять нулю. Можно показать (упражнение 9.1), что J(w)
достигает максимума, когда
SB w = λSW w,

(9.36)

где
(9.37)
Уравнение (9.36) называется обобщенной проблемой собственных значений. Если матрица SW обратима, то эту проблему можно свести к обычной
проблеме собственных значений:
-1
SW
SB w = λw.

(9.38)

Однако в случае двух классов существует более простое решение. Именно,
поскольку
SB w = (μ2 - μ1) (μ2 - μ1)⟙w = (μ2 - μ1)(m2 - m1),

(9.39)

то из (9.38) имеем
-1
λw = SW
(μ2 - μ1)(m2 - m1),

(9.40)

-1
w µ SW
(μ2 - μ1).
(9.41)
Поскольку нас интересует только направление, а не масштабный коэффи‑
циент, можно просто положить
-1
w = SW
(μ2 - μ1).

(9.42)

Это и есть оптимальное решение в случае двух классов. Если SW µ I, т. е.
объединенная ковариационная матрица изотропна, то w пропорционален

Tlgm: @it_boooks

Гауссов дискриминантный анализ  411

вектору, соединяющему средние классов. Интуитивно понятно, что на это
направление имеет смысл проецировать, как показано на рис. 9.3.

9.2.6.2. Обобщение на большую размерность и несколько
классов
Мы можем обобщить описанную выше идею на несколько классов и подпро‑
странства более высокой размерности, найдя матрицу проекции W, которая
отображает D-мерное пространство в K-мерное. Обозначим zn = Wxn низ‑
коразмерную проекцию n-й точки. Пусть mc = (1/Nc)ån:yn=c zn – соответству‑
ющее среднее c-го класса и m = (1/N)åСc=1 Ncmc – общее среднее (то и другое
вычисляются в пространстве низкой размерности). Определим следующие
матрицы рассеяния:
(9.43)

(9.44)
Наконец, определим целевую функцию, которую требует максимизиро‑
вать1:
(9.45)
где SW и SB определены в исходном пространстве высокой размерности оче‑
видным образом (а именно вместо zn используется xn, вместо mc - μc, а вме‑

сто m - μ). Можно показать [DHS01], что решением будет W= SW
U, где U об‑


разована K первыми собственными векторами SW SB SW , в предположении,
что SW несингулярна. (Если она сингулярна, то сначала можно применить
PCA ко всем данным.)
На рис. 9.5 приведен пример применения этого метода к D = 10-мерным
речевым данным, представляющим C = 11 гласных звуков. Для визуализации
данных мы проецируем их на пространство K = 2 измерений. Как видим,
FLDA дает лучшее разделение на классы, чем PCA.
Отметим, что у FLDA есть ограничение: он может найти линейное подпро‑
странство размерности K, не большей C - 1 вне зависимости от величины D,
поскольку ранг матрицы межклассового рассеяния SB равен C - 1. (Член -1
появляется из-за члена μ, который является линейной функцией от μc.) Это
довольно серьезное ограничение, уменьшающее полезность FLDA.
1

-1 
Иногда используется другой критерий ([Fuk90]): J(W) = tr{SW
SB}= tr{(WSW W⟙)-1

(WSB W )}.

Tlgm: @it_boooks

412  Линейный дискриминантный анализ

(a)

(b)

Рис. 9.5  (a) PCA-проекция данных о гласных на двумерную плоскость.
(b) FLDA-проекция данных о гласных на двумерную плоскость. Как видно, наилучшее разделение на классы дает FLDA. На основе рис. 4.11 из [HTF09]. Построено программой по адресу figures.probml.ai/book1/9.5

9.3. наиВные байесоВские классиФикаторы
В этом разделе мы обсудим простой порождающий подход к классификации,
предполагающий, что признаки условно независимы при условии метки
класса. Это называется наивным байесовским предположением. Модель
называется «наивной», потому что на самом деле мы не ожидаем, что при‑
знаки будут независимыми, даже при обусловливании меткой класса. Одна‑
ко хотя наивное байесовское предположение неверно, оно часто приводит
к хорошо работающим классификаторам [DP97]. Одна из причин заключа‑
ется в том, что эта модель проста (в ней всего O(CD) параметров, где C – ко‑
личество классов, а D – количество признаков), а потому мало подвержена
переобучению.
Точнее, наивное байесовское предположение соответствует использова‑
нию условной плотности классов следующего вида:
(9.46)
где θdc – параметры условной плотности классов для класса c и признака d.
Поэтому апостериорное распределение меток классов имеет вид
(9.47)
где πc – априорная вероятность класса c, а θ = (π, {θdc}) – все параметры. Это
называется наивным байесовским классификатором (naive Bayes classi‑
fier – NBC).

Tlgm: @it_boooks

Наивные байесовские классификаторы  413

9.3.1. Примеры моделей
Нам по-прежнему нужно задать форму распределений вероятностей в фор‑
муле (9.46). Она зависит от типа признака xd. Ниже мы приведем несколько
примеров.
 В случае бинарных признаков, xd Î {0, 1}, можно взять распределение
Бернулли: p(x|y = c; θ) = ÕDd=1 Ber(xd |θdc), где θdc – вероятность того, что
xd = 1 в классе c. Иногда это называют многомерной бернуллиевой
наивной байесовской моделью. Например, на рис. 9.6 показаны оце‑
ненные параметры для каждого класса, когда этой моделью аппрокси‑
мируется бинаризованная версия набора данных MNIST. Подход рабо‑
тает на удивление хорошо, его верность на тестовом наборе составляет
84.3 %. (Примеры предсказаний показаны на рис. 9.7.)

Рис. 9.6  Визуализация условных плотностей классов с распределением
Бернулли для аппроксимации наивной байесовской моделью бинаризованной
версии набора данных MNIST. Построено программой по адресу figures.probml.
ai/book1/9.6

Рис. 9.7  Визуализация предсказаний, сделанных моделью на рис. 9.6, применительно к нескольким бинаризованным тестовым изображениям из MNIST.
В заголовке показан наиболее вероятный предсказанный класс. Построено
программой по адресу figures.probml.ai/book1/9.7

 В случае категориальных признаков, xd Î {1, …, K}, можно использовать
категориальное распределение: p(x|y = c; θ) = ÕDd=1 Cat(xd |θdc), где θdck –
вероятность того, что xd = k при условии y = c.
 В случае вещественных признаков, xd Î ℝ, можно использовать одно‑
2
), где
мерное гауссово распределение: p(x|y = c; θ) = ÕDd=1 𝒩(xd |μdc, σdc
2
μdc – среднее признака d, когда метка класса равна c, а σdc – его дис‑
персия. (Это эквивалентно гауссову дискриминантному анализу с диа‑
гональными ковариационными матрицами.)

9.3.2. Обучение модели
В этом разделе мы обсудим, как обучить наивный байесовский классифика‑
тор с использованием оценки максимального правдоподобия. Правдоподо‑
бие можно записать следующим образом:

Tlgm: @it_boooks

414  Линейный дискриминантный анализ
(9.48)
(9.49)
так что логарифмическое правдоподобие имеет вид:
(9.50)
Как видим, оно разлагается на член, относящийся к π, и члены CD для
каждого θdc:
(9.51)
где 𝒟y = {yn : n = 1 … N} – все метки, а 𝒟dc = {xnd : yn = c} – все значения при‑
знака d для примеров из класса c. Следовательно, мы можем оценивать эти
параметры по отдельности.
В разделе 4.2.4 мы показали, что MLE для π – это вектор эмпирических
счетчиков, π̂c = Nc /N. Оценки MLE для θdc зависят от выбора условной плот‑
ности класса для признака d. Ниже мы обсудим несколько вариантов.
 В случае дискретных признаков можно использовать категориальное
распределение. Прямолинейное обобщение результатов из разде‑
ла 4.2.4 дает следующее выражение для MLE:
(9.52)
где Ndck = åNn=1 𝕀(xnd = k; yn = c) – сколько раз признак d принимал зна‑
чение k на примерах из класса c.
 В случае бинарных признаков категориальным распределением стано‑
вится распределение Бернулли, а MLE принимает вид
(9.53)
что совпадает с эмпирической долей испытаний, в которых признак d
появлялся в примерах из класса c.
 В случае вещественных признаков можно использовать гауссово рас‑
пределение. Прямолинейное обобщение результатов из раздела 4.2.5
дает следующее выражение для MLE:
(9.54)

Tlgm: @it_boooks

Наивные байесовские классификаторы  415

(9.55)
Как видим, обучение наивного байесовского классификатора производит‑
ся очень просто и эффективно.

9.3.3. Байесовская интерпретация наивной
байесовской модели
В этом разделе мы обобщим обсуждение оценки MLE для наивных байесов‑
ских классификаторов из раздела 9.3.2 с целью вычисления апостериорного
распределения параметров. Для простоты предположим, что признаки ка‑
тегориальные, так что p(xd|θdc) = Cat(xd|θdc), где θdck = p(xd = k|y = c). В разде‑
ле 4.6.3.2 мы показали, что сопряженным априорным для категориального
правдоподобия является распределение Дирихле, p(θdc) = Dir(θdc|βdc), где βdck
можно интерпретировать как набор «псевдосчетчиков», соответствующих
счетчикам Ndck, известным из априорных данных. Аналогично мы исполь‑
зуем априорное распределение Дирихле для частот меток, p(π) = Dir(π|α).
Используя априорное сопряженное распределение, мы можем вычислить
апостериорное распределение в замкнутой форме, как было объяснено в раз‑
деле 4.6.3. Именно, имеем
(9.56)
где c = c + Nc и dck = dck + Ndck.
Пользуясь результатами из раздела 4.6.3.4, мы можем вывести апостери‑
орное прогнозное распределение следующим образом. Априорное распре‑
деление метки имеет вид p(y|𝒟) = Cat(y| ), где c = c /åc¢ c¢. Для признаков

имеем p(xd = k|y = c, 𝒟) = θdck, где
(9.57)

– апостериорное среднее параметров.
Если dck = 0, то это сводится к MLE в формуле (9.52). С другой стороны,
полагая dck = 1, мы прибавляем 1 ко всем эмпирическим счетчикам перед
нормировкой. Это называется сглаживанием прибавлением единицы,
или сглаживанием Лапласа. Например, в бинарном случае это дает
(9.58)
Оценив апостериорное распределение параметров, мы можем вычислить
прогнозное распределение метки следующим образом:

Tlgm: @it_boooks

416  Линейный дискриминантный анализ
(9.59)
Это дает полностью байесовскую форму наивной байесовской модели,
в которой все параметры исключены путем интегрирования. (В данном слу‑
чае прогнозное распределение можно получить, просто подставив средние
параметры в апостериорное распределение.)

9.3.4. Связь между наивной байесовской моделью
и логистической регрессией
В этом разделе мы покажем, что апостериорное распределение классов
p(y|x, θ) для модели NBC имеет такую же форму, как мультиномиальная ло‑
гистическая регрессия. Для простоты предположим, что все признаки дис‑
кретные и у каждого имеется K состояний, хотя результат справедлив для
произвольных распределений признаков, принадлежащих экспоненциаль‑
ному семейству.
Пусть xdk = 𝕀(xd = k), т. е. xd – унитарное кодирование признака d. Тогда
условную плотность классов можно записать следующим образом:
(9.60)
Отсюда апостериорное распределение классов имеет вид:

(9.61)
Это можно записать в виде функции softmax
(9.62)
при подходящем определении βc и γc. Это точно такая же форма, как у муль‑
тиномиальной логистической регрессии в разделе 2.5.3. Разница в том, что
в случае наивной байесовской модели мы оптимизируем совместное прав‑
доподобие Õn p(yn, xn|θ), тогда как в случае логистической регрессии – услов‑
ное правдоподобие Õn p(yn|xn, θ). В общем случае результаты различны (см.
упражнение 10.3).

Tlgm: @it_boooks

Порождающие и дискриминантные классификаторы  417

9.4. порождающие и дискриминантные
классиФикаторы
Модель вида p(x, y) = p(y)p(x|y) называется порождающим классификатором, потому что ее можно использовать для порождения примеров x из
каждого класса y. А модель вида p(y|x) называется дискриминантным классификатором, потому что она позволяет только различать классы. Ниже
мы опишем плюсы и минусы порождающего и дискриминантного подходов
к классификации.

9.4.1. Преимущества дискриминантных
классификаторов
Основные преимущества дискриминантных классификаторов таковы.
 Повышенная верность предсказаний. Дискриминантные класси‑
фикаторы зачастую дают гораздо более верные предсказания, чем по‑
рождающие [NJ02]. Причина в том, что условное распределение p(y|x)
обычно гораздо проще (а значит, легче обучается), чем совместное
распределение p(y, x), как показано на рис. 9.8. В частности, дискрими‑
нантные модели не «тратят усилий» на моделирование распределения
входных признаков.

Рис. 9.8  Условные плотности классов p(x|y = c) (слева) могут быть более
сложными, чем апостериорные распределения классов p(y = c|x) (справа). На
основе рис. 1.27 из [Bis06]. Построено программой по адресу figures.probml.
ai/book1/9.8

 Допускают предварительную обработку признаков. Важное до‑
стоинство дискриминантных методов состоит в том, что они позволя‑
ют предварительно обрабатывать входные данные любым способом.
Например, можно выполнить полиномиальное разложение входных
признаков или заменить строку слов векторами погружения (см. раз‑

Tlgm: @it_boooks

418  Линейный дискриминантный анализ
дел 20.5). Определить порождающую модель для таких предобработан‑
ных данных часто бывает трудно, потому что новые признаки могут
быть сложным образом коррелированы, что затрудняет построение
модели.
 Хорошо откалиброванные вероятности. Некоторые порождающие
классификаторы, например наивный байесовский (см. раздел 9.3),
делают сильные предположения о независимости, далеко не всегда
верные. Это может приводить к экстремальным апостериорным рас‑
пределениям вероятностей классов (сосредоточенным вблизи 0 или 1).
Дискриминантные модели, например логистическая регрессия, зача‑
стую лучше откалиброваны в части оценок вероятностей, хотя иногда
и они нуждаются в корректировке (см., например, [NMC05]).

9.4.2. Преимущества порождающих
классификаторов
Основные преимущества порождающих классификаторов таковы.
 Простота обучения. Порождающие классификаторы часто очень лег‑
ко поддаются обучению. Например, в разделе 9.3.2 мы показали, как
просто обучить наивный байесовский классификатор с помощью под‑
счета и усреднения. Напротив, для логистической регрессии необходи‑
мо решить сложную задачу оптимизации (детали см. в разделе 10.2.3),
а для обучения нейронных сетей – задачу невыпуклой оптимизации.
То и другое требует гораздо больше времени.
 Легко справляются с отсутствием части входных признаков. Ино‑
гда часть входных данных (компонентов x) недоступна наблюдению.
В порождающем классификаторе на такой случай есть простой метод,
описанный в разделе 1.5.5. А в дискриминантном классификаторе не
существует теоретического решения проблемы, потому что модель
предполагает, что x всегда доступен и по нему можно обусловить.
 Может обучаться классам по отдельности. В порождающем клас‑
сификаторе мы оцениваем параметры условнойплотности каждого
класса независимо (как показано в разделе 9.3.2), поэтому не нужно
заново обучать модель после добавления новых классов. С другой сто‑
роны, в дискриминантных моделях все параметры взаимодействуют
между собой, поэтому после добавления класса модель должна быть
переобучена целиком.
 Могут справляться с непомеченными обучающими данными. По‑
рождающие модели просто использовать для обучения с частичным
привлечением учителя, когда в модели могут присутствовать как по‑
меченные данные 𝒟xy = {(xn, yn)}, так и непомеченные, 𝒟x = {xn}. В дис‑
криминантных моделях это труднее, потому что не существует един‑
ственно оптимального способа задействовать 𝒟x.

Tlgm: @it_boooks

Упражнения  419

9.4.3. Обработка отсутствующих признаков
Иногда во время обучения или тестирования часть входных данных x от‑
сутствует. В порождающем классификаторе эту ситуацию можно разрешить,
исключив отсутствующие значения путем маргинализации. (Мы предпола‑
гаем, что отсутствие признака не несет информации о его потенциальном
значении.) Напротив, в дискриминантной модели нет однозначно лучшего
способа обработать отсутствующие значения, о чем шла речь в разделе 1.5.5.
Например, предположим, что отсутствует значение x1. Мы просто должны
вычислить
(9.63)
(9.64)
В гауссовом дискриминантном анализе можно исключить x1, воспользо‑
вавшись формулами из раздела 3.2.3.
Если позволить себе наивное байесовское предположение, то ситуация еще
упрощается, потому что можно вообще игнорировать член правдоподобия
для x1. Это следует из того, что
(9.65)
где мы воспользовались тем фактом, что åx1 p(x1|y = c, θ1c) = 1.

9.5. упражнения
Упражнение 9.1 [вывод линейного дискриминанта Фишера].
Покажите, что точка максимума J(w) =
SBw = λSW w, где λ =

. Указание: вспомните, что производная частного

двух скалярных функций равна
Также вспомните, что

удовлетворяет равенству

x⟙Ax = (A + A⟙)x.

где f ¢ =

f(x) и g¢ =

g(x).

Глава

Tlgm: @it_boooks

10

Логистическая
регрессия
10.1. ВВедение
Логистическая регрессия – широко применяемая модель дискриминантной
классификации p(y|x; θ), где x Î ℝD – входной вектор фиксированной раз‑
мерности, y Î {1, …, C} – метка класса, а θ – параметры. Если C = 2, то говорят
о бинарной логистической регрессии, а если C > 2 – то о мультиномиальной, или многоклассовой.

10.2. бинарная логистиЧеская регрессия
Бинарной логистической регрессии соответствует следующая модель:
p(y|x, θ) = Ber(y|σ(w⟙x + b)),

(10.1)

где σ – сигмоидная функция, определенная в разделе 2.4.2, w – веса, b – сме‑
щение, а θ = (w, b) – все параметры. Иными словами,
(10.2)
где a = w⟙x + b – логарифм отношения шансов, log(p/(1 - p)), где p = p(y =
1|x; θ), как было объяснено в разделе 2.4.2. (В МО эту величину обычно на‑
зывают логитом или предактивацией.)
Иногда мы предпочитаем использовать метки y Î {-1, +1} вместо y Î {0, 1}.
Вероятности этих альтернативных меток можно вычислить по формуле
p(y |x, θ) = σ(y a),

(10.3)

так как σ(-a) = 1 - σ(a). Такая чуть более компактная нотация широко ис‑
пользуется в литературе по МО.

Tlgm: @it_boooks

Бинарная логистическая регрессия  421

10.2.1. Линейные классификаторы
Сигмоида дает вероятность того, что метка класса y = 1. Если потеря при
неправильной классификации каждого класса одинакова, то оптимальным
решением будет предсказывать y = 1 тогда и только тогда, когда класс 1 ве‑
роятнее класса 0, как было объяснено в разделе 5.1.2.2. Таким образом,
(10.4)
где a = w⟙x + b.
Таким образом, мы можем записать функцию предсказания в виде
(10.5)
где w⟙x = ⟨w, x⟩ – скалярное произведение вектора весов w и вектора при‑
знаков x. Эта функция определяет линейную гиперплоскость с нормальным
вектором w Î ℝD и смещением b Î ℝ от начала координат.
Уравнение (10.5) можно понять, глядя на рис. 10.1a. Здесь мы видим
плоскость в трехмерном пространстве признаков, проходящую через точ‑
ку x0, и нормаль к ней w. Точки на поверхности удовлетворяют уравнению
w⟙(x - x0) = 0. Определив b = -w⟙x0, мы можем переписать это уравнение
в виде w⟙x + b = 0. Эта плоскость разделяет трехмерное пространство на два
полупространства и называется решающей границей. Если удается иде‑
ально разделить множество обучающих примеров такой линейной границей
(не допустив ни одной ошибки классификации на обучающем наборе), то
говорят, что данные линейно разделимы. На рис. 10.1b видно, что версия
набора данных об ирисах с двумя классами и двумя признаками не допускает
линейного разделения.

(a)

(b)

Рис. 10.1  (a) Визуализация двумерной плоскости в трехмерном пространстве и нормали к поверхности w, проходящей через точку x0 = (x0, y0, z0). Детали
см. в тексте. (b) Визуализация оптимальной линейной решающей границы, индуцированной логистической регрессией для варианта набора данных об ирисах с двумя классами и двумя признаками. Построено программой по адресу
figures.probml.ai/book1/10.1. На основе рис. 4.24 из [Gér19]

Tlgm: @it_boooks

422  Логистическая регрессия
В общем случае имеет место неопределенность относительно правильной
метки класса, так что нужно предсказывать распределение вероятностей
меток, а не просто решать, по какую сторону решающей границы находится
метка. На рис. 10.2 изображены графики p(y = 1|x1, x2; w) = σ(w1x1 + w2x2) для
различных векторов весов w. Вектор w определяет ориентацию решающей
границы, а его модуль, ||w|| =

управляет крутизной сигмоиды,

а значит, уверенностью в предсказаниях.

Рис. 10.2  Графики σ(w1x1 + w2x2). Здесь вектор w = (w1, w2) определяет нормаль к решающей границе. Для точек справа от нее σ(w⟙x) > 0.5,
а для точек слева σ(w⟙x) < 0.5. На основе рис. 39.3 из [Mac03]. Построено
программой по адресу figures.probml.ai/book1/10.2

10.2.2. Нелинейные классификаторы
Нередко задачу можно сделать линейно разделимой, предварительно обра‑
ботав входные данные тем или иным способом. Именно, обозначим ϕ(x) –
преобразованный вектор входных признаков. Например, предположим, что
ϕ(x1, x2) = [1, x12, x22], и пусть w = [-R2, 1, 1]. Тогда w⟙ϕ(x) = x12 + x22 - R2, так что
решающая граница (на которой f(x) = 0) определяет окружность радиуса R,
показанную на рис. 10.3. Результирующая функция f по-прежнему линейно
зависит от параметров w, что важно для упрощения задачи обучения, как
мы увидим в разделе 10.2.3. Однако мы можем пойти еще дальше и обучить
параметры экстрактора признаков ϕ(x) в дополнение к линейным весам w;
как это делается, мы обсудим в части III.
На рис. 10.3 мы использовали квадратичное преобразование признаков.
Можно использовать и полином большей степени, как в разделе 1.2.2.2. На
рис. 1.7 был показан результат использования полиномов степени до K в дву‑
мерной задаче логистической регрессии. Как и на рис. 1.7, мы видим, что при

Tlgm: @it_boooks

Бинарная логистическая регрессия  423

увеличении числа параметров модель становится сложнее, что в конечном
итоге приводит к переобучению. Как бороться с переобучением, мы обсудим
в разделе 10.2.7.
х12

х1

х2
R

х22

Рис. 10.3  Как можно преобразовать квадратичную решающую границу
в линейную, заменив признаки x = (x1, x2) на ϕ(x) = (x12, x22). Печатается с разрешения Жана-Филиппа Верта

10.2.3. Оценка максимального правдоподобия
В этом разделе мы обсудим, как оценивать параметры модели логистической
регрессии с помощью оценки максимального правдоподобия.

10.2.3.1. Целевая функция
Отрицательное логарифмическое правдоподобие (масштабированное на
размер набор данных N) вычисляется следующим образом (мы предполага‑
ем, что смещение b включено в вектор весов w):
(10.6)
(10.7)
(10.8)
(10.9)
где μn = σ(an) – вероятность класса 1, an = w⟙xn – логарифм отношения шансов,
а ℍ(yn, μn) – бинарная перекрестная энтропия:
ℍ(p, q) = -[p log q + (1 - p)log(1 - q)].

(10.10)

Если взять y n Î {-1, +1} вместо yn Î {0, 1}, то эту формулу можно перепи‑
сать в виде:

Tlgm: @it_boooks

424  Логистическая регрессия
(10.11)
(10.12)
(10.13)
Однако в этой книге мы в основном будем использовать нотацию yn Î
{0, 1}, потому что она проще обобщается на случай нескольких классов (раз‑
дел 10.3) и позволяет отчетливее увидеть связь с перекрестной энтропией.

10.2.3.2. Оптимизация целевой функции
Для нахождения оценки максимального правдоподобия (MLE) мы должны
решить уравнение:
Ñw NLL(w) = g(w) = 0.

(10.14)

Для его решения можно использовать любой градиентный алгоритм оп‑
тимизации, например один из тех, что обсуждались в главе 8. Конкретный
пример будет приведен в разделе 10.2.4. Но сначала нужно вывести градиент,
и этим мы займемся ниже.

(a)

(b)

(c)

(d)

Рис. 10.4  Полиномиальное преобразование признаков применительно
к двумерной задаче логистической регрессии с двумя классами. (a) Степень
полинома K = 1. (b) Степень полинома K = 2. (c) Степень полинома K = 4. (d) Зависимость ошибки на обучающем и на тестовом наборе от степени полинома.
Построено программой по адресу figures.probml.ai/book1/10.4

Tlgm: @it_boooks

Бинарная логистическая регрессия  425

10.2.3.3. Вывод градиента
Хотя для вычисления градиента отрицательного логарифмического прав‑
доподобия (NLL) можно воспользоваться методами автоматического диф‑
ференцирования (раздел 13.3), это легко сделать и явно, как показано ниже.
По счастью, получающиеся уравнения допускают простую и интуитивно по‑
нятную интерпретацию, которую можно использовать и в других методах, –
и мы увидим, как именно.
Для начала заметим, что
(10.15)
где an = w⟙xn и μn = σ(an). Отсюда по правилу дифференцирования сложной
функции (и правилам векторного исчисления, рассмотренным в разделе 7.8)
имеем
(10.16)
Градиент члена смещения можно вывести точно так же, подставив в фор‑
мулу выше вход xn0 = 1. Однако для простоты мы проигнорируем смещение.
Следовательно,
(10.17)
Аналогично
(10.18)
Таким образом, градиент NLL равен:
(10.19)
(10.20)
(10.21)
Если интерпретировать en = μn - yn как сигнал ошибки, то легко видеть,
что градиент назначает каждому входу xn вес, равный его ошибке, а затем
усредняет результаты. Заметим, что градиент можно записать в матричной
форме следующим образом:
(10.22)

Tlgm: @it_boooks

426  Логистическая регрессия

10.2.3.4. Вывод гессиана
Градиентные оптимизаторы ищут стационарную точку, в которой g(w) = 0.
Это может быть глобальный или локальный оптимум. Чтобы с уверенностью
утверждать, что стационарная точка является глобальным оптимумом, мы
должны показать, что целевая функция выпуклая; причины были объясне‑
ны в разделе 8.1.1.1. Интуитивно это означает, что NLL имеет форму миски
с единственной нижней точкой, и это действительно так, как явствует из
рис. 10.5b.
Формально мы должны доказать, что гессиан положительно полуопреде‑
лен, что сейчас и сделаем. (Необходимые сведения из линейной алгебры см.
в главе 7.) Можно показать, что гессиан имеет вид
(10.23)
где
S

diag(μ1(1 - μ1), …, μN(1 - μN)).

(10.24)

Мы видим, что матрица H положительно определенная, так как для любого
ненулевого вектора v имеем
v⟙X⟙SXv = (v⟙X⟙S½)(S½Xv) = ||v⟙X⟙S½||22 > 0.

(a)

(10.25)

(b)

Рис. 10.5  Поверхность потери NLL для бинарной логистической регрессии
применительно к набору данных об ирисах с одним признаком и одним членом
смещения. Цель состоит в минимизации функции. Построено программой по
адресу figures.probml.ai/book1/10.5

Это следует из того, что μn > 0 для всех n, так как мы используем сигмо‑
идную функцию. Следовательно, NLL строго выпукла. Однако на практике
значения μn, близкие к 0 или 1, могут стать причиной почти сингулярности
гессиана. Этого можно избежать с помощью 𝓁2-регуляризации, как будет
описано в разделе 10.2.7.

Tlgm: @it_boooks

Бинарная логистическая регрессия  427

10.2.4. Стохастический градиентный спуск
Наша цель – решить следующую задачу оптимизации
(10.26)
где ℒ(w) – функция потерь, в данном случае отрицательное логарифмическое
правдоподобие:
(10.27)
где μn = σ(an) – вероятность класса 1, а an = w⟙xn – логарифм отношения
шансов.
Существует много алгоритмов решения задачи (10.26), они обсуждались
в главе 8. Но, пожалуй, самый простой – стохастический градиентный спуск
(раздел 8.4). Используя мини-пакет размера 1, мы получим следующую про‑
стую формулу обновления:
wt+1 = wt - ρtÑw NLL(wt) = wt - ρt(μn - yn)xn,

(10.28)

где мы заменили среднее во всем N примерам в градиенте (10.21) одним
случайно выбранным примером n. (Индекс n меняется вместе c t.)
Поскольку мы знаем, что целевая функция выпукла (см. раздел 10.2.3.4),
можно показать, что эта процедура сходится к глобальному оптимуму при
условии, что скорость обучения убывает с подходящей быстротой (см. раз‑
дел 8.4.3). Скорость сходимости можно улучшить, применяя методы умень‑
шения дисперсии, например SAGA (раздел 8.4.5.2).

10.2.5. Алгоритм перцептрона
Перцептрон, впервые описанный в работе [Ros58], – это детерминированный
бинарный классификатор вида
f(xn; θ) = 𝕀(w⟙xn + b > 0).

(10.29)

wt+1 = wt - ρt(ŷ n - yn)xn,

(10.30)

Его можно рассматривать как ограниченный вариант бинарного класси‑
фикатора на базе логистической регрессии, в которой сигмоидная функция
σ(a) заменена ступенчатой функцией Хевисайда H(a) 𝕀(a > 0). Сравнение
этих двух функций приведено на рис. 2.10.
Поскольку функция Хевисайда не дифференцируема, мы не можем ис‑
пользовать для обучения этой модели градиентные методы оптимизации.
Вместо этого Розенблатт предложил алгоритм обучения перцептрона. Ос‑
новная его идея – начать со случайных весов, а затем итеративно обновлять
их, если модель делает ошибочное предсказание. Точнее, обновление весов
производится по формуле

Tlgm: @it_boooks

428  Логистическая регрессия
где (xn, yn) – помеченный пример, выбранный на итерации t, а ρt – скорость
обучения, или размер шага. (Мы можем задать размер шага равным 1, по‑
скольку абсолютные величины весов не влияют на решающую границу.) Про‑
стую реализацию этого алгоритма см. в коде по адресу code.probml.ai/book1/
perceptron_demo_2d.
У правила обновления перцептрона (10.30) есть интуитивно понятная
интерпретация: если предсказание правильно, то никаких изменений не
вносится, в противном случае веса изменяются в таком направлении, чтобы
повысить вероятность правильного ответа. Точнее, если yn = 1 и ŷ n = 0, то
имеем wt+1 = wt + xn, а если yn = 0 и ŷ n = 1, то wt+1 = wt - xn.
Сравнивая формулы (10.30) и (10.28), мы замечаем, что правило обнов‑
ления эквивалентно правилу обновления СГС для бинарной логистической
регрессии с аппроксимацией, предполагающей замену мягких вероятностей
μn = p(yn = 1|xn) жесткими метками ŷ n = f(xn). Преимущество метода перцеп‑
трона заключается в том, что не нужно вычислять вероятности; это может
быть полезно, когда пространство меток очень велико. А недостаток в том,
что метод сходится, только кода данные линейно разделимы [Nov62], в том
время как алгоритм СГС, применяемый для минимизации NLL в логисти‑
ческой регрессии, всегда сходится к глобально оптимальной MLE, даже если
данные линейно неразделимы.
В разделе 13.2 мы обобщим перцептроны на нелинейные функции и тем
самым сделаем их куда более полезными.

10.2.6. Метод наименьших квадратов
с итеративным пересчетом весов
Градиентный спуск – метод оптимизации первого порядка, т. е. в нем для
навигации по поверхности функции потерь используются только первые
производные. Это может оказаться медленно, особенно когда одни направ‑
ления пространства ведут резко вниз, а у других градиент более пологий, как
на рис. 10.5a. В таких задачах гораздо быстрее было бы использовать метод
оптимизации второго порядка, принимающий во внимание кривизну.
Мы подробно обсуждали такие методы в разделе 8.3. Здесь же мы рассмо‑
трим только простой метод второго порядка, работающий для логистической
регрессии. Мы ограничимся постановкой с полным пакетом (т. е. предпола‑
гаем, что N мало), потому что заставить методы второго порядка работать
в стохастической постановке труднее (описание некоторых методов такого
рода см., например, в [Byr+16; Liu+18b]).
Классическим методом второго порядка является метод Ньютона. В нем
итеративное обновление имеет вид
wt+1 = wt - ρt Ht-1gt,

(10.31)

где матрица
Ht

Ñ2ℒ(w)|wt = Ñ2ℒ(wt) = H(wt)

(10.32)

Tlgm: @it_boooks

Бинарная логистическая регрессия  429

предполагается положительно определенной, чтобы обновление было кор‑
ректно определено. Если гессиан точный, то размер шага можно положить
равным ρt = 1.
Теперь применим этот метод к логистической регрессии. Напомним (см.
раздел 10.2.3.3), что градиент и гессиан соответственно равны
(10.33)
(10.34)
(10.35)
Поэтому обновление Ньютона имеет вид:
wt+1 = wt - H-1gt
= wt + (X⟙St X)-1X⟙(y - μt)
= (X⟙St X)-1 [(X⟙St X)wt + X⟙(y - μt)]
= (X⟙St X)-1X⟙[St Xwt + y - μt]
= (X⟙St X)-1X⟙St zt,

(10.36)
(10.37)
(10.38)
(10.39)
(10.40)

где мы определили рабочую характеристику
zt

Xwt + St-1(y - μt)

(10.41)

и St = diag(μt,n(1 - μt,n)). Поскольку St – диагональная матрица, мы можем
переписать цели в компонентной форме:
(10.42)
Формула (10.40) – пример взвешенной задачи наименьших квадратов (раз‑
дел 11.2.2.4), когда минимизируется функция:
(10.43)
Поэтому алгоритм в целом называется методом наименьших квадратов с итеративным пересчетом весов (iteratively reweighted least squares –
IRLS), так как на каждой итерации мы решаем взвешенную задачу наимень‑
ших квадратов, в которой матрица весов St изменяется. Псевдокод приведен
в алгоритме 2.
Заметим, что критерий Фишера – то же самое, что IRLS, с тем отличием,
что гессиан фактического логарифмического правдоподобия заменяется его
математическим ожиданием, т. е. мы используем информационную матрицу
Фишера (раздел 4.7.2) вместо H. Так как информационная матрица Фишера
не зависит от данных, ее можно вычислить заранее, в отличие от гессиана,

Tlgm: @it_boooks

430  Логистическая регрессия
который должен пересчитываться на каждой итерации. В задачах с большим
числом параметров это может оказаться быстрее.
Алгоритм 2. Метод наименьших квадратов с итеративным пересчетом
весов (IRLS)
1 w = 0;
2 repeat
3
for n = 1 : N do
4
a n = w ⟙x n;
5
μn = σ(an);
6
sn = μn(1 - μn) ;
7
zn = an + (yn - μn)/sn;
8
S = diag(s1:N);
9
w = (X⟙SX)-1X⟙Sz;
10 until сошелся;

10.2.7. Оценка MAP
На рис. 10.4 мы видели, что модель логистической регрессии может оказаться
переобученной, если параметров слишком много по сравнению с числом об‑
учающих примеров. Это следствие того, что метод максимального правдопо‑
добия может находить веса, заставляющие решающую границу «извиваться»
с целью подогнать ее под примеры. Чтобы получить такое поведение, часто
требуется задать большие значения весов. Например, на рис. 10.4 при ис‑
пользовании степени K = 1 мы нашли, что MLE двух входных весов (смеще‑
ние игнорируется) имеет вид:
ŵ = [0.51291712, 0.11866937].

(10.44)

Если степень K = 2, то получаем
ŵ = [2.27510513, 0.05970325, 11.84198867, 15.40355969, 2.51242311].

(10.45)

А при K = 4 имеем
ŵ = [-3.07813766, …, -59.03196044, 51.77152431, 10.25054164].

(10.46)

Один из способов уменьшить переобучение – предотвратить появление
таких больших весов. Для этого можно взять априорное гауссово распреде‑
ление с нулевым средним, p(w) = 𝒩(w|0, CI), и использовать оценку MAP, как
было описано в разделе 4.5.3. Новая целевая функция принимает вид
ℒ(w) = NLL(w) + λ||w||22,

(10.47)

где ||w||22 = åDd=1 wd2 и λ = 1/C. Это называется 𝓁2‑регуляризацией, или уменьшением весов. Чем больше значение λ, тем больше параметры штрафуются
за излишнюю величину (отклонение от нулевого априорного среднего), см.
иллюстрацию на рис. 10.6.

Tlgm: @it_boooks

Бинарная логистическая регрессия  431

(a)

(b)

(c)

(d)

Рис. 10.6  Уменьшение весов с дисперсией C применительно к двумерной
задаче логистической регрессии с двумя классами и полиномом четвертой степени. (a) C = 1. (b) C = 316. (c) C = 100 000. (d) Зависимость ошибки на обучающем
и на тестовом наборе от C. Построено программой по адресу figures.probml.ai/
book1/10.6

Мы можем вычислить оценку MAP, немного изменив входные данные
для рассмотренных выше градиентных алгоритмов оптимизации. Градиент
и гессиан штрафуемого отрицательного логарифмического правдоподобия
имеют вид:
PNLL(w) = NLL(w) + λw⟙w;

(10.48)

ÑwPNLL(w) = g(w) + 2λw;

(10.49)

Ñw2 PNLL(w) = H(w) + 2λI,

(10.50)

где g(w) – градиент, а H(w) – гессиан нештрафуемого NLL.
Интересный факт, связанный с 𝓁2-регуляризированной логистической ре‑
грессией, см. в упражнении 10.2.

10.2.8. Стандартизация
В разделе 10.2.7 для предотвращения переобучения использовалось изо‑
тропное априорное распределение 𝒩(w|0, λ-1I). Здесь неявно предполага‑
ется, что величины всех весов близки, что в свою очередь означает, что мы

Tlgm: @it_boooks

432  Логистическая регрессия
ожидаем от входных признаков примерно одинаковой величины. Однако во
многих наборах данных шкалы измерения входных признаков различны.
В таких случаях принято стандартизировать данные, так чтобы все при‑
знаки имели нулевое среднее и единичную дисперсию. Для этого нужно
вычесть из каждого признака среднее и разделить результат на стандартное
отклонение:
(10.51)
(10.52)
(10.53)
Альтернатива – использовать минимаксное шкалирование, когда мас‑
штаб входных данных изменяется так, чтобы они попадали в интервал [0, 1].
Оба метода гарантируют, что признаки будут сравнимы по величине, что
помогает обучать модель и делать статистические выводы, даже если оценка
MAP не используется (см. обсуждение этого вопроса в разделе 11.7.5).

10.3. мультиномиальная логистиЧеская
регрессия
Мультиномиальной логистической регрессией называется дискрими‑
нантная модель классификации вида
p(y|x; θ) = Cat(y|𝒮(Wx + b)),

(10.54)

где x Î ℝD – вектор входов, y Î {1, …, C} – метка класса, 𝒮() – функция softmax
(раздел 2.5.2), W – матрица весов размера C´D, b – C-мерный вектор сме‑
щения, θ = (W, b) – все параметры. Далее мы будем опускать член b, пред‑
полагая, что в начало каждого вектора x добавлена 1, а к первому столбцу W
прибавлен b. Таким образом, θ = W.
Если обозначить a = Wx C-мерный вектор логитов, то формулу выше
можно будет переписать следующим образом:
(10.55)
В силу условия нормировки åCc=1 p(yn = c|xn; θ) = 1 можно положить wC = 0.
(Например, в случае бинарной логистической регрессии, когда C = 2, мы
обучаем только один вектор весов.) Поэтому параметрам θ соответствуют
матрица весов W размера (C - 1)´D, где xn Î ℝD.

Tlgm: @it_boooks

Мультиномиальная логистическая регрессия  433

Заметим, что в этой модели предполагается, что метки взаимно исклю‑
чают друг друга, т. е. истинна только одна метка. В некоторых приложениях
(например, при аннотировании изображений) мы хотим, чтобы можно
было предсказывать для входного вектора одну или несколько меток; в таком
случае пространство выходов будет множеством подмножеств {1, …, C}. Это
называется многозначной классификацией, в отличие многоклассовой
классификации. Ее можно рассматривать как сопоставление входу битового
вектора 𝒴 = {0, 1}C, c-й элемент которого равен 1, если присутствует c-я метка.
Решать такую задачу можно, воспользовавшись модифицированным вариан‑
том бинарной логистической регрессии с несколькими выходами:
(10.56)

10.3.1. Линейные и нелинейные классификаторы
Логистическая регрессия вычисляет линейные решающие границы в про‑
странстве входов, как показано на рис. 10.7a для случая, когда x Î ℝ2 и име‑
ется C = 3 класса. Однако мы всегда можем преобразовать входы так, что
границы станут нелинейными. Например, заменим x = (x1, x2) на
ϕ(x) = [1, x1, x2, x12, x22, x1x2].

(10.57)

Тогда мы сможем создать квадратичные решающие границы, как показано
на рис. 10.7b.

(a)

(b)

Рис. 10.7  Пример 3-классовой логистической регрессии с 2d входами.
(a) Оригинальные признаки. (b) Квадратичные признаки. Построено программой по адресу figures.probml.ai/book1/10.7

10.3.2. Оценка максимального правдоподобия
В этом разделе мы обсудим, как вычислить оценку максимального прав‑
доподобия (MLE) путем минимизации отрицательного логарифмического
правдоподобия (NLL).

Tlgm: @it_boooks

434  Логистическая регрессия

10.3.2.1. Целевая функция
NLL имеет вид
(10.58)
где μnc = p(ync = 1|xn, θ) = 𝒮( f(xn; θ))c, yn – унитарное кодирование метки (т. е.
ync = 𝕀(yn = c)), а ℍ(yn, μn) – перекрестная энтропия:
(10.59)

10.3.2.2. Оптимизация целевой функции
Для нахождения оптимума необходимо решить уравнение Ñw NLL(w) = 0, где
w – векторизованная матрица весов W, а член смещения для простоты обо‑
значений игнорируется. Найти стационарную точку этой функции мы можем
с помощью любого градиентного оптимизатора, несколько примеров будет
приведено ниже. Но сначала выведем градиент и гессиан, а затем докажем,
что целевая функция выпукла.

10.3.2.3. Вывод градиента
Чтобы вывести градиент NLL, необходимо воспользоваться якобианом
функции softmax, который выглядит следующим образом (вы докажете это
в упражнении 10.1):
(10.60)
где δcj = 𝕀(c = j). Например, если имеется 3 класса, то якобиан имеет вид:
(10.61)
В матричной форме это можно записать так:
(10.62)
где ⊙ – поэлементное произведение, μ1⟙ копирует μ в столбцы, а 1μ⟙ копи‑
рует μ в строки.
Теперь выведем градиент NLL для одного примера с индексом n. Для этого
нужно будет развернуть матрицу весов размера D´C в вектор w длины CD
(или (C - 1)D, если одному классу назначен фиксированный нулевой вес), т. е.
конкатенировать все ее строки и затем транспонировать в вектор-столбец.

Tlgm: @it_boooks

Мультиномиальная логистическая регрессия  435

Обозначим wj вектор весов, ассоциированный с классом j. Градиент по этому
вектору равен (здесь используется дельта-символ Кронекера δjc, равный 1,
если j = c, и 0 в противном случае):
(10.63)
(10.64)
(10.65)
(10.66)
(10.67)
Повторив это вычисление для каждого класса, мы получим полный вектор
градиента. Градиент всего NLL получается суммированием по примерам, что
дает матрицу размера D´C:
(10.68)
Форма такая же, как в случае бинарной логистической регрессии, – член
ошибки, умноженный на вход.

10.3.2.4. Вывод гессиана
В упражнении 10.1 вам будет предложено доказать, что гессиан NLL в случае
мультиномиальной логистической регрессии равен:
(10.69)
где A⊗B – произведение Кронекера (раздел 7.2.5). Иными словами, блочная
подматрица c, c¢ имеет вид:
(10.70)
Например, при трех признаках и двух классах эта формула принимает вид:
(10.71)

(10.72)

Tlgm: @it_boooks

436  Логистическая регрессия
где Xn = xn xn⟙. В упражнении 10.1 также предлагается доказать, что это по‑
ложительно определенная матрица, т. е. целевая функция выпуклая.

10.3.3. Градиентная оптимизация
Градиент, выведенный в разделе 10.3.2.3, можно использовать для построе‑
ния алгоритма СГС. Аналогично гессиан из раздела 10.3.2.4 можно исполь‑
зовать для построения алгоритма оптимизации второго порядка. Однако
вычисление гессиана обычно обходится дорого, так что его часто аппрокси‑
мируют с помощью квазиньютоновских методов, например BFGS с ограни‑
ченной памятью (BFGS – инициалы авторов: Бройден, Флетчер, Гольдфарб
и Шанно). Детали см. в разделе 8.3.2. Другой подход, похожий на IRLS, описан
в разделе 10.3.4.
Все эти методы опираются на вычисление градиента логарифмического
правдоподобия, что в свою очередь требует вычисления нормированных
вероятностей, которые можно вычислить по вектору логитов a = Wx:
p(y = c|x) = exp(ac - lse(a)),

(10.73)

где lse – функция log-sum-exp, определенная в разделе 2.5.4. По этой причине
во многих программных библиотеках определен вариант потери перекрест‑
ной энтропии, принимающий на входе ненормированные логиты.

10.3.4. Граничная оптимизация
В этом разделе мы рассмотрим подход к обучению модели логистической
регрессии с применением класса алгоритмов граничной оптимизации, опи‑
санного в разделе 8.7. Основная идея заключается в итеративном построении
нижней границы максимизируемой функции с последующим обновлением
границы, так чтобы она «пододвигалась ближе» к истинной функции. Оп‑
тимизировать границу часто бывает проще, чем обновлять функцию непо‑
средственно.
Если LL(θ) – вогнутая функция, которую мы хотим максимизировать, то
один из способов получить нижнюю границу – воспользоваться границей
ее гессиана, т. е. найти такую отрицательно определенную матрицу B, что
H(θ) ≻ B. В таком случае можно показать, что
LL(θ) ³ LL(θt) + (θ - θt)⟙g(θt) + (θ - θt)⟙B(θ - θt),

(10.74)

где g(θt) = ÑLL(θt). Если обозначить Q(θ, θt) правую часть (10.74), то обнов‑
ление принимает вид:
θt+1 = θt - B-1g(θt).

(10.75)

Это похоже на обновление в методе Ньютона, только используется не
фиксированная матрица B, а матрица H(θt), которая изменяется на каждой

Tlgm: @it_boooks

Мультиномиальная логистическая регрессия  437

итерации. Таким образом, мы можем получить некоторые преимущества
методов второго порядка, выполнив меньше вычислений.
Применим эту идею к логистической регрессии, следуя работе [Kri+05].
Обозначим μn(w) = [p(yn = 1|xn, w), …, p(yn = C|xn, w)] и yn = [𝕀(yn = 1), …,
𝕀(yn = C)]. Мы хотим максимизировать логарифмическое правдоподобие,
имеющее вид:
(10.76)
Его градиент равен (вывод см. в разделе 10.3.2.3)
(10.77)
где Ä обозначает произведение Кронекера (в данном случае – просто внеш‑
нее произведение двух векторов). Гессиан равен (вывод см. в разделе 10.3.2.4)
(10.78)
Нижнюю границу гессиана можно построить, как описано в работе [Boh92]:
(10.79)
где I – C-мерная единичная матрица, а 1 – C-мерный вектор, состоящий из
одних единиц1. В бинарном случае эта формула принимает вид:
(10.80)
Это следует из того, что μn £ 0.5, так что -(μn - μn2) ³ -0.25.
Мы можем воспользоваться этой нижней границей для построения MMалгоритма нахождения MLE. Обновление принимает вид:
w t+1 = w t - B-1g(w t).

(10.81)

Такая итерация может оказаться быстрее IRLS (раздел 10.2.6), потому что
мы можем заранее вычислить B-1 за время, не зависящее от N, вместо того
чтобы обращать гессиан на каждой итерации. Например, рассмотрим бинар‑
ный случай, когда g t = ÑLL(w t) = X⟙(y - μt), где μt = [pn(w t), (1 - pn(w t))]Nn=1.
Обновление принимает вид:
w t+1 = w t - 4(X⟙X)-1g t.
1

(10.82)

Если зафиксировать wC = 0, то в этих векторах и матрицах можно использовать
C - 1 измерений.

Tlgm: @it_boooks

438  Логистическая регрессия
Сравните это с формулой (10.37), имеющей вид
w t+1 = w t - H-1g(w t) = w t - (X⟙StX)-1g t,

(10.83)

где St = diag(μt ⊙ (1 - μt)). Мы видим, что вычисления по формуле (10.82)
быстрее, так как постоянную матрицу (X⟙X)-1 можно вычислить предвари‑
тельно.

10.3.5. Оценка MAP
В разделе 10.2.7 мы обсуждали преимущества 𝓁2-регуляризации для бинар‑
ной логистической регрессии. Эти преимущества имеют место и в много‑
классовом случае. Однако имеется и еще одно неожиданное преимущество,
касающееся идентифицируемости параметров, отмеченное в [HTF09,
упражнение 18.3]. (Говорят, что параметры идентифицируемы, если суще‑
ствует единственное значение, доставляющее максимум правдоподобию;
эквивалентно мы требуем, чтобы NLL было строго выпуклым.)
Чтобы понять, почему идентифицируемость важна, вспомним, что много‑
классовая логистическая регрессия имеет вид
(10.84)
где W – матрица весов размера C´D. Мы можем произвольно положить
wc = 0 для одного из классов, скажем c = C, потому что p(y = C|x, W) =
1-

p(y = c|x, w). В этом случае модель имеет вид:
(10.85)

Если не зафиксировать какое-нибудь постоянное значение одного из век‑
торов, то параметры будут неидентифицируемыми.
Но предположим, что мы не зафиксировали wc = 0, т. е. пользуемся фор‑
мулой (10.84), но добавили 𝓁2-регуляризацию и оптимизируем
(10.86)

где член 1/N включен в λ. В точке оптимума имеем åCc=1 ŵcj = 0 для j = 1 … D,
так что веса автоматически удовлетворяют ограничению нулевой суммы, что
делает их однозначно идентифицируемыми. Чтобы понять, почему, заметим,
что в точке оптимума
(10.87)
(10.88)

Tlgm: @it_boooks

Мультиномиальная логистическая регрессия  439

Поэтому для любого измерения признаков j имеем

(10.89)
Таким образом, если λ > 0, то åc ŵcj = 0, так что сумма весов по всем классам
равна нулю для любого измерения признаков.

10.3.6. Классификаторы максимальной энтропии
Напомним, что модель мультиномиальной регрессии можно записать в виде
(10.90)
где Z(w, x) = åc exp(wc⟙x) – функция разбиения (нормировочная постоянная).
Здесь для каждого класса используются одни и те же признаки, но разные
векторы весов. Эту модель можно немного обобщить, допустив признаки,
зависящие от класса. Такая модель записывается в виде
(10.91)
где ϕ(x, c) – вектор признаков для класса c. Это называется классификатором максимальной энтропии, для краткости maxent. (Происхождение
этого термина объясняется в разделе 3.4.4.)
Классификаторы максимальной энтропии включают мультиномиаль‑
ную логистическую регрессию в качестве частного случая. Чтобы убедиться
в этом, обозначим w = [w1, …, wC] и определим вектор признаков следующим
образом:
ϕ(x, c) = [0, …, x, …, 0],

(10.92)

где x включен в c-й блок, а остальные блоки равны нулю. В данном случае
w⟙ϕ(x, c) = wc⟙x, так что мы вернулись к мультиномиальной логистической
регрессии.
Классификаторы максимальной энтропии очень широко используются
в области обработки естественного языка. Например, рассмотрим задачу
разметки семантических ролей, где классификатор относит слово x к се‑
мантической роли y, например: человек, место или предмет. Мы могли бы
определить (бинарные) признаки, например:
ϕ1(x, y) = 𝕀(y = человек Ù x встречается после «Mr.» или «Mrs»);

(10.93)

ϕ3(x, y) = 𝕀(y = место Ù x встречается в картах Google).

(10.95)

ϕ2(x, y) = 𝕀(y = человек Ù x находится в белом списке частых имен); (10.94)

Tlgm: @it_boooks

440  Логистическая регрессия
Как видим, используемые нами признаки зависят от метки.
Есть два основных способа создания таких признаков. Первый – вруч‑
ную задать много потенциально полезных признаков, применяя различные
шаблоны, а затем воспользоваться каким-нибудь алгоритмом выделения
признаков, например групповым методом LASSO из раздела 11.4.7. Второй –
постепенно добавлять в модель признаки, применяя метод эвристического
порождения признаков.

10.3.7. Иерархическая классификация
Иногда множество возможных меток можно структурировать, образовав
иерархию, или таксономию. Например, допустим, что нужно предсказать,
какое животное изображено на картинке: собака или кошка; если это собака,
то она может быть золотистым ретривером или немецкой овчаркой и т. д.
Интуитивно кажется, что разумно предсказывать самую точную метку из
тех, в которых мы уверены [Den+12], т. е. система должна подстраховывать
себя.
В работе [RF17] предложен следующий простой способ это сделать. Сна‑
чала создадим модель, включающую бинарную выходную метку для каждо‑
го возможного узла в дереве. Перед тем как приступить к обучению модели,
произведем нанизывание меток (label smearing), применив метки из всех
родительских узлов (гиперонимов). Например, если изображение поме‑
чено как «золотистый ретривер», то мы пометим его также как «собака».
Если обучить многозначный классификатор (который порождает вектор
p(y|x) бинарных меток) на таких данных, то он будет выполнять иерархи‑
ческую классификацию, т. е. предсказывать набор меток с разных уровней
абстракции.
Однако этот метод мог бы предсказать каждую из меток «золотистый ретривер», «кошка» и «птица» с вероятностью 1.0, потому что модель не улав‑
ливает тот факт, что некоторые метки взаимно исключают друг друга. Чтобы
предотвратить это, мы можем добавить ограничение взаимного исключения
между всеми узлами-братьями, как показано на рис. 10.8. Например, эта
модель гарантирует, что p(mammal|x) + p(bird|x) = 1, так как обе эти метки
являются прямыми потомками корневого узла. Далее мы можем распре‑
делить вероятность оказаться млекопитающим (mammal) между собаками
и кошками, так что p(dog|x) + p(cat|x) = p(mammal|x).
В работах [Den+14; Din+15] этот метод обобщен на условные графовые
модели со структурой графа более сложной, чем дерево. Кроме того, допуска‑
ются не только жесткие, но и мягкие ограничения между метками.

10.3.8. Работа с большим числом классов
В этом разделе мы обсудим некоторые вопросы, возникающие, когда число
потенциальных меток велико, например когда метки соответствуют словам
языка.

Tlgm: @it_boooks

Мультиномиальная логистическая регрессия  441

Рис. 10.8  Простой пример иерархии меток.
Узлы внутри одного эллипса взаимно исключат друг друга

10.3.8.1. Иерархическая softmax-модель
В регулярных softmax-классификаторах нахождение нормировочной посто‑
янной, необходимой для вычисления градиента логарифмического правдо‑
подобия, занимает время O(C), и может стать узким местом, если C велико.
Однако если организовать метки в виде дерева, то можно будет вычислить ве‑
роятность любой метки за время O(log C), перемножив вероятности всех ребер
на пути от корня к листу. Например, рассмотрим дерево на рис. 10.9. Имеем
p(y = I’m|C) = 0.57 ´ 0.68 ´ 0.72 = 0.28.

(10.96)

Таким образом, мы заменили «плоскую» выходную softmax-модель дре‑
вовидной последовательностью бинарных классификаторов. Это называется
иерархической softmax-моделью [Goo01; MB05].
Неплохой способ построить такое дерево дает кодирование Хаффмана,
когда самые частые метки помещаются в начало дерево, как предложено
в работе [Mik+13a]. (Другой подход, основанный на объединении самых рас‑
пространенных меток в один кластер, описан в работе [Gra+17]. А еще один –
основанный на выборке меток – в работе [Tit16].)

10.3.8.2. Несбалансированность классов и длинный хвост
Еще одна проблема, часто возникающая при большом числе классов, – на‑
личие слишком малого числа примеров для большинства классов. Точнее,
если Nc – число примеров для класса c, то эмпирическое распределение
p(N1, …, NC) может иметь длинный хвост. Результат – крайняя форма несбалансированности классов (см., например, [ASR15]). Поскольку редкие
классы оказывают меньшее влияние на общую потерю, чем частые, модель
может «акцентировать внимание» только на часто встречающих классах.

Tlgm: @it_boooks

442  Логистическая регрессия
(a)

(b)

Рис. 10.9  Плоская и иерархическая softmax-модель p(w|C), где C – входные
признаки (контекст), а w – выходная метка (слово). На основе рисунка из статьи
https://www.quora.com/What-is-hierarchical-softmax

Решить проблему помогает задание членов смещения b, так что 𝒮(b)c =
Nc /N; такая модель соответствует эмпирическому априорному распреде‑
лению меток даже при использовании весов w = 0. По мере корректировки
весов модель может обучиться зависящим от входных данных отклонениям
от этого априорного распределения.
Еще один распространенный подход – произвести повторную выборку
данных, чтобы сделать их более сбалансированными, до (или во время)
обучения. Предположим, что пример выбирается из класса c с вероятностью
(10.97)
Если положить q = 1, то мы вернемся к стандартной выборке со сбалансированными экземплярами, когда pc µ Nc; распространенные классы будут
выбираться чаще, чем редкие. Если положить q = 0, то мы придем к выборке
со сбалансированными классами, когда pc = 1/C; можно считать, что при
этом сначала случайно и равномерно выбирается класс, а затем экземпляр

Tlgm: @it_boooks

Робастная логистическая регрессия  443

из этого класса. Наконец, можно рассматривать и другие значения, например
q = 0.5, этот случай называется выборкой по правилу квадратного корня
(square-root sampling) [Mah+18].
Есть еще один метод, простой и хорошо справляющийся с длинным хво‑
стом, – использовать классификатор по ближайшему среднему классов.
Он имеет вид:
(10.98)
где

– среднее признаков, принадлежащих классу c. Это ин‑

дуцирует апостериорное softmax-распределение, обсуждавшееся в разде‑
ле 9.2.5. Мы можем получить гораздо лучшие результаты, если сначала с по‑
мощью нейронной сети (см. часть III) найдем хорошие признаки, для чего
обучим ГНС-классификатор с потерей перекрестной энтропии на исходных
несбалансированных данных. Затем заменим x на ϕ(x) в формуле (10.98).
Этот простой подход может дать очень хорошее качество на распределениях
с длинным хвостом [Kan+20].

10.4. робастная логистиЧеская регрессия*
Иногда в данных имеются выбросы. Зачастую это связано с ошибками при
пометке данных – зашумленными метками. Чтобы предотвратить нега‑
тивное воздействие такого загрязнения на модель, используется робастная
логистическая регрессия. В этом разделе мы обсудим некоторые подходы
к проблеме. (Отметим, что эти методы применимы также к ГНС. Более под‑
робный обзор зашумленных меток и их влияния на глубокое обучение см.
в работе [Han+20].)

10.4.1. Смесовая модель правдоподобия
Один из самых простых способов определить модель робастной логистиче‑
ской регрессии – модифицировать правдоподобие, так чтобы оно предска‑
зывало, что каждая выходная метка y либо с вероятностью π выбирается из
равномерного распределения, либо порождается обычной условной моде‑
лью. В бинарном случае это выглядит так:
p(y|x) = πBer(y|0.5) + (1 - π)Ber(y|σ(w⟙x)).

(10.99)

Такой способ использования смесовой модели с целью сделать модель на‑
блюдений робастной применим к самым разным моделям (например, к ГНС).
Мы можем обучить эту модель стандартными методами, например СГС
или методами байесовского вывода, скажем методом Монте-Карло по схеме
марковской цепи (MCMC). Для примера давайте создадим «загрязненную
версию» одномерного набора данных об ирисах с двумя классами, который

Tlgm: @it_boooks

444  Логистическая регрессия
обсуждали в разделе 4.6.7.2. Мы добавим 6 примеров из класса 1 (ирис щети‑
нистый) с аномальной длиной чашелистика. На рис. 10.10a показаны резуль‑
таты обучения стандартной (байесовской) модели логистической регрессии
на этом наборе данных. На рис. 10.10b показаны результаты обучения опи‑
санной выше робастной модели. В последнем случае мы видим, что решаю‑
щая граница похожа на ту, что выведена на основе незагрязненных данных
(рис. 4.20b). Также видно, что апостериорная неопределенность положения
решающей границы меньше, чем при использовании неробастной модели.

(a)

(b)

Рис. 10.10  (a) Логистическая регрессия для данных с выбросами (обозначены крестиками). Обучающие примеры разнесены по вертикали, чтобы избежать
чрезмерного наложения. Вертикальная прямая является решающей границей,
а широкая полоса – ее апостериорным байесовским доверительным интервалом. (b) То же, что (a), но используется робастная модель со смесовым правдоподобием. На основе рис 4.13 из of [Mar18]. Построено программой по адресу
figures.probml.ai/book1/10.10

10.4.2. Дважды смягченная потеря
В этом разделе мы опишем подход к робастной логистической регрессии,
предложенный в работе [Ami+19].
Прежде всего заметим, что примеры, расположенные далеко от решающей
границы, но помеченные неправильно, могут оказать несоразмерно большое
негативное влияние на модель, если функция потерь выпукла [LS10]. С этим
можно бороться, заменив обычную потерю перекрестной энтропии «смяг‑
ченной» версией с параметром температуры 0 £ t1 < 1, который гарантирует,
что потеря из-за выбросов будет ограничена. В частности, рассмотрим стан‑
дартную функцию потерь,равную относительной энтропии:
(10.100)
где y – истинное распределение меток (часто унитарное), а ŷ – предсказанное
распределение. Определим потерю смягченной перекрестной энтропии
следующим образом:

Tlgm: @it_boooks

Робастная логистическая регрессия  445

(10.101)
Это выражение можно упростить, если истинное распределение y является
унитарным, т. е. вся его масса сосредоточена в классе c:
(10.102)
Здесь logt – смягченная версия логарифмической функции:
(10.103)
Эта функция монотонно возрастающая и вогнутая, а при t = 1 сводится
к стандартному натуральному логарифму. (Аналогично смягченная пере‑
крестная энтропия сводится к стандартной перекрестной энтропии при
t = 1.) Однако смягченная логарифмическая функция ограничена снизу зна‑
чением -1/(1 - t) для 0 £ t < 1, а значит, потеря смягченной перекрестной
энтропии ограничена сверху (см. рис. 10.1).
Второе наблюдение заключается в том, что для примеров, расположенных
близко к решающей границе, но помеченных неправильно, необходимо ис‑
пользовать передаточную функцию (которая отображает активации ℝC в ве‑
роятности [0, 1]C ), имеющую более тяжелые хвосты, чем функция softmax,
основанная на экспоненте, и потому позволяющую «заглядывать дальше»
ближайшей окрестности. Напомним, что стандартная softmax определена
следующим образом:
(10.104)
где a – вектор логитов. Получить вариант с тяжелыми хвостами можно, вос‑
пользовавшись смягченной softmax с параметром температуры t2 > 1 > t1:
ŷ c = expt2(ac - λt2(a)),

(10.105)

где
expt(x)

[1 + (1 - t)x]1=(1-t)
+

(10.106)

– смягченная версия экспоненциальной функции. (Она сводится к обычной
экспоненте при t ® 1.) На рис. 10.11 (справа) показано, что смягченная soft‑
max (в случае двух классов) имеет более тяжелые хвосты, что нам и нужно.
Осталось только вычислить λt2(a). Эта величина должна удовлетворять сле‑
дующему уравнению неподвижной точки:
(10.107)

Tlgm: @it_boooks

446  Логистическая регрессия
Потеря

(b)

Передаточная функция
экспоненциальный хвост

смягченная (ограниченная)

тяжелый хвост
вероятность

логистическая

потеря

(а)

активация

активация

Рис. 10.11  (a) Логистическая и смягченная логистическая потеря при t1 = 0.8.
(b) Сигмоидная и смягченная сигмоидная передаточная функция при t2 = 2.0.
Взято из статьи https://ai.googleblog.com/2019/08/bi-tempered-logistic-loss-fortraining.html. Печатается с разрешения Эхсана Амида

Решить это уравнение относительно λ можно методом двоичного поиска
или с помощью итеративной процедуры в алгоритме 3.
Алгоритм 3. Итеративный алгоритм вычисления λ(a) в уравнении (10.107).
Взят из [AWS19]
1
2
3
4
5
6
7

Вход: логиты a, температура t > 1;
μ := max(a);
a := a - μ;
while a не сошелся do
Z(a) := åCc=1 expt (ac);
a := Z(a)1-t(a - μ1);
Вернуть -logt (1/Z(a)) + μ

Сочетание смягченной softmax и смягченной перекрестной энтропии
приводит к методу дважды смягченной логистической регрессии (bitempered logistic regression). На рис. 10.12 показан пример ее применения
к двумерным данным. В верхнем ряду показана стандартная логистическая
регрессия, а в нижнем – дважды смягченная. Первый столбец содержит чи‑
стые данные. Во втором столбце данные зашумлены вблизи границы. В ро‑
бастной версии используются параметры t1 = 1 (стандартная перекрестная
энтропия), но t2 = 4 (смягченная softmax с тяжелыми хвостами). В третьем
столбце метки зашумлены вдали от границы. В робастной версии использу‑
ется t1 = 0.2 (смягченная перекрестная энтропия с ограниченной потерей),
но t2 = 1 (стандартная softmax). В четвертом столбце присутствуют оба вида
шума; в этом случае в робастной версии используются параметры t1 = 0.2
и t2 = 4.

Tlgm: @it_boooks

Байесовская логистическая регрессия  447
Чистый набор данных

Шум вблизи от границы

Шум вдали от границы

(t1 = 0.2, t2 = 4.0)
Ограниченная
с тяжелыми хвостами

(t1 = 1.0, t2 = 4.0)
Только с тяжелыми
хвостами

(t1 = 0.2, t2 = 1.0)
Только ограниченная

Случайный шум

Логистическая
потеря

Дважды
смягченная
логистическая
потеря

(t1 = 0.2, t2 = 4.0)
Ограниченная
с тяжелыми хвостами

Рис. 10.12  Стандартная и дважды смягченная логистическая регрессия
для данных с зашумленными метками. Взято из статьи https://ai.googleblog.
com/2019/08/bi-tempered-logistic-loss-for-training.html. Печатается с разрешения Эхсана Амида

10.5. байесоВская логистиЧеская регрессия*
До сих пор в центре нашего внимания были точечные оценки параметров,
MLE или MAP. Однако иногда мы хотим вычислить апостериорное распре‑
деление, p(w|𝒟), чтобы уловить неопределенность наших предсказаний.
Особенно это может быть полезно, когда данных мало, а выбор неверного
решения может дорого обойтись.
В отличие от линейной регрессии для модели логистической регрессии
точно вычислить апостериорное распределение невозможно. Но в нашем
распоряжении широкий спектр приближенных алгоритмов. В этом разде‑
ле мы рассмотрим один из самых простых, аппроксимацию Лапласа (раз‑
дел 4.6.8.2). Более сложные аппроксимации описаны во второй томе этой
книги, [Mur22].

10.5.1. Аппроксимация Лапласа
В разделе 4.6.8.2 мы говорили, что аппроксимация Лапласа аппроксими‑
рует апостериорное распределение гауссовым. Среднее гауссова распреде‑
ления равно оценке MAP ŵ, а ковариационная матрица совпадает с матри‑
цей, обратной гессиану H и вычисленной в точке оценки MAP, т. е. p(w|𝒟) »
𝒩(w|ŵ, H-1). Мы можем найти моду с помощью стандартного метода оптими‑
зации (см. раздел 10.2.7), а затем использовать результаты из раздела 10.2.3.4
для вычисления гессиана в точке моды.

Tlgm: @it_boooks

448  Логистическая регрессия
В качестве примера рассмотрим данные на рис. 10.13a. Существует много
вариантов задания параметров, при которых прямые идеально разделяют
обучающие данные; мы показали четыре примера таких прямых. Поверх‑
ность правдоподобия показана на рис. 10.13b. Диагональная прямая соеди‑
няет начало координат с точкой сетки с максимальным правдоподобием,
ŵ mle = (8.0; 3.4). (Для неограниченной MLE ||w|| = ¥, как обсуждалось в раз‑
деле 10.2.7; эту точку можно получить, продлив диагональную прямую бес‑
конечно далеко вправо.)

(a)

(b)

(c)

(d)

Рис. 10.13  (a) Данные. (b) Логарифмическое правдоподобие для модели логистической регрессии. Прямая проведена из начала координат в направлении
оценки MLE (находящейся в бесконечности). Числа относятся к четырем точкам
в пространстве параметров, соответствующим прямым на рисунке (a). (c) Ненормированное логарифмическое апостериорное распределение (в предположении сферического априорного распределения). (d) Аппроксимация Лапласа
апостериорного распределения. На основе рисунка Марка Джиролами. Построено программой по адресу figures.probml.ai/book1/10.13

Для каждой решающей границы на рис. 10.13a мы построили соответ‑
ствующий вектор параметров на рис. 10.13b. Это точки w1 = (3, 1), w2 = (4. 2),
w3 = (5, 3) и w4 = (7, 3). Все они удовлетворяют приближенному равенству
wi(1)/wi(2) » ŵmle(1)/ŵmle(2), а потому близки к направлению решающей гра‑
ницы максимального правдоподобия. Точки отсортированы в порядке воз‑
растания нормы веса (3.16, 4.47, 5.83, 7.62).

Tlgm: @it_boooks

Байесовская логистическая регрессия  449

Чтобы решение было единственным, мы используем (сферическое) гауссо‑
во априорное распределение с центром в начале координат, 𝒩(w|0, σ2I). Зна‑
чение σ2 определяет силу априорного распределения. Если положить σ2 = ¥,
то оценка MAP будет равна w = 0; это дает максимально неопределенные
предсказания, потому что все точки x порождают прогнозное распределение
вида p(y = 1|x) = 0.5. Если положить σ2 = 0, то оценка MAP совпадает с MLE,
что дает минимально неопределенные предсказания. (В частности, для всех
точек с положительными метками будет p(y = 1|x) = 1.0, а для всех точек
с отрицательными метками – p(y = 1|x) = 0.0, потому что данные раздели‑
мы.) В качестве компромисса (чтобы получить красивую иллюстрацию) мы
выбрали значение σ2 = 100.
Умножение этого априорного распределения на правдоподобие дает не‑
нормированное апостериорное распределение, показанное на рис. 10.13c.
Оценка MAP показана красной точкой. Аппроксимация Лапласа этого апо‑
стериорного распределения показана на рис. 10.13d. Мы видим, что оно дает
правильную моду (по построению), но форма распределения несколько ис‑
кажена. (Направление с юго-запада на северо-восток отражает неопределен‑
ность абсолютной величины w, а направление с юго-востока на северо-за‑
пад – неопределенность ориентации решающей границы.)
На рис. 10.14 показаны линии уровня апостериорного прогнозного рас‑
пределения. На рис. 10.14a изображена подстановочная аппроксимация с ис‑
пользованием оценки MAP. Мы видим, что в предсказании решающей гра‑
ницы нет никакой неопределенности, хотя мы генерировали вероятностное
распределение меток. На рис. 10.14b показано, что происходит, если под‑
ставить примеры, выбранные из гауссова апостериорного распределения.
Теперь имеется значительная неопределенность в ориентации «наилучшей»
решающей границы. На рис. 10.14c показано среднее этих примеров. Усред‑
няя по нескольким предсказаниям, мы видим, что неопределенность реша‑
ющей границы «расширяется» по мере того, как мы удаляемся от обучающих
данных. На рис. 10.14d показано, что результаты пробит-аппроксимации
очень похожи на аппроксимацию Монте-Карло.

10.5.2. Аппроксимация апостериорного
прогнозного распределения
Апостериорное распределение p(w|𝒟) сообщает нам все, что известно о пара‑
метрах модели при имеющихся данных. Однако в приложениях машинного
обучения наибольший интерес обычно представляет предсказание выхода y
для заданного входа x, а не попытка понять параметры модели. Таким об‑
разом, нам нужно вычислить апостериорное прогнозное распределение:
(10.108)
В разделе 4.6.7.1 мы обсуждали простой подход к решению этой задачи:
сначала вычислить точечную оценку ŵ параметров, например оценку MLE

Tlgm: @it_boooks

450  Логистическая регрессия
или MAP, а затем игнорировать всю апостериорную неопределенность, пред‑
положив, что p(w|𝒟) = δ(w - ŵ). В данном случае приведенный выше инте‑
грал сводится к следующей подстановочной аппроксимации:
(10.109)

(а)

(b)

(с)

(d)

Рис. 10.14  Апостериорное прогнозное распределение для модели логистической регрессии в двумерном случае. (a) Линии уровня p(y = 1|x; ŵmap). (b) Выборка из апостериорного прогнозного распределения. (c) Усреднение примеров из этой выборки. (d) Модерированный выход (пробит-аппроксимация). На
основе рисунка Марка Джиролами. Построено программой по адресу figures.
probml.ai/book1/10.14

Однако если мы хотим вычислить неопределенность предсказаний, то сле‑
дует использовать невырожденное апостериорное распределение. Как мы
увидим, обычно в качестве такового берут гауссово распределение. Но все
равно нужно приближенно вычислить интеграл (10.108). Ниже мы обсудим
некоторые подходы к решению этой задачи.

Tlgm: @it_boooks

Байесовская логистическая регрессия  451

10.5.2.1. Аппроксимация Монте-Карло
Проще всего аппроксимировать интеграл методом Монте-Карло. Это означа‑
ет, что мы производим выборку объема S из апостериорного распределения,
ws ~ p(w|𝒟), а затем вычисляем
(10.110)

10.5.2.2. Пробит-аппроксимация
Аппроксимация Монте-Карло проста, но работает медленно, потому что на
этапе тестирования мы должны выбирать S примеров для каждого входа x.
По счастью, если p(w|𝒟) = 𝒩(w|μ, Σ), то существует простая, но точная детер‑
минированная аппроксимация, впервые предложенная в работе [SL90]. Мы
объясним, в чем ее суть, следуя изложению в книге [Bis06, стр. 219]. Ключевое
наблюдение заключается в том, что сигмоидная функция σ(a) по форме по‑
хожа на функцию гауссова распределения (см. раздел 2.6.1) Φ(a). В частности,
σ(a) ≈ Φ(λa), где выбор λ2 = π/8 гарантирует, что обе функции будут иметь
одинаковый наклон в начале координат. Это полезно, потому что мы можем
точно проинтегрировать функцию гауссова распределения по плотности га‑
уссова распределения:
(10.111)

где по определению
(10.112)
Таким образом, если положить a = x⟙w, то
p(y = 1|x, 𝒟) » σ(κ(v)m);

m = 𝔼[a] = x⟙μ;

v = 𝕍[a] = 𝕍[x⟙w] = x⟙Σx,

(10.113)
(10.114)
(10.115)

где в последней строке мы воспользовались формулой (2.165). Поскольку Φ
обратна к пробит-функции, то эта формула называется пробит-аппроксимацией.
Применение формулы (10.113) дает предсказания, менее экстремальные
(в смысле уровня доверия), чем подстановочная оценка. Чтобы убедиться
в этом, заметим, что 0 < κ(v) < 1 и, значит, κ(v)m < m, так что σ(κ(v)m) ближе
к 0.5, чем σ(m). Однако на саму решающую границу это не влияет. Действи‑

Tlgm: @it_boooks

452  Логистическая регрессия
тельно, решающая граница – это множество точек x, для которых p(y = 1|x,

𝒟) = 0.5. Отсюда следует, что κ(v)m = 0, т. е. m = w ⟙x = 0; но это то же самое,
что решающая граница из подстановочной оценки. Таким образом, «байесо‑
вость» не изменяет частоту неправильной классификации (в данном случае),
зато изменяет оценки доверия к модели, что бывает важно, как мы покажем
в разделе 10.5.1.
В случае нескольких классов можно воспользоваться обобщенной пробит-аппроксимацией [Gib97]:
(10.116)
—⟙
mc = m
c x;

(10.117)

vc = x⟙Vc,c x,

(10.118)

где κ определено формулой (10.112). В отличие от бинарного случая учет
апостериорной ковариации дает не такие предсказания, как при подстано‑
вочном подходе (см. упражнение 3.10.3 в [RW06]).
Другие аппроксимации гауссовых интегралов в сочетании с сигмоидной
функцией и функцией softmax, см. в работе [Dau17].

10.6. упражнения
Упражнение 10.1 [градиент и гессиан логарифмического правдоподобия
для мультиномиальной регрессии].
a. Обозначим μik = 𝒮(ηi)k, где ηi = w⟙xi. Покажите, что якобиан функции
softmax равен
(10.119)
где δkj = I(k = j).
b. Покажите далее, что градиент NLL равен
(10.120)
Указание: воспользуйтесь правилом дифференцирования сложной
функции и тем фактом, что åc yic = 1.
c. Покажите, что блочная подматрица гессиана для классов c и c¢ имеет
вид:
(10.121)
Зная это, покажите, что гессиан NLL положительно определен.

Tlgm: @it_boooks

Упражнения  453

Упражнение 10.2 [регуляризация отдельных членов двумерной логистиче‑
ской регрессии*].
(Источник: Яаккола.)
a. Рассмотрим данные на рис. 10.15a, где мы обучаем модель p(y = 1|x, w) =
σ(w0 + w1x1 + w2x2). Предположим, что при обучении модели исполь‑
зуется оценка максимального правдоподобия, т. е. мы минимизируем
функцию
J(w) = -𝓁(w, 𝒟train),

(10.122)

где 𝓁(w, 𝒟train) – логарифмическое правдоподобие на обучающем на‑
боре. Прикиньте график возможной решающей границы, соответствующей ŵ. (Сначала скопируйте рисунок (грубого эскиза достаточно),
а затем наложите свой ответ на копию, так как понадобится несколько
вариантов этого рисунка). Является ли ваш ответ (решающая граница)
единственным? Сколько ошибок классификации делает ваш метод на
обучающем наборе?

(a)

(b)

Рис. 10.15  (a) Данные к вопросу о логистической регрессии.
(b) График зависимости ŵk от величины корреляции ck для трех разных оценок

b. Теперь предположим, что регуляризируется только параметр w0, т. е.
мы минимизируем функцию:
J0(w) = -𝓁(w, 𝒟train) + λw02.

(10.123)

J1(w) = -𝓁(w, 𝒟train) + λw12.

(10.124)

Предположим, что λ – очень большое число, поэтому мы регуляризи‑
руем w0, возможно, уменьшая до 0, а остальные параметры оставляем
нерегуляризированными. Сколько ошибок классификации делает ваш
метод на обучающем наборе? Указание: рассмотрите поведение про‑
стой линейной регрессии, w0 + w1x1 + w2x2, когда x1 = x2 = 0.
c. Теперь предположим, что мы уделяем внимание только регуляризации
параметра w1, т. е. минимизируем функцию:

Tlgm: @it_boooks

454  Логистическая регрессия
Прикиньте форму возможной решающей границы. Сколько ошибок
классификации делает ваш метод на обучающем наборе?
d. Теперь будем регуляризировать только параметр w2. Прикиньте форму
возможной решающей границы. Сколько ошибок классификации дела‑
ет ваш метод на обучающем наборе?
Упражнение 10.3 [сравнение логистической регрессии и LDA/QDA*].
(Источник: Яаккола.)
Допустим, что мы обучаем следующие бинарные классификаторы с по‑
мощью максимального правдоподобия.
a. GaussI: порождающий классификатор с гауссовыми условными плот‑
ностями классов и обеими ковариационными матрицами, равными I
(единичной матрице), т. е. p(x|y = c) = 𝒩(x|μc, I). Предполагается, что
распределение p(y) равномерное.
b. GaussX: то же, что GaussI, но на ковариационные матрицы не налага‑
ется ограничений, т. е. p(x|y = c) = 𝒩(x|μc, Σc).
c. LinLog: модель логистической регрессии с линейными признаками.
d. QuadLog: модель логистической регрессии с линейными и квадратич‑
ными признаками (т. е. разложение по полиномиальному базису сте‑
пени 2).
После обучения мы вычисляем качество каждой модели M на обучающем
наборе следующим образом:
(10.125)
(Отметим, что это условное логарифмическое правдоподобие p(y|x, θ̂), а не
совместное логарифмическое правдоподобие p(y, x|θ̂). Теперь мы хотим срав‑
нить качество каждой модели. Будем писать L(M) £ L(M¢), если модель M
должна иметь меньшее (или равное) логарифмическое правдоподобие (на
обучающем наборе), чем M¢, для любого обучающего набора (иными слова‑
ми, M хуже M¢, по крайней мере, с точки зрения логарифмического правдо‑
подобия). Для каждой из следующих моделей укажите, какие утверждения
верны: L(M) £ L(M¢), L(M) ³ L(M¢) или ни то ни другое (т. е. M иногда лучше
M¢, а иногда хуже). В каждом случае кратко (одной-двумя фразами) объяснить
свой ответ.
a. GaussI, LinLog.
b. GaussX, QuadLog.
c. LinLog, QuadLog.
d. GaussI, QuadLog.
e. Теперь будем измерять качество в терминах средней частоты непра‑
вильной классификации на обучающем наборе:
(10.126)
Верно ли в общем случае, что из L(M) > L(M¢) следует, что R(M) < R(M¢)?
Объясните свой ответ.

Глава

11

Tlgm: @it_boooks

Линейная регрессия

11.1. ВВедение
В этом разделе мы обсудим линейную регрессию – очень широко использу‑
емый метод предсказания вещественного выходного значения (называемого
также зависимой переменной или целевой величиной) y Î ℝ по векто‑
ру вещественных входных значений (называемых также независимыми
переменными, объясняющими переменными или ковариатами) x Î ℝD.
Основное свойство модели заключается в том, что ожидаемое выходное зна‑
чение предполагается линейной функцией входов, 𝔼[y|x] = w⟙x, что упрощает
интерпретацию и обучение модели. Нелинейные обобщения мы обсудим
ниже в этой книге.

11.2. линейная регрессия по методу
наименьших кВадратоВ
В этом разделе мы обсудим наиболее распространенную форму модели ли‑
нейной регрессии.

11.2.1. Терминология
Термин «линейная регрессия» обычно относится к модели следующего вида:
p(y|x, θ) = 𝒩(y|w0 + w⟙x, σ2),

(11.1)

где θ = (w0, w, σ2) – все параметры модели. (В статистике параметры w0 и w
обычно обозначаются β0 и β.)
Вектор параметров w1:D называется весами, или коэффициентами регрессии. Каждый коэффициент wd описывает ожидаемое изменение выхода
при изменении соответствующего входного признака xd на одну единицу
измерения. Например, пусть x1 – возраст человека, x2 – уровень образования

Tlgm: @it_boooks

456  Линейная регрессия
(представленный вещественным числом), а y – его доход. Тогда w1 соответ‑
ствует ожидаемому увеличению дохода, когда человек становится старше
на один год (и, стало быть, опытнее), а w2 – ожидаемому увеличению дохода
при повышении уровня образования на одну ступень. Член w0 называется
смещением и определяет выходное значение, когда все входы равны 0. Он
улавливает безусловное среднее отклика, w0 = 𝔼[y], и играет роль точки от‑
счета. Обычно предполагается, что вектор x записан в виде [1, x1, …, xD], так
что смещение w0 включено в вектор весов w.
Если входные данные одномерные (D = 1), то модель имеет вид f(x; w) =
ax + b, где b = w0 – свободный член, а a = w1 – угловой коэффициент. Это
называется простой линейной регрессией. Если входные данные много‑
мерные, x Î ℝD, где D > 1, то метод называется многофакторной линейной
регрессией. Если выход тоже многомерный, y Î ℝJ, где J > 1, то он называется
многомерной линейной регрессией:
(11.2)
Простой численный пример см. в упражнении 11.1.
В общем случае прямая линия недостаточно хорошо аппроксимирует боль‑
шинство наборов данных. Однако мы всегда можем применить к входным
признакам нелинейное преобразование, заменив x на ϕ(x), и получить
p(y|x, θ) = 𝒩(y|w⟙ϕ(x), σ2).

(11.3)

При условии, что параметры экстрактора признаков ϕ фиксированы,
модель остается линейной относительно параметров, но становится нели‑
нейной относительно входов. (О способах обучения экстрактора признаков
и результирующего линейного отображения мы поговорим в части III.)
В качестве простого примера нелинейного преобразования рассмотрим
случай полиномиальной регрессии, описанной в разделе 1.2.2.2. Если вход‑
ные данные одномерные и мы используем разложение по полиномам степе‑
ни d, то ϕ(x) = [1, x, x2, …, x d], см. пример на рис. 11.1 (см. также обсуждение
сплайнов в разделе11.5).

Рис. 11.1  Аппроксимация 21 точки полиномами степени 1 и 2.
Построено программой по адресу figures.probml.ai/book1/11.1

Tlgm: @it_boooks

Линейная регрессия по методу наименьших квадратов  457

11.2.2. Оценивание по методу наименьших
квадратов
Чтобы аппроксимировать данные линейной моделью, мы будем миними‑
зировать отрицательное логарифмическое правдоподобие на обучающем
наборе. Целевая функция имеет вид:
(11.4)
(11.5)
где предсказанный отклик по определению равен ŷ n w⟙xn. Оценка макси‑
мального правдоподобия (MLE) – это точка, в которой Ñw;σ NLL(w, σ2) = 0. Мы
можем сначала оптимизировать относительно w, а затем найти оптималь‑
ное σ.
В этом разделе мы остановимся на оценивании весов w. В этом случае NLL
равно (с точностью до несущественных постоянных) сумме квадратов невязок (residual sum of squares – RSS), равной
(11.6)
Как ее оптимизировать, мы обсудим ниже.

11.2.2.1. Обыкновенный метод наименьших квадратов
Пользуясь формулой (7.264), можно показать, что градиент равен
Ñw RSS(w) = X⟙Xw - X⟙y.

(11.7)

Приравнивая градиент нулю и решая получившееся уравнение, имеем
X⟙Xw = X⟙y.

(11.8)

Эти уравнения называются нормальными, потому что в точке оптимума
вектор y - Xw нормален (ортогонален) образу X, как будет объяснено в раз‑
деле 11.2.2.2. Соответствующее решение ŵ называется решением по методу обыкновенных наименьших квадратов (ordinary least squares – OLS)
и имеет вид:
ŵ = (X⟙X)-1X⟙y.

(11.9)

Матрица X† = (X⟙⟙)-1X⟙ является (левой) псевдообратной для (неквадрат‑
ной) матрицы X (детали см. в разделе 7.5.3).
Убедиться в единственности решения можно, показав, что гессиан поло‑
жительно определен. В данном случае гессиан имеет вид:

Tlgm: @it_boooks

458  Линейная регрессия
(11.10)
Если X имеет полный ранг (т. е. столбцы X линейно независимы), то H по‑
ложительно определен, потому что для любого v > 0 имеем
v⟙(X⟙X)v = (Xv)⟙(Xv) = ||Xv||2 > 0.

(11.11)

Следовательно, в случае матрицы полного ранга целевая функция метода
наименьших квадратов имеет единственный глобальный минимум (см. ил‑
люстрацию на рис. 11.2).

(a)

(b)

Рис. 11.2  (a) Линии уровня на поверхности RSS для примера на рис. 11.1a.
Синий крестик представляет MLE. (b) Соответствующий график поверхности.
Построено программой по адресу figures.probml.ai/book1/11.2

11.2.2.2. Геометрическая интерпретация метода
наименьших квадратов
У нормальных уравнений имеется элегантная геометрическая интерпрета‑
ция, вытекающая, как мы сейчас объясним, из раздела 7.7. Будем предпо‑
лагать, что N > D, т. е. наблюдений больше, чем неизвестных (такая система
уравнений называется переопределенной). Мы ищем вектор ŷ Î ℝN, кото‑
рый принадлежал бы линейному подпространству, натянутому на X, и был
максимально близок к y, т. е.
,

(11.12)

где x:;d – d-й столбец X. Поскольку ŷ Î span(X), существует такой вектор весов
w, что
ŷ = w1x:,1 + … + wnx:,D = Xw.

(11.13)

Чтобы норма невязки, y - ŷ, была минимальной, необходимо, чтобы век‑
тор невязок был ортогонален каждому столбцу X. Отсюда
x⟙:,d(y - ŷ) = 0 ⇒ X⟙(y - Xw) = 0 ⇒ w = (X⟙X)-1X⟙y.

(11.14)

Tlgm: @it_boooks

Линейная регрессия по методу наименьших квадратов  459

Следовательно, ŷ имеет вид:
ŷ = Xw = X(X⟙X)-1X⟙y.

(11.15)

Это не что иное, как ортогональная проекция y на пространство столб‑
цов X. Например, рассмотрим случай, когда имеется N = 3 обучающих приме‑
ров размерности D = 2. Обучающие данные определяют двумерное линейное
подпространство, натянутое на два столбца X, каждому из которых соответ‑
ствует точка в трехмерном пространстве. Мы проецируем y, который также
представлен точкой в трехмерном пространстве, на это подпространство,
как показано на рис. 11.3.

Рис. 11.3  Графическая интерпретация метода наименьших квадратов для m = 3 уравнений и n = 2 неизвестных в системе Ax = b. a1
и a2 – столбцы A, определяющие двумерное линейное подпространство, погруженное в ℝ3. Вектор b принадлежит ℝ3, его ортогональная
проекция на линейное подпространство обозначена b̂. Отрезок прямой, соединяющий b с b̂, – вектор невязок, норму которого мы хотим
минимизировать

Матрицу проекции
Proj(X)

X(X⟙X)-1X⟙

(11.16)

в англоязычной литературе иногда называют hat matrix (матрица крышки),
потому что ŷ = Proj(X)y. В частном случае, когда X = x является векторомстолбцом, ортогональная проекция y на прямую x принимает вид:
(11.17)

Tlgm: @it_boooks

460  Линейная регрессия

11.2.2.3. Алгоритмические проблемы
Напомним, что решение по методу OLS имеет вид:
ŵ = X†y = (X⟙X)-1X⟙y.

(11.18)

Однако, даже если теоретически возможно вычислить псевдообратную
матрицу X⟙X, делать этого не следует, потому что X⟙X может оказаться плохо
обусловленной или сингулярной.
Лучший (и более общий) подход – вычислить псевдообратную матрицу
с помощью сингулярного разложения (SVD). Действительно, заглянув в ис‑
ходный код функции sklearn.linear_model.fit, вы увидите, что в нем ис‑
пользуется функция scipy.linalg.lstsq, которая в свою очередь вызывает
DGELSD – основанный на SVD решатель, реализованный в библиотеке LAPACK,
написанной на языке Fortran1.
Однако если матрица X высокая и узкая (т. е. N ≫ D), то может оказать‑
ся быстрее использовать QR-разложение (раздел 7.6.2). Для этого положим
X = QR, где Q⟙Q = I. В разделе 7.7 мы показали, что метод OLS эквивалентен
нахождению такого решения системы линейных уравнений Xw = y, которое
минимизирует ошибку ||Xw - y||22. (Если N = D и матрица X полного ранга, то
система имеет единственное решение и ошибка будет равна 0.) Применив
QR-разложение, мы сможем переписать эту систему уравнений в виде:
(QR)w = y;

(11.19)

Q⟙QRw = Q⟙y;

(11.20)

w = R-1(Q⟙y).

(11.21)

Поскольку R верхнетреугольная, последнюю систему уравнений можно
решить методом обратного хода, избежав тем самым обращения матрицы
(см. код по адресу code.probml.ai/book1/linsys_solve_demo).
Альтернативой использованию прямых методов, основанных на матрич‑
ных разложениях (таких как SVD и QR), является применение итеративных
решателей, например метода сопряженных градиентов (в котором пред‑
полагается, что X симметричная и положительно определенная) или GMRES
(обобщенного метода минимизации невязки), который работает для матриц
X общего вида. (В библиотеке SciPy он реализован в модуле sparse.linalg.
gmres.) Для этих методов требуется только умение умножать матрицу на век‑
тор (т. е. реализация линейного оператора), поэтому они хорошо подходят
для задач, где X разреженная или обладает выраженной структурой. Детали
см., например, в работе [TB97].
1

Заметим, что значительная часть научного кода на Python – на самом деле лишь
тонкая обертка кода, написанного на Fortran или C++. Так сделано из соображений
производительности. Но из-за этого изменять базовые алгоритмы довольно труд‑
но. С другой стороны, библиотеки для научных расчетов на языке Julia написаны
на самом этом языке, что делает их понятнее не в ущерб быстродействию.

Tlgm: @it_boooks

Линейная регрессия по методу наименьших квадратов  461

И последний важный вопрос – обычно крайне важно перед обучением
модели стандартизовать входные признаки, т. е. сделать среднее нулевым,
а дисперсию единичной. Это можно сделать, пользуясь формулой (10.51).

11.2.2.4. Метод взвешенных наименьших квадратов
Иногда желательно связать с каждым примером вес. Например, в случае гетероскедастичной регрессии дисперсия зависит от входных данных, так
что модель имеет вид:
(11.22)
Таким образом,
p(y|x; θ) = 𝒩(y|Xw, Λ-1),

(11.23)

w = (X⟙ΛX)-1X⟙Λy.

(11.24)

где Λ = diag(1/σ2(xn)). Это называется взвешенной линейной регрессией.
Можно показать, что MLE в этом случае равна

Она называется оценкой по методу взвешенных наименьших квадратов.

11.2.3. Другие подходы к вычислению MLE
В этом разделе мы обсудим другие подходы к вычислению MLE.

11.2.3.1. Нахождение смещения и углового коэффициента
по отдельности
Обычно мы используем модель вида p(y|x, θ) = 𝒩(y|w0 + w⟙x, σ2), где w0 – сме‑
щение. Мы можем вычислить (w0, w) одновременно, добавив в X столбец еди‑
ниц и вычислив MLE, как описано выше. Но можно вместо этого искать w и w0
по отдельности. (Это будет полезно позднее.) Точнее, можно показать, что
;

(11.25)
(11.26)

где Xc – центрированная входная матрица, строками которой являются век‑

торы x nc = xn - x , а yc = y - – центрированный выходной вектор. Таким об‑
разом, мы можем сначала вычислить ŵ на центрированных данных, а затем

оценить w0, используя - x ⟙ŵ.

Tlgm: @it_boooks

462  Линейная регрессия

11.2.3.2. Простая линейная регрессия (одномерные входные
данные)
В случае одномерных (скалярных) входных данных результаты из разде‑
ла 11.2.3.1 сводятся к простой форме, знакомой по начальному курсу ста‑
тистики:
(11.27)
(11.28)
где Cxy = Cov[X, Y] и Cxx = Cov[X, X] = 𝕍[X]. Этот результат понадобится нам
ниже.

11.2.3.3. Частная регрессия
Из формулы (11.27) можно вычислить коэффициент регрессии Y от X:
(11.29)
Это угловой коэффициент предсказанной линейной зависимости Y от X.
Теперь рассмотрим случай, когда имеется два входа, т. е. Y = w0 + w1X1 +
w2X2 + ε, где 𝔼[ε] = 0. Можно показать, что оптимальный коэффициент ре‑
грессии w1 равен RY X1·X2, это частный коэффициент регрессии Y на X1 при
постоянном X2:
(11.30)
Отметим, что эта величина инвариантна относительно конкретного зна‑
чения X2, по которому производится обусловливание.
Вывести w2 можно аналогично. На самом деле вывод можно обобщить на
несколько входных переменных. В любом случае оптимальные коэффици‑
енты равны частным коэффициентам регрессии. Это означает, что j-й коэф‑
фициент ŵj можно интерпретировать как изменение выходного значения y,
ожидаемое при изменении входного значения xj на одну единицу, когда все
остальные входы постоянны.

11.2.3.4. Рекурсивное вычисление MLE
OLS – это пакетный метод вычисления MLE. В некоторых приложениях дан‑
ные поступают непрерывным потоком, поэтому нужно вычислять оценку
в онлайновом режиме, или рекурсивно, как обсуждалось в разделе 4.4.2.
В этом разделе мы покажем, как это делается в случае простой (одномерной)
линейной регрессии.

Tlgm: @it_boooks

Линейная регрессия по методу наименьших квадратов  463

Напомним (см. раздел 11.2.3.2), что пакетная MLE для простой линейной
регрессии имеет вид:
(11.31)
(11.32)
где Cxy = Cov[X, Y] и Cxx = Cov[X, X] = 𝕍[X].
Обсудим, как вычислить эти величины рекурсивно. Для этого определим
следующие достаточные статистики:
(11.33)
(11.34)
Мы можем обновлять средние в онлайновом режиме по формуле:
(11.35)
(n)
Для обновления членов ковариации сначала перепишем Cxy
в виде

(11.36)
(11.37)
(11.38)
Отсюда
(11.39)
(11.40)
(n+1)
Обновление Cxx
выводится аналогично.
На рис. 11.4 показана простая иллюстрация этих формул для модели одно‑
мерной регрессии. Для обобщения их на случай D-мерных входных данных
проще всего использовать СГС. В результате получается алгоритм наименьших средних квадратов, детали см. в разделе 8.4.2.

Tlgm: @it_boooks

464  Линейная регрессия

Рис. 11.4. Зависимость коэффициентов регрессии от времени
для одномерной модели на рис. 1.7a. Построено программой по
адресу figures.probml.ai/book1/11.4

11.2.3.5. Вывод MLE с порождающей точки зрения
Линейная регрессия – это дискриминантная модель вида p(y|x). Однако для
регрессии можно использовать также порождающие модели по аналогии
с тем, как мы использовали такие модели для классификации в главе 9. Наша
цель – вычислить условное математическое ожидание:
(11.41)
Пусть требуется аппроксимировать p(x, y) многомерным нормальным рас‑
пределением. Оценки MLE параметров совместного распределения – это
эмпирические средние о ковариации (доказательство см. в разделе 4.2.6):
(11.42)
(11.43)
(11.44)
(11.45)

Tlgm: @it_boooks

Линейная регрессия по методу наименьших квадратов  465

Следовательно, из формулы (3.28) имеем
(11.46)
Этот результат можно переписать в виде 𝔼[y|x] = w0 + w⟙x, положив

(11.47)

(11.48)
Это совпадает с оценками MLE для дискриминантной модели, найденны‑
ми в разделе 11.2.3.1. Таким образом, мы видим, что обучение совместной
модели с последующим обусловливанием дает такой же результат, как обуче‑
ние условной модели. Однако это справедливо только для гауссовых моделей
(дальнейшее обсуждение этого момента см. в разделе 9.4).

11.2.3.6. Вывод MLE для ฀2
Оценив ŵmle одним из описанных выше методов, мы можем оценить дис‑
персию шума. Легко показать, что MLE имеет вид:
(11.49)
Это в точности совпадает со среднеквадратической ошибкой, что согласу‑
ется с интуицией.

11.2.4. Измерение степени согласия оценки
В этом разделе мы обсудим простые способы оценки соответствия модели
регрессии данным (так называемой степени согласия).

11.2.4.1. Графики невязок
Для одномерных входных данных разумность модели можно проверить, по‑
строив график зависимости невязок, rn = yn - ŷ n, от входа xn. Он так и назы‑
вается – график невязок. Модель предполагает, что невязки имеют распре‑
деление 𝒩(0, σ2), так что график невязок должен представлять собой облако
точек, расположенных примерно поровну под и над горизонтальной осью
без каких-либо очевидных тенденций.
В качестве примера на рис. 11.5a приведен график невязок для линейной
модели на рис. 1.7a. Как видим, в структуре невязок наблюдается некоторая
искривленность, свидетельствующая о плохой аппроксимации. На рис. 11.5b
показан график невязок для квадратичной модели на рис. 1.7b. Видно, что
аппроксимация гораздо лучше.

Tlgm: @it_boooks

466  Линейная регрессия

(a)

(b)

Рис. 11.5. График невязок полиномиальной регрессии степени 1 и 2 для функций
на рис. 1.7a-b. Построено программой по адресу figures.probml.ai/book1/11.5

Чтобы обобщить этот подход на многомерные входные данные, мы можем
построить график зависимости предсказаний ŷ n от истинных выходов yn, а не
от xn. Если модель хорошая, то точки будут лежать на диагональной прямой.
Примеры см. на рис. 11.6.

(a)

(b)

Рис. 11.6  Предсказанные и истинные точки для полиномиальной регрессии
степени 1 и 2 для функций на рис. 1.7a–b. Построено программой по адресу
figures.probml.ai/book1/11.6

11.2.4.2. Точность предсказания и R2
Количественно оценить точность аппроксимации можно, вычислив сумму
квадратов невязок (RSS) на наборе данных: RSS(w) = åNn=1(yn - w⟙xn)2. Чем
меньше RSS, тем лучше модель аппроксимирует данные. Другая мера – корень из среднеквадратической ошибки (root mean squared error – RMSE):
(11.50)
Для интерпретации лучше подходит коэффициент детерминации, обо‑
значаемый R2:

Tlgm: @it_boooks

Линейная регрессия по методу наименьших квадратов  467

(11.51)
где = (1/N)åNn=1 yn – эмпирическое среднее выходов, RSS = åNn=1(yn - ŷ n)2 –
сумма квадратов невязок, а TSS = åNn=1(yn - n)2 – полная сумма квадратов.
Таким образом, мы видим, что R2 измеряет дисперсию предсказаний отно‑
сительно простого постоянного предсказания ŷ n = . Можно показать, что
0 £ R2 £ 1, причем чем больше значение, тем меньше дисперсия (т. е. аппрок‑
симация лучше). Это показано на рис. 11.6.

11.3. Гребневая регрессия
Оценка максимального правдоподобия может приводить к переобучению,
о чем шла речь в разделе 1.2.2.2. Простое решение этой проблемы – исполь‑
зовать оценку MAP для априорного гауссова распределения весов с нулевым
средним, p(w) = 𝒩(w|0, λ-1I), как в разделе 4.5.3. Это называется гребневой
регрессией.
Точнее, оценка MAP вычисляется следующим образом:
(11.52)
(11.53)
где λ

σ2/τ2 пропорционально силе априорного распределения, а
(11.54)

– 𝓁2-норма вектора w. Таким образом, мы штрафуем за слишком большие
веса. В общем случае эта техника называется 𝓁2-регуляризацией или уменьшением весов и применяется очень широко (см. иллюстрацию на рис. 4.5).
Отметим, что член смещения w0 не штрафуется, потому что он влияет
только на глобальное среднее выхода и не дает никакого вклада в переобучение (см. упражнение 11.2).

11.3.1. Вычисление оценки MAP
В этом разделе мы обсудим алгоритмы вычисления оценки MAP.
Оценка MAP соответствует минимизации следующей целевой функции
со штрафом:
J(w) = (y - Xw)⟙(y - Xw) + λ||w||22,

(11.55)

Tlgm: @it_boooks

468  Линейная регрессия
где λ = σ2/τ2 – сила регуляризатора. Производная равна
Ñw J(w) = 2(X⟙Xw - X⟙y + λw),

(11.56)

откуда
(11.57)

11.3.1.1. Решение с использованием QR-разложения
Наивное вычисление оценки w = (X⟙X + λI)-1X⟙y путем обращения матри‑
цы – неудачная идея, поскольку такое вычисление может оказаться медлен‑
ным и численно неустойчивым. В этом разделе мы опишем, как свести задачу
к стандартной задаче наименьших квадратов, к которой можно применить
QR-разложение, как обсуждалось в разделе 11.2.2.3.
Мы предполагаем, что априорное распределение имеет вид p(w) = 𝒩(0,
Λ-1), где Λ – матрица точности. В случае гребневой регрессии Λ = (1/τ2)I.
Это априорное распределение можно смоделировать, добавив «виртуальные
данные» в обучающий набор:
(11.58)
– разложение Холески матрицы Λ. Мы видим, что X – матрица
где
размера (N + D)´D, где дополнительные строки представляют псевдоданные
из априорного распределения.
Теперь покажем, что применение RSS к этим расширенным данным экви‑
валентно применению RSS со штрафом к исходным данным:
(11.59)
(11.60)

(11.61)
(11.62)
(11.63)
Следовательно, оценка MAP имеет вид:
(11.64)

Tlgm: @it_boooks

Линейная регрессия по методу наименьших квадратов  469

а это уравнение можно решить стандартным методом OLS. Именно, мы мо‑
жем вычислить QR-разложение X , а затем действовать, как в разделе 11.2.2.3.
Это занимает время O((N + D)D2).

11.3.1.2. Решение с использованием сингулярного
разложения
В этом разделе предполагается, что D > N, как обычно и бывает при исполь‑
зовании гребневой регрессии. В этом случае быстрее вычислить сингулярное,
а не QR-разложение. Разберемся, как это работает. Пусть X = USV⟙ – сингу‑
лярное разложение X, где V⟙V = IN, UU⟙ = U⟙U = IN, а S – диагональная матрица размера N´N. Обозначим R = US матрицу N´N. Можно показать (см.
упражнение 18.4 в [HTF09]), что
w map = V(R⟙R + λIN)-1R⟙y.

(11.65)

Иными словами, мы можем заменить D-мерные векторы xi N-мерными
векторами ri и выполнить аппроксимацию со штрафом, как и раньше. Общее
время работы теперь составляет O(DN2) – меньше O(D3) при D > N.

11.3.2. Связь между гребневой регрессией и PCA
В этом разделе мы обсудим интересную связь между гребневой регрессией
и методом главных компонент (PCA) (который будем рассматривать в раз‑
деле 20.1), чтобы глубже понять, почему гребневая регрессия работает так
хорошо. Наше изложение основано на книге [HTF09, стр. 66].
Пусть X = USV⟙ – сингулярное разложение X, где V⟙V = IN, UU⟙ = U⟙U =
IN и S – диагональная матрица размера N´N. Из формулы (11.65) видно, что
предсказания гребневой регрессии на обучающем наборе имеют вид:
ŷ = Xŵmap = USV⟙V(S2 + λI)-1SU⟙y;

(11.66)
(11.67)

где
(11.68)
и σj – сингулярные числа X. Отсюда
(11.69)
С другой стороны, предсказание методом наименьших квадратов имеет
вид:

Tlgm: @it_boooks

470  Линейная регрессия
(11.70)
Если σj2 мало по сравнению с λ, то направление uj не окажет заметного
влияния на предсказание. Памятуя об этом, определим эффективное число
степеней свободы модели следующим образом:
(11.71)
При λ = 0 dof(λ) = D, а при λ ® ¥ dof(λ) ® 0.
Попытаемся понять, почему такое поведения желательно. В разделе 11.7
мы покажем, что Cov[w|𝒟] µ (X⟙X)-1, если в качестве априорного распре‑
деления w выбрать равномерное. Поэтому направления наибольшей нео‑
пределенности w описываются собственными векторами матрицы (X⟙X)-1
с наибольшими собственными значениями, как показано на рис. 7.6; им
соответствуют собственные векторы X⟙X с наименьшими собственными зна‑
чениями. В разделе 7.5.2 мы показали, что квадраты сингулярных чисел σj2
равны собственным значениям X⟙X. Поэтому малые сингулярные числа σj
соответствуют направлениям с высокой апостериорной дисперсией. Это те
направления, в которых гребневая регрессия дает наибольшую усадку.
Это процесс показан на рис. 11.7. Горизонтальный параметр w1 плохо опре‑
делен данными (его апостериорная дисперсия высока), а вертикальный па‑
раметр w2 определен хорошо. Поэтому wmap(2) близка к wmle(2), но wmap(1)
сильно сдвинута в сторону априорного среднего, равного 0. Таким образом,
плохо определенные параметры уменьшаются по величине. Это называется
усадкой (shrinkage).

Рис. 11.7  Геометрия гребневой регрессии. Правдоподобие
представлено эллипсом, а априорное распределение – окружностью с центром в начале координат. На основе рис. 3.15 из [Bis06].
Построено программой по адресу figures.probml.ai/book1/11.7

Существует родственная, но иная техника, называемая регрессией главных компонент, – вариант PCA с учителем. Идея такова: сначала применить

Tlgm: @it_boooks

Регрессия lasso  471

PCA, чтобы снизить размерность до K, а затем воспользоваться этими низ‑
коразмерными признаками как входными данными для регрессии. Однако
этот метод работает хуже гребневой регрессии с точки зрения точности пред‑
сказаний [HTF01, стр. 70]. Причина в том, что регрессия главных компонент
сохраняет только первые K (выведенных) измерений, а остальные D - K
полностью игнорирует. Напротив, гребневая регрессия выполняет «мягкое»
взвешивание всех измерений.

11.3.3. Выбор силы регуляризатора
Чтобы найти оптимальное значение λ, мы можем попробовать конечное
число значений и применить перекрестную проверку для оценки ожидаемой
потери на каждом (см. раздел 4.5.5.2). Пример приведен на рис. 4.5d.
Этот подход обходится дорого, если выбор возможных значений велик.
По счастью, зачастую можно прибегнуть к теплому запуску процедуры оп‑
тимизации, воспользовавшись значением ŵ(λk) в качестве инициализатора
ŵ(λk+1), где λk+1 < λk; иными словами, в начале на модель налагаются сильные
ограничения (сильный регуляризатор), а затем они постепенно ослабляются
(уменьшается степень регуляризации). Множество параметров ŵk, проме‑
таемое в процессе оптимизации, называется путем регуляризации (см.
пример на рис. 11.10a).
Мы можем также использовать для выбора λ эмпирический байесовский
подход. Именно,гиперпараметр выбирается путем вычисления λ̂ = argmaxλ
log p(𝒟|λ), где p(𝒟|λ) – маргинальное правдоподобие. На рис. 4.7b показано,
что оценка при этом получается почти такой же, как при перекрестной про‑
верке. Однако у байесовского подхода есть несколько преимуществ: для вы‑
числения p(𝒟|λ) достаточно обучить одну модель, тогда как при перекрестной
проверке одна и та же модель обучается K раз; кроме того, p(𝒟|λ) – гладкая
функция от λ, так что можно использовать градиентную оптимизацию вме‑
сто дискретного поиска.

11.4. регрессия LaSSo
В разделе 11.3 мы предполагали для коэффициентов регрессии гауссово
априорное распределение при обучении моделей линейной регрессии. Часто
это хорошее решение, поскольку поощряет выбор малых весов и, следова‑
тельно, предотвращает переобучение. Но иногда мы хотим, чтобы параметры
были не просто малыми, а точно равными нулю, т. е. чтобы вектор ŵ был
разреженным, поэтому минимизируем L0-норму:
(11.72)
Это полезно, потому что может быть использовано для отбора признаков. Чтобы убедиться в этом, заметим, что предсказание имеет вид f(x; w) =

Tlgm: @it_boooks

472  Линейная регрессия
åDd=1 wdxd, поэтому если какой-то вес wd = 0, то соответствующий признак xd
игнорируется. (Та же идея применима к нелинейным моделям, например
ГНС, – для этого мы поощряем разреженность весов первого слоя.)

11.4.1. Оценка MAP с априорным распределением
Лапласа (𝓁𝓁1-регуляризация)

Есть много способов вычисления таких разреженных оценок (см., например,
[Bha+19]). В этом разделе мы займемся оценкой MAP с априорным распреде‑
лением Лапласа (которое обсудим в разделе 11.6.1):
(11.73)
где λ – параметр разреженности и
(11.74)
Здесь μ – параметр сдвига, а b > 0 – масштабный параметр. На рис. 2.15
показано, что Lap(w|0, b) сосредотачивает больше плотности в окрестности
0, чем 𝒩(w|0, σ2), даже если дисперсия одна и та же.
Чтобы вычислить оценку MAP для модели линейной регрессии с этим
априорным распределением, мы должны минимизировать следующую це‑
левую функцию:
PNLL(w) = -log p(𝒟|w) - log p(w|λ) = ||Xw - y||22 + λ||w||1,

(11.75)

где ||w||1 åDd=1 |wd| – 𝓁1-норма вектора w. Этот метод называется lasso, что
расшифровывается как «least absolute shrinkage and selection operator» [Tib96]
(почему он так назван, мы объясним позже). Вообще, оценка апостериор‑
ного максимума (MAP) с априорным распределением Лапласа называется
𝓁1-регуляризацией.
Заметим также, что можно было бы использовать другие нормы вектора
весов. В общем случае q-норма определяется так:
(11.76)
Для q < 1 можно получить еще более разреженные решения. В пределе,
когда q = 0, мы имеем 𝓁0‑норму:
(11.77)

Tlgm: @it_boooks

Регрессия lasso  473

Однако можно показать, что для любого q < 1 задача становится невыпу‑
клой (см., например, [HTW15]). Таким образом, 𝓁1-норма – самое сильное из
выпуклых ослаблений 𝓁0-нормы.

11.4.2. Почему 𝓁1-регуляризация дает
разреженные решения?

Теперь объясним, почему 𝓁1-регуляризация приводит к разреженным реше‑
ниям, а 𝓁2-регуляризация – нет. Ограничимся случаем линейной регрессии,
хотя похожие рассуждения проходят и для других моделей. В случае регрес‑
сии lasso целевая функция негладкая и имеет такой вид (обсуждение глад‑
кости см. в разделе 8.1.4):
(11.78)
Это лагранжиан для следующей задачи квадратичного программирования
(см. раздел 8.5.4):
(11.79)
где B – верхняя граница 𝓁1-нормы весов: малой (точной) границе B соответ‑
ствует большой штраф λ и наоборот.
Целевую функцию гребневой регрессии minw NLL(w) + λ||w||22 тоже можно
записать в форме с ограничением:
(11.80)
На рис. 11.8 изображены линии уровня целевой функции NLL, а также по‑
верхности ограничений по нормам 𝓁2 и 𝓁1. Из теории условной оптимизации
(раздел 8.5) мы знаем, что оптимальное решение имеет место в точке, где
самая нижняя линия уровня целевой функции пересекается с поверхностью

Рис. 11.8  Сравнение регуляризации метода наименьших квадратов
по норме 𝓁1 и 𝓁2. На основе рис. 3.12 из [HTF01]

Tlgm: @it_boooks

474  Линейная регрессия
ограничения (в предположении, что ограничение активно). Геометрически
ясно, что по мере ослабления ограничения B мы расширяем «шар» по норме
𝓁1, пока он не коснется целевой функции; эллипс с большей вероятностью
пересекут углы «шара», а не его стороны, особенно в пространстве высокой
размерности, потому что углы больше «выпирают». Углам соответствуют раз‑
реженные решения, расположенные на осях координат. С другой стороны,
при расширении шара по норме 𝓁2 точка пересечения с целевой функцией
может оказаться где угодно; никаких «углов» нет, поэтому разреженности не
отдается предпочтения.

11.4.3. Жесткие и мягкие пороги
Целевая функция регрессии lasso имеет вид ℒ(w) = NLL(w) + λ||w||1. Можно
показать (упражнение 11.3), что градиент гладкой части NLL имеет вид:
(11.81)
(11.82)
(11.83)
где w-d – это вектор w без элемента d, и аналогично xn,-d – вектор при‑
знаков без элемента d. Как видим, cd пропорционально корреляции между
d-м столбцом признаков, x:,d, и невязкой, полученной, когда предсказано
использование всех остальных признаков, r-d = y - X:,-d w-d. Следовательно,
величина cd показывает, насколько признак d релевантен для предсказания
y относительно других признаков и текущих параметров. Приравнивание
градиента нулю дает оптимальное обновление wd, когда остальные веса за‑
фиксированы:
(11.84)
Соответствующее новое предсказание r-d принимает вид r̂-d = wdx:,d, а это
не что иное, как ортогональная проекция невязки на вектор-столбец x:,d, что
согласуется с формулой (11.15).
Теперь прибавим член 𝓁1. К сожалению, член ||w||1 не дифференцируем,
когда wd = 0. Но мы все же можем вычислить субградиент в этой точке. Поль‑
зуясь формулой (8.14), находим, что
(11.85)

Tlgm: @it_boooks

Регрессия lasso  475

(11.86)
В зависимости от значения cd следует рассмотреть три случая решения
уравнения ¶wd ℒ(w) = 0.
1. Если cd < -λ, так что между признаком и невязкой существует силь‑
ная отрицательная корреляция, то субградиент равен нулю при ŵd =
(cd + λ)/ad < 0.
2. Если cd Î [-λ, λ], так что между признаком и невязкой существует лишь
слабая корреляция, субградиент равен нулю при ŵ d = 0:
3. Если cd > λ, так что между признаком и невязкой существует силь‑
ная положительная корреляция, то субградиент равен нулю при ŵd =
(cd - λ)/ad > 0.
Короче говоря, имеем
(11.87)
Это можно записать в виде
(11.88)
где
(11.89)
и x+ = max(x, 0) – положительная часть x. Это называется мягким порогом
(см. также раздел 8.6.2) и показано на рис. 11.9a, где мы построили график за‑
висимости ŵd от cd. Черная пунктирная прямая – это место, где wd = cd/ad, что
соответствует аппроксимации по методу наименьших квадратов. Сплошная
красная линия, представляющая регуляризированную оценку ŵd, сдвинута от
пунктирной линии вниз (или вверх) на λ, за исключением участка -λ £ cd £ λ,
где она проходит по горизонтальной оси (wd = 0).
На рис. 11.9b показан жесткий порог. В этом случае мы устанавливаем
wd в 0, если -λ £ cd £ λ, но не усаживаем значения wd вне этого интервала.
Угловой коэффициент линии мягкого порога не такой же, как к диагонали,
т. е. даже большие коэффициенты усаживаются к нулю. Поэтому lasso и озна‑
чает «least absolute selection and shrinkage operator» – оператор выбора наи‑
меньшей абсолютной величины и усадки. Таким образом, lasso – смещенная
оценка (см. раздел 4.7.6.1).

Tlgm: @it_boooks

476  Линейная регрессия
ŵk

ŵk


λ

ck

(a)


λ

ck

(b)

Рис. 11.9  Слева: задание мягкого порога. Справа: задание жесткого порога.
В обоих случаях по горизонтальной оси откладывается невязка в случае предсказания с использованием всех коэффициентов, кроме wk, а по вертикальной –
оценка коэффициента ŵk, доставляющая минимум этой регуляризированной
невязке. Плоский участок в середине – интервал [-λ,+λ]

Простое решение проблемы смещенной оценки – исключение систематической ошибки (debiasing) – заключается в использовании двухшагово‑
го процесса оценивания: сначала с помощью lasso оценивается носитель
вектора весов (т. е. находятся его ненулевые элементы), а затем отобранные
коэффициенты переоцениваются методом наименьших квадратов. Пример
показан на рис. 11.13.

11.4.4. Путь регуляризации
Если λ = 0, то мы получаем решение по обыкновенному методу наименьших
квадратов, которое будет плотным. При увеличении λ вектор решения ŵ(λ)
будет становиться все более разреженным. Если λ больше некоторого крити‑
ческого значения, то мы получим ŵ = 0. Это происходит тогда, когда градиент
NLL оказывается равен градиенту штрафа и они взаимно сокращаются:
(11.90)
Можно вместо этого работать с границей B по норме 𝓁1. При B = 0 получаем
ŵ = 0. По мере увеличения B решение становится плотнее. Наибольшее значе‑
ние B, при котором хотя бы один компонент равен нулю, равно Bmax = ||ŵmle||1.
По мере увеличения λ вектор решения ŵ становится все более разрежен‑
ным, хотя необязательно монотонно. Мы можем построить графики зави‑
симости значений ŵd от λ (или от границы B) для каждого признака d; они
называются путями регуляризации. Это показано на рис. 11.10b, где мы
применяем регрессию lasso к набору данных о раке предстательной железы,
взятому из [HTF09]. (Признаки gleason и svi рассматриваются как числовые,
а не категориальные.) На рисунке слева при B = 0 все коэффициенты нуле‑
вые. При увеличении B коэффициенты постепенно «включаются»1. Анало‑
1

Принято строить зависимость решения от коэффициента усадки, определенного
как s(B) = B/Bmax, а не от B. Однако это влияет только на масштаб по горизонтальной
оси, но не на форму кривых.

Tlgm: @it_boooks

Регрессия lasso  477

гичный результат для гребневой регрессии показан на рис. 11.10a. Здесь все
коэффициенты ненулевые (в предположении, что λ > 0), поэтому решение
не является разреженным.

(a)

(b)

Рис. 11.10  (a) Профили зависимости коэффициентов гребневой регрессии
для примера рака предстательной железы от границы B при 𝓁2-норме w, т. е.
малые B (большие λ) расположены слева. Вертикальная прямая – значение, выбранное в результате 5-групповой перекрестной проверки по правилу одной
стандартной ошибки. На основе рис. 3.8 из [HTF09]. Построено программой
по адресу figures.probml.ai/book1/11.10. (b) То же, что (a), но с использованием
нормы 𝓁1 вектора w. На оси x показаны критические значения λ = 1/B, в которых
путь регуляризации терпит разрывы. На основе рис. 3.10 из [HTF09]. Построено
программой по адресу figures.probml.ai/book1/11.10

Удивительно, но можно показать, что путь регуляризации в случае lasso –
кусочно-линейная функция от λ [Efr+04; GL15]. То есть существует множество
критических значений λ, в которых активное множество ненулевых коэффи‑
циентов изменяется. На участках между этими критическими значениями
все ненулевые коэффициенты увеличиваются или уменьшаются линейно.
Это показано на рис. 11.10b. Более того, критические значения можно даже
найти аналитически [Efr+04]. В табл. 11.1 показаны значения коэффициентов
в каждой критической точке на пути регуляризации (последняя строка – ре‑
шение по методу наименьших квадратов).
Таблица 11.1. Значения коэффициентов для модели линейной регрессии,
аппроксимирующей набор данных о раке предстательной железы, при изменении
силы 𝓁1-регуляризаторы. Соответствующие графики показаны на рис. 11.10b
0
0.4279
0.5015
0.5610
0.5622
0.5797
0.5864
0.6994
0.7164

0
0
0.0735
0.1878
0.1890
0.2456
0.2572
0.2910
0.2926

0
0
0
0
0
0
–0.0321
–0.1337
–0.1425

0
0
0
0
0.0036
0.1435
0.1639
0.2062
0.2120

0
0
0
0.0930
0.0963
0.2003
0.2082
0.3003
0.3096

0
0
0
0
0
0
0
–0.2565
–0.2890

0
0
0
0
0
0
0
0
–0.0209

0
0
0
0
0
0.0901
0.1066
0.2452
0.2773

Tlgm: @it_boooks

478  Линейная регрессия
Изменяя λ от λmax до 0, мы можем перейти от решения, в котором все веса
равны нулю, к решению, в котором все веса ненулевые. К сожалению, не лю‑
бой размер подмножества достижим с помощью lasso. В частности, можно
показать, что при D > N оптимальное решение может содержать не более
N переменных. В разделе 11.4.8 мы увидим, что если использовать регуляри‑
заторы по норме 𝓁2 и 𝓁1 совместно (этот метод называется эластичной сетью),
то можно будет находить разреженные решения, содержащие больше пере‑
менных, чем имеется обучающих примеров. Это позволяет задействовать
размеры моделей между N и D.

11.4.5. Сравнение методов наименьших
квадратов, lasso, гребневой регрессии и выбора
подмножеств
В этом разделе мы сравним методы наименьших квадратов, lasso, гребневой
регрессии и выбора подмножеств. Для простоты будем предполагать, что
все признаки ортонормированы, т. е. X⟙X = I. В этом случае NLL имеет вид:
NLL(w) = ||y - Xw||2 = y⟙y + w⟙X⟙Xw - 2w⟙X⟙y,

(11.91)
(11.92)

и мы видим, что его можно представить в виде суммы членов, по одному на
каждое измерение. Поэтому оценки MAP и MLE можно записать аналитиче‑
ски отдельно для каждого веса wd, как показано ниже.
 MLE. Из формулы (11.85) получаем, что решение методом OLS имеет
вид:
ŵdmle = cd /ad = x⟙:dy,

(11.93)

где x:d – d-й столбец X.
 Гребневая регрессия. Можно показать, что оценка гребневой регрес‑
сии имеет вид:
(11.94)
 Lasso, Из формулы (11.88) и того факта, что ŵdmle = cd /ad, имеем
(11.95)
Это соответствует заданию мягкого порога, показанному на рис. 11.9a.
 Выбор подмножества. Если отобрать K лучших признаков методом
выбора подмножества, то оценка параметров принимает вид:
(11.96)

Tlgm: @it_boooks

Регрессия lasso  479

где rank – положение в списке весов, отсортированном по величине
(ранг). Это соответствует заданию жесткого порога, показанному на
рис. 11.9b.
Теперь мы приведем результаты экспериментального сравнения качества
предсказания этих методов регрессии на наборе данных о раке предстатель‑
ной железы, взятые из [HTF09]. (Признаки gleason и svi рассматриваются как
числовые, а не категориальные.) На рис. 11.11 показаны оценки коэффици‑
ентов при значении λ (или K), выбранном путем перекрестной проверки; как
видим, метод выбора подмножества дает самое разреженное решение, а за
ним следует lasso. С точки зрения качества предсказаний все методы очень
похожи, как показывает рис. 11.12.

Член
intercept
lcalvol
lweight
age
lbph
svi
lcp
gleason
pgg45
Test_error
Std_error

OLS
2.465
0.676
0.262
–0.141
0.209
0.304
–0.287
–0.021
0.266
0.521
0.176

Лучшее
подмножество
2.477
0.736
0.315
0.000
0.000
0.000
0.000
0.000
0.000
0.492
0.141

Гребневая
2.467
0.522
0.255
–0.089
0.186
0.259
–0.095
0.025
0.169
0.487
0.157

Lasso
2.465
0.548
0.224
0.000
0.129
0.186
0.000
0.000
0.083
0.457
0.146

Рис. 11.11  Результаты разных методов для набора данных о раке предстательной железы с 8 признаками и 67 обучающими примерами. Методы: OLS =
обыкновенный метод наименьших квадратов, Subset = регрессия на лучшем
подмножестве, Ridge = гребневая регрессия, Lasso. В строках представлены
коэффициенты; мы видим, что регрессия на подмножестве и lasso дают разреженные решения. В нижней строке приведена среднеквадратическая ошибка
на тестовом наборе (30 примеров). На основе табл. 3.3. из [HTF09]. Построено
программой по адресу figures.probml.ai/book1/11.11

11.4.6. Согласованность выбора переменных
Обычно 𝓁1-регуляризацию применяют для оценки множества релевантных
переменных; эта процедура называется выбором переменных. Метод, спо‑
собный восстановить истинный набор релевантных переменных (т. е. носи‑
тель вектора w*) в пределе при N ® ¥, называется согласованным с выбором модели. (Это теоретическое понятие, предполагающее, что в основе
данных лежит модель.)
Приведем пример. Сначала генерируется разреженный сигнал w* разме‑
ра D = 4096, который содержит 160 случайно расположенных пиков, рав‑
ных ±1. Затем генерируется случайная матрица плана X размера N´D, где
N = 1024. Наконец, генерируется зашумленное наблюдение y = Xw* + ε, где

Tlgm: @it_boooks

480  Линейная регрессия
εn ~ 𝒩(0, 0.012). После этого мы оцениваем w по y и X. Исходный w* показан
в первом ряду на рис. 11.13. Во втором ряду показана 𝓁1-оценка ŵL1, полу‑
ченная при λ = 0.1λmax. Мы видим, что пики расположены там, где нужно, т. е.
модель правильно идентифицировала релевантные переменные. Однако,
хотя ŵL1 правильно идентифицировала ненулевые компоненты, они слиш‑
ком малы из-за усадки. В третьем ряду показаны результаты после устра‑
нения систематической ошибки (см. раздел 11.4.3). Видно, что мы смогли
восстановить исходный вектор весов. Наконец, в последнем ряду показана
плотная оценка, полученная методом OLS. Также видно, что не существует
такого одного порога, который можно было бы применить к ŵmle, чтобы вос‑
становить правильный разреженный вектор весов.

Рис. 11.12  Коробчатая диаграмма, показывающая абсолютные величины ошибок предсказания на тестовом
наборе данных о раке предстательной железы для различных методов регрессии. Построено программой по
адресу figures.probml.ai/book1/11.12

Рис. 11.13  Пример восстановления разреженного
сигнала с помощью lasso. Детали см. в тексте. На основе
рис. 1 из работы of [FNW07]. Построено программой по
адресу figures.probml.ai/book1/11.13

Tlgm: @it_boooks

Регрессия lasso  481

Чтобы воспользоваться методом lasso для выбора переменных, мы должны
задать λ. Для выбора оптимального значения на пути регуляризации часто
применяют перекрестную проверку. Однако важно заметить, что перекрест‑
ная проверка выбирает значение λ, дающее хорошую точность предсказаний.
Обычно оно не совпадает со значением, восстанавливающим «истинную»
модель. Чтобы понять, почему это так, вспомним, что 𝓁1-регуляризация вы‑
полняет выбор и усадку, т. е. выбранные коэффициенты сдвигаются бли‑
же к 0. Чтобы предотвратить такую усадку релевантных коэффициентов,
перекрестная проверка стремится выбрать не слишком большое значение λ.
Конечно, это должно приводить к менее разреженной модели, содержащей
нерелевантные переменные (ложноположительные результаты). Действи‑
тельно, в работе [MB06] доказано, что оптимальное с точки зрения качества
предсказаний значение λ не обладает свойством согласованности с выбором
модели. Однако были предложены различные модификации базового ме‑
тода, обеспечивающие согласованность с выбором модели (см., например,
[BG11; HTW15]).

11.4.7. Групповое lasso
При стандартной 𝓁1-регуляризации мы предполагаем, что существует вза‑
имно однозначное соответствие между параметрами и переменными, т. е.
ŵd = 0 означает, что переменная d исключается. Но в более сложных моде‑
лях с одной переменной может быть ассоциировано несколько параметров.
В частности, с каждой переменной d может быть связан вектор весов wd, так
что полный вектор весов имеет блочную структуру w = [w1, w2, …, wD]. Если
мы хотим исключить переменную d, то должны сделать так, чтобы весь под‑
вектор wd обратился в нуль. Это называется групповой разреженностью.

11.4.7.1. Приложения
Приведем несколько примеров, когда групповая разреженность бывает по‑
лезна.
 Линейная регрессия с категориальными входами: если d-я переменная
категориальная и имеет K возможных значений, то она будет пред‑
ставлена унитарным вектором длины K (раздел 1.5.3.1), поэтому, чтобы
исключить ее, нужно будет обнулить весь вектор входящих весов.
 Мультиномиальная логистическая регрессия: с d-й переменной ассо‑
циировано C весов, по одному на класс (раздел 10.3), поэтому, чтобы
исключить ее, нужно будет обнулить весь вектор исходящих весов.
 Нейронные сети: у k-го нейрона несколько входов, поэтому если мы
хотим «выключить нейрон», то должны будем обнулить все входя‑
щие веса. Это позволяет использовать групповую разреженность для
обучения структуры нейронной сети (детали см., например, в работе
[GEH19]).
 Обучение с несколькими задачами: с каждым входным признаком ас‑
социировано C весов, по одному на выходную задачу. Если мы хотим

Tlgm: @it_boooks

482  Линейная регрессия
использовать некоторый признак для всех задач или ни для одной из
них, то должны выбирать веса на уровне групп [OTJ07].

11.4.7.2. Штрафование по норме ฀2
Для поощрения групповой разреженности мы разбиваем вектор параметров на
G групп, w = [w1, …, wG], а затем минимизируем следующую целевую функцию:
(11.97)
где ||wg||2 =

– 𝓁2-норма вектора групповых весов. Если NLL вычис‑

ляется по методу наименьших квадратов, то этот метод называется групповым lasso [YL06; Kyu+10].
Заметим, что если бы мы использовали в (11.97) квадраты норм, то модель
была бы эквивалентна гребневой регрессии, так как
(11.98)
Благодаря использованию квадратного корня мы штрафуем за радиус шара, содержащего вектор весов группы, а радиус может быть малым, только
когда малы все элементы.
По-другому понять, почему вариант с квадратным корнем поощряет раз‑
реженность на групповом уровне, можно, рассмотрев градиент целевой
функции. Предположим, что имеется только одна группа из двух перемен‑
ных, поэтому штраф имеет вид

Производная по w1 равна
(11.99)

Если w2 близко к нулю, то производная стремится к 1, а w1 также прижи‑
мается к нулю с силой, пропорциональной λ. Однако если w2 велико, то про‑
изводная стремится к 0, а w1 тоже может оставаться большим. Поэтому все
коэффициенты в группе будет иметь схожий размер.

11.4.7.3. Штрафование по норме ฀¥
В одном из вариантов описанной техники норма 𝓁2 заменяется нормой 𝓁¥
[TVW05; ZRY05]:
(11.100)

Ясно, что это тоже приведет к групповой разреженности, поскольку если
самый большой элемент группы принудительно уменьшается, то с меньши‑
ми происходит то же самое.

Tlgm: @it_boooks

Регрессия lasso  483

11.4.7.4. Пример
Иллюстрации применения этой техники приведены на рис. 11.14 и 11.15.
Имеется истинный сигнал размера D = 212 = 4096, разбитый на 64 группы
по 64 элемента. Мы случайным образом выбираем 8 групп w и назначаем им
ненулевые значения. На рис. 11.14 значения выбираются из распределения
𝒩(0, 1), а на рис. 11.15 все значения равны 1. Затем мы выбираем случайную
матрицу плана X размера N´D, где N = 210 = 1024. Наконец, мы генерируем
y = Xw + ε, где ε ~ 𝒩(0, 10-4IN). С такими данными мы оцениваем носитель
w методом lasso или группового lasso по норме 𝓁1, а затем оцениваем не‑
нулевые значения методом наименьших квадратов (оценка с исключенной
систематической ошибкой).
Original (D = 4096, number groups = 64, active groups = 8)

Standard L1 (debiased 1, tau = 0.427, MSE = 0.08415)

(а)

(b)

Block-L2 (debiased 1, tau = 0.427, MSE = 0.000378)

Block-Linf (debiased 1, tau = 0.427, MSE = 0.0613)

(c)

(d)

Рис. 11.14  Иллюстрация группового lasso, когда исходный сигнал – кусочно-гауссова функция. (a) Исходный сигнал. (b) Оценка методом lasso. (c) Оценка методом группового lasso с нормой 𝓁2 на блоках.
(d) Оценка методом группового lasso с нормой 𝓁1 на блоках. На основе
рис. 3 и 4 из [WNF09]. Построено программой по адресу figures.probml.
ai/book1/11.14

Из рисунков видно, что метод группового lasso работает намного луч‑
ше, чем обычный метод lasso, поскольку учитывает известную групповую
структуру. Также видно, что при использовании нормы 𝓁1 есть тенденция
к уравниванию величин всех элементов в одном блоке. Это хорошо во втором
примере, но плохо в первом. (Значение λ во всех примерах было одинаково
и задано вручную.)

Tlgm: @it_boooks

484  Линейная регрессия
Original (D = 4096, number groups = 64, active groups = 8)

Standard L1 (debiased 1, tau = 0.361, MSE = 0.1232)

(а)

(b)

Block-L2 (debiased 1, tau = 0.361, MSE = 0.000386)

Block-Linf (debiased 1, tau = 0.361, MSE = 0.000635)

(c)

(d)

Рис. 11.15  То же, что рис. 11.14, но исходный сигнал кусочно-постоянный.
Построено программой по адресу figures.probml.ai/book1/11.15

11.4.8. Эластичная сеть (комбинация гребневой
регрессии и lasso)
Для применения группового lasso мы должны заранее определить групповую
структуру. В некоторых задачах она неизвестна, но тем не менее мы хоте‑
ли бы рассматривать сильно коррелированные коэффициенты как неявную
группу. Один из способов достижения этой цели, предложенный в работе
[ZH05], – использовать эластичную сеть, представляющую собой гибрид
гребневой регрессии и lasso-регрессии1. Это соответствует минимизации
следующей целевой функции:
�(w, λ1, λ2) = ||y - Xw||2 + λ2||w||22 + λ1||w||1.

(11.101)

Эта функция строго выпукла (в предположении, что λ2 > 0), поэтому суще‑
ствует единственный глобальный минимум, даже если матрица X неполного
ранга. Можно показать [ZH05], что любой строго выпуклый штраф, налага‑
емый на w, будет обладать группирующим эффектом, т. е. коэффициенты
регрессии сильно коррелированных переменных будут близки. В частности,
если два признака тождественно равны, т. е. X:j = X:k, то можно показать, что
1

Метод назван «эластичная сеть», потому что он работает как «растяжимая рыбо‑
ловная сеть, которая удерживает всю крупную рыбу» [ZH05].

Tlgm: @it_boooks

Регрессия lasso  485

их оценки тоже равны, ŵj = ŵk. С другой стороны, при использовании lasso
может случиться так, что ŵj = 0, а ŵk ¹ 0 или наоборот, что дает не столь
устойчивые оценки.
Помимо такой мягкой группировки, эластичная сеть обладает и другими
достоинствами. В частности, если D > N, то максимальное число ненулевых
элементов, которое можно выбрать (за исключением оценки MLE, имеющей
D ненулевых элементов), равно N. А эластичная сеть может выбрать более N
ненулевых элементов на пути к плотной оценке и тем самым исследовать
больше возможных подмножеств переменных.

11.4.9. Алгоритмы оптимизации
Для решения задачи оптимизации lasso и других 𝓁1-регуляризированных
целевых функций было предложено много алгоритмов. В этом разделе мы
кратко рассмотрим некоторые наиболее популярные.

11.4.9.1. Покоординатный спуск
Иногда бывает трудно оптимизировать все переменные сразу, но легко по
одной. Именно, мы можем искать j-й коэффициент, зафиксировав все осталь‑
ные:
(11.102)
где ej – j-й единичный вектор. Это называется покоординатным спуском.
Мы можем либо перебирать координаты детерминированно, либо выбирать
их случайным образом, либо выбирать ту координату, по которой градиент
убывает быстрее всего.
Этот метод особенно привлекателен, если каждую из одномерных задач
оптимизации можно решить аналитически, как в случае lasso (см. форму‑
лу (11.87)). Это так называемый алгоритм стрельбы [Fu98; WL08]. (Слово
«стрельба» – отсылка к ковбойской теме, навеянной термином «lasso».) Де‑
тали приведены в алгоритме 4.
Метод покоординатного спуска был распространен на обобщенные ли‑
нейные модели в работе [FHT10] и лежит в основе популярной библиотеки
glmnet.
Алгоритм 4. Покоординатный спуск для lasso (алгоритм стрельбы)
1
2
3
4
5
6
7

Инициализировать w = (X⟙X + λI)-1X⟙y;
repeat
for d = 1, …, D do
ad = åNn=1 x2nd;
cd = åNn=1 xnd (yn - w⟙xn + wd xnd);
wd = SoftThreshold(cd /ad, λ /ad);
until сошелся;

Tlgm: @it_boooks

486  Линейная регрессия

11.4.9.2. Спроецированный градиентный спуск
В этом разделе мы преобразуем недифференцируемый штраф по норме 𝓁1
в гладкий регуляризатор. Для этого сначала воспользуемся расщеплением
переменной (split variable trick) и запишем w = w+ - w–, где w+ = max{w, 0}
и w– = -min{w, 0}. Теперь можно заменить ||w||1 суммой åd(wd+ + wd–). Также
необходимо заменить NLL(w) на NLL(wd+ + wd–). Таким образом, мы получаем
гладкую задачу оптимизации, правда, условной:
(11.103)
Для решения этой задачи можно воспользоваться спроецированным гра‑
диентным спуском (раздел 8.6.1). Именно, мы можем навязать ограничение,
спроецировав на положительный ортант – wd := max(wd, 0); эта операция
обозначается P+. Тогда обновление спроецированного градиента принимает
вид:
(11.104)
где e – вектор, состоящий из всех единиц.

11.4.9.3. Проксимальный градиентный спуск
В разделе 8.6 мы познакомились с методом проксимального градиентного
спуска, который можно использовать для оптимизации гладких функций
с негладкими штрафами, например по норме 𝓁1. В разделе 8.6.2 мы показали,
что проксимальный оператор для 𝓁1-штрафа соответствует мягкому порогу.
Таким образом, обновление проксимального градиентного спуска можно
записать в виде
wt+1 = SoftThreshold(wt - ρtÑNLL(wt), ρt λ),

(11.105)

где оператор мягкого порога (формула (8.134)) применяется поэлементно.
Это называется итеративным алгоритмом мягкого порога (iterative soft
thresholding – ISTA) [DDDM04; Don95]. Если объединить его с ускорением
Нестерова, то получится метод «быстрый ISTA», или FISTA [BT09], который
широко применятся для обучения разреженных линейных моделей.

11.4.9.4. LARS
В этом разделе мы обсудим методы, которые могут порождать множество ре‑
шений для разных значений λ, начиная с пустого множества, т. е. вычисляют
полный путь регуляризации (раздел 11.4.4). В этих алгоритмах используется
тот факт, что можно быстро вычислить ŵ(λk) по ŵ(λk-1), если λk ≈ λk-1; это
называется теплым запуском. На самом деле, даже если нам нужно только
решение для одного значения λ, назовем его λ*, иногда вычислительно эф‑

Tlgm: @it_boooks

Регрессионные сплайны  487

фективнее вычислить множество решений, от λmax до λ*, применяя теплый
запуск; это называется методом продолжения, или методом гомотопии.
Часто это гораздо быстрее, чем «холодный запуск» с точки λ*, особенно когда
λ* мало.
Алгоритм LARS [Efr+04] (least angle regression and shrinkage) – пример
метода гомотопии для задачи lasso. Он умеет эффективно вычислять ŵ(λ)
для всех возможных значений λ. (Похожий алгоритм был независимо открыт
в работах [OPT00b; OPT00a]).
LARS работает следующим образом. Он начинает с настолько большо‑
го значения λ, что выбирается только переменная, которая сильнее всего
коррелирована с выходным вектором y. Затем λ уменьшается, до тех пор
пока не будет найдена вторая переменная, имеющая такую же (по величине)
корреляцию с текущей невязкой, как и первая переменная, где невязка на
k-м шаге пути определяется как rk = y - X:,Fk wk, где Fk – текущее активное
множество (см. формулу (11.83)). Удивительно, но это новое значение λ мож‑
но найти аналитически с помощью геометрического рассуждения (отсюда
и слова «least angle» (наименьший угол) в названии алгоритма). Это позволя‑
ет алгоритму быстро «прыгнуть» к следующей точке на пути регуляризации,
в которой активное множество изменяется. Процедура повторяется, пока не
будут добавлены все переменные.
Необходимо оставить возможность исключать переменные из текущего
активного множества даже при увеличении λ, если мы хотим, чтобы после‑
довательность решений соответствовала пути регуляризации в методе lasso.
Если запретить исключение переменных, то получится слегко отличающийся
алгоритм, который называется методом наименьших углов (least angle
regression – LAR). LAR очень похож на жадный прямой выбор (greedy for‑
ward selection) и на метод, известный под названием бустинг наименьших
квадратов (least squares boosting) (см., например, [HTW15]).

11.5. регрессионные сплайны*
Мы видели, как использовать разложение по полиномиальному базису для
создания нелинейных отображений входа в выход, даже когда модель оста‑
ется линейной по параметрам. Проблема с полиномами заключается в том,
что они дают глобальную аппроксимацию функции. Мы можем добиться
большей гибкости с помощью серии локальных аппроксимаций. Для этого
нужно только определить набор базисных функций, имеющих локальный
носитель. Понятие «локальности» трудно определить в пространствах входов
большой размерности, из-за чего в этом разделе мы ограничимся одномер‑
ными выходами. Тогда мы сможем построить аппроксимацию функции вида
(11.106)
где Bi – i-я базисная функция.

Tlgm: @it_boooks

488  Линейная регрессия
В качестве базисных функций часто используют B-сплайны (буква «B» оз‑
начает «basis», а «сплайн» – это гибкая линейка, с помощью которого худож‑
ники рисуют кривые линии, проходящие через заданные точки плоскости).

11.5.1. B-сплайны в качестве базисных функций
Сплайном называется кусочно-полиномиальная функция степени D, для ко‑
торой положения кусков определяются множеством узлов, t1 < … < tm. Точ‑
нее, полином определен на каждом из интервалов (-¥, t1), [t1, t2], …, [tm, 1).
Эта функция непрерывна и имеет непрерывные производные порядка 1, …,
D - 1 в узлах. Часто используют кубические сплайны, для которых D = 3.
Такие функции непрерывны, и их первая и вторая производные также не‑
прерывны в каждом узле.
Мы опустим детали вычисления B-сплайнов, поскольку для наших целей
они несущественны. Достаточно знать, что можно вызвать функцию patsy.
bs, которая преобразует матрицу данных X размера N´1 в матрицу плана B
размера N´(K + D + 1), где K – число узлов, а D – степень. (Или можно задать
желаемое число базисных функций и позволить patsy самой найти число
и местоположения узлов.)
Этот подход показан на рис. 11.16, где используются B-сплайны степени 0,
1 и 3 с тремя узлами. Взвешенные комбинации этих базисных функций по‑
зволяют получать все более и более гладкие функции, как показано в нижнем
ряду.

Рис. 11.16  B-сплайны степени 0, 1 и 3. Верхний ряд: невзвешенные базисные функции. Точками обозначены места трех внутренних узлов – [0.25, 0.5,
0.75]. Нижний ряд: взвешенные комбинации базисных функций со случайными
весами. Построено программой по адресу figures.probml.ai/book1/11.16. На основе рис. 5.4 из работы [MKL11]. Печатается с разрешения Освальдо Мартина

Tlgm: @it_boooks

Регрессионные сплайны  489

На рис. 11.16 видно, что у каждой базисной функции имеется локаль‑
ный носитель. В любой входной точке x «активны» только D + 1 базисных
функций. Это станет более очевидным, если нарисовать саму матрицу пла‑
на B. Сначала рассмотрим кусочно-постоянный сплайн, показанный на
рис. 11.17a. Первый B-сплайн (столбец 1) равен 1 для первых пят наблюде‑
ний и 0 для всех остальных. Второй B-сплайн (столбец 0) равен 0 для пер‑
вых пяти наблюдений, 1 для следующих пяти, а затем снова 0 и т. д. Теперь
рассмотрим кусочно-линейный сплайн на рис. 11.17b. Первый B-сплайн
(столбец 0) изменяется от 1 до 0, следующие три сплайна изменяются от
0 до 1 и снова до 0; последний сплайн (столбец 4) изменяется от 0 до 1;
все эти сплайны представлены треугольными формами, показанными на
среднем рисунке в верхнем ряду. Наконец, рассмотрим кубический сплайн
на рис. 11.17c. Здесь активации более гладкие, так что и результирующая
модель тоже будет более гладкой.

(а)

(b)

(c)

Рис. 11.17  Матрица плана для B-сплайнов степени (a) 0, (b) 1 и (c) 3. Сплайны
вычислены для 20 входных точек в диапазоне от 0 до 1. Построено программой
по адресу figures.probml.ai/book1/11.17. На основе рис. 5.6 из работы [MKL11].
Печатается с разрешения Освальдо Мартина

11.5.2. Обучение линейно модели
с помощью сплайнового базиса
Вычислив матрицу плана B, мы можем использовать ее для обучения ли‑
нейной модели методом наименьших квадратов или гребневой регрессии.
(Обычно лучше использовать какую-то регуляризацию.) Например, рассмотрим набор данных из работы [McE20, раздел 4.5], содержащий температуры
в начале сезона цветения сакуры в Японии по годам (нам этот набор данных
интересен своей полупериодической структурой). Мы аппроксимируем его
кубическим сплайном с 15 узлами, выбранным в соответствии с квантилями
данных. Результат показан на рис. 11.18. Как видим, аппроксимация выгля‑
дит разумно. Увеличение числа узлов улучшит качество аппроксимации, но
в конце концов приведет к переобучению. Для выбора числа узлов можно
применить какой-нибудь метод выбора модели, например поиск на сетке
в сочетании с перекрестной проверкой.

Tlgm: @it_boooks

490  Линейная регрессия

Рис. 11.18  Аппроксимация одномерного набора данных кубическим сплайном с 15 узлами. Построено программой по адресу figures.probml.ai/book1/11.18. На основе рис. 5.6 из работы [McE20]

11.5.3. Сглаживающие сплайны
Сглаживающие сплайны связаны с регрессионными, но число узлов N
совпадает с числом точек данных. Таким образом, это непараметрические
модели, потому что число параметров растет вместе с размером данных,
а не фиксируется заранее. Во избежание переобучения при использовании
сглаживающих сплайнов применяется 𝓁2-регуляризация. Эта техника тесно
связана с регрессией на основе гауссовых процессов, обсуждаемой в раз‑
деле 17.2.

11.5.4. Обобщенные аддитивные модели
Обобщенная аддитивная модель (generalized additive model – GAM) рас‑
пространяет сплайновую регрессию на случай многомерных входов [HT90].
Для этого игнорируются взаимодействия между входами и предполагается,
что функция имеет следующую аддитивную форму:
(11.107)
где каждая функция fd – регрессионный или сглаживающий сплайн. Эту мо‑
дель можно обучить методом настройки с возвращениями (backfitting),
который итеративно подгоняет каждую fd к частичным невязкам, порожда‑
емым другими членами. GAM-модели можно применять не только к регрес‑
сии (но, например, и к классификации), воспользовавшись функцией связи,
как в обобщенных линейных моделях (глава 12).

Tlgm: @it_boooks

Робастная линейная регрессия  491

11.6. робастная линейная регрессия*
Очень часто шум в моделях регрессии моделируют с помощью гауссова рас‑
пределения с нулевым средним и постоянной дисперсией, rn ~ 𝒩(0, σ2), где
rn = yn - w⟙xn. Как мы видели, в этом случае максимизация правдоподо‑
бия эквивалентна минимизации суммы квадратов невязок. Однако наличие
в данных выбросов может приводить к плохой аппроксимации, как показа‑
но на рис. 11.19a. (Выбросами являются точки в нижней части рисунка.) Это
объясняется тем, что штраф пропорционален квадрату отклонения, поэтому
точки, оказавшиеся далеко от прямой, оказывают большее влияние, чем точ‑
ки вблизи прямой.

(a)

(b)

Рис. 11.19  (a) Робастная линейная регрессия. Построено программой по
адресу figures.probml.ai/book1/11.19. (b) Функции потерь 𝓁2, 𝓁1 и Хьюбера при
δ = 1.5. Построено программой по адресу figures.probml.ai/book1/11.19

Один из способов добиться робастности к выбросам – заменить гауссово
распределение выходной переменной распределением с тяжелыми хвостами, которое назначает более высокое правдоподобие выбросам, не прибегая
к возмущению прямой линии, чтобы «объяснить» их. Ниже мы обсудим не‑
сколько распределений вероятностей выходной переменной, пригодных для
этой цели, см. перечень в табл. 11.2.

11.6.1. Правдоподобие Лапласа
В разделе 2.7.3 мы отмечали, что распределение Лапласа тоже робастно к вы‑
бросам. Если использовать его в качестве модели наблюдений для регрессии,
то получится следующее правдоподобие:
(11.108)

Tlgm: @it_boooks

492  Линейная регрессия
Таблица 11.2. Сводка правдоподобий, априорных и апостериорных распределений,
применяемых для линейной регрессии. Столбец «Правдоподобие» относится к форме
распределения p(y|x, w, σ2), столбец «Априорное» – к форме распределения p(w),
а столбец «Апостериорное» – к форме распределения p(w|𝒟
𝒟). «Точечное» означает
вырожденное распределение δ(w - ŵ), где ŵ – оценка MAP. Оценка MLE эквивалентна
точечному апостериорному и равномерному априорному распределению
Правдоподобие
Гауссово
Стьюдента
Лапласа
Гауссово
Гауссово
Гауссово

Априорное
Равномерное
Равномерное
Равномерное
Гауссово
Лапласа
ГауссовоГамма

Апостериорное
Точечное
Точечное
Точечное
Точечное
Точечное
Гауссово-Гамма

Название
Наименьших квадратов
Робастная регрессия
Робастная регрессия
Гребневая
Lasso
Байесовская линейная
регрессия

Раздел
11.2.2
11.6.2
11.6.1
11.3
11.4
11.7

Причиной робастности является использование |y - w⟙x| вместо (y - w⟙x)2.
На рис. 11.19a приведен пример этого метода в действии.

11.6.1.1. Вычисление MLE методами линейного
программирования
Мы можем вычислить MLE для этой модели средствами линейного програм‑
мирования. В разделе 8.5.3 мы говорили, что это метод решения задач ус‑
ловной оптимизации вида
(11.109)
где v Î ℝn – множество n неизвестных параметров, c⟙v – линейная целевая
функция, подлежащая минимизации, а a⟙iv £ bi – множество m линейных
ограничений, которые необходимо удовлетворить. Чтобы применить эту
идею к нашей задаче, определим v = (w1, …, wD, e1, …, eN) Î ℝD+N, где ei =
|yi - ŷ i| – невязка для примера i. Мы хотим минимизировать сумму невязок,
поэтому определим c = (0, …, 0, 1, …, 1) Î ℝD+N, где первые D элементов рав‑
ны 0, а последние N элементов равны 1.
Мы должны наложить ограничение ei = = |yi - ŷ i|. На самом деле доста‑
точно потребовать, чтобы |w⟙xi - yi| £ ei, потому что минимизация суммы ei
«натолкнется» на это ограничение и сделает его точным. Поскольку |a| £ b ⇒
-b £ a £ b, мы можем расписать условие |w⟙xi - yi| £ ei в виде двух линейных
ограничений:
e i ³ w ⟙x i - y i;

(11.110)

ei ³ -(w⟙xi - yi).

(11.111)

Условие (11.110) можно записать в виде
(xi, 0, …, 0, -1, 0, …, 0)⟙v £ yi,

(11.112)

Tlgm: @it_boooks

Робастная линейная регрессия  493

где первые D элементов заполнены xi, а -1 - (D + i)-й элемент вектора. Ана‑
логично условие (11.111) можно записать в виде
(-xi, 0, …, 0, -1, 0, …, 0)⟙v £ -yi.

(11.113)

Эти ограничения можно записать в форме Av £ b, определив A Î ℝ2N´(N+D)
следующим образом:

(11.114)

а b Î ℝ2N – так:

b = (y1, -y1, y2, -y2, …, yN, -yN).

(11.115)

11.6.2. t-правдоподобие Стьюдента
В разделе 2.7.1 мы обсуждали свойства робастности распределения Стьюден‑
та. Чтобы использовать это в контексте регрессии, мы можем просто сделать
среднее линейной функцией входов, как предложено в работе [Zel76]:
p(y|x, w, σ2, ν) = 𝒯(y|w⟙x, σ2, ν).

(11.116)

Эту модель можно обучить методом СГС или EM (детали см. в [Mur22]).

11.6.3. Функция потерь Хьюбера
Альтернативой минимизации NLL с помощью правдоподобия Лапласа или
Стьюдента является использование функции потерь Хьюбера, которая
определяется следующим образом:
(11.117)
Она эквивалентна норме 𝓁2 для ошибок, меньших δ, и норме 𝓁1 для боль‑
ших ошибок. Ее график показан на рис. 5.3.
Преимущество этой функции потерь заключается в том, что она всюду
дифференцируема. Следовательно, оптимизировать потерю Хьюбера будет
гораздо быстрее, чем правдоподобие Лапласа, потому что можно использо‑
вать стандартные методы гладкой оптимизации (например, СГС), а не ли‑
нейное программирование. На рис. 11.19 показана функция потерь Хьюбера
в действии. Результаты качественно похожи на полученные методами Ла‑
пласа и Стьюдента.

Tlgm: @it_boooks

494  Линейная регрессия
Параметр δ, управляющий степень робастности, обычно задается вручную
или с помощью перекрестной проверки. Однако в работе [Bar19] показано,
как аппроксимировать функцию потерь Хьюбера, так чтобы можно было
оптимизировать δ градиентными методами.

11.6.4. RANSAC
В компьютерном зрении для робастной регрессии часто применяют метод
RANSAC (random sample consensus – консенсус на случайной выборке) [FB81].
Он работает следующим образом: производим выборку небольшого началь‑
ного множества точек, обучаем на нем модель, идентифицируем выбросы
относительно этой модели (примеры с большими невязками), исключаем
выбросы, а затем переобучаем модель на регулярных точках. Повторяем
эту процедуру для многих случайно выбранных начальных множеств и вы‑
бираем наилучшую модель.
Детерминированную альтернативу RANSAC дает следующая итеративная
схема: сначала предполагаем, что все точки регулярные, и обучаем модель
ŵ0; затем на каждой итерации t идентифицируем выбросы как точкис боль‑
шой невязкой относительно модели ŵt, исключаем их и переобучаем модель
на оставшихся точках – в результате получается модель ŵt+1. Несмотря на то
что из-за такой схемы жестких порогов задача становится невыпуклой, мож‑
но доказать, что эта простая схема быстро сходится к оптимальной оценке
при некоторых разумных предположениях [Muk+19; Sug+19].

11.7. байесоВская линейная регрессия*
Мы видели, как вычисляются оценки MLE и MAP для моделей линейной
регрессии с различными априорными распределениями. В этом разделе мы
обсудим, как вычислять апостериорное распределение параметров, p(θ|𝒟).
Для простоты будем предполагать, что дисперсия известна, так что нам про‑
сто нужно вычислить p(w|𝒟, σ2). Общий случай рассмотрен во втором томе
этой книги, [Mur22].

11.7.1. Априорные распределения
Для простоты будем использовать гауссово априорное распределение:
(11.118)
Это небольшое обобщение априорного распределения, используемого
в гребневой регрессии (раздел 11.3). Обсуждение других априорных распре‑
делений см. во втором томе этой книги, [Mur22].

Tlgm: @it_boooks

Байесовская линейная регрессия  495

11.7.2. Апостериорные распределения
Мы можем переписать правдоподобие в терминах многомерного гауссова
распределения в виде
(11.119)
где IN – единичная матрица размера N´N. Затем можно с помощью формулы
Байеса для гауссовых распределений (3.37) вывести апостериорное распре‑
деление:
(11.120)
(11.121)
(11.122)
где – апостериорное среднее, а – апостериорная ковариация.
Если = 0 и = τ2I, то апостериорное среднее принимает вид = (1/σ2)

X y. Если положить λ = σ2/τ2, то мы вернемся к оценке гребневой регрессии,
= (λI + X⟙X)-1X⟙y, что совпадает с формулой (11.57).

11.7.3. Пример
Пусть имеется модель одномерной регрессии вида f(x, w) = w0 + w1x1, где
истинные параметры равны w0 = -0.3 и w1 = 0.5. Произведем вывод p(w|𝒟)
и визуализируем двумерное априорное и апостериорное распределение при
увеличении размера обучающего набора N.
На рис. 11.20 показаны графики правдоподобия, апостериорного распре‑
деления и аппроксимации апостериорного прогнозного распределения 1.
В каждом ряду показан график одного из этих распределений при увеличе‑
нии количества обучающих данных N. Дадим необходимые пояснения.
 В первом ряду N = 0, т. е. апостериорное распределение совпадает
с априорным. В этом случае наши предсказания «размазаны по всему
пространству», потому что априорное распределение, по сути дела,
равномерное.
 Во втором ряду N = 1, поэтому мы видим одну точку данных (синий
кружочек на графике в третьем столбце). Наше апостериорное распре‑
деление оказывается ограниченным соответствующим правдоподо‑
бием, и предсказания лежат близко к наблюдаемым данным. Однако
1

Для аппроксимации мы выбрали несколько точек из апостериорного распреде‑
ления, ws ~ 𝒩(μ, Σ), а затем построили график 𝔼[y|x, ws], где x пробегает отрезок
[-1, 1], для каждого выбранного значения параметра.

Tlgm: @it_boooks

496  Линейная регрессия
апостериорное распределение имеет гребневидную форму, это говорит
о том, что существует много возможных решений с разными угловыми
коэффициентами и свободными членами. Это согласуется со здравым
смыслом, потому что невозможно однозначно вывести два параметра
(w0 и w1) из одного наблюдения.
 В третьем ряду N = 2. В этом случае апостериорное распределение
гораздо уже, потому что правдоподобие дает два ограничения. Все
наши предсказания будущего теперь расположены ближе к обучающим
данным.

Рис. 11.20  Последовательный байесовский вывод параметров модели линейной регрессии p(y|x) = 𝒩(y|w0 + w1x1, σ2). Левый столбец: функция правдоподобия для текущей точки данных. Средний столбец: апостериорное распределение при условии N точек данных, p(w0, w1|x1:N, y1:N, σ2). Правый столбец:
выборка из текущего апостериорного прогнозного распределения. Ряд 1: априорное распределение (N = 0). Ряд 2: после 1 точки данных. Ряд 3: после 2 точек
данных. Ряд 4: после 100 точек данных. Белый крестик в столбцах 1 и 2 представляет истинное значение параметра; Мы видим, что мода апостериорного
распределения быстро сходится к этой точке. Синие кружочки в столбце 3 – наблюдаемые точки данных. На основе рис. 3.7 из [Bis06]. Построено программой
по адресу figures.probml.ai/book1/11.20

Tlgm: @it_boooks

Байесовская линейная регрессия  497

 В четвертом (последнем) ряду N = 100. Теперь апостериорное рас‑
пределение является, по существу, дельта-функцией, сосредоточенной
в истинном значении w* = (-0.3, 0.5), отмеченном белым кружочком на
графиках во втором и третьем столбцах. Разброс предсказаний связан
с неустранимым гауссовым шумом с дисперсией σ2.
Этот пример показывает, что при увеличении количества данных оценка
апостериорного среднего, = 𝔼[w|𝒟], сходится к истинному значению w*,
с которым генерировались данные. Поэтому мы говорим, что байесовская
оценка является состоятельной (детали см. в разделе 5.3.2). Мы также видим,
что неопределенность апостериорного распределения со временем умень‑
шается. Именно это имеют в виду, когда говорят, что параметры «обучаются»
по мере увеличения объема наблюдаемых данных.

11.7.4. Вычисление апостериорного прогнозного
распределения
Мы обсудили, как вычислять неопределенность параметров модели, p(w|𝒟).
Но как насчет неопределенности предсказаний будущих выходов? Пользуясь
формулой (3.38), можно показать, что апостериорное прогнозное распреде‑
ление в тестовой точке x также является гауссовым:
(11.123)
(11.124)
где (x) σ2 + x⟙ x – дисперсия апостериорного прогнозного распреде‑
ления в точке x после наблюдения N обучающих примеров. Предсказанная
дисперсия зависит от двух членов: дисперсии шума наблюдений σ2 и дис‑
персии параметров . Последняя транслируется в дисперсию наблюдений
способом, зависящим от близости x к обучающим данным 𝒟. Это показа‑
но на рис. 11.21b, где мы видим, что «усы» (величина ошибки) становятся
длиннее по мере удаления от обучающих точек, что является признаком
возрастающей неопределенности. Это может оказаться важным в некоторых
приложениях, например активном обучении, где мы можем выбирать, откуда
собирать обучающие данные (см. раздел 19.4).
Иногда численное вычисление апостериорного распределения параметров, p(w|𝒟), невозможно. В таких случаях мы можем взять точечную оценку,
ŵ, а затем воспользоваться подстановочной аппроксимацией. Это дает
(11.125)
Как видим, апостериорная прогнозная дисперсия постоянна и не зависит
от данных, что показано на рис. 11.21a. Производя выборку параметра из
этого апостериорного распределения, мы всегда будем восстанавливать одну
и ту же функцию, как показано на рис. 11.21c. Напротив, при выборке из
истинного апостериорного распределения, ws ~ p(w|𝒟, σ2), мы получим диа‑

Tlgm: @it_boooks

498  Линейная регрессия
пазон различных функций, показанный на рис. 11.21d, что точнее отражает
неопределенность.

(a)

(b)

(c)

(d)

Рис. 11.21  (a) Подстановочная аппроксимация плотности прогнозного распределения (подставляется MLE параметров) при аппроксимации одномерных
данных полиномом второй степени. (b) Плотность апостериорного прогнозного распределения, полученная путем исключения параметров с помощью
интегрирования. Черная кривая – апостериорное среднее, длина усов равна
двум стандартным отклонениям от плотности. (c) 10 примеров, выбранных из
подстановочной аппроксимации апостериорного прогнозного распределения.
(d) 10 примеров, выбранных из истинного апостериорного прогнозного распределения. Построено программой по адресу figures.probml.ai/book1/11.21

11.7.5. Преимущество центрирования
Внимательный читатель, возможно, заметил, что двумерное апостериорное
распределение на рис. 11.20 имеет форму вытянутого эллипса (который при
N ® ¥ схлопывается в точку). Отсюда следует, что существует сильная апо‑
стериорная корреляция между обоими параметрами, которая может вызвать
вычислительные трудности.
Чтобы понять, почему это происходит, заметим, что каждая точка данных
индуцирует функцию правдоподобия, соответствующую прямой, проходя‑
щей через эту точку. Глядя на все данные вместе, мы видим, что предска‑
зания с максимальным правдоподобием должны соответствовать прямым,

проходящим через среднее данных, (x , ). Таких прямых много, но, увели‑

Tlgm: @it_boooks

Байесовская линейная регрессия  499

w1

w1

чивая угловой коэффициент, мы должны уменьшать свободный член. Поэто‑
му можно считать, что прямые с высокой вероятностью вращаются вокруг
среднего, как колесо фортуны1. Корреляция между w0 и w1 объясняет, почему
апостериорное распределение имеет форму диагональной прямой. (Гауссово
априорное распределение преобразует ее в вытянутый эллипс, но апостери‑
орная корреляция все же сохраняется до тех пор, пока размер выборки не ста‑
нет настолько велик, что апостериорное распределение схлопнется в точку.)
Вычислять такие вытянутые апостериорные распределения бывает труд‑

но. Простое решение – центрировать входные данные, положив x¢n = xn - x .
Теперь прямые могут вращаться вокруг начала координат, что уменьшает
апостериорную корреляцию между w0 и w1 (см. иллюстрацию на рис. 11.22).
(Можно также разделить каждое xn на стандартное отклонение этого при‑
знака, как предлагалось в разделе 10.2.8.)

w0

w0

(а)

(b)

Рис. 11.22  Выборка из апостериорного распределения p(w0, w1|�) для одномерной модели регрессии p(y|x, θ) = 𝒩(y|w0 + w1x, σ2) с гауссовым априорным
распределением. (a) Исходные данные. (b) Центрированные данные. Построено
программой по адресу figures.probml.ai/book1/11.22

Мы можем преобразовать апостериорное распределение, выведенное пу‑
тем аппроксимации центрированных данных, в первоначальную систему
координат, заметив, что
y¢ = w¢0 + w¢1x¢ = w¢0 + w¢1(x - —
x ) = (w¢0 - w¢1—
x ) + w¢1x.

(11.126)

Таким образом, параметры нецентрированных данных равны w0 = w¢0 —
w¢1x и w1 = w¢1.

11.7.6. Мультиколлинеарность
Во многих наборах данных входные переменные могут быть сильно корре‑
лированы. Включение их всех в общем случае не ухудшает верность предска‑
заний (при условии, что используется подходящее априорное распределение
1

Эта аналогия взята из работы [Mar18, стр. 96].

Tlgm: @it_boooks

500  Линейная регрессия
или регуляризатор, предотвращающий переобучение). Однако это может
затруднить интерпретацию коэффициентов.
Для иллюстрации воспользуемся искусственным примером из работы
[McE20, раздел 6.1]. Пусть имеется набор данных о N лицах, в котором пред‑
ставлены сведения об их росте hi, а также длине левой и правой ноги, li и ri.
Предположим, что hi ~ 𝒩(10, 2), так что средний рост равен h– = 10 (единица
измерения не указана). И пусть длины ног, измеренные в долях от роста,
имеют равномерное распределение ρi ~ Unif(0.4, 0.5) плюс небольшой гауссов
шум: li ~ 𝒩(ρihi, 0.02) и ri ~ 𝒩(ρihi, 0.02).
Пусть требуется предсказать рост человека по длинам его ног (я же говорил,
что это искусственный пример!). Поскольку длины левой и правой ноги – за‑
шумленные измерения неизвестной величины, полезно учитывать обе. По‑
этому применим линейную регрессию для аппроксимации p(h|l, r) = 𝒩(h|α +
βl l + βr r, σ2). Мы используем широкие распределения α, βl, βr ~ 𝒩(0, 100)
и σ ~ Expon(1).


= 4.5, можно было бы ожи‑
Поскольку средняя длина ноги равна l = 0.45h
— –
дать, что оба коэффициента β будут близки к h /l = 10/4.5 = 2.2. Однако мар‑
гинальные апостериорные распределения, показанные на рис. 11.23, говорят
о другом: мы видим, что апостериорное среднее βl близко к 2.6, но βr близко
к -0.6. Таким образом, складывается впечатление, что данные о правой ноге
не нужны. А все дело в том, что коэффициент регрессии для признака j ко‑
дирует ценность знания xj при условии, что все остальные признаки x-j уже
известны; мы обсуждали это в разделе 11.2.2.1. Если мы уже знаем длину
левой ноги, то маргинальная ценность знаний о длине правой ноги невели‑
ка. Однако если повторить этот пример, немного изменив данные, то можно
прийти к противоположному выводу и отдать предпочтение правой ноге
перед левой.

Рис. 11.23  Апостериорные маргинальные распределения
параметров в примере с двумя ногами.
Построено программой по адресу figures.probml.ai/book1/11.23

Получить более ясную картину можно, взглянув на совместное распреде‑
ление p(βl, βr|𝒟), показанное на рис. 11.24a. Мы видим, что параметры очень
сильно коррелированы, так что если βr велико, то βl мало, и наоборот. Марги‑

Tlgm: @it_boooks

Байесовская линейная регрессия  501

нальное распределение каждого параметра не улавливает этот факт. Однако
оно все же показывает, что неопределенность каждого параметра велика, т. е.
они неидентифицируемы. Вместе с тем, их сумма корректно определена, что
видно из рис. 11.24b, где представлен график p(βl + βr |𝒟); он центрирован
относительно точки 2.2, как и следовало ожидать.

(a)

(b)

Рис. 11.24  Апостериорные распределения в примере с двумя ногами.
(a) Совместное апостериорное распределение p(βl , βr |𝒟) (b) Апостериорное
распределение p(βl + βr |𝒟). Построено программой по адресу figures.probml.
ai/book1/11.24

Этот пример показывает, что нужно проявлять осторожность, пытаясь
интерпретировать значимость оценок отдельных коэффициентов модели,
поскольку порознь они могут нести мало информации.

11.7.7. Автоматическое определение
релевантности (ARD)*
Рассмотрим модель линейной регрессии с известным шумом наблюдений,
но неизвестными весами, 𝒩(y|Xw, σ2I). Предположим, что для весов ис‑
пользуется гауссово априорное распределение, wj ~ 𝒩(0, 1/αj), где αj – точ‑
ность j-го параметра. Предположим также, что априорные оценки точностей
имеют вид:
(11.127)
где
(11.128)
– маргинальное правдоподобие. Это пример эмпирического байесовского
метода, потому что мы оцениваем априорное распределение по данным.
Можно рассматривать это как вычислительное упрощение полного байесов‑

Tlgm: @it_boooks

502  Линейная регрессия
ского подхода. Однако у него есть и дополнительные преимущества. Именно,
предположим, что после оценивания α мы вычисляем оценку MAP:
(11.129)
Это дает разреженную оценку ŵ, что может показаться удивительным,
если учесть, что гауссово априорное распределение w не поощряет разре‑
женности. Причины этого явления объясняются во втором томе этой книги.
Этот прием называется разреженным байесовским обучением [Tip01],
или автоматическим определением релевантности (automatic relevancy
determination – ARD) [Mac95; Nea96]. Первоначально он был разработан для
нейронных сетей (где разреженность важна для весов первого слоя), но здесь
мы применили его к линейным моделям (см. также раздел 17.4.1, где он при‑
меняется к ядерным линейным моделям).

11.8. упражнения
Упражнение 11.1 [линейная регрессия с несколькими выходами*].
(Источник: Яаккола.)
Рассмотрим линейную модель регрессии с двумерным выходным векто‑
ром yi Î ℝ2. Пусть имеются бинарные входные данные, xi Î {0, 1}. Обучающие
данные имеют вид:
x
0
0
0
1
1
1

y
(-1, -1)⟙
(-1, -2)⟙

(-2, -1)⟙
(1, 1)T
(1, 2)T
(2, 1)T

Погрузим каждое xi в двумерное пространство с помощью следующей ба‑
зисной функции:
ϕ(0) = (1, 0)T, ϕ(1) = (0, 1)T.

(11.130)

Модель принимает вид:
ŷ = WTϕ(x),

(11.131)

где W – матрица 2´2. Вычислите MLE матрицы W по приведенным выше
данным.
Упражнение 11.2 [центрирование и гребневая регрессия].
Предположим, что x— = 0, т. е. входные данные уже центрированы. Пока‑
жите, что оптимизатор

Tlgm: @it_boooks

Упражнения  503

J(w, w0) = (y - Xw - w01)T(y - Xw - w01) + λwTw

(11.132)

дает
ŵ0 = ;

(11.133)

w = (XT X + λI)-1XTy.

(11.134)

Упражнение 11.3 [частная производная RSS*].
Пусть RSS(w) = ||Xw - y||22 – сумма квадратов невязок.
a. Покажите, что
(11.135)
(11.136)
(11.137)
где w-k – w без k-го элемента, xi,-k – xi без k-го элемента и rk = y w⟙-kx:,-k – невязка вследствие использования всех признаков, кроме
k-го. Указание: разбейте веса на включающие и не включающие k-й.
b. Покажите, что если

то

(11.138)
Следовательно, при последовательном добавлении признаков опти‑
мальный вес k-го признака вычисляется путем ортогонального про‑
ецирования x:,-k на текущую невязку.
Упражнение 11.2 [сведение эластичной сети к lasso].
Определим
J1(w) = |y - Xw|2 + λ2|w|2 + λ1|w|1

(11.139)

J2(w) = |y - X w |2 + cλ1|w|1,

(11.140)

и

где c = (1 + λ2)-½ и
(11.141)

Tlgm: @it_boooks

504  Линейная регрессия
Покажите, что
argmin J1(w) = c(argmin J2(w)),

(11.142)

т. е.
J1(cw) = J2(w),

(11.143)

и, следовательно, задачу эластичной сети можно решить, применив регрес‑
сию lasso к модифицированным данным.
Упражнение 11.5 [усадка в линейной регрессии*].
(Источник: Яаккола.)
Рассмотрим линейную регрессию с ортонормированной матрицей плана,
т. е. ||x:,-k||22 = 1 для каждого столбца (признака) k и x⟙:,k x:,j = 0, так что каждый
параметр wk можно оценивать отдельно.
На рис. 10.15b показаны графики зависимости ŵk от ck = 2y⟙x:,k, корреляции
k-го признака с выходом, для трех разных методов оценивания: обыкно‑
венных наименьших квадратов (OLS), гребневой регрессии с параметром λ2
и lasso с параметром λ1.
a. К несчастью, мы забыли пометить графики. Каким методом построена
сплошная (1), пунктирная (2) и штриховая (3) линия?
b. Каково значение λ1?
c. Каково значение λ2?
Упражнение 11.6 [EM-алгоритм для смеси методов линейной регрессии].
Выведите уравнения EM для аппроксимации смесью методов линейной
регрессии.

Глава

12

Tlgm: @it_boooks

Обобщенные
линейные модели*
12.1. ВВедение
В главе 10 мы обсуждали логистическую регрессию, которая в бинарном слу‑
чае соответствует модели p(y|x, w) = Ber(y|σ(w⟙x)). В главе 11 мы обсуждали
линейную регрессию, соответствующую модели p(y|x, w) = 𝒩(y|w⟙x, σ2). Оче‑
видно, что они очень похожи. В частности, в обоих случаях среднее выхода,
𝔼[y|x, w], является линейной функцией от входов x.
Оказывается, существует широкое семейство моделей, обладающих этим
свойством. Они называются обобщенными линейными моделями (generalized linear model – GLM) [MN89].
GLM – это условная версия экспоненциального семейства (раздел 3.4),
в которой естественные параметры являются линейными функциями вхо‑
дов. Точнее, модель имеет следующий вид:
(12.1)
где ηn
w⟙xn – естественный (зависящий от входных данных) параметр,
A(ηn) – логарифмический нормализатор, 𝒯(y) = y – достаточная статистика,
а σ2 – рассеяние1.
Мы будем обозначать отображение линейных входных данных в среднее
выхода μn = 𝓁-1(ηn), где функция 𝓁 называется функцией связи, а 𝓁-1 – функцией среднего.
На основе результатов из раздела 3.4.3 можно показать, что среднее и дис‑
персия выходной переменной равны:
1

Строго говоря, в GLM используется небольшое обобщение естественного экспо‑
ненциального семейства, называемое экспоненциальным семейством рассеяния (exponential dispersion family). Для скалярной переменной оно имеет вид
p(y|η, σ2) = h(y, σ2) exp[(ηy-A(η)/σ2]. Здесь σ2 называется параметром рассеяния.
При фиксированном σ2 это естественное экспоненциальное семейство.

Tlgm: @it_boooks

506  Обобщенные линейные модели*
𝔼[yn|xn, w, σ2] = A¢(ηn)

𝓁-1(ηn):

(12.2)

𝕍[yn|xn, w, σ2] = A²(ηn)σ2.

(12.3)

12.2. примеры

В этом разделе мы приведем примеры широко используемых GLM.

12.2.1. Линейная регрессия
Напомним, что линейная регрессия имеет вид:
(12.4)
Отсюда
(12.5)
где ηn = w⟙xn. Это можно записать в форме GLM следующим образом:
(12.6)
Как видим, A(ηn) = ηn2 /2, откуда
𝔼[yn] = ηn = w⟙xn;
𝕍[yn] = σ2.

(12.7)
(12.8)

12.2.2. Биномиальная регрессия
Если выходная переменная – количество успехов в Nn испытаниях, yn Î {0,
…, Nn}, то можно использовать биномиальную регрессию, определяемую
следующим образом:
p(yn|xn, Nn, w) = Bin(yn|σ(w⟙xn), Nn).

(12.9)

Мы видим, что бинарная логистическая регрессия – частный случай, со‑
ответствующий Nn = 1.
Логарифм плотности распределения вероятностей имеет вид:
(12.10)

Tlgm: @it_boooks

Примеры  507

(12.11)
где μn = σ(ηn). Определим
(12.12)
Следовательно, биномиальная регрессия записывается в форме GLM сле‑
дующим образом:
log p(yn|xn, Nn, w) = ynηn - A(ηn) + h(yn),
где h(yn) =

(12.13)

и

A(ηn) = -Nn log(1 - μn) = Nn log(1 + eηn).

(12.14)

Отсюда
(12.15)
и
(12.16)

12.2.3. Регрессия Пуассона
Если выходная переменная – целочисленный счетчик, yn Î {0, 1, …}, то можно
воспользоваться регрессией Пуассона, определяемой следующим образом:
p(yn|xn, w) = Poi(yn|exp(w⟙xn)),

(12.17)

где
(12.18)
– распределение Пуассона. Регрессия Пуассона широко используется в био‑
статистике, где yn может представлять количество заболеваний у данного
человека или в данной местности либо количество чтений некоторой по‑
зиции в геноме в контексте высокопроизводительного секвенирования (см.,
например, [Kua+09]).
Логарифм плотности распределения вероятностей имеет вид:
log p(yn|xn, w) = yn log μn - μn - log(yn!),

(12.19)

Tlgm: @it_boooks

508  Обобщенные линейные модели*
где μn = exp(w⟙xn). В форме GLM имеем
log p(yn|xn, w) = ynηn - A(ηn) + h(yn),

(12.20)

где ηn = log(μn) = w⟙xn, A(ηn) = μn = eηn и h(yn) = -log(yn!). Отсюда
(12.21)
и
(12.22)

12.3. GLM с неканониЧескими Функциями
сВязи
Мы видели, что средние параметры выходного распределения описываются
формулой μ = 𝓁-1(η), где 𝓁 – функция связи. Эту функцию можно выбрать
несколькими способами, которые мы сейчас и обсудим.
Каноническая функция связи 𝓁 обладает тем свойством, что θ = 𝓁(μ), где
θ – канонические (естественные) параметры. Отсюда
θ = 𝓁(μ) = 𝓁(𝓁-1(η)) = η.

(12.23)

Это то, что мы предполагали до сих пор. Например, для распределения
Бернулли канонический параметр – логарифм отношения шансов θ = log(μ/
(1 - μ)), который возвращается функцией logit:
(12.24)
Обратной к этой функции является сигмоида, или логистическая функция
μ = σ(θ) = 1/(1 + e-θ).
Однако никто не запрещает использовать другие функции связи. Напри‑
мер, пробит-функция связи имеет вид:
η = 𝓁(μ) = Φ-1(μ).

(12.25)

η = 𝓁(μ) = log(-log(1 - μ)).

(12.26)

Еще одна функция связи, которую иногда используют для бинарных вы‑
ходов, – дополнительный двойной логарифм (complementary log-log):

Она применяется в приложениях, где мы либо наблюдаем 0 событий (обо‑
значается y = 0) или одно и более (обозначается y = 1), а появление события
описывается распределением Пуассона с коэффициентом λ. Пусть E – число

Tlgm: @it_boooks

Оценка максимального правдоподобия  509

событий. Предположение Пуассона означает, что p(E = 0) = exp(-λ) и, сле‑
довательно,
p(y = 0) = (1 - μ) = p(E = 0) = exp(-λ).

(12.27)

Таким образом, λ = -log(1 - μ). Если λ является функцией ковариат, то нуж‑
но гарантировать ее положительность, поэтому мы полагаем λ = eη, откуда
η = log(λ) = log(-log(1 - μ)).

(12.28)

12.4. оценка максимального праВдоподобия
Для обучения GLM можно использовать методы, похожие на те, что мы при‑
меняли для обучения модели логистической регрессии. В частности, отри‑
цательное логарифмическое правдоподобие имеет вид (постоянные члены
игнорируются):
(12.29)
где
𝓁n

ηn yn - A(ηn),

(12.30)

где ηn = w⟙xn. Чтобы упростить обозначения, будем предполагать, что σ2 = 1.
Градиент одного члена вычисляется следующим образом:
(12.31)
где μn = f(w⟙x), а f – обратная функция связи, которая отображает канони‑
ческие параметры в средние. Например, в случае логистической регрессии
f(ηn) = σ(ηn), поэтому мы возвращаемся к формуле (10.21). Это выражение
градиента можно очевидным образом использовать в методе СГС или любом
другом градиентном методе.
Гессиан имеет вид:
(12.32)
где
(12.33)
Отсюда
(12.34)

Tlgm: @it_boooks

510  Обобщенные линейные модели*
Например, в случае логистической регрессии f(ηn) = σ(ηn) и f ¢(ηn) = σ(ηn)
(1 - σ(ηn)), так что мы возвращаемся к формуле (10.23). В общем случае мы
видим, что гессиан положительно определен, так как f ¢(ηn) > 0; следователь‑
но, функция отрицательного логарифмического правдоподобия выпукла, по‑
этому MLE для GLM единственна (в предположении, что f(ηn) > 0 для всех n).
На основании вышеизложенных результатов мы можем обучить GLM, при‑
меняя градиентные методы, – очень похоже на то, как обучали модели логи‑
стической регрессии.

12.5. рабоЧий пример: предсказание
обращений за страхоВыми Выплатами
В этом разделе мы приведем пример предсказания обращений за страховы‑
ми выплатами с применением линейной регрессии и регрессии Пуассона1.
Цель состоит в том, чтобы предсказать ожидаемое ежегодное количество об‑
ращений за выплатами после ДТП. Набор данных включает 678 000 примеров
с 9 признаками, в том числе возраст водителя, возраст транспортного сред‑
ства, мощность двигателя и т. д. Предсказать требуется частоту обращений,
т. е. количество обращений по договору страхования, деленное на экпозицию
(т. е. срок договора в годах).
На рис. 12.1a показан тестовый набор. Мы видим, что для 94 % договоров
никаких обращений не было, поэтому данные содержат много нулей, что
типично для данных о счетчиках и частотах. Средняя частота обращений
равна 10 %. Это можно преобразовать в фиктивную модель, которая всегда
предсказывает такую постоянную. Результат подобного предсказания по‑
казан на рис. 12.1b. Но хотелось бы добиться лучшего.

(a)

(b)

(c)

(d)

Рис. 12.1. Предсказания частоты обращений за страховыми выплатами
на тестовом наборе. (a) Данные. (b) Постоянный предиктор. (c) Линейная
регрессия. (d) Регрессия Пуассона. Построено программой по адресу
figures.probml.ai/book1/12.1

1

Пример взят из https://scikit-learn.org/stable/auto_examples/linear_model/plot_poisson_regression_non_normal_loss.html.

Tlgm: @it_boooks

Рабочий пример: предсказание обращений за страховыми выплатами  511

Можно поступить по-простому – использовать линейную регрессию в со‑
четании с каким-нибудь простым методом конструирования признаков (рас‑
пределением по интервалам для непрерывных значений или унитарным ко‑
дированием для категориальных). (Мы добавили слабую 𝓁2-регуляризацию,
так что, строго говоря, это гребневая регрессия.) Результат показан на
рис. 12.1c. Лучше, чем эталон, но все равно не очень хорошо. В частности,
эта модель может предсказывать отрицательное значение и не улавливает
длинный хвост.
Можно добиться лучшего с помощью регрессии Пуассона, используя те же
самые признаки, но логарифмическую функцию связи. Результаты показаны
на рис. 12.1d. Как видим, предсказания гораздо лучше.
Возникает интересный вопрос – как количественно охарактеризовать ка‑
чество модели в такого рода задачах. Если использовать среднеквадрати‑
ческую ошибку или среднее абсолютное отклонение, то из табл. 12.1 можно
сделать вывод, что гребневая регрессия лучше, чем регрессия Пуассона, хотя
это, очевидно, неверно, как показывает рис. 12.1. Поэтому качество чаще из‑
меряют с помощью девиации, которая определяется следующим образом:
(12.35)
где μi – предсказанные параметры для i-го примера (на основе входных при‑
знаков xi и обучающего набора 𝒟), а μi* – оптимальный параметр, оцененный
путем обучения модели только на истинном выходе yi. (Это так называемая
насыщенная модель, которая идеально аппроксимирует тестовый набор.)
В случае регрессии Пуассона имеем μi* = yi. Отсюда
(12.36)
(12.37)
Если судить по этому показателю, то модель Пуассона, безусловно, лучше
(см. последний столбец в табл. 12.1).
Таблица 12.1. Показатели качества на тестовом наборе.
СКО = среднеквадратическая ошибка. САО = среднее абсолютное отклонение.
Девиация = девиация Пуассона
Название
Фиктивная
Гребневая
Пуассона

СКО
0.564
0.560
0.560

САО
0.189
0.177
0.186

Девиация
0.625
0.601
0.594

Мы можем также вычислить калибровочную кривую, которая отражает
зависимость фактической частоты от предсказанной. Для этого мы разбива‑
ем множество предсказаний на интервалы и подсчитываем эмпирическую
частоту обращений для всех примеров, предсказанная частота которых по‑

Tlgm: @it_boooks

512  Обобщенные линейные модели*
падает в данный интервал. Результаты показаны на рис. 12.2. Мы видим, что
постоянная эталонная модель хорошо откалибрована, но, конечно, не очень
точна. Гребневая модель плохо откалибрована на низких частотах. В част‑
ности, она занижает оценку общего числа обращений в тестовом наборе –
10 693 против истинного числа 11 935. Модель регрессии Пуассона откали‑
брована лучше (т. е. когда она предсказывает высокую частоту обращений,
частота действительно оказывается высокой), а общее число предсказанных
ей обращений равно 11 930.

(a)

(b)

(c)

Рис. 12.2  Калибровочная кривая для предсказания обращений за страховыми выплатами. Построено программой по адресу figures.probml.ai/book1/12.2

Часть

III

Tlgm: @it_boooks

ГЛУБОКИЕ
НЕЙРОННЫЕ СЕТИ

Глава

13

Tlgm: @it_boooks

Нейронные сети
для структурированных
данных
13.1. ВВедение
В части II мы обсуждали линейные модели регрессии и классификации.
В частности, в главе 10 обсуждалась логистическая регрессия, которой в би‑
нарном случае соответствует модель p(y|x, w) = Ber(y|σ(w⟙x)), а в многоклас‑
совом случае – модель p(y|x, W) = Cat(y|𝒮(Wx)). В главе 11 мы обсуждали
линейную регрессию, которой соответствует модель p(y|x, w) = 𝒩(y|w⟙x, σ2).
А в главе 12 рассматривались обобщенные линейные модели, которые обоб‑
щают вышеупомянутые модели на другие виды выходных распределений,
например распределение Пуассона. Однако во всех этих моделях делается
сильное предположение о линейности отображения входных данных в вы‑
ходные.
Простой способ повысить гибкость таких моделей заключается в преобра‑
зовании признаков путем замены x на ϕ(x). Например, можно использовать
полиномиальное преобразование, которое в одномерном случае имеет вид
ϕ(x) = [1, x, x2, x3, …], как обсуждалось в разделе 1.2.2.2. Иногда оно называ‑
ется разложением по базисным функциям. Тогда модель принимает вид:
f(x; θ) = Wϕ(x) + b.

(13.1)

Она все еще линейна относительно параметров θ = (W, b), что упрощает
обучение (поскольку функция отрицательного логарифмического правдопо‑
добия выпуклая). Однако необходимость вручную задавать преобразование
признаков сильно ограничивает наши возможности.
Естественный следующий шаг заключается в том, чтобы снабдить экстрак‑
тор признаков собственными параметрами, θ2:
f(x; θ) = Wϕ(x; θ2) + b,

(13.2)

Tlgm: @it_boooks

Введение  515

где θ = (θ1, θ2) и θ1 = (W, b). Очевидно, этот процесс можно повторять рекур‑
сивно, создавая все более и более сложные функции. Композиция L функций
выглядит следующим образом:
f(x; θ) = fL( fL-1(… ( f1(x)) …)),

(13.3)

где f𝓁(x) = f(x, θ𝓁) – функция слоя 𝓁. Именно эта ключевая идея и лежит в ос‑
нове глубоких нейронных сетей (ГНС, англ. DNN).
Термином «ГНС» на самом деле объединяется большое семейство моделей,
которые компонуют дифференцируемые функцию в произвольный ориенти‑
рованный ациклический граф (орграф, англ. DAG), отображающий вход в вы‑
ход. Формула (13.3) – простейший пример, в котором орграф представляет
собой линейную цепочку. Она получила название нейронной сети прямого
распространения (англ. FFNN), или многослойного перцептрона (МСП,
англ. MLP).
МСП предполагает, что на вход подается вектор фиксированной размер‑
ности, скажем x Î ℝD. Такие данные принято называть структурированными, или табличными, поскольку они часто хранятся в виде матрицы плана
размера N´D, каждый столбец (признак) которой имеет свою семантику,
например: рост, вес, возраст и т. д. В последующих главах мы обсудим другие
виды ГНС, более подходящие для представления «неструктурированных
данных», например изображений и текста, когда размер данных перемен‑
ный, а каждый отдельный элемент (например, пиксель или слово) сам по себе
не несет никакого смысла1. В частности, в главе 14 обсуждаются сверточные
нейронные сети (СНС, англ. CNN), предназначенные для работы с изобра‑
жениями, а в главе 15 – рекуррентные нейронные сети (РНС, англ. RNN)
и трансформеры, предназначенные для работы с последовательностями.
Наконец, в главе 23 обсуждаются графовые нейронные сети (graph neural
networks – GNN) для работы с графами.
Хотя ГНС могут показывать хорошие результаты, обычно для достижения
высокого качества нужно позаботиться о многочисленных технических де‑
талях. Некоторые из них обсуждаются в дополнительном материале к книге
на сайте probml.ai. Есть и другие книги, где эта тема рассматривается более
подробно (например, [Zha+20; Cho21; Gér19; GBC16]), а также разнообразные
онлайновые курсы. Читателям, интересующимся теорией, рекомендуем, на‑
пример, [Ber+21; Cal20; al99].
1

Термин «неструктурированные данные» не вполне корректен, потому что и изо‑
бражения, и текст имеют структуру. Например, соседние пиксели изображения
сильно коррелированы, как и соседние слова в тексте. На самом деле именно эта
структура и используется в сверточных (СНС) и рекуррентных (РНС) нейронных
сетях. С другой стороны, МСП не делает никаких предположений о входных дан‑
ных. Это полезно в приложениях, основанных на табличных данных, где структура
(зависимости между столбцами) обычно не очевидна, поэтому для ее выявления
необходимо обучение. МСП можно применить к изображениям и тексту, и мы
скоро это увидим, но качество обычно получается хуже по сравнению со специализированными моделями типа СНС и РНС. (Есть, правда, исключения, например
неструктурированная модель MLP-mixer [Tol+21], которую можно обучить работе
с изображениями и текстовыми данными, но, чтобы компенсировать отсутствие
индуктивного смещения, таким моделям нужно очень много данных.)

Tlgm: @it_boooks

516  Нейронные сети для структурированных данных

13.2. многослойные перцептроны (мсп)
В разделе 10.2.5 мы объяснили, что перцептрон – это детерминированный
вариант логистической регрессии. Точнее, это отображение вида
f(x; θ) = 𝕀(w⟙x + b ³ 0) = H(w⟙x + b),

(13.4)

где H(a) – ступенчатая функция Хевисайда, называемая также линейной пороговой функцией. Поскольку решающие границы, представленные
перцептроном, линейны, их возможности крайне ограничены. В 1969 году
Марвин Мински и Сеймур Пейперт опубликовали знаменитую книгу «Пер‑
цептроны» [MP69], в которой привели много примеров задач распознавания
образов, которые перцептроны решить не в состоянии. Ниже приведен один
такой пример, после чего мы обсудим, как все-таки решить задачу.

13.2.1. Задача XOR
Один из самых знаменитых примеров из книги «Перцептроны» – задача
XOR. В ней цель – обучить функцию, которая вычисляет ИСКЛЮЧАЮЩЕЕ
ИЛИ двух своих двоичных входов. Таблица истинности для этой функции
приведена в табл. 13.1. На рис. 13.1a приведена ее визуализация. Ясно, что
данные не являются линейно разделимыми, поэтому представить такое ото‑
бражение перцептроном невозможно.

(a)

(b)

Рис. 13.1  (a) Иллюстрация того, что функция XOR не является линейно разделимой, но может быть разделена двухслойной моделью с функциями активации Хевисайда. На основе рис. 10.6 из работы [Gér19]. Построено программой
по адресу figures.probml.ai/book1/13.1. (b) Нейронная сеть с одним скрытым
слоем, веса которой были подобраны вручную для реализации функции XOR.
Здесь h1 – функция AND, а h2 – функция OR. Члены смещения реализованы с помощью весов из постоянных узлов со значением 1

Однако проблему можно решить, составив перцептроны в стопку, – так
называемый многослойный перцептрон (МСП). Так, для решения задачи
XOR годится МСП, показанный на рис. 13.1b. Он состоит из трех перцептро‑
нов, обозначенных h1, h2 и y. Узлы, обозначенные буквой x, – входы, а узлы

Tlgm: @it_boooks

Многослойные перцептроны (МСП)  517

с цифрой 1 представляют постоянные члены. Узлы h1 и h3 называются скрытыми блоками, потому что их значения не присутствуют среди обучающих
данных.
Таблица 13.1. Таблица истинности для функции XOR
(ИСКЛЮЧАЮЩЕЕ ИЛИ), y = x1 ⊻ x2
x1

x2

y

0
0
1
1

0
1
0
1

0
1
1
0

Первый скрытый блок вычисляет h1 = x1 Ù x2, используя специально по‑
добранный набор весов (здесь Ù обозначает операцию AND). Именно, его
входам x1 и x2 сопоставлены веса 1.0, но имеется еще член смещения -1.5 (он
реализован «проводом» с весом -1.5, исходящим из фиктивного узла с фик‑
сированным значением 1). Таким образом, h1 активируется тогда и только
тогда, когда x1 и x2 включены, так как в этом случае
w1⟙x - b1 = [1.0, 1.0]⟙[1, 1] - 1.5 = 0.5 > 0.

(13.5)

Второй скрытый блок вычисляет h2 = x1 Ú x2, где Ú обозначает операцию
OR, а третий – окончательный результат
где
– операция
NOT (логическое отрицание). Таким образом,
(13.6)
Это выражение эквивалентно функции XOR.
Обобщая этот пример, можно показать, что МСП способен представить
любую логическую функцию. Однако мы, очевидно, хотели бы избежать за‑
дания весов и смещений вручную. Далее в этой главе мы поговорим о том,
как обучать эти параметры на основе данных.

13.2.2. Дифференцируемые МСП
МСП, рассмотренный в разделе 13.2.1, был определен как стек перцептро‑
нов, включающий недифференцируемую функцию Хевисайда. Такие модели
трудно обучать, поэтому они никогда широко не использовались. Но допу‑
стим, что мы заменили функцию Хевисайда H : ℝ ® {0, 1} дифференцируемой
функцией активации φ : ℝ ® ℝ. Точнее, определим скрытые блоки zl на
каждом уровне l как линейное преобразование скрытых блоков предыдущего
уровня, применяемое поэлементно с помощью этой функции активации:
zl = fl (zl-1) = φl (bl + Wl zl-1)
или в скалярной форме:

(13.7)

Tlgm: @it_boooks

518  Нейронные сети для структурированных данных
(13.8)
Величина, передаваемая функции активации, называется предактивацией:
al = bl + Wl zl-1,

(13.9)

так что zl = φl(al).
Если теперь составить композицию L этих функций, как в формуле (13.3),
то мы сможем вычислить градиент выхода по параметрам в каждом слое
с помощью правила дифференцирования сложной функции, что в этом кон‑
тексте называют также обратным распространением, как будет объяснено
в разделе 13.3. (Это справедливо для любой дифференцируемой функции
активации, хотя одни работают лучше, чем другие, как обсуждается в раз‑
деле 13.2.3.) Затем градиент можно передать оптимизатору и таким образом
минимизировать некоторую целевую функцию (см. раздел 13.4). По этой
причине термином «МСП» иногда называют эту дифференцируемую форму
модели, а не исторически появившуюся раньше недифференцируемую вер‑
сию со ступенчатыми блоками.

13.2.3. Функции активации
Мы вправе выбрать любую дифференцируемую функцию активации в каждом
слое. Однако если использовать линейную функцию активации φl (a) = cl a, то
все сводится к регулярной линейной модели. Чтобы убедиться в этом, заме‑
тим, что формула (13.3) принимает вид:
f(x; θ) = WLcL(WL-1cL-1(… (W1x) …)) µ WLWL-1 … W1x = W¢x,

(13.10)

где для простоты обозначений члены смещения опущены. Поэтому важно,
чтобы функции активации были нелинейны.
На заре развития нейронных сетей часто выбирали сигмоидную (логисти‑
ческую) функцию, которую можно рассматривать как гладкую аппроксима‑
цию функции Хевисайда, применяемой в перцептроне:
(13.11)
Однако, как показывает рис. 13.2a, сигмоидная функция насыщается (вы‑
ходит на асимптоту), принимая значения, близкие к 1 для больших положи‑
тельных входов и близкие к 0 для больших отрицательных входов. Еще одна
популярная функция – гиперболический тангенс tanh, который имеет по‑
хожую форму, но асимптотические значения равны -1 и +1 (см. рис. 13.2b).
В областях насыщения градиент выхода по входу близок к нулю, поэтому
любой сигнал градиента с верхних уровней не сможет распространиться на
предшествующие уровни. Из-за этой проблемы исчезающего градиента

Tlgm: @it_boooks

Многослойные перцептроны (МСП)  519

трудно обучить модели методом градиентного спуска (детали см. в разде‑
ле 13.4.2). Один из ключей к обучению очень глубоких моделей – использо‑
вать ненасыщаемые функции активации. Самой популярной из них является
блок линейной ректификации (rectified linear unit – ReLU), предложенный
в работах [GBB11; KSH12]. Он определяется следующим образом:
ReLU(a) = max(a, 0) = a𝕀(a > 0).

(a)

(13.12)

(b)

Рис. 13.2  (a) Сигмоидная функция линейна в окрестности 0, но насыщается
для больших положительных и отрицательных входов. На основе рис. 11.1 из
[Gér19]. (b) Графики некоторых функций активации нейронной сети. Построено
программой по адресу figures.probml.ai/book1/13.2

Функция ReLU просто «выключает» отрицательные входы, а положитель‑
ные передает без изменения. Ее график показан на рис. 13.2b, а дополнитель‑
ные сведения приведены в разделе 13.4.3.

13.2.4. Примеры моделей
МСП можно использовать для классификации и регрессии данных самых
разных типов. Ниже приведено несколько примеров.

13.2.4.1. МСП для классификации двумерных данных
по двум категориям
На рис. 13.3 показан МСП с двумя скрытыми слоями, применяемый к вектору
двумерных входов, которые соответствуют точкам на плоскости, принадле‑
жащим двум концентрическим кругам. Модель имеет вид:
p(y|x; θ) = Ber(y|σ(a3));

(13.13)

a3 = w3⟙z2 + b3;

(13.14)

z2 = φ(W2z1 + b2);

(13.15)

Tlgm: @it_boooks

520  Нейронные сети для структурированных данных
z1 = φ(W1x + b1).

(13.16)

Здесь a3 – финальная оценка логита, которая преобразуется в вероятность
сигмоидной (логистической) функцией. Значение a3 вычислено как линей‑
ная комбинация двух скрытых блоков в слое 2 по формуле a3 = w3⟙z2 + b3.
В свою очередь слой 2 вычисляется как нелинейная комбинация четырех
скрытых блоков слоя 1 по формуле z2 = φ(W2z1 + b2). Наконец, слой 1 вы‑
числяется как нелинейная комбинация трех входных блоков по формуле
z1 = φ(W1x + b1). Подбирая параметры θ = (W1, b1, W2, b2, w3, b3) с целью ми‑
нимизации отрицательного логарифмического правдоподобия, мы можем
очень хорошо аппроксимировать обучающие данные, несмотря на сильную
нелинейность решающей границы. (Интерактивный вариант этого рисунка
имеется на странице http://playground.tensorflow.org.)

Рис. 13.3  МСП с двумя скрытыми слоями, применяемый к набору двумерных
точек из 2 классов, показанному в левом верхнем углу. Для каждого скрытого
блока показана решающая граница в этой части сети. Окончательный выход
показан справа. На вход подаются данные x Î ℝ2, функциям активации первого
слоя – z1 Î ℝ4, функциям активации второго слоя – z2 Î ℝ2, а функция последнего слоя получает данные a3 Î ℝ, которые преобразуются в вероятности сигмоидной функцией. Этот снимок экрана взят из интерактивной демонстрации
на сайте http://playground.tensorflow.org

13.2.4.2. МСП для классификации изображений
Чтобы применить МСП к классификации изображений, мы должны «рас‑
прямить» (flatten) двумерные входные данные в одномерный вектор. За‑
тем можно будет использовать архитектуру прямого распространения типа
той, что была описана в разделе 13.2.4.1. Например, рассмотрим МСП для
классификации цифр из набора данных MNIST (раздел 3.5.2). Это 28´28 =

Tlgm: @it_boooks

Многослойные перцептроны (МСП)  521

784-мерный набор. Если взять два скрытых слоя по 128 блоков каждый, за
которыми следует последний 10-путевой слой softmax, то получится модель,
показанная в табл. 13.2.
Таблица 13.2. Структура МСП для классификации набораданных MNIST.
Заметим, что 100 480 = (784 + 1)´128 и 16 512 = (128 + 1)´128.
Построено программой mlp_mnist_tf.ipynb
Модель: «sequential»
Слой (тип)
flatten (Распрямление)
dense (Плотный)
dense_1 (Плотный)
dense_2 (Плотный)

Форма выхода
(None, 784)
(None, 128)
(None, 128)
(None, 10)

Параметров
0
100480
16512
1290

Всего параметров: 118 282
Обучаемых параметров: 118 282
Необучаемых параметров: 0

На рис. 13.4 показано несколько предсказаний, сделанных этой моделью.
Мы обучали ее только на протяжении двух «эпох» (проходов по обучающему
набору), но модель уже работает вполне неплохо, показывая на тестовом
наборе верность 97.1 %. Да и ошибки не чудовищные, например 9 принято
за 3. Еще несколько эпох обучения – и верность на тестовом наборе улуч‑
шилась бы.

(a)

(b)

Рис. 13.4  Результат применения МСП (с двумя скрытыми слоями по 128 блоков и одним выходным слоем с 10 блоками) к нескольким изображениям из
набора MNIST (специально выбранным, чтобы продемонстрировать некоторые
ошибки). Красным цветом обозначены ошибки, синим – правильные предсказания. (a) После одной эпохи обучения. (b) После двух эпох. Построено программой по адресу figures.probml.ai/book1/13.4

В главе 14 мы обсудим другой вид модели – сверточную нейронную сеть,
которая лучше подходит для изображений. Она дает еще лучшее качество

Tlgm: @it_boooks

522  Нейронные сети для структурированных данных
и нуждается в меньшем числе параметров, но зато использует априорную
информацию о пространственной структуре изображений. Напротив, при
работе с МСП мы можем случайным образом перетасовывать пиксели, и это
никак не скажется на выходе (при условии, что все входные данные пере‑
тасовываются одинаково).

13.2.4.3. МСП для классификации текстов
Чтобы применить МСП к классификации текстов, нам понадобится преоб‑
разовать последовательность слов переменной длины v1, …, vT (где каждый
vt – унитарный вектор длины V, а V – размер словаря) в вектор x фиксиро‑
ванной размерности. Проще всего сделать это следующим образом. Сначала
рассмотрим вход как неупорядоченный мешок слов (раздел 1.5.4.1), {vt}. Пер‑
вый слой модели – матрица погружений W1 размера E´V, которая преобра‑
зует любой разреженный V-мерный вектор в плотное E-мерное погружение,
et = W1vt (подробнее о погружениях слов см. раздел 20.5). Затем мы преобра‑
зуем это множество T E-мерных погружений в вектор фиксированной длины,

применяя пулинг глобальным усреднением, e = (1/T)åTt=1et. Результат уже
можно передать на вход МСП. Например, если используется один скрытый
слой и логистический выход (для бинарной классификации), то получаем:
p(y|x; θ) = Ber(y|σ(w⟙3h + b3)),

(13.17)
(13.18)
(13.19)

e t = W 1v t.

(13.20)

Если размер словаря V = 1000, размер погружения E = 16, а скрытый слой
содержит 16 блоков, то мы получаем модель, показанную в табл. 13.3. При‑
менив ее к набору данных IMDB, содержащему отзывы о фильмах, с целью
классификации по эмоциональной окраске (см. раздел 1.5.2.1), мы получим
верность 86 % на тестовом наборе.
Из табл. 13.3 видно, что число параметров модели очень велико, что мо‑
жет привести к переобучению, поскольку в обучающем наборе IMDB всего
25 000 примеров. Однако видно и то, что большинство параметров принад‑
лежит матрице погружений, поэтому, вместо того чтобы обучать ее с учите‑
лем, можно выполнить предварительное обучение моделей погружения слов
без учителя, как обсуждается в разделе 20.5. Если матрица погружений W1
фиксирована, то нужно будет настроить только параметры в слоях 2 и 3 для
этой конкретной задачи с помеченными примерами, что требует гораздо
меньше данных (см. также главу 19, где описаны общие методы обучения
при ограниченном объеме помеченных данных).

Tlgm: @it_boooks

Многослойные перцептроны (МСП)  523

Таблица 13.3. Структура МСП для классификации обзоров из набора данных IMDB.
Размер словаря V = 1000, размер погружения E = 16, число блоков в скрытом слое 16.
Размер матрицы погружений W1 равен 10000×16, а длина смещения b2 равна 16
(отметим, что 16×16 + 16 = 272), в последнем слое (обозначенном «dense_1»)
вектор весов w3 имеет длину 16, а смещение b3 – длину 1. Слой глобального
пулинга усреднением не имеет свободных параметров. Построено программой
mlp_imdb_tf.ipynb
Модель: «sequential»
Слой (тип)
embedding (Погружение)
global_average_pooling1d (Глобальный
пулинг усреднением)
dense (Плотный)
dense_1 (Плотный)
Всего параметров: 169 289
Обучаемых параметров: 169 289
Необучаемых параметров: 0

Форма выхода
(None, (None, 16)
(None, 16)

Параметров
160 000
0

(None, 16)
(None, 1)

272
17

13.2.4.4. МСП для гетероскедастической регрессии
Мы также можем использовать МСП для регрессии. На рис. 13.5 показано, как
создать модель для гетероскедастической нелинейной регрессии. (Термин
«гетероскедастический» означает просто, что дисперсия предсказанного вы‑
хода зависит от входных данных, см. раздел 2.6.3.) У этой функции два вы‑
Мы можем разделить большую часть
хода: fμ(x) = 𝔼[y|x, θ] и fσ(x) =
слоев (а значит, и параметров) между этими двумя функциями, воспользовав‑
шись общим «скелетом» и двумя выходными «головами», как показано на
рис. 13.5. Для головы μ используется линейная функция активации, φ(a) = a,
а для головы σ – функция softplus, φ(a) = σ+(a) = log(1 + ea). Если исполь‑
зуются линейные головы и нелинейный скелет, модель в целом имеет вид:
p(y|x, θ) = 𝒩(y|wμ⟙f(x; wshared), σ+(wσ⟙f(x; wshared))).

(13.21)

На рис. 13.6 показано преимущество модели такого вида на наборе дан‑
ных, среднее которого растет со временем линейно, с сезонными колебани‑
ями, а дисперсия возрастает квадратично. Это простой пример модели стохастической волатильности; ее можно использовать для моделирования
финансовых данных, а также глобальной температуры Земли, для которой
(в связи с изменением климата) среднее и дисперсия возрастают. Мы видим,
что модель регрессии, в которой выходная дисперсия σ2 рассматривается как
фиксированный (не зависящий от входных данных) параметр, иногда оказы‑
вается недостаточно уверенной, потому что вынуждена подстраиваться под
общий уровень шума и не может адаптироваться к уровню шума в каждой
точке пространства входов.

Tlgm: @it_boooks

524  Нейронные сети для структурированных данных

Рис. 13.5  МСП с разделяемым «скелетом» и kdevz выходными «головами»,
одна из которых предсказывает среднее, а другая дисперсию. Взято со страницы https://brendanhasz.github.io/2019/07/23/bayesian-density-net.html. Печатается с разрешением Брендана Хасса

(a)

(b)

Рис. 13.6  Предсказания МСП, обученного с использованием MLE на одномерном наборе данных регрессии с возрастающим шумом. (a) Выходная дисперсия не зависит от входных данных, как на рис. 13.5. (b) Среднее вычисляется
с помощью той же модели, что в (a), но выходная дисперсия рассматривается
как фиксированный параметр σ2, для которого вычисляется оценка MLE после обучения, как в разделе 11.2.3.6. Построено программой по адресу figures.
probml.ai/book1/13.6

13.2.5. Важность глубины
Можно показать, что МСП с одним скрытым слоем является универсальным аппроксиматором функций, т. е. он способен смоделировать любую
достаточно гладкую функцию с любой точностью при наличии достаточно‑
го числа скрытых блоков [HSW89; Cyb89; Hor91]. Интуитивно понятно, что
причина этого заключается в том, что каждый скрытый блок может описать
полуплоскость, а при достаточно большом числе таких плоскостей можно

Tlgm: @it_boooks

Многослойные перцептроны (МСП)  525

«вырезать» любую область пространства, с которой мы можем ассоцииро‑
вать произвольный отклик (это особенно хорошо видно, если используются
кусочно-линейные функции активации, как показано на рис. 13.7).

(a)

(b)

Рис. 13.7  Разбиение ℝ2 на конечное множество линейных решающих регионов, порожденное МСП с ReLU-активациями с (a) одним скрытым слоем
с 25 скрытыми блоками и (b) двумя скрытыми слоями. На основе рис. 1 из работы [HAB19]. Печатается с разрешения Максима Андрющенко

Однако существуют аргументы, как экспериментальные, так и теоретиче‑
ские (например, [Has87; Mon+14; Rag+17; Pog+17]), в пользу того, что глубокие
сети работают лучше мелких. Причина в том, что последующие слои могут
пользоваться признаками, выявленными предыдущими слоями, т. е. мы име‑
ем функцию, определенную в виде композиции или иерархически. Напри‑
мер, предположим, что мы хотим классифицировать строки, описывающие
геном, и с положительным классом ассоциировано регулярное выражение
*AA??CGCG??AA*. Хотя его можно было бы аппроксимировать моделью с одним
скрытым слоем, интуитивно понятно, что обучить модель было бы проще,
если бы она сначала обнаруживала «мотивы» AA и CG, используя скрытые
блоки в слое 1, а затем использовала эти признаки для определения простого
линейного классификатора в слое 2 – по аналогии с тем, как мы решили за‑
дачу XOR в разделе 13.2.1.

13.2.6. Революция глубокого обучения
Хотя идеям, стоящим за ГНС, уже несколько десятков лет, лишь в 2010-х годах
они начали получать широкое распространение. И первой областью, воспри‑
нявшей эти методы, стало автоматическое распознавание речи (automatic
speech recognition – ASR), основанное на прорывных результатах работы
[Dah+11]. Этот подход быстро стал стандартной парадигмой и был с готовно‑
стью принят как в академических кругах, так и в промышленности [Hin+12].
Однако момент наивысшего торжества настал, когда в работе [KSH12]
было показано, что сверточные нейронные сети (СНС) способны значитель‑
но улучшить качество распознавания на эталонной задаче классификации

Tlgm: @it_boooks

526  Нейронные сети для структурированных данных
изображений ImageNet – частота ошибок уменьшилась с 26 до 16 % всего за
один год (см. рис. 1.14b); это был гигантский скачок, по сравнению с пред‑
шествующими темпами прогресса, – примерно 2 % в год.
К взрывообразному росту использования ГНС привело несколько фак‑
торов. Первый – доступность дешевых графических процессоров (GPU);
первоначально они разрабатывались, чтобы ускорить рендеринг изображе‑
ний в видеоиграх, но оказалось, что могут резко уменьшить время обучения
больших СНС, для которого нужны похожие вычисления с матрицами и век‑
торами. Второй фактор – появление все новых и новых больших размечен‑
ных наборов данных, которые позволяют обучать сложные аппроксимато‑
ры функций со многими параметрами без переобучения. (Например, набор
ImageNet состоит из 1.3 млн помеченных изображений и используется для
обучения моделей с миллионами параметров.) На самом деле если системы
глубокого обучения считать «ракетами», то большие наборы данных следует
назвать топливом для них1.
Вдохновленные выдающимся эмпирическим успехом ГНС, различные
компании стали проявлять интерес к этой технологии. Это привело к разра‑
ботке высококачественных библиотек с открытым исходным кодом, напри‑
мер: Tensorflow (Google), PyTorch (Facebook) и MXNet (Amazon). Эти библи‑
отеки поддерживают автоматическое дифференцирование (см. раздел 13.3)
и масштабируемую градиентную оптимизацию (см. раздел 8.4) сложных
дифференцируемых функций. Мы будем пользоваться некоторыми из них
в разных местах книги для реализации различных моделей, а не только ГНС2.
Дополнительные сведения об истории «революции глубокого обучения»
можно найти, например, в работах [Sej18; Met21].

13.2.7. Связи с биологией
В этом разделе мы обсудим связи между теми видами нейронных сетей,
которые обсуждались выше и называются искусственными нейронными
сетями (ИНС) и реальными сетями нейронов. Детали того, как работает жи‑
вой биологический мозг, весьма сложны (см., например, [Kan+12]), но можно
дать упрощенную картинку, своего рода комикс.
Начнем с рассмотрения модели одного нейрона. В первом приближении
можно считать, что состояние нейрона k (возбуждение или торможение),
обозначаемое hk Î {0, 1}, зависит от активности его входов, обозначаемых
x Î ℝD, а также от силы входящих связей, обозначаемой wk Î ℝD. Мы можем
вычислить взвешенную сумму входов по формуле ak = wk⟙x. Эти веса можно
рассматривать как «провода», соединяющие входы xd с нейроном hk, – ана‑
1

2

Эта популярная аналогия принадлежит Эндрю Ыну, который привел ее в основном
докладе на конференции GPU Technology Conference (GTC) в 2015 году. Его слайды
доступны по адресу https://bit.ly/38RTxzH.
Заметим, однако, что, по мнению некоторых авторов (см., например, [BI19]), со‑
временные библиотеки недостаточно гибкие и слишком сильно акцентируют вни‑
мание на методах, основанных на умножении плотных матриц на векторы, в ущерб
более общим алгоритмическим примитивам.

Tlgm: @it_boooks

Многослойные перцептроны (МСП)  527

логи дендритов реального нейрона (см. рис. 13.8). Затем эта взвешенная
сумма сравнивается с пороговым значением bk, и если активация превосхо‑
дит порог, то нейрон возбуждается; можно считать, что нейрон генерирует
электрический сигнал или потенциал действия. Таким образом, мы можем
смоделировать поведение нейрона с помощью функции hk(x) = H(wk⟙x - bk),
где H(a) = 𝕀(a > 0) – функция Хевисайда. Эта так называемая модель МакКаллока-Питтса была предложена в 1943 году в работе [MP43].
Клеточное тело

Аксон

Телодендрии

Ядро
Аксонный
холмик

Эндоплазматический
ретикулум
Митохондрия

Синаптические терминали

Аппарат Гольджи

Дендрит
Дендритные ветвления

Рис. 13.8  Два нейрона, связанных в «цепь». Выходной аксон левого нейрона образует синаптическую связь с дендритами клетки справа. Электрические
заряды в виде потока ионов позволяют клеткам взаимодействовать. Взято из
статьи https://en.wikipedia.org/wiki/Neuron. Печатается с разрешения автора
«Википедии» BruceBlaus

Несколько таких нейронов можно объединить в ИНС. Иногда это рассма‑
тривалось как модель мозга. Однако ИНС отличается от биологического моз‑
га во многих отношениях, например:
 в большинстве ИНС для модификации силы связей используется об‑
ратное распространение (см. раздел 13.3). Однако в реальном мозге
ничего такого нет, потому что мозг не может посылать информацию
по аксону в обратном направлении [Ben+15b; BS16; KH19]. Вместо этого
для корректировки силы синапса используются локальные правила
обновления;
 большинство ИНС – сети только прямого распространения, но в реаль‑
ном мозге есть много обратных связей. Считается, что обратная связь
играет роль априорного распределения, которое в сочетании с прав‑
доподобиями, поступающими от сенсорной системы, может быть ис‑
пользована для вычисления апостериорного распределения скрытых
состояний мира и далее для принятия оптимального решения (см.,
например, [Doy+07]);

Tlgm: @it_boooks

528  Нейронные сети для структурированных данных

Число нейронов (логарифмическая шкала)

 в большинстве ИНС используются упрощенные нейроны, состоящие из
взвешенной суммы, которая передается на выход через нелинейность,
тогда как биологические нейроны имеют разветвленную древовидную
структуру с дендритами (рис. 13.8) и сложной пространственно-вре‑
менной динамикой;
 ИНС в большинстве своем меньше по размеру и числу связей, чем био‑
логические нейроны (см. рис. 13.9). Конечно, ИНС с каждой неделей
становятся все больше, подпитываемые различными аппаратными
ускорителями типа GPU и TPU (тензорными процессорами) и т. д. Но,
даже если ИНС сравняются с биологическим мозгом по числу блоков,
сравнение все равно неправомерно, потому что обрабатывающая спо‑
собность биологического нейрона гораздо выше, чем искусственного
(см. предыдущий пункт);
Человек
Осьминог
Лягушка
Пчела
Муравей
Пиявка
Круглый червь
Губка

Рис. 13.9  Изменение размеров нейронных сетей со временем. Модели 1,
2, 3 и 4 соответствуют перцептрону [Ros58], адаптивному линейному блоку
[WH60], неокогнитрону [Fuk80] и первым МСП, обученным методом обратного
распространения [RHW86]. Приближенное число нейронов в некоторых биологических организмах, показанное на шкале слева (у губки число нейронов
равно 0), основано на данных из статьи https://en.wikipedia.org/wiki/List_of_animals_by_ number_of_neurons. На основе рис. 1.11 из книг [GBC16]. Печатается
с разрешения Яна Гудфеллоу

 большинство ИНС предназначено для моделирования какой-то одной
функции, например сопоставления изображению метки или отобра‑
жения одной последовательности слов в другую. Напротив, биологиче‑
ский мозг – исключительно сложная система, состоящая из нескольких
специализированных взаимодействующих модулей, которые реализу‑
ют разные виды функций и поведения, как то: восприятие, управление,
память, язык и т. д. (см., например, [Sha88; Kan+12]).
Конечно, были попытки создать реалистичные модели биологического
мозга (например, проект Blue Brain [Mar06; Yon19]). Но возникает интерес‑
ный вопрос: полезно ли изучение мозга на таком уровне детализации для
«решения проблемы ИИ». Принято считать, что низкоуровневые детали био‑

Tlgm: @it_boooks

Обратное распространение  529

логического мозга не имеют значения, если целью является создание «интел‑
лектуальных машин». Ведь самолеты не машут крыльями и все-таки летают.
Однако есть предположение, что ИИ будет следовать «законам интеллекта»,
похожим на те, которым подчиняются биологические агенты, точно так же
как самолеты и птицы подчиняются одним и тем же законам аэродинамики.
К сожалению, мы пока не знаем, как выглядят «законы интеллекта», да
и есть ли они вообще. В этой книге мы будем предполагать, что любой ин‑
теллектуальный агент должен следовать базовым принципам обработки ин‑
формации и байесовской теории принятия решений, которая, как известно,
является оптимальным способом принятия решений в условиях неопреде‑
ленности (см. раздел 5.1).
На практике оптимальный байесовский подход зачастую вычислительно
нереализуем. В природе биологические агенты выработали различные ал‑
горитмические «короткие пути» к оптимальному решению; так можно объ‑
яснить многие эвристики, применяемые людьми в повседневных рассужде‑
ниях [KST82; GTA00; Gri20]. По мере того как задачи, которые мы поручаем
машинам, становятся все сложнее, мы можем позаимствовать у нейробиоло‑
гии и когнитивистики опыт приближенного решения задач (см., например,
[MWK16; Has+17; Lak+17]). Однако следует также помнить о том, что системы
ИИ и МО все чаще используются для приложений с особыми требованиями
к безопасности, когда мы ожидаем, что машина справится лучше человека.
В таких случаях нам нужно не просто эвристическое решение, которое ра‑
ботает «в большинстве случаев»; необходимы доказуемо надежные методы,
подобные тем, что применяются инженерами (дополнительное обсуждение
см. в разделе 1.6.3).

13.3. обратное распространение
Этот раздел написан в соавторстве с Мэтью Блонделем.
В этом разделе мы опишем знаменитый алгоритм обратного распростране‑
ния, который может быть полезен для вычисления градиента выхода сети по
параметрам в каждом слое. Затем этот градиент можно передать алгоритму
градиентной оптимизации, как обсуждается в разделе 13.4.
Алгоритм обратного распространения впервые был описан в работе
[BH69], а затем независимо открыт в работе [Wer74]. Однако только работа
[RHW86] привлекла к нему внимание сообщества «классического» машин‑
ного обучения. Подробнее об истории вопроса см. статью в «Википедии»1.
Для начала предположим, что граф вычислений представляет собой про‑
стой линейный граф последовательно расположенных слоев, как в МСП.
В этом случае алгоритм обратного распространения эквивалентен повтор‑
ному применению правила дифференцирования сложной функции, извест‑
ного из математического анализа (см. формулу (7.261)). Однако его можно
обобщить на произвольные ориентированные ациклические графы (DAG),
1

https://en.wikipedia.org/wiki/Backpropagation#History.

Tlgm: @it_boooks

530  Нейронные сети для структурированных данных
как будет описано в разделе 13.3.4. Эта общая процедура называется автоматическим дифференцированием.

13.3.1. Прямой и обратный режим
дифференцирования
Рассмотрим отображение вида o = f(x), где x Î ℝn и o Î ℝm. Предположим, что
f определена как композиция функций:
f = f 4 ∘ f 3 ∘ f 2 ∘ f 1,

(13.22)

где f1 : ℝn ® ℝm1, f2 : ℝm1 ® ℝm2, f3 : ℝm2 ® ℝm3, f4 : ℝm3 ® ℝm. Для вычисления
o = f(x) необходимо выполнить промежуточные шаги: x2 = f1(x), x3 = f2(x2),
x4 = f3(x3), o = f4(x4).
Мы можем вычислить якобиан Jf (x) = ¶o/¶x⟙ Î ℝm´n, применив правило
дифференцирования сложной функции:
(13.23)
(13.24)
Теперь поговорим о том, как вычислить якобиан Jf (x) эффективно. На‑
помним, что

(13.25)

где Ñfi(x)⟙ Î ℝ1´n – i-я строка (i = 1 … m), а ¶f/¶xj Î ℝm – j-й столбец (j = 1 … n).
Заметим, что в наших обозначениях при m = 1 градиент, обозначаемый
Ñf (x), имеет такую же форму, как x. То есть он является вектором-столбцом,
тогда как Jf (x) – вектор-строка. Поэтому технически имеем Ñf (x) = Jf (x)⟙.
Мы можем выделить i-ю строку из Jf (x), воспользовавшись произведением
вектора на якобиан (vector Jacobian product – VJP) вида ei⟙Jf (x), где ei Î ℝm –
единичный базисный вектор. Аналогично j-й столбец можно выделить из
Jf (x), воспользовавшись произведением якобиана на вектор (Jacobian vector
product – JVP) вида Jf (x)ej, где ej Î ℝn. Таким образом, вычисление Jf (x) сво‑
дится к вычислению либо n JVP, либо m VJP.
Если n < m, то более эффективно находить Jf (x) для каждого столбца j =
1 … n, вычисляя JVP справа налево. Произведение справа на вектор-столбец
v имеет вид:
(13.26)

Tlgm: @it_boooks

Обратное распространение  531

Его можно вычислить, применив дифференцирование в прямом режиме, см. псевдокод в алгоритме 5. В предположении, что m = 1 и n = m1 =
m2 = m3, стоимость вычисления Jf (x) равна O(n3).
Алгоритм 5. Дифференцирование в прямом режиме
1
2
3
4
5
6

x1 := x
vj := ej Î ℝn для j = 1 : n
for k = 1 : K do
xk+1 = fk(xk)
vj := Jfk(xk)vj для j = 1 : n
Вернуть o = xK+1, [Jf (x)]:,j = vj для j = 1 … n

Если n > m (например, когда выход скалярный), то эффективнее искать
Jf (x) для каждой строки i = 1 … m, вычисляя VJP слева направо. Произведение
слева на вектор-строку u⟙ имеет вид:
(13.27)
Для этого можно применить дифференцирование в обратном режиме,
см. псевдокод в алгоритме 6. В предположении, что m = 1 и n = m1 = m2 = m3,
стоимость вычисления Jf (x) равна O(n2).
Алгоритм 6. Дифференцирование в обратном режиме
1
2
3
4
5
6
7

x1 := x
for k = 1 : K do
xk+1 = fk(xk)
ui := ei Î ℝm для i = 1 : m
for k = K : 1 do
ui⟙ := ui⟙Jfk(xk) для i = 1 : m
Вернуть o = xK+1, [Jf (x)]i,: = ui⟙ для i = 1 … m

Оба алгоритма 5 и 6 можно модифицировать, так чтобы они вычисляли
JVP и VJP для любого набора входных векторов, если принимать на входе
{v j}j=1,…,n и {ui}i=1,…,m соответственно. Инициализация этих векторов стан‑
дартным базисом особенно полезна, когда на выходе должен быть полный
якобиан.

13.3.2. Дифференцирование в обратном режиме
для многослойных перцептронов
В предыдущем разделе мы рассмотрели простую линейную модель прямого
распространения, когда ни в одном слое нет обучаемых параметров. В этом
разделе в каждом слое могут быть (необязательные) параметры θ1, …, θ4 (см.
иллюстрацию на рис. 13.10). Нас будет интересовать случай, когда отобра-

Tlgm: @it_boooks

532  Нейронные сети для структурированных данных
жение имеет вид ℒ : ℝn ® ℝ, т. е. выходом является скаляр. Например, рас‑
смотрим потерю 𝓁2 для МСП с одним скрытым слоем:
ℒ((x, y), θ) = ||y - W2φ(W1x)||22.

(13.28)

Рис. 13.10  Простая линейная модель прямого распространения
с четырьмя слоями. Здесь x – вход, а o – выход. Из работы [Blo20]

Ее можно представить в виде следующей модели прямого распространения:
ℒ = f 4 ∘ f 3 ∘ f 2 ∘ f 1;

(13.29)

x2 = f1(x, θ1) = W1x;

(13.30)

x3 = f2(x2, ∅) = φ(x2);

(13.31)

x4 = f3(x3, θ3) = W2x3;

(13.32)

ℒ = f4(x4, y) = ||x4 - y||2.

(13.33)

Мы будем использовать нотацию f k(x k, θk) для обозначения функции
в слое k, где xk – предыдущий выход, а θk – необязательные параметры в этом
слое.
В этом примере последний слой возвращает скаляр, поскольку соответ‑
ствует функции потерь ℒ Î ℝ. Поэтому при вычислении векторов градиента
эффективнее использовать дифференцирование в обратном режиме.
Сначала обсудим, как вычислить градиент скалярного выхода по параме‑
трам в каждом слое. Легко вычислить градиент по предсказаниям в послед‑
нем слое ¶ℒ/¶x4. Для вычисления градиентов по параметрам в предыдущих
слоях воспользуемся правилом дифференцирования сложной функции:
(13.34)
(13.35)
(13.36)
где каждая частная производная ¶ℒ/¶θk = (Ñθk ℒ)⟙ – dk-мерный вектор-строка
градиента, а dk – количество параметров в слое k. Как видим, эти градиенты

Tlgm: @it_boooks

Обратное распространение  533

можно вычислить рекурсивно, умножая вектор-строку градиента в слое k на
якобиан ¶xk /¶xk-1, являющийся матрицей nk´nk-1, где nk – количество скры‑
тых блоков в слое k (см. псевдокод в алгоритме 7).
Этот алгоритм вычисляет градиент потери по параметрам в каждом слое.
Также он вычисляет градиент потери по входу, Ñx ℒ Î ℝn, где n – размерность
входа. Эта последняя величина не нужна для обучения параметров, но может
быть полезна для генерирования входных данных модели (см. некоторые
приложения в разделе 14.6).
Алгоритм 7. Обратное распространение для МСП с K слоями
1
2
3
4
5
6
7
8
9
10
11

// Прямой проход
x1 := x
for k = 1 : K do
xk+1 = fk(xk, θk)
// Обратный проход
uK+1 := 1
for k = K : 1 do
gk := u⟙k+1¶fk(xk, θk)/¶θk
u⟙k := u⟙k+1¶fk(xk, θk)/¶xk
// Выход
Вернуть ℒ = xK+1, Ñx ℒ = u1, {Ñθk ℒ = gk : k = 1 : K}

Остается только определить, как вычисляется произведение вектора на
якобиан (VJP) во всех поддерживаемых слоях. Это зависит от формы функции
в каждом слое. Ниже рассматривается несколько примеров.

13.3.3. Произведение вектора на якобиан
для типичных слоев
Напомним, что якобиан для слоя вида f : ℝn ® ℝm определяется по формуле
(13.37)

где Ñfi (x)⟙ Î ℝn – i-я строка (i = 1 … m), а ¶f/¶xj Î ℝm – j-й столбец (j = 1 … n).
В этом разделе мы опишем, как вычислять VJP u⟙Jf (x) для часто встречающих
слоев.

13.3.3.1. Слой перекрестной энтропии
Рассмотрим слой с перекрестной энтропией в качестве потери, который при‑
нимает логиты x и целевые метки y на входе и возвращает скаляр:

Tlgm: @it_boooks

534  Нейронные сети для структурированных данных

(13.38)
где p = 𝒮(x) =

– предсказанные вероятности классов, а y – истинное

распределение меток (часто унитарный вектор). Якобиан по входным дан‑
ным равен
(13.39)
Чтобы убедиться в этом, предположим, что целевая метка – класс c. Имеем
(13.40)
Отсюда
(13.41)
Положив y = [𝕀(i = c)], получаем формулу (13.39). Отметим, что якобиан
этого слоя является вектором-строкой, поскольку выход скалярный.

13.3.3.2. Поэлементная нелинейность
Рассмотрим слой, в котором нелинейность применяется поэлементно, z =
f(x) = φ(x), так что zi = φ(xi). Элемент в позиции (i, j) якобиана равен
(13.42)
где φ¢(a) = dφ(a)/da . Иными словами, якобиан по входу равен
(13.43)
Для произвольного вектора u мы можем вычислить u⟙J путем поэлемент‑
ного умножения диагональных элементов J на u. Например, если
φ(a) = ReLU(a) = max(a, 0),

(13.44)

то имеем
(13.45)

Tlgm: @it_boooks

Обратное распространение  535

Субпроизводная (раздел 8.1.4.1) в точке a = 0 может быть любым значени‑
ем из диапазона [0, 1]. Часто ее полагают равной 0. Тогда
ReLU¢(a) = H(a),

(13.46)

где H – ступенчатая функция Хевисайда.

13.3.3.3. Линейный слой
Теперь рассмотрим линейный слой, z = f(x, W) = Wx, где W Î ℝm´n, так что
x Î ℝn и z Î ℝm. Мы можем вычислить якобиан по входному вектору, J =
¶z/¶x Î ℝm´n, следующим образом. Заметим, что
(13.47)

Тогда элемент якобиана в позиции (i, j) равен
(13.48)
так как ¶xk /¶xj = 𝕀(k = j ). Отсюда якобиан по входу равен
Произведение вектора u⟙ Î ℝ1´m на якобиан J Î ℝm´n равно

(13.49)

(13.50)

Теперь рассмотрим якобиан по матрице весов, J = ¶z/¶W. Его можно пред‑
ставить в виде матрицы m´(m´n), работать с которой трудно. Поэтому возь‑
мем вместо этого градиент по одному весу, Wij. Его вычислить легче, потому
что ¶z/¶Wij – вектор. Для его вычисления заметим, что
(13.51)
(13.52)
Отсюда
(13.53)
где ненулевой элемент находится в позиции i. Произведение вектора u⟙ Î ℝ1´m
на якобиан ¶z/¶W Î ℝm´(m´n) можно представить матрицей формы 1´(m´n).
Заметим, что

Tlgm: @it_boooks

536  Нейронные сети для структурированных данных
(13.54)
Следовательно,
(13.55)

13.3.3.4. Соберем все вместе
В упражнении 13.1 вам будет предложено собрать все вышеизложенное
вместе.

13.3.4. Графы вычислений
МСП – простейший вид ГНС, в которой каждый слой напрямую подает дан‑
ные на вход следующему, так что образуется цепная структура, показанная
на рис. 13.10. Однако в современных ГНС дифференцируемые компоненты
могут комбинироваться более сложными способами, образуя граф вычислений, по аналогии с тем, как программисты строят из элементарных функций
более сложные. (На самом деле были предложения вместо термина «глубо‑
кое обучение» использовать «дифференцируемое программирование».)
Единственное ограничение заключается в том, что граф вычислений должен
быть ориентированным ациклическим графом (DAG), каждая вершина
которого представляет функцию, дифференцируемую по всем своим аргу‑
ментам.
В качестве примера рассмотрим функцию:
(13.56)
Мы можем вычислить ее, воспользовавшись графом на рис. 13.11 со сле‑
дующими промежуточными функциями:
x3 = f3(x1) = ex1;

(13.57)

x4 = f4(x2, x3) = x2x3;

(13.58)

x5 = f5(x1, x4) = x1 + x4;

(13.59)

x6 = f6(x5) = x5;

(13.60)

x7 = f7(x4, x6) = x4x6.

(13.61)

Заметим, что узлы пронумерованы в топологическом порядке (родители
всегда предшествуют потомкам). На обратном проходе, поскольку граф уже
не цепной, может возникнуть необходимость в суммировании градиентов по
нескольким путям. Например, поскольку x4 влияет на x5 и x7, имеем

Tlgm: @it_boooks

Обратное распространение  537

(13.62)

Рис. 13.11  Пример графа вычислений с тремя (скалярными) входами
и одним (скалярным) выходом. Взято из работы [Blo20]

Мы можем избежать повторных вычислений, если будем работать в об‑
ратном топологическом порядке. Например,
(13.63)
(13.64)
(13.65)
(13.66)
В общем случае пользуемся формулой
(13.67)
где суммирование производится по всем дочерним вершинам k вершины j,
как показано на рис. 13.12. Вектор градиента ¶o/¶xk уже был вычислен для
каждой дочерней вершины k; эта величина называется адъюнктом. Он
умножается на якобиан ¶xk /¶xj каждой дочерней вершины.
Граф вычислений можно построить заранее, пользуясь API для опреде‑
ления статического графа (так это работало в Tensorflow 1). А можно вме‑
сто этого вычислять его «своевременно», трассируя выполнение функции
от входного аргумента (так работает безотлагательный режим в Tensorflow,
а также библиотеки JAX и PyTorch). Второй подход упрощает работу с динамическим графом, форма которого может изменяться в зависимости от
значений, вычисленных функцией.

Tlgm: @it_boooks

538  Нейронные сети для структурированных данных
Родители

Дети

Рис. 13.12  Нотация автоматического дифференцирования
в вершине j графа вычислений. Взято из работы [Blo20]

На рис. 13.13 показан граф вычислений, соответствующий МСА с одним
скрытым слоем с уменьшением весов. Точнее, модель вычисляет линейные
предактивации z = W(1)x, скрытые активации h = ϕ(z), линейные выходы
o = W(2)h, потерю L = 𝓁(o, y), регуляризатор s = λ/2(||W(1)||2F + ||W(2)||2F) и полную
потерю J = L + s.

Рис. 13.13  Граф вычислений для МСП со входом x, скрытым слоем h, выходом o, функцией потерь L = 𝓁(o, y), 𝓁2-регуляризатором s, зависящим от весов,
и общей потерей J = L + s. На основе рис. 4.7.1 из работы [Zha+20]. Печатается
с разрешения Астона Чжана

13.4. обуЧение нейронных сетей
В этом разделе мы обсудим, как аппроксимировать данные глубокими ней‑
ронными сетями. Стандартный подход – использовать оценку максималь‑
ного правдоподобия, минимизируя отрицательное логарифмическое прав‑
доподобие (NLL):
(13.68)
Также часто прибавляют регуляризатор (например, отрицательное ло‑
гарифмическое априорное распределение), но это мы обсудим в разде‑
ле 13.5.

Tlgm: @it_boooks

Обучение нейронных сетей  539

В принципе, мы можем просто вычислить градиент этой потери, восполь‑
зовавшись алгоритмом обратного распространения (раздел 13.3), и передать
его какому-нибудь готовому оптимизатору из числа обсуждавшихся в гла‑
ве 8. (Популярным выбором является оптимизатор Adam из раздела 8.4.6.3,
поскольку он хорошо масштабируется на большие наборы данных (т. е. явля‑
ется алгоритмом типа СГС) и довольно быстро сходится (благодаря исполь‑
зованию диагонального преобусловливания и момента). Но на практике это
может работать плохо. В этом разделе мы поговорим о том, какие возможны
проблемы, а также обсудим некоторые решения. Дополнительные сведения
о практических вопросах обучения ГНС см. такие книги, как [HG20; Zha+20;
Gér19].
Помимо практических проблем, есть и теоретические. В частности, от‑
метим, что потеря ГНС не является выпуклой целевой функцией, поэтому
в общем случае мы не сможем найти ее глобальный оптимум. Тем не менее
СГС находит на удивление хорошие решения. Ученые до сих пор пытаются
понять, почему это так; обзор недавних работ на эту тему см. в [Bah+20].

13.4.1. Настройка скорости обучения
Важно правильно настроить скорость обучения (размер шага), гарантиру‑
ющую сходимость к хорошему решению. Этот вопрос обсуждался в разде‑
ле 8.4.3.

13.4.2. Исчезающие и взрывные градиенты
При обучении очень глубоких моделей градиент может стать либо очень
малым (это называется проблемой исчезающего градиента), либо очень
большим (это называется проблемой взрывного градиента), поскольку
сигнал ошибки передается через последовательность слоев, которые умень‑
шают или увеличивают его [Hoc+01]. (В разделе 15.2.6 мы увидим, что похо‑
жая проблема возникает при обучении рекуррентных нейронных сетей на
очень длинных последовательностях.)
Чтобы лучше разобраться в существе проблемы, рассмотрим градиент по‑
тери по узлу в слое 1:
(13.69)
где Jl = ¶zl+1 /¶zl – матрица Якоби, а gl+1 = ¶ℒ/¶zl+1 – градиент в следующем
слое. Если Jl не зависит от слоя, то ясно, что вклад градиента в последнем
слое, gL, в слой 1 равен JL-lgL. Таким образом, поведение системы зависит от
собственных векторов J.
Хотя J – вещественная матрица, в общем случае она не симметрична, поэ‑
тому собственные значения и собственные векторы могут быть комплексны‑
ми, а мнимые компоненты соответствуют колебательному поведению. Обо‑
значим λ спектральный радиус J, равный максимуму абсолютных величин

Tlgm: @it_boooks

540  Нейронные сети для структурированных данных
собственных значений. Если он больше 1, то градиент будет взрывным, а если
меньше 1, то исчезающим. (Аналогично спектральный радиус матрицы W,
связывающей zl с zl+1, определяет устойчивость динамической системы при
работе в прямом режиме.)
Проблему взрывного градиента можно сгладить, применив обрезание
градиента, когда модуль градиента уменьшается, если оказывается слишком
большим, т. е. мы полагаем
(13.70)
В таком случае норма g¢ никогда не сможет стать больше c, но направление
вектора будет таким же, как у g.
Но справиться с проблемой исчезающего градиента труднее. Имеются раз‑
личные решения, например:
 изменить функции активации в каждом слое, чтобы градиент не мог
стать слишком большим или слишком малым; см. раздел 13.4.3;
 изменить архитектуру, так чтобы обновления были аддитивными, а не
мультипликативными; см. раздел 13.4.4;
 изменить архитектуру, стандартизировав активации в каждом слое,
так чтобы распределение активаций по набору данных оставалось по‑
стоянным в процессе обучения; см. раздел 14.2.4.1;
 тщательно выбирать начальные значения параметров; см. раз‑
дел 13.4.5.

13.4.3. Функции активации без насыщения
В разделе 13.2.3 мы упоминали, что сигмоидная функция активации стре‑
мится к 0 при больших отрицательных значениях аргумента и к 1 – при
больших положительных. В этих режимах сигнал градиента равен 0, что пре‑
пятствует обратному распространению.
Чтобы понять, почему градиент исчезает, рассмотрим слой, который вы‑
числяет z = σ(Wx), где
(13.71)
Если веса инициализированы слишком большими значениями (положи‑
тельными или отрицательными), то вектор a = Wx легко может принять боль‑
шие значения, а следовательно, z будет испытывать насыщение, т. е. асимпто‑
тически стремиться к 0 или к 1, поскольку именно так ведет себя сигмоида
(рис. 13.14a). Теперь рассмотрим градиент потери по входам x (от предше‑
ствующего слоя) и параметрам W. Производная функции активации равна
φ¢(a) = σ(a)(1 - σ(a)).

(13.72)

Tlgm: @it_boooks

Обучение нейронных сетей  541

(a)

(b)

Рис. 13.14  (a) Некоторые популярные функции активации. (b) Графики их
градиентов. Построено программой по адресу figures.probml.ai/book1/13.14

Ее график показан на рис. 13.14b. В разделе 13.3.3 было показано, что гра‑
диент потери по входам равен
(13.73)
а градиент потери по параметрам равен
(13.74)
Поэтому, если z близок к 0 или 1, то градиент стремится к 0.
При обучении очень глубоких моделей чрезвычайно важно использовать
функции активации без насыщения. Был предложен ряд других функций,
их сводка приведена в табл. 13.4, а более полные сведения можно найти по
адресу https://mlfromscratch.com/activation-functions-explained.
Таблица 13.4. Некоторые популярные функции активации в нейронных сетях
Название
Сигмоида
Гиперболический тангенс
Softplus
Блок линейной ректификации

Определение
σ(a) 1/(1 e a)
tanh(a) 2σ(2a) 1
σ (a) log(1 ea)
ReLU(a) max(a, 0)

ReLU с утечкой
Экспоненциальный линейный
блок
Swish
GELU

max(a, 0)
max(a, 0)
aσ(a)
aΦ(a)

αmin(a, 0)
min(α(ea 1), 0)

Диапазон
[0, 1]
[ 1, 1]
[0, ]
[0, ]

Ссылка

[
[

,
,

]
]

[GBB11]
[GBB11;
KSH12]
[MHN13]
[CUH16]

[
[

,
,

]
]

[RZL17]
[HG16]

Tlgm: @it_boooks

542  Нейронные сети для структурированных данных

13.4.3.1. ReLU
Самой распространенной функцией активации является блок линейной
ректификации, или ReLU, предложенный в работах [GBB11; KSH12]. Она
определена следующим образом:
ReLU(a) = max(a, 0) = a𝕀(a > 0).

(13.75)

Функция ReLU просто «отключает» отрицательные входы, а положитель‑
ные передает без изменения. Градиент имеет вид:
ReLU¢(a) = 𝕀(a > 0).

(13.76)

Теперь предположим, что мы используем ее в слое для вычисления z =
ReLU(Wx). В разделе 13.3.3 было показано, что градиент по входам равен
(13.77)
а по параметрам:
(13.78)
Поэтому градиент не исчезает ни при каких положительных z.
К сожалению, если веса инициализированы большими отрицательными
значениями, то некоторые компоненты a = Wx легко могут принять большие
отрицательные значения, а тогда z будет стремиться к 0. Из-за этого градиент
по весам тоже будет стремиться к 0. Алгоритм никогда не сможет выбраться
из этой ситуации, поэтому скрытые блоки (компоненты z) навечно останутся
выключенными. Это называется проблемой «мертвого ReLU» [Lu+19].

13.4.3.2. ReLU без насыщения
Проблему мертвых ReLU можно решить, воспользовавшись вариантами ReLU
без насыщения. Одна из альтернатив – ReLU с утечкой, предложенный в ра‑
боте [MHN13]. Он определяется следующим образом:
LReLU(a; α) = max(αa, a),

(13.79)

где 0 < α < 1. Угловой коэффициент этой функции равен 1 для положитель‑
ных входов и α для отрицательных, поэтому какой-то сигнал будет передан
предшествующим слоям, даже если на вход подано отрицательное значение
(см. график на рис. 13.14b). Вариант ReLU с утечкой, в котором параметр α
сделан обучаемым, а не фиксированным, называется параметрическим
ReLU [He+15].
Еще один популярный выбор – функция ELU, предложенная в работе
[CUH16]. Она определяется следующим образом:
(13.80)

Tlgm: @it_boooks

Обучение нейронных сетей  543

По сравнению с ReLU с утечкой ее преимущество в гладкости (см. график
на рис. 13.14a). Небольшая модификация ELU, называемая SELU (самонор‑
мируемый ELU), была предложена в работе [Kla+17]. Она имеет вид:
SELU(a; α, λ) = λELU(a; α).

(13.81)

Как ни удивительно это звучит, авторы доказали, что при тщательном
выборе α и λ эта функция гарантирует, что выход каждого слоя будет стан‑
дартизован (при условии, что вход тоже стандартизован) даже без приме‑
нения таких методов, как пакетная нормировка (раздел 14.2.4.1). Это может
оказаться полезным для аппроксимации данных моделью.

13.4.3.3. Другие варианты
Можно не заниматься ручным подбором хороших функций активации, а вос‑
пользоваться оптимизацией методом черного ящика для поиска в пространстве
функциональных форм. Такой подход был применен в работе [RZL17], и авторы
обнаружили, что функция, названная ими swish, хорошо ведет себя на неко‑
торых эталонных тестах классификации изображений. Определяется она так:
swish(a; β) = aσ(βa).

(13.82)

(Та же функция под названием SiLU (сигмоидный линейный блок) была не‑
зависимо предложена в работе [HG16].) Смотрите график на рис. 13.14a.
Еще одной популярной функцией активации является GELU (Gaussian Er‑
ror Linear Unit – линейный блок с гауссовой ошибкой) [HG16]. Она определена
следующим образом:
GELU(a) = aΦ(a),

(13.83)

где Φ(a) – функция распределения для стандартного нормального распре‑
деления:
(13.84)
На рис. 13.14 видно, что эта функция не является ни выпуклой, ни моно‑
тонной, в отличие от большинства других функций активации.
GELU можно рассматривать как «мягкий» вариант ReLU, поскольку она
заменяет ступенчатую функцию 𝕀(a > 0) гауссовой функцией распределе‑
ния, Φ(a). Можно также считать GELU адаптивным вариантом прорежива‑
ния (раздел 13.5.4), когда мы умножаем вход на двоичную скалярную маску,
m ~ Ber(Φ(a)), где вероятность прореживания равна 1 - Φ(a). Таким образом,
математическое ожидание выхода равно
𝔼[a] = Φ(a)´a + (1 - Φ(a))´0 = aΦ(a).

(13.85)

GELU(a) » aσ(1.702a).

(13.86)

Мы можем аппроксимировать GELU функцией swish с подходящими па‑
раметрами, а именно

Tlgm: @it_boooks

544  Нейронные сети для структурированных данных

13.4.4. Остаточные связи
Одно из решений проблемы исчезающего градиента в ГНС состоит в ис‑
пользовании остаточной сети, или ResNet [He+16a]. Это сеть прямого рас‑
пространения, в которой каждый слой имеет форму остаточного блока,
определенного как
ℱ¢l (x) = ℱl (x) + x,

(13.87)

где ℱl – стандартное неглубокое нелинейное отображение (например, линей‑
ный–активация–линейный). Внутренняя функция ℱl вычисляет остаточный
член, или дельту, который необходимо прибавить к входу x, чтобы получить
желаемый выход; часто проще обучиться генерировать небольшое возмуще‑
ние входных данных, чем напрямую предсказывать выход. (Остаточные свя‑
зи обычно используются в сочетании с СНС, как обсуждается в разделе 14.3.4,
но могут быть использованы и в МСП.)
У модели с остаточными связями столько же параметров, сколько у модели
без таких связей. Причина в том, что градиенты могут напрямую переда‑
ваться от выходного к предшествующим слоям, как схематически показана
на рис 13.15b. Чтобы убедиться в этом, заметим, что активации в выходном
слое можно выразить в терминах любого предшествующего слоя l в виде
(13.88)

x

Остаточные
блоки

слой весов
ℱ(x)

relu
слой весов

ℱ(x) + x

x identity
Слой, блокирующий
обратноераспространение

relu

Необучаемый слой

Рис. 13.15  (a) Остаточный блок.
(b) Почему добавление остаточных связей может помочь при обучении
очень глубокой модели. На основе рис. 14.16 из работы [Gér19]

Поэтому мы можем вычислить градиент потери по параметра l-го слоя
следующим образом:
(13.89)

Tlgm: @it_boooks

Обучение нейронных сетей  545

(13.90)
(13.91)
(13.92)
Таким образом, мы видим, что градиент в слое l зависит непосредственно
от градиента в слое L, и в этой зависимости глубина сети вообще не фигу‑
рирует.

13.4.5. Инициализация параметров
Поскольку целевая функция для обучения ГНС невыпукла, от инициализации
параметров сети может сильно зависеть найденное в конечном итоге реше‑
ние, а также простота обучения функции (т. е. легкость, с которой информа‑
ция передается вперед и назад в модели). Далее в этом разделе мы опишем
некоторые эвристические методы, часто применяемые для инициализации
параметров.

13.4.5.1. Эвристические схемы инициализации
В работе [GB10] показано, что если параметры выбираются из стандартного
нормального распределения с фиксированной дисперсией, то могут наблюдаться взрывные активации или градиенты. Чтобы понять, почему это так,
рассмотрим линейный блок без функции активации вида oi =
wijxj; пред‑
положим, что wij ~ 𝒩(0, σ2) и 𝔼[xj] = 0, 𝕍[xj] = 2, где xj не зависят от wij. Среднее
и дисперсия выхода равны
(13.93)
(13.94)
Чтобы удержать дисперсию от взрывного роста, нужно гарантировать, что
ninσ2 = 1 (или какой-то другой постоянной), где nin – разветвление блока по
входу (количество входящих связей).
Теперь рассмотрим обратный проход. Рассуждая аналогично, мы видим,
что дисперсия градиентов может расти взрывообразно, если не выполнено
условие noutσ2 = 1, где nout – разветвление блока по выходу (количество ис‑
ходящих связей). Чтобы удовлетворить обоим требованиям сразу, положим
½(nin + nout)σ2 = 1 или эквивалентно

Tlgm: @it_boooks

546  Нейронные сети для структурированных данных
(13.95)
Это называется инициализацией Ксавье или инициализацией Глорота
по имени первого автора работы [GB10].
Специальный случай возникает, если σ2 = 1/nin; это известно как инициализация Лекуна в честь Яна Лекуна, который предложил ее в 1990-х годах.
Она эквивалентна инициализации Глорота при nin = nout. Если σ2 = 2/nin, то
этот метод называется инициализацией Хе по имени Симинь Хе, предло‑
жившего его в работе [He+15].
Заметим, что использовать гауссово распределение необязательно. В са‑
мом деле, в приведенном выше выводе участвовали только первые два мо‑
мента (среднее и дисперсия) и не делалось никаких предположений о га‑
уссовости. Например, предположим, что веса выбраны из равномерного
распределения, wij ~ Unif(-a, a). Среднее равно 0, а дисперсия σ2 = a2/3.
Следовательно, необходимо положить
Хотя в этом выводе предполагается линейный выходной блок, сам метод
эмпирически показывает хорошие результаты и для нелинейных блоков.
Какой метод инициализации выбрать, зависит от используемой функции
активации. Для линейной функции, tanh, логистической функции и softmax
рекомендуется инициализация Глорота, а для ReLU и его вариантов – ини‑
циализация Хе. Для SELU рекомендуется инициализация Лекуна. Другие эв‑
ристики см. в работе [Gér19].

13.4.5.2. Инициализации, управляемые данными
Мы также можем учитывать данные при инициализации параметров. Напри‑
мер, в работе [MM16] предложена простая, но эффективная схема, известная
под названием последовательно-послойная инициализация с единичной
дисперсией (layer-sequential unit-variance – LSUV) и работающая следующим
образом. Сначала мы инициализируем веса в каждом (полносвязном или
сверточном) слое с помощью ортонормированных матриц, как предложено
в работе [SMG14]. (Это можно сделать, выбрав вектор весов w ~ 𝒩(0, I), пере‑
форматировав его в матрицу W и затем вычислив ортонормированный базис
посредством QR- или SVD-разложения.) Затем для каждого слоя l вычисляем
дисперсию vl активаций по мини-пакету; после этого масштабируем по фор‑
муле Wl := Wl / vl. Эту схему можно рассматривать как ортонормированную
инициализацию в сочетании с пакетной нормировкой, выполняемой только
для первого мини-пакета. Это быстрее, чем нормировка по полному пакету,
но результат иногда получается не хуже.

13.4.6. Параллельное обучение
Обучать модели на больших наборах данных очень долго. Ускорить этот
процесс позволяет специализированное оборудование, например графи-

Tlgm: @it_boooks

Обучение нейронных сетей  547

ческие процессоры (GPU), позволяющие весьма эффективно перемножать
матрицы. Если есть несколько GPU, то иногда можно добиться еще большего
ускорения. Существует два основных подхода: распараллеливание модели,
когда модель разносится на несколько машин, и распараллеливание по
данным, когда на каждой машине имеется своя копия модели, но применя‑
ется она к разным наборам данных.
Распараллеливание модели может оказаться сложным делом, потому что
для вычисления правильного ответа машины должны тесно взаимодейство‑
вать. Далее мы не будем обсуждать этот подход. Распараллеливание по дан‑
ным в общем случае проще, поскольку налицо естественный параллелизм.
Чтобы воспользоваться им для ускорения обучения, мы на каждом шаге об‑
учения t производим следующие действия: 1) распределяем мини-пакет по
K машинам, получая части 𝒟tk; 2) каждая машина k вычисляет свой собствен‑
ный градиент, g tk = Ñθ ℒ(θ, 𝒟tk); 3) собираем все локальные градиенты на центральной машине (например, на устройстве 0) и суммируем их, вычисляя gt =
åKk=1 g tk; 4) рассылаем сумму градиентов всем устройствам, так что g tk = gt; 5)
каждая машина обновляет свою копию параметров по формуле θtk := θtk ρt g tk (см. иллюстрацию на рис. 13.16).

Модель
Модель

Подмножество
мини-пакета

GPU 0
Локальный
градиент
Стохастический
градиент по
мини-пакету

Стохастический
мини-пакет

Модель
Подмножество
мини-пакета

GPU 1
Локальный
градиент

Рис. 13.16  Вычисление стохастического градиента по мини-пакету с применением распараллеливания по данным и двух GPU. На основе рис. 12.5.2 из
работы [Zha+20]. Печатается с разрешения Астона Чжана

Заметим, что шаги 3 и 4 обычно объединяются в один атомарный шаг; это
называется операцией полной редукции (all-reduce) (для сведения множе‑
ства всех векторов градиента к одному используется суммирование). Если
выполнение на каждой машине блокируется до получения агрегированного
градиента от центральной машины, gt, то метод называется синхронным
обучением. Он дает такие же результаты, как обучение на одной машине
(с большим размером пакета), только быстрее (в предположении, что все слои
нормировки пакета игнорируются). Если каждой машине разрешено обнов‑
лять свои параметры, пользуясь собственной локальной оценкой градиента,
а не дожидаться, пока другие машины пошлют свои результаты и централь‑

Tlgm: @it_boooks

548  Нейронные сети для структурированных данных
ная машина вычислит агрегированную оценку, то метод называется асинхронным обучением. Его правильность не гарантируется, так как машины
могут рассинхронизироваться и будут обновлять разные версии параметров;
поэтому в работе [Niu+11] такой подход назван диким обучением (hogwild
training) [Niu+11]1. Однако если обновления разреженные, т. е. все машины
модифицируют разные части вектора параметров, то можно доказать, что
дикое обучение ведет себя как стандартный синхронный СГС.

13.5. регуляризация
В разделе 13.4 мы обсуждали вычислительные проблемы, возникающие при
обучении больших нейронных сетей. В этом разделе мы обсудим статистиче‑
ские проблемы. И прежде всего нас будет интересовать, как избежать переобучения. Это очень важно, так как большая нейронная сеть может содержать
миллионы параметров.

13.5.1. Ранняя остановка
Самый простой способ предотвратить переобучение называется ранней
остановкой. Под этим понимается остановка процедуры обучения тогда,
как ошибка на контрольном наборе начинает увеличиваться (см. пример
на рис. 4.8). Этот метод работает, потому что мы ограничиваем способность
алгоритма оптимизации переносить информацию от обучающих примеров
к параметрам (см. объяснение в работе [AS19]).

13.5.2. Уменьшение весов
Распространенный подход к уменьшению переобучения – наложить на
параметры априорное распределение, а потом воспользоваться оценкой
MAP. Принято использовать гауссово априорное распределение для весов,
𝒩(w|0, α2I), и смещений, 𝒩(b|0, β2I). Это эквивалентно 𝓁2-регуляризации
целевой функции. В литературе по нейронным сетям этот подход называют
уменьшением весов, потому что он поощряет малые веса, а значит, и более
простые модели, как в гребневой регрессии (раздел 11.3).

13.5.3. Разреженные ГНС
Поскольку в нейронной сети много весов, часто бывает полезно поощрить
разреженность. Это позволит произвести сжатие модели и тем самым сэкономить память и время. Для этого можно использовать 𝓁1-регуляризацию
1

Буквально «кабанье обучение». Вероятно, имелась в виду непредсказуемость и не‑
обузданность диких свиней. – Прим. перев.

Tlgm: @it_boooks

Регуляризация  549

(как в разделе 11.4), ARD (как в разделе 11.7.7) и другие методы (см. недавний
обзор [Hoe+21]).
В качестве простого примера на рис. 13.17 показан 5-слойный МСП,
обученный на данных одномерной регрессии с 𝓁1-регуляризацией весов.
Мы видим, что результирующий граф разрежен. Конечно, есть много других
подходов к разреженному оцениванию.

(a)

(b)

Рис. 13.17  (a) Глубокая, но разреженная нейронная сеть. Число связей
уменьшено с помощью 𝓁1-регуляризации. На каждом уровне узлы с номером 0
обрезаны по уровню 1, так что исходящие веса соответствуют членам смещения. (b) Предсказания модели на обучающем наборе. Построено программой по
адресу figures.probml.ai/book1/13.17

Несмотря на интуитивную привлекательность разреженной топологии,
на практике эти методы используются редко, потому что современные GPU
оптимизированы для умножения плотных матриц, так что с вычислитель‑
ной точки зрения у разреженных матриц весов мало преимуществ. Однако
если применить методы, поощряющие групповую разреженность, то можно
исключить целые слои модели. Это приводит к блочным разреженным ма‑
трицам, а значит, к ускорению работы и экономии памяти (см., например,
[Sca+17; Wen+16; MAV17; LUW17]).

13.5.4. Прореживание
Предположим, что мы случайным образом (для каждого примера) с веро‑
ятностью p отбрасываем исходящие из нейронов связи, как показано на
рис. 13.18. Эта техника называется прореживанием [Sri+14].

Tlgm: @it_boooks

550  Нейронные сети для структурированных данных

(a)

(b)

Рис. 13.18  Прореживание. (a) Стандартная нейронная сеть с двумя скрытыми слоями. (b) Пример истонченной сети, полученной в результате прореживания с p0 = 0.5. Удаленные блоки помечены крестиком. На основе рис. 1 из
работы [Sri+14]. Печатается с разрешения Джеффри Хинтона

Прореживание может значительно уменьшить переобучение и применя‑
ется очень широко. Интуитивно понятно, что прореживание показывает
такие хорошие результаты, потому что предотвращает сложную совместную
адаптацию скрытых блоков. Иными словами, каждый блок должен научить‑
ся хорошо работать, даже если случайное подмножество других блоков от‑
сутствует. Это не дает блокам обучиться сложным, но хрупким взаимным
зависимостям1. Более формальное объяснение в терминах гауссовых смесей
в качестве априорных распределений можно найти в работе [NHLS19].
Мы можем рассматривать прореживание как оценивание зашумленной
версии весов, θlij = wlijεli, где εli ~ Ber(1 - p) – член шума, подчиняющийся
распределению Бернулли. (Так, если выбрать εli = 0, то веса всех связей, ис‑
ходящих из блока i в слое l - 1 в любой блок j в слое l будут приравнены 0.)
На этапе тестирования мы обычно убираем шум. Чтобы математическое
ожидание весов на этапе тестирования было таким же, как на этапе обучения
(т. е. входные активации нейронов в среднем были такими же), мы должны
при тестировании положить wlij = θlij𝔼[εli]. В случае бернуллиева шума имеем
𝔼[ε] = 1 - p, поэтому нужно умножить веса на вероятность 1 - p, перед тем
как делать предсказания.
Однако при желании мы можем производить прореживание и во время
тестирования. Результатом является ансамбль сетей, каждая из которых
1

Джеффри Хинтон, придумавший прореживание, говорил, что на эту мысль навел
его разговор о половом размножении, поощряющем индивидуальную полезность
генов (или хотя бы зависимости от небольшого числа других генов) даже в сочета‑
нии с другими, случайными, генами.

Tlgm: @it_boooks

Регуляризация  551

имеет слегка отличающуюся структуру разреженного графа. Это называется
прореживанием Монте-Карло [GG16; KG17] и имеет вид:
(13.96)
где S – число примеров, а запись Ŵεs означает, что мы умножаем все матри‑
цы с оценками весов на выборочный вектор шума. Иногда это дает хорошую
аппроксимацию байесовского апостериорного прогнозного распределения
p(y|x, 𝒟), особенно если величина шума оптимизирована [GHK17].

13.5.5. Байесовские нейронные сети

При обучении современных ГНС для нахождения единственного набора па‑
раметров обычно используют в качестве целевой функции максимальное
правдоподобие (со штрафом). Но в случае больших моделей часто бывает,
что параметров гораздо больше, чем примеров, поэтому возможно несколь‑
ко моделей, одинаково хорошо аппроксимирующих обучающие данные, но
обобщающихся по-разному. Часто полезно описать индуцированную не‑
определенность апостериорным прогнозным распределением. Это можно
сделать с помощью интегрирования по параметрам, т. е. вычисления:
(13.97)
В результате получается байесовская нейронная сеть (BNN). Ее мож‑
но рассматривать как бесконечный ансамбль нейронных сетей с разными
весами. Исключая параметры путем интегрирования, мы можем избежать
переобучения [Mac95]. Байесовская маргинализация представляет серьезные
трудности для больших нейронных сетей, но может дать значительный вы‑
игрыш в качестве [WI20]. Дополнительные сведения о байесовском глубоком обучении см. во втором томе этой книги [Mur22].

13.5.6. Эффекты регуляризации, порождаемые
стохастическим градиентным спуском*
Некоторые методы оптимизации (в частности, пакетные методы второго по‑
рядка) могут находить «иголки в стоге сена», т. е. узкие, но глубокие «дыры»
в поверхности функции потерь, соответствующие конфигурациям параме‑
тров с очень низкой потерей. Они называются острыми минимумами (см.
рис. 13.19 справа). С точки зрения минимизации эмпирической потери оп‑
тимизатор достойно справился с работой. Однако такие решения обычно
соответствуют переобученной модели. Лучше искать точки плоских минимумов, как на рис. 13.19 слева; такие решения более робастные и лучше
обобщаются. Чтобы понять, почему это так, заметим, что плоские минимумы
соответствуют областям пространства параметров, где велика апостериор‑
ная неопределенность, а значит, примеры из таких областей менее склон‑

Tlgm: @it_boooks

552  Нейронные сети для структурированных данных
ны точно запоминать несущественную информацию об обучающем наборе
[AS17]. СГС часто находит такие плоские минимумы благодаря добавлению
шума, который предотвращает «заход» в узкие области поверхности функции
потерь (см., например, [SL18]). Это называется неявной регуляризацией.
Можно также явно поощрить СГС к нахождению таких плоских минимумов,
применив метод энтропийного СГС [Cha+17], минимизацию с учетом
остроты [For+21] и другие родственные методы.

Рис. 13.19  Плоский и острый минимум. На основе рис. 1 и 2
из работы [HS97a]. Печатается с разрешения Юргена Шмидхубера

Разумеется, поверхность функции потерь зависит не только от значений
параметров, но и от данных. Поскольку обычно мы не можем себе позво‑
лить градиентный спуск на полном пакете, построим хотя бы набор кривых
потерь, по одной на мини-пакет. Если каждая из этих кривых напоминает
широкую чашу, как на рис. 13.20a, то мы находимся к точке пространства
параметров, робастной к возмущениям, и обобщаемость, вероятно, будет
хорошей. Но если итоговая форма широкой чаши является результатом ус‑
реднения по многим узким чашам, как показано на рис. 13.20b, то получив‑
шаяся оценка вряд ли хорошо обобщается.

(a)

(b)

Рис. 13.20  Каждая кривая показывает, как меняется потеря в зависимости от
значений параметров для заданного мини-пакета. (a) Устойчивый локальный минимум. (b) Неустойчивый локальный минимум. Построено программой по адресу
figures.probml.ai/book1/13.20. На основе рисунка из статьи https://bit.ly/3wTc1L6

Tlgm: @it_boooks

Другие виды сетей прямого распространения  553

Это можно формализовать, проделав анализ, описанный в работах [Smi+21;
BD21]. Конкретно авторы рассматривают непрерывный поток градиента, ап‑
проксимирующий поведение (С)ГС. В работе [BD21] рассмотрен ГС на полном
пакете и показано, что поток имеет вид ẇ = -Ñw ℒGD(w), где
(13.98)

где ℒ(w) – исходная потеря, ε – скорость обучения, а второе слагаемое – не‑
явный член регуляризации, который штрафует за большой градиент (высо‑
кую кривизну).
В работе [Smi+21] этот анализ распространен на случай СГС. Показано, что
поток имеет вид ẇ = -Ñw ℒSGD(w), где
(13.99)

где m – число мини-пакетов, а ℒk(w) – потеря на k-м мини-пакете. Сравнивая
с потерей в случае ГС на полном пакете, мы видим, что
(13.100)
Второе слагаемое оценивает дисперсию градиентов на мини-пакетах, яв‑
ляющуюся мерой устойчивости, а значит, способности к обобщению.
Приведенный анализ показывает, что СГС дает не только вычислительные
преимущества (потому что быстрее ГС на полном пакете или методов второ‑
го порядка), но и статистические.

13.6. другие Виды сетей прямого
распространения*
13.6.1. Сети радиально-базисных функций
Рассмотрим нейронную сеть с одним слоем, в которой скрытый слой описы‑
вается вектором признаков:
ϕ(x) = [𝒦(x, μ1), …, 𝒦(x, μK)],

(13.101)

где μk Î 𝒳 – множество K центроидов, или эталонов, а 𝒦(x, μ) ³ 0 – ядерная
функция. Более подробно мы опишем ядерные функции в разделе 17.1. Здесь
же только приведем пример, а именно гауссово ядро:
(13.102)

Tlgm: @it_boooks

554  Нейронные сети для структурированных данных
Параметр σ называется полосой пропускания ядра. Заметим, что это
ядро инвариантно относительно сдвига, т. е. оно зависит только от расстоя‑
ния r = ||x - c||2, так что его можно также записать в виде
(13.103)
Поэтому оно называется радиально-базисной функцией, или RBF-ядром.
Однослойная нейронная сеть, в которой скрытый слой описывается фор‑
мулой (13.101) с RBF-ядрами, называется RBF-сетью [BL88]. Она имеет вид:
p(y|x; θ) = p(y|w⟙ϕ(x)),

(13.104)

где θ = (μ, w). Если центроиды μ фиксированы, то оптимальные веса w можно
найти (регуляризированным) методом наименьших квадратов, как описано
в главе 11. Если же центроиды неизвестны, то их можно оценить, восполь‑
зовавшись методом кластеризации без учителя, например методом K сред‑
них (раздел 21.3). Вместо этого можно ассоциировать по одному центроиду
с каждой точкой в обучающем наборе, т. е. положить μn = xn, так что K = N.
Это пример непараметрической модели, поскольку число параметров рас‑
тет (в данном случае линейно) вместе с объемом данных и не зависит от N.
Если K = N, то модель идеально интерполирует данные и, значит, подвержена
переобучению. Однако если мы гарантируем, что вектор выходных весов w
разрежен, то в модели будет использоваться только конечное подмножество
входных примеров; это называется разреженной ядерной машиной, мы
подробно обсудим ее в разделах 17.4.1 и 17.3. Еще один способ избежать
переобучения – принять байесовский подход, исключив веса w с помощью
интегрирования; это приводит к модели, называемой гауссовым процессом, которую мы обсудим в разделе 17.2.

13.6.1.1. RBF-сеть для регрессии
Мы можем использовать RBF-сети для регрессии, положив p(y|x, θ) =
𝒩(w⟙ϕ(x), σ2). Например, на рис. 13.22 показан одномерный набор данных,
аппроксимированный с помощью K = 10 равноотстоящих RBF-прототипов,
когда полоса пропускания изменяется от малой до большой. При малых зна‑
чениях получаются очень извилистые функции, поскольку предсказанная
функция будет отлична от нуля только в точках x, близких к одному из про‑
тотипов μk. Если же полоса пропускания очень велика, то матрица плана
сводится к постоянной матрице, состоящей из одних единиц, т. е. каждая
точка одинаково близка к каждому прототипу; поэтому соответствующая
функция – просто прямая линия.

13.6.1.2. RBF-сеть для классификации
Мы можем использовать RBF-сети для бинарной классификации, определив
p(y|x, θ) = Ber(σ(w⟙ϕ(x))). В качестве примера рассмотрим данные, порожден‑

Tlgm: @it_boooks

Другие виды сетей прямого распространения  555

ные функцией ИСКЛЮЧАЮЩЕЕ ИЛИ (xor). Это логическая функция с двумя
бинарными входами. Ее таблица истинности показана на рис. 13.21a. А на
рис. 13.1b показаны некоторые данные, помеченные функцией xor, но, чтобы
сделать рисунок нагляднее, мы добавили к точкам небольшую флуктуацию1.
Мы видим, что данные невозможно разделить даже полиномом 10-й степени.
Однако стоит привлечь RBF-ядро всего с четырьмя прототипами, как задача
легко решается, как показано на рис. 13.1c.

x1

x2

x3

0
0
1
1

0
1
0
1
(a)

0
1
1
0
(b)

(c)

Рис. 13.21  (a) Таблица истинности xor. (b) Аппроксимация данных логистическим классификатором в виде полинома 10-й степени. (c) Та же модель, но
с использованием RBF-ядра с четырьмя центроидами, помеченными черными
звездочками. Построено программой по адресу figures.probml.ai/book1/13.21

13.6.2. Смесь экспертов
При рассмотрении задач регрессии обычно предполагают унимодальное рас‑
пределение выхода, например Гаусса или Стьюдента, считая, что среднее
и дисперсия являются некоторой функцией входа, т. е.
p(y|x) = 𝒩(y|fμ(x), diag(σ+(fσ(x)))),

(13.105)

где в роли функций f могут выступать МСП (возможно, с разделяемыми скры‑
тыми блоками, как на рис. 13.5). Однако эта идея плохо работает для многозначных функций, когда одному входу может соответствовать несколько
возможных выходов.
На рис. 13.23a приведен пример такой функции. Мы видим, что в средней
части графика имеются значения x, которым соответствует два равновероят‑
ных значения y. На практике существует много задач такого вида, например
предсказание позы человека в трехмерном пространстве по одному изобра‑
жению [Bo+08], раскрашивание черно-белого изображения [Gua+17], пред‑
сказание будущих кадров видеоряда [VT17] и т. д. Любая модель, обученная
максимизировать правдоподобие с применением унимодальной плотности
выхода – даже если она является гибкой и нелинейной, как, например, ней‑
1

Флуктуация часто применяется в статистике в случаях, когда без нее точки на
графике или на экране наложились бы друг на друга. Заключается она в добав‑
лении равномерно распределенного аддитивного шума, который увеличивает
дисперсию.

Tlgm: @it_boooks

556  Нейронные сети для структурированных данных
ронная сеть, – будет плохо работать с такими многозначными функциями,
поскольку способна породить только размытый усредненный выход.

Рис. 13.22  Линейная регрессия с 10 равноотстоящими радиальнобазисными функциями в одномерном случае. Левый столбец: аппроксимированные данные. Средний столбец: базисные функции, вычисленные на сетке. Правый столбец: матрица плана. Сверху вниз показаны
различные полосы пропускания для ядерной функции: σ = 0.5, 10, 50.
Построено программой по адресу figures.probml.ai/book1/13.22

Чтобы обойти эту проблему регрессии к среднему, мы можем восполь‑
зоваться условной смесовой моделью. То есть будем предполагать, что
выход – это взвешенная смесь K разных выходов, соответствующих разным
модам выходного распределения для каждого входа x. В гауссовом случае
имеем
(13.106)
p(y|x, z = k) = 𝒩(y|fμ,k(x), diag(fσ,k(x)));
p(z = k|x) = Cat(z|𝒮(fz(x))).

(13.107)
(13.108)

Tlgm: @it_boooks

Другие виды сетей прямого распространения  557

Здесь fμ,k предсказывает среднее k-го гауссова распределения, fσ,k предска‑
зывает его дисперсию, а fz – какие компоненты смеси использовать. Эта мо‑
дель называется смесью экспертов (mixture of experts – MoE) [Jac+91; JJ94;
YWG12; ME14]. Идея в том, что k-я подмодель p(y|x, z = k) считается «экспер‑
том» в некоторой области пространства входов. Функция p(z = k|x), называе‑
мая привратником (gating function), решает, какого эксперта использовать
в зависимости от выходных значений. Выбирая наиболее правдоподобного
эксперта для данного входа x, мы можем «активировать» нужное подмно‑
жество модели. Это пример условного вычисления, поскольку решение
о выборе эксперта основано на результатах вычислений предшествующей
сети-привратника [Sha+17].
Мы можем обучить эту модель с помощью СГС или EM-алгоритма (второй
метод описан в разделе 8.7.3).

(а)

(b)

(с)

(d)

Рис. 13.23  (a) Данные, описываемые многозначной функцией. (b) Каждый
эксперт отвечает за свою область пространства входов. (c) Предсказания каждого эксперта. (d) Общее предсказание. Среднее обозначено красным крестиком, мода черным квадратиком. На основе рисунков 5.20 и 5.21 из работы
[Bis06]. Построено программой по адресу figures.probml.ai/book1/13.23

Tlgm: @it_boooks

558  Нейронные сети для структурированных данных

13.6.2.1. Смесь линейных экспертов
В этом разделе мы рассматриваем простой пример, где в роли экспертов
выступают модели линейной регрессии, а в роли привратника – линейный
классификатор, т. е. модель имеет вид:
p(y|x, z = k, θ) = 𝒩(y|wk⟙x, σk2 ),

(13.109)

p(z|x, θ) = Cat(z|𝒮(Vx)).

(13.110)

Каждый весовой член p(z = k|x) называется ответственностью эксперта k
за вход x. На рис. 13.23b мы видим, как сети-привратники аккуратно делят
пространство входов между K = 3 экспертами.
Эксперты p(y|x, z = k) соответствуют моделям линейной регрессии с раз‑
ными параметрами. Они показаны на рис 13.23c.
Если взять взвешенную комбинацию экспертов в качестве выхода, то полу‑
чится красная кривая на рис. 13.23d – очевидно, никуда не годный предиктор.
Если же предсказывать только по самому активному эксперту (с наибольшей
ответственностью), то получится разрывная черная кривая, дающая куда
лучший предиктор.

13.6.2.2. Глубокие сети экспертов
Функция-привратник и эксперты могут быть представлены условной вероят‑
ностной моделью любого вида, а не только линейной. Если в качестве таких
моделей взять ГНС, то мы получим сеть на основе смеси моделей разной
плотности (mixture density network – MDN) [Bis94; ZS14] или глубокой смеси экспертов [CGG17]. Схематическое изображение такой модели показано
на рис. 13.24.
x

x

Экспертная
ГНС1

Экспертная
ГНС2

Экспертная
ГНСm

y1

y2

ym

ГНС-привратник

{z1, z2, …, zm}

Рис. 13.24  Глубокая модель m экспертов, представленная в виде
нейронной сети. На основе рис. 1 из работы [CGG17]. Печатается с разрешения Джейкоба Голдбергера

Tlgm: @it_boooks

Упражнения  559

13.6.2.3. Иерархические смеси экспертов
Если каждый эксперт сам является MoE-моделью, то получающаяся модель
называется иерархической смесью экспертов (HME) [JJ94]. На рис. 13.25
показан пример такой модели с двухуровневой иерархией.

Сетьпривратник

Сетьпривратник

Экспертная
сеть

Сетьпривратник

Экспертная
сеть

Экспертная
сеть

Экспертная
сеть

Рис. 13.25  Двухуровневая иерархическая смесь экспертов как нейронная сеть. Верхняя сеть-привратник выбирает между левым и правым экспертом, представленными большими прямоугольниками; левый
и правый эксперты сами выбирают между своими левыми и правыми
экспертами следующего уровня

L-уровневую HME можно рассматривать как «мягкое» решающее дерево
глубины L, в котором каждый пример проходит по всем ветвям дерева, а ко‑
нечным предсказанием является взвешенное среднее. (Мы будем обсуждать
решающие деревья в разделе 18.1.)

13.7. упражнения
Упражнение 13.1 [обратное распространение для МСП].
(Основано на упражнении, предложенном Кэвином Кларком.)
Рассмотрим следующий МСП классификации с одним скрытым слоем:
x = input Î ℝD;

z = Wx + b1 Î ℝK;

(13.111)
(13.112)

Tlgm: @it_boooks

560  Нейронные сети для структурированных данных
h = ReLU(z) Î ℝK;

a = Vh + b2 Î ℝC;

ℒ = CrossEntropy(y, 𝒮(a)) Î ℝ,

(13.113)
(13.114)
(13.115)

где x Î ℝD, b1 Î ℝK, W Î ℝK´D, b2 Î ℝC, V Î ℝC´K, D – размер входа, K – число
скрытых блоков, C – число классов. Покажите, что градиенты по параметрам
и входам имеют вид:
(13.116)

(13.117)
(13.118)

(13.119)

(13.120)
где градиенты функции потерь по обоим слоям (логитов и скрытому) равны:
(13.121)
(13.122)
а H – функция Хевисайда. Отметим, что в нашей нотации градиент (имеющий
такую же форму, как переменная, по которой мы дифференцируем) равен
транспонированной матрице Якоби, когда переменная является вектором,
и первым срезом матрицы Якоби, когда переменная является матрицей.

Глава

14

Tlgm: @it_boooks

Нейронные сети
для изображений

14.1. ВВедение
В главе 13 мы обсуждали многослойные перцептроны (МСП) как способ об‑
учить функции отображению «неструктурированных» входных векторов
x Î ℝD в выходные. В этом разделе мы рассмотрим ситуацию, когда вход x
имеет двумерную пространственную структуру. (Похожие идеи применимы
к одномерной временной структуре и к трехмерной пространственно-вре‑
менной структуре.)
Чтобы понять, почему не стоит применять МСП непосредственно к дан‑
ным изображения, вспомним, что основная операция МСП в каждом скрытом
слое – вычисление активаций z = φ(Wx), где x – вход слоя, W – веса, а φ() –
нелинейная функция активации. Таким образом, j-й элемент скрытого слоя
равен zj = φ(wj⟙x). Внутреннюю операцию умножения можно рассматривать
как сравнение входа x с обученным шаблоном или паттерном wj; если совпа‑
дение хорошее (большое положительное произведение), то активация этого
блока будет велика (в предположении нелинейности ReLU), т. е. j-й паттерн
присутствует во входных данных.
Однако это плохо работает, если входом является изображение переменно‑
го размера, x Î ℝWHC, где W – ширина, H – высота, а C – количество входных
каналов (например, C = 3 для цветовой модели RGB). Проблема в том, что
нам пришлось бы обучать матрицу весов W для каждого размера входного
изображения. Кроме того, даже если бы размер входа был фиксирован, коли‑
чество параметров оказалось бы запретительно большим для изображений
разумного размера, поскольку матрица весов имела бы размер (W´H´C)´D,
где D – число выходов (скрытых блоков). И последняя проблема заключается
в том, что паттерн, встретившийся в одном месте, может не распознаваться
в другом – т. е. модель не будет инвариантной относительно сдвига, – по‑
скольку никакого разделения весов между позициями нет (см. рис. 14.1).

Tlgm: @it_boooks

562  Нейронные сети для изображений

ВЫХОД

ВЕСА

ВЕСА

Рис. 14.1  Выявление паттернов в двумерных изображениях с помощью неструктурированного МСП работает плохо, потому что этот метод не инвариантен
относительно сдвигов. Мы можем спроектировать вектор весов, который будет
играть роль фильтра для обнаружения крестообразных форм. Он даст сильный
отклик 5, если объект расположен слева, но слабый отклик 1, если сдвинуть тот
же объект вправо. На основе рис. 7.16 из работы [SAV20]

Для решения этих проблем используются сверточные нейронные сети
(СНС), в которых умножение матриц заменено операцией свертки. Подроб‑
ности мы отложим до раздела 14.2, но основная идея заключается в том,
чтобы разбить входное изображение на пересекающиеся двумерные патчи
и сравнить каждый патч с множеством небольших матриц весов, или фильтров, которые представляют части объекта (см. рис. 14.2). Это можно рассматривать как разновидность сопоставления с шаблоном. Шаблоны можно
обучить на основании данных, как будет показано ниже. Поскольку шабло‑
ны невелики (часто всего-то 3´3 или 5´5), число параметров значительно
уменьшается. А поскольку для сравнения с шаблоном используется свертка,
а не умножение матриц, модель оказывается инвариантной относительно
сдвига. Это полезно в таких задачах, как классификация изображений, в ко‑
торых наша цель – понять, присутствует объект или нет, независимо от его
местоположения.

Рис. 14.2  Мы можем классифицировать цифру, отыскивая определенные характерные признаки (шаблоны
изображений), встречающиеся в нужных (относительных)
позициях. На основе рис. 5.1 из работы [Cho17]. Печатается с разрешения Франсуа Шолле

Tlgm: @it_boooks

Наиболее употребительные слои  563

СНС имеют много приложений помимо классификации изображений,
и мы обсудим их ниже в этой главе. Их также можно применять к одно‑
мерным (см. раздел 15.3) и трехмерным входам, но в этой главе предметом
нашего интереса будет в основном двумерный случай.

14.2. наиболее употребительные слои
В этом разделе мы рассмотрим основы СНС.

14.2.1. Сверточные слои
Начнем с описания операции свертки на прямой и на плоскости, после чего
расскажем, как она используется в СНС.

14.2.1.1. Свертка в одномерном случае
Сверткой двух функций f, g : ℝD ® ℝ называется следующая функция:

(14.1)

Теперь предположим, что вместо функций используются векторы конеч‑
ной длины, которые будем интерпретировать как функции, определенные
на конечном множестве точек. Например, пусть f вычисляется в точках
{-L, -L + 1, …, 0, 1, …, L}, в результате чего получается вектор весов (называ‑
емый также фильтром или ядром) с элементами от w-L = f(-L) до wL = f(L).
Пусть теперь g вычисляется в точках {-N, …, N}, в результате чего получается
вектор признаков с элементами от x-N = g(-N) до xN = g(N). Тогда приведен‑
ная выше формула принимает вид:
[w ⊛ x](i) = w-L xi+L + … + w-1xi+1 + w0 xi + w1xi-1 + … + wL xi-L.

(14.2)

[w ∗ x](i) = w-L xi-L + … + w-1xi-1 + w0 xi + w1xi+1 + … + wL xi+L.

(14.3)

(Ниже мы обсудим граничные условия (краевые эффекты)). Как видим, век‑
тор весов w «переворачивается» (т. е. порядок его элементов меняется на
противоположный), а затем «протаскивается» по вектору x с суммированием
локальных окон в каждой точке (рис. 14.3).
Существует очень похожая операция, отличающаяся тем, что w не пере‑
ворачивается:

Она называется перекрестной корреляцией. Если вектор весов симметричен, как это часто бывает, то перекрестная корреляция и свертка – одно
и то же. В литературе по глубокому обучению под «сверткой» обычно по‑
нимается перекрестная корреляция, мы будем придерживаться этого со‑
глашения.

Tlgm: @it_boooks

564  Нейронные сети для изображений




1

2

3

4





7

6

5











z0 = x0w0 = 5



7

6

5









z1 = x0w1 + x1w0 = 16





7

6

5







z2 = x0w2 + x1w1 + x2w0 = 34







7

6

5





z3 = x1w2 + x2w1 + x3w0 = 52









7

6

5



z4 = x2w2 + x3w1 = 45











7

6

5

z5 = x3w2 = 28

Рис. 14.3  Дискретная свертка x = [1, 2, 3, 4] с w = [5, 6, 7] дает
z = [5, 16, 34, 52, 45, 28]. Как видим, операция сводится к «переворачиванию» w и «протаскиванию» его по x, при этом производится поэлементное умножение и сложение результатов

Мы можем вычислить веса w на множестве {0, 1, …, L - 1}, а признаки x – на
множестве {0, 1, …, N - 1}, чтобы исключить отрицательные индексы. Тогда
приведенная выше формула принимает вид:
(14.4)
Смотрите пример на рис. 14.4.
Вход

Вход

Выход

Рис. 14.4  Одномерная перекрестная корреляция.
На основе рис. 15.3.2 из работы [Zha+20].
Печатается с разрешения Астона Чжана

14.2.1.2. Свертка в двумерном случае
В двумерном случае формула (14.4) принимает вид:
(14.5)
где двумерный фильтр W имеет размер H´W. Например, рассмотрим свертку
входа X размера 3´3 с ядром W размера 2´2 для вычисления выхода Y раз‑
мера 2´2:
(14.6)

Tlgm: @it_boooks

Наиболее употребительные слои  565

(14.7)
На рис. 14.5 этот процесс показан наглядно.
Вход

Вход

Выход

Рис. 14.5  Двумерная перекрестная корреляция.
Построено программой по адресу figures.probml.ai/book1/14.5.
На основе рис. 6.2.1 из работы [Zha+20]

Двумерную свертку можно рассматривать как сопоставление с шаблоном, поскольку выход в точке (i, j) будет велик, если патч с центром в этой
точке похож на W. Если W соответствует ориентированному ребру, то после
свертки с ним на выходной тепловой карте «загорятся» области с такой
же ориентацией, как показано на рис. 14.6. В общем случае свертку можно
интерпретировать как форму выявления признаков. Поэтому выход Y =
W⊛X называется картой признаков.

Рис. 14.6  Свертка двумерного изображения (слева) с фильтром 3´3 (в центре) порождает двумерную карту откликов (справа). Яркие точки на этой карте
соответствуют участкам изображения, содержащим диагональные отрезки, направленные из левого верхнего в правый нижний угол. На основе рис. 5.3 из
работы [Cho17]. Печатается с разрешения Франсуа Шолле

14.2.1.3. Свертка как умножение матрицы на вектор
Поскольку свертка – линейный оператор, мы можем представить ее в виде
умножения на матрицу. Например, рассмотрим формулу (14.7). Мы можем
ее переписать как умножение матрицы на вектор, развернув двумерную
матрицу X в одномерный вектор x и умножив его на матрицу C, структурно
похожую на матрицу Тёплица и выведенную из ядра W следующим образом:

Tlgm: @it_boooks

566  Нейронные сети для изображений

(14.8)

(14.9)

Для восстановления формы выхода 2´2 нужно преобразовать вектор y
размера 4´1 обратно в Y1.
Таким образом, мы видим, что СНС похожа на МСП, в котором матрица
весов имеет специальную разреженную структуру, а элементы связаны в про‑
странственных направлениях. Тем самым реализуется идея инвариантности
относительно сдвига, и число параметров значительно сокращается по срав‑
нению с матрицей весов в стандартном полносвязном, или плотном, слое,
используемом в МСП.

14.2.1.4. Граничные условия и дополнение
В формуле (14.7) мы видели, что в результате свертки изображения 3´3
с фильтром 2´2 получается выход размера 2´2. В общем случае свертка
фильтра fh´fw с изображением размера xh´xw порождает выход размера
(xh - fh + 1)´(xw - fw + 1); это называется корректной сверткой, потому что
мы применяем фильтр только к «корректным» частям входа, не позволяя ему
«вылезать за край». Если мы хотим, чтобы размер выхода был таким же, как
размер входа, то можно использовать дополнение нулями, т. е. добавление
к изображению рамки, состоящей из нулей, как показано на рис. 14.7. Это
называется конгруэнтной сверткой.
В общем случае, если вход имеет размер xh´xw, используется ядро размера
fh´fw и с каждой стороны производится дополнение нулями шириной соот‑
ветственно ph и pw, то выход будет иметь следующий размер [DV16]:
(xh + 2ph - fh + 1)´(xw + 2pw - fw + 1).

(14.10)

Например, рассмотрим рис. 14.8a. Имеем p = 1, f = 3, xh = 5 и xw = 7, по‑
этому размер выхода равен
(5 + 2 3 + 1)´(7 + 2 - 3 + 1) = 5 ´ 7.
1

(14.11)

См. демонстрационную программу по адресу code.probml.ai/book1/conv2d_torch.

Tlgm: @it_boooks

Наиболее употребительные слои  567

Если положить 2p = f - 1, то размер выхода будет таким же, как размер
входа.

Рис. 14.7  Конгруэнтная свертка (с дополнением нулями) гарантирует,
что выход будет иметь такой же размер, как вход.
На основе рис. 8.3 из работы [SAV20]

(а)

(b)

Дополнение нулями

Рис. 14.8  Дополнения и шаги при двумерной свертке. (a) Мы применяем «конгруэнтную свертку» к входу размером 5´7 (с дополнением нулями) и фильтру 3´3, получая выход размером 5´7. (b) Здесь используется
шаг 2, поэтому выход имеет размер 3´4. На основе рис. 14.3–14.4 из
работы [Gér19].

Tlgm: @it_boooks

568  Нейронные сети для изображений

14.2.1.5. Свертка с шагом
Поскольку каждый выходной пиксель является взвешенной комбинацией
входов в его рецептивном поле (зависящем от размера фильтра), соседние
выходные пиксели будут иметь близкие значения, потому что множества вхо‑
дов, на основе которых они вычисляются, пересекаются. Эту избыточность
можно уменьшить (а значит, ускорить вычисления), если пропускать каждый
s-й вход. Это называется сверткой с шагом. Она показана на рис. 14.8b, где
вычисляется свертка изображения 5´7 и фильтра 3´3 с шагом 2, в результате
чего получается выход размера 3´4.
В общем случае, если вход имеет размер xh´xw, используется ядро раз‑
мера fh´fw, с каждой стороны производится дополнение нулями шириной
соответственно ph и pw и размеры шага равны sh и sw, то выход будет иметь
следующий размер [DV16]:
(14.12)
Например, рассмотрим рис. 14.8b, на котором размер шага s = 2. Теперь
выход меньше входа:
(14.13)

14.2.1.6. Несколько входных и выходных каналов
На рис. 14.6 входом являлось черно-белое изображение. В общем случае вход
может иметь несколько каналов (например, RGB или гиперспектральные по‑
лосы на спутниковых изображениях). Мы можем обобщить понятие свертки
на этот случай, определив ядро для каждого входного канала; таким образом,
теперь W – трехмерная матрица весов, или тензор. Для вычисления выхода
мы свертываем канал c входа с ядром W:,:,c, а затем производим суммиро‑
вание по каналам:
(14.14)
где s – шаг (для простоты предполагается, что шаг одинаков в обоих направ‑
лениях), а b – смещение. Это показано на рис. 14.9.
Каждая матрица весов может выявить один вид признаков. Обычно мы хо‑
тим выявлять признаки разных видов, как показано на рис. 14.2. Это можно
сделать, превратив W в 4-мерную матрицу весов. Фильтр для выявления при‑
знаков типа d во входном канале c хранится в подматрице W:,:,c,d. Обобщим
определение свертки на этот случай следующим образом:
(14.15)

Tlgm: @it_boooks

Наиболее употребительные слои  569
Вход

Ядро

Вход

Ядро

Выход

Рис. 14.9  Двумерная свертка применительно к входу с двумя каналами.
Построено программой по адресу figures.probml.ai/book1/14.9.
На основе рис. 6.4.1 из работы [Zha+20]

Это показано на рис. 14.10. Каждый вертикальный цилиндр обозначает
множество выходных признаков в данной точке, zi,j,1,D; иногда его называют
гиперстолбцом. Каждый элемент является взвешенной комбинацией C при‑
знаков в рецептивном поле каждой из карт признаков в нижележащем слое1.

14.2.1.7. Свертка 1´1 (поточечная)
Иногда мы просто хотим взять взвешенную комбинацию признаков в данной
точке, а не в нескольких точках. Это можно сделать с помощью свертки 1´1,
или поточечной свертки. При этом число каналов меняется с C на D без из‑
менения пространственной размерности:
(14.16)
Это можно рассматривать как однослойный МСП, применяемый парал‑
лельно к каждому столбцу признаков.

14.2.2. Пулинговые слои
Свертка сохраняет информацию о положении входных признаков (с учетом
уменьшеннойразрешающей способности). Это свойство называется эквивариантностью. В некоторых случаях нам нужна инвариантность относи‑
тельно местоположения. Например, в процессе классификации изображений
нам иногда нужно только знать, присутствует ли некоторый объект (скажем,
лицо) где-нибудь в изображении.
1

В Tensorflow фильтр для двумерной СНС имеет форму (H,W,C,D), а мини-пакет карт
признаков – форму (размер-пакета, высота-изображения, ширина-изображения,
каналы-изображения); такой формат называется NHWC. В других системах фор‑
маты данных иные.

Tlgm: @it_boooks

570  Нейронные сети для изображений

Карта
признаков 1

Сверточный слой 2

Карта 2

Фильтры
Карта
признаков 1
Сверточный слой 1
Карта 2

Входной слой
Каналы

Красный
Зеленый
Синий

Рис. 14.10  СНС с двумя сверточными слоями. Вход имеет три цветовых канала. Карты признаков во внутренних слоях имеют несколько каналов. Цилиндры соответствуют гиперстолбцам – векторам признаков в определенной точке.
На основе рис. 14.6 из работы [Gér19]
Вход

Ядро

Выход

Рис. 14.11  Отображение трех каналов в два с помощью свертки с фильтром
размера 1´1´3´2. На основе рис. 6.4.2 из работы [Zha+20]

Простой способ решить эту задачу называется max-пулингом и заключа‑
ется в вычислении максимума поданных на вход значений, как показано на
рис. 14.12. Альтернатива – использовать пулинг усреднением, когда макси‑
мум заменяется средним. В любом случае отклик выходного нейрона один
и тот же независимо от того, в каком месте его рецептивного поля находится
входной паттерн. (Отметим, что пулинг применяется к каждому каналу не‑
зависимо.)

Tlgm: @it_boooks

Наиболее употребительные слои  571
Вход

Выход

Max-пулинг
2´2

Рис. 14.12  Max-пулинг с фильтром 2´2 и шагом 1.
На основе рис. 6.5.1 из работы [Zha+20]

Если усреднение производится по всем позициям карты признаков, то этот
метод называется пулингом глобальным усреднением. Таким образом,
мы можем преобразовать карту признаков размера H´W´D в карту размера
1´1´D, трансформировать ее в D-мерный вектор, затем передать этот вектор
полносвязному слою и отобразить в C-мерный вектор, который наконец-то
передать слою softmax для формирования выхода. Использование пулинга
глобальным усреднением означает, что классификатор можно применить
к изображению любого размера, поскольку окончательная карта признаков
всегда будет преобразована в вектор фиксированной размерности D перед
отображением в распределение C классов.

14.2.3. Соберем все вместе
Типичный паттерн проектирования заключается в том, чтобы создать СНС,
в которой сверточные слои чередуются с пулинговыми, а в конце находится
слой линейной классификации. Это показано на рис. 14.13. (В этом примере
мы опустили слои нормировки, поскольку модель не слишком глубокая.)
Впервые этот паттерн проектирования был применен в неокогнитроне Фу‑
кусимы [Fuk75], а в его основу легла модель Хубеля и Визеля, описывающая
простые и сложные клетки в зрительной коре головного мозгла человека
[HW62]. В 1998 году Ян Лекун применил аналогичный дизайн в своей модели
LeNet [LeC+98], где для оценки параметров использовались обратное рас‑
пространение и СГС. Этот паттерн по-прежнему пользуется популярностью
в моделях распознавания зрительных образов, построенных по образцу био‑
логических нервных систем [RP99], а также в различных практических при‑
ложениях (см. разделы 14.3 и 14.5).

14.2.4. Слои нормировки
Базовая схема, изображенная на рис. 14.13, хорошо работает для мелких СНС,
но с трудом масштабируется на более глубокие модели из-за проблем исче‑
зающего или взрывного градиента, рассмотренных в разделе 13.4.2. Обще‑
принятое решение этой проблемы – включить в модель дополнительные
слои для стандартизации распределения скрытых блоков (т. е. приведения
их среднего к нулю, а дисперсии – к единице) – точно так же как мы посту‑
паем с входами многих моделей. Ниже мы обсудим различные виды слоев
нормировки.

Tlgm: @it_boooks

572  Нейронные сети для изображений

Рис. 14.13  Простая СНС для классификации изображений.
На основе рисунка из статьи по адресу
https://blog.floydhub.com/building-your-first-convnet/

14.2.4.1. Пакетная нормировка
Самый популярный слой нормировки называется пакетной нормировкой
(batch normalization – BN) [IS15]. Он отвечает за то, чтобы распределение
активаций в одном слое имело нулевое среднее и единичную дисперсию при
усреднении по всем примерам из мини-пакета. Точнее, мы заменяем вектор
активации zn (или иногда вектор предактивации an) для примера n (в неко‑
тором слое) вектором z n, вычисляемым следующим образом:
(14.17)
(14.18)

(14.19)
(14.20)
где ℬ – мини-пакет, содержащий пример n, μℬ – среднее активаций по этому
пакету1, σ2ℬ – соответствующая дисперсия, ẑ n – стандартизованный вектор
активаций, z n – он же после сдвига и масштабирования (выход слоя BN),
β и γ – обучаемые параметры для этого слоя, а ε > 0 – небольшая постоянная.
Поскольку это преобразование дифференцируемое, мы легко можем пере‑
дать градиенты назад на вход слоя и в параметры BN β и γ.
Применительно к входному слою пакетная нормировка эквивалентна
обычной процедуре стандартизации, описанной в разделе Section 10.2. Заме‑
1

Применительно к сверточному слою мы усредняем по пространственным точкам
и по примерам, но не по каналам (поэтому длина μ равна числу каналов). Приме‑
нительно к полносвязному слою мы усредняем просто по примерам (длина μ равна
ширине слоя).

Tlgm: @it_boooks

Наиболее употребительные слои  573

тим, что среднее и дисперсию входного слоя можно вычислить однократно,
поскольку эти данные статические. Однако эмпирические средние и дис‑
персии внутренних слоев изменяются по мере подбора параметров. (Иногда
это называют «внутренним дрейфом ковариат» (internal covariate shift).)
Именно поэтому необходимо пересчитывать μ и σ2 для каждого мини-пакета.
На этапе тестирования у нас может быть единственный вход, поэтому вы‑
числить статистику мини-пакета невозможно. Стандартное решение такое:
после обучения вычислить μl и σl2 по всем примерам из обучающего набора
(т. е. на полном пакете), а затем «заморозить» эти параметры и добавить их
в список других параметров слоя, т. е. βl и γl. Тогда на этапе тестирования
мы можем использовать эти замороженные значения в качестве μl и σl2, а не
вычислять статистику по тестовому пакету. Таким образом, если в модели
используется BN, то мы должны указывать, применяется она для вывода или
для обучения. (Пример кода см. в файле batchnorm_torch.ipynb.)
Для ускорения работы мы можем объединить слой пакетной нормировки
с заморозкой с предыдущим слоем. Именно, предположим, что предыдущий
слой вычисляет XW + b; его объединение с BN дает γ ⊙ (XW + b - μ)/σ + β.
Положив W¢ = γ ⊙ W/σ и b¢ = γ ⊙ (b - μ)/σ + β, мы сможем переписать объ‑
единенные слои в виде W¢ + b¢. Это называется объединенной пакетной
нормировкой (fused batchnorm). Похожие приемы можно применить для
ускорения BN на этапе обучения [Jun+19].
Выигрыш от пакетной нормировки (в плане скорости и устойчивости об‑
учения) может оказаться весьма значительным, особенно для глубоких СНС.
Причины этого пока неясны, но похоже, что BN делает поверхность опти‑
мизируемой функции гораздо более гладкой [San+18b]. Кроме того, норми‑
ровка уменьшает чувствительность к скорости обучения [ALL18]. Помимо
вычислительных, у нее есть и статистические преимущества. В частности, BN
действует как регуляризатор; в самом деле, можно показать, что она эквива‑
лентна одной из форм приближенного байесовского вывода [TAS18; Luo+19].
Однако слишком полагаться на мини-пакет данных не стоит, так как это
чревато рядом проблем. В частности, при обучении на малых пакетах оценки
параметров могут быть неустойчивы, хотя недавний вариант этого метода,
пакетная перенормировка [Iof17], частично решает эту проблему. Ниже
обсуждаются некоторые альтернативы пакетной нормировке.

14.2.4.2. Другие виды слоя нормировки
В разделе 14.2.4.1 мы обсуждали пакетную нормировку, которая стандар‑
тизирует все активации в данном канале признаков, приводя среднее к нулю,
а дисперсию к единице. Это может существенно помочь на этапе обучения
и увеличить его скорость (см. пример кода по адресу code.probml.ai/book1/
batchnorm_torch).
Хотя пакетная нормировка работает хорошо, она сталкивается с трудно‑
стями, когда размер пакета мал, потому что в этом случае оценки средне‑
го и дисперсии параметров ненадежны. Возможное решение – вычислять
среднее и дисперсию путем пулинга статистик по другим измерениям тен‑
зора, а не по примерам из пакета. Точнее, обозначим zi i-й элемент тензора;

Tlgm: @it_boooks

574  Нейронные сети для изображений
в случае двумерных изображений индекс i состоит из четырех компонентов,
описывающих пакет, канал, высоту и ширину: i = (iN, iC, iH, iW). Мы вычисля‑
ем среднее и стандартное отклонение для каждого индекса zi следующим
образом:
(14.21)
где 𝒮i – множество элементов, по которым производится усреднение. Затем
мы вычисляем ẑ i = (zi - μi)/σi и z i = γc xi + βc, где c – канал, соответствующий
индексу i.
В случае пакетной нормировки мы выполняем пулинг по пакету, высоте
и ширине, так что 𝒮i – множество всех элементов тензора с индексом кана‑
ла i. Чтобы избежать проблем, возникающих для малых пакетов, мы можем
вместо этого выполнять пулинг по каналу, высоте и ширине, оставляя фик‑
сированным индекс пакета. Это называется нормировкой по слою [BKH16]
(см. пример кода по адресу code.probml.ai/book1/layer_norm_torch). Или же
можно иметь отдельные параметры нормировки для каждого примера в па‑
кете и для каждого канала. Это называется индивидуальной нормировкой
[UVL16].
Естественное обобщение рассмотренных выше методов – групповая нормировка [WH18], когда пулинг производится по всем точкам, для которых
канал принадлежит той же группе, что у i-го компонента. Все варианты по‑
казаны на рис. 14.14. Нормировка по слою – частный случай, когда имеется
единственная группа, содержащая все каналы. Индивидуальная нормиров‑
ка – частный случай, когда имеется C групп, по одной на канал. В работе
[WH18] экспериментально показано, что может быть выгоднее (с точки зре‑
ния скорости обучения, а также верности на этапах обучения и тестирова‑
ния) использовать группы, более крупные, чем отдельные каналы, но более
мелкие, чем все каналы вместе взятые.
Пакетная нормировка

Нормировка по слою

Нормировка по примеру

Групповая нормировка

Рис. 14.14  Различные методы нормировки активаций для СНС. На каждом
рисунке показан тензор карты признаков, где N – ось пакета, C – ось каналов,
а (H, W) – пространственные оси. Синие пиксели нормированы на одно и тот же
среднее и дисперсию, вычисленные путем агрегирования значений этих пикселей. Слева направо: пакетная нормировка, нормировка по слою, нормировка
по примеру, групповая нормировка (с двумя группами по три канала). На основе
рис. 2 из работы [WH18]. Печатается с разрешения Кайминь Хе

Tlgm: @it_boooks

Распространенные архитектуры классификации изображений  575

14.2.4.3. Сети без нормировки
В недавней работе [Bro+21] предложен метод, названный сетями без нормировки, позволяющий обучать глубокие остаточные сети, не используя
пакетную нормировку или еще какой-либо слой нормировки. Идея в том,
чтобы заменить нормировку адаптивным отсечением градиента, преследую‑
щим ту же цель – избежать неустойчивости обучения. То есть мы используем
формулу (13.70), но динамически изменяем порог отсечения. Обучение такой
модели происходит быстрее, а результаты оказываются более верными, чем
у сопоставимых моделей, обученных с применением пакетной нормировки.

14.3. распространенные архитектуры
классиФикации изображений
Общепринято использовать СНС для классификации изображений, т. е. оце‑
нивания функции f : ℝH´W´K ® {0, 1}C, где K – число входных каналов (напри‑
мер, K = 3 для RGB-изображений), а C – число классов.
В этом разделе мы дадим краткий обзор различных СНС, разработанных
за много лет для решения задач классификации изображений. Более полный
обзор СНС см., например, в [Kha+20], а актуальный репозиторий кода и моде‑
лей (на PyTorch) – на сайте https://github.com/rwightman/pytorch-image-models.

14.3.1. LeNet
Одна из самых ранних СНС, LeNet, была создана в 1998 году [LeC+98] Яном
Лекуном. Она проектировалась для классификации рукописных цифр и об‑
учалась на наборе данных MNIST, описанном в разделе 3.5.2. Эта модель
показана на рис. 14.15 (см. также рис. 14.16a, где она представлена более ком‑
пактно). Некоторые предсказания этой модели показаны на рис. 14.17. После
всего одной эпохи верность на тестовом наборе уже составляет 98.8 %. Для
сравнения, верность МСП из раздела 13.2.4.2 после одной эпохи составляет
95.9 %. Если увеличить число эпох обучения, то верность достигает уровня,
при котором качество неотличимо от зашумленности меток (примеры коды
см. по адресу code.probml.ai/book1/lenet_torch).
сверточный

сверточный

пулинговый

плотный
плотный
плотный

пулинговый

изображение
28´28

6@28 28
карта признаков С1

6@14 14
карта признаков S2

16@5 5
16@10 10 карта признаков S4
карта признаков С3

Рис. 14.15  LeNet5, сверточная нейронная сеть для классификации рукописных
цифр. На основе рис. 6.6.1 из работы [Zha+20]. Печатается с разрешения Астона Чжана

Tlgm: @it_boooks

576  Нейронные сети для изображений

(a)

(b)

Рис. 14.16  (a) LeNet5. Предполагается, что размер входа 1´28´28, как в случае MNIST. На основе рис. 6.6.2 из работы [Zha+20]. Печатается с разрешения Астона Чжана. (b) AlexNet. Предполагается, что размер входа 3´224´224, как в случае
кадрированных и масштабированных изображений из набора ImageNet. На основе рис 7.1.2 из работы [Zha+20]. Печатается с разрешения Астона Чжана

(a)

(b)

Рис. 14.17  Результаты применения СНС к некоторым изображениям из набора MNIST (выбранным специально, чтобы были видны и ошибки). Красным
цветом показано неправильное распознавание, синим – правильное. (a) После
одной эпохи обучения. (b) После двух эпох. Построено программой по адресу
figures.probml.ai/book1/14.17

Tlgm: @it_boooks

Распространенные архитектуры классификации изображений  577

Конечно, классификация отдельных цифр имеет ограниченную приме‑
нимость; люди-то обычно записывают строки цифр или букв. В этом случае
требуется не только классификация, но и сегментация. Лекун с сотрудниками
придумали, как для решения этой задачи объединить сверточные нейрон‑
ные сети с моделью, напоминающей условное случайное поле. Эта система
была внедрена почтой США. Более подробное описание системы см. в работе
[LeC+98].

14.3.2. AlexNet
Хотя СНС к тому времени существовали уже много лет, лишь после выхода
работы [KSH12] в 2012 году на них обратили внимание исследователи, зани‑
мающиеся компьютерным зрением. Авторы показали, как уменьшить часто‑
ту ошибок (на первых пяти результатах) на наборе ImageNet (раздел 1.5.1.2)
с предыдущих 26 до 15 % – это считалось очень серьезным улучшением.
Модель получила название AlexNet по имени ее создателя, Алекса Крижев‑
ского.
На рис. 14.16b показана ее архитектура. Модель очень похожа на LeNet
(рис. 14.16a) со следующими отличиями: она глубже (восемь слоев с настра‑
иваемыми параметрами, т. е. без учета пулинговых слоев, вместо пяти);
используются нелинейности ReLU вместо tanh (объяснение, почему это
важно, см. в разделе 13.2.3); для регуляризации используется прорежива‑
ние (раздел 13.5.4), а не уменьшение весов; несколько сверточных слоев
следуют друг за другом подряд, а не чередуются с пулинговыми слоями.
Преимущество нескольких сверточных слоев подряд в том, что рецеп‑
тивное поле становится больше, потому что выход одного слоя подается
на вход другого (например, три фильтра 3´3 имеют рецептивное поля
размера 7´7). Это лучше, чем использование одного слоя с большим ре‑
цептивным полем, потому что между несколькими слоями расположены
нелинейности. Кроме того, у трех фильтров 3´3 параметров меньше, чем
у одного фильтра 7´7.
Отметим, что сеть AlexNet имеет 60 млн свободных параметров (гораздо
больше, чем количество помеченных примеров – 1 млн) в основном из-за
трех полносвязных слоев на выходе. Для обучения этой модели было исполь‑
зовано два GPU (поскольку в то время память GPU была ограничена), и это
считается образцом инженерной изобретательности1. На рис. 1.14a показаны
предсказания, сделанные этой моделью для нескольких изображений из на‑
бора ImageNet.

1

Все три автора этой работы (Алекс Крижевски, Илья Суцкевер и Джеффри Хинтов)
впоследствии были приняты на работу в Google, хотя Илья ушел оттуда в 2015 году,
а Алекс в 2017. Более подробно об этой истории см. в статье https://en.wikipedia.org/
wiki/AlexNet. Отметим, что AlexNet была не первой СНС, реализованной на GPU;
эта честь принадлежит группе из коопорации Microsoft [CPS06], которая добилась
4-кратного ускорения по сравнению с CPU, а затем авторам работы [Cir+11], до‑
бившимся 60-кратного ускорения.

Tlgm: @it_boooks

578  Нейронные сети для изображений

14.3.3. GoogLeNet
Компания Google разработала модель под названием GoogLeNet [Sze+15b]
(название получено объединением слов Google и LeNet). Ее главное отличие
от предшествующих моделей заключается в использовании ранее не встре‑
чавшегося начального блока (inception block)1, содержащего несколько па‑
раллельных путей, на которых используются сверточные фильтры разного
размера (см. иллюстрацию на рис. 14.18). Это позволяет модели обучиться
оптимальному размеру фильтра на каждом уровне. Модель в целом состоит
из 9 начальных блоков, за которыми следует слой пулинга глобальным усред‑
нением (см. иллюстрацию на рис. 14.19). После обнародования этой модели
было предложено несколько ее обобщений; детали можно найти в работах
[IS15; Sze+15a; SIV17].
Конкатенация

Вход

Рис. 14.18  Начальный модуль. Сверточные слои 1´1 уменьшают количество каналов, сохраняя пространственные измерения. Параллельные пути, содержащие свертки с фильтрами разных размеров, позволяют модели обучиться
тому, какой размер лучше всего подходит для каждого слоя. Финальный блок
конкатенации объединяет выходы всех путей (их пространственные размеры
одинаковы). На основе рис. 7.4.1 из работы [Zha+20]. Печатается с разрешения
Астона Чжана

Рис. 14.19  GoogLeNet (немного модифицированная по сравнению с оригиналом). Входной слой слева. На основе рис. 7.4.2 из работы [Zha+20]. Печатается
с разрешения Астона Чжана
1

Термин происходит от названия фильма «Inception» (в российском прокате – «На‑
чало»), где герой произносит фразу «We need to go deeper» («Нужно идти глубже»).
В 2014 году она стала популярным интернет-мемом.

Tlgm: @it_boooks

Распространенные архитектуры классификации изображений  579

14.3.4. ResNet
Победителем конкурса по классификации набора ImageNet в 2015 году стала
команда Microsoft, предложившая модель ResNet [He+16a]. Ее основная идея
состояла в том, чтобы заменить xl+1 = ℱl (xl) на
xl+1 = φ(xl + ℱl (xl)).

(14.22)

Это называется остаточным блоком, потому что ℱl обучается только
остатку, или разности между входом и выходом слоя, что является более
простой задачей. В работе [He+16a] ℱ имеет вид conv-BN-reluconv-BN, где
conv – сверточный слой, а BN – слой пакетной нормировки (раздел 14.2.4.1)
(см. иллюстрацию на рис. 14.20 (слева)).

Рис. 14.20  Остаточный блок для СНС. Слева: стандартная версия.
Справа: версия со сверткой 1x1, позволяющая изменить количество каналов между входом в блок и выходом из него. На основе рис. 7.6.3 из
работы [Zha+20]. Печатается с разрешения Астона Чжана

Воспользовавшись дополнением, мы можем сделать так, что простран‑
ственные измерения выхода ℱl (xl) сверточного слоя будут такими же, как
у входного слоя xl. Но если мы хотим, чтобы выход мог иметь другое число
каналов, то должны добавить сверточный слой 1´1 в прямую связь от xl (см.
иллюстрацию на рис. 14.20 (справа)).
Использование остаточных блоков позволяет обучать очень глубокие мо‑
дели. Связано это с тем, что градиент может передаваться напрямую от вы‑
ходного к предшествующим слоям по прямым связям (см. объяснение при‑
чин в разделе 13.4.4).

Tlgm: @it_boooks

580  Нейронные сети для изображений
В работе [He+16a] сеть ResNet с 152 слоями обучена на наборе ImageNet. Од‑
нако обычно используют не столь глубокие модели. Например, на рис. 14.21
показана архитектура ResNet-18 с 18 допускающими обучение слоями: два
сверточных слоя 3´3 в каждом из 8 остаточных блоков, а также начальный
сверточный слой 7´7 (с шагом 2) и последний полносвязный слой. Симво‑
лически эту модель можно описать схемой
(Conv : BN : Max) : (R : R) : (R’ : R) : (R’ : R) : (R’ : R) : Avg : FC,

где R – остаточный блок, R’ – остаточный блок с прямой связью (из-за из‑
менения количества каналов) с шагом 2, FC – полносвязный (плотный) слой,
а : обозначает конкатенацию. Отметим, что пространственный размер входа
уменьшается в 25 = 32 раз (в 2 раза на каждом блоке R’ плюс в начальном
слое Conv-7x7(2) и в слое Max-pool), так что перед подачей на слой пулинга
глобальным усреднением изображения 224´224 превращаются в изображе‑
ния 7´7.

Рис. 14.21  Архитектура ResNet-18. Каждый обведенный пунктиром модуль — остаточный блок, показанный на рис. 14.20. На основе рис. 7.6.4 из работы [Zha+20]. Печатается с разрешения Астона Чжана

Применяя различные приемы, мы можем достичь верности 89 % на одном
лучшем результате на тестовом наборе CIFAR после 20 эпох обучения1.
В работе [He+16b] показано, что небольшая модификация описанной выше
схемы позволяет обучать модели с числом слоев до 1001. Ключевое наблю‑
дение заключается в том, что сигнал, проходящий по прямым связям, все
же ослабляется из-за использования нелинейной функции активации после
шага сложения xl+1 = φ(xl + ℱ(xl)). Авторы показали, что лучше использовать
обновление:
xl+1 = xl + φ(ℱl (xl)).

(14.23)

Такая модель называется resnet с предактивацией, или просто PreResnet.
Теперь сеть может очень легко обучиться тождественной функции в задан‑
1

Приемы такие: приращение данных (раздел 19.1), включающее случайные кадри‑
рования, отражения относительно вертикальной оси и циклический план скоро‑
стей обучения (раздел 8.4.3). Используя 50 эпох и стохастическое усреднение весов
(раздел 8.4.4), можно довести верность до ∼94 % (см. код по адресу code.probml.ai/
book1/cifar10_cnn_lightning).

Tlgm: @it_boooks

Распространенные архитектуры классификации изображений  581

ном слое: если использовать активации ReLU, то надо лишь гарантировать,
что ℱl (xl) = 0, а это можно сделать, положив веса и смещения равными 0.
Альтернативой использованию очень глубокой модели является использо‑
вание очень «широкой» модели с большим числом каналов признаков в каж‑
дом слое. Эта идея лежит в основе модели широкой resnet [ZK16], весьма
популярной.

14.3.5. DenseNet
В остаточной сети мы прибавляем выход каждой функции к ее входу. Аль‑
тернативный подход – конкатенировать выход с входом, как показано на
рис. 14.22a. Соединив несколько таких блоков подряд, мы получим архитек‑
туру, показанную на рис. 14.22b. Она называется DenseNets [Hua+17a], по‑
скольку каждый слой плотно зависит от всех предыдущих. Поэтому модель
сводится к вычислению функции вида
x ® [x, f1(x), f2(x, f1(x)), f3(x, f1(x), f2(x, f1(x))), …].

(а)

(14.24)

(b)

Рис. 14.22  (a) Слева: остаточный блок прибавляет выход к входу. Справа: блок
DenseNet конкатенирует выход с входом. (b) Иллюстрация DenseNet. На основе
рис. 7.7.1–7.7.2 из работы [Zha+20]. Печатается с разрешения Астона Чжана

Плотная связность приводит к увеличению числа параметров, так как ка‑
налы расположены друг под другом. Это можно компенсировать, добавив
между ними сверточные слои 1´1. Можно также добавить слои с шагом 2,
чтобы уменьшить пространственное разрешение (см. пример кода по адресу
code.probml.ai/book1/densenet_torch).
DenseNets может показывать лучшие результаты, чем ResNets, поскольку
все ранее вычисленные признаки непосредственно доступны выходному
слою. Однако с вычислительной точки зрения они дороже.

14.3.6. Поиск архитектуры нейронной сети
Мы видели, что многие СНС похожи по дизайну, а различия заключают‑
ся в топологии строительных блоков (например, сверточных и пулинговых

Tlgm: @it_boooks

582  Нейронные сети для изображений
слоев) и настройках параметров (например, шага или количества каналов).
Процесс проектирования можно автоматизировать, применяя методы оп‑
тимизации черного ящика (без производных) для нахождения архитектур,
минимизирующих потерю на контрольном наборе. Это называется Auto-ML;
в контексте нейронных сетей можно встретить название поиск архитектуры нейронной сети (neural architecture search – NAS). При выполнении
NAS мы можем одновременно оптимизировать несколько целевых функ‑
ций, например: верность, размер модели, скорость обучения или вывода
и т. д. (именно так создана сеть EfficientNetv2 [TL21]). Основная трудность
связана со стоимостью вычисления целевой функции (поскольку для этого
требуется обучить каждого кандидата в пространстве моделей). Один из
способов уменьшить число вызовов целевой функции – применить байе‑
совскую оптимизацию (см., например, [WNS19]). Другой подход – создать
дифференцируемые аппроксимации функции потерь (см., например, [LSY19;
Wan+21]). Область NAS очень обширна и все еще растет. Более полный обзор
см. в работе [EMH19].

14.4. другие Формы сВертки*
В разделе 14.2 мы обсудили основы свертки. В этом разделе мы поговорим
о некоторых обобщениях, необходимых для таких приложений, как сегмен‑
тация и генерирование изображений.

14.4.1. Дырявая свертка
Свертка – это операция, объединяющая значения пикселей в локальной
окрестности. Применяя свертку с шагом и последовательное соединение не‑
скольких сверточных слоев, мы можем увеличить рецептивное поле каждого
нейрона, т. е. область пространства входов, на которую нейрон реагирует.
Однако понадобилось бы много слоев, чтобы у каждого нейрона был доста‑
точный контекст для покрытия всего изображения (если только не исполь‑
зовать очень большие фильтры, но это медленно и количество параметров
слишком велико).
В качестве альтернативы можно использовать свертку с дырками [Mal99],
которую иногда называют французским термином алгоритм à trous, а в по‑
следнее время – дырявой сверткой (dilated convolution) [YK16]. Идея в том,
чтобы при выполнении свертки брать каждый r-й входной элемент, где r
называется коэффициентом дырявости. Например, в одномерном слу‑
чае свертка с фильтром w с коэффициентом r = 2 эквивалентна регуляр‑
ной свертке с фильтром w = [w1, 0, w2, 0, w3], где нули вставлены, чтобы
расширить рецептивное поле (отсюда и термин «свертка с дырками»). Это
позволяет получить все преимущества широкого рецептивного поля без
увеличения числа параметров или объема вычислений (см. иллюстрацию
на рис. 14.23).

Tlgm: @it_boooks

Другие формы свертки  583

Рис. 14.23  Дырявая свертка с фильтром 3´3 и коэффициентами 1, 2 и 3.
На основе рис. 1 из работы [Cui+19]. Печатается с разрешения Симинь Куя

Точнее, дырявая свертка в двумерном случае определяется следующим
образом:
(14.25)
где для простоты мы взяли один и тот же коэффициент r для обоих направ‑
лений. Сравните это с формулой (14.15), где используется параметр шага
xsi+u,sj+v,c.

14.4.2. Транспонированная свертка
Свертка сводит большой вход X к малому выходу Y за счет того, что вычис‑
ляется взвешенная комбинация входных пикселей и сверточного ядра K.
Проще всего это объяснить с помощью кода:
def conv(X, K):
h, w = K.shape
Y = zeros((X.shape[0] - h + 1, X.shape[1] - w + 1))
for i in range(Y.shape[0]):
for j in range(Y.shape[1]):
Y[i, j] = (X[i:i + h, j:j + w] * K).sum()
return Y

Транспонированная свертка делает прямо противоположное: порожда‑
ет большой выход из меньшего входа:
def trans_conv(X, K):
h, w = K.shape
Y = zeros((X.shape[0] + h - 1, X.shape[1] + w - 1))
for i in range(X.shape[0]):
for j in range(X.shape[1]):
Y[i:i + h, j:j + w] += X[i, j] * K
return Y

Tlgm: @it_boooks

584  Нейронные сети для изображений
Это эквивалентно дополнению входного изображения (h - 1, w - 1) нуля‑
ми (справа и снизу), где (h, w) – размер ядра, а затем наложения взвешенной
копии ядра на каждую позицию входа (в качестве весов используются значе‑
ния соответствующих пикселей) и суммирования. Этот процесс показан на
рис. 14.24. Мы можем рассматривать ядро как «шаблон», который использует‑
ся для генерирования выхода с модуляцией весами, определяемыми входом.
Вход

Ядро

Выход

Рис. 14.24  Транспонированная свертка с ядром 2´2.
На основе рис. 13.10.1 из работы [Zha+20].
Печатается с разрешения Астона Чжана

Происхождение термина «транспонированная свертка» связано с интер‑
претацией свертки как умножения матриц (см. обсуждение в разделе 14.2.1.3).
Если W – матрица, полученная из ядра K применением процесса, описанного
формулой (14.9), то можно показать, что Y = transposed-conv(X, K) эквива‑
лентно Y = reshape(W⟙vec(X)) (см. пример кода по адресу code.probml.ai/
book1/transposed_conv_torch).
Отметим, что транспонированная свертка иногда называется антисверткой (deconvolution), но такое использование термина неправомерно: анти‑
свертка – это процесс «отмены» эффекта свертки с известным фильтром,
например фильтром размытия, с целью восстановления исходного входа
(см. рис. 14.25).
Свертка

Антисвертка

Транспонированная свертка

Рис. 14.25  Свертка, антисвертка и транспонированная свертка.
Здесь s – шаг, а p – дополнение. Взято из статьи https://tinyurl.com/ynxcxsut.
Печатается с разрешения Акеля Анвара

14.4.3. Пространственная раздельная свертка
В стандартной свертке используется фильтр размера H´W´C´D, поэтому
требуется обучать много параметров, а вычисления с ним занимают много
времени. Упрощение, известное под названием пространственная раздельная свертка (depthwise separable convolution), сначала сворачивает
каждый входной канал соответствующим двумерным фильтром w, а затем
отображает эти C каналов в D каналов с помощью свертки w¢ размера 1´1:

Tlgm: @it_boooks

Решение других дискриминантных задач компьютерного зрения с помощью СНС  585

(14.26)
Смотрите иллюстрацию на рис. 14.26.
Вход (С)
Выход (D)

фильтры

Двумерная свертка
каждого канала

Свертка 1´1 отображает C
измерений в D

Рис. 14.26  Пространственные раздельные свертки: каждый из C входных
каналов подвергается двумерной свертке и порождает C выходных каналов,
которые объединяются поточечно (посредством свертки 1´1); в результате порождается D выходных каналов. Взято из статьи https://bit.ly/2L9fm2o. Печатается с разрешения Эудженио Кулурчелло

Чтобы понять, в чем тут преимущество, рассмотрим простой числовой при‑
мер1. Регулярная свертка входа 12´12´3 с фильтром 5´5´3´256 дает выход
размера 8´8´256 (в предположении, что выполняется корректная свертка:
12 - 5 + 1 = 8), как показано на рис. 14.13. В случае раздельной свертки мы на‑
чинаем с входа 12´12´3, сворачиваем его с фильтром 5´5´1´1 (по простран‑
ству, но не по каналам), получая при этом выход 8´8´3, а затем сворачива‑
ем поточечно (по каналам, но не по пространству) с фильтром 1´1´3´256
и получаем выход 8´8´256. Таким образом, размер выхода такой же, как
раньше, но для определения слоя мы использовали гораздо меньше параме‑
тров и вычислений было также намного меньше. По этой причине раздельная
свертка часто применяется в облегченных моделях СНС, например MobileNet
[How+17; San+18a] и других, развертываемых на оконечных устройствах.

14.5. решение других дискриминантных
задаЧ компьютерного зрения с помощью

снс*

В этом разделе мы кратко обсудим, как решить другие задачи компьютерного
зрения с помощью СНС. При описании каждой задачи будет рассмотрено
1

Этот пример взят из статьи Чи-Фен Вана по адресу https://bit.ly/2Uj64Vo.

Tlgm: @it_boooks

586  Нейронные сети для изображений
какое-то архитектурное добавление в библиотеку основных строительных
блоков. Дополнительные сведения о применении СНС в компьютерном зре‑
нии можно найти в работе [Bro19].

14.5.1. Аннотирование изображений
В задаче классификации изображений одна метка ассоциируется со всем изо‑
бражением, т. е. предполагается, что выходы взаимно исключающие. Во мно‑
гих задачах в изображении может присутствовать несколько объектов, и мы
хотим пометить каждый из них. Это называется аннотированием изображений (image tagging) и является примером многометочного предсказания.
В этом случае пространство выходов 𝒴 = {0, 1}C, где C – число типов. Поскольку
выходные биты независимы (при условии заданного изображения), мы долж‑
ны заменить конечный слой softmax набором C логистических блоков.
Пользователи социальных сетей типа Инстаграм часто создают хеште‑
ги для своих изображений, в результате мы «бесплатно» получаем способ
создания больших наборов данных с учителем. Конечно, многие теги ис‑
пользуются лишь эпизодически, а их визуальный смысл не слишком хорошо
определен. (Например, кто-то мог сфотографировать себя после сдачи теста
на ковид и аннотировать изображение хештегом «#covid», хотя визуально
оно ничем не отличается от других изображений человека.) Поэтому такие
созданные пользователями метки обычно считаются сильно зашумленными.
Однако их можно использовать для «предобучения», как описано в работе
[Mah+18].
Наконец, стоит отметить, что аннотирование изображений зачастую более
разумная цель, чем их классификация, потому что на многих изображени‑
ях присутствует несколько объектов и трудно решить, какой именно брать
в качестве метки. Андрей Карпатый, создавший «эталонный тест качества
работы человека» на наборе данных ImageNet, заметил1:
И СНС, и люди испытывают сложности при обработке изображений,
содержащих несколько классов ImageNet (обычно более пяти) без ка‑
кого-либо указания на то, какой объект занимает центральное место.
Эта ошибка свойственна только задаче классификации, потому что для
каждого изображения можно задать ровно одну метку. В целом 16 % человеческих ошибок попадает в эту категорию.

14.5.2. Определение объектов
Иногда мы хотим порождать переменное число выходов в соответствии с пе‑
ременным числом представляющих интерес объектов в изображении. (Это
пример проблемы открытого мира с неизвестным числом объектов.)
Канонический пример такой задачи – определение объектов, когда тре‑
буется вернуть множество ограничивающих прямоугольников, которые
1

Источник: https://bit.ly/3cFbALk.

Tlgm: @it_boooks

Решение других дискриминантных задач компьютерного зрения с помощью СНС  587

описывают местоположение интересных объектов, вместе с метками клас‑
сов. Частным случаем является определение лиц, когда имеется только один
класс, представляющий интерес (см. иллюстрацию на рис. 14.27a)1.

(а)

(b)

Рис. 14.27  (a) Определение лиц (фотография автора и его жены Маргарет,
сделанная в садах Филоли в Калифорнии в феврале 2018 года. Изображение
обработано Джонатаном Хуангом с помощью модели лиц SSD). (b) Якорные
рамки. На основе [Zha+20, раздел 12.5]

Простейший подход к таким задачам определения состоит в том, чтобы
преобразовать их в задачу замкнутого мира, когда имеется конечное мно‑
жество возможных позиций (и ориентаций) объектов. Такие потенциальные
позиции называются якорными рамками (anchor box). Мы можем создать
рамки в нескольких позициях, с разными масштабами и отношениями сто‑
рон, как показано на рис. 14.27b. Для каждой рамки мы обучаем систему
предсказывать категорию находящегося в ней объекта (если таковой имеет‑
ся); можно также выполнить регрессию, чтобы предсказать смещение объ‑
екта от центра рамки. (Эти остаточные члены регрессии открывают возмож‑
ность для пространственной локализации на подсетке.)
В абстрактной постановке мы обучаем функцию вида
fθ : ℝH´W´K ® [0, 1]A´A ´ {1, …, C}A´A ´ (ℝ4)A´A,

(14.27)

где K – число входных каналов, A – число якорных рамок в каждом направ‑
лении, а C – число типов объектов (меток классов). Для каждой позиции
рамки (i, j) мы предсказываем три выхода: вероятность присутствия объекта,
pij Î [0, 1], категорию объекта, yij Î {1, …, C}, и два двумерных вектора сме‑
щения, δij Î ℝ4, которые можно прибавить к центру рамки, чтобы получить
левый верхний и правый нижний угол.
1

Отметим, что определение лиц отличается от распознавания лиц; последнее
заключается в предсказании личности человека, входящего в «галерею» возмож‑
ных кандидатов. Задача распознавания лиц обычно решается путем применения
классификатора ко всем патчам, содержащим лица.

Tlgm: @it_boooks

588  Нейронные сети для изображений
Было предложено несколько моделей такого типа, в том числе модель однопроходного детектора (single shot detector – SSD) [Liu+16] и модель YOLO
(you only look once) [Red+16]. За прошедшие годы появилось много методов
определения объектов с разными компромиссами между быстродействи‑
ем, верностью, простотой и т. д. Их эмпирическое сравнение см. в работе
[Hua+17b], а относительно недавний обзор – в работе [Zha+18].

14.5.3. Сегментация экземпляров
В задаче определения объектов мы предсказываем метку и ограничивающий
прямоугольник для каждого объекта. В задаче сегментации экземпляров
цель – предсказать метку и двумерную маску формы каждого экземпля‑
ра объекта в изображении, как показано на рис. 14.28. Это можно сделать,
применив семантическую сегментацию к каждому обнаруженному прямо‑
угольнику, задача которой – пометить каждый пиксель как принадлежащий
переднему или заднему плану (подробнее о семантической сегментации см.
раздел 14.5.4).

Рис. 14.28  Определение объектов и сегментация экземпляров с применением R-CNN Mask. Взято из https://github.com/matterport/Mask_RCNN. Печатается с разрешения Валида Абдуллы

Tlgm: @it_boooks

Решение других дискриминантных задач компьютерного зрения с помощью СНС  589

14.5.4. Семантическая сегментация
Задача семантической сегментации состоит в том, чтобы предсказать мет‑
ку класса yi Î {1, …, C} для каждого пикселя, где классы могут представлять
такие объекты, как небо, дорога, автомобиль и т. д. В отличие от сегментации
экземпляров, рассмотренной в разделе 14.5.3, все пиксели автомобилей по‑
лучают одну и ту же метку, поэтому семантическая сегментация не разли‑
чает объекты. Можно объединить семантическую сегментацию «окружения»
(например, неба или дороги) с сегментацией экземпляров «предметов» (на‑
пример, автомобилей или людей) – в результате получится единый каркас,
получивший название «всеобъемлющая сегментация» (panoptic segmenta‑
tion) [Kir+19].

Рис. 14.29  СНС-кодировщик-декодер (или U-сеть) для семантической сегментации. Кодировщик использует свертку (понижающую передискретизацию),
а декодер – транспонированную свертку (повышающую передискретизацию).
На основе рис. 1 из работы [BKC17]. Печатается с разрешения Алекса Кендалла

Для семантической сегментации часто применяют архитектуру кодировщик-декодер, показанную на рис. 14.29. В кодировщике используется стан‑
дартная свертка для отображения входа в меньшее двумерное изображение,
улавливающее общие свойства при низком пространственном разрешении.
(Обычно для этой цели применяется описанная в разделе 14.4.1 техника
дырявой свертки, увеличивающая рецептивное поле, т. е. предоставляющая
больше контекста.) Декодер отображает уменьшенное изображение обратно
в полноразмерное выходное изображение, применяя технику транспони‑
рованной свертки, описанную в разделе 14.4.2. Так как при уменьшении
масштаба теряется информация, мы также можем добавить прямые связи
от входных слоев к выходным. Эту модель можно изобразить, как показано
на рис. 14.30. Поскольку общая структура напоминает букву U, модель часто
называют U-сетью [RFB15].
Похожую архитектуру кодировщик-декодер можно использовать и в дру‑
гих задачах плотного предсказания или преобразования изображения
в изображение, например предсказания глубины (расстояния от камеры
до каждого пикселя i - zi Î ℝ), предсказания нормали к поверхности
(ориентации поверхности, zi Î ℝ3, для каждого патча изображения) и т. д.

Tlgm: @it_boooks

590  Нейронные сети для изображений
Конечно, можно обучить модель решать все эти задачи одновременно, реали‑
зовав несколько выходов, как показано на рис. 14.31. (Детали см., например,
в работе [Kok17].)

Рис. 14.30  Иллюстрация модели U-Net для семантической сегментации. Голубые прямоугольники соответствуют многоканальным картам признаков. Количество каналов показано сверху от прямоугольника, а высота и ширина – слева внизу. Белые прямоугольники обозначают скопированные карты признаков.
Разноцветные стрелки соответствуют различным операциям. На основе рис. 1
из работы [RFB15]. Печатается с разрешения Олафа Розенберга

Рис. 14.31  Задача многофункционального плотного предсказания.
На основе рис. 1 из работы [EF15]. Печатается с разрешения Роба Фергюса

14.5.5. Оценивание позы человека
Мы можем обучить детектор объектов определять людей и предсказывать их
форму, представленную маской. А еще можно обучить модель предсказывать
местоположение фиксированного множества особых точек скелета, напри‑
мер головы или кистей рук. Это называется оценивание позы человека

Tlgm: @it_boooks

Генерирование изображений посредством инвертирования СНС  591

(см. пример на рис. 14.32). Для решения этой задачи существует несколько
методов, например PersonLab [Pap+18] и OpenPose [Cao+18]. Недавний обзор
см. в [Bab19].

Рис. 14.32  Определение особых точек: туловища, кистей рук и лица с помощью системы OpenPose. На основе рис. 8 из работы [Cao+18]. Печатается
с разрешения Ясера Шейха

Мы также можем предсказывать трехмерные свойства найденных объек‑
тов. Основное ограничение – получение достаточного объема помеченных
обучающих данных, поскольку человеку трудно создавать аннотации трех‑
мерных изображений. Однако можно воспользоваться системами компью‑
терной графики и создавать синтезированные изображения с трехмерными
аннотациями в любом количестве (см., например, [GNK18]).

14.6. генерироВание изображений
посредстВом инВертироВания снс*
СНС, обученная классификации изображений, – это дискриминантная мо‑
дель вида p(y|x), которая принимает изображение и возвращает распределе‑
ние вероятностей меток классов C. В этом разделе мы поговорим о том, как
«инвертировать» эту модель, преобразовав ее в (условную) порождающую
изображения модель вида p(x|y). Это позволит нам генерировать изображе‑
ния, принадлежащие определенному классу. (Научно обоснованные подходы

Tlgm: @it_boooks

592  Нейронные сети для изображений
к созданию порождающих моделей для изображений мы обсудим во втором
томе этой книги, [Mur22].)

14.6.1. Преобразование обученного
классификатора в порождающую модель
Мы можем определить совместное распределение изображений и меток
p(x, y) = p(x)p(y|x), где p(y|x) – классифицирующая СНС, а p(x) – некоторое
априорное распределение изображений. Если затем «притянуть» метку клас‑
сов к конкретному значению, то можно создатьусловную порождающую
модель p(x|y) µ p(x)p(y|x). Отметим, что дискриминантный классификатор
p(y|x) был обучен «отбрасывать» информацию, поэтому p(y|x) – необратимая
функция. Таким образом, априорный член p(x) будет играть важную роль
в регуляризации этого процесса, как мы увидим в разделе 14.6.2.
Один из способов произвести выборку из этой модели – воспользоваться
алгоритмом Метрополиса–Гастингса (раздел 4.6.8.4), рассматривая Ψc(x) =
log p(y = c|x) + log p(x) как функцию энергии. Поскольку информация о гра‑
диенте доступна, мы можем использовать вспомогательное распределение
вида π(x¢|x) = 𝒩(μ(x), εI), где и(x) = x + (ε/2)Ñlog Ψc(x). Это называется алгоритмом Ланжевена с поправкой Метрополиса (Metropolis-adjusted Lan‑
gevin algorithm – MALA). В качестве аппроксимации можно игнорировать
шаг отвержения и принимать любое предложение. Этот алгоритм Ланжевена без поправки использовался в работе [Ngu+17] для условного генери‑
рования изображений. Кроме того, мы можем независимо масштабировать
градиент логарифмического априорного распределения и логарифмическо‑
го правдоподобия. Таким образом, мы получаем обновление в пространстве
изображений, которое похоже на зашумленную версию СГС, только произво‑
дные берутся по входным пикселям (по формуле (13.50)), а не по параметрам:
(14.28)
Члены этой формулы интерпретируются следующим образом: ε1 гаранти‑
рует, что изображение похоже на правду с точки зрения априорного распре‑
деления, ε2 гарантирует, что изображение похоже на правду с точки зрения
правдоподобия, а ε3 – шум, необходимый для генерирования разнообразных
примеров. Если положить ε3 = 0, то алгоритм становится детерминирован‑
ным и генерирует (приближенно) «самое вероятное изображение» для дан‑
ного класса.

14.6.2. Априорные распределения изображений
В этом разделе мы обсудим различные априорные распределения изображе‑
ний, которые можно использовать для регуляризации некорректной задачи
обращения классификатора. Эти априорные распределения в совокупности

Tlgm: @it_boooks

Генерирование изображений посредством инвертирования СНС  593

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

14.6.2.1. Гауссово априорное распределения
Одного лишь задания метки класса недостаточно для определения желае‑
мого вида изображений. Необходимо также априорное распределение p(x)
«похожих на правду» изображений. Ниже мы покажем, что это априор‑
ное распределение может сильно повлиять на качество результирующего
изображения.
Пожалуй, самым простым априорным распределением является p(x) =
𝒩(x|0, I), как предложено в работе [SVZ14]. (При этом предполагается, что
пиксели изображения уже центрированы.) Оно может предотвратить появ‑
ление экстремальных значений пикселей. В этом случае член обновления,
связанный с априорным распределением, принимает вид:
(14.29)
Таким образом, обновление в целом (в предположении, что ε2 = 1 и ε3 = 0)
имеет вид:
(14.30)
Примеры изображений, сгенерированных этим методом, приведены на
рис. 14.33.

Рис. 14.33  Изображения, максимизирующие вероятность классов «гусь»
и «страус» для набора ImageNet при простом гауссовом априорном распределении. Взято из статьи по адресу http://yosinski.com/deepvis. Печатается с разрешения Джеффа Клуна

Tlgm: @it_boooks

594  Нейронные сети для изображений

14.6.2.2. Априорное распределение на основе полной вариации
Для генерирования более реалистичных изображений можно воспользовать‑
ся дополнительными регуляризаторами. В работах [MV15; MV16] предложе‑
но вычислять полную вариацию, или норму TV изображения. Она равна
интегралу попиксельных градиентов, который можно аппроксимировать
следующим образом:
(14.31)
где xijk – значение пикселя в строке i, столбце j и канале k (для RGB-изображений). Это выражение можно переписать в терминах детектора горизон‑
тальных и вертикальных границ Собеля, примененного к каждому каналу:
(14.32)
Смотрите иллюстрацию детекторов границ на рис. 14.34. Использование
распределения p(x) µ exp(-TV(x)) предотвращает появление высокочастот‑
ных артефактов в изображениях. В работе [Yos+15] используется гауссово
размытие вместо нормы TV с похожим эффектом.
(a)

(b)

(с)

Рис. 14.34  Норма полной вариации. (a) Входное изображение: зеленая
морская черепаха (печатается с разрешения автора викимедии Р. Линдгрена).
(b) Горизонтальные дельты. (c) Вертикальные дельты. На основе статьи по адресу https://www.tensorflow.org/tutorials/generative/style_transfer

Tlgm: @it_boooks

Генерирование изображений посредством инвертирования СНС  595

На рис. 14.35 показаны результаты оптимизации log p(y = c, x), начиная со
случайного шума, с использованием априорного распределения на основе
TV и СНС-правдоподобия для разных меток классов c.

Морская анемона

Банан

Парашют

Шурупы

Рис. 14.35  Изображения, максимизирующие вероятность определенных
классов ImageNet при априорном распределении на основе TV. Из статьи
по адресу https://research.googleblog.com/2015/06/inceptionism-going-deeperinto-neural.html. Печатается с разрешения Александра Мордвинцева

14.6.3. Визуализация признаков,
обученных с помощью СНС
Интересный вопрос – чему обучаются «нейроны» СНС. Для ответа на него
можно начать со случайного изображения, а затем оптимизировать вход‑
ные пиксели, стремясь доставить максимум средней активации конкретного
нейрона. Это называется максимизацией активации (activation maximiza‑
tion – AM). Используется та же техника, что в разделе 14.6.1, но фиксируется
значение внутреннего узла, а не метки выходного класса.
На рис. 14.36 показан результат применения этого метода (с априорным
распределением на основе TV) к СНС AlexNet, обученной на классифика‑
ции набора ImageNet. Мы видим, что по мере увеличения глубины нейроны
обучаются распознавать границы и пятна, затем текстурные паттерны, затем
части объектов и, наконец, объекты целиком. Считается, что это отдаленно
напоминает иерархическое строение зрительной коры головного мозга (см.,
например, [Kan+12]).
Альтернативой оптимизации в пространстве пикселей является поиск
в обучающем наборе таких изображений, которые дают максимальную ак‑
тивацию заданного нейрона. Это показано на рис. 14.36 для слоя Conv5.
Дополнительные сведения о визуализации признаков см., например, в ра‑
боте [OMS17].

14.6.4. Deep Dream
До сих пор нас интересовало генерирование изображений, которые мак‑
симизируют метку класса или активацию какого-то интересного нейрона.
В этом разделе мы рассмотрим приложение артистического толка, в котором

Tlgm: @it_boooks

596  Нейронные сети для изображений
требуется сгенерировать версии входного изображения, подчеркивающие
некоторые признаки.

Рис. 14.36  Визуализированы «оптимальные стимулы» нейронов
в слоях Conv 1, 3, 5 и fc8 в архитектуре AlexNet, обученной на наборе
данных ImageNet. Для слоя Conv5 показаны также реальные изображения (в столбце «Data-driven»), порождающие похожие активации. На
основе метода, описанного в работе [MV16]. Печатается с разрешения
Донглай Вея

Для этого будем рассматривать предварительно обученный классифика‑
тор изображений как экстрактор признаков. Из результатов раздела 14.6.3
мы знаем, что активность нейронов в разных слоях соответствует различ‑
ным видам признаков в изображении. Допустим, что мы хотим «усилить»
признаки из слоя l Î ℒ. Это можно сделать, определив функцию энергии или


потерь вида ℒ(x) = ålÎℒϕ l (x), где ϕ l = (1/HWC)åhwc ϕlhwc(x) – вектор признаков
для слоя l. Теперь можно использовать метод градиентного спуска для оп‑
тимизации этой энергии. Получающийся процесс называется DeepDream1
[MOT15], поскольку модель усиливает признаки, которые были только на‑
мечены в оригинальном изображении, а затем создает изображения, содер‑
жащие все больше и больше таких признаков2.
На рис. 14.37 приведен пример. Мы начали с изображения медузы, которое
передаем СНС, обученной для классификации изображений из набора Ima‑
geNet. После нескольких итераций генерируется изображение, являющееся
гибридом входа и «галлюцинаций» типа тех, что мы видели на рис. 14.33;
эти галлюцинации включают части собак, потому что среди меток ImageNet
1
2

Глубокий сон. – Прим. перев.
Первоначально метод был назван Inceptionism, потому что в нем используется
СНС Inception (раздел 14.3.3).

Tlgm: @it_boooks

Генерирование изображений посредством инвертирования СНС  597

много видов собак. Детали см. в работе [Tho16], а забавную демонстрацию
на сайте https://deepdreamgenerator.com.

(a)

(b)

(c)

Рис. 14.37  DeepDream. В роли СНС выступает классификатор Inception,
обученный на наборе данных ImageNet. (a) Начальное изображение Aurelia
aurita (ушастой медузы). (b) Изображение, сгенерированное после 10 итераций.
(c) Изображение, сгенерированное после 50 итераций. Взято из статьи по адресу https://en.wikipedia.org/wiki/DeepDream. Печатается с разрешения автора
«Википедии» Мартина Тома

14.6.5. Нейронный перенос стиля
Система DeepDream на рис. 14.37 – это лишь один способ использования СНС
для создания «художественных произведений». Но довольно страшненький.
В этом разделе мы рассмотрим родственный подход, который дает пользо‑
вателю больше контроля над процессом. В частности, пользователь задает
«образец стиля» xs и «оригинальное изображение» xc. Затем система пытается
сгенерировать новое изображение x, «перерисовывающее» xc в стиле xs. Эта
техника нейронного переноса стиля иллюстрируется на рис. 14.38 и 14.39.
Впервые она была предложена в работе [GEB16], и с тех пор появилось много
работ на эту тему; см. недавний обзор [Jin+17].

(a)

(b)

(c)

Рис. 14.38  Пример результата работы системы нейронного переноса стиля.
(a) Оригинальное изображение: зеленая морская черепаха (печатается с разрешения автора викимедии П. Линдгрена). (b) Образец стиля: картина Василия
Кандинского «Композиция VII». (c) Результат переноса стиля. На основе статьи
https://www.tensorflow.org/tutorials/generative/style_transfer

Tlgm: @it_boooks

598  Нейронные сети для изображений

Рис. 14.39  Применение нейронного переноса стиля к «производственной
бригаде», помогавшей создавать код и демонстрации для этой книги и ее продолжения. Сверху вниз: Кэвин Мэрфи (автор), Махмуд Солиман, Алейна Кара,
Срикар Джилугу, Дришти Патель, Мин Лиан Ан, Джерардо Дюран-Мартен, Коко
(общий пес). Каждый оригинал перерисован в своем стиле. На основе статьи по
адресу https://www.tensorflow.org/tutorials/generative/style_transfer

14.6.5.1. Как это работает
В основе переноса стиля лежит оптимизация следующей функции энергии:
ℒ(x|xs, xc) = λTVℒTV(x) + λcℒcontent(x, xc) + λsℒstyle(x, xs).

(14.33)

Смотрите общую схему на рис. 14.40.
Первый член в формуле (14.33) – априорное распределение на основе пол‑
ной вариации, обсуждавшееся в разделе 14.6.2.2. Второй член измеряет сте‑
пень схожести x и xc путем сравнения карт признаков предобученной СНС
ϕ(x) в релевантном «слое оригинала» l:
(14.34)
Наконец, мы должны определить член стиля. Визуальный стиль можно
интерпретировать как статистическое распределение некоторых видов при‑
знаков изображения. Местоположение этих признаков внутри изображения
может не играть роли, но совместная встречаемость важна. Это показано
на рис. 14.41. Ясно (человеку), что изображение 1 стилистически больше
похоже на изображение 2, чем на изображение 3. Интуитивно кажется, что
причина – наличие в изображениях 1 и 2 зеленых заостренных форм, тогда
как в изображении 3 заостренные формы есть, но не зеленые.

Tlgm: @it_boooks

Генерирование изображений посредством инвертирования СНС  599
Утрата стиля

Утрата содержимого

Утрата стиля

Конечное
изображение

Образец
стиля

Оригинальное
изображение
Потеря на основе полной вариации

Рис. 14.40  Иллюстрация работы нейронного переноса стиля.
На основе рис. 12.12.2 из работы [Zha+20]
Признак 1
(детектор зеленого)

Признак 2 (детектор
заостренности)

Признак 3 (детектор
коричневого)

Изображение 1

Изображение 2

Изображение 3

Рис. 14.41  Схематическое представление трех видов карт признаков
для трех разных входных изображений. На основе рис. 5.16 из работы [Fos19]

Tlgm: @it_boooks

600  Нейронные сети для изображений
Чтобы отразить статистику совместной встречаемости, мы вычислим матрицу Грама изображения, воспользовавшись картами признаков из конкрет‑
ного слоя l:
(14.35)
Матрица Грама размера Cl´Cl пропорциональна нецентрированной кова‑
риационной матрице Cl-мерных векторов признаков, выбранных из каждой
из HlWCl позиций.
Имея это в виду, мы определяем стилистическую потерю в слое l следую‑
щим образом:
(14.36)
И наконец, определяем общую стилистическую потерю как сумму потерь
по множеству слоев 𝒮:
(14.37)

Например, на рис. 14.40 мы вычисляем стилистическую потерю в слоях 1
и 3. (Нижние слои улавливают визуальную текстуру, а верхние – расположе‑
ние объектов.)

14.6.5.2. Ускорение метода
В работе [GEB16] использован метод L-BFGS (раздел 8.3.2) для оптимизации
функции (14.33), начиная с белого шума. Получить результаты можно быстрее, если вместо BFGS воспользоваться оптимизатором типа Adam и на‑
чать с оригинального изображения, а не с белого шума. Тем не менее про‑
гон оптимизатора для каждого нового стиля и оригинального изображения
занимает много времени. В нескольких работах (см., например, [JAFF16;
Uly+16; UVL16; LW16]) предложено обучать нейронную сеть прямому пред‑
сказанию результата этой оптимизации, а не решать уравнение для каждой
новой пары изображений. (Это можно рассматривать как разновидность
амортизированной оптимизации.) Именно, для каждого образца стиля xs
мы обучаем модель fs такую, что fs(xc) = argminx ℒ(x|xs, xc). Затем эта модель
применяется к новым оригинальным изображениям без необходимости
повторной оптимизации.
Позже в работе [DSK16] было показано, как обучить одну сеть, которая при‑
нимает на входе оригинальное изображение и дискретное представление s
стиля и порождает на выходе f(xc, s) = argminx ℒ(x|s, xc). Это позволяет обой‑
тись без отдельной сети для каждого образца стиля. Ключевая идея – стан‑
дартизировать признаки в заданном слое, используя параметры масштаба
и сдвига, специфичные для стиля. Конкретно используется следующее пре‑
образование условной индивидуальной нормировки:

Tlgm: @it_boooks

Генерирование изображений посредством инвертирования СНС  601

(14.38)
где μ(ϕ(xc)) – среднее признаков в данном слое, σ(ϕ(xc)) – их стандартное
отклонение, а βs и γs – параметры стиля s. (Подробнее об индивидуальной
нормировке см. раздел 14.2.4.2.) Удивительно, но этого простого трюка до‑
статочно для улавливания особенностей многих стилей.
Недостаток описанного метода в том, что он работает только для фиксиро‑
ванного числа дискретных стилей. В работе [HB17] показано, как обобщить
метод, заменив константы βs и γs выходом еще одной СНС, которая прини‑
мает произвольный образец стиля xs на входе. То есть в формуле (14.38) мы
полагаем βs = fβ(ϕ(xs)), γs = fγ(ϕ(xs)) и обучаем параметры β и γ вместе со всеми
остальными. Модель принимает вид:
(14.39)
Авторы назвали этот метод адаптивной индивидуальной нормировкой.

Глава

15

Tlgm: @it_boooks

Нейронные сети
для последовательностей
15.1. ВВедение
В этой главе мы обсудим различные виды нейронных сетей для последо‑
вательностей. Мы рассмотрим случаи, когда вход, выход или то и другое
являются последовательностями. У таких моделей много приложений, в том
числе машинный перевод, распознавание речи, классификация текста, авто‑
матическое описание изображений и т. д. Наше изложение частично следует
книге [Zha+20], которую мы рекомендуем для ознакомления с деталями.

15.2. рекуррентные нейронные сети (рнс)
Рекуррентной нейронной сетью (РНС, англ. RNN) называется нейронная
сеть, которая отображает пространство входных последовательностей в про‑
странство выходных последовательностей, сохраняя информацию о состо‑
янии. То есть предсказание выхода yt зависит не только от входа xt, но и от
скрытого состояния системы ht, которое обновляется со временем по мере
обработки последовательности. Такие модели можно использовать для ге‑
нерирования, классификации и перевода последовательностей, как будет
объяснено ниже1.

15.2.1. Vec2Seq (генерирование
последовательностей)
В этом разделе мы обсудим, как обучать функции вида fθ : ℝD ® ℝN¥C, где
D – размер входного вектора, а выходом является последовательность произ‑
вольной длины, состоящая из векторов размера C. (Отметим, что слова – это
1

Более подробное введение см. в статье http://karpathy.github.io/2015/05/21/rnn-effectiveness/.

Tlgm: @it_boooks

Рекуррентные нейронные сети (РНС)  603

дискретные токены, но их можно преобразовать в вещественные векторы,
как описано в разделе 1.5.4.) Такие модели носят название vec2seq, посколь‑
ку отображают вектор в последовательность.
Выходная последовательность y1:T генерируется поэлементно. На каждом
шаге мы производим выборку y t из скрытого состояния модели ht, а затем
подаем ее обратно на вход модели, чтобы получить новое состояние ht+1
(зависящее также от входа x) (см. иллюстрацию на рис. 15.1). Таким обра‑
зом, мы определили условную порождающую модель вида p(y1:T|x), которая
улавливает зависимости между выходными токенами. Более подробно мы
объясним это ниже.

Рис. 15.1  Рекуррентная нейронная сеть (РНС) для генерирования выходной последовательности переменной
длины y1:T по необязательному входному вектору x фиксированной длины

15.2.1.1. Модели
Для простоты обозначим T длину выхода (понимая, что на самом деле она
выбирается динамически). Тогда РНС соответствует следующая условная по‑
рождающая модель:
(15.1)
где ht – скрытое состояние, а p(h1|h0, y0, x) = p(h1|x) – начальное скрытое рас‑
пределение состояний (часто детерминированное).
Выходное распределение обычно имеет вид:
p(yt|ht) = Cat(yt|𝒮(Why ht + by)),

(15.2)

где Why – веса связей между скрытыми и выходными блоками, а by – смещение.
Однако если выход вещественный, то можно использовать распределение:
p(yt|ht) = 𝒩(yt|Why ht + by, σ2I).

(15.3)

p(ht|ht-1, yt-1, x) = 𝕀(ht = f(ht-1, yt-1, x)),

(15.4)

Предполагается, что скрытое состояние вычисляется по формуле:

Tlgm: @it_boooks

604  Нейронные сети для последовательностей
где f – некоторая детерминированная функция обновления вида
ht = φ(Wxh[x; yt-1] + Whh ht-1 + bh),

(15.5)

где Whh – веса связей, ведущих из скрытых блоков в скрытые, Wxh – веса
связей, ведущих из входных блоков в скрытые, а bh – смещения (см. иллю‑
страцию на рис. 15.1 и демонстрационный код по адресу code.probml.ai/book1/
rnn_torch).
Заметим, что yt зависит от ht, которое зависит от yt-1, которое зависит от
ht-1, и т. д. Таким образом, yt неявно зависит от всех прошлых наблюдений
(а также от факультативного фиксированного входа x). Стало быть, РНС вы‑
ходят за рамки стандартных марковских моделей, поскольку могут иметь
неограниченную память. Благодаря этому РНС теоретически обладают такой
же мощностью, как машина Тьюринга [SS95; PMB19]. Но на практике объ‑
ем памяти ограничен размером скрытого состояния и силой параметров;
дальнейшее обсуждение этого вопроса см. в разделе 15.2.7.
В процессе генерирования выхода РНС мы производим выборку из распре‑
деления y t ~ p(yt|ht) и подаем выбранное значение слою скрытого состояния,
чтобы детерминированно вычислить ht+1 = f(ht, y t, x), затем выбрать y t+1 ~
p(yt+1|ht+1) и т. д. Таким образом, стохастичность, присутствующая в системе,
проистекает только из шума в модели наблюдений (выходе), который по‑
дается обратно на вход на каждом шаге. (Однако имеется вариант, называе‑
мый вариационной РНС [Chu+15], при котором стохастичность добавляется
в динамику ht независимо от шума наблюдений.)

15.2.1.2. Приложения
РНС можно использовать для безусловного генерирования последовательно‑
стей (положив x = ∅) или условного, зависящего от x. Безусловное генериро‑
вание последовательностей часто называют языковым моделированием;
это означает обучение совместному распределению вероятностей последо‑
вательностей дискретных токенов, т. е. моделей вида p(y1, …, yT) (см. также
раздел 3.6.1.2, где обсуждалось применение марковских цепей для языкового
моделирования).
На рис. 15.2 показана последовательность, сгенерированная простой РНС,
обученной на романе «Машина времени» Герберта Уэллса. (Это небольшой
текст, содержащий всего 32 000 слов и 170 000 знаков.) Мы видим, что сгене‑
рированная последовательность выглядит вполне правдоподобно, хотя и не
слишком осмыслена. Воспользовавшись более сложными моделями (напри‑
мер, обсуждаемыми в разделах 15.2.7.1 и 15.2.7.2) и взяв больше обучающих
данных, мы можем создать РНС, демонстрирующую качество самого совре‑
менного уровня на задаче языкового моделирования [CNB17]. (В области
языкового моделирования качество обычно измеряют перплексией, равной
экспоненте отрицательного логарифмического правдоподобия, усредненно‑
го по токенам; дополнительную информацию см. в разделе 6.1.5.)

Tlgm: @it_boooks

Рекуррентные нейронные сети (РНС)  605
the githa some thong the time traveller held in his hand was a glitteringmetallic
framework scarcely larger than a small clock and verydelicately made there was ivory in
it and the latter than s bettyre tat howhong s ie time thave ler simk you a dimensions le
ghat dionthat shall travel indifferently in any direction of space and timeas the driver
determinesfilby contented himself with laughterbut i have experimental verification
said the time travellerit would be remarkably convenient for the histo
Рис. 15.2  Пример выхода длины 500, сгенерированного РНС уровня символов, на вход которой подано начальное слово «the». Мы используем жадное декодирование, когда на каждом шаге вычисляется наиболее вероятный символ,
который затем подается обратно на вход модели. Модель обучена на романе
Герберта Уэллса «Машина времени». Сгенерировано программой по адресу figures.probml.ai/book1/15.2

Мы также можем сделать так, что сгенерированная последовательность
будет зависеть от входного вектора x того или иного вида. Например, рас‑
смотрим задачу описания изображений: в этом случае x – некоторое по‑
гружение изображения, вычисленное СНС, как показано на рис. 15.3 (см.
обзор методов описания изображений в работах [Hos+19; LXW19], а пособие
с демонстрационным кодом – по адресу https://bit.ly/2Wvs1GK).

Рис. 15.3  Модель, состоящая из СНС и РНС, для описания изображений.
Розовые блоки «LSTM» соответствуют специальному виду РНС, который мы
обсудим в разделе 15.2.7.2. Розовые блоки «Wemb» соответствуют матрицам
погружения для (выборочных) унитарных токенов, так что вход модели состоит
из вещественных векторов. Взято из статьи https://bit.ly/2FKnqHm. Печатается
с разрешения Юнджи Чоя

Можно использовать РНС и для генерирования последовательностей ве‑
щественных векторов признаков, например росчерков пера для рукописных
символов [Gra13] и нарисованных от руки фигур [HE18]. Это полезно также
для генерирования временных рядов, предсказывающих последовательно‑
сти вещественных чисел.

Tlgm: @it_boooks

606  Нейронные сети для последовательностей

15.2.2. Seq2Vec (классификация
последовательностей)
В этом разделе мы предполагаем, что нужно предсказать один выходной
вектор y фиксированной длины по входной последовательности переменной
длины. То есть мы хотим обучить функцию вида fθ : ℝTD ® ℝC. Назовем это
моделью seq2vec. Для простоты обозначений ограничимся случаем, когда на
выходе получается метка класса y Î {1, …, C}.
Самый простой подход – использовать конечное состояние РНС как вход
классификатора:
p(y|x1:T) = Cat(y|𝒮(WhT)).

(15.6)

Смотрите иллюстрацию на рис. 15.4a.

(а)

(b)

Рис. 15.4  (a) РНС для классификации последовательностей.
(b) Двунаправленная РНС для классификации последовательностей

Зачастую можно добиться лучших результатов, если допустить зависи‑
мость скрытых состояний РНС от прошлого и будущего контекста. Для это‑
го мы создаем две РНС, одна из которых рекурсивно вычисляет скрытые
состояния в прямом направлении, а вторая – в обратном. Это называется
двунаправленной РНС [SP97]. Формально модель определена следующим
образом:
®
® ®
ht® = φ(W®
xh xt + W hh h t-1 + b h ),

(15.7)

¬
® ®
®

t = φ(W xh xt + W hh h t+1 + b h ).

(15.8)

Tlgm: @it_boooks

Рекуррентные нейронные сети (РНС)  607

Затем мы можем определить ht = [ht®, ht¬] как представление состояния
в момент t, приняв во внимание информацию о прошлом и будущем. Нако‑
нец, мы применяем пулинг усреднением к скрытым состояниям и получаем
окончательный классификатор:


p(y|x1:T) = Cat(y|W𝒮(h )),

(15.9)
(15.10)

Смотрите иллюстрацию на рис. 15.4b и код по адресу code.probml.ai/book1/
rnn_sentiment_torch. (Это похоже на одномерную СНС для классификации
текста в разделе 15.3.1.)

15.2.3. Seq2Seq (трансляция
последовательностей)
В этом разделе мы обсудим обучение функций вида fθ : ℝTD ® ℝT¢C. Будем
рассматривать два случая: T¢ = T, т. е. длины входной и выходной последо‑
вательности одинаковы (а значит, они выровнены), и T ¢ ¹ T, т. е. их длины
различаются. Это называется задачей seq2seq.

15.2.3.1. Выровненный случай
Пусть входная и выходная последовательности выровнены. Эту задачу можно
также интерпретировать как плотную разметку последовательности, так
как мы предсказываем по одной метке на каждую позицию. Легко моди‑
фицировать РНС для решения этой задачи, как показано на рис. 15.5a. Это
соответствует распределению
(15.11)
где h1 = f(h0, x1) = f0(x1) – начальное состояние.
Заметим, что yt зависит от ht, которое зависит только от прошлых входов,
x1:t. Можно улучшить результаты, если позволить декодеру заглядывать в «бу‑
дущее» x, а не только в прошлое. Для этого нужно использовать двунаправленную РНС, как показано на рис. 15.5b.
Можно создать более выразительные модели, расположив несколько скры‑
тых цепочек одну под другой, как показано на рис. 15.6. Скрытые блоки
слоя 1 в момент t вычисляются по формуле:
hlt = φl(Wlxhhtl-1 + Wlhhhlt-1 + blh).

(15.12)

Выход имеет вид:
ot = WhohtL + bo.

(15.13)

Tlgm: @it_boooks

608  Нейронные сети для последовательностей

(a)

(b)

Рис. 15.5  (a) РНС для преобразования одной последовательности в другую,
выровненную. (b) Двунаправленная РНС для той же задачи

Рис. 15.6  Глубокая РНС. На основе рис. 9.3.1 из работы [Zha+20]

15.2.3.2. Невыровненный случай
В этом разделе мы обсудим, как обучить отображение одной последователь‑
ности длины T в другую последовательность длины T ¢. Сначала закодируем
первую последовательность и получим вектор контекста c = fe(x1:T), исполь‑
зуя последнее состояние РНС (или пулинг усреднением для двунаправлен‑
ной РНС). Затем сгенерируем выходную последовательность, применяя РНСдекодер y1:T ¢ = fd(c). Это называется архитектурой кодировщик-декодер
[SVL14; Cho+14b] (см. иллюстрацию на рис. 15.7).

Tlgm: @it_boooks

Рекуррентные нейронные сети (РНС)  609

Рис. 15.7  РНС с архитектурой кодировщик-декодер
для отображения последовательности x1:T в последовательность y1:T¢

Важное приложение этой сети – машинный перевод. Когда эта задача
решается с помощью РНС, говорят о нейронном машинном переводе (в от‑
личие от более старого подхода, называемого статистическим машинным
переводом, в котором нейронные сети не используются). Основная идея
показана на рис. 15.8a, а в коде по адресу code.probml.ai/book1/nmt_torch име‑
ются дополнительные детали. Обзор литературы по нейронному машинному
переводу см. в работах [Luo16; Neu17].

(a)

(b)

Рис. 15.8  (a) Модель seq2seq для перевода с английского на французский.
Символ - обозначает конец последовательности. На основе рис. 2.4 из работы
[Luo16]. Печатается с разрешения Минь-Тан Луонга. (b) Жадное декодирование. Самое вероятное французское слово на каждом шаге выделено зеленым
цветом, именно оно подается на вход следующего шага декодера. На основе
рис. 2.5 из работы [Luo16]. Печатается с разрешения Минь-Тан Луонга

15.2.4. Принуждение со стороны учителя
При обучении языковой модели вероятность последовательности слов w1,w2,
…, wT равна
(15.14)

Tlgm: @it_boooks

610  Нейронные сети для последовательностей
Поэтому в РНС мы полагаем вход xt = wt-1 и выход yt = wt. Заметим, что
в качестве условия выступают истинные метки из прошлого, w1:t-1, а не мет‑
ки, сгенерированные моделью. Это называется принуждением со стороны
учителя, поскольку предложенные учителем значения «насильно» подаются
на вход модели на каждом шаге (т. е. xt полагается равным wt-1).
К сожалению, принуждение со стороны учителя иногда может приводить
к моделям, которые плохо ведут себя на этапе тестирования. Причина в том,
что модель обучалась только на заведомо «правильных» примерах, поэтому
может не знать, что делать, встретив во время тестирования сгенерирован‑
ную на предыдущем шаге входную последовательность w1:t-1, которая от‑
личается от той, что встречалась во время обучения.
Общепринятое решение этой проблемы известно под названием плановая выборка (scheduled sampling) [Ben+15a]. Начинается все с принуждения
со стороны учителя, но на случайных временных шагах на вход подаются
примеры из модели, причем доля таких шагов постепенно увеличивается.
Альтернативно можно использовать другие виды моделей, в которых
оценка максимального правдоподобия работает лучше, например одномер‑
ные СНС (раздел 15.3) и трансформеры (раздел 15.5).

15.2.5. Обратное распространение во времени
Оценку максимального правдоподобия параметров для РНС можно вычис‑
лить, решив задачу θ* = argmaxθ p(y1:T|x1:T, θ), где для простоты обозначений
мы предположили, что обучающая последовательность всего одна. Для вы‑
числения MLE необходимо вычислить градиенты потери по параметрам.
Для этого мы можем развернуть граф вычислений, как показано на рис. 15.9,
а затем применить алгоритм обратного распространения. Это называется
обратным распространением во времени (BPTT) [Wer90]:
ht = Whx xt + Whh ht-1;

(15.15)

ot = Who ht,

(15.16)

где ot – выходные логиты, а члены смещения опущены, чтобы не усложнять
обозначения. Мы предполагаем, что yy – истинные целевые метки на каждом
временном шаге, поэтому определим потерю следующим образом:
(15.17)
Необходимо вычислить производные ¶L/¶Whx, ¶L/¶Whh и ¶L/¶Who. По‑
следнюю вычислить просто, потому что она локальна на каждом временном
шаге. Но первые две зависят от скрытого состояния, поэтому придется воз‑
вращаться назад во времени.
Упростим обозначения, определив
ht = f(xt, ht-1, wh);

(15.18)

Tlgm: @it_boooks

Рекуррентные нейронные сети (РНС)  611

ot = g(ht, wo),

(15.19)

где wh – развернутые в вектор и объединенные вместе Whh и Whx. Сосредо‑
точимся на вычислении ¶L/¶wh. По правилу дифференцирования сложной
функции имеем
(15.20)
Последний член можно представить в виде суммы:
(15.21)

Рис. 15.9  РНС, развернутая (по вертикали) на три временных шага; целевая выходная последовательность и узел потери выделены явно. На основе
рис. 8.7.2 из работы [Zha+20]. Печатается с разрешения Астона Чжана

Проделав такую замену рекурсивно, получаем следующий результат (см.
вывод в [Zha+20, раздел 8.7]):
(15.22)
К сожалению, время вычислений составляет O(T) на каждом временном
шаге, так что общее время имеет порядок O(T 2). Поэтому принято оставлять
в сумме не более K недавних членов. Можно адаптивно выбирать подхо‑
дящий параметр отсечения K [AFF19]; однако обычно он устанавливается
равным длине подпоследовательности в текущем мини-пакете.
При использовании усеченного BPTT мы можем обучить модель на па‑
кетах коротких последовательностей, которые обычно создаются путем
извлечения непересекающихся подпоследовательностей (окон) исходной
последовательности. Если предыдущая последовательность заканчивается

Tlgm: @it_boooks

612  Нейронные сети для последовательностей
в момент t - 1, а текущая начинается в момент t, то мы можем «переносить»
скрытое состояние РНС из одного пакетного обновления в другое в процессе
обучения. Однако если последовательности не упорядочены, то необходимо
сбрасывать скрытое состояние. Демонстрационный код, иллюстрирующий
эти детали, имеется по адресу code.probml.ai/book1/rnn_torch.

15.2.6. Исчезающие и взрывные градиенты
К сожалению, активации в РНС могут стремиться к нулю или взрывообраз‑
но расти при продвижении вперед во времени, так как на каждом шаге мы
умножаем на матрицу весов Whh. Аналогично могут вести себя градиенты,
поскольку на каждом шаге мы перемножаем якобианы (детали см. в раз‑
деле 13.4.2). Простой эвристический прием – использовать отсечение гра‑
диентов (формула (13.70)). В более сложных методах производится попытка
контролировать спектральный радиус λ прямого отображения, Whh, а также
обратного отображения, описываемого якобианом Jhh.
Простейший способ контролировать спектральный радиус – случайным
образом инициализировать матрицу Whh, так чтобы λ » 1, а затем зафикси‑
ровать ее (т. е. не обучать Whh). В этом случае обучать нужно только выходную
матрицу Who, что сводится к задаче выпуклой оптимизации. Это называется
эхо-сетью (echo state network – ESN) [JH04]. В близком подходе, известном
под названием машина неустойчивых состояний (liquid state machine –
LSM) [MNM02], используются бинарные (импульсные) нейроны вместо ве‑
щественных нейронов. Общий термин для ESN и LSM – резервуарные вычисления [LJ09]. Еще один подход к этой проблеме – использовать условную
оптимизацию, гарантирующую, что матрица Whh всегда будет оставаться
ортогональной [Vor+17].
Альтернатива явному контролю над спектральным радиусом – моди‑
фикация самой архитектуры РНС, а именно добавление аддитивных, а не
мультипликативных обновлений скрытых состояний (см. раздел 15.2.7). Это
значительно повышает устойчивость обучения.

15.2.7. Вентильная и долгосрочная память
РНС с достаточным числом скрытых блоков в принципе могут запомнить
входные данные из далекого прошлого. Но на практике так не поступают
из-за проблемы исчезающего градиента (раздел 13.4.2). В этом разделе мы
расскажем, как решить эту проблему, обновляя скрытое состояние аддитив‑
ным способом, как в остаточной сети (раздел 14.3.4).

15.2.7.1. Управляемые рекуррентные блоки (GRU)
В этом разделе мы обсудим модели, в которых используются управляемые
рекуррентные блоки (GRU), как предлагается в работе [Cho+14b]. Основная
идея – обучиться, когда обновлять скрытое состояние, используя управляе‑

Tlgm: @it_boooks

Рекуррентные нейронные сети (РНС)  613

мый блок. Это можно использовать для избирательного «запоминания» важ‑
ных частей информации при первой встрече. Модель также можно обучить
тому, когда сбрасывать скрытое состояние и, следовательно, забывать вещи,
когда они больше не нужны.
Чтобы объяснить модель более детально, мы разобьем ее на два шага, сле‑
дуя изложению в работе [Zha+20, раздел 8.8]. Предположим, что Xt – матрица
N´D, где N – размер пакета, а D – размер словаря. Аналогично Ht – матрица
N´H, где H – число скрытых блоков в момент t.
Вентиль сброса Rt Î ℝN´H и вентиль обновления Zt Î ℝN´H вычисляются
по формулам:
Rt = σ(XtWxr + Ht-1Whr + br);

(15.23)

Zt = σ(XtWxz + Ht-1Whz + bz),

(15.24)

где W – матрица весов. Заметим, что все элементы Rt и Zt принадлежат от‑
резку [0, 1], поскольку σ – сигмоидная функция.
Зная это, определим следующий кандидат на роль вектора состояния:
 = tanh(X W + (R ⊙ H )W + b ).
H
t
t
xh
t
t-1
hh
h

(15.25)

 .
Ht = Zt ⊙ Ht-1 + (1 - Zt) ⊙ H
t

(15.26)

Эта формула объединяет еще не сброшенную память о прошлом (член
Rt ⊙ Ht-1) с новыми входами Xt. Результирующую линейную комбинацию
мы передаем функции tanh, чтобы скрытые блоки оставались в интервале
(-1, 1). Если элементы вентиля сброса Rt близки к 1, то мы возвращаемся
к стандартному правилу обновления РНС. Если же они близки к 0, то модель
больше напоминает МСП, примененный к Xt. Таким образом, вентиль сброса
способен уловить новую краткосрочную информацию.
Вычислив кандидата на роль нового состояния, модель вычисляет факти‑
 ,
ческое новое состояние, используя те измерения состояния-кандидата H
t
которые были отобраны вентилем обновления, 1 - Zt, а для всех остальных
оставляя старые значения из Ht-1:

Когда Ztd = 1, мы передаем Ht-1,d без изменения и игнорируем Xt. Таким
образом, вентиль обновления может уловить долгосрочные зависимости.
Смотрите общую архитектуру на рис. 15.10, а демонстрационный код по
адресу code.probml.ai/book1/gru_torch.

15.2.7.2. Долгая краткосрочная память (LSTM)
В этом разделе мы обсудим модель долгой краткосрочной памяти (LSTM)
из работы [HS97b] – более сложный вариант GRU (который, к тому же, по‑
явился почти на 20 лет раньше). Более обстоятельное введение см. в статье
по адресу https://colah.github.io/posts/2015-08-Understanding-LSTMs.
Основная идея состоит в том, чтобы дополнить скрытое состояние ht ячейкой памяти ct. Для управления этой ячейкой нам нужно три вентиля: выходной вентиль Ot определяет, что читать из ячейки; входной вентиль It

Tlgm: @it_boooks

614  Нейронные сети для последовательностей
определяет, что помещать в ячейку; вентиль забывания определяет, когда
сбрасывать ячейку. Эти три вентиля вычисляются следующим образом:
Ot = σ(XtWxo + Ht-1Who + bo);

(15.27)

It = σ(XtWxi + Ht-1Whi + bi);

(15.28)

Ft = σ(XtWxf + Ht-1Whf + bf ).

(15.29)

Затем мы вычисляем потенциальное состояние ячейки:
C t = tanh(XtWxc + Ht-1Whc + bc).

(15.30)

Скрытое
состояние H t–1

X

Вентиль
сброса
Rt
σ

Вентиль
обновления Z t

X

+

1–

Ht

X
Потенциальное
скрытое
состояние H̃ t

σ

tanh

Вход Х t
σ

Слой FC с функцией
активации

Поэлементный
оператор

Копирование

Конкатенация

Рис. 15.10  Иллюстрация GRU. На основе рис. 9.1.3 из работы [Zha+20]

Фактическое новое состояние ячейки совпадает либо с потенциальным
(если входной вентиль открыт), либо со старым (если вентиль забывания
закрыт):
Ct = Ft ⊙ Ct-1 + It ⊙ C t.

(15.31)

Если Ft = 1 и It = 0, то это напоминает долгосрочную память1.
Наконец, мы можем вычислить скрытое состояние как результате преоб‑
разования ячейки при условии, что выходной вентиль открыт:
1

В работе [JZS15] отмечена одна важная деталь: необходимо инициализировать
смещение, чтобы вентиль забывания bf был велик, т. е. сигмоида была близка к 1.
Это гарантирует, что информация сможет легко пройти по цепочке C со временем.
Если этого не сделать, то зачастую качество модели резко ухудшается.

Tlgm: @it_boooks

Рекуррентные нейронные сети (РНС)  615

Ht = Ot ⊙ tanh(Ct).

(15.32)

Заметим, что Ht является одновременно выходом блока и скрытым состоя‑
нием на следующем временном шаге. Это позволяет модели запоминать, что
она только что вывела (краткосрочная память), тогда как ячейка Ct работает
как долгосрочная память. На рис. 15.11 показано, как выглядит модель в целом,
а по адресу code.probml.ai/book1/lstm_torch имеется демонстрационный код.

Память С t–1

X

+

Ct
tanh

Входной
вентиль
It

Вентиль
забывания
Ft
σ

Скрытое
состояние H t–1

X
Потенциальная
память
C̃ t
σ
tanh

Выходной
вентиль
Ot

X

σ

Ht

Вход Х t
σ

Слой FC с функцией
активации

Поэлементный
оператор

Копирование

Конкатенация

Рис. 15.11  Иллюстрация LSTM. На основе рис. 9.2.4 из работы [Zha+20]

Иногда добавляются связи-глазки, позволяющие передать состояние
ячейки вентилям в качестве дополнительного входа. Было предложено
и много других вариантов. В работе [JZS15] даже применен генетический ал‑
горитм для тестирования свыше 10 000 различных архитектур. Некоторые из
них работали лучше, чем LSTM или GRU, но в общем LSTM неизменно пока‑
зывали хорошее качество на большинстве задач. К похожим выводам пришли
авторы работы [Gre+17]. В сравнительно недавней работе [ZL17] контроллер
на основе РНС использовался для генерирования строк, описывающих архи‑
тектуры РНС, а затем этот контроллер обучался методами обучения с подкре‑
плением. Результатом стала новая структура ячейки, превосходящая LSTM.
Однако она довольно сложна, и сообщество ее не приняло.

15.2.8. Лучевой поиск
Самый простой способ генерирования чего-то с помощью РНС – исполь‑
зовать жадное декодирование, когда на каждом шаге вычисляется ŷ t =

Tlgm: @it_boooks

616  Нейронные сети для последовательностей
argmaxy p(yt = y|ŷ 1:t, x). Этот процесс повторяется, пока не будет сгенерирован
токен конца предложения. На рис. 15.8b показано применение этого метода
к нейронному машинному переводу.
К сожалению, жадное декодирование не порождает MAP-последовательности, которая определяется как y*1:T = argmaxy1:T p(y1:T|x). Причина в том,
что локально оптимальный символ на шаге t может не лежать на глобально
оптимальном пути.
В качестве примера рассмотрим рис. 15.12a. Мы жадно выбираем символ
с максимальной апостериорной вероятностью MAP на шаге 1, им является A.
Предположим, что при таком условии p(y2|y1 = A) = [0.1, 0.4, 0.3, 0.3], как
и показано на рисунке. Символом с максимальной MAP тогда будет B. Пред‑
положим, что при таком условии p(y3|y1 = A, y2 = B) = [0.2, 0.2, 0.4, 0.2], как
и показано. Тогда символом с максимальной MAP будет C. Предположим, что
при таком условии p(y4|y1 = A, y2 = B, y3 = C) = [0.0, 0.2, 0.2, 0.6], как и пока‑
зано. Тогда символом с максимальной MAP будет eos (конец предложения),
поэтому генерирование прекращается. Общая вероятность сгенерированной
последовательности равна 0.5´0.4´0.4´0.6 = 0.048.
Временной
шаг

Временной
шаг

(а)

(b)

Рис. 15.12  Условные вероятности генерирования токенов на каждом шаге
для двух разных последовательностей. На основе рис. 9.8.1–9.8.2 из работы
[Zha+20]. Печатается с разрешения Астона Чжана

Теперь рассмотрим рис. 15.12b. Предположим, что на шаге 2 выбран токен
со второй по величине вероятностью, а именно C. Предположим, что при та‑
ком условии p(y3|y1 = A, y2 = C) = [0.1, 0.6, 0.2, 0.1], как и показано. Тогда сим‑
волом с максимальной MAP будет B. Предположим, что при таком условии
p(y4|y1 = A, y2 = C, y3 = B) = [0.0, 0.2, 0.2, 0.6], как и показано. Тогда символом
с максимальной MAP будет eos (конец предложения), поэтому генерирова‑
ние прекращается. Общая вероятность сгенерированной последовательно‑
сти равна 0.5´0.3´0.6´0.6 = 0.054. Стало быть, умерив жадность, мы нашли
последовательность с большим общим правдоподобием.
Для скрытых марковских моделей можно использовать алгоритм декодирования Витерби (пример динамического программирования) для
вычисления глобально оптимальной последовательности за время O(TV 2),
где V – число слов в словаре. (Детали см. в [Mur22].) Но для РНС вычисление
глобального оптимума занимает время O(V T), поскольку скрытое состояние
не является достаточной статистикой для данных.

Tlgm: @it_boooks

Одномерные СНС  617

Лучевой поиск – гораздо более быстрый эвристический метод. В этом
случае мы вычисляем первые K потенциальных выходов на каждом шаге.
Затем каждый расходится по всем V возможным путям, в результате чего
генерируется VK кандидатов, из которых мы снова отбираем первые K. Этот
процесс показан на рис. 15.13.
Временной шаг 1
Кандидаты

Временной шаг 2
Кандидаты

Временной шаг 3
Кандидаты

Рис. 15.13  Лучевой поиск с лучом размера K = 2. Словарь 𝒴 = [A, B, C, D, E]
имеет размер V =5. Предполагается, что лучшие два символа на шаге 1 – A и C.
На шаге 2 мы вычисляем p(y1 = A, y2 = y) и p(y1 = C, y2 = y) для каждого y Î 𝒴.
Это занимает время O(KV). Затем выбираем два лучших частичных пути: (y1 = A,
y2 = B) и (y1 = C, y2 = E) и продолжаем очевидным образом. На основе рис. 9.8.3
из работы [Zha+20]

Можно также модифицировать алгоритм, так что он будет выбирать луч‑
шие K последовательностей без возвращения (т. е. выбрать лучшую, пере‑
нормировать, затем выбрать новую лучшую и т. д.), применив метод стохастического лучевого поиска. При этом частичные вероятности модели
на каждом шаге подвергаются возмущению шумом Гумбеля. Детали см.
в работе [KHW19], а последовательную альтернативу – в работе [SBS20]. Эти
выборочные методы могут повысить разнообразие выходов (см. также детер‑
минированный метод лучевого поиска с повышенным разнообразием
(diverse beam search), предложенный в работе [Vij+18]).

15.3. одномерные снс
Сверточные нейронные сети (глава 14) вычисляют функцию в некоторой
локальной окрестности каждого входа, используя связанные веса, и возвра‑
щают выход. Обычно входы двумерные, но СНС можно применять и в одно‑

Tlgm: @it_boooks

618  Нейронные сети для последовательностей
мерном случае, как описано ниже. Это интересная альтернатива РНС, по‑
тому что их гораздо проще обучать, так как не нужно хранить долгосрочное
скрытое состояние.

15.3.1. Применение одномерных СНС
для классификации последовательностей
В этом разделе мы обсудим использование одномерных СНС для обучения
отображению последовательностей переменной длины в выход фиксирован‑
ной длины, т. е. функции вида fθ : ℝDT ® ℝC, где T – длина входа, D – количе‑
ство признаков в одном входном примере, а C – размер выходного вектора
(например, содержащего логиты классов).
Базовая операция одномерной свертки, применяемой к одномерной по‑
следовательности, показана на рис. 14.4. Обычно входная последователь‑
ность имеет D > 1 входных каналов (измерений признаков). В таком случае
мы можем сворачивать каждый канал отдельно и складывать результаты,
применяя для каналов разные одномерные фильтры (ядра). В результате

wd, где k – размер одномерного рецептивного поля,
получаем zi = åd xi-k:i+k,d
а wd – фильтр для входного канала d. Тем самым порождается вектор z Î ℝT,
кодирующий вход (краевые эффекты игнорируем). Мы можем создать век‑
торное представление для каждой позиции, используя разные векторы ве‑

wd,c. Таким
сов для каждого выходного канала c, и получить zic = åd xi-k:i+k,d
образом, мы построили отображение TD в TC. Чтобы свести его к вектору
фиксированного размера, z Î ℝC, можно применить max-пулинг по времени
и получить zc = maxi zic. Затем этот вектор можно передать слою softmax.
В работе [Kim14] эта модель применена к классификации последователь‑
ностей. Идея заключается в том, чтобы погрузить каждое слово, применив
слой погружения, а затем вычислить различные признаки с использовани‑
ем одномерных ядер разной ширины, стремясь уловить паттерны в разном
масштабе длин. Затем применяется max-пулинг по времени, результаты
конкатенируются и передаются полносвязному слою (см. иллюстрацию на
рис. 15.14 и демонстрационный код по адресу code.probml.ai/book1/cnn1d_sentiment_torch).

15.3.2. Применение каузальных одномерных СНС
для генерирования последовательностей
Чтобы использовать одномерную СНС в порождающих сетях, следует преобра‑
зовать ее в каузальную СНС, в которой каждая выходная переменная зависит
только от ранее сгенерированных переменных (это еще называется сверточной марковской моделью). Точнее, определим модель следующим образом:
(15.33)

Tlgm: @it_boooks

Одномерные СНС  619

где w – сверточный фильтр размера k, и для простоты обозначений предпола‑
гается единственная нелинейность φ и категориальный выход. Это похоже на
обычную одномерную свертку, в которой будущие выходы «замаскированы»,
так что yt зависит только от прошлых значений, а не от прошлых и будущих
вместе. Это называется каузальной сверткой. Конечно, можно использо‑
вать более глубокие модели и обуславливать входными признаками x.
количество полярностей эмоциональной окраски: 2
(с полносвязным слоем)
количество выходов: 4
(max-пулинг по времени
для каждого канала)
количество выходов: 4
Ширина: 11 – 2 + 1 = 10
(ширина ядра: 2)

количество выходов: 5
(max-пулинг по времени
для каждого канала)
количество выходов: 5
Ширина: 11 – 4 + 1 = 8
(ширина ядра: 4)

Ширина: 11 слов
количество каналов: 6
(каждое слово представлено
6-мерным вектором)

Рис. 15.14  Модель TextCNN
для бинарной классификации эмоциональной окраски.
На основе рис. 15.3.5 из работы [Zha+20]

Чтобы уловить дальние зависимости, можно воспользоваться дырявой
сверткой (раздел 14.4.1), как показано на рис. 15.15. Эта модель успешно
использовалась для создания современной системы речевого синтеза (text
to speech – TTS) под названием wavenet [oor+16]. Именно, авторы после‑
довательно соединили 10 каузальных одномерных сверточных слоев с ко‑
эффициентами дырявости 1, 2, 4, …, 256, 512 и получили сверточный блок
с эффективным рецептивным полем размера 1024. (Перед каждым слоем они
дополняли входные последовательности слева нулями в количестве, равном
коэффициенту дырявости, чтобы все слои имели одинаковую длину.) Затем
они повторили этот блок трижды, чтобы вычислить более глубокие признаки.
В wavenet обусловливающей информацией x является множество линг‑
вистических признаков, построенное по входной последовательности слов;
затем модель генерирует первичный аудиоряд. Можно также реализовать

Tlgm: @it_boooks

620  Нейронные сети для последовательностей
полное сквозное решение, которое начинается со слов, а не лингвистических
признаков (см. [Wan+17]).
Выход
Дырявость = 8
Скрытый слой
Дырявость = 4
Скрытый слой
Дырявость = 2
Скрытый слой
Дырявость = 1
Вход

Рис. 15.15  Иллюстрация модели wavenet, в которой используются дырявые
свертки с коэффициентами дырявости 1, 2, 4 и 8. На основе рис. 3 из работы
[oor+16]. Печатается с разрешения Аарона ван ден Оорда

Хотя wavenet порождает высококачественную речь, она работает слишком
медленно для использования в производственных системах. Однако из нее
можно «выжать» параллельную порождающую модель [Oor+18]. Такого рода
параллельные порождающие модели мы будем обсуждать во втором томе
этой книги, [Mur22].

15.4. модель Внимания
Во всех рассмотренных до сих пор нейронных сетях скрытые активации пред‑
ставляли собой линейную комбинацию входных активаций, сопровождаемую
нелинейностью: z = φ(Wv), где v Î ℝv – вектор скрытых признаков, а W Î
ℝv¢´v – фиксированное множество весов, обученное на обучающем наборе.
Однако можно вообразить и более гибкую модель, в которой имеется мно‑
жество m векторов признаков или значений V Î ℝm´v, а модель динамически
решает (зависящим от входа способом), какой вектор использовать, исходя
из того, насколько входной вектор запроса q Î ℝq похож на элементы множе‑
ства m ключей K Î ℝm´k. Если q больше всего похож на ключ i, то используется
значение vi. Это базовая идея, лежащая в основе механизмов внимания.
Первоначально она была предложена для моделей последовательностей, так
что именно в этом контексте мы ее и будем объяснять. Однако ее примени‑
мость этим не ограничивается. Наше изложение в последующих разделах
следует книге [Zha+20, глава 10].

15.4.1. Механизм внимания как мягкий поиск
в словаре
Мы можем рассматривать механизм внимания как поиск в словаре, когда
запрос q сравнивается с каждым ключом ki, а затем выбирается соответству‑

Tlgm: @it_boooks

Модель внимания  621

ющее значение vi. Чтобы сделать эту операцию поиска дифференцируемой,
мы будем не выбирать единственное значение vi, а вычислять выпуклую
комбинацию значений следующим образом:
(15.34)
где αi(q, k1:m) – i-й вес внимания; эти веса удовлетворяют условиям 0 £
αi(q, k1:m) £ 1 для всех i и åi αi(q, k1:m) = 1.
Веса внимания можно вычислять с помощью функции оценки внимания
a(q, ki) Î ℝ, которая возвращает степень сходства запроса q с ключом ki. Ниже
мы обсудим несколько таких функций.
Зная оценки, можно вычислить веса внимания, воспользовавшись функ‑
цией softmax:
(15.35)
Смотрите иллюстрацию на рис. 15.16.

Рис. 15.16  Модель внимания вычисляет взвешенное среднее множества
значений, а веса выводятся путем сравнения вектора запроса с множеством
ключей. На основе рис. 10.3.1 из работы [Zha+20]. Печатается с разрешения
Астона Чжана

В некоторых случаях мы хотим ограничить внимание подмножеством сло‑
варя, соответствующим допустимым элементам. Например, мы могли бы
дополнять последовательности до фиксированной длины (для эффективного
обучения на мини-пакетах), и тогда следовало бы «замаскировать» допол‑
ненные позиции. Это называется замаскированным вниманием. Такую
функциональность можно эффективно реализовать, задав для замаскиро‑
ванных элементов оценку внимания, равную большому отрицательному чис‑

Tlgm: @it_boooks

622  Нейронные сети для последовательностей
лу, например -106, тогда соответствующие softmax-веса будут равны 0. (Это
аналог каузальной свертки, рассмотренной в разделе 15.3.2.)

15.4.2. Ядерная регрессия как непараметрическое
внимание
В разделе 16.3.5 мы обсудим ядерную регрессию, т. е. непараметрическую
модель вида
(15.36)
где αi(x, x 1:n) ³ 0 измеряет нормированное сходство тестового входа x
с обучающим примером xi. Для вычисления этой меры сходства оценка вни‑
мания обычно определяется в терминах ядра плотности, например гауссова:
(15.37)
где σ называется полосой пропускания. Затем мы определяем a(x, xi) =
𝒦σ(x - xi).
Поскольку оценки нормированы, мы можем опустить член 1/
. Кроме
того, для согласованности с обозначениями из [Zha+20, глава 10] мы пере‑
пишем экспоненту в виде:
(15.38)
Подставляя это в формулу (15.36), получаем:
(15.39)

(15.40)

(15.41)
Это можно интерпретировать как форму непараметрического внимания,
где запросами являются тестовые точки x, ключами – обучающие примеры
xi, а значениями – обучающие метки yi.
Если положить w = 1, то получится матрица внимания с элементами Aji =
αi(xj, x1:n) для тестового входа j, показанная на рис. 15.17a. Результирующая
предсказанная кривая показана на рис. 15.17b.

Tlgm: @it_boooks

Модель внимания  623

Ширина диагональной полосы на рис. 15.17a, а значит, разреженность
механизма внимания зависит от параметра w. Если увеличить w, что соот‑
ветствует уменьшению полосы пропускания ядра, то полоса станет уже, но
модель будет склонна к переобучению.

Отсортированные
обучающие примеры
(a)

(b)

Рис. 15.17  Ядерная регрессия в одномерном случае. (a) Ядерная матрица
весов. (b) Результирующие предсказания на плотной сетке тестовых точек. Построено программой по адресу figures.probml.ai/book1/15.17

15.4.3. Параметрическое внимание
В разделе 15.4.2 мы определили оценку внимания в терминах гауссова ядра,
участвующего в сравнении скалярного запроса (тестовой точки) с каждым из
скалярных значений в обучающем наборе. Такой подход плохо масштабиру‑
ется на большие обучающие наборы, т. е. вход высокой размерности. Поэтому
обратимся к параметрическим моделям, когда имеется фиксированное мно‑
жество ключей и значений, а запросы и ключи сравниваются в обученном
пространстве погружения.
Это можно сделать несколькими способами. В общем случае запрос q Î ℝq
и ключ k Î ℝk могут быть разного размера. Сравнить их можно, отобразив
в общее пространство погружения размера h, для чего нужно вычислить Wqq
и Wkk, где Wq Î ℝh´q и Wk Î ℝh´k. Затем можно передать их МСП, получив
такую аддитивную функцию оценки внимания:
a(q, k) = wv⟙tanh(Wqq + Wkk) Î ℝ.

(15.42)

a(q, k) = q⟙k/ d Î ℝ.

(15.43)

Вычислительно более эффективно предполагать, что запросы и ключи
имеют одинаковую длину d, так что q⟙k можно вычислить непосредственно.
Если считать, что это независимые случайные величины с нулевым средним
и единичной дисперсией, то среднее их скалярного произведения равно 0,
а дисперсия равна d (это следует из формул (2.34) и (2.39)). Чтобы дисперсия
скалярного произведения оставалась равной 1 независимо от размера вхо‑
дов, принято делить на d. Таким образом, мы получаем внимание в форме
масштабированного скалярного произведения:

Tlgm: @it_boooks

624  Нейронные сети для последовательностей
На практике мы обычно имеем дело с мини-пакетами, содержащими n век‑
торов. Обозначим соответствующие матрицы запросов, ключей и значений
Q Î ℝn´d, K Î ℝm´d, V Î ℝm´v. Тогда можно вычислить взвешенные вниманием
выходы следующим образом:
(15.44)
где функция softmax 𝒮 применяется построчно (см. демонстрационный код
по адресу code.probml.ai/book1/attention_torch).

15.4.4. Модель Seq2Seq с вниманием
Вспомним модель seq2seq из раздела 15.2.3. В ней используется РНС-декодер
вида htd = fd(hdt-1, yt-1, c), где c – контекстный вектор фиксированной длины,
представляющий закодированный вход x1:T. Обычно полагают c равным heT,
конечному состоянию РНС-кодировщика (или используют двунаправленную
РНС с пулингом усреднением). Однако в таких задачах, как машинный пере‑
вод, это может стать причиной плохого качества, потому что выходной слой
не имеет доступа к самим входным словам. Этой неприятности можно из‑
бежать, разрешив выходным словам напрямую «смотреть» на входные слова.
Но на какие именно? Ведь порядок слов в разных языках может различаться
(например, в немецком глаголы часто помещаются в конец предложения),
поэтому нужно как-то сопоставить исходный и конечный текст.
Мы можем решить эту проблему (дифференцируемым образом), восполь‑
зовавшись (мягким) вниманием, впервые предложенным в работах [BCB15;
LPM15]. Именно, фиксированный контекстный вектор c в декодере можно
заменить динамическим контекстным вектором ct, который вычисляется
следующим образом:
(15.45)
Здесь внимание привлекается там, где запрос является скрытым состоя‑
нием декодера на предыдущем шаге, hdt-1, все ключи являются скрытыми со‑
стояниями кодировщика, а значения также являются скрытыми состояниями
кодировщика. (Если РНС имеет несколько скрытых слоев, то обычно ключи
и значения берутся из верхнего слоя кодировщика, а запрос – из верхнего
слоя декодера.) Этот контекстный вектор конкатенируется с входным век‑
тором декодера, yt-1 и подается декодеру вместе с предыдущим скрытым
состоянием hdt-1, в результате чего создается состояние hdt (см. схему полной
модели на рис. 15.18).
Эту модель можно обучить обычным способом на парах предложений,
а затем использовать для машинного перевода (см. демонстрационный код
по адресу code.probml.ai/book1/nmt_attention_torch). Можно также визуализи‑
ровать веса внимания, вычисленные на каждом шаге декодирования, чтобы
получить представление о том, какие части входа кажутся модели наиболее

Tlgm: @it_boooks

Модель внимания  625

релевантными для порождения соответствующего выхода. На рис. 15.19 при‑
ведено несколько примеров.

вектор
внимания
контекстный
вектор
веса
внимания

Рис. 15.18  Модель seq2seq с вниманием для перевода с английского
на французский. Печатается с разрешения Минь-Тан Луонга

(a)

(b)

Рис. 15.19  Тепловые карты внимания, построенные при переводе двух предложений с испанского на английский. (a) На входе фраза «hace mucho frio aqui.»,
на выходе «it is very cold here.»1. (b) На входе фраза «¿todavia estan en casa?», на
выходе «are you still at home?»2. Заметим, что при порождении выходного токена
«home» модель должна обратить внимание на входной токен «casa», но похоже,
что на самом деле обращает внимание на токен «?». На основе статьи по адресу
https://www.tensorflow.org/tutorials/text/nmt_with_attention
1
2

Здесь очень холодно. – Прим. перев.
Ты еще дома? – Прим. перев.

Tlgm: @it_boooks

626  Нейронные сети для последовательностей

15.4.5. Модель Seq2vec с вниманием
(классификация текста)
Мы также можем использовать механизм внимания в классификаторах по‑
следовательностей. Так, в работе [Raj+18] классификатор на основе РНС при‑
меняется к задаче предсказания смерти пациента. На вход подают записи из
электронной медицинской карты, которая представляет собой временной
ряд структурированных данных, а также неструктурированного текста (кли‑
нических комментариев). Механизм внимания полезен для идентификации
«релевантных» частей входа (см. рис. 15.20).

Рис. 15.20  Пример записи из электронной медицинской карты. В этом примере классификатор на основе РНС через 24 часа после госпитализации предсказывает риск смерти 19.9 %; в действительности пациент умер через 10 дней
после госпитализации. «Релевантные» ключевые слова из входных клинических комментариев выделены красным цветом, именно их идентифицировал
механизм внимания. На основе рис. 3 из работы [Raj+18]. Печатается с разрешения Алвина Ракомара

Tlgm: @it_boooks

Модель внимания  627

15.4.6. Модель Seq+Seq2Vec с вниманием
(классификация пар предложений)
Допустим, что видим предложение «A person on a horse jumps over a log»1
(назовем его посылкой), а далее читаем «A person is outdoors on a horse»2
(назовем это предложение гипотезой). Можно высказать разумное предпо‑
ложение, что из посылки следует гипотеза, т. е. гипотеза более вероятна при
условии истинности посылки3. Теперь предположим, что в роли гипотезы
выступает предложение «A person is at a diner ordering an omelette»4. В этом
случае мы скажем, что посылка противоречит гипотезе, потому что гипо‑
теза менее вероятна при условии истинности посылки. Наконец, предполо‑
жим, что гипотезой является предложение «A person is training his horse for
a competition»5. В этом случае связь между посылкой и гипотезой нейтральная, так как гипотеза может как следовать, так и не следовать из посылки.
Задача отнесения пары предложений к одной из этих трех категорий назы‑
вается извлечением имплицитных знаний из текста, или «естественно-языковым выводом». Стандартным эталоном в этой области является
корпус текстов Stanford Natural Language Inference (SNLI) [Bow+15]. Он
содержит 550 000 помеченных пар предложений.
Интересное решение этой задачи классификации было предложено в ра‑
боте [Par+16a]; в свое время она являлась самым передовым исследованием
на наборе данных SNLI. Принятый в ней подход схематически представлен на
рис. 15.21. Пусть A = (a1, …, am) – посылка, а B = (b1, …, bn) – гипотеза, где ai,
bj Î ℝE – векторы погружений для слов. Модель включает три шага. Сначала
каждое слово посылки ai сопоставляется с каждым словом гипотезы bj и вы‑
числяются веса внимания:
eij = f(ai)⟙f(bj),

(15.46)

где f : ℝE ® ℝD – МСП; затем мы вычисляем взвешенное среднее соответ‑
ственных слов в гипотезе:
(15.47)

1
2
3

4
5

Человек на лошади прыгает через бревно. – Прим. перев
Человек на улице на лошади. – Прим. перев
Заметим, что гипотеза логически не вытекает из посылки, потому что человек
мог бы находиться на спине лошади и в помещении, но чаще все-таки на лошадях
прогуливаются на открытом воздухе. Кроме того, мы предполагаем, что слово
«человек» в обоих предложениях относится к одному и тому же человеку.
Человек в столовой заказывает омлет. – Прим. перев.
Человек тренирует свою лошадь к соревнованиям. – Прим. перев.

Tlgm: @it_boooks

628  Нейронные сети для последовательностей
Предсказание

Посылка

Агрегат

суммирование,
затем конкатенация

Сравнение

слово –
сопоставленные слова

Внимание

сопоставить

Гипотеза

Рис. 15.21  Имплицитная классификация пары предложений с применением МСП с механизмом внимания для сопоставления посылки («I do need
sleep»1) с гипотезой («I am tired»2). Белыми квадратиками обозначены активные
веса активации, синими – неактивные. (Для простоты предполагается жесткое
внимание 0/1.) На основе рис. 15.5.2 из работы [Zha+20]. Печатается с разрешения Астона Чжана

Далее сравниваем ai с βi, для чего отображаем их конкатенацию в скрытое
пространство, используя МСП g : ℝ2E ® ℝH:
vA,i = g([ai, βi]), i = 1, …, m.

(15.48)

Наконец, агрегируем по сравнениям, чтобы получить общее сходство по‑
сылки с гипотезой:
(15.49)
Аналогично можно сравнить гипотезу с посылкой, используя
(15.50)
vB, j = g([bj, αj]), j = 1, …, n;

(15.51)
(15.52)

1
2

Мне и вправду нужно поспать. – Прим. перев.
Я устал. – Прим. перев.

Tlgm: @it_boooks

Трансформеры  629

И в конце классифицируем выход с помощью еще одного МСП h : ℝ2H ® ℝ3:
ŷ = h([vA, vB]).

(15.53)

Демонстрационный код имеется по адресу code.probml.ai/book1/entailment_
attention_mlp_torch.
Эту модель можно модифицировать, так чтобы она обучалась другим ви‑
дам отображения пар предложений в выходные метки. Например, в задаче
семантического сходства текстов цель состоит в том, чтобы предсказать
силу семантической связи двух предложений. В стандартном эталонном на‑
боре данных для этой задачи, STS Benchmark [Cer+17], сила связи изменя‑
ется от 0 (вообще не связаны) до 5 (максимально связаны).

15.4.7. Мягкое и жесткое внимание
Если принудительно сделать тепловую карту внимания разреженной, так
чтобы каждый выход мог оказывать внимание только одной входной по‑
зиции, а не взвешенной комбинации всех, то мы получим метод жесткого
внимания. На рис. 15.22 проведено сравнение этих двух подходов на приме‑
ре задачи описания изображений. К сожалению, жесткое внимание приводит
к недифференцируемой целевой функции обучения и для аппроксимации
данных моделью приходится привлекать такие методы, как обучение с под‑
креплением. Детали см. в работе [Xu+15].
Из приведенных примеров складывается впечатление, что тепловые кар‑
ты внимания могут «объяснить», почему модель порождает данный выход.
Однако интерпретируемость внимания противоречива (см., например, об‑
суждение в работах [JW19; WP19; SS19; Bru+19]).

15.5. трансФормеры
Модель трансформера [Vas+17] – это модель seq2seq, в которой механизм
внимания используется как в кодировщике, так и в декодере, благодаря чему
отпадает необходимость в РНС, как будет объяснено ниже. Трансформеры
применялись для решения многих задач условного генерирования после‑
довательностей, например: машинный перевод [Vas+17], синтаксический
анализ на основе грамматики составляющих [Vas+17], генерирование музыки
[Hua+18], генерирование последовательностей белков [Mad+20; Cho+20b],
реферирование текста [Zha+19a], генерирование изображений [Par+18] (изо‑
бражение рассматривается как растрированная одномерная последователь‑
ность) и т. д.
Трансформер – довольно сложная модель, в которой используется несколь‑
ко новых видов строительных блоков, или слоев. Ниже мы опишем эти блоки,
а затем обсудим, как свести все вместе1.
1

Более обстоятельное введение см. по адресу https://huggingface.co/course/chapter1.

Tlgm: @it_boooks

630  Нейронные сети для последовательностей
(a)

(b)

Рис. 15.22  Описание изображение с применением механизма внимания.
(a) Мягкое внимание. Генерируется предложение «a woman is throwing a frisbee in a park»1. (b) Жесткое внимание. Генерируется предложение «a man and
a woman playing frisbee in a field»2. На основе рис. 6 из работы [Xu+15]. Печатается с разрешения Келвина Су

15.5.1. Самовнимание
В разделе 15.4.4 мы показали, как декодер РНС может применить механизм
внимания к входной последовательности, чтобы уловить контекстуальные
погружения каждого входа. Однако, вместо того чтобы привлекать внимание
1
2

Женщина метает фрисби в парке. – Прим. перев.
Мужчина и женщина играют в фрисби на поле. – Прим. перев.

Tlgm: @it_boooks

Трансформеры  631

декодера к кодировщику, мы можем модифицировать модель, так чтобы
кодировщик обращал внимание на самого себя. Это называется самовниманием [CDL16; Par+16b].
Точнее, пусть дана последовательность входных токенов x1, …, xn, где
xi Î ℝd. Тогда механизм самовнимания генерирует последовательность вы‑
ходов того же размера по правилу:
yi = Attn(xi, (x1, x1), …, (xn, xn)),

(15.54)

где запросом является xi, а ключами и значениями – все (допустимые) входы
x1, …, xn.
Чтобы использовать его в декодере, мы можем положить xi = yi-1 и n = i - 1,
чтобы все ранее сгенерированные выходы были доступны. На этапе обучения
все выходы уже известны, поэтому функцию можно вычислять параллельно,
обойдя тем самым последовательное узкое место, характерное для РНС.
Помимо увеличения скорости, самовнимание может порождать улучшен‑
ные представления контекста. В качестве примера рассмотрим перевод ан‑
глийских предложений «The animal didn’t cross the street because it was too
tired»1 и «The animal didn’t cross the street because it was too wide»2 на фран‑
цузский язык. Чтобы сгенерировать французское местоимение правильного
рода, мы должны знать, к чему относится «it» (это называется разрешением
кореференции). В первом случае слово «it» относится к животному, а во
втором – к улице.
На рис. 15.23 показано, как применение механизма самовнимания к ан‑
глийскому предложению позволяет разрешить неоднозначность. В первом
предложении представление «it» зависит от предшествующих представле‑
ний «animal», а во втором – от предшествующих представлений «street».

Рис. 15.23  Как самовнимание к слову «it» в кодировщике различается в зависимости от входного контекста. Из статьи https://ai.googleblog.com/2017/08/
transformer-novel-neural-network.html. Печатается с разрешения Якоба Узкорейта
1
2

Животное не переходило улицу, потому что оно слишком устало. – Прим. перев.
Животное не переходило улицу, потому что она была слишком широкой. – Прим.
перев.

Tlgm: @it_boooks

632  Нейронные сети для последовательностей

15.5.2. Многопутевое внимание
Если рассматривать матрицу внимания как ядерную матрицу (см. раз‑
дел 15.4.2), то естественно возникает желание использовать несколько матриц внимания, улавливающих различные виды сходства. Эта идея лежит
в основе механизма многопутевого внимания (multi-headed attention –
MHA). Именно, пусть дан запрос q Î ℝdq, ключи kj Î ℝdk и значения vj Î ℝdv.
Определим i-й путь внимания как
(15.55)
где Wi(q) Î ℝpq´dq, Wi(k) Î ℝpk´dk и Wi(v) Î ℝpv´dv – матрицы проекций. Затем мы
объединяем h путей вместе и проецируем на ℝpo по правилу:
(15.56)
где hi определено в формуле (15.55), а Wo Î ℝpo´hpv. Если положить pqh = pkh =
pvh = po, то можно будет вычислять все выходные пути параллельно. Демон‑
страционный код см. по адресу code.probml.ai/book1/multi_head_attention.

Запросы

Ключи

Значения

Рис. 15.24  Многопутевое внимание. На основе рис. 9.3.3 из работы [Zha+20]

15.5.3. Позиционное кодирование
Качество не оптимизированного механизма самовнимания может быть низ‑
ким, поскольку внимание инвариантно относительно перестановок и, следо‑
вательно, игнорирует порядок входных слов. Чтобы решить эту проблему, мы
можем конкатенировать погружения слов с позиционным погружением,
тогда модель будет знать, в каком порядке встречаются слова.

Tlgm: @it_boooks

Трансформеры  633

Один из способов сделать это – представить каждую позицию целым чис‑
лом. Однако просто так нейронные сети не умеют обрабатывать целые числа.
Чтобы преодолеть эту трудность, мы можем закодировать целое в двоичной
форме. Например, если предположить, что длина последовательности n = 3,
то получим следующую последовательность d = 3-мерных битовых векторов
для каждой позиции: 000, 001, 010, 011, 100, 101, 110, 111. Как видим, быстрее
всего изменяется самый правый элемент (имеет наибольшую частоту), тог‑
да как самый левый (старший бит) изменяется медленнее всего. (Конечно,
кодировку можно изменить, сделав так, чтобы самый левый бит изменялся
быстрее всего.) Это можно представить позиционной матрицей P Î ℝn´d.
Описанное выше представление можно интерпретировать как разложение
по множеству базисных функций (соответствующих степеням 2) с коэффи‑
циентами 0 и 1. Более компактный код можно получить, взяв другой набор
базисных функций и вещественные веса. В работе [Vas+17] предложено ис‑
пользовать синусоидальный базис:
(15.57)
где C = 10 000 – максимальная длина последовательности. Например, если
d = 4, то i-я строка имеет вид:
(15.58)
На рис. 15.25a показана позиционная матрица для n = 60 и d = 32. В данном
случае быстрее всего изменяются левые столбцы. Мы видим, что у каждой
строки имеется вещественный «цифровой отпечаток», представляющий ее
позицию в последовательности. На рис. 15.25b показаны базисные функции
(векторы-столбцы) для измерений от 6 до 9.

(a)

(b)

Рис. 15.25  (a) Матрица позиционного кодирования для последовательности
длины n = 60 и размерности погружения d = 32. (b) Базисные функции для столбцов от 6 до 9. Построено программой по адресу figures.probml.ai/book1/15.25

Tlgm: @it_boooks

634  Нейронные сети для последовательностей
У такого представления двоякое преимущество. Во-первых, его можно
вычислить для входной последовательности произвольной длины (не пре‑
вышающей C), в отличие от обученного отображения целых чисел в векторы.
Во-вторых, представление одной позиции линейно предсказуемо по любой
другой, если известно их относительное расстояние. Именно, имеем pt+ϕ =
f(pt), где f – линейное преобразование. Чтобы убедиться в этом, заметим, что
(15.59)
(15.60)
Вычислив позиционные погружения P, мы должны объединить их с по‑
гружениями исходных слов X по правилу1:
POS(Embed(X)) = X + P.

(15.61)

15.5.4. Соберем все вместе
Трансформер – это модель seq2seq, в которой в качестве кодировщика и де‑
кодера применяется механизм самовнимания, а не РНС. Кодировщик исполь‑
зует серию блоков кодирования, в каждом из которых имеется многопутевое
внимание (раздел 15.5.2), остаточные связи (раздел 13.4.4) и нормировка
слоев (раздел 14.2.4.2).
Точнее, блок кодирования можно определить следующим образом:
def EncoderBlock(X):
Z = LayerNorm(MultiHeadAttn(Q=X, K=X, V=X) + X)
E = LayerNorm(FeedForward(Z) + Z)
return E

Кодировщик в целом определяется путем применения позиционного ко‑
дирования к погружению входной последовательности, после чего следует N
копий блока кодирования, где N управляет глубиной блока:
def Encoder(X, N):
E = POS(Embed(X))
for n in range(N):
E = EncoderBlock(E)
return E

Смотрите иллюстрацию в левой части рис. 15.26.
1

Напрашивается другая схема – конкатенировать X и P, но при сложении потребля‑
ется меньше памяти. Кроме того, поскольку погружения X получены в результате
обучения, модель могла бы имитировать конкатенацию, обнулив первые K из‑
мерений X и последние D - K измерений P, где K неявно определено паттерном
разреженности. Более полное обсуждение см. по адресу https://bit.ly/3rMG1at.

Tlgm: @it_boooks

Трансформеры  635
Выходные
вероятности

Многопутевое внимание

Внимание
в форме масштабированного
скалярного произведения

Nx
Подробнее
Позиционное
кодирование

Позиционное
кодирование

Погружение
входа

Погружение
выхода

Входы

Выходы
(сдвинутый вправо)

Подробнее

Рис. 15.26  Трансформер. Из работы [Wen18].
Печатается с разрешения Лилиан Вен. На основе рис. 1–2 из работы [Vas+17]

Структура декодера несколько сложнее. Ему предоставлен доступ к коди‑
ровщику посредством еще одного блока многопутевого внимания. Но также
он имеет доступ к ранее сгенерированным выходам: они сдвинуты, а затем
объединены с позиционным погружением и поданы на вход замаскирован‑
ной (каузальной) модели многопутевого внимания. Наконец, параллельно
вычисляется выходное распределение токенов в каждой позиции.
Приведем развернутое определение блока декодирования:
def DecoderBlock(X, E):
Z = LayerNorm(MultiHeadAttn(Q=X, K=X, V=X) + X)
Z’ = LayerNorm(MultiHeadAttn(Q=Z, K=E, V=E) + Z)
D = LayerNorm(FeedForward(Z’) + Z’)
return D

В полном декодере имеется N копий блока декодирования:
def Decoder(X, E, N):
D = POS(Embed(X))
for n in range(N):
D = DecoderBlock(D,E)
return D

Смотрите иллюстрацию в правой части рис. 15.26.
На этапе обучения все входы X декодера уже известны, так как они получе‑
ны из погружений целевой выходной последовательности с запаздыванием.
На этапе вывода (тестирования) мы должны декодировать последовательно
и использовать замаскированное внимание, когда сгенерированный выход
подается на вход слоя погружения, а затем добавляется в множество ключей

Tlgm: @it_boooks

636  Нейронные сети для последовательностей
и значений, на которые следует обращать внимание (оно инициализируется
токеном начала последовательности) (см. демонстрационный код по адресу
code.probml.ai/book1/transformers_torch и подробное пособие по этой модели
в работах [Rus18; Ala18]).

15.5.5. Сравнение трансформеров, СНС и HYC
На рис. 15.27 сравниваются три разных архитектуры отображения после‑
довательности x1:n в другую последовательность y1:n: одномерная СНС, РНС
и модель внимания. В каждой модели приняты разные компромиссы в пла‑
не быстродействия и выразительности, причем последнюю можно количе‑
ственно выразить в терминах длины максимального пути между любыми
двумя входами. Сводка результатов сравнения приведена в табл. 15.1.
Таблица 15.1. Сравнение трансформера с другими нейронными последовательными
порождающими моделями. Здесь n – длина последовательности, d – размерность
входных признаков, а k – размер сверточного ядра. На основе табл. 1 из работы
[Vas+17]
Тип слоя
Самовнимание
Рекуррентный
Сверточный

Сложность
O(n2d)
O(nd 2)
O(knd 2)

Число послед. операций
O(1)
O(n)
O(1)

Длина макс. пути
O(1)
O(n)
O(logk n)

Для одномерной СНС с ядром размера k и d каналами признаков время вы‑
числения выхода (которое можно организовать параллельно) равно O(knd2).
Нам нужен стек, в котором число слоев равно n/k или logk(n), если использу‑
ется дырявая свертка, чтобы все пары могли взаимодействовать. Например,
на рис. 15.27 мы видим, что x1 и x5 первоначально отстоят друг от друга на
пять позиций, в слое 1 уже на три позиции, а в слое 2 связаны напрямую.
Вычислительная сложность РНС составляет O(nd 2), где d – размер скрытого
состояния, потому что на каждом шаге необходимо выполнять умножение
матрицы на вектор. Это принципиально последовательная операция. Длина
максимального пути составляет O(n).
Наконец, для моделей самовнимания каждый выход напрямую связан
с каждым входом, поэтому длина максимального пути равна O(1). Однако вы‑
числительная сложность составляет O(n2d). Для коротких последовательностей
обычно n ≪ d, так что это нормально. А для более длинных последователь‑
ностей мы обсудим быстрые варианты механизма внимания в разделе 15.6.

15.5.6. Применение трансформеров
для изображений*
Для обработки изображений чаще всего применяются модели СНС, посколь‑
ку в них встроено полезное индуктивное смещение, например локальность

Tlgm: @it_boooks

Трансформеры  637

(вследствие небольших ядер), эквивариантность (вследствие связывания
весов) и инвариантность (вследствие пулинга). Как ни удивительно, обна‑
ружилось, что трансформеры тоже неплохо справляются с классификацией
изображений, по крайней мере, если обучены на достаточном объем данных.
(Им необходимо очень много данных, чтобы компенсировать отсутствие
индуктивного смещения.)
РНС

СНС

Самовнимание

Рис. 15.27  Сравнение моделей одномерной СНС, РНС и самовнимания.
На основе рис. 10.6.1 из работы [Zha+20]. Печатается с разрешения Астона Чжана

В частности в работе [Dos+21] представлена модель ViT (vision transformer), которая разбивает вход на 16´16 патчей, проецирует каждый патч
в пространство погружения, а затем передает этот набор погружений x1:T
трансформеру – по аналогии с тем, как передаются трансформеру погруже‑
ния слов. В начало входа добавляется специальное погружение [CLASS], x0. На
выходе трансформера получается набор кодированных представлений e0:T;
модель отображает e0 в целевую метку класса y и обучается с учителем (см.
иллюстрацию на рис. 15.28).
После предобучения с учителем модель подвергается тонкой настройке
на различных задачах классификации; этот подход называется переносом
обучения (дополнительные сведения см. в разделе 19.2). При обучении на
«небольших» наборах данных типа ImageNet (который содержит 1000 клас‑
сов и 1.3 млн изображений) авторы обнаружили, что не могут превзойти
предобученную модель на базе СНС ResNet (Section 14.3.4), известную под
названием BiT (big transfer) [Kol+20]. Однако при обучении на более крупных
наборах данных, например ImageNet-21k (21 000 классов и 14 млн изображений) или внутреннем наборе Google JFT (18 000 классов и 303 млн изо‑

Tlgm: @it_boooks

638  Нейронные сети для последовательностей
бражений) выяснилось, что ViT показывает лучшие результаты, чем BiT, при
переносе обучения. Кроме того, ее обучение на таком масштабе данных об‑
ходится дешевле, чем ResNet. (Но все равно дорого: обучение модели ViT
на наборе данных ImageNet-21k занимает 30 дней на машине Google Cloud
TPUv3 с 8 ядрами!)
Vision Transformer (ViT)

Трансформер-кодировщик

МСП

Трансформер-кодировщик
Патч +
позиционное
погружение
Дополнительное
обучаемое
погружение
[сlass]

Линейная проекция линеаризованных патчей

Погруженные
патчи

Рис. 15.28  Модель Vision Transformer (ViT). Изображение рассматривается как множество входных патчей. К входу добавляется специальный вектор
погружения CLASS (обозначен *) в позиции 0. Метка класса для изображения
выводится путем применения softmax к заключительной выходной кодировке
в позиции 0. На основе рис. 1 из работы [Dos+21]. Печатается с разрешения
Алексея Досовицкого

15.5.7. Другие варианты трансформеров*
В последние годы было опубликовано немало работ по обобщению транс‑
формеров. Например, в статье по Gshard [Lep+21] показано, как масштаби‑
ровать трансформеры на еще большее число параметров, заменив некоторые
плотные слои прямого распространения модулем регрессии на основе смеси
экспертов (раздел 13.6.2). Это открывает возможность для разреженных ус‑
ловных вычислений, когда для обработки любого заданного входа использу‑
ется только часть емкости модели (выбираемая сетью-привратником).
Еще один пример – в работе [Gul+20] описана архитектура конформера,
в которой к трансформеру добавлены сверточные слои. Показано, что она
полезна в различных задачах распознавания речи.

Tlgm: @it_boooks

Эффективные трансформеры  639

15.6. ЭФФектиВные трансФормеры*
Этот раздел написан Кшиштофом Хоромански.
Для обычных трансформеров временная и пространственная сложность
имеют порядок O(N 2), где N – длина последовательности. Из-за этого они
практически неприменимы к длинным последовательностям. За последние
несколько лет были предложены различные эффективные варианты транс‑
формеров, позволяющие обойти эту трудность. В этом разделе мы дадим
краткий обзор таких методов (см. их сводку на рис. 15.29). Дополнительные
сведения можно найти, например, в работах [Tay+20a; Tay+20b; Lin+21].

Рекуррентные

Низкоранговые/
ядерные

С добавлением
памяти

Фиксированные /
факторизованные /
случайные паттерны

Обучаемые
паттерны

Рис. 15.29  На этой диаграмме Венна
представлена таксономия эффективных архитектур трансформеров.
Из работы [Tay+20a]. Печатается с разрешения И Тая

15.6.1. Фиксированные необучаемые
локализованные паттерны внимания
Простейшая модификация механизма внимания состоит в том, чтобы огра‑
ничить его фиксированным необучаемым локализованным окном, иначе
говоря, позволить каждому токену проявлять внимание только к предва‑
рительно выбранному множеству других токенов. Если, например, каждая
последовательность разбита на K блоков длины N/K, а внимание ограничено
блоком, то временная и пространственная сложность уменьшаются с O(N 2) до
N 2/K. При K ≫ 1 вычислительный выигрыш становится заметен. Такой под‑

Tlgm: @it_boooks

640  Нейронные сети для последовательностей
ход применен, в частности, в работах [Qiu+19a; Par+18]. Паттерны внимания
необязательно должны принимать форму блоков. Из других подходов упомя‑
нем окна с шагом или пропусками, а также гибридные паттерны, когда ком‑
бинируется несколько фиксированных паттернов внимания Chi+19b; BPC20].

15.6.2. Обучаемые паттерны разреженного
внимания
Описанный выше подход естественно обобщить, разрешив обучать компакт‑
ные паттерны. Внимание по-прежнему ограничено парами токенов в одном
разделе некоторого разбиения множества всех токенов, но теперь эти раз‑
биения можно обучать. В этом классе методов можно выделить два основных
подхода: на основе хеширования и на основе кластеризации. В первом случае
все токены хешируются и, следовательно, разным разбиениям соответствуют
разные ячейки хеша. Так устроена, например, архитектура Reformer [KKL20],
в которой применяется локально-чувcтвительное хеширование (locality sen‑
sitive hashing – LSH). При этом временная сложность модуля внимания имеет
порядок O(NM 2log(M)), где M – размерность погружений токенов.
В подходах на основе хеширования множество запросов должно совпадать
с множеством ключей. Кроме того, количество ячеек хеша, необходимое для
точного разбиения (которое рассматривается как константа), может быть
велико. В подходе на основе кластеризации токены объединяются в кластеры
с помощью стандартных алгоритмов кластеризации, например K средних
(раздел 21.3); это называется «кластеризующим трансформером» [Roy+20].
Как и в случае блоков, если используется K кластеров одинакового размера,
то пространственная сложность модуля внимания уменьшается до O(N 2/K).
На практике K часто выбирают порядка K = Θ( N ), но добиться, чтобы кла‑
стеры были примерно одинакового размера, трудно.

15.6.3. Методы с добавлением памяти
и рекуррентные методы
В некоторых подходах добавляется сторонний модуль памяти, которые мо‑
жет обращаться к нескольким токенам одновременно. Часто такие методы
принимают форму алгоритма глобальной памяти, как, например, в работах
[Lee+19; Zah+20].
Еще один подход – связать различные локальные блоки рекуррентным со‑
отношением. Главный пример такого подхода – класс методов Transformer-XL
[Dai+19].

15.6.4. Низкоранговые и ядерные методы
В этом разделе мы обсудим методы, которые аппроксимируют внимание с по‑
мощью низкоранговых матриц. В работе [She+18; Kat+20] матрица внимания
A аппроксимируется непосредственно низкоранговой матрицей, так что

Tlgm: @it_boooks

Эффективные трансформеры  641

Aij = ϕ(qi)⟙ϕ(kj),

(15.62)

где ϕ(x) Î ℝM – некоторый конечномерный вектор размерности M < D. Эту
структуру можно использовать для вычисления AV за время O(N). К сожа‑
лению, в случае softmax-внимания матрица A не является низкоранговой.
В архитектуре Linformer [Wan+20a] ключи и значения трансформируются
с помощью случайных гауссовых проекций. Затем применяется лемма Джон‑
сона–Линденштрауса [AL13] для аппроксимации softmax-внимания в этом
пространстве меньшей размерности.
В архитектуре Performer [Cho+20a; Cho+20b] показано, что матрицу вни‑
мания можно вычислить с помощью (положительно определенной) ядерной
функции. Ядерные функции мы определим в разделе 17.1, но основная идея
заключается в том, что 𝒦(q, k) ³ 0 – некоторая мера сходства между q Î ℝD
и k Î ℝD. Например, гауссово ядро, называемое также радиально-базисной
функцией, имеет вид:
(15.63)
Чтобы понять, как егоможно использовать для вычисления матрицы вни‑
мания, заметим, что в работе [Cho+20a] доказан следующий факт:
(15.64)
Первый член в этом выражении равен 𝒦gauss(qi D-¼, ki D-¼) с σ = 1, а другие
два члена – просто независимые масштабные коэффициенты.
До сих пор мы ничего не выиграли с вычислительной точки зрения. Однако
в разделе 17.2.9.3 будет показано, что гауссово ядро можно записать в виде
математического ожидания множества случайных признаков:
𝒦gauss(x, y) = 𝔼[η(x)⟙η(y)],

(15.65)

Ai,j = 𝔼[ϕ(qi)⟙ϕ(kj)],

(15.66)

где η(x) Î ℝM – случайный вектор признаков, построенный на основе x с по‑
мощью тригонометрических функций (формула (17.60)) либо с помощью
экспоненциальных функций (формула (17.61)). (Во втором случае есть то
преимущество, что все признаки положительны, и это дает гораздо лучшие
результаты [Cho+20b].) Таким образом, для обычного softmax-внимания Ai,j
можно переписать в виде

где ϕ определено следующим образом:
(15.67)
Мы можем записать полную матрицу внимания в виде

Tlgm: @it_boooks

642  Нейронные сети для последовательностей
A = 𝔼[Q¢(K¢)⟙],

(15.68)

где строки Q¢, K¢ Î ℝN´M кодируют карты признаков, соответствующие запро‑
сам и ключам. (Отметим, что качество можно улучшить, если эти случайные
признаки ортогональны, детали см. в работе [Cho+20a].) Иллюстрация при‑
ведена на рис. 15.30.

Рис. 15.30  Матрица внимания A, переписанная в виде произведения двух
матриц меньшего ранга Q¢ и (K¢)⟙ со случайными картами признаков ϕ(qi) Î ℝM
и ϕ(vk) Î ℝM для соответствующих запросов/ключей, хранящихся в строках/
столбцах. Печатается с разрешения Кшиштофа Хоромански

Мы можем создать аппроксимацию A, воспользовавшись одной выборкой
из случайных признаков ϕ(qi) и ϕ(ki) и взяв небольшое значение M, скажем
M = O(D log(D)). Затем можно аппроксимировать весь оператор внимания за
время O(N), воспользовавшись разложением
(15.69)
Можно показать, что это несмещенная аппроксимация точного оператора
внимания softmax (рис. 15.31). (О том, как обобщить этот результат на зама‑
скированное (каузальное) внимание, см. [Cho+20a].)

Рис. 15.31  Разложение матрицы внимания A можно использовать для ускорения вычисления внимания благодаря свойству ассоциативности умножения
матриц. Для вычисления AV мы сначала вычисляем G = (k¢)⟙V, а затем q¢G; пространственная и временная сложность этого вычисления составляет O(N). Печатается с разрешения Кшиштофа Хоромански

Tlgm: @it_boooks

Языковые модели и обучение представлений без учителя  643

15.7. языкоВые модели и обуЧение
предстаВлений без уЧителя
Мы обсудили, как РНС и авторегрессионные (включающие только декодер)
трансформеры можно использовать в качестве языковых моделей, т. е. по‑
рождающих моделей вида p(x1, …, xT) = ÕTt=1 p(xt|x1:t-1), где каждое xt – дис‑
кретный токен, например слово или часть слова (см. обсуждение методов
предварительной обработки текста в разделе 1.5.4). Затем латентное состоя‑
ние этих моделей можно использовать в качестве непрерывного векторного
представления текста. То есть вместо унитарного вектора xt или его обучен‑
ного погружения (типа тех, что обсуждаются в разделе 20.5) мы используем
скрытое состояние ht, зависящее от всех предыдущих слов в предложении.
Эти векторы можно далее использовать как контекстуальные погружения
слов для таких целей, как классификация текста или задачи типа seq2seq
(см., например, обзор [LKB20]). Преимущество такого подхода в том, что мы
можем предобучить языковую модель без учителя на большом корпусе тек‑
стов, а затем дообучить (fine-tune) ее с учителем на небольшом помеченном
наборе данных, специально подобранном для данной задачи. (Этот общий
подход называется переносом обучения, детали см. в разделе 19.2.)
Если наша основная цель – вычислить полезные представления для пере‑
носа обучения, а не генерирование текста, то можно заменить порождаю‑
щую последовательности модель некаузальными моделями, которые уме‑
ют вычислять представление предложения, но не умеют генерировать его.
У таких моделей есть важное преимущество: теперь скрытое состояние ht
может зависеть от прошлого y1:t-1, настоящего yt и будущего yt+1:T. Иногда
это дает более качественные представления, потому что учитывается боль‑
ше контекста.
В следующих разделах мы кратко обсудим некоторые модели без учителя,
каузальные и некаузальные, для обучения представлений текста.

15.7.1. ELMo
В работе [Pet+18] представлен метод ELMo (Embeddings from Language Model). Основная идея – обучить две языковые модели типа РНС слева направо
и справа налево, а затем объединить представления их скрытых состояний
и так получить погружения для каждого слова. В отличие от двунаправленной
РНС (раздел 15.2.2), которой нужна пара вход–выход, ELMo без учителя об‑
учается минимизировать отрицательное логарифмическое правдоподобие
входного предложения x1:T:
(15.70)
где θe – разделяемые параметры слоя погружения, θs – разделяемые параметры выходного слоя softmax, а θ® и θ¬ – параметры обеих моделей РНС. (Ав‑

Tlgm: @it_boooks

644  Нейронные сети для последовательностей
торы использовали РНС типа LSTM, описанную в разделе 15.2.7.2.) Смотрите
иллюстрацию на рис. 15.32.

Рис. 15.32  Двунаправленная языковая модель ELMo. Здесь yt = xt+1 в прямой LSTM и yt = xt–1 в обратной LSTM. (Для обработки граничных случаев мы
добавляем специальные маркера bos и eos.) Из работы [Wen19]. Печатается
с разрешения Лилиан Вен

После обучения мы определяем контекстуальное представление rt = [et,
¬

t,1:L,h t,1:L], где L – число слоев в LSTM. Затем мы обучаем набор зависящих от
задачи линейных весов для отображения в конечное зависящее от контекста
погружение каждого токена: rtj = rt⟙w j, где j – идентификатор задачи. Если
решается задача синтаксического разбора, например частеречная разметка (part-of-speech – POS) (т. е. пометка каждого слова как существительного,
глагола, прилагательного и т. д.), то модель обучится придавать больший вес
нижним слоям. Если же решается задача семантического разбора, например
разрешение лексической неоднозначности (word sense disambiguation –
WSD), то модель обучится придавать больший вес верхним слоям. В обоих
случаях необходим лишь небольшой объем зависящих от задачи размечен‑
ных данных, поскольку мы обучаем единственный вектор весов для отобра‑
жения r1:T на целевые метки y1:T.

15.7.2. BERT
В этом разделе мы опишем модель BERT (Bidirectional Encoder Representations
from Transformers) из работы [Dev+19]. Как и ELMo, это некаузальная модель,
которую можно использовать для создания представлений текста, но не для
генерирования текста. В ней используется модель трансформера для отобра‑
жения модифицированной версии последовательности обратно в немоди‑
фицированную форму. В позиции t модифицированного входа присутствуют

Tlgm: @it_boooks

Языковые модели и обучение представлений без учителя  645

все слова, кроме t-го, а задача заключается в том, чтобы предсказать отсут‑
ствующее слово. Эта задача называется заполнением пропусков, или cloze.

15.7.2.1. Замаскированная языковая модель
Точнее, модель обучается минимизировать отрицательное логарифмическое
псевдоправдоподобие:
(15.71)
где m – случайная двоичная маска. Например, если обучать модель на рас‑
шифровках кулинарных видеороликов, то обучающее предложение может
иметь вид1:
Let’s make [MASK] chicken! [SEP] It [MASK] great with orange sauce.

где [SEP] – токен, разделяющий два предложения. Желаемые целевые метки
для опущенных (замаскированных) слов – «some» и «tastes»2. (Этот пример
взят из работы [Sun+19a].)
Условная вероятность вычисляется применением softmax к скрытому век‑
тору последнего слоя в позиции i:
(15.72)
где x̂ = x-m – замаскированная входная последовательность, а e(x) – погруже‑
ние токена x. Это используется для вычисления потери в замаскированных
позициях, поэтому часто встречается название замаскированная языковая модель. (Она похожа на шумоподавляющий автокодировщик из раз‑
дела 20.3.2.) Модель показана на рис. 15.33a.

15.7.2.2. Задача предсказания следующего предложения
Помимо целевой функции для замаскированной языковой модели, в ори‑
гинальной статье по BERT есть еще одна целевая функция, позволяющая
обучить модель предсказывать, следует ли одно предложение за другим.
Формально модели подается на вход последовательность:
CLS A1 A2; … Am; SEP B1 B2; …; Bn SEP,

(15.73)

где SEP – специальный токен-разделитель, а CLS – специальный токен-мар‑
кер класса. Если предложение B следует за предложением A в оригинальном
тексте, то мы полагаем целевую метку y = 1, а если B – случайно выбранное
предложение, то полагаем y = 0. Это задача предсказания следующего
предложения. Такого рода предобучение может быть полезно для класси‑
1
2

Давайте приготовим [MASK] курочку! [SEP] Она отлично [MASK] с апельсиновым
соусом. – Прим. перев.
Примерно так: «вкусную» и «сочетается». – Прим. перев.

Tlgm: @it_boooks

646  Нейронные сети для последовательностей
фикации пар предложений, например в задачах извлечения имплицитных
знаний из текста или установления сходства текстов (см. раздел 15.4.6). (От‑
метим, что такое предобучение считается обучением без учителя или с частичным привлечением учителя, потому что целевые метки генерируются
автоматически.)

(a)

(b)

Рис. 15.33  Иллюстрация (a) BERT и (b) GPT. Et – вектор погружения для входного токена в позиции t, а Tt – подлежащий предсказанию выход. На основе
рис. 3 из работы [Dev+19]. Печатается с разрешения Мин-Вей Чана

Для предсказания следующего предложения на вход модели подается три
разных погружения: токена, метки каждого сегмента (предложение A или B)
и позиции (с использованием обученного позиционного погружения). Затем
они складываются (см. иллюстрацию на рис. 15.34). Далее в BERT использу‑
ется кодировщик трансформера для обучения отображения этой входной по‑
следовательности погружений в выходную последовательность погружений,
которая затем декодируется в метки слов (для замаскированных позиций)
или в метку класса (для позиции с токеном CLS).
Вход
Погружения
токенов
Погружения
сегментов
Позиционные
погружения

Рис. 15.34  Как пара входных предложений A и B кодируется перед подачей
на вход BERT. На основе рис. 14.8.2 из работы [Zha+20]. Печатается с разрешения Астона Чжана

Tlgm: @it_boooks

Языковые модели и обучение представлений без учителя  647

15.7.2.3. Дообучение BERT для приложений NLP
После предобучения BERT без учителя мы можем использовать ее для реше‑
ния различных задач, выполнив дообучение с учителем. (Введение в такие
методы переноса обучения см. в разделе 19.2.)
На рис. 15.35 показано, как модифицировать модель BERT для решения
различных задач, просто добавив один или несколько выходных путей в по‑
следний скрытый слой (см. также демонстрационный код по адресу code.
probml.ai/book1/bert_torch).
Метка
класса

Метка
класса

Одно предложение

Предложение 1

Предложение 2
Начало/конец
отрезка

Одно предложение

Вопрос

Абзац

Рис. 15.35  Как использовать модель BERT для разных задач обучения с учителем в NLP. (a) Классификация одного предложения (например, анализ эмоциональной окраски). (b) Классификация пары предложений (например, извлечение имплицитной информации из текста). (c) Разметка одного предложения
(например, поверхностный синтаксический анализ). (d) Ответы на вопросы. На
основе рис. 4 из работы [Dev+19]. Печатается с разрешения Мин-Вей Чана

На рис. 15.35a показано, как можно классифицировать одно предложение
(например, с целью анализа его эмоциональной окраски): мы просто берем
вектор признаков, ассоциированный со специальным токеном CLS, и подаем
его на вход МСП. Поскольку каждый выход обращает внимание на все входы,
этот скрытый вектор обобщает все предложение. Затем МСП обучается ото‑
бражать его в нужное пространство меток.

Tlgm: @it_boooks

648  Нейронные сети для последовательностей
На рис. 15.35b показано, как можно классифицировать пару предложений
(например, для имплицитного извлечения знаний из текста, рассмотренного
в разделе 15.4.6): мы подаем на вход оба предложения, отформатированных,
как в (15.73), а затем классифицируем токен CLS.
На рис. 15.35c показано, как разметить одно предложение, т. е. ассоции‑
ровать метку с каждым словом, а не со всем предложением. Типичное при‑
ложение – частеречная разметка, когда каждое слово аннотируется частью
речи: существительное, глагол, прилагательное и т. д. Еще одно приложе‑
ние – выделение именных групп, или поверхностный синтаксический
анализ, когда требуется аннотировать все именные группы. Предложение
размечается в нотации BIO, где B – начало группы, I – внутренние слова, O –
слово вне любой группы. Например, рассмотрим следующее предложение:
B
I
O
O
O
B I
O
B I I
British Airways rose after announcing its withdrawl from the UAI deal

Здесь мы видим три именных группы, «British Airways», «its withdrawl»
и «the UAI deal». (Мы требуем, чтобы метки B, I и O встречались в этом по‑
рядке, так что это априорное ограничение можно включить в модель.)
Можно также ассоциировать типы с каждой именной группой, например
выделить имена людей, названия мест, организаций и т. д. Тогда простран‑
ство меток принимает вид {B-Per, I-Per, B-Loc, I-Loc, B-Org, I-Org, Outside}.
Это задача распознавания именованных сущностей (NER), она является
важным шагом извлечения информации. Например, рассмотрим следующее
предложение:
BP IP
O
O
O BL IL
BP
O
O O
O
Mrs Green spoke today in New York. Green chairs the finance committee.

Мы можем сделать вывод, что в первом предложении имеются две имено‑
ванные сущности, а именно: «Mrs Green» (типа Person – человек) и «New York»
(типа Location – место). Во втором предложении также упоминается человек,
«Green», скорее всего, тот же самый, хотя это перекрестное разрешение сущ‑
ностей не является частью задачи NER.
Наконец, на рис. 15.35d показано, как можно реализовать вопросно-ответную систему. Здесь первое предложение – вопрос, второе – текст, а на
выходе требуется указать позиции начала и конца частей текста, в которых
содержится ответ на вопрос (см. табл. 1.4). Начало s и конец e вычисляются
путем применения двух разных МСП к подвергнутой пулингу версии вы‑
ходных кодировок текста; выходом обоих МСП является результат softmax
по всем позициям. На этапе тестирования мы можем извлечь отрезок (i, j),
который максимизирует сумму оценок si + ej для i £ j.
BERT показывает лучшее на текущий момент качество на многих задачах
NLP. В работе [TDP19] показано, что BERT неявно сводится к стандартному
конвейеру NLP, в котором различные слои выполняют такие задачи, как ча‑
стеречная разметка (POS), синтаксический анализ, распознавание имено‑
ванных сущностей (NER), назначение семантических ролей (semantic role
labeling – SRL), разрешение кореференции и т. д. Дополнительные сведения
о NLP можно найти в работе [JM20].

Tlgm: @it_boooks

Языковые модели и обучение представлений без учителя  649

15.7.3. GPT
В работе [Rad+18] предложена модель GPT (Generative Pre-training Trans‑
former). Это каузальная (порождающая) модель, в которой в качестве де‑
кодера используется замаскированный трансформер (см. иллюстрацию на
рис. 15.33b).
В оригинальной статье авторы выполняют совместную оптимизацию на
большом неразмеченном и на малом размеченном наборе данных. В случае
применения модели для классификации потеря имеет вид ℒ = ℒcls + λℒLM, где
ℒcls = -å(x,y)Î𝒟L log p(y|x) – потеря классификации на размеченных данных,
а ℒLM = -åxÎ𝒟U åt p(xt|x1:t-1) – потеря языкового моделирования на нераз‑
меченных данных.
В работе [Rad+19] предложена модель GPT-2, увеличенная версия GPT,
обученная на большом корпусе документов из веб, получившем название
WebText. Авторы также устранили зависящую от задачи стадию обучения,
а вместо этого просто обучали сеть как языковую модель. Недавно компания
OpenAI разработала модель GPT-3 [Bro+20], даже большую, чем GPT-2, но ос‑
нованную на тех же принципах. Версия этой модели с открытым исходным
кодом, доступная по адресу https://huggingface.co/EleutherAI, обучена на кор‑
пусе англоязычных текстов размером 800 ГБ, названном «The Pile» [Gao+20].

15.7.3.1. Приложения GPT
GPT умеет генерировать текст по начальной подсказке. Подсказка может
описывать задачу; если сгенерированный текст удовлетворяет условиям за‑
дачи без модификации, то говорят, что модель выполняет перенос обучения
без примеров (zero-shot task transfer) (детали см. в разделе 19.6).
Например, для реферирования (abstractive summarization) входного тек‑
ста x1:T (в отличие от квазиреферирования (extractive summarization), при
котором просто извлекается подмножество входных слов) мы производим
выборку из распределения p(xT+1:T+100|[x1:T; TL;DR]), где TL;DR – специаль‑
ный токен, добавленный в конец входного текста, который говорит системе,
что пользователь хочет получить реферат. Аббревиатура TL;DR означает «too
long; didn’t read»1 и часто встречается в веб-текстах, за ней обычно следует
созданный человеком реферат. Добавив этот токен в состав входных дан‑
ных, пользователь надеется перевести декодер трансформера в состояние,
из которого он войдет в режим реферирования. (Чтобы указать модели, ка‑
кую задачу она должна выполнить, есть способ лучше – обучить ее на парах
вход–выход, как описано в разделе 15.7.4.)

15.7.4. T5
Многие модели обучаются без учителя, а затем дообучаются на конкретных
задачах. Можно также обучить одну модель решению нескольких задач; для
1

Слишком длинно, не стал читать. – Прим. перев.

Tlgm: @it_boooks

650  Нейронные сети для последовательностей
этого нужно включить в состав входного предложения указание на то, какую
задачу выполнять, а затем обучить модель по типу seq2seq, как показано на
рис. 15.36. Этот подход применен в модели T5 [Raf+19], что означает «Textto-text Transfer Transformer». Это стандартный трансформер seq2seq, предобученный без учителя на парах (x¢, x²), где x¢ – замаскированная версия x,
а x² – пропущенные токены, которые нужно предсказать, и затем дообучен‑
ный с учителем на нескольких парах (x, y).

Рис. 15.36  Как можно использовать модель T5 (Text-to-text Transfer Transformer) для решения нескольких задач NLP, например: перевод с английского на немецкий; определение лингвистической корректности предложения
(CoLA – Corpus of Linguistic Acceptability); определение степени семантического сходства (STSB – Semantic Textual Similarity Benchmark) и реферирование текста. На основе рис. 1 из работы [Raf+19]. Печатается с разрешение
Колина Раффела

Данные, на которых производится обучение без учителя, берутся из кор‑
пуса C4 (Colossal Clean Crawled Corpus) взятых из веб текстов суммарным
объемом 750 ГБ. Они используются для предобучения с использованием шу‑
моподавляющей целевой функции, похожей на ту, что применяется в BERT.
Например, предложение x = «Thank you for inviting me to your party last week»
можно преобразовать во вход x¢ = «Thank you me to your party week»
и выход (цель) x² = « for inviting last », где и – то‑
кены, уникальные для данного примера. Наборы данных для обучения с учи‑
телем создают вручную или берутся из литературы. Этот подход в настоящее
время считается самым современным для многих задач NLP.

15.7.5. Обсуждение
Гигантские языковые модели типа BERT и GPT-3 в последнее время вызвали
большой интерес и даже получили освещение в крупных СМИ1. Однако есть
сомнения, действительно ли такие системы «понимают» язык в каком-то
разумном смысле или просто переупорядочивают фразы, которые встреча‑
1

См., например, https://www.nytimes.com/2020/11/24/science/artificial-intelligence-aigpt3.html.

Tlgm: @it_boooks

Языковые модели и обучение представлений без учителя  651

лись в огромных обучающих наборах. Например, в работе [NK19] показано,
что способность BERT показывать почти такие же результаты, как человек
в задаче «Argument Reasoning Comprehension» (Аргументация Рассуждение
Понимание), «можно полностью объяснить использованием не несущих ни‑
какого смысла статистических подсказок в наборе данных». Стоит немного
изменить набор данных, как качество уменьшится до уровня случайности.
Критику подобных моделей см. также в работах [BK20; Mar20].

Часть

IV

Tlgm: @it_boooks

НЕПАРАМЕТРИЧЕСКИЕ
МОДЕЛИ

Глава

16

Tlgm: @it_boooks

Методы на основе
эталонов
До сих пор мы в этой книге рассматривали в основном параметрические
модели, безусловные p(y|θ) или условные p(y|x, θ), где θ – вектор параметров
фиксированной размерности. Параметры оцениваются с использованием
набора данных переменного размера, 𝒟 = {(xn, yn) : n = 1 … N}, но после обучения модели эти данные отбрасываются.
В этом разделе мы рассмотрим различные виды непараметрических
моделей, в которых обучающие данные сохраняются. Таким образом, эф‑
фективное число параметров модели может расти вместе с |𝒟|. Нас будут ин‑
тересовать модели, которые можно определить в терминах сходства между
тестовым входом x и каждым из обучающих входов xn. Альтернативно модель
можно определить в терминах несходства или функции расстояния d(x, xn).
Поскольку модели сохраняют обучающие примеры до этапа тестирования,
мы называем их моделями на основе эталонов (exemplar-based model).
(Этот подход называют также обучением на примерах (instance-based
learning) [AKA91] или обучением на основе запоминания (memory-based
learning)).

16.1. классиФикация методом K ближайших
соседей (KNN)
В этом разделе мы обсудим один из самых простых классификаторов – метод
K ближайших соседей (K nearest neighbor – KNN). Идея следующая: чтобы
классифицировать новый вход x, мы находим K ближайших к x примеров
в обучающем наборе – обозначим их NK (x, 𝒟), – а затем смотрим на их мет‑
ки и строим распределение выходов в локальной окрестности x. Точнее, мы
вычисляем распределение:
(16.1)

Tlgm: @it_boooks

654  Методы на основе эталонов
Затем мы можем вернуть это распределение или мажоритарную метку.
Два основных параметра этой модели – размер окрестности, K, и метрика
d(x, x¢). В качестве метрики часто принимается расстояние Махаланобиса:
(16.2)
где M – положительно определенная матрица. Если M = I, то эта метрика
сводится к евклидову расстоянию. Как обучить метрику, мы обсудим в раз‑
деле 16.2.
Можно показать, что, несмотря на простоту, KNN-классификатор при
N ® ¥ не более чем в два раза хуже байесовской ошибки (которая измеряет
качество наилучшего возможного классификатора) [CH67; CD14]. (Конечно,
на практике скорость сходимости к этому оптимальному качеству может
быть низкой, причины мы обсудим в разделе 16.1.2.)

16.1.1. Пример
На рис. 16.1(a) показан KNN-классификатор на плоскости при K = 5. Тестовая точка обозначена крестиком. Три из пяти ближайших к ней соседей
имеют метку 1, и два оставшихся – метку 0. Поэтому мы предсказываем
p(y = 1|x, 𝒟) = 3/5 = 0.6.

(а)

(b)

Рис. 16.1  (a) Классификатор по K ближайшим соседям на двумерной плоскости при K = 5. Ближайшие соседи тестовой точки x имеют метки {1, 1, 1, 0, 0},
поэтому мы предсказываем p(y = 1|x, 𝒟) = 3/5. (b) Диаграмма Вороного, индуцированная классификатором 1-NN. На основе рис. 4.13 из работы [DHS01].
Построено программой по адресу figures.probml.ai/book1/16.1

Если положить K = 1, то мы будем просто возвращать метку ближайше‑
го соседа, поэтому прогнозное распределение сводится к дельта-функции.
KNN-классификатор с K = 1 индуцирует диаграмму Вороного множества
точек (см. рис. 16.1b). Это разбиение пространства, при котором с каждой
точкой xn ассоциируется область V(xn) такая, что все точки, принадлежащие
V(xn), расположены к xn ближе, чем к любой другой точке. Внутри каждой
ячейки предсказывается метка соответствующей обучающей точки. Таким
образом, при K = 1 ошибка на обучающем наборе равна 0. Однако такая мо‑
дель обычна переобучена, как будет показано ниже.

Tlgm: @it_boooks

Классификация методом K ближайших соседей (KNN)  655

На рис. 16.2 приведен пример применения KNN-классификатора к дву‑
мерному набору данных с тремя классами. Мы видим, что при K = 1 метод
не допускает ни одной ошибки на обучающем наборе. При увеличении K
решающие границы становятся более гладкими (поскольку мы производим
усреднение по большим окрестностям), поэтому ошибка на обучающем на‑
боре возрастает, а модель постепенно становится недообученной. Это по‑
казано на рис. 16.2d. График ошибки на тестовом наборе имеет обычную
U-образную форму.

(a)

(b)

(c)

(d)

Рис. 16.2  Решающие границы, индуцированные KNN-классификатором.
(a) K = 1. (b) K = 2. (c) K = 5. (d) Зависимость ошибки на обучающем и тестовом
наборе от K. Построено программой по адресу figures.probml.ai/book1/16.2

16.1.2. Проклятие размерности
Главная статистическая проблема KNN-классификаторов – то, что они плохо
работают для входных данных высокой размерности. Этот феномен называ‑
ется проклятием размерности.
Суть проблемы состоит в том, что пространственный объем экспоненци‑
ально растет с увеличением размерности, поэтому для поиска ближайшего
соседа, возможно, придется заглянуть очень далеко. Чтобы было понятнее,
рассмотрим пример из книги [HTF09, стр. 22]. Предположим, что KNN-классификатор применяется к входным данным, равномерно распределенным
в D-мерном единичном кубе. Допустим, что плотность распределения меток
классов в окрестности тестовой точки x оценивается путем «растяжения»
гиперкуба вокруг x, пока он не включит заданную долю p входных точек.

Tlgm: @it_boooks

656  Методы на основе эталонов
Ожидаемая длина ребра этого куба будет равна eD(s) p1/D; график этой функ‑
ции показан на рис. 16.3b. Если D = 10 и мы хотим, чтобы оценка была осно‑
вана на 10 % данных, то имеем e10(0.1) = 0.8, т. е. мы должны растянуть куб
на 80 % по каждому измерению. Даже если используется всего 1 % данных,
все равно e10(0.01) = 0.63. Принимая во внимание, что диапазон изменения
данных в каждом измерении – от 0 до 1, этот метод оказывается не очень-то
локальным, несмотря на слова «ближайшие соседи». А проблема в том, что
соседи, расположенные так далеко, могут оказаться плохими предикторами
поведения функции в данной точке.

(a)

(b)

Рис. 16.3  Проклятие размерности. (a) Малый куб со стороной s вложен
в больший единичный куб. (b) Длина ребра куба, содержащего заданную долю
объема единичного куба, как функция от числа измерения. На основе рис. 2.6 из
книги [HTF09]. Построено программой по адресу figures.probml.ai/book1/16.3

Существует два основных способа избавиться от проклятия размерности:
сделать некоторые допущения о форме функции (т. е. использовать параме‑
трическую модель) или использовать метрику, которая принимает во вни‑
мание только часть измерений (см. раздел 16.2).

16.1.3. Снижение требований к скорости и памяти
KNN-классификаторы хранят все обучающие данные. Очевидно, что это
очень расточительно. Были предложены различные способы обрезки, т. е.
удаления точек, не влияющих на решающие границы; см., например, [WM00].
В разделе 17.4 обсуждается теоретически подкрепленный подход, основан‑
ный на априорном распределении, поощряющем разреженность; получаю‑
щийся метод называется разреженной ядерной машиной и позволяет хра‑
нить только подмножество, содержащее наиболее полезные примеры.
Что касается времени работы, то наша цель заключается в том, чтобы най‑
ти K ближайших соседей за время, меньшее O(N), где N – размер обучающего
набора. Задача нахождения точных ближайших соседей вычислительно не‑
разрешима, когда размерность превышает 10, поэтому большинство мето‑
дов довольствуется нахождением приближенных. Есть два основных класса

Tlgm: @it_boooks

Классификация методом K ближайших соседей (KNN)  657

таких методов: основанные на разбиении пространства на области и на ис‑
пользовании хеширования.
Что касается методов разбиения, то можно воспользоваться какой-ни‑
будь разновидностью k-d деревьев, которые делят пространство на осепа‑
раллельные области, или каким-нибудь методом кластеризации, в котором
применяются якорные точки. Из методов на основе хеширования самым рас‑
пространенным является локально-чувствительное хеширование (locality
sensitive hashing – LSH) [GIM99], хотя существуют и более современные ме‑
тоды обучения функции хеширования на данных (см., например, [Wan+15]).
Хорошее введение в методы хеширования имеется в книге [LRU14].
По адресу https://github.com/facebookresearch/faiss можно скачать библио‑
теку с открытым исходным кодом FAISS, реализующую эффективный точ‑
ный и приближенный поиск ближайшего соседа (и кластеризацию методом
K средних) для плотных векторов. Эта библиотека описана в работе [JDJ17].

16.1.4. Распознавание открытого множества
Не спрашивай, как это называется. Спрашивай, на что это похоже.
— Моше Бар [Bar09]

Во всех задачах классификации, которые мы рассматривали до сих пор, пред‑
полагалось, что множество классов 𝒞 фиксировано. (Это пример допущения
замкнутости мира, заключающегося в том, что существует фиксированное
число (типов) сущностей.) Однако во многих реальных задачах могут по‑
являться тестовые примеры, принадлежащие новым категориям. Это так
называемое распознавание открытого множества мы и обсудим ниже.

16.1.4.1. Онлайновое обучение, обнаружение посторонних
и распознавание открытого множества
Предположим, что мы обучаем систему распознавания лиц предсказывать
личность человека из фиксированного множества, или галереи изображений
лиц. Обозначим 𝒟t = {(xn, yn) : xn Î 𝒳, yn Î 𝒞t, n = 1 … Nt} размеченный набор
данных в момент t, где 𝒳 – множество изображений (лиц), а 𝒞t = {1, …, Ct} –
множество людей, известных системе в момент t (где Ct £ t). На этапе те‑
стирования система может встретить нового человека, которого не видела
раньше. Пусть xt+1 – это новое изображение, а yt+1 = Ct+1 – его новая метка.
Система должна понять, что вход принадлежит новой категории и не пытать‑
ся по ошибке сопоставить ему метку из 𝒞t. Это называется обнаружением
новизны. В этом случае вход генерируется из распределения p(x|y = Ct+1), где
Ct+1 Ï 𝒞t – новая «метка класса». Определить, что xt+1 принадлежит новому
классу, может быть трудно, если внешне новое изображение похоже на одно
из уже присутствующих в 𝒟t.
Обнаружив, что xt+1 принадлежит новой категории, система может запро‑
сить идентификатор этого экземпляра, назовем его Ct+1. Затем она может
добавить помеченную пару (xt+1, Ct+1) в набор данных, который назовем 𝒟t+1,

Tlgm: @it_boooks

658  Методы на основе эталонов
и расширить множество классов, добавив Ct+1 в 𝒞t (см. [JK13]). Это называется
инкрементным обучением, онлайновым обучением, обучением на протяжении всей жизни или непрерывным обучением. В будущем система
может встретить изображение, выбранное из распределения p(x|y = c), где
c – существующий или новый класс, или изображение, выбранное из совер‑
шенно нового распределения p¢(x), никак не связанного с лицами (например,
кто-то загрузил фото своей собаки). В последнем случае говорят об обнаружении посторонних (out-of-distribution, или OOD).
В такой онлайновой постановке мы часто имеем всего несколько (ино‑
гда только один) примеров из каждого класса. В этом случае предсказание
называется классификацией по малому числу примеров и подробнее
обсуждается в разделе 19.6. KNN-классификаторы хорошо подходят для та‑
кой задачи. Например, мы можем просто сохранить все примеры из каждого
класса в галерее, как описано выше. В момент t + 1, получив вход xt+1, мы не
предсказываем его метку, сравнивая xt+1 с какой-то параметрической моде‑
лью для каждого класса, а просто находим в галерее пример, ближайший (или
самый похожий) к xt+1; назовем его x¢. Затем нужно определить, достаточно
ли x¢ и xt+1 похожи, чтобы считаться одним и тем же. (В контексте классифи‑
кации лиц это называется повторной идентификацией человека, или верификацией лица, см., например, [WSH16]).) Если совпадения не найдено,
можно объявить пример новым, или посторонним.
Ключевым компонентом всех описанных выше задач является метрика
сходства (или различия) входов. Как обучить ее, мы обсудим в разделе 16.2.

16.1.4.2. Другие задачи открытого мира
Проблемы распознавания открытого множества и инкрементного обуче‑
ния – это лишь два примера задач, требующих допущения открытого мира,
см. [Rus15]. Есть много других задач такого рода.
Например, рассмотрим задачу разрешения сущностей, или связывания
сущностей. В ней требуется решить, относятся ли разные строки (напри‑
мер, «John Smith» и «Jon Smith») к одной сущности или к разным. Детали см.
в работе [SHF15].
Еще одно важное приложение – многоцелевое сопровождение. Напри‑
мер, когда радар обнаруживает новую отметку, он должен определить, от‑
носится ли она к уже сопровождаемой цели или это новый объект, появив‑
шийся в воздушном пространстве. Элегантный математический аппарат для
решения таких задач – теория случайных конечных множеств – описан
в работах [Mah07; Mah13; Vo+15].

16.2. обуЧение метрик
Умение вычислять «семантическое расстояние» между парой точек, d(x, x¢) Î
ℝ+ для x, x¢ Î 𝒳, или, эквивалентно, их сходство s(x, x¢) Î ℝ+, имеет огромное
значение для таких задач, как классификация по ближайшим соседям (раз‑

Tlgm: @it_boooks

Обучение метрик  659

дел 16.1), самообучение (раздел 19.2.4.4), кластеризация по сходству (раз‑
дел 21.5), поиск по содержимому, визуальное сопровождение и т. д.
Если пространство входов 𝒳 = ℝD, то в качестве метрики чаще всего вы‑
бирается расстояние Махаланобиса:
(16.3)
В разделе 16.2.1 мы обсудим некоторые методы обучения матрицы M.
Если вход имеет высокую размерность или структурирован, то лучше сначала
обучить погружение e = f(x), а затем вычислять расстояния в пространстве
погружения. Если f – глубокая нейронная сеть, то говорят о глубоком обучении метрики, эту тему мы обсудим в разделе 16.2.2.

16.2.1. Линейные и выпуклые методы
В этом разделе мы обсудим несколько методов обучения матрицы M в рас‑
стоянии Махаланобиса – как прямых (когда задача рассматривается как вы‑
пуклая), так и косвенных, с помощью линейного проецирования. О других
подходах к обучению метрики см., например, работы [Kul13; Kim19].

16.2.1.1. Метод ближайших соседей с большим зазором
В работе [WS09] предложено обучать матрицу Махаланобиса M, так чтобы
результирующая метрика хорошо работала совместно с классификатором по
ближайшим соседям. Этот метод называется методом ближайших соседей
с большим зазором (large margin nearest neighbor – LMNN).
Работает он следующим образом. Для каждого примера i обозначим Ni
множество целевых соседей; обычно в этой роли выступает множество K то‑
чек с одинаковой меткой класса, ближайших в смысле евклидовой метрики.
Затем M оптимизируется, так чтобы минимизировать суммарное расстояние
между каждой точкой i и всеми ее целевыми соседями j Î Ni:
(16.4)
Мы также хотим убедиться, что примеры с неподходящими метками рас‑
положены далеко друг от друга. Для этого мы стремимся сделать так, чтобы
пример i был ближе (с некоторым зазором m ³ 0) к своим целевым соседям j,
чем к точкам l с другими метками (они называются самозванцами). Этого
можно добиться посредством минимизации функции
(16.5)
где [z]+ = max(z, 0) – функция кусочно-линейной потери (раздел 4.3.2). Пол‑
ная целевая функция ℒ(M) = (1 - λ)ℒpull(M) + λℒpush(M), где 0 < λ < 1. Это

Tlgm: @it_boooks

660  Методы на основе эталонов
выпуклая функция, определенная на выпуклом множестве, и для ее миними‑
зации можно применить методы полуопределенного программирования.
Альтернативно можно параметризовать задачу, положив M = W⟙W, а затем
минимизировать относительно W методами безусловной градиентной опти‑
мизации. Эта задача уже не выпуклая, но допускает отображение W низкой
размерности.
Для больших наборов данных нужно учитывать, что вычислительная слож‑
ность решения задачи (16.5) составляет O(N3). Мы обсудим некоторые при‑
емы ускорения в разделе 16.2.5.

16.2.1.2. Анализ компонентов соседства
Еще один способ обучить линейное отображение W такое, что M = W⟙W, на‑
зывается анализом компонент соседства (neighborhood components analy‑
sis — NCA [Gol+05]. Его идея заключается в нахождении вероятности того, что
пример xi имеет xj в качестве ближайшего соседа, с применением линейной
функции softmax:
(16.6)
(Это версия стохастических погружений соседства, обсуждаемых в разде‑
ле 20.4.10.1, только обучаемая с учителем.) Математическое ожидание числа
примеров, правильно классифицированных 1NN-классификатором с метри‑
кой W, равно J(W) = åNi=1åj¹i,yj=yi pijW. Обозначим ℒ(W) = 1 - J(W)/N ошибку
при исключении по одному. Для минимизации ℒ относительно W можно
применить градиентные методы.

16.2.1.3. Анализ латентных совпадений
Еще один способ обучить линейное отображение W такое, что M = W⟙W,
называется анализом латентных совпадений (latent coincidence analy‑
sis – LCA) [DS12]. Определяется условная модель латентных переменных
для отображения пары входов, x и x¢, в метку y Î {0, 1}, которое описывает,
являются ли входы похожими (например, имеют одну и ту же метку классу)
или непохожими. Каждый вход x Î ℝD отображается в латентную точку z Î ℝL
в пространстве низкой размерности с помощью стохастического отображе‑
ния p(z|x) = 𝒩(z|Wx, σ2I), и p(z¢|x¢) = 𝒩(z¢|Wx¢, σ2I). (Сравните с факторным
анализом, обсуждаемым в разделе 20.2.) Затем определяется вероятность
того, что оба входа похожи: p(y = 1|z, z¢) = exp((-1/2κ2)||z - z¢||), см. иллюстра‑
цию предположений модели на рис. 16.4.
Мы можем максимизировать логарифмическое маргинальное правдопо‑
добие 𝓁(W, σ2, κ2) = ån log p(yn|xn, x¢n), применив EM-алгоритм (раздел 8.7.2).
(Без ограничения общности можно положить κ = 1, потому что это значение
влияет только на масштаб W.) Точнее, на E-шаге мы вычисляем апостери‑
орное распределение p(z, z¢|x, x¢, y) (что можно сделать в замкнутой форме),
а на M-шаге решаем задачу оптимизации методом взвешенных наименьших

Tlgm: @it_boooks

Обучение метрик  661

квадратов (см. раздел 13.6.2). EM-алгоритм гарантирует монотонный рост
целевой функции и не нуждается в корректировке размера шага, в отличие
от градиентных методов, применяемых в анализе компонентов соседства
(раздел 16.2.1.2). (Для обучения модели можно использовать также вари‑
ационный байесовский вывод (раздел 4.6.8.3), равно как и различные его
разреженные и нелинейные обобщения, обсуждаемые в работе [ZMY19].)

Рис. 16.4  Иллюстрация анализа латентных совпадений (LCA) в виде ориентированной графовой модели. Входы x, x¢ Î ℝD отображаются в латентные
гауссовы переменные z, z¢ Î ℝL с помощью линейного отображения W. Если обе
латентных точки совпадают (с точностью до масштаба длины κ), то мы полагаем
метку сходства y = 1, в противном случае полагаем y = 0. На основе рис. 1 из
работы [DS12]. Печатается с разрешения Лоуренса Сола

16.2.2. Глубокое обучение метрики
При измерении расстояния между многомерными или структурированны‑
ми входами очень полезно сначала обучить погружение в «семантическое»
пространство меньшей размерности, в котором расстояние более осмыслено
и в меньшей степени подвержено проклятию размерности (раздел 16.1.2).
Пусть e = f(x; θ) Î ℝL – погружение входа, сохраняющее «релевантные» семан‑
тические аспекты входа, а ê = e/||e||2 – результат его 𝓁2-нормировки. После нор‑
мировки все точки будут лежать на поверхности гиперсферы. Тогда мы можем
измерить расстояние между двумя точками, пользуясь евклидовой метрикой:
(16.7)
при которой точки тем более схожи, чем меньше расстояние между ними.
Или же можно воспользоваться коэффициентом Отиаи:
(16.8)
чем он больше, тем более схожи точки. (Коэффициент Отиаи измеряет угол
между двумя векторами, как показано на рис. 20.43.) Эти величины связаны
соотношением:

Tlgm: @it_boooks

662  Методы на основе эталонов
(16.9)
Этот общий подход называется глубоким обучением метрики (deep met‑
ric learning – DML).
Основная идея DML – обучить функцию погружения такую, что похожие
примеры ближе друг к другу, чем непохожие. Формально предположим, что
имеется размеченный набор данных 𝒟 = {(xi, yi) : i = 1 … N }, из которого
можно выбрать похожие пары 𝒮 = {(i, j) : yi = yj}. Если (i, j) Î 𝒮, но (i, k) Ï 𝒮, то
мы предполагаем, что xi и xj должны быть ближе в пространстве погружения,
тогда как xi и xk должны быть дальше. Ниже мы обсудим разные способы
гарантировать выполнение этого свойства. Отметим, что эти методы рабо‑
тают и тогда, когда меток классов нет, при условии, что существует какой-то
другой способ определить похожие пары. Например, в разделе 19.2.4.3 мы
обсудим подходы к обучению представлений на основе самообучения, при
которых семантически похожие пары создаются автоматически, и обучим
погружения, при которых такие пары гарантированно оказываются ближе,
чем семантически не связанные.
Прежде чем переходить к детальному обсуждению DML, отметим, что мно‑
гие недавние подходы к DML не так хороши, как было заявлено; см. работы
[MBL20; Rot+20]. (Утверждения, содержащиеся в некоторых из упомянутых
там статей, часто неверны из-за некорректного экспериментального срав‑
нения, этот недостаток вообще свойствен современным исследованиям по
МО, как обсуждается, например, в работах [BLV19; LS19b].) Поэтому мы со‑
средоточимся на немного более старых и простых методах, которые, однако,
надежнее.

16.2.3. Потери классификации
Предположим, что имеется размеченный набор данных с C классами. Тогда
можно обучить модель классификации за время O(NC), а затем использовать
скрытые признаки как функцию погружения. (Часто используют предпослед‑
ний слой, потому что он лучше обобщается на новые классы, чем последний.)
Этот подход прост и хорошо масштабируется. Однако так можно обучиться
только погружению примеров по правильную сторону от решающей грани‑
цы, поэтому вовсе необязательно, что похожие примеры будут находиться
близко друг к другу, а непохожие далеко. Кроме того, этот метод нельзя ис‑
пользовать, если отсутствуют помеченные обучающие данные.

16.2.4. Потери ранжирования
В этом разделе мы рассмотрим минимизацию потери ранжирования
с целью гарантировать, что похожие примеры ближе друг к другу, чем непо‑
хожие. По большей части эти методы не нуждаются в метках классов (хотя
иногда мы предполагаем, что метки существуют, потому что так проще вве‑
сти нотацию для определения сходства).

Tlgm: @it_boooks

Обучение метрик  663

16.2.4.1. Попарная (сопоставительная) потеря
и сиамские сети
Один из самых ранних подходов к обучению представлений по похожим
и непохожим парам был основан на следующей сопоставительной потере
(contrastive loss) [CHL05]:
ℒ(θ; xi, xj) = 𝕀(yi = yj)d(xi, xj)2 + 𝕀(yi ¹ yj)[m - d(xi, xj)]2+,

(16.10)

где [z]+ = max(0, z) – кусочно-линейная потеря, а m > 0 – параметр, опреде‑
ляющий зазор. Интуитивно понятно, что мы хотим, чтобы положительные
пары (с одинаковыми метками) были близки, а отрицательные (с разными
метками) находились друг от друга на расстоянии, большем минимального
зазора. Эта функция потерь минимизируется на множестве всех пар приме‑
ров. Наивный алгоритм занимает время O(N2), но в разделе 16.2.5 описано,
как его можно ускорить.
Отметим, что мы используем один и тот же экстрактор признаков f(·, θ) для
обоих входов xi и xj при вычислении расстояния, как показано на рис. 16.5a.
Поэтому получающаяся сеть называется сиамскойсетью (отсылка к сиам‑
ским близнецам).
Сиамская сеть

Триплетная сеть

Минимизировать
расстояние

Максимизировать
расстояние

Похожие изображения

Непохожие изображения

Рис. 16.5  Сети для глубокого обучения метрики.
(a) Сиамская сеть. (b) Триплетная сеть. На основе рис. 5 из работы [KB19]

16.2.4.2. Триплетная потеря
Недостатком всех попарных потерь является то, что оптимизация положи‑
тельных и отрицательных пар производится независимо, из-за чего их абсо‑
лютные величины могут оказаться несравнимыми. Решение – использовать
триплетную потерю [SKP15], определенную следующим образом. Для каж‑
дого примера i (называемого якорем) находим похожий (положительный)

Tlgm: @it_boooks

664  Методы на основе эталонов
пример xi+ и непохожий (отрицательный) пример xi–. Затем минимизируем
следующую потерю, усредненную по всем тройкам:
ℒ(θ; xi, xi+, xi–) = [dθ(xi, xi+)2 - dθ(xi, xi–)2 + m]+.

(16.11)

Интуитивно это означает, что мы хотим, чтобы расстояние от якоря до по‑
ложительного примера было меньше (на величину некоторого безопасного
зазора m), чем до отрицательного. Триплетную потерю можно вычислить
с помощью триплетной сети, как показано на рис. 16.5b.
Наивная минимизация триплетной потери занимает время O(N 3). На
практике мы вычисляем потерю на мини-пакете (выбранном так, чтобы для
якорной точки, которая часто является первым элементом мини-пакета, су‑
ществовал по крайней мере один похожий и один непохожий пример). Тем
не менее метод может работать медленно. Некоторые способы ускорения мы
обсудим в разделе 16.2.5.

16.2.4.3. N-парная потеря
У триплетной потери есть одна проблема – каждый якорь сравнивается толь‑
ко с одним отрицательным примером за раз. Из-за этого обучающий сигнал
может оказаться недостаточно сильным. Одно из решений – создать задачу
многоклассовой классификации, в которой для каждого якоря имеется набор
из N - 1 отрицательных и одного положительного примера. Это называется
N-парной потерей [Soh16]. Формально для каждого набора определяется
следующая потеря:
(16.12)
(16.13)
Отметим, что N-парная потеря – то же самое, что потеря InfoNCE в статье
о сопоставительном предиктивном кодировании (CPC) [OLV18]. В работе
[Che+20a] предложена версия, в которой степень сходства масштабируется
с помощью члена температуры; авторы назвали ее потерей NT-Xent (nor‑
malized temperature-scaled cross-entropy). Температурный параметр можно
рассматривать как масштабирование радиуса гиперсферы, на поверхности
которое расположены данные.
При N = 2 эта потеря сводится к логистической:
(16.14)
Сравните с потерей с зазором, используемой в триплетном обучении (при
m = 1):
(16.15)

Tlgm: @it_boooks

Обучение метрик  665

Сравнение обеих функций представлено на рис. 4.2.

16.2.5. Ускорение оптимизации потери
ранжирования
Главный недостаток потери ранжирования – стоимость вычисления функ‑
ции потерь, O(N 2) или O(N 3), из-за необходимости сравнивать все пары или
тройки примеров. В этом разделе мы обсудим различные способы ускорения
работы.

16.2.5.1. Добычные методы
Важнейшее наблюдение заключается в том, что не нужно рассматривать все
отрицательные примеры для каждого якоря, потому что большинство из
них неинформативно (т. е. дают нулевую потерю). Вместо этого можно со‑
средоточиться на тех отрицательных примерах, которые ближе к якорю, чем
ближайший положительный пример. Они называются твердо отрицательными и особенно полезны для ускорения вычисления триплетной потери.
Формально если a – якорная точка, а p – ближайший к ней положительный
пример, то говорят, что пример n твердо отрицателен (для a), если d(xa, xn) <
d(xa, xp) и yn ¹ ya. Иногда у якоря может не быть ни одного твердо отрицатель‑
ного примера. Поэтому пул кандидатов можно расширить, включив в него
полутвердо отрицательные примеры, для которых
d(xa, xp) < d(xa, xn) < d(xa, xp) + m,

(16.16)

где m > 0 – параметр зазора, см. иллюстрацию на рис. 16.6a. Эта техника ис‑
пользуется в модели Google FaceNet [SKP15], которая обучает функцию по‑
гружения для лиц таким образом, что похожие лица группируются в кластер,
которому пользователь может дать имя.
На практике твердо отрицательные примеры обычно выбираются внутри
мини-пакета. Поэтому необходимо увеличить размер пакета, чтобы обе‑
спечить достаточное разнообразие. Или же можно организовать отдельный
процесс, который непрерывно обновляет множество потенциальных твердо
отрицательных примеров по мере того, как в ходе обучения изменяется метрика.

16.2.5.2. Методы на основе представителей
Минимизация триплетной потери обходится дорого даже в случае добычи
отрицательных примеров (раздел 16.2.5.1). В идеале хотелось бы найти ме‑
тод, работающий за время O(N) как функция потерь при классификации.
Один такой метод, предложенный в работе [MA+17], измеряет расстояние
между каждым якорем и множеством P представителей каждого класса, а не
напрямую расстояние от якоря до примеров. Представителей нужно обнов‑
лять в онлайновом режиме по мере эволюции метрики в процессе обучения.
Вся процедура занимает время O(NP2), где P ~ C.

Tlgm: @it_boooks

666  Методы на основе эталонов
(a)

p

n3

Мягкий отрицательный пример: d(a,p) + m < d(a,n3)

n2

Полутвердо отрицательный пример: d(a,p) < d(a,n2) < d(a,p) + m

n1
a

Твердо отрицательный пример: d(a,n1) < d(a,p)

Зазор m
(b)

Триплетная потеря

Класс 1
Класс 2

Предложенная верхняя граница
триплетной потери

подлежащее минимизации расстояние
подлежащее минимизации расстояние

Центроид класса 1
Центроид класса 2

Рис. 16.6  Ускорение минимизации триплетной потери. (a) Твердые
и мягкие отрицательные примеры. Здесь a – якорная точка, p – положительная точка и имеется ni отрицательных точек. На основе рис. 4
из работы [KB19]. (b) Вычисление стандартной триплетной потери потребовало бы 8´3´4 = 96 операций, тогда как для вычисления потери
на основе представителей (с одним представителем на класс) нужно
всего 8´2 = 16 вычислений. На основе рис. 1 из работы [Do+19]. Печатается с разрешения Густаво Чернейро

Недавно в работе [Qia+19] было предложено представлять каждый класс
несколькими прототипами. При этом используемая мягкая триплетная потеря все равно обеспечивает линейную временную сложность.

16.2.5.3. Оптимизация верхней границы
В работе [Do+19] предложен простой и быстрый метод оптимизации триплет‑
ной потери. Основная идея – определить по одному фиксированному пред‑
ставителю или центроиду в каждом классе, а затем использовать расстояние
до представителя как верхнюю границу триплетной потери.
Формально рассмотрим упрощенную форму триплетной потери, без за‑
зора:
ℓt(xi, xj, xk) = ||êi - êj|| - ||êi - êk||,

(16.17)

||êi - êj|| £ ||êi - cyi || + ||êj - cyi ||;

(16.18)

||êi - êk|| ³ ||êi - cyk || - ||êk - cyk ||.

(16.19)

где êi = êθ(xi) и т. д. Согласно неравенству треугольника

Tlgm: @it_boooks

Обучение метрик  667

Отсюда
ℓt(xi, xj, xk) £ ℓu(xi, xj, xk)

||êi - cyi || - ||êi - cyk || + ||êj - cyi || + ||êk - cyk||. (16.20)

Мы можем использовать этот факт для вывода практически вычислимой
верхней границы триплетной потери следующим образом:
(16.21)

(16.22)

где C ¢ = 3(C - 1)

– постоянная. Ясно, что ℒu можно вычислить за

время O(NC), см. иллюстрацию на рис. 16.6b.

В работе [Do+19] показано, что 0 £ ℒt - ℒu £

, где K – постоянная, за-

висящая от разброса центроидов. Чтобы граница была точной, центроиды
должны находиться как можно дальше друг от друга, а расстояния между
ними должны быть максимально похожи. Простой способ обеспечить вы‑
полнение этих условий – определить унитарные векторы cm, по одному для
каждого класса. Эти векторы уже имеют единичную норму и взаимно ор‑
тогональны. Расстояние между каждой парой центроидов равно 2, так что
верхняя оценка довольно точная.
Недостаток этого подхода в том, что размерность слоя погружения пред‑
полагается равной L = C. Решить эту проблему можно двумя способами. Вопервых, после обучения можно добавить слой линейного проецирования,
который отобразит C в L ¹ C, или же можно взять предпоследний слой сети
погружения. Второй подход – выбрать много точек на L-мерной единич‑
ной гиперсфере (для чего достаточно произвести выборку из стандартного
нормального распределения, а затем нормировать ее [Mar72]), после чего
выполнить кластеризацию методом K средних (раздел 21.3) с K = C. В экспе‑
риментах, описанных в работе [Do+19], оба подхода дали схожие результаты.
Интересно, что в работе [Rot+20] показано, что увеличение πintra /πinter при‑
водит к повышению качества решения различных последующих задач поис‑
ка. Здесь
(16.23)
– среднее внутриклассовое расстояние, а
(16.24)

Tlgm: @it_boooks

668  Методы на основе эталонов
– среднее межклассовое расстояние, где μc = (1/Zc)åi:yi =c êi – среднее погру‑
жение для примеров из класса c. Это наводит на мысль, что нужно не только
разносить центроиды подальше друг от друга (чтобы максимизировать чис‑
литель), но и не позволять примерам находиться слишком близко к своим
центроидам (чтобы минимизировать знаменатель); этот последний член
в методе из работы [Do+19] не отражается.

16.2.6. Другие приемы глубокого обучения
метрики
Помимо методов ускорения, описанных в разделе 16.2.5, есть много других
деталей, о которых нужно позаботиться, чтобы обеспечить приемлемое ка‑
чество DML. Многие из них обсуждаются в работах [MBL20; Rot+20]. Здесь мы
лишь кратко упомянем о некоторых.
Важный вопрос – как создаются мини-пакеты. В задачах классификации
(по крайней мере, со сбалансированными классами) случайной выборки
примеров из обучающего набора как правило достаточно. Но в случае DML
нужно гарантировать, что для каждого примера в мини-пакете существуют
другие похожие и непохожие на него примеры. Один из подходов такого
рода – добыча твердых примеров (раздел 16.2.5.1). Другая идея – приме‑
нить методы ядерных множеств (coreset) к ранее обученным погружениям
и таким образом выбирать разнообразный пакет на каждом шаге [Sin+20].
Однако в работе [Rot+20] показано, что следующая простая стратегия также
хорошо работает при создании каждого пакета: выбрать B/n классов, а затем
случайным образом выбрать Nc примеров из каждого класса, где B – размер
пакета, а Nc = 2 – настроечный параметр.
Еще одна важная тема – как избежать переобучения. Поскольку большин‑
ство наборов данных, упоминаемых в литературе по DML, малы, стало стан‑
дартной практикой использовать классификатор изображений, например
GoogLeNet (раздел 14.3.3) или ResNet (раздел 14.3.4), предобученные на набо‑
ре данных ImageNet, а затем дообучить модели с применением DML-потери.
(Подробнее о таком способе переноса обучения см. раздел 19.2.) Кроме того,
принято использовать приращение данных (см. раздел 19.1). (На самом деле
в некоторых методах самообучения приращение данных – единственный
способ создать похожие пары.)
В работе [ZLZ20] предложено использовать сферическое ограничение
на погружение (spherical embedding constraint – SEC); это дополнительный
регуляризационный член на уровне пакета, который поощряет одинаковую
норму всех примеров. То есть регуляризатор – просто эмпирическая диспер‑
сия норм (ненормированных) погружений в данном пакете, см. иллюстрацию
на рис. 16.7. Этот регуляризатор можно прибавить к любой из существующих
DML-потерь, рассчитывая на умеренное улучшение скорости и устойчивости
обучения, а равно окончательного качества – по аналогии с использованием
пакетной нормировки (раздел 14.2.4.1).

Tlgm: @it_boooks

Ядерные оценки плотности  669

Обучение
со сферическим
ограничением
на погружение
(SEC)

Средняя
норма

Средняя
норма

Погружения трех разных классов

Рис. 16.7  Добавление сферического ограничения на погружение
в метод глубокого обучения метрики. Печатается с разрешения Динай Чжана

16.3. ядерные оценки плотности
В этом разделе мы рассмотрим одну из форм непараметрического оцени‑
вания плотности – ядерную оценку плотности (kernel density estimation –
KDE). Это порождающая модель, потому что определяет распределение ве‑
роятностей p(x), которое можно вычислять поточечно и из которого можно
производить выборку для порождения новых данных.

16.3.1. Ядра плотности
Прежде чем переходить к объяснению KDE, нужно определить, что такое
«ядро». В машинном обучении и статистике у этого термина есть несколько
значений1. В этом разделе мы будет иметь дело с так называемым ядром
плотности. Это функция 𝒦: ℝ ® ℝ+ такая, что ò 𝒦(x)dx = 1 и 𝒦(-x) = 𝒦(x).
Из последнего свойства симметрии следует, что
(16.25)
Простой пример дает прямоугольное ядро (boxcar kernel), представляю‑
щее собой равномерное распределение в единичном интервале с центром
в начале координат:

1

𝒦(x)

0.5𝕀(|x| £ 1).

(16.26)

На эту тему есть хорошая статья в блоге по адресу https://francisbach.com/cursedkernels/.

Tlgm: @it_boooks

670  Методы на основе эталонов
Другой пример – гауссово ядро:
(16.27)
Ширину ядра можно регулировать с помощью параметра полосы пропускания h:
(16.28)
Для обобщения на векторные входные данные можно определить ядро
в виде радиально-базисной функции (radial basis function – RBF):
𝒦h(x)/𝒦h(||x||).

(16.29)

В случае гауссового ядра оно принимает вид:
(16.30)

Гауссовы ядра популярны, но у них неограниченный носитель. Некоторые
альтернативные ядра с компактным носителем (вычислительно более бы‑
стрые) перечислены в табл. 16.1. Графики эти ядерных функций показаны
на рис. 16.8.
Таблица 16.1. Перечень некоторых популярных одномерных нормированных ядер.
Значение 1 в столбце «Компактное» означает, что функция отлична от нуля
только в конечной области. Значение 1 в столбце «Гладкое» означает, что функция
дифференцируема на всем своем носителе. Значение 1 в столбце «Границы»
означает, что функция дифференцируема также на границах носителя
Название

Определение

Компактное

Гладкое

Границы

Гауссово

0

1

1

Прямоугольное

1

0

0

Епанечникова

1

1

0

Трехкубовое

1

1

1

16.3.2. Оконная оценка плотности Парцена
Чтобы объяснить, как ядра используются для определения непараметриче‑
ской оценки плотности, вспомним модель гауссовой смеси из раздела 3.5.1.
В предположении фиксированной сферической гауссовой ковариации и рав‑
номерной смеси весов имеем

Tlgm: @it_boooks

Ядерные оценки плотности  671

(16.31)

Рис. 16.8  Сравнение некоторых популярных нормированных ядер.
Построено программой по адресу probml.ai/book1/16.8

Проблема заключается в том, что эта модель требует задания количества
кластеров K, а также их местоположений μk. Вместо того чтобы оценивать
эти параметры, мы можем сделать центром кластера каждую точку данных.
В таком случае модель принимает вид:
(16.32)
Формулу (16.32) можно обобщить, написав
(16.33)
где 𝒦h – ядро плотности. Это называется оконной оценкой плотности Парцена, или ядерной оценкой плотности (KDE).
Преимущество перед параметрической моделью в том, что не требуется
никакого обучения (кроме выбора h, обсуждаемого в разделе 16.3.3) и нет
нужды выбирать число центров кластеров. А недостаток в том, что модель
потребляет очень много памяти (необходимо хранить все данные) и много
времени для обсчета.
На рис. 16.9 показана KDE в одномерном случае для двух разных ядер.
В верхнем ряду мы видим прямоугольное ядро; результирующая модель
просто подсчитывает, сколько точек оказалось в интервале длины h вокруг
каждой точки xn, так что получается кусочно-постоянная плотность. В ниж‑
нем ряду показано гауссово ядро, при котором плотность получается более
гладкой.

Tlgm: @it_boooks

672  Методы на основе эталонов

(a)

(b)

(c)

(d)

Рис. 16.9  Непараметрическая одномерная оценка плотности (Парцена) по
6 точкам, обозначенным крестиками. Верхний ряд: равномерное ядро. Нижний
ряд: гауссово ядро. Левый столбец: полоса пропускания h = 1. Правый столбец: полоса пропускания h = 2. На основе статьи http://en.wikipedia.org/wiki/Kernel_density_ estimation. Построено программой по адресу figures.probml.ai/book1/16.9

16.3.3. Как выбирать полосу пропускания
На рис. 16.9 мы видим, что полоса пропускания h оказывает большое влия‑
ние на обученное распределение. Можно считать, что это способ управления
сложностью модели.
В случае одномерных данных, когда «истинные» данные, порождающие
распределение, предполагаются гауссовыми, можно показать [BA97a], что
оптимальная полоса пропускания для гауссова ядра (с точки зрения мини‑
мизации частотного риска) равна h = σ(4/3N)1/5. Робастную аппроксимацию
стандартного отклонения можно найти, вычислив сначала медианное абсолютное отклонение (MAD), median(|x - median(x)|), а затем воспользовав‑
шись тем, что σ̂ = 1.4826 MAD. В D-мерном случае можно оценить hd отдельно
для каждого измерения, а затем положить h = (ÕDd=1 hd)1/D.

16.3.4. От KDE к KNN-классификации
В разделе 16.1 мы обсуждали классификатор по K ближайшим соседям как
эвристический подход к классификации. Интересно, что его можно вывести
как порождающий классификатор, в котором условные плотности классов

Tlgm: @it_boooks

Ядерные оценки плотности  673

p(x|y = c) моделируются с применением KDE. Вместо того чтобы использовать
фиксированную полосу пропускания и подсчитывать, сколько точек данных
попало в гиперкуб с центром в некоторой точке данных, мы разрешим раз‑
ные полосы пропускания, или объемы для каждой точки. Именно, будем «на‑
дувать» куб вокруг точки x, пока в него не попадет K точек данных неважно
каких классов. Это называется баллонной оценкой ядерной плотности
[TS92]. Пусть результирующий куб имеет объем V(x) (раньше он был равен
hD) и пусть в нем оказалось Nc(x) примеров из класса c. Тогда условную плот‑
ность класса можно оценить следующим образом:
(16.34)
где Nc – общее число примеров из класса c во всем наборе данных. Если
в качестве априорного взять распределение классов p(y = c) = Nc /N, то апо‑
стериорное распределение будет иметь вид:

(16.35)
где мы воспользовались тем фактом, что åc Nc(x) = K, поскольку мы выбирали
куб так, чтобы вокруг каждой точки было K точек (без учета класса). Это то
же самое, что формула (16.1).

16.3.5. Ядерная регрессия
KDE можно использовать не только для порождающих классификаторов (см.
раздел 16.1), но и для порождающих моделей регрессии.

16.3.5.1. Оценка среднего Надарая–Ватсона
В случае регрессии наша цель – вычислить условное математическое ожи‑
дание:
(16.36)
Если в качестве p(y, x|𝒟) взять многомерное нормальное распределение, то
получится результат, эквивалентный линейной регрессии, как было показано
в разделе 11.2.3.5. Однако предположение о гауссовости p(y, x|𝒟) несколько
ограничительно. Мы можем следующим образом воспользоваться KDE, что‑
бы более точно аппроксимировать совместную плотность p(y, x|𝒟):

Tlgm: @it_boooks

674  Методы на основе эталонов
(16.37)
Отсюда

(16.38)

Числитель можно упростить, воспользовавшись тем, что ò y𝒦h(y - yn)dy = yn
(это следует из формулы (16.25)). Чтобы упростить знаменатель, заметим, что
интеграл ядерной плотности равен 1, т. е.:
(16.39)

(16.40)
Как видим, предсказания – это просто взвешенная сумма выходов в об‑
учающих точках, а веса зависят от степени похожести x на сохраненные
обучающие точки. Этот метод называется ядерной регрессией, ядерным
сглаживанием или моделью Надарая–Ватсона (Н-В). На рис. 16.10 приве‑
ден пример в случае использования гауссова ядра.

Рис. 16.10  Пример одномерной ядерной регрессии
с использованием гауссова ядра.
Построено программой по адресу figures.probml.ai/book1/16.10

В разделе 17.2.3 мы обсудим связь между ядерной регрессией и регрессией
на основе гауссовых процессов.

Tlgm: @it_boooks

Ядерные оценки плотности  675

16.3.5.2. Оценка дисперсии
Иногда полезно вычислить прогнозную дисперсию, а не только прогнозное
среднее. Это можно сделать, заметим, что
𝕍[y|x, 𝒟] = 𝔼[y2|x, 𝒟] - μ(x)2,

(16.41)

где μ(x) = 𝔼[y|x, 𝒟] – оценка Н-В. Взяв гауссово ядро с дисперсией σ2, мы смо‑
жем вычислить 𝔼[y2|x, 𝒟] следующим образом:

(16.42)

(16.43)
где мы воспользовались тем фактом, что
(16.44)
Объединив (16.43) с (16.41), получаем
(16.45)
Это совпадает с формулой 8 из работы [BA10] (с точностью до первого
члена σ2).

16.3.5.3. Локально взвешенная регрессия
Опустив нормировочный член в формуле (16.39), получим
(16.46)
Это просто взвешенная сумма наблюдаемых откликов, причем веса зави‑
сят от степени похожести тестового входа x на обучающие точки xn.
Вместо того чтобы просто интерполировать хранимые отклики yn, мы можем
обучить локально линейную модель в окрестности каждой обучающей точки:
(16.47)
где ϕ(x) = [1, x]. Это называется локально линейной регрессией (locally
linear regression – LRR) или сглаживанием локально-взвешенной диаграммы рассеяния (locally-weighted scatterplot smoothing), употребляются
также акронимы LOWESS или LOESS [CD88]. Она часто используется для
аннотирования диаграмм рассеяния линиями локальных трендов.

Глава

17

Tlgm: @it_boooks

Ядерные методы*
В этой главе мы рассмотрим непараметрические методы регрессии и клас‑
сификации. Они не предполагают фиксированной параметрической формы
прогнозной функции, а пытаются оценить самую функцию (а не ее параме‑
тры) непосредственно по данным. Основная идея заключается в том, что
если мы наблюдаем функцию в фиксированном множестве N точек, а именно
yn = f(xn), n = 1 … N, где f – неизвестная функция, то для предсказания значе‑
ния функции в новой точке x∗ нужно просто посмотреть, насколько x∗ похожа
на каждую из N обучающих точек, {xn}, и тогда можно будет предсказать f(x∗)
в виде взвешенной линейной комбинации значений {f(xn)}. Таким образом,
нам, возможно, придется «запомнить» весь обучающий набор 𝒟 = {(xn, yn)},
чтобы делать предсказания на этапе тестирования – мы не сможем «сжать»
𝒟 в вектор параметров фиксированного размера.
Веса, используемые для предсказания, определяются сходством между x∗
и каждым xn, а это сходство вычисляется с помощью специальной ядерной
функции 𝒦(xn, x∗) ³ 0, о которой мы поговорим в разделе 17.1. Этот подход
напоминает RBF-сети (раздел 13.6.1), только в качестве «якорей» использу‑
ются сами точки xn, а не обученные центроиды μn.
В разделе 17.2 мы обсудим подход на основе гауссовых процессов, по‑
зволяющий использовать ядро для определения априорного распределения
функций, которое можно обновлять с учетом имеющихся данных с целью по‑
лучения апостериорного распределения. Альтернативно можно использовать
одно и то же ядро в методе опорных векторов, который вычисляет оценку
MAP функции (см. раздел 17.3).

17.1. ядра мерсера
Ключ к непараметрическим методам – способ кодирования априорных зна‑
ний о сходстве двух входных векторов. Если мы знаем, что xi похож на xj, то
можем поощрить модель к тому, чтобы предсказанные выходы f(xi) и f(xj)
тоже были похожи.
Для определения сходства введем понятие ядерной функции. Слово
«ядро» имеет много значений в математике, например: ядра плотности (раз‑

Tlgm: @it_boooks

Ядра Мерсера  677

дел 16.3.1), переходные ядра марковской цепи (раздел 3.6.1.2) и сверточные
ядра (раздел 14.1). Здесь мы рассматриваем ядро Мерсера, называемое так‑
же положительно определенным ядром. Это произвольная симметричная
функция 𝒦 : 𝒳 ´ 𝒳 ® ℝ+ такая, что
(17.1)

для любого множества N (различных) точек xi Î 𝒳 и любого набора чисел
ci Î ℝ. (Предполагается, что 𝒦(xi, xj) > 0, так что равенство в неравенстве
выше достигается только тогда, когда ci = 0 для всех i.)
Есть еще один способ интерпретировать это условие. Для заданного мно‑
жества N точек определим матрицу Грама размера N´N и будем рассматри‑
вать ее как матрицу сходства:
(17.2)
𝒦 является ядром Мерсера тогда и только тогда, когда матрица Грама по‑
ложительно определена для любого множества (различных) входов {xi}Ni=1.
Для вещественных входов чаще всего используется квадратично-экспоненциальное ядро (SE-ядро), называемое также экспоненциально-квадратичным, гауссовым или RBF-ядром. Оно определяется следующим об‑
разом:
(17.3)
Здесь 𝓁 – линейный масштаб ядра, т. е. расстояние, на котором, как мы
ожидаем, различия играют роль. Он также называется полосой пропускания. RBF-ядро измеряет сходство двух векторов в ℝD с помощью (масшта‑
бированного) евклидова расстояния. В разделе 17.1.2 мы обсудим еще не‑
сколько ядер.
В разделе 17.2 мы покажем, как использовать ядра для определения апри‑
орных и апостериорных распределений функций. Основная идея такова:
если 𝒦(x, x¢) велико, т. е. входы похожи, то мы ожидаем, что будут похожи
и выходы функции, т. е. f(x) » f(x¢). Точнее, информация, полученная о f(x)
в процессе обучения, помогает предсказать f(x¢) для всех x¢, коррелирующих
с x, т. е. для тех, для которых 𝒦(x, x¢) велико.
В разделе 17.3 будет показано, как использовать ядра для обобщения ев‑
клидова расстояния, чтобы можно было использовать геометрические мето‑
ды, например линейный дискриминантный анализ в пространстве неявных
признаков, а не в пространстве входов.

Tlgm: @it_boooks

678  Ядерные методы*

17.1.1. Теорема Мерсера
Напомним (см. раздел 7.4), что любую положительно определенную матрицу
K можно представить в виде спектрального разложения K = U⟙ΛU, где Λ –
диагональная матрица, содержащая собственные значения λi > 0, и U – матрица, составленная из собственных векторов. Теперь рассмотрим элемент
(i, j) матрицы K:
(17.4)
где U:i – i-й столбец U. Положив ϕ(xi) = Λ½U:i, мы сможем записать:
(17.5)
Таким образом, элементы ядерной матрицы можно найти, вычислив ска‑
лярное произведение некоторых векторов признаков, неявно определяемых
собственными векторами ядерной матрицы. Эту идею можно обобщить, при‑
менив к ядерным функциям, а не только к ядерным матрицам; соответству‑
ющий результат называется теоремой Мерсера.
Например, рассмотрим квадратичное ядро 𝒦(x, x¢) = 〈x, x¢〉2. В двумерном
случае имеем
𝒦(x, x¢) = (x1x¢1 + x2x¢2)2 = x12(x¢1)2 + 2x1x2x¢1x¢2 + x22(x¢2)2.

(17.6)

Это можно записать в виде 𝒦(x, x¢) = ϕ(x)⟙ϕ(x), если определить ϕ(x1, x2) =
2x1x2, x22] Î ℝ3. Таким образом, мы погружаем двумерные входы x в трех‑
мерное пространство признаков ϕ(x).
Теперь рассмотрим RBF-ядро. В этом случае соответствующее представле‑
ние признаков бесконечномерно (детали см. в разделе 17.2.9.3). Однако ядер‑
ные функции позволяют избежать работы с бесконечномерными векторами.

[x12,

17.1.2. Некоторые популярные ядра Мерсера
В следующих разделах описаны некоторые популярные ядра Мерсера. До‑
полнительные сведения можно найти в работе [Wil14] и по адресу https://
www.cs.toronto.edu/~duvenaud/cookbook/.

17.1.2.1. Стационарные ядра для вещественных векторов
Для вещественных входов, 𝒳 = ℝD, принято использовать стационарные
ядра, т. е. функции вида 𝒦(x, x¢) = 𝒦(||x - x¢||); это значит, что значение за‑
висит только от разности входов. RBF-ядро стационарное. Другие примеры
приводятся ниже.

Ядро ARD
RBF-ядро можно обобщить, заменив евклидово расстояние расстоянием Ма‑
халанобиса:

Tlgm: @it_boooks

Ядра Мерсера  679

(17.7)
где r = x - x¢. Если матрица Σ диагональная, то эту формулу можно пере‑
писать в виде
(17.8)
где
(17.9)
Величину σ2 можно интерпретировать как полную дисперсию, а 𝓁d – как
характеристический линейный масштаб в направлении измерения d. Если
d – нерелевантное входное измерение, то можно положить 𝓁d = ¥, тогда оно
будет проигнорировано. Это называется автоматическим определением
релевантности (automatic relevancy determination – ARD) (раздел 11.7.7).
Поэтому соответствующее ядро называется ядром ARD (см. рис. 17.1, где
показаны две двумерные функции, выбранные из гауссова процесса с при‑
менением такого априорного распределения).

(a)

(b)

Рис. 17.1  Функции, выбранные из гауссова процесса, с применением ядра
ARD. (a) 𝓁1 = 𝓁2 = 1. Оба измерения дают вклад в отклик. (b) 𝓁1 = 1, 𝓁2 = 5. Второе
измерение практически игнорируется. На основе рис. 5.1 из работы [RW06]. Построено программой по адресу figures.probml.ai/book1/17.1

Ядра Матерна
Ядро SE дает бесконечно дифференцируемые, а значит, очень гладкие функ‑
ции. Во многих приложениях предпочтительнее использовать ядро Матерна,

Tlgm: @it_boooks

680  Ядерные методы*
которое дает функции «погрубее», способные моделировать локальные «из‑
вивы», не прибегая к слишком мелкому линейному масштабу.
Ядро Матерна имеет вид:
(17.10)
где Kν – модифицированная функция Бесселя, а 𝓁 – линейный масштаб. Функ‑
ции, выбранные из этого гауссова процесса, являются k раз дифференцируе‑
мыми тогда и только тогда, когда ν > k. При ν ® ¥ это ядро стремится к ядру SE.
Для ν Î {1/2, 3/2, 5/2} функция упрощается следующим образом:
(17.11)
(17.12)
(17.13)
Значение ν = 1/2 соответствует процессу Орнстейна–Уленбека, который
описывает скорость частицы, совершающей броуновское движение. Соответ‑
ствующая функция непрерывна, но не дифференцируема, а потому сильно
«изломана» (см. иллюстрацию на рис. 17.2b).

(a)

(b)

Рис. 17.2  Функции, выбранные из гауссова процесса,
с применением ядра Матерна. (a) ν = 5/2. (b) ν = 1/2.
Построено программой по адресу figures.probml.ai/book1/17.2

Периодические ядра
Периодическое ядро улавливает повторяющуюся структуру и имеет вид:
(17.14)

Tlgm: @it_boooks

Ядра Мерсера  681

где p – период (см. иллюстрацию на рис. 17.3a).
С ним тесно связано косинусное ядро:
(17.15)
(см. иллюстрацию на рис. 17.3b).
Периодическое ядро

Косинусное ядро

(a)

(b)

Рис. 17.3  Функции, выбранные из гауссова процесса,
с применением стационарных периодических ядер.
Построено программой по адресу figures.probml.ai/book1/17.3

17.1.2.2. Создание новых ядер из существующих
Если имеются два ядра 𝒦1(x, x¢) и 𝒦2(x, x¢), то можно создать новое ядро лю‑
бым из следующих способов:
𝒦(x, x¢) = c𝒦1(x, x¢) для любой постоянной c > 0,

(17.16)

𝒦(x, x¢) = f(x)𝒦1(x, x¢)f(x¢) для любой функции f,

(17.17)

𝒦(x, x¢) = exp(𝒦1(x, x¢)),

(17.19)

𝒦(x, x¢) = q(𝒦1(x, x¢)) для любого полинома q
с неотр. коэффициентами,

𝒦(x, x¢) = x⟙Ax¢ для любой положительно полуопределенной
матрицы A.

(17.18)

(17.20)

Например, предположим, что имеется линейное ядро 𝒦(x, x¢) = xx¢. Мы
знаем, что это ядро Мерсера, потому что соответствующая матрица Грама не
что иное, как масштабированная ковариационная матрица данных. Согласно
приведенным выше правилам, полиномиальное ядро 𝒦(x, x¢) = (x⟙Ax¢)M –
тоже ядро Мерсера. Оно содержит все одночлены порядка M. Например, если
M = 2 и входные данные двумерные, то имеем
(x⟙x¢)2 = (x1x¢1 + x2x¢2)2 = (x1x¢1)2 + (x2x2)2 + (x1x¢1)(x2x¢2).

(17.21)

Tlgm: @it_boooks

682  Ядерные методы*
Это утверждение можно обобщить на полином, содержащий все члены
степени не выше M, взяв ядро 𝒦(x, x¢) = (x⟙Ax¢ + c)M. Например, если M = 2
и входные данные двумерные, то имеем
(x⟙x¢ + 1)2 = (x1x¢1)2 + (x1x¢1)(x2x¢2) + (x1x¢1)
+ (x2x2)(x1x¢1) + (x2x¢2)2 + (x2x¢2)
+ (x1x¢1) + (x2x¢2) + 1.

(17.22)

Применив эти правила, можно также убедиться, что гауссово ядро является
ядром Мерсера. Действительно, заметим, что
||x - x¢||2 = x⟙x + (x¢)⟙x¢ - 2x⟙x¢,

(17.23)

и, следовательно,
𝒦(x, x¢) = exp(-||x - x¢||2/2σ2)
= exp(-x⟙x/2σ2)exp(x⟙x¢/σ2)exp(-(x¢)⟙x¢/2σ2)

(17.24)

является допустимым ядром.

17.1.2.3. Комбинирование ядер с помощью сложения
и умножения
Ядра можно также складывать и умножать:
𝒦(x, x¢) = 𝒦1(x, x¢) + 𝒦2(x, x¢),

(17.25)

𝒦(x, x¢) = 𝒦1(x, x¢) ´ 𝒦2(x, x¢).

(17.26)

Перемножение двух положительно определенных ядер всегда дает поло‑
жительно определенное ядро. Таким образом, можно получить конъюнкцию
индивидуальных свойств ядер, как показано на рис. 17.4.
Lin×Lin

SE×Per

Lin×SE

Lin×Per

x (c x¢ = 1)

x – x¢

x (c x¢ = 1)

x (c x¢ = 1)

Квадратичные
функции

Локально
периодические

С возрастающей
вариацией

С возрастающей
амплитудой

Рис. 17.4  Примеры одномерных структур, получаемых перемножением
элементарных ядер. В верхнем ряду показаны ядра вида 𝒦(x, x¢ = 1). В нижнем ряду показаны некоторые функции, выбранные из гауссова процесса
( f |0, 𝒦). На основе рис. 2.2 из работы [Duv14]. Печатается с разрешения Давида Дювенода

Tlgm: @it_boooks

Гауссовы процессы  683

Сложение двух положительно определенных ядер тоже дает положительно
определенное ядро. Таким образом, можно получить дизъюнкцию индиви‑
дуальных свойств ядер, как показано на рис. 17.5.
Lin + Per

x (c x¢ = 1)

Периодическая
плюс тренд

SE + Per

x – x¢

Периодическая
плюс шум

SE + Lin

SE(long) + SE(long)

x (c x¢ = 1)

Линейная плюс
вариация

x – x¢

Медленная
и быстрая вариация

Рис. 17.5  Примеры одномерных структур, получаемых сложением элементарных ядер. Здесь SE(short) и SE(long) – два SE-ядра с разным линейным
масштабом. На основе рис. 2.4 из работы [Duv14]. Печатается с разрешения
Давида Дювенода

17.1.2.4. Ядра для структурированных входов
Ядра особенно полезны, когда входами являются структурированные объекты,
например строки и графы, так как зачастую выделить признаки из входов пере‑
менного размера трудно. Например, можно определить строковое ядро, кото‑
рое сравнивает строки в терминах количества общих n-грамм [Lod+02; BC17].
Можно также определить ядра на графах [KJM19]. Например, ядро случайного блуждания концептуально выполняет случайные блуждания одновре‑
менно на двух графах, а затем подсчитывает количество путей, порожденных
в обоих блужданиях. Его можно вычислить эффективно, как показано в рабо‑
те [Vis+10]. Дополнительные сведения о ядрах на графах см. в работе [KJM19].
Обзор ядер на структурированных объектах см., например, в работе [Gär03].

17.2. гауссоВы процессы
В этом разделе мы обсудим гауссовы процессы (ГП), т. е. способ опреде‑
лить распределения функций вида f : 𝒳 ® ℝ, где 𝒳 – произвольное множе‑
ство. Основное предположение заключается в том, что значения функции
на множестве M > 0 входов, f = [f(x1), …, f(xM)], имеют совместное гауссово
распределение со средним (μ = m(x1), …, m(xM)) и ковариацией Σij = 𝒦(xi, xj),
где m – средняя функция, а 𝒦 – положительно определенное ядро (ядро Мер‑
сера). Поскольку мы предполагаем, что это справедливо для любого M > 0,
значит, и для M = N + 1, когда множество содержит N обучающих точек xn
и одну тестовую точку x∗. Таким образом, мы можем вывести f(x∗) из f(x1), …,
f(xn), манипулируя совместным гауссовым распределением p(f(x1), …, f(xN),

Tlgm: @it_boooks

684  Ядерные методы*
f(x∗)), как будет объяснено ниже. Это можно также обобщить на случай, когда
наблюдаются зашумленные функции f(xn), как бывает, например, в задачах
классификации или регрессии.

17.2.1. Незашумленные наблюдения
Предположим, что наблюдается обучающее множество 𝒟 = {(xn, yn) : n = 1 … N},
где yn = f(xn) – незашумленное наблюдение функции, вычисленной в точке xn.
Если мы просим ГП предсказать f(x) для значения x, которое он уже видел, то
хотим, чтобы был возвращен ответ f(x) без всякой неопределенности. Иными
словами, ГП должен работать как интерполятор обучающих данных.
Теперь рассмотрим случай предсказания выходов для новых значений,
отсутствующих в 𝒟. Формально дано тестовое множество X∗ размера N∗´D,
и мы хотим предсказать выходы функции f∗ = [f(x1), …, f(xN∗ )]. По определе‑
нию ГП совместное распределение p(fX, f∗|X, X∗) имеет вид:
(17.27)
где μX = [m(x1), …, m(xN)], μ∗ = [m(x1*), …, m(x*N)], KX,X = 𝒦(X, X) – матрица разме‑
ра N´N, KX,∗ = 𝒦(X, X∗) – матрица размера N´N∗, а K∗,∗ = 𝒦(X∗, X∗) – матрица
размера N∗´N∗. См. иллюстрацию на рис. 17.6. По стандартным правилам
вычисления условных гауссовых распределений (раздел 3.2.3) апостериорное
распределение имеет вид:
p(f*|X*, 𝒟) = 𝒩(f*|μ*, Σ*);

μ* = m(X*) + K⟙X,*K-1
X,X(fX - m(X));

(17.29)

Σ* = K*,* - K*X,*K-1
X,XKX,*.

(17.30)

(17.28)

Рис. 17.6  Гауссов процесс для двух обучающих точек, x1 и x2, и одной тестовой точки, x∗, описываемый графовой моделью, представляющей распределение вероятностей p(y, fX |X) = 𝒩( fX |m(X), 𝒦(X))Πi p(yi |fi). Скрытые вершины fi = f(xi)
представляют значение функции в каждой точке данных. Эти скрытые вершины
соединены между собой неориентированными ребрами, образующими гауссову графовую модель; сила ребер представляет члены ковариации Σij = 𝒦(xi, xj).
Если тестовая точка x∗ похожа на обучающие точки x1 и x2, то значение скрытой
функции f∗ будет похоже на f1 и f2, а значит, предсказанный выход y∗ будет похож на обучающие значения y1 и y2

Tlgm: @it_boooks

Гауссовы процессы  685

Этот процесс показан на рис. 17.7. Слева мы видим выборку из априор‑
ного распределения p( f ), где используется RBF-ядро (раздел 17.1) и нулевая
средняя функция. Справа же приведена выборка из апостериорного рас‑
пределения p( f |𝒟). Как видим, модель идеально интерполирует обучающие
данные, а неопределенность предсказания увеличивается по мере удаления
от наблюдаемых данных.

(a)

(b)

(с)

(d)

Рис. 17.7  (a) Функции, выбранные из априорного распределения ГП с квадратично-экспоненциальным ядром. (b–d). Функции, выбранные из апостериорного распределения ГП после обусловливания 1, 2 и 4 незашумленными наблюдениями. Закрашенная область представляет 𝔼[ f(x)] ± 2std[ f(x)]. На основе
рис. 2.2 из работы [RW06]. Построено программой по адресу figures.probml.
ai/book1/17.7

17.2.2. Зашумленные наблюдения
Теперь рассмотрим случай, когда наблюдается зашумленная версия истин‑
ной функции, yn = f(xn) + εn, где εn ~ 𝒩(0, σy2). В этом случае не требуется,
чтобы модель интерполировала данные, но она должна давать результаты,
«близкие» к наблюдаемым данным. Ковариация наблюдаемых зашумленных
ответов равна
Cov[yi, yj] = Cov[ fi, fj] + Cov[εi, εj] = K(xi, xj) + σy2δij,
где δij = 𝕀(i = j). Иными словами,
Cov[y|X] = KX,X + σy2IN

K̂X,X.

(17.31)

(17.32)

Tlgm: @it_boooks

686  Ядерные методы*
Совместная плотность наблюдаемых данных и латентной незашумленной
функции на тестовых точках имеет вид:
(17.33)
Отсюда апостериорная прогнозная плотность на множестве тестовых то‑
чек X∗ равна
p( f*|𝒟, X*) = 𝒩( f*|μ*|X, Σ*|X),

(17.34)

μ*|X = μ* + K⟙X,*K̂-1
X,X(y - μX),

(17.35)

Σ*|X = K*,* - K⟙X,*K̂-1
X,X KX,*.

(17.36)

Если имеется только одна тестовая точка, то это выражение упрощается:

-1
p( f*|𝒟, x*) = 𝒩(f*|m* + k*⟙ K̂-1
X,X(y - μX), k** - k* K̂ X,X k*),

(17.37)

где k∗ = [𝒦(x∗, x1), …, 𝒦(x∗, xN)] и k∗∗ = 𝒦(x∗, x∗). Если средняя функция равна
нулю, то апостериорное среднее можно переписать в виде
(17.38)
Это совпадает с предсказаниями ядерной гребневой регрессии (17.108).

17.2.3. Сравнение с ядерной регрессией
В разделе 16.3.5 мы обсуждали ядерную регрессию – порождающий подход
к регрессии, при котором мы аппроксимируем p(y, x) с помощью ядерной
оценки плотности. В частности, формула (16.39) дает
(17.39)

(17.40)
Это очень похоже на формулу (17.38). Однако существует несколько важ‑
ных отличий. Во-первых, в ГП используется положительное определенное
ядро (Мерсера), а не ядро плотности; ядра Мерсера можно определить на
структурированных объектах, например строках и графах, а с ядрами плот‑
ности такое проделать труднее. Во-вторых, ГП – это интерполятор (по край‑
ней мере, при σ2 = 0), поэтому 𝔼[y|xn, 𝒟] = yn. Напротив, ядерная регрессия
не является интерполятором (хотя и может быть сделана таковым путем

Tlgm: @it_boooks

Гауссовы процессы  687

итеративной аппроксимации невязок, как в работе [KJ16]). В-третьих, ГП –
это байесовский метод, предполагающий, что для оценки гиперпараметров
(ядра) максимизируется маргинальное правдоподобие, тогда как в случае
ядерной регрессии мы должны использовать перекрестную проверку для
оценки параметров ядра, например полосы пропускания. В-четвертых, вы‑
числение весов wn для ядерной регрессии занимает время O(N), где N = |𝒟|,
а вычисление весов αn для ГП-регрессии – время O(N 3) (хотя существуют при‑
ближенные методы, позволяющие сократить его до O(NM 2), и мы обсудим их
в разделе 17.2.9).

17.2.4. Пространство весов и пространство
функций
В этом разделе мы покажем, что байесовская линейная регрессия является
частным случаем ГП.
Рассмотрим модель линейной регрессии y = f(x) + ε, где f(x) = w ⟙ϕ(x)
и ε ~ 𝒩(0, σy2). Если взять гауссово априорное распределение 𝒩(w|0, Σw), то
апостериорное распределение имеет вид (см. вывод в разделе 11.7.2):
(17.41)
где Φ – матрица плана размера N´D и
A = σy-2Φ⟙Φ + Σw-1.

(17.42)

Поэтому апостериорное прогнозное распределение для f∗ = f(x∗) имеет
вид:
(17.43)
где ϕ∗ = ϕ(x∗). Это представление проблемы вывода и предсказания в пространстве весов.
Теперь мы покажем, что это эквивалентно предсказаниям, сделанным ГП
с использованием ядра вида 𝒦(x, x¢) = ϕ(x)⟙Σw ϕ(x¢). Чтобы убедиться в этом,
положим K = ΦΣwΦ⟙, k∗ = ΦΣw ϕ∗ и k∗∗ = ϕ*⟙Σw ϕ∗. Пользуясь этими обозна‑
чениями и леммой об обращении матрицы, мы можем переписать (17.43)
следующим образом:
p(f*|𝒟, x*) = 𝒩( f*|μ*|X, Σ*|X),

(17.44)

μ*|X = ϕ*⟙Σw ϕ⟙(K + σy2 I)-1y = k*⟙K̂-1
X,X y,

(17.45)

Σ*|X = ϕ*⟙Σw ϕ* - ϕ*⟙ΣwΦ⟙(K + σy2 I)-1ΦΣwϕ* = k** - k*⟙ K̂-1
X,X k*,

(17.46)

что совпадает с формулой (17.37), если положить m(x) = 0. (Отразить ненуле‑
вое среднее можно, прибавив к ϕ(x) постоянный признак, равный 1.)

Tlgm: @it_boooks

688  Ядерные методы*
Таким образом, мы можем вывести ГП из байесовской линейной регрес‑
сии. Заметим, однако, что линейная регрессия предполагает, что ϕ(x) – век‑
тор конечномерный, тогда как ГП позволяет работать непосредственно в тер‑
минах ядер, которые могут соответствовать бесконечномерным векторам
признаков (см. раздел 17.1.1). То есть ГП работает в пространстве функций.

17.2.5. Численные проблемы
В этом разделе мы обсудим вычислительные и численные проблемы, воз‑
никающие при реализации описанных выше формул. Для простоты предпо‑
ложим, что априорное среднее равно нулю, т. е. m(x) = 0.
Апостериорное прогнозное среднее равно μ∗ = k*⟙K̂ -1
X,X y. По причинам,
связанным с численной устойчивостью, обращать K̂X,X непосредственно не‑
желательно. Лучше вычислить разложение Холески K̂ X,X = LL⟙, что занимает
время O(N 3). Затем мы вычисляем α = L⟙ \ (L \ y), где оператор \ обозначает
обратный ход (раздел 7.7.1). При таком подходе вычисление апостериорного
среднего для каждого тестового примера займет время O(N), если использо‑
вать формулу:
⟙ -⟙
μ* = k*⟙K̂-1
(L-1y) = k*⟙α.
X,Xy = k* L

(17.47)

Дисперсию можно вычислить за время O(N2) для каждого тестового при‑
мера по формуле
σ*2 = k** - k*⟙L-T L-1k* = k** - v⟙v,

(17.48)

где v = L \ k∗.
Наконец, логарифмическое маргинальное правдоподобие (необходимое
для обучения ядра, раздел 17.2.6) можно вычислить по формуле:
(17.49)

17.2.6. Оценивание параметров ядра
У большинства ядер имеются свободные параметры, которые могут сильно
влиять на предсказания модели. Например, предположим, что выполняется
одномерная регрессия с помощью ГП с RBF-ядром вида
(17.50)
Здесь 𝓁 – горизонтальный масштаб, на котором функция заметно изменя‑
ется, а σf2 управляет вертикальным масштабом функции. Предположим, что
шум наблюдений имеет дисперсию σy2.
Мы выбрали 20 наблюдений из многомерного нормального распределения
с ковариацией Σ = 𝒦(xi, xj) для сетки, состоящей из точек {xi}, и прибавили

Tlgm: @it_boooks

Гауссовы процессы  689

шум со значениемσy. Затем мы аппроксимировали эти данные гауссовыми
процессами с одним и тем же ядром, но разными гиперпараметрами. На
рис. 17.8 показано, как изменяется результат при варьировании этих параме‑
тров. На рис. 17.8a (𝓁, σf, σy) = (1, 1, 0.1) и аппроксимация хороша. На рис. 17.8b
мы уменьшили линейный масштаб до 𝓁 = 0.3 (другие параметры были опти‑
мизированы с помощью техники максимального маргинального правдопо‑
добия, обсуждаемой ниже); теперь функция стала более «извилистой». Кроме
того, неопределенность растет быстрее, поскольку эффективное расстояние
до обучающих точек увеличивается с большей скоростью. На рис. 17.8c ли‑
нейный масштаб увеличен до 𝓁 = 3, функция выглядит более гладкой.

(а)

(b)

(c)

Рис. 17.8  Одномерные гауссовы процессы с ядрами SE, но разными гиперпараметрами, обученные на 20 зашумленных наблюдениях. Гиперпараметры
(𝓁, σf, σy) следующие: (a) (1,1,0.1); (b) (0.3, 1.08, 5е-0.5); (с) (3.0, 1.16, 0.89). На
основе рис. 2.5 из работы [RW06]. Построено программой по адресу figures.
probml.ai/book1/17.8

17.2.6.1. Эмпирическая байесовская оценка
Для оценивания параметров ядра θ (иногда называемых гиперпараметрами)
можно было бы использовать исчерпывающий поиск на дискретной сетке
значений с потерей на контрольном наборе в качестве целевой функции, но
это может работать очень медленно. (Это подход, применяемый в невероят‑
ностных методах, например SVM (раздел 17.3), для настройки ядер.) Здесь
мы рассмотрим эмпирический байесовский подход к оцениванию, который

Tlgm: @it_boooks

690  Ядерные методы*
позволит воспользоваться гораздо более быстрыми градиентными методами
оптимизации. Именно, мы будем максимизировать маргинальное правдо‑
подобие:
(17.51)
(Причина, по которой эта величина названа маргинальным, а не просто прав‑
доподобием, связана с тем, что мы интегрируем по латентному гауссовому
вектору f, тем самым исключая его.)
Для простоты предположим, что средняя функция равна 0. Так как p( f |X) =
𝒩( f |0, K) и p(y|f ) = ÕNn=1 𝒩(yn|fn, σy2), маргинальное правдоподобие равно
(17.52)

где зависимость K̂X,X = KX,X + σ22 IN от θ неявная. Первое слагаемое – член
аппроксимации данных, второе – член сложности модели, а третье – про‑
сто постоянная. Чтобы понять компромисс между первыми двумя членами,
рассмотрим ядро SE в одномерном случае, когда линейный масштаб 𝓁 изме‑
няется, а σ2y фиксировано. Для малых масштабов аппроксимация будет хоро‑
шей, поэтому величина y⟙K̂-1
X,X y будет мала. Однако сложность модели будет
высокой: K будет почти диагональной (как на правом верхнем рис. 13.22),
поскольку будет считаться, что большинство точек расположено «близко»
к любой другой, так что член log |K̂X,X| будет велик. Для большого линейного
масштаба аппроксимация будет плохой, но сложность модели низкой: K бу‑
дет почти полностью состоять из единиц (как на правом нижнем рис. 13.22),
так что член log |K̂X,X| будет мал.
Теперь обсудим, как максимизировать маргинальное правдоподобие.
Можно показать, что
(17.53)
(17.54)
-1
3
2
где α = K̂ -1
X,X y. Для вычисления K̂ X,X требуется время O(N ), а затем еще O(N )
на каждый гиперпараметр для вычисления градиента.
Форма частной производной ¶K̂X,X/¶θj зависит от формы ядра и параметра,
по которому берется производная. Часто на гиперпараметры накладываются
ограничения, например σy2 ³ 0. В этом конкретном случае можно определить
θ = log(σy2), а затем воспользоваться правилом дифференцирования сложной
функции.
Имея выражения для логарифмического маргинального правдоподобия
и его производной, мы можем оценить параметры ядра с помощью любого
стандартного градиентного оптимизатора. Но, поскольку целевая функция
невыпуклая, проблемой могут стать локальные минимумы, как будет пока‑
зано ниже, поэтому, возможно, придется выполнить несколько перезапусков.

Tlgm: @it_boooks

Гауссовы процессы  691

стандартное отклонение
шума

В качестве примера рассмотрим RBF-ядро в формуле (17.50) с σ2f = 1. На
рис. 17.9a показан график log p(y|X, 𝓁, σy2) (где X и y – семь точек данных, по‑
казанных на рисунках (b) и (c), соответствующих изменению 𝓁 и σy2). Два ло‑
кальных оптимума обозначены знаками +. Левый нижний оптимум соответ‑
ствует решению с низким шумом и малым линейным масштабом (показано
на рисунке b). Правый верхний оптимум соответствует решению с высоким
шумом и большим линейным масштабом (показано на рисунке c). При на‑
личии всего семи точек данных недостаточно, чтобы уверенно решить, какое
решение разумнее, хотя у более сложной модели (рисунок b) маргинальное
правдоподобие примерно на 60 % выше, чем у более простой (рисунок c).
При увеличении объема данных более сложная модель, вероятно, станет еще
более предпочтительной.
На рис. 17.9 показаны другие интересные (и типичные) особенности. Об‑
ласть, в которой σy2 » 1 (верхняя часть на рисунке a), соответствует случаю,
когда шум очень высокий; в этом режиме маргинальное правдоподобие
нечувствительно к линейному масштабу (о чем свидетельствуют почти го‑
ризонтальные линии уровня), поскольку все данные объясняются как шум.
Область, в которой 𝓁 » 0.5 (левая часть на рисунке a), соответствует случаю,
когда линейный масштаб очень мал; в этом режиме маргинальное правдопо‑
добие нечувствительно к шуму (о чем свидетельствуют почти вертикальные
линии уровня), так как данные идеально интерполируются. Хороший опти‑
мизатор не должен выбирать ни ту, ни другую область.

характеристический линейный масштаб

(a)

(b)

(c)

Рис. 17.9  Локальные минимумы на поверхности маргинального правдоподобия. (a) График зависимости логарифмического маргинального правдоподобия от линейного масштаба ядра 𝓁 и шума наблюдений σy для фиксированного уровня сигнала σf = 1, построенный по семи точкам, показанным на рис. b
и c. (b) Функция, соответствующая левому нижнему локальному минимуму (𝓁,
σy) ≈ (1, 0.2). Она очень «извилистая», а шум низкий. (c) Функция, соответствующая правому верхнему локальному минимуму (𝓁, σy) ≈ (10, 0.8). Очень «гладкая», шум высокий. Данные были сгенерированы при (𝓁, σf, σy) = (1, 1, 0.1). На
основе рис. 5.5 из работы [RW06]. Построено программой по адресу figures.
probml.ai/book1/17.9

17.2.6.2. Байесовский вывод
Если число точек невелико (например, когда гауссовы процессы используют‑
ся для байесовской оптимизации), то использование точечной оценки пара‑
метров ядра может давать очень плохие результаты [Bul11; WF14]. В таких

Tlgm: @it_boooks

692  Ядерные методы*
случаях может быть желательно аппроксимировать апостериорное распреде‑
ление параметров ядра. Можно использовать несколько методов. Например,
в работе [MA10] показано, как использовать выборку по уровням, в работе
[Hen+15] – как использовать гамильтонов метод Монте-Карло, а в работе
[BBV11] – как использовать последовательный метод Монте-Карло.

17.2.7. Применение гауссовых процессов
для классификации
До сих пор мы рассматривали применение ГП для регрессии с помощью га‑
уссова правдоподобия. В этом случае апостериорное распределение – тоже
гауссов процесс, и все вычисления можно выполнить аналитически. Но если
правдоподобие не гауссово, а, например, правдоподобие Бернулли в случае
бинарной классификации, то апостериорное распределение уже нельзя вы‑
числить точно.
Существуют различные аппроксимации, некоторые из них обсуждаются
во втором томе этой книги, [Mur22]. В этом разделе мы будем использовать
гамильтонов метод Монте-Карло (раздел 4.6.8.4) для оценки как латентной
гауссовой функции f, так и гиперпараметров ядра θ. Основная идея – задать
отрицательное логарифмическое совместное распределение:

(17.55)
Затем мы используем autograd, чтобы вычислить Ñf Ψ(f, θ) и Ñθ Ψ(f, θ) и ис‑
пользовать эти градиенты как входы для вычисления гауссова вспомогатель‑
ного распределения.
Рассмотрим одномерный пример из работы [Mar18]. Он похож на пример
байесовской логистической регрессии на рис. 4.20, в котором цель – класси‑
фицировать виды ирисов Setosa и Versicolor, yn Î {0, 1}, зная длину чашели‑
стика xn. Будем использовать ядро SE с линейным масштабом 𝓁 и считать, что
𝓁 имеет априорное распределение Ga(2, 0.5).
На рис. 17.10a показаны результаты использования ядра SE. Они похожи
на результаты линейной логистической регрессии (см. рис. 4.20) с тем от‑
личием, что на краях (далеко от данных) кривая вероятности изгибается
в сторону 0.5. Это объясняется тем, что априорная средняя функция m(x) = 0
и σ(0) = 0.5. Этот артефакт можно исключить, взяв более гибкую модель, в ко‑
торой закодирована априорная информация: мы ожидаем, что выход будет
монотонно возрастающей или монотонно убывающей функцией входа. Это
можно сделать, воспользовавшись линейным ядром:
𝒦(x, x¢) = (x - c)(x¢ - c).

(17.56)

Мы можем масштабировать это выражение и прибавить к ядру SE, в ре‑
зультате чего получим

Tlgm: @it_boooks

Гауссовы процессы  693

(17.57)
Результат показан на рис. 17.10b и выглядит более разумно.

(a)

(b)

Рис. 17.10  ГП-классификатор для задачи бинарной классификации набора данных
об ирисах (Setosa или Versicolor) по одному входному признаку (длина чашелистика).
Толстая вертикальная область – байесовский доверительный интервал для решающей
границы. (a) Ядро SE. (b) Ядро SE плюс линейное ядро. На основе рис. 7.11–7.12 из работы [Mar18]. Построено программой по адресу figures.probml.ai/book1/17.10

Возникает вопрос, зачем «заморачиваться» с ГП, если результат ничем не
лучше, чем при использовании простой модели линейной логистической
регрессии. Причина в том, что ГП – гораздо более гибкий подход, не требую‑
щий почти никаких априорных предположений, кроме гладкости. Например,
предположим, что данные выглядят как на рис. 17.11a. В этом случае модель
линейной логистической регрессии не смогла бы аппроксимировать данные.
В принципе, можно было бы использовать нейронную сеть, но вряд ли она
будет прилично работать, когда в обучающем наборе имеется всего-то 60 то‑
чек. Однако ГП хорошо приспособлены как раз для таких небольших наборов
данных. На рис. 17.11b показаны результаты аппроксимации этих данных
гауссовым процессом с ядром SE. Выглядит вполне разумно.
болен

болен

здоров

здоров
возраст

возраст

(a)

(b)

Рис. 17.11  (a) Фиктивная задача бинарной классификации «космической лихорадки». (b) Аппроксимация гауссовым процессом с ядром SE. На основе рис. 7.13–7.14 из
работы [Mar18]. Построено программой по адресу figures.probml.ai/book1/17.11

Tlgm: @it_boooks

694  Ядерные методы*

17.2.8. Связи с глубоким обучением
Оказывается, что между ГП и глубокими нейронными сетями есть много
интересных связей и сходных черт. Например, можно показать, что RBF-сеть
с одним скрытым слоем, бесконечно широкая, эквивалентна ГП с RBF-ядром.
(Это следует из того, что RBF-ядро можно выразить в виде скалярного про‑
изведения бесконечного числа признаков.) Вообще, многие виды ГНС можно
интерпретировать как ГП с ядром, зависящим от архитектуры модели. Дета‑
ли см. во втором томе этой книги, [Mur22].

17.2.9. Масштабирование ГП на большие наборы
данных
Главный недостаток ГП (и других ядерных методов, в частности SVM, кото‑
рые мы обсудим в разделе 17.3) заключается в том, что обращение ядерной
матрицы размера N´N занимает время O(N 3), что делает метод слишком
медленным для больших наборов данных. Для ускорения ГП было предло‑
жено немало приближенных схем (см., например, обзор [Liu+18a]). В этом
разделе мы кратко упомянем некоторые из них. Дополнительные сведения
см. во втором томе этой книги, [Mur22].

17.2.9.1. Разреженные аппроксимации
Простой подход к ускорению вывода на основе ГП – использовать меньше
данных. Более предпочтительное решение – попытаться «обобщить» N об‑
учающих точек X, построив M ≪ N вспомогательных точек (inducing point),
или псевдовходов Z. Это позволит заменить p( f |fX) на p( f |fZ), где fX = {f(x) :
x Î X} – вектор наблюдаемых значений функции в обучающих точках, а fZ =
{ f(x) : x Î Z} – вектор оцененных значений функции во вспомогательных
точках. Оптимизировав (Z, fZ), мы сможем обучиться «сжимать» обучающие
данные (X, fX) в «дайджест» (Z, fZ) и тем самым сократить время вычислений
с O(N 3) до O(M 3). Это называется разреженным ГП. Процедурe можно сде‑
лать более строгой, применив аппарат вариационного вывода. Дополнитель‑
ные сведения см. во втором томе этой книги, [Mur22].

17.2.9.2. Распараллеливание с использованием структуры
ядерной матрицы
Для вычисления разложения Холески KX,X требуется время O(N 3), необходимое для решения линейной системы K̂X,X α = y и вычисления |KX,X|, где K̂X,X =
KX,X + σ2IN. Альтернатива разложению Холески – использовать методы линей‑
ной алгебры, часто называемые методами крыловского типа (или подпро‑
странства Крылова), основанные только на умножении матрицы на вектор.
Эти подходы гораздо быстрее, поскольку могут воспользоваться естествен‑
ной структурой ядерной матрицы. Но, даже если ядерная матрица не об‑

Tlgm: @it_boooks

Гауссовы процессы  695

ладает специальной структурой, операция умножения матриц тривиально
распараллеливается, поэтому ее можно значительно ускорить, применив
GPU, – в отличие от методов на основе разложения Холески, в большинстве
своем последовательных. Эти соображения легли в основу популярного па‑
кета GPyTorch [Gar+18]. Дополнительные сведения см. во втором томе этой
книги, [Mur22].

17.2.9.3. Аппроксимация случайными признаками
Хотя эффективность ядер связана с их способностью избегать работы с пред‑
ставлениями входных данных признаками, ядерные методы требуют време‑
ни O(N 3) на обращение матрицы Грама K. Это может стать препятствием для
их применения к большим наборам данных. По счастью, для многих (инва‑
риантных относительно сдвигов) ядер карту признаков можно аппроксими‑
ровать, взяв случайно выбранное конечное множество M базисных функций
и тем самым уменьшив временные затраты до O(NM + M 3). Ниже мы кра‑
тко обсудим эту идею. Дополнительные сведения см., например, в работе
[Liu+20].

Случайные признаки для RBF-ядра
Ограничимся случаем гауссова RBF-ядра. Можно показать, что
𝒦(x, x¢) » ϕ(x)⟙ϕ(x¢),

(17.58)

где (вещественный) вектор признаков имеет вид:
(17.59)
(17.60)
где T = M/2, а Ω Î ℝT´D – случайная гауссова матрица с независимыми и оди‑
наково распределенными элементами, выбранными из 𝒩(0, 1/σ2), где σ – по‑
лоса пропускания ядра. Смещение аппроксимации уменьшается при увели‑
чении M. На практике мы берем конечное M и вычисляем аппроксимацию
математического ожидания методом Монте-Карло, выбирая одну случайную
матрицу. Признаки в формуле (17.60) называются случайными признаками
Фурье (random Fourier features – RFF) [RR08] или «взвешенными суммами
случайной всячины» [RR09].
Можно также использовать положительные, а не тригонометрические слу‑
чайные признаки, и в некоторых приложениях это предпочтительнее, напри‑
мер в моделях, где используется внимание (см. раздел 15.6.4). В частности,
можно взять
(17.61)
где ωm выбираются так же, как и раньше. Детали см. в работе [Cho+20b].

Tlgm: @it_boooks

696  Ядерные методы*
Независимо от того, используются тригонометрические или положитель‑
ные признаки, можно получить более низкую оценку дисперсии, гаранти‑
ровав, что строки Z, хоть и случайные, но ортогональные; они называются
ортогональными случайными признаками. Такую выборку можно эф‑
фективно произвести с помощью ортогонализации Грама-Шмидта неструк‑
турированных гауссовых матриц [Yu+16] или нескольких еще более быстрых
аппроксимаций (см. [CRW17; Cho+19]).

Фастфудная аппроксимация
К сожалению, для хранения случайной матрицы Ω требуется память объема
O(DM), а вычисление Ωx занимает время O(DM), где D — размерность входа,
а M — число случайных признаков. Это может оказаться неприемлемым, если
M ≫ D, а так много признаков может понадобиться, чтобы получить какие-то
выгоды по сравнению с использованием оригинального множества признаков.
К счастью, можно использовать быстрое преобразование Адамара, позволя‑
ющее сократить объем памяти с O(MD) до O(M), а время — с O(MD) до O(M log D).
Этот подход был назван «фастфудом» [LSS13] — отсылка к оригинальному тер‑
мину «kitchen sinks» (букв, «кухонная мойка»), обозначающему всякую всячину.

Машины экстремального обучения
Мы можем использовать аппроксимацию ядра случайными признаками,
чтобы преобразовать ГП в линейную модель вида
f(x; θ) = Wϕ(x) = Wh(Zx),

(17.62)

где h(a) =
[sin(a), cos(a)] для RBF-ядер. Это эквивалентно однослойному
МСП со случайными (и фиксированными) весами связей между входным
и скрытым слоем. При M > N это соответствует перепараметризованной
модели, которая идеально интерполирует обучающие данные.
В работе [Cur+17] этот метод применен для обучения модели логистиче‑
ской регрессии вида f(x, θ) = W⟙h(Ẑx) + b методом СГС; авторы назвали свой
метод McKernel. Мы можем также оптимизировать Z, а не только W (см.
[Alb+17]), хотя тогда задача перестанет быть выпуклой.
Альтернативно можно использовать M < N, но составить вместе много
таких случайных нелинейных слоев и просто оптимизировать выходные
веса. Этот метод был назван машиной экстремального обучения (extreme
learning machine – ELM) (см. [Hua14], хотя эта работа вызывает нарекания1).

17.3. метод опорных ВектороВ
В этом разделе мы обсудим невероятностные предикторы для классифика‑
ции и регрессии вида
1

Нарекания вызваны тем, что автора Гуан-Бинь Хуана обвинили в отсутствии ссы‑
лок на предшествующие работы на ту же тему, в частности на эквивалентный
подход, основанный аппроксимациях ядра случайными признаками. Детали см.
в статье https://en.wikipedia.org/wiki/Extreme_learning_machine#Controversy.

Tlgm: @it_boooks

Метод опорных векторов  697

(17.63)
Добавив подходящие ограничения, мы сможем гарантировать, что многие
из коэффициентов αi равны 0, так что предсказания на этапе тестирования
будут зависеть только от подмножества обучающих точек. Эти имеющие зна‑
чение точки называются опорными векторами, а сама модель – методом
опорных векторов (support vector machine – SVM). Ниже приведен краткий
обзор. Дополнительные сведения можно найти в работах [VGS97; SS01].

17.3.1. Классификаторы с широким зазором
Рассмотрим бинарный классификатор вида h(x) = sign(f(x)), где решающая
граница определяется следующей линейной функцией:
f(x) = w⟙x + w0.

(17.64)

(В литературе по SVM принято использовать метки классов -1 и +1, а не 0
и 1. Во избежание путаницы мы обозначаем такие целевые метки y , а не y.)
Может существовать много прямых, разделяющих данные. Но интуитивно
понятно, что хочется выбрать прямую с максимальным зазором, т. е. рас‑
стоянием до ближайшей к ней точке, поскольку такое решение будет самым
робастным. Эта идея иллюстрируется на рис. 17.12: у решения слева зазор
больше, чем у решения справа, и интуитивно оно лучше, так как менее чув‑
ствительно к возмущениям данных.

Рис. 17.12  Принцип большого зазора.
Слева: разделяющая гиперплоскость с широким зазором.
Справа: разделяющая гиперплоскость с малым зазором

Как вычислить такой классификатор с широким зазором? Сначала не‑
обходимо вывести выражение для расстояния от точки до решающей грани‑
цы. Глядя на рис. 17.13a, мы видим, что
(17.65)

Tlgm: @it_boooks

698  Ядерные методы*
где r – расстояние от x до решающей границы, определяемой нормальным
вектором w, а x^ – ортогональная проекция x на эту границу.

(a)

(b)

Рис. 17.13  (a) Геометрия линейной решающей границы в двумерном случае.
Точка x классифицируется как принадлежащая области ℛ1, если f(x) > 0, и области ℛ0 в противном случае; w – вектор, перпендикулярный решающей границе. Член w0 управляет расстоянием от решающей границы до начала координат, x^ – ортогональная проекция x на границу. Расстояние со знаком между
x и границей равно f(x)/||w||. На основе рис. 4.1 из работы [Bis06]. (b) Точки,
обведенные окружностями, – опорные векторы, с ними связаны двойственные
переменные αn > 0. В случае мягкого зазора мы ассоциируем с каждым примером переменную невязки ξn. Если 0 < ξn < 1, то точка находится внутри зазора,
но по правильную сторону решающей границы. Если ξn > 1, то точка находится
по неправильную сторону границы. На основе рис. 7.3 из работы [Bis06]

Мы хотели бы максимизировать величину r, поэтому должны выразить ее
в виде функции от w. Сначала отметим, что
(17.66)
Поскольку 0 = f(x^) = w⟙x^ + w0, имеем f(x) = r||w|| и, следовательно, r =
f(x)/||w||.
Так как мы хотим, чтобы каждая точка находилась по правильную сторо‑
ну от границы, необходимо также потребовать, чтобы f(xn)y n > 0. Мы хотим
максимизировать расстояние до ближайшей точки, поэтому окончательно
целевая функция принимает вид:

Tlgm: @it_boooks

Метод опорных векторов  699

(17.67)
Отметим, что перемасштабирование параметров w ® kw и w0 ® kw0 не
изменяет расстояния от любой точки до границы, потому что множитель k
сокращается при делении на ||w||. Поэтому определим масштабный коэффи‑
циент, так чтобы y n fn = 1 для точки, ближайшей к решающей границе. Таким
образом, мы требуем, чтобы было y n fn ³ 1 для всех n. Наконец, отметим, что
максимизация 1/||w|| эквивалентна минимизации ||w||2. Поэтому мы полу‑
чаем новую целевую функцию:
(17.68)
(Множитель ½ добавлен для удобства и не влияет на оптимальные параметры.) Это ограничение означает, что мы хотим, чтобы все точки находились
по правильную сторону границы с зазором не меньше 1.
Заметим, что важно масштабировать входные переменные до применения
SVM, иначе зазор будет измерять расстояние от точки до границы, используя
все входные измерения одинаков (см. иллюстрацию на рис. 17.14).
Немасштабированные

х1

Масштабированные

х¢1

Рис. 17.14  Какие преимущества дает масштабирование входных признаков прежде вычисления классификатора с максимальным зазором. На основе
рис. 5.2 из работы [Gér19]. Построено программой по адресу figures.probml.ai/
book1/17.14

17.3.2. Двойственная задача
Целевая функция (17.68) – это стандартная задача квадратичного програм‑
мирования (раздел 8.5.4), поскольку мы имеем квадратичную целевую функ‑
цию с линейными ограничениями. В ней N + D + 1 переменных и N ограни‑
чений. Это так называемая основная задача.
В случае выпуклой оптимизации для каждой основной задачи можно
сформулировать двойственную задачу. Пусть α Î ℝN – двойственные пере‑
менные, соответствующие множителям Лагранжа, обеспечивающим выпол‑
нение N ограничений в виде неравенств. Обобщенный лагранжиан имеет вид
(см. введение в выпуклую оптимизацию в разделе 8.5.2):

Tlgm: @it_boooks

700  Ядерные методы*
(17.69)
Чтобы оптимизировать его, мы должны найти стационарную точку, удов‑
летворяющую условиям:
(17.70)
Это можно сделать, приравняв нулю частные производные по w и w0.
Имеем
(17.71)
(17.72)
откуда
(17.73)
(17.74)
Подстановка этих выражений в лагранжиан дает
(17.75)
(17.76)
(17.77)
Эта форма целевой функции называется двойственной. Мы хотим ми‑
нимизировать ее относительно α при условии åNn=1 αny n = 0 и 0 £ αn для n =
1 … N.
Приведенная выше целевая функция соответствует квадратичной зада‑
че с N переменными. Стандартные алгоритмы ее решения занимают вре‑
мя O(N 3). Однако были разработаны специальные алгоритмы именно для
этой задачи, например последовательная минимальная оптимизация
(sequential minimal optimization – SMO) [Pla98], занимающие время от O(N)
до O(N2).
Поскольку эта целевая функция выпукла, решение должно удовлетворять
условиям Каруша–Куна–Таккера (раздел 8.5.2), утверждающим, что имеют
место следующие свойства:

Tlgm: @it_boooks

Метод опорных векторов  701

αn ³ 0;

(17.78)

y n f(xn) - 1 ³ 0;

(17.79)

αn(y n f(xn) - 1) = 0.

(17.80)

Отсюда либо αn = 0 (в этом случае n игнорируется при вычислении ŵ), либо
активно ограничение y n(ŵ⟙xn + ŵ0) = 1. Последнее условие означает, что при‑
мер n лежит на решающей границе; эти точки, называемые опорными векторами, показаны на рис. 17.13b. Обозначим множество опорных векторов 𝒮.
Для предсказания воспользуемся уравнением:
(17.81)
Чтобы решить его относительно ŵ0, заметим, что для любого опорного
вектора имеет место равенство y n f(x; ŵ, ŵ0) = 1. Умножив обе части на y n
и воспользовавшись тем, что y n2 = 1, получаем ŵ0 = y n - ŵ⟙xn. На практике
результаты можно улучшить, усреднив по всем опорным векторам:
(17.82)

17.3.3. Классификаторы с мягким зазором
Если данные линейно неразделимы, то не существует решения, для кото‑
рого y n fn ³ 1 при всех n. Поэтому мы вводим переменные невязки ξn ³ 0
и заменяем жесткие ограничения y n fn ³ 1 ограничениями мягкого зазора
y n fn ³ 1 - ξn. Новая целевая функция имеет вид:
(17.83)
где C ³ 0 – гиперпараметр, управляющий количеством точек, которым раз‑
решено нарушить ограничение зазора. (Если C = 1, то мы возвращаемся
к нерегуляризированному классификатору с жестким зазором.)
Лагранжиан для классификатора с мягким зазором принимает вид:

(17.84)
где αn ³ 0 и μn ³ 0 – множители Лагранжа. Оптимизируя по w, w0 и ξ, полу‑
чаем двойственную форму:
(17.85)

Tlgm: @it_boooks

702  Ядерные методы*
Это совпадает со случаем жесткого зазора, однако ограничения различны.
Именно, из условий Каруша–Куна–Таккера вытекает
0 £ αn £ C;

(17.86)
(17.87)

Если αn = 0, то точка игнорируется. Если 0 < αn < C, то ξn = 0, т. е. точка
лежит на границе зазора. Если αn = C, то точка лежит внутри зазора и может
быть либо классифицирована правильно, если ξn £ 1, или неправильно, если
ξn > 1 (см. иллюстрацию на рис. 17.13b). Следовательно, ån ξn – верхняя гра‑
ница количества неправильно классифицированных точек.
Как и раньше, член смещения можно вычислить по формуле:
(17.88)
где ℳ – множество точек, для которых 0 < αn < C.
Существует другая формулировка SVM с мягким зазором – так называемый
классификатор ν-SVM [Sch+00]. В ней требуется максимизировать функцию
(17.89)
при ограничениях:
0 £ αn £ 1 = N;

(17.90)
(17.91)
(17.92)

Преимущество такой формулировки в том, что параметр ν, заменивший C,
можно интерпретировать как верхнюю границу доли ошибок зазора (точек,
для которых ξn > 0) или как нижнюю границу количества опорных векторов.

17.3.4. Ядерный трюк
До сих пор мы преобразовывали задачу бинарной классификации с широ‑
ким зазором в двойственную задачу с N неизвестными (α), решение которой
в общем случае требует времени O(N 3), а это слишком медленно. Однако
принципиальное преимущество двойственной задачи заключается в том,
что все операции скалярного произведения x⟙x¢ можно заменить обращени‑
ем к положительно определенному ядру (Мерсера), 𝒦(x, x¢). Это называется
ядерным трюком.

Tlgm: @it_boooks

Метод опорных векторов  703

Именно, функцию предсказания (17.81) можно переписать следующим
образом:
(17.93)
Необходимо также перенести в ядро член смещения. Это можно сделать,
переписав формулу (17.82) в виде
(17.94)
Ядерный трюк позволяет, во-первых, избежать явного представления дан‑
ных признаками, а во-вторых, без труда применять классификаторы к струк‑
турированным объектам, в частности строкам и графам.

17.3.5. Преобразование выходов SVM
в вероятности
SVM-классификатор порождает метки ŷ(x) = sign(f(x)). Но часто мы хотим
измерять степень доверия к предсказаниям. Один из эвристических под‑
ходов заключается в интерпретации f(x) как логарифма отношения шансов,
log p(y=1|x)/p(y=0|x). Тогда можно преобразовать выход SVM в вероятность
по формуле:
p(y = 1|x, θ) = σ(af(x) + b),

(17.95)

где a, b можно оценить с помощью максимального правдоподобия на отдель‑
ном контрольном наборе. (Применение обучающего набора для оценивания
a и b приводит к сильной переобученности.) Эта техника впервые была пред‑
ложена в работе [Pla00] и называется масштабированием Платта.
Однако получающиеся вероятности не очень хорошо откалиброваны, по‑
тому что в процедуре обучения SVM нет ничего такого, что оправдывало
бы интерпретацию f(x) как логарифм отношения шансов. Для иллюстрации
этой мысли рассмотрим пример из работы [Tip01]. Предположим, что име‑
ются одномерные данные, для которых p(x|y = 0) = Unif(0, 1) и p(x|y = 1) =
Unif(0.5, 1.5). Так как условные распределения при условии разных классов
перекрываются на отрезке [0.5, 1], логарифм отношения шансов класса 1
к классу 0 должен быть равен 0 в этой области и бесконечности вне нее. Мы
производим выборку 1000 точек из этой модели и затем обучаем вероят‑
ностный ядерный классификатор (RVM, описанный в разделе 17.4.1) и SVMклассификатор с гауссовым ядром ширины 0.1. Обе модели идеально улав‑
ливают решающую границу и достигают ошибки обобщаемости 25 %, что
является байесовским оптимумом для этой задачи. Вероятностный выход
RVM является хорошей аппроксимацией истинного логарифма отношения
шансов, чего не скажешь о выходе SVM – см. рис. 17.15.

Tlgm: @it_boooks

704  Ядерные методы*

Рис. 17.15  Зависимость логарифма отношения шансов
от x для трех разных методов. На основе рис. 10 из работы
[Tip01]. Печатается с разрешения Майка Типпинга

17.3.6. Связь с логистической регрессией
Мы видели, что для точек, лежащих по правильную сторону от решающей
границы, ξn = 0, а для остальных ξn = 1 - y n f(xn). Поэтому мы можем пере‑
писать целевую функцию (17.83) следующим образом:
(17.96)
где λ = (2C )-1 и 𝓁hinge(y, η) – кусочно-линейная функция потерь:
ℓhinge(y , η) = max(0, 1 - y η).

(17.97)

На рис. 4.2 показано, что это выпуклая, кусочно-дифференцируемая верх‑
няя граница ступенчатой функции потерь, имеющая форму раскрытой двер‑
ной петли.
С другой стороны, логистическая регрессия (со штрафом) заключается
в оптимизации функции:
(17.98)
где логарифмическая потеря равна
(17.99)
Ее график также показан на рис. 4.2. Мы видим, что он похож на кусочнолинейную потерю, но есть два важных отличия. Во-первых, в силу кусочной
линейности последней к ней нельзя применить регулярные методы гради‑
ентной оптимизации. (Можно, однако, вычислить субградиент при y η = 1.)
Во-вторых, для кусочно-линейной потери существует область, в которой она
строго равна 0, что приводит к разреженным оценкам.

Tlgm: @it_boooks

Метод опорных векторов  705

Мы видим, что обе функции являются выпуклыми верхними границами
ступенчатой потери, описываемой формулой:
ℓ01(y , ŷ) = 𝕀(y ¹ ŷ) = 𝕀(y ŷ < 0).

(17.100)

Эти верхние границы проще оптимизировать и можно рассматривать как
суррогаты ступенчатой потери. Детали см. в разделе 4.3.2.

17.3.7. Многоклассовая классификация
с применением SVM
SVM, по сути своей, – бинарный классификатор. Чтобы превратить его в мо‑
дель многоклассовой классификации, можно обучить C бинарных класси‑
фикаторов, где данные класса c считаются положительными, а данные всех
остальных классов – отрицательными. Затем окончательная метка вычисля‑
– оценка, данная

ется по правилу ŷ(x) = argmaxc fc(x), где fc(x) =

классификатором c. Этот подход называется «один против остальных» (или
«один против всех»).
К сожалению, у этого подхода есть несколько проблем. Во-первых, он мо‑
жет приводить к появлению областей с неоднозначными метками. Напри‑
мер, для зеленой области в верхней части рис. 17.16a предсказан и класс 1,
и класс 2. Вторая проблема заключается в том, что оценки fc не откалибро‑
ваны, поэтому их трудно сравнивать. Наконец, для любой бинарной под‑
задачи, скорее всего, будет наблюдаться несбалансированность классов
(раздел 10.3.8.2). Например, пусть имеется 10 одинаково представленных
классов. При обучении f1 мы будем иметь 10 % положительных примеров
и 90 % отрицательных, что плохо отразится на качестве.
𝒞3

𝒞1
ℛ1

?

ℛ1
𝒞1

Не 𝒞1

ℛ3
(a)

𝒞1

ℛ2

Не 𝒞2

𝒞2

?
ℛ2

𝒞2

ℛ3
𝒞2

𝒞3

(b)

Рис. 17.16  (a) Подход «один против остальных». Для зеленой области предсказаны как класс 1, так и класс 2. (b) Подход «каждый против каждого». Метка
зеленой области неоднозначна. На основе рис. 4.2 из работы [Bis06]

Tlgm: @it_boooks

706  Ядерные методы*
Другой подход называется «каждый против каждого» (one-versus-one –
OVO), или «на всех пáрах»; в этом случае мы обучаем C(C - 1)/2 классифи‑
каторов различать все пары fc,c¢, а затем относим точку к классу, за который
отдано наибольшее число голосов. Но и этот подход может приводить к не‑
однозначностям, как показано на рис. 17.16b. Кроме того, требуется обучить
O(C 2) моделей.

17.3.8. Как выбирать регуляризатор C
В методе SVM требуется задать ядерную функцию и параметр C. Обычно C
выбирается с помощью перекрестной проверки. Заметим, однако, что между
C и параметрами ядра существует сильная взаимозависимость. Например,
предположим, что используется RBF-ядро с точностью γ = 1/(2σ2). Если γ
велика, что соответствует узким ядрам, то может потребоваться сильная ре‑
гуляризация, а значит, малое C. Если γ мала, то следует использовать большее
значение C. Таким образом, γ и C тесно связаны, как показано на рис. 17.17.

Рис. 17.17  SVM-классификатор с RBF-ядром с точностью γ и регуляризатором C применительно к данным о двух лунах. На основе рис. 5.9 из работы
[Gér19]. Построено программой по адресу figures.probml.ai/book1/17.17

Авторы библиотеки libsvm [HCL09] рекомендуют использовать перекрест‑
ную проверку на двумерной сетке со значениями C Î {2-5, 2-3, …, 215} и γ Î
{2-15, 2-13, …, 23}. На рис. 17.18 показана зависимость оценки ошибки 0-1 при
перекрестной проверке от C и γ.
Для эффективного выбора C можно разработать алгоритм прослеживания
пути в духе LARS (раздел 11.4.4). Основная идея – начать с малых C, чтобы
зазор был широким и, следовательно, все точки попадали внутрь него и для
них имело место равенство αi = 1. При постепенном увеличении C небольшое

Tlgm: @it_boooks

Метод опорных векторов  707

множество точек будет перемещаться изнутри зазора вовне, а их значения αi
будут изменяться от 1 до 0 по мере того, как они перестают быть опорными
векторами. Когда C максимально, область внутри зазора становится пустой
и никаких опорных векторов не остается. Детали см. в работе [Has+04].

(a)

(b)

Рис. 17.18  (a) Оценка ошибки 0-1 методом перекрестной проверки для
SVM-классификатора с RBF-ядром с разной точностью γ = 1/(2σ2) и разными
регуляризаторами λ = 1/C применительно к синтезированному набору данных,
выбранных из смеси двух гауссовых распределений. (b) Сечение этой поверхности для γ = 5. Желтая прямая – оптимальная байесовская ошибка, вычисленная с помощью применения правила Байеса к модели, по которой генерировались данные. На основе рис. 12.6 из работы [HTF09]. Построено программой по
адресу figures.probml.ai/book1/17.18

17.3.9. Ядерная гребневая регрессия
Вспомним уравнение гребневой регрессии (11.55):
(17.101)
Применив лемму об обращении матрицы (раздел 7.3.3), мы сможем пере‑
писать оценку гребневой регрессии в виде
(17.102)
Определим следующие двойственные переменные:
(17.103)
Тогда основные переменные можно записать в виде:
(17.104)

Tlgm: @it_boooks

708  Ядерные методы*
Это означает, что вектор решения – просто линейная комбинация N об‑
учающих векторов. Подставляя это на этапе тестирования для вычисления
прогнозного среднего, получаем
(17.105)
Теперь можно воспользоваться ядерным трюком и переписать это в виде
(17.106)
где
α = (K + λIN)-1y.

(17.107)

Иными словами,
f(x; w) = k⟙(K + λIN)-1y,

(17.108)

где k = [𝒦(x, x1), …, 𝒦(x, xN)]. Это называется ядерной гребневой регрессией.
Проблема заключается в том, что вектор решения α неразреженный, по‑
этому предсказания на этапе тестирования занимают время O(N). Как ее
решить, мы обсудим в разделе 17.3.10.

17.3.10. Применение SVM для регрессии
Рассмотрим следующую 𝓁2-регуляризированную задачу минимизации эм‑
пирического риска:
(17.109)
где ŷ n = w⟙xn + w0. Если использовать квадратичную потерю, 𝓁(y, ŷ) = (y - ŷ)2,
где y, ŷ Î ℝ, то мы вернемся к гребневой регрессии (раздел 11.3). Если затем
применить ядерный трюк, то мы вернемся к ядерной гребневой регрессии
(раздел 17.3.9).
Проблема ядерной гребневой регрессии в том, что решение зависит от всех
N обучающих примеров, из-за чего задача становится вычислительно нераз‑
решимой. Однако изменив функцию потерь, мы сможем сделать оптималь‑
ное множество коэффициентов при базисных функциях, α*, разреженным,
как показано ниже.
Именно, рассмотрим следующий вариант функции потерь Хьюбера (раз‑
дел 5.1.5.3), называемый эпсилон-нечувствительной функцией потерь:
(17.110)

Tlgm: @it_boooks

Метод опорных векторов  709

Это означает, что любая точка, лежащая внутри ε-трубки вокруг предска‑
зания, не штрафуется, как показано на рис. 17.19.

(a)

(b)

Рис. 17.19  (a) Иллюстрация функций потерь: 𝓁2, Хьюбера и ε-нечувствительной, где ε = 1.5. Построено программой по адресу figures.probml.ai/book1/17.19.
(b) Иллюстрация ε-трубки, используемой в SVM-регрессии. Для точек выше
трубки ξi+ > 0 и ξi– = 0. Для точек ниже трубки ξi+ = 0 и ξi– > 0. Для точек внутри
трубки ξi+ = ξi– = 0. На основе рис. 7.7 из работы [Bis06]

Соответствующая целевая функция обычно записывается в виде
(17.111)
где ŷ n = f(xn) = w⟙xn + w0 и C = 1/λ – регуляризационная постоянная. Эта
целевая функция выпукла и ничем не ограничена, но не дифференцируема
из-за функции абсолютной величины в члене потери. Как и в разделе 11.4.9,
где обсуждалась задача lasso, есть несколько возможных решений. Популяр‑
ный подход – переформулировать задачу как задачу условной оптимизации.
Именно, введем переменные невязки, показывающие, степень удаленность
точки от трубки:
y n £ f(xn) + ε + ξn+,

(17.112)

y n ³ f(xn) - ε - ξn–.

(17.113)

Тогда целевую функцию можно переписать в виде
(17.114)
Это квадратичная функция от w, и ее следует минимизировать с учетом
линейных ограничений (17.112)-(17.113), а также ограничений положитель‑
ности ξn+ ³ 0 и ξn– ³ 0. Это стандартный квадратичный алгоритм с 2N + D + 1
переменными.
Построив и оптимизировав лагранжиан, как уже было сделано выше, мож‑
но показать, что оптимальное решение имеет вид:

Tlgm: @it_boooks

710  Ядерные методы*
(17.115)
где αn ³ 0 – двойственные переменные. (Детали см., например, в [SS02].)
К счастью, вектор α разреженный, т. е. многие его элементы равны 0. Это
связано с тем, что в потере не учитываются ошибки, меньшие ε. Степень
разреженности контролируется параметрами C и ε.
Точки xn, для которых αn > 0, называются опорными векторами; это те
точки, для которых ошибка лежит на границе или вне ε-трубки. Только эти
обучающие примеры и нужно сохранять для предсказания на этапе тести‑
рования, поскольку
(17.116)
Наконец, можно воспользоваться ядерным трюком и получить
(17.117)
Весь метод в целом, называемый регрессией опорных векторов или
SVM-регрессией, впервые был предложен в работе [VGS97].
На рис. 17.20 приведен пример использования RBF-ядра с γ = 1. Если C
мало, то модель сильно регуляризирована, а если C велико, то модель регуля‑
ризирована слабее и может аппроксимировать данные лучше. Видно также,
что при малых ε трубка уже, поэтому опорных векторов больше.

Рис. 17.20  Регрессия опорных векторов. На основе рис. 5.11 из работы [Gér19].
Построено программой по адресу figures.probml.ai/book1/17.20

Tlgm: @it_boooks

Метод разреженных векторов  711

17.4. метод разреженных ВектороВ
Гауссовы процессы – очень гибкие модели, но требуют для предсказания
времени O(N), иногда это недопустимо много. SVM решает эту проблему,
оценивая разреженный вектор весов. Однако SVM не дает откалиброванных
вероятностей на выходе.
Лучшее из обоих миров можно взять, используя параметрические модели,
в которых вектор признаков определен с использованием базисных функций
с центрами в обучающих точках:
ϕ(x) = [𝒦(x, x1), …, 𝒦(x, xN)],

(17.118)

где 𝒦 – ядро сходства, необязательно ядро Мерсера. Отображение (17.118)
переводит x Î 𝒳 в ϕ(x) Î ℝN. Мы можем подставить этот новый вектор при‑
знаков в любую дискриминантную модель, например, логистической ре‑
грессии. Поскольку имеется D = N параметров, необходимо использовать
какую-то регуляризацию, чтобы предотвратить переобучение. Если обучить
такую модель с помощью 𝓁2-регуляризации (тогда она называется L2VM), то
результат зачастую показывает хорошее качество предсказания, но вектор
весов w будет плотным и зависящим от всех N обучающих точек. Естествен‑
ное решение – наложить на w априорное распределение, поощряющее раз‑
реженность, так чтобы можно было хранить не все примеры. В результате
получаются методы разреженных векторов.

17.4.1. Метод релевантных векторов
Самый простой способ гарантировать, что w разрежен, – использовать 𝓁1‑
регуляризацию, как описано в разделе 11.4. Этот подход называется L1VM
или методом векторов Лапласа (Laplace vector machine), потому что он
эквивалентен оценке MAP, когда w имеет априорное распределение Лапласа.
Но иногда 𝓁1-регуляризация не дает достаточного уровня разреженно‑
сти для заданного уровня верности. Альтернативный подход основан на ис‑
пользовании автоматического определения релевантности (ARD), когда
применяется максимальное правдоподобие типа II (оно же эмпирическое
байесовское) для оценки разреженного вектора весов [Mac95; Nea96]. Если
применить эту идею к вектору признаков, определенных в терминах ядра,
как в формуле (17.118), то получим метод релевантных векторов (relevance
vector machine – RVM) [Tip01; TF03].

17.4.2. Сравнение разреженных и плотных
ядерных методов
На рис. 17.21 проведено сравнение методов L2VM, L1VM, RVM и SVM с RBFядром на задаче бинарной классификации в двумерном случае. Мы исполь‑
зуем перекрестную проверку для выбора C = 1/λ для SVM (см. раздел 17.3.8),

Tlgm: @it_boooks

712  Ядерные методы*
а затем берем то же самое значение параметра регуляризации для L2VM
и L1VM. Как видим, качество предсказания у всех методов примерно оди‑
наково. Однако RVM дает самую разреженную модель, поэтому на этапе вы‑
полнения она будет работать быстрее других.

(а)

(а)

(c)

(d)

Рис. 17.21  Пример нелинейной бинарной классификации с RBF-ядром с полосой пропускания σ = 0.3. (a) L2VM. (b) L1VM. (c) RVM. (d) SVM. Черными кружочками обозначены опорные векторы. Построено программой по адресу figures.
probml.ai/book1/17.21

На рис. 17.22 методы L2VM, L1VM, RVM и SVM с RBF-ядром сравниваются
на задаче регрессии в одномерном случае. И снова предсказания очень по‑
хожи, но RVM дает самую разреженную модель, за ним следует L1VM, а за
ним SVM. Сравнение продолжено на рис. 17.23.
Помимо этих небольших эмпирических примеров, в табл. 17.1 приведена
более подробная сводка различных методов. Столбцы интерпретируются
следующим образом.
 Опт. w: ключевой вопрос – является ли целевая функция ℒ(w) =
-log p(𝒟|w) - log p(w) выпуклой или нет. В методах L2VM, L1VM и SVM
целевые функции выпуклые, а в RVM нет. ГП относятся к классу байе‑
совских методов, в которых веса исключаются посредством интегри‑
рования.
 Опт. ядра: все методы требуют «настройки» параметров ядра, в частно‑
сти полосы пропускания RBF-ядра, а также уровня регуляризации. Для

Tlgm: @it_boooks

Метод разреженных векторов  713

методов, основанных на гауссовых априорных распределениях, в том
числе L2VM, RVM и ГП, можно использовать эффективные градиентные
оптимизаторы длямаксимизации маргинального правдоподобия. Для
SVM и L1VM необходимо использовать перекрестную проверку, рабо‑
тающую медленнее (см. раздел 17.3.8).

(а)

(а)

(c)

(d)

Рис. 17.22  Модель, обученная ядерной регрессии на зашумленной функции
sinc с RBF-ядром с полосой пропускания σ = 0.3. (a) L2VM с λ = 0.5. (b) L1VM
с λ = 0.5. (c) RVM. (d) SVM-регрессия с параметром C = 1/λ, выбранным методом перекрестной проверки. Красными кружочками обозначены сохраненные обучающие примеры. Построено программой по адресу figures.probml.ai/
book1/17.22

 Разреж.: L1VM, RVM и SVM – разреженные ядерные методы в том смыс‑
ле, что используется только подмножество обучающих примеров. ГП
и L2VM разреженными не являются, в них используются все примеры.
Принципиальное преимущество разреженности в том, что предсказа‑
ние на этапе тестирования обычно быстрее. Однако это часто приводит
к излишней уверенности в результатах предсказания.
 Вер.: все методы, кроме SVM, порождают на выходе распределение
вероятностей вида p(y|x). SVM возвращает уровень «доверия», который
можно преобразовать в вероятность, но такие вероятности обычно
очень плохо откалиброваны (см. раздел 17.3.5).

Tlgm: @it_boooks

714  Ядерные методы*

(а)

(а)

(c)

(d)

Рис. 17.23  Оценки коэффициентов для моделей на рис. 17.22.
Построено программой по адресу figures.probml.ai/book1/17.23

 Многокл.: все методы, кроме SVM, естественно работают в многоклас‑
совой постановке, поскольку используется категориальное распределе‑
ние, а не распределение Бернулли. SVM можно преобразовать в много‑
классовый классификатор, но такой подход сталкивается с различными
трудностями, описанными в разделе 17.3.7.
 Не Мерсера: SVM и ГП требуют, чтобы ядро было положительно опреде‑
ленным. В остальных методах это необязательно, потому что ядро в фор‑
муле (17.118) может быть произвольной функцией двух аргументов.
Таблица 17.1. Сравнение различных ядерных классификаторов. EB = эмпирический
байесовский, CV = перекрестная проверка. Детали см. в тексте
Метод
SVM
L2VM
L1VM
RVM
ГП

Опт.
ядра
Выпуклая
CV
Выпуклая
EB
Выпуклая
CV
Невыпуклая
EB
Неприменимо EB
Опт. w

Разреж.
Да
Нет
Да
Да
Да

Вер.
Нет
Да
Да
Да
Да

Многокл. Не Мерсера

Раздел

Косвенно
Да
Да
Да
Нет

17.3
17.4.1
17.4.1
17.4.1
17.2.7

Нет
Да
Да
Да
Нет

Tlgm: @it_boooks

Упражнения  715

17.5. упражнения
Упражнение 17.1 [обучение SVM-классификатора вручную*].
(Источник: Яаккола.)
Рассмотрим одномерный набор данных с двумя точками: (x1 = 0, y1 = -1)
и (x2 = 2, y2 = 1). Рассмотрим отображение каждой точки в трехмерное про‑
странство с помощью вектора признаков ϕ(x) = [1, 2 x, x2]⟙. (Это эквивалент‑
но использованию полиномиального ядра второй степени.) Классификатор
с максимальным зазором имеет вид:
min||w||2 при условиях

(17.119)

y1(w⟙ϕ(x1) + w0) ³ 1,

(17.120)

y2(w⟙ϕ(x2) + w0) ³ 1.

(17.121)

a. Найдите вектор, параллельный оптимальному вектору w. Указание:
обратитесь к рис. 7.8, где показано, что вектор w перпендикулярен
решающей границе между двумя точками в трехмерном пространстве
признаков.
b. Каково значение зазора при таком w? Указание 1: вспомните, что за‑
зор – это расстояние от каждого опорного вектора до решающей гра‑
ницы. Указание 2: подумайте о геометрии двух точек и разделяющей
их прямой в пространстве.
c. Решите уравнения относительно w, воспользовавшись тем, что зазор
равен 1/||w||.
d. Решите уравнения относительно w0, используя найденное значение w
и формулы (17.119)–(17.121). Указание: точки будут лежать на решаю‑
щей границе, поэтому неравенства точные.
e. Выпишите дискриминантную функцию f(x) = w0 + w⟙ϕ(x) в виде явной
функции от x.

Глава

Tlgm: @it_boooks

18

Деревья, леса,
бэггинг и бустинг
18.1. дереВья классиФикации и регрессии
Деревья классификации и регрессии, или CART-модели [BFO84], называ‑
емые также решающими деревьями [Qui86; Qui93], определяются рекурсив‑
ным разбиением пространства входов и определением локальной модели
в каждой получающейся области. Модель в целом представлена деревом,
имеющим по одному листовому узлу на каждую область.

18.1.1. Определение модели
Начнем с рассмотрения деревьев регрессии, в которых все входные данные
вещественны. Дерево состоит из множества вложенных решающих правил.
В каждом узле i измерение di признака входного вектора x сравнивается
с пороговым значением ti, после чего x передается ниже по левой ветви,
если di больше порога, и по правой, если меньше. В листовых узлах модель
определяет предсказанный выход для всех векторов, попавших в эту часть
пространства входов.
Например, рассмотрим дерево регрессии на рис. 18.1a. В первом узле за‑
дается вопрос, верно ли, что x1 меньше некоторого порога t1. Если да, то затем
дерево смотрит, верно ли, что x2 меньше другого порога t2. Если да, то мы
переходим к листовому узлу вдоль левой ветви. Это соответствует области
пространства:
R1 = {x : x1 £ t1, x2 £ t2}.

(18.1)

Мы можем ассоциировать с этой областью вычисление предсказанного
выхода, основываясь на осепараллельном разбиении пространства, ин‑
дуцированном ветвями дерева. В данном случае двумерное пространствов
входов разбивается на пять областей, как показано на рис. 18.1b1. Теперь
1

Если областей достаточно (т. е. дерево достаточно глубокое), то можно построить
кусочно-линейную аппроксимацию решающих границ более сложной формы, но
для обучения такой модели необходимо очень много данных.

Tlgm: @it_boooks

Деревья классификации и регрессии  717

можно связать с каждой из этих областей средний отклик, что приведет к ку‑
сочно-постоянной поверхности, показанной на рис. 18.1b. Например, выход
для области 1 можно оценить по формуле:
(18.2)

(а)

(b)

Рис. 18.1  (a) Дерево регрессии, построенное по двум входам. (b) Соответствующая кусочно-постоянная поверхность. На основе рис. 9.2 из работы
[HTF09]. Построено программой по адресу figures.probml.ai/book1/18.1

Формально дерево регрессии определяется следующим образом:
(18.3)
где Rj – область, заданная j-м листовым узлом, wj – предсказанный выход для
этого узла, а θ = {(Rj, wj) : j = 1 … J }, где J – число узлов. Сами области опре‑
деляются размерностями признаков, использованных при каждом делении
пространства, и соответствующими порогами на пути от корня к листу. На‑
пример, на рис. 18.1a имеем R1 = [(d1 £ t1), (d2 £ t2)], R2 = [(d1 £ t1), (d2 > t2),
(d3 £ t3)] и т. д. (Для категориальных признаков можно определить разбиение,
основанное на сравнении признака di с каждым из его возможных значений,
а не с числовым порогом.) О том, как обучать решающее дерево, мы погово‑
рим в разделе 18.1.2.
Для задач классификации листья содержат распределение меток классов,
а не средний отклик, см. пример дерева классификации на рис. 18.2.

18.1.2. Обучение модели
Для обучения модели нужно минимизировать следующую потерю:
(18.4)

Tlgm: @it_boooks

718  Деревья, леса, бэггинг и бустинг

(a)

(b)

Рис. 18.2  (a) Множество геометрических фигур с соответствующими бинарными метками. Признаками являются: цвет (значения «синий», «красный»,
«другой»), форма (значения «эллипс», «другая») и размер (вещественное). (b) Гипотетическое дерево классификации для аппроксимации этих данных. Лист
с меткой (n1, n0) означает, что в эту область попало n1 положительных примеров
и n0 отрицательных

К сожалению, эта функция не дифференцируема из-за необходимости
обучать дискретную структуру дерева. В действительности задача нахож‑
дения оптимального разделения данных является NP-полной [HR76]. Стан‑
дартная практика – использовать жадную процедуру, итеративно добавляя
по одному узлу за раз. Этот подход используется в алгоритмах CART [BFO84],
C4.5 [Qui93] и ID3 [Qui86] – трех популярных реализациях метода.
Идея следующая. Допустим, что мы находимся в узле i, и пусть 𝒟i = {(xn, yn)
Î Ni} – множество примеров, достигающих этого узла. Обозначим 𝒟iL(j, t) =
{(xn, yn) Î Ni : yn,j £ t} и 𝒟iR(j, t) = {(xn, yn) Î Ni : yn,j > t} разделение этих приме‑
ров на левое и правое поддерево. (Для категориальных признаков полагаем
𝒟iL(j, t) = {(xn, yn) Î Ni : yn,j = t} и 𝒟iR(j, t) = {(xn, yn) Î Ni : yn,j ¹ t}.) Выбираем
лучший признак ji, по которому производить разделение, и лучшее значение
этого признака, ti, следующим образом:
(18.5)
где функция стоимости c() определена ниже.
Множество возможных порогов 𝒯j для признака j можно получить, отсо‑
ртировав уникальные значения {xnj}. Например, если признак 1 принимает
значения {4.5, -12, 72, -12}, то полагаем 𝒯1 = {-12, 4.5, 72}.
В случае категориальных входов предположим, что признак j принимает
Kj возможных значений. Тогда мы проверяем совпадение признака с каж‑
дым из этих значений. Тем самым определяется множество Kj возможных
бинарных разделений. Или же можно допустить многопутевое разделение
с Kk ветвями, как показано на рис. 18.2. Однако при таком подходе возможна
фрагментация, когда в каждое поддерево попадает слишком мало данных,
что ведет к переобучению. Поэтому чаще всего используют бинарное раз‑
деление.
Теперь обсудим функцию стоимости c(𝒟i), которая используется для вы‑
числения стоимости узла i. В случае регрессии можно использовать средне‑
квадратическую ошибку:

Tlgm: @it_boooks

Деревья классификации и регрессии  719

(18.6)
где = (1/|𝒟i|)ånÎ𝒟i yn – среднее значение откликов по всем примерам, до‑
стигающим узла i.
В случае классификации сначала вычисляем эмпирическое распределение
меток классов для этого узла:
(18.7)
Зная его, можно вычислить индекс Джини:
(18.8)
Это ожидаемая частота ошибок. Чтобы убедиться в этом, заметим, что
π̂ic – вероятность, что случайный пример в листовом узле действительно при‑
надлежит классу c, а 1 - π̂ic – вероятность его неправильной классификации.
Альтернативно можно определить стоимость как энтропию или девиацию узла:
(18.9)
Для чистого узла (содержащего примеры только из одного класса) энтро‑
пия будет нулевой.
Взяв одну из этих функций, мы можем воспользоваться формулой (18.5)
для выбора наилучшего признака и лучшего порога в каждом узле. Затем
разделяем данные и вызываем алгоритм обучения рекурсивно для каждого
подмножества.

18.1.3. Регуляризация
Если позволить дереву стать слишком глубоким, то оно может достичь ну‑
левой ошибки на обучающем наборе (в предположении незашумленности
меток). Для этого нужно только разделить пространство входов на достаточ‑
но мелкие области, в которых метки одинаковы. Однако это, как правило,
ведет к переобучению. Есть два основных способа предотвратить его. Пер‑
вый – применить некоторую эвристику для остановки процесса роста дерева,
например не допускать слишком малого числа примеров в узле или огра‑
ничить максимальную глубину. Второй – дать возможность дереву достичь
максимальной глубины, когда дальнейшее разделение невозможно, а затем
произвести обрезку, т. е. объединить поддеревья в их общий родитель (см.,
например, [BA97b]). Это может в какой-то мере компенсировать жадный
рост дерева сверху вниз. (Например, рассмотрим применение нисходящего
подхода к данным XOR на рис. 13.1: алгоритм не произвел бы ни одного

Tlgm: @it_boooks

720  Деревья, леса, бэггинг и бустинг
разделения, потому что никакой признак сам по себе не обладает пред‑
сказательной способностью.) Однако прямой рост в сочетании с обратной
обрезкой медленнее жадного нисходящего алгоритма.

18.1.4. Обработка отсутствующих входных
признаков
В общем случае дискриминантным моделям, к которым относятся и нейрон‑
ные сети, трудно справиться с отсутствием некоторых входных признаков,
мы обсуждали этот вопрос в разделе 1.5.5. Однако конкретно для деревьев
имеются простые эвристики, которые могут дать неплохой результат.
Стандартная эвристика для обработки отсутствующих входов в решаю‑
щих деревьях – поискать серию «резервных» переменных, которые могут
индуцировать разделение, похожее на то, что дает выбранная переменная,
в каждой точке разделения; их можно использовать, когда на этапе тестиро‑
вания выбранная переменная не наблюдается. Такие разделения называют
суррогатными. Этот метод находит сильно коррелированные признаки, так
что его можно рассматривать как обучение локальной совместной модели
входа. Преимущество перед порождающей моделью в том, что моделируется
не все совместное распределение входов, а недостаток в том, что метод очень
сильно зависит от конкретной ситуации. Более простой подход, примени‑
мый к категориальным переменным, – завести новое значение «отсутствует»
и после этого считать, что данные наблюдаются в полном объеме.

18.1.5. Плюсы и минусы
Древовидные модели популярны по нескольким причинам:
 они легко поддаются интерпретации;
 они позволяют обрабатывать смесь дискретных и непрерывных входов;
 они нечувствительны к монотонным преобразованиям входов (потому
что точки разделения определяются ранжированием примеров), по‑
этому нет необходимости стандартизировать данные;
 они автоматически производят отбор признаков;
 они относительно робастны к выбросам;
 они быстро обучаются и хорошо масштабируются на большие наборы
данных;
 они способны обрабатывать отсутствие входных признаков.
Однако у древовидных моделей есть и недостатки. Главный из них – что
их предсказания не очень точны по сравнению с моделями других видов.
Отчасти это вызвано жадностью алгоритма построения дерева.
С этим связана еще одна проблема – неустойчивость деревьев: неболь‑
шие изменения входных данных оказывают большое влияние на структуру
всего дерева вследствие иерархической природы процесса его роста, из-за
чего ошибки на верхнем уровне распространяются на все дерево. Напри‑
мер, рассмотрим дерево на рис. 18.3b. Стоило убрать единственную точку из
обучающего набора, как решающая поверхность кардинально изменилась

Tlgm: @it_boooks

Ансамблевое обучение  721

длина лепестка (см) M/2) = 1 - B(M/2, M, θ),

(18.11)

где B(x, M, θ) – функция биномиального распределения с параметрами M и θ,
вычисленными в точке x. Для θ = 0.51 и M = 1000 получаем p = 0.73, а при
M = 10 000 получаем p = 0.97.
Качество подхода на основе голосования значительно улучшилось, потому
что мы предположили, что каждый предиктор дает независимые ошибки. На
практике ошибки могут коррелировать, но если объединить в ансамбль раз‑
нообразные модели, то все равно можно добиться успеха.

18.2.1. Стековое обобщение
Альтернатива использованию невзвешенного среднего или мажоритарного
голосования – обучиться комбинированию базовых моделей:
(18.12)
Это называется стековым обобщением [Wol92] (иногда употребляется
термин «стогование»). Отметим, что веса в этой формуле необходимо об‑
учать на отдельном наборе данных, иначе вся их масса придется на базовую
модель, дающую наилучшее качество.

18.2.2. Ансамблевое обучение не то же,
что байесовское усреднение моделей
Стоит отметить, что ансамбль моделей не то же самое, что использование
байесовского усреднения моделей (BMA) (раздел 4.6), как отмечено в работе
[Min00]. Ансамбль рассматривает более широкий класс гипотез вида

Tlgm: @it_boooks

Бэггинг  723

(18.13)
тогда как в BMA используются модели вида
(18.14)
Ключевое различие в том, что в случае BMA сумма весов p(m|𝒟) равна 1,
и в пределе, когда данные бесконечны, будет выбрана только одна модель
(а именно модель MAP). В ансамбле же веса wm могут быть произвольны и не
сходятся к единственной модели.

18.3. бЭггинг
В этом разделе мы обсудим бэггинг [Bre96] (сокращение от «bootstrap ag‑
gregating» – бутстрэп-агрегирование). Это простая форма ансамблевого об‑
учения, когда M разных базовых моделей обучаются на разных случайных
выборках данных; это повышает разнообразие предсказаний. Выборка из
набора данных производится с возвращением (техника, называемая бут‑
стрэпом, – см. раздел 4.7.3), т. е. один и тот же пример может встречаться не‑
сколько раз, пока не наберется N примеров для каждой модели (где N – число
исходных точек данных).
Недостаток бутстрэпа заключается в том, что каждая базовая модель ви‑
дит в среднем только 63 % уникальных входных примеров. Чтобы убедиться
в этом, заметим, что вероятность того, что некоторый элемент не будет вы‑
бран из набора размера N ни в одной из N попыток, равна (1 - 1/N )N. В преде‑
ле, когда N стремится к бесконечности, это выражение стремится к e-1 » 0.37,
а значит, выбрано будет только 1 - 0.37 = 0.63 всего множества точек.
37 % обучающих примеров, не используемых заданной базовой моделью,
называются не вошедшими в набор экземплярами (out-of-bag – oob). Ка‑
чество предсказаний базовой модели на этих экземплярах можно исполь‑
зовать как оценку качества на тестовом наборе. Это полезная альтернатива
перекрестной проверке.
Главное преимущество бутстрэпа в том, что он не дает ансамблю слишком
сильно зависеть от любого конкретного примера, что повышает робастность
и обобщаемость [Gra04]. Например, сравнивая рис. 18.3b и 18.3c, мы видим,
что исключение всего одного примера из обучающего набора может оказы‑
вать сильное влияние на обученное решающее дерево (хотя алгоритм роста
дерева детерминирован). Усредняя предсказания обеих моделей, мы получа‑
ем более надежную модель, показанную на рис. 18.3d. Это преимущество ста‑
новится еще более заметным с увеличением размера ансамбля, как показано
на рис. 18.4. (Конечно, при этом потребляется больше времени и памяти.)
Бэггинг не всегда улучшает качество. В частности, он опирается на то, что
базовые модели дают неустойчивую оценку, поэтому отсутствие некоторых
данных значительно изменяет свойства результирующей модели. Так обсто‑

Tlgm: @it_boooks

724  Деревья, леса, бэггинг и бустинг
ит дело для решающих деревьев, но не для моделей других видов, например
классификаторов по ближайшим соседям. Для нейронных сетей ситуация
еще более запутанная. Они могут быть неустойчивы относительно своего
обучающего набора. С другой стороны, глубокие сети будут работать хуже,
если видят только 63 % своих данных, поэтому бэггинг в применении к ним
обычно не показывает выдающихся результатов [NTL20].

(a)

(b)

(c)

(d)

Рис. 18.4  (a) Одно решающее дерево. (b-c) Бэггинговый ансамбль из 10 и 50 деревьев. (d) Случайный лес из 50 деревьев.
На основе рис. 7.5 из работы [Gér19]. Построено программой по
адресу figures.probml.ai/book1/18.4

18.4. слуЧайные леса
Бэггинг опирается на предположение о том, что повторный прогон одного
и того же алгоритма на разных подмножествах набора данных будет давать
достаточно разнообразные базовые модели. Метод случайных лесов [Bre01]
стремится еще больше декоррелировать базовых обучаемых за счет того, что
обучает деревья на случайно выбранном подмножестве входных переменных
(в каждом узле дерева) и на случайно выбранном подмножестве данных. Для
этого формула (18.5) изменяется, так что измерение j признака, по которо‑
му производится разделение, оптимизируется на случайном подмножестве
признаков, Si ⊂ {1, …, D}. Например, рассмотрим набор данных для обучения
распознаванию почтового спама [HTF09, стр. 301]. Этот набор данных со‑

Tlgm: @it_boooks

Бустинг  725

держит 4601 сообщений, классифицированных как спам (1) или неспам (0).
Данные были выложены в открытый доступ Джорджем Форманом из HewlettPackard (HP) Labs.
Существует 57 количественных (вещественных) предикторов, а именно:
 48 признаков, соответствующих проценту слов в сообщении, совпада‑
ющих с заданными словами, например «remove» или «labs»;
 шесть признаков, соответствующих проценту символов в электронной
почте, совпадающих с заданным символом, а именно ; . [ ! $ #;
 три признака, соответствующих средней длине, максимальной длине
и сумме длин непрерывных последовательностей прописных букв (эти
признаки называются CAPAVE, CAPMAX и CAPTOT).
На рис. 18.5 показано, что случайные леса работают намного лучше, чем
решающие деревья, полученные бэггингом, потому что много входных при‑
знаков нерелевантны. (Мы также видим, что метод, называемый «бустингом»
и обсуждаемый в разделе 18.5, работает еще лучше, однако он требует по‑
следовательного обучения деревьев, тогда как случайные леса можно обучать
параллельно.)

Рис. 18.5  Зависимость верности предсказаний от размера ансамбля деревьев для бэггинга, случайных лесов и градиентного
бустинга с логарифмической потерей. На основе рис. 15.1 из работы [HTF09]. Построено программой по адресу figures.probml.
ai/book1/18.5

18.5. бустинг
Ансамбли деревьев, все равно обученные с помощью бэггинга или алгоритма
случайных лесов, соответствуют модели вида
(18.15)

Tlgm: @it_boooks

726  Деревья, леса, бэггинг и бустинг
где Fm – m-е дерево, а βm – соответствующий вес, который часто полагают рав‑
ным 1. Это можно обобщить, допустив в качестве Fm функции-аппроксимато‑
ры общего вида, в частности нейронные сети, а не только деревья. Результат
называется аддитивной моделью [HTF09]. Можно считать, что это линейная
модель с адаптивными базисными функциями. Цель, как обычно, – ми‑
нимизировать эмпирическую потерю (с факультативным регуляризатором):
(18.16)
Бустингом (усилением) [Sch90; FS96] называется алгоритм последова‑
тельного обучения аддитивных моделей, где каждая функция Fm – бинар‑
ный классификатор, который возвращает Fm Î {-1, +1}. Именно, мы сначала
обучаем F1 на оригинальных данных, а затем назначаем образцам данных
веса, равные ошибкам, допущенным F1, так что неправильно классифици‑
рованные примеры получают больший вес. Этот процесс повторяется, пока
не будет обучено достаточное число компонентов M. (M – гиперпараметр,
управляющий сложностью модели в целом, его можно выбрать, следя за ка‑
чеством на контрольном наборе и применяя раннюю остановку.)
Можно показать, что, коль скоро верность каждого предиктора Fm лучше
случайной (даже на взвешенном наборе данных), ансамбль классификаторов
будет иметь лучшую верность, чем любой из его компонентов. То есть если Fm –
слабый обучаемый (его верность лишь чуть выше 50 %), то его качество мож‑
но усилить, применив описанную выше процедуру, так что окончательный
предиктор f станет сильным обучаемым. (Дополнительные сведения о под‑
ходе к бустингу на основе теории обучения см., например, в работе [SF12].)
Заметим, что бустинг уменьшает смещение сильного обучаемого благо‑
даря тому, что обучает деревья, зависящие друг от друга, тогда как бэггинг
и случайные леса уменьшают дисперсию, обучая независимые деревья. Во
многих случаях бустинг работает лучше (см. пример на рис. 18.5).
Оригинальный алгоритм бутинга был ориентирован на бинарную класси‑
фикацию с вполне конкретной функцией потерь, как будет объяснено в раз‑
деле 18.5.3, и был выведен из теории PAC-обучения (см. раздел 5.4.4). Далее
в этом разделе мы будем говорить о статистической версии бустинга, раз‑
работанной в [FHT00; Fri01], которая применима к произвольным функциям
потерь, что делает метод пригодным для регрессии, многоклассовой класси‑
фикации, ранжирования и т. д. Наше изложение опирается на работы [HTF09,
глава 10] и [BH07], в которых можно найти дополнительную информацию.

18.5.1. Прямое поэтапное аддитивное
моделирование
В этом разделе мы обсудим прямое поэтапное аддитивное моделирование, заключающееся в последовательной оптимизации целевой функции
(18.16) для произвольных (дифференцируемых) функций потерь, где f – ад‑
дитивная модель вида (18.15). Таким образом, на итерации m мы вычисляем

Tlgm: @it_boooks

Бустинг  727

(18.17)
Затем полагаем
fm(x) = fm-1(x) + βmF(xi; θm) = fm-1(x) + βmFm(xi).

(18.18)

(Отметим, что мы не изменяем параметры ранее добавленных моделей.) Как
именно выполнять этот шаг оптимизации, зависит от выбранной функции
потерь и (в некоторых случаях) от формы слабого обучаемого F. Мы обсудим
их ниже.

18.5.2. Квадратичная потеря и бустинг
наименьших квадратов
Предположим, что в качестве потери используется квадратичная ошибка,
𝓁(y, ŷ) = (y - ŷ)2. В этом случае i-й член целевой функции на шаге m прини‑
мает вид:
ℓ(yi, fm-1(xi) + βF(xi; θ)) = (yi - fm-1(xi) - βF(xi; θ))2 = (rim - βF(xi; θ))2,

(18.19)

где rim = yi - fm-1(xi) – невязка текущей модели на i-м наблюдении. Эту це‑
левую функцию можно оптимизировать, просто положив β = 1 и подогнав
F к невязкам. Получающийся метод называется бустингом наименьших
квадратов [BY03].
На рис. 18.6 приведен пример этого процесса, причем в качестве слабого
обучаемого используется дерево регрессии глубины 2. Слева показан резуль‑
тат подгонки слабого обучаемого к невязкам, а справа – текущий сильный
обучаемый. Мы видим, что каждый новый слабый обучаемый, добавленный
в ансамбль, исправляет ошибки, допущенные предыдущими версиями мо‑
дели.

18.5.3. Экспоненциальная потеря и AdaBoost
Предположим, что нас интересует бинарная классификация, т. е. предска‑
зание y i Î {-1, +1}. Предположим, что слабый обучаемый вычисляет рас‑
пределение:
(18.20)
т. е. F(x) возвращает половину логарифма отношения шансов. Из формулы
(10.13) мы знаем, что отрицательное логарифмическое правдоподобие равно
(18.21)

Tlgm: @it_boooks

728  Деревья, леса, бэггинг и бустинг
Невязки и предсказания дерева
Обучающий набор

Предсказания ансамбля
Обучающий набор

Невязки

Рис. 18.6  Бустинг с использованием дерева регрессии глубины 2 применительно к одномерному набору данных. На основе рис. 7.9 из работы
[Gér19]. Построено программой по адресу figures.probml.ai/book1/18.6

Эту функцию можно минимизировать, сделав так, чтобы зазор m(x) =
y F(x) был максимально возможным. Из рис. 18.7 видно, что логарифмиче‑
ская потеря – гладкая верхняя граница ступенчатой потери. Видно также,
что отрицательные зазоры штрафуются сильнее, чем положительные, что
нам и нужно (поскольку положительный зазор означает, что классификация
уже правильная).
Однако можно использовать и другие функции потерь. В этом разделе мы
рассмотрим экспоненциальную потерю:
ℓ(y , F(x)) = exp(-y F(x)).

(18.22)

Из рис. 18.7 видно, что это также гладкая верхняя граница ступенчатой
потери. Для генеральной совокупности (с бесконечным размером выбор‑
ки) оптимальное решение в случае экспоненциальной потери такое же, как
в случае логарифмической. Чтобы убедиться в этом, просто приравняем про‑
изводную экспоненциальной потери (для любого x) нулю:
(18.23)

Tlgm: @it_boooks

Бустинг  729

(18.24)
(18.25)

Рис. 18.7  Применение различных функций потерь для
бинарной классификации. По горизонтальной оси откладывается зазор m(x) = y F(x), по вертикальной – потеря.
При вычислении логарифмической потери используется
логарифм по основанию 2. Построено программой по
адресу figures.probml.ai/book1/18.7

Однако оказывается, что экспоненциальную потерю проще оптимизиро‑
вать в бустинговой постановке. (Случай логарифмической потери мы рас‑
смотрим в разделе 18.5.4.) Сначала рассмотрим, как обучить m-го слабого
обучаемого Fm при использовании экспоненциальной потери. На шаге m
нужно минимизировать функцию
(18.26)
где ωi,m exp(-y i fm-1(xi)) – вес, назначенный примеру i, а y i Î {-1, +1}. Эту
целевую функцию можно переписать в виде:
(18.27)
(18.28)
Следовательно, оптимальная функция, которую следует добавить в ан‑
самбль, имеет вид:
(18.29)

Tlgm: @it_boooks

730  Деревья, леса, бэггинг и бустинг
Ее можно найти, применив слабого обучаемого к взвешенному варианту
набора данных с весами ωi,m.
Осталось только найти размер обновления, β. Подставляя Fm в Lm и решая
уравнение относительно β, находим
(18.30)
где
(18.31)
Поэтому обновление в целом принимает вид:
fm(x) = fm-1(x) + βmFm(x).

(18.32)

После обновления сильного обучаемого нужно пересчитать веса для сле‑
дующей итерации:
(18.33)
Если yi = Fm(xi), то yi Fm(xi) = 1, а если yi ¹ Fm(xi), то yi Fm(xi) = -1. Отсюда
-yi Fm(xi) - 2𝕀(yi ¹ Fm(xo)) - 1, так что обновление принимает вид:
(18.34)
Так как множитель e-βm во всех примерах одинаков, его можно опустить.
Если затем положить αm = 2βm, то обновление принимает вид:
(18.35)
Таким образом, мы видим, что веса неправильно классифицированных
примеров экспоненциально увеличиваются. Получившийся алгоритм 8 на‑
зывается Adaboost.M1 [FS96]1.
Многоклассовое обобщение экспоненциальной потери и похожий на ada‑
boost алгоритм ее минимизации, SAMME (stagewise additive modeling using
a multiclass exponential loss function – поэтапное аддитивное моделирова‑
ние с использованием многоклассовой экспоненциальной функции потери),
1

В работе [FHT00] он назван дискретным AdaBoost, потому что в нем предполага‑
ется, что базовый классификатор Fm возвращает бинарную метку класса. Если вме‑
сто этого Fm возвращает вероятность, то можно использовать модифицированный
алгоритм, известный под названием настоящий AdaBoost. Детали см. в [FHT00].

Tlgm: @it_boooks

Бустинг  731

описан в работе [Has+09]. Он реализован в библиотеке scikit_learn (класс
AdaBoostClassifier).
Алгоритм 8. Алгоритм Adaboost.M1 для бинарной классификации
с экспоненциальной потерей
1
2
3
4
5
6
7

ωi = 1/N;
for m = 1 : M do
Обучить классификатор Fm(x) на обучающем наборе с весами w;
Вычислить errm =

;

Вычислить αm = log[(1 - errm)/errm];
Положить ωi ¬ ωi exp[αm 𝕀(y i ¹ Fm(xi))];
Вернуть f(x) = sgn [åM
m=1 αm Fm(x)];

18.5.4. LogitBoost
Проблема экспоненциальной потери в том, что она назначает слишком боль‑
шой вес неправильно классифицированным примерам, и это ясно показы‑
вает экспоненциальный рост в левой части рис. 18.7. Поэтому метод очень

уязвим к выбросам (неправильно помеченным примерам). Кроме того, e-y f
не является логарифмом никакой функции вероятности для бинарных пере‑
менных y Î {-1, +1}, следовательно, мы не можем восстановить оценки ве‑
роятности по f(x).
Естественная альтернатива – использовать логарифмическую потерю, об‑
суждавшуюся в разделе 18.5.3. Она штрафует за ошибки лишь линейно, как
видно из рис. 18.7. Это также означает, что мы сможем извлечь вероятности
из окончательной обученной функции по формуле:
(18.36)
Цель – минимизировать ожидаемую логарифмическую потерю:
(18.37)
Применив обновление Ньютона к этой целевой функции (похожее на IRLS),
мы можем вывести алгоритм 9, который называется logitBoost [FHT00]. Его
ключевая особенность – умение слабого обучаемого F решать задачу взве‑
шенных наименьших квадратов. Этот метод можно обобщить на многоклас‑
совую постановку, как описано в работе [FHT00].

Tlgm: @it_boooks

732  Деревья, леса, бэггинг и бустинг
Алгоритм 9. Алгоритм LogitBoost для бинарной классификации
с логарифмической потерей
1
2
3
4
5
6
7
8

ωi = 1/N, πi = 1/2;
for m = 1 : M do
Вычислить рабочую характеристику
Вычислить веса ωi = πi(1 - πi);
Fm = argminF åNi=1 ωi(zi - F(xi))2;
Обновить f(x) ¬ f(x) + ½Fm(x);
Вычислить πi = 1/(1 + exp(-2f(xi)));
Вернуть f(x) = sgn [åM
m=1 Fm(x)];

18.5.5. Градиентный бустинг
Вместо того чтобы выводить новые версии бустинга для каждой функции
потерь, можно построить обобщенную версию, известную под названием
градиентный бустинг [Fri01; Mas+00]. Чтобы понять, как она устроена,
предположим, что мы ищем fˆ = argminf ℒ(f), выполняя градиентный спуск
в пространстве функций. Поскольку функции – бесконечномерные объекты,
будем представлять их значениями на обучающем наборе, f = (f (x1), …, f(xN)).
На шаге m положим gm равной градиенту ℒ(f ), вычисленному при f = fm-1:
(18.38)

Градиенты некоторых распространенных функций потерь приведены
в табл. 18.1. Затем производится обновление:
fm = fm-1 - βm gm,

(18.39)

где βm – длина шага, выбираемая следующим образом:
(18.40)
Таблица 18.1. Некоторые часто используемые функции потерь, их градиенты
и минимизаторы на генеральной совокупности F*. Для задач бинарной
классификации предполагается, что yi Î {–1, +1} и πi = σ(2f(xi )). Для задач регрессии
предполагается, что yi Î ℝ. На основе [HTF09, стр. 360] и [BH07, стр. 483]
Название
Квадратичная ошибка
Абсолютная ошибка
Экспоненциальная потеря
Бинарная логарифмическая потеря

Многоклассовая логарифмическая потеря

Потеря
½(yi f(xi))2
|yi f(xi)|
exp( y i f(xi))


log(1 e y i fi )
c yic log πic

𝓁(yi, f(xi))/ f(xi)
yi f(xi)
sgn(yi f(xi))
y i exp( y i f(xi))
yi πi
yic

πic

Tlgm: @it_boooks

Бустинг  733

В такой форме алгоритм не особенно полезен, потому что оптимизирует f
только на фиксированном множестве N точек, т. е. мы не обучаем функцию,
способную к обобщению. Однако его можно модифицировать, обучив слабо‑
го обучаемого аппроксимировать отрицательный сигнал градиента. То есть
будем применять обновление:
(18.41)
Алгоритм в целом приведен в алгоритме 10. Мы опустили шаг линейного
поиска βm – необязательный, как показано в работе [BH07]. Однако мы ввели
скорость обучения, или коэффициент усадки 0 < ν £ 1, чтобы контролиро‑
вать величину обновлений в целях регуляризации.
Алгоритм 10. Градиентный бустинг
1
2
3
4
5
6

Инициализировать f0(x) = argminF åNi=1 L(yi, F(xi));
for m = 1 : M do
Вычислить невязку градиента
Использовать слабого обучаемого для вычисления Fm = argminF åNi=1(rim - F(xi)2;
Обновить fm(x) = fm-1(x) + νFm(x);
Вернуть f(x) = fM(x)

Применяя этот алгоритм с квадратичной потерей, мы возвращаемся
к L2Boosting, потому что -gim = yi - fm-1(xi) – просто невязка. Но его можно
применять и с другими функциями потерь, например абсолютной потерей
или потерей Хьюбера (раздел 5.1.5.3), что полезно для задач робастной ре‑
грессии.
Для классификации можно использовать логарифмическую потерю. Тог‑
да мы получим алгоритм BinomialBoost [BH07]. Его преимущество перед
LogitBoost в том, что не нужно выполнять обучение с весами; нужно просто
применить модель регрессии типа черного ящика к вектору градиента. Для
многоклассовой классификации мы можем обучить C отдельных деревьев
регрессии, используя псевдоневязку вида:
(18.42)
Хотя деревья обучаются по отдельности, их предсказания объединяются
посредством преобразования softmax:
(18.43)
Если набор данных велик, то можно использовать стохастический вариант,
в котором на каждой итерации производится подвыборка (без возвращения)

Tlgm: @it_boooks

734  Деревья, леса, бэггинг и бустинг
случайной доли данных для передачи дереву регрессии. Он называется стохастическим градиентным бустингом [Fri99]. Мало того что он быстрее,
так еще и обобщается лучше, потому что подвыборка данных – это форма
регуляризации.

18.5.5.1. Градиентный бустинг деревьев
На практике градиентный бустинг почти всегда предполагает, что слабый
обучаемый – это дерево регрессии вида
(18.44)
где wjm – предсказанный выход для области Rjm. (В общем случае wjm может
быть вектором.) Эта комбинация называется деревьями регрессии с градиентным бустингом, или просто градиентным бустингом деревьев.
(Один из вариантов называется MART – «multivariate additive regression trees»
(многомерные аддитивные деревья регрессии) [FM03].)
Чтобы воспользоваться этим в алгоритме градиентного бустинга, мы сна‑
чала находим хорошие области Rjm для дерева m, применяя стандартное об‑
учение деревьев регрессии (см. раздел 18.1) на невязках, затем находим веса
для каждого листа, решая задачу:
(18.45)
Для квадратичной ошибки (используемой в сочетании с градиентным бустингом) оптимальным весом ŵjm будет просто среднее невязок в листе.

18.5.5.2. XGBoost
XGBoost (https://github.com/dmlc/xgboost) (extreme gradient boosting – экстре‑
мальный градиентный бустинг) – очень эффективная и широко используемая
реализация градиентного бустинга деревьев, в которой добавлено несколько
улучшений сверх описанных в разделе 18.5.5.1 Детали можно найти в рабо‑
те [CG16], но вкратце речь идет о следующем: добавляется регуляризатор
сложности дерева, в котором используется аппроксимация потери второго
порядка (из работы [FHT00]) вместо простой линейной аппроксимации; про‑
изводится выборка признаков во внутренних узлах (как в случайных лесах),
и применяются различные методы информатики (например, реализация
вычислений вне памяти для больших наборов данных) с целью улучшить
масштабируемость1.
Если говорить о деталях, то XGBoost оптимизирует следующую регуляри‑
зированную целевую функцию:

1

Есть и другие популярные пакеты для градиентного бустинга деревьев, например:
CatBoost (https://catboost.ai/) и LightGBM (https://github.com/Microsoft/LightGBM).

Tlgm: @it_boooks

Бустинг  735

(18.46)
где
(18.47)
– регуляризатор, в котором J – число листьев, а γ ³ 0 и λ ³ 0 – коэффициенты
регуляризации. На m-м шаге потеря равна
(18.48)
Мы можем вычислить разложение в ряд Тейлора до членов второго по‑
рядка:
(18.49)
где him – гессиан:
(18.50)
В случае деревьев регрессии имеем F(x) = wq(x), где q : ℝD ® {1, …, J} опре‑
деляет, какому листовому узлу принадлежит x, а w Î ℝJ – веса листьев. Тогда
формулу (18.49) можно переписать следующим образом, опустив члены, не
зависящие от Fm:
(18.51)
(18.52)
где Ij = {i : q(xi) = j} – множество индексов точек, приписанных j-му узлу.
Определим Gjm = åiÎIj gim и Hjm = åiÎIj him. Тогда предыдущую формулу мож‑
но упростить:
(18.53)
Это выражение квадратично зависит от wj, поэтому оптимальные веса
имеют вид:
(18.54)

Tlgm: @it_boooks

736  Деревья, леса, бэггинг и бустинг
Тогда потеря при вычислении различных древовидных структур q равна
(18.55)
Эту потерю можно жадно оптимизировать, применяя рекурсивную про‑
цедуру разделения узлов, описанную в разделе 18.1. Именно, для данного
листа j рассматривается разделение его на левую и правую часть, I = IL ∪ IR.
Выигрыш (уменьшение потери) при таком разделении можно вычислить
следующим образом:
(18.56)
где GL = åiÎIL gim, GR = åiÎIR gim, HL = åiÎIL him и HR = åiÎIR him. Таким образом,
мы видим, что разделять узел бессмысленно, если выигрыш меньше γ.
Быстрое приближенное вычисление этой целевой функции, не требующее
сортировки признаков (для выбора оптимального порога разделения), опи‑
сано в работе [CG16].

18.6. интерпретация ансамблей дереВьеВ
Деревья популярны, потому что допускают интерпретацию. К сожалению,
ансамбли деревьев (в форме бэггинга, случайных лесов или бустинга) таким
свойством уже не обладают. Но есть простые методы, позволяющие все-таки
понять, какая функция была обучена.

18.6.1. Важность признаков
Для одного решающего дерева T в работе [BFO84] предложена следующая
мера важности признака k:
(18.57)
где суммирование производится по всем нелистовым (внутренним) узлам,
Gj – выигрыш в верности (уменьшение стоимости) в узле j, а vj = k, если в узле j используется признак k. Мы можем получить более надежную оценку,
усреднив по всем деревьям в ансамбле:
(18.58)
Вычисленные оценки можно нормировать, так чтобы наибольшее значе‑
ние было равно 100 %. Ниже приведено несколько примеров.

Tlgm: @it_boooks

Интерпретация ансамблей деревьев  737

Пример на рис. 18.8 относится
к оцениванию важности признаков
для классификатора, обученного раз‑
личать цифры 0 и 8 из набора MNIST.
Мы видим, что он уделяет наибольшее
внимание тем частям изображения,
в которых эти классы различаются.
На рис. 18.9 показан график от‑
носительной важности признаков
в наборе данных для распознавания
спама (раздел 18.4). Неудивительно,
что самыми важными являются сло‑
ва «george» (имя получателя) и «hp»
(компания, в которой он работает),
а также символы ! и $. (Отметим, что
информативным является как при‑
сутствие, так и отсутствие этих при‑
знаков.)

Очень важный

Неважный

Рис. 18.8  Важность признаков классификатора в виде случайного леса, обученного распознавать цифры из набора MNIST,
принадлежащие классам 0 и 8. На основе
рис. 7.6 из [Gér19]. Построено программой
по адресу figures.probml.ai/book1/18.8

Рис. 18.9  Важность признаков для классификатора, методом градиентного
бустинга обученного отличать спамные почтовые сообщения от нормальных.
Набор данных содержит X обучающих примеров с Y признаками, соответствующими частоте токенов. На основе рис. 10.6 из работы [HTF09]. Построено программой по адресу figures.probml.ai/book1/18.9

Tlgm: @it_boooks

738  Деревья, леса, бэггинг и бустинг

18.6.2. Графики частичной зависимости
Идентифицировав наиболее релевантные входные признаки, мы можем по‑
пытаться оценить их влияние на выход. Графиком частичной зависимости
для признака k называется график зависимости функции
(18.59)

Частичная зависимость
Частичная зависимость

Частичная зависимость

Частичная зависимость

от xk. Таким образом, мы исключаем путем суммирования все признаки, кро‑
ме k. В случае бинарного классификатора это выражение можно преобразовать
в логарифм отношения шансов, log p(y = 1|xk)/p(y = 0|xk), перед тем как строить
график. На рис. 18.10a это проиллюстрировано для четырех разных признаков
из набора данных для распознавания спама. Мы видим, что по мере возрас‑
тания частоты ! и «remove» возрастает и вероятность спама. Наоборот, при
возрастании частоты «edu» или «hp» вероятность спама уменьшается.

(a)

(b)

Рис. 18.10  (a) Частичная зависимость логарифма отношения шансов класса
«спам» для четырех важных предикторов. Красные риски на горизонтальной оси –
децили эмпирического распределения признака. (b) Совместная частичная зависимость логарифма отношения шансов от признаков hp и !. На основе рис. 10.6–10.8
из работы [HTF09]. Построено программой по адресу figures.probml.ai/book1/18.10

Можно также попытаться уловить эффекты взаимодействия между при‑
знаками j и k, вычислив выражение:
(18.60)
Для примера со спамом его график для признаков «hp» и ! показан на
рис. 18.10b. Мы видим, что более высокая частота ! делает сообщение больше
похожим на спам, причем вероятность этого значительно возрастает, если
слово «hp» отсутствует.

Часть

V

Tlgm: @it_boooks

ЗА ПРЕДЕЛАМИ
ОБУ ЧЕНИЯ
С У ЧИТЕЛЕМ

Глава

19

Tlgm: @it_boooks

Обучение при меньшем
числе помеченных
примеров
Во многих моделях МО, особенно в нейронных сетях, параметров гораздо
больше, чем имеется помеченных обучающих примеров. Например, в СНС
ResNet (раздел 14.3.4) с 50 слоями 23 млн параметров. А в моделях транс‑
формеров (раздел 15.5) их может быть еще больше. Конечно, эти параметры
сильно коррелированы, поэтому не являются независимыми «степенями
свободы». Но все равно такие большие модели обучаются медленно и, что
еще важнее, склонны к переобучению. Проблема становится особенно серьезной, если нет большого размеченного обучающего набора. В этой главе
мы обсудим некоторые способы решения проблемы, помимо таких общих
методов регуляризации, как ранняя остановка, уменьшение весов и проре‑
живание (см. раздел 13.5).

19.1. приращение данных
Предположим, что имеется всего один небольшой размеченный набор дан‑
ных. Иногда можно создать искусственно модифицированные версии вход‑
ных векторов, улавливающие вариации, которые мы ожидаем увидеть на
этапе тестирования, не меняя при этом оригинальных меток. Это называется
приращением данных (data augmentation)1. Ниже мы приведем несколько
примеров, а затем обсудим, почему этот подход работает.

19.1.1. Примеры
Для задач классификации изображений в число стандартных методов при‑
ращения данных входят случайное кадрирование,изменение масштаба
1

Термин «приращение данных» используется также в статистике, где обозначает
добавление в модель вспомогательных латентных переменных с целью ускорить
сходимость алгоритмов апостериорного вывода [DM01].

Tlgm: @it_boooks

Приращение данных  741

и зеркальное отражение (см. рис. 19.1). В работе [GVZ16] приведен более
сложный пример, когда поверх изображения размещаются символы текста,
что позволяет создавать очень большие наборы реалистичных текстовых
данных. Эта техника была использована для обучения современных систем
нахождения и распознавания текста на изображениях. Из других примеров
приращения данных упомянем искусственное добавление фонового шума
к ясным речевым сигналам и случайную замену символов или слов в текстовых документах.

Рис. 19.1  Иллюстрация случайного кадрирования и изменения масштаба
изображения. Построено программой по адресу figures.probml.ai/book1/19

Если мы можем позволить себе многократное обучение и тестирование
модели на различных версиях данных, то можно выяснить, какие прира‑
щения дают наилучший эффект, применяя такие методы оптимизации, как
обучение с подкреплением (см., например, [Cub+19]) или байесовскую опти‑
мизацию (см., например, [Lim+19]); этот подход называется AutoAugment.
Можно также обучиться комбинированию нескольких приращений, это на‑
зывается AugMix [Hen+20].
Примеры приращения в обработке естественного языка см., например,
в работе [Fen+21].

19.1.2. Теоретическое обоснование
Приращение данных часто значительно улучшает качество (верность пред‑
сказаний, робастность и т. д.). На первый взгляд может показаться, что мы
получаем что-то даром, потому что никаких дополнительных данных не
предоставили. Однако механизм приращения данных можно рассматривать
как способ алгоритмического включения априорных знаний.
Чтобы убедиться в этом, вспомним, что при стандартном ERM-обучении
мы стремимся минимизировать эмпирический риск:
(19.1)
где p*(x, y) аппроксимируется эмпирическим распределением:
(19.2)

Tlgm: @it_boooks

742  Обучение при меньшем числе помеченных примеров
Приращение данных можно интерпретировать как замену эмпирического
распределения следующим алгоритмически сглаженным распределением:
(19.3)
где A – алгоритм приращения данных, который порождает пример x по об‑
учающему примеру xn, не изменяя метку последнего («семантику»). (Очень
простой пример дает гауссово ядро, p(x|xn, A) = 𝒩(x|xn, σ2I).) Это называется
локальной минимизацией риска (vicinal risk minimization) [Cha+01], по‑
тому что мы минимизируем риск в окрестности (vicinity) каждой обучающей
точки x. Дополнительные сведения о таком подходе см. в работах [Zha+17b;
CDL19; Dao+19].

19.2. перенос обуЧения
Этот раздел написан в соавторстве с Колином Раффелем.
Для многих задач, в которых данных не хватает, верхнеуровневая структура
выглядит почти так же, как в задачах с достаточным объемом данных. Рас‑
смотрим, к примеру, задачу точной визуальной классификации птиц,
находящихся под угрозой вымирания. Учитывая, что такие птицы по опре‑
делению встречаются редко, маловероятно, что удастся собрать много раз‑
нообразных помеченных изображений. Однако структурные черты птиц во
многом одинаковы – у большинства из них есть крылья, оперение, клюв,
когти и т. д. Поэтому можно ожидать, что если сначала обучить модель на
большом наборе данных о птицах вообще, а потом продолжить обучение на
небольшом наборе данных о птицах, находящихся под угрозой вымирания,
то качество будет лучше, чем при обучении только на малом наборе.
Это называется переносом обучения, поскольку мы переносим инфор‑
мацию с одного набора данных на другой с помощью разделяемого набора
параметров. Точнее, сначала выполняется фаза предобучения, в которой
модель обучается с параметрами θ на большом исходном наборе данных 𝒟p;
он может быть размеченным или неразмеченным. Затем наступает черед
фазы дообучения на малом целевом наборе представляющих интерес
данных 𝒟q. Ниже мы обсудим обе фазы более подробно, а дополнительные
сведения можно найти, например, в недавних обзорах [Tan+18; Zhu+19].

19.2.1. Дообучение
Временно предположим, что уже имеется предобученный классификатор
p(y|x, θp), например СНС, который хорошо работает для входов x Î 𝒳p (на‑
пример, естественных изображений) и выходов y Î 𝒴p (например, меток
ImageNet), причем данные выбираются из распределения p(x, y), похожего на
то, что использовалось на этапе обучения. Мы хотим создать новую модель

Tlgm: @it_boooks

Перенос обучения  743

q(y|x, θq), которая хорошо работает для входов x Î 𝒳q (например, изображений
птиц) и выходов y Î 𝒴q (например, уточненных меток птиц), причем распре‑
деление данных q(x, y) может отличаться от p.
Мы предполагаем, что множество возможных входов то же самое, т. е.
𝒳q » 𝒳p (например, это RGB-изображения), или что можно легко преобразо‑
вать входы из домена p во входы из домена q (например, преобразовать RGBизображения в полутоновые, отбросив каналы цветности и оставив только
канал яркости). (Если это не так, то, возможно, придется использовать какойнибудь метод адаптации домена, который модифицирует модели, производя
отображение модальностей, как обсуждается в разделе 19.2.5.)
Однако выходные домены обычно различны, т. е. 𝒴q ¹ 𝒴p. Например, 𝒴p
может быть метками ImageNet, а 𝒴q медицинскими метками (скажем, типами
диабетической ретинопатии [Arc+19]). В этом случае нужно «транслировать»
выход предобученной модели в новый домен. Это легко сделать для ней‑
ронных сетей: мы просто «отсекаем» последний слой оригинальной модели
и добавляем вместо него слой с новыми метками классов, как показано на
рис. 19.2. Например, предположим, что p(y|x, θp) = S(y|W2h(x; θ1) + b2), где
θp = (W2, b2, θ1). Тогда можно построить распределение q(y|θq) = S(y|W3⟙ h(x, θ1)
+ b3), где θq = (W3, b3, θ1) и h(x, θ1) – разделяемый нелинейный экстрактор
признаков.
Исходная модель

Конечная модель

Выходной слой

Случайная
инициализация

Выходной слой

Слой : – 1

копия

Слой : – 1

Обучение
с нуля

Предобучение
Дообучение

копия
Слой 1
Исходные
данные

копия

Слой 1
Конечные
данные

Рис. 19.2  Доообучение модели на новом наборе данных. Конечный выходной слой обучается с нуля, поскольку ему может соответствовать другой набор меток. Остальные слои инициализируются своими предыдущими параметрами, а затем могут быть обновлены с малой скоростью обучения. На основе
рис. 13.2.1 из работы [Zha+20]. Печатается с разрешения Астона Чжана

Подвергнув модель такой «хирургической операции», мы сможем дообучить новую модель с параметрами θq = (θ1, θ3), где θ1 – параметры экс‑
трактора признаков, а θ3 – параметры последнего линейного слоя, который
отображает признаки в новый набор меток. Если рассматривать θ1 как «замороженные параметры», то результирующая модель q(y|x, θq) линейна

Tlgm: @it_boooks

744  Обучение при меньшем числе помеченных примеров
относительно своих параметров, так что мы имеем задачу выпуклой оп‑
тимизации, для которой имеется много простых и эффективных методов
обучения (см. часть II). Это особенно полезно в постановке с длинными хво‑
стами, когда некоторые классы встречаются очень редко [Kan+20]. Однако
линейный «декодер» может быть излишне ограничительным, поэтому можно
разрешить и дообучение параметров θ1, но с меньшей скоростью обучения,
чтобы предотвратить слишком сильное отдаление от значений, обученных
на наборе 𝒟p.

19.2.2. Адаптеры

Дообучение всех параметров предобученной модели может оказаться слиш‑
ком медленным, поскольку параметров зачастую чересчур много, а кроме
того, обучение, возможно, придется проводить с малой скоростью, чтобы
низкуровневые экстракторы признаков не ушли слишком далеко от апри‑
орных значений. Кроме того, для каждой новой задачи придется обучать
новую модель, что затруднит разделение задач. Альтернативный подход –
не трогать предобученную модель вообще, но добавить новые параметры,
чтобы модифицировать ее внутреннее поведение, настроив таким образом
процесс извлечения признаков для каждой задачи. Эта идея адаптеров ис‑
следовалась в нескольких работах (например, [RBV17; RBV18; Hou+19]).
На рис. 19.3a показаны адаптеры для трансформерных сетей (раздел 15.5),
предложенные в работе [Hou+19]. Идея в том, чтобы вставить два неглубоких
МСП в каждый слой трансформера: один после слоя многопутевого внима‑
ния, а второй после слоев прямого распространения. Заметим, что в этих
МСП имеются прямые связи, так что их можно инициализировать для реа‑
лизации тождественного отображения. Если признаки в слое трансформера
имеют размерность D, а размер слоев МСП в адаптере равен M, то в каждый
слой добавляется O(DM) новых параметров. Эти адаптерные МСП, а также
параметры слоя нормировки и конечный выходной слой обучаются для каж‑
дой новой задачи, но все остальные параметры заморожены. Эмпирически
на нескольких тестах NLP было показано, что качество результирующей сети
получается лучше, чем при дообучении, при этом число новых параметров
составляет всего от 1 до 10 % от количества первоначальных.
На рис. 19.3b показаны адаптеры для остаточных сетей (раздел 14.3.4),
предложенные в работах [RBV17; RBV18]. Идея в том, чтобы добавить к внутренним слоям СНС сверточный слой α размера 1´1, играющий ту же роль, что
МСП-адаптер в случае трансформера. Его можно добавить последовательно
или параллельно, как показано на диаграмме. Если обозначить адаптерный
слой ρ(x), то можно будет определить последовательный адаптер в виде
ρ(x) = x + diag1(α) ⊛ x = diag1(I + α) ⊛ x,

(19.4)

y = ρ( f ⊛ x) = (diag1(I + α) ⊛ f ) ⊛ x.

(19.5)

где diagL(A) Î ℝL´L´C´D преобразует матрицу A Î ℝC´D в банк поканальных
фильтров. (Для простоты мы опустили пакетную нормировку.) Вставив такой
адаптер после регулярного сверточного слоя f ⊛ x, получим

Tlgm: @it_boooks

Перенос обучения  745

Нормировочный слой

Слой
адаптера

Слой
трансформера
Адаптер

Верхний слой
прямого
распространения

Многопутевое
внимание

Нелинейность

Нормировочный слой

Нижний слой
прямого
распространения

Адаптер
Многопутевое
внимание

(а)

(b)

Рис. 19.3  (a) Добавление адаптерных слоев в трансформер. На основе рис. 2
из работы [Hou+19]. Печатается с разрешения Нила Хоулсби. (b) Добавление
адаптерных слоев в сеть ResNet. На основе рис. 2 из работы [RBV18]. Печатается
с разрешения Сильвестра-Элвиса Ребаффи

Это можно интерпретировать как низкоранговое мультипликативное воз‑
мущение оригинального фильтра f.
Параллельный адаптер можно определить так:
y = f ⊛ x + diag1(α) ⊛ x = ( f + diagL(α)) ⊛ x.

(19.6)

Это можно интерпретировать как низкоранговое аддитивное возмущение
оригинального фильтра f. В обоих случаях если положить α = 0, то адаптер‑
ные слои можно будет инициализировать тождественным преобразованием.
Кроме того, оба метода требуют O(C2) параметров на один слой.

19.2.3. Предобучение с учителем
Предобучать модель можно как с учителем, так и без него; основные тре‑
бования – чтобы модель могла обучиться базовой структуре предметной
области и чтобы решаемая задача была в достаточной степени похожа на
последующую задачу дообучения. У понятия «похожие задачи» нет строгого
определения, но на практике домен задачи предобучения часто шире, чем
задачи дообучения (например, предобучение производится на птицах всех
видов, а дообучение – только на птицах под угрозой вымирания).
Самая незамысловатая форма переноса обучения – случай, когда имеется
большой размеченный набор данных, подходящий для предобучения. На‑
пример, очень часто используют набор данных ImageNet (раздел 1.5.1.2) для
предобучения СНС, которую затем можно использовать для различных задач
и наборов данных (см., например, работу [Kol+19]). Набор ImageNet включает
1.28 млн естественных изображений, с каждым из которых ассоциирован
один из 1000 классов. Классы представляют самые разные объекты, в том

Tlgm: @it_boooks

746  Обучение при меньшем числе помеченных примеров
числе животных, еду, здания, музыкальные инструменты, одежду и т. д. Сами
изображения также отличаются разнообразием в том смысле, что объекты
могут быть повернуты под разными углами, быть разного размера и рас‑
полагаться на разном фоне. Такое разнообразие форм и масштабов может
частично объяснить, почему этот набор стал задачей предобучения де факто
для переноса обучения в компьютерном зрении (см. демонстрационный код
по адресу code.probml.ai/book1/finetune_cnn_torch).
Однако было показано, что предобучение на наборе ImageNet не столь
полезно, если домен задачи дообучения резко отличается от естественных
изображений (например, если это медицинские изображения [Rag+19]).
А в некоторых случаях оно если и полезно (например, при обучении систем
обнаружения объектов), то скорее как способ ускорения работы (благодаря
хорошему выбору начальных параметров оптимизации), нежели нечто суще‑
ственно значимое, в том смысле, что сравнимого качества на последующей
задаче можно достичь и обучая модель с нуля, если потратить на это доста‑
точно времени [HGD19].
В приложениях, не связанных с компьютерным зрением, предобучение
с учителем встречается реже. Заметное исключение – предобучение на дан‑
ных естественно-языкового вывода (когда требуется понять, вытекает одно
предложение из другого или противоречит ему) с целью обучения векторных
представлений предложений [Con+17], хотя этот подход почти полностью
вытеснен методами обучения без учителя (раздел 19.2.4). Еще одно не отно‑
сящееся к компьютерному зрению приложение переноса обучения – предобучение системы распознавания речи на большом корпусе размеченных
английских текстов с последующим дообучением на языках, для которых
имеется меньше ресурсов [Ard+20].

19.2.4. Предобучение без учителя
(самостоятельное обучение)
Предобучение без учителя используется все чаще, поскольку непомечен‑
ные данные бывает легко собрать; например, это могут быть непомеченные
изображения или текстовые документа из веба.
В течение недолгого времени было модно предобучать глубокие нейрон‑
ные сети с помощью целевой функции без учителя (например, ошибки ре‑
конструкции, обсуждаемой в разделе 20.3) на размеченном наборе данных
(т. е. игнорируя метки), а затем переходить к стандартному обучению с учи‑
телем [HOT06; Vin+10b; Erh+10]. Хотя эту технику также называют предобу‑
чением без учителя, она отличается от той формы предобучения, которая
обсуждается в этом разделе в контексте переноса обучения, – когда исполь‑
зуется (большой) неразмеченный набор данных для предобучения, а затем
модель дообучается на другом (меньшем) размеченном наборе.
Задачи предобучения с непомеченными данными часто называют самостоятельным обучением (self-supervised), а не обучением без учителя. Этот
термин призван подчеркнуть, что метки создаются самим алгоритмом, а не

Tlgm: @it_boooks

Перенос обучения  747

предоставляются извне человеком, как в стандартном обучении с учителем.
И обучение с учителем, и самостоятельное обучение – дискриминантные за‑
дачи, поскольку требуется предсказать выходы по входам. Напротив, методы
обучения без учителя, рассмотренные, в частности, в главе 20, являются по‑
рождающими, потому что предсказывают выходы безусловно.
Существует много испытанных эвристик самостоятельного обучения (см.,
например, обзоры [GR18; JT19; Ren19] и обширный список статей по адресу
https://github.com/jason718/awesome-self-supervised-learning). Можно выделить
по крайней мере три широкие группы, которые будут рассмотрены ниже.

19.2.4.1. Задачи подстановки
Один из подходов к самостоятельному обучению – решение задачи подстановки (imputation). В этом случае мы разбиваем входной вектор x на две
части, x = (xh, xv), а затем пытаемся предсказать скрытую часть xh по видимой
части xv, пользуясь моделью вида x̂ h = f(xv, xh = 0). Можно считать, что это
задача «заполнения пропусков»; в англоязычной части сообщества NLP
употребляется также термин cloze task. На рис. 19.4 приведены примеры из
области компьютерного зрения, а в разделе 15.7.2 – из области NLP.

(a)

(b)

Рис. 19.4  (a) Контекстный кодировщик для самостоятельного обучения. Взято из работы [Pat+16]. Печатается с разрешения Дипака Патхака. (b) Другие
замещающие задачи для самообучения. Взято из работы [LeC18]. Печатается
с разрешения Яна Лекуна

Tlgm: @it_boooks

748  Обучение при меньшем числе помеченных примеров

19.2.4.2. Замещающие задачи
Другой подход к самостоятельному обучению – использование замещающих (proxy task), или оправдывающих (pretext task), задач. В этом случае
мы создаем пары входов (x1, x2), а затем обучаем сиамскую сеть (рис. 16.5a),
т. е. классификатор вида p(y|x1, x2) = p(y|r [f(x1), f(x2)]), где f(x) – функция, вы‑
полняющая «обучение представлений» [BCV13], а y – метка, улавливающая
связь между x1 и x2, которую предсказывает r( f1, f2). Например, предположим,
что x1 – патч изображения, а x2 = t(x1) – некоторое контролируемое нами
преобразование x1, скажем случайное вращение; тогда мы определяем y как
угол поворота этого вращения [GSK18].

19.2.4.3. Сопоставительные задачи
В настоящее время самый популярный подход к самостоятельному обучению
связан с использованием различных сопоставительных задач (contrastive
task). Идея в том, чтобы создать пары семантически похожих примеров, при‑
меняя различные методы приращения данных (раздел 19.1), а затем сделать
так, чтобы расстояние между их представлениями было меньше (в простран‑
стве погружений), чем расстояние между двумя несвязанными примерами.
Это та же идея, что в глубоком обучении метрики (раздел 16.2.2), – един‑
ственное различие заключается в том, что алгоритм самостоятельно создает
похожие пары, а не полагается на внешнюю меру сходства, например метки.
Примеры будут приведены в разделах 19.2.4.4 и 19.2.4.5.

19.2.4.4. SimCLR
В этом разделе мы обсудим метод SimCLR – Simple contrastive learning of
visual representations (простое сопоставительное обучение визуальных пред‑
ставлений) [Che+20b; Che+20c]. Он обеспечивает лучшее на сегодняшний день
качество в задачах переноса обучения и обучения с частичным привлечением
учителя. Основная идея следующая. Каждый вход x Î ℝD преобразуется в два
дополненных «вида» x1 = t1(x), x2 = t2(x), которые являются его «семантически
эквивалентными» версиями, генерируемыми некоторыми преобразованиями
t1, t2. Например, если x – изображение, то это могли бы быть его небольшие
возмущения, скажем случайные кадрирования (см. раздел 19.1). Кроме того,


мы производим выборку «отрицательных» примеров x 1, …, x n Î N(x) из набора
данных, представляющего «семантически различные» изображения (на прак‑
тике это другие примеры в мини-пакете). Затем мы определяем некоторое
отображение признаков F : ℝD ® ℝE, где D – размер входа, а E – размер погру‑
жения. Далее мы пытаемся максимизировать сходство похожих видов и одно‑
временно минимизировать сходство различных видов для каждого входа x:
(19.7)
На практике в качестве меры сходства используется коэффициент Отиаи,
поэтому мы нормируем порожденные F представления по норме 𝓁2, прежде

Tlgm: @it_boooks

Перенос обучения  749

чем вычислять скалярные произведения, но в формуле выше это действие
опущено (см. иллюстрацию на рис. 19.5a). (На этом рисунке предполагается,
что F(x) = g(f(x)), где промежуточное представление h = f(x) впоследствии
будет использовано для дообучения, а g – дополнительное преобразование,
примененное в процессе обучения.)
Максимизировать
согласованность
Представление

(a)

(b)

(c)

Рис. 19.5  (a) Иллюстрация обучения SimCLR. T – множество стохастических
преобразований, сохраняющих семантику (приращений данных). (b–c) Преимущества случайных кадрирований. Сплошные прямоугольники представляют оригинальное изображение, штриховые – случайные кадрирования. На
рисунке (b) модель вынужденно предсказывает локальный вид A по глобальному виду B (и наоборот). На рисунке (c) модель вынужденно предсказывает
внешний вид соседних видов (C, D). На основе рис. 2–3 из работы [Che+20b].
Печатается с разрешения Тин Ченя

Интересно, что это можно интерпретировать как форму условной модели
на основе энергии вида
(19.8)
где Ψ(x2|x1) = -F(x2)⟙F(x1) – энергия, а

(19.9)

– нормировочная постоянная, называемая функцией разбиения. Условное
логарифмическое правдоподобие при такой модели имеет вид:
(19.10)
Единственное отличие от формулы (19.7) в том, что мы заменяем инте‑
грал верхней границей Монте-Карло, выведенной по отрицательным приме‑
рам. Поэтому сопоставительное обучение можно рассматривать как оценку
максимального правдоподобия условной порождающей модели на основе
энергии [Gra+20]. Дополнительные сведения о таких моделях можно найти
во втором томе этой книги, [Mur22].

Tlgm: @it_boooks

750  Обучение при меньшем числе помеченных примеров
Важнейшим условием успеха SimCLR является выбор методов приращения
данных. Применяя случайное кадрирование, можно заставить модель пред‑
сказывать локальные виды по глобальным, а также соседние виды одного
и того же изображения (см. рис. 19.5). После кадрирования восстанавлива‑
ется исходный размер всех изображений. Кроме того, некоторые случайно
выбранные изображения подвергаются зеркальному отражению1.
SimCLR требует обучения на большом пакете, чтобы множество отрица‑
тельных примеров было достаточно разнообразным. Если это невозможно,
то можно использовать банк прошлых (отрицательных) погружений и об‑
новлять его, применяя экспоненциальное скользящее усреднение (раз‑
дел 4.4.2.2). Это называется импульсным сопоставительным обучением
(momentum contrastive learning), или MoCo [He+20].
отталкивание

притяжение

притяжение

представление

представление

приращение

приращение

(а)

(b)

Рис. 19.6  Визуализация обучения SimCLR. Каждое входное
изображение в мини-пакете случайно модифицируется двумя
разными способами (кадрирование с последующим изменением
размера, отражение и искажение цветов), а затем подается на
вход сиамской сети. Погружения (последний слой) для каждой
пары, выведенные по одному и тому же изображению, вынужденно близки, тогда как погружения для всех остальных пар вынужденно далеки. Из статьи https://ai.googleblog.com/2020/04/
advancing-self-supervised-and-semi.html. Печатается с разрешения Тин Ченя

1

Оказывается, что отличить положительные кадрирования (полученные из одного
и того же изображения) от отрицательных (полученных из разных отображений)
зачастую можно, просто проанализировав гистограммы цветов. Чтобы не допу‑
стить такого «обмана», добавляют также случайное искажение цветов, перекрывая
тем самым «короткий путь». Показано, что такая комбинация случайного кадри‑
рования и искажения цветов работает лучше, чем каждый метод в отдельности.

Tlgm: @it_boooks

Перенос обучения  751

19.2.4.5. CLIP
В этом разделе мы опишем технологию CLIP – Contrastive Language-Image
Pre-training (сопоставительное предобучение на парах изображение–текст)
[Rad+]. Это сопоставительный подход к обучению представлений на большом
(объемом 400 МБ) корпусе пар (изображение, текст), полученных из веба.
Пусть xi – i-е изображение и yi – соответствующий ему текст. Вместо того что‑
бы пытаться предсказать точные слова, ассоциированные с изображением,
проще решить, правда ли, что yi с большей вероятностью является правиль‑
ным текстом, чем какая-то другая текстовая строка yj из того же мини-пакета.
Аналогично модель может попытаться решить, правда ли, что изображение xi
с большей вероятностью соответствует тексту yi, чем изображение xj.
Точнее, пусть fI (xi) – погружение изображения, fT (yj) – погружение текста,
Ii = fI (xi)/||fI (xi)||2 – нормированное на единицу погружение изображения,
а Tj = fT (yj)/||fT (yj)||2 – нормированное на единицу погружение текста. Опре‑
делим вектор попарных логитов (оценок сходства):
Lij = Ii⟙Tj.

(19.11)

Теперь обучим параметры двух функций погружения fI и fT с целью мини‑
мизировать следующую потерю, усредненную по мини-пакетам размера N:
(19.12)
где CE – потеря перекрестной энтропии
(19.13)
а 1i – унитарный код метки i, см. иллюстрацию на рис. 19.7a. (На практике
нормированные погружения умножаются на параметр температуры, кото‑
рый тоже обучается; он контролирует остроту softmax.)
1. Сопоставительное предобучение

2. Создать классификатор набора данных по тексту метки

Кодировщик
текста

Кодировщик
текста

3. Использование для предсказания
с первой попытки
Кодировщик
изображений

Кодировщик
изображений

Рис. 19.7  Модель CLIP. На основе рис. 1 из работы [Rad+].
Печатается с разрешения Алека Рэдфорда

Tlgm: @it_boooks

752  Обучение при меньшем числе помеченных примеров
В своей работе авторы рассматривали сеть ResNet (раздел 14.3.4), а также
трансформер изображений (раздел 15.5.6) в качестве функции fI и транс‑
формер текста (раздел 15.5) в качестве fT. Они использовали очень большой
мини-пакет размера N ~ 32k и обучали сеть на протяжении многих дней
с использованием сотен GPU.
Обученную модель можно использовать для классификации изображе‑
ния x без примеров следующим образом. Во-первых, каждая из K возмож‑
ных меток классов для заданного набора данных преобразуется в текстовую
строку yk, которая, возможно, встречалась в вебе. Например, «dog» преоб‑
разуется в «a photo of a dog». Во-вторых, вычисляются нормированные по‑
гружения I µ fI (x) и Tk µ fT (yk). В-третьих, вычисляются вероятности softmax:
p(y = k|x) = 𝒮([I⟙T1, …, I⟙Tk])k.

(19.14)

Смотрите иллюстрацию на рис. 19.7b. (Похожий подход был принят в ра‑
боте по визуальным n-граммам [Li+17].)
Удивительно, что этот подход может давать такие же хорошие результаты,
как стандартное обучение с учителем на задачах типа классификации Ima‑
geNet даже без явного обучения на конкретных размеченных наборах дан‑
ных. Конечно, изображения, включенные в ImageNet, взяты из веба и были
найдены с помощью веб-поиска по тексту, так что модель видела хорошие
примеры раньше. Тем не менее ее способность к обобщению на новые задачи
и робастность к дрейфу распределения впечатляют (см. примеры в ориги‑
нальной статье).
Но у этого подхода есть и недостаток – чувствительность к способу пре‑
образования меток классов в текстовую форму. Например, чтобы модель
работала для классификации пищевых продуктов, необходимо использовать
строки вида «a photo of guacamole, a type of food», «a photo of ceviche, a type
of food» и т. д.
Устраняющие неоднозначность фразы типа «a type of food» (пищевой про‑
дукт) в настоящее время добавляются вручную для каждого набора данных
в отдельности. Это называется конструированием описаний (prompt en‑
gineering) и необходимо, потому что первичные имена классов могут иметь
разную семантику в разных классах (а иногда даже в одном классе).

19.2.5. Адаптация домена
Рассмотрим задачу, в которой имеются входные данные из разных доменов,
например исходного домена 𝒳s и целевого домена 𝒳t, но общее множество
выходных меток, 𝒴. (Эта задача «двойственна» по отношению к переносу
обучения, потому что входные домены различны, а выходные одинаковы.)
Например, доменами могут быть изображения из системы компьютерной
графики и реальные изображения или отзывы о товарах и отзывы о филь‑
мах. Мы предполагаем, что для целевого домена нет помеченных примеров.
Наша цель – обучить модель на исходном домене, а затем модифицировать
ее параметры, так чтобы модель работала на целевом домене. Это называет
адаптацией домена (без учителя) (см., например, обзор [KL19]).

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  753

Общий подход к этой проблеме – обучить исходный классификатор, так
чтобы он не мог отличить, из какого распределения поступил вход: исход‑
ного или целевого. В этом случае он сможет использовать только признаки,
общие для обоих доменов. Это называется состязательным обучением
доменов (domain adversarial learning) [Gan+16]. Формально пусть dn Î {s, t} –
метка, определяющая, поступил ли пример n из домена s или t. Мы хотим
оптимизировать целевую функцию
(19.15)
где Ns = |𝒟s|, Nt = |𝒟t|, f : 𝒳s ∪ 𝒳t ® ℋ и g : ℋ ® 𝒴t. Функция (19.15) минимизи‑
рует потерю на основной задаче классификации y, но максимизирует потерю
на вспомогательной задачи классификации исходного домена d. Это можно
реализовать с помощью трюка обращения знака градиента, связанного
с порождающими состязательными сетями (generative adversarial network –
GAN). О некоторых других подходах к адаптации домена см., например, ра‑
боты [Csu17; Wu+19].

19.3. обуЧение с ЧастиЧным приВлеЧением
уЧителя
Этот раздел написан в соавторстве с Колином Раффелем.
Многие из недавних успешных приложений машинного обучения относят‑
ся к категории обучения с учителем, когда для обучения модели доступен
большой набор помеченных примеров. Однако на практике получение таких
помеченных данных часто обходится дорого. Рассмотрим автоматическое
распознавание речи: современные наборы данных включает тысячи часов
аудиозаписей [Pan+15; Ard+20]. Процесс аннотирования произносимых слов
во много раз медленнее, чем режим реального времени, и может занимать
очень много времени (и соответственно стоить). Хуже того, в некоторых при‑
ложениях к разметке данных необходимо привлекать специалистов (скажем,
врачей, если речь идет о медицинском приложении), а это еще больше уве‑
личивает цену.
Обучение с частичным привлечением учителя может уменьшить по‑
требность в помеченных данных за счет привлечения непомеченных. Общая
цель обучения с частичным привлечением учителя – дать модели возмож‑
ность обучиться общей структуре распределения данных на непомеченных
данных, а помеченные использовать только для обучения тонким деталям
конкретной задачи. Если в стандартном обучении с учителем мы предпо‑
лагаем, что имеется доступ к примерам из совместного распределения дан‑
ных и меток x, y ~ p(x, y), то в обучении с частичным привлечением учителя
предполагается, что дополнительно имеется доступ к маргинальному рас‑
пределению x, а именно x ~ p(x). Кроме того, в общем случае предполагается,

Tlgm: @it_boooks

754  Обучение при меньшем числе помеченных примеров
что таких непомеченных примеров гораздо больше, поскольку получить их,
как правило, проще. Возвращаясь к распознаванию речи, отметим, что часто намного дешевле просто записать разговор людей (это неразмеченные
данные), чем переводить записанную речь в текст. Обучение с частичным
привлечением учителя хорошо приспособлено для сценария, когда уже со‑
брано много непомеченных данных, и желательно обойтись без того, чтобы
помечать их все.

(а)

(b)

Рис. 19.8  Преимущества обучения с частичным привлечением учителя для
решения задачи бинарной классификации. Помеченные точки из каждого класса обозначены черными и белыми кружочками соответственно. (a) Решающая
граница, которую можно было бы обучить, имея только непомеченные данные.
(b) Решающая граница, которую можно было бы обучить, имея также много непомеченных примеров, показанных маленькими серыми кружочками

19.3.1. Самообучение и псевдопометка
Ранний и прямолинейный подход к обучению с частичным привлечением
учителя называется самообучением (self-training)1 [Scu65; Agr70; McL75].
Основная идея самообучения – использовать саму модель для вывода пред‑
сказания по неразмеченным данным, а затем использовать эти предсказания
как метки для последующего обучения. Самообучение стало признанным
методом обучения с частичным привлечением учителя в силу своей просто‑
ты и универсальной применимости; это значит, что оно применимо к любой
модели, которая умеет генерировать предсказания для непомеченных дан‑
ных. Недавно вошло в моду называть этот подход псевдопометкой (pseudolabeling) [Lee13], потому что выведенные для непомеченных данных метки
лишь «псевдоправильны» по сравнению с истинными целевыми метками,
применяемыми в обучении с учителем.
Алгоритмически самообучение обычно сводится к одной из двух про‑
цедур. В первом случае псевдометки сначала предсказываются для всего
1

Не путать с «самостоятельным обучением» (self-supervised learning) (см. раз‑
дел 19.2.4). – Прим. перев.

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  755

набора непомеченных данных и модель переобучается (возможно, с нуля)
до сходимости на комбинации помеченных и непомеченных (псевдопоме‑
ченных) данных. Затем непомеченные данные заново помечаются моделью,
и процесс повторяется, пока не будет найдено подходящее решение. Во вто‑
ром случае вместо этого непрерывно генерируются предсказания на случай‑
но выбранных пакетах непомеченных данных, и модель сразу же обучается
на этих псевдометках. Оба подхода часто применяются на практике; первый
«офлайновый» вариант особенно успешен при наличии огромного количе‑
ства непомеченных данных [Yal+19; Xie+20], тогда как «онлайновый» подход
часто используется как один из компонентов более изощренных методов об‑
учения с частичным привлечением учителя [Soh+20]. Ни у одного варианта
нет принципиальных преимуществ перед другим. Офлайновое самообучение
может приводить к обучению модели на «устаревших» псевдометках, так
как они обновляются только после сходимости модели. Зато онлайновая
псевдопометка влечет повышенные вычислительные затраты, потому что
подразумевает постоянную «переразметку» непомеченных данных.
Самообучению присуща очевидная проблема: если модель генерирует не‑
правильные предсказания для непомеченных данных, а затем переобучается
на этих неправильных предсказаниях, то она будет становиться все хуже
и хуже, пока в итоге не обучится совершенно неверному решению. Эта про‑
блема получила название предвзятость подтверждения [TV17], потому
что модель раз за разом подтверждает свое собственное (неверное) мнение
о решающем правиле.
Распространенный способ уменьшить предвзятость подтверждения – ис‑
пользовать «метрику выбора» [RHS05], которая применяет эвристики, пы‑
таясь оставить только правильные псевдометки. Например, если модель
выводит вероятности каждого из возможных классов, в роли метрики вы‑
бора часто выступает правило оставлять лишь те псевдометки, для которых
наибольшая вероятность класса выше порога [Yar95; RHS05]. Если оценки
вероятностей классов хорошо откалиброваны, то эта метрика выбора будет
сохранять только метки, которые с высокой вероятностью правильны (по
крайней мере, согласно модели). В зависимости от предметной области мож‑
но придумать и более сложные метки выбора.

19.3.2. Минимизация энтропии
Самообучение неявно поощряет модель к выводу низкоэнтропийных (т. е.
с высокой степенью уверенности) предсказаний. Этот эффект особенно нагля‑
ден при онлайновом обучении с потерей перекрестной энтропии, когда мо‑
дель минимизирует следующую функцию потерь ℒ на непомеченных данных:
(19.16)

где pθ(y|x) – модельное распределение вероятностей классов при условии
входа x. Эта функция достигает минимума, когда модель назначает всю ве‑
роятность одному классу c*, т. е. p(y = c*|x) = 1 и p(y ¹ c*)|x) = 0.

Tlgm: @it_boooks

756  Обучение при меньшем числе помеченных примеров
С этим методом обучения с частичным привлечением учителя тесно свя‑
зан метод минимизации энтропии [GB05], который минимизирует следу‑
ющую функцию потерь:
(19.17)
Заметим, что эта функция также достигает минимума, когда модель на‑
значает всю вероятность одному классу. Мы можем сделать потерю мини‑
мизации энтропии (19.17) эквивалентной потере онлайнового самообучения
(19.16), заменив первый член pθ(y = c|x) унитарным вектором, который на‑
значает вероятность 1 классу с наибольшей вероятностью. Иными словами,
онлайновое самообучение минимизирует перекрестную энтропию между
выходом модели и «жесткой» целью argmax pθ(y|x), тогда как при миними‑
зации энтропии используется «мягкая» цель pθ(y|x). Компромиссом между
этими двумя крайностями является настройка «температуры» целевого рас‑
пределения, для чего нужно возвести каждую вероятность в степень 1/T и пе‑
ренормировать; эта идея лежит в основе метода mixmatch из работ [Ber+19a;
Ber+19b; Xie+19]. При T = 1 он эквивалентен минимизации энтропии, а при
T ® 0 становится жестким онлайновым самообучением. На рис. 19.9 сравни‑
ваются все три функции потерь.
Минимизация энтропии
Самообучение
Заостренная (Т = ½)

Рис. 19.9  Сравнение трех функций потерь: минимизации энтропии, самообучения и «заостренной» минимизации энтропии для задачи бинарной классификации

19.3.2.1. Кластерное допущение
Почему минимизация энтропии – хорошая идея? Основное допущение мно‑
гих методов обучения с частичным привлечением учителя заключается в том,
что решающая граница между классами должна проходить в области низкой
плотности многообразия данных. По сути дела, это означает, что данные, со‑
ответствующие разным классам, должны объединяться в кластеры. Поэтому
хорошая решающая граница должна не пересекать кластеры, а разделять их.
Можно считать, что методы обучения с частичным привлечением учителя,
которые делают такое «кластерное допущение», используют непомеченные

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  757

данные для оценки формы многообразия данных и отодвигания решающей
границы подальше от него.
Минимизация энтропии – один из таких методов. Чтобы убедиться в этом,
предположим сначала, что решающая граница между двумя классами «глад‑
кая», т. е. не бывает так, что модель где-то резко меняет класс. На практике
это действительно так для простых и (или) регуляризированных моделей.
В этом случае, если решающая граница пересекает область высокой плот‑
ности данных, то она по необходимости порождает высокоэнтропийные
предсказания для некоторых примеров из распределения данных. Поэтому
минимизация энтропии поощряет модель помещать решающую границу
в области низкой плотности пространства входов, чтобы избежать перехода
от одного класса к другому в той части пространства, из которой могут вы‑
бираться данные. Это поведение наглядно представлено на рис. 19.10.

(а)

(b)

Рис. 19.10  Как минимизация энтропии обеспечивает выполнение кластерного допущения. Классификатор назначает более высокую вероятность классу 1
(черные точки) или 2 (белые точки) в красной и синей области соответственно.
Предсказанные вероятности классов для одного конкретного непомеченного
примера показаны на столбиковой диаграмме. На рисунке (a) решающая граница пересекает области высокой плотности данных, так что классификатор
вынужден порождать высокоэнтропийные предсказания. На рисунке (b) классификатор избегает областей высокой плотности, поэтому может назначать низкоэнтропийные предсказания большинству непомеченных данных

19.3.2.2. Взаимная информация между входом и выходом
Другое обоснование минимизации энтропии в качестве целевой функции
было предложено в работе Бридла, Хэдинга и Маккея [BHM92], где было пока‑
зано, что это естественное следствие максимизации взаимной информации
(раздел 6.3) между данными и меткой (т. е. между входом и выходом модели).
Если обозначить вход x, а выход y, то взаимную информацию между входом
и выходом можно записать в виде:
(19.18)

Tlgm: @it_boooks

758  Обучение при меньшем числе помеченных примеров
(19.19)
(19.20)
(19.21)
Заметим, что первый интеграл эквивалентен взятию математического
ожидания x, а второй – суммированию по всем возможным значениям клас‑
са y. Пользуясь этими соотношениями, получаем
(19.22)
(19.23)
(19.24)
Поскольку изначально мы стремились максимизировать взаимную инфор‑
мацию, а обычно минимизируем функции потерь, можно преобразовать это
выражение в подходящую функцию потерь, поставив знак минус:
(19.25)
Первый член – это в точности целевая функция минимизации энтропии
в математическом ожидании. Второй член говорит, что мы должны макси‑
мизировать энтропию ожидаемого предсказания класса, т. е. среднее пред‑
сказание класса по нашему обучающему набору. Это поощряет модель пред‑
сказывать все возможные классы с равной вероятностью; это приемлемо,
только если мы заранее знаем, что все классы равновероятны.

19.3.3. Совместное обучение
Совместное обучение [BM98] также похоже на самообучение, но делается
дополнительное предположение о существовании двух взаимодополняющих
«видов» (т. е. независимых наборов признаков) данных, которые можно по
отдельности использовать для обучения разумной модели. После раздельно‑
го обучения двух моделей на разных видах непомеченные данные класси‑
фицируются каждой моделью для получения псевдометок-кандидатов. Если
некоторая псевдометка получает от одной модели предсказание с низкой
энтропией (что говорит о высокой степени уверенности) и предсказание
с высокой энтропией (низкой степенью уверенности) от другой, то эта псев‑

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  759

допомеченная точка добавляется в обучающий набор для модели с низкой
степенью уверенности. Затем этот процесс повторяется с новыми, бóльшими
наборами данных. Процедура сохранения только тех псевдометок, в которых
одна из моделей уверена, идеально подходит для постепенного построения
обучающих наборов с правильно помеченными данными.
Совместное обучение основано на сильном допущении о том, что суще‑
ствует два информативных, но независимых вида данных, но для многих
задач это может быть не так. Алгоритм обучения втроем (Tri-Training)
[ZL05] обходит эту трудность за счет использования трех моделей, которые
сначала обучаются на результатах независимой выборки (с возвращением)
из помеченных данных. В идеале первоначальное обучение на разных на‑
борах помеченных данных приводит к моделям, предсказания которых не
всегда согласованы. Затем для непомеченных данных генерируются псев‑
дометки – независимо каждой из трех моделей. Если для некоторого непо‑
меченного примера две модели дают одну и ту же псевдометку, то она до‑
бавляется в обучающий набор для третьей модели. Это можно рассматривать
как метрику выбора, потому что псевдометки сохраняются, только если две
(по-разному инициализированных) модели согласны на правильной метке.
Затем модели переобучаются на комбинации помеченных данных и новых
псевдометок, и весь процесс повторяется.

19.3.4. Распространение меток на графах
Если два примера чем-то «похожи», то можно ожидать, что им будут назна‑
чены одинаковые метки. Эта идея получила название «допущение многообразия». Распространение меток –это метод обучения с частичным при‑
влечением учителя, в котором допущение многообразия используется для
назначения меток непомеченным данным. Алгоритм распространения ме‑
ток сначала строит граф, в котором вершинами являются примеры данных,
а веса ребер представляют степень сходства. Для вершин, соответствующих
помеченным данным, метки известны, а для непомеченных данных неиз‑
вестны. Далее алгоритм распространяет известные метки вдоль ребер графа
таким образом, чтобы расхождение между метками соседей данного узла
было минимально. Это позволяет угадать метки для непомеченных данных,
а затем обычным образом использовать для обучения модели с учителем.
Формально базовый алгоритм распространения меток [ZG02] работает сле‑
дующим образом. Обозначим wi,j неотрицательный вес ребра, соединяющего
вершины xi и xj; это будет мера сходства двух (помеченных или непомеченных)
примеров. В предположении, что имеется M помеченных примеров и N не‑
помеченных, определим матрицу переходов T размера (M + N)´(M + N),
элементы которой равны:
(19.26)
Элемент T i,j представляет вероятность распространения метки узла j
в узел i. Далее определим матрицу Y размера (M + N)´C, где C – количество

Tlgm: @it_boooks

760  Обучение при меньшем числе помеченных примеров
возможных классов. i-я строка Y представляет распределение вероятностей
классов для примера i. Затем будем повторять следующие шаги, пока зна‑
чения элементов Y не перестанут заметно изменяться. Сначала используем
матрицу переходов T для распространения меток из Y, полагая Y ¬ TY. За‑
тем перенормируем строки Y, полагая Yi,c ¬ Yi,c /åk Yk,c. Наконец, заменяем
строки Y, соответствующие помеченным примерам, их унитарным представ‑
лением (т. е. Yi,c = 1, если истинная метка примера i равна c, и 0 в противном
случае). После достижения сходимости для каждого примера в Y выбирается
метка, соответствующая классу с наибольшей вероятностью.
Этот алгоритм итеративно использует сходство примеров (закодирован‑
ное в весах, на основе которых строилась матрица переходов), чтобы распро‑
странять информацию от (фиксированных) меток на непомеченные данные.
На каждой итерации распределение меток для данного примера вычисляется
как взвешенное среднее распределений меток для всех связанных с ними
примеров, причем веса соответствуют весам ребер в T. Можно показать, что
эта процедура сходится к единственной фиксированной точке, а стоимость
вычислений определяется стоимостью обращения матрицы вероятностей
переходов между непомеченными примерами [ZG02].
Подход в целом можно рассматривать как форму трансдуктивного
обучения, так как его цель – предсказать метки для фиксированного нераз‑
меченного набора данных, а не обучить модель, допускающую обобщение.
Однако с помощью индуцированной пометки мы можем затем выполнить
индуктивное обучение обычным образом.
Успех алгоритма распространения меток сильно зависит от понятия сход‑
ства, использованного для построения весов ребер, соединяющих различные
вершины (примеры данных). Для простых данных достаточно измерения
евклидова расстояния между точками. Но для сложных многомерных дан‑
ных евклидово расстояние необязательно отражает вероятность того, что
две точки принадлежат одному классу. Веса сходства можно также назначать
произвольно, сообразуясь со знаниями о предметной области. Несколько
примеров построения графа сходства см. в работе [Zhu05, глава 3]. Из не‑
давних работ, в которых этот подход используется в сочетании с глубоким
обучением, упомянем [BRR18; Isc+19].

19.3.5. Регуляризация по согласованности
Идея регуляризации по согласованности (consistency regularization) про‑
ста: небольшое возмущение данного примера (или самой модели) не должно
вызывать значительного изменения выхода модели. Поскольку при таком из‑
мерении согласованности используются только выходы модели (а не истинные
метки), эту идею легко применить к непомеченным данным и, следовательно,
создать функции потерь, подходящие для обучения с частичным привлечени‑
ем учителя. Впервые эта идея была предложена в системе «обучения с псевдо‑
ансамблями» [BAP14], а вскоре были разработаны ее варианты [LA16; SJT16].
В самой общей форме и сама модель pθ(y|x), и преобразования, приме‑
няемые к входам, могут быть стохастическими. Например, в задачах ком‑

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  761

пьютерного зрения вход можно преобразовывать с помощью приращения
данных, скажем, случайных поворотов или прибавления шума к входному
изображению, а сеть может содержать стохастические компоненты типа про‑
реживания (раздел 13.5.4) или зашумления весов [Gra11]. В широко распро‑
страненной и простой форме регуляризации по согласованности сначала
производится выборка x¢ ~ q(x¢|x) (где q(x¢|x) – распределение, индуцирован‑
ное стохастическими преобразованиями ввода), а затем минимизируется
потеря ||pθ(y|x) - pθ(y|x¢)||2. На практике первый член pθ(y|x) обычно считается
фиксированным (т. е. градиенты через него не распространяются). В обуче‑
нии с частичным привлечением учителя комбинированная функция потерь
на пакете помеченных данных (x1, y1), (x2, y2), …, (xM, yM) и непомеченных
данных x1, …, xN имеет вид:
(19.27)
где λ – скалярный гиперпараметр, который балансирует важность потери на
непомеченных данных и для простоты x¢j обозначает пример, выбранный из
распределения q(x¢|xj).
Базовая форма регуляризации по согласованности (19.27) открывает много
возможностей для проектных решений, от выбора которых зависит успех
этого подхода к обучению с частичным привлечением учителя. Во-первых,
важен выбор гиперпараметра λ. Если он слишком велик, то модель может не
придать достаточный вес обучению задачи с учителем, а вместо этого начнет
подкреплять собственные плохие предсказания (как в случае предвзятости
подтверждения в самообучении). Поскольку модель часто плохо ведет себя
в начале обучения еще до того, как была обучена на большом объеме поме‑
ченных данных, на практике часто инициализируют λ нулем и увеличивают
значение по ходу продвижения обучения.
Второе важное соображение – какие случайные преобразования применя‑
ются к входу, т. е. q(x¢|x). Вообще говоря, эти преобразования следует проек‑
тировать, так чтобы они не изменяли метку x. Как было отмечено выше, чаще
всего применяют зависящие от предметной области способы приращения
данных. Недавно было показано, что использование приращений, которые
существенно искажают вход (но все-таки не изменяют метку), может при‑
носить особо ценные плоды [Xie+19; Ber+19b; Soh+20].
Использование приращения данных требует экспертных знаний для опре‑
деления того, какие виды преобразований сохраняют метки и подходят для
данной задачи. Альтернативная техника, называемая виртуальным состязательным обучением (virtual adversarial training – VAT), заключается
в применении к входам аналитически найденного возмущения, призванного
максимально изменить выход модели. Точнее, VAT вычисляет возмущение,
которое аппроксимирует δ = argmaxδ 𝕂𝕃(pθ(y|x)||pθ(y|x + δ)). Для аппрокси‑
мации мы производим выборку d из многомерного гауссова распределения,
инициализируем δ = d, а затем полагаем
δ ¬ Ñδ 𝕂𝕃(pθ(y|x)||pθ(y|x + δ))||δ=ξd,

(19.28)

Tlgm: @it_boooks

762  Обучение при меньшем числе помеченных примеров
где ξ – небольшая константа, обычно 10-6. Затем алгоритм VAT полагает
(19.29)
и продолжает работу, как обычно в схеме регуляризации по согласованности
(по формуле (19.27)). Здесь ε – скалярный гиперпараметр, определяющий
L2-норму возмущения, прибавленного к x.
Регуляризация по согласованности может также сильно влиять на геометрические свойства целевой функции обучения и на траекторию СГС, поэтому
качество может особенно выиграть от нестандартных процедур обучения.
Например, евклидовы расстояния между весами на различных эпохах обучения существенно больше для целевых функций, в которых используется регу‑
ляризация по согласованности. В работе [AIW19] показано, что вариант стохастического усреднения весов (stochastic weight averaging – SWA) [Izm+18]
может достигать лучшего на сегодняшний день качества в задачах обучения
с частичным привлечением учителя благодаря удачному использованию гео‑
метрических свойств регуляризации по согласованности.
Последнее, что нужно учитывать при использовании регуляризации по
согласованности, – функция для измерения различия между выходом сети
с возмущениями и без них. В формуле (19.27) используется квадрат рассто‑
яния L2 (называемый также оценкой Бриера), и это довольно популярный
выбор [SJT16; TV17; LA16; Ber+19a]. Также часто используется расхождение
Кульбака–Лейблера 𝕂𝕃(pθ(y|x)||pθ(y|x¢)) по аналогии с потерей перекрестной
энтропии (т. е. расхождением между истинной меткой и предсказанием)
для помеченных примеров [Miy+18; Ber+19b; Xie+19]. Градиент потери ква‑
дратичной ошибки стремится к нулю, когда предсказания модели на возму‑
щенных и невозмущенных входах начинают все больше различаться, в пред‑
положении, что в качестве нелинейности на выходе используется softmax.
Поэтому потенциальное преимущество такой потери – то, что модель не
обновляется, когда ее предсказания очень нестабильны. Однако расхождение
КЛ имеет такой же масштаб, как потеря перекрестной энтропии для поме‑
ченных данных, что делает интуитивно более понятной настройку гипер‑
параметра λ потери на непомеченных примерах. Сравнение двух функций
потерь приведено на рис. 19.11.

19.3.6. Глубокие порождающие модели*
Порождающие модели предлагают естественный способ воспользоваться
непомеченными данными путем обучения модели маргинального распре‑
деления, для чего нужно минимизировать функцию ℒU = -ån log pθ(xn). Есть
разные подходы к применению порождающих моделей в обучении с частичным привлечением учителя, различающиеся способом использования
модели pθ(xn).

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  763
Квадратичная ошибка
Расхождение КЛ

Рис. 19.11  Сравнение потерь, равных квадратичной ошибке и расхождению
Кульбака–Лейблера, в регуляризации по согласованности. Этот рисунок относится к задаче бинарной классификации, где предполагается, что выход модели
для невозмущенного входа равен 1. На рисунке показана потеря для конкретного значения логита (т. е. предактивации, поданной выходной сигмоидной нелинейности) возмущенного входа. Когда логит стремится к плюс бесконечности,
модель предсказывает метку класса 1 (в полном согласии с предсказанием для
невозмущенного входа). А когда логит стремится к минус бесконечности, модель предсказывает класс 0. Потеря, равная квадратичной ошибке, насыщается,
т. е. стремится к горизонтальной асимптоте (и, стало быть, имеет нулевые градиенты), когда модель предсказывает один или другой класс с высокой вероятностью, а потеря, равная расхождению КЛ, неограниченно растет по мере того, как
модель предсказывает класс 0 все с большей уверенностью

19.3.6.1. Вариационные автокодировщики
В разделе 20.3.5 мы опишем вариационный автокодировщик (variational
autoencoder – VAE), который определяет вероятностную модель совместного
распределения данных x и латентных переменных z. Предполагается, что
для генерирования данных сначала производится выборка z ~ p(z), а затем
выборка x ~ p(x|z). Для обучения VAE использует кодировщик qλ(z|x), что‑
бы аппроксимировать апостериорное распределение, и декодер pθ(x|z) для
аппроксимации правдоподобия. Кодировщик и декодер обычно являются
глубокими нейронными сетями. Параметры кодировщика и декодера можно
совместно обучить путем максимизации вариационной нижней границы
(evidence lower bound – ELBO) данных.
В качестве маргинального распределения латентных переменных p(z) часто выбирается какое-нибудь простое распределения типа гауссова с диа‑
гональной ковариационной матрицей. На практике это может сделать
латентные переменные z более пригодными для последующих задач клас‑
сификации в силу следующих причин: z, как правило, имеет меньшую раз‑
мерность, чем x; z строится путем каскадных нелинейных преобразований,
и измерения латентных переменных проектируются независимыми. Ины‑
ми словами, латентные переменные могут дать (обученное) представление,
в котором данные легче разделяются. В работе [Kin+14] этот подход назван

Tlgm: @it_boooks

764  Обучение при меньшем числе помеченных примеров
M1 и показано, что латентные переменные действительно позволяют об‑
учить более сильные модели, если метки разрежены. (Общая идея обучения
представлений без учителя с целью упростить решение последующих задач
классификации более подробно описана в разделе 19.2.4.)
Альтернативный подход к использованию VAE, также предложенный в ра‑
боте [Kin+14] и названный M2, имеет вид:
(19.30)
где z – латентная переменная, pθ(z) = 𝒩(z|0, I) – латентное априорное рас‑
пределение, pθ(y) = Cat(y|π) – априорное распределение меток, а pθ(x|y,
z) = p(x|fθ(y, z)) – правдоподобие, например гауссово, с параметрами, вы‑
численными f (глубокой нейронной сетью). Главное новшество этого под‑
хода – предположение о том, что данные генерируются в соответствии как
с латентной переменной класса y, так и с непрерывной латентной перемен‑
ной z. Переменная класса y является наблюдаемой для помеченных данных
и ненаблюдаемой для непомеченных.
Чтобы вычислить правдоподобие для помеченных данных, pθ(x, y), нам нуж‑
но исключить z, что можно сделать, воспользовавшись сетью вывода вида
qϕ(z|y, x) = 𝒩(z|μϕ(y, x), diag(σϕ2 (x)).

(19.31)

Затем мы используем следующую вариационную нижнюю границу:
logpθ(x, y) ³ 𝔼qϕ(z|x,y)[logpθ(x|y, z) + logpθ(y)
+ logpθ(z) - logqϕ(z|x, y)] = -ℒ(x, y),

(19.32)

как обычно в VAE (см. раздел 20.3.5). Единственное различие в том, что на‑
блюдаются данные двух видов: x и y.
Чтобы вычислить правдоподобие для непомеченных данных, pθ(x), нужно
исключить z и y; это можно сделать, воспользовавшись сетью вывода вида:
qϕ(z, y|x) = qϕ(z|x)qϕ(y|x);

(19.33)

qϕ(z|x) = 𝒩(z|μϕ(x), diag(σϕ2 (x));

(19.34)

qϕ(y|x) = Cat(y|πϕ(x)).

(19.35)

Отметим, что qϕ(y|x) работает как дискриминантный классификатор, ко‑
торый подставляет отсутствующие метки. Затем мы используем следующую
вариационную нижнюю границу:
logpθ(x) ³ 𝔼qϕ(z,y|x)[logpθ(x|y, z) + logpθ(y) + logpθ(z) - logqϕ(z, y|x)]

(19.36)
(19.37)

Отметим, что дискриминантный классификатор q ϕ(y|x) используется
только для вычисления логарифмического правдоподобия непомеченных
данных, что нежелательно. Поэтому мы можем прибавить дополнительную

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  765

потерю классификации на помеченных данных и получить полную целевую
функцию:
�(θ) = 𝔼(x,y)~𝒟L[�(x, y)] + 𝔼x~𝒟U [𝒰(x)] + α𝔼(x,y)~𝒟L[-logqϕ(y|x)],

(19.38)

где α – гиперпараметр, контролирующий относительные веса порождающего
и дискриминантного обучения.
Конечно, вероятностная модель, используемая в M2, – лишь один из мно‑
гих способов произвести декомпозицию зависимостей между наблюдаемы‑
ми данными, метками классов и непрерывными латентными переменными.
Есть также много других способов приближенного вывода, помимо вари‑
ационного. Какой метод выбрать, зависит от задачи, но в целом главное
преимущество порождающего подхода в том, что можно включить знания
о предметной области. Скажем, можно смоделировать механизм отсутству‑
ющих данных, потому что отсутствие метки может нести информации о са‑
мих данных (например, люди часто не хотят отвечать на вопрос о здоровье
в анкете, если страдают каким-то заболеванием).

19.3.6.2. Порождающие состязательные сети
Порождающие состязательные сети (generative adversarial network – GAN),
более подробно описанные во втором томе этой книги, [Mur22]), – это по‑
пулярный класс порождающих моделей, которые обучаются неявной модели
распределения данных. Они состоят из сети-генератора, которая отображает
примеры из простого латентного распределения в пространство данных,
и сети-критика, которая пытается отличить выходы генератора от примеров
из истинного распределения данных. Генератор обучается порождать при‑
меры, который критик классифицирует как «настоящие».
Поскольку стандартные GAN не порождают обученного латентного пред‑
ставления данного примера и не обучаются явной модели распределения
данных, мы не можем использовать те же подходы, которые использова‑
лись для VAE. Вместо этого обучение с частичным привлечением учителя
с применением GAN обычно производится путем модификации критика,
так чтобы он выводил либо метку класса, либо «подлог», а не просто клас‑
сифицировал примеры как настоящие или подложные [Sal+16; Ode16]. Для
помеченных настоящих данных критик обучается выводить подходящую
метку класса, а для непомеченных настоящих данных – вероятность каждой
из меток классов. Как и при обучении стандартной GAN, критик обучается
классифицировать выходы генератора как подложные, а генератор обучается
обманывать критика.
Формально обозначим pθ(y|x) критика с C + 1 выходами, соответствую‑
щими C классам и классу «подлог», а G(z) генератор, который принимает
на входе примеры из априорного распределения p(z). Предположим, что
используется стандартная для GAN потеря перекрестной энтропии, пред‑
ложенная в работе [Goo+14]. Тогда потеря критика равна
-𝔼x,y~p(x,y) log pθ(y|x) - 𝔼x~p(x) log[1 - pθ(y = C + 1|x)]
- 𝔼z~p(z) logpθ(y = C + 1|G(z)).

(19.39)

Tlgm: @it_boooks

766  Обучение при меньшем числе помеченных примеров
Наша цель здесь – максимизировать вероятность правильного класса для
помеченных примеров, минимизировать вероятность подложного класса для
настоящих непомеченных примеров и максимизировать вероятность под‑
ложного класса для сгенерированных примеров. Потеря генератора проще:
𝔼z~p(z) log pθ(y = C + 1|G(z)).

(19.40)

Диаграмма системы обучения GAN с частичным привлечением учителя
показана на рис. 19.12.
Класс 1

Генератор

Непомеченное изображение

Класс 2

Дискриминатор

Помеченное изображение, класс 2

Класс 3

Класс C
Подлог

Рис. 19.12  Диаграмма обучения GAN с частичным привлечением учителя.
Дискриминатор обучается выводить класс помеченных примеров (красный),
«подлог» для выходов генератора (желтый) и какую-то метку для непомеченных данных (зеленый)

19.3.6.3. Нормализующие потоки
Нормализующие потоки (более подробно описаны во втором томе этой
книги, [Mur22]) – это вычислительно реализуемый способ определения глу‑
боких порождающих моделей. Точнее, они определяют обратимое отобра‑
жение fθ : 𝒳 ® 𝒵 с параметрами θ из пространства данных 𝒳 в латентное
пространство 𝒵. Плотность в пространстве данных можно записать, начав
с плотности в латентном пространстве и используя формулу замены пере‑
менных:
(19.41)
Мы можем обобщить эту идею это на обучение с частичным привлечени‑
ем учителя, как предложено в работе [Izm+20]. Для меток классов y Î {1 … 𝒞}
можно в качестве латентного распределения, обусловленного меткой k, за‑
дать гауссово распределение со средним μk и ковариацией Σk: p(z|y = k) =
𝒩(z|μk, Σk). Тогда маргинальное распределение z является смесью гауссовых.
Правдоподобие помеченных данных равно
(19.42)

Tlgm: @it_boooks

Обучение с частичным привлечением учителя  767

а правдоподобие для данных с неизвестной меткой равно p(x) = åk p(x|y = k)
p(y = k).
Для обучения с частичным привлечением учителя мы можем затем мак‑
симизировать совместное правдоподобие помеченных данных 𝒟l и непо‑
меченных данных 𝒟u:
(19.43)

при условии параметров θ биективной функции f, которая обучает модель
плотности для байесовского классификатора.
Для данной тестовой точки x прогнозное распределение модели имеет
вид:
(19.44)
Мы можем делать предсказания для тестовой точки x с помощью решаю‑
щего правила Байеса y = argmaxcÎ{1,…,𝒞} p(y = c|x).

19.3.7. Сочетание самостоятельного
обучения и обучения с частичным привлечением
учителя
Самостоятельное обучение и обучение с частичным привлечением учителя
можно сочетать. Например, в работе [Che+20c] используется метод SimCLR
(раздел 19.2.4.4), чтобы с частичным привлечением учителя обучить пред‑
ставления на небольшом размеченном наборе данных (как при переносе
обучения, раздел 19.2), а затем применить обученную модель к исходному
неразмеченному набору данных и дистиллировать предсказания из этой
модели-учителя T в модель-ученика S. (Дистилляцией знаний называется
подход, заключающийся в обучении одной модели на предсказаниях другой,
впервые предложенный в работе [HVD14].) То есть после дообучения T авто‑
ры обучают S путем минимизации потери:
(19.45)
где τ > 0 – параметр температуры, применяемый к выходу softmax и нужный
для сглаживания меток. Если S имеет такую же форму, как T, то это называет‑
ся самообучением (см. раздел 19.3.1). Но обычно ученик S меньше учителя T.
(Например, T может быть моделью высокой емкости, а S – ее облегченной
версией для работы в телефоне.) Как работает подход в целом, показано на
рис. 19.13.

Tlgm: @it_boooks

768  Обучение при меньшем числе помеченных примеров
Предобучение без учителя
Выходные
проекционные
слои

Дообучение
с учителем
Не зависящая
от задачи
большая СНС

Небольшая доля данных,
имеющих метки классов

Непомеченные
данные

Самообучение /
Дистилляция
предсказаний
Зависящая
от задачи СНС

Непомеченные
данные

Рис. 19.13  Сочетание обучения с частичным привлечением учителя на непомеченных данных (слева), дообучения с учителем (в центре) и самообучения
на псевдопомеченных данных (справа). На основе рис. 3 из работы [Che+20c].
Печатается с разрешения Тин Ченя

19.4. актиВное обуЧение
В активном обучении цель заключается в том, чтобы найти истинное про‑
гнозное отображение y = f(x), опросив как можно меньше точек (x, y). Существует три основных варианта. В случае синтеза запросов алгоритм
может выбрать любой вход x и запросить соответствующий выход y = f(x).
В случае активного обучения с пулом имеется большой, но фиксированный
набор непомеченных примеров, а алгоритм должен запросить метку для
одного или нескольких из них. Наконец, в потоковом активном обучении
данные поступают непрерывно, а алгоритм должен решить, хочет он запро‑
сить метку для текущего входа или нет.
Имеются различные тесно связанные задачи. Цель байесовской оптимизации – оценить местоположение глобального оптимума x* = argminx f(x),
задав минимальное число вопросов; как правило, мы обучаем суррогатную
модель (поверхность отклика) на промежуточных запросах (x, y), чтобы ре‑
шить, какой вопрос задать следующим. При планировании эксперимента
цель – вывести вектор параметров некоторой модели, используя тщательно
подобранные примеры 𝒟 = {x1, …, xN}, т. е. мы хотим оценить p(θ|𝒟), исполь‑
зуя как можно меньше данных. (Это можно рассматривать как обобщенную
форму активного обучения без учителя.)
В этом разделе мы дадим краткий обзор активного обучения с пулом. До‑
полнительные сведения см. в обзоре [Set12].

Tlgm: @it_boooks

Активное обучение  769

19.4.1. Подход на основе теории принятия
решений
В подходе к активному обучению на основе теории принятия решений, пред‑
ложенном в работах [KHB07; RM01], мы определяем полезность запрашива‑
ния x в терминах ценности информации:
(19.46)
где R(a|𝒟) = 𝔼p(θ|𝒟)[𝓁(θ, a)] – апостериорная ожидаемая потеря, связанная
с выбором некоторого будущего действия a при условии наблюдавшихся до
сих пор данных 𝒟. К сожалению, вычислять U(x) для каждого x очень дорого,
так как для каждого возможного отклика y, который мы могли бы наблюдать,
необходимо обновить наши ожидания при условии (x, y), чтобы понять, какое
влияние он мог бы оказать на будущие решения (аналогично технике поиска
с заглядыванием вперед применительно к ожидаемым состояниям).

19.4.2. Теоретико-информационный подход
Теоретико-информационный подход к активному обучению с учителем по‑
зволяет обойтись без зависящих от задачи функций потери, а сосредото‑
читься на обучении модели так хорошо, как получится. В частности, в работе
[Lin56] предложено определять полезность опрашивания x в терминах информационного выигрыша, т. е. приобретения информации о параметрах
θ, а значит, снижения энтропии:
(19.47)
(Заметим, что первый член вообще не зависит от x, но мы включили его для
удобства в будущем.) В упражнении 19.1 вам будет предложено доказать, что
эта целевая функция идентична ожидаемому изменению в апостериорном
распределении параметров, которое имеет вид:
(19.48)
Пользуясь симметрией взаимной информации, мы можем переписать
формулу (19.47) в виде:
(19.49)
(19.50)
(19.51)

Tlgm: @it_boooks

770  Обучение при меньшем числе помеченных примеров
Преимущество этого подхода в том, что теперь нужно рассуждать только
о недостоверности прогнозного распределения выходов y, а не параметров θ.
У формулы (19.51) есть любопытная интерпретация. Первый член предпо‑
читает примеры x, для которых имеется неопределенность в предсказанной
метке. Использование только его в качестве критерия отбора называется
выборкой максимальной энтропии [SW87]. Однако при этом возможны
проблемы с примерами, которые внутренне неоднозначны или неправильно
помечены. Второй член в формуле (19.51) противодействует такому поведе‑
нию, потому что предпочитает примеры x, для которых метка может быть
предсказана с достаточной определенностью, если известно θ; это позволяет
избежать выборки принципиально трудных для предсказания примеров.
Иными словами, формула (19.51) отбирает примеры x, для которых модель
делает уверенные и при этом весьма разнообразные предсказания. Поэтому
подход получил название байесовского активного обучения по несогласию (Bayesian active learning by disagreement – BALD) [Hou+12].
Этот метод можно использовать для обучения классификаторов для других
предметных областей, где получить проставленные экспертами метки труд‑
но, например медицинских или астрономических изображений [Wal+20].

19.4.3. Пакетное активное обучение
До сих пор мы предполагали жадную, или близорукую, стратегию, когда
выбирается единственный пример x, как будто он последний в мире. Но ино‑
гда бюджет позволяет собрать набор из B примеров, назовем их (X, Y). В та‑
ком случае критерий информационного выигрыша принимает вид U(X) =
ℍ(p(θ|𝒟)) - 𝔼p(Y|X, 𝒟)[ℍ(p(θ|Y, X, 𝒟))]. К сожалению, оптимизация этой функ‑
ции – NP-трудная задача относительно длины горизонта B [KLQ95; KG05].
По счастью, при некоторых условиях жадная стратегия почти оптимальна,
и сейчас мы объясним, почему это так. Прежде всего, заметим, что для любого
заданного X функция информационного выигрыша f(Y) ℍ(p(θ|𝒟)) - ℍ(p(θ|Y,
X, 𝒟)) отображает множество меток Y в скаляр. Ясно, что f(∅) = 0 и что f не
убывает, т. е. f(Y large) ³ f(Y small) в силу принципа «информация лишней не бы‑
вает». Кроме того, в работе [KG05] доказано, что функция f субмодулярная.
Следовательно, последовательный жадный подход отличается от оптималь‑
ного не более чем на постоянный множитель. Объединив эту жадную технику
с целевой функцией BALD, мы получим метод BatchBALD [KAG19].

19.5. метаобуЧение
Дисциплина метаобучения, или обучения учению [TP97], занимается об‑
учением нескольких взаимосвязанных функций (часто называемых «зада‑
чами»). Например, предположим, что имеется множество J взаимосвязан‑
ных наборов данных, {𝒟j : j = 1 … J}, где 𝒟j = {(x jn, y jn) : n = 1 … Nj}, x jn ~ p(x),
y jn = f j(x jn). (Например, p(x) могло бы быть распределением изображений, f 1 –
функцией, отображающей изображения в породы собак, f 2 – функцией, ото‑

Tlgm: @it_boooks

Метаобучение  771

бражающей изображения в типы автомобилей, и т. д.) Мы можем применить
этот внутренний алгоритм для генерирования размеченного набора 𝒟meta =
{(𝒟j, f j) : j = 1 … J}, который можно использовать для обучения внешнего
«метаалгоритма», или функции M̂, отображающей набор данных в функцию
предсказания, fˆj = M̂(𝒟j) (см. [Min99]). Для сравнения: в традиционном об‑
учении с учителем обучается функция fˆ, которая отображает один пример
в метку, ŷ n = fˆ(xn).
Существует много других подходов к метаобучению (см., например, обзор
[Van18]). В разделе 19.5.1 мы обсудим популярный подход MAML. У метао‑
бучения также много приложений, например обучение на малом числе
примеров (few-shot learning) (см. раздел 19.6).

19.5.1. Метаобучение, не зависящее от модели
(MAML)
Естественный подход к метаобучению – использовать иерархическую байе‑
совскую модель, как показано на рис. 19.14. Предполагается, что параметры
для каждой задачи θj имеют общее априорное распределение, p(θj|ϕ), кото‑
рое можно использовать для объединения статистической силы от несколь‑
ких задач с малым объемом обучающих данных.

наблюдается на этапе мета-обучения
и метатестирования
наблюдается только на этапе
мета-обучения
не наблюдается

Рис. 19.14  Графовая модель, соответствующая MAML. Слева: порождающая
модель. Справа: в процессе метаобучения каждый параметр задачи θj обновляется с использованием своего локального набора данных. Индексы j относятся
к задачам (метанаборам данных), а индексы i – к экземплярам внутри каждой
задачи. Сплошные узлы наблюдаемы всегда, заштрихованные – только на этапе метаобучения (но не на этапе тестирования). На основе рис. 1 из работы
[FXL18]. Печатается с разрешения Челси Финн

Можно было бы выполнить байесовский вывод для параметров задачи θj
и разделяемых гиперпараметров ϕ, но более эффективно использовать сле‑
дующую эмпирическую байесовскую аппроксимацию (раздел 4.6.5.3):
(19.52)

Tlgm: @it_boooks

772  Обучение при меньшем числе помеченных примеров
j
) – точечная оценка параметров для задачи j на основе набо‑
где θ̂ j = θ̂(ϕ, 𝒟 train
j
ра данных 𝒟 train и априорного распределения ϕ, а для аппроксимации марги‑
нального правдоподобия используется перекрестная проверка (раздел 5.2.4).
Чтобы вычислить точечную оценку параметров задачи, θ̂ j, мы используем
K-шаговую процедуру градиентного подъема, отправляясь от ϕ со скоростью
обучения ρ. Можно показать, что это эквивалентно приближенной оценке
MAP с использованием гауссова априорного распределения с центром в ϕ,
где сила априорного распределения управляется количеством шагов гради‑
ента [San96; Gra+18]. (Это пример быстрой адаптации весов конкретной
задачи, отталкиваясь от разделяемого априорного распределения ϕ.)
Таким образом, мы видим, что обучение априорного распределения ϕ
эквивалентно обучению хорошего инициализатора для обучения конкрет‑
ной задачи. Это называется моделенезависимым метаобучением (modelagnostic meta-learning – MAML) [FAL17].

19.6. обуЧение на малом Числе примероВ
Люди часто обучаются предсказывать, располагая совсем небольшим числом
помеченных примеров. Это называется обучением на малом числе примеров (few-shot learning – FSL). В предельном случае человек или система
обучаются на одном примере из каждого класса (one-shot learning) или даже
вообще без помеченных примеров (zero-shot learning).
Распространенный подход к оценке методов FSL – использовать классификацию с C классами и N примерами (C-way N-shot classification), когда
от системы ожидают, что она обучится классифицировать по C классам, имея
всего N примеров из каждого класса. Обычно N и C очень малы, например
на рис. 19.15 показан случай, когда имеется C = 3 класса по N = 2 примеров
в каждом. Раз объем данных, принадлежащих новому домену (в данном слу‑
чае – утки, дельфины и куры), так мал, нет надежды обучиться с нуля. По‑
этому придется прибегнуть к метаобучению.
В процессе обучения метаалгоритм M обучается на помеченном опорном
наборе из группы j и возвращает предиктор f j, который затем оценивается
на опросном наборе из группы j, не пересекающемся с опорным. M опти‑
мизируется на всех J группах. Наконец, мы можем применить M к нашему
новому помеченному опорному набору и получить предиктор f test, который
применяется к опросному набору из тестового домена. Эта схема показана
на рис. 19.15. Мы видим, что между классами из обеих обучающих задач
({кошка, овца, свинья} и {собака, акула, лев}) и классами из тестовой задачи
({утка, дельфин, курица}) нет пересечений. Таким образом, алгоритм M дол‑
жен научиться предсказывать классы изображений вообще, а не какой-то
конкретный набор меток.
Существует много подходов к обучению на малом числе примеров. Один
такой метод мы обсудим в разделе 19.6.1. Другие методы см., например,
в работе [Wan+20b].

Tlgm: @it_boooks

Обучение на малом числе примеров  773
Обучающая задача 1

Обучающая задача 2

Тестовая задача 1

Опорный набор

Опорный набор

Опорный набор

Опросный набор

Опросный набор

Опросный набор

Рис. 19.15  Применение метаобучения для обучения на малом числе примеров. Здесь каждая задача – классификация с тремя классами и двумя примерами. Из работы https://bit.ly/3rrvSjw. Copyright (2019) Borealis AI. Печатается
с разрешения Саймона Принса и Эйприл Купер

19.6.1. Сопоставляющие сети
Один из подходов к обучению на малом числе примеров – обучить метрику
расстояния на каком-то другом наборе данных, а затем использовать dθ(x, x¢)
в классификаторе по ближайшим соседям. По существу, мы таким образом
определяем полупараметрическую модель вида pθ(y|x, S), где S – небольшой
помеченный набор данных (называемый опорным набором), а θ – параметры
функции расстояния. Этот подход широко используется в задачах детальной
классификации, когда имеется много разных, но визуально похожих катего‑
рий, например изображений лиц в галерее или изображений товаров в каталоге.
Обобщением этого подхода является задача обучения функции вида
(19.53)
где aθ(x, xn, S) Î ℝ+ – то или иное адаптивное ядро сходства. Например, можно
использовать ядро внимания вида
(19.54)
где c(u, v) – коэффициент Отиаи. (При желании можно сделать f и g одина‑
ковыми.) Интуитивно понятно, что ядро внимания будет сравнивать x с xn
в контексте всех помеченных примеров, что дает неявный сигнал о том,
какие измерения признаков релевантны. (Более подробно механизмы вни‑
мания обсуждаются в разделе 15.4.) Это называется сопоставляющей сетью
(matching network) [Vin+16] (см. иллюстрацию на рис. 19.16).

Tlgm: @it_boooks

774  Обучение при меньшем числе помеченных примеров

Рис. 19.16  Сопоставляющая сеть для обучения на одном примере.
На основе рис. 1 из работы [Vin+16]. Печатается с разрешения Ориола Виньялса

Мы можем обучить функции f и g на нескольких небольших наборах дан‑
ных, как при метаобучении (раздел 19.5). Точнее, пусть 𝒟 – большой раз‑
меченный набор данных (например, ImageNet), а p(ℒ) – распределение его
меток. Создадим задачу, произведя выборку из малого набора меток (ска‑
жем, 25), ℒ ~ p(ℒ), затем выборку из малого опорного набора примеров из
𝒟 с этими метками, 𝒮 ~ ℒ, и, наконец, выборку из малого тестового набора
с теми же метками, 𝒯 ~ ℒ. Затем обучим модель предсказывать тестовые мет‑
ки на опорном наборе, т. е. оптимизировать следующую целевую функцию:
(19.55)
После обучения мы замораживаем θ и применяем формулу (19.53) к тесто‑
вому опорному набору 𝒮.

19.7. обуЧение со слабым уЧителем

Термин «обучение со слабым учителем» (weakly supervised learning) от‑
носится к ситуации, где метки, ассоциированные с каждым вектором при‑
знаков в обучающем наборе, неточны.
Один из возможных сценариев – когда для каждого примера имеется рас‑
пределение меток, а не единственная метка. К счастью, мы все же можем
выполнить обучение методом максимального правдоподобия: нужно просто
минимизировать перекрестную энтропию:
(19.56)
где p(y|xn) – распределение меток для примера n, а qθ(y|xn) – предсказанное
распределение. На самом деле часто даже полезно искусственно заменять

Tlgm: @it_boooks

Упражнения  775

точные метки «мягкой» версией, где дельта-функция заменена распреде‑
лением, которое назначает 90 % массы вероятности наблюдаемой метке,
а оставшуюся равномерно распределяет между остальными вариантами. Это
называется сглаживанием меток и является полезной формой регуляриза‑
ции (см., например, [MKH19]).
Другой сценарий – когда имеется множество, или мешок, экземпляров
xn = {xn,1, …, xn,B} и одна метка yn для всего пакета, а не для его отдельных
членов, ynb. Часто предполагается, если какой-нибудь элемент мешка поло‑
B
ynb, но
жителен, то и весь мешок помечается как положительный, т. е. yn = Úb=1
мы не знаем, какой именно элемент стал причиной положительного исхода.
Однако если все элементы отрицательны, то мешок в целом отрицателен.
Это называется обучением на нескольких экземплярах (MIL) [DLLP97].
(Недавний пример такого подхода в контексте обучения оценок риска за‑
болеть COVID-19 см. в работе [MKS21].) Для решения задачи MIL можно ис‑
пользовать различные алгоритмы, зависящие от того, какие предположения
мы делаем о корреляции между метками в каждом мешке, и от ожидаемой
доли положительных примеров (см., например, [KF05]).
Еще один сценарий называется дальнее управление (distant supervision)
[Min+09], он часто встречается при обучении систем извлечения информа‑
ции. Идея в том, что имеется некоторый факт, например «Женаты(B,M)»,
достоверность которого не подлежит сомнению (потому что он хранится
в базе данных). И этот факт мы используем для пометки любого предложения
(в неразмеченном корпусе обучающих документов), в котором упомянуты
сущности B и M, как положительный пример отношения «Женаты». Напри‑
мер, предложение «B и M пригласили 100 человек на свою свадьбу» будет
помечено как положительное. Но такая эвристика может давать и ложнопо‑
ложительные результаты, например предложение «B и M пошли поужинать»
тоже будет помечено как положительное. Таким образом, результирующие
метки будут зашумленными. Вопрос о том, как бороться с зашумленностью
меток, обсуждается в разделе 10.4.

19.8. упражнения
Упражнение 19.1 [уравнение информационного выигрыша].
Рассмотрим следующие две целевых функции для вычисления полезности
опрашивания примера x в активном обучении:
U(x)
U¢(x)

ℍ(p(θ|𝒟)) - 𝔼p(y|x,𝒟)[ℍ(p(θ|𝒟, x, y))];
𝔼p(y|x,𝒟)[𝕂𝕃(p(θ|𝒟, x, y)||p(θ|𝒟))].

Докажите, что они равны.

(19.57)
(19.58)

Глава

Tlgm: @it_boooks

20

Понижение
размерности
Широко распространенная форма обучения без учителя – понижение размерности, когда требуется обучить отображение из видимого пространства
высокой размерности, x Î ℝD, в латентное пространстве меньшей размер‑
ности, z Î ℝL. Это может быть либо параметрическая модель z = f(x; θ), при‑
менимая к любому входу, либо непараметрическое отображение, когда вы‑
числяется погружение zn для всех входов xn, принадлежащих набору данных,
и только для них. Второй подход чаще всего используется для визуализации
данных, а первый еще и как шаг предобработки для других видов алгоритмов
обучения. Например, мы могли бы понизить размерность, обучив погруже‑
ние x в z, а затем обучив на этом погружении простой линейный классифи‑
катор, который отображает z в y.

20.1. метод глаВных компонент
Самая простая и популярная форма понижения размерности – метод главных компонент (principal components analysis – PCA). Основная идея – най‑
ти линейную ортогональную проекцию данных высокой размерности x Î ℝD
в подпространство меньшей размерности z Î ℝL, такое что низкоразмер‑
ное представление является «хорошей аппроксимацией» исходных данных
в следующем смысле: если в результате проецирования (кодирования) x
мы получаем z = W⟙x и затем выполняем обратное проецирование (декодирование) z и получаем x̂ = Wz, то хотелось бы, чтобы x̂ было близко к x
в смысле метрики 𝓁2. Формально мы можем определить следующую ошибку
реконструкции, или искажение:
(20.1)
где этапы кодирования и декодирования – линейные отображения.
В разделе 20.1.2 мы покажем, что эту целевую функцию можно миними‑
зировать, положив Ŵ = UL, где UL образована L собственными векторами

Tlgm: @it_boooks

Метод главных компонент  777

эмпирической ковариационной матрицы с наибольшими собственными
значениями:
(20.2)
где Xc – центрированная версия матрицы плана размера N´D. В разде‑
ле 20.2.2 мы покажем, что это эквивалентно максимизации правдоподобия
латентной линейной гауссовой модели; этот метод называется вероятност‑
ным PCA.

20.1.1. Примеры
Прежде чем переходить к деталям, приведем несколько примеров.
На рис. 20.1 показан очень простой пример, когда двумерные данные про‑
ецируются на одномерную прямую. Это направление улавливает наиболь‑
шую изменчивость данных.

Рис. 20.1  Иллюстрация PCA в случае, когда двумерная
плоскость проецируется на одномерную прямую. Кружочками обозначены оригинальные точки данных, крестиками – реконструкции. Красная звездочка – среднее
данных. Построено программой по адресу figures.probml.
ai/book1/20.1

На рис. 20.2 мы показываем, что происходит при проецировании некото‑
рых изображений цифры 9 из набора MNIST на плоскость. Хотя размерность
входов очень велика (28´28 = 784 измерения), количество «эффективных
степеней свободы» гораздо меньше, потому что пиксели коррелированы,
а многие цифры внешне похожи. Поэтому мы можем представить каждое
изображение точкой в линейном пространстве низкой размерности.
В общем случае бывает трудно интерпретировать латентные измерения,
на которые проецируются данные. Однако, глядя на несколько точек, спро‑
ецированных на данное направление, и на примеры, из которых они взяты,

Tlgm: @it_boooks

778  Понижение размерности

Вторая главная компонента

мы видим, что первая главная компонента (горизонтальное направление),
скорее всего, отражает ориентацию цифры, а вторая компонента (вертикаль‑
ное направление) – толщину линии.

Первая главная компонента

Рис. 20.2  Применение PCA к цифрам класса 9 из набора MNIST. Сетка образована квантилями 5, 25, 50, 75, 95 % распределения данных в каждом направлении. Кружочки – ближайшие к вершинам сетки спроецированные изображения. На основе рис. 14.23 из работы [HTF09]. Построено программой по
адресу figures.probml.ai/book1/20.2

На рис. 20.3 показано применение PCA еще к одному набору изображе‑
ний – базе данных лиц, составленной компанией Olivetti, в которую входят
полутоновые изображения размера 64´64. Мы проецируем их на трехмер‑
ное подпространство. Результирующие базисные векторы (столбцы матрицы
проекции W) показаны в виде изображений на рис. 20.3b; они называют‑
ся собственными лицами [Tur13] по причинам, которые будут объяснены
в разделе 20.1.2. Мы видим, что главные моды изменения данных связаны

(а)

(b)

Рис. 20.3  (a) Несколько изображений размером 64´64 пикселя, случайно
выбранных из базы данных лиц, принадлежащей компании Olivetti. (b) Среднее
и первые три главных компоненты, представленные в виде изображений. Построено программой по адресу figures.probml.ai/book1/20.3

Tlgm:@it_boooks

Метод главных компонент  779

с общим освещением, а также с различиями в области бровей. Взяв доста‑
точное число измерений (но меньше изначальных 4096), мы сможем подать
представление z = W⟙x на вход классификатора по ближайшему соседу для
распознавания лиц: это быстрее и надежнее, чем работать в пространстве
пикселей [MWP98].

20.1.2. Вывод алгоритма
Пусть имеется неразмеченный набор данных 𝒟 = {xn : n = 1 … N}, где xn Î ℝD.
Мы можем представить его в виде матрицы данных X размера N´D. Будем

предполагать, что x = (1/N)åNn=1 xn = 0, этого можно добиться центрирова‑
нием данных.
Мы хотели бы аппроксимировать каждый пример xn представлением низ‑
кой размерности, zn Î ℝL. Предположим, что каждый xn можно «объяснить»
в терминах взвешенной комбинации базисных функций w1, …, wL, где все
wk Î ℝD, а веса определяются векторами zn Î ℝL, т. е. xn ≈ åLk=1 znkwk. Вектор zn –
это низкоразмерное представление xn, которое называется латентным вектором, потому что состоит из латентных, или «скрытых», значений, которые
непосредственно в данных не наблюдаются. Совокупность этих латентных
переменных называется латентными факторами.
Измерить ошибку такой аппроксимации можно следующим образом:
(20.3)
где строки Z – низкоразмерные версии строк X. Эта величина называется
(средней) ошибкой реконструкции, поскольку мы аппроксимируем каж‑
дый xn вектором x̂ n = Wzn.
Мы хотим минимизировать эту ошибку при условии, что W – ортогональ‑
ная матрица. Ниже будет показано, что оптимальное решение получается,
когда Ŵ = UL, где UL содержит L собственных векторов эмпирической кова‑
риационной матрицы с наибольшими собственными значениями.

20.1.2.1. Базовый случай
Начнем с оценки наилучшего одномерного решения, w1 Î ℝD. Остальные
базисные векторы w2, w3, … мы найдем позже.
Обозначим коэффициенты при первом базисном векторе для каждой из
точек данных z1 = [z11, …, zN1] Î ℝN. Ошибка реконструкции равна
(20.4)

(20.5)
(20.6)

Tlgm: @it_boooks

780  Понижение размерности
так как w1⟙w1 = 1 (в силу предположения об ортонормированности). Прирав‑
нивая производные по zn1 нулю, получаем
(20.7)
Следовательно, оптимальное вложение получается при ортогональном
проецировании данных на направление w1 (см. рис. 20.1a). Подстановка
в (20.4) дает потерю для таких весов:
(20.8)
Чтобы решить это уравнение относительно w1, заметим, что
(20.9)
где Σ – эмпирическая ковариационная матрица (поскольку мы предположи‑
ли, что данные центрированы). Эта функция тривиально оптимизируется,
если положить ||w1|| ® ¥, поэтому наложим ограничение ||w1|| = 1 и вместо
этого оптимизируем функцию:
(20.10)
где λ1 – множитель Лагранжа (см. раздел 8.5.1). Приравнивая производные
нулю, получаем
(20.11)
(20.12)
Поэтому оптимальное направление, на которое следует проецировать дан‑
ные, определяется собственным вектором ковариационной матрицы. Умно‑
жая слева на w1⟙ (и пользуясь тем, что w1⟙w1 = 1), находим
(20.13)
Поскольку мы хотим максимизировать эту величину (минимизировать
потерю), то выбираем собственный вектор, соответствующий наибольшему
собственному значению.

20.1.2.2. Оптимальный вектор весов максимизирует
дисперсию спроецированных данных
Прежде чем продолжить, сделаем интересное наблюдение. Поскольку дан‑
ные центрированы, имеем

Tlgm: @it_boooks

Метод главных компонент  781

(20.14)
Следовательно, дисперсия спроецированных данных равна
(20.15)
Поэтому минимизация ошибки реконструкции эквивалентна максимизации
дисперсии спроецированных данных:
(20.16)
Именно по этой причине часто говорят, что PCA находит направления мак‑
симальной дисперсии (см. иллюстрацию на рис. 20.4). Однако формулировку
с минимальной ошибкой проще понять, и она более общая.

Рис. 20.4  Дисперсия точек, спроецированных на разные одномерные векторы. v1 – первая главная компонента, которая максимизирует
дисперсию проекции. v2 – вторая главная компонента, ее направление
ортогонально v1. Наконец, v0 – какой-то вектор между v1 и v2. На основе рис. 8.7 из работы [Gér19]. Построено программой по адресу figures.
probml.ai/book1/20.4

20.1.2.3. Шаг индукции
Теперь найдем другое направление w2, чтобы продолжить минимизацию
ошибки реконструкции, теперь уже при условиях w1⟙w2 = 0 и w2⟙w2 = 1. Ошиб‑
ка равна
(20.17)
Оптимизация относительно w1 и z1 дает то же решение, что и прежде.
В упражнении 20.3 вам будет предложено доказать, что из уравнения
¶ℒ/¶z2 = 0 следует, что zn2 = w2⟙xn. После подстановки получаем

Tlgm: @it_boooks

782  Понижение размерности
(20.18)
Опуская постоянный член, подставляя оптимальный w1 и добавляя огра‑
ничения, получаем
(20.19)
В упражнении 20.3 вам будет предложено доказать, что решение дает соб‑
ственный вектор, соответствующий второму по величине собственному зна‑
чению:
(20.20)
Продолжая рассуждение таким же образом, можно показать, что Ŵ = UL.

20.1.3. Вычислительные трудности
В этом разделе мы обсудим различные практические трудности, связанные
с применением PCA.

20.1.3.1. Ковариационная матрица и корреляционная
матрица

вес

вес

Мы все время имели дело со спектральным разложением ковариационной
матрицы. Однако лучше вместо нее использовать корреляционную матрицу.
Причина в том, что в противном случае PCA может быть «введен в заблуж‑
дение» направлениями, в которых дисперсия высока просто из-за шкалы
измерений. На рис. 20.5 приведен такой пример. На левом рисунке диапазон
значений по вертикальной оси шире, чем по горизонтальной. Из-за этого
первая главная компонента выглядит не вполне «естественно». На правом

рост

рост

Рис. 20.5. Влияние стандартизации на PCA применительно к набору данных
о росте и весе (красный=женщина, синий=мужчина). Слева: PCA для первичных
данных. Справа: PCA для стандартизированных данных. Построено программой
по адресу figures.probml.ai/book1/20.5

Tlgm: @it_boooks

Метод главных компонент  783

рисунке показаны результаты PCA после стандартизации данных (что экви‑
валентно использованию корреляционной матрицы вместо ковариацион‑
ной) – выглядит гораздо лучше.

20.1.3.2. Работа с данными высокой размерности

Мы представили PCA как задачу нахождения собственных векторов кова‑
риационной матрицы X⟙X размера D´D. Если D > N, то быстрее работать
с матрицей Грама XX⟙ размера N´N. Покажем, как это сделать.
Предположим сначала, что U – ортогональная матрица, образованная соб‑
ственными векторами XX⟙, собственные значения которых составляют ма‑
трицу Λ. По определению имеем (XX⟙)U = UΛ. Умножение слева на X⟙ дает
(X⟙X)(X⟙U) = (X⟙U)Λ,

(20.21)

откуда видно, что собственные векторы X⟙X образуют матрицу V = X⟙U,
а собственные значения, как и раньше, составляют матрицу Λ. Однако эти
собственные векторы не нормированы, так как ||vj||2 = uj⟙XX⟙uj = λj uj⟙uj = λj.
Нормированные собственные векторы образуют матрицу:
V = X⟙UΛ-1/2.

(20.22)

Это дает альтернативный способ вычисления PCA-базиса. А также откры‑
вает возможность воспользоваться ядерным трюком, как будет объяснено
в разделе 20.4.6.

20.1.3.3. Вычисление PCA с использованием SVD
В этом разделе мы продемонстрируем эквивалентность PCA, вычисляемого
с помощью собственных векторов (раздел 20.1), и усеченного SVD1.
Пусть UΣΛΣUΣ⟙ – первые L векторов из спектрального разложения ковариа‑
ционной матрицы Σ µ X⟙X (предполагается, что X центрирована). Напомним
(см. раздел 20.1.2), что оптимальную оценку проекционных весов W дают
первые L собственных значений, так что W = UΣ.
Пусть теперь UX SXVX⟙ » X – L-усеченная SVD-аппроксимация матрицы
данных X. Из формулы (7.184) мы знаем, что правосингулярные векторы X
являются собственными векторами X⟙X, так что VX = UΣ =W. (Кроме того,
собственные значения ковариационной матрицы связаны с сингулярными
числами матрицы данных соотношением λk = sk2/N.)
Теперь предположим, что нас интересуют спроецированные точки (назы‑
ваемые также главными компонентами или оценками главных компонент),
а не матрица проекции. Имеем
Z = XW = UX SXVX⟙VX = UX SX.

(20.23)

Наконец, если мы хотим приближенно реконструировать данные, то имеем
X̂ = ZW⟙ = UX SXVX⟙.
1

(20.24)

Более обстоятельное объяснение можно найти по адресу https://bit.ly/2I566OK.

Tlgm: @it_boooks

784  Понижение размерности
Это в точности то же самое, что усеченная SVD-аппроксимация (раз‑
дел 7.5.5).
Таким образом, PCA можно реализовать либо как спектральное разложе‑
ние Σ, либо как сингулярное разложение X. Последнее часто предпочтитель‑
нее из соображений вычислительного характера. Для задач очень большой
размерности можно использовать рандомизированный алгоритм SVD, см.,
например, [HMT11; SKT14; DM16]. Например, рандомизированный реша‑
тель в библиотеки sklearn требует времени O(NL2) + O(L3) для N примеров
и L главных компонент, тогда как точный алгоритм SVD требует времени
O(ND2) + O(D3).

20.1.4. Выбор числа латентных измерений
В этом разделе мы обсудим, как выбирать число латентных измерений L
в PCA.

20.1.4.1. Ошибка реконструкции
Определим ошибку реконструкции на наборе данных 𝒟 при использовании
модели с L измерениями:
(20.25)
где реконструкция вычисляется по формуле x̂ n = Wzn + μ, где zn = W⟙(xn - μ),
μ – эмпирическое среднее, а W оценивается так же, как и выше. На рис. 20.6a
показан график зависимости ℒL от L на обучающем наборе данных MNIST.
Как видим, кривая быстро спадает, а это значит, что большую часть эмпири‑
ческой корреляции пикселей можно уловить с помощью небольшого числа
факторов.

(a)

(b)

Рис. 20.6  Зависимость ошибки реконструкции на наборе MNIST от числа латентных измерений в PCA. (a) Обучающий набор. (b) Тестовый набор. Построено
программой по адресу figures.probml.ai/book1/20.6

Tlgm: @it_boooks

Метод главных компонент  785

Конечно, если взять L = rank(X), то мы получим нулевую ошибку рекон‑
струкции на обучающем наборе. Чтобы избежать переобучения, естественно
построить график ошибки реконструкции на тестовом наборе. Он показан
на рис. 20.6b. Здесь мы видим, что ошибка уменьшается, даже когда модель
усложняется! Таким образом, мы не наблюдаем обычной U-образной кривой,
ожидаемой при обучении с учителем. Проблема в том, что PCA не настоящая
порождающая модель данных: при увеличении числа латентных измерений
она будет аппроксимировать тестовые данные более точно. (Аналогичная
проблема возникает, если построить график ошибки реконструкции на те‑
стовом наборе, используя кластеризацию методом K средних, обсуждаемую
в разделе 21.3.7.) Некоторые решения этой проблемы мы обсудим ниже.

20.1.4.2. Графики каменистой осыпи
Стандартная альтернатива графику зависимости реконструкции ошибки от
L – график каменистой осыпи (scree plot), отражающий зависимость соб‑
ственных значений λj, упорядоченных по убыванию абсолютной величины,
от j. Можно показать (упражнение 20.4), что
(20.26)
Таким образом, при увеличении числа измерений собственные значения
уменьшаются, а вместе с ними и ошибка реконструкции, как показано на
рис. 20.7a1. С этой величиной связана также доля объясненной дисперсии,
определяемая как
(20.27)
Она отражает ту же информацию, что график каменистой осыпи, но воз‑
растает вместе с L (см. рис. 20.7b).

20.1.4.3. Правдоподобие профиля
Хотя график ошибки реконструкции не имеет U-образной формы, часто кри‑
вая содержит «колено», или «угловой изгиб», где ошибка резко переходит
от сравнительно больших значений к сравнительно малым. Идея в том, что
для L < L*, где L* – «истинная» латентная размерность (или число кластеров),
скорость убывания функции ошибки будет высокой, а для L > L* выигрыш бу‑
дет меньше, потому что модель и так уже достаточно сложна, чтобы уловить
истинное распределение.
1

Название связано с тем, что «график выглядит как склон горы, а “каменистая
осыпь” – это те обломки камней, которые упали с горы и лежат у ее подножия».
(Цитируется по статье Кеннета Джанда по адресу https://bit.ly/2kqG1yW.)

Tlgm: @it_boooks

786  Понижение размерности

(a)

(b)

Рис. 20.7  (a) График каменистой осыпи для того же обучающего набора, что
на рис. 20.6a. (b) Доля объясненной дисперсии. Построено программой по адресу figures.probml.ai/book1/20.7

Один из способов автоматизировать обнаружение этого изменения гради‑
ента кривой – вычислить правдоподобие профиля (profile likelihood), как
предложено в работе [ZG06]. Идея в следующем. Пусть λL – некоторая мера
ошибки, вносимой моделью размера L, так что λ1 ³ λ2 ³ … ³ λLmax. В случае
PCA это собственные значения, но идея применима также к ошибке рекон‑
струкции при кластеризации методом K средних (см. раздел 21.3.7). Теперь
рассмотрим разбиение этих значений на две группы – для k < L и k > L, где
L – некоторая пороговая величина, которую мы хотим найти. Чтобы изме‑
рить качество L, мы будем использовать простую модель точки перехода, где
λk ~ 𝒩(μ1, σ2), если k £ L, и λk ~ 𝒩(μ2, σ2), если k > L. (Важно, что σ2 в обеих
моделях одинаково, чтобы предотвратить переобучение в случае, когда в од‑
ном режиме данных меньше, чем в другом.) Внутри каждого режима пред‑
полагается, что λk независимы и одинаково распределены, что, очевидно,
неправильно, но для наших целей годится. Эту модель можно обучить для
каждого L = 1 : Lmax, разбив данные на части и вычислив MLE с применением
объединенной оценки дисперсии:
(20.28)
(20.29)

(20.30)
Затем мы можем вычислить логарифмическое правдоподобие профиля:
(20.31)

Tlgm: @it_boooks

Факторный анализ  787

Смотрите иллюстрацию на рис. 20.8. Мы видим, что величина L* = arg‑
max 𝓁(L) корректно определена.

Рис. 20.8  Правдоподобие профиля,
соответствующее модели PCA на рис. 20.6(a).
Построено программой по адресу figures.probml.ai/book1/20.8

20.2. Факторный анализ*
PCA – простой метод вычисления линейного представления данных низкой
размерности. В этом разделе мы опишем обобщение PCA – факторный анализ (ФА). Он основан на вероятностной модели, а это значит, что его можно
рассматривать как строительный блок для более сложных моделей, напри‑
мер смеси моделей ФА в разделе 20.2.6 или нелинейной модели ФА в разде‑
ле 20.3.5. PCA является частным предельным случаем ФА, как обсуждается
в разделе 20.2.2.

20.2.1. Порождающая модель
Факторный анализ соответствует следующей линейно-гауссовой порождаю‑
щей модели латентных переменных:
p(z) = 𝒩(z|μ0, Σ0);

(20.32)

p(x|z, θ) = 𝒩(x|Wz + μ, Ψ),

(20.33)

p(x|θ) = ò 𝒩(x|Wz + μ, Ψ)𝒩(z|μ0, Σ0)dz
= 𝒩(x|Wμ0 + μ, Ψ + WΣ0W⟙).

(20.34)
(20.35)

где W – матрица факторных нагрузок размера D´L, а Ψ – диагональная
ковариационная матрица размера D´D.
ФА можно рассматривать как низкоранговую версию гауссова распределе‑
ния. Чтобы убедиться в этом, заметим, что индуцированное маргинальное
распределение p(x|θ) является гауссовым (см. вывод в (3.38)):

Tlgm: @it_boooks

788  Понижение размерности
Следовательно, 𝔼[x] = Wμ0 + μ и Cov[x] = WCov[z]W⟙ + Ψ = WΣ0W⟙ + Ψ.
Отсюда видно, что можно без ограничения общности положить μ0 = 0, так
как мы всегда можем включить Wμ0 в μ. Аналогично можно без ограничения
общности положить Σ0 = I, введя при необходимости новую матрицу весов
 = WΣ -½. После этих упрощений имеем
W
0
p(z) = 𝒩(z|0, I);

p(x|z) = 𝒩(x|Wz + μ, Ψ);

p(x) = 𝒩(x|μ, WW⟙ + Ψ).

(20.36)
(20.37)
(20.38)

Например, предположим, что L = 1, D = 2 и Ψ = σ2I. Порождающий процесс
в этом случае показан на рис. 20.9. Его можно рассматривать как изотропный
гауссов «аэрозольный баллончик», представляющий правдоподобие p(x|z),
который «скользит» вдоль прямой wz + μ при изменении одномерного ла‑
тентного априорного распределения z. Это индуцирует вытянутое (и, следо‑
вательно, коррелированное) гауссово распределение на плоскости. То есть
индуцированное распределение имеет форму p(x) = 𝒩(x|μ, ww⟙ + σ2I).

Рис. 20.9  Иллюстрация порождающего процесса ФА, где L = 1 латентных измерений генерируют D = 2 наблюдаемых измерений; предполагается, что Ψ = σ2I.
Латентный фактор принимает значение z Î ℝ, выбранное из распределения p(z);
оно отображается на двумерное смещение δ = zw, где w Î ℝ2, которое прибавляется к μ для определения гауссова распределения p(x|z) = 𝒩(x|μ + δ; σ2I). Интегрируя
по z, мы «сдвигаем»» этот круговой гауссов «аэрозольный баллончик» вдоль оси
главной компоненты w, что индуцирует в пространстве x эллиптические гауссовы
линии уровня с центром в μ. На основе рис. 12.9 из работы [Bis06]

В общем случае ФА аппроксимирует ковариационную матрицу видимого
вектора низкоранговым разложением:
C = Cov[x] = WW⟙ + Ψ.

(20.39)

Количество параметров при этом всего O(LD), что обеспечивает гибкий
компромисс между гауссовым распределением с полной ковариационной
матрицей с O(D2) параметрами и диагональной ковариационной матрицей
с O(D) параметрами.

Tlgm: @it_boooks

Факторный анализ  789

Из формулы (20.39) мы видим, что следует наложить на Ψ ограничение
диагональности, иначе можно было бы положить W = 0 и тем самым игнори‑
ровать латентные факторы, но сохранить возможность моделировать любую
ковариацию. Маргинальная дисперсия каждой видимой переменной равна
2
+ ψd, где первый член – дисперсия вследствие общих факто‑
𝕍[xd] = åLk=1 wdk
ров, а второй член ψd называется уникальностью и описывает дисперсию,
характерную для данного измерения.
Мы можем оценивать параметры модели ФА с помощью EM-алгоритма
(см. раздел 20.2.3). Обучив модель, мы можем вычислить вероятностные
латентные погружения, используя распределение p(z|x). По формуле Байеса
для гауссовых распределений, имеем
p(z|x) = 𝒩(z|W⟙C-1(x - μ), I - W⟙C-1W),

(20.40)

где C определено формулой (20.39).

20.2.2. Вероятностный PCA
В этом разделе мы рассмотрим частный случай модели факторного анализа,
когда столбцы W ортонормированы, Ψ = σ2I и μ = 0. Это модель называ‑
ется вероятностным анализом главных компонент (PPCA) [TB99], или
разумным (sensible) PCA [Row97]. Маргинальное распределение видимых
переменных имеет вид:
p(x|θ) = ò 𝒩(x|Wz, σ2I)𝒩(z|0, I)dz = 𝒩(x|μ, C),

(20.41)

C = WW⟙ + σ2I.

(20.42)

где

Логарифмическое правдоподобие для PPCA имеет вид:
(20.43)
Оценка максимального правдоподобия для μ равна x—. Подстановка дает
(20.44)
где S = (1/N)åNn=1(xn - x—)(xn - x—)⟙ – эмпирическая ковариационная матрица.
В работах [TB99; Row97] показано, что максимум этой целевой функции
должен удовлетворять соотношению
W = UL(LL - σ2I)½R,

(20.45)

где UL – матрица размера D´L, столбцами которой являются L собственных
векторов S с наибольшими собственными значениями, LL – диагональная
матрица L´L, содержащая собственные значения, R – произвольная ортого‑

Tlgm: @it_boooks

790  Понижение размерности
нальная матрица L´L, в качестве которой можно без ограничения общности
взять R = I. В пределе при отсутствии шума, когда σ2 = 0, мы видим, что
Wmle = UL LL½, т. е. пропорциональна решению PCA.
MLE для дисперсии наблюдений равна
(20.46)
это среднее искажение, ассоциированное с отброшенными измерениями.
Если L = D, то оценка шума равна 0, потому что модель схлопывается к z = x.
Для вычисления правдоподобия p(X|μ, W, σ2) нам необходимо вычислить
-1
C и log |C|, где C – матрица D´D. Чтобы сделать это эффективно, мы можем
воспользоваться леммой об обращении матрицы и написать:
C-1 = σ-2[I - WM-1W⟙],

(20.47)

где матрица M размера L´L равна
M = W⟙W + σ2I.

(20.48)

Подставляя MLE для W из формулы (20.45) (и считая, что R = I), находим
M = UL(LL - σ2I)UL⟙ + σ2I,

(20.49)

откуда
C-1 = σ-2[I - UL(LL - σ2I)ΛL-1UL⟙];

(20.50)
(20.51)

Таким образом, мы можем вообще избежать обращения матриц (т. е. ΛL-1 =
diag(1/λj)).
Чтобы использовать PPCA в качестве альтернативы PCA, мы должны вы‑
числить апостериорное среднее 𝔼[z|x], что эквивалентно модели кодировщи‑
ка. По формуле Байеса для гауссовых распределений имеем
p(z|x) = 𝒩(z|M-1W⟙(x - μ), σ2M-1),

(20.52)

𝔼[z|x] = (W⟙W)-1W⟙(x - x—),

(20.53)

где M определена в формуле (20.48). В пределе при σ2 = 0 апостериорное
среднее с параметрами MLE принимает вид:

что является ортогональной проекцией данных в латентное пространство,
как в стандартном PCA.

20.2.3. EM-алгоритм для ФА/PPCA
В этом разделе мы опишем метод вычисления MLE для модели ФА с приме‑
нением EM-алгоритма, основанный на работах [RT82; GH96].

Tlgm: @it_boooks

Факторный анализ  791

20.2.3.1. EM-алгоритм для ФА
На E-шаге вычисляются апостериорные погружения:
p(zi|xi, θ) = 𝒩(zi|mi, Σi);

(20.54)

Σi

(IL + W⟙Ψ-1W)-1;

(20.55)

mi

Σi(W⟙Ψ-1(xi - μ)).

(20.56)

На M-шаге проще всего оценить μ и W одновременно, для чего определим
 = (W, μ), z = (z, 1). Также определим
W
bi

𝔼[z |xi] = [mi, 1];

(20.57)
(20.58)

Тогда M-шаг будет выглядеть следующим образом:
(20.59)
(20.60)
Заметим, что это обновления «простого» EM-алгоритма. Гораздо более бы‑
страя версия этого алгоритма, основанная на ECM, описана в работе [ZY08].

20.2.3.2. EM-алгоритм для (P)PCA
EM-алгоритм можно также использовать для обучения модели PPCA, что со‑
ставляет полезную альтернативу методам на основе собственных векторов.
Идея опирается на вероятностную формулировку PCA. Однако алгоритм бу‑
дет работать и в пределе, когда шум нулевой, σ2 = 0, как показано в работе
[Row97].
Конкретно обозначим Z = Z⟙ матрицу размера L´N, столбцами которой
являются апостериорные средние (представления низкой размерности).
Аналогично обозначим X = X⟙ матрицу, столбцами которой являются ори‑
гинальные данные. Из формулы (20.52) при σ2 = 0 имеем
Z = (WT W)-1WT X .

(20.61)

В этом состоит E-шаг. Заметим, что это просто ортогональная проекция
данных. Из формулы (20.59) выводим M-шаг:
(20.62)
где использован тот факт, что Σ = Cov[zi|xi, θ] = 0I, когда σ2 = 0.

Tlgm: @it_boooks

792  Понижение размерности
Сравним это выражение с MLE для линейной регрессии с несколькими
выходами (формула (11.2)), которая имеет вид W = (åi yi xi⟙)(åi xi xi⟙)-1. Та‑
ким образом, мы видим, что M-шаг похож на линейную регрессию, только
наблюдаемые входы заменены математическими ожиданиями латентных
переменных.
Вот как выглядит полный алгоритм:
Z = (WT W)-1WT X (E-шаг);

(20.63)

W = X Z T(Z Z T )-1 (М-шаг).

(20.64)

В работе [TB99] показано, что единственной устойчивой неподвижной
точкой EM-алгоритма является глобально оптимальное решение. Это зна‑
чит, что EM-алгоритм сходится к решению, для которого на W натяну‑
то то самое линейное подпространство, которое определено первыми L
собственными векторами. Но если мы хотим, чтобы W была ортогональ‑
ной и содержала собственные векторы в порядке убывания собственных
значений, то должны ортогонализировать результирующую матрицу (для
чего не требуется больших затрат). Альтернативно можно модифицировать
EM-алгоритм, так чтобы он порождал базис главных компонент непосред‑
ственно [AO03].
У этого алгоритма есть простая физическая аналогия в случае D = 2 и L = 1
[Row97]. Рассмотрим точки в ℝ2, прикрепленные пружинами к жесткому
стержню, ориентация которого определяется вектором w. Обозначим zi ме‑
сто, в котором i-я пружина крепится к стержню. На E-шаге мы оставляем
стержень неподвижным, а точкам прикрепления позволяем перемещать‑
ся по нему, чтобы минимизировать энергию пружин (которая пропорцио‑
нальна сумме квадратов невязок). На M-шаге точки неподвижны, а стержень
может вращаться с той же целью – минимизировать энергию пружин (см.
иллюстрацию на рис. 20.10).

20.2.3.3. Преимущества
EM-алгоритм для PCA имеет следующие преимущества перед методами на
основе собственных векторов:
 EM-алгоритм может работать быстрее. В частности, в предположении,
что N, D ≫ L, наиболее затратной частью является операция проеци‑
рования на E-шаге, так что общее время составляет O(TLND), где T –
количество итераций. В работе [Row97] экспериментально показано,
что количество итераций обычно очень мало (в среднем 3.6) незави‑
симо от N и D. (Результат зависит от отношения собственных значений
эмпирической ковариационной матрицы.) Это гораздо быстрее, чем
время порядка O(min(ND2, DN 2)), необходимое при прямолинейном
применении методов на основе собственных векторов, хотя в более
изобретательных методах такого рода, например в алгоритме Ланцо‑
ша, время работы сопоставимо с EM;

Tlgm: @it_boooks

Факторный анализ  793

 EM-алгоритм можно реализовать в онлайновом режиме, т. е. мы можем
обновлять оценку W по мере поступления данных потоком;
 EM-алгоритм позволяет легко обрабатывать отсутствие данных (см.,
например, [IR10; DJ15]);
 EM-алгоритм можно обобщить для обработки смесей моделей PPCA/
ФА (см. раздел 20.2.6);
 У EM-алгоритма имеются модификации – вариационный и вариаци‑
онный байесовский EM – для обучения более сложных моделей (см.,
например, раздел 20.2.7).

(с)

(d)

(a)

(b)

Рис. 20.10  EM-алгоритм для PCA при D = 2 и L = 1. Зелеными звездочками
обозначены оригинальные точки данных, черными кружочками – их реконструкции. Вектор весов w представлен синей прямой. (a) Начинаем со случайного начального значения w. E-шаг представлен ортогональными проекциями.
(b) На M-шаге обновляем положение стержня w, оставляя проекции на стержень
(черные кружочки) фиксированными. (c) Другой E-шаг. Черные кружочки могут
перемещаться по стержню, но сам стержень неподвижен. (d) Другой M-шаг. На
основе рис. 12.12 из работы [Bis06]. Построено программой по адресу figures.
probml.ai/book1/20.10

Tlgm: @it_boooks

794  Понижение размерности

20.2.4. Неидентифицируемость параметров
Параметры модели ФА не идентифицируемы. Чтобы убедиться в этом, рас‑
смотрим модель с весами W и ковариацией наблюдений Ψ. Имеем
Cov[x] = W𝔼[zz⟙]W⟙ + 𝔼[εε⟙] = WW⟙ + Ψ.

(20.65)

 𝔼[zz⟙]W
 ⟙ + 𝔼[εε⟙] = WRR⟙W⟙ + Ψ = WW⟙ + Ψ.
Cov[x] = W

(20.66)

 = WR, где R – произвольная
Теперь рассмотрим другую модель с весами W
ортогональная матрица поворота, удовлетворяющая условию RR⟙ = I. Прав‑
доподобие при этом не изменяется, потому что

Геометрически умножение W на ортогональную матрицу эквивалентно
повороту z перед генерированием x; но, поскольку z выбирается из изотроп‑
ного гауссова распределения, на правдоподобии это никак не отражается.
Следовательно, мы не можем однозначно определить W, а значит, не можем
и однозначно идентифицировать латентные факторы.
Ниже обсуждается несколько способов нарушить эту симметрию.
 Сделать столбцы W ортонормированными. Пожалуй, это самое
простое решение проблемы идентифицируемости. Такой подход при‑
нят в PCA. В этом случае получающаяся апостериорная оценка будет
единственной с точностью до перестановки латентных измерений.
(В PCA неоднозначность упорядочения разрешается сортировкой из‑
мерений в порядке убывания собственных значений W.)
 Сделать W нижнетреугольной. Еще один способ разрешить неодно‑
значность с точностью до перестановки, популярной в байесовском
сообществе (см., например, [LW04c]), – гарантировать, что первый ви‑
димый признак генерируется только первым латентным фактором,
второй видимый признак – только первыми двумя латентными факто‑
рами и т. д. Например, если L = 3 и D = 4, то соответствующая матрица
факторной нагрузки имеет вид:

(20.67)

Мы также требуем, чтобы wkk > 0 для k = 1, …, L. Общее число па‑
раметров в этой матрице с наложенными ограничениями равно
D + DL - L(L - 1)/2, т. е. равно числу однозначно идентифицируемых
параметров в ФА1. Недостаток этого метода в том, что первые L ви‑
1

Мы получаем D параметров для Ψ и DL параметров для W, но нужно исключить
L(L - 1)/2 степеней свободы, имеющих источником R, так как это размерность про‑
странства ортогональных матриц размера L´L. Действительно, в первом столбце
R имеется L - 1 свободных параметров (потому что вектор-столбец должен быть
нормирован на единичную длину), во втором столбце – L - 2 свободных параметров (так как он должен быть ортогонален первому) и т. д.

Tlgm: @it_boooks

Факторный анализ  795

димых переменных, называемые основополагающими, влияют на
интерпретацию латентных факторов и потому должны тщательно вы‑
бираться.
 Априорные распределения весов, поощряющие разреженность.
Вместо того чтобы заранее определять, какие элементы W должны
быть нулевыми, мы можем поощрить обнуление элементов с помощью
𝓁1-регуляризации [ZHT06], автоматического определения релевант‑
ности [Bis99; AB08] или спайковых априорных распределений [Rat+09].
Это называется разреженным факторным анализом. Однозначная
оценка MAP при этом не гарантируется, зато решения допускают ин‑
терпретацию.
 Выбор информативной матрицы поворота. Существует целый ряд
эвристических методов, пытающихся найти матрицы поворота R, ко‑
торые можно использовать для модификации W (а значит, и латент‑
ных факторов) с целью повысить интерпретируемость. Как правило,
они стремятся сделать матрицу разреженной (хотя бы приближенно).
В частности, популярен метод varimax [Kai58].
 Использование негауссовых априорных распределений для латентных
факторов. Если заменить априорное распределение латентных пере‑
менных, p(z), негауссовым, то иногда удается однозначно идентифици‑
ровать как W, так и латентные факторы. Детали см., например, в работе
[KKH19].

20.2.5. Нелинейный факторный анализ
Модель ФА предполагает, что наблюдаемые данные можно смоделировать
так, будто они являются результатом линейного отображения низкоразмер‑
ного множества гауссовых факторов. Это предположение можно ослабить,
допустив, что отображение z в x описывается нелинейной моделью, напри‑
мер нейронной сетью. То есть модель принимает вид:
p(x) = ò dz𝒩(x|f(w, θ), Ψ)𝒩(z|0, I).

(20.68)

Это называется нелинейным факторным анализом. К сожалению, мы
больше не можем вычислить апостериорное распределение или MLE точно,
поэтому вынуждены использовать приближенные методы. В разделе 20.3.5
обсуждаются вариационные автокодировщики – самый распространенный
способ аппроксимации нелинейной модели ФА.

20.2.6. Смеси факторных анализаторов
Модель факторного анализа (раздел 20.2) предполагает, что наблюдаемые
данные можно смоделировать так, будто они являются результатом линей‑
ного отображения низкоразмерного множества гауссовых факторов. Один
из способов ослабить это допущение – предположить, что модель линейна
только локально, а полная модель является взвешенной комбинацией моде‑

Tlgm: @it_boooks

796  Понижение размерности
лей ФА; это называется смесью факторных анализаторов. Полная модель
данных оказывается смесью линейных многообразий, которую можно ис‑
пользовать для аппроксимации всего искривленного многообразия.
Формально пусть латентный индикатор mn Î {1, …, K} определяет, какое
подпространство (кластер) следует использовать для генерирования данных.
Если mn = k, то производится выборка zn из гауссова априорного распределе‑
ния, к ней применяется матрица Wk и прибавляется шум, где Wk отображает
L-мерное подпространство в D-мерное видимое пространство1. Точнее, мо‑
дель имеет вид:
p(xn|zn, mn = k, θ) = 𝒩(xn|μk + Wk zn, Ψk);

(20.69)

p(mn|θ) = Cat(mn|π).

(20.71)

p(zn|θ) = 𝒩(zn|0, I);

(20.70)

Это называется смесью факторных анализаторов (mixture of factor
analysers – MFA) [GH96]. Соответствующее распределение в видимом про‑
странстве имеет вид:

(20.72)

Рис. 20.11  Смесь факторных анализаторов
в виде вероятностной графовой модели

В частном случае, когда Ψk = σ2I, получаем смесь моделей PPCA (хотя в этой
ситуации трудно обеспечить ортогональность Wk). На рис. 20.12 приведен
пример применения этого метода к двумерным данным.
Эту идею можно рассматривать как низкоранговую версию смеси гаус‑
совых распределений. В частности, эта модель требует O(KLD) параметров,
а не O(KD2) параметров, необходимых для смеси гауссовых распределений
с полной ковариационной матрицей. Это может уменьшить риск переобучения.

1

Если допустить зависимость zn от mn, то подпространства смогут иметь разные
размерности, как предложено в работе [KS15].

Tlgm: @it_boooks

Факторный анализ  797

(a)

(b)

Рис. 20.12  Смесь моделей PPCA, обученных на двумерном наборе данных с использованием L = 1 латентных измерений. (a) K = 1 компонент смеси.
(b) K = 10 компонент смеси. Построено программой по адресу figures.probml.
ai/book1/20.12

20.2.7. Факторный анализ экспоненциального
семейства
До сих пор мы предполагали, что наблюдаемые данные вещественные, т. е.
xn Î ℝD. Если требуется моделировать другие виды данных (например, би‑
нарные или категориальные), то можно просто заменить гауссово выход‑
ное распределение подходящим членом экспоненциального семейства, где
естественные параметры определяются линейной функцией от zn. То есть
используется распределение
p(xn|zn) = exp(𝒯(x)⟙θ + h(x) - g(θ)),

(20.73)

где предполагается, что матрица естественных параметров размера N´D
определяется низкоранговым разложением Θ = ZW, где Z имеет размер N´L,
а W – размер L´D. Результирующая модель называется факторным анализом экспоненциального семейства.
В отличие от линейно-гауссова ФА, мы не можем вычислить точное апо‑
стериорное распределение p(zn|xn, W) из-за отсутствия сопряженности между
правдоподобием экспоненциального семейства и априорным гауссовым рас‑
пределением. Более того, мы также не можем вычислить точное маргиналь‑
ное правдоподобие, а значит, не можем найти оптимальную MLE.
В работе [CDS02] предложен метод покоординатного подъема для детер‑
минированного варианта этой модели, известный под названием PCA экспоненциального семейства. В нем поочередно вычисляется точечная оценка
zn и W. Это можно рассматривать как вырожденный вариант вариационного
EM-алгоритма, где на E-шаге используется дельта-функция в качестве апо‑
стериорного распределения zn. В работе [GS08] представлен улучшенный
алгоритм, который находит глобальный оптимум, а в работе [Ude+16] – его
обобщение, названное обобщенными низкоранговыми моделями, кото‑
рое покрывает многие типы функций потерь.

Tlgm: @it_boooks

798  Понижение размерности
Однако часто бывает предпочтительно использовать вероятностную вер‑
сию модели, а не вычислять точечные оценки латентных факторов. В этом
случае мы должны представить апостериорное распределение, используя
невырожденное распределение во избежание переобучения, поскольку чис‑
ло латентных переменных пропорционально числу примеров [WCS08]. По
счастью, можно использовать невырожденное апостериорное распределе‑
ние, например гауссово, оптимизировав вариационную нижнюю границу.
Примеры будут приведены ниже.

20.2.7.1. Пример: бинарный PCA
Рассмотрим факторизованное правдоподобие Бернулли:
(20.74)
Предположим, что наблюдается N = 150 битовых векторов длины D = 6.
Каждый пример сгенерирован путем выбора одного из трех бинарных век‑
торов-прототипов с последующим случайным инвертированием битов. Дан‑
ные показаны на рис. 20.13a. Эти данные можно аппроксимировать с помо‑
щью вариационного EM-алгоритма (детали см. в работе [Tip98]). Мы будем
использовать L = 2 латентных измерений, что позволяет визуализировать ла‑
тентное пространство. На рис. 20.13b показан график 𝔼[zn|xn, Ŵ]. Мы видим,
что проекции точек группируются в три кластера, как и следовало ожидать.
На рис. 20.13c показана реконструированная версия данных, вычисляемая
следующим образом:
p(x̂ nd = 1|xn) = ò dznp(zn|xn)p(x̂ nd |zn).

(20.75)

Если задать для этих вероятностей порог 0.5 (что соответствует оценке
MAP), то получим «очищенную от шума» версию данных, изображенную на
рис. 20.13d.

20.2.7.2. Пример: категориальный PCA
Мы можем обобщить модель из раздела 20.2.7.1 на обработку категориаль‑
ных данных, воспользовавшись следующим правдоподобием:
(20.76)
Это называется категориальным PCA (CatPCA). Вариационный EM-алгоритм для обучения этой модели описан в работе [Kha+10].

Tlgm: @it_boooks

Факторный анализ  799
Зашумленные двоичные данные

Латентное погружение

(а)

(b)

Апостериорное предсказание

Реконструкция

(c)

(d)

Рис. 20.13  (a) 150 синтетических 16-мерных битовых векторов. (b) Двумерное погружение, которому обучился бинарный PCA с помощью вариационного EM-алгоритма. Цвет точек показывает, из какого «истинного» прототипа
они были сгенерированы. (c) Предсказанная вероятность того, что бит поднят.
(d) Предсказания после применения порога. Построено программой по адресу
figures.probml.ai/book1/20.13

20.2.8. Модели факторного анализа для парных
данных
В этом разделе мы обсудим модели линейно-гауссова факторного анализа,
когда имеются два вида наблюдаемых переменных, x Î ℝDx и y Î ℝDy, объ‑
единенных в пары. Часто они соответствуют различным датчикам или мо‑
дальностям (например, изображение и звук). В своем изложении мы следуем
работе [Vir10].

20.2.8.1. PCA с учителем
В методе PCA с учителем [Yu+06] мы моделируем совместное распределение
p(x, y) разделяемым низкоразмерным представлением с использованием
следующей линейно-гауссовой модели:
p(zn) = 𝒩(zn|0, IL);

(20.77)

Tlgm: @it_boooks

800  Понижение размерности
p(xn|zn, θ) = 𝒩(xn|Wx zn, σх2 IDx);

(20.78)

p(yn|zn, θ) = 𝒩(yn|Wy zn, σy2 IDy).

(20.79)

Это показано в виде графовой модели на рис. 20.14a. Интуитивно понятно,
что zn – разделяемое латентное подпространство, которое улавливает общие
признаки xn и yn. Члены дисперсии σx и σy контролируют, какое значение
модель придает двум разным сигналам. Если наложить априорное распреде‑
ление на параметры θ = (Wx, Wy, σx, σy), то мы придем к модели байесовской
факторной регрессии из работы [Wes03].

(а)

(b)

Рис. 20.14  Модели гауссовых латентных факторов для парных данных.
(a) PCA с учителем. (b) Метод частичных наименьших квадратов

Мы можем исключить zn и получить распределение p(yn|xn). Если yn – ска‑
ляр, то оно принимает вид:
p(yn|xn, θ) = 𝒩(yn|xn⟙v, wy⟙Cwy + σy2);

(20.80)

C = (I + σx-2Wx Wx)-1;

(20.81)

v = σx-2Wx Cwy.

(20.82)



Чтобы применить это к задаче классификации, мы можем использовать
ePCA с учителем [Guo09], когда гауссово распределение p(y|z) заменяется
моделью логистической регрессии.
Эта модель симметрична относительно x и y. Если наша цель – предсказать
y по x с помощью латентного представления z, то можно увеличить вес члена
правдоподобия для y, как предложено в работе [Ris+08]. Это дает
p(X, Y, Z|θ) = p(Y|Z, Wy)p(X|Z, Wx)αp(Z),

(20.83)

где α £ 1 контролирует относительную важность моделирования обоих ис‑
точников. Значение α можно выбрать с помощью перекрестной проверки.

20.2.8.2. Метод частичных наименьших квадратов
Еще один способ улучшить качество предсказаний в задачах обучения с учи‑
телем – разрешить входам x иметь собственный «частный» источник шума,

Tlgm: @it_boooks

Факторный анализ  801

который не зависит от целевой переменной, так как не всякая вариативность
x релевантна целям предсказания. Это можно сделать, введя дополнитель‑
ную латентную переменную znx только для входов, отличающуюся от пере‑
менной zns, опосредующей связь между xn и yn. В гауссовом случае полная
модель принимает вид:
p(zn) = 𝒩(zns|0, I)𝒩(znx|0, I);

(20.84)

p(yn|zn, θ) = 𝒩(yn|Wy zns, σy2 I).

(20.86)

p(xn|zn, θ) = 𝒩(xn|Wx zns + Bx znx, σx2I);

(20.85)

Смотрите рис. 20.14b. MLE для θ в этой модели эквивалентна методу
частичных наименьших квадратов (partial least squares – PLS) [Gus01;
Nou+02; Sun+09].

20.2.8.3. Канонический корреляционный анализ
Иногда мы хотим использовать полностью симметричную модель, чтобы
можно было уловить зависимость между x и y, разрешив в то же время за‑
висящие от предметной области или «частные» источники шума. Это можно
сделать, заведя латентную переменную znx только для xn, латентную перемен‑
ную zny только для yn и разделяемую латентную zns. В гауссовом случае полная
модель принимает вид:
p(zn) = 𝒩(zns|0, I)𝒩(znx|0, I);

(20.87)

p(yn|zn, θ) = 𝒩(yn|Wy zns + By zny, σy2 I),

(20.89)

p(xn|zn, θ) = 𝒩(xn|Wx zns + Bx znx, σx2 I);

(20.88)

где матрицы Wx и Wy имеют размер Ls´D, Vx – размер Lx´D, а Vy – размер
Ly´D (см. вероятностную графовую модель на рис. 20.15).

Рис. 20.15  Канонический корреляционный анализ
в виде вероятностной графовой модели

Исключив все латентные переменные, получим следующее распределение
видимых данных (предполагается, что σx = σy = σ):

Tlgm: @it_boooks

802  Понижение размерности
p(xn, yn) = ò dzn p(zn)p(xn, yn|zn) = 𝒩(xn, yn|μ, WW⟙ + σ2I),

(20.90)

где μ = (μx; μy), а W = [Wx; Wy]. Таким образом, индуцированная ковариация
описывается следующей низкоранговой матрицей:
(20.91)
В работе [BJ05] показано, что MLE для этой модели эквивалентна клас‑
сическому статистическому методу, который называется каноническим
корреляционным анализом (canonical correlation analysis – CCA) [Hot36].
Однако подход на основе вероятностных графовых моделей позволяет легко
обобщить его на несколько видов наблюдений (это называется обобщенным
CCA) [Hor61]) или на нелинейные модели (глубокий CCA [WLL16; SNM16]),
или на CCA экспоненциального семейства [KVK10]. Дальнейшее обсуждение
CCA и его обобщений см. в работе [Uur+17].

20.3. аВтокодироВщики
Мы можем рассматривать PCA (раздел 20.1) и факторный анализ (раздел 20.2)
как обучение (линейного) отображения x ® z, называемого кодировщиком,
fe, и другого (линейного) отображения z ® x, называемого декодером, fd.
Полная функция реконструкции имеет вид r(x) = fd(fe(x)). Модель обучается
минимизировать потерю ℒ(θ) = ||r(x) - x||22. В общем случае мы можем ис‑
пользовать ℒ(θ) = -log p(x|r(x)).
В этом разделе мы рассмотрим случай, когда кодировщик и декодер – не‑
линейные отображения, реализованные нейронными сетями. Такая система
называется автокодировщиком (AE). Если взять МСП с одним скрытым
слоем, то получится модель, показанная на рис. 20.16. Скрытые блоки в се‑
редине можно рассматривать как низкоразмерное сужение между входом
и его реконструкцией.
Конечно, если скрытый слой достаточно широк, то ничто не помешает
этой модели обучиться тождественной функции. Чтобы предотвратить такое
вырожденное решение, нужно наложить на модель какие-то ограничения.
Самое простое – использовать узкий скрытый слой, когда L ≪ D; это на‑
зывается сужающим (undercomplete) представлением. Противоположный
подход – взять L ≫ D (расширяющее (overcomplete) представление), но при‑
менить какую-то другую регуляризацию, например прибавить к входам шум,
принудительно сделать активацию скрытых блоков разреженной или штра‑
фовать производные скрытых блоков. Все эти варианты мы обсудим ниже.

20.3.1. Автокодировщики с сужением
Начнем с рассмотрения частного случая линейного автокодировщика
с одним скрытым слоем, блоки которого вычисляются как z = W1x, а выход

Tlgm: @it_boooks

Автокодировщики  803

реконструируется по формуле x̂ = W2z, где W1 – матрица L´D, W2 – матри‑
ца D´L и L < D. Тогда x̂ = W2W1x = Wx – выход модели. Если мы обучим
эту модель минимизировать квадратичную ошибку реконструкции, ℒ(W) =
åNn=1||xn - Wxn||22, то можно показать [BH89; KJ95], что Ŵ – ортогональная
проекция на первые L собственных векторов эмпирической ковариационной
матрицы данных. Таким образом, этот случай эквивалентен PCA.

Рис. 20.16  Автокодировщик с одним скрытым слоем

Если включить в автокодировщик нелинейности, то получится модель,
строго более мощная, чем PCA, это доказано в работе [JHG00]. Такие методы
могут обучиться очень полезным низкоразмерным представлениям данных.
Рассмотрим обучениеавтокодировщика на наборе данных Fashion MNIST.
Мы рассматриваем как архитектуру МСП (с тремя слоями и сужением раз‑
мера 30), так и архитектуру СНС (с тремя слоями и трехмерным сужением
с 64 каналами). Используется модель правдоподобия Бернулли и бинарная
перекрестная энтропия в качестве потери. На рис. 20.17 показаны некоторые
тестовые изображения и их реконструкции. Как видим, модель СНС рекон‑
струирует изображения точнее, чем МСП. Однако обе модели малы и обучались только на протяжении пяти эпох; результаты можно улучшить, если
взять модели побольше и обучать их подольше.
На рис. 20.18 показаны первых два (из 30) латентных измерения, порож‑
денные автокодировщиком с архитектурой МСП. Точнее, построена диа‑
грамма tSNE-погружений (см. раздел 20.4.10), а цветом закодированы метки
классов. Также показаны некоторые изображения из набора данных, на осно‑
ве которых построены погружения. Мы видим, что метод неплохо справился
с разделением классов без всякого привлечения учителя. Также мы видим,
что латентные пространства моделей МСП и СНС очень похожи (по крайней
мере, на этой двумерной проекции).

Tlgm: @it_boooks

804  Понижение размерности

(а)

(b)

Рис. 20.17  Результаты применения автокодировщика к набору данных Fashion MNIST. В верхнем ряду показаны первые пять изображений из контрольного набора, в нижнем ряду – их реконструкции. (a) Модель МСП (обученная с 20
эпохами). Кодировщик является МСП с архитектурой 784-100-30. Декодер – его
зеркальное отражение. (b) Модель СНС (обученная с пятью эпохами). Кодировщик – модель СНС с архитектурой Conv2D(16, 3x3, same, selu), MaxPool2D(2x2),
Conv2D(32, 3x3, same, selu), MaxPool2D(2x2), Conv2D(64, 3x3, same, selu),
MaxPool2D(2x2). Декодер – зеркальное отражение с транспонированной сверткой и без слоев max-пулинга. На основе рис. 17.4 из работы [Gér19]. Построено
программой по адресу figures.probml.ai/book1/20.17

(a)

(b)

Рис. 20.18  Диаграмма tSNE первых двух латентных измерений контрольного набора Fashion MNIST, полученная с использованием автокодировщика.
(a) МСП. (b) СНС. На основе рис. 17.5 из работы [Gér19]. Построено программой
по адресу figures.probml.ai/book1/20.18

20.3.2. Шумоподавляющие автокодировщики
Полезный способ управления емкостью автокодировщика – прибавить шум
к его входу, а затем обучить модель реконструировать чистую (неискажен‑
ную) версию оригинальных данных. Это называется шумоподавляющим
автокодировщиком (DAE) [Vin+10a].
Мы можем реализовать эту идею, прибавив гауссов шум или воспользовав‑
шись бернуллиевым прореживанием. На рис. 20.19 показаны реконструкции
нескольких зашумленных изображений, вычисленных с помощью DAE. Как
видим, модель умеет «придумывать» детали, отсутствующие во входных дан‑

Tlgm: @it_boooks

Автокодировщики  805

ных, потому что видела похожие изображения в прошлом и умеет сохранять
эту информацию в своих параметрах.

(а)

(b)

Рис. 20.19  Шумоподавляющий автокодировщик (с архитектурой МСП), примененный к зашумленным изображениям из контрольного набора Fashion
MNIST. (a) Гауссов шум. (b) Бернуллиево прореживание. Верхний ряд: вход. Нижний ряд: выход. На основе рис. 17.9 из работы [Gér19]. Построено программой
по адресу figures.probml.ai/book1/20.19

Предположим, что DAE обучен с применением гауссова искажения и квадратичной ошибки реконструкции, т. е. pc(x|x) = 𝒩(x|x, σ2I) и 𝓁(x, r(x)) = ||e||22,
где e(x) = r(x) - x – невязка для примера x. Тогда можно доказать [AB14] уди‑
вительный результат: при σ ® 0 (и при условии, что модель достаточно мощ‑
ная, а данных хватает) невязки аппроксимируют функцию вклада, равную
логарифму вероятности данных, т. е. e(x) ≈ Ñx log p(x). То есть DAE обучается
векторному полю, соответствующему градиенту логарифмической плот‑
ности данных. Таким образом, точки, близкие к многообразию данных, будут
проецироваться на него с помощью процесса выборки (см. иллюстрацию на
рис. 20.20).

Рис. 20.20  Невязку шумоподавляющего автокодировщика, e(x) = r(x ) - x,
можно обучить векторному полю, соответствующему функции вклада. Стрелки
направлены в сторону областей с более высокой вероятностью. Длина стрелки
пропорциональна ||e(x)||, поэтому в точках вблизи одномерного многообразия
данных (представленные кривой) стрелки короче. На основе рис. 5 из работы
[AB14]. Печатается с разрешения Гийома Алена

Tlgm: @it_boooks

806  Понижение размерности

20.3.3. Сжимающие автокодировщики
Другой способ регуляризации автокодировщиков заключается в прибавле‑
нии штрафующего члена
(20.92)
к потере реконструкции, где hk – значение k-го скрытого блока погружения.
То есть мы штрафуем норму Фробениуса якобиана кодировщика. Такой ав‑
токодировщик называется сжимающим (CAE) [Rif+11]. (Линейный оператор
с якобианом J называется сжатием, если ||Jx|| £ 1 для всех входов x с еди‑
ничной нормой.)
Чтобы понять, почему это полезно, взглянем на рис. 20.20. Мы можем
аппроксимировать криволинейное многообразие низкой размерности по‑
следовательностью локально линейных многообразий. Эти линейные ап‑
проксимации можно вычислить, зная якобиан кодировщика в каждой точ‑
ке. Поощряя наличие у них свойства сжатия, мы гарантируем, что модель
будет «подталкивать» входы, оказывающиеся вне многообразия, к возврату
на него.
Есть и другой способ интерпретации CAE. Чтобы минимизировать штраф,
модель должна стремиться сделать кодировщик постоянной функцией. Но
если бы он был строго постоянным, то игнорировал бы вход, поэтому стои‑
мость реконструкции была бы высока. Поэтому оба члена вместе поощряют
модель обучиться представлению, в котором лишь немногие блоки изменя‑
ются в ответ на даже самые значительные изменения входов.
Одно из вырожденных решений заключается в том, что кодировщик просто
обучается умножать вход на небольшую постоянную ε (которая уменьшает
якобиан), а затем декодер делит на то же ε (так что реконструкция идеальна).
Чтобы избежать этого, мы можем связать веса кодировщика и декодера, сде‑
лав так, чтобы матрица весов 𝓁-го слоя fd была результатом транспонирова‑
ния матрицы весов 𝓁-го слоя fe, но оставить несвязанными члены смещения.
К сожалению, CAE обучаются медленно из-за затрат на вычисление якобиана.

20.3.4. Разреженные автокодировщики
Еще один способ регуляризировать автокодировщики состоит в том, что‑
бы ввести поощряющий разреженность штраф латентных активаций вида
Ω(z) = λ||z||1. (Это называется регуляризацией активности.)
Альтернативный способ реализовать разреженность, зачастую принося‑
щий лучшие результаты, – использовать логистические блоки, а затем для
каждого блока k вычислить ожидаемую долю времени, в течение которого
он включен при обработке мини-пакета (обозначим ее qk), и сделать так,
чтобы она была близка к целевому значению p (эта идея предложена в рабо‑
те [GBB11]). Именно, используем регуляризатор Ω(z1:L, 1:N) = λåk 𝕂𝕃(p|qk) для

Tlgm: @it_boooks

Автокодировщики  807

латентных измерений 1 … L и примеров 1 … N, где p = (p, 1 - p) – желаемое
целевое распределение, а qk = (qk, 1 - qk) – эмпирическое распределение для
блока k, вычисленное по формуле qk = (1/N)åNn=1 𝕀(zn,k = 1).
На рис. 20.21 показан результат при обучении автокодировщика с архитек‑
турой МСП (с 300 скрытыми блоками) на наборе Fashion MNIST. Если поло‑
жить λ = 0 (т. е. не включать штраф, поощряющий разреженность), то среднее
значение активации будет около 0.4 и большую часть времени большинство
нейронов частично активировано. Со штрафом по норме 𝓁1 большинство
блоков все время выключено, т. е. они вообще не используются. Со штрафом
на основе расхождения КЛ в среднем 70 % нейронов выключено, но, в от‑
личие от случая 𝓁1, мы не видим постоянно выключенных блоков (средний
уровень активации равен 0.1). Последний паттерн разреженности похож на
то, что мы наблюдаем в биологическим мозге (см., например, [Bey+19]).

Рис. 20.21  Активность нейрона (в слое сужения) для автокодировщика применительно к набору данных Fashion MNIST. Показаны результаты для трех моделей с разными видами штрафа, поощряющего разреженность: штраф отсутствует (левая колонка), штраф по норме 𝓁1 (средняя колонка), штраф на основе
расхождения КЛ (правая колонка). Верхний ряд: тепловая карта 300 активаций
нейронов (столбцы) на 100 примерах (строки). Средний ряд: гистограмма уровней активации, построенная по этой тепловой карте. Нижний ряд: гистограмма
средней активации нейронов, усредненной по всем примерам в контрольном
наборе. На основе рис. 17.11 из работы [Gér19]. Построено программой по
адресу figures.probml.ai/book1/20.21

Tlgm: @it_boooks

808  Понижение размерности

20.3.5. Вариационные автокодировщики
В этом разделе мы обсудим вариационный автокодировщик (variational
autoencoder – VAE) [KW14; RMW14; KW19a], который можно рассматривать
как вероятностную версию детерминированного автокодировщика (раз‑
дел 20.3). Принципиальное преимущество VAE состоит в том, что это по‑
рождающая модель, способная создавать новые примеры, тогда как автоко‑
дировщик просто вычисляет погружения входных векторов.
Во всех подробностях VAE будут обсуждаться во втором томе этой книги,
[Mur22]. Но если говорить вкратце, то VAE объединяет две идеи. Во-первых,
мы создаем нелинейное обобщение порождающей модели факторного ана‑
лиза, т. е. заменяем p(x|z) = 𝒩(x|Wz, σ2I) распределением
pθ(x|z) = 𝒩(x|fd(z; θ), σ2I),

(20.93)

где fd – декодер. Для бинарных наблюдений следует использовать правдопо‑
добие Бернулли:
(20.94)
Во-вторых, мы создаем еще одну модель, q(z|x), называемую распознающей сетью, или сетью вывода, которая одновременно с порождающей мо‑
делью обучается выполнять приближенный апостериорный вывод. Если мы
предполагаем, что апостериорное распределение гауссово с диагональной
ковариационной матрицей, то получаем
qϕ(z|x) = 𝒩(z|fe,μ(x; ϕ), diag(fe,σ(x; ϕ))),

где fe – кодировщик (см. схему на рис. 20.22).

Рис. 20.22  Схема работы VAE.
Из статьи http://krasserm.github.io/2018/07/27/dfc-vae/.
Печатается с разрешения Мартина Крассера

(20.95)

Tlgm: @it_boooks

Автокодировщики  809

Идея обучать сеть вывода «инвертировать» порождающую сеть, а не выпол‑
нять алгоритм оптимизации для вывода латентного кода называется амортизированным выводом. Эта идея впервые была предложена для машины
Гельмгольца в работе [Day+95]. Однако в той статье не была представлена
единственная унифицированная целевая функция для вывода и порождения,
а вместо этого для обучения использовался метод пробуждения-засыпания,
в котором поочередно выполняется оптимизация то порождающей модели,
то модели вывода. Напротив, VAE оптимизирует вариационную нижнюю гра‑
ницу логарифмического правдоподобия, и такой подход теоретически пра‑
вильнее, потому что опирается на одну унифицированную целевую функцию.

20.3.5.1. Обучение VAE
Мы не можем точно вычислить маргинальное правдоподобие p(x|θ), необходи‑
мое для обучения MLE, потому что апостериорный вывод в нелинейной моде‑
ли ФА – вычислительно неразрешимая задача. Однако мы можем использовать
сеть вывода для вычисления приближенного апостериорного распределения,
q(z|x). Затем его можно использовать для вычисления вариационной нижней
границы (evidence lower bound – ELBO). Для одного примера x она равна
ℰ(θ, ϕ|x) = 𝔼qϕ(z|x)[log pθ(x, z) - log qϕ(z|x)]
= 𝔼q(z|x,ϕ)[log p(x|z, θ)] - 𝕂𝕃(q(z|x, ϕ)||p(z)).

(20.96)
(20.97)

Это можно интерпретировать как ожидаемое логарифмическое правдо‑
подобие плюс регуляризатор, который штрафует апостериорное распреде‑
ление за слишком большое отклонение от априорного. (Это отличается от
подхода, описанного в разделе 20.3.4, где мы применяли штраф на основе
расхождения КЛ к агрегированному апостериорному распределению в каж‑
дом мини-пакете.)
ELBO – это нижняя граница логарифмического маргинального правдопо‑
добия (иначе говоря, свидетельства – отсюда и слово «evidence» в англоязыч‑
ном термине), как легко видеть из неравенства Йенсена:
(20.98)
(20.99)
Таким образом, при фиксированных параметрах сети вывода ϕ увеличе‑
ние ELBO должно приводить к увеличению логарифмического правдоподо‑
бия данных, как в случае EM-алгоритма (раздел 8.7.2).

20.3.5.2. Перепараметризация
В этом разделе мы обсудим, как вычислить ELBO и ее градиент. Для простоты
будем предполагать, что сеть вывода оценивает параметры гауссова апосте‑
риорного распределения. Так как qϕ(z|x) гауссово, можно написать

Tlgm: @it_boooks

810  Понижение размерности
z = fe,μ(x; ϕ) + fe,σ(x; ϕ) ⊙ ε,

(20.100)

где ε ~ 𝒩(0, I). Отсюда

�(θ, ϕ|x) = 𝔼ε~𝒩(0,I)[log pθ(x|z = μϕ(x) + σϕ(x) ⊙ ε)] - 𝕂𝕃(qϕ(z|x)||p(z)). (20.101)

Теперь математическое ожидание не зависит от параметров модели, по‑
этому мы можем безопасно переместить градиенты внутрь и обычным об‑
разом использовать для обучения обратное распространение, минимизируя
-𝔼x~𝒟[�(θ, ϕ|x)] относительно θ и ϕ. Это называется трюком перепараметризации (см. иллюстрацию на рис. 20.23).

(a)

(b)

Рис. 20.23  Граф вычислений для VAE, где p(z) = 𝒩(z|0, I), p(x|z, θ) = 𝒩(x|f(z),
σ2I) и q(z|x, ϕ) = 𝒩(z|μ(x), Σ(x)). В красных прямоугольниках показаны недифференцируемые операции выборки, а в синих – слои потери (предполагается, что
правдоподобия и априорные распределения гауссовы). (a) Без перепараметризации. (b) С перепараметризацией. Градиенты могут течь от выходной потери
назад в декодер и затем в кодировщик. На основе рис. 4 из работы [Doe16].
Печатается с разрешения Карла Дёрша

Первый член в ELBO можно аппроксимировать, произведя выборку ε, мас‑
штабировав ее на выход сети вывода, чтобы получить z, а затем вычислив
log p(x|z) с помощью сети декодера.
Второй член в ELBO – расхождение КЛ двух гауссовых распределений, его
можно найти в замкнутой форме. Именно, подставив p(z) = 𝒩(z|0, I) и q(z) =
𝒩(z|μ, diag(σ)) в формулу (6.33), получим

Tlgm: @it_boooks

Автокодировщики  811

(20.102)

20.3.5.3. Сравнение VAE с автокодировщиками
VAE очень похожи на автокодировщики. Действительно, порождающая мо‑
дель, pθ(x|z), действует как декодер, а сеть вывода, qϕ(z|x), – как кодировщик.
Способность обеих моделей к реконструкции схожа, в чем можно убедиться,
сравнив рис. 20.24a и b.

(a)

(b)

Рис. 20.24  Реконструкция цифр из набора MNIST с помощью 20-мерного
латентного пространства. Верхний ряд: входные изображения. Нижний ряд:
реконструкции. (a) VAE. (b) Детерминированный AE. Построено программой по
адресу figures.probml.ai/book1/20.24

Главное преимущество VAE в том, что его можно использовать для генери‑
рования новых данных из случайного шума. Именно, мы выбираем z из гауссо‑
ва априорного распределения 𝒩(z|0, I), а затем пропускаем его через декодер
с целью получить 𝔼[x|z] = fd(z; θ). Декодер VAE обучается преобразовывать
точки в пространстве погружения (порожденные возмущением закодирован‑
ных входов) в разумные выходы. Для сравнения отметим, что декодер детер‑
минированного автокодировщика получает в качестве входов только точные
закодированные представления обучающих примеров, поэтому не знает, что
делать со случайными входами вне того множества, на котором он обучался.
Поэтому стандартный автокодировщик не способен создавать новые приме‑
ры. Эта разница становится особенно наглядной, если сравнить рис. 20.25a и b.
Причина, по которой VAE лучше ведет себя на выборке, заключается в том,
что погружения изображений представляют собой гауссовы распределения
в латентном пространстве, тогда как AE погружает отображения в точки,
ведущие себя как дельта-функции. Преимущество латентного распределения
в том, что оно поощряет локальную гладкость, так как заданное изображение
может отображаться в несколько расположенных рядом мест в зависимости
от стохастической процедуры выборки. Напротив, в случае AE латентное
пространство обычно не гладкое, поэтому изображения из разных классов
часто оказываются по соседству друг с другом. Это различие можно увидеть,
сравнив рис. 20.26a и b.

Tlgm: @it_boooks

812  Понижение размерности

(a)

(b)

Рис. 20.25  Выборка цифр из набора MNIST с помощью 20-мерного латентного пространства. (a) VAE. (b) Детерминированный AE. Построено программой
по адресу figures.probml.ai/book1/20.25

(a)

(b)

Рис. 20.26  Проекция tSNE 20-мерного латентного пространства. (a) VAE.
(b) Детерминированный AE. Построено программой по адресу figures.probml.
ai/book1/20.26

Мы можем воспользоваться гладкостью латентного пространства для интерполяции изображений. Вместо работы в пространстве пикселей мы
можем работать в латентном пространстве модели. Именно, пусть x1 и x2 –
два изображения, а z1 = 𝔼q(z|x1)[z] и z2 = 𝔼q(z|x2)[z] – их кодированные пред‑
ставления. Мы можем сгенерировать промежуточное изображение между
этими двумя якорными, вычислив z = λz1 + (1 - λ)z2, где 0 £ λ £ 1, а затем
декодировать его, вычислив 𝔼[x|z]. Это называется латентной интерполяцией. (Теоретическим обоснование линейной интерполяции является тот
факт, что обученное многообразие имеет приближенно нулевую кривизну,
как показано в работе [SKTF18].) VAE более пригоден для интерполяции
в латентном пространстве, чем AE, потому что его латентное пространство
более гладкое и модель может генерировать изображения почти из любой
точки латентного пространства. Это различие наглядно видно при сравне‑
нии рис. 20.27a и b.

Tlgm: @it_boooks

Обучение многообразий  813

(a)

(b)

Рис. 20.27  Линейная интерполяция левого и правого изображений в 20-мерном латентном пространстве. (a) VAE. (b) Детерминированный AE. Построено
программой по адресу figures.probml.ai/book1/20.27

20.4. обуЧение многообразий*
В этом разделе мы обсудим проблему восстановления истинной низкораз‑
мерной структуры в наборе данных высокой размерности. Часто предполага‑
ется, что эта структура представляет собой искривленное многообразие (что
это такое, объясняется ниже), поэтому задача называется обучением многообразия, или нелинейным понижением размерности. Основное отличие
от таких методов, как автокодировщики (раздел 20.3), состоит в том, что нас
будут интересовать непараметрические методы, вычисляющие погружение
для каждой точки в обучающем наборе, а не обучение общей модели, способ‑
ной вычислять погружение любого входного вектора. То есть обсуждаемые
методы не поддерживают (по крайней мере, без усилий) обобщение на вневыборочные примеры. Однако они легко обучаются и весьма гибки. Такие
методы могут быть полезны для обучения без учителя (обнаружение знаний),
визуализации данных и как шаг предобработки в обучении с учителем.

20.4.1. Что такое многообразие?
Грубо говоря, многообразие – это локально евклидово топологическое про‑
странство. Один из простейших примеров – поверхность Земли, представ‑
ляющая собой искривленную двумерную поверхность, погруженную в трех‑
мерное пространство. В каждой точке поверхности Земля кажется плоской.
Более формально d-мерным многообразием 𝒳 называется пространство,
для каждой точки которого x Î 𝒳 существует окрестность, топологически
эквивалентная d-мерному евклидову пространству; она называется касательным пространством и обозначается 𝒯x = 𝒯x 𝒳 (см. рис. 20.28).
Римановым многообразием называется дифференцируемое многооб‑
разие, в котором для каждой точки x касательного пространства определе‑
но скалярное произведение; предполагается, что оно гладко зависит от x.
Скалярное произведение индуцирует понятие расстояния, угла и объема.
Совокупность всех скалярных произведений называется римановой метрикой. Можно показать, что любое достаточно гладкое риманово многооб‑
разие можно погрузить в евклидово пространство, возможно, большей раз‑
мерности; при этом риманово скалярное произведение в точке становится
евклидовым скалярным произведением в этом касательном пространстве.

Tlgm: @it_boooks

814  Понижение размерности

Рис. 20.28  Иллюстрация касательного пространства и касательных векторов в двух разных точках двумерного искривленного многообразия. На основе
рис. 1 из работы [Bro+17a]. Печатается с разрешения Михаэля Бронштейна

20.4.2. Гипотеза многообразия
Большинство «естественно возникающих» наборов данных высокой размер‑
ности лежит на многообразии низкой размерности. Это предположение на‑
зывается гипотезой многообразия [FMN16]. Например, рассмотрим случай
изображения. На рис. 20.29a показано одно изображение размера 64´57.
Это вектор в 3648-мерном пространстве, в котором каждое измерение соот‑
ветствует яркости пикселя. Допустим, мы пытаемся сгенерировать изобра‑
жение путем выборки случайной точки в этом пространстве; практически
невероятно, что оно будет похоже на изображение цифры (см. рис. 20.29b).
Однако пиксели не являются независимыми, так как порождены некоторой
низкоразмерной структурой, а именно формой цифры 6.

(a)

(b)

(c)

Рис. 20.29  Многообразие изображения. (a) Изображение цифры 6 из набора данных USPS размера 64´57 = 3648. (b) Случайный пример из пространства
{0,1}3648, представленный в виде изображения. (c) Набор данных, созданный
поворотом оригинального изображения на один градус 360 раз. Мы проецируем эти данные на первые две главные компоненты, чтобы выявить стоящее за
ними двумерное круговое многообразие. На основе рис. 1 из работы [Law12].
Печатается с разрешения Нила Лоуренса

Tlgm: @it_boooks

Обучение многообразий  815

Изменяя форму, мы будем генерировать другие изображения. Часто про‑
странство вариаций формы можно охарактеризовать с помощью многооб‑
разия низкой размерности. Это показано на рис. 20.29c, где мы применяем
PCA (раздел 20.1) для проецирования набора данных из 360 изображений,
по одному на каждую немного повернутую версию цифры 6, в двумерное
пространство. Видно, что большая часть вариации данных улавливается ис‑
кривленным двумерным многообразием. Говорят, что внутренняя размерность d данных равна 2, хотя размерность объемлющего пространства D
равна 3648.

20.4.3. Подходы к обучению многообразий
Далее в этом разделе мы поговорим о том, как обучать многообразия на
данных. Было предложено много разных алгоритмов, в которых делаются
различные предположения о природе многообразия и которые различают‑
ся своими вычислительными свойствами. В следующих разделах мы обсу‑
дим некоторые из них. Дополнительные сведения см., например, в работе
[Bur10].
Таблица 20.1. Перечень некоторых подходов к понижению размерности.
Если метод выпуклый, то в скобках указано, требует ли он решения разреженной
или плотной задачи нахождения собственных значений
Метод
PCA/классическое ММШ
Ядерный PCA
Isomap
LLE
Лапласовы собственные отображения
tSNE
Автокодировщик

Параметрический
Нет
Нет
Нет
Нет
Нет
Нет
Да

Выпуклый
Да (плотный)
Да (плотный)
Да (плотный)
Да (разреженный)
Да (разреженный)
Нет
Нет

Раздел
Раздел 20.1
Раздел 20.4.6
Раздел 20.4.5
Раздел 20.4.8
Раздел 20.4.9
Раздел 20.4.10
Раздел 20.3

Методы можно классифицировать, как показано в табл. 20.1. Термин «не‑
параметрический» относится к методам, которые обучаются низкоразмерно‑
му погружению zi для каждой точки данных xi, но не обучаются отображению,
которое можно было бы применить к вневыборочной точке. (Однако в работе
[Ben+04b] обсуждается вопрос о том, как распространить многие из этих ме‑
тодов за пределы обучающего набора путем обучения ядра.)
Далее мы сравним работу некоторых из этих методов на двух наборах
данных: набор из 1000 трехмерных точек, выбранных из двумерного много‑
образия «рулет с кремом», и набор 1797 64-мерных точек, выбранных из на‑
бора цифр UCI (см. иллюстрацию на рис. 20.30). Мы будем обучать двумерное
многообразие, чтобы данные можно было визуализировать.

Tlgm: @it_boooks

816  Понижение размерности

(a)

(b)

Рис. 20.30  Некоторые данные, сгенерированные по низкоразмерным
многообразиям. (a) Двумерное многообразие «рулет с кремом», погруженное
в трехмерное пространство. Построено программой по адресу figures.probml.
ai/book1/20.30. (b) Выборка цифр из набора данных UCI размера 8´8 = 64. Построено программой по адресу figures.probml.ai/book1/20.30

20.4.4. Многомерное шкалирование
Простейший подход к обучению многообразий – многомерное шкалирование (ММШ, англ. MDS). Идея в том, чтобы попытаться найти множество
векторов низкой размерности {zi Î ℝL : i = 1 … N} такое, что попарные рассто‑
яния между этими векторами максимально похожи на множество попарных
различий D = {dij}, предоставленное пользователем. Ниже будет описано
несколько вариантов ММШ, один из которых эквивалентен PCA.

20.4.4.1. Классическое ММШ
Допустим, что мы начинаем с матрицы данных X размера N´D со строками
xi. Определим центрированную матрицу Грама (сходства) следующим об‑
разом:
K ij = 〈xi - x—, xj - x—〉.

(20.103)

В матричной нотации имеем K = X X ⟙, где X = CNX и CN = IN - (1/N)1N1⟙N –
центрирующая матрица.
Теперь определим деформацию (strain) множества погружений:
(20.104)
где zi = zi - z— – центрированный вектор погружения. Интуитивно понятно,
что это способ измерить, насколько хорошо сходство в пространстве данных
высокой размерности, K ij, соответствует сходству в пространстве погружения
низкой размерности, 〈zi, zj〉. Минимизация этой потери называется классическим ММШ.
Из раздела 7.5 мы знаем, что аппроксимацией наилучшего ранга L для ма‑
трицы является ее представление в виде усеченного сингулярного разложе‑

Tlgm: @it_boooks

Обучение многообразий  817

 = USV⟙. Поскольку матрица K
 положительно полуопределенная, име‑
ния, K
ем V = U. Поэтому оптимальное погружение удовлетворяет соотношению
Z
 ⟙ = USU⟙ = (US½)(S½U⟙).
Z

(20.105)

Таким образом, мы можем взять в качестве векторов погружения строки
 = US½.
матрицы Z
Теперь опишем, как применить классическое ММШ к набору данных, для
которого имеются только евклидовы расстояния, а не первичные признаки.
Сначала вычислим матрицу квадратов евклидовых расстояний, D(2) = D ⊙ D,
содержащую следующие элементы:
Dij(2) = ||xi - xj||2 = ||xi - x—||2 + ||xj - x—||2 - 2〈xi - x—, xj - x—〉
= ||xi - x—||2 + ||xj - x—||2 - 2K ij.

(20.106)
(20.107)

 только постоянными, зависящими от
Мы видим, что D(2) отличается от K
 можно вычислить, дважды
строки и столбца (и множителем -2). Поэтому K
центрировав D(2) с помощью формулы (7.89), в результате чего получаем
 = -½C D(2)C . Иными словами,
K
N
N
(20.108)
Затем погружения можно вычислить, как и раньше.
Оказывается, что классическое ММШ эквивалентно PCA (раздел 20.1). Что‑
бы убедиться в этом, обозначим K = ULSLUL⟙ усеченное сингулярное разло‑
жение ранга L центрированной матрицы ядра. ММШ-погружение имеет вид
ZMDS = ULSL½. Теперь рассмотрим усеченное сингулярное разложение ранга L
центрированной матрицы данных X = UXSXVX⟙. PCA-погружение имеет вид
ZPCA = UX SX. Имеем
K = X X ⟙ = UX SXVX⟙VX SX UX⟙ = UX SX2 UX⟙ = ULSLUL⟙.

(20.109)

Отсюда UX = UL и SX = SL2, следовательно, ZPCA = ZMDS.

20.4.4.2. Метрическое ММШ
В классическом ММШ предполагается, что расстояния евклидовы. Мы можем
обобщить его на любую метрику различия, определив функцию напряжения:
(20.110)
где dˆij = ||zi - zj||. Это называется метрическим ММШ. Заметим, что это не
та же целевая функция, что в классическом ММШ, поэтому, даже если dij –
евклидовы расстояния, результат все равно будет другим.

Tlgm: @it_boooks

818  Понижение размерности
Для решения этой задачи оптимизации можно воспользоваться гради‑
ентным спуском. Однако лучше использовать алгоритм граничной опти‑
мизации (раздел 8.7) SMACOF [Lee77] (Scaling by MAjorizing a COmplication
Function – шкалирование путем мажоризации функции сложности). (Именно
этот метод реализован в библиотеке scikit-learn.) Результаты его применения
к нашему сквозному примеру показаны на рис. 20.31.

(a)

(b)

Рис. 20.31  Результаты применения метрического ММШ к (a) Рулету с кремом.
Построено программой по адресу figures.probml.ai/book1/20.31. (b) Цифрам из
набора UCI. Построено программой по адресу figures.probml.ai/book1/20.31

20.4.4.3. Неметрическое ММШ
Вместо того чтобы пытаться уравнять расстояния между точками, мы можем
поставить во главу угла ранжирование близости точек. Пусть f(d) – монотон‑
ное преобразование расстояний в ранги. Определим потерю:

(20.111)
где dˆij = ||zi - zj||. Ее минимизация называется неметрическим ММШ.
Эту целевую функцию можно оптимизировать итеративно. Сначала функ‑
ция f оптимизируется для данного Z с помощью изотонической регрессии;
в результате находится оптимальное монотонное преобразование входных
расстояний, соответствующее текущим расстояниям в пространстве погру‑
жения. Затем оптимизируются погружения Z для данной f с применением
градиентного спуска. После этого весь процесс повторяется.

20.4.4.4. Отображение Саммона
Цель метрической ММШ – минимизировать сумму квадратов расстояний, по‑
этому особое внимание уделяется большим расстояниям. Однако для многих
методов погружения малые расстояния значат больше, так как именно они
улавливают локальную структуру. Один из способов уловить ее – поделить
каждый член потери на dij, повысив тем самым вес малых расстояний:

Tlgm: @it_boooks

Обучение многообразий  819

(20.112)
Минимизация этой потери приводит к отображению Саммона. (Коэффи‑
циент перед суммой просто упрощает градиент потери.) К сожалению, эта
целевая функция невыпукла и, вероятно, делает слишком сильный акцент
на точное сохранение малых расстояний. Ниже мы обсудим лучшие методы
улавливания локальной структуры.

20.4.5. Isomap
Если многомерные данные лежат на искривленном многообразии, как в при‑
мере рулета с кремом, или вблизи него, то ММШ может рассматривать две
точки как близкие, даже если их расстояние вдоль многообразия велико. Это
показано на рис. 20.32a.

(a)

(b)

Рис. 20.32  (a) Если измерять расстояния вдоль многообразия, то окажется, что d(1, 6) > d(1, 4), а если измерять в объемлющем пространстве, то
d(1, 6) < d(1, 4). На нижнем рисунке показано истинное одномерное многообразие. (b) Граф K ближайших соседей для нескольких точек данных; красным
цветом показан кратчайший путь между A и B в этом графе. Из работы [Hin13].
Печатается с разрешения Джеффри Хинтона

Один из способов уловить эту особенность – построить граф K ближайших
соседей между точками данных1, а затем аппроксимировать расстояние по
многообразию между парой точек длиной кратчайшего пути в этом графе,
которую можно эффективно вычислить с помощью алгоритма Дийкстры
(см. иллюстрацию на рис. 20.32b). После того как это новое расстояние вы‑
1

В библиотеке scikit-learn можно воспользоваться функцией sklearn.neighbors.
kneighbors_graph.

Tlgm: @it_boooks

820  Понижение размерности
числено, мы можем применить классическое ММШ (т. е. PCA). Этот метод
позволяет уловить локальную структуру, не прибегая к поиску локальных
оптимумов, и называется он isomap [TSL00].
На рис. 20.33 показаны результаты применения этого метод к нашему
сквозному примеру. Мы видим, что они вполне разумны. Однако если данные
зашумлены, то в графе ближайших соседей могут появиться «ложные» ребра,
приводящие к «коротким путям», которые значительно искажают погруже‑
ние (см. рис. 20.34). Эта проблема называется топологической неустойчивостью [BS02]. Уменьшение размера окрестности не решает проблему, по‑
тому что тогда многообразие может распасться на большое число несвязных
областей. Были предложены другие подходы, см., например, [CC07].

(a)

(b)

Рис. 20.33  Результаты применения метода Isomap к (a) Рулету с кремом. Построено программой по адресу figures.probml.ai/book1/20.33. (b) Цифрам из набора UCI. Построено программой по адресу figures.probml.ai/book1/20.33

(a)

(b)

Рис. 20.34  (a) Зашумленная версия данных рулета с кремом. Мы возмущаем
каждую точку, прибавляя случайный шум 𝒩(0, 0.52). (b) Результаты применения
метода Isomap к этим данным. Построено программой по адресу figures.probml.
ai/book1/20.34

20.4.6. Ядерный PCA
PCA (и классическое ММШ) находят наилучшую линейную проекцию дан‑
ных с целью сохранить попарное сходство между всеми точками. В этом
разделе мы рассмотрим нелинейные проекции. Ключевая идея – решить

Tlgm: @it_boooks

Обучение многообразий  821

задачу PCA, вычислив собственные векторы матрицы скалярных произве‑
дений (Грама) K = XX⟙, как в разделе 20.1.3.2, а затем применить ядерный
трюк (раздел 17.3.4), который позволит заменить скалярные произведения,
например xi⟙xj ядерной функцией, Kij = 𝒦(xi, xk). Это называется ядерным
PCA [SSM98].
Напомним, что, по теореме Мерсера, использование ядра подразумевает
наличие некоего истинного пространства признаков, т. е. мы неявно заме‑
няем xi вектором ϕ(xi) = ϕi. Обозначим Φ соответствующую (воображаемую)
матрицу плана, а K = XX⟙ – матрицу Грама. Наконец, обозначим Sϕ = (1/N)
åi ϕi ϕi⟙ ковариационную матрицу в пространстве признаков. (Пока что бу‑
дем предполагать, что признаки центрированы.) Из формулы (20.22) имеем,
что нормированные собственные векторы S равны VkPCA = Φ⟙UΛ-½, где U
и Λ содержат соответственно собственные векторы и собственные значения
K. Разумеется, мы не можем вычислить VkPCA, потому что ϕi потенциально
бесконечномерны. Однако можно вычислить проекцию тестового вектора x∗
на пространство признаков:
ϕ*⟙VkPCA = ϕ*⟙Φ⟙UΛ-½ = k*⟙UΛ-½,

(20.113)

где k∗ = [𝒦(x∗, x1), …, 𝒦(x∗, xN)].
И еще об одной детали нужно побеспокоиться. Ковариационная матрица
имеет вид S = Φ⟙Φ, только если признаки имеют нулевое среднее. Поэтому
матрицу Грама K = ΦΦ⟙ можно использовать, только если 𝔼[ϕi] = 0. К со‑
жалению, нельзя просто вычесть среднее в пространстве признаков, пото‑
му что оно может быть бесконечномерным. Но есть один трюк. Определим
центрированный вектор признаков как ϕ i = ϕ(xi) - (1/N)åNj=1 ϕ(xj). Матри‑
ца Грама центрированных векторов признаков равна K ij = ϕ i⟙ϕ j. Используя
двойное центрирование (7.89), мы можем записать это в матричной форме,
K = CN KCN, где CN IN - (1/N) 1N1⟙N – центрирующая матрица.
Применив kPCA с линейным ядром, мы вернемся к регулярному PCA (клас‑
сическому ММШ). При этом размерности погружения ограничены L´D. При‑
меняя невырожденное ядро, мы можем использовать до N компонент, так как
размер Φ равен N´D*, где D* – (потенциально бесконечная) размерность по‑
груженных векторов признаков. На рис. 20.35 показаны результаты примене‑
ния этого метода к некоторым данным размерности D = 2 с использованием
RBF-ядра. Мы проецируем точки единичной сетки на первые 8 компонент
и визуализируем соответствующие поверхности с помощью линий уровня.
Видно, что первые две компоненты разделяют все три кластера, а следующие
компоненты разбивают сами кластеры.
На рис. 20.36 показаны результаты применения kPCA (с RBF-ядром) к на‑
шему сквозному примеру. В этом случае результаты, признаем, не особен‑
но полезны. На самом деле можно показать, что kPCA с RBF-ядром расши‑
ряет, а не уменьшает пространство признаков [WSS04], как мы видели на
рис. 20.35, что делает этот метод практически бесполезным для понижения
размерности. Решение этой проблемы мы обсудим в разделе 20.4.7.

Tlgm: @it_boooks

822  Понижение размерности

Рис. 20.35  Визуализация первых восьми базисных функций ядерного PCA
для некоторых двумерных данных. Используется RBF-ядро с σ2 = 0.1. Построено
программой по адресу figures.probml.ai/book1/20.35

(a)

(b)

Рис. 20.36  Результаты применения ядерного PCA к (a) Рулету с кремом. Построено программой по адресу figures.probml.ai/book1/20.36. (b) Цифрам из набора UCI. Построено программой по адресу figures.probml.ai/book1/20.36

20.4.7. Максимальное раскрытие дисперсии
Метод kPCA с некоторыми ядрами, например RBF, может не давать низкораз‑
мерного погружения, о чем было сказано в разделе 20.4.6. Это наблюдение
привело к разработке алгоритма полуопределенного погружения (semi‑

Tlgm: @it_boooks

Обучение многообразий  823

definite embedding) [WSS04], называемого также развертыванием с максимальной дисперсией (maximum variance unfolding – MVU), который пыта‑
ется обучить погружение {zi} такое, что
при условии ||zi - zj||22 = ||xi - xj||22 для всех (i, j) Î G, (20.114)
где G – граф ближайших соседей (как в Isomap). В этом подходе мы пытаемся
«развернуть» многообразие данных, сохранив по возможности ограничения
ближайших соседей.
Эту задачу можно переформулировать как задачу полуопределенного
программирования (SDP), определив матрицу ядра K = ZZ⟙, а затем опти‑
мизировав функцию:
max tr(K) при условиях ||zi - zj||22 = ||xi - xj||22,

(20.115)

20.4.8. Локально линейное погружение
Все обсуждавшиеся выше методы опираются на спектральное разложение
полной матрицы попарных сходств либо в объемлющем пространстве (PCA),
либо в пространстве признаков (kPCA), либо на графе K ближайших соседей
(Isomap). В этом разделе мы обсудим локально линейное погружение (lo‑
cal linear embedding – LLE) [RS00] – метод, который решает разреженную
задачу на собственные значения и таким образом акцентирует внимание на
локальной структуре внутри данных.
В LLE предполагается, что многообразие данных в окрестности каждой
точки xi локально линейно. Наилучшую линейную аппроксимацию можно
найти, предсказав xi в виде линейной комбинации K ее ближайших соседей
с весами реконструкции wi. Это можно сделать, решив задачу:
(20.116)

(20.117)
Обратите внимание на ограничение – сумма весов должна быть равна 1;
это нужно, для того чтобы предотвратить тривиальное решение W = 0. По‑
лучающийся вектор весов wi,: образует барицентрические координаты xi.
Любое линейное отображение этой гиперплоскости в пространство низ‑
кой размерности сохраняет веса реконструкции, а значит, и локальную гео‑
метрию. Таким образом, мы можем найти низкоразмерные погружения для
каждой точки, решив задачу:

Tlgm: @it_boooks

824  Понижение размерности

(20.118)
где ŵ ij = 0, если j не является одним из K ближайших соседей i. Эту потерю
можно переписать в виде
ℒ(Z) = ||Z - WZ||2 = Z⟙(I - W)⟙(I - W)Z.

(20.119)

Следовательно, решение дают собственные векторы матрицы (I - W)⟙(I - W),
соответствующие наименьшим ненулевым собственным значениям, как по‑
казано в разделе 7.4.8.
На рис. 20.37 показаны результаты применения LLE к нашему сквозно‑
му примеру. В данном случае результаты не столь хороши, как полученные
с помощью Isomap. Однако метод все же менее чувствителен к появлению
коротких путей (шуму).

(a)

(b)

Рис. 20.37  Результаты применения LLE к (a) Рулету с кремом. Построено
программой по адресу figures.probml.ai/book1/20.37. (b) Цифрам из набора UCI.
Построено программой по адресу figures.probml.ai/book1/20.37

20.4.9. Лапласовы собственные отображения
В этом разделе мы опишем лапласовы собственные отображения (Lapla‑
cian eigenmaps), или спектральное погружение [BN01]. Идея в том, чтобы
вычислить низкоразмерное представление данных, в котором минимизи‑
руется взвешенная комбинация расстояний от точки до K ее ближайших со‑
седей. Мы назначаем больший вес первому ближайшему соседу, чем второму
и т. д. Детали описаны ниже.

20.4.9.1. Использование собственных векторов лапласиана
графа для вычисления погружений
Мы хотим найти погружения, которые минимизируют целевую функцию:
(20.120)

Tlgm: @it_boooks

Обучение многообразий  825

где Wij = exp((-1/2σ2)||xi - xj||22), если i и j – соседи в графе KNN, и 0 в противном случае. Ограничение Z⟙DZ = I добавлено, чтобы избежать вырож‑
денного решения Z = 0, где D – диагональная матрица, в которой хранятся
степени вершин, Dii = åj Wi,j.
Мы можем переписать приведенную выше целевую функцию следующим
образом:
(20.121)
(20.122)
= 2Z⟙DZ - 2Z⟙WZ = 2Z⟙LZ,

(20.123)

где L = D - W – лапласиан графа (см. раздел 20.4.9.2). Можно показать, что
ее оптимизация эквивалентна решению задачи на собственные значения
Lzi = λDzi, в которой требуется найти L наименьших ненулевых собственных
значений.
На рис. 20.38 показаны результаты применения этого метода (с RBF-ядром)
к нашему сквозному примеру.

(a)

(b)

Рис. 20.38  Результаты применения лапласовых собственных отображений к (a) Рулету с кремом. Построено программой по адресу figures.probml.
ai/book1/20.38. (b) Цифрам из набора UCI. Построено программой по адресу
figures.probml.ai/book1/20.38

20.4.9.2. Что такое лапласиан графа?
Выше мы видели, что можем вычислить собственные векторы лапласиана
графа, чтобы обучить хорошее погружение точек пространства высокой раз‑
мерности. В этом разделе мы приведем интуитивные соображения, показы‑
вающие, почему эта идея работает.
Пусть W – симметричная матрица весов для графа, в которой Wij = Wji ³ 0.
Обозначим D = diag(di) диагональную матрицу, содержащую взвешенные
степени вершин, di = åj wij. Определим лапласиан графа следующим об‑
разом:
L

D - W.

(20.124)

Tlgm: @it_boooks

826  Понижение размерности
Таким образом, элементы L равны
(20.125)
Как эта матрица вычисляется, показано на рис. 20.39.
Помеченный граф

Степенная матрица

Матрица смежности

Матрица Лапласа

Рис. 20.39  Матрица Лапласа для неориентированного графа.
Из статьи https://en.wikipedia.org/wiki/Laplacian_matrix.
Печатается с разрешения автора «Википедии» AzaToth

Предположим, что с каждой вершиной i графа ассоциировано значение
fi Î ℝ (см. пример на рис. 20.40). Тогда лапласиан графа можно использо‑
вать как оператор разности, чтобы вычислить дискретную производную этой
функции в точке:
(20.126)
где nbri – множество соседей вершины i. Мы также можем найти полную меру
«гладкости» функции f, вычислив энергию Дирихле:
(20.127)
(20.128)
Путем изучения собственных значений и собственных векторов матри‑
цы Лапласа мы можем выявить различные полезные свойства функции.
(Применение методов линейной алгебры к изучению матрицы смежности
графа и родственных ей матриц называется спектральной теорией графов [Chu97].) Например, мы видим, что L симметричная и положительно
определенная, так как f ⟙Lf ³ 0 для всех f Î ℝN, что вытекает из формулы
(20.128) в силу предположения о том, что w ij ³ 0. Следовательно, L имеет
N неотрицательных вещественных собственных значений 0 £ λ 1 £ λ 2 £ …
£ λ N. Соответствующие собственные векторы образуют ортогональный
базис для функции f, определенной на графе, упорядоченный по убыванию
гладкости.

Tlgm: @it_boooks

Обучение многообразий  827

Рис. 20.40  Положительная функция, определенная на графе.
На основе рис. 1 из работы [Shu+13].
Печатается с разрешения Паскаля Фроссара

В разделе 20.4.9.1 мы обсуждали лапласовы собственные отображения как
способ обучить низкоразмерные погружения для векторов данных высокой
размерности. Идея заключается в том, чтобы положить zid = fid равным d-му
измерению погружения для входа i, а затем найти базис для этих функций
(т. е. погружение точек), который гладко изменяется на графе, и тем самым
учесть расстояния между точками в объемлющем пространстве.
У лапласиана графа есть много приложений в МО. Например, в разде‑
ле 21.5.1 мы обсудим нормализованные разрезы – способ обучиться класте‑
ризации векторов данных высокой размерности, основанный на попарном
сходстве, а в работе [WTN19] описано, как использовать собственные векторы
матрицы перехода состояний в целях обучения представлений для обучения
с подкреплением.

20.4.10. t-SNE
В этом разделе мы опишем очень популярный невыпуклый методобучения
низкоразмерных погружений, называемый t-SNE [MH08]. Он обобщает бо‑
лее ранний метод стохастического погружения соседей (SNE) из работы
[HR03], поэтому сначала опишем SNE, а потом перейдем к t-SNE.

20.4.10.1. Стохастическое погружение соседей
Основная идея метода стохастического погружения соседей (stochastic neigh‑
borhood embedding – SNE) заключается в том, чтобы преобразовать евклидо‑
вы расстояния в пространстве высокой размерности в условные вероятности,
представляющие сходство. Формально определим pj|i как вероятность того,
что точка j выбрала бы точку i в качестве своего соседа, если бы соседи вы‑
бирались пропорционально их вероятности в соответствии с гауссовым рас‑
пределением, центрированным в точке xi:

(20.129)

Tlgm: @it_boooks

828  Понижение размерности
Здесь σi2 – дисперсия для точки i, которую можно использовать, чтобы «уве‑
личить» масштаб точек в плотных областях пространства входов и умень‑
шить в более разреженных областях. (Как оценивать линейные масштабы σi2,
мы обсудим чуть ниже.)
Обозначим zi низкоразмерное погружение, представляющее xi. Определим
сходство в пространстве низкой размерности аналогично:
(20.130)
В этом случае дисперсия постоянна: ее изменение просто изменило бы
масштаб обученного отображения, но не его топологию.
Если погружение хорошее, то qj|i должно соответствовать pj|i. Поэтому це‑
левая функция SNE определяется следующим образом:
(20.131)
где Pi – условное распределение всех остальных точек данных при условии
xi, Qi – условное распределение всех остальных латентных точек при условии
zi, а 𝕂𝕃(Pi||Qi) – расхождение Кульбака–Лейблера (раздел 6.2) между распре‑
делениями.
Отметим, что эта целевая функция асимметрична. Именно, стоимость ве‑
лика, если для моделирования большой pj|i используется малая qj|i. Поэтому
целевая функция предпочитает сближать удаленные точки, а не отдалять
близкие. Составить более точное представление о геометрии можно, взгля‑
нув на градиент для каждого вектора погружения, который равен
(20.132)
Таким образом, точки притягиваются, если вероятности p больше, чем
вероятности q, и отталкиваются в противном случае.
Хотя эта функция интуитивно кажется разумной, она не выпукла. Тем
не менее ее можно минимизировать методом СГС. На практике полезно
прибавить гауссов шум к точкам погружения и постепенно «отжигать» его
величину. В работе [Hin13] рекомендуется «тратить длительное время при
уровне шума, при котором из горячей плазмы точек начинает формировать‑
ся глобальная структура», а только потом приступать к его уменьшению1.

1

См. обсуждение отжига и фазовых переходов в обучении без учителя в работах
[Ros98; WF20]. См. также обсуждение алгоритма эластичного погружения в рабо‑
те [CP10]; в нем применяются методы теории гомотопий для более эффективной
оптимизации модели, связанной одновременно с SNE и лапласовыми собственны‑
ми отображениями.

Tlgm: @it_boooks

Обучение многообразий  829

20.4.10.2. Симметричное SNE
Существует немного более простой вариант SNE, в котором минимизируется
только одно расхождение КЛ между совместным распределением P в про‑
странстве высокой размерности и распределением Q в пространстве низкой
размерности:
(20.133)
Он называется симметричным SNE.
Очевидный способ определения pij таков:

(20.134)

Определить qij можно аналогично. Соответствующий градиент принимает
вид:
(20.135)
Как и раньше, точки притягиваются, если вероятности p больше, чем q,
и отталкиваются в противном случае.
Хотя симметричное SNE реализовать немного проще, оно не обладает
полезным свойством обычного SNE: данные являются своим собственным
оптимальным погружением, если размерность погружения L положить рав‑
ной размерности объемлющего пространства D. Тем не менее на практике
оба метода, похоже, дают сопоставимые результаты на реальных наборах
данных, когда L ≪ D.

20.4.10.3. SNE с t-распределением

Фундаментальная проблема SNE и многих других методов погружения за‑
ключается в том, что они пытаются сблизить в пространстве погружения
(обычно двумерном) точки, отстоящие довольно далеко друг от друга в про‑
странстве высокой размерности; эта так называемая проблема скученности возникает из-за использования квадратичных ошибок (или гауссовых
вероятностей).
Одно из возможных решений – использовать в латентном пространстве
распределение вероятностей с более тяжелыми хвостами, устранив тем
самым нежелательные силы притяжения между точками, отстоящими да‑
леко друг от друга в пространстве высокой размерности. Очевидный вы‑
бор – t-распределение Стьюдента (раздел 2.7.1). В алгоритме t-SNE параметр
степени свободы задается равным ν = 1, поэтому мы приходим к распреде‑
лению Коши:

Tlgm: @it_boooks

830  Понижение размерности
(20.136)
Можно использовать такую же глобальную целевую функцию на основе
расхождения КЛ, как в формуле (20.133). Для t-SNE градиент равен
(20.137)
Градиент для симметричного (гауссова) SNE такой же, но в нем отсутствует
член (1 + ||zi - zj||2)-1. Этот член полезен, потому что (1 + ||zi - zj||2)-1 действу‑
ет так же, как закон обратных квадратов. Следовательно, точки в простран‑
стве погружения ведут себя, как звезды и галактики, образуя много четко
разделенных кластеров (галактик), в каждом из которых плотно упаковано
много звезд. Это бывает полезно для разделения классов данных без учителя
(см. пример на рис. 20.41).

(а)

(b)

Рис. 20.41  Результаты применения tSNE к (a) Рулету с кремом. Построено
программой по адресу figures.probml.ai/book1/20.41. (b) Цифрам из набора UCI.
Построено программой по адресу figures.probml.ai/book1/20.41

20.4.10.4. Выбор линейного масштаба
Важным параметром в t-SNE является локальная полоса пропускания σi2.
Обычно она выбирается, так чтобы Pi имела перплексивность, заданную
пользователем1. Ее можно интерпретировать как гладкую меру эффектив‑
ного числа соседей.
К сожалению, результаты t-SNE могут быть весьма чувствительны к пара‑
метру перплексивности, поэтому разумно прогонять алгоритм с большим
числом различных значений. Это показано на рис. 20.42. Входные данные
двумерные, поэтому искажений из-за их отображения в двумерное латент‑
1

Перплексивность определяется как 2ℍ(Pi), где ℍ(Pi) = -åj pj|i log2 pj|i – энтропия; де‑
тали см. в разделе 6.1.5. Если радиус вокруг каждой точки велик (велико значение
σi), то энтропия, а значит, и перплексивность будет высокой.

Tlgm: @it_boooks

Обучение многообразий  831

ное пространство нет. Если перплексивность слишком мала, то метод нахо‑
дит в каждом кластере реально не существующую структуру. Когда перплек‑
сивность равна 30 (значение по умолчанию в scikit-learn), кластеры кажутся
равноотстоящими в пространстве погружения, хотя в пространстве данных
расстояния между ними различны. Другие подводные камни, присущие ин‑
терпретации графиков t-SNE, приведены в работе [WVJ16].

Оригинал

Перплексивность: 2
Шагов: 5,000

Перплексивность: 5
Шагов: 5,000

Перплексивность: 30
Шагов: 5,000

Перплексивность: 50
Шагов: 5,000

Перплексивность: 100
Шагов: 5,000

Рис. 20.42  Эффект изменения параметра перплексивности при применении
t-SNE к двумерным данным. Из работы [WVJ16]. Смотрите анимированный вариант этих рисунков по адресу http://distill.pub/2016/misread-tsne. Печатается
с разрешения Мартина Уоттенберга

20.4.10.5. Вычислительные проблемы
Наивная реализация t-SNE занимает время O(N 2), что следует из члена гра‑
диента в формуле (20.137). Ускорить работу можно, воспользовавшись ана‑
логией с моделированием N тел в физике. Именно, для вычисления гра‑
диента нужно найти силы, действующие на каждую из N точек со стороны
всех остальных. Однако далеко отстоящие друг от друга точки можно объ‑
единить в кластеры (с точки зрения вычислений) и аппроксимировать их
эффективную силу несколькими репрезентативными точками в каждом кла‑
стере. Затем для аппроксимации действующих сил можно воспользоваться
алгоритмом Барнса–Хата [BH86], который требует времени O(N log N), как
предложено в работе [Maa14]. К сожалению, это хорошо работает только для
погружений совсем низкой размерности, скажем L = 2.

20.4.10.6. UMAP
Было предложено несколько обобщений tSNE, в которых делается попытка
улучшить быстродействие, качество пространства погружений или способ‑
ность к погружению в пространство размерности больше 2.
Одно из недавних популярных обобщений называется UMAP (Uniform
Manifold Approximation and Projection – равномерная аппроксимация и про‑
ецирование многообразия) (см. [MHM18]). На верхнем уровне оно похоже на
tSNE, но обычно лучше сохраняет глобальную структуру и гораздо быстрее
работает. Поэтому становится проще опробовать разные значения гипер‑
параметров. Интерактивное пособие по UMAP и его сравнение с tSNE см.
в работе [CP19].

Tlgm: @it_boooks

832  Понижение размерности

20.5. погружения слоВ
Слова – это категориальные случайные величины, поэтому соответствующие
им представления унитарными векторами разрежены. Проблема такого би‑
нарного представления заключается в том, что семантически похожие слова
могут иметь сильно различающиеся векторные представления. Например,
расстояние Хэмминга между родственными словами «man» и «woman» рав‑
но 1 – такое же, как между никак не связанными словами «man» и «banana».
Стандартный способ решения этой проблемы – использовать погружения
слов, когда каждый разреженный унитарный вектор, sn,t Î {0, 1}M, представ‑
ляющий t-е слово в документе n, отображается в низкоразмерный плотный
вектор, zn,t Î ℝD, так что семантически похожие слова оказываются рядом.
Это может существенно снизить разреженность данных. Ниже мы обсудим
различные способы обучения таких погружений.
Прежде чем переходить к методам, необходимо определить, что мы пони‑
маем под «семантически похожими» словами. Будем считать, что два слова
семантически похожи, если они встречаются в похожих контекстах. Эту дистрибутивную гипотезу [Har54] часто описывают фразой (взятой из работы
[Fir57]) «узнаешь слово по тому, с кем оно водит компанию». Таким образом,
все обсуждаемые ниже методы обучают отображение из контекста слова
в вектор погружения для этого слова.

20.5.1. Латентно-семантический анализ
и индексирование
В этом разделе мы обсудим простой способ обучиться погружениям слов на
основе сингулярного разложения (раздел 7.5) терм-документной матрицы.

20.5.1.1. Латентно-семантическое индексирование
Пусть Cij показывает, сколько раз «терм» i встречается в «контексте» j. Что
означает слово «терм», зависит от приложения. В англоязычных текстах это
часто уникальные токены, разделенные знаком препинания или пробелом;
для простоты будем называть их «словами». Однако текст можно подвергнуть
предварительной обработке, удалив слова, которые встречаются очень часто
или, наоборот, редко. Возможны и другие виды предобработки, обсуждаемые
в разделе 1.5.4.1.
Что понимать под «контекстом», также зависит от приложения. В этом раз‑
деле мы подсчитываем, сколько раз слово i встречается в каждом документе
j Î {1, …, N} из некоторого множества, или корпуса, документов; в резуль‑
тате получается терм-документная матрица C, показанная на рис. 1.15.
(Иногда к счетчикам применяется преобразование TF-IDF, обсуждавшееся
в разделе 1.5.4.2.)
Пусть C Î ℝM´N – матрица счетчиков, а Ĉ – ее аппроксимация ранга K, ми‑
нимизирующая следующую потерю:

Tlgm: @it_boooks

Погружения слов  833

(20.138)
Можно показать, что минимизатор описывается усеченным сингулярным
разложением ранга K, Ĉ = USV. Это означает, что каждый элемент cij можно
представить билинейным произведением:
(20.139)
Мы определяем ui как погружение слова i, а s ⊙ vj как погружение для
контекста j.
Эти погружения можно использовать для поиска документов. Идея в том,
чтобы вычислить погружение для слов запроса, используя ui, и сравнить его
с погружениями всех документов или контекстов vj. Это называется латентно-семантическим индексированием (ЛСИ, англ. LSI) [Dee+90].
Точнее, предполагая, что запрос – это мешок слов w1, …, wB, мы будем
представлять его вектором q = (1/B)åBb=1 uwb, где uwb – погружение слова wb.
Пусть документ j представлен вектором vj. Затем мы ранжируем документы
по коэффициенту Отиаи между вектором запроса и документом:
(20.140)
где ||q|| =

– 𝓁2-норма q. Это выражение измеряет углы между двумя

векторами, как показано на рис. 20.43. Заметим, что для векторов единич‑
ной нормы коэффициент Отиаи совпадает со скалярным произведением;
он также равен квадрату евклидова расстояния с точностью до знака и не‑
существенной аддитивной постоянной:
||q - d||2 = (q - d)⟙(q - d) = q⟙q + d⟙d - 2q⟙d = 2(1 - sim(q, d)).

(20.141)

20.5.1.2. Латентно-семантический анализ
Теперь предположим, что контекст определен более общо, как некоторая
локальная окрестность слова j Î {1, …, M h}, где h – размер окна. Таким об‑
разом, Cij показывает, сколько раз слово i встречается в окрестности типа j.
Мы можем вычислить сингулярное разложение этой матрицы, как и прежде,
и получить cij ≈ åKk=1 uikskvjk. Определим ui как погружение слова i, а s ⊙ vj как
погружение контекста j. Это называется латентно-семантическим анализом (ЛСА, англ. LSA) [Dee+90].
Например, допустим, что C вычисляется на Британском национальном
корпусе1. Для каждого слова найдем K ближайших соседей в пространстве
погружения, ранжированных по коэффициенту Отиаи (т. е. нормированному
1

Этот пример взят из работы [Eis19, стр. 312].

Tlgm: @it_boooks

834  Понижение размерности
скалярному произведению). Если запрашивается слово «dog» и используется
h = 2 или h = 30, то ближайшими соседями будут
h=2: cat, horse, fox, pet, rabbit, pig, animal, mongrel, sheep, pigeon
h=30: kennel, puppy, pet, bitch, terrier, rottweiler, canine, cat, to bark

Рис. 20.43  Сходство между вектором запроса q и двумя векторами документов d1 и d2, вычисленное в виде
коэффициента Отиаи. Поскольку угол α меньше θ, мы видим, что запрос больше похож на документ 1. Из статьи
https://en.wikipedia.org/wiki/Vector_space_model. Печатается с разрешения автора «Википедии» Riclas

Двухсловное контекстное окно более чувствительно к синтаксису, а 30-словное – к семантике. «Оптимальный» размер контекста h зависит от приложения.

20.5.1.3. Поточечная взаимная информация
На практике ЛСА (и другие подобные методы) дает лучшие результаты, если
заменить счетчики Cij поточечной взаимной информацией (pointwise mu‑
tual information – PMI) [CH90], определенной следующим образом:
(20.142)
Если между словом i и контекстом j имеется сильная связь, то ℙ𝕄𝕀(i, j) > 0.
Если PMI отрицательна, значит i и j совместно встречаются реже, чем если бы
были независимы; однако такая отрицательная корреляция может оказаться
ненадежной, поэтому обычно используют положительную PMI: ℙℙ𝕄𝕀(i, j) =
max(ℙ𝕄𝕀(i, j), 0). В работе [BL07] показано, что сингулярное разложение матрицы PPMI дает погружения слов, которые хорошо работают во многих за‑
дачах, связанных со смыслом слов. Теоретическая модель, объясняющая это
эмпирически наблюдаемое качество, описана в разделе 20.5.5.

Tlgm: @it_boooks

Погружения слов  835

20.5.2. Word2vec
В этом разделе мы обсудим популярную модель word2vec из работ [Mik+13a;
Mik+13b]. Это «мелкая» нейронная сеть для предсказания слова по его кон‑
тексту. В разделе 20.5.5 мы обсудим связи между сингулярным разложением
и матрицей PMI.
Существует две версии модели word2vec. Первая называется CBOW (con‑
tinuous bag of words – непрерывный мешок слов), вторая – скипграммы. Ниже
обсуждаются обе.

20.5.2.1. Модель Word2vec CBOW
В модели непрерывного мешка слов (CBOW) (см. рис. 20.44a) логарифмиче‑
ское правдоподобии последовательности слов вычисляется с применением
следующей модели:
(20.143)
(20.144)
где vwt – вектор для слова в позиции wt, 𝒱 – множество всех слов, m – размер
контекста и
(20.145)
– среднее векторов слов в окне, окружающем слово wt. Таким образом, мы
пытаемся предсказать каждое слово по его контексту. Модель называется
CBOW, потому что в ней используется предположение о мешке слов для кон‑
текста, а каждое слово представляется непрерывным погружением.

20.5.2.2. Скипграммная модель Word2vec
В модели CBOW каждое слово предсказывается по его контексту. Вариант
этой идеи – предсказывать контекст (окружающие слова) по слову. Получа‑
ется такая целевая функция:
(20.146)
(20.147)
где m – длина контекстного окна. Мы определяем логарифмическую вероят‑
ность другого контекстного слова wo при условии центрального слова wc как

Tlgm: @it_boooks

836  Понижение размерности
(20.148)
где 𝒱 – словарь. Здесь ui – погружение слова, если оно используется в качестве
контекста, а vi – погружение слова, если оно используется в качестве центрального (целевого) слова, подлежащего предсказанию. Это скипграммная
модель (см. иллюстрацию на рис. 20.44b).
input

projection

input

output

projection

output

w(t – 2)

w(t – 2)

w(t – 1)

w(t – 1)
sum
w(t)

w(t)

w(t + 1)

w(t + 1)

w(t + 2)

w(t + 2)
(a)

(b)

Рис. 20.44  Модель word2vec с окном размера 2.
(a) Версия CBOW. (b) Скипграммная версия

20.5.2.3. Отрицательная выборка
Вычисление условной вероятности каждого слова по формуле (20.148)
обходится дорого из-за необходимости производить нормировку во всем
возможным словам в словаре. Поэтому вычислять логарифмическое
правдоподобие и его градиент медленно в обеих моделях, CBOW и скипграммной.
В работе [Mik+13b] предложена быстрая аппроксимация, названная скипграммами с отрицательной выборкой (skip-gram with negative sampling –
SGNS). Основная идея – создать набор K + 1 контекстных слов для каждого
центрального слова wt и пометить то, которое фактически встречается как
положительное, а все остальные как отрицательные. Отрицательные слова
называются пропускаемыми, их можно выбрать из распределения униграмм
с пересчитанными весами, p(w) µ freq(w)¾, смысл которого – перераспреде‑
лить массу вероятности от частых слов к редким. Тогда условная вероятность
аппроксимируется следующим образом:

Tlgm: @it_boooks

Погружения слов  837

(20.149)
где wk ~ p(w) пропускаемые слова, D = 1 – событие, заключающееся в том, что
пара слов действительно встречается в данных, а D = 0 – событие, заключа‑
ющееся в том, что пара слов не встречается. Бинарные вероятности равны
(20.150)
(20.151)
Для обучения этой модели нужно только вычислить контексты для каж‑
дого центрального слова и множество пропускаемых слов. С контекстными
словами ассоциируется метка 1, а с пропускаемыми – метка 0. Затем можно
вычислить логарифмическую вероятность данных и оптимизировать векто‑
ры погружений ui и vi для каждого слова, применив метод СГС. Демонстра‑
ционный код см. по адресу code.probml.ai/book1/skipgram_torch.

20.5.3. GloVE
Популярную альтернативу скипграммной модели составляет модель GloVe
из работы [PSM14a]. (GloVe означает «global vectors for word representation» –
глобальные векторы для представления слов.) В этом методе используется
более простая целевая функция, оптимизировать которую гораздо быстрее.
Напомним, что в скипграммной модели предсказанная условная вероят‑
ность того, что слово j встречается в контекстном окне центрального слова i,
равна
(20.152)
Пусть xij – количество вхождений слова j в какое-нибудь контекстное окно
слова i. (Заметим, что если слово i встречается в окне слова j, то j встречается
в окне i, так что xij = xji.) Тогда формулу (20.147) можно переписать в виде
(20.153)
Если положить pij = xij /xi – эмпирическая вероятность вхождения слова j
в контекстное окно центрального слова i, то скипграммную потерю можно
переписать как потерю перекрестной энтропии:
(20.154)
Проблема этой целевой функции в том, что вычисление qij стоит доро‑
го из-за необходимости нормировки по всем словам. В GloVe мы работаем

Tlgm: @it_boooks

838  Понижение размерности
с ненормированными вероятностями, p¢ij = xij и q¢ij = exp(uj⟙vi + bi + cj), где bi
и cj – члены смещения, улавливающие маргинальные вероятности. Кроме
того, мы минимизируем квадратичную потерю, (log p¢ij - log q¢ij)2, которая
более робастна к ошибкам в оценке малых вероятностей, чем логарифмиче‑
ская потеря. Наконец, мы увеличиваем веса редких слов, для которых xij < c,
где c = 100, умножая квадратичные ошибки на h(xij), где h(x) = (x/c)0.75, если
x < c, и h(x) = 1 в противном случае. В итоге получаем такую целевую функ‑
цию GloVe:
(20.155)
Пересчитывать xij можно в офлайновом режиме, а затем оптимизировать
эту целевую функцию методом СГС. После обучения мы определяем погру‑
жение слова i как среднее vi и ui.
Эмпирически показано, что GloVe дает примерно такие же результаты, как
скипграммная модель, но обучается быстрее. Теоретическое обоснование
обоих методов см. в разделе 20.5.5.

20.5.4. Аналогичные слова
Одно из самых примечательных свойств погружений слов, порождаемых
моделями word2vec, GloVe и другими подобными методами, – тот факт, что
обученное векторное пространство, похоже, улавливает реляционную се‑
мантику в терминах простого сложения векторов. Например, рассмотрим
проблему аналогичных слов «man is to woman as king is to queen»1, которую
часто записывают в виде man:woman::king:queen. Предположим, что даны
слова a=man, b=woman, c=king; как найти d=queen? Обозначим δ = vb - va
вектор, представляющий концепцию «преобразовать мужской род в жен‑
ский». Интуитивно кажется, что можно найти слово d, вычислив vd = c + δ,
а затем взяв ближайшее к vd слово в словаре (см. иллюстрацию этого процесса
на рис. 20.45, а код по адресу code.probml.ai/book1/word_analogies_torch).

Мужчина–женщина

Время глагола

Страна–столица

Рис. 20.45  Визуализация арифметических операций с пространстве погружения word2vec. Из работы https://www.tensorflow.
org/tutorials/representation/word2vec
1

Мужчина относится к женщине как король относится к королеве. – Прим. перев.

Tlgm: @it_boooks

Погружения слов  839

В работе [PSM14a] высказано предположение, что отношение a : b :: c : d
справедливо тогда и только тогда, когда для любого слова w в словаре имеем
(20.156)
В работе [Aro+16] показано, что это следует из предположений модели
RAND-WALK, описанных в разделе 20.5.5 (см. также работы [AH19; EDH19],
где даются объяснения работы механизма аналогичных слов, основанные на
других допущениях).

20.5.5. Модель погружений слов RAND-WALK
Погружения слов значительно улучшают качество различных моделей NLP
по сравнению с унитарными кодировками слов. Естественно спросить, поче‑
му они так хорошо работают. В этом разделе мы опишем простую порождаю‑
щую модель текстовых документов, объясняющую этот феномен. Изложение
основано на работе [Aro+16].
Рассмотрим последовательность слов w1, …, wT. Предполагается, что каж‑
дое слово порождено латентным контекстом, или вектором дискурса zt Î ℝD
с использованием следующей логарифмически-билинейной языковой
модели, аналогичной той, что приведена в работе [MH07]:
(20.157)
где vw Î ℝD – погружение слова w, а Z(zt) – функция разбиения. Мы предпо‑
лагаем, что D < M, числа слов в словаре.
Предположим далее, что погружения слов vw имеют изотропное гауссо‑
во априорное распределение и что латентная тема zt совершает медленное
случайное гауссово блуждание (именно поэтому модель называется RANDWALK). В рамках этой модели можно показать, что Z(zt) приближенно равно
постоянной Z, не зависящей от контекста. Это так называемое свойство
самонормировки логарифмически-линейных моделей [AK15]. Кроме того,
можно показать, что поточечная взаимная информация предсказания мо‑
дели имеет вид:
(20.158)
Таким образом, мы можем обучить модель RAND-WALK, стараясь при‑
равнять предсказанные значения PMI эмпирическим, т. е. минимизировать
функцию:
(20.159)

Tlgm: @it_boooks

840  Понижение размерности
где Xw,w¢ – сколько раз w и w¢ встречаются рядом. Эту целевую функцию можно
рассматривать как взвешенную по частоте потерю сингулярного разложения
(20.138). (О других связях между погружениями слов и сингулярным разло‑
жением см. [LG14].)
Можно использовать дополнительные аппроксимации, чтобы показать,
что отрицательное логарифмическое правдоподобие RAND-WALK эквива‑
лентно целевым функциям вариантов модели word2vec (CBOW и скипграмм‑
ного). Из этого подхода можно также вывести целевую функцию для GloVE.

20.5.6. Контекстуальные погружения слов
Рассмотрим предложения «I was eating an apple»1 и «I bought a new phone
from Apple»2. Слово «apple» имеет разный смысл, но его погружение из числа
обсуждавшихся в разделе 20.5 фиксировано и не может уловить этого раз‑
личия. В разделе 15.7 мы обсуждали контекстуальные погружения, когда
погружение слова является функцией от всех слов в его контексте (обычно
в предложении). Это позволяет значительно улучшить результаты и в на‑
стоящее время является стандартным подходом к представлению данных
естественного языка, а также шагом предобработки, выполняемым перед
переносом обучения (см. раздел 19.2).

20.6. упражнения
Упражнение 20.1 [EM-алгоритм для факторного анализа].
Выведите обновления в EM-алгоритме для модели факторного анализа.
Для простоты можете предположить, что μ = 0 фиксировано.
Упражнение 20.2 [EM-алгоритм для смеси факторных анализаторов*].
Выведите обновления в EM-алгоритме для смеси факторных анализаторов.
Упражнение 20.3 [вывод второй главной компоненты].
a. Пусть
(20.160)
Покажите, что из ¶J/¶z2 = 0 следует, что zi2 = v2⟙xi.
b. Покажите, что значение v2, доставляющее минимум функции
J(v2) = -v2TCv2 + λ2(v2Tv2 - 1) + λ12(v2Tv1 - 0),

(20.161)

равно собственному вектору C, соответствующему второму по вели‑
чину собственному значению. Указание: вспомните, что Cv 1 = λ1v1
и ¶x⟙Ax/¶x = (A + A⟙)x.
1
2

Я ел яблоко. – Прим. перев.
Я купил новый телефон Apple. – Прим. перев.

Tlgm: @it_boooks

Упражнения  841

Упражнение 20.4 [вывод невязки для PCA*].
a. Докажите, что
(20.162)
Указание: сначала рассмотрите случай K = 2. Используйте тот факт, что
vj⟙vj = 1 и vj⟙vk = 0 для k ¹ j. Вспомните также, что zij = xi⟙vj .
b. Теперь покажите, что
(20.163)
Указание: вспомните, что vj⟙Cvj = λjvj⟙vj = λj .
c. Если K = d, то нет никакого усечения, так что Jd = 0. Воспользуйтесь
этим, чтобы показать, что ошибка, связанная только с использованием
K < d членов, имеет вид:
(20.164)
Указание: разбейте сумму ådj=1 λj на две части: åKj=1 λj и ådj=K+1 λj.
Упражнение 20.5 [PCA посредством последовательного понижения порядка].
Пусть v1, v2, …, vk – первые k собственных векторов с наибольшими соб‑
ственными значениями матрицы C = (1/n)X⟙X, т. е. главные базисные век‑
торы. Для них имеет место равенство:
(20.165)
Мы опишем метод последовательного нахождения vj.
Как было показано в основном тексте, v1 является первым главным собствен‑
ным вектором C и для него имеет место равенство Cv1 = λ1v1. Теперь определим
xi как ортогональную проекцию xi на пространство, ортогональное v1:
(20.166)
Определим матрицу пониженного порядка d - 1 X = [x1, …, xn], получа‑
ющуюся в результате удаления из d-мерных данных компоненты, лежащей
в направлении первого главного собственного вектора:
X = (I - v1v1T )T X = (I - v1v1T )X.

(20.167)

a. Пользуясь тем, что X⟙Xv1 = nλ1v1 (и, следовательно, v1⟙X⟙X = nλ1v1⟙)
и v1⟙v1 = 1, покажите, что ковариация матрицы пониженного порядка
равна

Tlgm: @it_boooks

842  Понижение размерности
(20.168)
b. Пусть u – главный собственный вектор C . Объясните, почему u = v2.
(Можете предполагать, что u имеет единичную норму.)
c. Предположим, что имеется простой метод нахождения первого соб‑
ственного вектора и собственного значения положительно определен‑
ной матрицы, который обозначим [λ, u] = f(C). Напишите псевдокод
нахождения первых K главных базисных векторов X, в котором должна
использоваться только функция f и простые арифметические операции
с векторами, но не должны использоваться сингулярное разложение
или функция eig. Указание: это должна быть простая итеративная про‑
цедура, занимающая 2–3 строки. На вход подаются C, K и функция f,
а на выходе должно быть vj и λj для j = 1 … K.
Упражнение 20.6 [члены дисперсии PPCA].
Напомним, что в модели PPCA C = WW⟙ + σ2I. Мы покажем, что эта модель
правильно улавливает дисперсию данных вдоль главных осей и аппроксими‑
рует дисперсию во всех остальных направлениях одним и тем же средним
значением σ2.
Рассмотрим дисперсию прогнозного распределения p(x) вдоль некоторого
направления, заданного единичным вектором v, где v⟙v = 1, которая равна
v⟙Cv.
a. Сначала предположим, что v ортогонален главному подпространству
и, следовательно, v⟙U = 0. Покажите, что v⟙Cv = σ2.
b. Теперь предположим, что v параллелен главному подпространству
и, следовательно, v = ui для некоторого собственного вектора ui. По‑
кажите, что v⟙Cv = (λi - σ2) + σ2 = λi.
Упражнение 20.7 [апостериорный вывод в PPCA*].
Выведите p(zn|xn) для модели PPCA.
Упражнение 20.8 [подстановка в модель ФА*].
Выведите выражение для p(xh|xv, θ) для модели ФА, где x = (xh, xv) разбиение
вектора данных.
Упражнение 20.9 [эффективное вычисление плотности PPCA].
Выведите выражение для p(x|Ŵ, σ2) в модели PPCA, основываясь на под‑
становке в оценки MLE и используя лемму об обращении матрицы.

Глава

Tlgm: @it_boooks

21

Кластеризация

21.1. ВВедение
Кластеризация – широко распространенная форма обучения без учителя.
Есть два основных подхода. В первом случае входом является набор при‑
меров данных 𝒟 = {xn : n = 1 … N}, где xn Î 𝒳, а 𝒳, как правило, совпадает
с ℝD. Во втором случае на вход подается N´N попарных метрик несходства
Dij ³ 0. В обоих случаях цель – отнести похожие примеры к одному и тому
же кластеру.
Как часто бывает при обучении без учителя, оценить качество алгорит‑
ма кластеризации трудно. Если мы пометили какие-то примеры, то можем
воспользоваться сходством (или совпадением) меток как метрикой при ре‑
шении вопроса о том, следует ли относить примеры к одному кластеру или
нет. Если меток нет, но метод основан на порождающей модели данных, то
в качестве метрики можно использовать логарифмическое правдоподобие.
Примеры обоих подходов будут приведены ниже.

21.1.1. Оценивание выхода методов
кластеризации
Проверка кластерных структур – самая трудная и обескураживающая часть
кластерного анализа. Без целенаправленных усилий в этом направлении
кластерный анализ остался бы черной магией, доступной истинным по‑
борникам, обладающим опытом и незаурядным мужеством.
— Джейн и Дьюбс [JD88]

Кластеризация – это способ обучения без учителя, поэтому оценить выход
любого метода проблематично [Kle02; LWG12]. При использовании вероят‑
ностных моделей мы всегда можем оценить правдоподобие данных, но есть
два недостатка: во-первых, так нельзя непосредственно оценить кластери‑
зацию, выявленную моделью, а во-вторых, такой способ неприменим к не‑
вероятностным методам. Поэтому мы обсудим некоторые меры качества, не
основанные на правдоподобии.

Tlgm: @it_boooks

844  Кластеризация
Интуитивно понятно, что цель кластеризации – поместить похожие точ‑
ки в один и тот же кластер, причем так, чтобы непохожие точки оказались
в разных кластерах. Есть несколько способов измерения этих величин; см.,
например, [JD88; KR90]. Однако полезность этих внутренних критериев огра‑
ничена. Альтернативный способ – положиться на какую-то внешнюю форму
данных, с помощью которой можно проверить качество метода. Например,
если с каждым объектом ассоциирована метка, то можно считать, что объ‑
екты с одинаковой меткой похожи. А затем использовать описываемые ниже
метки для количественной оценки качества кластеров. (Если меток нет, но
имеется эталонная кластеризация, то можно вывести метки из нее.)

21.1.1.1. Чистота
Пусть Nij – количество объектов в кластере i, принадлежащих классу j, и пусть
Ni = åCj=1 Nij – общее число объектов в кластере i. Определим pij = Nij /Ni; это
эмпирическое распределение меток классов для кластера i. Определим чистоту кластера как pi maxj pij, а полную чистоту кластеризации как
(21.1)
Так, на рис. 21.1 чистота равна
(21.2)

Рис. 21.1  Три кластера, содержащие помеченные объекты

Чистота принимает значения в диапазоне от 0 (плохая) до 1 (хорошая). Но
мы можем тривиально добиться чистоты 1, поместив каждый объект в от‑
дельный кластер, т. е. эта мера не штрафует за количество кластеров.

21.1.1.2. Индекс Рэнда
Пусть U = {u1, ..., uR} и V = {v1, ..., vC} – два разбиения множества N точек. На‑
пример, U может быть оценочной кластеризацией, а V – эталонной класте‑
ризацией, построенной на основе меток классов. Теперь определим таблицу
сопряженности 2´2, содержащую следующие числа: TP – количество пар,
оказавшихся в одном кластере и в U, и в V (истинно положительные резуль‑
таты); TN – количество пар, оказавшихся в разных кластерах в U и в V (истин‑
но отрицательные результаты); FN – количество пар, оказавшихся в разных
кластерах в U, но в одном кластере в V (ложноотрицательные результаты);
FP – количество пар, оказавшихся в одном кластере в U, но в разных класте‑

Tlgm: @it_boooks

Введение  845

рах в V (ложноположительные результаты). В качестве сводной статистики
часто применяется индекс Рэнда:
(21.3)
Это можно интерпретировать как долю правильных решений о кластери‑
зации. Очевидно, что 0 £ R £ 1.
Например, рассмотрим рис. 21.1. Три кластера содержат соответственно 6,
6 и 5 точек, поэтому количество «положительных» результатов (когда пары
объектов оказываются в одном и том же кластере вне зависимости от метки),
равно
(21.4)
Из них количество истинно положительных результатов равно
(21.5)

где последние два члена взяты из кластера 3: имеется

пар с меткой C и

пар с меткой A. Таким образом, FP = 40 - 20 = 20. Аналогично можно пока‑
зать, что FN = 24 и TN = 72. Следовательно, индекс Рэнда равен (20 + 72)/(20 +
20 + 24 + 72) = 0.68.
Индекс Рэнда достигает нижней границы 0, только если TP = TN = 0,
что бывает редко. Можно определить скорректированный индекс Рэнда
[HA85] следующим образом:
(21.6)
Здесь модель случайности основана на обобщенном гипергеометрическом
распределении, т. е. оба разбиения формируются случайным образом с со‑
блюдением условия, что в каждом присутствует оригинальное число классов
и объектов, а затем вычисляется ожидаемое значение TP + TN. Эту модель
можно использовать для вычисления статистической значимости индекса
Рэнда.
Индекс Рэнда сопоставляет ложноположительным и ложноотрицатель‑
ным результатам одинаковые веса. Можно использовать и другие сводные
статистики для задач принятия альтернативных решений, например F-меру
(раздел 5.1.4).

21.1.1.3. Взаимная информация
Еще один способ измерить качество кластера – вычислить взаимную инфор‑
мацию между двумя потенциальными разбиениями U и V, как предложено

Tlgm: @it_boooks

846  Кластеризация
в работе [VD99]. Для этого обозначим pUV(i, j) = |ui ∩ vj|/N вероятность того,
что случайно выбранный объект принадлежит кластеру ui в U и кластеру vj
в V. Кроме того, обозначим pU(i ) = |ui|/N вероятность того, что случайно вы‑
бранный объект принадлежит кластеру ui в U; аналогично определим pV ( j) =
|vj|/N. Тогда имеем
(21.7)
Эта величина принимает значения от 0 до min{ℍ(U), ℍ(V)}. К сожалению,
максимального значения можно достичь, взяв много маленьких кластеров,
имеющих низкую энтропию. Чтобы компенсировать этот недостаток, можно
использовать нормированную взаимную информацию:
(21.8)
Эта величина заключена между 0 и 1. Ее вариант, скорректированный
с учетом случайности (при определенной модели случайных данных), описан
в работе [VEB09]. Еще один вариант, называемый вариацией информации,
описан в работе [Mei05].

21.2. иерархиЧеская агломератиВная
кластеризация
Распространенной формой кластеризации является иерархическая агломеративная кластеризация (hierarchical agglomerative clustering – HAC).
На вход алгоритма подается матрица различий N´N с элементами Dij ³ 0,
а выходом является древовидная структура, в которой мало различающиеся
группы i и j объединяются в группу следующего уровня.
Например, рассмотрим множество из пяти входных точек на рис. 21.2a,
xn Î ℝ2. Для определения несходства точек будем использовать манхэттенское расстояние:
(21.9)
Начнем с дерева с N листьями, каждый из которых соответствует класте‑
ру, содержащему всего одну точку. Далее вычисляем пару ближайших точек
и объединяем их. Мы видим, что точки (1,3) и (4,5) находятся на расстоянии
1 друг от друга, поэтому они объединяются первыми. Затем мы измеряем
различие между множествами {1, 3}, {4, 5} и {2}, применяя ту же меру (см.
детали ниже), группируем их и повторяем. Получающееся в результате дво‑
ичное дерево называется дендрограммой, оно показано на рис. 21.2b. Об‑

Tlgm: @it_boooks

Иерархическая агломеративная кластеризация  847

резая это дерево на различной высоте, мы можем создать разное количество
вложенных кластеров.

(a)

(b)

Рис. 21.2  (a) Пример кластеризации с одиночной связью
с использованием манхэттенского расстояния. Элементы обеих
пар (1,3) и (4,5) находятся на расстоянии 1 друг от друга, поэтому
они объединяются первыми. (b) Результирующая дендрограмма.
На основе рис 7.5 из работы [Alp04]. Построено программой по
адресу figures.probml.ai/book1/21.2

21.2.1. Алгоритм
Агломеративная кластеризация начинается с образования N групп, каждая
из которых содержит один объект. Затем на каждом шаге две самые похожие
группы объединяются, и так до тех пор, пока не останется одна группа, со‑
держащая все данные (см. псевдокод в алгоритме 11). Поскольку нахождение
двух самых похожих кластеров занимает время O(N 2), а всего шагов в алго‑
ритме O(N), полное время работы составляет O(N 3). Но если использовать
очередь с приоритетами, то это время можно уменьшить до O(N 2 log N) (де‑
тали см., например, в книге [MRS08, глава 17]).
Алгоритм 11. Агломеративная кластеризация
Инициализировать одиночные кластеры: for i ¬ 1 to n do Ci ¬ {i};
;
Инициализировать множество кластеров, доступных для объединения:
S ¬ {1, ..., ng}, repeat
4
Выбрать два самых похожих кластера: (j, k) ¬ argminj,kÎS dj,k;
5
Создать новый кластер Cl ¬ Cj ∪ Ck;
6
Пометить j и k как недоступные: S ¬ S \ {j, k};
7
if Cl ¹ {1, ..., n} then
8
Пометить l как доступный, S ¬ S ∪ {l };
9
foreach i Î S do
10
Обновить матрицу различий d(i, l);
11 until не осталось кластеров, доступных для объединения;
1
2
3

Tlgm: @it_boooks

848  Кластеризация
На самом деле существует три варианта агломеративной кластеризации,
в зависимости от того, как определяется несходство групп объектов. Детали
приведены ниже.

21.2.1.1. Одиночная связь
При кластеризации с одиночной связью, называемой также кластеризацией по ближайшему соседу, расстояние между двумя группами G и H
определяется как расстояние между двумя ближайшими представителями
этих групп:
(21.10)
Смотрите рис. 21.3a.

А

D

В
C
(a)

А

D

В
C
(b)

А

D

В
C
(с)

Рис. 21.3  (a) Одиночная связь. (b) Полная связь. (c) Средняя связь

Дерево, построенное в результате кластеризации с одиночной связью, –
это минимальное остовное дерево данных, в котором все объекты соединены
таким образом, что сумма весов ребер (расстояний) минимальна. Чтобы убе‑
диться в этом, заметим, что при объединении двух кластеров мы соединяем
их ближайших представителей; при этом добавляется ребро между соответ‑
ствующими вершинами и гарантируется, что из всех ребер, соединяющих два
кластера, оно имеет наименьший вес. А после того как два кластера объеди‑
нены, они уже никогда не рассматриваются, поэтому циклов мы не создадим.
Следовательно, для реализации кластеризации с одиночной связью, фак‑
тически нужно время O(N2), тогда как для других вариантов – время O(N 3).

21.2.1.2. Полная связь
При кластеризации с полной связью, называемой также кластеризацией
по самому дальнему соседу, расстояние между двумя группами определя‑
ется как расстояние между двумя самыми удаленными друг от друга пред‑
ставителями:
(21.11)
Смотрите рис. 21.3b.
В случае одиночной связи для того чтобы две группы считались близки‑
ми, требуется лишь, чтобы была близка одна пара объектов, а похожи ли все
остальные, неважно. Поэтому могут быть образованы кластеры, не обла-

Tlgm: @it_boooks

Иерархическая агломеративная кластеризация  849

дающие свойством компактности, которое означает, что все наблюдения
в одной группе должны быть похожи. Именно, если определить диаметр
группы как наибольшее несходство ее членов, dG = maxiÎG, i¢ÎG di,i¢, то можно
видеть, что одиночная связь может порождать кластеры с большим диаме‑
тром. Полная связь – это другая крайность: две группы считаются близкими,
если относительно похожи все наблюдения в их объединении. Такая связь
порождает кластеры с малым диаметром, т. е. компактные (ср. рис. 21.4a и b).

(a)

(b)

(c)

Рис. 21.4  Иерархическая кластеризация данных об экспрессии гена дрожжей. (a) Одиночная связь. (b) Полная связь. (c) Средняя связь. Построено программой по адресу figures.probml.ai/book1/21.4

21.2.1.3. Средняя связь
На практике предпочтительной является кластеризация со средней связью, при которой измеряется среднее расстояние между всеми парами:
(21.12)
где nG и nH – число элементов в группах G и H (см. рис. 21.3c).
Кластеризация со средней связью – компромисс между одиночной и пол‑
ной связью. Она порождает относительно компактные кластеры, распо‑
ложенные достаточно далеко друг от друга (см. рис. 21.4c). Но, поскольку
требуется вычислять среднее расстояний di,i¢, любое изменение масштаба
измерений может отразиться на результате. Напротив, одиночная и полная
связь инварианты относительно монотонных преобразований di,i¢, так как не
изменяют относительный порядок.

21.2.2. Пример
Пусть имеется временной ряд измерений уровня экспрессии для N = 300 ге‑
нов в T = 7 точках. Это значит, что каждый пример является вектором xn Î ℝ7
(см. визуализацию данных на рис. 21.5). Как видим, имеется несколько видов
генов, в том числе такие, для которых уровень экспрессии монотонно возрас‑
тает (в ответ на заданный раздражитель), такие, для которых он монотонно
убывает, и такие, для которых паттерн отклика более сложный.

Tlgm: @it_boooks

850  Кластеризация

(a)

(b)

Рис. 21.5  (a) Данные об экспрессии генов дрожжей, представленные в виде
тепловой карты. (b) Те же данные в виде временных рядов. Построено программой по адресу figures.probml.ai/book1/21.5

Допустим, что для вычисления матрицы попарных различий D Î ℝ300´300
используется евклидово расстояние и применяется иерархическая класте‑
ризация со средней связью. Тогда получается дендрограмма, показанная на
рис. 21.6a. Если обрезать дерево на некоторой высоте, то получится 16 кла‑
стеров, показанных на рис. 21.6b. Временные ряды, отнесенные к каждому
кластеру, действительно похожи.

(a)

(b)

Рис. 21.6  Результаты применения иерархической кластеризации к данным
об экспрессии генов. (a) Строки переставляются в соответствии со схемой иерархической кластеризации (со средней связью), чтобы похожие строки оказались ближе друг к другу. (b) 16 кластеров, образовавшихся в результате разрезания дерева со средней связью на некоторой высоте. Построено программой
по адресу figures.probml.ai/book1/21.6

21.2.3.Расширения
Существует много расширения базового алгоритма HAC. Например, в работе
[Mon+21] представлена лучше масштабируемая версия восходящего алгорит‑

Tlgm: @it_boooks

Кластеризация методом K средних  851

ма, который строит вложенные кластеры параллельно. А в работе [Mon+19]
обсуждается онлайновая версия алгоритма, умеющая кластеризовать данные
по мере поступления, пересматривая по ходу дела ранее принятые решения
о кластеризации (а не просто принимая жадные решения). При некоторых
предположениях можно доказать, что таким образом восстанавливается ис‑
тинная структура данных. Это может быть полезно для кластеризации «упо‑
минаний» о «сущностях» (например, людях или предметах) в потоке тексто‑
вых данных. (Эта задача называется обнаружением сущностей.)

21.3. кластеризация методом K средних
С иерархической агломеративной кластеризацией (раздел 21.2) связано не‑
сколько проблем. Во-первых, она требует времени порядка O(N3) (в случае
метода средней связи), поэтому применять ее к большим наборам данных
затруднительно. Во-вторых, предполагается, что матрица различий уже вы‑
числена, тогда как на практике понятие «сходства» зачастую выражено не‑
четко и подлежит обучению. В-третьих, это всего лишь алгоритм, а не модель,
поэтому трудно оценить, насколько он хорош. То есть не существует опреде‑
ленной целевой функции, подлежащей оптимизации.
В этом разделе мы обсудим алгоритм K средних [Mac67; Llo82], реша‑
ющий эти проблемы. В частности, он работает за время O(N), вычисляет
сходство в терминах евклидова расстояния до центров обученных кластеров
μk Î ℝD и оптимизирует четко определенную функцию стоимости.

21.3.1. Алгоритм

Мы предполагаем, что существует K центров кластеров μk Î ℝD, поэтому
можем кластеризовать данных, отнеся каждую точку xn Î ℝD к ближайшему
центру:
(21.13)
Разумеется, мы не знаем, где находятся центры кластеров, но можем оце‑
нить их, вычислив среднее значение всех отнесенных к ним точек:
(21.14)
Эти шаги повторяются до сходимости алгоритма.
Формально задачу можно рассматривать как нахождение локального ми‑
нимума следующей функции стоимости, называемой искажением:
(21.15)

Tlgm: @it_boooks

852  Кластеризация
где X Î ℝN´D, Z Î [0, 1]N´K, а столбцы матрицы M Î ℝD´K – центры кластеров μk.
Алгоритм K средних оптимизирует эту функцию, применяя чередующуюся
минимизацию. (Это тесно связано с EM-алгоритмом для моделей гауссовых
смесей, описанным в разделе 21.4.1.1.)

21.3.2. Примеры
В этом разделе мы приведем несколько примеров кластеризации методом
K средних.

21.3.2.1. Кластеризация точек на плоскости
На рис. 21.7 показано кластеризация точек на плоскости методом K средних.
Как видим, этот метод порождает диаграмму Вороного. Результирующая
кластеризация чувствительна к выбору начальных центров. И хорошо вид‑
но, что для правой кластеризации качество ниже, а искажение выше. По
умолчанию в sklearn применяется 10 перезапусков со случайно выбранны‑
ми центрами (в сочетании с инициализацией K-means++, описанной в раз‑
деле 21.3.4) и возвращается кластеризация с наименьшим искажением.
(В sklearn искажение называется «инерцией».)

Рис. 21.7  Кластеризация методом K средних на плоскости. Показаны результаты при двух разных инициализациях. На основе рис. 9.5 из работы [Gér19].
Построено программой по адресу figures.probml.ai/book1/21.7

21.3.2.2. Кластеризация временных рядов экспрессии генов
дрожжей
На рис. 21.8 показаны результаты применения метода K средних с K = 16
к матрице временных рядов дрожжей размера 300´7, изображенной на
рис. 21.5. Видно, что «похожие» временные ряды отнесены к одному класте‑
ру. Также видно, что центроид каждого кластера является удовлетворитель‑
ной сводкой всех точек, отнесенных к этому кластеру. Наконец, отметим, что
группа 6 вообще не использовалась, так как к ней не отнесено ни одной точки.
Однако это лишь случайный эффект процесса инициализации, и нет никакой
гарантии, что мы получим ту же кластеризацию или хотя бы то же количество
кластеров, если выполним алгоритм еще раз. (Мы обсудим хорошие способы
инициализации в разделе 21.3.4, а способы выбора K в разделе 21.3.7.)

Tlgm: @it_boooks

Кластеризация методом K средних  853

(a)

(b)

Рис. 21.8  Кластеризация данных об экспрессии генов дрожжей (рис. 21.5)
методом K средних при K = 16. (a) Визуализация всех временных рядов, отнесенных к каждому кластеру. (b) Визуализация 16 центров кластеров, представленных типичным временным рядом. Построено программой по адресу figures.
probml.ai/book1/21.8

21.3.3. Векторное квантование
Допустим, что мы хотим выполнить сжатие с потерей информации для неко‑
торых вещественных векторов xn Î ℝD. Очень простой подход – использовать
векторное квантование (vector quantization – VQ). Основная идея – за‑
менить каждый вещественный вектор xn Î ℝD дискретным символом zn Î
{1, …, K}, равным индексу в кодовой книге, содержащей K прототипов,
μk Î ℝD. Каждый вектор кодируется индексом самого похожего прототипа,
а сходство измеряется в терминах евклидова расстояния:
(21.16)
Мы можем определить функцию стоимости, которая измеряет качество
кодовой книги путем вычисления индуцированной ошибки реконструкции, или искажения:
(21.17)
где decode(k) = μk. Это в точности та функция стоимости, которая миними‑
зируется алгоритмом K средних.
Конечно, можно добиться нулевого искажения, сопоставив один прото‑
тип каждому вектору данных, т. е. положив K = N и μn = xn. Однако при этом
не будет никакого сжатия данных. Именно, потребуется O(NDB) битов, где
N – количество вещественных векторов длины D каждый, а B – количество
битов, необходимых для представления вещественного скаляра (точность
квантованного представления каждого xn).
Можно добиться большего, если обнаружить похожие векторы, создать для
них прототипы, или центроиды, а затем представить данные отклонениями

Tlgm: @it_boooks

854  Кластеризация
от этих прототипов. Тогда потребление памяти снизится до O(N log2 K + KDB)
бит. Член O(N log2 K) присутствует, потому что для каждого из N векторов
необходимо указать, какое из K кодовых слов ему соответствует, а член
O(KDB) – потому что нужно хранить все записи кодовой книги, каждая из
которых является D-мерным вектором. При больших N преобладает первый
член, поэтому коэффициент схемы кодирования (число битов на один объ‑
ект) имеет порядок O(log2 K), что обычно гораздо меньше, чем O(DB).
Одним из приложений векторного квантования является сжатие изображений. Возьмем изображение 200´320 пикселей на рис. 21.9; мы хотим рас‑
сматривать его как множество N = 64 000 скаляров. Если для представления
каждого пикселя используется один байт (яркость полутонового изображе‑
ния от 0 до 255), то B = 8, поэтому понадобится NB = 512 000 бит для пред‑
ставления несжатого изображения. Для представления сжатого изображения
требуется O(N log2 K) битов. Для K = 4 это приблизительно 128 Кб, т. е. коэф‑
фициент сжатия равен 4, но воспринимаемая потеря качества пренебрежимо
мала (см. рис. 21.9b).

(a)

(b)

Рис. 21.9  Изображение, сжатое методом векторного квантования
с кодовой книгой размера K. (a) K = 2. (b) K = 4. Построено программой
по адресу figures.probml.ai/book1/21.9

Большей степени сжатия можно достичь, если моделировать простран‑
ственную корреляцию между пикселями, например кодировать блоки 5´5
(как в JPEG). Объясняется это тем, что невязки (отличия от предсказаний
модели) будут меньше, а для кодирования потребуется меньше битов. Таким
образом, существует глубокая связь между сжатием данных и оценкой плот‑
ности. Дополнительные сведения см. во втором томе этой книги, [Mur22].

21.3.4. Алгоритм K-means++
Алгоритм K средних оптимизирует невыпуклую целевую функцию, поэтому
к его инициализации следует подходить с особой тщательностью. Самый
простой подход – случайным образом выбрать K точек данных и сделать их
начальными значениями μk. Результат можно улучшить, выполнив несколько
перезапусков с различными начальными точками, а затем выбрав лучшее
решение. Но это медленно.

Tlgm: @it_boooks

Кластеризация методом K средних  855

Более перспективный подход – выбирать центры последовательно, стара‑
ясь «покрыть» данные. То есть первая точка выбирается случайно, а каждая
последующая выбирается из оставшихся с вероятностью, пропорциональ‑
ной квадрату расстояния до ближайшего к точке центра кластера. То есть
на t-й итерации мы выбираем xn в качестве следующего центра кластера
с вероятностью
(21.18)
где
(21.19)
– расстояние от x до ближайшего из уже выбранных центроидов. Таким об‑
разом, у точек, далеко отстоящих от центроида, больше шансов быть выбран‑
ными, вследствие чего искажение уменьшается. Этот алгоритм называется
кластеризацией с выбором самой дальней точки (farthest point cluster‑
ing) [Gon85], или K-means++ [AV07; Bah+12; Bac+16; BLK17; LS19a]. Как ни
странно, можно показать, что этот простой трюк гарантирует, что ошибка
реконструкции не более чем в O(log K) раз хуже оптимальной [AV07].

21.3.5. Алгоритм K медоидов
В варианте метода K средних, называемом алгоритмом K медоидов, мы
оцениваем центр каждого кластера μk, выбирая пример xn Î 𝒳, для которого
среднее несходство со всеми остальными примерами минимально; такая
точка называется медоидом. Отметим, что в алгоритме K средних для вы‑
числения центра берутся средние по точкам xn Î ℝD, отнесенным к класте‑
рам. Алгоритм K медоидов может оказаться более робастным к выбросам
(хотя эту проблему можно также решить, используя смеси распределений
Стьюдента, а не гауссовых распределений). Важнее, однако, что алгоритм
K медоидов можно применять к данным, не принадлежащим пространству
ℝD, когда усреднение невозможно корректно определить. Входом для алго‑
ритма K медоидов является матрица попарных расстояний D(n, n¢) размера
N´N, а не матрица признаков размера N´D.
Классический алгоритм нахождения K медоидов называется разбиением
вокруг медоидов (partitioning around medoids – PAM) [KR87]. На каждой
итерации в цикле перебираются все K медоидов. Для каждого медоида m
рассматривается каждая не являющаяся медоидом точка o; m и o меняются
местами, и пересчитывается функция стоимости (сумма расстояний от точек
до их медоидов). Если стоимость уменьшилась, новая конфигурация медо‑
идов сохраняется. Время работы этого алгоритма составляет O(K(N - K)2I),
где I – число итераций
Существует также более простой и быстрый метод итераций Вороного,
описанный в работе [PJ09]. В нем на каждой итерации выполняется два шага,

Tlgm: @it_boooks

856  Кластеризация
как в алгоритме K средних. Сначала для каждого кластера k рассматриваются
все отнесенные к нему точки, Sk = {n : zn = k}, а затем mk присваивается индекс
медоида этого множества. (Для нахождения медоида нужно рассмотреть все
|Sk| точек-кандидатов и выбрать из них ту, для которой сумма расстояний до
всех точек в Sk минимальна.) Затем каждая точка n относится к ближайшему
к ней медоиду, zn = argmink D(n, k). Псевдокод приведен в алгоритме 12. Вре‑
мя работы этого алгоритма составляет O(NKI), что сопоставимо с временем
работы алгоритма K средних и гораздо быстрее, чем в случае PAM.
Алгоритм 12. Алгоритм K медоидов
1
2
3
4
5

Инициализировать m1:K — случайное подмножество {1, …, N} размера K;
repeat
zn = argmink d(n, mk) для n = 1 : N;
mk ¬ argminn:zn=kån¢:zn¢ =k d(n, n¢) для k = 1 : K;
until не сошелся;

21.3.6. Способы ускорения
Кластеризация методом K средних занимает время O(NKI), где I – число ите‑
раций, но величину постоянного множителя можно уменьшить с помощью
различных приемов. Например, в работе [Elk03] показано, как воспользо‑
ваться неравенством треугольника, чтобы отслеживать нижнюю и верхнюю
границы расстояний между входными данными и центроидами; это может
быть полезно для исключения лишних вычислений. Можно также исполь‑
зовать аппроксимацию на мини-пакете, как описано в работе [Scu10]. Это
может оказаться значительно быстрее, но иногда приводит к небольшому
увеличению потери (см. рис. 21.10).

Рис. 21.10  Кластеризация двумерных данных на рис. 21.7 методом K средних на пакете и на мини-пакете. Слева: зависимость искажения от K. Справа:
зависимость времени обучения от K. На основе рис. 9.6 из работы [Gér19]. Построено программой по адресу figures.probml.ai/book1/21.10

Tlgm: @it_boooks

Кластеризация методом K средних  857

21.3.7. Выбор числа кластеров K
В этом разделе мы обсудим, как выбирать число кластеров K в алгоритме
K средних и родственных ему методах.

21.3.7.1. Минимизация искажения
Исходя из нашего опыта обучения с учителем, естественно было бы выбрать
для K значение, доставляющее минимум ошибке реконструкции на кон‑
трольном наборе:
(21.20)
где x̂ n = decode(encode(xn)) – реконструкция xn.
К сожалению, эта идея не работает. Действительно, как показано на
рис. 21.11a, искажение монотонно убывает при росте K. Чтобы понять, по‑
чему это так, заметим, что модель K средних – это модель с вырожденной
плотностью, состоящая из K пиков в центрах μk. С ростом K мы покрываем
все большую часть пространства входов. Поэтому для любой входной точки
повышается вероятность найти близкий прототип, точно представляющий
ее, а значит, уменьшается ошибка реконструкции. Таким образом, в отличие
от обучения с учителем, мы не можем использовать ошибку реконструкции
на контрольном наборе как способ выбора наилучшей модели, обученной
без учителя. (Это замечание относится также к выбору размерности в методе
PCA, см. раздел 20.1.4.)

(a)

(b)

(c)

Рис. 21.11  Зависимость качества метода K средних и модели гауссовой смеси от K для двумерного набора данных на рис. 21.7. (a) Зависимость искажения
на контрольном наборе от K. Построено программой по адресу figures.probml.
ai/book1/21.11. (b) Зависимость байесовского информационного критерия от
K. Построено программой по адресу figures.probml.ai/book1/21.11. (c) Зависимость силуэтной оценки от K. Построено программой по адресу figures.probml.
ai/book1/21.11

21.3.7.2. Максимизация маргинального правдоподобия
А вот что действительно работает, так это использование подходящей веро‑
ятностной модели, например гауссовых смесей (GMM), который мы опишем
в разделе 21.4.1. Для выбора модели можно использовать логарифмическое

Tlgm: @it_boooks

858  Кластеризация
маргинальное правдоподобие (log marginal likelihood – LML) данных.
Мы можем аппроксимировать LML, применяя оценку BIC, как было опи‑
сано в разделе 5.2.5.1. Из формулы (5.59) имеем
(21.21)
где DK – количество параметров в модели с K кластерами, а θ̂ K – оценка мак‑
симального правдоподобия. На рис. 21.11b видно, что имеет место типичная
U-образная кривая, когда величина штрафа сначала убывает, а потом воз‑
растает.
Это работает, потому что с каждым кластером ассоциирован не просто
вырожденный пик, а гауссово распределение, заполняющее некоторый объ‑
ем пространства входов. После того как кластеров оказывается достаточно
для покрытия истинных мод распределения, вступает в игру байесовская
бритва Оккама (раздел 5.2.3) и начинает штрафовать модель за излишнюю
сложность.
Дальнейшее обсуждение байесовского выбора модели для смесовых мо‑
делей см. в разделе 21.4.1.3.

21.3.7.3. Силуэтный коэффициент
В этом разделе мы опишем распространенный эвристический метод выбора
числа кластеров в методе K средних. Он предназначен для работы со сфери‑
ческими (невытянутыми) кластерами. Сначала определим силуэтный коэффициент примера i как sc(i) = (bi - ai) = max(ai, bi), где ai – среднее расстояние
до других примеров в кластере ki = argmink ||μk - xi||, а bi – среднее расстояние
до других примеров во втором по дальности кластере, k¢I = argmink¹ki ||μk - xi||.
Таким образом, ai – мера компактности i-го кластера, а bi – мера расстояния
между кластерами. Силуэтный коэффициент изменяется от -1 до +1. Значе‑
ние +1 означает, что пример близок ко всем членам своего кластера и далек
от остальных кластеров, значение 0 – что пример близок к границе кластера,
а значение -1 – что пример, возможно, попал не в тот кластер. Определим
силуэтную оценку кластеризации K как средний силуэтный коэффициент
по всем примерам.
На рис. 21.11a показана зависимость искажения от K для данных на
рис. 21.7. Как было объяснено выше, искажение монотонно убывает при росте K. При K = 3 имеет место небольшой излом, но его трудно обнаружить.
На рис. 21.11c показана зависимость силуэтной оценки от K. Тут при K = 3
наблюдается куда более заметный пик, но при K = 7 ситуация почти вы‑
равнивается. На рис. 21.12 сравниваются некоторые из этих кластеризаций.
Поучительно взглянуть на отдельные силуэтные коэффициенты, а не толь‑
ко на усредненную оценку. Их можно представить на силуэтной диаграмме,
показанной на рис. 21.13, где цветные области соответствуют разным класте‑
рам. Вертикальная прямая показывает средний коэффициент. Для кластеров
с большим количеством точек слева от этой прямой качество, вероятно, низ‑
кое. Силуэтную диаграмму можно также использовать для изучения размера
кластеров, даже если данные не двумерные.

Tlgm: @it_boooks

Кластеризация методом K средних  859

Рис. 21.12  Диаграммы Вороного метода K средних при различных K для
двумерного набора данных на рис. 21.7. Построено программой по адресу figures.probml.ai/book1/21.12

Рис. 21.13  Силуэтные диаграммы метода K средних при разных K для двумерного набора данных на рис. 21.7. Построено программой по адресу figures.
probml.ai/book1/21.13

Tlgm: @it_boooks

860  Кластеризация

21.3.7.4. Инкрементное увеличение количества компонент
смеси
Альтернативой поиску наилучшего значения K является инкрементный
«рост» GMM. Можно начать с небольшого K, а после каждого раунда обуче‑
ния попробовать разбить кластер с наибольшим весом смеси на два, выбрав
в качестве новых центроидов случайные возмущения оригинального цен‑
троида, а в качестве новых оценок – уменьшенные вдвое старые оценки. Если
для нового кластера оценка слишком мала или дисперсия слишком узкая,
то он удаляется. Так продолжается, пока не будет получено желаемое число
кластеров. Детали см. в работе [FJ02].

21.3.7.5. Методы разреженного оценивания
Еще один подход – выбрать большое значение K, а затем использовать какоенибудь поощряющее разреженность априорное распределение или метод
вывода, чтобы исключить ненужные компоненты смеси, например, вариа‑
ционный байесовский вывод. Дополнительные сведения см. во втором томе
этой книги, [Mur22].

21.4. кластеризация с помощью смесоВых
моделей
Мы видели, что алгоритм K средних можно использовать для кластеризации
векторов данных в ℝD. Однако этот метод предполагает, что все кластеры
имеют одинаковую сферическую форму, а это слишком ограничительное
предположение. Кроме того, в методе K средних предполагается, что все
кластеры можно описать гауссовыми распределениями в пространстве вхо‑
дов, поэтому к дискретным данным он неприменим. Смесовые модели (раз‑
дел 3.5) позволяют преодолеть обе эти проблемы.

21.4.1. Смеси гауссовых распределений
Напомним (см. раздел 3.5.1), что модель гауссовой смеси (GMM) имеет вид:
(21.22)
Если нам известны параметры модели θ = (π, {μk, Σk}), то можно восполь‑
зоваться формулой Байеса для вычисления ответственности (апостериорной
вероятности принадлежности) кластера k за точку xn:
(21.23)

Tlgm: @it_boooks

Кластеризация с помощью смесовых моделей  861

Зная ответственности, мы можем вычислить наиболее вероятное назначе‑
ние кластера следующим образом:
(21.24)
Это называется жесткой кластеризацией.

21.4.1.1. Метод K средних – частный случай EM-алгоритма
Мы можем оценить параметры GMM, применив EM-алгоритм (раздел 8.7.3).
Оказывается, что алгоритм K средних – это частный случай этого алгоритма,
в котором делается две аппроксимации: фиксируется Σk = I и πk = 1/K для
всех кластеров (так что нужно лишь оценить средние μk), а E-шаг аппрокси‑
мируется путем замены мягких ответственностей жесткими назначениями
кластеров, т. е. мы вычисляем z*n = argmaxk rnk и полагаем rnk » 𝕀(k = z*n) вместо
использования мягких ответственностей rnk = p(zn = k|xn, θ). При такой ап‑
проксимации задача нахождения взвешенной MLE в формуле (8.165) M-шага
сводится к формуле (21.14), т. е. мы возвращаемся к методу K средних.
Однако предположение о том, что все кластеры имеют одинаковую сфери‑
ческую форму, чрезмерно ограничительно. Например, на рис. 21.14 показана
маргинальная плотность и кластеризация, получающаяся при различных фор‑
мах ковариационной матрицы для двумерных данных. Как видим, для моде‑
лирования этого конкретного набора данных необходимо, чтобы модель улав‑
ливала внедиагональную ковариацию для некоторых кластеров (верхний ряд).

21.4.1.2. Неидентифицируемость и переключение метки
Заметим, что мы можем переставлять метки в смесовой модели, не изменяя
правдоподобия. Это называется проблемой переключения метки и явля‑
ется примером неидентифицируемости параметров. Это может приводить
к проблемам, если мы хотим выполнить апостериорный вывод параметров
(а не просто вычислить оценку MLE или MAP). Например, предположим, что
требуется аппроксимировать моделью GMM с K = 2 компонентами данные
на рис. 21.15, используя гамильтонов метод Монте-Карло (HMC). Апостери‑
орное распределение средних, p(μ1, μ2|𝒟), показано на рис. 21.16a. Мы видим,
что апостериорное маргинальное распределение для каждой компоненты,
p(μk|𝒟), бимодально. Это отражает тот факт, что существует два одинаково
хороших объяснения данных: либо μ1 » 47 и μ2 » 57, либо наоборот.
Чтобы нарушить эту симметрию, мы можем наложить ограничение порядка на центры: μ1 < μ2. Это можно сделать, прибавив штраф или потенциал
к целевой функции, если ограничение нарушено. Точнее, логарифмическое
совместное распределение со штрафом принимает вид:
ℓ¢(θ) = log p(𝒟|θ) + log p(θ) + ϕ(μ),

(21.25)

где

(21.26)

Tlgm: @it_boooks

862  Кластеризация

(a)

(b)

(с)

(d)

(e)

(f)

(g)

(h)

Рис. 21.14  Аппроксимация двумерных данных с помощью GMM с K = 5 компонентами. Левый столбец: маргинальное распределение p(x). Правый столбец: визуализация каждой смеси распределений и жесткое отнесение точек к наиболее вероятным
кластерам. (a–b) Полная ковариационная матрица. (c–d) Связанная полная ковариационная матрица. (e–f) Диагональная ковариационная матрица. (g–h) Сферическая
ковариационная матрица. Цветовое кодирование выбрано произвольно. Построено
программой по адресу figures.probml.ai/book1/21.14

Tlgm: @it_boooks

Кластеризация с помощью смесовых моделей  863

Это дает желаемый эффект, как показано на рис. 21.16b.

Рис. 21.15  Одномерные данные с наложенной
оценкой плотности ядра. На основе рис. 6.2 из работы [Mar18]. Построено программой по адресу
figures.probml.ai/book1/21.15

(a)

(b)

Рис. 21.16  Проблема переключения метки при выполнении апостериорного вывода параметров GMM. Приведена оценка KDE апостериорного маргинального распределения, вычисленная по 1000 примерам из 4 цепочек HMC.
(a) Модель без ограничений. (b) Модель с ограничениями, добавлен штраф, обеспечивающий выполнение условия μ0 < μ1. На основе рис. 6.6–6.7 из работы
[Mar18]. Построено программой по адресу figures.probml.ai/book1/21.16

Более общий подход – применить к параметрам преобразование, гаран‑
тирующее идентифицируемость. Именно, мы производим выборку пара‑
метров θ из вспомогательного распределения, а затем применяем к ним
обратимое преобразование θ¢ = f(θ), перед тем как вычислять логарифм со‑
вместного распределения, log p(𝒟, θ¢). Чтобы учесть изменение переменных
(раздел 2.8.3), мы прибавляем логарифм определителя якобиана. В случае
одномерного упорядочивающего преобразования, которое просто сортирует
свои входы, определитель якобиана равен 1, поэтому его логарифм обраща‑
ется в 0.
К сожалению, этот подход не масштабируется на задачи размерности боль‑
ше 1, потому что не существует очевидного способа ввести ограничение
порядка на центры μk.

Tlgm: @it_boooks

864  Кластеризация

21.4.1.3. Байесовский выбор модели
Располагая надежным способом обеспечить идентифицируемость, мы мо‑
жем воспользоваться байесовским выбором модели из раздела 5.2.2 для вы‑
бора числа кластеров K. На рис. 21.17 показаны результаты аппроксимации
данных на рис. 21.15 моделью GMM с K = 3–6 компонентами. Мы применяем
упорядочивающее преобразование к средним и выполняем вывод с приме‑
нением HMC. Результирующая модель GMM сравнивается с оценкой плот‑
ности ядра (раздел 16.3), которая часто приводит к чрезмерному сглажива‑
нию данных. Мы видим явные признаки двух горбов, соответствующих двум
разным подмножествам генеральной совокупности.
Эти модели можно сравнить количественно, вычислив оценки их WAIC
(widely applicable information criterion – широко применимый информаци‑
онный критерий) – аппроксимации логарифма маргинального правдопо‑
добия (детали см. в работах [Wat10; Wat13; VGG17]). Результаты показаны
на рис. 21.18. (Такой вид визуализации был предложен в работе [McE20,
стр. 228].) Мы видим, что для модели с K = 6 оценка значительно выше, чем
для остальных моделей, хотя следующая по качеству модель с K = 5 нена‑
много отстает. Это согласуется с графиком на рис. 21.17.

Рис. 21.17  Аппроксимация данных на рис. 21.15 моделями GMM с разным
числом кластеров. Сплошная черная линия – аппроксимация ядерной оценки
плотности. Сплошная синяя линия – апостериорное среднее; размытые голубые линии – выборка из апостериорного распределения. Пунктирные линии
показывают отдельные компоненты гауссовой смеси, вычисленные путем подстановки их апостериорных средних. На основе рис. 6.8 из работы [Mar18]. Построено программой по адресу figures.probml.ai/book1/21.17

Tlgm: @it_boooks

Спектральная кластеризация  865

Рис. 21.18  Оценки WAIC для различных моделей GMM. Белый кружочек
обозначает оценку WAIC апостериорного среднего для каждой модели, а черные прямые – стандартную ошибку среднего. Черный кружочек – внутривыборочное отклонение каждой модели, т. е. логарифмическое правдоподобие без
штрафа. Пунктирная вертикальная прямая соответствует максимальному значению WAIC. Серым треугольником обозначена разность между оценкой WAIC
для этой модели и для лучшей модели. На основе рис. 6.10 из работы [Mar18].
Построено программой по адресу figures.probml.ai/book1/21.18

21.4.2. Смеси распределений Бернулли
Как было сказано в разделе 3.5.2, мы можем использовать смеси распреде‑
лений Бернулли для кластеризации бинарных данных. Модель имеет вид:
(21.27)
Здесь μdk – вероятность, что бит d поднят в кластере k. Эту модель можно
обучить с помощью EM-алгоритма, СГС, метода Монте-Карло по схеме мар‑
ковских цепей и т. д., см. пример на рис. 3.13, где кластеризации подвергнуты
некоторые бинаризованные цифры из набора MNIST.

21.5. спектральная кластеризация*
В этом разделе мы обсудим подход к кластеризации, основанный на анализе
собственных значений матрицы попарных различий. В нем собственные век‑
торы используются для нахождения векторов признаков для каждого при‑
мера, после чего эти векторы кластеризуются, например методом K сред‑
них (раздел 21.3). Этот подход называется спектральной кластеризацией
[SM00; Lux07].

Tlgm: @it_boooks

866  Кластеризация

21.5.1. Нормализованные разрезы
Начнем с создания взвешенного неориентированного графа W, вершинами
которого являются примеры данных, а вес ребра i - j определяет сходство.
Обычно вершина соединяется только с самыми похожими на нее соседями –
с целью сделать граф разреженным и ускорить вычисления.
Наша цель – найти K кластеров, содержащих похожие точки. То есть мы хо‑
тим найти такое разбиение графа на непересекающиеся множества вершин
S1, …, SK, которое минимизирует некоторую функцию стоимости.
Первая попытка найти такую функцию заключается в том, чтобы вычис‑
лить суммарный вес ребер, соединяющих вершины внутри каждого кластера
с вершинами вне него:
(21.28)


где W(A, B) åiÎA,jÎB wij и S k = V \ Sk – дополнение Sk, где V = {1, …, K}.
К сожалению, оптимальное решение этой задачи часто сводится к отще‑
плению одной вершины от всех остальных, поскольку так достигается мини‑
мальный вес разреза. Чтобы предотвратить это, мы можем поделить разрез
на размер множества, получив в результате целевую функцию, называемую
нормализованным разрезом:
(21.29)
где vol(A) åiÎA di – полный вес множества A, а di = åNj=1 wij – взвешенная
степень вершины i. Граф при этом разбивается на K кластеров таких, что
вершины внутри каждого кластера похожи друг на друга и непохожи на вер‑
шины в других кластерах.
Задачу о нормализованном разрезе можно сформулировать как поиск би‑
нарных векторов ci Î {0, 1}N, доставляющих минимум приведенной выше
целевой функции, где cik = 1 тогда и только тогда, когда точка i принадлежит
кластеру k. К сожалению, эта задача NP-трудная [WW93]. Ниже мы обсудим
ее ослабленную непрерывную постановку на основе собственных векторов,
для которой найти решение проще.

21.5.2. Собственные векторы лапласиана графа
кодируют кластеризацию
В разделе 20.4.9.2 мы обсуждали лапласиан графа, определенный как L D W, где W – симметричная матрица весов графа, а D = diag(di) – диагональ‑
ная матрица, содержащая взвешенные степени вершин, di = åNj=1 wij. Чтобы
понять, почему L может быть полезен для кластеризации графа, приведем
следующий результат.

Tlgm: @it_boooks

Спектральная кластеризация  867

Теорема 21.5.1. Множество собственных векторов матрицы L с собственным
значением 0 натянуто на индикаторные векторы 1S1, …, 1SK , где Sk - K компонент связности графа.
Доказательство. Начнем со случая K = 1. Если f – собственный вектор
с собственным значением 0, то 0 = åij wij(fi - fj)2. Если две вершины соедине‑
ны ребром, так что wij > 0, то должно быть fi = fj. Поэтому f постоянный для
всех вершин, соединенных путем в графе. Теперь предположим, что K > 1.
В этом случае L будет блочно-диагональной. Рассуждение, аналогичное при‑
веденному выше, показывает, что мы будем иметь K индикаторных функций,
которые «выбирают» компоненты связности.

Это приводит к следующему алгоритму кластеризации. Вычислим соб‑
ственные векторы и собственные значения L, и пусть U – матрица разме‑
ра N´K, столбцами которой являются K собственных векторов с наимень‑
шими собственными значениями. (Быстрые методы вычисления «нижних»
собственных векторов обсуждаются в работе [YHJ09]). Обозначим ui Î ℝK
i-ю строку U. Так как векторы ui кусочно-постоянны, мы можем применить
к ним кластеризацию методом K средних (раздел 21.3) и найти компоненты
связности. (Заметим, что векторы ui – те же самые, что получаются при вы‑
числении лапласовых собственных отображений в разделе 20.4.9.)
В реальных данных может не быть такой строго блочной структуры, но,
пользуясь результатами из теории возмущений, можно показать, что соб‑
ственные векторы «возмущенного» лапласиана близки к этим идеальным
индикаторным функциям [NJW01].
На практике важно нормировать лапласиан графа, чтобы учесть тот факт,
что некоторые вершины имеют больше связей, чем остальные. Сделать это
можно (следуя предложению из работы [NJW01]), создав симметричную ма‑
трицу:
Lsym

D-½LD-½ = I - D-½WD-½.

(21.30)

Теперь собственное подпространство, соответствующее собственному зна‑
чению 0, натянуто на D½1SK. Это приводит к следующему алгоритму: найти
K собственных векторов Lsym с наименьшими собственными значениями,
собрать из них матрицу U, нормировать каждую строку на единичную норму, вычислив

, и таким образом получить матрицу T. Затем

кластеризовать строки T методом K средних, после чего вывести разбиение
исходных точек.

21.5.3. Пример
На рис. 21.19 показан этот метод в действии. На рис. 21.19a мы видим, что
метод K средних плохо справляется с кластеризацией из-за неявного пред‑
положения о том, что каждый кластер описывается сферическим гауссовым
распределением. Затем мы попробовали применить к тем же данным спек‑
тральную кластеризацию. Мы вычислили плотную матрицу сходства W, вос‑

Tlgm: @it_boooks

868  Кластеризация
пользовавшись гауссовым ядром,

Затем вычислили

первые два собственных вектора нормированного лапласиана Lsym. После
этого произвели кластеризацию методом K средних с K = 2; результаты по‑
казаны на рис. 21.19b.

(a)

(b)

Рис. 21.19  Результаты кластеризации данных. (a) Методом K средних.
(b) Методом спектральной кластеризации. Построено программой по адресу
figures.probml.ai/book1/21.19

21.5.4. Связь с другими методами
Спектральная кластеризация тесно связана с несколькими другими метода‑
ми обучения без учителя; некоторые из этих связей мы обсудим ниже.

21.5.4.1. Связь с kPCA
Спектральная кластеризация тесно связана с ядерным методом PCA (раз‑
дел 20.4.6). Именно, в kPCA используются наибольшие собственные векторы
W, что эквивалентно наименьшим собственным векторам I - W. Это похоже
на описанный выше метод, в котором вычисляются наименьшие собствен‑
ные векторы L = D - W. Детали см. в работе [Ben+04a]. На практике спек‑
тральная кластеризация обычно дает лучшие результаты, чем kPCA.

21.5.4.2. Связь с анализом случайного блуждания
На практике можно улучшить результаты, вычислив собственные векторы
нормированного лапласиана графа. Один из способов нормировки, исполь‑
зуемый в работах [SM00; Mei01], заключается в том, чтобы определить
Lrw

D-1L = I - D-1W.

(21.31)

Tlgm: @it_boooks

Бикластеризация  869

Можно показать, что для Lrw, собственное подпространство, соответствую‑
щее собственному значению 0, тоже натянуто на индикаторные векторы 1SK
[Lux07], поэтому мы можем произвести кластеризацию непосредственно по
K наименьшим собственным векторам U.
Существует интересная связь между этим подходом и случайными блуж‑
даниями в графе. Сначала отметим, что P = D-1W = I - Lrw – стохастическая
матрица, а pij = wij /di можно интерпретировать как вероятность перехода
из i в j. Если граф связный и не двудольный, то он обладает единственным
стационарным распределением π = (π1, …, πN), где πi = di /vol(V ), а vol(V ) =
åi di – сумма степеней всех вершин. Можно также показать, что для разбие‑
ния на две части






Ncut(S, S ) = p(S|S ) + p(S|S ).

(21.32)

Это означает, что мы ищем такой разрез, для которого случайное блуж‑
дание чаще совершает переходы на похожие вершины и редко переходы из

S в S или обратно. Это анализ можно обобщить на случай K > 2; детали см.
в работе [Mei01].

21.6. бикластеризация*
Иногда имеется матрица данных 𝒳 Î ℝN´D, и мы хотим кластеризовать стро‑
ки и столбцы; это называется бикластеризацией, или совместной кластеризацией. Она широко используется в биоинформатике, где строки часто
представляют гены, а столбцы – условия. Также она находит применения
в коллаборативной фильтрации, где строки представляют пользователей,
а столбцы – фильмы.
Были предложены различные ситуативные методы бикластеризации; см.
обзор [MO04]. В разделе 21.6.1 мы представим простую вероятностную по‑
рождающую модель, которая сопоставляет идентификатор латентного кластера каждой строке и идентификатор другого латентного кластера каждому
столбцу. В разделе 21.6.2 мы обобщим ее на случай, когда каждая строка
может принадлежать нескольким кластерам в зависимости от того, какие
группы признаков (столбцов) используются для определения различных
групп объектов (строк).

21.6.1. Базовая бикластеризация
В этом разделе описана простая вероятностная порождающая модель бикла‑
стеризации, основанная на работе [Kem+06] (см. также родственный подход
в работе [SMM03]). Идея заключается в том, чтобы ассоциировать с каждой
строкой и с каждым столбцом латентный индикатор ui Î {1, …, Nu}, vj Î {1, …,
Nv}, где Nu – число кластеров строк, а Nv – число кластеров столбцов. Мы ис‑
пользуем следующую порождающую модель:

Tlgm: @it_boooks

870  Кластеризация
(21.33)
(21.34)

(21.35)
где θa,b – параметры кластера строк a и кластера столбцов b.
На рис. 21.20 показан простой пример. Данные имеют вид Xij = 1 тогда
и только тогда, когда животное i имеет признак j, где i = 1 … 50, j = 1 … 85. Сре‑
ди животных имеются киты, медведи, лошади и т. д. Признаками являются
свойства среды обитания (джунгли, дерево, прибрежная линия), анатомиче‑
ские свойства (имеет зубы, четвероногое), поведенческие свойства (плавает,
питается мясом) и т. д. Метод выявил 12 кластеров животных и 33 кластера
признаков. (В работе [Kem+06] для вывода числа кластеров используется
байесовский непараметрический метод). Например, кластер O2 имеет вид
{ антилопа, лошадь, жираф, зебра, олень } и характеризуется кластерами
признаков F2 = { копыта, длинная шея, рога } и F6 = { ходит, четвероногое,
наземное }, тогда как кластер O4 имеет вид { гиппопотам, слон, носорог }
и характеризуется кластерами признаков F4 { приземистое тело, медленно
двигается, неактивно } и F6.

Рис. 21.20  Бикластеризация. Показаны 5 из 12 кластеров организмов и 6 из
33 кластеров признаков. Показана также исходная матрица данных, разбитая
на части в соответствии с выявленными кластерами. На основе рис. 3 из работы
[Kem+06]. Печатается с разрешения Чарльза Кемпа

21.6.2. Модели вложенного разбиения (Crosscat)
Проблема базовой бикластеризации (раздел 21.6.1) состоит в том, что каж‑
дый объект (строка) может принадлежать только одному кластеру. Интуитив‑
но понятно, что у объекта может быть несколько ролей, так что его можно
отнести к разным кластерам в зависимости от того, какое подмножество
признаков используется. Например, в наборе данных о животных мы ино‑
гда хотим группировать их на основе анатомических признаков (например,

Tlgm: @it_boooks

Бикластеризация  871

млекопитающие теплокровные, а рептилии нет), а иногда на основе пове‑
денческих признаков (например, хищник или добыча).
Далее мы опишем модель, способную уловить это явление. Проиллюстри‑
руем метод на примере. Пусть имеется матрица 6´6, содержащая Nu = 2 кластеров строк и Nv = 3 кластеров столбцов. Предположим далее, что латентные
группировки столбцов таковы: v = [1, 1, 2, 3, 3, 3]. Это означает, что столбцы 1
и 2 входят в группу 1, столбец 3 в группу 2, а столбцы 4–6 в группу 3. Для
столбцов, отнесенных к кластеру 1, строки кластеризуются следующим об‑
разом: u:,1 = [1, 1, 1, 2, 2, 2]. Для столбцов, отнесенных к кластеру 2, строки
кластеризуются следующим образом: u:,2 = [1, 1, 2, 2, 2, 2], а для столбцов,
отнесенных к кластеру 2, строки кластеризуются следующим образом: u:,3 =
[1, 1, 1, 1, 1, 2]. Получающееся разбиение показано на рис. 21.21b. Мы видим,
что кластеризация строк зависит от того, какая группа столбцов нам инте‑
ресна в данный момент.

(а)

(b)

Рис. 21.21  (a) Пример бикластеризации. Каждая строка и каждый столбец отнесены к единственному кластеру. (b) Пример мультикластеризации с использованием модели вложенного разбиения. Строки могут принадлежать разным кластерам
в зависимости от того, какое подмножество признаков столбцов нам интересно

Формально модель можно определить следующим образом:
(21.36)
(21.37)

(21.38)

(21.39)
где θk,l – параметры совместного кластера k Î {1, …, Nu}, l Î {1, …, Nv}.
Эта модель была независимо предложена в работах [Sha+06; Man+16], где
называется crosscat (от cross-categorization – перекрестная категоризация),
в работах [Gua+10; CFD10], где названа мультикластеризацией (multi-clust),
и в работе [RG11], где названа вложенным разбиением (nested partitioning).

Tlgm: @it_boooks

872  Кластеризация
Во всех этих статьях авторы предлагают использовать процессы Дирихле,
чтобы не оценивать число кластеров. Здесь мы предполагаем, что число кла‑
стеров известно и для простоты обозначений показываем параметры явно.
На рис. 21.22 приведены результаты применения модели к бинарным дан‑
ным, содержащим 22 животных и 106 признаков. Показано (приближенное)
разбиение MAP. Первая группа столбцов содержит таксономические призна‑
ки, например: «имеет кости», «теплокровное», «откладывает яйца» и т. д. По
ним животные разбиваются на птиц, рептилий и амфибий, млекопитающих
и беспозвоночных. Вторая группа столбцов содержит признаки, трактуемые
как шум и не имеющие очевидной структуры (кроме единственной строки
с меткой «лягушка»). Третья группа столбцов содержит экологические при‑
знаки: «опасное», «плотоядное», «живет в воде» и т. д. По ним животные раз‑
биваются на добычу, наземных хищников, морских хищников и воздушных
хищников. Таким образом, каждое животное (строка) может принадлежать
разным кластерам в зависимости от того, какая группа признаков рассма‑
тривается.

Обитает в озерах
Амфибия
Грызун
Высокое
Рыба
Покрыто слизью
Имеет рога
Имеет копыта
Из рода кошачьих
Пычит
Имеет плавники
Имеет перепончатые лапы
Ест орехи
Гладкое
Живет на дерьевьях
Большое
Живет в холодном климате

Имеет кости
Откладывает яйца
Теплокровное
Млекопитающее
Пронзительно кричит
Имеет клюв
Имеет язык
Зеленое
Имеет спинной мозг
Является ящерицей
Имеет антенны
Имеет ласты
Имеет лапы
Имеет большой мозг
Имеет хвост
Покрыто мехом
Питается мышами
Питается грызунами
Имеет морду
Коричневое
Издает громкие звуки
Имеет зубы
Имеет лапы
Умное
Перемещается в группе

Лягушка

Леопард
Аллигатор
Питон
Тюлень
Дельфин
Лягушка
Медуза
Осьминог
Пингвин
Вьюрок
Чайка
Сова; Орел
Стрекоза
Летучая мышь
Кузнечик
Муравей
Пчела
Овца
Обезьяна
Игуана
Страус
Свирепое
Опасное
Плотоядное
Хищное
Живет в воде
Летает
Длинное
Питается листьями
Питается животными
Живет в траве
Питается рыбой
Живет в жарком климате

Леопард
Овца
Тюлень
Дельфин
Обезьяна
Летучая мышь
Аллигатор
Игуана
Лягушка
Питон
Вьюрок
Страус
Чайка
Сова
Пингвин
Орел
Кузнечик
Муравей
Пчела
Медуза
Осьминог
Стрекоза

Рис. 21.22  Оценка MAP, порожденная моделью crosscat применительно
к матрице бинарной категоризации животных (строки) по признакам (столбцы).
Детали см. в тексте. На основе рис. 7 из работы [Sha+06]. Печатается с разрешения Викаша Мансикха

Глава

22

Tlgm: @it_boooks

Рекомендательные
системы
Рекомендательные системы предназначены для рекомендации чего-то
(фильмов, книг, рекламных объявлений) пользователям на основе инфор‑
мации о прошлых просмотрах или потребительском поведении (например,
каким фильмам они ставили высокие или низкие оценки, по каким объяв‑
лениям щелкали и т. п.), а также факультативной «побочной информации»,
например демографических данных или данных о собственных свойствах
предмета (названии, жанре или цене). Подобные системы широко исполь‑
зуются различными интернет-компаниями, в том числе Facebook, Amazon,
Netflix, Google и т. д. В этой главе мы дадим краткий обзор темы. Дополни‑
тельные сведения можно найти, например, в работах [DKK12; Pat12; Yan+14;
AC16; Agg16; Zha+19b].

22.1. яВная обратная сВязь
В этом разделе мы рассмотрим простейшую постановку, когдапользователь
предоставляет системе явную обратную связь в виде рейтинга, например
+1 или -1 (нравится / не нравится) либо оценки от 1 до 5. Обозначим Yui Î ℝ
оценку, поставленную пользователем u предмету i. Мы можем представить
рейтинги матрицей M´N, где M – число пользователей, а N – число предме‑
тов. Как правило, эта матрица очень велика, но разрежена, так как большин‑
ство пользователей не высказывается по поводу большинства предметов (см.
пример на рис. 22.1a). Эту разреженную матрицу можно также рассматривать
как двудольный граф, в котором ребру u - i назначен вес Yui. Это отражает
тот факт, что мы имеем дело с реляционными данными, т. е. у значений
u и i нет никакого внутреннего смысла (это просто произвольные индексы),
а важно лишь, что u и i соединены.
Если Yui отсутствует, то причиной может быть одно из двух: либо поль‑
зователь u вообще ничего не знает о предмете i, либо знает, что он ему не
понравился бы, поэтому даже не стал с ним связываться. В первом случае
отсутствие данных – случайный факт, а во втором отсутствие несет инфор‑
мацию об истинном значении Yui. (Дальнейшее обсуждение этого момента

Tlgm: @it_boooks

874  Рекомендательные системы
см., например, в работе [Mar+11].) Для простоты будем предполагать, что
отсутствие данных ни о чем не говорит.
предметы

пользователи

пользователи

предметы

Рис. 22.1  Пример реляционного набора данных, представленных разреженной матрицей (слева) или разреженным двудольным графом (справа). Значения, соответствующие пустым ячейкам (отсутствующим ребрам), неизвестны.
Строки 3 и 4 похожи и означают, что у пользователей 3 и 4 схожие предпочтения, поэтому данные от пользователя 3 можно использовать для предсказания
предпочтений пользователя 4. Однако предпочтения пользователя 1 совершенно иные; он, похоже, низко оценивает все предметы. Для пользователя 2 данных очень мало, поэтому делать надежные предсказания трудно

22.1.1. Наборы данных
Знаменитый пример матрицы явных оценок раскрыла для публики стримин‑
говая компания Netflix. В 2006 году она опубликовала большой набор данных,
содержащий 100 480 507 оценок (от 1 до 5), поставленных 480 189 пользова‑
телями 17 770 фильмам. Несмотря на большой размер обучающего набора,
матрица оценок на 99 % разрежена (оценки не проставлены). Опубликовав
данные, компания предложили награду в 100 000 долл., получившую из‑
вестность как Netflix Prize, любой группе, которая сможет предсказать ис‑
тинные оценки для тестового набора пар (пользователь, фильм) точнее, чем
собственная система Netflix. 21 сентября 2009 года награду получила группа
«Pragmatic Chaos». Они применили целый ансамбль различных методов, как
описано в работах [Kor09; BK07; FHK12]. Однако важнейшим компонентом
ансамбля был метод, описанный в разделе 22.1.3.
К сожалению, данные Netflix больше недоступны по соображениям конфи‑
денциальности. Но группа MovieLens из Миннесотского университета опу‑
бликовала анонимизированный набор данных с оценками фильмов по шкале
от 1 до 5, который можно использовать для исследований [HK15]. Имеются
также и другие наборы данных с явными оценками, например набор анекдо‑
тов Jester [Gol+01] и набор данных BookCrossing об обмене книгами [Zie+05].

22.1.2. Коллаборативная фильтрация
Оригинальный подход к проблеме рекомендаций называется коллаборативной фильтрацией [Gol+92]. Идея заключается в том, что, рекомендуя
предметы, пользователи сотрудничают, поскольку делятся своими оценками

Tlgm: @it_boooks

Явная обратная связь  875

с другими пользователями; если u хочет что-то узнать о i, он может посмотреть, какие оценки ставили i другие пользователи u¢, и вычислить взвешен‑
ное среднее:
(22.1)
где предполагается, что Yu¢,i = ?, если элемент неизвестен. При традиционном
подходе сходство двух пользователей определяется путем сравнения мно‑
жеств Su = {Yu,i ¹ ? : i Î ℐ} и Su’ = {Yu¢,i ¹ ? : i Î ℐ}, где ℐ – множество предметов.
Однако разреженность данных может стать препятствием. В разделе 22.1.3
мы обсудим подход, основанный на обучении плотных векторов погружения
для каждого предмета и каждого пользователя, который позволяет вычис‑
лять сходство в пространстве признаков низкой размерности.

22.1.3. Матричная факторизация
Мы можем рассматривать задачу о рекомендациях как задачу о дополнении
матрицы, в которой мы хотим предсказать все отсутствующие элементы Y.
Ее можно сформулировать как следующую задачу оптимизации:
(22.2)
Однако это недоопределенная задача, потому что способов заполнить от‑
сутствующие элементы Z бесконечно много.
Необходимо добавить какие-то ограничения. Предположим, к примеру,
что матрица Y низкого ранга. Это можно записать в виде Z = UV⟙ » Y, где U –
матрица M´K, V – матрица N´K, K – ранг матрицы, M – число пользователей,
а N – число предметов. Это соответствует предсказанию вида
ŷ ui = uu⟙vi.

(22.3)

Это называется матричной факторизацией.
Если наблюдаемы все элементы Yij, то оптимальную Z можно найти ме‑
тодом СГС (раздел 7.5). Но если некоторые элементы Y отсутствуют, то со‑
ответствующая целевая функция уже не выпукла и не имеет единственного
оптимума [SJ03]. Мы можем найти приближенное решение методом чередующихся наименьших квадратов (alternating least squares – ALS), когда
сначала оценивается U при известной V, а затем V при известной U (детали
см., например, в [KBV09]). Или же можно просто использовать СГС.
На практике важно также учесть базовые уровни для пользователей и пред‑
метов, записав ограничение:
ŷ ui = μ + bu + ci + uu⟙vi.

(22.4)

Оно улавливает тот факт, что есть пользователи, которые всегда ставят
низкие оценки, а также такие, которые ставят высокие оценки; кроме того,

Tlgm: @it_boooks

876  Рекомендательные системы
у некоторых предметов (например, очень популярных фильмов) могут быть
необычно высокие оценки.
Дополнительно можно добавить 𝓁2-регуляризацию параметров, и в ре‑
зультате получается целевая функция:
(22.5)

Ее можно оптимизировать методом СГС, произведя случайный выбор эле‑
мента (u, i) из множества наблюдаемых значений и выполнив следующие
обновления:
bu = bu + ρ(eui - λbu);

(22.6)

ci = ci + ρ(eui - λbi);

(22.7)

uu = uu + ρ(eui uu - λuu);

(22.7)

vi = vi + ρ(eui vi - λvi),

(22.9)

где eui = yui - ŷ ui – ошибка, а ρ ³ 0 – скорость обучения. Этот подход, пред‑
ложенный Саймоном Фанком, был одним из первых, показавших хорошие
результаты на раннем этапе объявленного Netflix конкурса1.

22.1.3.1. Вероятностная матричная факторизация
Матричную факторизацию можно преобразовать в вероятностную модель,
положив
p(yui = y) = 𝒩(y|μ + bu + ci + uu⟙vi, σ2).

(22.10)

Это называется вероятностной матричной факторизацией (probabi‑
listic matrix factorization – PMF) [SM08]. Отрицательное логарифмическое
правдоподобие этой модели эквивалентно целевой функции матричной
факторизации (22.2). Однако вероятностный взгляд упрощает обобщение
модели. Например, мы можем отразить тот факт, что оценки – целые, а не
вещественные числа (чаще всего нули), воспользовавшись распределением
Пуассона или отрицательным биномиальным распределением (см., напри‑
мер, [GOF18]). Это похоже на метод PCA экспоненциального семейства (раз‑
дел 20.2.7) с тем отличием, что строки и столбцы обрабатываются симметрично.

22.1.3.2. Пример: Netflix
Допустим, что мы применяем PMF к набору данных Netflix, используя K = 2
латентных фактора. На рис. 22.2 показаны обученные векторы погружения ui
для нескольких фильмов. В левой части диаграммы находятся фильмы ужа‑
1

https://sifter.org/~simon/journal/20061211.html.

Tlgm: @it_boooks

Явная обратная связь  877

сов и низкопробный юмор («Непропеченный», «Фредди против Джейсона»),
а в правой части – более серьезные драмы («Софи делает выбор», «Во власти
Луны»). В верхней части находятся тепло принятые критиками независимые
фильмы («Любовь, сбивающая с ног», «Взломщики сердец»), а в нижней части –
мейнстримовское кино («Армагеддон», «Сбежавшая невеста»). «Волшебник
страны Оз» расположен точно посередине, поскольку это в некотором смыс‑
ле «средний фильм».

Рис. 22.2  Первые два латентных фактора фильмов, оцененные по
данным из конкурса Netflix. Каждый фильм j показан в позиции, определяемой vj. Детали см. в тексте. На основе рис. 3 из работы [KBV09].
Печатается с разрешения Иегуды Корена

Пользователи погружены в то же пространство, что и фильмы. Раз так, то
мы можем предсказать оценку для любой пары (пользователь, фильм), ис‑
пользуя близость в латентном пространстве погружения.

22.1.3.3. Пример: MovieLens
Теперь применим PMF к набору данных MovieLens-1M, содержащему
6040 пользователей, 3706 фильмов и 1 000 209 оценок. Будем использовать
K = 50 факторов. Для простоты обучим модель, применив сингулярное раз‑
ложение к плотной матрице оценок, в которой отсутствующие элементы
заменены 0. (Это всего лишь аппроксимация, призванная упростить демон‑
страционный код.) На рис. 22.3 показан фрагмент истинной и предсказанной
матрицы оценок. (Мы «обрубили» предсказания, так чтобы они попали в диа‑
пазон [1,5].) Как видим, модель не особенно точна, но улавливает некоторые
структурные особенности данных.

Tlgm: @it_boooks

878  Рекомендательные системы

(а)

(b)

Рис. 22.3  (a) Фрагмент наблюдаемой матрицы оценок для набора данных
MovieLens-1M. (b) Предсказания, полученные в результате сингулярного разложения с 50 латентными компонентами. Построено программой по адресу
figures.probml.ai/book1/22.3

Кроме того, качественно она ведет себя вполне разумно. Например, на
рис. 22.4 показаны 10 лучших фильмов, по мнению данного пользователя,
а также 10 лучших предсказаний для фильмов, которые он не смотрел. По‑
хоже, модель «вычислила» предпочтения этого пользователя. Например, мы
видим, что многие предсказанные фильмы относятся к жанру боевиков или
фильмов-нуар, и оба эти жанра присутствуют в собственном списке лучших
фильмов пользователя, хотя на этапе обучения модели информация о жанре
явно не указывалась.

22.1.4. Автокодировщики
Матричная факторизация – (би)линейная модель. Нелинейную версию мож‑
но получить, воспользовавшись автокодировщиками. Обозначим y:,i Î ℝM –
i-й столбец матрицы оценок, в которой неизвестные оценки заменены нуля‑
ми. Этот вектор оценок можно предсказать с помощью автокодировщика вида
f(y:,i; θ) = W⟙φ(Vy:,i + μ) + b,

(22.11)

где V Î ℝ отображает оценки в пространство погружения, W Î ℝ отобра‑
жает пространство погружения в распределение оценок, μ Î ℝK – смещения
скрытых блоков, а b Î ℝM – смещения выходных блоков. Это называется (пред‑
метной) версией модели AutoRec [Sed+15]. Она имеет 2MK + M + K параметров.
Существует также пользовательская версия, которую можно вывести аналогич‑
но и которая имеет 2NK + N + K параметров. (Для наборов данных MovieLens
и Netflix авторы обнаружили, что предметная модель работает лучше.)
Мы можем обучить модель, обновляя только параметры, ассоциированные
в наблюдаемыми элементами y:,i. Кроме того, можно прибавить 𝓁2-регуляризатор к матрице весов и получить целевую функцию:
KM

KM

(22.12)

Tlgm: @it_boooks

Неявная обратная связь  879

(a)

(b)

Рис. 22.4  (a) 10 лучших фильмов (из 69), которым пользователь «837» поставил высокие оценки. (b) 10 лучших предсказаний (из 3637), сделанных алгоритмом. Построено программой по адресу figures.probml.ai/book1/22.4

Несмотря на простоту метода, авторы обнаружили, что он работает лучше
более сложных методов, например ограниченных машин Больцмана (RBM,
[SMH07]) и локальной аппроксимации матрицей низкого ранга (LLORMA,
[Lee+13]).

22.2. неяВная обратная сВязь
До сих пор мы предполагали, что пользователь явно проставляет оценки
всем предметам, с которыми имел дело. Это очень ограничительное предпо‑
ложение. В общем случае мы хотели бы обучиться неявной обратной связи,
которую пользователи оставляют, просто взаимодействуя с системой. Напри‑
мер, можно рассматривать фильмы, просмотренные пользователем u, как
положительные отзывы, а все остальные – как отрицательные. Тогда мы по‑
лучим разреженную матрицу, состоящую только из положительных оценок.
Или можно считать тот факт, что пользователь смотрел фильм i, но не
смотрел фильм j, неявным сигналом о предпочтении, отдаваемом i перед j.

Tlgm: @it_boooks

880  Рекомендательные системы
Получающиеся данные можно представить в виде множества кортежей вида
yn = (u, i, j), где (u, i) – положительная пара, а (u, j) – отрицательная (или не‑
помеченная) пара.

22.2.1. Байесовское персонализированное
ранжирование
Чтобы обучить модель на данных вида (u, i, j), мы должны использовать потерю ранжирования, так чтобы модель ранжировала i перед j для пользо‑
вателя u. Простой способ добиться этого – взять модель Бернулли вида:
p(yn = (u, i, j)|θ) = σ( f(u, i; θ) - f(u, j; θ)).

(22.13)

Если объединить ее с гауссовым априорным распределением θ, то полу‑
чится следующая задача нахождения оценки максимальной апостериорной
вероятности:
(22.14)
где 𝒟 = {(u, i, j) : i Î ℐu+, j Î ℐ \ ℐu+}, ℐu+ – множество всех предметов, выбранных
пользователем u, а ℐ \ ℐu+ – множество всех остальных предметов (которые
пользователю не понравились или он их просто не видел). Это называется
байесовским персонализированным ранжированием (Bayesian personal‑
ized ranking – BPR) [Ren+09].
Рассмотрим пример из книги [Zha+20, раздел 16.5]. Всего имеется 4 пред‑
мета, ℐ = {i1, i2, i3, i4}, и пользователь u решил взаимодействовать с ℐu+ = {i2, i3}.
В этом случае неявная матрица предпочтений одного предмета перед другим
для пользователя u имеет вид:

(22.15)

где Yu,i,i¢ = + означает, что u отдает предпочтение i¢ перед i, Yu,i,i¢ = - — что
пользователь предпочитает i, а не i¢, а Yu,i,i¢ = ? – что мы не знаем, чему отдает
предпочтение пользователь. Например, из второго столбца ясно, что этот
пользователь оценивает i2 выше, чем i1 и i4, потому что он выбрал i2, а не i1
и не i4; однако мы не можем сказать, предпочитает ли он i2 или i3.
Если множество возможных предметов велико, то количество отрицатель‑
ных оценок в ℐ \ ℐu+ может быть очень большим. По счастью, потерю можно
аппроксимировать, произведя подвыборку отрицательных оценок.
Заметим, что альтернативой логарифмической потере (22.14) может слу‑
жить кусочно-линейная потеря, похожая на принятую в методе опорных
векторов (раздел 17.3). Она имеет вид:

Tlgm: @it_boooks

Неявная обратная связь  881

�(yn = (u, i, j), f ) = max(m - ( f(u, i) - f(u, j)), 0)
= max(m - f(u, i) + f(u, j), 0),

(22.16)

где m ³ 0 – безопасный зазор. Здесь мы пытаемся гарантировать, что от‑
рицательные предметы j никогда не получат оценку, более чем на m превы‑
шающую оценку положительных предметов i.

22.2.2. Машины факторизации
Подход AutoRec из раздела 22.1.4 нелинеен, но пользователи и предметы
рассматриваются асимметрично. В этом разделе мы обсудим более симме‑
тричную дискриминантную модель. Начнем с линейной версии. Основная
идея – предсказать выход (например, оценку) для любой заданной пары
(пользователь, предмет), x = [one-hot(u), one-hot(i)], с помощью функции:
(22.17)
где x Î ℝD, D = (M + N) – число входов, V Î ℝD´K – матрица весов, w Î ℝD – век‑
тор весов, а μ Î ℝ – глобальное смещение. Эта модель называется машиной
факторизации (factorization machine – FM) [Ren12].
Член (vi⟙vj)xi xj измеряет взаимодействие между входными признаками i
и j. Это обобщение модели матричной факторизации (22.4), поскольку до‑
пускается обработка других видов информации, содержащейся во входе x,
а не только о пользователе и предмете, как в разделе 22.3.
Для вычисления функции (22.17) требуется время O(KD2), поскольку рассма‑
триваются все возможные попарные комбинации пользователя и предмета. Но
выражение можно переписать, так что время вычислений сократится до O(KD):
(22.18)
(22.19)

(22.20)
Для разреженных векторов общая сложность линейно зависит от числа нену‑
левых компонентов. Поэтому если для идентификаторов пользователя и пред‑
мета применяется унитарное кодирование, то сложность составляет всего O(K),
как и в оригинальной целевой функции матричной факторизации (22.4).
Мы можем обучить эту модель минимизировать любую желаемую потерю.
Например, если присутствует явная обратная связь, то можно выбрать поте‑
рю СКО, а в случае неявной обратной связи – потерю ранжирования. В работе
[Guo+17] предложена модель глубоких машин факторизации, сочетающая

Tlgm: @it_boooks

882  Рекомендательные системы
описанный выше метод с МСП применительно к конкатенации, а не скаляр‑
ному произведению векторов погружения. Точнее, модель имеет вид:
f(x; θ) = σ(FM(x) + MLP(x)).

(22.21)

Она тесно связано с широкой и глубокой моделью, предложенной в ра‑
боте [Che+16]. Идея в том, что билинейная модель FM улавливает явные вза‑
имодействия между конкретными пользователями и предметами (вариант
запоминания), тогда как МСП улавливает неявные взаимодействия между
признаками пользователей и признаками предметов, что открывает перед
моделью возможность обобщения.

22.2.3. Нейронная матричная факторизация
В этом разделе мы опишем модель нейронной матричной факторизации
из работы [He+17]. Это еще один способ объединить билинейные модели
с глубокими нейронными сетями. Билинейная часть используется для того,
чтобы определить обобщенную матричную факторизацию (generalized ma‑
trix factorization – GMF), при которой вычисляется следующий вектор при‑
знаков для пользователя u и предмета i:
z1ui = Pu,: ⊙ Qi,:,

(22.22)

z2ui = MLP([U u,:, V i,:]).

(22.23)

где P Î ℝMK – матрица погружений пользователей, а Q Î ℝNK – матрица погру‑
жений предметов. Нейронная часть сводится к применению МСП к конкате‑
нации векторов погружения (с использованием других матриц погружения):

Наконец, обе часть объединяются и получается
f(u, i; θ) = σ(w⟙[z1ui, z2ui]).

(22.24)

Смотрите иллюстрацию на рис. 22.5.
В работе [He+17] модель обучается на неявной обратной связи, когда yui = 1,
если наблюдается взаимодействие пользователя u с предметом i, и yui = 0
в противном случае. Однако ее можно также обучить для минимизации по‑
тери BPR.

22.3. использоВание побоЧной инФормации
До сих пор мы предполагали, что предиктору доступны только целые иден‑
тификаторы пользователей и предметов. Это сильно обедненное представ‑
ление, которое к тому же не будет работать, если встретится новый пользо‑
ватель или новый предмет (так называемая проблема холодного старта).
Чтобы справиться с этим, нужно использовать «побочную информацию»,
а не только идентификаторы.

Tlgm: @it_boooks

Использование побочной информации  883

Выходной слой

Оценка

ŷui

Обучение

yui Цель

Слой X
Нейронные слои
коллаборативной
фильтрации

Слой 2
Слой 1

Слой погружения
Входной слой
(разреженный)

Латентный вектор
пользователя
PM×K = {puk}

Пользователь (u)

Латентный вектор
предмета
QN×K = {quk}

Предмет (i)

Рис. 22.5  Модель нейронной матричной факторизации.
На основе рис. 2 из работы [He+17].
Печатается с разрешения Сяньнан Хе

Существует много видов побочной информации. Для предметов часто
используются подробные метаданные, как то: текст (например, назва‑
ние), изображения (например, обложка), многомерные категориальные
переменные (например, местоположение) или просто скаляры (например,
цена). Для пользователей состав доступной побочной информации зависит
от вида интерактивной системы. В поисковых системах это список отправ‑
ленных пользователем запросов и (для зарегистрированных пользовате‑
лей) информация, собранная на сайтах, которые он посещал (отслеживается
с помощью куков). На сайтах интернет-магазинов это список поисковых
запросов плюс информация о прошлых просмотрах и покупках. На сайтах
социальных сетей для каждого пользователя имеется информация о графе
его друзей.
Эту побочную информацию очень легко собрать в машинах факторизации,
если не ограничиваться в определении x унитарными векторами, а обобщить
его, как показано на рис. 22.6. Такую же схему кодирования входов можно
конечно использовать и для других видов моделей, например deepFM или
neuralMF.
Помимо признаков пользователей и предметов, могут существовать и дру‑
гие контекстуальные признаки, например время взаимодействия (скажем,
день или вечер). Порядок (последовательность) недавно просмотренных
предметов тоже может служить полезным сигналом. «Рекомендация на ос‑
нове сверточного погружения последовательности» (Convolutional Sequence
Embedding Recommendation), или модель Caser, предложенная в работе
[TW18], улавливает это путем погружения последних M предметов, после
чего вход размера M´K рассматривается как изображение, для чего в модель
включается сверточный слой.
Для рекомендательных систем разработано также много других нейрон‑
ных моделей (см., например, обзор [Zha+19b]).

Tlgm: @it_boooks

884  Рекомендательные системы

Рис. 22.6  Матрица плана для системы рекомендации фильмов. Показаны
идентификаторы пользователя и фильма, а также побочная информация. На
основе рис. 1 из работы [Ren12]. Печатается с разрешения Стефена Рендла

22.4. компромисс между исследоВанием
и использоВанием
Интересный поворот, присущий только рекомендательным системам и не
характерный для других задач предсказания, – тот факт, что данные, на
которых обучается система, представляют собой следствие рекомендаций,
сделанных ее предыдущими версиями. Таким образом, образуется петля
обратной связи [Bot+13]. Например, рассмотрим рекомендательную систему
видео на YouTube [CAS16]. На сайте размещены миллионы видеороликов, по‑
этому система должна предложить пользователю короткий список роликов,
помогающий найти то, что он хочет (см., например, [Ie+19]). Если пользо‑
ватель решил просмотреть какой-то из них, то система может считать это
положительной обратной связью, подтверждающей, что она дала хорошую
рекомендацию, и соответственно обновить параметры модели. Но, быть мо‑
жет, есть какой-то ролик, который пользователю понравился бы еще больше?
На этот вопрос невозможно ответить, если система не попробует предложить
пользователю какие-то ролики, реакция на которые заранее неизвестна. Это
пример компромисса между исследованием и использованием.
В дополнение к исследованию системе, возможно, придется довольно
долго ждать, прежде чем станет ясно, были ли полезны предложенные из‑
менения в рекомендациях. Для обучения политики, оптимизирующей долго‑
срочное вознаграждение, обычно используют обучение с подкреплением.
Детали см. во втором томе этой книги, [Mur22].

Глава

23

Tlgm: @it_boooks

Погружения графов*
Эта глава написана в соавторстве с Брайаном Пероцци, Сами Абу Эль Хайджа
и Инес Чами.

23.1. ВВедение
Теперь переключим внимание на данные, в которых имеются семантические
связи между обучающими примерами {xn}Nn=1. Связи (называемые ребрами)
соединяют обучающие примеры (вершины) с зависящей от приложения се‑
мантикой (обычно определяющей сходство). Теория графов предлагает ма‑
тематический аппарат для рассуждения о таких связях.
Графы – это универсальные структуры данных, которые позволяют пред‑
ставить сложные реляционные данные (состоящие из вершин и ребер). Они
встречаются в таких разных предметных областях, как социальные сети, вы‑
числительная химия [Gil+17], биология [Sta+06], рекомендательные системы
[KSJ09], обучение с частичным привлечением учителя [GB18] и др.
Обозначим A Î {0, 1}N´N матрицу смежности, где N – число узлов, а W Î
N´N

– ее взвешенная версия. В обсуждаемых ниже методах иногда счита‑
ется, что W = A, а иногда – что W – некоторое преобразование A, например
построчная нормировка. Наконец, пусть X Î ℝN´D – матрица вершинных
признаков.
При проектировании и обучении модели нейронной сети на графовых дан‑
ных мы хотим, чтобы метод был применим к вершинам, участвующим в раз‑
личных графовых контекстах (например, имеющих разные связи и структу‑
ру сообщества). Сравните с моделью нейронной сети, проектируемой для
изображений, где каждый пиксель (вершина) имеет одну и ту же структуру
соседства. Тогда как в произвольном графе нет никакого регулярного вы‑
страивания вершин, и структура соседства для разных вершин может ради‑
кально отличаться. Такое сравнение проведено на рис. 23.1. Следовательно,
операции типа свертки в евклидовом пространстве просто так непримени‑
мы к нерегулярным графам: евклидова свертка опирается на априорные
геометрические предположения (например, инвариантность относительно
сдвигов), которые не обобщаются на неевклидовы домены.
Эти проблемы привели к развитию исследований по геометрическому
глубокому обучению (Geometric Deep Learning – GDL) [Bro+17b], нацелен‑

Tlgm: @it_boooks

886  Погружения графов*
ных на применение методов глубокого обучения к неевклидовым данным.
В частности, ввиду широкого присутствия графов в реальных приложениях
был отмечен всплеск интереса к применению методов машинного обучения
к данным, имеющим графовую структуру. Так, методы обучения графовых
представлений (Graph Representation Learning – GRL) [Cha+20] имеют целью
обучение непрерывных низкоразмерных векторных представлений графо‑
вых данных; такие представления называются погружениями.

Сетка (евклидова)

Произвольный граф (неевклидов)

Рис. 23.1  Евклидовы и неевклидовы графы. Из работы [Cha+20]

Мы разделим задачи GRL на два класса: без учителя и с учителем (или
с частичным привлечением учителя). В первом случае целью является
обучение низкоразмерных евклидовых представлений, оптимизирующих
некоторую целевую функцию, например сохраняющих структуру входного
графа. Во втором случае тоже требуется обучить низкоразмерные евкли‑
довы представления, но в расчете на конкретную последующую задачу
предсказания, например классификацию вершин или графов. Кроме того,
структура графа может быть фиксирована на протяжении обучения и те‑
стирования – это называется трансдуктивным обучением (например,
предсказать свойства пользователя в большой социальной сети), или же
ожидается, что модель будет отвечать на вопросы о графах, которые не
предъявлялись во время обучения, – это называется индуктивным обучением (например, классификация молекулярных структур). Наконец,
хотя большинство методов с учителем и без учителя обучают представле‑
ния в евклидовых векторных пространствах, недавно обнаружился интерес
к обучению неевклидовых представлений, например в пространствах
погружений с гиперболической или сферической геометрией. Цель таких
работ – использовать непрерывное пространство погружения, структура
которого имеет сходство с дискретной структурой вкладываемых входных
данных (например, гиперболическое пространство – это непрерывная вер‑
сия деревьев [Sar11]).

Tlgm: @it_boooks

Погружение графа как задача о кодировщике и декодере  887

23.2. погружение граФа как задаЧа
о кодироВщике и декодере
Существует много подходов к GRL, но в основном все методы следуют обще‑
му образцу. Сначала вход сети (вершинные признаки X Î ℝN´D и ребра графа
из множества A или W Î ℝN´N) кодируются, т. е. переводятся из дискретного
домена графа в непрерывное представление (погружение), Z Î ℝN´L. Затем
обученное представление Z используется для оптимизации некоторой целе‑
вой функции (например, реконструкции связей в графе). В этом разделе мы
будем использовать модель кодировщика-декодера графа (GraphEDM), пред‑
ложенную в работе Chami et al. [Cha+20], для анализа популярных семейств
методов GRL.
Схема GraphEDM (рис. 23.2, [Cha+20]) предлагает общий подход, включа‑
ющий широкий спектр методов погружения графов с учителем и без учите‑
ля, в том числе такие, где граф используется как регуляризатор (например,
[ZG02]), позиционные погружения (например, [PARS14]) и графовые нейрон‑
ные сети, например основанные на передаче сообщений [Gil+17; Sca+09] или
свертке графов [Bru+14; KW16a]).

Рис. 23.2  Схема GraphEDM из работы Chami et al. [Cha+20]. В зависимости
от имеющейся информации, предоставленной учителем, используются все или
некоторые ветви. В частности, в методах без учителя для обучения не используется декодирование меток, а только оптимизируется декодер сходства (нижняя ветвь). С другой стороны, в методах с учителем и частичным привлечением
учителя дополнительная информация используется для обучения параметров
модели (верхняя ветвь). Печатается с разрешения авторов

Схема GraphEDM принимает на входе взвешенный граф W Î ℝN´N и фа‑
культативные вершинные признаки X Î ℝN´D. В постановке с полным или
частичным привлечением учителя предполагается, что имеются обучающие
метки для вершин (обозначены N), ребер (обозначены E) и (или) для всего
графа (обозначены G). Будем обозначать сигнал учителя S Î {N, E, G}.
Саму модель GraphEDM можно разложить на следующие компоненты:
 сеть кодировщика графа ENCΘE : ℝN´N ´ ℝN´D ® ℝN´L с параметра‑
ми ΘE, которая объединяет структуру графа с факультативными вер‑
шинными признаками для порождения матрицы погружения вершин
Z Î ℝN´L следующим образом:

Tlgm: @it_boooks

888  Погружения графов*
Z = ENC(W, X; ΘE).

(23.1)

Ŵ = DEC(Z; ΘD).

(23.2)

ŷ S = DEC(Z; ΘS).

(23.3)

Ниже мы увидим, что эта матрица погружения может улавливать раз‑
личные свойства графа в зависимости от информации, предоставлен‑
ной учителем на этапе обучения;
 сеть декодера графа DECΘD : ℝN´L ® ℝN´N с параметрами ΘD, которая
использует погружения вершин Z для вычисления оценок сходства для
всех пар вершин в матрице W Î ℝN´N следующим образом:
 сеть классификации DECΘS : ℝN´L ® ℝN´|𝒴|, где 𝒴 – пространство ме‑
ток. Эта сеть используется при обучении с полным или частичным
привлечением учителя и параметризована ΘS. Выходом является рас‑
пределение меток ŷ S, в котором используются погружения вершин:
Конкретный выбор сетей (кодировщика и декодера) позволяет GraphEDM
реализовать различные методы погружения графов, как будет объяснено
в следующих разделах.
Выходом модели, согласно схеме GraphEDM, является реконструированная
матрица сходства графов Ŵ (которая часто используется для обучения алго‑
ритмов погружения без учителя) и (или) метки ŷ S для обучения с учителем.
Выходное пространство меток 𝒴 зависит от приложения. Например, при
классификации на уровне вершин ŷ N Î 𝒴N, где 𝒴 представляет пространство
меток вершин. А при пометке на уровне ребер ŷ E Î 𝒴N´N, где 𝒴 представляет
пространство меток ребер. Отметим также, что возможны и другие виды по‑
метки, например пометка на уровне графов (тогда должно быть ŷ G Î 𝒴, где 𝒴
представляет пространство меток графов).
Наконец, необходимо задать потерю. Ее можно использовать для оптими‑
зации параметров Θ = {ΘE, ΘD, ΘS}. Модели на основе GraphEDM можно опти‑
мизировать, применяя сочетание трех разных членов. Во-первых, член потери
обучения с учителем, ℒSSUP, сравнивает предсказанные метки ŷ S с истинными
метками yS. Во-вторых, член потери реконструкции графа, ℒG,RECON, может
использовать структуру графа, чтобы наложить ограничения регуляризации
на параметры модели. Наконец, член потери регуляризации, ℒREG, позволяет
представлять априорные предположения о подлежащих обучению параметрах
модели, чтобы предотвратить переобучение. Модели, основанные на схеме
GraphEDM, обучаются путем минимизации следующей полной потери ℒ:
ℒ = α(yS, ŷ S; Θ) + βℒG,RECON(W, Ŵ; Θ) + γℒREG(Θ),

(23.4)

где α, β и γ – гиперпараметры, которые можно настроить или обнулить. За‑
метим, что методы погружения графов можно обучать с учителем (α ¹ 0) или
без учителя (α = 0). При обучении с учителем используется дополнительный
источник информации для обучения погружений, например метки вершин
или графов. С другой стороны, методы обучения без учителя опираются толь‑
ко на структуру графа и так обучают погружения вершин.

Tlgm: @it_boooks

Поверхностные погружения графов  889

23.3. поВерхностные погружения граФоВ
Методы поверхностного погружения являются трансдуктивными, а функция
кодировщика отображает категориальные идентификаторы вершин в евкли‑
дово пространство с помощью матрицы погружения. Каждой вершине vi Î V
соответствует обучаемый вектор погружения низкой размерности Zi Î ℝL,
а функция поверхностного кодировщика имеет вид:
Z = ENC(ΘE)

ΘE, где ΘE Î ℝN´L.

(23.5)

Важно, что словарь погружения Z обучается непосредственно как пара‑
метры модели. Если учителя нет, то погружения Z оптимизируются с целью
восстановления какой-то информации о входном графе (например, матрицы
смежности W или какого-то ее преобразования). Это напоминает методы
понижения размерности типа PCA (раздел 20.1), но для графовых структур
данных. При наличии учителя погружения оптимизируются с целью пред‑
сказания каких-то меток – для вершин, ребер и (или) графа в целом.

Рис. 23.3  Методы поверхностного погружения. Кодировщик представляет
собой простой поиск в погружении, а графовая структура используется только
в функции потерь. Печатается с разрешения авторов работы [Cha+20]

23.3.1. Обучение погружений без учителя
В случае обучения без учителя мы рассмотрим два основных типа методов
поверхностного погружения графов: на основе расстояния и на основе внеш‑
него произведения. Методы на основе расстояния оптимизируют словарь
погружения Z = ΘE Î ℝN´L, так что вершины i и j, близкие в графе (в смысле
некоторой функции расстояния на графе), погружаются в Z таким образом,
что d2(Zi, Zj) мало, где d2(.,.) – функция расстояния между векторами погруже‑
ния. Функцию d2(.,.) можно настраивать, получая евклидовы (раздел 23.3.2)
или неевклидовы (раздел 23.3.3) погружения. Декодер выводит матрицу Ŵ =
DEC(Z, ΘD), где Ŵij = d2(Zi, Zj).
C другой стороны, некоторые методы опираются на попарные скалярные
произведения при вычислении сходства вершин. Сеть декодера можно за‑
писать в виде Ŵ = DEC(Z, ΘD) = ZZ⟙.
В обоих случаях погружения для методов, основанных на расстоянии и на
произведении, обучаются без учителя посредством минимизации потери
регуляризации графа:
�G,RECON(W, Ŵ; Θ) = d1(s(W), Ŵ),

(23.6)

где s(W) – факультативное преобразование матрицы смежности W, а d1 –
функция расстояния между матрицами, которая не обязана совпадать с d2.

Tlgm: @it_boooks

890  Погружения графов*
Как мы увидим, s, d1, d2 можно выбрать многими разумными способами.
Например, s может быть самой матрицей смежности, s(W) = W, или ее степе‑
нью, s(W) = W2. Если входом является взвешенная бинарная матрица W = A,
то можно положить s(W) = 1 - W, так что связанные вершины, для которых
Aij = 1, имеют вес (расстояние) 0.

23.3.2. На основе расстояния: евклидовы методы
Методы на основе расстояния минимизируют евклидовы расстояния между
похожими (связанными) вершинами. Ниже будет приведено несколько при‑
меров.
Многомерное шкалирование (ММШ, раздел 20.4.4) эквивалентно опре‑
делению s(W) как некоторой матрицы расстояний, измеряющей сходство
между вершинами (например, пропорционально кратчайшим попарным
расстояниям), и последующему определению:
(23.7)
где Ŵij = d2(Zi, Zj) = ||Zi - Zj|| (хотя допустимы и другие метрики).
Лапласовы собственные отображения (раздел 20.4.9) обучают погруже‑
ния путем решения обобщенной задачи на собственные значения:
Z⟙L Z при условии Z⟙DZ = I и Z⟙D1 = 0,

(23.8)

где L = D - W – лапласиан графа (раздел 20.4.9.2), а D – диагональная матри‑
ца, содержащая суммы по столбцам для каждой строки. Первое ограничение
убирает произвольный масштабный коэффициент из погружения, а второе
предотвращает тривиальные решения, соответствующие постоянному соб‑
ственному вектору (с нулевым собственным значением для связных графов).
Кроме того, заметим, что Z⟙LZ = ½åi,j Wij ||Zi - Zj||22, и потому целевую функцию
минимизации можно эквивалентно записать как член реконструкции графа:
(23.9)
(23.10)
где s(W) = W.

23.3.3. На основе расстояния: неевклидовы
методы
До сих пор мы обсуждали методы, в которых предполагается, что погружения
находятся в евклидовом пространстве. Однако в недавних работах рассматривается пространство погружения графов с гиперболической геометрией.

Tlgm: @it_boooks

Поверхностные погружения графов  891

Конкретно, гиперболические погружения идеальны для деревьев и пред‑
лагают захватывающую альтернативу евклидовой геометрии для графов
с иерархической структурой. Ниже приведено несколько примеров.
В работе [NK17] производится обучение иерархических графов с исполь‑
зованием модели Пуанкаре гиперболического пространства. В нашей но‑
тации представить ее просто, достаточно лишь заменить d2(Zi, Zj) функцией
расстояния Пуанкаре:
(23.11)
Тогда в процессе оптимизации будут обучены погружения, доставляющие
минимум расстояниям между связанными вершинами и максимум расстоя‑
ниям между несвязанными вершинами:
(23.12)
где знаменатель аппроксимируется с помощью отрицательной выборки.
Заметим, что, поскольку гиперболическое пространство имеет структуру
многообразия, нужно обращать внимание на то, чтобы погружения остава‑
лись на многообразии (применяя методы римановой оптимизации [Bon13]).
Предлагались и другие варианты этих методов. В работе [NK18] изучает‑
ся лоренцева модель гиперболического пространства и показано, что она
численно устойчивее, чем модель Пуанкаре. Еще в одной серии работ неев‑
клидовы погружения обобщаются на представления смешанной кривизны
в произведениях пространств [Gu+18], что дает больше гибкости для других
типов графов (например, кольца деревьев). Наконец, в работе [CCD17] по‑
гружения Пуанкаре обобщаются с помощью скипграммной потери с гипер‑
болическими скалярными произведениями.

23.3.4. На основе внешнего произведения:
методы матричной факторизации
Подходы на основе матричной факторизации обучают погружения, кото‑
рые приводят к низкоранговому представлению некоторой матрицы сход‑
ства s(W), где s : ℝN´N ® ℝN´N. Часто выбирают следующие преобразования:
s(W) = W, s(W) = L (лапласиан графа) или еще какую-нибудь меру близости,
например индекс центральности Каца, индекс общих соседей или индекс
Адамик-Адара. Функцией декодера в методах матричной факторизации яв‑
ляется просто скалярное произведение:
Ŵ = DEC(Z; ΘD) = ZZ⟙.

(23.13)

Методы матричной факторизации обучают Z посредством минимизации
потери регуляризации ℒG;RECON(W, Ŵ; Θ) = ||s(W) - Ŵ||2F.

Tlgm: @it_boooks

892  Погружения графов*
Метод факторизации графов (GF) из работы [Ahm+13] обучается низко‑
ранговой факторизации графа посредством минимизации потери регуляризации графа ℒG;RECON(W, Ŵ; Θ) = å(vi, vj)ÎE||Wij - Ŵ ij||2.
Заметим, что если A – бинарная матрица смежности (Aij = 1 тогда и только
тогда, когда (vi, vj) Î E и Aij = 0 в противном случае), то потерю регуляризации
графа можно выразить в терминах нормы Фробениуса:
�G,RECON(W, Ŵ; Θ) = ||A ⊙ (W - Ŵ)||2F,

(23.14)

где ⊙ – оператор поэлементного умножения матриц. Поэтому GF обучается
также низкоранговой факторизации матрицы смежности W, измеряемой
нормой Фробениуса. Заметим, что это разреженная операция (суммирование
производится только по присутствующим в графе ребрам), поэтому вычис‑
лительная сложность метода составляет O(M).
Все описанные до сих пор методы симметричны, т. е. предполагается, что
Wij = Wji. Такое предположение неприемлемо при работе с ориентирован‑
ными графами, поскольку в этом случае для некоторых связей нет обратных.
Метод GraRep из работы [CLX15] преодолевает это ограничение, обучая два
погружения на каждую вершину: исходное Zs и целевое Zt, которые улавли‑
вают асимметричную близость в ориентированных сетях. Помимо асимме‑
трии, GraRep обучается погружениям, которые сохраняют соседство с рас‑
стоянием в k переходов; для этого вычисляются степени матрицы смежности
и минимизируется потеря реконструкции графа:


Ŵ (k) = Z(k),sẐ (k),t ;

(23.15)

�G,RECON(W, Ŵ (k); Θ) = ||D-kWk - Ŵ (k)||2F

(23.16)

для каждого 1 £ k £ K. GraRep конкатенирует все представления для по‑
лучения исходных погружений Zs = [Z(1),s| … |Z(K),s] и целевых погружений
Zt = [Z(1),t| … |Z(K),t]. К сожалению, GraRep не очень хорошо масштабируется,
потому что возведение матрицы D-1W в степень увеличивает плотность. Это
ограничение можно обойти, воспользовавшись неявной матричной факто‑
ризацией [Per+17], как описывается ниже.

23.3.5. На основе внешнего произведения:
скипграммные методы
Скипграммные модели погружения графов возникли из исследований в об‑
ласти обработки естественного языка, посвященных моделированию дис‑
трибутивного поведения слов [Mik+13c; PSM14b]. Скипграммные погружения
слов оптимизируются, так чтобы предсказывать слова в контексте (набор
окружающих слов) для каждого целевого слова в предложении. Если дана
последовательность слов (w1, …, wT), то скипграммная модель оптимизирует
целевую функцию:

Tlgm: @it_boooks

Поверхностные погружения графов  893

для каждого целевого слова wk. Эти условные вероятности можно эффектив‑
но оценить с использованием нейронных сетей. Детали см. в разделе 20.5.2.2.
Эта идея была применена к погружениям графов в системе DeepWalk
[PARS14]. Авторы обосновали это, эмпирически показав, что частотная ста‑
тистика, индуцированная случайными блужданиями в реальных графах,
имеет примерно такое же распределение, как у слов в естественном языке.
В терминах GraphEDM методы скипграммного погружения графов исполь‑
зуют внешнее произведение (23.13) в качестве функции декодера, а член
реконструкции графа вычисляется по случайным блужданиям на графе.

Выборка
из случайного
блуждания

Обучение
скипграммной
модели

Вычисление
погружений

Рис. 23.4  Конвейер методов погружения с применением случайного блуждания на графе. Печатается с разрешения авторов работы [God18]

Чуть подробнее: DeepWalk обучает погружения вершин максимизировать
вероятность предсказания контекстных вершин для каждой центральной
вершины. Контекстными называются вершины, которые оказываются смеж‑
ными с центральной при эмулированных случайных блужданиях на графе A.
Для обучения погружений DeepWalk генерирует последовательности вер‑
шин, применяя усеченное несмещенное случайное блуждание на графе – их
можно сравнить с предложениями в естественно-языковых моделях, – а за‑
тем максимизирует их логарифмическое правдоподобие. Каждое случайное
блуждание начинается с вершины vi1 Î V и итеративно выбирает следующую
вершину случайным образом: vij+1 Î {v Î V | (vij , v) Î E}. Длина блуждания –
гиперпараметр. Затем все сгенерированные случайные блуждания можно
закодировать с помощью последовательностной модели. Эта двухшаговая
парадигма, впервые предложенная в работе [PARS14], была затем развита во
многих работах, например в модели node2vec [GL16].
Отметим, что в конкретных реализациях обычно используют два разных
представления для каждой вершины: одна для случая, когда вершина явля‑
ется центром усеченного случайного блуждания, а другаядля случая, когда
она принадлежит контексту. Следствия такого подхода к моделированию
изучаются в работе [AEHPAR17].
Чтобы представить DeepWalk в терминах схемы GraphEDM, мы можем по‑
ложить:
s(W) = 𝔼q[(D-1W)q] при q ~ P(Q) = Categorical([1, 2, …, Tmax]),

(23.17)

где P(Q = q) = (Tmax - 1 + q)/Tmax (см. вывод в работе [AEH+18]).
Обучение DeepWalk эквивалентно минимизации:
(23.18)

Tlgm: @it_boooks

894  Погружения графов*
где Ŵ = ZZ⟙, а функция разбиения, имеющая вид Z(Z) = Õiåj exp(Ŵ ij), мо‑
жет быть аппроксимирована за время O(N) иерархической softmax (см. раз‑

для ориентированных графов
дел 20.5.2). (Также часто берут Ŵ = ZoutZin
с использованием словарей погружения Zout, Zin Î ℝN´L.)
Как отмечено в работе [LG14], скипграммные методы можно рассматри‑
вать как неявную матричную факторизацию, а обсуждаемые здесь методы
связаны с методами матричной факторизации (см. раздел 23.3.4). Эта связь
более глубоко обсуждается в работе [Qiu+18], где предложена общая схема
матричной факторизации, NetMF, в которой используется та же исходная
информация о близости в графе, что в DeepWalk, LINE [Tan+15] и node2vec
[GL16]. При переформулировании задачи о погружении вершин как задачи
матричной факторизации можно заодно получить все преимущества эффек‑
тивных операций над разреженными матрицами [Qiu+19b].

23.3.6. Обучение погружений с учителем
Во многих приложениях имеются не только вершинные признаки и струк‑
тура графа, но и помеченные данные. Задачу обучения с учителем можно
попытаться решить, сначала обучив представления без учителя, а затем ис‑
пользовав их как признаки во вторичной модели, но такой путь не идеа‑
лен. Обученные без учителя погружения вершин могут не сохранять важные
свойства графов (например, окрестности или атрибуты вершин), которые
были бы очень полезны для последующего обучения с учителем.
Ввиду этого ограничения было предложено несколько методов, объеди‑
няющих оба шага: обучение погружений и предсказание меток вершин или
графов. Сейчас мы обсудим простые поверхностные методы. А к глубоким
нелинейным погружениям перейдем позже.

23.3.6.1. Распространение меток
Распространение меток (label propagation – LP) [ZG02] – очень популярный
графовый алгоритм классификации вершин с частичным привлечением учи‑
теля. Кодировщиком является поверхностная модель, представленная спра‑
вочной таблицей Z. В LP пространство меток используется для прямого пред‑
ставления погружений вершин (т. е. декодер – просто тождественная функция):
ŷ N = DEC(Z; ΘC) = Z.

Точнее, структура графа используется в LP, чтобы сгладить распределение
меток в графе путем прибавления члена регуляризации к функции потерь,
исходя из предположения, что соседние вершины должны иметь похожие
метки (т. е. метки связанных вершин как-то согласованы).
Чтобы гарантировать гладкость, при регуляризации используются лапла‑
совы собственные отображения:
(23.19)

Tlgm: @it_boooks

Графовые нейронные сети  895

LP минимизирует эту функцию энергии на пространстве функций, кото‑
рые принимают фиксированные значения на помеченных вершинах (т. е.
ŷ iN = yiN ∀i|vi Î VL). Для этого используется итеративный алгоритм, который
обновляет распределение меток в непомеченной вершине с помощью взве‑
шенного среднего меток ее соседей.
Размазывание меток (label spreading – LS) [Zho+04] – это вариант распро‑
странения меток, в котором минимизируется следующая функция энергия:
(23.20)
где Di = åjWij – степень вершины vi.
В обоих методах потеря равна просто сумме расстояний между предска‑
занными и истинными метками (унитарными векторами):
(23.21)
Заметим, что, хотя член регуляризации вычисляется по всем вершинам
графа, потеря обучения с учителем вычисляется только по помеченным вер‑
шинам. Ожидается, что эти методы должны хорошо работать с согласован‑
ными графами, т. е такими, для которых имеется положительная корреляция
между близостью вершин и сходством меток.

23.4. граФоВые нейронные сети
Большой интерес у исследователей вызывает определение сверток над гра‑
фовыми данными. В обозначениях работы [Cha+20] такие методы агреги‑
рования соседства с полным или частичным привлечением учителя можно
представить кодировщиком вида Z = ENC(X, W; ΘE) и декодерами вида Ŵ =
DEC(Z; ΘD) и (или) ŷ S = DEC(Z; ΘS). В этом семействе много моделей, некото‑
рые из них мы обсудим ниже.

23.4.1. Графовые нейронные сети передачи
сообщений
Оригинальная модель графовой нейронной сети (graph neural network –
GNN) [GMS05; Sca+09] была первой формулировкой методов глубокого
обучения применительно к данным с графовой структурой. В ней задача
погружения графа с учителем рассматривается как механизм диффузии ин‑
формации, когда вершины отправляют информацию своим соседям, пока
не будет достигнуто некое равновесное состояние. Формально если даны
случайно инициализированные погружения вершин, Z0, то применяется сле‑
дующее рекуррентная формула:

Tlgm: @it_boooks

896  Погружения графов*
Zt+1 = ENC(X, W, Zt; ΘE),

(23.22)

ŷ S = DEC(X, Z⟙; ΘS).

(23.23)

где параметры ΘE повторно используются на каждой итерации. После до‑
стижения сходимости (t = T) погружения вершин Z⟙ используются, чтобы
предсказать финальный выход, например метки вершин или графов:

Этот процесс повторяется несколько раз, и параметры GNN ΘE и ΘD об‑
учаются с помощью обратного распространения с применением алгоритма
Альмейды–Пинеды [Alm87; Pin88]. В силу теоремы Банаха о неподвижной
точке эта процедура гарантированно сходится к однозначно определенному
решению, если рекуррентное соотношение является сжатием. В свете этого
в работе [Sca+09] исследуются отображения, которые можно выразить с по‑
мощью сетей передачи сообщений:
(23.24)
где f(·) – многослойный перцептрон (МСП), на который наложено ограниче‑
ние сжимающего отображения. Однако на функцию декодера никаких огра‑
ничений не накладывается, она может быть произвольным МСП.
В работе [Li+15] предложены вентильные графовые последовательностные нейронные сети (Gated Graph Sequence Neural Network – GGSNN),
в которых с GNN снято требование сжимающего отображения. В GGSNN ре‑
курсивный алгоритм (23.22) ослаблен путем применения отображающих
функций на протяжении фиксированного числа шагов, а каждая такая функ‑
ция является вентильным рекуррентным блоком [Cho+14a] с параметрами,
разделяемыми на всех итерациях. Модель GGSNN выводит предсказания на
каждом шаге, поэтому она особенно полезна для задач с последовательной
структурой (например, временных графов).
В работе [Gil+17] предложена общая схема графовых нейронных сетей,
названная нейронными сетями передачи сообщений (message passing
neural network – MPNN), которая инкапсулирует многие недавние модели.
В отличие от модели GNN, в которой количество итераций неопределенное,
MPNN предоставляет абстракцию для современных подходов, состоящую из
многослойных нейронных сетей с фиксированным числом слоев. На каждом
слое 𝓁 функции сообщений f 𝓁(·) принимают сообщения от соседей (основан‑
ные на скрытом состоянии соседа), которые затем передаются функциям
агрегирования h𝓁(·):
(23.25)

Hiℓ+1 = hℓ(Hiℓ, miℓ+1),

(23.26)

где H0 = X. После 𝓁 слоев передачи сообщений в скрытых представлениях
вершин оказывается закодирована информация, содержащаяся в окрест‑
ности радиусом 𝓁 переходов.

Tlgm: @it_boooks

Графовые нейронные сети  897

В работе [Bat+18] предложена схема GraphNet, которая обобщает MPNN
на обучение представлений ребер, вершин и всего графа с помощью функ‑
ций передачи сообщений. Явное добавление представлений ребер и графов
придает дополнительную выразительность модели MPNN и позволяет рас‑
пространить графовые модели на новые предметные области.

23.4.2. Спектральные свертки графов
Спектральные методы определяют свертки графов с помощью спектраль‑
ной области лапласиана графа. Эти методы можно отнести к двум крупным
категориям: спектрально­зависимые методы явно вычисляют спектральное
разложение лапласиана (например, спектральные СНС [Bru+14]), а спект­
рально­независимые методы, хотя и опираются на спектральную теорию
графов, но спектральное разложение не вычисляют (например, графовые
сверточные сети, или GCN [KW16a]).
Основной недостаток спектрально-зависимых методов в том, что они
полагаются на спектр лапласиана графа и потому доменно-зависимы (т. е.
не обобщаются на новые графы). К тому же спектральное разложение лапла‑
сиана дорого обходится с вычислительной точки зрения. Спектрально-неза‑
висимые методы обходят эти ограничения с помощью аппроксимаций спек‑
тральных фильтров. Однако спектрально-независимые методы вынуждены
использовать граф W целиком, поэтому плохо масштабируются.
Дополнительные сведения о спектральных подходах см., например, в ра‑
ботах [Bro+17b; Cha+20].

23.4.3. Пространственные свертки графов
Спектрально­зависимые методы принципиально зависят от домена, что огра‑
ничивает применение модели, обученной на одном графе, к новому набо‑
ру данных. С другой стороны, спектрально­независимые методы (например,
GCN) должны использовать весь граф A, так что по мере роста его размера
быстро становятся практически бесполезными.
Для преодоления этих ограничений было разработано другое семейство
графовых сверток (пространственные методы), заимствующее идеи из стан‑
дартных СНС, – применять свертку в пространственной области, опреде‑
ляемой топологией графа. Например, в компьютерном зрении сверточные
фильтры пространственно локализованы, потому что используются фикси‑
рованные прямоугольные патчи вокруг каждого пикселя. С учетом естественного порядка пикселей в изображениях (верх, лево, низ, право) мы можем
повторно использовать веса фильтров в каждой точке. Этот процесс значи‑
тельно уменьшает общее число параметров модели. Хотя такие простран‑
ственные свертки напрямую неприменимы к графовым доменам, но сам
подход нашел отражение в пространственных графовых свертках. Основная
идея – использовать выборку из окрестности и механизмы внимания, что‑
бы создать графовые патчи фиксированного размера, компенсировав тем
самым нерегулярность графов.

Tlgm: @it_boooks

898  Погружения графов*

23.4.3.1. Выборочные пространственные методы
Чтобы преодолеть зависимость от домена и ограничения на память, прису‑
щие GCN, в работе [HYL17] предложен каркас GraphSAGE для индуктивного
обучения погружений вершин. Вместо усреднения сигналов от всех соседей
на расстоянии одного перехода (путем умножения на лапласиан), SAGE про‑
изводит выборку из фиксированных окрестностей (радиуса q) для каждой
вершины. Это устраняет сильную зависимость от фиксированной структуры
графа и открывает возможность обобщения на новые графы. В каждом слое
SAGE вершина агрегирует информацию от вершин, выбранных из ее окрест‑
ности (см. рис. 23.5). В обозначениях GraphEDM правило распространения
можно записать в виде:
ℓ+1
H:,i
= σ(Θℓ1 Hℓ:,i + Θℓ2AGG({Hℓ:,j | vj Î Sample(nbr(vi), q)})),

(23.27)

где AGG(·) – функция агрегирования. Эта функция агрегирования может быть
любым инвариантным относительно перестановок оператором, например
усреднения (SAGE-mean) или max-пулинга (SAGE-pool). Поскольку SAGE ра‑
ботает с окрестностями фиксированного размера (а не со всей матрицей
смежности), он также уменьшает вычислительную сложность обучения GCN.

1. Произвести выборку
из окрестности

2. Агрегировать информацию
о признаках от соседей

3. Предсказать контекст графа и метку
с помощью агрегированной информации

Рис. 23.5  Модель GraphSAGE.
Печатается с разрешения авторов работы [HYL17]

23.4.3.2. Пространственные методы на основе механизма
внимания
Механизмы внимания (раздел 15.4) успешно применялись в языковых моде‑
лях, где они, например, позволяют модели идентифицировать релевантные
части длинных входных последовательностей. Воодушевленные успехом на
ниве естественных языков, ученые предложили использовать аналогичные
идеи для графовых сверточных сетей. Такие графовые модели внимания
обучаются фокусировать внимание на важных соседях на шаге передачи
сообщений посредством параметрических патчей, которые обучаются на
основе вершинных признаков. Это дает больше гибкости при индуктивном
обучении по сравнению с методами, опирающимися на фиксированные веса,
такими как GCN.

Tlgm: @it_boooks

Графовые нейронные сети  899

Модель графовой сети внимания (graph attention network – GAT) из ра‑
боты [Vel+18] является основанным на внимании вариантом GCN. В каждом
слое GAT уделяет внимание окрестности каждой вершины и обучается вы‑
бирать вершины, которые приводят к наилучшему качеству на последующей
задаче. Идея опирается на те же интуитивные соображения, что и [HYL17],
что делает GAT пригодной для индуктивных и трансдуктивных задач. Но,
в отличие от SAGE, которая ограничивает шаг свертки окрестностями фикси‑
рованного размера, GAT позволяет каждой вершине уделять внимание всем
ее соседям – назначая каждому различные веса. Параметры механизма вни‑
мания обучаются с помощью обратного распространения, после чего оценки
внимания нормируются по строкам функцией активации softmax.

23.4.3.3. Геометрические пространственные методы
В работе [Mon+17] предложен общий каркас MoNet, который особенно хо‑
рошо работает, когда вершинные признаки лежат в геометрическом про‑
странстве, например в трехмерном облаке точек или на сетке. MoNet обучает
патчи внимания с помощью параметрических функций в предопределенном
пространственном домене (например, пространственных координат), а за‑
тем применяет сверточные фильтры к результирующему графовому домену.
MoNet обобщает пространственные подходы, которые вводят конструкции
сверток на многообразиях, например геодезические СНС (GCNN) [Mas+15]
и анизотропные СНС (ACNN) [Bos+16]. И в GCNN, и в ACNN используются фикси‑
рованные патчи, определенные в конкретной системе координат, поэтому они
не обобщаются на данные со структурой графа. Но каркас MoNet более общий;
патчи могут описываться в терминах любых псевдокоординат (т. е. вершинных
признаков). Формально если Us – псевдокоординаты, а H𝓁 – признаки из другого
домена, то слой MoNet в наших обозначениях можно записать в виде:
(23.28)
где gk(Us) – обученные параметрические патчи, представляющие собой матрицы N´N. На практике в MoNet для обучения патчей используются гауссовы
ядра, т. е
(23.29)
где μk и Σk – обученные параметры и Σk должна быть диагональной.

23.4.4. Неевклидовы графовые свертки
В разделе 23.3.3 мы говорили, что пространство с гиперболической геометрией позволяет обучать поверхностные погружения иерархических графов,
дающие меньшее искажение, чем евклидовы погружения. Но у поверхност‑
ных погружений есть серьезный недостаток – они плохо обобщаются (если

Tlgm: @it_boooks

900  Погружения графов*
вообще обобщаются) с одних графов на другие. С другой стороны, графовые
нейронные сети, в которых используются вершинные признаки, показали
хорошие результаты на многих задачах индуктивного погружения графов.
Поэтому естественно, что был проявлен интерес к обобщению графовых
нейронных сетей на обучение неевклидовых погружений. При этом главная
проблема – сама природа свертки. Как выполнить свертку в неевклидовом
пространстве, где такие стандартные операции, как скалярное произведение
и умножение матриц, не определены?
Модели гиперболических графовых сверточных сетей (Hyperbolic Graph
Convolution Networks – HGCN) [Cha+19a] и гиперболических графовых ней‑
ронных сетей (Hyperbolic Graph Neural Networks – HGNN) [LNK19] применяют
графовы свертки в гиперболическом пространстве, пользуясь евклидовым
касательным пространством, которое дает приближение первого порядка
к гиперболическому многообразию в точке. На каждом шаге графовой сверт‑
ки погружения вершин отображаются в евклидово касательное пространство
в начале координат, там свертки применяются, а затем производится об‑
ратное отображение в гиперболическое пространство. Такие подходы дают
значительное улучшение на графах с иерархической структурой (рис. 23.6).

Слои GCN

Слои HGCN

Рис. 23.6  Евклидовы (слева) и гиперболические (справа) погружения дерева. Гиперболические погружения обучаются естественным иерархиям в пространстве погружения (глубина индицируется цветом). Перепечатано работы из
[Cha+19a] с разрешения авторов

23.5. глубокие погружения граФоВ
В этом разделе мы будем использовать нейронные сети для реализации по‑
гружения графов при обучении без учителя и с частичным привлечением
учителя.

23.5.1. Обучение погружений без учителя.
В этом разделе мы обсудим потери GNN, обучаемых без учителя (рис. 23.7).

23.5.1.1. Структурное погружение с помощью глубокой сети
В методе структурного погружения с помощью глубокой сети (structural
deep network embedding – SDNE) из работы [WCZ16] используются автокоди‑

Tlgm: @it_boooks

Глубокие погружения графов  901

ровщики, которые сохраняют близость вершин первого и второго порядка.
Кодировщик SDNE принимает на входе строку матрицы смежности (полагает
s(W) = W) и порождает погружение вершин Z = ENC(W, ΘE). (Заметим, что
при этом все вершинные признаки игнорируются.) Декодер SDNE возвраща‑
ет Ŵ = DEC(Z, ΘD), реконструкцию, обученную восстанавливать оригиналь‑
ную матрицу смежности графа. SDNE сохраняет близость вершин второго
порядка благодаря минимизации следующей функции потерь:
(23.30)

Рис. 23.7  Графовые нейронные сети, обучаемые без учителя. Структура графа и входные признаки отображаются в погружения низкой размерности с помощью графового нейронного кодировщика. Затем погружения декодируются
для вычисления потери регуляризации на графе (без учителя). Перепечатано
работы из [Cha+20] с разрешения авторов

Первый член похож на регуляризацию в целевой функции матричной фак‑
торизации с тем отличием, что при вычислении Ŵ не используются внешние
произведения. Второй член используется в методах поверхностного погру‑
жения на основе расстояния.

23.5.1.2. Вариационные графовые автокодировщики
В работе [KW16b] графовые свертки (раздел 23.4.2) используются для об‑
учения погружений вершин Z = GCN(W, X; ΘE). Декодер представляет собой
внешнее произведение: DEC(Z; ΘD) = ZZ⟙. В роли члена реконструкции графа
выступает сигмоидная перекрестная энтропия между истинной матрицей
смежности и предсказанными оценками сходства ребер:
(23.31)
Вычисление члена регуляризации по всем парам вершин на практике ока‑
зывается трудной задачей, поэтому для ее решения в модели графовых ав‑
токодировщиков (Graph Auto Encoders – GAE) используется отрицательная
выборка.
GAE – детерминированная модель, и в дополнение к ней авторы предла‑
гают модель вариационных графовых автокодировщиков (variational graph
auto-encoder – VGAE), которая опирается на вариационные автокодировщи‑

Tlgm: @it_boooks

902  Погружения графов*
ки (см. раздел 20.3.5) для кодирования и декодирования структуры графа.
В VGAE погружение Z моделируется в виде латентной переменной со стан‑
дартным многомерным нормальным априорным распределением p(Z) =
𝒩(Z|0, I), а в качестве амортизированной сети вывода, qΦ(Z|W, X), использу‑
ется графовая свертка. Модель обучается минимизировать соответствующую
отрицательную вариационную нижнюю границу:
NELBO(W, X; Θ) = -𝔼qΦ(Z|W,X)[log p(W|Z)] + KL(qΦ(Z|W, X)||p(Z))
= �G,RECON(W, Ŵ; Θ) + KL(qΦ(Z|W, X)||p(Z)).

(23.32)
(23.33)

23.5.1.3. Итеративное порождающее моделирование
графов (Graphite)
Модель Graphite из работы [GZE19] обобщает GAE и VGAE благодаря более
сложному декодеру. Этот декодер поочередно применяет функцию декоди‑
рования и графовую свертку:

Z(k+1) = GCN(Ŵ (k), Z(k)),
где Z(0) инициализируется выходом сети кодировщика. В результате Graphite
удается обучить более выразительные декодеры. Наконец, как и в случае GAE,
модель Graphite может быть детерминированной или вариационной.

23.5.1.4. Методы на основе сопоставительных потерь
Метод deep graph infomax (DGI) из работы [Vel+19] похож на порождаю‑
щую состязательную сеть (GAN), но предназначен для создания погружений
на уровне графов. Получив один или несколько настоящих (положитель‑
ных) графов с матрицей смежности W Î ℝN´N и вершинными признаками
X Î ℝN´D, этот метод создает фальшивые (отрицательные) матрицы смежно‑
сти W– Î ℝN–´N– и признаки X– Î ℝN–´D. Он обучает (i) кодировщик, который
обрабатывает как настоящие, так и фальшивые примеры, порождая, соот‑
ветственно, Z = ENC(X, W; ΘE) Î ℝN´L и Z– = ENC(X–, W–; ΘE) Î ℝN–´L; (ii) гра‑
фовую пулинговую функцию ℛ : ℝN´L ® ℝL и (iii) дискриминантную функцию
𝒟 : ℝL ´ ℝL ® [0, 1], которая обучается выводить, соответственно, 𝒟(Zi, ℛ(Z))
» 1 и 𝒟(Zj–, ℛ(Z–)) » 0 для вершин, соответствующих заданному графу i Î V
и фальшивому графу j Î V –. Точнее, DGI оптимизирует следующую функцию:
(23.34)
где Θ содержит ΘE параметры ℛ, 𝒟. В первом математическом ожидании
DGI производит выборку из настоящих (положительных) графов. Если задан
только один граф, то метод мог бы выбрать из него некоторые подграфы

Tlgm: @it_boooks

Глубокие погружения графов  903

(например, компоненты связности). Во втором математическом ожидании
производится выборка из фальшивых (отрицательных) графов. В DGI в фаль‑
шивой выборке используется настоящая матрица смежности W– := W, но
строки фальшивой матрицы признаков X– получены перестановкой элемен‑
тов соответствующих строк настоящей X. Функция ENC в DGI – это графовая
сверточная сеть, хотя можно использовать любую GNN. Функция ℛ сводит
весь граф (переменного размера) к одному вектору (фиксированного раз‑
мера). В работе [Vel+19] в качестве ℛ используется построчное среднее, но
можно использовать и другие виды графового пулинга, например учитыва‑
ющие смежность.
В работе [Vel+19] показано, что оптимизация функции (23.34) доставляет
максимум нижней границе взаимной информации между выходами коди‑
ровщика и функцией графового пулинга, т. е. между представлениями от‑
дельных вершин и представлением графа.
В работе [Pen+20] представлен вариант модели, названный графовой взаимной информацией (Graphical Mutual Information – GMI). Вместо того
чтобы максимизировать взаимную информацию между вершинами и всем
графом, GMI максимизирует взаимную информацию между представлением
вершины и ее соседей.

23.5.2. Обучение погружений с частичным
привлечением учителя
В этом разделе мы обсудим потери GNN, обучаемых с частичным привлече‑
нием учителя. Мы рассмотрим простой частный случай, когда используется
нелинейный кодировщик вершинных признаков, но игнорируется структура
графа, т. е. Z = ENC(X, ΘE).

23.5.2.1. SemiEmb

В работе [WRC08] предложен подход, названный погружениями с частичным привлечением учителя (semi-supervised embeddings – SemiEmb). В ка‑
честве кодировщика X используется МСП. В качестве декодера можно взять
графовый декодер на основе расстояния: Ŵ ij = DEC(Z, ΘD)ij = ||Zi - Zj||2, где
|| · || может быть нормой L2 или L1.
SemiEmb регуляризирует промежуточные или вспомогательные слои сети,
применяя тот же регуляризатор, что в функции потерь распространения
меток (23.19). Для предсказания меток по промежуточным погружениям
используется сеть прямого распространения, затем эти метки сравниваются
с истинными с применением кусочно-линейной потери.

23.5.2.2. Planetoid
Скипграммные методы без учителя типа DeepWalk и node2vec обучают по‑
гружения в конвейере, где сначала генерируются случайные блуждания по
графу, а затем они используются для обучения погружений. Скорее всего, эти

Tlgm: @it_boooks

904  Погружения графов*
погружения неоптимальны для последующих задач классификации. Метод
Planetoid из работы [YCS16] обобщает такие методы на основе случайного
блуждания, задействуя информацию о метках вершин в алгоритме погружения.
Сначала Planetoid отображает вершины на погружения Z = [Z c||Z F] =
ENC(X, ΘE), используя нейронную сеть (и снова игнорируя структуру графа).
Погружения вершин Zc улавливают структурную информацию, а погружения
вершин ZF – информацию о признаках. Существует два варианта: трансдук‑
тивный, когде Zc обучается напрямую (как поиск в погружении), и индук‑
тивный, когда Zc вычисляется с помощью параметрических отображений,
воздействующих на входные признаки X. Целевая функция Planetoid содер‑
жит как потерю обучения с учителем, так и потерю регуляризации графа.
Последняя измеряет способность предсказывать контекст с помощью по‑
гружений вершин:
ℒG,RECON(W, Ŵ; Θ) = -𝔼(i,j,γ)log σ(γŴ ij),

(23.35)

где Ŵ ij = Zi⟙Zj и γ Î {-1, 1}, причем γ = 1, если (vi, vj) Î E – положительная
пара, и γ = -1, если (vi, vj) – отрицательная пара. Распределение под знаком
математического ожидания определено самим процессом выборки.
Потеря обучения с учителем в Planetoid – отрицательное логарифмическое
правдоподобие предсказания правильных меток:
(23.36)
где i – индекс вершины, k обозначает метки классов, а ŷ iN вычисляются с по‑
мощью нейронной сети, за которой следует активация softmax, отображаю‑
щая Zi в предсказанные метки.

23.6. приложения
У погружений графов как с учителем, так и без учителя много приложений.
В следующих разделах мы приведем несколько примеров.

23.6.1. Приложения без учителя
В этом разделе мы обсудим типичные приложения погружений графов без
учителя.

23.6.1.1. Реконструкция графа
Популярным приложением является реконструкция графа. В этом случае
цель состоит в том, чтобы обучить функции (параметрические или нет), ото‑
бражающие вершины в многообразие, которые позволят реконструировать
граф. Эта задача считается относящейся к категории «без учителя» в том
смысле, что структуре графа никто специально не обучает. Модель можно

Tlgm: @it_boooks

Приложения  905

обучить, стараясь минимизировать ошибку реконструкции, т. е. ошибку при
восстановлении оригинального графа по обученным погружениям. Специ‑
ально для этой задачи было разработано несколько алгоритмов, и в разде‑
лах 23.3.1 и 23.5.1 мы приведем примеры целевых функций реконструкции.
На верхнем уровне реконструкция графа напоминает задачу понижения раз‑
мерности в том смысле, что основная цель – построить по входным данным
обобщающее погружение низкой размерности. Но вместо сжатия векторов
высокой размерности для получения векторов более низкой размерности,
как в стандартных методах понижения размерности (например, PCA), целью
моделей реконструкции графа является сжатие определенных на графе дан‑
ных и представление их в виде векторов низкой размерности.

23.6.1.2. Предсказание связей
В этом случае целью является предсказание отсутствующих или ненаблюда‑
емых связей (например, связей, которые могут появиться в будущем в ди‑
намических или темпоральных сетях). Предсказание связей также помогает
идентифицировать и устранять случайные связи. Это основное практическое
применение моделей обучения графов, а типичные примеры – предсказание
друзей в социальных сетях, предсказание взаимодействий между пользо‑
вателями и предметами в рекомендательных системах, предсказание по‑
дозрительных связей в системах обнаружения мошеннических действий
(см. рис. 23.8) и предсказание отсутствующих связей между сущностями
в графе знаний (см., например, работу [Nic+15]).

Рис. 23.8  Представление графа финансовых транзакций.
Из статьи http://pgql-lang.org/spec/1.2/

Tlgm: @it_boooks

906  Погружения графов*
Типичный подход к обучению моделей предсказания связей – замаски‑
ровать некоторые ребра графа (положительные и отрицательные), обучить
модель на оставшихся ребрах, а затем протестировать ее на множестве за‑
маскированных ребер. Отметим, что предсказание связей отличается от
реконструкции графа. В первом случае мы хотим предсказывать связи, не
наблюдаемые в исходном графе, а во втором – только вычислить погруже‑
ния, сохраняющие структуру графа, посредством минимизации ошибки ре‑
конструкции.
Наконец, хотя задача предсказания связей похожа на задачи обучения
с учителем в том смысле, что для ребер имеются метки (положительное, от‑
рицательное, ненаблюдаемое), мы относим ее к категории приложений без
учителя, потому что метки ребер обычно не используются во время обуче‑
ния, а служат только для измерения прогностического качества погружений.

23.6.1.3. Кластеризация
Кластеризация особенно полезна для выявления сообществ и имеет много
практических приложений. Например, кластеры существуют в биологиче‑
ских сетях (скажем, группы протеинов с похожими свойствами) и в социаль‑
ных сетях (группы людей с похожими интересами).
Методы обучения без учителя, рассмотренные в этой главе, можно исполь‑
зовать для решения таких задач путем применения алгоритма кластериза‑
ции (например, K средних) к погружениям, построенным кодировщиком.
Кроме того, кластеризацию можно сочетать с алгоритмом обучения при об‑
учении поверхностной [Roz+19] или графовой сверточной [Chi+19a; CEL19]
модели погружений.

23.6.1.4. Визуализация
Существует много готовых инструментов для отображения вершин графа на
двумерные многообразия с целью визуализации. Визуализация позволяет
исследователю качественно оценить свойства графа, понять связи между
вершинами или увидеть кластеры вершин. Из популярных инструментов
упомянем основанные на силовом алгоритме визуализации, который имеет
различные реализации на Javascript для веб-приложений.
Методы погружения графов без учителя также используются для визу‑
ализации: сначала обучается модель кодировщик-декодер (соответствую‑
щая поверхностному погружению или графовой сверточной сети), а затем
представления вершин отображаются в двумерное пространство методом
t-SNE (раздел 20.4.10) или PCA (раздел 20.1). Такой процесс (погружение ®
понижение размерности) часто применяется для качественной оценки алго‑
ритмов обучения на графах. Если у вершин имеются атрибуты, то их можно
использовать для раскраски вершин на диаграммах двумерной визуализа‑
ции. Хорошие алгоритмы погружения размещают вершины со схожими атри‑
бутами близко друг к другу в пространстве погружения, как демонстрируется
на примерах визуализации различных методов в работах [PARS14; KW16a;
AEH+18]. Наконец, помимо отображения вершин на двумерную плоскость,

Tlgm: @it_boooks

Приложения  907

методы, отображающие граф в его представление [ARZP19], также можно
спроецировать на плоскость, чтобы наглядно показать и качественно про‑
анализировать свойства графа в целом.

23.6.2. Приложения с учителем
В этом разделе мы обсудим типичные приложения погружений графов с учи‑
телем.

23.6.2.1. Классификация вершин
Классификация вершин – важное приложение графов, в котором целью яв‑
ляется обучение представлений вершин, способных точно предсказывать
метки вершин. (Иногда это называют статистическим реляционным обучением [GT07].) Например, метками вершин могут быть научные дисци‑
плины в сетях цитирования или пол и другие атрибуты в социальных сетях.
Поскольку пометка больших графов занимает много времени и стоит до‑
рого, особенно популярны методы классификации вершин с частичным при‑
влечением учителя. В такой постановке помечается только часть вершин,
а цель состоит в том, чтобы использовать информацию о связях между вер‑
шинами для предсказания атрибутов непомеченных вершин. Эта постановка
трансдуктивна, потому что существует только один частично помеченный
фиксированный граф. Можно также выполнить индуктивную классифика‑
цию вершин, что соответствует задаче классификации вершин в нескольких
графах.
Отметим, что наличие вершинных признаков может значительно повы‑
сить качество классификации вершин, если они как-то описывают целевую
метку. Действительно, недавно разработанные методы, такие как GCN (раз‑
дел 23.4.2) и GraphSAGE (раздел 23.4.3.1), показывают отменное качество
в нескольких тестах классификации вершин благодаря своей способности
объединять структурную информацию с семантикой, заключенной в при‑
знаках. С другой стороны, такие методы, как случайное блуждание, не по‑
зволяют использовать информацию из признаков и потому хуже работают
на подобных задачах.

23.6.2.2. Классификация графов
Классификация графов – это приложение, обучаемое с учителем, в котором
целью является предсказание меток графов. Это индуктивные задачи, типич‑
ным примером является классификация химических соединений (например,
предсказание токсичности или запаха по структуре молекулы, рис. 23.9).
Для классификации графов необходимо какое-то понятие пулинга, чтобы
агрегировать информацию с уровня вершин на уровень графа. Выше уже от‑
мечалось, что обобщить понятие пулинга на произвольные графы – нетри‑
виальная задача из-за отсутствия регулярности в структуре графа; поэтому
графовый пулинг – область активных исследований. Помимо рассмотренных

Tlgm: @it_boooks

908  Погружения графов*
выше методов обучения с учителем, был предложен ряд методов обучения
представлений графов без учителя [Tsi+18; ARZP19; TMP20].
Лираль

ландыш
цветочный

свежий
сладкий

ландыш
цветочный

ландыш свежий
цветочный сладкий

без запаха

ландыш
свежий
цветочный с ароматом розы

Рис. 23.9  Структурно схожие молекулы необязательно имеют схожие дескрипторы запаха. (A) Лираль, референтная молекула. (B) Молекулы с похожей
структурой могут иметь похожие дескрипторы запаха. (C) Однако небольшое
изменение структуры может лишить молекулу запаха. (D) С другой стороны,
существенное изменение структуры может оставить запах без изменения. На
основе рис. 1 из работы [SL+19], оригинал в работе [OPK12]. Печатается с разрешения Бенджамина Санчеса-Ленгелинга

Tlgm: @it_boooks

Приложение

A
Обозначения

a.1. ВВедение

Очень трудно выработать единую непротиворечивую систему обозначений,
покрывающую все разнообразие данных, моделей и алгоритмов, обсуждае‑
мых в этой книге. Кроме того, различные соглашения применяются не только
в разных дисциплинах (машинном обучении, статистике и оптимизации),
но и в разных книгах и статьях в рамках одной дисциплины. Тем не менее
мы старались придерживаться единой системы. Ниже кратко перечислены
основные обозначения, встречающиеся в книге, хотя в отдельных разделах
может применяться другая нотация. Заметим также, что один и тот же символ
может иметь разный смысл в зависимости от контекста, хотя мы старались
по возможности избегать таких разночтений.

a.2. общепринятые математиЧеские симВолы
Ниже перечислены некоторые общепринятые символы.
Символ

O(·)



𝒮K
𝒮D

{1, …, N}
1:N
[ℓ, u]

Значение
Бесконечность
Стремится, например n
Пропорционально, т. е. y = ax можно записать как y x
По определению равно
О большое; приближенный порядок величины
Множество целых положительных чисел
Множество вещественных чисел
Множество положительных вещественных чисел
K-мерный вероятностный симплекс
Конус положительно определенных матриц размера D D
Приближенно равно
Конечное множество {1, 2, …, N}
Конечное множество {1, 2, …, N}
Непрерывный интервал {ℓ x u}

Tlgm: @it_boooks

910  Обозначения

a.3. Функции
Функция вообще обозначается буквой f (иногда также g или h). В книге встре‑
чается много конкретных функций, например tanh(x) или σ(x). Когда скаляр‑
ная функция применяется к вектору, предполагается, что она применяется
к каждому элементу, например: x2 = [x21, …, x2D]. Функционалы (функции от
функции) записываются ажурным шрифтом, например ℍ(p) обозначает эн‑
тропию распределения p. Функция с фиксированными параметрами θ обо‑
значается f(x; θ), а иногда fθ(x). Ниже перечислено несколько часто встреча‑
ющихся функций (без свободных параметров).

A.3.1. Функции с одним аргументом
Символ
⌊x⌋
⌈x⌉
¬a
𝕀(x)
δ(x)
|x|
|S|
n!
log(x)
exp(x)

Значение
Пол x, т. е. результат округления до ближайшего меньшего целого
Потолок x, т. е. результат округления до ближайшего большего целого
Логическое НЕ
Индикаторная функция: 𝕀(x) 1, если x истинно, иначе 𝕀(x) 0
, если x 0, иначе δ(x) 0
Дельта-функция Дирака: δ(x)
Абсолютная величина
Размер (мощность) множества
Факториал
Натуральный логарифм x
Экспоненциальная функция ex

Γ(x)
Ψ(x)

Гамма-функция: Γ(x) =

σ(x)

0

ux 1e udu

Дигамма-функция: Ψ(x) = (d/dx)log Γ(x)
Сигмоидная (логистическая) функция, 1/(1

A.3.2. Функции двух аргументов
a
a

Символ
b
b

Значение
Логическое И
Логическое ИЛИ

B(a, b)

Бета-функция: B(a, b)

( nk )

Число сочетаний из n по k, n!/(k!(n

δij
u⊙v
u⊛v

Символ Кронекера, 𝕀(i j)
Поэлементное произведение двух векторов
Свертка двух векторов

k)!)

e x)

Tlgm: @it_boooks

Линейная алгебра  911

A.3.3. Функции более двух аргументов
Символ

Значение

B(x)

Многомерная бета-функция

Γ(x)

Многомерная гамма-функция

S(x)

Функция softmax

a.4. линейная алгебра
В этом разделе описываются обозначения, применяемые в линейной алгебре
(см. главу 7).

A.4.1. Общие обозначения
Векторы обозначаются строчными полужирными буквами, например: x, w.
Матрицы обозначаются прописными полужирными буквами, например:
X, W. Скаляры обозначаются строчными обычными буквами. Создание век‑
тора из списка N скаляров обозначается x = [x1, …, xN]; в зависимости от кон‑
текста это может быть вектор-строка или вектор-столбец. (Если явно не ого‑
ворено противное, то предполагаются векторы-столбцы). Создание матрицы
M´N из списка векторов обозначается X = [x1, …, xN], если векторы образуют
столбцы матрицы, и X = [x1; … ; xM], если векторы образуют строки матрицы.

A.4.2. Векторы
Приведем стандартные обозначения для векторов. (Предполагается, что u
и v – N-мерные векторы.)
Символ
u v
uv⟙
u⊙v
v⟙
dim(v)
diag(v)
1 или 1N
0 или 0N


Значение
Скалярное (внутреннее) произведение, Ni 1 uivi
Внешнее произведение (матрица N N)
Поэлементное произведение, [u1v1, …, uN vN]
Транспонирование v
Размерность v
Диагональная матрица N N, построенная по вектору v
Вектор, состоящий из одних единиц (длины N)
Вектор, состоящий из одних нулей (длины N)

Tlgm: @it_boooks

912  Обозначения
Символ
||v||

||v||2

||v||1

Значение
Евклидова 𝓁2-норма

𝓁1-норма

A.4.3. Матрицы
Ниже приведена стандартная нотация для матриц. (Предполагается, что S –
квадратная матрица размера N´N, X и Y имеют размер M´N, а Z – размер
M¢´N¢.)
Символ
X:,j
Xi,:
Xij
S≻0
tr(S)
det(S)
|S|
S 1
X†
X⟙
diag(S)
I или IN
X⊙Y
X⊗Y

Значение
j-й столбец матрицы
i-я строка матрицы (рассматриваемая как вектор-столбец)
Элемент (i, j) матрицы
Истина тогда и только тогда, когда S – положительно определенная
матрица
След квадратной матрицы
Определитель квадратной матрицы
Определитель квадратной матрицы
Обращение квадратной матрицы
Псевдообращение матрицы
Транспонирование матрицы
Диагональный вектор квадратной матрицы
Единичная матрица размера N N
Поэлементное произведение
Произведение Кронекера (см. раздел 7.2.5)

A.4.4. Матричное исчисление
В этом разделе описываются обозначения, используемые нами в матричном
исчислении (см. раздел 7.8). Пусть θ Î ℝN – вектор, а f : ℝN ® ℝ – скалярная
функция. Производная f по ее аргументу обозначается следующим образом:
(A.1)
Градиент – это вектор, который вычисляется в точке пространства. Чтобы
подчеркнуть этот факт, мы иногда пишем
(A.2)
Можно также вычислить (симметричную) матрицу N´N вторых частных
производных, гессиан:

Tlgm: @it_boooks

Вероятность  913

(A.3)

Гессиан – это матрица, которая вычисляется в точке пространства. Чтобы
подчеркнуть этот факт, мы иногда пишем
(A.4)

a.5. оптимизация
В этом разделе описываются обозначения, используемые нами, когда речь
идет о методах оптимизации (см. главу 8).
Мы часто обозначаем целевую функцию, или функцию стоимости, подле‑
жащую минимизации, ℒ(θ), где θ – переменные, по которым производится
оптимизация (часто это параметры статистической модели). Значение пара‑
метра, при котором достигается минимум, обозначается θ∗ = argminθÎΘ ℒ(θ),
где Θ – множество, на котором оптимизируется целевая функция. (Отметим,
что таких оптимальных значений может быть несколько, поэтому правиль‑
нее было бы писать θ∗ Î argminθÎΘ ℒ(θ).)
При выполнении итеративной оптимизации номер итерации обозначает‑
ся t. Буквой ρ обозначается размер шага (скорость обучения). Таким образом,
алгоритм градиентного спуска (раздел 8.4) можно записать в виде: θt+1 =
θt - ρ t g t.
Мы часто используем символ крышки для обозначения оценки или пред‑
сказания (например, θ̂, ŷ), верхнюю или нижнюю звездочку для обозначения
истинного (но обычно неизвестного) значения (например, θ∗ или θ∗), над‑

черкивание для обозначения среднего значения (например, θ ).

a.6. Вероятность
В этом разделе описываются обозначения, используемые нами в контексте
теории вероятностей (см. главу 2).
Мы обозначаем функцию плотности вероятности (ФПВ) или функцию ве‑
роятности (ФВ) буквой p, функцию распределения буквой P, а вероятность
бинарного события – Pr. Распределение случайной величины X обозначается
p(X), а распределение случайной величины Y – p(Y); эти обозначения от‑
носятся к разным распределениям, хотя в обоих случаях используется один
и тот символ p. (Если возможна неоднозначность, то мы пишем pX(·) и pY(·).)
Аппроксимации распределения p часто обозначаются q, а иногда p̂.

Tlgm: @it_boooks

914  Обозначения
В некоторых случаях мы различаем саму случайную величину (v) и при‑
нимаемое ей значение. Тогда случайная величина (скалярная) обозначается
прописной буквой (например, X), а ее значение – строчной буквой (x). Но
часто это различие игнорируется. Например, иногда мы пишем p(x) для обо‑
значения как скалярного значения (распределения, вычисленного в точке),
так и самого распределения – в зависимости от того, является X наблюдаемой
или нет.
Запись X ~ p означает, что X имеет распределение p. Запись X ⊥ Y | Z означает, что X условно независима от Y при условии Z. Если X ~ p, то мы обо‑
значаем математическое ожидание f(X) следующим образом:
(A.5)
Если f – тождественная функция, то мы пишем
персия обозначается

𝔼[X]. Аналогично дис‑
(A.6)

Если x – случайный вектор, то ковариационная матрица обозначается
(A.7)
Если X ~ p, то мода распределения обозначается
(A.8)
Параметрические распределения обозначаются p(x|θ), где x – случайные
величины, θ – параметры, а p – функция плотности вероятности или функция
вероятности. Например, 𝒩(x|μ, σ2) – гауссово (нормальное) распределение со
средним μ и стандартным отклонением σ.

a.7. теория инФормации
В этом разделе описываются обозначения, используемые нами в контексте
теории информации (см. главу 6).
Если X ~ p, то мыобозначаем (дифференциальную) энтропию ℍ(X) или
ℍ(p). Если Y ~ q, то расхождение Кульбака–Лейблера между распределениями
p и q обозначается 𝕂𝕃(p||q). Если (X, Y) ~ p, то взаимная информация между
X и Y обозначается 𝕀(X, Y).

Tlgm: @it_boooks

Статистика и машинное обучение  915

a.8. статистика и машинное обуЧение
В этом разделе описываются обозначения, которыми мы пользуемся при
обсуждении статистического обучения.

A.8.1. Обучение с учителем
В случае обучения с учителем наблюдаемые признаки (называемые также
входами или ковариатами) обозначаются x Î 𝒳. Часто 𝒳 = ℝD, т. е. признаки
вещественные. (Заметим, что сюда относится и случай дискретных призна‑
ков, которые можно представить унитарными векторами.) Иногда мы вычис‑
ляем заданные вручную признаки входных данных, они обозначаются ϕ(x).
Имеются также выходы (цели или переменные отклика) y Î 𝒴, которые мы
хотим предсказать. Наша задача – обучить условное распределение вероят‑
ностей p(y|x, θ), где θ – параметры модели. Если 𝒴 = {1, …, C}, то такая задача
называется классификацией. Если 𝒴 = ℝC, то задача называется регрессией
(часто C = 1, т. е. предсказывается скалярный выход).
Параметры θ оцениваются по обучающим данным, обозначаемым 𝒟 =
{(xn, yn) : n Î {1, …, N}} (т. е. N – число обучающих примеров). Если 𝒳 = ℝD, то
обучающие входы можно сохранить в матрице плана размера N´D, кото‑
рая обозначается X. Если 𝒴 = ℝC, то обучающие выходы можно сохранить
в матрице Y размера N´С. Если 𝒴 = {1, …, C}, то каждую метку класса можно
представить C-мерным битовым вектором, в котором ровно один элемент
равен 1 (это называется унитарным кодированием), поэтому все обучаю‑
щие выходы можно сохранить в бинарной матрице Y размера N´С.

A.8.2. Обучение без учителя и порождающие
модели
Обучение без учителя обычно формализуется как задача оценивания без‑
условной плотности, т. е. моделирования p(x|θ). В некоторых случаях мы
хотим оценивать условную плотность; значения, по которым производится
обусловливание, обозначаются u, т. е. модель принимает вид p(x|u, θ). Это
похоже на обучение с учителем с тем отличием, что размерность x обычно
велика (например, изображение), а размерность u мала (например, метка
класса или текстовое описание).
В некоторых моделях имеются латентные переменные, не наблюдаемые
в обучающих данных. Такие модели называются моделями с латентными
переменными (latent variable models – LVM). Латентные переменные в при‑
мере n обозначаются zn Î 𝒵. Иногда латентные переменные называются
скрытыми и обозначаются hn. Видимые же переменные обозначаются vn.
Как правило, латентные переменные являются непрерывными или дискрет‑
ными, т. е. 𝒵 = ℝL или 𝒵 = {1, …, K}.

Tlgm: @it_boooks

916  Обозначения
Большинство LVM имеют вид p(xn, zn|θ); такие модели используются для об‑
учения без учителя. Однако LVM можно использовать и для обучения с учите‑
лем. Именно, можно создать либо порождающую (безусловную) модель вида
p(xn, yn, zn|θ), либо дискриминантную (условную) модель вида p(yn, zn|xn, θ).

A.8.3. Байесовский вывод
При работе с байесовским выводом мы записываем априорное распределе‑
ние параметров в виде p(θ|ϕ), где ϕ – гиперпараметры. Для сопряженных
моделей апостериорное распределение имеет такую же форму, как априор‑
ное (по определению). Поэтому мы можем просто обновить гиперпараметры,
перейдя от априорного значения к апостериорному .
В вариационном выводе (раздел 4.6.8.3) мы используем ν для представле‑
ния параметров вариационного апостериорного распределения, т. е. p(θ|𝒟)
≈ q(θ|ν). Мы оптимизируем вариационную нижнюю границу относительно
ν, чтобы это приближение было хорошим.
При выполнении выборки методом Монте-Карло мы используем нижний
или верхний индекс s для обозначения выборки (например, θs или θs).

a.9. аббреВиатуры
Ниже приведен список некоторых встречающихся в книге аббревиатур.
Аббревиатура
ГНС
КЛ
МСП
РНС
св
СГС
СКО
СНС
ФВ
ФПВ
cdf
DAG
DML
EB
EM
GLM
GMM
HMC
HMM

Расшифровка
Глубокая нейронная сеть
Расхождение Кульбака–Лейблера
Многослойный перцептрон
Рекуррентная нейронная сеть
Случайная величина
Стохастический градиентный спуск
Среднеквадратическая ошибка
Сверточная нейронная сеть
Функция вероятности
Функция плотности вероятности
Функция распределения
Ориентированный ациклический граф
Глубокое обучение метрики
Эмпирический байесовский
Алгоритм математического ожидания-максимизации
Обобщенная линейная модель
Модель гауссовой смеси
Гамильтонов метод Монте-Карло
Скрытая марковская модель

Tlgm: @it_boooks

Аббревиатуры  917
Аббревиатура
KDE
KNN
LSTM
LVM
MAP
MCMC
MLE
NLL
OLS
psd
PNLL
PGM
RSS
RVM
SVI
SVM
VB

Расшифровка
Оценка ядерной плотности
K ближайших соседей
Долгая краткосрочная память (вид РНС)
Модель латентных переменных
Оценка апостериорного максимума
Метод Монте-Карло по схеме марковской цепи
Оценка максимального правдоподобия
Отрицательное логарифмическое правдоподобие
Метод обыкновенных наименьших квадратов
Положительно определенная (матрица)
NLL со штрафом
Вероятностная графовая модель
Сумма квадратов невязок
Метод релевантных векторов
Стохастический вариационный вывод
Метод опорных векторов
Вариационный байесовский

Tlgm: @it_boooks

Предметный указатель
Символы
1×1 свертка, 569
ν-SVM классификатор, 702

A
AdaBoostClassifier, 731
Adaboost.M1, 730
AdaDelta, 375
AdaGrad, 375
Adam, 376, 539
AlexNet, 577
ALS, 875
AMSGrad, 376
ARD, 502, 679, 711
à trous алгоритм, 582
AUC, 233
AugMix, 741
AutoAugment, 741
Auto-ML, 582
AutoRec, 878

B
B-сплайны, 488
BALD, 770
BatchBALD, 770
BBO, 399
BERT, 644
BFGS, 364
BFGS с ограниченной памятью, 364, 436
BIC, 247
BinomialBoost, 733
BIO, 648
BiT, 637
Blue Brain проект, 528
BMA, 179
BMM, 145
BN, 572
BNN, 551
BookCrossing, 874

CART, 716, 718
Caser, 883
CatBoost, 734
CatPCA, 798
CBOW, 835
CCA, 802
CIFAR, 56
CLIP, 751
cloze, 645, 747
CoLA, 650
COVID-19, 84
CPD, 147
CPT, 147
crosscat, 871
CV, 174, 257

D
DAG, 146, 536
DeepDream, 596
deep graph infomax, 902
DeepWalk, 893
DenseNets, 581
DFO, 399

E
E-шаг, 391, 392
EB, 198
ECM, 791
EER, 233
EfficientNetv2, 582
ELBO, 208, 392, 809
ELM, 696
ELMo, 643
ELU, 542
EM, 389
EMA, 167
EMNIST, 55
ERM, 163, 254
EWMA, 167, 375

C

F

C4, 650
C4.5, 718

F-мера, 235
FaceNet, 665

Tlgm: @it_boooks

Предметный указатель  919
FAISS, 657
Fashion-MNIST, 56
FFNN, 515
FIM, 210
FISTA, 486
FLDA, 409

G
GAM, 490
GAN, 753
GCN, 897
GDA, 402
GELU, 541, 543
GLM, 505
glmnet, 485
GloVe, 837
GMM, 143
GMRES, 460
GNN, 515, 895
GoogLeNet, 578
GPT, 649
GPT-2, 649
GPT-3, 649
GPU, 526, 547
GPyTorch, 695
Graphite, 902
GraphNet, 897
GraphSAGE, 898
GraRep, 892
GRU, 612
Gshard, 638

H
HAC, 846
HDI, 200
HMC, 208
HPD, 199

I
I-проекция, 280
ID3, 718
ILSVRC, 56
ImageNet, 56, 526, 562, 577
ImageNet-21k, 637
IMDB, 58, 177
inceptionism, 596
InfoNCE, 664
Iris набор данных, 36
IRLS, 429
isomap, 820
ISTA, 486

J
Jeopardy, 229
Jester, 874
JFT, 637
JPEG, 854
JVP, 342

K
K ближайших соседей метод, 653
K медоидов алгоритм, 855
K средних алгоритм, 145, 851
k-d дерево, 657
KDE, 669, 671
K-means++, 855
KNN, 653

L
L0-норма, 471
L1-потеря, 237
L1-регуляризация, 472
L1VM, 711
L2-потеря, 236
L2-регуляризация, 172, 430, 467
L2VM, 711
LAR, 487
LARS, 487
lasso, 471
L-BFGS, 364
LCA, 660
LeNet, 571, 575
LightGBM, 734
Linformer, 641
LMNN, 659
LMS, 368
LOESS, 675
logit функция, 92
logitBoost, 731
log-sum-exp трюк, 97
LOWESS, 675
lse функция, 97
LSH, 657
LSTM, 613

M
M1, 764
M2, 764
M-проекция, 279
M-шаг, 391
MALA, 592
MAML, 771, 772

Tlgm: @it_boooks

920  Предметный указатель
mAP, 235
MAP, 169
MAP оценка, 170, 228, 255
MART, 734
max-пулинг, 570
McKernel, 696
MCMC, 208
MDL, 248
MDN, 558
MICe, 286
mixmatch, 756
MLE, 42, 154
MLP-mixer, 515
MM-алгоритмы, 389
MMSE, 237
MNIST, 55, 575
MobileNet, 585
MoCo, 750
modus tollens, 262
MoE, 557
MoG, 143
MOM, 165
MoNet, 899
MovieLens, 874
MVN, 126

N
N-парная потеря, 664
NAS, 582
NBC, 412
NCA, 660
NCM, 407
NEF, 139
Netflix Prize, 874
NetMF, 894
NeurIPS, 54
NHST, 260
NHWC, 569
NIPS, 54
NLL, 154
NLP, 57
node2vec, 893
NT-Xent, 664

P
p-значение, 240, 261
PAC-обучаемость, 257
Padam, 376
PageRank, 324
PAM, 855
PCA, 50, 776
PCA-отбеливание, 324
PCA с учителем, 799
PCA экспоненциального семейства, 797
Performer, 641
PersonLab, 591
PGM, 146
Planetoid, 904
PLS, 801
PMF, 876
PMI, 834
POS, 644
PPCA, 789
PreResnet, 580
ProxQuant, 389

Q
QALY, 226
QP, 382

R
RAND-WALK, 839
RANSAC, 494
RBF, 670
RBF-сеть, 554
RBF-ядро, 554, 677
Reformer, 640
ReLU, 519, 542
ReLU с утечкой, 541, 542
ResNet, 544, 579
ResNet-18, 580
resnet с предактивацией, 580
RFF, 695
RMSE, 162
ROC-кривая, 231
RSS, 162
RVM, 711

O

S

Olivetti набор данных о лицах, 778
OLS, 162, 338, 457
OOD, 658
OpenPose, 591
opt-einsum библиотека, 315

SAGA, 373, 427
SAMME, 730
SARS-CoV-2, 84
SELU, 543
seq2seq, 59, 607

Tlgm: @it_boooks

Предметный указатель  921
seq2vec, 606
SGNS, 836
Shampoo, 377
SiLU, 543
SimCLR, 748
SMACOF, 818
SMO, 700
SNLI, 627
softmax, 41, 94
softplus, 101, 541
Stanford Natural Language Inference, 627
STSB, 650
STS Benchmark, 629
SVM, 697
SVM-регрессия, 710
SVRG, 372
SWA, 372
swish, 541, 543

T
T5, 650
TF-IDF, 62
TICe, 286
TinyImages, 56
TL\;DR, 649
TPU, 528
t-SNE, 827

U
U-образная кривая, 48
U-сеть, 589
UMAP, 831
UNK, 64

V
VAE, 808
varimax, 795
VC-размерность, 258
vec2seq, 603
VI, 207
ViT, 637
VJP, 342
VQ, 853

W
WAIC, 864
Watson система, 229
wavenet, 619
WebText, 649
WMT, набор данных, 59

word2vec, 835
WSD, 644

X
XGBoost, 734
XOR задача, 516

Y
Yogi, 376
YOLO, 588

Z
ZCA, 324

А
Автоковариационная матрица, 122
Автокодировщик, 802
Автокорреляционная матрица, 122
Автоматическое дифференцирование, 530
Автоматическое определение
релевантности, 502, 679, 711
Авторегрессионная модель, 148
Агент, 53, 225
Агрегированный градиент, 373
Адамик-Адара индекс, 891
Адаптация домена, 743, 752
Адаптеры, 744
Адаптивная индивидуальная
нормировка, 601
Адаптивная скорость обучения, 374, 376
Адаптивные базисные функции, 726
Аддитивная модель, 726
Аддитивное внимание, 623
Адъюнкт, 537
Аисты, 123
Акаике информационный критерий, 247
Аксон, 527
Активное множество, 487
Активное обучение, 497, 768
Активное обучение с пулом, 768
Алгоритм Ланжевена
без поправки, 592
с поправкой Метрополиса, 592
Алгоритм
обучения перцептрона, 427
стрельбы, 485
Алеаторная неопределенность, 41, 70
Альтернативная гипотеза, 240, 258
Амортизированный вывод, 809
Анализ
компонент соседства, 660

Tlgm: @it_boooks

922  Предметный указатель
латентных совпадений, 660
эмоциональной окраски, 58
Аннотирование изображений, 433, 586
Ансамблевое обучение, 721
Ансамбль, 371, 550
Антисвертка, 584
Апостериорная медиана, 237
Апостериорная ожидаемая потеря, 226
Апостериорное прогнозное
распределение, 179, 184, 201, 449, 495
Апостериорное распределение, 84, 178
Апостериорное среднее, 237
Апостериорный вывод, 84
Аппаратные ускорители, 528
Аппроксимация кривой, 48
Априорное распределение, 83, 169, 179
Априорное распределение
по умолчанию, 197
Армихо метод поиска с возвратом, 358
Архитектура кодировщик-декодер, 608
Асимптотическая нормальность, 210
Асинхронное обучение, 548
Ассоциативность, 307
Атомная бомба, 116
Аффинная функция, 41

Б
Базис, 296
Базисные векторы, 308
Базовая мера, 139
Байесовская интерпретация бритвы
Оккама, 245
Байесовская нейронная сеть, 551
Байесовская оптимизация, 768
Байесовская оценка, 226, 250
Байесовская ошибка, 177, 654
Байесовская сеть, 146
Байесовская статистика, 178, 208
Байесовская теория принятия
решений, 225
Байесовская факторная регрессия, 800
Байесовский выбор модели, 246
Байесовский вывод, 84
Байесовский доверительный
интервал, 195, 198, 214
Байесовский информационный
критерий, 247
Байесовский риск, 250
Байесовское активное обучение по
несогласию, 770
Байесовское глубокое обучение, 551
Байесовское машинное обучение, 200

Байесовское персонализированное
ранжирование, 880
Байесовское усреднение модели, 179
Баллонная оценка ядерной плотности, 673
Барицентрические координаты, 823
Барнса-Хата алгоритм, 831
Безразличие к риску, 227
Безусловная независимость, 76
Безусловная оптимизация, 349
Берксона парадокс, 149
Бернулли распределение, 89
Бесконечно широкая RBF-сеть, 694
Бесселя функция, 680
Бета-биномиальное распределение, 186
Бета-распределение, 105, 170, 181
Бета-функция, 105
Биграммная модель, 149, 273
Биекция, 109
Бикластеризация, 869
Бинарная классификация, 35, 84
Бинарная логистическая регрессия, 420
Бинарная перекрестная энтропия, 423
Бинарная связь, 389
Бинарная функция потерь, 40, 228
Биномиальная регрессия, 506
Биномиальное распределение, 89
Биномиальный коэффициент, 90
Биты, 268
Близорукая стратегия, 770
Блоки, 150
Блок линейной ректификации, 519, 542
Блочно-диагональная матрица, 303
Бриера оценка, 240, 762
Броуновское движение, 680
Булева логика, 70
Бустинг, 726
Бустинг наименьших квадратов, 487
Бутстрэп, 211
Быстрая адаптация, 772
Быстрое преобразование Адамара, 696
Бэггинг, 723

В
Важность признака, 736
Вальда интервал, 215
Вариационная нижняя оценка, 208, 392,
809
Вариационная РНС, 604
Вариационное исчисление, 142
Вариационный автокодировщик, 51, 763,
795, 808
Вариационный вывод, 207

Tlgm: @it_boooks

Предметный указатель  923
Вариационный EM-алгоритм, 393
Вариация информации, 846
Вектор, 292
Векторное квантование, 853
Векторное поле, 340, 805
Векторное пространством, 295
Вектор-столбец, 292
Вентиль
забывания, 614
обновления, 613
сброса, 613
Вентильные графовые
последовательностные нейронные
сети, 896
Верификация лиц, 658
Вероятная приближенная корректность,
257
Вероятностная матричная
факторизация, 876
Вероятностная точка зрения, 34
Вероятностное предсказание, 238
Вероятностный анализ главных
компонент, 789
Вероятностный вывод, 84
Вероятностный прогноз, 238
Вероятностный симплекс, 189
Верхнетреугольная матрица, 304
Веса, 42
Веса смеси, 188
Вес внимания, 621
Взаимная информация, 122, 280
Взаимная ковариация, 121
Взаимная независимость, 117
Взаимозаменяемость, 150
Взвешенная линейная регрессия, 461
Взвешенных наименьших квадратов
метод, 461
Видимые переменные, 915
Видроу–Хоффа правило, 368
Визуальные n-граммы, 752
Виртуальное состязательное обучение, 761
Витерби декодирование, 616
Вишарта нормальное обратное
распределение, 397
Включающее расхождение КЛ, 279
Вложенная оптимизация, 256
Вложенное разбиение, 871
Внесловарные слова, 61, 64
Внешнее произведение, 307
Внимание, 624
Внимание в форме масштабированного
скалярного произведения, 623
Внутреннее произведение, 307

Внутренний дрейф ковариат, 573
Внутренняя размерность, 815
Вознаграждение, 54
Вопросно-ответная система, 59, 648
Вороного диаграмма, 654, 852
Вороного метод итераций, 855
Восполнение, 65
Всемирная организация
здравоохранения, 286
Всеобъемлющая сегментация, 589
Вспомогательные точки, 694
Вульфа условия, 364
Входной вентиль, 613
Выбор ведущего элемента, 333
Выборка
по правилу квадратного корня, 443
со сбалансированными классами, 442
со сбалансированными экземплярами,
442
максимальной энтропии, 770
Выбор модели, 242
Выборочная дисперсия, 195
Выборочная эффективность, 52
Выборочное распределение, 209
Выбор переменных, 479
Выбросы, 102, 237, 443, 491
Вывод, 153, 178
Выделение
именных групп, 648
признаков, 46
Выпуклая комбинация, 183
Выпуклая оптимизация, 349
Выпуклая функция, 350, 426
Выпуклое множество, 349
Выпуклое ослабление, 473
Выходной вентиль, 613
Выявление признаков, 565

Г
Галерея, 587, 657
Гамильтонов метод Монте-Карло, 208
Гамма-распределение, 106
Гауссов дискриминантный анализ, 402
Гауссово распределение, 97
Гауссово ядро, 553, 641, 670, 677
Гауссов процесс, 554, 683
Гельмгольца машина, 809
Генератор случайных чисел, 116
Геометрическая прогрессия, 168, 360
Геометрическое глубокое обучение, 885
Гессиан, 342, 426, 912
Гетероскедастическая регрессия, 100, 461

Tlgm: @it_boooks

924  Предметный указатель
Гипероним, 440
Гиперпараметры, 181, 197, 255, 399
Гиперплоскость, 421
Гиперстолбец, 569
Гипотеза, 627
Гипотеза многообразия, 814
Гладкая оптимизация, 353
Глобальная оптимизация, 346
Глобально сходящийся алгоритм, 347
Глобальный оптимум, 346, 426
Глорота инициализация, 546
Глубокая смесь экспертов, 558
Глубокие машины факторизации, 881
Глубокие нейронные сети, 47, 515
Глубокий CCA, 802
Глубокое обучение метрики, 659, 661
ГНС, 47, 514
Год жизни с поправкой на качество, 226
Голова, 523
Гомоскедастическая регрессия, 100
Гомотопии метод, 487
Градиент, 340, 356
Градиентный бустинг, 732
Градиентный бустинг деревьев, 734
Грама матрица, 305, 312, 600, 677
Грама-Шмидта ортогонализация, 306
Граница объединения, 258
Граничная оптимизация, 389, 436
Граф
вычислений, 536
знаний, 905
График
каменистой осыпи, 785
невязок, 465
парных отношений, 37
частичной зависимости, 738
Графические процессоры, 526, 546
Графовая вероятностная модель, 146
Графовая взаимная информация, 903
Графовая сеть внимания, 899
Графовые модели, 77
Графовые нейронные сети, 515, 895
Графовые сверточные сети, 897
Гребневая регрессия, 172, 218, 467, 548
Группирующий эффект, 484
Групповая нормировка, 574
Групповая разреженность, 481
Групповой lasso, 482
Группы, 174, 257
Гумбеля шум, 617

Д
Дальнее управление, 775

Датазаврова дюжина, 81
Дважды смягченная логистическая
регрессия, 446
Двойное центрирование, 312
Двойное экспоненциальное
распределение, 105
Двойственная задача, 699
Двойственная форма, 700
Двойственные переменные, 707
Двумерное гауссово распределение, 126
Двунаправленная РНС, 607
Двухуровневая оптимизация, 256
Девиация, 719
Дедукция, 262
Действия, 225
Декартовы координаты, 111
Декодер, 802, 811
Декодирование, 776
Дельта-правило, 368
Дельта-функция Дирака, 102, 201
Дендриты, 527
Дендрограмма, 846
Деревья
классификации и регрессии, 716
регрессии с градиентным бустингом, 734
Детальная классификация, 57, 773
Деформация, 816
Джини индекс, 719
Диагонализируемая матрица, 321
Диагональная ковариационная
матрица, 127
Диагональная матрица, 303
Диагональное преобладание, 305
Диаметр, 849
Дикое обучение, 548
Динамический граф, 537
Динамическое программирование, 616
Дирихле
распределение, 189, 415
энергия, 826
Дискретизация, 275, 284
Дискретная оптимизация, 346
Дискретная случайная величина, 72
Дискретный AdaBoost, 730
Дискриминантная функция, 402
Дискриминантный классификатор, 401,
417
Дисперсия, 78, 99
Дистилляция знаний, 767
Дистрибутивная гипотеза, 832
Дистрибутивность, 307
Дифференциальная энтропия, 274
Дифференцирование, 339

Tlgm: @it_boooks

Предметный указатель  925
в обратном режиме, 531
в прямом режиме, 531
под знаком интеграла, 113
Дифференцируемое
программирование, 536
Диффузное априорное распределение, 197
Длинный хвост, 205, 441
Добыча данных, 65
Доверительный интервал, 198, 212, 214
Долгая краткосрочная память, 613
Доля объясненной дисперсии, 785
Дообучение, 643, 742
Дополнение
матрицы, 875
нулями, 566
Дополнительный двойной логарифм, 508
Допустимая оценка, 252
Допустимое множество, 348
Допустимость, 381
Допустимость для двойственной
задачи, 381
Допущение
замкнутости мира, 657
многообразия, 759
открытого мира, 658
Достаточная статистика, 139, 157, 159, 180,
288
Дырявая свертка, 582, 589

Е
Единичная матрица, 303
Единичный вектор, 93, 292
Епанечникова ядро, 670
Естественное экспоненциальное
семейство, 139
Естественно-языковой вывод, 627
Естественные параметры, 139
Естественный параллелизм, 547

Ж
Жадное декодирование, 615
Жадный прямой выбор, 487
Жесткая кластеризация, 144, 861
Жесткий порог, 475, 479
Жесткое внимание, 629

З
Зависимая переменная, 455
Задача
оптимизации, 346
подстановки, 747

с конечной суммой, 367
существования, 349
Зазор, 164, 697, 728
Замаскированная языковая модель, 645
Замаскированное внимание, 621
Замена переменных, 110
Замещающие задачи, 748
Замороженные параметры, 743
Записи из электронной медицинской
карты, 626
Заполнение пропусков, 645, 747
Запрос, 620
Зарезервированный набор, 256
Зашумленные метки, 443, 775
Зигзагообразная траектория, 359
Значения, 620
Значимость, 260

И
Идентифицируемость, 252, 438
Иерархическая агломеративная
кластеризация, 846
Иерархическая байесовская модель, 197
Иерархическая softmax-модель, 441
Иерархическая смесь экспертов, 559
Иерархическое определение, 525
Иерархия, 440
Избегание
нулей, 279
риск, 227
Извлечение имплицитных знаний
из текста, 627
Излом, 858
Изотропная ковариационная матрица, 127
ИИ, 66
безопасность, 66
этика, 66
Имитация отжига, 81
Импульс, 360
Импульсное сопоставительное
обучение, 750
Инвариантность относительно сдвига, 561
Индивидуальная нормировка, 574
Индикаторная функция, 40, 73
Индикаторное кодирование, 60, 93
Индуктивное обучение, 760
Индуктивное смещение, 48, 515, 636
Индукция, 170, 262
Индуцированная норма, 299
Инкрементное обучение, 658
ИНС, 526
Инстаграм, 586

Tlgm: @it_boooks

926  Предметный указатель
Интегральный риском, 250
Интервал наивысшей плотности, 200
Интерполированная точность, 234
Интерполятор, 684
Интерполяции изображений, 812
Интерполяция, 45
Интерпретируемость, 52
Информационная диаграмма, 281
Информационная проекция, 280
Информационный выигрыш, 275, 769
Информационный критерий, 246
Информационный поиск, 233
Искажение, 776, 851, 853
Исключающее или, 555
Исключающее расхождение КЛ, 279
Исключение путем интегрирования, 179
Исключение систематической ошибки, 476
Исключение стоп-слов, 61
Искривленное экспоненциальное
семейство, 139
Искусственные нейронные сети, 526
Искусственный интеллект, 66
Исходный домен, 752
Исчисление, 339
Итеративное усреднение, 371
Итеративный алгоритм мягкого
порога, 486

Й
Йенсена неравенство, 277, 392

К
Каждый против каждого, 706
Калибровочная кривая, 511
Калмана фильтр, 137
Каналы, 561, 568
Каноническая форма, 139
Каноническая функция связи, 508
Канонические параметры, 139
Канонический корреляционный
анализ, 802
Карта признаков, 565
Каруша–Куна–Такера условия, 381
Касательное пространство, 813
Категориальное распределение, 93
Категориальный PCA, 798
Каузальная свертка, 619
Каузальная СНС, 618
Каца индекс центральности, 891
Квадратическая ошибка, 236
Квадратичная аппроксимация, 206

Квадратичная потеря, 43, 236
Квадратичная форма, 304, 323
Квадратичное программирование, 382, 473
Квадратичное ядро, 678
Квадратично-экспоненциальное ядро, 677
Квадратичный дискриминантный
анализ, 402
Квадратная матрица, 293
Квадратный корень из матрицы, 299, 310,
334
Квазиньютоновские методы, 364, 436
Квазиреферирование, 649
Квантиль, 75, 98
Квантильная функция, 75
Квантование, 275, 284, 388
Квартиль, 75, 98
ККТ, 381
Классификатор
максимальной энтропии, 439
по ближайшему среднему классов, 407,
443
по ближайшему центроиду, 407
с широким зазором, 697
Классификация, 35, 915
без примеров, 752
изображений, 35
по малому числу примеров, 658
с C классами и N примерами, 772
спама, 58
Классическая статистика, 208
Классическое ММШ, 816
Классы, 35
Кластеризация, 143, 843
по ближайшему соседу, 848
по самому дальнему соседу, 848
с выбором самой дальней точки, 855
с одиночной связью, 848
со средней связью, 849
с полной связью, 848
Кластерное допущение, 756
Кластеры, 49
Ключи, 620
Ковариаты, 35, 455, 915
Ковариационная матрица, 120, 126
Ковариация, 120
Кодирование, 776
Кодирование пар байтов, 64
Кодировщик, 802, 811
Кодовая книга, 853
Коллаборативная фильтрация, 869, 874
Коммутативность, 307
Компактность, 849
Композиция, 525

Tlgm: @it_boooks

Предметный указатель  927
Компромисс
между исследованием
и использованием, 884
между смещением и дисперсией, 217
Компьютерная графика, 591
Конгруэнтная свертка, 566
Конечноразностная аппроксимация
производной, 339
Консенсусная последовательность, 270
Конструирование
описаний, 752
признаков, 45
Контекстуальные погружения слов, 63, 643,
840
Контрольный набор, 48, 256
Конформер, 638
Корень из среднеквадратической
ошибки, 162
Корпус, 832
Корректная свертка, 566
Корреляционная матрица, 122, 161
Косинусное ядро, 681
Коши распределение, 104
Коэффициент
Байеса, 240, 258
ветвления, 273
детерминации, 466
дырявости, 582
корреляции, 121, 126
равных ошибок, 233
усадки, 476, 733
Коэффициенты регрессии, 42, 455
Кривая
обучения, 177
точность-полнота, 233
Критериальная статистика, 259
Критерий отношения правдоподобия, 259
Критическая точка, 379
Кронекера произведение, 313
Крыловского типа методы, 694
Ксавье инициализация, 546
Кубические сплайны, 488
Кульбака–Лейблера расхождение, 155, 238,
275, 393
Кусочно-линейная потеря, 164, 399, 704, 880

Л
Лагранжа
множители, 142, 158, 379
нотация, 340
Лагранжиан, 142, 326, 349, 379, 473
Ланцоша алгоритм, 792

Лапласа
аппроксимация, 206, 447
метод векторов, 711
правило следования, 185
распределение, 105, 472
сглаживание, 415
Лапласиан графа, 825, 866
Лапласовы собственные отображения, 824,
867, 890
Латентная интерполяция, 812
Латентно-семантический анализ, 833
Латентно-семантическое
индексирование, 833
Латентные переменные, 143, 915
Латентные факторы, 50, 51, 779
Латентный вектор, 779
ЛДА, 401
Лейбница нотация, 340
Лексема, 61
Лекуна инициализация, 546
Лемма
об обращении матрицы, 317, 707
об определителе матрицы, 318
Ленточная матрица, 303
Линейная алгебра, 292
Линейная гауссова система, 132
Линейная зависимость, 296
Линейная комбинация, 308
Линейная независимость, 296
Линейная оболочка, 296
Линейная пороговая функция, 516
Линейная разделимость, 421
Линейная регрессия, 100, 455, 506, 514
Линейная скорость, 359
Линейная функция, 42
Линейное отображение, 296
Линейное подпространство, 308
Линейное преобразование, 296
Линейное программирование, 492
Линейное ядро, 692
Линейность математического
ожидания, 78
Линейный автокодировщик, 802
Линейный дискриминантный анализ, 401,
403
Линейный оператор, 460
Линейный поиск, 358
Линии уровня, 127
Липшица постоянная, 353
Логарифмическая потеря, 239, 704
Логарифмическая функция разбиения, 139
Логарифмически-билинейная языковая
модель, 839

Tlgm: @it_boooks

928  Предметный указатель
Логарифмическое правдоподобие, 154
Логарифм отношения шансов, 92
Логистическая регрессия, 42, 92, 202, 420,
505
Логистическая функция, 92, 202
Логит, 41, 94, 420, 432
Логотип последовательности, 270
Ложная корреляция, 123
Локальная минимизация риска, 742
Локально линейная регрессия, 675
Локально линейное погружение, 823
Локально-чувствительное
хеширование, 657
Локальный максимум, 347
Локальный минимум, 347
Локальный оптимум, 347, 426
Лоренца распределение, 104
Лоренцева модель, 891
ЛСА, 833
ЛСИ, 833
Лучевой поиск, 617
с повышенным разнообразием, 617

М
Мажорирование, 252, 261
Мажорирование-минимизация, 389
Мак–Каллока–Питтса модель, 527
Максимальная энтропия, 101, 269
Максимальное правдоподобие типа II, 198
Максимальный коэффициент
информации, 285
Максимальный риск, 251
Манипулирование вознаграждением, 66
Манхэттенское расстояние, 846
Маргинализация, 179, 201
Маргинальное правдоподобие, 84, 179, 187,
197, 242
Маргинальное распределение, 76
Марковская модель, 148
порядка M, 149
Марковская цепь, 148
Марковское условие первого порядка, 148
Марковское ядро, 148
Масштабирование Платта, 703
Математическое ожидание, 78, 99
Матерна ядро, 680
Матрица, 293
весов позиций, 270
неточностей классификации, 231
переходных вероятностей, 148
плана, 37, 310, 515, 915
поворота, 305

предобусловливания, 374
проекции, 459
рассеяния, 160, 312
с блочной структурой, 316
сумм квадратов, 311
точности, 129, 159
факторных нагрузок, 787
Матричная факторизация, 875
Махалонобиса
отбеливание, 324
расстояние, 128, 654
Машина
неустойчивых состояний, 612
факторизации, 881
экстремального обучения, 696
Машинное обучение, 34
Машинный перевод, 59, 609
Медиана, 75, 98
Медианное абсолютное отклонение, 672
Медоид, 855
Межквартильный диапазон, 82
Мерсера
теорема, 678
ядро, 677
Мертвый ReLU, 542
Мета-обучение, 770, 774
Метка, 35
Метода главных компонент, 50, 776
Метод
ближайших соседей с большим
зазором, 659
внутренней точки, 382
второго порядка, 362, 428
комитета, 722
моментов, 165
Монте-Карло по схеме марковских
цепей, 208
наименьших квадратов с итеративным
пересчетом весов, 429
опорных векторов, 697
пробуждения-засыпания, 809
разреженных векторов, 711
релевантных векторов, 711
частичных наименьших квадратов, 801
Метрика, 275
Метрическое ММШ, 817
Механизм отсутствия данных, 64
Мешок, 775
погружений слов, 63
слов, 61, 522
Минимаксная оценка, 251
Минимаксное шкалирование, 432
Минимальная достаточная статистика, 288

Tlgm: @it_boooks

Предметный указатель  929
Минимальное остовное дерево, 848
Минимальное представление, 140
Минимально информативное априорное
распределение, 197
Минимальный уровень шума, 177
Минимизация
структурного риска, 256
с учетом остроты, 552
эмпирического риска, 40, 163, 254, 367
энтропия, 756
Мини-пакет, 367
ММШ, 816
Многозначная классификация, 433, 440
Многозначные функции, 555
Многоклассовая классификация, 433
Многоклассовая логистическая
регрессия, 420
Многомерная бернуллиева наивная
байесовская модель, 413
Многомерная линейная регрессия, 456
Многомерное гауссово распределение, 126
Многомерное нормальное
распределение, 126
Многомерное шкалирование, 816, 890
Многомодальное распределение, 79
Многообразие, 813
Многопутевое внимание, 632
Многослойный перцептрон, 515, 516
Многоуровневая модель, 197
Многофакторная линейная регрессия, 44,
456
Многоцелевое сопровождение, 658
Множественная подстановка, 132
Мода, 79, 228
Моделенезависимое мета-обучение, 772
Модель
бернуллиевой смеси, 145
векторного пространства, 62
гауссовой смеси, 143
максимальной энтропии, 142
на основе энергии, 749
на основе эталонов, 653
с латентными переменными, 915
стохастической волатильности, 523
Модификация первого ранга, 318
Монте-Карло
аппроксимация, 116, 208, 451
прореживание, 551
Монти Холла парадокс, 86
Мотив последовательности ДНК, 269
Мощность критерия, 260
МСП, 515, 516
Мультикластеризация, 871

Мультиномиальная логистическая
регрессия, 95, 420, 432
Мультиномиальная функция logit, 94
Мультиномиальное распределение, 94
Мультиномиальный коэффициент, 94
Мура-Пенроуза псевдообратная
матрица, 329
Мягкая кластеризация, 144
Мягкая триплетная потеря, 666
Мягкий порог, 475, 478

Н
На всех пáрах, 706
Надарая-Ватсона модель, 674
Надграфик, 350
Наиболее мощный критерий, 261
Наивное байесовское предположение, 406,
412
Наивный байесовский классификатор, 412
Наивысшая апостериорная плотность, 199
Наименее выгодное априорное
распределение, 251
Наименьших средних квадратов
метод, 368, 463
Наименьших углов метод, 487
Нанизывание меток, 440
Направление
скорейшего спуска, 356
спуска, 356
Настройка с возвращениями, 490
Насыщение, 518
Насыщенная модель, 511
Нат, 269
Наука о данных, 65
Начальный блок, 578
Невошедшие в набор экземпляры, 723
Невязка, 43, 162, 465
Негладкая оптимизация, 354
Недообученность, 48, 173, 176
Недоопределенная система, 335
Независимые и одинаково
распределенные величины, 115, 154, 180
Независимые переменные, 455
Независимые случайные величины, 76
Не зависящая от времени модель, 148
Неидентифицируемость, 438, 501, 861
Неинформативное априорное
распределение, 182, 197
Неймана–Пирсона теорема, 261
Нейронная матричная факторизация, 882
Нейронная сеть прямого
распространения, 515

Tlgm: @it_boooks

930  Предметный указатель
Нейронная языковая модель, 149
Нейронные сети передачи сообщений, 896
Нейронный машинный перевод, 609
Нейронный перенос стиля, 597
Нейтральная связь, 627
Некорректно поставленная задача, 88
Нелинейное понижение размерности, 813
Нелинейный факторный анализ, 795
Неметрическое ММШ, 818
Неокогнитрон, 571
Неопределенная матрица, 304
Неопределенность, 69
данных, 41, 70
модели, 41, 70
Непараметрическая модель, 554
Непараметрические методы, 676, 813
Непараметрические модели, 653
Непараметрический бутстрэп, 211
Неполного ранга, 301
Непрерывная оптимизация, 346
Непрерывная случайная величина, 73
Непрерывное обучение, 658
Неравенство обработки данных, 287
Неравенство треугольника, 275
Неразрешимая задача, 381
Несбалансированность классов, 233, 441,
705
Несмещенная оценка, 215
Нестерова ускоренный метод
градиентов, 361
Неструктурированные данные, 515
Неустойчивость, 720
Неявная обратная связь, 879
Неявная регуляризация, 552
Нижнетреугольная матрица, 304
Норма, 298, 302
Нормализованный разрез, 866
Нормализующие потоки, 766
Нормальное распределение, 43, 97
Нормальные уравнения, 338, 457
Нормированная взаимная
информация, 284, 846
Нормированный вектор, 305
Нормировка по слою, 574
Нулевая гипотеза, 240, 258
Нулевое пространство, 297
Нулевой счетчик, 170
Ньютона метод, 362, 428

О
Обнаружение
новизны, 657

посторонних, 658
сущностей, 851
Обобщаемость, 41, 169
Обобщение на вневыборочные
примеры, 813
Обобщенная аддитивная модель, 490
Обобщенная пробит-аппроксимация, 452
Обобщенная проблема собственных
значений, 410
Обобщенные линейные модели, 505
Обобщенные низкоранговые модели, 797
Обобщенный лагранжиан, 380, 699
Обобщенный CCA, 802
Обработка естественного языка, 57, 439
Образ, 297
Обратная вероятность, 88
Обратная матрица, 315
Обратная функция распределения, 75
Обратная частота документа, 62
Обратное гамма-распределение, 107
Обратное обучение с подкреплением, 66
Обратное распределение Уишарта, 171
Обратное распространение, 518
алгоритм, 529
во времени, 610
Обратное расхождение КЛ, 279
Обратные задачи, 89
Обратный ход, 336, 460
Обращение знака градиента, 753
Обрезание градиента, 540
Обрезка, 719
Обучающие данные, 915
Обучающий набор, 35
Обучение
без примеров, 772
без учителя, 49
втроем, 759
графовых представлений, 886
метрики ближайшего среднего
классов, 407
многообразия, 813
модели, 40, 153
на малом числе примеров, 772
на нескольких экземплярах, 775
на одном примере, 407, 772
на основе запоминания, 653
на примерах, 653
на протяжении всей жизни, 658
представлений, 748
с критиком, 54
со слабым учителем, 774
с подкреплением, 53, 884
с учителем, 35

Tlgm: @it_boooks

Предметный указатель  931
с частичным привлечением
учителя, 418, 753
Общая скрытая причина, 123
Объединенная пакетная нормировка, 573
Объективное априорное
распределение, 197
Объясняющие переменные, 455
Обыкновенных наименьших квадратов
метод, 162, 338, 457
Ограничение порядка, 861
Ограничения, 348
в виде неравенств, 348, 377
в виде равенств, 348, 377
Ограничения мягкого зазора, 701
Ограничивающие прямоугольники, 586
Один против всех, 705
Один против остальных, 705
Однопроходный детектор, 588
Однородная модель, 148
Однофазный план скоростей
обучения, 370
Ожидаемое полное логарифмическое
правдоподобие данных, 393
Ожидаемые достаточные статистики, 393
Ожидание-максимизация, 389
Оккама
бритва, 245
коэффициент, 247
Оконечные устройства, 388, 585
Онлайновое обучение, 167, 389, 658, 727
ОП, 53
Оператор
мягкого порога, 388
обратной косой черты, 336
Описание изображений, 605
Опорные векторы, 697, 701, 710
Оправдание, 149
Оправдывающие задачи, 748
Определение
лиц, 587
объектов, 586
Определитель, 300
Оптимальная политика, 226
Оптимизация
без использования производных, 399
в доверительной области, 365
черного ящика, 399
Оптимистичность ошибки на обучающем
наборе, 256
Ориентированный ациклический
граф, 146, 536
Орнстейна–Уленбека процесс, 680
Ортогональная проекция, 459

Ортогональность, 305
Ортогональные случайные признаки, 696
Ортодоксальная статистикая, 208
Ортонормированность, 305, 322
Осепараллельное разбиение, 716
Осепараллельный эллипс, 128
Основная задача, 699
Основной эффект, 60
Основные переменные, 707
Основополагающие переменные, 795
Остаточная сеть, 544
Остаточный блок, 544, 579
Острые минимумы, 551
Отбеливание данных, 324
Отбор признаков, 288, 387, 471
Ответственность, 144, 394, 558
Отклик, 35
Отклонение, 229
Открытый класс, 64
Открытый мир, 586
Относительная энтропия, 275
Отношение
правдоподобия, 240, 262
сигнал-шум, 136
Отрицательное логарифмическое
правдоподобие, 42, 154
Отрицательно определенная матрица, 304
Отрицательно полуопределенная
матрица, 304
Отсутствие
вполне случайное, 64
не случайное, 64
случайное, 64
Отсутствующие данные, 64, 391
Оценивание плотности, 52
Оценивание позы человека, 590
Оцениватель, 209
Оценка
BIC, 247, 858
KSG, 284
апостериорного максимума, 169, 228
внимания, 621
максимального правдоподобия, 42, 154
минимума среднеквадратической
ошибки, 237
усадки, 171
Ошибка
аппроксимации, 255
зазора, 702
защитника, 118
обобщения, 255, 257
оценивания, 255
прокурора, 118
реконструкции, 776, 779, 853

Tlgm: @it_boooks

932  Предметный указатель

П
Пакетная нормировка, 572
Пакетная перенормировка, 573
Пакетное обучение, 167
Парадокс черного лебедя, 170
Параметрические модели, 653
Параметрический бутстрэп, 211
Параметрический ReLU, 542
Параметр
рассеяния, 505
регуляризации, 169
Параметры, 39
Парцена оконная оценка плотности, 671
Патчи изображения, 562
Перекрестная корреляция, 563
Перекрестная проверка, 174, 257
Перекрестная проверка с исключением по
одному, 175, 257
Перекрестная энтропия, 239, 271, 276, 278
Перекрестные произведения
признаков, 60
Перекрестный риск, 175, 257
Переменная метрика, 364
Переменные
невязки, 701, 709
отклика, 915
Перенос
обучения, 643, 668, 742
обучения без примеров, 649
Переобучение, 47, 169, 184
Переопределенная система, 335, 458
Перепараметризованная модель, 96
Переходная функция, 148
Переходное ядро, 148
Периодическое ядро, 680
Перплексия, 273, 604
Перцептрон, 427
Пифагора теорема, 337
План изменения скорости обучения, 356,
369
Планирование эксперимента, 768
Плановая выборка, 610
План по закону квадратного корня, 370
Плоские минимумы, 551
Плоский локальный минимум, 347
Плоское априорное распределение, 197
Плотная разметка
последовательности, 607
Плотное предсказания, 589
Плохо обусловленная матрица, 161, 302
Площадь под кривой, 233
Победитель забирает всё, 95
Побочная информация, 882

Поверхностный синтаксический
анализ, 648
Повторная идентификация человека, 658
Погружение, 776
слов, 63, 455, 832
с частичным привлечением учителя, 903
Подгонка модели, 40
Подозрительное совпадение, 241
Подсказка, 649
Подслова, 64
Подстановка отсутствующих значений, 131
Подстановка среднего значения, 65
Подстановочная аппроксимация, 184, 201,
450
Позиционное погружение, 632
Поиск
архитектуры нейронной сети, 582
документов, 833
мод, 280
на сетке, 174, 399
Покоординатный спуск, 485
Покрытие мод, 279
Полиномиальная регрессия, 45, 172, 456
Политика, 53
Политоп, 381
Полная вариация, 594
Полная ковариационная матрица, 127
Полная производная, 341
Полная редукция, 547
Полного ранга, 301
Полноматричный Adagrad, 377
Полнота, 231, 234
Полный дифференциал, 341
Половинное распределение Коши, 104
Положительная PMI, 834
Положительно определенная матрица, 304
Положительно определенное ядро, 677
Положительно полуопределенная
матрица, 304
Полоса пропускания, 554, 670, 677
Полуинварианты, 141
Полуопределенное погружение, 822
Полуопределенное
программирование, 660, 823
Полупространство, 421
Полутвердо отрицательные примеры, 665
Поляка–Рупперта усреднение, 371
Полярные координаты, 111
Понижение
порядка матрицы, 326, 841
размерности, 37, 776
Понимание
визуальной сцены, 88
естественного языка, 88

Tlgm: @it_boooks

Предметный указатель  933
Попарная независимость, 117
Поппер Карл, 170
Порождающая изображения модель, 591
Порождающие состязательные сети, 753
Порождающий классификатор, 401, 417
Порядковые статистики, 166
Порядок
по столбцам, 295
тензора, 294
Последовательная минимальная
оптимизация, 700
Последовательно-послойная
инициализация с единичной
дисперсией, 546
Посылка, 627
Потенциал действия, 527
Потеря
BIC, 247
ранжирования, 662, 880
Потоковое активное обучение, 768
Поточечная взаимная информация, 834
Поточечная свертка, 569
Правдоподобие, 84
Правдоподобие профиля, 786
Правило
верной оценки, 240
дифференцирования сложной
функции, 343
одной стандартной ошибки, 175
повторного математического
ожидания, 151
сложения вероятностей, 76
умножения вероятностей, 76, 83
Предактивация, 420, 518
Предварительно обученная матрица
погружений, 63
Предвзятость подтверждения, 755
Предиктор, 35
Предобработка признаков, 45
Предобусловленный СГС, 374
Предобусловливатель, 374
Предобучение, 643, 742
без учителя, 746
Предпочтения, 226
Предсказание
глубины, 589
нормали к поверхности, 589
связей, 905
следующего предложения, 645
Представители, 665
Преобразование изображения
в изображение, 589
Приближенный апостериорный вывод, 205

Привратник, 557
Признаки, 35
Принуждение со стороны учителя, 610
Принцип
максимальной ожидаемой
полезности, 227
минимальной длины описания, 248
правдоподобия, 264
Принятие решений в условиях
неопределенности, 34
Приращение данных, 279, 740
Пробит-аппроксимация, 451
Пробит-функция, 98, 451
Пробит-функция связи, 508
Проблема
аналогичных слов, 838
взрывного градиента, 539
исчезающего градиента, 518, 539
переключения меток, 398, 861
скученности, 829
Проверка
гипотез, 240
значимости нулевой гипотезы, 260
Прогнозная аналитика, 65
Прогрев скорости обучения, 370
Продолжения метод, 487
Проекция, 297
момента, 279
Произведение
вектора на якобиан, 342
якобиана на вектор, 342
Производная, 339
по направлению, 340
Проклятие размерности, 655
Проксимальный градиентный спуск, 385,
486
Проксимальный оператор, 385
Прореживание, 549
Простая гипотеза, 260
Пространственная раздельная свертка, 584
Пространство
весов, 687
гипотез, 254
параметров, 346
состояний, 72
столбцов, 297
функций, 688
элементарных событий, 72
Противоречие, 627
Процентильная функция, 75
Прямая модель, 89
Прямое поэтапное аддитивное
моделирование, 726

Tlgm: @it_boooks

934  Предметный указатель
Прямое расхождение КЛ, 279
Прямоугольное ядро, 669, 671
Прямые связи, 579
Псевдовходы, 694
Псевдонорма, 298
Псевдообратная матрица, 338, 457
Псевдопометка, 754
Псевдоправдоподобие, 645
Псевдосчетчики, 181, 415
Пуанкаре модель, 891
Пуассона регрессия, 507
Пулинг
глобальным усреднением, 522, 571
усреднением, 570
Путь регуляризации, 471, 476, 486

Р
Рабочая характеристика, 429
приемника, 231
Равноценность, 286
Радиально-базисная функция, 554, 641,
670
Разбиение
вокруг медоидов, 855
графа, 866
Разведочный анализ данных, 37
Развертывание с максимальной
дисперсией, 823
Разветвление
по входу, 545
по выходу, 545
Разворачивание модели, 150
Разложение по базисным функциям, 514
Размазывание меток, 895
Размер
выборки, 35, 157, 180
шага, 356
Размерность объемлющего
пространства, 815
Разметка семантических ролей, 439
Разреженная линейная регрессия, 384
Разреженная ядерная машина, 554, 656
Разреженное байесовское обучение, 502
Разреженность, 190, 471
Разреженный ГП, 694
Разреженный факторный анализ, 795
Разрешение
кореференции, 631
лексической неоднозначности, 644
сущностей, 648, 658
Разрыв обобщения, 47, 255
Разумный PCA, 789
Ранг, 294, 301

Ранняя остановка, 176, 548
Распараллеливание
модели, 547
по данным, 547
Распознавание
именованных сущностей, 648
лиц, 587
образов, 35
открытого множества, 657
Распознающая сеть, 808
Распределение
Больцмана, 94
вероятностей, 34
наблюдаемых значений, 84
Распространение меток, 759, 894
Распространенность, 85, 235
Распрямление, 520
Расширяющее представление,802
Расщепление переменной, 486
Регрессия, 915
главных компонент, 470
опорных векторов, 710
Регуляризатор, стимулирующиq
разреженность, 387
Регуляризация, 169
активности, 806
по согласованности, 760
Регуляризированный дискриминантный
анализ, 406
Регуляризированный эмпирический
риск, 255
Редуцированное QR-разложение, 333
Резервуарные вычисления, 612
Рейтинг, 873
Рекомендательные системы, 873, 905
Рекуррентные нейронные сети, 47, 515, 602
Рекурсивное вычисление MLE, 462
Рекурсивное обновление, 167
Реляционные данные, 873
Реферирование, 649
документов, 59
Рецептивное поле, 568, 582
Речевой синтез, 619
Решатель, 346
Решающая граница, 38, 92, 202, 421
Решающая поверхность, 39
Решающее дерево, 39, 716
Решающее правило, 38
Риманова метрика, 813
Риманово многообразие, 813
Риск, 226, 248
на генеральной совокупности, 47, 174,
254

Tlgm: @it_boooks

Предметный указатель  935
на контрольном наборе, 174, 256
на тестовом наборе, 47
РНС, 515, 602
Робастная линейная регрессия, 382
Робастная логистическая регрессия, 443
Робастность, 102, 237, 491
Роббинса–Монро условия, 369
Рулет с кремом, 816
Рэлея отношение, 325
Рэнда индекс, 845

С
Саммона отображение, 819
Самовнимание, 631
Самозванцы, 659
Самообучение, 754, 767
Самостоятельное обучение, 51, 746
Сбор информации, 41
Свертка, 113, 563
с дырками, 582
с шагом, 568
Сверточная марковская модель, 618
Сверточная нейронная сеть, 36, 58
Сверхполное представление, 140
Свидетельство, 242
Свидетельствующая нижняя граница, 392
Свободный член, 42
Свойство
самонормировки, 839
следа, 300
циклической перестановки, 300
Связи-глазки, 615
Связывание
параметров, 148
сущностей, 658
Сглаживание
локально-взвешенной диаграммы
рассеяния, 675
меток, 767, 775
прибавлением единицы, 170, 182, 415
Сглаживающие сплайны, 490
СГС, 366
Сегментация экземпляров, 588
Седловая точка, 348, 352
Семантическая сегментация, 589
Семантическое сходство текстов, 629
Сети без нормировки, 575
Сеточная аппроксимация, 206
Сеть
вывода, 808
на основе смеси моделей разной
плотности, 558

Сжатие, 806
данных, 52, 511, 854
изображений, 854
модели, 548
с потерей информации, 853
Сжимающий автокодировщик, 806
Сиамская сеть, 663, 748
Сигмоидная функция, 91, 92, 202, 404
Силуэтная диаграмма, 858
Силуэтная оценка, 858
Силуэтный коэффициент, 858
Сильная выпуклость, 352
Сильный обучаемый, 726
Симметричная матрица, 294
Симметричное SNE, 829
Симплекс-метод, 382
Симпсона парадокс, 123
Синаптическая связь, 527
Сингулярная матрица, 315
Сингулярное разложение, 328
Сингулярные векторы, 327
Сингулярные числа, 302, 327
Синтаксический сахар, 150
Синтез запросов, 768
Синхронное обучение, 547
Система обнаружения мошеннических
действий, 905
Системы линейных уравнений, 335
Скалярное поле, 340
Скалярное произведение, 307
Сквозной оцениватель, 388
Скелет, 523
Скипграмма с отрицательной
выборкой, 836
Скипграммная модель, 836
СКО, 43, 162
Скользящее среднее, 167
Скорость
обучения, 356
сходимости, 359
Скорректированный индекс Рэнда, 845
Скрипичная диаграмма, 82
Скрытая случайная величина, 83
Скрытые блоки, 517
Скрытые переменные, 149, 391, 915
Слабый обучаемый, 726
След, 300
Следование, 627
Следовая норма, 299
Слияние показаний датчиков, 138
Сложная гипотеза, 260
Слои нормировки, 571
Случайная величина, 72

Tlgm: @it_boooks

936  Предметный указатель
Случайные конечные множества, 658
Случайный лес, 724
Смесовая модель, 142
Смесь
бета-распределений, 188
гауссиан, 143
распределений Бернулли, 145
факторных анализаторов, 796
экспертов, 557, 638
Смешанно-целочисленное
программирование, 384
Смещение, 42, 44, 215, 456
Смягченная перекрестная энтропия, 444
Смягченная softmax, 445
СНС, 36, 515, 562
Собеля детектор границ, 594
Собственная информация, 268
Собственное значение, 320
Собственные лица, 778
Собственный вектор, 320
Событие, 70
Совместная адаптация, 550
Совместная вероятность, 71
Совместная кластеризация, 869
Совместное обучение, 758
Совместное распределение, 75
Согласованность с выбором модели, 479
Сопоставительная потеря, 663
Сопоставительные задачи, 748
Сопоставление с шаблоном, 562, 565
Сопоставляющая сеть, 773
Сопряженная функция, 350
Сопряженное априорное
распределение, 133, 179
Сопряженный градиент, 359, 460
Составная целевая функция, 354
Состояние природы, 225
Состоятельная оценка, 252, 497
Состязательное обучение доменов, 753
Сохранения массы вероятности закон, 245
Социальные сети, 905
Спектральная кластеризация, 865
Спектральная теория графов, 826
Спектральное погружение, 824
Спектральное разложение, 320
Спектральные СНС, 897
Спектральный радиус, 539
Спектр собственных значений, 171
Специфичность, 85
Спроецированный градиентный
спуск, 386, 486
Среднее, 78, 99
Среднее гармоническое, 235

Среднеквадратическая ошибка, 43, 162
Средняя усредненная точность, 234
Стандартизация, 311, 323, 431, 461
Стандартная ошибка, 183
среднего, 195, 175
Стандартная форма, 381
Стандартное нормальное
распределение, 98
Стандартное отклонение, 78, 100
Стандартный базис, 296
Старый Служака, 396
Статистика, 65
Статистическая значимость, 261
Статистическая теория обучения, 257
Статистический машинный перевод, 609
Статистическое реляционное
обучение, 907
Статический граф, 537
Стационарная модель, 148
Стационарная точка, 348
Стационарное ядро, 678
Стековое обобщение, 722
Стемминг, 61
Степень нормальности, 103
Степень свободы, 48, 103, 470
Степень согласия, 465
СТО, 257
Столбцовый ранг, 301
Стохастическая матрица, 148
Стохастическая оптимизация, 366
Стохастический градиентный бустинг, 734
Стохастический градиентный спуск, 366,
427
с теплым перезапуском, 371
Стохастический градиент с уменьшенной
регрессией, 372
Стохастический лучевой поиск, 617
Стохастический усредненноый
ускоренный градиент, 373
Стохастическое погружение соседей, 827
Стохастическое усреднение весов, 372, 762
Строгий локальный минимум, 347
Строго выпуклая функция, 350
Строковое ядро, 683
Строковый ранг, 301
Структурированные данные, 515
Структурное погружение с помощью
глубокой сети, 900
Ступенчатая функция, 108
Ступенчатое затухание, 370
Стьюдента t-распределение, 103
Субградиент, 354
Субдифференциал, 355

Tlgm: @it_boooks

Предметный указатель  937
Субдифференцируемая функция, 355
Субмодулярная функция, 770
Субпроизводная, 535
Сужающее представление, 802
Сужение, 802
Сумма
квадратов невязок, 162, 457
с нарастающим итогом, 167
Суррогатная функция, 390
потерь, 163
Суррогатные разделения, 720
Сферическая ковариационная
матрица, 127
Сферическое ограничение на
погружение, 668
Сходство, 653
СЦЛП, 384

Т
Таблица условных вероятностей, 147
Табличные данные, 37, 515
Таксономия, 440
Твердо отрицательные примеры, 665
Тейлора ряд, 206, 290
Температура, 94
Тензор, 294, 568
Тензорный процессор, 528
Теорема
об отсутствии бесплатных завтраков, 48
о голландской книге, 263
о полном классе, 252
о ранге и дефекте, 331
о свертке, 113
Теория
возмущений, 867
информации, 239, 268
Теплый запуск, 471, 486
Терм-документная матрица, 62, 832
Тестовый набор, 47
Тихонова регуляризация, 366
Топологическая неустойчивость, 820
Топологический порядок, 146
Точечная оценка, 153
Точная визуальная классификация, 742
Точность, 98, 193, 234
Точность на K элементах, 234
Точный линейный поиск, 358
Тощий SVD, 327
Трансдуктивное обучение, 760
Транспонирование, 293
Транспонированная свертка, 583, 589
Трансформер, 515, 629

Трассировка, 537
Трехкубовое ядро, 670
Триграммная модель, 149
Тридиагональная матрица, 303
Триплетная потеря, 663
Трубка, 709
Трюк перепараметризации, 810
Тьюринга машина, 604
Тяжелого шарика метод, 360
Тяжелые хвосты, 103, 491

У
Угловой коэффициент, 44
Уменьшение
весов, 172, 430, 467, 548
при выходе на плато, 370
Умножение матрицы на вектор, 694
Универсальный аппроксиматор
функций, 524
Уникальность, 789
Унитарная матрица, 305
Унитарное кодирование, 60, 434, 915
Унитарный вектор, 93, 292
Упорядоченное марковское свойство, 146
Управляемый рекуррентный блок, 612
Управляющая переменная, 372
Усадка, 136, 194, 470
Усеченное сингулярное разложение, 331
Условие дополняющей нежесткости, 381
Условная вероятность, 71
Условная взаимная информация, 282
Условная индивидуальная
нормировка, 600
Условная независимость, 72, 77, 146
Условная оптимизация, 348, 377, 492
Условная плотность класса, 401
Условная смесовая модель, 556
Условная энтропия, 272
Условное вычисление, 557
Условное распределение, 76
Условное распределение вероятностей, 41,
90, 147
Усредненная точность, 234

Ф
Факторизации графов, 892
Факторный анализ, 50, 787
Факторный анализ экспоненциального
семейства, 797
Фано неравенство, 288
Фастфуд, 696

Tlgm: @it_boooks

938  Предметный указатель
Фильтр, 562, 563
Фильтрующее свойство, 102, 201
Фичеризация, 37
Фишера информационная матрица, 210,
429
Фишера критерий, 429
Фишера линейный дискриминантный
анализ, 409
Флуктуация, 555
Форма миски, 426
Формула Байеса, 83
для гауссовых распределений, 133
обращения клеточных матриц, 316
полного математического ожидания, 80
полной вероятности, 76
полной дисперсии, 80
условной дисперсии, 80
Форсирование нулей, 280
ФПР, 74
Фрагментация данных, 718
Фробениуса норма, 299
Функция
вклада, 210, 805
вознаграждения, 346
двоичной энтропии, 269
напряжения, 817
оценки, 346
ошибок, 98
плотности распределения, 74
полезности, 226
потерь, 40, 225, 346
правдоподобия, 179
разбиения, 96, 139, 749
распределения, 73, 98
связи, 505, 508
среднего, 505
стоимости, 346
энергии, 206
Фурье случайные признаки, 695

Х
Характеристическая матрица, 285
Характеристический линейный
масштаб, 679
Характеристическое уравнение, 321
Хатчинсона оценка следа, 299
Хаффмана кодирование, 441
Хевисайда ступенчатая функция, 91, 427,
516, 535
Хе инициализация, 546
Хёфдинга неравенство, 258
Хи-квадрат распределение, 107

Хинтона диаграмма, 131
Холески разложение, 468
Холодный старт, 882
Хорошо обусловленная матрица, 302
Хьюбера функция потерь, 237, 493, 733

Ц
Целевая функция, 154, 346
метода наименьших квадратов, 338
Целевой домен, 752
Целевой набор данных, 742
Целочисленное линейное
программирование, 384
Цель, 35, 455, 915
Ценность информации, 769
Центральная предельная теорема, 101, 115
Центральным интервал, 198
Центрируюшая матрица, 160, 312, 821
Центроиды, 553
Цепное правило
для вероятностей, 76
для взаимной информации, 282
для энтропии, 272
Циклический план скоростей
обучения, 371
ЦЛП, 384

Ч
Частеречная разметка, 644, 648
Части слов, 64
Частично наблюдаемое состояние, 225
Частная производная, 340
Частный коэффициент регрессии, 462
Частота
истинно-отрицательных результатов, 85
истинно-положительных
результатов, 84, 231, 232
ложноотрицательных результатов, 85
ложноположительных результатов, 85,
231, 232
ложных тревог, 231
неправильной классификации, 39, 163
ошибок первого рода, 231, 260
попаданий, 231
Частотная статистика, 208
Частотная теория принятий решений, 248
Частотный подход, 69
Чередующихся наименьших квадратов
метод, 875
Черный ящик, 399
Число обусловленности, 172, 301, 359

Tlgm: @it_boooks

Предметный указатель  939
Чистота кластера, 844
Чистый узел, 719
Чувствительность, 84, 232
к риску, 227

Ш
Шаттена p-норма, 299
Шеннона теорема о кодировании
источника, 271
Шермана–Моррисона–Вудбери
формула, 317
Шермана–Моррисона формула, 318
Широкая resnet, 581
Широкий формат, 61
Шкала силы свидетельства, 240
Штейна парадокс, 252
Штраф за сложность, 169
Штрафующий член, 385
Шумоподавляющий автокодировщик, 804
Шура дополнение, 129, 316

Э
Эвристики, 529
Эйнштейна суммирование, 314
Эквивалентный размер выборки, 181
Эквивариантность, 569
Экзогенные переменные, 35
Экономное QR-разложение, 333
Экономное SVD, 327
Экспоненциальная перекрестная
энтропиея, 273
Экспоненциальная потеря, 728
Экспоненциально взвешенное скользящее
среднее, 167
Экспоненциальное распределение, 107
Экспоненциальное семейство, 139, 142,
196
Экспоненциальное семейство
рассеяния, 505
Экспоненциальное скользящее
среднее, 167
Экспоненциально-квадратичное ядро, 677
Экспоненциальный линейный блок, 541
Экстрактор признаков, 456

Эластичная сеть, 478, 484
Эластичное погружение, 828
Эмпирический байесовский подход, 198,
243, 501
Эмпирический риск, 40, 254
Эмпирическое распределение, 108, 116,
155, 278
Эндогенные переменные, 35
Энскомба квартет, 81
Энтропийный СГС, 552
Энтропия, 239, 268, 392, 719
Эпистемическая неопределенность, 41, 70
Эпистемология, 70
Эпоха, 367
Эпсилон-нечувствительная функцией
потерь, 708
Эффекты взаимодействия, 60
Эхо-сеть, 612

Я
Явная обратная связь, 873
Ядерная гребневая регрессии, 686, 708
Ядерная норма, 299
Ядерная оценка плотности, 669, 671
Ядерная регрессия, 622, 674, 686
Ядерная функция, 553, 676
Ядерное сглаживание, 674
Ядерный трюк, 702
Ядерный PCA, 821, 868
Ядро, 563, 669
ARD, 678
внимания, 773
матрицы, 297
плотности, 622, 669
случайного блуждания, 683
Языковая модель, 148
Языковое моделирование, 59, 604
Языковые модели, 273, 643
Якобиан, 111, 341, 434
Якоби нотация, 341
Якорные рамки, 587
Якорь, 663
Ячейка памяти, 613
Ящик с усами, вид диаграммы, 83

Tlgm: @it_boooks

Книги издательства «ДМК ПРЕСС»
можно купить оптом и в розницу
в книготорговой компании «Галактика»
(представляет интересы издательств
«ДМК ПРЕСС», «СОЛОН ПРЕСС», «КТК Галактика»).
Адрес: г. Москва, пр. Андропова, 38, оф. 10;
тел.: (499) 782-38-89, электронная почта: books@alians-kniga.ru.
При оформлении заказа следует указать адрес (полностью),
по которому должны быть высланы книги;
фамилию, имя и отчество получателя.
Желательно также указать свой телефон и электронный адрес.
Эти книги вы можете заказать и в интернет-магазине: http://www.galaktika-dmk.com/.

Кэвин П. Мэрфи

Вероятностное машинное обучение
Введение

Главный редактор

Мовчан Д. А.

dmkpress@gmail.com

Зам. главного редактора
Перевод
Корректор
Верстка
Дизайн обложки

Сенченкова Е. А.
Снастин А. В.
Абросимова Л. А.
Чаннова А. А.
Мовчан А. Г.

Гарнитура PT Serif. Печать цифровая.
Усл. печ. л. 76,38. Тираж 200 экз.
Веб-сайт издательства: www.dmkpress.com

Tlgm: @it_boooks