4.6. Обобщающая способность в классификации¶
До сих пор мы сосредоточились на том, как решать задачи многоклассовой классификации, обучая (линейные) нейронные сети с несколькими выходами и функцией софтмакс. Рассматривая выходы нашей модели как вероятностные предсказания, мы обосновали и вывели функцию потерь перекрёстной энтропии, которая вычисляет отрицательный логарифм правдоподобия меток, которые наша модель (при фиксированном наборе параметров) присваивает истинным значениям. Наконец, мы применили эти инструменты на практике, подобрав параметры модели на обучающей выборке. Однако, как всегда, наша цель — научиться выявлять общие закономерности, что оценивается эмпирически на ранее не виденных данных (тестовой выборке). Высокая точность на обучающей выборке ничего не значит. Поскольку каждый из наших входных примеров уникален (и это верно для большинства наборов данных с высокой размерностью), мы можем достичь идеальной точности на обучающей выборке, просто запомнив набор данных на первой эпохе обучения, а затем подсматривая метку всякий раз, когда мы видим новый пример. И всё же запоминание точных меток, связанных с конкретными примерами обучающей выборки, не говорит нам, как классифицировать новые примеры. Без дополнительных указаний нам, возможно, придётся прибегать к случайным угадываниям при столкновении с новыми примерами.
Возникает ряд насущных вопросов, требующих немедленного внимания:
Сколько примеров тестовой выборки необходимо для получения надёжной оценки точности наших классификаторов на генеральной совокупности?
Что произойдет, если мы будем постоянно оценивать модели на одних и тех же тестовых данных?
Почему мы должны ожидать, что подгонка наших линейных моделей к обучающей выборке даст лучший результат, чем наша наивная схема запоминания?
В то время как Section 3.6 рассматривал основы переобучения и обобщающей способности в контексте линейной регрессии, эта глава углубится в некоторые фундаментальные идеи теории статистического обучения. Оказывается, мы часто можем гарантировать обобщающую способность априори: для многих моделей и для любого заданного верхнего предела разрыва обобщения \(\epsilon\) мы можем определить необходимое количество образцов \(n\) таким образом, что если наша обучающая выборка содержит как минимум \(n\) образцов, наша эмпирическая ошибка окажется в пределах \(\epsilon\) от истинной ошибки для любого распределения генерации данных. К сожалению, также оказывается, что, хотя такие гарантии обеспечивают глубокий набор интеллектуальных строительных блоков, они имеют ограниченную практическую пользу для специалиста по глубокому обучению. Короче говоря, эти гарантии предполагают, что обеспечение обобщающей способности глубоких нейронных сетей априори требует абсурдно большого количества примеров (возможно, триллионов или более), даже когда мы обнаруживаем, что на задачах, представляющих для нас интерес, глубокие нейронные сети обычно демонстрируют удивительно хорошую обобщающую способность с гораздо меньшим количеством примеров (тысячи). Таким образом, специалисты по глубокому обучению часто полностью отказываются от априори гарантий, вместо этого используя методы, которые хорошо зарекомендовали себя на аналогичных задачах в прошлом, и подтверждая обобщающую способность постфактум с помощью эмпирических оценок. Когда мы дойдем до Section 5, мы вернемся к обсуждению обобщения и предоставим краткое введение в обширную научную литературу, возникшую в попытках объяснить, почему глубокие нейронные сети хорошо обобщают на практике.
4.6.1. Тестовая выборка¶
Поскольку мы уже начали опираться на тестовые наборы данных как на золотой стандарт оценки обобщающей способности, начнем с обсуждения свойств таких оценок ошибок. Рассмотрим фиксированный классификатор \(f\), не вдаваясь в то, как он был получен. Кроме того, предположим, что у нас есть новый набор данных \(\mathcal{D} = {(\mathbf{x}^{(i)},y^{(i)})}_{i=1}^n\), который не использовался для обучения классификатора \(f\). Эмпирическая ошибка нашего классификатора \(f\) на \(\mathcal{D}\) — это просто доля примеров, для которых предсказание \(f(\mathbf{x}^{(i)})\) не совпадает с истинной меткой \(y^{(i)}\), и вычисляется по следующей формуле:
В отличие от этого, ошибка на генеральной совокупности — это математическое ожидание доли примеров в генеральной совокупности (некоторого распределения \(P(X,Y)\), описываемого функцией плотности вероятности \(p(\mathbf{x},y)\)), для которых наш классификатор не совпадает с истинной меткой:
Хотя \(\epsilon(f)\) — это величина, которая нас действительно интересует, мы не можем наблюдать её напрямую, точно так же, как мы не можем напрямую измерить средний рост в большой популяции, не измеряя каждого человека. Мы можем оценить эту величину только на основе примеров. Поскольку наша тестовая выборка \(\mathcal{D}\) статистически репрезентативна для основной популяции, мы можем рассматривать \(\epsilon_\mathcal{D}(f)\) как статистическую оценку ошибки популяции \(\epsilon(f)\). Более того, поскольку наша интересующая нас величина \(\epsilon(f)\) является математическим ожиданием (случайной величины \(\mathbf{1}(f(X) \neq Y)\)), а соответствующая оценка \(\epsilon_\mathcal{D}(f)\) — выборочным средним, оценка ошибки популяции сводится к классической проблеме оценки среднего, о которой вы, возможно, помните из Section 2.6.
Важный классический результат теории вероятностей, известный как центральная предельная теорема, гарантирует, что если у нас есть \(n\) случайных примеров \(a_1, ..., a_n\), выбранных из любого распределения со средним значением \(\mu\) и стандартным отклонением \(\sigma\), то по мере того как количество примеров \(n\) стремится к бесконечности, среднее значение выборки \(\hat{\mu}\) приблизительно стремится к нормальному распределению с центром в истинном среднем значении и стандартным отклонением \(\sigma/\sqrt{n}\). Уже из этого следует важный вывод: по мере роста числа примеров наша ошибка на тестовой выборке \(\epsilon_\mathcal{D}(f)\) должна приближаться к истинной ошибке \(\epsilon(f)\) со скоростью \(\mathcal{O}(1/\sqrt{n})\). Таким образом, чтобы оценить ошибку на тестовой выборке в два раза точнее, нам необходимо собрать тестовую выборку в четыре раза больше. Чтобы уменьшить ошибку на тестовой выборке в сто раз, нам необходимо собрать тестовую выборку в десять тысяч раз больше. В общем случае такая скорость \(\mathcal{O}(1/\sqrt{n})\) часто является наилучшей, на которую мы можем рассчитывать в статистике.
Теперь, когда мы знаем об асимптотической скорости сходимости ошибки на тестовой выборке \(\epsilon_\mathcal{D}(f)\) к истинной ошибке \(\epsilon(f)\), мы можем рассмотреть некоторые важные детали. Вспомним, что интересующая нас случайная величина \(\mathbf{1}(f(X) \neq Y)\) может принимать только значения \(0\) и \(1\), а значит, это бернуллиевская случайная величина, характеризующаяся параметром, определяющим вероятность того, что она принимает значение \(1\). Здесь \(1\) означает, что наш классификатор допустил ошибку, поэтому параметр нашей случайной величины — это и есть истинная доля ошибок \(\epsilon(f)\). Дисперсия \(\sigma^2\) бернуллиевской случайной величины зависит от её параметра (в данном случае \(\epsilon(f)\)) согласно выражению \(\epsilon(f)(1-\epsilon(f))\). Хотя \(\epsilon(f)\) изначально неизвестно, мы знаем, что оно не может превышать \(1\). Небольшой анализ этой функции показывает, что дисперсия максимальна, когда истинная доля ошибок близка к \(0.5\), и может быть значительно ниже, когда она близка к \(0\) или к \(1\). Это означает, что асимптотическое стандартное отклонение нашей оценки \(\epsilon_\mathcal{D}(f)\) ошибки \(\epsilon(f)\) (в зависимости от выбора \(n\) тестовых выборок) не может превышать \(\sqrt{0.25/n}\).
Если не учитывать тот факт, что эта характеристика описывает поведение при стремлении размера тестовой выборки к бесконечности, а не при наличии конечных выборок, то из этого следует, что если мы хотим, чтобы наша ошибка на тестовой выборке \(\epsilon_\mathcal{D}(f)\) аппроксимировала ошибку на генеральной совокупности \(\epsilon(f)\) так, чтобы одно стандартное отклонение соответствовало интервалу \(\pm 0.01\), то нам следует собрать примерно 2500 образцов. Если же мы хотим уместить в этот диапазон два стандартных отклонения и, следовательно, быть уверенными на 95%, что \(\epsilon_\mathcal{D}(f) \in \epsilon(f) \pm 0.01\), то нам потребуется 10 000 образцов!
Оказывается, именно такой размер имеют наборы тестовых данных для многих популярных бенчмарков в машинном обучении. Вас может удивить то, что тысячи прикладных работ по глубокому обучению публикуются каждый год, где значительное внимание уделяется улучшению показателя ошибки на величину \(0.01\) или меньше. Конечно, когда уровни ошибки значительно ближе к \(0\), то улучшение на \(0.01\) действительно может быть существенным.
Одна из неприятных особенностей нашего анализа заключается в том, что он описывает лишь асимптотику, то есть то, как меняется взаимосвязь между \(\epsilon_\mathcal{D}\) и \(\epsilon\) при стремлении размера выборки к бесконечности. К счастью, поскольку наша случайная величина ограничена, мы можем получить корректные конечные оценки для выборки, применив неравенство Хоффдинга (1963):
Чтобы найти минимальный размер набора данных, который позволил бы нам с 95-процентной уверенностью утверждать, что расстояние \(t\) между нашей оценкой \(\epsilon_\mathcal{D}(f)\) и истинным уровнем ошибок \(\epsilon(f)\) не превышает \(0.01\), вы обнаружите, что требуется примерно 15 000 примеров, тогда как асимптотический анализ выше предлагал 10 000 примеров. Если вы углубитесь в статистику, то обнаружите, что эта тенденция сохраняется в общем случае. Гарантии, справедливые даже для конечных выборок, как правило, являются несколько более консервативными. Обратите внимание, что в масштабах задачи эти числа не так уж сильно различаются, что отражает общую полезность асимптотического анализа для получения приблизительных оценок, даже если они не являются гарантиями, на которые можно опереться в суде.
4.6.2. Повторное использование тестовой выборки¶
По сути, вы теперь готовы к успешному проведению эмпирических исследований в области машинного обучения. Почти все практические модели разрабатываются и валидируются на основе качества работы на тестовой выборке, и теперь вы являетесь мастером работы с тестовой выборкой. Для любого фиксированного классификатора \(f\) вы знаете, как оценить его ошибку на тестовой выборке \(\epsilon_\mathcal{D}(f)\) и точно понимаете, что можно (и что нельзя) сказать об ошибке на генеральной совокупности \(\epsilon(f)\).
Итак, предположим, что вы применяете эти знания и готовы обучить свою первую модель \(f_1\). Зная, насколько высокой должна быть уверенность в показателе ошибки классификатора, вы используете приведённый выше анализ, чтобы определить подходящее количество примеров, которое следует выделить для тестовой выборки. Кроме того, допустим, что вы усвоили уроки из Section 3.6 и обеспечили неприкосновенность тестовой выборки, выполнив весь предварительный анализ, настройку гиперпараметров и даже выбор среди нескольких конкурирующих архитектур моделей на валидационной выборке. Наконец, вы оцениваете свою модель \(f_1\) на тестовой выборке и сообщаете несмещенную оценку ошибки генеральной совокупности вместе с соответствующим доверительным интервалом.
Пока всё шло хорошо. Однако ночью, в три часа утра, вам приходит в голову блестящая идея нового подхода к моделированию. На следующий день вы реализуете новую модель, настраиваете её гиперпараметры на валидационной выборке, и не только получаете работающую новую модель \(f_2\), но и обнаруживаете, что её ошибка значительно ниже, чем у \(f_1\). Однако восторг от открытия быстро угасает, когда вы приступаете к финальной оценке. У вас нет тестовой выборки!
Хотя исходная тестовая выборка \(\mathcal{D}\) всё ещё находится на вашем сервере, теперь вы сталкиваетесь с двумя серьёзными проблемами. Во-первых, когда вы собирали тестовую выборку, вы определяли необходимый уровень точности, исходя из предположения, что оцениваете один классификатор \(f\). Однако, если вы начинаете оценивать несколько классификаторов \(f_1, ..., f_k\) на одной и той же тестовой выборке, вам необходимо учитывать проблему ложных открытий. Раньше вы могли быть на 95% уверены, что \(\epsilon_\mathcal{D}(f) \in \epsilon(f) \pm 0.01\) для одного классификатора \(f\), и таким образом вероятность получения вводящего в заблуждение результата составляла всего 5%. При наличии \(k\) классификаторов становится трудно гарантировать, что среди них нет хотя бы одного, чьи результаты на тестовой выборке будут вводящими в заблуждение. При рассмотрении 20 классификаторов у вас может вообще не быть достаточной мощности, чтобы исключить вероятность того, что хотя бы один из них получил вводящий в заблуждение результат. Эта проблема связана с множественной проверкой гипотез, которая, несмотря на обширную литературу в области статистики, остаётся устойчивой проблемой, портящей научные исследования.
Если этого недостаточно, чтобы вызывать беспокойство, есть особая причина не доверять результатам последующих оценок. Помните, что наш анализ производительности на тестовой выборке опирался на предположение, что классификатор был выбран без какого-либо контакта с тестовой выборкой, и поэтому мы могли рассматривать тестовую выборку как случайную выборку из основной генеральной совокупности. Здесь же вы тестируете не одну функцию, а несколько, причём последующая функция \(f_2\) была выбрана после того, как вы увидели результаты работы на тестовой выборке для \(f_1\). Как только информация из тестовой выборки просочилась к разработчику модели, она больше не может считаться истинной тестовой выборкой в самом строгом смысле. Эта проблема называется адаптивным переобучением и недавно стала предметом пристального интереса со стороны теоретиков машинного обучения и статистиков (Dwork et al., 2015). К счастью, хотя возможно полностью «вытечь» из удерживаемого набора данных, а теоретические наихудшие сценарии выглядят мрачно, эти оценки могут быть слишком консервативными. На практике старайтесь создавать настоящие тестовые выборки, обращайтесь к ним как можно реже, учитывайте проблему множественного тестирования гипотез при расчёте доверительных интервалов и будьте более бдительными, когда ставки высоки, а размер набора данных мал. При проведении серии бенчмарк-вызовов хорошей практикой является поддержание нескольких тестовых выборок, чтобы после каждого раунда старая тестовая выборка могла быть понижена до валидационной выборки.
4.6.3. Теория статистического обучения¶
Проще говоря, тестовые выборки — это всё, что у нас действительно есть, и этот факт кажется странным образом неудовлетворительным. Во-первых, у нас редко бывает истинная тестовая выборка — если мы не сами создаём набор данных, кто-то другой, вероятно, уже оценивал свой классификатор на нашей якобы «тестовой выборке». И даже если нам досталась первичная возможность, мы вскоре сталкиваемся с разочарованием и желанием оценивать последующие попытки моделирования без мучительного ощущения, что нашим результатам нельзя доверять. Более того, даже истинная тестовая выборка может лишь задним числом показать, обобщил ли классификатор свои знания на генеральную совокупность, но не даёт нам оснований априори ожидать, что он должен это сделать.
Учитывая эти сомнения, вы, возможно, уже достаточно подготовлены, чтобы оценить привлекательность теории статистического обучения — математического раздела машинного обучения, исследователи которого стремятся прояснить фундаментальные принципы, объясняющие, почему и при каких условиях модели, обученные на эмпирических данных, обладают обобщающей способностью по отношению к ранее не встречавшимся данным. Одной из главных целей исследователей в области статистического обучения является оценка верхней границы разрыва в обобщающей способности, связывающей свойства класса моделей с количеством образцов в наборе данных.
Теоретики обучения стремятся оценить разницу между эмпирической ошибкой \(\epsilon_\mathcal{S}(f_\mathcal{S})\) обученного классификатора \(f_\mathcal{S}\), которая вычисляется и оценивается на обучающей выборке \(\mathcal{S}\), и истинной ошибкой \(\epsilon(f_\mathcal{S})\) того же классификатора на генеральной совокупности. Это может показаться похожим на проблему оценки, которую мы только что рассмотрели, но между ними есть существенное различие. Ранее классификатор \(f\) был фиксированным, и нам требовался набор данных исключительно для целей оценки. Действительно, любой фиксированный классификатор обобщает: его ошибка на (ранее не виденном) наборе данных является несмещенной оценкой ошибки на генеральной совокупности. Но что мы можем сказать, если классификатор обучается и оценивается на одном и том же наборе данных? Можем ли мы когда-либо быть уверены, что ошибка на обучающей выборке будет близка к ошибке на тестовой выборке?
Предположим, что наш обученный классификатор \(f_\mathcal{S}\) должен быть выбран из некоторого заранее заданного множества функций \(\mathcal{F}\). Вспомним из обсуждения тестовых выборок, что, хотя оценить ошибку одного классификатора легко, ситуация усложняется, когда мы начинаем рассматривать наборы классификаторов. Даже если эмпирическая ошибка любого одного (фиксированного) классификатора с высокой вероятностью будет близка к его истинной ошибке, при рассмотрении набора классификаторов нам нужно опасаться того, что хотя бы один из них может получить сильно искаженную оценку ошибки. Опасность заключается в том, что мы можем выбрать именно такой классификатор и тем самым грубо недооценить ошибку на генеральной совокупности. Более того, даже для линейных моделей, поскольку их параметры принимают непрерывные значения, мы обычно выбираем из бесконечного класса функций (\(|\mathcal{F}| = \infty\)).
Одно из амбициозных решений этой проблемы заключается в разработке аналитических инструментов для доказательства равномерной сходимости, то есть того, что с высокой вероятностью эмпирическая ошибка для каждого классификатора из класса \(f\in\mathcal{F}\) будет одновременно сходиться к своей истинной ошибке. Иными словами, мы ищем теоретический принцип, который позволил бы нам утверждать, что с вероятностью не менее \(1-\delta\) (для некоторого малого \(\delta\)) ошибка любого классификатора \(\epsilon(f)\) (среди всех классификаторов в классе \(\mathcal{F}\)) не будет оценена с погрешностью, превышающей некоторое малое значение \(\alpha\). Очевидно, что мы не можем делать такие утверждения для всех классов моделей \(\mathcal{F}\). Вспомним класс машин запоминания, которые всегда достигают нулевой эмпирической ошибки \(0\), но никогда не превосходят случайный выбор на исходной генеральной совокупности.
В некотором смысле класс моделей-мнемонистов слишком гибок. Для него не может выполняться такой результат о равномерной сходимости. С другой стороны, фиксированный классификатор бесполезен: он идеально обобщает, но не подходит ни к обучающим, ни к тестовым данным. Таким образом, центральным вопросом обучения исторически считался компромисс между более гибкими (с большей дисперсией) классами моделей, которые лучше подходят к обучающим данным, но рискуют привести к переобучению, и более жёсткими (со смещением) классами моделей, которые хорошо обобщают, но рискуют привести к недообучению. Важной задачей теории обучения была разработка соответствующего математического аппарата для количественной оценки положения модели в этом спектре и получения соответствующих гарантий.
В ряде основополагающих работ Вапник и Червоненкис расширили теорию сходимости относительных частот на более общие классы функций (Vapnik and Chervonenkis, 1964, Vapnik and Chervonenkis, 1968, Vapnik and Chervonenkis, 1971, Vapnik and Chervonenkis, 1981, Vapnik and Chervonenkis, 1991, Vapnik and Chervonenkis, 1974). Одним из ключевых достижений этого направления является размерность Вапника–Червоненкиса (VC-размерность), которая измеряет (одно из понятий) сложности (гибкости) класса моделей. Более того, один из их ключевых результатов ограничивает разницу между эмпирической ошибкой и ошибкой на генеральной совокупности как функцию от VC-размерности и числа образцов:
Здесь \(\delta > 0\) — вероятность нарушения оценки, \(\alpha\) — верхняя граница обобщающей способности, а \(n\) — размер набора данных. Наконец, \(c > 0\) — константа, зависящая только от масштаба возможных потерь. Одним из применений оценки может быть подстановка желаемых значений \(\delta\) и \(\alpha\) для определения необходимого количества собираемых примеров. Размерность Виттика–Червоненкиса (VC-размерность) характеризует наибольшее количество точек данных, для которых можно задать произвольную (бинарную) разметку и для каждой из которых найти некоторую модель \(f\) из класса, согласующуюся с этой разметкой. Например, линейные модели на входах размерности \(d\) имеют VC-размерность \(d+1\). Легко видеть, что прямая может задать любую возможную разметку для трёх точек в двумерном пространстве, но не для четырёх. К сожалению, теория часто оказывается излишне пессимистичной для более сложных моделей, и для получения такой гарантии обычно требуется гораздо больше примеров, чем фактически необходимо для достижения желаемого уровня ошибки. Обратите также внимание, что при фиксированном классе моделей и \(\delta\) наша ошибка снова убывает со стандартной скоростью \(\mathcal{O}(1/\sqrt{n})\). Вероятно, нам не удастся добиться лучших результатов с точки зрения \(n\). Однако при изменении класса моделей VC-размерность может давать пессимистичную картину обобщающей способности.
4.6.4. Summary¶
Самый простой способ оценить модель — использовать тестовую выборку, состоящую из ранее невиданных данных. Оценка на тестовой выборке дает несмещенную оценку истинной ошибки и сходится с желаемой \(\mathcal{O}(1/\sqrt{n})\) скоростью по мере увеличения объёма тестовой выборки. Мы можем построить приблизительные доверительные интервалы, основанные на точных асимптотических распределениях, или строгие доверительные интервалы для конечных выборок, основанные на (более консервативных) гарантиях для конечных выборок. Действительно, оценка на тестовой выборке является фундаментом современных исследований в области машинного обучения. Однако тестовые выборки редко остаются «настоящими» (то есть используются разными исследователями многократно). Как только одна и та же тестовая выборка применяется для оценки множества моделей, контролировать ложные открытия становится сложно. Это может привести к серьезным проблемам в теории. На практике значимость этой проблемы зависит от размера отложенных выборок и от того, используются ли они исключительно для подбора гиперпараметров или же происходит более прямое утечка информации. Тем не менее, хорошей практикой является создание настоящих тестовых выборок (или нескольких) и максимально осторожное отношение к частоте их использования.
Стремясь предложить более удовлетворительное решение, теоретики статистического обучения разработали методы, гарантирующие равномерную сходимость для всего класса моделей. Если действительно эмпирическая ошибка каждой модели одновременно сходится к её истинной ошибке, то мы можем свободно выбирать модель, показывающую наилучшие результаты, минимизируя ошибку обучения, зная, что она будет столь же хорошо работать на отложенных данных. Ключевой момент заключается в том, что любой подобный результат должен зависеть от некоторого свойства класса моделей. Владимир Вапник и Алексей Червоненкис ввели понятие размерности Вичерсона-Червоненкиса (VC-размерности), представив результаты о равномерной сходимости, которые справедливы для всех моделей в VC-классе. Ошибки обучения для всех моделей в классе (одновременно) гарантированно оказываются близкими к их истинным ошибкам и гарантированно становятся ещё ближе при скоростях, указанных в \(\mathcal{O}(1/\sqrt{n})\). После революционного открытия VC-размерности было предложено множество альтернативных мер сложности, каждая из которых обеспечивает аналогичную гарантию обобщающей способности. Подробное обсуждение нескольких продвинутых способов измерения сложности функций см. в Boucheron et al. (2005). К сожалению, хотя эти меры сложности стали широко полезными инструментами в статистической теории, они оказываются бессильными (при их непосредственном применении) для объяснения того, почему глубокие нейронные сети обладают хорошей обобщающей способностью. Глубокие нейронные сети часто имеют миллионы параметров (или больше) и могут легко присваивать случайные метки большим наборам точек. Тем не менее, они хорошо обобщают на практических задачах и, что удивительно, часто демонстрируют лучшую обобщающую способность, когда они больше и глубже, несмотря на более высокие значения VC-размерности. В следующей главе мы вернёмся к вопросу обобщения в контексте глубокого обучения.
4.6.5. Упражнения¶
Если мы хотим оценить ошибку фиксированной модели \(f\) с точностью до \(0.0001\) с вероятностью более 99,9%, сколько образцов нам потребуется?
Предположим, что у кого-то есть размеченная тестовая выборка \(\mathcal{D}\), и доступны только немаркированные входные данные (признаки). Допустим, вы можете получить доступ к меткам тестовой выборки только путем запуска модели \(f\) (без ограничений на класс моделей) на каждом из немаркированных входных данных и получения соответствующей ошибки \(\epsilon_\mathcal{D}(f)\). Сколько моделей вам нужно будет оценить, прежде чем вы раскроете всю тестовую выборку и, таким образом, сможете демонстрировать ошибку \(0\), независимо от вашей истинной ошибки?
Какова размерность ВЧ класса полиномов пятой степени?
Какова размерность ВКХ для прямоугольников, выровненных по осям, на двумерных данных?