Привет! На связи Кристина Желтова, ментор курса «ML-инженер» 👋🏻
Представим ситуацию: вы потратили месяц работы на обучение нейросетевой модели, потом за 10 минут интереса ради обучили логистическую регрессию, и логрег победил. Это не шутка и не сказка, это происходит довольно часто.
Одно из самых больших заблуждений в ML — это мысль «нейросети сложнее, значит лучше».
На самом деле, бритва Оккама вот уже много сотен лет говорит: «Не следует множить сущее без необходимости». В машинном обучении это можно переформулировать так: «Если простая модель решает задачу, сложная модель её только усложнит».
Есть довольно много сценариев, когда простая линейная модель выигрывает по различным параметрам у более сложных моделей:
🟠 Сценарий 1: данные линейны по своей природе. Тогда линейная модель для них — то, что доктор прописал! А более сложные модели рискуют переобучиться и страдают от избыточной сложности.
🟠 Сценарий 2: мало данных. Если у вас всего несколько сотен примеров в обучающей выборке, риск переобучения велик при любой природе зависимости. Выбор будет снова не в пользу нейросетей и ансамблей.
🟠 Сценарий 3: интерпретируемость критична. В некоторых задачах важно не просто сделать предсказание, а объяснить, почему оно получилось именно таким. Чем сложнее и умнее модель, тем сложнее понять, как она принимает решения. В противовес, линейные модели максимально просты и прозрачны.
🟠 Сценарий 4: есть ограничения по ресурсам. Если в проде ограниченное количество ресурсов (память, GPU/CPU) или критично быстродействие, тяжелая нейросеть, как бы мы её ни оптимизировали, может всё равно не подойти.
Прежде чем переходить на более сложную модель, спросите себя:
➖ Я попробовал базовую линейную модель?
➖ Базовая модель показала плохое качество (< baseline или ожидаемого порога)?
➖ Я выбрал следующую по сложности модель?
➖ Новая модель даёт значимый прирост метрики?
➖ Прирост оправдывает сложность (для прода и поддержки)?
➖ У меня достаточно данных (> параметры × 10)?
➖ Я валидировал на правильно разделённых данных (train/test, кроссвалидация)?
➖ Новая модель не переобучилась?
➖ Я точно знаю, почему новая модель лучше? (Не просто «она сложнее и круче», а именно почему)
➖ Я готов поддерживать сложность в проде?
Если даже один ответ «нет», это весомый аргумент вернуться к более простой модели.
Ставьте 🔥, если было полезно!
📊 Simulative