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

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.



Главная
Все книги
Назад
Читать: Идиот или гений? Как работает и на что способен искусственный интеллект - Мелани Митчелл на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Хотя эти символы обозначают знакомые людям понятия – “миссионеры”, “людоеды”, “лодка”, “левый берег”, – запускающий программу компьютер, конечно, не понимает значения символов. Можно заменить параметр “миссионеры” на “z372b” или любой другой бессмысленный набор знаков, и программа будет работать точно так же. Отчасти поэтому она называется Универсальным решателем задач. Компьютер определяет “значение” символов в зависимости от того, как их можно комбинировать и соотносить друг с другом и как ими можно оперировать.

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

Субсимволический ИИ: перцептроны

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

Одной из первых субсимволических ИИ-программ, созданных по модели мозга, стал перцептрон, изобретенный в конце 1950-х годов психологом Фрэнком Розенблаттом[29]. Сегодня термин “перцептрон” кажется заимствованным из научной фантастики пятидесятых годов (как мы увидим, вскоре за ним последовали “когнитрон” и “неокогнитрон”), но перцептрон стал важной вехой развития ИИ и может считаться авторитетным прадедом самого успешного инструмента современного ИИ, глубоких нейронных сетей.

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

С точки зрения специалиста по информатике (или, как в случае с Розенблаттом, психолога), обработку информации нейронами можно смоделировать в компьютерной программе – перцептроне, – которая преобразует много численных входных сигналов в один выходной сигнал. Аналогия между нейроном и перцептроном показана на рис. 1. На рис. 1A мы видим нейрон с ветвистыми дендритами (волокнами, которые проводят входящие импульсы в клетку), телом клетки и аксоном (или выводным каналом). На рис. 1B изображен простой перцептрон. Как и нейрон, перцептрон суммирует все входящие сигналы. Если итоговая сумма равняется порогу перцептрона или превышает его, перцептрон выдает значение 1 (“передает сигнал”); в противном случае он выдает значение 0 (“не передает сигнал”). Чтобы смоделировать различную силу связей нейрона, Розенблатт предложил присваивать каждому входному сигналу перцептрона численный вес и умножать входной сигнал на его вес, прежде чем прибавлять к сумме. Порог перцептрона – это число, определяемое программистом (или, как мы увидим, узнаваемое самим перцептроном).


Рис. 1. A: нейрон в мозге; В: простой перцептон

Иными словами, перцептрон – это простая программа, которая принимает решение “да или нет” (1 или 0) в зависимости от того, достигает ли сумма взвешенных входных сигналов порогового значения. Вероятно, вы тоже время от времени принимаете такие решения в жизни. Например, вы узнаете мнение нескольких друзей о конкретном фильме, но вкусам одних друзей доверяете больше, чем вкусам других. Если сумма “дружеских восторгов” – при большем весе мнений тех друзей, которым вы доверяете больше, – достаточно высока (то есть превышает некоторый неосознанный порог), вы решаете посмотреть фильм. Именно так перцептрон выбирал бы фильмы к просмотру, если бы у него были друзья.

Вдохновленный сетями нейронов в мозге, Розенблатт предположил, что сети перцептронов могут выполнять визуальные задачи, например справляться с распознаванием объектов и лиц. Чтобы понять, как это может работать, давайте изучим, как с помощью перцептрона решить конкретную визуальную задачу: распознать рукописные цифры вроде тех, что показаны на рис. 2.

Давайте сделаем перцептрон детектором восьмерок – в таком случае он будет выдавать единицу, если входным сигналом служит изображение цифры 8, и ноль, если на входном изображении будет любая другая цифра. Чтобы создать такой детектор, нам нужно (1) понять, как превратить изображение в набор численных входных сигналов, и (2) определить численные значения весов и порог перцептрона для формирования верного выходного сигнала (1 для восьмерок и 0 для других цифр). Я рассмотрю эту задачу более подробно, поскольку многие из этих принципов понадобятся нам при обсуждении нейронных сетей и их применения в компьютерном зрении.


Рис. 2. Примеры рукописных цифр

Входные сигналы нашего перцептрона

На рис. 3A показана увеличенная рукописная восьмерка. Каждый квадрат координатной сетки – это пиксель с численным значением “насыщенности”: насыщенность белых квадратов равняется 0, насыщенность черных – 1, а насыщенность серых имеет промежуточное значение. Допустим, все изображения, которые мы даем перцептрону, подогнаны к единому размеру – 18 × 18 пикселей. На рис. 3B показан перцептрон для распознавания восьмерок. У этого перцептрона 324 (то есть 18 × 18) входных сигнала, каждый из которых соответствует одному пикселю из сетки 18 ×18. При получении изображения, подобного показанному на рисунке 3A, каждый входной сигнал настраивается на насыщенность соответствующего пикселя. Каждому входному сигналу также присваивается свой вес (на рисунке не показан).


Рис. 3. Иллюстрация перцептрона, который распознает рукописные восьмерки. Каждый пиксель на изображении 18 × 18 пикселей соответствует одному входному сигналу перцептрона, что дает 324 (= 18 × 18) входных сигнала.

Как узнать веса и порог перцептрона

В отличие от символической системы Универсального решателя задач, которую я описала ранее, перцептрон не имеет очевидных правил для выполнения задачи, а все его “знания” закодированы в числах, определяющих веса входных сигналов и пороговое значение. В ряде статей Розенблатт показал, что при корректных весах и пороговом значении такой перцептрон, как на рисунке 3B, вполне неплохо справляется с такими задачами на восприятие, как распознавание простых рукописных цифр. Но как именно определить корректные веса и пороговое значение для конкретной задачи? И снова Розенблатт предложил ответ, навеянный работой мозга: перцептрон должен сам узнавать эти значения. Но каким образом? Вторя популярным в то время теориям бихевиоральной психологии, Розенблатт считал, что перцептроны должны обучаться, накапливая условный рефлекс. Отчасти вдохновленный работой бихевиориста Б. Ф. Скиннера, который обучал крыс и голубей выполнять задачи с помощью положительного и отрицательного подкрепления, Розенблатт полагал, что перцептрон следует обучать на примерах: его нужно вознаграждать, когда он выдает верный результат, и наказывать, когда он ошибается. Теперь такая форма обучения в ИИ называется обучением с учителем. В ходе обучения система получает пример и генерирует выходной сигнал, а затем получает “сигнал от учителя”, который показывает, насколько выходной сигнал системы отличается от верного. Затем система использует этот сигнал, чтобы скорректировать веса и пороговое значение.

Концепция обучения с учителем – ключевой элемент современного ИИ, поэтому ее стоит разобрать подробнее. Как правило, обучение с учителем требует большого набора положительных (скажем, коллекции восьмерок, написанных разными людьми) и отрицательных (скажем, коллекции других рукописных цифр, среди которых нет восьмерок) примеров. Каждый пример размечается человеком, который присваивает ему определенную категорию (метку) – здесь это “восьмерка” и “не восьмерка”. Метка применяется в качестве контрольного сигнала. Некоторые положительные и отрицательные примеры используются для тренировки системы и формируют тренировочное множество. Оставшиеся примеры – тестовое множество – используются для оценки работы системы после обучения, чтобы понять, насколько хорошо она научилась правильно отвечать на запросы в целом, а не только на обучающие примеры.

Вероятно, самым важным в информатике стоит признать понятие “алгоритм”. Оно обозначает “рецепт” со списком шагов, которые компьютер может предпринять для решения конкретной задачи. Главным вкладом Фрэнка Розенблатта в ИИ стало создание особого алгоритма, названного алгоритмом обучения перцептрона. С помощью этого алгоритма перцептрон можно научить на примерах определять веса и пороговое значение для получения верных ответов. Вот как он работает: сначала весам и порогу присваиваются случайные значения в диапазоне от –1 до 1. В нашем примере первому входному сигналу может быть присвоен вес 0,2, второму – вес –0,6 и так далее. Пороговым значением может стать 0,7. С генерацией начальных значений без труда справится компьютерная программа, называемая генератором случайных чисел.

Теперь мы можем приступать к процессу обучения. Перцептрон получает первый обучающий пример, не видя метку с верной категорией. Перцептрон умножает каждый входной сигнал на его вес, суммирует результаты, сравнивает сумму с пороговым значением и выдает либо 1, либо 0. Здесь выходной сигнал 1 означает, что перцептрон распознал восьмерку, а выходной сигнал 0 – что он распознал “не восьмерку”. Далее в процессе обучения выходной сигнал перцептрона сравнивается с верным ответом, который дает присвоенная человеком метка (“восьмерка” или “не восьмерка”). Если перцептрон прав, веса и пороговое значение не меняются. Если же перцептрон ошибся, веса и пороговое значение слегка корректируются так, чтобы сумма входных сигналов в этом тренировочном примере оказалась ближе к нужной для верного ответа. Более того, степень изменения каждого веса зависит от соответствующего значения входного сигнала, то есть вина за ошибку в основном возлагается на входные сигналы, которые сильнее других повлияли на результат. Например, в восьмерке на рис. 3A главным образом на результат повлияли бы более насыщенные (здесь – черные) пиксели, в то время как пиксели с нулевой насыщенностью (здесь – белые) не оказали бы на него никакого влияния. (Для любопытных читателей я описала некоторые математические подробности в примечании[30].)

Все шаги повторяются на каждом из обучающих примеров. Процесс обучения много раз проходится по всем обучающим примерам, слегка корректируя веса и пороговое значение при каждой ошибке перцептрона. Обучая голубей, психолог Б. Ф. Скиннер обнаружил, что учиться лучше постепенно, совершая множество попыток, и здесь дело обстоит точно так же: если слишком сильно изменить веса и пороговое значение после одной попытки, система может научиться неправильному правилу (например, чрезмерному обобщению, что “нижняя и верхняя половины восьмерки всегда равны по размеру”). После множества повторов каждого обучающего примера система (как мы надеемся) окончательно определяет набор весов и пороговое значение, при которых перцептрон дает верные ответы для всех обучающих примеров. На этом этапе мы можем проверить перцептрон на примерах из тестового множества и увидеть, как он справляется с распознаванием изображений, не входивших в обучающий набор.

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

Розенблатт и другие исследователи показали, что сети перцептронов можно научить выполнять относительно простые задачи на восприятие, а еще Розенблатт математически доказал, что теоретически достаточно обученные перцептроны могут безошибочно выполнять задачи определенного, хотя и строго ограниченного класса. При этом было непонятно, насколько хорошо перцептроны справляются с более общими задачами ИИ. Казалось, эта неопределенность не мешала Розенблатту и его спонсорам из Научно-исследовательского управления ВМС США делать до смешного оптимистичные прогнозы о будущем алгоритма. Освещая пресс-конференцию Розенблатта, состоявшуюся в июле 1958 года, газета The New York Times написала:

Сегодня ВМС продемонстрировали зародыш электронного компьютера, который, как ожидается, сможет ходить, говорить, видеть, писать, воспроизводить себя и сознавать свое существование. Было сказано, что в будущем перцептроны смогут узнавать людей, называть их по именам и мгновенно переводить устную речь и тексты с одного языка на другой[31].

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

Поскольку “знания” перцептрона состоят из набора чисел, а именно – определенных в ходе обучения весов и порогового значения, – сложно выявить правила, которые перцептрон использует при выполнении задачи распознавания. Правила перцептрона не символические: в отличие от символов Универсального решателя задач, таких как ЛЕВЫЙ-БЕРЕГ, #МИССИОНЕРОВ и ПЕРЕМЕСТИТЬ, веса и порог перцептрона не соответствуют конкретным понятиям. Довольно сложно преобразовать эти числа в понятные людям правила. Ситуация существенно усложняется в современных нейронных сетях с миллионами весов.

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

Ограниченность перцептронов

После Дартмутского семинара 1956 года доминирующее положение в сфере ИИ занял символический лагерь. В начале 1960-х годов, пока Розенблатт увлеченно работал над перцептроном, большая четверка “основателей” ИИ, преданных символическому лагерю, создала авторитетные – и прекрасно финансируемые – лаборатории ИИ: Марвин Минский открыл свою в MIT, Джон Маккарти – в Стэнфорде, а Герберт Саймон и Аллен Ньюэлл – в Университете Карнеги – Меллона. (Примечательно, что эти университеты по сей день входят в число самых престижных мест для изучения ИИ.) Минский, в частности, полагал, что моделирование мозга, которым занимался Розенблатт, ведет в тупик и ворует деньги у более перспективных проектов символического ИИ[32]. В 1969 году Минский и его коллега по MIT Сеймур Пейперт опубликовали книгу “Перцептроны”[33], в которой математически доказали, что существует крайне ограниченное количество типов задач, поддающихся безошибочному решению перцептроном, а алгоритм обучения перцептрона не сможет показывать хорошие результаты, когда задачи будут требовать большого числа весов и порогов.

Минский и Пейперт отметили, что если перцептрон усовершенствовать, добавив дополнительный “слой” искусственных нейронов, то количество типов задач, которые сможет решать устройство, значительно возрастет[34]. Перцептрон с таким дополнительным слоем называется многослойной нейронной сетью. Такие сети составляют основу значительной части современного ИИ, и я подробно опишу их в следующей главе. Пока же я отмечу, что в то время, когда Минский и Пейперт писали свою книгу, многослойные нейронные сети еще не были широко изучены, в основном потому что не существовало общего алгоритма, аналогичного алгоритму обучения перцептрона, для определения весов и пороговых значений.

Ограниченность простых перцептронов, установленная Минским и Пейпертом, была уже известна людям, работавшим в этой сфере[35]. Сам Фрэнк Розенблатт много работал с многослойными перцептронами и признавал, что их сложно обучать[36]. Но последний гвоздь в крышку гроба перцептронов вогнала не математика Минского и Пейперта, а их рассуждения о многослойных нейронных сетях:

[Перцептрон] обладает многими свойствами, привлекающими внимание: линейность, интригующая способность к обучению, очевидная простота перцептрона как разновидности устройства для параллельных вычислений. Нет никаких оснований предполагать, что любое из этих достоинств распространяется на многослойный вариант. Тем не менее мы считаем важной исследовательской задачей разъяснить (или отвергнуть) наше интуитивное заключение о том, что обсуждаемое расширение бесплодно[37].

Ой-ой! Сегодня последнее предложение этого отрывка, возможно, сочли бы “пассивно-агрессивным”. Такие негативные спекуляции отчасти объясняют, почему в конце 1960-х финансирование исследований нейронных сетей прекратилось, хотя государство продолжало вливать немалые деньги в символический ИИ. В 1971 году Фрэнк Розенблатт утонул в возрасте сорока трех лет. Лишившись главного идеолога и большей части государственного финансирования, исследования перцептронов и других систем субсимволического ИИ практически остановились. Ими продолжали заниматься лишь несколько отдельных академических групп.

Зима ИИ

Тем временем поборники символического ИИ писали заявки на гранты, обещая скорые прорывы в таких областях, как понимание речи и языка, построение логических выводов на основе здравого смысла, навигация роботов и беспилотные автомобили. К середине 1970-х годов были успешно развернуты некоторые узкие экспертные системы, но обещанных прорывов общего характера так и не произошло.

Это не укрылось от внимания финансирующих организаций. Британский Совет по научным исследованиям и Министерство обороны США подготовили отчеты, в которых дали крайне отрицательную оценку прогрессу и перспективам исследований ИИ. В частности, в британском отчете отмечалось, что некоторые надежды вселяет продвижение в области специализированных экспертных систем – “программ, написанных для работы в узких сферах, где программирование полностью принимает во внимание человеческий опыт и человеческие знания в соответствующей области”, – но подчеркивалось, что текущие результаты работы “над программами общего назначения, ориентированными на копирование механизма решения широкого спектра задач с человеческого [мозга], удручают. Вожделенная долгосрочная цель исследований в сфере ИИ кажется все такой же далекой”[38]. После этого отчета государственное финансирование исследований ИИ в Великобритании резко сократилось, Министерство обороны США тоже существенно урезало бюджеты базовых исследований ИИ.

Это стало одним из первых примеров повторяющегося цикла взлетов и падений ИИ. Как правило, двухфазный цикл развивается следующим образом. Фаза 1: Новые идеи рождают большой оптимизм в научном сообществе. Появляются прогнозы о грядущих прорывах в сфере ИИ, которые часто приводят к шумихе в прессе. Государственные структуры и частные инвесторы выделяют средства на проведение научных исследований и организацию коммерческих стартапов. Фаза 2: Обещанные прорывы не происходят или оказываются гораздо скромнее, чем предполагалось. Приток средств от государственных и частных инвесторов сокращается. Стартапы сворачивают деятельность, исследования ИИ замедляются. Такая схема прекрасно знакома ИИ-сообществу: за “весной ИИ” следуют раздутые обещания и шумиха в прессе, а затем наступает “зима ИИ”. В той или иной степени это происходит циклично с периодичностью от пяти до десяти лет. Когда в 1990 году я окончила университет, сфера ИИ переживала одну из зим и заработала такую плохую репутацию, что мне даже посоветовали не упоминать об искусственном интеллекте в своем резюме.

Простые вещи делать сложно

Холодные зимы ИИ преподали специалистам важные уроки. Самый простой из них через пятьдесят лет после Дартмутского семинара сформулировал Джон Маккарти: “ИИ оказался сложнее, чем мы думали”[39]. Марвин Минский отметил, что исследования ИИ выявили парадокс: “Простые вещи делать сложно”. Изначально исследователи ИИ поставили перед собой цель создать компьютеры, которые смогут беседовать с нами на естественном языке, описывать увиденное своими глазами-камерами и осваивать новые концепции, имея всего несколько примеров – то есть делать все то, с чем без труда справляются маленькие дети, – но, как ни странно, ИИ оказалось тяжелее заниматься этими “простыми вещами”, чем диагностировать сложные болезни, обыгрывать чемпионов по шахматам и го и решать запутанные алгебраические задачи. Как отметил далее Минский, “в целом мы хуже всего понимаем то, с чем наш разум справляется лучше всего”[40]. Попытка создать искусственный интеллект, по меньшей мере, помогла нам понять, как сложно и изощренно устроен наш разум.

Глава 2

Нейронные сети и подъем машинного обучения

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

Многослойные нейронные сети

Говоря простым языком, сеть – это набор элементов, разными способами связанных друг с другом. Нам всем знакомы социальные сети, где элементами выступают люди, и компьютерные сети, где элементами выступают, соответственно, компьютеры. Элементами нейронных сетей являются искусственные нейроны, подобные перцептронам, которые я описывала в предыдущей главе.

На рис. 4 я изобразила схему простой многослойной нейронной сети, разработанной для распознавания рукописных цифр. В сети есть два столбца (слоя) перцептроноподобных искусственных нейронов (обозначены кружками). Для простоты (и, вероятно, к облегчению нейробиологов, читающих эти строки) я буду называть искусственные нейроны “ячейками”. Как и настроенный на обнаружение восьмерок перцептрон из главы 1, изображенная на рис. 4 сеть имеет 324 (18 × 18) входных сигнала, каждый из которых сообщает о насыщенности соответствующего пикселя на исходном изображении. Однако, в отличие от перцептрона, в этой сети помимо слоя из десяти выходных ячеек есть слой из трех так называемых скрытых ячеек. Каждая выходная ячейка соответствует одной из возможных категорий цифр.


Рис. 4. Двухслойная нейронная сеть для распознавания рукописных цифр

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

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

Изображенная на рис. 4 сеть называется “многослойной”, поскольку имеет два слоя ячеек (скрытых и выходных) вместо одного слоя выходных сигналов. Теоретически многослойная сеть может иметь несколько слоев скрытых ячеек, и сети, имеющие более одного слоя скрытых ячеек, называются глубокими сетями. “Глубина” сети определяется количеством ее скрытых слоев. Я подробнее расскажу о глубоких сетях в последующих главах.

Подобно перцептронам, каждая ячейка здесь умножает каждый входной сигнал на вес связи этого входного сигнала, а затем суммирует результаты. В отличие от перцептрона, ячейка здесь не просто “выдает сигнал” или “не выдает сигнал” (то есть выдает 1 или 0) в зависимости от порогового значения, а использует полученную сумму, чтобы вычислить число между 0 и 1, которое называется “активацией” единицы. Если единица получает маленькую сумму, ее активация близка к 0, а если сумма большая, активация близка к 1. (Для интересующихся я описала некоторые математические подробности в примечании[41].)

Чтобы обработать такое изображение, как рукописная восьмерка с рис. 4, сеть проводит вычисления слой за слоем, слева направо. Каждая скрытая ячейка вычисляет свое значение активации, затем эти значения активации становятся входными сигналами для выходных ячеек, которые вычисляют собственную активацию. В сети с рис. 4 активацию выходной единицы можно считать степенью уверенности сети в том, что она “видит” соответствующую цифру, а категорию цифры с самой высокой степенью уверенности – ответом сети, или классификацией.

Теоретически многослойная нейронная сеть может научиться использовать свои скрытые ячейки так, чтобы распознавать более абстрактные характеристики (например, визуальные формы, такие как верхний и нижний “кружки” рукописной восьмерки) вместо простых характеристик (например, пикселей), закодированных во входном сигнале. Как правило, заранее сложно понять, сколько скрытых слоев и сколько скрытых ячеек в каждом слое необходимо, чтобы сеть хорошо справлялась с поставленной задачей. Большинство исследователей нейронных сетей находит оптимальные настройки методом проб и ошибок.

Обучение методом обратного распространения ошибки

В книге “Перцептроны” Минский и Пейперт усомнились в возможности создания успешного алгоритма для определения весов в многослойной нейронной сети. Во многом именно из-за их скепсиса (и сомнений других специалистов из лагеря символического ИИ) финансирование исследований нейронных сетей в 1970-х резко сократилось. Однако, несмотря на негативный эффект книги Минского и Пейперта, небольшой костяк исследователей нейронных сетей продолжил работу, особенно в сфере когнитивной психологии Фрэнка Розенблатта. К концу 1970-х и началу 1980-х годов некоторые исследовательские группы явным образом опровергли предположения Минского и Пейперта о “бесплодности” многослойных нейронных сетей, разработав для них общий алгоритм обучения – метод обратного распространения ошибки для тренировки этих сетей.

Как следует из названия, метод обратного распространения ошибки состоит в том, чтобы взять ошибку, наблюдаемую в выходных ячейках (например, высокую степень уверенности в неверной цифре у сети на рис. 4) и “распространить” вину за эту ошибку в обратном порядке (на рис. 4 в направлении справа налево), распределив вину по ячейкам сети. Таким образом метод обратного распространения ошибки определяет, в какой степени нужно скорректировать каждый из весов для снижения погрешности. В ходе обучения нейронные сети просто постепенно корректируют веса связей так, чтобы погрешность каждого выходного сигнала на всех тренировочных примерах оказалась как можно ближе к 0. Хотя математика метода обратного распространения ошибки выходит за рамки моего рассказа, я описала некоторые тонкости в примечании[42].

Метод обратного распространения ошибки будет работать (по крайней мере теоретически) вне зависимости от того, сколько в вашей нейронной сети входных сигналов, скрытых ячеек и выходных ячеек. Хотя нет математической гарантии, что метод обратного распространения ошибки остановится на верных весах для сети, на практике он прекрасно справляется со многими задачами, которые слишком сложны для простых перцептронов. Так, я натренировала и перцептрон, и двухслойную нейронную сеть, имеющие по 324 входных сигнала и 10 выходных сигналов, распознавать рукописные цифры, применив шестьдесят тысяч примеров, а затем протестировала каждую из систем на десяти тысячах новых примеров. Перцептрон выдавал верный ответ примерно в 80 % случаев, а нейронная сеть с 50 скрытыми ячейками верно распознала целых 94 % новых примеров. Слава скрытым ячейкам! Но чему именно научилась нейронная сеть, чтобы обойти перцептрон? Я не знаю. Возможно, я могла бы найти способ визуализировать 16 700 весов[43] нейронной сети, чтобы пролить свет на ее работу, но я этого не сделала. В целом людям непросто понять, как эти сети принимают решения.

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

Коннекционизм

В 1980-х годах самой заметной из работавших над нейронными сетями групп была команда Калифорнийского университета в Сан-Диего, возглавляемая двумя психологами, Дэвидом Румельхартом и Джеймсом Макклелландом. То, что мы сегодня называем нейронными сетями, в те годы обычно именовали коннекционистскими сетями, поскольку в их основе лежала идея, что знания этих сетей заключены во взвешенных связях (англ. connections) между единицами. Команда Румельхарта и Макклелланда прославилась составлением так называемой библии коннекционизма – двухтомного трактата “Параллельная распределенная обработка данных”, опубликованного в 1986 году. Хотя в области ИИ в то время доминировал символический подход, в книге продвигался субсимволический ИИ и утверждалось, что “люди умнее современных компьютеров, потому что мозг использует базовую вычислительную архитектуру, гораздо лучше подходящую для… решения естественных задач по обработке информации, с которыми так хорошо справляются люди”, например “распознавания объектов в естественных средах и анализа их взаимодействий… понимания языка и извлечения релевантной информации из памяти”[44]. Авторы пришли к выводу, что “символические системы, любимые Минским и Пейпертом”[45], не смогут воссоздать эти человеческие способности.

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

По мнению сторонников коннекционизма, ключом к разумности была подходящая вычислительная архитектура – выстроенная по образу и подобию мозга – и способность системы к самостоятельному обучению на основе данных или действий. Команда под руководством Румельхарта и Макклелланда создавала коннекционистские сети (программно реализованные) как научные модели человеческого обучения, восприятия и развития речи. Хотя производительность этих сетей и близко не подходила к человеческому уровню, различные сети, описываемые в “Параллельной распределенной обработке данных” и других работах, оказались достаточно интересными артефактами ИИ, чтобы на них обратили внимание многие люди, включая сотрудников финансирующих организаций. В 1988 году высокопоставленный чиновник Управления перспективных исследовательских проектов Министерства обороны США (DARPA), которое обеспечивало львиную долю финансирования исследований ИИ, заявил: “Я уверен, что технология, к разработке которой мы приступаем [то есть нейронные сети], важнее атомной бомбы”[46]. И вдруг нейронные сети снова оказались “в игре”.

Плохо с логикой, хорошо с фрисби

За последние шесть десятилетий исследований ИИ дебаты об относительных преимуществах и недостатках символического и субсимволического подхода возникали не раз. Символические системы могут проектироваться людьми, наделяться человеческими знаниями и использовать понятную человеку логику для решения задач. Так, экспертная система MYCIN, разработанная в начале 1970-х годов, применяла около шестисот правил, чтобы помогать врачам диагностировать и лечить заболевания крови. Программисты MYCIN создали эти правила на основе подробных интервью с высококвалифицированными врачами. Получая симптомы и результаты анализов пациента, MYCIN применяла логику и вероятностные рассуждения в сочетании с правилами, чтобы поставить диагноз, а потом могла объяснить ход своей мысли. Иными словами, MYCIN была хрестоматийным примером символического ИИ.

Как мы видели, субсимволические системы, напротив, сложно интерпретировать, и никто не знает, как непосредственным образом запрограммировать в них сложные человеческие знания и логику. Субсимволические системы кажутся гораздо более подходящими для выполнения перцептивных и моторных задач, правила для которых разработать непросто. Вы не сможете без труда записать правила, которыми руководствуетесь, когда распознаете рукописные цифры, ловите бейсбольный мяч или узнаете голос матери, ведь вы делаете все это автоматически, не думая. Как выразился философ Энди Кларк, природа субсимволических систем такова, что у них “плохо с логикой, но хорошо с фрисби”[47].

Так почему бы не использовать символические системы для задач, которые требуют высокоуровневых языкоподобных описаний и логических рассуждений, а субсимволические системы – для низкоуровневых перцептивных задач, например для распознавания лиц и голосов? В некотором роде в ИИ было сделано именно так, причем между областями почти нет точек соприкосновения. Каждый из этих подходов добился серьезных успехов в узких сферах, но столкнулся с серьезными ограничениями для реализации изначальных целей ИИ. Хотя предпринимались попытки конструирования гибридных систем, сочетающих символические и субсимволические методы, ни одна из них пока не добилась сенсационного успеха.

Подъем машинного обучения

Вдохновленные статистикой и теорией вероятности, исследователи искусственного интеллекта создали множество алгоритмов, которые позволяют компьютерам учиться на данных, и область машинного обучения стала самостоятельным разделом ИИ, намеренно отделенным от символического ИИ. Специалисты по машинному обучению пренебрежительно называли методы символического искусственного интеллекта “старым добрым ИИ”, или GOFAI (Good Old-Fashioned Artificial Intelligence)[48], и категорически отвергали их.

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

Глава 3

Весна ИИ

Весеннее обострение

Вы когда-нибудь выкладывали на YouTube видеоролик со своим котом? Если да, то вы не одиноки. На YouTube загружено более миллиарда видеороликов, и во многих из них фигурируют коты. В 2012 году специалисты по ИИ из Google сконструировали многослойную нейронную сеть, имеющую более миллиарда весов, которая “просматривала” миллионы случайных видеороликов на YouTube и корректировала веса таким образом, чтобы успешно сжимать, а затем распаковывать избранные кадры. Исследователи Google не ставили системе задачу приобретать знания о конкретных объектах, но что же они обнаружили через неделю тренировки, заглянув в структуру сети? Там нашелся “нейрон” (или ячейка), который, судя по всему, отвечал за кодирование котов[49]. Эта машина-самоучка по распознаванию котов стала одним из целой серии впечатляющих прорывов ИИ, привлекших внимание публики в последнее десятилетие. В основе большей их части лежит набор алгоритмов нейронных сетей, называемый глубоким обучением.

До недавних пор представления общества об ИИ в основном формировались многочисленными фильмами и телесериалами, где ИИ был настоящей звездой, – вспомните “Космическую одиссею 2001 года” или “Терминатора”. В реальном мире мы не замечали ИИ ни в прессе, ни в повседневной жизни. Если вы росли в 1990-е или ранее, возможно, вы помните удручающее взаимодействие с системами распознавания речи при обращении в службы поддержки, роботизированную игрушку Furby, способную запоминать слова, или надоедливого и бесполезного Скрепыша, виртуального помощника в виде скрепки, созданного компанией Microsoft. Тогда еще не верилось, что появление полноценного ИИ не за горами.

Возможно, именно поэтому многие удивились и расстроились, когда в 1997 году шахматная программа Deep Blue, разработанная компанией IBM, победила чемпиона мира по шахматам Гарри Каспарова. Потрясенный Каспаров даже обвинил IBM в жульничестве, полагая, что машина не может так хорошо играть в шахматы, не получая помощи от экспертов[50]. (По иронии судьбы на Чемпионате мира по шахматам в 2006 году ситуация изменилась, когда один из участников обвинил другого в жульничестве, решив, что тот получает подсказки от компьютерной шахматной программы[51].)

Наш коллективный человеческий страх перед Deep Blue быстро рассеялся. Мы смирились с тем, что шахматы поддались машине, использующей метод “полного перебора”, и даже допустили, что умение хорошо играть в шахматы вовсе не требует общей интеллектуальной одаренности. Когда компьютеры превосходят людей в каком-либо деле, мы обычно реагируем именно так: приходим к выводу, что для успешного выполнения этой задачи большого ума не надо. “Когда все работает исправно, никто уже не называет это ИИ”, – сокрушался Джон Маккарти[52].

Однако с середины 2000-х годов мы стали узнавать о новых достижениях ИИ, а затем его успехи понеслись друг за другом с головокружительной скоростью. Google запустила сервис автоматического перевода с языка на язык, “Google Переводчик”. Он был несовершенен, но работал на удивление сносно, а впоследствии стал значительно лучше. Вскоре после этого на дороги Северной Калифорнии выехали беспилотные автомобили Google, осторожные и робкие, но все же самостоятельно передвигающиеся в потоке. В наших телефонах и домах появились такие виртуальные помощники, как Siri от Apple и Alexa от Amazon, которые научились обрабатывать многие голосовые запросы. YouTube стал предоставлять поразительно точные автоматизированные субтитры к видеороликам, а Skype предложил синхронный перевод с одного языка на другой во время видеозвонков. Facebook вдруг стал с пугающей точностью узнавать вас на загружаемых фотографиях, а фотохостинг Flickr начал автоматически генерировать текстовое описание фотоснимков.

В 2011 году разработанная IBM программа Watson уверенно выиграла у чемпионов телеигры Jeopardy!, умело интерпретируя подсказки, изобилующие игрой слов. Наблюдая за этим, ее противник Кен Дженнингс счел нужным “поприветствовать наших новых компьютерных владык”. Всего пять лет спустя миллионы интернет-пользователей вникали в премудрости игры го, издавна неприступной для искусственного интеллекта, когда программа AlphaGo в четырех партиях из пяти одержала блестящую победу над одним из лучших игроков мира.

Шумиха вокруг искусственного интеллекта быстро стала оглушительной, и деловой мир обратил на это внимание. Все крупнейшие технологические компании направили миллиарды долларов на исследование и разработку ИИ, непосредственно нанимая специалистов по ИИ или приобретая небольшие стартапы с единственной целью заполучить их талантливых сотрудников. Потенциальная возможность таких сделок, мгновенно делающих основателей стартапа миллионерами, привела к появлению множества стартапов, часто финансируемых и управляемых бывшими университетскими преподавателями, у каждого из которых был свой подход к ИИ. Журналист Кевин Келли, освещающий новости мира технологий, заметил: “Несложно представить, какими будут бизнес-планы следующих 10 000 стартапов: возьмем что-нибудь и добавим ИИ”[53]. Важно подчеркнуть, что почти все эти компании понимали под ИИ глубокое обучение.

Так расцвела очередная весна ИИ.

ИИ: ограниченный и общий, слабый и сильный

Как и в любую из прошлых весен ИИ, сегодня эксперты предсказывают, что “общий ИИ” – тот, который по большинству параметров находится на одном уровне с человеческим разумом или превосходит его, – не заставит себя ждать. “ИИ человеческого уровня появится в середине 2020-х годов”, – предрек Шейн Легг, один из основателей Google DeepMind, в 2008 году[54]. В 2015 году генеральный директор Facebook Марк Цукерберг заявил: “В следующие пять-десять лет мы среди прочего ставим перед собой цель превзойти возможности человека в основных областях восприятия: зрении, слухе, речи, мышлении в целом”[55]. Философы ИИ Винсент Мюллер и Ник Бостром опубликовали результаты проведенного в 2013 году опроса исследователей, в котором многие заявили о пятидесятипроцентной вероятности появления ИИ человеческого уровня к 2040 году[56].

Хотя этот оптимизм во многом основан на недавних успехах глубокого обучения, эти программы – как и все системы ИИ, разработанные до сих пор, – относятся к сфере так называемого ограниченного, или слабого, ИИ. Эти термины не столь уничижительны, как кажется: они просто обозначают систему, которая может выполнять лишь одну узкую задачу (или небольшой набор родственных задач). Возможно, AlphaGo лучше всех в мире играет в го, но больше она ничего не умеет: она не умеет играть ни в шашки, ни в крестики-нолики. “Google Переводчик” может перевести английскую рецензию на фильм на китайский, но не может сказать, понравился ли фильм рецензенту, и уж точно не сумеет сам посмотреть этот фильм и написать о нем отзыв.

Термины “ограниченный” и “слабый” используются в противовес “сильному”, “общему”, “полноценному”, или ИИ “человеческого уровня”, то есть искусственному интеллекту из кино, который умеет почти все, что умеют люди, или даже гораздо больше. Возможно, изначально исследователи ставили своей целью разработку общего ИИ, но создать его оказалось гораздо сложнее, чем ожидалось. Со временем работа над ИИ свелась к решению конкретных, четко определенных задач по распознаванию речи, игре в шахматы, беспилотному вождению и так далее. Создание машин, которые выполняют эти функции, полезно и часто прибыльно, и можно сказать, что при решении каждой из этих задач необходимо задействовать “разум”. Но пока еще не создана ни одна ИИ-программа, которую можно было бы назвать разумной в общем смысле. Это хорошо описано в недавней оценке состояния отрасли: “Множество ограниченных интеллектов никогда не составят в сумме общий интеллект. В общем интеллекте важно не количество навыков, а интеграция этих навыков”[57].

Постойте. Учитывая, что ограниченных интеллектов становится все больше, сколько времени должно пройти, прежде чем кто-нибудь найдет способ комбинировать их, воссоздавая широкие, глубокие и тонкие характеристики человеческого разума? Стоит ли верить когнитивисту Стивену Пинкеру, который считает, что ничего особенного не происходит? “До появления ИИ человеческого уровня по-прежнему остается от пятнадцати до двадцати пяти лет, как это было всегда, а многие его хваленые успехи поверхностны”, – отметил Пинкер[58]. Или же нам стоит прислушаться к оптимистам ИИ, которые уверены, что на этот раз, в эту весну ИИ, все будет иначе?

Неудивительно, что в среде исследователей ИИ бытуют значительные разногласия по вопросу о том, что означает “ИИ человеческого уровня”. Как понять, удалось ли нам сконструировать “думающую машину”? Нужны ли такой системе сознание или самоосознание, которыми обладают люди? Должна ли она понимать вещи так же, как их понимает человек? Учитывая, что речь идет о машине, не будет ли корректнее говорить, что она “моделирует мышление”, или же можно утверждать, что она действительно мыслит?

Могут ли машины мыслить?

Подобные философские вопросы терзают сферу ИИ с самого ее возникновения. Британский математик Алан Тьюринг, разработавший в 1930-х годах первую концепцию программируемого компьютера, в 1950 году опубликовал статью, в которой спросил, что мы имеем в виду, когда задаем вопрос: “Могут ли машины мыслить?” Предложив свою знаменитую “имитационную игру” (которая сегодня называется тестом Тьюринга и подробнее о которой я расскажу ниже), Тьюринг перечислил девять возможных аргументов против создания действительно мыслящей машины и попытался их опровергнуть. Предполагаемые аргументы варьируются в диапазоне от теологического – “Мышление – это функция бессмертной человеческой души. Бог наделил бессмертными душами всех мужчин и женщин, но не дал их ни другим животным, ни машинам. Следовательно, ни животные, ни машины не могут мыслить”, – до экстрасенсорного, который звучит примерно так: “Люди могут телепатически общаться друг с другом, а машины не могут”. Как ни странно, Тьюринг признал последний аргумент “довольно сильным”, потому что “статистических наблюдений, по крайней мере о телепатии, несметное множество”.

По прошествии нескольких десятилетий лично я считаю самым сильным из вероятных аргументов Тьюринга “возражение с точки зрения сознания”, которое он формулирует, цитируя невролога Джеффри Джефферсона:

Пока машина не сможет написать сонет или сочинить концерт, побуждаемая мыслями и чувствами, а не случайной последовательностью символов, мы не сможем согласиться с тем, что машина тождественна мозгу, то есть что она не только пишет эти вещи, но и понимает, что это она их написала. Ни один механизм не может чувствовать (а не просто искусственно сигнализировать, что не требует сложного устройства) радость от своих успехов, печалиться при расплавлении клапанов, получать удовольствие от лести, огорчаться из-за ошибок, увлекаться противоположным полом и злиться или расстраиваться, когда ему не удается получить желаемое[59].

Обратите внимание, что в этом аргументе говорится следующее: 1) только когда машина чувствует и сознает собственные действия и чувства – иными словами, когда она обладает сознанием, – мы можем считать, что она действительно мыслит; 2) ни одна машина никогда не будет на это способна. Следовательно, ни одна машина никогда не сможет мыслить по-настоящему.



Поделиться книгой:



Регистрация