Есть и второй способ убрать знак — возвести каждый промах в квадрат. Оба годятся: и модуль, и квадрат сводят четыре промаха к одному числу. Но ведут себя по-разному, и с этого различия начнём.
MSE (mean squared error) — среднее квадратов промахов:
MSE = ( промах₁² + промах₂² + ... + промахₙ² ) / n
Квадрат убирает знак и растёт быстрее самого промаха: вдвое больший промах даёт вчетверо больший вклад. При использовании MSE большой промах получает существенно больший вес, чем при использовании модуля.
Посчитаем для наших двух наборов:
| набор | промахи | MSE |
|---|
| A | 1.25, 1, 0.75, 0.5 | 0.84375 |
| B | 0.5, 0.5, 1.5, 2.5 | 2.25 |
Теперь ответ есть, и он однозначный: набор A лучше. Обратите внимание, почему — не потому, что он точнее на большем числе заказов (счёт был равный), а потому, что у него нет ни одного крупного промаха. Один промах на 2.5 минуты у набора B утяжеляет всю сумму.
Это не значит, что MSE лучше модуля вообще. У них разные свойства, и то самое усиление крупных промахов бывает не достоинством, а бедой.
Когда модуль лучше
Добавим к нашим четырём заказам пятый — с испорченной записью. Курьер съездил на 2 км, по правилу это 14.5 минуты, но в журнал попало 48.5: он заехал поесть, а время в базе посчиталось от приёма заказа.
Таблица 1. Пять заказов, последний с испорченной записью.
| заказ | км | светофоров | курьеров | в журнале | по правилу |
|---|
| 1 | 1 | 2 | 4 | 12 | 12 |
| 2 | 2 | 0 | 2 | 13 | 13 |
| 3 | 3 | 4 | 6 | 20 | 20 |
| 4 | 4 | 2 | 6 | 20 | 20 |
| 5 | 2 | 1 | 2 | 48.5 | 14.5 |
Теперь надо найти, какой вес при километрах каждая мерка объявит лучшим на этих пяти заказах. Способа искать минимум мы пока не знаем — он будет во втором и третьем разделах, — поэтому поступим самым грубым образом: посчитаем обе мерки в нескольких точках и посмотрим, где меньше.
Порядок счёта один и тот же для любого веса. Берём вес, считаем прогноз по каждому из пяти заказов, вычитаем факт — получаем пять промахов. Дальше MSE — это среднее их квадратов, а средний модуль — среднее их модулей.
Разберём один вес целиком, w = 5. Первый заказ: 5 · 1 + 1.5 · 2 − 0.5 · 4 + 8 = 14, в журнале 12, промах +2. Пятый, тот самый испорченный: 5 · 2 + 1.5 · 1 − 0.5 · 2 + 8 = 18.5, а в журнале 48.5, промах −30. Все пять промахов: 2, 4, 6, 8, −30. Сумма квадратов 4 + 16 + 36 + 64 + 900 = 1020, делим на 5 — получаем MSE 204. Сумма модулей 2 + 4 + 6 + 8 + 30 = 50, делим на 5 — получаем 10.
Остальные веса считаются так же:
Таблица 2. Обе мерки при шести разных весах.
| вес | пять промахов | сумма квадратов | ÷ 5 = MSE | сумма модулей | ÷ 5 = средний модуль |
|---|
| 2 | −1, −2, −3, −4, −36 | 1326 | 265.2 | 46 | 9.2 |
| 3 | 0, 0, 0, 0, −34 | 1156 | 231.2 | 34 | 6.8 |
| 4 | 1, 2, 3, 4, −32 | 1054 | 210.8 | 42 | 8.4 |
| 5 | 2, 4, 6, 8, −30 | 1020 | 204 | 50 | 10 |
| 6 | 3, 6, 9, 12, −28 | 1054 | 210.8 | 58 | 11.6 |
| 7 | 4, 8, 12, 16, −26 | 1156 | 231.2 | 66 | 13.2 |
Минимумы выделены. MSE опускается ниже всего при w = 5, а средний модуль — при w = 3. Мелкий перебор с шагом 0.0002 подтверждает: это и есть точные минимумы, между целыми точками ничего лучше не спрятано.
Куда смотреть в таблице 2
Читаем её сверху вниз: вес при километрах растёт от 2 до 7. В столбце «пять промахов» первые четыре числа относятся к нормальным заказам, пятое — к испорченному.
С ростом веса эти две группы ведут себя противоположно.
- Четыре нормальных промаха растут: в строке
w = 3 они нулевые, в строке w = 5 это 2, 4, 6, 8, в строке w = 7 уже 4, 8, 12, 16. - Промах на испорченной записи по модулю убывает: −34 в строке
w = 3, потом −30, потом −26. Прогноз на этом заказе растёт и понемногу догоняет завышенное время из журнала.
Значит, увеличивая вес, мы портим четыре заказа и улучшаем один. Обе мерки видят один и тот же обмен — и оценивают его по-разному.
Почему мерки решают по-разному
Сравним строки w = 3 и w = 5 по двум столбцам сумм.
Сумма модулей растёт с 34 до 50, то есть становится хуже. Разберём по частям: испорченная запись подешевела с 34 до 30 — выигрыш 4. А четыре нормальных заказа добавили 2 + 4 + 6 + 8 = 20. Ухудшение перевесило, и модуль остаётся на w = 3.
Сумма квадратов за те же два шага падает с 1156 до 1020, то есть становится лучше. Те же части, но в квадратах: вклад испорченной записи упал с 34² = 1156 до 30² = 900 — выигрыш 256. А четыре нормальных заказа добавили 2² + 4² + 6² + 8² = 120. Теперь перевесил выигрыш, и квадрат уезжает на w = 5.
Вот и весь механизм. Возведение в квадрат раздуло выигрыш от одной записи с 4 до 256, а потери четырёх заказов — всего с 20 до 120. Причина в том, что квадрат огромного промаха огромен непропорционально: 34 минуты дают 1156 — больше, чем все остальные заказы вместе, даже когда они испорчены.
Чем обошёлся выбор MSE
Посмотрите на строку w = 5, столбец промахов: 2, 4, 6, 8, −30. Это и есть цена. На четырёх нормальных заказах прогноз теперь врёт на 2, 4, 6 и 8 минут, хотя при w = 3 не врал вовсе. Модель испорчена для всех обычных заказов, чтобы подстроиться под одну кривую запись.
Отсюда правило выбора. Если в данных бывают выбросы и доверия им нет — брак измерений, опечатки, сбои записи, — модуль устойчивее. Если же крупный промах действительно страшнее нескольких мелких — например, служба обещала клиенту срок и опоздание на полчаса несравнимо хуже пяти опозданий на пять минут, — квадрат как раз то, что нужно.
У разных функций потерь разные свойства и разные области применения — выбор зависит от задачи. С модулем, кстати, тоже умеют работать: излом в нуле обходят.
Ошибка как функция одного веса
Дальше удобно смотреть на MSE как на функцию одной переменной. Для этого устроим себе учебную обстановку — искусственную, зато очень удобную для проверки.
Правило, по которому посчитаны времена в нашей таблице, нам известно: это то самое правило из начала конспекта.
факт = 3 · км + 1.5 · светофоры − 0.5 · курьеры + 8
Проверьте по любой строке таблицы — сходится. Например, третий заказ: 3 · 3 + 1.5 · 4 − 0.5 · 6 + 8 = 20, и в журнале ровно 20.
Теперь сделаем вид, что один из четырёх весов мы забыли — вес при километрах. Три остальных подставим в модель прямо из правила: 1.5, −0.5 и 8. Менять их мы не будем и думать про них тоже; про такие параметры говорят, что их зафиксировали (или заморозили).
Остаётся один неизвестный вес — обозначим его w. Вот в чём смысл такой постановки: ответ нам заранее известен, он равен 3. Значит, мы сможем проверить, приведёт ли метод именно к нему. Все четыре веса отпустим в пятом разделе, когда метод будет разобран.
Прогноз при пробном весе w отличается от факта только первым слагаемым — остальные три параметра зафиксированы и в обеих формулах одинаковы:
прогноз = w · км + 1.5 · светофоры − 0.5 · курьеры + 8
Вычитаем одно из другого. Светофоры, курьеры и сборка сокращаются, остаётся только первое слагаемое:
промах = прогноз − факт = (w − 3) · км
Вот откуда тройка: это тот самый вес, который мы «забыли». Отсюда сразу видно и то, что минимум придётся ровно на w = 3, и то, что значение минимума равно нулю: при верном весе промах на каждом заказе обращается в ноль.
Осталось возвести промахи в квадрат и усреднить, как велит MSE. Квадрат промаха равен (w − 3)² · км², множитель (w − 3)² от номера заказа не зависит и выносится, а среднее квадратов километров по таблице равно (1 + 4 + 9 + 16) / 4 = 7.5:
MSE(w) = 7.5 · (w − 3)²
Функция оказалась параболой: у неё ровно один минимум, и он в точке w = 3.
Так чисто получается только потому, что таблица учебная: все четыре записи следуют правилу без исключений. На настоящих данных времена отклоняются от любого правила, минимум не равен нулю и приходится не на круглое число. Что бывает даже от одной выбивающейся записи, мы видели чуть выше.
Та же мерка на модулях даёт другую функцию: средний модуль промаха равен 2.5 · |w − 3|, где 2.5 — среднее километров.
| w | 0 | 1 | 2 | 3 | 4 | 5 |
|---|
| MSE(w) | 67.5 | 30 | 7.5 | 0 | 7.5 | 30 |
| средний модуль | 7.5 | 5 | 2.5 | 0 | 2.5 | 5 |
Зачем нам понадобится наклон
Вот что здесь важнее самих формул. Функция потерь — это функция от весов: меняем вес, меняется число. Значит, её можно нарисовать: по горизонтали вес, по вертикали ошибка. MSE даёт параболу, средний модуль — «галочку» с вершиной в тройке.
А как только ошибка стала графиком, наугад тыкать в точки уже незачем. Мы стоим где-то на склоне и хотим спуститься на дно. Чтобы сделать шаг, надо знать всего две вещи: в какую сторону склон идёт вниз и насколько он крут. И то и другое — это наклон графика в данной точке.
Вот откуда берётся наклон и зачем он нужен: он превращает слепой перебор в осмысленное движение. Как его посчитать — третий раздел; как выбрать длину шага — четвёртый.
Заодно видна ещё одна причина работать с квадратами. Посмотрите на оба графика рядом.