Перейти к основному содержимому

Обобщающая способность

После того, как мы настроили модель на обучающей выборке (training set) [X,Y][X,Y], нам бы хотелось оценить, насколько хорошо она будет работать на новых данных - тестовой выборке (test set) [X,Y][X',Y'], т.е. оценить так называемую обобщающую способность (generalization ability), т.е. способность модели успешно экстраполировать выученные зависимости при обучении. Ведь именно для этого мы и настраивали модель.

Тут важно помнить, что эмпирический риск на обучающей выборке не будет репрезентативно отражать эмпирический риск на новых данных, и в общем случае мы будем наблюдать, что L(w^X,Y)<L(w^X,Y)L(\hat{\mathbf{w}}|X,Y)<L(\hat{\mathbf{w}}|X',Y'), поскольку w^\hat{\mathbf{w}} специально выбиралась так, чтобы минимизировать ошибки именно на обучающих данных (X,Y)(X,Y), но не новых. Мы лишь надеемся, что новые данные будут распределены примерно также, как в обучающей выборке.

Чем более сложная и гибкая у нас модель, тем легче ей будет подстроиться под обучающую выборку и тем меньше будет L(w^X,Y)L(\hat{\mathbf{w}}|X,Y), однако это не всегда будет приводить к снижению L(w^X,Y)L(\hat{\mathbf{w}}|X',Y'). Например, мы решаем задачу линейной регрессии по одномерному признаку xx и отклику yy. Управлять сложностью получаемой модели можно за счет поиска линейной зависимости не только от xx, но и от квадрата признака (x)2(x)^2, куба признака (x)3(x)^3 и так далее до определённой степени (x)K(x)^K. Тогда наша модель будет иметь вид:

y^=w0+w1x+w2(x)2+...+wK(x)K,\hat{y}=w_0+w_1 x+w_2 (x)^2+...+w_K (x)^K,

и будет моделировать множество всевозможных полиномиальных зависимостей yy от xx. Выбирая различное K мы будем управлять сложностью получаемой модели. На рисунке ниже обучающая выборка в осях x,yx,y показана точками, а прогнозы модели при различных KK показаны пунктирной линией. Видно, что малое K=1K=1 (слева) будет приводить к линейной зависимости, которая слишком проста для реальной зависимости в данных, что соответствует недообученной модели (underfitted model), в то время как при высоком KK (справа) зависимость получается сложнее реальной зависимости, и приводит к переобученной модели (overfitted model). Промежуточное KK приводит к модели, сложность которой примерно соответствует сложности реальных данных.

Гиперпараметры моделей

Такой параметр, как K в примере, который не настраивается на обучающей выборке (как вектор весов w\mathbf{w}), а выбирается пользователем, называется гиперпараметром (hyperparameter).

Подумайте, почему K нельзя настраивать на обучающей выборке?

Такой способ настройки будет всегда поощрять более гибкую модель с большим значением K.

В частности, при K>=N-1 модель будет иметь как минимум столько же настраиваемых параметров, сколько объектов в выборке, и сможет обеспечить безошибочные прогнозы на всех объектах обучающей выборки, но не на новых тестовых объектах.

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

Если модель будет слишком простой, то она будет показывать недостаточную точность из-за того, что у неё не хватает выразительной способности описать реальную зависимость.

Если же модель будет слишком сложной, то она начнёт перенастраиваться на особенности реализации обучающей выборки (которая случайна в силу случайного отбора объектов в неё) вместо подгонки под реальную зависимость, что также негативно повлияет на её обобщающую способность на тестовых данных. Детальнее недообученные и переобученные модели будут описаны в последующем разделе книги.