Введение
Нет сомнений, что в наши дни искусственный интеллект (обычно сокращаемый как ИИ) вызывает большой резонанс, возможно, даже больший, чем мир предполагал еще в середине 2010-х годов. Тогда ИИ был эзотерической темой, слишком сложной с математической точки зрения, чтобы привлечь внимание среднестатистического компьютерного ученого, но теперь, кажется, это стало нарицательным термином. Хотя раньше это считалось научно-фантастическим жаргоном, теперь часто можно увидеть и услышать термин «ИИ» в рекламе потребительских товаров, таких как смартфоны.Однако это ожидаемо; как только идея или технология достигают критической массы, они естественным образом становятся более приемлемыми для широкой аудитории, даже если речь идет только об уровне приложений. Этот уровень относится к тому, что ИИ может для нас сделать, облегчая определенные процессы или автоматизируя другие. Однако все это часто порождает ряд недопониманий. По мере того, как сам ИИ становился более известным, распространялись и различные зловещие предсказания о потенциальных опасностях ИИ — предсказания, подпитываемые скорее страхом и фантазией, чем фактами.
Как и любая другая новая технология, ИИ требует обсуждения с чувством ответственности и этической принципиальности. Практик ИИ, особенно тот, кто больше склонен к практическим аспектам этой области, понимает технологию и ее ограничения, а также возможные проблемы, которые у нее есть, поэтому он говорит о ней без гиперболы и с прогнозами измеримого масштаба – то есть, он проектирует реалистичные приложения ИИ, не говоря о сценариях, напоминающих научно-фантастические фильмы. В конце концов, основные проблемы, связанные с неправильным использованием такой технологии, больше связаны с людьми, использующими ее, а не с самой технологией. Если система ИИ хорошо запрограммирована, ее риски минимизируются, а результаты предсказуемо положительны.
Об ИИ
Но что такое ИИ? Для начала, это совсем не то, что изображают научно-фантастические книги и фильмы. Современные технологии ИИ помогают облегчить различные процессы более автоматическим и автономным способом, с минимальным или полным отсутствием контроля со стороны пользователя-человека. Инициативы в области ИИ реалистичны и чисто функциональны. Хотя мы можем мечтать о том, во что ИИ может эволюционировать когда-нибудь, как практики ИИ, мы фокусируемся на том, что мы знаем и в чем уверены, а не на том, что может существовать через несколько десятилетий.
ИИ включает набор алгоритмов, которые используют информацию – в основном в виде данных – для принятия решений и выполнения задач, как это сделал бы человек. Конечно, имитация человеческого интеллекта – непростая задача; поэтому сегодняшние ИИ рудиментарны и специализированы. Однако, несмотря на свои недостатки, эти современные системы могут быть особенно хороши в задачах, за которые берутся, даже лучше, чем люди. Например, система ИИ, которая представляет собой автономную программу, реализующую один или несколько алгоритмов ИИ, созданную для идентификации слов из речи, может быть более точной, чем люди, выполняющие ту же задачу.
Важно отметить, что все существующие сегодня системы ИИ обладают так называемым узким искусственным интеллектом. Это означает, что современные ИИ могут очень хорошо выполнять ограниченный набор задач (или даже только одну задачу), но в лучшем случае демонстрируют посредственную производительность в любой другой задаче. Например, ИИ может отлично определять ваш возраст по фото лица, но тот же самый ИИ почти наверняка не отличит классическую музыку от поп-песни.
Некоторые ИИ разработаны для использования в роботах, например, в тех, которые предназначены для спасательных миссий и способны передвигаться по различным ландшафтам. Другие ИИ специализируются на обработке данных и содействии различным задачам анализа данных. Существуют даже ИИ, которые имитируют творческие процессы, например, ИИ, которые генерируют художественные произведения, используя паттерны, которые они выводят из каталогов существующих работ. Чат-боты и другие подобные ИИ сфокусированы исключительно на взаимодействии с людьми. Возможность существования более общего ИИ (называемого общим искусственным интеллектом, или ОИИ) существует, но может пройти некоторое время, прежде чем он сможет проявиться, или прежде чем мы будем готовы интегрировать его в наш мир.
Поскольку все это может показаться немного абстрактным, давайте немного проясним. Если система может принимать некоторые решения, собирая и анализируя сигналы, связанные с проблемой, то это ИИ (иногда называемый «системой ИИ»). Вы, вероятно, использовали ИИ, даже не зная об этом. Онлайн-радиостанции, такие как Spotify и Pandora, используют ИИ для рекомендации песен, а виртуальные помощники (например, Siri) используют ИИ, чтобы помочь вам решить проблемы. Факторы, помогающие нам решить, является ли система ИИ, включают сложность системы, ее универсальность и способность выполнять сложные задачи.
Профессор Алан Тьюринг первым заговорил на эту тему с научной точки зрения. Изучив этот предмет как с теоретической, так и с практической точки зрения (создав первый современный компьютер, использовавшийся для взлома кода Enigma во Второй мировой войне1), он предвидел машины, которые могли бы думать и рассуждать так же, как люди.
Один из самых известных мысленных экспериментов профессора Тьюринга теперь назван в его честь. Тест Тьюринга — это простая, но мощная эвристика для определения того, достаточно ли продвинут компьютер, чтобы проявлять интеллект. Этот тест предполагает участие либо человека, либо компьютера, и их маскировку от другого человека. Другой человек, известный как экзаменатор, затем задает каждому из них серию вопросов, не зная, кто есть кто. Если экзаменатор не может определить по ответам на эти вопросы, говорит ли он с человеком или компьютером, то считается, что компьютер прошел тест. Этот простой тест остался стандартом для ИИ, по-прежнему принося пользу связанным исследованиям в данной области различными способами.2
ИИ способствует науке о данных
Итак, как ИИ вписывается в науку о данных? В конце концов, люди годами работали в науке о данных без этих модных алгоритмов ИИ. Хотя с помощью традиционных методов науки о данных, безусловно, можно получить ценные знания, алгоритмы на основе ИИ часто могут обеспечить лучшую производительность наших моделей — математических абстракций, которые мы создаем для моделирования исследуемых явлений. В высококонкурентных отраслях эта дополнительная производительность, полученная от моделей данных на основе ИИ, может дать преимущество над другими на рынке. Поскольку многие компании в этих отраслях уже имеют достаточно данных, которые они могут использовать для обучения алгоритмов ИИ, мы называем их готовыми к ИИ.
Теперь применять ИИ намного проще, чем когда-либо прежде. Ранние разработчики ИИ доказали, что ИИ может принести миру много пользы, и для этого не требуется помощь ракетчика. Это в значительной степени стало возможным благодаря серии мощных фреймворков и библиотек ИИ, которые делают методы ИИ более доступными для большинства практиков науки о данных.
Кроме того, ИИ теперь достаточно диверсифицировался и созрел, чтобы превзойти традиционные методы науки о данных во многих приложениях. За это мы должны поблагодарить возросшие вычислительные ресурсы, находящиеся в нашем распоряжении, особенно
вычислительную мощность. Это стало возможным благодаря тому, что графические процессоры (GPU) стали дешевле и их легче интегрировать в компьютер в качестве надстроек. Более того, облачные вычисления стали более распространенными, позволяя большему количеству людей получать доступ к виртуальному компьютерному кластеру, который они настраивают и арендуют, для запуска своих проектов ИИ. Это делает системы ИИ легко масштабируемыми и экономически эффективными, одновременно способствуя экспериментам и новым сценариям использования этой технологии.
Все это сотрудничество между ИИ и наукой о данных привело к большому исследовательскому интересу к ИИ. Исследовательские центры, индивидуальные исследователи и отделы НИОКР различных крупных компаний исследуют новые способы сделать эти алгоритмы ИИ более масштабируемыми и надежными. Это, естественно, усиливает влияние этой области на мир и делает ее более привлекательной технологией – не только для исследователей, но и для всех, кто готов с ней экспериментировать, включая многих предпринимателей в этой области.
Итак, да, наука о данных могла бы продолжаться и без ИИ. Но во многих случаях это не имело бы особого смысла. Теперь ясно, что в мире науки о данных есть много проблем и ограничений, которые ИИ может помочь решить. Пересечение этих двух тесно связанных областей будет только расти по мере их развития, поэтому сейчас самое подходящее время, чтобы полностью погрузиться в изучение ИИ.
О книге
Эта книга охватывает различные фреймворки, уделяя особое внимание наиболее перспективным, а также рассматривая различные алгоритмы ИИ, выходящие за рамки глубокого обучения. Надеемся, эта книга даст вам более целостное понимание области ИИ, снабдив вас широким набором инструментов (не только тех, которые находятся сейчас в центре внимания). Имея в своем распоряжении несколько инструментов, вы сможете самостоятельно решить, какой из них лучше всего подходит для любой конкретной задачи, связанной с данными. В конце концов, хороший специалист по данным должен не только знать, как использовать каждый инструмент в наборе, но и какой инструмент подходит для конкретной задачи.
Хотя большинство технологов и руководителей, участвующих в процессах, основанных на данных, могут значительно выиграть от этой книги, она наиболее подходит для профессионалов в области науки о данных, практиков ИИ и специалистов в смежных областях (таких как программисты на Python или Julia).
Базовое понимание науки о данных является важной предпосылкой для этой книги (для подробного введения в эту область, не стесняйтесь ознакомиться с книгой «Data Science Mindset, Methodologies, and Misconceptions» издательства Technics Publications). Более того, хороший математический бэкграунд рекомендуется тем, кто хочет глубже разобраться в методах, которые мы рассматриваем в этой книге. В конечном счете, однако, самые важные качества – это решимость и любознательность, поскольку вы в конечном итоге примените эти знания на практике при создании собственных систем ИИ.
Хотя эта книга насыщена программированием, вы все равно сможете получить полезное понимание ИИ, даже если не будете писать код. Однако для достижения наилучших результатов мы рекомендуем вам пройти через различные примеры и, возможно, немного поэкспериментировать самостоятельно. Мы создали образ Docker со всем кодом и данными, использованными в примерах книги, чтобы вы могли следовать и экспериментировать. См. Приложение F о том, как настроить это окружение и использовать соответствующий код.
Эта книга обеспечивает легкий переход для тех, кто уже имеет некоторое представление о более известных аспектах ИИ. Таким образом, мы начинаем с обзора фреймворков глубокого обучения (глава 1), за которым следует краткое описание других фреймворков ИИ, фокусирующихся на алгоритмах оптимизации и нечетких логических системах (глава 2). Цель этих первых двух глав — предоставить вам некоторый базис перед переходом к более практическим и специализированным аспектам.
Именно в главе 3 мы рассмотрим фреймворк MXNet для глубокого обучения и то, как он работает на Python. Основное внимание здесь уделяется самым базовым (и наиболее широко используемым) системам глубокого обучения, а именно полносвязным нейронным сетям (также известным как многослойные перцептроны, или сокращенно MLP). В двух последующих главах эти системы глубокого обучения рассматриваются с использованием других популярных фреймворков: Tensorflow и Keras. Все главы, посвященные глубокому обучению, содержат примеры (предоставленные в виде ноутбуков Jupyter с кодом Python в образе Docker) для практических занятий с этими системами.
Главы 6–8 рассматривают алгоритмы оптимизации, в частности, более продвинутые. Каждая глава фокусируется на конкретном фреймворке этих алгоритмов, включая оптимизацию роем частиц (PSO), генетические алгоритмы (GA) и имитацию отжига (SA). Мы также рассматриваем приложения этих алгоритмов и то, как они могут быть полезны в проектах по науке о данных. Языком программирования, который мы будем использовать для этих глав, является Julia (версия 1.0), по соображениям производительности.3
После этого мы рассмотрим более продвинутые методы ИИ, а также альтернативные системы ИИ. В главе 9 мы, в частности, рассмотрим сверточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN), которые являются довольно популярными системами в семействе глубокого обучения. В главе 10 мы рассмотрим ансамбли оптимизации, которые обсуждаются нечасто, но заслуживают внимания в эту эпоху легкой параллелизации. Далее, в главе 11, мы опишем альтернативные фреймворки ИИ для науки о данных, такие как экстремальные обучающие машины (ELM) и капсульные сети (CapsNets), которые либо слишком новы, либо слишком продвинуты для основного направления области ИИ.
В последней главе книги мы поговорим о больших данных, специализациях в науке о данных, и чтобы помочь вам практиковаться, мы предоставим некоторые источники общедоступных наборов данных. Книга завершается некоторыми советами, а также ресурсами для дополнительного обучения. Например, в Приложении А мы поговорим о трансферном обучении, а тема обучения с подкреплением будет рассмотрена в Приложении В. Системы автокодировщиков будут кратко описаны в Приложении С, а генеративно-состязательные сети (GAN) будут представлены в Приложении D. Приложение Е рассмотрит бизнес-аспект ИИ в проектах по науке о данных, а для тех, кто не знаком с программным обеспечением Docker, у нас есть Приложение F.
Эта книга содержит множество технических терминов, которые описаны в разделе глоссария, следующем за этими главами. Обратите внимание, что первое появление глоссарного термина в тексте книги выделено курсивом. Глоссарий также включает несколько терминов, которые не упомянуты в тексте, но имеют значение.
Область ИИ огромна. С помощью этой книги вы сможете получить прочное понимание области и, надеюсь, вдохновение для дальнейшего ее изучения по мере ее развития. Итак, давайте приступим, не так ли?
https://bit.ly/2mEHUpc.
https://stanford.io/2useY7T.
Для краткого учебника по языку вы можете посмотреть это видео на YouTube: http://bit.ly/2Me0bsC.