Обобщающая способность в глубоком обучении ========================================== В разделах :numref:`chap_regression` и :numref:`chap_classification` мы решали задачи регрессии и классификации, подбирая линейные модели к обучающим данным. В обоих случаях мы рассматривали практические алгоритмы поиска параметров, максимизирующих правдоподобие наблюдаемых меток обучающей выборки. Затем, в конце каждой главы, мы напоминали, что подгонка модели к обучающим данным — это лишь промежуточная цель. Наша истинная задача заключалась в выявлении *общих закономерностей*, на основе которых мы можем делать точные прогнозы даже для новых примеров, выбранных из той же исходной совокупности. Исследователи в области машинного обучения являются *потребителями* алгоритмов оптимизации. Иногда нам даже приходится разрабатывать новые алгоритмы оптимизации. Однако в конечном счете оптимизация — это лишь средство достижения цели. В своей основе машинное обучение является статистической дисциплиной, и мы стремимся оптимизировать функцию потерь на обучающей выборке лишь постольку, поскольку некоторый статистический принцип (известный или неизвестный) приводит к тому, что полученные модели обобщаются за пределы обучающей выборки. С одной стороны, оказывается, что глубокие нейронные сети, обученные с помощью стохастического градиентного спуска, демонстрируют удивительно хорошую обобщающую способность в самых разных задачах прогнозирования, включая компьютерное зрение, обработку естественного языка, анализ временных рядов, рекомендательные системы, электронные медицинские карты, предсказание структуры белков, аппроксимацию функции значения в видеоиграх и настольных играх, а также во многих других областях. С другой стороны, если вы искали простое и понятное объяснение истории оптимизации (почему мы можем подогнать эти модели к обучающим данным) или истории обобщения (почему полученные модели хорошо обобщаются на невидимые примеры), то, возможно, вам стоит налить себе чего-нибудь покрепче. Хотя наши процедуры оптимизации линейных моделей и статистические свойства их решений хорошо описаны обширным теоретическим аппаратом, наше понимание глубокого обучения по обоим направлениям всё ещё напоминает Дикый Запад. Теория и практика глубокого обучения стремительно развиваются: теоретики применяют новые стратегии для объяснения происходящего, а специалисты продолжают инновации с невероятной скоростью, создавая арсенал эвристик для обучения глубоких сетей и набор интуитивных представлений и народных знаний, которые служат руководством для выбора методов в тех или иных ситуациях. Суть текущего положения дел заключается в том, что теория глубокого обучения предлагает перспективные направления исследований и разрозненные увлекательные результаты, но пока далека от создания всеобъемлющего объяснения двух вопросов: (i) почему нам удается оптимизировать нейронные сети и (ii) как модели, обученные с помощью градиентного спуска, демонстрируют такую высокую обобщающую способность даже на задачах с высокой размерностью. Однако на практике проблема (i) возникает редко (мы всегда можем найти параметры, которые точно подгоняются под все обучающие данные), поэтому понимание обобщающей способности является гораздо более важной задачей. С другой стороны, даже без опоры на стройную научную теорию практикующие специалисты разработали обширный набор методов, которые могут помочь вам создавать модели, хорошо обобщающие данные на практике. Хотя краткое изложение не может в полной мере охватить столь обширную тему обобщающей способности в глубоком обучении, а состояние исследований далеко от завершения, в этом разделе мы стремимся дать широкий обзор текущего положения дел в теории и практике. Переосмысление переобучения и регуляризации ------------------------------------------- Согласно теореме «нет бесплатных обедов» :cite:t:`wolpert1995no`, любой алгоритм обучения лучше обобщает данные с определёнными распределениями и хуже — с другими. Таким образом, при наличии конечной обучающей выборки модель опирается на определённые предположения: для достижения уровня производительности, сопоставимого с человеческим, может оказаться полезным выявление *индуктивных смещений*, которые отражают то, как люди мыслят о мире. Такие индуктивные смещения выражают предпочтение к решениям с определёнными свойствами. Например, глубокая многослойная перцептронная сеть (MLP) имеет индуктивное смещение, направленное на построение сложной функции путем композиции более простых функций. Поскольку модели машинного обучения кодируют индуктивные смещения, наш подход к их обучению обычно состоит из двух этапов: (i) подгонка под обучающие данные; и (ii) оценка *обобщающей ошибки* (истинной ошибки на генеральной совокупности) путем проверки модели на отложенных данных. Разница между качеством подгонки на обучающих данных и качеством подгонки на тестовых данных называется *разрывом обобщения*, и когда он велик, мы говорим, что наши модели *переобучаются* на обучающих данных. В крайних случаях переобучения мы можем точно подогнать модель к обучающим данным, даже если ошибка на тестовой выборке остается значительной. В классическом представлении интерпретация заключается в том, что наши модели слишком сложны, что требует либо уменьшения количества признаков, либо количества ненулевых параметров, либо величины параметров. Вспомните график зависимости сложности модели от ошибки (:numref:`fig_capacity_vs_error`) из :numref:`sec_generalization_basics`. Однако глубокое обучение усложняет эту картину неожиданным образом. Во-первых, для задач классификации наши модели, как правило, обладают достаточной выразительностью, чтобы идеально подогнать каждый обучающий пример, даже в наборах данных, состоящих из миллионов :cite:`zhang2021understanding`. В классической парадигме можно предположить, что такой режим находится в крайней правой части оси сложности модели и что любые улучшения обобщающей способности должны достигаться за счёт регуляризации, либо путём снижения сложности класса моделей, либо путём применения штрафа, строго ограничивающего множество возможных значений параметров. Но именно здесь всё начинает становиться странным. Странно, но для многих задач глубокого обучения (например, распознавания изображений и классификации текста) мы обычно выбираем среди архитектур моделей, все из которых способны достичь произвольно малого значения функции потерь на обучающей выборке (и нулевой ошибки обучения). Поскольку все рассматриваемые модели достигают нулевой ошибки на обучающих данных, *единственный путь для дальнейшего улучшения заключается в снижении переобучения*. Ещё более странно то, что, несмотря на идеальную подгонку модели под обучающие данные, мы часто можем *уменьшить обобщающую ошибку*, сделав модель *ещё более выразительной*, например, добавив слои, узлы или увеличив количество эпох обучения. Ещё более удивительно, что зависимость разрыва между обобщающей способностью и *сложностью* модели (как, например, отражённой в глубине или ширине сетей) может быть немонотонной: сначала увеличение сложности вредит, а затем, в так называемом паттерне «двойного спуска», начинает помогать :cite:`nakkiran2021deep`. Таким образом, специалист по глубокому обучению располагает набором приёмов, некоторые из которых, казалось бы, ограничивают модель тем или иным образом, а другие, напротив, делают её ещё более выразительной, и все они в том или ином смысле применяются для смягчения переобучения. Ещё больше усложняет ситуацию то, что гарантии, предоставляемые классической теорией обучения, могут быть излишне консервативными даже для классических моделей, однако они оказываются бессильными объяснить, почему глубокие нейронные сети вообще обладают обобщающей способностью. Поскольку глубокие нейронные сети способны подгоняться под произвольные метки даже для больших наборов данных, и несмотря на использование привычных методов, таких как :math:`\ell_2` регуляризация, традиционные оценки обобщающей способности, основанные на сложности (например, те, что опираются на размерность Вичника или радемахеровскую сложность класса гипотез), не могут объяснить, почему нейронные сети обобщают. Вдохновение из непараметрики ---------------------------- Впервые знакомясь с глубоким обучением, легко подумать, что модели являются параметрическими. В конце концов, у них *действительно* есть миллионы параметров. При обновлении моделей мы изменяем их параметры. При сохранении моделей мы записываем их параметры на диск. Однако математика и информатика изобилуют контринтуитивными сдвигами перспективы и удивительными изоморфизмами между, казалось бы, разными задачами. Хотя нейронные сети явно *имеют* параметры, в некотором смысле более продуктивно рассматривать их как модели, ведущие себя подобно непараметрическим. Так что же именно делает модель непараметрической? Хотя этот термин охватывает разнообразный набор подходов, общая черта заключается в том, что методы непараметрического обучения, как правило, обладают уровнем сложности, который растет по мере увеличения объёма доступных данных. Возможно, самым простым примером непараметрической модели является алгоритм :math:`k`-ближайших соседей (позже мы рассмотрим и другие непараметрические модели, например, в :numref:`sec_attention-pooling`). Здесь на этапе обучения алгоритм просто запоминает набор данных. Затем на этапе предсказания, когда алгоритм сталкивается с новой точкой :math:`\mathbf{x}`, он находит :math:`k` ближайших соседей (точки :math:`k` :math:`\mathbf{x}_i'`, которые минимизируют некоторое расстояние :math:`d(\mathbf{x}, \mathbf{x}_i')`). Когда :math:`k=1`, этот алгоритм называется :math:`1`-ближайших соседей, и он всегда будет достигать нулевой ошибки на обучающих примерах. Однако это не означает, что алгоритм не будет обобщать. На самом деле оказывается, что при некоторых мягких условиях алгоритм 1-ближайших соседей является согласованным (в конечном итоге сходящимся к оптимальному предиктору). Обратите внимание, что для алгоритма :math:`1`-ближайших соседей необходимо задать некоторую функцию расстояния :math:`d`, что эквивалентно заданию некоторой векторнозначной базисной функции :math:`\phi(\mathbf{x})` для преобразования наших данных в признаки. При любом выборе метрики расстояния мы будем достигать нулевой ошибки на обучающей выборке и в конечном итоге придем к оптимальному предиктору, однако различные метрики расстояния :math:`d` кодируют разные индуктивные смещения и при конечном объёме доступных данных дадут различные предикторы. Различные выборы метрики расстояния :math:`d` отражают разные предположения о лежащих в основе закономерностях, а эффективность различных предикторов будет зависеть от того, насколько эти предположения совместимы с наблюдаемыми данными. В некотором смысле, поскольку нейронные сети являются переобученными (over-parametrized), то есть содержат гораздо больше параметров, чем необходимо для подгонки под обучающие данные, они, как правило, *интерполируют* обучающие данные (подгоняя их идеально) и因此在某些方面表现得更像非参数模型。更近期的理论研究已经确立了大型神经网络与非参数方法(特别是核方法)之间的深刻联系。具体而言, :cite:t:`Jacot.Grabriel.Hongler.2018` 证明了,在极限情况下,随着具有随机初始化权重的多层感知器变得无限宽,它们对于特定选择的核函数(本质上是一个距离函数)变得等价于(非参数)核方法,他们称之为神经切线核(neural tangent kernel)。尽管当前的神经切线核模型可能无法完全解释现代深度网络的行为,但作为分析工具的成功,凸显了非参数建模在理解过参数化深度网络行为方面的有用性。 Ранняя остановка ---------------- Хотя глубокие нейронные сети способны подстраиваться под произвольные метки, даже если они назначены неверно или случайно :cite:`zhang2021understanding`, эта способность проявляется лишь после множества итераций обучения. Новое направление исследований :cite:`Rolnick.Veit.Belongie.Shavit.2017` показало, что в условиях зашумленных меток нейронные сети сначала подстраиваются под данные с чистыми метками, и лишь затем интерполируют данные с неправильными метками. Более того, установлено, что это явление напрямую гарантирует обобщающую способность: всякий раз, когда модель подстроилась под данные с чистыми метками, но не под случайно размеченные примеры из обучающей выборки, она фактически обобщает :cite:`Garg.Balakrishnan.Kolter.Lipton.2021`. В совокупности эти результаты помогают обосновать *раннюю остановку* — классический метод регуляризации глубоких нейронных сетей. В этом подходе вместо прямого ограничения значений весов ограничивается количество *эпох* *обучения*. Наиболее распространённый способ определения критерия остановки заключается в отслеживании ошибки на валидационной выборке в процессе обучения (обычно проверка выполняется один раз после каждой *эпохи*) и прекращении обучения, если ошибка на валидации не уменьшается более чем на некоторую малую величину :math:`\epsilon` в течение определённого числа *эпох*. Это иногда называют *критерием терпения*. Помимо потенциального улучшения *обобщающей способности* в условиях зашумлённых меток, ещё одним преимуществом ранней остановки является экономия времени. Как только выполняется критерий терпения, обучение можно завершить. Для больших моделей, обучение которых может занимать дни и требовать одновременного использования восьми или более GPU, хорошо настроенная ранняя остановка позволяет исследователям сэкономить дни работы и сэкономить работодателям многие тысячи долларов. Важно отметить, что когда отсутствует шум в метках, а наборы данных *разрешимы* (классы действительно разделимы, например, при различении кошек и собак), ранняя остановка, как правило, не приводит к значительному улучшению обобщающей способности. С другой стороны, когда присутствует шум в метках или внутренняя изменчивость меток (например, при прогнозировании смертности среди пациентов), ранняя остановка имеет решающее значение. Обучение моделей до тех пор, пока они не интерполируют зашумленные данные, обычно является плохой идеей. Классические методы регуляризации для глубоких сетей ---------------------------------------------------- В разделе :numref:`chap_regression` мы описали несколько классических методов регуляризации для ограничения сложности моделей. В частности, в :numref:`sec_weight_decay` был представлен метод, называемый затуханием весов, который заключается в добавлении члена регуляризации к функции потерь с целью штрафа за большие значения весов. В зависимости от того, какая норма весов подвергается штрафу, этот метод известен либо как гребневая регуляризация (для штрафа :math:`\ell_2`), либо как регуляризация lasso (для штрафа :math:`\ell_1`). В классическом анализе этих регуляризаторов считается, что они достаточно жёстко ограничивают значения, которые могут принимать веса, предотвращая тем самым подгонку модели к произвольным меткам. В реализациях глубокого обучения затухание весов остается популярным инструментом. Однако исследователи отметили, что типичные значения :math:`\ell_2` регуляризации недостаточны для предотвращения интерполяции данных сетями :cite:`zhang2021understanding`, и поэтому преимущества, если интерпретировать их как регуляризацию, могут иметь смысл только в сочетании с критерием ранней остановки. Без ранней остановки возможно, что, подобно количеству слоёв или количеству узлов (в глубоком обучении) или метрике расстояния (в методе 1-ближайшего соседа), эти методы могут обеспечивать лучшую обобщающую способность не потому, что они существенно ограничивают мощность нейронной сети, а потому, что они каким-то образом кодируют индуктивные предпосылки, которые лучше согласуются с закономерностями, обнаруживаемыми в целевых наборах данных. Таким образом, классические регуляризаторы остаются популярными в реализациях глубокого обучения, даже если теоретическое обоснование их эффективности может кардинально отличаться. Важно отметить, что исследователи в области глубокого обучения также опираются на методы, впервые получившие широкое распространение в контексте классической регуляризации, такие как добавление шума к входным данным модели. В следующем разделе мы рассмотрим известный метод дропаут (предложенный :cite:t:`Srivastava.Hinton.Krizhevsky.ea.2014`), который стал неотъемлемой частью глубокого обучения, хотя теоретическое обоснование его эффективности остается столь же загадочным. Резюме ------ В отличие от классических линейных моделей, у которых, как правило, параметров меньше, чем примеров, глубокие сети часто оказываются избыточно параметризованными и для большинства задач способны идеально подогнать модель под обучающую выборку. Этот *режим интерполяции* бросает вызов многим устоявшимся интуитивным представлениям. Функционально нейронные сети выглядят как параметрические модели. Однако рассматривать их как непараметрические иногда бывает более надёжным источником интуиции. Поскольку часто все рассматриваемые глубокие сети способны подогнать все метки обучающей выборки, почти все улучшения должны достигаться за счет снижения переобучения (сокращения *разрыва обобщающей способности*). Парадоксальным образом вмешательства, уменьшающие разрыв обобщающей способности, иногда кажутся увеличивающими сложность модели, а в других случаях — уменьшающими её. Однако эти методы редко снижают сложность настолько, чтобы классическая теория могла объяснить обобщение глубоких сетей, и *почему определённые выборы приводят к улучшению обобщения* по-прежнему остается в значительной степени открытым вопросом, несмотря на совместные усилия многих блестящих исследователей. Упражнения ---------- 1. В каком смысле традиционные меры, основанные на сложности, не учитывают обобщающую способность глубоких нейронных сетей? 2. Почему *раннюю остановку* можно считать методом регуляризации? 3. Как исследователи обычно определяют критерий остановки? 4. Какой важный фактор, по-видимому, отличает случаи, когда ранняя остановка приводит к значительному улучшению обобщающей способности? 5. Помимо обобщающей способности, опишите другое преимущество ранней остановки. `Обсуждения `__