Воображение добавляет неразберихи. Ваше понимание феномена искусственного интеллекта зависит от того, каким вы видите будущее. Один из студентов Марвина Минского, Рэй Курцвейл, является сторонником теории сингулярности – гипотезы, согласно которой к 2045 г. человек интегрируется с вычислительными системами. (Курцвейл известен тем, что изобрел музыкальный синтезатор, который звучит как рояль.) Современная научная фантастика охвачена идеей сингулярности. Однажды во время интервью для конференции футуристов меня спросили о теории скрепок: «Что если бы вы изобрели машину, которая хочет делать скрепки, затем научили бы ее хотеть делать что-то другое, а потом машина создала бы множество других машин и они бы захватили мир? Это и есть сингулярность? – спросил интервьюер. – Беспокоит ли вас это?» Это забавно, хотя и бессмысленно. Машину можно просто выключить из розетки. Проблема решена. А еще это чисто гипотетическая ситуация. Она не настоящая.
Как сказал психолог Стивен Пинкер в специальном выпуске журнала IEEE Spectrum (журнала Института инженеров электротехники и электроники), посвященном сингулярности: «Нет ни единой причины верить в скорое приближение сингулярности. Тот факт, что вы можете представить будущее в собственной голове, еще не значит, что оно наступит. Вспомним о купольных городах, передвижениях на реактивных ранцах, подводных городах, зданиях высотой километр и автомобилях на ядерном топливе – все это футуристические фантазии, которые я слышал с детства, так и не ставшие реальностью. Возможность обработки огромных массивов данных непохожа на волшебную пыль, которая внезапно решит все проблемы»
[76].
Ян Лекун из Facebook тоже скептично относится к идее сингулярности. В своем комментарии IEEE Spectrum он сказал: «Есть люди, которые ожидаемо раздувают концепт сингулярности, – как Рэй Курцвейл. Он футуролог. Ему нравится позитивный настрой относительно грядущего. Так он продает много книг. Однако, насколько мне известно, он никак не способствовал развитию исследований в области ИИ. Он продавал продукты, основанные на технологии ИИ, некоторые из которых были в известной степени инновационными. Но концептуально не было ничего нового. И, конечно, он не написал ни единой страницы, где бы показал миру, как нам продвинуться в разработке ИИ»
[77]. Разумные люди не принимают никаких сценариев будущего – в том числе потому, что никто не может видеть будущее.
Я попытаюсь внести ясность в сложившийся хаос: определим, что такое машинное обучение, и на примере посмотрим, как абсолютно любой человек может его использовать применительно к массиву данных. Я не просто покажу несколько путей использования машинного обучения, но и приведу кусочек кода. Будет много технических деталей, но, если они вас смущают, не переживайте – к ним можно вернуться чуть позже.
Искусственный интеллект оказался на пике популярности в 2017 г., до этого годами длилась «зима ИИ». В 2000-х гг. ИИ попросту игнорировался общественным дискурсом. Поначалу все технологическое внимание и наше коллективное воображение занимал интернет, затем мобильные устройства. В середине 2010-х люди заговорили о машинном обучении. Внезапно ИИ стал горячей темой. Повсюду появились стартапы в этой области. Watson от IBM победил человека в Jeopardy!; алгоритм перехитрил человека в игре го. Даже слова «машинное обучение» звучали круто. Машина может учиться! Надежды сбылись!
И поначалу мне хотелось верить в то, что каким-то гениям удалось решить сложнейшую задачу и заставить машину думать, но, присмотревшись, я поняла, что реальность куда сложнее. В действительности ученые дали машинному обучению новый смысл, соответствующий ему. Они так часто его использовали, что значение действительно изменилось.
Такое случается. Язык – это подвижная структура. Хороший тому пример – слово literally (буквально), которое обычно было антонимом к слову figuratively (фигурально)
[78]. В 1990-е гг., если бы вы сказали что-то вроде «Мой рот буквально горел после этого перца чили», это бы означало, что у вас во рту случился реальный пожар и из-за ожогов третьей степени вам пришлось говорить прямо из реанимационного отделения. Однако в 2000-х люди стали повсеместно использовать это слово как синоним «фигурально» и для усиления эффекта. «Я буквально бы убил кого-нибудь, если бы пришлось снова слушать песню Джона Майера» стали интерпретировать как «Я бы предпочел не слушать песню Джона Майера снова», а не предупреждение о готовящемся убийстве или беспорядках.
Согласно Оксфордскому словарю, термин «машинное обучение» вошел в массовый вокабуляр в 1959 г. А начиная с 2000-х гг. и третьего издания словаря термин стали включать целиком как словосочетание. Оксфордский словарь определяет машинное обучение как:
Машинное обучение – сущ. Вычислительная возможность компьютера к обучению на основе опыта, а именно к изменению работы в соответствии с вновь полученной информацией.
1959 г. Журнал записей IBM 3 211/1. В нашем распоряжении есть компьютеры с адекватными возможностями для обработки данных и скоростью работы, достаточной для применения техник машинного обучения.
1990 г. Журнал New Scientist от 8 сентября 78/1. Когда Даг Ленам из Стэнфорда разработал Eurisko, систему машинного обучения второго поколения, ему казалось, что он создал настоящий интеллект
[79].
Это определение справедливо, но не слишком точно улавливает актуальные представления ученых о машинном обучении. Так, более релевантное определение можно найти в Оксфордском словаре по информатике:
Машинное обучение
Ответвление исследовательской области искусственного интеллекта, посвященное разработке программ, обучающихся на основе опыта. Обучение может принимать различные формы – от обучения на примерах и обучения на основе аналогии до автономного постижения концепций и обучения посредством находок.
Инкрементное обучение подразумевает непрерывное улучшение за счет вновь поступающих данных – обучение по одному примеру или пакетное обучение. Существует различение двух стадий – стадии обучения и применения.
Обучение с учителем предполагает явное указание принадлежности вводимых данных классам, которые требуется выучить.
Большинство методов обучения имеет тенденцию к генерализации, что позволяет системе развивать эффективную и качественную структуру репрезентации для больших массивов тесно связанных друг с другом данных
[80].
Это уже ближе, но все еще не совсем точно. Документация к scikit-learn, популярной библиотеке для машинного обучения на языке Python, определяет машинное обучение иначе: «Машинное обучение заключается в усваивании системой ряда особенностей массива данных и последующем применении их к новому массиву. Поэтому в области машинного обучения существует распространенная практика разделения имеющегося массива данных на две части – обучающей выборки, на основе которой характеристики выучиваются, и тестовой выборки, на базе которой проверяется результат обучения»
[81].