Что такое модель в математическом смысле
Функция, параметры, ошибка.
Что такое модель в математическом смысле
Когда мы говорим о модели в машинном обучении, полезно сразу отбросить все ассоциации с "искусственным интеллектом" и сложными абстракциями. В математическом смысле модель – это функция. Не больше и не меньше. Она принимает какие-то входные данные и возвращает результат. Различие заключается в том, что функция не является жёстко заданной и допускает настройку параметров.
Проще всего это понять, если думать как PHP-разработчик. Любая модель очень похожа на обычный метод или функцию, которую вы пишете каждый день. Есть входные аргументы, есть вычисления внутри и есть возвращаемое значение.
В самом общем виде модель можно записать так:
Здесь x – входные данные, а ŷ – предсказание модели. Черта над y неслучайна: это не истинное значение, а лишь попытка его угадать.
Функция как основа модели
Допустим, мы хотим предсказывать цену квартиры по ее площади. В простейшем случае модель можно взять линейную:
Это уже полноценная модель. Она говорит: "Цена () примерно равна площади (), умноженной на некий коэффициент (), плюс некий сдвиг ()".
Если переписать это на PHP, получится почти банальный код:
Пример:
С точки зрения PHP это обычный класс. Никакой магии. Но с точки зрения машинного обучения – это модель.
Параметры модели
Ключевой момент здесь – параметры. В нашем примере это () и (). Они не являются входными данными, но именно от них зависит поведение модели. Если изменить () или (), функция начнет выдавать другие результаты.
Важно четко разделять:
входные данные () – то, что приходит "снаружи";
параметры (, ) – то, что живет внутри модели и настраивается;
выход () – результат работы модели.
В обычном программировании вы чаще всего задаете параметры жестко в коде. В машинном обучении все наоборот: структура функции фиксирована, а параметры подбираются автоматически.
Ошибка как мера качества
Теперь возникает главный вопрос: как понять, что одни параметры лучше других? Для этого вводится понятие ошибки, или функции потерь.
Ошибка – это функция (общепринятое название - Loss function), которая сравнивает предсказание модели с реальным значением и возвращает число, показывающее, насколько мы ошиблись. Чем меньше это число, тем лучше модель.
Например, самая простая ошибка – разница между предсказанием и реальностью:
Пример:
На практике чаще используют квадрат ошибки (Squared Error или SE), потому что он всегда положительный и сильнее наказывает большие промахи:
Пример:
Обратите внимание на важный момент. Ошибка напрямую зависит от $yPredicted, а $yPredicted зависит от параметров модели. Значит, в конечном итоге ошибка – это функция от параметров модели.
Обучение как минимизация ошибки
Если собрать все вместе, картина становится очень простой и приземленной.
У нас есть:
модель – функция с параметрами;
данные – пары входов и правильных ответов;
ошибка – способ измерить качество предсказаний.
Обучение модели – это процесс подбора таких параметров, при которых суммарная ошибка на данных становится минимальной.
Даже в PHP это легко представить в виде цикла. Примитивно и неэффективно, но концептуально верно:
Пример:
Конкретный способ изменения параметров – это уже вопрос алгоритмов оптимизации, о которых мы будем говорить отдельно. Но важно уловить саму идею: никто не "объясняет" модели правила. Мы лишь говорим ей, насколько она ошиблась, и позволяем постепенно уменьшать эту ошибку.
Почему это понимание критично
Для PHP-разработчика такое представление особенно ценно. Оно показывает, что машинное обучение не противоречит классическому программированию и не заменяет его. Напротив, оно опирается на те же самые базовые идеи: функции, параметры, вычисления.
Модель – это не черный ящик. Это функция.
Обучение – это не магия. Это оптимизация.
Ошибка – это не абстракция. Это обычная функция, возвращающая число.
Если вы это поняли, то страх перед машинным обучением уже исчез. Дальше начинается инженерия: какие функции брать, какие ошибки использовать и как эффективно подбирать параметры.
Last updated