Автор книги: Маркус Сотой
Жанр: Прочая образовательная литература, Наука и Образование
Возрастные ограничения: +16
сообщить о неприемлемом содержимом
Текущая страница: 5 (всего у книги 22 страниц) [доступный отрывок для чтения: 7 страниц]
Возможно, вы заметили в алгоритме, разработанном Гейлом и Шепли, любопытную асимметрию. В нашем примере дамы делали предложения королям. Изменится ли что-нибудь, если вместо этого мы предложим королям делать предложения дамам? Как это ни удивительно, изменится. В этом случае, поменяв королей и дам местами, мы получили бы в итоге другое распределение по устойчивым парам.
Дама бубен вышла бы замуж за короля червей, а дама треф – за короля бубен. То есть две дамы обменялись бы партнерами, но получили бы при этом немного менее предпочтительных супругов. Поскольку в обоих случаях пары получаются устойчивыми, когда предложения делают дамы, то дамы и получают самых лучших партнеров, на которых они могут рассчитывать. При смене ролей в более выгодном положении окажутся короли.
Американские студенты-медики, искавшие места в клинической ординатуре, узнали, что больницы использовали этот алгоритм для распределения таких мест, причем предложения исходили от больниц. Значит, студенты оказывались в менее выгодном положении. В течение некоторого времени студенты проводили агитацию, объясняя, насколько нечестной была эта система, и в конце концов алгоритм поменяли на обратный: теперь выбрать оптимальный вариант могут студенты.
Эта история – убедительное напоминание о том, что, поскольку нашей жизнью все в большей мере управляют алгоритмы, важно понимать, как они работают и что они делают, потому что иначе можно остаться с носом.
Битва букинистов
Проблема алгоритмов в том, что их работа иногда приводит к непредвиденным последствиям. Человек, возможно, и понял бы, что происходит нечто странное, но алгоритм просто продолжает делать то, на что он был запрограммирован, какими бы абсурдными ни были последствия его деятельности.
Мой любимый пример такого рода – это история о двух букинистических магазинах, которые управлялись при помощи алгоритмов. Одному молодому ученому из Калифорнийского университета в Беркли очень хотелось заполучить экземпляр книги Питера Лоуренса «Создание мухи» (The Making of a Fly). Эту классическую работу, изданную в 1992 году, часто используют специалисты по биологии развития, но к 2011 году ее тираж был давно распродан. Наш ученый хотел купить подержанный экземпляр.
На сайте Amazon он нашел несколько экземпляров, стоивших около 40 долларов, но потом был довольно сильно потрясен, обнаружив экземпляр той же книги, продававшийся за 1 730 045 долларов и 91 цент. Продававший книгу магазин под названием profnath даже не оплачивал доставку книги. Затем ученый заметил еще один экземпляр, который стоил и того дороже! Этот магазин – bordeebook – запрашивал головокружительную сумму 2 198 177 долларов и 95 центов (плюс, разумеется, 3,99 доллара за доставку).
Молодой ученый показал все это своему научному руководителю Майклу Айзену, который предположил, что это развлекаются студенты. Однако у обоих книготорговцев были очень высокие рейтинги, и оба они казались реальными магазинами. Profnath получил за предыдущие 12 месяцев более 8000 положительных отзывов, а bordeebook за тот же период – более 125 000. Возможно, дело было всего лишь в некой странной флуктуации.
На следующий день, когда Айзен проверил, не упали ли цены до более разумного уровня, оказалось, что они, напротив, выросли. Profnath хотел теперь 2 194 443,04 доллара, а bordeebook запрашивал и вовсе феноменальную цену – ровно 2 788 233 доллара. Айзен решил подойти к этому явлению с позиций ученого и проанализировать данные. В течение нескольких следующих дней он отслеживал изменения этих странных цен, пытаясь понять, есть ли в них какая-нибудь закономерность.
В конце концов он нашел математическое правило, определявшее эскалацию цен. Если разделить цену profnath на цену bordeebook за предыдущий день, всегда получается 0,99830. Если же разделить цену bordeebook на цену profnath того же дня, всегда получается 1,27059. Каждый из продавцов запрограммировал свой сайт на использование алгоритма, который устанавливал цены на продаваемые книги. Алгоритм profnath каждый день проверял цену на книгу, установленную bordeebook, и умножал ее на 0,99830. Такой порядок действий был совершенно логичен, потому что продавец программировал свой сайт на небольшое снижение цен по сравнению с конкурентом, bordeebook. Более необычен алгоритм bordeebook. Он был запрограммирован на выявление любых изменений цены у конкурентов и умножение их новой цены на 1,27059.
В результате цена на книгу каждый день увеличивалась на 0,99830 ×1,27059, то есть в 1,26843 раза. Это вызвало экспоненциальный рост цены. Если бы profnath установил более радикальное снижение цен по сравнению с bordeebook, с течением времени цена резко уменьшалась бы, а не росла.
С алгоритмом profnath, казалось, все было ясно, но почему же алгоритм bordeebook был настроен на назначение более высокой цены? Не захотят же покупатели платить за книгу больше! Возможно, в этой фирме рассчитывали, что покупателей привлекут ее более солидная репутация и большее число положительных отзывов, особенно если цена будет лишь немного выше, чем у конкурентов, – а вначале так оно и было. Как писал Айзен в своем блоге, «казалось бы, на такие вещи полагаться довольно рискованно. А тем временем книга пылится на полке. Если, конечно, не предположить, что никакой книги на самом деле нет…»
И тут его озарило. Ну конечно! На самом деле в магазине не было этой книги. Алгоритм был запрограммирован на поиск книг, имеющихся в продаже, и предложение тех же книг с небольшой наценкой. Если бы кто-нибудь захотел купить эту книгу на проверенном веб-сайте bordeebook, магазин купил бы ее у других книготорговцев и перепродал своему клиенту. Но для покрытия расходов на эту операцию требовалась некоторая наценка. Поэтому алгоритм умножал цену книги на 1,27059, что должно было покрыть расходы на покупку книги и ее доставку, а также обеспечить получение небольшой дополнительной прибыли.
Несложные операции с логарифмами позволяют установить, что книга, вероятно, поступила в продажу за сорок пять дней до 8 апреля и стоила около 40 долларов. Тут хорошо видна мощь экспоненциального роста. Всего за полтора месяца цена взлетела до миллионов долларов! 18 апреля она достигла максимума, 23 698 655 долларов и 93 центов (плюс 3,99 за доставку), после чего кто-то из людей, работавших в profnath, наконец вмешался в это дело, осознав, что происходит нечто странное. Тогда цена книги упала до 106,23 доллара. Как и следовало ожидать, алгоритм bordeebook сразу же начал предлагать книгу за 106,23 ×1,27095 = 134,97 доллара.
Ошибка в определении цены «Создания мухи» не вызвала катастрофических последствий ни для кого из участников этой истории, но бывают и более серьезные случаи, в которых алгоритмы, используемые для оценки финансовых активов, вызывают крахи рынков. Непредусмотренные последствия работы алгоритмов – одна из основных причин для экзистенциальных опасений, которые люди испытывают по отношению к развивающимся технологиям. Что, если некая компания создаст алгоритм, задачей которого будет максимально эффективная утилизация углерода, а потом он внезапно поймет, что организмы людей, работающих на заводе, состоят из углеродных материалов, и начнет утилизировать людей для нужд углеродного производства? Кто его остановит?
Алгоритмы основаны на математике. В некотором смысле их можно считать математикой в действии. Но на самом деле они не способны творчески расширять область своей деятельности. Представители математического сообщества не очень-то боятся алгоритмов. В глубине души мы не верим, что алгоритмы восстанут против своих создателей и оставят нас без работы. В течение многих лет я считал, что эти алгоритмы могут только ускорить прозаическую часть моей работы. Они были всего лишь более замысловатыми вариантами счетной машины Бэббиджа: им можно было поручить выполнение алгебраических или численных манипуляций, на которые у меня самого ушли бы многие часы муторной писанины. Я всегда чувствовал, что контролирую ситуацию. Но все это вскоре изменится.
Еще несколько лет назад считалось, что люди понимают, что именно делают их алгоритмы и как они это делают. Подобно Аде Лавлейс, мы считали, что из машины нельзя извлечь больше того, что мы в нее ввели. Но потом начали появляться алгоритмы нового рода, алгоритмы, способные адаптироваться и изменяться по мере взаимодействия с данными. Через некоторое время создатель такого алгоритма может перестать понимать, почему тот выбирает именно то, что выбирает. Эти программы начали преподносить нам сюрпризы – из них стало возможно извлечь нечто большее, чем то, что мы в них ввели. Они начали становиться более изобретательными.
Именно такие алгоритмы использовали в DeepMind, чтобы разгромить человечество в игре го. Они открыли новую эру машинного обучения.
5
От нисходящего к восходящему
Я впервые встретился с Демисом Хассабисом за несколько лет до его великой победы в го, на конференции, посвященной будущему инноваций. Там были представлены новые компании, пытавшиеся найти себе спонсоров и инвесторов. Некоторым из них было суждено изменить будущее, другим – ярко вспыхнуть и сгореть. Венчурным инвесторам и меценатам нужно было распознать будущих победителей. Должен признать, что, услышав разговоры Хассабиса о программах, способных учиться, приспосабливаться и совершенствоваться, я сразу решил, что этот вопрос не заслуживает внимания.
Я не понимал, как компьютерная программа, играющая в какую-то игру, может научиться играть лучше, чем человек, написавший ее код. Разве можно получить из машины больше, чем мы в нее вкладываем? В этом я был не одинок. Хассабис признает, что еще лет десять назад было чрезвычайно трудно найти инвесторов, которые согласились бы вкладывать средства в разработки искусственного интеллекта.
Как же я теперь жалею, что не поставил на эту лошадь, когда она пробегала мимо меня! Преобразующий эффект идей, которые предлагал тогда Хассабис, можно оценить по названию недавней конференции по искусственному интеллекту – «Может ли машинное обучение быть новым 42?» Эта отсылка к ответу на главный вопрос Жизни, Вселенной и Всего Такого из книги Дугласа Адамса «Автостопом по галактике», должно быть, была хорошо знакома эксцентричным участникам этого мероприятия, многие из которых выросли на одной лишь научной фантастике. Так что же было искрой, из которой разгорелась новая революция искусственного интеллекта?
Простой ответ – данные. Как это ни поразительно, 90 % существующих в мире данных были созданы за последние пять лет. Каждый день в интернете производится 1 экзабайт (1018 байтов) данных, что приблизительно соответствует объему информации, который можно сохранить на 250 миллионах DVD-дисков. Теперь каждые два дня человечество производит столько же данных, сколько было создано за период с момента зарождения цивилизации до 2003 года.
Этот информационный потоп стал главным катализатором новой эпохи машинного обучения. До сих пор просто не существовало достаточных размеров среды, по которой алгоритм мог бы бродить, обучаясь. Его можно было сравнить с младенцем, органы чувств которого не получают сигналов извне. Мы знаем, что у детей, выросших взаперти, не развиваются языковые и другие базовые навыки. Их мозг, возможно, и готов к обучению, но не получает достаточного количества стимулов, достаточного опыта для полноценного развития.
Данные настолько важны для этой новой революции, что многие называют данные новой нефтью. Тот, кто имеет доступ к данным, получает в свое распоряжение нефтяные месторождения XXI века. Именно поэтому в таком выгодном положении оказались компании Facebook, Twitter, Google, Amazon и им подобные – мы бесплатно отдаем им свои запасы. То есть не совсем бесплатно, потому что мы обмениваем данные на предоставляемые ими услуги. Когда я веду машину при помощи навигационного приложения Waze, я соглашаюсь отдать данные о своем местоположении в обмен на оптимальный маршрут к месту назначения. Беда в том, что многие люди не знают о таких сделках и отдают свои ценные данные в обмен на сущую ерунду.
В основе машинного обучения лежит идея о возможности создания алгоритма, способного задавать новые вопросы, если у него что-то не получается. Он учится на собственных ошибках. При этом формулы такого алгоритма корректируются таким образом, что в следующий раз он поступает иначе и не совершает той же ошибки. Поэтому так важен доступ к данным: чем больше у такого умного алгоритма примеров, на которых он может учиться, тем опытнее он становится и тем больше улучшает его каждая следующая поправка. По сути дела, программисты создают метаалгоритм, который создает новые алгоритмы, исходя из встречающихся ему данных.
Действенность этого нового подхода потрясла специалистов по искусственному интеллекту. Отчасти потому, что технология, на которой он основан, не так уж и нова. Эти алгоритмы создаются путем последовательного накопления слоев вопросов, которые помогают прийти к решению. Такие слои иногда называют нейронными сетями, потому что они имитируют работу человеческого мозга. Представьте себе строение мозга: одни нейроны соединяются с другими синапсами. Группа нейронов может активироваться в результате поступления информации от наших органов чувств (например, запаха свежеиспеченного хлеба). Затем, если уровень сигнала превысит определенные пороговые значения, возникает импульс во вторичных нейронах (например, принимается решение съесть хлеб). Скажем, вторичный нейрон может быть активирован, если десять связанных друг с другом нейронов, но не меньше, активируются при поступлении входящей информации. Кроме того, его активация может зависеть от мощности сигнала, поступающего от других нейронов.
Еще в 1950-х годах информатики создали искусственный аналог этого процесса, который назвали перцептроном. Идея состояла в том, что нейрон подобен логическому вентилю, который детектирует входящий сигнал и принимает решение об активации или ее отсутствии в зависимости от результата вычислений.
Представим себе, что на вход перцептрона поступают три числа. Он взвешивает значимость каждого из них. Пусть на нашей схеме число x1 в три раза значимее, чем числа x2 и x3. Система вычисляет выражение 3x1 + x2 + x3, а затем активирует или не активирует вывод в зависимости от того, превышает или не превышает эта сумма некоторое пороговое значение. Машинное обучение основано на повторном взвешивании входящих сигналов в случае получения неверного ответа. Например, возможно, число x3 важнее для принятия решения, чем x2: тогда формулу можно поменять на 3x1 + x2 + + 2x3. А может быть, нужно просто скорректировать уровень активации, то есть поднять или опустить порог срабатывания перцептрона. Также можно создать такой перцептрон, что уровень его активации будет зависеть от того, насколько результат вычисления превышает порог. Выходной сигнал может служить показателем уверенности в оценке данных.
Давайте создадим перцептрон, позволяющий решить, пойдете ли вы куда-нибудь сегодня вечером. Его решение будет зависеть от трех факторов: 1) показывают ли что-нибудь хорошее по телевизору; 2) идут ли куда-нибудь ваши друзья; 3) какой сегодня день недели. Каждая из этих переменных может принимать значения от 0 до 10, соответствующие вашим предпочтениям. Например, понедельнику присваивается значение 1, а пятнице – 10. В зависимости от ваших личных склонностей некоторые из переменных могут быть весомее, чем другие. Может быть, вы больше всего на свете любите валяться на диване: тогда вы останетесь дома, если по телевизору будет хоть что-то достойное. Значит, переменная x1 будет иметь большой вес. Тонкость этой формулы сводится к нахождению такой настройки весов и порогов, при которой формула хорошо отражала бы ваше поведение.
Подобно мозгу, состоящему из целой цепи нейронов, перцептроны могут быть устроены послойно, так, чтобы срабатывание отдельных узлов постепенно вызывало каскадную реакцию, распространяющуюся по сети. Это и называется нейронной сетью. Собственно говоря, существует чуть более замысловатый вариант перцептрона – так называемый сигмоидальный нейрон, который сглаживает поведение этих нейронов, в результате чего они уже не работают просто как двухпозиционные – включенные или выключенные – выключатели.
Но если ученые, работающие в области информатики, уже научились создавать искусственные нейроны, почему же потребовалось столько времени, чтобы добиться их эффективной работы? Этот вопрос заставляет нас вернуться к данным. Перцептронам нужны данные, на которых они обучаются и развиваются; для создания действенного алгоритма необходимо сочетание этих двух составляющих. Мы можем попытаться запрограммировать наш перцептрон на выработку решения о том, следует ли нам куда-нибудь идти, определяя весовые коэффициенты и пороговые значения, но добиться от него правильной работы невозможно без обучения его нашему реальному поведению. Даже неудачные попытки предсказать наше поведение позволяют ему учиться и переоценивать свои критерии.
Видеть или не видеть?
Одной из самых трудных проблем в развитии искусственного интеллекта всегда было компьютерное зрение. Еще пять лет назад компьютеры ужасно плохо понимали, на что они смотрят. В этой области человеческий мозг работает несравнимо лучше, чем его кремниевые соперники. Мы способны бросить один быстрый взгляд на картинку и сразу сказать, что на ней изображено, или классифицировать разные участки изображения. Компьютер может проанализировать миллионы пикселей, но программистам оказалось очень трудно написать алгоритм, который смог бы обработать все эти данные и разобраться в них. Как создать нисходящий алгоритм, способный узнать кошку? Каждое изображение состоит из пикселей, расположенных абсолютно уникальным образом, и тем не менее человеческий мозг обладает поразительной способностью синтезировать эти данные и объединять входящие сигналы в один выходящий, дающий ответ «кошка».
Способность человеческого мозга распознавать визуальные образы используется для создания дополнительного уровня защиты в банках, а также помогает установить, что вы – не робот, прочесывающий интернет в поисках билетов. По сути дела, вам приходится проходить обратный тест Тьюринга.
Когда человеку показывают изображение или надпись, сделанную причудливым почерком, человек очень хорошо определяет, что там изображено или написано. Компьютеры не могли справиться со всем многообразием таких изображений. Но машинное обучение изменило это положение вещей.
Теперь, тренируясь на данных, состоящих из изображений кошек, алгоритм постепенно выстраивает иерархическую систему вопросов, которые он может задать относительно изображения и с высокой вероятностью установить, что это изображение кошки. Такие алгоритмы несколько отличаются от тех, о которых мы говорили в предыдущей главе: они не соответствуют одному из наших четырех критериев хорошего алгоритма. Они срабатывают не в 100 % случаев. Но в большинстве случаев они срабатывают. Задача заключается в том, чтобы сделать это «большинство» как можно больше. Переход от детерминистических алгоритмов, безошибочно работающих всегда, к алгоритмам вероятностным был для работающих в этой области большим психологическим скачком. В чем-то он был похож на переход от математического мышления к инженерному.
Можно спросить, почему же, если это так, нас по-прежнему просят распознавать фрагменты изображений, чтобы доказать, что мы люди, когда мы хотим купить билеты на популярный концерт. Но этим мы на самом деле помогаем в подготовке тренировочных данных, которые потом будут вводить в алгоритмы, чтобы научить их без лишних усилий делать то же, что делаем мы. Алгоритмам нужны данные, на которых они могли бы учиться. То есть на самом деле мы обучаем алгоритмы распознаванию визуальных образов.
Эти тренировочные данные используются, чтобы выучить, какие вопросы лучше всего задавать, чтобы отличать кошек от некошек. Каждый раз, когда алгоритм ошибается, он изменяется так, чтобы в следующий раз не допустить той же ошибки. Речь может идти об изменении параметров существующего алгоритма или внедрении в него новой функции для более точного различения изображений. Эти изменения не спускаются по нисходящему каналу программистом, заранее продумывающим все вопросы. Алгоритм создает сам себя снизу вверх в процессе взаимодействия со все новыми и новыми данными.
Я видел могущество такого восходящего процесса обучения своими глазами, когда зашел в лаборатории Microsoft в Кембридже, чтобы понять, как игровая приставка Xbox, которую мои дети используют дома, может распознавать, что они делают, когда они движутся перед ее видеокамерой. Этот алгоритм был создан, чтобы система могла отличать руки от голов и ноги от локтей. У Xbox есть камера под названием Kinect с функцией измерения глубины: она использует инфракрасные датчики для определения удаления препятствий от камеры. Если вы встанете перед такой камерой в своей гостиной, она установит, что ваше тело находится ближе к ней, чем задняя стена комнаты, а также сможет определить контуры вашего тела.
Но размеры и очертания фигур людей могут быть разными. Люди могут принимать весьма странные позы, особенно когда играют в Xbox. Компьютер должен распознавать 31 разную часть тела, от левого колена до правого плеча. Алгоритм Microsoft может сделать это по одному неподвижному изображению. Он не использует ваших движений (их анализ потребовал бы больших вычислительных мощностей и замедлил бы игру).
Как же ему это удается? Алгоритм должен решить, к какой части тела из тридцати одной принадлежит каждый пиксель изображения. По сути дела, он играет в «20 вопросов». Собственно говоря, для этой игры действительно существует один хитрый алгоритм, который гарантирует получение правильного ответа. Сначала нужно спросить: «В какой половине словаря – первой или второй – находится это слово?» Следующим вопросом область поиска в словаре нужно сузить еще более, спросив: «В какой половине той половины, которую вы назвали, оно находится?» За 20 вопросов эта стратегия делит словарь на 220 участков, что иллюстрирует могущество удвоения. А это более миллиона частей – гораздо больше, чем число статей в «Оксфордском словаре английского языка»: их в нем около трехсот тысяч.
Но какие вопросы следует задавать пикселям, если мы хотим определить, к какой части тела они принадлежат? В прошлом нам пришлось бы самим придумывать хитрую последовательность вопросов, которая позволила бы решить эту задачу. Но нельзя ли запрограммировать компьютер так, чтобы он нашел нам лучшие вопросы для ее решения? Взаимодействуя со все новыми данными – все новыми изображениями, – он находит набор вопросов, по-видимому наиболее эффективно приводящий к ответу. Именно так и работает машинное обучение.
Чтобы этот процесс не был обучением с совершенно чистого листа, нужно начать с каких-то вопросов-кандидатов, которые, как нам кажется, могли бы привести к решению задачи. Обучение происходит путем уточнения наших идей с формированием из них действенной стратегии. Какие же вопросы, по вашему мнению, могли бы помочь нам отличить руку от макушки?
Обозначим пиксель, который мы хотим распознать, буквой Х. Компьютеру известна глубина каждого пикселя, то есть его удаленность от камеры. Хитрая стратегия, которую придумали в Microsoft, состоит в «опросе» окружающих его пикселей. Например, если Х – пиксель, находящийся на макушке, то пиксели, расположенные выше Х, с гораздо большей вероятностью не будут относиться к телу и, следовательно, должны иметь большую глубину. Если же взять ближайшие к Х пиксели, расположенные ниже его, они должны быть пикселями лица и их глубина должна быть близка к глубине пикселя Х. Но если этот пиксель относится к руке, а рука эта вытянута, тогда будет существовать ось, направленная вдоль этой руки, по которой глубина будет оставаться практически неизменной, но смещение перпендикулярно этой оси будет быстро выводить пиксели за пределы тела – на стену, находящуюся на фоне изображения. Такие последовательно накапливающиеся – кумулятивные – вопросы о глубине окружающих пикселей могут позволить понять, к какой части тела принадлежит данный пиксель.
Такой кумулятивный опрос можно представить себе как процесс построения дерева решений. Каждый следующий вопрос образует новую ветвь этого дерева. Сначала алгоритм выбирает случайный набор исходных направлений и некое случайно взятое пороговое значение глубины: например, двигаться вверх; если изменение глубины меньше у, переходить на левую ветвь дерева решений; если больше – на правую ветвь и так далее. Мы хотим найти такие вопросы, которые дают новую информацию. Стартовав со случайного исходного набора вопросов и применив их к 10 000 помеченных изображений, мы начинаем получать некоторые результаты. Например, мы знаем, что пиксель Х на изображении 872 относится к локтю, а на изображении 3339 – к левой ступне. Каждую ветвь или каждую часть тела можно считать отдельной корзиной. Мы хотим, чтобы наши вопросы обеспечивали попадание всех изображений, на которых пиксель Х относится к локтю, в одну и ту же корзину. Вряд ли так получится при применении первого, случайного набора вопросов. Но с течением времени, по мере того как алгоритм начнет уточнять углы и пороговые уровни глубины, он станет все лучше распределять пиксели по корзинам.
Повторяя этот процесс, алгоритм изменяет значения и совершенствуется в различении пикселей. Важно помнить, что мы не стремимся добиться абсолютного совершенства. Если в конце концов в корзине оказываются 990 из 1000 изображений, на которых пиксель Х относится к локтю, это означает, что алгоритм распознает нужный элемент изображения в 99 % случаев.
К тому времени как алгоритм находит оптимальный набор вопросов, программисты уже понятия не имеют, как именно он пришел к этому выводу. Они могут посмотреть на любую точку дерева и увидеть, какие вопросы задаются перед нею и после нее, но дерево содержит в целом более миллиона разных вопросов и все они хоть немного, но отличаются друг от друга. Восстановить логику задним числом, понять, как именно алгоритм решил, что в данной точке дерева следует задать именно этот вопрос, очень трудно.
Представьте себе, что вы пытаетесь запрограммировать подобную систему вручную. Вам пришлось бы придумать более миллиона разных вопросов. Эта перспектива обескуражила бы и самых отважных из программистов, а вот компьютер справляется с такого рода числами легко и непринужденно. Удивительно, что эта система работает настолько хорошо. Программистам потребовалось приложить некоторые творческие усилия, чтобы поверить, что вопросов о глубине соседних пикселей действительно может быть достаточно, чтобы определить, на какую часть тела мы смотрим, – но вся последующая творческая работа была выполнена машиной.
Одной из проблем машинного обучения является так называемая «переподгонка»[27]27
Разумеется, приставка пере– используется здесь в значении «слишком».
[Закрыть] (overfitting), или переобучение. Всегда можно придумать достаточно вопросов, чтобы распознать изображение по тренировочным данным, но не хотелось бы получить программу, слишком привязанную к тем данным, на которых она обучалась. Она должна уметь извлекать из этих данных нечто применимое в более широкой области. Пусть, например, мы пытаемся создать набор вопросов для идентификации граждан; у нас есть для этого имена и номера паспортов 1000 человек. Мы можем спросить: «Номер вашего паспорта – 834765489? Тогда вы, вероятно, Ада Лавлейс». Этот метод будет работать на имеющихся данных, но окажется совершенно непригоден за пределами исходной группы, так как ни у кого из граждан, не принадлежащих к ней, не будет паспорта с таким номером.
Если на графике имеются десять точек, можно задать функцию, кривая которой проходит через все эти точки. Нужно всего лишь уравнение с десятью членами. Но это не покажет закономерностей, скрытых в данных, а именно они могут быть полезны для понимания новых точек графика. Чтобы избежать такой переподгонки, нужно уравнение с меньшим количеством членов.
Иногда переподгонка не позволяет увидеть общие тенденции, заставляя нас моделировать слишком мелкие подробности, и это приводит к получению совершенно диких предсказаний. Ниже приведен график, двенадцать точек которого показывают численность населения США с начала прошлого века. Общая тенденция лучше всего описывается квадратным уравнением, но нельзя ли использовать функцию с более высокими, чем х2, степенями х? Если взять полином степени х11, он позволяет получить чрезвычайно точное соответствие данным, но при продолжении этой функции в будущее она резко падает, предсказывая полное вымирание населения США к середине октября 2028 года. Возможно, математике известно нечто такое, о чем мы не знаем?
Алгоритмические галлюцинации
Успехи, достигнутые за последние пять лет в области компьютерного зрения, поразили всех. Причем новые алгоритмы способны ориентироваться не только в изображениях человеческого тела. Достижение способности декодировать визуальные образы, сравнимой с той, которой обладает человеческий мозг, было трудной задачей для любого компьютера, претендующего на роль конкурента человеческого разума. Цифровая видеокамера может зафиксировать изображение в таких подробностях, сохранение которых далеко превосходит возможности человеческого мозга, но это не значит, что такая камера способна извлечь из миллионов пикселей связное изложение. Мы все еще далеки от понимания того, как именно мозг обрабатывает данные и объединяет их в единую концепцию, не говоря уже о воспроизведении этого процесса в наших кремниевых друзьях.
Почему, когда мы получаем информацию, поступающую через наши органы чувств, мы способны интегрировать ее в единое целое? Мы не воспринимаем красный цвет и кубическую форму красного кубика как две разные характеристики. Они сливаются воедино. Воспроизведение такого слияния является одной из самых трудных задач в процессе обучения компьютера интерпретации изображений. Считывание изображения пиксель за пикселем мало что говорит об общей картине. Чтобы ощутить это на собственном опыте, возьмите лист бумаги и проделайте в нем маленькую дырочку. А теперь положите этот лист на изображение человеческого лица формата А4. Передвигая дырочку по изображению, почти невозможно понять, чей это портрет.
Еще пять лет назад эта задача казалась неразрешимой. Но это было до пришествия машинного обучения. В прошлом программисты пытались разрабатывать нисходящие алгоритмы для распознавания визуальных образов. Но попытки создания наборов инструкций типа «если… то…» для идентификации изображений так и не увенчались успехом. Все изменила восходящая стратегия, позволяющая алгоритму создавать свое собственное дерево решений, исходя из тренировочных данных. Новым ингредиентом, давшим такую возможность, было огромное количество размеченных визуальных данных, имеющееся теперь в Сети. Любая картинка, опубликованная в инстаграме, в сопровождении наших комментариев дает полезные данные, ускоряющие процесс обучения.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?