Искусственный интеллект пополнил набор громких модных словечек нашего времени. Главный специалист по обработке данных в компании Dun and Bradstreet объясняет смысл ИИ в понятных, близких бизнесу терминах.
Искусственный интеллект, машинное обучение, когнитивные вычисления, глубокое обучение и тому подобные термины стали взаимозаменяемыми жаргонизмами при обсуждении ИИ. В это трудно поверить, но размах маркетинговой шумихи вокруг ИИ превысил даже уровень внимания к цифровой трансформации.
Стремясь пробиться через толщу пиара и прочей ерунды, я попросил главного специалиста по обработке данных в компании Dun and Bradstreet объяснить смысл ИИ в недвусмысленных терминах, понятных бизнесу. Задание это непростое, поэтому я и выбрал Энтони Скриффиньяно, одного из наиболее блестящих и выдающихся специалистов по анализу данных из всех, кого я знаю. Он прекрасно умеет доходчиво объяснять — именно поэтому лучше всех и сможет растолковать суть ИИ.
В чем смысл искусственного интеллекта?
Уж в чем наша отрасль неплохо преуспела, так это в придумывании для людей двусмысленных терминов, истолковывать которые можно по-разному в зависимости от ситуации. И этот термин, несомненно, один из них. Это пример некой концепции, которую вы вроде бы понимаете, но если попытаться сформулировать ее смысл, ученые мужи начнут спорить, какое определение самое точное. И все же по совокупности искусственный интеллект — это набор технологий, с которыми мы реально сталкиваемся. Вам может попасться термин «ИИ». Вы можете услышать «машинное обучение», «глубокое обучение» или даже «глубокое доверие». Также вы можете натолкнуться на словосочетания «нейроморфные вычисления» или «нейронные сети», «обработка естественного языка», «алгоритм логического вывода», «рекомендательные системы». Все это классифицируется как искусственный интеллект.
Также вам, возможно, доведется иметь дело с автономными системами — ботами. Порой нам приходится слышать о них... Но вот Siri, наверное, — самый наглядный пример из того, с чем сталкивается каждый (или любая другая подобная система — я даже не буду пытаться перечислить все, потому что наверняка что-то забуду): речь идет о цифровых помощниках, пытающихся в некотором смысле имитировать поведение человека. Когда вы заходите на сайт, а там говорится «Кликните, чтобы поговорить с Шелли» или «Кликните, чтобы поговорить с Дагом», вы же не разговариваете с человеком — вы разговариваете с ботом. Это и есть примеры ИИ.
Это представление в общих чертах. Если же подойти к проблеме с точки зрения программиста, он вам скажет, что все это системные процессы, спроектированные для выполнения ряда задач. Среди таких задач может быть имитация человеческого поведения. Другой задачей может быть уже имитация человеческого мышления. Третьей задачей будет «интеллектуальное поведение». Еще одной — «рациональное поведение», и здесь уже начинаются ожесточенные споры. А дальше может быть еще «этическое поведение», и споры вокруг него еще более активные. Я привел в пример только несколько категорий, в которые попадают эти системы и процессы.
А еще существуют методы классификации самих алгоритмов. Есть детерминистские методы, есть недетерминистские, а есть методы, основанные на правилах. Так что воспринимать это можно разными способами: можно снизу вверх, по факту окончания, а можно оценивать то, что вы увидели, пощупали и прочувствовали.
Какая связь между терминами вроде «машинное обучение», «ИИ» и «когнитивные вычисления»?
Это не синонимы. Когнитивные вычисления сильно отличаются от машинного обучения, и я бы назвал оба понятия подвидами ИИ. Это просто чтобы как-то описать эти три термина. Я бы сказал, что искусственный интеллект включает в себя все то, что я только что описал. Это набор средств, разработанных для имитации поведения, имитации мышления, интеллектуального поведения, рационального поведения, эмпатического поведения. Все эти системы и процессы и смешаны в том винегрете, который мы называем искусственным интеллектом.
Когнитивные вычисления — это термин, употребляемый в основном компанией IBM. Это весьма примечательный подход к просеиванию огромных объемов информации, которую можно переработать в так называемый когнитивный стек. А затем создать связи внутри всего этого переработанного материала, чтобы пользователь мог обнаружить конкретную проблему, или чтобы можно было разобраться с каким-либо вопросом, о котором никто раньше даже не догадывался.
Машинное обучение представляет собой практически противоположное понятие. Если у вас есть целевая функция, это значит, что вы пытаетесь выделить в данных нечто совершенно определенное. И процесс машинного обучения анализирует массу разрозненных данных и пытается создать приближение к целевой функции — фактически он пытается найти то, что вы ему сказали искать. Обычно это делается либо путем обучения системы, либо путем наблюдения за ее работой и параллельного регулирования с помощью своеобразных кнопок и переключателей. Так что здесь речь идет об одновременно контролируемом и неконтролируемом обучении. И это очень и очень сильно отличается от когнитивных вычислений.
Скажем, модель — это метод для оценки набора исторических данных или уже собранных данных с целью описать их математическим способом. И у нас есть регрессионные техники, с помощью которых мы непрерывно уточняем эту модель, пока она не начнет работать с заданной эффективностью. Она предсказывает тот результат, на ретроспективное предсказание которого мы ее настроили. А затем, исходя из предположения, что мы можем экстраполировать этот результат на будущее, основываясь на нынешних временных рамках (а это очень смелое предположение), мы можем применить эту модель для попытки математически спрогнозировать то, что случится в перспективе.
Самым наглядным примером этого принципа на сегодня являются выборы, не так ли? Мы смотрим на данные опросов. Мы учитываем фазу Луны. Мы берем во внимание размер обуви. Мы берем все, что кажется нам целесообразным, и говорим: «То-то и то-то произойдет в будущем». Но дальше может произойти что-то, чего, возможно, модель не смогла предсказать.
Теперь перейдем к ИИ. Некоторые системы (не все) работают приблизительно на такой логике: «Покажи мне что-то, что похоже на то, что ты ищешь, и я найду массу других вещей, которые выглядят в точности также. Но ты должен меня обучить. Дай мне страницу на сайте и расскажи мне, что тебя на ней интересует. И я найду кучу других веб-сайтов, которые содержат похожий материал. Дай мне набор сигналов, которые ты считаешь опасными, и когда я в будущем замечу эти сигналы, я сообщу о том, что происходит что-то опасное». Это то, что мы называем «обучением».
Почему обучение моделей настолько сложное?
Представьте, что я обучаю машину, используя группу людей... и здесь золотое правило состоит в том, что они должны быть в равной степени заинтересованы и ознакомлены с процессом, так что, скажем, я не могу взять пять программистов и четырех вчерашних студентов... Нужно стараться подбирать людей либо совершенно в случайном порядке, либо по одинаковым интересам. Есть два способа сделать это. Вы показываете им много, очень много картинок. Вы показываете им изображения гор вперемежку с фотографиями верблюдов, а также изображения предметов, которые практически в точности похожи на горы, например, мороженое в вафельном стаканчике. И вы просите их сказать, что из этих предметов можно назвать горой. При этом машина наблюдает за людьми и на основании их поведения в процессе выбора изображений с горами она также начинает выбирать горы. Такой подход называется эвристическим.
Мы смотрим на людей, моделируем их поведение путем наблюдения, а затем пытаемся повторить то, что они делают. Это вид обучения. Такое эвристическое моделирование представляет собой один из способов машинного обучения, однако это не единственный способ.
Но существует множество простых приемов, с помощью которых эту систему можно обмануть. Прекрасный пример — распознавание человеческих лиц. Посмотрите на лица разных людей. Наверное, всем известно, что существуют технологии для моделирования на основе определенных точек на лице, скажем, уголков глаз. Не хочу вдаваться в интеллектуальные секреты, но есть некоторые области, между которыми можно построить углы, и эти углы обычно не особо меняются со временем. Но вот вам показывают фотоснимки людей с широко открытыми глазами или гримасами в области рта. Такие люди пытаются сбить эти алгоритмы с толку, искажая черты своего лица. Вот почему вам нельзя улыбаться на фотографии в паспорте. Но машинное обучение уже ушло далеко вперед. У нас есть такие средства, как Eigenface, и другие технологии для моделирования поворота и искажения лиц, позволяющие определить, что это одно и то же лицо.
Со временем эти инструменты становятся все лучше. И порой, когда люди пытаются запутать процесс обучения, мы также учимся на их поведении. Так что этот процесс саморазвивающийся, и в этом плане идет постоянный прогресс. Рано или поздно цель будет достигнута, и да, машина будет находить только горы. Она не пропустит ни одной горы и никогда не будет сбита с толку стаканчиком мороженого.
Чем это отличается от классического программирования?
Изначально этот процесс происходил в игровой форме или заключался в идентификации изображений. Тогдашние исследователи просили участников играть в игры или помогать в обучении простыми утверждениями вроде «Это гора», «Это не гора», «Это гора Фудзи», «Это гора Килиманджаро». Так что у них накопился набор слов. У них была группа людей, использовавших слова для описания изображений (например, в проекте Amazon Mechanical Turk).
Используя эти методики, они фактически отобрали набор слов и сказали: «Итак, слово „гора“ часто ассоциируется с тем-то и тем-то, и между словом „гора“ и этим изображением наблюдается высокая статистическая корреляция. Так что если люди ищут информацию о горах, покажите им это изображение. Если они ищут гору Фудзи, покажите им это изображение, а не то». В этом и состоял прием совместного использования человеческого мозга и описательных слов. Сегодня этот прием не единственный. На данный момент существует множество более изощренных методик.