Прямая линия через точки
Самая простая модель на свете: один вес, одно начальное значение и ошибка, которую стараются сделать маленькой. В ней видно всё машинное обучение и не спрятано ничего.
В прошлом уроке ты увидел, что такое модель. Этот урок открывает её крышку. Мы берём самую простую модель, прямую линию, потому что в ней каждое число можно проследить руками.
study hours -> exam score
100 | *
90 | *
80 | *
70 | *
60 | *
50 | *
40 | *
+----------------------------------------
1 2 3 4 5 6 7 8 9
six pupils, one dot eachШесть учеников, по точке на каждого: по горизонтали часы подготовки, по вертикали балл.Посмотри на эти точки. Больше часов подготовки — выше балл, примерно, и слово «примерно» здесь главное. Точки не лежат ни на какой идеальной линии. Модель здесь — это линия, которая проходит настолько близко ко всем шести точкам, насколько это возможно для одной прямой. Когда признаков не один, а несколько, та же фраза превращается в плоскость или в поверхность в большем числе измерений, чем ты можешь представить. Больше ничего не меняется: признаки на входе, одно число на выходе.
У линии есть два числа на выбор. Вес говорит, насколько одно дополнительное значение признака сдвигает предсказание. Второе число — это то, с чего линия начинается при нулевом признаке; его можно считать фоновым уровнем. Вместе они называются параметрами модели, и именно их разрешено трогать при обучении. Вес — это влияние, и это по-настоящему полезная информация: он показывает, какой признак сильнее всего толкает ответ и в какую сторону.
score = start + weight * hours
try 1: score = 30 + 6 * hours
4 h -> 54 real 71 miss 17
8 h -> 78 real 86 miss 8
try 2: score = 15 + 10 * hours
4 h -> 55 real 71 miss 16
8 h -> 95 real 86 miss 9
try 3: score = 40 + 5 * hours
4 h -> 60 real 71 miss 11
8 h -> 80 real 86 miss 6Три линии-кандидата и то, насколько каждая догадка расходится с настоящими баллами.Как сравнить две линии? Для каждой строки обучения берём настоящую метку, вычитаем предсказание — эта разность и есть ошибка на строке. Промах на одиннадцать баллов в одну сторону ровно так же плох, как промах на одиннадцать в другую, поэтому каждую ошибку возводят в квадрат, прежде чем сложить. Квадрат ещё и наказывает один огромный промах сильнее, чем несколько маленьких. Сумма называется функцией потерь, а обучение — это поиск двух чисел, при которых она минимальна.
score = 40 + 5 * hours
+-------------+-------+--------+-------+--------+
| study_hours | score | guess | error | square |
+-------------+-------+--------+-------+--------+
| 3 | 55 | 55 | 0 | 0 |
| 4 | 71 | 60 | 11 | 121 |
| 5 | 70 | 65 | 5 | 25 |
| 7 | 86 | 75 | 11 | 121 |
+-------------+-------+--------+-------+--------+
sum of squares: 0 + 121 + 25 + 121 = 267Одна линия, четыре строки и цена, которую она платит за свою неправоту.Почему бы просто не сложить ошибки как есть? Потому что промах плюс десять и промах минус десять взаимно уничтожатся и дадут вид идеальной модели. Квадрат оставляет каждый промах заметным и превращает сумму в одно честное число. У разных форм функции потерь немного разные, но идея не меняется: выбрать параметры, оценить их, уменьшить оценку.
Практика
Модель A предсказывает балл как 40 + 5 умножить на часы. Модель B — как 10 + 12 умножить на часы. Ученик готовился 5 часов и получил 66. Какая модель ближе и что означает её вес?
Подсказки
- Один лишний час подготовки должен сдвигать предсказание ровно на вес и ни на что больше.
- Сравни предсказания обеих моделей при 6 часах, прежде чем решать.
Расставь шаги цикла обучения линейной модели в правильном порядке.
- 1Предсказать метку для каждой строки обучающей таблицы
- 2Сдвинуть оба числа в сторону, где суммарная ошибка меньше
- 3Сравнить каждое предсказание с настоящей меткой и сложить квадраты промахов
- 4Начать с каких угодно веса и начального значения
- 5Повторять, пока суммарная ошибка перестанет уменьшаться
Подсказки
- Обучение — это не что иное, как догадка, измерение промаха и исправление догадки.
- Нельзя измерить ошибку модели, которая ещё не сделала ни одного предсказания.
Маленький магазин хочет предсказывать завтрашние продажи линейной моделью, а признаки у неё — день недели и температура на улице. Что получится?
Подсказки
- У магазина есть одно число на каждый день; линия — самое простое описание этого числа.
- Часть этих чисел вообще не движется вместе с днём недели.