Нужно ли заинтересованным сторонам знать машинное обучение?

Если вы работаете с машинным обучением, в какой-то момент вам, вероятно, понадобится объяснить модели деловым людям, которые не имеют никакого опыта в этом вопросе. Деловые люди знают свое дело, и если они смогут ДЕЙСТВИТЕЛЬНО понять, как работают некоторые модели машинного обучения, они смогут внести большой вклад в это. Это также подходит любому другому человеку, не связанному с машинным обучением, например, менеджерам по продуктам, разработчикам программного обеспечения и любым другим заинтересованным сторонам. Исходя из этого, давайте поговорим о том, почему и как объяснять модели.

Зачем мне объяснять, как работают модели?

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

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

Это довольно упрощенный пример, но я думаю, что вы поняли суть. Ситуация, описанная выше, действительно имела место, и на плохой прогноз в те случайные дни повлияли американские Выплаты по социальному обеспечению, что является вполне контекстуальной информацией, предоставленной деловым человеком. После использования в модели Календаря социального страхования результаты прогнозирования значительно улучшились.

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

Как мне объяснить, как работают модели?

Теперь, когда у нас есть представление о том, почему важно объяснять модели машинного обучения «посторонним», давайте сосредоточимся на том, как это делать правильно.

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

Знание и смирение

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

Попробуйте использовать аналогии/метафоры

Но осторожно, непонимание хуже, чем вообще ничего не понимать. Контекст машинного обучения всегда слишком специфичен, поэтому вы можете попытаться привести объяснение к наиболее знакомому контексту. Давайте используем контролируемое обучение в качестве примера, основанного на определении обучения Мелло и Понти [1]:

Представьте, что ребенок изучает названия некоторых предметов. Ребенок показывает на стол и говорит «стул». Родители, наблюдающие за обучением, поправляют ребенка, говоря, что это не стул, а стол. Ребенок постоянно делает несколько ошибок относительно предметов, а родители продолжают его исправлять, но просто говорят, правильно это или нет, не объясняя почему. Со временем ребенок сам начнет ассоциировать некоторые характеристики, которые делают этот предмет стулом: четыре ножки, деревянные, на нем сидят люди и т.д. Обучение с учителем ведет себя примерно так же, сопоставляя функции/характеристики с классами.

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

Используйте изображения и иллюстрации

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

Практика делает совершенным

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

Выводы

Я работал очень близко к аутсайдерам почти четыре года, и это всего лишь мои мысли о том, как объяснить им машинное обучение. Вы можете и должны иметь свой собственный способ объяснить вещи. Исходя из своего опыта, я могу заверить, что наличие людей, занимающихся продуктом и бизнесом, помимо моделей, делает вашу работу намного проще и приносит удовлетворение, а когда вы обучаете их, вы становитесь рекомендателем, помимо того, что получаете побочный эффект обучения гораздо большему!

Вот и все! Спасибо за прочтение. Надеюсь, вы чему-то научились. По любым вопросам или предложениям обращайтесь ко мне здесь или в моем Профиле LinkedIn. Увидимся!

Рекомендации

[1] Фернандес де Мелло, Родриго и Моасир Антонелли Понти. Машинное обучение: практический подход к теории статистического обучения. Cham: Springer International Publishing (2018).

Повышение уровня кодирования

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

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу