Вот драконы

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

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

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

Ускоренный курс по матрице путаницы

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

Вот пример:

Как правило, горизонтальная ось - это то, что происходит на самом деле, а вертикальная - это то, что ожидается в идеальном мире. Рассматриваются четыре квадранта:

  • Истинно положительный - система считает, что это должно быть правдой, и это правда
  • Истинно отрицательный - система считает, что это должно быть ложно, и это ложно
  • Ложное срабатывание (также известное как «ложная тревога» или ошибка типа I для тех, кто склонен к статистике) - система считает, что это должно быть правдой, а это ложно.
  • Ложноотрицательный (он же «промах» или ошибка типа II) - система считает, что это должно быть ложно, и это правда.

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

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

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

Бывают случаи, когда у вас может быть много классификаций. В случае ImageNet существует множество возможных классификаций. Что касается собак, то только существуют классификации для 120 пород собак.

Матрицы путаницы касаются результатов ...

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

Вам нужно знать, каков желаемый результат, когда машина делает то, что должна, а когда она ничего не делает.

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

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

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

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

… И как приложения будут ошибаться

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

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

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

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

Премортем как вдохновение

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

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

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

Метод сопоставления путаницы

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

Главное в этом упражнении - пока не беспокоиться о частоте случаев. Вы сосредоточены на том, чтобы собрать как можно больше проблем.

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

  1. Нарисуйте сетку, где «положительное» означает функциональность, которую вы хотите реализовать, а «отрицательное» - это функциональность, которая не выполняется.
  2. Для каждого из четырех секторов, где можно лично придумывать идеи на посту, отмечается, какое влияние будет иметь на людей или другие системы, если это произойдет. Выделите 3 минуты на обдумывание каждого квадранта и сразу же поделитесь им после этапа генерации каждого квадранта ...
  3. Вместе вы помещаете на доску каждый индивидуально продуманный элемент, получаете разъяснения, если они непонятны, и дедуплицируете общие элементы. Старайтесь избегать слишком долгих дискуссий на этом этапе. Уделите на это около 2 минут на квадрант.
  4. Теперь голосуйте точками за самые важные пункты в истинно положительном и истинно отрицательном квадрантах. Сгруппируйте их в одну сторону в порядке от большего к меньшему количеству голосов.
  5. Далее проголосуйте по точкам за худшие элементы в квадрантах ложноположительных и ложноотрицательных результатов. Stack расположите их в сторону от действительно плохих к менее плохим голосам.

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

Быть менее запутанным

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

Теперь, когда у вас есть общее понимание в команде, нужно учесть несколько вещей:

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

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