Машинное обучение для менеджеров: таинство сепуления

в 14:39, , рубрики: машинное обучение, фасилитация

Введение

Очередной раз работая с компанией, делающей проект, связанный с машинным обучением (ML), я обратил внимание, что менеджеры используют термины из области ML, не понимая их сути. Хотя слова произносятся грамматически правильно и в нужных местах предложений, однако их смысл им не более ясен, чем назначение сепулек, которые, как известно, применяются в сепулькариях для сепуления. В тоже время тимлидам и простым разрабам кажется, что они говорят с менеджментом на одном языке, что и приводит к конфликтным ситуациям, так осложняющим работу над проектом. Итак, данная статья посвящена приемам фасилитации (с латинского: упрощение или облегчение) общения разработчиков с менеджментом или тому, как просто и доходчиво объяснить базовые термины ML, приведя тем самым ваш проект к успеху. Если вам близка эта тема — добро пожаловать под кат.

Эстету на заметку: Сепульки, сепулькарий и сепуление — термины, примененные гениальным Станиславом Лемом в 14 путешествии Йона Тихого.

Начало проекта

Проект ML должен начаться с легитимации метрики валидизации. Звучит устрашающе, не правда ли? Давайте начнем объяснения. Легитимация (по-русски с латинского это узаконивание) — это просто приход к согласию сторон, зафиксированный письменно и завизированный — желательно, конечно, тоже письменно. Стороны — это как донор, так и менеджмент проекта, а также его исполнители.

Теперь перейдем к валидизации. Программист ML обычно имеет опыт написания кода валидизации и при трассировке видит возвращаемые ему true и false. Но как объяснить это понятие менеджеру, не имеющему дела с кодом? Давайте воспользуемся вот таким простым жизненным примером.

Представьте, что вы проходите мимо рынка и видите: продают персики. Продавец говорит вам: «Бэри! Хароший пэрсик, свэжий, сочный такой, нэ пожалэеш». Однако вы приглядываетесь и видите: в одном месте он испорчен. Вы говорите: «ну где же он хороший? вот — подгнивший». Продавец предлагает за полцены. Если вы думаете: «Испорченное можно и вырезать, это всего четверть, вроде и выгодно» — и покупаете его, то на языке ML происходит валидизация и персик (на сленге ML — sample) признается валидным. В случае же, если вы думаете, что можно в другом месте найти и лучший вместо порченного, то происходит инвалидизация, а персик признается вами не валидным.

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

Эстету на заметку: Неожиданно Журден с удивлением узнает, что всю жизнь выражался прозой (с). Мольер, Мещанин во дворянстве.

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

  • он достаточно дешевый (цена < порогового значения)
  • он достаточно спелый (спелость > порогового значения), но не переспелый (спелость ниже 2-го порогового значения)
  • он нормального размера, то есть его величина находится в категории «нормальный» (все категории: слишком маленький, маленький, нормальный, большой, огромный)
  • он не достаточно порченый (площадь подгнивших и порченных областей меньше порогового значения)

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

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

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

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

Таинство вычисления accuracy

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

Сначала нам нужно объяснить, что такое валидизированная выборка. В нашем примере — это когда мы купили не один персик, а тонну. Мы садимся сами или нанимаем работников и они перебирают персики в 2 контейнера. На контейнерах надписи: Х (хороший) и П (плохой). Работа, выполненная по переборке персиков, и есть создание валидизированной выборки.

Как объяснить, зачем нужна валидизированная выборка? Представьте, что у вас есть младшая сестра и вы хотите научить ее выбирать персики. Вы берете ее на рынок и говорите: «Учись, смотри, как делаю я». Когда вам кажется, что она уже научилась, вы хотите проверить ее умения. Как это сделать? Вы создаете контрольную выборку, т.е. берете из контейнеров, например, по 100 уже перебранных персиков из каждого контейнера и незаметно наклеиваете на них тайные наклейки, чтобы знать самому из какого контейнера они были взяты, но сестре это было бы неизвестно, и предлагаете ей самостоятельно разложить их в новые пустые контейнеры. Процент совпадений выборов вашей сестры с тайными наклейками и есть показатель accuracy. Другими словами, accuracy — это объективное значение того, насколько вашей сестре можно доверить выбор персиков вместо вас. 100% означает, что она — ваша вылитая копия и все делает ровно, как и вы. 0% — что ее мнение прямо противоположно вашему.

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

А теперь разберем 4 показателя эффективности ML, в которых бывает путаются. Это true-positive (TP), false-positive (FP), true-negative (TN) и false-negative(FN). Первая половина слова означает совпадение (true) или несовпадение (false) мнения вашей сестры с тайной наклейкой на персике. Вторая половина просто означает контейнер, в который ваша сестра бросила персик (X-хороший — positive, П-плохой — negative). А два слова вместе — это просто число персиков в такой категории.

Кроме accuracy еще используют 3 вспомогательных показателя, это precision (точность), recall (чувствительность) и f1_score.

Precisions показывает % совпадений с вашим мнением персиков, брошенных в контейнер Х (хороший). 100% означает, что все персики, признанные вами годными, признаны таковыми и вашей сестрой. Меньшее значение означает, что в контейнер Х попались и те, что признаны вами негодными. Показатель важен тогда, когда для бизнеса критично, чтобы негодные персики не попадали в годные, но вот если годный будет признан ошибочно негодным — то ничего страшного.

Recall показывает соотношение между правильно отобранными годными персиками (TP) и всем персиками где мнение сестры и ваше совпадает (TP+FN). Если значение близко к 50%, то это значит, ваша сестра в равной степени правильно принимает решения в отношении и хороших и плохих персиков.

F1 score — это синтетический показатель объединяющий пользу от precisions и recall. Его самое хорошее значение вблизи 70%.

Эстету на заметку: Этот показатель является средним гармоническим между precisions и recall и считается по формуле:

f1_score = 2*(recall*precision) / (recall + precision)

Зачастую возникает вопрос: зачем менеджеру проекта ML так глубоко знать и понимать все эти показатели. Ответ: это важно для бизнеса. Как менеджеру молочной фермы нужно знать, что такое удои и по какой формуле они считаются, как менеджеру фермерского хозяйства нужно знать, что такое урожайность и как она вычисляется. Да, менеджер может не вникать, как именно доятся коровы, как они телятся и как их лечить, но понимать главные бизнес-показатели проекта — это залог успешности бизнеса.

Итоги

Все мы, участники проектов ML, делаем хорошее и нужное дело. Кто из нас, будучи студентом, не мечтал, перебирая картофель, помидоры и капусту в колхозе, чтобы за него это делали роботы, а не человек (с). Мы делаем сказку былью и пусть наши проекты будут успешными. Я буду рад, если эта статья поможет внести небольшой вклад в успешное начинание проектов ML.

Если эта статья покажется вам полезной, пишите в комментариях и я сделаю 2-ю статью о том, как объяснить менеджменту аддитивность и генерализацию, эти столпы правильного, годного проекта ML.

Автор: Сергей Зобин

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js