Читать книгу Hello World. Как быть человеком в эпоху машин - Ханна Фрай - Страница 6

Власть
Назад к основам

Оглавление

Прежде чем мы углубимся в изучение этой темы, возможно, стоит ненадолго отвлечься и поговорить о том, что же такое алгоритм. Хотя этот термин у всех на слуху, смысл самого слова довольно туманный. Формально определение таково[16]:


Алгоритм (сущ.): порядок действий, которые необходимо совершить для решения той или иной задачи или достижения заданной цели, особенно с помощью компьютера.


Всего-то. Алгоритм – это просто набор инструкций, которые помогают шаг за шагом дойти от исходных данных до решения задачи. В широком смысле рецепт пирога – тоже алгоритм. Под это определение подпадают и советы, которые вы даете заблудившемуся приезжему. Инструкции из IKEA, видео с YouTube, где вам показывают, что и как сделать, даже всевозможные практические руководства – теоретически алгоритмом можно считать любой перечень инструкций, в котором содержится полная информация о том, как достичь конкретной цели.

Однако область применения этого термина несколько иная. Обычно алгоритмом называют нечто более специальное. Алгоритм действительно представляет собой набор пошаговых инструкций, но при этом почти всегда речь идет о математическом объекте. Используя уравнения, арифметические и алгебраические действия, матанализ, логику и теорию вероятностей, алгоритм превращает ряд математических операций в компьютерную программу. Ему предоставляют данные из жизни, ставят задачу и запускают его, чтобы дальше он сам продирался через формулы к ответу. Именно алгоритмы делают информатику настоящей наукой, и благодаря им машины сотворили за последние десятилетия массу самых удивительных чудес.

Существует несметное множество всевозможных алгоритмов. Каждый из них имеет свое предназначение, свои отличительные особенности, свою изюминку и свои недостатки, и до сих пор неясно, как их лучше классифицировать. Но в целом удобно выделить четыре основные категории задач, которые выполняют алгоритмы[17]:


1. Расстановка приоритетов – составление упорядоченного списка

Исходя из ранжирования результатов поиска, Google подсказывает вам, какую страницу открыть в данный момент. Netflix предлагает вам очередной фильм. Навигатор выбирает для вас кратчайший путь. Все они упорядочивают колоссальное множество вероятных опций, производя вычислительный процесс. Deep Blue, в сущности, тоже занимался приоритизацией, то есть анализировал все возможные ходы фигур на доске и находил те, что гарантировали самые высокие шансы на победу.


2. Классификация – выбор категории

Когда мой возраст приблизился к тридцати годам, Facebook завалил меня рекламой колец с бриллиантами. И как только я наконец вышла замуж, отовсюду в интернете посыпались предложения тестов на беременность. Такими маленькими неудобствами я обязана алгоритмам классификации. Любимые алгоритмы рекламщиков, руководствуясь вашим личным профилем, исподтишка записывают вас в группу лиц с определенными интересами. (Пусть даже они угадывают верно, но если во время деловой встречи на экране вашего компьютера неожиданно всплывает реклама тестов на овуляцию, это действует на нервы.)

Именно такие алгоритмы автоматически отсортировывают и удаляют посторонние ролики на YouTube, подписывают ваши отпускные фотографии и, сканируя рукопись, идентифицируют закорючки на странице как буквы.


3. Ассоциирование – выявление связей

Ассоциирование – это поиск и описание взаимосвязи между объектами. Например, сайты знакомств, вроде OkCupid, ищут связи между пользователями и подбирают пары, используя алгоритмы поиска ассоциаций. Примерно так же устроена рекомендательная система Amazon – она находит нечто общее между вашими интересами и интересами предыдущих покупателей. Вот почему пользователь сайта Reddit с ником Kerbobotat, купив на Amazon бейсбольную биту, получил интересное предложение: “Возможно, вам понравится эта балаклава”[18].


4. Фильтрация – выделение важной информации

Алгоритмы нередко помогают изъять часть информации, чтобы обратить внимание на главное, поймать сигнал среди шумов. Иногда они делают это в буквальном смысле слова – так, в голосовых помощниках, например Siri, Alexa и Cortana, чтобы расшифровать вашу речь, алгоритмы распознавания, предварительно должны выделить из шумового фона ваш голос. Иногда это не шум как таковой, а метафора: Facebook и Twitter заполняют вашу ленту, уже зная, что вас обычно интересует, и подбирая соответствующую информацию.


Можно придумать огромное множество алгоритмов, совмещающих эти функции. Так устроен, например, сервис UberPool, который подбирает потенциальных попутчиков для совместных поездок на такси. Зная начальную и конечную точки маршрута, программа должна перебрать все возможные пути к вашему дому, найти других пользователей, которым надо ехать в ту же сторону, и определить вас в одну машину – и при этом в первую очередь предложить такие маршруты, чтобы водителю пришлось как можно меньше крутиться по улицам[19].

Алгоритмы все это умеют. Другой вопрос: как они это делают? Опять-таки мы можем выделить суть, хотя вариантов не счесть. В общем и целом все алгоритмы делятся на два основных типа в зависимости от принципа их работы, и далее в этой книге мы познакомимся с обоими.


1. Алгоритмы, основанные на системе правил

Работа алгоритмов первого типа основана на совокупности правил. Инструкции для них, четкие и недвусмысленные, составляет человек. Такой алгоритм подобен рецепту пирога. Шаг первый: сделать то-то. Шаг второй: если то, тогда это. Алгоритм вовсе не обязательно будет простым – есть масса возможностей для создания сложнейших программ такого типа.


2. Алгоритмы машинного обучения

Принцип действия алгоритмов другого типа сродни обучению живого существа. Для аналогии представьте себе, как можно было бы научить собаку давать лапу. Нет смысла проводить с ней подробный инструктаж. Вам как дрессировщику надо самому четко понимать, чего вы хотите добиться от собаки и как вы ее поощрите, когда она выполнит команду. Надо только закрепить правильную реакцию, игнорируя ошибочную, и дать собаке потренироваться, чтобы она сама выработала нужный рефлекс. В программировании такая схема называется алгоритмом машинного обучения и подпадает под более широкое понятие искусственного интеллекта, ИИ. Вы вводите в компьютер данные, ставите цель, обеспечиваете обратную связь, если алгоритм выбирает верный путь, – и предоставляете ему самостоятельно искать оптимальное решение.


Оба варианта имеют свои плюсы и минусы. Алгоритмы, основанные на системе правил, просты для восприятия, поскольку инструкции для них пишут люди. Теоретически кто угодно может прочитать правила и аккуратно выполнить все пункты по порядку[20]. Однако в этом преимуществе кроется их изъян. Основанные на системе правил алгоритмы решат задачу только в том случае, если люди знают, какую инструкцию для них написать.

Алгоритмы машинного обучения, как выяснилось в последнее время, напротив, отлично справляются и тогда, когда набор команд не помогает. Они могут распознать объект на картинке и слова, которые мы произносим, могут перевести текст на другой язык – сделать то, что алгоритмам с инструкциями не по зубам. Минус в том, что если предоставить машине самой искать решение, то, скорее всего, человек не поймет, каким путем она пришла к конечному результату. Даже для гениального программиста ее внутренняя логика может остаться тайной за семью – печатями.

Предположим, ставится задача распознать изображение. Не так давно группа исследователей из Японии продемонстрировала, как необычно, с точки зрения человека, видит вещи машина. Может быть, вам встречалась известная оптическая иллюзия, когда трудно с первого взгляда сказать, что вы видите – вазу или два лица (если нет, загляните в примечания, приведенные в конце книги)[21]. Вот вам аналогичный пример из мира компьютеров. Ученые показали, что достаточно изменить один пиксель переднего колеса на изображении, приведенном ниже, чтобы алгоритм машинного обучения передумал и увидел собаку там, где прежде видел автомобиль[22].

Кое-кто считает, что оставить алгоритм без четких инструкций – это прямой путь к катастрофе. Как же контролировать то, чего мы не понимаем? Что, если наделенная разумом машина превзойдет по интеллекту своих создателей? Можем ли мы быть уверены, что загадочный для нас ИИ, который нам не подчиняется, не превратится в нашего врага?


Все эти гипотезы заслуживают внимания, и о нависшей над нами угрозе апокалипсиса, который может устроить нам ИИ, написано уже немало книг. Простите, если обманула ваши ожидания, – моя книга о другом. Несмотря на то, что в последнее время ИИ стремительно развивается, “умным” его можно назвать лишь с большими ограничениями. Тому, с чем мы столкнулись, скорее подошло бы определение революции не в области интеллекта, а в вычислительной статистике. Я понимаю, что это не так возбуждает – если только вы не питаете особые чувства к статистике, – однако текущее положение вещей такая формулировка описывает гораздо точнее.

Пока что волноваться из-за злых козней ИИ – все равно что волноваться из-за перенаселения на Марсе[23]. Возможно, когда-нибудь компьютерный разум окажется сильнее человеческого, но пока об этом даже речи не идет. Честно говоря, нам еще довольно далеко до создания интеллекта хотя бы уровня ежиного. И червяка-то до сих пор никому не удалось превзойти[24].

Кроме того, вся эта шумиха из-за искусственного интеллекта отвлекает нас от куда более насущных и, по-моему, более интересных тем. Забудьте ненадолго о всемогущих умных машинах и верните свои мысли из далекого и неясного будущего в наше с вами настоящее, ибо алгоритмы, которым даны полная свобода действий и право самостоятельно принимать решения, уже существуют. Они назначают курс лечения онкологическим больным и сроки тюремного заключения, действуют в аварийной ситуации на дороге. Они уже на каждом шагу делают за нас роковой выбор.

Вопрос вот в чем: если мы делегируем алгоритмам такие полномочия, можно ли им доверять?

16

Согласно словарю Merriam-Webster. В “Оксфордском словаре английского языка” дается определение, в котором подчеркивается математическая природа алгоритма: “последовательность действий или набор команд, которые необходимо выполнить при расчетах или поиске решения задачи, особенно с помощью компьютера”.

17

Классифицировать алгоритмы можно по-разному, и я не сомневаюсь, что специалисты по компьютерным наукам будут недовольны столь упрощенным подходом. Более подробный перечень действительно включил бы в себя еще несколько категорий: например, алгоритмы картирования, сведения одних задач к другим, регрессивного анализа и кластеризации. Но я все-таки остановилась на этой классификации, потому что она покрывает все основные случаи и, что немаловажно, помогает дать представление об этой огромной и сложной области науки. См. Nicholas Diakopoulos, Algorithmic Accountability Reporting: On the Investigation of Black Boxes (New York: Tow Center for Digital Journalism, Columbia University, 2014)

18

Kerbobotat: “Зашел на Amazon купить бейсбольную биту и получил интересные предложения аксессуаров”, Reddit, 28 Sept. 2013, https://reddit.com/r/funny/comments/1nb16l/went_to_buy_a_baseball_bat_on_amazon_they_have/.

19

Sarah Perez, Uber debuts a “smarter” UberPool in Manhattan, TechCrunch, 22 May 2017, https://techcrunch.com/2017/05/22/uber-debuts-a-smarter-uberpool-in-manhattan/.

20

Слово “теоретически” я употребила неслучайно. Так бывает не всегда. Над некоторыми алгоритмами не один год трудились сотни, а то и тысячи разработчиков, и каждый из них на том или ином этапе добавлял свои операции. С каждой новой строкой кода система становится все более сложной, до тех пор пока логические нити не переплетутся на манер порции спагетти. В конце концов алгоритм приобретает настолько разветвленную структуру, что человеческий разум уже не в силах разобраться в ней и уследить за всеми переходами.

В 2013 году компания Toyota должна была выплатить три миллиона долларов компенсации после автокатастрофы с участием одного из ее автомобилей. Машина неконтролируемо разогналась, хотя сидевшая за рулем женщина жала на педаль тормоза, а вовсе не газа. На суде выступавший свидетелем специалист сказал, что виновата случайная команда, скрытая где-то в путаной схеме программного обеспечения. См. Phil Koopman, A case study of Toyota unintended acceleration and software safety (Pittsburgh: Carnegie Mellon University, 18 Sept. 2014), https://users.ece.cmu.edu/~koopman/pubs/koopman14_toyota_ua_slides.pdf.

21

Эта иллюзия называется “ваза Рубина”, по имени придумавшего ее Эдгара Рубина. (Здесь приведен пример со страницы https://commons.wikimedia.org/wiki/File:Vase_of_rubin.png). Это пример двойственного изображения, или обратимых фигур – вы видите два темных профиля и белую вазу. На этом рисунке очень легко переключиться с одной формы на другую, но, чтобы сместить равновесие в ту или иную сторону, достаточно добавить пару штрихов. Скажем, подрисовать тонкие контуры глаз или оттенить ножку вазы.

Из той же серии пример с распознаванием изображения собаки и машины. Программисты подобрали картинку на стыке двух категорий, внесли одну маленькую поправочку, и, по мнению компьютера, картинка переместилась из одной категории в другую.

22

Jiawei Su, Danilo Vasconcellos Vargas and Kouichi Sakurai, One pixel attack for fooling deep neural networks, arXiv:1719.08864v4 [cs.LG], 22 Feb. 2018, https://arxiv.org/pdf/1710.08864.pdf.

На русском языке см. https://habr.com/ru/post/498114/ (Прим. науч. Ред.).

23

Перефразированный комментарий, который дал в 2015 году программист и пионер в области машинного обучения Эндрю Ын. См. Tech Events, ‘GPU Technology Conference 2015 day 3: What’s Next in Deep Learning’, YouTube, 20 Nov. 2015, https://www.youtube.com/watch?v=qP9TOX8T-kI.

24

Международный научный проект OpenWorm преследовал именно такую цель – смоделировать мозг червя. Ученые хотели создать искусственную сеть из 302 нейронов, как в мозге червя C. elegans. Для сравнения, у человека примерно 100 000 000 000 нейронов. См. сайт OpenWorm: http://openworm.org/.

Hello World. Как быть человеком в эпоху машин

Подняться наверх