Впечатляющие результаты ряда исследований, проведённые в последние годы, привлекли внимание мирового сообщества к теме машинного обучения. Со времён «зимы искусственного интеллекта» мы ещё никогда не были так воодушевлены возможностями этой технологии. Но несмотря на всплеск интереса, ряд ученых считают, что многие из нас уделяют слишком много внимания не тем исследованиям. За всей этой шумихой практически незаметной осталась небольшая группа исследователей, которые втихую закладывают фундамент для дальнейшего использования машинного обучения, которое позволит решить многие проблемы человечества.
Сегодняшний всплеск энтузиазма относительно ИИ начался с успехов в решении задачи по классификации изображений с помощью глубинных свёрточных нейронных сетей. Обычно в этой сфере прогресс исчисляется единицами процентов, а этот коллектив исследователей полностью разрушил данную традицию. Вышеупомянутая работа дала импульс другим исследованиям, и в результате обозначился существенный прогресс по целому ряду прикладных направлений, включая распознавание речи и лиц. Мировое сообщество разработчиков машинного обучения быстро подхватило этот новый набор подходов, а потом стало им просто одержимо.
По мере того, как машинным обучением начали заниматься всё новые и новые крупные компании, включая Google и Facebook, широкой общественности стали всё чаще рассказывать о вполне понятных — и чрезвычайно впечатляющих — достижениях. AlphaGo выиграла историческое сражение с чемпионами мира по игре Го. IBM Watson победил в викторине Jeopardy. Менее громкие достижения, вроде Neural Style Transfer и Deep Dream стали источниками визуальных мемов, которые быстро разошлись по соцсетям.
Все эти успехи подбрасывали дрова в топку спекуляций и неослабевающего внимания со стороны прессы. Это привлекло внимание руководителей, специалистов, работающих на переднем крае технологий, и разработчиков архитектур в самых разных сегментах бизнеса. Венчурные инвесторы начали вкладываться в связанные с ИИ инициативы. Множество стартапов мечтают обрести конкурентные преимущества за счёт создания для мобильных и веб-приложений интерфейсов, способных вести с пользователем диалог. Ещё столько же стартапов хотят улучшить с помощью ИИ продукцию для интернета вещей. Искусственный интеллект даже пытаются привлечь к решению задач в сфере маркетинга.
Но несмотря на все текущие достижения, ИИ-системы пока и близко не способны самостоятельно решить ни одну из основных проблем человечества. Пока что это лишь довольно мощный инструмент, который может привести к созданию небывалых технологий только при одном условии — если мы научимся использовать ИИ для удовлетворения наших потребностей.
Что мешает использовать ИИ в повседневной работе десятков и сотен тысяч компаний по всему миру? Вовсе не нехватка новых алгоритмов обучения. Не нехватка программистов, глубоко разбирающихся в стохастических градиентных спусках и обратом распространении. И даже не в нехватке доступных программных библиотек. Для широкого распространения ИИ нам нужно понимать, как создавать интерфейсы, которые способны вложить мощь этой технологии в руки пользователей. Необходимо разработать новую дисциплину гибридного проектирования, позволяющую чётко осознавать возможности ИИ-систем по взаимодействию и пониманию людей. Чтобы понимать, как люди могут правильно или ошибочно использовать эти возможности, как они могут ими злоупотреблять.
Давайте вспомним историю. В 1978-м вышла программа VisiCalc. Она стала результатом использования возможностей программирования для решения рабочих потребностей обычных людей. Так на свет появилась первая в мире «электронная таблица».
«Я подумал, вот бы у меня была доска, на которой можно было бы писать и стирать числа, а она бы всё сама пересчитывала» — Дэн Бриклин (Dan Bricklin), автор VisiCalc.
За шумихой вокруг успехов в сфере глубинного обучения тихо образовалось целое исследовательское направление, посвящённое решению проблемы проектирования взаимодействия человека с системами машинного обучения. Это небольшое, но очень впечатляющее направление получило название «интерактивного машинного обучения» (Interactive Machine Learning). Оно лежит на пересечении таких направлений, как исследования в сфере пользовательского опыта взаимодействия и машинного обучения. Сегодня множество людей ломают голову над тем, как внедрить ИИ в свой бизнес, или в рабочий инструментарий, или в программный продукт, или в методику разработки. Пожалуй, сегодня это наиболее актуальная тема в сфере ИИ.
Рекуррентные нейронные сети превзошли свёрточные нейронные сети. Затем на коне оказались сети глубокого обучения с подкреплением (Deep Reinforcement Learning). Вскоре они уступят пьедестал другой технологии. В сфере ИИ всё меняется очень быстро, и всё новые алгоритмы вырывают друг у друга переходящее звание «самый быстрый» в той или иной задаче. Но при этом неименными останутся принципы проектирования, позволяющих людям использовать обучаемые системы для решения своих проблем.
Созданию этих принципов как раз посвящено интерактивное машинное обучение. И вы должны в совершенстве овладеть ими, если занимаетесь проектированием, управлением или программированием ИИ для решения прикладных задач.
Для начала посмотрим, что уже сделано в этом направлении. Большая часть того, о чём будет говориться ниже, почерпнуто из работы Брэда Нокса (Brad Knox) «Власть народу: роль людей в интерактивном машинном обучении», написанной в соавторстве с несколькими исследователями.
Примечание: в отличие от большинства работ по машинному обучению, публикации в сфере ИМО отличаются более дружелюбным для неспециалистов изложением. Рекомендую почитать оригиналы ряда работ.
Активное обучение как способ получить максимум помощи от людей
Основная задача большинства систем машинного обучения — обобщить информацию из выборок данных, созданных людьми. Процесс начинается с того, что люди собирают массивы маркированных данных: к картинкам прилагаются описания изображённых объектов, к портретам — имена людей, к голосовым записям — текстовые транскрипции, и так далее. Затем начинается обучение. Алгоритм обрабатывает скормленные ему данные. В конце обучения алгоритм создаёт классификатор, по сути — маленькую отдельную программу, дающую правильные ответы на новые вводимые данные, не являющиеся частью обучающей выборки. Именно классификаторы нужно интегрировать в реальные проекты, когда вам нужно определить возраст пользователя по фотографии, или распознать лица, или транскрибировать речь, когда человек говорит по телефону. В этой схеме человеческий труд по маркированию обучающей выборки является наиболее дефицитным ресурсом.
Многие впечатляющие результаты в сфере глубокого обучения были достигнуты в областях, где доступны гигантские объёмы маркированных данных, выложенных миллиардами пользователей социальных сетей или собранных в интернете. Но если вы не Facebook или Google, то вам будет не так просто найти маркированные данные, подходящие для решения вашей проблемы. Особенно если вы работаете в какой-то новой сфере, со своим жаргоном, поведением или источниками информации. Следовательно, придётся собирать данные со своих пользователей. А это влечёт за собой создание интерфейса, который будет им наглядно демонстрировать примеры текста, или изображений, или других данных, которые вы хотите классифицировать и корректно описать.
Человеческий труд, особенно пользовательский — вещь дефицитная. Так вот, вам нужно попросить пользователей маркировать данные, что поможет максимально улучшить работу вашей системы. Активное обучение (Active Learning) — это направление в машинном обучении, изучающее описанную проблему: как найти образцы данных, маркирование которых людьми поможет максимально улучшить систему. Исследователи уже выработали ряд алгоритмических подходов. Сюда входят методики:
• поиска образцов, которые система понимает хуже всего
• определение образцов, маркирование которых даст наибольший эффект с точки зрения распознавания системой
• выбор образцов, для которых система прогнозирует наибольший уровень ошибок, и так далее
Вот ссылка на статью, которая может стать отличным введением в проблематику.
Вот конкретный пример: система распознавания жестов, построенная с использованием принципов активного обучения, когда пользователя просят маркировать жесты, для которых система не может дать ясного предсказания. Подробности тут и здесь.
Не забирайте у пользователей бразды правления
Исследователи активного обучения демонстрируют успехи в создании более точных классификаторов с помощью меньшего количества маркированных данных. Но с точки зрения проектирования взаимодействия активное обучение имеет очевидный недостаток: это ставит систему обучения в зависимость от самого взаимодействия, а не от пользователя. Человека, выполняющего маркировку образцов, исследователи в сфере активного обучения называют «оракулом». Однако их коллеги из сферы интерактивного машинного обучения доказали, что людям не нравится такой подход.
Людям не нравится, когда робот говорит им, что делать. Им гораздо приятнее взаимодействовать, и если именно от них зависит взаимодействие с машиной, то они готовы тратить не её обучение больше времени.
В исследовании 2010 года «Проектирование взаимодействия для активного обучения роботов» исследовалось восприятие пользователями пассивных и активных подходов к обучению роботов распознаванию форм. В одном из вариантов инициатива была отдана машине. Робот сам выбирал, какой следующий объект нужно маркировать человеку. Он указывал на него и ждал ответ пользователя. В другом варианте человек сам выбирал, что ему показать роботу.
Когда инициатива была у робота, люди описывали его поток вопросов как «несбалансированный и раздражающий». Пользователи также отмечали, что им было труднее определить степень обученности робота, что снижало их эффективность как учителей.
Аналогичные ощущения описаны испытуемыми в другом исследовании, где роль робота исполняла программа: выполнялось активное обучение системы кинорейтинга Netflix.
Выбирайте алгоритмы по их способности объяснить результаты классификации
Допустим, у вас есть какие-то проблемы со здоровьем, требующие диагностирования. Вы можете выбрать для этого одну из двух ИИ-систем. Первая имеет точность 90% и более доступна. Она берёт ваши медицинские данные и ставит диагноз. Вы не сможете задать вопросы или узнать, как она пришла к такому выводу. Вы просто получите описание своего состояния на латыни и ссылку на Википедию.
Вторая система имеет точность 85%. Она тоже берёт ваши данные и ставит диагноз. Но при этом поясняет, как она пришла к такому решению. Ваше кровяное давление выше нормы, в вашем возрасте повышаются определённые риски, в истории вашей семьи отмечено три из пяти ключевых факторов, и так далее. Какую из двух систем вы выберете?
В маркетинге существует клише: «половина рекламного бюджета тратится впустую, но никто не знает, какая именно половина». В сфере машинного обучения есть похожее клише: «легко создать систему, которая права в течение 80% времени, трудно вычислить, какие именно 80%». Пользователи больше доверяют обучающимся системам, когда понимают, как те приходят к своим решениям. Пользователи способны лучше корректировать и улучшать эти системы, если видят внутреннюю кухню их работы.
Так что если мы хотим создавать системы, которым пользователи доверяют и которые мы можем быстро улучшать, нам нужно выбирать алгоритмы не по частоте правильных ответов, а по способности объяснить свой «ход мыслей».
С этой точки зрения некоторые алгоритмы машинного обучения предоставляют несколько больше возможностей, чем другие. Например, нейронные сети, которые сегодня бьют рекорды по точности в целом ряде задач, почти не способны на подобные объяснения. По сути, это просто чёрные ящики, выдающие ответы. С другой стороны, алгоритмы «деревья принятия случайных решений» (Random Decision Forests) обладают прекрасными возможностями по обоснованию классификации и построению интерактивного управления обучающихся систем. Вы можете вычислить, какие переменные были важнее, насколько система была уверена в каждом прогнозе, какова степень схожести двух образцов, и так далее.
Вы же не выбираете базу данных, или веб-сервер, или JavaScript-фреймворк просто на основании тестов производительности. Вы изучите API и оцените, насколько он поддерживает интерфейс, который вы хотите предоставить своим пользователям. Так и разработчикам систем машинного обучения нужен доступ к внутренним состояниям классификаторов, чтобы создавать более функциональные, более интерактивные пользовательские интерфейсы.
Помимо самого проектирования таких систем, нам нужно давать пользователям возможность самим улучшать получаемые результаты, управлять ими. Тодд Кулежа (Todd Kulesza) из Microsoft Research проделал большую работу над решением этой проблемы, которую он назвал «отладкой с объяснениями» (Explanatory Debugging). Тодд создал системы машинного обучения, которые могли объяснить, почему они классифицировали данные именно так. Затем эти объяснения используются в качестве интерфейса, посредством которого пользователи дают обратный отклик ради улучшения и, что ещё важнее, персонализации результата. Отличный пример этой идеи описывается в работе Тодда «Отладка наивной байесовской классификации текста конечными пользователями».
Дайте пользователям возможность создавать собственные классификаторы
Согласно общепринятой практике, инженеры создают классификаторы, системные архитекторы интегрируют их в интерфейсы, а пользователи затем взаимодействуют с тем, что получилось. Недостатком этого подхода является то, что он отделяет практику машинного обучения от знаний по проблематике и возможности оценивать результаты работы системы. Инженеры и специалисты по обработке данных могут разобраться в алгоритмах и статистических тестах, используемых для оценки результатов, но они могут полностью охватить все входные данные, и не замечают проблем в результатах, которые очевидны для пользователей.
В лучшем случае такой подход обеспечивает очень медленное циклическое улучшение результатов. С каждой итерацией инженеры обращаются к пользователям, медленно изучают проблему и вносят инкрементальные улучшения. На практике этот громоздкий цикл приводит к тому, что системы машинного обучения попадают в эксплуатацию с очевидными для конечных пользователей недостатками. Либо создание таких систем для решения многих реальных задач обходится слишком дорого.
Чтобы избежать подобной ситуации, нужно дать пользователям возможность непосредственно создавать классификаторы. Для этого нам нужно проектировать интерфейсы, позволяющие маркировать образцы, выбирать свойства и выполнять все прочие операции, необходимые для согласования мысленных представлений пользователей с рабочим процессом. Когда мы поймём, как это сделать, мы добьёмся невероятных результатов.
Один из самых впечатляющих экспериментов в сфере интерактивного машинного обучения был связан с приглашениями в группы на Facebook: «ReGroup: интерактивное машинное обучение для создания групп по требованию».
Сейчас приглашение на событие в Facebook осуществляется так: вы создаёте новое событие, а затем приглашаете друзей. Система предлагает алфавитный список сотен ваших френдов с флажком напротив каждого имени. Вы в отчаянии смотрите на эту простыню, а затем кликаете «пригласить всех». В результате все ваши друзья получают приглашения на события, куда они не смогут попасть, потому что живут в других городах.
В эксперименте было предложено коренным образом улучшить систему приглашений. Сначала пользователям предлагался тот же список имён с флажками. Но когда человек ставил флажок напротив какого-то имени, оно помечалось как положительно маркированный образец. А все пропущенные имена — как негативно маркированные. Полученные данные использовались для обучения классификатора, использующего в качестве дополнительных свойств данные из профилей и социальные связи. Затем система вычисляла для каждого контакта вероятность того, что его пригласят на событие, и отсортировывала список, помещая наверх контакты с наибольшей вероятностью. Для оценки использовались такие критерии, как где человек живёт, каковы его социальные связи, как давно вы с ним в друзьях и так далее. И результаты работы классификатора быстро стали действительно полезны для пользователей соцсети. Невероятно изящное сочетание текущих шаблонов взаимодействия пользователей с системой и данных, необходимых для обучения классификатора.
Другой замечательный пример — CueFlik. Его цель: улучшить веб-поиск изображений, дав пользователям возможность создавать правила автоматического группирования фотографий по их визуальным свойствам. Например, пользователь ищет по запросу «стерео», а затем выбирает «фотографии продукции» (просто изображения на белом фоне). CueFlik берёт примеры и обучает классификатор, чтобы тот мог отличить фотографии продукции от обычных фотографий, которые пользователь потом может включить в другие поисковые запросы, например, по словам «машины» или «телефоны».
Заключение
Думая о будущем искусственного интеллекта, легко скатиться в шаблонные представления из фантастических фильмов и книг, вроде «Терминатора», «Одиссеи 2001 года» или «Она». Но все эти фантазии гораздо больше отражают наше беспокойство относительно технологий, пола и человеческой природы, чем реалии создания современных систем машинного обучения.
Вместо того, чтобы рассматривать недавние революционные достижения в сфере глубокого обучения как постепенные шаги в направлении пугающих научно-фантастических сценариев, лучше думать о них как о новых мощных движках для тысяч проектов вроде ReGroup и CueFlik. Проектов, дающих нам беспрецедентные возможности в познании и управлении нашим миром. Машинное обучение может изменить к лучшему всю нашу жизнь, начиная с походов в магазин и вплоть до постановки диагнозов и способов взаимодействия с другими людьми. Но для этого нам нужно не просто научить машины учиться, но и поставить результаты обучения на службу людям.
Комментарии (0)