Все шаги повторяются на каждом из обучающих примеров. Процесс обучения много раз проходится по всем обучающим примерам, слегка корректируя веса и пороговое значение при каждой ошибке перцептрона. Обучая голубей, психолог Б. Ф. Скиннер обнаружил, что учиться лучше постепенно, совершая множество попыток, и здесь дело обстоит точно так же: если слишком сильно изменить веса и пороговое значение после одной попытки, система может научиться неправильному правилу (например, чрезмерному обобщению, что “нижняя и верхняя половины восьмерки всегда равны по размеру”). После множества повторов каждого обучающего примера система (как мы надеемся) окончательно определяет набор весов и пороговое значение, при которых перцептрон дает верные ответы для всех обучающих примеров. На этом этапе мы можем проверить перцептрон на примерах из тестового множества и увидеть, как он справляется с распознаванием изображений, не входивших в обучающий набор.
Детектор восьмерок полезен, когда вас интересуют только восьмерки. Но что насчет распознавания других цифр? Не составляет труда расширить перцептрон таким образом, чтобы он выдавал десять выходных сигналов, по одному на каждую цифру. Получая пример рукописной цифры, перцептрон будет выдавать единицу в качестве выходного сигнала, соответствующего этой цифре. При наличии достаточного количества примеров расширенный перцептрон сможет узнать все необходимые веса и пороговые значения, используя алгоритм обучения.
Розенблатт и другие исследователи показали, что сети перцептронов можно научить выполнять относительно простые задачи на восприятие, а еще Розенблатт математически доказал, что теоретически достаточно обученные перцептроны могут безошибочно выполнять задачи определенного, хотя и строго ограниченного класса. При этом было непонятно, насколько хорошо перцептроны справляются с более общими задачами ИИ. Казалось, эта неопределенность не мешала Розенблатту и его спонсорам из Научно-исследовательского управления ВМС США делать до смешного оптимистичные прогнозы о будущем алгоритма. Освещая пресс-конференцию Розенблатта, состоявшуюся в июле 1958 года, газета The New York Times написала:
Сегодня ВМС продемонстрировали зародыш электронного компьютера, который, как ожидается, сможет ходить, говорить, видеть, писать, воспроизводить себя и сознавать свое существование. Было сказано, что в будущем перцептроны смогут узнавать людей, называть их по именам и мгновенно переводить устную речь и тексты с одного языка на другой
[31].
Да, даже в самом начале ИИ страдал от шумихи. Вскоре я расскажу о печальных последствиях такого ажиотажа. Но пока позвольте мне на примере перцептронов объяснить основные различия между символическим и субсимволическим подходом к ИИ.
Поскольку “знания” перцептрона состоят из набора чисел, а именно – определенных в ходе обучения весов и порогового значения, – сложно выявить правила, которые перцептрон использует при выполнении задачи распознавания. Правила перцептрона не символические: в отличие от символов Универсального решателя задач, таких как ЛЕВЫЙ-БЕРЕГ, #МИССИОНЕРОВ и ПЕРЕМЕСТИТЬ, веса и порог перцептрона не соответствуют конкретным понятиям. Довольно сложно преобразовать эти числа в понятные людям правила. Ситуация существенно усложняется в современных нейронных сетях с миллионами весов.
Можно провести грубую аналогию между перцептронами и человеческим мозгом. Если бы я могла заглянуть к вам в голову и понаблюдать за тем, как некоторое подмножество ста миллиардов ваших нейронов испускает импульсы, скорее всего, я бы не поняла, ни о чем вы думаете, ни какие “правила” применяете при принятии конкретного решения. Тем не менее человеческий мозг породил язык, который позволяет вам использовать символы (слова и фразы), чтобы сообщать мне – часто недостаточно четко, – о чем вы думаете и почему приходите к определенным выводам. В этом смысле наши нервные импульсы можно считать субсимволическими, поскольку они лежат в основе символов, которые каким-то образом создает наш мозг. Перцептроны, а также более сложные сети искусственных нейронов, называются “субсимволическими” по аналогии с мозгом. Их поборники считают, что для создания искусственного интеллекта языкоподобные символы и правила их обработки должны не программироваться непосредственно, как для Универсального решателя задач, а рождаться в нейроноподобных архитектурах точно так же, как интеллектуальная обработка символов рождается в мозге.
Ограниченность перцептронов
После Дартмутского семинара 1956 года доминирующее положение в сфере ИИ занял символический лагерь. В начале 1960-х годов, пока Розенблатт увлеченно работал над перцептроном, большая четверка “основателей” ИИ, преданных символическому лагерю, создала авторитетные – и прекрасно финансируемые – лаборатории ИИ: Марвин Минский открыл свою в MIT, Джон Маккарти – в Стэнфорде, а Герберт Саймон и Аллен Ньюэлл – в Университете Карнеги – Меллона. (Примечательно, что эти университеты по сей день входят в число самых престижных мест для изучения ИИ.) Минский, в частности, полагал, что моделирование мозга, которым занимался Розенблатт, ведет в тупик и ворует деньги у более перспективных проектов символического ИИ
[32]. В 1969 году Минский и его коллега по MIT Сеймур Пейперт опубликовали книгу “Перцептроны”
[33], в которой математически доказали, что существует крайне ограниченное количество типов задач, поддающихся безошибочному решению перцептроном, а алгоритм обучения перцептрона не сможет показывать хорошие результаты, когда задачи будут требовать большого числа весов и порогов.
Минский и Пейперт отметили, что если перцептрон усовершенствовать, добавив дополнительный “слой” искусственных нейронов, то количество типов задач, которые сможет решать устройство, значительно возрастет
[34]. Перцептрон с таким дополнительным слоем называется многослойной нейронной сетью. Такие сети составляют основу значительной части современного ИИ, и я подробно опишу их в следующей главе. Пока же я отмечу, что в то время, когда Минский и Пейперт писали свою книгу, многослойные нейронные сети еще не были широко изучены, в основном потому что не существовало общего алгоритма, аналогичного алгоритму обучения перцептрона, для определения весов и пороговых значений.