Бенч с коллегами также описывают, как «позитивная дискриминация» способствует расширению гендерной пропасти в точных науках. В рамках своего исследования они предложили испытуемым – мужчинам и женщинам – пройти математический тест и затем спросили, как те, по собственному мнению, справились. Когда исследователи проверили тест и сверились с тем, как испытуемые оценили свои работы, оказалось, что мужчины уверенно полагали, что справились лучше, чем на самом деле. «Подобная переоценка результатов объясняется их бо́льшим, чем у женщин, стремлением заниматься математикой, – пишут Бенч с коллегами. – Результаты исследования показывают, что гендерная пропасть в точных науках, вероятно, обусловлена не тем, что женщины трезво оценивают свои возможности, но тем, что мужчины переоценивают свои».
В итоге мы имеем небольшую группу мужчин, переоценивающих свои математические способности, которые систематически не допускали и игнорировали женщин и людей с небелым цветом кожи, веками занимаясь разработкой машин. Группу мужчин, желающих превратить научную фантастику в реальность, которые не слишком заботятся о социальных нормах и не верят, что общественные нормы и правила применимы к ним. Тех, кто, прохлаждаясь, не успевает тратить выделяемые государством средства. Тех, кто также с радостью принял идеологическую риторику крайне правых либертарианских анархо-капиталистов.
Что же пошло не так?
7
Машинное обучение: DL на ML
Чтобы сделать мир технологий справедливее, необходимо привлечь больше разнообразных мнений при создании технологий. Добиться этого можно посредством банального сокращения количества преград, а также решения проблем а-ля «протекающий трубопровод», заставляющих профессионалов средней руки отказываться от дальнейшего карьерного роста. Мне также кажется, что поможет нестандартное решение: разобраться с нюансами обсуждения цифрового мира. Иллюстрирует сложность обсуждения информатики веб-комикс xkcd Рэнделла Манро. На одной из картинок женщина сидит за компьютером, мужчина стоит позади нее:
– Приложение должно проверять, действительно ли пользователь находится в национальном парке, когда делает фотографию, – говорит мужчина.
– Разумеется, простой запрос в ГИС, – отвечает женщина. – Дай мне несколько часов.
– И проверь, есть ли на фотографии птица, – продолжает мужчина.
– Для этого мне понадобится команда исследователей и пять лет.
«В компьютерном мире бывает непросто объяснить разницу между простым и невозможным в виртуальном мире» – гласит подпись к комиксу[72].
Поскольку сложно объяснить, почему компьютер затрудняется распознать птицу на изображении или отличить попугая от гуакамоле, нужно больше людей (может, дата-журналистов?), способных перевести сложные технологические темы на простой язык, демистифицировать потайные уголки мира ИИ.
Из-за этих нюансов появилась путаница. На протяжении всей книги мы возвращаемся к идее, что компьютеры отлично справляются с одними задачами и совершенно неприменимы к другим, а социальные проблемы начинаются тогда, когда люди не могут оценить, насколько корректно компьютер выполняет задачу. Движение по комнате, на полу которой разбросаны игрушки, – простейшая задача для человека и очень сложная для компьютера – классический пример моего тезиса. Ребенок, только что научившийся ходить, может пройти по этой комнате, не задев игрушки (если, конечно, решит, что их задевать не стоит). Робот не может этого сделать. Чтобы робот смог пройти по такой комнате, нам нужно запрограммировать его: вписать всю информацию об игрушках и их точные размеры, чтобы он смог вычислить путь. И, если их передвинуть, понадобится обновлять программу. Беспилотные машины, о которых мы поговорим в главе 8, работают примерно как робот в игровой комнате: они постоянно обновляют свою карту мира.
Владельцы питомцев, купившие роботы-пылесосы Roomba, выявили еще кое-какие сложности. Если животное наделает дел на полу, робот непременно развезет их по всему дому. «Честно говоря, мы часто сталкиваемся с этим, – комментирует ситуацию представитель компании-производителя iRobot для Guardian в августе 2016 г. – Мы настоятельно рекомендуем не планировать уборку, если вы знаете, что ваша собака может набедокурить. Поведение животных невозможно точно предсказать»[73].
К счастью, наш повседневный язык позволяет описывать определенные вещи, не называя их конкретно, и я могу использовать эвфемизмы для отвратительных вещей, которые способны вытворить питомцы. Если я скажу, что моя собака чудесная, но при этом гадкая, вы поймете, что я хочу сказать. Вы можете удержать в голове две противоречивые идеи одновременно и способны догадаться о том, что я подразумеваю под гадостью. В математическом языке не существует подобных эвфемизмов, в нем все крайне четко. Например, в программировании имеется концепт под названием переменная. Переменной присваивается определенное значение, например «х=2», а затем ее можно использовать в процедурах. Существует два типа переменных: изменяемые, которые называются собственно переменными, и неизменяемые – константы. И это предельно ясно для программиста: переменная может быть константой. Для непрограммиста такая запись, скорее всего, не слишком понятна: ведь константа противоположна переменной, то есть изменяемое не равно неизменяемому. Это сбивает с толку.
Проблема терминов не нова. Язык эволюционирует вместе с наукой. Например, в биологии клетки называются так, а не иначе, поскольку Роберту Гуку, открывшему их в 1665 г., они напомнили монастырские кельи[74]. Проблема наименования особенно актуальна сегодня, в свете динамичного развития технологий. Нам приходится привыкать к новым компьютерным концептам и внедрять различные устройства поразительно часто. Однако всему этому создатели присваивают имена, основанные на уже существующих объектах или концептах.
И, хотя информатики и математики талантливы в своих областях, они совершенно нечувствительны к особенностям языка. Так что, если что-то требуется назвать, они не будут сильно стараться, пытаясь найти превосходный вариант с идеальными коннотациями, латинскими корнями и прочим. Они просто выбирают название, которое обычно связано с чем-то, что им симпатично. Язык программирования Python был назван в честь комик-группы «Монти Пайтон» («Монти Пайтон» – это пракомедия, как «Звездные войны» – пранарратив). Django, сетевой фреймворк – в честь Джанго Рейнхардта, любимого джаз-гитариста создателя фреймворка. Язык Java – в честь кофе. Язык JavaScript – никак не связанный с Java – к несчастью, тоже был назван в честь кофе.
Лингвистические проблемы стали появляться и по мере того, как термин «машинное обучение» становился частью популярного дискурса. Машинное обучение (ML) предполагает, что каким-то образом компьютер обзавелся субъектностью и разумом, поскольку он «учится», ведь обучение – это слово, которое применяется к разумным существам вроде людей (или частично разумным, например животным). Тем не менее информатики прекрасно понимают, что «машинное обучение» – это скорее метафора, она означает, что машина может улучшать свои показатели при решении запрограммированных, рутинных, автоматизированных задач. Это вовсе не значит, что машина каким-то образом приобретает знания, мудрость или субъектность, несмотря на все то, что подразумевает слово «обучение». Подобная лингвистическая путница лежит в основе большинства ошибочных представлений о компьютерах[75].
Воображение добавляет неразберихи. Ваше понимание феномена искусственного интеллекта зависит от того, каким вы видите будущее. Один из студентов Марвина Минского, Рэй Курцвейл, является сторонником теории сингулярности – гипотезы, согласно которой к 2045 г. человек интегрируется с вычислительными системами. (Курцвейл известен тем, что изобрел музыкальный синтезатор, который звучит как рояль.) Современная научная фантастика охвачена идеей сингулярности. Однажды во время интервью для конференции футуристов меня спросили о теории скрепок: «Что если бы вы изобрели машину, которая хочет делать скрепки, затем научили бы ее хотеть делать что-то другое, а потом машина создала бы множество других машин и они бы захватили мир? Это и есть сингулярность? – спросил интервьюер. – Беспокоит ли вас это?» Это забавно, хотя и бессмысленно. Машину можно просто выключить из розетки. Проблема решена. А еще это чисто гипотетическая ситуация. Она не настоящая.
Как сказал психолог Стивен Пинкер в специальном выпуске журнала IEEE Spectrum (журнала Института инженеров электротехники и электроники), посвященном сингулярности: «Нет ни единой причины верить в скорое приближение сингулярности. Тот факт, что вы можете представить будущее в собственной голове, еще не значит, что оно наступит. Вспомним о купольных городах, передвижениях на реактивных ранцах, подводных городах, зданиях высотой километр и автомобилях на ядерном топливе – все это футуристические фантазии, которые я слышал с детства, так и не ставшие реальностью. Возможность обработки огромных массивов данных непохожа на волшебную пыль, которая внезапно решит все проблемы»[76].
Ян Лекун из Facebook тоже скептично относится к идее сингулярности. В своем комментарии IEEE Spectrum он сказал: «Есть люди, которые ожидаемо раздувают концепт сингулярности, – как Рэй Курцвейл. Он футуролог. Ему нравится позитивный настрой относительно грядущего. Так он продает много книг. Однако, насколько мне известно, он никак не способствовал развитию исследований в области ИИ. Он продавал продукты, основанные на технологии ИИ, некоторые из которых были в известной степени инновационными. Но концептуально не было ничего нового. И, конечно, он не написал ни единой страницы, где бы показал миру, как нам продвинуться в разработке ИИ»[77]. Разумные люди не принимают никаких сценариев будущего – в том числе потому, что никто не может видеть будущее.
Я попытаюсь внести ясность в сложившийся хаос: определим, что такое машинное обучение, и на примере посмотрим, как абсолютно любой человек может его использовать применительно к массиву данных. Я не просто покажу несколько путей использования машинного обучения, но и приведу кусочек кода. Будет много технических деталей, но, если они вас смущают, не переживайте – к ним можно вернуться чуть позже.
Искусственный интеллект оказался на пике популярности в 2017 г., до этого годами длилась «зима ИИ». В 2000-х гг. ИИ попросту игнорировался общественным дискурсом. Поначалу все технологическое внимание и наше коллективное воображение занимал интернет, затем мобильные устройства. В середине 2010-х люди заговорили о машинном обучении. Внезапно ИИ стал горячей темой. Повсюду появились стартапы в этой области. Watson от IBM победил человека в Jeopardy!; алгоритм перехитрил человека в игре го. Даже слова «машинное обучение» звучали круто. Машина может учиться! Надежды сбылись!
И поначалу мне хотелось верить в то, что каким-то гениям удалось решить сложнейшую задачу и заставить машину думать, но, присмотревшись, я поняла, что реальность куда сложнее. В действительности ученые дали машинному обучению новый смысл, соответствующий ему. Они так часто его использовали, что значение действительно изменилось.
Такое случается. Язык – это подвижная структура. Хороший тому пример – слово literally (буквально), которое обычно было антонимом к слову figuratively (фигурально)[78]. В 1990-е гг., если бы вы сказали что-то вроде «Мой рот буквально горел после этого перца чили», это бы означало, что у вас во рту случился реальный пожар и из-за ожогов третьей степени вам пришлось говорить прямо из реанимационного отделения. Однако в 2000-х люди стали повсеместно использовать это слово как синоним «фигурально» и для усиления эффекта. «Я буквально бы убил кого-нибудь, если бы пришлось снова слушать песню Джона Майера» стали интерпретировать как «Я бы предпочел не слушать песню Джона Майера снова», а не предупреждение о готовящемся убийстве или беспорядках.
Согласно Оксфордскому словарю, термин «машинное обучение» вошел в массовый вокабуляр в 1959 г. А начиная с 2000-х гг. и третьего издания словаря термин стали включать целиком как словосочетание. Оксфордский словарь определяет машинное обучение как:
Это определение справедливо, но не слишком точно улавливает актуальные представления ученых о машинном обучении. Так, более релевантное определение можно найти в Оксфордском словаре по информатике:
Это уже ближе, но все еще не совсем точно. Документация к scikit-learn, популярной библиотеке для машинного обучения на языке Python, определяет машинное обучение иначе: «Машинное обучение заключается в усваивании системой ряда особенностей массива данных и последующем применении их к новому массиву. Поэтому в области машинного обучения существует распространенная практика разделения имеющегося массива данных на две части – обучающей выборки, на основе которой характеристики выучиваются, и тестовой выборки, на базе которой проверяется результат обучения»[81].
Подобное расхождение источников относительно определения феномена – редкость. Например, в определении слова «собака» вполне сходится множество источников. В то же время «машинное обучение» – достаточно новый феномен, потому неудивительно, что пока не сложилось его общепринятое определение и лингвистика до него еще не добралась.
Том М. Митчелл, профессор кафедры машинного обучения в Школе компьютерных наук Университета Карнеги – Меллона, предлагает неплохое определение машинного обучения в книге «Наука машинного обучения» (The Discipline of Machine Learning). Он пишет: «Мы считаем, что машина обучается с учетом конкретной задачи Т, системы оценки эффективности Р для конкретной задачи, основываясь на опыте Е. В зависимости от того, как мы определяем Т, Р, и Е, задачу обучения можно назвать добычей данных, автономными исследованиями, обновлением базы данных, программированием на основе примеров и т. д.»[82]. Это определение кажется мне подходящим потому, что Митчелл использует конкретные термины для определения феномена обучения. «Обучение» машины вовсе не означает, что у нее есть металлические «мозги». Это значит, что в выполнении конкретной задачи она стала точнее – в соответствии с метрикой, определенной человеком.
Для такого обучения не нужен интеллект. Программист и консультант Джордж М. Невилл-Нил пишет в журнале Communications of the ACM:
[72] См. https://xkcd.com/1425, and note that the hidden text on the online version of the comic refers to a famous anecdote about Marvin Minsky.
[73] Solon, “Roomba Creator Responds to Reports of ‘Poopocalypse.’”
[74] И то и другое на английском именуется cells. – Прим. ред.
[75] Busch, “A Dozen Ways to Get Lost in Translation”; van Dalen, “The Algorithms behind the Headlines”; ACM Computing Curricula Task Force, Computer Science Curricula 2013.
[76] IEEE Spectrum, “Tech Luminaries Address Singularity.”
[77] Gomes, “Facebook AI Director Yann LeCun on His Quest to Unleash Deep Learning and Make Machines Smarter.”
[78] Пример актуален для США. – Прим. ред.
[81] Pedregosa et al., “Scikit-Learn: Machine Learning in Python.”
[82] Mitchell, “The Discipline of Machine Learning.”