Когда приложение уверяет вас, что работает на «искусственном интеллекте», на минутку кажется, что вы в будущем. Но что это на самом деле означает? Мы разбрасываемся громкими словечками — искусственный интеллект, машинное обучение, нейронные сети — но что они на самом деле означают и действительно ли помогают улучшать приложения?
Совсем недавно Google и Microsoft добавили обучение нейронных сетей в свои приложения перевода. Google утверждает, что использует машинное обучение, предлагая списки воспроизведения. Todoist говорит, что использует ИИ, чтобы предположить, когда вы должны закончить задачу. Any.do заявляет, что ее искусственный интеллект может делать некоторые задачи вместо вас. И все это было только на прошлой неделе. Часть маркетинговых уловок звучит впечатляюще и остается уловками, но иногда изменения, бесспорно, полезны. «Искусственный интеллект», «машинное обучение» и «нейронные сети» — все это описывает способы, которые используют компьютеры, чтобы выполнять более серьезные задачи и обучаться в процессе этого. И хотя вы, возможно, слышали, что разработчики приложений берут на вооружение системы других, на практике они очень отличаются.
Нейронные сети анализируют сложные данные, имитируя человеческий мозг
Искусственные нейронные сети (ИНС, или просто «нейронные сети») относятся к определенному типу модели обучения, которая эмулирует принцип работы синапсов в вашем мозге. Традиционные вычисления используют ряд логических операторов для выполнения задачи. Нейронные сети, с другой стороны, используют сеть узлов (которые действуют как нейроны) и аналогов синапсов (edge) для обработки данных. Входные данные проходят через систему и генерируются выходные данные.
Затем выводы сравниваются с известными данными. Например, скажем, вы хотите обучить компьютер распознавать изображение собаки. Вы пропускаете миллионы изображений собак через сеть, чтобы увидеть, какие изображения она решит принять похожими на собак. Затем человек подтверждает, какие изображения на самом деле являются собаками. Система отдает предпочтение пути в нейронной сети, который привел к правильному ответу. Со временем и спустя миллионы итераций, эта сеть в конечном итоге повысит точность своих результатов.
Чтобы увидеть, как это работает в действии, вы можете попробовать эксперимент Google Quick Draw!. В данном случае Google обучает сеть узнавать «дудлы», быстрые наброски. Она сравнивает рисунок, который вы рисуете с примерами, которые рисуют другие люди. Сеть обучается распознавать будущие дудлы на основании тех, что она видела в прошлом. Даже если вы рисуете как пятилетний ребенок (вроде меня), сеть весьма быстро распознает простые формы — подлодки, растения, уток. Попробуйте, весело.
Нейронные сети не панацея, но они прекрасно справляются со сложными данными. Google и Microsoft используют нейронные сети, чтобы обучать свои приложения перевода, поскольку перевод языков — это сложно. Мы часто видели плохие машинные переводы, но нейронные сети обучаются улучшать эти переводы, исходя из правильных переводов, с течением времени. То же самое происходит с переводом речи в текст. После того как была представлена нейронная сеть, работающая с Google Voice, ошибки в переводах снизились на 49%. Эти системы не идеальны, но они работают над собой, и это главное.
Машинное обучение учит компьютеры улучшаться на практике
Машинное обучение — это широкий термин, который охватывает все моменты, когда вы пытаетесь научить машину улучшаться самостоятельно. В частности, это относится к любой системе, в которой производительность компьютера при выполнении задачи становится лучше только за счет большего опыта выполнения этой задачи. Нейронные сети являются примером машинного обучения, но они не являются единственным способом обучения компьютера.
Например, один из альтернативных методов машинного обучения называется обучение с подкреплением. В этом методе компьютер выполняет задачу и затем оценивает ее результат. Если, например, компьютер побеждает в шахматы, то он присваивает выигрышное значение серии ходов, которые использует во время игры. Сыграв миллионы игр, система может определить, какие шаги, скорее всего, приведут к победе, основываясь на результатах предыдущих игр.
В то время как нейронные сети хороши для таких вещей, как распознавание образов на изображениях, другие типы машинного обучения могут быть более полезными для различных задач вроде определения вашей любимой музыки. Google утверждает, что его музыкальное приложение найдет вам музыку, которую вы захотите послушать. Он делает это за счет анализа ваших предыдущих списков проигрывания. Если вам не понравится результат, машина расценит его как неудачу. Но если вы выберете один из предложенных списков, она пометит это как успех и проанализирует победоносные ходы, которые привели ее к вашему сердцу.
В подобных случаях вы не получите полную выгоду от машинного обучения, если не будете часто использовать эту функцию. Когда вы откроете музыкальное приложение Google впервые, рекомендации будут, скорее всего, мимо кассы. Но чем больше вы будете его использовать, тем лучше будут предложения. В теории, по крайней мере. Машинное обучение тоже не панацея. Машинное обучение более расплывчатое понятие, чем нейронные сети, но из него также следует, что программное обеспечение, которое вы используете, будет опираться на ваши отзывы, чтобы улучшать свою производительность.
Искусственный интеллект — это пока всё с приставкой «умный»
Подобно тому, как нейронные сети представляют собой форму машинного обучения, машинное обучение является формой искусственного интеллекта. Но категория «искусственного интеллекта» пока так плохо определена, что это словосочетание не имеет практического смысла. Да, оно вызывает в воображении картинки технологически развитого будущего, но в реальности мы еще и близко к нему не подобрались. Когда-то оптическое распознавание символов было слишком сложным для машины, но теперь приложение на телефоне может сканировать документы и превращать их в текст. Называть это подвигом искусственного интеллекта как-то негоже.
Причина того, что базовые телефонные возможности можно считать искусственным интеллектом, в том, что на самом деле есть два типа ИИ. Слабый или узконаправленный ИИ описывает любую систему, предназначенную для выполнению узкого списка задач. К примеру, Google Assistant или Siri, являясь довольно мощными ИИ, все же выполняют довольно узкий список задач. Они получают голосовые команды и возвращают ответы, либо запускают приложения. Исследования в области искусственного интеллекта питают эти функции, но они считаются «слабыми».
В противоположность этому, сильный ИИ — известный также как общий искусственный интеллект, или «полный ИИ» — это система, способная выполнять любую человеческую задачу. И она не существует. Поэтому любое «умное» приложение — это все еще слабый искусственный интеллект.
И хотя смысл может быть весьма расплывчатым, практические исследования в области искусственного интеллекта настолько полезны, что, вероятно, уже вошли в вашу повседневную жизнь. Каждый раз, когда ваш телефон автоматически запоминает, где вы припарковались, распознает лица на ваших фотографиях, получает поисковые предложения или автоматически группирует все ваши снимки с выходных, вы так или иначе касаетесь искусственного интеллекта. В определенной степени «искусственный интеллект» на самом деле просто означает, что приложения будут чуть умнее, чем мы привыкли. Едва ли метка «ИИ» сейчас означает хоть что-нибудь внятное с практической точки зрения.