Краткий обзор технологий искусственного интеллекта
Технологии, стоящие за искусственным интеллектом, чертовски умны. В их основе лежат алгоритмы – последовательность инструкций или набор правил для выполнения задачи. Алгоритмом можно считать даже железнодорожное расписание и рецепт приготовления блюда или аптечного лекарства. Искусственным интеллектом, естественно, управляют гораздо более продвинутые алгоритмы; по сути, они являются очень сложными статистическими моделями, использующими принципы теории вероятности, чтобы найти регулярные связи в определенном наборе входящих данных, часто с учетом определенной цели («если клиент посмотрел эти фильмы, то какие другие фильмы он захочет посмотреть с наибольшей вероятностью»). Эта книга, разумеется, не претендует на подробное объяснение базовых технологий искусственного интеллекта; более того, она намеренно лишена технической лексики. Однако некоторые принципы, лежащие в основе ИИ-технологии, знать все-таки необходимо.
Один из способов классификации технологий искусственного интеллекта – разделить их на так называемое «контролируемое» и «неконтролируемое» обучение. Контролируемое обучение является более распространенным и относится к ситуациям, когда система искусственного интеллекта обучается путем анализа больших объемов данных. Например, если вы хотите иметь ИИ-приложение, способное идентифицировать изображения собак, то вы должны показать алгоритму тысячи изображений, где собаки есть, и столь же большое количество картинок, где они отсутствуют. На первом этапе вы помечаете все картинки по принципу «есть собака» и «нет собаки». Используя машинное обучение (один из методов, применяемых при разработке искусственного интеллекта, – о нем я расскажу позже) и введенные данные, система изучает, как выглядит собака на изображении (что общего есть между любыми собаками, присутствующими на картинках). Затем систему следует проверить на другом наборе таких же (но не идентичных) данных, где изображения тоже помечены, но на этот раз об этом знаете только вы, а системе ничего не известно. Если система сможет идентифицировать наличие или отсутствие собак на фотографиях, значит, она обучена достаточно хорошо. Вы можете проверять это снова и снова. Если после этого люди будут использовать созданное вами приложение (назовем его условно «Найди собаку на картинке») с подключенной обратной связью, то есть оценивая правильность ответов системы, то ИИ будет продолжать свое обучение прямо по ходу работы. Контролируемое обучение обычно используется там, где входные данные неструктурированы или структурированы лишь частично: изображения, звуки, рукописный текст. Сюда относятся функции распознавания изображений, речи и поиска в соответствии с предложенной мною моделью структуризации искусственного интеллекта.
При неконтролируемом обучении системе предлагается очень большой набор данных, которые в начале процесса для нее ничего не «значат». Однако по ходу анализа искусственный интеллект может определить в этих данных схожие характеристики (так называемые кластеры сходства). Следует отчетливо понимать, что искусственный интеллект не вкладывает в эти сходства и различия никакого «смысла» в человеческом понимании; он просто ищет повторение шаблонов среди океана информации. Но самое замечательное в таком подходе то, что и сам пользователь может ничего не понимать в этих данных. Да ему зачастую и не нужно знать, что он ищет: всю эту работу выполняет искусственный интеллект. Что бы мы ни исследовали, после того как ИИ определит кластеры сходства, он сможет создавать прогнозы для новых входящих данных.