знания из конкретных данных, поскольку нам уже известно многое, в первую очередь потому, что мы уже – от природы и благодаря эволюции – обладаем множеством базовых абстрактных концепций. Подобно ученым, мы можем использовать эти понятия для формулирования гипотез о мире. Затем, не пытаясь выводить шаблоны из необработанных данных, мы можем делать предположения относительно того, каковы должны быть эти данные, если указанные гипотезы верны. Наряду с Платоном такой подход отстаивали «рационалистические» философы и психологи, скажем, Декарт и Ноам Хомский[166].
Вот пример из повседневной жизни, иллюстрирующий разницу между двумя подходами. Возьмем проблему спама. Данные представляют собой длинный несортированный список сообщений в почтовом ящике. Очевидно, что часть этих сообщений содержательны, тогда как остальные суть откровенный спам. Как можно отличить одни от других на основании имеющихся данных?
Рассмотрим сначала подход «снизу вверх». Вы замечаете, что спам-сообщения, как правило, имеют определенные особенности: у них множество адресатов, они приходят будто бы из Нигерии, обещают призы в миллион долларов или рекламируют виагру. Проблема в том, что и содержательные сообщения могут соответствовать этим признакам. Если изучить достаточное количество образцов спама и обыкновенных писем, мы увидим, что дело не только в отдельных признаках, но и в том, что эти признаки, как правило, комбинируются (письмо из Нигерии с посулом миллиона долларов – это спам). Фактически же могут обнаружится некие высокоуровневые корреляции, отличающие спам-сообщения от содержательных – допустим, определенная схема орфографических ошибок или группировка IP-адресов. Выявление таких шаблонов позволяет отфильтровывать спам.
Подход «снизу вверх» в машинном обучении работает именно так. Ученику предлагаются миллионы образцов, каждый с определенным набором признаков и помеченный как спам (или как-то иначе). Компьютер далее может составить общее правило выявления спама, отталкиваясь от сколь угодно малых отличий.
Но что насчет подхода «сверху вниз»? Я получаю электронное письмо от редактора «Журнала клинической биологии». Там ссылаются на одну из моих предыдущих статей и сообщают, что хотели бы опубликовать новую статью моего авторства. Как видим, ни Нигерии, ни виагры, ни миллиона долларов; письмо не содержит никаких «внешних» признаков спама. Но, используя знания, которыми я располагаю, и абстрактно размышляя о процессе порождения спама, я могу счесть это письмо подозрительным.
Во-первых, мне известно, что спамеры пытаются выманивать у людей деньги, уповая на человеческую алчность.
Во-вторых, мне известно, что легально зарегистрированные журналы «открытого доступа»[167] сегодня практикуют покрытие расходов за счет платы за публикации (с авторов, а не с подписчиков); вдобавок я не занимаюсь клинической биологией ни в каком виде.
Все вместе позволяет мне выдвинуть гипотезу о происхождении и сути этого письма. Его рассылают, чтобы побудить ученых платить за публикации в сомнительных журналах. То есть передо мной тот же самый откровенный спам, пусть даже он лишен внешних признаков спама. Я могу сделать такой вывод лишь на основании одного образца, и при этом ничто не мешает мне продолжить проверку моей гипотезы, скажем, погуглить упомянутого «редактора» журнала.
В компьютерных терминах я начала с «генеративной модели», включающей абстрактные понятия, такие как алчность и обман, и описала процесс, подразумевающий мошенничество посредством электронной почты. Это описание дает возможность обнаруживать классический «нигерийский» спам, а также выявлять многие другие разновидности спама. Когда же приходит электронное письмо из журнала, разворачивается обратный процесс: «Это письмо, похоже, того типа, который, скорее всего, будет спамом».
Новая шумиха вокруг ИИ связана с тем, что исследователи искусственного интеллекта недавно разработали эффективные версии обоих методик познания. Но в самих методиках нет ничего нового.
Глубинное обучение снизу вверх
В 1980-х годах ученые-компьютерщики придумали оригинальный способ научить компьютеры выявлять закономерности в данных: речь о коннекционистской[168], или нейросетевой архитектуре (определение «нейро» до сих пор следует трактовать как метафору). В 1990-х годах все как будто успокоилось, но сравнительно недавно этот подход реанимировали – благодаря методикам глубинного обучения наподобие Google DeepMind.
Например, можно задать программе глубинного обучения набор изображений в категории «кошка», другой набор в категории «дом» и т. д. Программа может обнаружить признаки различения двух наборов изображений и использовать эту информацию для правильной классификации новых картинок. Особая техника машинного обучения, так называемое обучение без учителя, предусматривает выявление закономерностей в массивах данных без каких-либо категорий: машина просто ищет группы признаков (ученые в таких случаях говорят о факторном анализе). При глубинном обучении эти процедуры воспроизводятся на разных уровнях. Отдельные программы способны даже обнаруживать релевантные признаки в необработанных данных (пиксели и звуки); компьютер может начать с выявления в необработанных изображениях шаблонов, соответствующих углам и линиям, а затем искать в этих шаблонах другие, соответствующие граням, и т. д.
Другой пример подхода «снизу вверх», имеющий длинную историю – это обучение с подкреплением. В 1950-х годах Б. Ф. Скиннер, отталкиваясь от исследований Джона Уотсона[169], сумел, как хорошо известно, «запрограммировать» голубей на выполнение сложных действий – скажем, сопровождать ракеты «воздух – земля» до цели (чем ни военное применение ИИ?) – благодаря тщательно проработанной схеме поощрений и наказаний. Его базовая идея заключалась в том, что поощряемые действия будут повторяться и далее, тогда как караемых действий станут избегать, и в итоге это приведет к формированию желаемого поведения. Даже во времена Скиннера понимали, что регулярное повторение элементарных процессов может обеспечить комплексное поведение. Компьютеры предназначены для многократного выполнения простых операций в масштабах, непредставимых для человеческого воображения, и таким вот образом вычислительные системы могут обучиться поразительно сложным навыкам.
К примеру, исследователи проекта Google DeepMind использовали комбинацию глубинного обучения и обучения с подкреплением, чтобы научить компьютер играть в видеоигры для «Атари»[170]. Машина ничего не знала об этих играх. Она действовала случайным образом, фиксируя картинку на экране в конкретный момент времени и оценивая количество набранных очков. Глубинное обучение помогало интерпретировать изображения на экране, а обучение с подкреплением вознаграждало систему за набранные баллы. В итоге компьютер научился очень хорошо играть в некоторые игры, но полностью провалился в освоении других, хотя люди без труда осваивали как первые, так и вторые.
Подобная комбинация глубинного обучения и обучения с подкреплением позволила добиться успеха в проекте AlphaZero компании DeepMind: эта программа сумела взять верх над игроками людьми как в шахматах, так и в го, располагая лишь базовыми знаниями правил и некоторыми способностями к планированию. У AlphaZero имеется еще одна любопытная особенность: программа обучается, разыгрывая сотни миллионов партий сама с собой. При этом она вычленяет ошибки, ведущие к поражениям, и повторяет и совершенствует тактики, ведущие к победам. Такие системы, наряду с теми, которые опираются на так называемые генеративные состязательные сети, одновременно анализируют и порождают данные.
Когда в вашем распоряжении вычислительные