Руководство по выбору модели и отсутствие правильного выбора

Некоторое время назад друг попросил меня дать несколько советов по выбору моделей ИИ. В то время большая часть его образования в области ИИ была сосредоточена на нейронных сетях и их многочисленных вариантах. Для него понимание, которое он получил из своих курсов, заключалось в том, что НС достаточно сильны, чтобы решить что угодно; они всегда являются правильным выбором — зачем изучать другие техники?

Честно говоря, я могу относиться. В тот день, когда я начал свое путешествие по машинному обучению, у меня также была доля подозрений по поводу «более слабых моделей» — зачем изучать ископаемые методы, если мы можем сразу перейти к SVM и ANN? К счастью, я знаю теперь лучше — и я надеюсь, что мой друг тоже!

В этом свете я подумал, что на самом деле это может быть гораздо более частый вопрос, чем я когда-либо предполагал. Поэтому я надеюсь пролить свет на роль более простых моделей в общей схеме вещей.

Если вы начинающий специалист по обработке и анализу данных, это представляет для вас особый интерес, поскольку выбор правильной модели для каждой задачи — один из самых важных навыков, которые вы можете развить. Более того, выбор модели — это одна из тех вещей, которые, если сделать их неправильно, могут сами по себе саботировать все предприятие. Наконец, знание того, когда использовать каждую модель, также может указать, какие модели вам следует изучить дальше.

Итак, давайте начнем с основ.

Все модели ошибочны, но некоторые из них полезны

Сразу же эта цитата Джорджа Бокса указывает нам на фундаментальную истину: все модели являются приблизительными. Другими словами, не существует правильных моделей или правильных вариантов. Таким образом, по определению, мы всегда используем неправильные модели. Однако это не значит, что они не могут быть полезны.

Полезная модель — это та, которая приносит пользу своим пользователям: большую прибыль, меньшие затраты, понимание проблем, полезные рекомендации, курс действий и т. д.

Ошибка новичка состоит в том, что он думает, что точность равна ценности. Например, на каждой странице Amazon есть десятки продуктов, которые я никогда не куплю. Точность алгоритма близка к 0%. Тем не менее, несколько дополнительных долларов, которые он получает от своих случайных попаданий, составляют миллиарды долларов каждый год. Точно так же Medium каждый день присылает мне около 20 предложений для чтения, из которых я могу прочитать одно или два — достаточно, чтобы я посещал веб-сайт каждый божий день. Точность — это лишь один из многих аспектов айсберга полезности.

Если говорить более конкретно и не исчерпывающе, полезность модели сводится к следующим четырем свойствам:

  1. Интерпретируемость: насколько модель информирует о проблеме, которую она решает.
  2. Объяснимость: насколько он может объяснить, почему его результаты
  3. Гибкость: насколько он способен описывать сложные предметы.
  4. Сложность: насколько дорого обходится запуск и обучение.

Например, когда мы изучаем дерево решений, мы узнаем, как оно решает проблему (интерпретируемость), и мы можем проследить, какие решения привели к определенному результату (объяснимость). Чем глубже дерево, тем мощнее (гибкость) и дороже (сложность) оно будет.

С другой стороны, нейронная сеть довольно непрозрачна. Его веса практически не имеют значения для интерпретации и не объясняют его рассуждения. Тем не менее, достаточно большая сеть может аппроксимировать любую функцию, несмотря на ее стоимость.

Насколько ценно каждое из этих свойств, зависит от проблемы. Некоторые задачи интуитивно понятны, но их трудно формализовать, например, распознавание лиц. Эти проблемы часто выигрывают от гибких, но сложных решений, таких как нейронные сети. Другие поначалу не интуитивно понятны, но часто могут быть решены с помощью логических шагов, таких как принятие / отклонение запроса на получение кредита. Более простая, но более объяснимая модель может быть лучшим выбором для решения этих проблем.

Уже должно быть очевидно, что, несмотря на то, что нейронные сети великолепны, им не хватает некоторых важных свойств: интерпретируемости и объяснимости. Поэтому нейронные сети могут плохо подходить для этой задачи, когда нужны эти два свойства.

Остается понять, когда эти свойства необходимы.

Правило большого пальца

Один мой профессор однажды красиво выразился так: в рамках ИИ мы используем простые модели для решения сложных задач и сложные модели для решения простых задач. Итак, давайте разберем это по частям:

  • Простые модели – это классические методы машинного обучения, такие как линейные классификаторы, деревья решений, k-ближайших соседей и т. д. Как правило, такие модели можно реализовать самостоятельно за полдня, не занимаясь гуглом или математическими расчетами.
  • Сложные проблемы — это все те задачи, для решения которых нам, людям, требуется обучение и некоторое время на размышления, прежде чем мы сможем найти хороший ответ. Например, оценка стоимости дома, рассмотрение предложения по кредиту, выбор плана действий для пациента и т. д.
  • Сложные модели — это все многочисленные методы, такие как SVM и нейронные сети, или, в более широком смысле, почти все методы на основе ядра и градиента. Очень маловероятно, что вы сможете кодировать себя до какой-либо степени полезности, особенно без серьезного поиска в Google.
  • Простые задачи — это все интуитивно понятные задачи, которые мы решаем каждый день. Например, когда вы видите кого-то, кого вы знаете, вы не перестаете думать — вы мгновенно узнаете (1) это человек, (2) кто этот человек и (3) его выражение лица. На самом деле, вы читаете этот текст прямо сейчас, не задумываясь о форме букв или о том, как каждый слог соответствует звукам, которые вы слышите внутренне. Более того, вы даже не знаете, как миллионы нейронов внутри вас соединяются, чтобы вы могли все это понять.

Перефразируя слова моего профессора, то, что легко для ИИ, обычно сложно для нас. Точно так же то, что очень просто для нас, чрезвычайно сложно для машин.

Следуя этим рассуждениям, в отношении интуитивных задач мы можем легко проверить результаты алгоритмов, просто взглянув на них. Нам не нужны объяснения или идеи. В большинстве случаев требование объяснения алгоритма — это скорее инструмент отладки, чем то, что вы бы использовали.

С другой стороны, в трудных для человека задачах проверка алгоритма почему является одним из самых действенных способов проверить надежность его рассуждений. Более того, это рассуждение часто помогает решить саму проблему, например, показать пользователю, почему его заявка на получение кредита была отклонена.

Возьмем более сложный пример. Допустим, вы обучили модель прогнозировать цены на жилье. Теоретически эта модель должна быть основана на реальности. Например, большие дома должны быть дороже, чем маленькие дома в том же районе. То же самое следует сказать и о количестве комнат и этажей — если вы не можете интерпретировать вес модели, вы никогда не можете быть уверены, что она всегда будет вести себя надлежащим образом. Поэтому выбор более простой, но проверяемой модели — ваш самый безопасный выбор.

Между тем, при оценке твитов как положительных, нейтральных или отрицательных более простые методы, такие как оценка слов от -1 до +1, могут быть слишком простыми, поскольку не учитываются такие элементы, как ирония, сарказм и опечатки. Более того, в ярости люди могут создавать новые интересные слова, для которых никогда не будет словарного запаса. В таких сценариях совершенно непрозрачная модель, такая как встраивание слов или полноценный преобразователь, может быть наиболее эффективным и надежным подходом.

Наконец, второе практическое правило: чем мощнее модель, тем труднее ее интерпретировать/объяснить. Например, в то время как деревья решений являются одними из наиболее поддающихся аудиту моделей, случайные леса не так хороши. Точно так же, хотя модели k-ближайших соседей довольно понятны, гауссовские процессы значительно более непрозрачны. Другой пример — линейная модель SVM по сравнению со всеми вариантами ядра, которые довольно сложно уложить в голове.

По той же теме при составлении моделей эффект часто пагубен для аспекта интерпретируемости/объяснимости. Например, обучение дерева решений на функциях PCA значительно менее удобочитаемо, чем подход, основанный на чистом дереве решений. То же самое и с ансамблями.

Шкала сложности

Для удобства ниже приведен (мнения) список того, как наиболее распространенные методы соотносятся с понятием интерпретируемого масштаба по сравнению ссложным.

Модели с высокой степенью интерпретируемости/объяснимости:все линейные модели, логистическая регрессия, деревья решений, k-ближайших соседей и т. д. Эти модели гораздо более «алгоритмичны», чем «математически».

Промежуточные модели: бустеры и модели леса (например, XGBoost), наивно-байесовские, гауссовские процессы и т. д. Как правило, методы этой категории представляют собой либо более мощные версии более простых моделей (например, деревья) или значительно более математические.

Расширенные модели:ядерные SVM, нейронные сети, байесовские модели и т. д. Методы этой категории часто являются единственными жизнеспособными подходами к решению различных задач и/или настраиваются на определенные функции (например, оценки неопределенности). ). Более того, они могут различаться по сложности (например, Transformers по сравнению с MLP).

Пограничные случаи

Как и во всем в жизни, всегда есть сценарии, когда очевидный подход — это не то, что вам нужно. Итак, вот неполный список сценариев, в которых вы можете заменить простую модель сложной или наоборот.

Задачи компьютерного зрения: при работе с изображениями и видео у нас обычно нет другого выбора, кроме как CNN и Vision Transformers (ViTs). Однако формулировка, которую вы используете, может существенно повлиять на полезность вашей модели. Например, модели сегментации/обнаружения более понятны, чем классификаторы изображений (в конце концов, они сообщают вам, где находится объект). Также может быть полезно изучить смешанные подходы, такие как использование CNN для анализа сцены и более простой модели для анализа ее результатов.

Когда точность является приоритетом: вернемся к предсказателю цены дома. Для компании может быть более привлекательным получить наилучшие оценки любой ценой, чем иметь четкое представление почему. То же самое может относиться к предсказателю стоимости активов в условиях внутридневной торговли. В таких сценариях сложная нейронная сеть может быть просто излишеством, которое вам нужно (просто убедитесь, что вы всегда помните, что все это может когда-нибудь иметь неприятные последствия)

Когда объяснимость является приоритетом:в некоторых условиях, таких как медицинский конвейер, наличие объяснимой модели может быть юридическим требованием, а не вариантом. В таких случаях лучше всего использовать наиболее сложный подход, который по-прежнему соответствует необходимым требованиям. Хорошим предложением здесь является автонастраиваемая модель XGBoost.

Использование надстроек. Хотя я сказал, что нейронные сети нельзя ни объяснить, ни интерпретировать, некоторая литература посвящена решению таких проблем. Например, можно использовать значения SHAP, чтобы получить некоторое осмысленное представление о внутренней работе моделей. Для некоторых задач этих гибридных подходов может быть вполне достаточно. Однако не ждите от этого чуда.

До сих пор мы рассматривали то, что недавно было названо «модельно-ориентированным подходом»: при наличии проблемы мы ищем наилучшую модель для ее решения. Хотя это обычно имеет место для многих задач, в реальном мире проблемы также могут быть изменены. Например, часто можно переформулировать проблемы, чтобы решать их более управляемыми способами внутри компании. Точно так же, пытаясь повысить точность модели, можно просто получить больше точек данных вместо того, чтобы пробовать все, что может предложить современное состояние (что МНОГО).

Поэтому я заканчиваю эту статью, напоминая вам, что реальный мир предлагает гораздо больше возможностей, чем то, что вы могли видеть в своем университетском дипломе. Реальный мир ориентирован на данные. Выбор правильной модели невероятно важен, но всегда следите за тем, чтобы у вас были качественные данные.

Это пока все. Не стесняйтесь комментировать или связаться со мной, если у вас есть какие-либо вопросы об этой статье или документах. Вы также можете подписаться, чтобы получать уведомления всякий раз, когда я публикую здесь. Вы также можете поддержать меня напрямую, купив мне чашечку кофе :)

Если вы новичок в Medium, настоятельно рекомендую подписаться. Средние статьи — идеальная пара для StackOverflow для профессионалов в области данных и ИТ, а также для новичков. Пожалуйста, рассмотрите возможность использования моей партнерской ссылки при регистрации.

Спасибо за прочтение :)