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

Настройка параметров модели

Можно вручную задать функцию соответствия y^=f(x)\hat{y}=f(\mathbf{x}) (которую называют прогностической или прогнозной функцией), которая бы выдавала прогнозы отклика y^\hat{y} по известным признакам, однако, зачастую это сложно сделать из-за многообразия объектов и сложных зависимостей между признаками и откликом. Поэтому в машинном обучении с учителем соответствие между признаками и откликом ищется в некотором классе функций fw(x)f_{\mathbf{w}}(\mathbf{x}), параметризованном вектором параметров w\mathbf{w}, которые подбираются по обучающей выборке, состоящей из N объектов:

(x1,y1),(x2,y2),...(xN,yN).(\mathbf{x}_1,y_1), (\mathbf{x}_2,y_2), ... (\mathbf{x}_N,y_N).

Например, класс функций может быть множеством всех константных прогнозов:

fw(x)=w,wR,f_w(\mathbf{x})=w,\quad w\in\mathbb{R},

или состоять из всех линейных функций от признаков:

fw(x)=w0+w1x1+w2x2+...+wDxD,w=[w0,w1,...wD]RD+1f_{\mathbf{w}}(\mathbf{x})=w_0+w_1 x^1+w_2 x^2+...+w_D x^D, \quad \mathbf{w}=[w_0,w_1,...w_D]\in \mathbb{R}^{D+1}

Существуют и более сложные семейства функций, о которых будет рассказано в следующих главах.

Чтобы из семейства функций выбрать наилучшую (что эквивалентно выбору определённого вектора параметров w^\hat{\mathbf{w}}) необходимо численно формализовать, какие прогнозы мы будем считать хорошими, а какие - плохими. Для этого задаётся функция потерь (loss function) L(y^,y)\mathcal{L}(\hat{y},y), зависящая от истинного значения отклика yy и предсказанного y^\hat{y}. Чем выше значение функции потерь, тем хуже считается прогноз.

Примеры функций потерь для задачи регрессии:

задачаназваниеформула
регрессияквадрат ошибки (squared error)(y^y)2(\hat{y}-y)^2
регрессиямодуль ошибки (absolute error)y^y\left\lvert\hat{y}-y\right\rvert
классификацияиндикатор ошибкиI{y^y}\mathbb{I}\{\hat{y}\ne y\}

Как в случае индикатора ошибки, в этой книге часто будет использоваться функция индикатора I{условие}\mathbb{I}\{\text{условие}\}, возвращающей 1, если условие выполнено, и 0 иначе. Функцию потерь не нужно путать с функцией выигрыша (score function) S(y^,y)S(\hat{y},y), которая также встречается в машинном обучении. Для более плохих прогнозов функция потерь должна принимать более высокие значения, а функция выигрыша - наоборот, более низкие. Например, функцией выигрыша является индикатор верного угадывания класса I{y^=y}\mathbb{I}\{\hat{y}=y\}.

Теоретический и эмпирический риск

Для настройки параметров модели w\mathbf{w} традиционно желают минимизировать ожидаемые потери на новых объектах, поступающих из некоторого вероятностного распределения, называемые теоретическим риском:

E(x,y){L(fw(x),y)}=L(fw(x),y)p(x,y)dxdyminw\mathbb{E}_{(\mathbf{x},y)}\{\mathcal{L}(f_{\mathbf{w}}(\mathbf{x}),y)\}=\mathit{\int}\int\mathit{\mathcal{L}(f_{\mathbf{w}}(\mathbf{x}),y)p(\mathbf{x},y)d\mathbf{x}dy\to\min_{\mathbf{w}}}

Практически эта величина не вычислима из-за того, что мы не обладаем информацией о теоретическом распределении объектов p(x,y)p(\mathbf{x},y), а знаем лишь ограниченную обучающую выборку (x1,y1),(x2,y2),...(xN,yN){(\mathbf{x}_1,y_1),(\mathbf{x}_2,y_2),...(\mathbf{x}_N,y_N)}. Поэтому на практике параметры w\mathbf{w} находятся минимизацией эмпирического риска L(w)L(\mathbf{w}), представляющим собой выборочную оценку теоретического риска по обучающей выборке:

L(wX,Y)=L(fw(x),y)=1Nn=1NL(fw(xn),yn)minwL(\mathbf{w}|X,Y)=\overline{\mathcal{L}(f_{\mathbf{w}}(\mathbf{x}),\,y)}=\frac{1}{N}\sum_{n=1}^{N}\mathcal{L}(f_{\mathbf{w}}(\mathbf{x}_{n}),\,y_{n}) \to \min_\mathbf{w}

Оценка параметров w^\hat{\mathbf{w}} определяется как минимизатор эмпирического риска:

w^=argminwL(wX,Y),\widehat{\mathbf{w}}=\arg\min_{\mathbf{w}}L(\mathbf{w}|X,Y),

где XRN×DX\in \mathbb{R}^{N\times D} - матрица объекты-признаки, строки которой соответствуют DD-мерным векторам признаков для каждого из NN объектов обучающей выборки, а YRNY\in \mathbb{R}^N - вектор откликов.

Модель с настроенными параметрами также называют алгоритмом прогнозирования.